summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2020-09-10 23:24:26 -0500
committerGitHub <noreply@github.com>2020-09-10 23:24:26 -0500
commit86d8c55470a0100e98b7c453c1cac16bc560e6f0 (patch)
tree5b993e0cc3e13e6f5e6d831f9ab7ef40607a2044
parent95eabdfd5f6197c83e9e5f53ddb65dbbea3c13fd (diff)
parent61517de024cc9e61c18f2434656c18067a2d68a4 (diff)
downloadnixpkgs-86d8c55470a0100e98b7c453c1cac16bc560e6f0.tar
nixpkgs-86d8c55470a0100e98b7c453c1cac16bc560e6f0.tar.gz
nixpkgs-86d8c55470a0100e98b7c453c1cac16bc560e6f0.tar.bz2
nixpkgs-86d8c55470a0100e98b7c453c1cac16bc560e6f0.tar.lz
nixpkgs-86d8c55470a0100e98b7c453c1cac16bc560e6f0.tar.xz
nixpkgs-86d8c55470a0100e98b7c453c1cac16bc560e6f0.tar.zst
nixpkgs-86d8c55470a0100e98b7c453c1cac16bc560e6f0.zip
Merge branch 'staging' into ios-13
-rw-r--r--.editorconfig38
-rw-r--r--.github/CODEOWNERS20
-rw-r--r--.github/stale.yml32
-rw-r--r--.github/workflows/editorconfig.yml27
-rw-r--r--.github/workflows/pending-clear.yml21
-rw-r--r--.github/workflows/pending-set.yml20
-rw-r--r--.gitignore1
-rw-r--r--doc/Makefile2
-rw-r--r--doc/builders/packages/cataclysm-dda.section.md94
-rw-r--r--doc/builders/packages/citrix.xml30
-rw-r--r--doc/builders/packages/index.xml1
-rw-r--r--doc/builders/packages/steam.xml8
-rw-r--r--doc/builders/packages/urxvt.xml2
-rw-r--r--doc/languages-frameworks/android.section.md2
-rw-r--r--doc/languages-frameworks/beam.xml2
-rw-r--r--doc/languages-frameworks/emscripten.section.md17
-rw-r--r--doc/languages-frameworks/go.xml16
-rw-r--r--doc/languages-frameworks/node.section.md9
-rw-r--r--doc/languages-frameworks/perl.xml318
-rw-r--r--doc/languages-frameworks/python.section.md128
-rw-r--r--doc/languages-frameworks/rust.section.md3
-rw-r--r--doc/languages-frameworks/vim.section.md2
-rw-r--r--doc/old/cross.txt4
-rw-r--r--doc/stdenv/meta.xml6
-rw-r--r--doc/stdenv/multiple-output.xml74
-rw-r--r--doc/stdenv/stdenv.xml197
-rw-r--r--doc/using/configuration.xml4
-rw-r--r--doc/using/overlays.xml29
-rw-r--r--flake.nix17
-rw-r--r--lib/default.nix2
-rw-r--r--lib/generators.nix6
-rw-r--r--lib/licenses.nix48
-rw-r--r--lib/modules.nix165
-rw-r--r--lib/sources.nix10
-rw-r--r--lib/strings.nix33
-rw-r--r--lib/systems/architectures.nix77
-rw-r--r--lib/systems/default.nix5
-rw-r--r--lib/systems/doubles.nix5
-rw-r--r--lib/systems/examples.nix13
-rw-r--r--lib/systems/inspect.nix3
-rw-r--r--lib/systems/parse.nix3
-rw-r--r--lib/tests/misc.nix10
-rwxr-xr-xlib/tests/modules.sh23
-rw-r--r--lib/tests/modules/define-option-dependently.nix2
-rw-r--r--lib/tests/modules/define-value-string-properties.nix12
-rw-r--r--lib/tests/modules/freeform-attrsOf.nix3
-rw-r--r--lib/tests/modules/freeform-lazyAttrsOf.nix3
-rw-r--r--lib/tests/modules/freeform-nested.nix7
-rw-r--r--lib/tests/modules/freeform-str-dep-unstr.nix8
-rw-r--r--lib/tests/modules/freeform-unstr-dep-str.nix8
-rw-r--r--lib/tests/release.nix1
-rw-r--r--lib/tests/systems.nix11
-rw-r--r--lib/trivial.nix51
-rw-r--r--lib/types.nix123
-rw-r--r--maintainers/maintainer-list.nix585
-rw-r--r--maintainers/scripts/luarocks-packages.csv5
-rwxr-xr-xmaintainers/scripts/rebuild-amount.sh3
-rwxr-xr-xmaintainers/scripts/update.nix8
-rw-r--r--maintainers/team-list.nix11
-rw-r--r--nixos/doc/manual/administration/boot-problems.xml4
-rw-r--r--nixos/doc/manual/administration/imperative-containers.xml2
-rw-r--r--nixos/doc/manual/configuration/configuration.xml1
-rw-r--r--nixos/doc/manual/configuration/file-systems.xml8
-rw-r--r--nixos/doc/manual/configuration/gpu-accel.xml258
-rw-r--r--nixos/doc/manual/configuration/ipv4-config.xml2
-rw-r--r--nixos/doc/manual/configuration/ipv6-config.xml2
-rw-r--r--nixos/doc/manual/configuration/luks-file-systems.xml6
-rw-r--r--nixos/doc/manual/configuration/network-manager.xml2
-rw-r--r--nixos/doc/manual/configuration/profiles/demo.xml3
-rw-r--r--nixos/doc/manual/configuration/ssh.xml2
-rw-r--r--nixos/doc/manual/configuration/user-mgmt.xml12
-rw-r--r--nixos/doc/manual/configuration/x-windows.xml5
-rw-r--r--nixos/doc/manual/development/freeform-modules.xml68
-rw-r--r--nixos/doc/manual/development/option-types.xml11
-rwxr-xr-xnixos/doc/manual/development/releases.xml265
-rw-r--r--nixos/doc/manual/development/settings-options.xml216
-rw-r--r--nixos/doc/manual/development/writing-modules.xml2
-rw-r--r--nixos/doc/manual/development/writing-nixos-tests.xml8
-rw-r--r--nixos/doc/manual/installation/changing-config.xml2
-rw-r--r--nixos/doc/manual/installation/installing-from-other-distro.xml2
-rw-r--r--nixos/doc/manual/installation/installing-pxe.xml2
-rw-r--r--nixos/doc/manual/installation/installing-virtualbox-guest.xml2
-rw-r--r--nixos/doc/manual/installation/installing.xml4
-rw-r--r--nixos/doc/manual/man-nixos-build-vms.xml6
-rw-r--r--nixos/doc/manual/man-nixos-enter.xml12
-rw-r--r--nixos/doc/manual/man-nixos-install.xml16
-rw-r--r--nixos/doc/manual/man-nixos-rebuild.xml4
-rw-r--r--nixos/doc/manual/release-notes/rl-2003.xml4
-rw-r--r--nixos/doc/manual/release-notes/rl-2009.xml411
-rw-r--r--nixos/lib/eval-config.nix4
-rw-r--r--nixos/lib/make-disk-image.nix82
-rw-r--r--nixos/lib/make-ext4-fs.nix5
-rw-r--r--nixos/lib/make-iso9660-image.nix4
-rw-r--r--nixos/lib/make-iso9660-image.sh14
-rw-r--r--nixos/lib/make-options-doc/default.nix6
-rw-r--r--nixos/lib/make-options-doc/options-to-docbook.xsl2
-rw-r--r--nixos/lib/qemu-flags.nix15
-rw-r--r--nixos/lib/test-driver/Logger.pm75
-rw-r--r--nixos/lib/test-driver/Machine.pm734
-rw-r--r--nixos/lib/test-driver/test-driver.pl191
-rw-r--r--nixos/lib/test-driver/test-driver.py14
-rw-r--r--nixos/lib/testing-python.nix9
-rw-r--r--nixos/lib/testing.nix258
-rw-r--r--nixos/lib/utils.nix8
-rw-r--r--nixos/maintainers/scripts/azure-new/.gitignore2
-rw-r--r--nixos/maintainers/scripts/azure-new/README.md2
-rwxr-xr-xnixos/maintainers/scripts/azure-new/upload-image.sh4
-rw-r--r--nixos/maintainers/scripts/ec2/amazon-image.nix4
-rwxr-xr-xnixos/maintainers/scripts/ec2/create-amis.sh2
-rw-r--r--nixos/modules/config/appstream.nix8
-rw-r--r--nixos/modules/config/fonts/fontconfig-penultimate.nix292
-rw-r--r--nixos/modules/config/fonts/fontconfig.nix101
-rw-r--r--nixos/modules/config/krb5/default.nix34
-rw-r--r--nixos/modules/config/no-x-libs.nix2
-rw-r--r--nixos/modules/config/system-path.nix5
-rw-r--r--nixos/modules/config/update-users-groups.pl55
-rw-r--r--nixos/modules/config/users-groups.nix95
-rw-r--r--nixos/modules/hardware/bladeRF.nix2
-rw-r--r--nixos/modules/hardware/ckb-next.nix1
-rw-r--r--nixos/modules/hardware/logitech.nix94
-rw-r--r--nixos/modules/hardware/onlykey.nix2
-rw-r--r--nixos/modules/hardware/tuxedo-keyboard.nix4
-rw-r--r--nixos/modules/hardware/video/hidpi.nix16
-rw-r--r--nixos/modules/hardware/video/uvcvideo/default.nix2
-rw-r--r--nixos/modules/hardware/xpadneo.nix29
-rw-r--r--nixos/modules/i18n/input-method/ibus.nix2
-rw-r--r--nixos/modules/i18n/input-method/uim.nix2
-rw-r--r--nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix20
-rw-r--r--nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix4
-rw-r--r--nixos/modules/installer/cd-dvd/iso-image.nix9
-rw-r--r--nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix2
-rw-r--r--nixos/modules/installer/cd-dvd/sd-image.nix12
-rw-r--r--nixos/modules/installer/cd-dvd/system-tarball-pc-readme.txt2
-rw-r--r--nixos/modules/installer/tools/nix-fallback-paths.nix8
-rw-r--r--nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh2
-rw-r--r--nixos/modules/installer/tools/nixos-enter.sh2
-rw-r--r--nixos/modules/installer/tools/nixos-generate-config.pl4
-rw-r--r--nixos/modules/installer/tools/nixos-install.sh86
-rw-r--r--nixos/modules/installer/tools/nixos-option/nixos-option.cc2
-rw-r--r--nixos/modules/installer/tools/nixos-rebuild.sh19
-rw-r--r--nixos/modules/installer/tools/nixos-version.sh2
-rw-r--r--nixos/modules/installer/tools/tools.nix7
-rw-r--r--nixos/modules/misc/ids.nix10
-rw-r--r--nixos/modules/misc/locate.nix2
-rw-r--r--nixos/modules/misc/nixpkgs.nix2
-rw-r--r--nixos/modules/module-list.nix29
-rw-r--r--nixos/modules/profiles/base.nix1
-rw-r--r--nixos/modules/profiles/demo.nix10
-rw-r--r--nixos/modules/profiles/hardened.nix5
-rw-r--r--nixos/modules/programs/autojump.nix4
-rw-r--r--nixos/modules/programs/ccache.nix2
-rw-r--r--nixos/modules/programs/dconf.nix37
-rw-r--r--nixos/modules/programs/environment.nix1
-rw-r--r--nixos/modules/programs/freetds.nix4
-rw-r--r--nixos/modules/programs/gnupg.nix3
-rw-r--r--nixos/modules/programs/gpaste.nix2
-rw-r--r--nixos/modules/programs/ssh.nix2
-rw-r--r--nixos/modules/programs/steam.nix25
-rw-r--r--nixos/modules/programs/tsm-client.nix4
-rw-r--r--nixos/modules/programs/zsh/oh-my-zsh.xml2
-rw-r--r--nixos/modules/rename.nix9
-rw-r--r--nixos/modules/security/acme.nix671
-rw-r--r--nixos/modules/security/acme.xml20
-rw-r--r--nixos/modules/security/apparmor.nix6
-rw-r--r--nixos/modules/security/duosec.nix2
-rw-r--r--nixos/modules/security/misc.nix14
-rw-r--r--nixos/modules/security/pam.nix49
-rw-r--r--nixos/modules/security/tpm2.nix1
-rw-r--r--nixos/modules/security/wrappers/default.nix3
-rw-r--r--nixos/modules/services/audio/icecast.nix6
-rw-r--r--nixos/modules/services/audio/roon-server.nix6
-rw-r--r--nixos/modules/services/audio/snapserver.nix166
-rw-r--r--nixos/modules/services/audio/spotifyd.nix2
-rw-r--r--nixos/modules/services/backup/bacula.nix36
-rw-r--r--nixos/modules/services/backup/borgbackup.xml22
-rw-r--r--nixos/modules/services/backup/restic.nix66
-rw-r--r--nixos/modules/services/backup/zfs-replication.nix2
-rw-r--r--nixos/modules/services/backup/znapzend.nix4
-rw-r--r--nixos/modules/services/computing/slurm/slurm.nix4
-rw-r--r--nixos/modules/services/computing/torque/mom.nix2
-rw-r--r--nixos/modules/services/computing/torque/server.nix2
-rw-r--r--nixos/modules/services/continuous-integration/buildbot/worker.nix11
-rw-r--r--nixos/modules/services/continuous-integration/gitlab-runner.nix10
-rw-r--r--nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix213
-rw-r--r--nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix86
-rw-r--r--nixos/modules/services/databases/mysql.nix260
-rw-r--r--nixos/modules/services/databases/postgresql.nix143
-rw-r--r--nixos/modules/services/databases/riak-cs.nix2
-rw-r--r--nixos/modules/services/desktops/deepin/deepin.nix123
-rw-r--r--nixos/modules/services/desktops/espanso.nix25
-rw-r--r--nixos/modules/services/desktops/flatpak.nix1
-rw-r--r--nixos/modules/services/desktops/geoclue2.nix2
-rw-r--r--nixos/modules/services/desktops/malcontent.nix5
-rw-r--r--nixos/modules/services/development/jupyter/default.nix28
-rw-r--r--nixos/modules/services/development/jupyterhub/default.nix190
-rw-r--r--nixos/modules/services/development/lorri.nix13
-rw-r--r--nixos/modules/services/editors/emacs.nix47
-rw-r--r--nixos/modules/services/editors/emacs.xml14
-rw-r--r--nixos/modules/services/games/minetest-server.nix16
-rw-r--r--nixos/modules/services/games/terraria.nix20
-rw-r--r--nixos/modules/services/hardware/fancontrol.nix2
-rw-r--r--nixos/modules/services/hardware/sane_extra_backends/brscan4.nix2
-rw-r--r--nixos/modules/services/hardware/thinkfan.nix2
-rw-r--r--nixos/modules/services/hardware/tlp.nix59
-rw-r--r--nixos/modules/services/hardware/trezord.nix4
-rw-r--r--nixos/modules/services/hardware/undervolt.nix18
-rw-r--r--nixos/modules/services/logging/logrotate.nix146
-rw-r--r--nixos/modules/services/logging/logstash.nix6
-rw-r--r--nixos/modules/services/mail/dovecot.nix33
-rw-r--r--nixos/modules/services/mail/opendkim.nix30
-rw-r--r--nixos/modules/services/mail/pfix-srsd.nix2
-rw-r--r--nixos/modules/services/mail/postfix.nix90
-rw-r--r--nixos/modules/services/mail/roundcube.nix18
-rw-r--r--nixos/modules/services/misc/beanstalkd.nix10
-rw-r--r--nixos/modules/services/misc/gammu-smsd.nix2
-rw-r--r--nixos/modules/services/misc/gitea.nix144
-rw-r--r--nixos/modules/services/misc/gitlab.nix85
-rw-r--r--nixos/modules/services/misc/gitlab.xml6
-rw-r--r--nixos/modules/services/misc/gitolite.nix33
-rw-r--r--nixos/modules/services/misc/gollum.nix9
-rw-r--r--nixos/modules/services/misc/jellyfin.nix15
-rw-r--r--nixos/modules/services/misc/mathics.nix54
-rw-r--r--nixos/modules/services/misc/matrix-synapse.nix2
-rw-r--r--nixos/modules/services/misc/matrix-synapse.xml38
-rw-r--r--nixos/modules/services/misc/mautrix-telegram.nix2
-rw-r--r--nixos/modules/services/misc/mesos-master.nix125
-rw-r--r--nixos/modules/services/misc/mesos-slave.nix220
-rw-r--r--nixos/modules/services/misc/nix-daemon.nix171
-rw-r--r--nixos/modules/services/misc/octoprint.nix4
-rw-r--r--nixos/modules/services/misc/pinnwand.nix78
-rw-r--r--nixos/modules/services/misc/redmine.nix102
-rw-r--r--nixos/modules/services/misc/siproxd.nix8
-rw-r--r--nixos/modules/services/misc/ssm-agent.nix6
-rw-r--r--nixos/modules/services/misc/sssd.nix4
-rw-r--r--nixos/modules/services/misc/tzupdate.nix4
-rw-r--r--nixos/modules/services/misc/zigbee2mqtt.nix98
-rw-r--r--nixos/modules/services/monitoring/cadvisor.nix2
-rw-r--r--nixos/modules/services/monitoring/dd-agent/dd-agent.nix4
-rw-r--r--nixos/modules/services/monitoring/do-agent.nix17
-rw-r--r--nixos/modules/services/monitoring/monit.nix18
-rw-r--r--nixos/modules/services/monitoring/netdata.nix45
-rw-r--r--nixos/modules/services/monitoring/prometheus/default.nix27
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters.nix4
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix33
-rw-r--r--nixos/modules/services/monitoring/smartd.nix18
-rw-r--r--nixos/modules/services/monitoring/teamviewer.nix2
-rw-r--r--nixos/modules/services/monitoring/zabbix-agent.nix41
-rw-r--r--nixos/modules/services/monitoring/zabbix-proxy.nix75
-rw-r--r--nixos/modules/services/monitoring/zabbix-server.nix72
-rw-r--r--nixos/modules/services/network-filesystems/cachefilesd.nix18
-rw-r--r--nixos/modules/services/network-filesystems/ipfs.nix22
-rw-r--r--nixos/modules/services/network-filesystems/orangefs/server.nix4
-rw-r--r--nixos/modules/services/networking/biboumi.nix269
-rw-r--r--nixos/modules/services/networking/bitcoind.nix206
-rw-r--r--nixos/modules/services/networking/blockbook-frontend.nix3
-rw-r--r--nixos/modules/services/networking/corerad.nix1
-rw-r--r--nixos/modules/services/networking/dhcpd.nix12
-rw-r--r--nixos/modules/services/networking/gateone.nix2
-rw-r--r--nixos/modules/services/networking/hylafax/options.nix4
-rw-r--r--nixos/modules/services/networking/jicofo.nix152
-rw-r--r--nixos/modules/services/networking/jitsi-videobridge.nix276
-rw-r--r--nixos/modules/services/networking/kresd.nix13
-rw-r--r--nixos/modules/services/networking/monero.nix2
-rw-r--r--nixos/modules/services/networking/mstpd.nix2
-rw-r--r--nixos/modules/services/networking/namecoind.nix2
-rw-r--r--nixos/modules/services/networking/ncdns.nix278
-rw-r--r--nixos/modules/services/networking/networkmanager.nix2
-rw-r--r--nixos/modules/services/networking/nextdns.nix44
-rw-r--r--nixos/modules/services/networking/nghttpx/default.nix6
-rw-r--r--nixos/modules/services/networking/nylon.nix2
-rw-r--r--nixos/modules/services/networking/onedrive.nix2
-rw-r--r--nixos/modules/services/networking/prosody.nix4
-rw-r--r--nixos/modules/services/networking/prosody.xml13
-rw-r--r--nixos/modules/services/networking/resilio.nix6
-rw-r--r--nixos/modules/services/networking/robustirc-bridge.nix47
-rw-r--r--nixos/modules/services/networking/shadowsocks.nix36
-rw-r--r--nixos/modules/services/networking/skydns.nix2
-rw-r--r--nixos/modules/services/networking/ssh/sshd.nix12
-rw-r--r--nixos/modules/services/networking/supplicant.nix26
-rw-r--r--nixos/modules/services/networking/syncthing.nix13
-rw-r--r--nixos/modules/services/networking/tinc.nix16
-rw-r--r--nixos/modules/services/networking/trickster.nix5
-rw-r--r--nixos/modules/services/networking/unifi.nix2
-rw-r--r--nixos/modules/services/networking/websockify.nix6
-rw-r--r--nixos/modules/services/networking/wg-quick.nix20
-rw-r--r--nixos/modules/services/networking/wireguard.nix15
-rw-r--r--nixos/modules/services/networking/wpa_supplicant.nix5
-rw-r--r--nixos/modules/services/networking/xandikos.nix4
-rw-r--r--nixos/modules/services/networking/yggdrasil.nix5
-rw-r--r--nixos/modules/services/networking/yggdrasil.xml157
-rw-r--r--nixos/modules/services/scheduling/chronos.nix54
-rw-r--r--nixos/modules/services/scheduling/marathon.nix98
-rw-r--r--nixos/modules/services/security/haveged.nix18
-rw-r--r--nixos/modules/services/security/nginx-sso.nix11
-rw-r--r--nixos/modules/services/security/oauth2_proxy.nix12
-rw-r--r--nixos/modules/services/security/physlock.nix10
-rw-r--r--nixos/modules/services/security/privacyidea.nix1
-rw-r--r--nixos/modules/services/security/tor.nix24
-rw-r--r--nixos/modules/services/security/usbguard.nix124
-rw-r--r--nixos/modules/services/security/yubikey-agent.nix60
-rw-r--r--nixos/modules/services/system/earlyoom.nix1
-rw-r--r--nixos/modules/services/torrent/transmission.nix451
-rw-r--r--nixos/modules/services/video/mirakurun.nix165
-rw-r--r--nixos/modules/services/wayland/cage.nix3
-rw-r--r--nixos/modules/services/web-apps/codimd.nix4
-rw-r--r--nixos/modules/services/web-apps/dokuwiki.nix28
-rw-r--r--nixos/modules/services/web-apps/jitsi-meet.nix333
-rw-r--r--nixos/modules/services/web-apps/moodle.nix14
-rw-r--r--nixos/modules/services/web-apps/nextcloud.nix248
-rw-r--r--nixos/modules/services/web-apps/nextcloud.xml61
-rw-r--r--nixos/modules/services/web-apps/pgpkeyserver-lite.nix2
-rw-r--r--nixos/modules/services/web-apps/rss-bridge.nix127
-rw-r--r--nixos/modules/services/web-apps/sogo.nix1
-rw-r--r--nixos/modules/services/web-apps/trilium.nix2
-rw-r--r--nixos/modules/services/web-apps/tt-rss.nix2
-rw-r--r--nixos/modules/services/web-servers/apache-httpd/default.nix110
-rw-r--r--nixos/modules/services/web-servers/jboss/builder.sh12
-rw-r--r--nixos/modules/services/web-servers/meguca.nix174
-rw-r--r--nixos/modules/services/web-servers/molly-brown.nix117
-rw-r--r--nixos/modules/services/web-servers/nginx/default.nix94
-rw-r--r--nixos/modules/services/web-servers/phpfpm/default.nix1
-rw-r--r--nixos/modules/services/web-servers/shellinabox.nix2
-rw-r--r--nixos/modules/services/web-servers/unit/default.nix5
-rw-r--r--nixos/modules/services/x11/colord.nix2
-rw-r--r--nixos/modules/services/x11/desktop-managers/plasma5.nix2
-rw-r--r--nixos/modules/services/x11/display-managers/default.nix33
-rw-r--r--nixos/modules/services/x11/display-managers/gdm.nix66
-rw-r--r--nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix2
-rw-r--r--nixos/modules/services/x11/display-managers/lightdm.nix66
-rw-r--r--nixos/modules/services/x11/display-managers/sddm.nix63
-rw-r--r--nixos/modules/services/x11/imwheel.nix3
-rw-r--r--nixos/modules/services/x11/urserver.nix38
-rw-r--r--nixos/modules/services/x11/window-managers/qtile.nix2
-rw-r--r--nixos/modules/services/x11/window-managers/xmonad.nix11
-rw-r--r--nixos/modules/system/activation/top-level.nix19
-rw-r--r--nixos/modules/system/boot/emergency-mode.nix2
-rw-r--r--nixos/modules/system/boot/initrd-network.nix2
-rw-r--r--nixos/modules/system/boot/initrd-openvpn.nix81
-rw-r--r--nixos/modules/system/boot/kernel_config.nix2
-rw-r--r--nixos/modules/system/boot/loader/generations-dir/generations-dir-builder.sh2
-rw-r--r--nixos/modules/system/boot/loader/grub/grub.nix44
-rw-r--r--nixos/modules/system/boot/loader/grub/install-grub.pl118
-rw-r--r--nixos/modules/system/boot/loader/init-script/init-script-builder.sh2
-rw-r--r--nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix4
-rw-r--r--nixos/modules/system/boot/luksroot.nix38
-rw-r--r--nixos/modules/system/boot/modprobe.nix2
-rw-r--r--nixos/modules/system/boot/networkd.nix1492
-rw-r--r--nixos/modules/system/boot/stage-1-init.sh22
-rw-r--r--nixos/modules/system/boot/stage-1.nix30
-rw-r--r--nixos/modules/system/boot/stage-2-init.sh2
-rw-r--r--nixos/modules/system/boot/stage-2.nix10
-rw-r--r--nixos/modules/system/boot/systemd-nspawn.nix6
-rw-r--r--nixos/modules/system/boot/systemd-unit-options.nix11
-rw-r--r--nixos/modules/system/boot/systemd.nix152
-rw-r--r--nixos/modules/system/boot/tmp.nix2
-rw-r--r--nixos/modules/system/etc/etc.nix2
-rw-r--r--nixos/modules/system/etc/make-etc.sh7
-rw-r--r--nixos/modules/tasks/auto-upgrade.nix98
-rw-r--r--nixos/modules/tasks/bcache.nix2
-rw-r--r--nixos/modules/tasks/encrypted-devices.nix21
-rw-r--r--nixos/modules/tasks/filesystems.nix4
-rw-r--r--nixos/modules/tasks/filesystems/zfs.nix32
-rw-r--r--nixos/modules/tasks/lvm.nix67
-rw-r--r--nixos/modules/tasks/network-interfaces-scripted.nix4
-rw-r--r--nixos/modules/tasks/network-interfaces.nix8
-rw-r--r--nixos/modules/testing/test-instrumentation.nix27
-rw-r--r--nixos/modules/virtualisation/azure-image.nix2
-rw-r--r--nixos/modules/virtualisation/containers.nix50
-rw-r--r--nixos/modules/virtualisation/cri-o.nix5
-rw-r--r--nixos/modules/virtualisation/docker-preloader.nix134
-rw-r--r--nixos/modules/virtualisation/docker.nix1
-rw-r--r--nixos/modules/virtualisation/libvirtd.nix4
-rw-r--r--nixos/modules/virtualisation/nixos-containers.nix2
-rw-r--r--nixos/modules/virtualisation/parallels-guest.nix2
-rw-r--r--nixos/modules/virtualisation/qemu-vm.nix155
-rw-r--r--nixos/modules/virtualisation/railcar.nix16
-rw-r--r--nixos/modules/virtualisation/virtualbox-guest.nix2
-rw-r--r--nixos/modules/virtualisation/virtualbox-image.nix66
-rw-r--r--nixos/release-combined.nix18
-rw-r--r--nixos/release.nix5
-rw-r--r--nixos/tests/acme.nix368
-rw-r--r--nixos/tests/all-tests.nix31
-rw-r--r--nixos/tests/bcachefs.nix2
-rw-r--r--nixos/tests/bitcoind.nix46
-rw-r--r--nixos/tests/bittorrent.nix24
-rw-r--r--nixos/tests/bitwarden.nix188
-rw-r--r--nixos/tests/blockbook-frontend.nix4
-rw-r--r--nixos/tests/borgbackup.nix2
-rw-r--r--nixos/tests/ceph-multi-node.nix6
-rw-r--r--nixos/tests/ceph-single-node.nix6
-rw-r--r--nixos/tests/charliecloud.nix43
-rw-r--r--nixos/tests/common/acme/client/default.nix11
-rw-r--r--nixos/tests/common/acme/server/default.nix72
-rw-r--r--nixos/tests/common/acme/server/mkcerts.nix68
-rwxr-xr-xnixos/tests/common/acme/server/mkcerts.sh6
-rw-r--r--nixos/tests/common/acme/server/snakeoil-certs.nix206
-rw-r--r--nixos/tests/common/auto.nix4
-rw-r--r--nixos/tests/common/ec2.nix58
-rw-r--r--nixos/tests/containers-portforward.nix2
-rw-r--r--nixos/tests/containers-reloadable.nix4
-rw-r--r--nixos/tests/corerad.nix2
-rw-r--r--nixos/tests/cri-o.nix19
-rw-r--r--nixos/tests/docker-preloader.nix27
-rw-r--r--nixos/tests/docker-tools.nix65
-rw-r--r--nixos/tests/dokuwiki.nix21
-rw-r--r--nixos/tests/ec2.nix140
-rw-r--r--nixos/tests/firejail.nix82
-rw-r--r--nixos/tests/gnome3-xorg.nix6
-rw-r--r--nixos/tests/gnome3.nix16
-rw-r--r--nixos/tests/hardened.nix114
-rw-r--r--nixos/tests/hocker-fetchdocker/default.nix9
-rw-r--r--nixos/tests/home-assistant.nix21
-rw-r--r--nixos/tests/hydra/common.nix1
-rw-r--r--nixos/tests/ihatemoney.nix13
-rw-r--r--nixos/tests/initrd-network-openvpn/default.nix145
-rw-r--r--nixos/tests/initrd-network-openvpn/initrd.ovpn29
-rw-r--r--nixos/tests/initrd-network-openvpn/shared.key21
-rw-r--r--nixos/tests/installed-tests/default.nix6
-rw-r--r--nixos/tests/installed-tests/flatpak.nix9
-rw-r--r--nixos/tests/installed-tests/ibus.nix14
-rw-r--r--nixos/tests/installed-tests/ostree.nix11
-rw-r--r--nixos/tests/installer.nix35
-rw-r--r--nixos/tests/jitsi-meet.nix55
-rw-r--r--nixos/tests/krb5/example-config.nix8
-rw-r--r--nixos/tests/kubernetes/base.nix1
-rw-r--r--nixos/tests/leaps.nix2
-rw-r--r--nixos/tests/make-test.nix9
-rw-r--r--nixos/tests/mathics.nix20
-rw-r--r--nixos/tests/mesos.nix92
-rw-r--r--nixos/tests/mesos_test.py72
-rw-r--r--nixos/tests/misc.nix32
-rw-r--r--nixos/tests/molly-brown.nix71
-rw-r--r--nixos/tests/mongodb.nix6
-rw-r--r--nixos/tests/mysql/mysql.nix22
-rw-r--r--nixos/tests/ncdns.nix77
-rw-r--r--nixos/tests/networking.nix21
-rw-r--r--nixos/tests/nextcloud/basic.nix1
-rw-r--r--nixos/tests/nextcloud/with-mysql-and-memcached.nix1
-rw-r--r--nixos/tests/nextcloud/with-postgresql-and-redis.nix1
-rw-r--r--nixos/tests/nfs/kerberos.nix4
-rw-r--r--nixos/tests/openstack-image.nix70
-rw-r--r--nixos/tests/os-prober.nix33
-rw-r--r--nixos/tests/pinnwand.nix86
-rw-r--r--nixos/tests/plasma5.nix2
-rw-r--r--nixos/tests/podman.nix5
-rw-r--r--nixos/tests/postfix-raise-smtpd-tls-security-level.nix41
-rw-r--r--nixos/tests/postfix.nix77
-rw-r--r--nixos/tests/postgresql-wal-receiver.nix182
-rw-r--r--nixos/tests/prometheus-exporters.nix25
-rw-r--r--nixos/tests/prometheus.nix7
-rw-r--r--nixos/tests/pt2-clone.nix35
-rw-r--r--nixos/tests/restic.nix55
-rw-r--r--nixos/tests/robustirc-bridge.nix29
-rw-r--r--nixos/tests/sddm.nix4
-rw-r--r--nixos/tests/shadowsocks.nix80
-rw-r--r--nixos/tests/shattered-pixel-dungeon.nix29
-rw-r--r--nixos/tests/slurm.nix93
-rw-r--r--nixos/tests/snapcast.nix58
-rw-r--r--nixos/tests/sssd-ldap.nix78
-rw-r--r--nixos/tests/sssd.nix17
-rw-r--r--nixos/tests/syncthing-init.nix3
-rw-r--r--nixos/tests/syncthing.nix65
-rw-r--r--nixos/tests/systemd-boot.nix32
-rw-r--r--nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix8
-rw-r--r--nixos/tests/systemd-networkd-vrf.nix24
-rw-r--r--nixos/tests/systemd-networkd.nix11
-rw-r--r--nixos/tests/systemd.nix53
-rw-r--r--nixos/tests/taskserver.nix311
-rw-r--r--nixos/tests/tiddlywiki.nix2
-rw-r--r--nixos/tests/transmission.nix2
-rw-r--r--nixos/tests/trezord.nix2
-rw-r--r--nixos/tests/trickster.nix4
-rw-r--r--nixos/tests/virtualbox.nix419
-rw-r--r--nixos/tests/xandikos.nix6
-rw-r--r--nixos/tests/xfce.nix4
-rw-r--r--nixos/tests/yggdrasil.nix42
-rw-r--r--nixos/tests/zfs.nix23
-rw-r--r--nixos/tests/zigbee2mqtt.nix19
-rw-r--r--pkgs/applications/audio/a2jmidid/default.nix12
-rw-r--r--pkgs/applications/audio/adlplug/default.nix10
-rw-r--r--pkgs/applications/audio/ardour/default.nix4
-rw-r--r--pkgs/applications/audio/ashuffle/default.nix26
-rw-r--r--pkgs/applications/audio/audacious/default.nix57
-rw-r--r--pkgs/applications/audio/audacious/qt-5.nix92
-rw-r--r--pkgs/applications/audio/audacity/default.nix2
-rw-r--r--pkgs/applications/audio/axoloti/libusb1.nix4
-rw-r--r--pkgs/applications/audio/bambootracker/default.nix51
-rw-r--r--pkgs/applications/audio/bchoppr/default.nix28
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix4
-rw-r--r--pkgs/applications/audio/bjumblr/default.nix6
-rw-r--r--pkgs/applications/audio/bs1770gain/default.nix4
-rw-r--r--pkgs/applications/audio/bschaffl/default.nix28
-rw-r--r--pkgs/applications/audio/bsequencer/default.nix4
-rw-r--r--pkgs/applications/audio/bslizr/default.nix4
-rw-r--r--pkgs/applications/audio/cava/default.nix4
-rw-r--r--pkgs/applications/audio/csound/default.nix4
-rw-r--r--pkgs/applications/audio/dragonfly-reverb/default.nix4
-rw-r--r--pkgs/applications/audio/drumkv1/default.nix4
-rw-r--r--pkgs/applications/audio/faust/faust2.nix6
-rw-r--r--pkgs/applications/audio/faust/faust2jack.nix2
-rw-r--r--pkgs/applications/audio/faust/faust2jaqt.nix2
-rw-r--r--pkgs/applications/audio/faust/faustlive.nix22
-rw-r--r--pkgs/applications/audio/fmit/default.nix4
-rw-r--r--pkgs/applications/audio/freqtweak/default.nix30
-rw-r--r--pkgs/applications/audio/ft2-clone/default.nix4
-rw-r--r--pkgs/applications/audio/geonkick/default.nix28
-rw-r--r--pkgs/applications/audio/giada/default.nix4
-rw-r--r--pkgs/applications/audio/gnome-podcasts/default.nix6
-rw-r--r--pkgs/applications/audio/gspeech/default.nix8
-rw-r--r--pkgs/applications/audio/guitarix/default.nix9
-rw-r--r--pkgs/applications/audio/guitarix/fix-build.patch10
-rw-r--r--pkgs/applications/audio/gwc/default.nix47
-rw-r--r--pkgs/applications/audio/gxplugins-lv2/default.nix4
-rw-r--r--pkgs/applications/audio/helm/default.nix25
-rw-r--r--pkgs/applications/audio/hydrogen/0.nix26
-rw-r--r--pkgs/applications/audio/hydrogen/default.nix26
-rw-r--r--pkgs/applications/audio/hydrogen/unstable.nix34
-rw-r--r--pkgs/applications/audio/jackmix/default.nix4
-rw-r--r--pkgs/applications/audio/jalv/default.nix4
-rw-r--r--pkgs/applications/audio/jamulus/default.nix4
-rw-r--r--pkgs/applications/audio/kapitonov-plugins-pack/default.nix43
-rw-r--r--pkgs/applications/audio/kmetronome/default.nix23
-rw-r--r--pkgs/applications/audio/librespot/cargo-lock.patch137
-rw-r--r--pkgs/applications/audio/librespot/default.nix20
-rw-r--r--pkgs/applications/audio/lingot/default.nix8
-rw-r--r--pkgs/applications/audio/lmms/default.nix4
-rw-r--r--pkgs/applications/audio/lollypop/default.nix12
-rw-r--r--pkgs/applications/audio/lsp-plugins/default.nix4
-rw-r--r--pkgs/applications/audio/lv2-cpp-tools/default.nix28
-rw-r--r--pkgs/applications/audio/mamba/default.nix40
-rw-r--r--pkgs/applications/audio/mamba/fix-build.patch10
-rw-r--r--pkgs/applications/audio/mellowplayer/default.nix70
-rw-r--r--pkgs/applications/audio/mixxx/default.nix10
-rw-r--r--pkgs/applications/audio/molot-lite/default.nix37
-rw-r--r--pkgs/applications/audio/mooSpace/default.nix35
-rw-r--r--pkgs/applications/audio/mopidy/default.nix2
-rw-r--r--pkgs/applications/audio/mopidy/iris.nix6
-rw-r--r--pkgs/applications/audio/mopidy/mopidy.nix2
-rw-r--r--pkgs/applications/audio/mopidy/tunein.nix28
-rw-r--r--pkgs/applications/audio/mopidy/youtube.nix4
-rw-r--r--pkgs/applications/audio/mpg123/default.nix4
-rw-r--r--pkgs/applications/audio/muse/default.nix4
-rw-r--r--pkgs/applications/audio/musescore/default.nix15
-rw-r--r--pkgs/applications/audio/musikcube/default.nix4
-rw-r--r--pkgs/applications/audio/musly/default.nix4
-rw-r--r--pkgs/applications/audio/ncmpc/default.nix4
-rw-r--r--pkgs/applications/audio/ncspot/default.nix8
-rw-r--r--pkgs/applications/audio/netease-cloud-music/default.nix81
-rw-r--r--pkgs/applications/audio/noisetorch/config.patch13
-rw-r--r--pkgs/applications/audio/noisetorch/default.nix44
-rw-r--r--pkgs/applications/audio/noisetorch/embedlibrnnoise.patch13
-rw-r--r--pkgs/applications/audio/noisetorch/version.patch37
-rw-r--r--pkgs/applications/audio/openmpt123/default.nix4
-rw-r--r--pkgs/applications/audio/opusfile/default.nix4
-rw-r--r--pkgs/applications/audio/osmid/default.nix4
-rw-r--r--pkgs/applications/audio/padthv1/default.nix4
-rw-r--r--pkgs/applications/audio/parlatype/default.nix4
-rw-r--r--pkgs/applications/audio/pd-plugins/gem/default.nix62
-rw-r--r--pkgs/applications/audio/picard/default.nix5
-rw-r--r--pkgs/applications/audio/plexamp/default.nix39
-rw-r--r--pkgs/applications/audio/projectm/default.nix4
-rw-r--r--pkgs/applications/audio/pt2-clone/default.nix9
-rw-r--r--pkgs/applications/audio/puddletag/default.nix31
-rw-r--r--pkgs/applications/audio/pulseaudio-dlna/default.nix6
-rw-r--r--pkgs/applications/audio/pulseeffects/default.nix6
-rw-r--r--pkgs/applications/audio/qjackctl/default.nix4
-rw-r--r--pkgs/applications/audio/qmmp/default.nix4
-rw-r--r--pkgs/applications/audio/qsynth/default.nix4
-rw-r--r--pkgs/applications/audio/qtractor/default.nix4
-rw-r--r--pkgs/applications/audio/real_time_config_quick_scan/default.nix52
-rw-r--r--pkgs/applications/audio/reaper/default.nix4
-rw-r--r--pkgs/applications/audio/renoise/default.nix4
-rw-r--r--pkgs/applications/audio/rhvoice/default.nix4
-rw-r--r--pkgs/applications/audio/rosegarden/default.nix4
-rw-r--r--pkgs/applications/audio/sfizz/default.nix4
-rw-r--r--pkgs/applications/audio/shortwave/default.nix6
-rw-r--r--pkgs/applications/audio/sidplayfp/default.nix30
-rw-r--r--pkgs/applications/audio/snapcast/default.nix5
-rw-r--r--pkgs/applications/audio/snd/default.nix4
-rw-r--r--pkgs/applications/audio/sonata/default.nix36
-rw-r--r--pkgs/applications/audio/sonic-visualiser/default.nix18
-rw-r--r--pkgs/applications/audio/sooperlooper/default.nix8
-rw-r--r--pkgs/applications/audio/soundkonverter/default.nix11
-rw-r--r--pkgs/applications/audio/soundtracker/default.nix14
-rw-r--r--pkgs/applications/audio/spotify-tui/default.nix7
-rw-r--r--pkgs/applications/audio/strawberry/default.nix4
-rw-r--r--pkgs/applications/audio/sublime-music/default.nix60
-rw-r--r--pkgs/applications/audio/surge/default.nix48
-rw-r--r--pkgs/applications/audio/synthv1/default.nix4
-rw-r--r--pkgs/applications/audio/talentedhack/default.nix36
-rw-r--r--pkgs/applications/audio/tamgamp.lv2/default.nix53
-rw-r--r--pkgs/applications/audio/tunefish/default.nix43
-rw-r--r--pkgs/applications/audio/uhhyou.lv2/default.nix67
-rw-r--r--pkgs/applications/audio/virtual-ans/default.nix89
-rw-r--r--pkgs/applications/audio/vmpk/default.nix29
-rw-r--r--pkgs/applications/audio/vocal/default.nix3
-rw-r--r--pkgs/applications/audio/vocproc/default.nix27
-rw-r--r--pkgs/applications/audio/x42-plugins/default.nix4
-rw-r--r--pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations.patch (renamed from pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations)0
-rw-r--r--pkgs/applications/audio/yasr/20_maxpathlen.patch (renamed from pkgs/applications/audio/yasr/20_maxpathlen)0
-rw-r--r--pkgs/applications/audio/yasr/30_conf.patch (renamed from pkgs/applications/audio/yasr/30_conf)0
-rw-r--r--pkgs/applications/audio/yasr/40_dectalk_extended_chars.patch (renamed from pkgs/applications/audio/yasr/40_dectalk_extended_chars)0
-rw-r--r--pkgs/applications/audio/yasr/default.nix8
-rw-r--r--pkgs/applications/backup/vorta/default.nix4
-rw-r--r--pkgs/applications/blockchains/bitcoin-abc.nix22
-rw-r--r--pkgs/applications/blockchains/bitcoin-unlimited.nix6
-rw-r--r--pkgs/applications/blockchains/bitcoin.nix10
-rw-r--r--pkgs/applications/blockchains/btcdeb/default.nix12
-rw-r--r--pkgs/applications/blockchains/clightning.nix4
-rw-r--r--pkgs/applications/blockchains/dcrd.nix6
-rw-r--r--pkgs/applications/blockchains/dcrwallet.nix2
-rw-r--r--pkgs/applications/blockchains/ergo/default.nix4
-rw-r--r--pkgs/applications/blockchains/exodus/default.nix6
-rw-r--r--pkgs/applications/blockchains/go-ethereum.nix23
-rw-r--r--pkgs/applications/blockchains/ledger-live-desktop/default.nix4
-rw-r--r--pkgs/applications/blockchains/lnd.nix26
-rw-r--r--pkgs/applications/blockchains/mist.nix72
-rw-r--r--pkgs/applications/blockchains/monero-gui/default.nix4
-rw-r--r--pkgs/applications/blockchains/monero/default.nix8
-rw-r--r--pkgs/applications/blockchains/mycrypto/default.nix59
-rw-r--r--pkgs/applications/blockchains/namecoin.nix4
-rw-r--r--pkgs/applications/blockchains/openethereum/default.nix (renamed from pkgs/applications/blockchains/parity/default.nix)16
-rw-r--r--pkgs/applications/blockchains/openethereum/lock.patch20
-rw-r--r--pkgs/applications/blockchains/pivx.nix13
-rw-r--r--pkgs/applications/blockchains/quorum.nix2
-rw-r--r--pkgs/applications/blockchains/wasabibackend/default.nix4
-rw-r--r--pkgs/applications/blockchains/wasabibackend/deps.nix839
-rw-r--r--pkgs/applications/blockchains/wasabiwallet/default.nix6
-rw-r--r--pkgs/applications/blockchains/whirlpool-gui/default.nix3
-rw-r--r--pkgs/applications/blockchains/wownero.nix18
-rw-r--r--pkgs/applications/display-managers/lightdm/default.nix8
-rw-r--r--pkgs/applications/editors/android-studio/common.nix7
-rw-r--r--pkgs/applications/editors/android-studio/default.nix21
-rw-r--r--pkgs/applications/editors/atom/default.nix33
-rw-r--r--pkgs/applications/editors/brackets/default.nix4
-rw-r--r--pkgs/applications/editors/code-browser/default.nix48
-rw-r--r--pkgs/applications/editors/ed/default.nix5
-rw-r--r--pkgs/applications/editors/emacs-modes/elpa-generated.nix318
-rw-r--r--pkgs/applications/editors/emacs-modes/melpa-packages.nix6
-rw-r--r--pkgs/applications/editors/emacs-modes/org-generated.nix12
-rw-r--r--pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json12178
-rw-r--r--pkgs/applications/editors/emacs-modes/updater-emacs.nix2
-rw-r--r--pkgs/applications/editors/emacs/25.nix146
-rw-r--r--pkgs/applications/editors/emacs/26.nix8
-rw-r--r--pkgs/applications/editors/emacs/27.nix8
-rw-r--r--pkgs/applications/editors/emacs/clean-env-26.patch15
-rw-r--r--pkgs/applications/editors/emacs/clean-env.patch15
-rw-r--r--pkgs/applications/editors/emacs/generic.nix (renamed from pkgs/applications/editors/emacs/default.nix)125
-rw-r--r--pkgs/applications/editors/emacs/macport.nix19
-rw-r--r--pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch14
-rw-r--r--pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch10
-rw-r--r--pkgs/applications/editors/featherpad/default.nix12
-rw-r--r--pkgs/applications/editors/glow/default.nix4
-rw-r--r--pkgs/applications/editors/gnome-builder/default.nix4
-rw-r--r--pkgs/applications/editors/gophernotes/default.nix26
-rw-r--r--pkgs/applications/editors/hexdino/default.nix1
-rw-r--r--pkgs/applications/editors/jetbrains/default.nix58
-rw-r--r--pkgs/applications/editors/jupyter-kernels/iruby/Gemfile6
-rw-r--r--pkgs/applications/editors/jupyter-kernels/iruby/Gemfile.lock119
-rw-r--r--pkgs/applications/editors/jupyter-kernels/iruby/default.nix17
-rw-r--r--pkgs/applications/editors/jupyter-kernels/iruby/gemset.nix429
-rw-r--r--pkgs/applications/editors/kakoune/default.nix4
-rw-r--r--pkgs/applications/editors/kakoune/plugins/case.kak.nix27
-rw-r--r--pkgs/applications/editors/kakoune/plugins/default.nix2
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-fzf.nix6
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-prelude.nix25
-rw-r--r--pkgs/applications/editors/kibi/default.nix25
-rw-r--r--pkgs/applications/editors/lighttable/default.nix6
-rw-r--r--pkgs/applications/editors/lite/default.nix4
-rw-r--r--pkgs/applications/editors/nano/default.nix4
-rw-r--r--pkgs/applications/editors/neovim/default.nix18
-rw-r--r--pkgs/applications/editors/neovim/gnvim/default.nix8
-rw-r--r--pkgs/applications/editors/neovim/qt.nix1
-rw-r--r--pkgs/applications/editors/neovim/wrapper.nix118
-rw-r--r--pkgs/applications/editors/okteta/default.nix4
-rw-r--r--pkgs/applications/editors/quilter/default.nix8
-rw-r--r--pkgs/applications/editors/setzer/default.nix4
-rw-r--r--pkgs/applications/editors/sigil/default.nix17
-rw-r--r--pkgs/applications/editors/texstudio/default.nix4
-rw-r--r--pkgs/applications/editors/tiled/default.nix4
-rw-r--r--pkgs/applications/editors/typora/default.nix14
-rw-r--r--pkgs/applications/editors/vim/common.nix4
-rw-r--r--pkgs/applications/editors/vim/configurable.nix9
-rw-r--r--pkgs/applications/editors/vim/qvim.nix113
-rw-r--r--pkgs/applications/editors/viw/default.nix30
-rw-r--r--pkgs/applications/editors/vscode/generic.nix2
-rw-r--r--pkgs/applications/editors/vscode/vscode.nix6
-rw-r--r--pkgs/applications/editors/vscode/vscodium.nix6
-rw-r--r--pkgs/applications/editors/xxe-pe/default.nix77
-rw-r--r--pkgs/applications/gis/gmt/dcw.nix32
-rw-r--r--pkgs/applications/gis/gmt/default.nix73
-rw-r--r--pkgs/applications/gis/gmt/gshhg.nix31
-rw-r--r--pkgs/applications/gis/openorienteering-mapper/default.nix2
-rw-r--r--pkgs/applications/gis/qgis/unwrapped.nix4
-rw-r--r--pkgs/applications/gis/saga/default.nix91
-rw-r--r--pkgs/applications/gis/saga/opencv4.patch14
-rw-r--r--pkgs/applications/gis/whitebox-tools/default.nix1
-rw-r--r--pkgs/applications/graphics/ImageMagick/7.0.nix4
-rw-r--r--pkgs/applications/graphics/darktable/default.nix10
-rw-r--r--pkgs/applications/graphics/digikam/default.nix14
-rw-r--r--pkgs/applications/graphics/draftsight/default.nix88
-rw-r--r--pkgs/applications/graphics/drawio/default.nix7
-rw-r--r--pkgs/applications/graphics/drawpile/default.nix69
-rw-r--r--pkgs/applications/graphics/feh/default.nix4
-rw-r--r--pkgs/applications/graphics/fluxus/default.nix4
-rw-r--r--pkgs/applications/graphics/fondo/default.nix3
-rw-r--r--pkgs/applications/graphics/gcolor3/default.nix43
-rw-r--r--pkgs/applications/graphics/gimp/default.nix64
-rw-r--r--pkgs/applications/graphics/gimp/hardcode-plugin-interpreters.patch11
-rw-r--r--pkgs/applications/graphics/gnome-photos/default.nix2
-rw-r--r--pkgs/applications/graphics/gscan2pdf/default.nix5
-rw-r--r--pkgs/applications/graphics/ideogram/default.nix3
-rw-r--r--pkgs/applications/graphics/inkscape/0.x.nix133
-rw-r--r--pkgs/applications/graphics/inkscape/default.nix50
-rw-r--r--pkgs/applications/graphics/inkscape/fix-python-paths.patch15
-rw-r--r--pkgs/applications/graphics/krita/default.nix4
-rw-r--r--pkgs/applications/graphics/lazpaint/default.nix72
-rw-r--r--pkgs/applications/graphics/lightburn/default.nix49
-rw-r--r--pkgs/applications/graphics/mandelbulber/default.nix4
-rw-r--r--pkgs/applications/graphics/meshlab/default.nix166
-rw-r--r--pkgs/applications/graphics/meshlab/meshlab.desktop14
-rw-r--r--pkgs/applications/graphics/mypaint/default.nix8
-rw-r--r--pkgs/applications/graphics/nomacs/default.nix4
-rw-r--r--pkgs/applications/graphics/odafileconverter/default.nix53
-rw-r--r--pkgs/applications/graphics/opentoonz/default.nix51
-rw-r--r--pkgs/applications/graphics/opentoonz/libtiff.nix21
-rw-r--r--pkgs/applications/graphics/opentoonz/source.nix16
-rw-r--r--pkgs/applications/graphics/pdfcpu/default.nix12
-rw-r--r--pkgs/applications/graphics/pencil/default.nix2
-rw-r--r--pkgs/applications/graphics/qosmic/default.nix70
-rw-r--r--pkgs/applications/graphics/renderdoc/default.nix4
-rw-r--r--pkgs/applications/graphics/runwayml/default.nix9
-rw-r--r--pkgs/applications/graphics/sane/backends/airscan/default.nix4
-rw-r--r--pkgs/applications/graphics/shotwell/default.nix6
-rw-r--r--pkgs/applications/graphics/viewnior/default.nix46
-rw-r--r--pkgs/applications/graphics/write_stylus/default.nix28
-rw-r--r--pkgs/applications/graphics/xfractint/default.nix4
-rw-r--r--pkgs/applications/graphics/yeetgif/default.nix1
-rw-r--r--pkgs/applications/kde/akonadi/0001-akonadi-paths.patch (renamed from pkgs/applications/kde/akonadi/akonadi-paths.patch)98
-rw-r--r--pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch26
-rw-r--r--pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch (renamed from pkgs/applications/kde/akonadi/0001-Revert-Make-Akonadi-installation-properly-relocatabl.patch)34
-rw-r--r--pkgs/applications/kde/akonadi/akonadi-timestamps.patch14
-rw-r--r--pkgs/applications/kde/akonadi/default.nix8
-rw-r--r--pkgs/applications/kde/akonadi/series3
-rw-r--r--pkgs/applications/kde/bomber.nix30
-rw-r--r--pkgs/applications/kde/bovo.nix28
-rw-r--r--pkgs/applications/kde/calendarsupport.nix4
-rw-r--r--pkgs/applications/kde/default.nix30
-rw-r--r--pkgs/applications/kde/fetch.sh2
-rw-r--r--pkgs/applications/kde/granatier.nix23
-rw-r--r--pkgs/applications/kde/grantleetheme/default.nix3
-rw-r--r--pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch155
-rw-r--r--pkgs/applications/kde/grantleetheme/series1
-rw-r--r--pkgs/applications/kde/incidenceeditor.nix4
-rw-r--r--pkgs/applications/kde/kalzium.nix26
-rw-r--r--pkgs/applications/kde/kapman.nix21
-rw-r--r--pkgs/applications/kde/katomic.nix22
-rw-r--r--pkgs/applications/kde/kblackbox.nix21
-rw-r--r--pkgs/applications/kde/kblocks.nix21
-rw-r--r--pkgs/applications/kde/kbounce.nix22
-rw-r--r--pkgs/applications/kde/kdegraphics-thumbnailers.nix8
-rw-r--r--pkgs/applications/kde/kdenlive.nix4
-rw-r--r--pkgs/applications/kde/kdepim-apps-libs/default.nix3
-rw-r--r--pkgs/applications/kde/kdepim-apps-libs/kdepim-apps-libs-grantlee-merge-theme-dirs.patch62
-rw-r--r--pkgs/applications/kde/kdepim-apps-libs/series1
-rw-r--r--pkgs/applications/kde/kdepim-runtime/default.nix10
-rw-r--r--pkgs/applications/kde/kdiamond.nix23
-rw-r--r--pkgs/applications/kde/kfloppy.nix20
-rw-r--r--pkgs/applications/kde/kigo.nix22
-rw-r--r--pkgs/applications/kde/killbots.nix21
-rw-r--r--pkgs/applications/kde/kio-extras.nix12
-rw-r--r--pkgs/applications/kde/klettres.nix22
-rw-r--r--pkgs/applications/kde/klines.nix21
-rw-r--r--pkgs/applications/kde/kmag.nix20
-rw-r--r--pkgs/applications/kde/kmail.nix4
-rw-r--r--pkgs/applications/kde/kmail.patch24
-rw-r--r--pkgs/applications/kde/kmines.nix23
-rw-r--r--pkgs/applications/kde/knavalbattle.nix22
-rw-r--r--pkgs/applications/kde/knetwalk.nix21
-rw-r--r--pkgs/applications/kde/knights.nix23
-rw-r--r--pkgs/applications/kde/kollision.nix21
-rw-r--r--pkgs/applications/kde/kontact.nix4
-rw-r--r--pkgs/applications/kde/kreversi.nix19
-rw-r--r--pkgs/applications/kde/kshisen.nix22
-rw-r--r--pkgs/applications/kde/ksquares.nix22
-rw-r--r--pkgs/applications/kde/kteatime.nix23
-rw-r--r--pkgs/applications/kde/ktimer.nix20
-rw-r--r--pkgs/applications/kde/kturtle.nix21
-rw-r--r--pkgs/applications/kde/kwave.nix37
-rw-r--r--pkgs/applications/kde/mailimporter.nix4
-rw-r--r--pkgs/applications/kde/marble.nix4
-rw-r--r--pkgs/applications/kde/messagelib.nix4
-rw-r--r--pkgs/applications/kde/picmi.nix25
-rw-r--r--pkgs/applications/kde/pimcommon.nix10
-rw-r--r--pkgs/applications/kde/spectacle.nix4
-rw-r--r--pkgs/applications/kde/srcs.nix1742
-rw-r--r--pkgs/applications/logging/humioctl/default.nix39
-rw-r--r--pkgs/applications/misc/1password/default.nix34
-rw-r--r--pkgs/applications/misc/ArchiSteamFarm/default.nix6
-rw-r--r--pkgs/applications/misc/adobe-reader/default.nix4
-rw-r--r--pkgs/applications/misc/alacritty/default.nix6
-rw-r--r--pkgs/applications/misc/appeditor/default.nix3
-rw-r--r--pkgs/applications/misc/archiver/default.nix5
-rw-r--r--pkgs/applications/misc/ausweisapp2/default.nix4
-rw-r--r--pkgs/applications/misc/batsignal/default.nix4
-rw-r--r--pkgs/applications/misc/bemenu/default.nix4
-rw-r--r--pkgs/applications/misc/birdtray/default.nix11
-rw-r--r--pkgs/applications/misc/birdtray/fix-qttranslations-path.diff13
-rw-r--r--pkgs/applications/misc/bleachbit/default.nix16
-rw-r--r--pkgs/applications/misc/blender/default.nix4
-rw-r--r--pkgs/applications/misc/break-time/default.nix45
-rw-r--r--pkgs/applications/misc/calibre/default.nix61
-rw-r--r--pkgs/applications/misc/cheat/default.nix6
-rw-r--r--pkgs/applications/misc/chewing-editor/default.nix30
-rw-r--r--pkgs/applications/misc/cipher/default.nix3
-rw-r--r--pkgs/applications/misc/clight/default.nix4
-rw-r--r--pkgs/applications/misc/clipmenu/default.nix20
-rw-r--r--pkgs/applications/misc/coolreader/default.nix26
-rw-r--r--pkgs/applications/misc/copyq/default.nix4
-rw-r--r--pkgs/applications/misc/cura/default.nix6
-rw-r--r--pkgs/applications/misc/cura/plugins.nix6
-rw-r--r--pkgs/applications/misc/curaengine/default.nix4
-rw-r--r--pkgs/applications/misc/dbeaver/default.nix4
-rw-r--r--pkgs/applications/misc/ddgr/default.nix4
-rw-r--r--pkgs/applications/misc/direwolf/default.nix43
-rw-r--r--pkgs/applications/misc/dmenu/wayland.nix6
-rw-r--r--pkgs/applications/misc/dstask/default.nix6
-rw-r--r--pkgs/applications/misc/dunst/default.nix4
-rw-r--r--pkgs/applications/misc/effitask/cargo-lock.patch1091
-rw-r--r--pkgs/applications/misc/effitask/default.nix50
-rw-r--r--pkgs/applications/misc/electrum/default.nix40
-rw-r--r--pkgs/applications/misc/electrum/ltc.nix8
-rw-r--r--pkgs/applications/misc/et/default.nix6
-rw-r--r--pkgs/applications/misc/etesync-dav/default.nix12
-rw-r--r--pkgs/applications/misc/exercism/default.nix4
-rw-r--r--pkgs/applications/misc/firestarter/default.nix4
-rw-r--r--pkgs/applications/misc/font-manager/default.nix4
-rw-r--r--pkgs/applications/misc/fontpreview/default.nix40
-rw-r--r--pkgs/applications/misc/foot/default.nix38
-rw-r--r--pkgs/applications/misc/formatter/default.nix3
-rw-r--r--pkgs/applications/misc/fslint/default.nix41
-rw-r--r--pkgs/applications/misc/fuzzel/default.nix23
-rw-r--r--pkgs/applications/misc/gallery-dl/default.nix4
-rw-r--r--pkgs/applications/misc/gcstar/default.nix72
-rw-r--r--pkgs/applications/misc/geoipupdate/default.nix5
-rw-r--r--pkgs/applications/misc/girara/default.nix6
-rw-r--r--pkgs/applications/misc/glom/default.nix19
-rw-r--r--pkgs/applications/misc/go-jira/default.nix2
-rw-r--r--pkgs/applications/misc/gollum/Gemfile.lock21
-rw-r--r--pkgs/applications/misc/gollum/gemset.nix37
-rw-r--r--pkgs/applications/misc/gomatrix/default.nix4
-rw-r--r--pkgs/applications/misc/googleearth/default.nix5
-rw-r--r--pkgs/applications/misc/googler/default.nix18
-rw-r--r--pkgs/applications/misc/gopacked/default.nix2
-rw-r--r--pkgs/applications/misc/havoc/default.nix6
-rw-r--r--pkgs/applications/misc/hovercraft/default.nix4
-rw-r--r--pkgs/applications/misc/html5validator/default.nix25
-rw-r--r--pkgs/applications/misc/hugo/default.nix24
-rw-r--r--pkgs/applications/misc/imag/default.nix63
-rw-r--r--pkgs/applications/misc/inkcut/default.nix54
-rw-r--r--pkgs/applications/misc/jekyll/basic/Gemfile.lock14
-rw-r--r--pkgs/applications/misc/jekyll/basic/gemset.nix28
-rw-r--r--pkgs/applications/misc/jekyll/full/Gemfile.lock16
-rw-r--r--pkgs/applications/misc/jekyll/full/gemset.nix32
-rw-r--r--pkgs/applications/misc/joplin-desktop/default.nix24
-rw-r--r--pkgs/applications/misc/josm/default.nix6
-rw-r--r--pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch49
-rw-r--r--pkgs/applications/misc/k2pdfopt/default.nix148
-rw-r--r--pkgs/applications/misc/k2pdfopt/k2pdfopt-mupdf-1.16.1.patch151
-rw-r--r--pkgs/applications/misc/k2pdfopt/k2pdfopt.patch99
-rw-r--r--pkgs/applications/misc/k2pdfopt/leptonica.patch254
-rw-r--r--pkgs/applications/misc/k2pdfopt/mupdf.patch1060
-rw-r--r--pkgs/applications/misc/k2pdfopt/tesseract.patch675
-rw-r--r--pkgs/applications/misc/keepassx/community.nix11
-rw-r--r--pkgs/applications/misc/khal/default.nix11
-rw-r--r--pkgs/applications/misc/khal/skip-broken-test.patch12
-rw-r--r--pkgs/applications/misc/khard/default.nix4
-rw-r--r--pkgs/applications/misc/kitty/default.nix18
-rw-r--r--pkgs/applications/misc/klayout/default.nix4
-rw-r--r--pkgs/applications/misc/kondo/default.nix6
-rw-r--r--pkgs/applications/misc/krename/default.nix2
-rw-r--r--pkgs/applications/misc/lutris/default.nix12
-rw-r--r--pkgs/applications/misc/lutris/fhsenv.nix (renamed from pkgs/applications/misc/lutris/chrootenv.nix)2
-rw-r--r--pkgs/applications/misc/lyx/default.nix4
-rw-r--r--pkgs/applications/misc/makeself/default.nix3
-rw-r--r--pkgs/applications/misc/marktext/default.nix12
-rw-r--r--pkgs/applications/misc/masterpdfeditor/default.nix4
-rw-r--r--pkgs/applications/misc/mediainfo-gui/default.nix8
-rw-r--r--pkgs/applications/misc/mediainfo/default.nix4
-rw-r--r--pkgs/applications/misc/megasync/default.nix4
-rw-r--r--pkgs/applications/misc/minder/default.nix4
-rw-r--r--pkgs/applications/misc/mlterm/default.nix5
-rw-r--r--pkgs/applications/misc/moolticute/default.nix4
-rw-r--r--pkgs/applications/misc/mop/default.nix1
-rw-r--r--pkgs/applications/misc/mysql-workbench/default.nix6
-rw-r--r--pkgs/applications/misc/navi/default.nix29
-rw-r--r--pkgs/applications/misc/netsurf/libnsbmp/default.nix4
-rw-r--r--pkgs/applications/misc/nimmm/default.nix2
-rw-r--r--pkgs/applications/misc/nnn/default.nix4
-rw-r--r--pkgs/applications/misc/notejot/default.nix4
-rw-r--r--pkgs/applications/misc/nwg-launchers/default.nix49
-rw-r--r--pkgs/applications/misc/obinskit/default.nix7
-rw-r--r--pkgs/applications/misc/obsidian/default.nix4
-rw-r--r--pkgs/applications/misc/octoprint/default.nix238
-rw-r--r--pkgs/applications/misc/octoprint/plugins.nix38
-rw-r--r--pkgs/applications/misc/ola/default.nix34
-rw-r--r--pkgs/applications/misc/olifant/default.nix69
-rw-r--r--pkgs/applications/misc/openambit/default.nix48
-rw-r--r--pkgs/applications/misc/openjump/default.nix36
-rw-r--r--pkgs/applications/misc/openrgb/default.nix8
-rw-r--r--pkgs/applications/misc/orca/default.nix4
-rw-r--r--pkgs/applications/misc/pastel/default.nix1
-rw-r--r--pkgs/applications/misc/pdfarranger/default.nix5
-rw-r--r--pkgs/applications/misc/pdfpc/default.nix12
-rw-r--r--pkgs/applications/misc/pdfsam-basic/default.nix6
-rw-r--r--pkgs/applications/misc/pipr/default.nix34
-rw-r--r--pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix4
-rw-r--r--pkgs/applications/misc/pueue/default.nix6
-rw-r--r--pkgs/applications/misc/qcad/application-dir.patch13
-rw-r--r--pkgs/applications/misc/qcad/default.nix16
-rw-r--r--pkgs/applications/misc/qdirstat/default.nix12
-rw-r--r--pkgs/applications/misc/qt-video-wlr/default.nix46
-rw-r--r--pkgs/applications/misc/redshift/default.nix34
-rw-r--r--pkgs/applications/misc/remarkable/rmapi/default.nix3
-rw-r--r--pkgs/applications/misc/rescuetime/default.nix12
-rw-r--r--pkgs/applications/misc/rsclock/default.nix4
-rw-r--r--pkgs/applications/misc/sampler/default.nix4
-rw-r--r--pkgs/applications/misc/sdcv/default.nix4
-rw-r--r--pkgs/applications/misc/sequeler/default.nix4
-rw-r--r--pkgs/applications/misc/sidequest/default.nix4
-rw-r--r--pkgs/applications/misc/simplenote/default.nix7
-rw-r--r--pkgs/applications/misc/sl1-to-photon/default.nix41
-rw-r--r--pkgs/applications/misc/slstatus/default.nix12
-rw-r--r--pkgs/applications/misc/snowsql/default.nix50
-rw-r--r--pkgs/applications/misc/stretchly/default.nix5
-rw-r--r--pkgs/applications/misc/subsurface/0001-core-fix-libgit-ifdef-to-handle-libgit2-v1.0-and-onw.patch41
-rw-r--r--pkgs/applications/misc/subsurface/default.nix15
-rw-r--r--pkgs/applications/misc/super_user_spark/default.nix32
-rw-r--r--pkgs/applications/misc/sweethome3d/default.nix4
-rw-r--r--pkgs/applications/misc/syncthing-tray/default.nix1
-rw-r--r--pkgs/applications/misc/syncthingtray/default.nix4
-rw-r--r--pkgs/applications/misc/synergy/default.nix13
-rw-r--r--pkgs/applications/misc/systembus-notify/default.nix4
-rw-r--r--pkgs/applications/misc/taskell/default.nix65
-rw-r--r--pkgs/applications/misc/tdrop/default.nix24
-rw-r--r--pkgs/applications/misc/teleprompter/default.nix5
-rw-r--r--pkgs/applications/misc/terminal-parrot/default.nix5
-rw-r--r--pkgs/applications/misc/timewarrior/default.nix4
-rw-r--r--pkgs/applications/misc/tipp10/default.nix6
-rw-r--r--pkgs/applications/misc/tippecanoe/default.nix5
-rw-r--r--pkgs/applications/misc/todiff/default.nix1
-rw-r--r--pkgs/applications/misc/todoist-electron/default.nix6
-rw-r--r--pkgs/applications/misc/todoist/default.nix4
-rw-r--r--pkgs/applications/misc/tootle/default.nix3
-rw-r--r--pkgs/applications/misc/tty-solitaire/default.nix27
-rw-r--r--pkgs/applications/misc/tut/default.nix4
-rw-r--r--pkgs/applications/misc/ulauncher/default.nix8
-rw-r--r--pkgs/applications/misc/urlscan/default.nix4
-rw-r--r--pkgs/applications/misc/waybar/default.nix8
-rw-r--r--pkgs/applications/misc/weather/default.nix4
-rw-r--r--pkgs/applications/misc/wofi/default.nix21
-rw-r--r--pkgs/applications/misc/wofi/do_not_follow_symlinks.patch39
-rw-r--r--pkgs/applications/misc/worker/default.nix4
-rw-r--r--pkgs/applications/misc/wtf/default.nix8
-rw-r--r--pkgs/applications/misc/x3270/default.nix44
-rw-r--r--pkgs/applications/misc/xmenu/default.nix25
-rw-r--r--pkgs/applications/misc/zathura/core/default.nix7
-rw-r--r--pkgs/applications/misc/zettlr/default.nix38
-rw-r--r--pkgs/applications/misc/zola/default.nix13
-rw-r--r--pkgs/applications/networking/Sylk/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/amfora/default.nix24
-rw-r--r--pkgs/applications/networking/browsers/asuka/cargo-lock.patch1351
-rw-r--r--pkgs/applications/networking/browsers/asuka/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/captive-browser/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/castor/default.nix7
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix60
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix61
-rw-r--r--pkgs/applications/networking/browsers/chromium/patches/enable-vdpau-support-for-nvidia.patch9
-rw-r--r--pkgs/applications/networking/browsers/chromium/plugins.nix5
-rw-r--r--pkgs/applications/networking/browsers/chromium/update.nix271
-rwxr-xr-xpkgs/applications/networking/browsers/chromium/update.py63
-rwxr-xr-xpkgs/applications/networking/browsers/chromium/update.sh4
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.json17
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.nix18
-rw-r--r--pkgs/applications/networking/browsers/elinks/debian-patches.nix34
-rw-r--r--pkgs/applications/networking/browsers/elinks/debian-patches.txt8
-rw-r--r--pkgs/applications/networking/browsers/elinks/default.nix34
-rw-r--r--pkgs/applications/networking/browsers/elinks/gc-init.patch17
-rw-r--r--pkgs/applications/networking/browsers/elinks/openssl-1.1.patch51
-rw-r--r--pkgs/applications/networking/browsers/eolie/default.nix27
-rw-r--r--pkgs/applications/networking/browsers/ephemeral/default.nix3
-rw-r--r--pkgs/applications/networking/browsers/falkon/default.nix10
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix770
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix770
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/release_sources.nix770
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/update.nix11
-rw-r--r--pkgs/applications/networking/browsers/firefox/common.nix35
-rw-r--r--pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx65.patch1
-rw-r--r--pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch1
-rw-r--r--pkgs/applications/networking/browsers/firefox/packages.nix63
-rw-r--r--pkgs/applications/networking/browsers/firefox/wrapper.nix25
-rw-r--r--pkgs/applications/networking/browsers/google-chrome/default.nix16
-rw-r--r--pkgs/applications/networking/browsers/links2/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix10
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix6
-rw-r--r--pkgs/applications/networking/browsers/opera/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/palemoon/default.nix57
-rw-r--r--pkgs/applications/networking/browsers/qutebrowser/default.nix32
-rw-r--r--pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch2
-rw-r--r--pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix11
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/common.nix34
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/default.nix28
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-vdpau-support-for-nvidia.patch9
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix5
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix6
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix18
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/default.nix4
-rw-r--r--pkgs/applications/networking/cloudflared/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/argo/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/atlantis/default.nix9
-rw-r--r--pkgs/applications/networking/cluster/chronos/chronos-deps.nix14
-rw-r--r--pkgs/applications/networking/cluster/chronos/default.nix39
-rw-r--r--pkgs/applications/networking/cluster/chronos/fetch-chronos-deps.sh1672
-rw-r--r--pkgs/applications/networking/cluster/cni/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/cni/plugins.nix10
-rw-r--r--pkgs/applications/networking/cluster/docker-machine/hyperkit.nix6
-rw-r--r--pkgs/applications/networking/cluster/docker-machine/kvm2.nix6
-rw-r--r--pkgs/applications/networking/cluster/fluxctl/default.nix21
-rw-r--r--pkgs/applications/networking/cluster/helm/default.nix10
-rw-r--r--pkgs/applications/networking/cluster/helmfile/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/helmsman/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/hetzner-kube/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/istioctl/default.nix51
-rw-r--r--pkgs/applications/networking/cluster/jx/default.nix23
-rw-r--r--pkgs/applications/networking/cluster/k9s/default.nix12
-rw-r--r--pkgs/applications/networking/cluster/kops/default.nix25
-rw-r--r--pkgs/applications/networking/cluster/kpt/default.nix25
-rw-r--r--pkgs/applications/networking/cluster/kube-router/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kube3d/default.nix26
-rw-r--r--pkgs/applications/networking/cluster/kubernetes/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubeseal/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/kubespy/default.nix33
-rw-r--r--pkgs/applications/networking/cluster/kubetail/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubeval/default.nix5
-rw-r--r--pkgs/applications/networking/cluster/linkerd/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/luigi/default.nix19
-rw-r--r--pkgs/applications/networking/cluster/marathon/default.nix30
-rw-r--r--pkgs/applications/networking/cluster/mesos/default.nix263
-rw-r--r--pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh1359
-rw-r--r--pkgs/applications/networking/cluster/mesos/mesos-deps.nix14
-rw-r--r--pkgs/applications/networking/cluster/mesos/nixos.patch731
-rw-r--r--pkgs/applications/networking/cluster/mesos/rb36610.patch12
-rw-r--r--pkgs/applications/networking/cluster/minikube/default.nix13
-rw-r--r--pkgs/applications/networking/cluster/node-problem-detector/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/nomad/0.11.nix6
-rw-r--r--pkgs/applications/networking/cluster/nomad/0.12.nix6
-rw-r--r--pkgs/applications/networking/cluster/nomad/generic.nix (renamed from pkgs/applications/networking/cluster/nomad/default.nix)7
-rw-r--r--pkgs/applications/networking/cluster/prow/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/qbec/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/spark/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/ssm-agent/default.nix47
-rw-r--r--pkgs/applications/networking/cluster/tanka/default.nix34
-rw-r--r--pkgs/applications/networking/cluster/terraform-compliance/default.nix56
-rw-r--r--pkgs/applications/networking/cluster/terraform-inventory/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/keycloak/default.nix30
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/shell/default.nix30
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix12
-rw-r--r--pkgs/applications/networking/cluster/terragrunt/default.nix10
-rw-r--r--pkgs/applications/networking/cluster/tilt/default.nix19
-rw-r--r--pkgs/applications/networking/feedreaders/feedreader/default.nix18
-rw-r--r--pkgs/applications/networking/feedreaders/newsflash/default.nix88
-rw-r--r--pkgs/applications/networking/feedreaders/newsflash/no-post-install.patch10
-rw-r--r--pkgs/applications/networking/feedreaders/rss2email/default.nix9
-rw-r--r--pkgs/applications/networking/feedreaders/rssguard/default.nix4
-rw-r--r--pkgs/applications/networking/firehol/default.nix2
-rw-r--r--pkgs/applications/networking/firehol/iprange.nix2
-rw-r--r--pkgs/applications/networking/flexget/default.nix6
-rw-r--r--pkgs/applications/networking/ftp/filezilla/default.nix4
-rw-r--r--pkgs/applications/networking/ftp/taxi/default.nix4
-rw-r--r--pkgs/applications/networking/gmailctl/default.nix4
-rw-r--r--pkgs/applications/networking/gns3/default.nix17
-rw-r--r--pkgs/applications/networking/gns3/gui.nix14
-rw-r--r--pkgs/applications/networking/gns3/server.nix19
-rw-r--r--pkgs/applications/networking/gopher/sacc/default.nix32
-rw-r--r--pkgs/applications/networking/hydroxide/default.nix10
-rw-r--r--pkgs/applications/networking/ids/zeek/default.nix30
-rw-r--r--pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix7
-rw-r--r--pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/bitlbee/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/bluejeans/default.nix13
-rw-r--r--pkgs/applications/networking/instant-messengers/chatterino2/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/cordless/default.nix25
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/default.nix12
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop-package.json (renamed from pkgs/applications/networking/instant-messengers/riot/riot-desktop-package.json)33
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix (renamed from pkgs/applications/networking/instant-messengers/riot/riot-desktop-yarndeps.nix)1376
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop.nix (renamed from pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix)55
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-web.nix (renamed from pkgs/applications/networking/instant-messengers/riot/riot-web.nix)12
-rwxr-xr-xpkgs/applications/networking/instant-messengers/element/update-element-desktop.sh17
-rw-r--r--pkgs/applications/networking/instant-messengers/ferdi/default.nix19
-rw-r--r--pkgs/applications/networking/instant-messengers/fractal/default.nix20
-rw-r--r--pkgs/applications/networking/instant-messengers/franz/default.nix52
-rw-r--r--pkgs/applications/networking/instant-messengers/franz/generic.nix90
-rw-r--r--pkgs/applications/networking/instant-messengers/gajim/default.nix32
-rw-r--r--pkgs/applications/networking/instant-messengers/go-neb/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/gomuks/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/jitsi/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch2
-rw-r--r--pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/mirage/default.nix57
-rw-r--r--pkgs/applications/networking/instant-messengers/pantalaimon/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix3
-rw-r--r--pkgs/applications/networking/instant-messengers/profanity/default.nix12
-rw-r--r--pkgs/applications/networking/instant-messengers/profanity/patches/undefined-macros.patch40
-rw-r--r--pkgs/applications/networking/instant-messengers/psi-plus/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/rambox/default.nix14
-rw-r--r--pkgs/applications/networking/instant-messengers/rambox/pro.nix5
-rwxr-xr-xpkgs/applications/networking/instant-messengers/riot/update-riot-desktop.sh17
-rwxr-xr-xpkgs/applications/networking/instant-messengers/ripcord/default.nix7
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix11
-rw-r--r--pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/slack/default.nix55
-rw-r--r--pkgs/applications/networking/instant-messengers/ssh-chat/default.nix24
-rw-r--r--pkgs/applications/networking/instant-messengers/ssh-chat/deps.nix84
-rw-r--r--pkgs/applications/networking/instant-messengers/swift-im/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/teams/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix11
-rw-r--r--pkgs/applications/networking/instant-messengers/vk-messenger/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/wavebox/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/wire-desktop/default.nix11
-rw-r--r--pkgs/applications/networking/instant-messengers/ytalk/default.nix21
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix13
-rw-r--r--pkgs/applications/networking/instant-messengers/zulip/default.nix4
-rw-r--r--pkgs/applications/networking/insync/default.nix4
-rw-r--r--pkgs/applications/networking/ipfs-cluster/default.nix4
-rw-r--r--pkgs/applications/networking/ipfs-migrator/default.nix8
-rw-r--r--pkgs/applications/networking/ipget/default.nix2
-rw-r--r--pkgs/applications/networking/irc/convos/default.nix22
-rw-r--r--pkgs/applications/networking/irc/quassel/0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch37
-rw-r--r--pkgs/applications/networking/irc/quassel/default.nix6
-rw-r--r--pkgs/applications/networking/irc/tiny/default.nix3
-rw-r--r--pkgs/applications/networking/irc/weechat/default.nix8
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/default.nix2
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix2
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix31
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix12
-rw-r--r--pkgs/applications/networking/mailreaders/aerc/default.nix23
-rw-r--r--pkgs/applications/networking/mailreaders/alpine/default.nix5
-rw-r--r--pkgs/applications/networking/mailreaders/claws-mail/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix49
-rw-r--r--pkgs/applications/networking/mailreaders/hasmail/default.nix5
-rw-r--r--pkgs/applications/networking/mailreaders/mailnag/default.nix66
-rw-r--r--pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix31
-rw-r--r--pkgs/applications/networking/mailreaders/mailspring/default.nix85
-rw-r--r--pkgs/applications/networking/mailreaders/meli/default.nix8
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/neomutt/default.nix6
-rw-r--r--pkgs/applications/networking/mailreaders/notmuch-bower/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/notmuch/default.nix14
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix183
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/68_sources.nix615
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix540
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/68.nix340
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/default.nix27
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-68.patch36
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch26
-rw-r--r--pkgs/applications/networking/mailreaders/trojita/default.nix6
-rw-r--r--pkgs/applications/networking/modem-manager-gui/default.nix29
-rw-r--r--pkgs/applications/networking/msmtp/default.nix4
-rw-r--r--pkgs/applications/networking/mullvad-vpn/default.nix4
-rw-r--r--pkgs/applications/networking/mumble/default.nix13
-rw-r--r--pkgs/applications/networking/ncgopher/default.nix37
-rw-r--r--pkgs/applications/networking/newsreaders/liferea/default.nix8
-rw-r--r--pkgs/applications/networking/nextcloud-client/default.nix4
-rw-r--r--pkgs/applications/networking/nextdns/default.nix26
-rw-r--r--pkgs/applications/networking/openbazaar/client.nix9
-rw-r--r--pkgs/applications/networking/owncloud-client/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix4
-rw-r--r--pkgs/applications/networking/p2p/gnunet/default.nix10
-rw-r--r--pkgs/applications/networking/p2p/gnunet/gtk.nix43
-rw-r--r--pkgs/applications/networking/p2p/magnetico/default.nix3
-rw-r--r--pkgs/applications/networking/p2p/stig/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/synapse-bt/default.nix1
-rw-r--r--pkgs/applications/networking/p2p/tixati/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/torrential/default.nix3
-rw-r--r--pkgs/applications/networking/p2p/transmission/default.nix3
-rw-r--r--pkgs/applications/networking/p2p/tremc/default.nix49
-rw-r--r--pkgs/applications/networking/ping/default.nix3
-rw-r--r--pkgs/applications/networking/protonvpn-cli-ng/default.nix36
-rw-r--r--pkgs/applications/networking/protonvpn-cli/default.nix57
-rw-r--r--pkgs/applications/networking/protonvpn-gui/default.nix86
-rw-r--r--pkgs/applications/networking/remote/anydesk/default.nix6
-rw-r--r--pkgs/applications/networking/remote/citrix-workspace/default.nix266
-rw-r--r--pkgs/applications/networking/remote/citrix-workspace/generic.nix203
-rw-r--r--pkgs/applications/networking/remote/citrix-workspace/sources.nix58
-rw-r--r--pkgs/applications/networking/remote/citrix-workspace/wrapper.nix19
-rw-r--r--pkgs/applications/networking/remote/freerdp/default.nix4
-rw-r--r--pkgs/applications/networking/remote/putty/default.nix4
-rw-r--r--pkgs/applications/networking/remote/remmina/default.nix4
-rw-r--r--pkgs/applications/networking/remote/teamviewer/default.nix4
-rw-r--r--pkgs/applications/networking/remote/waypipe/default.nix13
-rw-r--r--pkgs/applications/networking/remote/wayvnc/add-missing-librt.patch20
-rw-r--r--pkgs/applications/networking/remote/wayvnc/default.nix17
-rw-r--r--pkgs/applications/networking/resilio-sync/default.nix6
-rw-r--r--pkgs/applications/networking/scaleft/default.nix4
-rw-r--r--pkgs/applications/networking/seafile-client/default.nix4
-rw-r--r--pkgs/applications/networking/sniffers/ettercap/default.nix4
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/default.nix4
-rw-r--r--pkgs/applications/networking/ssb-patchwork/default.nix26
-rw-r--r--pkgs/applications/networking/sync/rclone/default.nix29
-rw-r--r--pkgs/applications/networking/syncplay/default.nix4
-rw-r--r--pkgs/applications/networking/syncthing/default.nix10
-rw-r--r--pkgs/applications/networking/termius/default.nix7
-rw-r--r--pkgs/applications/networking/utahfs/default.nix24
-rw-r--r--pkgs/applications/networking/utahfs/deps.nix327
-rw-r--r--pkgs/applications/networking/weather/meteo/default.nix9
-rw-r--r--pkgs/applications/networking/websocketd/default.nix4
-rw-r--r--pkgs/applications/networking/wg-bond/default.nix29
-rw-r--r--pkgs/applications/office/aesop/default.nix4
-rw-r--r--pkgs/applications/office/agenda/default.nix3
-rw-r--r--pkgs/applications/office/beamerpresenter/default.nix40
-rw-r--r--pkgs/applications/office/calligra/default.nix27
-rw-r--r--pkgs/applications/office/elementary-planner/default.nix4
-rw-r--r--pkgs/applications/office/envelope/default.nix3
-rw-r--r--pkgs/applications/office/espanso/default.nix7
-rw-r--r--pkgs/applications/office/flexibee/default.nix4
-rw-r--r--pkgs/applications/office/gnumeric/default.nix8
-rw-r--r--pkgs/applications/office/gtg/default.nix75
-rw-r--r--pkgs/applications/office/khronos/default.nix3
-rw-r--r--pkgs/applications/office/ledger/default.nix27
-rw-r--r--pkgs/applications/office/libreoffice/default.nix11
-rw-r--r--pkgs/applications/office/libreoffice/src-fresh/download.nix178
-rw-r--r--pkgs/applications/office/libreoffice/src-fresh/primary.nix14
-rw-r--r--pkgs/applications/office/libreoffice/src-still/override.nix9
-rw-r--r--pkgs/applications/office/notes-up/default.nix3
-rw-r--r--pkgs/applications/office/osmo/default.nix4
-rw-r--r--pkgs/applications/office/portfolio/default.nix6
-rw-r--r--pkgs/applications/office/skrooge/default.nix4
-rw-r--r--pkgs/applications/office/softmaker/freeoffice.nix20
-rw-r--r--pkgs/applications/office/softmaker/generic.nix7
-rw-r--r--pkgs/applications/office/softmaker/softmaker_office.nix21
-rw-r--r--pkgs/applications/office/spice-up/default.nix3
-rw-r--r--pkgs/applications/office/timetable/default.nix3
-rw-r--r--pkgs/applications/office/timeular/default.nix45
-rw-r--r--pkgs/applications/office/todo.txt-cli/default.nix4
-rw-r--r--pkgs/applications/office/trilium/default.nix26
-rw-r--r--pkgs/applications/office/watson/default.nix17
-rw-r--r--pkgs/applications/office/wpsoffice/default.nix4
-rw-r--r--pkgs/applications/office/zim/default.nix4
-rw-r--r--pkgs/applications/office/zotero/default.nix11
-rw-r--r--pkgs/applications/qubes/qubes-core-vchan-xen/default.nix3
-rw-r--r--pkgs/applications/radio/chirp/default.nix4
-rw-r--r--pkgs/applications/radio/cubicsdr/default.nix19
-rw-r--r--pkgs/applications/radio/direwolf/default.nix57
-rw-r--r--pkgs/applications/radio/dsd/default.nix44
-rw-r--r--pkgs/applications/radio/fldigi/default.nix4
-rw-r--r--pkgs/applications/radio/flrig/default.nix4
-rw-r--r--pkgs/applications/radio/gnss-sdr/default.nix4
-rw-r--r--pkgs/applications/radio/inspectrum/default.nix11
-rw-r--r--pkgs/applications/radio/limesuite/default.nix4
-rw-r--r--pkgs/applications/radio/noaa-apt/default.nix64
-rw-r--r--pkgs/applications/radio/soapyremote/default.nix4
-rw-r--r--pkgs/applications/radio/welle-io/default.nix4
-rw-r--r--pkgs/applications/radio/wsjtx/default.nix7
-rw-r--r--pkgs/applications/radio/wsjtx/super.patch4
-rw-r--r--pkgs/applications/radio/wsjtx/wsjtx.patch13
-rw-r--r--pkgs/applications/science/biology/hisat2/default.nix20
-rw-r--r--pkgs/applications/science/biology/hmmer/default.nix6
-rw-r--r--pkgs/applications/science/biology/igv/default.nix22
-rw-r--r--pkgs/applications/science/biology/itsx/default.nix2
-rw-r--r--pkgs/applications/science/biology/kssd/default.nix4
-rw-r--r--pkgs/applications/science/biology/last/default.nix4
-rw-r--r--pkgs/applications/science/biology/minc-tools/default.nix14
-rw-r--r--pkgs/applications/science/biology/mosdepth/default.nix5
-rw-r--r--pkgs/applications/science/biology/picard-tools/default.nix4
-rw-r--r--pkgs/applications/science/biology/seaview/default.nix4
-rw-r--r--pkgs/applications/science/biology/sortmerna/default.nix31
-rw-r--r--pkgs/applications/science/biology/star/default.nix4
-rw-r--r--pkgs/applications/science/biology/tebreak/default.nix4
-rw-r--r--pkgs/applications/science/biology/whisper/default.nix34
-rw-r--r--pkgs/applications/science/chemistry/d-seams/default.nix34
-rw-r--r--pkgs/applications/science/chemistry/gwyddion/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/jmol/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/marvin/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/octopus/default.nix4
-rw-r--r--pkgs/applications/science/electronics/adms/default.nix4
-rw-r--r--pkgs/applications/science/electronics/appcsxcad/default.nix58
-rw-r--r--pkgs/applications/science/electronics/csxcad/default.nix49
-rw-r--r--pkgs/applications/science/electronics/csxcad/searchPath.patch11
-rw-r--r--pkgs/applications/science/electronics/fritzing/default.nix4
-rw-r--r--pkgs/applications/science/electronics/gtkwave/default.nix4
-rw-r--r--pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix52
-rw-r--r--pkgs/applications/science/electronics/hyp2mat/default.nix53
-rw-r--r--pkgs/applications/science/electronics/kicad/base.nix2
-rw-r--r--pkgs/applications/science/electronics/kicad/default.nix13
-rw-r--r--pkgs/applications/science/electronics/kicad/libraries.nix6
-rw-r--r--pkgs/applications/science/electronics/kicad/versions.nix28
-rw-r--r--pkgs/applications/science/electronics/magic-vlsi/default.nix2
-rw-r--r--pkgs/applications/science/electronics/openhantek6022/default.nix31
-rw-r--r--pkgs/applications/science/electronics/qcsxcad/default.nix50
-rw-r--r--pkgs/applications/science/electronics/verilator/default.nix23
-rw-r--r--pkgs/applications/science/electronics/vhd2vl/default.nix39
-rw-r--r--pkgs/applications/science/geometry/gama/default.nix24
-rw-r--r--pkgs/applications/science/logic/abc/default.nix6
-rw-r--r--pkgs/applications/science/logic/alt-ergo/default.nix12
-rw-r--r--pkgs/applications/science/logic/coq/default.nix14
-rw-r--r--pkgs/applications/science/logic/cryptominisat/default.nix14
-rw-r--r--pkgs/applications/science/logic/cvc4/default.nix23
-rw-r--r--pkgs/applications/science/logic/drat-trim/default.nix13
-rw-r--r--pkgs/applications/science/logic/eprover/default.nix4
-rw-r--r--pkgs/applications/science/logic/fast-downward/default.nix25
-rw-r--r--pkgs/applications/science/logic/isabelle/default.nix22
-rw-r--r--pkgs/applications/science/logic/lean/default.nix4
-rw-r--r--pkgs/applications/science/logic/ltl2ba/default.nix4
-rw-r--r--pkgs/applications/science/logic/mcy/default.nix19
-rw-r--r--pkgs/applications/science/logic/ott/default.nix4
-rw-r--r--pkgs/applications/science/logic/proverif/default.nix4
-rw-r--r--pkgs/applications/science/logic/sad/default.nix1
-rw-r--r--pkgs/applications/science/logic/symbiyosys/default.nix25
-rw-r--r--pkgs/applications/science/logic/vampire/default.nix4
-rw-r--r--pkgs/applications/science/logic/why3/configure.patch11
-rw-r--r--pkgs/applications/science/logic/why3/default.nix15
-rw-r--r--pkgs/applications/science/logic/z3/default.nix39
-rw-r--r--pkgs/applications/science/machine-learning/finalfrontier/default.nix51
-rw-r--r--pkgs/applications/science/machine-learning/finalfusion-utils/default.nix55
-rw-r--r--pkgs/applications/science/machine-learning/labelimg/default.nix33
-rw-r--r--pkgs/applications/science/math/R/default.nix4
-rw-r--r--pkgs/applications/science/math/calculix/calculix.patch27
-rw-r--r--pkgs/applications/science/math/calculix/default.nix4
-rw-r--r--pkgs/applications/science/math/geogebra/default.nix4
-rw-r--r--pkgs/applications/science/math/geogebra/geogebra6.nix46
-rw-r--r--pkgs/applications/science/math/gfan/default.nix2
-rw-r--r--pkgs/applications/science/math/mathematica/l10ns.nix6
-rw-r--r--pkgs/applications/science/math/nasc/default.nix61
-rw-r--r--pkgs/applications/science/math/nauty/default.nix10
-rw-r--r--pkgs/applications/science/math/qalculate-gtk/default.nix14
-rw-r--r--pkgs/applications/science/math/rofi-calc/default.nix4
-rw-r--r--pkgs/applications/science/math/wxmaxima/default.nix4
-rw-r--r--pkgs/applications/science/math/yacas/default.nix4
-rw-r--r--pkgs/applications/science/medicine/aliza/default.nix6
-rw-r--r--pkgs/applications/science/misc/gplates/boostfix.patch612
-rw-r--r--pkgs/applications/science/misc/gplates/default.nix23
-rw-r--r--pkgs/applications/science/misc/openmvg/default.nix16
-rw-r--r--pkgs/applications/science/misc/rink/cargo-lock.patch2631
-rw-r--r--pkgs/applications/science/misc/rink/default.nix17
-rw-r--r--pkgs/applications/science/misc/root/default.nix9
-rw-r--r--pkgs/applications/science/misc/snakemake/default.nix4
-rw-r--r--pkgs/applications/science/molecular-dynamics/gromacs/default.nix6
-rw-r--r--pkgs/applications/science/robotics/apmplanner2/default.nix14
-rw-r--r--pkgs/applications/science/robotics/betaflight-configurator/default.nix4
-rw-r--r--pkgs/applications/science/robotics/qgroundcontrol/default.nix11
-rw-r--r--pkgs/applications/system/glances/default.nix7
-rw-r--r--pkgs/applications/system/monitor/default.nix7
-rw-r--r--pkgs/applications/version-management/bcompare/default.nix4
-rw-r--r--pkgs/applications/version-management/fossil/default.nix43
-rw-r--r--pkgs/applications/version-management/gerrit/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix5
-rw-r--r--pkgs/applications/version-management/git-and-tools/delta/default.nix10
-rw-r--r--pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix15
-rw-r--r--pkgs/applications/version-management/git-and-tools/fast-export/default.nix36
-rw-r--r--pkgs/applications/version-management/git-and-tools/gh/default.nix10
-rw-r--r--pkgs/applications/version-management/git-and-tools/ghq/default.nix10
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-appraise/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-bug/default.nix12
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-ignore/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-machete/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix22
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-subtrac/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-workspace/default.nix11
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/gita/default.nix5
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitin/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitstatus/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitui/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/lab/default.nix5
-rw-r--r--pkgs/applications/version-management/git-and-tools/lefthook/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/stgit/default.nix18
-rw-r--r--pkgs/applications/version-management/git-and-tools/subgit/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/tig/default.nix9
-rw-r--r--pkgs/applications/version-management/git-lfs/default.nix5
-rw-r--r--pkgs/applications/version-management/git-sizer/default.nix1
-rw-r--r--pkgs/applications/version-management/gitea/default.nix4
-rw-r--r--pkgs/applications/version-management/gitea/static-root-path.patch14
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix8
-rw-r--r--pkgs/applications/version-management/gitlab/data.json8
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock18
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix16
-rw-r--r--pkgs/applications/version-management/gitlab/yarnPkgs.nix16
-rw-r--r--pkgs/applications/version-management/gitolite/default.nix4
-rw-r--r--pkgs/applications/version-management/gitoxide/default.nix24
-rw-r--r--pkgs/applications/version-management/meld/default.nix75
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix4
-rw-r--r--pkgs/applications/version-management/p4/default.nix30
-rw-r--r--pkgs/applications/version-management/p4v/default.nix29
-rw-r--r--pkgs/applications/version-management/pijul/default.nix1
-rw-r--r--pkgs/applications/version-management/redmine/0001-python3.patch275
-rw-r--r--pkgs/applications/version-management/redmine/default.nix4
-rw-r--r--pkgs/applications/version-management/sit/default.nix1
-rw-r--r--pkgs/applications/version-management/sourcehut/builds.nix7
-rw-r--r--pkgs/applications/version-management/sourcehut/git.nix22
-rw-r--r--pkgs/applications/version-management/sparkleshare/default.nix87
-rw-r--r--pkgs/applications/version-management/sublime-merge/default.nix8
-rw-r--r--pkgs/applications/version-management/yadm/default.nix4
-rw-r--r--pkgs/applications/video/avidemux/default.nix4
-rw-r--r--pkgs/applications/video/catt/default.nix23
-rw-r--r--pkgs/applications/video/celluloid/default.nix7
-rw-r--r--pkgs/applications/video/electronplayer/electronplayer.nix33
-rw-r--r--pkgs/applications/video/hdhomerun-config-gui/default.nix29
-rw-r--r--pkgs/applications/video/jellyfin-mpv-shim/default.nix21
-rw-r--r--pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch12
-rw-r--r--pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch15
-rw-r--r--pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix25
-rw-r--r--pkgs/applications/video/kodi/default.nix10
-rw-r--r--pkgs/applications/video/lightworks/default.nix2
-rw-r--r--pkgs/applications/video/makemkv/default.nix8
-rw-r--r--pkgs/applications/video/mapmap/default.nix4
-rw-r--r--pkgs/applications/video/mkvtoolnix/default.nix4
-rw-r--r--pkgs/applications/video/molotov/default.nix31
-rw-r--r--pkgs/applications/video/motion/default.nix11
-rw-r--r--pkgs/applications/video/mpv/scripts/sponsorblock.nix51
-rw-r--r--pkgs/applications/video/mythtv/default.nix16
-rw-r--r--pkgs/applications/video/mythtv/disable-os-detection.patch80
-rw-r--r--pkgs/applications/video/mythtv/exiv2.patch19
-rw-r--r--pkgs/applications/video/obs-studio/wlrobs.nix6
-rw-r--r--pkgs/applications/video/peek/default.nix8
-rw-r--r--pkgs/applications/video/pitivi/default.nix140
-rw-r--r--pkgs/applications/video/screenkey/default.nix69
-rw-r--r--pkgs/applications/video/screenkey/paths.patch20
-rw-r--r--pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch33
-rw-r--r--pkgs/applications/video/shotcut/default.nix10
-rw-r--r--pkgs/applications/video/smplayer/default.nix4
-rw-r--r--pkgs/applications/video/smtube/default.nix4
-rw-r--r--pkgs/applications/video/streamlink-twitch-gui/bin.nix100
-rw-r--r--pkgs/applications/video/streamlink/default.nix4
-rw-r--r--pkgs/applications/video/vdr/default.nix7
-rw-r--r--pkgs/applications/video/vdr/glibc2.31-compat.patch15
-rw-r--r--pkgs/applications/video/vlc/default.nix4
-rw-r--r--pkgs/applications/video/vokoscreen-ng/default.nix71
-rw-r--r--pkgs/applications/video/vokoscreen/default.nix4
-rw-r--r--pkgs/applications/video/webcamoid/default.nix4
-rw-r--r--pkgs/applications/video/webtorrent_desktop/default.nix54
-rw-r--r--pkgs/applications/virtualization/OVMF/default.nix13
-rw-r--r--pkgs/applications/virtualization/charliecloud/default.nix30
-rw-r--r--pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch53
-rw-r--r--pkgs/applications/virtualization/cloud-hypervisor/default.nix28
-rw-r--r--pkgs/applications/virtualization/conmon/default.nix6
-rw-r--r--pkgs/applications/virtualization/containerd/default.nix4
-rw-r--r--pkgs/applications/virtualization/cri-o/default.nix10
-rw-r--r--pkgs/applications/virtualization/cri-o/wrapper.nix2
-rw-r--r--pkgs/applications/virtualization/crun/default.nix6
-rw-r--r--pkgs/applications/virtualization/docker-compose/default.nix8
-rw-r--r--pkgs/applications/virtualization/docker-slim/default.nix9
-rw-r--r--pkgs/applications/virtualization/docker/default.nix47
-rw-r--r--pkgs/applications/virtualization/firectl/default.nix4
-rw-r--r--pkgs/applications/virtualization/gvisor/containerd-shim.nix3
-rw-r--r--pkgs/applications/virtualization/hercules/default.nix2
-rw-r--r--pkgs/applications/virtualization/nvidia-docker/default.nix14
-rw-r--r--pkgs/applications/virtualization/open-vm-tools/default.nix9
-rw-r--r--pkgs/applications/virtualization/podman/default.nix10
-rw-r--r--pkgs/applications/virtualization/qemu/default.nix27
-rw-r--r--pkgs/applications/virtualization/qemu/utils.nix6
-rw-r--r--pkgs/applications/virtualization/railcar/default.nix1
-rw-r--r--pkgs/applications/virtualization/runc/default.nix7
-rw-r--r--pkgs/applications/virtualization/singularity/default.nix37
-rw-r--r--pkgs/applications/virtualization/tini/default.nix3
-rw-r--r--pkgs/applications/virtualization/umoci/default.nix2
-rw-r--r--pkgs/applications/virtualization/virt-manager/qt.nix4
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix7
-rw-r--r--pkgs/applications/virtualization/virtualbox/extpack.nix2
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix3
-rw-r--r--pkgs/applications/window-managers/bspwm/default.nix4
-rw-r--r--pkgs/applications/window-managers/cage/default.nix36
-rw-r--r--pkgs/applications/window-managers/cwm/default.nix2
-rw-r--r--pkgs/applications/window-managers/dwm/dwm-status.nix6
-rw-r--r--pkgs/applications/window-managers/hikari/default.nix4
-rw-r--r--pkgs/applications/window-managers/i3/default.nix4
-rw-r--r--pkgs/applications/window-managers/i3/gaps.nix4
-rw-r--r--pkgs/applications/window-managers/i3/i3ipc-glib.nix4
-rw-r--r--pkgs/applications/window-managers/i3/lock-color.nix4
-rw-r--r--pkgs/applications/window-managers/i3/lock-fancy-rapid.nix32
-rw-r--r--pkgs/applications/window-managers/icewm/default.nix4
-rw-r--r--pkgs/applications/window-managers/leftwm/default.nix6
-rw-r--r--pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch39
-rw-r--r--pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch31
-rw-r--r--pkgs/applications/window-managers/qtile/0003-Restart-executable.patch12
-rw-r--r--pkgs/applications/window-managers/qtile/default.nix14
-rw-r--r--pkgs/applications/window-managers/spectrwm/default.nix6
-rw-r--r--pkgs/applications/window-managers/sway/contrib.nix20
-rw-r--r--pkgs/applications/window-managers/sway/default.nix32
-rw-r--r--pkgs/applications/window-managers/sway/lock-effects.nix7
-rw-r--r--pkgs/applications/window-managers/sxhkd/default.nix4
-rw-r--r--pkgs/applications/window-managers/weston/default.nix26
-rw-r--r--pkgs/applications/window-managers/windowchef/default.nix27
-rw-r--r--pkgs/build-support/alternatives/blas/default.nix4
-rw-r--r--pkgs/build-support/appimage/default.nix3
-rw-r--r--pkgs/build-support/bintools-wrapper/default.nix86
-rw-r--r--pkgs/build-support/build-bazel-package/default.nix46
-rw-r--r--pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix123
-rw-r--r--pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix167
-rw-r--r--pkgs/build-support/cc-wrapper/add-flags.sh14
-rw-r--r--pkgs/build-support/cc-wrapper/cc-wrapper.sh23
-rw-r--r--pkgs/build-support/cc-wrapper/default.nix193
-rw-r--r--pkgs/build-support/cc-wrapper/fortran-hook.sh11
-rw-r--r--pkgs/build-support/docker/default.nix12
-rw-r--r--pkgs/build-support/docker/examples.nix83
-rw-r--r--pkgs/build-support/docker/stream_layered_image.py23
-rw-r--r--pkgs/build-support/emacs/generic.nix10
-rw-r--r--pkgs/build-support/fetchrepoproject/default.nix3
-rw-r--r--pkgs/build-support/fetchurl/builder.sh8
-rw-r--r--pkgs/build-support/fetchurl/default.nix9
-rw-r--r--pkgs/build-support/kernel/modules-closure.sh79
-rw-r--r--pkgs/build-support/release/default.nix4
-rw-r--r--pkgs/build-support/release/gcov-report.nix49
-rw-r--r--pkgs/build-support/rust/build-rust-crate/build-crate.nix2
-rw-r--r--pkgs/build-support/rust/build-rust-crate/configure-crate.nix4
-rw-r--r--pkgs/build-support/rust/build-rust-crate/lib.sh6
-rw-r--r--pkgs/build-support/rust/build-rust-crate/log.nix14
-rw-r--r--pkgs/build-support/rust/default.nix17
-rw-r--r--pkgs/build-support/rust/fetchcrate.nix7
-rw-r--r--pkgs/build-support/setup-hooks/auto-patchelf.sh2
-rw-r--r--pkgs/build-support/setup-hooks/multiple-outputs.sh2
-rw-r--r--pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix175
-rw-r--r--pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/lib.nix30
-rw-r--r--pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/sample-project/Makefile30
-rw-r--r--pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh (renamed from pkgs/build-support/setup-hooks/wrap-gapps-hook.sh)0
-rw-r--r--pkgs/build-support/singularity-tools/default.nix1
-rw-r--r--pkgs/build-support/trivial-builders.nix2
-rw-r--r--pkgs/build-support/writers/default.nix67
-rw-r--r--pkgs/build-support/writers/test.nix8
-rw-r--r--pkgs/common-updater/nix-update.nix5
-rw-r--r--pkgs/data/documentation/anarchism/default.nix45
-rw-r--r--pkgs/data/documentation/bgnet/default.nix27
-rw-r--r--pkgs/data/documentation/man-pages/default.nix4
-rw-r--r--pkgs/data/documentation/scheme-manpages/default.nix12
-rw-r--r--pkgs/data/fonts/3270font/default.nix26
-rw-r--r--pkgs/data/fonts/agave/default.nix4
-rw-r--r--pkgs/data/fonts/alegreya-sans/default.nix37
-rw-r--r--pkgs/data/fonts/alegreya/default.nix43
-rw-r--r--pkgs/data/fonts/barlow/default.nix28
-rw-r--r--pkgs/data/fonts/caladea/cambria-alias.conf2
-rw-r--r--pkgs/data/fonts/carlito/calibri-alias.conf2
-rw-r--r--pkgs/data/fonts/cascadia-code/default.nix49
-rw-r--r--pkgs/data/fonts/clearlyU/default.nix11
-rw-r--r--pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf2
-rw-r--r--pkgs/data/fonts/corefonts/no-op.conf2
-rw-r--r--pkgs/data/fonts/creep/default.nix6
-rw-r--r--pkgs/data/fonts/dina/default.nix6
-rw-r--r--pkgs/data/fonts/edukai/default.nix33
-rw-r--r--pkgs/data/fonts/eduli/default.nix36
-rw-r--r--pkgs/data/fonts/edusong/default.nix32
-rw-r--r--pkgs/data/fonts/emojione/default.nix4
-rw-r--r--pkgs/data/fonts/envypn-font/default.nix6
-rw-r--r--pkgs/data/fonts/fontconfig-penultimate/default.nix24
-rw-r--r--pkgs/data/fonts/gohufont/default.nix11
-rw-r--r--pkgs/data/fonts/ibm-plex/default.nix4
-rw-r--r--pkgs/data/fonts/iosevka/bin.nix6
-rw-r--r--pkgs/data/fonts/iosevka/default.nix8
-rw-r--r--pkgs/data/fonts/iosevka/package.json30
-rw-r--r--pkgs/data/fonts/jetbrains-mono/default.nix8
-rw-r--r--pkgs/data/fonts/kanji-stroke-order-font/default.nix20
-rw-r--r--pkgs/data/fonts/liberation-fonts/default.nix5
-rw-r--r--pkgs/data/fonts/nerdfonts/default.nix7
-rw-r--r--pkgs/data/fonts/noto-fonts/default.nix36
-rw-r--r--pkgs/data/fonts/noto-fonts/tools.nix62
-rw-r--r--pkgs/data/fonts/profont/default.nix7
-rw-r--r--pkgs/data/fonts/recursive/default.nix9
-rw-r--r--pkgs/data/fonts/redhat-official/default.nix21
-rw-r--r--pkgs/data/fonts/sarasa-gothic/default.nix4
-rw-r--r--pkgs/data/fonts/siji/default.nix6
-rw-r--r--pkgs/data/fonts/source-han/default.nix3
-rw-r--r--pkgs/data/fonts/spleen/default.nix4
-rw-r--r--pkgs/data/fonts/sudo/default.nix6
-rw-r--r--pkgs/data/fonts/tamsyn/default.nix6
-rw-r--r--pkgs/data/fonts/tamzen/default.nix6
-rw-r--r--pkgs/data/fonts/terminus-font/default.nix6
-rw-r--r--pkgs/data/fonts/tewi/default.nix8
-rw-r--r--pkgs/data/fonts/twemoji-color-font/default.nix4
-rw-r--r--pkgs/data/fonts/twitter-color-emoji/default.nix25
-rw-r--r--pkgs/data/fonts/ucs-fonts/default.nix8
-rw-r--r--pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix6
-rw-r--r--pkgs/data/fonts/uni-vga/default.nix9
-rw-r--r--pkgs/data/fonts/unifont/default.nix6
-rw-r--r--pkgs/data/fonts/uw-ttyp0/default.nix4
-rw-r--r--pkgs/data/fonts/victor-mono/default.nix4
-rw-r--r--pkgs/data/fonts/vista-fonts-chs/no-op.conf2
-rw-r--r--pkgs/data/fonts/vista-fonts/no-op.conf2
-rw-r--r--pkgs/data/fonts/xits-math/default.nix4
-rw-r--r--pkgs/data/icons/bibata-cursors/default.nix4
-rw-r--r--pkgs/data/icons/bibata-cursors/extra.nix4
-rw-r--r--pkgs/data/icons/bibata-cursors/translucent.nix4
-rw-r--r--pkgs/data/icons/capitaine-cursors/default.nix4
-rw-r--r--pkgs/data/icons/elementary-xfce-icon-theme/default.nix4
-rw-r--r--pkgs/data/icons/iconpack-jade/default.nix4
-rw-r--r--pkgs/data/icons/iconpack-obsidian/default.nix10
-rw-r--r--pkgs/data/icons/iso-flags/default.nix47
-rw-r--r--pkgs/data/icons/luna-icons/default.nix52
-rw-r--r--pkgs/data/icons/numix-cursor-theme/default.nix4
-rw-r--r--pkgs/data/icons/numix-icon-theme-circle/default.nix4
-rw-r--r--pkgs/data/icons/numix-icon-theme-square/default.nix4
-rw-r--r--pkgs/data/icons/papirus-icon-theme/default.nix4
-rw-r--r--pkgs/data/misc/cldr-emoji-annotation/default.nix4
-rw-r--r--pkgs/data/misc/hackage/default.nix4
-rw-r--r--pkgs/data/misc/iana-etc/default.nix4
-rw-r--r--pkgs/data/misc/nixos-artwork/wallpapers.nix27
-rw-r--r--pkgs/data/misc/osinfo-db/default.nix8
-rw-r--r--pkgs/data/misc/spdx-license-list-data/default.nix4
-rw-r--r--pkgs/data/themes/adapta/default.nix4
-rw-r--r--pkgs/data/themes/adwaita-qt/default.nix8
-rw-r--r--pkgs/data/themes/arc/default.nix8
-rw-r--r--pkgs/data/themes/cdetheme/default.nix (renamed from pkgs/data/themes/cde-motif-theme/default.nix)3
-rw-r--r--pkgs/data/themes/jade1/default.nix4
-rw-r--r--pkgs/data/themes/marwaita-manjaro/default.nix46
-rw-r--r--pkgs/data/themes/marwaita/default.nix46
-rw-r--r--pkgs/data/themes/matcha/default.nix4
-rw-r--r--pkgs/data/themes/mojave/default.nix6
-rw-r--r--pkgs/data/themes/numix-solarized/default.nix6
-rw-r--r--pkgs/data/themes/obsidian2/default.nix4
-rw-r--r--pkgs/data/themes/plata/default.nix4
-rw-r--r--pkgs/data/themes/pop-gtk/default.nix14
-rw-r--r--pkgs/data/themes/venta/default.nix47
-rw-r--r--pkgs/data/themes/yaru/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-common/default.nix156
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-common/libcroco.nix33
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix111
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-translations/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/default.nix13
-rw-r--r--pkgs/desktops/deepin/dde-api/default.nix127
-rw-r--r--pkgs/desktops/deepin/dde-api/deps.nix102
-rw-r--r--pkgs/desktops/deepin/dde-calendar/default.nix57
-rw-r--r--pkgs/desktops/deepin/dde-control-center/default.nix150
-rw-r--r--pkgs/desktops/deepin/dde-control-center/fix-paths.patch65
-rw-r--r--pkgs/desktops/deepin/dde-daemon/default.nix159
-rw-r--r--pkgs/desktops/deepin/dde-daemon/deps.nix111
-rw-r--r--pkgs/desktops/deepin/dde-dock/dde-dock.plugins-dir.patch39
-rw-r--r--pkgs/desktops/deepin/dde-dock/default.nix116
-rw-r--r--pkgs/desktops/deepin/dde-dock/wrapper.nix25
-rw-r--r--pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-mime-cache-paths.patch323
-rw-r--r--pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-paths.patch89
-rw-r--r--pkgs/desktops/deepin/dde-file-manager/dde-file-manager.pixmaps-paths.patch38
-rw-r--r--pkgs/desktops/deepin/dde-file-manager/default.nix298
-rw-r--r--pkgs/desktops/deepin/dde-kwin/0001-dde-kwin.pc-make-paths-relative.patch56
-rw-r--r--pkgs/desktops/deepin/dde-kwin/default.nix142
-rw-r--r--pkgs/desktops/deepin/dde-kwin/fix-paths.patch16
-rw-r--r--pkgs/desktops/deepin/dde-launcher/default.nix101
-rw-r--r--pkgs/desktops/deepin/dde-network-utils/default.nix63
-rw-r--r--pkgs/desktops/deepin/dde-network-utils/fix-paths.patch23
-rw-r--r--pkgs/desktops/deepin/dde-polkit-agent/dde-polkit-agent.plugins-dir.patch42
-rw-r--r--pkgs/desktops/deepin/dde-polkit-agent/default.nix60
-rw-r--r--pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix43
-rw-r--r--pkgs/desktops/deepin/dde-session-ui/default.nix157
-rw-r--r--pkgs/desktops/deepin/deepin-anything/default.nix82
-rw-r--r--pkgs/desktops/deepin/deepin-calculator/default.nix57
-rw-r--r--pkgs/desktops/deepin/deepin-desktop-base/default.nix68
-rw-r--r--pkgs/desktops/deepin/deepin-desktop-schemas/default.nix79
-rw-r--r--pkgs/desktops/deepin/deepin-editor/default.nix72
-rw-r--r--pkgs/desktops/deepin/deepin-gettext-tools/default.nix55
-rw-r--r--pkgs/desktops/deepin/deepin-gtk-theme/default.nix35
-rw-r--r--pkgs/desktops/deepin/deepin-icon-theme/default.nix67
-rw-r--r--pkgs/desktops/deepin/deepin-image-viewer/default.nix66
-rw-r--r--pkgs/desktops/deepin/deepin-menu/default.nix54
-rw-r--r--pkgs/desktops/deepin/deepin-movie-reborn/default.nix85
-rw-r--r--pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix45
-rw-r--r--pkgs/desktops/deepin/deepin-sound-theme/default.nix30
-rw-r--r--pkgs/desktops/deepin/deepin-terminal/default.nix117
-rw-r--r--pkgs/desktops/deepin/deepin-turbo/default.nix50
-rw-r--r--pkgs/desktops/deepin/deepin-wallpapers/default.nix52
-rw-r--r--pkgs/desktops/deepin/default.nix62
-rw-r--r--pkgs/desktops/deepin/disomaster/default.nix50
-rw-r--r--pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix49
-rw-r--r--pkgs/desktops/deepin/dtkcore/default.nix63
-rw-r--r--pkgs/desktops/deepin/dtkwidget/default.nix65
-rw-r--r--pkgs/desktops/deepin/dtkwm/default.nix58
-rw-r--r--pkgs/desktops/deepin/go-dbus-factory/default.nix34
-rw-r--r--pkgs/desktops/deepin/go-gir-generator/default.nix59
-rw-r--r--pkgs/desktops/deepin/go-lib/default.nix46
-rw-r--r--pkgs/desktops/deepin/qcef/default.nix127
-rw-r--r--pkgs/desktops/deepin/qt5integration/default.nix65
-rw-r--r--pkgs/desktops/deepin/qt5platform-plugins/default.nix63
-rwxr-xr-xpkgs/desktops/deepin/setup-hook.sh64
-rw-r--r--pkgs/desktops/deepin/startdde/default.nix161
-rw-r--r--pkgs/desktops/deepin/startdde/deps.nix30
-rw-r--r--pkgs/desktops/deepin/udisks2-qt5/default.nix50
-rw-r--r--pkgs/desktops/enlightenment/default.nix14
-rw-r--r--pkgs/desktops/enlightenment/econnman/default.nix (renamed from pkgs/desktops/enlightenment/econnman.nix)0
-rw-r--r--pkgs/desktops/enlightenment/efl/0002-efreet-more-stat-info-changes.patch623
-rw-r--r--pkgs/desktops/enlightenment/efl/default.nix (renamed from pkgs/desktops/enlightenment/efl.nix)15
-rw-r--r--pkgs/desktops/enlightenment/efl/efl-elua.patch (renamed from pkgs/desktops/enlightenment/efl-elua.patch)0
-rw-r--r--pkgs/desktops/enlightenment/enlightenment/0001-wrapped-setuid-executables.patch (renamed from pkgs/desktops/enlightenment/0001-wrapped-setuid-executables.patch)0
-rw-r--r--pkgs/desktops/enlightenment/enlightenment/0003-setuid-missing-path.patch25
-rw-r--r--pkgs/desktops/enlightenment/enlightenment/default.nix (renamed from pkgs/desktops/enlightenment/enlightenment.nix)5
-rw-r--r--pkgs/desktops/enlightenment/ephoto/default.nix (renamed from pkgs/desktops/enlightenment/ephoto.nix)0
-rw-r--r--pkgs/desktops/enlightenment/rage/default.nix (renamed from pkgs/desktops/enlightenment/rage.nix)0
-rw-r--r--pkgs/desktops/enlightenment/terminology/default.nix (renamed from pkgs/desktops/enlightenment/terminology.nix)13
-rw-r--r--pkgs/desktops/gnome-2/desktop/mail-notification/default.nix4
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnomeui/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/accerciser/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/apps/evolution/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/file-roller/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-documents/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-logs/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-maps/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-music/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-notes/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/seahorse/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/dconf-editor/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/eog/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/epiphany/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/evince/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-contacts/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-control-center/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-desktop/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/default.nix186
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/default.nix56
-rw-r--r--pkgs/desktops/gnome-3/core/rygel/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/simple-scan/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/extensions/appindicator/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/extensions/arc-menu/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch17
-rw-r--r--pkgs/desktops/gnome-3/extensions/battery-status/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/extensions/caffeine/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/extensions/emoji-selector/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/extensions/gsconnect/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/extensions/icon-hider/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/extensions/impatience/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix10
-rw-r--r--pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix14
-rw-r--r--pkgs/desktops/gnome-3/extensions/paperwm/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/extensions/system-monitor/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/extensions/system-monitor/paths_and_nonexisting_dirs.patch22
-rw-r--r--pkgs/desktops/gnome-3/extensions/tilingnome/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/extensions/timepp/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/extensions/window-is-ready-remover/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/games/aisleriot/default.nix65
-rw-r--r--pkgs/desktops/gnome-3/games/four-in-a-row/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-mines/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-taquin/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/iagno/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/quadrapassel/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/games/tali/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-panel/default.nix4
-rw-r--r--pkgs/desktops/mate/atril/default.nix37
-rw-r--r--pkgs/desktops/mate/marco/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-utils/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/appcenter/default.nix13
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calculator/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calendar/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-camera/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-code/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-dock/default.nix15
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-feedback/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch35
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-files/default.nix13
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch22
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-music/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-photos/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-terminal/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-videos/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/sideload/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch700
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix13
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix14
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard/default.nix5
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix5
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix5
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix5
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix5
-rw-r--r--pkgs/desktops/pantheon/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix11
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.allowed (renamed from pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.whitelist)0
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix5
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix6
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix5
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix5
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix54
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix5
-rw-r--r--pkgs/desktops/pantheon/desktop/gala/default.nix19
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix9
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix5
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix7
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix5
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix5
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix7
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix5
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix7
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix19
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix7
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel/default.nix7
-rw-r--r--pkgs/desktops/pantheon/granite/default.nix7
-rw-r--r--pkgs/desktops/pantheon/nixpkgs_github_update/.envrc1
-rw-r--r--pkgs/desktops/pantheon/nixpkgs_github_update/.formatter.exs4
-rw-r--r--pkgs/desktops/pantheon/nixpkgs_github_update/.gitignore32
-rw-r--r--pkgs/desktops/pantheon/nixpkgs_github_update/default.nix53
-rw-r--r--pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/cli.ex71
-rw-r--r--pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex42
-rw-r--r--pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/nix.ex85
-rw-r--r--pkgs/desktops/pantheon/nixpkgs_github_update/mix.exs28
-rw-r--r--pkgs/desktops/pantheon/nixpkgs_github_update/shell.nix19
-rw-r--r--pkgs/desktops/pantheon/nixpkgs_github_update/test/nix_test.exs49
-rw-r--r--pkgs/desktops/pantheon/nixpkgs_github_update/test/test_helper.exs1
-rw-r--r--pkgs/desktops/pantheon/services/contractor/default.nix5
-rw-r--r--pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix5
-rw-r--r--pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix5
-rw-r--r--pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix5
-rw-r--r--pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix7
-rw-r--r--pkgs/desktops/pantheon/update.nix6
-rw-r--r--pkgs/desktops/plasma-5/addons/caffeine-plus.nix32
-rw-r--r--pkgs/desktops/plasma-5/breeze-plymouth/default.nix11
-rw-r--r--pkgs/desktops/plasma-5/breeze-plymouth/series1
-rw-r--r--pkgs/desktops/plasma-5/fetch.sh2
-rw-r--r--pkgs/desktops/plasma-5/kde-cli-tools.nix16
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/0001-gsettings-schemas-path.patch21
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/default.nix8
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/patches/follow-symlinks.patch49
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/patches/gsettings.patch21
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/patches/series2
-rw-r--r--pkgs/desktops/plasma-5/kdeplasma-addons.nix13
-rw-r--r--pkgs/desktops/plasma-5/khotkeys.nix5
-rw-r--r--pkgs/desktops/plasma-5/kinfocenter.nix9
-rw-r--r--pkgs/desktops/plasma-5/kscreen-417316.patch76
-rw-r--r--pkgs/desktops/plasma-5/kscreen.nix5
-rw-r--r--pkgs/desktops/plasma-5/ksysguard.nix4
-rw-r--r--pkgs/desktops/plasma-5/kwin/default.nix10
-rw-r--r--pkgs/desktops/plasma-5/kwin/scripts/dynamic-workspaces.nix39
-rw-r--r--pkgs/desktops/plasma-5/kwin/scripts/krohnkite.nix2
-rw-r--r--pkgs/desktops/plasma-5/kwin/scripts/tiling.nix6
-rw-r--r--pkgs/desktops/plasma-5/libkscreen/default.nix6
-rw-r--r--pkgs/desktops/plasma-5/libkscreen/series1
-rw-r--r--pkgs/desktops/plasma-5/patches/0001-Add-a-logging-category-config-file.patch210
-rw-r--r--pkgs/desktops/plasma-5/plasma-desktop/default.nix11
-rw-r--r--pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch2
-rw-r--r--pkgs/desktops/plasma-5/plasma-desktop/series2
-rw-r--r--pkgs/desktops/plasma-5/plasma-pa.nix13
-rw-r--r--pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch39
-rw-r--r--pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch13
-rw-r--r--pkgs/desktops/plasma-5/plasma-workspace/default.nix6
-rw-r--r--pkgs/desktops/plasma-5/powerdevil.nix7
-rw-r--r--pkgs/desktops/plasma-5/srcs.nix386
-rw-r--r--pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix9
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-volumed/default.nix52
-rw-r--r--pkgs/desktops/xfce/core/tumbler/default.nix4
-rw-r--r--pkgs/desktops/xfce/core/xfwm4/default.nix4
-rw-r--r--pkgs/desktops/xfce/default.nix4
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix4
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix4
-rw-r--r--pkgs/development/androidndk-pkgs/default.nix30
-rw-r--r--pkgs/development/arduino/arduino-cli/default.nix46
-rw-r--r--pkgs/development/arduino/arduino-core/default.nix44
-rw-r--r--pkgs/development/arduino/platformio/chrootenv.nix13
-rw-r--r--pkgs/development/arduino/platformio/core.nix1
-rw-r--r--pkgs/development/arduino/platformio/missing-udev-rules-nixos.patch14
-rw-r--r--pkgs/development/compilers/abcl/default.nix4
-rw-r--r--pkgs/development/compilers/adoptopenjdk-bin/sources.json318
-rw-r--r--pkgs/development/compilers/aspectj/default.nix11
-rw-r--r--pkgs/development/compilers/binaryen/0001-Get-rid-of-git-dependency.patch38
-rw-r--r--pkgs/development/compilers/binaryen/default.nix41
-rw-r--r--pkgs/development/compilers/bluespec/default.nix7
-rw-r--r--pkgs/development/compilers/ccl/default.nix32
-rw-r--r--pkgs/development/compilers/closure/default.nix4
-rw-r--r--pkgs/development/compilers/computecpp/default.nix2
-rw-r--r--pkgs/development/compilers/copper/default.nix32
-rw-r--r--pkgs/development/compilers/cudatoolkit/common.nix27
-rw-r--r--pkgs/development/compilers/cudatoolkit/default.nix11
-rw-r--r--pkgs/development/compilers/dotnet/build-dotnet.nix92
-rw-r--r--pkgs/development/compilers/dotnet/buildDotnet.nix74
-rw-r--r--pkgs/development/compilers/dotnet/combine-packages.nix (renamed from pkgs/development/compilers/dotnet/combinePackages.nix)0
-rw-r--r--pkgs/development/compilers/dotnet/default.nix20
-rw-r--r--pkgs/development/compilers/elm/default.nix7
-rw-r--r--pkgs/development/compilers/elm/packages/elm-json.nix29
-rw-r--r--pkgs/development/compilers/elm/packages/elm-json.patch48
-rw-r--r--pkgs/development/compilers/elm/packages/node-packages.nix1052
-rw-r--r--pkgs/development/compilers/emscripten/default.nix137
-rw-r--r--pkgs/development/compilers/emscripten/fastcomp/default.nix28
-rw-r--r--pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix55
-rw-r--r--pkgs/development/compilers/emscripten/package.json15
-rw-r--r--pkgs/development/compilers/emscripten/yarn.lock346
-rw-r--r--pkgs/development/compilers/emscripten/yarn.nix437
-rw-r--r--pkgs/development/compilers/fasm/bin.nix4
-rw-r--r--pkgs/development/compilers/flutter/default.nix19
-rw-r--r--pkgs/development/compilers/flutter/patches/beta/disable-auto-update.patch28
-rw-r--r--pkgs/development/compilers/flutter/patches/beta/move-cache.patch23
-rw-r--r--pkgs/development/compilers/flutter/patches/stable/disable-auto-update.patch18
-rw-r--r--pkgs/development/compilers/flutter/patches/stable/move-cache.patch45
-rw-r--r--pkgs/development/compilers/fpc/binary.nix20
-rw-r--r--pkgs/development/compilers/fpc/default.nix19
-rw-r--r--pkgs/development/compilers/fpc/mark-paths.patch109
-rw-r--r--pkgs/development/compilers/gambit/unstable.nix8
-rw-r--r--pkgs/development/compilers/gcc/10/default.nix15
-rw-r--r--pkgs/development/compilers/gcc/4.8/default.nix15
-rw-r--r--pkgs/development/compilers/gcc/4.9/default.nix16
-rw-r--r--pkgs/development/compilers/gcc/4.9/libsanitizer.patch24
-rw-r--r--pkgs/development/compilers/gcc/6/0001-Fix-build-for-glibc-2.31.patch62
-rw-r--r--pkgs/development/compilers/gcc/6/default.nix28
-rw-r--r--pkgs/development/compilers/gcc/7/0001-Fix-build-for-glibc-2.31.patch62
-rw-r--r--pkgs/development/compilers/gcc/7/default.nix17
-rw-r--r--pkgs/development/compilers/gcc/8/default.nix15
-rw-r--r--pkgs/development/compilers/gcc/9/default.nix22
-rw-r--r--pkgs/development/compilers/gcc/builder.sh16
-rw-r--r--pkgs/development/compilers/gcc/common/pre-configure.nix41
-rw-r--r--pkgs/development/compilers/gcc/libstdc++-hook.sh4
-rw-r--r--pkgs/development/compilers/gerbil/gerbil-crypto.nix27
-rw-r--r--pkgs/development/compilers/gerbil/gerbil-ethereum.nix28
-rw-r--r--pkgs/development/compilers/gerbil/gerbil-persist.nix27
-rw-r--r--pkgs/development/compilers/gerbil/gerbil-poo.nix27
-rw-r--r--pkgs/development/compilers/gerbil/gerbil-support.nix19
-rw-r--r--pkgs/development/compilers/gerbil/gerbil-utils.nix13
-rw-r--r--pkgs/development/compilers/gerbil/unstable.nix8
-rw-r--r--pkgs/development/compilers/ghc/8.10.1.nix29
-rw-r--r--pkgs/development/compilers/ghc/8.10.2.nix (renamed from pkgs/development/compilers/ghc/8.4.4.nix)74
-rw-r--r--pkgs/development/compilers/ghc/8.6.5.nix11
-rw-r--r--pkgs/development/compilers/ghc/8.8.2.nix24
-rw-r--r--pkgs/development/compilers/ghc/8.8.3.nix27
-rw-r--r--pkgs/development/compilers/ghc/8.8.4.nix257
-rw-r--r--pkgs/development/compilers/ghc/head.nix38
-rw-r--r--pkgs/development/compilers/ghc/issue-18549.patch296
-rw-r--r--pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix7
-rw-r--r--pkgs/development/compilers/ghcjs-ng/default.nix3
-rw-r--r--pkgs/development/compilers/gleam/default.nix13
-rw-r--r--pkgs/development/compilers/go-jsonnet/default.nix2
-rw-r--r--pkgs/development/compilers/go/1.13.nix242
-rw-r--r--pkgs/development/compilers/go/1.14.nix7
-rw-r--r--pkgs/development/compilers/go/1.15.nix7
-rw-r--r--pkgs/development/compilers/go/remove-test-pie-1.13.patch34
-rw-r--r--pkgs/development/compilers/go/skip-test-extra-files-on-386.patch15
-rw-r--r--pkgs/development/compilers/go/skip-test-extra-files-on-aarch32.patch15
-rw-r--r--pkgs/development/compilers/go/ssl-cert-file-1.15.patch16
-rw-r--r--pkgs/development/compilers/idris2/default.nix45
-rw-r--r--pkgs/development/compilers/inform6/default.nix28
-rw-r--r--pkgs/development/compilers/intel-graphics-compiler/default.nix4
-rw-r--r--pkgs/development/compilers/jetbrains-jdk/default.nix4
-rw-r--r--pkgs/development/compilers/kotlin/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/10/bintools.nix14
-rw-r--r--pkgs/development/compilers/llvm/10/clang/clang-extension-handling.patch18
-rw-r--r--pkgs/development/compilers/llvm/10/clang/default.nix8
-rw-r--r--pkgs/development/compilers/llvm/10/compiler-rt.nix2
-rw-r--r--pkgs/development/compilers/llvm/10/default.nix47
-rw-r--r--pkgs/development/compilers/llvm/10/libc++/default.nix11
-rw-r--r--pkgs/development/compilers/llvm/10/libc++/setup-hook.sh6
-rw-r--r--pkgs/development/compilers/llvm/10/libc++abi.nix2
-rw-r--r--pkgs/development/compilers/llvm/10/libunwind.nix2
-rw-r--r--pkgs/development/compilers/llvm/10/lld.nix2
-rw-r--r--pkgs/development/compilers/llvm/10/lldb.nix2
-rw-r--r--pkgs/development/compilers/llvm/10/llvm-extension-handling.patch146
-rw-r--r--pkgs/development/compilers/llvm/10/llvm.nix10
-rw-r--r--pkgs/development/compilers/llvm/10/openmp.nix2
-rw-r--r--pkgs/development/compilers/llvm/11/bintools.nix29
-rw-r--r--pkgs/development/compilers/llvm/11/clang/default.nix117
-rw-r--r--pkgs/development/compilers/llvm/11/clang/purity.patch28
-rw-r--r--pkgs/development/compilers/llvm/11/compiler-rt-armv7l.patch32
-rw-r--r--pkgs/development/compilers/llvm/11/compiler-rt-codesign.patch33
-rw-r--r--pkgs/development/compilers/llvm/11/compiler-rt.nix85
-rw-r--r--pkgs/development/compilers/llvm/11/default.nix195
-rw-r--r--pkgs/development/compilers/llvm/11/libc++/default.nix52
-rw-r--r--pkgs/development/compilers/llvm/11/libc++abi.nix67
-rw-r--r--pkgs/development/compilers/llvm/11/libcxxabi-no-threads.patch12
-rw-r--r--pkgs/development/compilers/llvm/11/libcxxabi-wasm.patch16
-rw-r--r--pkgs/development/compilers/llvm/11/libunwind.nix14
-rw-r--r--pkgs/development/compilers/llvm/11/lld.nix33
-rw-r--r--pkgs/development/compilers/llvm/11/lldb-procfs.patch31
-rw-r--r--pkgs/development/compilers/llvm/11/lldb.nix101
-rw-r--r--pkgs/development/compilers/llvm/11/llvm-outputs.patch26
-rw-r--r--pkgs/development/compilers/llvm/11/llvm.nix190
-rw-r--r--pkgs/development/compilers/llvm/11/openmp.nix26
-rw-r--r--pkgs/development/compilers/llvm/11/sanitizers-nongnu.patch412
-rw-r--r--pkgs/development/compilers/llvm/5/clang/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/5/compiler-rt.nix1
-rw-r--r--pkgs/development/compilers/llvm/5/default.nix20
-rw-r--r--pkgs/development/compilers/llvm/5/libc++/default.nix9
-rw-r--r--pkgs/development/compilers/llvm/5/libc++/setup-hook.sh6
-rw-r--r--pkgs/development/compilers/llvm/6/clang/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/6/compiler-rt.nix1
-rw-r--r--pkgs/development/compilers/llvm/6/default.nix20
-rw-r--r--pkgs/development/compilers/llvm/6/libc++/default.nix9
-rw-r--r--pkgs/development/compilers/llvm/6/libc++/setup-hook.sh6
-rw-r--r--pkgs/development/compilers/llvm/7/bintools.nix14
-rw-r--r--pkgs/development/compilers/llvm/7/clang/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/7/compiler-rt-glibc.patch48
-rw-r--r--pkgs/development/compilers/llvm/7/compiler-rt.nix3
-rw-r--r--pkgs/development/compilers/llvm/7/default.nix74
-rw-r--r--pkgs/development/compilers/llvm/7/libc++/default.nix9
-rw-r--r--pkgs/development/compilers/llvm/7/libc++/setup-hook.sh6
-rw-r--r--pkgs/development/compilers/llvm/8/bintools.nix14
-rw-r--r--pkgs/development/compilers/llvm/8/clang/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/8/compiler-rt.nix1
-rw-r--r--pkgs/development/compilers/llvm/8/default.nix34
-rw-r--r--pkgs/development/compilers/llvm/8/libc++/default.nix9
-rw-r--r--pkgs/development/compilers/llvm/8/libc++/setup-hook.sh6
-rw-r--r--pkgs/development/compilers/llvm/9/bintools.nix14
-rw-r--r--pkgs/development/compilers/llvm/9/clang/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/9/compiler-rt.nix1
-rw-r--r--pkgs/development/compilers/llvm/9/default.nix34
-rw-r--r--pkgs/development/compilers/llvm/9/libc++/default.nix9
-rw-r--r--pkgs/development/compilers/llvm/9/libc++/setup-hook.sh6
-rw-r--r--pkgs/development/compilers/llvm/rocm/clang.nix66
-rw-r--r--pkgs/development/compilers/llvm/rocm/default.nix41
-rw-r--r--pkgs/development/compilers/llvm/rocm/lld.nix33
-rw-r--r--pkgs/development/compilers/llvm/rocm/llvm-outputs.patch26
-rw-r--r--pkgs/development/compilers/llvm/rocm/llvm.nix97
-rw-r--r--pkgs/development/compilers/mercury/default.nix4
-rw-r--r--pkgs/development/compilers/mit-scheme/default.nix15
-rw-r--r--pkgs/development/compilers/mono/generic.nix2
-rw-r--r--pkgs/development/compilers/mozart/default.nix5
-rw-r--r--pkgs/development/compilers/nextpnr/default.nix8
-rw-r--r--pkgs/development/compilers/nim/NIM_CONFIG_DIR.patch23
-rw-r--r--pkgs/development/compilers/nim/default.nix300
-rw-r--r--pkgs/development/compilers/nim/nixbuild.patch51
-rw-r--r--pkgs/development/compilers/ocaml/4.11.nix4
-rw-r--r--pkgs/development/compilers/ocaml/generic.nix8
-rw-r--r--pkgs/development/compilers/openjdk/11.nix10
-rw-r--r--pkgs/development/compilers/openjdk/12.nix1
-rw-r--r--pkgs/development/compilers/openjdk/13.nix1
-rw-r--r--pkgs/development/compilers/openjdk/8.nix36
-rw-r--r--pkgs/development/compilers/openjdk/default.nix4
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/14.nix2
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk11-linux.nix54
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk14-linux.nix54
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk8-linux.nix12
-rw-r--r--pkgs/development/compilers/polyml/default.nix12
-rw-r--r--pkgs/development/compilers/rgbds/default.nix4
-rw-r--r--pkgs/development/compilers/rust/0001-Allow-getting-no_std-from-the-config-file.patch52
-rw-r--r--pkgs/development/compilers/rust/1_42.nix44
-rw-r--r--pkgs/development/compilers/rust/1_44.nix (renamed from pkgs/development/compilers/rust/1_43.nix)22
-rw-r--r--pkgs/development/compilers/rust/1_45.nix42
-rw-r--r--pkgs/development/compilers/rust/cargo.nix5
-rw-r--r--pkgs/development/compilers/rust/rls/default.nix6
-rw-r--r--pkgs/development/compilers/rust/rustc.nix12
-rw-r--r--pkgs/development/compilers/rust/rustfmt.nix6
-rw-r--r--pkgs/development/compilers/sagittarius-scheme/default.nix4
-rw-r--r--pkgs/development/compilers/scala/2.13.nix4
-rw-r--r--pkgs/development/compilers/scala/dotty-bare.nix4
-rw-r--r--pkgs/development/compilers/souffle/default.nix4
-rw-r--r--pkgs/development/compilers/swift/default.nix14
-rw-r--r--pkgs/development/compilers/swift/patches/swift-llvm.patch48
-rw-r--r--pkgs/development/compilers/tinygo/default.nix7
-rw-r--r--pkgs/development/compilers/vala/default.nix4
-rw-r--r--pkgs/development/compilers/wla-dx/default.nix4
-rw-r--r--pkgs/development/compilers/yosys/default.nix6
-rw-r--r--pkgs/development/compilers/zig/default.nix7
-rw-r--r--pkgs/development/compilers/zig/llvm10_polly.patch10
-rw-r--r--pkgs/development/compilers/zulu/8.nix10
-rw-r--r--pkgs/development/compilers/zulu/default.nix10
-rw-r--r--pkgs/development/coq-modules/QuickChick/default.nix34
-rw-r--r--pkgs/development/coq-modules/bignums/default.nix4
-rw-r--r--pkgs/development/coq-modules/coq-bits/default.nix4
-rw-r--r--pkgs/development/coq-modules/coq-elpi/default.nix9
-rw-r--r--pkgs/development/coq-modules/coq-ext-lib/default.nix9
-rw-r--r--pkgs/development/coq-modules/coq-extensible-records/default.nix58
-rw-r--r--pkgs/development/coq-modules/coqhammer/default.nix12
-rw-r--r--pkgs/development/coq-modules/coqprime/default.nix10
-rw-r--r--pkgs/development/coq-modules/dpdgraph/default.nix4
-rw-r--r--pkgs/development/coq-modules/equations/default.nix12
-rw-r--r--pkgs/development/coq-modules/gappalib/default.nix8
-rw-r--r--pkgs/development/coq-modules/hierarchy-builder/default.nix9
-rw-r--r--pkgs/development/coq-modules/interval/default.nix41
-rw-r--r--pkgs/development/coq-modules/iris/default.nix6
-rw-r--r--pkgs/development/coq-modules/math-classes/default.nix6
-rw-r--r--pkgs/development/coq-modules/simple-io/default.nix2
-rw-r--r--pkgs/development/coq-modules/stdpp/default.nix6
-rw-r--r--pkgs/development/coq-modules/tlc/default.nix32
-rw-r--r--pkgs/development/go-modules/generic/default.nix37
-rw-r--r--pkgs/development/go-modules/generic/old.nix229
-rw-r--r--pkgs/development/go-packages/generic/default.nix2
-rw-r--r--pkgs/development/guile-modules/guile-sdl2/default.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix460
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix47
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix1
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix20
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-head.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml606
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix15
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix79
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix13715
-rw-r--r--pkgs/development/haskell-modules/non-hackage-packages.nix16
-rw-r--r--pkgs/development/haskell-modules/patches/hasura-884-compat.patch26
-rw-r--r--pkgs/development/haskell-modules/with-packages-wrapper.nix11
-rw-r--r--pkgs/development/interpreters/acl2/0001-Fix-some-paths-for-Nix-build.patch190
-rw-r--r--pkgs/development/interpreters/acl2/0002-Restrict-RDTSC-to-x86.patch29
-rw-r--r--pkgs/development/interpreters/acl2/default.nix159
-rw-r--r--pkgs/development/interpreters/acl2/libipasirglucose4/0001-Support-shared-library-build.patch46
-rw-r--r--pkgs/development/interpreters/acl2/libipasirglucose4/default.nix36
-rw-r--r--pkgs/development/interpreters/alda/default.nix27
-rw-r--r--pkgs/development/interpreters/chibi/default.nix4
-rw-r--r--pkgs/development/interpreters/clojure/default.nix27
-rw-r--r--pkgs/development/interpreters/elixir/1.10.nix4
-rw-r--r--pkgs/development/interpreters/erlang/R23.nix13
-rw-r--r--pkgs/development/interpreters/erlang/generic-builder.nix3
-rw-r--r--pkgs/development/interpreters/evcxr/default.nix10
-rw-r--r--pkgs/development/interpreters/groovy/default.nix4
-rw-r--r--pkgs/development/interpreters/guile/2.0.nix2
-rw-r--r--pkgs/development/interpreters/hy/default.nix4
-rw-r--r--pkgs/development/interpreters/j/default.nix6
-rw-r--r--pkgs/development/interpreters/joker/default.nix9
-rw-r--r--pkgs/development/interpreters/jruby/default.nix13
-rw-r--r--pkgs/development/interpreters/luajit/2.0.nix6
-rw-r--r--pkgs/development/interpreters/luajit/2.1.nix6
-rw-r--r--pkgs/development/interpreters/luajit/default.nix2
-rw-r--r--pkgs/development/interpreters/perl/default.nix45
-rw-r--r--pkgs/development/interpreters/perl/setup-hook-cross.sh2
-rw-r--r--pkgs/development/interpreters/php/default.nix25
-rw-r--r--pkgs/development/interpreters/php/php72-darwin-isfinite.patch62
-rw-r--r--pkgs/development/interpreters/picolisp/default.nix4
-rw-r--r--pkgs/development/interpreters/python/cpython/2.7/CVE-2019-20907.patch24
-rw-r--r--pkgs/development/interpreters/python/cpython/2.7/default.nix3
-rw-r--r--pkgs/development/interpreters/python/cpython/3.8/0001-On-all-posix-systems-not-just-Darwin-set-LDSHARED-if.patch33
-rw-r--r--pkgs/development/interpreters/python/cpython/default.nix24
-rw-r--r--pkgs/development/interpreters/python/default.nix47
-rw-r--r--pkgs/development/interpreters/python/hooks/pip-install-hook.sh4
-rw-r--r--pkgs/development/interpreters/python/mk-python-derivation.nix154
-rw-r--r--pkgs/development/interpreters/python/pypy/default.nix11
-rw-r--r--pkgs/development/interpreters/python/pypy/prebuilt.nix19
-rw-r--r--pkgs/development/interpreters/python/tests.nix145
-rw-r--r--pkgs/development/interpreters/python/tests/test_environments/test_python.py (renamed from pkgs/development/interpreters/python/tests/test_python.py)0
-rw-r--r--pkgs/development/interpreters/racket/default.nix4
-rw-r--r--pkgs/development/interpreters/racket/minimal.nix2
-rw-r--r--pkgs/development/interpreters/rakudo/default.nix4
-rw-r--r--pkgs/development/interpreters/rakudo/moarvm.nix4
-rw-r--r--pkgs/development/interpreters/rakudo/nqp.nix6
-rw-r--r--pkgs/development/interpreters/red/default.nix8
-rw-r--r--pkgs/development/interpreters/ruby/default.nix2
-rw-r--r--pkgs/development/interpreters/spidermonkey/68.nix4
-rw-r--r--pkgs/development/interpreters/wasmer/default.nix1
-rw-r--r--pkgs/development/interpreters/wasmtime/default.nix6
-rw-r--r--pkgs/development/libraries/CGAL/cgal_path.patch15
-rw-r--r--pkgs/development/libraries/CGAL/default.nix16
-rw-r--r--pkgs/development/libraries/SDL2/default.nix7
-rw-r--r--pkgs/development/libraries/acl/default.nix5
-rw-r--r--pkgs/development/libraries/adns/default.nix38
-rw-r--r--pkgs/development/libraries/afflib/default.nix9
-rw-r--r--pkgs/development/libraries/agda/agda-categories/default.nix11
-rw-r--r--pkgs/development/libraries/agda/agda-prelude/default.nix8
-rw-r--r--pkgs/development/libraries/agda/generic/default.nix31
-rw-r--r--pkgs/development/libraries/alembic/default.nix4
-rw-r--r--pkgs/development/libraries/amdvlk/default.nix9
-rw-r--r--pkgs/development/libraries/aml/default.nix23
-rw-r--r--pkgs/development/libraries/appindicator-sharp/default.nix43
-rw-r--r--pkgs/development/libraries/appstream/default.nix14
-rw-r--r--pkgs/development/libraries/argp-standalone/default.nix2
-rw-r--r--pkgs/development/libraries/armadillo/default.nix4
-rw-r--r--pkgs/development/libraries/arrow-cpp/default.nix60
-rw-r--r--pkgs/development/libraries/arrow-cpp/jemalloc-disable-shared.patch11
-rw-r--r--pkgs/development/libraries/aspell/dictionaries.nix12
-rw-r--r--pkgs/development/libraries/assimp/default.nix2
-rw-r--r--pkgs/development/libraries/at-spi2-core/default.nix4
-rw-r--r--pkgs/development/libraries/attr/default.nix10
-rw-r--r--pkgs/development/libraries/attr/syscall.patch120
-rw-r--r--pkgs/development/libraries/audio/libmysofa/default.nix2
-rw-r--r--pkgs/development/libraries/audio/lv2/default.nix4
-rw-r--r--pkgs/development/libraries/audio/mbelib/default.nix31
-rw-r--r--pkgs/development/libraries/avahi/default.nix14
-rw-r--r--pkgs/development/libraries/ayatana-ido/default.nix29
-rw-r--r--pkgs/development/libraries/babl/default.nix4
-rw-r--r--pkgs/development/libraries/c-ares/default.nix5
-rw-r--r--pkgs/development/libraries/c-blosc/default.nix4
-rw-r--r--pkgs/development/libraries/caf/default.nix4
-rw-r--r--pkgs/development/libraries/cairo/default.nix4
-rw-r--r--pkgs/development/libraries/capnproto/default.nix4
-rw-r--r--pkgs/development/libraries/catch2/default.nix4
-rw-r--r--pkgs/development/libraries/check/default.nix4
-rw-r--r--pkgs/development/libraries/chromaprint/default.nix4
-rw-r--r--pkgs/development/libraries/cimg/default.nix4
-rw-r--r--pkgs/development/libraries/console-bridge/default.nix23
-rw-r--r--pkgs/development/libraries/cpp-hocon/default.nix10
-rw-r--r--pkgs/development/libraries/cpp-utilities/default.nix4
-rw-r--r--pkgs/development/libraries/dbus/default.nix4
-rw-r--r--pkgs/development/libraries/dbxml/default.nix2
-rw-r--r--pkgs/development/libraries/dlib/default.nix8
-rw-r--r--pkgs/development/libraries/docopt_cpp/default.nix11
-rw-r--r--pkgs/development/libraries/dqlite/default.nix12
-rw-r--r--pkgs/development/libraries/draco/default.nix34
-rw-r--r--pkgs/development/libraries/duckdb/default.nix4
-rw-r--r--pkgs/development/libraries/dxflib/default.nix36
-rw-r--r--pkgs/development/libraries/enchant/2.x.nix4
-rw-r--r--pkgs/development/libraries/ethash/default.nix4
-rw-r--r--pkgs/development/libraries/exiv2/default.nix30
-rw-r--r--pkgs/development/libraries/expat/default.nix5
-rw-r--r--pkgs/development/libraries/faac/default.nix1
-rw-r--r--pkgs/development/libraries/faad2/default.nix39
-rw-r--r--pkgs/development/libraries/farstream/default.nix5
-rw-r--r--pkgs/development/libraries/faudio/default.nix6
-rw-r--r--pkgs/development/libraries/fcft/default.nix29
-rw-r--r--pkgs/development/libraries/fflas-ffpack/default.nix24
-rw-r--r--pkgs/development/libraries/ffmpeg/2.8.nix4
-rw-r--r--pkgs/development/libraries/ffmpeg/3.4.nix4
-rw-r--r--pkgs/development/libraries/ffmpeg/4.nix4
-rw-r--r--pkgs/development/libraries/ffmpeg/generic.nix1
-rw-r--r--pkgs/development/libraries/flatbuffers/default.nix16
-rw-r--r--pkgs/development/libraries/flatpak/default.nix54
-rw-r--r--pkgs/development/libraries/flatpak/fix-test-paths.patch31
-rw-r--r--pkgs/development/libraries/fontconfig/2.10.nix47
-rw-r--r--pkgs/development/libraries/fontconfig/config-compat.patch28
-rw-r--r--pkgs/development/libraries/fontconfig/default.nix104
-rw-r--r--pkgs/development/libraries/fontconfig/fix-joypixels.patch23
-rw-r--r--pkgs/development/libraries/fontconfig/make-fonts-cache.nix2
-rw-r--r--pkgs/development/libraries/fontconfig/make-fonts-conf.nix2
-rw-r--r--pkgs/development/libraries/fontconfig/make-fonts-conf.xsl13
-rw-r--r--pkgs/development/libraries/g2o/default.nix17
-rw-r--r--pkgs/development/libraries/gcc/libstdc++/5.nix2
-rw-r--r--pkgs/development/libraries/gd/default.nix21
-rw-r--r--pkgs/development/libraries/gdal/default.nix9
-rw-r--r--pkgs/development/libraries/gdcm/default.nix29
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/xlib.nix6
-rw-r--r--pkgs/development/libraries/gdl/default.nix2
-rw-r--r--pkgs/development/libraries/gegl/4.0.nix4
-rw-r--r--pkgs/development/libraries/gensio/default.nix4
-rw-r--r--pkgs/development/libraries/geos/default.nix3
-rw-r--r--pkgs/development/libraries/gettext/default.nix19
-rw-r--r--pkgs/development/libraries/gettext/gettext.git-2336451ed68d91ff4b5ae1acbc1eca30e47a86a9.patch82
-rw-r--r--pkgs/development/libraries/gfbgraph/default.nix24
-rw-r--r--pkgs/development/libraries/givaro/default.nix20
-rw-r--r--pkgs/development/libraries/gjs/default.nix4
-rw-r--r--pkgs/development/libraries/gl2ps/default.nix18
-rw-r--r--pkgs/development/libraries/glib/default.nix7
-rw-r--r--pkgs/development/libraries/glibc/2.27-CVE-2019-19126.patch18
-rw-r--r--pkgs/development/libraries/glibc/2.31-cve-2020-10029.patch79
-rw-r--r--pkgs/development/libraries/glibc/common.nix11
-rw-r--r--pkgs/development/libraries/glibmm/default.nix7
-rw-r--r--pkgs/development/libraries/gloox/default.nix4
-rw-r--r--pkgs/development/libraries/gmp/6.x.nix5
-rw-r--r--pkgs/development/libraries/gnu-config/default.nix11
-rw-r--r--pkgs/development/libraries/goffice/default.nix4
-rw-r--r--pkgs/development/libraries/gperftools/default.nix25
-rw-r--r--pkgs/development/libraries/gpgme/default.nix14
-rw-r--r--pkgs/development/libraries/grantlee/5/default.nix7
-rw-r--r--pkgs/development/libraries/grantlee/5/series2
-rw-r--r--pkgs/development/libraries/graphene/default.nix9
-rw-r--r--pkgs/development/libraries/grpc/default.nix4
-rw-r--r--pkgs/development/libraries/gssdp/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/default.nix2
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix23
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix36
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix60
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch38
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix52
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/linux-headers-3.9.patch27
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch11
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix30
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix37
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-python/disable-testFake.patch56
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gstreamer/darwin.patch14
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix89
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh8
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gstreamermm/default.nix31
-rw-r--r--pkgs/development/libraries/gstreamer/rtsp-server/default.nix9
-rw-r--r--pkgs/development/libraries/gstreamer/rtsp-server/fix_pkgconfig_includedir.patch15
-rw-r--r--pkgs/development/libraries/gthree/default.nix24
-rw-r--r--pkgs/development/libraries/gtk-layer-shell/default.nix26
-rw-r--r--pkgs/development/libraries/gtk-sharp/3.0.nix32
-rw-r--r--pkgs/development/libraries/gtk/3.x.nix4
-rw-r--r--pkgs/development/libraries/gtksourceview/4.x.nix6
-rw-r--r--pkgs/development/libraries/harfbuzz/default.nix56
-rw-r--r--pkgs/development/libraries/hivex/default.nix4
-rw-r--r--pkgs/development/libraries/hpx/default.nix4
-rw-r--r--pkgs/development/libraries/hunspell/dictionaries.nix29
-rw-r--r--pkgs/development/libraries/igraph/default.nix2
-rw-r--r--pkgs/development/libraries/ilmbase/cross.patch35
-rw-r--r--pkgs/development/libraries/ilmbase/default.nix15
-rw-r--r--pkgs/development/libraries/imlib2/default.nix4
-rw-r--r--pkgs/development/libraries/intel-gmmlib/default.nix6
-rw-r--r--pkgs/development/libraries/intel-media-driver/default.nix4
-rw-r--r--pkgs/development/libraries/intel-media-sdk/default.nix4
-rw-r--r--pkgs/development/libraries/itk/4.x.nix17
-rw-r--r--pkgs/development/libraries/itk/default.nix4
-rw-r--r--pkgs/development/libraries/jabcode/default.nix46
-rw-r--r--pkgs/development/libraries/java/commons/lang/default.nix4
-rw-r--r--pkgs/development/libraries/java/hsqldb/default.nix4
-rw-r--r--pkgs/development/libraries/java/jzmq/default.nix30
-rw-r--r--pkgs/development/libraries/java/lombok/default.nix4
-rw-r--r--pkgs/development/libraries/jbig2dec/default.nix2
-rw-r--r--pkgs/development/libraries/json-c/default.nix12
-rw-r--r--pkgs/development/libraries/jsoncpp/default.nix14
-rw-r--r--pkgs/development/libraries/jxrlib/default.nix8
-rw-r--r--pkgs/development/libraries/kde-frameworks/default.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/extra-cmake-modules/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/fetch.sh2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kauth/default.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kauth/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcmutils/0001-kcmutils-follow-symlinks.patch (renamed from pkgs/development/libraries/kde-frameworks/kcmutils/kcmutils-follow-symlinks.patch)16
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcmutils/default.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcmutils/kcmutils-debug-module-loader.patch13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcmutils/series2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdav.nix (renamed from pkgs/applications/kde/kdav.nix)3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdelibs4support/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdesu/default.nix (renamed from pkgs/development/libraries/kde-frameworks/kdesu.nix)1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdesu/kdesu-search-for-wrapped-daemon-first.patch38
-rw-r--r--pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kfilemetadata/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kiconthemes/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kinit/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kinit/series3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kio/default.nix7
-rw-r--r--pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch36
-rw-r--r--pkgs/development/libraries/kde-frameworks/kio/series2
-rw-r--r--pkgs/development/libraries/kde-frameworks/knewstuff.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpackage/default.nix7
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpackage/series2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kquickcharts.nix15
-rw-r--r--pkgs/development/libraries/kde-frameworks/krunner.nix24
-rw-r--r--pkgs/development/libraries/kde-frameworks/kservice/default.nix7
-rw-r--r--pkgs/development/libraries/kde-frameworks/kservice/series2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwayland.nix4
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwindowsystem/series1
-rw-r--r--pkgs/development/libraries/kde-frameworks/srcs.nix664
-rw-r--r--pkgs/development/libraries/kdsoap/default.nix39
-rw-r--r--pkgs/development/libraries/kerberos/krb5.nix5
-rw-r--r--pkgs/development/libraries/kmsxx/default.nix6
-rw-r--r--pkgs/development/libraries/kpmcore/default.nix13
-rw-r--r--pkgs/development/libraries/lcms2/default.nix4
-rw-r--r--pkgs/development/libraries/ldb/default.nix4
-rw-r--r--pkgs/development/libraries/leatherman/default.nix13
-rw-r--r--pkgs/development/libraries/leptonica/default.nix4
-rw-r--r--pkgs/development/libraries/libaacs/default.nix4
-rw-r--r--pkgs/development/libraries/libappindicator/default.nix28
-rw-r--r--pkgs/development/libraries/libayatana-appindicator/default.nix49
-rw-r--r--pkgs/development/libraries/libayatana-indicator/default.nix36
-rw-r--r--pkgs/development/libraries/libbap/default.nix6
-rw-r--r--pkgs/development/libraries/libbytesize/default.nix4
-rw-r--r--pkgs/development/libraries/libcint/default.nix4
-rw-r--r--pkgs/development/libraries/libcrafter/default.nix4
-rw-r--r--pkgs/development/libraries/libcryptui/default.nix10
-rw-r--r--pkgs/development/libraries/libcryptui/fix-gnupg-2.2.patch26
-rw-r--r--pkgs/development/libraries/libde265/default.nix4
-rw-r--r--pkgs/development/libraries/libdigidoc/default.nix11
-rw-r--r--pkgs/development/libraries/libdrm/cross-build-nm-path.patch23
-rw-r--r--pkgs/development/libraries/libdrm/default.nix16
-rw-r--r--pkgs/development/libraries/libebml/default.nix4
-rw-r--r--pkgs/development/libraries/libelf/default.nix5
-rw-r--r--pkgs/development/libraries/libev/default.nix5
-rw-r--r--pkgs/development/libraries/libevdev/default.nix6
-rw-r--r--pkgs/development/libraries/libevent/default.nix4
-rw-r--r--pkgs/development/libraries/libffi/default.nix5
-rw-r--r--pkgs/development/libraries/libfido2/default.nix12
-rw-r--r--pkgs/development/libraries/libfilezilla/default.nix11
-rw-r--r--pkgs/development/libraries/libgaminggear/default.nix4
-rw-r--r--pkgs/development/libraries/libgcrypt/default.nix4
-rw-r--r--pkgs/development/libraries/libgdiplus/default.nix2
-rw-r--r--pkgs/development/libraries/libglvnd/default.nix4
-rw-r--r--pkgs/development/libraries/libguestfs/default.nix4
-rw-r--r--pkgs/development/libraries/libgweather/default.nix4
-rw-r--r--pkgs/development/libraries/libhdhomerun/default.nix25
-rw-r--r--pkgs/development/libraries/libheif/default.nix4
-rw-r--r--pkgs/development/libraries/libhugetlbfs/default.nix51
-rw-r--r--pkgs/development/libraries/libidn/default.nix4
-rw-r--r--pkgs/development/libraries/libidn2/default.nix5
-rw-r--r--pkgs/development/libraries/libiio/default.nix65
-rw-r--r--pkgs/development/libraries/libiio/hardcode-library-path.patch38
-rw-r--r--pkgs/development/libraries/libinput/default.nix22
-rw-r--r--pkgs/development/libraries/libipt/default.nix4
-rw-r--r--pkgs/development/libraries/libjpeg-turbo/default.nix3
-rw-r--r--pkgs/development/libraries/liblinear/default.nix42
-rw-r--r--pkgs/development/libraries/liblouis/default.nix4
-rw-r--r--pkgs/development/libraries/libmatroska/default.nix4
-rw-r--r--pkgs/development/libraries/libmaxminddb/default.nix4
-rw-r--r--pkgs/development/libraries/libmbim/default.nix18
-rw-r--r--pkgs/development/libraries/libmediainfo/default.nix4
-rw-r--r--pkgs/development/libraries/libmicrohttpd/default.nix4
-rw-r--r--pkgs/development/libraries/libmpc/default.nix9
-rw-r--r--pkgs/development/libraries/libmysqlconnectorcpp/default.nix4
-rw-r--r--pkgs/development/libraries/libndctl/default.nix4
-rw-r--r--pkgs/development/libraries/libngspice/default.nix2
-rw-r--r--pkgs/development/libraries/libnsl/default.nix4
-rw-r--r--pkgs/development/libraries/libpcap/default.nix6
-rw-r--r--pkgs/development/libraries/libpfm/default.nix4
-rw-r--r--pkgs/development/libraries/libpipeline/default.nix4
-rw-r--r--pkgs/development/libraries/libplacebo/default.nix38
-rw-r--r--pkgs/development/libraries/libpqxx/default.nix2
-rw-r--r--pkgs/development/libraries/libprom/default.nix48
-rw-r--r--pkgs/development/libraries/libpwquality/default.nix19
-rw-r--r--pkgs/development/libraries/libqalculate/default.nix4
-rw-r--r--pkgs/development/libraries/libqmi/default.nix4
-rw-r--r--pkgs/development/libraries/libqtav/default.nix2
-rw-r--r--pkgs/development/libraries/libraw/default.nix4
-rw-r--r--pkgs/development/libraries/librealsense/default.nix34
-rw-r--r--pkgs/development/libraries/librealsense/py_sitepackage_dir.patch15
-rw-r--r--pkgs/development/libraries/libredwg/default.nix43
-rw-r--r--pkgs/development/libraries/librseq/default.nix15
-rw-r--r--pkgs/development/libraries/librsvg/default.nix4
-rw-r--r--pkgs/development/libraries/libseccomp/default.nix20
-rw-r--r--pkgs/development/libraries/libsidplayfp/default.nix35
-rw-r--r--pkgs/development/libraries/libsignon-glib/default.nix8
-rw-r--r--pkgs/development/libraries/libslirp/default.nix4
-rw-r--r--pkgs/development/libraries/libsvm/default.nix15
-rw-r--r--pkgs/development/libraries/libthreadar/default.nix35
-rw-r--r--pkgs/development/libraries/libtsm/darwin.patch37
-rw-r--r--pkgs/development/libraries/libtsm/default.nix24
-rw-r--r--pkgs/development/libraries/libu2f-host/default.nix11
-rw-r--r--pkgs/development/libraries/libu2f-server/default.nix11
-rw-r--r--pkgs/development/libraries/libunibreak/default.nix20
-rw-r--r--pkgs/development/libraries/libunistring/default.nix5
-rw-r--r--pkgs/development/libraries/liburing/default.nix6
-rw-r--r--pkgs/development/libraries/libusb-compat/fix-headers.patch (renamed from pkgs/development/libraries/libusb/fix-headers.patch)0
-rw-r--r--pkgs/development/libraries/libusb1/default.nix4
-rw-r--r--pkgs/development/libraries/libuv/default.nix11
-rw-r--r--pkgs/development/libraries/libva/default.nix17
-rw-r--r--pkgs/development/libraries/libva/utils.nix (renamed from pkgs/development/libraries/libva-utils/default.nix)2
-rw-r--r--pkgs/development/libraries/libvirt/default.nix8
-rw-r--r--pkgs/development/libraries/libvmaf/default.nix8
-rw-r--r--pkgs/development/libraries/libwacom/default.nix4
-rw-r--r--pkgs/development/libraries/libwebsockets/default.nix9
-rw-r--r--pkgs/development/libraries/libwhereami/default.nix8
-rw-r--r--pkgs/development/libraries/libxml2/default.nix5
-rw-r--r--pkgs/development/libraries/libxmlb/default.nix4
-rw-r--r--pkgs/development/libraries/lime/default.nix4
-rw-r--r--pkgs/development/libraries/linbox/default.nix21
-rw-r--r--pkgs/development/libraries/lyra/default.nix4
-rw-r--r--pkgs/development/libraries/mailcore2/default.nix4
-rw-r--r--pkgs/development/libraries/malcontent/better-separation.patch45
-rw-r--r--pkgs/development/libraries/malcontent/default.nix29
-rw-r--r--pkgs/development/libraries/malcontent/ui.nix4
-rw-r--r--pkgs/development/libraries/medfile/default.nix4
-rw-r--r--pkgs/development/libraries/mesa/default.nix31
-rw-r--r--pkgs/development/libraries/mesa/link-radv-with-ld_args_build_id.patch25
-rw-r--r--pkgs/development/libraries/mimalloc/default.nix4
-rw-r--r--pkgs/development/libraries/mimetic/default.nix2
-rw-r--r--pkgs/development/libraries/mimetic/narrowing.patch32
-rw-r--r--pkgs/development/libraries/mpfr/default.nix9
-rw-r--r--pkgs/development/libraries/muparserx/default.nix42
-rw-r--r--pkgs/development/libraries/nanomsg/default.nix2
-rw-r--r--pkgs/development/libraries/ndi/default.nix4
-rw-r--r--pkgs/development/libraries/neatvnc/default.nix13
-rw-r--r--pkgs/development/libraries/neatvnc/disable-cpu-acceleration.patch17
-rw-r--r--pkgs/development/libraries/netcdf/default.nix9
-rw-r--r--pkgs/development/libraries/nghttp2/default.nix9
-rw-r--r--pkgs/development/libraries/notify-sharp/default.nix7
-rw-r--r--pkgs/development/libraries/nspr/default.nix4
-rw-r--r--pkgs/development/libraries/nss/3.44.nix144
-rw-r--r--pkgs/development/libraries/nss/85_security_load-3.44.patch81
-rw-r--r--pkgs/development/libraries/nss/85_security_load.patch43
-rw-r--r--pkgs/development/libraries/nss/default.nix97
-rw-r--r--pkgs/development/libraries/nss/fix-cross-compilation.patch11
-rw-r--r--pkgs/development/libraries/ntirpc/default.nix38
-rw-r--r--pkgs/development/libraries/oneDNN/default.nix14
-rw-r--r--pkgs/development/libraries/onnxruntime/default.nix3
-rw-r--r--pkgs/development/libraries/opencl-clhpp/default.nix4
-rw-r--r--pkgs/development/libraries/opencl-headers/default.nix4
-rw-r--r--pkgs/development/libraries/opendmarc/default.nix40
-rw-r--r--pkgs/development/libraries/openexr/default.nix23
-rw-r--r--pkgs/development/libraries/openfst/default.nix4
-rw-r--r--pkgs/development/libraries/opengrm-ngram/default.nix25
-rw-r--r--pkgs/development/libraries/openimagedenoise/default.nix4
-rw-r--r--pkgs/development/libraries/openldap/default.nix11
-rw-r--r--pkgs/development/libraries/openmpi/default.nix17
-rw-r--r--pkgs/development/libraries/openssl/default.nix5
-rw-r--r--pkgs/development/libraries/openxr-loader/default.nix4
-rw-r--r--pkgs/development/libraries/orcania/default.nix4
-rw-r--r--pkgs/development/libraries/p11-kit/default.nix11
-rw-r--r--pkgs/development/libraries/packr/default.nix6
-rw-r--r--pkgs/development/libraries/pango/default.nix15
-rw-r--r--pkgs/development/libraries/pc-ble-driver/default.nix36
-rw-r--r--pkgs/development/libraries/pcl/default.nix4
-rw-r--r--pkgs/development/libraries/pcre2/default.nix3
-rw-r--r--pkgs/development/libraries/phonetisaurus/default.nix32
-rw-r--r--pkgs/development/libraries/physics/hepmc3/default.nix14
-rw-r--r--pkgs/development/libraries/physics/lhapdf/default.nix4
-rw-r--r--pkgs/development/libraries/pipewire/default.nix11
-rw-r--r--pkgs/development/libraries/pkger/default.nix2
-rw-r--r--pkgs/development/libraries/plasma-wayland-protocols/default.nix24
-rw-r--r--pkgs/development/libraries/pmix/default.nix48
-rw-r--r--pkgs/development/libraries/poppler/default.nix4
-rw-r--r--pkgs/development/libraries/prometheus-client-c/default.nix71
-rw-r--r--pkgs/development/libraries/protobuf/3.12.nix4
-rw-r--r--pkgs/development/libraries/protobuf/3.13.nix6
-rw-r--r--pkgs/development/libraries/protolock/default.nix4
-rw-r--r--pkgs/development/libraries/qca-qt5/default.nix4
-rw-r--r--pkgs/development/libraries/qgnomeplatform/default.nix3
-rw-r--r--pkgs/development/libraries/qt-4.x/4.8/default.nix9
-rw-r--r--pkgs/development/libraries/qt-5/5.12/default.nix35
-rw-r--r--pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-fix-failed-static-assertion.patch31
-rw-r--r--pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch44
-rw-r--r--pkgs/development/libraries/qt-5/5.14/default.nix182
-rw-r--r--pkgs/development/libraries/qt-5/5.14/fetch.sh1
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch411
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0002-qtbase-mac.patch116
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0003-qtbase-mkspecs.patch464
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0004-qtbase-replace-libdir.patch68
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0005-qtbase-cmake.patch194
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0006-qtbase-gtk3.patch48
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0007-qtbase-xcursor.patch29
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0008-qtbase-tzdir.patch64
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0009-qtbase-qtpluginpath.patch19
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0010-qtbase-assert.patch32
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0011-fix-header_module.patch25
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtdeclarative.patch33
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtscript.patch13
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtserialport.patch22
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qttools.patch15
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtwebengine-darwin-no-platform-check.patch33
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-qos-classes.patch11
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch45
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtwebkit.patch12
-rw-r--r--pkgs/development/libraries/qt-5/5.14/srcs.nix342
-rw-r--r--pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh13
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtbase.nix28
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtimageformats.nix3
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtmultimedia.nix7
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtserialbus.nix6
-rw-r--r--pkgs/development/libraries/qt-5/modules/qttools.nix8
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtwebengine.nix67
-rw-r--r--pkgs/development/libraries/quazip/default.nix4
-rw-r--r--pkgs/development/libraries/qwt/6.nix4
-rw-r--r--pkgs/development/libraries/qwt/6_qt4.nix4
-rw-r--r--pkgs/development/libraries/raft-canonical/default.nix12
-rw-r--r--pkgs/development/libraries/randomx/default.nix4
-rw-r--r--pkgs/development/libraries/rang/default.nix19
-rw-r--r--pkgs/development/libraries/range-v3/default.nix5
-rw-r--r--pkgs/development/libraries/rdkafka/default.nix4
-rw-r--r--pkgs/development/libraries/readosm/default.nix4
-rw-r--r--pkgs/development/libraries/redkite/default.nix25
-rw-r--r--pkgs/development/libraries/relibc/default.nix77
-rw-r--r--pkgs/development/libraries/rlottie/default.nix23
-rw-r--r--pkgs/development/libraries/rnnoise-plugin/default.nix25
-rw-r--r--pkgs/development/libraries/rocclr/default.nix64
-rw-r--r--pkgs/development/libraries/rocksdb/default.nix33
-rw-r--r--pkgs/development/libraries/rocm-comgr/default.nix46
-rw-r--r--pkgs/development/libraries/rocm-device-libs/default.nix40
-rw-r--r--pkgs/development/libraries/rocm-opencl-icd/default.nix20
-rw-r--r--pkgs/development/libraries/rocm-opencl-runtime/default.nix83
-rw-r--r--pkgs/development/libraries/rocm-runtime/default.nix48
-rw-r--r--pkgs/development/libraries/rocm-thunk/default.nix37
-rw-r--r--pkgs/development/libraries/science/math/amd-blis/default.nix67
-rw-r--r--pkgs/development/libraries/science/math/amd-libflame/add-lapacke.diff34
-rw-r--r--pkgs/development/libraries/science/math/amd-libflame/default.nix72
-rw-r--r--pkgs/development/libraries/science/math/arpack/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/cudnn/default.nix11
-rw-r--r--pkgs/development/libraries/science/math/cudnn/generic.nix10
-rw-r--r--pkgs/development/libraries/science/math/itpp/default.nix55
-rw-r--r--pkgs/development/libraries/science/math/libtorch/bin.nix111
-rw-r--r--pkgs/development/libraries/science/math/libtorch/binary-hashes.nix14
-rw-r--r--pkgs/development/libraries/science/math/libtorch/test/CMakeLists.txt4
-rw-r--r--pkgs/development/libraries/science/math/libtorch/test/default.nix26
-rw-r--r--pkgs/development/libraries/science/math/libtorch/test/test.cpp7
-rw-r--r--pkgs/development/libraries/science/math/magma/default.nix12
-rw-r--r--pkgs/development/libraries/science/math/mkl/default.nix8
-rw-r--r--pkgs/development/libraries/science/math/nccl/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/openlibm/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/or-tools/default.nix16
-rw-r--r--pkgs/development/libraries/science/math/osqp/default.nix27
-rw-r--r--pkgs/development/libraries/science/math/petsc/default.nix24
-rw-r--r--pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix4
-rw-r--r--pkgs/development/libraries/seasocks/default.nix4
-rw-r--r--pkgs/development/libraries/serd/default.nix2
-rw-r--r--pkgs/development/libraries/serf/default.nix4
-rw-r--r--pkgs/development/libraries/snap7/default.nix38
-rw-r--r--pkgs/development/libraries/soil/default.nix4
-rw-r--r--pkgs/development/libraries/sope/default.nix4
-rw-r--r--pkgs/development/libraries/sord/default.nix2
-rw-r--r--pkgs/development/libraries/sparsehash/default.nix4
-rw-r--r--pkgs/development/libraries/spdlog/default.nix4
-rw-r--r--pkgs/development/libraries/speechd/default.nix4
-rw-r--r--pkgs/development/libraries/sqlite/analyzer.nix4
-rw-r--r--pkgs/development/libraries/sqlite/default.nix4
-rw-r--r--pkgs/development/libraries/strigi/default.nix43
-rw-r--r--pkgs/development/libraries/strigi/export_bufferedstream.patch12
-rw-r--r--pkgs/development/libraries/strigi/gcc6.patch45
-rw-r--r--pkgs/development/libraries/swiften/default.nix4
-rw-r--r--pkgs/development/libraries/tbb/default.nix4
-rw-r--r--pkgs/development/libraries/tiledb/default.nix19
-rw-r--r--pkgs/development/libraries/timezonemap/default.nix65
-rw-r--r--pkgs/development/libraries/tinycbor/default.nix22
-rw-r--r--pkgs/development/libraries/tk/generic.nix2
-rw-r--r--pkgs/development/libraries/tllist/default.nix24
-rw-r--r--pkgs/development/libraries/tweeny/default.nix4
-rw-r--r--pkgs/development/libraries/uci/default.nix6
-rw-r--r--pkgs/development/libraries/ucx/default.nix4
-rw-r--r--pkgs/development/libraries/unicorn-emu/default.nix20
-rw-r--r--pkgs/development/libraries/urdfdom-headers/default.nix31
-rw-r--r--pkgs/development/libraries/urdfdom/default.nix39
-rw-r--r--pkgs/development/libraries/utf8proc/default.nix14
-rw-r--r--pkgs/development/libraries/vaapi-intel/default.nix34
-rw-r--r--pkgs/development/libraries/vid-stab/default.nix27
-rw-r--r--pkgs/development/libraries/vtk/9.x.nix95
-rw-r--r--pkgs/development/libraries/wayland/default.nix4
-rw-r--r--pkgs/development/libraries/wcslib/default.nix4
-rw-r--r--pkgs/development/libraries/webkit2-sharp/default.nix49
-rw-r--r--pkgs/development/libraries/webkitgtk/default.nix7
-rw-r--r--pkgs/development/libraries/wlroots/default.nix12
-rw-r--r--pkgs/development/libraries/wolfssl/default.nix4
-rw-r--r--pkgs/development/libraries/wxsqlite3/default.nix4
-rw-r--r--pkgs/development/libraries/wxwidgets/2.8/default.nix4
-rw-r--r--pkgs/development/libraries/wxwidgets/2.9/default.nix7
-rw-r--r--pkgs/development/libraries/wxwidgets/3.0/default.nix8
-rw-r--r--pkgs/development/libraries/wxwidgets/3.1/default.nix12
-rw-r--r--pkgs/development/libraries/x265/default.nix68
-rw-r--r--pkgs/development/libraries/xapian/default.nix3
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix1
-rw-r--r--pkgs/development/libraries/xmlsec/default.nix35
-rw-r--r--pkgs/development/libraries/xmlsec/lt_dladdsearchdir.patch16
-rw-r--r--pkgs/development/libraries/xxHash/default.nix6
-rw-r--r--pkgs/development/libraries/yder/default.nix4
-rw-r--r--pkgs/development/libraries/zeromq/3.x.nix22
-rw-r--r--pkgs/development/libraries/zimg/default.nix4
-rw-r--r--pkgs/development/libraries/zlib/default.nix5
-rw-r--r--pkgs/development/lisp-modules/asdf/3.1.nix2
-rw-r--r--pkgs/development/lisp-modules/asdf/default.nix2
-rw-r--r--pkgs/development/lisp-modules/iterate.darcs-context116
-rw-r--r--pkgs/development/lua-modules/generated-packages.nix99
-rw-r--r--pkgs/development/lua-modules/luaexpat.patch36
-rw-r--r--pkgs/development/lua-modules/overrides.nix12
-rw-r--r--pkgs/development/misc/haskell/hasura/ci-info/default.nix (renamed from pkgs/servers/hasura/ci-info.nix)0
-rw-r--r--pkgs/development/misc/haskell/hasura/graphql-engine/default.nix (renamed from pkgs/servers/hasura/graphql-engine.nix)10
-rw-r--r--pkgs/development/misc/haskell/hasura/graphql-parser/default.nix (renamed from pkgs/servers/hasura/graphql-parser.nix)7
-rw-r--r--pkgs/development/misc/haskell/hasura/pg-client/default.nix (renamed from pkgs/servers/hasura/pg-client.nix)0
-rw-r--r--pkgs/development/mobile/androidenv/build-tools.nix2
-rw-r--r--pkgs/development/mobile/androidenv/compose-android-packages.nix2
-rw-r--r--pkgs/development/mobile/androidenv/convertaddons.xsl12
-rw-r--r--pkgs/development/mobile/androidenv/convertpackages.xsl4
-rw-r--r--pkgs/development/mobile/androidenv/convertsystemimages.xsl2
-rw-r--r--pkgs/development/mobile/androidenv/default.nix2
-rw-r--r--pkgs/development/mobile/androidenv/emulate-app.nix4
-rw-r--r--pkgs/development/mobile/androidenv/generated/addons.nix128
-rw-r--r--pkgs/development/mobile/androidenv/ndk-bundle/default.nix6
-rw-r--r--pkgs/development/mobile/cocoapods/Gemfile-beta.lock45
-rw-r--r--pkgs/development/mobile/cocoapods/gemset-beta.nix81
-rw-r--r--pkgs/development/node-packages/default.nix49
-rw-r--r--pkgs/development/node-packages/node-packages.json10
-rw-r--r--pkgs/development/node-packages/node-packages.nix20074
-rw-r--r--pkgs/development/ocaml-modules/bap/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/bap/dont-add-curses.patch32
-rw-r--r--pkgs/development/ocaml-modules/camlpdf/default.nix12
-rw-r--r--pkgs/development/ocaml-modules/cohttp/async.nix22
-rw-r--r--pkgs/development/ocaml-modules/cohttp/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/conduit/async.nix19
-rw-r--r--pkgs/development/ocaml-modules/conduit/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/containers/data.nix18
-rw-r--r--pkgs/development/ocaml-modules/containers/default.nix14
-rw-r--r--pkgs/development/ocaml-modules/cpdf/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/csexp/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/dns/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/dune-action-plugin/default.nix19
-rw-r--r--pkgs/development/ocaml-modules/dune-build-info/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/dune-configurator/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/dune-glob/default.nix19
-rw-r--r--pkgs/development/ocaml-modules/dune-private-libs/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/eliom/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/elpi/default.nix12
-rw-r--r--pkgs/development/ocaml-modules/fdkaac/default.nix27
-rw-r--r--pkgs/development/ocaml-modules/genspio/default.nix32
-rw-r--r--pkgs/development/ocaml-modules/gmetadom/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/gmetadom/gcc-4.3.patch (renamed from pkgs/development/ocaml-modules/gmetadom/gcc-4.3.dpatch)0
-rw-r--r--pkgs/development/ocaml-modules/hacl_x25519/default.nix9
-rw-r--r--pkgs/development/ocaml-modules/hidapi/default.nix27
-rw-r--r--pkgs/development/ocaml-modules/inotify/default.nix18
-rw-r--r--pkgs/development/ocaml-modules/janestreet/0.13.nix10
-rw-r--r--pkgs/development/ocaml-modules/jwto/default.nix30
-rw-r--r--pkgs/development/ocaml-modules/lablgtk3/default.nix7
-rw-r--r--pkgs/development/ocaml-modules/labltk/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/lambdasoup/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/lua-ml/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/lwt/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/lwt/ppx.nix6
-rw-r--r--pkgs/development/ocaml-modules/lwt_ssl/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/markup/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/mdx/default.nix11
-rw-r--r--pkgs/development/ocaml-modules/merlin-extend/default.nix14
-rw-r--r--pkgs/development/ocaml-modules/mirage-crypto/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/mirage-stack/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/mustache/default.nix25
-rw-r--r--pkgs/development/ocaml-modules/nonstd/default.nix24
-rw-r--r--pkgs/development/ocaml-modules/ocamlgraph/default.nix28
-rw-r--r--pkgs/development/ocaml-modules/ocamlgraph/destdir.patch13
-rw-r--r--pkgs/development/ocaml-modules/ocamlnet/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-server/default.nix14
-rw-r--r--pkgs/development/ocaml-modules/ounit2/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/piqi-ocaml/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/posix/base.nix26
-rw-r--r--pkgs/development/ocaml-modules/posix/socket.nix16
-rw-r--r--pkgs/development/ocaml-modules/posix/types.nix15
-rw-r--r--pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ppx_tools/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix24
-rw-r--r--pkgs/development/ocaml-modules/prof_spacetime/default.nix43
-rw-r--r--pkgs/development/ocaml-modules/re/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/sosa/default.nix30
-rw-r--r--pkgs/development/ocaml-modules/spacetime_lib/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/srt/default.nix30
-rw-r--r--pkgs/development/ocaml-modules/tls/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/torch/default.nix7
-rw-r--r--pkgs/development/ocaml-modules/tsort/default.nix21
-rw-r--r--pkgs/development/ocaml-modules/uucd/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/uunf/default.nix42
-rw-r--r--pkgs/development/ocaml-modules/webbrowser/default.nix26
-rw-r--r--pkgs/development/perl-modules/Percona-Toolkit/default.nix26
-rw-r--r--pkgs/development/perl-modules/WWW-Curl-4.17-Skip-preprocessor-symbol-only-CURL_STRICTER.patch34
-rw-r--r--pkgs/development/perl-modules/crypt-openpgp-remove-impure-keygen-tests.patch30
-rw-r--r--pkgs/development/perl-modules/generic/default.nix2
-rw-r--r--pkgs/development/perl-modules/perl-POE-1.367-pod_linkcheck.patch40
-rw-r--r--pkgs/development/perl-modules/perl-POE-1.367-pod_no404s.patch46
-rw-r--r--pkgs/development/perl-modules/strip-nondeterminism/default.nix9
-rw-r--r--pkgs/development/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch40
-rw-r--r--pkgs/development/python-modules/Cython/default.nix4
-rw-r--r--pkgs/development/python-modules/Fabric/default.nix4
-rw-r--r--pkgs/development/python-modules/GitPython/default.nix4
-rw-r--r--pkgs/development/python-modules/HAP-python/default.nix5
-rw-r--r--pkgs/development/python-modules/JPype1/default.nix4
-rw-r--r--pkgs/development/python-modules/JayDeBeApi/default.nix4
-rw-r--r--pkgs/development/python-modules/Nikola/default.nix4
-rw-r--r--pkgs/development/python-modules/PyRMVtransport/default.nix48
-rw-r--r--pkgs/development/python-modules/Theano/default.nix4
-rw-r--r--pkgs/development/python-modules/Wand/default.nix4
-rw-r--r--pkgs/development/python-modules/XlsxWriter/default.nix4
-rw-r--r--pkgs/development/python-modules/aadict/default.nix27
-rw-r--r--pkgs/development/python-modules/accupy/default.nix4
-rw-r--r--pkgs/development/python-modules/aenum/default.nix4
-rw-r--r--pkgs/development/python-modules/afdko/default.nix55
-rw-r--r--pkgs/development/python-modules/agate-dbf/default.nix4
-rw-r--r--pkgs/development/python-modules/agate-sql/default.nix4
-rw-r--r--pkgs/development/python-modules/aioconsole/default.nix4
-rw-r--r--pkgs/development/python-modules/aioesphomeapi/default.nix18
-rw-r--r--pkgs/development/python-modules/aioftp/default.nix4
-rw-r--r--pkgs/development/python-modules/aioharmony/default.nix4
-rw-r--r--pkgs/development/python-modules/aiohttp-jinja2/default.nix2
-rw-r--r--pkgs/development/python-modules/aiohttp/default.nix2
-rw-r--r--pkgs/development/python-modules/aiohue/default.nix4
-rw-r--r--pkgs/development/python-modules/aiojobs/default.nix45
-rw-r--r--pkgs/development/python-modules/aiorun/default.nix9
-rw-r--r--pkgs/development/python-modules/aiounifi/default.nix4
-rw-r--r--pkgs/development/python-modules/alerta-server/default.nix4
-rw-r--r--pkgs/development/python-modules/alerta/default.nix4
-rw-r--r--pkgs/development/python-modules/alot/default.nix4
-rw-r--r--pkgs/development/python-modules/amqp/default.nix13
-rw-r--r--pkgs/development/python-modules/ansible/default.nix4
-rw-r--r--pkgs/development/python-modules/ansiconv/default.nix3
-rw-r--r--pkgs/development/python-modules/apispec/default.nix4
-rw-r--r--pkgs/development/python-modules/apprise/default.nix4
-rw-r--r--pkgs/development/python-modules/apsw/default.nix4
-rw-r--r--pkgs/development/python-modules/argcomplete/default.nix4
-rw-r--r--pkgs/development/python-modules/aria2p/default.nix2
-rw-r--r--pkgs/development/python-modules/arrow/default.nix4
-rw-r--r--pkgs/development/python-modules/asdf/default.nix4
-rw-r--r--pkgs/development/python-modules/ase/default.nix4
-rw-r--r--pkgs/development/python-modules/asgi-csrf/default.nix31
-rw-r--r--pkgs/development/python-modules/asgiref/default.nix4
-rw-r--r--pkgs/development/python-modules/asn1crypto/default.nix4
-rw-r--r--pkgs/development/python-modules/astor/default.nix20
-rw-r--r--pkgs/development/python-modules/astroid/default.nix4
-rw-r--r--pkgs/development/python-modules/astroquery/default.nix4
-rw-r--r--pkgs/development/python-modules/async-upnp-client/default.nix36
-rw-r--r--pkgs/development/python-modules/asyncpg/default.nix4
-rw-r--r--pkgs/development/python-modules/asyncssh/default.nix4
-rw-r--r--pkgs/development/python-modules/asynctest/default.nix2
-rwxr-xr-xpkgs/development/python-modules/atlassian-python-api/default.nix13
-rw-r--r--pkgs/development/python-modules/atom/default.nix4
-rw-r--r--pkgs/development/python-modules/atpublic/default.nix18
-rw-r--r--pkgs/development/python-modules/audiotools/default.nix2
-rw-r--r--pkgs/development/python-modules/auth0-python/default.nix4
-rw-r--r--pkgs/development/python-modules/autobahn/default.nix4
-rw-r--r--pkgs/development/python-modules/autopep8/default.nix4
-rw-r--r--pkgs/development/python-modules/avro-python3/default.nix4
-rw-r--r--pkgs/development/python-modules/avro/default.nix18
-rw-r--r--pkgs/development/python-modules/awkward/default.nix4
-rw-r--r--pkgs/development/python-modules/awkward1/default.nix4
-rw-r--r--pkgs/development/python-modules/aws-adfs/default.nix4
-rw-r--r--pkgs/development/python-modules/aws-lambda-builders/default.nix8
-rw-r--r--pkgs/development/python-modules/aws-sam-translator/default.nix4
-rw-r--r--pkgs/development/python-modules/aws-xray-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-core/default.nix11
-rw-r--r--pkgs/development/python-modules/azure-datalake-store/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-identity/default.nix11
-rw-r--r--pkgs/development/python-modules/azure-keyvault-certificates/default.nix6
-rw-r--r--pkgs/development/python-modules/azure-keyvault-keys/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-keyvault-secrets/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-authorization/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-cdn/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-compute/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-containerservice/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-core/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-datafactory/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-eventhub/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-keyvault/default.nix2
-rw-r--r--pkgs/development/python-modules/azure-mgmt-kusto/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-media/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-monitor/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-netapp/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-network/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-reservations/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-resource/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-security/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-sql/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-storage/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-subscription/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-synapse/default.nix32
-rw-r--r--pkgs/development/python-modules/azure-multiapi-storage/default.nix13
-rw-r--r--pkgs/development/python-modules/azure-storage-blob/default.nix9
-rw-r--r--pkgs/development/python-modules/azure-storage-file-share/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix31
-rw-r--r--pkgs/development/python-modules/azure-synapse-spark/default.nix31
-rw-r--r--pkgs/development/python-modules/backcall/default.nix4
-rw-r--r--pkgs/development/python-modules/backoff/default.nix26
-rw-r--r--pkgs/development/python-modules/base58/default.nix4
-rw-r--r--pkgs/development/python-modules/bash_kernel/default.nix7
-rw-r--r--pkgs/development/python-modules/batchgenerators/default.nix2
-rw-r--r--pkgs/development/python-modules/batchspawner/default.nix35
-rw-r--r--pkgs/development/python-modules/batinfo/default.nix2
-rw-r--r--pkgs/development/python-modules/bayesian-optimization/default.nix2
-rw-r--r--pkgs/development/python-modules/bcrypt/default.nix7
-rw-r--r--pkgs/development/python-modules/beancount/default.nix4
-rw-r--r--pkgs/development/python-modules/behave/default.nix36
-rw-r--r--pkgs/development/python-modules/bellows/default.nix37
-rw-r--r--pkgs/development/python-modules/bespon/default.nix6
-rw-r--r--pkgs/development/python-modules/bidict/default.nix4
-rw-r--r--pkgs/development/python-modules/bids-validator/default.nix9
-rw-r--r--pkgs/development/python-modules/binwalk/default.nix9
-rw-r--r--pkgs/development/python-modules/bip_utils/default.nix35
-rw-r--r--pkgs/development/python-modules/biplist/default.nix35
-rw-r--r--pkgs/development/python-modules/bitarray/default.nix4
-rw-r--r--pkgs/development/python-modules/black-macchiato/default.nix35
-rw-r--r--pkgs/development/python-modules/bleak/default.nix6
-rw-r--r--pkgs/development/python-modules/blis/default.nix10
-rw-r--r--pkgs/development/python-modules/blivet/default.nix9
-rw-r--r--pkgs/development/python-modules/block-io/default.nix4
-rw-r--r--pkgs/development/python-modules/bokeh/default.nix4
-rw-r--r--pkgs/development/python-modules/boltons/default.nix4
-rw-r--r--pkgs/development/python-modules/boltztrap2/default.nix4
-rw-r--r--pkgs/development/python-modules/boolean-py/default.nix4
-rw-r--r--pkgs/development/python-modules/booleanoperations/default.nix34
-rw-r--r--pkgs/development/python-modules/boto3/default.nix4
-rw-r--r--pkgs/development/python-modules/botocore/default.nix4
-rw-r--r--pkgs/development/python-modules/braintree/default.nix4
-rw-r--r--pkgs/development/python-modules/bravia-tv/default.nix4
-rw-r--r--pkgs/development/python-modules/breathe/default.nix4
-rw-r--r--pkgs/development/python-modules/broadlink/default.nix4
-rw-r--r--pkgs/development/python-modules/brother/default.nix36
-rw-r--r--pkgs/development/python-modules/brotlipy/default.nix2
-rw-r--r--pkgs/development/python-modules/bsdiff4/default.nix27
-rw-r--r--pkgs/development/python-modules/btchip/default.nix4
-rw-r--r--pkgs/development/python-modules/btrfs/default.nix22
-rw-r--r--pkgs/development/python-modules/bugsnag/default.nix4
-rw-r--r--pkgs/development/python-modules/build/default.nix2
-rw-r--r--pkgs/development/python-modules/buildbot/default.nix7
-rw-r--r--pkgs/development/python-modules/bumps/default.nix4
-rw-r--r--pkgs/development/python-modules/bytecode/default.nix29
-rw-r--r--pkgs/development/python-modules/cachelib/default.nix4
-rw-r--r--pkgs/development/python-modules/cachetools/default.nix4
-rw-r--r--pkgs/development/python-modules/caldav/default.nix2
-rw-r--r--pkgs/development/python-modules/caldavclientlibrary-asynk/default.nix35
-rw-r--r--pkgs/development/python-modules/canonicaljson/default.nix7
-rw-r--r--pkgs/development/python-modules/cassandra-driver/default.nix4
-rw-r--r--pkgs/development/python-modules/catalogue/default.nix10
-rw-r--r--pkgs/development/python-modules/cbor/default.nix2
-rw-r--r--pkgs/development/python-modules/cbor2/default.nix4
-rw-r--r--pkgs/development/python-modules/celery/default.nix8
-rw-r--r--pkgs/development/python-modules/certbot-dns-cloudflare/default.nix35
-rw-r--r--pkgs/development/python-modules/certbot-dns-rfc2136/default.nix35
-rw-r--r--pkgs/development/python-modules/certbot-dns-route53/default.nix35
-rw-r--r--pkgs/development/python-modules/certbot/default.nix (renamed from pkgs/tools/admin/certbot/default.nix)48
-rw-r--r--pkgs/development/python-modules/certifi/default.nix4
-rw-r--r--pkgs/development/python-modules/certipy/default.nix2
-rw-r--r--pkgs/development/python-modules/cffi/default.nix4
-rw-r--r--pkgs/development/python-modules/cfgv/default.nix4
-rw-r--r--pkgs/development/python-modules/cfn-lint/default.nix4
-rw-r--r--pkgs/development/python-modules/cftime/default.nix6
-rw-r--r--pkgs/development/python-modules/chalice/default.nix18
-rw-r--r--pkgs/development/python-modules/chameleon/default.nix4
-rw-r--r--pkgs/development/python-modules/channels-redis/default.nix2
-rw-r--r--pkgs/development/python-modules/chart-studio/default.nix4
-rw-r--r--pkgs/development/python-modules/check-manifest/default.nix12
-rw-r--r--pkgs/development/python-modules/cheetah3/default.nix20
-rw-r--r--pkgs/development/python-modules/cheroot/default.nix10
-rw-r--r--pkgs/development/python-modules/cherrypy/default.nix20
-rw-r--r--pkgs/development/python-modules/ci-info/default.nix26
-rw-r--r--pkgs/development/python-modules/ci-py/default.nix26
-rw-r--r--pkgs/development/python-modules/cirq/default.nix30
-rw-r--r--pkgs/development/python-modules/ckcc-protocol/default.nix4
-rw-r--r--pkgs/development/python-modules/cli-helpers/default.nix4
-rw-r--r--pkgs/development/python-modules/click-datetime/default.nix28
-rw-r--r--pkgs/development/python-modules/cliff/default.nix4
-rw-r--r--pkgs/development/python-modules/clifford/default.nix2
-rw-r--r--pkgs/development/python-modules/clikit/default.nix8
-rw-r--r--pkgs/development/python-modules/cloudflare/default.nix6
-rw-r--r--pkgs/development/python-modules/cloudpickle/default.nix4
-rw-r--r--pkgs/development/python-modules/cmd2/default.nix4
-rw-r--r--pkgs/development/python-modules/cnvkit/default.nix4
-rw-r--r--pkgs/development/python-modules/codecov/default.nix4
-rw-r--r--pkgs/development/python-modules/colander/default.nix4
-rw-r--r--pkgs/development/python-modules/coloredlogs/default.nix22
-rw-r--r--pkgs/development/python-modules/colorful/default.nix27
-rw-r--r--pkgs/development/python-modules/colorlog/default.nix4
-rw-r--r--pkgs/development/python-modules/configparser/4.nix2
-rw-r--r--pkgs/development/python-modules/confluent-kafka/default.nix4
-rw-r--r--pkgs/development/python-modules/construct/default.nix21
-rw-r--r--pkgs/development/python-modules/cookiecutter/default.nix2
-rw-r--r--pkgs/development/python-modules/cornice/default.nix4
-rw-r--r--pkgs/development/python-modules/cot/default.nix56
-rw-r--r--pkgs/development/python-modules/coverage/default.nix4
-rw-r--r--pkgs/development/python-modules/coveralls/default.nix4
-rw-r--r--pkgs/development/python-modules/cppy/default.nix2
-rw-r--r--pkgs/development/python-modules/crashtest/default.nix8
-rw-r--r--pkgs/development/python-modules/crayons/default.nix4
-rw-r--r--pkgs/development/python-modules/crc32c/default.nix4
-rw-r--r--pkgs/development/python-modules/credstash/default.nix10
-rw-r--r--pkgs/development/python-modules/croniter/default.nix4
-rw-r--r--pkgs/development/python-modules/cryptography/2.9.nix74
-rw-r--r--pkgs/development/python-modules/cryptography/default.nix4
-rw-r--r--pkgs/development/python-modules/cryptography/vectors-2.9.nix23
-rw-r--r--pkgs/development/python-modules/cryptography/vectors.nix2
-rw-r--r--pkgs/development/python-modules/cssselect2/default.nix15
-rw-r--r--pkgs/development/python-modules/csvs-to-sqlite/default.nix4
-rw-r--r--pkgs/development/python-modules/cucumber-tag-expressions/default.nix21
-rw-r--r--pkgs/development/python-modules/cupy/default.nix6
-rw-r--r--pkgs/development/python-modules/cvxpy/default.nix17
-rw-r--r--pkgs/development/python-modules/cx_freeze/default.nix4
-rw-r--r--pkgs/development/python-modules/cx_oracle/default.nix4
-rw-r--r--pkgs/development/python-modules/daphne/default.nix18
-rw-r--r--pkgs/development/python-modules/dash-core-components/default.nix4
-rw-r--r--pkgs/development/python-modules/dash-renderer/default.nix4
-rw-r--r--pkgs/development/python-modules/dash-table/default.nix4
-rw-r--r--pkgs/development/python-modules/dash/default.nix4
-rw-r--r--pkgs/development/python-modules/dask-gateway-server/default.nix49
-rw-r--r--pkgs/development/python-modules/dask-gateway/default.nix36
-rw-r--r--pkgs/development/python-modules/dask-image/default.nix24
-rw-r--r--pkgs/development/python-modules/dask-ml/default.nix4
-rw-r--r--pkgs/development/python-modules/dask-mpi/default.nix4
-rw-r--r--pkgs/development/python-modules/dask-xgboost/default.nix4
-rw-r--r--pkgs/development/python-modules/dask/default.nix10
-rw-r--r--pkgs/development/python-modules/databricks-connect/default.nix32
-rw-r--r--pkgs/development/python-modules/dataclasses-json/default.nix30
-rw-r--r--pkgs/development/python-modules/datadog/default.nix11
-rw-r--r--pkgs/development/python-modules/datasette/default.nix24
-rw-r--r--pkgs/development/python-modules/datashader/default.nix4
-rw-r--r--pkgs/development/python-modules/dateparser/default.nix4
-rw-r--r--pkgs/development/python-modules/dbf/default.nix4
-rw-r--r--pkgs/development/python-modules/dbus/default.nix4
-rw-r--r--pkgs/development/python-modules/debts/default.nix42
-rw-r--r--pkgs/development/python-modules/debugpy/default.nix68
-rw-r--r--pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch12
-rw-r--r--pkgs/development/python-modules/debugpy/hardcode-gdb.patch13
-rw-r--r--pkgs/development/python-modules/decorator/default.nix12
-rw-r--r--pkgs/development/python-modules/deepdiff/default.nix12
-rw-r--r--pkgs/development/python-modules/deepmerge/default.nix29
-rw-r--r--pkgs/development/python-modules/defcon/default.nix35
-rw-r--r--pkgs/development/python-modules/deform/default.nix4
-rw-r--r--pkgs/development/python-modules/denonavr/default.nix8
-rw-r--r--pkgs/development/python-modules/dependency-injector/default.nix4
-rw-r--r--pkgs/development/python-modules/detox/default.nix30
-rw-r--r--pkgs/development/python-modules/diff-match-patch/default.nix4
-rw-r--r--pkgs/development/python-modules/discordpy/default.nix4
-rw-r--r--pkgs/development/python-modules/distlib/default.nix4
-rw-r--r--pkgs/development/python-modules/distributed/default.nix4
-rw-r--r--pkgs/development/python-modules/django-auth-ldap/default.nix6
-rw-r--r--pkgs/development/python-modules/django-cleanup/default.nix4
-rw-r--r--pkgs/development/python-modules/django-cors-headers/default.nix4
-rw-r--r--pkgs/development/python-modules/django-dynamic-preferences/default.nix6
-rw-r--r--pkgs/development/python-modules/django-ipware/default.nix4
-rw-r--r--pkgs/development/python-modules/django-maintenance-mode/default.nix24
-rw-r--r--pkgs/development/python-modules/django-multiselectfield/default.nix2
-rw-r--r--pkgs/development/python-modules/django-q/default.nix4
-rw-r--r--pkgs/development/python-modules/django-widget-tweaks/default.nix25
-rw-r--r--pkgs/development/python-modules/django/1_11.nix34
-rw-r--r--pkgs/development/python-modules/django/2_2.nix4
-rw-r--r--pkgs/development/python-modules/django_evolution/default.nix4
-rw-r--r--pkgs/development/python-modules/django_guardian/default.nix4
-rw-r--r--pkgs/development/python-modules/django_nose/default.nix4
-rw-r--r--pkgs/development/python-modules/django_silk/default.nix8
-rw-r--r--pkgs/development/python-modules/djangoql/default.nix4
-rw-r--r--pkgs/development/python-modules/djangorestframework-simplejwt/default.nix8
-rw-r--r--pkgs/development/python-modules/djangorestframework/default.nix4
-rw-r--r--pkgs/development/python-modules/dkimpy/default.nix4
-rw-r--r--pkgs/development/python-modules/dlib/default.nix4
-rw-r--r--pkgs/development/python-modules/dnslib/default.nix4
-rw-r--r--pkgs/development/python-modules/dnspython/1.nix22
-rw-r--r--pkgs/development/python-modules/dnspython/default.nix7
-rw-r--r--pkgs/development/python-modules/docker/default.nix4
-rw-r--r--pkgs/development/python-modules/dockerfile-parse/default.nix4
-rw-r--r--pkgs/development/python-modules/dockerspawner/default.nix35
-rw-r--r--pkgs/development/python-modules/docplex/default.nix4
-rw-r--r--pkgs/development/python-modules/dogpile.cache/default.nix19
-rw-r--r--pkgs/development/python-modules/dogtail/default.nix6
-rw-r--r--pkgs/development/python-modules/dominate/default.nix4
-rw-r--r--pkgs/development/python-modules/dpkt/default.nix4
-rw-r--r--pkgs/development/python-modules/dropbox/default.nix4
-rw-r--r--pkgs/development/python-modules/dulwich/default.nix4
-rw-r--r--pkgs/development/python-modules/ecdsa/default.nix1
-rw-r--r--pkgs/development/python-modules/elasticsearch/default.nix4
-rw-r--r--pkgs/development/python-modules/elementpath/default.nix4
-rw-r--r--pkgs/development/python-modules/eliot/default.nix56
-rw-r--r--pkgs/development/python-modules/emoji/default.nix4
-rw-r--r--pkgs/development/python-modules/enaml/default.nix58
-rw-r--r--pkgs/development/python-modules/enamlx/default.nix43
-rw-r--r--pkgs/development/python-modules/entrance/default.nix4
-rw-r--r--pkgs/development/python-modules/etelemetry/default.nix6
-rw-r--r--pkgs/development/python-modules/etesync/default.nix4
-rw-r--r--pkgs/development/python-modules/eve/default.nix4
-rw-r--r--pkgs/development/python-modules/eventlet/default.nix16
-rw-r--r--pkgs/development/python-modules/exchangelib/default.nix23
-rw-r--r--pkgs/development/python-modules/executing/default.nix20
-rw-r--r--pkgs/development/python-modules/executor/default.nix3
-rw-r--r--pkgs/development/python-modules/exifread/default.nix4
-rw-r--r--pkgs/development/python-modules/factory_boy/default.nix4
-rw-r--r--pkgs/development/python-modules/faker/default.nix4
-rw-r--r--pkgs/development/python-modules/finalfusion/default.nix56
-rw-r--r--pkgs/development/python-modules/fixtures/default.nix2
-rw-r--r--pkgs/development/python-modules/flake8/default.nix3
-rw-r--r--pkgs/development/python-modules/flaky/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-assets/default.nix2
-rw-r--r--pkgs/development/python-modules/flask-httpauth/default.nix2
-rw-r--r--pkgs/development/python-modules/flask-marshmallow/default.nix6
-rw-r--r--pkgs/development/python-modules/flask-restx/default.nix50
-rw-r--r--pkgs/development/python-modules/flask-socketio/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-sqlalchemy/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-testing/default.nix20
-rw-r--r--pkgs/development/python-modules/flit/default.nix4
-rw-r--r--pkgs/development/python-modules/flower/default.nix19
-rw-r--r--pkgs/development/python-modules/fluent-logger/default.nix2
-rw-r--r--pkgs/development/python-modules/flufl/bounce.nix4
-rw-r--r--pkgs/development/python-modules/fontmath/default.nix25
-rw-r--r--pkgs/development/python-modules/fontparts/default.nix39
-rw-r--r--pkgs/development/python-modules/fontpens/default.nix38
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix62
-rw-r--r--pkgs/development/python-modules/foxdot/default.nix4
-rw-r--r--pkgs/development/python-modules/fpdf/default.nix2
-rw-r--r--pkgs/development/python-modules/freetype-py/default.nix31
-rw-r--r--pkgs/development/python-modules/freetype-py/library-paths.patch37
-rw-r--r--pkgs/development/python-modules/ftfy/default.nix9
-rw-r--r--pkgs/development/python-modules/ftputil/default.nix9
-rw-r--r--pkgs/development/python-modules/fuse-python/default.nix3
-rw-r--r--pkgs/development/python-modules/fx2/default.nix8
-rw-r--r--pkgs/development/python-modules/gast/default.nix4
-rw-r--r--pkgs/development/python-modules/gdown/default.nix4
-rw-r--r--pkgs/development/python-modules/geoalchemy2/default.nix4
-rw-r--r--pkgs/development/python-modules/geoip2/default.nix17
-rw-r--r--pkgs/development/python-modules/geojson/default.nix2
-rw-r--r--pkgs/development/python-modules/geopandas/default.nix4
-rw-r--r--pkgs/development/python-modules/geventhttpclient/default.nix4
-rw-r--r--pkgs/development/python-modules/glasgow/default.nix6
-rw-r--r--pkgs/development/python-modules/globre/default.nix28
-rw-r--r--pkgs/development/python-modules/globus-sdk/default.nix10
-rw-r--r--pkgs/development/python-modules/glom/default.nix4
-rw-r--r--pkgs/development/python-modules/google-api-python-client/default.nix4
-rw-r--r--pkgs/development/python-modules/google-auth-httplib2/default.nix4
-rw-r--r--pkgs/development/python-modules/google_api_core/default.nix4
-rw-r--r--pkgs/development/python-modules/google_auth/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_asset/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_automl/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_bigquery/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_bigtable/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_container/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_core/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_dataproc/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_datastore/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_dlp/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_firestore/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_kms/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_logging/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_pubsub/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_securitycenter/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_spanner/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_storage/default.nix19
-rw-r--r--pkgs/development/python-modules/google_cloud_texttospeech/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_trace/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_translate/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_videointelligence/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix4
-rw-r--r--pkgs/development/python-modules/google_resumable_media/default.nix4
-rw-r--r--pkgs/development/python-modules/gpxpy/default.nix7
-rw-r--r--pkgs/development/python-modules/graphql-core/default.nix4
-rw-r--r--pkgs/development/python-modules/graphql-server-core/default.nix16
-rw-r--r--pkgs/development/python-modules/graphviz/default.nix10
-rw-r--r--pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch73
-rw-r--r--pkgs/development/python-modules/green/default.nix4
-rw-r--r--pkgs/development/python-modules/grpcio-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/gspread/default.nix4
-rw-r--r--pkgs/development/python-modules/gtimelog/default.nix61
-rw-r--r--pkgs/development/python-modules/gyp/default.nix11
-rw-r--r--pkgs/development/python-modules/gyp/no-xcode.patch23
-rw-r--r--pkgs/development/python-modules/h3/default.nix4
-rw-r--r--pkgs/development/python-modules/h5netcdf/default.nix8
-rw-r--r--pkgs/development/python-modules/hass-nabucasa/default.nix1
-rw-r--r--pkgs/development/python-modules/hcloud/default.nix6
-rw-r--r--pkgs/development/python-modules/hdlparse/default.nix22
-rw-r--r--pkgs/development/python-modules/helpdev/default.nix2
-rw-r--r--pkgs/development/python-modules/hg-evolve/default.nix4
-rw-r--r--pkgs/development/python-modules/hglib/default.nix3
-rw-r--r--pkgs/development/python-modules/hickle/default.nix4
-rw-r--r--pkgs/development/python-modules/hidapi/default.nix4
-rw-r--r--pkgs/development/python-modules/hieroglyph/default.nix7
-rw-r--r--pkgs/development/python-modules/hiredis/default.nix4
-rw-r--r--pkgs/development/python-modules/holidays/default.nix4
-rw-r--r--pkgs/development/python-modules/holoviews/default.nix4
-rw-r--r--pkgs/development/python-modules/howdoi/default.nix18
-rw-r--r--pkgs/development/python-modules/html5lib/default.nix4
-rw-r--r--pkgs/development/python-modules/httpcore/default.nix34
-rw-r--r--pkgs/development/python-modules/httpx/default.nix24
-rw-r--r--pkgs/development/python-modules/humanize/default.nix4
-rw-r--r--pkgs/development/python-modules/hvac/default.nix4
-rw-r--r--pkgs/development/python-modules/hwi/default.nix51
-rw-r--r--pkgs/development/python-modules/hwi/relax-deps.patch16
-rw-r--r--pkgs/development/python-modules/hyperlink/default.nix11
-rw-r--r--pkgs/development/python-modules/hypothesis-auto/default.nix36
-rw-r--r--pkgs/development/python-modules/hypothesis/default.nix4
-rw-r--r--pkgs/development/python-modules/i3ipc/default.nix4
-rw-r--r--pkgs/development/python-modules/iapws/default.nix4
-rw-r--r--pkgs/development/python-modules/icecream/default.nix22
-rw-r--r--pkgs/development/python-modules/ics/default.nix7
-rw-r--r--pkgs/development/python-modules/identify/default.nix4
-rw-r--r--pkgs/development/python-modules/idna/default.nix6
-rw-r--r--pkgs/development/python-modules/ifaddr/default.nix4
-rw-r--r--pkgs/development/python-modules/ihatemoney/default.nix54
-rw-r--r--pkgs/development/python-modules/ijson/default.nix4
-rw-r--r--pkgs/development/python-modules/imagecorruptions/default.nix2
-rw-r--r--pkgs/development/python-modules/imageio/default.nix4
-rw-r--r--pkgs/development/python-modules/imbalanced-learn/default.nix4
-rw-r--r--pkgs/development/python-modules/img2pdf/default.nix (renamed from pkgs/applications/misc/img2pdf/default.nix)14
-rw-r--r--pkgs/development/python-modules/importlib-metadata/default.nix4
-rw-r--r--pkgs/development/python-modules/importlib-resources/default.nix4
-rw-r--r--pkgs/development/python-modules/inflection/default.nix4
-rw-r--r--pkgs/development/python-modules/influxdb-client/default.nix53
-rw-r--r--pkgs/development/python-modules/iniconfig/default.nix21
-rw-r--r--pkgs/development/python-modules/inquirer/default.nix4
-rw-r--r--pkgs/development/python-modules/intervaltree/default.nix4
-rw-r--r--pkgs/development/python-modules/ipdb/default.nix4
-rw-r--r--pkgs/development/python-modules/ipykernel/default.nix4
-rw-r--r--pkgs/development/python-modules/ipympl/default.nix4
-rw-r--r--pkgs/development/python-modules/ipython/7.9.nix69
-rw-r--r--pkgs/development/python-modules/ipython/default.nix4
-rw-r--r--pkgs/development/python-modules/ipyvue/default.nix4
-rw-r--r--pkgs/development/python-modules/ipyvuetify/default.nix4
-rw-r--r--pkgs/development/python-modules/irc/default.nix4
-rw-r--r--pkgs/development/python-modules/islpy/default.nix4
-rw-r--r--pkgs/development/python-modules/itemadapter/default.nix24
-rw-r--r--pkgs/development/python-modules/itemloaders/default.nix36
-rw-r--r--pkgs/development/python-modules/iterm2/default.nix4
-rw-r--r--pkgs/development/python-modules/javaobj-py3/default.nix2
-rw-r--r--pkgs/development/python-modules/jc/default.nix4
-rw-r--r--pkgs/development/python-modules/jdcal/default.nix2
-rw-r--r--pkgs/development/python-modules/jedi/default.nix10
-rw-r--r--pkgs/development/python-modules/jellyfin-apiclient-python/default.nix4
-rw-r--r--pkgs/development/python-modules/jenkins-job-builder/default.nix4
-rw-r--r--pkgs/development/python-modules/jinja2/default.nix6
-rw-r--r--pkgs/development/python-modules/joblib/default.nix4
-rw-r--r--pkgs/development/python-modules/josepy/default.nix4
-rw-r--r--pkgs/development/python-modules/jq/default.nix6
-rw-r--r--pkgs/development/python-modules/jsbeautifier/default.nix4
-rw-r--r--pkgs/development/python-modules/jsonpatch/default.nix4
-rw-r--r--pkgs/development/python-modules/jug/default.nix4
-rw-r--r--pkgs/development/python-modules/junit-xml/default.nix9
-rw-r--r--pkgs/development/python-modules/junos-eznc/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyter-c-kernel/default.nix34
-rw-r--r--pkgs/development/python-modules/jupyter-sphinx/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyter-telemetry/default.nix32
-rw-r--r--pkgs/development/python-modules/jupyter_client/5.nix4
-rw-r--r--pkgs/development/python-modules/jupyter_client/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix6
-rw-r--r--pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix37
-rw-r--r--pkgs/development/python-modules/jupyterhub-tmpauthenticator/default.nix31
-rw-r--r--pkgs/development/python-modules/jupyterhub/default.nix6
-rw-r--r--pkgs/development/python-modules/jupyterlab-git/default.nix37
-rw-r--r--pkgs/development/python-modules/jupyterlab/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterlab_server/default.nix4
-rw-r--r--pkgs/development/python-modules/jupytext/default.nix4
-rw-r--r--pkgs/development/python-modules/jwcrypto/default.nix4
-rw-r--r--pkgs/development/python-modules/kaggle/default.nix53
-rw-r--r--pkgs/development/python-modules/kazoo/default.nix4
-rw-r--r--pkgs/development/python-modules/keep/default.nix36
-rw-r--r--pkgs/development/python-modules/keras/default.nix4
-rw-r--r--pkgs/development/python-modules/keyring/default.nix4
-rw-r--r--pkgs/development/python-modules/kinparse/default.nix38
-rw-r--r--pkgs/development/python-modules/kiwisolver/default.nix4
-rw-r--r--pkgs/development/python-modules/knack/default.nix4
-rw-r--r--pkgs/development/python-modules/kombu/default.nix4
-rw-r--r--pkgs/development/python-modules/kubernetes/default.nix2
-rw-r--r--pkgs/development/python-modules/labelbox/default.nix6
-rw-r--r--pkgs/development/python-modules/latexcodec/default.nix4
-rw-r--r--pkgs/development/python-modules/lazr-uri/default.nix4
-rw-r--r--pkgs/development/python-modules/lazy-object-proxy/default.nix4
-rw-r--r--pkgs/development/python-modules/lazy/default.nix2
-rw-r--r--pkgs/development/python-modules/ldap/default.nix4
-rw-r--r--pkgs/development/python-modules/ldap3/default.nix4
-rw-r--r--pkgs/development/python-modules/libarcus/default.nix4
-rw-r--r--pkgs/development/python-modules/libcloud/2.nix4
-rw-r--r--pkgs/development/python-modules/libcloud/default.nix4
-rw-r--r--pkgs/development/python-modules/libevdev/default.nix22
-rw-r--r--pkgs/development/python-modules/libevdev/fix-paths.patch22
-rw-r--r--pkgs/development/python-modules/liblarch/default.nix48
-rw-r--r--pkgs/development/python-modules/librosa/default.nix13
-rw-r--r--pkgs/development/python-modules/libsavitar/default.nix4
-rw-r--r--pkgs/development/python-modules/libtmux/default.nix4
-rw-r--r--pkgs/development/python-modules/libversion/default.nix4
-rw-r--r--pkgs/development/python-modules/libvirt/default.nix4
-rw-r--r--pkgs/development/python-modules/lightparam/default.nix4
-rw-r--r--pkgs/development/python-modules/limnoria/default.nix4
-rw-r--r--pkgs/development/python-modules/llvmlite/default.nix4
-rw-r--r--pkgs/development/python-modules/lmdb/default.nix4
-rw-r--r--pkgs/development/python-modules/lml/default.nix30
-rw-r--r--pkgs/development/python-modules/lmtpd/default.nix4
-rw-r--r--pkgs/development/python-modules/logfury/default.nix2
-rw-r--r--pkgs/development/python-modules/loguru/default.nix8
-rw-r--r--pkgs/development/python-modules/ludios_wpull/default.nix8
-rw-r--r--pkgs/development/python-modules/lxml/default.nix8
-rw-r--r--pkgs/development/python-modules/m2crypto/default.nix4
-rw-r--r--pkgs/development/python-modules/mac_alias/default.nix31
-rw-r--r--pkgs/development/python-modules/mahotas/default.nix4
-rw-r--r--pkgs/development/python-modules/maildir-deduplicate/default.nix27
-rw-r--r--pkgs/development/python-modules/mapsplotlib/default.nix4
-rw-r--r--pkgs/development/python-modules/marionette-harness/default.nix4
-rw-r--r--pkgs/development/python-modules/marionette-harness/marionette_driver.nix2
-rw-r--r--pkgs/development/python-modules/marionette-harness/mozhttpd.nix6
-rw-r--r--pkgs/development/python-modules/marionette-harness/moznetwork.nix2
-rw-r--r--pkgs/development/python-modules/markdown/3_1.nix4
-rw-r--r--pkgs/development/python-modules/markdown/default.nix4
-rw-r--r--pkgs/development/python-modules/marshmallow-polyfield/default.nix2
-rw-r--r--pkgs/development/python-modules/marshmallow/default.nix4
-rw-r--r--pkgs/development/python-modules/mask-rcnn/default.nix3
-rw-r--r--pkgs/development/python-modules/mathics/default.nix50
-rw-r--r--pkgs/development/python-modules/mathlibtools/default.nix26
-rw-r--r--pkgs/development/python-modules/matplotlib/default.nix7
-rw-r--r--pkgs/development/python-modules/matplotlib/setup.cfg3
-rw-r--r--pkgs/development/python-modules/matrix-nio/default.nix4
-rw-r--r--pkgs/development/python-modules/mautrix/default.nix4
-rw-r--r--pkgs/development/python-modules/maxminddb/default.nix14
-rw-r--r--pkgs/development/python-modules/mecab-python3/default.nix4
-rw-r--r--pkgs/development/python-modules/mergedeep/default.nix26
-rw-r--r--pkgs/development/python-modules/minio/default.nix4
-rw-r--r--pkgs/development/python-modules/mlflow/default.nix6
-rw-r--r--pkgs/development/python-modules/mmh3/default.nix23
-rw-r--r--pkgs/development/python-modules/mock/2.nix2
-rw-r--r--pkgs/development/python-modules/mocket/default.nix43
-rw-r--r--pkgs/development/python-modules/more-itertools/default.nix4
-rw-r--r--pkgs/development/python-modules/morphys/default.nix2
-rw-r--r--pkgs/development/python-modules/mox3/default.nix2
-rw-r--r--pkgs/development/python-modules/mpv/default.nix4
-rw-r--r--pkgs/development/python-modules/msal/default.nix4
-rw-r--r--pkgs/development/python-modules/msgpack-numpy/default.nix4
-rw-r--r--pkgs/development/python-modules/msrest/default.nix4
-rw-r--r--pkgs/development/python-modules/msrestazure/default.nix4
-rw-r--r--pkgs/development/python-modules/mt-940/default.nix8
-rw-r--r--pkgs/development/python-modules/multitasking/default.nix25
-rw-r--r--pkgs/development/python-modules/mutagen/1.43.nix4
-rw-r--r--pkgs/development/python-modules/mutagen/default.nix7
-rw-r--r--pkgs/development/python-modules/mutatormath/default.nix25
-rw-r--r--pkgs/development/python-modules/mwclient/default.nix4
-rw-r--r--pkgs/development/python-modules/mwoauth/default.nix2
-rw-r--r--pkgs/development/python-modules/myfitnesspal/default.nix4
-rw-r--r--pkgs/development/python-modules/mypy-protobuf/default.nix4
-rw-r--r--pkgs/development/python-modules/mypy/default.nix4
-rw-r--r--pkgs/development/python-modules/mysql-connector/default.nix4
-rw-r--r--pkgs/development/python-modules/mysqlclient/default.nix4
-rw-r--r--pkgs/development/python-modules/nassl/default.nix4
-rw-r--r--pkgs/development/python-modules/nbclient/default.nix4
-rw-r--r--pkgs/development/python-modules/nbconflux/default.nix10
-rw-r--r--pkgs/development/python-modules/nbformat/default.nix4
-rw-r--r--pkgs/development/python-modules/nbsphinx/default.nix4
-rw-r--r--pkgs/development/python-modules/nbval/default.nix4
-rw-r--r--pkgs/development/python-modules/nbxmpp/default.nix16
-rw-r--r--pkgs/development/python-modules/ncclient/default.nix4
-rw-r--r--pkgs/development/python-modules/nest-asyncio/default.nix4
-rw-r--r--pkgs/development/python-modules/netcdf4/default.nix4
-rw-r--r--pkgs/development/python-modules/netdisco/default.nix4
-rw-r--r--pkgs/development/python-modules/nibabel/default.nix11
-rw-r--r--pkgs/development/python-modules/nipype/default.nix4
-rw-r--r--pkgs/development/python-modules/nix-kernel/default.nix45
-rw-r--r--pkgs/development/python-modules/nix-prefetch-github/default.nix11
-rw-r--r--pkgs/development/python-modules/nmigen/default.nix8
-rw-r--r--pkgs/development/python-modules/nodeenv/default.nix4
-rw-r--r--pkgs/development/python-modules/notebook/2.nix4
-rw-r--r--pkgs/development/python-modules/notebook/default.nix32
-rw-r--r--pkgs/development/python-modules/notify2/default.nix2
-rw-r--r--pkgs/development/python-modules/nplusone/default.nix49
-rw-r--r--pkgs/development/python-modules/ntlm-auth/default.nix4
-rw-r--r--pkgs/development/python-modules/nuitka/default.nix4
-rw-r--r--pkgs/development/python-modules/numba/default.nix4
-rw-r--r--pkgs/development/python-modules/numcodecs/default.nix18
-rw-r--r--pkgs/development/python-modules/numexpr/default.nix13
-rw-r--r--pkgs/development/python-modules/numpy/1.16.nix97
-rw-r--r--pkgs/development/python-modules/numpy/default.nix10
-rw-r--r--pkgs/development/python-modules/numpy/numpy-distutils-C++.patch9
-rw-r--r--pkgs/development/python-modules/numpy/numpy-distutils-C++_1.16.patch30
-rw-r--r--pkgs/development/python-modules/numpydoc/default.nix7
-rw-r--r--pkgs/development/python-modules/nunavut/default.nix37
-rw-r--r--pkgs/development/python-modules/nvchecker/default.nix17
-rw-r--r--pkgs/development/python-modules/oauthenticator/default.nix4
-rw-r--r--pkgs/development/python-modules/openapi-spec-validator/default.nix4
-rw-r--r--pkgs/development/python-modules/openpyxl/default.nix4
-rw-r--r--pkgs/development/python-modules/openrazer/common.nix4
-rw-r--r--pkgs/development/python-modules/opentracing/default.nix2
-rw-r--r--pkgs/development/python-modules/openwebifpy/default.nix32
-rw-r--r--pkgs/development/python-modules/openwrt-luci-rpc/default.nix6
-rw-r--r--pkgs/development/python-modules/opt-einsum/default.nix4
-rw-r--r--pkgs/development/python-modules/ordered-set/default.nix4
-rw-r--r--pkgs/development/python-modules/osc/default.nix10
-rw-r--r--pkgs/development/python-modules/osqp/default.nix5
-rw-r--r--pkgs/development/python-modules/ovito/default.nix1
-rw-r--r--pkgs/development/python-modules/packet-python/default.nix4
-rw-r--r--pkgs/development/python-modules/palettable/default.nix5
-rw-r--r--pkgs/development/python-modules/pamqp/default.nix4
-rw-r--r--pkgs/development/python-modules/pandas/default.nix16
-rw-r--r--pkgs/development/python-modules/panel/default.nix4
-rw-r--r--pkgs/development/python-modules/papermill/default.nix4
-rw-r--r--pkgs/development/python-modules/paramiko/default.nix10
-rw-r--r--pkgs/development/python-modules/parfive/default.nix4
-rw-r--r--pkgs/development/python-modules/parse/default.nix4
-rw-r--r--pkgs/development/python-modules/parsedatetime/default.nix2
-rw-r--r--pkgs/development/python-modules/parso/default.nix4
-rw-r--r--pkgs/development/python-modules/paste/default.nix4
-rw-r--r--pkgs/development/python-modules/patator/default.nix4
-rw-r--r--pkgs/development/python-modules/pathspec/default.nix2
-rw-r--r--pkgs/development/python-modules/pc-ble-driver-py/default.nix40
-rw-r--r--pkgs/development/python-modules/pcpp/default.nix2
-rw-r--r--pkgs/development/python-modules/pdfminer_six/default.nix8
-rw-r--r--pkgs/development/python-modules/pdftotext/default.nix4
-rw-r--r--pkgs/development/python-modules/pelican/default.nix27
-rw-r--r--pkgs/development/python-modules/pendulum/default.nix22
-rw-r--r--pkgs/development/python-modules/pep517/default.nix2
-rw-r--r--pkgs/development/python-modules/pep8-naming/default.nix4
-rw-r--r--pkgs/development/python-modules/persim/default.nix4
-rw-r--r--pkgs/development/python-modules/pex/default.nix4
-rw-r--r--pkgs/development/python-modules/pg8000/default.nix4
-rw-r--r--pkgs/development/python-modules/pglast/default.nix4
-rw-r--r--pkgs/development/python-modules/phik/default.nix2
-rw-r--r--pkgs/development/python-modules/phonenumbers/default.nix4
-rw-r--r--pkgs/development/python-modules/phonopy/default.nix22
-rw-r--r--pkgs/development/python-modules/picos/default.nix4
-rw-r--r--pkgs/development/python-modules/pid/default.nix4
-rw-r--r--pkgs/development/python-modules/pikepdf/default.nix4
-rw-r--r--pkgs/development/python-modules/pillow/6.nix2
-rw-r--r--pkgs/development/python-modules/pillow/default.nix4
-rw-r--r--pkgs/development/python-modules/pims/default.nix4
-rw-r--r--pkgs/development/python-modules/pint/default.nix15
-rw-r--r--pkgs/development/python-modules/pip-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/pip/default.nix4
-rw-r--r--pkgs/development/python-modules/pip/reproducible.patch13
-rw-r--r--pkgs/development/python-modules/pip2nix/default.nix40
-rw-r--r--pkgs/development/python-modules/pipdate/default.nix12
-rw-r--r--pkgs/development/python-modules/pipx/default.nix52
-rw-r--r--pkgs/development/python-modules/pkutils/default.nix41
-rw-r--r--pkgs/development/python-modules/plaid-python/default.nix6
-rw-r--r--pkgs/development/python-modules/plone-testing/default.nix4
-rw-r--r--pkgs/development/python-modules/plotly/default.nix4
-rw-r--r--pkgs/development/python-modules/plumbum/default.nix2
-rw-r--r--pkgs/development/python-modules/poetry-core/default.nix63
-rw-r--r--pkgs/development/python-modules/poetry/default.nix10
-rw-r--r--pkgs/development/python-modules/pooch/default.nix46
-rw-r--r--pkgs/development/python-modules/powerline/default.nix48
-rw-r--r--pkgs/development/python-modules/pq/default.nix41
-rw-r--r--pkgs/development/python-modules/prance/default.nix4
-rw-r--r--pkgs/development/python-modules/praw/default.nix4
-rw-r--r--pkgs/development/python-modules/prawcore/default.nix7
-rw-r--r--pkgs/development/python-modules/pre-commit/default.nix4
-rw-r--r--pkgs/development/python-modules/preshed/default.nix2
-rw-r--r--pkgs/development/python-modules/process-tests/default.nix4
-rw-r--r--pkgs/development/python-modules/prompt_toolkit/default.nix4
-rw-r--r--pkgs/development/python-modules/property-manager/default.nix4
-rw-r--r--pkgs/development/python-modules/psautohint/default.nix40
-rw-r--r--pkgs/development/python-modules/psd-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/psutil/default.nix11
-rw-r--r--pkgs/development/python-modules/ptpython/default.nix11
-rw-r--r--pkgs/development/python-modules/pulp/default.nix4
-rw-r--r--pkgs/development/python-modules/pure-eval/default.nix27
-rw-r--r--pkgs/development/python-modules/pure-pcapy3/default.nix18
-rw-r--r--pkgs/development/python-modules/pvlib/default.nix40
-rw-r--r--pkgs/development/python-modules/pwntools/default.nix66
-rw-r--r--pkgs/development/python-modules/pxml/default.nix37
-rw-r--r--pkgs/development/python-modules/py-multibase/default.nix2
-rw-r--r--pkgs/development/python-modules/py-multihash/default.nix2
-rw-r--r--pkgs/development/python-modules/py-vapid/default.nix4
-rw-r--r--pkgs/development/python-modules/py/default.nix4
-rw-r--r--pkgs/development/python-modules/pyTelegramBotAPI/default.nix4
-rw-r--r--pkgs/development/python-modules/py_stringmatching/default.nix2
-rw-r--r--pkgs/development/python-modules/pyatmo/default.nix4
-rw-r--r--pkgs/development/python-modules/pyatv/default.nix4
-rw-r--r--pkgs/development/python-modules/pybfd/default.nix29
-rw-r--r--pkgs/development/python-modules/pybids/default.nix4
-rw-r--r--pkgs/development/python-modules/pybind11/0001-Find-include-directory.patch53
-rw-r--r--pkgs/development/python-modules/pybind11/default.nix18
-rw-r--r--pkgs/development/python-modules/pybullet/default.nix4
-rw-r--r--pkgs/development/python-modules/pychromecast/default.nix4
-rw-r--r--pkgs/development/python-modules/pyclipper/default.nix4
-rw-r--r--pkgs/development/python-modules/pycoin/default.nix4
-rw-r--r--pkgs/development/python-modules/pycountry/default.nix4
-rw-r--r--pkgs/development/python-modules/pycryptodome/default.nix4
-rw-r--r--pkgs/development/python-modules/pycryptodomex/default.nix4
-rw-r--r--pkgs/development/python-modules/pydicom/default.nix6
-rw-r--r--pkgs/development/python-modules/pydocstyle/default.nix4
-rw-r--r--pkgs/development/python-modules/pydsdl/default.nix37
-rw-r--r--pkgs/development/python-modules/pydub/default.nix4
-rw-r--r--pkgs/development/python-modules/pyexcel-io/default.nix31
-rw-r--r--pkgs/development/python-modules/pyexcel-ods/default.nix41
-rw-r--r--pkgs/development/python-modules/pyexcel-xls/default.nix41
-rw-r--r--pkgs/development/python-modules/pyexcel/default.nix45
-rw-r--r--pkgs/development/python-modules/pyface/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfaidx/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfakefs/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfritzhome/default.nix34
-rw-r--r--pkgs/development/python-modules/pyfxa/default.nix11
-rw-r--r--pkgs/development/python-modules/pygls/default.nix4
-rw-r--r--pkgs/development/python-modules/pygobject/3.nix4
-rw-r--r--pkgs/development/python-modules/pygogo/default.nix36
-rw-r--r--pkgs/development/python-modules/pygraphviz/default.nix4
-rw-r--r--pkgs/development/python-modules/pygrok/default.nix28
-rw-r--r--pkgs/development/python-modules/pyhomematic/default.nix4
-rw-r--r--pkgs/development/python-modules/pyhs100/default.nix38
-rw-r--r--pkgs/development/python-modules/pyipp/default.nix40
-rw-r--r--pkgs/development/python-modules/pykeepass/default.nix12
-rw-r--r--pkgs/development/python-modules/pykwalify/default.nix53
-rw-r--r--pkgs/development/python-modules/pylast/default.nix4
-rw-r--r--pkgs/development/python-modules/pylatexenc/default.nix6
-rw-r--r--pkgs/development/python-modules/pylibftdi/default.nix4
-rw-r--r--pkgs/development/python-modules/pylint-django/default.nix19
-rw-r--r--pkgs/development/python-modules/pylint/default.nix8
-rw-r--r--pkgs/development/python-modules/pyls-black/default.nix7
-rw-r--r--pkgs/development/python-modules/pymatgen/default.nix4
-rw-r--r--pkgs/development/python-modules/pymavlink/default.nix4
-rw-r--r--pkgs/development/python-modules/pymc3/default.nix4
-rw-r--r--pkgs/development/python-modules/pymongo/default.nix4
-rw-r--r--pkgs/development/python-modules/pymupdf/default.nix4
-rw-r--r--pkgs/development/python-modules/pymysql/default.nix4
-rw-r--r--pkgs/development/python-modules/pymystem3/default.nix2
-rw-r--r--pkgs/development/python-modules/pynamodb/default.nix4
-rw-r--r--pkgs/development/python-modules/pynmea2/default.nix2
-rw-r--r--pkgs/development/python-modules/pyobjc/default.nix4
-rw-r--r--pkgs/development/python-modules/pyopencl/default.nix4
-rw-r--r--pkgs/development/python-modules/pyotp/default.nix4
-rw-r--r--pkgs/development/python-modules/pypcap/default.nix2
-rw-r--r--pkgs/development/python-modules/pyphotonfile/default.nix29
-rw-r--r--pkgs/development/python-modules/pypubsub/default.nix38
-rw-r--r--pkgs/development/python-modules/pyqtgraph/default.nix4
-rw-r--r--pkgs/development/python-modules/pyqtwebengine/default.nix9
-rw-r--r--pkgs/development/python-modules/pyqtwebengine/fix-build-with-qt-514.patch31
-rw-r--r--pkgs/development/python-modules/pyro-ppl/default.nix4
-rw-r--r--pkgs/development/python-modules/pyro5/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2/default.nix4
-rw-r--r--pkgs/development/python-modules/pyscard/default.nix17
-rw-r--r--pkgs/development/python-modules/pyscard/ignore-macos-bug.patch22
-rw-r--r--pkgs/development/python-modules/pysdl2/default.nix4
-rw-r--r--pkgs/development/python-modules/pyside2-tools/default.nix15
-rw-r--r--pkgs/development/python-modules/pyside2-tools/remove_hacky_binary_copying.patch50
-rw-r--r--pkgs/development/python-modules/pyside2/default.nix6
-rw-r--r--pkgs/development/python-modules/pyside2/dont_ignore_optional_modules.patch6
-rw-r--r--pkgs/development/python-modules/pysingleton/default.nix26
-rw-r--r--pkgs/development/python-modules/pysnow/default.nix13
-rw-r--r--pkgs/development/python-modules/pysonos/default.nix4
-rw-r--r--pkgs/development/python-modules/pyspark/default.nix4
-rw-r--r--pkgs/development/python-modules/pyspinel/default.nix27
-rw-r--r--pkgs/development/python-modules/pysqueezebox/default.nix27
-rw-r--r--pkgs/development/python-modules/pystemmer/default.nix4
-rw-r--r--pkgs/development/python-modules/pystray/default.nix4
-rw-r--r--pkgs/development/python-modules/pytesseract/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-asyncio/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-bdd/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-black/default.nix6
-rw-r--r--pkgs/development/python-modules/pytest-cov/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-doctestplus/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-flakes/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-forked/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-freezegun/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-isort/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-localserver/default.nix15
-rw-r--r--pkgs/development/python-modules/pytest-metadata/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-mock/default.nix7
-rw-r--r--pkgs/development/python-modules/pytest-pythonpath/default.nix26
-rw-r--r--pkgs/development/python-modules/pytest-quickcheck/default.nix1
-rw-r--r--pkgs/development/python-modules/pytest-randomly/default.nix31
-rw-r--r--pkgs/development/python-modules/pytest-services/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-sugar/default.nix9
-rw-r--r--pkgs/development/python-modules/pytest-testmon/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-tornado/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-tornasync/default.nix38
-rw-r--r--pkgs/development/python-modules/pytest-trio/default.nix43
-rw-r--r--pkgs/development/python-modules/pytest-xdist/2.nix31
-rw-r--r--pkgs/development/python-modules/pytest-xdist/default.nix8
-rw-r--r--pkgs/development/python-modules/pytest/4.nix4
-rw-r--r--pkgs/development/python-modules/pytest/5.nix80
-rw-r--r--pkgs/development/python-modules/pytest/default.nix31
-rw-r--r--pkgs/development/python-modules/python-didl-lite/default.nix35
-rw-r--r--pkgs/development/python-modules/python-dotenv/default.nix4
-rw-r--r--pkgs/development/python-modules/python-gitlab/default.nix4
-rw-r--r--pkgs/development/python-modules/python-igraph/default.nix1
-rw-r--r--pkgs/development/python-modules/python-jsonrpc-server/default.nix2
-rw-r--r--pkgs/development/python-modules/python-libarchive/default.nix27
-rw-r--r--pkgs/development/python-modules/python-markdown-math/default.nix4
-rw-r--r--pkgs/development/python-modules/python-miio/default.nix4
-rw-r--r--pkgs/development/python-modules/python-mpv-jsonipc/default.nix4
-rw-r--r--pkgs/development/python-modules/python-packer/default.nix5
-rw-r--r--pkgs/development/python-modules/python-ptrace/default.nix4
-rw-r--r--pkgs/development/python-modules/python-redis-lock/default.nix4
-rw-r--r--pkgs/development/python-modules/python-rtmidi/default.nix8
-rw-r--r--pkgs/development/python-modules/python-slugify/default.nix4
-rw-r--r--pkgs/development/python-modules/python-stdnum/default.nix4
-rw-r--r--pkgs/development/python-modules/python-telegram-bot/default.nix4
-rw-r--r--pkgs/development/python-modules/python-vlc/default.nix4
-rw-r--r--pkgs/development/python-modules/python3-openid/default.nix4
-rw-r--r--pkgs/development/python-modules/pytimeparse/default.nix2
-rw-r--r--pkgs/development/python-modules/pytmx/default.nix16
-rw-r--r--pkgs/development/python-modules/pytools/default.nix6
-rw-r--r--pkgs/development/python-modules/pytorch-lightning/default.nix46
-rw-r--r--pkgs/development/python-modules/pytorch/bin.nix68
-rw-r--r--pkgs/development/python-modules/pytorch/binary-hashes.nix10
-rw-r--r--pkgs/development/python-modules/pytorch/default.nix73
-rw-r--r--pkgs/development/python-modules/pytorch/pthreadpool-disable-gcd.diff45
-rw-r--r--pkgs/development/python-modules/pytrends/default.nix2
-rw-r--r--pkgs/development/python-modules/pytzdata/default.nix4
-rw-r--r--pkgs/development/python-modules/pyuavcan/default.nix50
-rw-r--r--pkgs/development/python-modules/pyudev/default.nix4
-rw-r--r--pkgs/development/python-modules/pyvcd/default.nix6
-rw-r--r--pkgs/development/python-modules/pyvcf/default.nix6
-rw-r--r--pkgs/development/python-modules/pyviz-comms/default.nix4
-rw-r--r--pkgs/development/python-modules/pywbem/default.nix6
-rw-r--r--pkgs/development/python-modules/pyxdg/default.nix4
-rw-r--r--pkgs/development/python-modules/pyzmq/default.nix4
-rw-r--r--pkgs/development/python-modules/qds_sdk/default.nix12
-rw-r--r--pkgs/development/python-modules/qiskit-aer/default.nix34
-rw-r--r--pkgs/development/python-modules/qiskit-aer/remove-conan-install.patch63
-rw-r--r--pkgs/development/python-modules/qiskit-aqua/default.nix24
-rw-r--r--pkgs/development/python-modules/qiskit-ibmq-provider/default.nix5
-rw-r--r--pkgs/development/python-modules/qiskit-ignis/default.nix18
-rw-r--r--pkgs/development/python-modules/qiskit-terra/default.nix24
-rw-r--r--pkgs/development/python-modules/qiskit/default.nix21
-rw-r--r--pkgs/development/python-modules/qreactor/default.nix41
-rw-r--r--pkgs/development/python-modules/qscintilla-qt5/default.nix12
-rw-r--r--pkgs/development/python-modules/qtconsole/default.nix4
-rw-r--r--pkgs/development/python-modules/qutip/default.nix45
-rw-r--r--pkgs/development/python-modules/radish-bdd/default.nix52
-rw-r--r--pkgs/development/python-modules/rasterio/default.nix4
-rw-r--r--pkgs/development/python-modules/rdflib-jsonld/default.nix21
-rw-r--r--pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix4
-rw-r--r--pkgs/development/python-modules/recommonmark/default.nix4
-rw-r--r--pkgs/development/python-modules/rednose/default.nix6
-rw-r--r--pkgs/development/python-modules/regex/default.nix4
-rw-r--r--pkgs/development/python-modules/relatorio/default.nix4
-rw-r--r--pkgs/development/python-modules/reportlab/default.nix5
-rw-r--r--pkgs/development/python-modules/requests-aws4auth/default.nix4
-rw-r--r--pkgs/development/python-modules/requests/default.nix4
-rw-r--r--pkgs/development/python-modules/responses/default.nix4
-rw-r--r--pkgs/development/python-modules/rethinkdb/default.nix7
-rw-r--r--pkgs/development/python-modules/retworkx/default.nix77
-rw-r--r--pkgs/development/python-modules/rhpl/builder.sh2
-rw-r--r--pkgs/development/python-modules/ripser/default.nix6
-rw-r--r--pkgs/development/python-modules/robotframework-requests/default.nix4
-rw-r--r--pkgs/development/python-modules/rq/default.nix13
-rw-r--r--pkgs/development/python-modules/rsa/default.nix4
-rw-r--r--pkgs/development/python-modules/rubymarshal/default.nix4
-rw-r--r--pkgs/development/python-modules/rx/default.nix9
-rw-r--r--pkgs/development/python-modules/sabyenc3/default.nix22
-rw-r--r--pkgs/development/python-modules/sacremoses/default.nix2
-rw-r--r--pkgs/development/python-modules/samsungctl/default.nix29
-rw-r--r--pkgs/development/python-modules/samsungtvws/default.nix36
-rw-r--r--pkgs/development/python-modules/sanic-auth/default.nix10
-rw-r--r--pkgs/development/python-modules/sanic/default.nix4
-rw-r--r--pkgs/development/python-modules/sapi-python-client/default.nix23
-rw-r--r--pkgs/development/python-modules/sarge/default.nix4
-rw-r--r--pkgs/development/python-modules/sasmodels/default.nix4
-rw-r--r--pkgs/development/python-modules/scapy/default.nix50
-rw-r--r--pkgs/development/python-modules/scapy/fix-version.patch13
-rw-r--r--pkgs/development/python-modules/schema/default.nix4
-rw-r--r--pkgs/development/python-modules/scikit-build/default.nix14
-rw-r--r--pkgs/development/python-modules/scikitlearn/default.nix4
-rw-r--r--pkgs/development/python-modules/scipy/default.nix4
-rw-r--r--pkgs/development/python-modules/scour/default.nix4
-rw-r--r--pkgs/development/python-modules/scrapy-fake-useragent/default.nix4
-rw-r--r--pkgs/development/python-modules/scrapy/default.nix19
-rw-r--r--pkgs/development/python-modules/scrapy/permissions-fix.patch23
-rw-r--r--pkgs/development/python-modules/seekpath/default.nix3
-rw-r--r--pkgs/development/python-modules/selectors2/default.nix4
-rw-r--r--pkgs/development/python-modules/sentry-sdk/default.nix12
-rw-r--r--pkgs/development/python-modules/setuptools/default.nix4
-rw-r--r--pkgs/development/python-modules/sh/default.nix21
-rw-r--r--pkgs/development/python-modules/sh/disable-broken-tests-darwin.patch60
-rw-r--r--pkgs/development/python-modules/shamir-mnemonic/default.nix2
-rw-r--r--pkgs/development/python-modules/shiboken2/nix_compile_cflags.patch13
-rw-r--r--pkgs/development/python-modules/simpleparse/default.nix4
-rw-r--r--pkgs/development/python-modules/smart_open/default.nix6
-rw-r--r--pkgs/development/python-modules/snowflake-connector-python/default.nix4
-rw-r--r--pkgs/development/python-modules/snscrape/default.nix4
-rw-r--r--pkgs/development/python-modules/solo-python/default.nix4
-rw-r--r--pkgs/development/python-modules/somajo/default.nix4
-rw-r--r--pkgs/development/python-modules/sopel/default.nix23
-rw-r--r--pkgs/development/python-modules/sorl_thumbnail/default.nix2
-rw-r--r--pkgs/development/python-modules/sortedcollections/default.nix4
-rw-r--r--pkgs/development/python-modules/sortedcontainers/default.nix4
-rw-r--r--pkgs/development/python-modules/sounddevice/default.nix6
-rw-r--r--pkgs/development/python-modules/spacy/annotation-test/annotate.py69
-rw-r--r--pkgs/development/python-modules/spacy/annotation-test/default.nix23
-rw-r--r--pkgs/development/python-modules/spacy/default.nix8
-rw-r--r--pkgs/development/python-modules/spacy/models.nix2
-rw-r--r--pkgs/development/python-modules/sparse/default.nix3
-rw-r--r--pkgs/development/python-modules/spglib/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-openapi/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-spelling/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-tikz/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-websupport/default.nix7
-rw-r--r--pkgs/development/python-modules/spidev/default.nix24
-rw-r--r--pkgs/development/python-modules/splinter/default.nix4
-rw-r--r--pkgs/development/python-modules/spotipy/default.nix16
-rw-r--r--pkgs/development/python-modules/spyder-kernels/0.x.nix4
-rw-r--r--pkgs/development/python-modules/spyder-kernels/default.nix4
-rw-r--r--pkgs/development/python-modules/spyder/3.nix2
-rw-r--r--pkgs/development/python-modules/spyder/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlalchemy-citext/default.nix11
-rw-r--r--pkgs/development/python-modules/sqlalchemy-continuum/default.nix46
-rw-r--r--pkgs/development/python-modules/sqlalchemy-i18n/default.nix32
-rw-r--r--pkgs/development/python-modules/sqlalchemy-utils/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlalchemy/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlitedict/default.nix8
-rw-r--r--pkgs/development/python-modules/sqlmap/default.nix4
-rw-r--r--pkgs/development/python-modules/srsly/default.nix4
-rw-r--r--pkgs/development/python-modules/starfish/default.nix4
-rw-r--r--pkgs/development/python-modules/starlette/default.nix10
-rw-r--r--pkgs/development/python-modules/statsmodels/default.nix9
-rw-r--r--pkgs/development/python-modules/stevedore/default.nix23
-rw-r--r--pkgs/development/python-modules/streamz/default.nix33
-rw-r--r--pkgs/development/python-modules/strictyaml/default.nix7
-rw-r--r--pkgs/development/python-modules/stripe/default.nix4
-rw-r--r--pkgs/development/python-modules/stumpy/default.nix9
-rw-r--r--pkgs/development/python-modules/stytra/default.nix4
-rw-r--r--pkgs/development/python-modules/sunpy/default.nix33
-rw-r--r--pkgs/development/python-modules/supervisor/default.nix11
-rw-r--r--pkgs/development/python-modules/supervisor/glibc-2.31.patch13
-rw-r--r--pkgs/development/python-modules/suseapi/default.nix2
-rw-r--r--pkgs/development/python-modules/svglib/default.nix48
-rw-r--r--pkgs/development/python-modules/sybil/default.nix4
-rw-r--r--pkgs/development/python-modules/sympy/default.nix4
-rw-r--r--pkgs/development/python-modules/tag-expressions/default.nix24
-rw-r--r--pkgs/development/python-modules/tasklib/default.nix4
-rw-r--r--pkgs/development/python-modules/tblib/default.nix4
-rw-r--r--pkgs/development/python-modules/tempora/0001-pytest-remove-flake8-black-coverage.patch28
-rw-r--r--pkgs/development/python-modules/tempora/default.nix13
-rw-r--r--pkgs/development/python-modules/tensorflow-estimator/2/default.nix4
-rw-r--r--pkgs/development/python-modules/tensorflow/1/default.nix6
-rw-r--r--pkgs/development/python-modules/tensorflow/2/default.nix6
-rw-r--r--pkgs/development/python-modules/test-tube/default.nix46
-rw-r--r--pkgs/development/python-modules/testfixtures/default.nix10
-rw-r--r--pkgs/development/python-modules/thespian/default.nix4
-rw-r--r--pkgs/development/python-modules/thinc/default.nix1
-rw-r--r--pkgs/development/python-modules/tifffile/default.nix4
-rw-r--r--pkgs/development/python-modules/tiledb/default.nix21
-rw-r--r--pkgs/development/python-modules/timelib/default.nix4
-rw-r--r--pkgs/development/python-modules/timezonefinder/default.nix4
-rw-r--r--pkgs/development/python-modules/tinycss2/default.nix4
-rw-r--r--pkgs/development/python-modules/tinydb/default.nix2
-rw-r--r--pkgs/development/python-modules/titlecase/default.nix4
-rw-r--r--pkgs/development/python-modules/tldextract/default.nix7
-rw-r--r--pkgs/development/python-modules/todoist/default.nix4
-rw-r--r--pkgs/development/python-modules/tokenizers/default.nix14
-rw-r--r--pkgs/development/python-modules/tokenizers/update-parking-lot.diff63
-rw-r--r--pkgs/development/python-modules/tomlkit/default.nix4
-rw-r--r--pkgs/development/python-modules/torchgpipe/default.nix39
-rw-r--r--pkgs/development/python-modules/tornado/4.nix37
-rw-r--r--pkgs/development/python-modules/tornado/5.nix37
-rw-r--r--pkgs/development/python-modules/tornado/default.nix31
-rw-r--r--pkgs/development/python-modules/towncrier/default.nix40
-rw-r--r--pkgs/development/python-modules/tox/default.nix4
-rw-r--r--pkgs/development/python-modules/tqdm/default.nix4
-rw-r--r--pkgs/development/python-modules/traits/default.nix4
-rw-r--r--pkgs/development/python-modules/traitsui/default.nix4
-rw-r--r--pkgs/development/python-modules/transformers/default.nix17
-rw-r--r--pkgs/development/python-modules/transip/default.nix2
-rw-r--r--pkgs/development/python-modules/transitions/default.nix4
-rw-r--r--pkgs/development/python-modules/translationstring/default.nix4
-rw-r--r--pkgs/development/python-modules/trezor/default.nix61
-rw-r--r--pkgs/development/python-modules/trimesh/default.nix4
-rw-r--r--pkgs/development/python-modules/trio/default.nix22
-rw-r--r--pkgs/development/python-modules/trytond/default.nix4
-rw-r--r--pkgs/development/python-modules/tvnamer/default.nix4
-rw-r--r--pkgs/development/python-modules/tweepy/default.nix4
-rw-r--r--pkgs/development/python-modules/twilio/default.nix4
-rw-r--r--pkgs/development/python-modules/twill/default.nix6
-rw-r--r--pkgs/development/python-modules/twine/default.nix8
-rw-r--r--pkgs/development/python-modules/txdbus/default.nix2
-rw-r--r--pkgs/development/python-modules/typed-ast/default.nix4
-rw-r--r--pkgs/development/python-modules/typeguard/default.nix4
-rw-r--r--pkgs/development/python-modules/typing-extensions/default.nix4
-rw-r--r--pkgs/development/python-modules/typing-inspect/default.nix29
-rw-r--r--pkgs/development/python-modules/typing/default.nix4
-rw-r--r--pkgs/development/python-modules/u-msgpack-python/default.nix4
-rw-r--r--pkgs/development/python-modules/uamqp/default.nix4
-rw-r--r--pkgs/development/python-modules/ueberzug/default.nix4
-rw-r--r--pkgs/development/python-modules/ufonormalizer/default.nix19
-rw-r--r--pkgs/development/python-modules/ufoprocessor/default.nix35
-rw-r--r--pkgs/development/python-modules/ujson/2.nix28
-rw-r--r--pkgs/development/python-modules/ujson/default.nix7
-rw-r--r--pkgs/development/python-modules/uncertainties/default.nix14
-rw-r--r--pkgs/development/python-modules/uncompyle6/default.nix4
-rw-r--r--pkgs/development/python-modules/unicodedata2/default.nix23
-rw-r--r--pkgs/development/python-modules/unittest-xml-reporting/default.nix7
-rw-r--r--pkgs/development/python-modules/untangle/default.nix6
-rw-r--r--pkgs/development/python-modules/update_checker/default.nix4
-rw-r--r--pkgs/development/python-modules/uproot/default.nix4
-rw-r--r--pkgs/development/python-modules/uranium/default.nix4
-rw-r--r--pkgs/development/python-modules/urllib3/default.nix4
-rw-r--r--pkgs/development/python-modules/urwid/default.nix12
-rw-r--r--pkgs/development/python-modules/userpath/default.nix30
-rw-r--r--pkgs/development/python-modules/uvcclient/default.nix29
-rw-r--r--pkgs/development/python-modules/uvloop/default.nix6
-rw-r--r--pkgs/development/python-modules/validators/default.nix5
-rw-r--r--pkgs/development/python-modules/varint/default.nix2
-rw-r--r--pkgs/development/python-modules/vcrpy/default.nix4
-rw-r--r--pkgs/development/python-modules/vcver/default.nix31
-rw-r--r--pkgs/development/python-modules/vdirsyncer/stable.nix42
-rw-r--r--pkgs/development/python-modules/vega/default.nix11
-rw-r--r--pkgs/development/python-modules/venusian/default.nix2
-rw-r--r--pkgs/development/python-modules/vertica-python/default.nix14
-rw-r--r--pkgs/development/python-modules/virtualenv/default.nix4
-rw-r--r--pkgs/development/python-modules/vispy/default.nix40
-rw-r--r--pkgs/development/python-modules/vispy/library-paths.patch39
-rw-r--r--pkgs/development/python-modules/voluptuous-serialize/default.nix4
-rw-r--r--pkgs/development/python-modules/vulture/default.nix22
-rw-r--r--pkgs/development/python-modules/wasabi/default.nix17
-rw-r--r--pkgs/development/python-modules/watchdog/default.nix4
-rw-r--r--pkgs/development/python-modules/wcwidth/default.nix4
-rw-r--r--pkgs/development/python-modules/web/default.nix4
-rw-r--r--pkgs/development/python-modules/webdavclient3/default.nix30
-rw-r--r--pkgs/development/python-modules/werkzeug/default.nix14
-rw-r--r--pkgs/development/python-modules/west/default.nix53
-rw-r--r--pkgs/development/python-modules/wheel/default.nix38
-rw-r--r--pkgs/development/python-modules/whitenoise/default.nix4
-rw-r--r--pkgs/development/python-modules/willow/default.nix4
-rw-r--r--pkgs/development/python-modules/wordcloud/default.nix12
-rw-r--r--pkgs/development/python-modules/wsproto/0.14.nix4
-rw-r--r--pkgs/development/python-modules/wtf-peewee/default.nix4
-rw-r--r--pkgs/development/python-modules/wtforms/default.nix4
-rw-r--r--pkgs/development/python-modules/wurlitzer/default.nix4
-rw-r--r--pkgs/development/python-modules/wxPython/4.0.nix31
-rw-r--r--pkgs/development/python-modules/xarray/default.nix7
-rw-r--r--pkgs/development/python-modules/xcffib/default.nix9
-rw-r--r--pkgs/development/python-modules/xlsx2csv/default.nix4
-rw-r--r--pkgs/development/python-modules/xml2rfc/default.nix8
-rw-r--r--pkgs/development/python-modules/xmlschema/default.nix9
-rw-r--r--pkgs/development/python-modules/xpybutil/default.nix26
-rw-r--r--pkgs/development/python-modules/xxhash/default.nix4
-rw-r--r--pkgs/development/python-modules/yamllint/default.nix6
-rw-r--r--pkgs/development/python-modules/yappi/default.nix3
-rw-r--r--pkgs/development/python-modules/yarl/default.nix12
-rw-r--r--pkgs/development/python-modules/yattag/default.nix4
-rw-r--r--pkgs/development/python-modules/ydiff/default.nix4
-rw-r--r--pkgs/development/python-modules/yeelight/default.nix20
-rw-r--r--pkgs/development/python-modules/yfinance/default.nix36
-rw-r--r--pkgs/development/python-modules/zarr/default.nix2
-rw-r--r--pkgs/development/python-modules/zconfig/default.nix11
-rw-r--r--pkgs/development/python-modules/zeroconf/default.nix4
-rw-r--r--pkgs/development/python-modules/zha-quirks/default.nix4
-rw-r--r--pkgs/development/python-modules/zigpy-cc/default.nix24
-rw-r--r--pkgs/development/python-modules/zigpy-deconz/default.nix9
-rw-r--r--pkgs/development/python-modules/zigpy-xbee/default.nix24
-rw-r--r--pkgs/development/python-modules/zigpy-zigate/default.nix24
-rw-r--r--pkgs/development/python-modules/zigpy/default.nix15
-rw-r--r--pkgs/development/python-modules/zipp/1.nix2
-rw-r--r--pkgs/development/python-modules/zodb/default.nix17
-rw-r--r--pkgs/development/python-modules/zope_component/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_contenttype/default.nix5
-rw-r--r--pkgs/development/python-modules/zope_exceptions/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_i18n/default.nix27
-rw-r--r--pkgs/development/python-modules/zope_testrunner/default.nix4
-rw-r--r--pkgs/development/python-modules/zopfli/default.nix21
-rwxr-xr-xpkgs/development/python-modules/zstandard/default.nix12
-rw-r--r--pkgs/development/r-modules/default.nix6
-rw-r--r--pkgs/development/ruby-modules/gem-config/default.nix15
-rw-r--r--pkgs/development/ruby-modules/solargraph/Gemfile.lock26
-rw-r--r--pkgs/development/ruby-modules/solargraph/gemset.nix56
-rw-r--r--pkgs/development/tools/alloy/default.nix2
-rw-r--r--pkgs/development/tools/ameba/default.nix4
-rw-r--r--pkgs/development/tools/ammonite/default.nix6
-rw-r--r--pkgs/development/tools/analysis/cargo-tarpaulin/default.nix8
-rw-r--r--pkgs/development/tools/analysis/checkstyle/default.nix4
-rw-r--r--pkgs/development/tools/analysis/codeql/default.nix4
-rw-r--r--pkgs/development/tools/analysis/eresi/default.nix1
-rw-r--r--pkgs/development/tools/analysis/flow/default.nix5
-rw-r--r--pkgs/development/tools/analysis/hotspot/default.nix4
-rw-r--r--pkgs/development/tools/analysis/include-what-you-use/default.nix4
-rw-r--r--pkgs/development/tools/analysis/panopticon/default.nix1
-rw-r--r--pkgs/development/tools/analysis/pmd/default.nix4
-rw-r--r--pkgs/development/tools/analysis/radare2/cutter.nix4
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix32
-rwxr-xr-xpkgs/development/tools/analysis/radare2/update.py20
-rw-r--r--pkgs/development/tools/analysis/randoop/default.nix4
-rw-r--r--pkgs/development/tools/analysis/svlint/default.nix25
-rw-r--r--pkgs/development/tools/analysis/tflint/default.nix8
-rw-r--r--pkgs/development/tools/analysis/tfsec/default.nix6
-rw-r--r--pkgs/development/tools/analysis/valgrind/default.nix11
-rw-r--r--pkgs/development/tools/async/default.nix1
-rw-r--r--pkgs/development/tools/aws-sam-cli/default.nix19
-rw-r--r--pkgs/development/tools/azcopy/default.nix12
-rw-r--r--pkgs/development/tools/bazel-gazelle/default.nix8
-rw-r--r--pkgs/development/tools/bazel-kazel/default.nix26
-rw-r--r--pkgs/development/tools/bazelisk/default.nix8
-rw-r--r--pkgs/development/tools/bazelisk/gomod.patch2
-rw-r--r--pkgs/development/tools/bloaty/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/apache-ant/1.9.nix4
-rw-r--r--pkgs/development/tools/build-managers/apache-ant/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_1/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_3/default.nix25
-rw-r--r--pkgs/development/tools/build-managers/bazel/buildtools/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/bloop/default.nix118
-rw-r--r--pkgs/development/tools/build-managers/bmake/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/cmake/application-services.patch36
-rw-r--r--pkgs/development/tools/build-managers/cmake/default.nix17
-rw-r--r--pkgs/development/tools/build-managers/cmake/libuv-application-services.patch26
-rw-r--r--pkgs/development/tools/build-managers/cmake/search-path.patch33
-rwxr-xr-xpkgs/development/tools/build-managers/cmake/setup-hook.sh20
-rw-r--r--pkgs/development/tools/build-managers/gnumake/default.nix59
-rw-r--r--pkgs/development/tools/build-managers/gnumake/impure-dirs.patch25
-rw-r--r--pkgs/development/tools/build-managers/gradle/default.nix16
-rw-r--r--pkgs/development/tools/build-managers/mage/default.nix9
-rw-r--r--pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch4
-rw-r--r--pkgs/development/tools/build-managers/meson/clear-old-rpath.patch20
-rw-r--r--pkgs/development/tools/build-managers/meson/default.nix50
-rw-r--r--pkgs/development/tools/build-managers/meson/fix-rpath.patch76
-rw-r--r--pkgs/development/tools/build-managers/meson/gir-fallback-path.patch6
-rw-r--r--pkgs/development/tools/build-managers/meson/more-env-vars.patch4
-rw-r--r--pkgs/development/tools/build-managers/mill/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/ninja/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/redo-apenwarr/default.nix16
-rw-r--r--pkgs/development/tools/build-managers/redo-c/Makefile10
-rw-r--r--pkgs/development/tools/build-managers/redo-c/default.nix24
-rw-r--r--pkgs/development/tools/build-managers/rocm-cmake/default.nix23
-rw-r--r--pkgs/development/tools/build-managers/scons/common.nix10
-rw-r--r--pkgs/development/tools/build-managers/scons/default.nix6
-rw-r--r--pkgs/development/tools/buildah/default.nix17
-rw-r--r--pkgs/development/tools/buildkit/default.nix6
-rw-r--r--pkgs/development/tools/buildpack/default.nix21
-rw-r--r--pkgs/development/tools/cargo-flamegraph/default.nix1
-rw-r--r--pkgs/development/tools/cargo-web/default.nix1
-rw-r--r--pkgs/development/tools/castxml/default.nix4
-rw-r--r--pkgs/development/tools/chit/default.nix1
-rw-r--r--pkgs/development/tools/cloudfoundry-cli/default.nix15
-rw-r--r--pkgs/development/tools/cmake-format/default.nix11
-rw-r--r--pkgs/development/tools/cmake-language-server/default.nix12
-rw-r--r--pkgs/development/tools/conftest/default.nix9
-rw-r--r--pkgs/development/tools/continuous-integration/buildkite-cli/default.nix2
-rw-r--r--pkgs/development/tools/continuous-integration/drone-cli/default.nix11
-rw-r--r--pkgs/development/tools/continuous-integration/drone/default.nix11
-rw-r--r--pkgs/development/tools/continuous-integration/fly/default.nix8
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix8
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/laminar/default.nix80
-rw-r--r--pkgs/development/tools/continuous-integration/laminar/patches/no-network.patch26
-rw-r--r--pkgs/development/tools/corgi/default.nix1
-rw-r--r--pkgs/development/tools/coursier/default.nix4
-rw-r--r--pkgs/development/tools/cue/default.nix8
-rw-r--r--pkgs/development/tools/dapper/default.nix4
-rw-r--r--pkgs/development/tools/dapr/cli/default.nix31
-rw-r--r--pkgs/development/tools/database/dbmate/default.nix10
-rw-r--r--pkgs/development/tools/database/liquibase/default.nix4
-rw-r--r--pkgs/development/tools/database/sqldeveloper/default.nix4
-rw-r--r--pkgs/development/tools/database/timescaledb-parallel-copy/default.nix28
-rw-r--r--pkgs/development/tools/database/timescaledb-parallel-copy/deps.nix21
-rw-r--r--pkgs/development/tools/database/timescaledb-tune/default.nix20
-rw-r--r--pkgs/development/tools/database/timescaledb-tune/deps.nix21
-rw-r--r--pkgs/development/tools/database/webdis/default.nix4
-rw-r--r--pkgs/development/tools/delve/default.nix4
-rw-r--r--pkgs/development/tools/dep/default.nix1
-rw-r--r--pkgs/development/tools/dep2nix/deps.nix272
-rw-r--r--pkgs/development/tools/devd/default.nix1
-rw-r--r--pkgs/development/tools/diesel-cli/default.nix1
-rw-r--r--pkgs/development/tools/dive/default.nix4
-rw-r--r--pkgs/development/tools/doctl/default.nix7
-rw-r--r--pkgs/development/tools/documentation/doxygen/default.nix4
-rw-r--r--pkgs/development/tools/documentation/mdsh/default.nix1
-rw-r--r--pkgs/development/tools/dot-http/default.nix28
-rw-r--r--pkgs/development/tools/dt-schema/default.nix37
-rw-r--r--pkgs/development/tools/easyjson/default.nix3
-rw-r--r--pkgs/development/tools/electron/generic.nix1
-rw-r--r--pkgs/development/tools/eliot-tree/default.nix38
-rw-r--r--pkgs/development/tools/fdroidserver/default.nix4
-rw-r--r--pkgs/development/tools/fedora-coreos-config-transpiler/default.nix6
-rw-r--r--pkgs/development/tools/flatpak-builder/default.nix8
-rw-r--r--pkgs/development/tools/flatpak-builder/fix-paths.patch31
-rw-r--r--pkgs/development/tools/flyway/default.nix4
-rw-r--r--pkgs/development/tools/gdm/default.nix1
-rw-r--r--pkgs/development/tools/ginkgo/default.nix22
-rw-r--r--pkgs/development/tools/gir/default.nix1
-rw-r--r--pkgs/development/tools/git-quick-stats/default.nix40
-rw-r--r--pkgs/development/tools/gllvm/default.nix5
-rw-r--r--pkgs/development/tools/go-bindata-assetfs/default.nix1
-rw-r--r--pkgs/development/tools/go-bindata/default.nix1
-rw-r--r--pkgs/development/tools/go-junit-report/default.nix1
-rw-r--r--pkgs/development/tools/go-migrate/default.nix24
-rw-r--r--pkgs/development/tools/go-protobuf/default.nix4
-rw-r--r--pkgs/development/tools/go-repo-root/default.nix2
-rw-r--r--pkgs/development/tools/go-swagger/default.nix10
-rw-r--r--pkgs/development/tools/go-task/default.nix34
-rw-r--r--pkgs/development/tools/go-tools/default.nix8
-rw-r--r--pkgs/development/tools/gocode-gomod/default.nix19
-rw-r--r--pkgs/development/tools/gocode-gomod/deps.nix11
-rw-r--r--pkgs/development/tools/gocode/default.nix1
-rw-r--r--pkgs/development/tools/godef/default.nix5
-rw-r--r--pkgs/development/tools/godot/default.nix4
-rw-r--r--pkgs/development/tools/godot/dont_clobber_environment.patch20
-rw-r--r--pkgs/development/tools/godot/headless.nix18
-rw-r--r--pkgs/development/tools/godot/pkg_config_additions.patch31
-rw-r--r--pkgs/development/tools/godot/server.nix18
-rw-r--r--pkgs/development/tools/gofumpt/default.nix4
-rw-r--r--pkgs/development/tools/gogetdoc/default.nix2
-rw-r--r--pkgs/development/tools/golangci-lint/default.nix29
-rw-r--r--pkgs/development/tools/golint/default.nix3
-rw-r--r--pkgs/development/tools/gomodifytags/default.nix4
-rw-r--r--pkgs/development/tools/gopkgs/default.nix6
-rw-r--r--pkgs/development/tools/gopls/default.nix14
-rw-r--r--pkgs/development/tools/gore/default.nix2
-rw-r--r--pkgs/development/tools/gosec/default.nix12
-rw-r--r--pkgs/development/tools/gotags/default.nix2
-rw-r--r--pkgs/development/tools/gotestsum/default.nix10
-rw-r--r--pkgs/development/tools/gotools/default.nix4
-rw-r--r--pkgs/development/tools/gox/default.nix1
-rw-r--r--pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix21
-rw-r--r--pkgs/development/tools/haskell/dconf2nix/default.nix32
-rwxr-xr-xpkgs/development/tools/haskell/dconf2nix/update.sh26
-rw-r--r--pkgs/development/tools/haskell/haskell-language-server/default.nix48
-rw-r--r--pkgs/development/tools/haskell/haskell-language-server/hls-ghcide.nix58
-rwxr-xr-xpkgs/development/tools/haskell/haskell-language-server/update.sh53
-rw-r--r--pkgs/development/tools/haskell/hyper-haskell/default.nix4
-rw-r--r--pkgs/development/tools/haskell/ihaskell/wrapper.nix2
-rw-r--r--pkgs/development/tools/hcloud/default.nix11
-rw-r--r--pkgs/development/tools/icestorm/default.nix8
-rw-r--r--pkgs/development/tools/java/visualvm/default.nix4
-rw-r--r--pkgs/development/tools/jazzy/Gemfile.lock34
-rw-r--r--pkgs/development/tools/jazzy/gemset.nix60
-rw-r--r--pkgs/development/tools/jid/default.nix1
-rw-r--r--pkgs/development/tools/jo/default.nix4
-rw-r--r--pkgs/development/tools/just/default.nix18
-rw-r--r--pkgs/development/tools/k6/default.nix4
-rw-r--r--pkgs/development/tools/kafkacat/default.nix4
-rw-r--r--pkgs/development/tools/kcli/default.nix4
-rw-r--r--pkgs/development/tools/kind/default.nix4
-rw-r--r--pkgs/development/tools/knightos/kcc/default.nix25
-rw-r--r--pkgs/development/tools/knightos/kimg/default.nix26
-rw-r--r--pkgs/development/tools/knightos/kpack/default.nix27
-rw-r--r--pkgs/development/tools/knightos/mkrom/default.nix27
-rw-r--r--pkgs/development/tools/knightos/scas/default.nix26
-rw-r--r--pkgs/development/tools/kubectx/default.nix2
-rw-r--r--pkgs/development/tools/kubeprompt/default.nix8
-rw-r--r--pkgs/development/tools/kustomize/default.nix28
-rw-r--r--pkgs/development/tools/lattice-diamond/default.nix3
-rw-r--r--pkgs/development/tools/lazygit/default.nix4
-rw-r--r--pkgs/development/tools/leaps/default.nix3
-rw-r--r--pkgs/development/tools/leaps/deps.nix350
-rw-r--r--pkgs/development/tools/metals/default.nix14
-rw-r--r--pkgs/development/tools/micronaut/default.nix4
-rw-r--r--pkgs/development/tools/minizinc/default.nix17
-rw-r--r--pkgs/development/tools/misc/act/default.nix8
-rw-r--r--pkgs/development/tools/misc/arcanist/default.nix73
-rw-r--r--pkgs/development/tools/misc/argbash/default.nix4
-rw-r--r--pkgs/development/tools/misc/asls/default.nix25
-rw-r--r--pkgs/development/tools/misc/autoconf/default.nix5
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.15.x.nix4
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix5
-rw-r--r--pkgs/development/tools/misc/blackmagic/default.nix8
-rwxr-xr-xpkgs/development/tools/misc/blackmagic/helper.sh10
-rw-r--r--pkgs/development/tools/misc/cc-tool/default.nix42
-rw-r--r--pkgs/development/tools/misc/ccache/default.nix4
-rw-r--r--pkgs/development/tools/misc/circleci-cli/default.nix10
-rw-r--r--pkgs/development/tools/misc/clojure-lsp/default.nix4
-rw-r--r--pkgs/development/tools/misc/cproto/cproto.patch (renamed from pkgs/development/tools/misc/cproto/cproto_patch)0
-rw-r--r--pkgs/development/tools/misc/cproto/default.nix8
-rw-r--r--pkgs/development/tools/misc/easypdkprog/default.nix4
-rw-r--r--pkgs/development/tools/misc/editorconfig-checker/default.nix2
-rw-r--r--pkgs/development/tools/misc/elfinfo/default.nix4
-rw-r--r--pkgs/development/tools/misc/elfutils/default.nix14
-rw-r--r--pkgs/development/tools/misc/fswatch/default.nix4
-rw-r--r--pkgs/development/tools/misc/fujprog/default.nix37
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix13
-rw-r--r--pkgs/development/tools/misc/gdbgui/default.nix9
-rw-r--r--pkgs/development/tools/misc/gnum4/default.nix5
-rw-r--r--pkgs/development/tools/misc/go-license-detector/default.nix4
-rw-r--r--pkgs/development/tools/misc/help2man/default.nix9
-rw-r--r--pkgs/development/tools/misc/hydra-cli/default.nix1
-rw-r--r--pkgs/development/tools/misc/hydra/default.nix6
-rw-r--r--pkgs/development/tools/misc/intltool/default.nix8
-rw-r--r--pkgs/development/tools/misc/itm-tools/cargo-lock.patch321
-rw-r--r--pkgs/development/tools/misc/itm-tools/default.nix28
-rw-r--r--pkgs/development/tools/misc/libtool/default.nix5
-rw-r--r--pkgs/development/tools/misc/linuxkit/default.nix8
-rw-r--r--pkgs/development/tools/misc/lit/default.nix4
-rw-r--r--pkgs/development/tools/misc/mkcert/default.nix8
-rw-r--r--pkgs/development/tools/misc/nix-build-uncached/default.nix14
-rw-r--r--pkgs/development/tools/misc/nrfutil/default.nix13
-rw-r--r--pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix46
-rw-r--r--pkgs/development/tools/misc/objconv/default.nix4
-rw-r--r--pkgs/development/tools/misc/pahole/default.nix4
-rw-r--r--pkgs/development/tools/misc/patchelf/default.nix12
-rw-r--r--pkgs/development/tools/misc/patchelf/unstable.nix6
-rw-r--r--pkgs/development/tools/misc/pwndbg/default.nix4
-rw-r--r--pkgs/development/tools/misc/replacement/default.nix46
-rw-r--r--pkgs/development/tools/misc/reviewdog/default.nix6
-rw-r--r--pkgs/development/tools/misc/scc/default.nix12
-rw-r--r--pkgs/development/tools/misc/stm32cubemx/default.nix34
-rw-r--r--pkgs/development/tools/misc/strace/default.nix8
-rw-r--r--pkgs/development/tools/misc/svls/default.nix25
-rw-r--r--pkgs/development/tools/misc/swig/4.nix4
-rw-r--r--pkgs/development/tools/misc/terracognita/default.nix8
-rw-r--r--pkgs/development/tools/misc/terraform-ls/default.nix4
-rw-r--r--pkgs/development/tools/misc/terraformer/default.nix24
-rw-r--r--pkgs/development/tools/misc/texinfo/6.7.nix4
-rw-r--r--pkgs/development/tools/misc/texinfo/common.nix10
-rw-r--r--pkgs/development/tools/misc/texinfo/cross-tools-flags.patch3
-rw-r--r--pkgs/development/tools/misc/texinfo/perl.patch43
-rw-r--r--pkgs/development/tools/misc/texlab/default.nix1
-rw-r--r--pkgs/development/tools/misc/tockloader/default.nix4
-rw-r--r--pkgs/development/tools/misc/tokei/default.nix1
-rw-r--r--pkgs/development/tools/mockgen/default.nix23
-rw-r--r--pkgs/development/tools/mod/default.nix4
-rw-r--r--pkgs/development/tools/modd/default.nix1
-rw-r--r--pkgs/development/tools/mustache-go/default.nix4
-rw-r--r--pkgs/development/tools/node-webkit/nw12.nix4
-rw-r--r--pkgs/development/tools/nsis/default.nix15
-rw-r--r--pkgs/development/tools/nwjs/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/camlp4/default.nix5
-rw-r--r--pkgs/development/tools/ocaml/dune-release/default.nix20
-rw-r--r--pkgs/development/tools/ocaml/dune/2.nix16
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix7
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/merlin/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/ocamlformat/default.nix6
-rw-r--r--pkgs/development/tools/ocaml/ocp-indent/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/ocp-index/default.nix12
-rw-r--r--pkgs/development/tools/omnisharp-roslyn/default.nix4
-rw-r--r--pkgs/development/tools/open-policy-agent/default.nix10
-rw-r--r--pkgs/development/tools/open-policy-agent/deps.nix39
-rw-r--r--pkgs/development/tools/operator-sdk/default.nix35
-rw-r--r--pkgs/development/tools/osslsigncode/default.nix9
-rw-r--r--pkgs/development/tools/out-of-tree/default.nix2
-rw-r--r--pkgs/development/tools/packer/default.nix4
-rw-r--r--pkgs/development/tools/packet-cli/default.nix15
-rw-r--r--pkgs/development/tools/parinfer-rust/default.nix1
-rw-r--r--pkgs/development/tools/parsing/bison/default.nix9
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/default.nix6
-rw-r--r--pkgs/development/tools/pet/default.nix4
-rw-r--r--pkgs/development/tools/pgformatter/default.nix4
-rw-r--r--pkgs/development/tools/pipenv/default.nix10
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/default.nix103
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix12
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/hooks/wheel-unpack-hook.sh18
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/lib.nix4
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix16
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix166
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix2
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix3
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock311
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml2
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json4
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/plugins.nix70
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix41
-rw-r--r--pkgs/development/tools/profiling/heaptrack/default.nix4
-rw-r--r--pkgs/development/tools/profiling/oprofile/default.nix4
-rw-r--r--pkgs/development/tools/profiling/sysprof/default.nix3
-rw-r--r--pkgs/development/tools/proto-contrib/default.nix4
-rw-r--r--pkgs/development/tools/protoc-gen-doc/default.nix4
-rw-r--r--pkgs/development/tools/prototool/default.nix2
-rw-r--r--pkgs/development/tools/purescript/spago/spago.nix6
-rw-r--r--pkgs/development/tools/quicktemplate/default.nix3
-rw-r--r--pkgs/development/tools/rebazel/default.nix21
-rw-r--r--pkgs/development/tools/reftools/default.nix5
-rw-r--r--pkgs/development/tools/renderizer/default.nix4
-rw-r--r--pkgs/development/tools/reno/default.nix61
-rw-r--r--pkgs/development/tools/richgo/default.nix4
-rw-r--r--pkgs/development/tools/rq/default.nix3
-rw-r--r--pkgs/development/tools/run/default.nix4
-rw-r--r--pkgs/development/tools/rust/bindgen/default.nix10
-rw-r--r--pkgs/development/tools/rust/cargo-asm/default.nix1
-rw-r--r--pkgs/development/tools/rust/cargo-c/default.nix50
-rw-r--r--pkgs/development/tools/rust/cargo-cache/default.nix26
-rw-r--r--pkgs/development/tools/rust/cargo-crev/default.nix19
-rw-r--r--pkgs/development/tools/rust/cargo-embed/default.nix27
-rw-r--r--pkgs/development/tools/rust/cargo-expand/default.nix7
-rw-r--r--pkgs/development/tools/rust/cargo-flash/default.nix27
-rw-r--r--pkgs/development/tools/rust/cargo-fund/default.nix29
-rw-r--r--pkgs/development/tools/rust/cargo-fuzz/default.nix11
-rw-r--r--pkgs/development/tools/rust/cargo-geiger/default.nix1
-rw-r--r--pkgs/development/tools/rust/cargo-generate/default.nix1
-rw-r--r--pkgs/development/tools/rust/cargo-inspect/default.nix7
-rw-r--r--pkgs/development/tools/rust/cargo-make/Cargo.lock1323
-rw-r--r--pkgs/development/tools/rust/cargo-make/default.nix29
-rw-r--r--pkgs/development/tools/rust/cargo-raze/default.nix1
-rw-r--r--pkgs/development/tools/rust/cargo-sweep/default.nix1
-rw-r--r--pkgs/development/tools/rust/cargo-udeps/default.nix7
-rw-r--r--pkgs/development/tools/rust/cargo-watch/default.nix13
-rw-r--r--pkgs/development/tools/rust/cargo-xbuild/default.nix9
-rw-r--r--pkgs/development/tools/rust/cbindgen/default.nix6
-rw-r--r--pkgs/development/tools/rust/maturin/default.nix7
-rw-r--r--pkgs/development/tools/rust/racer/default.nix15
-rw-r--r--pkgs/development/tools/rust/racerd/default.nix2
-rw-r--r--pkgs/development/tools/rust/rust-analyzer/default.nix6
-rw-r--r--pkgs/development/tools/rust/rust-analyzer/generic.nix13
-rwxr-xr-xpkgs/development/tools/rust/rust-analyzer/update.sh19
-rw-r--r--pkgs/development/tools/rust/rustup/default.nix37
-rw-r--r--pkgs/development/tools/rust/svd2rust/default.nix1
-rw-r--r--pkgs/development/tools/scalafmt/default.nix4
-rw-r--r--pkgs/development/tools/selenium/chromedriver/default.nix10
-rw-r--r--pkgs/development/tools/skaffold/default.nix4
-rw-r--r--pkgs/development/tools/skopeo/default.nix6
-rw-r--r--pkgs/development/tools/so/default.nix27
-rw-r--r--pkgs/development/tools/spring-boot-cli/default.nix4
-rw-r--r--pkgs/development/tools/statik/default.nix3
-rw-r--r--pkgs/development/tools/summon/default.nix35
-rw-r--r--pkgs/development/tools/summon/resolve-paths.patch39
-rw-r--r--pkgs/development/tools/swiftformat/default.nix4
-rw-r--r--pkgs/development/tools/the-way/default.nix7
-rw-r--r--pkgs/development/tools/tracy/default.nix14
-rw-r--r--pkgs/development/tools/trellis/default.nix8
-rw-r--r--pkgs/development/tools/tychus/default.nix1
-rw-r--r--pkgs/development/tools/vagrant/0004-Support-system-installed-plugins.patch10
-rw-r--r--pkgs/development/tools/vagrant/default.nix11
-rw-r--r--pkgs/development/tools/vagrant/gemset.nix44
-rw-r--r--pkgs/development/tools/vagrant/use-system-bundler-version.patch10
-rw-r--r--pkgs/development/tools/vcstool/default.nix4
-rw-r--r--pkgs/development/tools/vend/default.nix37
-rw-r--r--pkgs/development/tools/vend/remove_tidy.patch13
-rw-r--r--pkgs/development/tools/vultr-cli/default.nix6
-rw-r--r--pkgs/development/tools/vultr/default.nix5
-rw-r--r--pkgs/development/tools/wabt/default.nix4
-rw-r--r--pkgs/development/tools/wasm-bindgen-cli/0001-Add-cargo.lock.patch2560
-rw-r--r--pkgs/development/tools/wasm-bindgen-cli/Cargo.lock2557
-rw-r--r--pkgs/development/tools/wasm-bindgen-cli/default.nix28
-rw-r--r--pkgs/development/tools/wasm-pack/default.nix1
-rw-r--r--pkgs/development/tools/wrangler/default.nix1
-rw-r--r--pkgs/development/tools/wxformbuilder/default.nix35
-rw-r--r--pkgs/development/tools/yarn/default.nix4
-rw-r--r--pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix4
-rw-r--r--pkgs/development/tools/ydiff/default.nix4
-rw-r--r--pkgs/development/tools/yj/default.nix1
-rw-r--r--pkgs/development/tools/yq-go/default.nix2
-rw-r--r--pkgs/development/tools/yq/default.nix33
-rw-r--r--pkgs/development/web/cypress/default.nix8
-rw-r--r--pkgs/development/web/deno/default.nix6
-rw-r--r--pkgs/development/web/deno/deps.nix8
-rw-r--r--pkgs/development/web/deno/update/common.ts15
-rw-r--r--pkgs/development/web/flyctl/default.nix8
-rw-r--r--pkgs/development/web/grails/default.nix4
-rw-r--r--pkgs/development/web/lucky-cli/default.nix4
-rw-r--r--pkgs/development/web/minify/default.nix4
-rw-r--r--pkgs/development/web/nodejs/v10.nix4
-rw-r--r--pkgs/development/web/nodejs/v12.nix4
-rw-r--r--pkgs/development/web/nodejs/v13.nix13
-rw-r--r--pkgs/development/web/nodejs/v14.nix7
-rw-r--r--pkgs/development/web/postman/default.nix10
-rw-r--r--pkgs/development/web/shopify-themekit/default.nix5
-rw-r--r--pkgs/development/web/twitter-bootstrap/default.nix4
-rw-r--r--pkgs/games/arena/default.nix8
-rw-r--r--pkgs/games/arx-libertatis/default.nix4
-rw-r--r--pkgs/games/cataclysm-dda/builder.nix49
-rw-r--r--pkgs/games/cataclysm-dda/common.nix187
-rw-r--r--pkgs/games/cataclysm-dda/default.nix51
-rw-r--r--pkgs/games/cataclysm-dda/git.nix54
-rw-r--r--pkgs/games/cataclysm-dda/lib.nix17
-rw-r--r--pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch18
-rw-r--r--pkgs/games/cataclysm-dda/patches/fix_locale_dir_git.patch20
-rw-r--r--pkgs/games/cataclysm-dda/pkgs/default.nix27
-rw-r--r--pkgs/games/cataclysm-dda/pkgs/tilesets/UndeadPeople/default.nix23
-rw-r--r--pkgs/games/cataclysm-dda/stable.nix34
-rw-r--r--pkgs/games/cataclysm-dda/wrapper.nix47
-rw-r--r--pkgs/games/chiaki/default.nix8
-rw-r--r--pkgs/games/chocolate-doom/default.nix4
-rw-r--r--pkgs/games/cockatrice/default.nix4
-rw-r--r--pkgs/games/crawl/crawl_purify.patch43
-rw-r--r--pkgs/games/crawl/default.nix4
-rw-r--r--pkgs/games/crispy-doom/default.nix14
-rw-r--r--pkgs/games/curseofwar/default.nix18
-rw-r--r--pkgs/games/dwarf-fortress/dfhack/default.nix29
-rw-r--r--pkgs/games/dwarf-fortress/twbt/default.nix13
-rw-r--r--pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in2
-rw-r--r--pkgs/games/eidolon/default.nix2
-rw-r--r--pkgs/games/empty-epsilon/default.nix8
-rw-r--r--pkgs/games/endgame-singularity/default.nix58
-rw-r--r--pkgs/games/exult/arch.patch123
-rw-r--r--pkgs/games/exult/default.nix15
-rw-r--r--pkgs/games/factorio/default.nix27
-rw-r--r--pkgs/games/frotz/default.nix33
-rw-r--r--pkgs/games/gemrb/default.nix19
-rw-r--r--pkgs/games/gnome-hexgl/default.nix10
-rw-r--r--pkgs/games/gzdoom/default.nix130
-rw-r--r--pkgs/games/hedgewars/default.nix9
-rw-r--r--pkgs/games/hyperrogue/default.nix4
-rw-r--r--pkgs/games/katago/default.nix70
-rw-r--r--pkgs/games/klavaro/default.nix5
-rw-r--r--pkgs/games/left4gore/default.nix48
-rw-r--r--pkgs/games/legendary-gl/default.nix30
-rw-r--r--pkgs/games/minecraft-server/default.nix6
-rw-r--r--pkgs/games/minecraft/default.nix4
-rw-r--r--pkgs/games/minetest/default.nix10
-rw-r--r--pkgs/games/mnemosyne/default.nix4
-rw-r--r--pkgs/games/ninvaders/default.nix2
-rw-r--r--pkgs/games/openjk/default.nix6
-rw-r--r--pkgs/games/openrct2/default.nix21
-rw-r--r--pkgs/games/openttd/default.nix4
-rw-r--r--pkgs/games/openxray/default.nix10
-rw-r--r--pkgs/games/osu-lazer/bypass-tamper-detection.patch23
-rw-r--r--pkgs/games/osu-lazer/default.nix111
-rw-r--r--pkgs/games/osu-lazer/deps.nix1517
-rwxr-xr-xpkgs/games/osu-lazer/update.sh58
-rw-r--r--pkgs/games/papermc/default.nix29
-rw-r--r--pkgs/games/pentobi/default.nix4
-rw-r--r--pkgs/games/sfrotz/default.nix69
-rw-r--r--pkgs/games/shattered-pixel-dungeon/default.nix9
-rw-r--r--pkgs/games/sm64ex/default.nix69
-rw-r--r--pkgs/games/spring/springlobby.nix4
-rw-r--r--pkgs/games/steam/default.nix5
-rw-r--r--pkgs/games/steam/fhsenv.nix (renamed from pkgs/games/steam/chrootenv.nix)13
-rw-r--r--pkgs/games/steam/runtime.nix4
-rw-r--r--pkgs/games/tdm/default.nix6
-rw-r--r--pkgs/games/the-powder-toy/default.nix17
-rw-r--r--pkgs/games/tome2/default.nix2
-rw-r--r--pkgs/games/ultrastardx/default.nix41
-rw-r--r--pkgs/games/vassal/default.nix4
-rw-r--r--pkgs/games/vdrift/default.nix4
-rw-r--r--pkgs/games/xcowsay/default.nix40
-rw-r--r--pkgs/misc/autotiling/default.nix23
-rw-r--r--pkgs/misc/cbeams/default.nix2
-rw-r--r--pkgs/misc/cups/drivers/cups-bjnp/default.nix6
-rw-r--r--pkgs/misc/cups/drivers/hl1210w/default.nix62
-rw-r--r--pkgs/misc/drivers/epkowa/default.nix12
-rw-r--r--pkgs/misc/drivers/epson-escpr2/default.nix8
-rw-r--r--pkgs/misc/drivers/hplip/default.nix2
-rw-r--r--pkgs/misc/drivers/xboxdrv/default.nix4
-rw-r--r--pkgs/misc/emulators/emu2/default.nix23
-rw-r--r--pkgs/misc/emulators/gxemul/default.nix22
-rw-r--r--pkgs/misc/emulators/mame/default.nix4
-rw-r--r--pkgs/misc/emulators/mgba/default.nix4
-rw-r--r--pkgs/misc/emulators/pcsx2/default.nix4
-rw-r--r--pkgs/misc/emulators/retroarch/default.nix3
-rw-r--r--pkgs/misc/emulators/ryujinx/default.nix106
-rw-r--r--pkgs/misc/emulators/ryujinx/deps.nix1317
-rwxr-xr-xpkgs/misc/emulators/ryujinx/fetch-deps.sh41
-rw-r--r--pkgs/misc/emulators/ryujinx/log.patch13
-rw-r--r--pkgs/misc/emulators/simplenes/default.nix33
-rw-r--r--pkgs/misc/emulators/snes9x-gtk/default.nix4
-rw-r--r--pkgs/misc/emulators/wine/sources.nix9
-rw-r--r--pkgs/misc/emulators/wine/staging.nix4
-rw-r--r--pkgs/misc/flashfocus/default.nix28
-rw-r--r--pkgs/misc/ghostscript/default.nix8
-rw-r--r--pkgs/misc/hdt/default.nix27
-rw-r--r--pkgs/misc/logging/beats/6.x.nix4
-rw-r--r--pkgs/misc/logging/beats/7.x.nix4
-rw-r--r--pkgs/misc/scrcpy/default.nix10
-rw-r--r--pkgs/misc/screensavers/light-locker/default.nix3
-rw-r--r--pkgs/misc/screensavers/pipes/default.nix7
-rw-r--r--pkgs/misc/screensavers/xlockmore/default.nix4
-rw-r--r--pkgs/misc/screensavers/xscreensaver/default.nix5
-rw-r--r--pkgs/misc/seafile-shared/default.nix4
-rw-r--r--pkgs/misc/sndio/default.nix16
-rw-r--r--pkgs/misc/stabber/default.nix8
-rw-r--r--pkgs/misc/tmux-plugins/default.nix1
-rw-r--r--pkgs/misc/uboot/default.nix11
-rwxr-xr-xpkgs/misc/uq/default.nix1
-rw-r--r--pkgs/misc/vim-plugins/deprecated.json4
-rw-r--r--pkgs/misc/vim-plugins/generated.nix1911
-rw-r--r--pkgs/misc/vim-plugins/overrides.nix298
-rwxr-xr-xpkgs/misc/vim-plugins/update.py15
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names87
-rw-r--r--pkgs/misc/vscode-extensions/cpptools/default.nix10
-rw-r--r--pkgs/misc/vscode-extensions/default.nix17
-rw-r--r--pkgs/misc/vscode-extensions/python/default.nix15
-rw-r--r--pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json24
-rw-r--r--pkgs/misc/vscode-extensions/updateSettings.nix6
-rw-r--r--pkgs/misc/vscode-extensions/vscodeEnv.nix14
-rw-r--r--pkgs/misc/vscode-extensions/vscodeEnvTest.nix3
-rw-r--r--pkgs/misc/vscode-extensions/vscodeExts2nix.nix12
-rw-r--r--pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix26
-rw-r--r--pkgs/os-specific/darwin/discrete-scroll/default.nix35
-rw-r--r--pkgs/os-specific/darwin/ios-deploy/default.nix35
-rw-r--r--pkgs/os-specific/darwin/libtapi/default.nix28
-rw-r--r--pkgs/os-specific/darwin/smimesign/default.nix23
-rw-r--r--pkgs/os-specific/darwin/spacebar/default.nix10
-rw-r--r--pkgs/os-specific/darwin/yabai/default.nix4
-rw-r--r--pkgs/os-specific/linux/apparmor/default.nix17
-rw-r--r--pkgs/os-specific/linux/bcc/default.nix13
-rw-r--r--pkgs/os-specific/linux/bpftrace/default.nix10
-rw-r--r--pkgs/os-specific/linux/btfs/default.nix4
-rw-r--r--pkgs/os-specific/linux/busybox/0001-Fix-build-with-glibc-2.31.patch71
-rw-r--r--pkgs/os-specific/linux/busybox/0001-wget-implement-TLS-verification-with-ENABLE_FEATURE_.patch94
-rw-r--r--pkgs/os-specific/linux/busybox/default.nix29
-rw-r--r--pkgs/os-specific/linux/checksec/default.nix4
-rw-r--r--pkgs/os-specific/linux/conky/default.nix4
-rw-r--r--pkgs/os-specific/linux/conspy/default.nix8
-rw-r--r--pkgs/os-specific/linux/cramfsprogs/default.nix32
-rw-r--r--pkgs/os-specific/linux/cramfsprogs/include-sysmacros.patch12
-rw-r--r--pkgs/os-specific/linux/cramfsswap/builder.sh6
-rw-r--r--pkgs/os-specific/linux/cramfsswap/default.nix15
-rw-r--r--pkgs/os-specific/linux/crda/default.nix9
-rw-r--r--pkgs/os-specific/linux/cryptsetup/default.nix20
-rw-r--r--pkgs/os-specific/linux/deepin-anything/default.nix22
-rw-r--r--pkgs/os-specific/linux/displaylink/default.nix8
-rw-r--r--pkgs/os-specific/linux/e1000e/default.nix7
-rw-r--r--pkgs/os-specific/linux/earlyoom/default.nix4
-rw-r--r--pkgs/os-specific/linux/ell/default.nix4
-rw-r--r--pkgs/os-specific/linux/evdi/default.nix9
-rw-r--r--pkgs/os-specific/linux/eventstat/default.nix4
-rw-r--r--pkgs/os-specific/linux/ffado/default.nix4
-rw-r--r--pkgs/os-specific/linux/firejail/default.nix17
-rw-r--r--pkgs/os-specific/linux/firmware/fwupd/default.nix9
-rw-r--r--pkgs/os-specific/linux/fnotifystat/default.nix4
-rw-r--r--pkgs/os-specific/linux/forkstat/default.nix4
-rw-r--r--pkgs/os-specific/linux/fscrypt/default.nix6
-rw-r--r--pkgs/os-specific/linux/fswebcam/default.nix4
-rw-r--r--pkgs/os-specific/linux/fuse/common.nix8
-rw-r--r--pkgs/os-specific/linux/fuse/default.nix4
-rw-r--r--pkgs/os-specific/linux/fwts/default.nix4
-rw-r--r--pkgs/os-specific/linux/gobi_loader/default.nix2
-rw-r--r--pkgs/os-specific/linux/guvcview/default.nix4
-rw-r--r--pkgs/os-specific/linux/hwdata/default.nix6
-rw-r--r--pkgs/os-specific/linux/ifmetric/default.nix36
-rw-r--r--pkgs/os-specific/linux/intel-compute-runtime/default.nix11
-rw-r--r--pkgs/os-specific/linux/intel-compute-runtime/etc-dir.patch15
-rw-r--r--pkgs/os-specific/linux/iproute/default.nix7
-rw-r--r--pkgs/os-specific/linux/iputils/default.nix27
-rw-r--r--pkgs/os-specific/linux/irqbalance/default.nix4
-rw-r--r--pkgs/os-specific/linux/iwd/default.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix5
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json26
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.7.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.8.nix (renamed from pkgs/os-specific/linux/kernel/linux-5.6.nix)4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-libre.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.4.nix41
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.6.nix41
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-zen.nix23
-rw-r--r--pkgs/os-specific/linux/kernel/manual-config.nix4
-rwxr-xr-xpkgs/os-specific/linux/kernel/update-rt.sh77
-rwxr-xr-xpkgs/os-specific/linux/kernel/update.sh3
-rw-r--r--pkgs/os-specific/linux/keyutils/default.nix5
-rw-r--r--pkgs/os-specific/linux/klibc/default.nix4
-rw-r--r--pkgs/os-specific/linux/kmod/default.nix2
-rw-r--r--pkgs/os-specific/linux/kmod/no-name-field.patch24
-rw-r--r--pkgs/os-specific/linux/kmscon/default.nix43
-rw-r--r--pkgs/os-specific/linux/kmscon/kmscon-8-glibc-2.26.patch25
-rw-r--r--pkgs/os-specific/linux/libbpf/default.nix10
-rw-r--r--pkgs/os-specific/linux/libfabric/default.nix4
-rw-r--r--pkgs/os-specific/linux/linuxptp/default.nix4
-rw-r--r--pkgs/os-specific/linux/lvm2/default.nix125
-rw-r--r--pkgs/os-specific/linux/lvm2/default.upstream4
-rw-r--r--pkgs/os-specific/linux/lxc/default.nix4
-rw-r--r--pkgs/os-specific/linux/lxcfs/default.nix10
-rw-r--r--pkgs/os-specific/linux/microcode/amd.nix2
-rw-r--r--pkgs/os-specific/linux/multipath-tools/default.nix7
-rw-r--r--pkgs/os-specific/linux/multipath-tools/json-c-0.14.patch21
-rw-r--r--pkgs/os-specific/linux/musl/default.nix4
-rw-r--r--pkgs/os-specific/linux/nftables/default.nix4
-rw-r--r--pkgs/os-specific/linux/numworks-udev-rules/50-numworks-calculator.rules2
-rw-r--r--pkgs/os-specific/linux/numworks-udev-rules/default.nix21
-rwxr-xr-xpkgs/os-specific/linux/numworks-udev-rules/update.sh3
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix15
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/generic.nix5
-rw-r--r--pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix58
-rw-r--r--pkgs/os-specific/linux/open-iscsi/default.nix4
-rw-r--r--pkgs/os-specific/linux/pam_p11/default.nix24
-rw-r--r--pkgs/os-specific/linux/pcm/default.nix4
-rw-r--r--pkgs/os-specific/linux/piper/default.nix4
-rw-r--r--pkgs/os-specific/linux/powerstat/default.nix4
-rw-r--r--pkgs/os-specific/linux/powertop/default.nix11
-rw-r--r--pkgs/os-specific/linux/powertop/fix-vertical-scrolling.patch13
-rw-r--r--pkgs/os-specific/linux/r8125/default.nix6
-rw-r--r--pkgs/os-specific/linux/rdma-core/default.nix4
-rw-r--r--pkgs/os-specific/linux/rfkill/default.nix20
-rw-r--r--pkgs/os-specific/linux/roccat-tools/default.nix3
-rw-r--r--pkgs/os-specific/linux/rtl8192eu/default.nix10
-rw-r--r--pkgs/os-specific/linux/rtl8821ce/default.nix6
-rw-r--r--pkgs/os-specific/linux/rtl8821cu/default.nix37
-rw-r--r--pkgs/os-specific/linux/rtlwifi_new/default.nix3
-rw-r--r--pkgs/os-specific/linux/sd-switch/default.nix26
-rw-r--r--pkgs/os-specific/linux/smemstat/default.nix4
-rw-r--r--pkgs/os-specific/linux/sysdig/default.nix4
-rw-r--r--pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch6
-rw-r--r--pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch6
-rw-r--r--pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch10
-rw-r--r--pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch107
-rw-r--r--pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch8
-rw-r--r--pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch48
-rw-r--r--pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch28
-rw-r--r--pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch8
-rw-r--r--pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch10
-rw-r--r--pkgs/os-specific/linux/systemd/0012-Install-default-configuration-into-out-share-factory.patch71
-rw-r--r--pkgs/os-specific/linux/systemd/0013-inherit-systemd-environment-when-calling-generators.patch8
-rw-r--r--pkgs/os-specific/linux/systemd/0014-add-rootprefix-to-lookup-dir-paths.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0015-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch8
-rw-r--r--pkgs/os-specific/linux/systemd/0016-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch8
-rw-r--r--pkgs/os-specific/linux/systemd/0017-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0018-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/cryptsetup-generator.nix34
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix92
-rw-r--r--pkgs/os-specific/linux/sysvinit/default.nix4
-rw-r--r--pkgs/os-specific/linux/targetcli/default.nix6
-rw-r--r--pkgs/os-specific/linux/tiscamera/default.nix42
-rw-r--r--pkgs/os-specific/linux/turbostat/default.nix3
-rw-r--r--pkgs/os-specific/linux/util-linux/default.nix4
-rw-r--r--pkgs/os-specific/linux/v4l-utils/default.nix5
-rw-r--r--pkgs/os-specific/linux/wireguard/default.nix4
-rw-r--r--pkgs/os-specific/linux/xpadneo/default.nix43
-rw-r--r--pkgs/os-specific/linux/zenmonitor/default.nix4
-rw-r--r--pkgs/os-specific/linux/zfs/BACKPORT-Linux-5.8-compat-__vmalloc.patch154
-rw-r--r--pkgs/os-specific/linux/zfs/default.nix24
-rw-r--r--pkgs/os-specific/windows/mingw-w64/default.nix5
-rw-r--r--pkgs/os-specific/windows/mingw-w64/headers.nix2
-rw-r--r--pkgs/os-specific/windows/mingw-w64/osvi.patch14
-rw-r--r--pkgs/pkgs-lib/default.nix11
-rw-r--r--pkgs/pkgs-lib/formats.nix109
-rw-r--r--pkgs/pkgs-lib/tests/default.nix7
-rw-r--r--pkgs/pkgs-lib/tests/formats.nix157
-rw-r--r--pkgs/servers/atlassian/confluence.nix4
-rw-r--r--pkgs/servers/atlassian/jira.nix4
-rw-r--r--pkgs/servers/bazarr/default.nix6
-rw-r--r--pkgs/servers/blockbook/default.nix45
-rw-r--r--pkgs/servers/caddy/default.nix6
-rw-r--r--pkgs/servers/caddy/v2.nix9
-rw-r--r--pkgs/servers/cayley/default.nix2
-rw-r--r--pkgs/servers/clickhouse/default.nix46
-rw-r--r--pkgs/servers/computing/slurm/default.nix15
-rw-r--r--pkgs/servers/computing/slurm/pmix-configure.patch13
-rw-r--r--pkgs/servers/computing/storm/default.nix32
-rw-r--r--pkgs/servers/consul/default.nix3
-rw-r--r--pkgs/servers/demoit/default.nix12
-rw-r--r--pkgs/servers/dgraph/default.nix8
-rw-r--r--pkgs/servers/dict/default.nix19
-rw-r--r--pkgs/servers/dns/coredns/default.nix6
-rw-r--r--pkgs/servers/dns/dnsdist/default.nix4
-rw-r--r--pkgs/servers/dns/knot-dns/default.nix8
-rw-r--r--pkgs/servers/dns/ncdns/default.nix40
-rw-r--r--pkgs/servers/dns/ncdns/deps.nix309
-rw-r--r--pkgs/servers/dns/ncdns/fix-tpl-path.patch27
-rw-r--r--pkgs/servers/dns/nsd/default.nix4
-rw-r--r--pkgs/servers/dns/pdns-recursor/default.nix4
-rw-r--r--pkgs/servers/documize-community/default.nix2
-rw-r--r--pkgs/servers/echoip/default.nix4
-rw-r--r--pkgs/servers/etcd/3.4.nix10
-rw-r--r--pkgs/servers/etcd/default.nix9
-rw-r--r--pkgs/servers/freeradius/default.nix4
-rw-r--r--pkgs/servers/ftp/bftpd/default.nix6
-rw-r--r--pkgs/servers/ftp/pure-ftpd/default.nix15
-rw-r--r--pkgs/servers/gemini/molly-brown/default.nix26
-rw-r--r--pkgs/servers/gemini/molly-brown/deps.nix12
-rw-r--r--pkgs/servers/gobetween/default.nix27
-rw-r--r--pkgs/servers/gobetween/gomod.patch30
-rw-r--r--pkgs/servers/gonic/default.nix59
-rw-r--r--pkgs/servers/gonic/deps.nix795
-rw-r--r--pkgs/servers/gortr/default.nix9
-rw-r--r--pkgs/servers/gotify/default.nix3
-rw-r--r--pkgs/servers/gotify/source-sha.nix2
-rw-r--r--pkgs/servers/gotify/vendor-sha.nix2
-rw-r--r--pkgs/servers/gotify/version.nix2
-rw-r--r--pkgs/servers/gpsd/default.nix4
-rw-r--r--pkgs/servers/hasura/cli.nix7
-rw-r--r--pkgs/servers/hasura/default.nix63
-rw-r--r--pkgs/servers/hasura/dependent-map.nix13
-rw-r--r--pkgs/servers/hasura/dependent-sum.nix10
-rw-r--r--pkgs/servers/hasura/ghc-heap-view.nix18
-rw-r--r--pkgs/servers/hasura/immortal.nix17
-rw-r--r--pkgs/servers/hasura/network-uri.nix18
-rw-r--r--pkgs/servers/hasura/these.nix25
-rw-r--r--pkgs/servers/hitch/default.nix8
-rw-r--r--pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch48
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix578
-rw-r--r--pkgs/servers/home-assistant/default.nix21
-rw-r--r--pkgs/servers/home-assistant/frontend.nix4
-rwxr-xr-xpkgs/servers/home-assistant/parse-requirements.py11
-rw-r--r--pkgs/servers/home-assistant/relax-dependencies.patch21
-rw-r--r--pkgs/servers/home-assistant/test-timeout.patch13
-rw-r--r--pkgs/servers/http/apache-httpd/2.4.nix5
-rw-r--r--pkgs/servers/http/hiawatha/default.nix4
-rw-r--r--pkgs/servers/http/jetty/default.nix4
-rw-r--r--pkgs/servers/http/nginx/mainline.nix4
-rw-r--r--pkgs/servers/http/nginx/modules.nix139
-rw-r--r--pkgs/servers/http/pshs/default.nix4
-rw-r--r--pkgs/servers/http/unit/default.nix19
-rw-r--r--pkgs/servers/hydron/default.nix3
-rw-r--r--pkgs/servers/hylafaxplus/default.nix4
-rw-r--r--pkgs/servers/icingaweb2/default.nix4
-rw-r--r--pkgs/servers/imgproxy/default.nix8
-rw-r--r--pkgs/servers/irc/ngircd/default.nix7
-rw-r--r--pkgs/servers/irc/robustirc-bridge/default.nix29
-rw-r--r--pkgs/servers/jackett/default.nix44
-rw-r--r--pkgs/servers/jellyfin/10.5.x.nix61
-rw-r--r--pkgs/servers/jellyfin/default.nix11
-rw-r--r--pkgs/servers/jicofo/default.nix43
-rw-r--r--pkgs/servers/jicofo/logging.properties-journal10
-rw-r--r--pkgs/servers/jitsi-videobridge/default.nix47
-rw-r--r--pkgs/servers/jitsi-videobridge/logging.properties-journal7
-rw-r--r--pkgs/servers/kapow/default.nix4
-rw-r--r--pkgs/servers/limesurvey/default.nix10
-rw-r--r--pkgs/servers/livepeer/default.nix2
-rw-r--r--pkgs/servers/mail/dovecot/default.nix4
-rw-r--r--pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix4
-rw-r--r--pkgs/servers/mail/exim/default.nix22
-rw-r--r--pkgs/servers/mail/postfix/default.nix4
-rw-r--r--pkgs/servers/matrix-synapse/default.nix4
-rw-r--r--pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix1034
-rw-r--r--pkgs/servers/matrix-synapse/matrix-appservice-slack/package.json2
-rw-r--r--pkgs/servers/matterbridge/default.nix9
-rw-r--r--pkgs/servers/mattermost/default.nix6
-rw-r--r--pkgs/servers/mautrix-telegram/default.nix25
-rw-r--r--pkgs/servers/mautrix-whatsapp/default.nix20
-rw-r--r--pkgs/servers/meguca/default.nix52
-rw-r--r--pkgs/servers/meguca/server_deps.nix390
-rw-r--r--pkgs/servers/mesos-dns/default.nix2
-rw-r--r--pkgs/servers/metabase/default.nix4
-rw-r--r--pkgs/servers/minio/default.nix18
-rw-r--r--pkgs/servers/misc/navidrome/default.nix4
-rw-r--r--pkgs/servers/misc/oven-media-engine/default.nix69
-rw-r--r--pkgs/servers/monitoring/alertmanager-bot/default.nix1
-rw-r--r--pkgs/servers/monitoring/do-agent/default.nix12
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix12
-rw-r--r--pkgs/servers/monitoring/kapacitor/default.nix4
-rw-r--r--pkgs/servers/monitoring/loki/default.nix8
-rw-r--r--pkgs/servers/monitoring/mtail/default.nix5
-rw-r--r--pkgs/servers/monitoring/munin/default.nix4
-rw-r--r--pkgs/servers/monitoring/plugins/wmiplus/default.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix5
-rw-r--r--pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix1
-rw-r--r--pkgs/servers/monitoring/prometheus/default.nix8
-rw-r--r--pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix1
-rw-r--r--pkgs/servers/monitoring/prometheus/keylight-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/lnd-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/modemmanager-exporter.nix26
-rw-r--r--pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix1
-rw-r--r--pkgs/servers/monitoring/prometheus/postfix-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/process-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/varnish-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/webui-yarndeps.nix16
-rw-r--r--pkgs/servers/monitoring/sensu-go/default.nix10
-rw-r--r--pkgs/servers/monitoring/telegraf/default.nix21
-rw-r--r--pkgs/servers/monitoring/thanos/default.nix10
-rw-r--r--pkgs/servers/monitoring/timescale-prometheus/default.nix30
-rw-r--r--pkgs/servers/monitoring/zabbix/server.nix11
-rw-r--r--pkgs/servers/monitoring/zabbix/versions.nix10
-rw-r--r--pkgs/servers/monitoring/zabbix/web.nix2
-rw-r--r--pkgs/servers/mpd/clientlib.nix4
-rw-r--r--pkgs/servers/mpd/default.nix18
-rw-r--r--pkgs/servers/mqtt/mosquitto/default.nix4
-rw-r--r--pkgs/servers/nats-server/default.nix1
-rw-r--r--pkgs/servers/nats-streaming-server/default.nix1
-rw-r--r--pkgs/servers/nextcloud/default.nix8
-rw-r--r--pkgs/servers/nfs-ganesha/default.nix48
-rw-r--r--pkgs/servers/nfs-ganesha/sysstatedir.patch15
-rw-r--r--pkgs/servers/nosql/arangodb/default.nix12
-rw-r--r--pkgs/servers/nosql/influxdb/default.nix8
-rw-r--r--pkgs/servers/nosql/mongodb/asio-no-experimental-string-view-4-2.patch22
-rw-r--r--pkgs/servers/nosql/mongodb/forget-build-dependencies-4-2.patch36
-rw-r--r--pkgs/servers/nosql/mongodb/forget-build-dependencies.patch3
-rw-r--r--pkgs/servers/nosql/mongodb/mongodb.nix30
-rw-r--r--pkgs/servers/nosql/mongodb/v4_2.nix17
-rw-r--r--pkgs/servers/nosql/redis/default.nix4
-rw-r--r--pkgs/servers/nosql/rethinkdb/default.nix18
-rw-r--r--pkgs/servers/nosql/victoriametrics/default.nix6
-rw-r--r--pkgs/servers/oauth2_proxy/default.nix10
-rw-r--r--pkgs/servers/openafs/1.6/default.nix2
-rw-r--r--pkgs/servers/openafs/1.6/module.nix4
-rw-r--r--pkgs/servers/openafs/1.6/srcs.nix6
-rw-r--r--pkgs/servers/pinnwand/default.nix24
-rw-r--r--pkgs/servers/pinnwand/steck.nix31
-rw-r--r--pkgs/servers/plex/raw.nix4
-rw-r--r--pkgs/servers/pounce/default.nix9
-rw-r--r--pkgs/servers/pulseaudio/default.nix5
-rw-r--r--pkgs/servers/radarr/default.nix6
-rw-r--r--pkgs/servers/radicale/3.x.nix4
-rw-r--r--pkgs/servers/rippled/default.nix116
-rw-r--r--pkgs/servers/roon-server/default.nix101
-rw-r--r--pkgs/servers/roundcube/default.nix4
-rw-r--r--pkgs/servers/routinator/default.nix2
-rw-r--r--pkgs/servers/sabnzbd/default.nix24
-rw-r--r--pkgs/servers/samba/4.x.nix16
-rw-r--r--pkgs/servers/search/elasticsearch/plugins.nix17
-rw-r--r--pkgs/servers/search/groonga/default.nix6
-rw-r--r--pkgs/servers/search/solr/default.nix4
-rw-r--r--pkgs/servers/ser2net/default.nix4
-rw-r--r--pkgs/servers/sickbeard/sickgear.nix4
-rw-r--r--pkgs/servers/skydns/default.nix2
-rw-r--r--pkgs/servers/sonarr/default.nix2
-rw-r--r--pkgs/servers/sozu/default.nix2
-rw-r--r--pkgs/servers/sql/cockroachdb/default.nix4
-rw-r--r--pkgs/servers/sql/dolt/default.nix10
-rw-r--r--pkgs/servers/sql/mariadb/cmake-without-plugin-auth-pam.patch12
-rw-r--r--pkgs/servers/sql/mariadb/default.nix13
-rw-r--r--pkgs/servers/sql/monetdb/default.nix4
-rw-r--r--pkgs/servers/sql/postgresql/default.nix20
-rw-r--r--pkgs/servers/sql/postgresql/ext/age.nix65
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgroonga.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgrouting.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/plpgsql_check.nix29
-rw-r--r--pkgs/servers/sql/postgresql/ext/plv8.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/postgis.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/repmgr.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/smlar.nix30
-rw-r--r--pkgs/servers/sql/postgresql/ext/timescaledb.nix4
-rw-r--r--pkgs/servers/sql/postgresql/packages.nix6
-rw-r--r--pkgs/servers/squid/default.nix4
-rw-r--r--pkgs/servers/sslh/default.nix4
-rw-r--r--pkgs/servers/tacacsplus/default.nix2
-rw-r--r--pkgs/servers/tailscale/default.nix15
-rw-r--r--pkgs/servers/tegola/default.nix6
-rw-r--r--pkgs/servers/traefik/default.nix11
-rw-r--r--pkgs/servers/trezord/default.nix2
-rw-r--r--pkgs/servers/trickster/trickster.nix5
-rw-r--r--pkgs/servers/tvheadend/default.nix19
-rw-r--r--pkgs/servers/udpt/default.nix41
-rw-r--r--pkgs/servers/unifi/default.nix4
-rw-r--r--pkgs/servers/urserver/default.nix45
-rw-r--r--pkgs/servers/uwsgi/default.nix4
-rw-r--r--pkgs/servers/web-apps/cryptpad/bower-packages.nix22
-rw-r--r--pkgs/servers/web-apps/cryptpad/default.nix3
-rwxr-xr-xpkgs/servers/web-apps/cryptpad/generate.sh2
-rw-r--r--pkgs/servers/web-apps/cryptpad/node-packages-generated.nix124
-rw-r--r--pkgs/servers/web-apps/cryptpad/node-packages.json2
-rw-r--r--pkgs/servers/web-apps/cryptpad/node-packages.nix2
-rw-r--r--pkgs/servers/web-apps/dokuwiki/default.nix6
-rw-r--r--pkgs/servers/web-apps/jitsi-meet/default.nix34
-rw-r--r--pkgs/servers/web-apps/matomo/default.nix8
-rw-r--r--pkgs/servers/web-apps/mediawiki/default.nix4
-rw-r--r--pkgs/servers/web-apps/moodle/default.nix43
-rw-r--r--pkgs/servers/web-apps/moodle/moodle-utils.nix32
-rw-r--r--pkgs/servers/web-apps/rss-bridge/default.nix33
-rw-r--r--pkgs/servers/web-apps/searx/default.nix27
-rw-r--r--pkgs/servers/web-apps/shiori/default.nix4
-rw-r--r--pkgs/servers/web-apps/sogo/default.nix13
-rw-r--r--pkgs/servers/web-apps/wallabag/default.nix10
-rw-r--r--pkgs/servers/webmetro/default.nix1
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix47
-rw-r--r--pkgs/servers/xandikos/default.nix10
-rw-r--r--pkgs/servers/xmpp/biboumi/default.nix7
-rw-r--r--pkgs/servers/xmpp/prosody/default.nix4
-rw-r--r--pkgs/servers/zigbee2mqtt/default.nix35
-rw-r--r--pkgs/servers/zigbee2mqtt/node-packages.nix9625
-rw-r--r--pkgs/servers/zigbee2mqtt/node.nix17
-rwxr-xr-xpkgs/servers/zigbee2mqtt/update.sh30
-rw-r--r--pkgs/servers/zoneminder/default.nix6
-rw-r--r--pkgs/shells/bash/4.4.nix5
-rw-r--r--pkgs/shells/bash/bash-5.0-patches.nix1
-rw-r--r--pkgs/shells/bash/bash-completion/default.nix6
-rw-r--r--pkgs/shells/dash/0001-fix-dirent64-et-al-on-darwin.patch41
-rw-r--r--pkgs/shells/dash/default.nix11
-rw-r--r--pkgs/shells/elvish/default.nix17
-rw-r--r--pkgs/shells/fish/default.nix4
-rw-r--r--pkgs/shells/ion/default.nix1
-rw-r--r--pkgs/shells/liquidprompt/default.nix6
-rw-r--r--pkgs/shells/nushell/default.nix10
-rw-r--r--pkgs/shells/rssh/default.nix97
-rw-r--r--pkgs/shells/rssh/fix-config-path.patch12
-rw-r--r--pkgs/shells/xonsh/default.nix5
-rw-r--r--pkgs/shells/zsh/antibody/default.nix10
-rw-r--r--pkgs/shells/zsh/grml-zsh-config/default.nix4
-rw-r--r--pkgs/shells/zsh/oh-my-zsh/default.nix99
-rwxr-xr-xpkgs/shells/zsh/oh-my-zsh/update.sh1
-rw-r--r--pkgs/shells/zsh/pure-prompt/default.nix6
-rw-r--r--pkgs/shells/zsh/spaceship-prompt/default.nix4
-rw-r--r--pkgs/shells/zsh/zsh-completions/default.nix4
-rw-r--r--pkgs/shells/zsh/zsh-history/default.nix5
-rw-r--r--pkgs/shells/zsh/zsh-nix-shell/default.nix8
-rw-r--r--pkgs/shells/zsh/zsh-powerlevel10k/default.nix4
-rw-r--r--pkgs/shells/zsh/zsh-you-should-use/default.nix4
-rw-r--r--pkgs/stdenv/cross/default.nix5
-rw-r--r--pkgs/stdenv/darwin/default.nix20
-rw-r--r--pkgs/stdenv/darwin/make-bootstrap-tools.nix2
-rw-r--r--pkgs/stdenv/generic/default.nix7
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix37
-rw-r--r--pkgs/stdenv/generic/setup.sh11
-rw-r--r--pkgs/test/cc-wrapper/default.nix8
-rw-r--r--pkgs/test/cc-wrapper/nostdinc-main.c8
-rw-r--r--pkgs/test/cc-wrapper/stdio.h1
-rw-r--r--pkgs/tools/X11/alttab/default.nix4
-rw-r--r--pkgs/tools/X11/ckbcomp/default.nix4
-rw-r--r--pkgs/tools/X11/dex/default.nix13
-rw-r--r--pkgs/tools/X11/grobi/default.nix16
-rw-r--r--pkgs/tools/X11/nx-libs/default.nix4
-rw-r--r--pkgs/tools/X11/wmutils-libwm/default.nix25
-rw-r--r--pkgs/tools/X11/xidlehook/default.nix6
-rw-r--r--pkgs/tools/X11/xpra/default.nix5
-rw-r--r--pkgs/tools/X11/xpra/libfakeXinerama.nix3
-rw-r--r--pkgs/tools/admin/ansible/default.nix29
-rw-r--r--pkgs/tools/admin/aws-vault/default.nix11
-rw-r--r--pkgs/tools/admin/awscli/default.nix4
-rw-r--r--pkgs/tools/admin/awscli2/default.nix86
-rw-r--r--pkgs/tools/admin/awsweeper/default.nix2
-rw-r--r--pkgs/tools/admin/azure-cli/default.nix7
-rw-r--r--pkgs/tools/admin/azure-cli/python-packages.nix146
-rw-r--r--pkgs/tools/admin/berglas/default.nix4
-rw-r--r--pkgs/tools/admin/certbot/0001-Don-t-use-distutils.StrictVersion-that-cannot-handle.patch58
-rw-r--r--pkgs/tools/admin/certigo/default.nix4
-rw-r--r--pkgs/tools/admin/chamber/default.nix28
-rw-r--r--pkgs/tools/admin/clair/default.nix4
-rw-r--r--pkgs/tools/admin/docker-credential-gcr/default.nix4
-rw-r--r--pkgs/tools/admin/eksctl/default.nix13
-rw-r--r--pkgs/tools/admin/exoscale-cli/default.nix11
-rw-r--r--pkgs/tools/admin/exoscale-cli/deps.nix876
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/default.nix6
-rw-r--r--pkgs/tools/admin/iamy/default.nix6
-rw-r--r--pkgs/tools/admin/lego/default.nix13
-rw-r--r--pkgs/tools/admin/lexicon/default.nix4
-rw-r--r--pkgs/tools/admin/lxd/default.nix4
-rw-r--r--pkgs/tools/admin/mycli/default.nix13
-rw-r--r--pkgs/tools/admin/procs/default.nix6
-rw-r--r--pkgs/tools/admin/pulumi/data.nix50
-rwxr-xr-xpkgs/tools/admin/pulumi/update.sh46
-rw-r--r--pkgs/tools/admin/salt/default.nix33
-rw-r--r--pkgs/tools/admin/salt/fix-libcrypto-loading.patch15
-rw-r--r--pkgs/tools/admin/salt/pepper/default.nix13
-rw-r--r--pkgs/tools/admin/scaleway-cli/default.nix1
-rw-r--r--pkgs/tools/archivers/bomutils/default.nix25
-rw-r--r--pkgs/tools/archivers/gnutar/default.nix5
-rw-r--r--pkgs/tools/archivers/innoextract/default.nix4
-rw-r--r--pkgs/tools/archivers/maxcso/default.nix26
-rw-r--r--pkgs/tools/archivers/p7zip/default.nix2
-rw-r--r--pkgs/tools/archivers/undmg/default.nix11
-rw-r--r--pkgs/tools/archivers/undmg/setup-hook.sh2
-rw-r--r--pkgs/tools/archivers/wimlib/default.nix4
-rw-r--r--pkgs/tools/audio/abcmidi/default.nix4
-rw-r--r--pkgs/tools/audio/beets/compatibility-with-breaking-changes-to-the-ast-module.patch55
-rw-r--r--pkgs/tools/audio/beets/default.nix5
-rw-r--r--pkgs/tools/audio/beets/mutagen-1.43.patch17
-rw-r--r--pkgs/tools/audio/bpm-tools/default.nix19
-rw-r--r--pkgs/tools/audio/google-music-scripts/default.nix25
-rw-r--r--pkgs/tools/audio/liquidsoap/full.nix24
-rw-r--r--pkgs/tools/audio/mpd-mpris/default.nix4
-rw-r--r--pkgs/tools/audio/opl3bankeditor/default.nix4
-rw-r--r--pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix11
-rw-r--r--pkgs/tools/audio/playerctl/default.nix4
-rw-r--r--pkgs/tools/audio/qastools/default.nix4
-rw-r--r--pkgs/tools/backup/bup/default.nix4
-rw-r--r--pkgs/tools/backup/dar/default.nix24
-rw-r--r--pkgs/tools/backup/diskrsync/default.nix1
-rw-r--r--pkgs/tools/backup/grab-site/default.nix14
-rw-r--r--pkgs/tools/backup/kopia/default.nix43
-rw-r--r--pkgs/tools/backup/monolith/default.nix6
-rw-r--r--pkgs/tools/backup/percona-xtrabackup/2_4.nix6
-rw-r--r--pkgs/tools/backup/percona-xtrabackup/8_0.nix14
-rw-r--r--pkgs/tools/backup/percona-xtrabackup/default.nix45
-rw-r--r--pkgs/tools/backup/percona-xtrabackup/generic.nix58
-rw-r--r--pkgs/tools/backup/rdedup/default.nix1
-rw-r--r--pkgs/tools/backup/restic/default.nix9
-rw-r--r--pkgs/tools/backup/wal-g/default.nix18
-rw-r--r--pkgs/tools/backup/zfs-prune-snapshots/default.nix30
-rw-r--r--pkgs/tools/bluetooth/blueberry/default.nix96
-rw-r--r--pkgs/tools/cd-dvd/isolyzer/default.nix25
-rw-r--r--pkgs/tools/compression/bzip2/1_1.nix45
-rw-r--r--pkgs/tools/compression/bzip2/default.nix5
-rw-r--r--pkgs/tools/compression/gzip/default.nix5
-rw-r--r--pkgs/tools/compression/lzfse/default.nix14
-rw-r--r--pkgs/tools/compression/lzip/default.nix5
-rw-r--r--pkgs/tools/compression/pixz/default.nix4
-rw-r--r--pkgs/tools/compression/xz/default.nix5
-rw-r--r--pkgs/tools/compression/zstd/default.nix25
-rw-r--r--pkgs/tools/filesystems/avfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/bashmount/default.nix4
-rw-r--r--pkgs/tools/filesystems/btrfs-heatmap/default.nix46
-rw-r--r--pkgs/tools/filesystems/btrfs-progs/default.nix8
-rw-r--r--pkgs/tools/filesystems/ceph/0000-fix-SPDK-build-env.patch12
-rw-r--r--pkgs/tools/filesystems/ceph/default.nix56
-rw-r--r--pkgs/tools/filesystems/fatsort/default.nix4
-rw-r--r--pkgs/tools/filesystems/fuse-overlayfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/gcsfuse/default.nix6
-rw-r--r--pkgs/tools/filesystems/gocryptfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/idsk/default.nix4
-rw-r--r--pkgs/tools/filesystems/moosefs/default.nix4
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/blivet.nix2
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix4
-rw-r--r--pkgs/tools/filesystems/reiser4progs/default.nix4
-rw-r--r--pkgs/tools/filesystems/s3fs/default.nix4
-rw-r--r--pkgs/tools/filesystems/securefs/default.nix5
-rw-r--r--pkgs/tools/filesystems/squashfs-tools-ng/default.nix4
-rw-r--r--pkgs/tools/filesystems/wiimms-iso-tools/default.nix37
-rw-r--r--pkgs/tools/filesystems/wiimms-iso-tools/fix-paths.diff12
-rw-r--r--pkgs/tools/graphics/asymptote/default.nix4
-rw-r--r--pkgs/tools/graphics/dpic/default.nix20
-rw-r--r--pkgs/tools/graphics/fim/default.nix4
-rw-r--r--pkgs/tools/graphics/flam3/default.nix2
-rw-r--r--pkgs/tools/graphics/gifski/default.nix6
-rw-r--r--pkgs/tools/graphics/gnuplot/default.nix4
-rw-r--r--pkgs/tools/graphics/grim/default.nix4
-rw-r--r--pkgs/tools/graphics/gromit-mpx/default.nix7
-rw-r--r--pkgs/tools/graphics/lprof/keep-environment.patch2
-rw-r--r--pkgs/tools/graphics/netpbm/default.nix20
-rw-r--r--pkgs/tools/graphics/oxipng/default.nix7
-rw-r--r--pkgs/tools/graphics/svgbob/default.nix1
-rw-r--r--pkgs/tools/graphics/svgcleaner/default.nix1
-rw-r--r--pkgs/tools/graphics/swfdec/default.nix37
-rw-r--r--pkgs/tools/graphics/vips/default.nix4
-rw-r--r--pkgs/tools/graphics/viu/default.nix1
-rw-r--r--pkgs/tools/graphics/yafaray-core/default.nix6
-rw-r--r--pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix25
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix4
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix12
-rw-r--r--pkgs/tools/inputmethods/ibus/default.nix12
-rw-r--r--pkgs/tools/inputmethods/interception-tools/caps2esc.nix20
-rw-r--r--pkgs/tools/misc/3mux/default.nix10
-rw-r--r--pkgs/tools/misc/antimicro/default.nix27
-rw-r--r--pkgs/tools/misc/antimicroX/default.nix44
-rw-r--r--pkgs/tools/misc/bashcards/default.nix4
-rw-r--r--pkgs/tools/misc/bat/default.nix1
-rw-r--r--pkgs/tools/misc/bdf2psf/default.nix4
-rw-r--r--pkgs/tools/misc/bdf2sfd/default.nix5
-rw-r--r--pkgs/tools/misc/broot/default.nix56
-rw-r--r--pkgs/tools/misc/chezmoi/default.nix11
-rw-r--r--pkgs/tools/misc/clipman/default.nix4
-rw-r--r--pkgs/tools/misc/cloud-sql-proxy/default.nix1
-rw-r--r--pkgs/tools/misc/clpeak/default.nix25
-rw-r--r--pkgs/tools/misc/codebraid/default.nix6
-rw-r--r--pkgs/tools/misc/colorpicker/default.nix27
-rw-r--r--pkgs/tools/misc/coreboot-utils/default.nix15
-rw-r--r--pkgs/tools/misc/coreutils/default.nix5
-rw-r--r--pkgs/tools/misc/cpuminer-multi/default.nix4
-rw-r--r--pkgs/tools/misc/dashing/default.nix1
-rw-r--r--pkgs/tools/misc/debianutils/default.nix4
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix4
-rw-r--r--pkgs/tools/misc/dijo/default.nix21
-rw-r--r--pkgs/tools/misc/direnv/default.nix13
-rw-r--r--pkgs/tools/misc/diskonaut/default.nix12
-rw-r--r--pkgs/tools/misc/docui/default.nix4
-rw-r--r--pkgs/tools/misc/dua/default.nix7
-rw-r--r--pkgs/tools/misc/dust/default.nix7
-rw-r--r--pkgs/tools/misc/envsubst/default.nix1
-rw-r--r--pkgs/tools/misc/esphome/default.nix17
-rw-r--r--pkgs/tools/misc/etcher/default.nix4
-rw-r--r--pkgs/tools/misc/eva/default.nix6
-rw-r--r--pkgs/tools/misc/exa/default.nix2
-rw-r--r--pkgs/tools/misc/fd/default.nix1
-rw-r--r--pkgs/tools/misc/fdupes/default.nix9
-rw-r--r--pkgs/tools/misc/fet-sh/default.nix28
-rw-r--r--pkgs/tools/misc/ffsend/default.nix6
-rw-r--r--pkgs/tools/misc/file/default.nix6
-rw-r--r--pkgs/tools/misc/file/webassembly-format-fix.patch13
-rw-r--r--pkgs/tools/misc/findutils/default.nix5
-rw-r--r--pkgs/tools/misc/fluent-bit/default.nix4
-rw-r--r--pkgs/tools/misc/fontforge/default.nix13
-rw-r--r--pkgs/tools/misc/fpp/default.nix2
-rw-r--r--pkgs/tools/misc/fselect/default.nix1
-rw-r--r--pkgs/tools/misc/fsmon/default.nix4
-rw-r--r--pkgs/tools/misc/fx_cast/default.nix4
-rw-r--r--pkgs/tools/misc/fzf/default.nix15
-rw-r--r--pkgs/tools/misc/g933-utils/default.nix26
-rw-r--r--pkgs/tools/misc/gammy/default.nix38
-rw-r--r--pkgs/tools/misc/gawp/default.nix2
-rw-r--r--pkgs/tools/misc/geekbench/default.nix17
-rw-r--r--pkgs/tools/misc/git-town/default.nix13
-rw-r--r--pkgs/tools/misc/go.rice/default.nix27
-rw-r--r--pkgs/tools/misc/godu/default.nix24
-rw-r--r--pkgs/tools/misc/godu/go-mod.patch33
-rw-r--r--pkgs/tools/misc/gotify-cli/default.nix4
-rw-r--r--pkgs/tools/misc/graylog/default.nix4
-rw-r--r--pkgs/tools/misc/graylog/plugins.nix8
-rw-r--r--pkgs/tools/misc/gringo/default.nix4
-rw-r--r--pkgs/tools/misc/grub/2.0x.nix4
-rw-r--r--pkgs/tools/misc/hakuneko/default.nix3
-rw-r--r--pkgs/tools/misc/hashit/default.nix4
-rw-r--r--pkgs/tools/misc/heatseeker/default.nix2
-rw-r--r--pkgs/tools/misc/hebcal/default.nix4
-rw-r--r--pkgs/tools/misc/hyperfine/default.nix1
-rw-r--r--pkgs/tools/misc/ical2org/default.nix2
-rw-r--r--pkgs/tools/misc/jdiskreport/default.nix2
-rw-r--r--pkgs/tools/misc/jdupes/default.nix7
-rw-r--r--pkgs/tools/misc/kak-lsp/default.nix1
-rw-r--r--pkgs/tools/misc/kdecoration-viewer/default.nix28
-rw-r--r--pkgs/tools/misc/kepubify/default.nix10
-rw-r--r--pkgs/tools/misc/latex2html/default.nix4
-rw-r--r--pkgs/tools/misc/lesspipe/default.nix4
-rw-r--r--pkgs/tools/misc/lf/default.nix22
-rw-r--r--pkgs/tools/misc/libgen-cli/default.nix11
-rw-r--r--pkgs/tools/misc/licensor/default.nix1
-rw-r--r--pkgs/tools/misc/lnch/default.nix1
-rw-r--r--pkgs/tools/misc/lokalise2-cli/default.nix29
-rw-r--r--pkgs/tools/misc/lolcat/Gemfile.lock10
-rw-r--r--pkgs/tools/misc/lolcat/gemset.nix12
-rw-r--r--pkgs/tools/misc/loop/default.nix9
-rw-r--r--pkgs/tools/misc/lorri/default.nix35
-rw-r--r--pkgs/tools/misc/lottieconverter/default.nix33
-rw-r--r--pkgs/tools/misc/lsd/default.nix6
-rw-r--r--pkgs/tools/misc/man-db/default.nix4
-rw-r--r--pkgs/tools/misc/mbuffer/default.nix8
-rw-r--r--pkgs/tools/misc/mc/default.nix4
-rw-r--r--pkgs/tools/misc/mcfly/default.nix12
-rw-r--r--pkgs/tools/misc/miniserve/default.nix6
-rw-r--r--pkgs/tools/misc/mmake/default.nix1
-rw-r--r--pkgs/tools/misc/mprime/default.nix47
-rw-r--r--pkgs/tools/misc/mprime/makefile.patch41
-rw-r--r--pkgs/tools/misc/mstflint/default.nix4
-rw-r--r--pkgs/tools/misc/multitail/default.nix4
-rw-r--r--pkgs/tools/misc/mutagen/default.nix8
-rw-r--r--pkgs/tools/misc/neo-cowsay/default.nix4
-rw-r--r--pkgs/tools/misc/neofetch/default.nix4
-rw-r--r--pkgs/tools/misc/nix-direnv/default.nix4
-rw-r--r--pkgs/tools/misc/noti/default.nix1
-rw-r--r--pkgs/tools/misc/oppai-ng/default.nix4
-rw-r--r--pkgs/tools/misc/osm2pgsql/default.nix4
-rw-r--r--pkgs/tools/misc/ostree/default.nix25
-rw-r--r--pkgs/tools/misc/ostree/fix-test-paths.patch29
-rw-r--r--pkgs/tools/misc/otfcc/default.nix16
-rw-r--r--pkgs/tools/misc/otfcc/fix-aarch64.patch22
-rw-r--r--pkgs/tools/misc/otfcc/move-makefiles.patch13
-rw-r--r--pkgs/tools/misc/page/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-plantuml-filter/default.nix26
-rw-r--r--pkgs/tools/misc/parallel/default.nix4
-rw-r--r--pkgs/tools/misc/pg_flame/default.nix4
-rw-r--r--pkgs/tools/misc/pgcenter/default.nix4
-rw-r--r--pkgs/tools/misc/pgmetrics/default.nix8
-rw-r--r--pkgs/tools/misc/phoronix-test-suite/default.nix4
-rw-r--r--pkgs/tools/misc/phraseapp-client/default.nix1
-rw-r--r--pkgs/tools/misc/pistol/default.nix12
-rw-r--r--pkgs/tools/misc/plantuml/default.nix4
-rw-r--r--pkgs/tools/misc/powerline-go/default.nix4
-rw-r--r--pkgs/tools/misc/pspg/default.nix4
-rw-r--r--pkgs/tools/misc/psrecord/default.nix4
-rw-r--r--pkgs/tools/misc/pubs/default.nix27
-rw-r--r--pkgs/tools/misc/qt5ct/default.nix4
-rw-r--r--pkgs/tools/misc/rargs/default.nix24
-rw-r--r--pkgs/tools/misc/remind/default.nix10
-rw-r--r--pkgs/tools/misc/rockbox-utility/default.nix14
-rw-r--r--pkgs/tools/misc/routino/default.nix18
-rw-r--r--pkgs/tools/misc/rpm-ostree/default.nix4
-rw-r--r--pkgs/tools/misc/sd-mux-ctrl/default.nix28
-rw-r--r--pkgs/tools/misc/shell-hist/default.nix1
-rw-r--r--pkgs/tools/misc/silicon/default.nix1
-rw-r--r--pkgs/tools/misc/skim/default.nix17
-rw-r--r--pkgs/tools/misc/snapper/default.nix4
-rw-r--r--pkgs/tools/misc/somafm-cli/default.nix33
-rw-r--r--pkgs/tools/misc/spigot/default.nix36
-rw-r--r--pkgs/tools/misc/starship/default.nix7
-rw-r--r--pkgs/tools/misc/staruml/default.nix4
-rw-r--r--pkgs/tools/misc/systrayhelper/default.nix1
-rw-r--r--pkgs/tools/misc/tealdeer/default.nix13
-rw-r--r--pkgs/tools/misc/teleconsole/default.nix1
-rw-r--r--pkgs/tools/misc/tewisay/default.nix1
-rw-r--r--pkgs/tools/misc/thin-provisioning-tools/default.nix22
-rw-r--r--pkgs/tools/misc/tmuxp/default.nix4
-rw-r--r--pkgs/tools/misc/topgrade/default.nix7
-rw-r--r--pkgs/tools/misc/umlet/default.nix2
-rw-r--r--pkgs/tools/misc/up/default.nix4
-rw-r--r--pkgs/tools/misc/upower-notify/default.nix2
-rw-r--r--pkgs/tools/misc/vector/default.nix1
-rw-r--r--pkgs/tools/misc/void/default.nix1
-rw-r--r--pkgs/tools/misc/vttest/default.nix4
-rw-r--r--pkgs/tools/misc/watchexec/default.nix6
-rw-r--r--pkgs/tools/misc/websocat/default.nix7
-rw-r--r--pkgs/tools/misc/wlr-randr/default.nix6
-rw-r--r--pkgs/tools/misc/wob/default.nix4
-rw-r--r--pkgs/tools/misc/wootility/default.nix21
-rw-r--r--pkgs/tools/misc/xvfb-run/default.nix2
-rw-r--r--pkgs/tools/misc/xxv/default.nix1
-rw-r--r--pkgs/tools/misc/you-get/default.nix4
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/misc/yubikey-manager-qt/default.nix4
-rw-r--r--pkgs/tools/misc/yubikey-personalization/default.nix11
-rw-r--r--pkgs/tools/misc/zabbixctl/default.nix1
-rw-r--r--pkgs/tools/misc/zoxide/default.nix22
-rw-r--r--pkgs/tools/networking/amass/default.nix8
-rw-r--r--pkgs/tools/networking/assh/default.nix31
-rw-r--r--pkgs/tools/networking/asynk/default.nix47
-rw-r--r--pkgs/tools/networking/bandwhich/default.nix6
-rw-r--r--pkgs/tools/networking/bgpq4/default.nix25
-rw-r--r--pkgs/tools/networking/bukubrow/default.nix1
-rw-r--r--pkgs/tools/networking/cassowary/default.nix4
-rw-r--r--pkgs/tools/networking/chrony/default.nix4
-rw-r--r--pkgs/tools/networking/circus/default.nix13
-rw-r--r--pkgs/tools/networking/clash/default.nix12
-rw-r--r--pkgs/tools/networking/connman/connman-ncurses/default.nix13
-rw-r--r--pkgs/tools/networking/corerad/default.nix8
-rw-r--r--pkgs/tools/networking/croc/default.nix8
-rw-r--r--pkgs/tools/networking/curl/default.nix9
-rw-r--r--pkgs/tools/networking/curlie/default.nix4
-rw-r--r--pkgs/tools/networking/dd-agent/datadog-agent.nix3
-rw-r--r--pkgs/tools/networking/dd-agent/datadog-process-agent.nix1
-rw-r--r--pkgs/tools/networking/dnscrypt-proxy2/default.nix2
-rw-r--r--pkgs/tools/networking/dnsmasq/default.nix4
-rw-r--r--pkgs/tools/networking/dnsproxy/default.nix9
-rw-r--r--pkgs/tools/networking/dsniff/default.nix2
-rw-r--r--pkgs/tools/networking/eternal-terminal/default.nix4
-rw-r--r--pkgs/tools/networking/findomain/default.nix7
-rw-r--r--pkgs/tools/networking/fping/default.nix4
-rw-r--r--pkgs/tools/networking/frp/default.nix5
-rw-r--r--pkgs/tools/networking/go-shadowsocks2/default.nix2
-rw-r--r--pkgs/tools/networking/goreplay/default.nix26
-rw-r--r--pkgs/tools/networking/grpcui/default.nix2
-rw-r--r--pkgs/tools/networking/haproxy/default.nix4
-rw-r--r--pkgs/tools/networking/hey/default.nix4
-rw-r--r--pkgs/tools/networking/hping/default.nix55
-rw-r--r--pkgs/tools/networking/i2p/default.nix10
-rw-r--r--pkgs/tools/networking/i2p/i2p.patch2
-rw-r--r--pkgs/tools/networking/i2pd/default.nix4
-rw-r--r--pkgs/tools/networking/isync/default.nix4
-rw-r--r--pkgs/tools/networking/keepalived/default.nix4
-rw-r--r--pkgs/tools/networking/lftp/default.nix4
-rw-r--r--pkgs/tools/networking/linkchecker/default.nix26
-rw-r--r--pkgs/tools/networking/mailutils/default.nix2
-rw-r--r--pkgs/tools/networking/minio-client/default.nix16
-rw-r--r--pkgs/tools/networking/mozwire/default.nix24
-rw-r--r--pkgs/tools/networking/mu/default.nix4
-rw-r--r--pkgs/tools/networking/nebula/default.nix5
-rw-r--r--pkgs/tools/networking/netifd/default.nix6
-rw-r--r--pkgs/tools/networking/network-manager/default.nix9
-rw-r--r--pkgs/tools/networking/network-manager/fix-install-paths.patch4
-rw-r--r--pkgs/tools/networking/network-manager/fix-paths.patch55
-rw-r--r--pkgs/tools/networking/network-manager/iodine/default.nix4
-rw-r--r--pkgs/tools/networking/network-manager/libnma/default.nix4
-rw-r--r--pkgs/tools/networking/network-manager/vpnc/default.nix4
-rw-r--r--pkgs/tools/networking/nfdump/default.nix4
-rw-r--r--pkgs/tools/networking/ngrok-2/default.nix4
-rw-r--r--pkgs/tools/networking/ntp/default.nix4
-rw-r--r--pkgs/tools/networking/obfs4/default.nix4
-rw-r--r--pkgs/tools/networking/oneshot/default.nix26
-rw-r--r--pkgs/tools/networking/openresolv/default.nix4
-rw-r--r--pkgs/tools/networking/openssh/default.nix29
-rw-r--r--pkgs/tools/networking/p2p/gtk-gnutella/default.nix4
-rw-r--r--pkgs/tools/networking/pixiecore/default.nix5
-rw-r--r--pkgs/tools/networking/pmacct/default.nix6
-rw-r--r--pkgs/tools/networking/radsecproxy/default.nix4
-rw-r--r--pkgs/tools/networking/s3gof3r/default.nix2
-rw-r--r--pkgs/tools/networking/shadowfox/default.nix7
-rw-r--r--pkgs/tools/networking/shadowsocks-rust/default.nix6
-rw-r--r--pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix23
-rw-r--r--pkgs/tools/networking/siege/default.nix4
-rw-r--r--pkgs/tools/networking/slirp4netns/default.nix6
-rw-r--r--pkgs/tools/networking/sniffglue/default.nix6
-rw-r--r--pkgs/tools/networking/ssh-ident/default.nix6
-rw-r--r--pkgs/tools/networking/tayga/default.nix2
-rw-r--r--pkgs/tools/networking/tdns-cli/default.nix2
-rw-r--r--pkgs/tools/networking/telepresence/default.nix35
-rw-r--r--pkgs/tools/networking/tendermint/default.nix12
-rw-r--r--pkgs/tools/networking/termshark/default.nix4
-rw-r--r--pkgs/tools/networking/toss/default.nix20
-rw-r--r--pkgs/tools/networking/tridactyl-native/default.nix4
-rw-r--r--pkgs/tools/networking/tunnelto/default.nix6
-rw-r--r--pkgs/tools/networking/unbound/default.nix13
-rw-r--r--pkgs/tools/networking/urlwatch/default.nix4
-rw-r--r--pkgs/tools/networking/v2ray/default.nix14
-rw-r--r--pkgs/tools/networking/v2ray/generic.nix8
-rwxr-xr-xpkgs/tools/networking/v2ray/update.sh28
-rw-r--r--pkgs/tools/networking/vpn-slice/default.nix25
-rw-r--r--pkgs/tools/networking/wireguard-tools/default.nix4
-rw-r--r--pkgs/tools/networking/wormhole-william/default.nix25
-rw-r--r--pkgs/tools/networking/wstunnel/default.nix18
-rw-r--r--pkgs/tools/networking/yggdrasil/default.nix5
-rw-r--r--pkgs/tools/networking/ytcc/default.nix4
-rw-r--r--pkgs/tools/networking/zssh/default.nix4
-rw-r--r--pkgs/tools/nix/nixpkgs-fmt/default.nix8
-rw-r--r--pkgs/tools/nix/rnix-hashes/default.nix21
-rw-r--r--pkgs/tools/package-management/apk-tools/default.nix36
-rw-r--r--pkgs/tools/package-management/cargo-about/default.nix1
-rw-r--r--pkgs/tools/package-management/cargo-audit/default.nix1
-rw-r--r--pkgs/tools/package-management/cargo-deb/default.nix1
-rw-r--r--pkgs/tools/package-management/cargo-deps/default.nix1
-rw-r--r--pkgs/tools/package-management/cargo-edit/default.nix1
-rw-r--r--pkgs/tools/package-management/cargo-graph/default.nix1
-rw-r--r--pkgs/tools/package-management/cargo-license/default.nix1
-rw-r--r--pkgs/tools/package-management/cargo-outdated/default.nix7
-rw-r--r--pkgs/tools/package-management/cargo-release/default.nix12
-rw-r--r--pkgs/tools/package-management/cargo-tree/default.nix25
-rw-r--r--pkgs/tools/package-management/cargo-update/0001-Generate-lockfile-for-cargo-update-v4.1.1.patch (renamed from pkgs/tools/package-management/cargo-update/0001-Generate-lockfile-for-cargo-update-v3.0.0.patch)130
-rw-r--r--pkgs/tools/package-management/cargo-update/default.nix35
-rw-r--r--pkgs/tools/package-management/clib/default.nix4
-rw-r--r--pkgs/tools/package-management/dpkg/default.nix6
-rw-r--r--pkgs/tools/package-management/emplace/default.nix6
-rw-r--r--pkgs/tools/package-management/librepo/default.nix4
-rw-r--r--pkgs/tools/package-management/licensee/Gemfile2
-rw-r--r--pkgs/tools/package-management/licensee/Gemfile.lock38
-rw-r--r--pkgs/tools/package-management/licensee/default.nix17
-rw-r--r--pkgs/tools/package-management/licensee/gemset.nix139
-rw-r--r--pkgs/tools/package-management/mynewt-newt/default.nix4
-rw-r--r--pkgs/tools/package-management/nfpm/default.nix10
-rw-r--r--pkgs/tools/package-management/nix-doc/default.nix29
-rw-r--r--pkgs/tools/package-management/nix-du/default.nix6
-rw-r--r--pkgs/tools/package-management/nix-index/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-prefetch/default.nix10
-rw-r--r--pkgs/tools/package-management/nix-simple-deploy/default.nix1
-rw-r--r--pkgs/tools/package-management/nix-template/default.nix23
-rw-r--r--pkgs/tools/package-management/nix/default.nix33
-rw-r--r--pkgs/tools/package-management/nixpkgs-review/default.nix4
-rw-r--r--pkgs/tools/package-management/opkg/default.nix4
-rw-r--r--pkgs/tools/package-management/pacman/default.nix4
-rw-r--r--pkgs/tools/security/1password-gui/default.nix70
-rwxr-xr-xpkgs/tools/security/1password-gui/update.sh5
-rw-r--r--pkgs/tools/security/2fa/default.nix1
-rw-r--r--pkgs/tools/security/afl/default.nix4
-rw-r--r--pkgs/tools/security/age/default.nix3
-rw-r--r--pkgs/tools/security/aws-okta/default.nix5
-rw-r--r--pkgs/tools/security/b3sum/add-cargo-lock.patch534
-rw-r--r--pkgs/tools/security/b3sum/default.nix6
-rw-r--r--pkgs/tools/security/bettercap/default.nix11
-rw-r--r--pkgs/tools/security/bitwarden/default.nix7
-rw-r--r--pkgs/tools/security/bitwarden_rs/default.nix11
-rw-r--r--pkgs/tools/security/bitwarden_rs/vault.nix8
-rw-r--r--pkgs/tools/security/browserpass/default.nix5
-rw-r--r--pkgs/tools/security/certstrap/default.nix1
-rw-r--r--pkgs/tools/security/cfssl/default.nix49
-rw-r--r--pkgs/tools/security/clamav/default.nix4
-rw-r--r--pkgs/tools/security/creddump/default.nix36
-rw-r--r--pkgs/tools/security/doona/default.nix36
-rw-r--r--pkgs/tools/security/doppler/default.nix28
-rw-r--r--pkgs/tools/security/eid-mw/default.nix18
-rw-r--r--pkgs/tools/security/encryptr/default.nix4
-rw-r--r--pkgs/tools/security/fail2ban/default.nix2
-rw-r--r--pkgs/tools/security/gen-oath-safe/default.nix3
-rw-r--r--pkgs/tools/security/genpass/default.nix6
-rw-r--r--pkgs/tools/security/gnupg/20.nix66
-rw-r--r--pkgs/tools/security/gnupg/22.nix10
-rw-r--r--pkgs/tools/security/gobuster/default.nix4
-rw-r--r--pkgs/tools/security/gopass/default.nix45
-rw-r--r--pkgs/tools/security/hash_extender/default.nix2
-rw-r--r--pkgs/tools/security/hashcat/default.nix4
-rw-r--r--pkgs/tools/security/hcxdumptool/default.nix4
-rw-r--r--pkgs/tools/security/hologram/default.nix1
-rw-r--r--pkgs/tools/security/honggfuzz/default.nix51
-rw-r--r--pkgs/tools/security/ibm-sw-tpm2/default.nix4
-rw-r--r--pkgs/tools/security/jd-gui/default.nix6
-rw-r--r--pkgs/tools/security/john/default.nix5
-rw-r--r--pkgs/tools/security/jwt-cli/default.nix1
-rw-r--r--pkgs/tools/security/kbs2/default.nix8
-rw-r--r--pkgs/tools/security/keybase/gui.nix11
-rw-r--r--pkgs/tools/security/minica/default.nix34
-rw-r--r--pkgs/tools/security/minisign/default.nix8
-rw-r--r--pkgs/tools/security/nsjail/default.nix16
-rw-r--r--pkgs/tools/security/pcsclite/default.nix5
-rw-r--r--pkgs/tools/security/pcsctools/default.nix6
-rw-r--r--pkgs/tools/security/rhash/default.nix4
-rw-r--r--pkgs/tools/security/rustscan/default.nix37
-rw-r--r--pkgs/tools/security/saml2aws/default.nix22
-rw-r--r--pkgs/tools/security/sequoia/default.nix11
-rw-r--r--pkgs/tools/security/signing-party/default.nix9
-rw-r--r--pkgs/tools/security/softhsm/default.nix21
-rw-r--r--pkgs/tools/security/sops/default.nix10
-rw-r--r--pkgs/tools/security/ssh-audit/default.nix69
-rw-r--r--pkgs/tools/security/sshguard/default.nix4
-rw-r--r--pkgs/tools/security/sshuttle/default.nix28
-rw-r--r--pkgs/tools/security/thc-hydra/default.nix4
-rw-r--r--pkgs/tools/security/tor/default.nix35
-rw-r--r--pkgs/tools/security/tor/torsocks.nix11
-rw-r--r--pkgs/tools/security/vault/default.nix9
-rw-r--r--pkgs/tools/security/vault/vault-bin.nix12
-rw-r--r--pkgs/tools/security/verifpal/default.nix2
-rw-r--r--pkgs/tools/security/vulnix/default.nix10
-rw-r--r--pkgs/tools/security/yubikey-agent/default.nix56
-rw-r--r--pkgs/tools/security/yubikey-agent/use-piv-go-75.patch22
-rw-r--r--pkgs/tools/security/yubikey-agent/yubikey-agent.service35
-rw-r--r--pkgs/tools/security/zmap/cmake-json-0.14-fix.patch13
-rw-r--r--pkgs/tools/security/zmap/default.nix5
-rw-r--r--pkgs/tools/system/bpytop/default.nix45
-rw-r--r--pkgs/tools/system/cm-rgb/default.nix63
-rw-r--r--pkgs/tools/system/colorls/Gemfile.lock2
-rw-r--r--pkgs/tools/system/colorls/gemset.nix4
-rw-r--r--pkgs/tools/system/ctop/default.nix4
-rw-r--r--pkgs/tools/system/datefudge/default.nix18
-rw-r--r--pkgs/tools/system/ddrescueview/default.nix23
-rw-r--r--pkgs/tools/system/disk-filltest/default.nix4
-rw-r--r--pkgs/tools/system/efibootmgr/default.nix2
-rw-r--r--pkgs/tools/system/facter/default.nix14
-rw-r--r--pkgs/tools/system/fio/default.nix4
-rw-r--r--pkgs/tools/system/gotop/default.nix9
-rw-r--r--pkgs/tools/system/htop/default.nix25
-rw-r--r--pkgs/tools/system/inxi/default.nix4
-rw-r--r--pkgs/tools/system/jump/default.nix5
-rw-r--r--pkgs/tools/system/kmon/default.nix6
-rw-r--r--pkgs/tools/system/logrotate/default.nix4
-rw-r--r--pkgs/tools/system/monit/default.nix4
-rw-r--r--pkgs/tools/system/netdata/default.nix8
-rw-r--r--pkgs/tools/system/netdata/go.d.plugin.nix8
-rw-r--r--pkgs/tools/system/pciutils/default.nix6
-rw-r--r--pkgs/tools/system/plan9port/builder.sh1
-rw-r--r--pkgs/tools/system/plan9port/default.nix2
-rw-r--r--pkgs/tools/system/psensor/default.nix4
-rw-r--r--pkgs/tools/system/rocm-smi/default.nix30
-rw-r--r--pkgs/tools/system/rsyslog/default.nix4
-rw-r--r--pkgs/tools/system/s-tui/default.nix4
-rw-r--r--pkgs/tools/system/smartmontools/default.nix5
-rw-r--r--pkgs/tools/system/storebrowse/default.nix44
-rw-r--r--pkgs/tools/system/stress-ng/default.nix4
-rw-r--r--pkgs/tools/system/syslog-ng/default.nix4
-rw-r--r--pkgs/tools/system/thermald/default.nix4
-rw-r--r--pkgs/tools/system/tre-command/default.nix15
-rw-r--r--pkgs/tools/system/zenith/default.nix6
-rw-r--r--pkgs/tools/text/aha/default.nix6
-rw-r--r--pkgs/tools/text/amber/default.nix1
-rw-r--r--pkgs/tools/text/coloursum/default.nix1
-rw-r--r--pkgs/tools/text/diffr/default.nix1
-rw-r--r--pkgs/tools/text/diffutils/default.nix5
-rw-r--r--pkgs/tools/text/fanficfare/default.nix4
-rw-r--r--pkgs/tools/text/fastmod/default.nix1
-rw-r--r--pkgs/tools/text/gjo/default.nix4
-rw-r--r--pkgs/tools/text/glogg/default.nix27
-rw-r--r--pkgs/tools/text/gnugrep/default.nix7
-rw-r--r--pkgs/tools/text/hyx/default.nix23
-rw-r--r--pkgs/tools/text/hyx/memstream.patch31
-rw-r--r--pkgs/tools/text/hyx/no-wall-by-default.patch11
-rw-r--r--pkgs/tools/text/kdiff3/default.nix4
-rw-r--r--pkgs/tools/text/mdbook/default.nix7
-rw-r--r--pkgs/tools/text/mdcat/default.nix16
-rw-r--r--pkgs/tools/text/miller/default.nix4
-rw-r--r--pkgs/tools/text/ocrmypdf/0001-Make-compatible-with-pdfminer.six-version-20200720.patch52
-rw-r--r--pkgs/tools/text/ocrmypdf/default.nix27
-rw-r--r--pkgs/tools/text/platinum-searcher/default.nix1
-rw-r--r--pkgs/tools/text/podiff/default.nix6
-rw-r--r--pkgs/tools/text/poedit/default.nix4
-rw-r--r--pkgs/tools/text/recode/default.nix4
-rw-r--r--pkgs/tools/text/ripgrep-all/default.nix1
-rw-r--r--pkgs/tools/text/ripgrep/default.nix1
-rw-r--r--pkgs/tools/text/ruplacer/default.nix1
-rw-r--r--pkgs/tools/text/sd/default.nix7
-rw-r--r--pkgs/tools/text/shfmt/default.nix10
-rw-r--r--pkgs/tools/text/sift/default.nix1
-rw-r--r--pkgs/tools/text/smu/default.nix2
-rw-r--r--pkgs/tools/text/snippetpixie/default.nix11
-rw-r--r--pkgs/tools/text/ugrep/default.nix23
-rw-r--r--pkgs/tools/text/vale/default.nix18
-rw-r--r--pkgs/tools/text/vgrep/default.nix24
-rw-r--r--pkgs/tools/text/wgetpaste/default.nix4
-rw-r--r--pkgs/tools/text/xml/html-xml-utils/default.nix4
-rw-r--r--pkgs/tools/text/xsv/default.nix1
-rw-r--r--pkgs/tools/typesetting/asciidoctorj/default.nix4
-rw-r--r--pkgs/tools/typesetting/lowdown/default.nix30
-rw-r--r--pkgs/tools/typesetting/pdf2djvu/default.nix4
-rw-r--r--pkgs/tools/typesetting/satysfi/default.nix32
-rw-r--r--pkgs/tools/typesetting/sile/default.nix95
-rw-r--r--pkgs/tools/typesetting/tectonic/default.nix1
-rw-r--r--pkgs/tools/typesetting/tex/dblatex/default.nix6
-rw-r--r--pkgs/tools/typesetting/tex/texlive/default.nix7
-rw-r--r--pkgs/tools/typesetting/tikzit/default.nix6
-rw-r--r--pkgs/tools/video/rav1e/default.nix13
-rw-r--r--pkgs/tools/video/untrunc-anthwlock/default.nix36
-rw-r--r--pkgs/tools/video/vcsi/default.nix28
-rw-r--r--pkgs/tools/virtualization/alpine-make-vm-image/default.nix36
-rw-r--r--pkgs/tools/virtualization/cri-tools/default.nix6
-rw-r--r--pkgs/tools/virtualization/govc/default.nix6
-rw-r--r--pkgs/tools/virtualization/marathonctl/default.nix1
-rw-r--r--pkgs/tools/wayland/wayland-utils/default.nix30
-rw-r--r--pkgs/top-level/agda-packages.nix2
-rw-r--r--pkgs/top-level/aliases.nix93
-rw-r--r--pkgs/top-level/all-packages.nix1731
-rw-r--r--pkgs/top-level/beam-packages.nix81
-rw-r--r--pkgs/top-level/coq-packages.nix5
-rw-r--r--pkgs/top-level/darwin-packages.nix6
-rw-r--r--pkgs/top-level/haskell-packages.nix61
-rw-r--r--pkgs/top-level/make-tarball.nix2
-rw-r--r--pkgs/top-level/metrics.nix1
-rw-r--r--pkgs/top-level/ocaml-packages.nix50
-rw-r--r--pkgs/top-level/perl-packages.nix1808
-rw-r--r--pkgs/top-level/php-packages.nix15
-rw-r--r--pkgs/top-level/python-packages.nix8027
-rw-r--r--pkgs/top-level/release-cross.nix4
-rw-r--r--pkgs/top-level/release-small.nix2
-rw-r--r--pkgs/top-level/release.nix2
-rw-r--r--pkgs/top-level/stage.nix1
-rw-r--r--pkgs/top-level/static.nix31
5295 files changed, 135980 insertions, 80085 deletions
diff --git a/.editorconfig b/.editorconfig
index a4a872ed5c8..43970edebe5 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -43,15 +43,50 @@ indent_style = space
 # Disable file types or individual files
 # some of these files may be auto-generated and/or require significant changes
 
+[*.{c,h}]
+insert_final_newline = unset
+trim_trailing_whitespace = unset
+
+[*.{key,ovpn}]
+insert_final_newline = unset
+end_of_line = unset
+
 [*.lock]
 indent_size = unset
 
+[deps.nix]
+insert_final_newline = unset
+
+[eggs.nix]
+trim_trailing_whitespace = unset
+
 [gemset.nix]
 insert_final_newline = unset
 
+[node-{composition,packages}.nix]
+insert_final_newline = unset
+
+[nixos/modules/services/networking/ircd-hybrid/*.{conf,in}]
+trim_trailing_whitespace = unset
+
+[nixos/tests/systemd-networkd-vrf.nix]
+trim_trailing_whitespace = unset
+
 [pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json]
 indent_size = unset
 
+[pkgs/build-support/dotnetenv/Wrapper/**]
+end_of_line = unset
+insert_final_newline = unset
+trim_trailing_whitespace = unset
+
+[pkgs/build-support/upstream-updater/**]
+trim_trailing_whitespace = unset
+
+[pkgs/development/compilers/elm/registry.dat]
+end_of_line = unset
+insert_final_newline = unset
+
 [pkgs/development/lisp-modules/quicklisp-to-nix.nix]
 indent_size = unset
 
@@ -70,5 +105,8 @@ insert_final_newline = unset
 indent_size = unset
 trim_trailing_whitespace = unset
 
+[pkgs/top-level/emscripten-packages.nix]
+trim_trailing_whitespace = unset
+
 [pkgs/top-level/perl-packages.nix]
 indent_size = unset
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index d68adc192e1..19b9ad57933 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -10,6 +10,12 @@
 # This file
 /.github/CODEOWNERS @edolstra
 
+# GitHub actions
+/.github/workflows @Mic92 @zowoq
+
+# EditorConfig
+/.editorconfig @Mic92 @zowoq
+
 # Libraries
 /lib                        @edolstra @nbp @infinisil
 /lib/systems                @nbp @ericson2314 @matthewbauer
@@ -189,10 +195,16 @@
 /pkgs/top-level/php-packages.nix         @NixOS/php
 
 # Podman, CRI-O modules and related
-/nixos/modules/virtualisation/containers.nix @NixOS/podman
-/nixos/modules/virtualisation/cri-o.nix      @NixOS/podman
-/nixos/modules/virtualisation/podman.nix     @NixOS/podman
-/nixos/tests/podman.nix                      @NixOS/podman
+/nixos/modules/virtualisation/containers.nix @NixOS/podman @zowoq
+/nixos/modules/virtualisation/cri-o.nix      @NixOS/podman @zowoq
+/nixos/modules/virtualisation/podman.nix     @NixOS/podman @zowoq
+/nixos/tests/cri-o.nix                       @NixOS/podman @zowoq
+/nixos/tests/podman.nix                      @NixOS/podman @zowoq
 
 # Blockchains
 /pkgs/applications/blockchains  @mmahut
+
+# Go
+/pkgs/development/compilers/go @kalbasit @Mic92 @zowoq
+/pkgs/development/go-modules   @kalbasit @Mic92 @zowoq
+/pkgs/development/go-packages  @kalbasit @Mic92 @zowoq
diff --git a/.github/stale.yml b/.github/stale.yml
index 1cf5014cfb3..606d5637cc5 100644
--- a/.github/stale.yml
+++ b/.github/stale.yml
@@ -9,17 +9,33 @@ exemptLabels:
 # Label to use when marking an issue as stale
 staleLabel: "2.status: stale"
 # Comment to post when marking an issue as stale. Set to `false` to disable
-markComment: |
-  Thank you for your contributions.
+pulls:
+  markComment: |
+    Hello, I'm a bot and I thank you in the name of the community for your contributions.
 
-  This has been automatically marked as stale because it has had no activity for 180 days.
+    Nixpkgs is a busy repository, and unfortunately sometimes PRs get left behind for too long. Nevertheless, we'd like to help committers reach the PRs that are still important. This PR has had no activity for 180 days, and so I marked it as stale, but you can rest assured it will never be closed by a non-human.
 
-  If this is still important to you, we ask that you leave a comment below. Your comment can be as simple as "still important to me". This lets people see that at least one person still cares about this. Someone will have to do this at most twice a year if there is no other activity.
+    If this is still important to you and you'd like to remove the stale label, we ask that you leave a comment. Your comment can be as simple as "still important to me".  But there's a bit more you can do:
 
-  Here are suggestions that might help resolve this more quickly:
+    If you received an approval by an unprivileged maintainer and you are just waiting for a merge, you can @ mention someone with merge permissions and ask them to help. You might be able to find someone relevant by using [Git blame](https://git-scm.com/docs/git-blame) on the relevant files, or via [GitHub's web interface](https://docs.github.com/en/github/managing-files-in-a-repository/tracking-changes-in-a-file). You can see if someone's a member of the [nixpkgs-committers](https://github.com/orgs/NixOS/teams/nixpkgs-committers) team, by hovering with the mouse over their username on the web interface, or by searching them directly on [the list](https://github.com/orgs/NixOS/teams/nixpkgs-committers).
+
+    If your PR wasn't reviewed at all, it might help to find someone who's perhaps a user of the package or module you are changing, or alternatively, ask once more for a review by the maintainer of the package/module this is about. If you don't know any, you can use [Git blame](https://git-scm.com/docs/git-blame) on the relevant files, or [GitHub's web interface](https://docs.github.com/en/github/managing-files-in-a-repository/tracking-changes-in-a-file) to find someone who touched the relevant files in the past.
+
+    If your PR has had reviews and nevertheless got stale, make sure you've responded to all of the reviewer's requests / questions. Usually when PR authors show responsibility and dedication, reviewers (privileged or not) show dedication as well. If you've pushed a change, it's possible the reviewer wasn't notified about your push via email, so you can always [officially request them for a review](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/requesting-a-pull-request-review), or just @ mention them and say you've addressed their comments.
+
+    Lastly, you can always ask for help at [our Discourse Forum](https://discourse.nixos.org/), or more specifically, [at this thread](https://discourse.nixos.org/t/prs-in-distress/3604) or at [#nixos' IRC channel](https://webchat.freenode.net/#nixos).
+
+issues:
+  markComment: |
+    Hello, I'm a bot and I thank you in the name of the community for opening this issue.
+
+    To help our human contributors focus on the most-relevant reports, I check up on old issues to see if they're still relevant. This issue has had no activity for 180 days, and so I marked it as stale, but you can rest assured it will never be closed by a non-human.
+
+    The community would appreciate your effort in checking if the issue is still valid. If it isn't, please close it.
+
+    If the issue persists, and you'd like to remove the stale label, you simply need to leave a comment. Your comment can be as simple as "still important to me". If you'd like it to get more attention, you can ask for help by searching for maintainers and people that previously touched related code and @ mention them in a comment. You can use [Git blame](https://git-scm.com/docs/git-blame) or [GitHub's web interface](https://docs.github.com/en/github/managing-files-in-a-repository/tracking-changes-in-a-file) on the relevant files to find them.
+
+    Lastly, you can always ask for help at [our Discourse Forum](https://discourse.nixos.org/) or at [#nixos' IRC channel](https://webchat.freenode.net/#nixos).
 
-  1. Search for maintainers and people that previously touched the related code and @ mention them in a comment.
-  2. Ask on the [NixOS Discourse](https://discourse.nixos.org/).
-  3. Ask on the [#nixos channel](irc://irc.freenode.net/#nixos) on [irc.freenode.net](https://freenode.net).
 # Comment to post when closing a stale issue. Set to `false` to disable
 closeComment: false
diff --git a/.github/workflows/editorconfig.yml b/.github/workflows/editorconfig.yml
new file mode 100644
index 00000000000..98c7afbab78
--- /dev/null
+++ b/.github/workflows/editorconfig.yml
@@ -0,0 +1,27 @@
+name: "Checking EditorConfig"
+
+on:
+  pull_request:
+
+jobs:
+  tests:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v2
+      with:
+        fetch-depth: 0
+    - uses: technote-space/get-diff-action@v3.1.0
+    - name: Fetch editorconfig-checker
+      if: env.GIT_DIFF
+      env:
+        ECC_VERSION: "2.1.0"
+        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" && \
+        tar xzf ec-linux-amd64.tar.gz && \
+        mv ./bin/ec-linux-amd64 ./bin/editorconfig-checker
+    - name: Checking EditorConfig
+      if: env.GIT_DIFF
+      run: |
+        ./bin/editorconfig-checker -disable-indentation \
+        ${{ env.GIT_DIFF }}
diff --git a/.github/workflows/pending-clear.yml b/.github/workflows/pending-clear.yml
new file mode 100644
index 00000000000..d06b1e2143f
--- /dev/null
+++ b/.github/workflows/pending-clear.yml
@@ -0,0 +1,21 @@
+name: "clear pending status"
+
+on:
+  check_suite:
+    types: [ completed ]
+
+jobs:
+  action:
+    runs-on: ubuntu-latest
+    steps:
+    - name: clear pending status
+      if: github.repository_owner == 'NixOS' && github.event.check_suite.app.name == 'OfBorg'
+      env:
+        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+      run: |
+        curl \
+          -X POST \
+          -H "Accept: application/vnd.github.v3+json" \
+          -H "Authorization: token $GITHUB_TOKEN" \
+          -d '{"state": "success", "target_url": " ", "description": " ", "context": "Wait for ofborg"}' \
+          "https://api.github.com/repos/NixOS/nixpkgs/statuses/${{ github.event.check_suite.head_sha }}"
diff --git a/.github/workflows/pending-set.yml b/.github/workflows/pending-set.yml
new file mode 100644
index 00000000000..f59ac9439ea
--- /dev/null
+++ b/.github/workflows/pending-set.yml
@@ -0,0 +1,20 @@
+name: "set pending status"
+
+on:
+  pull_request_target:
+
+jobs:
+  action:
+    runs-on: ubuntu-latest
+    steps:
+    - name: set pending status
+      if: github.repository_owner == 'NixOS'
+      env:
+        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+      run: |
+        curl \
+          -X POST \
+          -H "Accept: application/vnd.github.v3+json" \
+          -H "Authorization: token $GITHUB_TOKEN" \
+          -d '{"state": "failure", "target_url": " ", "description": "This failed status will be cleared when ofborg finishes eval.", "context": "Wait for ofborg"}' \
+          "https://api.github.com/repos/NixOS/nixpkgs/statuses/${{ github.event.pull_request.head.sha }}"
diff --git a/.gitignore b/.gitignore
index 05ada15f43a..b166a78d7d7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,7 @@ result-*
 
 .DS_Store
 .mypy_cache
+__pycache__
 
 /pkgs/development/libraries/qt-5/*/tmp/
 /pkgs/desktops/kde-5/*/tmp/
diff --git a/doc/Makefile b/doc/Makefile
index cdef493502b..49f361ebb60 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -1,4 +1,4 @@
-MD_TARGETS=$(addsuffix .xml, $(basename $(wildcard ./*.md ./**/*.md)))
+MD_TARGETS=$(addsuffix .xml, $(basename $(shell find . -type f -regex '.*\.md$$')))
 
 .PHONY: all
 all: validate format out/html/index.html out/epub/manual.epub
diff --git a/doc/builders/packages/cataclysm-dda.section.md b/doc/builders/packages/cataclysm-dda.section.md
new file mode 100644
index 00000000000..ae2ee56a010
--- /dev/null
+++ b/doc/builders/packages/cataclysm-dda.section.md
@@ -0,0 +1,94 @@
+# Cataclysm: Dark Days Ahead
+
+## How to install Cataclysm DDA
+
+To install the latest stable release of Cataclysm DDA to your profile, execute
+`nix-env -f "<nixpkgs>" -iA cataclysm-dda`. For the curses build (build
+without tiles), install `cataclysmDDA.stable.curses`. Note: `cataclysm-dda` is
+an alias to `cataclysmDDA.stable.tiles`.
+
+If you like access to a development build of your favorite git revision,
+override `cataclysm-dda-git` (or `cataclysmDDA.git.curses` if you like curses
+build):
+
+```nix
+cataclysm-dda-git.override {
+  version = "YYYY-MM-DD";
+  rev = "YOUR_FAVORITE_REVISION";
+  sha256 = "CHECKSUM_OF_THE_REVISION";
+}
+```
+
+The sha256 checksum can be obtained by
+
+```sh
+nix-prefetch-url --unpack "https://github.com/CleverRaven/Cataclysm-DDA/archive/${YOUR_FAVORITE_REVISION}.tar.gz"
+```
+
+The default configuration directory is `~/.cataclysm-dda`. If you prefer
+`$XDG_CONFIG_HOME/cataclysm-dda`, override the derivation:
+
+```nix
+cataclysm-dda.override {
+  useXdgDir = true;
+}
+```
+
+## Customizing with mods
+
+To install Cataclysm DDA with mods of your choice, you can use `withMods`
+attribute:
+
+```nix
+cataclysm-dda.withMods (mods: with mods; [
+  tileset.UndeadPeople
+])
+```
+
+All mods, soundpacks, and tilesets available in nixpkgs are found in
+`cataclysmDDA.pkgs`.
+
+Here is an example to modify existing mods and/or add more mods not available
+in nixpkgs:
+
+```nix
+let
+  customMods = self: super: lib.recursiveUpdate super {
+    # Modify existing mod
+    tileset.UndeadPeople = super.tileset.UndeadPeople.overrideAttrs (old: {
+      # If you like to apply a patch to the tileset for example
+      patches = [ ./path/to/your.patch ];
+    });
+
+    # Add another mod
+    mod.Awesome = cataclysmDDA.buildMod {
+      modName = "Awesome";
+      version = "0.x";
+      src = fetchFromGitHub {
+        owner = "Someone";
+        repo = "AwesomeMod";
+        rev = "...";
+        sha256 = "...";
+      };
+      # Path to be installed in the unpacked source (default: ".")
+      modRoot = "contents/under/this/path/will/be/installed";
+    };
+
+    # Add another soundpack
+    soundpack.Fantastic = cataclysmDDA.buildSoundPack {
+      # ditto
+    };
+
+    # Add another tileset
+    tileset.SuperDuper = cataclysmDDA.buildTileSet {
+      # ditto
+    };
+  };
+in
+cataclysm-dda.withMods (mods: with mods.extend customMods; [
+  tileset.UndeadPeople
+  mod.Awesome
+  soundpack.Fantastic
+  tileset.SuperDuper
+])
+```
diff --git a/doc/builders/packages/citrix.xml b/doc/builders/packages/citrix.xml
index c629dc9ee50..16f1bc6f8f2 100644
--- a/doc/builders/packages/citrix.xml
+++ b/doc/builders/packages/citrix.xml
@@ -4,34 +4,36 @@
  <title>Citrix Workspace</title>
 
  <para>
-  <note>
-   <para>
-    Please note that the <literal>citrix_receiver</literal> package has been deprecated since its development was <link xlink:href="https://docs.citrix.com/en-us/citrix-workspace-app.html">discontinued by upstream</link> and has been replaced by <link xlink:href="https://www.citrix.com/products/workspace-app/">the citrix workspace app</link>.
-   </para>
-  </note>
-  <link xlink:href="https://www.citrix.com/products/receiver/">Citrix Receiver</link> and <link xlink:href="https://www.citrix.com/products/workspace-app/">Citrix Workspace App</link> are a remote desktop viewers which provide access to <link xlink:href="https://www.citrix.com/products/xenapp-xendesktop/">XenDesktop</link> installations.
+  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.com/downloads/citrix-receiver/">Citrix Receiver</link> or <link xlink:href="https://www.citrix.de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html">Citrix Workspace</link> need 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.
+   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>
 
-  <warning>
-   <title>Caution with <command>nix-shell</command> installs</title>
-   <para>
-    It's recommended to install <literal>Citrix Receiver</literal> and/or <literal>Citrix Workspace</literal> using <literal>nix-env -i</literal> or globally to ensure that the <literal>.desktop</literal> files are installed properly into <literal>$XDG_CONFIG_DIRS</literal>. Otherwise it won't be possible to open <literal>.ica</literal> files automatically from the browser to start a Citrix connection.
-   </para>
-  </warning>
+ <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> trust 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>:
+   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
diff --git a/doc/builders/packages/index.xml b/doc/builders/packages/index.xml
index 4e109bd1c59..e20b0c689a8 100644
--- a/doc/builders/packages/index.xml
+++ b/doc/builders/packages/index.xml
@@ -18,6 +18,7 @@
  <xi:include href="opengl.xml" />
  <xi:include href="shell-helpers.xml" />
  <xi:include href="steam.xml" />
+ <xi:include href="cataclysm-dda.section.xml" />
  <xi:include href="urxvt.xml" />
  <xi:include href="weechat.xml" />
  <xi:include href="xorg.xml" />
diff --git a/doc/builders/packages/steam.xml b/doc/builders/packages/steam.xml
index 8dfede59ac1..59673328bac 100644
--- a/doc/builders/packages/steam.xml
+++ b/doc/builders/packages/steam.xml
@@ -45,13 +45,7 @@
   <title>How to play</title>
 
   <para>
-   For 64-bit systems it's important to have
-<programlisting>hardware.opengl.driSupport32Bit = true;</programlisting>
-   in your <filename>/etc/nixos/configuration.nix</filename>. You'll also need
-<programlisting>hardware.pulseaudio.support32Bit = true;</programlisting>
-   if you are using PulseAudio - this will enable 32bit ALSA apps integration. To use the Steam controller or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pro, you need to add
-<programlisting>hardware.steam-hardware.enable = true;</programlisting>
-   to your configuration.
+   Use <programlisting>programs.steam.enable = true;</programlisting> if you want to add steam to systemPackages and also enable a few workarrounds aswell as Steam controller support or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pr.
   </para>
  </section>
 
diff --git a/doc/builders/packages/urxvt.xml b/doc/builders/packages/urxvt.xml
index f85680cecc4..135cc82a0b5 100644
--- a/doc/builders/packages/urxvt.xml
+++ b/doc/builders/packages/urxvt.xml
@@ -50,7 +50,7 @@ map (p: p.name) pkgs.rxvt-unicode.plugins
     In addition to <literal>plugins</literal> the options
     <literal>extraDeps</literal> and <literal>perlDeps</literal> can be used
     to install extra packages.
-    <literal>extraDeps</literal> can be used, for example, to provide 
+    <literal>extraDeps</literal> can be used, for example, to provide
     <literal>xsel</literal> (a clipboard manager) to the clipboard plugin,
     without installing it globally:
     <programlisting>rxvt-unicode.override { configure = { availablePlugins, ... }: {
diff --git a/doc/languages-frameworks/android.section.md b/doc/languages-frameworks/android.section.md
index 1a8924082bf..f4f6c086a80 100644
--- a/doc/languages-frameworks/android.section.md
+++ b/doc/languages-frameworks/android.section.md
@@ -191,6 +191,8 @@ androidenv.emulateApp {
 }
 ```
 
+Additional flags may be applied to the Android SDK's emulator through the runtime environment variable `$NIX_ANDROID_EMULATOR_FLAGS`.
+
 It is also possible to specify an APK to deploy inside the emulator
 and the package and activity names to launch it:
 
diff --git a/doc/languages-frameworks/beam.xml b/doc/languages-frameworks/beam.xml
index 278535237c2..1d307e1d6dc 100644
--- a/doc/languages-frameworks/beam.xml
+++ b/doc/languages-frameworks/beam.xml
@@ -68,7 +68,7 @@
   <title>How to Install BEAM Packages</title>
 
   <para>
-   BEAM builders are not registered at the top level, simply because they are not relevant to the vast majority of Nix users. 
+   BEAM builders are not registered at the top level, simply because they are not relevant to the vast majority of Nix users.
    To install any of those builders into your profile, refer to them by their attribute path <literal>beamPackages.rebar3</literal>:
   </para>
 
diff --git a/doc/languages-frameworks/emscripten.section.md b/doc/languages-frameworks/emscripten.section.md
index 80e1094809a..3663f962d5f 100644
--- a/doc/languages-frameworks/emscripten.section.md
+++ b/doc/languages-frameworks/emscripten.section.md
@@ -21,11 +21,11 @@ Modes of use of `emscripten`:
 * **Declarative usage**:
 
     This mode is far more power full since this makes use of `nix` for dependency management of emscripten libraries and targets by using the `mkDerivation` which is implemented by `pkgs.emscriptenStdenv` and `pkgs.buildEmscriptenPackage`. The source for the packages is in `pkgs/top-level/emscripten-packages.nix` and the abstraction behind it in `pkgs/development/em-modules/generic/default.nix`.
-    * build and install all packages: 
-        * `nix-env -iA emscriptenPackages` 
-          
-    * dev-shell for zlib implementation hacking: 
-        * `nix-shell -A emscriptenPackages.zlib` 
+    * build and install all packages:
+        * `nix-env -iA emscriptenPackages`
+
+    * dev-shell for zlib implementation hacking:
+        * `nix-shell -A emscriptenPackages.zlib`
 
 
 ## Imperative usage
@@ -90,7 +90,7 @@ See the `zlib` example:
         libz.so.${old.version} -I . -o example.js
 
         echo "Using node to execute the test"
-        ${pkgs.nodejs}/bin/node ./example.js 
+        ${pkgs.nodejs}/bin/node ./example.js
 
         set +x
         if [ $? -ne 0 ]; then
@@ -112,7 +112,7 @@ See the `zlib` example:
 
 ### Usage 2: pkgs.buildEmscriptenPackage
 
-This `xmlmirror` example features a emscriptenPackage which is defined completely from this context and no `pkgs.zlib.override` is used. 
+This `xmlmirror` example features a emscriptenPackage which is defined completely from this context and no `pkgs.zlib.override` is used.
 
     xmlmirror = pkgs.buildEmscriptenPackage rec {
       name = "xmlmirror";
@@ -163,7 +163,7 @@ This `xmlmirror` example features a emscriptenPackage which is defined completel
       checkPhase = ''
 
       '';
-    }; 
+    };
 
 ### Declarative debugging
 
@@ -182,4 +182,3 @@ Use `nix-shell -I nixpkgs=/some/dir/nixpkgs -A emscriptenPackages.libz` and from
 Using this toolchain makes it easy to leverage `nix` from NixOS, MacOSX or even Windows (WSL+ubuntu+nix). This toolchain is reproducible, behaves like the rest of the packages from nixpkgs and contains a set of well working examples to learn and adapt from.
 
 If in trouble, ask the maintainers.
-
diff --git a/doc/languages-frameworks/go.xml b/doc/languages-frameworks/go.xml
index ff39276f640..26414f23c7d 100644
--- a/doc/languages-frameworks/go.xml
+++ b/doc/languages-frameworks/go.xml
@@ -40,6 +40,10 @@ pet = buildGoModule rec {
 
   subPackages = [ "." ]; <co xml:id='ex-buildGoModule-2' />
 
+  deleteVendor = true; <co xml:id='ex-buildGoModule-3' />
+
+  runVend = true; <co xml:id='ex-buildGoModule-4' />
+
   meta = with lib; {
     description = "Simple command-line snippet manager, written in Go";
     homepage = "https://github.com/knqyf263/pet";
@@ -64,6 +68,16 @@ pet = buildGoModule rec {
       <varname>subPackages</varname> limits the builder from building child packages that have not been listed. If <varname>subPackages</varname> is not specified, all child packages will be built.
      </para>
     </callout>
+    <callout arearefs='ex-buildGoModule-3'>
+     <para>
+      <varname>deleteVendor</varname> removes the pre-existing vendor directory and fetches the dependencies. This should only be used if the dependencies included in the vendor folder are broken or incomplete.
+     </para>
+    </callout>
+    <callout arearefs='ex-buildGoModule-4'>
+     <para>
+      <varname>runVend</varname> runs the vend command to generate the vendor directory. This is useful if your code depends on c code and go mod tidy does not include the needed sources to build.
+     </para>
+    </callout>
    </calloutlist>
   </para>
 
@@ -72,7 +86,7 @@ pet = buildGoModule rec {
 
     When `null` is used as a value, rather than fetching the dependencies
     and vendoring them, we use the vendoring included within the source repo.
-    If you'd like to not have to update this field on dependency changes, 
+    If you'd like to not have to update this field on dependency changes,
     run `go mod vendor` in your source repo and set 'vendorSha256 = null;'
   </para>
  </section>
diff --git a/doc/languages-frameworks/node.section.md b/doc/languages-frameworks/node.section.md
index c1f4294711a..2120adfc0b4 100644
--- a/doc/languages-frameworks/node.section.md
+++ b/doc/languages-frameworks/node.section.md
@@ -25,12 +25,13 @@ build system it uses. Here are some examples:
 
 After you have identified the correct system, you need to override your package
 expression while adding in build system as a build input. For example, `dat`
-requires `node-gyp-build`, so we override its expression in `default.nix`:
+requires `node-gyp-build`, so [we override](https://github.com/NixOS/nixpkgs/blob/32f5e5da4a1b3f0595527f5195ac3a91451e9b56/pkgs/development/node-packages/default.nix#L37-L40) its expression in [`default.nix`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages/default.nix):
 
 ```nix
-dat = nodePackages.dat.override (oldAttrs: {
-  buildInputs = oldAttrs.buildInputs ++ [ nodePackages.node-gyp-build ];
-});
+    dat = super.dat.override {
+      buildInputs = [ self.node-gyp-build pkgs.libtool pkgs.autoconf pkgs.automake ];
+      meta.broken = since "12";
+    };
 ```
 
 To add a package from NPM to nixpkgs:
diff --git a/doc/languages-frameworks/perl.xml b/doc/languages-frameworks/perl.xml
index d9b6b2721c6..ff0f350e99c 100644
--- a/doc/languages-frameworks/perl.xml
+++ b/doc/languages-frameworks/perl.xml
@@ -3,159 +3,193 @@
          xml:id="sec-language-perl">
  <title>Perl</title>
 
- <para>
-  Nixpkgs provides a function <varname>buildPerlPackage</varname>, a generic package builder function for any Perl package that has a standard <varname>Makefile.PL</varname>. It’s implemented in <link
-xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/perl-modules/generic"><filename>pkgs/development/perl-modules/generic</filename></link>.
- </para>
-
- <para>
-  Perl packages from CPAN are defined in <link
-xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/perl-packages.nix"><filename>pkgs/top-level/perl-packages.nix</filename></link>, rather than <filename>pkgs/all-packages.nix</filename>. Most Perl packages are so straight-forward to build that they are defined here directly, rather than having a separate function for each package called from <filename>perl-packages.nix</filename>. However, more complicated packages should be put in a separate file, typically in <filename>pkgs/development/perl-modules</filename>. Here is an example of the former:
-<programlisting>
-ClassC3 = buildPerlPackage rec {
-  name = "Class-C3-0.21";
-  src = fetchurl {
-    url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
-    sha256 = "1bl8z095y4js66pwxnm7s853pi9czala4sqc743fdlnk27kq94gz";
-  };
-};
-</programlisting>
-  Note the use of <literal>mirror://cpan/</literal>, and the <literal>${name}</literal> in the URL definition to ensure that the name attribute is consistent with the source that we’re actually downloading. Perl packages are made available in <filename>all-packages.nix</filename> through the variable <varname>perlPackages</varname>. For instance, if you have a package that needs <varname>ClassC3</varname>, you would typically write
-<programlisting>
-foo = import ../path/to/foo.nix {
-  inherit stdenv fetchurl ...;
-  inherit (perlPackages) ClassC3;
-};
-</programlisting>
-  in <filename>all-packages.nix</filename>. You can test building a Perl package as follows:
-<screen>
-<prompt>$ </prompt>nix-build -A perlPackages.ClassC3
-</screen>
-  <varname>buildPerlPackage</varname> adds <literal>perl-</literal> to the start of the name attribute, so the package above is actually called <literal>perl-Class-C3-0.21</literal>. So to install it, you can say:
-<screen>
-<prompt>$ </prompt>nix-env -i perl-Class-C3
-</screen>
-  (Of course you can also install using the attribute name: <literal>nix-env -i -A perlPackages.ClassC3</literal>.)
- </para>
-
- <para>
-  So what does <varname>buildPerlPackage</varname> do? It does the following:
-  <orderedlist>
-   <listitem>
-    <para>
-     In the configure phase, it calls <literal>perl Makefile.PL</literal> to generate a Makefile. You can set the variable <varname>makeMakerFlags</varname> to pass flags to <filename>Makefile.PL</filename>
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     It adds the contents of the <envar>PERL5LIB</envar> environment variable to <literal>#! .../bin/perl</literal> line of Perl scripts as <literal>-I<replaceable>dir</replaceable></literal> flags. This ensures that a script can find its dependencies. (This can cause this shebang line to become too long for Darwin to handle; see the note below.)
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     In the fixup phase, it writes the propagated build inputs (<varname>propagatedBuildInputs</varname>) to the file <filename>$out/nix-support/propagated-user-env-packages</filename>. <command>nix-env</command> recursively installs all packages listed in this file when you install a package that has it. This ensures that a Perl package can find its dependencies.
-    </para>
-   </listitem>
-  </orderedlist>
- </para>
-
- <para>
-  <varname>buildPerlPackage</varname> is built on top of <varname>stdenv</varname>, so everything can be customised in the usual way. For instance, the <literal>BerkeleyDB</literal> module has a <varname>preConfigure</varname> hook to generate a configuration file used by <filename>Makefile.PL</filename>:
-<programlisting>
-{ buildPerlPackage, fetchurl, db }:
-
-buildPerlPackage rec {
-  name = "BerkeleyDB-0.36";
-
-  src = fetchurl {
-    url = "mirror://cpan/authors/id/P/PM/PMQS/${name}.tar.gz";
-    sha256 = "07xf50riarb60l1h6m2dqmql8q5dij619712fsgw7ach04d8g3z1";
-  };
-
-  preConfigure = ''
-    echo "LIB = ${db.out}/lib" > config.in
-    echo "INCLUDE = ${db.dev}/include" >> config.in
-  '';
-}
-</programlisting>
- </para>
-
- <para>
-  Dependencies on other Perl packages can be specified in the <varname>buildInputs</varname> and <varname>propagatedBuildInputs</varname> attributes. If something is exclusively a build-time dependency, use <varname>buildInputs</varname>; if it’s (also) a runtime dependency, use <varname>propagatedBuildInputs</varname>. For instance, this builds a Perl module that has runtime dependencies on a bunch of other modules:
-<programlisting>
-ClassC3Componentised = buildPerlPackage rec {
-  name = "Class-C3-Componentised-1.0004";
-  src = fetchurl {
-    url = "mirror://cpan/authors/id/A/AS/ASH/${name}.tar.gz";
-    sha256 = "0xql73jkcdbq4q9m0b0rnca6nrlvf5hyzy8is0crdk65bynvs8q1";
-  };
-  propagatedBuildInputs = [
-    ClassC3 ClassInspector TestException MROCompat
-  ];
-};
-</programlisting>
- </para>
-
- <para>
-  On Darwin, if a script has too many <literal>-I<replaceable>dir</replaceable></literal> flags in its first line (its “shebang line”), it will not run. This can be worked around by calling the <literal>shortenPerlShebang</literal> function from the <literal>postInstall</literal> phase:
-<programlisting>
-{ stdenv, buildPerlPackage, fetchurl, shortenPerlShebang }:
-
-ImageExifTool = buildPerlPackage {
-  pname = "Image-ExifTool";
-  version = "11.50";
-
-  src = fetchurl {
-    url = "https://www.sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-11.50.tar.gz";
-    sha256 = "0d8v48y94z8maxkmw1rv7v9m0jg2dc8xbp581njb6yhr7abwqdv3";
-  };
-
-  buildInputs = stdenv.lib.optional stdenv.isDarwin shortenPerlShebang;
-  postInstall = stdenv.lib.optional stdenv.isDarwin ''
-    shortenPerlShebang $out/bin/exiftool
-  '';
-};
-</programlisting>
-  This will remove the <literal>-I</literal> flags from the shebang line, rewrite them in the <literal>use lib</literal> form, and put them on the next line instead. This function can be given any number of Perl scripts as arguments; it will modify them in-place.
- </para>
-
- <section xml:id="ssec-generation-from-CPAN">
-  <title>Generation from CPAN</title>
+ <section xml:id="ssec-perl-running">
+  <title>Running perl programs on the shell</title>
 
   <para>
-   Nix expressions for Perl packages can be generated (almost) automatically from CPAN. This is done by the program <command>nix-generate-from-cpan</command>, which can be installed as follows:
+   When executing a Perl script, it is possible you get an error such as <literal>./myscript.pl: bad interpreter: /usr/bin/perl: no such file or directory</literal>. This happens when the script expects Perl to be installed at <filename>/usr/bin/perl</filename>, which is not the case when using Perl from nixpkgs. You can fix the script by changing the first line to:
+  <programlisting>
+  #!/usr/bin/env perl
+  </programlisting>
+  to take the Perl installation from the <literal>PATH</literal> environment variable, or invoke Perl directly with:
+  <screen>
+  <prompt>$ </prompt>perl ./myscript.pl
+  </screen>
   </para>
 
-<screen>
-<prompt>$ </prompt>nix-env -i nix-generate-from-cpan
-</screen>
+  <para>
+   When the script is using a Perl library that is not installed globally, you might get an error such as <literal>Can't locate DB_File.pm in @INC (you may need to install the DB_File module)</literal>. In that case, you can use <command>nix-shell</command> to start an ad-hoc shell with that library installed, for instance:
+  <screen>
+  <prompt>$ </prompt>nix-shell -p perl perlPackages.DBFile --run ./myscript.pl
+  </screen>
+  </para>
 
   <para>
-   This program takes a Perl module name, looks it up on CPAN, fetches and unpacks the corresponding package, and prints a Nix expression on standard output. For example:
-<screen>
-<prompt>$ </prompt>nix-generate-from-cpan XML::Simple
-  XMLSimple = buildPerlPackage rec {
-    name = "XML-Simple-2.22";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/G/GR/GRANTM/${name}.tar.gz";
-      sha256 = "b9450ef22ea9644ae5d6ada086dc4300fa105be050a2030ebd4efd28c198eb49";
-    };
-    propagatedBuildInputs = [ XMLNamespaceSupport XMLSAX XMLSAXExpat ];
-    meta = {
-      description = "An API for simple XML files";
-      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
-    };
-  };
-</screen>
-   The output can be pasted into <filename>pkgs/top-level/perl-packages.nix</filename> or wherever else you need it.
+  If you are always using the script in places where <command>nix-shell</command> is available, you can embed the <command>nix-shell</command> invocation in the shebang like this:
+  <programlisting>
+  #!/usr/bin/env nix-shell
+  #! nix-shell -i perl -p perl perlPackages.DBFile
+  </programlisting>
   </para>
  </section>
 
- <section xml:id="ssec-perl-cross-compilation">
-  <title>Cross-compiling modules</title>
+ <section xml:id="ssec-perl-packaging">
+  <title>Packaging Perl programs</title>
+
+  <para>
+   Nixpkgs provides a function <varname>buildPerlPackage</varname>, a generic package builder function for any Perl package that has a standard <varname>Makefile.PL</varname>. It’s implemented in <link
+ xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/perl-modules/generic"><filename>pkgs/development/perl-modules/generic</filename></link>.
+  </para>
+
+  <para>
+   Perl packages from CPAN are defined in <link
+ xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/perl-packages.nix"><filename>pkgs/top-level/perl-packages.nix</filename></link>, rather than <filename>pkgs/all-packages.nix</filename>. Most Perl packages are so straight-forward to build that they are defined here directly, rather than having a separate function for each package called from <filename>perl-packages.nix</filename>. However, more complicated packages should be put in a separate file, typically in <filename>pkgs/development/perl-modules</filename>. Here is an example of the former:
+ <programlisting>
+ ClassC3 = buildPerlPackage rec {
+   name = "Class-C3-0.21";
+   src = fetchurl {
+     url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz";
+     sha256 = "1bl8z095y4js66pwxnm7s853pi9czala4sqc743fdlnk27kq94gz";
+   };
+ };
+ </programlisting>
+   Note the use of <literal>mirror://cpan/</literal>, and the <literal>${name}</literal> in the URL definition to ensure that the name attribute is consistent with the source that we’re actually downloading. Perl packages are made available in <filename>all-packages.nix</filename> through the variable <varname>perlPackages</varname>. For instance, if you have a package that needs <varname>ClassC3</varname>, you would typically write
+ <programlisting>
+ foo = import ../path/to/foo.nix {
+   inherit stdenv fetchurl ...;
+   inherit (perlPackages) ClassC3;
+ };
+ </programlisting>
+   in <filename>all-packages.nix</filename>. You can test building a Perl package as follows:
+ <screen>
+ <prompt>$ </prompt>nix-build -A perlPackages.ClassC3
+ </screen>
+   <varname>buildPerlPackage</varname> adds <literal>perl-</literal> to the start of the name attribute, so the package above is actually called <literal>perl-Class-C3-0.21</literal>. So to install it, you can say:
+ <screen>
+ <prompt>$ </prompt>nix-env -i perl-Class-C3
+ </screen>
+   (Of course you can also install using the attribute name: <literal>nix-env -i -A perlPackages.ClassC3</literal>.)
+  </para>
+
+  <para>
+   So what does <varname>buildPerlPackage</varname> do? It does the following:
+   <orderedlist>
+    <listitem>
+     <para>
+      In the configure phase, it calls <literal>perl Makefile.PL</literal> to generate a Makefile. You can set the variable <varname>makeMakerFlags</varname> to pass flags to <filename>Makefile.PL</filename>
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      It adds the contents of the <envar>PERL5LIB</envar> environment variable to <literal>#! .../bin/perl</literal> line of Perl scripts as <literal>-I<replaceable>dir</replaceable></literal> flags. This ensures that a script can find its dependencies. (This can cause this shebang line to become too long for Darwin to handle; see the note below.)
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      In the fixup phase, it writes the propagated build inputs (<varname>propagatedBuildInputs</varname>) to the file <filename>$out/nix-support/propagated-user-env-packages</filename>. <command>nix-env</command> recursively installs all packages listed in this file when you install a package that has it. This ensures that a Perl package can find its dependencies.
+     </para>
+    </listitem>
+   </orderedlist>
+  </para>
+
+  <para>
+   <varname>buildPerlPackage</varname> is built on top of <varname>stdenv</varname>, so everything can be customised in the usual way. For instance, the <literal>BerkeleyDB</literal> module has a <varname>preConfigure</varname> hook to generate a configuration file used by <filename>Makefile.PL</filename>:
+ <programlisting>
+ { buildPerlPackage, fetchurl, db }:
+
+ buildPerlPackage rec {
+   name = "BerkeleyDB-0.36";
+
+   src = fetchurl {
+     url = "mirror://cpan/authors/id/P/PM/PMQS/${name}.tar.gz";
+     sha256 = "07xf50riarb60l1h6m2dqmql8q5dij619712fsgw7ach04d8g3z1";
+   };
+
+   preConfigure = ''
+     echo "LIB = ${db.out}/lib" > config.in
+     echo "INCLUDE = ${db.dev}/include" >> config.in
+   '';
+ }
+ </programlisting>
+  </para>
 
   <para>
-   Nixpkgs has experimental support for cross-compiling Perl modules. In many cases, it will just work out of the box, even for modules with native extensions. Sometimes, however, the Makefile.PL for a module may (indirectly) import a native module. In that case, you will need to make a stub for that module that will satisfy the Makefile.PL and install it into <filename>lib/perl5/site_perl/cross_perl/${perl.version}</filename>. See the <varname>postInstall</varname> for <varname>DBI</varname> for an example.
+   Dependencies on other Perl packages can be specified in the <varname>buildInputs</varname> and <varname>propagatedBuildInputs</varname> attributes. If something is exclusively a build-time dependency, use <varname>buildInputs</varname>; if it’s (also) a runtime dependency, use <varname>propagatedBuildInputs</varname>. For instance, this builds a Perl module that has runtime dependencies on a bunch of other modules:
+ <programlisting>
+ ClassC3Componentised = buildPerlPackage rec {
+   name = "Class-C3-Componentised-1.0004";
+   src = fetchurl {
+     url = "mirror://cpan/authors/id/A/AS/ASH/${name}.tar.gz";
+     sha256 = "0xql73jkcdbq4q9m0b0rnca6nrlvf5hyzy8is0crdk65bynvs8q1";
+   };
+   propagatedBuildInputs = [
+     ClassC3 ClassInspector TestException MROCompat
+   ];
+ };
+ </programlisting>
   </para>
+
+  <para>
+   On Darwin, if a script has too many <literal>-I<replaceable>dir</replaceable></literal> flags in its first line (its “shebang line”), it will not run. This can be worked around by calling the <literal>shortenPerlShebang</literal> function from the <literal>postInstall</literal> phase:
+ <programlisting>
+ { stdenv, buildPerlPackage, fetchurl, shortenPerlShebang }:
+
+ ImageExifTool = buildPerlPackage {
+   pname = "Image-ExifTool";
+   version = "11.50";
+
+   src = fetchurl {
+     url = "https://www.sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-11.50.tar.gz";
+     sha256 = "0d8v48y94z8maxkmw1rv7v9m0jg2dc8xbp581njb6yhr7abwqdv3";
+   };
+
+   buildInputs = stdenv.lib.optional stdenv.isDarwin shortenPerlShebang;
+   postInstall = stdenv.lib.optional stdenv.isDarwin ''
+     shortenPerlShebang $out/bin/exiftool
+   '';
+ };
+ </programlisting>
+   This will remove the <literal>-I</literal> flags from the shebang line, rewrite them in the <literal>use lib</literal> form, and put them on the next line instead. This function can be given any number of Perl scripts as arguments; it will modify them in-place.
+  </para>
+
+  <section xml:id="ssec-generation-from-CPAN">
+   <title>Generation from CPAN</title>
+
+   <para>
+    Nix expressions for Perl packages can be generated (almost) automatically from CPAN. This is done by the program <command>nix-generate-from-cpan</command>, which can be installed as follows:
+   </para>
+
+ <screen>
+ <prompt>$ </prompt>nix-env -i nix-generate-from-cpan
+ </screen>
+
+   <para>
+    This program takes a Perl module name, looks it up on CPAN, fetches and unpacks the corresponding package, and prints a Nix expression on standard output. For example:
+ <screen>
+ <prompt>$ </prompt>nix-generate-from-cpan XML::Simple
+   XMLSimple = buildPerlPackage rec {
+     name = "XML-Simple-2.22";
+     src = fetchurl {
+       url = "mirror://cpan/authors/id/G/GR/GRANTM/${name}.tar.gz";
+       sha256 = "b9450ef22ea9644ae5d6ada086dc4300fa105be050a2030ebd4efd28c198eb49";
+     };
+     propagatedBuildInputs = [ XMLNamespaceSupport XMLSAX XMLSAXExpat ];
+     meta = {
+       description = "An API for simple XML files";
+       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+     };
+   };
+ </screen>
+    The output can be pasted into <filename>pkgs/top-level/perl-packages.nix</filename> or wherever else you need it.
+   </para>
+  </section>
+
+  <section xml:id="ssec-perl-cross-compilation">
+   <title>Cross-compiling modules</title>
+
+   <para>
+    Nixpkgs has experimental support for cross-compiling Perl modules. In many cases, it will just work out of the box, even for modules with native extensions. Sometimes, however, the Makefile.PL for a module may (indirectly) import a native module. In that case, you will need to make a stub for that module that will satisfy the Makefile.PL and install it into <filename>lib/perl5/site_perl/cross_perl/${perl.version}</filename>. See the <varname>postInstall</varname> for <varname>DBI</varname> for an example.
+   </para>
+  </section>
  </section>
 </section>
diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md
index dc10483ce69..f189ce31448 100644
--- a/doc/languages-frameworks/python.section.md
+++ b/doc/languages-frameworks/python.section.md
@@ -538,8 +538,123 @@ buildPythonPackage rec {
 ```
 Note also the line `doCheck = false;`, we explicitly disabled running the test-suite.
 
+#### Testing Python Packages
+
+It is highly encouraged to have testing as part of the package build. This
+helps to avoid situations where the package was able to build and install,
+but is not usable at runtime. Currently, all packages will use the `test`
+command provided by the setup.py (i.e. `python setup.py test`). However,
+this is currently deprecated https://github.com/pypa/setuptools/pull/1878
+and your package should provide its own checkPhase.
+
+*NOTE:* The `checkPhase` for python maps to the `installCheckPhase` on a
+normal derivation. This is due to many python packages not behaving well
+to the pre-installed version of the package. Version info, and natively
+compiled extensions generally only exist in the install directory, and
+thus can cause issues when a test suite asserts on that behavior.
+
+*NOTE:* Tests should only be disabled if they don't agree with nix
+(e.g. external dependencies, network access, flakey tests), however,
+as many tests should be enabled as possible. Failing tests can still be
+a good indication that the package is not in a valid state.
+
+#### Using pytest
+
+Pytest is the most common test runner for python repositories. A trivial
+test run would be:
+```
+  checkInputs = [ pytest ];
+  checkPhase = "pytest";
+```
+
+However, many repositories' test suites do not translate well to nix's build 
+sandbox, and will generally need many tests to be disabled.
+
+To filter tests using pytest, one can do the following:
+```
+  checkInputs = [ pytest ];
+  # avoid tests which need additional data or touch network
+  checkPhase = ''
+    pytest tests/ --ignore=tests/integration -k 'not download and not update'
+  '';
+```
+
+`--ignore` will tell pytest to ignore that file or directory from being
+collected as part of a test run. This is useful is a file uses a package
+which is not available in nixpkgs, thus skipping that test file is much
+easier than having to create a new package.
+
+`-k` is used to define a predicate for test names. In this example, we are
+filtering out tests which contain `download` or `update` in their test case name.
+Only one `-k` argument is allows, and thus a long predicate should be concatenated
+with "\" and wrapped to the next line.
+
+*NOTE:* In pytest==6.0.1, the use of "\" to continue a line (e.g. `-k 'not download \'`) has
+been removed, in this case, it's recommended to use `pytestCheckHook`.
+
+#### Using pytestCheckHook
+
+`pytestCheckHook` is a convenient hook which will substitute the setuptools
+`test` command for a checkPhase which runs `pytest`. This is also beneficial
+when a package may need many items disabled to run the test suite.
+
+Using the example above, the analagous pytestCheckHook usage would be:
+```
+  checkInputs = [ pytestCheckHook ];
+
+  # requires additional data
+  pytestFlagsArray = [ "tests/" "--ignore=tests/integration" ];
+
+  disabledTests = [
+    # touches network
+    "download"
+    "update"
+  ];
+```
+
+This is expecially useful when tests need to be conditionallydisabled,
+for example:
+
+```
+  disabledTests = [
+    # touches network
+    "download"
+    "update"
+  ] ++ lib.optionals (pythonAtLeast "3.8") [
+    # broken due to python3.8 async changes
+    "async"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # can fail when building with other packages
+    "socket"
+  ];
+```
+Trying to concatenate the related strings to disable tests in a regular checkPhase
+would be much harder to read. This also enables us to comment on why specific tests
+are disabled.
+
+#### Using pythonImportsCheck
+
+Although unit tests are highly prefered to valid 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.
+
+```
+  pythonImportsCheck = [ "requests" "urllib" ];
+```
+roughly translates to:
+```
+  postCheck = ''
+    PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
+    python -c "import requests; import urllib"
+  '';
+```
+However, this is done in it's own phase, and not dependent on whether `doCheck = true;`
+
+This can also be useful in verifying that the package doesn't assume commonly
+present packages (e.g. `setuptools`)
 
-#### Develop local package
+### Develop local package
 
 As a Python developer you're likely aware of [development mode](http://setuptools.readthedocs.io/en/latest/setuptools.html#development-mode)
 (`python setup.py develop`); instead of installing the package this command
@@ -640,8 +755,8 @@ and in this case the `python38` interpreter is automatically used.
 
 ### Interpreters
 
-Versions 2.7, 3.5, 3.6, 3.7 and 3.8 of the CPython interpreter are available as
-respectively `python27`, `python35`, `python36`, `python37` and `python38`. The
+Versions 2.7, 3.6, 3.7 and 3.8 of the CPython interpreter are available as
+respectively `python27`, `python36`, `python37` and `python38`. 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
@@ -689,15 +804,16 @@ attribute set is created for each available Python interpreter. The available
 sets are
 
 * `pkgs.python27Packages`
-* `pkgs.python35Packages`
 * `pkgs.python36Packages`
 * `pkgs.python37Packages`
+* `pkgs.python38Packages`
+* `pkgs.python39Packages`
 * `pkgs.pypyPackages`
 
 and the aliases
 
 * `pkgs.python2Packages` pointing to `pkgs.python27Packages`
-* `pkgs.python3Packages` pointing to `pkgs.python37Packages`
+* `pkgs.python3Packages` pointing to `pkgs.python38Packages`
 * `pkgs.pythonPackages` pointing to `pkgs.python2Packages`
 
 #### `buildPythonPackage` function
@@ -1016,7 +1132,7 @@ are used in `buildPythonPackage`.
 - `pipBuildHook` to build a wheel using `pip` and PEP 517. Note a build system
   (e.g. `setuptools` or `flit`) should still be added as `nativeBuildInput`.
 - `pipInstallHook` to install wheels.
-- `pytestCheckHook` to run tests with `pytest`.
+- `pytestCheckHook` to run tests with `pytest`. See [example usage](#using-pytestcheckhook).
 - `pythonCatchConflictsHook` to check whether a Python package is not already existing.
 - `pythonImportsCheckHook` to check whether importing the listed modules works.
 - `pythonRemoveBinBytecode` to remove bytecode from the `/bin` folder.
diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md
index ec418c56335..6c51da87cab 100644
--- a/doc/languages-frameworks/rust.section.md
+++ b/doc/languages-frameworks/rust.section.md
@@ -43,7 +43,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/BurntSushi/ripgrep";
     license = licenses.unlicense;
     maintainers = [ maintainers.tailhook ];
-    platforms = platforms.all;
   };
 }
 ```
@@ -79,7 +78,7 @@ pkgs.rustPlatform.buildRustPackage {
 
 When using `buildRustPackage`, the `checkPhase` is enabled by default and runs
 `cargo test` on the package to build. To make sure that we don't compile the
-sources twice and to actually test the artifacts that will be used at runtime, 
+sources twice and to actually test the artifacts that will be used at runtime,
 the tests will be ran in the `release` mode by default.
 
 However, in some cases the test-suite of a package doesn't work properly in the
diff --git a/doc/languages-frameworks/vim.section.md b/doc/languages-frameworks/vim.section.md
index 4911509212e..8e4826232e1 100644
--- a/doc/languages-frameworks/vim.section.md
+++ b/doc/languages-frameworks/vim.section.md
@@ -263,6 +263,8 @@ Sometimes plugins require an override that must be changed when the plugin is up
 
 To add a new plugin, run `./update.py --add "[owner]/[name]"`. **NOTE**: This script automatically commits to your git repository. Be sure to check out a fresh branch before running.
 
+Finally, there are some plugins that are also packaged in nodePackages because they have Javascript-related build steps, such as running webpack. Those plugins are not listed in `vim-plugin-names` or managed by `update.py` at all, and are included separately in `overrides.nix`. Currently, all these plugins are related to the `coc.nvim` ecosystem of Language Server Protocol integration with vim/neovim.
+
 ## Important repositories
 
 - [vim-pi](https://bitbucket.org/vimcommunity/vim-pi) is a plugin repository
diff --git a/doc/old/cross.txt b/doc/old/cross.txt
index 9dd5b4c9993..064ca8d37b0 100644
--- a/doc/old/cross.txt
+++ b/doc/old/cross.txt
@@ -220,7 +220,7 @@ fi
 
 preConfigure=preConfigure
 preConfigure() {
-    
+
     # Determine the frontends to build.
     langs="c"
     if test -n "$langCC"; then
@@ -262,7 +262,7 @@ postInstall() {
 
 #if test -z "$profiledCompiler"; then
     #makeFlags="bootstrap"
-#else    
+#else
     #makeFlags="profiledbootstrap"
 #fi
 
diff --git a/doc/stdenv/meta.xml b/doc/stdenv/meta.xml
index 45f7834eb2c..9cef9360002 100644
--- a/doc/stdenv/meta.xml
+++ b/doc/stdenv/meta.xml
@@ -155,17 +155,17 @@ hello-2.3  A program that produces a familiar, friendly greeting
       <itemizedlist>
        <listitem>
         <para>
-         Single license referenced by attribute (preferred) <literal>stdenv.lib.licenses.gpl3</literal>.
+         Single license referenced by attribute (preferred) <literal>stdenv.lib.licenses.gpl3Only</literal>.
         </para>
        </listitem>
        <listitem>
         <para>
-         Single license referenced by its attribute shortName (frowned upon) <literal>"gpl3"</literal>.
+         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"</literal>.
+         Single license referenced by its attribute spdxId (frowned upon) <literal>"GPL-3.0-only"</literal>.
         </para>
        </listitem>
        <listitem>
diff --git a/doc/stdenv/multiple-output.xml b/doc/stdenv/multiple-output.xml
index 51e1cc2e024..0f177ec719f 100644
--- a/doc/stdenv/multiple-output.xml
+++ b/doc/stdenv/multiple-output.xml
@@ -22,39 +22,69 @@
     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 via <varname>systemPackages</varname> or <command>nix-env</command> you have several options:
+   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>
 
-  <itemizedlist>
-   <listitem>
-    <para>
-     You can install particular outputs explicitly, as each is available in the Nix language as an attribute of the package. The <varname>outputs</varname> attribute contains a list of output names.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     You can let it use the default outputs. These are handled by <varname>meta.outputsToInstall</varname> attribute that contains a list of output names.
-    </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>
-     TODO: more about tweaking the attribute, etc.
+     <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>
-   </listitem>
-   <listitem>
+<programlisting>$ nix-env -iA nixpkgs.coreutils.info</programlisting>
     <para>
-     NixOS provides configuration option <varname>environment.extraOutputsToInstall</varname> that allows adding extra outputs of <varname>environment.systemPackages</varname> atop the default ones. It's mainly meant for documentation and debug symbols, and it's also modified by specific options.
+     installs the <literal>"out"</literal> output (<varname>coreutils.meta.outputsToInstall</varname> is <literal>[ "out" ]</literal>) instead of the requested <literal>"info"</literal>.
     </para>
-    <note>
-     <para>
-      At this moment there is no similar configurability for packages installed by <command>nix-env</command>. You can still use approach from <xref linkend="sec-modify-via-packageOverrides" /> to override <varname>meta.outputsToInstall</varname> attributes, but that's a rather inconvenient way.
-     </para>
-    </note>
-   </listitem>
-  </itemizedlist>
+   </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>
diff --git a/doc/stdenv/stdenv.xml b/doc/stdenv/stdenv.xml
index ee93f39318b..f97c2a145af 100644
--- a/doc/stdenv/stdenv.xml
+++ b/doc/stdenv/stdenv.xml
@@ -254,7 +254,7 @@ let f(h, h + 1, i) = i + h
 
   <variablelist>
    <title>Variables specifying dependencies</title>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-depsBuildBuild">
     <term>
      <varname>depsBuildBuild</varname>
     </term>
@@ -267,7 +267,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-nativeBuildInputs">
     <term>
      <varname>nativeBuildInputs</varname>
     </term>
@@ -280,7 +280,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-depsBuildTarget">
     <term>
      <varname>depsBuildTarget</varname>
     </term>
@@ -296,7 +296,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-depsHostHost">
     <term>
      <varname>depsHostHost</varname>
     </term>
@@ -306,7 +306,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-buildInputs">
     <term>
      <varname>buildInputs</varname>
     </term>
@@ -319,7 +319,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-depsTargetTarget">
     <term>
      <varname>depsTargetTarget</varname>
     </term>
@@ -329,7 +329,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-depsBuildBuildPropagated">
     <term>
      <varname>depsBuildBuildPropagated</varname>
     </term>
@@ -339,7 +339,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-propagatedNativeBuildInputs">
     <term>
      <varname>propagatedNativeBuildInputs</varname>
     </term>
@@ -349,7 +349,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-depsBuildTargetPropagated">
     <term>
      <varname>depsBuildTargetPropagated</varname>
     </term>
@@ -359,7 +359,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-depsHostHostPropagated">
     <term>
      <varname>depsHostHostPropagated</varname>
     </term>
@@ -369,7 +369,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-propagatedBuildInputs">
     <term>
      <varname>propagatedBuildInputs</varname>
     </term>
@@ -379,7 +379,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-depsTargetTargetPropagated">
     <term>
      <varname>depsTargetTargetPropagated</varname>
     </term>
@@ -396,7 +396,7 @@ let f(h, h + 1, i) = i + h
 
   <variablelist>
    <title>Variables affecting <literal>stdenv</literal> initialisation</title>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-NIX_DEBUG">
     <term>
      <varname>NIX_DEBUG</varname>
     </term>
@@ -410,7 +410,7 @@ let f(h, h + 1, i) = i + h
 
   <variablelist>
    <title>Attributes affecting build properties</title>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-enableParallelBuilding">
     <term>
      <varname>enableParallelBuilding</varname>
     </term>
@@ -427,7 +427,7 @@ let f(h, h + 1, i) = i + h
 
   <variablelist>
    <title>Special variables</title>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-passthru">
     <term>
      <varname>passthru</varname>
     </term>
@@ -504,7 +504,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
     There are a number of variables that control what phases are executed and in what order:
     <variablelist>
      <title>Variables affecting phase control</title>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-phases">
       <term>
        <varname>phases</varname>
       </term>
@@ -517,7 +517,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
        </para>
       </listitem>
      </varlistentry>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-prePhases">
       <term>
        <varname>prePhases</varname>
       </term>
@@ -527,7 +527,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
        </para>
       </listitem>
      </varlistentry>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-preConfigurePhases">
       <term>
        <varname>preConfigurePhases</varname>
       </term>
@@ -537,7 +537,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
        </para>
       </listitem>
      </varlistentry>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-preBuildPhases">
       <term>
        <varname>preBuildPhases</varname>
       </term>
@@ -547,7 +547,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
        </para>
       </listitem>
      </varlistentry>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-preInstallPhases">
       <term>
        <varname>preInstallPhases</varname>
       </term>
@@ -557,7 +557,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
        </para>
       </listitem>
      </varlistentry>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-preFixupPhases">
       <term>
        <varname>preFixupPhases</varname>
       </term>
@@ -567,7 +567,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
        </para>
       </listitem>
      </varlistentry>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-preDistPhases">
       <term>
        <varname>preDistPhases</varname>
       </term>
@@ -577,7 +577,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
        </para>
       </listitem>
      </varlistentry>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-postPhases">
       <term>
        <varname>postPhases</varname>
       </term>
@@ -635,7 +635,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
 
    <variablelist>
     <title>Variables controlling the unpack phase</title>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-src">
      <term>
       <varname>srcs</varname> / <varname>src</varname>
      </term>
@@ -645,7 +645,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-sourceRoot">
      <term>
       <varname>sourceRoot</varname>
      </term>
@@ -655,7 +655,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-setSourceRoot">
      <term>
       <varname>setSourceRoot</varname>
      </term>
@@ -665,7 +665,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-preUnpack">
      <term>
       <varname>preUnpack</varname>
      </term>
@@ -675,7 +675,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postUnpack">
      <term>
       <varname>postUnpack</varname>
      </term>
@@ -685,7 +685,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontUnpack">
      <term>
       <varname>dontUnpack</varname>
      </term>
@@ -695,7 +695,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontMakeSourcesWritable">
      <term>
       <varname>dontMakeSourcesWritable</varname>
      </term>
@@ -705,7 +705,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-unpackCmd">
      <term>
       <varname>unpackCmd</varname>
      </term>
@@ -727,7 +727,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
 
    <variablelist>
     <title>Variables controlling the patch phase</title>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontPatch">
      <term>
       <varname>dontPatch</varname>
      </term>
@@ -737,7 +737,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-patches">
      <term>
       <varname>patches</varname>
      </term>
@@ -747,7 +747,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-patchFlags">
      <term>
       <varname>patchFlags</varname>
      </term>
@@ -757,7 +757,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-prePatch">
      <term>
       <varname>prePatch</varname>
      </term>
@@ -767,7 +767,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postPatch">
      <term>
       <varname>postPatch</varname>
      </term>
@@ -789,7 +789,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
 
    <variablelist>
     <title>Variables controlling the configure phase</title>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-configureScript">
      <term>
       <varname>configureScript</varname>
      </term>
@@ -799,7 +799,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-configureFlags">
      <term>
       <varname>configureFlags</varname>
      </term>
@@ -809,7 +809,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontConfigure">
      <term>
       <varname>dontConfigure</varname>
      </term>
@@ -819,7 +819,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-configureFlagsArray">
      <term>
       <varname>configureFlagsArray</varname>
      </term>
@@ -829,7 +829,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontAddPrefix">
      <term>
       <varname>dontAddPrefix</varname>
      </term>
@@ -839,7 +839,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-prefix">
      <term>
       <varname>prefix</varname>
      </term>
@@ -849,7 +849,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-prefixKey">
      <term>
       <varname>prefixKey</varname>
      </term>
@@ -859,7 +859,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontAddDisableDepTrack">
      <term>
       <varname>dontAddDisableDepTrack</varname>
      </term>
@@ -869,7 +869,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontFixLibtool">
      <term>
       <varname>dontFixLibtool</varname>
      </term>
@@ -885,7 +885,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontDisableStatic">
      <term>
       <varname>dontDisableStatic</varname>
      </term>
@@ -898,7 +898,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-configurePlatforms">
      <term>
       <varname>configurePlatforms</varname>
      </term>
@@ -913,7 +913,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-preConfigure">
      <term>
       <varname>preConfigure</varname>
      </term>
@@ -923,7 +923,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postConfigure">
      <term>
       <varname>postConfigure</varname>
      </term>
@@ -945,7 +945,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
 
    <variablelist>
     <title>Variables controlling the build phase</title>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontBuild">
      <term>
       <varname>dontBuild</varname>
      </term>
@@ -955,7 +955,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-makefile">
      <term>
       <varname>makefile</varname>
      </term>
@@ -965,7 +965,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-makeFlags">
      <term>
       <varname>makeFlags</varname>
      </term>
@@ -983,7 +983,7 @@ makeFlags = [ "PREFIX=$(out)" ];
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-makeFlagsArray">
      <term>
       <varname>makeFlagsArray</varname>
      </term>
@@ -999,7 +999,7 @@ preBuild = ''
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-buildFlags">
      <term>
       <varname>buildFlags</varname> / <varname>buildFlagsArray</varname>
      </term>
@@ -1009,7 +1009,7 @@ preBuild = ''
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-preBuild">
      <term>
       <varname>preBuild</varname>
      </term>
@@ -1019,7 +1019,7 @@ preBuild = ''
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postBuild">
      <term>
       <varname>postBuild</varname>
      </term>
@@ -1049,7 +1049,7 @@ preBuild = ''
 
    <variablelist>
     <title>Variables controlling the check phase</title>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-doCheck">
      <term>
       <varname>doCheck</varname>
      </term>
@@ -1067,11 +1067,11 @@ preBuild = ''
      </term>
      <listitem>
       <para>
-       See the build phase for details.
+       See the <link xlink:href="#var-stdenv-makeFlags">build phase</link> for details.
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-checkTarget">
      <term>
       <varname>checkTarget</varname>
      </term>
@@ -1081,7 +1081,7 @@ preBuild = ''
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-checkFlags">
      <term>
       <varname>checkFlags</varname> / <varname>checkFlagsArray</varname>
      </term>
@@ -1091,7 +1091,7 @@ preBuild = ''
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-checkInputs">
      <term>
       <varname>checkInputs</varname>
      </term>
@@ -1101,7 +1101,7 @@ preBuild = ''
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-preCheck">
      <term>
       <varname>preCheck</varname>
      </term>
@@ -1111,7 +1111,7 @@ preBuild = ''
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postCheck">
      <term>
       <varname>postCheck</varname>
      </term>
@@ -1133,7 +1133,7 @@ preBuild = ''
 
    <variablelist>
     <title>Variables controlling the install phase</title>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-dontInstall">
      <term>
        <varname>dontInstall</varname>
      </term>
@@ -1149,11 +1149,11 @@ preBuild = ''
      </term>
      <listitem>
       <para>
-       See the build phase for details.
+       See the <link xlink:href="#var-stdenv-makeFlags">build phase</link> for details.
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-installTargets">
      <term>
       <varname>installTargets</varname>
      </term>
@@ -1165,7 +1165,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-installFlags">
      <term>
       <varname>installFlags</varname> / <varname>installFlagsArray</varname>
      </term>
@@ -1175,7 +1175,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-preInstall">
      <term>
       <varname>preInstall</varname>
      </term>
@@ -1185,7 +1185,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postInstall">
      <term>
       <varname>postInstall</varname>
      </term>
@@ -1229,7 +1229,7 @@ installTargets = "install-bin install-doc";</programlisting>
 
    <variablelist>
     <title>Variables controlling the fixup phase</title>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontFixup">
      <term>
       <varname>dontFixup</varname>
      </term>
@@ -1239,7 +1239,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontStrip">
      <term>
       <varname>dontStrip</varname>
      </term>
@@ -1249,7 +1249,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontStripHost">
      <term>
       <varname>dontStripHost</varname>
      </term>
@@ -1259,7 +1259,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontStripTarget">
      <term>
       <varname>dontStripTarget</varname>
      </term>
@@ -1269,7 +1269,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontMoveSbin">
      <term>
       <varname>dontMoveSbin</varname>
      </term>
@@ -1279,7 +1279,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-stripAllList">
      <term>
       <varname>stripAllList</varname>
      </term>
@@ -1289,7 +1289,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-stripAllFlags">
      <term>
       <varname>stripAllFlags</varname>
      </term>
@@ -1299,7 +1299,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-stripDebugList">
      <term>
       <varname>stripDebugList</varname>
      </term>
@@ -1309,7 +1309,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-stripDebugFlags">
      <term>
       <varname>stripDebugFlags</varname>
      </term>
@@ -1319,7 +1319,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontPatchELF">
      <term>
       <varname>dontPatchELF</varname>
      </term>
@@ -1329,7 +1329,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontPatchShebangs">
      <term>
       <varname>dontPatchShebangs</varname>
      </term>
@@ -1339,7 +1339,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontPruneLibtoolFiles">
      <term>
       <varname>dontPruneLibtoolFiles</varname>
      </term>
@@ -1349,7 +1349,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-forceShare">
      <term>
       <varname>forceShare</varname>
      </term>
@@ -1359,7 +1359,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-setupHook">
      <term>
       <varname>setupHook</varname>
      </term>
@@ -1370,7 +1370,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-preFixup">
      <term>
       <varname>preFixup</varname>
      </term>
@@ -1380,7 +1380,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postFixup">
      <term>
       <varname>postFixup</varname>
      </term>
@@ -1419,7 +1419,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
 
    <variablelist>
     <title>Variables controlling the installCheck phase</title>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-doInstallCheck">
      <term>
       <varname>doInstallCheck</varname>
      </term>
@@ -1431,7 +1431,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-installCheckTarget">
      <term>
       <varname>installCheckTarget</varname>
      </term>
@@ -1441,7 +1441,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-installCheckFlags">
      <term>
       <varname>installCheckFlags</varname> / <varname>installCheckFlagsArray</varname>
      </term>
@@ -1451,7 +1451,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-installCheckInputs">
      <term>
       <varname>installCheckInputs</varname>
      </term>
@@ -1461,7 +1461,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-preInstallCheck">
      <term>
       <varname>preInstallCheck</varname>
      </term>
@@ -1471,7 +1471,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postInstallCheck">
      <term>
       <varname>postInstallCheck</varname>
      </term>
@@ -1493,7 +1493,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
 
    <variablelist>
     <title>Variables controlling the distribution phase</title>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-distTarget">
      <term>
       <varname>distTarget</varname>
      </term>
@@ -1503,7 +1503,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-distFlags">
      <term>
       <varname>distFlags</varname> / <varname>distFlagsArray</varname>
      </term>
@@ -1513,7 +1513,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-tarballs">
      <term>
       <varname>tarballs</varname>
      </term>
@@ -1523,7 +1523,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontCopyDist">
      <term>
       <varname>dontCopyDist</varname>
      </term>
@@ -1533,7 +1533,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-preDist">
      <term>
       <varname>preDist</varname>
      </term>
@@ -1543,7 +1543,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postDist">
      <term>
       <varname>postDist</varname>
      </term>
@@ -2019,6 +2019,9 @@ addEnvHooks "$hostOffset" myBashFunction
        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>
diff --git a/doc/using/configuration.xml b/doc/using/configuration.xml
index 690bb3d34a1..b670f78f28b 100644
--- a/doc/using/configuration.xml
+++ b/doc/using/configuration.xml
@@ -162,10 +162,10 @@
 </programlisting>
     </para>
     <para>
-     The following example configuration blacklists the <literal>gpl3</literal> and <literal>agpl3</literal> licenses:
+     The following example configuration blacklists the <literal>gpl3Only</literal> and <literal>agpl3Only</literal> licenses:
 <programlisting>
 {
-  blacklistedLicenses = with stdenv.lib.licenses; [ agpl3 gpl3 ];
+  blacklistedLicenses = with stdenv.lib.licenses; [ agpl3Only gpl3Only ];
 }
 </programlisting>
     </para>
diff --git a/doc/using/overlays.xml b/doc/using/overlays.xml
index 3fa68e32a3c..7f6ee040c7c 100644
--- a/doc/using/overlays.xml
+++ b/doc/using/overlays.xml
@@ -178,26 +178,40 @@ self: super:
          <para>
            <link
            xlink:href="https://software.intel.com/en-us/mkl">Intel
-           MKL</link> (only works on x86 architecture, unfree)
+           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://developer.amd.com/amd-aocl/blas-library/">AMD
+           BLIS/LIBFLAME</link> (optimized for modern AMD x86_64 CPUs)
+         </para>
+         <para>
+          The AMD BLIS library, with attribute <literal>amd-blis</literal>,
+          provides a BLAS implementation. 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 ‘blas’ and ‘lapack’
-       packages to use different implementations, through the
-       ‘blasProvider’ and ‘lapackProvider’ argument. This can be used
+       #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
-       LAPCK libraries. For example, Intel MKL is both a BLAS and
+       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>
@@ -216,8 +230,9 @@ self: super:
      <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 libblas.so.3 and
-       liblapack.so.3. For instance:
+       using <literal>LD_LIBRARY_PATH</literal> of
+       <literal>libblas.so.3</literal> and
+       <literal>liblapack.so.3</literal>. For instance:
      </para>
      <programlisting>
 $ LD_LIBRARY_PATH=$(nix-build -A mkl)/lib:$LD_LIBRARY_PATH nix-shell -p octave --run octave
diff --git a/flake.nix b/flake.nix
index e37621c6fc1..e7c04417ac8 100644
--- a/flake.nix
+++ b/flake.nix
@@ -12,23 +12,30 @@
 
       lib = import ./lib;
 
-      systems = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" ];
+      systems = [
+        "x86_64-linux"
+        "i686-linux"
+        "x86_64-darwin"
+        "aarch64-linux"
+        "armv6l-linux"
+        "armv7l-linux"
+      ];
 
       forAllSystems = f: lib.genAttrs systems (system: f system);
 
     in
     {
-      lib = lib // {
+      lib = lib.extend (final: prev: {
         nixosSystem = { modules, ... } @ args:
           import ./nixos/lib/eval-config.nix (args // {
             modules = modules ++
               [ { system.nixos.versionSuffix =
-                    ".${lib.substring 0 8 (self.lastModifiedDate or self.lastModified)}.${self.shortRev or "dirty"}";
-                  system.nixos.revision = lib.mkIf (self ? rev) self.rev;
+                    ".${final.substring 0 8 (self.lastModifiedDate or self.lastModified)}.${self.shortRev or "dirty"}";
+                  system.nixos.revision = final.mkIf (self ? rev) self.rev;
                 }
               ];
           });
-      };
+      });
 
       checks.x86_64-linux.tarball = jobs.tarball;
 
diff --git a/lib/default.nix b/lib/default.nix
index 7387e9d9f1f..43b9ab5930c 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -67,7 +67,7 @@ let
     inherit (trivial) id const pipe concat or and bitAnd bitOr bitXor
       bitNot boolToString mergeAttrs flip mapNullable inNixShell min max
       importJSON warn info showWarnings nixpkgsVersion version mod compare
-      splitByAndCompare functionArgs setFunctionArgs isFunction;
+      splitByAndCompare functionArgs setFunctionArgs isFunction toHexString toBaseDigits;
     inherit (fixedPoints) fix fix' converge extends composeExtensions
       makeExtensible makeExtensibleWithCustomName;
     inherit (attrsets) attrByPath hasAttrByPath setAttrByPath
diff --git a/lib/generators.nix b/lib/generators.nix
index efe6ea6031d..abd237eb7d3 100644
--- a/lib/generators.nix
+++ b/lib/generators.nix
@@ -48,8 +48,10 @@ rec {
     else if isAttrs    v then err "attrsets" v
     # functions can’t be printed of course
     else if isFunction v then err "functions" v
-    # let’s not talk about floats. There is no sensible `toString` for them.
-    else if isFloat    v then err "floats" v
+    # Floats currently can't be converted to precise strings,
+    # condition warning on nix version once this isn't a problem anymore
+    # See https://github.com/NixOS/nix/pull/3480
+    else if isFloat    v then libStr.floatToString v
     else err "this value is" (toString v);
 
 
diff --git a/lib/licenses.nix b/lib/licenses.nix
index ed4d80fffac..ee11966b0d5 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -28,7 +28,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "Academic Free License v3.0";
   };
 
-  agpl3 = spdx {
+  agpl3Only = spdx {
     spdxId = "AGPL-3.0-only";
     fullName = "GNU Affero General Public License v3.0 only";
   };
@@ -85,6 +85,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = ''Beerware License'';
   };
 
+  blueOak100 = spdx {
+    spdxId = "BlueOak-1.0.0";
+    fullName = "Blue Oak Model License 1.0.0";
+  };
+
   bsd0 = spdx {
     spdxId = "0BSD";
     fullName = "BSD Zero Clause License";
@@ -110,6 +115,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = ''BSD 4-clause "Original" or "Old" License'';
   };
 
+  bsdProtection = spdx {
+    spdxId = "BSD-Protection";
+    fullName = "BSD Protection License";
+  };
+
   bsl11 = {
     fullName = "Business Source License 1.1";
     url = "https://mariadb.com/bsl11";
@@ -281,12 +291,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "European Union Public License 1.2";
   };
 
-  fdl11 = spdx {
+  fdl11Only = spdx {
     spdxId = "GFDL-1.1-only";
     fullName = "GNU Free Documentation License v1.1 only";
   };
 
-  fdl12 = spdx {
+  fdl12Only = spdx {
     spdxId = "GFDL-1.2-only";
     fullName = "GNU Free Documentation License v1.2 only";
   };
@@ -296,7 +306,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "GNU Free Documentation License v1.2 or later";
   };
 
-  fdl13 = spdx {
+  fdl13Only = spdx {
     spdxId = "GFDL-1.3-only";
     fullName = "GNU Free Documentation License v1.3 only";
   };
@@ -327,7 +337,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     free = false;
   };
 
-  gpl1 = spdx {
+  gpl1Only = spdx {
     spdxId = "GPL-1.0-only";
     fullName = "GNU General Public License v1.0 only";
   };
@@ -337,7 +347,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "GNU General Public License v1.0 or later";
   };
 
-  gpl2 = spdx {
+  gpl2Only = spdx {
     spdxId = "GPL-2.0-only";
     fullName = "GNU General Public License v2.0 only";
   };
@@ -362,7 +372,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "GNU General Public License v2.0 or later";
   };
 
-  gpl3 = spdx {
+  gpl3Only = spdx {
     spdxId = "GPL-3.0-only";
     fullName = "GNU General Public License v3.0 only";
   };
@@ -426,6 +436,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
   };
 
   # Proprietary binaries; free to redistribute without modification.
+  databricks = {
+    fullName = "Databricks Proprietary License";
+    url = "https://pypi.org/project/databricks-connect";
+    free = false;
+  };
+
   issl = {
     fullName = "Intel Simplified Software License";
     url = "https://software.intel.com/en-us/license/intel-simplified-software-license";
@@ -437,7 +453,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "JasPer License";
   };
 
-  lgpl2 = spdx {
+  lgpl2Only = spdx {
     spdxId = "LGPL-2.0-only";
     fullName = "GNU Library General Public License v2 only";
   };
@@ -447,7 +463,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "GNU Library General Public License v2 or later";
   };
 
-  lgpl21 = spdx {
+  lgpl21Only = spdx {
     spdxId = "LGPL-2.1-only";
     fullName = "GNU Lesser General Public License v2.1 only";
   };
@@ -457,7 +473,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "GNU Lesser General Public License v2.1 or later";
   };
 
-  lgpl3 = spdx {
+  lgpl3Only = spdx {
     spdxId = "LGPL-3.0-only";
     fullName = "GNU Lesser General Public License v3.0 only";
   };
@@ -782,4 +798,16 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     spdxId = "ZPL-2.1";
     fullName = "Zope Public License 2.1";
   };
+} // {
+  # TODO: remove legacy aliases
+  agpl3 = lib.licenses.agpl3Only;
+  fdl11 = lib.licenses.fdl11Only;
+  fdl12 = lib.licenses.fdl12Only;
+  fdl13 = lib.licenses.fdl13Only;
+  gpl1 = lib.licenses.gpl1Only;
+  gpl2 = lib.licenses.gpl2Only;
+  gpl3 = lib.licenses.gpl3Only;
+  lgpl2 = lib.licenses.lgpl2Only;
+  lgpl21 = lib.licenses.lgpl21Only;
+  lgpl3 = lib.licenses.lgpl3Only;
 }
diff --git a/lib/modules.nix b/lib/modules.nix
index c18fec66c70..decb96ffe11 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -58,6 +58,23 @@ rec {
             default = check;
             description = "Whether to check whether all option definitions have matching declarations.";
           };
+
+          _module.freeformType = mkOption {
+            # Disallow merging for now, but could be implemented nicely with a `types.optionType`
+            type = types.nullOr (types.uniq types.attrs);
+            internal = true;
+            default = null;
+            description = ''
+              If set, merge all definitions that don't have an associated option
+              together using this type. The result then gets combined with the
+              values of all declared options to produce the final <literal>
+              config</literal> value.
+
+              If this is <literal>null</literal>, definitions without an option
+              will throw an error unless <option>_module.check</option> is
+              turned off.
+            '';
+          };
         };
 
         config = {
@@ -65,35 +82,55 @@ rec {
         };
       };
 
-      collected = collectModules
-        (specialArgs.modulesPath or "")
-        (modules ++ [ internalModule ])
-        ({ inherit config options lib; } // specialArgs);
-
-      options = mergeModules prefix (reverseList collected);
-
-      # Traverse options and extract the option values into the final
-      # config set.  At the same time, check whether all option
-      # definitions have matching declarations.
-      # !!! _module.check's value can't depend on any other config values
-      # without an infinite recursion. One way around this is to make the
-      # 'config' passed around to the modules be unconditionally unchecked,
-      # and only do the check in 'result'.
-      config = yieldConfig prefix options;
-      yieldConfig = prefix: set:
-        let res = removeAttrs (mapAttrs (n: v:
-          if isOption v then v.value
-          else yieldConfig (prefix ++ [n]) v) set) ["_definedNames"];
-        in
-        if options._module.check.value && set ? _definedNames then
-          foldl' (res: m:
-            foldl' (res: name:
-              if set ? ${name} then res else throw "The option `${showOption (prefix ++ [name])}' defined in `${m.file}' does not exist.")
-              res m.names)
-            res set._definedNames
-        else
-          res;
-      result = {
+      merged =
+        let collected = collectModules
+          (specialArgs.modulesPath or "")
+          (modules ++ [ internalModule ])
+          ({ inherit lib options config; } // specialArgs);
+        in mergeModules prefix (reverseList collected);
+
+      options = merged.matchedOptions;
+
+      config =
+        let
+
+          # For definitions that have an associated option
+          declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
+
+          # If freeformType is set, this is for definitions that don't have an associated option
+          freeformConfig =
+            let
+              defs = map (def: {
+                file = def.file;
+                value = setAttrByPath def.prefix def.value;
+              }) merged.unmatchedDefns;
+            in if defs == [] then {}
+            else declaredConfig._module.freeformType.merge prefix defs;
+
+        in if declaredConfig._module.freeformType == null then declaredConfig
+          # Because all definitions that had an associated option ended in
+          # declaredConfig, freeformConfig can only contain the non-option
+          # paths, meaning recursiveUpdate will never override any value
+          else recursiveUpdate freeformConfig declaredConfig;
+
+      checkUnmatched =
+        if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [] then
+          let
+            firstDef = head merged.unmatchedDefns;
+            baseMsg = "The option `${showOption (prefix ++ firstDef.prefix)}' defined in `${firstDef.file}' does not exist.";
+          in
+            if attrNames options == [ "_module" ]
+              then throw ''
+                ${baseMsg}
+
+                However there are no options defined in `${showOption prefix}'. Are you sure you've
+                declared your options properly? This can happen if you e.g. declared your options in `types.submodule'
+                under `config' rather than `options'.
+              ''
+            else throw baseMsg
+        else null;
+
+      result = builtins.seq checkUnmatched {
         inherit options;
         config = removeAttrs config [ "_module" ];
         inherit (config) _module;
@@ -174,12 +211,16 @@ rec {
   /* Massage a module into canonical form, that is, a set consisting
      of ‘options’, ‘config’ and ‘imports’ attributes. */
   unifyModuleSyntax = file: key: m:
-    let addMeta = config: if m ? meta
-      then mkMerge [ config { meta = m.meta; } ]
-      else config;
+    let
+      addMeta = config: if m ? meta
+        then mkMerge [ config { meta = m.meta; } ]
+        else config;
+      addFreeformType = config: if m ? freeformType
+        then mkMerge [ config { _module.freeformType = m.freeformType; } ]
+        else config;
     in
     if m ? config || m ? options then
-      let badAttrs = removeAttrs m ["_file" "key" "disabledModules" "imports" "options" "config" "meta"]; in
+      let badAttrs = removeAttrs m ["_file" "key" "disabledModules" "imports" "options" "config" "meta" "freeformType"]; in
       if badAttrs != {} then
         throw "Module `${key}' has an unsupported attribute `${head (attrNames badAttrs)}'. This is caused by introducing a top-level `config' or `options' attribute. Add configuration attributes immediately on the top level instead, or move all of them (namely: ${toString (attrNames badAttrs)}) into the explicit `config' attribute."
       else
@@ -188,7 +229,7 @@ rec {
           disabledModules = m.disabledModules or [];
           imports = m.imports or [];
           options = m.options or {};
-          config = addMeta (m.config or {});
+          config = addFreeformType (addMeta (m.config or {}));
         }
     else
       { _file = m._file or file;
@@ -196,7 +237,7 @@ rec {
         disabledModules = m.disabledModules or [];
         imports = m.require or [] ++ m.imports or [];
         options = {};
-        config = addMeta (removeAttrs m ["_file" "key" "disabledModules" "require" "imports"]);
+        config = addFreeformType (addMeta (removeAttrs m ["_file" "key" "disabledModules" "require" "imports" "freeformType"]));
       };
 
   applyIfFunction = key: f: args@{ config, options, lib, ... }: if isFunction f then
@@ -233,7 +274,23 @@ rec {
      declarations in all modules, combining them into a single set.
      At the same time, for each option declaration, it will merge the
      corresponding option definitions in all machines, returning them
-     in the ‘value’ attribute of each option. */
+     in the ‘value’ attribute of each option.
+
+     This returns a set like
+       {
+         # A recursive set of options along with their final values
+         matchedOptions = {
+           foo = { _type = "option"; value = "option value of foo"; ... };
+           bar.baz = { _type = "option"; value = "option value of bar.baz"; ... };
+           ...
+         };
+         # A list of definitions that weren't matched by any option
+         unmatchedDefns = [
+           { file = "file.nix"; prefix = [ "qux" ]; value = "qux"; }
+           ...
+         ];
+       }
+  */
   mergeModules = prefix: modules:
     mergeModules' prefix modules
       (concatMap (m: map (config: { file = m._file; inherit config; }) (pushDownProperties m.config)) modules);
@@ -280,9 +337,9 @@ rec {
       defnsByName' = byName "config" (module: value:
           [{ inherit (module) file; inherit value; }]
         ) configs;
-    in
-    (flip mapAttrs declsByName (name: decls:
-      # We're descending into attribute ‘name’.
+
+      resultsByName = flip mapAttrs declsByName (name: decls:
+        # We're descending into attribute ‘name’.
         let
           loc = prefix ++ [name];
           defns = defnsByName.${name} or [];
@@ -291,7 +348,10 @@ rec {
         in
           if nrOptions == length decls then
             let opt = fixupOptionType loc (mergeOptionDecls loc decls);
-            in evalOptionValue loc opt defns'
+            in {
+              matchedOptions = evalOptionValue loc opt defns';
+              unmatchedDefns = [];
+            }
           else if nrOptions != 0 then
             let
               firstOption = findFirst (m: isOption m.options) "" decls;
@@ -299,9 +359,27 @@ rec {
             in
               throw "The option `${showOption loc}' in `${firstOption._file}' is a prefix of options in `${firstNonOption._file}'."
           else
-            mergeModules' loc decls defns
-      ))
-    // { _definedNames = map (m: { inherit (m) file; names = attrNames m.config; }) configs; };
+            mergeModules' loc decls defns);
+
+      matchedOptions = mapAttrs (n: v: v.matchedOptions) resultsByName;
+
+      # an attrset 'name' => list of unmatched definitions for 'name'
+      unmatchedDefnsByName =
+        # Propagate all unmatched definitions from nested option sets
+        mapAttrs (n: v: v.unmatchedDefns) resultsByName
+        # Plus the definitions for the current prefix that don't have a matching option
+        // removeAttrs defnsByName' (attrNames matchedOptions);
+    in {
+      inherit matchedOptions;
+
+      # Transforms unmatchedDefnsByName into a list of definitions
+      unmatchedDefns = concatLists (mapAttrsToList (name: defs:
+        map (def: def // {
+          # Set this so we know when the definition first left unmatched territory
+          prefix = [name] ++ (def.prefix or []);
+        }) defs
+      ) unmatchedDefnsByName);
+    };
 
   /* Merge multiple option declarations into a single declaration.  In
      general, there should be only one declaration of each option.
@@ -535,7 +613,6 @@ rec {
         if tp.name == "option set" || tp.name == "submodule" then
           throw "The option ${showOption loc} uses submodules without a wrapping type, in ${showFiles opt.declarations}."
         else if optionSetIn "attrsOf" then types.attrsOf (types.submodule options)
-        else if optionSetIn "loaOf"   then types.loaOf   (types.submodule options)
         else if optionSetIn "listOf"  then types.listOf  (types.submodule options)
         else if optionSetIn "nullOr"  then types.nullOr  (types.submodule options)
         else tp;
diff --git a/lib/sources.nix b/lib/sources.nix
index ed9bce48530..776fcc32052 100644
--- a/lib/sources.nix
+++ b/lib/sources.nix
@@ -145,10 +145,14 @@ rec {
            # packed-refs file, so we have to grep through it:
            then
              let fileContent = readFile packedRefsName;
-                 matchRef    = match (".*\n([^\n ]*) " + file + "\n.*") fileContent;
-             in if  matchRef == null
+                 matchRef = builtins.match "([a-z0-9]+) ${file}";
+                 isRef = s: builtins.isString s && (matchRef s) != null;
+                 # there is a bug in libstdc++ leading to stackoverflow for long strings:
+                 # https://github.com/NixOS/nix/issues/2147#issuecomment-659868795
+                 refs = builtins.filter isRef (builtins.split "\n" fileContent);
+             in if refs == []
                 then throw ("Could not find " + file + " in " + packedRefsName)
-                else lib.head matchRef
+                else lib.head (matchRef (lib.head refs))
 
            else throw ("Not a .git directory: " + path);
     in readCommitFromFile "HEAD";
diff --git a/lib/strings.nix b/lib/strings.nix
index 74e3eaa0722..9fa9f023561 100644
--- a/lib/strings.nix
+++ b/lib/strings.nix
@@ -612,6 +612,22 @@ rec {
   */
   fixedWidthNumber = width: n: fixedWidthString width "0" (toString n);
 
+  /* Convert a float to a string, but emit a warning when precision is lost
+     during the conversion
+
+     Example:
+       floatToString 0.000001
+       => "0.000001"
+       floatToString 0.0000001
+       => trace: warning: Imprecise conversion from float to string 0.000000
+          "0.000000"
+  */
+  floatToString = float: let
+    result = toString float;
+    precise = float == builtins.fromJSON result;
+  in if precise then result
+    else lib.warn "Imprecise conversion from float to string ${result}" result;
+
   /* Check whether a value can be coerced to a string */
   isCoercibleToString = x:
     builtins.elem (builtins.typeOf x) [ "path" "string" "null" "int" "float" "bool" ] ||
@@ -673,14 +689,15 @@ rec {
             "/prefix/nix-profiles-library-paths.patch"
             "/prefix/compose-search-path.patch" ]
   */
-  readPathsFromFile = rootPath: file:
-    let
-      lines = lib.splitString "\n" (builtins.readFile file);
-      removeComments = lib.filter (line: line != "" && !(lib.hasPrefix "#" line));
-      relativePaths = removeComments lines;
-      absolutePaths = builtins.map (path: rootPath + "/${path}") relativePaths;
-    in
-      absolutePaths;
+  readPathsFromFile = lib.warn "lib.readPathsFromFile is deprecated, use a list instead"
+    (rootPath: file:
+      let
+        lines = lib.splitString "\n" (builtins.readFile file);
+        removeComments = lib.filter (line: line != "" && !(lib.hasPrefix "#" line));
+        relativePaths = removeComments lines;
+        absolutePaths = builtins.map (path: rootPath + "/${path}") relativePaths;
+      in
+        absolutePaths);
 
   /* Read the contents of a file removing the trailing \n
 
diff --git a/lib/systems/architectures.nix b/lib/systems/architectures.nix
new file mode 100644
index 00000000000..9d1c29fd9f0
--- /dev/null
+++ b/lib/systems/architectures.nix
@@ -0,0 +1,77 @@
+{ lib }:
+
+rec {
+  # platform.gcc.arch to its features (as in /proc/cpuinfo)
+  features = {
+    default        = [ ];
+    # x86_64 Intel
+    westmere       = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes"                                    ];
+    sandybridge    = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx"                              ];
+    ivybridge      = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx"                              ];
+    haswell        = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx" "avx2"          "fma"        ];
+    broadwell      = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx" "avx2"          "fma"        ];
+    skylake        = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx" "avx2"          "fma"        ];
+    skylake-avx512 = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx" "avx2" "avx512" "fma"        ];
+    # x86_64 AMD
+    btver1         = [ "sse3" "ssse3" "sse4_1" "sse4_2"                                                  ];
+    btver2         = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx"                              ];
+    bdver1         = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx"                 "fma" "fma4" ];
+    bdver2         = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx"                 "fma" "fma4" ];
+    bdver3         = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx"                 "fma" "fma4" ];
+    bdver4         = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2"          "fma" "fma4" ];
+    znver1         = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2"          "fma"        ];
+    znver2         = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2"          "fma"        ];
+    # other
+    armv5te        = [ ];
+    armv6          = [ ];
+    armv7-a        = [ ];
+    armv8-a        = [ ];
+    mips32         = [ ];
+    loongson2f     = [ ];
+  };
+
+  # a superior CPU has all the features of an inferior and is able to build and test code for it
+  inferiors = {
+    # x86_64 Intel
+    default        = [ ];
+    westmere       = [ ];
+    sandybridge    = [ "westmere"    ] ++ inferiors.westmere;
+    ivybridge      = [ "sandybridge" ] ++ inferiors.sandybridge;
+    haswell        = [ "ivybridge"   ] ++ inferiors.ivybridge;
+    broadwell      = [ "haswell"     ] ++ inferiors.haswell;
+    skylake        = [ "broadwell"   ] ++ inferiors.broadwell;
+    skylake-avx512 = [ "skylake"     ] ++ inferiors.skylake;
+    # x86_64 AMD
+    btver1         = [ ];
+    btver2         = [ ]; # TODO: fill this (need testing)
+    bdver1         = [ ]; # TODO: fill this (need testing)
+    bdver2         = [ ]; # TODO: fill this (need testing)
+    bdver3         = [ ]; # TODO: fill this (need testing)
+    bdver4         = [ ]; # TODO: fill this (need testing)
+    znver1         = [ ]; # TODO: fill this (need testing)
+    znver2         = [ ]; # TODO: fill this (need testing)
+    # other
+    armv5te        = [ ];
+    armv6          = [ ];
+    armv7-a        = [ ];
+    armv8-a        = [ ];
+    mips32         = [ ];
+    loongson2f     = [ ];
+  };
+
+  predicates = let
+    featureSupport = feature: x: builtins.elem feature features.${x};
+  in {
+    sse3Support    = featureSupport "sse3";
+    ssse3Support   = featureSupport "ssse3";
+    sse4_1Support  = featureSupport "sse4_1";
+    sse4_2Support  = featureSupport "sse4_2";
+    sse4_aSupport  = featureSupport "sse4a";
+    avxSupport     = featureSupport "avx";
+    avx2Support    = featureSupport "avx2";
+    avx512Support  = featureSupport "avx512";
+    aesSupport     = featureSupport "aes";
+    fmaSupport     = featureSupport "fma";
+    fma4Support    = featureSupport "fma4";
+  };
+}
diff --git a/lib/systems/default.nix b/lib/systems/default.nix
index 210674cc639..9939743157e 100644
--- a/lib/systems/default.nix
+++ b/lib/systems/default.nix
@@ -7,6 +7,7 @@ rec {
   inspect = import ./inspect.nix { inherit lib; };
   platforms = import ./platforms.nix { inherit lib; };
   examples = import ./examples.nix { inherit lib; };
+  architectures = import ./architectures.nix { inherit lib; };
 
   # Elaborate a `localSystem` or `crossSystem` so that it contains everything
   # necessary.
@@ -32,6 +33,7 @@ rec {
         /**/ if final.isDarwin              then "libSystem"
         else if final.isMinGW               then "msvcrt"
         else if final.isWasi                then "wasilibc"
+        else if final.isRedox               then "relibc"
         else if final.isMusl                then "musl"
         else if final.isUClibc              then "uclibc"
         else if final.isAndroid             then "bionic"
@@ -65,6 +67,7 @@ rec {
           freebsd = "FreeBSD";
           openbsd = "OpenBSD";
           wasi = "Wasi";
+          redox = "Redox";
           genode = "Genode";
         }.${final.parsed.kernel.name} or null;
 
@@ -74,6 +77,7 @@ rec {
          # uname -r
          release = null;
       };
+      isStatic = final.isWasm || final.isRedox;
 
       kernelArch =
         if final.isAarch32 then "arm"
@@ -123,6 +127,7 @@ rec {
         else throw "Don't know how to run ${final.config} executables.";
 
     } // mapAttrs (n: v: v final.parsed) inspect.predicates
+      // mapAttrs (n: v: v final.platform.gcc.arch or "default") architectures.predicates
       // args;
   in assert final.useAndroidPrebuilt -> final.isAndroid;
      assert lib.foldl
diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix
index a839b3d3d57..fb7d722e737 100644
--- a/lib/systems/doubles.nix
+++ b/lib/systems/doubles.nix
@@ -22,6 +22,8 @@ let
 
     "wasm64-wasi" "wasm32-wasi"
 
+    "x86_64-redox"
+
     "powerpc64le-linux"
 
     "riscv32-linux" "riscv64-linux"
@@ -36,7 +38,7 @@ let
 
     "js-ghcjs"
 
-    "aarch64-genode" "x86_64-genode"
+    "aarch64-genode" "i686-genode" "x86_64-genode"
   ];
 
   allParsed = map parse.mkSystemFromString all;
@@ -69,6 +71,7 @@ in {
   openbsd = filterDoubles predicates.isOpenBSD;
   unix    = filterDoubles predicates.isUnix;
   wasi    = filterDoubles predicates.isWasi;
+  redox   = filterDoubles predicates.isRedox;
   windows = filterDoubles predicates.isWindows;
   genode  = filterDoubles predicates.isGenode;
 
diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix
index 3b32130f388..5b90fdca524 100644
--- a/lib/systems/examples.nix
+++ b/lib/systems/examples.nix
@@ -46,7 +46,7 @@ rec {
 
   armv7a-android-prebuilt = {
     config = "armv7a-unknown-linux-androideabi";
-    sdkVer = "24";
+    sdkVer = "29";
     ndkVer = "18b";
     platform = platforms.armv7a-android;
     useAndroidPrebuilt = true;
@@ -54,7 +54,7 @@ rec {
 
   aarch64-android-prebuilt = {
     config = "aarch64-unknown-linux-android";
-    sdkVer = "24";
+    sdkVer = "29";
     ndkVer = "18b";
     platform = platforms.aarch64-multiplatform;
     useAndroidPrebuilt = true;
@@ -164,6 +164,15 @@ rec {
   };
 
   #
+  # Redox
+  #
+
+  x86_64-unknown-redox = {
+    config = "x86_64-unknown-redox";
+    libc = "relibc";
+  };
+
+  #
   # Darwin
   #
 
diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix
index 90a1fb6d80c..8fa63057250 100644
--- a/lib/systems/inspect.nix
+++ b/lib/systems/inspect.nix
@@ -33,7 +33,7 @@ rec {
 
     isBSD          = { kernel = { families = { inherit (kernelFamilies) bsd; }; }; };
     isDarwin       = { kernel = { families = { inherit (kernelFamilies) darwin; }; }; };
-    isUnix         = [ isBSD isDarwin isLinux isSunOS isCygwin ];
+    isUnix         = [ isBSD isDarwin isLinux isSunOS isCygwin isRedox ];
 
     isMacOS        = { kernel = kernels.macos; };
     isiOS          = { kernel = kernels.ios; };
@@ -46,6 +46,7 @@ rec {
     isCygwin       = { kernel = kernels.windows; abi = abis.cygnus; };
     isMinGW        = { kernel = kernels.windows; abi = abis.gnu; };
     isWasi         = { kernel = kernels.wasi; };
+    isRedox        = { kernel = kernels.redox; };
     isGhcjs        = { kernel = kernels.ghcjs; };
     isGenode       = { kernel = kernels.genode; };
     isNone         = { kernel = kernels.none; };
diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix
index 648e7c27024..6bd44a00746 100644
--- a/lib/systems/parse.nix
+++ b/lib/systems/parse.nix
@@ -277,6 +277,7 @@ rec {
     openbsd = { execFormat = elf;     families = { inherit bsd; }; };
     solaris = { execFormat = elf;     families = { }; };
     wasi    = { execFormat = wasm;    families = { }; };
+    redox   = { execFormat = elf;     families = { }; };
     windows = { execFormat = pe;      families = { }; };
     ghcjs   = { execFormat = unknown; families = { }; };
     genode  = { execFormat = elf;     families = { }; };
@@ -390,6 +391,8 @@ rec {
         then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = "windows";                    }
       else if (elemAt l 2 == "wasi")
         then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = "wasi";                       }
+      else if (elemAt l 2 == "redox")
+        then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = "redox";                      }
       else if hasPrefix "netbsd" (elemAt l 2)
         then { cpu = elemAt l 0; vendor = elemAt l 1;    kernel = elemAt l 2;                }
       else if (elem (elemAt l 2) ["eabi" "eabihf" "elf"])
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix
index 36ddd186d7b..b066f577f32 100644
--- a/lib/tests/misc.nix
+++ b/lib/tests/misc.nix
@@ -102,6 +102,16 @@ runTests {
     expected = 9;
   };
 
+  testToHexString = {
+    expr = toHexString 250;
+    expected = "FA";
+  };
+
+  testToBaseDigits = {
+    expr = toBaseDigits 2 6;
+    expected = [ 1 1 0 ];
+  };
+
 # STRINGS
 
   testConcatMapStrings = {
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh
index 6258244457a..943deebe3c0 100755
--- a/lib/tests/modules.sh
+++ b/lib/tests/modules.sh
@@ -210,6 +210,29 @@ checkConfigOutput "empty" config.value.foo ./declare-lazyAttrsOf.nix ./attrsOf-c
 checkConfigError 'The option value .* in .* is not of type .*' \
   config.value ./declare-int-unsigned-value.nix ./define-value-list.nix ./define-value-int-positive.nix
 
+## Freeform modules
+# Assigning without a declared option should work
+checkConfigOutput 24 config.value ./freeform-attrsOf.nix ./define-value-string.nix
+# No freeform assigments shouldn't make it error
+checkConfigOutput '{ }' config ./freeform-attrsOf.nix
+# but only if the type matches
+checkConfigError 'The option value .* in .* is not of type .*' config.value ./freeform-attrsOf.nix ./define-value-list.nix
+# and properties should be applied
+checkConfigOutput yes config.value ./freeform-attrsOf.nix ./define-value-string-properties.nix
+# Options should still be declarable, and be able to have a type that doesn't match the freeform type
+checkConfigOutput false config.enable ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix
+checkConfigOutput 24 config.value ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix
+# and this should work too with nested values
+checkConfigOutput false config.nest.foo ./freeform-attrsOf.nix ./freeform-nested.nix
+checkConfigOutput bar config.nest.bar ./freeform-attrsOf.nix ./freeform-nested.nix
+# Check whether a declared option can depend on an freeform-typed one
+checkConfigOutput null config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix
+checkConfigOutput 24 config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix ./define-value-string.nix
+# Check whether an freeform-typed value can depend on a declared option, this can only work with lazyAttrsOf
+checkConfigError 'infinite recursion encountered' config.foo ./freeform-attrsOf.nix ./freeform-unstr-dep-str.nix
+checkConfigError 'The option .* is used but not defined' config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix
+checkConfigOutput 24 config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix ./define-value-string.nix
+
 cat <<EOF
 ====== module tests ======
 $pass Pass
diff --git a/lib/tests/modules/define-option-dependently.nix b/lib/tests/modules/define-option-dependently.nix
index 6abce29366a..ad85f99a919 100644
--- a/lib/tests/modules/define-option-dependently.nix
+++ b/lib/tests/modules/define-option-dependently.nix
@@ -7,7 +7,7 @@
   # Always defined, but the value depends on the presence of an option.
   config = {
     value = if options ? enable then 360 else 7;
-  } 
+  }
   # Only define if possible.
   // lib.optionalAttrs (options ? enable) {
     enable = true;
diff --git a/lib/tests/modules/define-value-string-properties.nix b/lib/tests/modules/define-value-string-properties.nix
new file mode 100644
index 00000000000..972304c0112
--- /dev/null
+++ b/lib/tests/modules/define-value-string-properties.nix
@@ -0,0 +1,12 @@
+{ lib, ... }: {
+
+  imports = [{
+    value = lib.mkDefault "def";
+  }];
+
+  value = lib.mkMerge [
+    (lib.mkIf false "nope")
+    "yes"
+  ];
+
+}
diff --git a/lib/tests/modules/freeform-attrsOf.nix b/lib/tests/modules/freeform-attrsOf.nix
new file mode 100644
index 00000000000..8cc577f38a6
--- /dev/null
+++ b/lib/tests/modules/freeform-attrsOf.nix
@@ -0,0 +1,3 @@
+{ lib, ... }: {
+  freeformType = with lib.types; attrsOf (either str (attrsOf str));
+}
diff --git a/lib/tests/modules/freeform-lazyAttrsOf.nix b/lib/tests/modules/freeform-lazyAttrsOf.nix
new file mode 100644
index 00000000000..36d6c0b13fc
--- /dev/null
+++ b/lib/tests/modules/freeform-lazyAttrsOf.nix
@@ -0,0 +1,3 @@
+{ lib, ... }: {
+  freeformType = with lib.types; lazyAttrsOf (either str (lazyAttrsOf str));
+}
diff --git a/lib/tests/modules/freeform-nested.nix b/lib/tests/modules/freeform-nested.nix
new file mode 100644
index 00000000000..5da27f5a8b4
--- /dev/null
+++ b/lib/tests/modules/freeform-nested.nix
@@ -0,0 +1,7 @@
+{ lib, ... }: {
+  options.nest.foo = lib.mkOption {
+    type = lib.types.bool;
+    default = false;
+  };
+  config.nest.bar = "bar";
+}
diff --git a/lib/tests/modules/freeform-str-dep-unstr.nix b/lib/tests/modules/freeform-str-dep-unstr.nix
new file mode 100644
index 00000000000..a2dfbc80cfa
--- /dev/null
+++ b/lib/tests/modules/freeform-str-dep-unstr.nix
@@ -0,0 +1,8 @@
+{ lib, config, ... }: {
+  options.foo = lib.mkOption {
+    type = lib.types.nullOr lib.types.str;
+    default = null;
+  };
+
+  config.foo = lib.mkIf (config ? value) config.value;
+}
diff --git a/lib/tests/modules/freeform-unstr-dep-str.nix b/lib/tests/modules/freeform-unstr-dep-str.nix
new file mode 100644
index 00000000000..549d89afeca
--- /dev/null
+++ b/lib/tests/modules/freeform-unstr-dep-str.nix
@@ -0,0 +1,8 @@
+{ lib, config, ... }: {
+  options.value = lib.mkOption {
+    type = lib.types.nullOr lib.types.str;
+    default = null;
+  };
+
+  config.foo = lib.mkIf (config.value != null) config.value;
+}
diff --git a/lib/tests/release.nix b/lib/tests/release.nix
index eebee1b49bc..800d8a65c14 100644
--- a/lib/tests/release.nix
+++ b/lib/tests/release.nix
@@ -17,7 +17,6 @@ pkgs.runCommandNoCC "nixpkgs-lib-tests" {
     export TEST_ROOT=$(pwd)/test-tmp
     export NIX_BUILD_HOOK=
     export NIX_CONF_DIR=$TEST_ROOT/etc
-    export NIX_DB_DIR=$TEST_ROOT/db
     export NIX_LOCALSTATE_DIR=$TEST_ROOT/var
     export NIX_LOG_DIR=$TEST_ROOT/var/log/nix
     export NIX_STATE_DIR=$TEST_ROOT/var/nix
diff --git a/lib/tests/systems.nix b/lib/tests/systems.nix
index ea6e337937f..f691b2da316 100644
--- a/lib/tests/systems.nix
+++ b/lib/tests/systems.nix
@@ -12,22 +12,23 @@ let
     expected = lib.sort lib.lessThan y;
   };
 in with lib.systems.doubles; lib.runTests {
-  testall = mseteq all (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ wasi ++ windows ++ embedded ++ js ++ genode);
+  testall = mseteq all (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ wasi ++ windows ++ embedded ++ js ++ genode ++ redox);
 
   testarm = mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv6l-none" "armv7a-linux" "armv7l-linux" "arm-none" "armv7a-darwin" ];
-  testi686 = mseteq i686 [ "i686-linux" "i686-freebsd" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" "i686-darwin" ];
+  testi686 = mseteq i686 [ "i686-linux" "i686-freebsd" "i686-genode" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" "i686-darwin" ];
   testmips = mseteq mips [ "mipsel-linux" ];
-  testx86_64 = mseteq x86_64 [ "x86_64-linux" "x86_64-darwin" "x86_64-freebsd" "x86_64-genode" "x86_64-openbsd" "x86_64-netbsd" "x86_64-cygwin" "x86_64-solaris" "x86_64-windows" "x86_64-none" ];
+  testx86_64 = mseteq x86_64 [ "x86_64-linux" "x86_64-darwin" "x86_64-freebsd" "x86_64-genode" "x86_64-redox" "x86_64-openbsd" "x86_64-netbsd" "x86_64-cygwin" "x86_64-solaris" "x86_64-windows" "x86_64-none" ];
 
   testcygwin = mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ];
   testdarwin = mseteq darwin [ "x86_64-darwin" "i686-darwin" "aarch64-darwin" "armv7a-darwin" ];
   testfreebsd = mseteq freebsd [ "i686-freebsd" "x86_64-freebsd" ];
-  testgenode = mseteq genode [ "aarch64-genode" "x86_64-genode" ];
+  testgenode = mseteq genode [ "aarch64-genode" "i686-genode" "x86_64-genode" ];
+  testredox = mseteq redox [ "x86_64-redox" ];
   testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */);
   testillumos = mseteq illumos [ "x86_64-solaris" ];
   testlinux = mseteq linux [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-linux" "mipsel-linux" "riscv32-linux" "riscv64-linux" "x86_64-linux" "powerpc64le-linux" ];
   testnetbsd = mseteq netbsd [ "i686-netbsd" "x86_64-netbsd" ];
   testopenbsd = mseteq openbsd [ "i686-openbsd" "x86_64-openbsd" ];
   testwindows = mseteq windows [ "i686-cygwin" "x86_64-cygwin" "i686-windows" "x86_64-windows" ];
-  testunix = mseteq unix (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ cygwin);
+  testunix = mseteq unix (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ cygwin ++ redox);
 }
diff --git a/lib/trivial.nix b/lib/trivial.nix
index 5788dd435e5..6eb1fb3a5b1 100644
--- a/lib/trivial.nix
+++ b/lib/trivial.nix
@@ -332,4 +332,55 @@ rec {
   */
   isFunction = f: builtins.isFunction f ||
     (f ? __functor && isFunction (f.__functor f));
+
+  /* Convert the given positive integer to a string of its hexadecimal
+     representation. For example:
+
+     toHexString 0 => "0"
+
+     toHexString 16 => "10"
+
+     toHexString 250 => "FA"
+  */
+  toHexString = i:
+    let
+      toHexDigit = d:
+        if d < 10
+        then toString d
+        else
+          {
+            "10" = "A";
+            "11" = "B";
+            "12" = "C";
+            "13" = "D";
+            "14" = "E";
+            "15" = "F";
+          }.${toString d};
+    in
+      lib.concatMapStrings toHexDigit (toBaseDigits 16 i);
+
+  /* `toBaseDigits base i` converts the positive integer i to a list of its
+     digits in the given base. For example:
+
+     toBaseDigits 10 123 => [ 1 2 3 ]
+
+     toBaseDigits 2 6 => [ 1 1 0 ]
+
+     toBaseDigits 16 250 => [ 15 10 ]
+  */
+  toBaseDigits = base: i:
+    let
+      go = i:
+        if i < base
+        then [i]
+        else
+          let
+            r = i - ((i / base) * base);
+            q = (i - r) / base;
+          in
+            [r] ++ go q;
+    in
+      assert (base >= 2);
+      assert (i >= 0);
+      lib.reverseList (go i);
 }
diff --git a/lib/types.nix b/lib/types.nix
index 6fd6de7e1fd..17e7a939fe3 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -252,8 +252,8 @@ rec {
       merge = mergeEqualOption;
     };
 
-    # drop this in the future:
-    list = builtins.trace "`types.list` is deprecated; use `types.listOf` instead" types.listOf;
+    # TODO: drop this in the future:
+    list = builtins.trace "`types.list` has been removed; please use `types.listOf` instead" types.listOf;
 
     listOf = elemType: mkOptionType rec {
       name = "listOf";
@@ -326,110 +326,15 @@ rec {
       functor = (defaultFunctor name) // { wrapped = elemType; };
     };
 
-    # List or attribute set of ...
-    loaOf = elemType:
-      let
-        convertAllLists = loc: defs:
-          let
-            padWidth = stringLength (toString (length defs));
-            unnamedPrefix = i: "unnamed-" + fixedWidthNumber padWidth i + ".";
-          in
-            imap1 (i: convertIfList loc (unnamedPrefix i)) defs;
-        convertIfList = loc: unnamedPrefix: def:
-          if isList def.value then
-            let
-              padWidth = stringLength (toString (length def.value));
-              unnamed = i: unnamedPrefix + fixedWidthNumber padWidth i;
-              anyString = placeholder "name";
-              nameAttrs = [
-                { path = [ "environment" "etc" ];
-                  name = "target";
-                }
-                { path = [ "containers" anyString "bindMounts" ];
-                  name = "mountPoint";
-                }
-                { path = [ "programs" "ssh" "knownHosts" ];
-                  # hostNames is actually a list so we would need to handle it only when singleton
-                  name = "hostNames";
-                }
-                { path = [ "fileSystems" ];
-                  name = "mountPoint";
-                }
-                { path = [ "boot" "specialFileSystems" ];
-                  name = "mountPoint";
-                }
-                { path = [ "services" "znapzend" "zetup" ];
-                  name = "dataset";
-                }
-                { path = [ "services" "znapzend" "zetup" anyString "destinations" ];
-                  name = "label";
-                }
-                { path = [ "services" "geoclue2" "appConfig" ];
-                  name = "desktopID";
-                }
-              ];
-              matched = let
-                equals = a: b: b == anyString || a == b;
-                fallback = { name = "name"; };
-              in findFirst ({ path, ... }: all (v: v == true) (zipListsWith equals loc path)) fallback nameAttrs;
-              nameAttr = matched.name;
-              nameValueOld = value:
-                if isList value then
-                  if length value > 0 then
-                    "[ " + concatMapStringsSep " " escapeNixString value + " ]"
-                  else
-                    "[ ]"
-                else
-                  escapeNixString value;
-              nameValueNew = value: unnamed:
-                if isList value then
-                  if length value > 0 then
-                    head value
-                  else
-                    unnamed
-                else
-                  value;
-              res =
-                { inherit (def) file;
-                  value = listToAttrs (
-                    imap1 (elemIdx: elem:
-                      { name  = nameValueNew (elem.${nameAttr} or (unnamed elemIdx)) (unnamed elemIdx);
-                        value = elem;
-                      }) def.value);
-                };
-              option = concatStringsSep "." loc;
-              sample = take 3 def.value;
-              more = lib.optionalString (length def.value > 3) "... ";
-              list = concatMapStrings (x: ''{ ${nameAttr} = ${nameValueOld (x.${nameAttr} or "unnamed")}; ...} '') sample;
-              set = concatMapStrings (x: ''${nameValueNew (x.${nameAttr} or "unnamed") "unnamed"} = {...}; '') sample;
-              msg = ''
-                In file ${def.file}
-                a list is being assigned to the option config.${option}.
-                This will soon be an error as type loaOf is deprecated.
-                See https://github.com/NixOS/nixpkgs/pull/63103 for more information.
-                Do
-                  ${option} =
-                    { ${set}${more}}
-                instead of
-                  ${option} =
-                    [ ${list}${more}]
-              '';
-            in
-              lib.warn msg res
-          else
-            def;
-        attrOnly = attrsOf elemType;
-      in mkOptionType rec {
-        name = "loaOf";
-        description = "list or attribute set of ${elemType.description}s";
-        check = x: isList x || isAttrs x;
-        merge = loc: defs: attrOnly.merge loc (convertAllLists loc defs);
-        emptyValue = { value = {}; };
-        getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["<name?>"]);
-        getSubModules = elemType.getSubModules;
-        substSubModules = m: loaOf (elemType.substSubModules m);
-        functor = (defaultFunctor name) // { wrapped = elemType; };
-      };
+    # TODO: drop this in the future:
+    loaOf =
+      let msg =
+        ''
+          `types.loaOf` has been removed and mixing lists with attribute values
+          is no longer possible; please use `types.attrsOf` instead.
+          See https://github.com/NixOS/nixpkgs/issues/1800 for the motivation.
+        '';
+      in builtins.trace msg types.attrsOf;
 
     # Value of given type but with no merging (i.e. `uniq list`s are not concatenated).
     uniq = elemType: mkOptionType rec {
@@ -486,9 +391,15 @@ rec {
           else value
         ) defs;
 
+        freeformType = (evalModules {
+          inherit modules specialArgs;
+          args.name = "‹name›";
+        })._module.freeformType;
+
       in
       mkOptionType rec {
         name = "submodule";
+        description = freeformType.description or name;
         check = x: isAttrs x || isFunction x || path.check x;
         merge = loc: defs:
           (evalModules {
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index f6ef3b5443c..c17c91551aa 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -26,6 +26,13 @@
 
     `handle == github` is strongly preferred whenever `github` is an acceptable attribute name and is short and convenient.
 
+    If `github` begins with a numeral, `handle` should be prefixed with an underscore.
+    ```nix
+    _1example = {
+      github = "1example";
+    };
+    ```
+
     Add PGP/GPG keys only if you actually use them to sign commits and/or mail.
 
     To get the required PGP/GPG values for a key run
@@ -35,14 +42,14 @@
 
     !!! Note that PGP/GPG values stored here are for informational purposes only, don't use this file as a source of truth.
 
-    More fields may be added in the future.
+    More fields may be added in the future, however, in order to comply with GDPR this file should stay as minimal as possible.
 
     Please keep the list alphabetically sorted.
     See `./scripts/check-maintainer-github-handles.sh` for an example on how to work with this data.
 */
 {
-  "0x4A6F" = {
-    email = "0x4A6F@shackspace.de";
+  _0x4A6F = {
+    email = "mail-maintainer@0x4A6F.dev";
     name = "Joachim Ernst";
     github = "0x4A6F";
     githubId = 9675338;
@@ -51,7 +58,7 @@
       fingerprint = "F466 A548 AD3F C1F1 8C88  4576 8702 7528 B006 D66D";
     }];
   };
-  "1000101" = {
+  _1000101 = {
     email = "b1000101@pm.me";
     github = "1000101";
     githubId = 791309;
@@ -247,6 +254,12 @@
     githubId = 732652;
     name = "Andreas Herrmann";
   };
+  ahrzb = {
+    email = "ahrzb5@gmail.com";
+    github = "ahrzb";
+    githubId = 5220438;
+    name = "AmirHossein Roozbahani";
+  };
   ahuzik = {
     email = "ales.guzik@gmail.com";
     github = "alesguzik";
@@ -313,6 +326,12 @@
     githubId = 43479487;
     name = "Titouan Biteau";
   };
+  alerque = {
+    email = "caleb@alerque.com";
+    github = "alerque";
+    githubId = 173595;
+    name = "Caleb Maclennan";
+  };
   alexarice = {
     email = "alexrice999@hotmail.co.uk";
     github = "alexarice";
@@ -453,6 +472,12 @@
     githubId = 858965;
     name = "Andrew Morsillo";
   };
+  andehen = {
+    email = "git@andehen.net";
+    github = "andehen";
+    githubId = 754494;
+    name = "Anders Asheim Hennum";
+  };
   andersk = {
     email = "andersk@mit.edu";
     github = "andersk";
@@ -543,6 +568,12 @@
     githubId = 750786;
     name = "Justin Wood";
   };
+  anna328p = {
+    email = "anna328p@gmail.com";
+    github = "anna328p";
+    githubId = 9790772;
+    name = "Anna";
+  };
   anmonteiro = {
     email = "anmonteiro@gmail.com";
     github = "anmonteiro";
@@ -639,6 +670,12 @@
     githubId = 1296771;
     name = "Anders Riutta";
   };
+  arnarg = {
+    email = "arnarg@fastmail.com";
+    github = "arnarg";
+    githubId = 1291396;
+    name = "Arnar Ingason";
+  };
   arnoldfarkas = {
     email = "arnold.farkas@gmail.com";
     github = "arnoldfarkas";
@@ -667,6 +704,12 @@
     githubId = 3965744;
     name = "Arthur Lee";
   };
+  arturcygan = {
+    email = "arczicygan@gmail.com";
+    github = "arcz";
+    githubId = 4679721;
+    name = "Artur Cygan";
+  };
   artuuge = {
     email = "artuuge@gmail.com";
     github = "artuuge";
@@ -809,6 +852,12 @@
     githubId = 135230;
     name = "Aycan iRiCAN";
   };
+  artturin = {
+    email = "artturin@artturin.com";
+    github = "artturin";
+    githubId = 56650223;
+    name = "Artturi N";
+  };
   b4dm4n = {
     email = "fabianm88@gmail.com";
     github = "B4dM4n";
@@ -1031,6 +1080,12 @@
     githubId = 5718007;
     name = "Bastian Köcher";
   };
+  blaggacao = {
+    name = "David Arnold";
+    email = "dar@xoe.solutions";
+    github = "blaggacao";
+    githubId = 7548295;
+  };
   blanky0230 = {
     email = "blanky0230@gmail.com";
     github = "blanky0230";
@@ -1049,6 +1104,12 @@
     githubId = 16330;
     name = "Mathijs Kwik";
   };
+  bmilanov = {
+    name = "Biser Milanov";
+    email = "bmilanov11+nixpkgs@gmail.com";
+    github = "bmilanov";
+    githubId = 30090366;
+  };
   bobakker = {
     email = "bobakk3r@gmail.com";
     github = "bobakker";
@@ -1091,6 +1152,12 @@
     githubId = 3465841;
     name = "Boris Sukholitko";
   };
+  bouk = {
+    name = "Bouke van der Bijl";
+    email = "i@bou.ke";
+    github = "bouk";
+    githubId = 97820;
+  };
   bradediger = {
     email = "brad@bradediger.com";
     github = "bradediger";
@@ -1388,6 +1455,22 @@
     githubId = 30435868;
     name = "Okina Matara";
   };
+  Chili-Man = {
+    email = "dr.elhombrechile@gmail.com";
+    name = "Diego Rodriguez";
+    github = "Chili-Man";
+    githubId = 631802;
+    keys = [{
+      longkeyid = "rsa4096/0xE0EBAD78F0190BD9";
+      fingerprint = "099E 3F97 FA08 3D47 8C75  EBEC E0EB AD78 F019 0BD9";
+    }];
+  };
+  chiroptical = {
+    email = "chiroptical@gmail.com";
+    github = "chiroptical";
+    githubId = 3086255;
+    name = "Barry Moore II";
+  };
   chkno = {
     email = "chuck@intelligence.org";
     github = "chkno";
@@ -1628,6 +1711,16 @@
     githubId = 411324;
     name = "Carles Pagès";
   };
+  cpu = {
+    email = "daniel@binaryparadox.net";
+    github = "cpu";
+    githubId = 292650;
+    name = "Daniel McCarney";
+    keys = [{
+      longkeyid = "rsa2048/0x08FB2BFC470E75B4";
+      fingerprint = "8026 D24A A966 BF9C D3CD  CB3C 08FB 2BFC 470E 75B4";
+    }];
+  };
   craigem = {
     email = "craige@mcwhirter.io";
     github = "craigem";
@@ -1652,6 +1745,16 @@
     githubId = 1222362;
     name = "Matías Lang";
   };
+  CRTified = {
+    email = "carl.schneider+nixos@rub.de";
+    github = "CRTified";
+    githubId = 2440581;
+    name = "Carl Richard Theodor Schneider";
+    keys = [{
+      longkeyid = "rsa4096/0x45BCC1E2709B1788";
+      fingerprint = "2017 E152 BB81 5C16 955C  E612 45BC C1E2 709B 1788";
+    }];
+  };
   cryptix = {
     email = "cryptix@riseup.net";
     github = "cryptix";
@@ -1682,6 +1785,16 @@
     githubId = 490965;
     name = "Craig Swank";
   };
+  cust0dian = {
+    email = "serg@effectful.software";
+    github = "cust0dian";
+    githubId = 389387;
+    name = "Serg Nesterov";
+    keys = [{
+      longkeyid = "rsa4096/0x1512F6EB84AECC8C";
+      fingerprint = "6E7D BA30 DB5D BA60 693C  3BE3 1512 F6EB 84AE CC8C";
+    }];
+  };
   cwoac = {
     email = "oliver@codersoffortune.net";
     github = "cwoac";
@@ -1760,6 +1873,12 @@
     githubId = 1918;
     name = "David Anderson";
   };
+  dandellion = {
+    email = "daniel@dodsorf.as";
+    github = "dali99";
+    githubId = 990767;
+    name = "Daniel Olsen";
+  };
   danharaj = {
     email = "dan@obsidian.systems";
     github = "danharaj";
@@ -1790,6 +1909,12 @@
     githubId = 4971975;
     name = "Janne Heß";
   };
+  dasj19 = {
+    email = "daniel@serbanescu.dk";
+    github = "dasj19";
+    githubId = 7589338;
+    name = "Daniel Șerbănescu";
+  };
   dasuxullebt = {
     email = "christoph.senjak@googlemail.com";
     name = "Christoph-Simon Senjak";
@@ -1852,6 +1977,12 @@
     githubId = 14032;
     name = "Daniel Brockman";
   };
+  ddelabru = {
+    email = "ddelabru@redhat.com";
+    github = "ddelabru";
+    githubId = 39909293;
+    name = "Dominic Delabruere";
+  };
   dduan = {
     email = "daniel@duan.ca";
     github = "dduan";
@@ -2008,12 +2139,6 @@
     githubId = 1316469;
     name = "Naomi Morse";
   };
-  dkudriavtsev = {
-    email = "dkudriavtsev@gmail.com";
-    github = "dkudriavtsev";
-    githubId = 9790772;
-    name = "Dmitry Kudriavtsev";
-  };
   dmalikov = {
     email = "malikov.d.y@gmail.com";
     github = "dmalikov";
@@ -2086,6 +2211,16 @@
     githubId = 974130;
     name = "David Pätzel";
   };
+  dpausp = {
+    email = "dpausp@posteo.de";
+    github = "dpausp";
+    githubId = 1965950;
+    name = "Tobias Stenzel";
+    keys = [{
+      longkeyid = "rsa2048/0x78C7DD40DF23FB16";
+      fingerprint = "4749 0887 CF3B 85A1 6355  C671 78C7 DD40 DF23 FB16";
+    }];
+  };
   dpflug = {
     email = "david@pflug.email";
     github = "dpflug";
@@ -2320,6 +2455,12 @@
     githubId = 1753498;
     name = "Dejan Lukan";
   };
+  elliottvillars = {
+    email = "elliottvillars@gmail.com";
+    github = "elliottvillars";
+    githubId = 48104179;
+    name = "Elliott Villars";
+  };
   eliasp = {
     email = "mail@eliasprobst.eu";
     github = "eliasp";
@@ -2344,6 +2485,12 @@
     githubId = 97852;
     name = "Ellis Whitehead";
   };
+  elkowar = {
+    email = "thereal.elkowar@gmail.com";
+    github = "elkowar";
+    githubId = 5300871;
+    name = "Leon Kowarschick";
+  };
   elohmeier = {
     email = "elo-nixos@nerdworks.de";
     github = "elohmeier";
@@ -2576,6 +2723,12 @@
     githubId = 857308;
     name = "Joe Hermaszewski";
   };
+  extends = {
+    email = "sharosari@gmail.com";
+    github = "ImExtends";
+    githubId = 55919390;
+    name = "Vincent VILLIAUMEY";
+  };
   eyjhb = {
     email = "eyjhbb@gmail.com";
     github = "eyJhb";
@@ -2656,6 +2809,12 @@
       fingerprint = "F549 3B7F 9372 5578 FDD3  D0B8 A1BC 8428 323E CFE8";
     }];
   };
+  fionera = {
+    email = "nix@fionera.de";
+    github = "fionera";
+    githubId = 5741401;
+    name = "Tim Windelschmidt";
+  };
   FireyFly = {
     email = "nix@firefly.nu";
     github = "FireyFly";
@@ -2726,6 +2885,12 @@
     githubId = 5918766;
     name = "Franz Thoma";
   };
+  fooker = {
+    email = "fooker@lab.sh";
+    github = "fooker";
+    githubId = 405105;
+    name = "Dustin Frisch";
+  };
   forkk = {
     email = "forkk@forkk.net";
     github = "forkk";
@@ -2878,6 +3043,12 @@
     githubId = 7047019;
     name = "Florent Becker";
   };
+  galagora = {
+    email = "lightningstrikeiv@gmail.com";
+    github = "galagora";
+    githubId = 45048741;
+    name = "Alwanga Oyango";
+  };
   gamb = {
     email = "adam.gamble@pm.me";
     github = "gamb";
@@ -2914,12 +3085,6 @@
     githubId = 313929;
     name = "Gabriel Ebner";
   };
-  geistesk = {
-    email = "post@0x21.biz";
-    github = "geistesk";
-    githubId = 8402811;
-    name = "Alvar Penning";
-  };
   genesis = {
     email = "ronan@aimao.org";
     github = "bignaux";
@@ -2974,6 +3139,16 @@
     githubId = 615606;
     name = "Glenn Searby";
   };
+  glittershark = {
+    name = "Griffin Smith";
+    email = "root@gws.fyi";
+    github = "glittershark";
+    githubId = 1481027;
+    keys = [{
+      longkeyid = "rsa2048/0x44EF5B5E861C09A7";
+      fingerprint = "0F11 A989 879E 8BBB FDC1  E236 44EF 5B5E 861C 09A7";
+    }];
+  };
   gloaming = {
     email = "ch9871@gmail.com";
     github = "gloaming";
@@ -2998,6 +3173,12 @@
     githubId = 25820499;
     name = "Roman Kretschmer";
   };
+  goertzenator = {
+    email = "daniel.goertzen@gmail.com";
+    github = "goertzenator";
+    githubId = 605072;
+    name = "Daniel Goertzen";
+  };
   goibhniu = {
     email = "cillian.deroiste@gmail.com";
     github = "cillianderoiste";
@@ -3086,6 +3267,12 @@
     githubId = 6768842;
     name = "Joris Guyonvarch";
   };
+  gvolpe = {
+    email = "volpegabriel@gmail.com";
+    github = "gvolpe";
+    githubId = 443978;
+    name = "Gabriel Volpe";
+  };
   hakuch = {
     email = "hakuch@gmail.com";
     github = "hakuch";
@@ -3109,6 +3296,10 @@
     github = "haozeke";
     githubId = 4336207;
     name = "Rohit Goswami";
+    keys = [{
+      longkeyid = "rsa4096/0x9CCCE36402CB49A6";
+      fingerprint = "74B1 F67D 8E43 A94A 7554  0768 9CCC E364 02CB 49A6";
+    }];
   };
   haslersn = {
     email = "haslersn@fius.informatik.uni-stuttgart.de";
@@ -3182,6 +3373,12 @@
     githubId = 131599;
     name = "Martin Weinelt";
   };
+  hh = {
+    email = "hh@m-labs.hk";
+    github = "HarryMakes";
+    githubId = 66358631;
+    name = "Harry Ho";
+  };
   hhm = {
     email = "heehooman+nixpkgs@gmail.com";
     github = "hhm0";
@@ -3209,10 +3406,14 @@
     name = "Hlodver Sigurdsson";
   };
   hugoreeves = {
-    email = "hugolreeves@gmail.com";
+    email = "hugo@hugoreeves.com";
     github = "hugoreeves";
     githubId = 20039091;
     name = "Hugo Reeves";
+    keys = [{
+      longkeyid = "rsa4096/0x49FA39F8A7F735F9";
+      fingerprint = "78C2 E81C 828A 420B 269A  EBC1 49FA 39F8 A7F7 35F9";
+    }];
   };
   hodapp = {
     email = "hodapp87@gmail.com";
@@ -3438,6 +3639,12 @@
     githubId = 26877687;
     name = "Yurii Izorkin";
   };
+  j0hax = {
+    name = "Johannes Arnold";
+    email = "johannes.arnold@stud.uni-hannover.de";
+    github = "j0hax";
+    githubId = 3802620;
+  };
   jacg = {
     name = "Jacek Generowicz";
     email = "jacg@my-post-office.net";
@@ -3554,6 +3761,12 @@
     }];
     name = "Jiri Daněk";
   };
+  jdbaldry = {
+    email = "jack.baldry@grafana.com";
+    github = "jdbaldry";
+    githubId = 4599384;
+    name = "Jack Baldry";
+  };
   jdehaas = {
     email = "qqlq@nullptr.club";
     github = "jeroendehaas";
@@ -3674,6 +3887,12 @@
     githubId = 51518420;
     name = "jitwit";
   };
+  jjjollyjim = {
+    email = "jamie@kwiius.com";
+    github = "JJJollyjim";
+    githubId = 691552;
+    name = "Jamie McClymont";
+  };
   jk = {
     email = "hello+nixpkgs@j-k.io";
     github = "06kellyjac";
@@ -3804,6 +4023,12 @@
     githubId = 8735102;
     name = "John Ramsden";
   };
+  johntitor = {
+    email = "huyuumi.dev@gmail.com";
+    github = "JohnTitor";
+    githubId = 25030997;
+    name = "Yuki Okushi";
+  };
   jojosch = {
     name = "Johannes Schleifenbaum";
     email = "johannes@js-webcoding.de";
@@ -3885,6 +4110,12 @@
     githubId = 1918771;
     name = "Joe Doyle";
   };
+  jperras = {
+    email = "joel@nerderati.com";
+    github = "jperras";
+    githubId = 20675;
+    name = "Joël Perras";
+  };
   jpierre03 = {
     email = "nix@prunetwork.fr";
     github = "jpierre03";
@@ -3909,6 +4140,12 @@
     githubId = 4611077;
     name = "Raymond Gauthier";
   };
+  jschievink = {
+    email = "jonasschievink@gmail.com";
+    github = "jonas-schievink";
+    githubId = 1786438;
+    name = "Jonas Schievink";
+  };
   jtcoolen = {
     email = "jtcoolen@pm.me";
     name = "Julien Coolen";
@@ -4017,6 +4254,12 @@
     githubId = 87115;
     name = "Wael Nasreddine";
   };
+  kalekseev = {
+    email = "mail@kalekseev.com";
+    github = "kalekseev";
+    githubId = 367259;
+    name = "Konstantin Alekseev";
+  };
   kamadorueda = {
     name = "Kevin Amado";
     email = "kamadorueda@gmail.com";
@@ -4045,6 +4288,12 @@
     github = "karantan";
     githubId = 7062631;
   };
+  KarlJoad = {
+    email = "karl@hallsby.com";
+    github = "KarlJoad";
+    githubId = 34152449;
+    name = "Karl Hallsby";
+  };
   karolchmist = {
     email = "info+nix@chmist.com";
     name = "karolchmist";
@@ -4079,6 +4328,12 @@
     githubId = 494012;
     name = "Kevin Cox";
   };
+  kfollesdal = {
+    email = "kfollesdal@gmail.com";
+    github = "kfollesdal";
+    githubId = 546087;
+    name = "Kristoffer K. Føllesdal";
+  };
   khumba = {
     email = "bog@khumba.net";
     github = "khumba";
@@ -4248,6 +4503,12 @@
     githubId = 524268;
     name = "Koral";
   };
+  koslambrou = {
+    email = "koslambrou@gmail.com";
+    github = "koslambrou";
+    githubId = 2037002;
+    name = "Konstantinos";
+  };
   kovirobi = {
     email = "kovirobi@gmail.com";
     github = "kovirobi";
@@ -4499,6 +4760,12 @@
       fingerprint = "7FE2 113A A08B 695A C8B8  DDE6 AE53 B4C2 E58E DD45";
     }];
   };
+  lf- = {
+    email = "nix-maint@lfcode.ca";
+    github = "lf-";
+    githubId = 6652840;
+    name = "Jade";
+  };
   lheckemann = {
     email = "git@sphalerite.org";
     github = "lheckemann";
@@ -4639,6 +4906,12 @@
     githubId = 1202012;
     name = "Ignat Loskutov";
   };
+  louisdk1 = {
+    email = "louis@louis.dk";
+    github = "louisdk1";
+    githubId = 4969294;
+    name = "Louis Tim Larsen";
+  };
   lovek323 = {
     email = "jason@oconal.id.au";
     github = "lovek323";
@@ -4691,6 +4964,12 @@
     githubId = 59375051;
     name = "Lucas Ransan";
   };
+  lucperkins = {
+    email = "lucperkins@gmail.com";
+    github = "lucperkins";
+    githubId = 1523104;
+    name = "Luc Perkins";
+  };
   lucus16 = {
     email = "lars.jellema@gmail.com";
     github = "Lucus16";
@@ -4737,6 +5016,12 @@
     githubId = 34683288;
     name = "Luke Bentley-Fox";
   };
+  lukegb = {
+    email = "nix@lukegb.com";
+    github = "lukegb";
+    githubId = 246745;
+    name = "Luke Granger-Brown";
+  };
   lukego = {
     email = "luke@snabb.co";
     github = "lukego";
@@ -4991,6 +5276,12 @@
     githubId = 35892750;
     name = "Maxine Aubrey";
   };
+  maxxk = {
+    email = "maxim.krivchikov@gmail.com";
+    github = "maxxk";
+    githubId = 1191859;
+    name = "Maxim Krivchikov";
+  };
   mbakke = {
     email = "mbakke@fastmail.com";
     github = "mbakke";
@@ -5033,6 +5324,12 @@
     githubId = 2971615;
     name = "Marius Bergmann";
   };
+  mcbeth = {
+    email = "mcbeth@broggs.org";
+    github = "mcbeth";
+    githubId = 683809;
+    name = "Jeffrey Brent McBeth";
+  };
   mcmtroffaes = {
     email = "matthias.troffaes@gmail.com";
     github = "mcmtroffaes";
@@ -5045,6 +5342,12 @@
     githubId = 13689192;
     name = "Nguyễn Gia Phong";
   };
+  mcwitt = {
+    email = "mcwitt@gmail.com";
+    github = "mcwitt";
+    githubId = 319411;
+    name = "Matt Wittmann";
+  };
   mdaiter = {
     email = "mdaiter8121@gmail.com";
     github = "mdaiter";
@@ -5119,6 +5422,12 @@
     github = "metadark";
     githubId = 382041;
   };
+  meutraa = {
+    email = "paul+nixpkgs@lost.host";
+    name = "Paul Meredith";
+    github = "meutraa";
+    githubId = 68550871;
+  };
   mfossen = {
     email = "msfossen@gmail.com";
     github = "mfossen";
@@ -5590,6 +5899,12 @@
     githubId = 5047140;
     name = "Victor Collod";
   };
+  mupdt = {
+    email = "nix@pdtpartners.com";
+    github = "mupdt";
+    githubId = 25388474;
+    name = "Matej Urbas";
+  };
   mvnetbiz = {
     email = "mvnetbiz@gmail.com";
     github = "mvnetbiz";
@@ -5730,6 +6045,12 @@
     githubId = 1224006;
     name = "Roberto Abdelkader Martínez Pérez";
   };
+  nilsirl = {
+    email = "nils@nilsand.re";
+    github = "NilsIrl";
+    githubId = 26231126;
+    name = "Nils ANDRÉ-CHANG";
+  };
   ninjatrappeur = {
     email = "felix@alternativebit.fr";
     github = "ninjatrappeur";
@@ -5986,6 +6307,16 @@
       fingerprint = "514B B966 B46E 3565 0508  86E8 0E6C A66E 5C55 7AA8";
     }];
   };
+  oxzi = {
+    email = "post@0x21.biz";
+    github = "oxzi";
+    githubId = 8402811;
+    name = "Alvar Penning";
+    keys = [{
+      longkeyid = "rsa4096/0xF32A45637FA25E31";
+      fingerprint = "EB14 4E67 E57D 27E2 B5A4  CD8C F32A 4563 7FA2 5E31";
+    }];
+  };
   oyren = {
     email = "m.scheuren@oyra.eu";
     github = "oyren";
@@ -6058,6 +6389,12 @@
     githubId = 20792;
     name = "Sebastian Galkin";
   };
+  parasrah = {
+    email = "nixos@parasrah.com";
+    github = "parasrah";
+    githubId = 14935550;
+    name = "Brad Pfannmuller";
+  };
   pashashocky = {
     email = "pashashocky@gmail.com";
     github = "pashashocky";
@@ -6098,6 +6435,12 @@
     githubId = 157610;
     name = "Piotr Bogdan";
   };
+  pblkt = {
+    email = "pebblekite@gmail.com";
+    github = "pblkt";
+    githubId = 6498458;
+    name = "pebble kite";
+  };
   pcarrier = {
     email = "pc@rrier.ca";
     github = "pcarrier";
@@ -6232,6 +6575,12 @@
     githubId = 119460;
     name = "Perry Barnoy";
   };
+  pjjw = {
+    email = "peter@shortbus.org";
+    github = "pjjw";
+    githubId = 638;
+    name = "Peter Woodman";
+  };
   pjones = {
     email = "pjones@devalot.com";
     github = "pjones";
@@ -6382,6 +6731,12 @@
       fingerprint = "86E6 792F C27B FD47 8860  C110 91F3 B339 B9A0 2A3D";
     }];
   };
+  psanford = {
+    email = "psanford@sanford.io";
+    github = "psanford";
+    githubId = 33375;
+    name = "Peter Sanford";
+  };
   pshendry = {
     email = "paul@pshendry.com";
     github = "pshendry";
@@ -6434,6 +6789,12 @@
     githubId = 37715;
     name = "Brian McKenna";
   };
+  purcell = {
+    email = "steve@sanityinc.com";
+    github = "purcell";
+    githubId =	5636;
+    name = "Steve Purcell";
+  };
   puzzlewolf = {
     email = "nixos@nora.pink";
     github = "puzzlewolf";
@@ -6470,6 +6831,12 @@
     githubId = 115877;
     name = "Kenny Shen";
   };
+  quentini = {
+    email = "quentini@airmail.cc";
+    github = "QuentinI";
+    githubId = 18196237;
+    name = "Quentin Inkling";
+  };
   qyliss = {
     email = "hi@alyssa.is";
     github = "alyssais";
@@ -6486,6 +6853,12 @@
     githubId = 131856;
     name = "Arnout Engelen";
   };
+  RaghavSood = {
+    email = "r@raghavsood.com";
+    github = "RaghavSood";
+    githubId = 903072;
+    name = "Raghav Sood";
+  };
   rafaelgg = {
     email = "rafael.garcia.gallego@gmail.com";
     github = "rafaelgg";
@@ -6714,6 +7087,12 @@
     githubId = 2507744;
     name = "Roland Koebler";
   };
+  rizary = {
+    email = "andika@numtide.com";
+    github = "Rizary";
+    githubId = 7221768;
+    name = "Andika Demas Riyandi";
+  };
   rkrzr = {
     email = "ops+nixpkgs@channable.com";
     github = "rkrzr";
@@ -6820,6 +7199,16 @@
     githubId = 3621083;
     name = "Roosembert (Roosemberth) Palacios";
   };
+  rople380 = {
+    name = "rople380";
+    email = "55679162+rople380@users.noreply.github.com";
+    github = "rople380";
+    githubId = 55679162;
+    keys = [{
+      longkeyid = "rsa2048/0x8526B7574A536236";
+      fingerprint = "1401 1B63 393D 16C1 AA9C  C521 8526 B757 4A53 6236";
+    }];
+  };
   royneary = {
     email = "christian@ulrich.earth";
     github = "royneary";
@@ -6984,6 +7373,16 @@
     githubId = 132835;
     name = "Samuel Dionne-Riel";
   };
+  samuelgrf = {
+    email = "git@samuelgrf.com";
+    github = "samuelgrf";
+    githubId = 67663538;
+    name = "Samuel Gräfenstein";
+    keys = [{
+      longkeyid = "rsa4096/0xEF76A063F15C63C8";
+      fingerprint = "FF24 5832 8FAF 4660 18C6  186E EF76 A063 F15C 63C8";
+    }];
+  };
   samuelrivas = {
     email = "samuelrivas@gmail.com";
     github = "samuelrivas";
@@ -6996,6 +7395,12 @@
     githubId = 1153271;
     name = "Sander van der Burg";
   };
+  sarcasticadmin = {
+    email = "rob@sarcasticadmin.com";
+    github = "sarcasticadmin";
+    githubId = 30531572;
+    name = "Robert James Hernandez";
+  };
   sargon = {
     email = "danielehlers@mindeye.net";
     github = "sargon";
@@ -7190,6 +7595,12 @@
     githubId = 24496705;
     name = "Scott Hamilton";
   };
+  ShamrockLee = {
+    name = "Shamrock Lee";
+    email = "44064051+ShamrockLee@users.noreply.github.com";
+    github = "ShamrockLee";
+    githubId = 44064051;
+  };
   shanemikel = {
     email = "shanepearlman@pm.me";
     github = "shanemikel";
@@ -7302,6 +7713,12 @@
     githubId = 2770647;
     name = "Simon Vandel Sillesen";
   };
+  siraben = {
+    email = "bensiraphob@gmail.com";
+    github = "siraben";
+    githubId = 8219659;
+    name = "Siraphob Phipathananunth";
+  };
   siriobalmelli = {
     email = "sirio@b-ad.ch";
     github = "siriobalmelli";
@@ -7618,6 +8035,12 @@
     githubId = 65870;
     name = "Сухарик";
   };
+  SuperSandro2000 = {
+    email = "sandro.jaeckel@gmail.com";
+    github = "SuperSandro2000";
+    githubId = 7258858;
+    name = "Sandro Jäckel";
+  };
   SuprDewd = {
     email = "suprdewd@gmail.com";
     github = "SuprDewd";
@@ -7672,6 +8095,12 @@
     githubId = 332289;
     name = "Rafał Łasocha";
   };
+  syberant = {
+    email = "sybrand@neuralcoding.com";
+    github = "syberant";
+    githubId = 20063502;
+    name = "Sybrand Aarnoutse";
+  };
   symphorien = {
     email = "symphorien_nixpkgs@xlumurb.eu";
     github = "symphorien";
@@ -7808,6 +8237,12 @@
     githubId = 863327;
     name = "Tyler Benster";
   };
+  tcbravo = {
+    email = "tomas.bravo@protonmail.ch";
+    github = "tcbravo";
+    githubId = 66133083;
+    name = "Tomas Bravo";
+  };
   tckmn = {
     email = "andy@tck.mn";
     github = "tckmn";
@@ -7844,6 +8279,12 @@
     githubId = 26417242;
     name = "Mikolaj Galkowski";
   };
+  TethysSvensson = {
+    email = "freaken@freaken.dk";
+    github = "TethysSvensson";
+    githubId = 4294434;
+    name = "Tethys Svensson";
+  };
   teto = {
     email = "mcoudron@hotmail.com";
     github = "teto";
@@ -7910,7 +8351,7 @@
     githubId = 8547242;
     name = "Stefan Rohrbacher";
   };
-  "thelegy" = {
+  thelegy = {
     email = "mail+nixos@0jb.de";
     github = "thelegy";
     githubId = 3105057;
@@ -8110,6 +8551,12 @@
     githubId = 1486805;
     name = "Toon Nolten";
   };
+  toschmidt = {
+    email = "tobias.schmidt@in.tum.de";
+    github = "toschmidt";
+    githubId = 27586264;
+    name = "Tobias Schmidt";
+  };
   travisbhartwell = {
     email = "nafai@travishartwell.net";
     github = "travisbhartwell";
@@ -8122,6 +8569,12 @@
     githubId = 207457;
     name = "Matthieu Chevrier";
   };
+  trepetti = {
+    email = "trepetti@cs.columbia.edu";
+    github = "trepetti";
+    githubId = 25440339;
+    name = "Tom Repetti";
+  };
   trevorj = {
     email = "nix@trevor.joynson.io";
     github = "akatrevorjay";
@@ -8180,6 +8633,12 @@
     githubId = 699403;
     name = "Tomas Vestelind";
   };
+  tviti = {
+    email = "tviti@hawaii.edu";
+    github = "tviti";
+    githubId = 2251912;
+    name = "Taylor Viti";
+  };
   tvorog = {
     email = "marszaripov@gmail.com";
     github = "tvorog";
@@ -8395,6 +8854,16 @@
       fingerprint = "B3C0 DA1A C18B 82E8 CA8B  B1D1 4F62 CD07 CE64 796A";
     }];
   };
+  vincentbernat = {
+    email = "vincent@bernat.ch";
+    github = "vincentbernat";
+    githubId = 631446;
+    name = "Vincent Bernat";
+    keys = [{
+      longkeyid = "rsa4096/0x95A42FE8353525F9";
+      fingerprint = "AEF2 3487 66F3 71C6 89A7  3600 95A4 2FE8 3535 25F9";
+    }];
+  };
   vinymeuh = {
     email = "vinymeuh@gmail.com";
     github = "vinymeuh";
@@ -8449,6 +8918,14 @@
     githubId = 13259982;
     name = "Vanessa McHale";
   };
+
+  voidless = {
+    email = "julius.schmitt@yahoo.de";
+    github = "voidIess";
+    githubId = 45292658;
+    name = "Julius Schmitt";
+  };
+
   volhovm = {
     email = "volhovm.cs@gmail.com";
     github = "volhovm";
@@ -8781,6 +9258,16 @@
       fingerprint = "85F8 E850 F8F2 F823 F934  535B EC50 6589 9AEA AF4C";
     }];
   };
+  yusdacra = {
+    email = "y.bera003.06@protonmail.com";
+    github = "yusdacra";
+    githubId = 19897088;
+    name = "Yusuf Bera Ertan";
+    keys = [{
+      longkeyid = "rsa2048/0x61807181F60EFCB2";
+      fingerprint = "9270 66BD 8125 A45B 4AC4 0326 6180 7181 F60E FCB2";
+    }];
+  };
   yvesf = {
     email = "yvesf+nix@xapek.org";
     github = "yvesf";
@@ -8845,6 +9332,16 @@
     email = "zef@zef.me";
     name = "Zef Hemel";
   };
+  zeratax = {
+    email = "mail@zera.tax";
+    github = "ZerataX";
+    githubId = 5024958;
+    name = "Jona Abdinghoff";
+    keys = [{
+      longkeyid = "rsa4096/0x8333735E784DF9D4";
+      fingerprint = "44F7 B797 9D3A 27B1 89E0  841E 8333 735E 784D F9D4";
+    }];
+  };
   zfnmxt = {
     name = "zfnmxt";
     email = "zfnmxt@zfnmxt.com";
@@ -9013,4 +9510,56 @@
     github = "cpcloud";
     githubId = 417981;
   };
+  davegallant = {
+    name = "Dave Gallant";
+    email = "davegallant@gmail.com";
+    github = "davegallant";
+    githubId = 4519234;
+  };
+  saulecabrera = {
+    name = "Saúl Cabrera";
+    email = "saulecabrera@gmail.com";
+    github = "saulecabrera";
+    githubId = 1423601;
+  };
+  tfmoraes = {
+    name = "Thiago Franco de Moraes";
+    email = "351108+tfmoraes@users.noreply.github.com";
+    github = "tfmoraes";
+    githubId = 351108;
+  };
+  deifactor = {
+    name = "Ash Zahlen";
+    email = "ext0l@riseup.net";
+    github = "deifactor";
+    githubId = 30192992;
+  };
+  fzakaria = {
+    name = "Farid Zakaria";
+    email = "farid.m.zakaria@gmail.com";
+    github = "fzakaria";
+    githubId = 605070;
+  };
+  nagisa = {
+    name = "Simonas Kazlauskas";
+    email = "nixpkgs@kazlauskas.me";
+    github = "nagisa";
+    githubId = 679122;
+  };
+  yevhenshymotiuk = {
+    name = "Yevhen Shymotiuk";
+    email = "yevhenshymotiuk@gmail.com";
+    github = "yevhenshymotiuk";
+    githubId = 44244245;
+  };
+  hmenke = {
+    name = "Henri Menke";
+    email = "henri@henrimenke.de";
+    github = "hmenke";
+    githubId = 1903556;
+    keys = [{
+      longkeyid = "rsa4096/0xD65C9AFB4C224DA3";
+      fingerprint = "F1C5 760E 45B9 9A44 72E9  6BFB D65C 9AFB 4C22 4DA3";
+    }];
+  };
 }
diff --git a/maintainers/scripts/luarocks-packages.csv b/maintainers/scripts/luarocks-packages.csv
index c1eeed4afd5..fb90e62769f 100644
--- a/maintainers/scripts/luarocks-packages.csv
+++ b/maintainers/scripts/luarocks-packages.csv
@@ -35,6 +35,10 @@ lua-cmsgpack,,,,,
 lua-iconv,,,,,
 lua-lsp,,http://luarocks.org/dev,,,
 lua-messagepack,,,,,
+lua-resty-http,,,,,
+lua-resty-jwt,,,,,
+lua-resty-openidc,,,,,
+lua-resty-session,,,,,
 lua-term,,,,,
 lua-toml,,,,,
 lua-zlib,,,,,koral
@@ -79,5 +83,4 @@ say,,,,,
 std__debug,std._debug,,,,
 std_normalize,std.normalize,,,,
 stdlib,,,,,vyp
-pulseaudio,,,,,doronbehar
 vstruct,,,,,
diff --git a/maintainers/scripts/rebuild-amount.sh b/maintainers/scripts/rebuild-amount.sh
index 1a54cada8af..ca89e08073e 100755
--- a/maintainers/scripts/rebuild-amount.sh
+++ b/maintainers/scripts/rebuild-amount.sh
@@ -60,7 +60,7 @@ nixexpr() {
 		    "darwin-tested" "unstable" "stdenvBootstrapTools"
 		    "moduleSystem" "lib-tests" # these just confuse the output
 		  ];
-		
+
 		in
 		  tweak (builtins.removeAttrs hydraJobs blacklist)
 	EONIX
@@ -124,4 +124,3 @@ if [ -n "$optPrint" ]; then
 	echo
 	cat "$newlist"
 fi
-
diff --git a/maintainers/scripts/update.nix b/maintainers/scripts/update.nix
index 66ea18ddf62..9568c6cbbcc 100755
--- a/maintainers/scripts/update.nix
+++ b/maintainers/scripts/update.nix
@@ -9,7 +9,13 @@
 # TODO: add assert statements
 
 let
-  pkgs = import ./../../default.nix (if include-overlays then { } else { overlays = []; });
+  pkgs = import ./../../default.nix (
+    if include-overlays == false then
+      { overlays = []; }
+    else if include-overlays == true then
+      { } # Let Nixpkgs include overlays impurely.
+    else { overlays = include-overlays; }
+  );
 
   inherit (pkgs) lib;
 
diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index 671b8cf1a91..d07f602f0da 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -54,10 +54,21 @@ with lib.maintainers; {
       hedning
       jtojnar
       worldofpeace
+      dasj19
     ];
     scope = "Maintain GNOME desktop environment and platform.";
   };
 
+  jitsi = {
+    members = [
+      mmilata
+      petabyteboy
+      prusnak
+      ryantm
+    ];
+    scope = "Maintain Jitsi.";
+  };
+
   matrix = {
     members = [
       ma27
diff --git a/nixos/doc/manual/administration/boot-problems.xml b/nixos/doc/manual/administration/boot-problems.xml
index badc374ebcf..e0f66284010 100644
--- a/nixos/doc/manual/administration/boot-problems.xml
+++ b/nixos/doc/manual/administration/boot-problems.xml
@@ -58,9 +58,9 @@
       Like <literal>boot.debug1</literal> or
       <literal>boot.debug1devices</literal>, but runs stage1 until all
       filesystems that are mounted during initrd are mounted (see
-      <option><link linkend="opt-fileSystems._name__.neededForBoot">neededForBoot</link></option>
+      <option><link linkend="opt-fileSystems._name_.neededForBoot">neededForBoot</link></option>
       ). As a motivating example, this could be useful if you've forgotten to set
-      <option><link linkend="opt-fileSystems._name__.neededForBoot">neededForBoot</link></option>
+      <option><link linkend="opt-fileSystems._name_.neededForBoot">neededForBoot</link></option>
       on a file system.
      </para>
     </listitem>
diff --git a/nixos/doc/manual/administration/imperative-containers.xml b/nixos/doc/manual/administration/imperative-containers.xml
index 7ded0c11786..435ed230f51 100644
--- a/nixos/doc/manual/administration/imperative-containers.xml
+++ b/nixos/doc/manual/administration/imperative-containers.xml
@@ -27,7 +27,7 @@
 <screen>
 # nixos-container create foo --config '
   <xref linkend="opt-services.openssh.enable"/> = true;
-  <link linkend="opt-users.users._name__.openssh.authorizedKeys.keys">users.users.root.openssh.authorizedKeys.keys</link> = ["ssh-dss AAAAB3N…"];
+  <link linkend="opt-users.users._name_.openssh.authorizedKeys.keys">users.users.root.openssh.authorizedKeys.keys</link> = ["ssh-dss AAAAB3N…"];
 '
 </screen>
   By default the next free address in the <literal>10.233.0.0/16</literal> subnet will be chosen
diff --git a/nixos/doc/manual/configuration/configuration.xml b/nixos/doc/manual/configuration/configuration.xml
index 507d28814ea..6eb8f50baca 100644
--- a/nixos/doc/manual/configuration/configuration.xml
+++ b/nixos/doc/manual/configuration/configuration.xml
@@ -18,6 +18,7 @@
  <xi:include href="user-mgmt.xml" />
  <xi:include href="file-systems.xml" />
  <xi:include href="x-windows.xml" />
+ <xi:include href="gpu-accel.xml" />
  <xi:include href="xfce.xml" />
  <xi:include href="networking.xml" />
  <xi:include href="linux-kernel.xml" />
diff --git a/nixos/doc/manual/configuration/file-systems.xml b/nixos/doc/manual/configuration/file-systems.xml
index 3ac02a975eb..9747433375f 100644
--- a/nixos/doc/manual/configuration/file-systems.xml
+++ b/nixos/doc/manual/configuration/file-systems.xml
@@ -23,12 +23,12 @@
   <link xlink:href="https://www.freedesktop.org/software/systemd/man/systemd-fstab-generator.html">systemd-fstab-generator</link>.
   The filesystem will be mounted automatically unless
   <literal>"noauto"</literal> is present in <link
-  linkend="opt-fileSystems._name__.options">options</link>.
+  linkend="opt-fileSystems._name_.options">options</link>.
   <literal>"noauto"</literal> filesystems can be mounted explicitly using
   <command>systemctl</command> e.g. <command>systemctl start
   data.mount</command>.
   Mount points are created automatically if they don’t already exist. For
-  <option><link linkend="opt-fileSystems._name__.device">device</link></option>,
+  <option><link linkend="opt-fileSystems._name_.device">device</link></option>,
   it’s best to use the topology-independent device aliases in
   <filename>/dev/disk/by-label</filename> and
   <filename>/dev/disk/by-uuid</filename>, as these don’t change if the
@@ -36,7 +36,7 @@
  </para>
  <para>
   You can usually omit the file system type
-  (<option><link linkend="opt-fileSystems._name__.fsType">fsType</link></option>),
+  (<option><link linkend="opt-fileSystems._name_.fsType">fsType</link></option>),
   since <command>mount</command> can usually detect the type and load the
   necessary kernel module automatically. However, if the file system is needed
   at early boot (in the initial ramdisk) and is not <literal>ext2</literal>,
@@ -49,7 +49,7 @@
    System startup will fail if any of the filesystems fails to mount, dropping
    you to the emergency shell. You can make a mount asynchronous and
    non-critical by adding
-   <literal><link linkend="opt-fileSystems._name__.options">options</link> = [
+   <literal><link linkend="opt-fileSystems._name_.options">options</link> = [
    "nofail" ];</literal>.
   </para>
  </note>
diff --git a/nixos/doc/manual/configuration/gpu-accel.xml b/nixos/doc/manual/configuration/gpu-accel.xml
new file mode 100644
index 00000000000..251e5c26ba4
--- /dev/null
+++ b/nixos/doc/manual/configuration/gpu-accel.xml
@@ -0,0 +1,258 @@
+<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-gpu-accel">
+  <title>GPU acceleration</title>
+
+  <para>
+    NixOS provides various APIs that benefit from GPU hardware
+    acceleration, such as VA-API and VDPAU for video playback; OpenGL and
+    Vulkan for 3D graphics; and OpenCL for general-purpose computing.
+    This chapter describes how to set up GPU hardware acceleration (as far
+    as this is not done automatically) and how to verify that hardware
+    acceleration is indeed used.
+  </para>
+
+  <para>
+    Most of the aforementioned APIs are agnostic with regards to which
+    display server is used. Consequently, these instructions should apply
+    both to the X Window System and Wayland compositors.
+  </para>
+
+  <section xml:id="sec-gpu-accel-opencl">
+    <title>OpenCL</title>
+
+    <para>
+      <link xlink:href="https://en.wikipedia.org/wiki/OpenCL">OpenCL</link> is a
+      general compute API. It is used by various applications such as
+      Blender and Darktable to accelerate certain operations.
+    </para>
+
+    <para>
+      OpenCL applications load drivers through the <emphasis>Installable Client
+      Driver</emphasis> (ICD) mechanism. In this mechanism, an ICD file
+      specifies the path to the OpenCL driver for a particular GPU family.
+      In NixOS, there are two ways to make ICD files visible to the ICD
+      loader. The first is through the <varname>OCL_ICD_VENDORS</varname>
+      environment variable. This variable can contain a directory which
+      is scanned by the ICL loader for ICD files. For example:
+
+      <screen><prompt>$</prompt> export \
+  OCL_ICD_VENDORS=`nix-build '&lt;nixpkgs&gt;' --no-out-link -A rocm-opencl-icd`/etc/OpenCL/vendors/</screen>
+    </para>
+
+    <para>
+      The second mechanism is to add the OpenCL driver package to
+      <xref linkend="opt-hardware.opengl.extraPackages"/>. This links the
+      ICD file under <filename>/run/opengl-driver</filename>, where it will
+      be visible to the ICD loader.
+    </para>
+
+    <para>
+      The proper installation of OpenCL drivers can be verified through
+      the <command>clinfo</command> command of the <package>clinfo</package>
+      package. This command will report the number of hardware devices
+      that is found and give detailed information for each device:
+    </para>
+
+    <screen><prompt>$</prompt> clinfo | head -n3
+Number of platforms  1
+Platform Name        AMD Accelerated Parallel Processing
+Platform Vendor      Advanced Micro Devices, Inc.</screen>
+
+    <section xml:id="sec-gpu-accel-opencl-amd">
+      <title>AMD</title>
+
+      <para>
+	Modern AMD <link
+	xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics
+	Core Next</link> (GCN) GPUs are supported through the
+	<package>rocm-opencl-icd</package> package. Adding this package to
+	<xref linkend="opt-hardware.opengl.extraPackages"/> enables OpenCL
+	support:
+
+	<programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [
+  rocm-opencl-icd
+];</programlisting>
+      </para>
+    </section>
+
+    <section xml:id="sec-gpu-accel-opencl-intel">
+      <title>Intel</title>
+
+      <para>
+       <link
+         xlink:href="https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units#Gen8">Intel
+       Gen8 and later GPUs</link> are supported by the Intel NEO OpenCL
+       runtime that is provided by the
+       <package>intel-compute-runtime</package> package. For Gen7 GPUs,
+       the deprecated Beignet runtime can be used, which is provided
+       by the <package>beignet</package> package. The proprietary Intel
+       OpenCL runtime, in the <package>intel-ocl</package> package, is
+       an alternative for Gen7 GPUs.
+      </para>
+
+      <para>
+       The <package>intel-compute-runtime</package>, <package>beignet</package>,
+       or <package>intel-ocl</package> package can be added to
+       <xref linkend="opt-hardware.opengl.extraPackages"/> to enable OpenCL
+       support. For example, for Gen8 and later GPUs, the following
+       configuration can be used:
+
+	      <programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [
+  intel-compute-runtime
+];</programlisting>
+
+      </para>
+    </section>
+  </section>
+
+  <section xml:id="sec-gpu-accel-vulkan">
+    <title>Vulkan</title>
+
+    <para>
+      <link xlink:href="https://en.wikipedia.org/wiki/Vulkan_(API)">Vulkan</link> is a
+      graphics and compute API for GPUs. It is used directly by games or indirectly though
+      compatibility layers like <link xlink:href="https://github.com/doitsujin/dxvk/wiki">DXVK</link>.
+    </para>
+
+    <para>
+     By default, if <xref linkend="opt-hardware.opengl.driSupport"/> is enabled,
+     <package>mesa</package> is installed and provides Vulkan for supported hardware.
+    </para>
+
+    <para>
+      Similar to OpenCL, Vulkan drivers are loaded through the <emphasis>Installable Client
+      Driver</emphasis> (ICD) mechanism. ICD files for Vulkan are JSON files that specify
+      the path to the driver library and the supported Vulkan version. All successfully
+      loaded drivers are exposed to the application as different GPUs.
+      In NixOS, there are two ways to make ICD files visible to Vulkan applications: an
+      environment variable and a module option.
+    </para>
+
+    <para>
+      The first option is through the <varname>VK_ICD_FILENAMES</varname>
+      environment variable. This variable can contain multiple JSON files, separated by
+      <literal>:</literal>. For example:
+
+      <screen><prompt>$</prompt> export \
+  VK_ICD_FILENAMES=`nix-build '&lt;nixpkgs&gt;' --no-out-link -A amdvlk`/share/vulkan/icd.d/amd_icd64.json</screen>
+    </para>
+
+    <para>
+      The second mechanism is to add the Vulkan driver package to
+      <xref linkend="opt-hardware.opengl.extraPackages"/>. This links the
+      ICD file under <filename>/run/opengl-driver</filename>, where it will
+      be visible to the ICD loader.
+    </para>
+
+    <para>
+      The proper installation of Vulkan drivers can be verified through
+      the <command>vulkaninfo</command> command of the <package>vulkan-tools</package>
+      package. This command will report the hardware devices and drivers found,
+      in this example output amdvlk and radv:
+    </para>
+
+    <screen><prompt>$</prompt> vulkaninfo | grep GPU
+                GPU id  : 0 (Unknown AMD GPU)
+                GPU id  : 1 (AMD RADV NAVI10 (LLVM 9.0.1))
+     ...
+GPU0:
+        deviceType     = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
+        deviceName     = Unknown AMD GPU
+GPU1:
+        deviceType     = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU</screen>
+
+    <para>
+      A simple graphical application that uses Vulkan is <command>vkcube</command>
+      from the <package>vulkan-tools</package> package.
+    </para>
+
+    <section xml:id="sec-gpu-accel-vulkan-amd">
+      <title>AMD</title>
+
+      <para>
+	Modern AMD <link
+	xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics
+	Core Next</link> (GCN) GPUs are supported through either radv, which is
+	part of <package>mesa</package>, or the <package>amdvlk</package> package.
+	Adding the <package>amdvlk</package> package to
+	<xref linkend="opt-hardware.opengl.extraPackages"/> makes both drivers
+	available for applications and lets them choose. A specific driver can
+	be forced as follows:
+
+	<programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [
+  <package>amdvlk</package>
+];
+
+# For amdvlk
+<xref linkend="opt-environment.variables"/>.VK_ICD_FILENAMES =
+   "/run/opengl-driver/share/vulkan/icd.d/amd_icd64.json";
+# For radv
+<xref linkend="opt-environment.variables"/>.VK_ICD_FILENAMES =
+  "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json";
+</programlisting>
+      </para>
+    </section>
+  </section>
+
+  <section xml:id="sec-gpu-accel-common-issues">
+   <title>Common issues</title>
+
+   <section xml:id="sec-gpu-accel-common-issues-permissions">
+    <title>User permissions</title>
+
+    <para>
+     Except where noted explicitly, it should not be necessary to
+     adjust user permissions to use these acceleration APIs. In the default
+     configuration, GPU devices have world-read/write permissions
+     (<filename>/dev/dri/renderD*</filename>) or are tagged as
+     <code>uaccess</code> (<filename>/dev/dri/card*</filename>).  The
+     access control lists of devices with the <varname>uaccess</varname>
+     tag will be updated automatically when a user logs in through
+     <command>systemd-logind</command>. For example, if the user
+     <emphasis>jane</emphasis> is logged in, the access control list
+     should look as follows:
+
+     <screen><prompt>$</prompt> getfacl /dev/dri/card0
+# file: dev/dri/card0
+# owner: root
+# group: video
+user::rw-
+user:jane:rw-
+group::rw-
+mask::rw-
+other::---</screen>
+
+     If you disabled (this functionality of) <command>systemd-logind</command>,
+     you may need to add the user to the <code>video</code> group and
+     log in again.
+    </para>
+   </section>
+
+   <section xml:id="sec-gpu-accel-common-issues-mixing-nixpkgs">
+    <title>Mixing different versions of nixpkgs</title>
+
+    <para>
+     The <emphasis>Installable Client Driver</emphasis> (ICD)
+     mechanism used by OpenCL and Vulkan loads runtimes into its address
+     space using <code>dlopen</code>. Mixing an ICD loader mechanism and
+     runtimes from different version of nixpkgs may not work. For example,
+     if the ICD loader uses an older version of <package>glibc</package>
+     than the runtime, the runtime may not be loadable due to
+     missing symbols. Unfortunately, the loader will generally be quiet
+     about such issues.
+    </para>
+
+    <para>
+     If you suspect that you are running into library version mismatches
+     between an ICL loader and a runtime, you could run an application with
+     the <code>LD_DEBUG</code> variable set to get more diagnostic
+     information. For example, OpenCL can be tested with
+     <code>LD_DEBUG=files clinfo</code>, which should report missing
+     symbols.
+    </para>
+   </section>
+  </section>
+</chapter>
diff --git a/nixos/doc/manual/configuration/ipv4-config.xml b/nixos/doc/manual/configuration/ipv4-config.xml
index 71ddf41491b..884becf0979 100644
--- a/nixos/doc/manual/configuration/ipv4-config.xml
+++ b/nixos/doc/manual/configuration/ipv4-config.xml
@@ -10,7 +10,7 @@
   automatically configure network interfaces. However, you can configure an
   interface manually as follows:
 <programlisting>
-<link linkend="opt-networking.interfaces._name__.ipv4.addresses">networking.interfaces.eth0.ipv4.addresses</link> = [ {
+<link linkend="opt-networking.interfaces._name_.ipv4.addresses">networking.interfaces.eth0.ipv4.addresses</link> = [ {
   address = "192.168.1.2";
   prefixLength = 24;
 } ];
diff --git a/nixos/doc/manual/configuration/ipv6-config.xml b/nixos/doc/manual/configuration/ipv6-config.xml
index 675a5d9a260..7b89b4092be 100644
--- a/nixos/doc/manual/configuration/ipv6-config.xml
+++ b/nixos/doc/manual/configuration/ipv6-config.xml
@@ -26,7 +26,7 @@
   As with IPv4 networking interfaces are automatically configured via DHCPv6.
   You can configure an interface manually:
 <programlisting>
-<link linkend="opt-networking.interfaces._name__.ipv6.addresses">networking.interfaces.eth0.ipv6.addresses</link> = [ {
+<link linkend="opt-networking.interfaces._name_.ipv6.addresses">networking.interfaces.eth0.ipv6.addresses</link> = [ {
   address = "fe00:aa:bb:cc::2";
   prefixLength = 64;
 } ];
diff --git a/nixos/doc/manual/configuration/luks-file-systems.xml b/nixos/doc/manual/configuration/luks-file-systems.xml
index d3007843d68..8a8168c095f 100644
--- a/nixos/doc/manual/configuration/luks-file-systems.xml
+++ b/nixos/doc/manual/configuration/luks-file-systems.xml
@@ -30,7 +30,7 @@ Enter passphrase for /dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d: ***
   <filename>/</filename>, add the following to
   <filename>configuration.nix</filename>:
 <programlisting>
-<link linkend="opt-boot.initrd.luks.devices._name__.device">boot.initrd.luks.devices.crypted.device</link> = "/dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d";
+<link linkend="opt-boot.initrd.luks.devices._name_.device">boot.initrd.luks.devices.crypted.device</link> = "/dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d";
 <xref linkend="opt-fileSystems"/>."/".device = "/dev/mapper/crypted";
 </programlisting>
   Should grub be used as bootloader, and <filename>/boot</filename> is located
@@ -60,13 +60,13 @@ Added to key to device /dev/sda2, slot: 2
   To ensure that this file system is decrypted using the FIDO2 compatible key, add the following to <filename>configuration.nix</filename>:
 <programlisting>
 <link linkend="opt-boot.initrd.luks.fido2Support">boot.initrd.luks.fido2Support</link> = true;
-<link linkend="opt-boot.initrd.luks.devices._name__.fido2.credential">boot.initrd.luks.devices."/dev/sda2".fido2.credential</link> = "f1d00200108b9d6e849a8b388da457688e3dd653b4e53770012d8f28e5d3b269865038c346802f36f3da7278b13ad6a3bb6a1452e24ebeeaa24ba40eef559b1b287d2a2f80b7";
+<link linkend="opt-boot.initrd.luks.devices._name_.fido2.credential">boot.initrd.luks.devices."/dev/sda2".fido2.credential</link> = "f1d00200108b9d6e849a8b388da457688e3dd653b4e53770012d8f28e5d3b269865038c346802f36f3da7278b13ad6a3bb6a1452e24ebeeaa24ba40eef559b1b287d2a2f80b7";
 </programlisting>
 
   You can also use the FIDO2 passwordless setup, but for security reasons, you might want to enable it only when your device is PIN protected, such as <link xlink:href="https://trezor.io/">Trezor</link>.
 
 <programlisting>
-<link linkend="opt-boot.initrd.luks.devices._name__.fido2.passwordLess">boot.initrd.luks.devices."/dev/sda2".fido2.passwordLess</link> = true;
+<link linkend="opt-boot.initrd.luks.devices._name_.fido2.passwordLess">boot.initrd.luks.devices."/dev/sda2".fido2.passwordLess</link> = true;
 </programlisting>
   </para>
  </section>
diff --git a/nixos/doc/manual/configuration/network-manager.xml b/nixos/doc/manual/configuration/network-manager.xml
index 3953e0ffe85..94d229fd803 100644
--- a/nixos/doc/manual/configuration/network-manager.xml
+++ b/nixos/doc/manual/configuration/network-manager.xml
@@ -19,7 +19,7 @@
   All users that should have permission to change network settings must belong
   to the <code>networkmanager</code> group:
 <programlisting>
-<link linkend="opt-users.users._name__.extraGroups">users.users.alice.extraGroups</link> = [ "networkmanager" ];
+<link linkend="opt-users.users._name_.extraGroups">users.users.alice.extraGroups</link> = [ "networkmanager" ];
 </programlisting>
  </para>
 
diff --git a/nixos/doc/manual/configuration/profiles/demo.xml b/nixos/doc/manual/configuration/profiles/demo.xml
index 395a5ec357c..bc801bb3dc5 100644
--- a/nixos/doc/manual/configuration/profiles/demo.xml
+++ b/nixos/doc/manual/configuration/profiles/demo.xml
@@ -9,7 +9,6 @@
   This profile just enables a <systemitem class="username">demo</systemitem>
   user, with password <literal>demo</literal>, uid <literal>1000</literal>,
   <systemitem class="groupname">wheel</systemitem> group and
-  <link linkend="opt-services.xserver.displayManager.sddm.autoLogin"> autologin
-  in the SDDM display manager</link>.
+  <link linkend="opt-services.xserver.displayManager.autoLogin">autologin in the SDDM display manager</link>.
  </para>
 </section>
diff --git a/nixos/doc/manual/configuration/ssh.xml b/nixos/doc/manual/configuration/ssh.xml
index a4af1b96583..95ad3edff93 100644
--- a/nixos/doc/manual/configuration/ssh.xml
+++ b/nixos/doc/manual/configuration/ssh.xml
@@ -20,7 +20,7 @@
   follows:
 <!-- FIXME: this might not work if the user is unmanaged. -->
 <programlisting>
-<link linkend="opt-users.users._name__.openssh.authorizedKeys.keys">users.users.alice.openssh.authorizedKeys.keys</link> =
+<link linkend="opt-users.users._name_.openssh.authorizedKeys.keys">users.users.alice.openssh.authorizedKeys.keys</link> =
   [ "ssh-dss AAAAB3NzaC1kc3MAAACBAPIkGWVEt4..." ];
 </programlisting>
  </para>
diff --git a/nixos/doc/manual/configuration/user-mgmt.xml b/nixos/doc/manual/configuration/user-mgmt.xml
index 4b1710f3a2b..68324cc85b5 100644
--- a/nixos/doc/manual/configuration/user-mgmt.xml
+++ b/nixos/doc/manual/configuration/user-mgmt.xml
@@ -11,11 +11,11 @@
   that a user account named <literal>alice</literal> shall exist:
 <programlisting>
 <xref linkend="opt-users.users"/>.alice = {
-  <link linkend="opt-users.users._name__.isNormalUser">isNormalUser</link> = true;
-  <link linkend="opt-users.users._name__.home">home</link> = "/home/alice";
-  <link linkend="opt-users.users._name__.description">description</link> = "Alice Foobar";
-  <link linkend="opt-users.users._name__.extraGroups">extraGroups</link> = [ "wheel" "networkmanager" ];
-  <link linkend="opt-users.users._name__.openssh.authorizedKeys.keys">openssh.authorizedKeys.keys</link> = [ "ssh-dss AAAAB3Nza... alice@foobar" ];
+  <link linkend="opt-users.users._name_.isNormalUser">isNormalUser</link> = true;
+  <link linkend="opt-users.users._name_.home">home</link> = "/home/alice";
+  <link linkend="opt-users.users._name_.description">description</link> = "Alice Foobar";
+  <link linkend="opt-users.users._name_.extraGroups">extraGroups</link> = [ "wheel" "networkmanager" ];
+  <link linkend="opt-users.users._name_.openssh.authorizedKeys.keys">openssh.authorizedKeys.keys</link> = [ "ssh-dss AAAAB3Nza... alice@foobar" ];
 };
 </programlisting>
   Note that <literal>alice</literal> is a member of the
@@ -36,7 +36,7 @@
   account will cease to exist. Also, imperative commands for managing users and
   groups, such as useradd, are no longer available. Passwords may still be
   assigned by setting the user's
-  <link linkend="opt-users.users._name__.hashedPassword">hashedPassword</link>
+  <link linkend="opt-users.users._name_.hashedPassword">hashedPassword</link>
   option. A hashed password can be generated using <command>mkpasswd -m
   sha-512</command> after installing the <literal>mkpasswd</literal> package.
  </para>
diff --git a/nixos/doc/manual/configuration/x-windows.xml b/nixos/doc/manual/configuration/x-windows.xml
index ca93026d865..18f0be5e7f3 100644
--- a/nixos/doc/manual/configuration/x-windows.xml
+++ b/nixos/doc/manual/configuration/x-windows.xml
@@ -90,10 +90,9 @@
   using lightdm for a user <literal>alice</literal>:
 <programlisting>
 <xref linkend="opt-services.xserver.displayManager.lightdm.enable"/> = true;
-<xref linkend="opt-services.xserver.displayManager.lightdm.autoLogin.enable"/> = true;
-<xref linkend="opt-services.xserver.displayManager.lightdm.autoLogin.user"/> = "alice";
+<xref linkend="opt-services.xserver.displayManager.autoLogin.enable"/> = true;
+<xref linkend="opt-services.xserver.displayManager.autoLogin.user"/> = "alice";
 </programlisting>
-  The options are named identically for all other display managers.
   </para>
  </simplesect>
  <simplesect xml:id="sec-x11--graphics-cards-intel">
diff --git a/nixos/doc/manual/development/freeform-modules.xml b/nixos/doc/manual/development/freeform-modules.xml
new file mode 100644
index 00000000000..257e6b11bf0
--- /dev/null
+++ b/nixos/doc/manual/development/freeform-modules.xml
@@ -0,0 +1,68 @@
+<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-freeform-modules">
+ <title>Freeform modules</title>
+ <para>
+  Freeform modules allow you to define values for option paths that have not been declared explicitly. This can be used to add attribute-specific types to what would otherwise have to be <literal>attrsOf</literal> options in order to accept all attribute names.
+ </para>
+ <para>
+  This feature can be enabled by using the attribute <literal>freeformType</literal> to define a freeform type. By doing this, all assignments without an associated option will be merged using the freeform type and combined into the resulting <literal>config</literal> set. Since this feature nullifies name checking for entire option trees, it is only recommended for use in submodules.
+ </para>
+ <example xml:id="ex-freeform-module">
+  <title>Freeform submodule</title>
+  <para>
+   The following shows a submodule assigning a freeform type that allows arbitrary attributes with <literal>str</literal> values below <literal>settings</literal>, but also declares an option for the <literal>settings.port</literal> attribute to have it type-checked and assign a default value. See <xref linkend="ex-settings-typed-attrs"/> for a more complete example.
+  </para>
+ <programlisting>
+{ lib, config, ... }: {
+
+  options.settings = lib.mkOption {
+    type = lib.types.submodule {
+
+      freeformType = with lib.types; attrsOf str;
+
+      # We want this attribute to be checked for the correct type
+      options.port = lib.mkOption {
+        type = lib.types.port;
+        # Declaring the option also allows defining a default value
+        default = 8080;
+      };
+
+    };
+  };
+}
+ </programlisting>
+ <para>
+  And the following shows what such a module then allows
+ </para>
+ <programlisting>
+{
+  # Not a declared option, but the freeform type allows this
+  settings.logLevel = "debug";
+
+  # Not allowed because the the freeform type only allows strings
+  # settings.enable = true;
+
+  # Allowed because there is a port option declared
+  settings.port = 80;
+
+  # Not allowed because the port option doesn't allow strings
+  # settings.port = "443";
+}
+ </programlisting>
+ </example>
+ <note>
+  <para>
+   Freeform attributes cannot depend on other attributes of the same set without infinite recursion:
+<programlisting>
+{
+  # This throws infinite recursion encountered
+  settings.logLevel = lib.mkIf (config.settings.port == 80) "debug";
+}
+</programlisting>
+   To prevent this, declare options for all attributes that need to depend on others. For above example this means to declare <literal>logLevel</literal> to be an option.
+  </para>
+ </note>
+</section>
diff --git a/nixos/doc/manual/development/option-types.xml b/nixos/doc/manual/development/option-types.xml
index 957349ad181..5a6dae6e991 100644
--- a/nixos/doc/manual/development/option-types.xml
+++ b/nixos/doc/manual/development/option-types.xml
@@ -387,17 +387,6 @@
    </varlistentry>
    <varlistentry>
     <term>
-     <varname>types.loaOf</varname> <replaceable>t</replaceable>
-    </term>
-    <listitem>
-     <para>
-      An attribute set or a list of <replaceable>t</replaceable> type. Multiple
-      definitions are merged according to the value.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
      <varname>types.nullOr</varname> <replaceable>t</replaceable>
     </term>
     <listitem>
diff --git a/nixos/doc/manual/development/releases.xml b/nixos/doc/manual/development/releases.xml
index 8abc66dfec1..cd68a428a6f 100755
--- a/nixos/doc/manual/development/releases.xml
+++ b/nixos/doc/manual/development/releases.xml
@@ -8,24 +8,26 @@
   <title>Release process</title>
 
   <para>
-   Going through an example of releasing NixOS 17.09:
+   Going through an example of releasing NixOS 19.09:
   </para>
 
   <section xml:id="one-month-before-the-beta">
    <title>One month before the beta</title>
 
-   <itemizedlist spacing="compact">
+   <itemizedlist>
     <listitem>
      <para>
-      Send an email to the nix-devel mailinglist as a warning about upcoming
-      beta "feature freeze" in a month.
+      Create an announcement on <link xlink:href="https://discourse.nixos.org">Discourse</link> as a warning about upcoming beta <quote>feature freeze</quote> in a month. <link xlink:href="https://discourse.nixos.org/t/nixos-19-09-feature-freeze/3707">See this post as an example</link>.
      </para>
     </listitem>
     <listitem>
      <para>
-      Discuss with Eelco Dolstra and the community (via IRC, ML) about what
-      will reach the deadline. Any issue or Pull Request targeting the release
-      should be included in the release milestone.
+      Discuss with Eelco Dolstra and the community (via IRC, ML) about what will reach the deadline. Any issue or Pull Request targeting the release should be included in the release milestone.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      Remove attributes that we know we will not be able to support, especially if there is a stable alternative. E.g. Check that our Linux kernels’ <link xlink:href="https://www.kernel.org/category/releases.html">projected end-of-life</link> are after our release projected end-of-life.
      </para>
     </listitem>
    </itemizedlist>
@@ -34,113 +36,113 @@
   <section xml:id="at-beta-release-time">
    <title>At beta release time</title>
 
-   <itemizedlist spacing="compact">
+   <orderedlist>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/issues/13559">Create
-      an issue for tracking Zero Hydra Failures progress. ZHF is an effort to
-      get build failures down to zero.</link>
+      From the master branch run:
      </para>
+<programlisting>
+git checkout -b release-19.09
+</programlisting>
     </listitem>
     <listitem>
      <para>
-      <literal>git tag -a -s -m &quot;Release 17.09-beta&quot; 17.09-beta
-      &amp;&amp; git push origin 17.09-beta</literal>
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/10e61bf5be57736035ec7a804cb0bf3d083bf2cf#diff-9c798092bac0caeb5c52d509be0ca263R69">Bump the <literal>system.defaultChannel</literal> attribute in <literal>nixos/modules/misc/version.nix</literal></link>
      </para>
     </listitem>
     <listitem>
      <para>
-      From the master branch run <literal>git checkout -b
-      release-17.09</literal>.
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/10e61bf5be57736035ec7a804cb0bf3d083bf2cf#diff-831e8d9748240fb23e6734fdc2a6d16eR15">Update <literal>versionSuffix</literal> in <literal>nixos/release.nix</literal></link>
      </para>
     </listitem>
+   </orderedlist>
+
+   <para>
+    To get the commit count, use the following command:
+   </para>
+
+<programlisting>
+git rev-list --count release-19.09
+</programlisting>
+
+   <orderedlist>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixos-org-configurations/pull/18">
-      Make sure a channel is created at https://nixos.org/channels/. </link>
+      Edit changelog at <literal>nixos/doc/manual/release-notes/rl-1909.xml</literal>.
      </para>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Get all new NixOS modules:
+       </para>
+<programlisting>
+git diff release-19.03..release-19.09 nixos/modules/module-list.nix | grep ^+
+</programlisting>
+      </listitem>
+      <listitem>
+       <para>
+        Note systemd, kernel, glibc, desktop environment, and Nix upgrades.
+       </para>
+      </listitem>
+     </itemizedlist>
     </listitem>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/compare/bdf161ed8d21...6b63c4616790">
-      Bump the <literal>system.defaultChannel</literal> attribute in
-      <literal>nixos/modules/misc/version.nix</literal> </link>
+      Tag the release:
      </para>
+<programlisting>
+git tag --annotate --message="Release 19.09-beta" 19.09-beta
+git push upstream 19.09-beta
+</programlisting>
     </listitem>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/d6b08acd1ccac0d9d502c4b635e00b04d3387f06">
-      Update <literal>versionSuffix</literal> in
-      <literal>nixos/release.nix</literal></link>, use
-      <literal>git rev-list --count 17.09-beta</literal>
-      to get the commit count.
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/01268fda85b7eee4e462c873d8654f975067731f#diff-2bc0e46110b507d6d5a344264ef15adaR1">On the <literal>master</literal> branch, increment the <literal>.version</literal> file</link>
      </para>
+<programlisting>
+echo -n "20.03" > .version
+</programlisting>
     </listitem>
     <listitem>
      <para>
-      <literal>echo -n &quot;18.03&quot; &gt; .version</literal> on master.
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/01268fda85b7eee4e462c873d8654f975067731f#diff-03f3d41b68f62079c55001f1a1c55c1dR137">Update <literal>codeName</literal> in <literal>lib/trivial.nix</literal></link> This will be the name for the next release.
      </para>
     </listitem>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/b8a4095003e27659092892a4708bb3698231a842">
-      Pick a new name for the unstable branch. </link>
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/01268fda85b7eee4e462c873d8654f975067731f#diff-e7ee5ff686cdcc513ca089d6e5682587R11">Create a new release notes file for the upcoming release + 1</link>, in our case this is <literal>rl-2003.xml</literal>.
      </para>
     </listitem>
     <listitem>
      <para>
-      Create a new release notes file for the upcoming release + 1, in this
-      case <literal>rl-1803.xml</literal>.
+      Contact the infrastructure team to create the necessary Hydra Jobsets.
      </para>
     </listitem>
     <listitem>
      <para>
-      Create two Hydra jobsets: release-17.09 and release-17.09-small with
-      <literal>stableBranch</literal> set to false.
+      <link xlink:href="https://github.com/NixOS/nixos-org-configurations/blob/master/channels.nix">Create a channel at https://nixos.org/channels by creating a PR to nixos-org-configurations, changing <literal>channels.nix</literal></link>
      </para>
     </listitem>
     <listitem>
      <para>
-      Remove attributes that we know we will not be able to support,
-      especially if there is a stable alternative. E.g. Check that our
-      Linux kernels'
-      <link xlink:href="https://www.kernel.org/category/releases.html">
-      projected end-of-life</link> are after our release projected
-      end-of-life
+      Get all Hydra jobsets for the release to have their first evaluation.
      </para>
     </listitem>
     <listitem>
      <para>
-      Edit changelog at
-      <literal>nixos/doc/manual/release-notes/rl-1709.xml</literal> (double
-      check desktop versions are noted)
+      <link xlink:href="https://github.com/NixOS/nixpkgs/issues/13559">Create an issue for tracking Zero Hydra Failures progress. ZHF is an effort to get build failures down to zero.</link>
      </para>
-     <itemizedlist spacing="compact">
-      <listitem>
-       <para>
-        Get all new NixOS modules <literal>git diff
-        release-17.03..release-17.09 nixos/modules/module-list.nix|grep
-        ^+</literal>
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        Note systemd, kernel, glibc and Nix upgrades.
-       </para>
-      </listitem>
-     </itemizedlist>
     </listitem>
-   </itemizedlist>
+   </orderedlist>
   </section>
 
   <section xml:id="during-beta">
    <title>During Beta</title>
 
-   <itemizedlist spacing="compact">
+   <itemizedlist>
     <listitem>
      <para>
-      Monitor the master branch for bugfixes and minor updates and cherry-pick
-      them to the release branch.
+      Monitor the master branch for bugfixes and minor updates and cherry-pick them to the release branch.
      </para>
     </listitem>
    </itemizedlist>
@@ -149,7 +151,7 @@
   <section xml:id="before-the-final-release">
    <title>Before the final release</title>
 
-   <itemizedlist spacing="compact">
+   <itemizedlist>
     <listitem>
      <para>
       Re-check that the release notes are complete.
@@ -157,21 +159,17 @@
     </listitem>
     <listitem>
      <para>
-      Release Nix (currently only Eelco Dolstra can do that).
-      <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/tools/nix-fallback-paths.nix">
-      Make sure fallback is updated. </link>
+      Release Nix (currently only Eelco Dolstra can do that). <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/tools/nix-fallback-paths.nix">Make sure fallback is updated.</link>
      </para>
     </listitem>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/40fd9ae3ac8048758abdcfc7d28a78b5f22fe97e">
-      Update README.md with new stable NixOS version information. </link>
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/40fd9ae3ac8048758abdcfc7d28a78b5f22fe97e">Update README.md with new stable NixOS version information.</link>
      </para>
     </listitem>
     <listitem>
      <para>
-      Change <literal>stableBranch</literal> to <literal>true</literal> in Hydra and wait for
-      the channel to update.
+      Change <literal>stableBranch</literal> to <literal>true</literal> in Hydra and wait for the channel to update.
      </para>
     </listitem>
    </itemizedlist>
@@ -180,76 +178,143 @@
   <section xml:id="at-final-release-time">
    <title>At final release time</title>
 
-   <itemizedlist spacing="compact">
+   <orderedlist>
     <listitem>
      <para>
-      <literal>git tag -s -a -m &quot;Release 15.09&quot; 15.09</literal>
+      Update <xref linkend="sec-upgrading" /> section of the manual to match new stable release version.
      </para>
     </listitem>
     <listitem>
      <para>
-      Update "Chapter 4. Upgrading NixOS" section of the manual to match
-      new stable release version.
+      Update <literal>rl-1909.xml</literal> with the release date.
      </para>
     </listitem>
     <listitem>
      <para>
-      Update the
-      <link xlink:href="https://github.com/NixOS/nixos-homepage/commit/2a37975d5a617ecdfca94696242b6f32ffcba9f1"><code>NIXOS_SERIES</code></link>
-      in the
-      <link xlink:href="https://github.com/NixOS/nixos-homepage">nixos-homepage</link>
-      repository.
+      Tag the final release
      </para>
+<programlisting>
+git tag --annotate --message="Release 19.09" 19.09
+git push upstream 19.09
+</programlisting>
+    </listitem>
+    <listitem>
+     <para>
+      Update <link xlink:href="https://github.com/NixOS/nixos-homepage">nixos-homepage</link> for the release.
+     </para>
+     <orderedlist>
+      <listitem>
+       <para>
+        <link xlink:href="https://github.com/NixOS/nixos-homepage/blob/47ac3571c4d71e841fd4e6c6e1872e762b9c4942/Makefile#L1">Update <literal>NIXOS_SERIES</literal> in the <literal>Makefile</literal></link>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <link xlink:href="https://github.com/NixOS/nixos-homepage/blob/47ac3571c4d71e841fd4e6c6e1872e762b9c4942/nixos-release.tt#L1">Update <literal>nixos-release.tt</literal> with the new NixOS version</link>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <link xlink:href="https://github.com/NixOS/nixos-homepage/blob/47ac3571c4d71e841fd4e6c6e1872e762b9c4942/flake.nix#L10">Update the <literal>flake.nix</literal> input <literal>released-nixpkgs</literal> to 19.09</link>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Run <literal>./update.sh</literal> (this updates flake.lock to updated channel).
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <link xlink:href="https://github.com/NixOS/nixos-homepage/blob/a5626c71c03a2dd69086564e56f1a230a2bb177a/logo/nixos-logo-19.09-loris-lores.png">Add a compressed version of the NixOS logo for 19.09</link>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <link xlink:href="https://github.com/NixOS/nixos-homepage/commit/a5626c71c03a2dd69086564e56f1a230a2bb177a#diff-9cdc6434d3e4fd93a6e5bb0a531a7c71R5">Compose a news item for the website RSS feed</link>.
+       </para>
+      </listitem>
+     </orderedlist>
     </listitem>
     <listitem>
      <para>
-      Get number of commits for the release: <literal>git log
-      release-14.04..release-14.12 --format=%an|wc -l</literal>
+      Create a new topic on <link xlink:href="https://discourse.nixos.org/">the Discourse instance</link> to announce the release.
      </para>
     </listitem>
+   </orderedlist>
+
+   <para>
+    You should include the following information:
+   </para>
+
+   <itemizedlist>
     <listitem>
      <para>
-      Commits by contributor: <literal>git log release-14.04..release-14.12
-      --format=%an|sort|uniq -c|sort -rn</literal>
+      Number of commits for the release:
      </para>
+<programlisting>
+bash git log release-19.03..release-19.09 --format=%an | wc -l
+</programlisting>
     </listitem>
     <listitem>
      <para>
-      Create a new topic on <link xlink:href="https://discourse.nixos.org/">the
-      Discourse instance</link> to announce the release with the above information.
-      Best to check how previous email was formulated to see what needs to be
-      included.
+      Commits by contributor:
      </para>
+<programlisting>
+git shortlog --summary --numbered release-19.03..release-19.09
+</programlisting>
     </listitem>
    </itemizedlist>
+
+   <para>
+    Best to check how the previous post was formulated to see what needs to be included.
+   </para>
   </section>
  </section>
- <section xml:id="release-managers">
+ <section xml:id="release-management-team">
   <title>Release Management Team</title>
+
   <para>
-   For each release there are two release managers. After each release the
-   release manager having managed two releases steps down and the release
-   management team of the last release appoints a new release manager.
+   For each release there are two release managers. After each release the release manager having managed two releases steps down and the release management team of the last release appoints a new release manager.
   </para>
+
   <para>
-   This makes sure a release management team always consists of one release
-   manager who already has managed one release and one release manager being
-   introduced to their role, making it easier to pass on knowledge and
-   experience.
+   This makes sure a release management team always consists of one release manager who already has managed one release and one release manager being introduced to their role, making it easier to pass on knowledge and experience.
   </para>
+
   <para>
-   Release managers for the current NixOS release are tracked by GitHub team
-   <link xlink:href="https://github.com/orgs/NixOS/teams/nixos-release-managers/members"><literal>@NixOS/nixos-release-managers</literal></link>.
+   Release managers for the current NixOS release are tracked by GitHub team <link xlink:href="https://github.com/orgs/NixOS/teams/nixos-release-managers/members"><literal>@NixOS/nixos-release-managers</literal></link>.
   </para>
+
   <para>
-   A release manager's role and responsibilities are:
+   A release manager’s role and responsibilities are:
   </para>
+
   <itemizedlist>
-   <listitem><para>manage the release process</para></listitem>
-   <listitem><para>start discussions about features and changes for a given release</para></listitem>
-   <listitem><para>create a roadmap</para></listitem>
-   <listitem><para>release in cooperation with Eelco Dolstra</para></listitem>
-   <listitem><para>decide which bug fixes, features, etc... get backported after a release</para></listitem>
+   <listitem>
+    <para>
+     manage the release process
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     start discussions about features and changes for a given release
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     create a roadmap
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     release in cooperation with Eelco Dolstra
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     decide which bug fixes, features, etc… get backported after a release
+    </para>
+   </listitem>
   </itemizedlist>
  </section>
  <section xml:id="release-schedule">
diff --git a/nixos/doc/manual/development/settings-options.xml b/nixos/doc/manual/development/settings-options.xml
new file mode 100644
index 00000000000..c99c3af92f8
--- /dev/null
+++ b/nixos/doc/manual/development/settings-options.xml
@@ -0,0 +1,216 @@
+<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-settings-options">
+ <title>Options for Program Settings</title>
+
+ <para>
+   Many programs have configuration files where program-specific settings can be declared. File formats can be separated into two categories:
+   <itemizedlist>
+     <listitem>
+       <para>
+         Nix-representable ones: These can trivially be mapped to a subset of Nix syntax. E.g. JSON is an example, since its values like <literal>{"foo":{"bar":10}}</literal> can be mapped directly to Nix: <literal>{ foo = { bar = 10; }; }</literal>. Other examples are INI, YAML and TOML. The following section explains the convention for these settings.
+       </para>
+     </listitem>
+     <listitem>
+       <para>
+         Non-nix-representable ones: These can't be trivially mapped to a subset of Nix syntax. Most generic programming languages are in this group, e.g. bash, since the statement <literal>if true; then echo hi; fi</literal> doesn't have a trivial representation in Nix.
+       </para>
+       <para>
+         Currently there are no fixed conventions for these, but it is common to have a <literal>configFile</literal> option for setting the configuration file path directly. The default value of <literal>configFile</literal> can be an auto-generated file, with convenient options for controlling the contents. For example an option of type <literal>attrsOf str</literal> can be used for representing environment variables which generates a section like <literal>export FOO="foo"</literal>. Often it can also be useful to also include an <literal>extraConfig</literal> option of type <literal>lines</literal> to allow arbitrary text after the autogenerated part of the file.
+       </para>
+     </listitem>
+   </itemizedlist>
+ </para>
+ <section xml:id="sec-settings-nix-representable">
+   <title>Nix-representable Formats (JSON, YAML, TOML, INI, ...)</title>
+   <para>
+     By convention, formats like this are handled with a generic <literal>settings</literal> option, representing the full program configuration as a Nix value. The type of this option should represent the format. The most common formats have a predefined type and string generator already declared under <literal>pkgs.formats</literal>:
+     <variablelist>
+       <varlistentry>
+         <term>
+           <varname>pkgs.formats.json</varname> { }
+         </term>
+         <listitem>
+           <para>
+             A function taking an empty attribute set (for future extensibility) and returning a set with JSON-specific attributes <varname>type</varname> and <varname>generate</varname> as specified <link linkend='pkgs-formats-result'>below</link>.
+           </para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term>
+           <varname>pkgs.formats.yaml</varname> { }
+         </term>
+         <listitem>
+           <para>
+             A function taking an empty attribute set (for future extensibility) and returning a set with YAML-specific attributes <varname>type</varname> and <varname>generate</varname> as specified <link linkend='pkgs-formats-result'>below</link>.
+           </para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term>
+           <varname>pkgs.formats.ini</varname> { <replaceable>listsAsDuplicateKeys</replaceable> ? false, ... }
+         </term>
+         <listitem>
+           <para>
+             A function taking an attribute set with values
+             <variablelist>
+               <varlistentry>
+                 <term>
+                   <varname>listsAsDuplicateKeys</varname>
+                 </term>
+                 <listitem>
+                   <para>
+                     A boolean for controlling whether list values can be used to represent duplicate INI keys
+                   </para>
+                 </listitem>
+               </varlistentry>
+             </variablelist>
+            It returns a set with INI-specific attributes <varname>type</varname> and <varname>generate</varname> as specified <link linkend='pkgs-formats-result'>below</link>.
+           </para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term>
+           <varname>pkgs.formats.toml</varname> { }
+         </term>
+         <listitem>
+           <para>
+             A function taking an empty attribute set (for future extensibility) and returning a set with TOML-specific attributes <varname>type</varname> and <varname>generate</varname> as specified <link linkend='pkgs-formats-result'>below</link>.
+           </para>
+         </listitem>
+       </varlistentry>
+     </variablelist>
+
+   </para>
+   <para xml:id="pkgs-formats-result">
+     These functions all return an attribute set with these values:
+    <variablelist>
+      <varlistentry>
+        <term>
+          <varname>type</varname>
+        </term>
+        <listitem>
+          <para>
+            A module system type representing a value of the format
+          </para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>
+          <varname>generate</varname> <replaceable>filename</replaceable> <replaceable>jsonValue</replaceable>
+        </term>
+        <listitem>
+          <para>
+           A function that can render a value of the format to a file. Returns a file path.
+           <note>
+            <para>
+             This function puts the value contents in the Nix store. So this should be avoided for secrets.
+            </para>
+           </note>
+          </para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+   </para>
+   <example xml:id="ex-settings-nix-representable">
+     <title>Module with conventional <literal>settings</literal> option</title>
+     <para>
+       The following shows a module for an example program that uses a JSON configuration file. It demonstrates how above values can be used, along with some other related best practices. See the comments for explanations.
+     </para>
+<programlisting>
+{ options, config, lib, pkgs, ... }:
+let
+  cfg = config.services.foo;
+  # Define the settings format used for this program
+  settingsFormat = pkgs.formats.json {};
+in {
+
+  options.services.foo = {
+    enable = lib.mkEnableOption "foo service";
+
+    settings = lib.mkOption {
+      # Setting this type allows for correct merging behavior
+      type = settingsFormat.type;
+      default = {};
+      description = ''
+        Configuration for foo, see
+        &lt;link xlink:href="https://example.com/docs/foo"/&gt;
+        for supported settings.
+      '';
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    # We can assign some default settings here to make the service work by just
+    # enabling it. We use `mkDefault` for values that can be changed without
+    # problems
+    services.foo.settings = {
+      # Fails at runtime without any value set
+      log_level = lib.mkDefault "WARN";
+
+      # We assume systemd's `StateDirectory` is used, so we require this value,
+      # therefore no mkDefault
+      data_path = "/var/lib/foo";
+
+      # Since we use this to create a user we need to know the default value at
+      # eval time
+      user = lib.mkDefault "foo";
+    };
+
+    environment.etc."foo.json".source =
+      # The formats generator function takes a filename and the Nix value
+      # representing the format value and produces a filepath with that value
+      # rendered in the format
+      settingsFormat.generate "foo-config.json" cfg.settings;
+
+    # We know that the `user` attribute exists because we set a default value
+    # for it above, allowing us to use it without worries here
+    users.users.${cfg.settings.user} = {};
+
+    # ...
+  };
+}
+</programlisting>
+   </example>
+   <section xml:id="sec-settings-attrs-options">
+    <title>Option declarations for attributes</title>
+    <para>
+     Some <literal>settings</literal> attributes may deserve some extra care. They may need a different type, default or merging behavior, or they are essential options that should show their documentation in the manual. This can be done using <xref linkend='sec-freeform-modules'/>.
+     <example xml:id="ex-settings-typed-attrs">
+      <title>Declaring a type-checked <literal>settings</literal> attribute</title>
+      <para>
+       We extend above example using freeform modules to declare an option for the port, which will enforce it to be a valid integer and make it show up in the manual.
+      </para>
+<programlisting>
+settings = lib.mkOption {
+  type = lib.types.submodule {
+
+    freeformType = settingsFormat.type;
+
+    # Declare an option for the port such that the type is checked and this option
+    # is shown in the manual.
+    options.port = lib.mkOption {
+      type = lib.types.port;
+      default = 8080;
+      description = ''
+        Which port this service should listen on.
+      '';
+    };
+
+  };
+  default = {};
+  description = ''
+    Configuration for Foo, see
+    &lt;link xlink:href="https://example.com/docs/foo"/&gt;
+    for supported values.
+  '';
+};
+</programlisting>
+     </example>
+    </para>
+   </section>
+ </section>
+
+</section>
diff --git a/nixos/doc/manual/development/writing-modules.xml b/nixos/doc/manual/development/writing-modules.xml
index bbf793bb0be..d244356dbed 100644
--- a/nixos/doc/manual/development/writing-modules.xml
+++ b/nixos/doc/manual/development/writing-modules.xml
@@ -183,4 +183,6 @@ in {
  <xi:include href="meta-attributes.xml" />
  <xi:include href="importing-modules.xml" />
  <xi:include href="replace-modules.xml" />
+ <xi:include href="freeform-modules.xml" />
+ <xi:include href="settings-options.xml" />
 </chapter>
diff --git a/nixos/doc/manual/development/writing-nixos-tests.xml b/nixos/doc/manual/development/writing-nixos-tests.xml
index ff37b3b2f6f..74ab23605b3 100644
--- a/nixos/doc/manual/development/writing-nixos-tests.xml
+++ b/nixos/doc/manual/development/writing-nixos-tests.xml
@@ -216,12 +216,12 @@ start_all()
    </varlistentry>
    <varlistentry>
     <term>
-     <methodname>send_keys</methodname>
+     <methodname>send_key</methodname>
     </term>
     <listitem>
      <para>
       Simulate pressing keys on the virtual keyboard, e.g.,
-      <literal>send_keys("ctrl-alt-delete")</literal>.
+      <literal>send_key("ctrl-alt-delete")</literal>.
      </para>
     </listitem>
    </varlistentry>
@@ -232,7 +232,7 @@ start_all()
     <listitem>
      <para>
       Simulate typing a sequence of characters on the virtual keyboard, e.g.,
-      <literal>send_keys("foobar\n")</literal> will type the string
+      <literal>send_chars("foobar\n")</literal> will type the string
       <literal>foobar</literal> followed by the Enter key.
      </para>
     </listitem>
@@ -390,7 +390,7 @@ start_all()
     <listitem>
      <para>
       Copies a file from host to machine, e.g.,
-      <literal>copy_file_from_host("myfile", "/etc/my/important/file")</literal>.
+      <literal>copy_from_host("myfile", "/etc/my/important/file")</literal>.
      </para>
      <para>
       The first argument is the file on the host. The file needs to be
diff --git a/nixos/doc/manual/installation/changing-config.xml b/nixos/doc/manual/installation/changing-config.xml
index 48193d986ab..4288806d5eb 100644
--- a/nixos/doc/manual/installation/changing-config.xml
+++ b/nixos/doc/manual/installation/changing-config.xml
@@ -78,7 +78,7 @@
   <literal>mutableUsers = false</literal>. Another way is to temporarily add
   the following to your configuration:
 <screen>
-<link linkend="opt-users.users._name__.initialHashedPassword">users.users.your-user.initialHashedPassword</link> = "test";
+<link linkend="opt-users.users._name_.initialHashedPassword">users.users.your-user.initialHashedPassword</link> = "test";
 </screen>
   <emphasis>Important:</emphasis> delete the $hostname.qcow2 file if you have
   started the virtual machine at least once without the right users, otherwise
diff --git a/nixos/doc/manual/installation/installing-from-other-distro.xml b/nixos/doc/manual/installation/installing-from-other-distro.xml
index 45d68f8787f..d2d1245c57a 100644
--- a/nixos/doc/manual/installation/installing-from-other-distro.xml
+++ b/nixos/doc/manual/installation/installing-from-other-distro.xml
@@ -211,7 +211,7 @@ nixpkgs https://nixos.org/channels/nixpkgs-unstable</screen>
     use <literal>sudo</literal>)
    </para>
 <programlisting>
-<link linkend="opt-users.users._name__.initialHashedPassword">users.users.root.initialHashedPassword</link> = "";
+<link linkend="opt-users.users._name_.initialHashedPassword">users.users.root.initialHashedPassword</link> = "";
 </programlisting>
   </listitem>
   <listitem>
diff --git a/nixos/doc/manual/installation/installing-pxe.xml b/nixos/doc/manual/installation/installing-pxe.xml
index 94199e5e028..ea88fbdad7e 100644
--- a/nixos/doc/manual/installation/installing-pxe.xml
+++ b/nixos/doc/manual/installation/installing-pxe.xml
@@ -16,7 +16,7 @@
  </para>
 
 <programlisting>
-nix-build -A netboot nixos/release.nix
+nix-build -A netboot.x86_64-linux nixos/release.nix
 </programlisting>
 
  <para>
diff --git a/nixos/doc/manual/installation/installing-virtualbox-guest.xml b/nixos/doc/manual/installation/installing-virtualbox-guest.xml
index 0ba909fa953..1cffeed4807 100644
--- a/nixos/doc/manual/installation/installing-virtualbox-guest.xml
+++ b/nixos/doc/manual/installation/installing-virtualbox-guest.xml
@@ -49,7 +49,7 @@
   </listitem>
   <listitem>
    <para>
-    Click on Settings / Display / Screen and select VBoxVGA as Graphics Controller
+    Click on Settings / Display / Screen and select VMSVGA as Graphics Controller
    </para>
   </listitem>
   <listitem>
diff --git a/nixos/doc/manual/installation/installing.xml b/nixos/doc/manual/installation/installing.xml
index 48307ca2469..c7ed3b3c0c9 100644
--- a/nixos/doc/manual/installation/installing.xml
+++ b/nixos/doc/manual/installation/installing.xml
@@ -42,7 +42,7 @@
   </para>
 
   <para>
-   If the text is too small to be legible, try <command>setfont ter-132n</command>
+   If the text is too small to be legible, try <command>setfont ter-v32n</command>
    to increase the font size.
   </para>
 
@@ -550,7 +550,7 @@ Retype new UNIX password: ***</screen>
   # Note: setting fileSystems is generally not
   # necessary, since nixos-generate-config figures them out
   # automatically in hardware-configuration.nix.
-  #<link linkend="opt-fileSystems._name__.device">fileSystems."/".device</link> = "/dev/disk/by-label/nixos";
+  #<link linkend="opt-fileSystems._name_.device">fileSystems."/".device</link> = "/dev/disk/by-label/nixos";
 
   # Enable the OpenSSH server.
   services.sshd.enable = true;
diff --git a/nixos/doc/manual/man-nixos-build-vms.xml b/nixos/doc/manual/man-nixos-build-vms.xml
index d114261f53b..fa7c8c0c6d7 100644
--- a/nixos/doc/manual/man-nixos-build-vms.xml
+++ b/nixos/doc/manual/man-nixos-build-vms.xml
@@ -13,15 +13,15 @@
  </refnamediv>
  <refsynopsisdiv>
   <cmdsynopsis>
-   <command>nixos-build-vms</command> 
+   <command>nixos-build-vms</command>
    <arg>
     <option>--show-trace</option>
    </arg>
-    
+
    <arg>
     <option>--no-out-link</option>
    </arg>
-    
+
    <arg>
     <option>--help</option>
   </arg>
diff --git a/nixos/doc/manual/man-nixos-enter.xml b/nixos/doc/manual/man-nixos-enter.xml
index fe560d3efdd..f533d66099d 100644
--- a/nixos/doc/manual/man-nixos-enter.xml
+++ b/nixos/doc/manual/man-nixos-enter.xml
@@ -13,21 +13,21 @@
  </refnamediv>
  <refsynopsisdiv>
   <cmdsynopsis>
-   <command>nixos-enter</command> 
+   <command>nixos-enter</command>
    <arg>
     <arg choice='plain'>
      <option>--root</option>
     </arg>
      <replaceable>root</replaceable>
    </arg>
-    
+
    <arg>
     <arg choice='plain'>
      <option>--system</option>
     </arg>
      <replaceable>system</replaceable>
    </arg>
-    
+
    <arg>
     <arg choice='plain'>
      <option>-c</option>
@@ -40,13 +40,13 @@
      <option>--silent</option>
     </arg>
    </arg>
-    
+
    <arg>
     <arg choice='plain'>
      <option>--help</option>
     </arg>
    </arg>
-    
+
    <arg>
     <arg choice='plain'>
      <option>--</option>
@@ -136,7 +136,7 @@
    <filename>/mnt</filename>:
   </para>
 <screen>
-# nixos-enter /mnt
+# nixos-enter --root /mnt
 </screen>
   <para>
    Run a shell command:
diff --git a/nixos/doc/manual/man-nixos-install.xml b/nixos/doc/manual/man-nixos-install.xml
index 84849282e9a..b205e230968 100644
--- a/nixos/doc/manual/man-nixos-install.xml
+++ b/nixos/doc/manual/man-nixos-install.xml
@@ -46,6 +46,10 @@
    </arg>
 
    <arg>
+    <option>--flake</option> <replaceable>flake-uri</replaceable>
+   </arg>
+
+   <arg>
      <arg choice='plain'>
        <option>--channel</option>
      </arg>
@@ -200,6 +204,18 @@
     </listitem>
    </varlistentry>
    <varlistentry>
+    <term>
+     <option>--flake</option> <replaceable>flake-uri</replaceable>#<replaceable>name</replaceable>
+    </term>
+    <listitem>
+     <para>
+      Build the NixOS system from the specified flake.
+      The flake must contain an output named
+      <literal>nixosConfigurations.<replaceable>name</replaceable></literal>.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
      <term>
        <option>--channel</option>
      </term>
diff --git a/nixos/doc/manual/man-nixos-rebuild.xml b/nixos/doc/manual/man-nixos-rebuild.xml
index f4f663b84f0..7dab5c69dfb 100644
--- a/nixos/doc/manual/man-nixos-rebuild.xml
+++ b/nixos/doc/manual/man-nixos-rebuild.xml
@@ -315,7 +315,7 @@
        switch</command>), because the hardware and boot loader configuration in
        the VM are different. The boot loader is installed on an automatically
        generated virtual disk containing a <filename>/boot</filename>
-       partition, which is mounted read-only in the VM.
+       partition.
       </para>
      </listitem>
     </varlistentry>
@@ -521,7 +521,7 @@
 
    <varlistentry>
     <term>
-     <option>--flake</option> <replaceable>flake-uri</replaceable>[<replaceable>name</replaceable>]
+     <option>--flake</option> <replaceable>flake-uri</replaceable><optional>#<replaceable>name</replaceable></optional>
     </term>
     <listitem>
      <para>
diff --git a/nixos/doc/manual/release-notes/rl-2003.xml b/nixos/doc/manual/release-notes/rl-2003.xml
index 393a9286ca4..87f12285619 100644
--- a/nixos/doc/manual/release-notes/rl-2003.xml
+++ b/nixos/doc/manual/release-notes/rl-2003.xml
@@ -792,11 +792,11 @@ users.users.me =
      The <option>services.xserver.displayManager.auto</option> module has been removed.
      It was only intended for use in internal NixOS tests, and gave the false impression
      of it being a special display manager when it's actually LightDM.
-     Please use the <xref linkend="opt-services.xserver.displayManager.lightdm.autoLogin"/> options instead,
+     Please use the <option>services.xserver.displayManager.lightdm.autoLogin</option> options instead,
      or any other display manager in NixOS as they all support auto-login. If you used this module specifically
      because it permitted root auto-login you can override the lightdm-autologin pam module like:
 <programlisting>
-<link xlink:href="#opt-security.pam.services._name__.text">security.pam.services.lightdm-autologin.text</link> = lib.mkForce ''
+<link xlink:href="#opt-security.pam.services._name_.text">security.pam.services.lightdm-autologin.text</link> = lib.mkForce ''
     auth     requisite pam_nologin.so
     auth     required  pam_succeed_if.so quiet
     auth     required  pam_permit.so
diff --git a/nixos/doc/manual/release-notes/rl-2009.xml b/nixos/doc/manual/release-notes/rl-2009.xml
index c2f26371d66..ce78bda8505 100644
--- a/nixos/doc/manual/release-notes/rl-2009.xml
+++ b/nixos/doc/manual/release-notes/rl-2009.xml
@@ -44,6 +44,11 @@
    </listitem>
    <listitem>
     <para>
+     PHP 7.2 is no longer supported due to upstream not supporting this version for the entire lifecycle of the 20.09 release.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
      Python 3 now defaults to Python 3.8 instead of 3.7.
     </para>
    </listitem>
@@ -109,16 +114,106 @@ systemd.services.mysql.serviceConfig.ProtectHome = lib.mkForce "read-only";
 systemd.services.mysql.serviceConfig.ReadWritePaths = [ "/var/data" ];
 </programlisting>
     </para>
+    <para>
+      The MySQL service no longer runs its <literal>systemd</literal> service startup script as <literal>root</literal> anymore. A dedicated non <literal>root</literal>
+      super user account is required for operation. This means users with an existing MySQL or MariaDB database server are required to run the following SQL statements
+      as a super admin user before upgrading:
+<programlisting>
+CREATE USER IF NOT EXISTS 'mysql'@'localhost' identified with unix_socket;
+GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'localhost' WITH GRANT OPTION;
+</programlisting>
+      If you use MySQL instead of MariaDB please replace <literal>unix_socket</literal> with <literal>auth_socket</literal>. If you have changed the value of <xref linkend="opt-services.mysql.user"/>
+      from the default of <literal>mysql</literal> to a different user please change <literal>'mysql'@'localhost'</literal> to the corresponding user instead.
+    </para>
    </listitem>
    <listitem>
     <para>
-      Two new option <link linkend="opt-documentation.man.generateCaches">documentation.man.generateCaches</link>
+      The new option <link linkend="opt-documentation.man.generateCaches">documentation.man.generateCaches</link>
       has been added to automatically generate the <literal>man-db</literal> caches, which are needed by utilities
       like <command>whatis</command> and <command>apropos</command>. The caches are generated during the build of
       the NixOS configuration: since this can be expensive when a large number of packages are installed, the
       feature is disabled by default.
     </para>
    </listitem>
+   <listitem>
+    <para>
+     <varname>services.postfix.sslCACert</varname> was replaced by <varname>services.postfix.tlsTrustedAuthorities</varname> which now defaults to system certificate authorities.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      Subordinate GID and UID mappings are now set up automatically for all normal users.
+      This will make container tools like Podman work as non-root users out of the box.
+    </para>
+   </listitem>
+   <listitem>
+     <para>
+       The various documented workarounds to use steam have been converted to a module. <varname>programs.steam.enable</varname> enables steam, controller support and the workarounds.
+     </para>
+   </listitem>
+   <listitem>
+     <para>
+       Support for built-in LCDs in various pieces of Logitech hardware (keyboards and USB speakers). <varname>hardware.logitech.lcd.enable</varname> enables support for all hardware supported by the g15daemon project.
+     </para>
+   </listitem>
+   <listitem>
+    <para>
+      Zabbix now defaults to 5.0, updated from 4.4. Please carefully read through
+      <link xlink:href="https://www.zabbix.com/documentation/current/manual/installation/upgrade/sources">the upgrade guide</link>
+      and apply any changes required. Be sure to take special note of the section on
+      <link xlink:href="https://www.zabbix.com/documentation/current/manual/installation/upgrade_notes_500#enabling_extended_range_of_numeric_float_values">enabling extended range of numeric (float) values</link>
+      as you will need to apply this database migration manually.
+    </para>
+    <para>
+      If you are using Zabbix Server with a MySQL or MariaDB database you should note that using a character set of <literal>utf8</literal> and a collate of <literal>utf8_bin</literal> has become mandatory with
+      this release. See the upstream <link xlink:href="https://support.zabbix.com/browse/ZBX-17357">issue</link> for further discussion. Before upgrading you should check the character set and collation used by
+      your database and ensure they are correct:
+<programlisting>
+  SELECT
+    default_character_set_name,
+    default_collation_name
+  FROM
+    information_schema.schemata
+  WHERE
+    schema_name = 'zabbix';
+</programlisting>
+      If these values are not correct you should take a backup of your database and convert the character set and collation as required. Here is an
+      <link xlink:href="https://www.zabbix.com/forum/zabbix-help/396573-reinstall-after-upgrade?p=396891#post396891">example</link> of how to do so, taken from
+      the Zabbix forums:
+<programlisting>
+  ALTER DATABASE `zabbix` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+  -- the following will produce a list of SQL commands you should subsequently execute
+  SELECT CONCAT("ALTER TABLE ", TABLE_NAME," CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;") AS ExecuteTheString
+  FROM information_schema.`COLUMNS`
+  WHERE table_schema = "zabbix" AND COLLATION_NAME = "utf8_general_ci";
+</programlisting>
+    </para>
+   </listitem>
+   <listitem>
+     <para>
+      The NixOS module system now supports freeform modules as a mix between <literal>types.attrsOf</literal> and <literal>types.submodule</literal>. These allow you to explicitly declare a subset of options while still permitting definitions without an associated option. See <xref linkend='sec-freeform-modules'/> for how to use them.
+     </para>
+   </listitem>
+   <listitem>
+     <para>
+       The GRUB module gained support for basic password protection, which
+       allows to restrict non-default entries in the boot menu to one or more
+       users. The users and passwords are defined via the option
+       <option>boot.loader.grub.users</option>.
+       Note: Password support is only avaiable in GRUB version 2.
+     </para>
+   </listitem>
+   <listitem>
+     <para>
+       Following its deprecation in 20.03, the Perl NixOS test driver has been removed.
+       All remaining tests have been ported to the Python test framework.
+       Code outside nixpkgs using <filename>make-test.nix</filename> or
+       <filename>testing.nix</filename> needs to be ported to
+       <filename>make-test-python.nix</filename> and
+       <filename>testing-python.nix</filename> respectively.
+     </para>
+   </listitem>
   </itemizedlist>
  </section>
 
@@ -138,6 +233,11 @@ systemd.services.mysql.serviceConfig.ReadWritePaths = [ "/var/data" ];
     <para>
       There is a new <xref linkend="opt-security.doas.enable"/> module that provides <command>doas</command>, a lighter alternative to <command>sudo</command> with many of the same features.
     </para>
+  </listitem>
+  <listitem>
+    <para>
+      <link xlink:href="https://hercules-ci.com">Hercules CI</link> Agent is a specialized build agent for projects built with Nix. See the <link xlink:href="https://nixos.org/nixos/options.html#services.hercules-ci-agent">options</link> and <link xlink:href="https://docs.hercules-ci.com/hercules-ci/getting-started/#deploy-agent">setup</link>.
+    </para>
    </listitem>
   </itemizedlist>
 
@@ -162,12 +262,10 @@ systemd.services.mysql.serviceConfig.ReadWritePaths = [ "/var/data" ];
      in the source tree for downloaded modules instead of using go's <link
      xlink:href="https://golang.org/cmd/go/#hdr-Module_proxy_protocol">module
      proxy protocol</link>. This storage format is simpler and therefore less
-     likekly to break with future versions of go. As a result
+     likely to break with future versions of go. As a result
      <literal>buildGoModule</literal> switched from
      <literal>modSha256</literal> to the <literal>vendorSha256</literal>
-     attribute to pin fetched version data. <literal>buildGoModule</literal>
-     still accepts <literal>modSha256</literal> with a warning, but support will
-     be removed in the next release.
+     attribute to pin fetched version data.
     </para>
    </listitem>
    <listitem>
@@ -176,7 +274,7 @@ systemd.services.mysql.serviceConfig.ReadWritePaths = [ "/var/data" ];
      <link xlink:href="https://grafana.com/docs/grafana/latest/guides/whats-new-in-v6-4/">deprecated in Grafana</link>
      and the <package>phantomjs</package> project is
      <link xlink:href="https://github.com/ariya/phantomjs/issues/15344#issue-302015362">currently unmaintained</link>.
-     It can still be enabled by providing <literal>phantomJsSupport = true</literal> to the package instanciation:
+     It can still be enabled by providing <literal>phantomJsSupport = true</literal> to the package instantiation:
 <programlisting>{
   services.grafana.package = pkgs.grafana.overrideAttrs (oldAttrs: rec {
     phantomJsSupport = false;
@@ -188,7 +286,7 @@ systemd.services.mysql.serviceConfig.ReadWritePaths = [ "/var/data" ];
     <para>
       The <link linkend="opt-services.supybot.enable">supybot</link> module now uses <literal>/var/lib/supybot</literal>
       as its default <link linkend="opt-services.supybot.stateDir">stateDir</link> path if <literal>stateVersion</literal>
-      is 20.09 or higher. It also enables number of
+      is 20.09 or higher. It also enables a number of
       <link xlink:href="https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Sandboxing">systemd sandboxing options</link>
       which may possibly interfere with some plugins. If this is the case you can disable the options through attributes in
       <option>systemd.services.supybot.serviceConfig</option>.
@@ -297,6 +395,20 @@ php.override {
      </para>
    </listitem>
    <listitem>
+    <para>
+     The ACME module has been overhauled for simplicity and maintainability.
+     Cert generation now implicitly uses the <literal>acme</literal>
+     user, and the <literal>security.acme.certs._name_.user</literal> option
+     has been removed. Instead, certificate access from other services is now
+     managed through group permissions. The module no longer runs lego
+     twice under certain conditions, and will correctly renew certificates if
+     their configuration is changed. Services which reload nginx and httpd after
+     certificate renewal are now properly configured too so you no longer have
+     to do this manually if you are using HTTPS enabled virtual hosts. A mechanism
+     for regenerating certs on demand has also been added and documented.
+    </para>
+   </listitem>
+   <listitem>
      <para>
       Gollum received a major update to version 5.x and you may have to change
       some links in your wiki when migrating from gollum 4.x. More information
@@ -502,6 +614,46 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
    <listitem>
     <para>
      In the <literal>resilio</literal> module, <xref linkend="opt-services.resilio.httpListenAddr"/> has been changed to listen to <literal>[::1]</literal> instead of <literal>0.0.0.0</literal>.
+     </para>
+   </listitem>
+   <listitem>
+    <para>
+     Users of <link xlink:href="http://openafs.org">OpenAFS 1.6</link> must
+     upgrade their services to OpenAFS 1.8! In this release, the OpenAFS package
+     version 1.6.24 is marked broken but can be used during transition to
+     OpenAFS 1.8.x. Use the options
+     <option>services.openafsClient.packages.module</option>,
+     <option>services.openafsClient.packages.programs</option> and
+     <option>services.openafsServer.package</option> to select a different
+     OpenAFS package. OpenAFS 1.6 will be removed in the next release. The
+     package <literal>openafs</literal> and the service options will then
+     silently point to the OpenAFS 1.8 release.
+    </para>
+    <para>
+     See also the OpenAFS <link
+     xlink:href="http://docs.openafs.org/AdminGuide/index.html">Administrator
+     Guide</link> for instructions. Beware of the following when updating
+     servers:
+     <itemizedlist>
+      <listitem>
+       <para>
+       The storage format of the server key has changed and the key must be converted before running the new release.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+       When updating multiple database servers, turn off the database servers
+       from the highest IP down to the lowest with resting periods in
+       between. Start up in reverse order. Do not concurrently run database
+       servers working with different OpenAFS releases!
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+       Update servers first, then clients.
+       </para>
+      </listitem>
+     </itemizedlist>
     </para>
    </listitem>
    <listitem>
@@ -514,6 +666,136 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
      automatically if <literal>stateVersion</literal> is 20.09 or higher.
     </para>
    </listitem>
+   <listitem>
+    <para>
+      <literal>udpt</literal> experienced a complete rewrite from C++ to rust. The configuration format changed from ini to toml.
+      The new configuration documentation can be found at
+      <link xlink:href="https://naim94a.github.io/udpt/config.html">the official website</link> and example
+      configuration is packaged in <literal>${udpt}/share/udpt/udpt.toml</literal>.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     We now have a unified <xref linkend="opt-services.xserver.displayManager.autoLogin"/> option interface
+     to be used for every display-manager in NixOS.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <literal>bitcoind</literal> module has changed to multi-instance, using submodules.
+     Therefore, it is now mandatory to name each instance.
+     To use this new multi-instance config with an existing bitcoind data directory and user,
+     you have to adjust the original config, e.g.:
+<programlisting>
+  services.bitcoind = {
+    enable = true;
+    extraConfig = "...";
+    ...
+  };
+</programlisting>
+     To something similar:
+<programlisting>
+  services.bitcoind.mainnet = {
+    enable = true;
+    dataDir = "/var/lib/bitcoind";
+    user = "bitcoin";
+    extraConfig = "...";
+    ...
+  };
+</programlisting>
+     The key settings are:
+     <itemizedlist>
+      <listitem>
+       <para>
+        <literal>dataDir</literal> - to continue using the same data directory.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <literal>user</literal> - to continue using the same user so that bitcoind maintains access to its files.
+       </para>
+      </listitem>
+     </itemizedlist>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      Graylog introduced a change in the LDAP server certificate validation behaviour for version 3.3.3 which might break existing setups.
+      When updating Graylog from a version before 3.3.3 make sure to check the Graylog <link xlink:href="https://www.graylog.org/post/announcing-graylog-v3-3-3">release info</link> for information on how to avoid the issue.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <literal>dokuwiki</literal> module has changed to multi-instance, using submodules.
+     Therefore, it is now mandatory to name each instance. Moreover, forcing SSL by default has been dropped, so
+     <literal>nginx.forceSSL</literal> and <literal>nginx.enableACME</literal> are no longer set to <literal>true</literal>.
+     To continue using your service with the original SSL settings, you have to adjust the original config, e.g.:
+<programlisting>
+services.dokuwiki = {
+  enable = true;
+  ...
+};
+</programlisting>
+     To something similar:
+<programlisting>
+services.dokuwiki."mywiki" = {
+  enable = true;
+  nginx = {
+    forceSSL = true;
+    enableACME = true;
+  };
+  ...
+};
+</programlisting>
+     The base package has also been upgraded to the 2020-07-29 "Hogfather" release. Plugins might be incompatible or require upgrading.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      The <xref linkend="opt-services.postgresql.dataDir"/> option is now set to <literal>"/var/lib/postgresql/${cfg.package.psqlSchema}"</literal> regardless of your
+      <xref linkend="opt-system.stateVersion"/>. Users with an existing postgresql install that have a <xref linkend="opt-system.stateVersion"/> of <literal>17.03</literal> or below
+      should double check what the value of their <xref linkend="opt-services.postgresql.dataDir"/> option is (<literal>/var/db/postgresql</literal>) and then explicitly
+      set this value to maintain compatibility:
+<programlisting>
+services.postgresql.dataDir = "/var/db/postgresql";
+</programlisting>
+    </para>
+    <para>
+     The postgresql module now expects there to be a database super user account called <literal>postgres</literal> regardless of your <xref linkend="opt-system.stateVersion"/>. Users
+     with an existing postgresql install that have a <xref linkend="opt-system.stateVersion"/> of <literal>17.03</literal> or below should run the following SQL statements as a
+     database super admin user before upgrading:
+<programlisting>
+CREATE ROLE postgres LOGIN SUPERUSER;
+</programlisting>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The USBGuard module now removes options and instead hardcodes values for <literal>IPCAccessControlFiles</literal>, <literal>ruleFiles</literal>, and <literal>auditFilePath</literal>. Audit logs can be found in the journal.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The NixOS module system now evaluates option definitions more strictly, allowing it to detect a larger set of problems.
+     As a result, what previously evaluated may not do so anymore.
+     See <link xlink:href="https://github.com/NixOS/nixpkgs/pull/82743#issuecomment-674520472">the PR that changed this</link> for more info.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     For NixOS configuration options, the type <literal>loaOf</literal>, after
+     its initial deprecation in release 20.03, has been removed. In NixOS and
+     Nixpkgs options using this type have been converted to <literal>attrsOf</literal>.
+     For more information on this change have look at these links:
+     <link xlink:href="https://github.com/NixOS/nixpkgs/issues/1800">issue #1800</link>,
+     <link xlink:href="https://github.com/NixOS/nixpkgs/pull/63103">PR #63103</link>.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      <literal>config.systemd.services.${name}.path</literal> now returns a list of paths instead of a colon-separated string.
+    </para>
+   </listitem>
   </itemizedlist>
  </section>
 
@@ -551,6 +833,11 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
    </listitem>
    <listitem>
     <para>
+     <literal>buildGoModule</literal> <literal>doCheck</literal> now defaults to <literal>true</literal>.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
      Packages built using <literal>buildRustPackage</literal> now use <literal>release</literal>
      mode for the <literal>checkPhase</literal> by default.
     </para>
@@ -608,6 +895,37 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
    </listitem>
    <listitem>
     <para>
+     The <literal>services.transmission</literal> module
+     was enhanced with the new options:
+     <xref linkend="opt-services.transmission.credentialsFile"/>,
+     <xref linkend="opt-services.transmission.openFirewall"/>,
+     and <xref linkend="opt-services.transmission.performanceNetParameters"/>.
+    </para>
+    <para>
+     <literal>transmission-daemon</literal> is now started with additional systemd sandbox/hardening options for better security.
+     Please <link xlink:href="https://github.com/NixOS/nixpkgs/issues">report</link>
+     any use case where this is not working well.
+     In particular, the <literal>RootDirectory</literal> option newly set
+     forbids uploading or downloading a torrent outside of the default directory
+     configured at <link linkend="opt-services.transmission.settings">settings.download-dir</link>.
+     If you really need Transmission to access other directories,
+     you must include those directories into the <literal>BindPaths</literal> of the service:
+<programlisting>
+systemd.services.transmission.serviceConfig.BindPaths = [ "/path/to/alternative/download-dir" ];
+</programlisting>
+    </para>
+    <para>
+     Also, connection to the RPC (Remote Procedure Call) of <literal>transmission-daemon</literal>
+     is now only available on the local network interface by default.
+     Use:
+<programlisting>
+services.transmission.settings.rpc-bind-address = "0.0.0.0";
+</programlisting>
+     to get the previous behavior of listening on all network interfaces.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
      With this release <literal>systemd-networkd</literal> (when enabled through <xref linkend="opt-networking.useNetworkd"/>)
      has it's netlink socket created through a <literal>systemd.socket</literal> unit. This gives us control over
      socket buffer sizes and other parameters. For larger setups where networkd has to create a lot of (virtual)
@@ -682,6 +1000,85 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
        behaviour and keep the same VM state between different test runs.
      </para>
    </listitem>
+   <listitem>
+    <para>
+     The <link linkend="opt-nix.buildMachines">nix.buildMachines</link> option is now type-checked.
+     There are no functional changes, however this may require updating some configurations to use correct types for all attributes.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <literal>fontconfig</literal> module stopped generating fontconfig 2.10.x config and cache.
+     Fontconfig 2.10.x was removed from Nixpkgs - it hasn't been used in any nixpkgs package anymore.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Nginx module <literal>nginxModules.fastcgi-cache-purge</literal> renamed to official name <literal>nginxModules.cache-purge</literal>.
+     Nginx module <literal>nginxModules.ngx_aws_auth</literal> renamed to official name <literal>nginxModules.aws-auth</literal>.
+      The packages <package>perl</package>, <package>rsync</package> and <package>strace</package> were removed from <option>systemPackages</option>. If you need them, install them again with <code><xref linkend="opt-environment.systemPackages"/> = with pkgs; [ perl rsync strace ];</code> in your <filename>configuration.nix</filename>.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      The <literal>undervolt</literal> option no longer needs to apply its
+      settings every 30s. If they still become undone, open an issue and restore
+      the previous behaviour using <literal>undervolt.useTimer</literal>.
+    </para>
+   </listitem>
+   <listitem>
+     <para>
+      Agda has been heavily reworked.
+      <itemizedlist>
+	<listitem>
+	  <para>
+	    <literal>agda.mkDerivation</literal> has been heavily changed and
+	    is now located at <package>agdaPackages.mkDerivation</package>.
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    New top-level packages <package>agda</package> and
+	    <literal>agda.withPackages</literal> have been added, the second
+	    of which sets up agda with access to chosen libraries.
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    All agda libraries now live under
+	    <literal>agdaPackages</literal>.
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    Many broken libraries have been removed.
+	  </para>
+	</listitem>
+      </itemizedlist>
+      See the <link
+      xlink:href="https://nixos.org/nixpkgs/manual/#agda">new
+      documentation</link> for more information.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      The <literal>deepin</literal> package set has been removed from
+      nixpkgs. It was a work in progress to package the
+      <link xlink:href="https://www.deepin.org/en/dde/">Deepin Desktop Environment (DDE)</link>,
+      including libraries, tools and applications, and it was still
+      missing a service to lauch the desktop environment. It has shown
+      to no longer be a feasible goal due to reasons discussed in
+      <link xlink:href="https://github.com/NixOS/nixpkgs/issues/94870">issue #94870</link>.
+      The package <literal>netease-cloud-music</literal> has also been
+      removed, as it depends on libraries from deepin.
+    </para>
+   </listitem>
+   <listitem>
+     <para>
+       The <literal>opendkim</literal> module now uses systemd sandboxing features
+       to limit the exposure of the system towards the opendkim service.
+     </para>
+   </listitem>
   </itemizedlist>
  </section>
 </section>
diff --git a/nixos/lib/eval-config.nix b/nixos/lib/eval-config.nix
index c8824c2690d..15429a7160c 100644
--- a/nixos/lib/eval-config.nix
+++ b/nixos/lib/eval-config.nix
@@ -24,11 +24,11 @@
   check ? true
 , prefix ? []
 , lib ? import ../../lib
+, extraModules ? let e = builtins.getEnv "NIXOS_EXTRA_MODULE_PATH";
+                 in if e == "" then [] else [(import e)]
 }:
 
 let extraArgs_ = extraArgs; pkgs_ = pkgs;
-    extraModules = let e = builtins.getEnv "NIXOS_EXTRA_MODULE_PATH";
-                   in if e == "" then [] else [(import e)];
 in
 
 let
diff --git a/nixos/lib/make-disk-image.nix b/nixos/lib/make-disk-image.nix
index 9364aab3277..8aa606a56af 100644
--- a/nixos/lib/make-disk-image.nix
+++ b/nixos/lib/make-disk-image.nix
@@ -5,21 +5,32 @@
   config
 
 , # The size of the disk, in megabytes.
-  diskSize
+  # if "auto" size is calculated based on the contents copied to it and
+  #   additionalSpace is taken into account.
+  diskSize ? "auto"
 
-  # The files and directories to be placed in the target file system.
+, # additional disk space to be added to the image if diskSize "auto"
+  # is used
+  additionalSpace ? "512M"
+
+, # size of the boot partition, is only used if partitionTableType is
+  # either "efi" or "hybrid"
+  bootSize ? "256M"
+
+, # The files and directories to be placed in the target file system.
   # This is a list of attribute sets {source, target} where `source'
   # is the file system object (regular file or directory) to be
   # grafted in the file system at path `target'.
-, contents ? []
+  contents ? []
 
 , # Type of partition table to use; either "legacy", "efi", or "none".
   # For "efi" images, the GPT partition table is used and a mandatory ESP
   #   partition of reasonable size is created in addition to the root partition.
-  #   If `installBootLoader` is true, GRUB will be installed in EFI mode.
   # For "legacy", the msdos partition table is used and a single large root
-  #   partition is created. If `installBootLoader` is true, GRUB will be
-  #   installed in legacy mode.
+  #   partition is created.
+  # For "hybrid", the GPT partition table is used and a mandatory ESP
+  #   partition of reasonable size is created in addition to the root partition.
+  #   Also a legacy MBR will be present.
   # For "none", no partition table is created. Enabling `installBootLoader`
   #   most likely fails as GRUB will probably refuse to install.
   partitionTableType ? "legacy"
@@ -43,7 +54,7 @@
   format ? "raw"
 }:
 
-assert partitionTableType == "legacy" || partitionTableType == "efi" || partitionTableType == "none";
+assert partitionTableType == "legacy" || partitionTableType == "efi" || partitionTableType == "hybrid" || partitionTableType == "none";
 # We use -E offset=X below, which is only supported by e2fsprogs
 assert partitionTableType != "none" -> fsType == "ext4";
 
@@ -60,11 +71,12 @@ let format' = format; in let
     vdi   = "vdi";
     vpc   = "vhd";
     raw   = "img";
-  }.${format};
+  }.${format} or format;
 
   rootPartition = { # switch-case
     legacy = "1";
     efi = "2";
+    hybrid = "3";
   }.${partitionTableType};
 
   partitionDiskScript = { # switch-case
@@ -76,9 +88,18 @@ let format' = format; in let
     efi = ''
       parted --script $diskImage -- \
         mklabel gpt \
-        mkpart ESP fat32 8MiB 256MiB \
+        mkpart ESP fat32 8MiB ${bootSize} \
         set 1 boot on \
-        mkpart primary ext4 256MiB -1
+        mkpart primary ext4 ${bootSize} -1
+    '';
+    hybrid = ''
+      parted --script $diskImage -- \
+        mklabel gpt \
+        mkpart ESP fat32 8MiB ${bootSize} \
+        set 1 boot on \
+        mkpart no-fs 0 1024KiB \
+        set 2 bios_grub on \
+        mkpart primary ext4 ${bootSize} -1
     '';
     none = "";
   }.${partitionTableType};
@@ -129,19 +150,6 @@ let format' = format; in let
     }
 
     mkdir $out
-    diskImage=nixos.raw
-    truncate -s ${toString diskSize}M $diskImage
-
-    ${partitionDiskScript}
-
-    ${if partitionTableType != "none" then ''
-      # Get start & length of the root partition in sectors to $START and $SECTORS.
-      eval $(partx $diskImage -o START,SECTORS --nr ${rootPartition} --pairs)
-
-      mkfs.${fsType} -F -L ${label} $diskImage -E offset=$(sectorsToBytes $START) $(sectorsToKilobytes $SECTORS)K
-    '' else ''
-      mkfs.${fsType} -F -L ${label} $diskImage
-    ''}
 
     root="$PWD/root"
     mkdir -p $root
@@ -181,10 +189,36 @@ let format' = format; in let
     export NIX_STATE_DIR=$TMPDIR/state
     nix-store --load-db < ${closureInfo}/registration
 
+    chmod 755 "$TMPDIR"
     echo "running nixos-install..."
     nixos-install --root $root --no-bootloader --no-root-passwd \
       --system ${config.system.build.toplevel} --channel ${channelSources} --substituters ""
 
+    diskImage=nixos.raw
+
+    ${if diskSize == "auto" then ''
+      ${if partitionTableType == "efi" || partitionTableType == "hybrid" then ''
+        additionalSpace=$(( ($(numfmt --from=iec '${additionalSpace}') + $(numfmt --from=iec '${bootSize}')) / 1000 ))
+      '' else ''
+        additionalSpace=$(( $(numfmt --from=iec '${additionalSpace}') / 1000 ))
+      ''}
+      diskSize=$(( $(set -- $(du -d0 $root); echo "$1") + $additionalSpace ))
+      truncate -s "$diskSize"K $diskImage
+    '' else ''
+      truncate -s ${toString diskSize}M $diskImage
+    ''}
+
+    ${partitionDiskScript}
+
+    ${if partitionTableType != "none" then ''
+      # Get start & length of the root partition in sectors to $START and $SECTORS.
+      eval $(partx $diskImage -o START,SECTORS --nr ${rootPartition} --pairs)
+
+      mkfs.${fsType} -F -L ${label} $diskImage -E offset=$(sectorsToBytes $START) $(sectorsToKilobytes $SECTORS)K
+    '' else ''
+      mkfs.${fsType} -F -L ${label} $diskImage
+    ''}
+
     echo "copying staging root to image..."
     cptofs -p ${optionalString (partitionTableType != "none") "-P ${rootPartition}"} -t ${fsType} -i $diskImage $root/* /
   '';
@@ -218,7 +252,7 @@ in pkgs.vmTools.runInLinuxVM (
 
       # Create the ESP and mount it. Unlike e2fsprogs, mkfs.vfat doesn't support an
       # '-E offset=X' option, so we can't do this outside the VM.
-      ${optionalString (partitionTableType == "efi") ''
+      ${optionalString (partitionTableType == "efi" || partitionTableType == "hybrid") ''
         mkdir -p /mnt/boot
         mkfs.vfat -n ESP /dev/vda1
         mount /dev/vda1 /mnt/boot
diff --git a/nixos/lib/make-ext4-fs.nix b/nixos/lib/make-ext4-fs.nix
index 74a6c134e64..33dbc8f5ec4 100644
--- a/nixos/lib/make-ext4-fs.nix
+++ b/nixos/lib/make-ext4-fs.nix
@@ -46,7 +46,10 @@ pkgs.stdenv.mkDerivation {
       (
         GLOBIGNORE=".:.."
         shopt -u dotglob
-        cp -a --reflink=auto ./files/* -t ./rootImage/
+
+        for f in ./files/*; do
+            cp -a --reflink=auto -t ./rootImage/ "$f"
+        done
       )
 
       # Also include a manifest of the closures in a format suitable for nix-store --load-db
diff --git a/nixos/lib/make-iso9660-image.nix b/nixos/lib/make-iso9660-image.nix
index 12a6cf64996..6a0e0e7c635 100644
--- a/nixos/lib/make-iso9660-image.nix
+++ b/nixos/lib/make-iso9660-image.nix
@@ -1,4 +1,4 @@
-{ stdenv, closureInfo, xorriso, syslinux
+{ stdenv, closureInfo, xorriso, syslinux, libossp_uuid
 
 , # The file name of the resulting ISO image.
   isoName ? "cd.iso"
@@ -48,7 +48,7 @@ assert usbBootable -> isohybridMbrImage != "";
 stdenv.mkDerivation {
   name = isoName;
   builder = ./make-iso9660-image.sh;
-  buildInputs = [ xorriso syslinux zstd ];
+  buildInputs = [ xorriso syslinux zstd libossp_uuid ];
 
   inherit isoName bootable bootImage compressImage volumeID efiBootImage efiBootable isohybridMbrImage usbBootable;
 
diff --git a/nixos/lib/make-iso9660-image.sh b/nixos/lib/make-iso9660-image.sh
index d64fe9a365e..4740b05f955 100644
--- a/nixos/lib/make-iso9660-image.sh
+++ b/nixos/lib/make-iso9660-image.sh
@@ -99,7 +99,12 @@ done
 
 mkdir -p $out/iso
 
+# daed2280-b91e-42c0-aed6-82c825ca41f3 is an arbitrary namespace, to prevent
+# independent applications from generating the same UUID for the same value.
+# (the chance of that being problematic seem pretty slim here, but that's how
+# version-5 UUID's work)
 xorriso="xorriso
+ -boot_image any gpt_disk_guid=$(uuid -v 5 daed2280-b91e-42c0-aed6-82c825ca41f3 $out | tr -d -)
  -as mkisofs
  -iso-level 3
  -volid ${volumeID}
@@ -118,15 +123,6 @@ xorriso="xorriso
 
 $xorriso -output $out/iso/$isoName
 
-if test -n "$usbBootable"; then
-    echo "Making image hybrid..."
-    if test -n "$efiBootable"; then
-        isohybrid --uefi $out/iso/$isoName
-    else
-        isohybrid $out/iso/$isoName
-    fi
-fi
-
 if test -n "$compressImage"; then
     echo "Compressing image..."
     zstd -T$NIX_BUILD_CORES --rm $out/iso/$isoName
diff --git a/nixos/lib/make-options-doc/default.nix b/nixos/lib/make-options-doc/default.nix
index 772b7d3add9..a1161621f0d 100644
--- a/nixos/lib/make-options-doc/default.nix
+++ b/nixos/lib/make-options-doc/default.nix
@@ -36,7 +36,7 @@ let
     // lib.optionalAttrs (opt ? example) { example = substFunction opt.example; }
     // lib.optionalAttrs (opt ? default) { default = substFunction opt.default; }
     // lib.optionalAttrs (opt ? type) { type = substFunction opt.type; }
-    // lib.optionalAttrs (opt ? relatedPackages && opt.relatedPackages != []) { relatedPackages = genRelatedPackages opt.relatedPackages; }
+    // lib.optionalAttrs (opt ? relatedPackages && opt.relatedPackages != []) { relatedPackages = genRelatedPackages opt.relatedPackages opt.name; }
    );
 
   # Generate DocBook documentation for a list of packages. This is
@@ -48,7 +48,7 @@ let
   # - a list:    that will be interpreted as an attribute path from `pkgs`,
   # - an attrset: that can specify `name`, `path`, `package`, `comment`
   #   (either of `name`, `path` is required, the rest are optional).
-  genRelatedPackages = packages:
+  genRelatedPackages = packages: optName:
     let
       unpack = p: if lib.isString p then { name = p; }
                   else if lib.isList p then { path = p; }
@@ -58,7 +58,7 @@ let
           title = args.title or null;
           name = args.name or (lib.concatStringsSep "." args.path);
           path = args.path or [ args.name ];
-          package = args.package or (lib.attrByPath path (throw "Invalid package attribute path `${toString path}'") pkgs);
+          package = args.package or (lib.attrByPath path (throw "Invalid package attribute path `${toString path}' found while evaluating `relatedPackages' of option `${optName}'") pkgs);
         in "<listitem>"
         + "<para><literal>${lib.optionalString (title != null) "${title} aka "}pkgs.${name} (${package.meta.name})</literal>"
         + lib.optionalString (!package.meta.available) " <emphasis>[UNAVAILABLE]</emphasis>"
diff --git a/nixos/lib/make-options-doc/options-to-docbook.xsl b/nixos/lib/make-options-doc/options-to-docbook.xsl
index 72ac89d4ff6..18d19fddaca 100644
--- a/nixos/lib/make-options-doc/options-to-docbook.xsl
+++ b/nixos/lib/make-options-doc/options-to-docbook.xsl
@@ -20,7 +20,7 @@
       <title>Configuration Options</title>
       <variablelist xml:id="configuration-variable-list">
         <xsl:for-each select="attrs">
-          <xsl:variable name="id" select="concat('opt-', str:replace(str:replace(str:replace(str:replace(attr[@name = 'name']/string/@value, '*', '_'), '&lt;', '_'), '>', '_'), '?', '_'))" />
+          <xsl:variable name="id" select="concat('opt-', str:replace(str:replace(str:replace(attr[@name = 'name']/string/@value, '*', '_'), '&lt;', '_'), '>', '_'))" />
           <varlistentry>
             <term xlink:href="#{$id}">
               <xsl:attribute name="xml:id"><xsl:value-of select="$id"/></xsl:attribute>
diff --git a/nixos/lib/qemu-flags.nix b/nixos/lib/qemu-flags.nix
index 859d9e975fe..0f066245893 100644
--- a/nixos/lib/qemu-flags.nix
+++ b/nixos/lib/qemu-flags.nix
@@ -2,13 +2,18 @@
 { pkgs }:
 
 let
-  zeroPad = n: if n < 10 then "0${toString n}" else toString n;
+  zeroPad = n:
+    pkgs.lib.optionalString (n < 16) "0" +
+      (if n > 255
+       then throw "Can't have more than 255 nets or nodes!"
+       else pkgs.lib.toHexString n);
 in
 
-{
+rec {
+  qemuNicMac = net: machine: "52:54:00:12:${zeroPad net}:${zeroPad machine}";
 
   qemuNICFlags = nic: net: machine:
-    [ "-device virtio-net-pci,netdev=vlan${toString nic},mac=52:54:00:12:${zeroPad net}:${zeroPad machine}"
+    [ "-device virtio-net-pci,netdev=vlan${toString nic},mac=${qemuNicMac net machine}"
       "-netdev vde,id=vlan${toString nic},sock=$QEMU_VDE_SOCKET_${toString net}"
     ];
 
@@ -17,9 +22,9 @@ in
         else throw "Unknown QEMU serial device for system '${pkgs.stdenv.hostPlatform.system}'";
 
   qemuBinary = qemuPkg: {
-    x86_64-linux = "${qemuPkg}/bin/qemu-kvm -cpu host";
+    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";
-    x86_64-darwin = "${qemuPkg}/bin/qemu-kvm -cpu host";
+    x86_64-darwin = "${qemuPkg}/bin/qemu-kvm -cpu max";
   }.${pkgs.stdenv.hostPlatform.system} or "${qemuPkg}/bin/qemu-kvm";
 }
diff --git a/nixos/lib/test-driver/Logger.pm b/nixos/lib/test-driver/Logger.pm
deleted file mode 100644
index 080310ea34e..00000000000
--- a/nixos/lib/test-driver/Logger.pm
+++ /dev/null
@@ -1,75 +0,0 @@
-package Logger;
-
-use strict;
-use Thread::Queue;
-use XML::Writer;
-use Encode qw(decode encode);
-use Time::HiRes qw(clock_gettime CLOCK_MONOTONIC);
-
-sub new {
-    my ($class) = @_;
-    
-    my $logFile = defined $ENV{LOGFILE} ? "$ENV{LOGFILE}" : "/dev/null";
-    my $log = new XML::Writer(OUTPUT => new IO::File(">$logFile"));
-    
-    my $self = {
-        log => $log,
-        logQueue => Thread::Queue->new()
-    };
-    
-    $self->{log}->startTag("logfile");
-    
-    bless $self, $class;
-    return $self;
-}
-
-sub close {
-    my ($self) = @_;
-    $self->{log}->endTag("logfile");
-    $self->{log}->end;
-}
-
-sub drainLogQueue {
-    my ($self) = @_;
-    while (defined (my $item = $self->{logQueue}->dequeue_nb())) {
-        $self->{log}->dataElement("line", sanitise($item->{msg}), 'machine' => $item->{machine}, 'type' => 'serial');
-    }
-}
-
-sub maybePrefix {
-    my ($msg, $attrs) = @_;
-    $msg = $attrs->{machine} . ": " . $msg if defined $attrs->{machine};
-    return $msg;
-}
-
-sub nest {
-    my ($self, $msg, $coderef, $attrs) = @_;
-    print STDERR maybePrefix("$msg\n", $attrs);
-    $self->{log}->startTag("nest");
-    $self->{log}->dataElement("head", $msg, %{$attrs});
-    my $now = clock_gettime(CLOCK_MONOTONIC);
-    $self->drainLogQueue();
-    eval { &$coderef };
-    my $res = $@;
-    $self->drainLogQueue();
-    $self->log(sprintf("(%.2f seconds)", clock_gettime(CLOCK_MONOTONIC) - $now));
-    $self->{log}->endTag("nest");
-    die $@ if $@;
-}
-
-sub sanitise {
-    my ($s) = @_;
-    $s =~ s/[[:cntrl:]\xff]//g;
-    $s = decode('UTF-8', $s, Encode::FB_DEFAULT);
-    return encode('UTF-8', $s, Encode::FB_CROAK);
-}
-
-sub log {
-    my ($self, $msg, $attrs) = @_;
-    chomp $msg;
-    print STDERR maybePrefix("$msg\n", $attrs);
-    $self->drainLogQueue();
-    $self->{log}->dataElement("line", $msg, %{$attrs});
-}
-
-1;
diff --git a/nixos/lib/test-driver/Machine.pm b/nixos/lib/test-driver/Machine.pm
deleted file mode 100644
index 4d3d63cd2db..00000000000
--- a/nixos/lib/test-driver/Machine.pm
+++ /dev/null
@@ -1,734 +0,0 @@
-package Machine;
-
-use strict;
-use threads;
-use Socket;
-use IO::Handle;
-use POSIX qw(dup2);
-use FileHandle;
-use Cwd;
-use File::Basename;
-use File::Path qw(make_path);
-use File::Slurp;
-use Time::HiRes qw(clock_gettime CLOCK_MONOTONIC);
-
-
-my $showGraphics = defined $ENV{'DISPLAY'};
-
-my $sharedDir;
-
-
-sub new {
-    my ($class, $args) = @_;
-
-    my $startCommand = $args->{startCommand};
-
-    my $name = $args->{name};
-    if (!$name) {
-        $startCommand =~ /run-(.*)-vm$/ if defined $startCommand;
-        $name = $1 || "machine";
-    }
-
-    if (!$startCommand) {
-        # !!! merge with qemu-vm.nix.
-        my $netBackend = "-netdev user,id=net0";
-        my $netFrontend = "-device virtio-net-pci,netdev=net0";
-
-        $netBackend .= "," . $args->{netBackendArgs}
-            if defined $args->{netBackendArgs};
-
-        $netFrontend .= "," . $args->{netFrontendArgs}
-            if defined $args->{netFrontendArgs};
-
-        $startCommand =
-            "qemu-kvm -m 384 $netBackend $netFrontend \$QEMU_OPTS ";
-
-        if (defined $args->{hda}) {
-            if ($args->{hdaInterface} eq "scsi") {
-                $startCommand .= "-drive id=hda,file="
-                               . Cwd::abs_path($args->{hda})
-                               . ",werror=report,if=none "
-                               . "-device scsi-hd,drive=hda ";
-            } else {
-                $startCommand .= "-drive file=" . Cwd::abs_path($args->{hda})
-                               . ",if=" . $args->{hdaInterface}
-                               . ",werror=report ";
-            }
-        }
-
-        $startCommand .= "-cdrom $args->{cdrom} "
-            if defined $args->{cdrom};
-        $startCommand .= "-device piix3-usb-uhci -drive id=usbdisk,file=$args->{usb},if=none,readonly -device usb-storage,drive=usbdisk "
-            if defined $args->{usb};
-        $startCommand .= "-bios $args->{bios} "
-            if defined $args->{bios};
-        $startCommand .= $args->{qemuFlags} || "";
-    }
-
-    my $tmpDir = $ENV{'TMPDIR'} || "/tmp";
-    unless (defined $sharedDir) {
-        $sharedDir = $tmpDir . "/xchg-shared";
-        make_path($sharedDir, { mode => 0700, owner => $< });
-    }
-
-    my $allowReboot = 0;
-    $allowReboot = $args->{allowReboot} if defined $args->{allowReboot};
-
-    my $self = {
-        startCommand => $startCommand,
-        name => $name,
-        allowReboot => $allowReboot,
-        booted => 0,
-        pid => 0,
-        connected => 0,
-        socket => undef,
-        stateDir => "$tmpDir/vm-state-$name",
-        monitor => undef,
-        log => $args->{log},
-        redirectSerial => $args->{redirectSerial} // 1,
-    };
-
-    mkdir $self->{stateDir}, 0700;
-
-    bless $self, $class;
-    return $self;
-}
-
-
-sub log {
-    my ($self, $msg) = @_;
-    $self->{log}->log($msg, { machine => $self->{name} });
-}
-
-
-sub nest {
-    my ($self, $msg, $coderef, $attrs) = @_;
-    $self->{log}->nest($msg, $coderef, { %{$attrs || {}}, machine => $self->{name} });
-}
-
-
-sub name {
-    my ($self) = @_;
-    return $self->{name};
-}
-
-
-sub stateDir {
-    my ($self) = @_;
-    return $self->{stateDir};
-}
-
-
-sub start {
-    my ($self) = @_;
-    return if $self->{booted};
-
-    $self->log("starting vm");
-
-    # Create a socket pair for the serial line input/output of the VM.
-    my ($serialP, $serialC);
-    socketpair($serialP, $serialC, PF_UNIX, SOCK_STREAM, 0) or die;
-
-    # Create a Unix domain socket to which QEMU's monitor will connect.
-    my $monitorPath = $self->{stateDir} . "/monitor";
-    unlink $monitorPath;
-    my $monitorS;
-    socket($monitorS, PF_UNIX, SOCK_STREAM, 0) or die;
-    bind($monitorS, sockaddr_un($monitorPath)) or die "cannot bind monitor socket: $!";
-    listen($monitorS, 1) or die;
-
-    # Create a Unix domain socket to which the root shell in the guest will connect.
-    my $shellPath = $self->{stateDir} . "/shell";
-    unlink $shellPath;
-    my $shellS;
-    socket($shellS, PF_UNIX, SOCK_STREAM, 0) or die;
-    bind($shellS, sockaddr_un($shellPath)) or die "cannot bind shell socket: $!";
-    listen($shellS, 1) or die;
-
-    # Start the VM.
-    my $pid = fork();
-    die if $pid == -1;
-
-    if ($pid == 0) {
-        close $serialP;
-        close $monitorS;
-        close $shellS;
-        if ($self->{redirectSerial}) {
-            open NUL, "</dev/null" or die;
-            dup2(fileno(NUL), fileno(STDIN));
-            dup2(fileno($serialC), fileno(STDOUT));
-            dup2(fileno($serialC), fileno(STDERR));
-        }
-        $ENV{TMPDIR} = $self->{stateDir};
-        $ENV{SHARED_DIR} = $sharedDir;
-        $ENV{USE_TMPDIR} = 1;
-        $ENV{QEMU_OPTS} =
-            ($self->{allowReboot} ? "" : "-no-reboot ") .
-            "-monitor unix:./monitor -chardev socket,id=shell,path=./shell " .
-            "-device virtio-serial -device virtconsole,chardev=shell " .
-            "-device virtio-rng-pci " .
-            ($showGraphics ? "-serial stdio" : "-nographic") . " " . ($ENV{QEMU_OPTS} || "");
-        chdir $self->{stateDir} or die;
-        exec $self->{startCommand};
-        die "running VM script: $!";
-    }
-
-    # Process serial line output.
-    close $serialC;
-
-    threads->create(\&processSerialOutput, $self, $serialP)->detach;
-
-    sub processSerialOutput {
-        my ($self, $serialP) = @_;
-        while (<$serialP>) {
-            chomp;
-            s/\r$//;
-            print STDERR $self->{name}, "# $_\n";
-            $self->{log}->{logQueue}->enqueue({msg => $_, machine => $self->{name}}); # !!!
-        }
-    }
-
-    eval {
-        local $SIG{CHLD} = sub { die "QEMU died prematurely\n"; };
-
-        # Wait until QEMU connects to the monitor.
-        accept($self->{monitor}, $monitorS) or die;
-
-        # Wait until QEMU connects to the root shell socket.  QEMU
-        # does so immediately; this doesn't mean that the root shell
-        # has connected yet inside the guest.
-        accept($self->{socket}, $shellS) or die;
-        $self->{socket}->autoflush(1);
-    };
-    die "$@" if $@;
-
-    $self->waitForMonitorPrompt;
-
-    $self->log("QEMU running (pid $pid)");
-
-    $self->{pid} = $pid;
-    $self->{booted} = 1;
-}
-
-
-# Send a command to the monitor and wait for it to finish.  TODO: QEMU
-# also has a JSON-based monitor interface now, but it doesn't support
-# all commands yet.  We should use it once it does.
-sub sendMonitorCommand {
-    my ($self, $command) = @_;
-    $self->log("sending monitor command: $command");
-    syswrite $self->{monitor}, "$command\n";
-    return $self->waitForMonitorPrompt;
-}
-
-
-# Wait until the monitor sends "(qemu) ".
-sub waitForMonitorPrompt {
-    my ($self) = @_;
-    my $res = "";
-    my $s;
-    while (sysread($self->{monitor}, $s, 1024)) {
-        $res .= $s;
-        last if $res =~ s/\(qemu\) $//;
-    }
-    return $res;
-}
-
-
-# Call the given code reference repeatedly, with 1 second intervals,
-# until it returns 1 or a timeout is reached.
-sub retry {
-    my ($coderef) = @_;
-    my $n;
-    for ($n = 899; $n >=0; $n--) {
-        return if &$coderef($n);
-        sleep 1;
-    }
-    die "action timed out after $n seconds";
-}
-
-
-sub connect {
-    my ($self) = @_;
-    return if $self->{connected};
-
-    $self->nest("waiting for the VM to finish booting", sub {
-
-        $self->start;
-
-        my $now = clock_gettime(CLOCK_MONOTONIC);
-        local $SIG{ALRM} = sub { die "timed out waiting for the VM to connect\n"; };
-        alarm 600;
-        readline $self->{socket} or die "the VM quit before connecting\n";
-        alarm 0;
-
-        $self->log("connected to guest root shell");
-        # We're interested in tracking how close we are to `alarm`.
-        $self->log(sprintf("(connecting took %.2f seconds)", clock_gettime(CLOCK_MONOTONIC) - $now));
-        $self->{connected} = 1;
-
-    });
-}
-
-
-sub waitForShutdown {
-    my ($self) = @_;
-    return unless $self->{booted};
-
-    $self->nest("waiting for the VM to power off", sub {
-        waitpid $self->{pid}, 0;
-        $self->{pid} = 0;
-        $self->{booted} = 0;
-        $self->{connected} = 0;
-    });
-}
-
-
-sub isUp {
-    my ($self) = @_;
-    return $self->{booted} && $self->{connected};
-}
-
-
-sub execute_ {
-    my ($self, $command) = @_;
-
-    $self->connect;
-
-    print { $self->{socket} } ("( $command ); echo '|!=EOF' \$?\n");
-
-    my $out = "";
-
-    while (1) {
-        my $line = readline($self->{socket});
-        die "connection to VM lost unexpectedly" unless defined $line;
-        #$self->log("got line: $line");
-        if ($line =~ /^(.*)\|\!\=EOF\s+(\d+)$/) {
-            $out .= $1;
-            $self->log("exit status $2");
-            return ($2, $out);
-        }
-        $out .= $line;
-    }
-}
-
-
-sub execute {
-    my ($self, $command) = @_;
-    my @res;
-    $self->nest("running command: $command", sub {
-        @res = $self->execute_($command);
-    });
-    return @res;
-}
-
-
-sub succeed {
-    my ($self, @commands) = @_;
-
-    my $res;
-    foreach my $command (@commands) {
-        $self->nest("must succeed: $command", sub {
-            my ($status, $out) = $self->execute_($command);
-            if ($status != 0) {
-                $self->log("output: $out");
-                die "command `$command' did not succeed (exit code $status)\n";
-            }
-            $res .= $out;
-        });
-    }
-
-    return $res;
-}
-
-
-sub mustSucceed {
-    succeed @_;
-}
-
-
-sub waitUntilSucceeds {
-    my ($self, $command) = @_;
-    $self->nest("waiting for success: $command", sub {
-        retry sub {
-            my ($status, $out) = $self->execute($command);
-            return 1 if $status == 0;
-        };
-    });
-}
-
-
-sub waitUntilFails {
-    my ($self, $command) = @_;
-    $self->nest("waiting for failure: $command", sub {
-        retry sub {
-            my ($status, $out) = $self->execute($command);
-            return 1 if $status != 0;
-        };
-    });
-}
-
-
-sub fail {
-    my ($self, $command) = @_;
-    $self->nest("must fail: $command", sub {
-        my ($status, $out) = $self->execute_($command);
-        die "command `$command' unexpectedly succeeded"
-            if $status == 0;
-    });
-}
-
-
-sub mustFail {
-    fail @_;
-}
-
-
-sub getUnitInfo {
-    my ($self, $unit, $user) = @_;
-    my ($status, $lines) = $self->systemctl("--no-pager show \"$unit\"", $user);
-    return undef if $status != 0;
-    my $info = {};
-    foreach my $line (split '\n', $lines) {
-        $line =~ /^([^=]+)=(.*)$/ or next;
-        $info->{$1} = $2;
-    }
-    return $info;
-}
-
-sub systemctl {
-    my ($self, $q, $user) = @_;
-    if ($user) {
-        $q =~ s/'/\\'/g;
-        return $self->execute("su -l $user -c \$'XDG_RUNTIME_DIR=/run/user/`id -u` systemctl --user $q'");
-    }
-
-    return $self->execute("systemctl $q");
-}
-
-# Fail if the given systemd unit is not in the "active" state.
-sub requireActiveUnit {
-    my ($self, $unit) = @_;
-    $self->nest("checking if unit ‘$unit’ has reached state 'active'", sub {
-        my $info = $self->getUnitInfo($unit);
-        my $state = $info->{ActiveState};
-        if ($state ne "active") {
-            die "Expected unit ‘$unit’ to to be in state 'active' but it is in state ‘$state’\n";
-        };
-    });
-}
-
-# Wait for a systemd unit to reach the "active" state.
-sub waitForUnit {
-    my ($self, $unit, $user) = @_;
-    $self->nest("waiting for unit ‘$unit’", sub {
-        retry sub {
-            my $info = $self->getUnitInfo($unit, $user);
-            my $state = $info->{ActiveState};
-            die "unit ‘$unit’ reached state ‘$state’\n" if $state eq "failed";
-            if ($state eq "inactive") {
-                # If there are no pending jobs, then assume this unit
-                # will never reach active state.
-                my ($status, $jobs) = $self->systemctl("list-jobs --full 2>&1", $user);
-                if ($jobs =~ /No jobs/) {  # FIXME: fragile
-                    # Handle the case where the unit may have started
-                    # between the previous getUnitInfo() and
-                    # list-jobs.
-                    my $info2 = $self->getUnitInfo($unit);
-                    die "unit ‘$unit’ is inactive and there are no pending jobs\n"
-                        if $info2->{ActiveState} eq $state;
-                }
-            }
-            return 1 if $state eq "active";
-        };
-    });
-}
-
-
-sub waitForJob {
-    my ($self, $jobName) = @_;
-    return $self->waitForUnit($jobName);
-}
-
-
-# Wait until the specified file exists.
-sub waitForFile {
-    my ($self, $fileName) = @_;
-    $self->nest("waiting for file ‘$fileName’", sub {
-        retry sub {
-            my ($status, $out) = $self->execute("test -e $fileName");
-            return 1 if $status == 0;
-        }
-    });
-}
-
-sub startJob {
-    my ($self, $jobName, $user) = @_;
-    $self->systemctl("start $jobName", $user);
-    # FIXME: check result
-}
-
-sub stopJob {
-    my ($self, $jobName, $user) = @_;
-    $self->systemctl("stop $jobName", $user);
-}
-
-
-# Wait until the machine is listening on the given TCP port.
-sub waitForOpenPort {
-    my ($self, $port) = @_;
-    $self->nest("waiting for TCP port $port", sub {
-        retry sub {
-            my ($status, $out) = $self->execute("nc -z localhost $port");
-            return 1 if $status == 0;
-        }
-    });
-}
-
-
-# Wait until the machine is not listening on the given TCP port.
-sub waitForClosedPort {
-    my ($self, $port) = @_;
-    retry sub {
-        my ($status, $out) = $self->execute("nc -z localhost $port");
-        return 1 if $status != 0;
-    }
-}
-
-
-sub shutdown {
-    my ($self) = @_;
-    return unless $self->{booted};
-
-    print { $self->{socket} } ("poweroff\n");
-
-    $self->waitForShutdown;
-}
-
-
-sub crash {
-    my ($self) = @_;
-    return unless $self->{booted};
-
-    $self->log("forced crash");
-
-    $self->sendMonitorCommand("quit");
-
-    $self->waitForShutdown;
-}
-
-
-# Make the machine unreachable by shutting down eth1 (the multicast
-# interface used to talk to the other VMs).  We keep eth0 up so that
-# the test driver can continue to talk to the machine.
-sub block {
-    my ($self) = @_;
-    $self->sendMonitorCommand("set_link virtio-net-pci.1 off");
-}
-
-
-# Make the machine reachable.
-sub unblock {
-    my ($self) = @_;
-    $self->sendMonitorCommand("set_link virtio-net-pci.1 on");
-}
-
-
-# Take a screenshot of the X server on :0.0.
-sub screenshot {
-    my ($self, $filename) = @_;
-    my $dir = $ENV{'out'} || Cwd::abs_path(".");
-    $filename = "$dir/${filename}.png" if $filename =~ /^\w+$/;
-    my $tmp = "${filename}.ppm";
-    my $name = basename($filename);
-    $self->nest("making screenshot ‘$name’", sub {
-        $self->sendMonitorCommand("screendump $tmp");
-        system("pnmtopng $tmp > ${filename}") == 0
-            or die "cannot convert screenshot";
-        unlink $tmp;
-    }, { image => $name } );
-}
-
-# Get the text of TTY<n>
-sub getTTYText {
-    my ($self, $tty) = @_;
-
-    my ($status, $out) = $self->execute("fold -w\$(stty -F /dev/tty${tty} size | awk '{print \$2}') /dev/vcs${tty}");
-    return $out;
-}
-
-# Wait until TTY<n>'s text matches a particular regular expression
-sub waitUntilTTYMatches {
-    my ($self, $tty, $regexp) = @_;
-
-    $self->nest("waiting for $regexp to appear on tty $tty", sub {
-        retry sub {
-            my ($retries_remaining) = @_;
-            if ($retries_remaining == 0) {
-                $self->log("Last chance to match /$regexp/ on TTY$tty, which currently contains:");
-                $self->log($self->getTTYText($tty));
-            }
-
-            return 1 if $self->getTTYText($tty) =~ /$regexp/;
-        }
-    });
-}
-
-# Debugging: Dump the contents of the TTY<n>
-sub dumpTTYContents {
-    my ($self, $tty) = @_;
-
-    $self->execute("fold -w 80 /dev/vcs${tty} | systemd-cat");
-}
-
-# Take a screenshot and return the result as text using optical character
-# recognition.
-sub getScreenText {
-    my ($self) = @_;
-
-    system("command -v tesseract &> /dev/null") == 0
-        or die "getScreenText used but enableOCR is false";
-
-    my $text;
-    $self->nest("performing optical character recognition", sub {
-        my $tmpbase = Cwd::abs_path(".")."/ocr";
-        my $tmpin = $tmpbase."in.ppm";
-
-        $self->sendMonitorCommand("screendump $tmpin");
-
-        my $magickArgs = "-filter Catrom -density 72 -resample 300 "
-                       . "-contrast -normalize -despeckle -type grayscale "
-                       . "-sharpen 1 -posterize 3 -negate -gamma 100 "
-                       . "-blur 1x65535";
-        my $tessArgs = "-c debug_file=/dev/null --psm 11 --oem 2";
-
-        $text = `convert $magickArgs $tmpin tiff:- | tesseract - - $tessArgs`;
-        my $status = $? >> 8;
-        unlink $tmpin;
-
-        die "OCR failed with exit code $status" if $status != 0;
-    });
-    return $text;
-}
-
-
-# Wait until a specific regexp matches the textual contents of the screen.
-sub waitForText {
-    my ($self, $regexp) = @_;
-    $self->nest("waiting for $regexp to appear on the screen", sub {
-        retry sub {
-            my ($retries_remaining) = @_;
-            if ($retries_remaining == 0) {
-                $self->log("Last chance to match /$regexp/ on the screen, which currently contains:");
-                $self->log($self->getScreenText);
-            }
-
-            return 1 if $self->getScreenText =~ /$regexp/;
-        }
-    });
-}
-
-
-# Wait until it is possible to connect to the X server.  Note that
-# testing the existence of /tmp/.X11-unix/X0 is insufficient.
-sub waitForX {
-    my ($self, $regexp) = @_;
-    $self->nest("waiting for the X11 server", sub {
-        retry sub {
-            my ($status, $out) = $self->execute("journalctl -b SYSLOG_IDENTIFIER=systemd | grep 'Reached target Current graphical'");
-            return 0 if $status != 0;
-            ($status, $out) = $self->execute("[ -e /tmp/.X11-unix/X0 ]");
-            return 1 if $status == 0;
-        }
-    });
-}
-
-
-sub getWindowNames {
-    my ($self) = @_;
-    my $res = $self->mustSucceed(
-        q{xwininfo -root -tree | sed 's/.*0x[0-9a-f]* \"\([^\"]*\)\".*/\1/; t; d'});
-    return split /\n/, $res;
-}
-
-
-sub waitForWindow {
-    my ($self, $regexp) = @_;
-    $self->nest("waiting for a window to appear", sub {
-        retry sub {
-            my @names = $self->getWindowNames;
-
-            my ($retries_remaining) = @_;
-            if ($retries_remaining == 0) {
-                $self->log("Last chance to match /$regexp/ on the the window list, which currently contains:");
-                $self->log(join(", ", @names));
-            }
-
-            foreach my $n (@names) {
-                return 1 if $n =~ /$regexp/;
-            }
-        }
-    });
-}
-
-
-sub copyFileFromHost {
-    my ($self, $from, $to) = @_;
-    my $s = `cat $from` or die;
-    $s =~ s/'/'\\''/g;
-    $self->mustSucceed("echo '$s' > $to");
-}
-
-
-my %charToKey = (
-    'A' => "shift-a", 'N' => "shift-n",  '-' => "0x0C", '_' => "shift-0x0C", '!' => "shift-0x02",
-    'B' => "shift-b", 'O' => "shift-o",  '=' => "0x0D", '+' => "shift-0x0D", '@' => "shift-0x03",
-    'C' => "shift-c", 'P' => "shift-p",  '[' => "0x1A", '{' => "shift-0x1A", '#' => "shift-0x04",
-    'D' => "shift-d", 'Q' => "shift-q",  ']' => "0x1B", '}' => "shift-0x1B", '$' => "shift-0x05",
-    'E' => "shift-e", 'R' => "shift-r",  ';' => "0x27", ':' => "shift-0x27", '%' => "shift-0x06",
-    'F' => "shift-f", 'S' => "shift-s", '\'' => "0x28", '"' => "shift-0x28", '^' => "shift-0x07",
-    'G' => "shift-g", 'T' => "shift-t",  '`' => "0x29", '~' => "shift-0x29", '&' => "shift-0x08",
-    'H' => "shift-h", 'U' => "shift-u", '\\' => "0x2B", '|' => "shift-0x2B", '*' => "shift-0x09",
-    'I' => "shift-i", 'V' => "shift-v",  ',' => "0x33", '<' => "shift-0x33", '(' => "shift-0x0A",
-    'J' => "shift-j", 'W' => "shift-w",  '.' => "0x34", '>' => "shift-0x34", ')' => "shift-0x0B",
-    'K' => "shift-k", 'X' => "shift-x",  '/' => "0x35", '?' => "shift-0x35",
-    'L' => "shift-l", 'Y' => "shift-y",  ' ' => "spc",
-    'M' => "shift-m", 'Z' => "shift-z", "\n" => "ret",
-);
-
-
-sub sendKeys {
-    my ($self, @keys) = @_;
-    foreach my $key (@keys) {
-        $key = $charToKey{$key} if exists $charToKey{$key};
-        $self->sendMonitorCommand("sendkey $key");
-    }
-}
-
-
-sub sendChars {
-    my ($self, $chars) = @_;
-    $self->nest("sending keys ‘$chars’", sub {
-        $self->sendKeys(split //, $chars);
-    });
-}
-
-
-# Sleep N seconds (in virtual guest time, not real time).
-sub sleep {
-    my ($self, $time) = @_;
-    $self->succeed("sleep $time");
-}
-
-
-# Forward a TCP port on the host to a TCP port on the guest.  Useful
-# during interactive testing.
-sub forwardPort {
-    my ($self, $hostPort, $guestPort) = @_;
-    $hostPort = 8080 unless defined $hostPort;
-    $guestPort = 80 unless defined $guestPort;
-    $self->sendMonitorCommand("hostfwd_add tcp::$hostPort-:$guestPort");
-}
-
-
-1;
diff --git a/nixos/lib/test-driver/test-driver.pl b/nixos/lib/test-driver/test-driver.pl
deleted file mode 100644
index a3354fb0e1e..00000000000
--- a/nixos/lib/test-driver/test-driver.pl
+++ /dev/null
@@ -1,191 +0,0 @@
-#! /somewhere/perl -w
-
-use strict;
-use Machine;
-use Term::ReadLine;
-use IO::File;
-use IO::Pty;
-use Logger;
-use Cwd;
-use POSIX qw(_exit dup2);
-use Time::HiRes qw(clock_gettime CLOCK_MONOTONIC);
-
-$SIG{PIPE} = 'IGNORE'; # because Unix domain sockets may die unexpectedly
-
-STDERR->autoflush(1);
-
-my $log = new Logger;
-
-
-# Start vde_switch for each network required by the test.
-my %vlans;
-foreach my $vlan (split / /, $ENV{VLANS} || "") {
-    next if defined $vlans{$vlan};
-    # Start vde_switch as a child process.  We don't run it in daemon
-    # mode because we want the child process to be cleaned up when we
-    # die.  Since we have to make sure that the control socket is
-    # ready, we send a dummy command to vde_switch (via stdin) and
-    # wait for a reply.  Note that vde_switch requires stdin to be a
-    # TTY, so we create one.
-    $log->log("starting VDE switch for network $vlan");
-    my $socket = Cwd::abs_path "./vde$vlan.ctl";
-    my $pty = new IO::Pty;
-    my ($stdoutR, $stdoutW); pipe $stdoutR, $stdoutW;
-    my $pid = fork(); die "cannot fork" unless defined $pid;
-    if ($pid == 0) {
-        dup2(fileno($pty->slave), 0);
-        dup2(fileno($stdoutW), 1);
-        exec "vde_switch -s $socket --dirmode 0700" or _exit(1);
-    }
-    close $stdoutW;
-    print $pty "version\n";
-    readline $stdoutR or die "cannot start vde_switch";
-    $ENV{"QEMU_VDE_SOCKET_$vlan"} = $socket;
-    $vlans{$vlan} = $pty;
-    die unless -e "$socket/ctl";
-}
-
-
-my %vms;
-my $context = "";
-
-sub createMachine {
-    my ($args) = @_;
-    my $vm = Machine->new({%{$args}, log => $log, redirectSerial => ($ENV{USE_SERIAL} // "0") ne "1"});
-    $vms{$vm->name} = $vm;
-    $context .= "my \$" . $vm->name . " = \$vms{'" . $vm->name . "'}; ";
-    return $vm;
-}
-
-foreach my $vmScript (@ARGV) {
-    my $vm = createMachine({startCommand => $vmScript});
-}
-
-
-sub startAll {
-    $log->nest("starting all VMs", sub {
-        $_->start foreach values %vms;
-    });
-}
-
-
-# Wait until all VMs have terminated.
-sub joinAll {
-    $log->nest("waiting for all VMs to finish", sub {
-        $_->waitForShutdown foreach values %vms;
-    });
-}
-
-
-# In interactive tests, this allows the non-interactive test script to
-# be executed conveniently.
-sub testScript {
-    eval "$context $ENV{testScript};\n";
-    warn $@ if $@;
-}
-
-
-my $nrTests = 0;
-my $nrSucceeded = 0;
-
-
-sub subtest {
-    my ($name, $coderef) = @_;
-    $log->nest("subtest: $name", sub {
-        $nrTests++;
-        eval { &$coderef };
-        if ($@) {
-            $log->log("error: $@", { error => 1 });
-        } else {
-            $nrSucceeded++;
-        }
-    });
-}
-
-
-sub runTests {
-    if (defined $ENV{tests}) {
-        $log->nest("running the VM test script", sub {
-            eval "$context $ENV{tests}";
-            if ($@) {
-                $log->log("error: $@", { error => 1 });
-                die $@;
-            }
-        }, { expanded => 1 });
-    } else {
-        my $term = Term::ReadLine->new('nixos-vm-test');
-        $term->ReadHistory;
-        while (defined ($_ = $term->readline("> "))) {
-            eval "$context $_\n";
-            warn $@ if $@;
-        }
-        $term->WriteHistory;
-    }
-
-    # Copy the kernel coverage data for each machine, if the kernel
-    # has been compiled with coverage instrumentation.
-    $log->nest("collecting coverage data", sub {
-        foreach my $vm (values %vms) {
-            my $gcovDir = "/sys/kernel/debug/gcov";
-
-            next unless $vm->isUp();
-
-            my ($status, $out) = $vm->execute("test -e $gcovDir");
-            next if $status != 0;
-
-            # Figure out where to put the *.gcda files so that the
-            # report generator can find the corresponding kernel
-            # sources.
-            my $kernelDir = $vm->mustSucceed("echo \$(dirname \$(readlink -f /run/current-system/kernel))/.build/linux-*");
-            chomp $kernelDir;
-            my $coverageDir = "/tmp/xchg/coverage-data/$kernelDir";
-
-            # Copy all the *.gcda files.
-            $vm->execute("for d in $gcovDir/nix/store/*/.build/linux-*; do for i in \$(cd \$d && find -name '*.gcda'); do echo \$i; mkdir -p $coverageDir/\$(dirname \$i); cp -v \$d/\$i $coverageDir/\$i; done; done");
-        }
-    });
-
-    $log->nest("syncing", sub {
-        foreach my $vm (values %vms) {
-            next unless $vm->isUp();
-            $vm->execute("sync");
-        }
-    });
-
-    if ($nrTests != 0) {
-        $log->log("$nrSucceeded out of $nrTests tests succeeded",
-            ($nrSucceeded < $nrTests ? { error => 1 } : { }));
-    }
-}
-
-
-# Create an empty raw virtual disk with the given name and size (in
-# MiB).
-sub createDisk {
-    my ($name, $size) = @_;
-    system("qemu-img create -f raw $name ${size}M") == 0
-        or die "cannot create image of size $size";
-}
-
-
-END {
-    $log->nest("cleaning up", sub {
-        foreach my $vm (values %vms) {
-            if ($vm->{pid}) {
-                $log->log("killing " . $vm->{name} . " (pid " . $vm->{pid} . ")");
-                kill 9, $vm->{pid};
-            }
-        }
-    });
-    $log->close();
-}
-
-my $now1 = clock_gettime(CLOCK_MONOTONIC);
-
-runTests;
-
-my $now2 = clock_gettime(CLOCK_MONOTONIC);
-
-printf STDERR "test script finished in %.2fs\n", $now2 - $now1;
-
-exit ($nrSucceeded < $nrTests ? 1 : 0);
diff --git a/nixos/lib/test-driver/test-driver.py b/nixos/lib/test-driver/test-driver.py
index 4cb928538e7..93f94587c0a 100644
--- a/nixos/lib/test-driver/test-driver.py
+++ b/nixos/lib/test-driver/test-driver.py
@@ -22,6 +22,7 @@ import subprocess
 import sys
 import tempfile
 import time
+import traceback
 import unicodedata
 
 CHAR_TO_KEY = {
@@ -423,15 +424,18 @@ class Machine:
                 output += out
         return output
 
-    def fail(self, *commands: str) -> None:
+    def fail(self, *commands: str) -> str:
         """Execute each command and check that it fails."""
+        output = ""
         for command in commands:
             with self.nested("must fail: {}".format(command)):
-                status, output = self.execute(command)
+                (status, out) = self.execute(command)
                 if status == 0:
                     raise Exception(
                         "command `{}` unexpectedly succeeded".format(command)
                     )
+                output += out
+        return output
 
     def wait_until_succeeds(self, command: str) -> str:
         """Wait until a command returns success and return its output.
@@ -836,7 +840,8 @@ class Machine:
             retry(window_is_visible)
 
     def sleep(self, secs: int) -> None:
-        time.sleep(secs)
+        # We want to sleep in *guest* time, not *host* time.
+        self.succeed(f"sleep {secs}")
 
     def forward_port(self, host_port: int = 8080, guest_port: int = 80) -> None:
         """Forward a TCP port on the host to a TCP port on the guest.
@@ -892,7 +897,8 @@ def run_tests() -> None:
             try:
                 exec(tests, globals())
             except Exception as e:
-                eprint("error: {}".format(str(e)))
+                eprint("error: ")
+                traceback.print_exc()
                 sys.exit(1)
     else:
         ptpython.repl.embed(locals(), globals())
diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix
index c6939c7d698..76a2022082c 100644
--- a/nixos/lib/testing-python.nix
+++ b/nixos/lib/testing-python.nix
@@ -63,18 +63,12 @@ rec {
           mkdir -p $out
 
           LOGFILE=/dev/null tests='exec(os.environ["testScript"])' ${driver}/bin/nixos-test-driver
-
-          for i in */xchg/coverage-data; do
-            mkdir -p $out/coverage-data
-            mv $i $out/coverage-data/$(dirname $(dirname $i))
-          done
         '';
     };
 
 
   makeTest =
     { testScript
-    , makeCoverageReport ? false
     , enableOCR ? false
     , name ? "unnamed"
     # Skip linting (mainly intended for faster dev cycles)
@@ -153,7 +147,6 @@ rec {
       };
 
       test = passMeta (runTests driver);
-      report = passMeta (releaseTools.gcovReport { coverageRuns = [ test ]; });
 
       nodeNames = builtins.attrNames nodes;
       invalidNodeNames = lib.filter
@@ -169,7 +162,7 @@ rec {
           Please stick to alphanumeric chars and underscores as separation.
         ''
       else
-        (if makeCoverageReport then report else test) // {
+        test // {
           inherit nodes driver test;
         };
 
diff --git a/nixos/lib/testing.nix b/nixos/lib/testing.nix
deleted file mode 100644
index 5c784c2f0ab..00000000000
--- a/nixos/lib/testing.nix
+++ /dev/null
@@ -1,258 +0,0 @@
-{ system
-, pkgs ? import ../.. { inherit system config; }
-  # Use a minimal kernel?
-, minimal ? false
-  # Ignored
-, config ? {}
-  # Modules to add to each VM
-, extraConfigurations ? [] }:
-
-with import ./build-vms.nix { inherit system pkgs minimal extraConfigurations; };
-with pkgs;
-
-rec {
-
-  inherit pkgs;
-
-
-  testDriver = lib.warn ''
-    Perl VM tests are deprecated and will be removed for 20.09.
-    Please update your tests to use the python test driver.
-    See https://github.com/NixOS/nixpkgs/pull/71684 for details.
-  '' stdenv.mkDerivation {
-    name = "nixos-test-driver";
-
-    buildInputs = [ makeWrapper perl ];
-
-    dontUnpack = true;
-
-    preferLocalBuild = true;
-
-    installPhase =
-      ''
-        mkdir -p $out/bin
-        cp ${./test-driver/test-driver.pl} $out/bin/nixos-test-driver
-        chmod u+x $out/bin/nixos-test-driver
-
-        libDir=$out/${perl.libPrefix}
-        mkdir -p $libDir
-        cp ${./test-driver/Machine.pm} $libDir/Machine.pm
-        cp ${./test-driver/Logger.pm} $libDir/Logger.pm
-
-        wrapProgram $out/bin/nixos-test-driver \
-          --prefix PATH : "${lib.makeBinPath [ qemu_test vde2 netpbm coreutils ]}" \
-          --prefix PERL5LIB : "${with perlPackages; makePerlPath [ TermReadLineGnu XMLWriter IOTty FileSlurp ]}:$out/${perl.libPrefix}"
-      '';
-  };
-
-
-  # Run an automated test suite in the given virtual network.
-  # `driver' is the script that runs the network.
-  runTests = driver:
-    stdenv.mkDerivation {
-      name = "vm-test-run-${driver.testName}";
-
-      requiredSystemFeatures = [ "kvm" "nixos-test" ];
-
-      buildCommand =
-        ''
-          mkdir -p $out
-
-          LOGFILE=/dev/null tests='eval $ENV{testScript}; die $@ if $@;' ${driver}/bin/nixos-test-driver
-
-          for i in */xchg/coverage-data; do
-            mkdir -p $out/coverage-data
-            mv $i $out/coverage-data/$(dirname $(dirname $i))
-          done
-        '';
-    };
-
-
-  makeTest =
-    { testScript
-    , makeCoverageReport ? false
-    , enableOCR ? false
-    , name ? "unnamed"
-    , ...
-    } @ t:
-
-    let
-      # A standard store path to the vm monitor is built like this:
-      #   /tmp/nix-build-vm-test-run-$name.drv-0/vm-state-machine/monitor
-      # The max filename length of a unix domain socket is 108 bytes.
-      # This means $name can at most be 50 bytes long.
-      maxTestNameLen = 50;
-      testNameLen = builtins.stringLength name;
-
-      testDriverName = with builtins;
-        if testNameLen > maxTestNameLen then
-          abort ("The name of the test '${name}' must not be longer than ${toString maxTestNameLen} " +
-            "it's currently ${toString testNameLen} characters long.")
-        else
-          "nixos-test-driver-${name}";
-
-      nodes = buildVirtualNetwork (
-        t.nodes or (if t ? machine then { machine = t.machine; } else { }));
-
-      testScript' =
-        # Call the test script with the computed nodes.
-        if lib.isFunction testScript
-        then testScript { inherit nodes; }
-        else testScript;
-
-      vlans = map (m: m.config.virtualisation.vlans) (lib.attrValues nodes);
-
-      vms = map (m: m.config.system.build.vm) (lib.attrValues nodes);
-
-      ocrProg = tesseract4.override { enableLanguages = [ "eng" ]; };
-
-      imagemagick_tiff = imagemagick_light.override { inherit libtiff; };
-
-      # Generate onvenience wrappers for running the test driver
-      # interactively with the specified network, and for starting the
-      # VMs from the command line.
-      driver = runCommand testDriverName
-        { buildInputs = [ makeWrapper];
-          testScript = testScript';
-          preferLocalBuild = true;
-          testName = name;
-        }
-        ''
-          mkdir -p $out/bin
-          echo "$testScript" > $out/test-script
-          ln -s ${testDriver}/bin/nixos-test-driver $out/bin/
-          vms=($(for i in ${toString vms}; do echo $i/bin/run-*-vm; done))
-          wrapProgram $out/bin/nixos-test-driver \
-            --add-flags "''${vms[*]}" \
-            ${lib.optionalString enableOCR
-              "--prefix PATH : '${ocrProg}/bin:${imagemagick_tiff}/bin'"} \
-            --run "export testScript=\"\$(cat $out/test-script)\"" \
-            --set VLANS '${toString vlans}'
-          ln -s ${testDriver}/bin/nixos-test-driver $out/bin/nixos-run-vms
-          wrapProgram $out/bin/nixos-run-vms \
-            --add-flags "''${vms[*]}" \
-            ${lib.optionalString enableOCR "--prefix PATH : '${ocrProg}/bin'"} \
-            --set tests 'startAll; joinAll;' \
-            --set VLANS '${toString vlans}' \
-            ${lib.optionalString (builtins.length vms == 1) "--set USE_SERIAL 1"}
-        ''; # "
-
-      passMeta = drv: drv // lib.optionalAttrs (t ? meta) {
-        meta = (drv.meta or {}) // t.meta;
-      };
-
-      test = passMeta (runTests driver);
-      report = passMeta (releaseTools.gcovReport { coverageRuns = [ test ]; });
-
-      nodeNames = builtins.attrNames nodes;
-      invalidNodeNames = lib.filter
-        (node: builtins.match "^[A-z_][A-z0-9_]+$" node == null) nodeNames;
-
-    in
-      if lib.length invalidNodeNames > 0 then
-        throw ''
-          Cannot create machines out of (${lib.concatStringsSep ", " invalidNodeNames})!
-          All machines are referenced as perl variables in the testing framework which will break the
-          script when special characters are used.
-
-          Please stick to alphanumeric chars and underscores as separation.
-        ''
-      else
-        (if makeCoverageReport then report else test) // {
-          inherit nodes driver test;
-        };
-
-  runInMachine =
-    { drv
-    , machine
-    , preBuild ? ""
-    , postBuild ? ""
-    , ... # ???
-    }:
-    let
-      vm = buildVM { }
-        [ machine
-          { key = "run-in-machine";
-            networking.hostName = "client";
-            nix.readOnlyStore = false;
-            virtualisation.writableStore = false;
-          }
-        ];
-
-      buildrunner = writeText "vm-build" ''
-        source $1
-
-        ${coreutils}/bin/mkdir -p $TMPDIR
-        cd $TMPDIR
-
-        exec $origBuilder $origArgs
-      '';
-
-      testScript = ''
-        startAll;
-        $client->waitForUnit("multi-user.target");
-        ${preBuild}
-        $client->succeed("env -i ${bash}/bin/bash ${buildrunner} /tmp/xchg/saved-env >&2");
-        ${postBuild}
-        $client->succeed("sync"); # flush all data before pulling the plug
-      '';
-
-      vmRunCommand = writeText "vm-run" ''
-        xchg=vm-state-client/xchg
-        ${coreutils}/bin/mkdir $out
-        ${coreutils}/bin/mkdir -p $xchg
-
-        for i in $passAsFile; do
-          i2=''${i}Path
-          _basename=$(${coreutils}/bin/basename ''${!i2})
-          ${coreutils}/bin/cp ''${!i2} $xchg/$_basename
-          eval $i2=/tmp/xchg/$_basename
-          ${coreutils}/bin/ls -la $xchg
-        done
-
-        unset i i2 _basename
-        export | ${gnugrep}/bin/grep -v '^xchg=' > $xchg/saved-env
-        unset xchg
-
-        export tests='${testScript}'
-        ${testDriver}/bin/nixos-test-driver ${vm.config.system.build.vm}/bin/run-*-vm
-      ''; # */
-
-    in
-      lib.overrideDerivation drv (attrs: {
-        requiredSystemFeatures = [ "kvm" ];
-        builder = "${bash}/bin/sh";
-        args = ["-e" vmRunCommand];
-        origArgs = attrs.args;
-        origBuilder = attrs.builder;
-      });
-
-
-  runInMachineWithX = { require ? [], ... } @ args:
-    let
-      client =
-        { ... }:
-        {
-          inherit require;
-          imports = [
-            ../tests/common/auto.nix
-          ];
-          virtualisation.memorySize = 1024;
-          services.xserver.enable = true;
-          test-support.displayManager.auto.enable = true;
-          services.xserver.displayManager.defaultSession = "none+icewm";
-          services.xserver.windowManager.icewm.enable = true;
-        };
-    in
-      runInMachine ({
-        machine = client;
-        preBuild =
-          ''
-            $client->waitForX;
-          '';
-      } // args);
-
-
-  simpleTest = as: (makeTest as).test;
-
-}
diff --git a/nixos/lib/utils.nix b/nixos/lib/utils.nix
index 21f4c7c6988..543c8a8882e 100644
--- a/nixos/lib/utils.nix
+++ b/nixos/lib/utils.nix
@@ -2,9 +2,11 @@ pkgs: with pkgs.lib;
 
 rec {
 
-  # Check whenever fileSystem is needed for boot
-  fsNeededForBoot = fs: fs.neededForBoot
-                     || elem fs.mountPoint [ "/" "/nix" "/nix/store" "/var" "/var/log" "/var/lib" "/etc" ];
+  # Check whenever fileSystem is needed for boot.  NOTE: Make sure
+  # pathsNeededForBoot is closed under the parent relationship, i.e. if /a/b/c
+  # is in the list, put /a and /a/b in as well.
+  pathsNeededForBoot = [ "/" "/nix" "/nix/store" "/var" "/var/log" "/var/lib" "/etc" ];
+  fsNeededForBoot = fs: fs.neededForBoot || elem fs.mountPoint pathsNeededForBoot;
 
   # Check whenever `b` depends on `a` as a fileSystem
   fsBefore = a: b: a.mountPoint == b.device
diff --git a/nixos/maintainers/scripts/azure-new/.gitignore b/nixos/maintainers/scripts/azure-new/.gitignore
index 26905a86234..9271abf14a0 100644
--- a/nixos/maintainers/scripts/azure-new/.gitignore
+++ b/nixos/maintainers/scripts/azure-new/.gitignore
@@ -1 +1 @@
-azure
\ No newline at end of file
+azure
diff --git a/nixos/maintainers/scripts/azure-new/README.md b/nixos/maintainers/scripts/azure-new/README.md
index 20e81c44ce5..e5b69dacec0 100644
--- a/nixos/maintainers/scripts/azure-new/README.md
+++ b/nixos/maintainers/scripts/azure-new/README.md
@@ -20,7 +20,7 @@ $ ./upload-image.sh ./examples/basic/image.nix
 + nix-build ./examples/basic/image.nix --out-link azure
 /nix/store/qdpzknpskzw30vba92mb24xzll1dqsmd-azure-image
 ...
-95.5 %, 0 Done, 0 Failed, 1 Pending, 0 Skipped, 1 Total, 2-sec Throughput (Mb/s): 932.9565 
+95.5 %, 0 Done, 0 Failed, 1 Pending, 0 Skipped, 1 Total, 2-sec Throughput (Mb/s): 932.9565
 ...
 /subscriptions/aff271ee-e9be-4441-b9bb-42f5af4cbaeb/resourceGroups/nixos-images/providers/Microsoft.Compute/images/azure-image-todo-makethisbetter
 ```
diff --git a/nixos/maintainers/scripts/azure-new/upload-image.sh b/nixos/maintainers/scripts/azure-new/upload-image.sh
index 1466dcd1f0a..143afbd7f96 100755
--- a/nixos/maintainers/scripts/azure-new/upload-image.sh
+++ b/nixos/maintainers/scripts/azure-new/upload-image.sh
@@ -37,8 +37,8 @@ if ! az disk show -g "${group}" -n "${img_name}" &>/dev/null; then
   )"
 
   azcopy copy "${img_file}" "${sasurl}" \
-    --blob-type PageBlob 
-    
+    --blob-type PageBlob
+
   az disk revoke-access \
     --resource-group "${group}" \
     --name "${img_name}"
diff --git a/nixos/maintainers/scripts/ec2/amazon-image.nix b/nixos/maintainers/scripts/ec2/amazon-image.nix
index 36f3e7af873..b09f4ca47a3 100644
--- a/nixos/maintainers/scripts/ec2/amazon-image.nix
+++ b/nixos/maintainers/scripts/ec2/amazon-image.nix
@@ -63,8 +63,8 @@ in {
     fsType = "ext4";
     configFile = pkgs.writeText "configuration.nix"
       ''
-        {
-          imports = [ <nixpkgs/nixos/modules/virtualisation/amazon-image.nix> ];
+        { modulesPath, ... }: {
+          imports = [ "''${modulesPath}/virtualisation/amazon-image.nix" ];
           ${optionalString config.ec2.hvm ''
             ec2.hvm = true;
           ''}
diff --git a/nixos/maintainers/scripts/ec2/create-amis.sh b/nixos/maintainers/scripts/ec2/create-amis.sh
index 145eb49ced7..89e24f2ccfd 100755
--- a/nixos/maintainers/scripts/ec2/create-amis.sh
+++ b/nixos/maintainers/scripts/ec2/create-amis.sh
@@ -29,7 +29,7 @@ log() {
     echo "$@" >&2
 }
 
-if [ -z "$1" ]; then
+if [ "$#" -ne 1 ]; then
     log "Usage: ./upload-amazon-image.sh IMAGE_OUTPUT"
     exit 1
 fi
diff --git a/nixos/modules/config/appstream.nix b/nixos/modules/config/appstream.nix
index 483ac9c3cd7..a72215c2f56 100644
--- a/nixos/modules/config/appstream.nix
+++ b/nixos/modules/config/appstream.nix
@@ -7,18 +7,18 @@ with lib;
       type = types.bool;
       default = true;
       description = ''
-        Whether to install files to support the 
+        Whether to install files to support the
         <link xlink:href="https://www.freedesktop.org/software/appstream/docs/index.html">AppStream metadata specification</link>.
       '';
     };
   };
 
   config = mkIf config.appstream.enable {
-    environment.pathsToLink = [ 
+    environment.pathsToLink = [
       # per component metadata
-      "/share/metainfo" 
+      "/share/metainfo"
       # legacy path for above
-      "/share/appdata" 
+      "/share/appdata"
     ];
   };
 
diff --git a/nixos/modules/config/fonts/fontconfig-penultimate.nix b/nixos/modules/config/fonts/fontconfig-penultimate.nix
deleted file mode 100644
index 7e311a21acf..00000000000
--- a/nixos/modules/config/fonts/fontconfig-penultimate.nix
+++ /dev/null
@@ -1,292 +0,0 @@
-{ config, pkgs, lib, ... }:
-
-with lib;
-
-let
-  cfg = config.fonts.fontconfig;
-
-  fcBool = x: "<bool>" + (boolToString x) + "</bool>";
-
-  # back-supported fontconfig version and package
-  # version is used for font cache generation
-  supportVersion = "210";
-  supportPkg     = pkgs."fontconfig_${supportVersion}";
-
-  # latest fontconfig version and package
-  # version is used for configuration folder name, /etc/fonts/VERSION/
-  # note: format differs from supportVersion and can not be used with makeCacheConf
-  latestVersion  = pkgs.fontconfig.configVersion;
-  latestPkg      = pkgs.fontconfig;
-
-  # supported version fonts.conf
-  supportFontsConf = pkgs.makeFontsConf { fontconfig = supportPkg; fontDirectories = config.fonts.fonts; };
-
-  # configuration file to read fontconfig cache
-  # version dependent
-  # priority 0
-  cacheConfSupport = makeCacheConf { version = supportVersion; };
-  cacheConfLatest  = makeCacheConf {};
-
-  # generate the font cache setting file for a fontconfig version
-  # use latest when no version is passed
-  makeCacheConf = { version ? null }:
-    let
-      fcPackage = if version == null
-                  then "fontconfig"
-                  else "fontconfig_${version}";
-      makeCache = fontconfig: pkgs.makeFontsCache { inherit fontconfig; fontDirectories = config.fonts.fonts; };
-      cache     = makeCache pkgs.${fcPackage};
-      cache32   = makeCache pkgs.pkgsi686Linux.${fcPackage};
-    in
-    pkgs.writeText "fc-00-nixos-cache.conf" ''
-      <?xml version='1.0'?>
-      <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
-      <fontconfig>
-        <!-- Font directories -->
-        ${concatStringsSep "\n" (map (font: "<dir>${font}</dir>") config.fonts.fonts)}
-        <!-- Pre-generated font caches -->
-        <cachedir>${cache}</cachedir>
-        ${optionalString (pkgs.stdenv.isx86_64 && cfg.cache32Bit) ''
-          <cachedir>${cache32}</cachedir>
-        ''}
-      </fontconfig>
-    '';
-
-  # local configuration file
-  localConf = pkgs.writeText "fc-local.conf" cfg.localConf;
-
-  # rendering settings configuration files
-  # priority 10
-  hintingConf = pkgs.writeText "fc-10-hinting.conf" ''
-    <?xml version='1.0'?>
-    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
-    <fontconfig>
-
-      <!-- Default rendering settings -->
-      <match target="pattern">
-        <edit mode="append" name="hinting">
-          ${fcBool cfg.hinting.enable}
-        </edit>
-        <edit mode="append" name="autohint">
-          ${fcBool cfg.hinting.autohint}
-        </edit>
-        <edit mode="append" name="hintstyle">
-          <const>hintslight</const>
-        </edit>
-      </match>
-
-    </fontconfig>
-  '';
-
-  antialiasConf = pkgs.writeText "fc-10-antialias.conf" ''
-    <?xml version='1.0'?>
-    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
-    <fontconfig>
-
-      <!-- Default rendering settings -->
-      <match target="pattern">
-        <edit mode="append" name="antialias">
-          ${fcBool cfg.antialias}
-        </edit>
-      </match>
-
-    </fontconfig>
-  '';
-
-  subpixelConf = pkgs.writeText "fc-10-subpixel.conf" ''
-    <?xml version='1.0'?>
-    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
-    <fontconfig>
-
-      <!-- Default rendering settings -->
-      <match target="pattern">
-        <edit mode="append" name="rgba">
-          <const>${cfg.subpixel.rgba}</const>
-        </edit>
-        <edit mode="append" name="lcdfilter">
-          <const>lcd${cfg.subpixel.lcdfilter}</const>
-        </edit>
-      </match>
-
-    </fontconfig>
-  '';
-
-  dpiConf = pkgs.writeText "fc-11-dpi.conf" ''
-    <?xml version='1.0'?>
-    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
-    <fontconfig>
-
-      <match target="pattern">
-        <edit name="dpi" mode="assign">
-          <double>${toString cfg.dpi}</double>
-        </edit>
-      </match>
-
-    </fontconfig>
-  '';
-
-  # default fonts configuration file
-  # priority 52
-  defaultFontsConf =
-    let genDefault = fonts: name:
-      optionalString (fonts != []) ''
-        <alias>
-          <family>${name}</family>
-          <prefer>
-          ${concatStringsSep ""
-          (map (font: ''
-            <family>${font}</family>
-          '') fonts)}
-          </prefer>
-        </alias>
-      '';
-    in
-    pkgs.writeText "fc-52-nixos-default-fonts.conf" ''
-    <?xml version='1.0'?>
-    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
-    <fontconfig>
-
-      <!-- Default fonts -->
-      ${genDefault cfg.defaultFonts.sansSerif "sans-serif"}
-
-      ${genDefault cfg.defaultFonts.serif     "serif"}
-
-      ${genDefault cfg.defaultFonts.monospace "monospace"}
-
-    </fontconfig>
-  '';
-
-  # reject Type 1 fonts
-  # priority 53
-  rejectType1 = pkgs.writeText "fc-53-nixos-reject-type1.conf" ''
-    <?xml version="1.0"?>
-    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
-    <fontconfig>
-
-    <!-- Reject Type 1 fonts -->
-    <selectfont>
-      <rejectfont>
-        <pattern>
-          <patelt name="fontformat"><string>Type 1</string></patelt>
-        </pattern>
-      </rejectfont>
-    </selectfont>
-
-    </fontconfig>
-  '';
-
-  # The configuration to be included in /etc/font/
-  penultimateConf = pkgs.runCommand "fontconfig-penultimate-conf" {
-    preferLocalBuild = true;
-  } ''
-    support_folder=$out/etc/fonts/conf.d
-    latest_folder=$out/etc/fonts/${latestVersion}/conf.d
-
-    mkdir -p $support_folder
-    mkdir -p $latest_folder
-
-    # fonts.conf
-    ln -s ${supportFontsConf} $support_folder/../fonts.conf
-    ln -s ${latestPkg.out}/etc/fonts/fonts.conf \
-          $latest_folder/../fonts.conf
-
-    # fontconfig-penultimate various configuration files
-    ln -s ${pkgs.fontconfig-penultimate}/etc/fonts/conf.d/*.conf \
-          $support_folder
-    ln -s ${pkgs.fontconfig-penultimate}/etc/fonts/conf.d/*.conf \
-          $latest_folder
-
-    ln -s ${cacheConfSupport} $support_folder/00-nixos-cache.conf
-    ln -s ${cacheConfLatest}  $latest_folder/00-nixos-cache.conf
-
-    rm $support_folder/10-antialias.conf $latest_folder/10-antialias.conf
-    ln -s ${antialiasConf} $support_folder/10-antialias.conf
-    ln -s ${antialiasConf} $latest_folder/10-antialias.conf
-
-    rm $support_folder/10-hinting.conf $latest_folder/10-hinting.conf
-    ln -s ${hintingConf} $support_folder/10-hinting.conf
-    ln -s ${hintingConf} $latest_folder/10-hinting.conf
-
-    ${optionalString cfg.useEmbeddedBitmaps ''
-    rm $support_folder/10-no-embedded-bitmaps.conf
-    rm $latest_folder/10-no-embedded-bitmaps.conf
-    ''}
-
-    rm $support_folder/10-subpixel.conf $latest_folder/10-subpixel.conf
-    ln -s ${subpixelConf} $support_folder/10-subpixel.conf
-    ln -s ${subpixelConf} $latest_folder/10-subpixel.conf
-
-    ${optionalString (cfg.dpi != 0) ''
-    ln -s ${dpiConf} $support_folder/11-dpi.conf
-    ln -s ${dpiConf} $latest_folder/11-dpi.conf
-    ''}
-
-    # 50-user.conf
-    ${optionalString (!cfg.includeUserConf) ''
-    rm $support_folder/50-user.conf
-    rm $latest_folder/50-user.conf
-    ''}
-
-    # 51-local.conf
-    rm $latest_folder/51-local.conf
-    substitute \
-      ${pkgs.fontconfig-penultimate}/etc/fonts/conf.d/51-local.conf \
-      $latest_folder/51-local.conf \
-      --replace local.conf /etc/fonts/${latestVersion}/local.conf
-
-    # local.conf (indirect priority 51)
-    ${optionalString (cfg.localConf != "") ''
-    ln -s ${localConf}        $support_folder/../local.conf
-    ln -s ${localConf}        $latest_folder/../local.conf
-    ''}
-
-    # 52-nixos-default-fonts.conf
-    ln -s ${defaultFontsConf} $support_folder/52-nixos-default-fonts.conf
-    ln -s ${defaultFontsConf} $latest_folder/52-nixos-default-fonts.conf
-
-    # 53-no-bitmaps.conf
-    ${optionalString cfg.allowBitmaps ''
-    rm $support_folder/53-no-bitmaps.conf
-    rm $latest_folder/53-no-bitmaps.conf
-    ''}
-
-    ${optionalString (!cfg.allowType1) ''
-    # 53-nixos-reject-type1.conf
-    ln -s ${rejectType1} $support_folder/53-nixos-reject-type1.conf
-    ln -s ${rejectType1} $latest_folder/53-nixos-reject-type1.conf
-    ''}
-  '';
-
-in
-{
-
-  options = {
-
-    fonts = {
-
-      fontconfig = {
-
-        penultimate = {
-          enable = mkOption {
-            type = types.bool;
-            default = false;
-            description = ''
-              Enable fontconfig-penultimate settings to supplement the
-              NixOS defaults by providing per-font rendering defaults and
-              metric aliases.
-            '';
-          };
-        };
-
-      };
-    };
-
-  };
-
-  config = mkIf (config.fonts.fontconfig.enable && config.fonts.fontconfig.penultimate.enable) {
-
-    fonts.fontconfig.confPackages = [ penultimateConf ];
-
-  };
-
-}
diff --git a/nixos/modules/config/fonts/fontconfig.nix b/nixos/modules/config/fonts/fontconfig.nix
index ac2a024eaa8..5b681ca5946 100644
--- a/nixos/modules/config/fonts/fontconfig.nix
+++ b/nixos/modules/config/fonts/fontconfig.nix
@@ -1,11 +1,6 @@
 /*
 
-NixOS support 2 fontconfig versions, "support" and "latest".
-
-- "latest" refers to default fontconfig package (pkgs.fontconfig).
-  configuration files are linked to /etc/fonts/VERSION/conf.d/
-- "support" refers to supportPkg (pkgs."fontconfig_${supportVersion}").
-  configuration files are linked to /etc/fonts/conf.d/
+Configuration files are linked to /etc/fonts/conf.d/
 
 This module generates a package containing configuration files and link it in /etc/fonts.
 
@@ -22,44 +17,25 @@ let
   cfg = config.fonts.fontconfig;
 
   fcBool = x: "<bool>" + (boolToString x) + "</bool>";
-
-  # back-supported fontconfig version and package
-  # version is used for font cache generation
-  supportVersion = "210";
-  supportPkg     = pkgs."fontconfig_${supportVersion}";
-
-  # latest fontconfig version and package
-  # version is used for configuration folder name, /etc/fonts/VERSION/
-  # note: format differs from supportVersion and can not be used with makeCacheConf
-  latestVersion  = pkgs.fontconfig.configVersion;
-  latestPkg      = pkgs.fontconfig;
-
-  # supported version fonts.conf
-  supportFontsConf = pkgs.makeFontsConf { fontconfig = supportPkg; fontDirectories = config.fonts.fonts; };
+  pkg = pkgs.fontconfig;
 
   # configuration file to read fontconfig cache
-  # version dependent
   # priority 0
-  cacheConfSupport = makeCacheConf { version = supportVersion; };
-  cacheConfLatest  = makeCacheConf {};
+  cacheConf  = makeCacheConf {};
 
-  # generate the font cache setting file for a fontconfig version
-  # use latest when no version is passed
+  # generate the font cache setting file
   # When cross-compiling, we can’t generate the cache, so we skip the
   # <cachedir> part. fontconfig still works but is a little slower in
   # looking things up.
-  makeCacheConf = { version ? null }:
+  makeCacheConf = { }:
     let
-      fcPackage = if version == null
-                  then "fontconfig"
-                  else "fontconfig_${version}";
       makeCache = fontconfig: pkgs.makeFontsCache { inherit fontconfig; fontDirectories = config.fonts.fonts; };
-      cache     = makeCache pkgs.${fcPackage};
-      cache32   = makeCache pkgs.pkgsi686Linux.${fcPackage};
+      cache     = makeCache pkgs.fontconfig;
+      cache32   = makeCache pkgs.pkgsi686Linux.fontconfig;
     in
     pkgs.writeText "fc-00-nixos-cache.conf" ''
       <?xml version='1.0'?>
-      <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
+      <!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
       <fontconfig>
         <!-- Font directories -->
         ${concatStringsSep "\n" (map (font: "<dir>${font}</dir>") config.fonts.fonts)}
@@ -77,7 +53,7 @@ let
   # priority 10
   renderConf = pkgs.writeText "fc-10-nixos-rendering.conf" ''
     <?xml version='1.0'?>
-    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
+    <!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
     <fontconfig>
 
       <!-- Default rendering settings -->
@@ -134,7 +110,7 @@ let
     in
     pkgs.writeText "fc-52-nixos-default-fonts.conf" ''
     <?xml version='1.0'?>
-    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
+    <!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
     <fontconfig>
 
       <!-- Default fonts -->
@@ -153,7 +129,7 @@ let
   # priority 53
   rejectBitmaps = pkgs.writeText "fc-53-no-bitmaps.conf" ''
     <?xml version="1.0"?>
-    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+    <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
     <fontconfig>
 
     ${optionalString (!cfg.allowBitmaps) ''
@@ -181,7 +157,7 @@ let
   # priority 53
   rejectType1 = pkgs.writeText "fc-53-nixos-reject-type1.conf" ''
     <?xml version="1.0"?>
-    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+    <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
     <fontconfig>
 
     <!-- Reject Type 1 fonts -->
@@ -200,63 +176,46 @@ let
   confPkg = pkgs.runCommand "fontconfig-conf" {
     preferLocalBuild = true;
   } ''
-    support_folder=$out/etc/fonts/conf.d
-    latest_folder=$out/etc/fonts/${latestVersion}/conf.d
-
-    mkdir -p $support_folder
-    mkdir -p $latest_folder
+    dst=$out/etc/fonts/conf.d
+    mkdir -p $dst
 
     # fonts.conf
-    ln -s ${supportFontsConf} $support_folder/../fonts.conf
-    ln -s ${latestPkg.out}/etc/fonts/fonts.conf \
-          $latest_folder/../fonts.conf
+    ln -s ${pkg.out}/etc/fonts/fonts.conf \
+          $dst/../fonts.conf
+    # TODO: remove this legacy symlink once people stop using packages built before #95358 was merged
+    mkdir -p $out/etc/fonts/2.11
+    ln -s /etc/fonts/fonts.conf \
+          $out/etc/fonts/2.11/fonts.conf
 
     # fontconfig default config files
-    ln -s ${supportPkg.out}/etc/fonts/conf.d/*.conf \
-          $support_folder/
-    ln -s ${latestPkg.out}/etc/fonts/conf.d/*.conf \
-          $latest_folder/
-
-    # update latest 51-local.conf path to look at the latest local.conf
-    rm    $latest_folder/51-local.conf
-
-    substitute ${latestPkg.out}/etc/fonts/conf.d/51-local.conf \
-               $latest_folder/51-local.conf \
-               --replace local.conf /etc/fonts/${latestVersion}/local.conf
+    ln -s ${pkg.out}/etc/fonts/conf.d/*.conf \
+          $dst/
 
     # 00-nixos-cache.conf
-    ln -s ${cacheConfSupport} \
-          $support_folder/00-nixos-cache.conf
-    ln -s ${cacheConfLatest}  $latest_folder/00-nixos-cache.conf
+    ln -s ${cacheConf}  $dst/00-nixos-cache.conf
 
     # 10-nixos-rendering.conf
-    ln -s ${renderConf}       $support_folder/10-nixos-rendering.conf
-    ln -s ${renderConf}       $latest_folder/10-nixos-rendering.conf
+    ln -s ${renderConf}       $dst/10-nixos-rendering.conf
 
     # 50-user.conf
     ${optionalString (!cfg.includeUserConf) ''
-    rm $support_folder/50-user.conf
-    rm $latest_folder/50-user.conf
+    rm $dst/50-user.conf
     ''}
 
     # local.conf (indirect priority 51)
     ${optionalString (cfg.localConf != "") ''
-    ln -s ${localConf}        $support_folder/../local.conf
-    ln -s ${localConf}        $latest_folder/../local.conf
+    ln -s ${localConf}        $dst/../local.conf
     ''}
 
     # 52-nixos-default-fonts.conf
-    ln -s ${defaultFontsConf} $support_folder/52-nixos-default-fonts.conf
-    ln -s ${defaultFontsConf} $latest_folder/52-nixos-default-fonts.conf
+    ln -s ${defaultFontsConf} $dst/52-nixos-default-fonts.conf
 
     # 53-no-bitmaps.conf
-    ln -s ${rejectBitmaps} $support_folder/53-no-bitmaps.conf
-    ln -s ${rejectBitmaps} $latest_folder/53-no-bitmaps.conf
+    ln -s ${rejectBitmaps} $dst/53-no-bitmaps.conf
 
     ${optionalString (!cfg.allowType1) ''
     # 53-nixos-reject-type1.conf
-    ln -s ${rejectType1} $support_folder/53-nixos-reject-type1.conf
-    ln -s ${rejectType1} $latest_folder/53-nixos-reject-type1.conf
+    ln -s ${rejectType1} $dst/53-nixos-reject-type1.conf
     ''}
   '';
 
@@ -490,7 +449,7 @@ in
       environment.systemPackages    = [ pkgs.fontconfig ];
       environment.etc.fonts.source  = "${fontconfigEtc}/etc/fonts/";
     })
-    (mkIf (cfg.enable && !cfg.penultimate.enable) {
+    (mkIf cfg.enable {
       fonts.fontconfig.confPackages = [ confPkg ];
     })
   ];
diff --git a/nixos/modules/config/krb5/default.nix b/nixos/modules/config/krb5/default.nix
index ff16ffcf9c6..c2302451d70 100644
--- a/nixos/modules/config/krb5/default.nix
+++ b/nixos/modules/config/krb5/default.nix
@@ -41,31 +41,30 @@ let
         value)
     else value;
 
-  mkIndent = depth: concatStrings (builtins.genList (_:  " ") (2 * depth));
+  indent = "  ";
 
-  mkRelation = name: value: "${name} = ${mkVal { inherit value; }}";
+  mkRelation = name: value:
+    if (isList value) then
+      concatMapStringsSep "\n" (mkRelation name) value
+    else "${name} = ${mkVal value}";
 
-  mkVal = { value, depth ? 0 }:
+  mkVal = value:
     if (value == true) then "true"
     else if (value == false) then "false"
     else if (isInt value) then (toString value)
-    else if (isList value) then
-      concatMapStringsSep " " mkVal { inherit value depth; }
     else if (isAttrs value) then
-      (concatStringsSep "\n${mkIndent (depth + 1)}"
-        ([ "{" ] ++ (mapAttrsToList
-          (attrName: attrValue: let
-            mappedAttrValue = mkVal {
-              value = attrValue;
-              depth = depth + 1;
-            };
-          in "${attrName} = ${mappedAttrValue}")
-        value))) + "\n${mkIndent depth}}"
+      let configLines = concatLists
+        (map (splitString "\n")
+          (mapAttrsToList mkRelation value));
+      in
+      (concatStringsSep "\n${indent}"
+        ([ "{" ] ++ configLines))
+      + "\n}"
     else value;
 
   mkMappedAttrsOrString = value: concatMapStringsSep "\n"
     (line: if builtins.stringLength line > 0
-      then "${mkIndent 1}${line}"
+      then "${indent}${line}"
       else line)
     (splitString "\n"
       (if isAttrs value then
@@ -114,7 +113,10 @@ in {
           {
             "ATHENA.MIT.EDU" = {
               admin_server = "athena.mit.edu";
-              kdc = "athena.mit.edu";
+              kdc = [
+                "athena01.mit.edu"
+                "athena02.mit.edu"
+              ];
             };
           };
         '';
diff --git a/nixos/modules/config/no-x-libs.nix b/nixos/modules/config/no-x-libs.nix
index 873b8073fed..941ab78f863 100644
--- a/nixos/modules/config/no-x-libs.nix
+++ b/nixos/modules/config/no-x-libs.nix
@@ -27,6 +27,7 @@ with lib;
     fonts.fontconfig.enable = false;
 
     nixpkgs.overlays = singleton (const (super: {
+      cairo = super.cairo.override { x11Support = false; };
       dbus = super.dbus.override { x11Support = false; };
       networkmanager-fortisslvpn = super.networkmanager-fortisslvpn.override { withGnome = false; };
       networkmanager-l2tp = super.networkmanager-l2tp.override { withGnome = false; };
@@ -35,6 +36,7 @@ with lib;
       networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; };
       networkmanager-iodine = super.networkmanager-iodine.override { withGnome = false; };
       gobject-introspection = super.gobject-introspection.override { x11Support = false; };
+      qemu = super.qemu.override { gtkSupport = false; spiceSupport = false; sdlSupport = false; };
     }));
   };
 }
diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix
index ae9710e3518..b3c5c6f93f3 100644
--- a/nixos/modules/config/system-path.nix
+++ b/nixos/modules/config/system-path.nix
@@ -33,14 +33,11 @@ let
       pkgs.ncurses
       pkgs.netcat
       config.programs.ssh.package
-      pkgs.perl
       pkgs.procps
-      pkgs.rsync
-      pkgs.strace
       pkgs.su
       pkgs.time
       pkgs.utillinux
-      pkgs.which # 88K size
+      pkgs.which
       pkgs.zstd
     ];
 
diff --git a/nixos/modules/config/update-users-groups.pl b/nixos/modules/config/update-users-groups.pl
index 15e448b787a..e1c7a46e430 100644
--- a/nixos/modules/config/update-users-groups.pl
+++ b/nixos/modules/config/update-users-groups.pl
@@ -281,3 +281,58 @@ foreach my $u (values %usersOut) {
 }
 
 updateFile("/etc/shadow", \@shadowNew, 0600);
+
+# Rewrite /etc/subuid & /etc/subgid to include default container mappings
+
+my $subUidMapFile = "/var/lib/nixos/auto-subuid-map";
+my $subUidMap = -e $subUidMapFile ? decode_json(read_file($subUidMapFile)) : {};
+
+my (%subUidsUsed, %subUidsPrevUsed);
+
+$subUidsPrevUsed{$_} = 1 foreach values %{$subUidMap};
+
+sub allocSubUid {
+    my ($name, @rest) = @_;
+
+    # TODO: No upper bounds?
+    my ($min, $max, $up) = (100000, 100000 * 100, 1);
+    my $prevId = $subUidMap->{$name};
+    if (defined $prevId && !defined $subUidsUsed{$prevId}) {
+        $subUidsUsed{$prevId} = 1;
+        return $prevId;
+    }
+
+    my $id = allocId(\%subUidsUsed, \%subUidsPrevUsed, $min, $max, $up, sub { my ($uid) = @_; getpwuid($uid) });
+    my $offset = $id - 100000;
+    my $count = $offset * 65536;
+    my $subordinate = 100000 + $count;
+    return $subordinate;
+}
+
+my @subGids;
+my @subUids;
+foreach my $u (values %usersOut) {
+    my $name = $u->{name};
+
+    foreach my $range (@{$u->{subUidRanges}}) {
+        my $value = join(":", ($name, $range->{startUid}, $range->{count}));
+        push @subUids, $value;
+    }
+
+    foreach my $range (@{$u->{subGidRanges}}) {
+        my $value = join(":", ($name, $range->{startGid}, $range->{count}));
+        push @subGids, $value;
+    }
+
+    if($u->{isNormalUser}) {
+        my $subordinate = allocSubUid($name);
+        $subUidMap->{$name} = $subordinate;
+        my $value = join(":", ($name, $subordinate, 65536));
+        push @subUids, $value;
+        push @subGids, $value;
+    }
+}
+
+updateFile("/etc/subuid", join("\n", @subUids) . "\n");
+updateFile("/etc/subgid", join("\n", @subGids) . "\n");
+updateFile($subUidMapFile, encode_json($subUidMap) . "\n");
diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix
index 8defa86818a..0ab303d0ae4 100644
--- a/nixos/modules/config/users-groups.nix
+++ b/nixos/modules/config/users-groups.nix
@@ -6,6 +6,16 @@ let
   ids = config.ids;
   cfg = config.users;
 
+  # Check whether a password hash will allow login.
+  allowsLogin = hash:
+    hash == "" # login without password
+    || !(lib.elem hash
+      [ null   # password login disabled
+        "!"    # password login disabled
+        "!!"   # a variant of "!"
+        "*"    # password unset
+      ]);
+
   passwordDescription = ''
     The options <option>hashedPassword</option>,
     <option>password</option> and <option>passwordFile</option>
@@ -25,8 +35,19 @@ let
   '';
 
   hashedPasswordDescription = ''
-    To generate hashed password install <literal>mkpasswd</literal>
+    To generate a hashed password install the <literal>mkpasswd</literal>
     package and run <literal>mkpasswd -m sha-512</literal>.
+
+    If set to an empty string (<literal>""</literal>), this user will
+    be able to log in without being asked for a password (but not via remote
+    services such as SSH, or indirectly via <command>su</command> or
+    <command>sudo</command>). This should only be used for e.g. bootable
+    live systems. Note: this is different from setting an empty password,
+    which ca be achieved using <option>users.users.&lt;name?&gt;.password</option>.
+
+    If set to <literal>null</literal> (default) this user will not
+    be able to log in using a password (i.e. via <command>login</command>
+    command).
   '';
 
   userOpts = { name, config, ... }: {
@@ -354,18 +375,6 @@ let
     };
   };
 
-  mkSubuidEntry = user: concatStrings (
-    map (range: "${user.name}:${toString range.startUid}:${toString range.count}\n")
-      user.subUidRanges);
-
-  subuidFile = concatStrings (map mkSubuidEntry (attrValues cfg.users));
-
-  mkSubgidEntry = user: concatStrings (
-    map (range: "${user.name}:${toString range.startGid}:${toString range.count}\n")
-        user.subGidRanges);
-
-  subgidFile = concatStrings (map mkSubgidEntry (attrValues cfg.users));
-
   idsAreUnique = set: idAttr: !(fold (name: args@{ dup, acc }:
     let
       id = builtins.toString (builtins.getAttr idAttr (builtins.getAttr name set));
@@ -385,6 +394,7 @@ let
       { inherit (u)
           name uid group description home createHome isSystemUser
           password passwordFile hashedPassword
+          isNormalUser subUidRanges subGidRanges
           initialPassword initialHashedPassword;
         shell = utils.toShellPath u.shell;
       }) cfg.users;
@@ -406,6 +416,12 @@ in {
   imports = [
     (mkAliasOptionModule [ "users" "extraUsers" ] [ "users" "users" ])
     (mkAliasOptionModule [ "users" "extraGroups" ] [ "users" "groups" ])
+    (mkChangedOptionModule
+      [ "security" "initialRootPassword" ]
+      [ "users" "users" "root" "initialHashedPassword" ]
+      (cfg: if cfg.security.initialRootPassword == "!"
+            then null
+            else cfg.security.initialRootPassword))
   ];
 
   ###### interface
@@ -447,7 +463,7 @@ in {
 
     users.users = mkOption {
       default = {};
-      type = with types; loaOf (submodule userOpts);
+      type = with types; attrsOf (submodule userOpts);
       example = {
         alice = {
           uid = 1234;
@@ -471,20 +487,12 @@ in {
         { students.gid = 1001;
           hackers = { };
         };
-      type = with types; loaOf (submodule groupOpts);
+      type = with types; attrsOf (submodule groupOpts);
       description = ''
         Additional groups to be created automatically by the system.
       '';
     };
 
-    # FIXME: obsolete - will remove.
-    security.initialRootPassword = mkOption {
-      type = types.str;
-      default = "!";
-      example = "";
-      visible = false;
-    };
-
   };
 
 
@@ -499,7 +507,6 @@ in {
         home = "/root";
         shell = mkDefault cfg.defaultUserShell;
         group = "root";
-        initialHashedPassword = mkDefault config.security.initialRootPassword;
       };
       nobody = {
         uid = ids.uids.nobody;
@@ -549,16 +556,7 @@ in {
     # Install all the user shells
     environment.systemPackages = systemShells;
 
-    environment.etc = {
-      subuid = {
-        text = subuidFile;
-        mode = "0644";
-      };
-      subgid = {
-        text = subgidFile;
-        mode = "0644";
-      };
-    } // (mapAttrs' (name: { packages, ... }: {
+    environment.etc = (mapAttrs' (name: { packages, ... }: {
       name = "profiles/per-user/${name}";
       value.source = pkgs.buildEnv {
         name = "user-environment";
@@ -583,22 +581,34 @@ 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:
+          any id ((mapAttrsToList (name: cfg:
             (name == "root"
              || cfg.group == "wheel"
              || elem "wheel" cfg.extraGroups)
             &&
-            ((cfg.hashedPassword != null && cfg.hashedPassword != "!")
+            (allowsLogin cfg.hashedPassword
              || cfg.password != null
              || cfg.passwordFile != null
              || cfg.openssh.authorizedKeys.keys != []
              || cfg.openssh.authorizedKeys.keyFiles != [])
-          ) cfg.users);
+          ) cfg.users) ++ [
+            config.security.googleOsLogin.enable
+          ]);
         message = ''
           Neither the root account nor any wheel user has a password or SSH authorized key.
           You must set one to prevent being locked out of your system.'';
       }
-    ];
+    ] ++ flip mapAttrsToList cfg.users (name: user:
+      {
+        assertion = (user.hashedPassword != null)
+                    -> (builtins.match ".*:.*" user.hashedPassword == null);
+        message = ''
+          The password hash of 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`.'';
+      }
+    );
 
     warnings =
       builtins.filter (x: x != null) (
@@ -621,14 +631,13 @@ in {
           content = "${base64}${sep}${base64}";
           mcf = "^${sep}${scheme}${sep}${content}$";
         in
-        if (user.hashedPassword != null
+        if (allowsLogin user.hashedPassword
+            && user.hashedPassword != ""  # login without password
             && builtins.match mcf user.hashedPassword == null)
-        then
-        ''
+        then ''
           The password hash of 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."${name}".hashedPassword`.''
         else null
       ));
 
diff --git a/nixos/modules/hardware/bladeRF.nix b/nixos/modules/hardware/bladeRF.nix
index 92544347714..35b74b8382e 100644
--- a/nixos/modules/hardware/bladeRF.nix
+++ b/nixos/modules/hardware/bladeRF.nix
@@ -25,4 +25,4 @@ in
     services.udev.packages = [ pkgs.libbladeRF ];
     users.groups.bladerf = {};
   };
-}
\ No newline at end of file
+}
diff --git a/nixos/modules/hardware/ckb-next.nix b/nixos/modules/hardware/ckb-next.nix
index fe0ca9f26d5..6932be1c54c 100644
--- a/nixos/modules/hardware/ckb-next.nix
+++ b/nixos/modules/hardware/ckb-next.nix
@@ -43,7 +43,6 @@ in
         serviceConfig = {
           ExecStart = "${cfg.package}/bin/ckb-next-daemon ${optionalString (cfg.gid != null) "--gid=${builtins.toString cfg.gid}"}";
           Restart = "on-failure";
-          StandardOutput = "syslog";
         };
       };
     };
diff --git a/nixos/modules/hardware/logitech.nix b/nixos/modules/hardware/logitech.nix
index d6f43bdddcc..3ebe6aacf5d 100644
--- a/nixos/modules/hardware/logitech.nix
+++ b/nixos/modules/hardware/logitech.nix
@@ -5,24 +5,92 @@ with lib;
 let
   cfg = config.hardware.logitech;
 
-in {
+  vendor = "046d";
+
+  daemon = "g15daemon";
+
+in
+{
+  imports = [
+    (mkRenamedOptionModule [ "hardware" "logitech" "enable" ] [ "hardware" "logitech" "wireless" "enable" ])
+    (mkRenamedOptionModule [ "hardware" "logitech" "enableGraphical" ] [ "hardware" "logitech" "wireless" "enableGraphical" ])
+  ];
+
   options.hardware.logitech = {
-    enable = mkEnableOption "Logitech Devices";
 
-    enableGraphical = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Enable graphical support applications.";
+    lcd = {
+      enable = mkEnableOption "Logitech LCD Devices";
+
+      startWhenNeeded = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Only run the service when an actual supported device is plugged.
+        '';
+      };
+
+      devices = mkOption {
+        type = types.listOf types.str;
+        default = [ "0a07" "c222" "c225" "c227" "c251" ];
+        description = ''
+          List of USB device ids supported by g15daemon.
+          </para>
+          <para>
+          You most likely do not need to change this.
+        '';
+      };
+    };
+
+    wireless = {
+      enable = mkEnableOption "Logitech Wireless Devices";
+
+      enableGraphical = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Enable graphical support applications.";
+      };
     };
   };
 
-  config = lib.mkIf cfg.enable {
-    environment.systemPackages = [
-      pkgs.ltunify
-    ] ++ lib.optional cfg.enableGraphical pkgs.solaar;
+  config = lib.mkIf (cfg.wireless.enable || cfg.lcd.enable) {
+    environment.systemPackages = []
+      ++ lib.optional cfg.wireless.enable pkgs.ltunify
+      ++ lib.optional cfg.wireless.enableGraphical pkgs.solaar;
+
+    services.udev = {
+      # ltunifi and solaar both provide udev rules but the most up-to-date have been split
+      # out into a dedicated derivation
 
-    # ltunifi and solaar both provide udev rules but the most up-to-date have been split
-    # out into a dedicated derivation
-    services.udev.packages = with pkgs; [ logitech-udev-rules ];
+      packages = []
+      ++ lib.optional cfg.wireless.enable pkgs.logitech-udev-rules
+      ++ lib.optional cfg.lcd.enable pkgs.g15daemon;
+
+      extraRules = ''
+        # nixos: hardware.logitech.lcd
+      '' + lib.concatMapStringsSep "\n" (
+        dev:
+          ''ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="${vendor}", ATTRS{idProduct}=="${dev}", TAG+="systemd", ENV{SYSTEMD_WANTS}+="${daemon}.service"''
+      ) cfg.lcd.devices;
+    };
+
+    systemd.services."${daemon}" = lib.mkIf cfg.lcd.enable {
+      description = "Logitech LCD Support Daemon";
+      documentation = [ "man:g15daemon(1)" ];
+      wantedBy = lib.mkIf (! cfg.lcd.startWhenNeeded) "multi-user.target";
+
+      serviceConfig = {
+        Type = "forking";
+        ExecStart = "${pkgs.g15daemon}/bin/g15daemon";
+        # we patch it to write to /run/g15daemon/g15daemon.pid instead of
+        # /run/g15daemon.pid so systemd will do the cleanup for us.
+        PIDFile = "/run/${daemon}/g15daemon.pid";
+        PrivateTmp = true;
+        PrivateNetwork = true;
+        ProtectHome = "tmpfs";
+        ProtectSystem = "full"; # strict doesn't work
+        RuntimeDirectory = daemon;
+        Restart = "on-failure";
+      };
+    };
   };
 }
diff --git a/nixos/modules/hardware/onlykey.nix b/nixos/modules/hardware/onlykey.nix
index b6820fe0191..07358c8a878 100644
--- a/nixos/modules/hardware/onlykey.nix
+++ b/nixos/modules/hardware/onlykey.nix
@@ -26,7 +26,7 @@ with lib;
   ####### implementation
 
   config = mkIf config.hardware.onlykey.enable {
-    services.udev.extraRules = builtin.readFile ./onlykey.udev;
+    services.udev.extraRules = builtins.readFile ./onlykey.udev;
   };
 
 
diff --git a/nixos/modules/hardware/tuxedo-keyboard.nix b/nixos/modules/hardware/tuxedo-keyboard.nix
index 898eed24493..97af7c61f3c 100644
--- a/nixos/modules/hardware/tuxedo-keyboard.nix
+++ b/nixos/modules/hardware/tuxedo-keyboard.nix
@@ -2,7 +2,7 @@
 
 with lib;
 
-let 
+let
   cfg = config.hardware.tuxedo-keyboard;
   tuxedo-keyboard = config.boot.kernelPackages.tuxedo-keyboard;
 in
@@ -27,7 +27,7 @@ in
       '';
     };
 
-    config = mkIf cfg.enable 
+    config = mkIf cfg.enable
     {
       boot.kernelModules = ["tuxedo_keyboard"];
       boot.extraModulePackages = [ tuxedo-keyboard ];
diff --git a/nixos/modules/hardware/video/hidpi.nix b/nixos/modules/hardware/video/hidpi.nix
new file mode 100644
index 00000000000..ac72b652504
--- /dev/null
+++ b/nixos/modules/hardware/video/hidpi.nix
@@ -0,0 +1,16 @@
+{ lib, pkgs, config, ...}:
+with lib;
+
+{
+  options.hardware.video.hidpi.enable = mkEnableOption "Font/DPI configuration optimized for HiDPI displays";
+
+  config = mkIf config.hardware.video.hidpi.enable {
+    console.font = lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-v32n.psf.gz";
+
+    # Needed when typing in passwords for full disk encryption
+    console.earlySetup = mkDefault true;
+    boot.loader.systemd-boot.consoleMode = mkDefault "1";
+
+    # TODO Find reasonable defaults X11 & wayland
+  };
+}
diff --git a/nixos/modules/hardware/video/uvcvideo/default.nix b/nixos/modules/hardware/video/uvcvideo/default.nix
index 7e3e94fdf2b..cf6aa052abb 100644
--- a/nixos/modules/hardware/video/uvcvideo/default.nix
+++ b/nixos/modules/hardware/video/uvcvideo/default.nix
@@ -26,7 +26,7 @@ in
           Whether to enable <command>uvcvideo</command> dynamic controls.
 
           Note that enabling this brings the <command>uvcdynctrl</command> tool
-          into your environement and register all dynamic controls from
+          into your environment and register all dynamic controls from
           specified <command>packages</command> to the <command>uvcvideo</command> driver.
         '';
       };
diff --git a/nixos/modules/hardware/xpadneo.nix b/nixos/modules/hardware/xpadneo.nix
new file mode 100644
index 00000000000..d504697e61f
--- /dev/null
+++ b/nixos/modules/hardware/xpadneo.nix
@@ -0,0 +1,29 @@
+{ config, lib, ... }:
+
+with lib;
+let
+  cfg = config.hardware.xpadneo;
+in
+{
+  options.hardware.xpadneo = {
+    enable = mkEnableOption "the xpadneo driver for Xbox One wireless controllers";
+  };
+
+  config = mkIf cfg.enable {
+    boot = {
+      # Must disable Enhanced Retransmission Mode to support bluetooth pairing
+      # https://wiki.archlinux.org/index.php/Gamepad#Connect_Xbox_Wireless_Controller_with_Bluetooth
+      extraModprobeConfig =
+        mkIf
+          config.hardware.bluetooth.enable
+          "options bluetooth disable_ertm=1";
+
+      extraModulePackages = with config.boot.kernelPackages; [ xpadneo ];
+      kernelModules = [ "hid_xpadneo" ];
+    };
+  };
+
+  meta = {
+    maintainers = with maintainers; [ metadark ];
+  };
+}
diff --git a/nixos/modules/i18n/input-method/ibus.nix b/nixos/modules/i18n/input-method/ibus.nix
index b4746b21b65..cf24ecf5863 100644
--- a/nixos/modules/i18n/input-method/ibus.nix
+++ b/nixos/modules/i18n/input-method/ibus.nix
@@ -64,7 +64,7 @@ in
     # Without dconf enabled it is impossible to use IBus
     programs.dconf.enable = true;
 
-    programs.dconf.profiles.ibus = "${ibusPackage}/etc/dconf/profile/ibus";
+    programs.dconf.packages = [ ibusPackage ];
 
     services.dbus.packages = [
       ibusAutostart
diff --git a/nixos/modules/i18n/input-method/uim.nix b/nixos/modules/i18n/input-method/uim.nix
index 7ad68bf851f..459294657e0 100644
--- a/nixos/modules/i18n/input-method/uim.nix
+++ b/nixos/modules/i18n/input-method/uim.nix
@@ -2,7 +2,7 @@
 
 with lib;
 
-let 
+let
   cfg = config.i18n.inputMethod.uim;
 in
 {
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix
index 3707c4b7ec6..8c98691116d 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix
@@ -11,15 +11,17 @@ with lib;
 
   services.xserver.desktopManager.gnome3.enable = true;
 
-  services.xserver.displayManager.gdm = {
-    enable = true;
-    # autoSuspend makes the machine automatically suspend after inactivity.
-    # It's possible someone could/try to ssh'd into the machine and obviously
-    # have issues because it's inactive.
-    # See:
-    # * https://github.com/NixOS/nixpkgs/pull/63790
-    # * https://gitlab.gnome.org/GNOME/gnome-control-center/issues/22
-    autoSuspend = false;
+  services.xserver.displayManager = {
+    gdm = {
+      enable = true;
+      # autoSuspend makes the machine automatically suspend after inactivity.
+      # It's possible someone could/try to ssh'd into the machine and obviously
+      # have issues because it's inactive.
+      # See:
+      # * https://github.com/NixOS/nixpkgs/pull/63790
+      # * https://gitlab.gnome.org/GNOME/gnome-control-center/issues/22
+      autoSuspend = false;
+    };
     autoLogin = {
       enable = true;
       user = "nixos";
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix
index e76e06654ac..098c2b2870b 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix
@@ -16,8 +16,8 @@ with lib;
     };
 
     # Automatically login as nixos.
-    displayManager.sddm = {
-      enable = true;
+    displayManager = {
+      sddm.enable = true;
       autoLogin = {
         enable = true;
         user = "nixos";
diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix
index 1cd2252ecf2..405fbfa10db 100644
--- a/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -417,6 +417,14 @@ in
       '';
     };
 
+    isoImage.squashfsCompression = mkOption {
+      default = "xz -Xdict-size 100%";
+      description = ''
+        Compression settings to use for the squashfs nix store.
+      '';
+      example = "zstd -Xcompression-level 6";
+    };
+
     isoImage.edition = mkOption {
       default = "";
       description = ''
@@ -614,6 +622,7 @@ in
     # Create the squashfs image that contains the Nix store.
     system.build.squashfsStore = pkgs.callPackage ../../../lib/make-squashfs.nix {
       storeContents = config.isoImage.storeContents;
+      comp = config.isoImage.squashfsCompression;
     };
 
     # Individual files to be included on the CD, outside of the Nix
diff --git a/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix b/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
index 79c835dc390..87545e84203 100644
--- a/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
+++ b/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
@@ -27,7 +27,7 @@
   };
 
   fileSystems."/boot/firmware" = {
-    # This effectively "renames" the loaOf entry set in sd-image.nix
+    # This effectively "renames" the attrsOf entry set in sd-image.nix
     mountPoint = "/boot";
     neededForBoot = true;
   };
diff --git a/nixos/modules/installer/cd-dvd/sd-image.nix b/nixos/modules/installer/cd-dvd/sd-image.nix
index ddad1116c94..231c7bf0a6c 100644
--- a/nixos/modules/installer/cd-dvd/sd-image.nix
+++ b/nixos/modules/installer/cd-dvd/sd-image.nix
@@ -108,6 +108,15 @@ in
       '';
     };
 
+    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;
@@ -197,6 +206,9 @@ in
         # 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
diff --git a/nixos/modules/installer/cd-dvd/system-tarball-pc-readme.txt b/nixos/modules/installer/cd-dvd/system-tarball-pc-readme.txt
index 84252f292c5..887bf60d0fb 100644
--- a/nixos/modules/installer/cd-dvd/system-tarball-pc-readme.txt
+++ b/nixos/modules/installer/cd-dvd/system-tarball-pc-readme.txt
@@ -63,7 +63,7 @@ Activate the system: look for a directory in nix/store similar to:
 Having found it, activate that nixos system *twice*:
   chroot . /nix/store/SOMETHING-nixos-SOMETHING/activate
   chroot . /nix/store/SOMETHING-nixos-SOMETHING/activate
-  
+
 This runs a 'hostname' command. Restore your old hostname with:
   hostname OLDHOSTNAME
 
diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix
index 35a7b382b7c..a15a2dbadb8 100644
--- a/nixos/modules/installer/tools/nix-fallback-paths.nix
+++ b/nixos/modules/installer/tools/nix-fallback-paths.nix
@@ -1,6 +1,6 @@
 {
-  x86_64-linux = "/nix/store/j8dbv5w6jl34caywh2ygdy88knx1mdf7-nix-2.3.6";
-  i686-linux = "/nix/store/9fqvbdisahqp0238vrs7wn5anpri0a65-nix-2.3.6";
-  aarch64-linux = "/nix/store/72pwn0nm9bjqx9vpi8sgh4bl6g5wh814-nix-2.3.6";
-  x86_64-darwin = "/nix/store/g37vk77m90p5zcl5nixjlzp3vqpisfn5-nix-2.3.6";
+  x86_64-linux = "/nix/store/4vz8sh9ngx34ivi0bw5hlycxdhvy5hvz-nix-2.3.7";
+  i686-linux = "/nix/store/dzxkg9lpp60bjmzvagns42vqlz3yq5kx-nix-2.3.7";
+  aarch64-linux = "/nix/store/cfvf8nl8mwyw817by5y8zd3s8pnf5m9f-nix-2.3.7";
+  x86_64-darwin = "/nix/store/5ira7xgs92inqz1x8l0n1wci4r79hnd0-nix-2.3.7";
 }
diff --git a/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh b/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh
index 25106733087..2a6c3ab1149 100644
--- a/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh
+++ b/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh
@@ -1,4 +1,4 @@
-#! @shell@ -e
+#! @runtimeShell@ -e
 
 # Shows the usage of this command to the user
 
diff --git a/nixos/modules/installer/tools/nixos-enter.sh b/nixos/modules/installer/tools/nixos-enter.sh
index 1fdd4627a90..c72ef6e9c28 100644
--- a/nixos/modules/installer/tools/nixos-enter.sh
+++ b/nixos/modules/installer/tools/nixos-enter.sh
@@ -1,4 +1,4 @@
-#! @shell@
+#! @runtimeShell@
 
 set -e
 
diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl
index 157dc28e0a8..c8303a6eb60 100644
--- a/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -497,8 +497,8 @@ if (-f $fb_modes_file && -r $fb_modes_file) {
     $modes =~ m/([0-9]+)x([0-9]+)/;
     my $console_width = $1, my $console_height = $2;
     if ($console_width > 1920) {
-        push @attrs, "# High-DPI console";
-        push @attrs, 'console.font = lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-u28n.psf.gz";';
+        push @attrs, "# high-resolution display";
+        push @attrs, 'hardware.video.hidpi.enable = lib.mkDefault true;';
     }
 }
 
diff --git a/nixos/modules/installer/tools/nixos-install.sh b/nixos/modules/installer/tools/nixos-install.sh
index 1bccbbfaf24..a180d1bc4c1 100644
--- a/nixos/modules/installer/tools/nixos-install.sh
+++ b/nixos/modules/installer/tools/nixos-install.sh
@@ -1,4 +1,4 @@
-#! @shell@
+#! @runtimeShell@
 
 set -e
 shopt -s nullglob
@@ -10,6 +10,7 @@ umask 0022
 
 # Parse the command line for the -I flag
 extraBuildFlags=()
+flakeFlags=()
 
 mountPoint=/mnt
 channelPath=
@@ -34,6 +35,23 @@ while [ "$#" -gt 0 ]; do
         --system|--closure)
             system="$1"; shift 1
             ;;
+        --flake)
+          flake="$1"
+          flakeFlags=(--experimental-features 'nix-command flakes')
+          shift 1
+          ;;
+        --recreate-lock-file|--no-update-lock-file|--no-write-lock-file|--no-registries|--commit-lock-file)
+          lockFlags+=("$i")
+          ;;
+        --update-input)
+          j="$1"; shift 1
+          lockFlags+=("$i" "$j")
+          ;;
+        --override-input)
+          j="$1"; shift 1
+          k="$1"; shift 1
+          lockFlags+=("$i" "$j" "$k")
+          ;;
         --channel)
             channelPath="$1"; shift 1
             ;;
@@ -71,6 +89,17 @@ if ! test -e "$mountPoint"; then
     exit 1
 fi
 
+# Verify permissions are okay-enough
+checkPath="$(realpath "$mountPoint")"
+while [[ "$checkPath" != "/" ]]; do
+    mode="$(stat -c '%a' "$checkPath")"
+    if [[ "${mode: -1}" -lt "5" ]]; then
+        echo "path $checkPath should have permissions 755, but had permissions $mode. Consider running 'chmod o+rx $checkPath'."
+        exit 1
+    fi
+    checkPath="$(dirname "$checkPath")"
+done
+
 # Get the path of the NixOS configuration file.
 if [[ -z $NIXOS_CONFIG ]]; then
     NIXOS_CONFIG=$mountPoint/etc/nixos/configuration.nix
@@ -81,14 +110,32 @@ if [[ ${NIXOS_CONFIG:0:1} != / ]]; then
     exit 1
 fi
 
-if [[ ! -e $NIXOS_CONFIG && -z $system ]]; then
+if [[ -n $flake ]]; then
+    if [[ $flake =~ ^(.*)\#([^\#\"]*)$ ]]; then
+       flake="${BASH_REMATCH[1]}"
+       flakeAttr="${BASH_REMATCH[2]}"
+    fi
+    if [[ -z "$flakeAttr" ]]; then
+        echo "Please specify the name of the NixOS configuration to be installed, as a URI fragment in the flake-uri."
+        echo "For example, to use the output nixosConfigurations.foo from the flake.nix, append \"#foo\" to the flake-uri."
+        exit 1
+    fi
+    flakeAttr="nixosConfigurations.\"$flakeAttr\""
+fi
+
+# Resolve the flake.
+if [[ -n $flake ]]; then
+    flake=$(nix "${flakeFlags[@]}" flake info --json "${extraBuildFlags[@]}" "${lockFlags[@]}" -- "$flake" | jq -r .url)
+fi
+
+if [[ ! -e $NIXOS_CONFIG && -z $system && -z $flake ]]; then
     echo "configuration file $NIXOS_CONFIG doesn't exist"
     exit 1
 fi
 
 # A place to drop temporary stuff.
-tmpdir="$(mktemp -d -p $mountPoint)"
-trap "rm -rf $tmpdir" EXIT
+tmpdir="$(mktemp -d -p "$mountPoint")"
+trap 'rm -rf $tmpdir' EXIT
 
 # store temporary files on target filesystem by default
 export TMPDIR=${TMPDIR:-$tmpdir}
@@ -97,12 +144,19 @@ sub="auto?trusted=1"
 
 # Build the system configuration in the target filesystem.
 if [[ -z $system ]]; then
-    echo "building the configuration in $NIXOS_CONFIG..."
     outLink="$tmpdir/system"
-    nix-build --out-link "$outLink" --store "$mountPoint" "${extraBuildFlags[@]}" \
-        --extra-substituters "$sub" \
-        '<nixpkgs/nixos>' -A system -I "nixos-config=$NIXOS_CONFIG" ${verbosity[@]}
-    system=$(readlink -f $outLink)
+    if [[ -z $flake ]]; then
+        echo "building the configuration in $NIXOS_CONFIG..."
+        nix-build --out-link "$outLink" --store "$mountPoint" "${extraBuildFlags[@]}" \
+            --extra-substituters "$sub" \
+            '<nixpkgs/nixos>' -A system -I "nixos-config=$NIXOS_CONFIG" "${verbosity[@]}"
+    else
+        echo "building the flake in $flake..."
+        nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.toplevel" \
+            --extra-substituters "$sub" "${verbosity[@]}" \
+            "${extraBuildFlags[@]}" "${lockFlags[@]}" --out-link "$outLink"
+    fi
+    system=$(readlink -f "$outLink")
 fi
 
 # Set the system profile to point to the configuration. TODO: combine
@@ -110,7 +164,7 @@ fi
 # a progress bar.
 nix-env --store "$mountPoint" "${extraBuildFlags[@]}" \
         --extra-substituters "$sub" \
-        -p $mountPoint/nix/var/nix/profiles/system --set "$system" ${verbosity[@]}
+        -p "$mountPoint"/nix/var/nix/profiles/system --set "$system" "${verbosity[@]}"
 
 # Copy the NixOS/Nixpkgs sources to the target as the initial contents
 # of the NixOS channel.
@@ -120,12 +174,12 @@ if [[ -z $noChannelCopy ]]; then
     fi
     if [[ -n $channelPath ]]; then
         echo "copying channel..."
-        mkdir -p $mountPoint/nix/var/nix/profiles/per-user/root
+        mkdir -p "$mountPoint"/nix/var/nix/profiles/per-user/root
         nix-env --store "$mountPoint" "${extraBuildFlags[@]}" --extra-substituters "$sub" \
-                -p $mountPoint/nix/var/nix/profiles/per-user/root/channels --set "$channelPath" --quiet \
-                ${verbosity[@]}
-        install -m 0700 -d $mountPoint/root/.nix-defexpr
-        ln -sfn /nix/var/nix/profiles/per-user/root/channels $mountPoint/root/.nix-defexpr/channels
+                -p "$mountPoint"/nix/var/nix/profiles/per-user/root/channels --set "$channelPath" --quiet \
+                "${verbosity[@]}"
+        install -m 0700 -d "$mountPoint"/root/.nix-defexpr
+        ln -sfn /nix/var/nix/profiles/per-user/root/channels "$mountPoint"/root/.nix-defexpr/channels
     fi
 fi
 
@@ -139,7 +193,7 @@ touch "$mountPoint/etc/NIXOS"
 if [[ -z $noBootLoader ]]; then
     echo "installing the boot loader..."
     # Grub needs an mtab.
-    ln -sfn /proc/mounts $mountPoint/etc/mtab
+    ln -sfn /proc/mounts "$mountPoint"/etc/mtab
     NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root "$mountPoint" -- /run/current-system/bin/switch-to-configuration boot
 fi
 
diff --git a/nixos/modules/installer/tools/nixos-option/nixos-option.cc b/nixos/modules/installer/tools/nixos-option/nixos-option.cc
index 1a7b07a74f8..f779d82edbd 100644
--- a/nixos/modules/installer/tools/nixos-option/nixos-option.cc
+++ b/nixos/modules/installer/tools/nixos-option/nixos-option.cc
@@ -224,7 +224,7 @@ bool optionTypeIs(Context & ctx, Value & v, const std::string & soughtType)
 
 bool isAggregateOptionType(Context & ctx, Value & v)
 {
-    return optionTypeIs(ctx, v, "attrsOf") || optionTypeIs(ctx, v, "listOf") || optionTypeIs(ctx, v, "loaOf");
+    return optionTypeIs(ctx, v, "attrsOf") || optionTypeIs(ctx, v, "listOf");
 }
 
 MakeError(OptionPathError, EvalError);
diff --git a/nixos/modules/installer/tools/nixos-rebuild.sh b/nixos/modules/installer/tools/nixos-rebuild.sh
index 354274478a3..ad40fd2811d 100644
--- a/nixos/modules/installer/tools/nixos-rebuild.sh
+++ b/nixos/modules/installer/tools/nixos-rebuild.sh
@@ -1,6 +1,6 @@
-#! @shell@
+#! @runtimeShell@
 
-if [ -x "@shell@" ]; then export SHELL="@shell@"; fi;
+if [ -x "@runtimeShell@" ]; then export SHELL="@runtimeShell@"; fi;
 
 set -e
 set -o pipefail
@@ -17,6 +17,7 @@ showSyntax() {
 origArgs=("$@")
 extraBuildFlags=()
 lockFlags=()
+flakeFlags=()
 action=
 buildNix=1
 fast=
@@ -99,6 +100,7 @@ while [ "$#" -gt 0 ]; do
         ;;
       --flake)
         flake="$1"
+        flakeFlags=(--experimental-features 'nix-command flakes')
         shift 1
         ;;
       --recreate-lock-file|--no-update-lock-file|--no-write-lock-file|--no-registries|--commit-lock-file)
@@ -281,16 +283,19 @@ fi
 
 # Resolve the flake.
 if [[ -n $flake ]]; then
-    flake=$(nix flake info --json "${extraBuildFlags[@]}" "${lockFlags[@]}" -- "$flake" | jq -r .url)
+    flake=$(nix "${flakeFlags[@]}" flake info --json "${extraBuildFlags[@]}" "${lockFlags[@]}" -- "$flake" | jq -r .url)
 fi
 
 # Find configuration.nix and open editor instead of building.
 if [ "$action" = edit ]; then
     if [[ -z $flake ]]; then
         NIXOS_CONFIG=${NIXOS_CONFIG:-$(nix-instantiate --find-file nixos-config)}
-        exec "${EDITOR:-nano}" "$NIXOS_CONFIG"
+        if [[ -d $NIXOS_CONFIG ]]; then
+            NIXOS_CONFIG=$NIXOS_CONFIG/default.nix
+        fi
+        exec ${EDITOR:-nano} "$NIXOS_CONFIG"
     else
-        exec nix edit "${lockFlags[@]}" -- "$flake#$flakeAttr"
+        exec nix "${flakeFlags[@]}" edit "${lockFlags[@]}" -- "$flake#$flakeAttr"
     fi
     exit 1
 fi
@@ -416,7 +421,7 @@ if [ -z "$rollback" ]; then
             pathToConfig="$(nixBuild '<nixpkgs/nixos>' --no-out-link -A system "${extraBuildFlags[@]}")"
         else
             outLink=$tmpDir/result
-            nix build "$flake#$flakeAttr.config.system.build.toplevel" \
+            nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.toplevel" \
               "${extraBuildFlags[@]}" "${lockFlags[@]}" --out-link $outLink
             pathToConfig="$(readlink -f $outLink)"
         fi
@@ -426,7 +431,7 @@ if [ -z "$rollback" ]; then
         if [[ -z $flake ]]; then
             pathToConfig="$(nixBuild '<nixpkgs/nixos>' -A system -k "${extraBuildFlags[@]}")"
         else
-            nix build "$flake#$flakeAttr.config.system.build.toplevel" "${extraBuildFlags[@]}" "${lockFlags[@]}"
+            nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.toplevel" "${extraBuildFlags[@]}" "${lockFlags[@]}"
             pathToConfig="$(readlink -f ./result)"
         fi
     elif [ "$action" = build-vm ]; then
diff --git a/nixos/modules/installer/tools/nixos-version.sh b/nixos/modules/installer/tools/nixos-version.sh
index fb0fe26116a..f5e3f32b3c6 100644
--- a/nixos/modules/installer/tools/nixos-version.sh
+++ b/nixos/modules/installer/tools/nixos-version.sh
@@ -1,4 +1,4 @@
-#! @shell@
+#! @runtimeShell@
 
 case "$1" in
   -h|--help)
diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix
index 11128621424..26fc8fb402e 100644
--- a/nixos/modules/installer/tools/tools.nix
+++ b/nixos/modules/installer/tools/tools.nix
@@ -14,13 +14,15 @@ let
   nixos-build-vms = makeProg {
     name = "nixos-build-vms";
     src = ./nixos-build-vms/nixos-build-vms.sh;
+    inherit (pkgs) runtimeShell;
   };
 
   nixos-install = makeProg {
     name = "nixos-install";
     src = ./nixos-install.sh;
+    inherit (pkgs) runtimeShell;
     nix = config.nix.package.out;
-    path = makeBinPath [ nixos-enter ];
+    path = makeBinPath [ pkgs.nixUnstable nixos-enter ];
   };
 
   nixos-rebuild =
@@ -28,6 +30,7 @@ let
     makeProg {
       name = "nixos-rebuild";
       src = ./nixos-rebuild.sh;
+      inherit (pkgs) runtimeShell;
       nix = config.nix.package.out;
       nix_x86_64_linux = fallback.x86_64-linux;
       nix_i686_linux = fallback.i686-linux;
@@ -50,6 +53,7 @@ let
   nixos-version = makeProg {
     name = "nixos-version";
     src = ./nixos-version.sh;
+    inherit (pkgs) runtimeShell;
     inherit (config.system.nixos) version codeName revision;
     inherit (config.system) configurationRevision;
     json = builtins.toJSON ({
@@ -64,6 +68,7 @@ let
   nixos-enter = makeProg {
     name = "nixos-enter";
     src = ./nixos-enter.sh;
+    inherit (pkgs) runtimeShell;
   };
 
 in
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index 3409e7ba22e..394da9a3889 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -198,7 +198,7 @@ in
       bosun = 161;
       kubernetes = 162;
       peerflix = 163;
-      chronos = 164;
+      #chronos = 164; # removed 2020-08-15
       gitlab = 165;
       tox-bootstrapd = 166;
       cadvisor = 167;
@@ -247,7 +247,7 @@ in
       bepasty = 215;
       # pumpio = 216; # unused, removed 2018-02-24
       nm-openvpn = 217;
-      mathics = 218;
+      # mathics = 218; # unused, removed 2020-08-15
       ejabberd = 219;
       postsrsd = 220;
       opendkim = 221;
@@ -321,7 +321,7 @@ in
       monetdb = 290;
       restic = 291;
       openvpn = 292;
-      meguca = 293;
+      # meguca = 293; # removed 2020-08-21
       yarn = 294;
       hdfs = 295;
       mapred = 296;
@@ -345,6 +345,7 @@ in
       zoneminder = 314;
       paperless = 315;
       #mailman = 316;  # removed 2019-08-30
+      zigbee2mqtt = 317;
 
       # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
 
@@ -621,7 +622,7 @@ in
       monetdb = 290;
       restic = 291;
       openvpn = 292;
-      meguca = 293;
+      # meguca = 293; # removed 2020-08-21
       yarn = 294;
       hdfs = 295;
       mapred = 296;
@@ -645,6 +646,7 @@ in
       zoneminder = 314;
       paperless = 315;
       #mailman = 316;  # removed 2019-08-30
+      zigbee2mqtt = 317;
 
       # When adding a gid, make sure it doesn't match an existing
       # uid. Users and groups with the same name should have equal
diff --git a/nixos/modules/misc/locate.nix b/nixos/modules/misc/locate.nix
index dc668796c78..92aa3be0a36 100644
--- a/nixos/modules/misc/locate.nix
+++ b/nixos/modules/misc/locate.nix
@@ -127,7 +127,7 @@ in {
       { LOCATE_PATH = cfg.output;
       };
 
-    warnings = optional (isMLocate && cfg.localuser != null) "mlocate does not support searching as user other than root"
+    warnings = optional (isMLocate && cfg.localuser != null) "mlocate does not support the services.locate.localuser option; updatedb will run as root. (Silence with services.locate.localuser = null.)"
             ++ optional (isFindutils && cfg.pruneNames != []) "findutils locate does not support pruning by directory component"
             ++ optional (isFindutils && cfg.pruneBindMounts) "findutils locate does not support skipping bind mounts";
 
diff --git a/nixos/modules/misc/nixpkgs.nix b/nixos/modules/misc/nixpkgs.nix
index 4f5a9250eaa..25ac94b8e0f 100644
--- a/nixos/modules/misc/nixpkgs.nix
+++ b/nixos/modules/misc/nixpkgs.nix
@@ -178,8 +178,6 @@ in
       type = types.nullOr types.attrs; # TODO utilize lib.systems.parsedPlatform
       default = null;
       example = { system = "aarch64-linux"; config = "aarch64-unknown-linux-gnu"; };
-      defaultText = literalExample
-        ''(import "''${nixos}/../lib").lib.systems.examples.aarch64-multiplatform'';
       description = ''
         Specifies the platform for which NixOS should be
         built. Specify this only if it is different from
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index cf1ee0f380c..b516b178519 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -1,7 +1,6 @@
 [
   ./config/debug-info.nix
   ./config/fonts/fontconfig.nix
-  ./config/fonts/fontconfig-penultimate.nix
   ./config/fonts/fontdir.nix
   ./config/fonts/fonts.nix
   ./config/fonts/ghostscript.nix
@@ -72,9 +71,11 @@
   ./hardware/video/capture/mwprocapture.nix
   ./hardware/video/bumblebee.nix
   ./hardware/video/displaylink.nix
+  ./hardware/video/hidpi.nix
   ./hardware/video/nvidia.nix
   ./hardware/video/uvcvideo/default.nix
   ./hardware/video/webcam/facetimehd.nix
+  ./hardware/xpadneo.nix
   ./i18n/input-method/default.nix
   ./i18n/input-method/fcitx.nix
   ./i18n/input-method/ibus.nix
@@ -154,6 +155,7 @@
   ./programs/ssmtp.nix
   ./programs/sysdig.nix
   ./programs/systemtap.nix
+  ./programs/steam.nix
   ./programs/sway.nix
   ./programs/system-config-printer.nix
   ./programs/thefuck.nix
@@ -260,6 +262,7 @@
   ./services/continuous-integration/buildbot/worker.nix
   ./services/continuous-integration/buildkite-agents.nix
   ./services/continuous-integration/hail.nix
+  ./services/continuous-integration/hercules-ci-agent/default.nix
   ./services/continuous-integration/hydra/default.nix
   ./services/continuous-integration/gitlab-runner.nix
   ./services/continuous-integration/gocd-agent/default.nix
@@ -294,10 +297,10 @@
   ./services/desktops/accountsservice.nix
   ./services/desktops/bamf.nix
   ./services/desktops/blueman.nix
-  ./services/desktops/deepin/deepin.nix
   ./services/desktops/dleyna-renderer.nix
   ./services/desktops/dleyna-server.nix
   ./services/desktops/pantheon/files.nix
+  ./services/desktops/espanso.nix
   ./services/desktops/flatpak.nix
   ./services/desktops/geoclue2.nix
   ./services/desktops/gsignond.nix
@@ -328,6 +331,7 @@
   ./services/development/bloop.nix
   ./services/development/hoogle.nix
   ./services/development/jupyter/default.nix
+  ./services/development/jupyterhub/default.nix
   ./services/development/lorri.nix
   ./services/editors/emacs.nix
   ./services/editors/infinoted.nix
@@ -462,14 +466,11 @@
   ./services/misc/leaps.nix
   ./services/misc/lidarr.nix
   ./services/misc/mame.nix
-  ./services/misc/mathics.nix
   ./services/misc/matrix-appservice-discord.nix
   ./services/misc/matrix-synapse.nix
   ./services/misc/mautrix-telegram.nix
   ./services/misc/mbpfan.nix
   ./services/misc/mediatomb.nix
-  ./services/misc/mesos-master.nix
-  ./services/misc/mesos-slave.nix
   ./services/misc/metabase.nix
   ./services/misc/mwlib.nix
   ./services/misc/nix-daemon.nix
@@ -485,6 +486,7 @@
   ./services/misc/parsoid.nix
   ./services/misc/plex.nix
   ./services/misc/tautulli.nix
+  ./services/misc/pinnwand.nix
   ./services/misc/pykms.nix
   ./services/misc/radarr.nix
   ./services/misc/redmine.nix
@@ -510,6 +512,7 @@
   ./services/misc/uhub.nix
   ./services/misc/weechat.nix
   ./services/misc/xmr-stak.nix
+  ./services/misc/zigbee2mqtt.nix
   ./services/misc/zoneminder.nix
   ./services/misc/zookeeper.nix
   ./services/monitoring/alerta.nix
@@ -584,6 +587,7 @@
   ./services/networking/atftpd.nix
   ./services/networking/avahi-daemon.nix
   ./services/networking/babeld.nix
+  ./services/networking/biboumi.nix
   ./services/networking/bind.nix
   ./services/networking/bitcoind.nix
   ./services/networking/autossh.nix
@@ -607,6 +611,7 @@
   ./services/networking/dnscrypt-wrapper.nix
   ./services/networking/dnsdist.nix
   ./services/networking/dnsmasq.nix
+  ./services/networking/ncdns.nix
   ./services/networking/ejabberd.nix
   ./services/networking/epmd.nix
   ./services/networking/ergo.nix
@@ -641,6 +646,8 @@
   ./services/networking/iperf3.nix
   ./services/networking/ircd-hybrid/default.nix
   ./services/networking/iwd.nix
+  ./services/networking/jicofo.nix
+  ./services/networking/jitsi-videobridge.nix
   ./services/networking/keepalived/default.nix
   ./services/networking/keybase.nix
   ./services/networking/kippo.nix
@@ -669,6 +676,7 @@
   ./services/networking/nat.nix
   ./services/networking/ndppd.nix
   ./services/networking/networkmanager.nix
+  ./services/networking/nextdns.nix
   ./services/networking/nftables.nix
   ./services/networking/ngircd.nix
   ./services/networking/nghttpx/default.nix
@@ -711,6 +719,7 @@
   ./services/networking/rdnssd.nix
   ./services/networking/redsocks.nix
   ./services/networking/resilio.nix
+  ./services/networking/robustirc-bridge.nix
   ./services/networking/rpcbind.nix
   ./services/networking/rxe.nix
   ./services/networking/sabnzbd.nix
@@ -776,10 +785,8 @@
   ./services/networking/znc/default.nix
   ./services/printing/cupsd.nix
   ./services/scheduling/atd.nix
-  ./services/scheduling/chronos.nix
   ./services/scheduling/cron.nix
   ./services/scheduling/fcron.nix
-  ./services/scheduling/marathon.nix
   ./services/search/elasticsearch.nix
   ./services/search/elasticsearch-curator.nix
   ./services/search/hound.nix
@@ -810,6 +817,7 @@
   ./services/security/torsocks.nix
   ./services/security/usbguard.nix
   ./services/security/vault.nix
+  ./services/security/yubikey-agent.nix
   ./services/system/cloud-init.nix
   ./services/system/dbus.nix
   ./services/system/earlyoom.nix
@@ -829,6 +837,7 @@
   ./services/ttys/gpm.nix
   ./services/ttys/kmscon.nix
   ./services/wayland/cage.nix
+  ./services/video/mirakurun.nix
   ./services/web-apps/atlassian/confluence.nix
   ./services/web-apps/atlassian/crowd.nix
   ./services/web-apps/atlassian/jira.nix
@@ -846,6 +855,7 @@
   ./services/web-apps/icingaweb2/module-monitoring.nix
   ./services/web-apps/ihatemoney
   ./services/web-apps/jirafeau.nix
+  ./services/web-apps/jitsi-meet.nix
   ./services/web-apps/limesurvey.nix
   ./services/web-apps/mattermost.nix
   ./services/web-apps/mediawiki.nix
@@ -858,6 +868,7 @@
   ./services/web-apps/moinmoin.nix
   ./services/web-apps/restya-board.nix
   ./services/web-apps/sogo.nix
+  ./services/web-apps/rss-bridge.nix
   ./services/web-apps/tt-rss.nix
   ./services/web-apps/trac.nix
   ./services/web-apps/trilium.nix
@@ -878,9 +889,9 @@
   ./services/web-servers/lighttpd/collectd.nix
   ./services/web-servers/lighttpd/default.nix
   ./services/web-servers/lighttpd/gitweb.nix
-  ./services/web-servers/meguca.nix
   ./services/web-servers/mighttpd2.nix
   ./services/web-servers/minio.nix
+  ./services/web-servers/molly-brown.nix
   ./services/web-servers/nginx/default.nix
   ./services/web-servers/nginx/gitweb.nix
   ./services/web-servers/phpfpm/default.nix
@@ -915,6 +926,7 @@
   ./services/x11/gdk-pixbuf.nix
   ./services/x11/imwheel.nix
   ./services/x11/redshift.nix
+  ./services/x11/urserver.nix
   ./services/x11/urxvtd.nix
   ./services/x11/window-managers/awesome.nix
   ./services/x11/window-managers/default.nix
@@ -938,6 +950,7 @@
   ./system/boot/grow-partition.nix
   ./system/boot/initrd-network.nix
   ./system/boot/initrd-ssh.nix
+  ./system/boot/initrd-openvpn.nix
   ./system/boot/kernel.nix
   ./system/boot/kexec.nix
   ./system/boot/loader/efi.nix
diff --git a/nixos/modules/profiles/base.nix b/nixos/modules/profiles/base.nix
index 2a2fe119d30..3b67d628f9f 100644
--- a/nixos/modules/profiles/base.nix
+++ b/nixos/modules/profiles/base.nix
@@ -26,6 +26,7 @@
     pkgs.fuse
     pkgs.fuse3
     pkgs.sshfs-fuse
+    pkgs.rsync
     pkgs.socat
     pkgs.screen
 
diff --git a/nixos/modules/profiles/demo.nix b/nixos/modules/profiles/demo.nix
index 18f190071ba..4e8c74deedb 100644
--- a/nixos/modules/profiles/demo.nix
+++ b/nixos/modules/profiles/demo.nix
@@ -11,9 +11,11 @@
       uid = 1000;
     };
 
-  services.xserver.displayManager.sddm.autoLogin = {
-    enable = true;
-    relogin = true;
-    user = "demo";
+  services.xserver.displayManager = {
+    autoLogin = {
+      enable = true;
+      user = "demo";
+    };
+    sddm.autoLogin.relogin = true;
   };
 }
diff --git a/nixos/modules/profiles/hardened.nix b/nixos/modules/profiles/hardened.nix
index ef8c0d74f06..7bff79e8273 100644
--- a/nixos/modules/profiles/hardened.nix
+++ b/nixos/modules/profiles/hardened.nix
@@ -1,7 +1,7 @@
 # A profile with most (vanilla) hardening options enabled by default,
 # potentially at the cost of features and performance.
 
-{ lib, pkgs, ... }:
+{ config, lib, pkgs, ... }:
 
 with lib;
 
@@ -27,6 +27,9 @@ with lib;
 
   security.forcePageTableIsolation = mkDefault true;
 
+  # This is required by podman to run containers in rootless mode.
+  security.unprivilegedUsernsClone = mkDefault config.virtualisation.containers.enable;
+
   security.virtualisation.flushL1DataCache = mkDefault "always";
 
   security.apparmor.enable = mkDefault true;
diff --git a/nixos/modules/programs/autojump.nix b/nixos/modules/programs/autojump.nix
index 3a8feec4bb4..ecfc2f65807 100644
--- a/nixos/modules/programs/autojump.nix
+++ b/nixos/modules/programs/autojump.nix
@@ -18,7 +18,7 @@ in
         '';
       };
     };
-  }; 
+  };
 
   ###### implementation
 
@@ -26,7 +26,7 @@ in
     environment.pathsToLink = [ "/share/autojump" ];
     environment.systemPackages = [ pkgs.autojump ];
 
-    programs.bash.interactiveShellInit = "source ${pkgs.autojump}/share/autojump/autojump.bash"; 
+    programs.bash.interactiveShellInit = "source ${pkgs.autojump}/share/autojump/autojump.bash";
     programs.zsh.interactiveShellInit = mkIf prg.zsh.enable "source ${pkgs.autojump}/share/autojump/autojump.zsh";
     programs.fish.interactiveShellInit = mkIf prg.fish.enable "source ${pkgs.autojump}/share/autojump/autojump.fish";
   };
diff --git a/nixos/modules/programs/ccache.nix b/nixos/modules/programs/ccache.nix
index 874774c72b4..3c9e64932f1 100644
--- a/nixos/modules/programs/ccache.nix
+++ b/nixos/modules/programs/ccache.nix
@@ -80,4 +80,4 @@ in {
       ];
     })
   ];
-}
\ No newline at end of file
+}
diff --git a/nixos/modules/programs/dconf.nix b/nixos/modules/programs/dconf.nix
index 6702e8efd1c..ec85cb9d18c 100644
--- a/nixos/modules/programs/dconf.nix
+++ b/nixos/modules/programs/dconf.nix
@@ -4,13 +4,24 @@ with lib;
 
 let
   cfg = config.programs.dconf;
-
-  mkDconfProfile = name: path:
-    {
-      name = "dconf/profile/${name}";
-      value.source = path; 
-    };
-
+  cfgDir = pkgs.symlinkJoin {
+    name = "dconf-system-config";
+    paths = map (x: "${x}/etc/dconf") cfg.packages;
+    postBuild = ''
+      mkdir -p $out/profile
+      mkdir -p $out/db
+    '' + (
+      concatStringsSep "\n" (
+        mapAttrsToList (
+          name: path: ''
+            ln -s ${path} $out/profile/${name}
+          ''
+        ) cfg.profiles
+      )
+    ) + ''
+      ${pkgs.dconf}/bin/dconf update $out/db
+    '';
+  };
 in
 {
   ###### interface
@@ -22,18 +33,24 @@ in
       profiles = mkOption {
         type = types.attrsOf types.path;
         default = {};
-        description = "Set of dconf profile files.";
+        description = "Set of dconf profile files, installed at <filename>/etc/dconf/profiles/<replaceable>name</replaceable></filename>.";
         internal = true;
       };
 
+      packages = mkOption {
+        type = types.listOf types.package;
+        default = [];
+        description = "A list of packages which provide dconf profiles and databases in <filename>/etc/dconf</filename>.";
+      };
     };
   };
 
   ###### implementation
 
   config = mkIf (cfg.profiles != {} || cfg.enable) {
-    environment.etc = optionalAttrs (cfg.profiles != {})
-      (mapAttrs' mkDconfProfile cfg.profiles);
+    environment.etc.dconf = mkIf (cfg.profiles != {} || cfg.packages != []) {
+      source = cfgDir;
+    };
 
     services.dbus.packages = [ pkgs.dconf ];
 
diff --git a/nixos/modules/programs/environment.nix b/nixos/modules/programs/environment.nix
index 38bdabb4fa8..8877356360a 100644
--- a/nixos/modules/programs/environment.nix
+++ b/nixos/modules/programs/environment.nix
@@ -33,7 +33,6 @@ in
       { PATH = [ "/bin" ];
         INFOPATH = [ "/info" "/share/info" ];
         KDEDIRS = [ "" ];
-        STRIGI_PLUGIN_PATH = [ "/lib/strigi/" ];
         QT_PLUGIN_PATH = [ "/lib/qt4/plugins" "/lib/kde4/plugins" ];
         QTWEBKIT_PLUGIN_PATH = [ "/lib/mozilla/plugins/" ];
         GTK_PATH = [ "/lib/gtk-2.0" "/lib/gtk-3.0" ];
diff --git a/nixos/modules/programs/freetds.nix b/nixos/modules/programs/freetds.nix
index e0860a242b7..b4b657e391b 100644
--- a/nixos/modules/programs/freetds.nix
+++ b/nixos/modules/programs/freetds.nix
@@ -25,7 +25,7 @@ in
           ''';
         }
       '';
-      description = 
+      description =
         ''
         Configure freetds database entries. Each attribute denotes
         a section within freetds.conf, and the value (a string) is the config
@@ -47,7 +47,7 @@ in
     environment.variables.FREETDS = "/etc/freetds.conf";
     environment.variables.SYBASE = "${pkgs.freetds}";
 
-    environment.etc."freetds.conf" = { text = 
+    environment.etc."freetds.conf" = { text =
       (concatStrings (mapAttrsToList (name: value:
         ''
         [${name}]
diff --git a/nixos/modules/programs/gnupg.nix b/nixos/modules/programs/gnupg.nix
index 7a3cb588ee7..ce8799b21d6 100644
--- a/nixos/modules/programs/gnupg.nix
+++ b/nixos/modules/programs/gnupg.nix
@@ -70,6 +70,7 @@ in
     agent.pinentryFlavor = mkOption {
       type = types.nullOr (types.enum pkgs.pinentry.flavors);
       example = "gnome3";
+      default = defaultPinentryFlavor;
       description = ''
         Which pinentry interface to use. If not null, the path to the
         pinentry binary will be passed to gpg-agent via commandline and
@@ -91,8 +92,6 @@ in
   };
 
   config = mkIf cfg.agent.enable {
-    programs.gnupg.agent.pinentryFlavor = mkDefault defaultPinentryFlavor;
-
     # This overrides the systemd user unit shipped with the gnupg package
     systemd.user.services.gpg-agent = mkIf (cfg.agent.pinentryFlavor != null) {
       serviceConfig.ExecStart = [ "" ''
diff --git a/nixos/modules/programs/gpaste.nix b/nixos/modules/programs/gpaste.nix
index 4f6deb77e5e..8bc52c28d81 100644
--- a/nixos/modules/programs/gpaste.nix
+++ b/nixos/modules/programs/gpaste.nix
@@ -30,5 +30,7 @@ with lib;
     environment.systemPackages = [ pkgs.gnome3.gpaste ];
     services.dbus.packages = [ pkgs.gnome3.gpaste ];
     systemd.packages = [ pkgs.gnome3.gpaste ];
+    # gnome-control-center crashes in Keyboard Shortcuts pane without the GSettings schemas.
+    services.xserver.desktopManager.gnome3.sessionPath = [ pkgs.gnome3.gpaste ];
   };
 }
diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix
index a983ffa4b89..40af4d0ff5a 100644
--- a/nixos/modules/programs/ssh.nix
+++ b/nixos/modules/programs/ssh.nix
@@ -131,7 +131,7 @@ in
 
       knownHosts = mkOption {
         default = {};
-        type = types.loaOf (types.submodule ({ name, ... }: {
+        type = types.attrsOf (types.submodule ({ name, ... }: {
           options = {
             certAuthority = mkOption {
               type = types.bool;
diff --git a/nixos/modules/programs/steam.nix b/nixos/modules/programs/steam.nix
new file mode 100644
index 00000000000..3c919c47a0c
--- /dev/null
+++ b/nixos/modules/programs/steam.nix
@@ -0,0 +1,25 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.programs.steam;
+in {
+  options.programs.steam.enable = mkEnableOption "steam";
+
+  config = mkIf cfg.enable {
+    hardware.opengl = { # this fixes the "glXChooseVisual failed" bug, context: https://github.com/NixOS/nixpkgs/issues/47932
+      enable = true;
+      driSupport32Bit = true;
+    };
+
+    # optionally enable 32bit pulseaudio support if pulseaudio is enabled
+    hardware.pulseaudio.support32Bit = config.hardware.pulseaudio.enable;
+
+    hardware.steam-hardware.enable = true;
+
+    environment.systemPackages = [ pkgs.steam ];
+  };
+
+  meta.maintainers = with maintainers; [ mkg20001 ];
+}
diff --git a/nixos/modules/programs/tsm-client.nix b/nixos/modules/programs/tsm-client.nix
index eb6f1247528..7ac4086d5f0 100644
--- a/nixos/modules/programs/tsm-client.nix
+++ b/nixos/modules/programs/tsm-client.nix
@@ -7,7 +7,7 @@ let
   inherit (lib.modules) mkDefault mkIf;
   inherit (lib.options) literalExample mkEnableOption mkOption;
   inherit (lib.strings) concatStringsSep optionalString toLower;
-  inherit (lib.types) addCheck attrsOf lines loaOf nullOr package path port str strMatching submodule;
+  inherit (lib.types) addCheck attrsOf lines nullOr package path port str strMatching submodule;
 
   # Checks if given list of strings contains unique
   # elements when compared without considering case.
@@ -178,7 +178,7 @@ let
       client system-options file "dsm.sys"
     '';
     servers = mkOption {
-      type = loaOf (submodule [ serverOptions ]);
+      type = attrsOf (submodule [ serverOptions ]);
       default = {};
       example.mainTsmServer = {
         server = "tsmserver.company.com";
diff --git a/nixos/modules/programs/zsh/oh-my-zsh.xml b/nixos/modules/programs/zsh/oh-my-zsh.xml
index 568c2de6557..14a7228ad9b 100644
--- a/nixos/modules/programs/zsh/oh-my-zsh.xml
+++ b/nixos/modules/programs/zsh/oh-my-zsh.xml
@@ -73,7 +73,7 @@
 <programlisting>
 { pkgs, ... }:
 {
-  programs.zsh.ohMyZsh.customPkgs = with pkgs; [
+  programs.zsh.ohMyZsh.customPkgs = [
     pkgs.nix-zsh-completions
     # and even more...
   ];
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 1dc7f853317..fad0b40a9db 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -17,8 +17,13 @@ with lib;
     (mkAliasOptionModule [ "environment" "checkConfigurationOptions" ] [ "_module" "check" ])
 
     # Completely removed modules
+    (mkRemovedOptionModule [ "fonts" "fontconfig" "penultimate" ] "The corresponding package has removed from nixpkgs.")
+    (mkRemovedOptionModule [ "services" "chronos" ] "The corresponding package was removed from nixpkgs.")
+    (mkRemovedOptionModule [ "services" "deepin" ] "The corresponding packages were removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "firefox" "syncserver" "user" ] "")
     (mkRemovedOptionModule [ "services" "firefox" "syncserver" "group" ] "")
+    (mkRemovedOptionModule [ "services" "marathon" ] "The corresponding package was removed from nixpkgs.")
+    (mkRemovedOptionModule [ "services" "mesos" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "networking" "vpnc" ] "Use environment.etc.\"vpnc/service.conf\" instead.")
     (mkRemovedOptionModule [ "environment" "blcr" "enable" ] "The BLCR module has been removed")
@@ -28,6 +33,7 @@ with lib;
     (mkRemovedOptionModule [ "services" "osquery" ] "The osquery module has been removed")
     (mkRemovedOptionModule [ "services" "fourStore" ] "The fourStore module has been removed")
     (mkRemovedOptionModule [ "services" "fourStoreEndpoint" ] "The fourStoreEndpoint module has been removed")
+    (mkRemovedOptionModule [ "services" "mathics" ] "The Mathics module has been removed")
     (mkRemovedOptionModule [ "programs" "way-cooler" ] ("way-cooler is abandoned by its author: " +
       "https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"))
     (mkRemovedOptionModule [ "services" "xserver" "multitouch" ] ''
@@ -39,10 +45,11 @@ with lib;
       The services.xserver.displayManager.auto module has been removed
       because it was only intended for use in internal NixOS tests, and gave the
       false impression of it being a special display manager when it's actually
-      LightDM. Please use the services.xserver.displayManager.lightdm.autoLogin options
+      LightDM. Please use the services.xserver.displayManager.autoLogin options
       instead, or any other display manager in NixOS as they all support auto-login.
     '')
     (mkRemovedOptionModule [ "services" "dnscrypt-proxy" ] "Use services.dnscrypt-proxy2 instead")
+    (mkRemovedOptionModule [ "services" "meguca" ] "Use meguca has been removed from nixpkgs")
     (mkRemovedOptionModule ["hardware" "brightnessctl" ] ''
       The brightnessctl module was removed because newer versions of
       brightnessctl don't require the udev rules anymore (they can use the
diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix
index 776ef07d716..8e67d4ff871 100644
--- a/nixos/modules/security/acme.nix
+++ b/nixos/modules/security/acme.nix
@@ -1,11 +1,314 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, options, ... }:
 with lib;
 let
-
   cfg = config.security.acme;
 
+  # Used to calculate timer accuracy for coalescing
+  numCerts = length (builtins.attrNames cfg.certs);
+  _24hSecs = 60 * 60 * 24;
+
+  # There are many services required to make cert renewals work.
+  # They all follow a common structure:
+  #   - They inherit this commonServiceConfig
+  #   - They all run as the acme user
+  #   - They all use BindPath and StateDirectory where possible
+  #     to set up a sort of build environment in /tmp
+  # The Group can vary depending on what the user has specified in
+  # security.acme.certs.<cert>.group on some of the services.
+  commonServiceConfig = {
+      Type = "oneshot";
+      User = "acme";
+      Group = mkDefault "acme";
+      UMask = 0027;
+      StateDirectoryMode = 750;
+      ProtectSystem = "full";
+      PrivateTmp = true;
+
+      WorkingDirectory = "/tmp";
+  };
+
+  # In order to avoid race conditions creating the CA for selfsigned certs,
+  # we have a separate service which will create the necessary files.
+  selfsignCAService = {
+    description = "Generate self-signed certificate authority";
+
+    path = with pkgs; [ minica ];
+
+    unitConfig = {
+      ConditionPathExists = "!/var/lib/acme/.minica/key.pem";
+    };
+
+    serviceConfig = commonServiceConfig // {
+      StateDirectory = "acme/.minica";
+      BindPaths = "/var/lib/acme/.minica:/tmp/ca";
+    };
+
+    # Working directory will be /tmp
+    script = ''
+      minica \
+        --ca-key ca/key.pem \
+        --ca-cert ca/cert.pem \
+        --domains selfsigned.local
+
+      chmod 600 ca/*
+    '';
+  };
+
+  # Previously, all certs were owned by whatever user was configured in
+  # config.security.acme.certs.<cert>.user. Now everything is owned by and
+  # run by the acme user.
+  userMigrationService = {
+    description = "Fix owner and group of all ACME certificates";
+
+    script = with builtins; concatStringsSep "\n" (mapAttrsToList (cert: data: ''
+      for fixpath in /var/lib/acme/${escapeShellArg cert} /var/lib/acme/.lego/${escapeShellArg cert}; do
+        if [ -d "$fixpath" ]; then
+          chmod -R 750 "$fixpath"
+          chown -R acme:${data.group} "$fixpath"
+        fi
+      done
+    '') certConfigs);
+
+    # We don't want this to run every time a renewal happens
+    serviceConfig.RemainAfterExit = true;
+  };
+
+  certToConfig = cert: data: let
+    acmeServer = if data.server != null then data.server else cfg.server;
+    useDns = data.dnsProvider != null;
+    destPath = "/var/lib/acme/${cert}";
+    selfsignedDeps = optionals (cfg.preliminarySelfsigned) [ "acme-selfsigned-${cert}.service" ];
+
+    # Minica and lego have a "feature" which replaces * with _. We need
+    # to make this substitution to reference the output files from both programs.
+    # End users never see this since we rename the certs.
+    keyName = builtins.replaceStrings ["*"] ["_"] data.domain;
+
+    # FIXME when mkChangedOptionModule supports submodules, change to that.
+    # This is a workaround
+    extraDomains = data.extraDomainNames ++ (
+      optionals
+      (data.extraDomains != "_mkMergedOptionModule")
+      (builtins.attrNames data.extraDomains)
+    );
+
+    # Create hashes for cert data directories based on configuration
+    # Flags are separated to avoid collisions
+    hashData = with builtins; ''
+      ${concatStringsSep " " data.extraLegoFlags} -
+      ${concatStringsSep " " data.extraLegoRunFlags} -
+      ${concatStringsSep " " data.extraLegoRenewFlags} -
+      ${toString acmeServer} ${toString data.dnsProvider}
+      ${toString data.ocspMustStaple} ${data.keyType}
+    '';
+    mkHash = with builtins; val: substring 0 20 (hashString "sha256" val);
+    certDir = mkHash hashData;
+    domainHash = mkHash "${concatStringsSep " " extraDomains} ${data.domain}";
+    othersHash = mkHash "${toString acmeServer} ${data.keyType}";
+    accountDir = "/var/lib/acme/.lego/accounts/" + othersHash;
+
+    protocolOpts = if useDns then (
+      [ "--dns" data.dnsProvider ]
+      ++ optionals (!data.dnsPropagationCheck) [ "--dns.disable-cp" ]
+    ) else (
+      [ "--http" "--http.webroot" data.webroot ]
+    );
+
+    commonOpts = [
+      "--accept-tos" # Checking the option is covered by the assertions
+      "--path" "."
+      "-d" data.domain
+      "--email" data.email
+      "--key-type" data.keyType
+    ] ++ protocolOpts
+      ++ optionals data.ocspMustStaple [ "--must-staple" ]
+      ++ optionals (acmeServer != null) [ "--server" acmeServer ]
+      ++ concatMap (name: [ "-d" name ]) extraDomains
+      ++ data.extraLegoFlags;
+
+    runOpts = escapeShellArgs (
+      commonOpts
+      ++ [ "run" ]
+      ++ data.extraLegoRunFlags
+    );
+    renewOpts = escapeShellArgs (
+      commonOpts
+      ++ [ "renew" "--reuse-key" ]
+      ++ data.extraLegoRenewFlags
+    );
+
+  in {
+    inherit accountDir selfsignedDeps;
+
+    webroot = data.webroot;
+    group = data.group;
+
+    renewTimer = {
+      description = "Renew ACME Certificate for ${cert}";
+      wantedBy = [ "timers.target" ];
+      timerConfig = {
+        OnCalendar = cfg.renewInterval;
+        Unit = "acme-${cert}.service";
+        Persistent = "yes";
+
+        # Allow systemd to pick a convenient time within the day
+        # to run the check.
+        # This allows the coalescing of multiple timer jobs.
+        # We divide by the number of certificates so that if you
+        # have many certificates, the renewals are distributed over
+        # the course of the day to avoid rate limits.
+        AccuracySec = "${toString (_24hSecs / numCerts)}s";
+
+        # Skew randomly within the day, per https://letsencrypt.org/docs/integration-guide/.
+        RandomizedDelaySec = "24h";
+      };
+    };
+
+    selfsignService = {
+      description = "Generate self-signed certificate for ${cert}";
+      after = [ "acme-selfsigned-ca.service" "acme-fixperms.service" ];
+      requires = [ "acme-selfsigned-ca.service" "acme-fixperms.service" ];
+
+      path = with pkgs; [ minica ];
+
+      unitConfig = {
+        ConditionPathExists = "!/var/lib/acme/${cert}/key.pem";
+      };
+
+      serviceConfig = commonServiceConfig // {
+        Group = data.group;
+
+        StateDirectory = "acme/${cert}";
+
+        BindPaths = "/var/lib/acme/.minica:/tmp/ca /var/lib/acme/${cert}:/tmp/${keyName}";
+      };
+
+      # Working directory will be /tmp
+      # minica will output to a folder sharing the name of the first domain
+      # in the list, which will be ${data.domain}
+      script = ''
+        minica \
+          --ca-key ca/key.pem \
+          --ca-cert ca/cert.pem \
+          --domains ${escapeShellArg (builtins.concatStringsSep "," ([ data.domain ] ++ extraDomains))}
+
+        # Create files to match directory layout for real certificates
+        cd '${keyName}'
+        cp ../ca/cert.pem chain.pem
+        cat cert.pem chain.pem > fullchain.pem
+        cat key.pem fullchain.pem > full.pem
+
+        chmod 640 *
+
+        # Group might change between runs, re-apply it
+        chown 'acme:${data.group}' *
+      '';
+    };
+
+    renewService = {
+      description = "Renew ACME certificate for ${cert}";
+      after = [ "network.target" "network-online.target" "acme-fixperms.service" ] ++ selfsignedDeps;
+      wants = [ "network-online.target" "acme-fixperms.service" ] ++ selfsignedDeps;
+
+      # https://github.com/NixOS/nixpkgs/pull/81371#issuecomment-605526099
+      wantedBy = optionals (!config.boot.isContainer) [ "multi-user.target" ];
+
+      path = with pkgs; [ lego coreutils diffutils ];
+
+      serviceConfig = commonServiceConfig // {
+        Group = data.group;
+
+        # AccountDir dir will be created by tmpfiles to ensure correct permissions
+        # And to avoid deletion during systemctl clean
+        # acme/.lego/${cert} is listed so that it is deleted during systemctl clean
+        StateDirectory = "acme/${cert} acme/.lego/${cert} acme/.lego/${cert}/${certDir}";
+
+        # Needs to be space separated, but can't use a multiline string because that'll include newlines
+        BindPaths =
+          "${accountDir}:/tmp/accounts " +
+          "/var/lib/acme/${cert}:/tmp/out " +
+          "/var/lib/acme/.lego/${cert}/${certDir}:/tmp/certificates ";
+
+        # Only try loading the credentialsFile if the dns challenge is enabled
+        EnvironmentFile = mkIf useDns data.credentialsFile;
+
+        # Run as root (Prefixed with +)
+        ExecStartPost = "+" + (pkgs.writeShellScript "acme-postrun" ''
+          cd /var/lib/acme/${escapeShellArg cert}
+          if [ -e renewed ]; then
+            rm renewed
+            ${data.postRun}
+          fi
+        '');
+      };
+
+      # Working directory will be /tmp
+      script = ''
+        set -euo pipefail
+
+        echo '${domainHash}' > domainhash.txt
+
+        # Check if we can renew
+        if [ -e 'certificates/${keyName}.key' -a -e 'certificates/${keyName}.crt' ]; then
+
+          # 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}
+          else
+            # Any number > 90 works, but this one is over 9000 ;-)
+            lego ${renewOpts} --days 9001
+          fi
+
+        # Otherwise do a full run
+        else
+          lego ${runOpts}
+        fi
+
+        mv domainhash.txt certificates/
+        chmod 640 certificates/*
+        chmod -R 700 accounts/*
+
+        # Group might change between runs, re-apply it
+        chown 'acme:${data.group}' certificates/*
+
+        # Copy all certs to the "real" certs directory
+        CERT='certificates/${keyName}.crt'
+        if [ -e "$CERT" ] && ! cmp -s "$CERT" out/fullchain.pem; then
+          touch out/renewed
+          echo Installing new certificate
+          cp -vp 'certificates/${keyName}.crt' out/fullchain.pem
+          cp -vp 'certificates/${keyName}.key' out/key.pem
+          cp -vp 'certificates/${keyName}.issuer.crt' out/chain.pem
+          ln -sf fullchain.pem out/cert.pem
+          cat out/key.pem out/fullchain.pem > out/full.pem
+        fi
+      '';
+    };
+  };
+
+  certConfigs = mapAttrs certToConfig cfg.certs;
+
   certOpts = { name, ... }: {
     options = {
+      # user option has been removed
+      user = mkOption {
+        visible = false;
+        default = "_mkRemovedOptionModule";
+      };
+
+      # allowKeysForGroup option has been removed
+      allowKeysForGroup = mkOption {
+        visible = false;
+        default = "_mkRemovedOptionModule";
+      };
+
+      # extraDomains was replaced with extraDomainNames
+      extraDomains = mkOption {
+        visible = false;
+        default = "_mkMergedOptionModule";
+      };
+
       webroot = mkOption {
         type = types.nullOr types.str;
         default = null;
@@ -23,16 +326,16 @@ let
         type = types.nullOr types.str;
         default = null;
         description = ''
-          ACME Directory Resource URI. Defaults to let's encrypt
+          ACME Directory Resource URI. Defaults to Let's Encrypt's
           production endpoint,
-          https://acme-v02.api.letsencrypt.org/directory, if unset.
+          <link xlink:href="https://acme-v02.api.letsencrypt.org/directory"/>, if unset.
         '';
       };
 
       domain = mkOption {
         type = types.str;
         default = name;
-        description = "Domain to fetch certificate for (defaults to the entry name)";
+        description = "Domain to fetch certificate for (defaults to the entry name).";
       };
 
       email = mkOption {
@@ -41,35 +344,19 @@ let
         description = "Contact email address for the CA to be able to reach you.";
       };
 
-      user = mkOption {
-        type = types.str;
-        default = "root";
-        description = "User running the ACME client.";
-      };
-
       group = mkOption {
         type = types.str;
-        default = "root";
+        default = "acme";
         description = "Group running the ACME client.";
       };
 
-      allowKeysForGroup = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Give read permissions to the specified group
-          (<option>security.acme.cert.&lt;name&gt;.group</option>) to read SSL private certificates.
-        '';
-      };
-
       postRun = mkOption {
         type = types.lines;
         default = "";
-        example = "systemctl reload nginx.service";
+        example = "cp full.pem backup.pem";
         description = ''
-          Commands to run after new certificates go live. Typically
-          the web server and other servers using certificates need to
-          be reloaded.
+          Commands to run after new certificates go live. Note that
+          these commands run as the root user.
 
           Executed in the same directory with the new certificate.
         '';
@@ -82,18 +369,17 @@ let
         description = "Directory where certificate and other state is stored.";
       };
 
-      extraDomains = mkOption {
-        type = types.attrsOf (types.nullOr types.str);
-        default = {};
+      extraDomainNames = mkOption {
+        type = types.listOf types.str;
+        default = [];
         example = literalExample ''
-          {
-            "example.org" = null;
-            "mydomain.org" = null;
-          }
+          [
+            "example.org"
+            "mydomain.org"
+          ]
         '';
         description = ''
           A list of extra domain names, which are included in the one certificate to be issued.
-          Setting a distinct server root is deprecated and not functional in 20.03+
         '';
       };
 
@@ -103,7 +389,7 @@ let
         description = ''
           Key type to use for private keys.
           For an up to date list of supported values check the --key-type option
-          at https://go-acme.github.io/lego/usage/cli/#usage.
+          at <link xlink:href="https://go-acme.github.io/lego/usage/cli/#usage"/>.
         '';
       };
 
@@ -113,7 +399,7 @@ let
         example = "route53";
         description = ''
           DNS Challenge provider. For a list of supported providers, see the "code"
-          field of the DNS providers listed at https://go-acme.github.io/lego/dns/.
+          field of the DNS providers listed at <link xlink:href="https://go-acme.github.io/lego/dns/"/>.
         '';
       };
 
@@ -123,7 +409,7 @@ let
           Path to an EnvironmentFile for the cert's service containing any required and
           optional environment variables for your selected dnsProvider.
           To find out what values you need to set, consult the documentation at
-          https://go-acme.github.io/lego/dns/ for the corresponding dnsProvider.
+          <link xlink:href="https://go-acme.github.io/lego/dns/"/> for the corresponding dnsProvider.
         '';
         example = "/var/src/secrets/example.org-route53-api-token";
       };
@@ -150,6 +436,14 @@ let
         '';
       };
 
+      extraLegoFlags = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''
+          Additional global flags to pass to all lego commands.
+        '';
+      };
+
       extraLegoRenewFlags = mkOption {
         type = types.listOf types.str;
         default = [];
@@ -157,27 +451,19 @@ let
           Additional flags to pass to lego renew.
         '';
       };
+
+      extraLegoRunFlags = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''
+          Additional flags to pass to lego run.
+        '';
+      };
     };
   };
 
-in
+in {
 
-{
-
-  ###### interface
-  imports = [
-    (mkRemovedOptionModule [ "security" "acme" "production" ] ''
-      Use security.acme.server to define your staging ACME server URL instead.
-
-      To use the let's encrypt staging server, use security.acme.server =
-      "https://acme-staging-v02.api.letsencrypt.org/directory".
-    ''
-    )
-    (mkRemovedOptionModule [ "security" "acme" "directory"] "ACME Directory is now hardcoded to /var/lib/acme and its permisisons are managed by systemd. See https://github.com/NixOS/nixpkgs/issues/53852 for more info.")
-    (mkRemovedOptionModule [ "security" "acme" "preDelay"] "This option has been removed. If you want to make sure that something executes before certificates are provisioned, add a RequiredBy=acme-\${cert}.service to the service you want to execute before the cert renewal")
-    (mkRemovedOptionModule [ "security" "acme" "activationDelay"] "This option has been removed. If you want to make sure that something executes before certificates are provisioned, add a RequiredBy=acme-\${cert}.service to the service you want to execute before the cert renewal")
-    (mkChangedOptionModule [ "security" "acme" "validMin"] [ "security" "acme" "validMinDays"] (config: config.security.acme.validMin / (24 * 3600)))
-  ];
   options = {
     security.acme = {
 
@@ -207,9 +493,9 @@ in
         type = types.nullOr types.str;
         default = null;
         description = ''
-          ACME Directory Resource URI. Defaults to let's encrypt
+          ACME Directory Resource URI. Defaults to Let's Encrypt's
           production endpoint,
-          <literal>https://acme-v02.api.letsencrypt.org/directory</literal>, if unset.
+          <link xlink:href="https://acme-v02.api.letsencrypt.org/directory"/>, if unset.
         '';
       };
 
@@ -230,8 +516,8 @@ in
         type = types.bool;
         default = false;
         description = ''
-          Accept the CA's terms of service. The default provier is Let's Encrypt,
-          you can find their ToS at https://letsencrypt.org/repository/
+          Accept the CA's terms of service. The default provider is Let's Encrypt,
+          you can find their ToS at <link xlink:href="https://letsencrypt.org/repository/"/>.
         '';
       };
 
@@ -250,7 +536,7 @@ in
             "example.com" = {
               webroot = "/var/www/challenges/";
               email = "foo@example.com";
-              extraDomains = { "www.example.com" = null; "foo.example.com" = null; };
+              extraDomainNames = [ "www.example.com" "foo.example.com" ];
             };
             "bar.example.com" = {
               webroot = "/var/www/challenges/";
@@ -262,25 +548,40 @@ in
     };
   };
 
-  ###### implementation
+  imports = [
+    (mkRemovedOptionModule [ "security" "acme" "production" ] ''
+      Use security.acme.server to define your staging ACME server URL instead.
+
+      To use the let's encrypt staging server, use security.acme.server =
+      "https://acme-staging-v02.api.letsencrypt.org/directory".
+    ''
+    )
+    (mkRemovedOptionModule [ "security" "acme" "directory" ] "ACME Directory is now hardcoded to /var/lib/acme and its permisisons are managed by systemd. See https://github.com/NixOS/nixpkgs/issues/53852 for more info.")
+    (mkRemovedOptionModule [ "security" "acme" "preDelay" ] "This option has been removed. If you want to make sure that something executes before certificates are provisioned, add a RequiredBy=acme-\${cert}.service to the service you want to execute before the cert renewal")
+    (mkRemovedOptionModule [ "security" "acme" "activationDelay" ] "This option has been removed. If you want to make sure that something executes before certificates are provisioned, add a RequiredBy=acme-\${cert}.service to the service you want to execute before the cert renewal")
+    (mkChangedOptionModule [ "security" "acme" "validMin" ] [ "security" "acme" "validMinDays" ] (config: config.security.acme.validMin / (24 * 3600)))
+  ];
+
   config = mkMerge [
     (mkIf (cfg.certs != { }) {
 
+      # FIXME Most of these custom warnings and filters for security.acme.certs.* are required
+      # because using mkRemovedOptionModule/mkChangedOptionModule with attrsets isn't possible.
+      warnings = filter (w: w != "") (mapAttrsToList (cert: data: if data.extraDomains != "_mkMergedOptionModule" then ''
+        The option definition `security.acme.certs.${cert}.extraDomains` has changed
+        to `security.acme.certs.${cert}.extraDomainNames` and is now a list of strings.
+        Setting a custom webroot for extra domains is not possible, instead use separate certs.
+      '' else "") cfg.certs);
+
       assertions = let
-        certs = (mapAttrsToList (k: v: v) cfg.certs);
+        certs = attrValues cfg.certs;
       in [
         {
-          assertion = all (certOpts: certOpts.dnsProvider == null || certOpts.webroot == null) certs;
-          message = ''
-            Options `security.acme.certs.<name>.dnsProvider` and
-            `security.acme.certs.<name>.webroot` are mutually exclusive.
-          '';
-        }
-        {
           assertion = cfg.email != null || all (certOpts: certOpts.email != null) certs;
           message = ''
             You must define `security.acme.certs.<name>.email` or
-            `security.acme.email` to register with the CA.
+            `security.acme.email` to register with the CA. Note that using
+            many different addresses for certs may trigger account rate limits.
           '';
         }
         {
@@ -291,170 +592,78 @@ in
             to `true`. For Let's Encrypt's ToS see https://letsencrypt.org/repository/
           '';
         }
-      ];
-
-      systemd.services = let
-          services = concatLists servicesLists;
-          servicesLists = mapAttrsToList certToServices cfg.certs;
-          certToServices = cert: data:
-              let
-                # StateDirectory must be relative, and will be created under /var/lib by systemd
-                lpath = "acme/${cert}";
-                apath = "/var/lib/${lpath}";
-                spath = "/var/lib/acme/.lego/${cert}";
-                fileMode = if data.allowKeysForGroup then "640" else "600";
-                globalOpts = [ "-d" data.domain "--email" data.email "--path" "." "--key-type" data.keyType ]
-                          ++ optionals (cfg.acceptTerms) [ "--accept-tos" ]
-                          ++ optionals (data.dnsProvider != null && !data.dnsPropagationCheck) [ "--dns.disable-cp" ]
-                          ++ concatLists (mapAttrsToList (name: root: [ "-d" name ]) data.extraDomains)
-                          ++ (if data.dnsProvider != null then [ "--dns" data.dnsProvider ] else [ "--http" "--http.webroot" data.webroot ])
-                          ++ optionals (cfg.server != null || data.server != null) ["--server" (if data.server == null then cfg.server else data.server)];
-                certOpts = optionals data.ocspMustStaple [ "--must-staple" ];
-                runOpts = escapeShellArgs (globalOpts ++ [ "run" ] ++ certOpts);
-                renewOpts = escapeShellArgs (globalOpts ++
-                  [ "renew" "--days" (toString cfg.validMinDays) ] ++
-                  certOpts ++ data.extraLegoRenewFlags);
-                acmeService = {
-                  description = "Renew ACME Certificate for ${cert}";
-                  after = [ "network.target" "network-online.target" ];
-                  wants = [ "network-online.target" ];
-                  wantedBy = mkIf (!config.boot.isContainer) [ "multi-user.target" ];
-                  serviceConfig = {
-                    Type = "oneshot";
-                    User = data.user;
-                    Group = data.group;
-                    PrivateTmp = true;
-                    StateDirectory = "acme/.lego/${cert} acme/.lego/accounts ${lpath}";
-                    StateDirectoryMode = if data.allowKeysForGroup then "750" else "700";
-                    WorkingDirectory = spath;
-                    # Only try loading the credentialsFile if the dns challenge is enabled
-                    EnvironmentFile = if data.dnsProvider != null then data.credentialsFile else null;
-                    ExecStart = pkgs.writeScript "acme-start" ''
-                      #!${pkgs.runtimeShell} -e
-                      test -L ${spath}/accounts -o -d ${spath}/accounts || ln -s ../accounts ${spath}/accounts
-                      ${pkgs.lego}/bin/lego ${renewOpts} || ${pkgs.lego}/bin/lego ${runOpts}
-                    '';
-                    ExecStartPost =
-                      let
-                        keyName = builtins.replaceStrings ["*"] ["_"] data.domain;
-                        script = pkgs.writeScript "acme-post-start" ''
-                          #!${pkgs.runtimeShell} -e
-                          cd ${apath}
-
-                          # Test that existing cert is older than new cert
-                          KEY=${spath}/certificates/${keyName}.key
-                          KEY_CHANGED=no
-                          if [ -e $KEY -a $KEY -nt key.pem ]; then
-                            KEY_CHANGED=yes
-                            cp -p ${spath}/certificates/${keyName}.key key.pem
-                            cp -p ${spath}/certificates/${keyName}.crt fullchain.pem
-                            cp -p ${spath}/certificates/${keyName}.issuer.crt chain.pem
-                            ln -sf fullchain.pem cert.pem
-                            cat key.pem fullchain.pem > full.pem
-                          fi
-
-                          chmod ${fileMode} *.pem
-                          chown '${data.user}:${data.group}' *.pem
-
-                          if [ "$KEY_CHANGED" = "yes" ]; then
-                            : # noop in case postRun is empty
-                            ${data.postRun}
-                          fi
-                        '';
-                      in
-                        "+${script}";
-                  };
-
-                };
-                selfsignedService = {
-                  description = "Create preliminary self-signed certificate for ${cert}";
-                  path = [ pkgs.openssl ];
-                  script =
-                    ''
-                      workdir="$(mktemp -d)"
-
-                      # Create CA
-                      openssl genrsa -des3 -passout pass:xxxx -out $workdir/ca.pass.key 2048
-                      openssl rsa -passin pass:xxxx -in $workdir/ca.pass.key -out $workdir/ca.key
-                      openssl req -new -key $workdir/ca.key -out $workdir/ca.csr \
-                        -subj "/C=UK/ST=Warwickshire/L=Leamington/O=OrgName/OU=Security Department/CN=example.com"
-                      openssl x509 -req -days 1 -in $workdir/ca.csr -signkey $workdir/ca.key -out $workdir/ca.crt
-
-                      # Create key
-                      openssl genrsa -des3 -passout pass:xxxx -out $workdir/server.pass.key 2048
-                      openssl rsa -passin pass:xxxx -in $workdir/server.pass.key -out $workdir/server.key
-                      openssl req -new -key $workdir/server.key -out $workdir/server.csr \
-                        -subj "/C=UK/ST=Warwickshire/L=Leamington/O=OrgName/OU=IT Department/CN=example.com"
-                      openssl x509 -req -days 1 -in $workdir/server.csr -CA $workdir/ca.crt \
-                        -CAkey $workdir/ca.key -CAserial $workdir/ca.srl -CAcreateserial \
-                        -out $workdir/server.crt
-
-                      # Copy key to destination
-                      cp $workdir/server.key ${apath}/key.pem
-
-                      # Create fullchain.pem (same format as "simp_le ... -f fullchain.pem" creates)
-                      cat $workdir/{server.crt,ca.crt} > "${apath}/fullchain.pem"
-
-                      # Create full.pem for e.g. lighttpd
-                      cat $workdir/{server.key,server.crt,ca.crt} > "${apath}/full.pem"
-
-                      # Give key acme permissions
-                      chown '${data.user}:${data.group}' "${apath}/"{key,fullchain,full}.pem
-                      chmod ${fileMode} "${apath}/"{key,fullchain,full}.pem
-                    '';
-                  serviceConfig = {
-                    Type = "oneshot";
-                    PrivateTmp = true;
-                    StateDirectory = lpath;
-                    User = data.user;
-                    Group = data.group;
-                  };
-                  unitConfig = {
-                    # Do not create self-signed key when key already exists
-                    ConditionPathExists = "!${apath}/key.pem";
-                  };
-                };
-              in (
-                [ { name = "acme-${cert}"; value = acmeService; } ]
-                ++ optional cfg.preliminarySelfsigned { name = "acme-selfsigned-${cert}"; value = selfsignedService; }
-              );
-          servicesAttr = listToAttrs services;
-        in
-          servicesAttr;
-
-      systemd.tmpfiles.rules =
-        map (data: "d ${data.webroot}/.well-known/acme-challenge - ${data.user} ${data.group}") (filter (data: data.webroot != null) (attrValues cfg.certs));
-
-      systemd.timers = let
-        # Allow systemd to pick a convenient time within the day
-        # to run the check.
-        # This allows the coalescing of multiple timer jobs.
-        # We divide by the number of certificates so that if you
-        # have many certificates, the renewals are distributed over
-        # the course of the day to avoid rate limits.
-        numCerts = length (attrNames cfg.certs);
-        _24hSecs = 60 * 60 * 24;
-        AccuracySec = "${toString (_24hSecs / numCerts)}s";
-      in flip mapAttrs' cfg.certs (cert: data: nameValuePair
-        ("acme-${cert}")
-        ({
-          description = "Renew ACME Certificate for ${cert}";
-          wantedBy = [ "timers.target" ];
-          timerConfig = {
-            OnCalendar = cfg.renewInterval;
-            Unit = "acme-${cert}.service";
-            Persistent = "yes";
-            inherit AccuracySec;
-            # Skew randomly within the day, per https://letsencrypt.org/docs/integration-guide/.
-            RandomizedDelaySec = "24h";
-          };
-        })
-      );
-
-      systemd.targets.acme-selfsigned-certificates = mkIf cfg.preliminarySelfsigned {};
-      systemd.targets.acme-certificates = {};
-    })
+      ] ++ (builtins.concatLists (mapAttrsToList (cert: data: [
+        {
+          assertion = data.user == "_mkRemovedOptionModule";
+          message = ''
+            The option definition `security.acme.certs.${cert}.user' no longer has any effect; Please remove it.
+            Certificate user is now hard coded to the "acme" user. If you would
+            like another user to have access, consider adding them to the
+            "acme" group or changing security.acme.certs.${cert}.group.
+          '';
+        }
+        {
+          assertion = data.allowKeysForGroup == "_mkRemovedOptionModule";
+          message = ''
+            The option definition `security.acme.certs.${cert}.allowKeysForGroup' no longer has any effect; Please remove it.
+            All certs are readable by the configured group. If this is undesired,
+            consider changing security.acme.certs.${cert}.group to an unused group.
+          '';
+        }
+        # * in the cert value breaks building of systemd services, and makes
+        # referencing them as a user quite weird too. Best practice is to use
+        # the domain option.
+        {
+          assertion = ! hasInfix "*" cert;
+          message = ''
+            The cert option path `security.acme.certs.${cert}.dnsProvider`
+            cannot contain a * character.
+            Instead, set `security.acme.certs.${cert}.domain = "${cert}";`
+            and remove the wildcard from the path.
+          '';
+        }
+        {
+          assertion = data.dnsProvider == null || data.webroot == null;
+          message = ''
+            Options `security.acme.certs.${cert}.dnsProvider` and
+            `security.acme.certs.${cert}.webroot` are mutually exclusive.
+          '';
+        }
+      ]) cfg.certs));
+
+      users.users.acme = {
+        home = "/var/lib/acme";
+        group = "acme";
+        isSystemUser = true;
+      };
 
+      users.groups.acme = {};
+
+      systemd.services = {
+        "acme-fixperms" = userMigrationService;
+      } // (mapAttrs' (cert: conf: nameValuePair "acme-${cert}" conf.renewService) certConfigs)
+        // (optionalAttrs (cfg.preliminarySelfsigned) ({
+        "acme-selfsigned-ca" = selfsignCAService;
+      } // (mapAttrs' (cert: conf: nameValuePair "acme-selfsigned-${cert}" conf.selfsignService) certConfigs)));
+
+      systemd.timers = mapAttrs' (cert: conf: nameValuePair "acme-${cert}" conf.renewTimer) certConfigs;
+
+      # .lego and .lego/accounts specified to fix any incorrect permissions
+      systemd.tmpfiles.rules = [
+        "d /var/lib/acme/.lego - acme acme"
+        "d /var/lib/acme/.lego/accounts - acme acme"
+      ] ++ (unique (concatMap (conf: [
+          "d ${conf.accountDir} - acme acme"
+        ] ++ (optional (conf.webroot != null) "d ${conf.webroot}/.well-known/acme-challenge - acme ${conf.group}")
+      ) (attrValues certConfigs)));
+
+      # Create some targets which can be depended on to be "active" after cert renewals
+      systemd.targets = mapAttrs' (cert: conf: nameValuePair "acme-finished-${cert}" {
+        wantedBy = [ "default.target" ];
+        requires = [ "acme-${cert}.service" ] ++ conf.selfsignedDeps;
+        after = [ "acme-${cert}.service" ] ++ conf.selfsignedDeps;
+      }) certConfigs;
+    })
   ];
 
   meta = {
diff --git a/nixos/modules/security/acme.xml b/nixos/modules/security/acme.xml
index f802faee974..17e94bc12fb 100644
--- a/nixos/modules/security/acme.xml
+++ b/nixos/modules/security/acme.xml
@@ -72,7 +72,7 @@ services.nginx = {
     "foo.example.com" = {
       <link linkend="opt-services.nginx.virtualHosts._name_.forceSSL">forceSSL</link> = true;
       <link linkend="opt-services.nginx.virtualHosts._name_.enableACME">enableACME</link> = true;
-      # All serverAliases will be added as <link linkend="opt-security.acme.certs._name_.extraDomains">extra domains</link> on the certificate.
+      # All serverAliases will be added as <link linkend="opt-security.acme.certs._name_.extraDomainNames">extra domain names</link> on the certificate.
       <link linkend="opt-services.nginx.virtualHosts._name_.serverAliases">serverAliases</link> = [ "bar.example.com" ];
       locations."/" = {
         <link linkend="opt-services.nginx.virtualHosts._name_.locations._name_.root">root</link> = "/var/www";
@@ -80,8 +80,8 @@ services.nginx = {
     };
 
     # We can also add a different vhost and reuse the same certificate
-    # but we have to append extraDomains manually.
-    <link linkend="opt-security.acme.certs._name_.extraDomains">security.acme.certs."foo.example.com".extraDomains."baz.example.com"</link> = null;
+    # but we have to append extraDomainNames manually.
+    <link linkend="opt-security.acme.certs._name_.extraDomainNames">security.acme.certs."foo.example.com".extraDomainNames</link> = [ "baz.example.com" ];
     "baz.example.com" = {
       <link linkend="opt-services.nginx.virtualHosts._name_.forceSSL">forceSSL</link> = true;
       <link linkend="opt-services.nginx.virtualHosts._name_.useACMEHost">useACMEHost</link> = "foo.example.com";
@@ -165,7 +165,7 @@ services.httpd = {
   # Since we have a wildcard vhost to handle port 80,
   # we can generate certs for anything!
   # Just make sure your DNS resolves them.
-  <link linkend="opt-security.acme.certs._name_.extraDomains">extraDomains</link> = [ "mail.example.com" ];
+  <link linkend="opt-security.acme.certs._name_.extraDomainNames">extraDomainNames</link> = [ "mail.example.com" ];
 };
 </programlisting>
 
@@ -251,4 +251,16 @@ chmod 400 /var/lib/secrets/certs.secret
    journalctl -fu acme-example.com.service</literal> and watching its log output.
   </para>
  </section>
+ <section xml:id="module-security-acme-regenerate">
+  <title>Regenerating certificates</title>
+
+  <para>
+   Should you need to regenerate a particular certificate in a hurry, such
+   as when a vulnerability is found in Let's Encrypt, there is now a convenient
+   mechanism for doing so. Running <literal>systemctl clean acme-example.com.service</literal>
+   will remove all certificate files for the given domain, allowing you to then
+   <literal>systemctl start acme-example.com.service</literal> to generate fresh
+   ones.
+  </para>
+ </section>
 </chapter>
diff --git a/nixos/modules/security/apparmor.nix b/nixos/modules/security/apparmor.nix
index cfc65b347bc..2ee10454fd2 100644
--- a/nixos/modules/security/apparmor.nix
+++ b/nixos/modules/security/apparmor.nix
@@ -23,11 +23,17 @@ in
          default = [];
          description = "List of packages to be added to apparmor's include path";
        };
+       parserConfig = mkOption {
+         type = types.str;
+         default = "";
+         description = "AppArmor parser configuration file content";
+       };
      };
    };
 
    config = mkIf cfg.enable {
      environment.systemPackages = [ pkgs.apparmor-utils ];
+     environment.etc."apparmor/parser.conf".text = cfg.parserConfig;
 
      boot.kernelParams = [ "apparmor=1" "security=apparmor" ];
 
diff --git a/nixos/modules/security/duosec.nix b/nixos/modules/security/duosec.nix
index 71428b82f5d..c47be80b9dc 100644
--- a/nixos/modules/security/duosec.nix
+++ b/nixos/modules/security/duosec.nix
@@ -51,7 +51,7 @@ in
       };
 
       secretKeyFile = mkOption {
-        type = types.path;
+        type = types.nullOr types.path;
         default = null;
         description = ''
           A file containing your secret key. The security of your Duo application is tied to the security of your secret key.
diff --git a/nixos/modules/security/misc.nix b/nixos/modules/security/misc.nix
index 16e3bfb1419..d51dbbb77f7 100644
--- a/nixos/modules/security/misc.nix
+++ b/nixos/modules/security/misc.nix
@@ -27,6 +27,16 @@ with lib;
       '';
     };
 
+    security.unprivilegedUsernsClone = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        When disabled, unprivileged users will not be able to create new namespaces.
+        By default unprivileged user namespaces are disabled.
+        This option only works in a hardened profile.
+      '';
+    };
+
     security.protectKernelImage = mkOption {
       type = types.bool;
       default = false;
@@ -115,6 +125,10 @@ with lib;
       ];
     })
 
+    (mkIf config.security.unprivilegedUsernsClone {
+      boot.kernel.sysctl."kernel.unprivileged_userns_clone" = mkDefault true;
+    })
+
     (mkIf config.security.protectKernelImage {
       # Disable hibernation (allows replacing the running kernel)
       boot.kernelParams = [ "nohibernate" ];
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index 688344852ae..ce74805ef41 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -36,6 +36,17 @@ let
         '';
       };
 
+      p11Auth = mkOption {
+        default = config.security.pam.p11.enable;
+        type = types.bool;
+        description = ''
+          If set, keys listed in
+          <filename>~/.ssh/authorized_keys</filename> and
+          <filename>~/.eid/authorized_certificates</filename>
+          can be used to log in with the associated PKCS#11 tokens.
+        '';
+      };
+
       u2fAuth = mkOption {
         default = config.security.pam.u2f.enable;
         type = types.bool;
@@ -352,6 +363,8 @@ let
               "auth sufficient ${pkgs.pam_ssh_agent_auth}/libexec/pam_ssh_agent_auth.so file=~/.ssh/authorized_keys:~/.ssh/authorized_keys2:/etc/ssh/authorized_keys.d/%u"}
           ${optionalString cfg.fprintAuth
               "auth sufficient ${pkgs.fprintd}/lib/security/pam_fprintd.so"}
+          ${let p11 = config.security.pam.p11; in optionalString cfg.p11Auth
+              "auth ${p11.control} ${pkgs.pam_p11}/lib/security/pam_p11.so ${pkgs.opensc}/lib/opensc-pkcs11.so"}
           ${let u2f = config.security.pam.u2f; in optionalString cfg.u2fAuth
               "auth ${u2f.control} ${pkgs.pam_u2f}/lib/security/pam_u2f.so ${optionalString u2f.debug "debug"} ${optionalString (u2f.authFile != null) "authfile=${u2f.authFile}"} ${optionalString u2f.interactive "interactive"} ${optionalString u2f.cue "cue"}"}
           ${optionalString cfg.usbAuth
@@ -531,7 +544,7 @@ in
 
     security.pam.services = mkOption {
       default = [];
-      type = with types; loaOf (submodule pamOpts);
+      type = with types; attrsOf (submodule pamOpts);
       description =
         ''
           This option defines the PAM services.  A service typically
@@ -566,6 +579,39 @@ in
 
     security.pam.enableOTPW = mkEnableOption "the OTPW (one-time password) PAM module";
 
+    security.pam.p11 = {
+      enable = mkOption {
+        default = false;
+        type = types.bool;
+        description = ''
+          Enables P11 PAM (<literal>pam_p11</literal>) module.
+
+          If set, users can log in with SSH keys and PKCS#11 tokens.
+
+          More information can be found <link
+          xlink:href="https://github.com/OpenSC/pam_p11">here</link>.
+        '';
+      };
+
+      control = mkOption {
+        default = "sufficient";
+        type = types.enum [ "required" "requisite" "sufficient" "optional" ];
+        description = ''
+          This option sets pam "control".
+          If you want to have multi factor authentication, use "required".
+          If you want to use the PKCS#11 device instead of the regular password,
+          use "sufficient".
+
+          Read
+          <citerefentry>
+            <refentrytitle>pam.conf</refentrytitle>
+            <manvolnum>5</manvolnum>
+          </citerefentry>
+          for better understanding of this option.
+        '';
+      };
+    };
+
     security.pam.u2f = {
       enable = mkOption {
         default = false;
@@ -747,6 +793,7 @@ in
       ++ optionals config.krb5.enable [pam_krb5 pam_ccreds]
       ++ optionals config.security.pam.enableOTPW [ pkgs.otpw ]
       ++ optionals config.security.pam.oath.enable [ pkgs.oathToolkit ]
+      ++ optionals config.security.pam.p11.enable [ pkgs.pam_p11 ]
       ++ optionals config.security.pam.u2f.enable [ pkgs.pam_u2f ];
 
     boot.supportedFilesystems = optionals config.security.pam.enableEcryptfs [ "ecryptfs" ];
diff --git a/nixos/modules/security/tpm2.nix b/nixos/modules/security/tpm2.nix
index 13804fb82cb..27f9b58c975 100644
--- a/nixos/modules/security/tpm2.nix
+++ b/nixos/modules/security/tpm2.nix
@@ -170,7 +170,6 @@ in {
           Restart = "always";
           RestartSec = 30;
           BusName = "com.intel.tss2.Tabrmd";
-          StandardOutput = "syslog";
           ExecStart = "${cfg.abrmd.package}/bin/tpm2-abrmd";
           User = "tss";
           Group = "nogroup";
diff --git a/nixos/modules/security/wrappers/default.nix b/nixos/modules/security/wrappers/default.nix
index a0fadb018ec..2def74f8535 100644
--- a/nixos/modules/security/wrappers/default.nix
+++ b/nixos/modules/security/wrappers/default.nix
@@ -160,8 +160,11 @@ in
   config = {
 
     security.wrappers = {
+      # These are mount related wrappers that require the +s permission.
       fusermount.source = "${pkgs.fuse}/bin/fusermount";
       fusermount3.source = "${pkgs.fuse3}/bin/fusermount3";
+      mount.source = "${lib.getBin pkgs.utillinux}/bin/mount";
+      umount.source = "${lib.getBin pkgs.utillinux}/bin/umount";
     };
 
     boot.specialFileSystems.${parentWrapperDir} = {
diff --git a/nixos/modules/services/audio/icecast.nix b/nixos/modules/services/audio/icecast.nix
index 6a8a0f9975b..6ca20a7a108 100644
--- a/nixos/modules/services/audio/icecast.nix
+++ b/nixos/modules/services/audio/icecast.nix
@@ -23,7 +23,7 @@ let
       <listen-socket>
         <port>${toString cfg.listen.port}</port>
         <bind-address>${cfg.listen.address}</bind-address>
-      </listen-socket>   
+      </listen-socket>
 
       <security>
         <chroot>0</chroot>
@@ -47,7 +47,7 @@ in {
       enable = mkEnableOption "Icecast server";
 
       hostname = mkOption {
-        type = types.str;
+        type = types.nullOr types.str;
         description = "DNS name or IP address that will be used for the stream directory lookups or possibily the playlist generation if a Host header is not provided.";
         default = config.networking.domain;
       };
@@ -70,7 +70,7 @@ in {
         description = "Base directory used for logging.";
         default = "/var/log/icecast";
       };
-      
+
       listen = {
         port = mkOption {
           type = types.int;
diff --git a/nixos/modules/services/audio/roon-server.nix b/nixos/modules/services/audio/roon-server.nix
index 6aed485638c..eceb65044c5 100644
--- a/nixos/modules/services/audio/roon-server.nix
+++ b/nixos/modules/services/audio/roon-server.nix
@@ -45,14 +45,14 @@ in {
       environment.ROON_DATAROOT = "/var/lib/${name}";
 
       serviceConfig = {
-        ExecStart = "${pkgs.roon-server}/opt/start.sh";
+        ExecStart = "${pkgs.roon-server}/start.sh";
         LimitNOFILE = 8192;
         User = cfg.user;
         Group = cfg.group;
         StateDirectory = name;
       };
     };
-    
+
     networking.firewall = mkIf cfg.openFirewall {
       allowedTCPPortRanges = [
         { from = 9100; to = 9200; }
@@ -60,7 +60,7 @@ in {
       allowedUDPPorts = [ 9003 ];
     };
 
-    
+
     users.groups.${cfg.group} = {};
     users.users.${cfg.user} =
       if cfg.user == "roon-server" then {
diff --git a/nixos/modules/services/audio/snapserver.nix b/nixos/modules/services/audio/snapserver.nix
index b0b9264e816..f614f0ba3e1 100644
--- a/nixos/modules/services/audio/snapserver.nix
+++ b/nixos/modules/services/audio/snapserver.nix
@@ -31,27 +31,42 @@ let
     let
       os = val:
         optionalString (val != null) "${val}";
-      os' = prefixx: val:
-        optionalString (val != null) (prefixx + "${val}");
+      os' = prefix: val:
+        optionalString (val != null) (prefix + "${val}");
       flatten = key: value:
         "&${key}=${value}";
     in
-      "-s ${opt.type}://" + os opt.location + "?" + os' "name=" name
-        + concatStrings (mapAttrsToList flatten opt.query);
+      "--stream.stream=\"${opt.type}://" + os opt.location + "?" + os' "name=" name
+        + concatStrings (mapAttrsToList flatten opt.query) + "\"";
 
   optionalNull = val: ret:
     optional (val != null) ret;
 
   optionString = concatStringsSep " " (mapAttrsToList streamToOption cfg.streams
-             ++ ["-p ${toString cfg.port}"]
-             ++ ["--controlPort ${toString cfg.controlPort}"]
-             ++ optionalNull cfg.sampleFormat "--sampleFormat ${cfg.sampleFormat}"
-             ++ optionalNull cfg.codec "-c ${cfg.codec}"
-             ++ optionalNull cfg.streamBuffer "--streamBuffer ${cfg.streamBuffer}"
-             ++ optionalNull cfg.buffer "-b ${cfg.buffer}"
-             ++ optional cfg.sendToMuted "--sendToMuted");
+    # global options
+    ++ [ "--stream.bind_to_address ${cfg.listenAddress}" ]
+    ++ [ "--stream.port ${toString cfg.port}" ]
+    ++ optionalNull cfg.sampleFormat "--stream.sampleformat ${cfg.sampleFormat}"
+    ++ optionalNull cfg.codec "--stream.codec ${cfg.codec}"
+    ++ optionalNull cfg.streamBuffer "--stream.stream_buffer ${cfg.streamBuffer}"
+    ++ optionalNull cfg.buffer "--stream.buffer ${cfg.buffer}"
+    ++ optional cfg.sendToMuted "--stream.send_to_muted"
+    # tcp json rpc
+    ++ [ "--tcp.enabled ${toString cfg.tcp.enable}" ]
+    ++ optionals cfg.tcp.enable [
+      "--tcp.address ${cfg.tcp.listenAddress}"
+      "--tcp.port ${toString cfg.tcp.port}" ]
+     # http json rpc
+    ++ [ "--http.enabled ${toString cfg.http.enable}" ]
+    ++ optionals cfg.http.enable [
+      "--http.address ${cfg.http.listenAddress}"
+      "--http.port ${toString cfg.http.port}"
+    ] ++ optional (cfg.http.docRoot != null) "--http.doc_root \"${toString cfg.http.docRoot}\"");
 
 in {
+  imports = [
+    (mkRenamedOptionModule [ "services" "snapserver" "controlPort"] [ "services" "snapserver" "tcp" "port" ])
+  ];
 
   ###### interface
 
@@ -67,6 +82,15 @@ in {
         '';
       };
 
+      listenAddress = mkOption {
+        type = types.str;
+        default = "::";
+        example = "0.0.0.0";
+        description = ''
+          The address where snapclients can connect.
+        '';
+      };
+
       port = mkOption {
         type = types.port;
         default = 1704;
@@ -75,24 +99,100 @@ in {
         '';
       };
 
-      controlPort = mkOption {
+      openFirewall = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to automatically open the specified ports in the firewall.
+        '';
+      };
+
+      inherit sampleFormat;
+      inherit codec;
+
+      streamBuffer = mkOption {
+        type = with types; nullOr int;
+        default = null;
+        description = ''
+          Stream read (input) buffer in ms.
+        '';
+        example = 20;
+      };
+
+      buffer = mkOption {
+        type = with types; nullOr int;
+        default = null;
+        description = ''
+          Network buffer in ms.
+        '';
+        example = 1000;
+      };
+
+      sendToMuted = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Send audio to muted clients.
+        '';
+      };
+
+      tcp.enable = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to enable the JSON-RPC via TCP.
+        '';
+      };
+
+      tcp.listenAddress = mkOption {
+        type = types.str;
+        default = "::";
+        example = "0.0.0.0";
+        description = ''
+          The address where the TCP JSON-RPC listens on.
+        '';
+      };
+
+      tcp.port = mkOption {
         type = types.port;
         default = 1705;
         description = ''
-          The port for control connections (JSON-RPC).
+          The port where the TCP JSON-RPC listens on.
         '';
       };
 
-      openFirewall = mkOption {
+      http.enable = mkOption {
         type = types.bool;
         default = true;
         description = ''
-          Whether to automatically open the specified ports in the firewall.
+          Whether to enable the JSON-RPC via HTTP.
         '';
       };
 
-      inherit sampleFormat;
-      inherit codec;
+      http.listenAddress = mkOption {
+        type = types.str;
+        default = "::";
+        example = "0.0.0.0";
+        description = ''
+          The address where the HTTP JSON-RPC listens on.
+        '';
+      };
+
+      http.port = mkOption {
+        type = types.port;
+        default = 1780;
+        description = ''
+          The port where the HTTP JSON-RPC listens on.
+        '';
+      };
+
+      http.docRoot = mkOption {
+        type = with types; nullOr path;
+        default = null;
+        description = ''
+          Path to serve from the HTTP servers root.
+        '';
+      };
 
       streams = mkOption {
         type = with types; attrsOf (submodule {
@@ -147,34 +247,7 @@ in {
           };
         '';
       };
-
-      streamBuffer = mkOption {
-        type = with types; nullOr int;
-        default = null;
-        description = ''
-          Stream read (input) buffer in ms.
-        '';
-        example = 20;
-      };
-
-      buffer = mkOption {
-        type = with types; nullOr int;
-        default = null;
-        description = ''
-          Network buffer in ms.
-        '';
-        example = 1000;
-      };
-
-      sendToMuted = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Send audio to muted clients.
-        '';
-      };
     };
-
   };
 
 
@@ -206,7 +279,10 @@ in {
       };
     };
 
-    networking.firewall.allowedTCPPorts = optionals cfg.openFirewall [ cfg.port cfg.controlPort ];
+    networking.firewall.allowedTCPPorts =
+      optionals cfg.openFirewall [ cfg.port ]
+      ++ optional cfg.tcp.enable cfg.tcp.port
+      ++ optional cfg.http.enable cfg.http.port;
   };
 
   meta = {
diff --git a/nixos/modules/services/audio/spotifyd.nix b/nixos/modules/services/audio/spotifyd.nix
index 4b74e753279..a589153248f 100644
--- a/nixos/modules/services/audio/spotifyd.nix
+++ b/nixos/modules/services/audio/spotifyd.nix
@@ -16,7 +16,7 @@ in
         type = types.lines;
         description = ''
           Configuration for Spotifyd. For syntax and directives, see
-          https://github.com/Spotifyd/spotifyd#Configuration.
+          <link xlink:href="https://github.com/Spotifyd/spotifyd#Configuration"/>.
         '';
       };
     };
diff --git a/nixos/modules/services/backup/bacula.nix b/nixos/modules/services/backup/bacula.nix
index cef304734ae..3d69a69038a 100644
--- a/nixos/modules/services/backup/bacula.nix
+++ b/nixos/modules/services/backup/bacula.nix
@@ -18,7 +18,7 @@ let
         Pid Directory = "/run";
         ${fd_cfg.extraClientConfig}
       }
-     
+
       ${concatStringsSep "\n" (mapAttrsToList (name: value: ''
       Director {
         Name = "${name}";
@@ -26,7 +26,7 @@ let
         Monitor = "${value.monitor}";
       }
       '') fd_cfg.director)}
-     
+
       Messages {
         Name = Standard;
         syslog = all, !skipped, !restored
@@ -35,7 +35,7 @@ let
     '';
 
   sd_cfg = config.services.bacula-sd;
-  sd_conf = pkgs.writeText "bacula-sd.conf" 
+  sd_conf = pkgs.writeText "bacula-sd.conf"
     ''
       Storage {
         Name = "${sd_cfg.name}";
@@ -80,7 +80,7 @@ let
     '';
 
   dir_cfg = config.services.bacula-dir;
-  dir_conf = pkgs.writeText "bacula-dir.conf" 
+  dir_conf = pkgs.writeText "bacula-dir.conf"
     ''
     Director {
       Name = "${dir_cfg.name}";
@@ -125,10 +125,10 @@ let
 
           The password is plain text. It is not generated through any special
           process but as noted above, it is better to use random text for
-          security reasons. 
+          security reasons.
         '';
       };
-      
+
       monitor = mkOption {
         default = "no";
         example = "yes";
@@ -140,7 +140,7 @@ let
 
           Please note that if this director is being used by a Monitor, we
           highly recommend to set this directive to yes to avoid serious
-          security problems. 
+          security problems.
         '';
       };
     };
@@ -163,7 +163,7 @@ let
           type of autochanger, what you specify here can vary. This directive
           is optional. See the Using AutochangersAutochangersChapter chapter of
           this manual for more details of using this and the following
-          autochanger directives.         
+          autochanger directives.
           '';
       };
 
@@ -200,7 +200,7 @@ let
           Extra configuration to be passed in Autochanger directive.
         '';
         example = ''
-   
+
         '';
       };
     };
@@ -222,7 +222,7 @@ let
           if you are archiving to disk storage. In this case, you must supply
           the full absolute path to the directory. When specifying a tape
           device, it is preferable that the "non-rewind" variant of the device
-          file name be given. 
+          file name be given.
         '';
       };
 
@@ -290,7 +290,7 @@ in {
           Whether to enable the Bacula File Daemon.
         '';
       };
- 
+
       name = mkOption {
         default = "${config.networking.hostName}-fd";
         description = ''
@@ -300,7 +300,7 @@ in {
           Clients. This directive is required.
         '';
       };
- 
+
       port = mkOption {
         default = 9102;
         type = types.int;
@@ -310,7 +310,7 @@ in {
           the Client resource of the Director's configuration file.
         '';
       };
- 
+
       director = mkOption {
         default = {};
         description = ''
@@ -349,14 +349,14 @@ in {
           Whether to enable Bacula Storage Daemon.
         '';
       };
- 
+
       name = mkOption {
         default = "${config.networking.hostName}-sd";
         description = ''
           Specifies the Name of the Storage daemon.
         '';
       };
- 
+
       port = mkOption {
         default = 9103;
         type = types.int;
@@ -410,7 +410,7 @@ in {
           console = all
         '';
       };
- 
+
     };
 
     services.bacula-dir = {
@@ -429,7 +429,7 @@ in {
           required.
         '';
       };
- 
+
       port = mkOption {
         default = 9101;
         type = types.int;
@@ -442,7 +442,7 @@ in {
           specify DirAddresses (N.B plural) directive.
         '';
       };
- 
+
       password = mkOption {
         # TODO: required?
         description = ''
diff --git a/nixos/modules/services/backup/borgbackup.xml b/nixos/modules/services/backup/borgbackup.xml
index bef7db608f8..a197f38ffb9 100644
--- a/nixos/modules/services/backup/borgbackup.xml
+++ b/nixos/modules/services/backup/borgbackup.xml
@@ -197,26 +197,8 @@ sudo borg init --encryption=repokey-blake2  \
     disk failure, ransomware and theft.
   </para>
   <para>
-    It is available as a flatpak package. To enable it you must set the
-    following two configuration items.
-  </para>
-  <para>
-    <programlisting>
-services.flatpak.enable = true ;
-# next line is needed to avoid the Error
-# Error deploying: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown:
-services.accounts-daemon.enable = true;
-    </programlisting>
-  </para>
-  <para>As a normal user you must first install, then run vorta using the
-    following commands:
-    <programlisting>
-flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
-flatpak install flathub com.borgbase.Vorta
-flatpak run --branch=stable --arch=x86_64 --command=vorta com.borgbase.Vorta
-</programlisting>
-    After running <code>flatpak install</code> you can start Vorta also via
-        the KDE application menu.
+   It can be installed in NixOS e.g. by adding <package>pkgs.vorta</package>
+   to <xref linkend="opt-environment.systemPackages" />.
   </para>
   <para>
     Details about using Vorta can be found under <link
diff --git a/nixos/modules/services/backup/restic.nix b/nixos/modules/services/backup/restic.nix
index 2388f1d6ca1..d869835bf07 100644
--- a/nixos/modules/services/backup/restic.nix
+++ b/nixos/modules/services/backup/restic.nix
@@ -31,6 +31,59 @@ in
           '';
         };
 
+        rcloneOptions = mkOption {
+          type = with types; nullOr (attrsOf (oneOf [ str bool ]));
+          default = null;
+          description = ''
+            Options to pass to rclone to control its behavior.
+            See <link xlink:href="https://rclone.org/docs/#options"/> for
+            available options. When specifying option names, strip the
+            leading <literal>--</literal>. To set a flag such as
+            <literal>--drive-use-trash</literal>, which does not take a value,
+            set the value to the Boolean <literal>true</literal>.
+          '';
+          example = {
+            bwlimit = "10M";
+            drive-use-trash = "true";
+          };
+        };
+
+        rcloneConfig = mkOption {
+          type = with types; nullOr (attrsOf (oneOf [ str bool ]));
+          default = null;
+          description = ''
+            Configuration for the rclone remote being used for backup.
+            See the remote's specific options under rclone's docs at
+            <link xlink:href="https://rclone.org/docs/"/>. When specifying
+            option names, use the "config" name specified in the docs.
+            For example, to set <literal>--b2-hard-delete</literal> for a B2
+            remote, use <literal>hard_delete = true</literal> in the
+            attribute set.
+            Warning: Secrets set in here will be world-readable in the Nix
+            store! Consider using the <literal>rcloneConfigFile</literal>
+            option instead to specify secret values separately. Note that
+            options set here will override those set in the config file.
+          '';
+          example = {
+            type = "b2";
+            account = "xxx";
+            key = "xxx";
+            hard_delete = true;
+          };
+        };
+
+        rcloneConfigFile = mkOption {
+          type = with types; nullOr path;
+          default = null;
+          description = ''
+            Path to the file containing rclone configuration. This file
+            must contain configuration for the remote specified in this backup
+            set and also must be readable by root. Options set in
+            <literal>rcloneConfig</literal> will override those set in this
+            file.
+          '';
+        };
+
         repository = mkOption {
           type = types.str;
           description = ''
@@ -170,11 +223,22 @@ in
             ( resticCmd + " forget --prune " + (concatStringsSep " " backup.pruneOpts) )
             ( resticCmd + " check" )
           ];
+          # Helper functions for rclone remotes
+          rcloneRemoteName = builtins.elemAt (splitString ":" backup.repository) 1;
+          rcloneAttrToOpt = v: "RCLONE_" + toUpper (builtins.replaceStrings [ "-" ] [ "_" ] v);
+          rcloneAttrToConf = v: "RCLONE_CONFIG_" + toUpper (rcloneRemoteName + "_" + v);
+          toRcloneVal = v: if lib.isBool v then lib.boolToString v else v;
         in nameValuePair "restic-backups-${name}" ({
           environment = {
             RESTIC_PASSWORD_FILE = backup.passwordFile;
             RESTIC_REPOSITORY = backup.repository;
-          };
+          } // optionalAttrs (backup.rcloneOptions != null) (mapAttrs' (name: value:
+            nameValuePair (rcloneAttrToOpt name) (toRcloneVal value)
+          ) backup.rcloneOptions) // optionalAttrs (backup.rcloneConfigFile != null) {
+            RCLONE_CONFIG = backup.rcloneConfigFile;
+          } // optionalAttrs (backup.rcloneConfig != null) (mapAttrs' (name: value:
+            nameValuePair (rcloneAttrToConf name) (toRcloneVal value)
+          ) backup.rcloneConfig);
           path = [ pkgs.openssh ];
           restartIfChanged = false;
           serviceConfig = {
diff --git a/nixos/modules/services/backup/zfs-replication.nix b/nixos/modules/services/backup/zfs-replication.nix
index 5a64304275d..6d75774c78f 100644
--- a/nixos/modules/services/backup/zfs-replication.nix
+++ b/nixos/modules/services/backup/zfs-replication.nix
@@ -18,7 +18,7 @@ in {
       };
 
       host = mkOption {
-        description = "Remote host where snapshots should be sent.";
+        description = "Remote host where snapshots should be sent. <literal>lz4</literal> is expected to be installed on this host.";
         example = "example.com";
         type = types.str;
       };
diff --git a/nixos/modules/services/backup/znapzend.nix b/nixos/modules/services/backup/znapzend.nix
index 8098617d11f..0ca71b413ce 100644
--- a/nixos/modules/services/backup/znapzend.nix
+++ b/nixos/modules/services/backup/znapzend.nix
@@ -220,7 +220,7 @@ let
       };
 
       destinations = mkOption {
-        type = loaOf (destType config);
+        type = attrsOf (destType config);
         description = "Additional destinations.";
         default = {};
         example = literalExample ''
@@ -328,7 +328,7 @@ in
       };
 
       zetup = mkOption {
-        type = loaOf srcType;
+        type = attrsOf srcType;
         description = "Znapzend configuration.";
         default = {};
         example = literalExample ''
diff --git a/nixos/modules/services/computing/slurm/slurm.nix b/nixos/modules/services/computing/slurm/slurm.nix
index 050872e933f..705390a21d4 100644
--- a/nixos/modules/services/computing/slurm/slurm.nix
+++ b/nixos/modules/services/computing/slurm/slurm.nix
@@ -67,7 +67,7 @@ in
           type = types.bool;
           default = false;
           description = ''
-            Wether to enable the slurm control daemon.
+            Whether to enable the slurm control daemon.
             Note that the standard authentication method is "munge".
             The "munge" service needs to be provided with a password file in order for
             slurm to work properly (see <literal>services.munge.password</literal>).
@@ -135,7 +135,7 @@ in
         type = types.bool;
         default = false;
         description = ''
-          Wether to provide a slurm.conf file.
+          Whether to provide a slurm.conf file.
           Enable this option if you do not run a slurm daemon on this host
           (i.e. <literal>server.enable</literal> and <literal>client.enable</literal> are <literal>false</literal>)
           but you still want to run slurm commands from this host.
diff --git a/nixos/modules/services/computing/torque/mom.nix b/nixos/modules/services/computing/torque/mom.nix
index 83772539a7a..0c5f43cf3e6 100644
--- a/nixos/modules/services/computing/torque/mom.nix
+++ b/nixos/modules/services/computing/torque/mom.nix
@@ -60,4 +60,4 @@ in
     };
 
   };
-}      
+}
diff --git a/nixos/modules/services/computing/torque/server.nix b/nixos/modules/services/computing/torque/server.nix
index 655d1500497..21c5a4f4672 100644
--- a/nixos/modules/services/computing/torque/server.nix
+++ b/nixos/modules/services/computing/torque/server.nix
@@ -93,4 +93,4 @@ in
     };
 
   };
-}      
+}
diff --git a/nixos/modules/services/continuous-integration/buildbot/worker.nix b/nixos/modules/services/continuous-integration/buildbot/worker.nix
index 52f24b8cee3..7b8a35f54bf 100644
--- a/nixos/modules/services/continuous-integration/buildbot/worker.nix
+++ b/nixos/modules/services/continuous-integration/buildbot/worker.nix
@@ -29,7 +29,7 @@ let
 
     with open('${cfg.workerPassFile}', 'r', encoding='utf-8') as passwd_file:
         passwd = passwd_file.read().strip('\r\n')
-    keepalive = 600
+    keepalive = ${toString cfg.keepalive}
     umask = None
     maxdelay = 300
     numcpus = None
@@ -116,6 +116,15 @@ in {
         description = "Specifies the Buildbot Worker connection string.";
       };
 
+      keepalive = mkOption {
+        default = 600;
+        type = types.int;
+        description = "
+          This is a number that indicates how frequently keepalive messages should be sent
+          from the worker to the buildmaster, expressed in seconds.
+        ";
+      };
+
       package = mkOption {
         type = types.package;
         default = pkgs.python3Packages.buildbot-worker;
diff --git a/nixos/modules/services/continuous-integration/gitlab-runner.nix b/nixos/modules/services/continuous-integration/gitlab-runner.nix
index 4cff19839a2..431555309cc 100644
--- a/nixos/modules/services/continuous-integration/gitlab-runner.nix
+++ b/nixos/modules/services/continuous-integration/gitlab-runner.nix
@@ -49,6 +49,8 @@ let
           ] ++ service.registrationFlags
             ++ optional (service.buildsDir != null)
             "--builds-dir ${service.buildsDir}"
+            ++ optional (service.cloneUrl != null)
+            "--clone-url ${service.cloneUrl}"
             ++ optional (service.preCloneScript != null)
             "--pre-clone-script ${service.preCloneScript}"
             ++ optional (service.preBuildScript != null)
@@ -377,6 +379,14 @@ in
               in context of selected executor (Locally, Docker, SSH).
             '';
           };
+          cloneUrl = mkOption {
+            type = types.nullOr types.str;
+            default = null;
+            example = "http://gitlab.example.local";
+            description = ''
+              Overwrite the URL for the GitLab instance. Used if the Runner can’t connect to GitLab on the URL GitLab exposes itself.
+            '';
+          };
           dockerImage = mkOption {
             type = types.nullOr types.str;
             default = null;
diff --git a/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix b/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
new file mode 100644
index 00000000000..4aed493c0fb
--- /dev/null
+++ b/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
@@ -0,0 +1,213 @@
+/*
+
+This file is for options that NixOS and nix-darwin have in common.
+
+Platform-specific code is in the respective default.nix files.
+
+ */
+
+{ config, lib, options, pkgs, ... }:
+
+let
+  inherit (lib) mkOption mkIf types filterAttrs literalExample mkRenamedOptionModule;
+
+  cfg =
+    config.services.hercules-ci-agent;
+
+  format = pkgs.formats.toml {};
+
+  settingsModule = { config, ... }: {
+    freeformType = format.type;
+    options = {
+      baseDirectory = mkOption {
+        type = types.path;
+        default = "/var/lib/hercules-ci-agent";
+        description = ''
+          State directory (secrets, work directory, etc) for agent
+        '';
+      };
+      concurrentTasks = mkOption {
+        description = ''
+          Number of tasks to perform simultaneously, such as evaluations, derivations.
+
+          You must have a total capacity across agents of at least 2 concurrent tasks on <literal>x86_64-linux</literal>
+          to allow for import from derivation.
+        '';
+        type = types.int;
+        default = 4;
+      };
+      workDirectory = mkOption {
+        description = ''
+          The directory in which temporary subdirectories are created for task state. This includes sources for Nix evaluation.
+        '';
+        type = types.path;
+        default = config.baseDirectory + "/work";
+        defaultText = literalExample ''baseDirectory + "/work"'';
+      };
+      staticSecretsDirectory = mkOption {
+        description = ''
+          This is the default directory to look for statically configured secrets like <literal>cluster-join-token.key</literal>.
+        '';
+        type = types.path;
+        default = config.baseDirectory + "/secrets";
+        defaultText = literalExample ''baseDirectory + "/secrets"'';
+      };
+      clusterJoinTokenPath = mkOption {
+        description = ''
+          Location of the cluster-join-token.key file.
+        '';
+        type = types.path;
+        default = config.staticSecretsDirectory + "/cluster-join-token.key";
+        defaultText = literalExample ''staticSecretsDirectory + "/cluster-join-token.key"'';
+        # internal: It's a bit too detailed to show by default in the docs,
+        # but useful to define explicitly to allow reuse by other modules.
+        internal = true;
+      };
+      binaryCachesPath = mkOption {
+        description = ''
+          Location of the binary-caches.json file.
+        '';
+        type = types.path;
+        default = config.staticSecretsDirectory + "/binary-caches.json";
+        defaultText = literalExample ''staticSecretsDirectory + "/binary-caches.json"'';
+        # internal: It's a bit too detailed to show by default in the docs,
+        # but useful to define explicitly to allow reuse by other modules.
+        internal = true;
+      };
+    };
+  };
+
+  checkNix =
+    if !cfg.checkNix
+    then ""
+    else if lib.versionAtLeast config.nix.package.version "2.4.0"
+    then ""
+    else pkgs.stdenv.mkDerivation {
+      name = "hercules-ci-check-system-nix-src";
+      inherit (config.nix.package) src patches;
+      configurePhase = ":";
+      buildPhase = ''
+        echo "Checking in-memory pathInfoCache expiry"
+        if ! grep 'struct PathInfoCacheValue' src/libstore/store-api.hh >/dev/null; then
+          cat 1>&2 <<EOF
+
+          You are deploying Hercules CI Agent on a system with an incompatible
+          nix-daemon. Please
+           - either upgrade Nix to version 2.4.0 (when released),
+           - or set option services.hercules-ci-agent.patchNix = true;
+           - or set option nix.package to a build of Nix 2.3 with this patch applied:
+               https://github.com/NixOS/nix/pull/3405
+
+          The patch is required for Nix-daemon clients that expect a change in binary
+          cache contents while running, like the agent's evaluator. Without it, import
+          from derivation will fail if your cluster has more than one machine.
+          We are conservative with changes to the overall system, which is why we
+          keep changes to a minimum and why we ask for confirmation in the form of
+          services.hercules-ci-agent.patchNix = true before applying.
+
+        EOF
+          exit 1
+        fi
+      '';
+      installPhase = "touch $out";
+    };
+
+  patchedNix = lib.mkIf (!lib.versionAtLeast pkgs.nix.version "2.4.0") (
+    if lib.versionAtLeast pkgs.nix.version "2.4pre"
+    then lib.warn "Hercules CI Agent module will not patch 2.4 pre-release. Make sure it includes (equivalently) PR #3043, commit d048577909 or is no older than 2020-03-13." pkgs.nix
+    else pkgs.nix.overrideAttrs (
+      o: {
+        patches = (o.patches or []) ++ [ backportNix3398 ];
+      }
+    )
+  );
+
+  backportNix3398 = pkgs.fetchurl {
+    url = "https://raw.githubusercontent.com/hercules-ci/hercules-ci-agent/hercules-ci-agent-0.7.3/for-upstream/issue-3398-path-info-cache-ttls-backport-2.3.patch";
+    sha256 = "0jfckqjir9il2il7904yc1qyadw366y7xqzg81sp9sl3f1pw70ib";
+  };
+in
+{
+  imports = [
+    (mkRenamedOptionModule ["services" "hercules-ci-agent" "extraOptions"] ["services" "hercules-ci-agent" "settings"])
+    (mkRenamedOptionModule ["services" "hercules-ci-agent" "baseDirectory"] ["services" "hercules-ci-agent" "settings" "baseDirectory"])
+    (mkRenamedOptionModule ["services" "hercules-ci-agent" "concurrentTasks"] ["services" "hercules-ci-agent" "settings" "concurrentTasks"])
+  ];
+
+  options.services.hercules-ci-agent = {
+    enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Enable to run Hercules CI Agent as a system service.
+
+        <link xlink:href="https://hercules-ci.com">Hercules CI</link> is a
+        continuous integation service that is centered around Nix.
+
+        Support is available at <link xlink:href="mailto:help@hercules-ci.com">help@hercules-ci.com</link>.
+      '';
+    };
+    patchNix = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Fix Nix 2.3 cache path metadata caching behavior. Has the effect of <literal>nix.package = patch pkgs.nix;</literal>
+
+        This option will be removed when Hercules CI Agent moves to Nix 2.4 (upcoming Nix release).
+      '';
+    };
+    checkNix = mkOption {
+      type = types.bool;
+      default = true;
+      description = ''
+        Whether to make sure that the system's Nix (nix-daemon) is compatible.
+
+        If you set this to false, please keep up with the change log.
+      '';
+    };
+    package = mkOption {
+      description = ''
+        Package containing the bin/hercules-ci-agent executable.
+      '';
+      type = types.package;
+      default = pkgs.hercules-ci-agent;
+      defaultText = literalExample "pkgs.hercules-ci-agent";
+    };
+    settings = mkOption {
+      description = ''
+        These settings are written to the <literal>agent.toml</literal> file.
+
+        Not all settings are listed as options, can be set nonetheless.
+
+        For the exhaustive list of settings, see <link xlink:href="https://docs.hercules-ci.com/hercules-ci/reference/agent-config/"/>.
+      '';
+      type = types.submoduleWith { modules = [ settingsModule ]; };
+    };
+
+    /*
+      Internal and/or computed values.
+
+      These are written as options instead of let binding to allow sharing with
+      default.nix on both NixOS and nix-darwin.
+     */
+    tomlFile = mkOption {
+      type = types.path;
+      internal = true;
+      defaultText = "generated hercules-ci-agent.toml";
+      description = ''
+        The fully assembled config file.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    nix.extraOptions = lib.addContextFrom checkNix ''
+      # A store path that was missing at first may well have finished building,
+      # even shortly after the previous lookup. This *also* applies to the daemon.
+      narinfo-cache-negative-ttl = 0
+    '';
+    nix.package = mkIf cfg.patchNix patchedNix;
+    services.hercules-ci-agent.tomlFile =
+      format.generate "hercules-ci-agent.toml" cfg.settings;
+  };
+}
diff --git a/nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix b/nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix
new file mode 100644
index 00000000000..d2e7e8e18f9
--- /dev/null
+++ b/nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix
@@ -0,0 +1,86 @@
+/*
+
+This file is for NixOS-specific options and configs.
+
+Code that is shared with nix-darwin goes in common.nix.
+
+ */
+
+{ pkgs, config, lib, ... }:
+
+let
+
+  inherit (lib) mkIf mkDefault;
+
+  cfg = config.services.hercules-ci-agent;
+
+  command = "${cfg.package}/bin/hercules-ci-agent --config ${cfg.tomlFile}";
+  testCommand = "${command} --test-configuration";
+
+in
+{
+  imports = [
+    ./common.nix
+    (lib.mkRenamedOptionModule ["services" "hercules-ci-agent" "user"] ["systemd" "services" "hercules-ci-agent" "serviceConfig" "User"])
+  ];
+
+  config = mkIf cfg.enable {
+
+    systemd.services.hercules-ci-agent = {
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network-online.target" ];
+      wants = [ "network-online.target" ];
+      path = [ config.nix.package ];
+      serviceConfig = {
+        User = "hercules-ci-agent";
+        ExecStart = command;
+        ExecStartPre = testCommand;
+        Restart = "on-failure";
+        RestartSec = 120;
+        StartLimitBurst = 30 * 1000000; # practically infinite
+      };
+    };
+
+    # Changes in the secrets do not affect the unit in any way that would cause
+    # a restart, which is currently necessary to reload the secrets.
+    systemd.paths.hercules-ci-agent-restart-files = {
+      wantedBy = [ "hercules-ci-agent.service" ];
+      pathConfig = {
+        Unit = "hercules-ci-agent-restarter.service";
+        PathChanged = [ cfg.settings.clusterJoinTokenPath cfg.settings.binaryCachesPath ];
+      };
+    };
+    systemd.services.hercules-ci-agent-restarter = {
+      serviceConfig.Type = "oneshot";
+      script = ''
+        # Wait a bit, with the effect of bundling up file changes into a single
+        # run of this script and hopefully a single restart.
+        sleep 10
+        if systemctl is-active --quiet hercules-ci-agent.service; then
+          if ${testCommand}; then
+            systemctl restart hercules-ci-agent.service
+          else
+            echo 1>&2 "WARNING: Not restarting agent because config is not valid at this time."
+          fi
+        else
+          echo 1>&2 "Not restarting hercules-ci-agent despite config file update, because it is not already active."
+        fi
+      '';
+    };
+
+    # Trusted user allows simplified configuration and better performance
+    # when operating in a cluster.
+    nix.trustedUsers = [ config.systemd.services.hercules-ci-agent.serviceConfig.User ];
+    services.hercules-ci-agent.settings.nixUserIsTrusted = true;
+
+    users.users.hercules-ci-agent = {
+      home = cfg.settings.baseDirectory;
+      createHome = true;
+      group = "hercules-ci-agent";
+      description = "Hercules CI Agent system user";
+      isSystemUser = true;
+    };
+
+    users.groups.hercules-ci-agent = {};
+  };
+}
diff --git a/nixos/modules/services/databases/mysql.nix b/nixos/modules/services/databases/mysql.nix
index 2e8c5b7640b..7d0a3f9afc4 100644
--- a/nixos/modules/services/databases/mysql.nix
+++ b/nixos/modules/services/databases/mysql.nix
@@ -6,12 +6,10 @@ let
 
   cfg = config.services.mysql;
 
-  mysql = cfg.package;
-
-  isMariaDB = lib.getName mysql == lib.getName pkgs.mariadb;
+  isMariaDB = lib.getName cfg.package == lib.getName pkgs.mariadb;
 
   mysqldOptions =
-    "--user=${cfg.user} --datadir=${cfg.dataDir} --basedir=${mysql}";
+    "--user=${cfg.user} --datadir=${cfg.dataDir} --basedir=${cfg.package}";
 
   settingsFile = pkgs.writeText "my.cnf" (
     generators.toINI { listsAsDuplicateKeys = true; } cfg.settings +
@@ -22,7 +20,7 @@ in
 
 {
   imports = [
-    (mkRemovedOptionModule [ "services" "mysql" "pidDir" ] "Don't wait for pidfiles, describe dependencies through systemd")
+    (mkRemovedOptionModule [ "services" "mysql" "pidDir" ] "Don't wait for pidfiles, describe dependencies through systemd.")
     (mkRemovedOptionModule [ "services" "mysql" "rootPassword" ] "Use socket authentication or set the password outside of the nix store.")
   ];
 
@@ -46,25 +44,31 @@ in
         type = types.nullOr types.str;
         default = null;
         example = literalExample "0.0.0.0";
-        description = "Address to bind to. The default is to bind to all addresses";
+        description = "Address to bind to. The default is to bind to all addresses.";
       };
 
       port = mkOption {
         type = types.int;
         default = 3306;
-        description = "Port of MySQL";
+        description = "Port of MySQL.";
       };
 
       user = mkOption {
         type = types.str;
         default = "mysql";
-        description = "User account under which MySQL runs";
+        description = "User account under which MySQL runs.";
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = "mysql";
+        description = "Group under which MySQL runs.";
       };
 
       dataDir = mkOption {
         type = types.path;
         example = "/var/lib/mysql";
-        description = "Location where MySQL stores its table files";
+        description = "Location where MySQL stores its table files.";
       };
 
       configFile = mkOption {
@@ -171,7 +175,7 @@ in
       initialScript = mkOption {
         type = types.nullOr types.path;
         default = null;
-        description = "A file containing SQL statements to be executed on the first startup. Can be used for granting certain permissions on the database";
+        description = "A file containing SQL statements to be executed on the first startup. Can be used for granting certain permissions on the database.";
       };
 
       ensureDatabases = mkOption {
@@ -259,33 +263,33 @@ in
         serverId = mkOption {
           type = types.int;
           default = 1;
-          description = "Id of the MySQL server instance. This number must be unique for each instance";
+          description = "Id of the MySQL server instance. This number must be unique for each instance.";
         };
 
         masterHost = mkOption {
           type = types.str;
-          description = "Hostname of the MySQL master server";
+          description = "Hostname of the MySQL master server.";
         };
 
         slaveHost = mkOption {
           type = types.str;
-          description = "Hostname of the MySQL slave server";
+          description = "Hostname of the MySQL slave server.";
         };
 
         masterUser = mkOption {
           type = types.str;
-          description = "Username of the MySQL replication user";
+          description = "Username of the MySQL replication user.";
         };
 
         masterPassword = mkOption {
           type = types.str;
-          description = "Password of the MySQL replication user";
+          description = "Password of the MySQL replication user.";
         };
 
         masterPort = mkOption {
           type = types.int;
           default = 3306;
-          description = "Port number on which the MySQL master server runs";
+          description = "Port number on which the MySQL master server runs.";
         };
       };
     };
@@ -317,29 +321,33 @@ in
         binlog-ignore-db = [ "information_schema" "performance_schema" "mysql" ];
       })
       (mkIf (!isMariaDB) {
-        plugin-load-add = optional (cfg.ensureUsers != []) "auth_socket.so";
+        plugin-load-add = "auth_socket.so";
       })
     ];
 
-    users.users.mysql = {
-      description = "MySQL server user";
-      group = "mysql";
-      uid = config.ids.uids.mysql;
+    users.users = optionalAttrs (cfg.user == "mysql") {
+      mysql = {
+        description = "MySQL server user";
+        group = cfg.group;
+        uid = config.ids.uids.mysql;
+      };
     };
 
-    users.groups.mysql.gid = config.ids.gids.mysql;
+    users.groups = optionalAttrs (cfg.group == "mysql") {
+      mysql.gid = config.ids.gids.mysql;
+    };
 
-    environment.systemPackages = [mysql];
+    environment.systemPackages = [ cfg.package ];
 
     environment.etc."my.cnf".source = cfg.configFile;
 
     systemd.tmpfiles.rules = [
-      "d '${cfg.dataDir}' 0700 ${cfg.user} mysql - -"
-      "z '${cfg.dataDir}' 0700 ${cfg.user} mysql - -"
+      "d '${cfg.dataDir}' 0700 '${cfg.user}' '${cfg.group}' - -"
+      "z '${cfg.dataDir}' 0700 '${cfg.user}' '${cfg.group}' - -"
     ];
 
     systemd.services.mysql = let
-      hasNotify = (cfg.package == pkgs.mariadb);
+      hasNotify = isMariaDB;
     in {
         description = "MySQL Server";
 
@@ -357,125 +365,127 @@ in
 
         preStart = if isMariaDB then ''
           if ! test -e ${cfg.dataDir}/mysql; then
-            ${mysql}/bin/mysql_install_db --defaults-file=/etc/my.cnf ${mysqldOptions}
+            ${cfg.package}/bin/mysql_install_db --defaults-file=/etc/my.cnf ${mysqldOptions}
             touch ${cfg.dataDir}/mysql_init
           fi
         '' else ''
           if ! test -e ${cfg.dataDir}/mysql; then
-            ${mysql}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} --initialize-insecure
+            ${cfg.package}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} --initialize-insecure
             touch ${cfg.dataDir}/mysql_init
           fi
         '';
 
-        serviceConfig = {
-          Type = if hasNotify then "notify" else "simple";
-          Restart = "on-abort";
-          RestartSec = "5s";
-          # The last two environment variables are used for starting Galera clusters
-          ExecStart = "${mysql}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION";
-          ExecStartPost =
-            let
-              setupScript = pkgs.writeScript "mysql-setup" ''
-                #!${pkgs.runtimeShell} -e
-
-                ${optionalString (!hasNotify) ''
-                  # Wait until the MySQL server is available for use
-                  count=0
-                  while [ ! -e /run/mysqld/mysqld.sock ]
-                  do
-                      if [ $count -eq 30 ]
-                      then
-                          echo "Tried 30 times, giving up..."
-                          exit 1
-                      fi
-
-                      echo "MySQL daemon not yet started. Waiting for 1 second..."
-                      count=$((count++))
-                      sleep 1
-                  done
-                ''}
-
-                if [ -f ${cfg.dataDir}/mysql_init ]
+        postStart = let
+          # The super user account to use on *first* run of MySQL server
+          superUser = if isMariaDB then cfg.user else "root";
+        in ''
+          ${optionalString (!hasNotify) ''
+            # Wait until the MySQL server is available for use
+            count=0
+            while [ ! -e /run/mysqld/mysqld.sock ]
+            do
+                if [ $count -eq 30 ]
                 then
-                    ${concatMapStrings (database: ''
-                      # Create initial databases
-                      if ! test -e "${cfg.dataDir}/${database.name}"; then
-                          echo "Creating initial database: ${database.name}"
-                          ( echo 'create database `${database.name}`;'
-
-                            ${optionalString (database.schema != null) ''
-                            echo 'use `${database.name}`;'
-
-                            # TODO: this silently falls through if database.schema does not exist,
-                            # we should catch this somehow and exit, but can't do it here because we're in a subshell.
-                            if [ -f "${database.schema}" ]
-                            then
-                                cat ${database.schema}
-                            elif [ -d "${database.schema}" ]
-                            then
-                                cat ${database.schema}/mysql-databases/*.sql
-                            fi
-                            ''}
-                          ) | ${mysql}/bin/mysql -u root -N
-                      fi
-                    '') cfg.initialDatabases}
-
-                    ${optionalString (cfg.replication.role == "master")
-                      ''
-                        # Set up the replication master
+                    echo "Tried 30 times, giving up..."
+                    exit 1
+                fi
 
-                        ( echo "use mysql;"
-                          echo "CREATE USER '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' IDENTIFIED WITH mysql_native_password;"
-                          echo "SET PASSWORD FOR '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' = PASSWORD('${cfg.replication.masterPassword}');"
-                          echo "GRANT REPLICATION SLAVE ON *.* TO '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}';"
-                        ) | ${mysql}/bin/mysql -u root -N
+                echo "MySQL daemon not yet started. Waiting for 1 second..."
+                count=$((count++))
+                sleep 1
+            done
+          ''}
+
+          if [ -f ${cfg.dataDir}/mysql_init ]
+          then
+              # While MariaDB comes with a 'mysql' super user account since 10.4.x, MySQL does not
+              # Since we don't want to run this service as 'root' we need to ensure the account exists on first run
+              ( echo "CREATE USER IF NOT EXISTS '${cfg.user}'@'localhost' IDENTIFIED WITH ${if isMariaDB then "unix_socket" else "auth_socket"};"
+                echo "GRANT ALL PRIVILEGES ON *.* TO '${cfg.user}'@'localhost' WITH GRANT OPTION;"
+              ) | ${cfg.package}/bin/mysql -u ${superUser} -N
+
+              ${concatMapStrings (database: ''
+                # Create initial databases
+                if ! test -e "${cfg.dataDir}/${database.name}"; then
+                    echo "Creating initial database: ${database.name}"
+                    ( echo 'create database `${database.name}`;'
+
+                      ${optionalString (database.schema != null) ''
+                      echo 'use `${database.name}`;'
+
+                      # TODO: this silently falls through if database.schema does not exist,
+                      # we should catch this somehow and exit, but can't do it here because we're in a subshell.
+                      if [ -f "${database.schema}" ]
+                      then
+                          cat ${database.schema}
+                      elif [ -d "${database.schema}" ]
+                      then
+                          cat ${database.schema}/mysql-databases/*.sql
+                      fi
                       ''}
+                    ) | ${cfg.package}/bin/mysql -u ${superUser} -N
+                fi
+              '') cfg.initialDatabases}
 
-                    ${optionalString (cfg.replication.role == "slave")
-                      ''
-                        # Set up the replication slave
+              ${optionalString (cfg.replication.role == "master")
+                ''
+                  # Set up the replication master
 
-                        ( echo "stop slave;"
-                          echo "change master to master_host='${cfg.replication.masterHost}', master_user='${cfg.replication.masterUser}', master_password='${cfg.replication.masterPassword}';"
-                          echo "start slave;"
-                        ) | ${mysql}/bin/mysql -u root -N
-                      ''}
+                  ( echo "use mysql;"
+                    echo "CREATE USER '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' IDENTIFIED WITH mysql_native_password;"
+                    echo "SET PASSWORD FOR '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' = PASSWORD('${cfg.replication.masterPassword}');"
+                    echo "GRANT REPLICATION SLAVE ON *.* TO '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}';"
+                  ) | ${cfg.package}/bin/mysql -u ${superUser} -N
+                ''}
 
-                    ${optionalString (cfg.initialScript != null)
-                      ''
-                        # Execute initial script
-                        # using toString to avoid copying the file to nix store if given as path instead of string,
-                        # as it might contain credentials
-                        cat ${toString cfg.initialScript} | ${mysql}/bin/mysql -u root -N
-                      ''}
+              ${optionalString (cfg.replication.role == "slave")
+                ''
+                  # Set up the replication slave
 
-                    rm ${cfg.dataDir}/mysql_init
-                fi
+                  ( echo "stop slave;"
+                    echo "change master to master_host='${cfg.replication.masterHost}', master_user='${cfg.replication.masterUser}', master_password='${cfg.replication.masterPassword}';"
+                    echo "start slave;"
+                  ) | ${cfg.package}/bin/mysql -u ${superUser} -N
+                ''}
 
-                ${optionalString (cfg.ensureDatabases != []) ''
-                  (
-                  ${concatMapStrings (database: ''
-                    echo "CREATE DATABASE IF NOT EXISTS \`${database}\`;"
-                  '') cfg.ensureDatabases}
-                  ) | ${mysql}/bin/mysql -u root -N
+              ${optionalString (cfg.initialScript != null)
+                ''
+                  # Execute initial script
+                  # using toString to avoid copying the file to nix store if given as path instead of string,
+                  # as it might contain credentials
+                  cat ${toString cfg.initialScript} | ${cfg.package}/bin/mysql -u ${superUser} -N
                 ''}
 
-                ${concatMapStrings (user:
-                  ''
-                    ( echo "CREATE USER IF NOT EXISTS '${user.name}'@'localhost' IDENTIFIED WITH ${if isMariaDB then "unix_socket" else "auth_socket"};"
-                      ${concatStringsSep "\n" (mapAttrsToList (database: permission: ''
-                        echo "GRANT ${permission} ON ${database} TO '${user.name}'@'localhost';"
-                      '') user.ensurePermissions)}
-                    ) | ${mysql}/bin/mysql -u root -N
-                  '') cfg.ensureUsers}
-              '';
-            in
-              # ensureDatbases & ensureUsers depends on this script being run as root
-              # when the user has secured their mysql install
-              "+${setupScript}";
+              rm ${cfg.dataDir}/mysql_init
+          fi
+
+          ${optionalString (cfg.ensureDatabases != []) ''
+            (
+            ${concatMapStrings (database: ''
+              echo "CREATE DATABASE IF NOT EXISTS \`${database}\`;"
+            '') cfg.ensureDatabases}
+            ) | ${cfg.package}/bin/mysql -N
+          ''}
+
+          ${concatMapStrings (user:
+            ''
+              ( echo "CREATE USER IF NOT EXISTS '${user.name}'@'localhost' IDENTIFIED WITH ${if isMariaDB then "unix_socket" else "auth_socket"};"
+                ${concatStringsSep "\n" (mapAttrsToList (database: permission: ''
+                  echo "GRANT ${permission} ON ${database} TO '${user.name}'@'localhost';"
+                '') user.ensurePermissions)}
+              ) | ${cfg.package}/bin/mysql -N
+            '') cfg.ensureUsers}
+        '';
+
+        serviceConfig = {
+          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 = "mysql";
+          Group = cfg.group;
           # Runtime directory and mode
           RuntimeDirectory = "mysqld";
           RuntimeDirectoryMode = "0755";
diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix
index 579b6a4d9c6..5056d50153f 100644
--- a/nixos/modules/services/databases/postgresql.nix
+++ b/nixos/modules/services/databases/postgresql.nix
@@ -11,23 +11,23 @@ let
       then cfg.package
       else cfg.package.withPackages (_: cfg.extraPlugins);
 
+  toStr = value:
+    if true == value then "yes"
+    else if false == value then "no"
+    else if isString value then "'${lib.replaceStrings ["'"] ["''"] value}'"
+    else toString value;
+
   # The main PostgreSQL configuration file.
-  configFile = pkgs.writeText "postgresql.conf"
-    ''
-      hba_file = '${pkgs.writeText "pg_hba.conf" cfg.authentication}'
-      ident_file = '${pkgs.writeText "pg_ident.conf" cfg.identMap}'
-      log_destination = 'stderr'
-      log_line_prefix = '${cfg.logLinePrefix}'
-      listen_addresses = '${if cfg.enableTCPIP then "*" else "localhost"}'
-      port = ${toString cfg.port}
-      ${cfg.extraConfig}
-    ''; 
+  configFile = pkgs.writeText "postgresql.conf" (concatStringsSep "\n" (mapAttrsToList (n: v: "${n} = ${toStr v}") cfg.settings));
 
   groupAccessAvailable = versionAtLeast postgresql.version "11.0";
 
 in
 
 {
+  imports = [
+    (mkRemovedOptionModule [ "services" "postgresql" "extraConfig" ] "Use services.postgresql.settings instead.")
+  ];
 
   ###### interface
 
@@ -55,9 +55,13 @@ in
 
       dataDir = mkOption {
         type = types.path;
+        defaultText = "/var/lib/postgresql/\${config.services.postgresql.package.psqlSchema}";
         example = "/var/lib/postgresql/11";
         description = ''
-          Data directory for PostgreSQL.
+          The data directory for PostgreSQL. If left as the default value
+          this directory will automatically be created before the PostgreSQL server starts, otherwise
+          the sysadmin is responsible for ensuring the directory exists with appropriate ownership
+          and permissions.
         '';
       };
 
@@ -208,10 +212,28 @@ in
         '';
       };
 
-      extraConfig = mkOption {
-        type = types.lines;
-        default = "";
-        description = "Additional text to be appended to <filename>postgresql.conf</filename>.";
+      settings = mkOption {
+        type = with types; attrsOf (oneOf [ bool float int str ]);
+        default = {};
+        description = ''
+          PostgreSQL configuration. Refer to
+          <link xlink:href="https://www.postgresql.org/docs/11/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE"/>
+          for an overview of <literal>postgresql.conf</literal>.
+
+          <note><para>
+            String values will automatically be enclosed in single quotes. Single quotes will be
+            escaped with two single quotes as described by the upstream documentation linked above.
+          </para></note>
+        '';
+        example = literalExample ''
+          {
+            log_connections = true;
+            log_statement = "all";
+            logging_collector = true
+            log_disconnections = true
+            log_destination = lib.mkForce "syslog";
+          }
+        '';
       };
 
       recoveryConfig = mkOption {
@@ -221,14 +243,15 @@ in
           Contents of the <filename>recovery.conf</filename> file.
         '';
       };
+
       superUser = mkOption {
         type = types.str;
-        default= if versionAtLeast config.system.stateVersion "17.09" then "postgres" else "root";
+        default = "postgres";
         internal = true;
+        readOnly = true;
         description = ''
-          NixOS traditionally used 'root' as superuser, most other distros use 'postgres'.
-          From 17.09 we also try to follow this standard. Internal since changing this value
-          would lead to breakage while setting up databases.
+          PostgreSQL superuser account to use for various operations. Internal since changing
+          this value would lead to breakage while setting up databases.
         '';
         };
     };
@@ -240,6 +263,16 @@ in
 
   config = mkIf cfg.enable {
 
+    services.postgresql.settings =
+      {
+        hba_file = "${pkgs.writeText "pg_hba.conf" cfg.authentication}";
+        ident_file = "${pkgs.writeText "pg_ident.conf" cfg.identMap}";
+        log_destination = "stderr";
+        log_line_prefix = cfg.logLinePrefix;
+        listen_addresses = if cfg.enableTCPIP then "*" else "localhost";
+        port = cfg.port;
+      };
+
     services.postgresql.package =
       # Note: when changing the default, make it conditional on
       # ‘system.stateVersion’ to maintain compatibility with existing
@@ -249,10 +282,7 @@ in
             else if versionAtLeast config.system.stateVersion "16.03" then pkgs.postgresql_9_5
             else throw "postgresql_9_4 was removed, please upgrade your postgresql version.");
 
-    services.postgresql.dataDir =
-      mkDefault (if versionAtLeast config.system.stateVersion "17.09"
-                  then "/var/lib/postgresql/${cfg.package.psqlSchema}"
-                  else "/var/db/postgresql");
+    services.postgresql.dataDir = mkDefault "/var/lib/postgresql/${cfg.package.psqlSchema}";
 
     services.postgresql.authentication = mkAfter
       ''
@@ -291,59 +321,28 @@ in
 
         preStart =
           ''
-            # Create data directory.
             if ! test -e ${cfg.dataDir}/PG_VERSION; then
-              mkdir -m 0700 -p ${cfg.dataDir}
+              # Cleanup the data directory.
               rm -f ${cfg.dataDir}/*.conf
-              chown -R postgres:postgres ${cfg.dataDir}
-            fi
-          ''; # */
 
-        script =
-          ''
-            # Initialise the database.
-            if ! test -e ${cfg.dataDir}/PG_VERSION; then
+              # Initialise the database.
               initdb -U ${cfg.superUser} ${concatStringsSep " " cfg.initdbArgs}
+
               # See postStart!
               touch "${cfg.dataDir}/.first_startup"
             fi
+
             ln -sfn "${configFile}" "${cfg.dataDir}/postgresql.conf"
             ${optionalString (cfg.recoveryConfig != null) ''
               ln -sfn "${pkgs.writeText "recovery.conf" cfg.recoveryConfig}" \
                 "${cfg.dataDir}/recovery.conf"
             ''}
-            ${optionalString (!groupAccessAvailable) ''
-              # postgresql pre 11.0 doesn't start if state directory mode is group accessible
-              chmod 0700 "${cfg.dataDir}"
-            ''}
-
-            exec postgres
           '';
 
-        serviceConfig =
-          { ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
-            User = "postgres";
-            Group = "postgres";
-            PermissionsStartOnly = true;
-            RuntimeDirectory = "postgresql";
-            Type = if versionAtLeast cfg.package.version "9.6"
-                   then "notify"
-                   else "simple";
-
-            # Shut down Postgres using SIGINT ("Fast Shutdown mode").  See
-            # http://www.postgresql.org/docs/current/static/server-shutdown.html
-            KillSignal = "SIGINT";
-            KillMode = "mixed";
-
-            # Give Postgres a decent amount of time to clean up after
-            # receiving systemd's SIGINT.
-            TimeoutSec = 120;
-          };
-
         # Wait for PostgreSQL to be ready to accept connections.
         postStart =
           ''
-            PSQL="${pkgs.utillinux}/bin/runuser -u ${cfg.superUser} -- psql --port=${toString cfg.port}"
+            PSQL="psql --port=${toString cfg.port}"
 
             while ! $PSQL -d postgres -c "" 2> /dev/null; do
                 if ! kill -0 "$MAINPID"; then exit 1; fi
@@ -369,6 +368,32 @@ in
             '') cfg.ensureUsers}
           '';
 
+        serviceConfig = mkMerge [
+          { ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+            User = "postgres";
+            Group = "postgres";
+            RuntimeDirectory = "postgresql";
+            Type = if versionAtLeast cfg.package.version "9.6"
+                   then "notify"
+                   else "simple";
+
+            # Shut down Postgres using SIGINT ("Fast Shutdown mode").  See
+            # http://www.postgresql.org/docs/current/static/server-shutdown.html
+            KillSignal = "SIGINT";
+            KillMode = "mixed";
+
+            # Give Postgres a decent amount of time to clean up after
+            # receiving systemd's SIGINT.
+            TimeoutSec = 120;
+
+            ExecStart = "${postgresql}/bin/postgres";
+          }
+          (mkIf (cfg.dataDir == "/var/lib/postgresql/${cfg.package.psqlSchema}") {
+            StateDirectory = "postgresql postgresql/${cfg.package.psqlSchema}";
+            StateDirectoryMode = if groupAccessAvailable then "0750" else "0700";
+          })
+        ];
+
         unitConfig.RequiresMountsFor = "${cfg.dataDir}";
       };
 
diff --git a/nixos/modules/services/databases/riak-cs.nix b/nixos/modules/services/databases/riak-cs.nix
index 2cb204f729a..fa6ac886331 100644
--- a/nixos/modules/services/databases/riak-cs.nix
+++ b/nixos/modules/services/databases/riak-cs.nix
@@ -35,7 +35,7 @@ in
           Name of the Erlang node.
         '';
       };
-      
+
       anonymousUserCreation = mkOption {
         type = types.bool;
         default = false;
diff --git a/nixos/modules/services/desktops/deepin/deepin.nix b/nixos/modules/services/desktops/deepin/deepin.nix
deleted file mode 100644
index f8fb73701af..00000000000
--- a/nixos/modules/services/desktops/deepin/deepin.nix
+++ /dev/null
@@ -1,123 +0,0 @@
-# deepin
-
-{ config, pkgs, lib, ... }:
-
-{
-
-  ###### interface
-
-  options = {
-
-    services.deepin.core.enable = lib.mkEnableOption "
-      Basic dbus and systemd services, groups and users needed by the
-      Deepin Desktop Environment.
-    ";
-
-    services.deepin.deepin-menu.enable = lib.mkEnableOption "
-      DBus service for unified menus in Deepin Desktop Environment.
-    ";
-
-    services.deepin.deepin-turbo.enable = lib.mkEnableOption "
-      Turbo service for the Deepin Desktop Environment. It is a daemon
-      that helps to launch applications faster.
-    ";
-
-  };
-
-
-  ###### implementation
-
-  config = lib.mkMerge [
-
-    (lib.mkIf config.services.deepin.core.enable {
-      environment.systemPackages = [
-        pkgs.deepin.dde-api
-        pkgs.deepin.dde-calendar
-        pkgs.deepin.dde-control-center
-        pkgs.deepin.dde-daemon
-        pkgs.deepin.dde-dock
-        pkgs.deepin.dde-launcher
-        pkgs.deepin.dde-file-manager
-        pkgs.deepin.dde-session-ui
-        pkgs.deepin.deepin-anything
-        pkgs.deepin.deepin-image-viewer
-      ];
-
-      services.dbus.packages = [
-        pkgs.deepin.dde-api
-        pkgs.deepin.dde-calendar
-        pkgs.deepin.dde-control-center
-        pkgs.deepin.dde-daemon
-        pkgs.deepin.dde-dock
-        pkgs.deepin.dde-launcher
-        pkgs.deepin.dde-file-manager
-        pkgs.deepin.dde-session-ui
-        pkgs.deepin.deepin-anything
-        pkgs.deepin.deepin-image-viewer
-      ];
-
-      systemd.packages = [
-        pkgs.deepin.dde-api
-        pkgs.deepin.dde-daemon
-        pkgs.deepin.dde-file-manager
-        pkgs.deepin.deepin-anything
-      ];
-
-      boot.extraModulePackages = [ config.boot.kernelPackages.deepin-anything ];
-
-      boot.kernelModules = [ "vfs_monitor" ];
-
-      users.groups.deepin-sound-player = { };
-
-      users.users.deepin-sound-player = {
-        description = "Deepin sound player";
-        group = "deepin-sound-player";
-        isSystemUser = true;
-      };
-
-      users.groups.deepin-daemon = { };
-
-      users.users.deepin-daemon = {
-        description = "Deepin daemon user";
-        group = "deepin-daemon";
-        isSystemUser = true;
-      };
-
-      users.groups.deepin_anything_server = { };
-
-      users.users.deepin_anything_server = {
-        description = "Deepin Anything Server";
-        group = "deepin_anything_server";
-        isSystemUser = true;
-      };
-
-      security.pam.services.deepin-auth-keyboard.text = ''
-        # original at ${pkgs.deepin.dde-daemon}/etc/pam.d/deepin-auth-keyboard
-        auth	[success=2 default=ignore]	pam_lsass.so
-        auth	[success=1 default=ignore]	pam_unix.so nullok_secure try_first_pass
-        auth	requisite	pam_deny.so
-        auth	required	pam_permit.so
-      '';
-
-      environment.etc = {
-        "polkit-1/localauthority/10-vendor.d/com.deepin.api.device.pkla".source = "${pkgs.deepin.dde-api}/etc/polkit-1/localauthority/10-vendor.d/com.deepin.api.device.pkla";
-        "polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Accounts.pkla".source = "${pkgs.deepin.dde-daemon}/etc/polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Accounts.pkla";
-        "polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Grub2.pkla".source = "${pkgs.deepin.dde-daemon}/etc/polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Grub2.pkla";
-      };
-
-      services.deepin.deepin-menu.enable = true;
-      services.deepin.deepin-turbo.enable = true;
-    })
-
-    (lib.mkIf config.services.deepin.deepin-menu.enable {
-      services.dbus.packages = [ pkgs.deepin.deepin-menu ];
-    })
-
-    (lib.mkIf config.services.deepin.deepin-turbo.enable {
-      environment.systemPackages = [ pkgs.deepin.deepin-turbo ];
-      systemd.packages = [ pkgs.deepin.deepin-turbo ];
-    })
-
-  ];
-
-}
diff --git a/nixos/modules/services/desktops/espanso.nix b/nixos/modules/services/desktops/espanso.nix
new file mode 100644
index 00000000000..cd2eadf8816
--- /dev/null
+++ b/nixos/modules/services/desktops/espanso.nix
@@ -0,0 +1,25 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let cfg = config.services.espanso;
+in {
+  meta = { maintainers = with lib.maintainers; [ numkem ]; };
+
+  options = {
+    services.espanso = { enable = options.mkEnableOption "Espanso"; };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.user.services.espanso = {
+      description = "Espanso daemon";
+      path = with pkgs; [ espanso libnotify xclip ];
+      serviceConfig = {
+        ExecStart = "${pkgs.espanso}/bin/espanso daemon";
+        Restart = "on-failure";
+      };
+      wantedBy = [ "default.target" ];
+    };
+
+    environment.systemPackages = [ pkgs.espanso ];
+  };
+}
diff --git a/nixos/modules/services/desktops/flatpak.nix b/nixos/modules/services/desktops/flatpak.nix
index 7fb0024f37d..7da92cc9f26 100644
--- a/nixos/modules/services/desktops/flatpak.nix
+++ b/nixos/modules/services/desktops/flatpak.nix
@@ -42,6 +42,7 @@ in {
     # It has been possible since https://github.com/flatpak/flatpak/releases/tag/1.3.2
     # to build a SELinux policy module.
 
+    # TODO: use sysusers.d
     users.users.flatpak = {
       description = "Flatpak system helper";
       group = "flatpak";
diff --git a/nixos/modules/services/desktops/geoclue2.nix b/nixos/modules/services/desktops/geoclue2.nix
index 542b2ead410..6702bd395a0 100644
--- a/nixos/modules/services/desktops/geoclue2.nix
+++ b/nixos/modules/services/desktops/geoclue2.nix
@@ -160,7 +160,7 @@ in
       };
 
       appConfig = mkOption {
-        type = types.loaOf appConfigModule;
+        type = types.attrsOf appConfigModule;
         default = {};
         example = literalExample ''
           "com.github.app" = {
diff --git a/nixos/modules/services/desktops/malcontent.nix b/nixos/modules/services/desktops/malcontent.nix
index 5d6912595b5..1fbeb17e6ae 100644
--- a/nixos/modules/services/desktops/malcontent.nix
+++ b/nixos/modules/services/desktops/malcontent.nix
@@ -28,7 +28,10 @@ with lib;
       malcontent-ui
     ];
 
-    services.dbus.packages = [ pkgs.malcontent ];
+    services.dbus.packages = [
+      # D-Bus services are in `out`, not the default `bin` output that would be picked up by `makeDbusConf`.
+      pkgs.malcontent.out
+    ];
 
     services.accounts-daemon.enable = true;
 
diff --git a/nixos/modules/services/development/jupyter/default.nix b/nixos/modules/services/development/jupyter/default.nix
index e598b018645..6a5fd6b2940 100644
--- a/nixos/modules/services/development/jupyter/default.nix
+++ b/nixos/modules/services/development/jupyter/default.nix
@@ -6,10 +6,7 @@ let
 
   cfg = config.services.jupyter;
 
-  # NOTE: We don't use top-level jupyter because we don't
-  # want to pass in JUPYTER_PATH but use .environment instead,
-  # saving a rebuild.
-  package = pkgs.python3.pkgs.notebook;
+  package = cfg.package;
 
   kernels = (pkgs.jupyter-kernel.create  {
     definitions = if cfg.kernels != null
@@ -37,6 +34,27 @@ in {
       '';
     };
 
+    package = mkOption {
+      type = types.package;
+      # NOTE: We don't use top-level jupyter because we don't
+      # want to pass in JUPYTER_PATH but use .environment instead,
+      # saving a rebuild.
+      default = pkgs.python3.pkgs.notebook;
+      description = ''
+        Jupyter package to use.
+      '';
+    };
+
+    command = mkOption {
+      type = types.str;
+      default = "jupyter-notebook";
+      example = "jupyter-lab";
+      description = ''
+        Which command the service runs. Note that not all jupyter packages
+        have all commands, e.g. jupyter-lab isn't present in the default package.
+       '';
+    };
+
     port = mkOption {
       type = types.int;
       default = 8888;
@@ -157,7 +175,7 @@ in {
 
         serviceConfig = {
           Restart = "always";
-          ExecStart = ''${package}/bin/jupyter-notebook \
+          ExecStart = ''${package}/bin/${cfg.command} \
             --no-browser \
             --ip=${cfg.ip} \
             --port=${toString cfg.port} --port-retries 0 \
diff --git a/nixos/modules/services/development/jupyterhub/default.nix b/nixos/modules/services/development/jupyterhub/default.nix
new file mode 100644
index 00000000000..f1dcab68b00
--- /dev/null
+++ b/nixos/modules/services/development/jupyterhub/default.nix
@@ -0,0 +1,190 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.services.jupyterhub;
+
+  kernels = (pkgs.jupyter-kernel.create  {
+    definitions = if cfg.kernels != null
+      then cfg.kernels
+      else  pkgs.jupyter-kernel.default;
+  });
+
+  jupyterhubConfig = pkgs.writeText "jupyterhub_config.py" ''
+    c.JupyterHub.bind_url = "http://${cfg.host}:${toString cfg.port}"
+
+    c.JupyterHub.authenticator_class = "${cfg.authentication}"
+    c.JupyterHub.spawner_class = "${cfg.spawner}"
+
+    c.SystemdSpawner.default_url = '/lab'
+    c.SystemdSpawner.cmd = "${cfg.jupyterlabEnv}/bin/jupyterhub-singleuser"
+    c.SystemdSpawner.environment = {
+      'JUPYTER_PATH': '${kernels}'
+    }
+
+    ${cfg.extraConfig}
+  '';
+in {
+  meta.maintainers = with maintainers; [ costrouc ];
+
+  options.services.jupyterhub = {
+    enable = mkEnableOption "Jupyterhub development server";
+
+    authentication = mkOption {
+      type = types.str;
+      default = "jupyterhub.auth.PAMAuthenticator";
+      description = ''
+        Jupyterhub authentication to use
+
+        There are many authenticators available including: oauth, pam,
+        ldap, kerberos, etc.
+      '';
+    };
+
+    spawner = mkOption {
+      type = types.str;
+      default = "systemdspawner.SystemdSpawner";
+      description = ''
+        Jupyterhub spawner to use
+
+        There are many spawners available including: local process,
+        systemd, docker, kubernetes, yarn, batch, etc.
+      '';
+    };
+
+    extraConfig = mkOption {
+      type = types.lines;
+      default = "";
+      description = ''
+        Extra contents appended to the jupyterhub configuration
+
+        Jupyterhub configuration is a normal python file using
+        Traitlets. https://jupyterhub.readthedocs.io/en/stable/getting-started/config-basics.html. The
+        base configuration of this module was designed to have sane
+        defaults for configuration but you can override anything since
+        this is a python file.
+      '';
+      example = literalExample ''
+         c.SystemdSpawner.mem_limit = '8G'
+         c.SystemdSpawner.cpu_limit = 2.0
+      '';
+    };
+
+    jupyterhubEnv = mkOption {
+      type = types.package;
+      default = (pkgs.python3.withPackages (p: with p; [
+        jupyterhub
+        jupyterhub-systemdspawner
+      ]));
+      description = ''
+        Python environment to run jupyterhub
+
+        Customizing will affect the packages available in the hub and
+        proxy. This will allow packages to be available for the
+        extraConfig that you may need. This will not normally need to
+        be changed.
+      '';
+    };
+
+    jupyterlabEnv = mkOption {
+      type = types.package;
+      default = (pkgs.python3.withPackages (p: with p; [
+        jupyterhub
+        jupyterlab
+      ]));
+      description = ''
+        Python environment to run jupyterlab
+
+        Customizing will affect the packages available in the
+        jupyterlab server and the default kernel provided. This is the
+        way to customize the jupyterlab extensions and jupyter
+        notebook extensions. This will not normally need to
+        be changed.
+      '';
+    };
+
+    kernels = mkOption {
+      type = types.nullOr (types.attrsOf(types.submodule (import ../jupyter/kernel-options.nix {
+        inherit lib;
+      })));
+
+      default = null;
+      example = literalExample ''
+        {
+          python3 = let
+            env = (pkgs.python3.withPackages (pythonPackages: with pythonPackages; [
+                    ipykernel
+                    pandas
+                    scikitlearn
+                  ]));
+          in {
+            displayName = "Python 3 for machine learning";
+            argv = [
+              "''${env.interpreter}"
+              "-m"
+              "ipykernel_launcher"
+              "-f"
+              "{connection_file}"
+            ];
+            language = "python";
+            logo32 = "''${env}/''${env.sitePackages}/ipykernel/resources/logo-32x32.png";
+            logo64 = "''${env}/''${env.sitePackages}/ipykernel/resources/logo-64x64.png";
+          };
+        }
+      '';
+      description = ''
+        Declarative kernel config
+
+        Kernels can be declared in any language that supports and has
+        the required dependencies to communicate with a jupyter server.
+        In python's case, it means that ipykernel package must always be
+        included in the list of packages of the targeted environment.
+      '';
+    };
+
+    port = mkOption {
+      type = types.port;
+      default = 8000;
+      description = ''
+        Port number Jupyterhub will be listening on
+      '';
+    };
+
+    host = mkOption {
+      type = types.str;
+      default = "0.0.0.0";
+      description = ''
+        Bind IP JupyterHub will be listening on
+      '';
+    };
+
+    stateDirectory = mkOption {
+      type = types.str;
+      default = "jupyterhub";
+      description = ''
+        Directory for jupyterhub state (token + database)
+      '';
+    };
+  };
+
+  config = mkMerge [
+    (mkIf cfg.enable  {
+      systemd.services.jupyterhub = {
+        description = "Jupyterhub development server";
+
+        after = [ "network.target" ];
+        wantedBy = [ "multi-user.target" ];
+
+        serviceConfig = {
+          Restart = "always";
+          ExecStart = "${cfg.jupyterhubEnv}/bin/jupyterhub --config ${jupyterhubConfig}";
+          User = "root";
+          StateDirectory = cfg.stateDirectory;
+          WorkingDirectory = "/var/lib/${cfg.stateDirectory}";
+        };
+      };
+    })
+  ];
+}
diff --git a/nixos/modules/services/development/lorri.nix b/nixos/modules/services/development/lorri.nix
index c843aa56d13..fc576e4c18b 100644
--- a/nixos/modules/services/development/lorri.nix
+++ b/nixos/modules/services/development/lorri.nix
@@ -15,6 +15,15 @@ in {
           issued by the `lorri` command.
         '';
       };
+      package = lib.mkOption {
+        default = pkgs.lorri;
+        type = lib.types.package;
+        description = ''
+          The lorri package to use.
+        '';
+        defaultText = lib.literalExample "pkgs.lorri";
+        example = lib.literalExample "pkgs.lorri";
+      };
     };
   };
 
@@ -34,7 +43,7 @@ in {
       after = [ "lorri.socket" ];
       path = with pkgs; [ config.nix.package git gnutar gzip ];
       serviceConfig = {
-        ExecStart = "${pkgs.lorri}/bin/lorri daemon";
+        ExecStart = "${cfg.package}/bin/lorri daemon";
         PrivateTmp = true;
         ProtectSystem = "strict";
         ProtectHome = "read-only";
@@ -42,6 +51,6 @@ in {
       };
     };
 
-    environment.systemPackages = [ pkgs.lorri ];
+    environment.systemPackages = [ cfg.package ];
   };
 }
diff --git a/nixos/modules/services/editors/emacs.nix b/nixos/modules/services/editors/emacs.nix
index d791b387665..00d9eaad9eb 100644
--- a/nixos/modules/services/editors/emacs.nix
+++ b/nixos/modules/services/editors/emacs.nix
@@ -15,26 +15,27 @@ let
     fi
   '';
 
-desktopApplicationFile = pkgs.writeTextFile {
-  name = "emacsclient.desktop";
-  destination = "/share/applications/emacsclient.desktop";
-  text = ''
-[Desktop Entry]
-Name=Emacsclient
-GenericName=Text Editor
-Comment=Edit text
-MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
-Exec=emacseditor %F
-Icon=emacs
-Type=Application
-Terminal=false
-Categories=Development;TextEditor;
-StartupWMClass=Emacs
-Keywords=Text;Editor;
-'';
-};
-
-in {
+  desktopApplicationFile = pkgs.writeTextFile {
+    name = "emacsclient.desktop";
+    destination = "/share/applications/emacsclient.desktop";
+    text = ''
+      [Desktop Entry]
+      Name=Emacsclient
+      GenericName=Text Editor
+      Comment=Edit text
+      MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
+      Exec=emacseditor %F
+      Icon=emacs
+      Type=Application
+      Terminal=false
+      Categories=Development;TextEditor;
+      StartupWMClass=Emacs
+      Keywords=Text;Editor;
+    '';
+  };
+
+in
+{
 
   options.services.emacs = {
     enable = mkOption {
@@ -86,10 +87,10 @@ in {
       description = "Emacs: the extensible, self-documenting text editor";
 
       serviceConfig = {
-        Type      = "forking";
+        Type = "forking";
         ExecStart = "${pkgs.bash}/bin/bash -c 'source ${config.system.build.setEnvironment}; exec ${cfg.package}/bin/emacs --daemon'";
-        ExecStop  = "${cfg.package}/bin/emacsclient --eval (kill-emacs)";
-        Restart   = "always";
+        ExecStop = "${cfg.package}/bin/emacsclient --eval (kill-emacs)";
+        Restart = "always";
       };
     } // optionalAttrs cfg.enable { wantedBy = [ "default.target" ]; };
 
diff --git a/nixos/modules/services/editors/emacs.xml b/nixos/modules/services/editors/emacs.xml
index 74c60014dce..302aa1ed7c4 100644
--- a/nixos/modules/services/editors/emacs.xml
+++ b/nixos/modules/services/editors/emacs.xml
@@ -53,11 +53,11 @@
        <varname>emacs</varname>
       </term>
       <term>
-       <varname>emacs25</varname>
+       <varname>emacs</varname>
       </term>
       <listitem>
        <para>
-        The latest stable version of Emacs 25 using the
+        The latest stable version of Emacs using the
         <link
                 xlink:href="http://www.gtk.org">GTK 2</link>
         widget toolkit.
@@ -66,11 +66,11 @@
      </varlistentry>
      <varlistentry>
       <term>
-       <varname>emacs25-nox</varname>
+       <varname>emacs-nox</varname>
       </term>
       <listitem>
        <para>
-        Emacs 25 built without any dependency on X11 libraries.
+        Emacs built without any dependency on X11 libraries.
        </para>
       </listitem>
      </varlistentry>
@@ -79,11 +79,11 @@
        <varname>emacsMacport</varname>
       </term>
       <term>
-       <varname>emacs25Macport</varname>
+       <varname>emacsMacport</varname>
       </term>
       <listitem>
        <para>
-        Emacs 25 with the "Mac port" patches, providing a more native look and
+        Emacs with the "Mac port" patches, providing a more native look and
         feel under macOS.
        </para>
       </listitem>
@@ -322,7 +322,7 @@ https://nixos.org/nixpkgs/manual/#sec-modify-via-packageOverrides
     If you want, you can tweak the Emacs package itself from your
     <filename>emacs.nix</filename>. For example, if you want to have a
     GTK 3-based Emacs instead of the default GTK 2-based binary and remove the
-    automatically generated <filename>emacs.desktop</filename> (useful is you
+    automatically generated <filename>emacs.desktop</filename> (useful if you
     only use <command>emacsclient</command>), you can change your file
     <filename>emacs.nix</filename> in this way:
    </para>
diff --git a/nixos/modules/services/games/minetest-server.nix b/nixos/modules/services/games/minetest-server.nix
index 98e69c6dc0e..f52079fc1ef 100644
--- a/nixos/modules/services/games/minetest-server.nix
+++ b/nixos/modules/services/games/minetest-server.nix
@@ -5,12 +5,12 @@ with lib;
 let
   cfg   = config.services.minetest-server;
   flag  = val: name: if val != null then "--${name} ${val} " else "";
-  flags = [ 
-    (flag cfg.gameId "gameid") 
-    (flag cfg.world "world") 
-    (flag cfg.configPath "config") 
-    (flag cfg.logPath "logfile") 
-    (flag cfg.port "port") 
+  flags = [
+    (flag cfg.gameId "gameid")
+    (flag cfg.world "world")
+    (flag cfg.configPath "config")
+    (flag cfg.logPath "logfile")
+    (flag cfg.port "port")
   ];
 in
 {
@@ -26,7 +26,7 @@ in
         type        = types.nullOr types.str;
         default     = null;
         description = ''
-          Id of the game to use. To list available games run 
+          Id of the game to use. To list available games run
           `minetestserver --gameid list`.
 
           If only one game exists, this option can be null.
@@ -59,7 +59,7 @@ in
         type        = types.nullOr types.path;
         default     = null;
         description = ''
-          Path to logfile for logging. 
+          Path to logfile for logging.
 
           If set to null, logging will be output to stdout which means
           all output will be catched by systemd.
diff --git a/nixos/modules/services/games/terraria.nix b/nixos/modules/services/games/terraria.nix
index a59b74c0b4c..34c8ff137d6 100644
--- a/nixos/modules/services/games/terraria.nix
+++ b/nixos/modules/services/games/terraria.nix
@@ -7,7 +7,7 @@ let
   worldSizeMap = { small = 1; medium = 2; large = 3; };
   valFlag = name: val: optionalString (val != null) "-${name} \"${escape ["\\" "\""] (toString val)}\"";
   boolFlag = name: val: optionalString val "-${name}";
-  flags = [ 
+  flags = [
     (valFlag "port" cfg.port)
     (valFlag "maxPlayers" cfg.maxPlayers)
     (valFlag "password" cfg.password)
@@ -25,7 +25,7 @@ let
       exit 0
     fi
 
-    ${getBin pkgs.tmux}/bin/tmux -S /var/lib/terraria/terraria.sock send-keys Enter exit Enter
+    ${getBin pkgs.tmux}/bin/tmux -S ${cfg.dataDir}/terraria.sock send-keys Enter exit Enter
     ${getBin pkgs.coreutils}/bin/tail --pid="$1" -f /dev/null
   '';
 in
@@ -36,7 +36,7 @@ in
         type        = types.bool;
         default     = false;
         description = ''
-          If enabled, starts a Terraria server. The server can be connected to via <literal>tmux -S /var/lib/terraria/terraria.sock attach</literal>
+          If enabled, starts a Terraria server. The server can be connected to via <literal>tmux -S ${cfg.dataDir}/terraria.sock attach</literal>
           for administration by users who are a part of the <literal>terraria</literal> group (use <literal>C-b d</literal> shortcut to detach again).
         '';
       };
@@ -111,13 +111,19 @@ in
         default     = false;
         description = "Disables automatic Universal Plug and Play.";
       };
+      dataDir = mkOption {
+        type        = types.str;
+        default     = "/var/lib/terraria";
+        example     = "/srv/terraria";
+        description = "Path to variable state data directory for terraria.";
+      };
     };
   };
 
   config = mkIf cfg.enable {
     users.users.terraria = {
       description = "Terraria server service user";
-      home        = "/var/lib/terraria";
+      home        = cfg.dataDir;
       createHome  = true;
       uid         = config.ids.uids.terraria;
     };
@@ -136,13 +142,13 @@ in
         User    = "terraria";
         Type = "forking";
         GuessMainPID = true;
-        ExecStart = "${getBin pkgs.tmux}/bin/tmux -S /var/lib/terraria/terraria.sock new -d ${pkgs.terraria-server}/bin/TerrariaServer ${concatStringsSep " " flags}";
+        ExecStart = "${getBin pkgs.tmux}/bin/tmux -S ${cfg.dataDir}/terraria.sock new -d ${pkgs.terraria-server}/bin/TerrariaServer ${concatStringsSep " " flags}";
         ExecStop = "${stopScript} $MAINPID";
       };
 
       postStart = ''
-        ${pkgs.coreutils}/bin/chmod 660 /var/lib/terraria/terraria.sock
-        ${pkgs.coreutils}/bin/chgrp terraria /var/lib/terraria/terraria.sock
+        ${pkgs.coreutils}/bin/chmod 660 ${cfg.dataDir}/terraria.sock
+        ${pkgs.coreutils}/bin/chgrp terraria ${cfg.dataDir}/terraria.sock
       '';
     };
   };
diff --git a/nixos/modules/services/hardware/fancontrol.nix b/nixos/modules/services/hardware/fancontrol.nix
index bb4541a784d..e1ce11a5aef 100644
--- a/nixos/modules/services/hardware/fancontrol.nix
+++ b/nixos/modules/services/hardware/fancontrol.nix
@@ -12,7 +12,7 @@ in{
 
     config = mkOption {
       default = null;
-      type = types.lines;
+      type = types.nullOr types.lines;
       description = "Fancontrol configuration file content. See <citerefentry><refentrytitle>pwmconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry> from the lm_sensors package.";
       example = ''
         # Configuration file generated by pwmconfig
diff --git a/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix b/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix
index 6f49a1ab6d4..a6afa01dd81 100644
--- a/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix
+++ b/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix
@@ -81,7 +81,7 @@ in
         { office1 = { model = "MFC-7860DW"; ip = "192.168.1.2"; };
           office2 = { model = "MFC-7860DW"; nodename = "BRW0080927AFBCE"; };
         };
-      type = with types; loaOf (submodule netDeviceOpts);
+      type = with types; attrsOf (submodule netDeviceOpts);
       description = ''
         The list of network devices that will be registered against the brscan4
         sane backend.
diff --git a/nixos/modules/services/hardware/thinkfan.nix b/nixos/modules/services/hardware/thinkfan.nix
index 7c105e99ca5..3bda61ed1a9 100644
--- a/nixos/modules/services/hardware/thinkfan.nix
+++ b/nixos/modules/services/hardware/thinkfan.nix
@@ -67,7 +67,7 @@ in {
         type = types.bool;
         default = false;
         description = ''
-          Whether to build thinkfan with SMART support to read temperatures 
+          Whether to build thinkfan with SMART support to read temperatures
           directly from hard disks.
         '';
       };
diff --git a/nixos/modules/services/hardware/tlp.nix b/nixos/modules/services/hardware/tlp.nix
index 3962d7b1598..4230f2edd27 100644
--- a/nixos/modules/services/hardware/tlp.nix
+++ b/nixos/modules/services/hardware/tlp.nix
@@ -8,12 +8,8 @@ let
   mkTlpConfig = tlpConfig: generators.toKeyValue {
     mkKeyValue = generators.mkKeyValueDefault {
       mkValueString = val:
-        if isInt val then toString val
-        else if isString val then val
-        else if true == val then "1"
-        else if false == val then "0"
-        else if isList val then "\"" + (concatStringsSep " " val) + "\""
-        else err "invalid value provided to mkTlpConfig:" (toString val);
+        if isList val then "\"" + (toString val) + "\""
+        else toString val;
     } "=";
   } tlpConfig;
 in
@@ -27,10 +23,24 @@ in
         description = "Whether to enable the TLP power management daemon.";
       };
 
+      settings = mkOption {type = with types; attrsOf (oneOf [bool int float str (listOf str)]);
+        default = {};
+        example = {
+          SATA_LINKPWR_ON_BAT = "med_power_with_dipm";
+          USB_BLACKLIST_PHONE = 1;
+        };
+        description = ''
+          Options passed to TLP. See https://linrunner.de/tlp for all supported options..
+        '';
+      };
+
       extraConfig = mkOption {
         type = types.lines;
         default = "";
-        description = "Additional configuration variables for TLP";
+        description = ''
+          Verbatim additional configuration variables for TLP.
+          DEPRECATED: use services.tlp.config instead.
+        '';
       };
     };
   };
@@ -39,8 +49,20 @@ in
   config = mkIf cfg.enable {
     boot.kernelModules = [ "msr" ];
 
+    warnings = optional (cfg.extraConfig != "") ''
+      Using config.services.tlp.extraConfig is deprecated and will become unsupported in a future release. Use config.services.tlp.settings instead.
+    '';
+
+    assertions = [{
+      assertion = cfg.enable -> config.powerManagement.scsiLinkPolicy == null;
+      message = ''
+        `services.tlp.enable` and `config.powerManagement.scsiLinkPolicy` cannot be set both.
+        Set `services.tlp.settings.SATA_LINKPWR_ON_AC` and `services.tlp.settings.SATA_LINKPWR_ON_BAT` instead.
+      '';
+    }];
+
     environment.etc = {
-      "tlp.conf".text = cfg.extraConfig;
+      "tlp.conf".text = (mkTlpConfig cfg.settings) + cfg.extraConfig;
     } // optionalAttrs enableRDW {
       "NetworkManager/dispatcher.d/99tlp-rdw-nm".source =
         "${tlp}/etc/NetworkManager/dispatcher.d/99tlp-rdw-nm";
@@ -48,18 +70,25 @@ in
 
     environment.systemPackages = [ tlp ];
 
-    # FIXME: When the config is parametrized we need to move these into a
-    # conditional on the relevant options being enabled.
-    powerManagement = {
-      scsiLinkPolicy = null;
-      cpuFreqGovernor = null;
-      cpufreq.max = null;
-      cpufreq.min = null;
+
+    services.tlp.settings = let
+      cfg = config.powerManagement;
+      maybeDefault = val: lib.mkIf (val != null) (lib.mkDefault val);
+    in {
+      CPU_SCALING_GOVERNOR_ON_AC = maybeDefault cfg.cpuFreqGovernor;
+      CPU_SCALING_GOVERNOR_ON_BAT = maybeDefault cfg.cpuFreqGovernor;
+      CPU_SCALING_MIN_FREQ_ON_AC = maybeDefault cfg.cpufreq.min;
+      CPU_SCALING_MAX_FREQ_ON_AC = maybeDefault cfg.cpufreq.max;
+      CPU_SCALING_MIN_FREQ_ON_BAT = maybeDefault cfg.cpufreq.min;
+      CPU_SCALING_MAX_FREQ_ON_BAT = maybeDefault cfg.cpufreq.max;
     };
 
     services.udev.packages = [ tlp ];
 
     systemd = {
+      # use native tlp instead because it can also differentiate between AC/BAT
+      services.cpufreq.enable = false;
+
       packages = [ tlp ];
       # XXX: These must always be disabled/masked according to [1].
       #
diff --git a/nixos/modules/services/hardware/trezord.nix b/nixos/modules/services/hardware/trezord.nix
index c517e9fbb2b..2594ac74371 100644
--- a/nixos/modules/services/hardware/trezord.nix
+++ b/nixos/modules/services/hardware/trezord.nix
@@ -10,7 +10,7 @@ in {
   meta = {
     doc = ./trezord.xml;
   };
-  
+
   ### interface
 
   options = {
@@ -40,7 +40,7 @@ in {
       };
     };
   };
-  
+
   ### implementation
 
   config = mkIf cfg.enable {
diff --git a/nixos/modules/services/hardware/undervolt.nix b/nixos/modules/services/hardware/undervolt.nix
index 828032dc573..054ffa35050 100644
--- a/nixos/modules/services/hardware/undervolt.nix
+++ b/nixos/modules/services/hardware/undervolt.nix
@@ -103,6 +103,17 @@ in
         The temperature target on battery power in Celsius degrees.
       '';
     };
+
+    useTimer = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Whether to set a timer that applies the undervolt settings every 30s.
+        This will cause spam in the journal but might be required for some
+        hardware under specific conditions.
+        Enable this if your undervolt settings don't hold.
+      '';
+    };
   };
 
   config = mkIf cfg.enable {
@@ -114,6 +125,11 @@ in
       path = [ pkgs.undervolt ];
 
       description = "Intel Undervolting Service";
+
+      # Apply undervolt on boot, nixos generation switch and resume
+      wantedBy = [ "multi-user.target" "post-resume.target" ];
+      after = [ "post-resume.target" ]; # Not sure why but it won't work without this
+
       serviceConfig = {
         Type = "oneshot";
         Restart = "no";
@@ -121,7 +137,7 @@ in
       };
     };
 
-    systemd.timers.undervolt = {
+    systemd.timers.undervolt = mkIf cfg.useTimer {
       description = "Undervolt timer to ensure voltage settings are always applied";
       partOf = [ "undervolt.service" ];
       wantedBy = [ "multi-user.target" ];
diff --git a/nixos/modules/services/logging/logrotate.nix b/nixos/modules/services/logging/logrotate.nix
index 565618b27a8..7d6102b8255 100644
--- a/nixos/modules/services/logging/logrotate.nix
+++ b/nixos/modules/services/logging/logrotate.nix
@@ -5,54 +5,93 @@ with lib;
 let
   cfg = config.services.logrotate;
 
-  pathOptions = {
+  pathOpts = {
     options = {
+      enable = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to enable log rotation for this path. This can be used to explicitly disable
+          logging that has been configured by NixOS.
+        '';
+      };
+
       path = mkOption {
         type = types.str;
-        description = "The path to log files to be rotated";
+        description = ''
+          The path to log files to be rotated.
+        '';
       };
+
       user = mkOption {
-        type = types.str;
-        description = "The user account to use for rotation";
+        type = with types; nullOr str;
+        default = null;
+        description = ''
+          The user account to use for rotation.
+        '';
       };
+
       group = mkOption {
-        type = types.str;
-        description = "The group to use for rotation";
+        type = with types; nullOr str;
+        default = null;
+        description = ''
+          The group to use for rotation.
+        '';
       };
+
       frequency = mkOption {
-        type = types.enum [
-          "daily" "weekly" "monthly" "yearly"
-        ];
+        type = types.enum [ "daily" "weekly" "monthly" "yearly" ];
         default = "daily";
-        description = "How often to rotate the logs";
+        description = ''
+          How often to rotate the logs.
+        '';
       };
+
       keep = mkOption {
         type = types.int;
         default = 20;
-        description = "How many rotations to keep";
+        description = ''
+          How many rotations to keep.
+        '';
       };
+
       extraConfig = mkOption {
         type = types.lines;
         default = "";
-        description = "Extra logrotate config options for this path";
+        description = ''
+          Extra logrotate config options for this path. Refer to
+          <link xlink:href="https://linux.die.net/man/8/logrotate"/> for details.
+        '';
+      };
+
+      priority = mkOption {
+        type = types.int;
+        default = 1000;
+        description = ''
+          Order of this logrotate block in relation to the others. The semantics are
+          the same as with `lib.mkOrder`. Smaller values have a greater priority.
+        '';
       };
     };
-  };
 
-  pathConfig = options: ''
-    "${options.path}" {
-      su ${options.user} ${options.group}
-      ${options.frequency}
+    config.extraConfig = ''
       missingok
       notifempty
-      rotate ${toString options.keep}
-      ${options.extraConfig}
+    '';
+  };
+
+  mkConf = pathOpts: ''
+    # generated by NixOS using the `services.logrotate.paths.${pathOpts.name}` attribute set
+    "${pathOpts.path}" {
+      ${optionalString (pathOpts.user != null || pathOpts.group != null) "su ${pathOpts.user} ${pathOpts.group}"}
+      ${pathOpts.frequency}
+      rotate ${toString pathOpts.keep}
+      ${pathOpts.extraConfig}
     }
   '';
 
-  configFile = pkgs.writeText "logrotate.conf" (
-    (concatStringsSep "\n" ((map pathConfig cfg.paths) ++ [cfg.extraConfig]))
-  );
+  paths = sortProperties (mapAttrsToList (name: pathOpts: pathOpts // { name = name; }) (filterAttrs (_: pathOpts: pathOpts.enable) cfg.paths));
+  configFile = pkgs.writeText "logrotate.conf" (concatStringsSep "\n" ((map mkConf paths) ++ [ cfg.extraConfig ]));
 
 in
 {
@@ -65,41 +104,66 @@ in
       enable = mkEnableOption "the logrotate systemd service";
 
       paths = mkOption {
-        type = types.listOf (types.submodule pathOptions);
-        default = [];
-        description = "List of attribute sets with paths to rotate";
-        example = {
-          "/var/log/myapp/*.log" = {
-            user = "myuser";
-            group = "mygroup";
-            rotate = "weekly";
-            keep = 5;
-          };
-        };
+        type = with types; attrsOf (submodule pathOpts);
+        default = {};
+        description = ''
+          Attribute set of paths to rotate. The order each block appears in the generated configuration file
+          can be controlled by the <link linkend="opt-services.logrotate.paths._name_.priority">priority</link> option
+          using the same semantics as `lib.mkOrder`. Smaller values have a greater priority.
+        '';
+        example = literalExample ''
+          {
+            httpd = {
+              path = "/var/log/httpd/*.log";
+              user = config.services.httpd.user;
+              group = config.services.httpd.group;
+              keep = 7;
+            };
+
+            myapp = {
+              path = "/var/log/myapp/*.log";
+              user = "myuser";
+              group = "mygroup";
+              frequency = "weekly";
+              keep = 5;
+              priority = 1;
+            };
+          }
+        '';
       };
 
       extraConfig = mkOption {
         default = "";
         type = types.lines;
         description = ''
-          Extra contents to add to the logrotate config file.
-          See https://linux.die.net/man/8/logrotate
+          Extra contents to append to the logrotate configuration file. Refer to
+          <link xlink:href="https://linux.die.net/man/8/logrotate"/> for details.
         '';
       };
     };
   };
 
   config = mkIf cfg.enable {
-    systemd.services.logrotate = {
-      description   = "Logrotate Service";
-      wantedBy      = [ "multi-user.target" ];
-      startAt       = "*-*-* *:05:00";
+    assertions = mapAttrsToList (name: pathOpts:
+      { assertion = (pathOpts.user != null) == (pathOpts.group != null);
+        message = ''
+          If either of `services.logrotate.paths.${name}.user` or `services.logrotate.paths.${name}.group` are specified then *both* must be specified.
+        '';
+      }
+    ) cfg.paths;
 
-      serviceConfig.Restart = "no";
-      serviceConfig.User    = "root";
+    systemd.services.logrotate = {
+      description = "Logrotate Service";
+      wantedBy = [ "multi-user.target" ];
+      startAt = "*-*-* *:05:00";
       script = ''
         exec ${pkgs.logrotate}/sbin/logrotate ${configFile}
       '';
+
+      serviceConfig = {
+        Restart = "no";
+        User = "root";
+      };
     };
   };
 }
diff --git a/nixos/modules/services/logging/logstash.nix b/nixos/modules/services/logging/logstash.nix
index 21a83803fd8..bf92425f998 100644
--- a/nixos/modules/services/logging/logstash.nix
+++ b/nixos/modules/services/logging/logstash.nix
@@ -4,13 +4,9 @@ with lib;
 
 let
   cfg = config.services.logstash;
-  pluginPath = lib.concatStringsSep ":" cfg.plugins;
-  havePluginPath = lib.length cfg.plugins > 0;
   ops = lib.optionalString;
   verbosityFlag = "--log.level " + cfg.logLevel;
 
-  pluginsPath = "--path.plugins ${pluginPath}";
-
   logstashConf = pkgs.writeText "logstash.conf" ''
     input {
       ${cfg.inputConfig}
@@ -173,7 +169,7 @@ in
         ExecStart = concatStringsSep " " (filter (s: stringLength s != 0) [
           "${cfg.package}/bin/logstash"
           "-w ${toString cfg.filterWorkers}"
-          (ops havePluginPath pluginsPath)
+          (concatMapStringsSep " " (x: "--path.plugins ${x}") cfg.plugins)
           "${verbosityFlag}"
           "-f ${logstashConf}"
           "--path.settings ${logstashSettingsDir}"
diff --git a/nixos/modules/services/mail/dovecot.nix b/nixos/modules/services/mail/dovecot.nix
index 51cbcbf1cbc..c166ef68f29 100644
--- a/nixos/modules/services/mail/dovecot.nix
+++ b/nixos/modules/services/mail/dovecot.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ options, config, lib, pkgs, ... }:
 
 with lib;
 
@@ -83,11 +83,11 @@ let
     )
 
     (
-      optionalString (cfg.mailboxes != []) ''
+      optionalString (cfg.mailboxes != {}) ''
         protocol imap {
           namespace inbox {
             inbox=yes
-            ${concatStringsSep "\n" (map mailboxConfig cfg.mailboxes)}
+            ${concatStringsSep "\n" (map mailboxConfig (attrValues cfg.mailboxes))}
           }
         }
       ''
@@ -131,12 +131,13 @@ let
     special_use = \${toString mailbox.specialUse}
   '' + "}";
 
-  mailboxes = { ... }: {
+  mailboxes = { name, ... }: {
     options = {
       name = mkOption {
-        type = types.nullOr (types.strMatching ''[^"]+'');
+        type = types.strMatching ''[^"]+'';
         example = "Spam";
-        default = null;
+        default = name;
+        readOnly = true;
         description = "The name of the mailbox.";
       };
       auto = mkOption {
@@ -335,19 +336,11 @@ in
     };
 
     mailboxes = mkOption {
-      type = with types; let m = submodule mailboxes; in either (listOf m) (attrsOf m);
+      type = with types; coercedTo
+        (listOf unspecified)
+        (list: listToAttrs (map (entry: { name = entry.name; value = removeAttrs entry ["name"]; }) list))
+        (attrsOf (submodule mailboxes));
       default = {};
-      apply = x:
-        if isList x then warn "Declaring `services.dovecot2.mailboxes' as a list is deprecated and will break eval in 21.03!" x
-        else mapAttrsToList (name: value:
-          if value.name != null
-            then throw ''
-              When specifying dovecot2 mailboxes as attributes, declaring
-              a `name'-attribute is prohibited! The name ${value.name} should
-              be the attribute key!
-            ''
-          else value // { inherit name; }
-        ) x;
       example = literalExample ''
         {
           Spam = { specialUse = "Junk"; auto = "create"; };
@@ -471,6 +464,10 @@ in
 
     environment.systemPackages = [ dovecotPkg ];
 
+    warnings = mkIf (any isList options.services.dovecot2.mailboxes.definitions) [
+      "Declaring `services.dovecot2.mailboxes' as a list is deprecated and will break eval in 21.03! See the release notes for more info for migration."
+    ];
+
     assertions = [
       {
         assertion = intersectLists cfg.protocols [ "pop3" "imap" ] != [];
diff --git a/nixos/modules/services/mail/opendkim.nix b/nixos/modules/services/mail/opendkim.nix
index eb6a426684d..9bf6f338d93 100644
--- a/nixos/modules/services/mail/opendkim.nix
+++ b/nixos/modules/services/mail/opendkim.nix
@@ -129,6 +129,36 @@ in {
         User = cfg.user;
         Group = cfg.group;
         RuntimeDirectory = optional (cfg.socket == defaultSock) "opendkim";
+        StateDirectory = "opendkim";
+        StateDirectoryMode = "0700";
+        ReadWritePaths = [ cfg.keyPath ];
+
+        AmbientCapabilities = [];
+        CapabilityBoundingSet = [];
+        DevicePolicy = "closed";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateMounts = true;
+        PrivateTmp = true;
+        PrivateUsers = true;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectSystem = "strict";
+        RemoveIPC = true;
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6 AF_UNIX" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [ "@system-service" "~@privileged @resources" ];
+        UMask = "0077";
       };
     };
 
diff --git a/nixos/modules/services/mail/pfix-srsd.nix b/nixos/modules/services/mail/pfix-srsd.nix
index 38984f896d6..e3dbf2a014f 100644
--- a/nixos/modules/services/mail/pfix-srsd.nix
+++ b/nixos/modules/services/mail/pfix-srsd.nix
@@ -53,4 +53,4 @@ with lib;
       };
     };
   };
-}
\ No newline at end of file
+}
diff --git a/nixos/modules/services/mail/postfix.nix b/nixos/modules/services/mail/postfix.nix
index 608f64a68fb..fd4d16cdc37 100644
--- a/nixos/modules/services/mail/postfix.nix
+++ b/nixos/modules/services/mail/postfix.nix
@@ -25,6 +25,8 @@ let
 
   clientRestrictions = concatStringsSep ", " (clientAccess ++ dnsBl);
 
+  smtpTlsSecurityLevel = if cfg.useDane then "dane" else "may";
+
   mainCf = let
     escape = replaceStrings ["$"] ["$$"];
     mkList = items: "\n  " + concatStringsSep ",\n  " items;
@@ -280,6 +282,17 @@ in
         description = "Whether to enable smtp submission.";
       };
 
+      enableSubmissions = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to enable smtp submission via smtps.
+
+          According to RFC 8314 this should be preferred
+          over STARTTLS for submission of messages by end user clients.
+        '';
+      };
+
       submissionOptions = mkOption {
         type = types.attrs;
         default = {
@@ -298,6 +311,29 @@ in
         description = "Options for the submission config in master.cf";
       };
 
+      submissionsOptions = mkOption {
+        type = types.attrs;
+        default = {
+          smtpd_sasl_auth_enable = "yes";
+          smtpd_client_restrictions = "permit_sasl_authenticated,reject";
+          milter_macro_daemon_name = "ORIGINATING";
+        };
+        example = {
+          smtpd_sasl_auth_enable = "yes";
+          smtpd_sasl_type = "dovecot";
+          smtpd_client_restrictions = "permit_sasl_authenticated,reject";
+          milter_macro_daemon_name = "ORIGINATING";
+        };
+        description = ''
+          Options for the submission config via smtps in master.cf.
+
+          smtpd_tls_security_level will be set to encrypt, if it is missing
+          or has one of the values "may" or "none".
+
+          smtpd_tls_wrappermode with value "yes" will be added automatically.
+        '';
+      };
+
       setSendmail = mkOption {
         type = types.bool;
         default = true;
@@ -454,7 +490,7 @@ in
         '';
         example = {
           mail_owner = "postfix";
-          smtp_use_tls = true;
+          smtp_tls_security_level = "may";
         };
       };
 
@@ -466,16 +502,26 @@ in
         ";
       };
 
-      sslCert = mkOption {
+      tlsTrustedAuthorities = mkOption {
         type = types.str;
-        default = "";
-        description = "SSL certificate to use.";
+        default = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
+        description = ''
+          File containing trusted certification authorities (CA) to verify certificates of mailservers contacted for mail delivery. This basically sets smtp_tls_CAfile and enables opportunistic tls. Defaults to NixOS trusted certification authorities.
+        '';
+      };
+
+      useDane = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Sets smtp_tls_security_level to "dane" rather than "may". See postconf(5) for details.
+        '';
       };
 
-      sslCACert = mkOption {
+      sslCert = mkOption {
         type = types.str;
         default = "";
-        description = "SSL certificate of CA.";
+        description = "SSL certificate to use.";
       };
 
       sslKey = mkOption {
@@ -771,18 +817,20 @@ in
         recipient_canonical_classes = [ "envelope_recipient" ];
       }
       // optionalAttrs cfg.enableHeaderChecks { header_checks = [ "regexp:/etc/postfix/header_checks" ]; }
+      // optionalAttrs (cfg.tlsTrustedAuthorities != "") {
+        smtp_tls_CAfile = cfg.tlsTrustedAuthorities;
+        smtp_tls_security_level = smtpTlsSecurityLevel;
+      }
       // optionalAttrs (cfg.sslCert != "") {
-        smtp_tls_CAfile = cfg.sslCACert;
         smtp_tls_cert_file = cfg.sslCert;
         smtp_tls_key_file = cfg.sslKey;
 
-        smtp_use_tls = true;
+        smtp_tls_security_level = smtpTlsSecurityLevel;
 
-        smtpd_tls_CAfile = cfg.sslCACert;
         smtpd_tls_cert_file = cfg.sslCert;
         smtpd_tls_key_file = cfg.sslKey;
 
-        smtpd_use_tls = true;
+        smtpd_tls_security_level = "may";
       };
 
       services.postfix.masterConfig = {
@@ -878,6 +926,23 @@ in
           command = "smtp";
           args = [ "-o" "smtp_fallback_relay=" ];
         };
+      } // optionalAttrs cfg.enableSubmissions {
+        submissions = {
+          type = "inet";
+          private = false;
+          command = "smtpd";
+          args = let
+            mkKeyVal = opt: val: [ "-o" (opt + "=" + val) ];
+            adjustSmtpTlsSecurityLevel = !(cfg.submissionsOptions ? smtpd_tls_security_level) ||
+                                      cfg.submissionsOptions.smtpd_tls_security_level == "none" ||
+                                      cfg.submissionsOptions.smtpd_tls_security_level == "may";
+            submissionsOptions = cfg.submissionsOptions // {
+              smtpd_tls_wrappermode = "yes";
+            } // optionalAttrs adjustSmtpTlsSecurityLevel {
+              smtpd_tls_security_level = "encrypt";
+            };
+          in concatLists (mapAttrsToList mkKeyVal submissionsOptions);
+        };
       };
     }
 
@@ -900,4 +965,9 @@ in
       services.postfix.mapFiles.client_access = checkClientAccessFile;
     })
   ]);
+
+  imports = [
+   (mkRemovedOptionModule [ "services" "postfix" "sslCACert" ]
+     "services.postfix.sslCACert was replaced by services.postfix.tlsTrustedAuthorities. In case you intend that your server should validate requested client certificates use services.postfix.extraConfig.")
+  ];
 }
diff --git a/nixos/modules/services/mail/roundcube.nix b/nixos/modules/services/mail/roundcube.nix
index ed1439745ac..a0bbab64985 100644
--- a/nixos/modules/services/mail/roundcube.nix
+++ b/nixos/modules/services/mail/roundcube.nix
@@ -95,6 +95,18 @@ in
       '';
     };
 
+    maxAttachmentSize = mkOption {
+      type = types.int;
+      default = 18;
+      description = ''
+        The maximum attachment size in MB.
+
+        Note: Since roundcube only uses 70% of max upload values configured in php
+        30% is added automatically to <xref linkend="opt-services.roundcube.maxAttachmentSize"/>.
+      '';
+      apply = configuredMaxAttachmentSize: "${toString (configuredMaxAttachmentSize * 1.3)}M";
+    };
+
     extraConfig = mkOption {
       type = types.lines;
       default = "";
@@ -115,7 +127,7 @@ in
       $config = array();
       $config['db_dsnw'] = 'pgsql://${cfg.database.username}${lib.optionalString (!localDB) ":' . $password . '"}@${if localDB then "unix(/run/postgresql)" else cfg.database.host}/${cfg.database.dbname}';
       $config['log_driver'] = 'syslog';
-      $config['max_message_size'] = '25M';
+      $config['max_message_size'] =  '${cfg.maxAttachmentSize}';
       $config['plugins'] = [${concatMapStringsSep "," (p: "'${p}'") cfg.plugins}];
       $config['des_key'] = file_get_contents('/var/lib/roundcube/des_key');
       $config['mime_types'] = '${pkgs.nginx}/conf/mime.types';
@@ -172,8 +184,8 @@ in
       phpOptions = ''
         error_log = 'stderr'
         log_errors = on
-        post_max_size = 25M
-        upload_max_filesize = 25M
+        post_max_size = ${cfg.maxAttachmentSize}
+        upload_max_filesize = ${cfg.maxAttachmentSize}
       '';
       settings = mapAttrs (name: mkDefault) {
         "listen.owner" = "nginx";
diff --git a/nixos/modules/services/misc/beanstalkd.nix b/nixos/modules/services/misc/beanstalkd.nix
index bcd133c9741..1c674a5b23b 100644
--- a/nixos/modules/services/misc/beanstalkd.nix
+++ b/nixos/modules/services/misc/beanstalkd.nix
@@ -28,6 +28,12 @@ in
           example = "0.0.0.0";
         };
       };
+
+      openFirewall = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Whether to open ports in the firewall for the server.";
+      };
     };
   };
 
@@ -35,6 +41,10 @@ in
 
   config = mkIf cfg.enable {
 
+    networking.firewall = mkIf cfg.openFirewall {
+      allowedTCPPorts = [ cfg.listen.port ];
+    };
+
     environment.systemPackages = [ pkg ];
 
     systemd.services.beanstalkd = {
diff --git a/nixos/modules/services/misc/gammu-smsd.nix b/nixos/modules/services/misc/gammu-smsd.nix
index 3057d7fd1a0..552725f1384 100644
--- a/nixos/modules/services/misc/gammu-smsd.nix
+++ b/nixos/modules/services/misc/gammu-smsd.nix
@@ -172,7 +172,7 @@ in {
           };
 
           database = mkOption {
-            type = types.str;
+            type = types.nullOr types.str;
             default = null;
             description = "Database name to store sms data";
           };
diff --git a/nixos/modules/services/misc/gitea.nix b/nixos/modules/services/misc/gitea.nix
index f8bcedc94fe..af80e99746b 100644
--- a/nixos/modules/services/misc/gitea.nix
+++ b/nixos/modules/services/misc/gitea.nix
@@ -162,6 +162,45 @@ in
             <manvolnum>7</manvolnum></citerefentry>.
           '';
         };
+
+        backupDir = mkOption {
+          type = types.str;
+          default = "${cfg.stateDir}/dump";
+          description = "Path to the dump files.";
+        };
+      };
+
+      ssh = {
+        enable = mkOption {
+          type = types.bool;
+          default = true;
+          description = "Enable external SSH feature.";
+        };
+
+        clonePort = mkOption {
+          type = types.int;
+          default = 22;
+          example = 2222;
+          description = ''
+            SSH port displayed in clone URL.
+            The option is required to configure a service when the external visible port
+            differs from the local listening port i.e. if port forwarding is used.
+          '';
+        };
+      };
+
+      lfs = {
+        enable = mkOption {
+          type = types.bool;
+          default = false;
+          description = "Enables git-lfs support.";
+        };
+
+        contentDir = mkOption {
+          type = types.str;
+          default = "${cfg.stateDir}/data/lfs";
+          description = "Where to store LFS files.";
+        };
       };
 
       appName = mkOption {
@@ -200,6 +239,12 @@ in
         description = "HTTP listen port.";
       };
 
+      enableUnixSocket = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Configure Gitea to listen on a unix socket instead of the default TCP port.";
+      };
+
       cookieSecure = mkOption {
         type = types.bool;
         default = false;
@@ -300,14 +345,34 @@ in
         ROOT = cfg.repositoryRoot;
       };
 
-      server = {
-        DOMAIN = cfg.domain;
-        HTTP_ADDR = cfg.httpAddress;
-        HTTP_PORT = cfg.httpPort;
-        ROOT_URL = cfg.rootUrl;
-        STATIC_ROOT_PATH = cfg.staticRootPath;
-        LFS_JWT_SECRET = "#jwtsecret#";
-      };
+      server = mkMerge [
+        {
+          DOMAIN = cfg.domain;
+          STATIC_ROOT_PATH = cfg.staticRootPath;
+          LFS_JWT_SECRET = "#jwtsecret#";
+          ROOT_URL = cfg.rootUrl;
+        }
+        (mkIf cfg.enableUnixSocket {
+          PROTOCOL = "unix";
+          HTTP_ADDR = "/run/gitea/gitea.sock";
+        })
+        (mkIf (!cfg.enableUnixSocket) {
+          HTTP_ADDR = cfg.httpAddress;
+          HTTP_PORT = cfg.httpPort;
+        })
+        (mkIf cfg.ssh.enable {
+          DISABLE_SSH = false;
+          SSH_PORT = cfg.ssh.clonePort;
+        })
+        (mkIf (!cfg.ssh.enable) {
+          DISABLE_SSH = true;
+        })
+        (mkIf cfg.lfs.enable {
+          LFS_START_SERVER = true;
+          LFS_CONTENT_PATH = cfg.lfs.contentDir;
+        })
+
+      ];
 
       session = {
         COOKIE_NAME = "session";
@@ -357,12 +422,26 @@ in
     };
 
     systemd.tmpfiles.rules = [
-      "d '${cfg.stateDir}' - ${cfg.user} gitea - -"
-      "d '${cfg.stateDir}/conf' - ${cfg.user} gitea - -"
-      "d '${cfg.stateDir}/custom' - ${cfg.user} gitea - -"
-      "d '${cfg.stateDir}/custom/conf' - ${cfg.user} gitea - -"
-      "d '${cfg.stateDir}/log' - ${cfg.user} gitea - -"
-      "d '${cfg.repositoryRoot}' - ${cfg.user} gitea - -"
+      "d '${cfg.dump.backupDir}' 0750 ${cfg.user} gitea - -"
+      "z '${cfg.dump.backupDir}' 0750 ${cfg.user} gitea - -"
+      "Z '${cfg.dump.backupDir}' - ${cfg.user} gitea - -"
+      "d '${cfg.lfs.contentDir}' 0750 ${cfg.user} gitea - -"
+      "z '${cfg.lfs.contentDir}' 0750 ${cfg.user} gitea - -"
+      "Z '${cfg.lfs.contentDir}' - ${cfg.user} gitea - -"
+      "d '${cfg.repositoryRoot}' 0750 ${cfg.user} gitea - -"
+      "z '${cfg.repositoryRoot}' 0750 ${cfg.user} gitea - -"
+      "Z '${cfg.repositoryRoot}' - ${cfg.user} gitea - -"
+      "d '${cfg.stateDir}' 0750 ${cfg.user} gitea - -"
+      "d '${cfg.stateDir}/conf' 0750 ${cfg.user} gitea - -"
+      "d '${cfg.stateDir}/custom' 0750 ${cfg.user} gitea - -"
+      "d '${cfg.stateDir}/custom/conf' 0750 ${cfg.user} gitea - -"
+      "d '${cfg.stateDir}/log' 0750 ${cfg.user} gitea - -"
+      "z '${cfg.stateDir}' 0750 ${cfg.user} gitea - -"
+      "z '${cfg.stateDir}/.ssh' 0700 ${cfg.user} gitea - -"
+      "z '${cfg.stateDir}/conf' 0750 ${cfg.user} gitea - -"
+      "z '${cfg.stateDir}/custom' 0750 ${cfg.user} gitea - -"
+      "z '${cfg.stateDir}/custom/conf' 0750 ${cfg.user} gitea - -"
+      "z '${cfg.stateDir}/log' 0750 ${cfg.user} gitea - -"
       "Z '${cfg.stateDir}' - ${cfg.user} gitea - -"
 
       # If we have a folder or symlink with gitea locales, remove it
@@ -431,28 +510,39 @@ in
         User = cfg.user;
         Group = "gitea";
         WorkingDirectory = cfg.stateDir;
-        ExecStart = "${gitea}/bin/gitea web";
+        ExecStart = "${gitea}/bin/gitea web --pid /run/gitea/gitea.pid";
         Restart = "always";
-
-        # Filesystem
+        # Runtime directory and mode
+        RuntimeDirectory = "gitea";
+        RuntimeDirectoryMode = "0755";
+        # Access write directories
+        ReadWritePaths = [ cfg.dump.backupDir cfg.repositoryRoot cfg.stateDir cfg.lfs.contentDir ];
+        UMask = "0027";
+        # Capabilities
+        CapabilityBoundingSet = "";
+        # Security
+        NoNewPrivileges = true;
+        # Sandboxing
+        ProtectSystem = "strict";
         ProtectHome = true;
+        PrivateTmp = true;
         PrivateDevices = true;
+        PrivateUsers = true;
+        ProtectHostname = true;
+        ProtectClock = true;
         ProtectKernelTunables = true;
         ProtectKernelModules = true;
+        ProtectKernelLogs = true;
         ProtectControlGroups = true;
-        ReadWritePaths = cfg.stateDir;
-        # Caps
-        CapabilityBoundingSet = "";
-        NoNewPrivileges = true;
-        # Misc.
+        RestrictAddressFamilies = [ "AF_UNIX AF_INET AF_INET6" ];
         LockPersonality = true;
+        MemoryDenyWriteExecute = true;
         RestrictRealtime = true;
+        RestrictSUIDSGID = true;
         PrivateMounts = true;
-        PrivateUsers = true;
-        MemoryDenyWriteExecute = true;
-        SystemCallFilter = "~@clock @cpu-emulation @debug @keyring @memlock @module @mount @obsolete @raw-io @reboot @resources @setuid @swap";
+        # System Call Filtering
         SystemCallArchitectures = "native";
-        RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6";
+        SystemCallFilter = "~@clock @cpu-emulation @debug @keyring @memlock @module @mount @obsolete @raw-io @reboot @resources @setuid @swap";
       };
 
       environment = {
@@ -504,7 +594,7 @@ in
          Type = "oneshot";
          User = cfg.user;
          ExecStart = "${gitea}/bin/gitea dump";
-         WorkingDirectory = cfg.stateDir;
+         WorkingDirectory = cfg.dump.backupDir;
        };
     };
 
diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix
index 1ada131bd7b..9896b8023e4 100644
--- a/nixos/modules/services/misc/gitlab.nix
+++ b/nixos/modules/services/misc/gitlab.nix
@@ -54,7 +54,7 @@ let
     '') gitlabConfig.production.repositories.storages))}
   '';
 
-  gitlabShellConfig = {
+  gitlabShellConfig = flip recursiveUpdate cfg.extraShellConfig {
     user = cfg.user;
     gitlab_url = "http+unix://${pathUrlQuote gitlabSocket}";
     http_settings.self_signed_cert = false;
@@ -71,7 +71,7 @@ let
     };
   };
 
-  redisConfig.production.url = "redis://localhost:6379/";
+  redisConfig.production.url = cfg.redisUrl;
 
   gitlabConfig = {
     # These are the default settings from config/gitlab.example.yml
@@ -311,6 +311,12 @@ in {
         description = "Extra configuration in config/database.yml.";
       };
 
+      redisUrl = mkOption {
+        type = types.str;
+        default = "redis://localhost:6379/";
+        description = "Redis URL for all GitLab services except gitlab-shell";
+      };
+
       extraGitlabRb = mkOption {
         type = types.str;
         default = "";
@@ -511,6 +517,12 @@ in {
         '';
       };
 
+      extraShellConfig = mkOption {
+        type = types.attrs;
+        default = {};
+        description = "Extra configuration to merge into shell-config.yml";
+      };
+
       extraConfig = mkOption {
         type = types.attrs;
         default = {};
@@ -612,26 +624,38 @@ in {
       enable = true;
       ensureUsers = singleton { name = cfg.databaseUsername; };
     };
+
     # The postgresql module doesn't currently support concepts like
     # objects owners and extensions; for now we tack on what's needed
     # here.
-    systemd.services.postgresql.postStart = mkAfter (optionalString databaseActuallyCreateLocally ''
-      set -eu
-
-      $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}"'
-          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}\""
-          rm "${config.services.postgresql.dataDir}/.reassigning_${cfg.databaseName}"
-      fi
-      $PSQL '${cfg.databaseName}' -tAc "CREATE EXTENSION IF NOT EXISTS pg_trgm"
-    '');
+    systemd.services.gitlab-postgresql = let pgsql = config.services.postgresql; in mkIf databaseActuallyCreateLocally {
+      after = [ "postgresql.service" ];
+      wantedBy = [ "multi-user.target" ];
+      path = [ pgsql.package ];
+      script = ''
+        set -eu
+
+        PSQL="${pkgs.utillinux}/bin/runuser -u ${pgsql.superUser} -- 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}'")
+        if [[ "$current_owner" != "${cfg.databaseUsername}" ]]; then
+            $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}\""
+            rm "${config.services.postgresql.dataDir}/.reassigning_${cfg.databaseName}"
+        fi
+        $PSQL '${cfg.databaseName}' -tAc "CREATE EXTENSION IF NOT EXISTS pg_trgm"
+      '';
+
+      serviceConfig = {
+        Type = "oneshot";
+      };
+    };
 
     # Use postfix to send out mails.
     services.postfix.enable = mkDefault true;
@@ -678,7 +702,6 @@ in {
       "L+ /run/gitlab/shell-config.yml - - - - ${pkgs.writeText "config.yml" (builtins.toJSON gitlabShellConfig)}"
 
       "L+ ${cfg.statePath}/config/unicorn.rb - - - - ${./defaultUnicornConfig.rb}"
-      "L+ ${cfg.statePath}/config/initializers/extra-gitlab.rb - - - - ${extraGitlabRb}"
     ];
 
     systemd.services.gitlab-sidekiq = {
@@ -704,7 +727,7 @@ in {
         TimeoutSec = "infinity";
         Restart = "on-failure";
         WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
-        ExecStart="${cfg.packages.gitlab.rubyEnv}/bin/sidekiq -C \"${cfg.packages.gitlab}/share/gitlab/config/sidekiq_queues.yml\" -e production -P ${cfg.statePath}/tmp/sidekiq.pid";
+        ExecStart="${cfg.packages.gitlab.rubyEnv}/bin/sidekiq -C \"${cfg.packages.gitlab}/share/gitlab/config/sidekiq_queues.yml\" -e production";
       };
     };
 
@@ -760,8 +783,25 @@ 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" ];
+      environment = gitlabEnv;
+      serviceConfig = {
+        Type = "simple";
+        TimeoutSec = "infinity";
+        Restart = "on-failure";
+
+        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";
+        WorkingDirectory = gitlabEnv.HOME;
+      };
+    };
+
     systemd.services.gitlab = {
-      after = [ "gitlab-workhorse.service" "gitaly.service" "network.target" "postgresql.service" "redis.service" ];
+      after = [ "gitlab-workhorse.service" "gitaly.service" "network.target" "gitlab-postgresql.service" "redis.service" ];
       requires = [ "gitlab-sidekiq.service" ];
       wantedBy = [ "multi-user.target" ];
       environment = gitlabEnv;
@@ -798,6 +838,7 @@ in {
             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
 
             ${cfg.packages.gitlab-shell}/bin/install
 
diff --git a/nixos/modules/services/misc/gitlab.xml b/nixos/modules/services/misc/gitlab.xml
index b6171a9a194..19a3df0a5f6 100644
--- a/nixos/modules/services/misc/gitlab.xml
+++ b/nixos/modules/services/misc/gitlab.xml
@@ -98,6 +98,12 @@ services.gitlab = {
   </para>
 
   <para>
+    When <literal>icoming_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>
+
+  <para>
    Refer to <xref linkend="ch-options" /> for all available configuration
    options for the
    <link linkend="opt-services.gitlab.enable">services.gitlab</link> module.
diff --git a/nixos/modules/services/misc/gitolite.nix b/nixos/modules/services/misc/gitolite.nix
index cc69f81bbcc..59cbdac319c 100644
--- a/nixos/modules/services/misc/gitolite.nix
+++ b/nixos/modules/services/misc/gitolite.nix
@@ -27,7 +27,10 @@ in
         type = types.str;
         default = "/var/lib/gitolite";
         description = ''
-          Gitolite home directory (used to store all the repositories).
+          The gitolite home directory used to store all repositories. If left as the default value
+          this directory will automatically be created before the gitolite server starts, otherwise
+          the sysadmin is responsible for ensuring the directory exists with appropriate ownership
+          and permissions.
         '';
       };
 
@@ -149,14 +152,6 @@ in
     };
     users.groups.${cfg.group}.gid = config.ids.gids.gitolite;
 
-    systemd.tmpfiles.rules = [
-      "d '${cfg.dataDir}' 0750 ${cfg.user} ${cfg.group} - -"
-      "d '${cfg.dataDir}'/.gitolite - ${cfg.user} ${cfg.group} - -"
-      "d '${cfg.dataDir}'/.gitolite/logs - ${cfg.user} ${cfg.group} - -"
-
-      "Z ${cfg.dataDir} 0750 ${cfg.user} ${cfg.group} - -"
-    ];
-
     systemd.services.gitolite-init = {
       description = "Gitolite initialization";
       wantedBy    = [ "multi-user.target" ];
@@ -167,13 +162,19 @@ in
         GITOLITE_RC_DEFAULT = "${rcDir}/gitolite.rc.default";
       };
 
-      serviceConfig = {
-        Type = "oneshot";
-        User = cfg.user;
-        Group = cfg.group;
-        WorkingDirectory = "~";
-        RemainAfterExit = true;
-      };
+      serviceConfig = mkMerge [
+        (mkIf (cfg.dataDir == "/var/lib/gitolite") {
+          StateDirectory = "gitolite gitolite/.gitolite gitolite/.gitolite/logs";
+          StateDirectoryMode = "0750";
+        })
+        {
+          Type = "oneshot";
+          User = cfg.user;
+          Group = cfg.group;
+          WorkingDirectory = "~";
+          RemainAfterExit = true;
+        }
+      ];
 
       path = [ pkgs.gitolite pkgs.git pkgs.perl pkgs.bash pkgs.diffutils config.programs.ssh.package ];
       script =
diff --git a/nixos/modules/services/misc/gollum.nix b/nixos/modules/services/misc/gollum.nix
index f4a9c72b154..0c9c7548305 100644
--- a/nixos/modules/services/misc/gollum.nix
+++ b/nixos/modules/services/misc/gollum.nix
@@ -50,6 +50,12 @@ in
       description = "Parse and interpret emoji tags";
     };
 
+    h1-title = mkOption {
+      type = types.bool;
+      default = false;
+      description = "Use the first h1 as page title";
+    };
+
     branch = mkOption {
       type = types.str;
       default = "master";
@@ -98,10 +104,11 @@ in
           ${pkgs.gollum}/bin/gollum \
             --port ${toString cfg.port} \
             --host ${cfg.address} \
-            --config ${builtins.toFile "gollum-config.rb" cfg.extraConfig} \
+            --config ${pkgs.writeText "gollum-config.rb" cfg.extraConfig} \
             --ref ${cfg.branch} \
             ${optionalString cfg.mathjax "--mathjax"} \
             ${optionalString cfg.emoji "--emoji"} \
+            ${optionalString cfg.h1-title "--h1-title"} \
             ${optionalString (cfg.allowUploads != null) "--allow-uploads ${cfg.allowUploads}"} \
             ${cfg.stateDir}
         '';
diff --git a/nixos/modules/services/misc/jellyfin.nix b/nixos/modules/services/misc/jellyfin.nix
index 6ecdfb57dc3..0493dadea94 100644
--- a/nixos/modules/services/misc/jellyfin.nix
+++ b/nixos/modules/services/misc/jellyfin.nix
@@ -16,6 +16,14 @@ in
         description = "User account under which Jellyfin runs.";
       };
 
+      package = mkOption {
+        type = types.package;
+        example = literalExample "pkgs.jellyfin";
+        description = ''
+          Jellyfin package to use.
+        '';
+      };
+
       group = mkOption {
         type = types.str;
         default = "jellyfin";
@@ -35,11 +43,16 @@ in
         Group = cfg.group;
         StateDirectory = "jellyfin";
         CacheDirectory = "jellyfin";
-        ExecStart = "${pkgs.jellyfin}/bin/jellyfin --datadir '/var/lib/${StateDirectory}' --cachedir '/var/cache/${CacheDirectory}'";
+        ExecStart = "${cfg.package}/bin/jellyfin --datadir '/var/lib/${StateDirectory}' --cachedir '/var/cache/${CacheDirectory}'";
         Restart = "on-failure";
       };
     };
 
+    services.jellyfin.package = mkDefault (
+      if versionAtLeast config.system.stateVersion "20.09" then pkgs.jellyfin
+        else pkgs.jellyfin_10_5
+    );
+
     users.users = mkIf (cfg.user == "jellyfin") {
       jellyfin = {
         group = cfg.group;
diff --git a/nixos/modules/services/misc/mathics.nix b/nixos/modules/services/misc/mathics.nix
deleted file mode 100644
index c588a30d76c..00000000000
--- a/nixos/modules/services/misc/mathics.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-{ pkgs, lib, config, ... }:
-
-with lib;
-
-let
-  cfg = config.services.mathics;
-
-in {
-  options = {
-    services.mathics = {
-      enable = mkEnableOption "Mathics notebook service";
-
-      external = mkOption {
-        type = types.bool;
-        default = false;
-        description = "Listen on all interfaces, rather than just localhost?";
-      };
-
-      port = mkOption {
-        type = types.int;
-        default = 8000;
-        description = "TCP port to listen on.";
-      };
-    };
-  };
-
-  config = mkIf cfg.enable {
-
-    users.users.mathics = {
-      group = config.users.groups.mathics.name;
-      description = "Mathics user";
-      home = "/var/lib/mathics";
-      createHome = true;
-      uid = config.ids.uids.mathics;
-    };
-
-    users.groups.mathics.gid = config.ids.gids.mathics;
-
-    systemd.services.mathics = {
-      description = "Mathics notebook server";
-      wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" ];
-      serviceConfig = {
-        User = config.users.users.mathics.name;
-        Group = config.users.groups.mathics.name;
-        ExecStart = concatStringsSep " " [
-          "${pkgs.mathics}/bin/mathicsserver"
-          "--port" (toString cfg.port)
-          (if cfg.external then "--external" else "")
-        ];
-      };
-    };
-  };
-}
diff --git a/nixos/modules/services/misc/matrix-synapse.nix b/nixos/modules/services/misc/matrix-synapse.nix
index e982eb16fa7..3eb1073387f 100644
--- a/nixos/modules/services/misc/matrix-synapse.nix
+++ b/nixos/modules/services/misc/matrix-synapse.nix
@@ -675,7 +675,7 @@ in {
       }
     ];
 
-    users.users.matrix-synapse = { 
+    users.users.matrix-synapse = {
         group = "matrix-synapse";
         home = cfg.dataDir;
         createHome = true;
diff --git a/nixos/modules/services/misc/matrix-synapse.xml b/nixos/modules/services/misc/matrix-synapse.xml
index 2f2ac27eeb9..fbfa838b168 100644
--- a/nixos/modules/services/misc/matrix-synapse.xml
+++ b/nixos/modules/services/misc/matrix-synapse.xml
@@ -14,9 +14,9 @@
  <para>
   This chapter will show you how to set up your own, self-hosted Matrix
   homeserver using the Synapse reference homeserver, and how to serve your own
-  copy of the Riot web client. See the
+  copy of the Element web client. See the
   <link xlink:href="https://matrix.org/docs/projects/try-matrix-now.html">Try
-  Matrix Now!</link> overview page for links to Riot Apps for Android and iOS,
+  Matrix Now!</link> overview page for links to Element Apps for Android and iOS,
   desktop clients, as well as bridges to other networks and other projects
   around Matrix.
  </para>
@@ -84,7 +84,7 @@ in {
               "m.homeserver" =  { "base_url" = "https://${fqdn}"; };
               "m.identity_server" =  { "base_url" = "https://vector.im"; };
             };
-          # ACAO required to allow riot-web on any URL to request this json file
+          # ACAO required to allow element-web on any URL to request this json file
           in ''
             add_header Content-Type application/json;
             add_header Access-Control-Allow-Origin *;
@@ -98,7 +98,7 @@ in {
         <link linkend="opt-services.nginx.virtualHosts._name_.forceSSL">forceSSL</link> = true;
 
         # Or do a redirect instead of the 404, or whatever is appropriate for you.
-        # But do not put a Matrix Web client here! See the Riot Web section below.
+        # But do not put a Matrix Web client here! See the Element web section below.
         <link linkend="opt-services.nginx.virtualHosts._name_.locations._name_.extraConfig">locations."/".extraConfig</link> = ''
           return 404;
         '';
@@ -171,17 +171,19 @@ Success!
    option until a better solution for NixOS is in place.
   </para>
  </section>
- <section xml:id="module-services-matrix-riot-web">
-  <title>Riot Web Client</title>
+ <section xml:id="module-services-matrix-element-web">
+  <title>Element (formerly known as Riot) Web Client</title>
 
   <para>
-   <link xlink:href="https://github.com/vector-im/riot-web/">Riot Web</link> is
+   <link xlink:href="https://github.com/vector-im/riot-web/">Element Web</link> is
    the reference web client for Matrix and developed by the core team at
-   matrix.org. The following snippet can be optionally added to the code before
+   matrix.org. Element was formerly known as Riot.im, see the
+   <link xlink:href="https://element.io/blog/welcome-to-element/">Element introductory blog post</link>
+   for more information. The following snippet can be optionally added to the code before
    to complete the synapse installation with a web client served at
-   <code>https://riot.myhostname.example.org</code> and
-   <code>https://riot.example.org</code>. Alternatively, you can use the hosted
-   copy at <link xlink:href="https://riot.im/app">https://riot.im/app</link>,
+   <code>https://element.myhostname.example.org</code> and
+   <code>https://element.example.org</code>. Alternatively, you can use the hosted
+   copy at <link xlink:href="https://app.element.io/">https://app.element.io/</link>,
    or use other web clients or native client applications. Due to the
    <literal>/.well-known</literal> urls set up done above, many clients should
    fill in the required connection details automatically when you enter your
@@ -191,14 +193,14 @@ Success!
    featureset.
 <programlisting>
 {
-  services.nginx.virtualHosts."riot.${fqdn}" = {
+  services.nginx.virtualHosts."element.${fqdn}" = {
     <link linkend="opt-services.nginx.virtualHosts._name_.enableACME">enableACME</link> = true;
     <link linkend="opt-services.nginx.virtualHosts._name_.forceSSL">forceSSL</link> = true;
     <link linkend="opt-services.nginx.virtualHosts._name_.serverAliases">serverAliases</link> = [
-      "riot.${config.networking.domain}"
+      "element.${config.networking.domain}"
     ];
 
-    <link linkend="opt-services.nginx.virtualHosts._name_.root">root</link> = pkgs.riot-web.override {
+    <link linkend="opt-services.nginx.virtualHosts._name_.root">root</link> = pkgs.element-web.override {
       conf = {
         default_server_config."m.homeserver" = {
           "base_url" = "${config.networking.domain}";
@@ -212,13 +214,13 @@ Success!
   </para>
 
   <para>
-   Note that the Riot developers do not recommend running Riot and your Matrix
+   Note that the Element developers do not recommend running Element and your Matrix
    homeserver on the same fully-qualified domain name for security reasons. In
    the example, this means that you should not reuse the
-   <literal>myhostname.example.org</literal> virtualHost to also serve Riot,
+   <literal>myhostname.example.org</literal> virtualHost to also serve Element,
    but instead serve it on a different subdomain, like
-   <literal>riot.example.org</literal> in the example. See the
-   <link xlink:href="https://github.com/vector-im/riot-web#important-security-note">Riot
+   <literal>element.example.org</literal> in the example. See the
+   <link xlink:href="https://github.com/vector-im/riot-web#important-security-note">Element
    Important Security Notes</link> for more information on this subject.
   </para>
  </section>
diff --git a/nixos/modules/services/misc/mautrix-telegram.nix b/nixos/modules/services/misc/mautrix-telegram.nix
index 78a42fbb574..c5e8a5b85ec 100644
--- a/nixos/modules/services/misc/mautrix-telegram.nix
+++ b/nixos/modules/services/misc/mautrix-telegram.nix
@@ -125,7 +125,7 @@ in {
         if [ ! -f '${registrationFile}' ]; then
           ${pkgs.mautrix-telegram}/bin/mautrix-telegram \
             --generate-registration \
-            --base-config='${pkgs.mautrix-telegram}/example-config.yaml' \
+            --base-config='${pkgs.mautrix-telegram}/${pkgs.mautrix-telegram.pythonModule.sitePackages}/mautrix_telegram/example-config.yaml' \
             --config='${settingsFile}' \
             --registration='${registrationFile}'
         fi
diff --git a/nixos/modules/services/misc/mesos-master.nix b/nixos/modules/services/misc/mesos-master.nix
deleted file mode 100644
index 572a9847e46..00000000000
--- a/nixos/modules/services/misc/mesos-master.nix
+++ /dev/null
@@ -1,125 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-  cfg = config.services.mesos.master;
-
-in {
-
-  options.services.mesos = {
-
-    master = {
-      enable = mkOption {
-        description = "Whether to enable the Mesos Master.";
-        default = false;
-        type = types.bool;
-      };
-
-      ip = mkOption {
-        description = "IP address to listen on.";
-        default = "0.0.0.0";
-        type = types.str;
-      };
-
-      port = mkOption {
-        description = "Mesos Master port";
-        default = 5050;
-        type = types.int;
-      };
-
-      advertiseIp = mkOption {
-        description = "IP address advertised to reach this master.";
-        default = null;
-        type = types.nullOr types.str;
-      };
-
-      advertisePort = mkOption {
-        description = "Port advertised to reach this Mesos master.";
-        default = null;
-        type = types.nullOr types.int;
-      };
-
-      zk = mkOption {
-        description = ''
-          ZooKeeper URL (used for leader election amongst masters).
-          May be one of:
-            zk://host1:port1,host2:port2,.../mesos
-            zk://username:password@host1:port1,host2:port2,.../mesos
-        '';
-        type = types.str;
-      };
-
-      workDir = mkOption {
-        description = "The Mesos work directory.";
-        default = "/var/lib/mesos/master";
-        type = types.str;
-      };
-
-      extraCmdLineOptions = mkOption {
-        description = ''
-          Extra command line options for Mesos Master.
-
-          See https://mesos.apache.org/documentation/latest/configuration/
-        '';
-        default = [ "" ];
-        type = types.listOf types.str;
-        example = [ "--credentials=VALUE" ];
-      };
-
-      quorum = mkOption {
-        description = ''
-          The size of the quorum of replicas when using 'replicated_log' based
-          registry. It is imperative to set this value to be a majority of
-          masters i.e., quorum > (number of masters)/2.
-
-          If 0 will fall back to --registry=in_memory.
-        '';
-        default = 0;
-        type = types.int;
-      };
-
-      logLevel = mkOption {
-        description = ''
-          The logging level used. Possible values:
-            'INFO', 'WARNING', 'ERROR'
-        '';
-        default = "INFO";
-        type = types.str;
-      };
-
-    };
-
-
-  };
-
-
-  config = mkIf cfg.enable {
-    systemd.tmpfiles.rules = [
-      "d '${cfg.workDir}' 0700 - - - -"
-    ];
-    systemd.services.mesos-master = {
-      description = "Mesos Master";
-      wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" ];
-      serviceConfig = {
-        ExecStart = ''
-          ${pkgs.mesos}/bin/mesos-master \
-            --ip=${cfg.ip} \
-            --port=${toString cfg.port} \
-            ${optionalString (cfg.advertiseIp != null) "--advertise_ip=${cfg.advertiseIp}"} \
-            ${optionalString (cfg.advertisePort  != null) "--advertise_port=${toString cfg.advertisePort}"} \
-            ${if cfg.quorum == 0
-              then "--registry=in_memory"
-              else "--zk=${cfg.zk} --registry=replicated_log --quorum=${toString cfg.quorum}"} \
-            --work_dir=${cfg.workDir} \
-            --logging_level=${cfg.logLevel} \
-            ${toString cfg.extraCmdLineOptions}
-        '';
-        Restart = "on-failure";
-      };
-    };
-  };
-
-}
-
diff --git a/nixos/modules/services/misc/mesos-slave.nix b/nixos/modules/services/misc/mesos-slave.nix
deleted file mode 100644
index 170065d0065..00000000000
--- a/nixos/modules/services/misc/mesos-slave.nix
+++ /dev/null
@@ -1,220 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-  cfg = config.services.mesos.slave;
-
-  mkAttributes =
-    attrs: concatStringsSep ";" (mapAttrsToList
-                                   (k: v: "${k}:${v}")
-                                   (filterAttrs (k: v: v != null) attrs));
-  attribsArg = optionalString (cfg.attributes != {})
-                              "--attributes=${mkAttributes cfg.attributes}";
-
-  containerizersArg = concatStringsSep "," (
-    lib.unique (
-      cfg.containerizers ++ (optional cfg.withDocker "docker")
-    )
-  );
-
-  imageProvidersArg = concatStringsSep "," (
-    lib.unique (
-      cfg.imageProviders ++ (optional cfg.withDocker "docker")
-    )
-  );
-
-  isolationArg = concatStringsSep "," (
-    lib.unique (
-      cfg.isolation ++ (optionals cfg.withDocker [ "filesystem/linux" "docker/runtime"])
-    )
-  );
-
-in {
-
-  options.services.mesos = {
-    slave = {
-      enable = mkOption {
-        description = "Whether to enable the Mesos Slave.";
-        default = false;
-        type = types.bool;
-      };
-
-      ip = mkOption {
-        description = "IP address to listen on.";
-        default = "0.0.0.0";
-        type = types.str;
-      };
-
-      port = mkOption {
-        description = "Port to listen on.";
-        default = 5051;
-        type = types.int;
-      };
-
-      advertiseIp = mkOption {
-        description = "IP address advertised to reach this agent.";
-        default = null;
-        type = types.nullOr types.str;
-      };
-
-      advertisePort = mkOption {
-        description = "Port advertised to reach this agent.";
-        default = null;
-        type = types.nullOr types.int;
-      };
-
-      containerizers = mkOption {
-        description = ''
-          List of containerizer implementations to compose in order to provide
-          containerization. Available options are mesos and docker.
-          The order the containerizers are specified is the order they are tried.
-        '';
-        default = [ "mesos" ];
-        type = types.listOf types.str;
-      };
-
-      imageProviders = mkOption {
-        description = "List of supported image providers, e.g., APPC,DOCKER.";
-        default = [ ];
-        type = types.listOf types.str;
-      };
-
-      imageProvisionerBackend = mkOption {
-        description = ''
-          Strategy for provisioning container rootfs from images,
-          e.g., aufs, bind, copy, overlay.
-        '';
-        default = "copy";
-        type = types.str;
-      };
-
-      isolation = mkOption {
-        description = ''
-          Isolation mechanisms to use, e.g., posix/cpu,posix/mem, or
-          cgroups/cpu,cgroups/mem, or network/port_mapping, or `gpu/nvidia` for nvidia
-          specific gpu isolation.
-        '';
-        default = [ "posix/cpu" "posix/mem" ];
-        type = types.listOf types.str;
-      };
-
-      master = mkOption {
-        description = ''
-          May be one of:
-            zk://host1:port1,host2:port2,.../path
-            zk://username:password@host1:port1,host2:port2,.../path
-        '';
-        type = types.str;
-      };
-
-      withHadoop = mkOption {
-        description = "Add the HADOOP_HOME to the slave.";
-        default = false;
-        type = types.bool;
-      };
-
-      withDocker = mkOption {
-        description = "Enable the docker containerizer.";
-        default = config.virtualisation.docker.enable;
-        type = types.bool;
-      };
-
-      dockerRegistry = mkOption {
-        description = ''
-          The default url for pulling Docker images.
-          It could either be a Docker registry server url,
-          or a local path in which Docker image archives are stored.
-        '';
-        default = null;
-        type = types.nullOr (types.either types.str types.path);
-      };
-
-      workDir = mkOption {
-        description = "The Mesos work directory.";
-        default = "/var/lib/mesos/slave";
-        type = types.str;
-      };
-
-      extraCmdLineOptions = mkOption {
-        description = ''
-          Extra command line options for Mesos Slave.
-
-          See https://mesos.apache.org/documentation/latest/configuration/
-        '';
-        default = [ "" ];
-        type = types.listOf types.str;
-        example = [ "--gc_delay=3days" ];
-      };
-
-      logLevel = mkOption {
-        description = ''
-          The logging level used. Possible values:
-            'INFO', 'WARNING', 'ERROR'
-        '';
-        default = "INFO";
-        type = types.str;
-      };
-
-      attributes = mkOption {
-        description = ''
-          Machine attributes for the slave instance.
-
-          Use caution when changing this; you may need to manually reset slave
-          metadata before the slave can re-register.
-        '';
-        default = {};
-        type = types.attrsOf types.str;
-        example = { rack = "aa";
-                    host = "aabc123";
-                    os = "nixos"; };
-      };
-
-      executorEnvironmentVariables = mkOption {
-        description = ''
-          The environment variables that should be passed to the executor, and thus subsequently task(s).
-        '';
-        default = {
-          PATH = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin";
-        };
-        type = types.attrsOf types.str;
-      };
-    };
-
-  };
-
-  config = mkIf cfg.enable {
-    systemd.tmpfiles.rules = [
-      "d '${cfg.workDir}' 0701 - - - -"
-    ];
-    systemd.services.mesos-slave = {
-      description = "Mesos Slave";
-      wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" ] ++ optionals cfg.withDocker [ "docker.service" ] ;
-      path = [ pkgs.runtimeShellPackage ];
-      serviceConfig = {
-        ExecStart = ''
-          ${pkgs.mesos}/bin/mesos-slave \
-            --containerizers=${containerizersArg} \
-            --image_providers=${imageProvidersArg} \
-            --image_provisioner_backend=${cfg.imageProvisionerBackend} \
-            --isolation=${isolationArg} \
-            --ip=${cfg.ip} \
-            --port=${toString cfg.port} \
-            ${optionalString (cfg.advertiseIp != null) "--advertise_ip=${cfg.advertiseIp}"} \
-            ${optionalString (cfg.advertisePort  != null) "--advertise_port=${toString cfg.advertisePort}"} \
-            --master=${cfg.master} \
-            --work_dir=${cfg.workDir} \
-            --logging_level=${cfg.logLevel} \
-            ${attribsArg} \
-            ${optionalString cfg.withHadoop "--hadoop-home=${pkgs.hadoop}"} \
-            ${optionalString cfg.withDocker "--docker=${pkgs.docker}/libexec/docker/docker"} \
-            ${optionalString (cfg.dockerRegistry != null) "--docker_registry=${cfg.dockerRegistry}"} \
-            --executor_environment_variables=${lib.escapeShellArg (builtins.toJSON cfg.executorEnvironmentVariables)} \
-            ${toString cfg.extraCmdLineOptions}
-        '';
-      };
-    };
-  };
-
-}
diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix
index 0b3d7f3f03c..2680b1cc0d3 100644
--- a/nixos/modules/services/misc/nix-daemon.nix
+++ b/nixos/modules/services/misc/nix-daemon.nix
@@ -193,50 +193,111 @@ in
       };
 
       buildMachines = mkOption {
-        type = types.listOf types.attrs;
+        type = types.listOf (types.submodule ({
+          options = {
+            hostName = mkOption {
+              type = types.str;
+              example = "nixbuilder.example.org";
+              description = ''
+                The hostname of the build machine.
+              '';
+            };
+            system = mkOption {
+              type = types.nullOr types.str;
+              default = null;
+              example = "x86_64-linux";
+              description = ''
+                The system type the build machine can execute derivations on.
+                Either this attribute or <varname>systems</varname> must be
+                present, where <varname>system</varname> takes precedence if
+                both are set.
+              '';
+            };
+            systems = mkOption {
+              type = types.listOf types.str;
+              default = [];
+              example = [ "x86_64-linux" "aarch64-linux" ];
+              description = ''
+                The system types the build machine can execute derivations on.
+                Either this attribute or <varname>system</varname> must be
+                present, where <varname>system</varname> takes precedence if
+                both are set.
+              '';
+            };
+            sshUser = mkOption {
+              type = types.nullOr types.str;
+              default = null;
+              example = "builder";
+              description = ''
+                The username to log in as on the remote host. This user must be
+                able to log in and run nix commands non-interactively. It must
+                also be privileged to build derivations, so must be included in
+                <option>nix.trustedUsers</option>.
+              '';
+            };
+            sshKey = mkOption {
+              type = types.nullOr types.str;
+              default = null;
+              example = "/root/.ssh/id_buildhost_builduser";
+              description = ''
+                The path to the SSH private key with which to authenticate on
+                the build machine. The private key must not have a passphrase.
+                If null, the building user (root on NixOS machines) must have an
+                appropriate ssh configuration to log in non-interactively.
+
+                Note that for security reasons, this path must point to a file
+                in the local filesystem, *not* to the nix store.
+              '';
+            };
+            maxJobs = mkOption {
+              type = types.int;
+              default = 1;
+              description = ''
+                The number of concurrent jobs the build machine supports. The
+                build machine will enforce its own limits, but this allows hydra
+                to schedule better since there is no work-stealing between build
+                machines.
+              '';
+            };
+            speedFactor = mkOption {
+              type = types.int;
+              default = 1;
+              description = ''
+                The relative speed of this builder. This is an arbitrary integer
+                that indicates the speed of this builder, relative to other
+                builders. Higher is faster.
+              '';
+            };
+            mandatoryFeatures = mkOption {
+              type = types.listOf types.str;
+              default = [];
+              example = [ "big-parallel" ];
+              description = ''
+                A list of features mandatory for this builder. The builder will
+                be ignored for derivations that don't require all features in
+                this list. All mandatory features are automatically included in
+                <varname>supportedFeatures</varname>.
+              '';
+            };
+            supportedFeatures = mkOption {
+              type = types.listOf types.str;
+              default = [];
+              example = [ "kvm" "big-parallel" ];
+              description = ''
+                A list of features supported by this builder. The builder will
+                be ignored for derivations that require features not in this
+                list.
+              '';
+            };
+          };
+        }));
         default = [];
-        example = literalExample ''
-          [ { hostName = "voila.labs.cs.uu.nl";
-              sshUser = "nix";
-              sshKey = "/root/.ssh/id_buildfarm";
-              system = "powerpc-darwin";
-              maxJobs = 1;
-            }
-            { hostName = "linux64.example.org";
-              sshUser = "buildfarm";
-              sshKey = "/root/.ssh/id_buildfarm";
-              system = "x86_64-linux";
-              maxJobs = 2;
-              speedFactor = 2;
-              supportedFeatures = [ "kvm" ];
-              mandatoryFeatures = [ "perf" ];
-            }
-          ]
-        '';
         description = ''
-          This option lists the machines to be used if distributed
-          builds are enabled (see
-          <option>nix.distributedBuilds</option>).  Nix will perform
-          derivations on those machines via SSH by copying the inputs
-          to the Nix store on the remote machine, starting the build,
-          then copying the output back to the local Nix store.  Each
-          element of the list should be an attribute set containing
-          the machine's host name (<varname>hostname</varname>), the
-          user name to be used for the SSH connection
-          (<varname>sshUser</varname>), the Nix system type
-          (<varname>system</varname>, e.g.,
-          <literal>"i686-linux"</literal>), the maximum number of
-          jobs to be run in parallel on that machine
-          (<varname>maxJobs</varname>), the path to the SSH private
-          key to be used to connect (<varname>sshKey</varname>), a
-          list of supported features of the machine
-          (<varname>supportedFeatures</varname>) and a list of
-          mandatory features of the machine
-          (<varname>mandatoryFeatures</varname>). The SSH private key
-          should not have a passphrase, and the corresponding public
-          key should be added to
-          <filename>~<replaceable>sshUser</replaceable>/authorized_keys</filename>
-          on the remote machine.
+          This option lists the machines to be used if distributed builds are
+          enabled (see <option>nix.distributedBuilds</option>).
+          Nix will perform derivations on those machines via SSH by copying the
+          inputs to the Nix store on the remote machine, starting the build,
+          then copying the output back to the local Nix store.
         '';
       };
 
@@ -461,14 +522,14 @@ in
       { enable = cfg.buildMachines != [];
         text =
           concatMapStrings (machine:
-            "${if machine ? sshUser then "${machine.sshUser}@" else ""}${machine.hostName} "
-            + machine.system or (concatStringsSep "," machine.systems)
-            + " ${machine.sshKey or "-"} ${toString machine.maxJobs or 1} "
-            + toString (machine.speedFactor or 1)
+            "${if machine.sshUser != null then "${machine.sshUser}@" else ""}${machine.hostName} "
+            + (if machine.system != null then machine.system else concatStringsSep "," machine.systems)
+            + " ${if machine.sshKey != null then machine.sshKey else "-"} ${toString machine.maxJobs} "
+            + toString (machine.speedFactor)
             + " "
-            + concatStringsSep "," (machine.mandatoryFeatures or [] ++ machine.supportedFeatures or [])
+            + concatStringsSep "," (machine.mandatoryFeatures ++ machine.supportedFeatures)
             + " "
-            + concatStringsSep "," machine.mandatoryFeatures or []
+            + concatStringsSep "," machine.mandatoryFeatures
             + "\n"
           ) cfg.buildMachines;
       };
@@ -526,16 +587,10 @@ in
 
     nix.systemFeatures = mkDefault (
       [ "nixos-test" "benchmark" "big-parallel" "kvm" ] ++
-      optionals (pkgs.stdenv.isx86_64 && pkgs.hostPlatform.platform ? gcc.arch) (
-        # a x86_64 builder can run code for `platform.gcc.arch` and minor architectures:
-        [ "gccarch-${pkgs.hostPlatform.platform.gcc.arch}" ] ++ {
-          sandybridge    = [ "gccarch-westmere" ];
-          ivybridge      = [ "gccarch-westmere" "gccarch-sandybridge" ];
-          haswell        = [ "gccarch-westmere" "gccarch-sandybridge" "gccarch-ivybridge" ];
-          broadwell      = [ "gccarch-westmere" "gccarch-sandybridge" "gccarch-ivybridge" "gccarch-haswell" ];
-          skylake        = [ "gccarch-westmere" "gccarch-sandybridge" "gccarch-ivybridge" "gccarch-haswell" "gccarch-broadwell" ];
-          skylake-avx512 = [ "gccarch-westmere" "gccarch-sandybridge" "gccarch-ivybridge" "gccarch-haswell" "gccarch-broadwell" "gccarch-skylake" ];
-        }.${pkgs.hostPlatform.platform.gcc.arch} or []
+      optionals (pkgs.hostPlatform.platform ? gcc.arch) (
+        # a builder can run code for `platform.gcc.arch` and inferior architectures
+        [ "gccarch-${pkgs.hostPlatform.platform.gcc.arch}" ] ++
+        map (x: "gccarch-${x}") lib.systems.architectures.inferiors.${pkgs.hostPlatform.platform.gcc.arch}
       )
     );
 
diff --git a/nixos/modules/services/misc/octoprint.nix b/nixos/modules/services/misc/octoprint.nix
index 7a71d2c8c6a..e2fbd3b401c 100644
--- a/nixos/modules/services/misc/octoprint.nix
+++ b/nixos/modules/services/misc/octoprint.nix
@@ -68,8 +68,8 @@ in
       plugins = mkOption {
         default = plugins: [];
         defaultText = "plugins: []";
-        example = literalExample "plugins: [ m3d-fio ]";
-        description = "Additional plugins.";
+        example = literalExample "plugins: with plugins; [ m33-fio stlviewer ]";
+        description = "Additional plugins to be used. Available plugins are passed through the plugins input.";
       };
 
       extraConfig = mkOption {
diff --git a/nixos/modules/services/misc/pinnwand.nix b/nixos/modules/services/misc/pinnwand.nix
new file mode 100644
index 00000000000..aa1ee5cfaa7
--- /dev/null
+++ b/nixos/modules/services/misc/pinnwand.nix
@@ -0,0 +1,78 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.pinnwand;
+
+  format = pkgs.formats.toml {};
+  configFile = format.generate "pinnwand.toml" cfg.settings;
+in
+{
+  options.services.pinnwand = {
+    enable = mkEnableOption "Pinnwand";
+
+    port = mkOption {
+      type = types.port;
+      description = "The port to listen on.";
+      default = 8000;
+    };
+
+    settings = mkOption {
+      type = format.type;
+      description = ''
+        Your <filename>pinnwand.toml</filename> as a Nix attribute set. Look up
+        possible options in the <link xlink:href="https://github.com/supakeen/pinnwand/blob/master/pinnwand.toml-example">pinnwand.toml-example</link>.
+      '';
+      default = {
+        # https://github.com/supakeen/pinnwand/blob/master/pinnwand.toml-example
+        database_uri = "sqlite:///var/lib/pinnwand/pinnwand.db";
+        preferred_lexeres = [];
+        paste_size = 262144;
+        paste_help = ''
+          <p>Welcome to pinnwand, this site is a pastebin. It allows you to share code with others. If you write code in the text area below and press the paste button you will be given a link you can share with others so they can view your code as well.</p><p>People with the link can view your pasted code, only you can remove your paste and it expires automatically. Note that anyone could guess the URI to your paste so don't rely on it being private.</p>
+        '';
+        footer = ''
+          View <a href="//github.com/supakeen/pinnwand" target="_BLANK">source code</a>, the <a href="/removal">removal</a> or <a href="/expiry">expiry</a> stories, or read the <a href="/about">about</a> page.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.pinnwand = {
+      description = "Pinnwannd HTTP Server";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+
+      unitConfig.Documentation = "https://pinnwand.readthedocs.io/en/latest/";
+      serviceConfig = {
+        ExecStart = "${pkgs.pinnwand}/bin/pinnwand --configuration-path ${configFile} http --port ${toString(cfg.port)}";
+        StateDirectory = "pinnwand";
+        StateDirectoryMode = "0700";
+
+        AmbientCapabilities = [];
+        CapabilityBoundingSet = "";
+        DevicePolicy = "closed";
+        DynamicUser = true;
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        PrivateDevices = true;
+        PrivateUsers = true;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectKernelLogs = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        SystemCallArchitectures = "native";
+        SystemCallFilter = "@system-service";
+        UMask = "0077";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/misc/redmine.nix b/nixos/modules/services/misc/redmine.nix
index 0e71cf92569..1313bdaccc4 100644
--- a/nixos/modules/services/misc/redmine.nix
+++ b/nixos/modules/services/misc/redmine.nix
@@ -1,12 +1,12 @@
 { config, lib, pkgs, ... }:
 
 let
-  inherit (lib) mkDefault mkEnableOption mkIf mkOption types;
+  inherit (lib) mkBefore mkDefault mkEnableOption mkIf mkOption mkRemovedOptionModule types;
   inherit (lib) concatStringsSep literalExample mapAttrsToList;
-  inherit (lib) optional optionalAttrs optionalString singleton versionAtLeast;
+  inherit (lib) optional optionalAttrs optionalString;
 
   cfg = config.services.redmine;
-
+  format = pkgs.formats.yaml {};
   bundle = "${cfg.package}/share/redmine/bin/bundle";
 
   databaseYml = pkgs.writeText "database.yml" ''
@@ -20,24 +20,8 @@ let
       ${optionalString (cfg.database.type == "mysql2" && cfg.database.socket != null) "socket: ${cfg.database.socket}"}
   '';
 
-  configurationYml = pkgs.writeText "configuration.yml" ''
-    default:
-      scm_subversion_command: ${pkgs.subversion}/bin/svn
-      scm_mercurial_command: ${pkgs.mercurial}/bin/hg
-      scm_git_command: ${pkgs.gitAndTools.git}/bin/git
-      scm_cvs_command: ${pkgs.cvs}/bin/cvs
-      scm_bazaar_command: ${pkgs.breezy}/bin/bzr
-      scm_darcs_command: ${pkgs.darcs}/bin/darcs
-
-    ${cfg.extraConfig}
-  '';
-
-  additionalEnvironment = pkgs.writeText "additional_environment.rb" ''
-    config.logger = Logger.new("${cfg.stateDir}/log/production.log", 14, 1048576)
-    config.logger.level = Logger::INFO
-
-    ${cfg.extraEnv}
-  '';
+  configurationYml = format.generate "configuration.yml" cfg.settings;
+  additionalEnvironment = pkgs.writeText "additional_environment.rb" cfg.extraEnv;
 
   unpackTheme = unpack "theme";
   unpackPlugin = unpack "plugin";
@@ -56,8 +40,13 @@ let
   pgsqlLocal = cfg.database.createLocally && cfg.database.type == "postgresql";
 
 in
-
 {
+  imports = [
+    (mkRemovedOptionModule [ "services" "redmine" "extraConfig" ] "Use services.redmine.settings instead.")
+    (mkRemovedOptionModule [ "services" "redmine" "database" "password" ] "Use services.redmine.database.passwordFile instead.")
+  ];
+
+  # interface
   options = {
     services.redmine = {
       enable = mkEnableOption "Redmine";
@@ -93,21 +82,24 @@ in
         description = "The state directory, logs and plugins are stored here.";
       };
 
-      extraConfig = mkOption {
-        type = types.lines;
-        default = "";
+      settings = mkOption {
+        type = format.type;
+        default = {};
         description = ''
-          Extra configuration in configuration.yml.
-
-          See <link xlink:href="https://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration"/>
+          Redmine configuration (<filename>configuration.yml</filename>). Refer to
+          <link xlink:href="https://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration"/>
           for details.
         '';
         example = literalExample ''
-          email_delivery:
-            delivery_method: smtp
-            smtp_settings:
-              address: mail.example.com
-              port: 25
+          {
+            email_delivery = {
+              delivery_method = "smtp";
+              smtp_settings = {
+                address = "mail.example.com";
+                port = 25;
+              };
+            };
+          }
         '';
       };
 
@@ -186,16 +178,6 @@ in
           description = "Database user.";
         };
 
-        password = mkOption {
-          type = types.str;
-          default = "";
-          description = ''
-            The password corresponding to <option>database.user</option>.
-            Warning: this is stored in cleartext in the Nix store!
-            Use <option>database.passwordFile</option> instead.
-          '';
-        };
-
         passwordFile = mkOption {
           type = types.nullOr types.path;
           default = null;
@@ -226,11 +208,12 @@ in
     };
   };
 
+  # implementation
   config = mkIf cfg.enable {
 
     assertions = [
-      { assertion = cfg.database.passwordFile != null || cfg.database.password != "" || cfg.database.socket != null;
-        message = "one of services.redmine.database.socket, services.redmine.database.passwordFile, or services.redmine.database.password must be set";
+      { assertion = cfg.database.passwordFile != null || cfg.database.socket != null;
+        message = "one of services.redmine.database.socket or services.redmine.database.passwordFile must be set";
       }
       { assertion = cfg.database.createLocally -> cfg.database.user == cfg.user;
         message = "services.redmine.database.user must be set to ${cfg.user} if services.redmine.database.createLocally is set true";
@@ -243,6 +226,22 @@ in
       }
     ];
 
+    services.redmine.settings = {
+      production = {
+        scm_subversion_command = "${pkgs.subversion}/bin/svn";
+        scm_mercurial_command = "${pkgs.mercurial}/bin/hg";
+        scm_git_command = "${pkgs.gitAndTools.git}/bin/git";
+        scm_cvs_command = "${pkgs.cvs}/bin/cvs";
+        scm_bazaar_command = "${pkgs.breezy}/bin/bzr";
+        scm_darcs_command = "${pkgs.darcs}/bin/darcs";
+      };
+    };
+
+    services.redmine.extraEnv = mkBefore ''
+      config.logger = Logger.new("${cfg.stateDir}/log/production.log", 14, 1048576)
+      config.logger.level = Logger::INFO
+    '';
+
     services.mysql = mkIf mysqlLocal {
       enable = true;
       package = mkDefault pkgs.mariadb;
@@ -338,7 +337,7 @@ in
 
 
         # handle database.passwordFile & permissions
-        DBPASS=$(head -n1 ${cfg.database.passwordFile})
+        DBPASS=${optionalString (cfg.database.passwordFile != null) "$(head -n1 ${cfg.database.passwordFile})"}
         cp -f ${databaseYml} "${cfg.stateDir}/config/database.yml"
         sed -e "s,#dbpass#,$DBPASS,g" -i "${cfg.stateDir}/config/database.yml"
         chmod 440 "${cfg.stateDir}/config/database.yml"
@@ -379,17 +378,6 @@ in
       redmine.gid = config.ids.gids.redmine;
     };
 
-    warnings = optional (cfg.database.password != "")
-      ''config.services.redmine.database.password will be stored as plaintext
-      in the Nix store. Use database.passwordFile instead.'';
-
-    # Create database passwordFile default when password is configured.
-    services.redmine.database.passwordFile =
-      (mkDefault (toString (pkgs.writeTextFile {
-        name = "redmine-database-password";
-        text = cfg.database.password;
-      })));
-
   };
 
 }
diff --git a/nixos/modules/services/misc/siproxd.nix b/nixos/modules/services/misc/siproxd.nix
index ae7b27de8e7..0e87fc461d3 100644
--- a/nixos/modules/services/misc/siproxd.nix
+++ b/nixos/modules/services/misc/siproxd.nix
@@ -38,7 +38,7 @@ in
         type = types.bool;
         default = false;
         description = ''
-          Whether to enable the Siproxd SIP 
+          Whether to enable the Siproxd SIP
 	  proxy/masquerading daemon.
         '';
       };
@@ -111,7 +111,7 @@ in
         type = types.int;
         default = 300;
         description = ''
-          Timeout for an RTP stream. If for the specified 
+          Timeout for an RTP stream. If for the specified
           number of seconds no data is relayed on an active
           stream, it is considered dead and will be killed.
         '';
@@ -122,7 +122,7 @@ in
         default = 46;
         description = ''
           DSCP (differentiated services) value to be assigned
-          to RTP packets. Allows QOS aware routers to handle 
+          to RTP packets. Allows QOS aware routers to handle
           different types traffic with different priorities.
         '';
       };
@@ -132,7 +132,7 @@ in
         default = 0;
         description = ''
           DSCP (differentiated services) value to be assigned
-          to SIP packets. Allows QOS aware routers to handle 
+          to SIP packets. Allows QOS aware routers to handle
           different types traffic with different priorities.
         '';
       };
diff --git a/nixos/modules/services/misc/ssm-agent.nix b/nixos/modules/services/misc/ssm-agent.nix
index f7c05deeecb..00e806695fd 100644
--- a/nixos/modules/services/misc/ssm-agent.nix
+++ b/nixos/modules/services/misc/ssm-agent.nix
@@ -29,13 +29,15 @@ in {
 
   config = mkIf cfg.enable {
     systemd.services.ssm-agent = {
+      users.extraUsers.ssm-user = {};
+
       inherit (cfg.package.meta) description;
       after    = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
 
-      path = [ fake-lsb-release ];
+      path = [ fake-lsb-release pkgs.coreutils ];
       serviceConfig = {
-        ExecStart = "${cfg.package}/bin/agent";
+        ExecStart = "${cfg.package}/bin/amazon-ssm-agent";
         KillMode = "process";
         Restart = "on-failure";
         RestartSec = "15min";
diff --git a/nixos/modules/services/misc/sssd.nix b/nixos/modules/services/misc/sssd.nix
index 3da99a3b38c..386281e2b7c 100644
--- a/nixos/modules/services/misc/sssd.nix
+++ b/nixos/modules/services/misc/sssd.nix
@@ -69,7 +69,7 @@ in {
         mode = "0400";
       };
 
-      system.nssModules = pkgs.sssd;
+      system.nssModules = [ pkgs.sssd ];
       system.nssDatabases = {
         group = [ "sss" ];
         passwd = [ "sss" ];
@@ -92,4 +92,6 @@ in {
     services.openssh.authorizedKeysCommand = "/etc/ssh/authorized_keys_command";
     services.openssh.authorizedKeysCommandUser = "nobody";
   })];
+
+  meta.maintainers = with maintainers; [ bbigras ];
 }
diff --git a/nixos/modules/services/misc/tzupdate.nix b/nixos/modules/services/misc/tzupdate.nix
index 570982ced29..eac1e1112a5 100644
--- a/nixos/modules/services/misc/tzupdate.nix
+++ b/nixos/modules/services/misc/tzupdate.nix
@@ -11,7 +11,7 @@ in {
       default = false;
       description = ''
         Enable the tzupdate timezone updating service. This provides
-        a one-shot service which can be activated with systemctl to 
+        a one-shot service which can be activated with systemctl to
         update the timezone.
       '';
     };
@@ -21,7 +21,7 @@ in {
     # We need to have imperative time zone management for this to work.
     # This will give users an error if they have set an explicit time
     # zone, which is better than silently overriding it.
-    time.timeZone = null; 
+    time.timeZone = null;
 
     # We provide a one-shot service which can be manually run. We could
     # provide a service that runs on startup, but it's tricky to get
diff --git a/nixos/modules/services/misc/zigbee2mqtt.nix b/nixos/modules/services/misc/zigbee2mqtt.nix
new file mode 100644
index 00000000000..0957920f1a0
--- /dev/null
+++ b/nixos/modules/services/misc/zigbee2mqtt.nix
@@ -0,0 +1,98 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.zigbee2mqtt;
+
+  configJSON = pkgs.writeText "configuration.json"
+    (builtins.toJSON (recursiveUpdate defaultConfig cfg.config));
+  configFile = pkgs.runCommand "configuration.yaml" { preferLocalBuild = true; } ''
+    ${pkgs.remarshal}/bin/json2yaml -i ${configJSON} -o $out
+  '';
+
+  # the default config contains all required settings,
+  # so the service starts up without crashing.
+  defaultConfig = {
+    homeassistant = false;
+    permit_join = false;
+    mqtt = {
+      base_topic = "zigbee2mqtt";
+      server = "mqtt://localhost:1883";
+    };
+    serial.port = "/dev/ttyACM0";
+    # put device configuration into separate file because configuration.yaml
+    # is copied from the store on startup
+    devices = "devices.yaml";
+  };
+in
+{
+  meta.maintainers = with maintainers; [ sweber ];
+
+  options.services.zigbee2mqtt = {
+    enable = mkEnableOption "enable zigbee2mqtt service";
+
+    package = mkOption {
+      description = "Zigbee2mqtt package to use";
+      default = pkgs.zigbee2mqtt.override {
+        dataDir = cfg.dataDir;
+      };
+      defaultText = "pkgs.zigbee2mqtt";
+      type = types.package;
+    };
+
+    dataDir = mkOption {
+      description = "Zigbee2mqtt data directory";
+      default = "/var/lib/zigbee2mqtt";
+      type = types.path;
+    };
+
+    config = mkOption {
+      default = {};
+      type = with types; nullOr attrs;
+      example = literalExample ''
+        {
+          homeassistant = config.services.home-assistant.enable;
+          permit_join = true;
+          serial = {
+            port = "/dev/ttyACM1";
+          };
+        }
+      '';
+      description = ''
+        Your <filename>configuration.yaml</filename> as a Nix attribute set.
+      '';
+    };
+  };
+
+  config = mkIf (cfg.enable) {
+    systemd.services.zigbee2mqtt = {
+      description = "Zigbee2mqtt Service";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+      serviceConfig = {
+        ExecStart = "${cfg.package}/bin/zigbee2mqtt";
+        User = "zigbee2mqtt";
+        WorkingDirectory = cfg.dataDir;
+        Restart = "on-failure";
+        ProtectSystem = "strict";
+        ReadWritePaths = cfg.dataDir;
+        PrivateTmp = true;
+        RemoveIPC = true;
+      };
+      preStart = ''
+        cp --no-preserve=mode ${configFile} "${cfg.dataDir}/configuration.yaml"
+      '';
+    };
+
+    users.users.zigbee2mqtt = {
+      home = cfg.dataDir;
+      createHome = true;
+      group = "zigbee2mqtt";
+      extraGroups = [ "dialout" ];
+      uid = config.ids.uids.zigbee2mqtt;
+    };
+
+    users.groups.zigbee2mqtt.gid = config.ids.gids.zigbee2mqtt;
+  };
+}
diff --git a/nixos/modules/services/monitoring/cadvisor.nix b/nixos/modules/services/monitoring/cadvisor.nix
index 655a6934a26..da051dbe465 100644
--- a/nixos/modules/services/monitoring/cadvisor.nix
+++ b/nixos/modules/services/monitoring/cadvisor.nix
@@ -90,7 +90,7 @@ in {
         default = [];
         description = ''
           Additional cadvisor options.
-          
+
           See <link xlink:href='https://github.com/google/cadvisor/blob/master/docs/runtime_options.md'/> for available options.
         '';
       };
diff --git a/nixos/modules/services/monitoring/dd-agent/dd-agent.nix b/nixos/modules/services/monitoring/dd-agent/dd-agent.nix
index e91717fb205..a290dae8d4b 100644
--- a/nixos/modules/services/monitoring/dd-agent/dd-agent.nix
+++ b/nixos/modules/services/monitoring/dd-agent/dd-agent.nix
@@ -97,11 +97,11 @@ let
         "dd-agent/conf.d/nginx.yaml".source = nginxConfig;
       }) //
       (optionalAttrs (cfg.mongoConfig != null)
-      { 
+      {
         "dd-agent/conf.d/mongo.yaml".source = mongoConfig;
       }) //
       (optionalAttrs (cfg.processConfig != null)
-      { 
+      {
         "dd-agent/conf.d/process.yaml".source = processConfig;
       }) //
       (optionalAttrs (cfg.jmxConfig != null)
diff --git a/nixos/modules/services/monitoring/do-agent.nix b/nixos/modules/services/monitoring/do-agent.nix
index 2d3fe2f7976..4dfb6236727 100644
--- a/nixos/modules/services/monitoring/do-agent.nix
+++ b/nixos/modules/services/monitoring/do-agent.nix
@@ -4,6 +4,7 @@ with lib;
 
 let
   cfg = config.services.do-agent;
+
 in
 {
   options.services.do-agent = {
@@ -11,23 +12,13 @@ in
   };
 
   config = mkIf cfg.enable {
-    environment.systemPackages = [ pkgs.do-agent ];
+    systemd.packages = [ pkgs.do-agent ];
 
     systemd.services.do-agent = {
-      description = "DigitalOcean Droplet Metrics Agent";
       wantedBy = [ "multi-user.target" ];
-      after = [ "network-online.target" ];
-      wants = [ "network-online.target" ];
       serviceConfig = {
-        ExecStart = "${pkgs.do-agent}/bin/do-agent --syslog";
-        Restart = "always";
-        OOMScoreAdjust = -900;
-        SyslogIdentifier = "DigitalOceanAgent";
-        PrivateTmp = "yes";
-        ProtectSystem = "full";
-        ProtectHome = "yes";
-        NoNewPrivileges = "yes";
-        DynamicUser = "yes";
+        ExecStart = [ "" "${pkgs.do-agent}/bin/do-agent --syslog" ];
+        DynamicUser = true;
       };
     };
   };
diff --git a/nixos/modules/services/monitoring/monit.nix b/nixos/modules/services/monitoring/monit.nix
index ca935227217..aa51b83912c 100644
--- a/nixos/modules/services/monitoring/monit.nix
+++ b/nixos/modules/services/monitoring/monit.nix
@@ -4,19 +4,29 @@ with lib;
 
 let
   cfg = config.services.monit;
+  extraConfig = pkgs.writeText "monitConfig" cfg.extraConfig;
 in
 
 {
+  imports = [
+    (mkRenamedOptionModule [ "services" "monit" "config" ] ["services" "monit" "extraConfig" ])
+  ];
+
   options.services.monit = {
 
     enable = mkEnableOption "Monit";
 
-    config = mkOption {
+    configFiles = mkOption {
+      type = types.listOf types.path;
+      default = [];
+      description = "List of paths to be included in the monitrc file";
+    };
+
+    extraConfig = mkOption {
       type = types.lines;
       default = "";
-      description = "monitrc content";
+      description = "Additional monit config as string";
     };
-
   };
 
   config = mkIf cfg.enable {
@@ -24,7 +34,7 @@ in
     environment.systemPackages = [ pkgs.monit ];
 
     environment.etc.monitrc = {
-      text = cfg.config;
+      text = concatMapStringsSep "\n" (path: "include ${path}")  (cfg.configFiles ++ [extraConfig]);
       mode = "0400";
     };
 
diff --git a/nixos/modules/services/monitoring/netdata.nix b/nixos/modules/services/monitoring/netdata.nix
index a5233a46e34..2e73e15d3a8 100644
--- a/nixos/modules/services/monitoring/netdata.nix
+++ b/nixos/modules/services/monitoring/netdata.nix
@@ -133,16 +133,6 @@ in {
         }
       ];
 
-    systemd.tmpfiles.rules = [
-      "d /var/cache/netdata 0755 ${cfg.user} ${cfg.group} -"
-      "Z /var/cache/netdata - ${cfg.user} ${cfg.group} -"
-      "d /var/log/netdata 0755 ${cfg.user} ${cfg.group} -"
-      "Z /var/log/netdata - ${cfg.user} ${cfg.group} -"
-      "d /var/lib/netdata 0755 ${cfg.user} ${cfg.group} -"
-      "Z /var/lib/netdata - ${cfg.user} ${cfg.group} -"
-      "d /etc/netdata 0755 ${cfg.user} ${cfg.group} -"
-      "Z /etc/netdata - ${cfg.user} ${cfg.group} -"
-    ];
     systemd.services.netdata = {
       description = "Real time performance monitoring";
       after = [ "network.target" ];
@@ -158,11 +148,40 @@ in {
         # User and group
         User = cfg.user;
         Group = cfg.group;
-        # Runtime directory and mode
-        RuntimeDirectory = "netdata";
-        RuntimeDirectoryMode = "0755";
         # Performance
         LimitNOFILE = "30000";
+        # Runtime directory and mode
+        RuntimeDirectory = "netdata";
+        RuntimeDirectoryMode = "0750";
+        # State directory and mode
+        StateDirectory = "netdata";
+        StateDirectoryMode = "0750";
+        # Cache directory and mode
+        CacheDirectory = "netdata";
+        CacheDirectoryMode = "0750";
+        # Logs directory and mode
+        LogsDirectory = "netdata";
+        LogsDirectoryMode = "0750";
+        # Configuration directory and mode
+        ConfigurationDirectory = "netdata";
+        ConfigurationDirectoryMode = "0755";
+        # Capabilities
+        CapabilityBoundingSet = [
+          "CAP_DAC_OVERRIDE"      # is required for freeipmi and slabinfo plugins
+          "CAP_DAC_READ_SEARCH"   # is required for apps plugin
+          "CAP_FOWNER"            # is required for freeipmi plugin
+          "CAP_SETPCAP"           # is required for apps, perf and slabinfo plugins
+          "CAP_SYS_ADMIN"         # is required for perf plugin
+          "CAP_SYS_PTRACE"        # is required for apps plugin
+          "CAP_SYS_RESOURCE"      # is required for ebpf plugin
+          "CAP_NET_RAW"           # is required for fping app
+        ];
+        # Sandboxing
+        ProtectSystem = "full";
+        ProtectHome = "read-only";
+        PrivateTmp = true;
+        ProtectControlGroups = true;
+        PrivateMounts = true;
       };
     };
 
diff --git a/nixos/modules/services/monitoring/prometheus/default.nix b/nixos/modules/services/monitoring/prometheus/default.nix
index 84a72afac2f..d7e06484b69 100644
--- a/nixos/modules/services/monitoring/prometheus/default.nix
+++ b/nixos/modules/services/monitoring/prometheus/default.nix
@@ -46,7 +46,7 @@ let
   cmdlineArgs = cfg.extraFlags ++ [
     "--storage.tsdb.path=${workingDir}/data/"
     "--config.file=${prometheusYml}"
-    "--web.listen-address=${cfg.listenAddress}"
+    "--web.listen-address=${cfg.listenAddress}:${builtins.toString cfg.port}"
     "--alertmanager.notification-queue-capacity=${toString cfg.alertmanagerNotificationQueueCapacity}"
     "--alertmanager.timeout=${toString cfg.alertmanagerTimeout}s"
   ] ++
@@ -489,9 +489,17 @@ in {
       '';
     };
 
+    port = mkOption {
+      type = types.port;
+      default = 9090;
+      description = ''
+        Port to listen on.
+      '';
+    };
+
     listenAddress = mkOption {
       type = types.str;
-      default = "0.0.0.0:9090";
+      default = "0.0.0.0";
       description = ''
         Address to listen on for the web interface, API, and telemetry.
       '';
@@ -619,6 +627,21 @@ in {
   };
 
   config = mkIf cfg.enable {
+    assertions = [
+      ( let
+          legacy = builtins.match "(.*):(.*)" cfg.listenAddress;
+        in {
+          assertion = legacy == null;
+          message = ''
+            Do not specify the port for Prometheus to listen on in the
+            listenAddress option; use the port option instead:
+              services.prometheus.listenAddress = ${builtins.elemAt legacy 0};
+              services.prometheus.port = ${builtins.elemAt legacy 1};
+          '';
+        }
+      )
+    ];
+
     users.groups.prometheus.gid = config.ids.gids.prometheus;
     users.users.prometheus = {
       description = "Prometheus daemon user";
diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix
index c4aedd7e23b..a5492d972f1 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters.nix
@@ -34,6 +34,7 @@ let
     "mail"
     "mikrotik"
     "minio"
+    "modemmanager"
     "nextcloud"
     "nginx"
     "node"
@@ -83,7 +84,8 @@ let
     };
     firewallFilter = mkOption {
       type = types.str;
-      default = "-p tcp -m tcp --dport ${toString port}";
+      default = "-p tcp -m tcp --dport ${toString cfg.${name}.port}";
+      defaultText = "-p tcp -m tcp --dport ${toString port}";
       example = literalExample ''
         "-i eth0 -p tcp -m tcp --dport ${toString port}"
       '';
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix b/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix
new file mode 100644
index 00000000000..86ea98b94e4
--- /dev/null
+++ b/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix
@@ -0,0 +1,33 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.modemmanager;
+in
+{
+  port = 9539;
+  extraOpts = {
+    refreshRate = mkOption {
+      type = types.str;
+      default = "5s";
+      description = ''
+        How frequently ModemManager will refresh the extended signal quality
+        information for each modem. The duration should be specified in seconds
+        ("5s"), minutes ("1m"), or hours ("1h").
+      '';
+    };
+  };
+  serviceOpts = {
+    serviceConfig = {
+      # Required in order to authenticate with ModemManager via D-Bus.
+      SupplementaryGroups = "networkmanager";
+      ExecStart = ''
+        ${pkgs.prometheus-modemmanager-exporter}/bin/modemmanager_exporter \
+          -addr ${cfg.listenAddress}:${toString cfg.port} \
+          -rate ${cfg.refreshRate} \
+          ${concatStringsSep " \\\n  " cfg.extraFlags}
+      '';
+    };
+  };
+}
diff --git a/nixos/modules/services/monitoring/smartd.nix b/nixos/modules/services/monitoring/smartd.nix
index c345ec48a01..c72b4abfcdc 100644
--- a/nixos/modules/services/monitoring/smartd.nix
+++ b/nixos/modules/services/monitoring/smartd.nix
@@ -18,9 +18,9 @@ let
     ${optionalString nm.enable ''
       {
       ${pkgs.coreutils}/bin/cat << EOF
-      From: smartd on ${host} <root>
+      From: smartd on ${host} <${nm.sender}>
       To: undisclosed-recipients:;
-      Subject: SMART error on $SMARTD_DEVICESTRING: $SMARTD_FAILTYPE
+      Subject: $SMARTD_SUBJECT
 
       $SMARTD_FULLMESSAGE
       EOF
@@ -129,6 +129,16 @@ in
             description = "Whenever to send e-mail notifications.";
           };
 
+          sender = mkOption {
+            default = "root";
+            example = "example@domain.tld";
+            type = types.str;
+            description = ''
+              Sender of the notification messages.
+              Acts as the value of <literal>email</literal> in the emails' <literal>From: ... </literal> field.
+            '';
+          };
+
           recipient = mkOption {
             default = "root";
             type = types.str;
@@ -229,11 +239,7 @@ in
 
     systemd.services.smartd = {
       description = "S.M.A.R.T. Daemon";
-
       wantedBy = [ "multi-user.target" ];
-
-      path = [ pkgs.nettools ]; # for hostname and dnsdomanname calls in smartd
-
       serviceConfig.ExecStart = "${pkgs.smartmontools}/sbin/smartd ${lib.concatStringsSep " " cfg.extraOptions} --no-fork --configfile=${smartdConf}";
     };
 
diff --git a/nixos/modules/services/monitoring/teamviewer.nix b/nixos/modules/services/monitoring/teamviewer.nix
index dd98ecab828..8d781d82d08 100644
--- a/nixos/modules/services/monitoring/teamviewer.nix
+++ b/nixos/modules/services/monitoring/teamviewer.nix
@@ -15,7 +15,7 @@ in
   options = {
 
     services.teamviewer.enable = mkEnableOption "TeamViewer daemon";
-      
+
   };
 
   ###### implementation
diff --git a/nixos/modules/services/monitoring/zabbix-agent.nix b/nixos/modules/services/monitoring/zabbix-agent.nix
index b3383ed628b..73eed7aa66a 100644
--- a/nixos/modules/services/monitoring/zabbix-agent.nix
+++ b/nixos/modules/services/monitoring/zabbix-agent.nix
@@ -3,8 +3,9 @@
 let
   cfg = config.services.zabbixAgent;
 
-  inherit (lib) mkDefault mkEnableOption mkIf mkOption;
+  inherit (lib) mkDefault mkEnableOption mkIf mkMerge mkOption;
   inherit (lib) attrValues concatMapStringsSep literalExample optionalString types;
+  inherit (lib.generators) toKeyValue;
 
   user = "zabbix-agent";
   group = "zabbix-agent";
@@ -14,19 +15,15 @@ let
     paths = attrValues cfg.modules;
   };
 
-  configFile = pkgs.writeText "zabbix_agent.conf" ''
-    LogType = console
-    Server = ${cfg.server}
-    ListenIP = ${cfg.listen.ip}
-    ListenPort = ${toString cfg.listen.port}
-    ${optionalString (cfg.modules != {}) "LoadModulePath = ${moduleEnv}/lib"}
-    ${concatMapStringsSep "\n" (name: "LoadModule = ${name}") (builtins.attrNames cfg.modules)}
-    ${cfg.extraConfig}
-  '';
+  configFile = pkgs.writeText "zabbix_agent.conf" (toKeyValue { listsAsDuplicateKeys = true; } cfg.settings);
 
 in
 
 {
+  imports = [
+    (lib.mkRemovedOptionModule [ "services" "zabbixAgent" "extraConfig" ] "Use services.zabbixAgent.settings instead.")
+  ];
+
   # interface
 
   options = {
@@ -105,15 +102,18 @@ in
         '';
       };
 
-      # TODO: for bonus points migrate this to https://github.com/NixOS/rfcs/pull/42
-      extraConfig = mkOption {
-        default = "";
-        type = types.lines;
+      settings = mkOption {
+        type = with types; attrsOf (oneOf [ int str (listOf str) ]);
+        default = {};
         description = ''
-          Configuration that is injected verbatim into the configuration file. Refer to
+          Zabbix Agent configuration. Refer to
           <link xlink:href="https://www.zabbix.com/documentation/current/manual/appendix/config/zabbix_agentd"/>
           for details on supported values.
         '';
+        example = {
+          Hostname = "example.org";
+          DebugLevel = 4;
+        };
       };
 
     };
@@ -124,6 +124,17 @@ in
 
   config = mkIf cfg.enable {
 
+    services.zabbixAgent.settings = mkMerge [
+      {
+        LogType = "console";
+        Server = cfg.server;
+        ListenIP = cfg.listen.ip;
+        ListenPort = cfg.listen.port;
+        LoadModule = builtins.attrNames cfg.modules;
+      }
+      (mkIf (cfg.modules != {}) { LoadModulePath = "${moduleEnv}/lib"; })
+    ];
+
     networking.firewall = mkIf cfg.openFirewall {
       allowedTCPPorts = [ cfg.listen.port ];
     };
diff --git a/nixos/modules/services/monitoring/zabbix-proxy.nix b/nixos/modules/services/monitoring/zabbix-proxy.nix
index 9d214469c3b..2c8b8b92cb3 100644
--- a/nixos/modules/services/monitoring/zabbix-proxy.nix
+++ b/nixos/modules/services/monitoring/zabbix-proxy.nix
@@ -5,8 +5,9 @@ let
   pgsql = config.services.postgresql;
   mysql = config.services.mysql;
 
-  inherit (lib) mkDefault mkEnableOption mkIf mkOption;
-  inherit (lib) attrValues concatMapStringsSep literalExample optional optionalAttrs optionalString types;
+  inherit (lib) mkAfter mkDefault mkEnableOption mkIf mkMerge mkOption;
+  inherit (lib) attrValues concatMapStringsSep getName literalExample optional optionalAttrs optionalString types;
+  inherit (lib.generators) toKeyValue;
 
   user = "zabbix";
   group = "zabbix";
@@ -19,24 +20,7 @@ let
     paths = attrValues cfg.modules;
   };
 
-  configFile = pkgs.writeText "zabbix_proxy.conf" ''
-    LogType = console
-    ListenIP = ${cfg.listen.ip}
-    ListenPort = ${toString cfg.listen.port}
-    Server = ${cfg.server}
-    # TODO: set to cfg.database.socket if database type is pgsql?
-    DBHost = ${optionalString (cfg.database.createLocally != true) cfg.database.host}
-    ${optionalString (cfg.database.createLocally != true) "DBPort = ${cfg.database.port}"}
-    DBName = ${cfg.database.name}
-    DBUser = ${cfg.database.user}
-    ${optionalString (cfg.database.passwordFile != null) "Include ${passwordFile}"}
-    ${optionalString (mysqlLocal && cfg.database.socket != null) "DBSocket = ${cfg.database.socket}"}
-    SocketDir = ${runtimeDir}
-    FpingLocation = /run/wrappers/bin/fping
-    ${optionalString (cfg.modules != {}) "LoadModulePath = ${moduleEnv}/lib"}
-    ${concatMapStringsSep "\n" (name: "LoadModule = ${name}") (builtins.attrNames cfg.modules)}
-    ${cfg.extraConfig}
-  '';
+  configFile = pkgs.writeText "zabbix_proxy.conf" (toKeyValue { listsAsDuplicateKeys = true; } cfg.settings);
 
   mysqlLocal = cfg.database.createLocally && cfg.database.type == "mysql";
   pgsqlLocal = cfg.database.createLocally && cfg.database.type == "pgsql";
@@ -44,6 +28,10 @@ let
 in
 
 {
+  imports = [
+    (lib.mkRemovedOptionModule [ "services" "zabbixProxy" "extraConfig" ] "Use services.zabbixProxy.settings instead.")
+  ];
+
   # interface
 
   options = {
@@ -182,15 +170,19 @@ in
         '';
       };
 
-      # TODO: for bonus points migrate this to https://github.com/NixOS/rfcs/pull/42
-      extraConfig = mkOption {
-        default = "";
-        type = types.lines;
+      settings = mkOption {
+        type = with types; attrsOf (oneOf [ int str (listOf str) ]);
+        default = {};
         description = ''
-          Configuration that is injected verbatim into the configuration file. Refer to
+          Zabbix Proxy configuration. Refer to
           <link xlink:href="https://www.zabbix.com/documentation/current/manual/appendix/config/zabbix_proxy"/>
           for details on supported values.
         '';
+        example = {
+          CacheSize = "1G";
+          SSHKeyLocation = "/var/lib/zabbix/.ssh";
+          StartPingers = 32;
+        };
       };
 
     };
@@ -213,6 +205,26 @@ in
       }
     ];
 
+    services.zabbixProxy.settings = mkMerge [
+      {
+        LogType = "console";
+        ListenIP = cfg.listen.ip;
+        ListenPort = cfg.listen.port;
+        Server = cfg.server;
+        # TODO: set to cfg.database.socket if database type is pgsql?
+        DBHost = optionalString (cfg.database.createLocally != true) cfg.database.host;
+        DBName = cfg.database.name;
+        DBUser = cfg.database.user;
+        SocketDir = runtimeDir;
+        FpingLocation = "/run/wrappers/bin/fping";
+        LoadModule = builtins.attrNames cfg.modules;
+      }
+      (mkIf (cfg.database.createLocally != true) { DBPort = cfg.database.port; })
+      (mkIf (cfg.database.passwordFile != null) { Include = [ "${passwordFile}" ]; })
+      (mkIf (mysqlLocal && cfg.database.socket != null) { DBSocket = cfg.database.socket; })
+      (mkIf (cfg.modules != {}) { LoadModulePath = "${moduleEnv}/lib"; })
+    ];
+
     networking.firewall = mkIf cfg.openFirewall {
       allowedTCPPorts = [ cfg.listen.port ];
     };
@@ -220,14 +232,15 @@ in
     services.mysql = optionalAttrs mysqlLocal {
       enable = true;
       package = mkDefault pkgs.mariadb;
-      ensureDatabases = [ cfg.database.name ];
-      ensureUsers = [
-        { name = cfg.database.user;
-          ensurePermissions = { "${cfg.database.name}.*" = "ALL PRIVILEGES"; };
-        }
-      ];
     };
 
+    systemd.services.mysql.postStart = mkAfter (optionalString mysqlLocal ''
+      ( echo "CREATE DATABASE IF NOT EXISTS \`${cfg.database.name}\` CHARACTER SET utf8 COLLATE utf8_bin;"
+        echo "CREATE USER IF NOT EXISTS '${cfg.database.user}'@'localhost' IDENTIFIED WITH ${if (getName config.services.mysql.package == getName pkgs.mariadb) then "unix_socket" else "auth_socket"};"
+        echo "GRANT ALL PRIVILEGES ON \`${cfg.database.name}\`.* TO '${cfg.database.user}'@'localhost';"
+      ) | ${config.services.mysql.package}/bin/mysql -N
+    '');
+
     services.postgresql = optionalAttrs pgsqlLocal {
       enable = true;
       ensureDatabases = [ cfg.database.name ];
diff --git a/nixos/modules/services/monitoring/zabbix-server.nix b/nixos/modules/services/monitoring/zabbix-server.nix
index b4e4378ce1e..c8658634ecb 100644
--- a/nixos/modules/services/monitoring/zabbix-server.nix
+++ b/nixos/modules/services/monitoring/zabbix-server.nix
@@ -5,8 +5,9 @@ let
   pgsql = config.services.postgresql;
   mysql = config.services.mysql;
 
-  inherit (lib) mkDefault mkEnableOption mkIf mkOption;
-  inherit (lib) attrValues concatMapStringsSep literalExample optional optionalAttrs optionalString types;
+  inherit (lib) mkAfter mkDefault mkEnableOption mkIf mkMerge mkOption;
+  inherit (lib) attrValues concatMapStringsSep getName literalExample optional optionalAttrs optionalString types;
+  inherit (lib.generators) toKeyValue;
 
   user = "zabbix";
   group = "zabbix";
@@ -19,24 +20,7 @@ let
     paths = attrValues cfg.modules;
   };
 
-  configFile = pkgs.writeText "zabbix_server.conf" ''
-    LogType = console
-    ListenIP = ${cfg.listen.ip}
-    ListenPort = ${toString cfg.listen.port}
-    # TODO: set to cfg.database.socket if database type is pgsql?
-    DBHost = ${optionalString (cfg.database.createLocally != true) cfg.database.host}
-    ${optionalString (cfg.database.createLocally != true) "DBPort = ${cfg.database.port}"}
-    DBName = ${cfg.database.name}
-    DBUser = ${cfg.database.user}
-    ${optionalString (cfg.database.passwordFile != null) "Include ${passwordFile}"}
-    ${optionalString (mysqlLocal && cfg.database.socket != null) "DBSocket = ${cfg.database.socket}"}
-    PidFile = ${runtimeDir}/zabbix_server.pid
-    SocketDir = ${runtimeDir}
-    FpingLocation = /run/wrappers/bin/fping
-    ${optionalString (cfg.modules != {}) "LoadModulePath = ${moduleEnv}/lib"}
-    ${concatMapStringsSep "\n" (name: "LoadModule = ${name}") (builtins.attrNames cfg.modules)}
-    ${cfg.extraConfig}
-  '';
+  configFile = pkgs.writeText "zabbix_server.conf" (toKeyValue { listsAsDuplicateKeys = true; } cfg.settings);
 
   mysqlLocal = cfg.database.createLocally && cfg.database.type == "mysql";
   pgsqlLocal = cfg.database.createLocally && cfg.database.type == "pgsql";
@@ -47,6 +31,7 @@ in
   imports = [
     (lib.mkRenamedOptionModule [ "services" "zabbixServer" "dbServer" ] [ "services" "zabbixServer" "database" "host" ])
     (lib.mkRemovedOptionModule [ "services" "zabbixServer" "dbPassword" ] "Use services.zabbixServer.database.passwordFile instead.")
+    (lib.mkRemovedOptionModule [ "services" "zabbixServer" "extraConfig" ] "Use services.zabbixServer.settings instead.")
   ];
 
   # interface
@@ -176,15 +161,19 @@ in
         '';
       };
 
-      # TODO: for bonus points migrate this to https://github.com/NixOS/rfcs/pull/42
-      extraConfig = mkOption {
-        default = "";
-        type = types.lines;
+      settings = mkOption {
+        type = with types; attrsOf (oneOf [ int str (listOf str) ]);
+        default = {};
         description = ''
-          Configuration that is injected verbatim into the configuration file. Refer to
+          Zabbix Server configuration. Refer to
           <link xlink:href="https://www.zabbix.com/documentation/current/manual/appendix/config/zabbix_server"/>
           for details on supported values.
         '';
+        example = {
+          CacheSize = "1G";
+          SSHKeyLocation = "/var/lib/zabbix/.ssh";
+          StartPingers = 32;
+        };
       };
 
     };
@@ -204,6 +193,26 @@ in
       }
     ];
 
+    services.zabbixServer.settings = mkMerge [
+      {
+        LogType = "console";
+        ListenIP = cfg.listen.ip;
+        ListenPort = cfg.listen.port;
+        # TODO: set to cfg.database.socket if database type is pgsql?
+        DBHost = optionalString (cfg.database.createLocally != true) cfg.database.host;
+        DBName = cfg.database.name;
+        DBUser = cfg.database.user;
+        PidFile = "${runtimeDir}/zabbix_server.pid";
+        SocketDir = runtimeDir;
+        FpingLocation = "/run/wrappers/bin/fping";
+        LoadModule = builtins.attrNames cfg.modules;
+      }
+      (mkIf (cfg.database.createLocally != true) { DBPort = cfg.database.port; })
+      (mkIf (cfg.database.passwordFile != null) { Include = [ "${passwordFile}" ]; })
+      (mkIf (mysqlLocal && cfg.database.socket != null) { DBSocket = cfg.database.socket; })
+      (mkIf (cfg.modules != {}) { LoadModulePath = "${moduleEnv}/lib"; })
+    ];
+
     networking.firewall = mkIf cfg.openFirewall {
       allowedTCPPorts = [ cfg.listen.port ];
     };
@@ -211,14 +220,15 @@ in
     services.mysql = optionalAttrs mysqlLocal {
       enable = true;
       package = mkDefault pkgs.mariadb;
-      ensureDatabases = [ cfg.database.name ];
-      ensureUsers = [
-        { name = cfg.database.user;
-          ensurePermissions = { "${cfg.database.name}.*" = "ALL PRIVILEGES"; };
-        }
-      ];
     };
 
+    systemd.services.mysql.postStart = mkAfter (optionalString mysqlLocal ''
+      ( echo "CREATE DATABASE IF NOT EXISTS \`${cfg.database.name}\` CHARACTER SET utf8 COLLATE utf8_bin;"
+        echo "CREATE USER IF NOT EXISTS '${cfg.database.user}'@'localhost' IDENTIFIED WITH ${if (getName config.services.mysql.package == getName pkgs.mariadb) then "unix_socket" else "auth_socket"};"
+        echo "GRANT ALL PRIVILEGES ON \`${cfg.database.name}\`.* TO '${cfg.database.user}'@'localhost';"
+      ) | ${config.services.mysql.package}/bin/mysql -N
+    '');
+
     services.postgresql = optionalAttrs pgsqlLocal {
       enable = true;
       ensureDatabases = [ cfg.database.name ];
diff --git a/nixos/modules/services/network-filesystems/cachefilesd.nix b/nixos/modules/services/network-filesystems/cachefilesd.nix
index 61981340840..229c9665419 100644
--- a/nixos/modules/services/network-filesystems/cachefilesd.nix
+++ b/nixos/modules/services/network-filesystems/cachefilesd.nix
@@ -43,17 +43,21 @@ in
 
   config = mkIf cfg.enable {
 
+    boot.kernelModules = [ "cachefiles" ];
+
     systemd.services.cachefilesd = {
       description = "Local network file caching management daemon";
       wantedBy = [ "multi-user.target" ];
-      path = [ pkgs.kmod pkgs.cachefilesd ];
-      script = ''
-        modprobe -qab cachefiles
-        mkdir -p ${cfg.cacheDir}
-        chmod 700 ${cfg.cacheDir}
-        exec cachefilesd -n -f ${cfgFile}
-      '';
+      serviceConfig = {
+        Type = "exec";
+        ExecStart = "${pkgs.cachefilesd}/bin/cachefilesd -n -f ${cfgFile}";
+        Restart = "on-failure";
+        PrivateTmp = true;
+      };
     };
 
+    systemd.tmpfiles.rules = [
+      "d ${cfg.cacheDir} 0700 root root - -"
+    ];
   };
 }
diff --git a/nixos/modules/services/network-filesystems/ipfs.nix b/nixos/modules/services/network-filesystems/ipfs.nix
index 7d18410ff0a..f298f831fa7 100644
--- a/nixos/modules/services/network-filesystems/ipfs.nix
+++ b/nixos/modules/services/network-filesystems/ipfs.nix
@@ -25,6 +25,15 @@ let
       then "/${lib.concatStringsSep "/" (lib.tail addr)}"
     else null; # not valid for listen stream, skip
 
+  multiaddrToListenDatagram = addrRaw: let
+      addr = splitMulitaddr addrRaw;
+      s = builtins.elemAt addr;
+    in if s 0 == "ip4" && s 2 == "udp"
+      then "${s 1}:${s 3}"
+    else if s 0 == "ip6" && s 2 == "udp"
+      then "[${s 1}]:${s 3}"
+    else null; # not valid for listen datagram, skip
+
 in {
 
   ###### interface
@@ -96,6 +105,8 @@ in {
         default = [
           "/ip4/0.0.0.0/tcp/4001"
           "/ip6/::/tcp/4001"
+          "/ip4/0.0.0.0/udp/4001/quic"
+          "/ip6/::/udp/4001/quic"
         ];
         description = "Where IPFS listens for incoming p2p connections";
       };
@@ -266,9 +277,14 @@ in {
 
     systemd.sockets.ipfs-gateway = {
       wantedBy = [ "sockets.target" ];
-      socketConfig.ListenStream = let
-          fromCfg = multiaddrToListenStream cfg.gatewayAddress;
-        in [ "" ] ++ lib.optional (fromCfg != null) fromCfg;
+      socketConfig = {
+        ListenStream = let
+            fromCfg = multiaddrToListenStream cfg.gatewayAddress;
+          in [ "" ] ++ lib.optional (fromCfg != null) fromCfg;
+        ListenDatagram = let
+            fromCfg = multiaddrToListenDatagram cfg.gatewayAddress;
+          in [ "" ] ++ lib.optional (fromCfg != null) fromCfg;
+      };
     };
 
     systemd.sockets.ipfs-api = {
diff --git a/nixos/modules/services/network-filesystems/orangefs/server.nix b/nixos/modules/services/network-filesystems/orangefs/server.nix
index 74ebdc13402..8eb754fe611 100644
--- a/nixos/modules/services/network-filesystems/orangefs/server.nix
+++ b/nixos/modules/services/network-filesystems/orangefs/server.nix
@@ -83,14 +83,14 @@ in {
       };
 
       dataStorageSpace = mkOption {
-        type = types.str;
+        type = types.nullOr types.str;
         default = null;
         example = "/data/storage";
         description = "Directory for data storage.";
       };
 
       metadataStorageSpace = mkOption {
-        type = types.str;
+        type = types.nullOr types.str;
         default = null;
         example = "/data/meta";
         description = "Directory for meta data storage.";
diff --git a/nixos/modules/services/networking/biboumi.nix b/nixos/modules/services/networking/biboumi.nix
new file mode 100644
index 00000000000..66ddca93d81
--- /dev/null
+++ b/nixos/modules/services/networking/biboumi.nix
@@ -0,0 +1,269 @@
+{ config, lib, pkgs, options, ... }:
+with lib;
+let
+  cfg = config.services.biboumi;
+  inherit (config.environment) etc;
+  rootDir = "/run/biboumi/mnt-root";
+  stateDir = "/var/lib/biboumi";
+  settingsFile = pkgs.writeText "biboumi.cfg" (
+    generators.toKeyValue {
+      mkKeyValue = k: v:
+        if v == null then ""
+        else generators.mkKeyValueDefault {} "=" k v;
+    } cfg.settings);
+  need_CAP_NET_BIND_SERVICE = cfg.settings.identd_port != 0 && cfg.settings.identd_port < 1024;
+in
+{
+  options = {
+    services.biboumi = {
+      enable = mkEnableOption "the Biboumi XMPP gateway to IRC";
+
+      settings = mkOption {
+        description = ''
+          See <link xlink:href="https://lab.louiz.org/louiz/biboumi/blob/8.5/doc/biboumi.1.rst">biboumi 8.5</link>
+          for documentation.
+        '';
+        default = {};
+        type = types.submodule {
+          freeformType = with types;
+            (attrsOf (nullOr (oneOf [str int bool]))) // {
+              description = "settings option";
+            };
+          options.admin = mkOption {
+            type = with types; listOf str;
+            default = [];
+            example = ["admin@example.org"];
+            apply = concatStringsSep ":";
+            description = ''
+              The bare JID of the gateway administrator. This JID will have more
+              privileges than other standard users, for example some administration
+              ad-hoc commands will only be available to that JID.
+            '';
+          };
+          options.ca_file = mkOption {
+            type = types.path;
+            default = "/etc/ssl/certs/ca-certificates.crt";
+            description = ''
+              Specifies which file should be used as the list of trusted CA
+              when negociating a TLS session.
+            '';
+          };
+          options.db_name = mkOption {
+            type = with types; either path str;
+            default = "${stateDir}/biboumi.sqlite";
+            description = ''
+              The name of the database to use.
+            '';
+            example = "postgresql://user:secret@localhost";
+          };
+          options.hostname = mkOption {
+            type = types.str;
+            example = "biboumi.example.org";
+            description = ''
+              The hostname served by the XMPP gateway.
+              This domain must be configured in the XMPP server
+              as an external component.
+            '';
+          };
+          options.identd_port = mkOption {
+            type = types.port;
+            default = 113;
+            example = 0;
+            description = ''
+              The TCP port on which to listen for identd queries.
+            '';
+          };
+          options.log_level = mkOption {
+            type = types.ints.between 0 3;
+            default = 1;
+            description = ''
+              Indicate what type of log messages to write in the logs.
+              0 is debug, 1 is info, 2 is warning, 3 is error.
+            '';
+          };
+          options.password = mkOption {
+            type = with types; nullOr str;
+            description = ''
+              The password used to authenticate the XMPP component to your XMPP server.
+              This password must be configured in the XMPP server,
+              associated with the external component on
+              <link linkend="opt-services.biboumi.settings.hostname">hostname</link>.
+
+              Set it to null and use <link linkend="opt-services.biboumi.credentialsFile">credentialsFile</link>
+              if you do not want this password to go into the Nix store.
+            '';
+          };
+          options.persistent_by_default = mkOption {
+            type = types.bool;
+            default = false;
+            description = ''
+              Whether all rooms will be persistent by default:
+              the value of the “persistent” option in the global configuration of each
+              user will be “true”, but the value of each individual room will still
+              default to false. This means that a user just needs to change the global
+              “persistent” configuration option to false in order to override this.
+            '';
+          };
+          options.policy_directory = mkOption {
+            type = types.path;
+            default = "${pkgs.biboumi}/etc/biboumi";
+            description = ''
+              A directory that should contain the policy files,
+              used to customize Botan’s behaviour
+              when negociating the TLS connections with the IRC servers.
+            '';
+          };
+          options.port = mkOption {
+            type = types.port;
+            default = 5347;
+            description = ''
+              The TCP port to use to connect to the local XMPP component.
+            '';
+          };
+          options.realname_customization = mkOption {
+            type = types.bool;
+            default = true;
+            description = ''
+              Whether the users will be able to use
+              the ad-hoc commands that lets them configure
+              their realname and username.
+            '';
+          };
+          options.realname_from_jid = mkOption {
+            type = types.bool;
+            default = false;
+            description = ''
+              Whether the realname and username of each biboumi
+              user will be extracted from their JID.
+              Otherwise they will be set to the nick
+              they used to connect to the IRC server.
+            '';
+          };
+          options.xmpp_server_ip = mkOption {
+            type = types.str;
+            default = "127.0.0.1";
+            description = ''
+              The IP address to connect to the XMPP server on.
+              The connection to the XMPP server is unencrypted,
+              so the biboumi instance and the server should
+              normally be on the same host.
+            '';
+          };
+        };
+      };
+
+      credentialsFile = mkOption {
+        type = types.path;
+        description = ''
+          Path to a configuration file to be merged with the settings.
+          Beware not to surround "=" with spaces when setting biboumi's options in this file.
+          Useful to merge a file which is better kept out of the Nix store
+          because it contains sensible data like
+          <link linkend="opt-services.biboumi.settings.password">password</link>.
+        '';
+        default = "/dev/null";
+        example = "/run/keys/biboumi.cfg";
+      };
+
+      openFirewall = mkEnableOption "opening of the identd port in the firewall";
+    };
+  };
+
+  config = mkIf cfg.enable {
+    networking.firewall = mkIf (cfg.openFirewall && cfg.settings.identd_port != 0)
+      { allowedTCPPorts = [ cfg.settings.identd_port ]; };
+
+    systemd.services.biboumi = {
+      description = "Biboumi, XMPP to IRC gateway";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+
+      serviceConfig = {
+        Type = "notify";
+        # Biboumi supports systemd's watchdog.
+        WatchdogSec = 20;
+        Restart = "always";
+        # Use "+" because credentialsFile may not be accessible to User= or Group=.
+        ExecStartPre = [("+" + pkgs.writeShellScript "biboumi-prestart" ''
+          set -eux
+          cat ${settingsFile} '${cfg.credentialsFile}' |
+          install -m 644 /dev/stdin /run/biboumi/biboumi.cfg
+        '')];
+        ExecStart = "${pkgs.biboumi}/bin/biboumi /run/biboumi/biboumi.cfg";
+        ExecReload = "${pkgs.coreutils}/bin/kill -USR1 $MAINPID";
+        # Firewalls needing opening for output connections can still do that
+        # selectively for biboumi with:
+        # users.users.biboumi.isSystemUser = true;
+        # and, for example:
+        # networking.nftables.ruleset = ''
+        #   add rule inet filter output meta skuid biboumi tcp accept
+        # '';
+        DynamicUser = true;
+        RootDirectory = rootDir;
+        RootDirectoryStartOnly = true;
+        InaccessiblePaths = [ "-+${rootDir}" ];
+        RuntimeDirectory = [ "biboumi" (removePrefix "/run/" rootDir) ];
+        RuntimeDirectoryMode = "700";
+        StateDirectory = "biboumi";
+        StateDirectoryMode = "700";
+        MountAPIVFS = true;
+        UMask = "0066";
+        BindPaths = [
+          stateDir
+          # This is for Type="notify"
+          # See https://github.com/systemd/systemd/issues/3544
+          "/run/systemd/notify"
+          "/run/systemd/journal/socket"
+        ];
+        BindReadOnlyPaths = [
+          builtins.storeDir
+          "/etc"
+        ];
+        # The following options are only for optimizing:
+        # systemd-analyze security biboumi
+        AmbientCapabilities = [ (optionalString need_CAP_NET_BIND_SERVICE "CAP_NET_BIND_SERVICE") ];
+        CapabilityBoundingSet = [ (optionalString need_CAP_NET_BIND_SERVICE "CAP_NET_BIND_SERVICE") ];
+        # ProtectClock= adds DeviceAllow=char-rtc r
+        DeviceAllow = "";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateMounts = true;
+        PrivateNetwork = mkDefault false;
+        PrivateTmp = true;
+        # PrivateUsers=true breaks AmbientCapabilities=CAP_NET_BIND_SERVICE
+        # See https://bugs.archlinux.org/task/65921
+        PrivateUsers = !need_CAP_NET_BIND_SERVICE;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectSystem = "strict";
+        RemoveIPC = true;
+        # AF_UNIX is for /run/systemd/notify
+        RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SystemCallFilter = [
+          "@system-service"
+          # Groups in @system-service which do not contain a syscall
+          # listed by perf stat -e 'syscalls:sys_enter_*' biboumi biboumi.cfg
+          # in tests, and seem likely not necessary for biboumi.
+          # To run such a perf in ExecStart=, you have to:
+          # - AmbientCapabilities="CAP_SYS_ADMIN"
+          # - mount -o remount,mode=755 /sys/kernel/debug/{,tracing}
+          "~@aio" "~@chown" "~@ipc" "~@keyring" "~@resources" "~@setuid" "~@timer"
+        ];
+        SystemCallArchitectures = "native";
+        SystemCallErrorNumber = "EPERM";
+      };
+    };
+  };
+
+  meta.maintainers = with maintainers; [ julm ];
+}
diff --git a/nixos/modules/services/networking/bitcoind.nix b/nixos/modules/services/networking/bitcoind.nix
index 4e00a886547..bc9aa53f49a 100644
--- a/nixos/modules/services/networking/bitcoind.nix
+++ b/nixos/modules/services/networking/bitcoind.nix
@@ -3,31 +3,8 @@
 with lib;
 
 let
-  cfg = config.services.bitcoind;
-  pidFile = "${cfg.dataDir}/bitcoind.pid";
-  configFile = pkgs.writeText "bitcoin.conf" ''
-    ${optionalString cfg.testnet "testnet=1"}
-    ${optionalString (cfg.dbCache != null) "dbcache=${toString cfg.dbCache}"}
-    ${optionalString (cfg.prune != null) "prune=${toString cfg.prune}"}
-
-    # Connection options
-    ${optionalString (cfg.port != null) "port=${toString cfg.port}"}
-
-    # RPC server options
-    ${optionalString (cfg.rpc.port != null) "rpcport=${toString cfg.rpc.port}"}
-    ${concatMapStringsSep  "\n"
-      (rpcUser: "rpcauth=${rpcUser.name}:${rpcUser.passwordHMAC}")
-      (attrValues cfg.rpc.users)
-    }
 
-    # Extra config options (from bitcoind nixos service)
-    ${cfg.extraConfig}
-  '';
-  cmdlineOptions = escapeShellArgs [
-    "-conf=${cfg.configFile}"
-    "-datadir=${cfg.dataDir}"
-    "-pid=${pidFile}"
-  ];
+  eachBitcoind = config.services.bitcoind;
 
   rpcUserOpts = { name, ... }: {
     options = {
@@ -39,11 +16,14 @@ let
         '';
       };
       passwordHMAC = mkOption {
-        type = with types; uniq (strMatching "[0-9a-f]+\\$[0-9a-f]{64}");
+        type = types.uniq (types.strMatching "[0-9a-f]+\\$[0-9a-f]{64}");
         example = "f7efda5c189b999524f151318c0c86$d5b51b3beffbc02b724e5d095828e0bc8b2456e9ac8757ae3211a5d9b16a22ae";
         description = ''
           Password HMAC-SHA-256 for JSON-RPC connections. Must be a string of the
           format &lt;SALT-HEX&gt;$&lt;HMAC-HEX&gt;.
+
+          Tool (Python script) for HMAC generation is available here:
+          <link xlink:href="https://github.com/bitcoin/bitcoin/blob/master/share/rpcauth/rpcauth.py"/>
         '';
       };
     };
@@ -51,10 +31,10 @@ let
       name = mkDefault name;
     };
   };
-in {
-  options = {
 
-    services.bitcoind = {
+  bitcoindOpts = { config, lib, name, ...}: {
+    options = {
+
       enable = mkEnableOption "Bitcoin daemon";
 
       package = mkOption {
@@ -63,12 +43,14 @@ in {
         defaultText = "pkgs.bitcoind";
         description = "The package providing bitcoin binaries.";
       };
+
       configFile = mkOption {
-        type = types.path;
-        default = configFile;
-        example = "/etc/bitcoind.conf";
+        type = types.nullOr types.path;
+        default = null;
+        example = "/var/lib/${name}/bitcoin.conf";
         description = "The configuration file path to supply bitcoind.";
       };
+
       extraConfig = mkOption {
         type = types.lines;
         default = "";
@@ -79,20 +61,22 @@ in {
         '';
         description = "Additional configurations to be appended to <filename>bitcoin.conf</filename>.";
       };
+
       dataDir = mkOption {
         type = types.path;
-        default = "/var/lib/bitcoind";
+        default = "/var/lib/bitcoind-${name}";
         description = "The data directory for bitcoind.";
       };
 
       user = mkOption {
         type = types.str;
-        default = "bitcoin";
+        default = "bitcoind-${name}";
         description = "The user as which to run bitcoind.";
       };
+
       group = mkOption {
         type = types.str;
-        default = cfg.user;
+        default = config.user;
         description = "The group as which to run bitcoind.";
       };
 
@@ -110,29 +94,36 @@ in {
               bob.passwordHMAC = "b2dd077cb54591a2f3139e69a897ac$4e71f08d48b4347cf8eff3815c0e25ae2e9a4340474079f55705f40574f4ec99";
             }
           '';
-          type = with types; loaOf (submodule rpcUserOpts);
-          description = ''
-            RPC user information for JSON-RPC connnections.
-          '';
+          type = types.attrsOf (types.submodule rpcUserOpts);
+          description = "RPC user information for JSON-RPC connnections.";
         };
       };
 
+      pidFile = mkOption {
+        type = types.path;
+        default = "${config.dataDir}/bitcoind.pid";
+        description = "Location of bitcoind pid file.";
+      };
+
       testnet = mkOption {
         type = types.bool;
         default = false;
-        description = "Whether to use the test chain.";
+        description = "Whether to use the testnet instead of mainnet.";
       };
+
       port = mkOption {
         type = types.nullOr types.port;
         default = null;
         description = "Override the default port on which to listen for connections.";
       };
+
       dbCache = mkOption {
         type = types.nullOr (types.ints.between 4 16384);
         default = null;
         example = 4000;
-        description = "Override the default database cache size in megabytes.";
+        description = "Override the default database cache size in MiB.";
       };
+
       prune = mkOption {
         type = types.nullOr (types.coercedTo
           (types.enum [ "disable" "manual" ])
@@ -149,45 +140,122 @@ in {
           and -rescan. Warning: Reverting this setting requires re-downloading
           the entire blockchain. ("disable" = disable pruning blocks, "manual"
           = allow manual pruning via RPC, >=550 = automatically prune block files
-          to stay under the specified target size in MiB)
+          to stay under the specified target size in MiB).
+        '';
+      };
+
+      extraCmdlineOptions = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''
+          Extra command line options to pass to bitcoind.
+          Run bitcoind --help to list all available options.
         '';
       };
     };
   };
+in
+{
 
-  config = mkIf cfg.enable {
-    environment.systemPackages = [ cfg.package ];
-    systemd.tmpfiles.rules = [
-      "d '${cfg.dataDir}' 0770 '${cfg.user}' '${cfg.group}' - -"
-      "L '${cfg.dataDir}/bitcoin.conf' - - - - '${cfg.configFile}'"
-    ];
-    systemd.services.bitcoind = {
-      description = "Bitcoin daemon";
-      after = [ "network.target" ];
-      wantedBy = [ "multi-user.target" ];
-      serviceConfig = {
-        User = cfg.user;
-        Group = cfg.group;
-        ExecStart = "${cfg.package}/bin/bitcoind ${cmdlineOptions}";
-        Restart = "on-failure";
-
-        # Hardening measures
-        PrivateTmp = "true";
-        ProtectSystem = "full";
-        NoNewPrivileges = "true";
-        PrivateDevices = "true";
-        MemoryDenyWriteExecute = "true";
-      };
+  options = {
+    services.bitcoind = mkOption {
+      type = types.attrsOf (types.submodule bitcoindOpts);
+      default = {};
+      description = "Specification of one or more bitcoind instances.";
     };
-    users.users.${cfg.user} = {
+  };
+
+  config = mkIf (eachBitcoind != {}) {
+
+    assertions = flatten (mapAttrsToList (bitcoindName: cfg: [
+    {
+      assertion = (cfg.prune != null) -> (builtins.elem cfg.prune [ "disable" "manual" 0 1 ] || (builtins.isInt cfg.prune && cfg.prune >= 550));
+      message = ''
+        If set, services.bitcoind.${bitcoindName}.prune has to be "disable", "manual", 0 , 1 or >= 550.
+      '';
+    }
+    {
+      assertion = (cfg.rpc.users != {}) -> (cfg.configFile == null);
+      message = ''
+        You cannot set both services.bitcoind.${bitcoindName}.rpc.users and services.bitcoind.${bitcoindName}.configFile
+        as they are exclusive. RPC user setting would have no effect if custom configFile would be used.
+      '';
+    }
+    ]) eachBitcoind);
+
+    environment.systemPackages = flatten (mapAttrsToList (bitcoindName: cfg: [
+      cfg.package
+    ]) eachBitcoind);
+
+    systemd.services = mapAttrs' (bitcoindName: cfg: (
+      nameValuePair "bitcoind-${bitcoindName}" (
+      let
+        configFile = pkgs.writeText "bitcoin.conf" ''
+          # If Testnet is enabled, we need to add [test] section
+          # otherwise, some options (e.g.: custom RPC port) will not work
+          ${optionalString cfg.testnet "[test]"}
+          # RPC users
+          ${concatMapStringsSep  "\n"
+            (rpcUser: "rpcauth=${rpcUser.name}:${rpcUser.passwordHMAC}")
+            (attrValues cfg.rpc.users)
+          }
+          # Extra config options (from bitcoind nixos service)
+          ${cfg.extraConfig}
+        '';
+      in {
+        description = "Bitcoin daemon";
+        after = [ "network.target" ];
+        wantedBy = [ "multi-user.target" ];
+        serviceConfig = {
+          User = cfg.user;
+          Group = cfg.group;
+          ExecStart = ''
+            ${cfg.package}/bin/bitcoind \
+            ${if (cfg.configFile != null) then
+              "-conf=${cfg.configFile}"
+            else
+              "-conf=${configFile}"
+            } \
+            -datadir=${cfg.dataDir} \
+            -pid=${cfg.pidFile} \
+            ${optionalString cfg.testnet "-testnet"}\
+            ${optionalString (cfg.port != null) "-port=${toString cfg.port}"}\
+            ${optionalString (cfg.prune != null) "-prune=${toString cfg.prune}"}\
+            ${optionalString (cfg.dbCache != null) "-dbcache=${toString cfg.dbCache}"}\
+            ${optionalString (cfg.rpc.port != null) "-rpcport=${toString cfg.rpc.port}"}\
+            ${toString cfg.extraCmdlineOptions}
+          '';
+          Restart = "on-failure";
+
+          # Hardening measures
+          PrivateTmp = "true";
+          ProtectSystem = "full";
+          NoNewPrivileges = "true";
+          PrivateDevices = "true";
+          MemoryDenyWriteExecute = "true";
+        };
+      }
+    ))) eachBitcoind;
+
+    systemd.tmpfiles.rules = flatten (mapAttrsToList (bitcoindName: cfg: [
+      "d '${cfg.dataDir}' 0770 '${cfg.user}' '${cfg.group}' - -"
+    ]) eachBitcoind);
+
+    users.users = mapAttrs' (bitcoindName: cfg: (
+      nameValuePair "bitcoind-${bitcoindName}" {
       name = cfg.user;
       group = cfg.group;
       description = "Bitcoin daemon user";
       home = cfg.dataDir;
       isSystemUser = true;
-    };
-    users.groups.${cfg.group} = {
-      name = cfg.group;
-    };
+    })) eachBitcoind;
+
+    users.groups = mapAttrs' (bitcoindName: cfg: (
+      nameValuePair "${cfg.group}" { }
+    )) eachBitcoind;
+
   };
+
+  meta.maintainers = with maintainers; [ _1000101 ];
+
 }
diff --git a/nixos/modules/services/networking/blockbook-frontend.nix b/nixos/modules/services/networking/blockbook-frontend.nix
index 61938e51e06..dde24522756 100644
--- a/nixos/modules/services/networking/blockbook-frontend.nix
+++ b/nixos/modules/services/networking/blockbook-frontend.nix
@@ -269,4 +269,7 @@ in
     users.groups = mapAttrs' (instanceName: cfg: (
       nameValuePair "${cfg.group}" { })) eachBlockbook;
   };
+
+  meta.maintainers = with maintainers; [ _1000101 ];
+
 }
diff --git a/nixos/modules/services/networking/corerad.nix b/nixos/modules/services/networking/corerad.nix
index 1c414c53a98..d90a5923bc6 100644
--- a/nixos/modules/services/networking/corerad.nix
+++ b/nixos/modules/services/networking/corerad.nix
@@ -81,6 +81,7 @@ in {
         NotifyAccess = "main";
         ExecStart = "${getBin cfg.package}/bin/corerad -c=${cfg.configFile}";
         Restart = "on-failure";
+        RestartKillSignal = "SIGHUP";
       };
     };
   };
diff --git a/nixos/modules/services/networking/dhcpd.nix b/nixos/modules/services/networking/dhcpd.nix
index 67f7d811887..8966deac76c 100644
--- a/nixos/modules/services/networking/dhcpd.nix
+++ b/nixos/modules/services/networking/dhcpd.nix
@@ -11,7 +11,7 @@ let
     ''
       default-lease-time 600;
       max-lease-time 7200;
-      authoritative;
+      ${optionalString (!cfg.authoritative) "not "}authoritative;
       ddns-update-style interim;
       log-facility local1; # see dhcpd.nix
 
@@ -176,6 +176,16 @@ let
       '';
     };
 
+    authoritative = mkOption {
+      type = types.bool;
+      default = true;
+      description = ''
+        Whether the DHCP server shall send DHCPNAK messages to misconfigured
+        clients. If this is not done, clients may be unable to get a correct
+        IP address after changing subnets until their old lease has expired.
+      '';
+    };
+
   };
 
 in
diff --git a/nixos/modules/services/networking/gateone.nix b/nixos/modules/services/networking/gateone.nix
index 4456a95402e..56f2ba21a12 100644
--- a/nixos/modules/services/networking/gateone.nix
+++ b/nixos/modules/services/networking/gateone.nix
@@ -56,4 +56,4 @@ config = mkIf cfg.enable {
   };
 };
 }
-  
+
diff --git a/nixos/modules/services/networking/hylafax/options.nix b/nixos/modules/services/networking/hylafax/options.nix
index 4ac6d3fa843..9e28d09dffc 100644
--- a/nixos/modules/services/networking/hylafax/options.nix
+++ b/nixos/modules/services/networking/hylafax/options.nix
@@ -3,7 +3,7 @@
 let
 
   inherit (lib.options) literalExample mkEnableOption mkOption;
-  inherit (lib.types) bool enum int lines loaOf nullOr path str submodule;
+  inherit (lib.types) bool enum int lines attrsOf nullOr path str submodule;
   inherit (lib.modules) mkDefault mkIf mkMerge;
 
   commonDescr = ''
@@ -248,7 +248,7 @@ in
     };
 
     modems = mkOption {
-      type = loaOf (submodule [ modemConfigOptions ]);
+      type = attrsOf (submodule [ modemConfigOptions ]);
       default = {};
       example.ttyS1 = {
         type = "cirrus";
diff --git a/nixos/modules/services/networking/jicofo.nix b/nixos/modules/services/networking/jicofo.nix
new file mode 100644
index 00000000000..160a5fea91a
--- /dev/null
+++ b/nixos/modules/services/networking/jicofo.nix
@@ -0,0 +1,152 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.jicofo;
+in
+{
+  options.services.jicofo = with types; {
+    enable = mkEnableOption "Jitsi Conference Focus - component of Jitsi Meet";
+
+    xmppHost = mkOption {
+      type = str;
+      example = "localhost";
+      description = ''
+        Hostname of the XMPP server to connect to.
+      '';
+    };
+
+    xmppDomain = mkOption {
+      type = nullOr str;
+      example = "meet.example.org";
+      description = ''
+        Domain name of the XMMP server to which to connect as a component.
+
+        If null, <option>xmppHost</option> is used.
+      '';
+    };
+
+    componentPasswordFile = mkOption {
+      type = str;
+      example = "/run/keys/jicofo-component";
+      description = ''
+        Path to file containing component secret.
+      '';
+    };
+
+    userName = mkOption {
+      type = str;
+      default = "focus";
+      description = ''
+        User part of the JID for XMPP user connection.
+      '';
+    };
+
+    userDomain = mkOption {
+      type = str;
+      example = "auth.meet.example.org";
+      description = ''
+        Domain part of the JID for XMPP user connection.
+      '';
+    };
+
+    userPasswordFile = mkOption {
+      type = str;
+      example = "/run/keys/jicofo-user";
+      description = ''
+        Path to file containing password for XMPP user connection.
+      '';
+    };
+
+    bridgeMuc = mkOption {
+      type = str;
+      example = "jvbbrewery@internal.meet.example.org";
+      description = ''
+        JID of the internal MUC used to communicate with Videobridges.
+      '';
+    };
+
+    config = mkOption {
+      type = attrsOf str;
+      default = { };
+      example = literalExample ''
+        {
+          "org.jitsi.jicofo.auth.URL" = "XMPP:jitsi-meet.example.com";
+        }
+      '';
+      description = ''
+        Contents of the <filename>sip-communicator.properties</filename> configuration file for jicofo.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    services.jicofo.config = mapAttrs (_: v: mkDefault v) {
+      "org.jitsi.jicofo.BRIDGE_MUC" = cfg.bridgeMuc;
+    };
+
+    users.groups.jitsi-meet = {};
+
+    systemd.services.jicofo = let
+      jicofoProps = {
+        "-Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION" = "/etc/jitsi";
+        "-Dnet.java.sip.communicator.SC_HOME_DIR_NAME" = "jicofo";
+        "-Djava.util.logging.config.file" = "/etc/jitsi/jicofo/logging.properties";
+      };
+    in
+    {
+      description = "JItsi COnference FOcus";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+
+      restartTriggers = [
+        config.environment.etc."jitsi/jicofo/sip-communicator.properties".source
+      ];
+      environment.JAVA_SYS_PROPS = concatStringsSep " " (mapAttrsToList (k: v: "${k}=${toString v}") jicofoProps);
+
+      script = ''
+        ${pkgs.jicofo}/bin/jicofo \
+          --host=${cfg.xmppHost} \
+          --domain=${if cfg.xmppDomain == null then cfg.xmppHost else cfg.xmppDomain} \
+          --secret=$(cat ${cfg.componentPasswordFile}) \
+          --user_name=${cfg.userName} \
+          --user_domain=${cfg.userDomain} \
+          --user_password=$(cat ${cfg.userPasswordFile})
+      '';
+
+      serviceConfig = {
+        Type = "exec";
+
+        DynamicUser = true;
+        User = "jicofo";
+        Group = "jitsi-meet";
+
+        CapabilityBoundingSet = "";
+        NoNewPrivileges = true;
+        ProtectSystem = "strict";
+        ProtectHome = true;
+        PrivateTmp = true;
+        PrivateDevices = true;
+        ProtectHostname = true;
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectControlGroups = true;
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ];
+        RestrictNamespaces = true;
+        LockPersonality = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+      };
+    };
+
+    environment.etc."jitsi/jicofo/sip-communicator.properties".source =
+      pkgs.writeText "sip-communicator.properties" (
+        generators.toKeyValue {} cfg.config
+      );
+    environment.etc."jitsi/jicofo/logging.properties".source =
+      mkDefault "${pkgs.jicofo}/etc/jitsi/jicofo/logging.properties-journal";
+  };
+
+  meta.maintainers = lib.teams.jitsi.members;
+}
diff --git a/nixos/modules/services/networking/jitsi-videobridge.nix b/nixos/modules/services/networking/jitsi-videobridge.nix
new file mode 100644
index 00000000000..5482e997a40
--- /dev/null
+++ b/nixos/modules/services/networking/jitsi-videobridge.nix
@@ -0,0 +1,276 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.jitsi-videobridge;
+  attrsToArgs = a: concatStringsSep " " (mapAttrsToList (k: v: "${k}=${toString v}") a);
+
+  # HOCON is a JSON superset that videobridge2 uses for configuration.
+  # It can substitute environment variables which we use for passwords here.
+  # https://github.com/lightbend/config/blob/master/README.md
+  #
+  # Substitution for environment variable FOO is represented as attribute set
+  # { __hocon_envvar = "FOO"; }
+  toHOCON = x: if isAttrs x && x ? __hocon_envvar then ("\${" + x.__hocon_envvar + "}")
+    else if isAttrs x then "{${ concatStringsSep "," (mapAttrsToList (k: v: ''"${k}":${toHOCON v}'') x) }}"
+    else if isList x then "[${ concatMapStringsSep "," toHOCON x }]"
+    else builtins.toJSON x;
+
+  # We're passing passwords in environment variables that have names generated
+  # from an attribute name, which may not be a valid bash identifier.
+  toVarName = s: "XMPP_PASSWORD_" + stringAsChars (c: if builtins.match "[A-Za-z0-9]" c != null then c else "_") s;
+
+  defaultJvbConfig = {
+    videobridge = {
+      ice = {
+        tcp = {
+          enabled = true;
+          port = 4443;
+        };
+        udp.port = 10000;
+      };
+      stats = {
+        enabled = true;
+        transports = [ { type = "muc"; } ];
+      };
+      apis.xmpp-client.configs = flip mapAttrs cfg.xmppConfigs (name: xmppConfig: {
+        hostname = xmppConfig.hostName;
+        domain = xmppConfig.domain;
+        username = xmppConfig.userName;
+        password = { __hocon_envvar = toVarName name; };
+        muc_jids = xmppConfig.mucJids;
+        muc_nickname = xmppConfig.mucNickname;
+        disable_certificate_verification = xmppConfig.disableCertificateVerification;
+      });
+    };
+  };
+
+  # Allow overriding leaves of the default config despite types.attrs not doing any merging.
+  jvbConfig = recursiveUpdate defaultJvbConfig cfg.config;
+in
+{
+  options.services.jitsi-videobridge = with types; {
+    enable = mkEnableOption "Jitsi Videobridge, a WebRTC compatible video router";
+
+    config = mkOption {
+      type = attrs;
+      default = { };
+      example = literalExample ''
+        {
+          videobridge = {
+            ice.udp.port = 5000;
+            websockets = {
+              enabled = true;
+              server-id = "jvb1";
+            };
+          };
+        }
+      '';
+      description = ''
+        Videobridge configuration.
+
+        See <link xlink:href="https://github.com/jitsi/jitsi-videobridge/blob/master/src/main/resources/reference.conf" />
+        for default configuration with comments.
+      '';
+    };
+
+    xmppConfigs = mkOption {
+      description = ''
+        XMPP servers to connect to.
+
+        See <link xlink:href="https://github.com/jitsi/jitsi-videobridge/blob/master/doc/muc.md" /> for more information.
+      '';
+      default = { };
+      example = literalExample ''
+        {
+          "localhost" = {
+            hostName = "localhost";
+            userName = "jvb";
+            domain = "auth.xmpp.example.org";
+            passwordFile = "/var/lib/jitsi-meet/videobridge-secret";
+            mucJids = "jvbbrewery@internal.xmpp.example.org";
+          };
+        }
+      '';
+      type = attrsOf (submodule ({ name, ... }: {
+        options = {
+          hostName = mkOption {
+            type = str;
+            example = "xmpp.example.org";
+            description = ''
+              Hostname of the XMPP server to connect to. Name of the attribute set is used by default.
+            '';
+          };
+          domain = mkOption {
+            type = nullOr str;
+            default = null;
+            example = "auth.xmpp.example.org";
+            description = ''
+              Domain part of JID of the XMPP user, if it is different from hostName.
+            '';
+          };
+          userName = mkOption {
+            type = str;
+            default = "jvb";
+            description = ''
+              User part of the JID.
+            '';
+          };
+          passwordFile = mkOption {
+            type = str;
+            example = "/run/keys/jitsi-videobridge-xmpp1";
+            description = ''
+              File containing the password for the user.
+            '';
+          };
+          mucJids = mkOption {
+            type = str;
+            example = "jvbbrewery@internal.xmpp.example.org";
+            description = ''
+              JID of the MUC to join. JiCoFo needs to be configured to join the same MUC.
+            '';
+          };
+          mucNickname = mkOption {
+            # Upstream DEBs use UUID, let's use hostname instead.
+            type = str;
+            description = ''
+              Videobridges use the same XMPP account and need to be distinguished by the
+              nickname (aka resource part of the JID). By default, system hostname is used.
+            '';
+          };
+          disableCertificateVerification = mkOption {
+            type = bool;
+            default = false;
+            description = ''
+              Whether to skip validation of the server's certificate.
+            '';
+          };
+        };
+        config = {
+          hostName = mkDefault name;
+          mucNickname = mkDefault (builtins.replaceStrings [ "." ] [ "-" ] (
+            config.networking.hostName + optionalString (config.networking.domain != null) ".${config.networking.domain}"
+          ));
+        };
+      }));
+    };
+
+    nat = {
+      localAddress = mkOption {
+        type = nullOr str;
+        default = null;
+        example = "192.168.1.42";
+        description = ''
+          Local address when running behind NAT.
+        '';
+      };
+
+      publicAddress = mkOption {
+        type = nullOr str;
+        default = null;
+        example = "1.2.3.4";
+        description = ''
+          Public address when running behind NAT.
+        '';
+      };
+    };
+
+    extraProperties = mkOption {
+      type = attrsOf str;
+      default = { };
+      description = ''
+        Additional Java properties passed to jitsi-videobridge.
+      '';
+    };
+
+    openFirewall = mkOption {
+      type = bool;
+      default = false;
+      description = ''
+        Whether to open ports in the firewall for the videobridge.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    users.groups.jitsi-meet = {};
+
+    services.jitsi-videobridge.extraProperties = optionalAttrs (cfg.nat.localAddress != null) {
+      "org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS" = cfg.nat.localAddress;
+      "org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS" = cfg.nat.publicAddress;
+    };
+
+    systemd.services.jitsi-videobridge2 = let
+      jvbProps = {
+        "-Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION" = "/etc/jitsi";
+        "-Dnet.java.sip.communicator.SC_HOME_DIR_NAME" = "videobridge";
+        "-Djava.util.logging.config.file" = "/etc/jitsi/videobridge/logging.properties";
+        "-Dconfig.file" = pkgs.writeText "jvb.conf" (toHOCON jvbConfig);
+      } // (mapAttrs' (k: v: nameValuePair "-D${k}" v) cfg.extraProperties);
+    in
+    {
+      aliases = [ "jitsi-videobridge.service" ];
+      description = "Jitsi Videobridge";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+
+      environment.JAVA_SYS_PROPS = attrsToArgs jvbProps;
+
+      script = (concatStrings (mapAttrsToList (name: xmppConfig:
+        "export ${toVarName name}=$(cat ${xmppConfig.passwordFile})\n"
+      ) cfg.xmppConfigs))
+      + ''
+        ${pkgs.jitsi-videobridge}/bin/jitsi-videobridge --apis=none
+      '';
+
+      serviceConfig = {
+        Type = "exec";
+
+        DynamicUser = true;
+        User = "jitsi-videobridge";
+        Group = "jitsi-meet";
+
+        CapabilityBoundingSet = "";
+        NoNewPrivileges = true;
+        ProtectSystem = "strict";
+        ProtectHome = true;
+        PrivateTmp = true;
+        PrivateDevices = true;
+        ProtectHostname = true;
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectControlGroups = true;
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ];
+        RestrictNamespaces = true;
+        LockPersonality = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+
+        TasksMax = 65000;
+        LimitNPROC = 65000;
+        LimitNOFILE = 65000;
+      };
+    };
+
+    environment.etc."jitsi/videobridge/logging.properties".source =
+      mkDefault "${pkgs.jitsi-videobridge}/etc/jitsi/videobridge/logging.properties-journal";
+
+    # (from videobridge2 .deb)
+    # this sets the max, so that we can bump the JVB UDP single port buffer size.
+    boot.kernel.sysctl."net.core.rmem_max" = mkDefault 10485760;
+    boot.kernel.sysctl."net.core.netdev_max_backlog" = mkDefault 100000;
+
+    networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall
+      [ jvbConfig.videobridge.ice.tcp.port ];
+    networking.firewall.allowedUDPPorts = mkIf cfg.openFirewall
+      [ jvbConfig.videobridge.ice.udp.port ];
+
+    assertions = [{
+      message = "publicAddress must be set if and only if localAddress is set";
+      assertion = (cfg.nat.publicAddress == null) == (cfg.nat.localAddress == null);
+    }];
+  };
+
+  meta.maintainers = lib.teams.jitsi.members;
+}
diff --git a/nixos/modules/services/networking/kresd.nix b/nixos/modules/services/networking/kresd.nix
index c5a84eebd46..ccb34163d5f 100644
--- a/nixos/modules/services/networking/kresd.nix
+++ b/nixos/modules/services/networking/kresd.nix
@@ -129,14 +129,17 @@ in {
     systemd.services."kresd@".serviceConfig = {
       ExecStart = "${package}/bin/kresd --noninteractive "
         + "-c ${package}/lib/knot-resolver/distro-preconfig.lua -c ${configFile}";
-      # Ensure correct ownership in case UID or GID changes.
+      # Ensure /run/knot-resolver exists
+      RuntimeDirectory = "knot-resolver";
+      RuntimeDirectoryMode = "0770";
+      # Ensure /var/lib/knot-resolver exists
+      StateDirectory = "knot-resolver";
+      StateDirectoryMode = "0770";
+      # Ensure /var/cache/knot-resolver exists
       CacheDirectory = "knot-resolver";
-      CacheDirectoryMode = "0750";
+      CacheDirectoryMode = "0770";
     };
 
-    environment.etc."tmpfiles.d/knot-resolver.conf".source =
-      "${package}/lib/tmpfiles.d/knot-resolver.conf";
-
     # 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.03
diff --git a/nixos/modules/services/networking/monero.nix b/nixos/modules/services/networking/monero.nix
index 97af2997839..fde3293fc13 100644
--- a/nixos/modules/services/networking/monero.nix
+++ b/nixos/modules/services/networking/monero.nix
@@ -87,7 +87,7 @@ in
       };
 
       rpc.password = mkOption {
-        type = types.str;
+        type = types.nullOr types.str;
         default = null;
         description = ''
           Password for RPC connections.
diff --git a/nixos/modules/services/networking/mstpd.nix b/nixos/modules/services/networking/mstpd.nix
index 5d1fc4a6542..bd71010ce54 100644
--- a/nixos/modules/services/networking/mstpd.nix
+++ b/nixos/modules/services/networking/mstpd.nix
@@ -5,7 +5,7 @@ in
 with lib;
 {
   options.services.mstpd = {
-    
+
     enable = mkOption {
       default = false;
       type = types.bool;
diff --git a/nixos/modules/services/networking/namecoind.nix b/nixos/modules/services/networking/namecoind.nix
index 6ca99e1321b..16f85df2e77 100644
--- a/nixos/modules/services/networking/namecoind.nix
+++ b/nixos/modules/services/networking/namecoind.nix
@@ -89,7 +89,7 @@ in
       };
 
       rpc.password = mkOption {
-        type = types.str;
+        type = types.nullOr types.str;
         default = null;
         description = ''
           Password for RPC connections.
diff --git a/nixos/modules/services/networking/ncdns.nix b/nixos/modules/services/networking/ncdns.nix
new file mode 100644
index 00000000000..c1832ad1752
--- /dev/null
+++ b/nixos/modules/services/networking/ncdns.nix
@@ -0,0 +1,278 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfgs = config.services;
+  cfg  = cfgs.ncdns;
+
+  dataDir  = "/var/lib/ncdns";
+  username = "ncdns";
+
+  valueType = with types; oneOf [ int str bool path ]
+    // { description = "setting type (integer, string, bool or path)"; };
+
+  configType = with types; attrsOf (nullOr (either valueType configType))
+    // { description = ''
+          ncdns.conf configuration type. The format consists of an
+          attribute set of settings. Each setting can be either `null`,
+          a value or an attribute set. The allowed values are integers,
+          strings, booleans or paths.
+         '';
+       };
+
+  configFile = pkgs.runCommand "ncdns.conf"
+    { json = builtins.toJSON cfg.settings;
+      passAsFile = [ "json" ];
+    }
+    "${pkgs.remarshal}/bin/json2toml < $jsonPath > $out";
+
+  defaultFiles = {
+    public  = "${dataDir}/bit.key";
+    private = "${dataDir}/bit.private";
+    zonePublic  = "${dataDir}/bit-zone.key";
+    zonePrivate = "${dataDir}/bit-zone.private";
+  };
+
+  # if all keys are the default value
+  needsKeygen = all id (flip mapAttrsToList cfg.dnssec.keys
+    (n: v: v == getAttr n defaultFiles));
+
+  mkDefaultAttrs = mapAttrs (n: v: mkDefault v);
+
+in
+
+{
+
+  ###### interface
+
+  options = {
+
+    services.ncdns = {
+
+      enable = mkEnableOption ''
+        ncdns, a Go daemon to bridge Namecoin to DNS.
+        To resolve .bit domains set <literal>services.namecoind.enable = true;</literal>
+        and an RPC username/password
+      '';
+
+      address = mkOption {
+        type = types.str;
+        default = "127.0.0.1";
+        description = ''
+          The IP address the ncdns resolver will bind to.  Leave this unchanged
+          if you do not wish to directly expose the resolver.
+        '';
+      };
+
+      port = mkOption {
+        type = types.port;
+        default = 5333;
+        description = ''
+          The port the ncdns resolver will bind to.
+        '';
+      };
+
+      identity.hostname = mkOption {
+        type = types.str;
+        default = config.networking.hostName;
+        example = "example.com";
+        description = ''
+          The hostname of this ncdns instance, which defaults to the machine
+          hostname. If specified, ncdns lists the hostname as an NS record at
+          the zone apex:
+          <programlisting>
+          bit. IN NS ns1.example.com.
+          </programlisting>
+          If unset ncdns will generate an internal psuedo-hostname under the
+          zone, which will resolve to the value of
+          <option>services.ncdns.identity.address</option>.
+          If you are only using ncdns locally you can ignore this.
+        '';
+      };
+
+      identity.hostmaster = mkOption {
+        type = types.str;
+        default = "";
+        example = "root@example.com";
+        description = ''
+          An email address for the SOA record at the bit zone.
+          If you are only using ncdns locally you can ignore this.
+        '';
+      };
+
+      identity.address = mkOption {
+        type = types.str;
+        default = "127.127.127.127";
+        description = ''
+          The IP address the hostname specified in
+          <option>services.ncdns.identity.hostname</option> should resolve to.
+          If you are only using ncdns locally you can ignore this.
+        '';
+      };
+
+      dnssec.enable = mkEnableOption ''
+        DNSSEC support in ncdns. This will generate KSK and ZSK keypairs
+        (unless provided via the options
+        <option>services.ncdns.dnssec.publicKey</option>,
+        <option>services.ncdns.dnssec.privateKey</option> etc.) and add a trust
+        anchor to recursive resolvers
+      '';
+
+      dnssec.keys.public = mkOption {
+        type = types.path;
+        default = defaultFiles.public;
+        description = ''
+          Path to the file containing the KSK public key.
+          The key can be generated using the <literal>dnssec-keygen</literal>
+          command, provided by the package <package>bind</package> as follows:
+          <programlisting>
+          $ dnssec-keygen -a RSASHA256 -3 -b 2048 -f KSK bit
+          </programlisting>
+        '';
+      };
+
+      dnssec.keys.private = mkOption {
+        type = types.path;
+        default = defaultFiles.private;
+        description = ''
+          Path to the file containing the KSK private key.
+        '';
+      };
+
+      dnssec.keys.zonePublic = mkOption {
+        type = types.path;
+        default = defaultFiles.zonePublic;
+        description = ''
+          Path to the file containing the ZSK public key.
+          The key can be generated using the <literal>dnssec-keygen</literal>
+          command, provided by the package <package>bind</package> as follows:
+          <programlisting>
+          $ dnssec-keygen -a RSASHA256 -3 -b 2048 bit
+          </programlisting>
+        '';
+      };
+
+      dnssec.keys.zonePrivate = mkOption {
+        type = types.path;
+        default = defaultFiles.zonePrivate;
+        description = ''
+          Path to the file containing the ZSK private key.
+        '';
+      };
+
+      settings = mkOption {
+        type = configType;
+        default = { };
+        example = literalExample ''
+          { # enable webserver
+            ncdns.httplistenaddr = ":8202";
+
+            # synchronize TLS certs
+            certstore.nss = true;
+            # note: all paths are relative to the config file
+            certstore.nsscertdir =  "../../var/lib/ncdns";
+            certstore.nssdbdir = "../../home/alice/.pki/nssdb";
+          }
+        '';
+        description = ''
+          ncdns settings. Use this option to configure ncds
+          settings not exposed in a NixOS option or to bypass one.
+          See the example ncdns.conf file at <link xlink:href="
+          https://git.io/JfX7g"/> for the available options.
+        '';
+      };
+
+    };
+
+    services.pdns-recursor.resolveNamecoin = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Resolve <literal>.bit</literal> top-level domains using ncdns and namecoin.
+      '';
+    };
+
+  };
+
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+
+    services.pdns-recursor = mkIf cfgs.pdns-recursor.resolveNamecoin {
+      forwardZonesRecurse.bit = "127.0.0.1:${toString cfg.port}";
+      luaConfig =
+        if cfg.dnssec.enable
+          then ''readTrustAnchorsFromFile("${cfg.dnssec.keys.public}")''
+          else ''addNTA("bit", "namecoin DNSSEC disabled")'';
+    };
+
+    # Avoid pdns-recursor not finding the DNSSEC keys
+    systemd.services.pdns-recursor = mkIf cfgs.pdns-recursor.resolveNamecoin {
+      after = [ "ncdns.service" ];
+      wants = [ "ncdns.service" ];
+    };
+
+    services.ncdns.settings = mkDefaultAttrs {
+      ncdns =
+        { # Namecoin RPC
+          namecoinrpcaddress =
+            "${cfgs.namecoind.rpc.address}:${toString cfgs.namecoind.rpc.port}";
+          namecoinrpcusername = cfgs.namecoind.rpc.user;
+          namecoinrpcpassword = cfgs.namecoind.rpc.password;
+
+          # Identity
+          selfname = cfg.identity.hostname;
+          hostmaster = cfg.identity.hostmaster;
+          selfip = cfg.identity.address;
+
+          # Other
+          bind = "${cfg.address}:${toString cfg.port}";
+        }
+        // optionalAttrs cfg.dnssec.enable
+        { # DNSSEC
+          publickey  = "../.." + cfg.dnssec.keys.public;
+          privatekey = "../.." + cfg.dnssec.keys.private;
+          zonepublickey  = "../.." + cfg.dnssec.keys.zonePublic;
+          zoneprivatekey = "../.." + cfg.dnssec.keys.zonePrivate;
+        };
+
+        # Daemon
+        service.daemon = true;
+        xlog.journal = true;
+    };
+
+    users.users.ncdns =
+      { description = "ncdns daemon user"; };
+
+    systemd.services.ncdns = {
+      description = "ncdns daemon";
+      after    = [ "namecoind.service" ];
+      wantedBy = [ "multi-user.target" ];
+
+      serviceConfig = {
+        User = "ncdns";
+        StateDirectory = "ncdns";
+        Restart = "on-failure";
+        ExecStart = "${pkgs.ncdns}/bin/ncdns -conf=${configFile}";
+      };
+
+      preStart = optionalString (cfg.dnssec.enable && needsKeygen) ''
+        cd ${dataDir}
+        if [ ! -e bit.key ]; then
+          ${pkgs.bind}/bin/dnssec-keygen -a RSASHA256 -3 -b 2048 bit
+          mv Kbit.*.key bit-zone.key
+          mv Kbit.*.private bit-zone.private
+          ${pkgs.bind}/bin/dnssec-keygen -a RSASHA256 -3 -b 2048 -f KSK bit
+          mv Kbit.*.key bit.key
+          mv Kbit.*.private bit.private
+        fi
+      '';
+    };
+
+  };
+
+  meta.maintainers = with lib.maintainers; [ rnhmjoj ];
+
+}
diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix
index cc789897b29..17c549d42c3 100644
--- a/nixos/modules/services/networking/networkmanager.nix
+++ b/nixos/modules/services/networking/networkmanager.nix
@@ -458,7 +458,7 @@ in {
 
     systemd.services.NetworkManager-dispatcher = {
       wantedBy = [ "network.target" ];
-      restartTriggers = [ configFile ];
+      restartTriggers = [ configFile overrideNameserversScript ];
 
       # useful binaries for user-specified hooks
       path = [ pkgs.iproute pkgs.utillinux pkgs.coreutils ];
diff --git a/nixos/modules/services/networking/nextdns.nix b/nixos/modules/services/networking/nextdns.nix
new file mode 100644
index 00000000000..a633bff62ec
--- /dev/null
+++ b/nixos/modules/services/networking/nextdns.nix
@@ -0,0 +1,44 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.nextdns;
+in {
+  options = {
+    services.nextdns = {
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Whether to enable the NextDNS DNS/53 to DoH Proxy service.";
+      };
+      arguments = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        example = [ "-config" "10.0.3.0/24=abcdef" ];
+        description = "Additional arguments to be passed to nextdns run.";
+      };
+    };
+  };
+
+  # https://github.com/nextdns/nextdns/blob/628ea509eaaccd27adb66337db03e5b56f6f38a8/host/service/systemd/service.go
+  config = mkIf cfg.enable {
+    systemd.services.nextdns = {
+      description = "NextDNS DNS/53 to DoH Proxy";
+      environment = {
+        SERVICE_RUN_MODE = "1";
+      };
+      serviceConfig = {
+        StartLimitInterval = 5;
+        StartLimitBurst = 10;
+        ExecStart = "${pkgs.nextdns}/bin/nextdns run ${escapeShellArgs config.services.nextdns.arguments}";
+        RestartSec = 120;
+        LimitMEMLOCK = "infinity";
+      };
+      after = [ "network.target" ];
+      before = [ "nss-lookup.target" ];
+      wants = [ "nss-lookup.target" ];
+      wantedBy = [ "multi-user.target" ];
+    };
+  };
+}
diff --git a/nixos/modules/services/networking/nghttpx/default.nix b/nixos/modules/services/networking/nghttpx/default.nix
index 881a2670f5d..b8a0a24e3aa 100644
--- a/nixos/modules/services/networking/nghttpx/default.nix
+++ b/nixos/modules/services/networking/nghttpx/default.nix
@@ -60,7 +60,7 @@ let
       # NB: nghttpx doesn't accept "tls", you must omit "no-tls" for
       # the default behavior of turning on TLS.
       params1 = lib.remove "tls" params0;
-          
+
       sections          = [ host] ++ params1;
       formattedSections = lib.concatStringsSep ";" sections;
     in
@@ -90,7 +90,7 @@ in
 { imports = [
     ./nghttpx-options.nix
   ];
-  
+
   config = lib.mkIf cfg.enable {
 
     users.groups.nghttpx = { };
@@ -98,7 +98,7 @@ in
       group = config.users.groups.nghttpx.name;
       isSystemUser = true;
     };
-      
+
 
     systemd.services = {
       nghttpx = {
diff --git a/nixos/modules/services/networking/nylon.nix b/nixos/modules/services/networking/nylon.nix
index 7c171281a92..bfc358cb12f 100644
--- a/nixos/modules/services/networking/nylon.nix
+++ b/nixos/modules/services/networking/nylon.nix
@@ -140,7 +140,7 @@ in
     services.nylon = mkOption {
       default = {};
       description = "Collection of named nylon instances";
-      type = with types; loaOf (submodule nylonOpts);
+      type = with types; attrsOf (submodule nylonOpts);
       internal = true;
     };
 
diff --git a/nixos/modules/services/networking/onedrive.nix b/nixos/modules/services/networking/onedrive.nix
index a945250fa9e..210d2217b27 100644
--- a/nixos/modules/services/networking/onedrive.nix
+++ b/nixos/modules/services/networking/onedrive.nix
@@ -23,7 +23,7 @@ in {
   ### Documentation
   # meta.doc = ./onedrive.xml;
 
-  ### Interface 
+  ### Interface
 
   options.services.onedrive = {
     enable = lib.mkOption {
diff --git a/nixos/modules/services/networking/prosody.nix b/nixos/modules/services/networking/prosody.nix
index cdd341c9fb6..a6c1cb0f479 100644
--- a/nixos/modules/services/networking/prosody.nix
+++ b/nixos/modules/services/networking/prosody.nix
@@ -655,7 +655,7 @@ in
 
         description = "Define the virtual hosts";
 
-        type = with types; loaOf (submodule vHostOpts);
+        type = with types; attrsOf (submodule vHostOpts);
 
         example = {
           myhost = {
@@ -772,7 +772,7 @@ in
       };
 
       disco_items = {
-      ${ lib.concatStringsSep "\n" (builtins.map (x: ''{ "${x.url}", "${x.description}"};'') discoItems)} 
+      ${ lib.concatStringsSep "\n" (builtins.map (x: ''{ "${x.url}", "${x.description}"};'') discoItems)}
       };
 
       allow_registration = ${toLua cfg.allowRegistration}
diff --git a/nixos/modules/services/networking/prosody.xml b/nixos/modules/services/networking/prosody.xml
index 7859cb1578b..471240cd147 100644
--- a/nixos/modules/services/networking/prosody.xml
+++ b/nixos/modules/services/networking/prosody.xml
@@ -43,10 +43,10 @@ services.prosody = {
   <link linkend="opt-services.prosody.ssl.cert">ssl.cert</link> = "/var/lib/acme/example.org/fullchain.pem";
   <link linkend="opt-services.prosody.ssl.key">ssl.key</link> = "/var/lib/acme/example.org/key.pem";
   <link linkend="opt-services.prosody.virtualHosts">virtualHosts</link>."example.org" = {
-      <link linkend="opt-services.prosody.virtualHosts._name__.enabled">enabled</link> = true;
-      <link linkend="opt-services.prosody.virtualHosts._name__.domain">domain</link> = "example.org";
-      <link linkend="opt-services.prosody.virtualHosts._name__.ssl.cert">ssl.cert</link> = "/var/lib/acme/example.org/fullchain.pem";
-      <link linkend="opt-services.prosody.virtualHosts._name__.ssl.key">ssl.key</link> = "/var/lib/acme/example.org/key.pem";
+      <link linkend="opt-services.prosody.virtualHosts._name_.enabled">enabled</link> = true;
+      <link linkend="opt-services.prosody.virtualHosts._name_.domain">domain</link> = "example.org";
+      <link linkend="opt-services.prosody.virtualHosts._name_.ssl.cert">ssl.cert</link> = "/var/lib/acme/example.org/fullchain.pem";
+      <link linkend="opt-services.prosody.virtualHosts._name_.ssl.key">ssl.key</link> = "/var/lib/acme/example.org/key.pem";
   };
   <link linkend="opt-services.prosody.muc">muc</link> = [ {
       <link linkend="opt-services.prosody.muc">domain</link> = "conference.example.org";
@@ -65,7 +65,7 @@ services.prosody = {
    you'll need a single TLS certificate covering your main endpoint,
    the MUC one as well as the HTTP Upload one. We can generate such a
    certificate by leveraging the ACME
-   <link linkend="opt-security.acme.certs._name_.extraDomains">extraDomains</link> module option.
+   <link linkend="opt-security.acme.certs._name_.extraDomainNames">extraDomainNames</link> module option.
  </para>
  <para>
    Provided the setup detailed in the previous section, you'll need the following acme configuration to generate
@@ -78,8 +78,7 @@ security.acme = {
     "example.org" = {
       <link linkend="opt-security.acme.certs._name_.webroot">webroot</link> = "/var/www/example.org";
       <link linkend="opt-security.acme.certs._name_.email">email</link> = "root@example.org";
-      <link linkend="opt-security.acme.certs._name_.extraDomains">extraDomains."conference.example.org"</link> = null;
-      <link linkend="opt-security.acme.certs._name_.extraDomains">extraDomains."upload.example.org"</link> = null;
+      <link linkend="opt-security.acme.certs._name_.extraDomainNames">extraDomainNames</link> = [ "conference.example.org" "upload.example.org" ];
     };
   };
 };</programlisting>
diff --git a/nixos/modules/services/networking/resilio.nix b/nixos/modules/services/networking/resilio.nix
index 266318296d7..6193d7340fc 100644
--- a/nixos/modules/services/networking/resilio.nix
+++ b/nixos/modules/services/networking/resilio.nix
@@ -30,12 +30,12 @@ let
     download_limit = cfg.downloadLimit;
     upload_limit = cfg.uploadLimit;
     lan_encrypt_data = cfg.encryptLAN;
-  } // optionalAttrs cfg.enableWebUI {
+  } // optionalAttrs (cfg.directoryRoot != "") { directory_root = cfg.directoryRoot; }
+    // optionalAttrs cfg.enableWebUI {
     webui = { listen = "${cfg.httpListenAddr}:${toString cfg.httpListenPort}"; } //
       (optionalAttrs (cfg.httpLogin != "") { login = cfg.httpLogin; }) //
       (optionalAttrs (cfg.httpPass != "") { password = cfg.httpPass; }) //
-      (optionalAttrs (cfg.apiKey != "") { api_key = cfg.apiKey; }) //
-      (optionalAttrs (cfg.directoryRoot != "") { directory_root = cfg.directoryRoot; });
+      (optionalAttrs (cfg.apiKey != "") { api_key = cfg.apiKey; });
   } // optionalAttrs (sharedFoldersRecord != []) {
     shared_folders = sharedFoldersRecord;
   }));
diff --git a/nixos/modules/services/networking/robustirc-bridge.nix b/nixos/modules/services/networking/robustirc-bridge.nix
new file mode 100644
index 00000000000..255af79ec04
--- /dev/null
+++ b/nixos/modules/services/networking/robustirc-bridge.nix
@@ -0,0 +1,47 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.robustirc-bridge;
+in
+{
+  options = {
+    services.robustirc-bridge = {
+      enable = mkEnableOption "RobustIRC bridge";
+
+      extraFlags = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''Extra flags passed to the <command>robustirc-bridge</command> command. See <link xlink:href="https://robustirc.net/docs/adminguide.html#_bridge">RobustIRC Documentation</link> or robustirc-bridge(1) for details.'';
+        example = [
+          "-network robustirc.net"
+        ];
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.robustirc-bridge = {
+      description = "RobustIRC bridge";
+      documentation = [
+        "man:robustirc-bridge(1)"
+        "https://robustirc.net/"
+      ];
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+
+      serviceConfig = {
+        DynamicUser = true;
+        ExecStart = "${pkgs.robustirc-bridge}/bin/robustirc-bridge ${concatStringsSep " " cfg.extraFlags}";
+        Restart = "on-failure";
+
+        # Hardening
+        PrivateDevices = true;
+        ProtectSystem = true;
+        ProtectHome = true;
+        PrivateTmp = true;
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/networking/shadowsocks.nix b/nixos/modules/services/networking/shadowsocks.nix
index af12db590f0..4fd988297f6 100644
--- a/nixos/modules/services/networking/shadowsocks.nix
+++ b/nixos/modules/services/networking/shadowsocks.nix
@@ -11,8 +11,13 @@ let
     method = cfg.encryptionMethod;
     mode = cfg.mode;
     user = "nobody";
-    fast_open = true;
-  } // optionalAttrs (cfg.password != null) { password = cfg.password; };
+    fast_open = cfg.fastOpen;
+  } // optionalAttrs (cfg.plugin != null) {
+    plugin = cfg.plugin;
+    plugin_opts = cfg.pluginOpts;
+  } // optionalAttrs (cfg.password != null) {
+    password = cfg.password;
+  };
 
   configFile = pkgs.writeText "shadowsocks.json" (builtins.toJSON opts);
 
@@ -74,6 +79,14 @@ in
         '';
       };
 
+      fastOpen = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          use TCP fast-open
+        '';
+      };
+
       encryptionMethod = mkOption {
         type = types.str;
         default = "chacha20-ietf-poly1305";
@@ -82,6 +95,23 @@ in
         '';
       };
 
+      plugin = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        example = "\${pkgs.shadowsocks-v2ray-plugin}/bin/v2ray-plugin";
+        description = ''
+          SIP003 plugin for shadowsocks
+        '';
+      };
+
+      pluginOpts = mkOption {
+        type = types.str;
+        default = "";
+        example = "server;host=example.com";
+        description = ''
+          Options to pass to the plugin if one was specified
+        '';
+      };
     };
 
   };
@@ -99,7 +129,7 @@ in
       description = "shadowsocks-libev Daemon";
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
-      path = [ pkgs.shadowsocks-libev ] ++ optional (cfg.passwordFile != null) pkgs.jq;
+      path = [ pkgs.shadowsocks-libev cfg.plugin ] ++ optional (cfg.passwordFile != null) pkgs.jq;
       serviceConfig.PrivateTmp = true;
       script = ''
         ${optionalString (cfg.passwordFile != null) ''
diff --git a/nixos/modules/services/networking/skydns.nix b/nixos/modules/services/networking/skydns.nix
index e79d6de9264..ea466de9327 100644
--- a/nixos/modules/services/networking/skydns.nix
+++ b/nixos/modules/services/networking/skydns.nix
@@ -64,7 +64,7 @@ in {
     extraConfig = mkOption {
       default = {};
       type = types.attrsOf types.str;
-      description = "Skydns attribute set of extra config options passed as environemnt variables.";
+      description = "Skydns attribute set of extra config options passed as environment variables.";
     };
   };
 
diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix
index 17f31e3a488..5365b8b9b10 100644
--- a/nixos/modules/services/networking/ssh/sshd.nix
+++ b/nixos/modules/services/networking/ssh/sshd.nix
@@ -232,6 +232,14 @@ in
         '';
       };
 
+      banner = mkOption {
+        type = types.nullOr types.lines;
+        default = null;
+        description = ''
+          Message to display to the remote user before authentication is allowed.
+        '';
+      };
+
       authorizedKeysFiles = mkOption {
         type = types.listOf types.str;
         default = [];
@@ -361,7 +369,7 @@ in
     };
 
     users.users = mkOption {
-      type = with types; loaOf (submodule userOptions);
+      type = with types; attrsOf (submodule userOptions);
     };
 
   };
@@ -474,6 +482,8 @@ in
       ''
         UsePAM yes
 
+        Banner ${if cfg.banner == null then "none" else pkgs.writeText "ssh_banner" cfg.banner}
+
         AddressFamily ${if config.networking.enableIPv6 then "any" else "inet"}
         ${concatMapStrings (port: ''
           Port ${toString port}
diff --git a/nixos/modules/services/networking/supplicant.nix b/nixos/modules/services/networking/supplicant.nix
index b5b9989ce18..20704be9b36 100644
--- a/nixos/modules/services/networking/supplicant.nix
+++ b/nixos/modules/services/networking/supplicant.nix
@@ -76,9 +76,9 @@ in
     networking.supplicant = mkOption {
       type = with types; attrsOf (submodule {
         options = {
-  
+
           configFile = {
-  
+
             path = mkOption {
               type = types.nullOr types.path;
               default = null;
@@ -89,7 +89,7 @@ in
                 precedence over options defined in <literal>configFile</literal>.
               '';
             };
-  
+
             writable = mkOption {
               type = types.bool;
               default = false;
@@ -98,9 +98,9 @@ in
                 <literal>wpa_supplicant</literal>.
               '';
             };
-  
+
           };
-  
+
           extraConf = mkOption {
             type = types.lines;
             default = "";
@@ -126,7 +126,7 @@ in
               use the <literal>configFile</literal> instead.
             '';
           };
-  
+
           extraCmdArgs = mkOption {
             type = types.str;
             default = "";
@@ -134,21 +134,21 @@ in
             description =
               "Command line arguments to add when executing <literal>wpa_supplicant</literal>.";
           };
-  
+
           driver = mkOption {
             type = types.nullOr types.str;
             default = "nl80211,wext";
             description = "Force a specific wpa_supplicant driver.";
           };
-  
+
           bridge = mkOption {
             type = types.str;
             default = "";
             description = "Name of the bridge interface that wpa_supplicant should listen at.";
           };
-  
+
           userControlled = {
-  
+
             enable = mkOption {
               type = types.bool;
               default = false;
@@ -159,20 +159,20 @@ in
                 access points.
               '';
             };
-  
+
             socketDir = mkOption {
               type = types.str;
               default = "/run/wpa_supplicant";
               description = "Directory of sockets for controlling wpa_supplicant.";
             };
-  
+
             group = mkOption {
               type = types.str;
               default = "wheel";
               example = "network";
               description = "Members of this group can control wpa_supplicant.";
             };
-  
+
           };
         };
       });
diff --git a/nixos/modules/services/networking/syncthing.nix b/nixos/modules/services/networking/syncthing.nix
index e717d78feed..28348c7893a 100644
--- a/nixos/modules/services/networking/syncthing.nix
+++ b/nixos/modules/services/networking/syncthing.nix
@@ -18,6 +18,7 @@ let
     fsWatcherEnabled = folder.watch;
     fsWatcherDelayS = folder.watchDelay;
     ignorePerms = folder.ignorePerms;
+    ignoreDelete = folder.ignoreDelete;
     versioning = folder.versioning;
   }) (filterAttrs (
     _: folder:
@@ -284,8 +285,6 @@ in {
                 });
               };
 
-
-
               rescanInterval = mkOption {
                 type = types.int;
                 default = 3600;
@@ -327,6 +326,16 @@ in {
                 '';
               };
 
+              ignoreDelete = mkOption {
+                type = types.bool;
+                default = false;
+                description = ''
+                  Whether to delete files in destination. See <link
+                  xlink:href="https://docs.syncthing.net/advanced/folder-ignoredelete.html">
+                  upstream's docs</link>.
+                '';
+              };
+
             };
           }));
         };
diff --git a/nixos/modules/services/networking/tinc.nix b/nixos/modules/services/networking/tinc.nix
index e98aafc2093..725bd9bf940 100644
--- a/nixos/modules/services/networking/tinc.nix
+++ b/nixos/modules/services/networking/tinc.nix
@@ -48,6 +48,14 @@ in
               '';
             };
 
+            rsaPrivateKeyFile = mkOption {
+              default = null;
+              type = types.nullOr types.path;
+              description = ''
+                Path of the private RSA keyfile.
+              '';
+            };
+
             debugLevel = mkOption {
               default = 0;
               type = types.addCheck types.int (l: l >= 0 && l <= 5);
@@ -139,6 +147,7 @@ in
               Name = ${if data.name == null then "$HOST" else data.name}
               DeviceType = ${data.interfaceType}
               ${optionalString (data.ed25519PrivateKeyFile != null) "Ed25519PrivateKeyFile = ${data.ed25519PrivateKeyFile}"}
+              ${optionalString (data.rsaPrivateKeyFile != null) "PrivateKeyFile = ${data.rsaPrivateKeyFile}"}
               ${optionalString (data.listenAddress != null) "ListenAddress = ${data.listenAddress}"}
               ${optionalString (data.bindToAddress != null) "BindToAddress = ${data.bindToAddress}"}
               Interface = tinc.${network}
@@ -170,12 +179,15 @@ in
           # Determine how we should generate our keys
           if type tinc >/dev/null 2>&1; then
             # Tinc 1.1+ uses the tinc helper application for key generation
-          ${if data.ed25519PrivateKeyFile != null then "  # Keyfile managed by nix" else ''
+          ${if data.ed25519PrivateKeyFile != null then "  # ed25519 Keyfile managed by nix" else ''
             # Prefer ED25519 keys (only in 1.1+)
             [ -f "/etc/tinc/${network}/ed25519_key.priv" ] || tinc -n ${network} generate-ed25519-keys
           ''}
-            # Otherwise use RSA keys
+          ${if data.rsaPrivateKeyFile != null then "  # RSA Keyfile managed by nix" else ''
             [ -f "/etc/tinc/${network}/rsa_key.priv" ] || tinc -n ${network} generate-rsa-keys 4096
+          ''}
+            # In case there isn't anything to do
+            true
           else
             # Tinc 1.0 uses the tincd application
             [ -f "/etc/tinc/${network}/rsa_key.priv" ] || tincd -n ${network} -K 4096
diff --git a/nixos/modules/services/networking/trickster.nix b/nixos/modules/services/networking/trickster.nix
index 8760dd5a938..49c945adb80 100644
--- a/nixos/modules/services/networking/trickster.nix
+++ b/nixos/modules/services/networking/trickster.nix
@@ -106,7 +106,8 @@ in
         Restart = "always";
       };
     };
+  };
 
-  };  
-}
+  meta.maintainers = with maintainers; [ _1000101 ];
 
+}
diff --git a/nixos/modules/services/networking/unifi.nix b/nixos/modules/services/networking/unifi.nix
index 4bdfa8143dc..62bcf7a1497 100644
--- a/nixos/modules/services/networking/unifi.nix
+++ b/nixos/modules/services/networking/unifi.nix
@@ -162,6 +162,8 @@ in
       unitConfig.RequiresMountsFor = stateDir;
       # This a HACK to fix missing dependencies of dynamic libs extracted from jars
       environment.LD_LIBRARY_PATH = with pkgs.stdenv; "${cc.cc.lib}/lib";
+      # Make sure package upgrades trigger a service restart
+      restartTriggers = [ cfg.unifiPackage cfg.mongodbPackage ];
 
       serviceConfig = {
         Type = "simple";
diff --git a/nixos/modules/services/networking/websockify.nix b/nixos/modules/services/networking/websockify.nix
index d9177df65bd..27cb47be12f 100644
--- a/nixos/modules/services/networking/websockify.nix
+++ b/nixos/modules/services/networking/websockify.nix
@@ -5,12 +5,12 @@ with lib;
 let cfg = config.services.networking.websockify; in {
   options = {
     services.networking.websockify = {
-      enable = mkOption {  
+      enable = mkOption {
         description = "Whether to enable websockify to forward websocket connections to TCP connections.";
 
-        default = false;   
+        default = false;
 
-        type = types.bool; 
+        type = types.bool;
       };
 
       sslCert = mkOption {
diff --git a/nixos/modules/services/networking/wg-quick.nix b/nixos/modules/services/networking/wg-quick.nix
index ff1bdeed9f4..02fe40a22a1 100644
--- a/nixos/modules/services/networking/wg-quick.nix
+++ b/nixos/modules/services/networking/wg-quick.nix
@@ -29,7 +29,7 @@ let
         type = with types; nullOr str;
         default = null;
         description = ''
-          Base64 private key generated by wg genkey.
+          Base64 private key generated by <command>wg genkey</command>.
 
           Warning: Consider using privateKeyFile instead if you do not
           want to store the key in the world-readable Nix store.
@@ -41,7 +41,7 @@ let
         type = with types; nullOr str;
         default = null;
         description = ''
-          Private key file as generated by wg genkey.
+          Private key file as generated by <command>wg genkey</command>.
         '';
       };
 
@@ -106,9 +106,9 @@ let
         description = ''
           The kernel routing table to add this interface's
           associated routes to. Setting this is useful for e.g. policy routing
-          ("ip rule") or virtual routing and forwarding ("ip vrf"). Both numeric
-          table IDs and table names (/etc/rt_tables) can be used. Defaults to
-          "main".
+          ("ip rule") or virtual routing and forwarding ("ip vrf"). Both
+          numeric table IDs and table names (/etc/rt_tables) can be used.
+          Defaults to "main".
         '';
       };
 
@@ -139,7 +139,7 @@ let
       publicKey = mkOption {
         example = "xTIBA5rboUvnH4htodjb6e697QjLERt1NAB4mZqp8Dg=";
         type = types.str;
-        description = "The base64 public key the peer.";
+        description = "The base64 public key to the peer.";
       };
 
       presharedKey = mkOption {
@@ -147,8 +147,8 @@ let
         example = "rVXs/Ni9tu3oDBLS4hOyAUAa1qTWVA3loR8eL20os3I=";
         type = with types; nullOr str;
         description = ''
-          Base64 preshared key generated by wg genpsk. Optional,
-          and may be omitted. This option adds an additional layer of
+          Base64 preshared key generated by <command>wg genpsk</command>.
+          Optional, and may be omitted. This option adds an additional layer of
           symmetric-key cryptography to be mixed into the already existing
           public-key cryptography, for post-quantum resistance.
 
@@ -162,8 +162,8 @@ let
         example = "/private/wireguard_psk";
         type = with types; nullOr str;
         description = ''
-          File pointing to preshared key as generated by wg pensk. Optional,
-          and may be omitted. This option adds an additional layer of
+          File pointing to preshared key as generated by <command>wg genpsk</command>.
+          Optional, and may be omitted. This option adds an additional layer of
           symmetric-key cryptography to be mixed into the already existing
           public-key cryptography, for post-quantum resistance.
         '';
diff --git a/nixos/modules/services/networking/wireguard.nix b/nixos/modules/services/networking/wireguard.nix
index e8f83f6dd8b..e07020349cf 100644
--- a/nixos/modules/services/networking/wireguard.nix
+++ b/nixos/modules/services/networking/wireguard.nix
@@ -91,11 +91,13 @@ let
       table = mkOption {
         default = "main";
         type = types.str;
-        description = ''The kernel routing table to add this interface's
-        associated routes to. Setting this is useful for e.g. policy routing
-        ("ip rule") or virtual routing and forwarding ("ip vrf"). Both numeric
-        table IDs and table names (/etc/rt_tables) can be used. Defaults to
-        "main".'';
+        description = ''
+          The kernel routing table to add this interface's
+          associated routes to. Setting this is useful for e.g. policy routing
+          ("ip rule") or virtual routing and forwarding ("ip vrf"). Both
+          numeric table IDs and table names (/etc/rt_tables) can be used.
+          Defaults to "main".
+        '';
       };
 
       peers = mkOption {
@@ -174,7 +176,7 @@ let
         example = "/private/wireguard_psk";
         type = with types; nullOr str;
         description = ''
-          File pointing to preshared key as generated by <command>wg pensk</command>.
+          File pointing to preshared key as generated by <command>wg genpsk</command>.
           Optional, and may be omitted. This option adds an additional layer of
           symmetric-key cryptography to be mixed into the already existing
           public-key cryptography, for post-quantum resistance.
@@ -217,7 +219,6 @@ let
 
   };
 
-
   generatePathUnit = name: values:
     assert (values.privateKey == null);
     assert (values.privateKeyFile != null);
diff --git a/nixos/modules/services/networking/wpa_supplicant.nix b/nixos/modules/services/networking/wpa_supplicant.nix
index a7dea95056a..39513987903 100644
--- a/nixos/modules/services/networking/wpa_supplicant.nix
+++ b/nixos/modules/services/networking/wpa_supplicant.nix
@@ -4,7 +4,7 @@ with lib;
 
 let
   cfg = config.networking.wireless;
-  configFile = if cfg.networks != {} then pkgs.writeText "wpa_supplicant.conf" ''
+  configFile = if cfg.networks != {} || cfg.extraConfig != "" || cfg.userControlled.enable then pkgs.writeText "wpa_supplicant.conf" ''
     ${optionalString cfg.userControlled.enable ''
       ctrl_interface=DIR=/run/wpa_supplicant GROUP=${cfg.userControlled.group}
       update_config=1''}
@@ -233,6 +233,9 @@ in {
       path = [ pkgs.wpa_supplicant ];
 
       script = ''
+        if [ -f /etc/wpa_supplicant.conf -a "/etc/wpa_supplicant.conf" != "${configFile}" ]
+        then echo >&2 "<3>/etc/wpa_supplicant.conf present but ignored. Generated ${configFile} is used instead."
+        fi
         iface_args="-s -u -D${cfg.driver} -c ${configFile}"
         ${if ifaces == [] then ''
           for i in $(cd /sys/class/net && echo *); do
diff --git a/nixos/modules/services/networking/xandikos.nix b/nixos/modules/services/networking/xandikos.nix
index 87c029156b9..3c40bb956f5 100644
--- a/nixos/modules/services/networking/xandikos.nix
+++ b/nixos/modules/services/networking/xandikos.nix
@@ -90,7 +90,7 @@ in
   config = mkIf cfg.enable (
     mkMerge [
       {
-        meta.maintainers = [ lib.maintainers."0x4A6F" ];
+        meta.maintainers = with lib.maintainers; [ _0x4A6F ];
 
         systemd.services.xandikos = {
           description = "A Simple Calendar and Contact Server";
@@ -122,7 +122,7 @@ in
             ExecStart = ''
               ${cfg.package}/bin/xandikos \
                 --directory /var/lib/xandikos \
-                --listen_address ${cfg.address} \
+                --listen-address ${cfg.address} \
                 --port ${toString cfg.port} \
                 --route-prefix ${cfg.routePrefix} \
                 ${lib.concatStringsSep " " cfg.extraOptions}
diff --git a/nixos/modules/services/networking/yggdrasil.nix b/nixos/modules/services/networking/yggdrasil.nix
index 0fe9a200a1b..a71c635c9f6 100644
--- a/nixos/modules/services/networking/yggdrasil.nix
+++ b/nixos/modules/services/networking/yggdrasil.nix
@@ -195,5 +195,8 @@ in {
     # Make yggdrasilctl available on the command line.
     environment.systemPackages = [ cfg.package ];
   });
-  meta.maintainers = with lib.maintainers; [ gazally ehmry ];
+  meta = {
+    doc = ./yggdrasil.xml;
+    maintainers = with lib.maintainers; [ gazally ehmry ];
+  };
 }
diff --git a/nixos/modules/services/networking/yggdrasil.xml b/nixos/modules/services/networking/yggdrasil.xml
new file mode 100644
index 00000000000..c012cd4a929
--- /dev/null
+++ b/nixos/modules/services/networking/yggdrasil.xml
@@ -0,0 +1,157 @@
+<?xml version="1.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="module-services-networking-yggdrasil">
+  <title>Yggdrasil</title>
+  <para>
+    <emphasis>Source:</emphasis>
+    <filename>modules/services/networking/yggdrasil/default.nix</filename>
+  </para>
+  <para>
+    <emphasis>Upstream documentation:</emphasis>
+    <link xlink:href="https://yggdrasil-network.github.io/"/>
+  </para>
+  <para>
+Yggdrasil is an early-stage implementation of a fully end-to-end encrypted,
+self-arranging IPv6 network.
+</para>
+  <section xml:id="module-services-networking-yggdrasil-configuration">
+    <title>Configuration</title>
+    <section xml:id="module-services-networking-yggdrasil-configuration-simple">
+      <title>Simple ephemeral node</title>
+      <para>
+An annotated example of a simple configuration:
+<programlisting>
+{
+  services.yggdrasil = {
+    enable = true;
+    persistentKeys = false;
+      # The NixOS module will generate new keys and a new IPv6 address each time
+      # it is started if persistentKeys is not enabled.
+
+    config = {
+      Peers = [
+        # Yggdrasil will automatically connect and "peer" with other nodes it
+        # discovers via link-local multicast annoucements. Unless this is the
+        # case (it probably isn't) a node needs peers within the existing
+        # network that it can tunnel to.
+        "tcp://1.2.3.4:1024"
+        "tcp://1.2.3.5:1024"
+        # Public peers can be found at
+        # https://github.com/yggdrasil-network/public-peers
+      ];
+    };
+  };
+}
+</programlisting>
+   </para>
+    </section>
+    <section xml:id="module-services-networking-yggdrasil-configuration-prefix">
+      <title>Persistent node with prefix</title>
+      <para>
+A node with a fixed address that announces a prefix:
+<programlisting>
+let
+  address = "210:5217:69c0:9afc:1b95:b9f:8718:c3d2";
+  prefix = "310:5217:69c0:9afc";
+  # taken from the output of "yggdrasilctl getself".
+in {
+
+  services.yggdrasil = {
+    enable = true;
+    persistentKeys = true; # Maintain a fixed public key and IPv6 address.
+    config = {
+      Peers = [ "tcp://1.2.3.4:1024" "tcp://1.2.3.5:1024" ];
+      NodeInfo = {
+        # This information is visible to the network.
+        name = config.networking.hostName;
+        location = "The North Pole";
+      };
+    };
+  };
+
+  boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = 1;
+    # Forward traffic under the prefix.
+
+  networking.interfaces.${eth0}.ipv6.addresses = [{
+    # Set a 300::/8 address on the local physical device.
+    address = prefix + "::1";
+    prefixLength = 64;
+  }];
+
+  services.radvd = {
+    # Annouce the 300::/8 prefix to eth0.
+    enable = true;
+    config = ''
+      interface eth0
+      {
+        AdvSendAdvert on;
+        AdvDefaultLifetime 0;
+        prefix ${prefix}::/64 {
+          AdvOnLink on;
+          AdvAutonomous on;
+        };
+        route 200::/8 {};
+      };
+    '';
+  };
+}
+</programlisting>
+  </para>
+    </section>
+    <section xml:id="module-services-networking-yggdrasil-configuration-container">
+      <title>Yggdrasil attached Container</title>
+      <para>
+A NixOS container attached to the Yggdrasil network via a node running on the
+host:
+        <programlisting>
+let
+  yggPrefix64 = "310:5217:69c0:9afc";
+    # Again, taken from the output of "yggdrasilctl getself".
+in
+{
+  boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = 1;
+  # Enable IPv6 forwarding.
+
+  networking = {
+    bridges.br0.interfaces = [ ];
+    # A bridge only to containers&#x2026;
+
+    interfaces.br0 = {
+      # &#x2026; configured with a prefix address.
+      ipv6.addresses = [{
+        address = "${yggPrefix64}::1";
+        prefixLength = 64;
+      }];
+    };
+  };
+
+  containers.foo = {
+    autoStart = true;
+    privateNetwork = true;
+    hostBridge = "br0";
+    # Attach the container to the bridge only.
+    config = { config, pkgs, ... }: {
+      networking.interfaces.eth0.ipv6 = {
+        addresses = [{
+          # Configure a prefix address.
+          address = "${yggPrefix64}::2";
+          prefixLength = 64;
+        }];
+        routes = [{
+          # Configure the prefix route.
+          address = "200::";
+          prefixLength = 7;
+          via = "${yggPrefix64}::1";
+        }];
+      };
+
+      services.httpd.enable = true;
+      networking.firewall.allowedTCPPorts = [ 80 ];
+    };
+  };
+
+}
+</programlisting>
+      </para>
+    </section>
+  </section>
+</chapter>
diff --git a/nixos/modules/services/scheduling/chronos.nix b/nixos/modules/services/scheduling/chronos.nix
deleted file mode 100644
index 9a8ed4c09ac..00000000000
--- a/nixos/modules/services/scheduling/chronos.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-  cfg = config.services.chronos;
-
-in {
-
-  ###### interface
-
-  options.services.chronos = {
-    enable = mkOption {
-      description = "Whether to enable graphite web frontend.";
-      default = false;
-      type = types.bool;
-    };
-
-    httpPort = mkOption {
-      description = "Chronos listening port";
-      default = 4400;
-      type = types.int;
-    };
-
-    master = mkOption {
-      description = "Chronos mesos master zookeeper address";
-      default = "zk://${head cfg.zookeeperHosts}/mesos";
-      type = types.str;
-    };
-
-    zookeeperHosts = mkOption {
-      description = "Chronos mesos zookepper addresses";
-      default = [ "localhost:2181" ];
-      type = types.listOf types.str;
-    };
-  };
-
-  ###### implementation
-
-  config = mkIf cfg.enable {
-    systemd.services.chronos = {
-      description = "Chronos Service";
-      wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" "zookeeper.service" ];
-
-      serviceConfig = {
-        ExecStart = "${pkgs.chronos}/bin/chronos --master ${cfg.master} --zk_hosts ${concatStringsSep "," cfg.zookeeperHosts} --http_port ${toString cfg.httpPort}";
-        User = "chronos";
-      };
-    };
-
-    users.users.chronos.uid = config.ids.uids.chronos;
-  };
-}
diff --git a/nixos/modules/services/scheduling/marathon.nix b/nixos/modules/services/scheduling/marathon.nix
deleted file mode 100644
index 2e0d20c64b2..00000000000
--- a/nixos/modules/services/scheduling/marathon.nix
+++ /dev/null
@@ -1,98 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-
-  cfg = config.services.marathon;
-
-in {
-
-  ###### interface
-
-  options.services.marathon = {
-    enable = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-	Whether to enable the marathon mesos framework.
-      '';
-    };
-
-    master = mkOption {
-      type = types.str;
-      default = "zk://${concatStringsSep "," cfg.zookeeperHosts}/mesos";
-      example = "zk://1.2.3.4:2181,2.3.4.5:2181,3.4.5.6:2181/mesos";
-      description = ''
-	Mesos master address. See <link xlink:href="https://mesosphere.github.io/marathon/docs/"/> for details.
-      '';
-    };
-
-    zookeeperHosts = mkOption {
-      type = types.listOf types.str;
-      default = [ "localhost:2181" ];
-      example = [ "1.2.3.4:2181" "2.3.4.5:2181" "3.4.5.6:2181" ];
-      description = ''
-	ZooKeeper hosts' addresses.
-      '';
-    };
-
-    user = mkOption {
-      type = types.str;
-      default = "marathon";
-      example = "root";
-      description = ''
-	The user that the Marathon framework will be launched as. If the user doesn't exist it will be created.
-	If you want to run apps that require root access or you want to launch apps using arbitrary users, that
-	is using the `--mesos_user` flag then you need to change this to `root`.
-      '';
-    };
-
-    httpPort = mkOption {
-      type = types.int;
-      default = 8080;
-      description = ''
-	Marathon listening port for HTTP connections.
-      '';
-    };
-
-    extraCmdLineOptions = mkOption {
-      type = types.listOf types.str;
-      default = [ ];
-      example = [ "--https_port=8443" "--zk_timeout=10000" "--marathon_store_timeout=2000" ];
-      description = ''
-	Extra command line options to pass to Marathon.
-	See <link xlink:href="https://mesosphere.github.io/marathon/docs/command-line-flags.html"/> for all possible flags.
-      '';
-    };
-
-    environment = mkOption {
-      default = { };
-      type = types.attrs;
-      example = { JAVA_OPTS = "-Xmx512m"; MESOSPHERE_HTTP_CREDENTIALS = "username:password"; };
-      description = ''
-	Environment variables passed to Marathon.
-      '';
-    };
-  };
-
-  ###### implementation
-
-  config = mkIf cfg.enable {
-    systemd.services.marathon = {
-      description = "Marathon Service";
-      environment = cfg.environment;
-      wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" "zookeeper.service" "mesos-master.service" "mesos-slave.service" ];
-
-      serviceConfig = {
-        ExecStart = "${pkgs.marathon}/bin/marathon --master ${cfg.master} --zk zk://${concatStringsSep "," cfg.zookeeperHosts}/marathon --http_port ${toString cfg.httpPort} ${concatStringsSep " " cfg.extraCmdLineOptions}";
-        User = cfg.user;
-        Restart = "always";
-        RestartSec = "2";
-      };
-    };
-
-    users.users.${cfg.user}.isSystemUser = true;
-  };
-}
diff --git a/nixos/modules/services/security/haveged.nix b/nixos/modules/services/security/haveged.nix
index eca52918881..22ece188344 100644
--- a/nixos/modules/services/security/haveged.nix
+++ b/nixos/modules/services/security/haveged.nix
@@ -21,11 +21,11 @@ in
         type = types.bool;
         default = false;
         description = ''
-          Whether to enable to haveged entropy daemon, which refills 
+          Whether to enable to haveged entropy daemon, which refills
           /dev/random when low.
         '';
       };
-      
+
       refill_threshold = mkOption {
         type = types.int;
         default = 1024;
@@ -34,16 +34,16 @@ in
           haveged should refill the entropy pool.
         '';
       };
-      
+
     };
-    
+
   };
-  
-  
+
+
   ###### implementation
-  
+
   config = mkIf cfg.enable {
-  
+
     systemd.services.haveged =
       { description = "Entropy Harvesting Daemon";
         unitConfig.Documentation = "man:haveged(8)";
@@ -63,5 +63,5 @@ in
       };
 
   };
-  
+
 }
diff --git a/nixos/modules/services/security/nginx-sso.nix b/nixos/modules/services/security/nginx-sso.nix
index d792f90abe6..50d250fc4d7 100644
--- a/nixos/modules/services/security/nginx-sso.nix
+++ b/nixos/modules/services/security/nginx-sso.nix
@@ -4,12 +4,21 @@ with lib;
 
 let
   cfg = config.services.nginx.sso;
-  pkg = getBin pkgs.nginx-sso;
+  pkg = getBin cfg.package;
   configYml = pkgs.writeText "nginx-sso.yml" (builtins.toJSON cfg.configuration);
 in {
   options.services.nginx.sso = {
     enable = mkEnableOption "nginx-sso service";
 
+    package = mkOption {
+      type = types.package;
+      default = pkgs.nginx-sso;
+      defaultText = "pkgs.nginx-sso";
+      description = ''
+        The nginx-sso package that should be used.
+      '';
+    };
+
     configuration = mkOption {
       type = types.attrsOf types.unspecified;
       default = {};
diff --git a/nixos/modules/services/security/oauth2_proxy.nix b/nixos/modules/services/security/oauth2_proxy.nix
index d5c5437329e..2f9e94bd77b 100644
--- a/nixos/modules/services/security/oauth2_proxy.nix
+++ b/nixos/modules/services/security/oauth2_proxy.nix
@@ -99,7 +99,7 @@ in
 
     ##############################################
     # PROVIDER configuration
-    # Taken from: https://github.com/pusher/oauth2_proxy/blob/master/providers/providers.go
+    # Taken from: https://github.com/oauth2-proxy/oauth2-proxy/blob/master/providers/providers.go
     provider = mkOption {
       type = types.enum [
         "google"
@@ -346,7 +346,9 @@ in
         type = types.nullOr types.str;
         default = null;
         description = ''
-          An optional cookie domain to force cookies to.
+          Optional cookie domains to force cookies to (ie: `.yourcompany.com`).
+          The longest domain matching the request's host will be used (or the shortest
+          cookie domain if there is no match).
         '';
         example = ".yourcompany.com";
       };
@@ -537,7 +539,7 @@ in
     extraConfig = mkOption {
       default = {};
       description = ''
-        Extra config to pass to oauth2_proxy.
+        Extra config to pass to oauth2-proxy.
       '';
     };
 
@@ -545,7 +547,7 @@ in
       type = types.nullOr types.path;
       default = null;
       description = ''
-        oauth2_proxy allows passing sensitive configuration via environment variables.
+        oauth2-proxy allows passing sensitive configuration via environment variables.
         Make a file that contains lines like
         OAUTH2_PROXY_CLIENT_SECRET=asdfasdfasdf.apps.googleuserscontent.com
         and specify the path here.
@@ -577,7 +579,7 @@ in
       serviceConfig = {
         User = "oauth2_proxy";
         Restart = "always";
-        ExecStart = "${cfg.package}/bin/oauth2_proxy ${configString}";
+        ExecStart = "${cfg.package}/bin/oauth2-proxy ${configString}";
         EnvironmentFile = mkIf (cfg.keyFile != null) cfg.keyFile;
       };
     };
diff --git a/nixos/modules/services/security/physlock.nix b/nixos/modules/services/security/physlock.nix
index 690eb70079d..da5c22a90a0 100644
--- a/nixos/modules/services/security/physlock.nix
+++ b/nixos/modules/services/security/physlock.nix
@@ -52,6 +52,14 @@ in
         '';
       };
 
+      lockMessage = mkOption {
+        type = types.str;
+        default = "";
+        description = ''
+          Message to show on physlock login terminal.
+        '';
+      };
+
       lockOn = {
 
         suspend = mkOption {
@@ -111,7 +119,7 @@ in
                 ++ cfg.lockOn.extraTargets;
         serviceConfig = {
           Type = "forking";
-          ExecStart = "${pkgs.physlock}/bin/physlock -d${optionalString cfg.disableSysRq "s"}";
+          ExecStart = "${pkgs.physlock}/bin/physlock -d${optionalString cfg.disableSysRq "s"}${optionalString (cfg.lockMessage != "") " -p \"${cfg.lockMessage}\""}";
         };
       };
 
diff --git a/nixos/modules/services/security/privacyidea.nix b/nixos/modules/services/security/privacyidea.nix
index d6abfd0e271..c2988858e56 100644
--- a/nixos/modules/services/security/privacyidea.nix
+++ b/nixos/modules/services/security/privacyidea.nix
@@ -234,7 +234,6 @@ in
           ExecStop = "${pkgs.coreutils}/bin/kill -INT $MAINPID";
           NotifyAccess = "main";
           KillSignal = "SIGQUIT";
-          StandardError = "syslog";
         };
       };
 
diff --git a/nixos/modules/services/security/tor.nix b/nixos/modules/services/security/tor.nix
index 18c105b2f57..38dc378887a 100644
--- a/nixos/modules/services/security/tor.nix
+++ b/nixos/modules/services/security/tor.nix
@@ -34,8 +34,8 @@ let
     User tor
     DataDirectory ${torDirectory}
     ${optionalString cfg.enableGeoIP ''
-      GeoIPFile ${pkgs.tor.geoip}/share/tor/geoip
-      GeoIPv6File ${pkgs.tor.geoip}/share/tor/geoip6
+      GeoIPFile ${cfg.package.geoip}/share/tor/geoip
+      GeoIPv6File ${cfg.package.geoip}/share/tor/geoip6
     ''}
 
     ${optint "ControlPort" cfg.controlPort}
@@ -123,6 +123,16 @@ in
         '';
       };
 
+      package = mkOption {
+        type = types.package;
+        default = pkgs.tor;
+        defaultText = "pkgs.tor";
+        example = literalExample "pkgs.tor";
+        description = ''
+          Tor package to use
+        '';
+      };
+
       enableGeoIP = mkOption {
         type = types.bool;
         default = true;
@@ -159,7 +169,7 @@ in
           type = types.bool;
           default = false;
           description = ''
-            Wheter to enable Tor control socket. Control socket is created
+            Whether to enable Tor control socket. Control socket is created
             in <literal>${torRunDirectory}/control</literal>
           '';
         };
@@ -597,7 +607,7 @@ in
             ];
           }
         '';
-        type = types.loaOf (types.submodule ({name, ...}: {
+        type = types.attrsOf (types.submodule ({name, ...}: {
           options = {
 
              name = mkOption {
@@ -749,8 +759,8 @@ in
         serviceConfig =
           { Type         = "simple";
             # Translated from the upstream contrib/dist/tor.service.in
-            ExecStartPre = "${pkgs.tor}/bin/tor -f ${torRcFile} --verify-config";
-            ExecStart    = "${pkgs.tor}/bin/tor -f ${torRcFile}";
+            ExecStartPre = "${cfg.package}/bin/tor -f ${torRcFile} --verify-config";
+            ExecStart    = "${cfg.package}/bin/tor -f ${torRcFile}";
             ExecReload   = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
             KillSignal   = "SIGINT";
             TimeoutSec   = 30;
@@ -773,7 +783,7 @@ in
           };
       };
 
-    environment.systemPackages = [ pkgs.tor ];
+    environment.systemPackages = [ cfg.package ];
 
     services.privoxy = mkIf (cfg.client.enable && cfg.client.privoxy.enable) {
       enable = true;
diff --git a/nixos/modules/services/security/usbguard.nix b/nixos/modules/services/security/usbguard.nix
index f4118eb87fc..16a90da5231 100644
--- a/nixos/modules/services/security/usbguard.nix
+++ b/nixos/modules/services/security/usbguard.nix
@@ -1,37 +1,39 @@
-{config, lib, pkgs, ... }:
+{ config, lib, pkgs, ... }:
 
 with lib;
-
 let
-
   cfg = config.services.usbguard;
 
   # valid policy options
   policy = (types.enum [ "allow" "block" "reject" "keep" "apply-policy" ]);
 
+  defaultRuleFile = "/var/lib/usbguard/rules.conf";
+
   # decide what file to use for rules
-  ruleFile = if cfg.rules != null then pkgs.writeText "usbguard-rules" cfg.rules else cfg.ruleFile;
+  ruleFile = if cfg.rules != null then pkgs.writeText "usbguard-rules" cfg.rules else defaultRuleFile;
 
   daemonConf = ''
-      # generated by nixos/modules/services/security/usbguard.nix
-      RuleFile=${ruleFile}
-      ImplicitPolicyTarget=${cfg.implictPolicyTarget}
-      PresentDevicePolicy=${cfg.presentDevicePolicy}
-      PresentControllerPolicy=${cfg.presentControllerPolicy}
-      InsertedDevicePolicy=${cfg.insertedDevicePolicy}
-      RestoreControllerDeviceState=${if cfg.restoreControllerDeviceState then "true" else "false"}
-      # this does not seem useful for endusers to change
-      DeviceManagerBackend=uevent
-      IPCAllowedUsers=${concatStringsSep " " cfg.IPCAllowedUsers}
-      IPCAllowedGroups=${concatStringsSep " " cfg.IPCAllowedGroups}
-      IPCAccessControlFiles=${cfg.IPCAccessControlFiles}
-      DeviceRulesWithPort=${if cfg.deviceRulesWithPort then "true" else "false"}
-      AuditFilePath=${cfg.auditFilePath}
-    '';
-
-    daemonConfFile = pkgs.writeText "usbguard-daemon-conf" daemonConf;
-
-in {
+    # generated by nixos/modules/services/security/usbguard.nix
+    RuleFile=${ruleFile}
+    ImplicitPolicyTarget=${cfg.implictPolicyTarget}
+    PresentDevicePolicy=${cfg.presentDevicePolicy}
+    PresentControllerPolicy=${cfg.presentControllerPolicy}
+    InsertedDevicePolicy=${cfg.insertedDevicePolicy}
+    RestoreControllerDeviceState=${if cfg.restoreControllerDeviceState then "true" else "false"}
+    # this does not seem useful for endusers to change
+    DeviceManagerBackend=uevent
+    IPCAllowedUsers=${concatStringsSep " " cfg.IPCAllowedUsers}
+    IPCAllowedGroups=${concatStringsSep " " cfg.IPCAllowedGroups}
+    IPCAccessControlFiles=/var/lib/usbguard/IPCAccessControl.d/
+    DeviceRulesWithPort=${if cfg.deviceRulesWithPort then "true" else "false"}
+    # HACK: that way audit logs still land in the journal
+    AuditFilePath=/dev/null
+  '';
+
+  daemonConfFile = pkgs.writeText "usbguard-daemon-conf" daemonConf;
+
+in
+{
 
   ###### interface
 
@@ -49,22 +51,6 @@ in {
         '';
       };
 
-      ruleFile = mkOption {
-        type = types.path;
-        default = "/var/lib/usbguard/rules.conf";
-        description = ''
-          The USBGuard daemon will use this file to load the policy rule set
-          from it and to write new rules received via the IPC interface.
-
-          Running the command <literal>usbguard generate-policy</literal> as
-          root will generate a config for your currently plugged in devices.
-          For a in depth guide consult the official documentation.
-
-          Setting the <literal>rules</literal> option will ignore the
-          <literal>ruleFile</literal> option.
-        '';
-      };
-
       rules = mkOption {
         type = types.nullOr types.lines;
         default = null;
@@ -72,16 +58,20 @@ in {
           allow with-interface equals { 08:*:* }
         '';
         description = ''
-          The USBGuard daemon will load this policy rule set. Modifying it via
-          the IPC interface won't work if you use this option, since the
-          contents of this option will be written into the nix-store it will be
-          read-only.
+          The USBGuard daemon will load this as the policy rule set.
+          As these rules are NixOS managed they are immutable and can't
+          be changed by the IPC interface.
+
+          If you do not set this option, the USBGuard daemon will load
+          it's policy rule set from <literal>${defaultRuleFile}</literal>.
+          This file can be changed manually or via the IPC interface.
 
-          You can still use <literal> usbguard generate-policy</literal> to
-          generate rules, but you would have to insert them here.
+          Running <literal>usbguard generate-policy</literal> as root will
+          generate a config for your currently plugged in devices.
 
-          Setting the <literal>rules</literal> option will ignore the
-          <literal>ruleFile</literal> option.
+          For more details see <citerefentry>
+          <refentrytitle>usbguard-rules.conf</refentrytitle>
+          <manvolnum>5</manvolnum></citerefentry>.
         '';
       };
 
@@ -155,17 +145,6 @@ in {
         '';
       };
 
-      IPCAccessControlFiles = mkOption {
-        type = types.path;
-        default = "/var/lib/usbguard/IPCAccessControl.d/";
-        description = ''
-          The files at this location will be interpreted by the daemon as IPC
-          access control definition files. See the IPC ACCESS CONTROL section
-          in <citerefentry><refentrytitle>usbguard-daemon.conf</refentrytitle>
-          <manvolnum>5</manvolnum></citerefentry> for more details.
-        '';
-      };
-
       deviceRulesWithPort = mkOption {
         type = types.bool;
         default = false;
@@ -173,14 +152,6 @@ in {
           Generate device specific rules including the "via-port" attribute.
         '';
       };
-
-      auditFilePath = mkOption {
-        type = types.path;
-        default = "/var/log/usbguard/usbguard-audit.log";
-        description = ''
-          USBGuard audit events log file path.
-        '';
-      };
     };
   };
 
@@ -197,17 +168,19 @@ in {
       wantedBy = [ "basic.target" ];
       wants = [ "systemd-udevd.service" ];
 
-      # make sure an empty rule file and required directories exist
-      preStart = ''
-        mkdir -p $(dirname "${cfg.ruleFile}") $(dirname "${cfg.auditFilePath}") "${cfg.IPCAccessControlFiles}" \
-          && ([ -f "${cfg.ruleFile}" ] || touch ${cfg.ruleFile})
-      '';
+      # make sure an empty rule file exists
+      preStart = ''[ -f "${ruleFile}" ] || touch ${ruleFile}'';
 
       serviceConfig = {
         Type = "simple";
         ExecStart = ''${cfg.package}/bin/usbguard-daemon -P -k -c ${daemonConfFile}'';
         Restart = "on-failure";
 
+        StateDirectory = [
+          "usbguard"
+          "usbguard/IPCAccessControl.d"
+        ];
+
         AmbientCapabilities = "";
         CapabilityBoundingSet = "CAP_CHOWN CAP_FOWNER";
         DeviceAllow = "/dev/null rw";
@@ -223,8 +196,8 @@ in {
         ProtectKernelModules = true;
         ProtectSystem = true;
         ReadOnlyPaths = "-/";
-        ReadWritePaths = "-/dev/shm -${dirOf cfg.auditFilePath} -/tmp -${dirOf cfg.ruleFile}";
-        RestrictAddressFamilies = "AF_UNIX AF_NETLINK";
+        ReadWritePaths = "-/dev/shm -/tmp";
+        RestrictAddressFamilies = [ "AF_UNIX" "AF_NETLINK" ];
         RestrictNamespaces = true;
         RestrictRealtime = true;
         SystemCallArchitectures = "native";
@@ -233,4 +206,9 @@ in {
       };
     };
   };
+  imports = [
+    (mkRemovedOptionModule [ "services" "usbguard" "ruleFile" ] "The usbguard module now uses ${defaultRuleFile} as ruleFile. Alternatively, use services.usbguard.rules to configure rules.")
+    (mkRemovedOptionModule [ "services" "usbguard" "IPCAccessControlFiles" ] "The usbguard module now hardcodes IPCAccessControlFiles to /var/lib/usbguard/IPCAccessControl.d.")
+    (mkRemovedOptionModule [ "services" "usbguard" "auditFilePath" ] "Removed usbguard module audit log files. Audit logs can be found in the systemd journal.")
+  ];
 }
diff --git a/nixos/modules/services/security/yubikey-agent.nix b/nixos/modules/services/security/yubikey-agent.nix
new file mode 100644
index 00000000000..2972c64a364
--- /dev/null
+++ b/nixos/modules/services/security/yubikey-agent.nix
@@ -0,0 +1,60 @@
+# Global configuration for yubikey-agent.
+
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.yubikey-agent;
+
+  # reuse the pinentryFlavor option from the gnupg module
+  pinentryFlavor = config.programs.gnupg.agent.pinentryFlavor;
+in
+{
+  ###### interface
+
+  meta.maintainers = with maintainers; [ philandstuff rawkode ];
+
+  options = {
+
+    services.yubikey-agent = {
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to start yubikey-agent when you log in.  Also sets
+          SSH_AUTH_SOCK to point at yubikey-agent.
+
+          Note that yubikey-agent will use whatever pinentry is
+          specified in programs.gnupg.agent.pinentryFlavor.
+        '';
+      };
+
+      package = mkOption {
+        type = types.package;
+        default = pkgs.yubikey-agent;
+        defaultText = "pkgs.yubikey-agent";
+        description = ''
+          The package used for the yubikey-agent daemon.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ cfg.package ];
+    systemd.packages = [ cfg.package ];
+
+    # This overrides the systemd user unit shipped with the
+    # yubikey-agent package
+    systemd.user.services.yubikey-agent = mkIf (pinentryFlavor != null) {
+      path = [ pkgs.pinentry.${pinentryFlavor} ];
+    };
+
+    environment.extraInit = ''
+      if [ -z "$SSH_AUTH_SOCK" -a -n "$XDG_RUNTIME_DIR" ]; then
+        export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/yubikey-agent/yubikey-agent.sock"
+      fi
+    '';
+  };
+}
diff --git a/nixos/modules/services/system/earlyoom.nix b/nixos/modules/services/system/earlyoom.nix
index c6a001d30ee..e29bdbe264c 100644
--- a/nixos/modules/services/system/earlyoom.nix
+++ b/nixos/modules/services/system/earlyoom.nix
@@ -106,7 +106,6 @@ in
       path = optional ecfg.enableNotifications pkgs.dbus;
       serviceConfig = {
         StandardOutput = "null";
-        StandardError = "syslog";
         ExecStart = ''
           ${pkgs.earlyoom}/bin/earlyoom \
           -m ${toString ecfg.freeMemThreshold} \
diff --git a/nixos/modules/services/torrent/transmission.nix b/nixos/modules/services/torrent/transmission.nix
index 1bfcf2de82f..014a22bb5a8 100644
--- a/nixos/modules/services/torrent/transmission.nix
+++ b/nixos/modules/services/torrent/transmission.nix
@@ -1,52 +1,54 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
 let
   cfg = config.services.transmission;
+  inherit (config.environment) etc;
   apparmor = config.security.apparmor.enable;
-
-  homeDir = cfg.home;
-  downloadDirPermissions = cfg.downloadDirPermissions;
-  downloadDir = "${homeDir}/Downloads";
-  incompleteDir = "${homeDir}/.incomplete";
-
-  settingsDir = "${homeDir}/config";
-  settingsFile = pkgs.writeText "settings.json" (builtins.toJSON fullSettings);
-
-  # for users in group "transmission" to have access to torrents
-  fullSettings = { umask = 2; download-dir = downloadDir; incomplete-dir = incompleteDir; } // cfg.settings;
-
-  preStart = pkgs.writeScript "transmission-pre-start" ''
-    #!${pkgs.runtimeShell}
-    set -ex
-    cp -f ${settingsFile} ${settingsDir}/settings.json
-  '';
+  rootDir = "/run/transmission";
+  homeDir = "/var/lib/transmission";
+  settingsDir = ".config/transmission-daemon";
+  downloadsDir = "Downloads";
+  incompleteDir = ".incomplete";
+  watchDir = "watchdir";
+  # TODO: switch to configGen.json once RFC0042 is implemented
+  settingsFile = pkgs.writeText "settings.json" (builtins.toJSON cfg.settings);
 in
 {
   options = {
     services.transmission = {
-      enable = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Whether or not to enable the headless Transmission BitTorrent daemon.
+      enable = mkEnableOption ''the headless Transmission BitTorrent daemon.
 
-          Transmission daemon can be controlled via the RPC interface using
-          transmission-remote or the WebUI (http://localhost:9091/ by default).
+        Transmission daemon can be controlled via the RPC interface using
+        transmission-remote, the WebUI (http://127.0.0.1:9091/ by default),
+        or other clients like stig or tremc.
 
-          Torrents are downloaded to ${downloadDir} by default and are
-          accessible to users in the "transmission" group.
-        '';
-      };
+        Torrents are downloaded to ${homeDir}/${downloadsDir} by default and are
+        accessible to users in the "transmission" group'';
 
-      settings = mkOption {
+      settings = mkOption rec {
+        # TODO: switch to types.config.json as prescribed by RFC0042 once it's implemented
         type = types.attrs;
+        apply = recursiveUpdate default;
         default =
           {
-            download-dir = downloadDir;
-            incomplete-dir = incompleteDir;
+            download-dir = "${cfg.home}/${downloadsDir}";
+            incomplete-dir = "${cfg.home}/${incompleteDir}";
             incomplete-dir-enabled = true;
+            watch-dir = "${cfg.home}/${watchDir}";
+            watch-dir-enabled = false;
+            message-level = 1;
+            peer-port = 51413;
+            peer-port-random-high = 65535;
+            peer-port-random-low = 49152;
+            peer-port-random-on-start = false;
+            rpc-bind-address = "127.0.0.1";
+            rpc-port = 9091;
+            script-torrent-done-enabled = false;
+            script-torrent-done-filename = "";
+            umask = 2; # 0o002 in decimal as expected by Transmission
+            utp-enabled = true;
           };
         example =
           {
@@ -56,11 +58,12 @@ in
             rpc-whitelist = "127.0.0.1,192.168.*.*";
           };
         description = ''
-          Attribute set whos fields overwrites fields in settings.json (each
-          time the service starts). String values must be quoted, integer and
+          Attribute set whose fields overwrites fields in
+          <literal>.config/transmission-daemon/settings.json</literal>
+          (each time the service starts). String values must be quoted, integer and
           boolean values must not.
 
-          See https://github.com/transmission/transmission/wiki/Editing-Configuration-Files
+          See <link xlink:href="https://github.com/transmission/transmission/wiki/Editing-Configuration-Files">Transmission's Wiki</link>
           for documentation.
         '';
       };
@@ -70,22 +73,32 @@ in
         default = "770";
         example = "775";
         description = ''
-          The permissions to set for download-dir and incomplete-dir.
-          They will be applied on every service start.
+          The permissions set by <literal>systemd.activationScripts.transmission-daemon</literal>
+          on the directories <link linkend="opt-services.transmission.settings">settings.download-dir</link>
+          and <link linkend="opt-services.transmission.settings">settings.incomplete-dir</link>.
+          Note that you may also want to change
+          <link linkend="opt-services.transmission.settings">settings.umask</link>.
         '';
       };
 
       port = mkOption {
-        type = types.int;
-        default = 9091;
-        description = "TCP port number to run the RPC/web interface.";
+        type = types.port;
+        description = ''
+          TCP port number to run the RPC/web interface.
+
+          If instead you want to change the peer port,
+          use <link linkend="opt-services.transmission.settings">settings.peer-port</link>
+          or <link linkend="opt-services.transmission.settings">settings.peer-port-random-on-start</link>.
+        '';
       };
 
       home = mkOption {
         type = types.path;
-        default = "/var/lib/transmission";
+        default = homeDir;
         description = ''
-          The directory where transmission will create files.
+          The directory where Transmission will create <literal>${settingsDir}</literal>.
+          as well as <literal>${downloadsDir}/</literal> unless <link linkend="opt-services.transmission.settings">settings.download-dir</link> is changed,
+          and <literal>${incompleteDir}/</literal> unless <link linkend="opt-services.transmission.settings">settings.incomplete-dir</link> is changed.
         '';
       };
 
@@ -100,32 +113,179 @@ in
         default = "transmission";
         description = "Group account under which Transmission runs.";
       };
+
+      credentialsFile = mkOption {
+        type = types.path;
+        description = ''
+          Path to a JSON file to be merged with the settings.
+          Useful to merge a file which is better kept out of the Nix store
+          because it contains sensible data like <link linkend="opt-services.transmission.settings">settings.rpc-password</link>.
+        '';
+        default = "/dev/null";
+        example = "/var/lib/secrets/transmission/settings.json";
+      };
+
+      openFirewall = mkEnableOption "opening of the peer port(s) in the firewall";
+
+      performanceNetParameters = mkEnableOption ''tweaking of kernel parameters
+        to open many more connections at the same time.
+
+        Note that you may also want to increase
+        <link linkend="opt-services.transmission.settings">settings.peer-limit-global</link>.
+        And be aware that these settings are quite aggressive
+        and might not suite your regular desktop use.
+        For instance, SSH sessions may time out more easily'';
     };
   };
 
   config = mkIf cfg.enable {
-    systemd.tmpfiles.rules = [
-      "d '${homeDir}' 0770 '${cfg.user}' '${cfg.group}' - -"
-      "d '${settingsDir}' 0700 '${cfg.user}' '${cfg.group}' - -"
-      "d '${fullSettings.download-dir}' '${downloadDirPermissions}' '${cfg.user}' '${cfg.group}' - -"
-      "d '${fullSettings.incomplete-dir}' '${downloadDirPermissions}' '${cfg.user}' '${cfg.group}' - -"
+    # Note that using systemd.tmpfiles would not work here
+    # because it would fail when creating a directory
+    # with a different owner than its parent directory, by saying:
+    # Detected unsafe path transition /home/foo → /home/foo/Downloads during canonicalization of /home/foo/Downloads
+    # when /home/foo is not owned by cfg.user.
+    # Note also that using an ExecStartPre= wouldn't work either
+    # because BindPaths= needs these directories before.
+    system.activationScripts.transmission-daemon = ''
+      install -d -m 700 '${cfg.home}/${settingsDir}'
+      chown -R '${cfg.user}:${cfg.group}' ${cfg.home}/${settingsDir}
+      install -d -m '${cfg.downloadDirPermissions}' -o '${cfg.user}' -g '${cfg.group}' '${cfg.settings.download-dir}'
+      '' + optionalString cfg.settings.incomplete-dir-enabled ''
+      install -d -m '${cfg.downloadDirPermissions}' -o '${cfg.user}' -g '${cfg.group}' '${cfg.settings.incomplete-dir}'
+      '';
+
+    assertions = [
+      { assertion = builtins.match "^/.*" cfg.home != null;
+        message = "`services.transmission.home' must be an absolute path.";
+      }
+      { assertion = types.path.check cfg.settings.download-dir;
+        message = "`services.transmission.settings.download-dir' must be an absolute path.";
+      }
+      { assertion = types.path.check cfg.settings.incomplete-dir;
+        message = "`services.transmission.settings.incomplete-dir' must be an absolute path.";
+      }
+      { assertion = types.path.check cfg.settings.watch-dir;
+        message = "`services.transmission.settings.watch-dir' must be an absolute path.";
+      }
+      { assertion = cfg.settings.script-torrent-done-filename == "" || types.path.check cfg.settings.script-torrent-done-filename;
+        message = "`services.transmission.settings.script-torrent-done-filename' must be an absolute path.";
+      }
+      { assertion = types.port.check cfg.settings.rpc-port;
+        message = "${toString cfg.settings.rpc-port} is not a valid port number for `services.transmission.settings.rpc-port`.";
+      }
+      # In case both port and settings.rpc-port are explicitely defined: they must be the same.
+      { assertion = !options.services.transmission.port.isDefined || cfg.port == cfg.settings.rpc-port;
+        message = "`services.transmission.port' is not equal to `services.transmission.settings.rpc-port'";
+      }
     ];
 
+    services.transmission.settings =
+      optionalAttrs options.services.transmission.port.isDefined { rpc-port = cfg.port; };
+
     systemd.services.transmission = {
       description = "Transmission BitTorrent Service";
       after = [ "network.target" ] ++ optional apparmor "apparmor.service";
-      requires = mkIf apparmor [ "apparmor.service" ];
+      requires = optional apparmor "apparmor.service";
       wantedBy = [ "multi-user.target" ];
+      environment.CURL_CA_BUNDLE = etc."ssl/certs/ca-certificates.crt".source;
 
-      # 1) Only the "transmission" user and group have access to torrents.
-      # 2) Optionally update/force specific fields into the configuration file.
-      serviceConfig.ExecStartPre = preStart;
-      serviceConfig.ExecStart = "${pkgs.transmission}/bin/transmission-daemon -f --port ${toString config.services.transmission.port} --config-dir ${settingsDir}";
-      serviceConfig.ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
-      serviceConfig.User = cfg.user;
-      serviceConfig.Group = cfg.group;
-      # NOTE: transmission has an internal umask that also must be set (in settings.json)
-      serviceConfig.UMask = "0002";
+      serviceConfig = {
+        # Use "+" because credentialsFile may not be accessible to User= or Group=.
+        ExecStartPre = [("+" + pkgs.writeShellScript "transmission-prestart" ''
+          set -eu${lib.optionalString (cfg.settings.message-level >= 3) "x"}
+          ${pkgs.jq}/bin/jq --slurp add ${settingsFile} '${cfg.credentialsFile}' |
+          install -D -m 600 -o '${cfg.user}' -g '${cfg.group}' /dev/stdin \
+           '${cfg.home}/${settingsDir}/settings.json'
+        '')];
+        ExecStart="${pkgs.transmission}/bin/transmission-daemon -f";
+        ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+        User = cfg.user;
+        Group = cfg.group;
+        # Create rootDir in the host's mount namespace.
+        RuntimeDirectory = [(baseNameOf rootDir)];
+        RuntimeDirectoryMode = "755";
+        # Avoid mounting rootDir in the own rootDir of ExecStart='s mount namespace.
+        InaccessiblePaths = ["-+${rootDir}"];
+        # This is for BindPaths= and BindReadOnlyPaths=
+        # to allow traversal of directories they create in RootDirectory=.
+        UMask = "0066";
+        # Using RootDirectory= makes it possible
+        # to use the same paths download-dir/incomplete-dir
+        # (which appear in user's interfaces) without requiring cfg.user
+        # to have access to their parent directories,
+        # by using BindPaths=/BindReadOnlyPaths=.
+        # Note that TemporaryFileSystem= could have been used instead
+        # but not without adding some BindPaths=/BindReadOnlyPaths=
+        # that would only be needed for ExecStartPre=,
+        # because RootDirectoryStartOnly=true would not help.
+        RootDirectory = rootDir;
+        RootDirectoryStartOnly = true;
+        MountAPIVFS = true;
+        BindPaths =
+          [ "${cfg.home}/${settingsDir}"
+            cfg.settings.download-dir
+          ] ++
+          optional cfg.settings.incomplete-dir-enabled
+            cfg.settings.incomplete-dir
+          ++
+          optional cfg.settings.watch-dir-enabled
+            cfg.settings.watch-dir
+          ;
+        BindReadOnlyPaths = [
+          # No confinement done of /nix/store here like in systemd-confinement.nix,
+          # an AppArmor profile is provided to get a confinement based upon paths and rights.
+          builtins.storeDir
+          "/etc"
+          ] ++
+          optional (cfg.settings.script-torrent-done-enabled &&
+                    cfg.settings.script-torrent-done-filename != "")
+            cfg.settings.script-torrent-done-filename;
+        # The following options are only for optimizing:
+        # systemd-analyze security transmission
+        AmbientCapabilities = "";
+        CapabilityBoundingSet = "";
+        # ProtectClock= adds DeviceAllow=char-rtc r
+        DeviceAllow = "";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateMounts = true;
+        PrivateNetwork = mkDefault false;
+        PrivateTmp = true;
+        PrivateUsers = true;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        # ProtectHome=true would not allow BindPaths= to work accross /home,
+        # and ProtectHome=tmpfs would break statfs(),
+        # preventing transmission-daemon to report the available free space.
+        # However, RootDirectory= is used, so this is not a security concern
+        # since there would be nothing in /home but any BindPaths= wanted by the user.
+        ProtectHome = "read-only";
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectSystem = "strict";
+        RemoveIPC = true;
+        # AF_UNIX may become usable one day:
+        # https://github.com/transmission/transmission/issues/441
+        RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SystemCallFilter = [
+          "@system-service"
+          # Groups in @system-service which do not contain a syscall
+          # listed by perf stat -e 'syscalls:sys_enter_*' transmission-daemon -f
+          # in tests, and seem likely not necessary for transmission-daemon.
+          "~@aio" "~@chown" "~@keyring" "~@memlock" "~@resources" "~@setuid" "~@timer"
+          # In the @privileged group, but reached when querying infos through RPC (eg. with stig).
+          "quotactl"
+        ];
+        SystemCallArchitectures = "native";
+        SystemCallErrorNumber = "EPERM";
+      };
     };
 
     # It's useful to have transmission in path, e.g. for remote control
@@ -133,70 +293,159 @@ in
 
     users.users = optionalAttrs (cfg.user == "transmission") ({
       transmission = {
-        name = "transmission";
         group = cfg.group;
         uid = config.ids.uids.transmission;
         description = "Transmission BitTorrent user";
-        home = homeDir;
-        createHome = true;
+        home = cfg.home;
       };
     });
 
     users.groups = optionalAttrs (cfg.group == "transmission") ({
       transmission = {
-        name = "transmission";
         gid = config.ids.gids.transmission;
       };
     });
 
-    # AppArmor profile
+    networking.firewall = mkIf cfg.openFirewall (
+      if cfg.settings.peer-port-random-on-start
+      then
+        { allowedTCPPortRanges =
+            [ { from = cfg.settings.peer-port-random-low;
+                to   = cfg.settings.peer-port-random-high;
+              }
+            ];
+          allowedUDPPortRanges =
+            [ { from = cfg.settings.peer-port-random-low;
+                to   = cfg.settings.peer-port-random-high;
+              }
+            ];
+        }
+      else
+        { allowedTCPPorts = [ cfg.settings.peer-port ];
+          allowedUDPPorts = [ cfg.settings.peer-port ];
+        }
+    );
+
+    boot.kernel.sysctl = mkMerge [
+      # Transmission uses a single UDP socket in order to implement multiple uTP sockets,
+      # and thus expects large kernel buffers for the UDP socket,
+      # https://trac.transmissionbt.com/browser/trunk/libtransmission/tr-udp.c?rev=11956.
+      # at least up to the values hardcoded here:
+      (mkIf cfg.settings.utp-enabled {
+        "net.core.rmem_max" = mkDefault "4194304"; # 4MB
+        "net.core.wmem_max" = mkDefault "1048576"; # 1MB
+      })
+      (mkIf cfg.performanceNetParameters {
+        # Increase the number of available source (local) TCP and UDP ports to 49151.
+        # Usual default is 32768 60999, ie. 28231 ports.
+        # Find out your current usage with: ss -s
+        "net.ipv4.ip_local_port_range" = "16384 65535";
+        # Timeout faster generic TCP states.
+        # Usual default is 600.
+        # Find out your current usage with: watch -n 1 netstat -nptuo
+        "net.netfilter.nf_conntrack_generic_timeout" = 60;
+        # Timeout faster established but inactive connections.
+        # Usual default is 432000.
+        "net.netfilter.nf_conntrack_tcp_timeout_established" = 600;
+        # Clear immediately TCP states after timeout.
+        # Usual default is 120.
+        "net.netfilter.nf_conntrack_tcp_timeout_time_wait" = 1;
+        # Increase the number of trackable connections.
+        # Usual default is 262144.
+        # Find out your current usage with: conntrack -C
+        "net.netfilter.nf_conntrack_max" = 1048576;
+      })
+    ];
+
     security.apparmor.profiles = mkIf apparmor [
       (pkgs.writeText "apparmor-transmission-daemon" ''
-        #include <tunables/global>
+        include <tunables/global>
 
         ${pkgs.transmission}/bin/transmission-daemon {
-          #include <abstractions/base>
-          #include <abstractions/nameservice>
-
-          ${getLib pkgs.glibc}/lib/*.so                    mr,
-          ${getLib pkgs.libevent}/lib/libevent*.so*        mr,
-          ${getLib pkgs.curl}/lib/libcurl*.so*             mr,
-          ${getLib pkgs.openssl}/lib/libssl*.so*           mr,
-          ${getLib pkgs.openssl}/lib/libcrypto*.so*        mr,
-          ${getLib pkgs.zlib}/lib/libz*.so*                mr,
-          ${getLib pkgs.libssh2}/lib/libssh2*.so*          mr,
-          ${getLib pkgs.systemd}/lib/libsystemd*.so*       mr,
-          ${getLib pkgs.xz}/lib/liblzma*.so*               mr,
-          ${getLib pkgs.libgcrypt}/lib/libgcrypt*.so*      mr,
-          ${getLib pkgs.libgpgerror}/lib/libgpg-error*.so* mr,
-          ${getLib pkgs.nghttp2}/lib/libnghttp2*.so*       mr,
-          ${getLib pkgs.c-ares}/lib/libcares*.so*          mr,
-          ${getLib pkgs.libcap}/lib/libcap*.so*            mr,
-          ${getLib pkgs.attr}/lib/libattr*.so*             mr,
-          ${getLib pkgs.lz4}/lib/liblz4*.so*               mr,
-          ${getLib pkgs.libkrb5}/lib/lib*.so*              mr,
-          ${getLib pkgs.keyutils}/lib/libkeyutils*.so*     mr,
-          ${getLib pkgs.utillinuxMinimal.out}/lib/libblkid.so.* mr,
-          ${getLib pkgs.utillinuxMinimal.out}/lib/libmount.so.* mr,
-          ${getLib pkgs.utillinuxMinimal.out}/lib/libuuid.so.* mr,
-          ${getLib pkgs.gcc.cc.lib}/lib/libstdc++.so.* mr,
-          ${getLib pkgs.gcc.cc.lib}/lib/libgcc_s.so.* mr,
-
-          @{PROC}/sys/kernel/random/uuid   r,
-          @{PROC}/sys/vm/overcommit_memory r,
-
-          ${pkgs.openssl.out}/etc/**                     r,
-          ${pkgs.transmission}/share/transmission/** r,
-
-          owner ${settingsDir}/** rw,
-
-          ${fullSettings.download-dir}/** rw,
-          ${optionalString fullSettings.incomplete-dir-enabled ''
-            ${fullSettings.incomplete-dir}/** rw,
+          include <abstractions/base>
+          include <abstractions/nameservice>
+
+          # NOTE: https://github.com/NixOS/nixpkgs/pull/93457
+          # will remove the need for these by fixing <abstractions/base>
+          r ${etc."hosts".source},
+          r /etc/ld-nix.so.preload,
+          ${lib.optionalString (builtins.hasAttr "ld-nix.so.preload" etc) ''
+            r ${etc."ld-nix.so.preload".source},
+            ${concatMapStrings (p: optionalString (p != "") ("mr ${p},\n"))
+              (splitString "\n" config.environment.etc."ld-nix.so.preload".text)}
           ''}
+          r ${etc."ssl/certs/ca-certificates.crt".source},
+          r ${pkgs.tzdata}/share/zoneinfo/**,
+          r ${pkgs.stdenv.cc.libc}/share/i18n/**,
+          r ${pkgs.stdenv.cc.libc}/share/locale/**,
+
+          mr ${getLib pkgs.stdenv.cc.cc}/lib/*.so*,
+          mr ${getLib pkgs.stdenv.cc.libc}/lib/*.so*,
+          mr ${getLib pkgs.attr}/lib/libattr*.so*,
+          mr ${getLib pkgs.c-ares}/lib/libcares*.so*,
+          mr ${getLib pkgs.curl}/lib/libcurl*.so*,
+          mr ${getLib pkgs.keyutils}/lib/libkeyutils*.so*,
+          mr ${getLib pkgs.libcap}/lib/libcap*.so*,
+          mr ${getLib pkgs.libevent}/lib/libevent*.so*,
+          mr ${getLib pkgs.libgcrypt}/lib/libgcrypt*.so*,
+          mr ${getLib pkgs.libgpgerror}/lib/libgpg-error*.so*,
+          mr ${getLib pkgs.libkrb5}/lib/lib*.so*,
+          mr ${getLib pkgs.libssh2}/lib/libssh2*.so*,
+          mr ${getLib pkgs.lz4}/lib/liblz4*.so*,
+          mr ${getLib pkgs.nghttp2}/lib/libnghttp2*.so*,
+          mr ${getLib pkgs.openssl}/lib/libcrypto*.so*,
+          mr ${getLib pkgs.openssl}/lib/libssl*.so*,
+          mr ${getLib pkgs.systemd}/lib/libsystemd*.so*,
+          mr ${getLib pkgs.utillinuxMinimal.out}/lib/libblkid.so*,
+          mr ${getLib pkgs.utillinuxMinimal.out}/lib/libmount.so*,
+          mr ${getLib pkgs.utillinuxMinimal.out}/lib/libuuid.so*,
+          mr ${getLib pkgs.xz}/lib/liblzma*.so*,
+          mr ${getLib pkgs.zlib}/lib/libz*.so*,
+
+          r @{PROC}/sys/kernel/random/uuid,
+          r @{PROC}/sys/vm/overcommit_memory,
+          # @{pid} is not a kernel variable yet but a regexp
+          #r @{PROC}/@{pid}/environ,
+          r @{PROC}/@{pid}/mounts,
+          rwk /tmp/tr_session_id_*,
+
+          r ${pkgs.openssl.out}/etc/**,
+          r ${config.systemd.services.transmission.environment.CURL_CA_BUNDLE},
+          r ${pkgs.transmission}/share/transmission/**,
+
+          owner rw ${cfg.home}/${settingsDir}/**,
+          rw ${cfg.settings.download-dir}/**,
+          ${optionalString cfg.settings.incomplete-dir-enabled ''
+            rw ${cfg.settings.incomplete-dir}/**,
+          ''}
+          ${optionalString cfg.settings.watch-dir-enabled ''
+            rw ${cfg.settings.watch-dir}/**,
+          ''}
+          profile dirs {
+            rw ${cfg.settings.download-dir}/**,
+            ${optionalString cfg.settings.incomplete-dir-enabled ''
+              rw ${cfg.settings.incomplete-dir}/**,
+            ''}
+            ${optionalString cfg.settings.watch-dir-enabled ''
+              rw ${cfg.settings.watch-dir}/**,
+            ''}
+          }
+
+          ${optionalString (cfg.settings.script-torrent-done-enabled &&
+                            cfg.settings.script-torrent-done-filename != "") ''
+            # Stack transmission_directories profile on top of
+            # any existing profile for script-torrent-done-filename
+            # FIXME: to be tested as I'm not sure it works well with NoNewPrivileges=
+            # https://gitlab.com/apparmor/apparmor/-/wikis/AppArmorStacking#seccomp-and-no_new_privs
+            px ${cfg.settings.script-torrent-done-filename} -> &@{dirs},
+          ''}
+
+          # FIXME: enable customizing using https://github.com/NixOS/nixpkgs/pull/93457
+          # include <local/transmission-daemon>
         }
       '')
     ];
   };
 
+  meta.maintainers = with lib.maintainers; [ julm ];
 }
diff --git a/nixos/modules/services/video/mirakurun.nix b/nixos/modules/services/video/mirakurun.nix
new file mode 100644
index 00000000000..675b67f6ebf
--- /dev/null
+++ b/nixos/modules/services/video/mirakurun.nix
@@ -0,0 +1,165 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.mirakurun;
+  mirakurun = pkgs.mirakurun;
+  username = config.users.users.mirakurun.name;
+  groupname = config.users.users.mirakurun.group;
+  settingsFmt = pkgs.formats.yaml {};
+in
+  {
+    options = {
+      services.mirakurun = {
+        enable = mkEnableOption mirakurun.meta.description;
+
+        port = mkOption {
+          type = with types; nullOr port;
+          default = 40772;
+          description = ''
+            Port to listen on. If null, it won't listen on any port.
+          '';
+        };
+
+        openFirewall = mkOption {
+          type = types.bool;
+          default = false;
+          description = ''
+            Open ports in the firewall for Mirakurun.
+          '';
+        };
+
+        serverSettings = mkOption {
+          type = settingsFmt.type;
+          default = {};
+          example = literalExample ''
+            {
+              highWaterMark = 25165824;
+              overflowTimeLimit = 30000;
+            };
+          '';
+          description = ''
+            Options for server.yml.
+
+            Documentation:
+            <link xlink:href="https://github.com/Chinachu/Mirakurun/blob/master/doc/Configuration.md"/>
+          '';
+        };
+
+        tunerSettings = mkOption {
+          type = with types; nullOr settingsFmt.type;
+          default = null;
+          example = literalExample ''
+            [
+              {
+                name = "tuner-name";
+                types = [ "GR" "BS" "CS" "SKY" ];
+                dvbDevicePath = "/dev/dvb/adapterX/dvrX";
+              }
+            ];
+          '';
+          description = ''
+            Options which are added to tuners.yml. If none is specified, it will
+            automatically be generated at runtime.
+
+            Documentation:
+            <link xlink:href="https://github.com/Chinachu/Mirakurun/blob/master/doc/Configuration.md"/>
+          '';
+        };
+
+        channelSettings = mkOption {
+          type = with types; nullOr settingsFmt.type;
+          default = null;
+          example = literalExample ''
+            [
+              {
+                name = "channel";
+                types = "GR";
+                channel = "0";
+              }
+            ];
+          '';
+          description = ''
+            Options which are added to channels.yml. If none is specified, it
+            will automatically be generated at runtime.
+
+            Documentation:
+            <link xlink:href="https://github.com/Chinachu/Mirakurun/blob/master/doc/Configuration.md"/>
+          '';
+        };
+      };
+    };
+
+    config = mkIf cfg.enable {
+      environment.systemPackages = [ mirakurun ];
+      environment.etc = {
+        "mirakurun/server.yml".source = settingsFmt.generate "server.yml" cfg.serverSettings;
+        "mirakurun/tuners.yml" = mkIf (cfg.tunerSettings != null) {
+          source = settingsFmt.generate "tuners.yml" cfg.tunerSettings;
+          mode = "0644";
+          user = username;
+          group = groupname;
+        };
+        "mirakurun/channels.yml" = mkIf (cfg.channelSettings != null) {
+          source = settingsFmt.generate "channels.yml" cfg.channelSettings;
+          mode = "0644";
+          user = username;
+          group = groupname;
+        };
+      };
+
+      networking.firewall = mkIf cfg.openFirewall {
+        allowedTCPPorts = mkIf (cfg.port != null) [ cfg.port ];
+      };
+
+      users.users.mirakurun = {
+        description = "Mirakurun user";
+        group = "video";
+        isSystemUser = true;
+      };
+
+      services.mirakurun.serverSettings = {
+        logLevel = mkDefault 2;
+        path = mkDefault "/var/run/mirakurun/mirakurun.sock";
+        port = mkIf (cfg.port != null) (mkDefault cfg.port);
+      };
+
+      systemd.tmpfiles.rules = [
+        "d '/etc/mirakurun' - ${username} ${groupname} - -"
+      ];
+
+      systemd.services.mirakurun = {
+        description = mirakurun.meta.description;
+        wantedBy = [ "multi-user.target" ];
+        after = [ "network.target" ];
+        serviceConfig = {
+          ExecStart = "${mirakurun}/bin/mirakurun";
+          User = username;
+          Group = groupname;
+          RuntimeDirectory="mirakurun";
+          StateDirectory="mirakurun";
+          Nice = -10;
+          IOSchedulingClass = "realtime";
+          IOSchedulingPriority = 7;
+        };
+
+        environment = {
+          SERVER_CONFIG_PATH = "/etc/mirakurun/server.yml";
+          TUNERS_CONFIG_PATH = "/etc/mirakurun/tuners.yml";
+          CHANNELS_CONFIG_PATH = "/etc/mirakurun/channels.yml";
+          SERVICES_DB_PATH = "/var/lib/mirakurun/services.json";
+          PROGRAMS_DB_PATH = "/var/lib/mirakurun/programs.json";
+          NODE_ENV = "production";
+        };
+
+        restartTriggers = let
+          getconf = target: config.environment.etc."mirakurun/${target}.yml".source;
+          targets = [
+            "server"
+          ] ++ optional (cfg.tunerSettings != null) "tuners"
+            ++ optional (cfg.channelSettings != null) "channels";
+        in (map getconf targets);
+      };
+    };
+  }
diff --git a/nixos/modules/services/wayland/cage.nix b/nixos/modules/services/wayland/cage.nix
index c59ca9983a6..14d84c4ce0f 100644
--- a/nixos/modules/services/wayland/cage.nix
+++ b/nixos/modules/services/wayland/cage.nix
@@ -73,8 +73,6 @@ in {
         TTYVTDisallocate = "yes";
         # Fail to start if not controlling the virtual terminal.
         StandardInput = "tty-fail";
-        StandardOutput = "syslog";
-        StandardError = "syslog";
         # Set up a full (custom) user session for the user, required by Cage.
         PAMName = "cage";
       };
@@ -84,6 +82,7 @@ in {
       auth    required pam_unix.so nullok
       account required pam_unix.so
       session required pam_unix.so
+      session required pam_env.so conffile=${config.system.build.pamEnvironment} readenv=0
       session required ${pkgs.systemd}/lib/security/pam_systemd.so
     '';
 
diff --git a/nixos/modules/services/web-apps/codimd.nix b/nixos/modules/services/web-apps/codimd.nix
index 751f81649dd..ab922a38e5c 100644
--- a/nixos/modules/services/web-apps/codimd.nix
+++ b/nixos/modules/services/web-apps/codimd.nix
@@ -93,7 +93,7 @@ in
           type = types.bool;
           default = true;
           description = ''
-            Wheter to enable HSTS if HTTPS is also enabled.
+            Whether to enable HSTS if HTTPS is also enabled.
           '';
         };
         maxAgeSeconds = mkOption {
@@ -385,7 +385,7 @@ in
         type = types.bool;
         default = true;
         description = ''
-          Wether to enable email registration.
+          Whether to enable email registration.
         '';
       };
       allowGravatar = mkOption {
diff --git a/nixos/modules/services/web-apps/dokuwiki.nix b/nixos/modules/services/web-apps/dokuwiki.nix
index 33a828fa2cb..d9ebb3a9880 100644
--- a/nixos/modules/services/web-apps/dokuwiki.nix
+++ b/nixos/modules/services/web-apps/dokuwiki.nix
@@ -2,7 +2,7 @@
 
 let
 
-  inherit (lib) mkEnableOption mkForce mkIf mkMerge mkOption optionalAttrs recursiveUpdate types;
+  inherit (lib) mkEnableOption mkForce mkIf mkMerge mkOption optionalAttrs recursiveUpdate types maintainers;
   inherit (lib) concatMapStringsSep flatten mapAttrs mapAttrs' mapAttrsToList nameValuePair concatMapStringSep;
 
   eachSite = config.services.dokuwiki;
@@ -95,7 +95,7 @@ let
 
       aclFile = mkOption {
         type = with types; nullOr str;
-        default = if (config.aclUse && config.acl == null) then "/var/lib/dokuwiki/${name}/users.auth.php" else null;
+        default = if (config.aclUse && config.acl == null) then "/var/lib/dokuwiki/${name}/acl.auth.php" else null;
         description = ''
           Location of the dokuwiki acl rules. Mutually exclusive with services.dokuwiki.acl
           Mutually exclusive with services.dokuwiki.acl which is preferred.
@@ -249,22 +249,19 @@ let
       nginx = mkOption {
         type = types.submodule (
           recursiveUpdate
-            (import ../web-servers/nginx/vhost-options.nix { inherit config lib; })
-            {
-              # Enable encryption by default,
-              options.forceSSL.default = true;
-              options.enableACME.default = true;
-            }
+            (import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) {}
         );
-        default = {forceSSL = true; enableACME = true;};
+        default = {};
         example = {
           serverAliases = [
             "wiki.\${config.networking.domain}"
           ];
-          enableACME = false;
+          # 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 which already has sensible defaults for DokuWiki.
+          With this option, you can customize the nginx virtualHost settings.
         '';
       };
     };
@@ -276,7 +273,7 @@ in
     services.dokuwiki = mkOption {
       type = types.attrsOf (types.submodule siteOpts);
       default = {};
-      description = "Sepcification of one or more dokuwiki sites to service.";
+      description = "Sepcification of one or more dokuwiki sites to serve.";
     };
   };
 
@@ -321,7 +318,7 @@ in
       enable = true;
       virtualHosts = mapAttrs (hostName: cfg:  mkMerge [ cfg.nginx {
         root = mkForce "${pkg hostName cfg}/share/dokuwiki";
-        extraConfig = "fastcgi_param HTTPS on;";
+        extraConfig = lib.optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "fastcgi_param HTTPS on;";
 
         locations."~ /(conf/|bin/|inc/|install.php)" = {
           extraConfig = "deny all;";
@@ -359,7 +356,7 @@ in
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
               fastcgi_param REDIRECT_STATUS 200;
               fastcgi_pass unix:${config.services.phpfpm.pools."dokuwiki-${hostName}".socket};
-              fastcgi_param HTTPS on;
+              ${lib.optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "fastcgi_param HTTPS on;"}
           '';
         };
       }]) eachSite;
@@ -385,4 +382,7 @@ in
       isSystemUser = true;
     };
   };
+
+  meta.maintainers = with maintainers; [ _1000101 ];
+
 }
diff --git a/nixos/modules/services/web-apps/jitsi-meet.nix b/nixos/modules/services/web-apps/jitsi-meet.nix
new file mode 100644
index 00000000000..3b2b2440491
--- /dev/null
+++ b/nixos/modules/services/web-apps/jitsi-meet.nix
@@ -0,0 +1,333 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.jitsi-meet;
+
+  # The configuration files are JS of format "var <<string>> = <<JSON>>;". In order to
+  # override only some settings, we need to extract the JSON, use jq to merge it with
+  # the config provided by user, and then reconstruct the file.
+  overrideJs =
+    source: varName: userCfg: appendExtra:
+    let
+      extractor = pkgs.writeText "extractor.js" ''
+        var fs = require("fs");
+        eval(fs.readFileSync(process.argv[2], 'utf8'));
+        process.stdout.write(JSON.stringify(eval(process.argv[3])));
+      '';
+      userJson = pkgs.writeText "user.json" (builtins.toJSON userCfg);
+    in (pkgs.runCommand "${varName}.js" { } ''
+      ${pkgs.nodejs}/bin/node ${extractor} ${source} ${varName} > default.json
+      (
+        echo "var ${varName} = "
+        ${pkgs.jq}/bin/jq -s '.[0] * .[1]' default.json ${userJson}
+        echo ";"
+        echo ${escapeShellArg appendExtra}
+      ) > $out
+    '');
+
+  # Essential config - it's probably not good to have these as option default because
+  # types.attrs doesn't do merging. Let's merge explicitly, can still be overriden if
+  # user desires.
+  defaultCfg = {
+    hosts = {
+      domain = cfg.hostName;
+      muc = "conference.${cfg.hostName}";
+      focus = "focus.${cfg.hostName}";
+    };
+    bosh = "//${cfg.hostName}/http-bind";
+  };
+in
+{
+  options.services.jitsi-meet = with types; {
+    enable = mkEnableOption "Jitsi Meet - Secure, Simple and Scalable Video Conferences";
+
+    hostName = mkOption {
+      type = str;
+      example = "meet.example.org";
+      description = ''
+        Hostname of the Jitsi Meet instance.
+      '';
+    };
+
+    config = mkOption {
+      type = attrs;
+      default = { };
+      example = literalExample ''
+        {
+          enableWelcomePage = false;
+          defaultLang = "fi";
+        }
+      '';
+      description = ''
+        Client-side web application settings that override the defaults in <filename>config.js</filename>.
+
+        See <link xlink:href="https://github.com/jitsi/jitsi-meet/blob/master/config.js" /> for default
+        configuration with comments.
+      '';
+    };
+
+    extraConfig = mkOption {
+      type = lines;
+      default = "";
+      description = ''
+        Text to append to <filename>config.js</filename> web application config file.
+
+        Can be used to insert JavaScript logic to determine user's region in cascading bridges setup.
+      '';
+    };
+
+    interfaceConfig = mkOption {
+      type = attrs;
+      default = { };
+      example = literalExample ''
+        {
+          SHOW_JITSI_WATERMARK = false;
+          SHOW_WATERMARK_FOR_GUESTS = false;
+        }
+      '';
+      description = ''
+        Client-side web-app interface settings that override the defaults in <filename>interface_config.js</filename>.
+
+        See <link xlink:href="https://github.com/jitsi/jitsi-meet/blob/master/interface_config.js" /> for
+        default configuration with comments.
+      '';
+    };
+
+    videobridge = {
+      enable = mkOption {
+        type = bool;
+        default = true;
+        description = ''
+          Whether to enable Jitsi Videobridge instance and configure it to connect to Prosody.
+
+          Additional configuration is possible with <option>services.jitsi-videobridge</option>.
+        '';
+      };
+
+      passwordFile = mkOption {
+        type = nullOr str;
+        default = null;
+        example = "/run/keys/videobridge";
+        description = ''
+          File containing password to the Prosody account for videobridge.
+
+          If <literal>null</literal>, a file with password will be generated automatically. Setting
+          this option is useful if you plan to connect additional videobridges to the XMPP server.
+        '';
+      };
+    };
+
+    jicofo.enable = mkOption {
+      type = bool;
+      default = true;
+      description = ''
+        Whether to enable JiCoFo instance and configure it to connect to Prosody.
+
+        Additional configuration is possible with <option>services.jicofo</option>.
+      '';
+    };
+
+    nginx.enable = mkOption {
+      type = bool;
+      default = true;
+      description = ''
+        Whether to enable nginx virtual host that will serve the javascript application and act as
+        a proxy for the XMPP server. Further nginx configuration can be done by adapting
+        <option>services.nginx.virtualHosts.&lt;hostName&gt;</option>.
+        When this is enabled, ACME will be used to retrieve a TLS certificate by default. To disable
+        this, set the <option>services.nginx.virtualHosts.&lt;hostName&gt;.enableACME</option> to
+        <literal>false</literal> and if appropriate do the same for
+        <option>services.nginx.virtualHosts.&lt;hostName&gt;.forceSSL</option>.
+      '';
+    };
+
+    prosody.enable = mkOption {
+      type = bool;
+      default = true;
+      description = ''
+        Whether to configure Prosody to relay XMPP messages between Jitsi Meet components. Turn this
+        off if you want to configure it manually.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    services.prosody = mkIf cfg.prosody.enable {
+      enable = mkDefault true;
+      xmppComplianceSuite = mkDefault false;
+      modules = {
+        admin_adhoc = mkDefault false;
+        bosh = mkDefault true;
+        ping = mkDefault true;
+        roster = mkDefault true;
+        saslauth = mkDefault true;
+        tls = mkDefault true;
+      };
+      muc = [
+        {
+          domain = "conference.${cfg.hostName}";
+          name = "Jitsi Meet MUC";
+          roomLocking = false;
+          roomDefaultPublicJids = true;
+          extraConfig = ''
+            storage = "memory"
+          '';
+        }
+        {
+          domain = "internal.${cfg.hostName}";
+          name = "Jitsi Meet Videobridge MUC";
+          extraConfig = ''
+            storage = "memory"
+            admins = { "focus@auth.${cfg.hostName}", "jvb@auth.${cfg.hostName}" }
+          '';
+          #-- muc_room_cache_size = 1000
+        }
+      ];
+      extraModules = [ "pubsub" ];
+      extraConfig = mkAfter ''
+        Component "focus.${cfg.hostName}"
+          component_secret = os.getenv("JICOFO_COMPONENT_SECRET")
+      '';
+      virtualHosts.${cfg.hostName} = {
+        enabled = true;
+        domain = cfg.hostName;
+        extraConfig = ''
+          authentication = "anonymous"
+          c2s_require_encryption = false
+          admins = { "focus@auth.${cfg.hostName}" }
+        '';
+        ssl = {
+          cert = "/var/lib/jitsi-meet/jitsi-meet.crt";
+          key = "/var/lib/jitsi-meet/jitsi-meet.key";
+        };
+      };
+      virtualHosts."auth.${cfg.hostName}" = {
+        enabled = true;
+        domain = "auth.${cfg.hostName}";
+        extraConfig = ''
+          authentication = "internal_plain"
+        '';
+        ssl = {
+          cert = "/var/lib/jitsi-meet/jitsi-meet.crt";
+          key = "/var/lib/jitsi-meet/jitsi-meet.key";
+        };
+      };
+    };
+    systemd.services.prosody.serviceConfig = mkIf cfg.prosody.enable {
+      EnvironmentFile = [ "/var/lib/jitsi-meet/secrets-env" ];
+      SupplementaryGroups = [ "jitsi-meet" ];
+    };
+
+    users.groups.jitsi-meet = {};
+    systemd.tmpfiles.rules = [
+      "d '/var/lib/jitsi-meet' 0750 root jitsi-meet - -"
+    ];
+
+    systemd.services.jitsi-meet-init-secrets = {
+      wantedBy = [ "multi-user.target" ];
+      before = [ "jicofo.service" "jitsi-videobridge2.service" ] ++ (optional cfg.prosody.enable "prosody.service");
+      serviceConfig = {
+        Type = "oneshot";
+      };
+
+      script = let
+        secrets = [ "jicofo-component-secret" "jicofo-user-secret" ] ++ (optional (cfg.videobridge.passwordFile == null) "videobridge-secret");
+        videobridgeSecret = if cfg.videobridge.passwordFile != null then cfg.videobridge.passwordFile else "/var/lib/jitsi-meet/videobridge-secret";
+      in
+      ''
+        cd /var/lib/jitsi-meet
+        ${concatMapStringsSep "\n" (s: ''
+          if [ ! -f ${s} ]; then
+            tr -dc a-zA-Z0-9 </dev/urandom | head -c 64 > ${s}
+            chown root:jitsi-meet ${s}
+            chmod 640 ${s}
+          fi
+        '') secrets}
+
+        # for easy access in prosody
+        echo "JICOFO_COMPONENT_SECRET=$(cat jicofo-component-secret)" > secrets-env
+        chown root:jitsi-meet secrets-env
+        chmod 640 secrets-env
+      ''
+      + optionalString cfg.prosody.enable ''
+        ${config.services.prosody.package}/bin/prosodyctl register focus auth.${cfg.hostName} "$(cat /var/lib/jitsi-meet/jicofo-user-secret)"
+        ${config.services.prosody.package}/bin/prosodyctl register jvb auth.${cfg.hostName} "$(cat ${videobridgeSecret})"
+
+        # generate self-signed certificates
+        if [ ! -f /var/lib/jitsi-meet.crt ]; then
+          ${getBin pkgs.openssl}/bin/openssl req \
+            -x509 \
+            -newkey rsa:4096 \
+            -keyout /var/lib/jitsi-meet/jitsi-meet.key \
+            -out /var/lib/jitsi-meet/jitsi-meet.crt \
+            -days 36500 \
+            -nodes \
+            -subj '/CN=${cfg.hostName}/CN=auth.${cfg.hostName}'
+          chmod 640 /var/lib/jitsi-meet/jitsi-meet.{crt,key}
+          chown root:jitsi-meet /var/lib/jitsi-meet/jitsi-meet.{crt,key}
+        fi
+      '';
+    };
+
+    services.nginx = mkIf cfg.nginx.enable {
+      enable = mkDefault true;
+      virtualHosts.${cfg.hostName} = {
+        enableACME = mkDefault true;
+        forceSSL = mkDefault true;
+        root = pkgs.jitsi-meet;
+        extraConfig = ''
+          ssi on;
+        '';
+        locations."@root_path".extraConfig = ''
+          rewrite ^/(.*)$ / break;
+        '';
+        locations."~ ^/([^/\\?&:'\"]+)$".tryFiles = "$uri @root_path";
+        locations."=/http-bind" = {
+          proxyPass = "http://localhost:5280/http-bind";
+          extraConfig = ''
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+            proxy_set_header Host $host;
+          '';
+        };
+        locations."=/external_api.js" = mkDefault {
+          alias = "${pkgs.jitsi-meet}/libs/external_api.min.js";
+        };
+        locations."=/config.js" = mkDefault {
+          alias = overrideJs "${pkgs.jitsi-meet}/config.js" "config" (recursiveUpdate defaultCfg cfg.config) cfg.extraConfig;
+        };
+        locations."=/interface_config.js" = mkDefault {
+          alias = overrideJs "${pkgs.jitsi-meet}/interface_config.js" "interfaceConfig" cfg.interfaceConfig "";
+        };
+      };
+    };
+
+    services.jitsi-videobridge = mkIf cfg.videobridge.enable {
+      enable = true;
+      xmppConfigs."localhost" = {
+        userName = "jvb";
+        domain = "auth.${cfg.hostName}";
+        passwordFile = "/var/lib/jitsi-meet/videobridge-secret";
+        mucJids = "jvbbrewery@internal.${cfg.hostName}";
+        disableCertificateVerification = true;
+      };
+    };
+
+    services.jicofo = mkIf cfg.jicofo.enable {
+      enable = true;
+      xmppHost = "localhost";
+      xmppDomain = cfg.hostName;
+      userDomain = "auth.${cfg.hostName}";
+      userName = "focus";
+      userPasswordFile = "/var/lib/jitsi-meet/jicofo-user-secret";
+      componentPasswordFile = "/var/lib/jitsi-meet/jicofo-component-secret";
+      bridgeMuc = "jvbbrewery@internal.${cfg.hostName}";
+      config = {
+        "org.jitsi.jicofo.ALWAYS_TRUST_MODE_ENABLED" = "true";
+      };
+    };
+  };
+
+  meta.maintainers = lib.teams.jitsi.members;
+}
diff --git a/nixos/modules/services/web-apps/moodle.nix b/nixos/modules/services/web-apps/moodle.nix
index 1196780cf6e..f45eaa24d54 100644
--- a/nixos/modules/services/web-apps/moodle.nix
+++ b/nixos/modules/services/web-apps/moodle.nix
@@ -40,7 +40,7 @@ let
   $CFG->disableupdateautodeploy = true;
 
   $CFG->pathtogs = '${pkgs.ghostscript}/bin/gs';
-  $CFG->pathtophp = '${pkgs.php}/bin/php';
+  $CFG->pathtophp = '${phpExt}/bin/php';
   $CFG->pathtodu = '${pkgs.coreutils}/bin/du';
   $CFG->aspellpath = '${pkgs.aspell}/bin/aspell';
   $CFG->pathtodot = '${pkgs.graphviz}/bin/dot';
@@ -55,6 +55,9 @@ let
 
   mysqlLocal = cfg.database.createLocally && cfg.database.type == "mysql";
   pgsqlLocal = cfg.database.createLocally && cfg.database.type == "pgsql";
+
+  phpExt = pkgs.php.withExtensions
+        ({ enabled, all }: with all; [ iconv mbstring curl openssl tokenizer xmlrpc soap ctype zip gd simplexml dom  intl json sqlite3 pgsql pdo_sqlite pdo_pgsql pdo_odbc pdo_mysql pdo mysqli session zlib xmlreader fileinfo ]);
 in
 {
   # interface
@@ -222,6 +225,7 @@ in
 
     services.phpfpm.pools.moodle = {
       inherit user group;
+      phpPackage = phpExt;
       phpEnv.MOODLE_CONFIG = "${moodleConfig}";
       phpOptions = ''
         zend_extension = opcache.so
@@ -263,13 +267,13 @@ in
       after = optional mysqlLocal "mysql.service" ++ optional pgsqlLocal "postgresql.service";
       environment.MOODLE_CONFIG = moodleConfig;
       script = ''
-        ${pkgs.php}/bin/php ${cfg.package}/share/moodle/admin/cli/check_database_schema.php && rc=$? || rc=$?
+        ${phpExt}/bin/php ${cfg.package}/share/moodle/admin/cli/check_database_schema.php && rc=$? || rc=$?
 
-        [ "$rc" == 1 ] && ${pkgs.php}/bin/php ${cfg.package}/share/moodle/admin/cli/upgrade.php \
+        [ "$rc" == 1 ] && ${phpExt}/bin/php ${cfg.package}/share/moodle/admin/cli/upgrade.php \
           --non-interactive \
           --allow-unstable
 
-        [ "$rc" == 2 ] && ${pkgs.php}/bin/php ${cfg.package}/share/moodle/admin/cli/install_database.php \
+        [ "$rc" == 2 ] && ${phpExt}/bin/php ${cfg.package}/share/moodle/admin/cli/install_database.php \
           --agree-license \
           --adminpass=${cfg.initialPassword}
 
@@ -289,7 +293,7 @@ in
       serviceConfig = {
         User = user;
         Group = group;
-        ExecStart = "${pkgs.php}/bin/php ${cfg.package}/share/moodle/admin/cli/cron.php";
+        ExecStart = "${phpExt}/bin/php ${cfg.package}/share/moodle/admin/cli/cron.php";
       };
     };
 
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
index 328561dc800..7da119758fc 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -45,6 +45,22 @@ let
   inherit (config.system) stateVersion;
 
 in {
+
+  imports = [
+    (mkRemovedOptionModule [ "services" "nextcloud" "nginx" "enable" ] ''
+      The nextcloud module supports `nginx` as reverse-proxy by default and doesn't
+      support other reverse-proxies officially.
+
+      However it's possible to use an alternative reverse-proxy by
+
+        * disabling nginx
+        * setting `listen.owner` & `listen.group` in the phpfpm-pool to a different value
+
+      Further details about this can be found in the `Nextcloud`-section of the NixOS-manual
+      (which can be openend e.g. by running `nixos-help`).
+    '')
+  ];
+
   options.services.nextcloud = {
     enable = mkEnableOption "nextcloud";
     hostName = mkOption {
@@ -91,16 +107,6 @@ in {
       '';
     };
 
-    nginx.enable = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        Whether to enable nginx virtual host management.
-        Further nginx configuration can be done by adapting <literal>services.nginx.virtualHosts.&lt;name&gt;</literal>.
-        See <xref linkend="opt-services.nginx.virtualHosts"/> for further information.
-      '';
-    };
-
     webfinger = mkOption {
       type = types.bool;
       default = false;
@@ -468,10 +474,18 @@ in {
           script = ''
             chmod og+x ${cfg.home}
             ln -sf ${cfg.package}/apps ${cfg.home}/
-            mkdir -p ${cfg.home}/config ${cfg.home}/data ${cfg.home}/store-apps
-            ln -sf ${overrideConfig} ${cfg.home}/config/override.config.php
 
-            chown -R nextcloud:nginx ${cfg.home}/config ${cfg.home}/data ${cfg.home}/store-apps
+            # create nextcloud directories.
+            # if the directories exist already with wrong permissions, we fix that
+            for dir in ${cfg.home}/config ${cfg.home}/data ${cfg.home}/store-apps; do
+              if [ ! -e $dir ]; then
+                install -o nextcloud -g nextcloud -d $dir
+              elif [ $(stat -c "%G" $dir) != "nextcloud" ]; then
+                chgrp -R nextcloud $dir
+              fi
+            done
+
+            ln -sf ${overrideConfig} ${cfg.home}/config/override.config.php
 
             # Do not install if already installed
             if [[ ! -e ${cfg.home}/config/config.php ]]; then
@@ -484,6 +498,7 @@ in {
             ${occSetTrustedDomainsCmd}
           '';
           serviceConfig.Type = "oneshot";
+          serviceConfig.User = "nextcloud";
         };
         nextcloud-cron = {
           environment.NEXTCLOUD_CONFIG_DIR = "${cfg.home}/config";
@@ -502,7 +517,7 @@ in {
       services.phpfpm = {
         pools.nextcloud = {
           user = "nextcloud";
-          group = "nginx";
+          group = "nextcloud";
           phpOptions = phpOptionsStr;
           phpPackage = phpPackage;
           phpEnv = {
@@ -510,128 +525,121 @@ in {
             PATH = "/run/wrappers/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/usr/bin:/bin";
           };
           settings = mapAttrs (name: mkDefault) {
-            "listen.owner" = "nginx";
-            "listen.group" = "nginx";
+            "listen.owner" = config.services.nginx.user;
+            "listen.group" = config.services.nginx.group;
           } // cfg.poolSettings;
           extraConfig = cfg.poolConfig;
         };
       };
 
-      users.extraUsers.nextcloud = {
+      users.users.nextcloud = {
         home = "${cfg.home}";
-        group = "nginx";
+        group = "nextcloud";
         createHome = true;
       };
+      users.groups.nextcloud.members = [ "nextcloud" config.services.nginx.user ];
 
       environment.systemPackages = [ occ ];
-    }
 
-    (mkIf cfg.nginx.enable {
-      services.nginx = {
-        enable = true;
-        virtualHosts = {
-          ${cfg.hostName} = {
-            root = cfg.package;
-            locations = {
-              "= /robots.txt" = {
-                priority = 100;
-                extraConfig = ''
-                  allow all;
-                  log_not_found off;
-                  access_log off;
-                '';
-              };
-              "/" = {
-                priority = 200;
-                extraConfig = "rewrite ^ /index.php;";
-              };
-              "~ ^/store-apps" = {
-                priority = 201;
-                extraConfig = "root ${cfg.home};";
-              };
-              "= /.well-known/carddav" = {
-                priority = 210;
-                extraConfig = "return 301 $scheme://$host/remote.php/dav;";
-              };
-              "= /.well-known/caldav" = {
-                priority = 210;
-                extraConfig = "return 301 $scheme://$host/remote.php/dav;";
-              };
-              "~ ^\\/(?:build|tests|config|lib|3rdparty|templates|data)\\/" = {
-                priority = 300;
-                extraConfig = "deny all;";
-              };
-              "~ ^\\/(?:\\.|autotest|occ|issue|indie|db_|console)" = {
-                priority = 300;
-                extraConfig = "deny all;";
-              };
-              "~ ^\\/(?:index|remote|public|cron|core/ajax\\/update|status|ocs\\/v[12]|updater\\/.+|ocs-provider\\/.+|ocm-provider\\/.+)\\.php(?:$|\\/)" = {
-                priority = 500;
-                extraConfig = ''
-                  include ${config.services.nginx.package}/conf/fastcgi.conf;
-                  fastcgi_split_path_info ^(.+\.php)(\\/.*)$;
-                  try_files $fastcgi_script_name =404;
-                  fastcgi_param PATH_INFO $fastcgi_path_info;
-                  fastcgi_param HTTPS ${if cfg.https then "on" else "off"};
-                  fastcgi_param modHeadersAvailable true;
-                  fastcgi_param front_controller_active true;
-                  fastcgi_pass unix:${fpm.socket};
-                  fastcgi_intercept_errors on;
-                  fastcgi_request_buffering off;
-                  fastcgi_read_timeout 120s;
-                '';
-              };
-              "~ ^\\/(?:updater|ocs-provider|ocm-provider)(?:$|\\/)".extraConfig = ''
-                try_files $uri/ =404;
-                index index.php;
-              '';
-              "~ \\.(?:css|js|woff2?|svg|gif)$".extraConfig = ''
-                try_files $uri /index.php$request_uri;
-                add_header Cache-Control "public, max-age=15778463";
-                add_header X-Content-Type-Options nosniff;
-                add_header X-XSS-Protection "1; mode=block";
-                add_header X-Robots-Tag none;
-                add_header X-Download-Options noopen;
-                add_header X-Permitted-Cross-Domain-Policies none;
-                add_header X-Frame-Options sameorigin;
-                add_header Referrer-Policy no-referrer;
-                access_log off;
-              '';
-              "~ \\.(?:png|html|ttf|ico|jpg|jpeg|bcmap|mp4|webm)$".extraConfig = ''
-                try_files $uri /index.php$request_uri;
-                access_log off;
-              '';
-            };
+      services.nginx.enable = mkDefault true;
+      services.nginx.virtualHosts.${cfg.hostName} = {
+        root = cfg.package;
+        locations = {
+          "= /robots.txt" = {
+            priority = 100;
             extraConfig = ''
-              add_header X-Content-Type-Options nosniff;
-              add_header X-XSS-Protection "1; mode=block";
-              add_header X-Robots-Tag none;
-              add_header X-Download-Options noopen;
-              add_header X-Permitted-Cross-Domain-Policies none;
-              add_header X-Frame-Options sameorigin;
-              add_header Referrer-Policy no-referrer;
-              add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
-              error_page 403 /core/templates/403.php;
-              error_page 404 /core/templates/404.php;
-              client_max_body_size ${cfg.maxUploadSize};
-              fastcgi_buffers 64 4K;
-              fastcgi_hide_header X-Powered-By;
-              gzip on;
-              gzip_vary on;
-              gzip_comp_level 4;
-              gzip_min_length 256;
-              gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
-              gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
-
-              ${optionalString cfg.webfinger ''
-                rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
-                rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
-              ''}
+              allow all;
+              log_not_found off;
+              access_log off;
             '';
           };
+          "/" = {
+            priority = 900;
+            extraConfig = "try_files $uri $uri/ /index.php$request_uri;";
+          };
+          "~ ^/store-apps" = {
+            priority = 201;
+            extraConfig = "root ${cfg.home};";
+          };
+          "^~ /.well-known" = {
+            priority = 210;
+            extraConfig = ''
+              location = /.well-known/carddav {
+                return 301 $scheme://$host/remote.php/dav;
+              }
+              location = /.well-known/caldav {
+                return 301 $scheme://$host/remote.php/dav;
+              }
+              try_files $uri $uri/ =404;
+            '';
+          };
+          "~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)".extraConfig = ''
+            return 404;
+          '';
+          "~ ^/(?:\\.|autotest|occ|issue|indie|db_|console)".extraConfig = ''
+            return 404;
+          '';
+          "~ \\.php(?:$|/)" = {
+            priority = 500;
+            extraConfig = ''
+              include ${config.services.nginx.package}/conf/fastcgi.conf;
+              fastcgi_split_path_info ^(.+?\.php)(\\/.*)$;
+              set $path_info $fastcgi_path_info;
+              try_files $fastcgi_script_name =404;
+              fastcgi_param PATH_INFO $path_info;
+              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+              fastcgi_param HTTPS ${if cfg.https then "on" else "off"};
+              fastcgi_param modHeadersAvailable true;
+              fastcgi_param front_controller_active true;
+              fastcgi_pass unix:${fpm.socket};
+              fastcgi_intercept_errors on;
+              fastcgi_request_buffering off;
+              fastcgi_read_timeout 120s;
+            '';
+          };
+          "~ \\.(?:css|js|svg|gif|map)$".extraConfig = ''
+            try_files $uri /index.php$request_uri;
+            expires 6M;
+            access_log off;
+          '';
+          "~ \\.woff2?$".extraConfig = ''
+            try_files $uri /index.php$request_uri;
+            expires 7d;
+            access_log off;
+          '';
+          "~ ^\\/(?:updater|ocs-provider|ocm-provider)(?:$|\\/)".extraConfig = ''
+            try_files $uri/ =404;
+            index index.php;
+          '';
         };
+        extraConfig = ''
+          index index.php index.html /index.php$request_uri;
+          expires 1m;
+          add_header X-Content-Type-Options nosniff;
+          add_header X-XSS-Protection "1; mode=block";
+          add_header X-Robots-Tag none;
+          add_header X-Download-Options noopen;
+          add_header X-Permitted-Cross-Domain-Policies none;
+          add_header X-Frame-Options sameorigin;
+          add_header Referrer-Policy no-referrer;
+          add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
+          client_max_body_size ${cfg.maxUploadSize};
+          fastcgi_buffers 64 4K;
+          fastcgi_hide_header X-Powered-By;
+          gzip on;
+          gzip_vary on;
+          gzip_comp_level 4;
+          gzip_min_length 256;
+          gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
+          gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
+
+          ${optionalString cfg.webfinger ''
+            rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
+            rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
+          ''}
+        '';
       };
-    })
+    }
   ]);
 
   meta.doc = ./nextcloud.xml;
diff --git a/nixos/modules/services/web-apps/nextcloud.xml b/nixos/modules/services/web-apps/nextcloud.xml
index 332e4d1ff3e..02e4dba2861 100644
--- a/nixos/modules/services/web-apps/nextcloud.xml
+++ b/nixos/modules/services/web-apps/nextcloud.xml
@@ -29,7 +29,6 @@
   services.nextcloud = {
     <link linkend="opt-services.nextcloud.enable">enable</link> = true;
     <link linkend="opt-services.nextcloud.hostName">hostName</link> = "nextcloud.tld";
-    <link linkend="opt-services.nextcloud.nginx.enable">nginx.enable</link> = true;
     config = {
       <link linkend="opt-services.nextcloud.config.dbtype">dbtype</link> = "pgsql";
       <link linkend="opt-services.nextcloud.config.dbuser">dbuser</link> = "nextcloud";
@@ -61,9 +60,8 @@
   </para>
 
   <para>
-   The options <literal>hostName</literal> and <literal>nginx.enable</literal>
-   are used internally to configure an HTTP server using
-   <literal><link xlink:href="https://php-fpm.org/">PHP-FPM</link></literal>
+   The <literal>hostName</literal> option is used internally to configure an HTTP
+   server using <literal><link xlink:href="https://php-fpm.org/">PHP-FPM</link></literal>
    and <literal>nginx</literal>. The <literal>config</literal> attribute set is
    used by the imperative installer and all values are written to an additional file
    to ensure that changes can be applied by changing the module's options.
@@ -125,6 +123,61 @@
   </para>
  </section>
 
+ <section xml:id="module-services-nextcloud-httpd">
+  <title>Using an alternative webserver as reverse-proxy (e.g. <literal>httpd</literal>)</title>
+  <para>
+   By default, <package>nginx</package> is used as reverse-proxy for <package>nextcloud</package>.
+   However, it's possible to use e.g. <package>httpd</package> by explicitly disabling
+   <package>nginx</package> using <xref linkend="opt-services.nginx.enable" /> and fixing the
+   settings <literal>listen.owner</literal> &amp; <literal>listen.group</literal> in the
+   <link linkend="opt-services.phpfpm.pools">corresponding <literal>phpfpm</literal> pool</link>.
+  </para>
+  <para>
+   An exemplary configuration may look like this:
+<programlisting>{ config, lib, pkgs, ... }: {
+  <link linkend="opt-services.nginx.enable">services.nginx.enable</link> = false;
+  services.nextcloud = {
+    <link linkend="opt-services.nextcloud.enable">enable</link> = true;
+    <link linkend="opt-services.nextcloud.hostName">hostName</link> = "localhost";
+
+    /* further, required options */
+  };
+  <link linkend="opt-services.phpfpm.pools._name_.settings">services.phpfpm.pools.nextcloud.settings</link> = {
+    "listen.owner" = config.services.httpd.user;
+    "listen.group" = config.services.httpd.group;
+  };
+  services.httpd = {
+    <link linkend="opt-services.httpd.enable">enable</link> = true;
+    <link linkend="opt-services.httpd.adminAddr">adminAddr</link> = "webmaster@localhost";
+    <link linkend="opt-services.httpd.extraModules">extraModules</link> = [ "proxy_fcgi" ];
+    virtualHosts."localhost" = {
+      <link linkend="opt-services.httpd.virtualHosts._name_.documentRoot">documentRoot</link> = config.services.nextcloud.package;
+      <link linkend="opt-services.httpd.virtualHosts._name_.extraConfig">extraConfig</link> = ''
+        &lt;Directory "${config.services.nextcloud.package}"&gt;
+          &lt;FilesMatch "\.php$"&gt;
+            &lt;If "-f %{REQUEST_FILENAME}"&gt;
+              SetHandler "proxy:unix:${config.services.phpfpm.pools.nextcloud.socket}|fcgi://localhost/"
+            &lt;/If&gt;
+          &lt;/FilesMatch&gt;
+          &lt;IfModule mod_rewrite.c&gt;
+            RewriteEngine On
+            RewriteBase /
+            RewriteRule ^index\.php$ - [L]
+            RewriteCond %{REQUEST_FILENAME} !-f
+            RewriteCond %{REQUEST_FILENAME} !-d
+            RewriteRule . /index.php [L]
+          &lt;/IfModule&gt;
+          DirectoryIndex index.php
+          Require all granted
+          Options +FollowSymLinks
+        &lt;/Directory&gt;
+      '';
+    };
+  };
+}</programlisting>
+  </para>
+ </section>
+
  <section xml:id="module-services-nextcloud-maintainer-info">
   <title>Maintainer information</title>
 
diff --git a/nixos/modules/services/web-apps/pgpkeyserver-lite.nix b/nixos/modules/services/web-apps/pgpkeyserver-lite.nix
index ad70ba70bbe..838fd19ad29 100644
--- a/nixos/modules/services/web-apps/pgpkeyserver-lite.nix
+++ b/nixos/modules/services/web-apps/pgpkeyserver-lite.nix
@@ -33,7 +33,7 @@ in
         description = "
           Which hostname to set the vHost to that is proxying to sks.
         ";
-      };     
+      };
 
       hkpAddress = mkOption {
         default = builtins.head sksCfg.hkpAddress;
diff --git a/nixos/modules/services/web-apps/rss-bridge.nix b/nixos/modules/services/web-apps/rss-bridge.nix
new file mode 100644
index 00000000000..f1d5b7660f3
--- /dev/null
+++ b/nixos/modules/services/web-apps/rss-bridge.nix
@@ -0,0 +1,127 @@
+{ config, lib, pkgs, ... }:
+with lib;
+let
+  cfg = config.services.rss-bridge;
+
+  poolName = "rss-bridge";
+
+  whitelist = pkgs.writeText "rss-bridge_whitelist.txt"
+    (concatStringsSep "\n" cfg.whitelist);
+in
+{
+  options = {
+    services.rss-bridge = {
+      enable = mkEnableOption "rss-bridge";
+
+      user = mkOption {
+        type = types.str;
+        default = "nginx";
+        example = "nginx";
+        description = ''
+          User account under which both the service and the web-application run.
+        '';
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = "nginx";
+        example = "nginx";
+        description = ''
+          Group under which the web-application run.
+        '';
+      };
+
+      pool = mkOption {
+        type = types.str;
+        default = poolName;
+        description = ''
+          Name of existing phpfpm pool that is used to run web-application.
+          If not specified a pool will be created automatically with
+          default values.
+        '';
+      };
+
+      dataDir = mkOption {
+        type = types.str;
+        default = "/var/lib/rss-bridge";
+        description = ''
+          Location in which cache directory will be created.
+          You can put <literal>config.ini.php</literal> in here.
+        '';
+      };
+
+      virtualHost = mkOption {
+        type = types.nullOr types.str;
+        default = "rss-bridge";
+        description = ''
+          Name of the nginx virtualhost to use and setup. If null, do not setup any virtualhost.
+        '';
+      };
+
+      whitelist = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        example = options.literalExample ''
+          [
+            "Facebook"
+            "Instagram"
+            "Twitter"
+          ]
+        '';
+        description = ''
+          List of bridges to be whitelisted.
+          If the list is empty, rss-bridge will use whitelist.default.txt.
+          Use <literal>[ "*" ]</literal> to whitelist all.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    services.phpfpm.pools = mkIf (cfg.pool == poolName) {
+      ${poolName} = {
+        user = cfg.user;
+        settings = mapAttrs (name: mkDefault) {
+          "listen.owner" = cfg.user;
+          "listen.group" = cfg.user;
+          "listen.mode" = "0600";
+          "pm" = "dynamic";
+          "pm.max_children" = 75;
+          "pm.start_servers" = 10;
+          "pm.min_spare_servers" = 5;
+          "pm.max_spare_servers" = 20;
+          "pm.max_requests" = 500;
+          "catch_workers_output" = 1;
+        };
+      };
+    };
+    systemd.tmpfiles.rules = [
+      "d '${cfg.dataDir}/cache' 0750 ${cfg.user} ${cfg.group} - -"
+      (mkIf (cfg.whitelist != []) "L+ ${cfg.dataDir}/whitelist.txt - - - - ${whitelist}")
+      "z '${cfg.dataDir}/config.ini.php' 0750 ${cfg.user} ${cfg.group} - -"
+    ];
+
+    services.nginx = mkIf (cfg.virtualHost != null) {
+      enable = true;
+      virtualHosts = {
+        ${cfg.virtualHost} = {
+          root = "${pkgs.rss-bridge}";
+
+          locations."/" = {
+            tryFiles = "$uri /index.php$is_args$args";
+          };
+
+          locations."~ ^/index.php(/|$)" = {
+            extraConfig = ''
+              include ${pkgs.nginx}/conf/fastcgi_params;
+              fastcgi_split_path_info ^(.+\.php)(/.+)$;
+              fastcgi_pass unix:${config.services.phpfpm.pools.${cfg.pool}.socket};
+              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+              fastcgi_param RSSBRIDGE_DATA ${cfg.dataDir};
+            '';
+          };
+        };
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/web-apps/sogo.nix b/nixos/modules/services/web-apps/sogo.nix
index 5f30124dd68..4610bb96cb5 100644
--- a/nixos/modules/services/web-apps/sogo.nix
+++ b/nixos/modules/services/web-apps/sogo.nix
@@ -77,7 +77,6 @@ in {
         // Paths
         WOSendMail = "/run/wrappers/bin/sendmail";
         SOGoMailSpoolPath = "/var/lib/sogo/spool";
-        SOGoZipPath = "${pkgs.zip}/bin/zip";
         // Enable CSRF protection
         SOGoXSRFValidationEnabled = YES;
         // Remove dates from log (jornald does that)
diff --git a/nixos/modules/services/web-apps/trilium.nix b/nixos/modules/services/web-apps/trilium.nix
index 6f47193c62b..3fa8dad0490 100644
--- a/nixos/modules/services/web-apps/trilium.nix
+++ b/nixos/modules/services/web-apps/trilium.nix
@@ -83,7 +83,7 @@ in
     };
   };
 
-  config = lib.mkIf cfg.enable (lib.mkMerge [ 
+  config = lib.mkIf cfg.enable (lib.mkMerge [
   {
     meta.maintainers = with lib.maintainers; [ kampka ];
 
diff --git a/nixos/modules/services/web-apps/tt-rss.nix b/nixos/modules/services/web-apps/tt-rss.nix
index 2ea9537b93d..6a29f10d119 100644
--- a/nixos/modules/services/web-apps/tt-rss.nix
+++ b/nixos/modules/services/web-apps/tt-rss.nix
@@ -632,8 +632,6 @@ let
           User = "${cfg.user}";
           Group = "tt_rss";
           ExecStart = "${pkgs.php}/bin/php ${cfg.root}/update.php --daemon --quiet";
-          StandardOutput = "syslog";
-          StandardError = "syslog";
           Restart = "on-failure";
           RestartSec = "60";
           SyslogIdentifier = "tt-rss";
diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix
index e1d1217943b..6dd1c85132c 100644
--- a/nixos/modules/services/web-servers/apache-httpd/default.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/default.nix
@@ -6,10 +6,18 @@ let
 
   cfg = config.services.httpd;
 
+  certs = config.security.acme.certs;
+
   runtimeDir = "/run/httpd";
 
   pkg = cfg.package.out;
 
+  apachectl = pkgs.runCommand "apachectl" { meta.priority = -1; } ''
+    mkdir -p $out/bin
+    cp ${pkg}/bin/apachectl $out/bin/apachectl
+    sed -i $out/bin/apachectl -e 's|$HTTPD -t|$HTTPD -t -f ${httpdConf}|'
+  '';
+
   httpdConf = cfg.configFile;
 
   php = cfg.phpPackage.override { apacheHttpd = pkg; };
@@ -20,6 +28,13 @@ let
 
   vhosts = attrValues cfg.virtualHosts;
 
+  # certName is used later on to determine systemd service names.
+  acmeEnabledVhosts = map (hostOpts: hostOpts // {
+    certName = if hostOpts.useACMEHost != null then hostOpts.useACMEHost else hostOpts.hostName;
+  }) (filter (hostOpts: hostOpts.enableACME || hostOpts.useACMEHost != null) vhosts);
+
+  dependentCertNames = unique (map (hostOpts: hostOpts.certName) acmeEnabledVhosts);
+
   mkListenInfo = hostOpts:
     if hostOpts.listen != [] then hostOpts.listen
     else (
@@ -119,13 +134,13 @@ let
 
       useACME = hostOpts.enableACME || hostOpts.useACMEHost != null;
       sslCertDir =
-        if hostOpts.enableACME then config.security.acme.certs.${hostOpts.hostName}.directory
-        else if hostOpts.useACMEHost != null then config.security.acme.certs.${hostOpts.useACMEHost}.directory
+        if hostOpts.enableACME then certs.${hostOpts.hostName}.directory
+        else if hostOpts.useACMEHost != null then certs.${hostOpts.useACMEHost}.directory
         else abort "This case should never happen.";
 
-      sslServerCert = if useACME then "${sslCertDir}/full.pem" else hostOpts.sslServerCert;
+      sslServerCert = if useACME then "${sslCertDir}/fullchain.pem" else hostOpts.sslServerCert;
       sslServerKey = if useACME then "${sslCertDir}/key.pem" else hostOpts.sslServerKey;
-      sslServerChain = if useACME then "${sslCertDir}/fullchain.pem" else hostOpts.sslServerChain;
+      sslServerChain = if useACME then "${sslCertDir}/chain.pem" else hostOpts.sslServerChain;
 
       acmeChallenge = optionalString useACME ''
         Alias /.well-known/acme-challenge/ "${hostOpts.acmeRoot}/.well-known/acme-challenge/"
@@ -341,7 +356,6 @@ let
       cat ${php.phpIni} > $out
       echo "$options" >> $out
     '';
-
 in
 
 
@@ -641,19 +655,41 @@ in
       wwwrun.gid = config.ids.gids.wwwrun;
     };
 
-    security.acme.certs = mapAttrs (name: hostOpts: {
-      user = cfg.user;
-      group = mkDefault cfg.group;
-      email = if hostOpts.adminAddr != null then hostOpts.adminAddr else cfg.adminAddr;
-      webroot = hostOpts.acmeRoot;
-      extraDomains = genAttrs hostOpts.serverAliases (alias: null);
-      postRun = "systemctl reload httpd.service";
-    }) (filterAttrs (name: hostOpts: hostOpts.enableACME) cfg.virtualHosts);
-
-    environment.systemPackages = [ pkg ];
+    security.acme.certs = let
+      acmePairs = map (hostOpts: nameValuePair hostOpts.hostName {
+        group = mkDefault cfg.group;
+        webroot = hostOpts.acmeRoot;
+        extraDomainNames = hostOpts.serverAliases;
+        # Use the vhost-specific email address if provided, otherwise let
+        # security.acme.email or security.acme.certs.<cert>.email be used.
+        email = mkOverride 2000 (if hostOpts.adminAddr != null then hostOpts.adminAddr else cfg.adminAddr);
+      # Filter for enableACME-only vhosts. Don't want to create dud certs
+      }) (filter (hostOpts: hostOpts.useACMEHost == null) acmeEnabledVhosts);
+    in listToAttrs acmePairs;
+
+    environment.systemPackages = [
+      apachectl
+      pkg
+    ];
 
-    # required for "apachectl configtest"
-    environment.etc."httpd/httpd.conf".source = httpdConf;
+    services.logrotate = optionalAttrs (cfg.logFormat != "none") {
+      enable = mkDefault true;
+      paths.httpd = {
+        path = "${cfg.logDir}/*.log";
+        user = cfg.user;
+        group = cfg.group;
+        frequency = "daily";
+        keep = 28;
+        extraConfig = ''
+          sharedscripts
+          compress
+          delaycompress
+          postrotate
+            systemctl reload httpd.service > /dev/null 2>/dev/null || true
+          endscript
+        '';
+      };
+    };
 
     services.httpd.phpOptions =
       ''
@@ -699,16 +735,12 @@ in
           "Z '${cfg.logDir}' - ${svc.User} ${svc.Group}"
         ];
 
-    systemd.services.httpd =
-      let
-        vhostsACME = filter (hostOpts: hostOpts.enableACME) vhosts;
-      in
-      { description = "Apache HTTPD";
-
+    systemd.services.httpd = {
+        description = "Apache HTTPD";
         wantedBy = [ "multi-user.target" ];
-        wants = concatLists (map (hostOpts: [ "acme-${hostOpts.hostName}.service" "acme-selfsigned-${hostOpts.hostName}.service" ]) vhostsACME);
-        after = [ "network.target" "fs.target" ] ++ map (hostOpts: "acme-selfsigned-${hostOpts.hostName}.service") vhostsACME;
-        before = map (hostOpts: "acme-${hostOpts.hostName}.service") vhostsACME;
+        wants = concatLists (map (certName: [ "acme-finished-${certName}.target" ]) dependentCertNames);
+        after = [ "network.target" ] ++ map (certName: "acme-selfsigned-${certName}.service") dependentCertNames;
+        before = map (certName: "acme-${certName}.service") dependentCertNames;
 
         path = [ pkg pkgs.coreutils pkgs.gnugrep ];
 
@@ -742,5 +774,31 @@ in
         };
       };
 
+    # postRun hooks on cert renew can't be used to restart Apache 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.httpd-config-reload = let
+      sslServices = map (certName: "acme-${certName}.service") dependentCertNames;
+      sslTargets = map (certName: "acme-finished-${certName}.target") dependentCertNames;
+    in mkIf (sslServices != []) {
+      wantedBy = sslServices ++ [ "multi-user.target" ];
+      # Before the finished targets, after the renew services.
+      # This service might be needed for HTTP-01 challenges, but we only want to confirm
+      # certs are updated _after_ config has been reloaded.
+      before = sslTargets;
+      after = sslServices;
+      # Block reloading if not all certs exist yet.
+      # Happens when config changes add new vhosts/certs.
+      unitConfig.ConditionPathExists = map (certName: certs.${certName}.directory + "/fullchain.pem") dependentCertNames;
+      serviceConfig = {
+        Type = "oneshot";
+        TimeoutSec = 60;
+        ExecCondition = "/run/current-system/systemd/bin/systemctl -q is-active httpd.service";
+        ExecStartPre = "${pkg}/bin/httpd -f ${httpdConf} -t";
+        ExecStart = "/run/current-system/systemd/bin/systemctl reload httpd.service";
+      };
+    };
+
   };
 }
diff --git a/nixos/modules/services/web-servers/jboss/builder.sh b/nixos/modules/services/web-servers/jboss/builder.sh
index 2eb89a90f67..0e5af324c13 100644
--- a/nixos/modules/services/web-servers/jboss/builder.sh
+++ b/nixos/modules/services/web-servers/jboss/builder.sh
@@ -28,11 +28,11 @@ stop()
 if test "\$1" = start
 then
   trap stop 15
-  
+
   start
 elif test "\$1" = stop
 then
-  stop  
+  stop
 elif test "\$1" = init
 then
   echo "Are you sure you want to create a new server instance (old server instance will be lost!)?"
@@ -42,21 +42,21 @@ then
   then
     exit 1
   fi
-  
+
   rm -rf $serverDir
   mkdir -p $serverDir
   cd $serverDir
   cp -av $jboss/server/default .
   sed -i -e "s|deploy/|$deployDir|" default/conf/jboss-service.xml
-  
+
   if ! test "$useJK" = ""
   then
     sed -i -e 's|<attribute name="UseJK">false</attribute>|<attribute name="UseJK">true</attribute>|' default/deploy/jboss-web.deployer/META-INF/jboss-service.xml
     sed -i -e 's|<Engine name="jboss.web" defaultHost="localhost">|<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1">|' default/deploy/jboss-web.deployer/server.xml
   fi
-  
+
   # Make files accessible for the server user
-  
+
   chown -R $user $serverDir
   for i in \`find $serverDir -type d\`
   do
diff --git a/nixos/modules/services/web-servers/meguca.nix b/nixos/modules/services/web-servers/meguca.nix
deleted file mode 100644
index 5a00070dc94..00000000000
--- a/nixos/modules/services/web-servers/meguca.nix
+++ /dev/null
@@ -1,174 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-let
-  cfg = config.services.meguca;
-  postgres = config.services.postgresql;
-in with lib; {
-  options.services.meguca = {
-    enable = mkEnableOption "meguca";
-
-    dataDir = mkOption {
-      type = types.path;
-      default = "/var/lib/meguca";
-      example = "/home/okina/meguca";
-      description = "Location where meguca stores it's database and links.";
-    };
-
-    password = mkOption {
-      type = types.str;
-      default = "meguca";
-      example = "dumbpass";
-      description = "Password for the meguca database.";
-    };
-
-    passwordFile = mkOption {
-      type = types.path;
-      default = "/run/keys/meguca-password-file";
-      example = "/home/okina/meguca/keys/pass";
-      description = "Password file for the meguca database.";
-    };
-
-    reverseProxy = mkOption {
-      type = types.nullOr types.str;
-      default = null;
-      example = "192.168.1.5";
-      description = "Reverse proxy IP.";
-    };
-
-    sslCertificate = mkOption {
-      type = types.nullOr types.str;
-      default = null;
-      example = "/home/okina/meguca/ssl.cert";
-      description = "Path to the SSL certificate.";
-    };
-
-    listenAddress = mkOption {
-      type = types.nullOr types.str;
-      default = null;
-      example = "127.0.0.1:8000";
-      description = "Listen on a specific IP address and port.";
-    };
-
-    cacheSize = mkOption {
-      type = types.nullOr types.int;
-      default = null;
-      example = 256;
-      description = "Cache size in MB.";
-    };
-
-    postgresArgs = mkOption {
-      type = types.str;
-      example = "user=meguca password=dumbpass dbname=meguca sslmode=disable";
-      description = "Postgresql connection arguments.";
-    };
-
-    postgresArgsFile = mkOption {
-      type = types.path;
-      default = "/run/keys/meguca-postgres-args";
-      example = "/home/okina/meguca/keys/postgres";
-      description = "Postgresql connection arguments file.";
-    };
-
-    compressTraffic = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Compress all traffic with gzip.";
-    };
-
-    assumeReverseProxy = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Assume the server is behind a reverse proxy, when resolving client IPs.";
-    };
-
-    httpsOnly = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Serve and listen only through HTTPS.";
-    };
-
-    videoPaths = mkOption {
-      type = types.listOf types.path;
-      default = [];
-      example = [ "/home/okina/Videos/tehe_pero.webm" ];
-      description = "Videos that will be symlinked into www/videos.";
-    };
-  };
-
-  config = mkIf cfg.enable {
-    security.sudo.enable = cfg.enable;
-    services.postgresql.enable = cfg.enable;
-    services.postgresql.package = pkgs.postgresql_11;
-    services.meguca.passwordFile = mkDefault (pkgs.writeText "meguca-password-file" cfg.password);
-    services.meguca.postgresArgsFile = mkDefault (pkgs.writeText "meguca-postgres-args" cfg.postgresArgs);
-    services.meguca.postgresArgs = mkDefault "user=meguca password=${cfg.password} dbname=meguca sslmode=disable";
-
-    systemd.services.meguca = {
-      description = "meguca";
-      after = [ "network.target" "postgresql.service" ];
-      wantedBy = [ "multi-user.target" ];
-
-      preStart = ''
-        # Ensure folder exists or create it and links and permissions are correct
-        mkdir -p ${escapeShellArg cfg.dataDir}/www
-        rm -rf ${escapeShellArg cfg.dataDir}/www/videos
-        ln -sf ${pkgs.meguca}/share/meguca/www/* ${escapeShellArg cfg.dataDir}/www
-        unlink ${escapeShellArg cfg.dataDir}/www/videos
-        mkdir -p ${escapeShellArg cfg.dataDir}/www/videos
-
-        for vid in ${escapeShellArg cfg.videoPaths}; do
-          ln -sf $vid ${escapeShellArg cfg.dataDir}/www/videos
-        done
-
-        chmod 750 ${escapeShellArg cfg.dataDir}
-        chown -R meguca:meguca ${escapeShellArg cfg.dataDir}
-
-        # Ensure the database is correct or create it
-        ${pkgs.sudo}/bin/sudo -u ${postgres.superUser} ${postgres.package}/bin/createuser \
-          -SDR meguca || true
-        ${pkgs.sudo}/bin/sudo -u ${postgres.superUser} ${postgres.package}/bin/createdb \
-          -T template0 -E UTF8 -O meguca meguca || true
-        ${pkgs.sudo}/bin/sudo -u meguca ${postgres.package}/bin/psql \
-          -c "ALTER ROLE meguca WITH PASSWORD '$(cat ${escapeShellArg cfg.passwordFile})';" || true
-      '';
-
-    script = ''
-      cd ${escapeShellArg cfg.dataDir}
-
-      ${pkgs.meguca}/bin/meguca -d "$(cat ${escapeShellArg cfg.postgresArgsFile})"''
-      + optionalString (cfg.reverseProxy != null) " -R ${cfg.reverseProxy}"
-      + optionalString (cfg.sslCertificate != null) " -S ${cfg.sslCertificate}"
-      + optionalString (cfg.listenAddress != null) " -a ${cfg.listenAddress}"
-      + optionalString (cfg.cacheSize != null) " -c ${toString cfg.cacheSize}"
-      + optionalString (cfg.compressTraffic) " -g"
-      + optionalString (cfg.assumeReverseProxy) " -r"
-      + optionalString (cfg.httpsOnly) " -s" + " start";
-
-      serviceConfig = {
-        PermissionsStartOnly = true;
-        Type = "forking";
-        User = "meguca";
-        Group = "meguca";
-        ExecStop = "${pkgs.meguca}/bin/meguca stop";
-      };
-    };
-
-    users = {
-      groups.meguca.gid = config.ids.gids.meguca;
-
-      users.meguca = {
-        description = "meguca server service user";
-        home = cfg.dataDir;
-        createHome = true;
-        group = "meguca";
-        uid = config.ids.uids.meguca;
-      };
-    };
-  };
-
-  imports = [
-    (mkRenamedOptionModule [ "services" "meguca" "baseDir" ] [ "services" "meguca" "dataDir" ])
-  ];
-
-  meta.maintainers = with maintainers; [ chiiruno ];
-}
diff --git a/nixos/modules/services/web-servers/molly-brown.nix b/nixos/modules/services/web-servers/molly-brown.nix
new file mode 100644
index 00000000000..e9052a184b2
--- /dev/null
+++ b/nixos/modules/services/web-servers/molly-brown.nix
@@ -0,0 +1,117 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.molly-brown;
+
+  settingsType = with types;
+    attrsOf (oneOf [
+      int
+      str
+      (listOf str)
+      (attrsOf (oneOf [ int str (listOf str) (attrsOf str) ]))
+    ]) // {
+      description = "primitive expression convertable to TOML";
+    };
+
+  configFile = pkgs.runCommand "molly-brown.toml" {
+    buildInputs = [ pkgs.remarshal ];
+    preferLocalBuild = true;
+    passAsFile = [ "settings" ];
+    settings = builtins.toJSON cfg.settings;
+  } "remarshal -if json -of toml < $settingsPath > $out";
+in {
+
+  options.services.molly-brown = {
+
+    enable = mkEnableOption "Molly-Brown Gemini server";
+
+    port = mkOption {
+      default = 1965;
+      type = types.port;
+      description = ''
+        TCP port for molly-brown to bind to.
+      '';
+    };
+
+    hostName = mkOption {
+      type = types.str;
+      example = literalExample "config.networking.hostName";
+      default = config.networking.hostName;
+      description = ''
+        The hostname to respond to requests for. Requests for URLs with
+        other hosts will result in a status 53 (PROXY REQUEST REFUSED)
+        response.
+      '';
+    };
+
+    certPath = mkOption {
+      type = types.path;
+      example = "/var/lib/acme/example.com/cert.pem";
+      description = ''
+        Path to TLS certificate. An ACME certificate and key may be
+        shared with an HTTP server, but only if molly-brown has
+        permissions allowing it to read such keys.
+
+        As an example:
+        <programlisting>
+        security.acme.certs."example.com".allowKeysForGroup = true;
+        systemd.services.molly-brown.serviceConfig.SupplementaryGroups =
+          [ config.security.acme.certs."example.com".group ];
+        </programlisting>
+      '';
+    };
+
+    keyPath = mkOption {
+      type = types.path;
+      example = "/var/lib/acme/example.com/key.pem";
+      description = "Path to TLS key. See <option>CertPath</option>.";
+    };
+
+    docBase = mkOption {
+      type = types.path;
+      example = "/var/lib/molly-brown";
+      description = "Base directory for Gemini content.";
+    };
+
+    settings = mkOption {
+      type = settingsType;
+      default = { };
+      description = ''
+        molly-brown configuration. Refer to
+        <link xlink:href="https://tildegit.org/solderpunk/molly-brown/src/branch/master/example.conf"/>
+        for details on supported values.
+      '';
+    };
+
+  };
+
+  config = mkIf cfg.enable {
+
+    services.molly-brown.settings = let logDir = "/var/log/molly-brown";
+    in {
+      Port = cfg.port;
+      Hostname = cfg.hostName;
+      CertPath = cfg.certPath;
+      KeyPath = cfg.keyPath;
+      DocBase = cfg.docBase;
+      AccessLog = "${logDir}/access.log";
+      ErrorLog = "${logDir}/error.log";
+    };
+
+    systemd.services.molly-brown = {
+      description = "Molly Brown gemini server";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        DynamicUser = true;
+        LogsDirectory = "molly-brown";
+        ExecStart = "${pkgs.molly-brown}/bin/molly-brown -c ${configFile}";
+        Restart = "always";
+      };
+    };
+
+  };
+
+}
diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix
index 4c4b7f39e6b..975b56d4782 100644
--- a/nixos/modules/services/web-servers/nginx/default.nix
+++ b/nixos/modules/services/web-servers/nginx/default.nix
@@ -6,23 +6,23 @@ let
   cfg = config.services.nginx;
   certs = config.security.acme.certs;
   vhostsConfigs = mapAttrsToList (vhostName: vhostConfig: vhostConfig) virtualHosts;
-  acmeEnabledVhosts = filter (vhostConfig: vhostConfig.enableACME && vhostConfig.useACMEHost == null) vhostsConfigs;
+  acmeEnabledVhosts = filter (vhostConfig: vhostConfig.enableACME || vhostConfig.useACMEHost != null) vhostsConfigs;
+  dependentCertNames = unique (map (hostOpts: hostOpts.certName) acmeEnabledVhosts);
   virtualHosts = mapAttrs (vhostName: vhostConfig:
     let
       serverName = if vhostConfig.serverName != null
         then vhostConfig.serverName
         else vhostName;
+      certName = if vhostConfig.useACMEHost != null
+        then vhostConfig.useACMEHost
+        else serverName;
     in
     vhostConfig // {
-      inherit serverName;
-    } // (optionalAttrs vhostConfig.enableACME {
-      sslCertificate = "${certs.${serverName}.directory}/fullchain.pem";
-      sslCertificateKey = "${certs.${serverName}.directory}/key.pem";
-      sslTrustedCertificate = "${certs.${serverName}.directory}/full.pem";
-    }) // (optionalAttrs (vhostConfig.useACMEHost != null) {
-      sslCertificate = "${certs.${vhostConfig.useACMEHost}.directory}/fullchain.pem";
-      sslCertificateKey = "${certs.${vhostConfig.useACMEHost}.directory}/key.pem";
-      sslTrustedCertificate = "${certs.${vhostConfig.useACMEHost}.directory}/fullchain.pem";
+      inherit serverName certName;
+    } // (optionalAttrs (vhostConfig.enableACME || vhostConfig.useACMEHost != null) {
+      sslCertificate = "${certs.${certName}.directory}/fullchain.pem";
+      sslCertificateKey = "${certs.${certName}.directory}/key.pem";
+      sslTrustedCertificate = "${certs.${certName}.directory}/chain.pem";
     })
   ) cfg.virtualHosts;
   enableIPv6 = config.networking.enableIPv6;
@@ -691,12 +691,12 @@ in
     systemd.services.nginx = {
       description = "Nginx Web Server";
       wantedBy = [ "multi-user.target" ];
-      wants = concatLists (map (vhostConfig: ["acme-${vhostConfig.serverName}.service" "acme-selfsigned-${vhostConfig.serverName}.service"]) acmeEnabledVhosts);
-      after = [ "network.target" ] ++ map (vhostConfig: "acme-selfsigned-${vhostConfig.serverName}.service") acmeEnabledVhosts;
+      wants = concatLists (map (certName: [ "acme-finished-${certName}.target" ]) dependentCertNames);
+      after = [ "network.target" ] ++ map (certName: "acme-selfsigned-${certName}.service") dependentCertNames;
       # Nginx needs to be started in order to be able to request certificates
       # (it's hosting the acme challenge after all)
       # This fixes https://github.com/NixOS/nixpkgs/issues/81842
-      before = map (vhostConfig: "acme-${vhostConfig.serverName}.service") acmeEnabledVhosts;
+      before = map (certName: "acme-${certName}.service") dependentCertNames;
       stopIfChanged = false;
       preStart = ''
         ${cfg.preStart}
@@ -704,7 +704,10 @@ in
       '';
       serviceConfig = {
         ExecStart = execCommand;
-        ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+        ExecReload = [
+          "${execCommand} -t"
+          "${pkgs.coreutils}/bin/kill -HUP $MAINPID"
+        ];
         Restart = "always";
         RestartSec = "10s";
         StartLimitInterval = "1min";
@@ -750,38 +753,41 @@ in
       source = configFile;
     };
 
-    systemd.services.nginx-config-reload = mkIf cfg.enableReload {
-      wants = [ "nginx.service" ];
-      wantedBy = [ "multi-user.target" ];
-      restartTriggers = [ configFile ];
-      # commented, because can cause extra delays during activate for this config:
-      #      services.nginx.virtualHosts."_".locations."/".proxyPass = "http://blabla:3000";
-      # stopIfChanged = false;
-      serviceConfig.Type = "oneshot";
-      serviceConfig.TimeoutSec = 60;
-      script = ''
-        if /run/current-system/systemd/bin/systemctl -q is-active nginx.service ; then
-          ${execCommand} -t && \
-            /run/current-system/systemd/bin/systemctl reload nginx.service
-        fi
-      '';
-      serviceConfig.RemainAfterExit = true;
+    # 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.nginx-config-reload = let
+      sslServices = map (certName: "acme-${certName}.service") dependentCertNames;
+      sslTargets = map (certName: "acme-finished-${certName}.target") dependentCertNames;
+    in mkIf (cfg.enableReload || sslServices != []) {
+      wants = optionals (cfg.enableReload) [ "nginx.service" ];
+      wantedBy = sslServices ++ [ "multi-user.target" ];
+      # Before the finished targets, after the renew services.
+      # This service might be needed for HTTP-01 challenges, but we only want to confirm
+      # certs are updated _after_ config has been reloaded.
+      before = sslTargets;
+      after = sslServices;
+      restartTriggers = optionals (cfg.enableReload) [ configFile ];
+      # Block reloading if not all certs exist yet.
+      # Happens when config changes add new vhosts/certs.
+      unitConfig.ConditionPathExists = optionals (sslServices != []) (map (certName: certs.${certName}.directory + "/fullchain.pem") dependentCertNames);
+      serviceConfig = {
+        Type = "oneshot";
+        TimeoutSec = 60;
+        ExecCondition = "/run/current-system/systemd/bin/systemctl -q is-active nginx.service";
+        ExecStart = "/run/current-system/systemd/bin/systemctl reload nginx.service";
+      };
     };
 
-    security.acme.certs = filterAttrs (n: v: v != {}) (
-      let
-        acmePairs = map (vhostConfig: { name = vhostConfig.serverName; value = {
-            user = cfg.user;
-            group = lib.mkDefault cfg.group;
-            webroot = vhostConfig.acmeRoot;
-            extraDomains = genAttrs vhostConfig.serverAliases (alias: null);
-            postRun = ''
-              /run/current-system/systemd/bin/systemctl reload nginx
-            '';
-          }; }) acmeEnabledVhosts;
-      in
-        listToAttrs acmePairs
-    );
+    security.acme.certs = let
+      acmePairs = map (vhostConfig: nameValuePair vhostConfig.serverName {
+        group = mkDefault cfg.group;
+        webroot = vhostConfig.acmeRoot;
+        extraDomainNames = vhostConfig.serverAliases;
+      # Filter for enableACME-only vhosts. Don't want to create dud certs
+      }) (filter (vhostConfig: vhostConfig.useACMEHost == null) acmeEnabledVhosts);
+    in listToAttrs acmePairs;
 
     users.users = optionalAttrs (cfg.user == "nginx") {
       nginx = {
diff --git a/nixos/modules/services/web-servers/phpfpm/default.nix b/nixos/modules/services/web-servers/phpfpm/default.nix
index d090885a8ca..759eebf768d 100644
--- a/nixos/modules/services/web-servers/phpfpm/default.nix
+++ b/nixos/modules/services/web-servers/phpfpm/default.nix
@@ -277,6 +277,7 @@ in {
           ExecReload = "${pkgs.coreutils}/bin/kill -USR2 $MAINPID";
           RuntimeDirectory = "phpfpm";
           RuntimeDirectoryPreserve = true; # Relevant when multiple processes are running
+          Restart = "always";
         };
       }
     ) cfg.pools;
diff --git a/nixos/modules/services/web-servers/shellinabox.nix b/nixos/modules/services/web-servers/shellinabox.nix
index 58a02ac59c3..c7c51f873eb 100644
--- a/nixos/modules/services/web-servers/shellinabox.nix
+++ b/nixos/modules/services/web-servers/shellinabox.nix
@@ -51,7 +51,7 @@ in
           Whether or not to enable SSL (https) support.
         '';
       };
-        
+
       certDirectory = mkOption {
         type = types.nullOr types.path;
         default = null;
diff --git a/nixos/modules/services/web-servers/unit/default.nix b/nixos/modules/services/web-servers/unit/default.nix
index 989866144e1..894271d1e55 100644
--- a/nixos/modules/services/web-servers/unit/default.nix
+++ b/nixos/modules/services/web-servers/unit/default.nix
@@ -102,7 +102,7 @@ in {
         PIDFile = "/run/unit/unit.pid";
         ExecStart = ''
           ${cfg.package}/bin/unitd --control 'unix:/run/unit/control.unit.sock' --pid '/run/unit/unit.pid' \
-                                   --log '${cfg.logDir}/unit.log' --state '${cfg.stateDir}' \
+                                   --log '${cfg.logDir}/unit.log' --state '${cfg.stateDir}' --tmp '/tmp' \
                                    --user ${cfg.user} --group ${cfg.group}
         '';
         ExecStop = ''
@@ -120,9 +120,12 @@ in {
         ProtectHome = true;
         PrivateTmp = true;
         PrivateDevices = true;
+        PrivateUsers = false;
         ProtectHostname = true;
+        ProtectClock = true;
         ProtectKernelTunables = true;
         ProtectKernelModules = true;
+        ProtectKernelLogs = true;
         ProtectControlGroups = true;
         RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
         LockPersonality = true;
diff --git a/nixos/modules/services/x11/colord.nix b/nixos/modules/services/x11/colord.nix
index cf113ad2af8..31ccee6aa33 100644
--- a/nixos/modules/services/x11/colord.nix
+++ b/nixos/modules/services/x11/colord.nix
@@ -26,7 +26,7 @@ in {
 
     systemd.packages = [ pkgs.colord ];
 
-    environment.etc."tmpfiles.d/colord.conf".source = "${pkgs.colord}/lib/tmpfiles.d/colord.conf";
+    systemd.tmpfiles.packages = [ pkgs.colord ];
 
     users.users.colord = {
       isSystemUser = true;
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index 6d48b899d23..75bf55a2639 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -321,7 +321,7 @@ in
 
       fonts.fonts = with pkgs; [ noto-fonts hack-font ];
       fonts.fontconfig.defaultFonts = {
-        monospace = [ "Hack" "Noto Mono" ];
+        monospace = [ "Hack" "Noto Sans Mono" ];
         sansSerif = [ "Noto Sans" ];
         serif = [ "Noto Serif" ];
       };
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix
index aa6a5ec42be..b8b36aa0532 100644
--- a/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixos/modules/services/x11/display-managers/default.nix
@@ -332,12 +332,45 @@ in
 
       };
 
+      # Configuration for automatic login. Common for all DM.
+      autoLogin = mkOption {
+        type = types.submodule {
+          options = {
+            enable = mkOption {
+              type = types.bool;
+              default = cfg.displayManager.autoLogin.user != null;
+              description = ''
+                Automatically log in as <option>autoLogin.user</option>.
+              '';
+            };
+
+            user = mkOption {
+              type = types.nullOr types.str;
+              default = null;
+              description = ''
+                User to be used for the automatic login.
+              '';
+            };
+          };
+        };
+
+        default = {};
+        description = ''
+          Auto login configuration attrset.
+        '';
+      };
+
     };
 
   };
 
   config = {
     assertions = [
+      { assertion = cfg.displayManager.autoLogin.enable -> cfg.displayManager.autoLogin.user != null;
+        message = ''
+          services.xserver.displayManager.autoLogin.enable requires services.xserver.displayManager.autoLogin.user to be set
+        '';
+      }
       {
         assertion = cfg.desktopManager.default != null || cfg.windowManager.default != null -> cfg.displayManager.defaultSession == defaultSessionFromLegacyOptions;
         message = "You cannot use both services.xserver.displayManager.defaultSession option and legacy options (services.xserver.desktopManager.default and services.xserver.windowManager.default).";
diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix
index 622ea62f3a9..23ab7f2ae43 100644
--- a/nixos/modules/services/x11/display-managers/gdm.nix
+++ b/nixos/modules/services/x11/display-managers/gdm.nix
@@ -37,6 +37,22 @@ let
 in
 
 {
+  imports = [
+    (mkRenamedOptionModule [ "services" "xserver" "displayManager" "gdm" "autoLogin" "enable" ] [
+      "services"
+      "xserver"
+      "displayManager"
+      "autoLogin"
+      "enable"
+    ])
+    (mkRenamedOptionModule [ "services" "xserver" "displayManager" "gdm" "autoLogin" "user" ] [
+      "services"
+      "xserver"
+      "displayManager"
+      "autoLogin"
+      "user"
+    ])
+  ];
 
   meta = {
     maintainers = teams.gnome.members;
@@ -56,40 +72,13 @@ in
         debugging messages in GDM
       '';
 
-      autoLogin = mkOption {
-        default = {};
+      # Auto login options specific to GDM
+      autoLogin.delay = mkOption {
+        type = types.int;
+        default = 0;
         description = ''
-          Auto login configuration attrset.
+          Seconds of inactivity after which the autologin will be performed.
         '';
-
-        type = types.submodule {
-          options = {
-            enable = mkOption {
-              type = types.bool;
-              default = false;
-              description = ''
-                Automatically log in as the sepecified <option>autoLogin.user</option>.
-              '';
-            };
-
-            user = mkOption {
-              type = types.nullOr types.str;
-              default = null;
-              description = ''
-                User to be used for the autologin.
-              '';
-            };
-
-            delay = mkOption {
-              type = types.int;
-              default = 0;
-              description = ''
-                Seconds of inactivity after which the autologin will be performed.
-              '';
-            };
-
-          };
-        };
       };
 
       wayland = mkOption {
@@ -128,12 +117,6 @@ in
 
   config = mkIf cfg.gdm.enable {
 
-    assertions = [
-      { assertion = cfg.gdm.autoLogin.enable -> cfg.gdm.autoLogin.user != null;
-        message = "GDM auto-login requires services.xserver.displayManager.gdm.autoLogin.user to be set";
-      }
-    ];
-
     services.xserver.displayManager.lightdm.enable = false;
 
     users.users.gdm =
@@ -217,7 +200,6 @@ in
       KillMode = "mixed";
       IgnoreSIGPIPE = "no";
       BusName = "org.gnome.DisplayManager";
-      StandardOutput = "syslog";
       StandardError = "inherit";
       ExecReload = "${pkgs.coreutils}/bin/kill -SIGHUP $MAINPID";
       KeyringMode = "shared";
@@ -287,14 +269,14 @@ in
     environment.etc."gdm/custom.conf".text = ''
       [daemon]
       WaylandEnable=${if cfg.gdm.wayland then "true" else "false"}
-      ${optionalString cfg.gdm.autoLogin.enable (
+      ${optionalString cfg.autoLogin.enable (
         if cfg.gdm.autoLogin.delay > 0 then ''
           TimedLoginEnable=true
-          TimedLogin=${cfg.gdm.autoLogin.user}
+          TimedLogin=${cfg.autoLogin.user}
           TimedLoginDelay=${toString cfg.gdm.autoLogin.delay}
         '' else ''
           AutomaticLoginEnable=true
-          AutomaticLogin=${cfg.gdm.autoLogin.user}
+          AutomaticLogin=${cfg.autoLogin.user}
         '')
       }
 
diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix
index 087c6b9c38a..9bc9e2bf616 100644
--- a/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix
@@ -43,7 +43,7 @@ in
     services.xserver.displayManager.lightdm.extraSeatDefaults = "greeter-show-manual-login=true";
 
     environment.etc."lightdm/io.elementary.greeter.conf".source = "${pkgs.pantheon.elementary-greeter}/etc/lightdm/io.elementary.greeter.conf";
-    environment.etc."wingpanel.d/io.elementary.greeter.whitelist".source = "${pkgs.pantheon.elementary-default-settings}/etc/wingpanel.d/io.elementary.greeter.whitelist";
+    environment.etc."wingpanel.d/io.elementary.greeter.allowed".source = "${pkgs.pantheon.elementary-default-settings}/etc/wingpanel.d/io.elementary.greeter.allowed";
 
   };
 }
diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix
index 678cade4442..143785db0b4 100644
--- a/nixos/modules/services/x11/display-managers/lightdm.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm.nix
@@ -53,8 +53,8 @@ let
       ${optionalString cfg.greeter.enable ''
         greeter-session = ${cfg.greeter.name}
       ''}
-      ${optionalString cfg.autoLogin.enable ''
-        autologin-user = ${cfg.autoLogin.user}
+      ${optionalString dmcfg.autoLogin.enable ''
+        autologin-user = ${dmcfg.autoLogin.user}
         autologin-user-timeout = ${toString cfg.autoLogin.timeout}
         autologin-session = ${sessionData.autologinSession}
       ''}
@@ -82,6 +82,20 @@ in
     ./lightdm-greeters/enso-os.nix
     ./lightdm-greeters/pantheon.nix
     ./lightdm-greeters/tiny.nix
+    (mkRenamedOptionModule [ "services" "xserver" "displayManager" "lightdm" "autoLogin" "enable" ] [
+      "services"
+      "xserver"
+      "displayManager"
+      "autoLogin"
+      "enable"
+    ])
+    (mkRenamedOptionModule [ "services" "xserver" "displayManager" "lightdm" "autoLogin" "user" ] [
+     "services"
+     "xserver"
+     "displayManager"
+     "autoLogin"
+     "user"
+    ])
   ];
 
   options = {
@@ -149,39 +163,13 @@ in
         description = "Extra lines to append to SeatDefaults section.";
       };
 
-      autoLogin = mkOption {
-        default = {};
+      # Configuration for automatic login specific to LightDM
+      autoLogin.timeout = mkOption {
+        type = types.int;
+        default = 0;
         description = ''
-          Configuration for automatic login.
+          Show the greeter for this many seconds before automatic login occurs.
         '';
-
-        type = types.submodule {
-          options = {
-            enable = mkOption {
-              type = types.bool;
-              default = false;
-              description = ''
-                Automatically log in as the specified <option>autoLogin.user</option>.
-              '';
-            };
-
-            user = mkOption {
-              type = types.nullOr types.str;
-              default = null;
-              description = ''
-                User to be used for the automatic login.
-              '';
-            };
-
-            timeout = mkOption {
-              type = types.int;
-              default = 0;
-              description = ''
-                Show the greeter for this many seconds before automatic login occurs.
-              '';
-            };
-          };
-        };
       };
 
     };
@@ -195,17 +183,12 @@ in
           LightDM requires services.xserver.enable to be true
         '';
       }
-      { assertion = cfg.autoLogin.enable -> cfg.autoLogin.user != null;
-        message = ''
-          LightDM auto-login requires services.xserver.displayManager.lightdm.autoLogin.user to be set
-        '';
-      }
-      { assertion = cfg.autoLogin.enable -> sessionData.autologinSession != null;
+      { assertion = dmcfg.autoLogin.enable -> sessionData.autologinSession != null;
         message = ''
           LightDM auto-login requires that services.xserver.displayManager.defaultSession is set.
         '';
       }
-      { assertion = !cfg.greeter.enable -> (cfg.autoLogin.enable && cfg.autoLogin.timeout == 0);
+      { assertion = !cfg.greeter.enable -> (dmcfg.autoLogin.enable && cfg.autoLogin.timeout == 0);
         message = ''
           LightDM can only run without greeter if automatic login is enabled and the timeout for it
           is set to zero.
@@ -218,7 +201,7 @@ in
 
     # Set default session in session chooser to a specified values – basically ignore session history.
     # Auto-login is already covered by a config value.
-    services.xserver.displayManager.job.preStart = optionalString (!cfg.autoLogin.enable && dmcfg.defaultSession != null) ''
+    services.xserver.displayManager.job.preStart = optionalString (!dmcfg.autoLogin.enable && dmcfg.defaultSession != null) ''
       ${setSessionScript}/bin/set-session ${dmcfg.defaultSession}
     '';
 
@@ -270,7 +253,6 @@ in
       KeyringMode = "shared";
       KillMode = "mixed";
       StandardError = "inherit";
-      StandardOutput = "syslog";
     };
 
     environment.etc."lightdm/lightdm.conf".source = lightdmConf;
diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix
index 2f42271da87..e63bb2e4453 100644
--- a/nixos/modules/services/x11/display-managers/sddm.nix
+++ b/nixos/modules/services/x11/display-managers/sddm.nix
@@ -61,9 +61,9 @@ let
     EnableHidpi=${if cfg.enableHidpi then "true" else "false"}
     SessionDir=${dmcfg.sessionData.desktops}/share/wayland-sessions
 
-    ${optionalString cfg.autoLogin.enable ''
+    ${optionalString dmcfg.autoLogin.enable ''
     [Autologin]
-    User=${cfg.autoLogin.user}
+    User=${dmcfg.autoLogin.user}
     Session=${autoLoginSessionName}.desktop
     Relogin=${boolToString cfg.autoLogin.relogin}
     ''}
@@ -78,6 +78,20 @@ in
   imports = [
     (mkRemovedOptionModule [ "services" "xserver" "displayManager" "sddm" "themes" ]
       "Set the option `services.xserver.displayManager.sddm.package' instead.")
+    (mkRenamedOptionModule [ "services" "xserver" "displayManager" "sddm" "autoLogin" "enable" ] [
+      "services"
+      "xserver"
+      "displayManager"
+      "autoLogin"
+      "enable"
+    ])
+    (mkRenamedOptionModule [ "services" "xserver" "displayManager" "sddm" "autoLogin" "user" ] [
+      "services"
+      "xserver"
+      "displayManager"
+      "autoLogin"
+      "user"
+    ])
   ];
 
   options = {
@@ -153,40 +167,14 @@ in
         '';
       };
 
-      autoLogin = mkOption {
-        default = {};
+      # Configuration for automatic login specific to SDDM
+      autoLogin.relogin = mkOption {
+        type = types.bool;
+        default = false;
         description = ''
-          Configuration for automatic login.
+          If true automatic login will kick in again on session exit (logout), otherwise it
+          will only log in automatically when the display-manager is started.
         '';
-
-        type = types.submodule {
-          options = {
-            enable = mkOption {
-              type = types.bool;
-              default = false;
-              description = ''
-                Automatically log in as <option>autoLogin.user</option>.
-              '';
-            };
-
-            user = mkOption {
-              type = types.nullOr types.str;
-              default = null;
-              description = ''
-                User to be used for the automatic login.
-              '';
-            };
-
-            relogin = mkOption {
-              type = types.bool;
-              default = false;
-              description = ''
-                If true automatic login will kick in again on session exit (logout), otherwise it
-                will only log in automatically when the display-manager is started.
-              '';
-            };
-          };
-        };
       };
 
     };
@@ -201,12 +189,7 @@ in
           SDDM requires services.xserver.enable to be true
         '';
       }
-      { assertion = cfg.autoLogin.enable -> cfg.autoLogin.user != null;
-        message = ''
-          SDDM auto-login requires services.xserver.displayManager.sddm.autoLogin.user to be set
-        '';
-      }
-      { assertion = cfg.autoLogin.enable -> autoLoginSessionName != null;
+      { assertion = dmcfg.autoLogin.enable -> autoLoginSessionName != null;
         message = ''
           SDDM auto-login requires that services.xserver.displayManager.defaultSession is set.
         '';
diff --git a/nixos/modules/services/x11/imwheel.nix b/nixos/modules/services/x11/imwheel.nix
index 3923df498e7..51f72dadbd4 100644
--- a/nixos/modules/services/x11/imwheel.nix
+++ b/nixos/modules/services/x11/imwheel.nix
@@ -61,7 +61,8 @@ in
             "--kill"
           ] ++ cfg.extraOptions);
           ExecStop = "${pkgs.procps}/bin/pkill imwheel";
-          Restart = "on-failure";
+          RestartSec = 3;
+          Restart = "always";
         };
       };
     };
diff --git a/nixos/modules/services/x11/urserver.nix b/nixos/modules/services/x11/urserver.nix
new file mode 100644
index 00000000000..0beb62eb766
--- /dev/null
+++ b/nixos/modules/services/x11/urserver.nix
@@ -0,0 +1,38 @@
+# urserver service
+{ config, lib, pkgs, ... }:
+
+let
+  cfg = config.services.urserver;
+in {
+
+  options.services.urserver.enable = lib.mkEnableOption "urserver";
+
+  config = lib.mkIf cfg.enable {
+
+    networking.firewall = {
+      allowedTCPPorts = [ 9510 9512 ];
+      allowedUDPPorts = [ 9511 9512 ];
+    };
+
+    systemd.user.services.urserver =  {
+      description = ''
+        Server for Unified Remote: The one-and-only remote for your computer.
+      '';
+      wantedBy = [ "graphical-session.target" ];
+      partOf = [ "graphical-session.target" ];
+      after = [ "network.target" ];
+      serviceConfig = {
+        Type = "forking";
+        ExecStart = ''
+          ${pkgs.urserver}/bin/urserver --daemon
+        '';
+        ExecStop = ''
+          ${pkgs.procps}/bin/pkill urserver
+        '';
+        RestartSec = 3;
+        Restart = "on-failure";
+      };
+    };
+  };
+
+}
diff --git a/nixos/modules/services/x11/window-managers/qtile.nix b/nixos/modules/services/x11/window-managers/qtile.nix
index ad3b65150b0..cadc316bbc4 100644
--- a/nixos/modules/services/x11/window-managers/qtile.nix
+++ b/nixos/modules/services/x11/window-managers/qtile.nix
@@ -19,7 +19,7 @@ in
         waitPID=$!
       '';
     }];
-    
+
     environment.systemPackages = [ pkgs.qtile ];
   };
 }
diff --git a/nixos/modules/services/x11/window-managers/xmonad.nix b/nixos/modules/services/x11/window-managers/xmonad.nix
index 30c59b88f82..070758720fe 100644
--- a/nixos/modules/services/x11/window-managers/xmonad.nix
+++ b/nixos/modules/services/x11/window-managers/xmonad.nix
@@ -82,12 +82,11 @@ in
     services.xserver.windowManager = {
       session = [{
         name = "xmonad";
-        start = if (cfg.config != null) then ''
-          ${xmonadBin}
-          waitPID=$!
-        '' else ''
-          systemd-cat -t xmonad ${xmonad}/bin/xmonad &
-          waitPID=$!
+        start = let
+          xmonadCommand = if (cfg.config != null) then xmonadBin else "${xmonad}/bin/xmonad";
+        in ''
+           systemd-cat -t xmonad ${xmonadCommand} &
+           waitPID=$!
         '';
       }];
     };
diff --git a/nixos/modules/system/activation/top-level.nix b/nixos/modules/system/activation/top-level.nix
index f6739977fa4..fb8644dd13a 100644
--- a/nixos/modules/system/activation/top-level.nix
+++ b/nixos/modules/system/activation/top-level.nix
@@ -92,9 +92,7 @@ let
   # `switch-to-configuration' that activates the configuration and
   # makes it bootable.
   baseSystem = pkgs.stdenvNoCC.mkDerivation {
-    name = let hn = config.networking.hostName;
-               nn = if (hn != "") then hn else "unnamed";
-        in "nixos-system-${nn}-${config.system.nixos.label}";
+    name = "nixos-system-${config.system.name}-${config.system.nixos.label}";
     preferLocalBuild = true;
     allowSubstitutes = false;
     buildCommand = systemBuilder;
@@ -265,6 +263,21 @@ in
       '';
     };
 
+    system.name = mkOption {
+      type = types.str;
+      default =
+        if config.networking.hostName == ""
+        then "unnamed"
+        else config.networking.hostName;
+      defaultText = '''networking.hostName' if non empty else "unnamed"'';
+      description = ''
+        The name of the system used in the <option>system.build.toplevel</option> derivation.
+        </para><para>
+        That derivation has the following name:
+        <literal>"nixos-system-''${config.system.name}-''${config.system.nixos.label}"</literal>
+      '';
+    };
+
   };
 
 
diff --git a/nixos/modules/system/boot/emergency-mode.nix b/nixos/modules/system/boot/emergency-mode.nix
index 9cdab841619..ec697bcee26 100644
--- a/nixos/modules/system/boot/emergency-mode.nix
+++ b/nixos/modules/system/boot/emergency-mode.nix
@@ -34,4 +34,4 @@ with lib;
 
   };
 
-}
\ No newline at end of file
+}
diff --git a/nixos/modules/system/boot/initrd-network.nix b/nixos/modules/system/boot/initrd-network.nix
index 0ab6e626b34..ec794d6eb01 100644
--- a/nixos/modules/system/boot/initrd-network.nix
+++ b/nixos/modules/system/boot/initrd-network.nix
@@ -139,7 +139,7 @@ in
     boot.initrd.postMountCommands = mkIf cfg.flushBeforeStage2 ''
       for iface in $ifaces; do
         ip address flush "$iface"
-        ip link down "$iface"
+        ip link set "$iface" down
       done
     '';
 
diff --git a/nixos/modules/system/boot/initrd-openvpn.nix b/nixos/modules/system/boot/initrd-openvpn.nix
new file mode 100644
index 00000000000..e59bc7b6678
--- /dev/null
+++ b/nixos/modules/system/boot/initrd-openvpn.nix
@@ -0,0 +1,81 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.boot.initrd.network.openvpn;
+
+in
+
+{
+
+  options = {
+
+    boot.initrd.network.openvpn.enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Starts an OpenVPN client during initrd boot. It can be used to e.g.
+        remotely accessing the SSH service controlled by
+        <option>boot.initrd.network.ssh</option> or other network services
+        included. Service is killed when stage-1 boot is finished.
+      '';
+    };
+
+    boot.initrd.network.openvpn.configuration = mkOption {
+      type = types.path; # Same type as boot.initrd.secrets
+      description = ''
+        The configuration file for OpenVPN.
+
+        <warning>
+          <para>
+            Unless your bootloader supports initrd secrets, this configuration
+            is stored insecurely in the global Nix store.
+          </para>
+        </warning>
+      '';
+      example = "./configuration.ovpn";
+    };
+
+  };
+
+  config = mkIf (config.boot.initrd.network.enable && cfg.enable) {
+    assertions = [
+      {
+        assertion = cfg.configuration != null;
+        message = "You should specify a configuration for initrd OpenVPN";
+      }
+    ];
+
+    # Add kernel modules needed for OpenVPN
+    boot.initrd.kernelModules = [ "tun" "tap" ];
+
+    # Add openvpn and ip binaries to the initrd
+    # 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
+
+      cp -pv ${pkgs.glibc}/lib/libresolv.so.2 $out/lib
+      cp -pv ${pkgs.glibc}/lib/libnss_dns.so.2 $out/lib
+    '';
+
+    boot.initrd.secrets = {
+      "/etc/initrd.ovpn" = cfg.configuration;
+    };
+
+    # openvpn --version would exit with 1 instead of 0
+    boot.initrd.extraUtilsCommandsTest = ''
+      $out/bin/openvpn --show-gateway
+    '';
+
+    # Add `iproute /bin/ip` to the config, to ensure that openvpn
+    # is able to set the routes
+    boot.initrd.network.postCommands = ''
+      (cat /etc/initrd.ovpn; echo -e '\niproute /bin/ip') | \
+        openvpn /dev/stdin &
+    '';
+  };
+
+}
diff --git a/nixos/modules/system/boot/kernel_config.nix b/nixos/modules/system/boot/kernel_config.nix
index 85bd420e304..783685c9dfe 100644
--- a/nixos/modules/system/boot/kernel_config.nix
+++ b/nixos/modules/system/boot/kernel_config.nix
@@ -54,7 +54,7 @@ let
         type = types.bool // { merge = mergeFalseByDefault; };
         default = false;
         description = ''
-          Wether option should generate a failure when unused.
+          Whether option should generate a failure when unused.
           Upon merging values, mandatory wins over optional.
         '';
       };
diff --git a/nixos/modules/system/boot/loader/generations-dir/generations-dir-builder.sh b/nixos/modules/system/boot/loader/generations-dir/generations-dir-builder.sh
index e723b9eb7cb..8ae23dc988c 100644
--- a/nixos/modules/system/boot/loader/generations-dir/generations-dir-builder.sh
+++ b/nixos/modules/system/boot/loader/generations-dir/generations-dir-builder.sh
@@ -63,7 +63,7 @@ addEntry() {
         copyToKernelsDir $kernel; kernel=$result
         copyToKernelsDir $initrd; initrd=$result
     fi
-    
+
     mkdir -p $outdir
     ln -sf $(readlink -f $path) $outdir/system
     ln -sf $(readlink -f $path/init) $outdir/init
diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix
index b760c3f96dd..20e39628eab 100644
--- a/nixos/modules/system/boot/loader/grub/grub.nix
+++ b/nixos/modules/system/boot/loader/grub/grub.nix
@@ -56,11 +56,13 @@ let
       bootloaderId = if args.efiBootloaderId == null then "NixOS${efiSysMountPoint'}" else args.efiBootloaderId;
       timeout = if config.boot.loader.timeout == null then -1 else config.boot.loader.timeout;
       users = if cfg.users == {} || cfg.version != 1 then cfg.users else throw "GRUB version 1 does not support user accounts.";
+      theme = f cfg.theme;
       inherit efiSysMountPoint;
       inherit (args) devices;
       inherit (efi) canTouchEfiVariables;
       inherit (cfg)
         version extraConfig extraPerEntryConfig extraEntries forceInstall useOSProber
+        extraGrubInstallArgs
         extraEntriesBeforeNixOS extraPrepareConfig configurationLimit copyKernels
         default fsIdentifier efiSupport efiInstallAsRemovable gfxmodeEfi gfxmodeBios gfxpayloadEfi gfxpayloadBios;
       path = with pkgs; makeBinPath (
@@ -298,6 +300,33 @@ in
         '';
       };
 
+      extraGrubInstallArgs = mkOption {
+        default = [ ];
+        example = [ "--modules=nativedisk ahci pata part_gpt part_msdos diskfilter mdraid1x lvm ext2" ];
+        type = types.listOf types.str;
+        description = ''
+          Additional arguments passed to <literal>grub-install</literal>.
+
+          A use case for this is to build specific GRUB2 modules
+          directly into the GRUB2 kernel image, so that they are available
+          and activated even in the <literal>grub rescue</literal> shell.
+
+          They are also necessary when the BIOS/UEFI is bugged and cannot
+          correctly read large disks (e.g. above 2 TB), so GRUB2's own
+          <literal>nativedisk</literal> and related modules can be used
+          to use its own disk drivers. The example shows one such case.
+          This is also useful for booting from USB.
+          See the
+          <link xlink:href="http://git.savannah.gnu.org/cgit/grub.git/tree/grub-core/commands/nativedisk.c?h=grub-2.04#n326">
+          GRUB source code
+          </link>
+          for which disk modules are available.
+
+          The list elements are passed directly as <literal>argv</literal>
+          arguments to the <literal>grub-install</literal> program, in order.
+        '';
+      };
+
       extraPerEntryConfig = mkOption {
         default = "";
         example = "root (hd0)";
@@ -398,6 +427,19 @@ in
         '';
       };
 
+      theme = mkOption {
+        type = types.nullOr types.path;
+        example = literalExample "pkgs.nixos-grub2-theme";
+        default = null;
+        description = ''
+          Grub theme to be used.
+
+          <note><para>
+          This options has no effect for GRUB 1.
+          </para></note>
+        '';
+      };
+
       splashMode = mkOption {
         type = types.enum [ "normal" "stretch" ];
         default = "stretch";
@@ -669,7 +711,7 @@ in
         in pkgs.writeScript "install-grub.sh" (''
         #!${pkgs.runtimeShell}
         set -e
-        export PERL5LIB=${with pkgs.perlPackages; makePerlPath [ FileSlurp XMLLibXML XMLSAX XMLSAXBase ListCompare ]}
+        export PERL5LIB=${with pkgs.perlPackages; makePerlPath [ FileSlurp FileCopyRecursive XMLLibXML XMLSAX XMLSAXBase ListCompare JSON ]}
         ${optionalString cfg.enableCryptodisk "export GRUB_ENABLE_CRYPTODISK=y"}
       '' + flip concatMapStrings cfg.mirroredBoots (args: ''
         ${pkgs.perl}/bin/perl ${install-grub-pl} ${grubConfig args} $@
diff --git a/nixos/modules/system/boot/loader/grub/install-grub.pl b/nixos/modules/system/boot/loader/grub/install-grub.pl
index 918a66866e9..59f5638044f 100644
--- a/nixos/modules/system/boot/loader/grub/install-grub.pl
+++ b/nixos/modules/system/boot/loader/grub/install-grub.pl
@@ -6,8 +6,11 @@ use File::Basename;
 use File::Path;
 use File::stat;
 use File::Copy;
+use File::Copy::Recursive qw(rcopy pathrm);
 use File::Slurp;
 use File::Temp;
+use JSON;
+use File::Find;
 require List::Compare;
 use POSIX;
 use Cwd;
@@ -20,6 +23,16 @@ my $dom = XML::LibXML->load_xml(location => $ARGV[0]);
 
 sub get { my ($name) = @_; return $dom->findvalue("/expr/attrs/attr[\@name = '$name']/*/\@value"); }
 
+sub getList {
+    my ($name) = @_;
+    my @list = ();
+    foreach my $entry ($dom->findnodes("/expr/attrs/attr[\@name = '$name']/list/string/\@value")) {
+        $entry = $entry->findvalue(".") or die;
+        push(@list, $entry);
+    }
+    return @list;
+}
+
 sub readFile {
     my ($fn) = @_; local $/ = undef;
     open FILE, "<$fn" or return undef; my $s = <FILE>; close FILE;
@@ -71,6 +84,7 @@ my $gfxpayloadBios = get("gfxpayloadBios");
 my $bootloaderId = get("bootloaderId");
 my $forceInstall = get("forceInstall");
 my $font = get("font");
+my $theme = get("theme");
 $ENV{'PATH'} = get("path");
 
 die "unsupported GRUB version\n" if $grubVersion != 1 && $grubVersion != 2;
@@ -241,7 +255,7 @@ if ($grubVersion == 1) {
         timeout $timeout
     ";
     if ($splashImage) {
-        copy $splashImage, "$bootPath/background.xpm.gz" or die "cannot copy $splashImage to $bootPath\n";
+        copy $splashImage, "$bootPath/background.xpm.gz" or die "cannot copy $splashImage to $bootPath: $!\n";
         $conf .= "splashimage " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/background.xpm.gz\n";
     }
 }
@@ -319,7 +333,7 @@ else {
     ";
 
     if ($font) {
-        copy $font, "$bootPath/converted-font.pf2" or die "cannot copy $font to $bootPath\n";
+        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
@@ -347,7 +361,7 @@ else {
 		    background_color '$backgroundColor'
 		    ";
 		}
-        copy $splashImage, "$bootPath/background$suffix" or die "cannot copy $splashImage to $bootPath\n";
+        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
@@ -359,6 +373,28 @@ else {
             fi
         ";
     }
+
+    rmtree("$bootPath/theme") or die "cannot clean up theme folder in $bootPath\n" if -e "$bootPath/theme";
+
+    if ($theme) {
+        # 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 );
+     }
 }
 
 $conf .= "$extraConfig\n";
@@ -381,8 +417,8 @@ sub copyToKernelsDir {
     # kernels or initrd if this script is ever interrupted.
     if (! -e $dst) {
         my $tmp = "$dst.tmp";
-        copy $path, $tmp or die "cannot copy $path to $tmp\n";
-        rename $tmp, $dst or die "cannot rename $tmp to $dst\n";
+        copy $path, $tmp or die "cannot copy $path to $tmp: $!\n";
+        rename $tmp, $dst or die "cannot rename $tmp to $dst: $!\n";
     }
     $copied{$dst} = 1;
     return ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/kernels/$name";
@@ -405,10 +441,10 @@ sub addEntry {
       # 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";
+      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";
+        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 {
@@ -575,7 +611,7 @@ if (get("useOSProber") eq "true") {
 }
 
 # Atomically switch to the new config
-rename $tmpFile, $confFile or die "cannot rename $tmpFile to $confFile\n";
+rename $tmpFile, $confFile or die "cannot rename $tmpFile to $confFile: $!\n";
 
 
 # Remove obsolete files from $bootPath/kernels.
@@ -596,9 +632,12 @@ struct(GrubState => {
     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 {
-    my $defaultGrubState = GrubState->new(name => "", version => "", efi => "", devices => "", efiMountPoint => "" );
+    my $defaultGrubState = GrubState->new(name => "", version => "", efi => "", devices => "", efiMountPoint => "", extraGrubInstallArgs => () );
     open FILE, "<$bootPath/grub/state" or return $defaultGrubState;
     local $/ = "\n";
     my $name = <FILE>;
@@ -611,24 +650,37 @@ sub readGrubState {
     chomp($devices);
     my $efiMountPoint = <FILE>;
     chomp($efiMountPoint);
+    # Historically, arguments in the state file were one per each line, but that
+    # gets really messy when newlines are involved, structured arguments
+    # like lists are needed (they have to have a separator encoding), or even worse,
+    # when we need to remove a setting in the future. Thus, the 6th line is a JSON
+    # object that can store structured data, with named keys, and all new state
+    # should go in there.
+    my $jsonStateLine = <FILE>;
+    # For historical reasons we do not check the values above for un-definedness
+    # (that is, when the state file has too few lines and EOF is reached),
+    # because the above come from the first version of this logic and are thus
+    # guaranteed to be present.
+    $jsonStateLine = defined $jsonStateLine ? $jsonStateLine : '{}'; # empty JSON object
+    chomp($jsonStateLine);
+    if ($jsonStateLine eq "") {
+        $jsonStateLine = '{}'; # empty JSON object
+    }
+    my %jsonState = %{decode_json($jsonStateLine)};
+    my @extraGrubInstallArgs = exists($jsonState{'extraGrubInstallArgs'}) ? @{$jsonState{'extraGrubInstallArgs'}} : ();
     close FILE;
-    my $grubState = GrubState->new(name => $name, version => $version, efi => $efi, devices => $devices, efiMountPoint => $efiMountPoint );
+    my $grubState = GrubState->new(name => $name, version => $version, efi => $efi, devices => $devices, efiMountPoint => $efiMountPoint, extraGrubInstallArgs => \@extraGrubInstallArgs );
     return $grubState
 }
 
-sub getDeviceTargets {
-    my @devices = ();
-    foreach my $dev ($dom->findnodes('/expr/attrs/attr[@name = "devices"]/list/string/@value')) {
-        $dev = $dev->findvalue(".") or die;
-        push(@devices, $dev);
-    }
-    return @devices;
-}
-my @deviceTargets = getDeviceTargets();
+my @deviceTargets = getList('devices');
 my $prevGrubState = readGrubState();
 my @prevDeviceTargets = split/,/, $prevGrubState->devices;
+my @extraGrubInstallArgs = getList('extraGrubInstallArgs');
+my @prevExtraGrubInstallArgs = @{$prevGrubState->extraGrubInstallArgs};
 
 my $devicesDiffer = scalar (List::Compare->new( '-u', '-a', \@deviceTargets, \@prevDeviceTargets)->get_symmetric_difference());
+my $extraGrubInstallArgsDiffer = scalar (List::Compare->new( '-u', '-a', \@extraGrubInstallArgs, \@prevExtraGrubInstallArgs)->get_symmetric_difference());
 my $nameDiffer = get("fullName") ne $prevGrubState->name;
 my $versionDiffer = get("fullVersion") ne $prevGrubState->version;
 my $efiDiffer = $efiTarget ne $prevGrubState->efi;
@@ -637,25 +689,25 @@ if (($ENV{'NIXOS_INSTALL_GRUB'} // "") eq "1") {
     warn "NIXOS_INSTALL_GRUB env var deprecated, use NIXOS_INSTALL_BOOTLOADER";
     $ENV{'NIXOS_INSTALL_BOOTLOADER'} = "1";
 }
-my $requireNewInstall = $devicesDiffer || $nameDiffer || $versionDiffer || $efiDiffer || $efiMountPointDiffer || (($ENV{'NIXOS_INSTALL_BOOTLOADER'} // "") eq "1");
+my $requireNewInstall = $devicesDiffer || $extraGrubInstallArgsDiffer || $nameDiffer || $versionDiffer || $efiDiffer || $efiMountPointDiffer || (($ENV{'NIXOS_INSTALL_BOOTLOADER'} // "") eq "1");
 
 # install a symlink so that grub can detect the boot drive
-my $tmpDir = File::Temp::tempdir(CLEANUP => 1) or die "Failed to create temporary space";
-symlink "$bootPath", "$tmpDir/boot" or die "Failed to symlink $tmpDir/boot";
+my $tmpDir = File::Temp::tempdir(CLEANUP => 1) or die "Failed to create temporary space: $!";
+symlink "$bootPath", "$tmpDir/boot" or die "Failed to symlink $tmpDir/boot: $!";
 
 # install non-EFI GRUB
 if (($requireNewInstall != 0) && ($efiTarget eq "no" || $efiTarget eq "both")) {
     foreach my $dev (@deviceTargets) {
         next if $dev eq "nodev";
         print STDERR "installing the GRUB $grubVersion boot loader on $dev...\n";
-        my @command = ("$grub/sbin/grub-install", "--recheck", "--root-directory=$tmpDir", Cwd::abs_path($dev));
+        my @command = ("$grub/sbin/grub-install", "--recheck", "--root-directory=$tmpDir", Cwd::abs_path($dev), @extraGrubInstallArgs);
         if ($forceInstall eq "true") {
             push @command, "--force";
         }
         if ($grubTarget ne "") {
             push @command, "--target=$grubTarget";
         }
-        (system @command) == 0 or die "$0: installation of GRUB on $dev failed\n";
+        (system @command) == 0 or die "$0: installation of GRUB on $dev failed: $!\n";
     }
 }
 
@@ -663,7 +715,7 @@ if (($requireNewInstall != 0) && ($efiTarget eq "no" || $efiTarget eq "both")) {
 # install EFI GRUB
 if (($requireNewInstall != 0) && ($efiTarget eq "only" || $efiTarget eq "both")) {
     print STDERR "installing the GRUB $grubVersion EFI boot loader into $efiSysMountPoint...\n";
-    my @command = ("$grubEfi/sbin/grub-install", "--recheck", "--target=$grubTargetEfi", "--boot-directory=$bootPath", "--efi-directory=$efiSysMountPoint");
+    my @command = ("$grubEfi/sbin/grub-install", "--recheck", "--target=$grubTargetEfi", "--boot-directory=$bootPath", "--efi-directory=$efiSysMountPoint", @extraGrubInstallArgs);
     if ($forceInstall eq "true") {
         push @command, "--force";
     }
@@ -674,17 +726,29 @@ if (($requireNewInstall != 0) && ($efiTarget eq "only" || $efiTarget eq "both"))
         push @command, "--removable" if $efiInstallAsRemovable eq "true";
     }
 
-    (system @command) == 0 or die "$0: installation of GRUB EFI into $efiSysMountPoint failed\n";
+    (system @command) == 0 or die "$0: installation of GRUB EFI into $efiSysMountPoint failed: $!\n";
 }
 
 
 # update GRUB state file
 if ($requireNewInstall != 0) {
-    open FILE, ">$bootPath/grub/state" or die "cannot create $bootPath/grub/state: $!\n";
+    # Temp file for atomic rename.
+    my $stateFile = "$bootPath/grub/state";
+    my $stateFileTmp = $stateFile . ".tmp";
+
+    open FILE, ">$stateFileTmp" or die "cannot create $stateFileTmp: $!\n";
     print FILE get("fullName"), "\n" or die;
     print FILE get("fullVersion"), "\n" or die;
     print FILE $efiTarget, "\n" or die;
     print FILE join( ",", @deviceTargets ), "\n" or die;
     print FILE $efiSysMountPoint, "\n" or die;
+    my %jsonState = (
+        extraGrubInstallArgs => \@extraGrubInstallArgs
+    );
+    my $jsonStateLine = encode_json(\%jsonState);
+    print FILE $jsonStateLine, "\n" or die;
     close FILE or die;
+
+    # Atomically switch to the new state file
+    rename $stateFileTmp, $stateFile or die "cannot rename $stateFileTmp to $stateFile: $!\n";
 }
diff --git a/nixos/modules/system/boot/loader/init-script/init-script-builder.sh b/nixos/modules/system/boot/loader/init-script/init-script-builder.sh
index 6f48d2539ac..2a1ec479fea 100644
--- a/nixos/modules/system/boot/loader/init-script/init-script-builder.sh
+++ b/nixos/modules/system/boot/loader/init-script/init-script-builder.sh
@@ -53,7 +53,7 @@ addEntry() {
       echo "exec $stage2"
     )"
 
-    [ "$path" != "$defaultConfig" ] || { 
+    [ "$path" != "$defaultConfig" ] || {
       echo "$content" > $tmp
       echo "# older configurations: $targetOther" >> $tmp
       chmod +x $tmp
diff --git a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
index 22d459ceb04..f0bd76a3c1d 100644
--- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
+++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
@@ -64,10 +64,10 @@ in {
       example = 120;
       type = types.nullOr types.int;
       description = ''
-        Maximum number of latest generations in the boot menu. 
+        Maximum number of latest generations in the boot menu.
         Useful to prevent boot partition running out of disk space.
 
-        <literal>null</literal> means no limit i.e. all generations 
+        <literal>null</literal> means no limit i.e. all generations
         that were not garbage collected yet.
       '';
     };
diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix
index 31f1e22cda3..88190e8200b 100644
--- a/nixos/modules/system/boot/luksroot.nix
+++ b/nixos/modules/system/boot/luksroot.nix
@@ -140,7 +140,7 @@ let
     umount /crypt-ramfs 2>/dev/null
   '';
 
-  openCommand = name': { name, device, header, keyFile, keyFileSize, keyFileOffset, allowDiscards, yubikey, gpgCard, fido2, fallbackToPassword, ... }: assert name' == name;
+  openCommand = name': { name, device, header, keyFile, keyFileSize, keyFileOffset, allowDiscards, yubikey, gpgCard, fido2, fallbackToPassword, preOpenCommands, postOpenCommands,... }: assert name' == name;
   let
     csopen   = "cryptsetup luksOpen ${device} ${name} ${optionalString allowDiscards "--allow-discards"} ${optionalString (header != null) "--header=${header}"}";
     cschange = "cryptsetup luksChangeKey ${device} ${optionalString (header != null) "--header=${header}"}";
@@ -412,11 +412,17 @@ let
     }
     ''}
 
+    # commands to run right before we mount our device
+    ${preOpenCommands}
+
     ${if (luks.yubikeySupport && (yubikey != null)) || (luks.gpgSupport && (gpgCard != null)) || (luks.fido2Support && (fido2.credential != null)) then ''
     open_with_hardware
     '' else ''
     open_normally
     ''}
+
+    # commands to run right after we mounted our device
+    ${postOpenCommands}
   '';
 
   askPass = pkgs.writeScriptBin "cryptsetup-askpass" ''
@@ -467,8 +473,6 @@ in
         [ "aes" "aes_generic" "blowfish" "twofish"
           "serpent" "cbc" "xts" "lrw" "sha1" "sha256" "sha512"
           "af_alg" "algif_skcipher"
-
-          (if pkgs.stdenv.hostPlatform.system == "x86_64-linux" then "aes_x86_64" else "aes_i586")
         ];
       description = ''
         A list of cryptographic kernel modules needed to decrypt the root device(s).
@@ -512,7 +516,7 @@ in
         <filename>/dev/mapper/<replaceable>name</replaceable></filename>.
       '';
 
-      type = with types; loaOf (submodule (
+      type = with types; attrsOf (submodule (
         { name, ... }: { options = {
 
           name = mkOption {
@@ -637,7 +641,7 @@ in
             credential = mkOption {
               default = null;
               example = "f1d00200d8dc783f7fb1e10ace8da27f8312d72692abfca2f7e4960a73f48e82e1f7571f6ebfcee9fb434f9886ccc8fcc52a6614d8d2";
-              type = types.str;
+              type = types.nullOr types.str;
               description = "The FIDO2 credential ID.";
             };
 
@@ -735,6 +739,30 @@ in
               };
             });
           };
+
+          preOpenCommands = mkOption {
+            type = types.lines;
+            default = "";
+            example = ''
+              mkdir -p /tmp/persistent
+              mount -t zfs rpool/safe/persistent /tmp/persistent
+            '';
+            description = ''
+              Commands that should be run right before we try to mount our LUKS device.
+              This can be useful, if the keys needed to open the drive is on another partion.
+            '';
+          };
+
+          postOpenCommands = mkOption {
+            type = types.lines;
+            default = "";
+            example = ''
+              umount /tmp/persistent
+            '';
+            description = ''
+              Commands that should be run right after we have mounted our LUKS device.
+            '';
+          };
         };
       }));
     };
diff --git a/nixos/modules/system/boot/modprobe.nix b/nixos/modules/system/boot/modprobe.nix
index dee0ab470c9..c75f32c4d99 100644
--- a/nixos/modules/system/boot/modprobe.nix
+++ b/nixos/modules/system/boot/modprobe.nix
@@ -28,7 +28,7 @@ with lib;
         Any additional configuration to be appended to the generated
         <filename>modprobe.conf</filename>.  This is typically used to
         specify module options.  See
-        <citerefentry><refentrytitle>modprobe.conf</refentrytitle>
+        <citerefentry><refentrytitle>modprobe.d</refentrytitle>
         <manvolnum>5</manvolnum></citerefentry> for details.
       '';
       type = types.lines;
diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix
index b0545363b33..47689b2a470 100644
--- a/nixos/modules/system/boot/networkd.nix
+++ b/nixos/modules/system/boot/networkd.nix
@@ -8,359 +8,714 @@ let
 
   cfg = config.systemd.network;
 
-  checkLink = checkUnitConfig "Link" [
-    (assertOnlyFields [
-      "Description" "Alias" "MACAddressPolicy" "MACAddress" "NamePolicy" "Name" "OriginalName"
-      "MTUBytes" "BitsPerSecond" "Duplex" "AutoNegotiation" "WakeOnLan" "Port" "Advertise"
-      "TCPSegmentationOffload" "TCP6SegmentationOffload" "GenericSegmentationOffload"
-      "GenericReceiveOffload" "LargeReceiveOffload" "RxChannels" "TxChannels"
-      "OtherChannels" "CombinedChannels"
-    ])
-    (assertValueOneOf "MACAddressPolicy" ["persistent" "random" "none"])
-    (assertMacAddress "MACAddress")
-    (assertByteFormat "MTUBytes")
-    (assertByteFormat "BitsPerSecond")
-    (assertValueOneOf "Duplex" ["half" "full"])
-    (assertValueOneOf "AutoNegotiation" boolValues)
-    (assertValueOneOf "WakeOnLan" ["phy" "unicast" "multicast" "broadcast" "arp" "magic" "secureon" "off"])
-    (assertValueOneOf "Port" ["tp" "aui" "bnc" "mii" "fibre"])
-    (assertValueOneOf "TCPSegmentationOffload" boolValues)
-    (assertValueOneOf "TCP6SegmentationOffload" boolValues)
-    (assertValueOneOf "GenericSegmentationOffload" boolValues)
-    (assertValueOneOf "UDPSegmentationOffload" boolValues)
-    (assertValueOneOf "GenericReceiveOffload" boolValues)
-    (assertValueOneOf "LargeReceiveOffload" boolValues)
-    (assertInt "RxChannels")
-    (assertMinimum "RxChannels" 1)
-    (assertInt "TxChannels")
-    (assertMinimum "TxChannels" 1)
-    (assertInt "OtherChannels")
-    (assertMinimum "OtherChannels" 1)
-    (assertInt "CombinedChannels")
-    (assertMinimum "CombinedChannels" 1)
-  ];
-
-  checkNetdev = checkUnitConfig "Netdev" [
-    (assertOnlyFields [
-      "Description" "Name" "Kind" "MTUBytes" "MACAddress"
-    ])
-    (assertHasField "Name")
-    (assertHasField "Kind")
-    (assertValueOneOf "Kind" [
-      "bond" "bridge" "dummy" "gre" "gretap" "ip6gre" "ip6tnl" "ip6gretap" "ipip"
-      "ipvlan" "macvlan" "macvtap" "sit" "tap" "tun" "veth" "vlan" "vti" "vti6"
-      "vxlan" "geneve" "vrf" "vcan" "vxcan" "wireguard" "netdevsim" "xfrm"
-    ])
-    (assertByteFormat "MTUBytes")
-    (assertMacAddress "MACAddress")
-  ];
-
-  checkVRF = checkUnitConfig "VRF" [
-    (assertOnlyFields [ "Table" ])
-    (assertMinimum "Table" 0)
-  ];
+  check = {
+
+    link = {
+
+      sectionLink = checkUnitConfig "Link" [
+        (assertOnlyFields [
+          "Description"
+          "Alias"
+          "MACAddressPolicy"
+          "MACAddress"
+          "NamePolicy"
+          "Name"
+          "AlternativeNamesPolicy"
+          "AlternativeName"
+          "MTUBytes"
+          "BitsPerSecond"
+          "Duplex"
+          "AutoNegotiation"
+          "WakeOnLan"
+          "Port"
+          "Advertise"
+          "ReceiveChecksumOffload"
+          "TransmitChecksumOffload"
+          "TCPSegmentationOffload"
+          "TCP6SegmentationOffload"
+          "GenericSegmentationOffload"
+          "GenericReceiveOffload"
+          "LargeReceiveOffload"
+          "RxChannels"
+          "TxChannels"
+          "OtherChannels"
+          "CombinedChannels"
+          "RxBufferSize"
+          "TxBufferSize"
+        ])
+        (assertValueOneOf "MACAddressPolicy" ["persistent" "random" "none"])
+        (assertMacAddress "MACAddress")
+        (assertByteFormat "MTUBytes")
+        (assertByteFormat "BitsPerSecond")
+        (assertValueOneOf "Duplex" ["half" "full"])
+        (assertValueOneOf "AutoNegotiation" boolValues)
+        (assertValueOneOf "WakeOnLan" ["phy" "unicast" "multicast" "broadcast" "arp" "magic" "secureon" "off"])
+        (assertValueOneOf "Port" ["tp" "aui" "bnc" "mii" "fibre"])
+        (assertValueOneOf "ReceiveChecksumOffload" boolValues)
+        (assertValueOneOf "TransmitChecksumOffload" boolValues)
+        (assertValueOneOf "TCPSegmentationOffload" boolValues)
+        (assertValueOneOf "TCP6SegmentationOffload" boolValues)
+        (assertValueOneOf "GenericSegmentationOffload" boolValues)
+        (assertValueOneOf "GenericReceiveOffload" boolValues)
+        (assertValueOneOf "LargeReceiveOffload" boolValues)
+        (assertInt "RxChannels")
+        (assertRange "RxChannels" 1 4294967295)
+        (assertInt "TxChannels")
+        (assertRange "TxChannels" 1 4294967295)
+        (assertInt "OtherChannels")
+        (assertRange "OtherChannels" 1 4294967295)
+        (assertInt "CombinedChannels")
+        (assertRange "CombinedChannels" 1 4294967295)
+        (assertInt "RxBufferSize")
+        (assertInt "TxBufferSize")
+      ];
+    };
 
-  # NOTE The PrivateKey directive is missing on purpose here, please
-  # do not add it to this list. The nix store is world-readable let's
-  # refrain ourselves from providing a footgun.
-  checkWireGuard = checkUnitConfig "WireGuard" [
-    (assertOnlyFields [
-      "PrivateKeyFile" "ListenPort" "FwMark"
-    ])
-    # The following check won't work on nix <= 2.2
-    # see https://github.com/NixOS/nix/pull/2378
-    #
-    # Add this again when we'll have drop the
-    # nix < 2.2 support.
-    # (assertRange "FwMark" 1 4294967295)
-  ];
+    netdev = let
+
+      tunChecks = [
+        (assertOnlyFields [
+          "MultiQueue"
+          "PacketInfo"
+          "VNetHeader"
+          "User"
+          "Group"
+        ])
+        (assertValueOneOf "MultiQueue" boolValues)
+        (assertValueOneOf "PacketInfo" boolValues)
+        (assertValueOneOf "VNetHeader" boolValues)
+      ];
+    in {
+
+      sectionNetdev = checkUnitConfig "Netdev" [
+        (assertOnlyFields [
+          "Description"
+          "Name"
+          "Kind"
+          "MTUBytes"
+          "MACAddress"
+        ])
+        (assertHasField "Name")
+        (assertHasField "Kind")
+        (assertValueOneOf "Kind" [
+          "bond"
+          "bridge"
+          "dummy"
+          "gre"
+          "gretap"
+          "erspan"
+          "ip6gre"
+          "ip6tnl"
+          "ip6gretap"
+          "ipip"
+          "ipvlan"
+          "macvlan"
+          "macvtap"
+          "sit"
+          "tap"
+          "tun"
+          "veth"
+          "vlan"
+          "vti"
+          "vti6"
+          "vxlan"
+          "geneve"
+          "l2tp"
+          "macsec"
+          "vrf"
+          "vcan"
+          "vxcan"
+          "wireguard"
+          "netdevsim"
+          "nlmon"
+          "fou"
+          "xfrm"
+          "ifb"
+        ])
+        (assertByteFormat "MTUBytes")
+        (assertMacAddress "MACAddress")
+      ];
 
-  # NOTE The PresharedKey directive is missing on purpose here, please
-  # do not add it to this list. The nix store is world-readable,let's
-  # refrain ourselves from providing a footgun.
-  checkWireGuardPeer = checkUnitConfig "WireGuardPeer" [
-    (assertOnlyFields [
-      "PublicKey" "PresharedKeyFile" "AllowedIPs"
-      "Endpoint" "PersistentKeepalive"
-    ])
-    (assertRange "PersistentKeepalive" 1 65535)
-  ];
+      sectionVLAN = checkUnitConfig "VLAN" [
+        (assertOnlyFields [
+          "Id"
+          "GVRP"
+          "MVRP"
+          "LooseBinding"
+          "ReorderHeader"
+        ])
+        (assertInt "Id")
+        (assertRange "Id" 0 4094)
+        (assertValueOneOf "GVRP" boolValues)
+        (assertValueOneOf "MVRP" boolValues)
+        (assertValueOneOf "LooseBinding" boolValues)
+        (assertValueOneOf "ReorderHeader" boolValues)
+      ];
 
-  checkVlan = checkUnitConfig "VLAN" [
-    (assertOnlyFields ["Id" "GVRP" "MVRP" "LooseBinding" "ReorderHeader"])
-    (assertRange "Id" 0 4094)
-    (assertValueOneOf "GVRP" boolValues)
-    (assertValueOneOf "MVRP" boolValues)
-    (assertValueOneOf "LooseBinding" boolValues)
-    (assertValueOneOf "ReorderHeader" boolValues)
-  ];
+      sectionMACVLAN = checkUnitConfig "MACVLAN" [
+        (assertOnlyFields [
+          "Mode"
+        ])
+        (assertValueOneOf "Mode" ["private" "vepa" "bridge" "passthru"])
+      ];
 
-  checkMacvlan = checkUnitConfig "MACVLAN" [
-    (assertOnlyFields ["Mode"])
-    (assertValueOneOf "Mode" ["private" "vepa" "bridge" "passthru"])
-  ];
+      sectionVXLAN = checkUnitConfig "VXLAN" [
+        (assertOnlyFields [
+          "VNI"
+          "Remote"
+          "Local"
+          "Group"
+          "TOS"
+          "TTL"
+          "MacLearning"
+          "FDBAgeingSec"
+          "MaximumFDBEntries"
+          "ReduceARPProxy"
+          "L2MissNotification"
+          "L3MissNotification"
+          "RouteShortCircuit"
+          "UDPChecksum"
+          "UDP6ZeroChecksumTx"
+          "UDP6ZeroChecksumRx"
+          "RemoteChecksumTx"
+          "RemoteChecksumRx"
+          "GroupPolicyExtension"
+          "GenericProtocolExtension"
+          "DestinationPort"
+          "PortRange"
+          "FlowLabel"
+          "IPDoNotFragment"
+        ])
+        (assertInt "VNI")
+        (assertRange "VNI" 1 16777215)
+        (assertValueOneOf "MacLearning" boolValues)
+        (assertInt "MaximumFDBEntries")
+        (assertValueOneOf "ReduceARPProxy" boolValues)
+        (assertValueOneOf "L2MissNotification" boolValues)
+        (assertValueOneOf "L3MissNotification" boolValues)
+        (assertValueOneOf "RouteShortCircuit" boolValues)
+        (assertValueOneOf "UDPChecksum" boolValues)
+        (assertValueOneOf "UDP6ZeroChecksumTx" boolValues)
+        (assertValueOneOf "UDP6ZeroChecksumRx" boolValues)
+        (assertValueOneOf "RemoteChecksumTx" boolValues)
+        (assertValueOneOf "RemoteChecksumRx" boolValues)
+        (assertValueOneOf "GroupPolicyExtension" boolValues)
+        (assertValueOneOf "GenericProtocolExtension" boolValues)
+        (assertInt "FlowLabel")
+        (assertRange "FlowLabel" 0 1048575)
+        (assertValueOneOf "IPDoNotFragment" (boolValues + ["inherit"]))
+      ];
 
-  checkVxlan = checkUnitConfig "VXLAN" [
-    (assertOnlyFields [
-      "Id" "Remote" "Local" "TOS" "TTL" "MacLearning" "FDBAgeingSec"
-      "MaximumFDBEntries" "ReduceARPProxy" "L2MissNotification"
-      "L3MissNotification" "RouteShortCircuit" "UDPChecksum"
-      "UDP6ZeroChecksumTx" "UDP6ZeroChecksumRx" "RemoteChecksumTx"
-      "RemoteChecksumRx" "GroupPolicyExtension" "DestinationPort" "PortRange"
-      "FlowLabel"
-    ])
-    (assertRange "TTL" 0 255)
-    (assertValueOneOf "MacLearning" boolValues)
-    (assertValueOneOf "ReduceARPProxy" boolValues)
-    (assertValueOneOf "L2MissNotification" boolValues)
-    (assertValueOneOf "L3MissNotification" boolValues)
-    (assertValueOneOf "RouteShortCircuit" boolValues)
-    (assertValueOneOf "UDPChecksum" boolValues)
-    (assertValueOneOf "UDP6ZeroChecksumTx" boolValues)
-    (assertValueOneOf "UDP6ZeroChecksumRx" boolValues)
-    (assertValueOneOf "RemoteChecksumTx" boolValues)
-    (assertValueOneOf "RemoteChecksumRx" boolValues)
-    (assertValueOneOf "GroupPolicyExtension" boolValues)
-    (assertRange "FlowLabel" 0 1048575)
-  ];
+      sectionTunnel = checkUnitConfig "Tunnel" [
+        (assertOnlyFields [
+          "Local"
+          "Remote"
+          "TOS"
+          "TTL"
+          "DiscoverPathMTU"
+          "IPv6FlowLabel"
+          "CopyDSCP"
+          "EncapsulationLimit"
+          "Key"
+          "InputKey"
+          "OutputKey"
+          "Mode"
+          "Independent"
+          "AssignToLoopback"
+          "AllowLocalRemote"
+          "FooOverUDP"
+          "FOUDestinationPort"
+          "FOUSourcePort"
+          "Encapsulation"
+          "IPv6RapidDeploymentPrefix"
+          "ISATAP"
+          "SerializeTunneledPackets"
+          "ERSPANIndex"
+        ])
+        (assertInt "TTL")
+        (assertRange "TTL" 0 255)
+        (assertValueOneOf "DiscoverPathMTU" boolValues)
+        (assertValueOneOf "CopyDSCP" boolValues)
+        (assertValueOneOf "Mode" ["ip6ip6" "ipip6" "any"])
+        (assertValueOneOf "Independent" boolValues)
+        (assertValueOneOf "AssignToLoopback" boolValues)
+        (assertValueOneOf "AllowLocalRemote" boolValues)
+        (assertValueOneOf "FooOverUDP" boolValues)
+        (assertPort "FOUDestinationPort")
+        (assertPort "FOUSourcePort")
+        (assertValueOneOf "Encapsulation" ["FooOverUDP" "GenericUDPEncapsulation"])
+        (assertValueOneOf "ISATAP" boolValues)
+        (assertValueOneOf "SerializeTunneledPackets" boolValues)
+        (assertInt "ERSPANIndex")
+        (assertRange "ERSPANIndex" 1 1048575)
+      ];
 
-  checkTunnel = checkUnitConfig "Tunnel" [
-    (assertOnlyFields [
-      "Local" "Remote" "TOS" "TTL" "DiscoverPathMTU" "IPv6FlowLabel" "CopyDSCP"
-      "EncapsulationLimit" "Key" "InputKey" "OutputKey" "Mode" "Independent"
-      "AllowLocalRemote"
-    ])
-    (assertRange "TTL" 0 255)
-    (assertValueOneOf "DiscoverPathMTU" boolValues)
-    (assertValueOneOf "CopyDSCP" boolValues)
-    (assertValueOneOf "Mode" ["ip6ip6" "ipip6" "any"])
-    (assertValueOneOf "Independent" boolValues)
-    (assertValueOneOf "AllowLocalRemote" boolValues)
-  ];
+      sectionPeer = checkUnitConfig "Peer" [
+        (assertOnlyFields [
+          "Name"
+          "MACAddress"
+        ])
+        (assertMacAddress "MACAddress")
+      ];
 
-  checkPeer = checkUnitConfig "Peer" [
-    (assertOnlyFields ["Name" "MACAddress"])
-    (assertMacAddress "MACAddress")
-  ];
+      sectionTun = checkUnitConfig "Tun" tunChecks;
+
+      sectionTap = checkUnitConfig "Tap" tunChecks;
+
+      # NOTE The PrivateKey directive is missing on purpose here, please
+      # do not add it to this list. The nix store is world-readable let's
+      # refrain ourselves from providing a footgun.
+      sectionWireGuard = checkUnitConfig "WireGuard" [
+        (assertOnlyFields [
+          "PrivateKeyFile"
+          "ListenPort"
+          "FirewallMark"
+        ])
+        (assertInt "FirewallMark")
+        (assertRange "FirewallMark" 1 4294967295)
+      ];
 
-  tunTapChecks = [
-    (assertOnlyFields ["OneQueue" "MultiQueue" "PacketInfo" "VNetHeader" "User" "Group"])
-    (assertValueOneOf "OneQueue" boolValues)
-    (assertValueOneOf "MultiQueue" boolValues)
-    (assertValueOneOf "PacketInfo" boolValues)
-    (assertValueOneOf "VNetHeader" boolValues)
-  ];
+      # NOTE The PresharedKey directive is missing on purpose here, please
+      # do not add it to this list. The nix store is world-readable,let's
+      # refrain ourselves from providing a footgun.
+      sectionWireGuardPeer = checkUnitConfig "WireGuardPeer" [
+        (assertOnlyFields [
+          "PublicKey"
+          "PresharedKeyFile"
+          "AllowedIPs"
+          "Endpoint"
+          "PersistentKeepalive"
+        ])
+        (assertInt "PersistentKeepalive")
+        (assertRange "PersistentKeepalive" 0 65535)
+      ];
 
-  checkTun = checkUnitConfig "Tun" tunTapChecks;
-
-  checkTap = checkUnitConfig "Tap" tunTapChecks;
-
-  checkBond = checkUnitConfig "Bond" [
-    (assertOnlyFields [
-      "Mode" "TransmitHashPolicy" "LACPTransmitRate" "MIIMonitorSec"
-      "UpDelaySec" "DownDelaySec" "LearnPacketIntervalSec" "AdSelect"
-      "FailOverMACPolicy" "ARPValidate" "ARPIntervalSec" "ARPIPTargets"
-      "ARPAllTargets" "PrimaryReselectPolicy" "ResendIGMP" "PacketsPerSlave"
-      "GratuitousARP" "AllSlavesActive" "MinLinks"
-    ])
-    (assertValueOneOf "Mode" [
-      "balance-rr" "active-backup" "balance-xor"
-      "broadcast" "802.3ad" "balance-tlb" "balance-alb"
-    ])
-    (assertValueOneOf "TransmitHashPolicy" [
-      "layer2" "layer3+4" "layer2+3" "encap2+3" "encap3+4"
-    ])
-    (assertValueOneOf "LACPTransmitRate" ["slow" "fast"])
-    (assertValueOneOf "AdSelect" ["stable" "bandwidth" "count"])
-    (assertValueOneOf "FailOverMACPolicy" ["none" "active" "follow"])
-    (assertValueOneOf "ARPValidate" ["none" "active" "backup" "all"])
-    (assertValueOneOf "ARPAllTargets" ["any" "all"])
-    (assertValueOneOf "PrimaryReselectPolicy" ["always" "better" "failure"])
-    (assertRange "ResendIGMP" 0 255)
-    (assertRange "PacketsPerSlave" 0 65535)
-    (assertRange "GratuitousARP" 0 255)
-    (assertValueOneOf "AllSlavesActive" boolValues)
-  ];
+      sectionBond = checkUnitConfig "Bond" [
+        (assertOnlyFields [
+          "Mode"
+          "TransmitHashPolicy"
+          "LACPTransmitRate"
+          "MIIMonitorSec"
+          "UpDelaySec"
+          "DownDelaySec"
+          "LearnPacketIntervalSec"
+          "AdSelect"
+          "AdActorSystemPriority"
+          "AdUserPortKey"
+          "AdActorSystem"
+          "FailOverMACPolicy"
+          "ARPValidate"
+          "ARPIntervalSec"
+          "ARPIPTargets"
+          "ARPAllTargets"
+          "PrimaryReselectPolicy"
+          "ResendIGMP"
+          "PacketsPerSlave"
+          "GratuitousARP"
+          "AllSlavesActive"
+          "DynamicTransmitLoadBalancing"
+          "MinLinks"
+        ])
+        (assertValueOneOf "Mode" [
+          "balance-rr"
+          "active-backup"
+          "balance-xor"
+          "broadcast"
+          "802.3ad"
+          "balance-tlb"
+          "balance-alb"
+        ])
+        (assertValueOneOf "TransmitHashPolicy" [
+          "layer2"
+          "layer3+4"
+          "layer2+3"
+          "encap2+3"
+          "encap3+4"
+        ])
+        (assertValueOneOf "LACPTransmitRate" ["slow" "fast"])
+        (assertValueOneOf "AdSelect" ["stable" "bandwidth" "count"])
+        (assertInt "AdActorSystemPriority")
+        (assertRange "AdActorSystemPriority" 1 65535)
+        (assertInt "AdUserPortKey")
+        (assertRange "AdUserPortKey" 0 1023)
+        (assertValueOneOf "FailOverMACPolicy" ["none" "active" "follow"])
+        (assertValueOneOf "ARPValidate" ["none" "active" "backup" "all"])
+        (assertValueOneOf "ARPAllTargets" ["any" "all"])
+        (assertValueOneOf "PrimaryReselectPolicy" ["always" "better" "failure"])
+        (assertInt "ResendIGMP")
+        (assertRange "ResendIGMP" 0 255)
+        (assertInt "PacketsPerSlave")
+        (assertRange "PacketsPerSlave" 0 65535)
+        (assertInt "GratuitousARP")
+        (assertRange "GratuitousARP" 0 255)
+        (assertValueOneOf "AllSlavesActive" boolValues)
+        (assertValueOneOf "DynamicTransmitLoadBalancing" boolValues)
+        (assertInt "MinLinks")
+        (assertMinimum "MinLinks" 0)
+      ];
 
-  checkXfrm = checkUnitConfig "Xfrm" [
-    (assertOnlyFields [
-      "InterfaceId" "Independent"
-    ])
-    # The following check won't work on nix <= 2.2
-    # see https://github.com/NixOS/nix/pull/2378
-    #
-    # Add this again when we'll have drop the
-    # nix < 2.2 support.
-    # (assertRange "InterfaceId" 1 4294967295)
-    (assertValueOneOf "Independent" boolValues)
-  ];
+      sectionXfrm = checkUnitConfig "Xfrm" [
+        (assertOnlyFields [
+          "InterfaceId"
+          "Independent"
+        ])
+        (assertInt "InterfaceId")
+        (assertRange "InterfaceId" 1 4294967295)
+        (assertValueOneOf "Independent" boolValues)
+      ];
 
-  checkNetwork = checkUnitConfig "Network" [
-    (assertOnlyFields [
-      "Description" "DHCP" "DHCPServer" "LinkLocalAddressing" "IPv4LLRoute"
-      "IPv6Token" "LLMNR" "MulticastDNS" "DNSOverTLS" "DNSSEC"
-      "DNSSECNegativeTrustAnchors" "LLDP" "EmitLLDP" "BindCarrier" "Address"
-      "Gateway" "DNS" "Domains" "NTP" "IPForward" "IPMasquerade"
-      "IPv6PrivacyExtensions" "IPv6AcceptRA" "IPv6DuplicateAddressDetection"
-      "IPv6HopLimit" "IPv4ProxyARP" "IPv6ProxyNDP" "IPv6ProxyNDPAddress"
-      "IPv6PrefixDelegation" "IPv6MTUBytes" "Bridge" "Bond" "VRF" "VLAN"
-      "IPVLAN" "MACVLAN" "VXLAN" "Tunnel" "ActiveSlave" "PrimarySlave"
-      "ConfigureWithoutCarrier" "Xfrm" "KeepConfiguration"
-    ])
-    # Note: For DHCP the values both, none, v4, v6 are deprecated
-    (assertValueOneOf "DHCP" ["yes" "no" "ipv4" "ipv6" "both" "none" "v4" "v6"])
-    (assertValueOneOf "DHCPServer" boolValues)
-    (assertValueOneOf "LinkLocalAddressing" ["yes" "no" "ipv4" "ipv6" "ipv4-fallback" "fallback"])
-    (assertValueOneOf "IPv4LLRoute" boolValues)
-    (assertValueOneOf "LLMNR" ["yes" "resolve" "no"])
-    (assertValueOneOf "MulticastDNS" ["yes" "resolve" "no"])
-    (assertValueOneOf "DNSOverTLS" ["opportunistic" "no"])
-    (assertValueOneOf "DNSSEC" ["yes" "allow-downgrade" "no"])
-    (assertValueOneOf "LLDP" ["yes" "routers-only" "no"])
-    (assertValueOneOf "EmitLLDP" ["yes" "no" "nearest-bridge" "non-tpmr-bridge" "customer-bridge"])
-    (assertValueOneOf "IPForward" ["yes" "no" "ipv4" "ipv6"])
-    (assertValueOneOf "IPMasquerade" boolValues)
-    (assertValueOneOf "IPv6PrivacyExtensions" ["yes" "no" "prefer-public" "kernel"])
-    (assertValueOneOf "IPv6AcceptRA" boolValues)
-    (assertValueOneOf "IPv4ProxyARP" boolValues)
-    (assertValueOneOf "IPv6ProxyNDP" boolValues)
-    (assertValueOneOf "IPv6PrefixDelegation" (boolValues ++ [ "dhcpv6" "static" ]))
-    (assertValueOneOf "ActiveSlave" boolValues)
-    (assertValueOneOf "PrimarySlave" boolValues)
-    (assertValueOneOf "ConfigureWithoutCarrier" boolValues)
-    (assertValueOneOf "KeepConfiguration" (boolValues ++ ["static" "dhcp-on-stop" "dhcp"]))
-  ];
+      sectionVRF = checkUnitConfig "VRF" [
+        (assertOnlyFields [
+          "Table"
+        ])
+        (assertInt "Table")
+        (assertMinimum "Table" 0)
+      ];
+    };
 
-  checkAddress = checkUnitConfig "Address" [
-    (assertOnlyFields [
-      "Address" "Peer" "Broadcast" "Label" "PreferredLifetime" "Scope"
-      "HomeAddress" "DuplicateAddressDetection" "ManageTemporaryAddress"
-      "PrefixRoute" "AutoJoin"
-    ])
-    (assertHasField "Address")
-    (assertValueOneOf "PreferredLifetime" ["forever" "infinity" "0" 0])
-    (assertValueOneOf "HomeAddress" boolValues)
-    (assertValueOneOf "DuplicateAddressDetection" boolValues)
-    (assertValueOneOf "ManageTemporaryAddress" boolValues)
-    (assertValueOneOf "PrefixRoute" boolValues)
-    (assertValueOneOf "AutoJoin" boolValues)
-  ];
+    network = {
+
+      sectionLink = checkUnitConfig "Link" [
+        (assertOnlyFields [
+          "MACAddress"
+          "MTUBytes"
+          "ARP"
+          "Multicast"
+          "AllMulticast"
+          "Unmanaged"
+          "RequiredForOnline"
+        ])
+        (assertMacAddress "MACAddress")
+        (assertByteFormat "MTUBytes")
+        (assertValueOneOf "ARP" boolValues)
+        (assertValueOneOf "Multicast" boolValues)
+        (assertValueOneOf "AllMulticast" boolValues)
+        (assertValueOneOf "Unmanaged" boolValues)
+        (assertValueOneOf "RequiredForOnline" (boolValues ++ [
+          "missing"
+          "off"
+          "no-carrier"
+          "dormant"
+          "degraded-carrier"
+          "carrier"
+          "degraded"
+          "enslaved"
+          "routable"
+        ]))
+      ];
 
-  checkRoutingPolicyRule = checkUnitConfig "RoutingPolicyRule" [
-    (assertOnlyFields [
-      "TypeOfService" "From" "To" "FirewallMark" "Table" "Priority"
-      "IncomingInterface" "OutgoingInterface" "SourcePort" "DestinationPort"
-      "IPProtocol" "InvertRule" "Family"
-    ])
-    (assertRange "TypeOfService" 0 255)
-    # The following check won't work on nix <= 2.2
-    # see https://github.com/NixOS/nix/pull/2378
-    #
-    # Add this again when we'll have drop the
-    # nix < 2.2 support.
-    #  (assertRange "FirewallMark" 1 4294967295)
-    (assertInt "Priority")
-    (assertPort "SourcePort")
-    (assertPort "DestinationPort")
-    (assertValueOneOf "InvertRule" boolValues)
-    (assertValueOneOf "Family" ["ipv4" "ipv6" "both"])
-  ];
+      sectionNetwork = checkUnitConfig "Network" [
+        (assertOnlyFields [
+          "Description"
+          "DHCP"
+          "DHCPServer"
+          "LinkLocalAddressing"
+          "IPv4LLRoute"
+          "DefaultRouteOnDevice"
+          "IPv6Token"
+          "LLMNR"
+          "MulticastDNS"
+          "DNSOverTLS"
+          "DNSSEC"
+          "DNSSECNegativeTrustAnchors"
+          "LLDP"
+          "EmitLLDP"
+          "BindCarrier"
+          "Address"
+          "Gateway"
+          "DNS"
+          "Domains"
+          "DNSDefaultRoute"
+          "NTP"
+          "IPForward"
+          "IPMasquerade"
+          "IPv6PrivacyExtensions"
+          "IPv6AcceptRA"
+          "IPv6DuplicateAddressDetection"
+          "IPv6HopLimit"
+          "IPv4ProxyARP"
+          "IPv6ProxyNDP"
+          "IPv6ProxyNDPAddress"
+          "IPv6PrefixDelegation"
+          "IPv6MTUBytes"
+          "Bridge"
+          "Bond"
+          "VRF"
+          "VLAN"
+          "IPVLAN"
+          "MACVLAN"
+          "VXLAN"
+          "Tunnel"
+          "MACsec"
+          "ActiveSlave"
+          "PrimarySlave"
+          "ConfigureWithoutCarrier"
+          "IgnoreCarrierLoss"
+          "Xfrm"
+          "KeepConfiguration"
+        ])
+        # Note: For DHCP the values both, none, v4, v6 are deprecated
+        (assertValueOneOf "DHCP" ["yes" "no" "ipv4" "ipv6"])
+        (assertValueOneOf "DHCPServer" boolValues)
+        (assertValueOneOf "LinkLocalAddressing" ["yes" "no" "ipv4" "ipv6" "fallback" "ipv4-fallback"])
+        (assertValueOneOf "IPv4LLRoute" boolValues)
+        (assertValueOneOf "DefaultRouteOnDevice" boolValues)
+        (assertValueOneOf "LLMNR" (boolValues ++ ["resolve"]))
+        (assertValueOneOf "MulticastDNS" (boolValues ++ ["resolve"]))
+        (assertValueOneOf "DNSOverTLS" (boolValues ++ ["opportunistic"]))
+        (assertValueOneOf "DNSSEC" (boolValues ++ ["allow-downgrade"]))
+        (assertValueOneOf "LLDP" (boolValues ++ ["routers-only"]))
+        (assertValueOneOf "EmitLLDP" (boolValues ++ ["nearest-bridge" "non-tpmr-bridge" "customer-bridge"]))
+        (assertValueOneOf "DNSDefaultRoute" boolValues)
+        (assertValueOneOf "IPForward" (boolValues ++ ["ipv4" "ipv6"]))
+        (assertValueOneOf "IPMasquerade" boolValues)
+        (assertValueOneOf "IPv6PrivacyExtensions" (boolValues ++ ["prefer-public" "kernel"]))
+        (assertValueOneOf "IPv6AcceptRA" boolValues)
+        (assertInt "IPv6DuplicateAddressDetection")
+        (assertMinimum "IPv6DuplicateAddressDetection" 0)
+        (assertInt "IPv6HopLimit")
+        (assertMinimum "IPv6HopLimit" 0)
+        (assertValueOneOf "IPv4ProxyARP" boolValues)
+        (assertValueOneOf "IPv6ProxyNDP" boolValues)
+        (assertValueOneOf "IPv6PrefixDelegation" ["static" "dhcpv6" "yes" "false"])
+        (assertByteFormat "IPv6MTUBytes")
+        (assertValueOneOf "ActiveSlave" boolValues)
+        (assertValueOneOf "PrimarySlave" boolValues)
+        (assertValueOneOf "ConfigureWithoutCarrier" boolValues)
+        (assertValueOneOf "IgnoreCarrierLoss" boolValues)
+        (assertValueOneOf "KeepConfiguration" (boolValues ++ ["static" "dhcp-on-stop" "dhcp"]))
+      ];
 
-  checkRoute = checkUnitConfig "Route" [
-    (assertOnlyFields [
-      "Gateway" "GatewayOnLink" "Destination" "Source" "Metric"
-      "IPv6Preference" "Scope" "PreferredSource" "Table" "Protocol" "Type"
-      "InitialCongestionWindow" "InitialAdvertisedReceiveWindow" "QuickAck"
-      "MTUBytes"
-    ])
-  ];
+      sectionAddress = checkUnitConfig "Address" [
+        (assertOnlyFields [
+          "Address"
+          "Peer"
+          "Broadcast"
+          "Label"
+          "PreferredLifetime"
+          "Scope"
+          "HomeAddress"
+          "DuplicateAddressDetection"
+          "ManageTemporaryAddress"
+          "AddPrefixRoute"
+          "AutoJoin"
+        ])
+        (assertHasField "Address")
+        (assertValueOneOf "PreferredLifetime" ["forever" "infinity" "0" 0])
+        (assertValueOneOf "HomeAddress" boolValues)
+        (assertValueOneOf "DuplicateAddressDetection" ["ipv4" "ipv6" "both" "none"])
+        (assertValueOneOf "ManageTemporaryAddress" boolValues)
+        (assertValueOneOf "AddPrefixRoute" boolValues)
+        (assertValueOneOf "AutoJoin" boolValues)
+      ];
 
-  checkDhcpV4 = checkUnitConfig "DHCPv4" [
-    (assertOnlyFields [
-      "UseDNS" "RoutesToDNS" "UseNTP" "UseMTU" "Anonymize" "SendHostname" "UseHostname"
-      "Hostname" "UseDomains" "UseRoutes" "UseTimezone"
-      "ClientIdentifier" "VendorClassIdentifier" "UserClass" "MaxAttempts"
-      "DUIDType" "DUIDRawData" "IAID" "RequestBroadcast" "RouteMetric" "RouteTable"
-      "ListenPort" "SendRelease"
-    ])
-    (assertValueOneOf "UseDNS" boolValues)
-    (assertValueOneOf "RoutesToDNS" boolValues)
-    (assertValueOneOf "UseNTP" boolValues)
-    (assertValueOneOf "UseMTU" boolValues)
-    (assertValueOneOf "Anonymize" boolValues)
-    (assertValueOneOf "SendHostname" boolValues)
-    (assertValueOneOf "UseHostname" boolValues)
-    (assertValueOneOf "UseDomains" ["yes" "no" "route"])
-    (assertValueOneOf "UseRoutes" boolValues)
-    (assertValueOneOf "UseTimezone" boolValues)
-    (assertMinimum "MaxAttempts" 0)
-    (assertValueOneOf "RequestBroadcast" boolValues)
-    (assertInt "RouteTable")
-    (assertMinimum "RouteTable" 0)
-    (assertValueOneOf "SendRelease" boolValues)
-  ];
+      sectionRoutingPolicyRule = checkUnitConfig "RoutingPolicyRule" [
+        (assertOnlyFields [
+          "TypeOfService"
+          "From"
+          "To"
+          "FirewallMark"
+          "Table"
+          "Priority"
+          "IncomingInterface"
+          "OutgoingInterface"
+          "SourcePort"
+          "DestinationPort"
+          "IPProtocol"
+          "InvertRule"
+          "Family"
+          "User"
+          "SuppressPrefixLength"
+        ])
+        (assertInt "TypeOfService")
+        (assertRange "TypeOfService" 0 255)
+        (assertInt "FirewallMark")
+        (assertRange "FirewallMark" 1 4294967295)
+        (assertInt "Priority")
+        (assertPort "SourcePort")
+        (assertPort "DestinationPort")
+        (assertValueOneOf "InvertRule" boolValues)
+        (assertValueOneOf "Family" ["ipv4" "ipv6" "both"])
+        (assertInt "SuppressPrefixLength")
+        (assertRange "SuppressPrefixLength" 0 128)
+      ];
 
-  checkDhcpV6 = checkUnitConfig "DHCPv6" [
-    (assertOnlyFields [
-      "UseDns" "UseNTP" "RapidCommit" "ForceDHCPv6PDOtherInformation"
-      "PrefixDelegationHint"
-    ])
-    (assertValueOneOf "UseDNS" boolValues)
-    (assertValueOneOf "UseNTP" boolValues)
-    (assertValueOneOf "RapidCommit" boolValues)
-    (assertValueOneOf "ForceDHCPv6PDOtherInformation" boolValues)
-  ];
+      sectionRoute = checkUnitConfig "Route" [
+        (assertOnlyFields [
+          "Gateway"
+          "GatewayOnLink"
+          "Destination"
+          "Source"
+          "Metric"
+          "IPv6Preference"
+          "Scope"
+          "PreferredSource"
+          "Table"
+          "Protocol"
+          "Type"
+          "InitialCongestionWindow"
+          "InitialAdvertisedReceiveWindow"
+          "QuickAck"
+          "FastOpenNoCookie"
+          "TTLPropagate"
+          "MTUBytes"
+          "IPServiceType"
+          "MultiPathRoute"
+        ])
+        (assertValueOneOf "GatewayOnLink" boolValues)
+        (assertInt "Metric")
+        (assertValueOneOf "IPv6Preference" ["low" "medium" "high"])
+        (assertValueOneOf "Scope" ["global" "site" "link" "host" "nowhere"])
+        (assertValueOneOf "Type" [
+          "unicast"
+          "local"
+          "broadcast"
+          "anycast"
+          "multicast"
+          "blackhole"
+          "unreachable"
+          "prohibit"
+          "throw"
+          "nat"
+          "xresolve"
+        ])
+        (assertValueOneOf "QuickAck" boolValues)
+        (assertValueOneOf "FastOpenNoCookie" boolValues)
+        (assertValueOneOf "TTLPropagate" boolValues)
+        (assertByteFormat "MTUBytes")
+        (assertValueOneOf "IPServiceType" ["CS6" "CS4"])
+      ];
 
-  checkIpv6PrefixDelegation = checkUnitConfig "IPv6PrefixDelegation" [
-    (assertOnlyFields [
-      "Managed"  "OtherInformation"  "RouterLifetimeSec"
-      "RouterPreference"  "EmitDNS"  "DNS"  "EmitDomains"  "Domains"
-      "DNSLifetimeSec"
-    ])
-    (assertValueOneOf "Managed" boolValues)
-    (assertValueOneOf "OtherInformation" boolValues)
-    (assertValueOneOf "RouterPreference" ["high" "medium" "low" "normal" "default"])
-    (assertValueOneOf "EmitDNS" boolValues)
-    (assertValueOneOf "EmitDomains" boolValues)
-    (assertMinimum "DNSLifetimeSec" 0)
-  ];
+      sectionDHCPv4 = checkUnitConfig "DHCPv4" [
+        (assertOnlyFields [
+          "UseDNS"
+          "RoutesToDNS"
+          "UseNTP"
+          "UseSIP"
+          "UseMTU"
+          "Anonymize"
+          "SendHostname"
+          "UseHostname"
+          "Hostname"
+          "UseDomains"
+          "UseRoutes"
+          "UseTimezone"
+          "ClientIdentifier"
+          "VendorClassIdentifier"
+          "UserClass"
+          "MaxAttempts"
+          "DUIDType"
+          "DUIDRawData"
+          "IAID"
+          "RequestBroadcast"
+          "RouteMetric"
+          "RouteTable"
+          "RouteMTUBytes"
+          "ListenPort"
+          "SendRelease"
+          "SendDecline"
+          "BlackList"
+          "RequestOptions"
+          "SendOption"
+        ])
+        (assertValueOneOf "UseDNS" boolValues)
+        (assertValueOneOf "RoutesToDNS" boolValues)
+        (assertValueOneOf "UseNTP" boolValues)
+        (assertValueOneOf "UseSIP" boolValues)
+        (assertValueOneOf "UseMTU" boolValues)
+        (assertValueOneOf "Anonymize" boolValues)
+        (assertValueOneOf "SendHostname" boolValues)
+        (assertValueOneOf "UseHostname" boolValues)
+        (assertValueOneOf "UseDomains" (boolValues ++ ["route"]))
+        (assertValueOneOf "UseRoutes" boolValues)
+        (assertValueOneOf "UseTimezone" boolValues)
+        (assertValueOneOf "ClientIdentifier" ["mac" "duid" "duid-only"])
+        (assertInt "IAID")
+        (assertValueOneOf "RequestBroadcast" boolValues)
+        (assertInt "RouteMetric")
+        (assertInt "RouteTable")
+        (assertRange "RouteTable" 0 4294967295)
+        (assertByteFormat "RouteMTUBytes")
+        (assertPort "ListenPort")
+        (assertValueOneOf "SendRelease" boolValues)
+        (assertValueOneOf "SendDecline" boolValues)
+      ];
 
-  checkIpv6Prefix = checkUnitConfig "IPv6Prefix" [
-    (assertOnlyFields [
-      "AddressAutoconfiguration"  "OnLink"  "Prefix"
-      "PreferredLifetimeSec" "ValidLifetimeSec"
-    ])
-    (assertValueOneOf "AddressAutoconfiguration" boolValues)
-    (assertValueOneOf "OnLink" boolValues)
-    (assertMinimum "PreferredLifetimeSec" 0)
-    (assertMinimum "ValidLifetimeSec" 0)
-  ];
+      sectionDHCPv6 = checkUnitConfig "DHCPv6" [
+        (assertOnlyFields [
+          "UseDNS"
+          "UseNTP"
+          "RapidCommit"
+          "ForceDHCPv6PDOtherInformation"
+          "PrefixDelegationHint"
+        ])
+        (assertValueOneOf "UseDNS" boolValues)
+        (assertValueOneOf "UseNTP" boolValues)
+        (assertValueOneOf "RapidCommit" boolValues)
+        (assertValueOneOf "ForceDHCPv6PDOtherInformation" boolValues)
+      ];
 
+      sectionDHCPServer = checkUnitConfig "DHCPServer" [
+        (assertOnlyFields [
+          "PoolOffset"
+          "PoolSize"
+          "DefaultLeaseTimeSec"
+          "MaxLeaseTimeSec"
+          "EmitDNS"
+          "DNS"
+          "EmitNTP"
+          "NTP"
+          "EmitSIP"
+          "SIP"
+          "EmitRouter"
+          "EmitTimezone"
+          "Timezone"
+          "SendOption"
+        ])
+        (assertInt "PoolOffset")
+        (assertMinimum "PoolOffset" 0)
+        (assertInt "PoolSize")
+        (assertMinimum "PoolSize" 0)
+        (assertValueOneOf "EmitDNS" boolValues)
+        (assertValueOneOf "EmitNTP" boolValues)
+        (assertValueOneOf "EmitSIP" boolValues)
+        (assertValueOneOf "EmitRouter" boolValues)
+        (assertValueOneOf "EmitTimezone" boolValues)
+      ];
 
-  checkDhcpServer = checkUnitConfig "DHCPServer" [
-    (assertOnlyFields [
-      "PoolOffset" "PoolSize" "DefaultLeaseTimeSec" "MaxLeaseTimeSec"
-      "EmitDNS" "DNS" "EmitNTP" "NTP" "EmitRouter" "EmitTimezone" "Timezone"
-    ])
-    (assertValueOneOf "EmitDNS" boolValues)
-    (assertValueOneOf "EmitNTP" boolValues)
-    (assertValueOneOf "EmitRouter" boolValues)
-    (assertValueOneOf "EmitTimezone" boolValues)
-  ];
+      sectionIPv6PrefixDelegation = checkUnitConfig "IPv6PrefixDelegation" [
+        (assertOnlyFields [
+          "Managed"
+          "OtherInformation"
+          "RouterLifetimeSec"
+          "RouterPreference"
+          "EmitDNS"
+          "DNS"
+          "EmitDomains"
+          "Domains"
+          "DNSLifetimeSec"
+        ])
+        (assertValueOneOf "Managed" boolValues)
+        (assertValueOneOf "OtherInformation" boolValues)
+        (assertValueOneOf "RouterPreference" ["high" "medium" "low" "normal" "default"])
+        (assertValueOneOf "EmitDNS" boolValues)
+        (assertValueOneOf "EmitDomains" boolValues)
+      ];
 
-  # .network files have a [Link] section with different options than in .netlink files
-  checkNetworkLink = checkUnitConfig "Link" [
-    (assertOnlyFields [
-      "MACAddress" "MTUBytes" "ARP" "Multicast" "Unmanaged" "RequiredForOnline"
-    ])
-    (assertMacAddress "MACAddress")
-    (assertByteFormat "MTUBytes")
-    (assertValueOneOf "ARP" boolValues)
-    (assertValueOneOf "Multicast" boolValues)
-    (assertValueOneOf "Unmanaged" boolValues)
-    (assertValueOneOf "RequiredForOnline" (boolValues ++ ["off" "no-carrier" "dormant" "degraded-carrier" "carrier" "degraded" "enslaved" "routable"]))
-  ];
+      sectionIPv6Prefix = checkUnitConfig "IPv6Prefix" [
+        (assertOnlyFields [
+          "AddressAutoconfiguration"
+          "OnLink"
+          "Prefix"
+          "PreferredLifetimeSec"
+          "ValidLifetimeSec"
+        ])
+        (assertValueOneOf "AddressAutoconfiguration" boolValues)
+        (assertValueOneOf "OnLink" boolValues)
+      ];
 
+    };
+  };
 
   commonNetworkOptions = {
 
@@ -406,7 +761,7 @@ let
     linkConfig = mkOption {
       default = {};
       example = { MACAddress = "00:ff:ee:aa:cc:dd"; };
-      type = types.addCheck (types.attrsOf unitOption) checkLink;
+      type = types.addCheck (types.attrsOf unitOption) check.link.sectionLink;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Link]</literal> section of the unit.  See
@@ -417,12 +772,28 @@ let
 
   };
 
+  wireguardPeerOptions = {
+    options = {
+      wireguardPeerConfig = mkOption {
+        default = {};
+        example = { };
+        type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionWireGuardPeer;
+        description = ''
+          Each attribute in this set specifies an option in the
+          <literal>[WireGuardPeer]</literal> section of the unit.  See
+          <citerefentry><refentrytitle>systemd.network</refentrytitle>
+          <manvolnum>5</manvolnum></citerefentry> for details.
+        '';
+      };
+    };
+  };
+
   netdevOptions = commonNetworkOptions // {
 
     netdevConfig = mkOption {
       default = {};
       example = { Name = "mybridge"; Kind = "bridge"; };
-      type = types.addCheck (types.attrsOf unitOption) checkNetdev;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionNetdev;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Netdev]</literal> section of the unit.  See
@@ -431,65 +802,10 @@ let
       '';
     };
 
-    vrfConfig = mkOption {
-      default = {};
-      example = { Table = 2342; };
-      type = types.addCheck (types.attrsOf unitOption) checkVRF;
-      description = ''
-        Each attribute in this set specifies an option in the
-        <literal>[VRF]</literal> section of the unit. See
-        <citerefentry><refentrytitle>systemd.netdev</refentrytitle>
-        <manvolnum>5</manvolnum></citerefentry> for details.
-        A detailed explanation about how VRFs work can be found in the
-        <link xlink:href="https://www.kernel.org/doc/Documentation/networking/vrf.txt">kernel
-        docs</link>.
-      '';
-    };
-
-    wireguardConfig = mkOption {
-      default = {};
-      example = {
-        PrivateKeyFile = "/etc/wireguard/secret.key";
-        ListenPort = 51820;
-        FwMark = 42;
-      };
-      type = types.addCheck (types.attrsOf unitOption) checkWireGuard;
-      description = ''
-        Each attribute in this set specifies an option in the
-        <literal>[WireGuard]</literal> section of the unit. See
-        <citerefentry><refentrytitle>systemd.netdev</refentrytitle>
-        <manvolnum>5</manvolnum></citerefentry> for details.
-        Use <literal>PrivateKeyFile</literal> instead of
-        <literal>PrivateKey</literal>: the nix store is
-        world-readable.
-      '';
-    };
-
-    wireguardPeers = mkOption {
-      default = [];
-      example = [ { wireguardPeerConfig={
-        Endpoint = "192.168.1.1:51820";
-        PublicKey = "27s0OvaBBdHoJYkH9osZpjpgSOVNw+RaKfboT/Sfq0g=";
-        PresharedKeyFile = "/etc/wireguard/psk.key";
-        AllowedIPs = [ "10.0.0.1/32" ];
-        PersistentKeepalive = 15;
-      };}];
-      type = with types; listOf (submodule wireguardPeerOptions);
-      description = ''
-        Each item in this array specifies an option in the
-        <literal>[WireGuardPeer]</literal> section of the unit. See
-        <citerefentry><refentrytitle>systemd.netdev</refentrytitle>
-        <manvolnum>5</manvolnum></citerefentry> for details.
-        Use <literal>PresharedKeyFile</literal> instead of
-        <literal>PresharedKey</literal>: the nix store is
-        world-readable.
-      '';
-    };
-
     vlanConfig = mkOption {
       default = {};
-      example = { Id = "4"; };
-      type = types.addCheck (types.attrsOf unitOption) checkVlan;
+      example = { Id = 4; };
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionVLAN;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[VLAN]</literal> section of the unit.  See
@@ -501,7 +817,7 @@ let
     macvlanConfig = mkOption {
       default = {};
       example = { Mode = "private"; };
-      type = types.addCheck (types.attrsOf unitOption) checkMacvlan;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionMACVLAN;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[MACVLAN]</literal> section of the unit.  See
@@ -513,7 +829,7 @@ let
     vxlanConfig = mkOption {
       default = {};
       example = { Id = "4"; };
-      type = types.addCheck (types.attrsOf unitOption) checkVxlan;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionVXLAN;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[VXLAN]</literal> section of the unit.  See
@@ -525,7 +841,7 @@ let
     tunnelConfig = mkOption {
       default = {};
       example = { Remote = "192.168.1.1"; };
-      type = types.addCheck (types.attrsOf unitOption) checkTunnel;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionTunnel;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Tunnel]</literal> section of the unit.  See
@@ -537,7 +853,7 @@ let
     peerConfig = mkOption {
       default = {};
       example = { Name = "veth2"; };
-      type = types.addCheck (types.attrsOf unitOption) checkPeer;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionPeer;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Peer]</literal> section of the unit.  See
@@ -549,7 +865,7 @@ let
     tunConfig = mkOption {
       default = {};
       example = { User = "openvpn"; };
-      type = types.addCheck (types.attrsOf unitOption) checkTun;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionTun;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Tun]</literal> section of the unit.  See
@@ -561,7 +877,7 @@ let
     tapConfig = mkOption {
       default = {};
       example = { User = "openvpn"; };
-      type = types.addCheck (types.attrsOf unitOption) checkTap;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionTap;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Tap]</literal> section of the unit.  See
@@ -570,10 +886,50 @@ let
       '';
     };
 
+    wireguardConfig = mkOption {
+      default = {};
+      example = {
+        PrivateKeyFile = "/etc/wireguard/secret.key";
+        ListenPort = 51820;
+        FwMark = 42;
+      };
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionWireGuard;
+      description = ''
+        Each attribute in this set specifies an option in the
+        <literal>[WireGuard]</literal> section of the unit. See
+        <citerefentry><refentrytitle>systemd.netdev</refentrytitle>
+        <manvolnum>5</manvolnum></citerefentry> for details.
+        Use <literal>PrivateKeyFile</literal> instead of
+        <literal>PrivateKey</literal>: the nix store is
+        world-readable.
+      '';
+    };
+
+    wireguardPeers = mkOption {
+      default = [];
+      example = [ { wireguardPeerConfig={
+        Endpoint = "192.168.1.1:51820";
+        PublicKey = "27s0OvaBBdHoJYkH9osZpjpgSOVNw+RaKfboT/Sfq0g=";
+        PresharedKeyFile = "/etc/wireguard/psk.key";
+        AllowedIPs = [ "10.0.0.1/32" ];
+        PersistentKeepalive = 15;
+      };}];
+      type = with types; listOf (submodule wireguardPeerOptions);
+      description = ''
+        Each item in this array specifies an option in the
+        <literal>[WireGuardPeer]</literal> section of the unit. See
+        <citerefentry><refentrytitle>systemd.netdev</refentrytitle>
+        <manvolnum>5</manvolnum></citerefentry> for details.
+        Use <literal>PresharedKeyFile</literal> instead of
+        <literal>PresharedKey</literal>: the nix store is
+        world-readable.
+      '';
+    };
+
     bondConfig = mkOption {
       default = {};
       example = { Mode = "802.3ad"; };
-      type = types.addCheck (types.attrsOf unitOption) checkBond;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionBond;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Bond]</literal> section of the unit.  See
@@ -585,7 +941,7 @@ let
     xfrmConfig = mkOption {
       default = {};
       example = { InterfaceId = 1; };
-      type = types.addCheck (types.attrsOf unitOption) checkXfrm;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionXfrm;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Xfrm]</literal> section of the unit.  See
@@ -594,6 +950,21 @@ let
       '';
     };
 
+    vrfConfig = mkOption {
+      default = {};
+      example = { Table = 2342; };
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionVRF;
+      description = ''
+        Each attribute in this set specifies an option in the
+        <literal>[VRF]</literal> section of the unit. See
+        <citerefentry><refentrytitle>systemd.netdev</refentrytitle>
+        <manvolnum>5</manvolnum></citerefentry> for details.
+        A detailed explanation about how VRFs work can be found in the
+        <link xlink:href="https://www.kernel.org/doc/Documentation/networking/vrf.txt">kernel
+        docs</link>.
+      '';
+    };
+
   };
 
   addressOptions = {
@@ -601,7 +972,7 @@ let
       addressConfig = mkOption {
         default = {};
         example = { Address = "192.168.0.100/24"; };
-        type = types.addCheck (types.attrsOf unitOption) checkAddress;
+        type = types.addCheck (types.attrsOf unitOption) check.network.sectionAddress;
         description = ''
           Each attribute in this set specifies an option in the
           <literal>[Address]</literal> section of the unit.  See
@@ -617,7 +988,7 @@ let
       routingPolicyRuleConfig = mkOption {
         default = { };
         example = { routingPolicyRuleConfig = { Table = 10; IncomingInterface = "eth1"; Family = "both"; } ;};
-        type = types.addCheck (types.attrsOf unitOption) checkRoutingPolicyRule;
+        type = types.addCheck (types.attrsOf unitOption) check.network.sectionRoutingPolicyRule;
         description = ''
           Each attribute in this set specifies an option in the
           <literal>[RoutingPolicyRule]</literal> section of the unit.  See
@@ -633,7 +1004,7 @@ let
       routeConfig = mkOption {
         default = {};
         example = { Gateway = "192.168.0.1"; };
-        type = types.addCheck (types.attrsOf unitOption) checkRoute;
+        type = types.addCheck (types.attrsOf unitOption) check.network.sectionRoute;
         description = ''
           Each attribute in this set specifies an option in the
           <literal>[Route]</literal> section of the unit.  See
@@ -644,28 +1015,12 @@ let
     };
   };
 
-  wireguardPeerOptions = {
-    options = {
-      wireguardPeerConfig = mkOption {
-        default = {};
-        example = { };
-        type = types.addCheck (types.attrsOf unitOption) checkWireGuardPeer;
-        description = ''
-          Each attribute in this set specifies an option in the
-          <literal>[WireGuardPeer]</literal> section of the unit.  See
-          <citerefentry><refentrytitle>systemd.network</refentrytitle>
-          <manvolnum>5</manvolnum></citerefentry> for details.
-        '';
-      };
-    };
-  };
-
   ipv6PrefixOptions = {
     options = {
       ipv6PrefixConfig = mkOption {
         default = {};
         example = { Prefix = "fd00::/64"; };
-        type = types.addCheck (types.attrsOf unitOption) checkIpv6Prefix;
+        type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6Prefix;
         description = ''
           Each attribute in this set specifies an option in the
           <literal>[IPv6Prefix]</literal> section of the unit.  See
@@ -676,13 +1031,24 @@ let
     };
   };
 
-
   networkOptions = commonNetworkOptions // {
 
+    linkConfig = mkOption {
+      default = {};
+      example = { Unmanaged = true; };
+      type = types.addCheck (types.attrsOf unitOption) check.network.sectionLink;
+      description = ''
+        Each attribute in this set specifies an option in the
+        <literal>[Link]</literal> section of the unit.  See
+        <citerefentry><refentrytitle>systemd.network</refentrytitle>
+        <manvolnum>5</manvolnum></citerefentry> for details.
+      '';
+    };
+
     networkConfig = mkOption {
       default = {};
       example = { Description = "My Network"; };
-      type = types.addCheck (types.attrsOf unitOption) checkNetwork;
+      type = types.addCheck (types.attrsOf unitOption) check.network.sectionNetwork;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Network]</literal> section of the unit.  See
@@ -701,7 +1067,7 @@ let
     dhcpV4Config = mkOption {
       default = {};
       example = { UseDNS = true; UseRoutes = true; };
-      type = types.addCheck (types.attrsOf unitOption) checkDhcpV4;
+      type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPv4;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[DHCPv4]</literal> section of the unit.  See
@@ -713,7 +1079,7 @@ let
     dhcpV6Config = mkOption {
       default = {};
       example = { UseDNS = true; UseRoutes = true; };
-      type = types.addCheck (types.attrsOf unitOption) checkDhcpV6;
+      type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPv6;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[DHCPv6]</literal> section of the unit.  See
@@ -722,48 +1088,36 @@ let
       '';
     };
 
-    ipv6PrefixDelegationConfig = mkOption {
+    dhcpServerConfig = mkOption {
       default = {};
-      example = { EmitDNS = true; Managed = true; OtherInformation = true; };
-      type = types.addCheck (types.attrsOf unitOption) checkIpv6PrefixDelegation;
+      example = { PoolOffset = 50; EmitDNS = false; };
+      type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPServer;
       description = ''
         Each attribute in this set specifies an option in the
-        <literal>[IPv6PrefixDelegation]</literal> section of the unit.  See
-        <citerefentry><refentrytitle>systemd.network</refentrytitle>
-        <manvolnum>5</manvolnum></citerefentry> for details.
-      '';
-    };
-
-    ipv6Prefixes = mkOption {
-      default = [];
-      example = { AddressAutoconfiguration = true; OnLink = true; };
-      type = with types; listOf (submodule ipv6PrefixOptions);
-      description = ''
-        A list of ipv6Prefix sections to be added to the unit.  See
+        <literal>[DHCPServer]</literal> section of the unit.  See
         <citerefentry><refentrytitle>systemd.network</refentrytitle>
         <manvolnum>5</manvolnum></citerefentry> for details.
       '';
     };
 
-    dhcpServerConfig = mkOption {
+    ipv6PrefixDelegationConfig = mkOption {
       default = {};
-      example = { PoolOffset = 50; EmitDNS = false; };
-      type = types.addCheck (types.attrsOf unitOption) checkDhcpServer;
+      example = { EmitDNS = true; Managed = true; OtherInformation = true; };
+      type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6PrefixDelegation;
       description = ''
         Each attribute in this set specifies an option in the
-        <literal>[DHCPServer]</literal> section of the unit.  See
+        <literal>[IPv6PrefixDelegation]</literal> section of the unit.  See
         <citerefentry><refentrytitle>systemd.network</refentrytitle>
         <manvolnum>5</manvolnum></citerefentry> for details.
       '';
     };
 
-    linkConfig = mkOption {
-      default = {};
-      example = { Unmanaged = true; };
-      type = types.addCheck (types.attrsOf unitOption) checkNetworkLink;
+    ipv6Prefixes = mkOption {
+      default = [];
+      example = { AddressAutoconfiguration = true; OnLink = true; };
+      type = with types; listOf (submodule ipv6PrefixOptions);
       description = ''
-        Each attribute in this set specifies an option in the
-        <literal>[Link]</literal> section of the unit.  See
+        A list of ipv6Prefix sections to be added to the unit.  See
         <citerefentry><refentrytitle>systemd.network</refentrytitle>
         <manvolnum>5</manvolnum></citerefentry> for details.
       '';
@@ -958,160 +1312,162 @@ let
     };
   };
 
-  commonMatchText = def: optionalString (def.matchConfig != {}) ''
+  commonMatchText = def: optionalString (def.matchConfig != { }) ''
     [Match]
     ${attrsToSection def.matchConfig}
   '';
 
   linkToUnit = name: def:
     { inherit (def) enable;
-      text = commonMatchText def +
-        ''
+      text = commonMatchText def
+        + ''
           [Link]
           ${attrsToSection def.linkConfig}
-
-          ${def.extraConfig}
-        '';
+        ''
+        + def.extraConfig;
     };
 
   netdevToUnit = name: def:
     { inherit (def) enable;
-      text = commonMatchText def +
-        ''
+      text = commonMatchText def
+        + ''
           [NetDev]
           ${attrsToSection def.netdevConfig}
-
-          ${optionalString (def.vlanConfig != { }) ''
-            [VLAN]
-            ${attrsToSection def.vlanConfig}
-
-          ''}
-          ${optionalString (def.macvlanConfig != { }) ''
-            [MACVLAN]
-            ${attrsToSection def.macvlanConfig}
-
-          ''}
-          ${optionalString (def.vxlanConfig != { }) ''
-            [VXLAN]
-            ${attrsToSection def.vxlanConfig}
-
-          ''}
-          ${optionalString (def.tunnelConfig != { }) ''
-            [Tunnel]
-            ${attrsToSection def.tunnelConfig}
-
-          ''}
-          ${optionalString (def.peerConfig != { }) ''
-            [Peer]
-            ${attrsToSection def.peerConfig}
-
-          ''}
-          ${optionalString (def.tunConfig != { }) ''
-            [Tun]
-            ${attrsToSection def.tunConfig}
-
-          ''}
-          ${optionalString (def.tapConfig != { }) ''
-            [Tap]
-            ${attrsToSection def.tapConfig}
-
-          ''}
-          ${optionalString (def.bondConfig != { }) ''
-            [Bond]
-            ${attrsToSection def.bondConfig}
-
-          ''}
-          ${optionalString (def.xfrmConfig != { }) ''
-            [Xfrm]
-            ${attrsToSection def.xfrmConfig}
-
-          ''}
-          ${optionalString (def.vrfConfig != { }) ''
-            [VRF]
-            ${attrsToSection def.vrfConfig}
-
-          ''}
-          ${optionalString (def.wireguardConfig != { }) ''
-            [WireGuard]
-            ${attrsToSection def.wireguardConfig}
-
-          ''}
-          ${flip concatMapStrings def.wireguardPeers (x: ''
-            [WireGuardPeer]
-            ${attrsToSection x.wireguardPeerConfig}
-
-          '')}
-          ${def.extraConfig}
-        '';
+        ''
+        + optionalString (def.vlanConfig != { }) ''
+          [VLAN]
+          ${attrsToSection def.vlanConfig}
+        ''
+        + optionalString (def.macvlanConfig != { }) ''
+          [MACVLAN]
+          ${attrsToSection def.macvlanConfig}
+        ''
+        + optionalString (def.vxlanConfig != { }) ''
+          [VXLAN]
+          ${attrsToSection def.vxlanConfig}
+        ''
+        + optionalString (def.tunnelConfig != { }) ''
+          [Tunnel]
+          ${attrsToSection def.tunnelConfig}
+        ''
+        + optionalString (def.peerConfig != { }) ''
+          [Peer]
+          ${attrsToSection def.peerConfig}
+        ''
+        + optionalString (def.tunConfig != { }) ''
+          [Tun]
+          ${attrsToSection def.tunConfig}
+        ''
+        + optionalString (def.tapConfig != { }) ''
+          [Tap]
+          ${attrsToSection def.tapConfig}
+        ''
+        + optionalString (def.wireguardConfig != { }) ''
+          [WireGuard]
+          ${attrsToSection def.wireguardConfig}
+        ''
+        + flip concatMapStrings def.wireguardPeers (x: ''
+          [WireGuardPeer]
+          ${attrsToSection x.wireguardPeerConfig}
+        '')
+        + optionalString (def.bondConfig != { }) ''
+          [Bond]
+          ${attrsToSection def.bondConfig}
+        ''
+        + optionalString (def.xfrmConfig != { }) ''
+          [Xfrm]
+          ${attrsToSection def.xfrmConfig}
+        ''
+        + optionalString (def.vrfConfig != { }) ''
+          [VRF]
+          ${attrsToSection def.vrfConfig}
+        ''
+        + def.extraConfig;
     };
 
   networkToUnit = name: def:
     { inherit (def) enable;
-      text = commonMatchText def +
+      text = commonMatchText def
+        + optionalString (def.linkConfig != { }) ''
+          [Link]
+          ${attrsToSection def.linkConfig}
         ''
-          ${optionalString (def.linkConfig != { }) ''
-            [Link]
-            ${attrsToSection def.linkConfig}
-
-          ''}
-
+        + ''
           [Network]
-          ${attrsToSection def.networkConfig}
+        ''
+        + attrsToSection def.networkConfig
+        + optionalString (def.address != [ ]) ''
           ${concatStringsSep "\n" (map (s: "Address=${s}") def.address)}
+        ''
+        + optionalString (def.gateway != [ ]) ''
           ${concatStringsSep "\n" (map (s: "Gateway=${s}") def.gateway)}
+        ''
+        + optionalString (def.dns != [ ]) ''
           ${concatStringsSep "\n" (map (s: "DNS=${s}") def.dns)}
+        ''
+        + optionalString (def.ntp != [ ]) ''
           ${concatStringsSep "\n" (map (s: "NTP=${s}") def.ntp)}
+        ''
+        + optionalString (def.bridge != [ ]) ''
           ${concatStringsSep "\n" (map (s: "Bridge=${s}") def.bridge)}
+        ''
+        + optionalString (def.bond != [ ]) ''
           ${concatStringsSep "\n" (map (s: "Bond=${s}") def.bond)}
+        ''
+        + optionalString (def.vrf != [ ]) ''
           ${concatStringsSep "\n" (map (s: "VRF=${s}") def.vrf)}
+        ''
+        + optionalString (def.vlan != [ ]) ''
           ${concatStringsSep "\n" (map (s: "VLAN=${s}") def.vlan)}
+        ''
+        + optionalString (def.macvlan != [ ]) ''
           ${concatStringsSep "\n" (map (s: "MACVLAN=${s}") def.macvlan)}
+        ''
+        + optionalString (def.vxlan != [ ]) ''
           ${concatStringsSep "\n" (map (s: "VXLAN=${s}") def.vxlan)}
+        ''
+        + optionalString (def.tunnel != [ ]) ''
           ${concatStringsSep "\n" (map (s: "Tunnel=${s}") def.tunnel)}
+        ''
+        + optionalString (def.xfrm != [ ]) ''
           ${concatStringsSep "\n" (map (s: "Xfrm=${s}") def.xfrm)}
+        ''
+        + ''
 
-          ${optionalString (def.dhcpV4Config != { }) ''
-            [DHCPv4]
-            ${attrsToSection def.dhcpV4Config}
-
-          ''}
-          ${optionalString (def.dhcpV6Config != {}) ''
-            [DHCPv6]
-            ${attrsToSection def.dhcpV6Config}
-
-          ''}
-          ${optionalString (def.ipv6PrefixDelegationConfig != {}) ''
-            [IPv6PrefixDelegation]
-            ${attrsToSection def.ipv6PrefixDelegationConfig}
-
-          ''}
-          ${flip concatMapStrings def.ipv6Prefixes (x: ''
-            [IPv6Prefix]
-            ${attrsToSection x.ipv6PrefixConfig}
-
-          '')}
-          ${optionalString (def.dhcpServerConfig != { }) ''
-            [DHCPServer]
-            ${attrsToSection def.dhcpServerConfig}
-
-          ''}
-          ${flip concatMapStrings def.addresses (x: ''
-            [Address]
-            ${attrsToSection x.addressConfig}
-
-          '')}
-          ${flip concatMapStrings def.routes (x: ''
-            [Route]
-            ${attrsToSection x.routeConfig}
-
-          '')}
-          ${flip concatMapStrings def.routingPolicyRules (x: ''
-            [RoutingPolicyRule]
-            ${attrsToSection x.routingPolicyRuleConfig}
-
-          '')}
-          ${def.extraConfig}
-        '';
+        ''
+        + flip concatMapStrings def.addresses (x: ''
+          [Address]
+          ${attrsToSection x.addressConfig}
+        '')
+        + flip concatMapStrings def.routingPolicyRules (x: ''
+          [RoutingPolicyRule]
+          ${attrsToSection x.routingPolicyRuleConfig}
+        '')
+        + flip concatMapStrings def.routes (x: ''
+          [Route]
+          ${attrsToSection x.routeConfig}
+        '')
+        + optionalString (def.dhcpV4Config != { }) ''
+          [DHCPv4]
+          ${attrsToSection def.dhcpV4Config}
+        ''
+        + optionalString (def.dhcpV6Config != { }) ''
+          [DHCPv6]
+          ${attrsToSection def.dhcpV6Config}
+        ''
+        + optionalString (def.dhcpServerConfig != { }) ''
+          [DHCPServer]
+          ${attrsToSection def.dhcpServerConfig}
+        ''
+        + optionalString (def.ipv6PrefixDelegationConfig != { }) ''
+          [IPv6PrefixDelegation]
+          ${attrsToSection def.ipv6PrefixDelegationConfig}
+        ''
+        + flip concatMapStrings def.ipv6Prefixes (x: ''
+          [IPv6Prefix]
+          ${attrsToSection x.ipv6PrefixConfig}
+        '')
+        + def.extraConfig;
     };
 
   unitFiles = listToAttrs (map (name: {
diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh
index 607aec87f01..0c1be71cf53 100644
--- a/nixos/modules/system/boot/stage-1-init.sh
+++ b/nixos/modules/system/boot/stage-1-init.sh
@@ -144,6 +144,14 @@ for o in $(cat /proc/cmdline); do
             set -- $(IFS==; echo $o)
             stage2Init=$2
             ;;
+        boot.persistence=*)
+            set -- $(IFS==; echo $o)
+            persistence=$2
+            ;;
+        boot.persistence.opt=*)
+            set -- $(IFS==; echo $o)
+            persistence_opt=$2
+            ;;
         boot.trace|debugtrace)
             # Show each command.
             set -x
@@ -370,12 +378,14 @@ mountFS() {
 
     mkdir -p "/mnt-root$mountPoint"
 
-    # For CIFS mounts, retry a few times before giving up.
+    # For ZFS and CIFS mounts, retry a few times before giving up.
+    # We do this for ZFS as a workaround for issue NixOS/nixpkgs#25383.
     local n=0
     while true; do
         mount "/mnt-root$mountPoint" && break
-        if [ "$fsType" != cifs -o "$n" -ge 10 ]; then fail; break; fi
+        if [ \( "$fsType" != cifs -a "$fsType" != zfs \) -o "$n" -ge 10 ]; then fail; break; fi
         echo "retrying..."
+        sleep 1
         n=$((n + 1))
     done
 
@@ -534,6 +544,14 @@ while read -u 3 mountPoint; do
       continue
     fi
 
+    if [ "$mountPoint" = / ] && [ "$device" = tmpfs ] && [ ! -z "$persistence" ]; then
+        echo persistence...
+        waitDevice "$persistence"
+        echo enabling persistence...
+        mountFS "$persistence" "$mountPoint" "$persistence_opt" "auto"
+        continue
+    fi
+
     mountFS "$device" "$mountPoint" "$options" "$fsType"
 done
 
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index d551466f52e..6823e12847c 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -36,7 +36,7 @@ let
     set -euo pipefail
 
     declare -A seen
-    declare -a left
+    left=()
 
     patchelf="${pkgs.buildPackages.patchelf}/bin/patchelf"
 
@@ -48,7 +48,7 @@ let
       done
     }
 
-    add_needed $1
+    add_needed "$1"
 
     while [ ''${#left[@]} -ne 0 ]; do
       next=''${left[0]}
@@ -111,20 +111,21 @@ let
       copy_bin_and_libs ${pkgs.utillinux}/sbin/blkid
 
       # Copy dmsetup and lvm.
-      copy_bin_and_libs ${pkgs.lvm2}/sbin/dmsetup
-      copy_bin_and_libs ${pkgs.lvm2}/sbin/lvm
+      copy_bin_and_libs ${getBin pkgs.lvm2}/bin/dmsetup
+      copy_bin_and_libs ${getBin pkgs.lvm2}/bin/lvm
 
       # Add RAID mdadm tool.
       copy_bin_and_libs ${pkgs.mdadm}/sbin/mdadm
       copy_bin_and_libs ${pkgs.mdadm}/sbin/mdmon
 
       # Copy udev.
-      copy_bin_and_libs ${udev}/lib/systemd/systemd-udevd
-      copy_bin_and_libs ${udev}/lib/systemd/systemd-sysctl
       copy_bin_and_libs ${udev}/bin/udevadm
+      copy_bin_and_libs ${udev}/lib/systemd/systemd-sysctl
       for BIN in ${udev}/lib/udev/*_id; do
         copy_bin_and_libs $BIN
       done
+      # systemd-udevd is only a symlink to udevadm these days
+      ln -sf udevadm $out/bin/systemd-udevd
 
       # Copy modprobe.
       copy_bin_and_libs ${pkgs.kmod}/bin/kmod
@@ -235,7 +236,7 @@ let
             --replace cdrom_id ${extraUtils}/bin/cdrom_id \
             --replace ${pkgs.coreutils}/bin/basename ${extraUtils}/bin/basename \
             --replace ${pkgs.utillinux}/bin/blkid ${extraUtils}/bin/blkid \
-            --replace ${pkgs.lvm2}/sbin ${extraUtils}/bin \
+            --replace ${getBin pkgs.lvm2}/bin ${extraUtils}/bin \
             --replace ${pkgs.mdadm}/sbin ${extraUtils}/sbin \
             --replace ${pkgs.bash}/bin/sh ${extraUtils}/bin/sh \
             --replace ${udev} ${extraUtils}
@@ -374,7 +375,8 @@ let
           ) config.boot.initrd.secrets)
          }
 
-        (cd "$tmp" && find . | cpio -H newc -o) | gzip >>"$1"
+        (cd "$tmp" && find . -print0 | sort -z | cpio -o -H newc -R +0:+0 --reproducible --null) | \
+          ${config.boot.initrd.compressor} >> "$1"
       '';
 
 in
@@ -554,15 +556,17 @@ in
       };
 
     fileSystems = mkOption {
-      type = with lib.types; loaOf (submodule {
+      type = with lib.types; attrsOf (submodule {
         options.neededForBoot = mkOption {
           default = false;
           type = types.bool;
           description = ''
-            If set, this file system will be mounted in the initial
-            ramdisk.  By default, this applies to the root file system
-            and to the file system containing
-            <filename>/nix/store</filename>.
+            If set, this file system will be mounted in the initial ramdisk.
+            Note that the file system will always be mounted in the initial
+            ramdisk if its mount point is one of the following:
+            ${concatStringsSep ", " (
+              forEach utils.pathsNeededForBoot (i: "<filename>${i}</filename>")
+            )}.
           '';
         };
       });
diff --git a/nixos/modules/system/boot/stage-2-init.sh b/nixos/modules/system/boot/stage-2-init.sh
index d1de7920df9..936077b9df1 100644
--- a/nixos/modules/system/boot/stage-2-init.sh
+++ b/nixos/modules/system/boot/stage-2-init.sh
@@ -169,4 +169,4 @@ exec {logOutFd}>&- {logErrFd}>&-
 echo "starting systemd..."
 PATH=/run/current-system/systemd/lib/systemd:@fsPackagesPath@ \
     LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive \
-    exec systemd
+    exec @systemdExecutable@
diff --git a/nixos/modules/system/boot/stage-2.nix b/nixos/modules/system/boot/stage-2.nix
index 6b0b4722730..dd6d83ee009 100644
--- a/nixos/modules/system/boot/stage-2.nix
+++ b/nixos/modules/system/boot/stage-2.nix
@@ -10,6 +10,7 @@ let
     src = ./stage-2-init.sh;
     shellDebug = "${pkgs.bashInteractive}/bin/bash";
     shell = "${pkgs.bash}/bin/bash";
+    inherit (config.boot) systemdExecutable;
     isExecutable = true;
     inherit (config.nix) readOnlyStore;
     inherit useHostResolvConf;
@@ -72,6 +73,15 @@ in
         '';
       };
 
+      systemdExecutable = mkOption {
+        default = "systemd";
+        type = types.str;
+        description = ''
+          The program to execute to start systemd. Typically
+          <literal>systemd</literal>, which will find systemd in the
+          PATH.
+        '';
+      };
     };
 
   };
diff --git a/nixos/modules/system/boot/systemd-nspawn.nix b/nixos/modules/system/boot/systemd-nspawn.nix
index 06ea5ee49f7..b450d77429b 100644
--- a/nixos/modules/system/boot/systemd-nspawn.nix
+++ b/nixos/modules/system/boot/systemd-nspawn.nix
@@ -113,9 +113,9 @@ in {
   config =
     let
       units = mapAttrs' (n: v: let nspawnFile = "${n}.nspawn"; in nameValuePair nspawnFile (instanceToUnit nspawnFile v)) cfg;
-    in 
+    in
       mkMerge [
-        (mkIf (cfg != {}) { 
+        (mkIf (cfg != {}) {
           environment.etc."systemd/nspawn".source = mkIf (cfg != {}) (generateUnits' false "nspawn" units [] []);
         })
         {
@@ -123,7 +123,7 @@ in {
 
           # Workaround for https://github.com/NixOS/nixpkgs/pull/67232#issuecomment-531315437 and https://github.com/systemd/systemd/issues/13622
           # Once systemd fixes this upstream, we can re-enable -U
-          systemd.services."systemd-nspawn@".serviceConfig.ExecStart = [ 
+          systemd.services."systemd-nspawn@".serviceConfig.ExecStart = [
             ""  # deliberately empty. signals systemd to override the ExecStart
             # Only difference between upstream is that we do not pass the -U flag
             "${config.systemd.package}/bin/systemd-nspawn --quiet --keep-unit --boot --link-journal=try-guest --network-veth --settings=override --machine=%i"
diff --git a/nixos/modules/system/boot/systemd-unit-options.nix b/nixos/modules/system/boot/systemd-unit-options.nix
index c6dbb96951a..5addc6f9ca4 100644
--- a/nixos/modules/system/boot/systemd-unit-options.nix
+++ b/nixos/modules/system/boot/systemd-unit-options.nix
@@ -234,7 +234,6 @@ in rec {
     path = mkOption {
       default = [];
       type = with types; listOf (oneOf [ package str ]);
-      apply = ps: "${makeBinPath ps}:${makeSearchPathOutput "bin" "sbin" ps}";
       description = ''
         Packages added to the service's <envar>PATH</envar>
         environment variable.  Both the <filename>bin</filename>
@@ -379,6 +378,16 @@ in rec {
       '';
     };
 
+    listenDatagrams = mkOption {
+      default = [];
+      type = types.listOf types.str;
+      example = [ "0.0.0.0:993" "/run/my-socket" ];
+      description = ''
+        For each item in this list, a <literal>ListenDatagram</literal>
+        option in the <literal>[Socket]</literal> section will be created.
+      '';
+    };
+
     socketConfig = mkOption {
       default = {};
       example = { ListenStream = "/run/my-socket"; };
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index a8e51fc0901..74d6957678f 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -25,7 +25,7 @@ let
       "nss-lookup.target"
       "nss-user-lookup.target"
       "time-sync.target"
-      #"cryptsetup.target"
+      "cryptsetup.target"
       "sigpwr.target"
       "timers.target"
       "paths.target"
@@ -73,7 +73,7 @@ let
       "systemd-journald.service"
       "systemd-journal-flush.service"
       "systemd-journal-catalog-update.service"
-      "systemd-journald-audit.socket"
+      ] ++ (optional (!config.boot.isContainer) "systemd-journald-audit.socket") ++ [
       "systemd-journald-dev-log.socket"
       "syslog.socket"
 
@@ -81,10 +81,6 @@ let
       "systemd-coredump.socket"
       "systemd-coredump@.service"
 
-      # SysV init compatibility.
-      "systemd-initctl.socket"
-      "systemd-initctl.service"
-
       # Kernel module loading.
       "systemd-modules-load.service"
       "kmod-static-nodes.service"
@@ -101,7 +97,7 @@ let
       "dev-hugepages.mount"
       "dev-mqueue.mount"
       "sys-fs-fuse-connections.mount"
-      "sys-kernel-config.mount"
+      ] ++ (optional (!config.boot.isContainer) "sys-kernel-config.mount") ++ [
       "sys-kernel-debug.mount"
 
       # Maintaining state across reboots.
@@ -261,7 +257,7 @@ let
               pkgs.gnused
               systemd
             ];
-          environment.PATH = config.path;
+          environment.PATH = "${makeBinPath config.path}:${makeSearchPathOutput "bin" "sbin" config.path}";
         }
         (mkIf (config.preStart != "")
           { serviceConfig.ExecStartPre =
@@ -354,6 +350,7 @@ let
           [Socket]
           ${attrsToSection def.socketConfig}
           ${concatStringsSep "\n" (map (s: "ListenStream=${s}") def.listenStreams)}
+          ${concatStringsSep "\n" (map (s: "ListenDatagram=${s}") def.listenDatagrams)}
         '';
     };
 
@@ -749,6 +746,25 @@ in
       '';
     };
 
+    systemd.tmpfiles.packages = mkOption {
+      type = types.listOf types.package;
+      default = [];
+      example = literalExample "[ pkgs.lvm2 ]";
+      apply = map getLib;
+      description = ''
+        List of packages containing <command>systemd-tmpfiles</command> rules.
+
+        All files ending in .conf found in
+        <filename><replaceable>pkg</replaceable>/lib/tmpfiles.d</filename>
+        will be included.
+        If this folder does not exist or does not contain any files an error will be returned instead.
+
+        If a <filename>lib</filename> output is available, rules are searched there and only there.
+        If there is no <filename>lib</filename> output it will fall back to <filename>out</filename>
+        and if that does not exist either, the default output will be used.
+      '';
+    };
+
     systemd.user.units = mkOption {
       description = "Definition of systemd per-user units.";
       default = {};
@@ -818,6 +834,49 @@ in
       '';
     };
 
+    systemd.watchdog.device = mkOption {
+      type = types.nullOr types.path;
+      default = null;
+      example = "/dev/watchdog";
+      description = ''
+        The path to a hardware watchdog device which will be managed by systemd.
+        If not specified, systemd will default to /dev/watchdog.
+      '';
+    };
+
+    systemd.watchdog.runtimeTime = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      example = "30s";
+      description = ''
+        The amount of time which can elapse before a watchdog hardware device
+        will automatically reboot the system. Valid time units include "ms",
+        "s", "min", "h", "d", and "w".
+      '';
+    };
+
+    systemd.watchdog.rebootTime = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      example = "10m";
+      description = ''
+        The amount of time which can elapse after a reboot has been triggered
+        before a watchdog hardware device will automatically reboot the system.
+        Valid time units include "ms", "s", "min", "h", "d", and "w".
+      '';
+    };
+
+    systemd.watchdog.kexecTime = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      example = "10m";
+      description = ''
+        The amount of time which can elapse when kexec is being executed before
+        a watchdog hardware device will automatically reboot the system. This
+        option should only be enabled if reloadTime is also enabled. Valid
+        time units include "ms", "s", "min", "h", "d", and "w".
+      '';
+    };
   };
 
 
@@ -844,11 +903,9 @@ in
       )
       ]);
       passwd = (mkMerge [
-        [ "mymachines" ]
         (mkAfter [ "systemd" ])
       ]);
       group = (mkMerge [
-        [ "mymachines" ]
         (mkAfter [ "systemd" ])
       ]);
     };
@@ -889,6 +946,19 @@ in
           DefaultIPAccounting=yes
         ''}
         DefaultLimitCORE=infinity
+        ${optionalString (config.systemd.watchdog.device != null) ''
+          WatchdogDevice=${config.systemd.watchdog.device}
+        ''}
+        ${optionalString (config.systemd.watchdog.runtimeTime != null) ''
+          RuntimeWatchdogSec=${config.systemd.watchdog.runtimeTime}
+        ''}
+        ${optionalString (config.systemd.watchdog.rebootTime != null) ''
+          RebootWatchdogSec=${config.systemd.watchdog.rebootTime}
+        ''}
+        ${optionalString (config.systemd.watchdog.kexecTime != null) ''
+          KExecWatchdogSec=${config.systemd.watchdog.kexecTime}
+        ''}
+
         ${config.systemd.extraConfig}
       '';
 
@@ -936,24 +1006,20 @@ in
       "sysctl.d/50-coredump.conf".source = "${systemd}/example/sysctl.d/50-coredump.conf";
       "sysctl.d/50-default.conf".source = "${systemd}/example/sysctl.d/50-default.conf";
 
-      "tmpfiles.d/00-nixos.conf".text = ''
-        # This file is created automatically and should not be modified.
-        # Please change the option ‘systemd.tmpfiles.rules’ instead.
-
-        ${concatStringsSep "\n" cfg.tmpfiles.rules}
-      '';
-
-      "tmpfiles.d/home.conf".source = "${systemd}/example/tmpfiles.d/home.conf";
-      "tmpfiles.d/journal-nocow.conf".source = "${systemd}/example/tmpfiles.d/journal-nocow.conf";
-      "tmpfiles.d/portables.conf".source = "${systemd}/example/tmpfiles.d/portables.conf";
-      "tmpfiles.d/static-nodes-permissions.conf".source = "${systemd}/example/tmpfiles.d/static-nodes-permissions.conf";
-      "tmpfiles.d/systemd.conf".source = "${systemd}/example/tmpfiles.d/systemd.conf";
-      "tmpfiles.d/systemd-nologin.conf".source = "${systemd}/example/tmpfiles.d/systemd-nologin.conf";
-      "tmpfiles.d/systemd-nspawn.conf".source = "${systemd}/example/tmpfiles.d/systemd-nspawn.conf";
-      "tmpfiles.d/systemd-tmp.conf".source = "${systemd}/example/tmpfiles.d/systemd-tmp.conf";
-      "tmpfiles.d/tmp.conf".source = "${systemd}/example/tmpfiles.d/tmp.conf";
-      "tmpfiles.d/var.conf".source = "${systemd}/example/tmpfiles.d/var.conf";
-      "tmpfiles.d/x11.conf".source = "${systemd}/example/tmpfiles.d/x11.conf";
+      "tmpfiles.d".source = (pkgs.symlinkJoin {
+        name = "tmpfiles.d";
+        paths = map (p: p + "/lib/tmpfiles.d") cfg.tmpfiles.packages;
+        postBuild = ''
+          for i in $(cat $pathsPath); do
+            (test -d "$i" && test $(ls "$i"/*.conf | wc -l) -ge 1) || (
+              echo "ERROR: The path '$i' from systemd.tmpfiles.packages contains no *.conf files."
+              exit 1
+            )
+          done
+        '' + concatMapStrings (name: optionalString (hasPrefix "tmpfiles.d/" name) ''
+          rm -f $out/${removePrefix "tmpfiles.d/" name}
+        '') config.system.build.etc.targets;
+      }) + "/*";
 
       "systemd/system-generators" = { source = hooks "generators" cfg.generators; };
       "systemd/system-shutdown" = { source = hooks "shutdown" cfg.shutdown; };
@@ -974,6 +1040,36 @@ in
         unitConfig.X-StopOnReconfiguration = true;
       };
 
+    systemd.tmpfiles.packages = [
+      # Default tmpfiles rules provided by systemd
+      (pkgs.runCommand "systemd-default-tmpfiles" {} ''
+        mkdir -p $out/lib/tmpfiles.d
+        cd $out/lib/tmpfiles.d
+
+        ln -s "${systemd}/example/tmpfiles.d/home.conf"
+        ln -s "${systemd}/example/tmpfiles.d/journal-nocow.conf"
+        ln -s "${systemd}/example/tmpfiles.d/static-nodes-permissions.conf"
+        ln -s "${systemd}/example/tmpfiles.d/systemd.conf"
+        ln -s "${systemd}/example/tmpfiles.d/systemd-nologin.conf"
+        ln -s "${systemd}/example/tmpfiles.d/systemd-nspawn.conf"
+        ln -s "${systemd}/example/tmpfiles.d/systemd-tmp.conf"
+        ln -s "${systemd}/example/tmpfiles.d/tmp.conf"
+        ln -s "${systemd}/example/tmpfiles.d/var.conf"
+        ln -s "${systemd}/example/tmpfiles.d/x11.conf"
+      '')
+      # User-specified tmpfiles rules
+      (pkgs.writeTextFile {
+        name = "nixos-tmpfiles.d";
+        destination = "/lib/tmpfiles.d/00-nixos.conf";
+        text = ''
+          # This file is created automatically and should not be modified.
+          # Please change the option ‘systemd.tmpfiles.rules’ instead.
+
+          ${concatStringsSep "\n" cfg.tmpfiles.rules}
+        '';
+      })
+    ];
+
     systemd.units =
          mapAttrs' (n: v: nameValuePair "${n}.path"    (pathToUnit    n v)) cfg.paths
       // mapAttrs' (n: v: nameValuePair "${n}.service" (serviceToUnit n v)) cfg.services
diff --git a/nixos/modules/system/boot/tmp.nix b/nixos/modules/system/boot/tmp.nix
index 5bf5e2eb2ec..26eb172210e 100644
--- a/nixos/modules/system/boot/tmp.nix
+++ b/nixos/modules/system/boot/tmp.nix
@@ -36,4 +36,4 @@ with lib;
 
   };
 
-}
\ No newline at end of file
+}
diff --git a/nixos/modules/system/etc/etc.nix b/nixos/modules/system/etc/etc.nix
index 1f4d54a1ae2..7478e3e8071 100644
--- a/nixos/modules/system/etc/etc.nix
+++ b/nixos/modules/system/etc/etc.nix
@@ -46,7 +46,7 @@ in
         Set of files that have to be linked in <filename>/etc</filename>.
       '';
 
-      type = with types; loaOf (submodule (
+      type = with types; attrsOf (submodule (
         { name, config, ... }:
         { options = {
 
diff --git a/nixos/modules/system/etc/make-etc.sh b/nixos/modules/system/etc/make-etc.sh
index 1ca4c3046f0..aabfb5e88a6 100644
--- a/nixos/modules/system/etc/make-etc.sh
+++ b/nixos/modules/system/etc/make-etc.sh
@@ -23,7 +23,7 @@ for ((i = 0; i < ${#targets_[@]}; i++)); do
         done
 
     else
-        
+
         mkdir -p $out/etc/$(dirname $target)
         if ! [ -e $out/etc/$target ]; then
             ln -s $source $out/etc/$target
@@ -34,13 +34,12 @@ for ((i = 0; i < ${#targets_[@]}; i++)); do
                 exit 1
             fi
         fi
-        
+
         if test "${modes_[$i]}" != symlink; then
             echo "${modes_[$i]}"  > $out/etc/$target.mode
             echo "${users_[$i]}"  > $out/etc/$target.uid
             echo "${groups_[$i]}" > $out/etc/$target.gid
         fi
-        
+
     fi
 done
-
diff --git a/nixos/modules/tasks/auto-upgrade.nix b/nixos/modules/tasks/auto-upgrade.nix
index e70004e643e..69385e5f2fe 100644
--- a/nixos/modules/tasks/auto-upgrade.nix
+++ b/nixos/modules/tasks/auto-upgrade.nix
@@ -2,9 +2,9 @@
 
 with lib;
 
-let cfg = config.system.autoUpgrade; in
+let cfg = config.system.autoUpgrade;
 
-{
+in {
 
   options = {
 
@@ -21,6 +21,16 @@ let cfg = config.system.autoUpgrade; in
         '';
       };
 
+      flake = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        example = "github:kloenk/nix";
+        description = ''
+          The Flake URI of the NixOS configuration to build.
+          Disables the option <option>system.autoUpgrade.channel</option>.
+        '';
+      };
+
       channel = mkOption {
         type = types.nullOr types.str;
         default = null;
@@ -35,10 +45,20 @@ let cfg = config.system.autoUpgrade; in
 
       flags = mkOption {
         type = types.listOf types.str;
-        default = [];
-        example = [ "-I" "stuff=/home/alice/nixos-stuff" "--option" "extra-binary-caches" "http://my-cache.example.org/" ];
+        default = [ ];
+        example = [
+          "-I"
+          "stuff=/home/alice/nixos-stuff"
+          "--option"
+          "extra-binary-caches"
+          "http://my-cache.example.org/"
+        ];
         description = ''
           Any additional flags passed to <command>nixos-rebuild</command>.
+
+          If you are using flakes and use a local repo you can add
+          <command>[ "--update-input" "nixpkgs" "--commit-lock-file" ]</command>
+          to update nixpkgs.
         '';
       };
 
@@ -82,11 +102,23 @@ let cfg = config.system.autoUpgrade; in
 
   config = lib.mkIf cfg.enable {
 
-    system.autoUpgrade.flags =
-      [ "--no-build-output" ]
-      ++ (if cfg.channel == null
-          then [ "--upgrade" ]
-          else [ "-I" "nixpkgs=${cfg.channel}/nixexprs.tar.xz" ]);
+    assertions = [{
+      assertion = !((cfg.channel != null) && (cfg.flake != null));
+      message = ''
+        The options 'system.autoUpgrade.channels' and 'system.autoUpgrade.flake' cannot both be set.
+      '';
+    }];
+
+    system.autoUpgrade.flags = [ "--no-build-output" ]
+      ++ (if cfg.flake == null then
+        (if cfg.channel == null then
+          [ "--upgrade" ]
+        else [
+          "-I"
+          "nixpkgs=${cfg.channel}/nixexprs.tar.xz"
+        ])
+      else
+        [ "--flake ${cfg.flake}" ]);
 
     systemd.services.nixos-upgrade = {
       description = "NixOS Upgrade";
@@ -96,33 +128,41 @@ let cfg = config.system.autoUpgrade; in
 
       serviceConfig.Type = "oneshot";
 
-      environment = config.nix.envVars //
-        { inherit (config.environment.sessionVariables) NIX_PATH;
-          HOME = "/root";
-        } // config.networking.proxy.envVars;
+      environment = config.nix.envVars // {
+        inherit (config.environment.sessionVariables) NIX_PATH;
+        HOME = "/root";
+      } // config.networking.proxy.envVars;
 
-      path = with pkgs; [ coreutils gnutar xz.bin gzip gitMinimal config.nix.package.out ];
+      path = with pkgs; [
+        coreutils
+        gnutar
+        xz.bin
+        gzip
+        gitMinimal
+        config.nix.package.out
+      ];
 
       script = let
-          nixos-rebuild = "${config.system.build.nixos-rebuild}/bin/nixos-rebuild";
-        in
-        if cfg.allowReboot then ''
-            ${nixos-rebuild} boot ${toString cfg.flags}
-            booted="$(readlink /run/booted-system/{initrd,kernel,kernel-modules})"
-            built="$(readlink /nix/var/nix/profiles/system/{initrd,kernel,kernel-modules})"
-            if [ "$booted" = "$built" ]; then
-              ${nixos-rebuild} switch ${toString cfg.flags}
-            else
-              /run/current-system/sw/bin/shutdown -r +1
-            fi
-          '' else ''
-            ${nixos-rebuild} switch ${toString cfg.flags}
-        '';
+        nixos-rebuild =
+          "${config.system.build.nixos-rebuild}/bin/nixos-rebuild";
+      in if cfg.allowReboot then ''
+        ${nixos-rebuild} boot ${toString cfg.flags}
+        booted="$(readlink /run/booted-system/{initrd,kernel,kernel-modules})"
+        built="$(readlink /nix/var/nix/profiles/system/{initrd,kernel,kernel-modules})"
+        if [ "$booted" = "$built" ]; then
+          ${nixos-rebuild} switch ${toString cfg.flags}
+        else
+          /run/current-system/sw/bin/shutdown -r +1
+        fi
+      '' else ''
+        ${nixos-rebuild} switch ${toString cfg.flags}
+      '';
 
       startAt = cfg.dates;
     };
 
-    systemd.timers.nixos-upgrade.timerConfig.RandomizedDelaySec = cfg.randomizedDelaySec;
+    systemd.timers.nixos-upgrade.timerConfig.RandomizedDelaySec =
+      cfg.randomizedDelaySec;
 
   };
 
diff --git a/nixos/modules/tasks/bcache.nix b/nixos/modules/tasks/bcache.nix
index 8bab91c721f..41fb7664f3d 100644
--- a/nixos/modules/tasks/bcache.nix
+++ b/nixos/modules/tasks/bcache.nix
@@ -8,6 +8,6 @@
 
   boot.initrd.extraUdevRulesCommands = ''
     cp -v ${pkgs.bcache-tools}/lib/udev/rules.d/*.rules $out/
-  ''; 
+  '';
 
 }
diff --git a/nixos/modules/tasks/encrypted-devices.nix b/nixos/modules/tasks/encrypted-devices.nix
index bc0933f16fe..dd337de9869 100644
--- a/nixos/modules/tasks/encrypted-devices.nix
+++ b/nixos/modules/tasks/encrypted-devices.nix
@@ -37,7 +37,14 @@ let
         default = null;
         example = "/mnt-root/root/.swapkey";
         type = types.nullOr types.str;
-        description = "File system location of keyfile. This unlocks the drive after the root has been mounted to <literal>/mnt-root</literal>.";
+        description = ''
+          Path to a keyfile used to unlock the backing encrypted
+          device. At the time this keyfile is accessed, the
+          <literal>neededForBoot</literal> filesystems (see
+          <literal>fileSystems.&lt;name?&gt;.neededForBoot</literal>)
+          will have been mounted under <literal>/mnt-root</literal>,
+          so the keyfile path should usually start with "/mnt-root/".
+        '';
       };
     };
   };
@@ -47,7 +54,7 @@ in
 
   options = {
     fileSystems = mkOption {
-      type = with lib.types; loaOf (submodule encryptedFSOptions);
+      type = with lib.types; attrsOf (submodule encryptedFSOptions);
     };
     swapDevices = mkOption {
       type = with lib.types; listOf (submodule encryptedFSOptions);
@@ -65,12 +72,16 @@ in
     boot.initrd = {
       luks = {
         devices =
-          builtins.listToAttrs (map (dev: { name = dev.encrypted.label; value = { device = dev.encrypted.blkDev; }; }) keylessEncDevs);
+          builtins.listToAttrs (map (dev: {
+            name = dev.encrypted.label;
+            value = { device = dev.encrypted.blkDev; };
+          }) keylessEncDevs);
         forceLuksSupportInInitrd = true;
       };
       postMountCommands =
-        concatMapStrings (dev: "cryptsetup luksOpen --key-file ${dev.encrypted.keyFile} ${dev.encrypted.blkDev} ${dev.encrypted.label};\n") keyedEncDevs;
+        concatMapStrings (dev:
+          "cryptsetup luksOpen --key-file ${dev.encrypted.keyFile} ${dev.encrypted.blkDev} ${dev.encrypted.label};\n"
+        ) keyedEncDevs;
     };
   };
 }
-
diff --git a/nixos/modules/tasks/filesystems.nix b/nixos/modules/tasks/filesystems.nix
index 0ade74b957a..3ea67dac714 100644
--- a/nixos/modules/tasks/filesystems.nix
+++ b/nixos/modules/tasks/filesystems.nix
@@ -159,7 +159,7 @@ in
           "/bigdisk".label = "bigdisk";
         }
       '';
-      type = types.loaOf (types.submodule [coreFileSystemOpts fileSystemOpts]);
+      type = types.attrsOf (types.submodule [coreFileSystemOpts fileSystemOpts]);
       description = ''
         The file systems to be mounted.  It must include an entry for
         the root directory (<literal>mountPoint = "/"</literal>).  Each
@@ -193,7 +193,7 @@ in
 
     boot.specialFileSystems = mkOption {
       default = {};
-      type = types.loaOf (types.submodule coreFileSystemOpts);
+      type = types.attrsOf (types.submodule coreFileSystemOpts);
       internal = true;
       description = ''
         Special filesystems that are mounted very early during boot.
diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix
index c9d9c6c1657..9ca7c6fb343 100644
--- a/nixos/modules/tasks/filesystems/zfs.nix
+++ b/nixos/modules/tasks/filesystems/zfs.nix
@@ -191,13 +191,14 @@ in
       };
 
       requestEncryptionCredentials = mkOption {
-        type = types.bool;
+        type = types.either types.bool (types.listOf types.str);
         default = true;
+        example = [ "tank" "data" ];
         description = ''
-          Request encryption keys or passwords for all encrypted datasets on import.
-          For root pools the encryption key can be supplied via both an
-          interactive prompt (keylocation=prompt) and from a file
-          (keylocation=file://).
+          If true on import encryption keys or passwords for all encrypted datasets
+          are requested. To only decrypt selected datasets supply a list of dataset
+          names instead. For root pools the encryption key can be supplied via both
+          an interactive prompt (keylocation=prompt) and from a file (keylocation=file://).
         '';
       };
 
@@ -419,9 +420,13 @@ in
               fi
               poolImported "${pool}" || poolImport "${pool}"  # Try one last time, e.g. to import a degraded pool.
             fi
-            ${lib.optionalString cfgZfs.requestEncryptionCredentials ''
-              zfs load-key -a
-            ''}
+            ${if isBool cfgZfs.requestEncryptionCredentials
+              then optionalString cfgZfs.requestEncryptionCredentials ''
+                zfs load-key -a
+              ''
+              else concatMapStrings (fs: ''
+                zfs load-key ${fs}
+              '') cfgZfs.requestEncryptionCredentials}
         '') rootPools));
       };
 
@@ -517,9 +522,16 @@ in
               done
               poolImported "${pool}" || poolImport "${pool}"  # Try one last time, e.g. to import a degraded pool.
               if poolImported "${pool}"; then
-                ${optionalString cfgZfs.requestEncryptionCredentials ''
+                ${optionalString (if isBool cfgZfs.requestEncryptionCredentials
+                                  then cfgZfs.requestEncryptionCredentials
+                                  else cfgZfs.requestEncryptionCredentials != []) ''
                   ${packages.zfsUser}/sbin/zfs list -rHo name,keylocation ${pool} | while IFS=$'\t' read ds kl; do
-                    (case "$kl" in
+                    (${optionalString (!isBool cfgZfs.requestEncryptionCredentials) ''
+                         if ! echo '${concatStringsSep "\n" cfgZfs.requestEncryptionCredentials}' | grep -qFx "$ds"; then
+                           continue
+                         fi
+                       ''}
+                    case "$kl" in
                       none )
                         ;;
                       prompt )
diff --git a/nixos/modules/tasks/lvm.nix b/nixos/modules/tasks/lvm.nix
index d56a8a2f63a..2c3cc4c5467 100644
--- a/nixos/modules/tasks/lvm.nix
+++ b/nixos/modules/tasks/lvm.nix
@@ -1,17 +1,70 @@
 { config, lib, pkgs, ... }:
 
 with lib;
+let
+  cfg = config.services.lvm;
+in {
+  options.services.lvm = {
+    package = mkOption {
+      type = types.package;
+      default = if cfg.dmeventd.enable then pkgs.lvm2_dmeventd else pkgs.lvm2;
+      internal = true;
+      defaultText = "pkgs.lvm2";
+      description = ''
+        This option allows you to override the LVM package that's used on the system
+        (udev rules, tmpfiles, systemd services).
+        Defaults to pkgs.lvm2, or pkgs.lvm2_dmeventd if dmeventd is enabled.
+      '';
+    };
+    dmeventd.enable = mkEnableOption "the LVM dmevent daemon";
+    boot.thin.enable = mkEnableOption "support for booting from ThinLVs";
+  };
 
-{
-
-  ###### implementation
+  config = mkMerge [
+    (mkIf (!config.boot.isContainer) {
+      systemd.tmpfiles.packages = [ cfg.package.out ];
+      environment.systemPackages = [ cfg.package ];
+      systemd.packages = [ cfg.package ];
 
-  config = mkIf (!config.boot.isContainer) {
+      # TODO: update once https://github.com/NixOS/nixpkgs/pull/93006 was merged
+      services.udev.packages = [ cfg.package.out ];
+    })
+    (mkIf cfg.dmeventd.enable {
+      systemd.sockets."dm-event".wantedBy = [ "sockets.target" ];
+      systemd.services."lvm2-monitor".wantedBy = [ "sysinit.target" ];
 
-    environment.systemPackages = [ pkgs.lvm2 ];
+      environment.etc."lvm/lvm.conf".text = ''
+        dmeventd/executable = "${cfg.package}/bin/dmeventd"
+      '';
+    })
+    (mkIf cfg.boot.thin.enable {
+      boot.initrd = {
+        kernelModules = [ "dm-snapshot" "dm-thin-pool" ];
 
-    services.udev.packages = [ pkgs.lvm2 ];
+        extraUtilsCommands = ''
+          copy_bin_and_libs ${pkgs.thin-provisioning-tools}/bin/pdata_tools
+          copy_bin_and_libs ${pkgs.thin-provisioning-tools}/bin/thin_check
+        '';
+      };
 
-  };
+      environment.etc."lvm/lvm.conf".text = ''
+        global/thin_check_executable = "${pkgs.thin-provisioning-tools}/bin/thin_check"
+      '';
+    })
+    (mkIf (cfg.dmeventd.enable || cfg.boot.thin.enable) {
+      boot.initrd.preLVMCommands = ''
+          mkdir -p /etc/lvm
+          cat << EOF >> /etc/lvm/lvm.conf
+          ${optionalString cfg.boot.thin.enable ''
+            global/thin_check_executable = "$(command -v thin_check)"
+          ''}
+          ${optionalString cfg.dmeventd.enable ''
+            dmeventd/executable = "$(command -v false)"
+            activation/monitoring = 0
+          ''}
+          EOF
+      '';
+    })
+  ];
 
 }
diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix
index 2e87197176b..9ba6ccfbe71 100644
--- a/nixos/modules/tasks/network-interfaces-scripted.nix
+++ b/nixos/modules/tasks/network-interfaces-scripted.nix
@@ -253,8 +253,8 @@ let
 
         createTunDevice = i: nameValuePair "${i.name}-netdev"
           { description = "Virtual Network Interface ${i.name}";
-            bindsTo = [ "dev-net-tun.device" ];
-            after = [ "dev-net-tun.device" "network-pre.target" ];
+            bindsTo = optional (!config.boot.isContainer) "dev-net-tun.device";
+            after = optional (!config.boot.isContainer) "dev-net-tun.device" ++ [ "network-pre.target" ];
             wantedBy = [ "network-setup.service" (subsystemDevice i.name) ];
             partOf = [ "network-setup.service" ];
             before = [ "network-setup.service" ];
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix
index 78d66966949..c0e4d3979fd 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -408,6 +408,9 @@ in
         (this derives it from the machine-id that systemd generates) or
 
         <literal>head -c4 /dev/urandom | od -A none -t x4</literal>
+
+        The primary use case is to ensure when using ZFS that a pool isn't imported
+        accidentally on a wrong machine.
       '';
     };
 
@@ -516,7 +519,7 @@ in
         <option>networking.useDHCP</option> is true, then every
         interface not listed here will be configured using DHCP.
       '';
-      type = with types; loaOf (submodule interfaceOpts);
+      type = with types; attrsOf (submodule interfaceOpts);
     };
 
     networking.vswitches = mkOption {
@@ -541,7 +544,7 @@ in
           interfaces = mkOption {
             example = [ "eth0" "eth1" ];
             description = "The physical network interfaces connected by the vSwitch.";
-            type = with types; loaOf (submodule vswitchInterfaceOpts);
+            type = with types; attrsOf (submodule vswitchInterfaceOpts);
           };
 
           controllers = mkOption {
@@ -1126,7 +1129,6 @@ in
       ++ optionals config.networking.wireless.enable [
         pkgs.wirelesstools # FIXME: obsolete?
         pkgs.iw
-        pkgs.rfkill
       ]
       ++ bridgeStp;
 
diff --git a/nixos/modules/testing/test-instrumentation.nix b/nixos/modules/testing/test-instrumentation.nix
index 1baeab53b0c..c0ec76e8a3a 100644
--- a/nixos/modules/testing/test-instrumentation.nix
+++ b/nixos/modules/testing/test-instrumentation.nix
@@ -1,22 +1,13 @@
 # This module allows the test driver to connect to the virtual machine
 # via a root shell attached to port 514.
 
-{ config, lib, pkgs, ... }:
+{ options, config, lib, pkgs, ... }:
 
 with lib;
 with import ../../lib/qemu-flags.nix { inherit pkgs; };
 
 {
 
-  # This option is a dummy that if used in conjunction with
-  # modules/virtualisation/qemu-vm.nix gets merged with the same option defined
-  # there and only is declared here because some modules use
-  # test-instrumentation.nix but not qemu-vm.nix.
-  #
-  # One particular example are the boot tests where we want instrumentation
-  # within the images but not other stuff like setting up 9p filesystems.
-  options.virtualisation.qemu = { };
-
   config = {
 
     systemd.services.backdoor =
@@ -55,7 +46,12 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
     systemd.services."serial-getty@hvc0".enable = false;
 
     # Only use a serial console, no TTY.
-    virtualisation.qemu.consoles = [ qemuSerialDevice ];
+    # NOTE: optionalAttrs
+    #       test-instrumentation.nix appears to be used without qemu-vm.nix, so
+    #       we avoid defining consoles if not possible.
+    # TODO: refactor such that test-instrumentation can import qemu-vm
+    #       or declare virtualisation.qemu.console option in a module that's always imported
+    virtualisation = lib.optionalAttrs (options ? virtualisation.qemu.consoles) { qemu.consoles = [ qemuSerialDevice ]; };
 
     boot.initrd.preDeviceCommands =
       ''
@@ -78,15 +74,8 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
         # OOM killer randomly get rid of processes, since this leads
         # to failures that are hard to diagnose.
         echo 2 > /proc/sys/vm/panic_on_oom
-
-        # Coverage data is written into /tmp/coverage-data.
-        mkdir -p /tmp/xchg/coverage-data
       '';
 
-    # If the kernel has been built with coverage instrumentation, make
-    # it available under /proc/gcov.
-    boot.kernelModules = [ "gcov-proc" ];
-
     # Panic if an error occurs in stage 1 (rather than waiting for
     # user intervention).
     boot.kernelParams =
@@ -115,8 +104,6 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
     networking.defaultGateway = mkOverride 150 "";
     networking.nameservers = mkOverride 150 [ ];
 
-    systemd.globalEnvironment.GCOV_PREFIX = "/tmp/xchg/coverage-data";
-
     system.requiredKernelConfig = with config.lib.kernelConfig; [
       (isYes "SERIAL_8250_CONSOLE")
       (isYes "SERIAL_8250")
diff --git a/nixos/modules/virtualisation/azure-image.nix b/nixos/modules/virtualisation/azure-image.nix
index 21fd58e5c90..60fed3222ef 100644
--- a/nixos/modules/virtualisation/azure-image.nix
+++ b/nixos/modules/virtualisation/azure-image.nix
@@ -6,7 +6,7 @@ let
 in
 {
   imports = [ ./azure-common.nix ];
-  
+
   options = {
     virtualisation.azureImage.diskSize = mkOption {
       type = with types; int;
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix
index 105f0f2710e..de97ba3f7bb 100644
--- a/nixos/modules/virtualisation/containers.nix
+++ b/nixos/modules/virtualisation/containers.nix
@@ -23,6 +23,15 @@ in
     maintainers = [] ++ lib.teams.podman.members;
   };
 
+
+  imports = [
+    (
+      lib.mkRemovedOptionModule
+      [ "virtualisation" "containers" "users" ]
+      "All users with `isNormalUser = true` set now get appropriate subuid/subgid mappings."
+    )
+  ];
+
   options.virtualisation.containers = {
 
     enable =
@@ -34,6 +43,12 @@ in
         '';
       };
 
+    ociSeccompBpfHook.enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = "Enable the OCI seccomp BPF hook";
+    };
+
     containersConf = mkOption {
       default = {};
       description = "containers.conf configuration";
@@ -99,15 +114,6 @@ in
       '';
     };
 
-    users = mkOption {
-      default = [];
-      type = types.listOf types.str;
-      description = ''
-        List of users to set up subuid/subgid mappings for.
-        This is a requirement for running rootless containers.
-      '';
-    };
-
   };
 
   config = lib.mkIf cfg.enable {
@@ -116,32 +122,18 @@ in
       [network]
       cni_plugin_dirs = ["${pkgs.cni-plugins}/bin/"]
 
+      ${lib.optionalString (cfg.ociSeccompBpfHook.enable == true) ''
+      [engine]
+      hooks_dir = [
+        "${config.boot.kernelPackages.oci-seccomp-bpf-hook}",
+      ]
+      ''}
     '' + cfg.containersConf.extraConfig;
 
     environment.etc."containers/registries.conf".source = toTOML "registries.conf" {
       registries = lib.mapAttrs (n: v: { registries = v; }) cfg.registries;
     };
 
-    users.extraUsers = builtins.listToAttrs (
-      (
-        builtins.foldl' (
-          acc: user: {
-            values = acc.values ++ [
-              {
-                name = user;
-                value = {
-                  subUidRanges = [ { startUid = acc.offset; count = 65536; } ];
-                  subGidRanges = [ { startGid = acc.offset; count = 65536; } ];
-                };
-              }
-            ];
-            offset = acc.offset + 65536;
-          }
-        )
-        { values = []; offset = 100000; } (lib.unique cfg.users)
-      ).values
-    );
-
     environment.etc."containers/policy.json".source =
       if cfg.policy != {} then pkgs.writeText "policy.json" (builtins.toJSON cfg.policy)
       else copyFile "${pkgs.skopeo.src}/default-policy.json";
diff --git a/nixos/modules/virtualisation/cri-o.nix b/nixos/modules/virtualisation/cri-o.nix
index f267c97b178..aa2fb73533a 100644
--- a/nixos/modules/virtualisation/cri-o.nix
+++ b/nixos/modules/virtualisation/cri-o.nix
@@ -85,7 +85,7 @@ in
 
     environment.etc."crictl.yaml".source = copyFile "${pkgs.cri-o-unwrapped.src}/crictl.yaml";
 
-    environment.etc."crio/crio.conf".text = ''
+    environment.etc."crio/crio.conf.d/00-default.conf".text = ''
       [crio]
       storage_driver = "${cfg.storageDriver}"
 
@@ -100,6 +100,8 @@ in
       cgroup_manager = "systemd"
       log_level = "${cfg.logLevel}"
       manage_ns_lifecycle = true
+      pinns_path = "${cfg.package}/bin/pinns"
+      hooks_dir = []
 
       ${optionalString (cfg.runtime != null) ''
       default_runtime = "${cfg.runtime}"
@@ -109,6 +111,7 @@ in
     '';
 
     environment.etc."cni/net.d/10-crio-bridge.conf".source = copyFile "${pkgs.cri-o-unwrapped.src}/contrib/cni/10-crio-bridge.conf";
+    environment.etc."cni/net.d/99-loopback.conf".source = copyFile "${pkgs.cri-o-unwrapped.src}/contrib/cni/99-loopback.conf";
 
     # Enable common /etc/containers configuration
     virtualisation.containers.enable = true;
diff --git a/nixos/modules/virtualisation/docker-preloader.nix b/nixos/modules/virtualisation/docker-preloader.nix
deleted file mode 100644
index 6ab83058dee..00000000000
--- a/nixos/modules/virtualisation/docker-preloader.nix
+++ /dev/null
@@ -1,134 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-with builtins;
-
-let
-  cfg = config.virtualisation;
-
-  sanitizeImageName = image: replaceStrings ["/"] ["-"] image.imageName;
-  hash = drv: head (split "-" (baseNameOf drv.outPath));
-  # The label of an ext4 FS is limited to 16 bytes
-  labelFromImage = image: substring 0 16 (hash image);
-
-  # The Docker image is loaded and some files from /var/lib/docker/
-  # are written into a qcow image.
-  preload = image: pkgs.vmTools.runInLinuxVM (
-    pkgs.runCommand "docker-preload-image-${sanitizeImageName image}" {
-      buildInputs = with pkgs; [ docker e2fsprogs utillinux curl kmod ];
-      preVM = pkgs.vmTools.createEmptyImage {
-        size = cfg.dockerPreloader.qcowSize;
-        fullName = "docker-deamon-image.qcow2";
-      };
-    }
-    ''
-      mkfs.ext4 /dev/vda
-      e2label /dev/vda ${labelFromImage image}
-      mkdir -p /var/lib/docker
-      mount -t ext4 /dev/vda /var/lib/docker
-
-      modprobe overlay
-
-      # from https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount
-      mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
-      cd /sys/fs/cgroup
-      for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
-        mkdir -p $sys
-        if ! mountpoint -q $sys; then
-          if ! mount -n -t cgroup -o $sys cgroup $sys; then
-            rmdir $sys || true
-          fi
-        fi
-      done
-
-      dockerd -H tcp://127.0.0.1:5555 -H unix:///var/run/docker.sock &
-
-      until $(curl --output /dev/null --silent --connect-timeout 2 http://127.0.0.1:5555); do
-        printf '.'
-        sleep 1
-      done
-
-      docker load -i ${image}
-
-      kill %1
-      find /var/lib/docker/ -maxdepth 1 -mindepth 1 -not -name "image" -not -name "overlay2" | xargs rm -rf
-    '');
-
-  preloadedImages = map preload cfg.dockerPreloader.images;
-
-in
-
-{
-  options.virtualisation.dockerPreloader = {
-    images = mkOption {
-      default = [ ];
-      type = types.listOf types.package;
-      description =
-      ''
-        A list of Docker images to preload (in the /var/lib/docker directory).
-      '';
-    };
-    qcowSize = mkOption {
-      default = 1024;
-      type = types.int;
-      description =
-      ''
-        The size (MB) of qcow files.
-      '';
-    };
-  };
-
-  config = mkIf (cfg.dockerPreloader.images != []) {
-    assertions = [{
-      # If docker.storageDriver is null, Docker choose the storage
-      # driver. So, in this case, we cannot be sure overlay2 is used.
-      assertion = cfg.docker.storageDriver == "overlay2"
-        || cfg.docker.storageDriver == "overlay"
-        || cfg.docker.storageDriver == null;
-      message = "The Docker image Preloader only works with overlay2 storage driver!";
-    }];
-
-    virtualisation.qemu.options =
-      map (path: "-drive if=virtio,file=${path}/disk-image.qcow2,readonly,media=cdrom,format=qcow2")
-      preloadedImages;
-
-
-    # All attached QCOW files are mounted and their contents are linked
-    # to /var/lib/docker/ in order to make image available.
-    systemd.services.docker-preloader = {
-      description = "Preloaded Docker images";
-      wantedBy = ["docker.service"];
-      after = ["network.target"];
-      path = with pkgs; [ mount rsync jq ];
-      script = ''
-        mkdir -p /var/lib/docker/overlay2/l /var/lib/docker/image/overlay2
-        echo '{}' > /tmp/repositories.json
-
-        for i in ${concatStringsSep " " (map labelFromImage cfg.dockerPreloader.images)}; do
-          mkdir -p /mnt/docker-images/$i
-
-          # The ext4 label is limited to 16 bytes
-          mount /dev/disk/by-label/$(echo $i | cut -c1-16) -o ro,noload /mnt/docker-images/$i
-
-          find /mnt/docker-images/$i/overlay2/ -maxdepth 1 -mindepth 1 -not -name l\
-             -exec ln -s '{}' /var/lib/docker/overlay2/ \;
-          cp -P /mnt/docker-images/$i/overlay2/l/* /var/lib/docker/overlay2/l/
-
-          rsync -a /mnt/docker-images/$i/image/ /var/lib/docker/image/
-
-          # Accumulate image definitions
-          cp /tmp/repositories.json /tmp/repositories.json.tmp
-          jq -s '.[0] * .[1]' \
-            /tmp/repositories.json.tmp \
-            /mnt/docker-images/$i/image/overlay2/repositories.json \
-            > /tmp/repositories.json
-        done
-
-        mv /tmp/repositories.json /var/lib/docker/image/overlay2/repositories.json
-      '';
-      serviceConfig = {
-        Type = "oneshot";
-      };
-    };
-  };
-}
diff --git a/nixos/modules/virtualisation/docker.nix b/nixos/modules/virtualisation/docker.nix
index 7d196a46276..d87ada35a0a 100644
--- a/nixos/modules/virtualisation/docker.nix
+++ b/nixos/modules/virtualisation/docker.nix
@@ -149,6 +149,7 @@ in
   ###### implementation
 
   config = mkIf cfg.enable (mkMerge [{
+      boot.kernelModules = [ "bridge" "veth" ];
       environment.systemPackages = [ cfg.package ]
         ++ optional cfg.enableNvidia pkgs.nvidia-docker;
       users.groups.docker.gid = config.ids.gids.docker;
diff --git a/nixos/modules/virtualisation/libvirtd.nix b/nixos/modules/virtualisation/libvirtd.nix
index 43b5fcfa8fa..1d6a9457dde 100644
--- a/nixos/modules/virtualisation/libvirtd.nix
+++ b/nixos/modules/virtualisation/libvirtd.nix
@@ -265,8 +265,8 @@ in {
       restartIfChanged = false;
     };
 
-    systemd.sockets.libvirtd    .wantedBy = [ "sockets.target" ];
-    systemd.sockets.libvirtd-tcp.wantedBy = [ "sockets.target" ];
+    # https://libvirt.org/daemons.html#monolithic-systemd-integration
+    systemd.sockets.libvirtd.wantedBy = [ "sockets.target" ];
 
     security.polkit.extraConfig = ''
       polkit.addRule(function(action, subject) {
diff --git a/nixos/modules/virtualisation/nixos-containers.nix b/nixos/modules/virtualisation/nixos-containers.nix
index b0fa03917c8..8fbb4efd201 100644
--- a/nixos/modules/virtualisation/nixos-containers.nix
+++ b/nixos/modules/virtualisation/nixos-containers.nix
@@ -627,7 +627,7 @@ in
 		    };
 
             bindMounts = mkOption {
-              type = with types; loaOf (submodule bindMountOpts);
+              type = with types; attrsOf (submodule bindMountOpts);
               default = {};
               example = literalExample ''
                 { "/home" = { hostPath = "/home/alice";
diff --git a/nixos/modules/virtualisation/parallels-guest.nix b/nixos/modules/virtualisation/parallels-guest.nix
index 828419fb4b9..55605b388b7 100644
--- a/nixos/modules/virtualisation/parallels-guest.nix
+++ b/nixos/modules/virtualisation/parallels-guest.nix
@@ -32,7 +32,7 @@ in
       };
 
       package = mkOption {
-        type = types.package;
+        type = types.nullOr types.package;
         default = config.boot.kernelPackages.prl-tools;
         defaultText = "config.boot.kernelPackages.prl-tools";
         example = literalExample "config.boot.kernelPackages.prl-tools";
diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix
index be06d6feb11..42e43f5ee02 100644
--- a/nixos/modules/virtualisation/qemu-vm.nix
+++ b/nixos/modules/virtualisation/qemu-vm.nix
@@ -16,11 +16,6 @@ let
 
   qemu = config.system.build.qemu or pkgs.qemu_test;
 
-  vmName =
-    if config.networking.hostName == ""
-    then "noname"
-    else config.networking.hostName;
-
   cfg = config.virtualisation;
 
   consoles = lib.concatMapStringsSep " " (c: "console=${c}") cfg.qemu.consoles;
@@ -46,6 +41,13 @@ let
         description = "Extra options passed to device flag.";
       };
 
+      name = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description =
+          "A name for the drive. Must be unique in the drives list. Not passed to qemu.";
+      };
+
     };
 
   };
@@ -74,6 +76,32 @@ let
 
   drivesCmdLine = drives: concatStringsSep " " (imap1 driveCmdline drives);
 
+
+  # Creates a device name from a 1-based a numerical index, e.g.
+  # * `driveDeviceName 1` -> `/dev/vda`
+  # * `driveDeviceName 2` -> `/dev/vdb`
+  driveDeviceName = idx:
+    let letter = elemAt lowerChars (idx - 1);
+    in if cfg.qemu.diskInterface == "scsi" then
+      "/dev/sd${letter}"
+    else
+      "/dev/vd${letter}";
+
+  lookupDriveDeviceName = driveName: driveList:
+    (findSingle (drive: drive.name == driveName)
+      (throw "Drive ${driveName} not found")
+      (throw "Multiple drives named ${driveName}") driveList).device;
+
+  addDeviceNames =
+    imap1 (idx: drive: drive // { device = driveDeviceName idx; });
+
+  efiPrefix =
+    if (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) then "${pkgs.OVMF.fd}/FV/OVMF"
+    else if pkgs.stdenv.isAarch64 then "${pkgs.OVMF.fd}/FV/AAVMF"
+    else throw "No EFI firmware available for platform";
+  efiFirmware = "${efiPrefix}_CODE.fd";
+  efiVarsDefault = "${efiPrefix}_VARS.fd";
+
   # Shell script to start the VM.
   startVM =
     ''
@@ -99,10 +127,14 @@ let
         # A writable boot disk can be booted from automatically.
         ${qemu}/bin/qemu-img create -f qcow2 -b ${bootDisk}/disk.img $TMPDIR/disk.img || exit 1
 
+        NIX_EFI_VARS=$(readlink -f ''${NIX_EFI_VARS:-${cfg.efiVars}})
+
         ${if cfg.useEFIBoot then ''
-          # VM needs a writable flash BIOS.
-          cp ${bootDisk}/bios.bin $TMPDIR || exit 1
-          chmod 0644 $TMPDIR/bios.bin || exit 1
+          # VM needs writable EFI vars
+          if ! test -e "$NIX_EFI_VARS"; then
+            cp ${bootDisk}/efi-vars.fd "$NIX_EFI_VARS" || exit 1
+            chmod 0644 "$NIX_EFI_VARS" || exit 1
+          fi
         '' else ''
         ''}
       '' else ''
@@ -119,7 +151,7 @@ let
 
       # Start QEMU.
       exec ${qemuBinary qemu} \
-          -name ${vmName} \
+          -name ${config.system.name} \
           -m ${toString config.virtualisation.memorySize} \
           -smp ${toString config.virtualisation.cores} \
           -device virtio-rng-pci \
@@ -139,6 +171,8 @@ let
 
   # Generate a hard disk image containing a /boot partition and GRUB
   # in the MBR.  Used when the `useBootLoader' option is set.
+  # Uses `runInLinuxVM` to create the image in a throwaway VM.
+  # See note [Disk layout with `useBootLoader`].
   # FIXME: use nixos/lib/make-disk-image.nix.
   bootDisk =
     pkgs.vmTools.runInLinuxVM (
@@ -147,21 +181,22 @@ let
             ''
               mkdir $out
               diskImage=$out/disk.img
-              bootFlash=$out/bios.bin
-              ${qemu}/bin/qemu-img create -f qcow2 $diskImage "40M"
+              ${qemu}/bin/qemu-img create -f qcow2 $diskImage "60M"
               ${if cfg.useEFIBoot then ''
-                cp ${pkgs.OVMF-CSM.fd}/FV/OVMF.fd $bootFlash
-                chmod 0644 $bootFlash
+                efiVars=$out/efi-vars.fd
+                cp ${efiVarsDefault} $efiVars
+                chmod 0644 $efiVars
               '' else ''
               ''}
             '';
           buildInputs = [ pkgs.utillinux ];
-          QEMU_OPTS = if cfg.useEFIBoot
-                      then "-pflash $out/bios.bin -nographic -serial pty"
-                      else "-nographic -serial pty";
+          QEMU_OPTS = "-nographic -serial stdio -monitor none"
+                      + lib.optionalString cfg.useEFIBoot (
+                        " -drive if=pflash,format=raw,unit=0,readonly=on,file=${efiFirmware}"
+                      + " -drive if=pflash,format=raw,unit=1,file=$efiVars");
         }
         ''
-          # Create a /boot EFI partition with 40M and arbitrary but fixed GUIDs for reproducibility
+          # Create a /boot EFI partition with 60M and arbitrary but fixed GUIDs for reproducibility
           ${pkgs.gptfdisk}/bin/sgdisk \
             --set-alignment=1 --new=1:34:2047 --change-name=1:BIOSBootPartition --typecode=1:ef02 \
             --set-alignment=512 --largest-new=2 --change-name=2:EFISystem --typecode=2:ef00 \
@@ -172,6 +207,19 @@ let
             --partition-guid=2:970C694F-AFD0-4B99-B750-CDB7A329AB6F \
             --hybrid 2 \
             --recompute-chs /dev/vda
+
+          ${optionalString (config.boot.loader.grub.device != "/dev/vda")
+            # In this throwaway VM, we only have the /dev/vda disk, but the
+            # actual VM described by `config` (used by `switch-to-configuration`
+            # below) may set `boot.loader.grub.device` to a different device
+            # that's nonexistent in the throwaway VM.
+            # Create a symlink for that device, so that the `grub-install`
+            # by `switch-to-configuration` will hit /dev/vda anyway.
+            ''
+              ln -s /dev/vda ${config.boot.loader.grub.device}
+            ''
+          }
+
           ${pkgs.dosfstools}/bin/mkfs.fat -F16 /dev/vda2
           export MTOOLS_SKIP_CHECK=1
           ${pkgs.mtools}/bin/mlabel -i /dev/vda2 ::boot
@@ -185,6 +233,10 @@ let
           mkdir /boot
           mount /dev/vda2 /boot
 
+          ${optionalString config.boot.loader.efi.canTouchEfiVariables ''
+            mount -t efivarfs efivarfs /sys/firmware/efi/efivars
+          ''}
+
           # This is needed for GRUB 0.97, which doesn't know about virtio devices.
           mkdir /boot/grub
           echo '(hd0) /dev/vda' > /boot/grub/device.map
@@ -212,7 +264,6 @@ in
 {
   imports = [
     ../profiles/qemu-guest.nix
-   ./docker-preloader.nix
   ];
 
   options = {
@@ -237,7 +288,7 @@ in
 
     virtualisation.diskImage =
       mkOption {
-        default = "./${vmName}.qcow2";
+        default = "./${config.system.name}.qcow2";
         description =
           ''
             Path to the disk image containing the root filesystem.
@@ -396,6 +447,7 @@ in
         mkOption {
           type = types.listOf (types.submodule driveOpts);
           description = "Drives passed to qemu.";
+          apply = addDeviceNames;
         };
 
       diskInterface =
@@ -441,6 +493,16 @@ in
           '';
       };
 
+    virtualisation.efiVars =
+      mkOption {
+        default = "./${config.system.name}-efi-vars.fd";
+        description =
+          ''
+            Path to nvram image containing UEFI variables.  The will be created
+            on startup if it does not exist.
+          '';
+      };
+
     virtualisation.bios =
       mkOption {
         default = null;
@@ -457,7 +519,27 @@ in
 
   config = {
 
-    boot.loader.grub.device = mkVMOverride cfg.bootDevice;
+    # Note [Disk layout with `useBootLoader`]
+    #
+    # If `useBootLoader = true`, we configure 2 drives:
+    # `/dev/?da` for the root disk, and `/dev/?db` for the boot disk
+    # which has the `/boot` partition and the boot loader.
+    # Concretely:
+    #
+    # * The second drive's image `disk.img` is created in `bootDisk = ...`
+    #   using a throwaway VM. Note that there the disk is always `/dev/vda`,
+    #   even though in the final VM it will be at `/dev/*b`.
+    # * The disks are attached in `virtualisation.qemu.drives`.
+    #   Their order makes them appear as devices `a`, `b`, etc.
+    # * `fileSystems."/boot"` is adjusted to be on device `b`.
+
+    # If `useBootLoader`, GRUB goes to the second disk, see
+    # note [Disk layout with `useBootLoader`].
+    boot.loader.grub.device = mkVMOverride (
+      if cfg.useBootLoader
+        then driveDeviceName 2 # second disk
+        else cfg.bootDevice
+    );
 
     boot.initrd.extraUtilsCommands =
       ''
@@ -512,8 +594,7 @@ in
       optional cfg.writableStore "overlay"
       ++ optional (cfg.qemu.diskInterface == "scsi") "sym53c8xx";
 
-    virtualisation.bootDevice =
-      mkDefault (if cfg.qemu.diskInterface == "scsi" then "/dev/sda" else "/dev/vda");
+    virtualisation.bootDevice = mkDefault (driveDeviceName 1);
 
     virtualisation.pathsInNixDB = [ config.system.build.toplevel ];
 
@@ -531,7 +612,8 @@ in
         ''-append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo}/registration ${consoles} $QEMU_KERNEL_PARAMS"''
       ])
       (mkIf cfg.useEFIBoot [
-        "-pflash $TMPDIR/bios.bin"
+        "-drive if=pflash,format=raw,unit=0,readonly,file=${efiFirmware}"
+        "-drive if=pflash,format=raw,unit=1,file=$NIX_EFI_VARS"
       ])
       (mkIf (cfg.bios != null) [
         "-bios ${cfg.bios}/bios.bin"
@@ -542,25 +624,22 @@ in
     ];
 
     virtualisation.qemu.drives = mkMerge [
+      [{
+        name = "root";
+        file = "$NIX_DISK_IMAGE";
+        driveExtraOpts.cache = "writeback";
+        driveExtraOpts.werror = "report";
+      }]
       (mkIf cfg.useBootLoader [
+        # The order of this list determines the device names, see
+        # note [Disk layout with `useBootLoader`].
         {
-          file = "$NIX_DISK_IMAGE";
-          driveExtraOpts.cache = "writeback";
-          driveExtraOpts.werror = "report";
-        }
-        {
+          name = "boot";
           file = "$TMPDIR/disk.img";
           driveExtraOpts.media = "disk";
           deviceExtraOpts.bootindex = "1";
         }
       ])
-      (mkIf (!cfg.useBootLoader) [
-        {
-          file = "$NIX_DISK_IMAGE";
-          driveExtraOpts.cache = "writeback";
-          driveExtraOpts.werror = "report";
-        }
-      ])
       (imap0 (idx: _: {
         file = "$(pwd)/empty${toString idx}.qcow2";
         driveExtraOpts.werror = "report";
@@ -608,9 +687,9 @@ in
           };
       } // optionalAttrs cfg.useBootLoader
       { "/boot" =
-          { device = "/dev/vdb2";
+          # see note [Disk layout with `useBootLoader`]
+          { device = "${lookupDriveDeviceName "boot" cfg.qemu.drives}2"; # 2 for e.g. `vdb2`, as created in `bootDisk`
             fsType = "vfat";
-            options = [ "ro" ];
             noCheck = true; # fsck fails on a r/o filesystem
           };
       });
@@ -627,7 +706,7 @@ in
       ''
         mkdir -p $out/bin
         ln -s ${config.system.build.toplevel} $out/system
-        ln -s ${pkgs.writeScript "run-nixos-vm" startVM} $out/bin/run-${vmName}-vm
+        ln -s ${pkgs.writeScript "run-nixos-vm" startVM} $out/bin/run-${config.system.name}-vm
       '';
 
     # When building a regular system configuration, override whatever
diff --git a/nixos/modules/virtualisation/railcar.nix b/nixos/modules/virtualisation/railcar.nix
index 12da1c75fc3..10464f62898 100644
--- a/nixos/modules/virtualisation/railcar.nix
+++ b/nixos/modules/virtualisation/railcar.nix
@@ -29,9 +29,9 @@ let
         default = "none";
         description = ''
           The type of the filesystem to be mounted.
-          Linux: filesystem types supported by the kernel as listed in 
-          `/proc/filesystems` (e.g., "minix", "ext2", "ext3", "jfs", "xfs", 
-          "reiserfs", "msdos", "proc", "nfs", "iso9660"). For bind mounts 
+          Linux: filesystem types supported by the kernel as listed in
+          `/proc/filesystems` (e.g., "minix", "ext2", "ext3", "jfs", "xfs",
+          "reiserfs", "msdos", "proc", "nfs", "iso9660"). For bind mounts
           (when options include either bind or rbind), the type is a dummy,
           often "none" (not listed in /proc/filesystems).
         '';
@@ -41,13 +41,13 @@ let
         description = "Source for the in-container mount";
       };
       options = mkOption {
-        type = loaOf (str);
+        type = attrsOf (str);
         default = [ "bind" ];
         description = ''
           Mount options of the filesystem to be used.
-        
-          Support optoions are listed in the mount(8) man page. Note that 
-          both filesystem-independent and filesystem-specific options 
+
+          Support options are listed in the mount(8) man page. Note that
+          both filesystem-independent and filesystem-specific options
           are listed.
         '';
       };
@@ -61,7 +61,7 @@ in
     containers = mkOption {
       default = {};
       description = "Declarative container configuration";
-      type = with types; loaOf (submodule ({ name, config, ... }: {
+      type = with types; attrsOf (submodule ({ name, config, ... }: {
         options = {
           cmd = mkOption {
             type = types.lines;
diff --git a/nixos/modules/virtualisation/virtualbox-guest.nix b/nixos/modules/virtualisation/virtualbox-guest.nix
index 834b994e92d..486951983d3 100644
--- a/nixos/modules/virtualisation/virtualbox-guest.nix
+++ b/nixos/modules/virtualisation/virtualbox-guest.nix
@@ -68,7 +68,7 @@ in
         SUBSYSTEM=="misc", KERNEL=="vboxguest", TAG+="systemd"
       '';
   } (mkIf cfg.x11 {
-    services.xserver.videoDrivers = mkOverride 50 [ "virtualbox" "modesetting" ];
+    services.xserver.videoDrivers = mkOverride 50 [ "vmware" "virtualbox" "modesetting" ];
 
     services.xserver.config =
       ''
diff --git a/nixos/modules/virtualisation/virtualbox-image.nix b/nixos/modules/virtualisation/virtualbox-image.nix
index 788b4d9d976..fa580e8b42d 100644
--- a/nixos/modules/virtualisation/virtualbox-image.nix
+++ b/nixos/modules/virtualisation/virtualbox-image.nix
@@ -58,6 +58,35 @@ in {
           Run <literal>VBoxManage modifyvm --help</literal> to see more options.
         '';
      };
+      extraDisk = mkOption {
+        description = ''
+          Optional extra disk/hdd configuration.
+          The disk will be an 'ext4' partition on a separate VMDK file.
+        '';
+        default = null;
+        example = {
+          label = "storage";
+          mountPoint = "/home/demo/storage";
+          size = 100 * 1024;
+        };
+        type = types.nullOr (types.submodule {
+          options = {
+            size = mkOption {
+              type = types.int;
+              description = "Size in MiB";
+            };
+            label = mkOption {
+              type = types.str;
+              default = "vm-extra-storage";
+              description = "Label for the disk partition";
+            };
+            mountPoint = mkOption {
+              type = types.str;
+              description = "Path where to mount this disk.";
+            };
+          };
+        });
+      };
     };
   };
 
@@ -72,6 +101,7 @@ in {
         audiocontroller = "ac97";
         audio = "alsa";
         audioout = "on";
+        graphicscontroller = "vmsvga";
         rtcuseutc = "on";
         usb = "on";
         usbehci = "on";
@@ -95,6 +125,20 @@ in {
           echo "creating VirtualBox pass-through disk wrapper (no copying involved)..."
           VBoxManage internalcommands createrawvmdk -filename disk.vmdk -rawdisk $diskImage
 
+          ${optionalString (cfg.extraDisk != null) ''
+            echo "creating extra disk: data-disk.raw"
+            dataDiskImage=data-disk.raw
+            truncate -s ${toString cfg.extraDisk.size}M $dataDiskImage
+
+            parted --script $dataDiskImage -- \
+              mklabel msdos \
+              mkpart primary ext4 1MiB -1
+            eval $(partx $dataDiskImage -o START,SECTORS --nr 1 --pairs)
+            mkfs.ext4 -F -L ${cfg.extraDisk.label} $dataDiskImage -E offset=$(sectorsToBytes $START) $(sectorsToKilobytes $SECTORS)K
+            echo "creating extra disk: data-disk.vmdk"
+            VBoxManage internalcommands createrawvmdk -filename data-disk.vmdk -rawdisk $dataDiskImage
+          ''}
+
           echo "creating VirtualBox VM..."
           vmName="${cfg.vmName}";
           VBoxManage createvm --name "$vmName" --register \
@@ -105,6 +149,10 @@ in {
           VBoxManage storagectl "$vmName" --name SATA --add sata --portcount 4 --bootable on --hostiocache on
           VBoxManage storageattach "$vmName" --storagectl SATA --port 0 --device 0 --type hdd \
             --medium disk.vmdk
+          ${optionalString (cfg.extraDisk != null) ''
+            VBoxManage storageattach "$vmName" --storagectl SATA --port 1 --device 0 --type hdd \
+            --medium data-disk.vmdk
+          ''}
 
           echo "exporting VirtualBox VM..."
           mkdir -p $out
@@ -118,11 +166,19 @@ in {
         '';
     };
 
-    fileSystems."/" = {
-      device = "/dev/disk/by-label/nixos";
-      autoResize = true;
-      fsType = "ext4";
-    };
+    fileSystems = {
+      "/" = {
+        device = "/dev/disk/by-label/nixos";
+        autoResize = true;
+        fsType = "ext4";
+      };
+    } // (lib.optionalAttrs (cfg.extraDisk != null) {
+      ${cfg.extraDisk.mountPoint} = {
+        device = "/dev/disk/by-label/" + cfg.extraDisk.label;
+        autoResize = true;
+        fsType = "ext4";
+      };
+    });
 
     boot.growPartition = true;
     boot.loader.grub.device = "/dev/sda";
diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix
index ece2d091f5a..945ba90e345 100644
--- a/nixos/release-combined.nix
+++ b/nixos/release-combined.nix
@@ -106,11 +106,29 @@ in rec {
         (onFullSupported "nixos.tests.networking.scripted.bridge")
         (onFullSupported "nixos.tests.networking.scripted.dhcpOneIf")
         (onFullSupported "nixos.tests.networking.scripted.dhcpSimple")
+        (onFullSupported "nixos.tests.networking.scripted.link")
         (onFullSupported "nixos.tests.networking.scripted.loopback")
         (onFullSupported "nixos.tests.networking.scripted.macvlan")
+        (onFullSupported "nixos.tests.networking.scripted.privacy")
+        (onFullSupported "nixos.tests.networking.scripted.routes")
         (onFullSupported "nixos.tests.networking.scripted.sit")
         (onFullSupported "nixos.tests.networking.scripted.static")
+        (onFullSupported "nixos.tests.networking.scripted.virtual")
         (onFullSupported "nixos.tests.networking.scripted.vlan")
+        (onFullSupported "nixos.tests.networking.networkd.bond")
+        (onFullSupported "nixos.tests.networking.networkd.bridge")
+        (onFullSupported "nixos.tests.networking.networkd.dhcpOneIf")
+        (onFullSupported "nixos.tests.networking.networkd.dhcpSimple")
+        (onFullSupported "nixos.tests.networking.networkd.link")
+        (onFullSupported "nixos.tests.networking.networkd.loopback")
+        # Fails nondeterministically (https://github.com/NixOS/nixpkgs/issues/96709)
+        #(onFullSupported "nixos.tests.networking.networkd.macvlan")
+        (onFullSupported "nixos.tests.networking.networkd.privacy")
+        (onFullSupported "nixos.tests.networking.networkd.routes")
+        (onFullSupported "nixos.tests.networking.networkd.sit")
+        (onFullSupported "nixos.tests.networking.networkd.static")
+        (onFullSupported "nixos.tests.networking.networkd.virtual")
+        (onFullSupported "nixos.tests.networking.networkd.vlan")
         (onFullSupported "nixos.tests.systemd-networkd-ipv6-prefix-delegation")
         (onFullSupported "nixos.tests.nfs3.simple")
         (onFullSupported "nixos.tests.nfs4.simple")
diff --git a/nixos/release.nix b/nixos/release.nix
index cf16986b213..1f5c1581269 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -310,6 +310,11 @@ in rec {
         services.xserver.desktopManager.gnome3.enable = true;
       });
 
+    pantheon = makeClosure ({ ... }:
+      { services.xserver.enable = true;
+        services.xserver.desktopManager.pantheon.enable = true;
+      });
+
     # Linux/Apache/PostgreSQL/PHP stack.
     lapp = makeClosure ({ pkgs, ... }:
       { services.httpd.enable = true;
diff --git a/nixos/tests/acme.nix b/nixos/tests/acme.nix
index a8188473721..64193ed8498 100644
--- a/nixos/tests/acme.nix
+++ b/nixos/tests/acme.nix
@@ -1,29 +1,43 @@
 let
   commonConfig = ./common/acme/client;
 
-  dnsScript = {writeScript, dnsAddress, bash, curl}: writeScript "dns-hook.sh" ''
-    #!${bash}/bin/bash
+  dnsServerIP = nodes: nodes.dnsserver.config.networking.primaryIPAddress;
+
+  dnsScript = {pkgs, nodes}: let
+    dnsAddress = dnsServerIP nodes;
+  in pkgs.writeShellScript "dns-hook.sh" ''
     set -euo pipefail
     echo '[INFO]' "[$2]" 'dns-hook.sh' $*
     if [ "$1" = "present" ]; then
-      ${curl}/bin/curl --data '{"host": "'"$2"'", "value": "'"$3"'"}' http://${dnsAddress}:8055/set-txt
+      ${pkgs.curl}/bin/curl --data '{"host": "'"$2"'", "value": "'"$3"'"}' http://${dnsAddress}:8055/set-txt
     else
-      ${curl}/bin/curl --data '{"host": "'"$2"'"}' http://${dnsAddress}:8055/clear-txt
+      ${pkgs.curl}/bin/curl --data '{"host": "'"$2"'"}' http://${dnsAddress}:8055/clear-txt
     fi
   '';
 
+  documentRoot = pkgs: pkgs.runCommand "docroot" {} ''
+    mkdir -p "$out"
+    echo hello world > "$out/index.html"
+  '';
+
+  vhostBase = pkgs: {
+    forceSSL = true;
+    locations."/".root = documentRoot pkgs;
+  };
+
 in import ./make-test-python.nix ({ lib, ... }: {
   name = "acme";
   meta.maintainers = lib.teams.acme.members;
 
-  nodes = rec {
+  nodes = {
+    # The fake ACME server which will respond to client requests
     acme = { nodes, lib, ... }: {
       imports = [ ./common/acme/server ];
-      networking.nameservers = lib.mkForce [
-        nodes.dnsserver.config.networking.primaryIPAddress
-      ];
+      networking.nameservers = lib.mkForce [ (dnsServerIP nodes) ];
     };
 
+    # A fake DNS server which can be configured with records as desired
+    # Used to test DNS-01 challenge
     dnsserver = { nodes, pkgs, ... }: {
       networking.firewall.allowedTCPPorts = [ 8055 53 ];
       networking.firewall.allowedUDPPorts = [ 53 ];
@@ -39,112 +53,97 @@ in import ./make-test-python.nix ({ lib, ... }: {
       };
     };
 
-    acmeStandalone = { nodes, lib, config, pkgs, ... }: {
-      imports = [ commonConfig ];
-      networking.nameservers = lib.mkForce [
-        nodes.dnsserver.config.networking.primaryIPAddress
-      ];
-      networking.firewall.allowedTCPPorts = [ 80 ];
-      security.acme.certs."standalone.test" = {
-        webroot = "/var/lib/acme/acme-challenges";
-      };
-      systemd.targets."acme-finished-standalone.test" = {
-        after = [ "acme-standalone.test.service" ];
-        wantedBy = [ "acme-standalone.test.service" ];
-      };
-      services.nginx.enable = true;
-      services.nginx.virtualHosts."standalone.test" = {
-        locations."/.well-known/acme-challenge".root = "/var/lib/acme/acme-challenges";
-      };
-    };
-
-    webserver = { nodes, config, pkgs, lib, ... }: {
+    # A web server which will be the node requesting certs
+    webserver = { pkgs, nodes, lib, config, ... }: {
       imports = [ commonConfig ];
+      networking.nameservers = lib.mkForce [ (dnsServerIP nodes) ];
       networking.firewall.allowedTCPPorts = [ 80 443 ];
-      networking.nameservers = lib.mkForce [
-        nodes.dnsserver.config.networking.primaryIPAddress
-      ];
-
-      # A target remains active. Use this to probe the fact that
-      # a service fired eventhough it is not RemainAfterExit
-      systemd.targets."acme-finished-a.example.test" = {
-        after = [ "acme-a.example.test.service" ];
-        wantedBy = [ "acme-a.example.test.service" ];
-      };
 
+      # OpenSSL will be used for more thorough certificate validation
+      environment.systemPackages = [ pkgs.openssl ];
+
+      # Set log level to info so that we can see when the service is reloaded
       services.nginx.enable = true;
+      services.nginx.logError = "stderr info";
 
-      services.nginx.virtualHosts."a.example.test" = {
+      # First tests configure a basic cert and run a bunch of openssl checks
+      services.nginx.virtualHosts."a.example.test" = (vhostBase pkgs) // {
         enableACME = true;
-        forceSSL = true;
-        locations."/".root = pkgs.runCommand "docroot" {} ''
-          mkdir -p "$out"
-          echo hello world > "$out/index.html"
-        '';
       };
 
-      security.acme.server = "https://acme.test/dir";
+      # Used to determine if service reload was triggered
+      systemd.targets.test-renew-nginx = {
+        wants = [ "acme-a.example.test.service" ];
+        after = [ "acme-a.example.test.service" "nginx-config-reload.service" ];
+      };
 
-      specialisation.second-cert.configuration = {pkgs, ...}: {
-        systemd.targets."acme-finished-b.example.test" = {
-          after = [ "acme-b.example.test.service" ];
-          wantedBy = [ "acme-b.example.test.service" ];
+      # Cert config changes will not cause the nginx configuration to change.
+      # This tests that the reload service is correctly triggered.
+      # It also tests that postRun is exec'd as root
+      specialisation.cert-change.configuration = { pkgs, ... }: {
+        security.acme.certs."a.example.test".keyType = "ec384";
+        security.acme.certs."a.example.test".postRun = ''
+          set -euo pipefail
+          touch test
+          chown root:root test
+          echo testing > test
+        '';
+      };
+
+      # Now adding an alias to ensure that the certs are updated
+      specialisation.nginx-aliases.configuration = { pkgs, ... }: {
+        services.nginx.virtualHosts."a.example.test" = {
+          serverAliases = [ "b.example.test" ];
         };
-        services.nginx.virtualHosts."b.example.test" = {
-          enableACME = true;
+      };
+
+      # Test using Apache HTTPD
+      specialisation.httpd-aliases.configuration = { pkgs, config, lib, ... }: {
+        services.nginx.enable = lib.mkForce false;
+        services.httpd.enable = true;
+        services.httpd.adminAddr = config.security.acme.email;
+        services.httpd.virtualHosts."c.example.test" = {
+          serverAliases = [ "d.example.test" ];
           forceSSL = true;
-          locations."/".root = pkgs.runCommand "docroot" {} ''
-            mkdir -p "$out"
-            echo hello world > "$out/index.html"
-          '';
+          enableACME = true;
+          documentRoot = documentRoot pkgs;
+        };
+
+        # Used to determine if service reload was triggered
+        systemd.targets.test-renew-httpd = {
+          wants = [ "acme-c.example.test.service" ];
+          after = [ "acme-c.example.test.service" "httpd-config-reload.service" ];
         };
       };
 
-      specialisation.dns-01.configuration = {pkgs, config, nodes, lib, ...}: {
+      # Validation via DNS-01 challenge
+      specialisation.dns-01.configuration = { pkgs, config, nodes, ... }: {
         security.acme.certs."example.test" = {
           domain = "*.example.test";
+          group = config.services.nginx.group;
           dnsProvider = "exec";
           dnsPropagationCheck = false;
-          credentialsFile = with pkgs; writeText "wildcard.env" ''
-            EXEC_PATH=${dnsScript { inherit writeScript bash curl; dnsAddress = nodes.dnsserver.config.networking.primaryIPAddress; }}
+          credentialsFile = pkgs.writeText "wildcard.env" ''
+            EXEC_PATH=${dnsScript { inherit pkgs nodes; }}
           '';
-          user = config.services.nginx.user;
-          group = config.services.nginx.group;
         };
-        systemd.targets."acme-finished-example.test" = {
-          after = [ "acme-example.test.service" ];
-          wantedBy = [ "acme-example.test.service" ];
-        };
-        systemd.services."acme-example.test" = {
-          before = [ "nginx.service" ];
-          wantedBy = [ "nginx.service" ];
-        };
-        services.nginx.virtualHosts."c.example.test" = {
-          forceSSL = true;
-          sslCertificate = config.security.acme.certs."example.test".directory + "/cert.pem";
-          sslTrustedCertificate = config.security.acme.certs."example.test".directory + "/full.pem";
-          sslCertificateKey = config.security.acme.certs."example.test".directory + "/key.pem";
-          locations."/".root = pkgs.runCommand "docroot" {} ''
-            mkdir -p "$out"
-            echo hello world > "$out/index.html"
-          '';
+
+        services.nginx.virtualHosts."dns.example.test" = (vhostBase pkgs) // {
+          useACMEHost = "example.test";
         };
       };
 
-      # When nginx depends on a service that is slow to start up, requesting used to fail
-      # certificates fail.  Reproducer for https://github.com/NixOS/nixpkgs/issues/81842
-      specialisation.slow-startup.configuration = { pkgs, config, nodes, lib, ...}: {
+      # Validate service relationships by adding a slow start service to nginx' wants.
+      # Reproducer for https://github.com/NixOS/nixpkgs/issues/81842
+      specialisation.slow-startup.configuration = { pkgs, config, nodes, lib, ... }: {
         systemd.services.my-slow-service = {
           wantedBy = [ "multi-user.target" "nginx.service" ];
           before = [ "nginx.service" ];
           preStart = "sleep 5";
           script = "${pkgs.python3}/bin/python -m http.server";
         };
-        systemd.targets."acme-finished-d.example.com" = {
-          after = [ "acme-d.example.com.service" ];
-          wantedBy = [ "acme-d.example.com.service" ];
-        };
-        services.nginx.virtualHosts."d.example.com" = {
+
+        services.nginx.virtualHosts."slow.example.com" = {
           forceSSL = true;
           enableACME = true;
           locations."/".proxyPass = "http://localhost:8000";
@@ -152,11 +151,13 @@ in import ./make-test-python.nix ({ lib, ... }: {
       };
     };
 
-    client = {nodes, lib, ...}: {
+    # The client will be used to curl the webserver to validate configuration
+    client = {nodes, lib, pkgs, ...}: {
       imports = [ commonConfig ];
-      networking.nameservers = lib.mkForce [
-        nodes.dnsserver.config.networking.primaryIPAddress
-      ];
+      networking.nameservers = lib.mkForce [ (dnsServerIP nodes) ];
+
+      # OpenSSL will be used for more thorough certificate validation
+      environment.systemPackages = [ pkgs.openssl ];
     };
   };
 
@@ -167,73 +168,168 @@ in import ./make-test-python.nix ({ lib, ... }: {
     in
     # Note, wait_for_unit does not work for oneshot services that do not have RemainAfterExit=true,
     # this is because a oneshot goes from inactive => activating => inactive, and never
-    # reaches the active state. To work around this, we create some mock target units which
-    # get pulled in by the oneshot units. The target units linger after activation, and hence we
-    # can use them to probe that a oneshot fired. It is a bit ugly, but it is the best we can do
+    # reaches the active state. Targets do not have this issue.
+
     ''
+      import time
+
+
+      has_switched = False
+
+
+      def switch_to(node, name):
+          global has_switched
+          if has_switched:
+              node.succeed(
+                  "${switchToNewServer}"
+              )
+          has_switched = True
+          node.succeed(
+              f"/run/current-system/specialisation/{name}/bin/switch-to-configuration test"
+          )
+
+
+      # Ensures the issuer of our cert matches the chain
+      # and matches the issuer we expect it to be.
+      # It's a good validation to ensure the cert.pem and fullchain.pem
+      # are not still selfsigned afer verification
+      def check_issuer(node, cert_name, issuer):
+          for fname in ("cert.pem", "fullchain.pem"):
+              actual_issuer = node.succeed(
+                  f"openssl x509 -noout -issuer -in /var/lib/acme/{cert_name}/{fname}"
+              ).partition("=")[2]
+              print(f"{fname} issuer: {actual_issuer}")
+              assert issuer.lower() in actual_issuer.lower()
+
+
+      # Ensure cert comes before chain in fullchain.pem
+      def check_fullchain(node, cert_name):
+          subject_data = node.succeed(
+              f"openssl crl2pkcs7 -nocrl -certfile /var/lib/acme/{cert_name}/fullchain.pem"
+              " | openssl pkcs7 -print_certs -noout"
+          )
+          for line in subject_data.lower().split("\n"):
+              if "subject" in line:
+                  print(f"First subject in fullchain.pem: ", line)
+                  assert cert_name.lower() in line
+                  return
+
+          assert False
+
+
+      def check_connection(node, domain, retries=3):
+          assert retries >= 0
+
+          result = node.succeed(
+              "openssl s_client -brief -verify 2 -CAfile /tmp/ca.crt"
+              f" -servername {domain} -connect {domain}:443 < /dev/null 2>&1"
+          )
+
+          for line in result.lower().split("\n"):
+              if "verification" in line and "error" in line:
+                  time.sleep(1)
+                  return check_connection(node, domain, retries - 1)
+
+
+      def check_connection_key_bits(node, domain, bits, retries=3):
+          assert retries >= 0
+
+          result = node.succeed(
+              "openssl s_client -CAfile /tmp/ca.crt"
+              f" -servername {domain} -connect {domain}:443 < /dev/null"
+              " | openssl x509 -noout -text | grep -i Public-Key"
+          )
+          print("Key type:", result)
+
+          if bits not in result:
+              time.sleep(1)
+              return check_connection_key_bits(node, domain, bits, retries - 1)
+
+
       client.start()
       dnsserver.start()
 
-      acme.wait_for_unit("default.target")
       dnsserver.wait_for_unit("pebble-challtestsrv.service")
+      client.wait_for_unit("default.target")
+
       client.succeed(
-          'curl --data \'{"host": "acme.test", "addresses": ["${nodes.acme.config.networking.primaryIPAddress}"]}\' http://${nodes.dnsserver.config.networking.primaryIPAddress}:8055/add-a'
-      )
-      client.succeed(
-          'curl --data \'{"host": "standalone.test", "addresses": ["${nodes.acmeStandalone.config.networking.primaryIPAddress}"]}\' http://${nodes.dnsserver.config.networking.primaryIPAddress}:8055/add-a'
+          'curl --data \'{"host": "acme.test", "addresses": ["${nodes.acme.config.networking.primaryIPAddress}"]}\' http://${dnsServerIP nodes}:8055/add-a'
       )
 
       acme.start()
-      acmeStandalone.start()
+      webserver.start()
 
       acme.wait_for_unit("default.target")
       acme.wait_for_unit("pebble.service")
 
-      with subtest("can request certificate with HTTPS-01 challenge"):
-          acmeStandalone.wait_for_unit("default.target")
-          acmeStandalone.succeed("systemctl start acme-standalone.test.service")
-          acmeStandalone.wait_for_unit("acme-finished-standalone.test.target")
-
-      client.wait_for_unit("default.target")
-
       client.succeed("curl https://acme.test:15000/roots/0 > /tmp/ca.crt")
       client.succeed("curl https://acme.test:15000/intermediate-keys/0 >> /tmp/ca.crt")
 
-      with subtest("Can request certificate for nginx service"):
+      with subtest("Can request certificate with HTTPS-01 challenge"):
           webserver.wait_for_unit("acme-finished-a.example.test.target")
-          client.succeed(
-              "curl --cacert /tmp/ca.crt https://a.example.test/ | grep -qF 'hello world'"
-          )
+          check_fullchain(webserver, "a.example.test")
+          check_issuer(webserver, "a.example.test", "pebble")
+          check_connection(client, "a.example.test")
 
-      with subtest("Can add another certificate for nginx service"):
-          webserver.succeed(
-              "/run/current-system/specialisation/second-cert/bin/switch-to-configuration test"
-          )
-          webserver.wait_for_unit("acme-finished-b.example.test.target")
-          client.succeed(
-              "curl --cacert /tmp/ca.crt https://b.example.test/ | grep -qF 'hello world'"
-          )
+      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")
+          check_fullchain(webserver, "a.example.test")
+          check_issuer(webserver, "a.example.test", "minica")
+          # Will succeed if nginx can load the certs
+          webserver.succeed("systemctl start nginx-config-reload.service")
+
+      with subtest("Can reload nginx when timer triggers renewal"):
+          webserver.succeed("systemctl start test-renew-nginx.target")
+          check_issuer(webserver, "a.example.test", "pebble")
+          check_connection(client, "a.example.test")
+
+      with subtest("Can reload web server when cert configuration changes"):
+          switch_to(webserver, "cert-change")
+          webserver.wait_for_unit("acme-finished-a.example.test.target")
+          check_connection_key_bits(client, "a.example.test", "384")
+          webserver.succeed("grep testing /var/lib/acme/a.example.test/test")
+
+      with subtest("Can request certificate with HTTPS-01 when nginx startup is delayed"):
+          switch_to(webserver, "slow-startup")
+          webserver.wait_for_unit("acme-finished-slow.example.com.target")
+          check_issuer(webserver, "slow.example.com", "pebble")
+          check_connection(client, "slow.example.com")
+
+      with subtest("Can request certificate for vhost + aliases (nginx)"):
+          # Check the key hash before and after adding an alias. It should not change.
+          # The previous test reverts the ed384 change
+          webserver.wait_for_unit("acme-finished-a.example.test.target")
+          keyhash_old = webserver.succeed("md5sum /var/lib/acme/a.example.test/key.pem")
+          switch_to(webserver, "nginx-aliases")
+          webserver.wait_for_unit("acme-finished-a.example.test.target")
+          check_issuer(webserver, "a.example.test", "pebble")
+          check_connection(client, "a.example.test")
+          check_connection(client, "b.example.test")
+          keyhash_new = webserver.succeed("md5sum /var/lib/acme/a.example.test/key.pem")
+          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")
+          check_issuer(webserver, "c.example.test", "pebble")
+          check_connection(client, "c.example.test")
+          check_connection(client, "d.example.test")
+
+      with subtest("Can reload httpd when timer triggers renewal"):
+          # Switch to selfsigned first
+          webserver.succeed("systemctl clean acme-c.example.test.service --what=state")
+          webserver.succeed("systemctl start acme-selfsigned-c.example.test.service")
+          check_issuer(webserver, "c.example.test", "minica")
+          webserver.succeed("systemctl start httpd-config-reload.service")
+          webserver.succeed("systemctl start test-renew-httpd.target")
+          check_issuer(webserver, "c.example.test", "pebble")
+          check_connection(client, "c.example.test")
 
       with subtest("Can request wildcard certificates using DNS-01 challenge"):
-          webserver.succeed(
-              "${switchToNewServer}"
-          )
-          webserver.succeed(
-              "/run/current-system/specialisation/dns-01/bin/switch-to-configuration test"
-          )
+          switch_to(webserver, "dns-01")
           webserver.wait_for_unit("acme-finished-example.test.target")
-          client.succeed(
-              "curl --cacert /tmp/ca.crt https://c.example.test/ | grep -qF 'hello world'"
-          )
-
-      with subtest("Can request certificate of nginx when startup is delayed"):
-          webserver.succeed(
-              "${switchToNewServer}"
-          )
-          webserver.succeed(
-              "/run/current-system/specialisation/slow-startup/bin/switch-to-configuration test"
-          )
-          webserver.wait_for_unit("acme-finished-d.example.com.target")
-          client.succeed("curl --cacert /tmp/ca.crt https://d.example.com/")
+          check_issuer(webserver, "example.test", "pebble")
+          check_connection(client, "dns.example.test")
     '';
 })
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 8f6e76b51c8..7a0d45f64d8 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -32,7 +32,9 @@ in
   beanstalkd = handleTest ./beanstalkd.nix {};
   bees = handleTest ./bees.nix {};
   bind = handleTest ./bind.nix {};
+  bitcoind = handleTest ./bitcoind.nix {};
   bittorrent = handleTest ./bittorrent.nix {};
+  bitwarden = handleTest ./bitwarden.nix {};
   blockbook-frontend = handleTest ./blockbook-frontend.nix {};
   buildkite-agents = handleTest ./buildkite-agents.nix {};
   boot = handleTestOn ["x86_64-linux"] ./boot.nix {}; # syslinux is unsupported on aarch64
@@ -47,6 +49,7 @@ in
   ceph-multi-node = handleTestOn ["x86_64-linux"] ./ceph-multi-node.nix {};
   certmgr = handleTest ./certmgr.nix {};
   cfssl = handleTestOn ["x86_64-linux"] ./cfssl.nix {};
+  charliecloud = handleTest ./charliecloud.nix {};
   chromium = (handleTestOn ["x86_64-linux"] ./chromium.nix {}).stable or {};
   cjdns = handleTest ./cjdns.nix {};
   clickhouse = handleTest ./clickhouse.nix {};
@@ -64,11 +67,13 @@ in
   containers-macvlans = handleTest ./containers-macvlans.nix {};
   containers-physical_interfaces = handleTest ./containers-physical_interfaces.nix {};
   containers-portforward = handleTest ./containers-portforward.nix {};
+  containers-reloadable = handleTest ./containers-reloadable.nix {};
   containers-restart_networking = handleTest ./containers-restart_networking.nix {};
   containers-tmpfs = handleTest ./containers-tmpfs.nix {};
   convos = handleTest ./convos.nix {};
   corerad = handleTest ./corerad.nix {};
   couchdb = handleTest ./couchdb.nix {};
+  cri-o = handleTestOn ["x86_64-linux"] ./cri-o.nix {};
   deluge = handleTest ./deluge.nix {};
   dhparams = handleTest ./dhparams.nix {};
   dnscrypt-proxy2 = handleTestOn ["x86_64-linux"] ./dnscrypt-proxy2.nix {};
@@ -77,15 +82,13 @@ in
   docker = handleTestOn ["x86_64-linux"] ./docker.nix {};
   oci-containers = handleTestOn ["x86_64-linux"] ./oci-containers.nix {};
   docker-edge = handleTestOn ["x86_64-linux"] ./docker-edge.nix {};
-  docker-preloader = handleTestOn ["x86_64-linux"] ./docker-preloader.nix {};
   docker-registry = handleTest ./docker-registry.nix {};
   docker-tools = handleTestOn ["x86_64-linux"] ./docker-tools.nix {};
   docker-tools-overlay = handleTestOn ["x86_64-linux"] ./docker-tools-overlay.nix {};
   documize = handleTest ./documize.nix {};
   dokuwiki = handleTest ./dokuwiki.nix {};
   dovecot = handleTest ./dovecot.nix {};
-  # ec2-config doesn't work in a sandbox as the simulated ec2 instance needs network access
-  #ec2-config = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-config or {};
+  ec2-config = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-config or {};
   ec2-nixops = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-nixops or {};
   ecryptfs = handleTest ./ecryptfs.nix {};
   ejabberd = handleTest ./xmpp/ejabberd.nix {};
@@ -100,6 +103,7 @@ in
   ferm = handleTest ./ferm.nix {};
   firefox = handleTest ./firefox.nix {};
   firefox-esr = handleTest ./firefox.nix { esr = true; };
+  firejail = handleTest ./firejail.nix {};
   firewall = handleTest ./firewall.nix {};
   fish = handleTest ./fish.nix {};
   flannel = handleTestOn ["x86_64-linux"] ./flannel.nix {};
@@ -151,6 +155,7 @@ in
   incron = handleTest ./incron.nix {};
   influxdb = handleTest ./influxdb.nix {};
   initrd-network-ssh = handleTest ./initrd-network-ssh {};
+  initrd-network-openvpn = handleTest ./initrd-network-openvpn {};
   initrdNetwork = handleTest ./initrd-network.nix {};
   installer = handleTest ./installer.nix {};
   iodine = handleTest ./iodine.nix {};
@@ -160,6 +165,7 @@ in
   jellyfin = handleTest ./jellyfin.nix {};
   jenkins = handleTest ./jenkins.nix {};
   jirafeau = handleTest ./jirafeau.nix {};
+  jitsi-meet = handleTest ./jitsi-meet.nix {};
   k3s = handleTest ./k3s.nix {};
   kafka = handleTest ./kafka.nix {};
   keepalived = handleTest ./keepalived.nix {};
@@ -191,12 +197,10 @@ in
   mailcatcher = handleTest ./mailcatcher.nix {};
   mariadb-galera-mariabackup = handleTest ./mysql/mariadb-galera-mariabackup.nix {};
   mariadb-galera-rsync = handleTest ./mysql/mariadb-galera-rsync.nix {};
-  mathics = handleTest ./mathics.nix {};
   matomo = handleTest ./matomo.nix {};
   matrix-synapse = handleTest ./matrix-synapse.nix {};
   mediawiki = handleTest ./mediawiki.nix {};
   memcached = handleTest ./memcached.nix {};
-  mesos = handleTest ./mesos.nix {};
   metabase = handleTest ./metabase.nix {};
   miniflux = handleTest ./miniflux.nix {};
   minio = handleTest ./minio.nix {};
@@ -220,6 +224,7 @@ in
   nat.firewall = handleTest ./nat.nix { withFirewall = true; };
   nat.firewall-conntrack = handleTest ./nat.nix { withFirewall = true; withConntrackHelpers = true; };
   nat.standalone = handleTest ./nat.nix { withFirewall = false; };
+  ncdns = handleTest ./ncdns.nix {};
   ndppd = handleTest ./ndppd.nix {};
   neo4j = handleTest ./neo4j.nix {};
   specialisation = handleTest ./specialisation.nix {};
@@ -264,9 +269,12 @@ in
   pgjwt = handleTest ./pgjwt.nix {};
   pgmanage = handleTest ./pgmanage.nix {};
   php = handleTest ./php {};
+  pinnwand = handleTest ./pinnwand.nix {};
   plasma5 = handleTest ./plasma5.nix {};
   plotinus = handleTest ./plotinus.nix {};
-  podman = handleTest ./podman.nix {};
+  podman = handleTestOn ["x86_64-linux"] ./podman.nix {};
+  postfix = handleTest ./postfix.nix {};
+  postfix-raise-smtpd-tls-security-level = handleTest ./postfix-raise-smtpd-tls-security-level.nix {};
   postgis = handleTest ./postgis.nix {};
   postgresql = handleTest ./postgresql.nix {};
   postgresql-wal-receiver = handleTest ./postgresql-wal-receiver.nix {};
@@ -280,6 +288,7 @@ in
   prosody = handleTest ./xmpp/prosody.nix {};
   prosodyMysql = handleTest ./xmpp/prosody-mysql.nix {};
   proxy = handleTest ./proxy.nix {};
+  pt2-clone = handleTest ./pt2-clone.nix {};
   qboot = handleTestOn ["x86_64-linux" "i686-linux"] ./qboot.nix {};
   quagga = handleTest ./quagga.nix {};
   quorum = handleTest ./quorum.nix {};
@@ -289,6 +298,7 @@ in
   redis = handleTest ./redis.nix {};
   redmine = handleTest ./redmine.nix {};
   restic = handleTest ./restic.nix {};
+  robustirc-bridge = handleTest ./robustirc-bridge.nix {};
   roundcube = handleTest ./roundcube.nix {};
   rspamd = handleTest ./rspamd.nix {};
   rss2email = handleTest ./rss2email.nix {};
@@ -299,11 +309,14 @@ in
   sanoid = handleTest ./sanoid.nix {};
   sddm = handleTest ./sddm.nix {};
   service-runner = handleTest ./service-runner.nix {};
+  shadowsocks = handleTest ./shadowsocks.nix {};
+  shattered-pixel-dungeon = handleTest ./shattered-pixel-dungeon.nix {};
   shiori = handleTest ./shiori.nix {};
   signal-desktop = handleTest ./signal-desktop.nix {};
   simple = handleTest ./simple.nix {};
   slurm = handleTest ./slurm.nix {};
   smokeping = handleTest ./smokeping.nix {};
+  snapcast = handleTest ./snapcast.nix {};
   snapper = handleTest ./snapper.nix {};
   sogo = handleTest ./sogo.nix {};
   solr = handleTest ./solr.nix {};
@@ -311,16 +324,19 @@ in
   spike = handleTest ./spike.nix {};
   sonarr = handleTest ./sonarr.nix {};
   sslh = handleTest ./sslh.nix {};
+  sssd = handleTestOn ["x86_64-linux"] ./sssd.nix {};
+  sssd-ldap = handleTestOn ["x86_64-linux"] ./sssd-ldap.nix {};
   strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
   sudo = handleTest ./sudo.nix {};
   switchTest = handleTest ./switch-test.nix {};
   sympa = handleTest ./sympa.nix {};
+  syncthing = handleTest ./syncthing.nix {};
   syncthing-init = handleTest ./syncthing-init.nix {};
   syncthing-relay = handleTest ./syncthing-relay.nix {};
   systemd = handleTest ./systemd.nix {};
   systemd-analyze = handleTest ./systemd-analyze.nix {};
   systemd-binfmt = handleTestOn ["x86_64-linux"] ./systemd-binfmt.nix {};
-  systemd-boot = handleTestOn ["x86_64-linux"] ./systemd-boot.nix {};
+  systemd-boot = handleTest ./systemd-boot.nix {};
   systemd-confinement = handleTest ./systemd-confinement.nix {};
   systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
   systemd-networkd-vrf = handleTest ./systemd-networkd-vrf.nix {};
@@ -362,6 +378,7 @@ in
   yabar = handleTest ./yabar.nix {};
   yggdrasil = handleTest ./yggdrasil.nix {};
   zfs = handleTest ./zfs.nix {};
+  zigbee2mqtt = handleTest ./zigbee2mqtt.nix {};
   zoneminder = handleTest ./zoneminder.nix {};
   zookeeper = handleTest ./zookeeper.nix {};
   zsh-history = handleTest ./zsh-history.nix {};
diff --git a/nixos/tests/bcachefs.nix b/nixos/tests/bcachefs.nix
index 0541e580322..3f116d7df92 100644
--- a/nixos/tests/bcachefs.nix
+++ b/nixos/tests/bcachefs.nix
@@ -13,7 +13,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
     machine.succeed("modprobe bcachefs")
     machine.succeed("bcachefs version")
     machine.succeed("ls /dev")
-    
+
     machine.succeed(
         "mkdir /tmp/mnt",
         "udevadm settle",
diff --git a/nixos/tests/bitcoind.nix b/nixos/tests/bitcoind.nix
new file mode 100644
index 00000000000..09f3e4a6ec0
--- /dev/null
+++ b/nixos/tests/bitcoind.nix
@@ -0,0 +1,46 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "bitcoind";
+  meta = with pkgs.stdenv.lib; {
+    maintainers = with maintainers; [ _1000101 ];
+  };
+
+  machine = { ... }: {
+    services.bitcoind."mainnet" = {
+      enable = true;
+      rpc = {
+        port = 8332;
+        users.rpc.passwordHMAC = "acc2374e5f9ba9e62a5204d3686616cf$53abdba5e67a9005be6a27ca03a93ce09e58854bc2b871523a0d239a72968033";
+        users.rpc2.passwordHMAC = "1495e4a3ad108187576c68f7f9b5ddc5$accce0881c74aa01bb8960ff3bdbd39f607fd33178147679e055a4ac35f53225";
+      };
+    };
+    services.bitcoind."testnet" = {
+      enable = true;
+      configFile = "/test.blank";
+      testnet = true;
+      rpc = {
+        port = 18332;
+      };
+      extraCmdlineOptions = [ "-rpcuser=rpc" "-rpcpassword=rpc" "-rpcauth=rpc2:1495e4a3ad108187576c68f7f9b5ddc5$accce0881c74aa01bb8960ff3bdbd39f607fd33178147679e055a4ac35f53225" ];
+    };
+  };
+
+  testScript = ''
+    start_all()
+
+    machine.wait_for_unit("bitcoind-mainnet.service")
+    machine.wait_for_unit("bitcoind-testnet.service")
+
+    machine.wait_until_succeeds(
+        'curl --user rpc:rpc --data-binary \'{"jsonrpc": "1.0", "id":"curltest", "method": "getblockchaininfo", "params": [] }\' -H \'content-type: text/plain;\' localhost:8332 |  grep \'"chain":"main"\' '
+    )
+    machine.wait_until_succeeds(
+        'curl --user rpc2:rpc2 --data-binary \'{"jsonrpc": "1.0", "id":"curltest", "method": "getblockchaininfo", "params": [] }\' -H \'content-type: text/plain;\' localhost:8332 |  grep \'"chain":"main"\' '
+    )
+    machine.wait_until_succeeds(
+        'curl --user rpc:rpc --data-binary \'{"jsonrpc": "1.0", "id":"curltest", "method": "getblockchaininfo", "params": [] }\' -H \'content-type: text/plain;\' localhost:18332 |  grep \'"chain":"test"\' '
+    )
+    machine.wait_until_succeeds(
+        'curl --user rpc2:rpc2 --data-binary \'{"jsonrpc": "1.0", "id":"curltest", "method": "getblockchaininfo", "params": [] }\' -H \'content-type: text/plain;\' localhost:18332 |  grep \'"chain":"test"\' '
+    )
+  '';
+})
diff --git a/nixos/tests/bittorrent.nix b/nixos/tests/bittorrent.nix
index 0a97d5556a2..c195b60cd56 100644
--- a/nixos/tests/bittorrent.nix
+++ b/nixos/tests/bittorrent.nix
@@ -19,6 +19,7 @@ let
   externalClient2Address = "80.100.100.2";
   externalTrackerAddress = "80.100.100.3";
 
+  download-dir = "/var/lib/transmission/Downloads";
   transmissionConfig = { ... }: {
     environment.systemPackages = [ pkgs.transmission ];
     services.transmission = {
@@ -26,6 +27,7 @@ let
       settings = {
         dht-enabled = false;
         message-level = 3;
+        inherit download-dir;
       };
     };
   };
@@ -117,12 +119,12 @@ in
       router.wait_for_unit("miniupnpd")
 
       # Create the torrent.
-      tracker.succeed("mkdir /tmp/data")
+      tracker.succeed("mkdir ${download-dir}/data")
       tracker.succeed(
-          "cp ${file} /tmp/data/test.tar.bz2"
+          "cp ${file} ${download-dir}/data/test.tar.bz2"
       )
       tracker.succeed(
-          "transmission-create /tmp/data/test.tar.bz2 --private --tracker http://${externalTrackerAddress}:6969/announce --outfile /tmp/test.torrent"
+          "transmission-create ${download-dir}/data/test.tar.bz2 --private --tracker http://${externalTrackerAddress}:6969/announce --outfile /tmp/test.torrent"
       )
       tracker.succeed("chmod 644 /tmp/test.torrent")
 
@@ -133,18 +135,16 @@ in
 
       # Start the initial seeder.
       tracker.succeed(
-          "transmission-remote --add /tmp/test.torrent --no-portmap --no-dht --download-dir /tmp/data"
+          "transmission-remote --add /tmp/test.torrent --no-portmap --no-dht --download-dir ${download-dir}/data"
       )
 
       # Now we should be able to download from the client behind the NAT.
       tracker.wait_for_unit("httpd")
       client1.wait_for_unit("network-online.target")
+      client1.succeed("transmission-remote --add http://${externalTrackerAddress}/test.torrent >&2 &")
+      client1.wait_for_file("${download-dir}/test.tar.bz2")
       client1.succeed(
-          "transmission-remote --add http://${externalTrackerAddress}/test.torrent --download-dir /tmp >&2 &"
-      )
-      client1.wait_for_file("/tmp/test.tar.bz2")
-      client1.succeed(
-          "cmp /tmp/test.tar.bz2 ${file}"
+          "cmp ${download-dir}/test.tar.bz2 ${file}"
       )
 
       # Bring down the initial seeder.
@@ -154,11 +154,11 @@ in
       # the first client created a NAT hole in the router.
       client2.wait_for_unit("network-online.target")
       client2.succeed(
-          "transmission-remote --add http://${externalTrackerAddress}/test.torrent --no-portmap --no-dht --download-dir /tmp >&2 &"
+          "transmission-remote --add http://${externalTrackerAddress}/test.torrent --no-portmap --no-dht >&2 &"
       )
-      client2.wait_for_file("/tmp/test.tar.bz2")
+      client2.wait_for_file("${download-dir}/test.tar.bz2")
       client2.succeed(
-          "cmp /tmp/test.tar.bz2 ${file}"
+          "cmp ${download-dir}/test.tar.bz2 ${file}"
       )
     '';
 })
diff --git a/nixos/tests/bitwarden.nix b/nixos/tests/bitwarden.nix
new file mode 100644
index 00000000000..a47c77cec21
--- /dev/null
+++ b/nixos/tests/bitwarden.nix
@@ -0,0 +1,188 @@
+{ system ? builtins.currentSystem
+, config ? { }
+, pkgs ? import ../.. { inherit system config; }
+}:
+
+# These tests will:
+#  * Set up a bitwarden-rs server
+#  * Have Firefox use the web vault to create an account, log in, and save a password to the valut
+#  * Have the bw cli log in and read that password from the vault
+#
+# Note that Firefox must be on the same machine as the server for WebCrypto APIs to be available (or HTTPS must be configured)
+#
+# The same tests should work without modification on the official bitwarden server, if we ever package that.
+
+with import ../lib/testing-python.nix { inherit system pkgs; };
+with pkgs.lib;
+let
+  backends = [ "sqlite" "mysql" "postgresql" ];
+
+  dbPassword = "please_dont_hack";
+
+  userEmail = "meow@example.com";
+  userPassword = "also_super_secret_ZJWpBKZi668QGt"; # Must be complex to avoid interstitial warning on the signup page
+
+  storedPassword = "seeeecret";
+
+  makeBitwardenTest = backend: makeTest {
+    name = "bitwarden_rs-${backend}";
+    meta = {
+      maintainers = with pkgs.stdenv.lib.maintainers; [ jjjollyjim ];
+    };
+
+    nodes = {
+      server = { pkgs, ... }:
+        let backendConfig = {
+          mysql = {
+            services.mysql = {
+              enable = true;
+              initialScript = pkgs.writeText "mysql-init.sql" ''
+                CREATE DATABASE bitwarden;
+                CREATE USER 'bitwardenuser'@'localhost' IDENTIFIED BY '${dbPassword}';
+                GRANT ALL ON `bitwarden`.* TO 'bitwardenuser'@'localhost';
+                FLUSH PRIVILEGES;
+              '';
+              package = pkgs.mysql;
+            };
+
+            services.bitwarden_rs.config.databaseUrl = "mysql://bitwardenuser:${dbPassword}@localhost/bitwarden";
+
+            systemd.services.bitwarden_rs.after = [ "mysql.service" ];
+          };
+
+          postgresql = {
+            services.postgresql = {
+              enable = true;
+              initialScript = pkgs.writeText "postgresql-init.sql" ''
+                CREATE DATABASE bitwarden;
+                CREATE USER bitwardenuser WITH PASSWORD '${dbPassword}';
+                GRANT ALL PRIVILEGES ON DATABASE bitwarden TO bitwardenuser;
+              '';
+            };
+
+            services.bitwarden_rs.config.databaseUrl = "postgresql://bitwardenuser:${dbPassword}@localhost/bitwarden";
+
+            systemd.services.bitwarden_rs.after = [ "postgresql.service" ];
+          };
+
+          sqlite = { };
+        };
+        in
+        mkMerge [
+          backendConfig.${backend}
+          {
+            services.bitwarden_rs = {
+              enable = true;
+              dbBackend = backend;
+              config.rocketPort = 80;
+            };
+
+            networking.firewall.allowedTCPPorts = [ 80 ];
+
+            environment.systemPackages =
+              let
+                testRunner = pkgs.writers.writePython3Bin "test-runner"
+                  {
+                    libraries = [ pkgs.python3Packages.selenium ];
+                  } ''
+                  from selenium.webdriver import Firefox
+                  from selenium.webdriver.firefox.options import Options
+                  from selenium.webdriver.support.ui import WebDriverWait
+                  from selenium.webdriver.support import expected_conditions as EC
+
+                  options = Options()
+                  options.add_argument('--headless')
+                  driver = Firefox(options=options)
+
+                  driver.implicitly_wait(20)
+                  driver.get('http://localhost/#/register')
+
+                  wait = WebDriverWait(driver, 10)
+
+                  wait.until(EC.title_contains("Create Account"))
+
+                  driver.find_element_by_css_selector('input#email').send_keys(
+                    '${userEmail}'
+                  )
+                  driver.find_element_by_css_selector('input#name').send_keys(
+                    'A Cat'
+                  )
+                  driver.find_element_by_css_selector('input#masterPassword').send_keys(
+                    '${userPassword}'
+                  )
+                  driver.find_element_by_css_selector('input#masterPasswordRetype').send_keys(
+                    '${userPassword}'
+                  )
+
+                  driver.find_element_by_xpath("//button[contains(., 'Submit')]").click()
+
+                  wait.until_not(EC.title_contains("Create Account"))
+
+                  driver.find_element_by_css_selector('input#masterPassword').send_keys(
+                    '${userPassword}'
+                  )
+                  driver.find_element_by_xpath("//button[contains(., 'Log In')]").click()
+
+                  wait.until(EC.title_contains("My Vault"))
+
+                  driver.find_element_by_xpath("//button[contains(., 'Add Item')]").click()
+
+                  driver.find_element_by_css_selector('input#name').send_keys(
+                    'secrets'
+                  )
+                  driver.find_element_by_css_selector('input#loginPassword').send_keys(
+                    '${storedPassword}'
+                  )
+
+                  driver.find_element_by_xpath("//button[contains(., 'Save')]").click()
+                '';
+              in
+              [ pkgs.firefox-unwrapped pkgs.geckodriver testRunner ];
+
+            virtualisation.memorySize = 768;
+          }
+        ];
+
+      client = { pkgs, ... }:
+        {
+          environment.systemPackages = [ pkgs.bitwarden-cli ];
+        };
+    };
+
+    testScript = ''
+      start_all()
+      server.wait_for_unit("bitwarden_rs.service")
+      server.wait_for_open_port(80)
+
+      with subtest("configure the cli"):
+          client.succeed("bw --nointeraction config server http://server")
+
+      with subtest("can't login to nonexistant account"):
+          client.fail(
+              "bw --nointeraction --raw login ${userEmail} ${userPassword}"
+          )
+
+      with subtest("use the web interface to sign up, log in, and save a password"):
+          server.succeed("PYTHONUNBUFFERED=1 test-runner | systemd-cat -t test-runner")
+
+      with subtest("log in with the cli"):
+          key = client.succeed(
+              "bw --nointeraction --raw login ${userEmail} ${userPassword}"
+          ).strip()
+
+      with subtest("sync with the cli"):
+          client.succeed(f"bw --nointeraction --raw --session {key} sync -f")
+
+      with subtest("get the password with the cli"):
+          password = client.succeed(
+              f"bw --nointeraction --raw --session {key} list items | ${pkgs.jq}/bin/jq -r .[].login.password"
+          )
+          assert password.strip() == "${storedPassword}"
+    '';
+  };
+in
+builtins.listToAttrs (
+  map
+    (backend: { name = backend; value = makeBitwardenTest backend; })
+    backends
+)
diff --git a/nixos/tests/blockbook-frontend.nix b/nixos/tests/blockbook-frontend.nix
index 67d0fcab947..742a02999e7 100644
--- a/nixos/tests/blockbook-frontend.nix
+++ b/nixos/tests/blockbook-frontend.nix
@@ -1,14 +1,14 @@
 import ./make-test-python.nix ({ pkgs, ... }: {
   name = "blockbook-frontend";
   meta = with pkgs.stdenv.lib; {
-    maintainers = with maintainers; [ maintainers."1000101" ];
+    maintainers = with maintainers; [ _1000101 ];
   };
 
   machine = { ... }: {
     services.blockbook-frontend."test" = {
       enable = true;
     };
-    services.bitcoind = {
+    services.bitcoind.mainnet = {
       enable = true;
       rpc = {
         port = 8030;
diff --git a/nixos/tests/borgbackup.nix b/nixos/tests/borgbackup.nix
index d97471e293e..bf37eb8607b 100644
--- a/nixos/tests/borgbackup.nix
+++ b/nixos/tests/borgbackup.nix
@@ -43,7 +43,7 @@ in {
   nodes = {
     client = { ... }: {
       services.borgbackup.jobs = {
-        
+
         local = {
           paths = dataDir;
           repo = localRepo;
diff --git a/nixos/tests/ceph-multi-node.nix b/nixos/tests/ceph-multi-node.nix
index 22fe5cada48..e26c6d5d670 100644
--- a/nixos/tests/ceph-multi-node.nix
+++ b/nixos/tests/ceph-multi-node.nix
@@ -183,15 +183,15 @@ let
     monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'")
 
     monA.succeed(
-        "ceph osd pool create multi-node-test 128 128",
+        "ceph osd pool create multi-node-test 32 32",
         "ceph osd pool ls | grep 'multi-node-test'",
         "ceph osd pool rename multi-node-test multi-node-other-test",
         "ceph osd pool ls | grep 'multi-node-other-test'",
     )
-    monA.wait_until_succeeds("ceph -s | grep '1 pools, 128 pgs'")
+    monA.wait_until_succeeds("ceph -s | grep '2 pools, 33 pgs'")
     monA.succeed("ceph osd pool set multi-node-other-test size 2")
     monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'")
-    monA.wait_until_succeeds("ceph -s | grep '128 active+clean'")
+    monA.wait_until_succeeds("ceph -s | grep '33 active+clean'")
     monA.fail(
         "ceph osd pool ls | grep 'multi-node-test'",
         "ceph osd pool delete multi-node-other-test multi-node-other-test --yes-i-really-really-mean-it",
diff --git a/nixos/tests/ceph-single-node.nix b/nixos/tests/ceph-single-node.nix
index 01c4b413845..98528f6317b 100644
--- a/nixos/tests/ceph-single-node.nix
+++ b/nixos/tests/ceph-single-node.nix
@@ -143,12 +143,12 @@ let
     monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'")
 
     monA.succeed(
-        "ceph osd pool create single-node-test 128 128",
+        "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 '1 pools, 128 pgs'")
+    monA.wait_until_succeeds("ceph -s | grep '2 pools, 33 pgs'")
     monA.succeed(
         "ceph osd getcrushmap -o crush",
         "crushtool -d crush -o decrushed",
@@ -158,7 +158,7 @@ let
         "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 '128 active+clean'")
+    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",
diff --git a/nixos/tests/charliecloud.nix b/nixos/tests/charliecloud.nix
new file mode 100644
index 00000000000..acba41e228a
--- /dev/null
+++ b/nixos/tests/charliecloud.nix
@@ -0,0 +1,43 @@
+# This test checks charliecloud image construction and run
+
+import ./make-test-python.nix ({ pkgs, ...} : let
+
+  dockerfile = pkgs.writeText "Dockerfile" ''
+    FROM nix
+    RUN mkdir /home /tmp
+    RUN touch /etc/passwd /etc/group
+    CMD ["true"]
+  '';
+
+in {
+  name = "charliecloud";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ bzizou ];
+  };
+
+  nodes = {
+    host = { ... }: {
+      environment.systemPackages = [ pkgs.charliecloud ];
+      virtualisation.docker.enable = true;
+      users.users.alice = {
+        isNormalUser = true;
+        extraGroups = [ "docker" ];
+      };
+    };
+  };
+
+  testScript = ''
+    host.start()
+    host.wait_for_unit("docker.service")
+    host.succeed(
+        'su - alice -c "docker load --input=${pkgs.dockerTools.examples.nix}"'
+    )
+    host.succeed(
+        "cp ${dockerfile} /home/alice/Dockerfile"
+    )
+    host.succeed('su - alice -c "ch-build -t hello ."')
+    host.succeed('su - alice -c "ch-builder2tar hello /var/tmp"')
+    host.succeed('su - alice -c "ch-tar2dir /var/tmp/hello.tar.gz /var/tmp"')
+    host.succeed('su - alice -c "ch-run /var/tmp/hello -- echo Running_From_Container_OK"')
+  '';
+})
diff --git a/nixos/tests/common/acme/client/default.nix b/nixos/tests/common/acme/client/default.nix
index 80893da0252..1e9885e375c 100644
--- a/nixos/tests/common/acme/client/default.nix
+++ b/nixos/tests/common/acme/client/default.nix
@@ -1,15 +1,14 @@
 { lib, nodes, pkgs, ... }:
-
 let
-  acme-ca = nodes.acme.config.test-support.acme.caCert;
-in
+  caCert = nodes.acme.config.test-support.acme.caCert;
+  caDomain = nodes.acme.config.test-support.acme.caDomain;
 
-{
+in {
   security.acme = {
-    server = "https://acme.test/dir";
+    server = "https://${caDomain}/dir";
     email = "hostmaster@example.test";
     acceptTerms = true;
   };
 
-  security.pki.certificateFiles = [ acme-ca ];
+  security.pki.certificateFiles = [ caCert ];
 }
diff --git a/nixos/tests/common/acme/server/default.nix b/nixos/tests/common/acme/server/default.nix
index 1a0ee882572..4d8e664c4e1 100644
--- a/nixos/tests/common/acme/server/default.nix
+++ b/nixos/tests/common/acme/server/default.nix
@@ -3,7 +3,7 @@
 #   config.test-support.acme.caCert
 #
 # This value can be used inside the configuration of other test nodes to inject
-# the snakeoil certificate into security.pki.certificateFiles or into package
+# the test certificate into security.pki.certificateFiles or into package
 # overlays.
 #
 # Another value that's needed if you don't use a custom resolver (see below for
@@ -50,19 +50,13 @@
 # Also make sure that whenever you use a resolver from a different test node
 # that it has to be started _before_ the ACME service.
 { config, pkgs, lib, ... }:
-
-
 let
-  snakeOilCerts = import ./snakeoil-certs.nix;
-
-  wfeDomain = "acme.test";
-  wfeCertFile = snakeOilCerts.${wfeDomain}.cert;
-  wfeKeyFile = snakeOilCerts.${wfeDomain}.key;
+  testCerts = import ./snakeoil-certs.nix {
+    minica = pkgs.minica;
+    mkDerivation = pkgs.stdenv.mkDerivation;
+  };
+  domain = testCerts.domain;
 
-  siteDomain = "acme.test";
-  siteCertFile = snakeOilCerts.${siteDomain}.cert;
-  siteKeyFile = snakeOilCerts.${siteDomain}.key;
-  pebble = pkgs.pebble;
   resolver = let
     message = "You need to define a resolver for the acme test module.";
     firstNS = lib.head config.networking.nameservers;
@@ -71,8 +65,9 @@ let
   pebbleConf.pebble = {
     listenAddress = "0.0.0.0:443";
     managementListenAddress = "0.0.0.0:15000";
-    certificate = snakeOilCerts.${wfeDomain}.cert;
-    privateKey = snakeOilCerts.${wfeDomain}.key;
+    # These certs and keys are used for the Web Front End (WFE)
+    certificate = testCerts.${domain}.cert;
+    privateKey = testCerts.${domain}.key;
     httpPort = 80;
     tlsPort = 443;
     ocspResponderURL = "http://0.0.0.0:4002";
@@ -80,18 +75,30 @@ let
   };
 
   pebbleConfFile = pkgs.writeText "pebble.conf" (builtins.toJSON pebbleConf);
-  pebbleDataDir = "/root/pebble";
 
 in {
   imports = [ ../../resolver.nix ];
 
-  options.test-support.acme.caCert = lib.mkOption {
-    type = lib.types.path;
-    description = ''
-      A certificate file to use with the <literal>nodes</literal> attribute to
-      inject the snakeoil CA certificate used in the ACME server into
-      <option>security.pki.certificateFiles</option>.
-    '';
+  options.test-support.acme = with lib; {
+    caDomain = mkOption {
+      type = types.str;
+      readOnly = true;
+      default = domain;
+      description = ''
+        A domain name to use with the <literal>nodes</literal> attribute to
+        identify the CA server.
+      '';
+    };
+    caCert = mkOption {
+      type = types.path;
+      readOnly = true;
+      default = testCerts.ca.cert;
+      description = ''
+        A certificate file to use with the <literal>nodes</literal> attribute to
+        inject the test CA certificate used in the ACME server into
+        <option>security.pki.certificateFiles</option>.
+      '';
+    };
   };
 
   config = {
@@ -99,35 +106,32 @@ in {
       resolver.enable = let
         isLocalResolver = config.networking.nameservers == [ "127.0.0.1" ];
       in lib.mkOverride 900 isLocalResolver;
-      acme.caCert = snakeOilCerts.ca.cert;
     };
 
     # This has priority 140, because modules/testing/test-instrumentation.nix
     # already overrides this with priority 150.
     networking.nameservers = lib.mkOverride 140 [ "127.0.0.1" ];
-    networking.firewall.enable = false;
+    networking.firewall.allowedTCPPorts = [ 80 443 15000 4002 ];
 
     networking.extraHosts = ''
-      127.0.0.1 ${wfeDomain}
-      ${config.networking.primaryIPAddress} ${wfeDomain} ${siteDomain}
+      127.0.0.1 ${domain}
+      ${config.networking.primaryIPAddress} ${domain}
     '';
 
     systemd.services = {
       pebble = {
         enable = true;
         description = "Pebble ACME server";
-        requires = [ ];
         wantedBy = [ "network.target" ];
-        preStart = ''
-          mkdir ${pebbleDataDir}
-        '';
-        script = ''
-          cd ${pebbleDataDir}
-          ${pebble}/bin/pebble -config ${pebbleConfFile}
-        '';
+
         serviceConfig = {
+          RuntimeDirectory = "pebble";
+          WorkingDirectory = "/run/pebble";
+
           # Required to bind on privileged ports.
           AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
+
+          ExecStart = "${pkgs.pebble}/bin/pebble -config ${pebbleConfFile}";
         };
       };
     };
diff --git a/nixos/tests/common/acme/server/mkcerts.nix b/nixos/tests/common/acme/server/mkcerts.nix
deleted file mode 100644
index 2474019cbac..00000000000
--- a/nixos/tests/common/acme/server/mkcerts.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{ pkgs ? import <nixpkgs> {}
-, lib ? pkgs.lib
-, domains ? [ "acme.test" ]
-}:
-
-pkgs.runCommand "acme-snakeoil-ca" {
-  nativeBuildInputs = [ pkgs.openssl ];
-} ''
-  addpem() {
-    local file="$1"; shift
-    local storeFileName="$(IFS=.; echo "$*")"
-
-    echo -n "  " >> "$out"
-
-    # Every following argument is an attribute, so let's recurse and check
-    # every attribute whether it must be quoted and write it into $out.
-    while [ -n "$1" ]; do
-      if expr match "$1" '^[a-zA-Z][a-zA-Z0-9]*$' > /dev/null; then
-        echo -n "$1" >> "$out"
-      else
-        echo -n '"' >> "$out"
-        echo -n "$1" | sed -e 's/["$]/\\&/g' >> "$out"
-        echo -n '"' >> "$out"
-      fi
-      shift
-      [ -z "$1" ] || echo -n . >> "$out"
-    done
-
-    echo " = builtins.toFile \"$storeFileName\" '''" >> "$out"
-    sed -e 's/^/    /' "$file" >> "$out"
-
-    echo "  ''';" >> "$out"
-  }
-
-  echo '# Generated via mkcert.sh in the same directory.' > "$out"
-  echo '{' >> "$out"
-
-  openssl req -newkey rsa:4096 -x509 -sha256 -days 36500 \
-    -subj '/CN=Snakeoil CA' -nodes -out ca.pem -keyout ca.key
-
-  addpem ca.key ca key
-  addpem ca.pem ca cert
-
-  ${lib.concatMapStrings (fqdn: let
-    opensslConfig = pkgs.writeText "snakeoil.cnf" ''
-      [req]
-      default_bits = 4096
-      prompt = no
-      default_md = sha256
-      req_extensions = req_ext
-      distinguished_name = dn
-      [dn]
-      CN = ${fqdn}
-      [req_ext]
-      subjectAltName = DNS:${fqdn}
-    '';
-  in ''
-    export OPENSSL_CONF=${lib.escapeShellArg opensslConfig}
-    openssl genrsa -out snakeoil.key 4096
-    openssl req -new -key snakeoil.key -out snakeoil.csr
-    openssl x509 -req -in snakeoil.csr -sha256 -set_serial 666 \
-      -CA ca.pem -CAkey ca.key -out snakeoil.pem -days 36500
-    addpem snakeoil.key ${lib.escapeShellArg fqdn} key
-    addpem snakeoil.pem ${lib.escapeShellArg fqdn} cert
-  '') domains}
-
-  echo '}' >> "$out"
-''
diff --git a/nixos/tests/common/acme/server/mkcerts.sh b/nixos/tests/common/acme/server/mkcerts.sh
deleted file mode 100755
index cc7f8ca650d..00000000000
--- a/nixos/tests/common/acme/server/mkcerts.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -p nix bash -i bash
-set -e
-cd "$(dirname "$0")"
-storepath="$(nix-build --no-out-link mkcerts.nix)"
-cat "$storepath" > snakeoil-certs.nix
diff --git a/nixos/tests/common/acme/server/snakeoil-certs.nix b/nixos/tests/common/acme/server/snakeoil-certs.nix
index fd537c3260f..4b6a38b8fa3 100644
--- a/nixos/tests/common/acme/server/snakeoil-certs.nix
+++ b/nixos/tests/common/acme/server/snakeoil-certs.nix
@@ -1,171 +1,37 @@
-# Generated via mkcert.sh in the same directory.
-{
-  ca.key = builtins.toFile "ca.key" ''
-    -----BEGIN PRIVATE KEY-----
-    MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDCnVZGEn68ezXl
-    DWE5gjsCPqutR4nxw/wvIbAxB2Vk2WeQ6HGvt2Jdrz5qer2IXd76YtpQeqd+ffet
-    aLtMeFTr+Xy9yqEpx2AfvmEEcLnuiWbsUGZzsHwW7/4kPgAFBy9TwJn/k892lR6u
-    QYa0QS39CX85kLMZ/LZXUyClIBa+IxT1OovmGqMOr4nGASRQP6d/nnyn41Knat/d
-    tpyaa5zgfYwA6YW6UxcywvBSpMOXM0/82BFZGyALt3nQ+ffmrtKcvMjsNLBFaslV
-    +zYO1PMbLbTCW8SmJTjhzuapXtBHruvoe24133XWlvcP1ylaTx0alwiQWJr1XEOU
-    WLEFTgOTeRyiVDxDunpz+7oGcwzcdOG8nCgd6w0aYaECz1zvS3FYTQz+MiqmEkx6
-    s4bj1U90I0kwUJbeWjjrGO7Y9Qq4i19GafDg7cAMn9eHCiNbNrPj6t/gfaVbCrbk
-    m3ZVjkvLTQ2mb2lv7+tVii45227iNPuNS6lx2FVlr/DXiRrOVfghPvoOxUfXzogJ
-    hZLV4Zki+ycbGQa5w8YMDYCv4c08dKA7AatVhNS60c1zgQNjuWF3BvocSySyGUon
-    VT6h1DYlJ9YAqgqNpedgNR9kpp034SMhB7dj9leB6LRMA+c1fG/T+1lDbkA+vope
-    pt4+30oDcCTYfEifl1HwqNw/bXDm1wIDAQABAoICABPbd/UYaAQVUk93yQbUKe81
-    s9CvbvzTMYUhm9e02Hyszitz/D2gqZHDksvMkFA8u8aylXIGwdZfRglUmV/ZG1kk
-    kLzQ0xbvN/ilNUL9uYsETBMqtPly9YZloHnUNa5NqF+UVGJGk7GWz5WaLANybx3V
-    fTzDbfLl3TkVy0vt9UQbUkUfXyzwZNjXwmgIr8rcY9vasP90a3eXqRX3Tw1Wk6A4
-    TzO8oB994O0WBO150Fc6Lhwvc72yzddENlLDXq8UAXtqq9mmGqJKnhZ+1mo3AkMw
-    q7P1JyCIxcAMm26GtRvLVljXV0x5640kxDrCin6jeeW/qWkJEW6dpmuZjR5scmLI
-    /9n8H+fGzdZH8bOPPotMy12doj3vJqvew3p0eIkmVctYMJKD0j/CWjvKJNE3Yx4O
-    Ls47X/dEypX6anR1HQUXcpd6JfRWdIJANo2Duaz+HYbyA88bHcJL9shFYcjLs3sX
-    R/TvnnKHvw/ud7XBgvLGwGAf/cDEuLI2tv+V7tkMGrMUv+gUJNZaJaCpdt+1iUwO
-    QFq8APyBNn6FFw54TwXWfSjfSNh3geIMLHuErYVu9MIXvB7Yhh+ZvLcfLbmckhAX
-    wb39RRHnCWvnw5Bm9hnsDhqfDsIoP+2wvUkViyHOmrKi8nSJhSk19C8AuQtSVcJg
-    5op+epEmjt70GHt52nuBAoIBAQD2a4Ftp4QxWE2d6oAFI6WPrX7nAwI5/ezCbO/h
-    yoYAn6ucTVnn5/5ITJ8V4WTWZ4lkoZP3YSJiCyBhs8fN63J+RaJ/bFRblHDns1HA
-    2nlMVdNLg6uOfjgUJ8Y6xVM0J2dcFtwIFyK5pfZ7loxMZfvuovg74vDOi2vnO3dO
-    16DP3zUx6B/yIt57CYn8NWTq+MO2bzKUnczUQRx0yEzPOfOmVbcqGP8f7WEdDWXm
-    7scjjN53OPyKzLOVEhOMsUhIMBMO25I9ZpcVkyj3/nj+fFLf/XjOTM00M/S/KnOj
-    RwaWffx6mSYS66qNc5JSsojhIiYyiGVEWIznBpNWDU35y/uXAoIBAQDKLj0dyig2
-    kj1r3HvdgK4sRULqBQFMqE9ylxDmpJxAj6/A8hJ0RCBR57vnIIZMzK4+6K0l3VBJ
-    ukzXJHJLPkZ0Uuo2zLuRLkyjBECH6KYznyTkUVRn50Oq6IoP6WTCfd3Eg+7AKYY1
-    VFo2iR8sxeSQQ+AylFy6QcQ1xPIW30Jj1/LFjrRdRggapPEekpJec0pEqhasT8rR
-    UFhRL2NdZnL5b7ZlsJc7gZKEJgNfxgzaCzloqLcjCgGpOhLKx0fFsNOqHcbIGMwG
-    6wQCOyNghQJ6AZtRD5TYCJow92FchWjoTIaMJ8RjMKQmxpiwM6wQG4J78Hd3mbhf
-    q0hiQhPHaNbBAoIBAFeIeMFq8BpXM7sUwcURlI4lIx8Mgo33FVM7PzsFpfQyw9MR
-    5w3p6vnjvd8X4aoHvVZxzw3hA0WwjiAmrKMJL/KK6d45rP2bDUBBAplvAgeLtTLt
-    4tMLIwCF4HSgA55TIPQlaqO1FDC+M4BTSiMZVxS970/WnZPBEuNgzFDFZ+pvb4X6
-    3t40ZLNwAAQHM4IEPAFiHqWMKGZ9eo5BWIeEHnjHmfjqSDYfLJAVYk1WJIcMUzom
-    lA76CBC8CxW/I94AtcRhWuFUv/Z5/+OYEYLUxtuqPm+J+JrCmf4OJmWppT1wI2+p
-    V00BSeRVWXTm1piieM8ahF5y1hp6y3uV3k0NmKECggEBAMC42Ms3s6NpPSE+99eJ
-    3P0YPJOkl7uByNGbTKH+kW89SDRsy8iGVCSe9892gm5cwU/4LWyljO3qp2qBNG2i
-    /DfP/bCk8bqPXsAZwoWK8DrO3bTCDepJWYhlx40pVkHLBwVXGdOVAXh+YswPY2cj
-    cB9QhDrSj52AKU9z36yLvtY7uBA3Wph6tCjpx2n0H4/m6AmR9LDmEpf5tWYV/OrA
-    SKKaqUw/y7kOZyKOtbKqr/98qYmpIYFF/ZVZZSZkVXcNeoZzgdOlR37ksVqLEsrj
-    nxu7wli/uItBj/FTLjyqcvjUUYDyO1KtwBuyPUPgzYhBIN2Rt9+K6WRQelwnToFL
-    30ECggEBALzozykZj2sr3z8tQQRZuXLGotUFGsQCB8ikeqoeB8FbNNkC+qgflQGv
-    zLRB2KWOvnboc94wVgBJH43xG0HBibZnBhUO8/HBI/WlmyEj9KQ/ZskUK4GVZkB6
-    r/81ASLwH+P/rqrLEjcp1SIPPevjzCWD9VYR5m/qPHLNxStwGSrPjtPzgaFxhq84
-    Jl+YVmNqVlrOKYYfIPh8exPLiTti3wfM61pVYFv56PI2gd5ysMWYnuN+vK0sbmZh
-    cIWwykcKlODIngI7IzYqt8NuIJI0jrYyHgtUw4jaJzdF4mEOplGONxdz15jAGHtg
-    JUsBXFNz132nP4iIr3UKrPedQZijSi4=
-    -----END PRIVATE KEY-----
-  '';
-  ca.cert = builtins.toFile "ca.cert" ''
-    -----BEGIN CERTIFICATE-----
-    MIIFDzCCAvegAwIBAgIUTRDYSWJvmlhwIR3pzVrIQfnboLEwDQYJKoZIhvcNAQEL
-    BQAwFjEUMBIGA1UEAwwLU25ha2VvaWwgQ0EwIBcNMjAwMzIyMjI1NjE3WhgPMjEy
-    MDAyMjcyMjU2MTdaMBYxFDASBgNVBAMMC1NuYWtlb2lsIENBMIICIjANBgkqhkiG
-    9w0BAQEFAAOCAg8AMIICCgKCAgEAwp1WRhJ+vHs15Q1hOYI7Aj6rrUeJ8cP8LyGw
-    MQdlZNlnkOhxr7diXa8+anq9iF3e+mLaUHqnfn33rWi7THhU6/l8vcqhKcdgH75h
-    BHC57olm7FBmc7B8Fu/+JD4ABQcvU8CZ/5PPdpUerkGGtEEt/Ql/OZCzGfy2V1Mg
-    pSAWviMU9TqL5hqjDq+JxgEkUD+nf558p+NSp2rf3bacmmuc4H2MAOmFulMXMsLw
-    UqTDlzNP/NgRWRsgC7d50Pn35q7SnLzI7DSwRWrJVfs2DtTzGy20wlvEpiU44c7m
-    qV7QR67r6HtuNd911pb3D9cpWk8dGpcIkFia9VxDlFixBU4Dk3kcolQ8Q7p6c/u6
-    BnMM3HThvJwoHesNGmGhAs9c70txWE0M/jIqphJMerOG49VPdCNJMFCW3lo46xju
-    2PUKuItfRmnw4O3ADJ/XhwojWzaz4+rf4H2lWwq25Jt2VY5Ly00Npm9pb+/rVYou
-    Odtu4jT7jUupcdhVZa/w14kazlX4IT76DsVH186ICYWS1eGZIvsnGxkGucPGDA2A
-    r+HNPHSgOwGrVYTUutHNc4EDY7lhdwb6HEskshlKJ1U+odQ2JSfWAKoKjaXnYDUf
-    ZKadN+EjIQe3Y/ZXgei0TAPnNXxv0/tZQ25APr6KXqbePt9KA3Ak2HxIn5dR8Kjc
-    P21w5tcCAwEAAaNTMFEwHQYDVR0OBBYEFCIoeYSYjtMiPrmxfHmcrsZkyTpvMB8G
-    A1UdIwQYMBaAFCIoeYSYjtMiPrmxfHmcrsZkyTpvMA8GA1UdEwEB/wQFMAMBAf8w
-    DQYJKoZIhvcNAQELBQADggIBAHPdwOgAxyhIhbqFObNftW8K3sptorB/Fj6jwYCm
-    mHleFueqQnjTHMWsflOjREvQp1M307FWooGj+KQkjwvAyDc/Hmy7WgJxBg9p3vc+
-    /Xf/e7ZfBl8rv7vH8VXW/BC1vVsILdFncrgTrP8/4psV50/cl1F4+nPBiekvvxwZ
-    k+R7SgeSvcWT7YlOG8tm1M3al4F4mWzSRkYjkrXmwRCKAiya9xcGSt0Bob+LoM/O
-    mpDGV/PMC1WAoDc1mMuXN2hSc0n68xMcuFs+dj/nQYn8uL5pzOxpX9560ynKyLDv
-    yOzQlM2VuZ7H2hSIeYOFgrtHJJwhDtzjmUNDQpQdp9Fx+LONQTS1VLCTXND2i/3F
-    10X6PkdnLEn09RiPt5qy20pQkICxoEydmlwpFs32musYfJPdBPkZqZWrwINBv2Wb
-    HfOmEB4xUvXufZ5Ju5icgggBkyNA3PCLo0GZFRrMtvA7i9IXOcXNR+njhKa9246V
-    QQfeWiz05RmIvgShJYVsnZWtael8ni366d+UXypBYncohimyNlAD1n+Bh3z0PvBB
-    +FK4JgOSeouM4SuBHdwmlZ/H0mvfUG81Y8Jbrw0yuRHtuCtX5HpN5GKpZPHDE7aQ
-    fEShVB/GElC3n3DvgK9OJBeVVhYQgUEfJi4rsSxt3cdEI0NrdckUoZbApWVJ3CBc
-    F8Y7
-    -----END CERTIFICATE-----
-  '';
-  "acme.test".key = builtins.toFile "acme.test.key" ''
-    -----BEGIN RSA PRIVATE KEY-----
-    MIIJKAIBAAKCAgEAlgQTZjKfs3aHw0J993k7jFAs+hVRPf//zHMAiUkPKUYPTSl1
-    TxS/bPbhWzSoom00j4SLhGGGhbd+lnvTg0uvKbxskgATfw5clbm1ZN+gx4DuxwjL
-    V3xIxpeSY+PKzs5z8w/k+AJh+zOPyXwH3ut3C+ogp1S/5IhmzV3a/yU/6k0zpGxj
-    N6ZPRTXFrz93I1pPeCkJz90l7tj+2uFc9xtM20NQX52f0Y2oShcG8fKdNZVzuHHk
-    ZXkrZIhou55/nRy2jKgFeD3GQQfa9rwPWrVybQ6tKMMkoazB/Unky9xcTI2LJarf
-    xgHDO9v9yFBvmR4UM8B3kM82NHoENtHaZ2mmiMGZzTEQlf8xwYyHFrqBFIVRWEUr
-    7rr/O5Qr9gIN0T4u367HCexVYAKzbO2P9h75czzjMMoGkbXze9SMQ/ikrxEmwAHg
-    r1Xxh6iQYmgPNk8AR3d9+o2I7WJZMUYZARLnuhVr9BNXv510iqZTqX8lcyL5fEj3
-    ST4Ab+H7rfevZt6NU26iJLBYAjrA2mSvH+wvkboxrgSS8xYPkOW8NLNEbbodzofI
-    pB+SaK53OIk0bj9c1YAgrSNER/TDTgDXrWUNrlfVZ/M7+AEdeU06wi7sVhVif6OB
-    D3OpgKSNjeE6TuJH80Pi5MWugSFBr792Xb6uhVoPiVOFN+qiGB6UkwBgSKkCAwEA
-    AQKCAgAmN7OZfZwh5DiCDhZ5TXFWNba/n16rJOTN+R5R20L5iNetGLrCAs8hu2N+
-    ENRFTPzu8x14BEB5IF4niDRCZq2hPFeMemh9HfOIUV9c63vSV459NkhXaVpA/axV
-    tlqchQwVCB+U70Z28JPZCLgYmnQhnOvktTqNxhIqj5aTGbJGxpQ5d0Nvkfbv8tsB
-    4nE/mGpWel39jqFzT+Tdbjx414Ok+GkpcsacZDJTbbpfOSfD1uc8PgepskzTt8y2
-    v5JTPFVlUAjUsSgouQ+XfCGNQlx8XBjRIaXbal+hX4niRald91FTr0yC7UAHp+vn
-    dFZ586fB526OfbuZctxP+vZhEhFSseQKxHQ0tB8me81xH44daVNr9PPUM69FDT3j
-    ygJaUJjNEG3vVzePCDzhmxTmz2/rAClp77WTWziBWDoA6YWDDzhgNPrXWzLIbZIx
-    ue9ZbGEOh/u5ZzrEXxKCz9FjDe9wQu3TeYUe0M+ejzwWgn7zdWDvjjmtLUUuun2Y
-    wW7WANpu32qvB/V+qssw4O63tbRiwneRCnb8AF2ixgyWr6xyZwch4kacv1KMiixf
-    gO/5GTj7ba5GcdGoktJb29cUEgz13yPd106RsHK4vcggFxfMbOVauNRIo6ddLwyS
-    8UMxLf2i2cToOLkHZrIb8FgimmzRoBd3yYzwVJBydiVcsrHQAQKCAQEAxlzFYCiQ
-    hjEtblGnrkOC7Hx6HvqMelViOkGN8Y9VczG4GhwntmSE2nbpaAKhFBGdLfuSI3tJ
-    Lf24f0IGgAhzPmpo2TjbxPO3YSKFTH71fznVBhtQ1iSxwZ1InXktnuhot6VSDx6A
-    sbHSy1hMFy3nj+Zj5+fQ89tclzBzG9bCShaauO39KrPMwKi6CYoYdGhXBC3+OpHY
-    zBNvmDTxG2kW8L42rlf14EH4pAlgKs4eeZbpcbZ6fXURP2hToHJ8swyKw/1p12WA
-    cc19BKFJXL8nNP4uCf/fI0mVYpytz5KwUzG+z+umDqk+RRCH4mNB28xvEEuEyp/e
-    /C5Is+WrlDAA6QKCAQEAwZsK4AJ/w4Xf4Q/SsnZJO9bfP1ejJjzKElt8rG28JXeb
-    +FjykZZ6vw2gt2Boest2n9N4fBwaRkaHVtVS4iAmaDXozTlcvCLs2rVjPSguuQtW
-    80CKg6+dux+6gFN8IGzDCiX3pWUnhhiXvCcRYEcvgpH6GA5vuCNrXrjH0JFC0kef
-    aaDMGMTbzhc2IIRztmWU4v8YJSSy5KOkIQLWO+7u9aGx9IqT5/z3gx3XrItyl0Bk
-    aQmZEh7JOSyhmGhhf5LdeTLu2YgRw3/tzS+lPMX3+UPw99k9MdTOFn2pww5AdRmg
-    aBIzV+/LBYG0pPRl0D8/6yzGVBPuUDQpmK9Z3gsxwQKCAQEAnNkMZN2Ocd1+6+V7
-    LmtJog9HTSmWXMEZG7FsOJ661Yxx44txx2IyPsCaDNlPXxwSaiKrSo0Yr1oZQd8G
-    XsTPw4HGiETSWijQTulJ99PH8SLck6iTwdBgEhV5LrN75FQnQVdizHu1DUzrvkiC
-    Wi29FWb6howiCEDjNNVln5SwKn83NpVQgyyK8ag4+oQMlDdQ3wgzJ0Ld53hS3Eq4
-    f5EYR6JQgIki7YGcxrB3L0GujTxMONMuhfdEfRvUTGFawwVe0FyYDW7AIrx2Z2vV
-    I5YuvVNjOhrt6OwtSD1VnnWCITaLh8LwmlUu3NOWbudHUzKSe5MLXGEPo95BNKad
-    hl5yyQKCAQBNo0gMJtRnawMpdLfwewDJL1SdSR6S0ePS0r8/Qk4l1D5GrByyB183
-    yFY/0zhyra7nTt1NH9PlhJj3WFqBdZURSzUNP0iR5YuH9R9Twg5ihEqdB6/EOSOO
-    i521okTvl83q/ui9ecAMxUXr3NrZ+hHyUWmyRe/FLub6uCzg1a+vNauWpzXRZPgk
-    QCijh5oDdd7r3JIpKvtWNs01s7aHmDxZYjtDrmK7sDTtboUzm0QbpWXevUuV+aSF
-    +gDfZlRa3WFVHfisYSWGeYG6O7YOlfDoE7fJHGOu3QC8Ai6Wmtt8Wgd6VHokdHO8
-    xJPVZnCBvyt5up3Zz5hMr25S3VazdVfBAoIBAHVteqTGqWpKFxekGwR0RqE30wmN
-    iIEwFhgOZ8sQ+6ViZJZUR4Nn2fchn2jVwF8V8J1GrJbTknqzAwdXtO3FbgfmmyF2
-    9VbS/GgomXhA9vJkM4KK3Iwo/y/nE9hRhtzuVE0QPudz2fyfaDgnWjcNM59064tH
-    88361LVJm3ixyWSBD41UZ7NgWWJX1y2f073vErsfcPpavF5lhn1oSkQnOlgMJsnl
-    24qeuzAgTWu/2rFpIA2EK30Bgvsl3pjJxHwyNDAgklV7C783LIoAHi7VO7tzZ6iF
-    dmD5XLfcUZc3eaB7XehNQKBXDGLJeI5AFmjsHka5GUoitkU2PFrg/3+nJmg=
-    -----END RSA PRIVATE KEY-----
-  '';
-  "acme.test".cert = builtins.toFile "acme.test.cert" ''
-    -----BEGIN CERTIFICATE-----
-    MIIEoTCCAokCAgKaMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNVBAMMC1NuYWtlb2ls
-    IENBMCAXDTIwMDMyMjIyNTYxOFoYDzIxMjAwMjI3MjI1NjE4WjAUMRIwEAYDVQQD
-    DAlhY21lLnRlc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCWBBNm
-    Mp+zdofDQn33eTuMUCz6FVE9///McwCJSQ8pRg9NKXVPFL9s9uFbNKiibTSPhIuE
-    YYaFt36We9ODS68pvGySABN/DlyVubVk36DHgO7HCMtXfEjGl5Jj48rOznPzD+T4
-    AmH7M4/JfAfe63cL6iCnVL/kiGbNXdr/JT/qTTOkbGM3pk9FNcWvP3cjWk94KQnP
-    3SXu2P7a4Vz3G0zbQ1BfnZ/RjahKFwbx8p01lXO4ceRleStkiGi7nn+dHLaMqAV4
-    PcZBB9r2vA9atXJtDq0owyShrMH9SeTL3FxMjYslqt/GAcM72/3IUG+ZHhQzwHeQ
-    zzY0egQ20dpnaaaIwZnNMRCV/zHBjIcWuoEUhVFYRSvuuv87lCv2Ag3RPi7frscJ
-    7FVgArNs7Y/2HvlzPOMwygaRtfN71IxD+KSvESbAAeCvVfGHqJBiaA82TwBHd336
-    jYjtYlkxRhkBEue6FWv0E1e/nXSKplOpfyVzIvl8SPdJPgBv4fut969m3o1TbqIk
-    sFgCOsDaZK8f7C+RujGuBJLzFg+Q5bw0s0Rtuh3Oh8ikH5Jornc4iTRuP1zVgCCt
-    I0RH9MNOANetZQ2uV9Vn8zv4AR15TTrCLuxWFWJ/o4EPc6mApI2N4TpO4kfzQ+Lk
-    xa6BIUGvv3Zdvq6FWg+JU4U36qIYHpSTAGBIqQIDAQABMA0GCSqGSIb3DQEBCwUA
-    A4ICAQBCDs0V4z00Ze6Ask3qDOLAPo4k85QCfItlRZmwl2XbPZq7kbe13MqF2wxx
-    yiLalm6veK+ehU9MYN104hJZnuce5iEcZurk+8A+Pwn1Ifz+oWKVbUtUP3uV8Sm3
-    chktJ2H1bebXtNJE5TwvdHiUkXU9ywQt2FkxiTSl6+eac7JKEQ8lVN/o6uYxF5ds
-    +oIZplb7bv2XxsRCzq55F2tJX7fIzqXrSa+lQTnfLGmDVMAQX4TRB/lx0Gqd1a9y
-    qGfFnZ7xVyW97f6PiL8MoxPfd2I2JzrzGyP/igNbFOW0ho1OwfxVmvZeS7fQSc5e
-    +qu+nwnFfl0S4cHRif3G3zmz8Ryx9LM5TYkH41qePIHxoEO2sV0DgWJvbSjysV2S
-    EU2a31dJ0aZ+z6YtZVpHlujKMVzxVTrqj74trS4LvU5h/9hv7e1gjYdox1TO0HMK
-    mtDfgBevB21Tvxpz67Ijf31HvfTmCerKJEOjGnbYmyYpMeMNSONRDcToWk8sUwvi
-    OWa5jlUFRAxgXNM09vCTPi9aRUhcFqACqfAd6I1NqGVlfplLWrc7SWaSa+PsLfBf
-    4EOZfk8iEKBVeYXNjg+CcD8j8yk/oEs816/jpihIk8haCDRWYWGKyyGnwn6OQb8d
-    MdRO2b7Oi/AAmEF3jMlICqv286GIYK5qTKk2/CKHlOLPnsWEuA==
-    -----END CERTIFICATE-----
-  '';
+# Minica can provide a CA key and cert, plus a key
+# and cert for our fake CA server's Web Front End (WFE).
+{ minica, mkDerivation }:
+let
+  domain = "acme.test";
+
+  selfSignedCertData = mkDerivation {
+    name = "test-certs";
+    buildInputs = [ minica ];
+    phases = [ "buildPhase" "installPhase" ];
+
+    buildPhase = ''
+      mkdir ca
+      minica \
+        --ca-key ca/key.pem \
+        --ca-cert ca/cert.pem \
+        --domains ${domain}
+      chmod 600 ca/*
+      chmod 640 ${domain}/*.pem
+    '';
+
+    installPhase = ''
+      mkdir -p $out
+      mv ${domain} ca $out/
+    '';
+  };
+in {
+  inherit domain;
+  ca = {
+    cert = "${selfSignedCertData}/ca/cert.pem";
+    key = "${selfSignedCertData}/ca/key.pem";
+  };
+  "${domain}" = {
+    cert = "${selfSignedCertData}/${domain}/cert.pem";
+    key = "${selfSignedCertData}/${domain}/key.pem";
+  };
 }
diff --git a/nixos/tests/common/auto.nix b/nixos/tests/common/auto.nix
index 2c21a8d5167..da6b14e9f16 100644
--- a/nixos/tests/common/auto.nix
+++ b/nixos/tests/common/auto.nix
@@ -41,8 +41,8 @@ in
 
   config = mkIf cfg.enable {
 
-    services.xserver.displayManager.lightdm = {
-      enable = true;
+    services.xserver.displayManager = {
+      lightdm.enable = true;
       autoLogin = {
         enable = true;
         user = cfg.user;
diff --git a/nixos/tests/common/ec2.nix b/nixos/tests/common/ec2.nix
index ba087bb6009..502fe96231f 100644
--- a/nixos/tests/common/ec2.nix
+++ b/nixos/tests/common/ec2.nix
@@ -20,30 +20,44 @@ with pkgs.lib;
     in makeTest {
       name = "ec2-" + name;
       nodes = {};
-      testScript =
-        ''
-          my $imageDir = ($ENV{'TMPDIR'} // "/tmp") . "/vm-state-machine";
-          mkdir $imageDir, 0700;
-          my $diskImage = "$imageDir/machine.qcow2";
-          system("qemu-img create -f qcow2 -o backing_file=${image} $diskImage") == 0 or die;
-          system("qemu-img resize $diskImage 10G") == 0 or die;
+      testScript = ''
+        import os
+        import subprocess
 
-          # Note: we use net=169.0.0.0/8 rather than
-          # net=169.254.0.0/16 to prevent dhcpcd from getting horribly
-          # confused. (It would get a DHCP lease in the 169.254.*
-          # range, which it would then configure and prompty delete
-          # again when it deletes link-local addresses.) Ideally we'd
-          # turn off the DHCP server, but qemu does not have an option
-          # to do that.
-          my $startCommand = "qemu-kvm -m 1024";
-          $startCommand .= " -device virtio-net-pci,netdev=vlan0";
-          $startCommand .= " -netdev 'user,id=vlan0,net=169.0.0.0/8,guestfwd=tcp:169.254.169.254:80-cmd:${pkgs.micro-httpd}/bin/micro_httpd ${metaData}'";
-          $startCommand .= " -drive file=$diskImage,if=virtio,werror=report";
-          $startCommand .= " \$QEMU_OPTS";
+        image_dir = os.path.join(
+            os.environ.get("TMPDIR", tempfile.gettempdir()), "tmp", "vm-state-machine"
+        )
+        os.makedirs(image_dir, mode=0o700, exist_ok=True)
+        disk_image = os.path.join(image_dir, "machine.qcow2")
+        subprocess.check_call(
+            [
+                "qemu-img",
+                "create",
+                "-f",
+                "qcow2",
+                "-o",
+                "backing_file=${image}",
+                disk_image,
+            ]
+        )
+        subprocess.check_call(["qemu-img", "resize", disk_image, "10G"])
 
-          my $machine = createMachine({ startCommand => $startCommand });
+        # Note: we use net=169.0.0.0/8 rather than
+        # net=169.254.0.0/16 to prevent dhcpcd from getting horribly
+        # confused. (It would get a DHCP lease in the 169.254.*
+        # range, which it would then configure and prompty delete
+        # again when it deletes link-local addresses.) Ideally we'd
+        # turn off the DHCP server, but qemu does not have an option
+        # to do that.
+        start_command = (
+            "qemu-kvm -m 1024"
+            + " -device virtio-net-pci,netdev=vlan0"
+            + " -netdev 'user,id=vlan0,net=169.0.0.0/8,guestfwd=tcp:169.254.169.254:80-cmd:${pkgs.micro-httpd}/bin/micro_httpd ${metaData}'"
+            + f" -drive file={disk_image},if=virtio,werror=report"
+            + " $QEMU_OPTS"
+        )
 
-          ${script}
-        '';
+        machine = create_machine({"startCommand": start_command})
+      '' + script;
     };
 }
diff --git a/nixos/tests/containers-portforward.nix b/nixos/tests/containers-portforward.nix
index fc90e151bd9..1e2c2c6c374 100644
--- a/nixos/tests/containers-portforward.nix
+++ b/nixos/tests/containers-portforward.nix
@@ -5,7 +5,7 @@ let
   hostPort = 10080;
   containerIp = "192.168.0.100";
   containerPort = 80;
-in 
+in
 
 import ./make-test-python.nix ({ pkgs, ...} : {
   name = "containers-portforward";
diff --git a/nixos/tests/containers-reloadable.nix b/nixos/tests/containers-reloadable.nix
index 35aff91e85b..2d81f163938 100644
--- a/nixos/tests/containers-reloadable.nix
+++ b/nixos/tests/containers-reloadable.nix
@@ -9,13 +9,13 @@ let
       };
     };
 
-    # prevent make-test.nix to change IP
+    # prevent make-test-python.nix to change IP
     networking.interfaces = {
       eth1.ipv4.addresses = lib.mkOverride 0 [ ];
     };
   };
 in {
-  name = "cotnainers-reloadable";
+  name = "containers-reloadable";
   meta = with pkgs.stdenv.lib.maintainers; {
     maintainers = [ danbst ];
   };
diff --git a/nixos/tests/corerad.nix b/nixos/tests/corerad.nix
index 72ab255b191..37a1e90477a 100644
--- a/nixos/tests/corerad.nix
+++ b/nixos/tests/corerad.nix
@@ -1,7 +1,7 @@
 import ./make-test-python.nix (
   {
     nodes = {
-      router = {config, pkgs, ...}: { 
+      router = {config, pkgs, ...}: {
         config = {
           # This machine simulates a router with IPv6 forwarding and a static IPv6 address.
           boot.kernel.sysctl = {
diff --git a/nixos/tests/cri-o.nix b/nixos/tests/cri-o.nix
new file mode 100644
index 00000000000..f13f1bdacb6
--- /dev/null
+++ b/nixos/tests/cri-o.nix
@@ -0,0 +1,19 @@
+# This test runs CRI-O and verifies via critest
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "cri-o";
+  maintainers = with pkgs.stdenv.lib.maintainers; teams.podman.members;
+
+  nodes = {
+    crio = {
+      virtualisation.cri-o.enable = true;
+    };
+  };
+
+  testScript = ''
+    start_all()
+    crio.wait_for_unit("crio.service")
+    crio.succeed(
+        "critest --ginkgo.focus='Runtime info' --runtime-endpoint unix:///var/run/crio/crio.sock"
+    )
+  '';
+})
diff --git a/nixos/tests/docker-preloader.nix b/nixos/tests/docker-preloader.nix
deleted file mode 100644
index eeedec9a392..00000000000
--- a/nixos/tests/docker-preloader.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-import ./make-test.nix ({ pkgs, ...} : {
-  name = "docker-preloader";
-  meta = with pkgs.stdenv.lib.maintainers; {
-    maintainers = [ lewo ];
-  };
-
-  nodes = {
-    docker =
-      { pkgs, ... }:
-        {
-          virtualisation.docker.enable = true;
-          virtualisation.dockerPreloader.images = [ pkgs.dockerTools.examples.nix pkgs.dockerTools.examples.bash ];
-
-          services.openssh.enable = true;
-          services.openssh.permitRootLogin = "yes";
-          services.openssh.extraConfig = "PermitEmptyPasswords yes";
-          users.extraUsers.root.password = "";
-        };
-  };    
-  testScript = ''
-    startAll;
-    
-    $docker->waitForUnit("sockets.target");
-    $docker->succeed("docker run nix nix-store --version");
-    $docker->succeed("docker run bash bash --version");
-  '';
-})
diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix
index c48e5b07976..2543801ae8b 100644
--- a/nixos/tests/docker-tools.nix
+++ b/nixos/tests/docker-tools.nix
@@ -30,8 +30,45 @@ import ./make-test-python.nix ({ pkgs, ... }: {
         )
 
     docker.succeed("docker run --rm ${examples.bash.imageName} bash --version")
+    # Check imageTag attribute matches image
+    docker.succeed("docker images --format '{{.Tag}}' | grep -F '${examples.bash.imageTag}'")
     docker.succeed("docker rmi ${examples.bash.imageName}")
 
+    # The remaining combinations
+    with subtest("Ensure imageTag attribute matches image"):
+        docker.succeed(
+            "docker load --input='${examples.bashNoTag}'"
+        )
+        docker.succeed(
+            "docker images --format '{{.Tag}}' | grep -F '${examples.bashNoTag.imageTag}'"
+        )
+        docker.succeed("docker rmi ${examples.bashNoTag.imageName}:${examples.bashNoTag.imageTag}")
+
+        docker.succeed(
+            "docker load --input='${examples.bashNoTagLayered}'"
+        )
+        docker.succeed(
+            "docker images --format '{{.Tag}}' | grep -F '${examples.bashNoTagLayered.imageTag}'"
+        )
+        docker.succeed("docker rmi ${examples.bashNoTagLayered.imageName}:${examples.bashNoTagLayered.imageTag}")
+
+        docker.succeed(
+            "${examples.bashNoTagStreamLayered} | docker load"
+        )
+        docker.succeed(
+            "docker images --format '{{.Tag}}' | grep -F '${examples.bashNoTagStreamLayered.imageTag}'"
+        )
+        docker.succeed(
+            "docker rmi ${examples.bashNoTagStreamLayered.imageName}:${examples.bashNoTagStreamLayered.imageTag}"
+        )
+
+        docker.succeed(
+            "docker load --input='${examples.nixLayered}'"
+        )
+        docker.succeed("docker images --format '{{.Tag}}' | grep -F '${examples.nixLayered.imageTag}'")
+        docker.succeed("docker rmi ${examples.nixLayered.imageName}")
+
+
     with subtest(
         "Check if the nix store is correctly initialized by listing "
         "dependencies of the installed Nix binary"
@@ -42,6 +79,16 @@ import ./make-test-python.nix ({ pkgs, ... }: {
             "docker rmi ${examples.nix.imageName}",
         )
 
+    with subtest(
+        "Ensure (layered) nix store has correct permissions "
+        "and that the container starts when its process does not have uid 0"
+    ):
+        docker.succeed(
+            "docker load --input='${examples.bashLayeredWithUser}'",
+            "docker run -u somebody --rm ${examples.bashLayeredWithUser.imageName} ${pkgs.bash}/bin/bash -c 'test 555 == $(stat --format=%a /nix) && test 555 == $(stat --format=%a /nix/store)'",
+            "docker rmi ${examples.bashLayeredWithUser.imageName}",
+        )
+
     with subtest("The nix binary symlinks are intact"):
         docker.succeed(
             "docker load --input='${examples.nix}'",
@@ -90,13 +137,22 @@ import ./make-test-python.nix ({ pkgs, ... }: {
 
     with subtest("Ensure Docker images can use an unstable date"):
         docker.succeed(
-            "docker load --input='${examples.bash}'"
+            "docker load --input='${examples.unstableDate}'"
         )
         assert unix_time_second1 not in docker.succeed(
             "docker inspect ${examples.unstableDate.imageName} "
             + "| ${pkgs.jq}/bin/jq -r .[].Created"
         )
 
+    with subtest("Ensure Layered Docker images can use an unstable date"):
+        docker.succeed(
+            "docker load --input='${examples.unstableDateLayered}'"
+        )
+        assert unix_time_second1 not in docker.succeed(
+            "docker inspect ${examples.unstableDateLayered.imageName} "
+            + "| ${pkgs.jq}/bin/jq -r .[].Created"
+        )
+
     with subtest("Ensure Layered Docker images work"):
         docker.succeed(
             "docker load --input='${examples.layered-image}'",
@@ -178,5 +234,12 @@ import ./make-test-python.nix ({ pkgs, ... }: {
         # This check may be loosened to allow an *empty* store rather than *no* store.
         docker.succeed("docker run --rm no-store-paths ls /")
         docker.fail("docker run --rm no-store-paths ls /nix/store")
+
+    with subtest("Ensure buildLayeredImage does not change store path contents."):
+        docker.succeed(
+            "docker load --input='${pkgs.dockerTools.examples.filesInStore}'",
+            "docker run --rm file-in-store nix-store --verify --check-contents",
+            "docker run --rm file-in-store |& grep 'some data'",
+        )
   '';
 })
diff --git a/nixos/tests/dokuwiki.nix b/nixos/tests/dokuwiki.nix
index 4f00521c202..58069366ca3 100644
--- a/nixos/tests/dokuwiki.nix
+++ b/nixos/tests/dokuwiki.nix
@@ -33,24 +33,16 @@ let
 in {
   name = "dokuwiki";
   meta = with pkgs.stdenv.lib; {
-    maintainers = with maintainers; [ maintainers."1000101" ];
+    maintainers = with maintainers; [ _1000101 ];
   };
   machine = { ... }: {
     services.dokuwiki."site1.local" = {
       aclUse = false;
       superUser = "admin";
-      nginx = {
-        forceSSL = false;
-        enableACME = false;
-      };
     };
     services.dokuwiki."site2.local" = {
-      aclUse = true;
+      usersFile = "/var/lib/dokuwiki/site2.local/users.auth.php";
       superUser = "admin";
-      nginx = {
-        forceSSL = false;
-        enableACME = false;
-      };
       templates = [ template-bootstrap3 ];
       plugins = [ plugin-icalevents ];
     };
@@ -70,6 +62,15 @@ in {
     machine.wait_for_open_port(80)
 
     machine.succeed("curl -sSfL http://site1.local/ | grep 'DokuWiki'")
+    machine.fail("curl -sSfL 'http://site1.local/doku.php?do=login' | grep 'Login'")
+
     machine.succeed("curl -sSfL http://site2.local/ | grep 'DokuWiki'")
+    machine.succeed("curl -sSfL 'http://site2.local/doku.php?do=login' | grep 'Login'")
+
+    machine.succeed(
+        "echo 'admin:$2y$10$ijdBQMzSVV20SrKtCna8gue36vnsbVm2wItAXvdm876sshI4uwy6S:Admin:admin@example.test:user' >> /var/lib/dokuwiki/site2.local/users.auth.php",
+        "curl -sSfL -d 'u=admin&p=password' --cookie-jar cjar 'http://site2.local/doku.php?do=login'",
+        "curl -sSfL --cookie cjar --cookie-jar cjar 'http://site2.local/doku.php?do=login' | grep 'Logged in as: <bdi>Admin</bdi>'",
+    )
   '';
 })
diff --git a/nixos/tests/ec2.nix b/nixos/tests/ec2.nix
index 5a59d65e602..df067248016 100644
--- a/nixos/tests/ec2.nix
+++ b/nixos/tests/ec2.nix
@@ -3,58 +3,58 @@
   pkgs ? import ../.. { inherit system config; }
 }:
 
-with import ../lib/testing.nix { inherit system pkgs; };
+with import ../lib/testing-python.nix { inherit system pkgs; };
 with pkgs.lib;
 
 with import common/ec2.nix { inherit makeTest pkgs; };
 
 let
-  imageCfg =
-    (import ../lib/eval-config.nix {
-      inherit system;
-      modules = [
-        ../maintainers/scripts/ec2/amazon-image.nix
-        ../modules/testing/test-instrumentation.nix
-        ../modules/profiles/qemu-guest.nix
-        { ec2.hvm = true;
-
-          # Hack to make the partition resizing work in QEMU.
-          boot.initrd.postDeviceCommands = mkBefore
-            ''
-              ln -s vda /dev/xvda
-              ln -s vda1 /dev/xvda1
-            '';
-
-          # Needed by nixos-rebuild due to the lack of network
-          # access. Determined by trial and error.
-          system.extraDependencies =
-            with pkgs; (
-              [
-                # Needed for a nixos-rebuild.
-                busybox
-                stdenv
-                stdenvNoCC
-                mkinitcpio-nfs-utils
-                unionfs-fuse
-                cloud-utils
-                desktop-file-utils
-                texinfo
-                libxslt.bin
-                xorg.lndir
-
-                # These are used in the configure-from-userdata tests
-                # for EC2. Httpd and valgrind are requested by the
-                # configuration.
-                apacheHttpd apacheHttpd.doc apacheHttpd.man valgrind.doc
-              ]
-            );
-        }
-      ];
-    }).config;
+  imageCfg = (import ../lib/eval-config.nix {
+    inherit system;
+    modules = [
+      ../maintainers/scripts/ec2/amazon-image.nix
+      ../modules/testing/test-instrumentation.nix
+      ../modules/profiles/qemu-guest.nix
+      {
+        ec2.hvm = true;
+
+        # Hack to make the partition resizing work in QEMU.
+        boot.initrd.postDeviceCommands = mkBefore ''
+          ln -s vda /dev/xvda
+          ln -s vda1 /dev/xvda1
+        '';
+
+        # Needed by nixos-rebuild due to the lack of network
+        # access. Determined by trial and error.
+        system.extraDependencies = with pkgs; ( [
+          # Needed for a nixos-rebuild.
+          busybox
+          cloud-utils
+          desktop-file-utils
+          libxslt.bin
+          mkinitcpio-nfs-utils
+          stdenv
+          stdenvNoCC
+          texinfo
+          unionfs-fuse
+          xorg.lndir
+
+          # These are used in the configure-from-userdata tests
+          # for EC2. Httpd and valgrind are requested by the
+          # configuration.
+          apacheHttpd
+          apacheHttpd.doc
+          apacheHttpd.man
+          valgrind.doc
+        ]);
+      }
+    ];
+  }).config;
   image = "${imageCfg.system.build.amazonImage}/${imageCfg.amazonImage.name}.vhd";
 
   sshKeys = import ./ssh-keys.nix pkgs;
   snakeOilPrivateKey = sshKeys.snakeOilPrivateKey.text;
+  snakeOilPrivateKeyFile = pkgs.writeText "private-key" snakeOilPrivateKey;
   snakeOilPublicKey = sshKeys.snakeOilPublicKey;
 
 in {
@@ -68,43 +68,47 @@ in {
       SSH_HOST_ED25519_KEY:${replaceStrings ["\n"] ["|"] snakeOilPrivateKey}
     '';
     script = ''
-      $machine->start;
-      $machine->waitForFile("/etc/ec2-metadata/user-data");
-      $machine->waitForUnit("sshd.service");
+      machine.start()
+      machine.wait_for_file("/etc/ec2-metadata/user-data")
+      machine.wait_for_unit("sshd.service")
 
-      $machine->succeed("grep unknown /etc/ec2-metadata/ami-manifest-path");
+      machine.succeed("grep unknown /etc/ec2-metadata/ami-manifest-path")
 
       # We have no keys configured on the client side yet, so this should fail
-      $machine->fail("ssh -o BatchMode=yes localhost exit");
+      machine.fail("ssh -o BatchMode=yes localhost exit")
 
       # Let's install our client private key
-      $machine->succeed("mkdir -p ~/.ssh");
+      machine.succeed("mkdir -p ~/.ssh")
 
-      $machine->succeed("echo '${snakeOilPrivateKey}' > ~/.ssh/id_ed25519");
-      $machine->succeed("chmod 600 ~/.ssh/id_ed25519");
+      machine.copy_from_host_via_shell(
+          "${snakeOilPrivateKeyFile}", "~/.ssh/id_ed25519"
+      )
+      machine.succeed("chmod 600 ~/.ssh/id_ed25519")
 
       # We haven't configured the host key yet, so this should still fail
-      $machine->fail("ssh -o BatchMode=yes localhost exit");
+      machine.fail("ssh -o BatchMode=yes localhost exit")
 
       # Add the host key; ssh should finally succeed
-      $machine->succeed("echo localhost,127.0.0.1 ${snakeOilPublicKey} > ~/.ssh/known_hosts");
-      $machine->succeed("ssh -o BatchMode=yes localhost exit");
+      machine.succeed(
+          "echo localhost,127.0.0.1 ${snakeOilPublicKey} > ~/.ssh/known_hosts"
+      )
+      machine.succeed("ssh -o BatchMode=yes localhost exit")
 
       # Test whether the root disk was resized.
-      my $blocks = $machine->succeed("stat -c %b -f /");
-      my $bsize = $machine->succeed("stat -c %S -f /");
-      my $size = $blocks * $bsize;
-      die "wrong free space $size" if $size < 9.7 * 1024 * 1024 * 1024 || $size > 10 * 1024 * 1024 * 1024;
+      blocks, block_size = map(int, machine.succeed("stat -c %b:%S -f /").split(":"))
+      GB = 1024 ** 3
+      assert 9.7 * GB <= blocks * block_size <= 10 * GB
 
       # Just to make sure resizing is idempotent.
-      $machine->shutdown;
-      $machine->start;
-      $machine->waitForFile("/etc/ec2-metadata/user-data");
+      machine.shutdown()
+      machine.start()
+      machine.wait_for_file("/etc/ec2-metadata/user-data")
     '';
   };
 
   boot-ec2-config = makeEc2Test {
     name         = "config-userdata";
+    meta.broken = true; # amazon-init wants to download from the internet while building the system
     inherit image;
     sshPublicKey = snakeOilPublicKey;
 
@@ -133,17 +137,17 @@ in {
       }
     '';
     script = ''
-      $machine->start;
+      machine.start()
 
       # amazon-init must succeed. if it fails, make the test fail
-      # immediately instead of timing out in waitForFile.
-      $machine->waitForUnit('amazon-init.service');
+      # immediately instead of timing out in wait_for_file.
+      machine.wait_for_unit("amazon-init.service")
 
-      $machine->waitForFile("/etc/testFile");
-      $machine->succeed("cat /etc/testFile | grep -q 'whoa'");
+      machine.wait_for_file("/etc/testFile")
+      assert "whoa" in machine.succeed("cat /etc/testFile")
 
-      $machine->waitForUnit("httpd.service");
-      $machine->succeed("curl http://localhost | grep Valgrind");
+      machine.wait_for_unit("httpd.service")
+      assert "Valgrind" in machine.succeed("curl http://localhost")
     '';
   };
 }
diff --git a/nixos/tests/firejail.nix b/nixos/tests/firejail.nix
new file mode 100644
index 00000000000..a723cb01664
--- /dev/null
+++ b/nixos/tests/firejail.nix
@@ -0,0 +1,82 @@
+import ./make-test-python.nix ({ pkgs, ...} : {
+  name = "firejail";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ sgo ];
+  };
+
+  nodes.machine = { ... }: {
+    imports = [ ./common/user-account.nix ];
+
+    programs.firejail = {
+      enable = true;
+      wrappedBinaries = {
+        bash-jailed  = "${pkgs.bash}/bin/bash";
+      };
+    };
+
+    systemd.services.setupFirejailTest = {
+      wantedBy = [ "multi-user.target" ];
+      before = [ "multi-user.target" ];
+
+      environment = {
+        HOME = "/home/alice";
+      };
+
+      unitConfig = {
+        type = "oneshot";
+        RemainAfterExit = true;
+        user = "alice";
+      };
+
+      script = ''
+        cd $HOME
+
+        mkdir .password-store && echo s3cret > .password-store/secret
+        mkdir my-secrets && echo s3cret > my-secrets/secret
+
+        echo publ1c > public
+
+        mkdir -p .config/firejail
+        echo 'blacklist ''${HOME}/my-secrets' > .config/firejail/globals.local
+      '';
+    };
+  };
+
+  testScript = ''
+    start_all()
+    machine.wait_for_unit("multi-user.target")
+
+    # Test path acl with wrapper
+    machine.succeed("sudo -u alice bash-jailed -c 'cat ~/public' | grep -q publ1c")
+    machine.fail(
+        "sudo -u alice bash-jailed -c 'cat ~/.password-store/secret' | grep -q s3cret"
+    )
+    machine.fail("sudo -u alice bash-jailed -c 'cat ~/my-secrets/secret' | grep -q s3cret")
+
+
+    # Test path acl with firejail executable
+    machine.succeed("sudo -u alice firejail -- bash -c 'cat ~/public' | grep -q publ1c")
+    machine.fail(
+        "sudo -u alice firejail -- bash -c 'cat ~/.password-store/secret' | grep -q s3cret"
+    )
+    machine.fail(
+        "sudo -u alice firejail -- bash -c 'cat ~/my-secrets/secret' | grep -q s3cret"
+    )
+
+    # Disabling profiles
+    machine.succeed(
+        "sudo -u alice bash -c 'firejail --noprofile -- cat ~/.password-store/secret' | grep -q s3cret"
+    )
+
+    # CVE-2020-17367
+    machine.fail(
+        "sudo -u alice firejail --private-tmp id --output=/tmp/vuln1 && cat /tmp/vuln1"
+    )
+
+    # CVE-2020-17368
+    machine.fail(
+        "sudo -u alice firejail --private-tmp --output=/tmp/foo 'bash -c $(id>/tmp/vuln2;echo id)' && cat /tmp/vuln2"
+    )
+  '';
+})
+
diff --git a/nixos/tests/gnome3-xorg.nix b/nixos/tests/gnome3-xorg.nix
index b59badcd5de..0d05c12384f 100644
--- a/nixos/tests/gnome3-xorg.nix
+++ b/nixos/tests/gnome3-xorg.nix
@@ -12,8 +12,9 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
 
       services.xserver.enable = true;
 
-      services.xserver.displayManager.gdm = {
-        enable = true;
+      services.xserver.displayManager = {
+        gdm.enable = true;
+        gdm.debug = true;
         autoLogin = {
           enable = true;
           user = user.name;
@@ -21,6 +22,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
       };
 
       services.xserver.desktopManager.gnome3.enable = true;
+      services.xserver.desktopManager.gnome3.debug = true;
       services.xserver.displayManager.defaultSession = "gnome-xorg";
 
       virtualisation.memorySize = 1024;
diff --git a/nixos/tests/gnome3.nix b/nixos/tests/gnome3.nix
index 17e72c5f651..7e301be49d1 100644
--- a/nixos/tests/gnome3.nix
+++ b/nixos/tests/gnome3.nix
@@ -11,8 +11,9 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
 
       services.xserver.enable = true;
 
-      services.xserver.displayManager.gdm = {
-        enable = true;
+      services.xserver.displayManager = {
+        gdm.enable = true;
+        gdm.debug = true;
         autoLogin = {
           enable = true;
           user = "alice";
@@ -20,6 +21,14 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
       };
 
       services.xserver.desktopManager.gnome3.enable = true;
+      services.xserver.desktopManager.gnome3.debug = true;
+
+      environment.systemPackages = [
+        (pkgs.makeAutostartItem {
+          name = "org.gnome.Terminal";
+          package = pkgs.gnome3.gnome-terminal;
+        })
+      ];
 
       virtualisation.memorySize = 1024;
     };
@@ -63,9 +72,6 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
           )
 
       with subtest("Open Gnome Terminal"):
-          machine.succeed(
-              "${gnomeTerminalCommand}"
-          )
           # correct output should be (true, '"gnome-terminal-server"')
           machine.wait_until_succeeds(
               "${wmClass} | grep -q 'gnome-terminal-server'"
diff --git a/nixos/tests/hardened.nix b/nixos/tests/hardened.nix
index 5ed0dfcf9ab..8d845de70e2 100644
--- a/nixos/tests/hardened.nix
+++ b/nixos/tests/hardened.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, latestKernel ? false, ... } : {
+import ./make-test-python.nix ({ pkgs, latestKernel ? false, ... } : {
   name = "hardened";
   meta = with pkgs.stdenv.lib.maintainers; {
     maintainers = [ joachifm ];
@@ -47,84 +47,88 @@ import ./make-test.nix ({ pkgs, latestKernel ? false, ... } : {
       };
     in
     ''
-      $machine->waitForUnit("multi-user.target");
+      machine.wait_for_unit("multi-user.target")
+
+
+      with subtest("AppArmor profiles are loaded"):
+          machine.succeed("systemctl status apparmor.service")
 
-      subtest "apparmor-loaded", sub {
-          $machine->succeed("systemctl status apparmor.service");
-      };
 
       # AppArmor securityfs
-      subtest "apparmor-securityfs", sub {
-          $machine->succeed("mountpoint -q /sys/kernel/security");
-          $machine->succeed("cat /sys/kernel/security/apparmor/profiles");
-      };
+      with subtest("AppArmor securityfs is mounted"):
+          machine.succeed("mountpoint -q /sys/kernel/security")
+          machine.succeed("cat /sys/kernel/security/apparmor/profiles")
+
 
       # Test loading out-of-tree modules
-      subtest "extra-module-packages", sub {
-          $machine->succeed("grep -Fq wireguard /proc/modules");
-      };
+      with subtest("Out-of-tree modules can be loaded"):
+          machine.succeed("grep -Fq wireguard /proc/modules")
+
 
       # Test hidepid
-      subtest "hidepid", sub {
-          $machine->succeed("grep -Fq hidepid=2 /proc/mounts");
+      with subtest("hidepid=2 option is applied and works"):
+          machine.succeed("grep -Fq hidepid=2 /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 ]");
-      };
+          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
-      subtest "lock-modules", sub {
+      with subtest("No more kernel modules can be loaded"):
           # note: this better a be module we normally wouldn't load ...
-          $machine->fail("modprobe dccp");
-      };
+          machine.fail("modprobe dccp")
+
 
       # Test userns
-      subtest "userns", sub {
-          $machine->succeed("unshare --user true");
-          $machine->fail("su -l alice -c 'unshare --user true'");
-      };
+      with subtest("User namespaces are restricted"):
+          machine.succeed("unshare --user true")
+          machine.fail("su -l alice -c 'unshare --user true'")
+
 
       # Test dmesg restriction
-      subtest "dmesg", sub {
-          $machine->fail("su -l alice -c dmesg");
-      };
+      with subtest("Regular users cannot access dmesg"):
+          machine.fail("su -l alice -c dmesg")
+
 
       # Test access to kcore
-      subtest "kcore", sub {
-          $machine->fail("cat /proc/kcore");
-      };
+      with subtest("Kcore is inaccessible as root"):
+          machine.fail("cat /proc/kcore")
+
 
       # Test deferred mount
-      subtest "mount", sub {
-        $machine->fail("mountpoint -q /efi"); # was deferred
-        $machine->execute("mkdir -p /efi");
-        $machine->succeed("mount /dev/disk/by-label/EFISYS /efi");
-        $machine->succeed("mountpoint -q /efi"); # now mounted
-      };
+      with subtest("Deferred mounts work"):
+          machine.fail("mountpoint -q /efi")  # was deferred
+          machine.execute("mkdir -p /efi")
+          machine.succeed("mount /dev/disk/by-label/EFISYS /efi")
+          machine.succeed("mountpoint -q /efi")  # now mounted
+
 
       # Test Nix dæmon usage
-      subtest "nix-daemon", sub {
-        $machine->fail("su -l nobody -s /bin/sh -c 'nix ping-store'");
-        $machine->succeed("su -l alice -c 'nix ping-store'") =~ "OK";
-      };
+      with subtest("nix-daemon cannot be used by all users"):
+          machine.fail("su -l nobody -s /bin/sh -c 'nix ping-store'")
+          machine.succeed("su -l alice -c 'nix ping-store'")
+
 
       # Test kernel image protection
-      subtest "kernelimage", sub {
-        $machine->fail("systemctl hibernate");
-        $machine->fail("systemctl kexec");
-      };
+      with subtest("The kernel image is protected"):
+          machine.fail("systemctl hibernate")
+          machine.fail("systemctl kexec")
 
-      # Test hardened memory allocator
-      sub runMallocTestProg {
-          my ($progName, $errorText) = @_;
-          my $text = "fatal allocator error: " . $errorText;
-          $machine->fail("${hardened-malloc-tests}/bin/" . $progName) =~ $text;
-      };
 
-      subtest "hardenedmalloc", sub {
-        runMallocTestProg("double_free_large", "invalid free");
-        runMallocTestProg("unaligned_free_small", "invalid unaligned free");
-        runMallocTestProg("write_after_free_small", "detected write after free");
-      };
+      # Test hardened memory allocator
+      def runMallocTestProg(prog_name, error_text):
+          text = "fatal allocator error: " + error_text
+          if not text in machine.fail(
+              "${hardened-malloc-tests}/bin/"
+              + prog_name
+              + " 2>&1"
+          ):
+              raise Exception("Hardened malloc does not work for {}".format(error_text))
+
+
+      with subtest("The hardened memory allocator works"):
+          runMallocTestProg("double_free_large", "invalid free")
+          runMallocTestProg("unaligned_free_small", "invalid unaligned free")
+          runMallocTestProg("write_after_free_small", "detected write after free")
     '';
 })
diff --git a/nixos/tests/hocker-fetchdocker/default.nix b/nixos/tests/hocker-fetchdocker/default.nix
index 4f30f01e403..978dbf310b1 100644
--- a/nixos/tests/hocker-fetchdocker/default.nix
+++ b/nixos/tests/hocker-fetchdocker/default.nix
@@ -1,15 +1,16 @@
-import ../make-test.nix ({ pkgs, ...} : {
+import ../make-test-python.nix ({ pkgs, ...} : {
   name = "test-hocker-fetchdocker";
   meta = with pkgs.stdenv.lib.maintainers; {
     maintainers = [ ixmatus ];
+    broken = true; # tries to download from registry-1.docker.io - how did this ever work?
   };
 
   machine = import ./machine.nix;
 
   testScript = ''
-    startAll;
+    start_all()
 
-    $machine->waitForUnit("sockets.target");
-    $machine->waitUntilSucceeds("docker run registry-1.docker.io/v2/library/hello-world:latest");
+    machine.wait_for_unit("sockets.target")
+    machine.wait_until_succeeds("docker run registry-1.docker.io/v2/library/hello-world:latest")
   '';
 })
diff --git a/nixos/tests/home-assistant.nix b/nixos/tests/home-assistant.nix
index 0d1fcedcd85..a93a28d877a 100644
--- a/nixos/tests/home-assistant.nix
+++ b/nixos/tests/home-assistant.nix
@@ -2,6 +2,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
 
 let
   configDir = "/var/lib/foobar";
+  mqttUsername = "homeassistant";
   mqttPassword = "secret";
 in {
   name = "home-assistant";
@@ -11,6 +12,15 @@ in {
 
   nodes.hass = { pkgs, ... }: {
     environment.systemPackages = with pkgs; [ mosquitto ];
+    services.mosquitto = {
+      enable = true;
+      users = {
+        "${mqttUsername}" = {
+          acl = [ "pattern readwrite #" ];
+          password = mqttPassword;
+        };
+      };
+    };
     services.home-assistant = {
       inherit configDir;
       enable = true;
@@ -23,8 +33,11 @@ in {
           elevation = 0;
         };
         frontend = {};
-        # uses embedded mqtt broker
-        mqtt.password = mqttPassword;
+        mqtt = {
+          broker = "127.0.0.1";
+          username = mqttUsername;
+          password = mqttPassword;
+        };
         binary_sensor = [{
           platform = "mqtt";
           state_topic = "home-assistant/test";
@@ -64,10 +77,10 @@ in {
     with subtest("Toggle a binary sensor using MQTT"):
         # wait for broker to become available
         hass.wait_until_succeeds(
-            "mosquitto_sub -V mqttv311 -t home-assistant/test -u homeassistant -P '${mqttPassword}' -W 1 -t '*'"
+            "mosquitto_sub -V mqttv311 -t home-assistant/test -u ${mqttUsername} -P '${mqttPassword}' -W 1 -t '*'"
         )
         hass.succeed(
-            "mosquitto_pub -V mqttv311 -t home-assistant/test -u homeassistant -P '${mqttPassword}' -m let_there_be_light"
+            "mosquitto_pub -V mqttv311 -t home-assistant/test -u ${mqttUsername} -P '${mqttPassword}' -m let_there_be_light"
         )
     with subtest("Print log to ease debugging"):
         output_log = hass.succeed("cat ${configDir}/home-assistant.log")
diff --git a/nixos/tests/hydra/common.nix b/nixos/tests/hydra/common.nix
index f612717dc96..312c52e889a 100644
--- a/nixos/tests/hydra/common.nix
+++ b/nixos/tests/hydra/common.nix
@@ -37,6 +37,7 @@
     };
     services.postfix.enable = true;
     nix = {
+      distributedBuilds = true;
       buildMachines = [{
         hostName = "localhost";
         systems = [ system ];
diff --git a/nixos/tests/ihatemoney.nix b/nixos/tests/ihatemoney.nix
index 7df0ea0b691..0451a450580 100644
--- a/nixos/tests/ihatemoney.nix
+++ b/nixos/tests/ihatemoney.nix
@@ -1,5 +1,11 @@
+{ system ? builtins.currentSystem,
+  config ? {},
+  pkgs ? import ../.. { inherit system config; }
+}:
+
 let
-  f = backend: import ./make-test-python.nix ({ pkgs, ... }: {
+  inherit (import ../lib/testing-python.nix { inherit system pkgs; }) makeTest;
+  f = backend: makeTest {
     name = "ihatemoney-${backend}";
     machine = { lib, ... }: {
       services.ihatemoney = {
@@ -24,9 +30,10 @@ let
     testScript = ''
       machine.wait_for_open_port(8000)
       machine.wait_for_unit("uwsgi.service")
+      machine.wait_until_succeeds("curl http://localhost:8000")
 
       assert '"yay"' in machine.succeed(
-          "curl -X POST http://localhost:8000/api/projects -d 'name=yay&id=yay&password=yay&contact_email=yay\@example.com'"
+          "curl -X POST http://localhost:8000/api/projects -d 'name=yay&id=yay&password=yay&contact_email=yay@example.com'"
       )
       owner, timestamp = machine.succeed(
           "stat --printf %U:%G___%Y /var/lib/ihatemoney/secret_key"
@@ -48,7 +55,7 @@ let
 
       assert "ihatemoney" in machine.succeed("curl http://localhost:8000")
     '';
-  });
+  };
 in {
   ihatemoney-sqlite = f "sqlite";
   ihatemoney-postgresql = f "postgresql";
diff --git a/nixos/tests/initrd-network-openvpn/default.nix b/nixos/tests/initrd-network-openvpn/default.nix
new file mode 100644
index 00000000000..bb4c41e6d70
--- /dev/null
+++ b/nixos/tests/initrd-network-openvpn/default.nix
@@ -0,0 +1,145 @@
+import ../make-test-python.nix ({ lib, ...}:
+
+{
+  name = "initrd-network-openvpn";
+
+  nodes =
+    let
+
+      # Inlining of the shared secret for the
+      # OpenVPN server and client
+      secretblock = ''
+        secret [inline]
+        <secret>
+        ${lib.readFile ./shared.key}
+        </secret>
+        '';
+
+    in
+    {
+
+      # Minimal test case to check a successful boot, even with invalid config
+      minimalboot =
+        { ... }:
+        {
+          boot.initrd.network = {
+            enable = true;
+            openvpn = {
+              enable = true;
+              configuration = "/dev/null";
+            };
+          };
+        };
+
+      # initrd VPN client
+      ovpnclient =
+        { ... }:
+        {
+          virtualisation.useBootLoader = true;
+          virtualisation.vlans = [ 1 ];
+
+          boot.initrd = {
+            # This command does not fork to keep the VM in the state where
+            # only the initramfs is loaded
+            preLVMCommands =
+            ''
+              /bin/nc -p 1234 -lke /bin/echo TESTVALUE
+            '';
+
+            network = {
+              enable = true;
+
+              # Work around udhcpc only getting a lease on eth0
+              postCommands = ''
+                /bin/ip addr add 192.168.1.2/24 dev eth1
+              '';
+
+              # Example configuration for OpenVPN
+              # This is the main reason for this test
+              openvpn = {
+                enable = true;
+                configuration = "${./initrd.ovpn}";
+              };
+            };
+          };
+        };
+
+      # VPN server and gateway for ovpnclient between vlan 1 and 2
+      ovpnserver =
+        { ... }:
+        {
+          virtualisation.vlans = [ 1 2 ];
+
+          # Enable NAT and forward port 12345 to port 1234
+          networking.nat = {
+            enable = true;
+            internalInterfaces = [ "tun0" ];
+            externalInterface = "eth2";
+            forwardPorts = [ { destination = "10.8.0.2:1234";
+                               sourcePort = 12345; } ];
+          };
+
+          # Trust tun0 and allow the VPN Server to be reached
+          networking.firewall = {
+            trustedInterfaces = [ "tun0" ];
+            allowedUDPPorts = [ 1194 ];
+          };
+
+          # Minimal OpenVPN server configuration
+          services.openvpn.servers.testserver =
+          {
+            config = ''
+              dev tun0
+              ifconfig 10.8.0.1 10.8.0.2
+              ${secretblock}
+            '';
+          };
+        };
+
+      # Client that resides in the "external" VLAN
+      testclient =
+        { ... }:
+        {
+          virtualisation.vlans = [ 2 ];
+        };
+  };
+
+
+  testScript =
+    ''
+      # Minimal test case, checks whether enabling (with invalid config) harms
+      # the boot process
+      with subtest("Check for successful boot with broken openvpn config"):
+          minimalboot.start()
+          # If we get to multi-user.target, we booted successfully
+          minimalboot.wait_for_unit("multi-user.target")
+          minimalboot.shutdown()
+
+      # Elaborated test case where the ovpnclient (where this module is used)
+      # can be reached by testclient only over ovpnserver.
+      # This is an indirect test for success.
+      with subtest("Check for connection from initrd VPN client, config as file"):
+          ovpnserver.start()
+          testclient.start()
+          ovpnclient.start()
+
+          # Wait until the OpenVPN Server is available
+          ovpnserver.wait_for_unit("openvpn-testserver.service")
+          ovpnserver.succeed("ping -c 1 10.8.0.1")
+
+          # Wait for the client to connect
+          ovpnserver.wait_until_succeeds("ping -c 1 10.8.0.2")
+
+          # Wait until the testclient has network
+          testclient.wait_for_unit("network.target")
+
+          # Check that ovpnclient is reachable over vlan 1
+          ovpnserver.succeed("nc -w 2 192.168.1.2 1234 | grep -q TESTVALUE")
+
+          # Check that ovpnclient is reachable over tun0
+          ovpnserver.succeed("nc -w 2 10.8.0.2 1234 | grep -q TESTVALUE")
+
+          # Check that ovpnclient is reachable from testclient over the gateway
+          testclient.succeed("nc -w 2 192.168.2.3 12345 | grep -q TESTVALUE")
+    '';
+})
diff --git a/nixos/tests/initrd-network-openvpn/initrd.ovpn b/nixos/tests/initrd-network-openvpn/initrd.ovpn
new file mode 100644
index 00000000000..5926a48af00
--- /dev/null
+++ b/nixos/tests/initrd-network-openvpn/initrd.ovpn
@@ -0,0 +1,29 @@
+remote 192.168.1.3
+dev tun
+ifconfig 10.8.0.2 10.8.0.1
+# Only force VLAN 2 through the VPN
+route 192.168.2.0 255.255.255.0 10.8.0.1
+secret [inline]
+<secret>
+#
+# 2048 bit OpenVPN static key
+#
+-----BEGIN OpenVPN Static key V1-----
+553aabe853acdfe51cd6fcfea93dcbb0
+c8797deadd1187606b1ea8f2315eb5e6
+67c0d7e830f50df45686063b189d6c6b
+aab8bb3430cc78f7bb1f78628d5c3742
+0cef4f53a5acab2894905f4499f95d8e
+e69b7b6748b17016f89e19e91481a9fd
+bf8c10651f41a1d4fdf5f438925a6733
+13cec8f04701eb47b8f7ffc48bc3d7af
+65f07bce766015b87c3db4d668c655ff
+be5a69522a8e60ccb217f8521681b45d
+27c0b70bdfbfbb426c7646d80adf7482
+3ddac58b25cb1c1bb100de974478b4c6
+8b45a94261a2405e99810cb2b3abd49f
+21b3198ada87ff3c4e656a008e540a8d
+e7811584363597599cce2040a68ac00e
+f2125540e0f7f4adc37cb3f0d922eeb7
+-----END OpenVPN Static key V1-----
+</secret>
\ No newline at end of file
diff --git a/nixos/tests/initrd-network-openvpn/shared.key b/nixos/tests/initrd-network-openvpn/shared.key
new file mode 100644
index 00000000000..248a91a3e3d
--- /dev/null
+++ b/nixos/tests/initrd-network-openvpn/shared.key
@@ -0,0 +1,21 @@
+#
+# 2048 bit OpenVPN static key
+#
+-----BEGIN OpenVPN Static key V1-----
+553aabe853acdfe51cd6fcfea93dcbb0
+c8797deadd1187606b1ea8f2315eb5e6
+67c0d7e830f50df45686063b189d6c6b
+aab8bb3430cc78f7bb1f78628d5c3742
+0cef4f53a5acab2894905f4499f95d8e
+e69b7b6748b17016f89e19e91481a9fd
+bf8c10651f41a1d4fdf5f438925a6733
+13cec8f04701eb47b8f7ffc48bc3d7af
+65f07bce766015b87c3db4d668c655ff
+be5a69522a8e60ccb217f8521681b45d
+27c0b70bdfbfbb426c7646d80adf7482
+3ddac58b25cb1c1bb100de974478b4c6
+8b45a94261a2405e99810cb2b3abd49f
+21b3198ada87ff3c4e656a008e540a8d
+e7811584363597599cce2040a68ac00e
+f2125540e0f7f4adc37cb3f0d922eeb7
+-----END OpenVPN Static key V1-----
diff --git a/nixos/tests/installed-tests/default.nix b/nixos/tests/installed-tests/default.nix
index b6bdfea2277..889a00d4b56 100644
--- a/nixos/tests/installed-tests/default.nix
+++ b/nixos/tests/installed-tests/default.nix
@@ -50,6 +50,12 @@ let
 
             environment.systemPackages = with pkgs; [ gnome-desktop-testing ];
 
+            # The installed tests need to be added to the test VM’s closure.
+            # Otherwise, their dependencies might not actually be registered
+            # as valid paths in the VM’s Nix store database,
+            # and `nix-store --query` commands run as part of the tests
+            # (for example when building Flatpak runtimes) will fail.
+            environment.variables.TESTED_PACKAGE_INSTALLED_TESTS = "${tested.installedTests}/share";
           };
 
           testScript =
diff --git a/nixos/tests/installed-tests/flatpak.nix b/nixos/tests/installed-tests/flatpak.nix
index 091c9932662..8aeeaca90f6 100644
--- a/nixos/tests/installed-tests/flatpak.nix
+++ b/nixos/tests/installed-tests/flatpak.nix
@@ -5,14 +5,11 @@ makeInstalledTest {
   withX11 = true;
 
   testConfig = {
-    services.xserver.desktopManager.gnome3.enable = true; # TODO: figure out minimal environment where the tests work
-    # common/x11.nix enables the auto display manager (lightdm)
-    services.xserver.displayManager.gdm.enable = false;
-    services.gnome3.core-utilities.enable = false;
+    xdg.portal.enable = true;
     services.flatpak.enable = true;
-    environment.systemPackages = with pkgs; [ gnupg ostree python2 ];
+    environment.systemPackages = with pkgs; [ gnupg ostree python3 ];
     virtualisation.memorySize = 2047;
-    virtualisation.diskSize = 1024;
+    virtualisation.diskSize = 3072;
   };
 
   testRunnerFlags = "--timeout 3600";
diff --git a/nixos/tests/installed-tests/ibus.nix b/nixos/tests/installed-tests/ibus.nix
index af54b612b50..a4bc2a7d7de 100644
--- a/nixos/tests/installed-tests/ibus.nix
+++ b/nixos/tests/installed-tests/ibus.nix
@@ -5,16 +5,12 @@ makeInstalledTest {
 
   testConfig = {
     i18n.inputMethod.enabled = "ibus";
+    systemd.user.services.ibus-daemon = {
+      serviceConfig.ExecStart = "${pkgs.ibus}/bin/ibus-daemon --xim --verbose";
+      wantedBy = [ "graphical-session.target" ];
+      partOf = [ "graphical-session.target" ];
+    };
   };
 
-  preTestScript = ''
-    # ibus has ibus-desktop-testing-runner but it tries to manage desktop session so we just spawn ibus-daemon ourselves
-    machine.succeed("ibus-daemon --daemonize --verbose")
-  '';
-
   withX11 = true;
-
-  # TODO: ibus-daemon is currently crashing or something
-  # maybe make ibus systemd service that auto-restarts?
-  meta.broken = true;
 }
diff --git a/nixos/tests/installed-tests/ostree.nix b/nixos/tests/installed-tests/ostree.nix
index eef7cace54c..90e09ad4ddf 100644
--- a/nixos/tests/installed-tests/ostree.nix
+++ b/nixos/tests/installed-tests/ostree.nix
@@ -3,21 +3,10 @@
 makeInstalledTest {
   tested = pkgs.ostree;
 
-  # TODO: Wrap/patch the tests directly in the package
   testConfig = {
     environment.systemPackages = with pkgs; [
-      (python3.withPackages (p: with p; [ pyyaml ]))
       gnupg
       ostree
     ];
-
-    # for GJS tests
-    environment.variables.GI_TYPELIB_PATH = lib.makeSearchPath "lib/girepository-1.0" (with pkgs; [
-      gtk3
-      pango.out
-      ostree
-      gdk-pixbuf
-      atk
-    ]);
   };
 }
diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix
index eef9abebf9f..d80cfb4bd83 100644
--- a/nixos/tests/installer.nix
+++ b/nixos/tests/installer.nix
@@ -64,7 +64,7 @@ let
   # a test script fragment `createPartitions', which must create
   # partitions and filesystems.
   testScriptFun = { bootLoader, createPartitions, grubVersion, grubDevice, grubUseEfi
-                  , grubIdentifier, preBootCommands, extraConfig
+                  , grubIdentifier, preBootCommands, postBootCommands, extraConfig
                   , testSpecialisationConfig
                   }:
     let iface = if grubVersion == 1 then "ide" else "virtio";
@@ -74,7 +74,7 @@ let
       throw "Non-EFI boot methods are only supported on i686 / x86_64"
     else ''
       def assemble_qemu_flags():
-          flags = "-cpu host"
+          flags = "-cpu max"
           ${if system == "x86_64-linux"
             then ''flags += " -m 768"''
             else ''flags += " -m 512 -enable-kvm -machine virt,gic-version=host"''
@@ -216,6 +216,7 @@ let
       machine = create_machine_named("boot-after-rebuild-switch")
       ${preBootCommands}
       machine.wait_for_unit("network.target")
+      ${postBootCommands}
       machine.shutdown()
 
       # Tests for validating clone configuration entries in grub menu
@@ -238,6 +239,7 @@ let
       with subtest("Set grub to boot the second configuration"):
           machine.succeed("grub-reboot 1")
 
+      ${postBootCommands}
       machine.shutdown()
 
       # Reboot Machine
@@ -252,12 +254,13 @@ let
       with subtest("We should find a file named /etc/gitconfig"):
           machine.succeed("test -e /etc/gitconfig")
 
+      ${postBootCommands}
       machine.shutdown()
     '';
 
 
   makeInstallerTest = name:
-    { createPartitions, preBootCommands ? "", extraConfig ? ""
+    { createPartitions, preBootCommands ? "", postBootCommands ? "", extraConfig ? ""
     , extraInstallerConfig ? {}
     , bootLoader ? "grub" # either "grub" or "systemd-boot"
     , grubVersion ? 2, grubDevice ? "/dev/vda", grubIdentifier ? "uuid", grubUseEfi ? false
@@ -282,7 +285,7 @@ let
           ];
 
           virtualisation.diskSize = 8 * 1024;
-          virtualisation.memorySize = 1024;
+          virtualisation.memorySize = 1536;
 
           # Use a small /dev/vdb as the root disk for the
           # installer. This ensures the target disk (/dev/vda) is
@@ -335,7 +338,7 @@ let
       };
 
       testScript = testScriptFun {
-        inherit bootLoader createPartitions preBootCommands
+        inherit bootLoader createPartitions preBootCommands postBootCommands
                 grubVersion grubDevice grubIdentifier grubUseEfi extraConfig
                 testSpecialisationConfig;
       };
@@ -552,16 +555,26 @@ in {
           + " mkpart primary 2048M -1s"  # PV2
           + " set 2 lvm on",
           "udevadm settle",
+          "sleep 1",
           "pvcreate /dev/vda1 /dev/vda2",
+          "sleep 1",
           "vgcreate MyVolGroup /dev/vda1 /dev/vda2",
+          "sleep 1",
           "lvcreate --size 1G --name swap MyVolGroup",
-          "lvcreate --size 2G --name nixos MyVolGroup",
+          "sleep 1",
+          "lvcreate --size 3G --name nixos MyVolGroup",
+          "sleep 1",
           "mkswap -f /dev/MyVolGroup/swap -L swap",
           "swapon -L swap",
           "mkfs.xfs -L nixos /dev/MyVolGroup/nixos",
           "mount LABEL=nixos /mnt",
       )
     '';
+    postBootCommands = ''
+      assert "loaded active" in machine.succeed(
+          "systemctl list-units 'lvm2-pvscan@*' -ql --no-legend | tee /dev/stderr"
+      )
+    '';
   };
 
   # Boot off an encrypted root partition with the default LUKS header format
@@ -620,10 +633,10 @@ in {
           + " mklabel msdos"
           + " mkpart primary ext2 1M 100MB"  # /boot
           + " mkpart extended 100M -1s"
-          + " mkpart logical 102M 2102M"  # md0 (root), first device
-          + " mkpart logical 2103M 4103M"  # md0 (root), second device
-          + " mkpart logical 4104M 4360M"  # md1 (swap), first device
-          + " mkpart logical 4361M 4617M",  # md1 (swap), second device
+          + " mkpart logical 102M 3102M"  # md0 (root), first device
+          + " mkpart logical 3103M 6103M"  # md0 (root), second device
+          + " mkpart logical 6104M 6360M"  # md1 (swap), first device
+          + " mkpart logical 6361M 6617M",  # md1 (swap), second device
           "udevadm settle",
           "ls -l /dev/vda* >&2",
           "cat /proc/partitions >&2",
@@ -786,7 +799,7 @@ in {
           "btrfs subvol create /mnt/badpath/boot",
           "btrfs subvol create /mnt/nixos",
           "btrfs subvol set-default "
-          + "$(btrfs subvol list /mnt | grep 'nixos' | awk '{print \$2}') /mnt",
+          + "$(btrfs subvol list /mnt | grep 'nixos' | awk '{print $2}') /mnt",
           "umount /mnt",
           "mount -o defaults LABEL=root /mnt",
           "mkdir -p /mnt/badpath/boot",  # Help ensure the detection mechanism
diff --git a/nixos/tests/jitsi-meet.nix b/nixos/tests/jitsi-meet.nix
new file mode 100644
index 00000000000..42762dfdad8
--- /dev/null
+++ b/nixos/tests/jitsi-meet.nix
@@ -0,0 +1,55 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "jitsi-meet";
+  meta = with pkgs.stdenv.lib; {
+    maintainers = teams.jitsi.members;
+  };
+
+  nodes = {
+    client = { nodes, pkgs, ... }: {
+    };
+    server = { config, pkgs, ... }: {
+      services.jitsi-meet = {
+        enable = true;
+        hostName = "server";
+      };
+      services.jitsi-videobridge.openFirewall = true;
+
+      networking.firewall.allowedTCPPorts = [ 80 443 ];
+
+      services.nginx.virtualHosts.server = {
+        enableACME = true;
+        forceSSL = true;
+      };
+
+      security.acme.email = "me@example.org";
+      security.acme.acceptTerms = true;
+      security.acme.server = "https://example.com"; # self-signed only
+    };
+  };
+
+  testScript = ''
+    server.wait_for_unit("jitsi-videobridge2.service")
+    server.wait_for_unit("jicofo.service")
+    server.wait_for_unit("nginx.service")
+    server.wait_for_unit("prosody.service")
+
+    server.wait_until_succeeds(
+        "journalctl -b -u jitsi-videobridge2 -o cat | grep -q 'Performed a successful health check'"
+    )
+    server.wait_until_succeeds(
+        "journalctl -b -u jicofo -o cat | grep -q 'connected .JID: focus@auth.server'"
+    )
+    server.wait_until_succeeds(
+        "journalctl -b -u prosody -o cat | grep -q 'Authenticated as focus@auth.server'"
+    )
+    server.wait_until_succeeds(
+        "journalctl -b -u prosody -o cat | grep -q 'focus.server:component: External component successfully authenticated'"
+    )
+    server.wait_until_succeeds(
+        "journalctl -b -u prosody -o cat | grep -q 'Authenticated as jvb@auth.server'"
+    )
+
+    client.wait_for_unit("network.target")
+    assert "<title>Jitsi Meet</title>" in client.succeed("curl -sSfkL http://server/")
+  '';
+})
diff --git a/nixos/tests/krb5/example-config.nix b/nixos/tests/krb5/example-config.nix
index be195b51393..e2e10a9fda8 100644
--- a/nixos/tests/krb5/example-config.nix
+++ b/nixos/tests/krb5/example-config.nix
@@ -18,7 +18,10 @@ import ../make-test-python.nix ({ pkgs, ...} : {
         realms = {
           "ATHENA.MIT.EDU" = {
             admin_server = "athena.mit.edu";
-            kdc = "athena.mit.edu";
+            kdc = [
+              "athena01.mit.edu"
+              "athena02.mit.edu"
+            ];
           };
         };
         domain_realm = {
@@ -65,7 +68,8 @@ import ../make-test-python.nix ({ pkgs, ...} : {
       [realms]
         ATHENA.MIT.EDU = {
           admin_server = athena.mit.edu
-          kdc = athena.mit.edu
+          kdc = athena01.mit.edu
+          kdc = athena02.mit.edu
         }
 
       [domain_realm]
diff --git a/nixos/tests/kubernetes/base.nix b/nixos/tests/kubernetes/base.nix
index 86de9455e73..8cfac10b6dc 100644
--- a/nixos/tests/kubernetes/base.nix
+++ b/nixos/tests/kubernetes/base.nix
@@ -9,7 +9,6 @@ with pkgs.lib;
 let
   mkKubernetesBaseTest =
     { name, domain ? "my.zyx", test, machines
-    , pkgs ? import <nixpkgs> { inherit system; }
     , extraConfiguration ? null }:
     let
       masterName = head (filter (machineName: any (role: role == "master") machines.${machineName}.roles) (attrNames machines));
diff --git a/nixos/tests/leaps.nix b/nixos/tests/leaps.nix
index 65b475d734e..ac0c602d445 100644
--- a/nixos/tests/leaps.nix
+++ b/nixos/tests/leaps.nix
@@ -7,7 +7,7 @@ import ./make-test-python.nix ({ pkgs,  ... }:
   };
 
   nodes =
-    { 
+    {
       client = { };
 
       server =
diff --git a/nixos/tests/make-test.nix b/nixos/tests/make-test.nix
deleted file mode 100644
index cee5da93454..00000000000
--- a/nixos/tests/make-test.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-f: {
-  system ? builtins.currentSystem,
-  pkgs ? import ../.. { inherit system; config = {}; },
-  ...
-} @ args:
-
-with import ../lib/testing.nix { inherit system pkgs; };
-
-makeTest (if pkgs.lib.isFunction f then f (args // { inherit pkgs; inherit (pkgs) lib; }) else f)
diff --git a/nixos/tests/mathics.nix b/nixos/tests/mathics.nix
deleted file mode 100644
index fcbeeb18a72..00000000000
--- a/nixos/tests/mathics.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-import ./make-test.nix ({ pkgs, ... }: {
-  name = "mathics";
-  meta = with pkgs.stdenv.lib.maintainers; {
-    maintainers = [ benley ];
-  };
-
-  nodes = {
-    machine = { ... }: {
-      services.mathics.enable = true;
-      services.mathics.port = 8888;
-    };
-  };
-
-  testScript = ''
-    startAll;
-    $machine->waitForUnit("mathics.service");
-    $machine->waitForOpenPort(8888);
-    $machine->succeed("curl http://localhost:8888/");
-  '';
-})
diff --git a/nixos/tests/mesos.nix b/nixos/tests/mesos.nix
deleted file mode 100644
index 2e6dc0eda06..00000000000
--- a/nixos/tests/mesos.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-import ./make-test.nix ({ pkgs, ...} : rec {
-  name = "mesos";
-  meta = with pkgs.stdenv.lib.maintainers; {
-    maintainers = [ offline kamilchm cstrahan ];
-  };
-
-  nodes = {
-    master = { ... }: {
-      networking.firewall.enable = false;
-      services.zookeeper.enable = true;
-      services.mesos.master = {
-          enable = true;
-          zk = "zk://master:2181/mesos";
-      };
-    };
-
-    slave = { ... }: {
-      networking.firewall.enable = false;
-      networking.nat.enable = true;
-      virtualisation.docker.enable = true;
-      services.mesos = {
-        slave = {
-          enable = true;
-          master = "master:5050";
-          dockerRegistry = registry;
-          executorEnvironmentVariables = {
-            PATH = "/run/current-system/sw/bin";
-          };
-        };
-      };
-    };
-  };
-
-  simpleDocker = pkgs.dockerTools.buildImage {
-    name = "echo";
-    tag = "latest";
-    contents = [ pkgs.stdenv.shellPackage pkgs.coreutils ];
-    config = {
-      Env = [
-        # When shell=true, mesos invokes "sh -c '<cmd>'", so make sure "sh" is
-        # on the PATH.
-        "PATH=${pkgs.stdenv.shellPackage}/bin:${pkgs.coreutils}/bin"
-      ];
-      Entrypoint = [ "echo" ];
-    };
-  };
-
-  registry = pkgs.runCommand "registry" { } ''
-    mkdir -p $out
-    cp ${simpleDocker} $out/echo:latest.tar
-  '';
-
-  testFramework = pkgs.pythonPackages.buildPythonPackage {
-    name = "mesos-tests";
-    propagatedBuildInputs = [ pkgs.mesos ];
-    catchConflicts = false;
-    src = ./mesos_test.py;
-    phases = [ "installPhase" "fixupPhase" ];
-    installPhase = ''
-      install -Dvm 0755 $src $out/bin/mesos_test.py
-
-      echo "done" > test.result
-      tar czf $out/test.tar.gz test.result
-    '';
-  };
-
-  testScript =
-    ''
-      startAll;
-      $master->waitForUnit("zookeeper.service");
-      $master->waitForUnit("mesos-master.service");
-      $slave->waitForUnit("docker.service");
-      $slave->waitForUnit("mesos-slave.service");
-      $master->waitForOpenPort(2181);
-      $master->waitForOpenPort(5050);
-      $slave->waitForOpenPort(5051);
-
-      # is slave registered?
-      $master->waitUntilSucceeds("curl -s --fail http://master:5050/master/slaves".
-                                 " | grep -q \"\\\"hostname\\\":\\\"slave\\\"\"");
-
-      # try to run docker image
-      $master->succeed("${pkgs.mesos}/bin/mesos-execute --master=master:5050".
-                       " --resources=\"cpus:0.1;mem:32\" --name=simple-docker".
-                       " --containerizer=mesos --docker_image=echo:latest".
-                       " --shell=true --command=\"echo done\" | grep -q TASK_FINISHED");
-
-      # simple command with .tar.gz uri
-      $master->succeed("${testFramework}/bin/mesos_test.py master ".
-                       "${testFramework}/test.tar.gz");
-    '';
-})
diff --git a/nixos/tests/mesos_test.py b/nixos/tests/mesos_test.py
deleted file mode 100644
index be8bb32e49a..00000000000
--- a/nixos/tests/mesos_test.py
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/env python
-import uuid
-import time
-import subprocess
-import os
-
-import sys
-
-from mesos.interface import Scheduler
-from mesos.native import MesosSchedulerDriver
-from mesos.interface import mesos_pb2
-
-def log(msg):
-    process = subprocess.Popen("systemd-cat", stdin=subprocess.PIPE)
-    (out,err) = process.communicate(msg)
-
-class NixosTestScheduler(Scheduler):
-    def __init__(self):
-        self.master_ip = sys.argv[1]
-        self.download_uri = sys.argv[2]
-
-    def resourceOffers(self, driver, offers):
-        log("XXX got resource offer")
-
-        offer = offers[0]
-        task = self.new_task(offer)
-        uri = task.command.uris.add()
-        uri.value = self.download_uri
-        task.command.value = "cat test.result"
-        driver.launchTasks(offer.id, [task])
-
-    def statusUpdate(self, driver, update):
-        log("XXX status update")
-        if update.state == mesos_pb2.TASK_FAILED:
-            log("XXX test task failed with message: " + update.message)
-            driver.stop()
-            sys.exit(1)
-        elif update.state == mesos_pb2.TASK_FINISHED:
-            driver.stop()
-            sys.exit(0)
-
-    def new_task(self, offer):
-        task = mesos_pb2.TaskInfo()
-        id = uuid.uuid4()
-        task.task_id.value = str(id)
-        task.slave_id.value = offer.slave_id.value
-        task.name = "task {}".format(str(id))
-
-        cpus = task.resources.add()
-        cpus.name = "cpus"
-        cpus.type = mesos_pb2.Value.SCALAR
-        cpus.scalar.value = 0.1
-
-        mem = task.resources.add()
-        mem.name = "mem"
-        mem.type = mesos_pb2.Value.SCALAR
-        mem.scalar.value = 32
-
-        return task
-
-if __name__ == '__main__':
-    log("XXX framework started")
-
-    framework = mesos_pb2.FrameworkInfo()
-    framework.user = "root"
-    framework.name = "nixos-test-framework"
-    driver = MesosSchedulerDriver(
-        NixosTestScheduler(),
-        framework,
-        sys.argv[1] + ":5050"
-    )
-    driver.run()
diff --git a/nixos/tests/misc.nix b/nixos/tests/misc.nix
index 17260ce6406..ae150553273 100644
--- a/nixos/tests/misc.nix
+++ b/nixos/tests/misc.nix
@@ -20,12 +20,24 @@ import ./make-test-python.nix ({ pkgs, ...} : rec {
         { fsType = "tmpfs";
           options = [ "mode=1777" "noauto" ];
         };
+        # Tests https://discourse.nixos.org/t/how-to-make-a-derivations-executables-have-the-s-permission/8555
+        "/user-mount/point" = {
+          device = "/user-mount/source";
+          fsType = "none";
+          options = [ "bind" "rw" "user" "noauto" ];
+        };
+        "/user-mount/denied-point" = {
+          device = "/user-mount/denied-source";
+          fsType = "none";
+          options = [ "bind" "rw" "noauto" ];
+        };
       };
       systemd.automounts = singleton
         { wantedBy = [ "multi-user.target" ];
           where = "/tmp2";
         };
       users.users.sybil = { isNormalUser = true; group = "wheel"; };
+      users.users.alice = { isNormalUser = true; };
       security.sudo = { enable = true; wheelNeedsPassword = false; };
       boot.kernel.sysctl."vm.swappiness" = 1;
       boot.kernelParams = [ "vsyscall=emulate" ];
@@ -112,6 +124,26 @@ import ./make-test-python.nix ({ pkgs, ...} : rec {
           machine.succeed("touch /tmp2/x")
           machine.succeed("grep '/tmp2 tmpfs' /proc/mounts")
 
+      with subtest(
+          "Whether mounting by a user is possible with the `user` option in fstab (#95444)"
+      ):
+          machine.succeed("mkdir -p /user-mount/source")
+          machine.succeed("touch /user-mount/source/file")
+          machine.succeed("chmod -R a+Xr /user-mount/source")
+          machine.succeed("mkdir /user-mount/point")
+          machine.succeed("chown alice:users /user-mount/point")
+          machine.succeed("su - alice -c 'mount /user-mount/point'")
+          machine.succeed("su - alice -c 'ls /user-mount/point/file'")
+      with subtest(
+          "Whether mounting by a user is denied without the `user` option in  fstab"
+      ):
+          machine.succeed("mkdir -p /user-mount/denied-source")
+          machine.succeed("touch /user-mount/denied-source/file")
+          machine.succeed("chmod -R a+Xr /user-mount/denied-source")
+          machine.succeed("mkdir /user-mount/denied-point")
+          machine.succeed("chown alice:users /user-mount/denied-point")
+          machine.fail("su - alice -c 'mount /user-mount/denied-point'")
+
       with subtest("shell-vars"):
           machine.succeed('[ -n "$NIX_PATH" ]')
 
diff --git a/nixos/tests/molly-brown.nix b/nixos/tests/molly-brown.nix
new file mode 100644
index 00000000000..09ce42726ca
--- /dev/null
+++ b/nixos/tests/molly-brown.nix
@@ -0,0 +1,71 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+  let testString = "NixOS Gemini test successful";
+  in {
+
+    name = "molly-brown";
+    meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ ehmry ]; };
+
+    nodes = {
+
+      geminiServer = { config, pkgs, ... }:
+        let
+          inherit (config.networking) hostName;
+          cfg = config.services.molly-brown;
+        in {
+
+          environment.systemPackages = [
+            (pkgs.writeScriptBin "test-gemini" ''
+              #!${pkgs.python3}/bin/python
+
+              import socket
+              import ssl
+              import tempfile
+              import textwrap
+              import urllib.parse
+
+              url = "gemini://geminiServer/init.gmi"
+              parsed_url = urllib.parse.urlparse(url)
+
+              s = socket.create_connection((parsed_url.netloc, 1965))
+              context = ssl.SSLContext()
+              context.check_hostname = False
+              context.verify_mode = ssl.CERT_NONE
+              s = context.wrap_socket(s, server_hostname=parsed_url.netloc)
+              s.sendall((url + "\r\n").encode("UTF-8"))
+              fp = s.makefile("rb")
+              print(fp.readline().strip())
+              print(fp.readline().strip())
+              print(fp.readline().strip())
+            '')
+          ];
+
+          networking.firewall.allowedTCPPorts = [ cfg.settings.Port ];
+
+          services.molly-brown = {
+            enable = true;
+            docBase = "/tmp/docs";
+            certPath = "/tmp/cert.pem";
+            keyPath = "/tmp/key.pem";
+          };
+
+          systemd.services.molly-brown.preStart = ''
+            ${pkgs.openssl}/bin/openssl genrsa -out "/tmp/key.pem"
+            ${pkgs.openssl}/bin/openssl req -new \
+              -subj "/CN=${config.networking.hostName}" \
+              -key "/tmp/key.pem" -out /tmp/request.pem
+            ${pkgs.openssl}/bin/openssl x509 -req -days 3650 \
+              -in /tmp/request.pem -signkey "/tmp/key.pem" -out "/tmp/cert.pem"
+
+            mkdir -p "${cfg.settings.DocBase}"
+            echo "${testString}" > "${cfg.settings.DocBase}/test.gmi"
+          '';
+        };
+    };
+    testScript = ''
+      geminiServer.wait_for_unit("molly-brown")
+      geminiServer.wait_for_open_port(1965)
+      geminiServer.succeed("test-gemini")
+    '';
+
+  })
diff --git a/nixos/tests/mongodb.nix b/nixos/tests/mongodb.nix
index a637ec4bfc0..1a712388301 100644
--- a/nixos/tests/mongodb.nix
+++ b/nixos/tests/mongodb.nix
@@ -15,7 +15,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
       node.wait_for_open_port(27017)
 
       assert "hello" in node.succeed(
-          "mongo ${testQuery}"
+          "${pkg}/bin/mongo ${testQuery}"
       )
 
       node.execute(
@@ -36,6 +36,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
           mongodb-3_4
           mongodb-3_6
           mongodb-4_0
+          mongodb-4_2
         ];
       };
     };
@@ -44,8 +45,9 @@ import ./make-test-python.nix ({ pkgs, ... }:
       node.start()
     ''
       + runMongoDBTest pkgs.mongodb-3_4
-      + runMongoDBTest pkgs.mongodb-3_6 
+      + runMongoDBTest pkgs.mongodb-3_6
       + runMongoDBTest pkgs.mongodb-4_0
+      + runMongoDBTest pkgs.mongodb-4_2
       + ''
         node.shutdown()
       '';
diff --git a/nixos/tests/mysql/mysql.nix b/nixos/tests/mysql/mysql.nix
index 50e1c76e9fd..5437a286043 100644
--- a/nixos/tests/mysql/mysql.nix
+++ b/nixos/tests/mysql/mysql.nix
@@ -172,32 +172,32 @@ import ./../make-test-python.nix ({ pkgs, ...} : {
         "echo 'use testdb; select test_id from tests;' | sudo -u testuser mysql -u testuser -N | grep 42"
     )
 
-    # Check if TokuDB plugin works
+    # Check if RocksDB plugin works
     mariadb.succeed(
-        "echo 'use testdb; create table tokudb (test_id INT, PRIMARY KEY (test_id)) ENGINE = TokuDB;' | sudo -u testuser mysql -u testuser"
+        "echo 'use testdb; create table rocksdb (test_id INT, PRIMARY KEY (test_id)) ENGINE = RocksDB;' | sudo -u testuser mysql -u testuser"
     )
     mariadb.succeed(
-        "echo 'use testdb; insert into tokudb values (25);' | sudo -u testuser mysql -u testuser"
+        "echo 'use testdb; insert into rocksdb values (28);' | sudo -u testuser mysql -u testuser"
     )
     mariadb.succeed(
-        "echo 'use testdb; select test_id from tokudb;' | sudo -u testuser mysql -u testuser -N | grep 25"
+        "echo 'use testdb; select test_id from rocksdb;' | sudo -u testuser mysql -u testuser -N | grep 28"
     )
     mariadb.succeed(
-        "echo 'use testdb; drop table tokudb;' | sudo -u testuser mysql -u testuser"
+        "echo 'use testdb; drop table rocksdb;' | sudo -u testuser mysql -u testuser"
     )
-
-    # Check if RocksDB plugin works
+  '' + pkgs.stdenv.lib.optionalString pkgs.stdenv.isx86_64 ''
+    # Check if TokuDB plugin works
     mariadb.succeed(
-        "echo 'use testdb; create table rocksdb (test_id INT, PRIMARY KEY (test_id)) ENGINE = RocksDB;' | sudo -u testuser mysql -u testuser"
+        "echo 'use testdb; create table tokudb (test_id INT, PRIMARY KEY (test_id)) ENGINE = TokuDB;' | sudo -u testuser mysql -u testuser"
     )
     mariadb.succeed(
-        "echo 'use testdb; insert into rocksdb values (28);' | sudo -u testuser mysql -u testuser"
+        "echo 'use testdb; insert into tokudb values (25);' | sudo -u testuser mysql -u testuser"
     )
     mariadb.succeed(
-        "echo 'use testdb; select test_id from rocksdb;' | sudo -u testuser mysql -u testuser -N | grep 28"
+        "echo 'use testdb; select test_id from tokudb;' | sudo -u testuser mysql -u testuser -N | grep 25"
     )
     mariadb.succeed(
-        "echo 'use testdb; drop table rocksdb;' | sudo -u testuser mysql -u testuser"
+        "echo 'use testdb; drop table tokudb;' | sudo -u testuser mysql -u testuser"
     )
   '';
 })
diff --git a/nixos/tests/ncdns.nix b/nixos/tests/ncdns.nix
new file mode 100644
index 00000000000..507e20fe7cc
--- /dev/null
+++ b/nixos/tests/ncdns.nix
@@ -0,0 +1,77 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+let
+  fakeReply = pkgs.writeText "namecoin-reply.json" ''
+  { "error": null,
+    "id": 1,
+    "result": {
+      "address": "T31q8ucJ4dI1xzhxQ5QispfECld5c7Xw",
+      "expired": false,
+      "expires_in": 2248,
+      "height": 438155,
+      "name": "d/test",
+      "txid": "db61c0b2540ba0c1a2c8cc92af703a37002e7566ecea4dbf8727c7191421edfb",
+      "value": "{\"ip\": \"1.2.3.4\", \"email\": \"root@test.bit\",\"info\": \"Fake record\"}",
+      "vout": 0
+    }
+  }
+  '';
+in
+
+{
+  name = "ncdns";
+
+  nodes.server = { ... }: {
+    networking.nameservers = [ "127.0.0.1" ];
+
+    services.namecoind.rpc = {
+      address = "127.0.0.1";
+      user = "namecoin";
+      password = "secret";
+      port = 8332;
+    };
+
+    # Fake namecoin RPC server because we can't
+    # run a full node in a test.
+    systemd.services.namecoind = {
+      wantedBy = [ "multi-user.target" ];
+      script = ''
+        while true; do
+          echo -e "HTTP/1.1 200 OK\n\n $(<${fakeReply})\n" \
+            | ${pkgs.netcat}/bin/nc -N -l 127.0.0.1 8332
+        done
+      '';
+    };
+
+    services.ncdns = {
+      enable = true;
+      dnssec.enable = true;
+    };
+
+    services.pdns-recursor = {
+      enable = true;
+      dns.allowFrom = [ "127.0.0.0/8" ];
+      settings.loglevel = 8;
+      resolveNamecoin = true;
+    };
+
+    environment.systemPackages = [ pkgs.dnsutils ];
+
+  };
+
+  testScript = ''
+    with subtest("DNSSEC keys have been generated"):
+        server.wait_for_unit("ncdns")
+        server.wait_for_file("/var/lib/ncdns/bit.key")
+        server.wait_for_file("/var/lib/ncdns/bit-zone.key")
+
+    with subtest("DNSKEY bit record is present"):
+        server.wait_for_unit("pdns-recursor")
+        server.wait_for_open_port("53")
+        server.succeed("host -t DNSKEY bit")
+
+    with subtest("can resolve a .bit name"):
+        server.wait_for_unit("namecoind")
+        server.wait_for_open_port("8332")
+        assert "1.2.3.4" in server.succeed("host -t A test.bit")
+  '';
+})
diff --git a/nixos/tests/networking.nix b/nixos/tests/networking.nix
index 3d8ab761a44..83d4f6465b6 100644
--- a/nixos/tests/networking.nix
+++ b/nixos/tests/networking.nix
@@ -8,7 +8,9 @@ with import ../lib/testing-python.nix { inherit system pkgs; };
 with pkgs.lib;
 
 let
-  router = { config, pkgs, ... }:
+  qemu-flags = import ../lib/qemu-flags.nix { inherit pkgs; };
+
+  router = { config, pkgs, lib, ... }:
     with pkgs.lib;
     let
       vlanIfs = range 1 (length config.virtualisation.vlans);
@@ -30,17 +32,20 @@ let
       services.dhcpd4 = {
         enable = true;
         interfaces = map (n: "eth${toString n}") vlanIfs;
-        extraConfig = ''
-          authoritative;
-        '' + flip concatMapStrings vlanIfs (n: ''
+        extraConfig = flip concatMapStrings vlanIfs (n: ''
           subnet 192.168.${toString n}.0 netmask 255.255.255.0 {
             option routers 192.168.${toString n}.1;
-            # XXX: technically it's _not guaranteed_ that IP addresses will be
-            # issued from the first item in range onwards! We assume that in
-            # our tests however.
             range 192.168.${toString n}.2 192.168.${toString n}.254;
           }
-        '');
+        '')
+        ;
+        machines = flip map vlanIfs (vlan:
+          {
+            hostName = "client${toString vlan}";
+            ethernetAddress = qemu-flags.qemuNicMac vlan 1;
+            ipAddress = "192.168.${toString vlan}.2";
+          }
+        );
       };
       services.radvd = {
         enable = true;
diff --git a/nixos/tests/nextcloud/basic.nix b/nixos/tests/nextcloud/basic.nix
index a8fa0cae6f0..72fb020dca7 100644
--- a/nixos/tests/nextcloud/basic.nix
+++ b/nixos/tests/nextcloud/basic.nix
@@ -33,7 +33,6 @@ in {
 
       services.nextcloud = {
         enable = true;
-        nginx.enable = true;
         hostName = "nextcloud";
         config = {
           # Don't inherit adminuser since "root" is supposed to be the default
diff --git a/nixos/tests/nextcloud/with-mysql-and-memcached.nix b/nixos/tests/nextcloud/with-mysql-and-memcached.nix
index 8db630be893..bec3815a3e1 100644
--- a/nixos/tests/nextcloud/with-mysql-and-memcached.nix
+++ b/nixos/tests/nextcloud/with-mysql-and-memcached.nix
@@ -17,7 +17,6 @@ in {
       services.nextcloud = {
         enable = true;
         hostName = "nextcloud";
-        nginx.enable = true;
         https = true;
         caching = {
           apcu = true;
diff --git a/nixos/tests/nextcloud/with-postgresql-and-redis.nix b/nixos/tests/nextcloud/with-postgresql-and-redis.nix
index 95219cac9be..40a208115c3 100644
--- a/nixos/tests/nextcloud/with-postgresql-and-redis.nix
+++ b/nixos/tests/nextcloud/with-postgresql-and-redis.nix
@@ -17,7 +17,6 @@ in {
       services.nextcloud = {
         enable = true;
         hostName = "nextcloud";
-        nginx.enable = true;
         caching = {
           apcu = false;
           redis = true;
diff --git a/nixos/tests/nfs/kerberos.nix b/nixos/tests/nfs/kerberos.nix
index 1f2d0d453ea..078f0b7814c 100644
--- a/nixos/tests/nfs/kerberos.nix
+++ b/nixos/tests/nfs/kerberos.nix
@@ -3,7 +3,7 @@ import ../make-test-python.nix ({ pkgs, lib, ... }:
 with lib;
 
 let
-  krb5 = 
+  krb5 =
     { enable = true;
       domain_realm."nfs.test"   = "NFS.TEST";
       libdefaults.default_realm = "NFS.TEST";
@@ -31,7 +31,7 @@ in
 
 {
   name = "nfsv4-with-kerberos";
- 
+
   nodes = {
     client = { lib, ... }:
       { inherit krb5 users;
diff --git a/nixos/tests/openstack-image.nix b/nixos/tests/openstack-image.nix
index 97c9137fe1d..0b57dfb8e7e 100644
--- a/nixos/tests/openstack-image.nix
+++ b/nixos/tests/openstack-image.nix
@@ -3,30 +3,30 @@
   pkgs ? import ../.. { inherit system config; }
 }:
 
-with import ../lib/testing.nix { inherit system pkgs; };
+with import ../lib/testing-python.nix { inherit system pkgs; };
 with pkgs.lib;
 
 with import common/ec2.nix { inherit makeTest pkgs; };
 
 let
-  image =
-    (import ../lib/eval-config.nix {
-      inherit system;
-      modules = [
-        ../maintainers/scripts/openstack/openstack-image.nix
-        ../modules/testing/test-instrumentation.nix
-        ../modules/profiles/qemu-guest.nix
-        {
-          # Needed by nixos-rebuild due to lack of network access.
-          system.extraDependencies = with pkgs; [
-            stdenv
-          ];
-        }
-      ];
-    }).config.system.build.openstackImage + "/nixos.qcow2";
+  image = (import ../lib/eval-config.nix {
+    inherit system;
+    modules = [
+      ../maintainers/scripts/openstack/openstack-image.nix
+      ../modules/testing/test-instrumentation.nix
+      ../modules/profiles/qemu-guest.nix
+      {
+        # Needed by nixos-rebuild due to lack of network access.
+        system.extraDependencies = with pkgs; [
+          stdenv
+        ];
+      }
+    ];
+  }).config.system.build.openstackImage + "/nixos.qcow2";
 
   sshKeys = import ./ssh-keys.nix pkgs;
   snakeOilPrivateKey = sshKeys.snakeOilPrivateKey.text;
+  snakeOilPrivateKeyFile = pkgs.writeText "private-key" snakeOilPrivateKey;
   snakeOilPublicKey = sshKeys.snakeOilPublicKey;
 
 in {
@@ -39,32 +39,36 @@ in {
       SSH_HOST_ED25519_KEY:${replaceStrings ["\n"] ["|"] snakeOilPrivateKey}
     '';
     script = ''
-      $machine->start;
-      $machine->waitForFile("/etc/ec2-metadata/user-data");
-      $machine->waitForUnit("sshd.service");
+      machine.start()
+      machine.wait_for_file("/etc/ec2-metadata/user-data")
+      machine.wait_for_unit("sshd.service")
 
-      $machine->succeed("grep unknown /etc/ec2-metadata/ami-manifest-path");
+      machine.succeed("grep unknown /etc/ec2-metadata/ami-manifest-path")
 
       # We have no keys configured on the client side yet, so this should fail
-      $machine->fail("ssh -o BatchMode=yes localhost exit");
+      machine.fail("ssh -o BatchMode=yes localhost exit")
 
       # Let's install our client private key
-      $machine->succeed("mkdir -p ~/.ssh");
+      machine.succeed("mkdir -p ~/.ssh")
 
-      $machine->succeed("echo '${snakeOilPrivateKey}' > ~/.ssh/id_ed25519");
-      $machine->succeed("chmod 600 ~/.ssh/id_ed25519");
+      machine.copy_from_host_via_shell(
+          "${snakeOilPrivateKeyFile}", "~/.ssh/id_ed25519"
+      )
+      machine.succeed("chmod 600 ~/.ssh/id_ed25519")
 
       # We haven't configured the host key yet, so this should still fail
-      $machine->fail("ssh -o BatchMode=yes localhost exit");
+      machine.fail("ssh -o BatchMode=yes localhost exit")
 
       # Add the host key; ssh should finally succeed
-      $machine->succeed("echo localhost,127.0.0.1 ${snakeOilPublicKey} > ~/.ssh/known_hosts");
-      $machine->succeed("ssh -o BatchMode=yes localhost exit");
+      machine.succeed(
+          "echo localhost,127.0.0.1 ${snakeOilPublicKey} > ~/.ssh/known_hosts"
+      )
+      machine.succeed("ssh -o BatchMode=yes localhost exit")
 
       # Just to make sure resizing is idempotent.
-      $machine->shutdown;
-      $machine->start;
-      $machine->waitForFile("/etc/ec2-metadata/user-data");
+      machine.shutdown()
+      machine.start()
+      machine.wait_for_file("/etc/ec2-metadata/user-data")
     '';
   };
 
@@ -86,9 +90,9 @@ in {
       }
     '';
     script = ''
-      $machine->start;
-      $machine->waitForFile("/etc/testFile");
-      $machine->succeed("cat /etc/testFile | grep -q 'whoa'");
+      machine.start()
+      machine.wait_for_file("/etc/testFile")
+      assert "whoa" in machine.succeed("cat /etc/testFile")
     '';
   };
 }
diff --git a/nixos/tests/os-prober.nix b/nixos/tests/os-prober.nix
index 6a38f5ca531..be0235a4175 100644
--- a/nixos/tests/os-prober.nix
+++ b/nixos/tests/os-prober.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({pkgs, lib, ...}:
+import ./make-test-python.nix ({pkgs, lib, ...}:
 let
   # A filesystem image with a (presumably) bootable debian
   debianImage = pkgs.vmTools.diskImageFuns.debian9i386 {
@@ -34,9 +34,6 @@ let
     '';
   };
 
-  # options to add the disk to the test vm
-  QEMU_OPTS = "-drive index=2,file=${debianImage}/disk-image.qcow2,read-only,if=virtio";
-
   # a part of the configuration of the test vm
   simpleConfig = {
     boot.loader.grub = {
@@ -71,7 +68,7 @@ in {
   machine = { config, pkgs, ... }: (simpleConfig // {
       imports = [ ../modules/profiles/installation-device.nix
                   ../modules/profiles/base.nix ];
-      virtualisation.memorySize = 1024;
+      virtualisation.memorySize = 1300;
       # The test cannot access the network, so any packages
       # nixos-rebuild needs must be included in the VM.
       system.extraDependencies = with pkgs;
@@ -99,22 +96,28 @@ in {
 
   testScript = ''
     # hack to add the secondary disk
-    $machine->{startCommand} = "QEMU_OPTS=\"\$QEMU_OPTS \"${lib.escapeShellArg QEMU_OPTS} ".$machine->{startCommand};
+    os.environ[
+        "QEMU_OPTS"
+    ] = "-drive index=2,file=${debianImage}/disk-image.qcow2,read-only,if=virtio"
 
-    $machine->start;
-    $machine->succeed("udevadm settle");
-    $machine->waitForUnit("multi-user.target");
+    machine.start()
+    machine.succeed("udevadm settle")
+    machine.wait_for_unit("multi-user.target")
+    print(machine.succeed("lsblk"))
 
     # check that os-prober works standalone
-    $machine->succeed("${pkgs.os-prober}/bin/os-prober | grep /dev/vdb1");
+    machine.succeed(
+        "${pkgs.os-prober}/bin/os-prober | grep /dev/vdb1"
+    )
 
     # rebuild and test that debian is available in the grub menu
-    $machine->succeed("nixos-generate-config");
-    $machine->copyFileFromHost(
+    machine.succeed("nixos-generate-config")
+    machine.copy_from_host(
         "${configFile}",
-        "/etc/nixos/configuration.nix");
-    $machine->succeed("nixos-rebuild boot >&2");
+        "/etc/nixos/configuration.nix",
+    )
+    machine.succeed("nixos-rebuild boot >&2")
 
-    $machine->succeed("egrep 'menuentry.*debian' /boot/grub/grub.cfg");
+    machine.succeed("egrep 'menuentry.*debian' /boot/grub/grub.cfg")
   '';
 })
diff --git a/nixos/tests/pinnwand.nix b/nixos/tests/pinnwand.nix
new file mode 100644
index 00000000000..2204e74b2c2
--- /dev/null
+++ b/nixos/tests/pinnwand.nix
@@ -0,0 +1,86 @@
+import ./make-test-python.nix ({ pkgs, ...}:
+let
+  pythonEnv = pkgs.python3.withPackages (py: with py; [ appdirs toml ]);
+
+  port = 8000;
+  baseUrl = "http://server:${toString port}";
+
+  configureSteck = pkgs.writeScript "configure.py" ''
+    #!${pythonEnv.interpreter}
+    import appdirs
+    import toml
+    import os
+
+    CONFIG = {
+      "base": "${baseUrl}/",
+      "confirm": False,
+      "magic": True,
+      "ignore": True
+    }
+
+    os.makedirs(appdirs.user_config_dir('steck'))
+    with open(os.path.join(appdirs.user_config_dir('steck'), 'steck.toml'), "w") as fd:
+        toml.dump(CONFIG, fd)
+    '';
+in
+{
+  name = "pinnwand";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers =[ hexa ];
+  };
+
+  nodes = {
+    server = { config, ... }:
+    {
+      networking.firewall.allowedTCPPorts = [
+        port
+      ];
+
+      services.pinnwand = {
+        enable = true;
+        port = port;
+      };
+    };
+
+    client = { pkgs, ... }:
+    {
+      environment.systemPackages = [ pkgs.steck ];
+    };
+  };
+
+  testScript = ''
+    start_all()
+
+    server.wait_for_unit("pinnwand.service")
+    client.wait_for_unit("network.target")
+
+    # create steck.toml config file
+    client.succeed("${configureSteck}")
+
+    # wait until the server running pinnwand is reachable
+    client.wait_until_succeeds("ping -c1 server")
+
+    # make sure pinnwand is listening
+    server.wait_until_succeeds("ss -lnp | grep ${toString port}")
+
+    # send the contents of /etc/machine-id
+    response = client.succeed("steck paste /etc/machine-id")
+
+    # parse the steck response
+    raw_url = None
+    removal_link = None
+    for line in response.split("\n"):
+        if line.startswith("View link:"):
+            raw_url = f"${baseUrl}/raw/{line.split('/')[-1]}"
+        if line.startswith("Removal link:"):
+            removal_link = line.split(":", 1)[1]
+
+    # check whether paste matches what we sent
+    client.succeed(f"curl {raw_url} > /tmp/machine-id")
+    client.succeed("diff /tmp/machine-id /etc/machine-id")
+
+    # remove paste and check that it's not available any more
+    client.succeed(f"curl {removal_link}")
+    client.fail(f"curl --fail {raw_url}")
+  '';
+})
diff --git a/nixos/tests/plasma5.nix b/nixos/tests/plasma5.nix
index 2eccfdf47f5..5a603f8cbfb 100644
--- a/nixos/tests/plasma5.nix
+++ b/nixos/tests/plasma5.nix
@@ -14,7 +14,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
     services.xserver.displayManager.sddm.enable = true;
     services.xserver.displayManager.defaultSession = "plasma5";
     services.xserver.desktopManager.plasma5.enable = true;
-    services.xserver.displayManager.sddm.autoLogin = {
+    services.xserver.displayManager.autoLogin = {
       enable = true;
       user = "alice";
     };
diff --git a/nixos/tests/podman.nix b/nixos/tests/podman.nix
index 7a83689a49a..cd8c2b4308c 100644
--- a/nixos/tests/podman.nix
+++ b/nixos/tests/podman.nix
@@ -12,9 +12,6 @@ import ./make-test-python.nix (
         { pkgs, ... }:
         {
           virtualisation.podman.enable = true;
-          virtualisation.containers.users = [
-            "alice"
-          ];
 
           users.users.alice = {
             isNormalUser = true;
@@ -71,7 +68,7 @@ import ./make-test-python.nix (
           podman.succeed(su_cmd("tar cv --files-from /dev/null | podman import - scratchimg"))
           podman.succeed(
               su_cmd(
-                  "podman run --cgroup-manager=cgroupfs --runtime=crun -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
+                  "podman run --runtime=crun -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
               )
           )
           podman.succeed(su_cmd("podman ps | grep sleeping"))
diff --git a/nixos/tests/postfix-raise-smtpd-tls-security-level.nix b/nixos/tests/postfix-raise-smtpd-tls-security-level.nix
new file mode 100644
index 00000000000..5fad1fed75b
--- /dev/null
+++ b/nixos/tests/postfix-raise-smtpd-tls-security-level.nix
@@ -0,0 +1,41 @@
+import ./make-test-python.nix {
+  name = "postfix";
+
+  machine = { pkgs, ... }: {
+    imports = [ common/user-account.nix ];
+    services.postfix = {
+      enable = true;
+      enableSubmissions = true;
+      submissionsOptions = {
+        smtpd_tls_security_level = "none";
+      };
+    };
+
+    environment.systemPackages = let
+      checkConfig = pkgs.writeScriptBin "check-config" ''
+        #!${pkgs.python3.interpreter}
+        import sys
+
+        state = 1
+        success = False
+
+        with open("/etc/postfix/master.cf") as masterCf:
+          for line in masterCf:
+            if state == 1 and line.startswith("submissions"):
+              state = 2
+            elif state == 2 and line.startswith(" ") and "smtpd_tls_security_level=encrypt" in line:
+              success = True
+            elif state == 2 and not line.startswith(" "):
+              state == 3
+        if not success:
+          sys.exit(1)
+      '';
+
+    in [ checkConfig ];
+  };
+
+  testScript = ''
+    machine.wait_for_unit("postfix.service")
+    machine.succeed("check-config")
+  '';
+}
diff --git a/nixos/tests/postfix.nix b/nixos/tests/postfix.nix
new file mode 100644
index 00000000000..37ae76afec1
--- /dev/null
+++ b/nixos/tests/postfix.nix
@@ -0,0 +1,77 @@
+let
+  certs = import ./common/acme/server/snakeoil-certs.nix;
+  domain = certs.domain;
+in
+import ./make-test-python.nix {
+  name = "postfix";
+
+  machine = { pkgs, ... }: {
+    imports = [ common/user-account.nix ];
+    services.postfix = {
+      enable = true;
+      enableSubmission = true;
+      enableSubmissions = true;
+      sslCACert = certs.ca.cert;
+      sslCert = certs.${domain}.cert;
+      sslKey = certs.${domain}.key;
+      submissionsOptions = {
+          smtpd_sasl_auth_enable = "yes";
+          smtpd_client_restrictions = "permit";
+          milter_macro_daemon_name = "ORIGINATING";
+      };
+    };
+
+    security.pki.certificateFiles = [
+      certs.ca.cert
+    ];
+
+    networking.extraHosts = ''
+      127.0.0.1 ${domain}
+    '';
+
+    environment.systemPackages = let
+      sendTestMail = pkgs.writeScriptBin "send-testmail" ''
+        #!${pkgs.python3.interpreter}
+        import smtplib
+
+        with smtplib.SMTP('${domain}') as smtp:
+          smtp.sendmail('root@localhost', 'alice@localhost', 'Subject: Test\n\nTest data.')
+          smtp.quit()
+      '';
+
+      sendTestMailStarttls = pkgs.writeScriptBin "send-testmail-starttls" ''
+        #!${pkgs.python3.interpreter}
+        import smtplib
+        import ssl
+
+        ctx = ssl.create_default_context()
+
+        with smtplib.SMTP('${domain}') as smtp:
+          smtp.ehlo()
+          smtp.starttls(context=ctx)
+          smtp.ehlo()
+          smtp.sendmail('root@localhost', 'alice@localhost', 'Subject: Test STARTTLS\n\nTest data.')
+          smtp.quit()
+      '';
+
+      sendTestMailSmtps = pkgs.writeScriptBin "send-testmail-smtps" ''
+        #!${pkgs.python3.interpreter}
+        import smtplib
+        import ssl
+
+        ctx = ssl.create_default_context()
+
+        with smtplib.SMTP_SSL(host='${domain}', context=ctx) as smtp:
+          smtp.sendmail('root@localhost', 'alice@localhost', 'Subject: Test SMTPS\n\nTest data.')
+          smtp.quit()
+      '';
+    in [ sendTestMail sendTestMailStarttls sendTestMailSmtps ];
+  };
+
+  testScript = ''
+    machine.wait_for_unit("postfix.service")
+    machine.succeed("send-testmail")
+    machine.succeed("send-testmail-starttls")
+    machine.succeed("send-testmail-smtps")
+  '';
+}
diff --git a/nixos/tests/postgresql-wal-receiver.nix b/nixos/tests/postgresql-wal-receiver.nix
index 372dd9d8c1c..432b46234f9 100644
--- a/nixos/tests/postgresql-wal-receiver.nix
+++ b/nixos/tests/postgresql-wal-receiver.nix
@@ -1,99 +1,111 @@
-{ system ? builtins.currentSystem
-, config ? { }
-, pkgs ? import ../.. { inherit system config; } }:
-
-with import ../lib/testing.nix { inherit system pkgs; };
-with pkgs.lib;
-
 let
-  makePostgresqlWalReceiverTest = subTestName: postgresqlPackage: let
+  # Makes a test for a PostgreSQL package, given by name and looked up from `pkgs`.
+  makePostgresqlWalReceiverTest = postgresqlPackage:
+  {
+    name = postgresqlPackage;
+    value =
+      import ./make-test-python.nix ({ pkgs, lib, ... }: let
 
-  postgresqlDataDir = "/var/db/postgresql/test";
-  replicationUser = "wal_receiver_user";
-  replicationSlot = "wal_receiver_slot";
-  replicationConn = "postgresql://${replicationUser}@localhost";
-  baseBackupDir = "/tmp/pg_basebackup";
-  walBackupDir = "/tmp/pg_wal";
-  atLeast12 = versionAtLeast postgresqlPackage.version "12.0";
-  restoreCommand = ''
-    restore_command = 'cp ${walBackupDir}/%f %p'
-  '';
+        pkg = pkgs."${postgresqlPackage}";
+        postgresqlDataDir = "/var/lib/postgresql/${pkg.psqlSchema}";
+        replicationUser = "wal_receiver_user";
+        replicationSlot = "wal_receiver_slot";
+        replicationConn = "postgresql://${replicationUser}@localhost";
+        baseBackupDir = "/tmp/pg_basebackup";
+        walBackupDir = "/tmp/pg_wal";
+        atLeast12 = lib.versionAtLeast pkg.version "12.0";
 
-  recoveryFile = if atLeast12
-      then pkgs.writeTextDir "recovery.signal" ""
-      else pkgs.writeTextDir "recovery.conf" "${restoreCommand}";
+        recoveryFile = if atLeast12
+            then pkgs.writeTextDir "recovery.signal" ""
+            else pkgs.writeTextDir "recovery.conf" "restore_command = 'cp ${walBackupDir}/%f %p'";
 
-  in makeTest {
-    name = "postgresql-wal-receiver-${subTestName}";
-    meta.maintainers = with maintainers; [ pacien ];
+      in {
+        name = "postgresql-wal-receiver-${postgresqlPackage}";
+        meta.maintainers = with lib.maintainers; [ pacien ];
 
-    machine = { ... }: {
-      services.postgresql = {
-        package = postgresqlPackage;
-        enable = true;
-        dataDir = postgresqlDataDir;
-        extraConfig = ''
-          wal_level = archive # alias for replica on pg >= 9.6
-          max_wal_senders = 10
-          max_replication_slots = 10
-        '' + optionalString atLeast12 ''
-          ${restoreCommand}
-          recovery_end_command = 'touch recovery.done'
-        '';
-        authentication = ''
-          host replication ${replicationUser} all trust
-        '';
-        initialScript = pkgs.writeText "init.sql" ''
-          create user ${replicationUser} replication;
-          select * from pg_create_physical_replication_slot('${replicationSlot}');
-        '';
-      };
+        machine = { ... }: {
+          services.postgresql = {
+            package = pkg;
+            enable = true;
+            settings = lib.mkMerge [
+              {
+                wal_level = "archive"; # alias for replica on pg >= 9.6
+                max_wal_senders = 10;
+                max_replication_slots = 10;
+              }
+              (lib.mkIf atLeast12 {
+                restore_command = "cp ${walBackupDir}/%f %p";
+                recovery_end_command = "touch recovery.done";
+              })
+            ];
+            authentication = ''
+              host replication ${replicationUser} all trust
+            '';
+            initialScript = pkgs.writeText "init.sql" ''
+              create user ${replicationUser} replication;
+              select * from pg_create_physical_replication_slot('${replicationSlot}');
+            '';
+          };
 
-      services.postgresqlWalReceiver.receivers.main = {
-        inherit postgresqlPackage;
-        connection = replicationConn;
-        slot = replicationSlot;
-        directory = walBackupDir;
-      };
-      # This is only to speedup test, it isn't time racing. Service is set to autorestart always,
-      # default 60sec is fine for real system, but is too much for a test
-      systemd.services.postgresql-wal-receiver-main.serviceConfig.RestartSec = mkForce 5;
-    };
+          services.postgresqlWalReceiver.receivers.main = {
+            postgresqlPackage = pkg;
+            connection = replicationConn;
+            slot = replicationSlot;
+            directory = walBackupDir;
+          };
+          # This is only to speedup test, it isn't time racing. Service is set to autorestart always,
+          # default 60sec is fine for real system, but is too much for a test
+          systemd.services.postgresql-wal-receiver-main.serviceConfig.RestartSec = lib.mkForce 5;
+        };
 
-    testScript = ''
-      # make an initial base backup
-      $machine->waitForUnit('postgresql');
-      $machine->waitForUnit('postgresql-wal-receiver-main');
-      # WAL receiver healthchecks PG every 5 seconds, so let's be sure they have connected each other
-      # required only for 9.4
-      $machine->sleep(5);
-      $machine->succeed('${postgresqlPackage}/bin/pg_basebackup --dbname=${replicationConn} --pgdata=${baseBackupDir}');
+        testScript = ''
+          # make an initial base backup
+          machine.wait_for_unit("postgresql")
+          machine.wait_for_unit("postgresql-wal-receiver-main")
+          # WAL receiver healthchecks PG every 5 seconds, so let's be sure they have connected each other
+          # required only for 9.4
+          machine.sleep(5)
+          machine.succeed(
+              "${pkg}/bin/pg_basebackup --dbname=${replicationConn} --pgdata=${baseBackupDir}"
+          )
 
-      # create a dummy table with 100 records
-      $machine->succeed('sudo -u postgres psql --command="create table dummy as select * from generate_series(1, 100) as val;"');
+          # create a dummy table with 100 records
+          machine.succeed(
+              "sudo -u postgres psql --command='create table dummy as select * from generate_series(1, 100) as val;'"
+          )
 
-      # stop postgres and destroy data
-      $machine->systemctl('stop postgresql');
-      $machine->systemctl('stop postgresql-wal-receiver-main');
-      $machine->succeed('rm -r ${postgresqlDataDir}/{base,global,pg_*}');
+          # stop postgres and destroy data
+          machine.systemctl("stop postgresql")
+          machine.systemctl("stop postgresql-wal-receiver-main")
+          machine.succeed("rm -r ${postgresqlDataDir}/{base,global,pg_*}")
 
-      # restore the base backup
-      $machine->succeed('cp -r ${baseBackupDir}/* ${postgresqlDataDir} && chown postgres:postgres -R ${postgresqlDataDir}');
+          # restore the base backup
+          machine.succeed(
+              "cp -r ${baseBackupDir}/* ${postgresqlDataDir} && chown postgres:postgres -R ${postgresqlDataDir}"
+          )
 
-      # prepare WAL and recovery
-      $machine->succeed('chmod a+rX -R ${walBackupDir}');
-      $machine->execute('for part in ${walBackupDir}/*.partial; do mv $part ''${part%%.*}; done'); # make use of partial segments too
-      $machine->succeed('cp ${recoveryFile}/* ${postgresqlDataDir}/ && chmod 666 ${postgresqlDataDir}/recovery*');
+          # prepare WAL and recovery
+          machine.succeed("chmod a+rX -R ${walBackupDir}")
+          machine.execute(
+              "for part in ${walBackupDir}/*.partial; do mv $part ''${part%%.*}; done"
+          )  # make use of partial segments too
+          machine.succeed(
+              "cp ${recoveryFile}/* ${postgresqlDataDir}/ && chmod 666 ${postgresqlDataDir}/recovery*"
+          )
 
-      # replay WAL
-      $machine->systemctl('start postgresql');
-      $machine->waitForFile('${postgresqlDataDir}/recovery.done');
-      $machine->systemctl('restart postgresql');
-      $machine->waitForUnit('postgresql');
+          # replay WAL
+          machine.systemctl("start postgresql")
+          machine.wait_for_file("${postgresqlDataDir}/recovery.done")
+          machine.systemctl("restart postgresql")
+          machine.wait_for_unit("postgresql")
 
-      # check that our records have been restored
-      $machine->succeed('test $(sudo -u postgres psql --pset="pager=off" --tuples-only --command="select count(distinct val) from dummy;") -eq 100');
-    '';
-  };
+          # check that our records have been restored
+          machine.succeed(
+              "test $(sudo -u postgres psql --pset='pager=off' --tuples-only --command='select count(distinct val) from dummy;') -eq 100"
+          )
+        '';
+      });
+    };
 
-in mapAttrs makePostgresqlWalReceiverTest (import ../../pkgs/servers/sql/postgresql pkgs)
+# Maps the generic function over all attributes of PostgreSQL packages
+in builtins.listToAttrs (map makePostgresqlWalReceiverTest (builtins.attrNames (import ../../pkgs/servers/sql/postgresql { })))
diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix
index 75c4ca12db2..b912e3425e0 100644
--- a/nixos/tests/prometheus-exporters.nix
+++ b/nixos/tests/prometheus-exporters.nix
@@ -363,6 +363,31 @@ let
       '';
     };
 
+    modemmanager = {
+      exporterConfig = {
+        enable = true;
+        refreshRate = "10s";
+      };
+      metricProvider = {
+        # ModemManager is installed when NetworkManager is enabled. Ensure it is
+        # started and is wanted by NM and the exporter to start everything up
+        # in the right order.
+        networking.networkmanager.enable = true;
+        systemd.services.ModemManager = {
+          enable = true;
+          wantedBy = [ "NetworkManager.service" "prometheus-modemmanager-exporter.service" ];
+        };
+      };
+      exporterTest = ''
+        wait_for_unit("ModemManager.service")
+        wait_for_unit("prometheus-modemmanager-exporter.service")
+        wait_for_open_port(9539)
+        succeed(
+            "curl -sSf http://localhost:9539/metrics | grep -q 'modemmanager_info'"
+        )
+      '';
+    };
+
     nextcloud = {
       exporterConfig = {
         enable = true;
diff --git a/nixos/tests/prometheus.nix b/nixos/tests/prometheus.nix
index bce489168f9..af2aa66a552 100644
--- a/nixos/tests/prometheus.nix
+++ b/nixos/tests/prometheus.nix
@@ -158,7 +158,10 @@ in import ./make-test-python.nix {
 
     s3 = { pkgs, ... } : {
       # Minio requires at least 1GiB of free disk space to run.
-      virtualisation.diskSize = 2 * 1024;
+      virtualisation = {
+        diskSize = 2 * 1024;
+        memorySize = 1024;
+      };
       networking.firewall.allowedTCPPorts = [ minioPort ];
 
       services.minio = {
@@ -235,7 +238,7 @@ in import ./make-test-python.nix {
     # Test if the Thanos bucket command is able to retrieve blocks from the S3 bucket
     # and check if the blocks have the correct labels:
     store.succeed(
-        "thanos bucket ls "
+        "thanos tools bucket ls "
         + "--objstore.config-file=${nodes.store.config.services.thanos.store.objstore.config-file} "
         + "--output=json | "
         + "jq .thanos.labels.some_label | "
diff --git a/nixos/tests/pt2-clone.nix b/nixos/tests/pt2-clone.nix
new file mode 100644
index 00000000000..b502172e2ee
--- /dev/null
+++ b/nixos/tests/pt2-clone.nix
@@ -0,0 +1,35 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "pt2-clone";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ fgaz ];
+  };
+
+  machine = { config, pkgs, ... }: {
+    imports = [
+      ./common/x11.nix
+    ];
+
+    services.xserver.enable = true;
+    sound.enable = true;
+    environment.systemPackages = [ pkgs.pt2-clone ];
+  };
+
+  enableOCR = true;
+
+  testScript =
+    ''
+      machine.wait_for_x()
+      # Add a dummy sound card, or the program won't start
+      machine.execute("modprobe snd-dummy")
+
+      machine.execute("pt2-clone &")
+
+      machine.wait_for_window(r"ProTracker")
+      machine.sleep(5)
+      # One of the few words that actually get recognized
+      if "LENGTH" not in machine.get_screen_text():
+          raise Exception("Program did not start successfully")
+      machine.screenshot("screen")
+    '';
+})
+
diff --git a/nixos/tests/restic.nix b/nixos/tests/restic.nix
index 67bb7f1933d..dad5bdfff27 100644
--- a/nixos/tests/restic.nix
+++ b/nixos/tests/restic.nix
@@ -4,33 +4,50 @@ import ./make-test-python.nix (
     let
       password = "some_password";
       repository = "/tmp/restic-backup";
-      passwordFile = pkgs.writeText "password" "correcthorsebatterystaple";
+      rcloneRepository = "rclone:local:/tmp/restic-rclone-backup";
+
+      passwordFile = "${pkgs.writeText "password" "correcthorsebatterystaple"}";
+      initialize = true;
+      paths = [ "/opt" ];
+      pruneOpts = [
+        "--keep-daily 2"
+        "--keep-weekly 1"
+        "--keep-monthly 1"
+        "--keep-yearly 99"
+      ];
     in
       {
         name = "restic";
 
         meta = with pkgs.stdenv.lib.maintainers; {
-          maintainers = [ bbigras ];
+          maintainers = [ bbigras i077 ];
         };
 
         nodes = {
           server =
-            { ... }:
+            { pkgs, ... }:
               {
                 services.restic.backups = {
                   remotebackup = {
-                    inherit repository;
-                    passwordFile = "${passwordFile}";
-                    initialize = true;
-                    paths = [ "/opt" ];
-                    pruneOpts = [
-                      "--keep-daily 2"
-                      "--keep-weekly 1"
-                      "--keep-monthly 1"
-                      "--keep-yearly 99"
-                    ];
+                    inherit repository passwordFile initialize paths pruneOpts;
+                  };
+                  rclonebackup = {
+                    repository = rcloneRepository;
+                    rcloneConfig = {
+                      type = "local";
+                      one_file_system = true;
+                    };
+
+                    # This gets overridden by rcloneConfig.type
+                    rcloneConfigFile = pkgs.writeText "rclone.conf" ''
+                      [local]
+                      type=ftp
+                    '';
+                    inherit passwordFile initialize paths pruneOpts;
                   };
                 };
+
+                environment.sessionVariables.RCLONE_CONFIG_LOCAL_TYPE = "local";
               };
         };
 
@@ -38,25 +55,35 @@ import ./make-test-python.nix (
           server.start()
           server.wait_for_unit("dbus.socket")
           server.fail(
-              "${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots"
+              "${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots",
+              "${pkgs.restic}/bin/restic -r ${rcloneRepository} -p ${passwordFile} snapshots",
           )
           server.succeed(
               "mkdir -p /opt",
               "touch /opt/some_file",
+              "mkdir -p /tmp/restic-rclone-backup",
               "timedatectl set-time '2016-12-13 13:45'",
               "systemctl start restic-backups-remotebackup.service",
+              "systemctl start restic-backups-rclonebackup.service",
               '${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots -c | grep -e "^1 snapshot"',
+              '${pkgs.restic}/bin/restic -r ${rcloneRepository} -p ${passwordFile} snapshots -c | grep -e "^1 snapshot"',
               "timedatectl set-time '2017-12-13 13:45'",
               "systemctl start restic-backups-remotebackup.service",
+              "systemctl start restic-backups-rclonebackup.service",
               "timedatectl set-time '2018-12-13 13:45'",
               "systemctl start restic-backups-remotebackup.service",
+              "systemctl start restic-backups-rclonebackup.service",
               "timedatectl set-time '2018-12-14 13:45'",
               "systemctl start restic-backups-remotebackup.service",
+              "systemctl start restic-backups-rclonebackup.service",
               "timedatectl set-time '2018-12-15 13:45'",
               "systemctl start restic-backups-remotebackup.service",
+              "systemctl start restic-backups-rclonebackup.service",
               "timedatectl set-time '2018-12-16 13:45'",
               "systemctl start restic-backups-remotebackup.service",
+              "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"',
           )
         '';
       }
diff --git a/nixos/tests/robustirc-bridge.nix b/nixos/tests/robustirc-bridge.nix
new file mode 100644
index 00000000000..a5c22d73a34
--- /dev/null
+++ b/nixos/tests/robustirc-bridge.nix
@@ -0,0 +1,29 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+{
+  name = "robustirc-bridge";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ hax404 ];
+  };
+
+  nodes =
+    { bridge =
+      { services.robustirc-bridge = {
+          enable = true;
+          extraFlags = [
+            "-listen localhost:6667"
+            "-network example.com"
+          ];
+        };
+      };
+    };
+
+    testScript =
+    ''
+      start_all()
+
+      bridge.wait_for_unit("robustirc-bridge.service")
+      bridge.wait_for_open_port(1080)
+      bridge.wait_for_open_port(6667)
+    '';
+})
diff --git a/nixos/tests/sddm.nix b/nixos/tests/sddm.nix
index a145705250f..f9b961163c3 100644
--- a/nixos/tests/sddm.nix
+++ b/nixos/tests/sddm.nix
@@ -44,8 +44,8 @@ let
       machine = { ... }: {
         imports = [ ./common/user-account.nix ];
         services.xserver.enable = true;
-        services.xserver.displayManager.sddm = {
-          enable = true;
+        services.xserver.displayManager = {
+          sddm.enable = true;
           autoLogin = {
             enable = true;
             user = "alice";
diff --git a/nixos/tests/shadowsocks.nix b/nixos/tests/shadowsocks.nix
new file mode 100644
index 00000000000..6cb288f7611
--- /dev/null
+++ b/nixos/tests/shadowsocks.nix
@@ -0,0 +1,80 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
+    name = "shadowsocks";
+    meta = {
+      maintainers = with lib.maintainers; [ hmenke ];
+    };
+
+    nodes = {
+      server = {
+        boot.kernel.sysctl."net.ipv4.ip_forward" = "1";
+        networking.useDHCP = false;
+        networking.interfaces.eth1.ipv4.addresses = [
+          { address = "192.168.0.1"; prefixLength = 24; }
+        ];
+        networking.firewall.rejectPackets = true;
+        networking.firewall.allowedTCPPorts = [ 8488 ];
+        networking.firewall.allowedUDPPorts = [ 8488 ];
+        services.shadowsocks = {
+          enable = true;
+          encryptionMethod = "chacha20-ietf-poly1305";
+          password = "pa$$w0rd";
+          localAddress = [ "0.0.0.0" ];
+          port = 8488;
+          fastOpen = false;
+          mode = "tcp_and_udp";
+          plugin = "${pkgs.shadowsocks-v2ray-plugin}/bin/v2ray-plugin";
+          pluginOpts = "server;host=nixos.org";
+        };
+        services.nginx = {
+          enable = true;
+          virtualHosts.server = {
+            locations."/".root = pkgs.writeTextDir "index.html" "It works!";
+          };
+        };
+      };
+
+      client = {
+        networking.useDHCP = false;
+        networking.interfaces.eth1.ipv4.addresses = [
+          { address = "192.168.0.2"; prefixLength = 24; }
+        ];
+        systemd.services.shadowsocks-client = {
+          description = "connect to shadowsocks";
+          after = [ "network.target" ];
+          wantedBy = [ "multi-user.target" ];
+          path = with pkgs; [
+            shadowsocks-libev
+            shadowsocks-v2ray-plugin
+          ];
+          script = ''
+            exec ss-local \
+                -s 192.168.0.1 \
+                -p 8488 \
+                -l 1080 \
+                -k 'pa$$w0rd' \
+                -m chacha20-ietf-poly1305 \
+                -a nobody \
+                --plugin "${pkgs.shadowsocks-v2ray-plugin}/bin/v2ray-plugin" \
+                --plugin-opts "host=nixos.org"
+          '';
+        };
+      };
+    };
+
+    testScript = ''
+      start_all()
+
+      server.wait_for_unit("shadowsocks-libev.service")
+      client.wait_for_unit("shadowsocks-client.service")
+
+      client.fail(
+          "${pkgs.curl}/bin/curl 192.168.0.1:80"
+      )
+
+      msg = client.succeed(
+          "${pkgs.curl}/bin/curl --socks5 localhost:1080 192.168.0.1:80"
+      )
+      assert msg == "It works!", "Could not connect through shadowsocks"
+    '';
+  }
+)
diff --git a/nixos/tests/shattered-pixel-dungeon.nix b/nixos/tests/shattered-pixel-dungeon.nix
new file mode 100644
index 00000000000..cf6ee8db80b
--- /dev/null
+++ b/nixos/tests/shattered-pixel-dungeon.nix
@@ -0,0 +1,29 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "shattered-pixel-dungeon";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ fgaz ];
+  };
+
+  machine = { config, pkgs, ... }: {
+    imports = [
+      ./common/x11.nix
+    ];
+
+    services.xserver.enable = true;
+    environment.systemPackages = [ pkgs.shattered-pixel-dungeon ];
+  };
+
+  enableOCR = true;
+
+  testScript =
+    ''
+      machine.wait_for_x()
+      machine.execute("shattered-pixel-dungeon &")
+      machine.wait_for_window(r"Shattered Pixel Dungeon")
+      machine.sleep(5)
+      if "Enter" not in machine.get_screen_text():
+          raise Exception("Program did not start successfully")
+      machine.screenshot("screen")
+    '';
+})
+
diff --git a/nixos/tests/slurm.nix b/nixos/tests/slurm.nix
index d0e62d15437..a54c5d9db48 100644
--- a/nixos/tests/slurm.nix
+++ b/nixos/tests/slurm.nix
@@ -1,16 +1,52 @@
-import ./make-test-python.nix ({ lib, ... }:
+import ./make-test-python.nix ({ lib, pkgs, ... }:
 let
-    mungekey = "mungeverryweakkeybuteasytointegratoinatest";
-
     slurmconfig = {
-      controlMachine = "control";
-      nodeName = [ "node[1-3] CPUs=1 State=UNKNOWN" ];
-      partitionName = [ "debug Nodes=node[1-3] Default=YES MaxTime=INFINITE State=UP" ];
-      extraConfig = ''
-        AccountingStorageHost=dbd
-        AccountingStorageType=accounting_storage/slurmdbd
-      '';
+      services.slurm = {
+        controlMachine = "control";
+        nodeName = [ "node[1-3] CPUs=1 State=UNKNOWN" ];
+        partitionName = [ "debug Nodes=node[1-3] Default=YES MaxTime=INFINITE State=UP" ];
+        extraConfig = ''
+          AccountingStorageHost=dbd
+          AccountingStorageType=accounting_storage/slurmdbd
+        '';
+      };
+      environment.systemPackages = [ mpitest ];
+      networking.firewall.enable = false;
+      systemd.tmpfiles.rules = [
+        "f /etc/munge/munge.key 0400 munge munge - mungeverryweakkeybuteasytointegratoinatest"
+      ];
     };
+
+    mpitest = let
+      mpitestC = pkgs.writeText "mpitest.c" ''
+        #include <stdio.h>
+        #include <stdlib.h>
+        #include <mpi.h>
+
+        int
+        main (int argc, char *argv[])
+        {
+          int rank, size, length;
+          char name[512];
+
+          MPI_Init (&argc, &argv);
+          MPI_Comm_rank (MPI_COMM_WORLD, &rank);
+          MPI_Comm_size (MPI_COMM_WORLD, &size);
+          MPI_Get_processor_name (name, &length);
+
+          if ( rank == 0 ) printf("size=%d\n", size);
+
+          printf ("%s: hello world from process %d of %d\n", name, rank, size);
+
+          MPI_Finalize ();
+
+          return EXIT_SUCCESS;
+        }
+      '';
+    in pkgs.runCommandNoCC "mpitest" {} ''
+      mkdir -p $out/bin
+      ${pkgs.openmpi}/bin/mpicc ${mpitestC} -o $out/bin/mpitest
+    '';
 in {
   name = "slurm";
 
@@ -21,37 +57,40 @@ in {
     computeNode =
       { ...}:
       {
+        imports = [ slurmconfig ];
         # TODO slurmd port and slurmctld port should be configurations and
         # automatically allowed by the  firewall.
-        networking.firewall.enable = false;
         services.slurm = {
           client.enable = true;
-        } // slurmconfig;
+        };
       };
     in {
 
     control =
       { ...}:
       {
-        networking.firewall.enable = false;
+        imports = [ slurmconfig ];
         services.slurm = {
           server.enable = true;
-        } // slurmconfig;
+        };
       };
 
     submit =
       { ...}:
       {
-        networking.firewall.enable = false;
+        imports = [ slurmconfig ];
         services.slurm = {
           enableStools = true;
-        } // slurmconfig;
+        };
       };
 
     dbd =
       { pkgs, ... } :
       {
         networking.firewall.enable = false;
+        systemd.tmpfiles.rules = [
+          "f /etc/munge/munge.key 0400 munge munge - mungeverryweakkeybuteasytointegratoinatest"
+        ];
         services.slurm.dbdserver = {
           enable = true;
           storagePass = "password123";
@@ -87,24 +126,7 @@ in {
   ''
   start_all()
 
-  # Set up authentification across the cluster
-  for node in [submit, control, dbd, node1, node2, node3]:
-
-      node.wait_for_unit("default.target")
-
-      node.succeed("mkdir /etc/munge")
-      node.succeed(
-          "echo '${mungekey}' > /etc/munge/munge.key"
-      )
-      node.succeed("chmod 0400 /etc/munge/munge.key")
-      node.succeed("chown munge:munge /etc/munge/munge.key")
-      node.succeed("systemctl restart munged")
-
-      node.wait_for_unit("munged")
-
-
-  # Restart the services since they have probably failed due to the munge init
-  # failure
+  # Make sure DBD is up after DB initialzation
   with subtest("can_start_slurmdbd"):
       dbd.succeed("systemctl restart slurmdbd")
       dbd.wait_for_unit("slurmdbd.service")
@@ -137,5 +159,8 @@ in {
           # find the srun job from above in the database
           control.succeed("sleep 5")
           control.succeed("sacct | grep hostname")
+
+  with subtest("run_PMIx_mpitest"):
+      submit.succeed("srun -N 3 --mpi=pmix mpitest | grep size=3")
   '';
 })
diff --git a/nixos/tests/snapcast.nix b/nixos/tests/snapcast.nix
new file mode 100644
index 00000000000..92534f10281
--- /dev/null
+++ b/nixos/tests/snapcast.nix
@@ -0,0 +1,58 @@
+import ./make-test-python.nix ({ pkgs, ...} :
+
+let
+  port = 10004;
+  tcpPort = 10005;
+  httpPort = 10080;
+in {
+  name = "snapcast";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ hexa ];
+  };
+
+  nodes = {
+    server = {
+      services.snapserver = {
+        enable = true;
+        port = port;
+        tcp.port = tcpPort;
+        http.port = httpPort;
+        streams = {
+          mpd = {
+            type = "pipe";
+            location = "/run/snapserver/mpd";
+          };
+          bluetooth = {
+            type = "pipe";
+            location = "/run/snapserver/bluetooth";
+          };
+        };
+      };
+    };
+  };
+
+  testScript = ''
+    import json
+
+    get_rpc_version = {"id": "1", "jsonrpc": "2.0", "method": "Server.GetRPCVersion"}
+
+    start_all()
+
+    server.wait_for_unit("snapserver.service")
+    server.wait_until_succeeds("ss -ntl | grep -q ${toString port}")
+    server.wait_until_succeeds("ss -ntl | grep -q ${toString tcpPort}")
+    server.wait_until_succeeds("ss -ntl | grep -q ${toString httpPort}")
+
+    with subtest("check that pipes are created"):
+        server.succeed("test -p /run/snapserver/mpd")
+        server.succeed("test -p /run/snapserver/bluetooth")
+
+    with subtest("test tcp json-rpc"):
+        server.succeed(f"echo '{json.dumps(get_rpc_version)}' | nc -w 1 localhost ${toString tcpPort}")
+
+    with subtest("test http json-rpc"):
+        server.succeed(
+            "curl --fail http://localhost:${toString httpPort}/jsonrpc -d '{json.dumps(get_rpc_version)}'"
+        )
+  '';
+})
diff --git a/nixos/tests/sssd-ldap.nix b/nixos/tests/sssd-ldap.nix
new file mode 100644
index 00000000000..b68403a0102
--- /dev/null
+++ b/nixos/tests/sssd-ldap.nix
@@ -0,0 +1,78 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+  let
+    dbDomain = "example.org";
+    dbSuffix = "dc=example,dc=org";
+
+    ldapRootUser = "admin";
+    ldapRootPassword = "foobar";
+
+    testUser = "alice";
+  in
+  {
+    name = "sssd-ldap";
+
+    meta = with pkgs.stdenv.lib.maintainers; {
+      maintainers = [ bbigras ];
+    };
+
+    machine = { pkgs, ... }: {
+      services.openldap = {
+        enable = true;
+        rootdn = "cn=${ldapRootUser},${dbSuffix}";
+        rootpw = ldapRootPassword;
+        suffix = dbSuffix;
+        declarativeContents = ''
+          dn: ${dbSuffix}
+          objectClass: top
+          objectClass: dcObject
+          objectClass: organization
+          o: ${dbDomain}
+
+          dn: ou=posix,${dbSuffix}
+          objectClass: top
+          objectClass: organizationalUnit
+
+          dn: ou=accounts,ou=posix,${dbSuffix}
+          objectClass: top
+          objectClass: organizationalUnit
+
+          dn: uid=${testUser},ou=accounts,ou=posix,${dbSuffix}
+          objectClass: person
+          objectClass: posixAccount
+          # userPassword: somePasswordHash
+          homeDirectory: /home/${testUser}
+          uidNumber: 1234
+          gidNumber: 1234
+          cn: ""
+          sn: ""
+        '';
+      };
+
+      services.sssd = {
+        enable = true;
+        config = ''
+          [sssd]
+          config_file_version = 2
+          services = nss, pam, sudo
+          domains = ${dbDomain}
+
+          [domain/${dbDomain}]
+          auth_provider = ldap
+          id_provider = ldap
+          ldap_uri = ldap://127.0.0.1:389
+          ldap_search_base = ${dbSuffix}
+          ldap_default_bind_dn = cn=${ldapRootUser},${dbSuffix}
+          ldap_default_authtok_type = password
+          ldap_default_authtok = ${ldapRootPassword}
+        '';
+      };
+    };
+
+    testScript = ''
+      machine.start()
+      machine.wait_for_unit("openldap.service")
+      machine.wait_for_unit("sssd.service")
+      machine.succeed("getent passwd ${testUser}")
+    '';
+  }
+)
diff --git a/nixos/tests/sssd.nix b/nixos/tests/sssd.nix
new file mode 100644
index 00000000000..4c6ca86c74c
--- /dev/null
+++ b/nixos/tests/sssd.nix
@@ -0,0 +1,17 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+{
+  name = "sssd";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ bbigras ];
+  };
+  machine = { pkgs, ... }: {
+    services.sssd.enable = true;
+  };
+
+  testScript = ''
+      start_all()
+      machine.wait_for_unit("multi-user.target")
+      machine.wait_for_unit("sssd.service")
+    '';
+})
diff --git a/nixos/tests/syncthing-init.nix b/nixos/tests/syncthing-init.nix
index 9c8e0a3d087..0a01da52b68 100644
--- a/nixos/tests/syncthing-init.nix
+++ b/nixos/tests/syncthing-init.nix
@@ -24,9 +24,8 @@ in {
   testScript = ''
     machine.wait_for_unit("syncthing-init.service")
     config = machine.succeed("cat /var/lib/syncthing/.config/syncthing/config.xml")
-   
+
     assert "testFolder" in config
     assert "${testId}" in config
   '';
 })
-
diff --git a/nixos/tests/syncthing.nix b/nixos/tests/syncthing.nix
new file mode 100644
index 00000000000..9e2a8e01e3f
--- /dev/null
+++ b/nixos/tests/syncthing.nix
@@ -0,0 +1,65 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }: {
+  name = "syncthing";
+  meta.maintainers = with pkgs.stdenv.lib.maintainers; [ chkno ];
+
+  nodes = rec {
+    a = {
+      environment.systemPackages = with pkgs; [ curl libxml2 syncthing ];
+      services.syncthing = {
+        enable = true;
+        openDefaultPorts = true;
+      };
+    };
+    b = a;
+  };
+
+  testScript = ''
+    import json
+    import shlex
+
+    confdir = "/var/lib/syncthing/.config/syncthing"
+
+
+    def addPeer(host, name, deviceID):
+        APIKey = host.succeed(
+            "xmllint --xpath 'string(configuration/gui/apikey)' %s/config.xml" % confdir
+        ).strip()
+        oldConf = host.succeed(
+            "curl -Ss -H 'X-API-Key: %s' 127.0.0.1:8384/rest/system/config" % APIKey
+        )
+        conf = json.loads(oldConf)
+        conf["devices"].append({"deviceID": deviceID, "id": name})
+        conf["folders"].append(
+            {
+                "devices": [{"deviceID": deviceID}],
+                "id": "foo",
+                "path": "/var/lib/syncthing/foo",
+                "rescanIntervalS": 1,
+            }
+        )
+        newConf = json.dumps(conf)
+        host.succeed(
+            "curl -Ss -H 'X-API-Key: %s' 127.0.0.1:8384/rest/system/config -d %s"
+            % (APIKey, shlex.quote(newConf))
+        )
+
+
+    start_all()
+    a.wait_for_unit("syncthing.service")
+    b.wait_for_unit("syncthing.service")
+    a.wait_for_open_port(22000)
+    b.wait_for_open_port(22000)
+
+    aDeviceID = a.succeed("syncthing -home=%s -device-id" % confdir).strip()
+    bDeviceID = b.succeed("syncthing -home=%s -device-id" % confdir).strip()
+    addPeer(a, "b", bDeviceID)
+    addPeer(b, "a", aDeviceID)
+
+    a.wait_for_file("/var/lib/syncthing/foo")
+    b.wait_for_file("/var/lib/syncthing/foo")
+    a.succeed("echo a2b > /var/lib/syncthing/foo/a2b")
+    b.succeed("echo b2a > /var/lib/syncthing/foo/b2a")
+    a.wait_for_file("/var/lib/syncthing/foo/b2a")
+    b.wait_for_file("/var/lib/syncthing/foo/a2b")
+  '';
+})
diff --git a/nixos/tests/systemd-boot.nix b/nixos/tests/systemd-boot.nix
index eba4729d6de..7a663dd9b42 100644
--- a/nixos/tests/systemd-boot.nix
+++ b/nixos/tests/systemd-boot.nix
@@ -11,6 +11,8 @@ let
     virtualisation.useBootLoader = true;
     virtualisation.useEFIBoot = true;
     boot.loader.systemd-boot.enable = true;
+    boot.loader.efi.canTouchEfiVariables = true;
+    environment.systemPackages = [ pkgs.efibootmgr ];
   };
 in
 {
@@ -31,6 +33,36 @@ in
       machine.succeed(
           "test -e /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f"
       )
+
+      # "bootctl install" should have created an EFI entry
+      machine.succeed('efibootmgr | grep "Linux Boot Manager"')
+    '';
+  };
+
+  # Boot without having created an EFI entry--instead using default "/EFI/BOOT/BOOTX64.EFI"
+  fallback = makeTest {
+    name = "systemd-boot-fallback";
+    meta.maintainers = with pkgs.stdenv.lib.maintainers; [ danielfullmer ];
+
+    machine = { pkgs, lib, ... }: {
+      imports = [ common ];
+      boot.loader.efi.canTouchEfiVariables = mkForce false;
+    };
+
+    testScript = ''
+      machine.start()
+      machine.wait_for_unit("multi-user.target")
+
+      machine.succeed("test -e /boot/loader/entries/nixos-generation-1.conf")
+
+      # Ensure we actually booted using systemd-boot
+      # Magic number is the vendor UUID used by systemd-boot.
+      machine.succeed(
+          "test -e /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f"
+      )
+
+      # "bootctl install" should _not_ have created an EFI entry
+      machine.fail('efibootmgr | grep "Linux Boot Manager"')
     '';
   };
 
diff --git a/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix b/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
index 99cd341eec1..99395fe3023 100644
--- a/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
+++ b/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
@@ -31,7 +31,7 @@ import ./make-test-python.nix ({pkgs, ...}: {
         firewall.enable = false;
         interfaces.eth1.ipv4.addresses = lib.mkForce []; # no need for legacy IP
         interfaces.eth1.ipv6.addresses = lib.mkForce [
-          { address = "2001:DB8::"; prefixLength = 64; }
+          { address = "2001:DB8::1"; prefixLength = 64; }
         ];
       };
 
@@ -260,7 +260,7 @@ import ./make-test-python.nix ({pkgs, ...}: {
     client.wait_until_succeeds("ping -6 -c 1 FD42::1")
 
     # the global IP of the ISP router should still not be a reachable
-    router.fail("ping -6 -c 1 2001:DB8::")
+    router.fail("ping -6 -c 1 2001:DB8::1")
 
     # Once we have internal connectivity boot up the ISP
     isp.start()
@@ -273,11 +273,11 @@ import ./make-test-python.nix ({pkgs, ...}: {
 
     # wait until the uplink interface has a good status
     router.wait_for_unit("network-online.target")
-    router.wait_until_succeeds("ping -6 -c1 2001:DB8::")
+    router.wait_until_succeeds("ping -6 -c1 2001:DB8::1")
 
     # shortly after that the client should have received it's global IPv6
     # address and thus be able to ping the ISP
-    client.wait_until_succeeds("ping -6 -c1 2001:DB8::")
+    client.wait_until_succeeds("ping -6 -c1 2001:DB8::1")
 
     # verify that we got a globally scoped address in eth1 from the
     # documentation prefix
diff --git a/nixos/tests/systemd-networkd-vrf.nix b/nixos/tests/systemd-networkd-vrf.nix
index af7813a2e60..bd4751f8e43 100644
--- a/nixos/tests/systemd-networkd-vrf.nix
+++ b/nixos/tests/systemd-networkd-vrf.nix
@@ -159,6 +159,8 @@ in {
     node2.wait_for_unit("network.target")
     node3.wait_for_unit("network.target")
 
+    # NOTE: please keep in mind that the trailing whitespaces in the following strings
+    # are intentional as the output is compared against the raw `iproute2`-output.
     client_ipv4_table = """
     192.168.1.2 dev vrf1 proto static metric 100 
     192.168.2.3 dev vrf2 proto static metric 100
@@ -194,18 +196,16 @@ in {
         client.succeed("ping -c5 192.168.1.2")
         client.succeed("ping -c5 192.168.2.3")
 
-    # Test whether SSH through a VRF IP is possible.
-    # (Note: this seems to be an issue on Linux 5.x, so I decided to add this to
-    # ensure that we catch this when updating the default kernel).
-    # with subtest("tcp traffic through vrf works"):
-    #     node1.wait_for_open_port(22)
-    #     client.succeed(
-    #         "cat ${snakeOilPrivateKey} > privkey.snakeoil"
-    #     )
-    #     client.succeed("chmod 600 privkey.snakeoil")
-    #     client.succeed(
-    #         "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil root@192.168.1.2 true"
-    #     )
+    # Test whether TCP through a VRF IP is possible.
+    with subtest("tcp traffic through vrf works"):
+        node1.wait_for_open_port(22)
+        client.succeed(
+            "cat ${snakeOilPrivateKey} > privkey.snakeoil"
+        )
+        client.succeed("chmod 600 privkey.snakeoil")
+        client.succeed(
+            "ulimit -l 2048; ip vrf exec vrf1 ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil root@192.168.1.2 true"
+        )
 
     # Only configured routes through the VRF from the main routing table should
     # work. Additional IPs are only reachable when binding to the vrf interface.
diff --git a/nixos/tests/systemd-networkd.nix b/nixos/tests/systemd-networkd.nix
index 319e5e94ece..d5fb2431dba 100644
--- a/nixos/tests/systemd-networkd.nix
+++ b/nixos/tests/systemd-networkd.nix
@@ -7,18 +7,19 @@ let generateNodeConf = { lib, pkgs, config, privk, pubk, peerId, nodeId, ...}: {
       virtualisation.vlans = [ 1 ];
       environment.systemPackages = with pkgs; [ wireguard-tools ];
       boot.extraModulePackages = [ config.boot.kernelPackages.wireguard ];
-      systemd.tmpfiles.rules = [
-        "f /run/wg_priv 0640 root systemd-network - ${privk}"
-      ];
       systemd.network = {
         enable = true;
         netdevs = {
           "90-wg0" = {
             netdevConfig = { Kind = "wireguard"; Name = "wg0"; };
             wireguardConfig = {
-              PrivateKeyFile = "/run/wg_priv";
+              # NOTE: we're storing the wireguard private key in the
+              #       store for this test. Do not do this in the real
+              #       world. Keep in mind the nix store is
+              #       world-readable.
+              PrivateKeyFile = pkgs.writeText "wg0-priv" privk;
               ListenPort = 51820;
-              FwMark = 42;
+              FirewallMark = 42;
             };
             wireguardPeers = [ {wireguardPeerConfig={
               Endpoint = "192.168.1.${peerId}:51820";
diff --git a/nixos/tests/systemd.nix b/nixos/tests/systemd.nix
index ca2e36a443e..dfa16eecfad 100644
--- a/nixos/tests/systemd.nix
+++ b/nixos/tests/systemd.nix
@@ -4,7 +4,10 @@ import ./make-test-python.nix ({ pkgs, ... }: {
   machine = { lib, ... }: {
     imports = [ common/user-account.nix common/x11.nix ];
 
-    virtualisation.emptyDiskImages = [ 512 ];
+    virtualisation.emptyDiskImages = [ 512 512 ];
+    virtualisation.memorySize = 1024;
+
+    environment.systemPackages = [ pkgs.cryptsetup ];
 
     fileSystems = lib.mkVMOverride {
       "/test-x-initrd-mount" = {
@@ -50,6 +53,13 @@ import ./make-test-python.nix ({ pkgs, ... }: {
         fi
       '';
     };
+
+    systemd.watchdog = {
+      device = "/dev/watchdog";
+      runtimeTime = "30s";
+      rebootTime = "10min";
+      kexecTime = "5min";
+    };
   };
 
   testScript = ''
@@ -97,6 +107,11 @@ import ./make-test-python.nix ({ pkgs, ... }: {
             re.search(r"^Filesystem state: *clean$", extinfo, re.MULTILINE) is not None
         ), ("File system was not cleanly unmounted: " + extinfo)
 
+    # Regression test for https://github.com/NixOS/nixpkgs/pull/91232
+    with subtest("setting transient hostnames works"):
+        machine.succeed("hostnamectl set-hostname --transient machine-transient")
+        machine.fail("hostnamectl set-hostname machine-all")
+
     with subtest("systemd-shutdown works"):
         machine.shutdown()
         machine.wait_for_unit("multi-user.target")
@@ -117,5 +132,41 @@ import ./make-test-python.nix ({ pkgs, ... }: {
         retcode, output = machine.execute("systemctl status testservice1.service")
         assert retcode in [0, 3]  # https://bugs.freedesktop.org/show_bug.cgi?id=77507
         assert "CPU:" in output
+
+    # Test systemd is configured to manage a watchdog
+    with subtest("systemd manages hardware watchdog"):
+        machine.wait_for_unit("multi-user.target")
+
+        # It seems that the device's path doesn't appear in 'systemctl show' so
+        # check it separately.
+        assert "WatchdogDevice=/dev/watchdog" in machine.succeed(
+            "cat /etc/systemd/system.conf"
+        )
+
+        output = machine.succeed("systemctl show | grep Watchdog")
+        # assert "RuntimeWatchdogUSec=30s" in output
+        # for some reason RuntimeWatchdogUSec, doesn't seem to be updated in here.
+        assert "RebootWatchdogUSec=10min" in output
+        assert "KExecWatchdogUSec=5min" in output
+
+    # Test systemd cryptsetup support
+    with subtest("systemd successfully reads /etc/crypttab and unlocks volumes"):
+        # create a luks volume and put a filesystem on it
+        machine.succeed(
+            "echo -n supersecret | cryptsetup luksFormat -q /dev/vdc -",
+            "echo -n supersecret | cryptsetup luksOpen --key-file - /dev/vdc foo",
+            "mkfs.ext3 /dev/mapper/foo",
+        )
+
+        # create a keyfile and /etc/crypttab
+        machine.succeed("echo -n supersecret > /var/lib/luks-keyfile")
+        machine.succeed("chmod 600 /var/lib/luks-keyfile")
+        machine.succeed("echo 'luks1 /dev/vdc /var/lib/luks-keyfile luks' > /etc/crypttab")
+
+        # after a reboot, systemd should unlock the volume and we should be able to mount it
+        machine.shutdown()
+        machine.succeed("systemctl status systemd-cryptsetup@luks1.service")
+        machine.succeed("mkdir -p /tmp/luks1")
+        machine.succeed("mount /dev/mapper/luks1 /tmp/luks1")
   '';
 })
diff --git a/nixos/tests/taskserver.nix b/nixos/tests/taskserver.nix
index 9c07bcf9f51..f34782c7059 100644
--- a/nixos/tests/taskserver.nix
+++ b/nixos/tests/taskserver.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }: let
+import ./make-test-python.nix ({ pkgs, ... }: let
   snakeOil = pkgs.runCommand "snakeoil-certs" {
     outputs = [ "out" "cacert" "cert" "key" "crl" ];
     buildInputs = [ pkgs.gnutls.bin ];
@@ -105,187 +105,178 @@ in {
     newServerSystem = nodes.newServer.config.system.build.toplevel;
     switchToNewServer = "${newServerSystem}/bin/switch-to-configuration test";
   in ''
-    sub su ($$) {
-      my ($user, $cmd) = @_;
-      my $esc = $cmd =~ s/'/'\\${"'"}'/gr;
-      return "su - $user -c '$esc'";
-    }
-
-    sub setupClientsFor ($$;$) {
-      my ($org, $user, $extraInit) = @_;
-
-      for my $client ($client1, $client2) {
-        $client->nest("initialize client for user $user", sub {
-          $client->succeed(
-            (su $user, "rm -rf /home/$user/.task"),
-            (su $user, "task rc.confirmation=no config confirmation no")
-          );
-
-          my $exportinfo = $server->succeed(
-            "nixos-taskserver user export $org $user"
-          );
-
-          $exportinfo =~ s/'/'\\'''/g;
-
-          $client->nest("importing taskwarrior configuration", sub {
-            my $cmd = su $user, "eval '$exportinfo' >&2";
-            my ($status, $out) = $client->execute_($cmd);
-            if ($status != 0) {
-              $client->log("output: $out");
-              die "command `$cmd' did not succeed (exit code $status)\n";
-            }
-          });
-
-          eval { &$extraInit($client, $org, $user) };
-
-          $client->succeed(su $user,
-            "task config taskd.server server:${portStr} >&2"
-          );
-
-          $client->succeed(su $user, "task sync init >&2");
-        });
-      }
-    }
-
-    sub restartServer {
-      $server->succeed("systemctl restart taskserver.service");
-      $server->waitForOpenPort(${portStr});
-    }
-
-    sub readdImperativeUser {
-      $server->nest("(re-)add imperative user bar", sub {
-        $server->execute("nixos-taskserver org remove imperativeOrg");
-        $server->succeed(
-          "nixos-taskserver org add imperativeOrg",
-          "nixos-taskserver user add imperativeOrg bar"
-        );
-        setupClientsFor "imperativeOrg", "bar";
-      });
-    }
-
-    sub testSync ($) {
-      my $user = $_[0];
-      subtest "sync for user $user", sub {
-        $client1->succeed(su $user, "task add foo >&2");
-        $client1->succeed(su $user, "task sync >&2");
-        $client2->fail(su $user, "task list >&2");
-        $client2->succeed(su $user, "task sync >&2");
-        $client2->succeed(su $user, "task list >&2");
-      };
-    }
-
-    sub checkClientCert ($) {
-      my $user = $_[0];
-      # debug level 3 is a workaround for gnutls issue https://gitlab.com/gnutls/gnutls/-/issues/1040
-      my $cmd = "gnutls-cli -d 3".
-        " --x509cafile=/home/$user/.task/keys/ca.cert".
-        " --x509keyfile=/home/$user/.task/keys/private.key".
-        " --x509certfile=/home/$user/.task/keys/public.cert".
-        " --port=${portStr} server < /dev/null";
-      return su $user, $cmd;
-    }
+    from shlex import quote
+
+
+    def su(user, cmd):
+        return f"su - {user} -c {quote(cmd)}"
+
+
+    def no_extra_init(client, org, user):
+        pass
+
+
+    def setup_clients_for(org, user, extra_init=no_extra_init):
+        for client in [client1, client2]:
+            with client.nested(f"initialize client for user {user}"):
+                client.succeed(
+                    su(user, f"rm -rf /home/{user}/.task"),
+                    su(user, "task rc.confirmation=no config confirmation no"),
+                )
+
+                exportinfo = server.succeed(f"nixos-taskserver user export {org} {user}")
+
+                with client.nested("importing taskwarrior configuration"):
+                    client.succeed(su(user, f"eval {quote(exportinfo)} >&2"))
+
+                extra_init(client, org, user)
+
+                client.succeed(su(user, "task config taskd.server server:${portStr} >&2"))
+
+                client.succeed(su(user, "task sync init >&2"))
+
+
+    def restart_server():
+        server.systemctl("restart taskserver.service")
+        server.wait_for_open_port(${portStr})
+
+
+    def re_add_imperative_user():
+        with server.nested("(re-)add imperative user bar"):
+            server.execute("nixos-taskserver org remove imperativeOrg")
+            server.succeed(
+                "nixos-taskserver org add imperativeOrg",
+                "nixos-taskserver user add imperativeOrg bar",
+            )
+            setup_clients_for("imperativeOrg", "bar")
+
+
+    def test_sync(user):
+        with subtest(f"sync for user {user}"):
+            client1.succeed(su(user, "task add foo >&2"))
+            client1.succeed(su(user, "task sync >&2"))
+            client2.fail(su(user, "task list >&2"))
+            client2.succeed(su(user, "task sync >&2"))
+            client2.succeed(su(user, "task list >&2"))
+
+
+    def check_client_cert(user):
+        # debug level 3 is a workaround for gnutls issue https://gitlab.com/gnutls/gnutls/-/issues/1040
+        cmd = (
+            f"gnutls-cli -d 3"
+            f" --x509cafile=/home/{user}/.task/keys/ca.cert"
+            f" --x509keyfile=/home/{user}/.task/keys/private.key"
+            f" --x509certfile=/home/{user}/.task/keys/public.cert"
+            f" --port=${portStr} server < /dev/null"
+        )
+        return su(user, cmd)
+
 
     # Explicitly start the VMs so that we don't accidentally start newServer
-    $server->start;
-    $client1->start;
-    $client2->start;
+    server.start()
+    client1.start()
+    client2.start()
 
-    $server->waitForUnit("taskserver.service");
+    server.wait_for_unit("taskserver.service")
 
-    $server->succeed(
-      "nixos-taskserver user list testOrganisation | grep -qxF alice",
-      "nixos-taskserver user list testOrganisation | grep -qxF foo",
-      "nixos-taskserver user list anotherOrganisation | grep -qxF bob"
-    );
+    server.succeed(
+        "nixos-taskserver user list testOrganisation | grep -qxF alice",
+        "nixos-taskserver user list testOrganisation | grep -qxF foo",
+        "nixos-taskserver user list anotherOrganisation | grep -qxF bob",
+    )
 
-    $server->waitForOpenPort(${portStr});
+    server.wait_for_open_port(${portStr})
 
-    $client1->waitForUnit("multi-user.target");
-    $client2->waitForUnit("multi-user.target");
+    client1.wait_for_unit("multi-user.target")
+    client2.wait_for_unit("multi-user.target")
 
-    setupClientsFor "testOrganisation", "alice";
-    setupClientsFor "testOrganisation", "foo";
-    setupClientsFor "anotherOrganisation", "bob";
+    setup_clients_for("testOrganisation", "alice")
+    setup_clients_for("testOrganisation", "foo")
+    setup_clients_for("anotherOrganisation", "bob")
 
-    testSync $_ for ("alice", "bob", "foo");
+    for user in ["alice", "bob", "foo"]:
+        test_sync(user)
 
-    $server->fail("nixos-taskserver user add imperativeOrg bar");
-    readdImperativeUser;
+    server.fail("nixos-taskserver user add imperativeOrg bar")
+    re_add_imperative_user()
 
-    testSync "bar";
+    test_sync("bar")
 
-    subtest "checking certificate revocation of user bar", sub {
-      $client1->succeed(checkClientCert "bar");
+    with subtest("checking certificate revocation of user bar"):
+        client1.succeed(check_client_cert("bar"))
 
-      $server->succeed("nixos-taskserver user remove imperativeOrg bar");
-      restartServer;
+        server.succeed("nixos-taskserver user remove imperativeOrg bar")
+        restart_server()
 
-      $client1->fail(checkClientCert "bar");
+        client1.fail(check_client_cert("bar"))
 
-      $client1->succeed(su "bar", "task add destroy everything >&2");
-      $client1->fail(su "bar", "task sync >&2");
-    };
+        client1.succeed(su("bar", "task add destroy everything >&2"))
+        client1.fail(su("bar", "task sync >&2"))
 
-    readdImperativeUser;
+    re_add_imperative_user()
 
-    subtest "checking certificate revocation of org imperativeOrg", sub {
-      $client1->succeed(checkClientCert "bar");
+    with subtest("checking certificate revocation of org imperativeOrg"):
+        client1.succeed(check_client_cert("bar"))
 
-      $server->succeed("nixos-taskserver org remove imperativeOrg");
-      restartServer;
+        server.succeed("nixos-taskserver org remove imperativeOrg")
+        restart_server()
 
-      $client1->fail(checkClientCert "bar");
+        client1.fail(check_client_cert("bar"))
 
-      $client1->succeed(su "bar", "task add destroy even more >&2");
-      $client1->fail(su "bar", "task sync >&2");
-    };
+        client1.succeed(su("bar", "task add destroy even more >&2"))
+        client1.fail(su("bar", "task sync >&2"))
 
-    readdImperativeUser;
+    re_add_imperative_user()
 
-    subtest "check whether declarative config overrides user bar", sub {
-      restartServer;
-      testSync "bar";
-    };
+    with subtest("check whether declarative config overrides user bar"):
+        restart_server()
+        test_sync("bar")
 
-    subtest "check manual configuration", sub {
-      # Remove the keys from automatic CA creation, to make sure the new
-      # generation doesn't use keys from before.
-      $server->succeed('rm -rf ${cfg.dataDir}/keys/* >&2');
-
-      $server->succeed('${switchToNewServer} >&2');
-      $server->waitForUnit("taskserver.service");
-      $server->waitForOpenPort(${portStr});
-
-      $server->succeed(
-        "nixos-taskserver org add manualOrg",
-        "nixos-taskserver user add manualOrg alice"
-      );
-
-      setupClientsFor "manualOrg", "alice", sub {
-        my ($client, $org, $user) = @_;
-        my $cfgpath = "/home/$user/.task";
-
-        $client->copyFileFromHost("${snakeOil.cacert}", "$cfgpath/ca.cert");
-        for my $file ('alice.key', 'alice.cert') {
-          $client->copyFileFromHost("${snakeOil}/$file", "$cfgpath/$file");
-        }
-
-        for my $file ("$user.key", "$user.cert") {
-          $client->copyFileFromHost(
-            "${snakeOil}/$file", "$cfgpath/$file"
-          );
-        }
-        $client->copyFileFromHost(
-          "${snakeOil.cacert}", "$cfgpath/ca.cert"
-        );
-        $client->succeed(
-          (su "alice", "task config taskd.ca $cfgpath/ca.cert"),
-          (su "alice", "task config taskd.key $cfgpath/$user.key"),
-          (su $user, "task config taskd.certificate $cfgpath/$user.cert")
-        );
-      };
 
-      testSync "alice";
-    };
+    def init_manual_config(client, org, user):
+        cfgpath = f"/home/{user}/.task"
+
+        client.copy_from_host(
+            "${snakeOil.cacert}",
+            f"{cfgpath}/ca.cert",
+        )
+        for file in ["alice.key", "alice.cert"]:
+            client.copy_from_host(
+                f"${snakeOil}/{file}",
+                f"{cfgpath}/{file}",
+            )
+
+        for file in [f"{user}.key", f"{user}.cert"]:
+            client.copy_from_host(
+                f"${snakeOil}/{file}",
+                f"{cfgpath}/{file}",
+            )
+
+        client.succeed(
+            su("alice", f"task config taskd.ca {cfgpath}/ca.cert"),
+            su("alice", f"task config taskd.key {cfgpath}/{user}.key"),
+            su(user, f"task config taskd.certificate {cfgpath}/{user}.cert"),
+        )
+
+
+    with subtest("check manual configuration"):
+        # Remove the keys from automatic CA creation, to make sure the new
+        # generation doesn't use keys from before.
+        server.succeed("rm -rf ${cfg.dataDir}/keys/* >&2")
+
+        server.succeed(
+            "${switchToNewServer} >&2"
+        )
+        server.wait_for_unit("taskserver.service")
+        server.wait_for_open_port(${portStr})
+
+        server.succeed(
+            "nixos-taskserver org add manualOrg",
+            "nixos-taskserver user add manualOrg alice",
+        )
+
+        setup_clients_for("manualOrg", "alice", init_manual_config)
+
+        test_sync("alice")
   '';
 })
diff --git a/nixos/tests/tiddlywiki.nix b/nixos/tests/tiddlywiki.nix
index cf45578b0f9..822711b8939 100644
--- a/nixos/tests/tiddlywiki.nix
+++ b/nixos/tests/tiddlywiki.nix
@@ -44,7 +44,7 @@ import ./make-test-python.nix ({ ... }: {
           configured.succeed(
               "curl --fail -o /dev/null 127.0.0.1:3000 --user somelogin:somesecret"
           )
-      
+
       with subtest("restart preserves changes"):
           # given running wiki
           default.wait_for_unit("tiddlywiki.service")
diff --git a/nixos/tests/transmission.nix b/nixos/tests/transmission.nix
index f4f2186be1f..37c0352dcfb 100644
--- a/nixos/tests/transmission.nix
+++ b/nixos/tests/transmission.nix
@@ -9,6 +9,8 @@ import ./make-test-python.nix ({ pkgs, ...} : {
 
     networking.firewall.allowedTCPPorts = [ 9091 ];
 
+    security.apparmor.enable = true;
+
     services.transmission.enable = true;
   };
 
diff --git a/nixos/tests/trezord.nix b/nixos/tests/trezord.nix
index 67646496ff9..b7b3dd31942 100644
--- a/nixos/tests/trezord.nix
+++ b/nixos/tests/trezord.nix
@@ -1,7 +1,7 @@
 import ./make-test-python.nix ({ pkgs, ... }: {
   name = "trezord";
   meta = with pkgs.stdenv.lib; {
-    maintainers = with maintainers; [ mmahut maintainers."1000101" ];
+    maintainers = with maintainers; [ mmahut _1000101 ];
   };
   nodes = {
     machine = { ... }: {
diff --git a/nixos/tests/trickster.nix b/nixos/tests/trickster.nix
index aff4f7eb912..713ac8f0b2f 100644
--- a/nixos/tests/trickster.nix
+++ b/nixos/tests/trickster.nix
@@ -1,7 +1,7 @@
 import ./make-test-python.nix ({ pkgs, ... }: {
   name = "trickster";
   meta = with pkgs.stdenv.lib; {
-    maintainers = with maintainers; [ maintainers."1000101" ];
+    maintainers = with maintainers; [ _1000101 ];
   };
 
   nodes = {
@@ -34,4 +34,4 @@ import ./make-test-python.nix ({ pkgs, ... }: {
         "curl -L http://localhost:9090/metrics | grep 'promhttp_metric_handler_requests_total{code=\"500\"} 0'"
     )
   '';
-})
\ No newline at end of file
+})
diff --git a/nixos/tests/virtualbox.nix b/nixos/tests/virtualbox.nix
index aec8da6a2af..0d9eafa4a20 100644
--- a/nixos/tests/virtualbox.nix
+++ b/nixos/tests/virtualbox.nix
@@ -15,7 +15,7 @@
 
 assert use64bitGuest -> useKvmNestedVirt;
 
-with import ../lib/testing.nix { inherit system pkgs; };
+with import ../lib/testing-python.nix { inherit system pkgs; };
 with pkgs.lib;
 
 let
@@ -91,13 +91,15 @@ let
       (isYes "SERIAL_8250_CONSOLE")
       (isYes "SERIAL_8250")
     ];
+
+    networking.usePredictableInterfaceNames = false;
   };
 
   mkLog = logfile: tag: let
     rotated = map (i: "${logfile}.${toString i}") (range 1 9);
     all = concatMapStringsSep " " (f: "\"${f}\"") ([logfile] ++ rotated);
     logcmd = "tail -F ${all} 2> /dev/null | logger -t \"${tag}\"";
-  in optionalString debug "$machine->execute(ru '${logcmd} & disown');";
+  in if debug then "machine.execute(ru('${logcmd} & disown'))" else "pass";
 
   testVM = vmName: vmScript: let
     cfg = (import ../lib/eval-config.nix {
@@ -198,103 +200,111 @@ let
       systemd.services."vboxtestlog-${name}@" = {
         description = "VirtualBox Test Machine Log For ${name}";
         serviceConfig.StandardInput = "socket";
-        serviceConfig.StandardOutput = "syslog";
         serviceConfig.SyslogIdentifier = "GUEST-${name}";
         serviceConfig.ExecStart = "${pkgs.coreutils}/bin/cat";
       };
     };
 
     testSubs = ''
-      my ${"$" + name}_sharepath = '${sharePath}';
-
-      sub checkRunning_${name} {
-        my $cmd = 'VBoxManage list runningvms | grep -q "^\"${name}\""';
-        my ($status, $out) = $machine->execute(ru $cmd);
-        return $status == 0;
-      }
-
-      sub cleanup_${name} {
-        $machine->execute(ru "VBoxManage controlvm ${name} poweroff")
-          if checkRunning_${name};
-        $machine->succeed("rm -rf ${sharePath}");
-        $machine->succeed("mkdir -p ${sharePath}");
-        $machine->succeed("chown alice.users ${sharePath}");
-      }
-
-      sub createVM_${name} {
-        vbm("createvm --name ${name} ${createFlags}");
-        vbm("modifyvm ${name} ${vmFlags}");
-        vbm("setextradata ${name} VBoxInternal/PDM/HaltOnReset 1");
-        vbm("storagectl ${name} ${controllerFlags}");
-        vbm("storageattach ${name} ${diskFlags}");
-        vbm("sharedfolder add ${name} ${sharedFlags}");
-        vbm("sharedfolder add ${name} ${nixstoreFlags}");
-        cleanup_${name};
-
-        ${mkLog "$HOME/VirtualBox VMs/${name}/Logs/VBox.log" "HOST-${name}"}
-      }
-
-      sub destroyVM_${name} {
-        cleanup_${name};
-        vbm("unregistervm ${name} --delete");
-      }
-
-      sub waitForVMBoot_${name} {
-        $machine->execute(ru(
-          'set -e; i=0; '.
-          'while ! test -e ${sharePath}/boot-done; do '.
-          'sleep 10; i=$(($i + 10)); [ $i -le 3600 ]; '.
-          'VBoxManage list runningvms | grep -q "^\"${name}\""; '.
-          'done'
-        ));
-      }
-
-      sub waitForIP_${name} ($) {
-        my $property = "/VirtualBox/GuestInfo/Net/$_[0]/V4/IP";
-        my $getip = "VBoxManage guestproperty get ${name} $property | ".
-                    "sed -n -e 's/^Value: //p'";
-        my $ip = $machine->succeed(ru(
-          'for i in $(seq 1000); do '.
-          'if ipaddr="$('.$getip.')" && [ -n "$ipaddr" ]; then '.
-          'echo "$ipaddr"; exit 0; '.
-          'fi; '.
-          'sleep 1; '.
-          'done; '.
-          'echo "Could not get IPv4 address for ${name}!" >&2; '.
-          'exit 1'
-        ));
-        chomp $ip;
-        return $ip;
-      }
-
-      sub waitForStartup_${name} {
-        for (my $i = 0; $i <= 120; $i += 10) {
-          $machine->sleep(10);
-          return if checkRunning_${name};
-          eval { $_[0]->() } if defined $_[0];
-        }
-        die "VirtualBox VM didn't start up within 2 minutes";
-      }
-
-      sub waitForShutdown_${name} {
-        for (my $i = 0; $i <= 120; $i += 10) {
-          $machine->sleep(10);
-          return unless checkRunning_${name};
-        }
-        die "VirtualBox VM didn't shut down within 2 minutes";
-      }
-
-      sub shutdownVM_${name} {
-        $machine->succeed(ru "touch ${sharePath}/shutdown");
-        $machine->execute(
-          'set -e; i=0; '.
-          'while test -e ${sharePath}/shutdown '.
-          '        -o -e ${sharePath}/boot-done; do '.
-          'sleep 1; i=$(($i + 1)); [ $i -le 3600 ]; '.
-          'done'
-        );
-        waitForShutdown_${name};
-      }
+
+
+      ${name}_sharepath = "${sharePath}"
+
+
+      def check_running_${name}():
+          cmd = "VBoxManage list runningvms | grep -q '^\"${name}\"'"
+          (status, _) = machine.execute(ru(cmd))
+          return status == 0
+
+
+      def cleanup_${name}():
+          if check_running_${name}():
+              machine.execute(ru("VBoxManage controlvm ${name} poweroff"))
+          machine.succeed("rm -rf ${sharePath}")
+          machine.succeed("mkdir -p ${sharePath}")
+          machine.succeed("chown alice.users ${sharePath}")
+
+
+      def create_vm_${name}():
+          # fmt: off
+          vbm(f"createvm --name ${name} ${createFlags}")
+          vbm(f"modifyvm ${name} ${vmFlags}")
+          vbm(f"setextradata ${name} VBoxInternal/PDM/HaltOnReset 1")
+          vbm(f"storagectl ${name} ${controllerFlags}")
+          vbm(f"storageattach ${name} ${diskFlags}")
+          vbm(f"sharedfolder add ${name} ${sharedFlags}")
+          vbm(f"sharedfolder add ${name} ${nixstoreFlags}")
+          cleanup_${name}()
+
+          ${mkLog "$HOME/VirtualBox VMs/${name}/Logs/VBox.log" "HOST-${name}"}
+          # fmt: on
+
+
+      def destroy_vm_${name}():
+          cleanup_${name}()
+          vbm("unregistervm ${name} --delete")
+
+
+      def wait_for_vm_boot_${name}():
+          machine.execute(
+              ru(
+                  "set -e; i=0; "
+                  "while ! test -e ${sharePath}/boot-done; do "
+                  "sleep 10; i=$(($i + 10)); [ $i -le 3600 ]; "
+                  "VBoxManage list runningvms | grep -q '^\"${name}\"'; "
+                  "done"
+              )
+          )
+
+
+      def wait_for_ip_${name}(interface):
+          property = f"/VirtualBox/GuestInfo/Net/{interface}/V4/IP"
+          # fmt: off
+          getip = f"VBoxManage guestproperty get ${name} {property} | sed -n -e 's/^Value: //p'"
+          # fmt: on
+
+          ip = machine.succeed(
+              ru(
+                  "for i in $(seq 1000); do "
+                  f'if ipaddr="$({getip})" && [ -n "$ipaddr" ]; then '
+                  'echo "$ipaddr"; exit 0; '
+                  "fi; "
+                  "sleep 1; "
+                  "done; "
+                  "echo 'Could not get IPv4 address for ${name}!' >&2; "
+                  "exit 1"
+              )
+          ).strip()
+          return ip
+
+
+      def wait_for_startup_${name}(nudge=lambda: None):
+          for _ in range(0, 130, 10):
+              machine.sleep(10)
+              if check_running_${name}():
+                  return
+              nudge()
+          raise Exception("VirtualBox VM didn't start up within 2 minutes")
+
+
+      def wait_for_shutdown_${name}():
+          for _ in range(0, 130, 10):
+              machine.sleep(10)
+              if not check_running_${name}():
+                  return
+          raise Exception("VirtualBox VM didn't shut down within 2 minutes")
+
+
+      def shutdown_vm_${name}():
+          machine.succeed(ru("touch ${sharePath}/shutdown"))
+          machine.execute(
+              "set -e; i=0; "
+              "while test -e ${sharePath}/shutdown "
+              "        -o -e ${sharePath}/boot-done; do "
+              "sleep 1; i=$(($i + 1)); [ $i -le 3600 ]; "
+              "done"
+          )
+          wait_for_shutdown_${name}()
     '';
   };
 
@@ -365,26 +375,31 @@ let
     };
 
     testScript = ''
-      sub ru ($) {
-        my $esc = $_[0] =~ s/'/'\\${"'"}'/gr;
-        return "su - alice -c '$esc'";
-      }
+      from shlex import quote
+      ${concatStrings (mapAttrsToList (_: getAttr "testSubs") vms)}
 
-      sub vbm {
-        $machine->succeed(ru("VBoxManage ".$_[0]));
-      };
+      def ru(cmd: str) -> str:
+          return f"su - alice -c {quote(cmd)}"
 
-      sub removeUUIDs {
-        return join("\n", grep { $_ !~ /^UUID:/ } split(/\n/, $_[0]))."\n";
-      }
 
-      ${concatStrings (mapAttrsToList (_: getAttr "testSubs") vms)}
+      def vbm(cmd: str) -> str:
+          return machine.succeed(ru(f"VBoxManage {cmd}"))
+
+
+      def remove_uuids(output: str) -> str:
+          return "\n".join(
+              [line for line in (output or "").splitlines() if not line.startswith("UUID:")]
+          )
+
 
-      $machine->waitForX;
+      machine.wait_for_x()
 
+      # fmt: off
       ${mkLog "$HOME/.config/VirtualBox/VBoxSVC.log" "HOST-SVC"}
+      # fmt: on
 
       ${testScript}
+      # (keep black happy)
     '';
 
     meta = with pkgs.stdenv.lib.maintainers; {
@@ -394,133 +409,129 @@ let
 
   unfreeTests = mapAttrs (mkVBoxTest true vboxVMsWithExtpack) {
     enable-extension-pack = ''
-      createVM_testExtensionPack;
-      vbm("startvm testExtensionPack");
-      waitForStartup_testExtensionPack;
-      $machine->screenshot("cli_started");
-      waitForVMBoot_testExtensionPack;
-      $machine->screenshot("cli_booted");
-
-      $machine->nest("Checking for privilege escalation", sub {
-        $machine->fail("test -e '/root/VirtualBox VMs'");
-        $machine->fail("test -e '/root/.config/VirtualBox'");
-        $machine->succeed("test -e '/home/alice/VirtualBox VMs'");
-      });
-
-      shutdownVM_testExtensionPack;
-      destroyVM_testExtensionPack;
+      create_vm_testExtensionPack()
+      vbm("startvm testExtensionPack")
+      wait_for_startup_testExtensionPack()
+      machine.screenshot("cli_started")
+      wait_for_vm_boot_testExtensionPack()
+      machine.screenshot("cli_booted")
+
+      with machine.nested("Checking for privilege escalation"):
+          machine.fail("test -e '/root/VirtualBox VMs'")
+          machine.fail("test -e '/root/.config/VirtualBox'")
+          machine.succeed("test -e '/home/alice/VirtualBox VMs'")
+
+      shutdown_vm_testExtensionPack()
+      destroy_vm_testExtensionPack()
     '';
   };
 
 in mapAttrs (mkVBoxTest false vboxVMs) {
   simple-gui = ''
-    createVM_simple;
-    $machine->succeed(ru "VirtualBox &");
-    $machine->waitUntilSucceeds(
-      ru "xprop -name 'Oracle VM VirtualBox Manager'"
-    );
-    $machine->sleep(5);
-    $machine->screenshot("gui_manager_started");
     # Home to select Tools, down to move to the VM, enter to start it.
-    $machine->sendKeys("home");
-    $machine->sendKeys("down");
-    $machine->sendKeys("ret");
-    $machine->screenshot("gui_manager_sent_startup");
-    waitForStartup_simple (sub {
-      $machine->sendKeys("home");
-      $machine->sendKeys("down");
-      $machine->sendKeys("ret");
-    });
-    $machine->screenshot("gui_started");
-    waitForVMBoot_simple;
-    $machine->screenshot("gui_booted");
-    shutdownVM_simple;
-    $machine->sleep(5);
-    $machine->screenshot("gui_stopped");
-    $machine->sendKeys("ctrl-q");
-    $machine->sleep(5);
-    $machine->screenshot("gui_manager_stopped");
-    destroyVM_simple;
+    def send_vm_startup():
+        machine.send_key("home")
+        machine.send_key("down")
+        machine.send_key("ret")
+
+
+    create_vm_simple()
+    machine.succeed(ru("VirtualBox &"))
+    machine.wait_until_succeeds(ru("xprop -name 'Oracle VM VirtualBox Manager'"))
+    machine.sleep(5)
+    machine.screenshot("gui_manager_started")
+    send_vm_startup()
+    machine.screenshot("gui_manager_sent_startup")
+    wait_for_startup_simple(send_vm_startup)
+    machine.screenshot("gui_started")
+    wait_for_vm_boot_simple()
+    machine.screenshot("gui_booted")
+    shutdown_vm_simple()
+    machine.sleep(5)
+    machine.screenshot("gui_stopped")
+    machine.send_key("ctrl-q")
+    machine.sleep(5)
+    machine.screenshot("gui_manager_stopped")
+    destroy_vm_simple()
   '';
 
   simple-cli = ''
-    createVM_simple;
-    vbm("startvm simple");
-    waitForStartup_simple;
-    $machine->screenshot("cli_started");
-    waitForVMBoot_simple;
-    $machine->screenshot("cli_booted");
-
-    $machine->nest("Checking for privilege escalation", sub {
-      $machine->fail("test -e '/root/VirtualBox VMs'");
-      $machine->fail("test -e '/root/.config/VirtualBox'");
-      $machine->succeed("test -e '/home/alice/VirtualBox VMs'");
-    });
-
-    shutdownVM_simple;
-    destroyVM_simple;
+    create_vm_simple()
+    vbm("startvm simple")
+    wait_for_startup_simple()
+    machine.screenshot("cli_started")
+    wait_for_vm_boot_simple()
+    machine.screenshot("cli_booted")
+
+    with machine.nested("Checking for privilege escalation"):
+        machine.fail("test -e '/root/VirtualBox VMs'")
+        machine.fail("test -e '/root/.config/VirtualBox'")
+        machine.succeed("test -e '/home/alice/VirtualBox VMs'")
+
+    shutdown_vm_simple()
+    destroy_vm_simple()
   '';
 
   headless = ''
-    createVM_headless;
-    $machine->succeed(ru("VBoxHeadless --startvm headless & disown %1"));
-    waitForStartup_headless;
-    waitForVMBoot_headless;
-    shutdownVM_headless;
-    destroyVM_headless;
+    create_vm_headless()
+    machine.succeed(ru("VBoxHeadless --startvm headless & disown %1"))
+    wait_for_startup_headless()
+    wait_for_vm_boot_headless()
+    shutdown_vm_headless()
+    destroy_vm_headless()
   '';
 
   host-usb-permissions = ''
-    my $userUSB = removeUUIDs vbm("list usbhost");
-    print STDERR $userUSB;
-    my $rootUSB = removeUUIDs $machine->succeed("VBoxManage list usbhost");
-    print STDERR $rootUSB;
-
-    die "USB host devices differ for root and normal user"
-      if $userUSB ne $rootUSB;
-    die "No USB host devices found" if $userUSB =~ /<none>/;
+    user_usb = remove_uuids(vbm("list usbhost"))
+    print(user_usb, file=sys.stderr)
+    root_usb = remove_uuids(machine.succeed("VBoxManage list usbhost"))
+    print(root_usb, file=sys.stderr)
+
+    if user_usb != root_usb:
+        raise Exception("USB host devices differ for root and normal user")
+    if "<none>" in user_usb:
+        raise Exception("No USB host devices found")
   '';
 
   systemd-detect-virt = ''
-    createVM_detectvirt;
-    vbm("startvm detectvirt");
-    waitForStartup_detectvirt;
-    waitForVMBoot_detectvirt;
-    shutdownVM_detectvirt;
-    my $result = $machine->succeed("cat '$detectvirt_sharepath/result'");
-    chomp $result;
-    destroyVM_detectvirt;
-    die "systemd-detect-virt returned \"$result\" instead of \"oracle\""
-      if $result ne "oracle";
+    create_vm_detectvirt()
+    vbm("startvm detectvirt")
+    wait_for_startup_detectvirt()
+    wait_for_vm_boot_detectvirt()
+    shutdown_vm_detectvirt()
+    result = machine.succeed(f"cat '{detectvirt_sharepath}/result'").strip()
+    destroy_vm_detectvirt()
+    if result != "oracle":
+        raise Exception(f'systemd-detect-virt returned "{result}" instead of "oracle"')
   '';
 
   net-hostonlyif = ''
-    createVM_test1;
-    createVM_test2;
+    create_vm_test1()
+    create_vm_test2()
 
-    vbm("startvm test1");
-    waitForStartup_test1;
-    waitForVMBoot_test1;
+    vbm("startvm test1")
+    wait_for_startup_test1()
+    wait_for_vm_boot_test1()
 
-    vbm("startvm test2");
-    waitForStartup_test2;
-    waitForVMBoot_test2;
+    vbm("startvm test2")
+    wait_for_startup_test2()
+    wait_for_vm_boot_test2()
 
-    $machine->screenshot("net_booted");
+    machine.screenshot("net_booted")
 
-    my $test1IP = waitForIP_test1 1;
-    my $test2IP = waitForIP_test2 1;
+    test1_ip = wait_for_ip_test1(1)
+    test2_ip = wait_for_ip_test2(1)
 
-    $machine->succeed("echo '$test2IP' | nc -N '$test1IP' 1234");
-    $machine->succeed("echo '$test1IP' | nc -N '$test2IP' 1234");
+    machine.succeed(f"echo '{test2_ip}' | nc -N '{test1_ip}' 1234")
+    machine.succeed(f"echo '{test1_ip}' | nc -N '{test2_ip}' 1234")
 
-    $machine->waitUntilSucceeds("nc -N '$test1IP' 5678 < /dev/null >&2");
-    $machine->waitUntilSucceeds("nc -N '$test2IP' 5678 < /dev/null >&2");
+    machine.wait_until_succeeds(f"nc -N '{test1_ip}' 5678 < /dev/null >&2")
+    machine.wait_until_succeeds(f"nc -N '{test2_ip}' 5678 < /dev/null >&2")
 
-    shutdownVM_test1;
-    shutdownVM_test2;
+    shutdown_vm_test1()
+    shutdown_vm_test2()
 
-    destroyVM_test1;
-    destroyVM_test2;
+    destroy_vm_test1()
+    destroy_vm_test2()
   '';
 } // (if enableUnfree then unfreeTests else {})
diff --git a/nixos/tests/xandikos.nix b/nixos/tests/xandikos.nix
index 0fded20ff1a..48c770a3d16 100644
--- a/nixos/tests/xandikos.nix
+++ b/nixos/tests/xandikos.nix
@@ -4,7 +4,7 @@ import ./make-test-python.nix (
     {
       name = "xandikos";
 
-      meta.maintainers = [ lib.maintainers."0x4A6F" ];
+      meta.maintainers = with lib.maintainers; [ _0x4A6F ];
 
       nodes = {
         xandikos_client = {};
@@ -17,7 +17,7 @@ import ./make-test-python.nix (
           services.xandikos.enable = true;
           services.xandikos.address = "localhost";
           services.xandikos.port = 8080;
-          services.xandikos.routePrefix = "/xandikos/";
+          services.xandikos.routePrefix = "/xandikos-prefix/";
           services.xandikos.extraOptions = [
             "--defaults"
           ];
@@ -28,7 +28,7 @@ import ./make-test-python.nix (
               serverName = "xandikos.local";
               basicAuth.xandikos = "snakeOilPassword";
               locations."/xandikos/" = {
-                proxyPass = "http://localhost:8080/";
+                proxyPass = "http://localhost:8080/xandikos-prefix/";
               };
             };
           };
diff --git a/nixos/tests/xfce.nix b/nixos/tests/xfce.nix
index 99065669661..99e30342e59 100644
--- a/nixos/tests/xfce.nix
+++ b/nixos/tests/xfce.nix
@@ -11,8 +11,8 @@ import ./make-test-python.nix ({ pkgs, ...} : {
 
       services.xserver.enable = true;
 
-      services.xserver.displayManager.lightdm = {
-        enable = true;
+      services.xserver.displayManager = {
+        lightdm.enable = true;
         autoLogin = {
           enable = true;
           user = "alice";
diff --git a/nixos/tests/yggdrasil.nix b/nixos/tests/yggdrasil.nix
index 9ceb7974733..1d7541308b4 100644
--- a/nixos/tests/yggdrasil.nix
+++ b/nixos/tests/yggdrasil.nix
@@ -7,6 +7,7 @@ let
     SigningPrivateKey = "fe3add8da35316c05f6d90d3ca79bd2801e6ccab6d37e5339fef4152589398abe2c43349083bc1e998e4ec4535b4c6a8f44ca9a5a8e07336561267253b2be5f4";
   };
   bobIp6 = "201:ebbd:bde9:f138:c302:4afa:1fb6:a19a";
+  bobPrefix = "301:ebbd:bde9:f138";
   bobConfig = {
     InterfacePeers = {
       eth1 = [ "tcp://192.168.1.200:12345" ];
@@ -18,6 +19,7 @@ let
     SigningPublicKey = "de111da0ec781e45bf6c63ecb45a78c24d7d4655abfaeea83b26c36eb5c0fd5b";
     SigningPrivateKey = "2a6c21550f3fca0331df50668ffab66b6dce8237bcd5728e571e8033b363e247de111da0ec781e45bf6c63ecb45a78c24d7d4655abfaeea83b26c36eb5c0fd5b";
   };
+  danIp6 = bobPrefix + "::2";
 
 in import ./make-test-python.nix ({ pkgs, ...} : {
   name = "yggdrasil";
@@ -69,6 +71,41 @@ in import ./make-test-python.nix ({ pkgs, ...} : {
                          text = builtins.toJSON bobConfig;
                        });
         };
+
+        boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = 1;
+
+        networking = {
+          bridges.br0.interfaces = [ ];
+          interfaces.br0 = {
+            ipv6.addresses = [{
+              address = bobPrefix + "::1";
+              prefixLength = 64;
+            }];
+          };
+        };
+
+        # dan is a node inside a container running on bob's host.
+        containers.dan = {
+          autoStart = true;
+          privateNetwork = true;
+          hostBridge = "br0";
+          config = { config, pkgs, ... }: {
+            networking.interfaces.eth0.ipv6 = {
+              addresses = [{
+                address = bobPrefix + "::2";
+                prefixLength = 64;
+              }];
+              routes = [{
+                address = "200::";
+                prefixLength = 7;
+                via = bobPrefix + "::1";
+              }];
+            };
+            services.httpd.enable = true;
+            services.httpd.adminAddr = "foo@example.org";
+            networking.firewall.allowedTCPPorts = [ 80 ];
+          };
+        };
       };
 
     # Carol only does local peering.  Carol's yggdrasil config is all Nix.
@@ -100,7 +137,7 @@ in import ./make-test-python.nix ({ pkgs, ...} : {
 
       bob.start()
       carol.start()
-      bob.wait_for_unit("yggdrasil.service")
+      bob.wait_for_unit("default.target")
       carol.wait_for_unit("yggdrasil.service")
 
       ip_addr_show = "ip -o -6 addr show dev ygg0 scope global"
@@ -117,10 +154,13 @@ in import ./make-test-python.nix ({ pkgs, ...} : {
 
       carol.succeed("ping -c 1 ${aliceIp6}")
       carol.succeed("ping -c 1 ${bobIp6}")
+      carol.succeed("ping -c 1 ${bobPrefix}::1")
+      carol.succeed("ping -c 8 ${danIp6}")
 
       carol.fail("journalctl -u dhcpcd | grep ygg0")
 
       alice.wait_for_unit("httpd.service")
       carol.succeed("curl --fail -g http://[${aliceIp6}]")
+      carol.succeed("curl --fail -g http://[${danIp6}]")
     '';
 })
diff --git a/nixos/tests/zfs.nix b/nixos/tests/zfs.nix
index 7ba60ee9806..87e6c900c98 100644
--- a/nixos/tests/zfs.nix
+++ b/nixos/tests/zfs.nix
@@ -46,6 +46,17 @@ let
             "zpool destroy rpool",
             "udevadm settle",
         )
+
+        machine.succeed(
+            'echo password | zpool create -o altroot="/tmp/mnt" '
+            + "-O encryption=aes-256-gcm -O keyformat=passphrase rpool /dev/vdb1",
+            "zfs create -o mountpoint=legacy rpool/root",
+            "mount -t zfs rpool/root /tmp/mnt",
+            "udevadm settle",
+            "umount /tmp/mnt",
+            "zpool destroy rpool",
+            "udevadm settle",
+        )
       '' + extraTest;
 
     };
@@ -57,18 +68,6 @@ in {
 
   unstable = makeZfsTest "unstable" {
     enableUnstable = true;
-    extraTest = ''
-      machine.succeed(
-          'echo password | zpool create -o altroot="/tmp/mnt" '
-          + "-O encryption=aes-256-gcm -O keyformat=passphrase rpool /dev/vdb1",
-          "zfs create -o mountpoint=legacy rpool/root",
-          "mount -t zfs rpool/root /tmp/mnt",
-          "udevadm settle",
-          "umount /tmp/mnt",
-          "zpool destroy rpool",
-          "udevadm settle",
-      )
-    '';
   };
 
   installer = (import ./installer.nix { }).zfsroot;
diff --git a/nixos/tests/zigbee2mqtt.nix b/nixos/tests/zigbee2mqtt.nix
new file mode 100644
index 00000000000..b7bb21f9227
--- /dev/null
+++ b/nixos/tests/zigbee2mqtt.nix
@@ -0,0 +1,19 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+  {
+    machine = { pkgs, ... }:
+      {
+        services.zigbee2mqtt = {
+          enable = true;
+        };
+      };
+
+    testScript = ''
+      machine.wait_for_unit("zigbee2mqtt.service")
+      machine.wait_until_fails("systemctl status zigbee2mqtt.service")
+      machine.succeed(
+          "journalctl -eu zigbee2mqtt | grep \"Error: Error while opening serialport 'Error: Error: No such file or directory, cannot open /dev/ttyACM0'\""
+      )
+    '';
+  }
+)
diff --git a/pkgs/applications/audio/a2jmidid/default.nix b/pkgs/applications/audio/a2jmidid/default.nix
index 64468bddc85..f4a9383c29c 100644
--- a/pkgs/applications/audio/a2jmidid/default.nix
+++ b/pkgs/applications/audio/a2jmidid/default.nix
@@ -9,7 +9,7 @@ in stdenv.mkDerivation {
   version = "8";
 
   src = fetchurl {
-    url = "https://repo.or.cz/a2jmidid.git/snapshot/7383d268c4bfe85df9f10df6351677659211d1ca.tar.gz";
+    url = "https://github.com/linuxaudio/a2jmidid/archive/7383d268c4bfe85df9f10df6351677659211d1ca.tar.gz";
     sha256 = "06dgf5655znbvrd7fhrv8msv6zw8vk0hjqglcqkh90960mnnmwz7";
   };
 
@@ -18,13 +18,17 @@ in stdenv.mkDerivation {
 
   patches = [
     (fetchpatch {
-      url = "https://repo.or.cz/a2jmidid.git/patch/24e3b8e543256ae8fdfb4b75eb9fd775f07c46e2";
+      url = "https://github.com/linuxaudio/a2jmidid/commit/24e3b8e543256ae8fdfb4b75eb9fd775f07c46e2.diff";
       sha256 = "1nxrvnhxlgqc9wbxnp1gnpw4wjyzxvymwcg1gh2nqzmssgfykfkc";
     })
     (fetchpatch {
-      url = "https://repo.or.cz/a2jmidid.git/patch/7f82da7eb2f540a94db23331be98d42a58ddc269";
+      url = "https://github.com/linuxaudio/a2jmidid/commit/7f82da7eb2f540a94db23331be98d42a58ddc269.diff";
       sha256 = "1nab9zf0agbcj5pvhl90pz0cx1d204d4janqflc5ymjhy8jyrsdv";
     })
+    (fetchpatch {
+      url = "https://github.com/linuxaudio/a2jmidid/commit/c07775d021a71cb91bf64ce1391cf525415cb060.diff";
+      sha256 = "172v9hri03qdqi8a3zsg227k5qxldd8v5bj4jk7fyk5jf50fcxga";
+    })
   ];
 
   postInstall = ''
@@ -35,6 +39,6 @@ in stdenv.mkDerivation {
     description = "Daemon for exposing legacy ALSA sequencer applications in JACK MIDI system";
     license = licenses.gpl2;
     maintainers = [ maintainers.goibhniu ];
-    platforms = [ "i686-linux" "x86_64-linux" ];
+    platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
   };
 }
diff --git a/pkgs/applications/audio/adlplug/default.nix b/pkgs/applications/audio/adlplug/default.nix
index bc626cbad11..7dcc13eb96d 100644
--- a/pkgs/applications/audio/adlplug/default.nix
+++ b/pkgs/applications/audio/adlplug/default.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchFromGitHub, cmake, pkgconfig, libjack2, alsaLib
 , freetype, libX11, libXrandr, libXinerama, libXext, libXcursor
-, fetchpatch
+, fetchpatch, fmt
 , adlplugChip ? "-DADLplug_CHIP=OPL3"
 , pname ? "ADLplug" }:
 
 stdenv.mkDerivation rec {
   inherit pname;
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "jpcima";
     repo = "ADLplug";
     rev = "v${version}";
-    sha256 = "0n9srdlgl1j528ap5xmllrqs1w6ibc5yf9sphvl1q9kjnizxrs2c";
+    sha256 = "0mqx4bzri8s880v7jwd24nb93m5i3aklqld0b3h0hjnz0lh2qz0f";
     fetchSubmodules = true;
   };
 
@@ -25,13 +25,13 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  cmakeFlags = [ adlplugChip ];
+  cmakeFlags = [ adlplugChip "-DADLplug_USE_SYSTEM_FMT=ON" ];
 
   buildInputs = [
     libjack2 alsaLib freetype libX11 libXrandr libXinerama libXext
     libXcursor
   ];
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig fmt ];
 
   meta = with stdenv.lib; {
     description = "OPL3 and OPN2 FM Chip Synthesizer";
diff --git a/pkgs/applications/audio/ardour/default.nix b/pkgs/applications/audio/ardour/default.nix
index 5090ef6a2ec..0c38057d56f 100644
--- a/pkgs/applications/audio/ardour/default.nix
+++ b/pkgs/applications/audio/ardour/default.nix
@@ -55,13 +55,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "ardour";
-  version = "6.0";
+  version = "6.2";
 
   # don't fetch releases from the GitHub mirror, they are broken
   src = fetchgit {
     url = "git://git.ardour.org/ardour/ardour.git";
     rev = version;
-    sha256 = "162jd96zahl05fdmjwvpdfjxbhd6ifbav6xqa0vv6rsdl4zk395q";
+    sha256 = "17jxbqavricy01x4ymq6d302djsqfnv84m7dm4fd8cpka0dqjp1y";
   };
 
   patches = [
diff --git a/pkgs/applications/audio/ashuffle/default.nix b/pkgs/applications/audio/ashuffle/default.nix
new file mode 100644
index 00000000000..6bb21b5edaa
--- /dev/null
+++ b/pkgs/applications/audio/ashuffle/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, pkg-config, mpd_clientlib, meson, ninja }:
+
+stdenv.mkDerivation rec {
+  pname = "ashuffle";
+  version = "3.4.0";
+
+  src = fetchFromGitHub {
+    owner = "joshkunz";
+    repo = "ashuffle";
+    rev = "v${version}";
+    sha256 = "09q6lwgc1dc8bg1mb9js9qz3xcsxph3548nxzvyb4v8111gixrp7";
+    fetchSubmodules = true;
+  };
+
+  dontUseCmakeConfigure = true;
+  nativeBuildInputs = [ cmake pkg-config meson ninja ];
+  buildInputs = [ mpd_clientlib ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/joshkunz/ashuffle";
+    description = "Automatic library-wide shuffle for mpd";
+    maintainers = [ maintainers.tcbravo ];
+    platforms = platforms.unix;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/applications/audio/audacious/default.nix b/pkgs/applications/audio/audacious/default.nix
index ba000d1ffb4..c441a2f9f3f 100644
--- a/pkgs/applications/audio/audacious/default.nix
+++ b/pkgs/applications/audio/audacious/default.nix
@@ -1,39 +1,40 @@
-{ stdenv, fetchurl, pkgconfig, wrapGAppsHook, gettext, glib, gtk3
-, libmowgli, dbus-glib, libxml2, xorg, gnome3, alsaLib
-, libpulseaudio, libjack2, fluidsynth, libmad, libogg, libvorbis
-, libcdio, libcddb, flac, ffmpeg_3, mpg123, libcue, libmms, libbs2b
-, libsndfile, libmodplug, libsamplerate, soxr, lirc, curl, wavpack
-, neon, faad2, lame, libnotify, libsidplayfp
+{
+  mkDerivation, lib, fetchurl, fetchpatch,
+  gettext, pkgconfig,
+  qtbase,
+  alsaLib, curl, faad2, ffmpeg, flac, fluidsynth, gdk-pixbuf, lame, libbs2b,
+  libcddb, libcdio, libcdio-paranoia, libcue, libjack2, libmad, libmms, libmodplug,
+  libmowgli, libnotify, libogg, libpulseaudio, libsamplerate, libsidplayfp,
+  libsndfile, libvorbis, libxml2, lirc, mpg123, neon, qtmultimedia, soxr,
+  wavpack, openmpt123
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "audacious";
-  version = "3.9";
+  version = "4.0.5";
 
   src = fetchurl {
-    url = "https://distfiles.audacious-media-player.org/audacious-${version}-gtk3.tar.bz2";
-    sha256 = "0dc7fg0v2l2j4h9cz1baz7rf4n0a5jgk09qvsj806sh6jp7w6ipm";
+    url = "http://distfiles.audacious-media-player.org/audacious-${version}.tar.bz2";
+    sha256 = "028zjgz0p7ys15lk2a30m5zcv9xrx3ga50wjsh4m4zxilgkakbji";
   };
-
   pluginsSrc = fetchurl {
-    url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}-gtk3.tar.bz2";
-    sha256 = "1gck37c5pnzxdhrnb1g75b5hi31s2dc952wifxns45pkdlayrmra";
+    url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}.tar.bz2";
+    sha256 = "0ny5w1agr9jaz5w3wyyxf1ygmzmd1sivaf97lcm4z4w6529520lz";
   };
 
-  nativeBuildInputs = [
-    pkgconfig wrapGAppsHook
-  ];
+  nativeBuildInputs = [ gettext pkgconfig ];
 
   buildInputs = [
-    gettext glib gtk3 libmowgli dbus-glib libxml2
-    xorg.libXcomposite gnome3.adwaita-icon-theme alsaLib libjack2
-    libpulseaudio fluidsynth libmad libogg libvorbis libcdio
-    libcddb flac ffmpeg_3 mpg123 libcue libmms libbs2b libsndfile
-    libmodplug libsamplerate soxr lirc curl wavpack neon faad2
-    lame libnotify libsidplayfp
-  ];
+    # Core dependencies
+    qtbase
 
-  configureFlags = [ "--enable-statusicon" ];
+    # Plugin dependencies
+    alsaLib curl faad2 ffmpeg flac fluidsynth gdk-pixbuf lame libbs2b libcddb
+    libcdio libcdio-paranoia libcue libjack2 libmad libmms libmodplug libmowgli
+    libnotify libogg libpulseaudio libsamplerate libsidplayfp libsndfile
+    libvorbis libxml2 lirc mpg123 neon qtmultimedia soxr wavpack
+    openmpt123
+  ];
 
   # Here we build both audacious and audacious-plugins in one
   # derivations, since they really expect to be in the same prefix.
@@ -44,10 +45,8 @@ stdenv.mkDerivation rec {
       source $stdenv/setup
       genericBuild
     )
-
     # Then build the plugins.
     (
-      dontWrapGApps=true
       nativeBuildInputs="$out $nativeBuildInputs" # to find audacious
       source $stdenv/setup
       rm -rfv audacious-*
@@ -56,12 +55,10 @@ stdenv.mkDerivation rec {
     )
   '';
 
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Audio player";
     homepage = "https://audacious-media-player.org/";
-    maintainers = with maintainers; [ eelco ramkromberg ];
+    maintainers = with maintainers; [ eelco ramkromberg ttuegel ];
     platforms = with platforms; linux;
     license = with licenses; [
       bsd2 bsd3 #https://github.com/audacious-media-player/audacious/blob/master/COPYING
diff --git a/pkgs/applications/audio/audacious/qt-5.nix b/pkgs/applications/audio/audacious/qt-5.nix
deleted file mode 100644
index 5c5cd65b412..00000000000
--- a/pkgs/applications/audio/audacious/qt-5.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{
-  mkDerivation, lib, fetchurl, fetchpatch,
-  gettext, pkgconfig,
-  qtbase,
-  alsaLib, curl, faad2, ffmpeg_3, flac, fluidsynth, gdk-pixbuf, lame, libbs2b,
-  libcddb, libcdio, libcue, libjack2, libmad, libmms, libmodplug,
-  libmowgli, libnotify, libogg, libpulseaudio, libsamplerate, libsidplayfp,
-  libsndfile, libvorbis, libxml2, lirc, mpg123, neon, qtmultimedia, soxr,
-  wavpack
-}:
-
-let
-  version = "3.9";
-  sources = {
-    "audacious-${version}" = fetchurl {
-      url = "http://distfiles.audacious-media-player.org/audacious-${version}.tar.bz2";
-      sha256 = "0pmhrhsjhqnrq3zh4rhfys5jas53ph5ijkq010dxg1n779kl901d";
-    };
-
-    "audacious-plugins-${version}" = fetchurl {
-      url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}.tar.bz2";
-      sha256 = "1f17r7ar0mngcf7z41s6xh073vjafw3i7iy9ijb0cd6bi48g5xwb";
-    };
-  };
-
-  qt510_plugins_patch = fetchpatch {
-    url = "https://github.com/audacious-media-player/audacious-plugins/commit/971f7ff7c3d8a0b9b420bf4fd19ab97755607637.patch";
-    sha256 = "15fy37syj9ygl2ibkkz3g3b9wd22vk9bjfmvqhhkpxphry2zwb17";
-  };
-in
-
-mkDerivation {
-  inherit version;
-  name = "audacious-qt5-${version}";
-
-  sourceFiles = lib.attrValues sources;
-  sourceRoots = lib.attrNames sources;
-
-  nativeBuildInputs = [ gettext pkgconfig ];
-
-  inherit qt510_plugins_patch;
-
-  buildInputs = [
-    # Core dependencies
-    qtbase
-
-    # Plugin dependencies
-    alsaLib curl faad2 ffmpeg_3 flac fluidsynth gdk-pixbuf lame libbs2b libcddb
-    libcdio libcue libjack2 libmad libmms libmodplug libmowgli
-    libnotify libogg libpulseaudio libsamplerate libsidplayfp libsndfile
-    libvorbis libxml2 lirc mpg123 neon qtmultimedia soxr wavpack
-  ];
-
-  configureFlags = [ "--enable-qt" "--disable-gtk" ];
-
-  # Here we build both audacious and audacious-plugins in one
-  # derivations, since they really expect to be in the same prefix.
-  # This is slighly tricky.
-  builder = builtins.toFile "builder.sh" ''
-    sourceFiles=( $sourceFiles )
-    sourceRoots=( $sourceRoots )
-    for (( i=0 ; i < ''${#sourceFiles[*]} ; i++ )); do
-
-      (
-        # only patch the plugins
-        if [ "$i" -eq "1" ]; then
-          patches=( $qt510_plugins_patch )
-        fi
-        src=''${sourceFiles[$i]}
-        sourceRoot=''${sourceRoots[$i]}
-        source $stdenv/setup
-        genericBuild
-      )
-
-      if [ $i == 0 ]; then
-        nativeBuildInputs="$out $nativeBuildInputs"
-      fi
-
-    done
-  '';
-
-  meta = with lib; {
-    description = "Audio player";
-    homepage = "https://audacious-media-player.org/";
-    maintainers = with maintainers; [ ttuegel ];
-    platforms = with platforms; linux;
-    license = with licenses; [
-      bsd2 bsd3 #https://github.com/audacious-media-player/audacious/blob/master/COPYING
-      gpl2 gpl3 lgpl2Plus #http://redmine.audacious-media-player.org/issues/46
-    ];
-  };
-}
diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix
index 18f2b4f67cd..20526c8c6c5 100644
--- a/pkgs/applications/audio/audacity/default.nix
+++ b/pkgs/applications/audio/audacity/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Sound editor with graphical UI";
-    homepage = "http://audacityteam.org/";
+    homepage = "https://www.audacityteam.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ lheckemann ];
     platforms = intersectLists platforms.linux platforms.x86; # fails on ARM
diff --git a/pkgs/applications/audio/axoloti/libusb1.nix b/pkgs/applications/audio/axoloti/libusb1.nix
index 49b788f6653..255cf3f5e3b 100644
--- a/pkgs/applications/audio/axoloti/libusb1.nix
+++ b/pkgs/applications/audio/axoloti/libusb1.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, systemd ? null, libobjc, IOKit, fetchpatch }:
+{ stdenv, lib, fetchurl, pkgconfig, systemd ? null, libobjc, IOKit, fetchpatch }:
 
 stdenv.mkDerivation rec {
   name = "libusb-1.0.19";
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
 
   preFixup = stdenv.lib.optionalString stdenv.isLinux ''
-    sed 's,-ludev,-L${systemd.lib}/lib -ludev,' -i $out/lib/libusb-1.0.la
+    sed 's,-ludev,-L${lib.getLib systemd}/lib -ludev,' -i $out/lib/libusb-1.0.la
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/audio/bambootracker/default.nix b/pkgs/applications/audio/bambootracker/default.nix
new file mode 100644
index 00000000000..a26431a82ed
--- /dev/null
+++ b/pkgs/applications/audio/bambootracker/default.nix
@@ -0,0 +1,51 @@
+{ mkDerivation
+, stdenv
+, fetchFromGitHub
+, qmake
+, qtbase
+, qtmultimedia
+, qttools
+, alsaSupport ? stdenv.hostPlatform.isLinux
+, alsaLib
+, pulseSupport ? stdenv.hostPlatform.isLinux
+, libpulseaudio
+, jackSupport ? stdenv.hostPlatform.isUnix
+, libjack2
+}:
+let
+
+  inherit (stdenv.lib) optional optionals;
+
+in
+mkDerivation rec {
+  pname = "bambootracker";
+  version = "0.4.4";
+
+  src = fetchFromGitHub {
+    owner = "rerrahkr";
+    repo = "BambooTracker";
+    rev = "v${version}";
+    sha256 = "0d0f4jqzknsiq725pvfndarfjg183f92rb0lim3wzshnsixr5vdc";
+  };
+
+  sourceRoot = "source/BambooTracker";
+
+  nativeBuildInputs = [ qmake qttools ];
+
+  buildInputs = [ qtbase qtmultimedia ]
+    ++ optional alsaSupport alsaLib
+    ++ optional pulseSupport libpulseaudio
+    ++ optional jackSupport libjack2;
+
+  qmakeFlags = [ "CONFIG+=release" "CONFIG-=debug" ]
+    ++ optional pulseSupport "CONFIG+=use_pulse"
+    ++ optionals jackSupport [ "CONFIG+=use_jack" "CONFIG+=jack_has_rename" ];
+
+  meta = with stdenv.lib; {
+    description = "A tracker for YM2608 (OPNA) which was used in NEC PC-8801/9801 series computers";
+    homepage = "https://github.com/rerrahkr/BambooTracker";
+    license = licenses.gpl2Only;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ OPNA2608 ];
+  };
+}
diff --git a/pkgs/applications/audio/bchoppr/default.nix b/pkgs/applications/audio/bchoppr/default.nix
new file mode 100644
index 00000000000..7d4d53408d2
--- /dev/null
+++ b/pkgs/applications/audio/bchoppr/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, pkg-config, cairo, libX11, lv2 }:
+
+stdenv.mkDerivation rec {
+  pname = "bchoppr";
+  version = "1.8.0";
+
+  src = fetchFromGitHub {
+    owner = "sjaehn";
+    repo = pname;
+    rev = "${version}";
+    sha256 = "1nd6byy75f0rbz9dm9drhxmpsfhxhg0y7q3v2m3098llynhy9k2j";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ cairo libX11 lv2 ];
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/sjaehn/BChoppr;
+    description = "An audio stream chopping LV2 plugin";
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
+    license = licenses.gpl3Plus;
+  };
+}
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
index 0ca556a16ef..7e5099f3c31 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
@@ -2,11 +2,11 @@
 
 bitwig-studio1.overrideAttrs (oldAttrs: rec {
   name = "bitwig-studio-${version}";
-  version = "3.2.2";
+  version = "3.2.7";
 
   src = fetchurl {
     url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
-    sha256 = "10zb78n75nbriyjah0m3syv3rv7qwbmj590z24hss7lifa3rs784";
+    sha256 = "1mj9kii4bnk5w2p18hypwy8swkpzkaqw98q5fsjq362x4qm0b3py";
   };
 
   buildInputs = oldAttrs.buildInputs ++ [ xorg.libXtst ];
diff --git a/pkgs/applications/audio/bjumblr/default.nix b/pkgs/applications/audio/bjumblr/default.nix
index de0cae7a21a..e1a5bee64b3 100644
--- a/pkgs/applications/audio/bjumblr/default.nix
+++ b/pkgs/applications/audio/bjumblr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "BJumblr";
-  version = "0.2";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "14z8113zkwykbhm1a8h2xs972dgifvlfij92b08jckyc7cbz84ys";
+    rev = version;
+    sha256 = "0kl6hrxmqrdf0195bfnzsa2h1073fgiqrfhg2276fm1954sm994v";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/audio/bs1770gain/default.nix b/pkgs/applications/audio/bs1770gain/default.nix
index 47de14ecb25..76a78935619 100644
--- a/pkgs/applications/audio/bs1770gain/default.nix
+++ b/pkgs/applications/audio/bs1770gain/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ffmpeg_3, sox }:
+{ stdenv, fetchurl, ffmpeg, sox }:
 
 stdenv.mkDerivation rec {
   pname = "bs1770gain";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1p6yz5q7czyf9ard65sp4kawdlkg40cfscr3b24znymmhs3p7rbk";
   };
 
-  buildInputs = [ ffmpeg_3 sox ];
+  buildInputs = [ ffmpeg sox ];
 
   NIX_CFLAGS_COMPILE = "-Wno-error";
 
diff --git a/pkgs/applications/audio/bschaffl/default.nix b/pkgs/applications/audio/bschaffl/default.nix
new file mode 100644
index 00000000000..c0d11e1fe5a
--- /dev/null
+++ b/pkgs/applications/audio/bschaffl/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, pkg-config, cairo, libX11, lv2 }:
+
+stdenv.mkDerivation rec {
+  pname = "bschaffl";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "sjaehn";
+    repo = pname;
+    rev = version;
+    sha256 = "1c09acqrbd387ba41f8ch1qykdap5h6cg9if5pgd16i4dmjnpghj";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ cairo libX11 lv2 ];
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/sjaehn/BSchaffl";
+    description = "Pattern-controlled MIDI amp & time stretch LV2 plugin";
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
+    license = licenses.gpl3;
+  };
+}
diff --git a/pkgs/applications/audio/bsequencer/default.nix b/pkgs/applications/audio/bsequencer/default.nix
index bb45a846b1b..37dcada961d 100644
--- a/pkgs/applications/audio/bsequencer/default.nix
+++ b/pkgs/applications/audio/bsequencer/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "BSEQuencer";
-  version = "1.4.2";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = "${version}";
-    sha256 = "1fz0p0ba00b7k7a8q9mxwj01jwl8xwh9a2npn00pbbdrg9zv4fdr";
+    sha256 = "0w21kzq695xy4i1r6xvvh7sad5m0rlmdgc7ykmrlzfsm1252dz80";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/audio/bslizr/default.nix b/pkgs/applications/audio/bslizr/default.nix
index bae2407ec7b..5a2675187c0 100644
--- a/pkgs/applications/audio/bslizr/default.nix
+++ b/pkgs/applications/audio/bslizr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "BSlizr";
-  version = "1.2.6";
+  version = "1.2.8";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = "${version}";
-    sha256 = "1l0znwvvqd2s24c652q54pkizlh86mvmr8h0qqp9xma0i575fcrh";
+    sha256 = "1f7xrljvsy7a1p8c7wln2zhwarl3ara7gbjxkpyh47wfdpigpdb0";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/audio/cava/default.nix b/pkgs/applications/audio/cava/default.nix
index f4028807ffc..26cc8cd78da 100644
--- a/pkgs/applications/audio/cava/default.nix
+++ b/pkgs/applications/audio/cava/default.nix
@@ -3,7 +3,7 @@
 
 stdenv.mkDerivation rec {
   pname = "cava";
-  version = "0.7.1";
+  version = "0.7.2";
 
   buildInputs = [
     alsaLib
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     owner = "karlstav";
     repo = "cava";
     rev = version;
-    sha256 = "0p2g3xxl2n425bghs1qnff30jaj9cba94j2gbhgxmwaxhz26vbk7";
+    sha256 = "1chc08spjf5i17n8y48aqzdxsj8vvf0r2l62ldw2pqgw60dacvs1";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/applications/audio/csound/default.nix b/pkgs/applications/audio/csound/default.nix
index 4b426609fea..d91e550334b 100644
--- a/pkgs/applications/audio/csound/default.nix
+++ b/pkgs/applications/audio/csound/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   # When updating, please check if https://github.com/csound/csound/issues/1078
   # has been fixed in the new version so we can use the normal fluidsynth
   # version and remove fluidsynth 1.x from nixpkgs again.
-  version = "6.13.0";
+  version = "6.15.0";
 
   enableParallelBuilding = true;
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "csound";
     repo = "csound";
     rev = version;
-    sha256 = "14822ybqyp31z18gky2y9zadr9dkbhabg97y139py73w7v3af1bh";
+    sha256 = "1vld6v55jxvv3ddr21kh41s4cdkhnm5wpffvd097zqrqh1aq08r0";
   };
 
   cmakeFlags = [ "-DBUILD_CSOUND_AC=0" ] # fails to find Score.hpp
diff --git a/pkgs/applications/audio/dragonfly-reverb/default.nix b/pkgs/applications/audio/dragonfly-reverb/default.nix
index b42929ff204..e5cbcd4a2e2 100644
--- a/pkgs/applications/audio/dragonfly-reverb/default.nix
+++ b/pkgs/applications/audio/dragonfly-reverb/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dragonfly-reverb";
-  version = "3.1.1";
+  version = "3.2.1";
 
   src = fetchFromGitHub {
     owner = "michaelwillis";
     repo = "dragonfly-reverb";
     rev = version;
-    sha256 = "188cm45hr0i33m4h2irql1wrsmsfis65s706wjiid0z59q47rf9p";
+    sha256 = "0vfm2510shah67k87mdyar4wr4vqwii59y9lqfhwm6blxparkrqa";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/audio/drumkv1/default.nix b/pkgs/applications/audio/drumkv1/default.nix
index 04277badfbe..8c956c53fb3 100644
--- a/pkgs/applications/audio/drumkv1/default.nix
+++ b/pkgs/applications/audio/drumkv1/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "drumkv1";
-  version = "0.9.14";
+  version = "0.9.15";
 
   src = fetchurl {
     url = "mirror://sourceforge/drumkv1/${pname}-${version}.tar.gz";
-    sha256 = "0fr7pkp55zvjxf7p22drs93fsjgvqhbd55vxi0srhp2s2wzz5qak";
+    sha256 = "108jk8p1sbm99plipf98ssij6dxaip1lmznibg8y2c4x0v2la6ab";
   };
 
   buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ];
diff --git a/pkgs/applications/audio/faust/faust2.nix b/pkgs/applications/audio/faust/faust2.nix
index e65414b2bca..515f8a6f9af 100644
--- a/pkgs/applications/audio/faust/faust2.nix
+++ b/pkgs/applications/audio/faust/faust2.nix
@@ -20,13 +20,13 @@ with stdenv.lib.strings;
 
 let
 
-  version = "unstable-2020-06-08";
+  version = "unstable-2020-08-27";
 
   src = fetchFromGitHub {
     owner = "grame-cncm";
     repo = "faust";
-    rev = "f0037e289987818b65d3f6fb1ad943aaad2a2b28";
-    sha256 = "0h08902rgx7rhzpng4h1qw8i2nzv50f79vrlbzdk5d35wa4zibh4";
+    rev = "c10f316fa90f338e248787ebf55e3795c3a0d70e";
+    sha256 = "068pm04ddafbsj2r8akdpqyzb0m8mp9ql0rgi83hcqs4ndr8v7sb";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/audio/faust/faust2jack.nix b/pkgs/applications/audio/faust/faust2jack.nix
index 370c25ecd74..0f703704961 100644
--- a/pkgs/applications/audio/faust/faust2jack.nix
+++ b/pkgs/applications/audio/faust/faust2jack.nix
@@ -4,6 +4,7 @@
 , alsaLib
 , opencv2
 , libsndfile
+, which
 }:
 
 faust.wrapWithBuildEnv {
@@ -21,6 +22,7 @@ faust.wrapWithBuildEnv {
     alsaLib
     opencv2
     libsndfile
+    which
   ];
 
 }
diff --git a/pkgs/applications/audio/faust/faust2jaqt.nix b/pkgs/applications/audio/faust/faust2jaqt.nix
index a2f1c2139a1..753208c54c2 100644
--- a/pkgs/applications/audio/faust/faust2jaqt.nix
+++ b/pkgs/applications/audio/faust/faust2jaqt.nix
@@ -3,6 +3,7 @@
 , opencv2
 , qt4
 , libsndfile
+, alsaLib
 , which
 }:
 
@@ -20,6 +21,7 @@ faust.wrapWithBuildEnv {
     opencv2
     qt4
     libsndfile
+    alsaLib
     which
   ];
 
diff --git a/pkgs/applications/audio/faust/faustlive.nix b/pkgs/applications/audio/faust/faustlive.nix
index 90bd8bc60ad..03ca4ce8eb0 100644
--- a/pkgs/applications/audio/faust/faustlive.nix
+++ b/pkgs/applications/audio/faust/faustlive.nix
@@ -1,26 +1,34 @@
 { stdenv, fetchFromGitHub
 , llvm, qt48Full, qrencode, libmicrohttpd, libjack2, alsaLib, faust, curl
-, bc, coreutils, which
+, bc, coreutils, which, libsndfile, pkg-config
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "faustlive";
-  version = "2017-12-05";
+  version = "2.5.4";
   src = fetchFromGitHub {
     owner = "grame-cncm";
     repo = "faustlive";
-    rev = "281fcb852dcd94f8c57ade1b2a7a3937542e1b2d";
-    sha256 = "0sw44yd9928rid9ib0b5mx2x129m7zljrayfm6jz6hrwdc5q3k9a";
+    rev = version;
+    sha256 = "0npn8fvq8iafyamq4wrj1k1bmk4xd0my2sp3gi5jdjfx6hc1sm3n";
+    fetchSubmodules = true;
   };
 
   buildInputs = [
     llvm qt48Full qrencode libmicrohttpd libjack2 alsaLib faust curl
-    bc coreutils which
+    bc coreutils which libsndfile pkg-config
   ];
 
   makeFlags = [ "PREFIX=$(out)" ];
 
-  preBuild = "patchShebangs Build/Linux/buildversion";
+  postPatch = "cd Build";
+
+  installPhase = ''
+    install -d "$out/bin"
+    install -d "$out/share/applications"
+    install FaustLive/FaustLive "$out/bin"
+    install rsrc/FaustLive.desktop "$out/share/applications"
+  '';
 
   meta = with stdenv.lib; {
     description = "A standalone just-in-time Faust compiler";
diff --git a/pkgs/applications/audio/fmit/default.nix b/pkgs/applications/audio/fmit/default.nix
index 114cf5e192f..f173d2fe02b 100644
--- a/pkgs/applications/audio/fmit/default.nix
+++ b/pkgs/applications/audio/fmit/default.nix
@@ -11,13 +11,13 @@ with stdenv.lib;
 
 mkDerivation rec {
   pname = "fmit";
-  version = "1.2.13";
+  version = "1.2.14";
 
   src = fetchFromGitHub {
     owner = "gillesdegottex";
     repo = "fmit";
     rev = "v${version}";
-    sha256 = "1qyskam053pvlap1av80rgp12pzhr92rs88vqs6s0ia3ypnixcc6";
+    sha256 = "1q062pfwz2vr9hbfn29fv54ip3jqfd9r99nhpr8w7mn1csy38azx";
   };
 
   nativeBuildInputs = [ qmake itstool wrapQtAppsHook ];
diff --git a/pkgs/applications/audio/freqtweak/default.nix b/pkgs/applications/audio/freqtweak/default.nix
new file mode 100644
index 00000000000..046c8c8aac8
--- /dev/null
+++ b/pkgs/applications/audio/freqtweak/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, pkg-config, fftwFloat, libjack2, libsigcxx, libxml2, wxGTK }:
+
+stdenv.mkDerivation rec {
+  pname = "freqtweak";
+  version = "unstable-2019-08-03";
+
+  src = fetchFromGitHub {
+    owner = "essej";
+    repo = pname;
+    rev = "d4205337558d36657a4ee6b3afb29358aa18c0fd";
+    sha256 = "10cq27mdgrrc54a40al9ahi0wqd0p2c1wxbdg518q8pzfxaxs5fi";
+  };
+
+  nativeBuildInputs = [ autoconf automake pkg-config ];
+  buildInputs = [ fftwFloat libjack2 libsigcxx libxml2 wxGTK ];
+
+  preConfigure = ''
+    sh autogen.sh
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = http://essej.net/freqtweak/;
+    description = "Realtime audio frequency spectral manipulation";
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
+    license = licenses.gpl2Plus;
+  };
+}
diff --git a/pkgs/applications/audio/ft2-clone/default.nix b/pkgs/applications/audio/ft2-clone/default.nix
index 60040119d64..1db5644fc32 100644
--- a/pkgs/applications/audio/ft2-clone/default.nix
+++ b/pkgs/applications/audio/ft2-clone/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ft2-clone";
-  version = "1.26";
+  version = "1.28";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "ft2-clone";
     rev = "v${version}";
-    sha256 = "0fqb4415qy2nwjz7ahi43nk795ifswb2b37sc7p5n9m4yc8h53wv";
+    sha256 = "1hbcl89cpx9bsafxrjyfx6vrbs4h3lnzmqm12smcvdg8ksfgzj0d";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/audio/geonkick/default.nix b/pkgs/applications/audio/geonkick/default.nix
new file mode 100644
index 00000000000..dcfb5426034
--- /dev/null
+++ b/pkgs/applications/audio/geonkick/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitLab, cmake, pkg-config, redkite, libsndfile, rapidjson, libjack2, lv2, libX11, cairo }:
+
+stdenv.mkDerivation rec {
+  pname = "geonkick";
+  version = "2.3.7";
+
+  src = fetchFromGitLab {
+    owner = "iurie-sw";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1wdcbwiyy6i5agq5lffkyilyc8mv1cc4mp9h0nybn240vb2flqc2";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ redkite libsndfile rapidjson libjack2 lv2 libX11 cairo ];
+
+  # https://github.com/iurie-sw/geonkick/issues/120
+  cmakeFlags = [ "-DGKICK_REDKITE_SDK_PATH=${redkite}" "-DCMAKE_INSTALL_LIBDIR=lib" ];
+
+  meta = {
+    homepage = "https://gitlab.com/iurie-sw/geonkick";
+    description = "A free software percussion synthesizer";
+    license = stdenv.lib.licenses.gpl3Plus;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+  };
+}
diff --git a/pkgs/applications/audio/giada/default.nix b/pkgs/applications/audio/giada/default.nix
index 5934b0746d1..ce3f3df84a4 100644
--- a/pkgs/applications/audio/giada/default.nix
+++ b/pkgs/applications/audio/giada/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "giada";
-  version = "0.16.3";
+  version = "0.16.3.1";
 
   src = fetchFromGitHub {
     owner = "monocasual";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1sysv5d0wq6ib47bqsn3wdzkqzjpzjrgzg15bkllbm67hiz9abhh";
+    sha256 = "0z1jrkggdn630i3j59j30apaa9s242y1wiawqp4g1n9dkg3r9a1j";
   };
 
   configureFlags = [
diff --git a/pkgs/applications/audio/gnome-podcasts/default.nix b/pkgs/applications/audio/gnome-podcasts/default.nix
index d5bec0c09e5..c7df55118c7 100644
--- a/pkgs/applications/audio/gnome-podcasts/default.nix
+++ b/pkgs/applications/audio/gnome-podcasts/default.nix
@@ -20,7 +20,7 @@
 }:
 
 rustPlatform.buildRustPackage rec {
-  version = "0.4.7";
+  version = "0.4.8";
   pname = "gnome-podcasts";
 
   src = fetchFromGitLab {
@@ -28,10 +28,10 @@ rustPlatform.buildRustPackage rec {
     owner = "World";
     repo = "podcasts";
     rev = version;
-    sha256 = "0vy5i77bv8c22ldhrnr4z6kx22zqnb1lg3s7y8673bqjgd7dppi0";
+    sha256 = "0y2332zjq7vf1v38wzwz98fs19vpzy9kl7y0xbdzqr303l59hjb1";
   };
 
-  cargoSha256 = "1dlbdxsf9p2jzrsclm43k95y8m3zcd41qd9ajg1ii3fpnahi58kd";
+  cargoSha256 = "1jbii9k4bkrivdk1ffr6556q1sgk9j4jbzwnn8vbxmksyl1x328q";
 
   nativeBuildInputs = [
     meson
diff --git a/pkgs/applications/audio/gspeech/default.nix b/pkgs/applications/audio/gspeech/default.nix
index f51eb338d28..920c06038fe 100644
--- a/pkgs/applications/audio/gspeech/default.nix
+++ b/pkgs/applications/audio/gspeech/default.nix
@@ -20,13 +20,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gSpeech";
-  version = "0.9.2";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "mothsart";
     repo = pname;
     rev = version;
-    sha256 = "11pvdpb9jjssp8nmlj21gs7ncgfm89kw26mfc8c2x8w2q4h92ja3";
+    sha256 = "1i0jwgxcn94nsi7c0ad0w77y04g04ka2szijzfqzqfnacdmdyrfc";
   };
 
   nativeBuildInputs = [
@@ -56,8 +56,8 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   postFixup = ''
-    wrapProgram $out/bin/gspeech --prefix PATH : ${lib.makeBinPath [ picotts ]}
-    wrapProgram $out/bin/gspeech-cli --prefix PATH : ${lib.makeBinPath [ picotts ]}
+    wrapProgram $out/bin/gspeech --prefix PATH : ${lib.makeBinPath [ picotts sox ]}
+    wrapProgram $out/bin/gspeech-cli --prefix PATH : ${lib.makeBinPath [ picotts sox ]}
   '';
 
   strictDeps = false;
diff --git a/pkgs/applications/audio/guitarix/default.nix b/pkgs/applications/audio/guitarix/default.nix
index 9b8475006cc..d74f1c8728f 100644
--- a/pkgs/applications/audio/guitarix/default.nix
+++ b/pkgs/applications/audio/guitarix/default.nix
@@ -42,16 +42,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "guitarix";
-  version = "0.40.0";
+  version = "0.41.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz";
-    sha256 = "0q9050499hcj19hvbxb069vxh5yclawjg04vryh46lxm4sfy9g57";
+    sha256 = "0qsfbyrrpb3bbdyq68k28mjql7kglxh8nqcw9jvja28x6x9ik5a0";
   };
 
-  # see: https://sourceforge.net/p/guitarix/bugs/105
-  patches = [ ./fix-build.patch ];
-
   nativeBuildInputs = [
     gettext
     hicolor-icon-theme
@@ -101,8 +98,6 @@ stdenv.mkDerivation rec {
     "--no-desktop-update"
     "--enable-nls"
     "--install-roboto-font"
-    "--includeresampler"
-    "--includeconvolver"
   ] ++ optional optimizationSupport "--optimization";
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/audio/guitarix/fix-build.patch b/pkgs/applications/audio/guitarix/fix-build.patch
deleted file mode 100644
index 4a0e4267776..00000000000
--- a/pkgs/applications/audio/guitarix/fix-build.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/LV2/xputty/xfilepicker.cpp
-+++ b/src/LV2/xputty/xfilepicker.cpp
-@@ -191,6 +191,6 @@
-     filepicker->selected_file = NULL;
-     filepicker->path = NULL;
-     filepicker->filter = NULL;
--    asprintf(&filepicker->path, path);
-+    asprintf(&filepicker->path, "%s", path);
-     assert(filepicker->path != NULL);
- }
diff --git a/pkgs/applications/audio/gwc/default.nix b/pkgs/applications/audio/gwc/default.nix
new file mode 100644
index 00000000000..d9631ac45e6
--- /dev/null
+++ b/pkgs/applications/audio/gwc/default.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, alsaLib
+, libpulseaudio
+, gtk2
+, hicolor-icon-theme
+, libsndfile
+, fftw
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gwc";
+  version = "0.22-04";
+
+  src = fetchFromGitHub {
+    owner = "AlisterH";
+    repo = pname;
+    rev = version;
+    sha256 = "0xvfra32dchnnyf9kj5s5xmqhln8jdrc9f0040hjr2dsb58y206p";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    alsaLib
+    libpulseaudio
+    gtk2
+    hicolor-icon-theme
+    libsndfile
+    fftw
+  ];
+
+  enableParallelBuilding = false; # Fails to generate machine.h in time.
+
+  meta = with stdenv.lib; {
+    description = "GUI application for removing noise (hiss, pops and clicks) from audio files";
+    homepage = "https://github.com/AlisterH/gwc/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ magnetophon ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/gxplugins-lv2/default.nix b/pkgs/applications/audio/gxplugins-lv2/default.nix
index 077bb407020..fa80611fc28 100644
--- a/pkgs/applications/audio/gxplugins-lv2/default.nix
+++ b/pkgs/applications/audio/gxplugins-lv2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "GxPlugins.lv2";
-  version = "0.7";
+  version = "0.8";
 
   src = fetchFromGitHub {
     owner = "brummer10";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0jqdqnkg7pg9plcbxy49p7gcs1aj6h0xf7y9gndmjmkw5yjn2940";
+    sha256 = "11iv7bwvvspm74pisqvcpsxpg9xi6b08hq4i8q67mri4mvy9hmal";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/audio/helm/default.nix b/pkgs/applications/audio/helm/default.nix
index 8459967a363..145ba68b08b 100644
--- a/pkgs/applications/audio/helm/default.nix
+++ b/pkgs/applications/audio/helm/default.nix
@@ -1,5 +1,16 @@
-{ stdenv, fetchFromGitHub , xorg, freetype, alsaLib, curl, libjack2
-, lv2, pkgconfig, libGLU, libGL }:
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, xorg
+, freetype
+, alsaLib
+, curl
+, libjack2
+, lv2
+, pkgconfig
+, libGLU
+, libGL
+}:
 
   stdenv.mkDerivation {
   version = "0.9.0";
@@ -20,7 +31,15 @@
 
   CXXFLAGS = "-DHAVE_LROUND";
 
-  patchPhase = ''
+  patches = [
+    # gcc9 compatibility https://github.com/mtytel/helm/pull/233
+    (fetchpatch {
+      url = "https://github.com/mtytel/helm/commit/cb611a80bd5a36d31bfc31212ebbf79aa86c6f08.patch";
+      sha256 = "1i2289srcfz17c3zzab6f51aznzdj62kk53l4afr32bkjh9s4ixk";
+    })
+  ];
+
+  prePatch = ''
     sed -i 's|usr/||g' Makefile
   '';
 
diff --git a/pkgs/applications/audio/hydrogen/0.nix b/pkgs/applications/audio/hydrogen/0.nix
new file mode 100644
index 00000000000..b3aff4e4c50
--- /dev/null
+++ b/pkgs/applications/audio/hydrogen/0.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, pkgconfig, cmake
+, alsaLib, boost, glib, lash, libjack2, libarchive, libsndfile, lrdf, qt4
+}:
+
+stdenv.mkDerivation rec {
+  version = "0.9.7";
+  pname = "hydrogen";
+
+  src = fetchurl {
+    url = "https://github.com/hydrogen-music/hydrogen/archive/${version}.tar.gz";
+    sha256 = "1dy2jfkdw0nchars4xi4isrz66fqn53a9qk13bqza7lhmsg3s3qy";
+  };
+
+  nativeBuildInputs = [ pkgconfig cmake ];
+  buildInputs = [
+    alsaLib boost glib lash libjack2 libarchive libsndfile lrdf qt4
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Advanced drum machine";
+    homepage = "http://www.hydrogen-music.org";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/applications/audio/hydrogen/default.nix b/pkgs/applications/audio/hydrogen/default.nix
index b3aff4e4c50..c6d307e2c16 100644
--- a/pkgs/applications/audio/hydrogen/default.nix
+++ b/pkgs/applications/audio/hydrogen/default.nix
@@ -1,19 +1,27 @@
-{ stdenv, fetchurl, pkgconfig, cmake
-, alsaLib, boost, glib, lash, libjack2, libarchive, libsndfile, lrdf, qt4
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, wrapQtAppsHook
+, alsaLib, ladspa-sdk, lash, libarchive, libjack2, liblo, libpulseaudio, libsndfile, lrdf
+, qtbase, qttools, qtxmlpatterns
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.7";
   pname = "hydrogen";
+  version = "1.0.1";
 
-  src = fetchurl {
-    url = "https://github.com/hydrogen-music/hydrogen/archive/${version}.tar.gz";
-    sha256 = "1dy2jfkdw0nchars4xi4isrz66fqn53a9qk13bqza7lhmsg3s3qy";
+  src = fetchFromGitHub {
+    owner = "hydrogen-music";
+    repo = pname;
+    rev = version;
+    sha256 = "0snljpvbcgikhz610c325dgvayi0k512p3bglck9vvi90wsqx7l1";
   };
 
-  nativeBuildInputs = [ pkgconfig cmake ];
+  nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
   buildInputs = [
-    alsaLib boost glib lash libjack2 libarchive libsndfile lrdf qt4
+    alsaLib ladspa-sdk lash libarchive libjack2 liblo libpulseaudio libsndfile lrdf
+    qtbase qttools qtxmlpatterns
+  ];
+
+  cmakeFlags = [
+    "-DWANT_DEBUG=OFF"
   ];
 
   meta = with stdenv.lib; {
@@ -21,6 +29,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.hydrogen-music.org";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = [ maintainers.goibhniu ];
+    maintainers = with maintainers; [ goibhniu orivej ];
   };
 }
diff --git a/pkgs/applications/audio/hydrogen/unstable.nix b/pkgs/applications/audio/hydrogen/unstable.nix
deleted file mode 100644
index 2f220f8d31a..00000000000
--- a/pkgs/applications/audio/hydrogen/unstable.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig, wrapQtAppsHook
-, alsaLib, ladspa-sdk, lash, libarchive, libjack2, liblo, libpulseaudio, libsndfile, lrdf
-, qtbase, qttools, qtxmlpatterns
-}:
-
-stdenv.mkDerivation rec {
-  pname = "hydrogen";
-  version = "1.0.0-beta2";
-
-  src = fetchFromGitHub {
-    owner = "hydrogen-music";
-    repo = pname;
-    rev = version;
-    sha256 = "1s3jrdyjpm92flw9mkkxchnj0wz8nn1y1kifii8ws252iiqjya4a";
-  };
-
-  nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
-  buildInputs = [
-    alsaLib ladspa-sdk lash libarchive libjack2 liblo libpulseaudio libsndfile lrdf
-    qtbase qttools qtxmlpatterns
-  ];
-
-  cmakeFlags = [
-    "-DWANT_DEBUG=OFF"
-  ];
-
-  meta = with stdenv.lib; {
-    description = "Advanced drum machine";
-    homepage = "http://www.hydrogen-music.org";
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ goibhniu orivej ];
-  };
-}
diff --git a/pkgs/applications/audio/jackmix/default.nix b/pkgs/applications/audio/jackmix/default.nix
index c3a46439ba7..ad01a3ff76e 100644
--- a/pkgs/applications/audio/jackmix/default.nix
+++ b/pkgs/applications/audio/jackmix/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, scons, qt4, lash, libjack2, jack ? libjack2 }:
+{ stdenv, fetchurl, pkgconfig, sconsPackages, qt4, lash, libjack2, jack ? libjack2 }:
 
 stdenv.mkDerivation {
   name = "jackmix-0.5.2";
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
 
   patches = [ ./no_error.patch ];
 
-  nativeBuildInputs = [ scons.py2 pkgconfig ];
+  nativeBuildInputs = [ sconsPackages.scons_3_1_2 pkgconfig ];
   buildInputs = [
     qt4
     lash
diff --git a/pkgs/applications/audio/jalv/default.nix b/pkgs/applications/audio/jalv/default.nix
index bbf66a74bc5..39f1467138d 100644
--- a/pkgs/applications/audio/jalv/default.nix
+++ b/pkgs/applications/audio/jalv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gtk3, libjack2, lilv, lv2, pkgconfig, python
+{ stdenv, fetchurl, gtk2, libjack2, lilv, lv2, pkgconfig, python
 , serd, sord , sratom, suil, wafHook }:
 
 stdenv.mkDerivation  rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation  rec {
 
   nativeBuildInputs = [ pkgconfig wafHook ];
   buildInputs = [
-    gtk3 libjack2 lilv lv2 python serd sord sratom suil
+    gtk2 libjack2 lilv lv2 python serd sord sratom suil
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/audio/jamulus/default.nix b/pkgs/applications/audio/jamulus/default.nix
index 498d980676d..b8763f07b45 100644
--- a/pkgs/applications/audio/jamulus/default.nix
+++ b/pkgs/applications/audio/jamulus/default.nix
@@ -3,12 +3,12 @@
 
 mkDerivation rec {
   pname = "jamulus";
-  version = "3.5.6";
+  version = "3.5.9";
   src = fetchFromGitHub {
     owner = "corrados";
     repo = "jamulus";
     rev = "r${stdenv.lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "00vd6kffsf3vqfwaxjvln63x3n0q32f385qc51fn5iyj54410x0f";
+    sha256 = "0h2m1sahi8cg15k6wa9m2d38va2cs3nvi0q8rpr9vak8g8d3p460";
   };
 
   nativeBuildInputs = [ pkg-config qmake ];
diff --git a/pkgs/applications/audio/kapitonov-plugins-pack/default.nix b/pkgs/applications/audio/kapitonov-plugins-pack/default.nix
new file mode 100644
index 00000000000..53b55332f5d
--- /dev/null
+++ b/pkgs/applications/audio/kapitonov-plugins-pack/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, faust, meson, ninja, pkg-config
+, boost, cairo, fftw, gnome3, ladspa-sdk, libxcb, lv2, xcbutilwm
+, zita-convolver, zita-resampler
+ }:
+
+stdenv.mkDerivation rec {
+  pname = "kapitonov-plugins-pack";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "olegkapitonov";
+    repo = pname;
+    rev = version;
+    sha256 = "1mxi7b1vrzg25x85lqk8c77iziqrqyz18mqkfjlz09sxp5wfs9w4";
+  };
+
+  nativeBuildInputs = [
+    faust
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    boost
+    cairo
+    fftw
+    ladspa-sdk
+    libxcb
+    lv2
+    xcbutilwm
+    zita-convolver
+    zita-resampler
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Set of LADSPA and LV2 plugins for guitar sound processing";
+    homepage = https://github.com/olegkapitonov/Kapitonov-Plugins-Pack;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ magnetophon ];
+  };
+}
diff --git a/pkgs/applications/audio/kmetronome/default.nix b/pkgs/applications/audio/kmetronome/default.nix
new file mode 100644
index 00000000000..30a4d5f3684
--- /dev/null
+++ b/pkgs/applications/audio/kmetronome/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, cmake, pkgconfig, qttools, alsaLib, drumstick, qtbase, qtsvg }:
+
+stdenv.mkDerivation rec {
+  pname = "kmetronome";
+  version = "1.0.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tar.bz2";
+    sha256 = "0bzm6vzlm32kjrgn1nvp096b2d41ybys2sk145nhy992wg56v32s";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig qttools ];
+
+  buildInputs = [ alsaLib drumstick qtbase qtsvg ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://kmetronome.sourceforge.io/";
+    description = "ALSA MIDI metronome with Qt interface";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ orivej ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/librespot/cargo-lock.patch b/pkgs/applications/audio/librespot/cargo-lock.patch
new file mode 100644
index 00000000000..129ba96987a
--- /dev/null
+++ b/pkgs/applications/audio/librespot/cargo-lock.patch
@@ -0,0 +1,137 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index 533b47d..9c9c2f6 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -932,7 +932,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "librespot"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+  "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+  "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -940,12 +940,12 @@ dependencies = [
+  "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
+  "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+  "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-audio 0.1.2",
+- "librespot-connect 0.1.2",
+- "librespot-core 0.1.2",
+- "librespot-metadata 0.1.2",
+- "librespot-playback 0.1.2",
+- "librespot-protocol 0.1.2",
++ "librespot-audio 0.1.3",
++ "librespot-connect 0.1.3",
++ "librespot-core 0.1.3",
++ "librespot-metadata 0.1.3",
++ "librespot-playback 0.1.3",
++ "librespot-protocol 0.1.3",
+  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+  "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+  "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -961,7 +961,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "librespot-audio"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+  "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+  "bit-set 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -969,7 +969,7 @@ 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)",
+  "lewton 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-core 0.1.2",
++ "librespot-core 0.1.3",
+  "librespot-tremor 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+  "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -980,7 +980,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "librespot-connect"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+  "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+  "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -990,9 +990,9 @@ dependencies = [
+  "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+  "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
+  "libmdns 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-core 0.1.2",
+- "librespot-playback 0.1.2",
+- "librespot-protocol 0.1.2",
++ "librespot-core 0.1.3",
++ "librespot-playback 0.1.3",
++ "librespot-protocol 0.1.3",
+  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+  "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+  "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1007,7 +1007,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "librespot-core"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+  "aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+  "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1020,7 +1020,7 @@ dependencies = [
+  "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
+  "hyper-proxy 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
+  "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-protocol 0.1.2",
++ "librespot-protocol 0.1.3",
+  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+  "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+  "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1043,12 +1043,12 @@ dependencies = [
+ 
+ [[package]]
+ name = "librespot-metadata"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+  "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+  "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-core 0.1.2",
+- "librespot-protocol 0.1.2",
++ "librespot-core 0.1.3",
++ "librespot-protocol 0.1.3",
+  "linear-map 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+  "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1056,7 +1056,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "librespot-playback"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+  "alsa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+  "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1068,9 +1068,9 @@ dependencies = [
+  "jack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
+  "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+  "libpulse-sys 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-audio 0.1.2",
+- "librespot-core 0.1.2",
+- "librespot-metadata 0.1.2",
++ "librespot-audio 0.1.3",
++ "librespot-core 0.1.3",
++ "librespot-metadata 0.1.3",
+  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+  "portaudio-rs 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+  "rodio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1081,7 +1081,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "librespot-protocol"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+  "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+  "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/pkgs/applications/audio/librespot/default.nix b/pkgs/applications/audio/librespot/default.nix
index 468cf57cdcf..6061edac025 100644
--- a/pkgs/applications/audio/librespot/default.nix
+++ b/pkgs/applications/audio/librespot/default.nix
@@ -1,22 +1,21 @@
-{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, openssl
-, withRodio ? true
-, withALSA ? true, alsaLib ? null
-, withPulseAudio ? false, libpulseaudio ? null
-, withPortAudio ? false, portaudio ? null
-}:
+{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, openssl, withRodio ? true
+, withALSA ? true, alsaLib ? null, withPulseAudio ? false, libpulseaudio ? null
+, withPortAudio ? false, portaudio ? null }:
 
 rustPlatform.buildRustPackage rec {
   pname = "librespot";
-  version = "0.1.1";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "librespot-org";
     repo = "librespot";
     rev = "v${version}";
-    sha256 = "1sdbjv8w2mfpv82rx5iy4s532l1767vmlrg9d8khnvh8vrm2lshy";
+    sha256 = "1ixh47yvaamrpzagqsiimc3y6bi4nbym95843d23am55zkrgnmy5";
   };
 
-  cargoSha256 = "0zi50imjvalwl6pxl35qrmbg74j5xdfaws8v69am4g9agbfjvlms";
+  cargoSha256 = "1csls8kzzx28ng6w9vdwhnnav5sqp2m5fj430db5z306xh5acg3d";
+
+  cargoPatches = [ ./cargo-lock.patch ];
 
   cargoBuildFlags = with stdenv.lib; [
     "--no-default-features"
@@ -32,8 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ pkgconfig ];
 
-  buildInputs = [ openssl ]
-    ++ stdenv.lib.optional withALSA alsaLib
+  buildInputs = [ openssl ] ++ stdenv.lib.optional withALSA alsaLib
     ++ stdenv.lib.optional withPulseAudio libpulseaudio
     ++ stdenv.lib.optional withPortAudio portaudio;
 
diff --git a/pkgs/applications/audio/lingot/default.nix b/pkgs/applications/audio/lingot/default.nix
index 256f5766c41..f229e15871e 100644
--- a/pkgs/applications/audio/lingot/default.nix
+++ b/pkgs/applications/audio/lingot/default.nix
@@ -5,8 +5,10 @@
 , gtk3
 , wrapGAppsHook
 , alsaLib
+, libjack2
 , libpulseaudio
 , fftw
+, jackSupport ? true
 }:
 
 stdenv.mkDerivation rec {
@@ -29,11 +31,9 @@ stdenv.mkDerivation rec {
     alsaLib
     libpulseaudio
     fftw
-  ];
+  ] ++ stdenv.lib.optional jackSupport libjack2;
 
-  configureFlags = [
-    "--disable-jack"
-  ];
+  configureFlags = stdenv.lib.optional (!jackSupport) "--disable-jack";
 
   meta = {
     description = "Not a Guitar-Only tuner";
diff --git a/pkgs/applications/audio/lmms/default.nix b/pkgs/applications/audio/lmms/default.nix
index c243e9beb23..b01c4055e40 100644
--- a/pkgs/applications/audio/lmms/default.nix
+++ b/pkgs/applications/audio/lmms/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "lmms";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "LMMS";
     repo = "lmms";
     rev = "v${version}";
-    sha256 = "08k2nfj0rw9mahr7pr90n79wviqmjmflrgcljc6y3x30v84wbp26";
+    sha256 = "006hwv1pbh3y5whsxkjk20hsbgwkzr4dawz43afq1gil69y7xpda";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/audio/lollypop/default.nix b/pkgs/applications/audio/lollypop/default.nix
index e4b8b906fa6..f325185920d 100644
--- a/pkgs/applications/audio/lollypop/default.nix
+++ b/pkgs/applications/audio/lollypop/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchgit
+, nix-update-script
 , meson
 , ninja
 , pkgconfig
@@ -23,7 +24,7 @@
 
 python3.pkgs.buildPythonApplication rec  {
   pname = "lollypop";
-  version = "1.2.35";
+  version = "1.3.2";
 
   format = "other";
   doCheck = false;
@@ -32,7 +33,7 @@ python3.pkgs.buildPythonApplication rec  {
     url = "https://gitlab.gnome.org/World/lollypop";
     rev = "refs/tags/${version}";
     fetchSubmodules = true;
-    sha256 = "19nw9qh17yyi9ih1nwngbbwjx1vr26haqhmzsdqf0yjgsgf9vldx";
+    sha256 = "14854j1dhq67s1vzs0lqy345vbl6f5w8nb36n4i33fmpva2flsk3";
   };
 
   nativeBuildInputs = [
@@ -91,6 +92,13 @@ python3.pkgs.buildPythonApplication rec  {
     makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+
   meta = with lib; {
     changelog = "https://gitlab.gnome.org/World/lollypop/tags/${version}";
     description = "A modern music player for GNOME";
diff --git a/pkgs/applications/audio/lsp-plugins/default.nix b/pkgs/applications/audio/lsp-plugins/default.nix
index 435da644073..fadc7e8f184 100644
--- a/pkgs/applications/audio/lsp-plugins/default.nix
+++ b/pkgs/applications/audio/lsp-plugins/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lsp-plugins";
-  version = "1.1.22";
+  version = "1.1.24";
 
   src = fetchFromGitHub {
     owner = "sadko4u";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "0s0i0kf5nqxxywckg03fds1w7696ly60rnlljzqvp7qfgzps1r6c";
+    sha256 = "0rzgzkg6wvhjcf664i16nz4v30drgv80s34bhdflcjzx2x7ix5zk";
   };
 
   nativeBuildInputs = [ pkgconfig php makeWrapper ];
diff --git a/pkgs/applications/audio/lv2-cpp-tools/default.nix b/pkgs/applications/audio/lv2-cpp-tools/default.nix
new file mode 100644
index 00000000000..d98135fb014
--- /dev/null
+++ b/pkgs/applications/audio/lv2-cpp-tools/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchzip, pkgconfig, lv2, gtkmm2, boost }:
+
+stdenv.mkDerivation rec {
+  pname = "lv2-cpp-tools";
+  version = "1.0.5";
+
+  src = fetchzip {
+    url = "http://deb.debian.org/debian/pool/main/l/lv2-c++-tools/lv2-c++-tools_${version}.orig.tar.bz2";
+    sha256 = "039bq7d7s2bhfcnlsfq0mqxr9a9iqwg5bwcpxfi24c6yl6krydsi";
+  };
+
+  preConfigure = ''
+    sed -r 's,/bin/bash,${stdenv.shell},g' -i ./configure
+    sed -r 's,/sbin/ldconfig,ldconfig,g' -i ./Makefile.template
+  '';
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ lv2 gtkmm2 boost ];
+
+  meta = with stdenv.lib; {
+    homepage = "http://ll-plugins.nongnu.org/hacking.html";
+    description = "Tools and libraries that may come in handy when writing LV2 plugins in C++";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.michalrus ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/mamba/default.nix b/pkgs/applications/audio/mamba/default.nix
new file mode 100644
index 00000000000..a3e33471cee
--- /dev/null
+++ b/pkgs/applications/audio/mamba/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, cairo
+, libX11
+, libjack2
+, liblo
+, libsigcxx
+, libsmf
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mamba";
+  version = "1.3";
+
+  src = fetchFromGitHub {
+    owner = "brummer10";
+    repo = "Mamba";
+    rev = "v${version}";
+    sha256 = "1wa3f9c4l239mpxa7nxx8hajy4icn40vpvaxq5l1qzskl74w072d";
+    fetchSubmodules = true;
+  };
+
+  patches = [ ./fix-build.patch ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cairo libX11 libjack2 liblo libsigcxx libsmf ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/brummer10/Mamba";
+    description = "Virtual MIDI keyboard for Jack Audio Connection Kit";
+    license = licenses.bsd0;
+    maintainers = with maintainers; [ magnetophon orivej ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/mamba/fix-build.patch b/pkgs/applications/audio/mamba/fix-build.patch
new file mode 100644
index 00000000000..ed366963676
--- /dev/null
+++ b/pkgs/applications/audio/mamba/fix-build.patch
@@ -0,0 +1,10 @@
+--- a/libxputty/Build/Makefile
++++ b/libxputty/Build/Makefile
+@@ -20,1 +20,1 @@
+-	LDFLAGS += -fPIC `pkg-config --static --cflags --libs cairo x11` -lm
++	LDFLAGS += -fPIC `pkg-config --cflags --libs cairo x11` -lm
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -84,1 +83,1 @@ ifneq ("$(wildcard ./$(BUILD_DIR))","")
+-	update-desktop-database
++	update-desktop-database || true
diff --git a/pkgs/applications/audio/mellowplayer/default.nix b/pkgs/applications/audio/mellowplayer/default.nix
new file mode 100644
index 00000000000..93c0b36bbb0
--- /dev/null
+++ b/pkgs/applications/audio/mellowplayer/default.nix
@@ -0,0 +1,70 @@
+{ cmake
+, fetchFromGitLab
+, lib
+, libnotify
+, mkDerivation
+, pkgconfig
+, qtbase
+, qtdeclarative
+, qtgraphicaleffects
+, qtquickcontrols2
+, qttools
+, qtwebengine
+}:
+
+mkDerivation rec {
+  pname = "MellowPlayer";
+  version = "3.6.5";
+
+  src = fetchFromGitLab {
+    owner = "ColinDuquesnoy";
+    repo = "MellowPlayer";
+    rev = version;
+    sha256 = "1fnfqyy52hnh9vwq4rcndcqwh0zsm1sd3vi4h5gzaj4zbniq5v2f";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [
+    libnotify
+    qtbase
+    qtdeclarative
+    qtgraphicaleffects
+    qtquickcontrols2
+    qttools
+    qtwebengine
+  ];
+
+  doCheck = true;
+
+  cmakeFlags = [ "-DBUILD_TESTS=ON" ];
+
+  preCheck = ''
+    # Running the tests requires a location at the home directory for logging.
+    export HOME="$NIX_BUILD_TOP/home"
+    mkdir -p "$HOME/.local/share/MellowPlayer.Tests/MellowPlayer.Tests/Logs"
+
+    # Without this, the tests fail because they cannot create the QT Window
+    export QT_QPA_PLATFORM=offscreen
+  ''
+  # TODO: The tests are failing because it can't locate QT plugins. Is there a better way to do this?
+  + (builtins.concatStringsSep "\n" (lib.lists.flatten (builtins.map
+      (pkg: [
+        (lib.optionalString (pkg ? qtPluginPrefix) ''
+          export QT_PLUGIN_PATH="${pkg}/${pkg.qtPluginPrefix}"''${QT_PLUGIN_PATH:+':'}$QT_PLUGIN_PATH
+        '')
+
+        (lib.optionalString (pkg ? qtQmlPrefix) ''
+          export QML2_IMPORT_PATH="${pkg}/${pkg.qtQmlPrefix}"''${QML2_IMPORT_PATH:+':'}$QML2_IMPORT_PATH
+        '')
+      ]) buildInputs)));
+
+  meta = with lib; {
+    inherit (qtbase.meta) platforms;
+
+    description = "Cloud music integration for your desktop.";
+    homepage = "https://gitlab.com/ColinDuquesnoy/MellowPlayer";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/pkgs/applications/audio/mixxx/default.nix b/pkgs/applications/audio/mixxx/default.nix
index f889d9e1e8d..576dd4d97b3 100644
--- a/pkgs/applications/audio/mixxx/default.nix
+++ b/pkgs/applications/audio/mixxx/default.nix
@@ -3,7 +3,7 @@
 , libid3tag, libmad, libopus, libshout, libsndfile, libusb1, libvorbis
 , libGLU, libxcb, lilv, lv2, opusfile
 , pkgconfig, portaudio, portmidi, protobuf, qtbase, qtscript, qtsvg
-, qtx11extras, rubberband, scons, sqlite, taglib, upower, vamp-plugin-sdk
+, qtx11extras, rubberband, sconsPackages, sqlite, taglib, upower, vamp-plugin-sdk
 }:
 
 let
@@ -19,16 +19,16 @@ let
 in
 mkDerivation rec {
   pname = "mixxx";
-  version = "2.2.3";
+  version = "2.2.4";
 
   src = fetchFromGitHub {
     owner = "mixxxdj";
     repo = "mixxx";
     rev = "release-${version}";
-    sha256 = "1h7q25fv62c5m74d4cn1m6mpanmqpbl2wqbch4qvn488jb2jw1dv";
+    sha256 = "1dj9li8av9b2kbm76jvvbdmihy1pyrw0s4xd7dd524wfhwr1llxr";
   };
 
-  nativeBuildInputs = [ scons.py2 ];
+  nativeBuildInputs = [ sconsPackages.scons_3_1_2 ];
   buildInputs = [
     chromaprint fftw flac faad2 glibcLocales mp4v2 libid3tag libmad libopus libshout241 libsndfile
     libusb1 libvorbis libxcb libGLU lilv lv2 opusfile pkgconfig portaudio portmidi protobuf qtbase qtscript qtsvg
@@ -52,7 +52,7 @@ mkDerivation rec {
     homepage = "https://mixxx.org";
     description = "Digital DJ mixing software";
     license = licenses.gpl2Plus;
-    maintainers = [ maintainers.aszlig maintainers.goibhniu maintainers.bfortz ];
+    maintainers = [ maintainers.goibhniu maintainers.bfortz ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/molot-lite/default.nix b/pkgs/applications/audio/molot-lite/default.nix
new file mode 100644
index 00000000000..5c5aa505537
--- /dev/null
+++ b/pkgs/applications/audio/molot-lite/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, unzip, lv2 }:
+
+stdenv.mkDerivation {
+  pname = "molot-lite";
+  version = "unstable-2014-04-23";
+
+  src = fetchurl {
+    # fetchzip does not accept urls that do not end with .zip.
+    url = "https://sourceforge.net/p/molot/code/ci/c4eddc426f8d5821e8ebcf1d67265365e4c8c52a/tree/molot_src.zip?format=raw";
+    sha256 = "1c47dwfgrmn9459px8s5zikcqyr0777v226qzcxlr6azlcjwr51b";
+  };
+
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ lv2 ];
+
+  unpackPhase = ''
+    unzip $src
+  '';
+
+  buildPhase = ''
+    make -C Molot_Mono_Lite
+    make -C Molot_Stereo_Lite
+  '';
+
+  installPhase = ''
+    make install INSTALL_DIR=$out/lib/lv2 -C Molot_Mono_Lite
+    make install INSTALL_DIR=$out/lib/lv2 -C Molot_Stereo_Lite
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Stereo and mono audio signal dynamic range compressor in LV2 format";
+    homepage = "https://sourceforge.net/projects/molot/";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/mooSpace/default.nix b/pkgs/applications/audio/mooSpace/default.nix
new file mode 100644
index 00000000000..f6958c5e974
--- /dev/null
+++ b/pkgs/applications/audio/mooSpace/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+  pname = "mooSpace";
+  version = "unstable-2020-06-10";
+
+  src = fetchFromGitHub {
+    owner = "modularev";
+    repo = pname;
+    rev = "e5440407ea6ef9f7fcca838383b2b9a388c22874";
+    sha256 = "10vsbddf6d7i06040850v8xkmqh3bqawczs29kfgakair809wqxl";
+  };
+
+  buildInputs = [ faust2jaqt faust2lv2 ];
+
+  patchPhase = "mv ${pname}_faust.dsp ${pname}.dsp";
+
+  buildPhase = ''
+    faust2jaqt -time -vec -t 0 ${pname}.dsp
+    faust2lv2  -time -vec -t 0 -gui ${pname}.dsp
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ${pname} $out/bin/
+      mkdir -p $out/lib/lv2
+      cp -r ${pname}.lv2 $out/lib/lv2
+  '';
+
+  meta = {
+    description = "Variable reverb audio effect, jack and lv2";
+    homepage = "https://github.com/modularev/mooSpace";
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+  };
+}
diff --git a/pkgs/applications/audio/mopidy/default.nix b/pkgs/applications/audio/mopidy/default.nix
index 6c2a7d9fe33..23322ca5663 100644
--- a/pkgs/applications/audio/mopidy/default.nix
+++ b/pkgs/applications/audio/mopidy/default.nix
@@ -40,6 +40,8 @@ let
 
     mopidy-iris = callPackage ./iris.nix { };
 
+    mopidy-tunein = callPackage ./tunein.nix { };
+
   };
 
 in self
diff --git a/pkgs/applications/audio/mopidy/iris.nix b/pkgs/applications/audio/mopidy/iris.nix
index 5cc3a957d26..467ba6fe3f7 100644
--- a/pkgs/applications/audio/mopidy/iris.nix
+++ b/pkgs/applications/audio/mopidy/iris.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "Mopidy-Iris";
-  version = "3.49.0";
+  version = "3.50.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0zddm7286iwx437gjz47m4g28s8gdcxnm2hmly9w1dzi08aa4fas";
+    sha256 = "04miwf0dqb8jir9g7xkfnn3l62bdn74ap03kqzz2v3byg64f1p0g";
   };
 
   propagatedBuildInputs = [
@@ -14,7 +14,7 @@ python3Packages.buildPythonApplication rec {
   ] ++ (with python3Packages; [
     configobj
     requests
-    tornado_4
+    tornado
   ]);
 
   # no tests implemented
diff --git a/pkgs/applications/audio/mopidy/mopidy.nix b/pkgs/applications/audio/mopidy/mopidy.nix
index ae65d9b2f6e..28216020b78 100644
--- a/pkgs/applications/audio/mopidy/mopidy.nix
+++ b/pkgs/applications/audio/mopidy/mopidy.nix
@@ -21,7 +21,7 @@ pythonPackages.buildPythonApplication rec {
   ];
 
   propagatedBuildInputs = with pythonPackages; [
-    gst-python pygobject3 pykka tornado_4 requests setuptools
+    gst-python pygobject3 pykka tornado requests setuptools
   ] ++ stdenv.lib.optional (!stdenv.isDarwin) dbus-python;
 
   # There are no tests
diff --git a/pkgs/applications/audio/mopidy/tunein.nix b/pkgs/applications/audio/mopidy/tunein.nix
new file mode 100644
index 00000000000..569d08fb4a0
--- /dev/null
+++ b/pkgs/applications/audio/mopidy/tunein.nix
@@ -0,0 +1,28 @@
+{ stdenv, python3Packages, mopidy }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "mopidy-tunein";
+  version = "1.0.0";
+
+  src = python3Packages.fetchPypi {
+    inherit version;
+    pname = "Mopidy-TuneIn";
+    sha256 = "0insasf4w8ajsqjh5zmax7pkzmrk1p245vh4y8ddicldj45p6qfj";
+  };
+
+  propagatedBuildInputs = [
+    mopidy
+  ];
+
+  # tests fail with "ValueError: Namespace Gst not available" in mopidy itself
+  doCheck = false;
+
+  pythonImportsCheck = [ "mopidy_tunein.tunein" ];
+
+  meta = with stdenv.lib; {
+    description = "Mopidy extension for playing music from tunein.";
+    homepage = "https://github.com/kingosticks/mopidy-tunein";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/applications/audio/mopidy/youtube.nix b/pkgs/applications/audio/mopidy/youtube.nix
index ac16c182a50..a115812b86a 100644
--- a/pkgs/applications/audio/mopidy/youtube.nix
+++ b/pkgs/applications/audio/mopidy/youtube.nix
@@ -2,12 +2,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "mopidy-youtube";
-  version = "3.0";
+  version = "3.1";
 
   src = python3Packages.fetchPypi {
     inherit version;
     pname = "Mopidy-YouTube";
-    sha256 = "0x1q9rfnjx65n6hi8s5rw5ff4xv55h63zy52fwm8aksdnzppr7gd";
+    sha256 = "1bn3nxianbal9f81z9wf2cxi893hndvrz2zdqvh1zpxrhs0cr038";
   };
 
   patchPhase = "sed s/bs4/beautifulsoup4/ -i setup.cfg";
diff --git a/pkgs/applications/audio/mpg123/default.nix b/pkgs/applications/audio/mpg123/default.nix
index 30f40e226de..21dffa8d509 100644
--- a/pkgs/applications/audio/mpg123/default.nix
+++ b/pkgs/applications/audio/mpg123/default.nix
@@ -3,11 +3,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "mpg123-1.26.1";
+  name = "mpg123-1.26.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/mpg123/${name}.tar.bz2";
-    sha256 = "0cp01wdy77ggzqzzasxd5jd9iypcly5m4c89idc9mpgknyd65mkl";
+    sha256 = "0vkcfdx0mqq6lmpczsmpa2jsb0s6dryx3i7gvr32i3w9b9w9ij9h";
   };
 
   buildInputs = stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
diff --git a/pkgs/applications/audio/muse/default.nix b/pkgs/applications/audio/muse/default.nix
index 87f86306b48..6ba29226b58 100644
--- a/pkgs/applications/audio/muse/default.nix
+++ b/pkgs/applications/audio/muse/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "muse-sequencer";
-  version = "3.1.0";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "muse-sequencer";
     repo = "muse";
     rev = "muse_${builtins.replaceStrings ["."] ["_"] version}";
-    sha256 = "08k25652w88xf2i79lw305x1phpk7idrww9jkqwcs8q6wzgmz8aq";
+    sha256 = "1rasp2v1ds2aw296lbf27rzw0l9fjl0cvbvw85d5ycvh6wkm301p";
   };
 
   sourceRoot = "source/muse3";
diff --git a/pkgs/applications/audio/musescore/default.nix b/pkgs/applications/audio/musescore/default.nix
index 0561a0179a6..71c639ca406 100644
--- a/pkgs/applications/audio/musescore/default.nix
+++ b/pkgs/applications/audio/musescore/default.nix
@@ -7,11 +7,11 @@
 
 mkDerivation rec {
   pname = "musescore";
-  version = "3.4.2";
+  version = "3.5.0";
 
   src = fetchzip {
-    url = "https://github.com/musescore/MuseScore/releases/download/v${version}/MuseScore-${version}.zip";
-    sha256 = "1laskvp40dncs12brkgvk7wl0qrvzy52rn7nf3b67ps1vmd130gp";
+    url = "https://github.com/musescore/MuseScore/releases/download/v3.5/MuseScore-${version}.zip";
+    sha256 = "0m598xh0s4f5m4l2ymy7g44bbvc14bcfi4gifhjnrg091rsk57c9";
     stripRoot = false;
   };
 
@@ -20,7 +20,14 @@ mkDerivation rec {
   ];
 
   cmakeFlags = [
-  ] ++ lib.optional (lib.versionAtLeast freetype.version "2.5.2") "-DUSE_SYSTEM_FREETYPE=ON";
+    "-DUSE_SYSTEM_FREETYPE=ON"
+  ];
+
+  qtWrapperArgs = [
+    # Work around crash on update from 3.4.2 to 3.5.0
+    # https://bugreports.qt.io/browse/QTBUG-85967
+    "--set QML_DISABLE_DISK_CACHE 1"
+  ];
 
   nativeBuildInputs = [ cmake pkgconfig ];
 
diff --git a/pkgs/applications/audio/musikcube/default.nix b/pkgs/applications/audio/musikcube/default.nix
index 0c4e2c71dd9..8fc0616ff73 100644
--- a/pkgs/applications/audio/musikcube/default.nix
+++ b/pkgs/applications/audio/musikcube/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "musikcube";
-  version = "0.92.1";
+  version = "0.93.1";
 
   src = fetchFromGitHub {
     owner = "clangen";
     repo = pname;
     rev = version;
-    sha256 = "0l4ncxqxvp5m014j7vlglhzxhhrxl0c2m71xn0i0a27hn4nc72mr";
+    sha256 = "05qsxyr7x8l0vlmn4yjg4gglxvcw9raf6vfzvblsl2ngsdsrnizy";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/musly/default.nix b/pkgs/applications/audio/musly/default.nix
index b1e8822cdcf..7ef2b400b76 100644
--- a/pkgs/applications/audio/musly/default.nix
+++ b/pkgs/applications/audio/musly/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, eigen, libav_all }:
+{ stdenv, fetchFromGitHub, cmake, eigen, libav }:
 stdenv.mkDerivation {
   pname = "musly";
   version = "unstable-2017-04-26";
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 = "1q42wvdwy2pac7bhfraqqj2czw7w2m33ms3ifjl8phm7d87i8825";
   };
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ eigen (libav_all.override { vaapiSupport = stdenv.isLinux; }).libav_11 ];
+  buildInputs = [ eigen (libav.override { vaapiSupport = stdenv.isLinux; }) ];
   fixupPhase = if stdenv.isDarwin then ''
     install_name_tool -change libmusly.dylib $out/lib/libmusly.dylib $out/bin/musly
     install_name_tool -change libmusly_resample.dylib $out/lib/libmusly_resample.dylib $out/bin/musly
diff --git a/pkgs/applications/audio/ncmpc/default.nix b/pkgs/applications/audio/ncmpc/default.nix
index aea50d71d75..ca61aa0cd6f 100644
--- a/pkgs/applications/audio/ncmpc/default.nix
+++ b/pkgs/applications/audio/ncmpc/default.nix
@@ -10,13 +10,13 @@ assert pcreSupport -> pcre != null;
 
 stdenv.mkDerivation rec {
   pname = "ncmpc";
-  version = "0.38";
+  version = "0.39";
 
   src = fetchFromGitHub {
     owner  = "MusicPlayerDaemon";
     repo   = "ncmpc";
     rev    = "v${version}";
-    sha256 = "1kidpd1xrfax3v31q93r9g9b7jd841476q47wgd94h1a86b70gs9";
+    sha256 = "08xrcinfm1a7hjycf8la7gnsxbp3six70ks987dr7j42kd42irfq";
   };
 
   buildInputs = [ glib ncurses mpd_clientlib boost ]
diff --git a/pkgs/applications/audio/ncspot/default.nix b/pkgs/applications/audio/ncspot/default.nix
index 895e673d453..2fcbf82107d 100644
--- a/pkgs/applications/audio/ncspot/default.nix
+++ b/pkgs/applications/audio/ncspot/default.nix
@@ -14,16 +14,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "ncspot";
-  version = "0.1.4";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "hrkfdn";
     repo = "ncspot";
-    rev = version;
-    sha256 = "02g2lamabkwayhm56498pfvl9g0xx2vsan2j48ssrwjx6rwmlh7n";
+    rev = "v${version}";
+    sha256 = "1i17pidw2hylijwfn96f2bnswfxxwdln2ydsq8b1q4hfzfbxlfk2";
   };
 
-  cargoSha256 = "07gw2az11lpldwpb792l64b7xlarvx77364rn4i8g6a5271zahz3";
+  cargoSha256 = "1cpy4wrj9dz2crva4p18f8hzym73x4m2mcfds4ppri4ir7qg29dr";
 
   cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
 
diff --git a/pkgs/applications/audio/netease-cloud-music/default.nix b/pkgs/applications/audio/netease-cloud-music/default.nix
deleted file mode 100644
index c4cc291d026..00000000000
--- a/pkgs/applications/audio/netease-cloud-music/default.nix
+++ /dev/null
@@ -1,81 +0,0 @@
-{ stdenv, lib, fontconfig, zlib, libGL, glib, pango
-, gdk-pixbuf, freetype, atk, cairo, libsForQt5, xorg
-, sqlite, taglib, nss, nspr, cups, dbus, alsaLib
-, libpulseaudio, deepin, qt5, harfbuzz, p11-kit
-, libgpgerror, libudev0-shim, makeWrapper, dpkg, fetchurl }:
-let
-  rpath = lib.makeLibraryPath [
-    fontconfig.lib
-    zlib
-    stdenv.cc.cc.lib
-    libGL
-    glib
-    pango
-    gdk-pixbuf
-    freetype
-    atk
-    cairo
-    libsForQt5.vlc
-    sqlite
-    taglib
-    nss
-    nspr
-    cups.lib
-    dbus.lib
-    alsaLib
-    libpulseaudio
-    xorg.libX11
-    xorg.libXext
-    xorg.libXtst
-    xorg.libXdamage
-    xorg.libXScrnSaver
-    xorg.libxcb
-    xorg.libXi
-    deepin.qcef
-    qt5.qtwebchannel
-    qt5.qtbase
-    qt5.qtx11extras
-    qt5.qtdeclarative
-    harfbuzz
-    p11-kit
-    libgpgerror
-  ];   
-
-  runtimeLibs = lib.makeLibraryPath [ libudev0-shim ];
-
-in stdenv.mkDerivation rec {
-  pname = "netease-cloud-music";
-  version = "1.2.0";
-  src = fetchurl {
-    url    = "http://d1.music.126.net/dmusic/netease-cloud-music_1.2.0_amd64_deepin_stable_20190424.deb";
-    sha256 = "0hg8jqim77vd0fmk8gfbz2fmlj99byxcm9jn70xf7vk1sy7wp6h1";
-    curlOpts = "-A 'Mozilla/5.0'";
-  };
-  unpackCmd = "${dpkg}/bin/dpkg -x $src .";
-  sourceRoot = ".";
-
-  nativeBuildInputs = [ qt5.wrapQtAppsHook makeWrapper ];
-
-  installPhase = ''
-    mkdir -p $out
-    cp -r usr/* $out
-  '';
-
-  preFixup = ''
-    local exefile="$out/bin/netease-cloud-music"
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$exefile"
-    patchelf --set-rpath "$out/libs:$(patchelf --print-rpath "$exefile"):${rpath}" "$exefile"
-
-    wrapProgram $out/bin/netease-cloud-music \
-      --prefix LD_LIBRARY_PATH : "${runtimeLibs}" \
-      --set QCEF_INSTALL_PATH "${deepin.qcef}/lib/qcef"
-  '';
-
-  meta = {
-    description = "Client for Netease Cloud Music service";
-    homepage = "https://music.163.com";
-    platforms = [ "i686-linux" "x86_64-linux" ];
-    maintainers = [ stdenv.lib.maintainers.mlatus ];
-    license = stdenv.lib.licenses.unfreeRedistributable;
-  };
-}
diff --git a/pkgs/applications/audio/noisetorch/config.patch b/pkgs/applications/audio/noisetorch/config.patch
new file mode 100644
index 00000000000..f6e258862db
--- /dev/null
+++ b/pkgs/applications/audio/noisetorch/config.patch
@@ -0,0 +1,13 @@
+diff --git a/config.go b/config.go
+index de16249..fb91ec0 100644
+--- a/config.go
++++ b/config.go
+@@ -20,7 +20,7 @@ const configFile = "config.toml"
+ 
+ func initializeConfigIfNot() {
+ 	log.Println("Checking if config needs to be initialized")
+-	conf := config{Threshold: 95, DisplayMonitorSources: false, EnableUpdates: true}
++	conf := config{Threshold: 95, DisplayMonitorSources: false, EnableUpdates: false}
+ 	configdir := configDir()
+ 	ok, err := exists(configdir)
+ 	if err != nil {
diff --git a/pkgs/applications/audio/noisetorch/default.nix b/pkgs/applications/audio/noisetorch/default.nix
new file mode 100644
index 00000000000..1739d27870a
--- /dev/null
+++ b/pkgs/applications/audio/noisetorch/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, buildGoModule, fetchFromGitHub, rnnoise-plugin }:
+
+buildGoModule rec {
+  pname = "NoiseTorch";
+  version = "0.5.2-beta";
+
+  src = fetchFromGitHub {
+    owner = "lawl";
+    repo = "NoiseTorch";
+    rev = version;
+    sha256 = "1q0gfpqczlpybxcjjkiybcy6yc0gnrq8x27r0mpg4pvgwy7mps47";
+  };
+
+  patches = [ ./version.patch ./config.patch ./embedlibrnnoise.patch ];
+
+  vendorSha256 = null;
+
+  doCheck = false;
+
+  subPackages = [ "." ];
+
+  buildInputs = [ rnnoise-plugin ];
+
+  preBuild = ''
+    export RNNOISE_LADSPA_PLUGIN="${rnnoise-plugin}/lib/ladspa/librnnoise_ladspa.so";
+    go generate;
+    rm  ./scripts/*
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share/icons/hicolor/256x256/apps/
+    cp assets/icon/noisetorch.png $out/share/icons/hicolor/256x256/apps/
+    mkdir -p $out/share/applications/
+    cp assets/noisetorch.desktop $out/share/applications/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Virtual microphone device with noise supression for PulseAudio";
+    homepage = "https://github.com/lawl/NoiseTorch";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ panaeon ];
+  };
+}
diff --git a/pkgs/applications/audio/noisetorch/embedlibrnnoise.patch b/pkgs/applications/audio/noisetorch/embedlibrnnoise.patch
new file mode 100644
index 00000000000..b1782efb8b3
--- /dev/null
+++ b/pkgs/applications/audio/noisetorch/embedlibrnnoise.patch
@@ -0,0 +1,13 @@
+diff --git a/scripts/embedlibrnnoise.go b/scripts/embedlibrnnoise.go
+index 43daf80..0b3004b 100644
+--- a/scripts/embedlibrnnoise.go
++++ b/scripts/embedlibrnnoise.go
+@@ -8,7 +8,7 @@ import (
+ )
+ 
+ func main() {
+-	b, err := ioutil.ReadFile("librnnoise_ladspa/bin/ladspa/librnnoise_ladspa.so")
++	b, err := ioutil.ReadFile(os.Getenv("RNNOISE_LADSPA_PLUGIN"))
+ 	if err != nil {
+ 		fmt.Printf("Couldn't read librnnoise_ladspa.so: %v\n", err)
+ 		os.Exit(1)
diff --git a/pkgs/applications/audio/noisetorch/version.patch b/pkgs/applications/audio/noisetorch/version.patch
new file mode 100644
index 00000000000..20c51863744
--- /dev/null
+++ b/pkgs/applications/audio/noisetorch/version.patch
@@ -0,0 +1,37 @@
+diff --git a/scripts/embedversion.go b/scripts/embedversion.go
+index ce0a756..60e7a5e 100644
+--- a/scripts/embedversion.go
++++ b/scripts/embedversion.go
+@@ -1,24 +1,18 @@
+ package main
+ 
+ import (
+-	"os"
+-	"os/exec"
+-	"strings"
++        "os"
++        "strings"
+ )
+ 
+ func main() {
+-	cmd := exec.Command("git", "describe", "--tags")
+-	ret, err := cmd.Output()
+ 
+-	if err != nil {
+-		panic("Couldn't read git tags to embed version number")
+-	}
+-	version := strings.TrimSpace(string(ret))
++        version := strings.TrimSpace(string(os.Getenv("version")))
+ 
+-	out, _ := os.Create("version.go")
+-	defer out.Close()
++        out, _ := os.Create("version.go")
++        defer out.Close()
+ 
+-	out.Write([]byte("package main\n\n//THIS FILE IS AUTOMATICALLY GENERATED BY `go generate` DO NOT EDIT!\n\nvar version=\""))
+-	out.Write([]byte(version))
+-	out.Write([]byte("\"\n"))
++        out.Write([]byte("package main\n\n//THIS FILE IS AUTOMATICALLY GENERATED BY `go generate` DO NOT EDIT!\n\nvar version=\""))
++        out.Write([]byte(version))
++        out.Write([]byte("\"\n"))
+ }
diff --git a/pkgs/applications/audio/openmpt123/default.nix b/pkgs/applications/audio/openmpt123/default.nix
index 6fec4df060d..15d38a1eea7 100644
--- a/pkgs/applications/audio/openmpt123/default.nix
+++ b/pkgs/applications/audio/openmpt123/default.nix
@@ -2,14 +2,14 @@
 , usePulseAudio ? config.pulseaudio or false, libpulseaudio }:
 
 let
-  version = "0.5.0";
+  version = "0.5.1";
 in stdenv.mkDerivation {
   pname = "openmpt123";
   inherit version;
 
   src = fetchurl {
     url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
-    sha256 = "0zl3djy9z7cpqk8g8pxrzmmikxsskb0y5qdabg6c683j7x5abjs3";
+    sha256 = "1vpalfsrkbx4vyrh1qy564lr91jwdxlbjivv5gzf8zcywxasf0xa";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/audio/opusfile/default.nix b/pkgs/applications/audio/opusfile/default.nix
index c09b3f415d8..df3bf7c215b 100644
--- a/pkgs/applications/audio/opusfile/default.nix
+++ b/pkgs/applications/audio/opusfile/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, pkgconfig, openssl, libogg, libopus }:
 
 stdenv.mkDerivation rec {
-  name = "opusfile-0.11";
+  name = "opusfile-0.12";
   src = fetchurl {
     url = "http://downloads.xiph.org/releases/opus/${name}.tar.gz";
-    sha256 = "1gq3aszzl5glgbajw5p1f5a1kdyf23w5vjdmwwrk246syin9pkkl";
+    sha256 = "02smwc5ah8nb3a67mnkjzqmrzk43j356hgj2a97s9midq40qd38i";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/audio/osmid/default.nix b/pkgs/applications/audio/osmid/default.nix
index 7e49b872a6a..2e31efd8172 100644
--- a/pkgs/applications/audio/osmid/default.nix
+++ b/pkgs/applications/audio/osmid/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "osmid";
-  version = "0.6.8";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "llloret";
     repo = "osmid";
     rev = "v${version}";
-    sha256 = "1yl25abf343yvd49nfsgxsz7jf956zrsi5n4xyqb5ldlp2hifk15";
+    sha256 = "1s1wsrp6g6wb0y61xzxvaj59mwycrgy52r4h456086zkz10ls6hw";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/audio/padthv1/default.nix b/pkgs/applications/audio/padthv1/default.nix
index 19bd6ecc0c8..c5d20d965b9 100644
--- a/pkgs/applications/audio/padthv1/default.nix
+++ b/pkgs/applications/audio/padthv1/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "padthv1";
-  version = "0.9.14";
+  version = "0.9.16";
 
   src = fetchurl {
     url = "mirror://sourceforge/padthv1/${pname}-${version}.tar.gz";
-    sha256 = "079iwwlkl1gscyv70v9ambad8shxbs0ixdfp0vsl6dbh87b09qzh";
+    sha256 = "1f2v60dpja0rnml60g463fjiz0f84v32yjwpvr56z79h1i6fssmv";
   };
 
   buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftw ];
diff --git a/pkgs/applications/audio/parlatype/default.nix b/pkgs/applications/audio/parlatype/default.nix
index e4728b9b9c4..b9babddb800 100644
--- a/pkgs/applications/audio/parlatype/default.nix
+++ b/pkgs/applications/audio/parlatype/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "parlatype";
-  version = "2.0";
+  version = "2.1";
 
   src = fetchFromGitHub {
     owner  = "gkarsay";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "026i19vkdq35rldbjp1wglamr22a1330iv736mmgbd8fs7vz22nx";
+    sha256 = "1k53q0kbwpnbgyr0lmfzf5sm4f93d8nbjrzdz9pdhzpxgihndg25";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/pd-plugins/gem/default.nix b/pkgs/applications/audio/pd-plugins/gem/default.nix
new file mode 100644
index 00000000000..2c0d0a24c57
--- /dev/null
+++ b/pkgs/applications/audio/pd-plugins/gem/default.nix
@@ -0,0 +1,62 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, autoreconfHook
+, pkg-config
+, puredata
+, libGL
+, libGLU
+, glew
+, freeglut
+, libv4l
+, libX11
+, file
+ }:
+
+stdenv.mkDerivation rec {
+  pname = "gem-unstable";
+  # The patch below applies to the latest release (v0.94), but then the build
+  # fails. I didn't track down what changed between that version and the
+  # current master that fixes the build on Nix
+  version = "2020-03-26";
+
+  src = fetchFromGitHub {
+    owner = "umlaeute";
+    repo = "Gem";
+    rev = "f38748d71bfca00e4d2b2f31d6c4e3759c03d599";
+    sha256 = "0bkky5fk0a836bapslrgzil272iq9y704y7hw254cfq5ffjd4qjy";
+  };
+
+  patches = [
+    # Update autoconf OpenGL/GLU/GLUT detection scripts
+    # https://github.com/umlaeute/Gem/pull/251
+    (fetchpatch {
+      url = "https://github.com/umlaeute/Gem/commit/343a486c2b5c3427696f77aeabdff440e6590fc7.diff";
+      sha256 = "0gkzxv80rgg8lgp9av5qp6xng3ldhnbjz9d6r7ym784fw8yx41yj";
+    })
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    file
+    pkg-config
+  ];
+
+  buildInputs = [
+    puredata
+    libGL
+    libGLU
+    glew
+    freeglut
+    libv4l
+    libX11
+  ];
+
+  meta = {
+    description = "Graphics Environment for Multimedia";
+    homepage = "http://puredata.info/downloads/gem";
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = [ stdenv.lib.maintainers.raboof ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix
index c080d0a95f3..2aeae1f1890 100644
--- a/pkgs/applications/audio/picard/default.nix
+++ b/pkgs/applications/audio/picard/default.nix
@@ -12,13 +12,13 @@ let
   ;
 in pythonPackages.buildPythonApplication rec {
   pname = "picard";
-  version = "2.3.2";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
     owner = "metabrainz";
     repo = pname;
     rev = "release-${version}";
-    sha256 = "1785wnxhasp4j8w2a8bgbfp3gyhc7zac18r5fqw5qcndz2hfk5mc";
+    sha256 = "0sbccsisk9w0gnblvhg7wk1c5ydppldjbvaa0zhl3yrid5a363ah";
   };
 
   nativeBuildInputs = [ gettext qt5.wrapQtAppsHook qt5.qtbase ]
@@ -37,6 +37,7 @@ in pythonPackages.buildPythonApplication rec {
     mutagen
     chromaprint
     discid
+    dateutil
   ];
 
   prePatch = ''
diff --git a/pkgs/applications/audio/plexamp/default.nix b/pkgs/applications/audio/plexamp/default.nix
new file mode 100644
index 00000000000..caa703f59ce
--- /dev/null
+++ b/pkgs/applications/audio/plexamp/default.nix
@@ -0,0 +1,39 @@
+{ lib, fetchurl, appimageTools, pkgs }:
+
+let
+  pname = "plexamp";
+  version = "3.1.1";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
+    sha256 = "11hgcysa1x9yqvha6ri4vl1zk8gf8vhcpnh3j38wg9ncd7nz5k2v";
+    name="${pname}-${version}.AppImage";
+  };
+
+  appimageContents = appimageTools.extractType2 {
+    inherit name src;
+  };
+in appimageTools.wrapType2 {
+  inherit name src;
+
+  multiPkgs = null; # no 32bit needed
+  extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs ++ [ pkgs.bash ];
+
+  extraInstallCommands = ''
+    ln -s $out/bin/${name} $out/bin/${pname}
+    install -m 444 -D ${appimageContents}/plexamp.desktop $out/share/applications/plexamp.desktop
+    install -m 444 -D ${appimageContents}/plexamp.png \
+      $out/share/icons/hicolor/512x512/apps/plexamp.png
+    substituteInPlace $out/share/applications/plexamp.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+  '';
+
+  meta = with lib; {
+    description = "A beautiful Plex music player for audiophiles, curators, and hipsters.";
+    homepage = "https://plexamp.com/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ killercup ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/audio/projectm/default.nix b/pkgs/applications/audio/projectm/default.nix
index 57d27ee272c..83952c271be 100644
--- a/pkgs/applications/audio/projectm/default.nix
+++ b/pkgs/applications/audio/projectm/default.nix
@@ -12,13 +12,13 @@
 
 mkDerivation rec {
   pname = "projectm";
-  version = "3.1.3";
+  version = "3.1.7";
 
   src = fetchFromGitHub {
     owner = "projectM-visualizer";
     repo = "projectM";
     rev = "v${version}";
-    sha256 = "1mjnahr694phksmvc069y89rv85s4l2z9fixkc3l1f5qj2vgn4sy";
+    sha256 = "1wm5fym6c1yb972pmil7j9axinqqwrj68cwd2sc7ky8c5z2fsdna";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/pt2-clone/default.nix b/pkgs/applications/audio/pt2-clone/default.nix
index 12eb4a39d53..b76be35da29 100644
--- a/pkgs/applications/audio/pt2-clone/default.nix
+++ b/pkgs/applications/audio/pt2-clone/default.nix
@@ -1,24 +1,29 @@
 { stdenv
 , fetchFromGitHub
 , cmake
+, nixosTests
 , alsaLib
 , SDL2
 }:
 
 stdenv.mkDerivation rec {
   pname = "pt2-clone";
-  version = "1.20";
+  version = "1.22";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "pt2-clone";
     rev = "v${version}";
-    sha256 = "0s4yk8w19qa58n5p558n6m7d5mslr9h9z5q3ayrgqcchdlm8cfky";
+    sha256 = "1w6lbq4366bawy975glvjizk57zhvl562xhxwzn7p5hpm2bvw09b";
   };
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ SDL2 ] ++ stdenv.lib.optional stdenv.isLinux alsaLib;
 
+  passthru.tests = {
+    pt2-clone-opens = nixosTests.pt2-clone;
+  };
+
   meta = with stdenv.lib; {
     description = "A highly accurate clone of the classic ProTracker 2.3D software for Amiga";
     homepage = "https://16-bits.org/pt2.php";
diff --git a/pkgs/applications/audio/puddletag/default.nix b/pkgs/applications/audio/puddletag/default.nix
index a0813fa0c80..47ea078c4b2 100644
--- a/pkgs/applications/audio/puddletag/default.nix
+++ b/pkgs/applications/audio/puddletag/default.nix
@@ -1,37 +1,34 @@
-{ stdenv, fetchFromGitHub, python2Packages, chromaprint }:
+{ stdenv, fetchFromGitHub, python3Packages, chromaprint }:
 
-python2Packages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "puddletag";
-  version = "1.2.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
-    owner  = "keithgg";
-    repo   = "puddletag";
-    rev    = "v${version}";
-    sha256 = "1g6wa91awy17z5b704yi9kfynnvfm9lkrvpfvwccscr1h8s3qmiz";
+    owner = "keithgg";
+    repo = "puddletag";
+    rev = version;
+    sha256 = "sha256-9l8Pc77MX5zFkOqU00HFS8//3Bzd2OMnVV1brmWsNAQ=";
   };
 
-  setSourceRoot = ''
-    sourceRoot=$(echo */source)
-  '';
+  sourceRoot = "source/source";
 
-  disabled = python2Packages.isPy3k; # work to support python 3 has not begun
-
-  propagatedBuildInputs = [ chromaprint ] ++ (with python2Packages; [
+  propagatedBuildInputs = [ chromaprint ] ++ (with python3Packages; [
     configobj
     mutagen
     pyparsing
-    pyqt4
+    pyqt5
   ]);
 
   doCheck = false;   # there are no tests
+
   dontStrip = true;  # we are not generating any binaries
 
   meta = with stdenv.lib; {
     description = "An audio tag editor similar to the Windows program, Mp3tag";
-    homepage    = "https://docs.puddletag.net";
-    license     = licenses.gpl3;
+    homepage = "https://docs.puddletag.net";
+    license = licenses.gpl3;
     maintainers = with maintainers; [ peterhoeg ];
-    platforms   = platforms.linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/pulseaudio-dlna/default.nix b/pkgs/applications/audio/pulseaudio-dlna/default.nix
index 75990d593df..c0986880c09 100644
--- a/pkgs/applications/audio/pulseaudio-dlna/default.nix
+++ b/pkgs/applications/audio/pulseaudio-dlna/default.nix
@@ -4,7 +4,7 @@
 , faacSupport ? false, faac ? null
 , flacSupport ? true, flac ? null
 , soxSupport ? true, sox ? null
-, vorbisSupport ? true, vorbisTools ? null
+, vorbisSupport ? true, vorbis-tools ? null
 }:
 
 assert mp3Support -> lame != null;
@@ -12,7 +12,7 @@ assert opusSupport -> opusTools != null;
 assert faacSupport -> faac != null;
 assert flacSupport -> flac != null;
 assert soxSupport -> sox != null;
-assert vorbisSupport -> vorbisTools != null;
+assert vorbisSupport -> vorbis-tools != null;
 
 let
   zeroconf = pythonPackages.callPackage ./zeroconf.nix { };
@@ -37,7 +37,7 @@ pythonPackages.buildPythonApplication {
     ++ stdenv.lib.optional faacSupport faac
     ++ stdenv.lib.optional flacSupport flac
     ++ stdenv.lib.optional soxSupport sox
-    ++ stdenv.lib.optional vorbisSupport vorbisTools;
+    ++ stdenv.lib.optional vorbisSupport vorbis-tools;
 
   # upstream has no tests
   checkPhase = ''
diff --git a/pkgs/applications/audio/pulseeffects/default.nix b/pkgs/applications/audio/pulseeffects/default.nix
index eaedcb426b8..a3ee0e23ec6 100644
--- a/pkgs/applications/audio/pulseeffects/default.nix
+++ b/pkgs/applications/audio/pulseeffects/default.nix
@@ -30,14 +30,12 @@
 , zita-convolver
 , zam-plugins
 , rubberband
-, mda_lv2
 , lsp-plugins
 }:
 
 let
   lv2Plugins = [
     calf # limiter, compressor exciter, bass enhancer and others
-    mda_lv2 # loudness
     lsp-plugins # delay
   ];
   ladspaPlugins = [
@@ -46,13 +44,13 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "pulseeffects";
-  version = "4.7.2";
+  version = "4.8.0";
 
   src = fetchFromGitHub {
     owner = "wwmm";
     repo = "pulseeffects";
     rev = "v${version}";
-    sha256 = "1yga25da5bpg12zkikp6dn4wqhn9f7r10awvjzfcz8s6w9xlz6rx";
+    sha256 = "9dQNYWBx8iAifRTZr2FRlYv4keZt5Cfahwi/w01duFg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/qjackctl/default.nix b/pkgs/applications/audio/qjackctl/default.nix
index 87666940c15..8cb28dcfd5a 100644
--- a/pkgs/applications/audio/qjackctl/default.nix
+++ b/pkgs/applications/audio/qjackctl/default.nix
@@ -1,14 +1,14 @@
 { stdenv, mkDerivation, fetchurl, pkgconfig, alsaLib, libjack2, dbus, qtbase, qttools, qtx11extras }:
 
 mkDerivation rec {
-  version = "0.6.2";
+  version = "0.6.3";
   pname = "qjackctl";
 
   # some dependencies such as killall have to be installed additionally
 
   src = fetchurl {
     url = "mirror://sourceforge/qjackctl/${pname}-${version}.tar.gz";
-    sha256 = "1rjhdyp0wzhlqr4cn80rh1qhby998cpqv81j1bbb9hfsiq77viqy";
+    sha256 = "0zbb4jlx56qvcqyhx34mbagkqf3wbxgj84hk0ppf5cmcrxv67d4x";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/audio/qmmp/default.nix b/pkgs/applications/audio/qmmp/default.nix
index 7b4d823006d..84ff9f787d5 100644
--- a/pkgs/applications/audio/qmmp/default.nix
+++ b/pkgs/applications/audio/qmmp/default.nix
@@ -29,11 +29,11 @@
 # handle that.
 
 mkDerivation rec {
-  name = "qmmp-1.4.0";
+  name = "qmmp-1.4.1";
 
   src = fetchurl {
     url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2";
-    sha256 = "13rhnk55d44svksl13w23w2qkfpkq4mc0jy5mi89nzqkzshwvfd8";
+    sha256 = "0p18r2ri75vbyjzfa7bcl1dm372m6jvn9zj2p5ia2rh1g77fbm9a";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/applications/audio/qsynth/default.nix b/pkgs/applications/audio/qsynth/default.nix
index 5da8f4cd462..af59bb56eb9 100644
--- a/pkgs/applications/audio/qsynth/default.nix
+++ b/pkgs/applications/audio/qsynth/default.nix
@@ -4,11 +4,11 @@
 
 mkDerivation  rec {
   pname = "qsynth";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/qsynth/${pname}-${version}.tar.gz";
-    sha256 = "0cp6vrqrj37rv3a7qfvqrg64j7zwpfj60y5b83mlkzvmg1sgjnlv";
+    sha256 = "0xiqmpzpxjvh32vivfj6h33w0ahmyfjzjb41b6fnf92bbg9k6mqv";
   };
 
   nativeBuildInputs = [ autoconf pkgconfig ];
diff --git a/pkgs/applications/audio/qtractor/default.nix b/pkgs/applications/audio/qtractor/default.nix
index f2ee5eac70f..2975e6464e1 100644
--- a/pkgs/applications/audio/qtractor/default.nix
+++ b/pkgs/applications/audio/qtractor/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "qtractor";
-  version = "0.9.14";
+  version = "0.9.15";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "1gh268gdpj7nw19xfh7k2l3aban4yrs1lmx33qswrnngs2izj1fk";
+    sha256 = "0k7a6llwrzs07flr9mvzvay9ygc2x64syg8npyabsw5a4d85fwsx";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/real_time_config_quick_scan/default.nix b/pkgs/applications/audio/real_time_config_quick_scan/default.nix
new file mode 100644
index 00000000000..5193d2899d3
--- /dev/null
+++ b/pkgs/applications/audio/real_time_config_quick_scan/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, perlPackages, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "realTimeConfigQuickScan";
+  version = "unstable-2020-07-23";
+
+  src = fetchFromGitHub {
+    owner  = "raboof";
+    repo   = pname;
+    rev    = "4697ba093d43d512b74a73b89531cb8c5adaa274";
+    sha256 = "16kanzp5i353x972zjkwgi3m8z90wc58613mlfzb0n01djdnm6k5";
+  };
+
+  buildInputs = [ perlPackages.perl makeWrapper ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    mkdir -p $out/share/$pname
+    mkdir -p $out/share/doc/$pname
+    # Install Script Files:
+    # *.pm files
+    for i in *.pm; do
+    install -Dm 755 "$i" "$out/share/$pname/$i"
+    done
+    # Install doc files:
+    install -D COPYING  "$out/share/doc/$pname/COPYING"
+    install -D README.md  "$out/share/doc/$pname/README.md"
+    # Install Executable scripts:
+    install -Dm 755 realTimeConfigQuickScan.pl "$out/bin/realTimeConfigQuickScan"
+    install -Dm 755 QuickScan.pl "$out/bin/QuickScan"
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    wrapProgram $out/bin/realTimeConfigQuickScan \
+      --set PERL5LIB "$out/share/$pname"
+    wrapProgram $out/bin/QuickScan \
+      --set PERL5LIB "$out/share/$pname:${with perlPackages; makePerlPath [ Tk ]}"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Linux configuration checker for systems to be used for real-time audio";
+    homepage = "https://github.com/raboof/realtimeconfigquickscan";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ magnetophon ];
+    platforms = platforms.linux ;
+  };
+}
+
diff --git a/pkgs/applications/audio/reaper/default.nix b/pkgs/applications/audio/reaper/default.nix
index 9de70d83ee5..e15addd78b1 100644
--- a/pkgs/applications/audio/reaper/default.nix
+++ b/pkgs/applications/audio/reaper/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "reaper";
-  version = "6.10";
+  version = "6.12c";
 
   src = fetchurl {
     url = "https://www.reaper.fm/files/${stdenv.lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_linux_x86_64.tar.xz";
-    sha256 = "1p54phmsa6xbqxb5cpgwnz7ny4famb8zi25y3cmxwgr4pfy94b2p";
+    sha256 = "1xnd4qvgwsz1dmgb656i611776dqcb84m1gh30i8jhpwcr9ym46w";
   };
 
   nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
diff --git a/pkgs/applications/audio/renoise/default.nix b/pkgs/applications/audio/renoise/default.nix
index 1cbd5b3afa2..0ae65cb8c37 100644
--- a/pkgs/applications/audio/renoise/default.nix
+++ b/pkgs/applications/audio/renoise/default.nix
@@ -14,7 +14,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "renoise";
-  version = "3.2.1";
+  version = "3.2.2";
 
   src =
     if stdenv.hostPlatform.system == "x86_64-linux" then
@@ -24,7 +24,7 @@ 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 = "0dhcidgnjzd4abw0xw1waj9mazp03nbvjcr2xx09l8gnfrkvny46";
+		      sha256 = "1v249kmyidx55kppk3sry7yg6hl1a91ixhnwz36h4y134fs7bkrl";
 		    }
         else
         	releasePath
diff --git a/pkgs/applications/audio/rhvoice/default.nix b/pkgs/applications/audio/rhvoice/default.nix
index 7a0a8a59a08..a29fcf383b8 100644
--- a/pkgs/applications/audio/rhvoice/default.nix
+++ b/pkgs/applications/audio/rhvoice/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, pkgconfig, fetchFromGitHub, scons
+{ stdenv, lib, pkgconfig, fetchFromGitHub, sconsPackages
 , python, glibmm, libpulseaudio, libao }:
 
 let
@@ -15,7 +15,7 @@ in stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [
-    scons.py2 pkgconfig
+    sconsPackages.scons_3_1_2 pkgconfig
   ];
 
   buildInputs = [
diff --git a/pkgs/applications/audio/rosegarden/default.nix b/pkgs/applications/audio/rosegarden/default.nix
index 921c8fff67a..8bda179df14 100644
--- a/pkgs/applications/audio/rosegarden/default.nix
+++ b/pkgs/applications/audio/rosegarden/default.nix
@@ -3,12 +3,12 @@
 , liblo, libsamplerate, libsndfile, lirc ? null, lrdf, qtbase }:
 
 stdenv.mkDerivation (rec {
-  version = "19.12";
+  version = "20.06";
   pname = "rosegarden";
 
   src = fetchurl {
     url = "mirror://sourceforge/rosegarden/${pname}-${version}.tar.bz2";
-    sha256 = "1qcaxc6hdzva7kwxxhgl95437fagjbxzv4mihsgpr7y9qk08ppw1";
+    sha256 = "1i9x9rkqwwdrk77xl5ra8i48cjirbc7fbisnj0nnclccwaq0wk6r";
   };
 
   patchPhase = ''
diff --git a/pkgs/applications/audio/sfizz/default.nix b/pkgs/applications/audio/sfizz/default.nix
index acec8c54e53..b4ff5fc56d5 100644
--- a/pkgs/applications/audio/sfizz/default.nix
+++ b/pkgs/applications/audio/sfizz/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sfizz";
-  version = "0.3.2";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "sfztools";
     repo = pname;
     rev = version;
-    sha256 = "1px22x9lb6wyqfbv1jg1sbl1rsnwrzs8sm4dnas1w4ifchiv3ymd";
+    sha256 = "0zpmvmh7n0064rxfqxb7z9rnz493k7yq7nl0vxppqnasg97jn5f3";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/audio/shortwave/default.nix b/pkgs/applications/audio/shortwave/default.nix
index d26d314cd3e..055694fb40f 100644
--- a/pkgs/applications/audio/shortwave/default.nix
+++ b/pkgs/applications/audio/shortwave/default.nix
@@ -23,17 +23,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shortwave";
-  version = "1.0.1";
+  version = "1.1.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "Shortwave";
     rev = version;
-    sha256 = "13lhlh75vw02vkcknl4nvy0yvpdf0qx811mmyja8bzs4rj1j9kr8";
+    sha256 = "1vlhp2ss06j41simjrrjg38alp85jddhqyvccy6bhfzm0gzynwld";
   };
 
-  cargoSha256 = "0aph5z54a6i5p8ga5ghhx1c9hjc8zdw5pkv9inmanca0bq3hkdlh";
+  cargoSha256 = "181699rlpr5dszc18wg0kbss3gfskxaz9lpxpgsc4yfb6ip89qnk";
 
   nativeBuildInputs = [
     cargo
diff --git a/pkgs/applications/audio/sidplayfp/default.nix b/pkgs/applications/audio/sidplayfp/default.nix
index b0a50bbf128..2ebf56fee52 100644
--- a/pkgs/applications/audio/sidplayfp/default.nix
+++ b/pkgs/applications/audio/sidplayfp/default.nix
@@ -1,18 +1,36 @@
-{ stdenv, fetchurl, pkgconfig, libsidplayfp }:
+{ stdenv
+, lib
+, fetchurl
+, pkgconfig
+, libsidplayfp
+, alsaSupport ? stdenv.hostPlatform.isLinux
+, alsaLib
+, pulseSupport ? stdenv.hostPlatform.isLinux
+, libpulseaudio
+}:
 
+assert alsaSupport -> alsaLib != null;
+assert pulseSupport -> libpulseaudio != null;
+let
+  inherit (lib) optional;
+  inherit (lib.versions) majorMinor;
+in
 stdenv.mkDerivation rec {
-  version = "1.4.4";
   pname = "sidplayfp";
+  version = "2.0.2";
 
   src = fetchurl {
-    url = "mirror://sourceforge/sidplay-residfp/sidplayfp/1.4/${pname}-${version}.tar.gz";
-    sha256 = "0arsrg3f0fsinal22qjmj3r6500bcbgqnx26fsz049ldl716kz1m";
+    url = "mirror://sourceforge/sidplay-residfp/sidplayfp/${majorMinor version}/${pname}-${version}.tar.gz";
+    sha256 = "1s2dfs9z1hwarpfzawg11wax9nh0zcqx4cafwq7iysckyg4scz4k";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ]
+    ++ optional alsaSupport alsaLib
+    ++ optional pulseSupport libpulseaudio;
+
   buildInputs = [ libsidplayfp ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A SID player using libsidplayfp";
     homepage = "https://sourceforge.net/projects/sidplay-residfp/";
     license = with licenses; [ gpl2Plus ];
diff --git a/pkgs/applications/audio/snapcast/default.nix b/pkgs/applications/audio/snapcast/default.nix
index 25b8f9456a0..5eff8f82e89 100644
--- a/pkgs/applications/audio/snapcast/default.nix
+++ b/pkgs/applications/audio/snapcast/default.nix
@@ -1,5 +1,6 @@
 { stdenv, lib, fetchFromGitHub, cmake, pkgconfig
-, alsaLib, asio, avahi, boost170, flac, libogg, libvorbis, soxr }:
+, alsaLib, asio, avahi, boost170, flac, libogg, libvorbis, soxr
+, nixosTests }:
 
 let
 
@@ -57,6 +58,8 @@ stdenv.mkDerivation rec {
     cp -r ../doc/* ../*.md $out/share/doc/snapcast
   '';
 
+  passthru.tests.snapcast = nixosTests.snapcast;
+
   meta = with lib; {
     description = "Synchronous multi-room audio player";
     homepage = "https://github.com/badaix/snapcast";
diff --git a/pkgs/applications/audio/snd/default.nix b/pkgs/applications/audio/snd/default.nix
index 9bc8fcb6694..76ea4efeace 100644
--- a/pkgs/applications/audio/snd/default.nix
+++ b/pkgs/applications/audio/snd/default.nix
@@ -4,11 +4,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "snd-20.2";
+  name = "snd-20.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/snd/${name}.tar.gz";
-    sha256 = "0ip4sfyxqlbghlggipmvvqjqs1a7qas0zcmzw8d1nwg6krjkfj0r";
+    sha256 = "016slh34gb6qqb38m8k9yg48rbhc5p12084szcwvanhh5v7fc7mk";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/audio/sonata/default.nix b/pkgs/applications/audio/sonata/default.nix
index 68eefadf411..cf3f173a096 100644
--- a/pkgs/applications/audio/sonata/default.nix
+++ b/pkgs/applications/audio/sonata/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, pkgconfig, gettext, intltool, wrapGAppsHook
-, python3Packages, gnome3, gtk3, gsettings-desktop-schemas, gobject-introspection }:
+{ stdenv, fetchFromGitHub, wrapGAppsHook, gettext
+, python3Packages, gnome3, gtk3, glib, gdk-pixbuf, gsettings-desktop-schemas, gobject-introspection }:
 
 let
   inherit (python3Packages) buildPythonApplication isPy3k dbus-python pygobject3 mpd2 setuptools;
@@ -16,26 +16,38 @@ in buildPythonApplication rec {
 
   disabled = !isPy3k;
 
-  nativeBuildInputs = [ pkgconfig gettext ];
+  nativeBuildInputs = [
+    gettext
+    gobject-introspection
+    wrapGAppsHook
+  ];
+
   buildInputs = [
-    intltool wrapGAppsHook
+    glib
     gnome3.adwaita-icon-theme
     gsettings-desktop-schemas
+    gtk3
+    gdk-pixbuf
+  ];
+
+  # The optional tagpy dependency (for editing metadata) is not yet
+  # included because it's difficult to build.
+  pythonPath = [
+    dbus-python
+    mpd2
+    pygobject3
+    setuptools
   ];
 
+  # Otherwise the setup hook for gobject-introspection is not run:
+  # https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
+
   postPatch = ''
     # Remove "Local MPD" tab which is not suitable for NixOS.
     sed -i '/localmpd/d' sonata/consts.py
   '';
 
-  propagatedBuildInputs = [
-    gobject-introspection gtk3 pygobject3 setuptools
-  ];
-
-  # The optional tagpy dependency (for editing metadata) is not yet
-  # included because it's difficult to build.
-  pythonPath = [ dbus-python pygobject3 mpd2 ];
-
   meta = {
     description = "An elegant client for the Music Player Daemon";
     longDescription = ''
diff --git a/pkgs/applications/audio/sonic-visualiser/default.nix b/pkgs/applications/audio/sonic-visualiser/default.nix
index e8b6a4d4313..2593bf38d19 100644
--- a/pkgs/applications/audio/sonic-visualiser/default.nix
+++ b/pkgs/applications/audio/sonic-visualiser/default.nix
@@ -1,8 +1,8 @@
 # TODO add plugins having various licenses, see http://www.vamp-plugins.org/download.html
 
 { stdenv, fetchurl, alsaLib, bzip2, fftw, libjack2, libX11, liblo
-, libmad, libogg, lrdf, librdf_raptor, librdf_rasqal, libsamplerate
-, libsndfile, pkgconfig, libpulseaudio, qtbase, qtsvg, redland
+, libmad, lrdf, librdf_raptor, librdf_rasqal, libsamplerate
+, libsndfile, pkg-config, libpulseaudio, qtbase, qtsvg, redland
 , rubberband, serd, sord, vamp-plugin-sdk, fftwFloat
 , capnproto, liboggz, libfishsound, libid3tag, opusfile
 , wrapQtAppsHook
@@ -10,13 +10,14 @@
 
 stdenv.mkDerivation rec {
   pname = "sonic-visualiser";
-  version = "4.0.1";
+  version = "4.2";
 
   src = fetchurl {
-    url = "https://code.soundsoftware.ac.uk/attachments/download/2607/${pname}-${version}.tar.gz";
-    sha256 = "14674adzp3chilymna236qyvci3b1zmi3wyz696wk7bcd3ndpsg6";
+    url = "https://code.soundsoftware.ac.uk/attachments/download/2755/${pname}-${version}.tar.gz";
+    sha256 = "1wsvranhvdl21ksbinbgb55qvs3g2d4i57ssj1vx2aln6m01ms9q";
   };
 
+  nativeBuildInputs = [ pkg-config wrapQtAppsHook ];
   buildInputs =
     [ libsndfile qtbase qtsvg fftw fftwFloat bzip2 lrdf rubberband
       libsamplerate vamp-plugin-sdk alsaLib librdf_raptor librdf_rasqal redland
@@ -27,7 +28,6 @@ stdenv.mkDerivation rec {
       # portaudio
       libpulseaudio
       libmad
-      libogg # ?
       libfishsound
       liblo
       libX11
@@ -37,15 +37,13 @@ stdenv.mkDerivation rec {
       opusfile
     ];
 
-  nativeBuildInputs = [ pkgconfig wrapQtAppsHook ];
-
-  enableParallelBuilding = true;
-
   # comment out the tests
   preConfigure = ''
     sed -i 's/sub_test_svcore_/#sub_test_svcore_/' sonic-visualiser.pro
   '';
 
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib; {
     description = "View and analyse contents of music audio files";
     homepage = "https://www.sonicvisualiser.org/";
diff --git a/pkgs/applications/audio/sooperlooper/default.nix b/pkgs/applications/audio/sooperlooper/default.nix
index e7a43ad8a59..f1c76bf0d33 100644
--- a/pkgs/applications/audio/sooperlooper/default.nix
+++ b/pkgs/applications/audio/sooperlooper/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sooperlooper";
-  version = "unstable-2019-09-30";
+  version = "1.7.4";
 
   src = fetchFromGitHub {
     owner = "essej";
     repo = "sooperlooper";
-    rev = "4d1da14176e16b0f56b727bb1e6c2e8957515625";
-    sha256 = "1gsgqa7hdymzw2al1ymzv0f33y161dyhh3fmy88lpjwv3bfchamg";
+    rev = "v${builtins.replaceStrings [ "." ] [ "_" ] version}";
+    sha256 = "1jng9bkb7iikad0dy1fkiq9wjjdhh1xi1p0cp2lvnz1dsc4yk6iw";
   };
 
   autoreconfPhase = ''
@@ -51,6 +51,8 @@ stdenv.mkDerivation rec {
     fftw
   ];
 
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib; {
     description = "A live looping sampler capable of immediate loop recording, overdubbing, multiplying, reversing and more";
     longDescription = ''
diff --git a/pkgs/applications/audio/soundkonverter/default.nix b/pkgs/applications/audio/soundkonverter/default.nix
index df5806b50b9..3e133a0caa1 100644
--- a/pkgs/applications/audio/soundkonverter/default.nix
+++ b/pkgs/applications/audio/soundkonverter/default.nix
@@ -1,6 +1,6 @@
 # currently needs to be installed into an environment and needs a `kbuildsycoca5` run afterwards for plugin discovery
 {
-  mkDerivation, fetchFromGitHub, lib, makeWrapper,
+  mkDerivation, fetchFromGitHub, fetchpatch, lib, makeWrapper,
   cmake, extra-cmake-modules, pkgconfig,
   libkcddb, kconfig, kconfigwidgets, ki18n, kdelibs4support, kio, solid, kwidgetsaddons, kxmlgui,
   qtbase, phonon, 
@@ -53,6 +53,15 @@ mkDerivation rec {
     rev = "v" + version;
     sha256 = "1g2khdsjmsi4zzynkq8chd11cbdhjzmi37r9jhpal0b730nq9x7l";
   };
+  patches = [
+    # already merged into master, so it can go during the next release
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/dfaust/soundkonverter/pull/87.patch";
+      sha256 = "sha256-XIpD4ZMTZVcu+F27OtpRy51H+uQgpd5l22IZ6XsD64w=";
+      name = "soundkonverter_taglib.patch";
+      stripLen = 1;
+    })
+  ];
   enableParallelBuilding = true;
   nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig kdelibs4support makeWrapper ];
   propagatedBuildInputs = [ libkcddb kconfig kconfigwidgets ki18n kdelibs4support kio solid kwidgetsaddons kxmlgui qtbase phonon];
diff --git a/pkgs/applications/audio/soundtracker/default.nix b/pkgs/applications/audio/soundtracker/default.nix
index ce73203c959..1fd341765b0 100644
--- a/pkgs/applications/audio/soundtracker/default.nix
+++ b/pkgs/applications/audio/soundtracker/default.nix
@@ -6,18 +6,21 @@
 , alsaLib
 , SDL
 , jack2
+, audiofile
 , goocanvas # graphical envelope editing
 }:
 
 stdenv.mkDerivation rec {
   pname = "soundtracker";
-  version = "1.0.0.1";
+  version = "1.0.1";
 
   src = fetchurl {
     # Past releases get moved to the "old releases" directory.
-    # Only the latest release (currently a prerelease) is at the top level.
-    url = "mirror://sourceforge/soundtracker/old%20releases/soundtracker-${version}.tar.bz2";
-    sha256 = "1ggliswz5ngmlnrnyhv3x1arh5w77an0ww9p53cddp9aas5q11jm";
+    # Only the latest release is at the top level.
+    # Nonetheless, only the name of the file seems to affect which file is
+    # downloaded, so this path should be fine both for old and current releases.
+    url = "mirror://sourceforge/soundtracker/soundtracker-${version}.tar.bz2";
+    sha256 = "0m5iiqccch6w53khpvdldz59zymw13vmwqc5ggx3sn41riwbd6ks";
   };
 
   nativeBuildInputs = [
@@ -28,9 +31,12 @@ stdenv.mkDerivation rec {
     gtk2
     SDL
     jack2
+    audiofile
     goocanvas
   ] ++ stdenv.lib.optional stdenv.isLinux alsaLib;
 
+  hardeningDisable = [ "format" ];
+
   meta = with stdenv.lib; {
     description = "A music tracking tool similar in design to the DOS program FastTracker and the Amiga legend ProTracker";
     longDescription = ''
diff --git a/pkgs/applications/audio/spotify-tui/default.nix b/pkgs/applications/audio/spotify-tui/default.nix
index 693de28bf47..dd063b2d039 100644
--- a/pkgs/applications/audio/spotify-tui/default.nix
+++ b/pkgs/applications/audio/spotify-tui/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "spotify-tui";
-  version = "0.20.0";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "Rigellute";
     repo = "spotify-tui";
     rev = "v${version}";
-    sha256 = "1gdsk620md5nv1r05jysmfhpbcidh15wzyiklkazsb6cppm6qsiy";
+    sha256 = "0pvgq8r1bb7bdxm50hxl0n7ajplpzp1gnf6j55dn6xwck0syml9y";
   };
 
-  cargoSha256 = "0irfdmik6nrpfs9yzva5q351cfyf1cijxa2a08prwdccrivdk98a";
+  cargoSha256 = "07v1qm5ky99j2lwbl00g80z0f8hfrpwgyqsm8fnda6y9s3vzzdgz";
 
   nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkgconfig python3 ];
   buildInputs = [ ]
@@ -24,6 +24,5 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Rigellute/spotify-tui/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ jwijenbergh ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/audio/strawberry/default.nix b/pkgs/applications/audio/strawberry/default.nix
index 4a195b4c345..f278b68b922 100644
--- a/pkgs/applications/audio/strawberry/default.nix
+++ b/pkgs/applications/audio/strawberry/default.nix
@@ -35,13 +35,13 @@
 
 mkDerivation rec {
   pname = "strawberry";
-  version = "0.6.12";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "jonaski";
     repo = pname;
     rev = version;
-    sha256 = "0p09xp7andfg0gvarzc979pwglr0xjj1c0cziqj0c9z7p1v0fkws";
+    sha256 = "sha256-YUR9SDiRV/gJKx4H1cgdDnKGulTQPVP7MpHyihUEgqg=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/audio/sublime-music/default.nix b/pkgs/applications/audio/sublime-music/default.nix
new file mode 100644
index 00000000000..515a653d6bc
--- /dev/null
+++ b/pkgs/applications/audio/sublime-music/default.nix
@@ -0,0 +1,60 @@
+{ lib, python3Packages, gobject-introspection, gtk3, pango, wrapGAppsHook
+
+, chromecastSupport ? false
+, serverSupport ? false
+, keyringSupport ? true
+, notifySupport ? true, libnotify
+, networkSupport ? true, networkmanager
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "sublime-music";
+  version = "0.11.0";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "1rnjc8pjfaq67mq10gy939g77azc80lxf77s9nsaxds4q5j1yrl2";
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    python3Packages.setuptools
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtk3
+    pango
+  ]
+   ++ lib.optional notifySupport libnotify
+   ++ lib.optional networkSupport networkmanager
+  ;
+
+  propagatedBuildInputs = with python3Packages; [
+    dataclasses-json
+    deepdiff
+    fuzzywuzzy
+    mpv
+    peewee
+    pygobject3
+    python-Levenshtein
+    python-dateutil
+    requests
+    semver
+  ]
+   ++ lib.optional chromecastSupport PyChromecast
+   ++ lib.optional keyringSupport keyring
+   ++ lib.optional serverSupport bottle
+  ;
+
+  # hook for gobject-introspection doesn't like strictDeps
+  # https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
+
+  meta = with lib; {
+    description = "GTK3 Subsonic/Airsonic client";
+    homepage = "https://sublimemusic.app/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ albakham ];
+  };
+}
diff --git a/pkgs/applications/audio/surge/default.nix b/pkgs/applications/audio/surge/default.nix
new file mode 100644
index 00000000000..1614bbfae66
--- /dev/null
+++ b/pkgs/applications/audio/surge/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, cmake, git, pkg-config, python3
+, cairo, libsndfile, libxcb, libxkbcommon, xcbutil, xcbutilcursor, xcbutilkeysyms, zenity
+}:
+
+stdenv.mkDerivation rec {
+  pname = "surge";
+  version = "1.7.1";
+
+  src = fetchFromGitHub {
+    owner = "surge-synthesizer";
+    repo = pname;
+    rev = "release_${version}";
+    sha256 = "1b3ccc78vrpzy18w7070zfa250dnd1bww147xxcnj457vd6n065s";
+    leaveDotGit = true; # for SURGE_VERSION
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake git pkg-config python3 ];
+  buildInputs = [ cairo libsndfile libxcb libxkbcommon xcbutil xcbutilcursor xcbutilkeysyms zenity ];
+
+  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
+  '';
+
+  installPhase = ''
+    mkdir -p $out/lib/lv2 $out/lib/vst3 $out/share/surge
+    cp -r surge_products/Surge.lv2 $out/lib/lv2/
+    cp -r surge_products/Surge.vst3 $out/lib/vst3/
+    cp -r ../resources/data/* $out/share/surge/
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    cd ..
+    build/surge-headless
+  '';
+
+  meta = with stdenv.lib; {
+    description = "LV2 & VST3 synthesizer plug-in (previously released as Vember Audio Surge)";
+    homepage = "https://surge-synthesizer.github.io";
+    license = licenses.gpl3;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ magnetophon orivej ];
+  };
+}
diff --git a/pkgs/applications/audio/synthv1/default.nix b/pkgs/applications/audio/synthv1/default.nix
index c7e936d28e5..74f68283fd6 100644
--- a/pkgs/applications/audio/synthv1/default.nix
+++ b/pkgs/applications/audio/synthv1/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "synthv1";
-  version = "0.9.14";
+  version = "0.9.15";
 
   src = fetchurl {
     url = "mirror://sourceforge/synthv1/${pname}-${version}.tar.gz";
-    sha256 = "08n83krkak20924flb9azhm9hn40lyfvn29m63zs3lw3wajf0b40";
+    sha256 = "047y2l7ipzv00ly54f074v6p043xjml7vz0svc7z81bhx74vs0ix";
   };
 
   buildInputs = [ qtbase qttools libjack2 alsaLib liblo lv2 ];
diff --git a/pkgs/applications/audio/talentedhack/default.nix b/pkgs/applications/audio/talentedhack/default.nix
new file mode 100644
index 00000000000..b30cf59f7b3
--- /dev/null
+++ b/pkgs/applications/audio/talentedhack/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, lv2, fftwFloat, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  pname = "talentedhack";
+  version = "1.86";
+
+  src = fetchFromGitHub {
+    owner = "jeremysalwen";
+    repo = "talentedhack";
+    rev = "v${version}";
+    sha256 = "0kwvayalysmk7y49jq0k16al252md8d45z58hphzsksmyz6148bx";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ lv2 fftwFloat ];
+
+  # To avoid name clashes, plugins should be compiled with symbols hidden, except for `lv2_descriptor`:
+  preConfigure = ''
+    sed -r 's/^CFLAGS.*$/\0 -fvisibility=hidden/' -i Makefile
+  '';
+
+  installPhase = ''
+    d=$out/lib/lv2/talentedhack.lv2
+    mkdir -p $d
+    cp *.so *.ttl $d
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/jeremysalwen/TalentedHack";
+    description = "LV2 port of Autotalent pitch correction plugin";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.michalrus ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/tamgamp.lv2/default.nix b/pkgs/applications/audio/tamgamp.lv2/default.nix
new file mode 100644
index 00000000000..9f51f9d022d
--- /dev/null
+++ b/pkgs/applications/audio/tamgamp.lv2/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub, pkg-config, lv2, zita-resampler }:
+
+stdenv.mkDerivation rec {
+  pname = "tamgamp.lv2";
+  version = "unstable-2020-06-14";
+
+  src = fetchFromGitHub {
+    owner = "sadko4u";
+    repo = pname;
+    rev = "426da74142fcb6b7687a35b2b1dda3392e171b92";
+    sha256 = "0dqsnim7v79rx13bkkh143gqz0xg26cpf6ya3mrwwprpf5hns2bp";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ lv2 zita-resampler ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/sadko4u/tamgamp.lv2";
+    description = "Guitar amplifier simulator";
+    longDescription = ''
+       Tamgamp (Pronouncement: "Damage Amp") is an LV2 guitar amp simulator that provides two plugins:
+
+        - Tamgamp - a plugin based on Guitarix DK Builder simulated chains.
+        - TamgampGX - a plugin based on tuned Guitarix internal amplifiers implementation.
+
+       The reference to the original Guitarix project: https://guitarix.org/
+
+       It simulates the set of the following guitar amplifiers:
+
+       - Fender Princeton Reverb-amp AA1164 (without reverb module)
+       - Fender Twin Reverb-Amp AA769 (Normal channel, bright off)
+       - Fender Twin Reverb-Amp AA769 (Vibrato channel, bright on)
+       - Marshall JCM-800 High-gain input
+       - Marshall JCM-800 Low-gain input
+       - Mesa/Boogie DC3 preamplifier (lead channel)
+       - Mesa/Boogie DC3 preamplifier (rhythm channel)
+       - Mesa Dual Rectifier preamplifier (orange channel, less gain)
+       - Mesa Dual Rectifier preamplifier (red channel, more gain)
+       - Peavey 5150II crunch channel
+       - Peavey 5150II lead channel
+       - VOX AC-30 Brilliant channel
+       - VOX AC-30 normal channel
+     '';
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
+    license = licenses.lgpl3Plus;
+  };
+}
diff --git a/pkgs/applications/audio/tunefish/default.nix b/pkgs/applications/audio/tunefish/default.nix
new file mode 100644
index 00000000000..72802c4f878
--- /dev/null
+++ b/pkgs/applications/audio/tunefish/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, pkg-config, python3
+, alsaLib, curl, freetype, gtk3, libGL, libX11, libXext, libXinerama, webkitgtk
+}:
+
+stdenv.mkDerivation {
+  pname = "tunefish";
+  version = "unstable-2020-08-13";
+
+  src = fetchFromGitHub {
+    owner = "jpcima";
+    repo = "tunefish";
+    rev = "b3d83cc66201619f6399500f6897fbeb1786d9ed";
+    fetchSubmodules = true;
+    sha256 = "0rjpq3s609fblzkvnc9729glcnfinmxljh0z8ldpzr245h367zxh";
+  };
+
+  nativeBuildInputs = [ pkg-config python3 ];
+  buildInputs = [ alsaLib curl freetype gtk3 libGL libX11 libXext libXinerama webkitgtk ];
+
+  postPatch = ''
+    patchShebangs src/tunefish4/generate-lv2-ttl.py
+  '';
+
+  makeFlags = [
+    "-C" "src/tunefish4/Builds/LinuxMakefile"
+    "CONFIG=Release"
+  ];
+
+  installPhase = ''
+    mkdir -p $out/lib/lv2
+    cp -r src/tunefish4/Builds/LinuxMakefile/build/Tunefish4.lv2 $out/lib/lv2
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = "https://tunefish-synth.com/";
+    description = "Virtual analog synthesizer LV2 plugin";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ orivej ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/audio/uhhyou.lv2/default.nix b/pkgs/applications/audio/uhhyou.lv2/default.nix
new file mode 100644
index 00000000000..732e9d8433f
--- /dev/null
+++ b/pkgs/applications/audio/uhhyou.lv2/default.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+, python3
+, fftw
+, libGL
+, libX11
+, libjack2
+, liblo
+, lv2
+}:
+
+stdenv.mkDerivation rec {
+  # this is what upstream calls the package, see:
+  # https://github.com/ryukau/LV2Plugins#uhhyou-plugins-lv2
+  pname = "uhhyou.lv2";
+  version = "unstable-2020-07-31";
+
+  src = fetchFromGitHub {
+    owner = "ryukau";
+    repo =  "LV2Plugins";
+    rev = "6189be67acaeb95452f8adab73a731d94a7b6f47";
+    fetchSubmodules = true;
+    sha256 = "049gigx2s89z8vf17gscs00c150lmcdwya311nbrwa18fz4bx242";
+  };
+
+  nativeBuildInputs = [ pkg-config python3 ];
+
+  buildInputs = [ fftw libGL libX11 libjack2 liblo lv2 ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  prePatch = ''
+    patchShebangs generate-ttl.sh
+    cp patch/NanoVG.cpp lib/DPF/dgl/src/NanoVG.cpp
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Audio plugins for Linux";
+    longDescription = ''
+      Plugin List:
+      - CubicPadSynth
+      - EnvelopedSine
+      - EsPhaser
+      - FDNCymbal
+      - FoldShaper
+      - IterativeSinCluster
+      - L3Reverb
+      - L4Reverb
+      - LatticeReverb
+      - LightPadSynth
+      - ModuloShaper
+      - OddPowShaper
+      - SevenDelay
+      - SoftClipper
+      - SyncSawSynth
+      - TrapezoidSynth
+      - WaveCymbal
+    '';
+    homepage = "https://github.com/ryukau/LV2Plugins/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.magnetophon ];
+  };
+}
diff --git a/pkgs/applications/audio/virtual-ans/default.nix b/pkgs/applications/audio/virtual-ans/default.nix
new file mode 100644
index 00000000000..24e112aff2b
--- /dev/null
+++ b/pkgs/applications/audio/virtual-ans/default.nix
@@ -0,0 +1,89 @@
+{ stdenv
+, fetchzip
+, libX11
+, libXi
+, libGL
+, alsaLib
+, SDL2
+, autoPatchelfHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "virtual-ans";
+  version = "3.0.2c";
+
+  src = fetchzip {
+    url = "https://warmplace.ru/soft/ans/virtual_ans-${version}.zip";
+    sha256 = "03r1v3l7rd59dakr7ndvgsqchv00ppkvi6sslgf1ng07r3rsvb1n";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+  ];
+
+  buildInputs = [
+    stdenv.cc.cc.lib
+    libX11
+    libXi
+    libGL
+    alsaLib
+    SDL2
+  ];
+
+  installPhase = ''
+    mkdir -p $out
+    cp -R ./* $out/
+
+    # Remove all executables except for current architecture
+    ls -1d $out/START*              | grep -v ${startScript}     | xargs rm -rf
+    ls -1d $out/bin/pixilang_linux* | grep -v ${linuxExecutable} | xargs rm -rf
+
+    # Start script performs relative search for resources, so it cannot be moved
+    # to bin directory
+    ln -s $out/${startScript} $out/bin/virtual-ans
+  '';
+
+  startScript = if stdenv.isx86_32 then "START_LINUX_X86"
+    else        if stdenv.isx86_64 then "START_LINUX_X86_64"
+    #else        if stdenv.isDarwin then "START_MACOS.app" # disabled because I cannot test on Darwin
+    else abort "Unsupported platform: ${stdenv.platform.kernelArch}.";
+
+  linuxExecutable = if stdenv.isx86_32 then "pixilang_linux_x86"
+    else            if stdenv.isx86_64 then "pixilang_linux_x86_64"
+    else                                    "";
+
+  meta = with stdenv.lib; {
+    description = "Photoelectronic microtonal/spectral musical instrument";
+    longDescription = ''
+      Virtual ANS is a software simulator of the unique Russian synthesizer ANS
+      - photoelectronic musical instrument created by Evgeny Murzin from 1938 to
+      1958. The ANS made it possible to draw music in the form of a spectrogram
+      (sonogram), without live instruments and performers. It was used by
+      Stanislav Kreichi, Alfred Schnittke, Edward Artemiev and other Soviet
+      composers in their experimental works. You can also hear the sound of the
+      ANS in Andrei Tarkovsky's movies Solaris, The Mirror, Stalker.
+
+      The simulator extends the capabilities of the original instrument. Now
+      it's a full-featured graphics editor where you can convert sound into an
+      image, load and play pictures, draw microtonal/spectral music and create
+      some unusual deep atmospheric sounds. This app is for everyone who loves
+      experiments and is looking for something new.
+
+      Key features:
+
+      + unlimited number of pure tone generators;
+      + powerful sonogram editor - you can draw the spectrum and play it at the same time;
+      + any sound (from a WAV file or a Microphone/Line-in) can be converted to image (sonogram) and vice versa;
+      + support for MIDI devices;
+      + polyphonic synth mode with MIDI mapping;
+      + supported file formats: WAV, AIFF, PNG, JPEG, GIF;
+      + supported sound systems: ASIO, DirectSound, MME, ALSA, OSS, JACK, Audiobus, IAA.
+      '';
+    homepage = "https://warmplace.ru/soft/ans/";
+    license = licenses.free;
+    # I cannot test the Darwin version, so I'll leave it disabled
+    platforms = [ "x86_64-linux" "i686-linux" ];
+    maintainers = with maintainers; [ jacg ];
+  };
+
+}
diff --git a/pkgs/applications/audio/vmpk/default.nix b/pkgs/applications/audio/vmpk/default.nix
index 2bc40a78af4..62ae1d2c049 100644
--- a/pkgs/applications/audio/vmpk/default.nix
+++ b/pkgs/applications/audio/vmpk/default.nix
@@ -1,26 +1,23 @@
-{ stdenv, fetchurl, cmake, pkgconfig
-, qt4, libjack2
-}:
+{ stdenv, fetchurl, cmake, pkgconfig, alsaLib, libjack2, qt4 }:
 
-let
-  version = "0.5.1";
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "vmpk";
-  inherit version;
-
-  meta = with stdenv.lib; {
-    description = "Virtual MIDI Piano Keyboard";
-    homepage    = "http://vmpk.sourceforge.net/";
-    license     = licenses.gpl3Plus;
-    platforms   = platforms.linux;
-  };
+  version = "0.5.1";
 
   src = fetchurl {
-    url = "mirror://sourceforge/vmpk/${version}/${pname}-${version}.tar.bz2";
+    url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tar.bz2";
     sha256 = "11fqnxgs9hr9255d93n7lazxzjwn8jpmn23nywdksh0pb1ffvfrc";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
 
-  buildInputs = [ qt4 libjack2 ];
+  buildInputs = [ alsaLib libjack2 qt4 ];
+
+  meta = with stdenv.lib; {
+    description = "Virtual MIDI Piano Keyboard";
+    homepage = "http://vmpk.sourceforge.net/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ orivej ];
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/applications/audio/vocal/default.nix b/pkgs/applications/audio/vocal/default.nix
index 6ef992ffff6..b519003a9ec 100644
--- a/pkgs/applications/audio/vocal/default.nix
+++ b/pkgs/applications/audio/vocal/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , cmake
 , ninja
 , vala
@@ -61,7 +62,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/audio/vocproc/default.nix b/pkgs/applications/audio/vocproc/default.nix
new file mode 100644
index 00000000000..ddaa5b790e2
--- /dev/null
+++ b/pkgs/applications/audio/vocproc/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchzip, pkgconfig, lvtk, lv2, fftw, lv2-cpp-tools, gtkmm2 }:
+
+stdenv.mkDerivation rec {
+  pname = "vocproc";
+  version = "0.2.1";
+
+  src = fetchzip {
+    url = "https://hyperglitch.com/files/vocproc/${pname}-${version}.default.tar.gz";
+    sha256 = "07a1scyz14mg2jdbw6fpv4qg91zsw61qqii64n9qbnny9d5pn8n2";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ lv2 fftw lv2-cpp-tools gtkmm2 ];
+
+  makeFlags = [
+    "INSTALL_DIR=$(out)/lib/lv2"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://hyperglitch.com/dev/VocProc";
+    description = "An LV2 plugin for pitch shifting (with or without formant correction), vocoding, automatic pitch correction and harmonizing of singing voice (harmonizer)";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.michalrus ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/x42-plugins/default.nix b/pkgs/applications/audio/x42-plugins/default.nix
index 20f87725f99..d3726eab7ff 100644
--- a/pkgs/applications/audio/x42-plugins/default.nix
+++ b/pkgs/applications/audio/x42-plugins/default.nix
@@ -3,12 +3,12 @@
 , libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
 
 stdenv.mkDerivation rec {
-  version = "20200411";
+  version = "20200714";
   pname = "x42-plugins";
 
   src = fetchurl {
     url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz";
-    sha256 = "0y6778l2zc80kvp31mqw3vkcyi7g613jxn3g3lxqfa31i617gh6j";
+    sha256 = "1av05ykph8x67018hm9zfgh1vk0zi39mvrsxkj6bm4hkarxf0vvl";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations b/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations.patch
index f575af5ecd3..f575af5ecd3 100644
--- a/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations
+++ b/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations.patch
diff --git a/pkgs/applications/audio/yasr/20_maxpathlen b/pkgs/applications/audio/yasr/20_maxpathlen.patch
index 386c6cbf22b..386c6cbf22b 100644
--- a/pkgs/applications/audio/yasr/20_maxpathlen
+++ b/pkgs/applications/audio/yasr/20_maxpathlen.patch
diff --git a/pkgs/applications/audio/yasr/30_conf b/pkgs/applications/audio/yasr/30_conf.patch
index 98e959f55f3..98e959f55f3 100644
--- a/pkgs/applications/audio/yasr/30_conf
+++ b/pkgs/applications/audio/yasr/30_conf.patch
diff --git a/pkgs/applications/audio/yasr/40_dectalk_extended_chars b/pkgs/applications/audio/yasr/40_dectalk_extended_chars.patch
index cc1f0af8606..cc1f0af8606 100644
--- a/pkgs/applications/audio/yasr/40_dectalk_extended_chars
+++ b/pkgs/applications/audio/yasr/40_dectalk_extended_chars.patch
diff --git a/pkgs/applications/audio/yasr/default.nix b/pkgs/applications/audio/yasr/default.nix
index 68423197f3c..fed2ee0d8f7 100644
--- a/pkgs/applications/audio/yasr/default.nix
+++ b/pkgs/applications/audio/yasr/default.nix
@@ -11,10 +11,10 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
-    ./10_fix_openpty_forkpty_declarations
-    ./20_maxpathlen
-    ./30_conf
-    ./40_dectalk_extended_chars
+    ./10_fix_openpty_forkpty_declarations.patch
+    ./20_maxpathlen.patch
+    ./30_conf.patch
+    ./40_dectalk_extended_chars.patch
   ]; # taken from the debian yasr package
 
   meta = {
diff --git a/pkgs/applications/backup/vorta/default.nix b/pkgs/applications/backup/vorta/default.nix
index f1c0b056c82..1a233b3d93e 100644
--- a/pkgs/applications/backup/vorta/default.nix
+++ b/pkgs/applications/backup/vorta/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonApplication rec {
   pname = "vorta";
-  version = "0.6.26";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "borgbase";
     repo = "vorta";
     rev = "v${version}";
-    sha256 = "189kzwdmissg9142cd7wvxa1rvc2y7lysgr7if99zc7ks59mv6dq";
+    sha256 = "1hz19c0lphwql881n7w0ls39bbl63lccx57c3klwfyzgsxcgdy2j";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/blockchains/bitcoin-abc.nix b/pkgs/applications/blockchains/bitcoin-abc.nix
index aee73cecdfc..1596ed2d357 100644
--- a/pkgs/applications/blockchains/bitcoin-abc.nix
+++ b/pkgs/applications/blockchains/bitcoin-abc.nix
@@ -1,30 +1,36 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db53, boost
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, cmake, openssl, db53, boost
 , zlib, miniupnpc, qtbase ? null , qttools ? null, utillinux, protobuf, qrencode, libevent
-, withGui }:
+, withGui, python3, jemalloc, zeromq4 }:
 
 with stdenv.lib;
 
 mkDerivation rec {
 
   name = "bitcoin" + (toString (optional (!withGui) "d")) + "-abc-" + version;
-  version = "0.21.5";
+  version = "0.21.13";
 
   src = fetchFromGitHub {
     owner = "bitcoin-ABC";
     repo = "bitcoin-abc";
     rev = "v${version}";
-    sha256 = "1jx33n8dhn16iaxvmc56cxw0i5qk0ga5nf7qf9frwwq6zkglknga";
+    sha256 = "1x8xcdi1vcskggk9bqkwr3ah4vi9b7sj2h8hf7spac6dvz8lmzav";
   };
 
   patches = [ ./fix-bitcoin-qt-build.patch ];
 
-  nativeBuildInputs = [ pkgconfig autoreconfHook ];
-  buildInputs = [ openssl db53 boost zlib
+  nativeBuildInputs = [ pkgconfig cmake ];
+  buildInputs = [ openssl db53 boost zlib python3 jemalloc zeromq4
                   miniupnpc utillinux protobuf libevent ]
                   ++ optionals withGui [ qtbase qttools qrencode ];
 
-  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
-                     ++ optionals withGui [ "--with-gui=qt5" ];
+  cmakeFlags = optionals (!withGui) [
+    "-DBUILD_BITCOIN_QT=OFF"
+  ];
+
+  # many of the generated scripts lack execute permissions
+  postConfigure = ''
+    find ./. -type f -iname "*.sh" -exec chmod +x {} \;
+  '';
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/blockchains/bitcoin-unlimited.nix b/pkgs/applications/blockchains/bitcoin-unlimited.nix
index f755efaa0e1..fe39b955a28 100644
--- a/pkgs/applications/blockchains/bitcoin-unlimited.nix
+++ b/pkgs/applications/blockchains/bitcoin-unlimited.nix
@@ -7,13 +7,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "bitcoin" + (toString (optional (!withGui) "d")) + "-unlimited-" + version;
-  version = "1.7.0.0";
+  version = "1.8.0.0";
 
   src = fetchFromGitHub {
     owner = "bitcoinunlimited";
     repo = "bitcoinunlimited";
-    rev = "bucash${version}";
-    sha256 = "0lil6rivrj4cnr8a7n8zn9rp9f4h2nk88jjxc29m6dwqn5gk6f1i";
+    rev = "BCHunlimited${version}";
+    sha256 = "01qi15li5x9fvhsmvx7ai5fz6yzqqd3r9yv7081h75jn0nxai49q";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook python3 ]
diff --git a/pkgs/applications/blockchains/bitcoin.nix b/pkgs/applications/blockchains/bitcoin.nix
index 7a4386d2386..65feac9565b 100644
--- a/pkgs/applications/blockchains/bitcoin.nix
+++ b/pkgs/applications/blockchains/bitcoin.nix
@@ -20,16 +20,12 @@
 
 with stdenv.lib;
 let
-  version = "0.20.0";
+  version = "0.20.1";
   majorMinorVersion = versions.majorMinor version;
   desktop = fetchurl {
     url = "https://raw.githubusercontent.com/bitcoin-core/packaging/${majorMinorVersion}/debian/bitcoin-qt.desktop";
     sha256 = "0cpna0nxcd1dw3nnzli36nf9zj28d2g9jf5y0zl9j18lvanvniha";
   };
-  pixmap = fetchurl {
-    url = "https://raw.githubusercontent.com/bitcoin/bitcoin/v${version}/share/pixmaps/bitcoin128.png";
-    sha256 = "08p7j7dg50jlj783kkgdw037klmx0spqjikaprmbkzgcb620r25d";
-  };
 in
 stdenv.mkDerivation rec {
   pname = if withGui then "bitcoin" else "bitcoind";
@@ -40,7 +36,7 @@ stdenv.mkDerivation rec {
       "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
       "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
     ];
-    sha256 = "ec5a2358ee868d845115dc4fc3ed631ff063c57d5e0a713562d083c5c45efb28";
+    sha256 = "4bbd62fd6acfa5e9864ebf37a24a04bc2dcfe3e3222f056056288d854c53b978";
   };
 
   nativeBuildInputs =
@@ -53,7 +49,7 @@ stdenv.mkDerivation rec {
 
   postInstall = optional withGui ''
     install -Dm644 ${desktop} $out/share/applications/bitcoin-qt.desktop
-    install -Dm644 ${pixmap} $out/share/pixmaps/bitcoin128.png
+    install -Dm644 share/pixmaps/bitcoin128.png $out/share/pixmaps/bitcoin128.png
   '';
 
   configureFlags = [
diff --git a/pkgs/applications/blockchains/btcdeb/default.nix b/pkgs/applications/blockchains/btcdeb/default.nix
index 9a8db94401c..39d2197626a 100644
--- a/pkgs/applications/blockchains/btcdeb/default.nix
+++ b/pkgs/applications/blockchains/btcdeb/default.nix
@@ -7,14 +7,14 @@
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
-  pname = "btcdeb";
-  version = "0.2.19";
+  pname = "btcdeb-unstable";
+  version = "200806";
 
   src = fetchFromGitHub {
-    owner = "kallewoof";
-    repo = pname;
-    rev = "fb2dace4cd115dc9529a81515cee855b8ce94784";
-    sha256 = "0l0niamcjxmgyvc6w0wiygfgwsjam3ypv8mvjglgsj50gyv1vnb3";
+    owner = "bitcoin-core";
+    repo = "btcdeb";
+    rev = "f6708c397c64894c9f9e31bea2d22285d9462de7";
+    sha256 = "0qkmf89z2n7s95vhw3n9vh9dbi14zy4vqw3ffdh1w911jwm5ry3z";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
diff --git a/pkgs/applications/blockchains/clightning.nix b/pkgs/applications/blockchains/clightning.nix
index 6777e5998ce..43de23b68fc 100644
--- a/pkgs/applications/blockchains/clightning.nix
+++ b/pkgs/applications/blockchains/clightning.nix
@@ -4,11 +4,11 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "clightning";
-  version = "0.8.2.1";
+  version = "0.9.0-1";
 
   src = fetchurl {
     url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
-    sha256 = "02incjr59fv75q6hlrln9h4b5gq7ipd778scbz8b8dahj7x1a6i5";
+    sha256 = "01cwcrqysqsrf96bbbj0grm8j5m46a3acgwy0kzxdx05jdzld9sc";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/blockchains/dcrd.nix b/pkgs/applications/blockchains/dcrd.nix
index 0d59eb67017..e959eca48ae 100644
--- a/pkgs/applications/blockchains/dcrd.nix
+++ b/pkgs/applications/blockchains/dcrd.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "dcrd";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "decred";
     repo = "dcrd";
     rev = "refs/tags/release-v${version}";
-    sha256 = "1ggw289y1f4dqvj3w60q9bahq8bblbfjymn5xy04ldylr3qlxm9x";
+    sha256 = "14pxajc8si90hnddilfm09kmljwxq6i6p53fk0g09jp000cbklkl";
   };
 
   vendorSha256 = "03aw6mcvp1vr01ppxy673jf5hdryd5032cxndlkaiwg005mxp1dy";
 
+  doCheck = false;
+
   subPackages = [ "." "cmd/dcrctl" "cmd/promptsecret" ];
 
   meta = {
diff --git a/pkgs/applications/blockchains/dcrwallet.nix b/pkgs/applications/blockchains/dcrwallet.nix
index 0fbd5f33e72..779e7135618 100644
--- a/pkgs/applications/blockchains/dcrwallet.nix
+++ b/pkgs/applications/blockchains/dcrwallet.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0qrrr92cad399xwr64qa9h41wqqaj0dy5mw248g5v53zars541w7";
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   meta = {
diff --git a/pkgs/applications/blockchains/ergo/default.nix b/pkgs/applications/blockchains/ergo/default.nix
index e7a83d7496b..83a6cfaf05b 100644
--- a/pkgs/applications/blockchains/ergo/default.nix
+++ b/pkgs/applications/blockchains/ergo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ergo";
-  version = "3.2.7";
+  version = "3.3.1";
 
   src = fetchurl {
     url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
-    sha256 = "1ng2q9yp03j8p2xh7rlqad5h4p82ks1l00401pq7m0y02q90szr8";
+    sha256 = "1qr1vfb6mhm2hxl2ksydkhadm7phadn93lwm3f9zni01plk56bb5";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/blockchains/exodus/default.nix b/pkgs/applications/blockchains/exodus/default.nix
index 758673229af..af49bb9121f 100644
--- a/pkgs/applications/blockchains/exodus/default.nix
+++ b/pkgs/applications/blockchains/exodus/default.nix
@@ -4,11 +4,11 @@ cups, vivaldi-ffmpeg-codecs, libpulseaudio, at-spi2-core }:
 
 stdenv.mkDerivation rec {
   pname = "exodus";
-  version = "20.1.30";
+  version = "20.8.28";
 
   src = fetchurl {
     url = "https://downloads.exodus.io/releases/${pname}-linux-x64-${version}.zip";
-    sha256 = "0jns5zqjm0gqn18ypghbgk6gb713mh7p44ax1r8y4vcwijlp5nql";
+    sha256 = "fde9165f71f0d641f6892ddce3ec26d200e8095a383f2b4c8f924de4041d65ef";
   };
 
   sourceRoot = ".";
@@ -75,6 +75,6 @@ stdenv.mkDerivation rec {
     description = "Top-rated cryptocurrency wallet with Trezor integration and built-in Exchange";
     license = licenses.unfree;
     platforms = platforms.linux;
-    maintainers = [ maintainers.mmahut ];
+    maintainers = with maintainers; [ mmahut rople380 ];
   };
 }
diff --git a/pkgs/applications/blockchains/go-ethereum.nix b/pkgs/applications/blockchains/go-ethereum.nix
index d29292439c0..5c3f2207643 100644
--- a/pkgs/applications/blockchains/go-ethereum.nix
+++ b/pkgs/applications/blockchains/go-ethereum.nix
@@ -2,30 +2,19 @@
 
 buildGoModule rec {
   pname = "go-ethereum";
-  version = "1.9.15";
+  version = "1.9.20";
 
   src = fetchFromGitHub {
     owner = "ethereum";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1c69rfnx9130b87pw9lnaxyrbzwfhqb2dxyl7qyiscq85hqs16f9";
+    sha256 = "031cbl8yqw5g5yrm5h1x8s5ckdw2xkym46009l579zvafn2vcnj7";
   };
 
-  usb = fetchFromGitHub {
-    owner = "karalabe";
-    repo = "usb";
-    rev = "911d15fe12a9c411cf5d0dd5635231c759399bed";
-    sha256 = "0asd5fz2rhzkjmd8wjgmla5qmqyz4jaa6qf0n2ycia16jsck6wc2";
-  };
-
-  vendorSha256 = "1pjgcx6sydfipsx8s0kl7n6r3lk61klsfrkd7cg4l934k590q2n7";
+  runVend = true;
+  vendorSha256 = "1744df059bjksvih4653nnvb4kb1xvzdhypd0nnz36m1wrihqssv";
 
-  overrideModAttrs = (_: {
-      postBuild = ''
-      cp -r --reflink=auto ${usb}/libusb vendor/github.com/karalabe/usb
-      cp -r --reflink=auto ${usb}/hidapi vendor/github.com/karalabe/usb
-      '';
-    });
+  doCheck = false;
 
   subPackages = [
     "cmd/abidump"
@@ -53,6 +42,6 @@ buildGoModule rec {
     homepage = "https://geth.ethereum.org/";
     description = "Official golang implementation of the Ethereum protocol";
     license = with licenses; [ lgpl3 gpl3 ];
-    maintainers = with maintainers; [ adisbladis lionello xrelkd ];
+    maintainers = with maintainers; [ adisbladis lionello xrelkd RaghavSood ];
   };
 }
diff --git a/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index 656c2d37ae2..323b9936af5 100644
--- a/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "ledger-live-desktop";
-  version = "2.6.0";
+  version = "2.9.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
-    sha256 = "0c58bx6fgykz0fl2yjbpbg6h5bv31zmjwgd1m3qi8afqryf52m5w";
+    sha256 = "1ajpmsq4h37w3jzcxijg3myp3mvgbrjis6jrz1cl79m78ripb6cy";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/blockchains/lnd.nix b/pkgs/applications/blockchains/lnd.nix
index 1f249223df5..831195f06f0 100644
--- a/pkgs/applications/blockchains/lnd.nix
+++ b/pkgs/applications/blockchains/lnd.nix
@@ -1,24 +1,40 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule, fetchFromGitHub, lib
+, tags ? [ "autopilotrpc" "signrpc" "walletrpc" "chainrpc" "invoicesrpc" "watchtowerrpc" ]
+}:
 
 buildGoModule rec {
   pname = "lnd";
-  version = "0.10.0-beta";
+  version = "0.11.0-beta";
 
   src = fetchFromGitHub {
     owner = "lightningnetwork";
     repo = "lnd";
     rev = "v${version}";
-    sha256 = "1amciz924s2h6qhy7w34jpv1jc25p5ayfxzvjph6hhx0bccrm88w";
+    sha256 = "1r1hwz8ka5mnmrvj9zcd78kn68g8fg3d4bdx9i0xy4sc2hh1dcpj";
   };
 
-  vendorSha256 = "1iyghg11cxvbzi0gl40fvv8pl3d3k52j179w3x5m1f09r5ji223y";
+  vendorSha256 = "090b9sxvdwh787w0rhrcbky9pbx64qgqx1pvk9ysk3886nxdhf7k";
+
+  doCheck = false;
 
   subPackages = ["cmd/lncli" "cmd/lnd"];
 
+  preBuild = let
+    buildVars = {
+      RawTags = lib.concatStringsSep "," tags;
+      GoVersion = "$(go version | egrep -o 'go[0-9]+[.][^ ]*')";
+    };
+    buildVarsFlags = lib.concatStringsSep " " (lib.mapAttrsToList (k: v: "-X github.com/lightningnetwork/lnd/build.${k}=${v}") buildVars);
+  in
+  lib.optionalString (tags != []) ''
+    buildFlagsArray+=("-tags=${lib.concatStringsSep " " tags}")
+    buildFlagsArray+=("-ldflags=${buildVarsFlags}")
+  '';
+
   meta = with lib; {
     description = "Lightning Network Daemon";
     homepage = "https://github.com/lightningnetwork/lnd";
     license = lib.licenses.mit;
     maintainers = with maintainers; [ cypherpunk2140 ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/blockchains/mist.nix b/pkgs/applications/blockchains/mist.nix
deleted file mode 100644
index 9dd564d715c..00000000000
--- a/pkgs/applications/blockchains/mist.nix
+++ /dev/null
@@ -1,72 +0,0 @@
-{ stdenv, makeWrapper, fetchurl, unzip, atomEnv, makeDesktopItem, buildFHSUserEnv, gtk2 }:
-
-let
-  version = "0.11.1";
-  pname = "mist";
-
-  throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
-
-  meta = with stdenv.lib; {
-    description = "Browse and use Ðapps on the Ethereum network";
-    homepage = "https://github.com/ethereum/mist";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [];
-    platforms = [ "x86_64-linux" "i686-linux" ];
-  };
-
-  urlVersion = builtins.replaceStrings ["."] ["-"] version;
-
-  desktopItem = makeDesktopItem rec {
-    name = "Mist";
-    exec = "mist";
-    icon = "mist";
-    desktopName = name;
-    genericName = "Mist Browser";
-    categories = "Network;";
-  };
-
-  mist = stdenv.lib.appendToName "unwrapped" (stdenv.mkDerivation {
-    inherit pname version meta;
-
-    src = {
-      i686-linux = fetchurl {
-        url = "https://github.com/ethereum/mist/releases/download/v${version}/Mist-linux32-${urlVersion}.zip";
-        sha256 = "1ffzp9aa0g6w3d5pzp69fljk3sd51cbqdgxa1x16vj106sqm0gj7";
-      };
-      x86_64-linux = fetchurl {
-        url = "https://github.com/ethereum/mist/releases/download/v${version}/Mist-linux64-${urlVersion}.zip";
-        sha256 = "0yx4x72l8gk68yh9saki48zgqx8k92xnkm79dc651wdpd5c25cz3";
-      };
-    }.${stdenv.hostPlatform.system} or throwSystem;
-
-    buildInputs = [ unzip makeWrapper ];
-
-    buildCommand = ''
-      mkdir -p $out/lib/mist $out/bin
-      unzip -d $out/lib/mist $src
-      ln -s $out/lib/mist/mist $out/bin
-      fixupPhase
-      mkdir -p $out/share/applications
-      ln -s ${desktopItem}/share/applications/* $out/share/applications
-      patchelf \
-        --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-        --set-rpath "${atomEnv.libPath}:${gtk2}/lib:$out/lib/mist" \
-        $out/lib/mist/mist
-    '';
-  });
-in
-buildFHSUserEnv {
-  name = "mist";
-  inherit meta;
-
-  targetPkgs = pkgs: with pkgs; [
-     mist
-  ];
-
-  extraInstallCommands = ''
-    mkdir -p "$out/share/applications"
-    cp "${desktopItem}/share/applications/"* $out/share/applications
-  '';
-
-  runScript = "mist";
-}
diff --git a/pkgs/applications/blockchains/monero-gui/default.nix b/pkgs/applications/blockchains/monero-gui/default.nix
index 89b41a6110e..6ea075e2a36 100644
--- a/pkgs/applications/blockchains/monero-gui/default.nix
+++ b/pkgs/applications/blockchains/monero-gui/default.nix
@@ -12,13 +12,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "monero-gui";
-  version = "0.16.0.0";
+  version = "0.16.0.3";
 
   src = fetchFromGitHub {
     owner  = "monero-project";
     repo   = "monero-gui";
     rev    = "v${version}";
-    sha256 = "06vdrsj5y9k0zn32hspyxc7sw1kkyrvi3chzkdbnxk9jvyj8k4ld";
+    sha256 = "0iwjp8x5swy8i8pzrlm5v55awhm54cf48pm1vz98lcq361lhfzk6";
   };
 
   nativeBuildInputs = [ qmake pkgconfig wrapQtAppsHook ];
diff --git a/pkgs/applications/blockchains/monero/default.nix b/pkgs/applications/blockchains/monero/default.nix
index ed6ff8b7284..f1186564119 100644
--- a/pkgs/applications/blockchains/monero/default.nix
+++ b/pkgs/applications/blockchains/monero/default.nix
@@ -2,7 +2,7 @@
 , cmake, pkgconfig
 , boost, miniupnpc, openssl, unbound
 , zeromq, pcsclite, readline, libsodium, hidapi
-, pythonProtobuf, randomx, rapidjson, libusb-compat-0_1
+, protobuf, randomx, rapidjson, libusb-compat-0_1
 , CoreData, IOKit, PCSC
 }:
 
@@ -10,13 +10,13 @@ assert stdenv.isDarwin -> IOKit != null;
 
 stdenv.mkDerivation rec {
   pname = "monero";
-  version = "0.16.0.0";
+  version = "0.16.0.3";
 
   src = fetchFromGitHub {
     owner = "monero-project";
     repo = "monero";
     rev = "v${version}";
-    sha256 = "0x74h5z0nxxxip97ibc854pqmrgd8r4d6w62m424f66i8gbzfskh";
+    sha256 = "1r9x3712vhb24dxxirfiwj5f9x0h4m7x0ngiiavf5983dfdlgz33";
     fetchSubmodules = true;
   };
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     boost miniupnpc openssl unbound
     zeromq pcsclite readline
     libsodium hidapi randomx rapidjson
-    pythonProtobuf libusb-compat-0_1
+    protobuf libusb-compat-0_1
   ] ++ stdenv.lib.optionals stdenv.isDarwin [ IOKit CoreData PCSC ];
 
   cmakeFlags = [
diff --git a/pkgs/applications/blockchains/mycrypto/default.nix b/pkgs/applications/blockchains/mycrypto/default.nix
new file mode 100644
index 00000000000..77e603e8380
--- /dev/null
+++ b/pkgs/applications/blockchains/mycrypto/default.nix
@@ -0,0 +1,59 @@
+{ lib, appimageTools, fetchurl, makeDesktopItem
+, gsettings-desktop-schemas, gtk2
+}:
+
+let
+  pname = "MyCrypto";
+  version = "1.7.12";
+  sha256 = "0zmdmkli9zxygrcvrd4lbi0xqyq32dqlkxby8lsjknj1nd6l26n3";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/mycryptohq/mycrypto/releases/download/${version}/linux-x86-64_${version}_MyCrypto.AppImage";
+    inherit sha256;
+  };
+
+  appimageContents = appimageTools.extractType2 {
+    inherit name src;
+  };
+
+  desktopItem = makeDesktopItem {
+    name = pname;
+    desktopName = pname;
+    comment = "MyCrypto is a free, open-source interface for interacting with the blockchain";
+    exec = pname;
+    icon = "mycrypto";
+    categories = "Finance;";
+  };
+
+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
+  '';
+
+  multiPkgs = null; # no p32bit needed
+  extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
+
+  extraInstallCommands = ''
+    mv $out/bin/{${name},${pname}}
+
+    mkdir -p $out/share
+    cp -rt $out/share ${desktopItem}/share/applications ${appimageContents}/usr/share/icons
+    chmod -R +w $out/share
+    mv $out/share/icons/hicolor/{0x0,256x256}
+  '';
+
+  meta = with lib; {
+    description = "A free, open-source interface for interacting with the blockchain";
+    longDescription = ''
+      MyCrypto is an open-source, client-side tool for generating ether wallets,
+      handling ERC-20 tokens, and interacting with the blockchain more easily.
+    '';
+    homepage = "https://mycrypto.com";
+    license = licenses.mit;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ oxalica ];
+  };
+}
diff --git a/pkgs/applications/blockchains/namecoin.nix b/pkgs/applications/blockchains/namecoin.nix
index d52d87b9571..548213a52fd 100644
--- a/pkgs/applications/blockchains/namecoin.nix
+++ b/pkgs/applications/blockchains/namecoin.nix
@@ -3,14 +3,14 @@
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
-  version = "nc0.20.0";
+  version = "nc0.20.1";
   name = "namecoin" + toString (optional (!withGui) "d") + "-" + version;
 
   src = fetchFromGitHub {
     owner = "namecoin";
     repo = "namecoin-core";
     rev = version;
-    sha256 = "115nlsq5g169mj4qjmkhxx1bnx740871zqyng9zbm2y4i0xf71c4";
+    sha256 = "1wpfp9y95lmfg2nk1xqzchwck1wk6gwkya1rj07mf5in9jngxk9z";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/blockchains/parity/default.nix b/pkgs/applications/blockchains/openethereum/default.nix
index a2428ed01ed..7d5acc62050 100644
--- a/pkgs/applications/blockchains/parity/default.nix
+++ b/pkgs/applications/blockchains/openethereum/default.nix
@@ -9,17 +9,19 @@
 }:
 
 rustPlatform.buildRustPackage rec {
-  pname = "parity";
-  version = "3.0.0";
+  pname = "openethereum";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
-    owner = "paritytech";
-    repo = "parity-ethereum";
+    owner = "openethereum";
+    repo = "openethereum";
     rev = "v${version}";
-    sha256 = "124km8c2d7877yzd885wzlcl3gky15isx0z2l1qg1q3cqdsb5mjf";
+    sha256 = "08dkcrga1x18csh6pw6f54x5xwijppyjhg46cf4p452xc1l3a6ir";
   };
 
-  cargoSha256 = "0m4pms7agfyqk6gz6fwxdl8jmcyhphhzh3x4vykbi6186y7a8ihq";
+  cargoSha256 = "1xliragihwjfc5qmfm0ng519bw8a28m1w1yqcl9mpk8zywiybaah";
+
+  cargoPatches = [ ./lock.patch ];
 
   LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
   nativeBuildInputs = [
@@ -38,7 +40,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Fast, light, robust Ethereum implementation";
-    homepage = "http://parity.io";
+    homepage = "http://parity.io/ethereum";
     license = licenses.gpl3;
     maintainers = with maintainers; [ akru xrelkd ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/blockchains/openethereum/lock.patch b/pkgs/applications/blockchains/openethereum/lock.patch
new file mode 100644
index 00000000000..66709480bb7
--- /dev/null
+++ b/pkgs/applications/blockchains/openethereum/lock.patch
@@ -0,0 +1,20 @@
+--- /nix/store/hv764a65zmfzw5scjhz5839agv10da6x-source/Cargo.lock	1969-12-31 16:00:01.000000000 -0800
++++ ./Cargo.lock	2020-07-31 21:30:31.146750066 -0700
+@@ -3113,7 +3113,7 @@
+ 
+ [[package]]
+ name = "openethereum"
+-version = "3.0.0"
++version = "3.0.1"
+ dependencies = [
+  "ansi_term",
+  "atty",
+@@ -3562,7 +3562,7 @@
+ 
+ [[package]]
+ name = "parity-version"
+-version = "3.0.0"
++version = "3.0.1"
+ dependencies = [
+  "parity-bytes",
+  "rlp",
diff --git a/pkgs/applications/blockchains/pivx.nix b/pkgs/applications/blockchains/pivx.nix
index 600e462b390..16ea2dc43e7 100644
--- a/pkgs/applications/blockchains/pivx.nix
+++ b/pkgs/applications/blockchains/pivx.nix
@@ -1,5 +1,5 @@
 { fetchFromGitHub, stdenv, pkgconfig, autoreconfHook, wrapQtAppsHook ? null
-, openssl_1_0_2, db48, boost, zlib, miniupnpc, gmp
+, openssl, db48, boost, zlib, miniupnpc, gmp
 , qrencode, glib, protobuf, yasm, libevent
 , utillinux, qtbase ? null, qttools ? null
 , enableUpnp ? false
@@ -10,17 +10,17 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "pivx-${version}";
-  version = "4.0.2";
+  version = "4.1.1";
 
   src = fetchFromGitHub {
     owner = "PIVX-Project";
     repo= "PIVX";
     rev = "v${version}";
-    sha256 = "12lnp318k8dx1sar24zfmv2imnzs30srssnlpb31y7hcxhz0wpc5";
+    sha256 = "03ndk46h6093v8s18d5iffz48zhlshq7jrk6vgpjfs6z2iqgd2sy";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ] ++ optionals withGui [ wrapQtAppsHook ];
-  buildInputs = [ glib gmp openssl_1_0_2 db48 yasm boost zlib libevent miniupnpc protobuf utillinux ]
+  buildInputs = [ glib gmp openssl db48 yasm boost zlib libevent miniupnpc protobuf utillinux ]
                   ++ optionals withGui [ qtbase qttools qrencode ];
 
   configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
@@ -28,7 +28,6 @@ stdenv.mkDerivation rec {
                     ++ optional disableWallet "--disable-wallet"
                     ++ optional disableDaemon "--disable-daemon"
                     ++ optionals withGui [ "--with-gui=yes"
-                                           "--with-unsupported-ssl" # TODO remove this ASAP
                                            "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
                                          ];
   
@@ -56,9 +55,5 @@ stdenv.mkDerivation rec {
     homepage = "https://www.dash.org";
     maintainers = with maintainers; [ wucke13 ];
     platforms = platforms.unix;
-    # TODO
-    # upstream doesn't support newer openssl versions
-    # https://github.com/PIVX-Project/PIVX/issues/748
-    # openssl_1_0_2 should be replaced with openssl ASAP
   };
 }
diff --git a/pkgs/applications/blockchains/quorum.nix b/pkgs/applications/blockchains/quorum.nix
index f745860f661..5a525dec999 100644
--- a/pkgs/applications/blockchains/quorum.nix
+++ b/pkgs/applications/blockchains/quorum.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, buildGoPackage, git, which }:
-  
+
 buildGoPackage rec {
   pname = "quorum";
   version = "2.5.0";
diff --git a/pkgs/applications/blockchains/wasabibackend/default.nix b/pkgs/applications/blockchains/wasabibackend/default.nix
index 0324f024423..6b5358c9cf9 100644
--- a/pkgs/applications/blockchains/wasabibackend/default.nix
+++ b/pkgs/applications/blockchains/wasabibackend/default.nix
@@ -35,7 +35,7 @@ let
   };
 
   pname = "WasabiBackend";
-  version = "1.1.11.1";
+  version = "1.1.12";
 
   projectName = "WalletWasabi.Backend";
   projectConfiguration = "Release";
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
     owner = "zkSNACKs";
     repo = "WalletWasabi";
     rev = "v${version}";
-    sha256 = "0kxww8ywhld00b0qsv5jh5s19jqpahnb9mvshmjnp3cb840j12a7";
+    sha256 = "001k43z2jxvs03csyzndlzlk034aclzc4n8ddrqxykgrq508xk1d";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/blockchains/wasabibackend/deps.nix b/pkgs/applications/blockchains/wasabibackend/deps.nix
index ff5184ba860..1058cfcf93c 100644
--- a/pkgs/applications/blockchains/wasabibackend/deps.nix
+++ b/pkgs/applications/blockchains/wasabibackend/deps.nix
@@ -14,6 +14,21 @@ in [
     sha256 = "01nzc3gdslw90qfykq4qzr2mdnqxjl4sj0wp3fixiwdmlmvpib5z";
   })
   (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.3.0";
+    sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
+  })
+  (fetchNuGet {
+    name = "System.Dynamic.Runtime";
+    version = "4.0.11";
+    sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
+  })
+  (fetchNuGet {
     name = "System.Threading.Overlapped";
     version = "4.0.1";
     sha256 = "0fi79az3vmqdp9mv3wh2phblfjls89zlj6p9nc3i9f6wmfarj188";
@@ -24,11 +39,6 @@ in [
     sha256 = "1nbzdfqvzzbgsfdd5qsh94d7dbg2v4sw0yx6himyn52zf8z6007p";
   })
   (fetchNuGet {
-    name = "System.Dynamic.Runtime";
-    version = "4.0.11";
-    sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
-  })
-  (fetchNuGet {
     name = "System.Private.DataContractSerialization";
     version = "4.1.1";
     sha256 = "1xk9wvgzipssp1393nsg4n16zbr5481k03nkdlj954hzq5jkx89r";
@@ -39,14 +49,14 @@ in [
     sha256 = "1spf4m9pikkc19544p29a47qnhcd885klncahz133hbnyqbkmz9k";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit.Lightweight";
+    name = "System.Reflection.Emit";
     version = "4.0.1";
-    sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
+    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit";
+    name = "System.Reflection.Emit.Lightweight";
     version = "4.0.1";
-    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+    sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
   })
   (fetchNuGet {
     name = "System.Reflection.Emit.ILGeneration";
@@ -54,14 +64,19 @@ in [
     sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
   })
   (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.0.1";
+    sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc";
+  })
+  (fetchNuGet {
     name = "System.Diagnostics.DiagnosticSource";
     version = "4.0.0";
     sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m";
   })
   (fetchNuGet {
-    name = "System.Globalization.Extensions";
-    version = "4.0.1";
-    sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc";
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.0.0";
+    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
   })
   (fetchNuGet {
     name = "System.Security.Cryptography.Cng";
@@ -69,29 +84,29 @@ in [
     sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.OpenSsl";
-    version = "4.0.0";
-    sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
-  })
-  (fetchNuGet {
     name = "System.Security.Cryptography.Csp";
     version = "4.0.0";
     sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Net.Http";
-    version = "4.0.1";
-    sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
+    name = "Microsoft.VisualStudio.Web.CodeGeneration.Tools";
+    version = "2.0.2";
+    sha256 = "0fkjm06irs53d77z29i6dwj5pjhgj9ivhad8v39ghnrwasc0ivq6";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
+    name = "System.Security.Cryptography.OpenSsl";
     version = "4.0.0";
-    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
+    sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
   })
   (fetchNuGet {
-    name = "runtime.native.System.IO.Compression";
-    version = "4.1.0";
-    sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk";
+    name = "Microsoft.VisualStudio.Web.CodeGeneration.Contracts";
+    version = "2.0.2";
+    sha256 = "1fs6sbjn0chx6rv38d61zgk8mhyyxz44xp4wsfya0lvkckyszyn1";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Http";
+    version = "4.0.1";
+    sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.FileProviders.Physical";
@@ -99,9 +114,9 @@ in [
     sha256 = "0l0l92g7sq4122n139av1pn1jl6wlw92hjmdnr47xdss0ndmwrs3";
   })
   (fetchNuGet {
-    name = "Microsoft.VisualStudio.Web.CodeGeneration.Contracts";
-    version = "2.0.2";
-    sha256 = "1fs6sbjn0chx6rv38d61zgk8mhyyxz44xp4wsfya0lvkckyszyn1";
+    name = "runtime.native.System.IO.Compression";
+    version = "4.1.0";
+    sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk";
   })
   (fetchNuGet {
     name = "Microsoft.NETCore.App";
@@ -109,9 +124,9 @@ in [
     sha256 = "0qb7k624w7l0zhapdp519ymqg84a67r8zyd8cpj42hywsgb0dqv6";
   })
   (fetchNuGet {
-    name = "Microsoft.VisualStudio.Web.CodeGeneration.Tools";
-    version = "2.0.2";
-    sha256 = "0fkjm06irs53d77z29i6dwj5pjhgj9ivhad8v39ghnrwasc0ivq6";
+    name = "runtime.native.System.Security.Cryptography";
+    version = "4.0.0";
+    sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
   })
   (fetchNuGet {
     name = "NuGet.Frameworks";
@@ -119,6 +134,11 @@ in [
     sha256 = "0nar684cm53cvzx28gzl6kmpg9mrfr1yv29323din7xqal4pscgq";
   })
   (fetchNuGet {
+    name = "Microsoft.Build.Runtime";
+    version = "15.3.409";
+    sha256 = "135ycnqz5jfg61y5zaapgc7xdpjx2aq4icmxb9ph7h5inl445q7q";
+  })
+  (fetchNuGet {
     name = "runtime.native.System";
     version = "4.0.0";
     sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
@@ -129,9 +149,9 @@ in [
     sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr";
   })
   (fetchNuGet {
-    name = "Microsoft.Build.Runtime";
-    version = "15.3.409";
-    sha256 = "135ycnqz5jfg61y5zaapgc7xdpjx2aq4icmxb9ph7h5inl445q7q";
+    name = "Microsoft.NETCore.Targets";
+    version = "1.0.1";
+    sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
   })
   (fetchNuGet {
     name = "Newtonsoft.Json";
@@ -139,26 +159,36 @@ in [
     sha256 = "15ncqic3p2rzs8q8ppi0irl2miq75kilw4lh8yfgjq96id0ds3hv";
   })
   (fetchNuGet {
+    name = "Microsoft.NETCore.DotNetAppHost";
+    version = "2.0.5";
+    sha256 = "00bsxdg9c8msjxyffvfi8siqk8v2m7ca8fqy1npv7b2pzg3byjws";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.4.0";
+    sha256 = "0a6ahgi5b148sl5qyfpyw383p3cb4yrkm802k29fsi4mxkiwir29";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.3.0";
+    sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+  })
+  (fetchNuGet {
     name = "Microsoft.Extensions.FileSystemGlobbing";
     version = "2.0.0";
     sha256 = "02lzy6r14ghwfwm384xajq08vv3pl3ww0mi5isrr10vivhijhgg4";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Security.Cryptography";
-    version = "4.0.0";
-    sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
-  })
-  (fetchNuGet {
     name = "Microsoft.Extensions.FileProviders.Abstractions";
     version = "2.0.0";
     sha256 = "0d6y5isjy6jpf4w3f3w89cwh9p40glzhwvm7cwhx05wkqd8bk9w4";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Targets";
-    version = "1.0.1";
-    sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
-  })
-  (fetchNuGet {
     name = "Microsoft.NETCore.Platforms";
     version = "2.0.1";
     sha256 = "1j2hmnivgb4plni2dd205kafzg6mkg7r4knrd3s7mg75wn2l25np";
@@ -169,24 +199,74 @@ in [
     sha256 = "0v5csskiwpk8kz8wclqad8kcjmxr7ik4w99wl05740qvaag3qysk";
   })
   (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.3.0";
+    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+  })
+  (fetchNuGet {
     name = "NETStandard.Library";
     version = "2.0.1";
     sha256 = "0d44wjxphs1ck838v7dapm0ag0b91zpiy33cr5vflsrwrqgj51dk";
   })
   (fetchNuGet {
-    name = "System.Globalization.Extensions";
+    name = "System.Threading.Tasks.Extensions";
     version = "4.3.0";
-    sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
+    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
   })
   (fetchNuGet {
-    name = "System.Runtime.Serialization.Primitives";
+    name = "System.Collections.Specialized";
     version = "4.3.0";
-    sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf";
+    sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
   })
   (fetchNuGet {
-    name = "System.Runtime.Numerics";
+    name = "System.ComponentModel";
     version = "4.3.0";
-    sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
+    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+  })
+  (fetchNuGet {
+    name = "System.Collections.NonGeneric";
+    version = "4.3.0";
+    sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Primitives";
+    version = "4.3.0";
+    sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "1.6.0";
+    sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build.Framework";
+    version = "15.3.409";
+    sha256 = "1dhanwb9ihbfay85xj7cwn0byzmmdz94hqfi3q6r1ncwdjd8y1s2";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build.Tasks.Core";
+    version = "15.3.409";
+    sha256 = "135swyygp7cz2civwsz6a7dj7h8bzp7yrybmgxjanxwrw66hm933";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.CodePages";
+    version = "4.0.1";
+    sha256 = "00wpm3b9y0k996rm9whxprngm8l500ajmzgy2ip9pgwk0icp06y3";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build.Utilities.Core";
+    version = "15.3.409";
+    sha256 = "1p8a0l9sxmjj86qha748qjw2s2n07q8mn41mj5r6apjnwl27ywnf";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build";
+    version = "15.3.409";
+    sha256 = "0vzq6csp2yys9s96c7i37bjml439rdi47g8f5rzqdr7xf5a1jk81";
   })
   (fetchNuGet {
     name = "System.Runtime.Serialization.Formatters";
@@ -194,14 +274,14 @@ in [
     sha256 = "114j35n8gcvn3sqv9ar36r1jjq0y1yws9r0yk8i6wm4aq7n9rs0m";
   })
   (fetchNuGet {
-    name = "System.Xml.XmlDocument";
+    name = "System.Runtime.Serialization.Primitives";
     version = "4.3.0";
-    sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
+    sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf";
   })
   (fetchNuGet {
-    name = "System.Collections";
+    name = "System.ObjectModel";
     version = "4.3.0";
-    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+    sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
   })
   (fetchNuGet {
     name = "System.Diagnostics.Debug";
@@ -219,9 +299,9 @@ in [
     sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
   })
   (fetchNuGet {
-    name = "System.Runtime.Handles";
+    name = "System.Reflection.Emit";
     version = "4.3.0";
-    sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
+    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
   })
   (fetchNuGet {
     name = "System.Text.Encoding.Extensions";
@@ -229,34 +309,34 @@ in [
     sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
   })
   (fetchNuGet {
-    name = "System.Globalization";
+    name = "System.Text.Encoding";
     version = "4.3.0";
-    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
   })
   (fetchNuGet {
-    name = "System.Linq";
+    name = "System.Xml.XmlDocument";
     version = "4.3.0";
-    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+    sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding";
+    name = "System.Reflection.Emit.ILGeneration";
     version = "4.3.0";
-    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+    sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
   })
   (fetchNuGet {
-    name = "System.ObjectModel";
+    name = "System.Runtime.Numerics";
     version = "4.3.0";
-    sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
+    sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.DotNetAppHost";
-    version = "2.0.5";
-    sha256 = "00bsxdg9c8msjxyffvfi8siqk8v2m7ca8fqy1npv7b2pzg3byjws";
+    name = "System.Globalization";
+    version = "4.3.0";
+    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
   })
   (fetchNuGet {
-    name = "System.Runtime.CompilerServices.Unsafe";
-    version = "4.4.0";
-    sha256 = "0a6ahgi5b148sl5qyfpyw383p3cb4yrkm802k29fsi4mxkiwir29";
+    name = "System.Reflection.TypeExtensions";
+    version = "4.3.0";
+    sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
   })
   (fetchNuGet {
     name = "System.Threading";
@@ -264,24 +344,34 @@ in [
     sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
   })
   (fetchNuGet {
-    name = "Microsoft.CSharp";
+    name = "System.Reflection.Primitives";
     version = "4.3.0";
-    sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb";
+    sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
   })
   (fetchNuGet {
-    name = "System.IO.Pipes";
-    version = "4.0.0";
-    sha256 = "0fxfvcf55s9q8zsykwh8dkq2xb5jcqnml2ycq8srfry2l07h18za";
+    name = "System.Linq";
+    version = "4.3.0";
+    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
   })
   (fetchNuGet {
-    name = "System.Text.RegularExpressions";
+    name = "System.Diagnostics.Tools";
     version = "4.3.0";
-    sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
+    sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
   })
   (fetchNuGet {
-    name = "System.Reflection";
+    name = "Microsoft.NETCore.Targets";
+    version = "1.1.0";
+    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
     version = "4.3.0";
-    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
+    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.1.0";
+    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
   })
   (fetchNuGet {
     name = "System.IO";
@@ -289,24 +379,39 @@ in [
     sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
   })
   (fetchNuGet {
+    name = "System.Threading.Tasks.Dataflow";
+    version = "4.6.0";
+    sha256 = "0a1davr71wssyn4z1hr75lk82wqa0daz0vfwkmg1fm3kckfd72k1";
+  })
+  (fetchNuGet {
     name = "System.Xml.XDocument";
     version = "4.3.0";
     sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
   })
   (fetchNuGet {
+    name = "System.IO.Pipes";
+    version = "4.0.0";
+    sha256 = "0fxfvcf55s9q8zsykwh8dkq2xb5jcqnml2ycq8srfry2l07h18za";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.FileVersionInfo";
+    version = "4.0.0";
+    sha256 = "1s5vxhy7i09bmw51kxqaiz9zaj9am8wsjyz13j85sp23z267hbv3";
+  })
+  (fetchNuGet {
     name = "System.Threading.Tasks";
     version = "4.3.0";
     sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
   })
   (fetchNuGet {
-    name = "System.ComponentModel.TypeConverter";
-    version = "4.3.0";
-    sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
+    name = "System.Diagnostics.Contracts";
+    version = "4.0.1";
+    sha256 = "0y6dkd9n5k98vzhc3w14r2pbhf10qjn2axpghpmfr6rlxx9qrb9j";
   })
   (fetchNuGet {
-    name = "System.Runtime.Extensions";
+    name = "System.Reflection";
     version = "4.3.0";
-    sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
+    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
   })
   (fetchNuGet {
     name = "System.Dynamic.Runtime";
@@ -314,239 +419,229 @@ in [
     sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk";
   })
   (fetchNuGet {
-    name = "System.Xml.ReaderWriter";
-    version = "4.3.0";
-    sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
+    name = "System.Runtime.Loader";
+    version = "4.0.0";
+    sha256 = "0lpfi3psqcp6zxsjk2qyahal7zaawviimc8lhrlswhip2mx7ykl0";
   })
   (fetchNuGet {
-    name = "System.Linq.Expressions";
-    version = "4.3.0";
-    sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
+    name = "System.Threading.ThreadPool";
+    version = "4.0.10";
+    sha256 = "0fdr61yjcxh5imvyf93n2m3n5g9pp54bnw2l1d2rdl9z6dd31ypx";
   })
   (fetchNuGet {
-    name = "System.Runtime";
+    name = "System.Runtime.Extensions";
     version = "4.3.0";
-    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
-  })
-  (fetchNuGet {
-    name = "NETStandard.Library";
-    version = "1.6.0";
-    sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k";
+    sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
   })
   (fetchNuGet {
-    name = "Microsoft.Build.Framework";
-    version = "15.3.409";
-    sha256 = "1dhanwb9ihbfay85xj7cwn0byzmmdz94hqfi3q6r1ncwdjd8y1s2";
+    name = "System.Runtime.Serialization.Xml";
+    version = "4.1.1";
+    sha256 = "11747an5gbz821pwahaim3v82gghshnj9b5c4cw539xg5a3gq7rk";
   })
   (fetchNuGet {
-    name = "Microsoft.Build.Tasks.Core";
-    version = "15.3.409";
-    sha256 = "135swyygp7cz2civwsz6a7dj7h8bzp7yrybmgxjanxwrw66hm933";
+    name = "System.Text.RegularExpressions";
+    version = "4.3.0";
+    sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
   })
   (fetchNuGet {
-    name = "Microsoft.Build.Utilities.Core";
-    version = "15.3.409";
-    sha256 = "1p8a0l9sxmjj86qha748qjw2s2n07q8mn41mj5r6apjnwl27ywnf";
+    name = "System.Collections.Immutable";
+    version = "1.2.0";
+    sha256 = "1jm4pc666yiy7af1mcf7766v710gp0h40p228ghj6bavx7xfa38m";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding.CodePages";
-    version = "4.0.1";
-    sha256 = "00wpm3b9y0k996rm9whxprngm8l500ajmzgy2ip9pgwk0icp06y3";
+    name = "Microsoft.CSharp";
+    version = "4.3.0";
+    sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb";
   })
   (fetchNuGet {
-    name = "Microsoft.Build";
-    version = "15.3.409";
-    sha256 = "0vzq6csp2yys9s96c7i37bjml439rdi47g8f5rzqdr7xf5a1jk81";
+    name = "System.ComponentModel.TypeConverter";
+    version = "4.3.0";
+    sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks.Dataflow";
-    version = "4.6.0";
-    sha256 = "0a1davr71wssyn4z1hr75lk82wqa0daz0vfwkmg1fm3kckfd72k1";
+    name = "System.Reflection.Metadata";
+    version = "1.3.0";
+    sha256 = "1y5m6kryhjpqqm2g3h3b6bzig13wkiw954x3b7icqjm6xypm1x3b";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Primitives";
-    version = "2.0.0";
-    sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb";
+    name = "System.Xml.ReaderWriter";
+    version = "4.3.0";
+    sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.DotNetHostResolver";
-    version = "2.0.5";
-    sha256 = "1sz2fdp8fdwz21x3lr2m1zhhrbix6iz699fjkwiryqdjl4ygd3hw";
+    name = "System.Linq.Parallel";
+    version = "4.0.1";
+    sha256 = "0i33x9f4h3yq26yvv6xnq4b0v51rl5z8v1bm7vk972h5lvf4apad";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
-    version = "1.1.0";
-    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+    name = "System.Linq.Expressions";
+    version = "4.3.0";
+    sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Targets";
-    version = "1.1.0";
-    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+    name = "System.Diagnostics.Process";
+    version = "4.1.0";
+    sha256 = "061lrcs7xribrmq7kab908lww6kn2xn1w3rdc41q189y0jibl19s";
   })
   (fetchNuGet {
-    name = "System.Reflection.TypeExtensions";
+    name = "System.Runtime";
     version = "4.3.0";
-    sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
+    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
   })
   (fetchNuGet {
-    name = "System.Reflection.Primitives";
-    version = "4.3.0";
-    sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
+    name = "System.Xml.XmlDocument";
+    version = "4.0.1";
+    sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1";
   })
   (fetchNuGet {
-    name = "System.Runtime.InteropServices";
-    version = "4.3.0";
-    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+    name = "Microsoft.Extensions.Primitives";
+    version = "2.0.0";
+    sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Tools";
-    version = "4.3.0";
-    sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
+    name = "Microsoft.NETCore.DotNetHostResolver";
+    version = "2.0.5";
+    sha256 = "1sz2fdp8fdwz21x3lr2m1zhhrbix6iz699fjkwiryqdjl4ygd3hw";
   })
   (fetchNuGet {
-    name = "System.ComponentModel.Primitives";
-    version = "4.3.0";
-    sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
+    name = "System.Runtime.Serialization.Primitives";
+    version = "4.1.1";
+    sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
   })
   (fetchNuGet {
-    name = "System.ComponentModel";
-    version = "4.3.0";
-    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.0.1";
+    sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
   })
   (fetchNuGet {
-    name = "System.Collections.NonGeneric";
-    version = "4.3.0";
-    sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
+    name = "System.AppContext";
+    version = "4.1.0";
+    sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
   })
   (fetchNuGet {
-    name = "System.Collections.Specialized";
-    version = "4.3.0";
-    sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
+    name = "System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit.ILGeneration";
-    version = "4.3.0";
-    sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
+    name = "System.Diagnostics.TraceSource";
+    version = "4.0.0";
+    sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit";
-    version = "4.3.0";
-    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
+    name = "System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem.Primitives";
-    version = "4.3.0";
-    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+    name = "System.Globalization.Calendars";
+    version = "4.0.1";
+    sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
-    version = "4.3.0";
-    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
+    name = "System.Xml.XPath";
+    version = "4.0.1";
+    sha256 = "0fjqgb6y66d72d5n8qq1h213d9nv2vi8mpv8p28j3m9rccmsh04m";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem";
-    version = "4.3.0";
-    sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+    name = "System.Diagnostics.Tools";
+    version = "4.0.1";
+    sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit.Lightweight";
-    version = "4.3.0";
-    sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
+    name = "System.Text.Encoding.Extensions";
+    version = "4.0.11";
+    sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
   })
   (fetchNuGet {
-    name = "System.AppContext";
+    name = "System.Diagnostics.Tracing";
     version = "4.1.0";
-    sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
+    sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
   })
   (fetchNuGet {
-    name = "System.ObjectModel";
-    version = "4.0.12";
-    sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
+    name = "System.Resources.Writer";
+    version = "4.0.0";
+    sha256 = "07hp218kjdcvpl27djspnixgnacbp9apma61zz3wsca9fx5g3lmv";
   })
   (fetchNuGet {
-    name = "System.Collections.Concurrent";
-    version = "4.0.12";
-    sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
+    name = "System.Reflection.TypeExtensions";
+    version = "4.1.0";
+    sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem.Primitives";
+    name = "System.Collections.NonGeneric";
     version = "4.0.1";
-    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+    sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d";
   })
   (fetchNuGet {
-    name = "Microsoft.Win32.Primitives";
-    version = "4.0.1";
-    sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
+    name = "System.Console";
+    version = "4.0.0";
+    sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Tracing";
-    version = "4.1.0";
-    sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
+    name = "System.Security.Cryptography.Primitives";
+    version = "4.0.0";
+    sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
   })
   (fetchNuGet {
-    name = "System.Net.Sockets";
-    version = "4.1.0";
-    sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls";
+    name = "System.Runtime.Numerics";
+    version = "4.0.1";
+    sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
   })
   (fetchNuGet {
-    name = "System.Threading.Timer";
+    name = "Microsoft.Win32.Primitives";
     version = "4.0.1";
-    sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
+    sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
-    version = "1.0.1";
-    sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
+    name = "System.IO.Compression.ZipFile";
+    version = "4.0.1";
+    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
   })
   (fetchNuGet {
-    name = "System.Globalization.Calendars";
+    name = "System.Xml.XPath.XmlDocument";
     version = "4.0.1";
-    sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
+    sha256 = "0l7yljgif41iv5g56l3nxy97hzzgck2a7rhnfnljhx9b0ry41bvc";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Encoding";
-    version = "4.0.0";
-    sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
+    name = "System.Net.Sockets";
+    version = "4.1.0";
+    sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls";
   })
   (fetchNuGet {
-    name = "System.Reflection.Primitives";
-    version = "4.0.1";
-    sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
+    name = "System.Xml.XDocument";
+    version = "4.0.11";
+    sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Tools";
+    name = "System.Reflection.Extensions";
     version = "4.0.1";
-    sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
+    sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
   })
   (fetchNuGet {
-    name = "System.Console";
+    name = "System.Runtime.InteropServices.RuntimeInformation";
     version = "4.0.0";
-    sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
-  })
-  (fetchNuGet {
-    name = "System.Runtime.Handles";
-    version = "4.0.1";
-    sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
+    sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Primitives";
+    name = "System.Resources.Reader";
     version = "4.0.0";
-    sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
+    sha256 = "1jafi73dcf1lalrir46manq3iy6xnxk2z7gpdpwg4wqql7dv3ril";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Debug";
-    version = "4.0.11";
-    sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
+    name = "System.Threading.Thread";
+    version = "4.0.0";
+    sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc";
   })
   (fetchNuGet {
-    name = "System.Collections";
-    version = "4.0.11";
-    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+    name = "System.Threading.Timer";
+    version = "4.0.1";
+    sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
   })
   (fetchNuGet {
-    name = "System.Reflection.Extensions";
+    name = "System.IO.FileSystem.Primitives";
     version = "4.0.1";
-    sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
+    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
   })
   (fetchNuGet {
     name = "System.IO.FileSystem";
@@ -554,29 +649,39 @@ in [
     sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
   })
   (fetchNuGet {
-    name = "System.Runtime.Numerics";
-    version = "4.0.1";
-    sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
+    name = "System.Security.Cryptography.Encoding";
+    version = "4.0.0";
+    sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
   })
   (fetchNuGet {
-    name = "System.IO.Compression.ZipFile";
+    name = "System.Runtime";
+    version = "4.1.0";
+    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Algorithms";
+    version = "4.2.0";
+    sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
     version = "4.0.1";
-    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
+    sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
   })
   (fetchNuGet {
-    name = "System.Resources.ResourceManager";
+    name = "System.Runtime.Handles";
     version = "4.0.1";
-    sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
+    sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Algorithms";
-    version = "4.2.0";
-    sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
+    name = "System.ObjectModel";
+    version = "4.0.12";
+    sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
   })
   (fetchNuGet {
-    name = "System.Linq";
-    version = "4.1.0";
-    sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+    name = "System.Net.Primitives";
+    version = "4.0.11";
+    sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
   })
   (fetchNuGet {
     name = "System.Text.Encoding";
@@ -584,9 +689,9 @@ in [
     sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
   })
   (fetchNuGet {
-    name = "System.Runtime.InteropServices.RuntimeInformation";
-    version = "4.0.0";
-    sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
+    name = "System.Collections.Concurrent";
+    version = "4.0.12";
+    sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
   })
   (fetchNuGet {
     name = "System.IO.Compression";
@@ -594,19 +699,9 @@ in [
     sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding.Extensions";
-    version = "4.0.11";
-    sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
-  })
-  (fetchNuGet {
-    name = "System.Globalization";
-    version = "4.0.11";
-    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
-  })
-  (fetchNuGet {
-    name = "System.Text.RegularExpressions";
+    name = "System.IO";
     version = "4.1.0";
-    sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
+    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
   })
   (fetchNuGet {
     name = "System.Reflection";
@@ -614,34 +709,29 @@ in [
     sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
   })
   (fetchNuGet {
-    name = "System.Xml.XDocument";
+    name = "System.Collections";
     version = "4.0.11";
-    sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
+    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
   })
   (fetchNuGet {
-    name = "System.Threading";
-    version = "4.0.11";
-    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+    name = "System.Linq";
+    version = "4.1.0";
+    sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks";
+    name = "System.Globalization";
     version = "4.0.11";
-    sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
+    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
   })
   (fetchNuGet {
-    name = "System.Net.Primitives";
+    name = "System.Threading";
     version = "4.0.11";
-    sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
-  })
-  (fetchNuGet {
-    name = "System.IO";
-    version = "4.1.0";
-    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
   })
   (fetchNuGet {
-    name = "System.Runtime.Extensions";
+    name = "System.Text.RegularExpressions";
     version = "4.1.0";
-    sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
+    sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
   })
   (fetchNuGet {
     name = "System.Security.Cryptography.X509Certificates";
@@ -649,54 +739,34 @@ in [
     sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
   })
   (fetchNuGet {
-    name = "System.Net.Http";
-    version = "4.1.0";
-    sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb";
-  })
-  (fetchNuGet {
     name = "System.Xml.ReaderWriter";
     version = "4.0.11";
     sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
   })
   (fetchNuGet {
-    name = "System.Runtime.InteropServices";
-    version = "4.1.0";
-    sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
-  })
-  (fetchNuGet {
-    name = "System.Linq.Expressions";
+    name = "System.Net.Http";
     version = "4.1.0";
-    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
+    sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb";
   })
   (fetchNuGet {
-    name = "System.Runtime";
+    name = "System.Runtime.Extensions";
     version = "4.1.0";
-    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
-  })
-  (fetchNuGet {
-    name = "System.Threading.Thread";
-    version = "4.0.0";
-    sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc";
+    sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.TraceSource";
-    version = "4.0.0";
-    sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h";
+    name = "System.Threading.Tasks";
+    version = "4.0.11";
+    sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
   })
   (fetchNuGet {
-    name = "System.Reflection.TypeExtensions";
+    name = "System.Linq.Expressions";
     version = "4.1.0";
-    sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
-  })
-  (fetchNuGet {
-    name = "System.Runtime.Serialization.Primitives";
-    version = "4.1.1";
-    sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
+    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
   })
   (fetchNuGet {
-    name = "System.Xml.XmlDocument";
-    version = "4.0.1";
-    sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1";
+    name = "System.Runtime.InteropServices";
+    version = "4.1.0";
+    sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
@@ -709,19 +779,9 @@ in [
     sha256 = "0a332ia5pabnz7mdfc99a5hlc7drnwzlc7cj9b5c3an6dq636p66";
   })
   (fetchNuGet {
-    name = "System.Collections.NonGeneric";
-    version = "4.0.1";
-    sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d";
-  })
-  (fetchNuGet {
-    name = "System.Resources.Reader";
-    version = "4.0.0";
-    sha256 = "1jafi73dcf1lalrir46manq3iy6xnxk2z7gpdpwg4wqql7dv3ril";
-  })
-  (fetchNuGet {
-    name = "System.Xml.XPath.XmlDocument";
-    version = "4.0.1";
-    sha256 = "0l7yljgif41iv5g56l3nxy97hzzgck2a7rhnfnljhx9b0ry41bvc";
+    name = "Microsoft.CSharp";
+    version = "4.7.0";
+    sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j";
   })
   (fetchNuGet {
     name = "Microsoft.NETCore.Platforms";
@@ -729,14 +789,9 @@ in [
     sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
   })
   (fetchNuGet {
-    name = "Microsoft.CSharp";
-    version = "4.7.0";
-    sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j";
-  })
-  (fetchNuGet {
-    name = "System.Xml.XPath";
-    version = "4.0.1";
-    sha256 = "0fjqgb6y66d72d5n8qq1h213d9nv2vi8mpv8p28j3m9rccmsh04m";
+    name = "Newtonsoft.Json";
+    version = "11.0.1";
+    sha256 = "1z68j07if1xf71lbsrgbia52r812i2dv541sy44ph4dzjjp7pd4m";
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.Logging.Abstractions";
@@ -744,14 +799,9 @@ in [
     sha256 = "1sh9bidmhy32gkz6fkli79mxv06546ybrzppfw5v2aq0bda1ghka";
   })
   (fetchNuGet {
-    name = "System.Security.Principal.Windows";
-    version = "4.7.0";
-    sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d";
-  })
-  (fetchNuGet {
-    name = "System.Security.AccessControl";
-    version = "4.7.0";
-    sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz";
+    name = "Newtonsoft.Json.Bson";
+    version = "1.0.2";
+    sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.JsonPatch";
@@ -764,59 +814,19 @@ in [
     sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
   })
   (fetchNuGet {
-    name = "System.Resources.Writer";
-    version = "4.0.0";
-    sha256 = "07hp218kjdcvpl27djspnixgnacbp9apma61zz3wsca9fx5g3lmv";
-  })
-  (fetchNuGet {
-    name = "System.Reflection.Metadata";
-    version = "1.3.0";
-    sha256 = "1y5m6kryhjpqqm2g3h3b6bzig13wkiw954x3b7icqjm6xypm1x3b";
-  })
-  (fetchNuGet {
-    name = "System.Collections.Immutable";
-    version = "1.2.0";
-    sha256 = "1jm4pc666yiy7af1mcf7766v710gp0h40p228ghj6bavx7xfa38m";
-  })
-  (fetchNuGet {
-    name = "System.Linq.Parallel";
-    version = "4.0.1";
-    sha256 = "0i33x9f4h3yq26yvv6xnq4b0v51rl5z8v1bm7vk972h5lvf4apad";
-  })
-  (fetchNuGet {
-    name = "System.Diagnostics.Process";
-    version = "4.1.0";
-    sha256 = "061lrcs7xribrmq7kab908lww6kn2xn1w3rdc41q189y0jibl19s";
-  })
-  (fetchNuGet {
-    name = "System.Runtime.Serialization.Xml";
-    version = "4.1.1";
-    sha256 = "11747an5gbz821pwahaim3v82gghshnj9b5c4cw539xg5a3gq7rk";
-  })
-  (fetchNuGet {
-    name = "System.Threading.ThreadPool";
-    version = "4.0.10";
-    sha256 = "0fdr61yjcxh5imvyf93n2m3n5g9pp54bnw2l1d2rdl9z6dd31ypx";
-  })
-  (fetchNuGet {
-    name = "System.Runtime.Loader";
-    version = "4.0.0";
-    sha256 = "0lpfi3psqcp6zxsjk2qyahal7zaawviimc8lhrlswhip2mx7ykl0";
-  })
-  (fetchNuGet {
-    name = "System.Diagnostics.Contracts";
-    version = "4.0.1";
-    sha256 = "0y6dkd9n5k98vzhc3w14r2pbhf10qjn2axpghpmfr6rlxx9qrb9j";
+    name = "System.Security.Principal.Windows";
+    version = "4.7.0";
+    sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.FileVersionInfo";
-    version = "4.0.0";
-    sha256 = "1s5vxhy7i09bmw51kxqaiz9zaj9am8wsjyz13j85sp23z267hbv3";
+    name = "System.Security.AccessControl";
+    version = "4.7.0";
+    sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz";
   })
   (fetchNuGet {
-    name = "NBitcoin.Secp256k1";
-    version = "1.0.1";
-    sha256 = "0j3a8iamqh06b7am6k8gh6d41zvrnmsif3525bw742jw5byjypdl";
+    name = "NBitcoin";
+    version = "5.0.47";
+    sha256 = "1plri6q83jn80m95np0zxdg3nk2f36z8v42j4sg5wjv8qppp866d";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
@@ -824,26 +834,21 @@ in [
     sha256 = "1c2lrlp64kkacnjgdyygr6fqdawk10l8j4qgppii6rq61yjwhcig";
   })
   (fetchNuGet {
-    name = "Newtonsoft.Json.Bson";
-    version = "1.0.2";
-    sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35";
-  })
-  (fetchNuGet {
     name = "Microsoft.Win32.Registry";
     version = "4.7.0";
     sha256 = "0bx21jjbs7l5ydyw4p6cn07chryxpmchq2nl5pirzz4l3b0q4dgs";
   })
   (fetchNuGet {
+    name = "NBitcoin.Secp256k1";
+    version = "1.0.3";
+    sha256 = "08d4db64j1qz8ax9fg8zi6n7g1n53clnkajbbvv2hgaqyfrsnqxj";
+  })
+  (fetchNuGet {
     name = "Microsoft.OpenApi";
     version = "1.1.4";
     sha256 = "1sn79829nhx6chi2qxsza1801di7zdl5fd983m0jakawzbjhjcb3";
   })
   (fetchNuGet {
-    name = "NBitcoin";
-    version = "5.0.29";
-    sha256 = "0a6jvdvnf5h9j6c3ii3pdnkq79shmcm1hf6anaqcwvi3gq19chak";
-  })
-  (fetchNuGet {
     name = "Swashbuckle.AspNetCore.SwaggerUI";
     version = "5.0.0";
     sha256 = "0d7vjq489rz208j6k3rb7vq6mzxzff3mqg83yk2rqy25vklrsbjd";
@@ -879,26 +884,11 @@ in [
     sha256 = "0m4vgmzi1ky8xlj0r7xcyazxln3j9dlialnk6d2gmgrfnzf8f9m7";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Threading.Tasks";
-    version = "4.0.11";
-    sha256 = "1qzdp09qs8br5qxzlm1lgbjn4n57fk8vr1lzrmli2ysdg6x1xzvk";
-  })
-  (fetchNuGet {
     name = "System.Private.Uri";
     version = "4.0.1";
     sha256 = "0k57qhawjysm4cpbfpc49kl4av7lji310kjcamkl23bwgij5ld9j";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Diagnostics.Tracing";
-    version = "4.1.0";
-    sha256 = "041im8hmp1zdgrx6jzyrdch6kshvbddmkar7r2mlm1ksb5c5kwpq";
-  })
-  (fetchNuGet {
-    name = "runtime.any.System.IO";
-    version = "4.1.0";
-    sha256 = "0kasfkjiml2kk8prnyn1990nhsahnjggvqwszqjdsfwfl43vpcb5";
-  })
-  (fetchNuGet {
     name = "runtime.any.System.Runtime.Handles";
     version = "4.0.1";
     sha256 = "1kswgqhy34qvc49i981fk711s7knd6z13bp0rin8ms6axkh98nas";
@@ -909,29 +899,24 @@ in [
     sha256 = "1zxrpvixr5fqzkxpnin6g6gjq6xajy1snghz99ds2dwbhm276rhz";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Runtime";
+    name = "runtime.any.System.IO";
     version = "4.1.0";
-    sha256 = "0mjr2bi7wvnkphfjqgkyf8vfyvy15a829jz6mivl6jmksh2bx40m";
-  })
-  (fetchNuGet {
-    name = "runtime.any.System.Resources.ResourceManager";
-    version = "4.0.1";
-    sha256 = "1jmgs7hynb2rff48623wnyb37558bbh1q28k9c249j5r5sgsr5kr";
+    sha256 = "0kasfkjiml2kk8prnyn1990nhsahnjggvqwszqjdsfwfl43vpcb5";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Globalization";
-    version = "4.0.11";
-    sha256 = "0240rp66pi5bw1xklmh421hj7arwcdmjmgfkiq1cbc6nrm8ah286";
+    name = "runtime.any.System.Runtime";
+    version = "4.1.0";
+    sha256 = "0mjr2bi7wvnkphfjqgkyf8vfyvy15a829jz6mivl6jmksh2bx40m";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Collections";
+    name = "runtime.any.System.Threading.Tasks";
     version = "4.0.11";
-    sha256 = "1x44bm1cgv28zmrp095wf9mn8a6a0ivnzp9v14dcbhx06igxzgg0";
+    sha256 = "1qzdp09qs8br5qxzlm1lgbjn4n57fk8vr1lzrmli2ysdg6x1xzvk";
   })
   (fetchNuGet {
-    name = "runtime.unix.System.Diagnostics.Debug";
-    version = "4.0.11";
-    sha256 = "05ndbai4vpqrry0ghbfgqc8xblmplwjgndxmdn1zklqimczwjg2d";
+    name = "runtime.any.System.Diagnostics.Tracing";
+    version = "4.1.0";
+    sha256 = "041im8hmp1zdgrx6jzyrdch6kshvbddmkar7r2mlm1ksb5c5kwpq";
   })
   (fetchNuGet {
     name = "runtime.unix.System.Runtime.Extensions";
@@ -939,13 +924,33 @@ in [
     sha256 = "0x1cwd7cvifzmn5x1wafvj75zdxlk3mxy860igh3x1wx0s8167y4";
   })
   (fetchNuGet {
+    name = "runtime.any.System.Runtime.InteropServices";
+    version = "4.1.0";
+    sha256 = "0gm8if0hcmp1qys1wmx4970k2x62pqvldgljsyzbjhiy5644vl8z";
+  })
+  (fetchNuGet {
     name = "runtime.any.System.Reflection";
     version = "4.1.0";
     sha256 = "06kcs059d5czyakx75rvlwa2mr86156w18fs7chd03f7084l7mq6";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Runtime.InteropServices";
-    version = "4.1.0";
-    sha256 = "0gm8if0hcmp1qys1wmx4970k2x62pqvldgljsyzbjhiy5644vl8z";
+    name = "runtime.any.System.Collections";
+    version = "4.0.11";
+    sha256 = "1x44bm1cgv28zmrp095wf9mn8a6a0ivnzp9v14dcbhx06igxzgg0";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Globalization";
+    version = "4.0.11";
+    sha256 = "0240rp66pi5bw1xklmh421hj7arwcdmjmgfkiq1cbc6nrm8ah286";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "1jmgs7hynb2rff48623wnyb37558bbh1q28k9c249j5r5sgsr5kr";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "05ndbai4vpqrry0ghbfgqc8xblmplwjgndxmdn1zklqimczwjg2d";
   })
-]
\ No newline at end of file
+]
diff --git a/pkgs/applications/blockchains/wasabiwallet/default.nix b/pkgs/applications/blockchains/wasabiwallet/default.nix
index a098f14668e..3b4ec1c49c4 100644
--- a/pkgs/applications/blockchains/wasabiwallet/default.nix
+++ b/pkgs/applications/blockchains/wasabiwallet/default.nix
@@ -24,11 +24,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "wasabiwallet";
-  version = "1.1.11.1";
+  version = "1.1.12";
 
   src = fetchurl {
-    url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/WasabiLinux-${version}.tar.gz";
-    sha256 = "04v8f2h67aqvcb5a8vmzbp2sqnq7g4m0v1ng52ccb4ii668ya8hy";
+    url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/Wasabi-${version}.tar.gz";
+    sha256 = "0nfd0pwsgrkaxcxfs8wb3i8kslfcqnc91iahw3rmlcxdzb81kjs4";
   };
 
   dontBuild = true;
diff --git a/pkgs/applications/blockchains/whirlpool-gui/default.nix b/pkgs/applications/blockchains/whirlpool-gui/default.nix
index 17b817bc61d..9a660bb8bff 100644
--- a/pkgs/applications/blockchains/whirlpool-gui/default.nix
+++ b/pkgs/applications/blockchains/whirlpool-gui/default.nix
@@ -3,6 +3,7 @@
 
 let
   system = stdenv.hostPlatform.system;
+  electron = electron_7;
 
 in stdenv.mkDerivation rec {
   pname = "whirlpool-gui";
@@ -71,7 +72,7 @@ in stdenv.mkDerivation rec {
     ln -s "${desktopItem}/share/applications" "$out/share/applications"
 
     # wrap electron
-    makeWrapper '${electron_7}/bin/electron' "$out/bin/whirlpool-gui" \
+    makeWrapper '${electron}/bin/electron' "$out/bin/whirlpool-gui" \
       --add-flags "$out/libexec/whirlpool-gui" \
       --prefix PATH : "${jre8}/bin:${tor}/bin"
   '';
diff --git a/pkgs/applications/blockchains/wownero.nix b/pkgs/applications/blockchains/wownero.nix
index e0d12491816..8d45e1a96b5 100644
--- a/pkgs/applications/blockchains/wownero.nix
+++ b/pkgs/applications/blockchains/wownero.nix
@@ -1,26 +1,26 @@
-{ stdenv, fetchFromGitHub, cmake, boost, miniupnpc_2, openssl, unbound
+{ stdenv, fetchgit, cmake, boost, miniupnpc_2, openssl, unbound
 , readline, libsodium, rapidjson, fetchurl
 }:
 
 with stdenv.lib;
 
 let
-  randomwowVersion = "1.1.6";
+  randomwowVersion = "1.1.7";
   randomwow = fetchurl {
     url = "https://github.com/wownero/RandomWOW/archive/${randomwowVersion}.tar.gz";
-    sha256 = "1c55y2dwrayh6k1avpchs89gq1mvy5c305h92jm2k48kzhw6a792";
+    sha256 = "1xp76zf01hnhnk6rjvqjav9n9pnvxzxlzqa5rc574d1c2qczfy3q";
   };
 in
 
 stdenv.mkDerivation rec {
   pname = "wownero";
-  version = "0.8.0.0";
+  version = "0.8.0.1";
 
-  src = fetchFromGitHub {
-    owner = "wownero";
-    repo = "wownero";
-    rev    = "v${version}";
-    sha256 = "14nggivilgzaqhjd4ng3g2p884yp2hc322hpcpwjdnz2zfc3qq6c";
+  src = fetchgit {
+    url = "https://git.wownero.com/wownero/wownero.git";
+    rev = "v${version}";
+    sha256 = "15443xv6q1nw4627ajk6k4ghhahvh82lb4gyb8nvq753p2v838g3";
+    fetchSubmodules = false;
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/display-managers/lightdm/default.nix b/pkgs/applications/display-managers/lightdm/default.nix
index 1a65ebd3357..19ebedf1ea3 100644
--- a/pkgs/applications/display-managers/lightdm/default.nix
+++ b/pkgs/applications/display-managers/lightdm/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , substituteAll
 , plymouth
 , pam
@@ -127,6 +128,13 @@ stdenv.mkDerivation rec {
     rm -rf $out/etc/apparmor.d $out/etc/init $out/etc/pam.d
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+
   meta = {
     homepage = "https://github.com/CanonicalLtd/lightdm";
     description = "A cross-desktop display manager";
diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix
index 1a6904b2176..605d810b3d9 100644
--- a/pkgs/applications/editors/android-studio/common.nix
+++ b/pkgs/applications/editors/android-studio/common.nix
@@ -198,7 +198,12 @@ in runCommand
       # binaries are also distributed as proprietary software (unlike the
       # source-code itself).
       platforms = [ "x86_64-linux" ];
-      maintainers = with maintainers; [ primeos ];
+      maintainers = with maintainers; rec {
+        stable = [ meutraa ];
+        beta = [ meutraa ];
+        canary = [ meutraa ];
+        dev = canary;
+      }."${channel}";
     };
   }
   ''
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index a64b361f8a7..e84d2e9dac1 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -1,4 +1,4 @@
-{ callPackage, makeFontsConf, gnome2 }:
+{ callPackage, makeFontsConf, gnome2, buildFHSUserEnv }:
 
 let
   mkStudio = opts: callPackage (import ./common.nix opts) {
@@ -6,21 +6,22 @@ let
       fontDirectories = [];
     };
     inherit (gnome2) GConf gnome_vfs;
+    inherit buildFHSUserEnv;
   };
   stableVersion = {
-    version = "4.0.0.16"; # "Android Studio 4.0"
-    build = "193.6514223";
-    sha256Hash = "1sqj64vddwfrr9821habfz7dms9csvbp7b8gf1d027188b2lvh3h";
+    version = "4.0.1.0"; # "Android Studio 4.0.1"
+    build = "193.6626763";
+    sha256Hash = "15vm7fvi8c286wx9f28z6ysvm8wqqda759qql0zy9simwx22gy7j";
   };
   betaVersion = {
-    version = "4.0.0.16"; # "Android Studio 4.0"
-    build = "193.6514223";
-    sha256Hash = "1sqj64vddwfrr9821habfz7dms9csvbp7b8gf1d027188b2lvh3h";
+    version = "4.1.0.17"; # "Android Studio 4.1 RC 2"
+    build = "201.6776251";
+    sha256Hash = "sha256-3W+eUcffRk7lZxbvf3X/Np4hkwAUqU51sQ061XR7Ddc=";
   };
   latestVersion = { # canary & dev
-    version = "4.1.0.10"; # "Android Studio 4.1 Canary 10"
-    build = "201.6507185";
-    sha256Hash = "19yawwsjsdqc0brr0ahviljv4v4p085k3izdpmm915c0bjm89y72";
+    version = "4.2.0.8"; # "Android Studio 4.2 Canary 8"
+    build = "202.6787931";
+    sha256Hash = "0y5fzr22dknzxay1bhd1ymhdnmdrpccdw8dswy2z9bxjsvq65n62";
   };
 in {
   # Attributes are named by their corresponding release channels
diff --git a/pkgs/applications/editors/atom/default.nix b/pkgs/applications/editors/atom/default.nix
index dec3c795501..5f26fa23bc2 100644
--- a/pkgs/applications/editors/atom/default.nix
+++ b/pkgs/applications/editors/atom/default.nix
@@ -35,23 +35,30 @@ let
       gtk3  # Fix error: GLib-GIO-ERROR **: Settings schema 'org.gtk.Settings.FileChooser' is not installed
     ];
 
+    dontBuild = true;
+    dontConfigure = true;
+
+    unpackPhase = ''
+      ar p $src data.tar.xz | tar xJ ./usr/
+    '';
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out
+      mv usr/bin usr/share $out
+      rm -rf $out/share/lintian
+
+      runHook postInstall
+    '';
+
     preFixup = ''
       gappsWrapperArgs+=(
-        --prefix "PATH" : "${gvfs}/bin" \
+        --prefix "PATH" : "${gvfs}/bin"
       )
     '';
 
-    buildCommand = ''
-      mkdir -p $out/usr/
-      ar p $src data.tar.xz | tar -C $out -xJ ./usr
-      sed -i -e "s|Exec=.*$|Exec=$out/bin/${pname}|" $out/usr/share/applications/${pname}.desktop
-      mv $out/usr/* $out/
-      rm -r $out/share/lintian
-      rm -r $out/usr/
-      sed -i "s/${pname})/.${pname}-wrapped)/" $out/bin/${pname}
-
-      fixupPhase
-
+    postFixup = ''
       share=$out/share/${pname}
 
       patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
@@ -70,6 +77,8 @@ let
       ln -s ${pkgs.git}/bin/git $dugite/git/libexec/git-core/git
 
       find $share -name "*.node" -exec patchelf --set-rpath "${atomEnv.libPath}:$share" {} \;
+
+      sed -i -e "s|Exec=.*$|Exec=$out/bin/${pname}|" $out/share/applications/${pname}.desktop
     '';
 
     meta = with stdenv.lib; {
diff --git a/pkgs/applications/editors/brackets/default.nix b/pkgs/applications/editors/brackets/default.nix
index 3e01bcdb0f9..9d5978e605a 100644
--- a/pkgs/applications/editors/brackets/default.nix
+++ b/pkgs/applications/editors/brackets/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gtk2, glib, gdk-pixbuf, alsaLib, nss, nspr, gconf
+{ stdenv, lib, fetchurl, gtk2, glib, gdk-pixbuf, alsaLib, nss, nspr, gconf
 , cups, libgcrypt_1_5, systemd, dbus, libXdamage, expat }:
 with stdenv.lib;
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     rmdir $out/usr
     ln -sf $out/opt/brackets/brackets $out/bin/brackets
 
-    ln -s ${systemd.lib}/lib/libudev.so.1 $out/opt/brackets/lib/libudev.so.0
+    ln -s ${lib.getLib systemd}/lib/libudev.so.1 $out/opt/brackets/lib/libudev.so.0
 
     substituteInPlace $out/opt/brackets/brackets.desktop \
       --replace "Exec=/opt/brackets/brackets" "Exec=brackets"
diff --git a/pkgs/applications/editors/code-browser/default.nix b/pkgs/applications/editors/code-browser/default.nix
new file mode 100644
index 00000000000..11476cae702
--- /dev/null
+++ b/pkgs/applications/editors/code-browser/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, fetchurl
+, copper
+, ruby
+, python3
+, qtbase
+, gtk3
+, pkg-config
+, withQt ? false
+, withGtk ? false, wrapQtAppsHook ? null
+}:
+stdenv.mkDerivation rec {
+  pname = "code-browser";
+  version = "7.1.20";
+  src = fetchurl {
+    url = "https://tibleiz.net/download/code-browser-${version}-src.tar.gz";
+    sha256 = "1svi0v3h42h2lrb8c7pjvqc8019v1p20ibsnl48pfhl8d96mmdnz";
+  };
+  postPatch = ''
+    substituteInPlace Makefile --replace "LFLAGS=-no-pie" "LFLAGS=-no-pie -L."
+    substituteInPlace libs/copper-ui/Makefile --replace "moc -o" "${qtbase.dev}/bin/moc -o"
+    patchShebangs .
+  '';
+  nativeBuildInputs = [ copper
+                        python3
+                        ruby
+                        qtbase
+                        gtk3
+                        pkg-config
+                      ]
+  ++ stdenv.lib.optionals withQt [ wrapQtAppsHook ];
+  buildInputs = stdenv.lib.optionals withQt [ qtbase ]
+                ++ stdenv.lib.optionals withGtk [ gtk3 ];
+  makeFlags = [
+    "prefix=$(out)"
+    "COPPER=${copper}/bin/copper-elf64"
+    "with-local-libs"
+    "QINC=${qtbase.dev}/include"
+  ]
+  ++ stdenv.lib.optionals withQt [ "UI=qt" ]
+  ++ stdenv.lib.optionals withGtk [ "UI=gtk" ];
+  meta = with stdenv.lib; {
+    description = "Folding text editor, designed to hierarchically structure any kind of text file and especially source code.";
+    homepage = "https://tibleiz.net/code-browser/";
+    license = licenses.gpl2;
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/pkgs/applications/editors/ed/default.nix b/pkgs/applications/editors/ed/default.nix
index 37d055e2685..0fb48203b2f 100644
--- a/pkgs/applications/editors/ed/default.nix
+++ b/pkgs/applications/editors/ed/default.nix
@@ -1,6 +1,11 @@
 { stdenv, fetchurl, lzip
 }:
 
+# 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
+# files.
+
 stdenv.mkDerivation (rec {
   name = "ed-${version}";
   version = "1.16";
diff --git a/pkgs/applications/editors/emacs-modes/elpa-generated.nix b/pkgs/applications/editors/emacs-modes/elpa-generated.nix
index b1b33dc9354..a56cb73fb24 100644
--- a/pkgs/applications/editors/emacs-modes/elpa-generated.nix
+++ b/pkgs/applications/editors/emacs-modes/elpa-generated.nix
@@ -19,10 +19,10 @@
       elpaBuild {
         pname = "ack";
         ename = "ack";
-        version = "1.8";
+        version = "1.10";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ack-1.8.tar";
-          sha256 = "1d4218km7j1bx1fsna29j3gi3k2ak2fzbk1gyki327pnnlma6bav";
+          url = "https://elpa.gnu.org/packages/ack-1.10.tar";
+          sha256 = "0jz8badhjpzjlrprpzgcm1z6ask1ykc7ab62ixjrj9wcgfjif5qw";
         };
         packageRequires = [];
         meta = {
@@ -39,10 +39,10 @@
       elpaBuild {
         pname = "ada-mode";
         ename = "ada-mode";
-        version = "7.1.1";
+        version = "7.1.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ada-mode-7.1.1.tar";
-          sha256 = "11ch0dn478ddzkcjcyqf2rjim7w0fjb8xfijqxxi07847w4gkklp";
+          url = "https://elpa.gnu.org/packages/ada-mode-7.1.4.tar";
+          sha256 = "13zcs7kn7rca82c80qshbdpmmmgkf5phr88hf7p5nwxqhkazy9cd";
         };
         packageRequires = [ emacs uniquify-files wisi ];
         meta = {
@@ -54,10 +54,10 @@
       elpaBuild {
         pname = "ada-ref-man";
         ename = "ada-ref-man";
-        version = "2012.5";
+        version = "2020.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ada-ref-man-2012.5.tar";
-          sha256 = "0n7izqc44i3l6fxbzkq9gwwlcf04rr9g1whrk8biz84jhbyh23x8";
+          url = "https://elpa.gnu.org/packages/ada-ref-man-2020.1.tar";
+          sha256 = "1g4brb9g2spd55issyqldfc4azwilbrz8kh8sl0lka2kn42l3qqc";
         };
         packageRequires = [];
         meta = {
@@ -223,10 +223,10 @@
       elpaBuild {
         pname = "auctex";
         ename = "auctex";
-        version = "12.2.1";
+        version = "12.2.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/auctex-12.2.1.tar";
-          sha256 = "14y0kdri2zvz81qwpncsr3ly4ciqab6g8yxl956k3ddn36b3a56s";
+          url = "https://elpa.gnu.org/packages/auctex-12.2.4.tar";
+          sha256 = "1yz2h692mr35zgqwlxdq8rzv8n0jixhpaqmbiki00hlysm4zh9py";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -557,10 +557,10 @@
       elpaBuild {
         pname = "company";
         ename = "company";
-        version = "0.9.12";
+        version = "0.9.13";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/company-0.9.12.tar";
-          sha256 = "1vcgfccdc06alba3jl6dg7ms20wdzdhaqikh7id5lbawb00hc10j";
+          url = "https://elpa.gnu.org/packages/company-0.9.13.tar";
+          sha256 = "1c9x9wlzzsn7vrsm57l2l44nqx455saa6wrm853szzg09qn8dlnw";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -636,6 +636,36 @@
           license = lib.licenses.free;
         };
       }) {};
+    counsel = callPackage ({ elpaBuild, emacs, fetchurl, lib, swiper }:
+      elpaBuild {
+        pname = "counsel";
+        ename = "counsel";
+        version = "0.13.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/counsel-0.13.1.el";
+          sha256 = "1y3hr3j5bh5mbyh1cqzxx04181qpvj4xyv1gym2gxcjd30nfllli";
+        };
+        packageRequires = [ emacs swiper ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/counsel.html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cpio-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "cpio-mode";
+        ename = "cpio-mode";
+        version = "0.16";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/cpio-mode-0.16.tar";
+          sha256 = "06xdifgx45aghfppz5dws3v6w37q84lwgxp1pc51p2jjflqbqy5q";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/cpio-mode.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     crisp = callPackage ({ elpaBuild, fetchurl, lib }:
       elpaBuild {
         pname = "crisp";
@@ -730,10 +760,10 @@
       elpaBuild {
         pname = "debbugs";
         ename = "debbugs";
-        version = "0.22";
+        version = "0.25";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/debbugs-0.22.tar";
-          sha256 = "05ik9qv539b5c1nzxkk3lk23bqj4vqgmfmd8x367abhb7c9gix2z";
+          url = "https://elpa.gnu.org/packages/debbugs-0.25.tar";
+          sha256 = "0h0pxav170yzfpjf4vb8simiw67x9dkcjx9m4ghdk6wia25y8jni";
         };
         packageRequires = [ emacs soap-client ];
         meta = {
@@ -745,10 +775,10 @@
       elpaBuild {
         pname = "delight";
         ename = "delight";
-        version = "1.5";
+        version = "1.7";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/delight-1.5.el";
-          sha256 = "0kzlvzwmn6zj0874086q2xw0pclyi7wlkq48zh2lkd2796xm8vw7";
+          url = "https://elpa.gnu.org/packages/delight-1.7.el";
+          sha256 = "0pihsghrf9xnd1kqlq48qmjcmp5ra95wwwgrb3l8m1wagmmc0bi1";
         };
         packageRequires = [ cl-lib nadvice ];
         meta = {
@@ -925,10 +955,10 @@
       elpaBuild {
         pname = "ebdb";
         ename = "ebdb";
-        version = "0.6.17";
+        version = "0.6.18";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ebdb-0.6.17.tar";
-          sha256 = "07335pcqvvj1apzbwy4dc4i6pc6w21hr7v9fvgkc9c2x7fqlqg24";
+          url = "https://elpa.gnu.org/packages/ebdb-0.6.18.tar";
+          sha256 = "0znbv3c7wdgak1f1zb051vg4r29fksqh53k1j77jfmqcvwkpz2mw";
         };
         packageRequires = [ cl-lib emacs seq ];
         meta = {
@@ -970,10 +1000,10 @@
       elpaBuild {
         pname = "ediprolog";
         ename = "ediprolog";
-        version = "1.2";
+        version = "2.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ediprolog-1.2.el";
-          sha256 = "039ffvp7c810mjyargmgw1i87g0z8qs8qicq826sd9aiz9hprfaz";
+          url = "https://elpa.gnu.org/packages/ediprolog-2.1.el";
+          sha256 = "1piimsmzpirw8plrpy79xbpnvynzzhcxi31g6lg6is8gridiv3md";
         };
         packageRequires = [];
         meta = {
@@ -1040,10 +1070,10 @@
       elpaBuild {
         pname = "eldoc";
         ename = "eldoc";
-        version = "1.0.0";
+        version = "1.8.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/eldoc-1.0.0.el";
-          sha256 = "0jdqnndvpz929rbfgrm2bgw3z2vp7dvvgk3wnhvlhf63mdiza89m";
+          url = "https://elpa.gnu.org/packages/eldoc-1.8.0.el";
+          sha256 = "1zxy9x9a0yqwdi572jj04x9lyj3d87mpyfbn3092a5nqwc864k9w";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1085,10 +1115,10 @@
       elpaBuild {
         pname = "elisp-benchmarks";
         ename = "elisp-benchmarks";
-        version = "1.4";
+        version = "1.7";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.4.tar";
-          sha256 = "18ia04aq4pqa8374x60g3g66jqmm17c6n904naa0jhqphlgam8pb";
+          url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.7.tar";
+          sha256 = "1ps28bvh87d98k84ygx374a1kbwvnqm4w8jpkgzic01as78hgkiz";
         };
         packageRequires = [];
         meta = {
@@ -1096,6 +1126,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    emms = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+      elpaBuild {
+        pname = "emms";
+        ename = "emms";
+        version = "5.42";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/emms-5.42.tar";
+          sha256 = "1khx1fvllrs6w9kxk12mp1hj309c90mc7lkq1vvlqlr7vd6zmnpj";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/emms.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     enwc = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "enwc";
@@ -1187,10 +1232,10 @@
       elpaBuild {
         pname = "exwm";
         ename = "exwm";
-        version = "0.23";
+        version = "0.24";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/exwm-0.23.tar";
-          sha256 = "05w1v3wrp1lzz20zd9lcvr5nhk809kgy6svvkbs15xhnr6x55ad5";
+          url = "https://elpa.gnu.org/packages/exwm-0.24.tar";
+          sha256 = "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s";
         };
         packageRequires = [ xelb ];
         meta = {
@@ -1243,16 +1288,16 @@
           license = lib.licenses.free;
         };
       }) {};
-    flymake = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+    flymake = callPackage ({ eldoc, elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "flymake";
         ename = "flymake";
-        version = "1.0.8";
+        version = "1.0.9";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/flymake-1.0.8.el";
-          sha256 = "1hqxrqb227v4ncjjqx8im3c4mhg8w5yjbz9hpfcm5x8xnr2yd6bp";
+          url = "https://elpa.gnu.org/packages/flymake-1.0.9.el";
+          sha256 = "0xm1crhjcs14iqkf481igbf40wj2ib3hjzinw1gn8w1n0462ymp6";
         };
-        packageRequires = [ emacs ];
+        packageRequires = [ eldoc emacs ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/flymake.html";
           license = lib.licenses.free;
@@ -1292,10 +1337,10 @@
       elpaBuild {
         pname = "frog-menu";
         ename = "frog-menu";
-        version = "0.2.10";
+        version = "0.2.11";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/frog-menu-0.2.10.el";
-          sha256 = "050qikvgh9v7kgvhznjsfrpyhs7iq1x63bryqdkrwlf668yhzi1m";
+          url = "https://elpa.gnu.org/packages/frog-menu-0.2.11.el";
+          sha256 = "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff";
         };
         packageRequires = [ avy emacs posframe ];
         meta = {
@@ -1591,10 +1636,10 @@
       elpaBuild {
         pname = "hyperbole";
         ename = "hyperbole";
-        version = "7.0.6";
+        version = "7.1.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/hyperbole-7.0.6.tar";
-          sha256 = "08gi4v76s53nfmn3s0qcxc3zii0pspjfd6ry7jq1kgm3z34x8hab";
+          url = "https://elpa.gnu.org/packages/hyperbole-7.1.2.tar";
+          sha256 = "1bspmqnbniwr9385wh823dsr5fgch5qnlkf45s4vi0nvg8jdccp1";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1636,10 +1681,10 @@
       elpaBuild {
         pname = "ivy";
         ename = "ivy";
-        version = "0.13.0";
+        version = "0.13.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ivy-0.13.0.tar";
-          sha256 = "18r9vb9v7hvdkylchn436sgh7ji9avhry1whjip8zrn0c1bnqmk8";
+          url = "https://elpa.gnu.org/packages/ivy-0.13.1.tar";
+          sha256 = "0n0ixhdykbdpis4krkqq6zncbby28p34742q96n0l91w0p19slcx";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1726,10 +1771,10 @@
       elpaBuild {
         pname = "jsonrpc";
         ename = "jsonrpc";
-        version = "1.0.11";
+        version = "1.0.12";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/jsonrpc-1.0.11.el";
-          sha256 = "04cy1mqd6y8k5lcpg076szjk9av9345mmsnzzh6vgbcw3dcgbr23";
+          url = "https://elpa.gnu.org/packages/jsonrpc-1.0.12.el";
+          sha256 = "0cqp05awikbrn88ifld3vwnv6cxgmr83wlnsvxw8bqb96djz70ad";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1782,6 +1827,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    leaf = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "leaf";
+        ename = "leaf";
+        version = "4.2.5";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/leaf-4.2.5.tar";
+          sha256 = "0y78mp4c2gcwp7dc87wlx3r4hfmap14vvx8gkjc9nkf99qavpnkw";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/leaf.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     let-alist = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "let-alist";
@@ -2026,10 +2086,10 @@
       elpaBuild {
         pname = "mmm-mode";
         ename = "mmm-mode";
-        version = "0.5.7";
+        version = "0.5.8";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/mmm-mode-0.5.7.tar";
-          sha256 = "0c4azrkgagyfm9znh7hmw93gkvddpsxlr0dwjp96winymih7mahf";
+          url = "https://elpa.gnu.org/packages/mmm-mode-0.5.8.tar";
+          sha256 = "05ckf4zapdpvnd3sqpw6kxaa567zh536a36m9qzx3sqyjbyn5fb4";
         };
         packageRequires = [ cl-lib ];
         meta = {
@@ -2041,10 +2101,10 @@
       elpaBuild {
         pname = "modus-operandi-theme";
         ename = "modus-operandi-theme";
-        version = "0.8.1";
+        version = "0.11.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/modus-operandi-theme-0.8.1.el";
-          sha256 = "0i8s6blkhx53m1jk1bblqs7fwlbn57xkxxhsp9famcj5m0xyfimb";
+          url = "https://elpa.gnu.org/packages/modus-operandi-theme-0.11.0.el";
+          sha256 = "11sq105vpp8rmyayfb7h8gz099kfdr7nb8n4pg81iby4fllj1kgd";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2056,10 +2116,10 @@
       elpaBuild {
         pname = "modus-vivendi-theme";
         ename = "modus-vivendi-theme";
-        version = "0.8.1";
+        version = "0.11.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/modus-vivendi-theme-0.8.1.el";
-          sha256 = "121nlr5w58j4q47rh9xjjf9wzb97yl2m1n2l6g58ck4vnarwndl1";
+          url = "https://elpa.gnu.org/packages/modus-vivendi-theme-0.11.0.el";
+          sha256 = "14ky9cxg9cpvhgg24ra0xla2dapqjlf948470q7v0m402x1r2iif";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2485,10 +2545,10 @@
       elpaBuild {
         pname = "phps-mode";
         ename = "phps-mode";
-        version = "0.3.48";
+        version = "0.3.52";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/phps-mode-0.3.48.tar";
-          sha256 = "1mnbrsgh6lx7kgkfsfq5zk78a97iwh8mxgxzyf1zq4jj6ziwd6bv";
+          url = "https://elpa.gnu.org/packages/phps-mode-0.3.52.tar";
+          sha256 = "11783i4raw6z326bqin9g37ig2szbqsma1r0fsdckyn2q6w7nn92";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2530,10 +2590,10 @@
       elpaBuild {
         pname = "posframe";
         ename = "posframe";
-        version = "0.7.0";
+        version = "0.8.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/posframe-0.7.0.el";
-          sha256 = "1kwl83jb5k1hnx0s2qw972v0gjqbbvk4sdcdb1qbdxsyw36sylc9";
+          url = "https://elpa.gnu.org/packages/posframe-0.8.0.el";
+          sha256 = "1vzaiiw2pxa0zrc2bkaxljpr4035xrh3d8z3l5f0jvp72cnq49kp";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2541,16 +2601,16 @@
           license = lib.licenses.free;
         };
       }) {};
-    project = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+    project = callPackage ({ elpaBuild, emacs, fetchurl, lib, xref }:
       elpaBuild {
         pname = "project";
         ename = "project";
-        version = "0.1.2";
+        version = "0.5.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/project-0.1.2.el";
-          sha256 = "0713hwim1chf6lxpg1rb234aa1gj92c153fjlc4jddp6dzzgn50d";
+          url = "https://elpa.gnu.org/packages/project-0.5.1.el";
+          sha256 = "1i15hlrfipsfrdmgh6xzkr6aszgvik3y8j9363qkj654dl04pmz4";
         };
-        packageRequires = [ emacs ];
+        packageRequires = [ emacs xref ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/project.html";
           license = lib.licenses.free;
@@ -2571,6 +2631,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    pspp-mode = callPackage ({ elpaBuild, fetchurl, lib }:
+      elpaBuild {
+        pname = "pspp-mode";
+        ename = "pspp-mode";
+        version = "1.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/pspp-mode-1.1.el";
+          sha256 = "1qnwj7r367qs0ykw71c6s96ximgg2wb3hxg5fwsl9q2vfhbh35ca";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/pspp-mode.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     python = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "python";
@@ -2620,10 +2695,10 @@
       elpaBuild {
         pname = "rainbow-mode";
         ename = "rainbow-mode";
-        version = "1.0.4";
+        version = "1.0.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/rainbow-mode-1.0.4.el";
-          sha256 = "0rp76gix1ph1wrmdax6y2m3i9y1dmgv7ikjz8xsl5lizkygsy9cg";
+          url = "https://elpa.gnu.org/packages/rainbow-mode-1.0.5.el";
+          sha256 = "159fps843k5pap9k04a7ll1k3gw6d9c6w08lq4bbc3lqg78aa2l9";
         };
         packageRequires = [];
         meta = {
@@ -2840,10 +2915,10 @@
       elpaBuild {
         pname = "relint";
         ename = "relint";
-        version = "1.17";
+        version = "1.18";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/relint-1.17.tar";
-          sha256 = "1nv13dqdhf72c1jgk1ml4k6jqb8wsyphcx2vhsyhig5198lg4kd7";
+          url = "https://elpa.gnu.org/packages/relint-1.18.tar";
+          sha256 = "0zfislsksrkn6qs0w26yaff5xr7xqy2x235dcdpz8s2v35b6dhci";
         };
         packageRequires = [ emacs xr ];
         meta = {
@@ -2881,6 +2956,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    rt-liberation = callPackage ({ elpaBuild, fetchurl, lib }:
+      elpaBuild {
+        pname = "rt-liberation";
+        ename = "rt-liberation";
+        version = "1.31";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/rt-liberation-1.31.tar";
+          sha256 = "0qqqqwdkb0h8137rqsr08179skl1475cg4hl7a987rmccys0j83c";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/rt-liberation.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     rudel = callPackage ({ cl-generic
                          , cl-lib ? null
                          , cl-print
@@ -3067,6 +3157,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    so-long = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "so-long";
+        ename = "so-long";
+        version = "1.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/so-long-1.0.el";
+          sha256 = "00z9gnxz32rakd0k7lqaj050fwmqzq5vr9d6rb7ji3fn01rjp7kj";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/so-long.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     soap-client = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
       elpaBuild {
         pname = "soap-client";
@@ -3191,10 +3296,10 @@
       elpaBuild {
         pname = "svg-clock";
         ename = "svg-clock";
-        version = "1.1";
+        version = "1.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/svg-clock-1.1.el";
-          sha256 = "12wf4dd3vgbq1v3363cil4wr2skx60xy546jc69ycyk0jq7plcq3";
+          url = "https://elpa.gnu.org/packages/svg-clock-1.2.el";
+          sha256 = "15pmj07wnlcpv78av9qpnbfwdjlkf237vib8smpa7nvyikdfszfr";
         };
         packageRequires = [ emacs svg ];
         meta = {
@@ -3202,6 +3307,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    swiper = callPackage ({ elpaBuild, emacs, fetchurl, ivy, lib }:
+      elpaBuild {
+        pname = "swiper";
+        ename = "swiper";
+        version = "0.13.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/swiper-0.13.1.el";
+          sha256 = "06ild7kck0x5ry8bf0al24nh04q01q3jhj6jjl4xz8n2s6jnn70y";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/swiper.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     system-packages = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "system-packages";
@@ -3300,10 +3420,10 @@
       elpaBuild {
         pname = "tramp";
         ename = "tramp";
-        version = "2.4.3.4";
+        version = "2.4.4.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/tramp-2.4.3.4.tar";
-          sha256 = "01il42xb6s38qnb7bhn9d7gscc5p5y4da5a4dp1i1cyi823sfp8f";
+          url = "https://elpa.gnu.org/packages/tramp-2.4.4.1.tar";
+          sha256 = "0jayd75yscaqvg6y0m6g2mgbjswyj5gqdij2az9g0j18vm5vbqy3";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3491,10 +3611,10 @@
       elpaBuild {
         pname = "verilog-mode";
         ename = "verilog-mode";
-        version = "2020.2.23.232634261";
+        version = "2020.6.27.14326051";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/verilog-mode-2020.2.23.232634261.el";
-          sha256 = "07r2nzyfwmpv1299q1v768ai14rdgq7y4bvz5xsnp4qj3g06p0f6";
+          url = "https://elpa.gnu.org/packages/verilog-mode-2020.6.27.14326051.el";
+          sha256 = "194gn8cj01jb9xcl0qq3gq6mzxfdyn459ysb35fnib7pcnafm188";
         };
         packageRequires = [];
         meta = {
@@ -3704,10 +3824,10 @@
       elpaBuild {
         pname = "wisi";
         ename = "wisi";
-        version = "3.1.1";
+        version = "3.1.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/wisi-3.1.1.tar";
-          sha256 = "0abm9xfyk2izi0w9172sfhdq83abcxgbngngbh2gby54df0ycn0q";
+          url = "https://elpa.gnu.org/packages/wisi-3.1.3.tar";
+          sha256 = "0cbjcm35lp164wd06mn3clikga07qxfsfnkvadswsapsd0cn2b4k";
         };
         packageRequires = [ emacs seq ];
         meta = {
@@ -3724,10 +3844,10 @@
       elpaBuild {
         pname = "wisitoken-grammar-mode";
         ename = "wisitoken-grammar-mode";
-        version = "1.1.0";
+        version = "1.2.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/wisitoken-grammar-mode-1.1.0.tar";
-          sha256 = "123z9j76cm0p22d9n4kqvn2477fdkgp5jarw564nd71cxrrb52ms";
+          url = "https://elpa.gnu.org/packages/wisitoken-grammar-mode-1.2.0.tar";
+          sha256 = "0isxmpwys148djjymszdm5nisqjp9xff8kad45l4cpb3c717vsjw";
         };
         packageRequires = [ emacs mmm-mode wisi ];
         meta = {
@@ -3810,16 +3930,16 @@
           license = lib.licenses.free;
         };
       }) {};
-    xref = callPackage ({ elpaBuild, emacs, fetchurl, lib, project }:
+    xref = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "xref";
         ename = "xref";
-        version = "1.0.1";
+        version = "1.0.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/xref-1.0.1.el";
-          sha256 = "17wlwilm2d1gvin8mkkqnpw2skjx0klxfs1pqpy8rrzdfpsb55li";
+          url = "https://elpa.gnu.org/packages/xref-1.0.2.el";
+          sha256 = "156rfwdihb3vz31iszbmby16spqswyf69nhl3r2cp6jzkgwzc1d8";
         };
-        packageRequires = [ emacs project ];
+        packageRequires = [ emacs ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/xref.html";
           license = lib.licenses.free;
diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix
index f228d34a654..c48e342977e 100644
--- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix
+++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix
@@ -531,6 +531,12 @@ let
               (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";
diff --git a/pkgs/applications/editors/emacs-modes/org-generated.nix b/pkgs/applications/editors/emacs-modes/org-generated.nix
index 4beb5750166..b0eccbd8881 100644
--- a/pkgs/applications/editors/emacs-modes/org-generated.nix
+++ b/pkgs/applications/editors/emacs-modes/org-generated.nix
@@ -4,10 +4,10 @@
       elpaBuild {
         pname = "org";
         ename = "org";
-        version = "20200511";
+        version = "20200817";
         src = fetchurl {
-          url = "https://orgmode.org/elpa/org-20200511.tar";
-          sha256 = "147k6nmq00milw5knyhw01z481rcdl6s30vk4fkjidw508nkmg9c";
+          url = "https://orgmode.org/elpa/org-20200817.tar";
+          sha256 = "159hch9zls3apxq11c5rjpmci1avyl7q3cgsrqxwgnzy8c61104d";
         };
         packageRequires = [];
         meta = {
@@ -19,10 +19,10 @@
       elpaBuild {
         pname = "org-plus-contrib";
         ename = "org-plus-contrib";
-        version = "20200511";
+        version = "20200817";
         src = fetchurl {
-          url = "https://orgmode.org/elpa/org-plus-contrib-20200511.tar";
-          sha256 = "1hsdp7n985404zdqj6gyfw1bxxbs0p3bf4fyizvgji21zxwnf63f";
+          url = "https://orgmode.org/elpa/org-plus-contrib-20200817.tar";
+          sha256 = "0n3fhcxjsk2w78p7djna4nlppa7ypjxzpq3r5dmzc8jpl71mipba";
         };
         packageRequires = [];
         meta = {
diff --git a/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json b/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
index a10df779103..98346d4d82a 100644
--- a/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
+++ b/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
@@ -31,20 +31,20 @@
   "url": "https://git.sr.ht/~zge/nullpointer-emacs",
   "unstable": {
    "version": [
-    20200411,
-    1227
+    20200521,
+    1352
    ],
-   "commit": "59136313132c08ab5fddaa875f6abeb22916a04b",
-   "sha256": "0acdh1r28v6xcsh39r13xppzqb6m00jgxgsxl17779isw98w9a3y"
+   "commit": "16581d94a1e32677091f3721506a48177cc49e68",
+   "sha256": "08gdycsi5mjz7ak8x71i3zs7xnr23b384bdlf1bspa325k8v2klq"
   },
   "stable": {
    "version": [
     0,
     3,
-    0
+    1
    ],
-   "commit": "1d29192a3c28ba088d93410bfcdd4bee0abb6610",
-   "sha256": "02kmfzkrl35y599w5yal5d7rjb3xi02zhvb8q0m3iw4mbm16sw28"
+   "commit": "16581d94a1e32677091f3721506a48177cc49e68",
+   "sha256": "08gdycsi5mjz7ak8x71i3zs7xnr23b384bdlf1bspa325k8v2klq"
   }
  },
  {
@@ -322,14 +322,14 @@
   "repo": "zk-phi/ac-c-headers",
   "unstable": {
    "version": [
-    20151021,
-    834
+    20200816,
+    1007
    ],
    "deps": [
     "auto-complete"
    ],
-   "commit": "de13a1d35b311e6601556d8ef163de102057deea",
-   "sha256": "1z6rj15p5gjv0jwnnck8789n9csf1pwxfvsz37graihgfy2khj0y"
+   "commit": "67e1e86a48c9bed57bc7ce5ce2553ad203f5752e",
+   "sha256": "1yk0a4p1pi7jwv48rvzn4i2733kg5ffp0q5vgcq22f98pmzyk77f"
   }
  },
  {
@@ -966,16 +966,16 @@
   "stable": {
    "version": [
     2,
-    2,
-    2
+    3,
+    0
    ],
    "deps": [
     "ac-php-core",
     "auto-complete",
     "yasnippet"
    ],
-   "commit": "4490d168778a61a4ee8623defe760164cd9745b8",
-   "sha256": "1mkxayqrvz246gxr9wjabsn015hnjq96ys71syb6r4ykjn892a6m"
+   "commit": "8db6d911f2e19bbef5fe915e42c4e12f283bfd41",
+   "sha256": "0yzad3bc48xdmkgcsffdj9zx9j853w1k2p2v586bcfl2vmvvq3zj"
   }
  },
  {
@@ -1003,8 +1003,8 @@
   "stable": {
    "version": [
     2,
-    2,
-    2
+    3,
+    0
    ],
    "deps": [
     "dash",
@@ -1014,8 +1014,8 @@
     "s",
     "xcscope"
    ],
-   "commit": "4490d168778a61a4ee8623defe760164cd9745b8",
-   "sha256": "1mkxayqrvz246gxr9wjabsn015hnjq96ys71syb6r4ykjn892a6m"
+   "commit": "8db6d911f2e19bbef5fe915e42c4e12f283bfd41",
+   "sha256": "0yzad3bc48xdmkgcsffdj9zx9j853w1k2p2v586bcfl2vmvvq3zj"
   }
  },
  {
@@ -1064,8 +1064,8 @@
     "auto-complete",
     "rtags"
    ],
-   "commit": "ed229d2e4070cc07ba76e537e8f5f93835ff0710",
-   "sha256": "1jf1mg2pib2rsrn280j2ywmnqgkr5jwmiaqf252jsb7ndq7p5gcr"
+   "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+   "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
   },
   "stable": {
    "version": [
@@ -1360,14 +1360,14 @@
   "repo": "abo-abo/ace-link",
   "unstable": {
    "version": [
-    20200515,
-    1854
+    20200518,
+    957
    ],
    "deps": [
     "avy"
    ],
-   "commit": "b610dcb99510328d07ab1e1ea67b2f87ecb1cc5b",
-   "sha256": "0r7cyvrkbqq0dsm5963wn2i1wqgq0md5r8b2afjbr3m9b6v5lnq4"
+   "commit": "298f02f7dd117f9ec01f6aa2a2ddfecae0efb7f4",
+   "sha256": "1i243wfwrbxn00sh96248lpqfb7cvxqqwlc78nf8kim4ymylpp41"
   },
   "stable": {
    "version": [
@@ -1449,8 +1449,8 @@
    "deps": [
     "avy-menu"
    ],
-   "commit": "02b22bdb40a5828dbd0a2af290034adb761743f0",
-   "sha256": "12b6s99d0wzs4q827kn5zr56vrp3x1kf2pxp4cr8z5hikylfswcs"
+   "commit": "390f0711d2a42675980d8b531fd5dc396b85f24b",
+   "sha256": "00va4glq9iibrfrnhinv8a7f5q0z7xvfyxnjf1rl4z770drz9j4n"
   },
   "stable": {
    "version": [
@@ -1473,14 +1473,14 @@
   "repo": "abo-abo/ace-window",
   "unstable": {
    "version": [
-    20200311,
-    1025
+    20200606,
+    1259
    ],
    "deps": [
     "avy"
    ],
-   "commit": "7003c88cd9cad58dc35c7cd13ebc61c355fb5be7",
-   "sha256": "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"
+   "commit": "c7cb315c14e36fded5ac4096e158497ae974bec9",
+   "sha256": "06zkb5v6h0gwrqx7xiz2vlzf13kzf3z79xc5jhv2j73rqcajjy9v"
   },
   "stable": {
    "version": [
@@ -1532,6 +1532,30 @@
   }
  },
  {
+  "ename": "acme-theme",
+  "commit": "0bf14d91ff89556671b175d5f7e71066f27cb73d",
+  "sha256": "0zsrqvhly3si2qkvc4rhki89r2z185l684wf7j9kx32fgaaqanac",
+  "fetcher": "github",
+  "repo": "ianpan870102/acme-emacs-theme",
+  "unstable": {
+   "version": [
+    20200724,
+    1833
+   ],
+   "commit": "e416ec678be72eb1aed3de3d88a8a9e3ee7315ca",
+   "sha256": "0y98il3gsnhm586hr1qdmif4r6v1987fzl82wgx75g8kiy5shbrj"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "commit": "680b2022445861e3e9030a96d9fe587188d778c8",
+   "sha256": "1mww6x8gwhkrqcylxxm25xhcvam52nhj7q3f3bvaxhyfdc7jw9yq"
+  }
+ },
+ {
   "ename": "actionscript-mode",
   "commit": "2c11e74f2156f109b713380cebf83022d7159d4a",
   "sha256": "1dkiay9jmizvslji5kzab4dxm1dq0jm8ps7sjq6710g7a5aqdvwq",
@@ -1847,11 +1871,11 @@
   "repo": "vietor/agtags",
   "unstable": {
    "version": [
-    20191112,
-    142
+    20200730,
+    116
    ],
-   "commit": "8813eb055dfd3faf1021c7d02fed0dabd8e518c1",
-   "sha256": "0xj394fiqsyh32g21mcp64srs8dlf0ixaildyla1gm27v8cgiakb"
+   "commit": "d80c6f61dee74040c07b7010d48cab1df13a3abf",
+   "sha256": "05jkkh7m126j24ayh85bk10s4z3lsy1s6n217qb7hlgfl8y5fqdj"
   }
  },
  {
@@ -1865,8 +1889,8 @@
     20191212,
     652
    ],
-   "commit": "938c78327aad94d5f8e8d86ffd9808a687f3e953",
-   "sha256": "1zzhy5ajr6ivmj4jbbmaznxfqgxl4xy21s2r4wip668w8kw02h4m"
+   "commit": "3ca848bcf1fc4c18b4a5329d1439c5effb7dcb97",
+   "sha256": "1lgxwhq5359qrn3zv5m9sssz93vbqa6bp49z526pck1bkf80s3vx"
   }
  },
  {
@@ -1940,11 +1964,11 @@
   "repo": "skeeto/emacs-aio",
   "unstable": {
    "version": [
-    20200410,
-    1409
+    20200610,
+    1904
    ],
-   "commit": "9367005c44c42c46c8ca1e7d3f780731c7d123dd",
-   "sha256": "063avjlizpjc53myjzvkqsp64gkxwcc7w7shjdf1xgjb9b58pbc1"
+   "commit": "da93523e235529fa97d6f251319d9e1d6fc24a41",
+   "sha256": "0hnxbz5pxlrgxhjr5gnhf06qwg67g5pd87xkp0smmagsh18pnf76"
   },
   "stable": {
    "version": [
@@ -2006,21 +2030,21 @@
  },
  {
   "ename": "alan-mode",
-  "commit": "6e52314db81dad3517ab400099b032260c3e3e6f",
-  "sha256": "1528rh26kr9zj43djbrfb7vmq78spfay3k3ps5apc580ipx1a4hg",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "1i3vhqdrp8zdmkzgyri5z7vh1j0mykcp7mkjxjc7293ncsj310d8",
   "fetcher": "github",
-  "repo": "M-industries/AlanForEmacs",
+  "repo": "alan-platform/AlanForEmacs",
   "unstable": {
    "version": [
-    20190407,
-    555
+    20200723,
+    1405
    ],
    "deps": [
     "flycheck",
     "s"
    ],
-   "commit": "a5a705b64230bb14ad1d19bcc0613e3261e8cbe5",
-   "sha256": "1jhsrb26fpm9yykp974rx77ika76zq3gq7pcjgixw4d4ga737d95"
+   "commit": "fc1fc0312b3e7f868f95b917a66719afb96f0c9a",
+   "sha256": "1cadc2v8mdlz5di7cwhc9qqhrkwgl3gxyw5v4il895r44rcdifgq"
   },
   "stable": {
    "version": [
@@ -2133,11 +2157,11 @@
   "repo": "alezost/alect-themes",
   "unstable": {
    "version": [
-    20190506,
-    1440
+    20200801,
+    2041
    ],
-   "commit": "da7305075d292cc1909bf26dc5634bc3cc8d2603",
-   "sha256": "06nsfmydlcdqi4fp3nn6yz4xys38f3q196pf3bmmdqgg7pbcm259"
+   "commit": "684249b83d711145865ec31650e66ed9aa6e691b",
+   "sha256": "1cyd327shiwgdxf7bx542pfw6d6ilsq51n65lz3bfs8fzm5mib8v"
   },
   "stable": {
    "version": [
@@ -2240,14 +2264,14 @@
   "repo": "domtronn/all-the-icons.el",
   "unstable": {
    "version": [
-    20200508,
-    1157
+    20200730,
+    1545
    ],
    "deps": [
     "memoize"
    ],
-   "commit": "d6cb6d4a779eaa3570d8e451fd4d38b2b4554860",
-   "sha256": "0pnzsnklqjlks6ipaj242vlrk5skmwflpn1sdd00xw9gmb5mxb3m"
+   "commit": "8c0228053dd6693d926970d89270094be52b0f75",
+   "sha256": "08p2x6da4dp6imw6dg501kw68m4rhjfdbc6yn5ld29mazvv923zl"
   },
   "stable": {
    "version": [
@@ -2307,14 +2331,14 @@
   "repo": "seagle0128/all-the-icons-ibuffer",
   "unstable": {
    "version": [
-    20200319,
-    1625
+    20200612,
+    1642
    ],
    "deps": [
     "all-the-icons"
    ],
-   "commit": "3ee9e32f480329e94e45f86538343b0ddc7ddd4f",
-   "sha256": "1cs9027q26nfm5k3182mbmmhj8s8y2nv47gsyamwpjqdma0sbl73"
+   "commit": "8bb1a893e826e39ad4d7abc0add5dd6c33b18f29",
+   "sha256": "02sbddvjys6bf8pcbg3pv5fc1f8b48vmx0bnfyqw1x04dyb8cdm7"
   },
   "stable": {
    "version": [
@@ -2369,28 +2393,28 @@
   "repo": "seagle0128/all-the-icons-ivy-rich",
   "unstable": {
    "version": [
-    20200324,
-    550
+    20200811,
+    838
    ],
    "deps": [
     "all-the-icons",
     "ivy-rich"
    ],
-   "commit": "a9a4389c1930a5a071857b4d450eaecb21f4d6b9",
-   "sha256": "133vl3awl3qxxd2ka8zdr33v6s8hrjpsv4bv2db5j8jz35m0hx9d"
+   "commit": "e918b23d55313a7464d8cb5d45eb917249638e32",
+   "sha256": "1wz3dgn8cggdkijzm7qf13g3s9gmz6v895bjck7sdhmr5mbr28a4"
   },
   "stable": {
    "version": [
     1,
-    2,
-    0
+    4,
+    1
    ],
    "deps": [
     "all-the-icons",
     "ivy-rich"
    ],
-   "commit": "3e02da9a166df7ebea25aae476efd7b8d74d63e0",
-   "sha256": "0p91yvpqy7xjkz2mcpq6c8kjfxqfw9byxprqg2qqnzg421c5yv6x"
+   "commit": "e918b23d55313a7464d8cb5d45eb917249638e32",
+   "sha256": "1wz3dgn8cggdkijzm7qf13g3s9gmz6v895bjck7sdhmr5mbr28a4"
   }
  },
  {
@@ -2440,20 +2464,20 @@
   "repo": "jcs-elpa/alt-codes",
   "unstable": {
    "version": [
-    20190701,
-    1246
+    20200723,
+    1037
    ],
-   "commit": "ded8cbff05f4f2fc4d023c5ee08ebe8b1bdb9ca9",
-   "sha256": "1v8sir3c0akv5sb8yg01zh0n6qqd4hp95sahbx01z1200g0phcaw"
+   "commit": "b36c2b2bccc628da1579016381d5c3195c9e12b2",
+   "sha256": "19nqpg91in65gj59zndhncx6c1005k0wh05rprv1z6465j5gd40g"
   },
   "stable": {
    "version": [
     0,
     0,
-    4
+    5
    ],
-   "commit": "7dcd9cdcc41cfb991801ea1e2f5b3c925a5309ee",
-   "sha256": "19xg4ng3p49zvn1y7vagrfiiwvc2fynwibr6cmj7qam1y64lw90c"
+   "commit": "b36c2b2bccc628da1579016381d5c3195c9e12b2",
+   "sha256": "19nqpg91in65gj59zndhncx6c1005k0wh05rprv1z6465j5gd40g"
   }
  },
  {
@@ -2593,14 +2617,14 @@
   "repo": "stardiviner/amread-mode",
   "unstable": {
    "version": [
-    20200404,
-    1143
+    20200623,
+    1544
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "a595828fcc2257f765139b576beb6c33b4fc3bce",
-   "sha256": "1mwlj48hjp59mcafia612qqzmqxh30k0jshzrnzsnwlfbbsdxjwj"
+   "commit": "7b1ed6c8aea409e2dce4a3b59f304d716a8efab7",
+   "sha256": "12hcgkznf1l4db8y0q33v735b5iin8iycc5s0di46ichxcjr0b7x"
   }
  },
  {
@@ -2611,14 +2635,14 @@
   "repo": "DarwinAwardWinner/amx",
   "unstable": {
    "version": [
-    20200417,
-    1513
+    20200701,
+    2108
    ],
    "deps": [
     "s"
    ],
-   "commit": "7fb7b874291e0cdeb1f0acb18564a686ec86788d",
-   "sha256": "0yc2b814zcl3c6lgamrr63cl4r3ayzlyfqql8875fzflc541nnnc"
+   "commit": "ccfc92c600df681df5e8b5fecec328c462ceb71e",
+   "sha256": "0pdgicknrph4lfyjxwdqh7xwcfsnqnrx1l4xpd972ivy1n8s7783"
   },
   "stable": {
    "version": [
@@ -2640,8 +2664,8 @@
   "repo": "pythonic-emacs/anaconda-mode",
   "unstable": {
    "version": [
-    20200129,
-    1718
+    20200806,
+    436
    ],
    "deps": [
     "dash",
@@ -2649,8 +2673,8 @@
     "pythonic",
     "s"
    ],
-   "commit": "10299bd9ff38c4f0da1d892905d02ef828e7fdce",
-   "sha256": "0s5pxfjcsmyrqc5pa2lqx6mxzwy3g8mc3iaxbj313sn1nly26vjw"
+   "commit": "73266a48fa964d44268c3f3478597e553b9843f1",
+   "sha256": "0b4zzkr73hmjg92vr348294xymrynw4j0x89jzklh2plizp0alcr"
   },
   "stable": {
    "version": [
@@ -2730,11 +2754,11 @@
   "repo": "fernando-jascovich/android-env.el",
   "unstable": {
    "version": [
-    20190720,
-    1927
+    20200722,
+    1403
    ],
-   "commit": "dcb0bff0e77257266201cf1ccf17e7ca94e67fb1",
-   "sha256": "132fshzb4f0miqn3ijvwfdigldrvx7dsx06dczr9z9v9xw61ar8j"
+   "commit": "5c6a6d9449f300eec4f374a5410edc1cbab02e40",
+   "sha256": "182b3fd85q3x5ynnfnjb01phhq1glf1wxj5rz8zx43ddnzz9ahmn"
   }
  },
  {
@@ -2778,21 +2802,17 @@
  },
  {
   "ename": "angular-mode",
-  "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
-  "sha256": "0pq4lyhppzi806n1k07n0gdhr8z8z71ri12my0pl81rl5j2z69l2",
+  "commit": "54d86ad963ca7357ccb62a2e4aa124ed44bc0ebf",
+  "sha256": "04c07flrfnfr6jsqm76xdl5gw79rh18ys4cmqjmgv55rrs0w4rws",
   "fetcher": "github",
-  "repo": "rudolfolah/angularjs-mode",
+  "repo": "emacsattic/angular-mode",
   "unstable": {
    "version": [
     20200510,
     1729
    ],
    "commit": "b24020768217f16b1b86aa236e9729b3d40e17b3",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "error: unable to download 'https://github.com/rudolfolah/angularjs-mode/archive/b24020768217f16b1b86aa236e9729b3d40e17b3.tar.gz': HTTP error 404\n"
-   ]
+   "sha256": "04kg2x0lif91knmkkh05mj42xw3dkzsnysjda6ian95v57wfg377"
   },
   "stable": {
    "version": [
@@ -2877,8 +2897,8 @@
   "repo": "davidshepherd7/anki-mode",
   "unstable": {
    "version": [
-    20200413,
-    1019
+    20200703,
+    736
    ],
    "deps": [
     "dash",
@@ -2886,8 +2906,8 @@
     "request",
     "s"
    ],
-   "commit": "fcbcfa7cd7fb5c282e1138322e61242942729e3d",
-   "sha256": "06ab3zdaz5wf30zbci7cav3dvvnknnbzq18zfzzfi4xjcsi0zkvr"
+   "commit": "3918e4f7b2f14e485cc3acc927abe6563695963f",
+   "sha256": "16fx2w1nz6jxsrc9naykah3valab46xnwsmjz5lm9zl38g4ypyna"
   },
   "stable": {
    "version": [
@@ -2962,20 +2982,20 @@
   "repo": "bastibe/annotate.el",
   "unstable": {
    "version": [
-    20200330,
-    1640
+    20200812,
+    1439
    ],
-   "commit": "f0a71bb14806c79f09cb6aacb5ef98a852ef66e2",
-   "sha256": "1v2rbrhqg4kipk4l901xzfdc4wm5fkvvx4j3l8mfp7nvc2x8gcbw"
+   "commit": "2bf7a7c1acb6768a590954c9bfef5f72ae8cc452",
+   "sha256": "05zwfflsx69904jxlayalh3n3n9msl92zw2rk5kk17p9psjpv9yw"
   },
   "stable": {
    "version": [
     0,
-    4,
-    7
+    7,
+    0
    ],
-   "commit": "e6af7f8ef7d241fdc9f866d57dce24beb4bb6b87",
-   "sha256": "19a419rnqqsmvrcl2vwy3gl7mvbfg669vyin2h2xpm56rxsinvy1"
+   "commit": "99c45f553e7caef693506498d11e4b664b6f2946",
+   "sha256": "154655p54xxsbr06lbbdpzzx4hif6542a4cf767qnichsz9cj75j"
   }
  },
  {
@@ -3028,15 +3048,16 @@
   "repo": "rejeep/ansi.el",
   "unstable": {
    "version": [
-    20150703,
-    826
+    20200611,
+    944
    ],
    "deps": [
+    "cl-lib",
     "dash",
     "s"
    ],
-   "commit": "12b4c5d91b3da1902838f421e5af6d40e2cd57dd",
-   "sha256": "19k71dj83kvc8mks6zhl45vsrsb61via53dqxjv9bny1ybh2av85"
+   "commit": "a41d5cc719297515d85bb5256980cd1204a71b88",
+   "sha256": "051v8dmji90chwbsyqsqry7h35mksal2j6rgw1kpmjsni86d79y1"
   },
   "stable": {
    "version": [
@@ -3060,28 +3081,28 @@
   "repo": "k1LoW/emacs-ansible",
   "unstable": {
    "version": [
-    20191003,
-    1430
+    20200704,
+    1354
    ],
    "deps": [
     "f",
     "s"
    ],
-   "commit": "c6532e52161a381ed3dddfeaa7c92ae636d3f052",
-   "sha256": "16i0r019lj9fdkxcga2jb8ha0r2lf1mz7jywg44hnj7r3lzdcmwp"
+   "commit": "b5ef59406604bc5027f4d816d90e633feef0149c",
+   "sha256": "1v56mz39vlszprd6m6virbv87qvsnb38n0h0yhqzcy85c2l0jzx3"
   },
   "stable": {
    "version": [
     0,
     3,
-    0
+    1
    ],
    "deps": [
     "f",
     "s"
    ],
-   "commit": "c6532e52161a381ed3dddfeaa7c92ae636d3f052",
-   "sha256": "16i0r019lj9fdkxcga2jb8ha0r2lf1mz7jywg44hnj7r3lzdcmwp"
+   "commit": "b5ef59406604bc5027f4d816d90e633feef0149c",
+   "sha256": "1v56mz39vlszprd6m6virbv87qvsnb38n0h0yhqzcy85c2l0jzx3"
   }
  },
  {
@@ -3577,6 +3598,21 @@
   }
  },
  {
+  "ename": "arduino-cli-mode",
+  "commit": "613b2f82b1fd035e725e574c750da408e8386cde",
+  "sha256": "1h49bfn4gn1h2xdb6axhbg6wm74h4fmiylcm55lwg9ri57rcdqkl",
+  "fetcher": "github",
+  "repo": "motform/arduino-cli-mode",
+  "unstable": {
+   "version": [
+    20200812,
+    935
+   ],
+   "commit": "80c5aa6a29a192f9a9d3ba3d7fb7446b1281051a",
+   "sha256": "1bj4vlvryk2k3920zc9pg9jca9385hji76nrx7avhd6jsjjm79mf"
+  }
+ },
+ {
   "ename": "arduino-mode",
   "commit": "2db785f52c2facc55459e945ccb4d4b088506747",
   "sha256": "1amqah0sx95866ikdlc7h7n9hmrwaqizc0rj0gliv15kjjggv55v",
@@ -3584,15 +3620,15 @@
   "repo": "stardiviner/arduino-mode",
   "unstable": {
    "version": [
-    20180509,
-    36
+    20200819,
+    103
    ],
    "deps": [
     "cl-lib",
     "spinner"
    ],
-   "commit": "23ae47c9f28f559e70b790b471f20310e163a39b",
-   "sha256": "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"
+   "commit": "16955f579c5caca223c0ba825075e3573dcf2288",
+   "sha256": "1vf3ahvs81i0fa3rbwz3i67ahf3x169pv879p5igxk93xf6whqnp"
   }
  },
  {
@@ -3826,11 +3862,11 @@
   "repo": "jwiegley/emacs-async",
   "unstable": {
    "version": [
-    20200113,
-    1745
+    20200809,
+    501
    ],
-   "commit": "86aef2c38e7d35e8509b7feeee3e989d825eba91",
-   "sha256": "1slxlpxjggyg5q8xppn9csh54j93b2hc4v8lcn85ymw2hp3rsib9"
+   "commit": "36a10151e70e956e2f766ed9e65f4a9cfc8479b2",
+   "sha256": "08glbksm13kgxvy17x0kg01x9cgnkz01yqqnlwzfaan0zbf6brdl"
   },
   "stable": {
    "version": [
@@ -3906,6 +3942,30 @@
   }
  },
  {
+  "ename": "atl-markup",
+  "commit": "42025212ccfe998023f7eb563588be76282d53de",
+  "sha256": "1123lbnc6hlycm6bg5f7292z7cdnp2iv0wb8mg0n0ydma524s6bm",
+  "fetcher": "github",
+  "repo": "jcs-elpa/atl-markup",
+  "unstable": {
+   "version": [
+    20200810,
+    845
+   ],
+   "commit": "79adac0149bb6083ad3a327c6bbdf56537282ee9",
+   "sha256": "1kd9fk1f3aaw0ikkbf9n6w5b2sy7v0xzsch688h8ac9rp6s2yws8"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    5
+   ],
+   "commit": "876d8a31d5e233d5234231f1428f8edb013e30eb",
+   "sha256": "1czqi0l1jzhlb47n0grlrnx421wi9mdqb41abcfd33k4mjavv0iz"
+  }
+ },
+ {
   "ename": "atom-dark-theme",
   "commit": "d1f565871559d6ea4ca4bb2fbaebce58f2f383eb",
   "sha256": "1ci61blm7wc83wm2iyax017ai4jljyag5j1mvw86rimmmjzr0v8f",
@@ -4019,14 +4079,14 @@
   "repo": "tsuu32/auctex-cluttex",
   "unstable": {
    "version": [
-    20200311,
-    1453
+    20200531,
+    402
    ],
    "deps": [
     "auctex"
    ],
-   "commit": "76fba4a1a918ce8a276fa0e22f026ad9a45a47dc",
-   "sha256": "1rd92s2c08z3l2r2wxcs46bbri4rj0d0aym36v89pwq0fcqqx2ry"
+   "commit": "7e36dcb88c0021e48e7a095257e63e2913f75789",
+   "sha256": "1wfsd7kcjm8inbhacsilngjqcwfn5alr02m4bcpv5w8gjyc0qwgx"
   },
   "stable": {
    "version": [
@@ -4192,11 +4252,11 @@
   "repo": "ccrusius/auth-source-xoauth2",
   "unstable": {
    "version": [
-    20200509,
-    2304
+    20200817,
+    1604
    ],
-   "commit": "5e646a32c9ba31a015a09fce1ad711b85717119a",
-   "sha256": "0nl859csl8xcd6ybpjj15ph8l8fxwkwf45kbylss68alkyf1rl3v"
+   "commit": "b0386d4a12a88c5635b26eaa4c9e355fc84fb3f6",
+   "sha256": "11i184s36ddxs06d8gq15nd0q59im8vfqnww3mvy35q12y6r8gpq"
   },
   "stable": {
    "version": [
@@ -4286,8 +4346,8 @@
     "cl-lib",
     "popup"
    ],
-   "commit": "2f11a4e6ff7f5d4939c3e1724158411a7efed057",
-   "sha256": "067ymm5swi9yq3sndzghqxlyyywzk434ip68nf6fxbj51raxzzq8"
+   "commit": "c0836fa0662095071e3c40237db611063e3c3ceb",
+   "sha256": "1269k2q1hv1yixn7w32ani7g0zspiiwfmbywxi8lvh9hj0asbrsc"
   },
   "stable": {
    "version": [
@@ -4532,10 +4592,10 @@
  },
  {
   "ename": "auto-complete-sage",
-  "commit": "f1cd78dcd58d559c47873f8fcfcab089a8493dd6",
-  "sha256": "02sxbir3arvmnkvxgndlkln9y05jnlv6i8czd6a0wcxk4nj43lq1",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "0ic60b9jnzgidpwxriwamicimyqa8y4hqfbkxmwcrp0snk4nf4hn",
   "fetcher": "github",
-  "repo": "stakemori/auto-complete-sage",
+  "repo": "sagemath/auto-complete-sage",
   "unstable": {
    "version": [
     20160514,
@@ -4593,11 +4653,11 @@
   "repo": "mina86/auto-dim-other-buffers.el",
   "unstable": {
    "version": [
-    20200516,
-    1608
+    20200801,
+    2029
    ],
-   "commit": "f712de72d4618ce6c5d55ba20c848c83a87c5f32",
-   "sha256": "17dsdfs9l3g4jnna5b2pzifvxv13rr5rja76frl5wwp2brfmq8qv"
+   "commit": "cad370fb6c9fc7186c2af221932e097af5900a2d",
+   "sha256": "0hjxadi8245zwwsp0kdz0c6i1j25drbky5cvksdnc8xw2l91kpbs"
   }
  },
  {
@@ -4729,14 +4789,14 @@
   "repo": "zonuexe/auto-read-only.el",
   "unstable": {
    "version": [
-    20170306,
-    443
+    20200726,
+    1356
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "79654f8fc024f383ae7af05487c1345738236500",
-   "sha256": "123822s9xkzw25swn1h1szxmmajnn9rq85vasygvy5cn2l6lar3l"
+   "commit": "a6c493c5279d484c00ce7fe75dfd2e60101b97db",
+   "sha256": "0wg6pl69k1hy69hgsqry5zahycr1n13avjfrw7g3sva71rqzkzrn"
   }
  },
  {
@@ -4747,20 +4807,20 @@
   "repo": "jcs-elpa/auto-rename-tag",
   "unstable": {
    "version": [
-    20190525,
-    628
+    20200717,
+    814
    ],
-   "commit": "27ca700cb2f61a1040013600c5744d68a27cbd8d",
-   "sha256": "1hydigzi82zana6ivcj4nxqvdnh3973594ag6zlgw9nijilih64r"
+   "commit": "7227c93e58a2c1837aa35ca35b6325c6f734d0f9",
+   "sha256": "1q029xy4ssb6lvd199yl1p63ir142q9waw31v2zagxlyn9rs9qx9"
   },
   "stable": {
    "version": [
     0,
-    0,
-    2
+    2,
+    9
    ],
-   "commit": "4bd41b3107d3971c9533f9d0c8718c299669cb78",
-   "sha256": "1g6kllnl625h6vmnps15a7ivpxq3k6s4vdxj50dj2i76g19wi2cn"
+   "commit": "7227c93e58a2c1837aa35ca35b6325c6f734d0f9",
+   "sha256": "1q029xy4ssb6lvd199yl1p63ir142q9waw31v2zagxlyn9rs9qx9"
   }
  },
  {
@@ -4779,24 +4839,6 @@
   }
  },
  {
-  "ename": "auto-scroll-mode",
-  "commit": "195041c70d2807184d4d8c711bcd3f54b8dfc73a",
-  "sha256": "1hvnhszn1cqzw42wn7w0hrq7wn161alg2w6xpd53ydg61g31i68n",
-  "fetcher": "github",
-  "repo": "stardiviner/auto-scroll-mode",
-  "unstable": {
-   "version": [
-    20200316,
-    134
-   ],
-   "deps": [
-    "cl-lib"
-   ],
-   "commit": "a23669a8747e71ca5b1003b923f7a3d3834740e3",
-   "sha256": "033msm39fdhm6iqd7khjsqvxrv4314h8klsq3g06zsrgpmjki1xr"
-  }
- },
- {
   "ename": "auto-shell-command",
   "commit": "ea710bfa77fee7c2688eea8258ca9d2105d1896e",
   "sha256": "1i78fh72i8yv91rnabf0vs78r43qrjkr36hndmn5ya2xs3b1g41j",
@@ -4866,16 +4908,16 @@
   "repo": "marcwebbie/auto-virtualenv",
   "unstable": {
    "version": [
-    20170125,
-    1917
+    20200729,
+    2204
    ],
    "deps": [
     "cl-lib",
     "pyvenv",
     "s"
    ],
-   "commit": "3826db66b417788e2b2eb138717255b1f52a55c3",
-   "sha256": "12691m4z0zr3prmdhmjlpcx0ajj1ddrbj9gy827xmgr0vaqbr7b2"
+   "commit": "214604ebd3366078d03814a344c3249268d1f15a",
+   "sha256": "14waa4v6nr0ybyncgfjg96r43ma4lw57iyma0chvpqifmbs6ski0"
   }
  },
  {
@@ -4955,14 +4997,14 @@
   "repo": "erjoalgo/autobuild",
   "unstable": {
    "version": [
-    20200209,
-    2005
+    20200713,
+    227
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "9e7a101e1563eaf6f5d671e5877d652079cea78b",
-   "sha256": "0khhmhh5fv004xhs3v8v8y3m8i1ibi19w74sv4shpy0ixd5zq1bj"
+   "commit": "6c10b13c285cc4180dc64c1f89ead264e6786f53",
+   "sha256": "02zjfv5365misiivjgjwwrp6bly7z81vnndkyrn6xzv88d2l2byv"
   }
  },
  {
@@ -5027,21 +5069,6 @@
   }
  },
  {
-  "ename": "automargin",
-  "commit": "0937e63ec686cc3e183bddb029a514c64934fc81",
-  "sha256": "0llqz01wmacc0f8j3h7r0j57vkmzksl9vj1h0igfxzpm347mm9q8",
-  "fetcher": "github",
-  "repo": "zk-phi/automargin",
-  "unstable": {
-   "version": [
-    20131112,
-    814
-   ],
-   "commit": "4901d969ad69f5244e6300baab4ba04efed800c3",
-   "sha256": "02nnyncfh6g0xizy7wa8721ahpnwk451kngd6n0y0249f50p3962"
-  }
- },
- {
   "ename": "autopair",
   "commit": "4150455d424326667390f72f6edd22b274d9fa01",
   "sha256": "0l2ypsj3dkasm0lj9jmnaqjs3rv97ldfw8cmayv77mzfd6lhjmh3",
@@ -5082,8 +5109,8 @@
     20190331,
     2230
    ],
-   "commit": "bcd3d76a47b4f0e7c382fb680b14f40208dae568",
-   "sha256": "0sgzjddd34icbbm4pc7v1662k6288pkr70ki4p2j3q4mh9qqc8q7"
+   "commit": "fc9ec563430e3beaefc00b26da179f4b4ca9855b",
+   "sha256": "1m4v56yy73gvycsvpc36h7yh6yhn3fgp90rk5m248hz89gjf9kxv"
   }
  },
  {
@@ -5189,14 +5216,14 @@
   "repo": "abo-abo/avy",
   "unstable": {
    "version": [
-    20200422,
-    1153
+    20200624,
+    1148
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "509471bad0e8094b8639729ec39ca141fae7d4bd",
-   "sha256": "0kj4nbp8g22xyvjdy8vh54v6zgd4f3z6srrw5pd55gbczm5csnbj"
+   "commit": "bbf1e7339eba06784dfe86643bb0fbddf5bb0342",
+   "sha256": "0jmjjckrmivfy2r527vynq9x0mzwcgcyclydar9fa2xb1wn669pd"
   },
   "stable": {
    "version": [
@@ -5245,8 +5272,8 @@
    "deps": [
     "avy"
    ],
-   "commit": "aee6878a8c2f18c3ac3bd34d608783b52cd708e0",
-   "sha256": "1526a6cqaa16x5gi2fsdi9brqa54n3m0dvrnkd85w6sgaz33cpiz"
+   "commit": "970204989bcd4a4f8223c2fe980a08dc58441045",
+   "sha256": "196pwh83p0yrnagpiig8h2mq9xxm7wk9q8x832ffwizip4yni80b"
   },
   "stable": {
    "version": [
@@ -5391,6 +5418,21 @@
   }
  },
  {
+  "ename": "ayu-theme",
+  "commit": "22bdc35d5c432c5d58d751c0fc3f2e5d0fafe583",
+  "sha256": "1ygg6dwzg0kjxxd8c6w5j174jcjkc7f4hljgd70vkh4k7817kxj8",
+  "fetcher": "github",
+  "repo": "vutran1710/Ayu-Theme-Emacs",
+  "unstable": {
+   "version": [
+    20200521,
+    1157
+   ],
+   "commit": "ed98a9f41d9f0e08458ee71cc1038f66c50e1979",
+   "sha256": "1qdw9pq1daydky0b94x248q27sjzaxpfw9d027xk6ygi9hksvcsk"
+  }
+ },
+ {
   "ename": "babel",
   "commit": "b0d748fa06b3cbe336cb01a7e3ed7b0421d885cc",
   "sha256": "0sdpp4iym61ni32zv75n48ylj4jib8ca6n9hyqwj1b7nqg76mm1c",
@@ -5475,11 +5517,11 @@
   "repo": "mschuldt/backlight.el",
   "unstable": {
    "version": [
-    20190905,
-    519
+    20200813,
+    1839
    ],
-   "commit": "3e5b971b4ee89299240a89614db92d2c4034e954",
-   "sha256": "0hsb1vd1mk4mcgr4l93b81hz2bq7cpd7b3kdhabv9z489mxiy3fa"
+   "commit": "38fcb9256c3bf7300a41332fa7f9feffc4e2db9a",
+   "sha256": "0982il82v10yclm87b06ghwv4cglw03ia0zs4m838ag6zg8a08jg"
   }
  },
  {
@@ -5633,20 +5675,20 @@
   "url": "https://git.sr.ht/~zge/bang",
   "unstable": {
    "version": [
-    20200510,
-    1107
+    20200811,
+    1008
    ],
-   "commit": "f80c7c394b57057499db6409f386ade9ac32f763",
-   "sha256": "0mj2kr13gpvy4kpzxvy1jmz0c9cdnikazlsb9j0dx94f9777sy04"
+   "commit": "e02338331463461a85144c0ce6b9b877bd3a7567",
+   "sha256": "1rvgmkl950zrakczk9libws29c9l2hklw49m3xb4swa14kz1r639"
   },
   "stable": {
    "version": [
     1,
     0,
-    2
+    3
    ],
-   "commit": "1fb0162ffd2115080d4e1ddf65935277cf3c75db",
-   "sha256": "12nr5la6y5dnh46rfij3p1srgpwdc3fiaf4ckfx6f9kl0n1zyrls"
+   "commit": "e02338331463461a85144c0ce6b9b877bd3a7567",
+   "sha256": "1rvgmkl950zrakczk9libws29c9l2hklw49m3xb4swa14kz1r639"
   }
  },
  {
@@ -5674,10 +5716,10 @@
  },
  {
   "ename": "bap-mode",
-  "commit": "05b1b5885a9d5e3bda38bc8a2f987bffd9353cc0",
-  "sha256": "1n0sv6d6vnv40iks18vws16psbv83v401pdd8w2d2cfhhsmmi4ii",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "0w82dzhahp9zc1dhkfwc77irpqbq0fdp14cjfkk3g5cmvyzz5s1a",
   "fetcher": "github",
-  "repo": "fkie-cad/bap-mode",
+  "repo": "BinaryAnalysisPlatform/bap-mode",
   "unstable": {
    "version": [
     20200128,
@@ -5748,20 +5790,20 @@
   "repo": "szermatt/emacs-bash-completion",
   "unstable": {
    "version": [
-    20191126,
-    1824
+    20200806,
+    1743
    ],
-   "commit": "96ce14af9674f3e605bacca87abc0c23b8f13cd5",
-   "sha256": "1w3yvpcdjq9a6m2q2lz23dib2ijmfgn4w2z2g5y9wkpdmx48k655"
+   "commit": "d47edb9d4142a22746009c1f680df93a4fefd107",
+   "sha256": "11j2k3irixp47r2iglxdmjphahqhgnxg98n2xwagwzyq99lsamj4"
   },
   "stable": {
    "version": [
-    2,
+    3,
     1,
     0
    ],
-   "commit": "6aedd690006e07199b2fcd319b9b840a527650e5",
-   "sha256": "1a1wxcqzh0javjmxwi3lng5i99xiylm8lm04kv4q1lh9bli6vmv0"
+   "commit": "d47edb9d4142a22746009c1f680df93a4fefd107",
+   "sha256": "11j2k3irixp47r2iglxdmjphahqhgnxg98n2xwagwzyq99lsamj4"
   }
  },
  {
@@ -5902,11 +5944,11 @@
   "repo": "bazelbuild/emacs-bazel-mode",
   "unstable": {
    "version": [
-    20200515,
-    1408
+    20200627,
+    1625
    ],
-   "commit": "39d4649f4a179e22fabbef1166afe1725c8dbea6",
-   "sha256": "0n5kqjcmwfbr58my3yisgfigh77rhy5b18jr4kh2b327r76ssqwl"
+   "commit": "2cf143b616df3de4b199538341d674c58386719e",
+   "sha256": "1p9pxxdx39jmf8sav660ps6mqwbsgcl4v1i9xb8xsd5qdxmwjqli"
   },
   "stable": {
    "version": [
@@ -6119,21 +6161,6 @@
   }
  },
  {
-  "ename": "bdo",
-  "commit": "855ea20024b606314f8590129259747cac0bcc97",
-  "sha256": "1n2kpaps6992nxl0v1003czcbw1k4xq906an56694wkh05az505j",
-  "fetcher": "github",
-  "repo": "chrisdone/bdo",
-  "unstable": {
-   "version": [
-    20140126,
-    901
-   ],
-   "commit": "c96cb6aa9e97fa3491185c50dee0f77a13241010",
-   "sha256": "0d5b7zyl2vg621w1ll2lw3kjz5hx6lqxc0jivh0i449gckk5pzkm"
-  }
- },
- {
   "ename": "beacon",
   "commit": "d09cfab21be800831644218e9c8c4433087951c0",
   "sha256": "1pwxvdfzs9qjd44wvgimipi2hg4qw5sh5wlsl8h8mq2kyx09s7hq",
@@ -6171,14 +6198,14 @@
   "repo": "Sodaware/beeminder.el",
   "unstable": {
    "version": [
-    20180413,
-    1929
+    20200610,
+    2311
    ],
    "deps": [
     "org"
    ],
-   "commit": "3fcee7a7003a37171ddb59171c7f4b5dd4b34349",
-   "sha256": "0phiyv4n5y052fgxngl3yy74akb378sr6manx21s360gnxzcblwd"
+   "commit": "8f86ae34ebd17324d98146a2b3a532d56dd1cdd0",
+   "sha256": "0jw62l1nnnnz4gr7jrk10jlf8ayjngyx9wm97fd339spiygld5pr"
   },
   "stable": {
    "version": [
@@ -6201,11 +6228,11 @@
   "repo": "DamienCassou/beginend",
   "unstable": {
    "version": [
-    20200415,
-    1752
+    20200526,
+    2005
    ],
-   "commit": "bb51f7ee9229ff0b6ec5ba4a730f7360246fb9ea",
-   "sha256": "0l7lbmn6ljh8yv7ch2fax47mr7kxly5b5ps5vg61ra15nv8v5vfr"
+   "commit": "9c7a92779d75f6fd985cf707ff5241bc98ccea6c",
+   "sha256": "1r9033zlx2q2dk3bjz004flxdiw79qiswq0zqdjnlzwassvk0f35"
   },
   "stable": {
    "version": [
@@ -6257,10 +6284,10 @@
  },
  {
   "ename": "benchstat",
-  "commit": "d9180fbedf95f9b1f5810bbf4929dfee513f89e3",
-  "sha256": "0h2zi4gh23bas1zfj7j2x994lwgd3xyys96ipg1vq7z2b06572k9",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "1pcwgvln6dhyqk52021hqs5gpgnj1a07ddbb7xs1qclgyyk72y85",
   "fetcher": "github",
-  "repo": "Quasilyte/benchstat.el",
+  "repo": "quasilyte/benchstat.el",
   "unstable": {
    "version": [
     20171014,
@@ -6364,11 +6391,11 @@
   "repo": "technomancy/better-defaults",
   "unstable": {
    "version": [
-    20200209,
-    1717
+    20200717,
+    2012
    ],
-   "commit": "fc9a03138c959f0d24301c6401f800eb6e7d3af9",
-   "sha256": "1hi1xxc99z0pkbj8w63fx3qsy4sq5b3gdc2ccyk0gnbzw2sfc93j"
+   "commit": "293237a22a4f24171dd9910d6517a0eccf526fdf",
+   "sha256": "0f3alik361d81kdwpigcgkj9rxww23prqfhjfdh97fnycp3r1nyb"
   },
   "stable": {
    "version": [
@@ -6442,14 +6469,14 @@
   "repo": "zk-phi/bfbuilder",
   "unstable": {
    "version": [
-    20150924,
-    1650
+    20200816,
+    519
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "49560bdef131fa5672dab660e0c62376dbdcd906",
-   "sha256": "1y9fxs1nbf0xsn8mw45m9ghmji3h64wdbfnyr1npmf5fb27rmd17"
+   "commit": "00cbf1010dc3fee5a0b8e7c0e0b6041bb6251bdf",
+   "sha256": "1n1aq3kwsjc3hlgas73bs22pvrn69hfba1wcbqs2j28j2j9j00b2"
   }
  },
  {
@@ -6680,20 +6707,20 @@
   "repo": "tarsius/bicycle",
   "unstable": {
    "version": [
-    20200429,
-    1021
+    20200723,
+    2222
    ],
-   "commit": "1bd8836171cf8da0be836fc407f2f140f52bdeb1",
-   "sha256": "0zd8ls2qyxgdzkmhl7mxlh7wbkp627kync8zg95kvrh3qymf5vys"
+   "commit": "799969a66192b27c6464fc2e0025f4089d70493b",
+   "sha256": "13179nlhjkdsgpjp2lbx8fqx76ka79hjkhip6im6afv9icr3j3ba"
   },
   "stable": {
    "version": [
     0,
-    3,
-    1
+    4,
+    2
    ],
-   "commit": "91d9f946690df0a1ed866f2cd1eab1b2e7c7480a",
-   "sha256": "0pkn99srwyvyibz5zxkh58csbf598x26f31mpizacx3bs4nys0qb"
+   "commit": "799969a66192b27c6464fc2e0025f4089d70493b",
+   "sha256": "13179nlhjkdsgpjp2lbx8fqx76ka79hjkhip6im6afv9icr3j3ba"
   }
  },
  {
@@ -6764,8 +6791,8 @@
     "bind-key",
     "key-chord"
    ],
-   "commit": "c873d5529c9c80cb58222f22873a4f081c307cb2",
-   "sha256": "0jbq3w9ijsbl5gblhr24b0rh4gyp1xx696g20l438a7sbsk4b531"
+   "commit": "4fb1f9a68f1e7e7d614652afc017a6652fd029f1",
+   "sha256": "073sm0mbxcjysap2bjzf1cl0134jy8a0xig7ywmmd0bm2y8qzfip"
   },
   "stable": {
    "version": [
@@ -6788,11 +6815,11 @@
   "repo": "jwiegley/use-package",
   "unstable": {
    "version": [
-    20191110,
-    416
+    20200805,
+    1727
    ],
-   "commit": "c873d5529c9c80cb58222f22873a4f081c307cb2",
-   "sha256": "0jbq3w9ijsbl5gblhr24b0rh4gyp1xx696g20l438a7sbsk4b531"
+   "commit": "4fb1f9a68f1e7e7d614652afc017a6652fd029f1",
+   "sha256": "073sm0mbxcjysap2bjzf1cl0134jy8a0xig7ywmmd0bm2y8qzfip"
   },
   "stable": {
    "version": [
@@ -6993,11 +7020,11 @@
   "repo": "pythonic-emacs/blacken",
   "unstable": {
    "version": [
-    20191123,
-    1547
+    20200626,
+    2018
    ],
-   "commit": "a09f8e2564739792a1b86bc8a6ce41039db3bbf8",
-   "sha256": "0cs9nmi30dknrw6p2xvx9np1zmzpsn3bs93lhfiqy2a4ylf96brl"
+   "commit": "784da60033fe3743336d1da0f33239f1bf514266",
+   "sha256": "1s7isvih1xl4l6say8xa69r9lf3prq9sd6d9fmn1n8g8p3w09cnq"
   }
  },
  {
@@ -7276,26 +7303,26 @@
   "repo": "kyleam/bog",
   "unstable": {
    "version": [
-    20180815,
-    2213
+    20200720,
+    244
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "6c8fa1b4961e279ae63130902996c5f71a2e64e4",
-   "sha256": "0kph9898s2m086p8gj97bbzr7mba9y7hmyxh1z4mgpv5808zvd05"
+   "commit": "14241d308d15410bfaafcf607a8a4a7ff3d7254c",
+   "sha256": "1k9ww9in54v0bmw8l6azx67wbb18r2q6fdwl1j931gaz9pngk3k0"
   },
   "stable": {
    "version": [
     1,
     3,
-    1
+    2
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "6ed4d3edbe771e586d873b826330f3ef23aa1611",
-   "sha256": "0s4jwlaq3mqyzkyg3x4nh4nx7vw825jhz7ggakay7a2cfvpa4i2j"
+   "commit": "14241d308d15410bfaafcf607a8a4a7ff3d7254c",
+   "sha256": "1k9ww9in54v0bmw8l6azx67wbb18r2q6fdwl1j931gaz9pngk3k0"
   }
  },
  {
@@ -7444,15 +7471,15 @@
   "repo": "emacscollective/borg",
   "unstable": {
    "version": [
-    20200513,
-    1954
+    20200805,
+    1131
    ],
    "deps": [
     "epkg",
     "magit"
    ],
-   "commit": "f6a2e0cb8c3db5840c717114caba93793f2e9661",
-   "sha256": "1sa0wk7xj3qsk9fr4z2av80gp8n0804zylx3d27pdwm8bjyfzf7b"
+   "commit": "1fe1d2b7a574dd560740a55d87d9a5fb3a989dbc",
+   "sha256": "19rxqh6qagznsm5hqal65cv03k9gg1cfvb0j5saaqfc4nxkhkv7v"
   },
   "stable": {
    "version": [
@@ -7507,25 +7534,25 @@
   "repo": "davep/boxquote.el",
   "unstable": {
    "version": [
-    20170802,
-    1117
+    20200727,
+    1203
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "7e47e0e2853bc1215739b2e28f260e9eed93b2c5",
-   "sha256": "1aqhg24gajvllbqxb0zxrnx6sddas37k2ldfinqyszd856sjhsg3"
+   "commit": "bdc6c84b9274b228dbc383a14abf9694157e869c",
+   "sha256": "0wwjawgylaaifdsszqxcfsyhfzgxbjkzqhzrnxnr9b16wghb7xf7"
   },
   "stable": {
    "version": [
     2,
-    1
+    2
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "b6a4ad3ee5b327bd3b1bf65f8733bd301fe59883",
-   "sha256": "1f61k3sw9zvn6jq60ygi6p66blr52497fadimzcaspa79k9y1cfm"
+   "commit": "bdc6c84b9274b228dbc383a14abf9694157e869c",
+   "sha256": "0wwjawgylaaifdsszqxcfsyhfzgxbjkzqhzrnxnr9b16wghb7xf7"
   }
  },
  {
@@ -7638,14 +7665,25 @@
   "url": "https://bitbucket.org/MikeWoolley/brf-mode",
   "unstable": {
    "version": [
-    20200329,
-    1531
+    20200811,
+    1622
    ],
    "deps": [
     "fringe-helper"
    ],
-   "commit": "f1ae0c5eb74f62af109ebaf18e8663d6f51270cb",
-   "sha256": "1pzxz5irx6ysa8nhl9x50v8l5r2cvd6pafj71q4i5lrxv9a1dkl1"
+   "commit": "4e12ec16d6b896402f8bcdc1cd468d4064a2df6f",
+   "sha256": "1pdrpvff6hvhjv512z1vkivd848ar5li4p63jnbvl90hp7kpy7c3"
+  },
+  "stable": {
+   "version": [
+    1,
+    19
+   ],
+   "deps": [
+    "fringe-helper"
+   ],
+   "commit": "0024b1a276c43fde0d85011b51b5aaf1f201da64",
+   "sha256": "1nnhb0vyx5f3f7h2fsg2p7656kcsk7ahrndxrhs7a77svnr426lb"
   }
  },
  {
@@ -8098,20 +8136,20 @@
   "repo": "jcs-elpa/buffer-wrap",
   "unstable": {
    "version": [
-    20200223,
-    605
+    20200724,
+    906
    ],
-   "commit": "460f90bc024b6c287ed8afac3ff1bed2a147c777",
-   "sha256": "07r50iiiyhbqbia9c8c3kz1hvqjs6dkb8rkqpq4yyv3vd1kc9qnb"
+   "commit": "ef0fcb38b23246cfea1721570acc266764cef0a4",
+   "sha256": "029vq5hfknp5l8b9lmxw4hskq9bmv56kqysdfka0636hp7bvc63p"
   },
   "stable": {
    "version": [
     0,
     1,
-    1
+    3
    ],
-   "commit": "813a3dab3007a34fa27cf0a1ae687dc0eae98240",
-   "sha256": "0m2ryic16083ab0x6qwfrxrpsgq84s518vn0cbfcxycblpdh89al"
+   "commit": "c24eb1f251baecfb0bbfa750904e6b15cc977a6c",
+   "sha256": "1bzr5bf4rm1wm0xdhhdprlv7z60ijwrp1lq9h572iw6giyl0hgc3"
   }
  },
  {
@@ -8452,19 +8490,19 @@
   "repo": "jorgenschaefer/emacs-buttercup",
   "unstable": {
    "version": [
-    20200509,
-    2224
+    20200817,
+    2001
    ],
-   "commit": "e71a40f1ffef4847df28c9d4ad7edc1e360ee52a",
-   "sha256": "0avmxbxxsazd14h5avsrqh2yyfnp8jan64sbp5ih2c9hm7xv5p1k"
+   "commit": "0e5eae0766a33b5c8997e1477e3914d5c8ba3d29",
+   "sha256": "0qn3i26g119h14jv9q0vha55s4g154djp3f68d2g7i0f46wm54hz"
   },
   "stable": {
    "version": [
     1,
-    21
+    23
    ],
-   "commit": "0dbd474460e4c314bf8bc6e4d3dec647081538c9",
-   "sha256": "1ra5r56k539q6l98msxdn4vfd7k6jm00g8cdhs6hpwvb1blj8di2"
+   "commit": "a9647cbb566eb488b7bbde44c4cdaf51b7915851",
+   "sha256": "0ym1hajy47n5f1rxic8qfxrwd8zc1r7csz1v4hrwhwm4qld4krfr"
   }
  },
  {
@@ -8910,6 +8948,42 @@
   }
  },
  {
+  "ename": "calibredb",
+  "commit": "774ebbd69372ffba6fd16107762957b8ea3713a5",
+  "sha256": "1bdkxzs18c8krw28vfnzirx0pq13yf8pgkmjy8ks5j8zbih4dhqm",
+  "fetcher": "github",
+  "repo": "chenyanming/calibredb.el",
+  "unstable": {
+   "version": [
+    20200809,
+    1128
+   ],
+   "deps": [
+    "dash",
+    "org",
+    "s",
+    "transient"
+   ],
+   "commit": "a53d3c3d87fb7cd756f73fcd813aca0480ada5f7",
+   "sha256": "11m9d015fnjf89qg6wpy0vs1vhvak5q753m4dzqrdw3jgm9zsnmv"
+  },
+  "stable": {
+   "version": [
+    2,
+    5,
+    0
+   ],
+   "deps": [
+    "dash",
+    "org",
+    "s",
+    "transient"
+   ],
+   "commit": "a53d3c3d87fb7cd756f73fcd813aca0480ada5f7",
+   "sha256": "11m9d015fnjf89qg6wpy0vs1vhvak5q753m4dzqrdw3jgm9zsnmv"
+  }
+ },
+ {
   "ename": "call-graph",
   "commit": "a6acf099e2510c82b4b03e2f35051afc3d28af45",
   "sha256": "0cklr79gqqrb94jq8aq65wqriamay78vv9sd3jrvp86ixl3ig5xc",
@@ -9013,11 +9087,7 @@
     1
    ],
    "commit": "9803cf37ac52bbfa5130fde0f228dc51c4590c2d",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "error: unable to download 'https://github.com/ocaml/caml-mode/archive/9803cf37ac52bbfa5130fde0f228dc51c4590c2d.tar.gz': HTTP error 404\n"
-   ]
+   "sha256": "13gz0s7bnjsnab7wn8mk0zva7756hf68izqp9agd8vqnm0c75nlp"
   }
  },
  {
@@ -9028,16 +9098,16 @@
   "repo": "kisaragi-hiu/cangjie.el",
   "unstable": {
    "version": [
-    20190929,
-    1221
+    20200808,
+    828
    ],
    "deps": [
     "dash",
     "f",
     "s"
    ],
-   "commit": "0a703f4d1162259d77bfb3f862d13c1b1f11a711",
-   "sha256": "19f7xzc1204zdv8bbd5vfzxqrinhk8m9mw911dc77jab2in22348"
+   "commit": "0cbf706890df06b9e0d541692c579ed213da8252",
+   "sha256": "0a3mwgbza09rfiswmk4kh699mqc5746k16jc6rgy9q24jbjgradf"
   },
   "stable": {
    "version": [
@@ -9149,8 +9219,8 @@
     "dash",
     "s"
    ],
-   "commit": "92a31f6a7cae0b4e2af106cd6f2b0abe6c2d8921",
-   "sha256": "1cp9i69npvyn72fqv0w8q1hlkcawkhbah4jblc341ycxwxb48mkl"
+   "commit": "75ddb9c64eeb78b46d9e1db99bef8d0fb1e46b99",
+   "sha256": "06briiapv2pfll8zc0wl55sad8cjgxkb8j8d4bvc8w5li3d52xa9"
   },
   "stable": {
    "version": [
@@ -9175,8 +9245,8 @@
   "repo": "cask/cask",
   "unstable": {
    "version": [
-    20191004,
-    1155
+    20200814,
+    913
    ],
    "deps": [
     "ansi",
@@ -9188,8 +9258,8 @@
     "s",
     "shut-up"
    ],
-   "commit": "a4715f7c6c9797639c3636399cb21c2b0332b354",
-   "sha256": "1zjz3mp8hgnsfyapq7qdfysj31g9f6syvrik2w057r3w3bxp8vkf"
+   "commit": "c69822a1a3168d43caebb7afaa13249429419ae0",
+   "sha256": "0w7q16y2r54rann07lk4gwi7jkqnb5xc8cbjnx2avgpsk7kawi8w"
   },
   "stable": {
    "version": [
@@ -9368,11 +9438,11 @@
   "repo": "xuchunyang/cc-cedict.el",
   "unstable": {
    "version": [
-    20181217,
-    1112
+    20200705,
+    443
    ],
-   "commit": "0dd9bcd5337c8f16fc9c8d27daba4a9362695c99",
-   "sha256": "16qp0r413lqrym2xh2vpx0hg295g8mr428fg6q07w1hnzz10dpc2"
+   "commit": "6bb9481e48b889503626b4e3cb7cfec8d14cbf4b",
+   "sha256": "0nxq8p7hafpl1xq9daf5lcyk8ragdgnwsfxxd2d0rnzmyflgw5wi"
   }
  },
  {
@@ -9386,8 +9456,8 @@
     20200314,
     1557
    ],
-   "commit": "11d91b4cce988e15d7c5fc4345535c9d7a92d53b",
-   "sha256": "19fgk6m951q9swr958337a3jk9b4xgvswkc73al6wsdkigygmhji"
+   "commit": "275a831be77573470309a78967734d2b6d10f218",
+   "sha256": "1a25aybavi6p7ijc4rbd8zyzgiim1m2xwm7yqfmsvrfzwgb29xal"
   }
  },
  {
@@ -9398,16 +9468,15 @@
   "repo": "MaskRay/emacs-ccls",
   "unstable": {
    "version": [
-    20200327,
-    1915
+    20200819,
+    106
    ],
    "deps": [
     "dash",
-    "lsp-mode",
-    "projectile"
+    "lsp-mode"
    ],
-   "commit": "17ec7bb4cf362b7268c24e070e841f0dfac1c919",
-   "sha256": "08pndwbw6wcpysnvhkqfvrw91ac0np31swiq0yv3dr2x0sq70cp5"
+   "commit": "44f1fb38786cb6159e03e930876239a215d3feee",
+   "sha256": "0adw1gfp8a6cfyh7s1bchdpak7z32jlnliq35ynhakwwx3ixzmfv"
   }
  },
  {
@@ -9433,11 +9502,11 @@
   "repo": "skk-dev/ddskk",
   "unstable": {
    "version": [
-    20200314,
-    1557
+    20200803,
+    2138
    ],
-   "commit": "11d91b4cce988e15d7c5fc4345535c9d7a92d53b",
-   "sha256": "19fgk6m951q9swr958337a3jk9b4xgvswkc73al6wsdkigygmhji"
+   "commit": "275a831be77573470309a78967734d2b6d10f218",
+   "sha256": "1a25aybavi6p7ijc4rbd8zyzgiim1m2xwm7yqfmsvrfzwgb29xal"
   }
  },
  {
@@ -9507,11 +9576,11 @@
   "repo": "zk-phi/cedit",
   "unstable": {
    "version": [
-    20141231,
-    1614
+    20200816,
+    526
    ],
-   "commit": "0878d851b6307c162bfbddd2bb02789e5e27bc2c",
-   "sha256": "1f8gdj3p54q3410c66716y3l7i7nnkmq6hqz0dg1a1sc6jwdij3v"
+   "commit": "cb38316903e6cfa8b8c978defa7e1dafcd4e0c12",
+   "sha256": "1m5n0rwh97g3vl4x0akclgc8flh9vpdavp82q3i1yraigvzqzfc9"
   }
  },
  {
@@ -9571,15 +9640,15 @@
   "repo": "ema2159/centaur-tabs",
   "unstable": {
    "version": [
-    20200511,
-    1242
+    20200722,
+    27
    ],
    "deps": [
     "cl-lib",
     "powerline"
    ],
-   "commit": "57afd81c7fd6449239af7adcda4cd2192976dbb8",
-   "sha256": "1sa4anfqvhidn7kxqnchk0d8kc2v0l3cxbf0bnwwx7nk04gjvshg"
+   "commit": "7e0332b138f836b9d0b6d2134310f53369598cfd",
+   "sha256": "1fjs1l79wsyiyi4nrdkxg2hhfkngm7g0zpdq5ca3c1zi4fsv084i"
   },
   "stable": {
    "version": [
@@ -9706,17 +9775,17 @@
     20171115,
     2108
    ],
-   "commit": "dc0e180cbaf73e86d22f1d2996c7582dd0eb07b5",
-   "sha256": "0n9f87syrj30dn5k4vq1l7i02hzwfnadanfjbwv4a9wfjl77xy53"
+   "commit": "ec47889f4bef53c6c5a15add60d34c44c6ef1634",
+   "sha256": "16lndmhm0ad23g0pa4rl7dyrwmdv22xmscnpqnd49sg88356fyd2"
   },
   "stable": {
    "version": [
     3,
-    15,
-    1
+    16,
+    0
    ],
-   "commit": "e766ee2484f9a7609688ac1832ff2ca7528624c5",
-   "sha256": "18iv6s2g7gz2dmqhipn6ln6g4qngywcj7fm4gqwrph04bx5dfqac"
+   "commit": "ee2c1fd898a8219e81fea4f753648070e50ebc2e",
+   "sha256": "1jcvh67kxx5isqb78zjbca51px21cyjcwy1cbfkx47y1rmgsqzaw"
   }
  },
  {
@@ -9866,17 +9935,20 @@
  },
  {
   "ename": "chapel-mode",
-  "commit": "ff32db72ad55a7191b5105192480e17535c7edde",
-  "sha256": "0hmnsv8xf85fc4jqkaqz5j3sf56hgib4jp530vvyc2dl2sps6vzz",
+  "commit": "f84c693e9e90069b028be6149dd730f2ba5f4aff",
+  "sha256": "0yi1xjm1myxywjdb3n1505mz7vnylrvpd067aibjc4vgq0gqvq6f",
   "fetcher": "github",
-  "repo": "russel/Emacs-Chapel-Mode",
+  "repo": "damon-kwok/chapel-mode",
   "unstable": {
    "version": [
-    20160504,
-    808
+    20200814,
+    759
    ],
-   "commit": "6e095edd7639f5f0a81e14d6412410b49466697e",
-   "sha256": "0r3yja2ak3z62lav2s8vimmjyi4rd5s82fbs8r6p2k0shm6lj7hz"
+   "deps": [
+    "hydra"
+   ],
+   "commit": "0855d6ea5e74da7b02e7307066da912c242084c8",
+   "sha256": "08bgjwkm6bhm5s73pdx62bjm58z18q21fhj02zdp0q8dds5babf9"
   },
   "stable": {
    "version": [
@@ -9902,8 +9974,8 @@
    "deps": [
     "avy-menu"
    ],
-   "commit": "22d0e061f170d59d7cf6bcd948c11fa0266b7771",
-   "sha256": "1m29vg4cispsd8nl8lpmv5fify1208nrf8h7nkl17pplrk7hqhwb"
+   "commit": "a1ccf5ed786af6e2441037964668d817b9c7362f",
+   "sha256": "19yl7gmzalhrhr3spi8vs6wpxpv6m3m1d9564naznswxx19sjcjy"
   },
   "stable": {
    "version": [
@@ -9926,11 +9998,11 @@
   "repo": "lateau/charmap",
   "unstable": {
    "version": [
-    20160309,
-    946
+    20200616,
+    1418
    ],
-   "commit": "bd4b3e466d7a9433cf35167e3a68ec74fe631bb2",
-   "sha256": "0vqsfk83lg3gvcv62jsgxxwz7icpkpswgg30hmcq0qfg0dfwwcl9"
+   "commit": "feac50b87d2a596c5e5b7b82b79ddd65b6dedd8c",
+   "sha256": "1pms4s1qnf60d3amhx1lfa255ln5wypq0q6w918whhzi4l7mdyz4"
   },
   "stable": {
    "version": [
@@ -10291,36 +10363,71 @@
  },
  {
   "ename": "chronometrist",
-  "commit": "35d03fe9c066e7388d5ff4adad1afa1e30145995",
-  "sha256": "09dil46qjn7y55y7qax92l7mcw8g1bsb1mjqc92zgln96asi25kj",
-  "fetcher": "git",
-  "url": "https://framagit.org/contrapunctus/chronometrist/",
+  "commit": "9031f880b8646bf9a4be61f3057dc6a3c50393e8",
+  "sha256": "1xjxq257iwjd3zzwqicjqs3mdrkg9x299sm7wfx53dac14d7sa9g",
+  "fetcher": "github",
+  "repo": "contrapunctus-1/chronometrist",
   "unstable": {
    "version": [
-    20200503,
-    633
+    20200816,
+    1947
    ],
    "deps": [
+    "anaphora",
     "dash",
     "s",
-    "seq"
+    "seq",
+    "ts"
    ],
-   "commit": "16f2ca86540001b40725c4099d04154aab0a6ba5",
-   "sha256": "19z8wmhsqbm12h0vvzfgjmzj7g3mcpa9qgcz3cnmrr4hgkx4b9a5"
+   "commit": "c886dbb1ec8d1e22f7e9891ce9794d373b3b4e9b",
+   "sha256": "0f94w039ibqyysldgs0rdzjczhpgd1dq6ll85gdb4av7vw6mp3hy"
   },
   "stable": {
    "version": [
     0,
-    4,
+    5,
     3
    ],
    "deps": [
     "dash",
     "s",
-    "seq"
+    "seq",
+    "ts"
    ],
-   "commit": "282c338c21d01932049392f271f66e1725562efd",
-   "sha256": "1ljjqzghcap4admv0hvw6asm148b80mfgjgxjjcw6qc95fkjjjlr"
+   "commit": "0445b5187293a927f505633e851ca871bb89d8df",
+   "sha256": "0jz35972m372kx9x8mgf42zhzdw2w9wv2ri52chfb2fin4bh1biy"
+  }
+ },
+ {
+  "ename": "chronometrist-goal",
+  "commit": "61031b9ab0c0dedf88e6947ae2ad8d4ad0351210",
+  "sha256": "0hcww5qy167fiwwkj33pj8fdc89b61mb767gz85ya5r6d5nd4si3",
+  "fetcher": "github",
+  "repo": "contrapunctus-1/chronometrist-goal",
+  "unstable": {
+   "version": [
+    20200706,
+    1306
+   ],
+   "deps": [
+    "alert",
+    "chronometrist"
+   ],
+   "commit": "a9c4410f25f875c55b9237ef6544e82f4a805af6",
+   "sha256": "0wydrc4x19rp6nn1hyhaa5zxr4br51aamrv0ky5yppr17rnyygsy"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    1
+   ],
+   "deps": [
+    "alert",
+    "chronometrist"
+   ],
+   "commit": "e651821d0f64830235232082a8295e86a173574b",
+   "sha256": "02q9bksjs24hxl1lz93f16rvqyn6ah10acjg2yw7kx0nj3qxff8v"
   }
  },
  {
@@ -10379,8 +10486,8 @@
   "repo": "clojure-emacs/cider",
   "unstable": {
    "version": [
-    20200511,
-    1025
+    20200814,
+    1540
    ],
    "deps": [
     "clojure-mode",
@@ -10391,14 +10498,14 @@
     "sesman",
     "spinner"
    ],
-   "commit": "25fb15d915117310069254016391c9d76abcebcc",
-   "sha256": "1hz2l2ryllwyv1zk0la376klg7yndz9q32pd1vypwymwnac93c0y"
+   "commit": "a89b694cc3cec0294d84bf9dbe1163ad2373e8db",
+   "sha256": "0m77jbxl380dp1wyj12m82bb06r80js8yxl530ryp1mwvy74f00d"
   },
   "stable": {
    "version": [
     0,
-    24,
-    0
+    26,
+    1
    ],
    "deps": [
     "clojure-mode",
@@ -10409,8 +10516,8 @@
     "sesman",
     "spinner"
    ],
-   "commit": "bfcf9157a970c9423fe27c5021f445b509e71280",
-   "sha256": "1y7fngd47c5dz6sdf4b5w5lxdw5jmm4wa98l4h48badl8cn6m1vl"
+   "commit": "a89b694cc3cec0294d84bf9dbe1163ad2373e8db",
+   "sha256": "0m77jbxl380dp1wyj12m82bb06r80js8yxl530ryp1mwvy74f00d"
   }
  },
  {
@@ -10583,14 +10690,14 @@
   "repo": "jorgenschaefer/circe",
   "unstable": {
    "version": [
-    20200125,
-    2110
+    20200815,
+    1410
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "e5bf5f89741a9c43aa406491e94dd8d58c302fb4",
-   "sha256": "104l0b9n9ia7zrha20yaxp6c09wg1h5l5a8b988k6mhyj9a1w1aw"
+   "commit": "89aac22259e5d09ae1183e0df163338fe491e9e7",
+   "sha256": "16hfahyhl1vv3r0amyvc514sw6x9x56b319lkp7bwcy8mxicc3cy"
   },
   "stable": {
    "version": [
@@ -10643,8 +10750,8 @@
   "repo": "andras-simonyi/citeproc-el",
   "unstable": {
    "version": [
-    20200305,
-    2126
+    20200705,
+    1155
    ],
    "deps": [
     "dash",
@@ -10654,24 +10761,63 @@
     "s",
     "string-inflection"
    ],
-   "commit": "1884b5c88ad4eb35450a7acf053594369ccb1b22",
-   "sha256": "0dr4fx14kmahg533ij92ycn1a8kagbadfml9iyziisllxypmjrzf"
+   "commit": "0ad1f975a095156d02dd7f9adc0fecbc57b1e751",
+   "sha256": "1xhkicffmdiy4c22m9qilm09nq9zqfsi9gawq3gflla79avblh4r"
   },
   "stable": {
    "version": [
     0,
     1,
-    1
+    2
    ],
    "deps": [
     "dash",
     "f",
+    "org",
     "queue",
     "s",
     "string-inflection"
    ],
-   "commit": "6d68f52ebd150e035b33dcaa59d9e2aceab69b84",
-   "sha256": "04xz3y3j8k1pv5v6v9wqscqlpmgqi85fs3igrv8c9y0xagild29k"
+   "commit": "80b395b8a0c7fc92290f0d1bfd1b5520ffd415fd",
+   "sha256": "1b918gjzds9jzs0ywfr41wd069l234pshpa9rn8srkzlpj5lac4d"
+  }
+ },
+ {
+  "ename": "citeproc-org",
+  "commit": "2055da5d0628ca3c35b111b5ded56c0f635ca690",
+  "sha256": "06kr5qg0l2389n72vyxmh86sc376hjg4npzkrh42cgb1c2m4psj8",
+  "fetcher": "github",
+  "repo": "andras-simonyi/citeproc-org",
+  "unstable": {
+   "version": [
+    20200615,
+    947
+   ],
+   "deps": [
+    "citeproc",
+    "dash",
+    "f",
+    "org",
+    "org-ref"
+   ],
+   "commit": "342f6531b08f5d789a1ae222f9707f636b1f5e2f",
+   "sha256": "1dc5qkwmfi2jm12297yy14fqbc335qjsdfi2mfgiz8wvs84hyci8"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    4
+   ],
+   "deps": [
+    "citeproc",
+    "dash",
+    "f",
+    "org",
+    "org-ref"
+   ],
+   "commit": "a35655c55bbdc3f8c0571c8a8f14a33f9eac330b",
+   "sha256": "1n9k25qsxjv50nkk0v7cfqwdb0y89bid8lprfzzn8zi9b7gyly6x"
   }
  },
  {
@@ -10751,6 +10897,30 @@
   }
  },
  {
+  "ename": "clang-capf",
+  "commit": "c47e1fd9d5a4b85f08676742a9b36b74a2ac8fb6",
+  "sha256": "11qfh8c2kjcy715yyp0sywla74z92qn5j1z9wp4fv5p45w6b6112",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~zge/clang-capf",
+  "unstable": {
+   "version": [
+    20200813,
+    2056
+   ],
+   "commit": "630ab057ed614d142ac08bb3a44a869a81cb591a",
+   "sha256": "0xrxk4b903ayymrngf2swk8d7ic8np1dy8zp9hg3wjlibsmagak0"
+  },
+  "stable": {
+   "version": [
+    1,
+    2,
+    0
+   ],
+   "commit": "630ab057ed614d142ac08bb3a44a869a81cb591a",
+   "sha256": "0xrxk4b903ayymrngf2swk8d7ic8np1dy8zp9hg3wjlibsmagak0"
+  }
+ },
+ {
   "ename": "clang-format",
   "commit": "be27e728327016b819535ef8cae10020e5a07c2e",
   "sha256": "0v8nvgjadzmsz088q6cgli5s99z45bz9qb508qln1yips42zn258",
@@ -11004,8 +11174,8 @@
     "seq",
     "yasnippet"
    ],
-   "commit": "8259791e054382457b87d1f78061b5e3ce948907",
-   "sha256": "0vn32b8vhlp75vj4schy8blmiddc6dn92jl4f935yd4sg7pm04cj"
+   "commit": "97095682580bbc5bfebcbc5349f03f5bd7121c96",
+   "sha256": "1dgksqzdln8cv0hyq273ikfk2bmk16rwvkiyscqsxzi8jdv8cdck"
   },
   "stable": {
    "version": [
@@ -11062,6 +11232,26 @@
   }
  },
  {
+  "ename": "cljr-ivy",
+  "commit": "c34d8d2edc5e5d213aef33255a9214ff87ece1bf",
+  "sha256": "03afriiwswaw0canv4wphqr4kfrrpkclcczcx5ab0w3pm4bax1zl",
+  "fetcher": "github",
+  "repo": "wandersoncferreira/cljr-ivy",
+  "unstable": {
+   "version": [
+    20200602,
+    1607
+   ],
+   "deps": [
+    "cl-lib",
+    "clj-refactor",
+    "ivy"
+   ],
+   "commit": "921ba65d0db7cda4edcd690c708946125b874a70",
+   "sha256": "12g74sfjw6siix8hvfbb0a7y8cxzxi1mb22sw8wih56bcv1987wl"
+  }
+ },
+ {
   "ename": "cljsbuild-mode",
   "commit": "d801a2e0ba5ae7c65b5d312fbf41261278a8b1ba",
   "sha256": "0qvb990dgq4v75lwnd661wxszbdbhlgxpsyv4zaj6h10gp1vi214",
@@ -11161,6 +11351,70 @@
   }
  },
  {
+  "ename": "clojure-essential-ref",
+  "commit": "8ecff309816256bdc09163aee6ca06b4292d98b7",
+  "sha256": "0vl4lz9wmymkai7yhv0gqiky5czmzd7yz9g9czfp7lhfh1hpgbkg",
+  "fetcher": "github",
+  "repo": "p3r7/clojure-essential-ref",
+  "unstable": {
+   "version": [
+    20200619,
+    1653
+   ],
+   "deps": [
+    "cider"
+   ],
+   "commit": "3787300a2f6100d1a20b1259b488256f3a840fa6",
+   "sha256": "08r5whs39r2fscicjzvmdfj7s7f49afhiz4i2i05ps1f1545569d"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    1
+   ],
+   "deps": [
+    "cider"
+   ],
+   "commit": "e05d61b96f6469a93f52015b7ad5deadf616139e",
+   "sha256": "118zkdx118p1mzgq1szschl40qmb2cb5vw9jb9fhpimqdrlq53md"
+  }
+ },
+ {
+  "ename": "clojure-essential-ref-nov",
+  "commit": "11341af9478acdaec9d5e0b5011269ac7c0ada86",
+  "sha256": "1740mmv8qh8gsnzvvvfdxsp676ss8b6filidbxq6b6qz2jyb7fzw",
+  "fetcher": "github",
+  "repo": "p3r7/clojure-essential-ref",
+  "unstable": {
+   "version": [
+    20200719,
+    608
+   ],
+   "deps": [
+    "clojure-essential-ref",
+    "dash",
+    "nov"
+   ],
+   "commit": "3787300a2f6100d1a20b1259b488256f3a840fa6",
+   "sha256": "08r5whs39r2fscicjzvmdfj7s7f49afhiz4i2i05ps1f1545569d"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    1
+   ],
+   "deps": [
+    "clojure-essential-ref",
+    "dash",
+    "nov"
+   ],
+   "commit": "e05d61b96f6469a93f52015b7ad5deadf616139e",
+   "sha256": "118zkdx118p1mzgq1szschl40qmb2cb5vw9jb9fhpimqdrlq53md"
+  }
+ },
+ {
   "ename": "clojure-mode",
   "commit": "5e3cd2e6ee52692dc7b2a04245137130a9f521c7",
   "sha256": "11n0rjhs1mmlzdqy711g432an5ybdka5xj0ipsk8dx6xcyab70np",
@@ -11168,20 +11422,20 @@
   "repo": "clojure-emacs/clojure-mode",
   "unstable": {
    "version": [
-    20200419,
-    559
+    20200813,
+    639
    ],
-   "commit": "da9f1ec717dac1194404b4a4562dba6bd9a4ee3a",
-   "sha256": "0v4q031rvy34llbxhksqlzf3ign4q5xcwf6b3fzblb9k5nz2b3hr"
+   "commit": "84ed16c5ddb6561620886485e20669d0c81f88a1",
+   "sha256": "1kdm9dfj3qifwylj9j2x12xwxzrkmyp4pvph7bvwfrv65jp4r58j"
   },
   "stable": {
    "version": [
     5,
-    11,
+    12,
     0
    ],
-   "commit": "721287c7a756678d5fe8fa0dcb2d8dc846d239a2",
-   "sha256": "1x1yszp6waa778ki6sw66w1pzcz389wd01gkcldfxxnd7z89ad5d"
+   "commit": "3dc12d3a54ab17dee2db36c8fc48eb9598a17c5e",
+   "sha256": "14ipfy9ji39pnb9x7bzjp8lyqyxk168fx017m823j7a2g9i0sgp3"
   }
  },
  {
@@ -11198,20 +11452,20 @@
    "deps": [
     "clojure-mode"
    ],
-   "commit": "da9f1ec717dac1194404b4a4562dba6bd9a4ee3a",
-   "sha256": "0v4q031rvy34llbxhksqlzf3ign4q5xcwf6b3fzblb9k5nz2b3hr"
+   "commit": "84ed16c5ddb6561620886485e20669d0c81f88a1",
+   "sha256": "1kdm9dfj3qifwylj9j2x12xwxzrkmyp4pvph7bvwfrv65jp4r58j"
   },
   "stable": {
    "version": [
     5,
-    11,
+    12,
     0
    ],
    "deps": [
     "clojure-mode"
    ],
-   "commit": "721287c7a756678d5fe8fa0dcb2d8dc846d239a2",
-   "sha256": "1x1yszp6waa778ki6sw66w1pzcz389wd01gkcldfxxnd7z89ad5d"
+   "commit": "3dc12d3a54ab17dee2db36c8fc48eb9598a17c5e",
+   "sha256": "14ipfy9ji39pnb9x7bzjp8lyqyxk168fx017m823j7a2g9i0sgp3"
   }
  },
  {
@@ -11284,30 +11538,30 @@
   "repo": "clojure-emacs/clomacs",
   "unstable": {
    "version": [
-    20191201,
-    200
+    20200808,
+    2347
    ],
    "deps": [
     "cider",
     "s",
     "simple-httpd"
    ],
-   "commit": "88b8fc6d1b7105adae009578ef24fedaf157f341",
-   "sha256": "13rhnncqj8666g2v7493i8xh79mczjrmg24p12knzhkslxdnv9hp"
+   "commit": "ada167954911bf1631ea73537b4b496f35f99a73",
+   "sha256": "0gc4c97s6y7al1777zmzvq1n30i532b4v8k2p7i71bzzijr97fml"
   },
   "stable": {
    "version": [
     0,
     0,
-    4
+    5
    ],
    "deps": [
     "cider",
     "s",
     "simple-httpd"
    ],
-   "commit": "292c8f5370a2c74094da46ede990b5e7cc8b55b8",
-   "sha256": "1rv57wqr09vl0caz4wjr0kqvhgvl5y1x6818v8m55rm2z8rim11i"
+   "commit": "ada167954911bf1631ea73537b4b496f35f99a73",
+   "sha256": "0gc4c97s6y7al1777zmzvq1n30i532b4v8k2p7i71bzzijr97fml"
   }
  },
  {
@@ -11318,26 +11572,26 @@
   "repo": "emacscollective/closql",
   "unstable": {
    "version": [
-    20191229,
-    1814
+    20200704,
+    2124
    ],
    "deps": [
     "emacsql-sqlite"
    ],
-   "commit": "1e78f96dc976badb59067c986f7766cce89405cc",
-   "sha256": "03nknirj5jd3yf842amb274269fyiinr325g1x2snf1zgqfm3csn"
+   "commit": "c864c1fadfea4a05fff29cb60891b7a32ac88c78",
+   "sha256": "06j0sc6dx8f34wc8i7dzkp8jwvwnrpnl8i93vpc1qw0ih0jwa2zh"
   },
   "stable": {
    "version": [
     1,
     0,
-    1
+    4
    ],
    "deps": [
     "emacsql-sqlite"
    ],
-   "commit": "92f8f2dba684b7c9cc60821aa5668d336544ab99",
-   "sha256": "0q8val0v4hryr0miliqjf38y4aybrihzncr0p1mwba861jlpy86n"
+   "commit": "c864c1fadfea4a05fff29cb60891b7a32ac88c78",
+   "sha256": "06j0sc6dx8f34wc8i7dzkp8jwvwnrpnl8i93vpc1qw0ih0jwa2zh"
   }
  },
  {
@@ -11501,17 +11755,17 @@
     20190710,
     1319
    ],
-   "commit": "135b5835a42d6e3c7efb85f80f3fe0885d45d644",
-   "sha256": "18mgkn5cy14f5l4qajhdphxvw66hhhw2yf12qfvpd2n5bx3b8dcs"
+   "commit": "92d724903192b98e42cc1048ca587207aa20043f",
+   "sha256": "1ig5wjiq31rgf57gkf37d2rzx4qkkif997w1dfllwc4w3svwykp0"
   },
   "stable": {
    "version": [
     3,
-    17,
-    2
+    18,
+    1
    ],
-   "commit": "615129f3ebd308abeaaee7f5f0689e7fc4616c28",
-   "sha256": "1akclhrc9gx0asvmwcsbvw90wgazlyqd044wql7qj6vibv47cdjd"
+   "commit": "63a65baf4c343c73b2142078ef0045d3711dea1d",
+   "sha256": "1a3r119qca4sg83zchnsnmmq9k7ad8pljl5s24k00xbyyfs1wm7k"
   }
  },
  {
@@ -11525,8 +11779,8 @@
     20171121,
     1115
    ],
-   "commit": "d3f408f226eff3f77f7e00dd519f4efc78fd292d",
-   "sha256": "1r8a3arpkkn91k619z4b6ywnq15glc4n1ji33l0q2m59f5sfk8mp"
+   "commit": "a7cf9e4c01c4683e14b6942cc5cc5e8cddc98721",
+   "sha256": "0zff8705vllkmm112qm58q1af0x1rcra5yw4fi8m5q97kh0n77vn"
   },
   "stable": {
    "version": [
@@ -11579,11 +11833,11 @@
   "repo": "tumashu/cnfonts",
   "unstable": {
    "version": [
-    20200327,
-    101
+    20200819,
+    543
    ],
-   "commit": "d741332ad4bcd9a136d5dc4974a050da8ca28888",
-   "sha256": "1f2nrklzvm0b09d1s5rxvzahc32rs5qdqx910a45fj95hlw2w2wc"
+   "commit": "d4d303b0045b682b9e699e63fa3af4dd00daf878",
+   "sha256": "06gcm7wc1ayz0z2fqz3bqyfxqlgbx31z95gwbwjd9x2mqgkp02mh"
   },
   "stable": {
    "version": [
@@ -11868,14 +12122,14 @@
   "repo": "ankurdave/color-identifiers-mode",
   "unstable": {
    "version": [
-    20200129,
-    144
+    20200705,
+    2145
    ],
    "deps": [
     "dash"
    ],
-   "commit": "923ed4789c5ab66369ac4dda7eedb910951684a6",
-   "sha256": "1d502n6bpdscgpqfanax1h0iirgpq8x56vh6bbpzg9i042i3z7ls"
+   "commit": "dfca97595094fc192a04172d86cb4ba68cab984f",
+   "sha256": "1w9biijvqr7ig7l3j6axbnmdn44xvyj3m8yinx0d6qqyys98hgyj"
   },
   "stable": {
    "version": [
@@ -11961,11 +12215,11 @@
   "repo": "emacs-jp/replace-colorthemes",
   "unstable": {
    "version": [
-    20200315,
-    929
+    20200729,
+    921
    ],
-   "commit": "40464198e7bf2121694a7e6d87588342140a84ff",
-   "sha256": "0fhr0rvfrb9fmbh9zgzxx2c2zl28v16hxmn9jx6k73nsfwpy498j"
+   "commit": "a996eca37f4df726eec95406deb76b538320771a",
+   "sha256": "1fgcd6vdqknqb1s1hwqqspk84a8xnxmrcnlic1j0x558i2yj4l2x"
   },
   "stable": {
    "version": [
@@ -11985,14 +12239,14 @@
   "repo": "purcell/color-theme-sanityinc-solarized",
   "unstable": {
    "version": [
-    20200304,
-    2156
+    20200805,
+    603
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "c688337aaae9f47128a841479e4191858ac147f6",
-   "sha256": "0a16fn7h0yljlgg1scy82w5r6awd7gk6xf1qd83cx8kj2cg7k7vb"
+   "commit": "7ef39ac9d99bfb699903cfc3623521c0ceec7b86",
+   "sha256": "18x1hhq5v9agv2gvragwvxgzxfixfqy8pcbqhi63yqxmx30zlqj1"
   },
   "stable": {
    "version": [
@@ -12011,11 +12265,11 @@
   "repo": "purcell/color-theme-sanityinc-tomorrow",
   "unstable": {
    "version": [
-    20200507,
-    608
+    20200813,
+    333
    ],
-   "commit": "e4e577c24db6ad7f6940a13e1d58418d42ff0c81",
-   "sha256": "0363fi2q4wprnkrdlvvbsib42czsf4fwhy61c6b9bbj8fvmflzj8"
+   "commit": "b7e33d1ccb10a93d6a0393c43400435b70a48689",
+   "sha256": "1qg5wz04d7kq63zsjbhdcxn96j6x84hsbj7vbx6d051yql6l3m8s"
   },
   "stable": {
    "version": [
@@ -12052,11 +12306,11 @@
   "url": "https://git.sr.ht/~lthms/colorless-themes.el",
   "unstable": {
    "version": [
-    20200325,
-    1307
+    20200812,
+    656
    ],
-   "commit": "2b4c341640c8191a39e4bc28d6cd04c7d6dcbb37",
-   "sha256": "0ni9cnrv464fk840i1ll241kzkiy1zc6nfrbdv3ciixxdxbshxbn"
+   "commit": "736f7a105535901b4783d19534e7855920e25115",
+   "sha256": "1wi7wxiyk0g3k0l60hdmcyvvxr1kaapbkxvkknwd9qvdsji0ng73"
   },
   "stable": {
    "version": [
@@ -12099,11 +12353,11 @@
   "repo": "jordonbiondo/column-enforce-mode",
   "unstable": {
    "version": [
-    20171030,
-    1900
+    20200605,
+    1933
    ],
-   "commit": "2341a2b6a33d4b8b74c35062ec9cfe1bffd61944",
-   "sha256": "0rcxb7daxxrp5f1i5cbv25viwawbbsn4ij1mnlclp5wz7ilcy2rs"
+   "commit": "14a7622f2268890e33536ccd29510024d51ee96f",
+   "sha256": "1vxra5vk78yns2sw89m41bggczqg1akq6xvzfs9kylhkg5yz3g7g"
   }
  },
  {
@@ -12114,28 +12368,26 @@
   "repo": "jcs-elpa/com-css-sort",
   "unstable": {
    "version": [
-    20190723,
-    1714
+    20200717,
+    338
    ],
    "deps": [
-    "cl-lib",
     "s"
    ],
-   "commit": "b0491d5340c5f5c516b44aa7bfef6f6cf2998484",
-   "sha256": "0d6pxwi5mbb98zzx3j55w221541674d69pxmf55yji6hly8yqavv"
+   "commit": "e12f77ad3a17a0d599ca802497086cd9155d451b",
+   "sha256": "1i0pg3hzw87drvfivr1355h3rfp409ak57bff9la8qlx1llynv5y"
   },
   "stable": {
    "version": [
     0,
     0,
-    5
+    6
    ],
    "deps": [
-    "cl-lib",
     "s"
    ],
-   "commit": "e3c6a3a88c8f7e3ce7a5c6756b47a7aba7ffe149",
-   "sha256": "0c3pcgr95nhf2yx66hxiwwl6k2fqz8cpmr0y0fxzahkmvc4c9zi6"
+   "commit": "e12f77ad3a17a0d599ca802497086cd9155d451b",
+   "sha256": "1i0pg3hzw87drvfivr1355h3rfp409ak57bff9la8qlx1llynv5y"
   }
  },
  {
@@ -12163,6 +12415,21 @@
   }
  },
  {
+  "ename": "comby",
+  "commit": "1173462e86ec0518cd6bab241fea3fe0342c4b41",
+  "sha256": "0wipqvdsmjhg4kvqcgarix955m9v8fs1lccs002f03rz4ckfdpxf",
+  "fetcher": "github",
+  "repo": "s-kostyaev/comby.el",
+  "unstable": {
+   "version": [
+    20200629,
+    140
+   ],
+   "commit": "928b8b8959a2556aba5526f2a25801341eb59dc3",
+   "sha256": "1f0155fyvh1m20ahl6wqask4qx6jp3lfwxj894cda9j4y8gnr5iq"
+  }
+ },
+ {
   "ename": "comint-hyperlink",
   "commit": "3c3bc7c897bfc5fafcda33d9837e6f3ff4da3692",
   "sha256": "17fvg00r2wjwxa747v8yvgv70rd287crhhxxmp6nchfklw408ai6",
@@ -12248,8 +12515,8 @@
     "f",
     "s"
    ],
-   "commit": "c93985dc318fe89e5a29abc21d19fb41e2fd14d2",
-   "sha256": "0mlabiraagqwl17payils5589fr2mivvkzrfic6ndsipryab6rfc"
+   "commit": "9ba1456b0a389a2f7b42b6f42a4208ddd87ce609",
+   "sha256": "1kj7w8akrybr1y30lbhax8dnk5m4fg365ifxlyw766v69g5x7zd2"
   },
   "stable": {
    "version": [
@@ -12394,14 +12661,14 @@
   "repo": "ddoherty03/commify",
   "unstable": {
    "version": [
-    20161106,
-    2334
+    20200812,
+    1241
    ],
    "deps": [
     "s"
    ],
-   "commit": "78732c2fa6c1a10288b7436d7c561ec9ebdd41be",
-   "sha256": "1kb3cbjp69niq8ravh273dma0mnkf1v2ja372ahxfsq1janrkkm6"
+   "commit": "92514f071c667653f146629c0aec0ab4d3b78226",
+   "sha256": "1n6jpkhq0kncsszkkpfi923zq75h3d032vwmlz7pp8szs93w2308"
   }
  },
  {
@@ -12442,20 +12709,20 @@
   "repo": "company-mode/company-mode",
   "unstable": {
    "version": [
-    20200510,
-    1614
+    20200818,
+    1753
    ],
-   "commit": "1c7a87283146f429c5076e8ea0a559556a4d4272",
-   "sha256": "0dvvdyg8fc6jzcl1hgrh0cr3nz4vyw5i9xz5w3mc3mn7fixbdcr3"
+   "commit": "54f60ef523878c4d332f29df380f36cf2f165935",
+   "sha256": "08lbjvm97fh1bm5201ncbnr5b1456y9mwf6yhrrhg1rjqvcca74q"
   },
   "stable": {
    "version": [
     0,
     9,
-    12
+    13
    ],
-   "commit": "490d3e4e7ef3fbc90fb3e8747f902bf839a924cc",
-   "sha256": "0c31amc6gyfkmb1ii6mm56c75za1yxkj2iyhrjc45nn2mrh7yj7a"
+   "commit": "656ad10670512e135a0a5881f127bb7a789ef8ca",
+   "sha256": "1j5f8kqv36r18pg09a6139q7a0a39xdnc5nf6sv3c0pw3yfw1szn"
   }
  },
  {
@@ -12557,16 +12824,16 @@
   "repo": "alexeyr/company-auctex",
   "unstable": {
    "version": [
-    20180725,
-    1912
+    20200529,
+    1835
    ],
    "deps": [
     "auctex",
     "company",
     "yasnippet"
    ],
-   "commit": "48c42c58ce2f0e693301b0cb2d085055410c1b25",
-   "sha256": "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"
+   "commit": "9400a2ec7459dde8cbf1a5d50dfee4e300ed7e18",
+   "sha256": "0x8qc63zn126hspcblwlihxfzs8kvcjb6cpj28ahsb0117j2i789"
   }
  },
  {
@@ -12616,16 +12883,16 @@
   "repo": "sebastiencs/company-box",
   "unstable": {
    "version": [
-    20200511,
-    401
+    20200818,
+    738
    ],
    "deps": [
     "company",
     "dash",
     "dash-functional"
    ],
-   "commit": "452f083f6c11793a3723224bce42898a2bedc0e1",
-   "sha256": "07il7z52ywvkqy5zpkvzsaxsjqx8dqgd91cpba05vywpsl3lis30"
+   "commit": "20384f0e382c063173b9d863344b1b23bc1e4954",
+   "sha256": "0l66ajzh1x0gazmv9nzgcsy72kyja3yq4gmzgzpkgin5dxms33k0"
   }
  },
  {
@@ -12686,8 +12953,8 @@
   "repo": "cpitclaudel/company-coq",
   "unstable": {
    "version": [
-    20200130,
-    2058
+    20200729,
+    401
    ],
    "deps": [
     "cl-lib",
@@ -12696,8 +12963,8 @@
     "dash",
     "yasnippet"
    ],
-   "commit": "f9dba9ddff7da99a93d8a6e26d9b1d813bc96b2f",
-   "sha256": "1hl8gr8afx2i5bia7vq3vn4shbaz8fps3h30ldvq141kfvmcp8jm"
+   "commit": "b096cb528de1e0bb31cc1059d0bd698b98a6cc6a",
+   "sha256": "0m70w4f0kpvk97nnnp1bfk191dhipv418fmcfqjw90sajknyhq6m"
   },
   "stable": {
    "version": [
@@ -12724,26 +12991,26 @@
   "repo": "redguardtoo/company-ctags",
   "unstable": {
    "version": [
-    20200407,
-    803
+    20200603,
+    438
    ],
    "deps": [
     "company"
    ],
-   "commit": "b159e45b38226e046cf6fb7d08a0cf864ebbf772",
-   "sha256": "0h0k06c9fabyz6akka1bpwkz69wzl7ajcm0p108xdf5lymc75v5h"
+   "commit": "ba4d2577fbbe5ad7bb978838e3e3177f8a56e8f8",
+   "sha256": "0cy48my9d02v7wa40dw5x6djyjjacddj9p0pgdvr1rg70lqxii45"
   },
   "stable": {
    "version": [
     0,
     0,
-    3
+    4
    ],
    "deps": [
     "company"
    ],
-   "commit": "3d21eaa511b5f0ca55205f203d28fd10ea1d3b39",
-   "sha256": "0lj5gkj2dl0c7sva8bi3bng2gm90sjq15g7w8r9nz70666szdr1i"
+   "commit": "ba4d2577fbbe5ad7bb978838e3e3177f8a56e8f8",
+   "sha256": "0cy48my9d02v7wa40dw5x6djyjjacddj9p0pgdvr1rg70lqxii45"
   }
  },
  {
@@ -12860,15 +13127,15 @@
   "repo": "dunn/company-emoji",
   "unstable": {
    "version": [
-    20191226,
-    1915
+    20200612,
+    1902
    ],
    "deps": [
     "cl-lib",
     "company"
    ],
-   "commit": "fc45b56f3e2081d794f243bce705e77d4e29fc06",
-   "sha256": "0r9zcbm3nb3zw5cwrkl098v5b49jbga5404bj7j55g6k4rwkjar2"
+   "commit": "5f2d10623c1e9f547d852cb13c7a391afbda09fb",
+   "sha256": "0b7hfcgmrkmbi138hjfc9jsgh84slw4fcizxss55b9j60xrzsc75"
   },
   "stable": {
    "version": [
@@ -12962,28 +13229,28 @@
   "repo": "jcs-elpa/company-fuzzy",
   "unstable": {
    "version": [
-    20190812,
-    204
+    20200712,
+    49
    ],
    "deps": [
     "company",
     "s"
    ],
-   "commit": "2af24f053465ab370566a49c231d541ca9509850",
-   "sha256": "0ki049jpd4xymagaxd4zvnj3bm7d7d797xa1bm8lfi701m2jjlgg"
+   "commit": "af017d00f4576fddee1d386f41c9ccebd7038d9a",
+   "sha256": "1a3317wzilp7z01j34rqg5khr77hqz9nxm930d16225gki98g9q3"
   },
   "stable": {
    "version": [
     0,
-    5,
-    3
+    6,
+    0
    ],
    "deps": [
     "company",
     "s"
    ],
-   "commit": "a97f55b60f427e536e637898d12792154d134aab",
-   "sha256": "1iw1vk1pgdacvfh17n45kk98rxml3f6kxnijmpp7fzz4q07yiv7w"
+   "commit": "af017d00f4576fddee1d386f41c9ccebd7038d9a",
+   "sha256": "1a3317wzilp7z01j34rqg5khr77hqz9nxm930d16225gki98g9q3"
   }
  },
  {
@@ -13226,8 +13493,26 @@
     "lean-mode",
     "s"
    ],
-   "commit": "65b55b1711fb61129312044d5ac7e6a2c2ee245c",
-   "sha256": "1zmw8950qhry2ixk2ng0pg4j0vwx11nvjlrpab9jg6x47ys9j65n"
+   "commit": "6b4377686128d5c2fb55d8fe61b92a9991d40fbd",
+   "sha256": "1zb3igic1i30mfbsx4k2sabhdpl58fsrl5c3fjvqrpn92ixi9vws"
+  }
+ },
+ {
+  "ename": "company-ledger",
+  "commit": "546bc62530136a7fdf3886731e4316c6c8081ead",
+  "sha256": "0y54wbky6jq9r3h4ghpkjywj78hw8k83ri6szph6s8w5m6dkji82",
+  "fetcher": "github",
+  "repo": "debanjum/company-ledger",
+  "unstable": {
+   "version": [
+    20200726,
+    1825
+   ],
+   "deps": [
+    "company"
+   ],
+   "commit": "9fe9e3b809d6d2bc13c601953f696f43b09ea296",
+   "sha256": "08cs8vd2vzpzk71wzcrghn48mzvbk6w2fzlb3if63klhfcfpngc8"
   }
  },
  {
@@ -13288,6 +13573,25 @@
   }
  },
  {
+  "ename": "company-manually",
+  "commit": "a7cdcad45efa0ecb807645c597b6fc3be22899d3",
+  "sha256": "1ws4kgvjz8ff600rw4grgjq7s34233s9616jnyykjfdh18skssmi",
+  "fetcher": "github",
+  "repo": "yanghaoxie/company-manually",
+  "unstable": {
+   "version": [
+    20200709,
+    913
+   ],
+   "deps": [
+    "company",
+    "ivy"
+   ],
+   "commit": "b922318da821fc3cf1d3155f21d543ea8470c881",
+   "sha256": "1s2bv040gg22qzjca39r32cz3qhairnvppk9wdp1hl52i6by57v9"
+  }
+ },
+ {
   "ename": "company-math",
   "commit": "fadff01600d57f5b9ea9c0c47ed109e058114998",
   "sha256": "0chig8k8l65bnd0a6734fiy0ikl20k9v2wlndh3ckz5a8h963g87",
@@ -13353,8 +13657,8 @@
     "company",
     "native-complete"
    ],
-   "commit": "0f290514564d3733b35e4b48d70446c1a6eb4b41",
-   "sha256": "0i8bss7ipwsjfrgfri7d3f9pbpkdbfh8aqz8cawr2wvf4yayk8q5"
+   "commit": "be7ced29c5a86e29c364f19d248634b8b54d0e52",
+   "sha256": "1lyad89byq54fva58njf7wiq2rw3767fxif1ykijirzx7q14ahxd"
   }
  },
  {
@@ -13446,16 +13750,16 @@
   "repo": "org-roam/company-org-roam",
   "unstable": {
    "version": [
-    20200511,
-    743
+    20200711,
+    355
    ],
    "deps": [
     "company",
     "dash",
     "org-roam"
    ],
-   "commit": "674c2bd493f571c5323d69279557a6c18ccbd14e",
-   "sha256": "1x88kvxawbpg4sagi0kh4y7inyhy05dxcg8hl0ih4x40cwxyxrs5"
+   "commit": "1132663bd68022aa7ea005ff53c7c7571890769d",
+   "sha256": "1xk53lyf5sn16cs2gv874sajs5jlsxbxpksbjx9nk8glzrq7r6r3"
   },
   "stable": {
    "version": [
@@ -13492,16 +13796,16 @@
   "stable": {
    "version": [
     2,
-    2,
-    2
+    3,
+    0
    ],
    "deps": [
     "ac-php-core",
     "cl-lib",
     "company"
    ],
-   "commit": "4490d168778a61a4ee8623defe760164cd9745b8",
-   "sha256": "1mkxayqrvz246gxr9wjabsn015hnjq96ys71syb6r4ykjn892a6m"
+   "commit": "8db6d911f2e19bbef5fe915e42c4e12f283bfd41",
+   "sha256": "0yzad3bc48xdmkgcsffdj9zx9j853w1k2p2v586bcfl2vmvvq3zj"
   }
  },
  {
@@ -13519,8 +13823,8 @@
     "company",
     "phpactor"
    ],
-   "commit": "860d7e8784b261ee71deba354d01c3038cd777ab",
-   "sha256": "1d3fijh11g70xhx3a47l75mrp64bvkk7hh9lg83nl30qhn2vrbn3"
+   "commit": "62d2372ea55c0c5fb4e77076988472ebb5d85f24",
+   "sha256": "1sfrdap157zc7lk9vwsy91p813ip8dmazgfjwh7jwzyvcj7dsimc"
   },
   "stable": {
    "version": [
@@ -13537,6 +13841,42 @@
   }
  },
  {
+  "ename": "company-plisp",
+  "commit": "bdd486fdb97b4954a881b6099704704829eb0058",
+  "sha256": "071h99nv6q3lrc6navii0dhzak28j3fqx4mwajyapzlcrrsdpp4i",
+  "fetcher": "gitlab",
+  "repo": "sasanidas/company-plisp",
+  "unstable": {
+   "version": [
+    20200531,
+    1927
+   ],
+   "deps": [
+    "cl-lib",
+    "company",
+    "dash",
+    "s"
+   ],
+   "commit": "fc0b56d2a711340ca3e63119bfe692bb3e8620fb",
+   "sha256": "0xw475spfwq32nn5qz3gk22cggj1f5y245da9030vzi2jfb9vvid"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    1
+   ],
+   "deps": [
+    "cl-lib",
+    "company",
+    "dash",
+    "s"
+   ],
+   "commit": "0e6941e1832faafb2176238339667edd482acd95",
+   "sha256": "1ri022shrwiw10gdydm66c2xya1qxl449r5f8qadals7m4crczp2"
+  }
+ },
+ {
   "ename": "company-plsense",
   "commit": "9cf9d671d81e07c704676c557a9f0d686067ce5c",
   "sha256": "0k8k2vpkknd4nyxzwdj7698lgm5d85byxd49x7w5nrxmh2h1w3c7",
@@ -13584,15 +13924,15 @@
   "repo": "tumashu/company-posframe",
   "unstable": {
    "version": [
-    20200514,
-    2116
+    20200812,
+    410
    ],
    "deps": [
     "company",
     "posframe"
    ],
-   "commit": "4e506d661ed9cd2e4cf16281f3a11009210e9c30",
-   "sha256": "1h6pls6vg593cbmvq2kh5z67jvcyljvwbdxypqqsls5d22hvvbh5"
+   "commit": "4bfb8bccef4b64479f4147de6bf6fbd05df2a67e",
+   "sha256": "0k19gkh8xbap4j1jjqw6lnkp1v2q76fz3ryrns7kvbzmca3y5599"
   },
   "stable": {
    "version": [
@@ -13616,27 +13956,27 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20200404,
-    1550
+    20200716,
+    1414
    ],
    "deps": [
     "company",
     "prescient"
    ],
-   "commit": "3ab7605d997fb8337bf5ded2ad960b98ac0e1fd7",
-   "sha256": "081v916gnjvx2rzjbqkqhdwijz57w7iryxzg71729gwvavs25lsv"
+   "commit": "cc289ba3b0d89f251267ca2b669d01b3afecc530",
+   "sha256": "0xwy2xh55dm4y7wlz2g6fkwf1xyqqjyp0sjb522qgasivknzwa5p"
   },
   "stable": {
    "version": [
-    4,
-    1
+    5,
+    0
    ],
    "deps": [
     "company",
     "prescient"
    ],
-   "commit": "aa3110281a0622fa7b5da115cefb71a319b5b1a0",
-   "sha256": "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3"
+   "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
+   "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
   }
  },
  {
@@ -13666,15 +14006,15 @@
   "repo": "company-mode/company-quickhelp",
   "unstable": {
    "version": [
-    20180525,
-    1003
+    20200714,
+    1611
    ],
    "deps": [
     "company",
     "pos-tip"
    ],
-   "commit": "479676cade80a9f03802ca3d956591820ed5c537",
-   "sha256": "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp"
+   "commit": "5a86731de461142db3b7ca26b4681756edb4b773",
+   "sha256": "0n0pdcgql8hcipwacc60hk4ymp8ry6z9lm4p4wn8gmnb7km023qb"
   },
   "stable": {
    "version": [
@@ -13698,36 +14038,36 @@
   "repo": "jcs-elpa/company-quickhelp-terminal",
   "unstable": {
    "version": [
-    20200309,
-    245
+    20200627,
+    908
    ],
    "deps": [
     "company-quickhelp",
     "popup"
    ],
-   "commit": "0a7c86258b3069adbeb0889e21c6977390d00f4f",
-   "sha256": "0zbzbm4hchp1a8m0bdcp9d97i0yx3kkhp5vbs0m5pr2h13xdc7vj"
+   "commit": "e18b4cf309e2bbc63995ebc3c1230c8c865dd00e",
+   "sha256": "1ixl54wgynq0zzqr7cxphblwmxx5a9gs28rfyq5c2l499ja4r1k7"
   },
   "stable": {
    "version": [
     0,
-    0,
-    2
+    1,
+    0
    ],
    "deps": [
     "company-quickhelp",
     "popup"
    ],
-   "commit": "344e30202fb38e1947b8b17f403bb7b2208936fe",
-   "sha256": "1gzmx8zz93261m9kks2hdgdhfs9vz8gsdxx5xkldbnz4g1wbmh2a"
+   "commit": "e18b4cf309e2bbc63995ebc3c1230c8c865dd00e",
+   "sha256": "1ixl54wgynq0zzqr7cxphblwmxx5a9gs28rfyq5c2l499ja4r1k7"
   }
  },
  {
   "ename": "company-racer",
-  "commit": "c4671a674dbc1620a41e0ff99508892a25eec2ad",
-  "sha256": "0zc8dzvsjz5qsrwhv7x9f7djzvb9awacc3pgjirsv8f8sp7p3am4",
+  "commit": "b38908bc1b759b14173ffb49ddeb040a9892cc0d",
+  "sha256": "180851z4ngpfvib2rhr9dvc1kbqjn4flsibc9r382na8wnmmcx5j",
   "fetcher": "github",
-  "repo": "emacs-pe/company-racer",
+  "repo": "emacsattic/company-racer",
   "unstable": {
    "version": [
     20171205,
@@ -13812,8 +14152,8 @@
     "company",
     "rtags"
    ],
-   "commit": "ed229d2e4070cc07ba76e537e8f5f93835ff0710",
-   "sha256": "1jf1mg2pib2rsrn280j2ywmnqgkr5jwmiaqf252jsb7ndq7p5gcr"
+   "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+   "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
   },
   "stable": {
    "version": [
@@ -13878,8 +14218,8 @@
     "company",
     "solidity-mode"
    ],
-   "commit": "022b3159832384a7dcdc2168809e698600826047",
-   "sha256": "144w84abffbrbb4wflgipndaasx82axf36xm373ybdih4131mi69"
+   "commit": "d166a86b83907e0cfd64c191e9dfce4b44a9843e",
+   "sha256": "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"
   },
   "stable": {
    "version": [
@@ -13947,8 +14287,8 @@
     "company",
     "stan-mode"
    ],
-   "commit": "599a0440086c660e6823622b35058f6d2d6d9637",
-   "sha256": "0mm0kpyihpd55hx14smlm0ayz05zw750fihhqhxqc258y8y73m5y"
+   "commit": "e891a0fcb3a7ab7d9cedbe3deda560134636897e",
+   "sha256": "158afanfaww2jkrz9szap6ys8xhbpz35kd5apkxr1j9j7s8h0iw0"
   },
   "stable": {
    "version": [
@@ -14002,14 +14342,14 @@
   "repo": "juergenhoetzel/company-suggest",
   "unstable": {
    "version": [
-    20180527,
-    1631
+    20200804,
+    1127
    ],
    "deps": [
     "company"
    ],
-   "commit": "e1fa663b48639c76d91d1f5ac3b23215aa3dabc3",
-   "sha256": "0jn7rx4m3121lx6hhabvnfq73vd0rj2364hbvza2myylw4f4qav9"
+   "commit": "7f4efb0e2577b7b34928db3dc71758ab6852f66b",
+   "sha256": "0hlvg11p4xkafqys322ablbld2v7fks924cpc3bs3wcipjjxl3cf"
   }
  },
  {
@@ -14246,11 +14586,11 @@
   "repo": "paldepind/composable.el",
   "unstable": {
    "version": [
-    20190904,
-    701
+    20200604,
+    1156
    ],
-   "commit": "46f82d86c285ceba3e0e46adf993a98cd8816390",
-   "sha256": "14n5sckdaxx291wmj7mnsn06sprpdxf6s44hgxdksv0pvln2m0wx"
+   "commit": "f6262e6d7380ce9d4eacd7127fe0d968325f347d",
+   "sha256": "0a2xfnd54pclh3qm1hwv867dpkhk6wck94092yyzapj7zxnfnr15"
   },
   "stable": {
    "version": [
@@ -14270,35 +14610,32 @@
   "repo": "emacs-php/composer.el",
   "unstable": {
    "version": [
-    20200214,
-    1119
+    20200616,
+    1717
    ],
    "deps": [
-    "cl-lib",
     "f",
     "php-runtime",
-    "request",
     "s",
     "seq"
    ],
-   "commit": "8b4867e30efcdf10c6d9a74822aa281404377818",
-   "sha256": "1605fk7nkzjshn6faxw0ycn45a1wbivpmlmyaxcqzjhmawavky6b"
+   "commit": "7c7f89df226cac69664d7eca5e913b544dc475c5",
+   "sha256": "0iyajdlp95mii462xqy6fqbv5q7vai3ya4jip8433zwwr2pkdbsr"
   },
   "stable": {
    "version": [
     0,
-    1,
-    1
+    2,
+    0
    ],
    "deps": [
     "f",
     "php-runtime",
-    "request",
     "s",
     "seq"
    ],
-   "commit": "d88741009cf7cae0a75e3cc7a19dd9143fcc92f9",
-   "sha256": "0iqm8997pl3pni7a49igj8q6sp37bjdshjwl6d95bqrjkjf9ll08"
+   "commit": "db65d874d762f70558449a01bdac5361bf067c15",
+   "sha256": "1krfdc8xrkxl7mhldxhbf2lddyskvvrykrspkzvvwivc29dl0vmm"
   }
  },
  {
@@ -14357,8 +14694,8 @@
   "repo": "necaris/conda.el",
   "unstable": {
    "version": [
-    20200509,
-    1836
+    20200818,
+    1614
    ],
    "deps": [
     "dash",
@@ -14366,14 +14703,14 @@
     "pythonic",
     "s"
    ],
-   "commit": "8dad784b75a42d1cb6f7a6b8a2c2e39f589727f9",
-   "sha256": "1k1hsargcqciyz48zkdsnhinv8h4fr9786x8s7c63864fbxxby3v"
+   "commit": "9f7eea16e9ad3eb34fe3d1cbd9d6162b8046c2f8",
+   "sha256": "1151bk1fx8y8yql1sg9qqagxcbq57rz85gwnx0z2acfpljb2i7r7"
   },
   "stable": {
    "version": [
     0,
     0,
-    10
+    11
    ],
    "deps": [
     "dash",
@@ -14381,8 +14718,8 @@
     "pythonic",
     "s"
    ],
-   "commit": "8dad784b75a42d1cb6f7a6b8a2c2e39f589727f9",
-   "sha256": "1k1hsargcqciyz48zkdsnhinv8h4fr9786x8s7c63864fbxxby3v"
+   "commit": "78e1aad076f6cefc6aa7cc77d08e174b13050994",
+   "sha256": "02l9m5wx0z865w3cdwbw7c22fmdjbsw4svivqg72nbl7yrq7rv5v"
   }
  },
  {
@@ -14658,16 +14995,16 @@
   "repo": "emacs-php/emacs-auto-deployment",
   "unstable": {
    "version": [
-    20180604,
-    1419
+    20200616,
+    518
    ],
    "deps": [
     "cl-lib",
     "f",
     "s"
    ],
-   "commit": "5af6d5fcc35ddf9050eada96fd5f334bf0661b62",
-   "sha256": "1q9liby1dmwwmg2jz13gx2ld47bpcqb9c7vx4qgky75wb5c2q1xz"
+   "commit": "811c8fe638c5616b6471525421e61a4470be3b52",
+   "sha256": "0j205ky9djlzhgrgjw4562lz2gnpi48las66w7ll8z20zkk4ylnm"
   },
   "stable": {
    "version": [
@@ -14798,20 +15135,27 @@
   "repo": "conao3/cort.el",
   "unstable": {
    "version": [
-    20200330,
-    1641
+    20200812,
+    910
+   ],
+   "deps": [
+    "ansi",
+    "cl-lib"
    ],
-   "commit": "eb94d2a5b3a048a495fb0218b2df9021f8c864f4",
-   "sha256": "0rc1jfqkc05ml41cp8dc8akrxx3ifziyjy1w4vvgpbb5z49m83ky"
+   "commit": "28c8422e84fd545f7a166f1904277b6b3f98398c",
+   "sha256": "06fcwadrn32i19qp30xw65976wplsw3xh2jm0zzsp9g0pir1snxb"
   },
   "stable": {
    "version": [
-    3,
-    0,
-    5
+    7,
+    1,
+    0
+   ],
+   "deps": [
+    "ansi"
    ],
-   "commit": "1df178e296feaf4465967567b1cfdce1dda5a09b",
-   "sha256": "0y23w34dcifk6cxw2kcgwydqdc8hn0mj5129z560fm6iwxd6cgkx"
+   "commit": "a2d5ac5639e43dd73b5dbfa5bd011b7760b126fd",
+   "sha256": "03c223nczpbdkjmq69panhbsq2a0zj20w329jgj4c0zsj8m1a32a"
   }
  },
  {
@@ -14837,14 +15181,14 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20200512,
-    1130
+    20200818,
+    1428
    ],
    "deps": [
     "swiper"
    ],
-   "commit": "04ca16420053a3a6d34a96f0d680dd449c2e5851",
-   "sha256": "1sjaf026zim28c9cld0w5hlk9inp1map70ip99smlk483ib6lbj3"
+   "commit": "dd43ab1217f72948dc5cd669467e33b8b568db44",
+   "sha256": "0h4273gr4h9xkdf5g08ci95jq0n9l1w3vgd1y9452cry1r07ya9l"
   },
   "stable": {
    "version": [
@@ -14943,10 +15287,10 @@
  },
  {
   "ename": "counsel-dash",
-  "commit": "0f8af4d854f972bfed3d2122b4c089f72d8b5f2a",
-  "sha256": "0pzh8ww1p2jb859gdjr5ypya3rwhiyg3c79xhx8filxrqxgjv5fk",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "1ya7mnxlgb1rwr8xlg17mqh25dbkr0v04wccg9l8hwl63m7bfzpv",
   "fetcher": "github",
-  "repo": "nathankot/counsel-dash",
+  "repo": "dash-docs-el/counsel-dash",
   "unstable": {
    "version": [
     20200103,
@@ -14984,26 +15328,26 @@
   "repo": "redguardtoo/counsel-etags",
   "unstable": {
    "version": [
-    20200514,
-    1224
+    20200814,
+    716
    ],
    "deps": [
     "counsel"
    ],
-   "commit": "362fc857a271e509d05fa190212629dc6b0778f2",
-   "sha256": "0c9p6pfnzdbxaib1vgm1npp8lgyw0hpczi210c26x8p9d8xx19lw"
+   "commit": "5ec1e422b47163e17d0d5c1cf732068f93ffc39c",
+   "sha256": "0zwyff7lamlpqd52ifspf6bb78cpanlsy5gccp7ms7mnj82zhfxm"
   },
   "stable": {
    "version": [
     1,
     9,
-    8
+    12
    ],
    "deps": [
     "counsel"
    ],
-   "commit": "362fc857a271e509d05fa190212629dc6b0778f2",
-   "sha256": "0c9p6pfnzdbxaib1vgm1npp8lgyw0hpczi210c26x8p9d8xx19lw"
+   "commit": "9436bdbddc0deba88d97b5f31d62a2c95a52c400",
+   "sha256": "08glszh5y8y078vjrnmasxdfmxiics88hkva4nqq6spl0a0hrn9f"
   }
  },
  {
@@ -15132,14 +15476,14 @@
   "repo": "akirak/counsel-org-capture-string",
   "unstable": {
    "version": [
-    20180816,
-    724
+    20200810,
+    1114
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "0fd5d72397a9268a89dd26de2a6c355f127453ac",
-   "sha256": "19ijjiidxxysvkz9vnsgiymxd7w7zcs5bazn7dmahp5yaprlsjld"
+   "commit": "dbb7d95f99d7910d76ffc2d024580088a34ec444",
+   "sha256": "1pymgwvjiagsx9dh9678x3i8ds1s7l4s182dr2p9rpjiwya48l6x"
   }
  },
  {
@@ -15150,15 +15494,15 @@
   "repo": "akirak/counsel-org-clock",
   "unstable": {
    "version": [
-    20190407,
-    348
+    20200810,
+    1109
    ],
    "deps": [
     "dash",
     "ivy"
    ],
-   "commit": "ddf6b89652e4dbc0be5e8719213e7673c83959f1",
-   "sha256": "1fd8ll7jcfmy2dhhhsqh1l6wqfklma54bqpb4jnxmdn2w9p3ndmn"
+   "commit": "c5f781f241f8b16b7c3b6fb3e56e2938ba1dd87a",
+   "sha256": "10img15z5lfn8ml8d6v5mjf1nr73i8mjn9xy23ydp16n2idshh3d"
   }
  },
  {
@@ -15187,15 +15531,15 @@
   "repo": "ericdanan/counsel-projectile",
   "unstable": {
    "version": [
-    20200430,
-    2133
+    20200522,
+    1131
    ],
    "deps": [
     "counsel",
     "projectile"
    ],
-   "commit": "126e825bbab872b3befd9ef88660571391ebfdc3",
-   "sha256": "0shmndgr1plx8kzppn990ybb2144h8p49v4vd37099y5pj6w3zri"
+   "commit": "77392cbbc42e98fc137b43f1db1b111ba6e2dd75",
+   "sha256": "131pww7lf88az5bsnaza8i60p7xcic271wpdr870zan8z1jh69k3"
   },
   "stable": {
    "version": [
@@ -15237,14 +15581,14 @@
   "repo": "Lautaro-Garcia/counsel-spotify",
   "unstable": {
    "version": [
-    20200326,
-    156
+    20200818,
+    2055
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "5d23a898483de19cb60773492c9846facb8ae281",
-   "sha256": "0k9m8xi9p5w2qnpz0zmdf52ip6viws06qq5rssgvb0cr888iqib2"
+   "commit": "2743ad52a9def53534fd505397fbe1ac49e53015",
+   "sha256": "1xrh06w3pszp4gygwsyjz7b5w2ffqmnh6rh891ydbhysp586hk0v"
   }
  },
  {
@@ -15360,16 +15704,16 @@
   "repo": "AdamNiederer/cov",
   "unstable": {
    "version": [
-    20191004,
-    36
+    20200630,
+    1942
    ],
    "deps": [
     "elquery",
     "f",
     "s"
    ],
-   "commit": "9e6f4af7a07e281913f9f50f20dbbf6f26807563",
-   "sha256": "1w27hi64wcd86pw4ds2w4yldfm0wsk15f9mpcinyb68sj1p7sn9y"
+   "commit": "8b9c7d7f4e53ab3a66cc4d9c88ac07fa57c7a5fe",
+   "sha256": "17msfsl7q78cs065a28z95hgcqvhbddlg9qwgldc1v62lgpqfd7a"
   }
  },
  {
@@ -15393,14 +15737,14 @@
   "stable": {
    "version": [
     0,
-    3
+    5
    ],
    "deps": [
     "cl-lib",
     "ov"
    ],
-   "commit": "c73d984168955ca0f47f44b0464aa45282df42b6",
-   "sha256": "1kn61j91x4r4kc498y2jas5il4pc4qzhkj8392g2qiq5m3lbv4vl"
+   "commit": "6e3c6f2dcb759a76086adeeb1fdfe83e4f082482",
+   "sha256": "1l2vpyv22f77r2nd1bxf4mggmarb621dl7fnskp5hizhc5sfxi4f"
   }
  },
  {
@@ -15494,30 +15838,6 @@
   }
  },
  {
-  "ename": "cpp-capf",
-  "commit": "7a456977e00708d2a0b764553048f3be11d96ebc",
-  "sha256": "0gc5grf9viiqsjwydyv3q3qgjwkla4n54d48dc7m6mq6fl8f3p23",
-  "fetcher": "git",
-  "url": "https://git.sr.ht/~zge/cpp-capf",
-  "unstable": {
-   "version": [
-    20200405,
-    8
-   ],
-   "commit": "0a4fd531e9e47369ff29d9f8583efd0bacd6bc50",
-   "sha256": "0q6kgh2mdx3pr8ywr3fhn96chvrf6zx6xxs2lyfviwmfq2c3pyph"
-  },
-  "stable": {
-   "version": [
-    1,
-    1,
-    0
-   ],
-   "commit": "bee4a7d5e9a52d955325396121a901a7679295b2",
-   "sha256": "0lk6q8jy53iqn9gzh7nd1qpfn5lmsc1h1qn8b6br82v0i1wd96gb"
-  }
- },
- {
   "ename": "cpputils-cmake",
   "commit": "9b84a159e97f7161d0705da5dd5e8c34ae5cb848",
   "sha256": "0fswmmmrjv897n51nidmn8gs8yp00595g35vwjafsq6rzfg58j60",
@@ -15789,14 +16109,14 @@
   "repo": "bbatsov/crux",
   "unstable": {
    "version": [
-    20181108,
-    827
+    20200817,
+    1534
    ],
    "deps": [
     "seq"
    ],
-   "commit": "903db7b1a2052f4959d934cae26ec40a3f323ed4",
-   "sha256": "15wq0z9mnx60mi9xfkvgfgsfxdbiigwxr0wqabv3n2091dbzfas4"
+   "commit": "139eb6f1504b6885c86c658fd33c6d59bfac0a8c",
+   "sha256": "1889cn6pb8j55mi606nm1r6yywg64xa89s0hfbiksl4gx03yk2ip"
   },
   "stable": {
    "version": [
@@ -15846,8 +16166,8 @@
     20191121,
     1447
    ],
-   "commit": "2428b016243e78a0312cf6b3ba6939e7169a1405",
-   "sha256": "0al65ldsbmm15h4y79i8avk63qq1y7fqzzad8p327z6d42zfm1qj"
+   "commit": "f9e4db16ff9fdc6a296363aa35d19cfb4926e472",
+   "sha256": "1x0lmb48bza2w52s15288hpbipafs87lj5lv0ldd1q4r9yv0i102"
   },
   "stable": {
    "version": [
@@ -15900,11 +16220,11 @@
   "repo": "josteink/csharp-mode",
   "unstable": {
    "version": [
-    20200402,
-    919
+    20200728,
+    1113
    ],
-   "commit": "31124dba6833a4de144ca508edb90d5adfeec209",
-   "sha256": "0jrj2ayna8bzhi441hhszhch3na08iciqnd7fsqrm8xbwlrq7l2x"
+   "commit": "48851778e0f01a2b0395e054e418a1d8a1687a06",
+   "sha256": "0nikm2sn59ichbd3ikyhdn696fqj5ikzh79iniylza8gzmhxgddi"
   },
   "stable": {
    "version": [
@@ -15924,8 +16244,8 @@
   "repo": "hlolli/csound-mode",
   "unstable": {
    "version": [
-    20200402,
-    1509
+    20200518,
+    1546
    ],
    "deps": [
     "dash",
@@ -15933,8 +16253,8 @@
     "multi",
     "shut-up"
    ],
-   "commit": "81bec1a71934a56f677f442e2c22fb6336b366c4",
-   "sha256": "1cxg2c8sz76b3ml8blb4f268xl6ql959p2hi5i4llil4fggw6df2"
+   "commit": "b6e8167c927c400c291daaa46a8aea132834b07c",
+   "sha256": "12k3z7azwbg11gs8sc8j6h0rb3zy3kw19z6l9ynxys4vzm9ln7dm"
   },
   "stable": {
    "version": [
@@ -15959,11 +16279,11 @@
   "repo": "omajid/csproj-mode",
   "unstable": {
    "version": [
-    20191012,
-    49
+    20200801,
+    1732
    ],
-   "commit": "95e797af7cc30d4675247b64496c39b77b82e18e",
-   "sha256": "08cxkvq7k14lixavv7nwi5kmmxqvkgmqr4i46ihsgv7jcmxyy8gx"
+   "commit": "a7f0f4610c976a28c41b9b8299892f88b5d0336c",
+   "sha256": "0j8m7rhkf98zqkg6zydcks6qs4msw6vz51nbqya23hka2wpz7f81"
   }
  },
  {
@@ -16119,19 +16439,19 @@
   "repo": "raxod502/ctrlf",
   "unstable": {
    "version": [
-    20200417,
-    1549
+    20200802,
+    1422
    ],
-   "commit": "0bf26a5688b7f34695310100dc8c28381bfafe34",
-   "sha256": "1rknqa4qj3gfhlxfb8fqhdcy936sr0a2vi89rcqh5izl76zynisr"
+   "commit": "5a13161bb2ef2908dd5a00b3b6aa7b8dacfecd8a",
+   "sha256": "09gd2zi3wvg9vhaxz6y1zii0n8nxhffp9qyjsgswyzaa1j7dzv2i"
   },
   "stable": {
    "version": [
     1,
-    0
+    1
    ],
-   "commit": "41eecedf44f2235ce13e021906c4ce92deddefdc",
-   "sha256": "10gnhafas54zj3z9173h1g7b519ac4i26afclmw3w1pk6qyyb03z"
+   "commit": "b91f88a24c05408757ae9c9b5ce74d46d6ce20d8",
+   "sha256": "1ffcjf0ff0748gqipkklz6jmcj4f3blgzdcax93ql9ws8bmvlsdc"
   }
  },
  {
@@ -16302,6 +16622,21 @@
   }
  },
  {
+  "ename": "currency-convert",
+  "commit": "cc9d610a29376bb1c24f77669ee6a05bcf60023d",
+  "sha256": "1i7hs3c7lwfnp7d9ql6bl5l0s9byfnc3n68gkk57zl5imsfhbgg1",
+  "fetcher": "github",
+  "repo": "lassik/emacs-currency-convert",
+  "unstable": {
+   "version": [
+    20200611,
+    815
+   ],
+   "commit": "a8bd12654c34380b87ac6ffece32f43b723b6f0f",
+   "sha256": "1np43lwrwfwnnff98230ahaqdifiq2nzd361ypsg8cp8qja4zwwi"
+  }
+ },
+ {
   "ename": "cursor-test",
   "commit": "6439f7561cfab4f6f3beb132d2a65e94b3deba9e",
   "sha256": "1c1d5xq4alamlwyqxjx557aykz5dw87acp0lyglsrzzkdynbwlb1",
@@ -16369,19 +16704,19 @@
   "repo": "n3mo/cyberpunk-theme.el",
   "unstable": {
    "version": [
-    20200115,
-    1720
+    20200601,
+    1632
    ],
-   "commit": "07edefdec3956fba9076fe98cdc33df7bf617afc",
-   "sha256": "0swjbc61ii88j4myxfl5inn2j46jpf7giqd1kf0rjdyrc8zmj08h"
+   "commit": "cbd0d7193e69ff9e98262eb06aee3d27667ff5f5",
+   "sha256": "16nd57rwld78brcwx6vjib2v3l9xsiv7bxhbn2kilg1p75m3ngpx"
   },
   "stable": {
    "version": [
     1,
-    21
+    22
    ],
-   "commit": "17f68f8ac70b712d2870ecb6adb3841b992074fa",
-   "sha256": "05mfgr9aj7knn7niadv9p6z3qrfpq2lbbi2wxxx62xywim9maw2y"
+   "commit": "81004fc774d373777d426926fc11abcf1e7ab334",
+   "sha256": "06nff38pcy5rgz13svkajsg0jjk73qy4a8m7p9f76yxcywxlgxlc"
   }
  },
  {
@@ -16443,8 +16778,8 @@
     20190713,
     1339
    ],
-   "commit": "78e3705cca65e1456ce26221690dca74c71735c1",
-   "sha256": "1mr0q76p7yw9wv48qwp66nw95c1k3x2yly1vfvdq3phbb8xr6g4q"
+   "commit": "763531d077d02a4a45c58332b8a8b8300c090678",
+   "sha256": "0q0wjybmasrv04r09linnb3n1m7g7qylaynzmmsdrk59fwzda3c2"
   },
   "stable": {
    "version": [
@@ -16482,25 +16817,25 @@
     20190111,
     2150
    ],
-   "commit": "d6e6de9237bde72e7878f7b1fe0e58fdccd36dd2",
-   "sha256": "0lac5lqina90w8mdjkqa9qk4b52lmh6kibcph1xcjghqlw7agjfn"
+   "commit": "fcfd16c7467c31f255287a73f36cf66b32bc096c",
+   "sha256": "1yscd5q1qqw8xx4ds2pifpiyzhdnx0la5n50mxqjb3hlky7p48wh"
   },
   "stable": {
    "version": [
     0,
     29,
-    17
+    21
    ],
-   "commit": "b648b65ac39291aa546b58e44c8576869c351b66",
-   "sha256": "1kc172hh7nj8vlf781rr8jal4f7nl7dbh6csxj0qz4h4cyxrsl6z"
+   "commit": "976f5483c6df8570f34076ef25af7e7512dd9347",
+   "sha256": "1951kwfnngy2k7m3adqi17rb7f17yrr5n9zpvvmw7vxpfmca66ka"
   }
  },
  {
   "ename": "czech-holidays",
-  "commit": "7224fd77b3d8a37fac2fe0cf832e3487513afd8c",
-  "sha256": "10c0zscbn7pr9xqdqksy4kh0cxjg9bhw8p4qzlk18fd4c8rhqn84",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "0yp04d7czypxd22mvd84n4mgm6f4mfwmbzyfjiiqc7va60bbsis0",
   "fetcher": "github",
-  "repo": "hydandata/czech-holidays",
+  "repo": "chkhd/czech-holidays",
   "unstable": {
    "version": [
     20160113,
@@ -16634,11 +16969,11 @@
   "repo": "rails-to-cosmos/danneskjold-theme",
   "unstable": {
    "version": [
-    20200507,
-    2144
+    20200724,
+    1525
    ],
-   "commit": "06bcd1c00397a528cf8863b08e93e9a4b1032a57",
-   "sha256": "1y3xnya33qszxnn2kyzgk339gfxxq485b2fydhc32ayfav6hjfn7"
+   "commit": "5b458ce976acf948aa101a05994b68baf9b01846",
+   "sha256": "16496dr846whv056xq2y994csr55zjd8906brkav2zjhj7qy0w1r"
   }
  },
  {
@@ -16661,8 +16996,8 @@
     "lcr",
     "s"
    ],
-   "commit": "7411904bfbde25cdb986e001ec682593dcb7c5e3",
-   "sha256": "0dhkp9g1cc1vlfk1fjncl3x3s7zd9a633ya85pjyxl70kky2qhnz"
+   "commit": "c516bc9e8f09e0f928de9a93e82acfb382636f5c",
+   "sha256": "16msp36vflq10w0h1hh6fy7z9gmqzhr61w0xali2jkb203v1pi6d"
   },
   "stable": {
    "version": [
@@ -16690,8 +17025,8 @@
   "repo": "emacs-lsp/dap-mode",
   "unstable": {
    "version": [
-    20200514,
-    1655
+    20200814,
+    1819
    ],
    "deps": [
     "bui",
@@ -16700,15 +17035,16 @@
     "f",
     "lsp-mode",
     "lsp-treemacs",
+    "posframe",
     "s"
    ],
-   "commit": "86fc65d525e30c0249e7ec6acac5e4e55cd7c3e2",
-   "sha256": "1jfrjrbjscjsa52wjvvmhcl4cqrw43wz4f34z8yzsxmsalgpf0nw"
+   "commit": "0c11dd205152f3b8712362e4bc8919def7f312a4",
+   "sha256": "1j7vxf42icl4nsnza91lp8l3lgrhn6y11xi9ql5lji5vfgj94mk6"
   },
   "stable": {
    "version": [
     0,
-    4
+    6
    ],
    "deps": [
     "bui",
@@ -16717,10 +17053,11 @@
     "f",
     "lsp-mode",
     "lsp-treemacs",
+    "posframe",
     "s"
    ],
-   "commit": "6cbf83784788dc2bba85a2baa1492b276252680c",
-   "sha256": "0w0a9x8lp1z05jv50biidj7vh4yfwkzfkmzwv04il028cy509yh0"
+   "commit": "35db94e81c592246675f300aaca4a70966b8a5fc",
+   "sha256": "1d4hdydfk86d4slibigyhwng8wx3vzyap8hp5iv0h7wr6868m4iv"
   }
  },
  {
@@ -16844,11 +17181,11 @@
   "repo": "sjrmanning/darkokai",
   "unstable": {
    "version": [
-    20190603,
-    1919
+    20200614,
+    1452
    ],
-   "commit": "a53815fbfb06604d7f51519c62cc11e507204a70",
-   "sha256": "01jd3y3kr4fplvdv32smbaxqa2dafs8vvp967jma7xm7r1frnbdw"
+   "commit": "5820aeddfc8c869ba840cc534eba776936656a66",
+   "sha256": "1bj7l5sh6nzxcw575kjcscjpjqmwlxhvi30qviqg4d6aymzkgr53"
   }
  },
  {
@@ -16955,11 +17292,11 @@
   "repo": "magnars/dash.el",
   "unstable": {
    "version": [
-    20200426,
-    2244
+    20200803,
+    1520
    ],
-   "commit": "fe9bbc2414af645d255de68cd59cf0edd5d8548b",
-   "sha256": "048yglafray643mbjggcf516rymbckn5ypnkiq390h9bd0hz7qy8"
+   "commit": "b92ab5a39b987e4fe69317b9d9fda452300baf20",
+   "sha256": "0qxjl10883l5xq56d474visrp0m3hapj4qqvrpqnanppx22499mh"
   },
   "stable": {
    "version": [
@@ -17003,21 +17340,21 @@
  },
  {
   "ename": "dash-docs",
-  "commit": "2f597ec52f4bf55a748231751b6e51328e8f6f59",
-  "sha256": "0vms4yr67l95rybvavd34a9gm57j7524swlf1c0rj8fff1wrmhn0",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "0y5mq4cy9swp0xb51n3h57ra0ln3k0i6q2j7sslmwvaxi9a12zkg",
   "fetcher": "github",
-  "repo": "gilbertw1/dash-docs",
+  "repo": "dash-docs-el/dash-docs",
   "unstable": {
    "version": [
-    20190516,
-    1702
+    20200516,
+    1943
    ],
    "deps": [
     "async",
     "cl-lib"
    ],
-   "commit": "111fd9b97001f1ad887b45e5308a14ddd68ce70a",
-   "sha256": "0sckb7z0ylflva212bns7iq9mfnffgjghi0qspsbfwra35zb9xng"
+   "commit": "dafc8fc9f1ddb2e4e39e0b8d066c42d5d7ce8d06",
+   "sha256": "0n6d3mm43gj16v8kjjradcfik93wb89dsqnfcbskb28bvcamafid"
   }
  },
  {
@@ -17028,14 +17365,14 @@
   "repo": "magnars/dash.el",
   "unstable": {
    "version": [
-    20191109,
-    1327
+    20200617,
+    702
    ],
    "deps": [
     "dash"
    ],
-   "commit": "fe9bbc2414af645d255de68cd59cf0edd5d8548b",
-   "sha256": "048yglafray643mbjggcf516rymbckn5ypnkiq390h9bd0hz7qy8"
+   "commit": "b92ab5a39b987e4fe69317b9d9fda452300baf20",
+   "sha256": "0qxjl10883l5xq56d474visrp0m3hapj4qqvrpqnanppx22499mh"
   },
   "stable": {
    "version": [
@@ -17245,26 +17582,26 @@
   "repo": "doublep/datetime",
   "unstable": {
    "version": [
-    20200208,
-    1629
+    20200621,
+    2103
    ],
    "deps": [
     "extmap"
    ],
-   "commit": "0ae7addb2c46133393f59011b2aecc08de49b8d1",
-   "sha256": "1df6c5wsn6nwqvfx11d7x3wkjazri3946fwy0m9i6mx18yac38h0"
+   "commit": "c51eeb6df180f6c7d1676d1c0af78255bb0fdf95",
+   "sha256": "11w32jnkc596ybbhqih5d4rbvqk50cc6yyc9759acnzlqfd188xs"
   },
   "stable": {
    "version": [
     0,
     6,
-    5
+    6
    ],
    "deps": [
     "extmap"
    ],
-   "commit": "4a480b66179f016100a582af170a76cda19c980a",
-   "sha256": "0j7k6157fvzl1395ybnrgcz697h6cjk9v445nnfi7q0l8vylbfvm"
+   "commit": "55297bf409f35dbc4bcd26b458b83e349ed11452",
+   "sha256": "0a3q667pybpmsjkbgf6287jwgpnx8brp5314wb8zbczw6ncygnbi"
   }
  },
  {
@@ -17367,15 +17704,15 @@
   "repo": "matsievskiysv/display-buffer-control",
   "unstable": {
    "version": [
-    20200331,
-    1826
+    20200527,
+    1040
    ],
    "deps": [
     "cl-lib",
     "ht"
    ],
-   "commit": "17c6640a409424ec32fdb6bfd6065562e726bf1f",
-   "sha256": "18mamp8j3lmmcpcyfrwrqppxvyx7zirn30rwp4wndczpyapkwv4n"
+   "commit": "8aa8982e6afbe3820f60c3defbb3c8037e04eebe",
+   "sha256": "1zwxn76zh0ba5pa821g2aaqa1niz2l0g3wvnngspw04fla2scjb4"
   },
   "stable": {
    "version": [
@@ -17398,15 +17735,15 @@
   "repo": "skk-dev/ddskk",
   "unstable": {
    "version": [
-    20200403,
-    1308
+    20200816,
+    1809
    ],
    "deps": [
     "ccc",
     "cdb"
    ],
-   "commit": "11d91b4cce988e15d7c5fc4345535c9d7a92d53b",
-   "sha256": "19fgk6m951q9swr958337a3jk9b4xgvswkc73al6wsdkigygmhji"
+   "commit": "275a831be77573470309a78967734d2b6d10f218",
+   "sha256": "1a25aybavi6p7ijc4rbd8zyzgiim1m2xwm7yqfmsvrfzwgb29xal"
   }
  },
  {
@@ -17417,15 +17754,15 @@
   "repo": "conao3/ddskk-posframe.el",
   "unstable": {
    "version": [
-    20191123,
-    1632
+    20200812,
+    917
    ],
    "deps": [
     "ddskk",
     "posframe"
    ],
-   "commit": "8a37953b37d397ba406bc308eb908bd966d34af6",
-   "sha256": "0qm2hb2m3gqzqblgy3d5krxkjbwyhiivzbjfiq9yygh5v729d3as"
+   "commit": "299493dd951e5a0b43b8213321e3dc0bac10f762",
+   "sha256": "1rsy0wjncxzjhis8jrxpxjh9l9pw0bngg1sb4dj5qvhsgszhawpn"
   },
   "stable": {
    "version": [
@@ -17448,29 +17785,29 @@
   "repo": "Wilfred/deadgrep",
   "unstable": {
    "version": [
-    20200411,
-    652
+    20200803,
+    606
    ],
    "deps": [
     "dash",
     "s",
     "spinner"
    ],
-   "commit": "bdcdf138cd71b0a5a80ca64b3bd68b7355084757",
-   "sha256": "1f0gbl2s6h945h1d4pg6cms3w2jwppqiddy3ja9b02ckcld1c227"
+   "commit": "9cd79e0d5dd6b77abca3e84e17d3e4e2e9aa5695",
+   "sha256": "1xq06af3lib8i2l0619ggzkzf00pb39pk0pd97i6dv7593y82c94"
   },
   "stable": {
    "version": [
     0,
-    8
+    9
    ],
    "deps": [
     "dash",
     "s",
     "spinner"
    ],
-   "commit": "094ad453e8bc0451a2c062d06db3079f003566d2",
-   "sha256": "18prsg8kyngz8f0l9kjhaz23al9fna2naazy324bjj0sn9yiqgd4"
+   "commit": "411a6973580b3503535ba58e405035bde2392903",
+   "sha256": "05xsf2axlxdsv8aivd7qyb0ipf9cp95y9f0sf0kaqpc1rn6i79ps"
   }
  },
  {
@@ -17812,25 +18149,26 @@
   "repo": "liblit/demangle-mode",
   "unstable": {
    "version": [
-    20190528,
-    306
+    20200621,
+    2344
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "06903d731dfde110e10b979dcc7624ef6dbb5ac8",
-   "sha256": "1j0fszql941kmbd3sf3rjynm4g01cgpkq20lvy9ayj3f2cy46ad4"
+   "commit": "697c1dbde93f164eac7ea0dc530d7e8b799272d6",
+   "sha256": "1ycbggyljbm5iawhk6i1cm21a3gzz1javab99c3abprkgmldmd5l"
   },
   "stable": {
    "version": [
     1,
-    3
+    3,
+    2
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "06903d731dfde110e10b979dcc7624ef6dbb5ac8",
-   "sha256": "1j0fszql941kmbd3sf3rjynm4g01cgpkq20lvy9ayj3f2cy46ad4"
+   "commit": "697c1dbde93f164eac7ea0dc530d7e8b799272d6",
+   "sha256": "1ycbggyljbm5iawhk6i1cm21a3gzz1javab99c3abprkgmldmd5l"
   }
  },
  {
@@ -17849,6 +18187,54 @@
   }
  },
  {
+  "ename": "deno-fmt",
+  "commit": "d6c3171a30886ecc4427938d847924023d1171ae",
+  "sha256": "15490s5xx58jc0irras3yaczx9s0v93fp7dnd6pba7zq149nqpy7",
+  "fetcher": "github",
+  "repo": "rclarey/deno-emacs",
+  "unstable": {
+   "version": [
+    20200520,
+    1838
+   ],
+   "commit": "3b193eef576e2c14fdcf350495955e6e8546dddd",
+   "sha256": "19fl389rgi6k8w84ggin54p9lpngwah96fxa6qf86y4rf9r2s9sh"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    1
+   ],
+   "commit": "ccae334361b9f83b687f040bcdfdc2a58c78059f",
+   "sha256": "1fm2ym36gv4p4i27hln706dnwr6rvrkkfgggbcz9rqfbphrsfqyx"
+  }
+ },
+ {
+  "ename": "describe-hash",
+  "commit": "8c6c5cd96acd3deeb86503341dd9cd729e20185e",
+  "sha256": "0a26d46p46fypq3snh52grnjcgp6isb5k4qv2fm2m6ha2n7jdi5a",
+  "fetcher": "github",
+  "repo": "Junker/describe-hash",
+  "unstable": {
+   "version": [
+    20200718,
+    1556
+   ],
+   "commit": "18e69a932d5495c8439571ba8f2d2ee123d434b1",
+   "sha256": "1z2msiqwq7lqvyz6b2szyx1kpb6rv6irvwdcv36519mda0smhjlv"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "commit": "20dbbbea630055b2401f13a55fbb21216960dc46",
+   "sha256": "1mz5951yr27jnncz3c080jri7h3pb1k07i6w7wx5aj54kwpsg1d8"
+  }
+ },
+ {
   "ename": "describe-number",
   "commit": "d5ed9063f7e9f540bc90c1df4e3604d4af9bcfe5",
   "sha256": "0gvriailni2ppz69g0bwnb1ik1ghjkj341k45vllz30j0frp9iji",
@@ -18010,14 +18396,14 @@
   "repo": "psibi/dhall-mode",
   "unstable": {
    "version": [
-    20191006,
-    2324
+    20200716,
+    2147
    ],
    "deps": [
     "reformatter"
    ],
-   "commit": "ef4d33debe224c6ba37e51a29b9dc8b74f20f1c2",
-   "sha256": "1232y2k4l3bsz90pgis78zxmrw7jv09dfaip21yc1w4vpxfyr384"
+   "commit": "484bcf8f78f1183ef45c3b04a362bb73690c6b9b",
+   "sha256": "1wggg8jlzg9rph4jhxp6yiri178rnasbv38838i973kjgqjxrl76"
   }
  },
  {
@@ -18197,14 +18583,14 @@
   "repo": "dgutov/diff-hl",
   "unstable": {
    "version": [
-    20200510,
-    1540
+    20200701,
+    2141
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "ab2f4f0db9b0c3484db837252ce2dc75f4696b1d",
-   "sha256": "1pb1hp79b3r0nn7dclk3x0d0yrvx6nasgzwi1f918k9n7kzz7n4g"
+   "commit": "2281a89a3ddc6616073da6f190dda08d23b18ba6",
+   "sha256": "0lyx0hnc45k2f154p81dyjxrv5r53bwb6nfyhmy5avmp9cqdjd4d"
   },
   "stable": {
    "version": [
@@ -18299,20 +18685,20 @@
   "repo": "retroj/digistar-mode",
   "unstable": {
    "version": [
-    20200322,
-    2109
+    20200819,
+    1316
    ],
-   "commit": "567fff3933f80f00f53610e7b08f75bb636b12c0",
-   "sha256": "0252lhkv2r8gy4512frhdh381xrf64nspvfm2hp7bkhz47dlrs7y"
+   "commit": "7f89372f27eff9e4db55bcf39f9cce3693d95bb2",
+   "sha256": "0s9q9f9bqr4w9ll0im65h95hxki3svanlikwxgq6m7p493s1q5j0"
   },
   "stable": {
    "version": [
     0,
-    6,
-    1
+    9,
+    0
    ],
-   "commit": "8b350b7a143219b3f927cb3a1aeb16a299363f05",
-   "sha256": "1sxfzirl8kgzmq8l9l868yl92mz1r8yk58fnxf7p6z4y0pdlcqfg"
+   "commit": "343de0e0fe408f422a32e1bda22cafc2cc9900bb",
+   "sha256": "1cg38x7zd1n9zqsyg47famss91nqs7giqpgsi5qy10zp8y3i3l2c"
   }
  },
  {
@@ -18448,20 +18834,20 @@
   "repo": "jcs-elpa/diminish-buffer",
   "unstable": {
    "version": [
-    20190921,
-    1647
+    20200712,
+    1355
    ],
-   "commit": "0b1262f947b3ce03dca17879caec808a7d091bf4",
-   "sha256": "0yrzp7jdw04hj3ag3379l6kb9vpd1vcvqqf4z5yb3i28b5d7s136"
+   "commit": "2ef1e03458b9528a737814546aaee66067db649e",
+   "sha256": "0xlbgxl44iyffpg5r7md3a3l1b7gdj1vsfajww8g3rsna7d7n2wp"
   },
   "stable": {
    "version": [
     0,
     0,
-    3
+    7
    ],
-   "commit": "e137baa5e258a7938c713253fc9cc63f8674f841",
-   "sha256": "03068nyfb3cz0lz8z3qcwjlsvqaw9dfg3g8w13gmpwsmxaxlbv3i"
+   "commit": "cef452767c16c564dabc819b234fd3236fa97a51",
+   "sha256": "1hz3b44pbsy6ybicjs6i1fm2lai1ccxk46dk6fyd5bcb66s2lxzy"
   }
  },
  {
@@ -18554,8 +18940,8 @@
     20181228,
     1422
    ],
-   "commit": "09dbb769fe02f546da470369a12468ab4a0cceb2",
-   "sha256": "0j2dz4vy4i22185hhlwg2kprpis97xb12qvfdhvdcnz2vwy61sxa"
+   "commit": "52ce4ac88fa39a0ebdf732435fd831ea9a8d0764",
+   "sha256": "00br8f8rw0rrzmi3nvacwn14d122jw243z1izlsm8h8q95hh8f6l"
   },
   "stable": {
    "version": [
@@ -18741,8 +19127,8 @@
   "repo": "conao3/dired-git.el",
   "unstable": {
    "version": [
-    20200130,
-    743
+    20200527,
+    732
    ],
    "deps": [
     "all-the-icons",
@@ -18750,8 +19136,8 @@
     "async-await",
     "ppp"
    ],
-   "commit": "11938721f7202aa784cc493027e3a0ec2c0d39b5",
-   "sha256": "1b5vc9hc26cs1dq7lmvm5gly4h6ahpp0dnlbxi8p4mza12yhnrwi"
+   "commit": "82c93bdb2fe392b122f79d2e425c632f1c69ede3",
+   "sha256": "134f97zk7q2fvqphfgbjdbwlgrrnq51v0zrv6aw8c8n7fln5ap93"
   }
  },
  {
@@ -18881,6 +19267,30 @@
   }
  },
  {
+  "ename": "dired-lsi",
+  "commit": "b38502c7c37658b369ae004e1ce8a21c16d9e6de",
+  "sha256": "1q84krip2814b726ni4q2c8mhqqhr39wgvi6881mg96h624v9bxm",
+  "fetcher": "github",
+  "repo": "conao3/dired-lsi.el",
+  "unstable": {
+   "version": [
+    20200812,
+    929
+   ],
+   "commit": "0f4038c8b47f6cfc70f82062800700c14c9912c2",
+   "sha256": "1bb46cla9pa4697njyqlycjjxf63i0nsxppg9sb0762xsashyz9s"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "commit": "8170d7711254af18cbf1397d681fd331363a17d8",
+   "sha256": "1wgvd229cirfgn2vkjqwam4gnhs7jnp05c73vh8sckrzs3z51zc9"
+  }
+ },
+ {
   "ename": "dired-narrow",
   "commit": "8994330f90a925df17ae425ccdc87865df8e19cd",
   "sha256": "1rgqiscbizalh78jwc53zbj599dd13a6vzdgf75vzllc1w7jsg6d",
@@ -18919,6 +19329,36 @@
   }
  },
  {
+  "ename": "dired-posframe",
+  "commit": "33ce7b7ad21c774ce7f1222af5a7d87219072fc1",
+  "sha256": "0jzbkafv0hv107412szs777ni3zxpn8fwlr5xm8pb89q3q5v7bcx",
+  "fetcher": "github",
+  "repo": "conao3/dired-posframe.el",
+  "unstable": {
+   "version": [
+    20200817,
+    420
+   ],
+   "deps": [
+    "posframe"
+   ],
+   "commit": "1a21eb9ad956a0371dd3c9e1bec53407d685f705",
+   "sha256": "0k633fz5gccza5l3dydn55yg4r1a50bgcmxwxn89qc7cd8dck75v"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "deps": [
+    "posframe"
+   ],
+   "commit": "1a21eb9ad956a0371dd3c9e1bec53407d685f705",
+   "sha256": "0k633fz5gccza5l3dydn55yg4r1a50bgcmxwxn89qc7cd8dck75v"
+  }
+ },
+ {
   "ename": "dired-quick-sort",
   "commit": "4d278178128deb03a7b1d2e586dc38da2c7af857",
   "sha256": "01vrk3wqq2zmcblyp9abi2lvrzr2a5ca8r8gjjnr5223037ppl3l",
@@ -18993,11 +19433,11 @@
   "repo": "Vifon/dired-recent.el",
   "unstable": {
    "version": [
-    20191004,
-    1500
+    20200712,
+    716
    ],
-   "commit": "5c799f96da08a0a3200cb5f609baf6c184f558ea",
-   "sha256": "0kc97v80rh10ksfw49pp551ay0b1apwi6ba66rwbyix50d7drimw"
+   "commit": "860e70b15983ac7164648de8148a529bdcdb8833",
+   "sha256": "1558cdinig8kx2hx2hkl3zxk001ijx53n5rjdm3367wllp0icyzf"
   }
  },
  {
@@ -19077,14 +19517,14 @@
   "repo": "jojojames/dired-sidebar",
   "unstable": {
    "version": [
-    20200409,
-    801
+    20200711,
+    2031
    ],
    "deps": [
     "dired-subtree"
    ],
-   "commit": "6e569c851418890c21fd37d03a62f85343aa0900",
-   "sha256": "0jxljpmzncbh9xb22y4xr9bzcxwijy68pn8chqsvqmivss5py7n9"
+   "commit": "da77919081d9a4e73c2df63542353319381e4f89",
+   "sha256": "05h56wdl2xvc8davnx83ypg20fl7wlks97cafa4r2yf141xjc05h"
   },
   "stable": {
    "version": [
@@ -19200,8 +19640,8 @@
     20191227,
     2028
    ],
-   "commit": "83567d00affce66a4e501563eddd0bd436ac48d0",
-   "sha256": "11xkvywcfv27gr0dpgprmmnjqfxmxdmcpa2kq0vqnxrblg6ijwbr"
+   "commit": "cd052dfef602fe79d8dfbcf9f06e6da74412218b",
+   "sha256": "1zhnr4wkb0gifhf1gfssipanifaiixvz6wqlmscxyp7hdm8xjvad"
   },
   "stable": {
    "version": [
@@ -19243,14 +19683,14 @@
   "repo": "wbolster/emacs-direnv",
   "unstable": {
    "version": [
-    20200319,
-    2357
+    20200529,
+    1305
    ],
    "deps": [
     "dash"
    ],
-   "commit": "1daf479b9b7600ce9681f2a980deae7fcb2f3d59",
-   "sha256": "08hwjd1xmq6hxab537zm11kwqhwnc1dfznfqzy66c4agl9z9a7vx"
+   "commit": "f5484b0fc33d4e5116612626294efb362ff9ecd4",
+   "sha256": "0772z4v2jjinqlqhrdcsvk912gdi0dkxag7q5nm0rnkx2pyk7ynw"
   },
   "stable": {
    "version": [
@@ -19923,6 +20363,24 @@
   }
  },
  {
+  "ename": "dmacro",
+  "commit": "26d2f0ed0013dc0c03db5bae3119ae3522181ed2",
+  "sha256": "1n2gsml4ypasakxvq9q3h54kj5pl87m796si73700n5m4pgpp4hq",
+  "fetcher": "github",
+  "repo": "emacs-jp/dmacro",
+  "unstable": {
+   "version": [
+    20200803,
+    633
+   ],
+   "deps": [
+    "cl-lib"
+   ],
+   "commit": "3480b97aaad9e65fa03c6a9d1a0a8111be1179f8",
+   "sha256": "1vb2jz4z4z9bhw76b1l08jf8gd3kq6c8zsxxvmlan87nwkj211wz"
+  }
+ },
+ {
   "ename": "dmenu",
   "commit": "98bcdd71a160b9c04f83cc5b939031c9e7b5eb59",
   "sha256": "1w1pgaj2yasfhsd1ibvrwy11ykq8v17h913g298h3ycsvqv8gic0",
@@ -19975,10 +20433,10 @@
  },
  {
   "ename": "docean",
-  "commit": "d4827fa337d7d25f2aaf67aca3081fbdaeacbcbf",
-  "sha256": "1mqmn2i9axnv5vnkg9gwfdjpzr6gxx4ia9mcdpm200ix297dg7x9",
+  "commit": "b38908bc1b759b14173ffb49ddeb040a9892cc0d",
+  "sha256": "0y45gk3jvjqpzk51098qbnrvhbvg0rzsdhd3fnw7pblsgzzqn9w6",
   "fetcher": "github",
-  "repo": "emacs-pe/docean.el",
+  "repo": "emacsorphanage/docean",
   "unstable": {
    "version": [
     20180605,
@@ -20000,8 +20458,8 @@
   "repo": "Silex/docker.el",
   "unstable": {
    "version": [
-    20200508,
-    1956
+    20200610,
+    715
    ],
    "deps": [
     "dash",
@@ -20011,8 +20469,8 @@
     "tablist",
     "transient"
    ],
-   "commit": "01a04d0a295f3396833d0b6fa60cf24d52e1a89f",
-   "sha256": "0gh0h64dwn8v67q5569gifdjhzz5g4hfnsiqmg1nyq0nhvpp2b1c"
+   "commit": "3773112eea3fc99704b5ca50c1e9a3db2cb8e4f3",
+   "sha256": "0gi86ggjyfmfas7pswj7wirn5n7zs6rvb5b95nchnf4xf0nzwia1"
   },
   "stable": {
    "version": [
@@ -20084,15 +20542,15 @@
   "repo": "meqif/docker-compose-mode",
   "unstable": {
    "version": [
-    20180324,
-    1752
+    20200730,
+    1258
    ],
    "deps": [
     "dash",
     "yaml-mode"
    ],
-   "commit": "c9f131d2c90d652435d407fd36c40feebfed1dad",
-   "sha256": "0d5d46i6hplmy7q2ihbvcrnk9jrwa2mswgbf8yca3m4k44wgk6la"
+   "commit": "4c0c897fb0572e6b026b2a5ab9f2c76174be7a14",
+   "sha256": "01fj856511qjn5zw370axyz4imdnq3j5sqvbm8nkd71z1mz3dyv1"
   },
   "stable": {
    "version": [
@@ -20171,11 +20629,11 @@
   "repo": "progfolio/doct",
   "unstable": {
    "version": [
-    20200514,
-    2215
+    20200815,
+    2139
    ],
-   "commit": "1bcec209e12200c9b93b0d95f61b964b5de4439c",
-   "sha256": "03lbsww77vq1wrpj94jdx62zmjjhir9i50g85l8yadlp9696zh3s"
+   "commit": "89eb2e6f1c2630c980bdf4c0430ba54722c9ee00",
+   "sha256": "0210jwk19b59hx7gi2ddy5ja9jndvmwmip8bh16g35qiscn2jwml"
   }
  },
  {
@@ -20290,16 +20748,16 @@
   "repo": "seagle0128/doom-modeline",
   "unstable": {
    "version": [
-    20200513,
-    1103
+    20200819,
+    117
    ],
    "deps": [
     "all-the-icons",
     "dash",
     "shrink-path"
    ],
-   "commit": "2b308857677e983ca4eaedc36438ed94aadf9e65",
-   "sha256": "1c7mk26drz9yldy3kvcxxnabg8ph900pj1g029xhd1407x417vqc"
+   "commit": "ffbaaee832f1c97ff608bc4959b408997d959b7d",
+   "sha256": "0gvdlwa4w7s1igy8hqapng2s1k9ca6f76g68m5wzrfnx1z0zf7xl"
   },
   "stable": {
    "version": [
@@ -20324,14 +20782,14 @@
   "repo": "hlissner/emacs-doom-themes",
   "unstable": {
    "version": [
-    20200514,
-    2115
+    20200816,
+    2044
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "95463eac68fe88535d9342c7b4c2cbaae3c80950",
-   "sha256": "0ccq6gzahpsxsgmmd9dl16mfnz1n9sgn0ns62n03s3xgmf4ay3ap"
+   "commit": "24023de3c80c9f3afc3d012762d1ef0f8dbd326e",
+   "sha256": "0dwwpdwi0722xyap3xnm7034syb2fssfm4c6k5868k0344rvdkr8"
   },
   "stable": {
    "version": [
@@ -20394,11 +20852,11 @@
   "repo": "julienXX/dotnet.el",
   "unstable": {
    "version": [
-    20190415,
-    1237
+    20200803,
+    1032
    ],
-   "commit": "932d776ed739d20d57dbd6ba49f61d1b450571fc",
-   "sha256": "1h7y9vz64bv4slz9mpd7cjyyaxgqk92jn11y5ycfyncq70wyd3j4"
+   "commit": "83ba1305d7895b03f3dffb2d3458b7ec75e6909f",
+   "sha256": "0x3kaq06wbrhqanfzj0m6yb5x1mvcjz3xg52kk7a7d4mr1h9xlip"
   }
  },
  {
@@ -20433,14 +20891,14 @@
   "repo": "zk-phi/download-region",
   "unstable": {
    "version": [
-    20180124,
-    133
+    20200816,
+    1009
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "bbba3ecd80818d5d940d41fe89a6e2ec5dd2c53c",
-   "sha256": "1cwlbdmdils5rzhjpc3fqjmd3dhalk6i7bxskpahbrr9xxfq0iw4"
+   "commit": "0dca3b224649bba80a7e9ecbf1d1b6f6be962455",
+   "sha256": "1yka864dzz8nxskcllqyxk04313hlyfc9a4p0apmk56q19fcpwgn"
   }
  },
  {
@@ -20467,6 +20925,21 @@
   }
  },
  {
+  "ename": "doxy-graph-mode",
+  "commit": "4727d492a4867fc58bfdb8f57fff9313710bada8",
+  "sha256": "170r39cq25qkbng4i1rlpj3y7cvdqc0wxxr1rcxy15szjf7qw2dl",
+  "fetcher": "github",
+  "repo": "gustavopuche/doxy-graph-mode",
+  "unstable": {
+   "version": [
+    20200807,
+    646
+   ],
+   "commit": "2685c28e7a725614c23345195c3b85e505be2a1b",
+   "sha256": "0a4kil5v88wkki3r4jjc9ackv2z7ik0qgn4bdv75baskig8f8qjy"
+  }
+ },
+ {
   "ename": "dpaste",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "0wrfy9w0yf5m15vmhg4l880v92cy557g332xniqs77ab0sga4vgc",
@@ -20560,11 +21033,11 @@
   "repo": "dracula/emacs",
   "unstable": {
    "version": [
-    20200514,
-    1527
+    20200814,
+    1717
    ],
-   "commit": "c162aff5025a7e9f55785d7177d59f4a3aa60183",
-   "sha256": "11wlrvrz3q054nqkdbd4525kh50cspszrgmqd74plah6jc95wpa3"
+   "commit": "3b7c2905d249f47bc9c09d304c16f72f217df2e0",
+   "sha256": "031c2md9zxk8bhb8v6s6i5s3qmlfxf5ks0nl7n6kyw1w31h6pww9"
   },
   "stable": {
    "version": [
@@ -20772,8 +21245,8 @@
   "repo": "dtk01/dtk",
   "unstable": {
    "version": [
-    20200315,
-    1931
+    20200816,
+    2055
    ],
    "deps": [
     "cl-lib",
@@ -20781,8 +21254,8 @@
     "s",
     "seq"
    ],
-   "commit": "d21a5b7958da058bb53d36fe9234089409f62c5e",
-   "sha256": "0w46yr5d108z2pipvh449p15qnm6mnix21pbnq3alczilzxzf9lw"
+   "commit": "a0e789919f71ff4ab752432fe9e295f9f44c7b12",
+   "sha256": "029xsdasbrvkg8w2ykgy6iq618cdjkr4gkp4l094na35jpv96yca"
   }
  },
  {
@@ -20890,16 +21363,16 @@
   "repo": "jacktasia/dumb-jump",
   "unstable": {
    "version": [
-    20200513,
-    2014
+    20200815,
+    1537
    ],
    "deps": [
     "dash",
     "popup",
     "s"
    ],
-   "commit": "194bfdbe305e21d8e6d29893d449686c85273207",
-   "sha256": "0lz5kajhkqh18xyg07bshvl0v5j5g5xj4q8p6min1mapm8shnv2i"
+   "commit": "0d74b2f2aa834b602e91d99e9cb23197a389f042",
+   "sha256": "01jwyridywbihspan8zrrfpxl4gl275z8l23swhczg0bcjq1x8g8"
   },
   "stable": {
    "version": [
@@ -20943,17 +21416,17 @@
     20191016,
     1241
    ],
-   "commit": "e5bec1a57fd4ebeedc848e76e0cf991db7e22fd0",
-   "sha256": "091z6p93sv3aqf7bcw41nwh4kvvpsfncjny2fwcv3vv7zlyj2px2"
+   "commit": "26078df94ea16e2fc9221a84c5d42f2fe024074b",
+   "sha256": "1pvqrijx5bmnbvwk4pz6j1ldir5zi95ixbfrqki284qcgq28krd1"
   },
   "stable": {
    "version": [
     2,
-    5,
-    1
+    7,
+    0
    ],
-   "commit": "4d1ef91df8c732d516ddea4a953f5956e99692b2",
-   "sha256": "1ljhwsyl277lvmii4v439dafyc0y2l2jf2ds5zivpbrh168851di"
+   "commit": "85b4e16bd6c310811fcc206d3d0cbb391eb8b81c",
+   "sha256": "19fn7ywx13j1hc600pccyghz2izjy26bzwaqjynn7swlbkc96ymz"
   }
  },
  {
@@ -20994,14 +21467,14 @@
   "repo": "harsman/dyalog-mode",
   "unstable": {
    "version": [
-    20200301,
-    1149
+    20200817,
+    737
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "5dceeefaed6fbedb680bb6cc9aba14fb5f890310",
-   "sha256": "137kgixsdkw2rqj1402gc31gd6hdbna7bx5j1xxhyiig2x2b3aqx"
+   "commit": "5d703d91f90ddebdfb4cae1b45c476aec5976313",
+   "sha256": "1vf88vywb4cjfndc4jd185fdqjydd7ckbf1n2qsi9w3k8940q2pq"
   }
  },
  {
@@ -21012,11 +21485,11 @@
   "repo": "dylan-lang/dylan-mode",
   "unstable": {
    "version": [
-    20200425,
-    1347
+    20200607,
+    1911
    ],
-   "commit": "64f3aed546315c766331c69be3c7e78c7da6c333",
-   "sha256": "1r63gxy1hlij1ck570agvj39rynby6kna5kcfhrr0imi7hl98mzz"
+   "commit": "bdccb252dffa99a3a55dce446cc4a7ff4a8dc089",
+   "sha256": "09dgjwdsni936chj2b8r607bqa2vcav66mb49j5vi2lxiw60sg8m"
   }
  },
  {
@@ -21054,6 +21527,21 @@
   }
  },
  {
+  "ename": "dynamic-graphs",
+  "commit": "8c0101a98dcddd7135478a218f4b0a5fd6d4fe0c",
+  "sha256": "188w7srdrfzri1l7y68b6vhrwn0yxx8578v6p234p8bsgmlwzan9",
+  "fetcher": "github",
+  "repo": "zellerin/dynamic-graphs",
+  "unstable": {
+   "version": [
+    20200818,
+    442
+   ],
+   "commit": "10dffcbc4011647c16e8d65d05856e043de1865d",
+   "sha256": "08f3f4bwryyhvj8yp2y2v3fppl6drd4rq3wyx48mxwkiw6z1db4r"
+  }
+ },
+ {
   "ename": "dynamic-ruler",
   "commit": "926c43867120db429807ff5aaacc8af65a1738c8",
   "sha256": "13jc3xbsyc3apkdfy0iafmsfvgqs0zfa5w8jxp7zj4dhb7pxpnmc",
@@ -21196,28 +21684,28 @@
   "repo": "aki2o/e2wm-direx",
   "unstable": {
    "version": [
-    20170509,
-    1301
+    20200805,
+    1414
    ],
    "deps": [
     "direx",
     "e2wm"
    ],
-   "commit": "b47f19d15436cc28233a812a1150689f61d11046",
-   "sha256": "0lihc02b0792kk61vcmhi0jwb7c4w2hi19g6a0q1598b3rci82nf"
+   "commit": "5672bc44d8e5cea6bc3b84c3b58e522050ffae0e",
+   "sha256": "18fj8qn4b6f13vb3n6j5cwcgdh2ypnvaqyjszmh321zmwxq08nd5"
   },
   "stable": {
    "version": [
     0,
     0,
-    5
+    7
    ],
    "deps": [
     "direx",
     "e2wm"
    ],
-   "commit": "f319625b56c44e601af7c17fc6dbb88e5d70ebae",
-   "sha256": "09i7d2rc9zd4s3nqrhd3ggs1ykdpxf0pyhxixxw2xy0q6nbswjia"
+   "commit": "5672bc44d8e5cea6bc3b84c3b58e522050ffae0e",
+   "sha256": "18fj8qn4b6f13vb3n6j5cwcgdh2ypnvaqyjszmh321zmwxq08nd5"
   }
  },
  {
@@ -21279,26 +21767,26 @@
   "repo": "aki2o/e2wm-sww",
   "unstable": {
    "version": [
-    20140524,
-    858
+    20200805,
+    1339
    ],
    "deps": [
     "e2wm"
    ],
-   "commit": "1063f9854bd34db5ac771cd1036cecc89834729d",
-   "sha256": "0mz43mwcgyc1c9p9b7nflnjxdxjm2nxbhl0scj6llzphikicr35g"
+   "commit": "8926d0c70be05c7b4ef821e22e411e8813973687",
+   "sha256": "0941mfz6a398jq5cb8kgr5cikzkzrpjnfbbx2f9c1yy9wj1awklk"
   },
   "stable": {
    "version": [
     0,
     0,
-    2
+    3
    ],
    "deps": [
     "e2wm"
    ],
-   "commit": "1063f9854bd34db5ac771cd1036cecc89834729d",
-   "sha256": "0mz43mwcgyc1c9p9b7nflnjxdxjm2nxbhl0scj6llzphikicr35g"
+   "commit": "8926d0c70be05c7b4ef821e22e411e8813973687",
+   "sha256": "0941mfz6a398jq5cb8kgr5cikzkzrpjnfbbx2f9c1yy9wj1awklk"
   }
  },
  {
@@ -21343,26 +21831,26 @@
   "repo": "redguardtoo/eacl",
   "unstable": {
    "version": [
-    20200407,
-    756
+    20200612,
+    736
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "47b839f305e63e119b6a554497cd4b99512e8e00",
-   "sha256": "1gdppgjdapjx25ns5ja1lnnypq26m8w9s5vbnfg7p0j64kd2mdwh"
+   "commit": "0517e60d8d36838df1a90498f2d75ded814d75e4",
+   "sha256": "0vri0dmq6w58crjwhpi9r1r2i6nqr2q69arqagbwvs4hrxm79z1k"
   },
   "stable": {
    "version": [
     2,
     0,
-    2
+    3
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "e074682aa18bed4fd68068a48ccaa970ae6d4e33",
-   "sha256": "1kb14p8004kaqxq765nv5rn8xniw53g4zafcy9wkv9b88bixb7q9"
+   "commit": "0517e60d8d36838df1a90498f2d75ded814d75e4",
+   "sha256": "0vri0dmq6w58crjwhpi9r1r2i6nqr2q69arqagbwvs4hrxm79z1k"
   }
  },
  {
@@ -21403,28 +21891,28 @@
   "repo": "masasam/emacs-easy-hugo",
   "unstable": {
    "version": [
-    20200427,
-    1901
+    20200811,
+    842
    ],
    "deps": [
     "popup",
     "request"
    ],
-   "commit": "2dfdcdbcd8eb81c3fd631372d7dceb4f432d5f1e",
-   "sha256": "19j7r14qxh2cl4zi4vssbbqjhp6r53gjavnwyihk52llxcgrxrr7"
+   "commit": "cc4ba71c07dd8b3a66c996e7b31fa7e3e9870ce2",
+   "sha256": "1haias0k1gia0jfjiviy222jmbv4zf1ddsv00z9h476g8h303w7b"
   },
   "stable": {
    "version": [
     3,
     9,
-    46
+    47
    ],
    "deps": [
     "popup",
     "request"
    ],
-   "commit": "9e923e32f21134bb89196a169f5a3f2aecfe45cb",
-   "sha256": "1r8s83dc3ibp687fywfsgs2kc95j2s153ncrgxldqvsp24k1wm8x"
+   "commit": "cc4ba71c07dd8b3a66c996e7b31fa7e3e9870ce2",
+   "sha256": "1haias0k1gia0jfjiviy222jmbv4zf1ddsv00z9h476g8h303w7b"
   }
  },
  {
@@ -21435,26 +21923,26 @@
   "repo": "masasam/emacs-easy-jekyll",
   "unstable": {
    "version": [
-    20200506,
-    117
+    20200811,
+    859
    ],
    "deps": [
     "request"
    ],
-   "commit": "d114ed4ef4470ea429d2dd291a409bc406d0dda0",
-   "sha256": "11wkvrl19c0z2icig2a7i6ccplzgx7j4jjlx97lq41vx679xxiwp"
+   "commit": "8ecdb70a4f957fbd0b81dc0c5726edc136513b34",
+   "sha256": "15ps0b8ik3bsxv96jb0cbbgiwx0z601m56cj83yp7r5zyphbm2n5"
   },
   "stable": {
    "version": [
     2,
     4,
-    26
+    27
    ],
    "deps": [
     "request"
    ],
-   "commit": "d114ed4ef4470ea429d2dd291a409bc406d0dda0",
-   "sha256": "11wkvrl19c0z2icig2a7i6ccplzgx7j4jjlx97lq41vx679xxiwp"
+   "commit": "8ecdb70a4f957fbd0b81dc0c5726edc136513b34",
+   "sha256": "15ps0b8ik3bsxv96jb0cbbgiwx0z601m56cj83yp7r5zyphbm2n5"
   }
  },
  {
@@ -21541,36 +22029,6 @@
   }
  },
  {
-  "ename": "ebal",
-  "commit": "629aa451162a0085488caad4052a56366b7ce392",
-  "sha256": "1kqnlp5n1aig1qbqdq9q50wgqkzd1l6h9wi1gv43cif8qa1kxhwg",
-  "fetcher": "github",
-  "repo": "mrkkrp/ebal",
-  "unstable": {
-   "version": [
-    20180101,
-    616
-   ],
-   "deps": [
-    "f"
-   ],
-   "commit": "1740118125ae7aa6ba82d36e1fe0e69065a6fcaa",
-   "sha256": "1i5r8m34zf7ya1kzgm8hsx707phq5smf2x6y2a1ykbnfkk39gmbf"
-  },
-  "stable": {
-   "version": [
-    0,
-    3,
-    1
-   ],
-   "deps": [
-    "f"
-   ],
-   "commit": "4d19565516785348894c4911e757e33a270b3efd",
-   "sha256": "1wj9h8ypi70az387c7pcrpc59lpf89dkp2q4df2ighxw3l648mb7"
-  }
- },
- {
   "ename": "ebf",
   "commit": "22e2f6383f2a7a01778c0524af19a68af57796ae",
   "sha256": "072w1hczzb4z0dadvqy8px9zfnfd2z0w8nwa7q2qm5njg30rrqpb",
@@ -21612,26 +22070,26 @@
   "repo": "joostkremers/ebib",
   "unstable": {
    "version": [
-    20200513,
-    2326
+    20200628,
+    2157
    ],
    "deps": [
     "parsebib"
    ],
-   "commit": "6499e4a67f2772a29128864a8f7606a78fb73b45",
-   "sha256": "0css7pfyqz834f8awc632mwlfcph3mrsqwbxvrlaw59bc3hgxjdv"
+   "commit": "805c2e30e30f9f211f4aa443263d1c3971935295",
+   "sha256": "0kgw049wph40kk0kin7zxj44ghd1s1pr8zpl1gli4zic02vzcaga"
   },
   "stable": {
    "version": [
     2,
-    23,
+    25,
     1
    ],
    "deps": [
     "parsebib"
    ],
-   "commit": "6499e4a67f2772a29128864a8f7606a78fb73b45",
-   "sha256": "0css7pfyqz834f8awc632mwlfcph3mrsqwbxvrlaw59bc3hgxjdv"
+   "commit": "bd258c1f364a8c96b0026fdc3de75117ca4e324a",
+   "sha256": "1mvsa2a761va74ybxprdvmhkzhjl6axn1ngjfhrrljqgsvqgyjwk"
   }
  },
  {
@@ -21979,20 +22437,20 @@
   "repo": "Fanael/edit-indirect",
   "unstable": {
    "version": [
-    20191103,
-    1013
+    20200805,
+    1840
    ],
-   "commit": "935ded353b9ed3da67bc61abf245c21b58d88864",
-   "sha256": "0yghm0l4wickhqc29ykjjg98xb91djr1f6n6ihc7ymsv0yhw5wc4"
+   "commit": "bdc8f542fe8430ba55f9a24a7910639d4c434422",
+   "sha256": "189nvmlkki1jfszm9i0crbb1p4nzgmbly0wpvpg0i8vmw7vrpl40"
   },
   "stable": {
    "version": [
     0,
     1,
-    5
+    6
    ],
-   "commit": "032ac0ec690d4999d564fd882588c7a197efe8dd",
-   "sha256": "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"
+   "commit": "bdc8f542fe8430ba55f9a24a7910639d4c434422",
+   "sha256": "189nvmlkki1jfszm9i0crbb1p4nzgmbly0wpvpg0i8vmw7vrpl40"
   }
  },
  {
@@ -22048,8 +22506,8 @@
     20181016,
     1125
    ],
-   "commit": "43f180809fcbc7e104f96f95608a97c4c2a2c8b3",
-   "sha256": "0v9nn85pw7lll516p8bb9y6dk44rj2h88ky4zz9wgkrppjs7qdb0"
+   "commit": "5f6352f98f9795ea0423cb46e9b01dc54e523ab1",
+   "sha256": "0khf51sbjkqij36l00lby004ca9nb67xvksjnbafzp2bvwcs356j"
   },
   "stable": {
    "version": [
@@ -22086,14 +22544,14 @@
   "repo": "editorconfig/editorconfig-emacs",
   "unstable": {
    "version": [
-    20200212,
-    739
+    20200730,
+    1329
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "19de0ec1bac67c5a76a4dd3d8ffe6c5411ace1af",
-   "sha256": "187vcflpbv4zpbzdsxw5i6c9j6dva7v3d3skh3b6wybjzh6ib4jf"
+   "commit": "9bc1343ce8bd2cc84bf04b58a053b7ec700244c0",
+   "sha256": "10zaxq356fq6y4h1g9gxj8sja4k4g5z9g2xggw0yy4dbx1mmw7n1"
   },
   "stable": {
    "version": [
@@ -22232,8 +22690,8 @@
   "repo": "sebastiw/edts",
   "unstable": {
    "version": [
-    20200413,
-    1929
+    20200710,
+    1424
    ],
    "deps": [
     "auto-complete",
@@ -22244,8 +22702,8 @@
     "popup",
     "s"
    ],
-   "commit": "e797eb57ede8332205b3abd7d7adeccbb319ad29",
-   "sha256": "1101yx1dg82msw0bbji9hpnzq029ghh9ca4a6588fik8sn3v786j"
+   "commit": "eda93f89c198db6aa3590d8e812ed797c9b3e305",
+   "sha256": "0vpvil86j6ahfq9f123ampba93h7pgnlvg14y9a9fpwig1hvqm60"
   },
   "stable": {
    "version": [
@@ -22408,17 +22866,17 @@
     20200107,
     2333
    ],
-   "commit": "1809fd4c001a4ae2fa5e2b721b67c1059fb8e9b8",
-   "sha256": "0ssh0chavas524jwj3r9bywkd8rgnbjz4xcgxhbnjfcl786pmyw7"
+   "commit": "54b0f51a103e4c12515cd814e3bc6be67c3da966",
+   "sha256": "1yvf4qns69smcg6vbb6l25g8dnai5da827qpd8f6pg3qp8w1q5wc"
   },
   "stable": {
    "version": [
     4,
     0,
-    0
+    3
    ],
-   "commit": "400465de0ece5b03607895bd1c83b1cfae34079a",
-   "sha256": "196jn2cmyjvjai3nbij5kk64djz908ch4kddi4qdpkighwslkh2i"
+   "commit": "64665dba315f5b70b3ce2045a42f6059d7b858de",
+   "sha256": "0z41p0aqz4bqvx885vy7hqny8ni8q2nrk7bhwazwymnhnzq52bjp"
   }
  },
  {
@@ -22429,18 +22887,18 @@
   "repo": "joaotavora/eglot",
   "unstable": {
    "version": [
-    20200516,
-    1013
+    20200816,
+    1810
    ],
    "deps": [
     "eldoc",
     "flymake",
     "jsonrpc",
-    "package",
+    "project",
     "xref"
    ],
-   "commit": "bf75312b8e7ea5136905d7a55a6d705b51b2b6c9",
-   "sha256": "1xbisdraj04jns0vcpcvnqqiwib3b8jpbian1nnmllvscfdz6c7l"
+   "commit": "5f873d288e1c5434c1640bef03555ed056cb0d35",
+   "sha256": "1rdfrw6qcbkl7bnjsfrzz6ndbr6lk0s4ldyqwv48k1nvlk9jc796"
   },
   "stable": {
    "version": [
@@ -22463,28 +22921,28 @@
   "repo": "non-Jedi/eglot-jl",
   "unstable": {
    "version": [
-    20200514,
-    2034
+    20200726,
+    741
    ],
    "deps": [
     "eglot",
     "julia-mode"
    ],
-   "commit": "844f12d881a3305d319e959b032e01501be1e8ae",
-   "sha256": "0na70zn0s09nihzki6kfnb5hc2j2wqfffj50kwdzjfs53m4sl1s7"
+   "commit": "84cff9d6ef1643f3eac6c9d620cc1e380a9847d9",
+   "sha256": "1g3k3ym0hx97dk3sv1kz3vq0p1s1zw6r34ynhwm31y954miwyvm4"
   },
   "stable": {
    "version": [
     2,
-    0,
+    1,
     0
    ],
    "deps": [
     "eglot",
     "julia-mode"
    ],
-   "commit": "844f12d881a3305d319e959b032e01501be1e8ae",
-   "sha256": "0na70zn0s09nihzki6kfnb5hc2j2wqfffj50kwdzjfs53m4sl1s7"
+   "commit": "84cff9d6ef1643f3eac6c9d620cc1e380a9847d9",
+   "sha256": "1g3k3ym0hx97dk3sv1kz3vq0p1s1zw6r34ynhwm31y954miwyvm4"
   }
  },
  {
@@ -22495,19 +22953,18 @@
   "repo": "emacs-china/EGO",
   "unstable": {
    "version": [
-    20180301,
-    104
+    20200803,
+    1101
    ],
    "deps": [
     "dash",
     "ht",
     "htmlize",
     "mustache",
-    "org",
-    "simple-httpd"
+    "org"
    ],
-   "commit": "719809679c1a60887735db41abae53b61f08ef59",
-   "sha256": "10f179kl53la4dyikzl1xysccx4gk04skzwaw3w1pgr8f5fjppxc"
+   "commit": "211c4cb2af2582849d9df984fb2346deecaf79be",
+   "sha256": "0sk3mn1gxb826x69s6hlkrzgj8irs9sh3anfazryibw7i61p9cbj"
   }
  },
  {
@@ -22518,11 +22975,11 @@
   "url": "https://forge.tedomum.net/eide/eide.git",
   "unstable": {
    "version": [
-    20200507,
-    2238
+    20200702,
+    2009
    ],
-   "commit": "f5f858e238c279a134d34a4ff334428dd811ca07",
-   "sha256": "1y87cbzngn29svx94mqvsk74j7vk912fx29b4fi26hj6myvki1nx"
+   "commit": "b1dfdaf06b00409250135cb1000beac60c7f659b",
+   "sha256": "17wzffhqnd65c94qcxlwmb4qyw44kq39hvkqlwpxx8g4wj0lql3j"
   },
   "stable": {
    "version": [
@@ -22557,8 +23014,8 @@
   "repo": "millejoh/emacs-ipython-notebook",
   "unstable": {
    "version": [
-    20200514,
-    2040
+    20200812,
+    230
    ],
    "deps": [
     "anaphora",
@@ -22567,10 +23024,11 @@
     "exec-path-from-shell",
     "polymode",
     "request",
-    "websocket"
+    "websocket",
+    "with-editor"
    ],
-   "commit": "ec3aa36bf37a78e99723563e38f81ee24b855524",
-   "sha256": "0pr14dv4bbxgpki8kd1z9i07x1khb0v2wr82483qf3hhqafv6lrm"
+   "commit": "99a4718f50538a439a2a3f2011d1aa97246e259b",
+   "sha256": "0qi012pbyj1zdj7h0y3r26ijf80046827ln079v1q9hgkz9ipaam"
   },
   "stable": {
    "version": [
@@ -22644,34 +23102,32 @@
   "repo": "kostafey/ejc-sql",
   "unstable": {
    "version": [
-    20200516,
-    1604
+    20200809,
+    1221
    ],
    "deps": [
-    "auto-complete",
     "clomacs",
     "dash",
     "direx",
     "spinner"
    ],
-   "commit": "b02e0bbc6df08a4ae44d16ac57886e56cfb8095d",
-   "sha256": "0vs4kcdval7klzbs21jq2rcxs013r7rskpxgjc7lrq1qrsgyyq9d"
+   "commit": "c99825ce67c142b38a8d3edec444593e29d48b44",
+   "sha256": "0fwkaz5cacfmgchl0xyb82bqc20fbvl1kk14m5mvydhjqaam7r45"
   },
   "stable": {
    "version": [
     0,
-    3,
-    3
+    4,
+    1
    ],
    "deps": [
-    "auto-complete",
     "clomacs",
     "dash",
     "direx",
     "spinner"
    ],
-   "commit": "ad6473ba40bcc0b300baa83eda13523b9cd2cd2c",
-   "sha256": "18ik1r18yc904048l1yalqm9m7ll4vln73q483yqqywda9hm8saq"
+   "commit": "ddbae7be2aed9c273d9d570c542936f1faa3088f",
+   "sha256": "1gvbw4iqnsbs6fj713gjd9s0l1xxqmvq98ixsh59p0wh68a1nhhl"
   }
  },
  {
@@ -22738,8 +23194,8 @@
     20181006,
     225
    ],
-   "commit": "3f746410a9024af60a1368d02c2c0d9edd93ab66",
-   "sha256": "03zvxdbqjzkr6js8g21dzdiqsbmbhphij8jz98ian7gvzi8ady23"
+   "commit": "3b5e48ba4a4dca5c91610e2eb607a8bbb725a6ab",
+   "sha256": "1kx0c3wgij66hhryb9ggf8c975406vb9a9m6z4yrsrrisyc2ljgk"
   },
   "stable": {
    "version": [
@@ -22765,8 +23221,8 @@
     "anaphora",
     "cl-lib"
    ],
-   "commit": "65c48ec47fea84d16ff2d1ef7015b4d220fcf5ff",
-   "sha256": "0awx7ry9xnzw7n9aqiy7i2lfj453jkj15wfy38nlgw9qxv9bri9j"
+   "commit": "747acd434aa6f50a599efe5f6e96dea2dfed79d6",
+   "sha256": "0nyllimsrghwd1vkmal1c58g1nx4djyvjfmylhqidx4h79gkryxm"
   },
   "stable": {
    "version": [
@@ -22800,8 +23256,8 @@
     "dash",
     "el-init"
    ],
-   "commit": "8a2ab457586962bde0da2a1c56a37ce6363ae690",
-   "sha256": "08ni8hmszryf75h1c13q3yrrxgh41as6r8r4vq4gih0jbiz0wx8w"
+   "commit": "7c0169d356d6c007317e253e5776e1e48a60d6ad",
+   "sha256": "0w2mxppkx6306kyxaw00fzv8q745iklcm41iswmflr2585h2adnq"
   },
   "stable": {
    "version": [
@@ -22852,37 +23308,20 @@
   "repo": "raxod502/el-patch",
   "unstable": {
    "version": [
-    20200404,
-    1548
+    20200716,
+    1428
    ],
-   "commit": "46d22e7dfc7f9d8e9cbf5042d365f60b1fc7da0f",
-   "sha256": "1xjnzy7gp4sqd0mj3zkw741bj7kbpbdgcqxs6ppvlmr5i0adx2hh"
+   "commit": "ff1951d776f80d2fd4a0cd9a0c930182fbb57b3c",
+   "sha256": "1f783xapqa6zigg0gqayxsf8lfkldng8r4ns9x04rqg9vmhkxmk0"
   },
   "stable": {
    "version": [
     2,
-    3
-   ],
-   "commit": "278a27477a4d7032fe06bb56ab01701cb10df808",
-   "sha256": "15bwjl6377ngg3qwn1g8wc2wi61pcm6xlhjzj28ap5vz7y7zxps2"
-  }
- },
- {
-  "ename": "el-pocket",
-  "commit": "ef362a76a3881c7596dcc2639df588227b3713c0",
-  "sha256": "0fgylpfixsx5l1nrgz6n1c2ayf52p60f9q290hmkn36siyx5hixw",
-  "fetcher": "github",
-  "repo": "pterygota/el-pocket",
-  "unstable": {
-   "version": [
-    20170922,
-    1249
-   ],
-   "deps": [
-    "web"
+    3,
+    1
    ],
-   "commit": "a80abfb67efe68ada1d7d0a73aecee57e763baaa",
-   "sha256": "0q4nsgqpjmmxml5pcb6im1askk6q7c3ykzv6fgf1w8jgkvdifa6f"
+   "commit": "ff1951d776f80d2fd4a0cd9a0c930182fbb57b3c",
+   "sha256": "1f783xapqa6zigg0gqayxsf8lfkldng8r4ns9x04rqg9vmhkxmk0"
   }
  },
  {
@@ -23080,11 +23519,11 @@
   "repo": "Mstrodl/elcord",
   "unstable": {
    "version": [
-    20200322,
-    2027
+    20200611,
+    2314
    ],
-   "commit": "94b0afb9bac32fa72354517347646166d6bec986",
-   "sha256": "11gj67d83hx9wfjf4j277jy8jxf97i6bd9r8r057v4i8301qh91p"
+   "commit": "01b26d1af2f33a7c7c5a1c24d8bfb6d40115a7b0",
+   "sha256": "1lj87zfcvmzm34rlq5s4y4x2nwckwg5qxlhlgl4qry3bf16bmkcf"
   }
  },
  {
@@ -23128,20 +23567,20 @@
   "repo": "doublep/eldev",
   "unstable": {
    "version": [
-    20200515,
-    1905
+    20200815,
+    2332
    ],
-   "commit": "a76712621a4851fdb0bc3d76f454898afefedf6e",
-   "sha256": "1jc6l0pcsyv9wgp58ij9wvjj4x4a3zz4svsna2aq86pf8bbbyng9"
+   "commit": "ae353301c15b15930b0a83807275ed58a3be82e6",
+   "sha256": "0l1ac2ll2127wn6nlrpvxzk38xb74rb8bmp6c5sjh79hnjr04zh5"
   },
   "stable": {
    "version": [
     0,
-    3,
-    2
+    6,
+    1
    ],
-   "commit": "f345065592b4bc9a5173b44e12a74400335d4e49",
-   "sha256": "0gf7sfdrnyndgbkpm2pz3056y0d06iy6pwhr63sbm7g4x79j9yjd"
+   "commit": "8440e797f0dcaf7bf6da2a7573a7b07c4ea9da82",
+   "sha256": "16g68lgd5lp3rdskym4xnkvsm6953xgx48yah8zs5fpk4qny212r"
   }
  },
  {
@@ -23214,15 +23653,15 @@
   "repo": "stardiviner/eldoc-overlay",
   "unstable": {
    "version": [
-    20200328,
-    619
+    20200715,
+    1214
    ],
    "deps": [
     "inline-docs",
     "quick-peek"
    ],
-   "commit": "ec318acb564ac5679285b51b7d979410d393fac9",
-   "sha256": "0dx1b9d7zyqcwsnhl18hyrkmrc0zy68zwhp81d43fw84gjb4jcx8"
+   "commit": "563ca285a510d1cbd5129cc3a8f8a3cdded065de",
+   "sha256": "1llh93rlvzsl9m2f7gprb5rbbf2ghysyn1balb8clb64hq98gjyb"
   }
  },
  {
@@ -23239,8 +23678,8 @@
    "deps": [
     "stan-mode"
    ],
-   "commit": "599a0440086c660e6823622b35058f6d2d6d9637",
-   "sha256": "0mm0kpyihpd55hx14smlm0ayz05zw750fihhqhxqc258y8y73m5y"
+   "commit": "e891a0fcb3a7ab7d9cedbe3deda560134636897e",
+   "sha256": "158afanfaww2jkrz9szap6ys8xhbpz35kd5apkxr1j9j7s8h0iw0"
   },
   "stable": {
    "version": [
@@ -23309,11 +23748,11 @@
   "repo": "xwl/electric-spacing",
   "unstable": {
    "version": [
-    20200223,
-    838
+    20200607,
+    1405
    ],
-   "commit": "83568a7f2f0e2f0983e348b6e4adc0fc75b98adf",
-   "sha256": "03710cr8jvr22c9j3c266460aln26j7y9vqj6qm3mmzhsr3v7q2c"
+   "commit": "f039011edb922cdc56c1d2bd0e49bb4575c35ab3",
+   "sha256": "1qfjk928y8bnx2ksciv0f0ackahj78x3qsr84m9qcvsvlg9cql5p"
   }
  },
  {
@@ -23363,11 +23802,11 @@
   "repo": "skeeto/elfeed",
   "unstable": {
    "version": [
-    20200209,
-    1942
+    20200716,
+    1921
    ],
-   "commit": "af31f80552f7d081b985d729143a804ad47c0734",
-   "sha256": "13n0yhw9si1cp31m15andwkqan7vmmny5mxzj09cykjd1bk2rpan"
+   "commit": "8fb09ad75f2ff7d6f7d8b8d1ac65b9be873cc31d",
+   "sha256": "0rs32xvpwky37y18wr6maqbkncijia7yvmbrsngbhgdpzdvijp7v"
   },
   "stable": {
    "version": [
@@ -23432,28 +23871,28 @@
   "repo": "fasheng/elfeed-protocol",
   "unstable": {
    "version": [
-    20200503,
-    304
+    20200526,
+    341
    ],
    "deps": [
     "cl-lib",
     "elfeed"
    ],
-   "commit": "2df5237dfa8c51a151bcf9d8fb6746447a8aa3d0",
-   "sha256": "0n4f621787v3gqfyqg7f37z6nxjqxl0bxxnl5j3gxqrif0ml2725"
+   "commit": "c5a928d4217060a49444d80d2fd54282d32a12a5",
+   "sha256": "0zky2iqkpckaq8c1fyhw9drdnmnyapix8jw46p6jvspljb9vwzkb"
   },
   "stable": {
    "version": [
     0,
     7,
-    6
+    8
    ],
    "deps": [
     "cl-lib",
     "elfeed"
    ],
-   "commit": "fc0beb392386b8ed387e52e7e100354b8549fd7e",
-   "sha256": "1kh524fkhsq3l9w0dv12b8shdyqfvnkhdr19xzfbhzw10hfdl5js"
+   "commit": "c5a928d4217060a49444d80d2fd54282d32a12a5",
+   "sha256": "0zky2iqkpckaq8c1fyhw9drdnmnyapix8jw46p6jvspljb9vwzkb"
   }
  },
  {
@@ -23464,15 +23903,15 @@
   "repo": "sp1ff/elfeed-score",
   "unstable": {
    "version": [
-    20200328,
-    1855
+    20200810,
+    1547
    ],
    "deps": [
     "cl-lib",
     "elfeed"
    ],
-   "commit": "916c47b3590b2ff3c5075dcc1def4b36a4b14947",
-   "sha256": "1vhchbyy3c79cgvdz12wnryklr5g1bwh02d604zj2wca3b0199w4"
+   "commit": "0551993338c5d41386eccd47cc2f1b382a1b29c3",
+   "sha256": "0hgdsvi4l9k978kcx8gmbqkdi7q3qj70cg697fqky0cmcpykhcbq"
   },
   "stable": {
    "version": [
@@ -23503,8 +23942,8 @@
     "elfeed",
     "simple-httpd"
    ],
-   "commit": "af31f80552f7d081b985d729143a804ad47c0734",
-   "sha256": "13n0yhw9si1cp31m15andwkqan7vmmny5mxzj09cykjd1bk2rpan"
+   "commit": "8fb09ad75f2ff7d6f7d8b8d1ac65b9be873cc31d",
+   "sha256": "0rs32xvpwky37y18wr6maqbkncijia7yvmbrsngbhgdpzdvijp7v"
   },
   "stable": {
    "version": [
@@ -23573,16 +24012,16 @@
   "repo": "Wilfred/elisp-def",
   "unstable": {
    "version": [
-    20180806,
-    723
+    20200528,
+    633
    ],
    "deps": [
     "dash",
     "f",
     "s"
    ],
-   "commit": "368b04da68783601b52e3169312183381871cf9e",
-   "sha256": "0l1kj7xd4332xk821z24c14lhkpcmca5gmivpb8shlk10cvjvxjw"
+   "commit": "da1f76391ac0d277e3c5758203e0150f6bae0beb",
+   "sha256": "17zpil3zgi2j7a63lv5vas3ad6bvh45d9vnf2nb37z3id62rjdkd"
   },
   "stable": {
    "version": [
@@ -23606,11 +24045,11 @@
   "repo": "xuchunyang/elisp-demos",
   "unstable": {
    "version": [
-    20200427,
-    151
+    20200606,
+    949
    ],
-   "commit": "4cd55a30d5dbd8d36a0e6f87261c4fef17fc6db0",
-   "sha256": "0g1wnx37pdl3zxmym4fnqvhlw9hj6aw51vpxa18fpsh7fadfjjdp"
+   "commit": "8c9748134f7c017ae1536dbd0b76434afb52e64d",
+   "sha256": "15gyhqnlppsswmmcknc3yfm6p7s2y06r2py656vh5vwhah7pcqxj"
   },
   "stable": {
    "version": [
@@ -23645,14 +24084,14 @@
   "repo": "mtekman/elisp-depmap.el",
   "unstable": {
    "version": [
-    20200413,
-    1215
+    20200714,
+    1630
    ],
    "deps": [
     "dash"
    ],
-   "commit": "e47616c968dd82e30cb10961452e2b46c7900163",
-   "sha256": "1jpqdi15lvyd48jsbndlallnjc8bkmv0mxwyf51m483vz9v8nn2i"
+   "commit": "98676e6ffcc4efb70cc991e659c79cb599b01bc7",
+   "sha256": "0ybqbyv1jnjk25z6ys90d5lddd4qxqspn2xppkzvby21x634s2ry"
   }
  },
  {
@@ -23725,16 +24164,15 @@
   "repo": "Wilfred/elisp-refs",
   "unstable": {
    "version": [
-    20200428,
-    1707
+    20200815,
+    2357
    ],
    "deps": [
     "dash",
-    "loop",
     "s"
    ],
-   "commit": "0e7ea1574717108ddc2eda5e1bc883d44cd28257",
-   "sha256": "0qkgsac3g02p4w8rkkmwv0p0brmi3rb1yijq45nvyy8kkf331g0g"
+   "commit": "b3634a4567c655a1cda51b217629849cba0ac6a7",
+   "sha256": "1zy629gavyrwx5gmpz7l1a86hbrxjrfqik398v3ja8vg8bj9d6nq"
   },
   "stable": {
    "version": [
@@ -23802,14 +24240,14 @@
   "repo": "elixir-editors/emacs-elixir",
   "unstable": {
    "version": [
-    20200121,
-    623
+    20200723,
+    1750
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "231291ecadc479295d83fee619049030940bfbe5",
-   "sha256": "0lzzgdd1fkswij0d9rh6gyyvhf6z5m0az1hhvyighi45al3mj78s"
+   "commit": "01b332495d3f44addeb236428041c4ffa0c2ca3b",
+   "sha256": "0qzzrvzpzj8vpdm8fw3sagp7bfps28l615hi67vnwp2car9a7f2y"
   },
   "stable": {
    "version": [
@@ -23881,8 +24319,8 @@
   "repo": "jcollard/elm-mode",
   "unstable": {
    "version": [
-    20200406,
-    214
+    20200602,
+    500
    ],
    "deps": [
     "dash",
@@ -23890,8 +24328,8 @@
     "reformatter",
     "s"
    ],
-   "commit": "7782be0814b52f7c35a09b21a4839c1502a4707f",
-   "sha256": "0g3mxp80hfjwf3adaslwykk01w5fh5y6nwj4687wbm5dldvhr42i"
+   "commit": "363da4b47c9de1ff091a8caf95fccc34188d59a3",
+   "sha256": "0nmhf4vql0nkc4igd9mp9v77cb0rsxfawb160f9mcgkdd6ahn3xj"
   },
   "stable": {
    "version": [
@@ -23982,14 +24420,14 @@
   "repo": "leoc/elmine",
   "unstable": {
    "version": [
-    20190212,
-    1740
+    20200520,
+    1237
    ],
    "deps": [
     "s"
    ],
-   "commit": "2f020e41940b182deeca39786a3092a2d68b5eb7",
-   "sha256": "0x2av6zjd4kkyzxm2hcwjx9x8j2fzqg85pka57hqpk2fhfhsmy3s"
+   "commit": "c78cc8705c2dffbf649b858f02b5028225943482",
+   "sha256": "05z9v3lcc0mm40k0y08v8mhnlxb4krlgj6zghfavwwz6nhxn61g3"
   },
   "stable": {
    "version": [
@@ -24180,20 +24618,20 @@
   "url": "git://thelambdalab.xyz/elpher.git",
   "unstable": {
    "version": [
-    20200516,
-    1232
+    20200628,
+    2255
    ],
-   "commit": "bea10793f68037947b6fec30a86316ca2123bbfa",
-   "sha256": "0n5z9vf5yzmdccmzfvs7xb6gxvlvgsfcdfw8m25zi1lajpjajhq6"
+   "commit": "b4450244a5e23605f80b2179ce7d4dbaff56d927",
+   "sha256": "0fjqdp4xh9q50rdxg20il1y6wwn5l1af7139f4613z4j5ha3zxxg"
   },
   "stable": {
    "version": [
     2,
-    7,
-    1
+    10,
+    0
    ],
-   "commit": "bea10793f68037947b6fec30a86316ca2123bbfa",
-   "sha256": "0n5z9vf5yzmdccmzfvs7xb6gxvlvgsfcdfw8m25zi1lajpjajhq6"
+   "commit": "b4450244a5e23605f80b2179ce7d4dbaff56d927",
+   "sha256": "0fjqdp4xh9q50rdxg20il1y6wwn5l1af7139f4613z4j5ha3zxxg"
   }
  },
  {
@@ -24219,8 +24657,8 @@
   "repo": "jorgenschaefer/elpy",
   "unstable": {
    "version": [
-    20200510,
-    1559
+    20200805,
+    1736
    ],
    "deps": [
     "company",
@@ -24229,13 +24667,13 @@
     "s",
     "yasnippet"
    ],
-   "commit": "6b7db2f23a9f248fd756e0bc537fd8d53d98eb96",
-   "sha256": "044qm7kgdnsh4yipxklyfvkrvzgw4abn6gjawkkvgniii2pf39hj"
+   "commit": "c766feb5c34dd17b7afba480ae9e90a08d75012c",
+   "sha256": "13z21jfvinjxyyi37xvx12gbr28fbr0g43x0nsip270dz797ls0v"
   },
   "stable": {
    "version": [
     1,
-    33,
+    34,
     0
    ],
    "deps": [
@@ -24245,8 +24683,8 @@
     "s",
     "yasnippet"
    ],
-   "commit": "b69ae7652e5efdda2e3dc650cd425b987ddd65ad",
-   "sha256": "1g9x67dvg5al6i9hnjcyi0zjsz71iv2jbinpzj7gcx77d0dn3cpk"
+   "commit": "980705c0b23aead72d7d6711008b1fb1706a45c2",
+   "sha256": "1x1z298axbh4xalssnq9nkf2z1sdgmx839vb01xz18kr9lfavx1x"
   }
  },
  {
@@ -24275,15 +24713,15 @@
   "repo": "AdamNiederer/elquery",
   "unstable": {
    "version": [
-    20180917,
-    2217
+    20200628,
+    1756
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "eac429d8550fbf1582c57d5e16fed9f320d6eb30",
-   "sha256": "1jkbrv5r5vzqjhadb4dcgks47gaj7aavzdkzc5gjn5zv5fmm1in2"
+   "commit": "cba7629ad886c4e51d66f8b509aad48bdfe100cc",
+   "sha256": "119g9ca40rg0aam7i2n4jhjzjzm8r7bg6q0yjaw5x1j7ywks5af6"
   }
  },
  {
@@ -24437,14 +24875,14 @@
   "repo": "wamei/elscreen-separate-buffer-list",
   "unstable": {
    "version": [
-    20161107,
-    358
+    20200807,
+    1324
    ],
    "deps": [
     "elscreen"
    ],
-   "commit": "7652d827aa1b8c1b04303c5b4b0bda5e8f85565e",
-   "sha256": "1cpmpms3r9lywmxgciz4xq7vjw2c1mxmpd89shssqck16563zwxf"
+   "commit": "88d8850108947949431425a2d938a09d941454e8",
+   "sha256": "0c18w11wy3bnxhf109dbr01fcv3y9fg4jx5nkjx2gaf0kl0d7nfi"
   }
  },
  {
@@ -24532,20 +24970,20 @@
   "repo": "emacscollective/elx",
   "unstable": {
    "version": [
-    20200422,
-    1352
+    20200728,
+    819
    ],
-   "commit": "d5ebd8ab6439fea3dcae0bcaece6e914f4ee1f6c",
-   "sha256": "1h1dx6dpwr4cml2a57mz3lq4f746cja007ckrpk3vii9ap413hf8"
+   "commit": "f9f810ffcd3cce7ed15848c72ce299609ec09414",
+   "sha256": "1p3zpg4p4a1cn13sg3hsa33gs1bdra1mlmxkagx883p3808i5qha"
   },
   "stable": {
    "version": [
     1,
     3,
-    0
+    2
    ],
-   "commit": "4cbdcd79524db4a71abbf761a3945617086f5d09",
-   "sha256": "1gb2sh2mcx8va8lgyc46pch9fswfm761935806myi9fl1v67ayk6"
+   "commit": "f9f810ffcd3cce7ed15848c72ce299609ec09414",
+   "sha256": "1p3zpg4p4a1cn13sg3hsa33gs1bdra1mlmxkagx883p3808i5qha"
   }
  },
  {
@@ -24595,11 +25033,11 @@
   "repo": "skeeto/emacsql",
   "unstable": {
    "version": [
-    20190625,
-    1859
+    20200714,
+    28
    ],
-   "commit": "a118b6c95af1306f0288a383d274b5dd93efbbda",
-   "sha256": "1qz74rk2pskpc1k6kdpqv823i5zc39i885rww05n8lrqw456cpn0"
+   "commit": "6d8cd9366284b5a27268ff4b783e2c34573d5b60",
+   "sha256": "04l1rzsmy9131h42y1v6vsfbby7v1gldwd5g600mqfjbbwcnbgsk"
   },
   "stable": {
    "version": [
@@ -24625,8 +25063,8 @@
    "deps": [
     "emacsql"
    ],
-   "commit": "a118b6c95af1306f0288a383d274b5dd93efbbda",
-   "sha256": "1qz74rk2pskpc1k6kdpqv823i5zc39i885rww05n8lrqw456cpn0"
+   "commit": "6d8cd9366284b5a27268ff4b783e2c34573d5b60",
+   "sha256": "04l1rzsmy9131h42y1v6vsfbby7v1gldwd5g600mqfjbbwcnbgsk"
   },
   "stable": {
    "version": [
@@ -24655,8 +25093,8 @@
    "deps": [
     "emacsql"
    ],
-   "commit": "a118b6c95af1306f0288a383d274b5dd93efbbda",
-   "sha256": "1qz74rk2pskpc1k6kdpqv823i5zc39i885rww05n8lrqw456cpn0"
+   "commit": "6d8cd9366284b5a27268ff4b783e2c34573d5b60",
+   "sha256": "04l1rzsmy9131h42y1v6vsfbby7v1gldwd5g600mqfjbbwcnbgsk"
   },
   "stable": {
    "version": [
@@ -24685,8 +25123,8 @@
    "deps": [
     "emacsql"
    ],
-   "commit": "a118b6c95af1306f0288a383d274b5dd93efbbda",
-   "sha256": "1qz74rk2pskpc1k6kdpqv823i5zc39i885rww05n8lrqw456cpn0"
+   "commit": "6d8cd9366284b5a27268ff4b783e2c34573d5b60",
+   "sha256": "04l1rzsmy9131h42y1v6vsfbby7v1gldwd5g600mqfjbbwcnbgsk"
   },
   "stable": {
    "version": [
@@ -24709,14 +25147,26 @@
   "repo": "cireu/emacsql-sqlite3",
   "unstable": {
    "version": [
-    20200117,
-    1922
+    20200718,
+    614
+   ],
+   "deps": [
+    "emacsql"
+   ],
+   "commit": "e920671872cd8e0ef9c3646e6f0fae331bf8a7df",
+   "sha256": "1yy9y27rckm776jnl2rh1fz3bh09690xwzq7102vlw7xkb9s7jhj"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    1
    ],
    "deps": [
     "emacsql"
    ],
-   "commit": "82b90d493dba404473b515ffd670e0dd0dba1248",
-   "sha256": "1azv9mllvyjzqjkjw9n5rmdj79fa8srbpmx61w6vm25bl9f62vpf"
+   "commit": "e920671872cd8e0ef9c3646e6f0fae331bf8a7df",
+   "sha256": "1yy9y27rckm776jnl2rh1fz3bh09690xwzq7102vlw7xkb9s7jhj"
   }
  },
  {
@@ -24961,20 +25411,20 @@
  },
  {
   "ename": "emms",
-  "commit": "caaa21f235c4864f6008fb454d0a970a2fd22a86",
-  "sha256": "1xpry8h96gvjnc0v8x0vk5dnmlq1r7m3ljpampdwv9pfwl95fh94",
+  "commit": "4caa7403144670c07e326ed3a7d982c427d4a254",
+  "sha256": "0ml66fgzxl4wsk5g7d78mqhr9gqmbld6qh31nfc6z19c8107jrd5",
   "fetcher": "git",
   "url": "https://git.savannah.gnu.org/git/emms.git",
   "unstable": {
    "version": [
-    20200508,
-    1955
+    20200716,
+    1815
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "64b9ee9c86067118b2d0055f467e60bc211aa59d",
-   "sha256": "16h9hb6d621mfi7805p2iaw814n2pm2g659wcjqxpvm5x5hpn55v"
+   "commit": "36d760e2bd7e5376aff3f03456fa6445833242ad",
+   "sha256": "0xgshxdd5zmy1c7sxvrmw0wkqwhwaccqf93zwz98gb9gsfabyxd8"
   },
   "stable": {
    "version": [
@@ -25296,15 +25746,15 @@
   "repo": "iqbalansari/emacs-emojify",
   "unstable": {
    "version": [
-    20200513,
-    1627
+    20200812,
+    628
    ],
    "deps": [
     "ht",
     "seq"
    ],
-   "commit": "dfa3c6d060914c6082d6837da32df0c337330ee4",
-   "sha256": "0m963cn916m0xa8cb1yslkcla86a34dchwy3ism62a2r9swa7p6s"
+   "commit": "d886069974d05c8c15654204f9afeaee962f3e7d",
+   "sha256": "00s6vzziiym4bqh91c1k55qjihpmqs7w6kcxnwms8mx92w40hlw2"
   },
   "stable": {
    "version": [
@@ -25435,14 +25885,14 @@
   "repo": "hrs/engine-mode",
   "unstable": {
    "version": [
-    20191105,
-    750
+    20200611,
+    1825
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "96b3488a6de2f50b8ba3a101e04ebcbe9821a989",
-   "sha256": "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"
+   "commit": "e0910f141f2d37c28936c51c3c8bb8a9ca0c01d1",
+   "sha256": "15zx4a8gvgk077pnj7wr78nfjrzrj2i9ma6cj6jj6i8ikz6wyvjz"
   },
   "stable": {
    "version": [
@@ -25465,11 +25915,11 @@
   "repo": "zenspider/enhanced-ruby-mode",
   "unstable": {
    "version": [
-    20191111,
-    2243
+    20200729,
+    634
    ],
-   "commit": "732331b99a0884dd7fc0149658d4090886857656",
-   "sha256": "12wip0l6xyqgvxvjvid1rh61yizk1r9y7xl1jz2sjds7kv6aw0kf"
+   "commit": "f0bffbe4b32bb59680f897731169442cce5a1eec",
+   "sha256": "0zjx6mz8kql9d09rzqircbqd9rcpfsn1k7nz9vwijp59m6mnjw1h"
   },
   "stable": {
    "version": [
@@ -25547,6 +25997,35 @@
   }
  },
  {
+  "ename": "envrc",
+  "commit": "f66883b0d6a49decde7d438d9d4bdfa107a3554e",
+  "sha256": "1hkz0a7rs2yqapv3asmqr9pb8r8jk5hlmrpp8ab5l7qsdjm7xn63",
+  "fetcher": "github",
+  "repo": "purcell/envrc",
+  "unstable": {
+   "version": [
+    20200714,
+    201
+   ],
+   "deps": [
+    "seq"
+   ],
+   "commit": "1dc5aad14d2c27211c7c288d2d9dffeb2e27cb2d",
+   "sha256": "11ad4i1cyz6cfsckm4jf10w0570sd2fcrji87sf5052csl4ril2h"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
+   ],
+   "deps": [
+    "seq"
+   ],
+   "commit": "a15003d6b540b1b07847310d5ed4c39046336a7d",
+   "sha256": "1sspy227b733dxx6czml5lmx9g7nsxwgnazk1b9ip81q0cm0dv55"
+  }
+ },
+ {
   "ename": "eopengrok",
   "commit": "2b87ea158a6fdbc6b4e40fd7c0f6814d135f8545",
   "sha256": "0756x78113286hwk1i1m5s8xq04gh7zxb4fkmw58lg2ssff8q6av",
@@ -25640,14 +26119,14 @@
   "repo": "emacscollective/epkg",
   "unstable": {
    "version": [
-    20200503,
-    1214
+    20200817,
+    1145
    ],
    "deps": [
     "closql"
    ],
-   "commit": "d987af46d9d763946fbf2930cacc9d6906df4382",
-   "sha256": "1jyb9m6nx91dn4isai36v1yc7shrpgnk76kpkamavrvwqdzvw6nv"
+   "commit": "ac6e85e11f0e071911279f3f0a4ea7bff35b68cf",
+   "sha256": "1g5g8rs4zpwlxmkmnml34hy0arbhq8fsmyxqjq0h1l1xxbwscdl4"
   },
   "stable": {
    "version": [
@@ -25781,15 +26260,45 @@
   "repo": "emacsomancer/equake",
   "unstable": {
    "version": [
-    20200429,
-    209
+    20200805,
+    2110
    ],
    "deps": [
     "dash",
     "tco"
    ],
-   "commit": "7e8ef8627151748156e7a4a384b6e8c6c344261b",
-   "sha256": "1ds89jk4d7j89mgfkqqc92lizh6fwwr338imzvby1lb8i17nww40"
+   "commit": "85fe1033e3aa64986d297bf1fde2d172827309cc",
+   "sha256": "0w3yp9ixdwcm3fl8104yb3rxp1h8z6i6msd95b48jia52dbajzcj"
+  }
+ },
+ {
+  "ename": "eradio",
+  "commit": "b5c8621acac2bfb7859bf0b830994fc867ecdaa2",
+  "sha256": "0kan4ia1g9xsb53gkj43c6sn2009a9cm49x2c30ccj2gl999szq2",
+  "fetcher": "github",
+  "repo": "olav35/eradio",
+  "unstable": {
+   "version": [
+    20200729,
+    1817
+   ],
+   "commit": "5e257849113b70b2b42a999994d89ec8abadf253",
+   "sha256": "1nni4yyvhqg4dscgn1xlbgh073lwjff5mqw8zxwyiahfsdi0z9ca"
+  }
+ },
+ {
+  "ename": "erblint",
+  "commit": "5c65941ad1afd57d633f8586e9034c5e14acfa18",
+  "sha256": "1m2w8krg59x5pvbmdnnf9iglx2191hhdpxmfd0ww4bgnf1pf0gn4",
+  "fetcher": "github",
+  "repo": "leodcs/erblint-emacs",
+  "unstable": {
+   "version": [
+    20200622,
+    5
+   ],
+   "commit": "89af42f776d8dc656104322edaace2ede7499932",
+   "sha256": "1s3fcic42wlab3vnwdakvy7268cr19j5rd2ajr18qkr0vibj7xxj"
   }
  },
  {
@@ -25815,14 +26324,14 @@
   "repo": "atomontage/erc-crypt",
   "unstable": {
    "version": [
-    20200511,
-    2235
+    20200516,
+    2054
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "6d158b39ea2833b753858153eb110da9b8a40fc4",
-   "sha256": "0pj330x5j9rnwcv2la2yc6w3vsg53c9ij0f3q9zi2psxbr268xi0"
+   "commit": "be87248435509f83c56a7f08ac9bcbbd3b20d780",
+   "sha256": "1d8wfa4rgwv41kmw1kpp90r8371n1l7lfx3k79k2psppvrf72xbf"
   },
   "stable": {
    "version": [
@@ -25928,14 +26437,14 @@
   "repo": "drewbarbs/erc-status-sidebar",
   "unstable": {
    "version": [
-    20171223,
-    2124
+    20200811,
+    136
    ],
    "deps": [
     "seq"
    ],
-   "commit": "ea4189a1dbfe60117359c36e681ad7c389e2968c",
-   "sha256": "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"
+   "commit": "b589b74245591257c9e666bd5cd25812e04b7a34",
+   "sha256": "08fvr5ba6gb3y52sypbdj236nxr5rl95zgz1b120scz6xal7mysy"
   }
  },
  {
@@ -26182,15 +26691,15 @@
   "repo": "ergoemacs/ergoemacs-mode",
   "unstable": {
    "version": [
-    20200319,
-    1250
+    20200526,
+    18
    ],
    "deps": [
     "cl-lib",
     "undo-tree"
    ],
-   "commit": "4a6ba06d9c618e9380d059fa25ed677b45d134a7",
-   "sha256": "0wgdzxla6kz1zfc3vfd8wc2j40kq023z7b83m2k435hcqdffark8"
+   "commit": "6a3214e1a892a45f575604f0bc4bb83175142aa4",
+   "sha256": "1n0ki4214c53ax3r54gg303kawyqivwcciyhvrgqa1y0kk093982"
   },
   "stable": {
    "version": [
@@ -26234,19 +26743,20 @@
   "repo": "erlang/otp",
   "unstable": {
    "version": [
-    20200313,
-    1030
+    20200519,
+    530
    ],
-   "commit": "e5d476b5f22927d341caf1774355d9e69e390cfa",
-   "sha256": "1kcdl56qybvq4m5dp65n3nbg6xijb793xi25yckk5nc17n1nwrzb"
+   "commit": "d9bc7858e985143a433953ba286422511b466a0c",
+   "sha256": "0ik1hhmw4xsmny9j5gbz7lr73jsvdd79xb3ygcsi8jkwz7lxi3v1"
   },
   "stable": {
    "version": [
     23,
-    0
+    0,
+    3
    ],
-   "commit": "7a8d04dbcb388a5d837a213ad249c1b96e19e998",
-   "sha256": "0hw0js0man58m5mdrzrig5q1agifp92wxphnbxk1qxxbl6ccs6ls"
+   "commit": "44b6531bc575bac4eccab7eea2b27167f0d324aa",
+   "sha256": "133aw1ffkxdf38na3smmvn5qwwlalh4r4a51793h1wkhdzkyl6mv"
   }
  },
  {
@@ -26388,8 +26898,8 @@
   "repo": "rejeep/ert-runner.el",
   "unstable": {
    "version": [
-    20200321,
-    2158
+    20200704,
+    1048
    ],
    "deps": [
     "ansi",
@@ -26399,8 +26909,8 @@
     "s",
     "shut-up"
    ],
-   "commit": "1829f05c46b0baaae160d900f89c8881f4fcdbcc",
-   "sha256": "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"
+   "commit": "59a0f07f4f6b7c4757768309e8a47cec983e862a",
+   "sha256": "198bc526s6sw8qqsbmw4wgz5m97n6kf9002f2bgg9phms7a8if4s"
   },
   "stable": {
    "version": [
@@ -26467,8 +26977,8 @@
     "s",
     "spark"
    ],
-   "commit": "9e5bcb290b38d5bd143e0ee480ed49147cfd3504",
-   "sha256": "13f7s8hk5d3psxp4qzzsqnwawsjj59cmjhmg1zi2c90qhvna78vn"
+   "commit": "3aacf72daf6a2b4104914dd40e5f33e78fb084ac",
+   "sha256": "1ki839cfsn2xr2d8a2j89llbl452d45x3y5jiaiwkcmfhf7xadcb"
   },
   "stable": {
    "version": [
@@ -26791,14 +27301,14 @@
   "repo": "4DA/eshell-toggle",
   "unstable": {
    "version": [
-    20200107,
-    2230
+    20200528,
+    1124
    ],
    "deps": [
     "dash"
    ],
-   "commit": "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033",
-   "sha256": "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"
+   "commit": "aeb7c121e4518c0edd1d2972851502303a299984",
+   "sha256": "12w38h438bg2vm8najsqizcdfyr1px5h1gba68x4mzyv2bcll2qx"
   }
  },
  {
@@ -27036,14 +27546,11 @@
   "repo": "emacs-ess/ESS",
   "unstable": {
    "version": [
-    20200516,
-    522
-   ],
-   "deps": [
-    "julia-mode"
+    20200819,
+    1030
    ],
-   "commit": "8f04fa92a11cdb4a3777755fdbaaa65e076f04ef",
-   "sha256": "10cg90aqlr5y3vmp94zhkwj3l178l9f32igpl38bzxm9hmdgikfr"
+   "commit": "1baf8bf1403fe5956a25475b03be0d8f02b3f3ca",
+   "sha256": "0asyd67krsq3xx7kk770x1f70j33bga8w0i7l4089a1jqzmpn3kx"
   },
   "stable": {
    "version": [
@@ -27178,14 +27685,15 @@
   "repo": "jschaf/esup",
   "unstable": {
    "version": [
-    20200318,
-    2256
+    20200814,
+    1400
    ],
    "deps": [
-    "cl-lib"
+    "cl-lib",
+    "s"
    ],
-   "commit": "c9c95e245068d15d8e2732098af9a5d2bc8ec931",
-   "sha256": "0i4cwwvs5zs8g2ajrrkqgrpxzywsa255rc1g7a6bxzvg9hk77f4k"
+   "commit": "0de8af8233d9ce1b67f05a50f25c481c4f1118d8",
+   "sha256": "01khb3xyj0ylwib6ryzzvqmkh5wvzxiq2n3l0s3h9zv7wx849bzv"
   },
   "stable": {
    "version": [
@@ -27244,6 +27752,30 @@
   }
  },
  {
+  "ename": "etc-sudoers-mode",
+  "commit": "e665f3b7fd75544c174ac3da9e0a498ceb694f5a",
+  "sha256": "01sn1pd6s4blf6dk3vvi70sr1mgcfsigb1qvxk3dsggf1ng2rhsk",
+  "fetcher": "gitlab",
+  "repo": "mavit/etc-sudoers-mode",
+  "unstable": {
+   "version": [
+    20200608,
+    1555
+   ],
+   "commit": "52d5be9214185cfbba56e0b39bc4af474fc95f45",
+   "sha256": "1ff4dpwr0127mziwafxry5a9iyw8lbm4z8bdlim81p4pyyll7vx6"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "commit": "8d3805d8b8e016278204d727f6b97913ea0e5079",
+   "sha256": "0cg0l8ksqrxy0clzj5x8l891873zcxwwzziv1mvwf8i618w2sjss"
+  }
+ },
+ {
   "ename": "eterm-256color",
   "commit": "e556383f7e18c0215111aa720d4653465e91eff6",
   "sha256": "1mxc2hqjcj67jq5k4621a7f089qahcqw7f0dzqpaxn7if11w333b",
@@ -27492,16 +28024,16 @@
   "repo": "emacs-evil/evil",
   "unstable": {
    "version": [
-    20200516,
-    1740
+    20200816,
+    737
    ],
    "deps": [
     "cl-lib",
     "goto-chg",
     "undo-tree"
    ],
-   "commit": "3f3b2fea87172f155e5f91d75f0fb69d8648acf2",
-   "sha256": "0ihb42v513c9jrh8d0v5a76ykhqi408cdnfpilrwq9499qr22jdg"
+   "commit": "1e7aa5bfbd86feff0ed5982e487070352d326b90",
+   "sha256": "1vb7np6yzv8iqblxg0yi1ac080k2bn7n8wz6wj8vkm080zmfwfb0"
   },
   "stable": {
    "version": [
@@ -27645,15 +28177,15 @@
   "repo": "wbolster/evil-colemak-basics",
   "unstable": {
    "version": [
-    20170425,
-    1209
+    20200630,
+    1936
    ],
    "deps": [
     "evil",
     "evil-snipe"
    ],
-   "commit": "7844079b47f47bb1dc24c885b0ac2e67524fa960",
-   "sha256": "0phspmd31pcxana2lp6mqywmghhdpj6ydsrl1bjn4b1gcp1fqsy2"
+   "commit": "dcdf5c3e844f6eef2bf9d6a502cf8c81b3edaff2",
+   "sha256": "1g9li89kg3wgpm39prz9xra12vw7mhrnjl9wqqkvj98fx6dxsdr7"
   },
   "stable": {
    "version": [
@@ -27695,16 +28227,15 @@
   "repo": "emacs-evil/evil-collection",
   "unstable": {
    "version": [
-    20200513,
-    804
+    20200808,
+    850
    ],
    "deps": [
     "annalist",
-    "cl-lib",
     "evil"
    ],
-   "commit": "e998952dfe73d296259905e1bd8f96659bfe2661",
-   "sha256": "1r896jbshniaxxh15iw87yklnr2hq5as3a8w6xb202gxz5pvc4ym"
+   "commit": "c136589d9584e5d01a4b3f2e4cf8ac5f5a23be63",
+   "sha256": "0kbv4p4v5mgjk2hbrg0c5p29yd74s4xaa8z6c8f2h6l5p28dsk4j"
   },
   "stable": {
    "version": [
@@ -28229,15 +28760,15 @@
   "repo": "emacs-evil/evil-magit",
   "unstable": {
    "version": [
-    20200409,
-    1909
+    20200604,
+    110
    ],
    "deps": [
     "evil",
     "magit"
    ],
-   "commit": "253c644807013fe92429acdef418748794b8f254",
-   "sha256": "08mh7phxsdb9w4dfs0pmr4l4fdzzr2rm88z2s8karfi5j5ik2ag5"
+   "commit": "88dc26ce59dbf4acb4e2891c79c4bd329553ba56",
+   "sha256": "0vh872rpxfwqj7m77l12czknddmz7aijk30vwb1l08yi9309cdsf"
   },
   "stable": {
    "version": [
@@ -28261,26 +28792,26 @@
   "repo": "redguardtoo/evil-mark-replace",
   "unstable": {
    "version": [
-    20150424,
-    718
+    20200630,
+    940
    ],
    "deps": [
     "evil"
    ],
-   "commit": "56cf191724a3e82239ca47a17b071c20aedb0617",
-   "sha256": "01hccc49xxb6lnzr0lwkkwndbk4sv0jyyz3khbcxsgkpzjiydihv"
+   "commit": "d4fec7b10e93cca149163324cd2b2b2dcc211047",
+   "sha256": "0v08jwb92igd8cxbb1nxjdzwymppcaar9mf89dmbk7jkqif2q72z"
   },
   "stable": {
    "version": [
     0,
     0,
-    4
+    5
    ],
    "deps": [
     "evil"
    ],
-   "commit": "56cf191724a3e82239ca47a17b071c20aedb0617",
-   "sha256": "01hccc49xxb6lnzr0lwkkwndbk4sv0jyyz3khbcxsgkpzjiydihv"
+   "commit": "d4fec7b10e93cca149163324cd2b2b2dcc211047",
+   "sha256": "0v08jwb92igd8cxbb1nxjdzwymppcaar9mf89dmbk7jkqif2q72z"
   }
  },
  {
@@ -28291,26 +28822,26 @@
   "repo": "redguardtoo/evil-matchit",
   "unstable": {
    "version": [
-    20200502,
-    1140
+    20200812,
+    1050
    ],
    "deps": [
     "evil"
    ],
-   "commit": "943bf5fb2b04e077a797cf192fd7650b41e3c3e4",
-   "sha256": "0iryzs12nn20pj5zcyhdk4mpgyrlah0pzbjawmj0l91clmhwbvhb"
+   "commit": "574d3c4e4517d3bb10bf652cacf459376ae401fe",
+   "sha256": "12c7y8dmkpqlak733cak6274fxzrk1hpywj7ky6nkfspqdvc2xz8"
   },
   "stable": {
    "version": [
     2,
     3,
-    4
+    8
    ],
    "deps": [
     "evil"
    ],
-   "commit": "5e92e374e6b46176d46323b884c25c44063331da",
-   "sha256": "1nflkmx08n3ya5vaipy1xg19hnqcp6f7ddsx9xjh5gl6ix2iz0az"
+   "commit": "8fba4f12e1bbfdbf25a8ed2a5308840f104bc7c0",
+   "sha256": "04s650hz6aa4ld3xqa272a2jsw9j1scnn5qkhpgis0w2d3gpwvpa"
   }
  },
  {
@@ -28426,11 +28957,11 @@
   "repo": "redguardtoo/evil-nerd-commenter",
   "unstable": {
    "version": [
-    20200417,
-    59
+    20200630,
+    911
    ],
-   "commit": "1bd2de52011c39777a3e8779b14cee2790dc873b",
-   "sha256": "0h8hzqjh6qq4fj0imrb5ic5m4zn3ig6s3b7b2x9r6ig9m15jpg6n"
+   "commit": "87734b9c7fcd047f73a072b9d03ec05f786eeb03",
+   "sha256": "15dahrvary0ahyzg83jxdhf00pd2231rr628nq9fl0dl54laixsd"
   },
   "stable": {
    "version": [
@@ -28520,14 +29051,14 @@
   "repo": "Somelauw/evil-org-mode",
   "unstable": {
    "version": [
-    20200101,
-    2017
+    20200601,
+    1855
    ],
    "deps": [
     "evil"
    ],
-   "commit": "2d70c981587187f4fb7d72b9c5b368e6f7c1460f",
-   "sha256": "1v20iba2b6dwr01zm69ix23xrlkm1ig8n9zn13nkna9iawafqrq9"
+   "commit": "4b23116a6ecfa687819050e5a9a419cf08d5ba90",
+   "sha256": "0r3b6j0ywkz8wggzyfnvqwwrd7ir317njdwldcdncirfwy603337"
   },
   "stable": {
    "version": [
@@ -28592,6 +29123,25 @@
   }
  },
  {
+  "ename": "evil-pinyin",
+  "commit": "640f1cd1b05d7a806404ffbc2c1a95a10ed63a55",
+  "sha256": "1gd9fdmm0fdscc3cw5c8sc1sg8yhsvrlnj3kyyj6jjbrz6s96xni",
+  "fetcher": "github",
+  "repo": "laishulu/evil-pinyin",
+  "unstable": {
+   "version": [
+    20200726,
+    546
+   ],
+   "deps": [
+    "evil",
+    "names"
+   ],
+   "commit": "ee4ea5a297fb8a445e0c886f9d20bbd4e94c00df",
+   "sha256": "1g1v0513ypq4kax56rmq5dvf8yf9absvfls6zadhniwjzmdh68ii"
+  }
+ },
+ {
   "ename": "evil-python-movement",
   "commit": "130e6d17735ff86b962859528d7e50869f683251",
   "sha256": "1qs0z93rpi9dz6hy64816afdr4k5gssyw2dhaxcn152ylg1yzkg3",
@@ -28838,15 +29388,15 @@
   "repo": "hlissner/evil-snipe",
   "unstable": {
    "version": [
-    20200422,
-    519
+    20200531,
+    1008
    ],
    "deps": [
     "cl-lib",
     "evil"
    ],
-   "commit": "2ba6353bb9253dbbc4193f1d35403e7dcc1317b1",
-   "sha256": "1sqbwg41by88qq7npsw7w9q3zmfk5adzqpqh2m84zk6fd64mc6h2"
+   "commit": "6dcac7f2516c6137a2de532fc2c052f242559ee3",
+   "sha256": "1faimkch2s08kbrwh3j77y0n5inrjr7vphy0xdl402bv0d20h8nq"
   },
   "stable": {
    "version": [
@@ -28907,21 +29457,21 @@
     "evil",
     "string-inflection"
    ],
-   "commit": "6913de02a210487c063cd63ecf27b17a24797870",
-   "sha256": "1wyd903yvp8lxbhavsr4grn79hkxcsz71mcvy3hrvnf7ifhw514a"
+   "commit": "d22a90ab807afa7f27f3815b5b5ea47d52d05218",
+   "sha256": "1vwch4kwwh82k1rlc9qsg74zbghn6vkgch5xb1wz0dmbv4id06l5"
   },
   "stable": {
    "version": [
     1,
     0,
-    0
+    1
    ],
    "deps": [
     "evil",
     "string-inflection"
    ],
-   "commit": "f6a3eca0f0fa8e56e6938e1dd48537eef1fae05f",
-   "sha256": "1akk0yylwcw4f91hprrrsijhbdcmrx1nnpgfyzpl4k5d4b30y8d5"
+   "commit": "d22a90ab807afa7f27f3815b5b5ea47d52d05218",
+   "sha256": "1vwch4kwwh82k1rlc9qsg74zbghn6vkgch5xb1wz0dmbv4id06l5"
   }
  },
  {
@@ -28932,26 +29482,26 @@
   "repo": "emacs-evil/evil-surround",
   "unstable": {
    "version": [
-    20191217,
-    1131
+    20200603,
+    2216
    ],
    "deps": [
     "evil"
    ],
-   "commit": "9b0b17f06cef9bac81ee4800d121265e54718a17",
-   "sha256": "15v2spg5rhddr97pxjfvxj36sh7knp753a9qpw8v5zjnp65kf2kn"
+   "commit": "346d4d85fcf1f9517e9c4991c1efe68b4130f93a",
+   "sha256": "1gfgmr4909m36gknprcam6q4rkcqfbi6w43ky7x6jnlmgb6mxggg"
   },
   "stable": {
    "version": [
     1,
     1,
-    0
+    1
    ],
    "deps": [
     "evil"
    ],
-   "commit": "9b0b17f06cef9bac81ee4800d121265e54718a17",
-   "sha256": "15v2spg5rhddr97pxjfvxj36sh7knp753a9qpw8v5zjnp65kf2kn"
+   "commit": "346d4d85fcf1f9517e9c4991c1efe68b4130f93a",
+   "sha256": "1gfgmr4909m36gknprcam6q4rkcqfbi6w43ky7x6jnlmgb6mxggg"
   }
  },
  {
@@ -29023,14 +29573,14 @@
   "repo": "emacs-evil/evil",
   "unstable": {
    "version": [
-    20200304,
-    911
+    20200816,
+    737
    ],
    "deps": [
     "evil"
    ],
-   "commit": "3f3b2fea87172f155e5f91d75f0fb69d8648acf2",
-   "sha256": "0ihb42v513c9jrh8d0v5a76ykhqi408cdnfpilrwq9499qr22jdg"
+   "commit": "1e7aa5bfbd86feff0ed5982e487070352d326b90",
+   "sha256": "1vb7np6yzv8iqblxg0yi1ac080k2bn7n8wz6wj8vkm080zmfwfb0"
   },
   "stable": {
    "version": [
@@ -29046,6 +29596,38 @@
   }
  },
  {
+  "ename": "evil-tex",
+  "commit": "2b8ead8c7b1b7cdaefd35e9622fbb99307715e08",
+  "sha256": "1aph898q7mkw5vgwd1c7fh8vrgmarrbbkglgdfnawg8jycxac6sp",
+  "fetcher": "github",
+  "repo": "iyefrat/evil-tex",
+  "unstable": {
+   "version": [
+    20200818,
+    1628
+   ],
+   "deps": [
+    "auctex",
+    "evil"
+   ],
+   "commit": "03c014d63373c21c511506f36763a355e566eb01",
+   "sha256": "096im6yld0bqkdrb3ywxiabv55l8qdvg10887iwq86zprj89igmf"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    1
+   ],
+   "deps": [
+    "auctex",
+    "evil"
+   ],
+   "commit": "bb01576e4cf9cc10c529621ced3ef3a7eb5ab376",
+   "sha256": "1d4s9f0p8bmch3kv7zh5fcv1y6nxza9kfcrjrdvmflz1nb96sy6g"
+  }
+ },
+ {
   "ename": "evil-text-object-python",
   "commit": "0d0893b07bc4a057561a1c1a85b7520c50f31e12",
   "sha256": "0jdzs1yn8nrxq890427yjrxdvnzj8jy7bs3jj4w4c0fik26ngqhm",
@@ -29569,20 +30151,20 @@
    "deps": [
     "evil"
    ],
-   "commit": "d5daea30176d48e74c9d063ac9bfc240ebeb97d0",
-   "sha256": "18mb7ik15yygfyjr5y2awbn5lrr3b9z1f31gnfslvrlav2nl1m7d"
+   "commit": "aee7af7b7a0e7551478f453d1de7d5b9cb2e06c4",
+   "sha256": "0m98bwj8dy90ifck8rsda6zfgbjrv5z0166pp7qzvwls9rqa695m"
   },
   "stable": {
    "version": [
+    1,
     0,
-    0,
-    6
+    0
    ],
    "deps": [
     "evil"
    ],
-   "commit": "70f7ca2a4c6de0392e5e54ac4f16c96daa106be6",
-   "sha256": "0ns43whqcq3cv9vh8wbakj5fgs0lsn8f3q1rgl4rw4mfgbvv85pm"
+   "commit": "5e7b5721bf48aa49c6cdb5d41b908ef7d513b2a8",
+   "sha256": "0xia8dvpz294pqc3zdr0knhdlw251dhkdm69v1005674kd15259w"
   }
  },
  {
@@ -29593,11 +30175,11 @@
   "repo": "purcell/exec-path-from-shell",
   "unstable": {
    "version": [
-    20191229,
-    112
+    20200526,
+    324
    ],
-   "commit": "2d152d17814c6d551d525d83201da72c4047c1de",
-   "sha256": "129iccdddpz0hhb25v63a8pk76ayx67jn47rwd3x6wzsnhsg3pp6"
+   "commit": "e5647b910900972bc59acea7b74e932ba0a94ce2",
+   "sha256": "18awpmyrvcw6yckms8wfgyh5kfyva1w7vpvclqa655l22brbvpph"
   },
   "stable": {
    "version": [
@@ -29783,11 +30365,11 @@
   "repo": "extemporelang/extempore-emacs-mode",
   "unstable": {
    "version": [
-    20200408,
-    2253
+    20200518,
+    1043
    ],
-   "commit": "09518ae6650d7be33a4633a4c0f31b7130d04c6e",
-   "sha256": "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"
+   "commit": "7d0ca861e6b483be1f4a08e63c5ade9cd07b4799",
+   "sha256": "0mw041jccyn8s1n3wpas397k2vrp9ryq9lfj16ipk9iqs4la6hlx"
   }
  },
  {
@@ -29821,19 +30403,20 @@
   "repo": "doublep/extmap",
   "unstable": {
    "version": [
-    20181028,
-    1645
+    20200617,
+    1905
    ],
-   "commit": "187f621cb2d9413595cb47917641e5692e3b37cd",
-   "sha256": "1h9d7fgvy9xz9rw6kf5q606j2k54xqmvva028d929h8aibb6pch2"
+   "commit": "2a6373d4fad1a5ac95272cabb6f5e4af89233d67",
+   "sha256": "0n0hz93x7mbf95mf8vvc6cam7qbzwj4kskbbws07km2av7jsi166"
   },
   "stable": {
    "version": [
     1,
+    1,
     1
    ],
-   "commit": "1139b57d8f4276fe56b8416fdaf4745f2cdfe7c3",
-   "sha256": "0jgyscjfparnby0whrmbgvsab2a7qkaqhysmh3s3jh635fndm253"
+   "commit": "341e3e16e217da5a006c0859cb3a59cbc40cfb84",
+   "sha256": "09kia3mr4si8kn46kyiza9nl669b22vmgc70ng3mqz742lph5siw"
   }
  },
  {
@@ -29863,11 +30446,11 @@
   "repo": "agzam/exwm-edit",
   "unstable": {
    "version": [
-    20200126,
-    27
+    20200728,
+    8
    ],
-   "commit": "bc25ba094b383be3c650ca0b7e1534efe2bb154f",
-   "sha256": "1z1ya9xgknka3dy3b3x8zzfkxdx5jqsi8q5aqkvxjxa6n7mmqdwv"
+   "commit": "2fd9426922c8394ec8d21c50dcc20b7d03af21e4",
+   "sha256": "1gwqwj50ch8iib5yqbyvski7vxiwid6s49lj2xcy5kksnx1a2410"
   }
  },
  {
@@ -29916,14 +30499,14 @@
   "repo": "ieure/exwm-mff",
   "unstable": {
    "version": [
-    20190810,
-    1744
+    20200516,
+    2335
    ],
    "deps": [
     "exwm"
    ],
-   "commit": "a6a4b3dda01cbcf411fc2824981eaa9e85199a52",
-   "sha256": "1f4yr4q5dayxmyvrdxbbviks6l02amqhgfa97k7cz9rwscsavg6c"
+   "commit": "81fbbea495e32aef2e2d86c097cb586422d8822c",
+   "sha256": "0c3k2cs57iahm5dc1i3h05kiz4fjh7l2675im8kh91jx7lk27vb5"
   },
   "stable": {
    "version": [
@@ -30623,11 +31206,11 @@
   "repo": "yqrashawn/fd-dired",
   "unstable": {
    "version": [
-    20200428,
-    332
+    20200713,
+    243
    ],
-   "commit": "001cc95effdd5c4d9974b3f2c40b2ddf1f0e3de2",
-   "sha256": "1ab03jn1kg4bq97d7dzinpxlyg3wcx4cha0a7ibqdbqrci3znigc"
+   "commit": "5622041068d5fa2f299dbc8aa91fece0ba260086",
+   "sha256": "028qm0snna2w8wrgx988nhw3sdid5n3nr01hvavnzyhadha1j6fc"
   },
   "stable": {
    "version": [
@@ -30656,8 +31239,8 @@
     "page-break-lines",
     "ppp"
    ],
-   "commit": "529b7ec69f1694d7dc8aacb5066cf4ddcf24cc58",
-   "sha256": "0flph6yv5fj5ladksjqfpj9j8p2jcc102kbc833bvx1cnmjx7qk4"
+   "commit": "3f19293dada8bf368e9f86f783610e7ca0a51ecb",
+   "sha256": "11ml9n4bkm0150ifyx3igx55hnnrhbg04q8sb15v734xi29swp6z"
   },
   "stable": {
    "version": [
@@ -30677,11 +31260,11 @@
   "repo": "michaelklishin/cucumber.el",
   "unstable": {
    "version": [
-    20190801,
-    1137
+    20200815,
+    1617
    ],
-   "commit": "11ae1671629bfedaa553c7b819676d64eb320992",
-   "sha256": "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28"
+   "commit": "8e1464113b489b54067294cd988ff6a11a423fdb",
+   "sha256": "1lmfksx49ig4b7nqg0mmaalz08b280iaqgsc0x9i471m9kvbisp7"
   },
   "stable": {
    "version": [
@@ -30708,6 +31291,36 @@
   }
  },
  {
+  "ename": "feed-discovery",
+  "commit": "eaea977d51dd55a0dd2bfdc2f7cff822ed4053d7",
+  "sha256": "0yd8hsc6dqipmqh7ahbmr16gj5p4lh8a55652x1lic3q4ssah1ql",
+  "fetcher": "github",
+  "repo": "HKey/feed-discovery",
+  "unstable": {
+   "version": [
+    20200714,
+    1118
+   ],
+   "deps": [
+    "dash"
+   ],
+   "commit": "47692787326a14c06dab6815bb18caced59a5bf0",
+   "sha256": "1mj86p4zw73c1n6nqv35zhgsqrmcmgvi07q60dahs016bwdzc6jb"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "deps": [
+    "dash"
+   ],
+   "commit": "3812439c845c184eaf164d3ac8935de135259855",
+   "sha256": "0v0xcy81a0kysycm3p8rl64vrsc9ph3d4yqzxp7kik9rmkgrp89w"
+  }
+ },
+ {
   "ename": "fennel-mode",
   "commit": "cda0732050a17b2dc70b80afd6fc6bb9cf8bb60f",
   "sha256": "0lg69rjvbg7zl4jxc88m12r4rgv2mg2xdyz591mdmgvxwr2hfrv9",
@@ -30715,11 +31328,20 @@
   "repo": "technomancy/fennel-mode",
   "unstable": {
    "version": [
-    20200405,
-    1935
+    20200714,
+    237
    ],
-   "commit": "7fadf2580c3afcae3f6ebc54dad0e519b7600f1d",
-   "sha256": "1qpfpfdm2d8bdqm7h62y3hgbip67yqmblhg66zlmfxfdnsad5ls6"
+   "commit": "a39543750ba337b9327108ba17ffb0cdb18c7f9b",
+   "sha256": "0p9n0plb1ry6r8i09if6mzhhk4gs1saxm05msq8sgwdjs6r1ra61"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    0
+   ],
+   "commit": "ae4634bef12f66a1d4721ab74c5bf8dd29d710d2",
+   "sha256": "15b5zb66dzszpdiqkwgxqv434kqgpk1l065ic4lbj3y3krm2snbg"
   }
  },
  {
@@ -30745,28 +31367,28 @@
   "repo": "jcs-elpa/ffmpeg-player",
   "unstable": {
    "version": [
-    20200224,
-    554
+    20200720,
+    1028
    ],
    "deps": [
     "f",
     "s"
    ],
-   "commit": "9a80e1d42a4b01879a7585485384af6431b34651",
-   "sha256": "129mfslbp15d9z83r38lcqxnfx3n5jldaja5qbdgrmlw14irgx0r"
+   "commit": "164fb15d70adbc186eb2d987f5c5143aa7336659",
+   "sha256": "0i6r2mlpahrnszr9vk476iqvc1c8cpp6wn6fhlnz6vw4dybpw5p5"
   },
   "stable": {
    "version": [
     0,
     2,
-    0
+    1
    ],
    "deps": [
     "f",
     "s"
    ],
-   "commit": "214c08b362daa138d2e17883a6b4d096f22f5ebb",
-   "sha256": "0w2afgdd3pasrqi9apnmp0qqg4qvd0skizybrnyi9abnc0bp9v7x"
+   "commit": "164fb15d70adbc186eb2d987f5c5143aa7336659",
+   "sha256": "0i6r2mlpahrnszr9vk476iqvc1c8cpp6wn6fhlnz6vw4dybpw5p5"
   }
  },
  {
@@ -30850,17 +31472,17 @@
  },
  {
   "ename": "fill-column-indicator",
-  "commit": "4ea0c00a7784621fcca0391a9c8ea85e9dd43852",
-  "sha256": "0w8cmijv7ihij9yyncz6lixb6awzzl7n9qpjj2bks1d5rx46blma",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "1fd9l7idzn9vwcy3v80fnn2d8g4c9g3rc505sapc5wgkn8in0p6d",
   "fetcher": "github",
-  "repo": "alpaker/Fill-Column-Indicator",
+  "repo": "alpaker/fill-column-indicator",
   "unstable": {
    "version": [
-    20191109,
-    10
+    20200806,
+    2239
    ],
-   "commit": "3d88b8a4a3eeabb8d1c9ef27d3c6f5d98517be77",
-   "sha256": "1rklnjsqz8krqjll35xd5xwg79xqwh0sldwbcnymkjwywbky8yhh"
+   "commit": "c35f9de072c241699b57bcb46da84bed5af29cfe",
+   "sha256": "1q682bn6wgvga8arv4xfmr4nnw8nhw7qkjrlp5crpyv42x9yqr73"
   },
   "stable": {
    "version": [
@@ -30902,11 +31524,11 @@
   "repo": "snarfed/fillcode",
   "unstable": {
    "version": [
-    20171029,
-    1625
+    20200524,
+    2226
    ],
-   "commit": "d0a9e20f5fcc24a786d09ea19bfb9237681ba823",
-   "sha256": "1mf2gfcjaqbw523vkfbzs2nl1y9bn9gbgmbvn2phbyj78gzq18za"
+   "commit": "501468082e46bd0975ef4d8765363fd564338099",
+   "sha256": "0z18x3gxh004nd648hwqdlb60a6ss61pkkqg30xpdmsrj8darf5q"
   }
  },
  {
@@ -30987,8 +31609,8 @@
    "deps": [
     "ivy"
    ],
-   "commit": "acedab403f69f242fa41012c20078500d46aa9e8",
-   "sha256": "0p21vm6xz6093nic2wwgly18a85xki3wp0a2vy4hgy0dl7qici86"
+   "commit": "506f35e91e06463cca7390da6ebffc411b8c220f",
+   "sha256": "1iwfhymbmlmakbga1jlp7w6jlnj0jbb0zs1yxxg8mmj7k9ss2xjr"
   },
   "stable": {
    "version": [
@@ -31128,8 +31750,8 @@
     20200415,
     2356
    ],
-   "commit": "a61d7fce35eadba39236a6a3e9aa301e161d147b",
-   "sha256": "1bn81qwkvhznc5pi6bq08kp83208pj09vknfszx152r72sv5fpmz"
+   "commit": "c6945a005b9a581c81e2f3560eab4bd629967364",
+   "sha256": "1ylndx5n433zy9y7n79xhl7p0g1f4c0y97ha50d8fqm451jm0569"
   }
  },
  {
@@ -31298,20 +31920,20 @@
   "repo": "marcowahl/fit-text-scale",
   "unstable": {
    "version": [
-    20200315,
-    2120
+    20200701,
+    2239
    ],
-   "commit": "387acab18f9f4064c051771cf666b8550718dc27",
-   "sha256": "0mrl112vjsl6ddjv0j2pg97s6zk8c2qb92wqsq775ahr1cbhvbw7"
+   "commit": "a87341d4fb2077076eb83af0fb510112900aaebe",
+   "sha256": "1ayswmb99mimsg6b05nnvm15yg8w2512sv1mjk1nbifz627vgq2x"
   },
   "stable": {
    "version": [
     1,
     1,
-    3
+    4
    ],
-   "commit": "75f74aa14bb38ab00f184ae0a51262eaab07a27c",
-   "sha256": "1nc1p4qbpvnqq2vi7pck3zygahhippvy2xgqmha4lpq5f996lmyx"
+   "commit": "ba63f0591c3be1644ee7ee972430c74b5d346579",
+   "sha256": "014vbzxz1jmm83a5mg4zsyxm8nw96n8s2l7h3myhrn880d9xnqgg"
   }
  },
  {
@@ -31325,8 +31947,8 @@
     20190713,
     1349
    ],
-   "commit": "d3e17161d137fb75baf1449741ccaadb949e127a",
-   "sha256": "18yk3vs4v7n8zmxv80ss7bd94zmr14nring0d5bavax65b4wqk59"
+   "commit": "7aef6fb29840a2f3c7e3c01eeeb7838a0e702050",
+   "sha256": "0hf4x16fr5z5l2ypp41sw78dz5qpi14pphpbh8zdg4ky5sa8d4fd"
   },
   "stable": {
    "version": [
@@ -31375,8 +31997,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "8d023f13710a90ae4da644d5485bf2be2646b6a1",
-   "sha256": "0pb5sd5cpz4173xi9kzgl9jx69169aymk94kdr6xgzhqda7iwy7p"
+   "commit": "46487e5279a3079730e2d7146ace7c8ad42371ac",
+   "sha256": "0ij0bjrb446h07lyhflfk06sk802jylgdl11ib00r89zai8sq8r7"
   },
   "stable": {
    "version": [
@@ -31499,11 +32121,11 @@
   "repo": "seblemaguer/flatfluc-theme",
   "unstable": {
    "version": [
-    20200419,
-    1033
+    20200707,
+    630
    ],
-   "commit": "f81bb130be69e9f321e2085b627387074d23a253",
-   "sha256": "17z5bmcd2c4k26w9xd8npaqwk9wwr2nf0d6vikzj0mxg0pdlbaz2"
+   "commit": "5a30b1cd344ac0d3c3bf9dab017805ab96897b54",
+   "sha256": "0vcinly3lrrkbihafgxcv084zn8fhw94wc8qjjq2lwcc1db7lfjc"
   }
  },
  {
@@ -31662,11 +32284,11 @@
   "repo": "IvanMalison/flimenu",
   "unstable": {
    "version": [
-    20200415,
-    2353
+    20200810,
+    1510
    ],
-   "commit": "f110bc77415a7594742f3b12551571c4069c9157",
-   "sha256": "1y832w4n10k9lfi90lhq8l9s56zcg24j9j8jklkzby1vf34vq0ql"
+   "commit": "4c0ff37cf3bd6c836bd136b5f6c450560a6c92b9",
+   "sha256": "1z57vm8pgxfhklzz4gpyqy8wwv3dzl76dzgilx5pfkd69m2jrijg"
   }
  },
  {
@@ -31796,11 +32418,11 @@
   "repo": "MetroWind/flucui-theme",
   "unstable": {
    "version": [
-    20200204,
-    1930
+    20200815,
+    2103
    ],
-   "commit": "01a3df3530474da7b4303e4eea2ed1fae00d1776",
-   "sha256": "1bfnpligs32mpizrz9fb1pyp1zxq2rmympcg9pqrgpkdlxvs6xrf"
+   "commit": "6591b5093e6e8f0e720e3995a16a91835b2e7a48",
+   "sha256": "1lrpx1y103655xwaqkvn7i2zvkzbsf5bm7zndaj31rpm917xcm3i"
   }
  },
  {
@@ -31811,11 +32433,11 @@
   "repo": "amake/flutter.el",
   "unstable": {
    "version": [
-    20200508,
-    1252
+    20200718,
+    1434
    ],
-   "commit": "8818bc07727fe748edf4aea629b510b7ada680b3",
-   "sha256": "05pl4w3zmfg24fk1pj053r0f8sx3m1zacfymvpya022y1ggpvnh6"
+   "commit": "78b3c572584c95220a40934bd67fd5e3fb096f96",
+   "sha256": "1vmm1d5sviwwvhm6cbr3sirfhqxa04d0s62a8vsiydb1q7868g2s"
   }
  },
  {
@@ -31833,8 +32455,8 @@
     "flutter",
     "flycheck"
    ],
-   "commit": "8818bc07727fe748edf4aea629b510b7ada680b3",
-   "sha256": "05pl4w3zmfg24fk1pj053r0f8sx3m1zacfymvpya022y1ggpvnh6"
+   "commit": "78b3c572584c95220a40934bd67fd5e3fb096f96",
+   "sha256": "1vmm1d5sviwwvhm6cbr3sirfhqxa04d0s62a8vsiydb1q7868g2s"
   }
  },
  {
@@ -31944,8 +32566,8 @@
   "repo": "flycheck/flycheck",
   "unstable": {
    "version": [
-    20200516,
-    1719
+    20200610,
+    1809
    ],
    "deps": [
     "dash",
@@ -31953,8 +32575,8 @@
     "pkg-info",
     "seq"
    ],
-   "commit": "309d37286729994094b931344c9a664dd7c6c08d",
-   "sha256": "1gsa4lik5f0dzn897lh369nmcn7n61if80ll5jc5qiymm1fx16cr"
+   "commit": "c02cd773dded0215f9417ec04dfe8dabda63ef43",
+   "sha256": "15w2b98zylppbfvy653i3a5jrxqvbrz8lqs4pzb39w2mbf8nxibx"
   },
   "stable": {
    "version": [
@@ -32056,14 +32678,14 @@
   "repo": "alexmurray/flycheck-bashate",
   "unstable": {
    "version": [
-    20160630,
-    440
+    20200625,
+    642
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "77fa03dbc578c34fe71ca44926bac2aff8f2b021",
-   "sha256": "1jcay4gncpr0fap6qlm6k4r5b94s18zj8j56w462hvxydaxxiql6"
+   "commit": "5e673c591d017329d0a07a61dc1223fa98639ee2",
+   "sha256": "1gaih50mkyby0r4qnmc03dy111ik4and5p6r3lvsflpvd3hcxjn3"
   }
  },
  {
@@ -32313,15 +32935,15 @@
   "repo": "flycheck/flycheck-color-mode-line",
   "unstable": {
    "version": [
-    20171122,
-    707
+    20200528,
+    416
    ],
    "deps": [
     "dash",
     "flycheck"
    ],
-   "commit": "cc474804d4e8088a627485faaf4217a5781aec7d",
-   "sha256": "0lk8p0wb7g9lvxjv9rl59hd9f0m0ksw9rgspis8qshpz8pj5785f"
+   "commit": "575b604cfe21f65fb07c134392c382c163c87739",
+   "sha256": "04wc61my2p6zbq22nh6yvap5aww9lfr5zgd7mf0l1chbvi9scdn0"
   },
   "stable": {
    "version": [
@@ -32381,14 +33003,14 @@
   "repo": "crystal-lang-tools/emacs-crystal-mode",
   "unstable": {
    "version": [
-    20180627,
-    242
+    20200805,
+    2344
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "2428b016243e78a0312cf6b3ba6939e7169a1405",
-   "sha256": "0al65ldsbmm15h4y79i8avk63qq1y7fqzzad8p327z6d42zfm1qj"
+   "commit": "f9e4db16ff9fdc6a296363aa35d19cfb4926e472",
+   "sha256": "1x0lmb48bza2w52s15288hpbipafs87lj5lv0ldd1q4r9yv0i102"
   },
   "stable": {
    "version": [
@@ -32496,24 +33118,6 @@
   }
  },
  {
-  "ename": "flycheck-demjsonlint",
-  "commit": "9a15a17a5aa78aed72958b2a1bde53f0c0ab5be7",
-  "sha256": "0bcfkc9fch1h6gva64j71kb9l8fc9rz6wk0s9w1c1chx1z4nlill",
-  "fetcher": "github",
-  "repo": "uqix/flycheck-demjsonlint",
-  "unstable": {
-   "version": [
-    20161115,
-    718
-   ],
-   "deps": [
-    "flycheck"
-   ],
-   "commit": "a3dfe1df8ecdea76c076c0849901427567356228",
-   "sha256": "0zra3rl0kn70kn30wx1lqh9218k06mq3j8jadax61nnynw7bzsa5"
-  }
- },
- {
   "ename": "flycheck-dialyxir",
   "commit": "fa49551b8f726c235e03ea377bb09a8be37b9f32",
   "sha256": "0pacxidpgwp7wij17c5r0fm5w3nga3lp4mcim365k3y5r4ralc0c",
@@ -32636,6 +33240,37 @@
   }
  },
  {
+  "ename": "flycheck-eldev",
+  "commit": "170b59e0f97ea8a27910efc1de3c82ee188a3fe5",
+  "sha256": "0z83w4gd34g4kgdfc46c5zkhm0awa1hhi9p600k3sd4n8ac2ms4m",
+  "fetcher": "github",
+  "repo": "flycheck/flycheck-eldev",
+  "unstable": {
+   "version": [
+    20200614,
+    1904
+   ],
+   "deps": [
+    "dash",
+    "flycheck"
+   ],
+   "commit": "c2e2bea1e69fe5f50a9629dec1d9b468ee92de54",
+   "sha256": "0rkzjzghfgypplnsx4w4ih9dh8xyysy9wb0jqmbg13zvc3jcb600"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "deps": [
+    "dash",
+    "flycheck"
+   ],
+   "commit": "1bddbfaa1de22879ea2b900c9f8d6f16940ee9fb",
+   "sha256": "0ma26gk9a3lw60i172wcwdsyfa19j7fj579b4yb7gf9ibca2hs5m"
+  }
+ },
+ {
   "ename": "flycheck-elixir",
   "commit": "da2ab73ab1426f71ea2b2bea2b418941856b3454",
   "sha256": "0f78fai6q15smh9rvsliv8r0hh3kpwn1lz37yvqkkbx9vl7rlwld",
@@ -32850,30 +33485,59 @@
   "repo": "jcs-elpa/flycheck-grammarly",
   "unstable": {
    "version": [
-    20200203,
-    446
+    20200720,
+    951
    ],
    "deps": [
-    "cl-lib",
     "flycheck",
     "grammarly"
    ],
-   "commit": "72425743364f4fd9516f94546a7432457e1e7df0",
-   "sha256": "17dl0g9f58gc9rkk87kg1bqy6qqz225ng7ymdg2ikhd8i2pd2zkw"
+   "commit": "698b82936f6b592591f7ed9cc3e3cdf0099e8d96",
+   "sha256": "14lp2js3vlwj2wd8l38bkg4q3dgp4n51smfi70isg3rpi8i0csxy"
   },
   "stable": {
    "version": [
     0,
     1,
-    4
+    5
    ],
    "deps": [
-    "cl-lib",
     "flycheck",
     "grammarly"
    ],
-   "commit": "1bcb11c3c7878c1b0d73318399e572e9a15587b1",
-   "sha256": "1daw5mmif1nzg4yr5zm42bzzfg1n4qxps3pkcisga11mbp9g553r"
+   "commit": "698b82936f6b592591f7ed9cc3e3cdf0099e8d96",
+   "sha256": "14lp2js3vlwj2wd8l38bkg4q3dgp4n51smfi70isg3rpi8i0csxy"
+  }
+ },
+ {
+  "ename": "flycheck-guile",
+  "commit": "e94519d09e86af65778a7b81877e21d139c9a529",
+  "sha256": "1jxdqn3smpd9vf26y24m35yg60xjkqcazlj18q0vrf4ib188d36c",
+  "fetcher": "github",
+  "repo": "flatwhatson/flycheck-guile",
+  "unstable": {
+   "version": [
+    20200721,
+    103
+   ],
+   "deps": [
+    "flycheck",
+    "geiser"
+   ],
+   "commit": "2940f1622fa352e7ca95a9e4ad65958c5575da02",
+   "sha256": "0cs5r0ik6a3bl1k3imjl0r8y1i69kx9x9m9cgxj470qk34brwyj5"
+  },
+  "stable": {
+   "version": [
+    0,
+    2
+   ],
+   "deps": [
+    "flycheck",
+    "geiser"
+   ],
+   "commit": "2940f1622fa352e7ca95a9e4ad65958c5575da02",
+   "sha256": "0cs5r0ik6a3bl1k3imjl0r8y1i69kx9x9m9cgxj470qk34brwyj5"
   }
  },
  {
@@ -32958,8 +33622,8 @@
     "flycheck",
     "indent-lint"
    ],
-   "commit": "23ef4bab5509e2e7fb1f4a194895a9510fa7c797",
-   "sha256": "00ipp87hjiymraiv6xy0lqzhn9h3wcrw7z4dkzb2934d7bd08j29"
+   "commit": "c55f4ded11e8e50a96f43675a071354a8fb501c3",
+   "sha256": "0d7vkgzsx6ka4zliscsg6drqhg2bj16i911ryzmsp4v6hj294jrc"
   },
   "stable": {
    "version": [
@@ -33042,14 +33706,14 @@
   "repo": "flycheck/flycheck-inline",
   "unstable": {
    "version": [
-    20190320,
-    1611
+    20200808,
+    1019
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "cf9eceabff8370f3b834b943a5777b9f914583f9",
-   "sha256": "1sk8r90iqxpzrg0lpq4vd8ywdi08i0bbmgdivmr510jw2bpi3wp4"
+   "commit": "0662c314bd819f9b46f8b2b13f0c650445b3a8c5",
+   "sha256": "1wlvwi8y5pb3gy3j061v7krxfb1766yw5iika5ymk4zjg9g057vn"
   }
  },
  {
@@ -33163,6 +33827,25 @@
   }
  },
  {
+  "ename": "flycheck-keg",
+  "commit": "bbf222afada736c149ec91d148c25aad5e077c95",
+  "sha256": "1kyf3fimdi3kbg9simkn0gqmqd8i5la26p7xrhhg34am5n6wm3g6",
+  "fetcher": "github",
+  "repo": "conao3/keg.el",
+  "unstable": {
+   "version": [
+    20200726,
+    218
+   ],
+   "deps": [
+    "flycheck",
+    "keg"
+   ],
+   "commit": "fea2f831d84d7642c35820bb63250487e46683e5",
+   "sha256": "062lnv7g9ixs6d0qzp6py9ajd2rbrk7l2yrz3dn5zz8lx06hbaga"
+  }
+ },
+ {
   "ename": "flycheck-kotlin",
   "commit": "f158727cc8892aadba0a613dd08e65e2fc791b48",
   "sha256": "0vh4f3ap1ciddf2fvfnjz668d6spyx49xs2wfp1hrzxn5yqpnra5",
@@ -33228,14 +33911,14 @@
   "repo": "hinrik/flycheck-lilypond",
   "unstable": {
    "version": [
-    20171203,
-    1332
+    20200614,
+    2104
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "cc1b7677a932c42e5dab1661ad7b923d4aae744c",
-   "sha256": "1yfsg52z4nhbh33fbsig24c9s0mc4xm72ll36h6ibld9fvqsgv6k"
+   "commit": "17133911b519be76365103dec8c10cb2f3729f1a",
+   "sha256": "01486ch8vsq7kcfdpggvykbdangv2pvq2v4g9npr9izlja2kwpar"
   }
  },
  {
@@ -33277,38 +33960,6 @@
   }
  },
  {
-  "ename": "flycheck-mix",
-  "commit": "fd2a4d71b7f4c0082b687a23fd367d55186625a9",
-  "sha256": "1wp8lp45lc519w3xsws2c91jlbfmc0pc8764kxsifk74akwcizfl",
-  "fetcher": "github",
-  "repo": "tomekowal/flycheck-mix",
-  "unstable": {
-   "version": [
-    20200211,
-    1414
-   ],
-   "deps": [
-    "elixir-mode",
-    "flycheck"
-   ],
-   "commit": "d3c075f61ace6695919e90239cee6567cce09638",
-   "sha256": "19bvnryfxz4idw1dgp90mpjbp3512423m3xqgczskv4csns4hw1q"
-  },
-  "stable": {
-   "version": [
-    1,
-    0,
-    0
-   ],
-   "deps": [
-    "elixir-mode",
-    "flycheck"
-   ],
-   "commit": "c565ebb12a48fcd49cc65656d79295c3288fcb84",
-   "sha256": "1yncail979sfljmib7b1m9aw376xd4b76apz4d50hj83lrfy169c"
-  }
- },
- {
   "ename": "flycheck-mmark",
   "commit": "2fd10423ab80e32245bb494005c8f87a8987fffb",
   "sha256": "0lnw7pz40hijcpi9b92vjxvvyh9v50ww2f2r8z9pyhl9mjy2245x",
@@ -33322,8 +33973,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "f8fdd59ccb9ddc7d81efbf3dde096dc66e3f9fa1",
-   "sha256": "08rwmvddla2h0wjiljl8qab87chsyc42hzap2mqih2n7finvzj4f"
+   "commit": "a285d849e6e227b79bef98f575ecfa43a70661da",
+   "sha256": "1wdv7iv3lmrpxxdas1p3grkpi08c4ipjfg170nfd2fy9nhr8iy38"
   },
   "stable": {
    "version": [
@@ -33484,8 +34135,8 @@
     "flycheck",
     "package-lint"
    ],
-   "commit": "caea75f77dc7668c7aa0ebcd48f677e3522b5d77",
-   "sha256": "1x63rwpyzcn99jzhyxh91l3hp2j55wspxdv5rhvnpbar5nlqlbz1"
+   "commit": "64cf27d69051e02a32e3c517cbfea23f9d2d7557",
+   "sha256": "0m2bmdwrj7ccf6ndv089qbbrz1msbcgls0ckbbhzpxxq39as2rpv"
   },
   "stable": {
    "version": [
@@ -33552,8 +34203,21 @@
     "flycheck",
     "pest-mode"
    ],
-   "commit": "4ae88a9c81d499bbe99978ff0216b645fed70023",
-   "sha256": "1zc7dmgp3s9q33wkvw6i7zzlcaa65ixx3hxb78m62lk2a7fzb3ih"
+   "commit": "43447a2c70f98edd1139005e32f437d3f142442b",
+   "sha256": "1ccpb1jbynlqqzhsm3h7xk2s7n9nbpnnxmixz77kxskdxj5as79a"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "deps": [
+    "flycheck",
+    "pest-mode"
+   ],
+   "commit": "43447a2c70f98edd1139005e32f437d3f142442b",
+   "sha256": "1ccpb1jbynlqqzhsm3h7xk2s7n9nbpnnxmixz77kxskdxj5as79a"
   }
  },
  {
@@ -33571,8 +34235,8 @@
     "flycheck",
     "phpstan"
    ],
-   "commit": "2f715a186c5fe6576de83d4c0b64a37e2bfce101",
-   "sha256": "03ix2s068pzmybj0fcb08dlfgdqw0pmqhbdf4id2077f67bfad0w"
+   "commit": "e675cf0881408e10b76f2e70c6158237cb94671e",
+   "sha256": "11qd0mpcvc56hghwv60a57d5pap19s7yvlvi6827wnrq35cyzh7f"
   },
   "stable": {
    "version": [
@@ -33728,15 +34392,15 @@
   "repo": "alexmurray/flycheck-posframe",
   "unstable": {
    "version": [
-    20191214,
-    1109
+    20200817,
+    412
    ],
    "deps": [
     "flycheck",
     "posframe"
    ],
-   "commit": "2b3e94c2e427ec9831c513007460c5ea9e2225a3",
-   "sha256": "1hmplb61xvz6p2b2pv6pg5bv7q7mirmgr0n1by1hj1w479g8rps3"
+   "commit": "c928b5b5424fe84a0b346e28bd7d461c80b27482",
+   "sha256": "1prjqqhzzaznbsysdipgvcinl3zkbgf19rb061h5mrqbgjw1l8f4"
   }
  },
  {
@@ -33758,6 +34422,38 @@
   }
  },
  {
+  "ename": "flycheck-psalm",
+  "commit": "148d9b28e683a6602bb18eecaaf3cbc8dede65b1",
+  "sha256": "1a8mvf268bbfg6f557xdmhwa8ihi2misy8ps30kkia9asb176smz",
+  "fetcher": "github",
+  "repo": "emacs-php/psalm.el",
+  "unstable": {
+   "version": [
+    20200510,
+    1540
+   ],
+   "deps": [
+    "flycheck",
+    "psalm"
+   ],
+   "commit": "b2a1e8a9524b0004e62996c70da5536f86e56182",
+   "sha256": "0r0qz5bdznzdj7zxq6a6fz7fwn2c978bq57yywj3fcy8f5vh8jcf"
+  },
+  "stable": {
+   "version": [
+    0,
+    6,
+    0
+   ],
+   "deps": [
+    "flycheck",
+    "psalm"
+   ],
+   "commit": "aaa77b4ceb61d41a520baa0b84b9b236c99c4156",
+   "sha256": "1fnr8sbx74c4mdz91y6b4m0n6njjb0qa01r4i9975q197vwzni48"
+  }
+ },
+ {
   "ename": "flycheck-pycheckers",
   "commit": "af36dca316b318d25d65c9e842f15f736e19ea63",
   "sha256": "18ski3bp8x33589pc273i5ia3hffvlb4czrd97wkfgr4k59ww6yq",
@@ -33765,25 +34461,25 @@
   "repo": "msherry/flycheck-pycheckers",
   "unstable": {
    "version": [
-    20200428,
-    40
+    20200807,
+    610
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "dcf5b097b7c1206f6325547f5cf37b867a6a5ffb",
-   "sha256": "16fwk1prq7gyhs0yk4bmr9j3wxnznjj9ppbxwidnmpbhdis2f0sv"
+   "commit": "055830b67cd0f0d7196a5b71bd5cce3197a557a7",
+   "sha256": "1zw6993a8l7yf3j8dbagmj051m1z8cdax2pzm0l2p2dxvkm0h4s2"
   },
   "stable": {
    "version": [
     0,
-    14
+    15
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "c5349c0fb3b719469b7e66dbdfbe58d0813f6a74",
-   "sha256": "02886xggdb09880jp57cah3fmf1nm77gvb0aaws8j4abl278g7x5"
+   "commit": "44b11b51c97fd334ecdce74169c0e65123ef5991",
+   "sha256": "08wsr0hrmbh24bzsd2ghc82mp4m31ms3aykv0x68vpspzm06yyi3"
   }
  },
  {
@@ -33831,27 +34527,27 @@
   "repo": "purcell/flycheck-relint",
   "unstable": {
    "version": [
-    20200320,
-    2223
+    20200721,
+    2217
    ],
    "deps": [
     "flycheck",
     "relint"
    ],
-   "commit": "296cf8e2f9e85ab0c1c591816b50ecd7c766060c",
-   "sha256": "148xh1alng4s3ydnhwjjrcmq1390pn6ymjszaamrzljwfqzh85ky"
+   "commit": "86ebb4dac919eda01341b15b9c896742b9d17c30",
+   "sha256": "1k638y125xyb0bc5i2zrkypwb770jn1ndky6qak31n4ws41xynbd"
   },
   "stable": {
    "version": [
     0,
-    5
+    6
    ],
    "deps": [
     "flycheck",
     "relint"
    ],
-   "commit": "296cf8e2f9e85ab0c1c591816b50ecd7c766060c",
-   "sha256": "148xh1alng4s3ydnhwjjrcmq1390pn6ymjszaamrzljwfqzh85ky"
+   "commit": "d1e54d4bfdb12d0b60a1b9a8c2b11799426ddc57",
+   "sha256": "095vxjy6aacvmav86sg8b43svlnad7h8a83nl830v4nynpmx3183"
   }
  },
  {
@@ -33869,8 +34565,8 @@
     "flycheck",
     "rtags"
    ],
-   "commit": "ed229d2e4070cc07ba76e537e8f5f93835ff0710",
-   "sha256": "1jf1mg2pib2rsrn280j2ywmnqgkr5jwmiaqf252jsb7ndq7p5gcr"
+   "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+   "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
   },
   "stable": {
    "version": [
@@ -33921,25 +34617,6 @@
   }
  },
  {
-  "ename": "flycheck-stack",
-  "commit": "b77f55989d11d1efacbad0fd3876dd27006f2679",
-  "sha256": "1r9zppqmp1i5i06jhkrgvwy1p3yc8kmcvgibricydqsij26lhpmf",
-  "fetcher": "github",
-  "repo": "chrisdone/flycheck-stack",
-  "unstable": {
-   "version": [
-    20160520,
-    944
-   ],
-   "deps": [
-    "flycheck",
-    "haskell-mode"
-   ],
-   "commit": "f04235e00998000ee2c305f5a3ee72bb5dbbc926",
-   "sha256": "139q43ldvymfxns8zv7gxasn3sg0rn4i9yz08wgk50psg5zq5mjr"
-  }
- },
- {
   "ename": "flycheck-stan",
   "commit": "e1d19cd6b80080aad5eff159c1bc7f7585bcd655",
   "sha256": "15dxj6lklnavs3lfs8l7wq0wmqfmsss919cjw6jy8hgfbnf27wyx",
@@ -33954,8 +34631,8 @@
     "flycheck",
     "stan-mode"
    ],
-   "commit": "599a0440086c660e6823622b35058f6d2d6d9637",
-   "sha256": "0mm0kpyihpd55hx14smlm0ayz05zw750fihhqhxqc258y8y73m5y"
+   "commit": "e891a0fcb3a7ab7d9cedbe3deda560134636897e",
+   "sha256": "158afanfaww2jkrz9szap6ys8xhbpz35kd5apkxr1j9j7s8h0iw0"
   },
   "stable": {
    "version": [
@@ -34089,15 +34766,15 @@
   "repo": "nhojb/flycheck-swiftx",
   "unstable": {
    "version": [
-    20200504,
-    1345
+    20200814,
+    845
    ],
    "deps": [
     "flycheck",
     "xcode-project"
    ],
-   "commit": "1b9174fb37498dc3a3cf8bbbfbb4f0470e8ef139",
-   "sha256": "1qiddgrrf2d0sjmikd9yy53v5vxfh13j1m9qq40ap9vz7x4661va"
+   "commit": "84f42393dea362d3bdfc9253a205a17ec7a12a76",
+   "sha256": "0v5km3hf58xysal526l4l2jpyibh0l6f367vwmn4zi64cl5hvf3p"
   }
  },
  {
@@ -34814,6 +35491,24 @@
   }
  },
  {
+  "ename": "flymake-kondor",
+  "commit": "ca065538aa80cd33b08092d7787c6b4a1754fb31",
+  "sha256": "1wgd42g3rfdrf93isfk0z5r6naxibripad3ds08iv20qqcdryasd",
+  "fetcher": "github",
+  "repo": "turbo-cafe/flymake-kondor",
+  "unstable": {
+   "version": [
+    20200714,
+    646
+   ],
+   "deps": [
+    "flymake-quickdef"
+   ],
+   "commit": "530bf3e6c401d17f6b4f784a1f2524d5ba2d3414",
+   "sha256": "06adysd3q1gh92y0cdsnlmb588gdax85ad7pkmi324bixck5ggqx"
+  }
+ },
+ {
   "ename": "flymake-ktlint",
   "commit": "7b2e630e5e16044fb8ffe251f4fa58fb8f3d6bb9",
   "sha256": "07v90pkhmrz59m6hf1lzxq4h3kk4qblihw4qgz5phbj4l5pahivd",
@@ -34917,8 +35612,20 @@
    "deps": [
     "pest-mode"
    ],
-   "commit": "4ae88a9c81d499bbe99978ff0216b645fed70023",
-   "sha256": "1zc7dmgp3s9q33wkvw6i7zzlcaa65ixx3hxb78m62lk2a7fzb3ih"
+   "commit": "43447a2c70f98edd1139005e32f437d3f142442b",
+   "sha256": "1ccpb1jbynlqqzhsm3h7xk2s7n9nbpnnxmixz77kxskdxj5as79a"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "deps": [
+    "pest-mode"
+   ],
+   "commit": "43447a2c70f98edd1139005e32f437d3f142442b",
+   "sha256": "1ccpb1jbynlqqzhsm3h7xk2s7n9nbpnnxmixz77kxskdxj5as79a"
   }
  },
  {
@@ -34982,8 +35689,8 @@
    "deps": [
     "phpstan"
    ],
-   "commit": "2f715a186c5fe6576de83d4c0b64a37e2bfce101",
-   "sha256": "03ix2s068pzmybj0fcb08dlfgdqw0pmqhbdf4id2077f67bfad0w"
+   "commit": "e675cf0881408e10b76f2e70c6158237cb94671e",
+   "sha256": "11qd0mpcvc56hghwv60a57d5pap19s7yvlvi6827wnrq35cyzh7f"
   },
   "stable": {
    "version": [
@@ -35314,11 +36021,11 @@
   "repo": "d12frosted/flyspell-correct",
   "unstable": {
    "version": [
-    20200215,
-    1408
+    20200601,
+    944
    ],
-   "commit": "76b2b4bc9d6d8e9c6b1f41ed7f887eddb6ac6e13",
-   "sha256": "0zapn6508iafm61z2y2bxcydd45kg5hgx39zm6g6qhvq92ysj2cf"
+   "commit": "dea1290a371c540dde7b8d0eef7a12d92f7a0b83",
+   "sha256": "0b15w96hihdblw71xvaysf8p1bmwvjp0qzrqwcij9qz72kd1w72x"
   },
   "stable": {
    "version": [
@@ -35345,8 +36052,8 @@
     "avy-menu",
     "flyspell-correct"
    ],
-   "commit": "76b2b4bc9d6d8e9c6b1f41ed7f887eddb6ac6e13",
-   "sha256": "0zapn6508iafm61z2y2bxcydd45kg5hgx39zm6g6qhvq92ysj2cf"
+   "commit": "dea1290a371c540dde7b8d0eef7a12d92f7a0b83",
+   "sha256": "0b15w96hihdblw71xvaysf8p1bmwvjp0qzrqwcij9qz72kd1w72x"
   },
   "stable": {
    "version": [
@@ -35377,8 +36084,8 @@
     "flyspell-correct",
     "helm"
    ],
-   "commit": "76b2b4bc9d6d8e9c6b1f41ed7f887eddb6ac6e13",
-   "sha256": "0zapn6508iafm61z2y2bxcydd45kg5hgx39zm6g6qhvq92ysj2cf"
+   "commit": "dea1290a371c540dde7b8d0eef7a12d92f7a0b83",
+   "sha256": "0b15w96hihdblw71xvaysf8p1bmwvjp0qzrqwcij9qz72kd1w72x"
   },
   "stable": {
    "version": [
@@ -35409,8 +36116,8 @@
     "flyspell-correct",
     "ivy"
    ],
-   "commit": "76b2b4bc9d6d8e9c6b1f41ed7f887eddb6ac6e13",
-   "sha256": "0zapn6508iafm61z2y2bxcydd45kg5hgx39zm6g6qhvq92ysj2cf"
+   "commit": "dea1290a371c540dde7b8d0eef7a12d92f7a0b83",
+   "sha256": "0b15w96hihdblw71xvaysf8p1bmwvjp0qzrqwcij9qz72kd1w72x"
   },
   "stable": {
    "version": [
@@ -35441,8 +36148,8 @@
     "flyspell-correct",
     "popup"
    ],
-   "commit": "76b2b4bc9d6d8e9c6b1f41ed7f887eddb6ac6e13",
-   "sha256": "0zapn6508iafm61z2y2bxcydd45kg5hgx39zm6g6qhvq92ysj2cf"
+   "commit": "dea1290a371c540dde7b8d0eef7a12d92f7a0b83",
+   "sha256": "0b15w96hihdblw71xvaysf8p1bmwvjp0qzrqwcij9qz72kd1w72x"
   },
   "stable": {
    "version": [
@@ -35715,21 +36422,6 @@
   }
  },
  {
-  "ename": "font-lock-cl",
-  "commit": "b7a2635ceb34f49f84f35e11c14521592a9d330f",
-  "sha256": "1d8r3d558ipk324hpgfm4fv4kxk6mhvkka3aqd4kcv8zv0k79iq3",
-  "fetcher": "github",
-  "repo": "font-lock-cl/font-lock-cl",
-  "unstable": {
-   "version": [
-    20200321,
-    533
-   ],
-   "commit": "9f82d31f9f0fb06bbc2ce18e21e79d1eabbe6c5e",
-   "sha256": "0b6g36frvp1i92qn8rv3dcm8sxiw5yvbvhl7j58x2xwvawn79nfd"
-  }
- },
- {
   "ename": "font-lock-profiler",
   "commit": "b372892a29376bc3f0101ea5865efead41e1df26",
   "sha256": "089r74jgi5gwjk9w1bc600vkj0p5ac84rgcl7aqcpqfbh9ylwcp9",
@@ -35930,8 +36622,8 @@
   "repo": "magit/forge",
   "unstable": {
    "version": [
-    20200425,
-    2225
+    20200725,
+    1419
    ],
    "deps": [
     "closql",
@@ -35943,8 +36635,8 @@
     "markdown-mode",
     "transient"
    ],
-   "commit": "e2da80660a0550f613400ce3b238025589800417",
-   "sha256": "0m80w0qh6icj365pcg9d0kb2nvmv48c3874wy15mjcilzb6i97av"
+   "commit": "feee7e2fce3f87f7aa113c5edcb1896127ee9d12",
+   "sha256": "1nn73hxhp7rziwdnnvz6avn1gkax531f4l72sk0v4ywdwjhnnlgs"
   },
   "stable": {
    "version": [
@@ -35975,11 +36667,11 @@
   "url": "https://depp.brause.cc/form-feed.git",
   "unstable": {
    "version": [
-    20200506,
-    1300
+    20200527,
+    2152
    ],
-   "commit": "b5dbfd8b90e72de84ae7b6667947264fe655c163",
-   "sha256": "0n2k0ki6k1pgni907fvz09z3hbfbchnv1q80j42w23qam2hp7a3f"
+   "commit": "fc06255e185d32b1616bd86b69b55c1daabbe378",
+   "sha256": "05yqyp20bvfk5n1nqyffv1k8l1zl1bpz8q32kzqarm9fim2wv23n"
   },
   "stable": {
    "version": [
@@ -35999,15 +36691,15 @@
   "repo": "lassik/emacs-format-all-the-code",
   "unstable": {
    "version": [
-    20200513,
-    1930
+    20200804,
+    1822
    ],
    "deps": [
     "cl-lib",
     "language-id"
    ],
-   "commit": "0227e1aadeb18db397f03368d54cbefe4afd6112",
-   "sha256": "0p04xgswp269a17jpiwpj8qfj3c2zvkmr4vn0wa1dfrw5f5bfj2x"
+   "commit": "ccfff41a200e16e3644c2531e984959392e3341a",
+   "sha256": "0wqq86gfilrg9jf9yls9wcxy926j44lvzafj92kdmmyzbas1nm9k"
   },
   "stable": {
    "version": [
@@ -36144,26 +36836,26 @@
   "repo": "rnkn/fountain-mode",
   "unstable": {
    "version": [
-    20200516,
-    624
+    20200811,
+    652
    ],
    "deps": [
     "seq"
    ],
-   "commit": "83d308b6fd26662bc8fb204c4d634616e03dca44",
-   "sha256": "0a068qfc969bvxyynrk2yakv2l3y31snnvcpdsbxd4m4m6drv3lw"
+   "commit": "55be196ef20cdc276b3bde1a39444df1cc599f9b",
+   "sha256": "14baj9ldssdb5vrc3fl7c7nhc2iff6gxa7v2flcjjnazfg87r3b2"
   },
   "stable": {
    "version": [
     3,
-    1,
-    0
+    2,
+    2
    ],
    "deps": [
     "seq"
    ],
-   "commit": "9027c6f2b2a2d7d64501e55ff3531cdef26c463d",
-   "sha256": "08giwg0jwk8zzj2i4cm08322qr6znrnv9a49za7c6j47bykpwj6s"
+   "commit": "1405217e69d055b869e804d33feca23cb602f759",
+   "sha256": "0rwdwbw9cq8ljvbmgmz9izank8dqjki79l1bw127lli69fs72gyi"
   }
  },
  {
@@ -36274,15 +36966,15 @@
   "repo": "davidshepherd7/frames-only-mode",
   "unstable": {
    "version": [
-    20190524,
-    1439
+    20200728,
+    740
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "ce55b3ad3b3cb4c4253a0172bb8e9461814b2d64",
-   "sha256": "1sw1s2k4wch32h5r0z6bfyiw4qcwjz93lq36ix17r968r505djc2"
+   "commit": "3cd98cbf80b04ae2ebca1c67c52ba756116f6784",
+   "sha256": "0smyic3x3b98ipwhb9pw47nnymccy4w7k3dbng2g2zhgwi5pyc1k"
   },
   "stable": {
    "version": [
@@ -36366,15 +37058,15 @@
   "url": "https://git.launchpad.net/frecentf.el",
   "unstable": {
    "version": [
-    20191204,
-    312
+    20200624,
+    1534
    ],
    "deps": [
     "frecency",
     "persist"
    ],
-   "commit": "1d5d641fdd93480db2374276e85ec652af0565c5",
-   "sha256": "01l92rz4hll2v5k0xppmszcpy0r6lxgm4cql0zxkcj5yhgzjmrln"
+   "commit": "d9d093365ffe12c46e81d16ee81850abd86a2177",
+   "sha256": "06w17km8hmlr2mrxi26g51mnfvcvilw91b17y52pmx09jgnqa9ac"
   }
  },
  {
@@ -36454,8 +37146,8 @@
   "repo": "p3r7/friendly-shell",
   "unstable": {
    "version": [
-    20200510,
-    1438
+    20200527,
+    830
    ],
    "deps": [
     "cl-lib",
@@ -36463,14 +37155,14 @@
     "friendly-tramp-path",
     "with-shell-interpreter"
    ],
-   "commit": "d9cef2599f4edf425b257d65a88008d916dabfbf",
-   "sha256": "15kla2haji0b32sx0xij7h4h35w0r33dy5jirxa9ych6gqyznbk8"
+   "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+   "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
   },
   "stable": {
    "version": [
     0,
     2,
-    2
+    3
    ],
    "deps": [
     "cl-lib",
@@ -36478,8 +37170,8 @@
     "friendly-tramp-path",
     "with-shell-interpreter"
    ],
-   "commit": "d9cef2599f4edf425b257d65a88008d916dabfbf",
-   "sha256": "15kla2haji0b32sx0xij7h4h35w0r33dy5jirxa9ych6gqyznbk8"
+   "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+   "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
   }
  },
  {
@@ -36490,28 +37182,28 @@
   "repo": "p3r7/friendly-shell",
   "unstable": {
    "version": [
-    20200510,
-    1438
+    20200527,
+    830
    ],
    "deps": [
     "cl-lib",
     "with-shell-interpreter"
    ],
-   "commit": "d9cef2599f4edf425b257d65a88008d916dabfbf",
-   "sha256": "15kla2haji0b32sx0xij7h4h35w0r33dy5jirxa9ych6gqyznbk8"
+   "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+   "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
   },
   "stable": {
    "version": [
     0,
     2,
-    2
+    3
    ],
    "deps": [
     "cl-lib",
     "with-shell-interpreter"
    ],
-   "commit": "d9cef2599f4edf425b257d65a88008d916dabfbf",
-   "sha256": "15kla2haji0b32sx0xij7h4h35w0r33dy5jirxa9ych6gqyznbk8"
+   "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+   "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
   }
  },
  {
@@ -36522,30 +37214,30 @@
   "repo": "p3r7/friendly-shell",
   "unstable": {
    "version": [
-    20200510,
-    1438
+    20200527,
+    830
    ],
    "deps": [
     "cl-lib",
     "dash",
     "with-shell-interpreter"
    ],
-   "commit": "d9cef2599f4edf425b257d65a88008d916dabfbf",
-   "sha256": "15kla2haji0b32sx0xij7h4h35w0r33dy5jirxa9ych6gqyznbk8"
+   "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+   "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
   },
   "stable": {
    "version": [
     0,
     2,
-    2
+    3
    ],
    "deps": [
     "cl-lib",
     "dash",
     "with-shell-interpreter"
    ],
-   "commit": "d9cef2599f4edf425b257d65a88008d916dabfbf",
-   "sha256": "15kla2haji0b32sx0xij7h4h35w0r33dy5jirxa9ych6gqyznbk8"
+   "commit": "5c0eda312d8da6de0848d56abca1b0f5840e81e6",
+   "sha256": "0zmrqxbclq0630sw96shf8alql21w70879flbbk26b837j8vyw16"
   }
  },
  {
@@ -36668,16 +37360,16 @@
   "repo": "fsharp/emacs-fsharp-mode",
   "unstable": {
    "version": [
-    20191130,
-    1857
+    20200520,
+    1842
    ],
    "deps": [
     "dash",
     "eglot",
     "s"
    ],
-   "commit": "8c86e38b93aac55f57d5baf3a9575b45b54cd16a",
-   "sha256": "08c8v5wnb7fi4pbi5ivkhi3l4nf8mhn9b9829nkpz1l5q9lmz263"
+   "commit": "3e41fe1391b64eefa66a8a02fce27a12a04e1e01",
+   "sha256": "03ln0dmjkg4bnpabnw27vby3jqf40wzvs3znynqqqx7cn53vy5fp"
   },
   "stable": {
    "version": [
@@ -36701,8 +37393,8 @@
   "repo": "FStarLang/fstar-mode.el",
   "unstable": {
    "version": [
-    20200424,
-    2235
+    20200624,
+    2201
    ],
    "deps": [
     "company",
@@ -36712,8 +37404,8 @@
     "quick-peek",
     "yasnippet"
    ],
-   "commit": "d8b586518f32d4acde049852d81902670d1ee277",
-   "sha256": "0av315lf58nwgvix100bj279mq2pm175vwc5dip19gn73bq4d9vi"
+   "commit": "bd28cb8f25538e26287c76efbbc5ef7378d1fbc6",
+   "sha256": "1jvvasin29bwxq7cmviv0431jb7p2gq3yh12pyf6f5zinsax97cp"
   },
   "stable": {
    "version": [
@@ -36743,8 +37435,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "68f6eeb3adbc7d9f71d24761600bf8538775c969",
-   "sha256": "16iz2wf8bn4mjcgbc5vj50snlgiqqdc495kxbd9mcld5rjhfs45q"
+   "commit": "3fdb0325ca2a6d80e4111af43b1b166808022020",
+   "sha256": "0kid3a0qq2qvzndbs1c69z30f2in7q7fzpv6yas84f8y5kkmk220"
   },
   "stable": {
    "version": [
@@ -36861,10 +37553,10 @@
  },
  {
   "ename": "fuo",
-  "commit": "25fb625becf7f582d2a8d53726d6f01d9ea89ecc",
-  "sha256": "02mvgz2cxrdn5kp5dw0c57rl5nfavqli5yqbxczmbsih164ljdxf",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "1aaqa7lih9gh4rz51jy577l95rgmyhna2h9ci1h4baini19mxi26",
   "fetcher": "github",
-  "repo": "cosven/emacs-fuo",
+  "repo": "feeluown/emacs-fuo",
   "unstable": {
    "version": [
     20190812,
@@ -36897,14 +37589,14 @@
   "repo": "diku-dk/futhark-mode",
   "unstable": {
    "version": [
-    20200415,
-    1228
+    20200627,
+    732
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "2befd490ce7d78a43d001b4bb0bd4300d086d645",
-   "sha256": "0p4ii7mbspx1fsmzx9n8z2siq9n8ixpisxs388ndd2ccp7x3k6nm"
+   "commit": "9db9fb81e08b6ded43a4eede5220644ce354060d",
+   "sha256": "0hcwqsq65hlznsq2k5bviwzyh82sddfb28v5xna0016yphbdng2h"
   }
  },
  {
@@ -36918,8 +37610,8 @@
     20200104,
     524
    ],
-   "commit": "0b6b64cebde5675be3a28520ee16234db48d3b8b",
-   "sha256": "1bddjr3rpmvkrljq5ipjm42d59m2897cpfhmiah3rcb4c6ra40m1"
+   "commit": "fee874aa35d2ee6b12b836290b5c8eaa44175a28",
+   "sha256": "1xswm8my29i4fddy64k21b1vclbr5fjb0pisb4hs8ynkk5w1kw2a"
   },
   "stable": {
    "version": [
@@ -37070,6 +37762,21 @@
   }
  },
  {
+  "ename": "gameoflife",
+  "commit": "bdfc00fe567155ae98fbf1a44d0bb4fa3a8e5786",
+  "sha256": "0vjlbpf9672442lzcw1p39vldywy4a1yj2mcwmbsqhpjlnzalw4l",
+  "fetcher": "github",
+  "repo": "Lindydancer/gameoflife",
+  "unstable": {
+   "version": [
+    20200614,
+    1814
+   ],
+   "commit": "2483f3d98dbcf7f1633f551cc3691f5659b4b942",
+   "sha256": "1a57fc8ylrdlqlywp81b71jd93hiwkxy6gxpi8358d6d4czslvq7"
+  }
+ },
+ {
   "ename": "gams-ac",
   "commit": "ca2681b39ac5a985c2f70b4b84ee3c10af1a7ca4",
   "sha256": "03w9ffscwaaspwxmrqhrfws0qjk3xxzz63k5wkrhx37899w75qha",
@@ -37188,20 +37895,20 @@
   "repo": "GDQuest/emacs-gdscript-mode",
   "unstable": {
    "version": [
-    20200427,
-    1514
+    20200726,
+    1721
    ],
-   "commit": "0718ca9b090780bd28d02ef5c79cd0e7c5a84d5e",
-   "sha256": "0wdsfakx50x60lxb6d46h9rhb1vrisch71fmdl1c8jiwf57q5kpn"
+   "commit": "7aea87bd7b3cd14b1a767e7d835cee896722cd29",
+   "sha256": "1cq2k054ngqwanayy7fgkqdb5fq6xcqdglpyxngqmh765lyb7nrb"
   },
   "stable": {
    "version": [
     1,
-    1,
+    2,
     0
    ],
-   "commit": "86577f81dc2640d5388565d0430b4df241bdd38e",
-   "sha256": "0cpfdbza3gh1s6y5igs51b1m7g7dfa7jszjfawz3v2g49p4a5m2d"
+   "commit": "36c92dff1587d7c3c7ff2cd02d8e158cbed55215",
+   "sha256": "02by4bvdayldbjlz6jkp36m5rgcy2h5bwhqx2cj7wma6xf6cw3lf"
   }
  },
  {
@@ -37289,20 +37996,49 @@
   "repo": "jaor/geiser",
   "unstable": {
    "version": [
-    20200513,
-    1219
+    20200714,
+    1210
    ],
-   "commit": "7a39c8eb7ca2a0a4fe0ad307ea55578e11e6dfdd",
-   "sha256": "09lv9ixgrkb351nb67nas5yfa8vk0rz4ljhc1hxxn4g451hbd14f"
+   "commit": "adc5c4ab5ff33cf94cb3fcd892bb9503b5fa2aa2",
+   "sha256": "0n718xpys7v94zaf9lpmsx97qgn6qxif1acr718wyvpmfr4hiv08"
   },
   "stable": {
    "version": [
     0,
-    11,
+    12
+   ],
+   "commit": "adc5c4ab5ff33cf94cb3fcd892bb9503b5fa2aa2",
+   "sha256": "0n718xpys7v94zaf9lpmsx97qgn6qxif1acr718wyvpmfr4hiv08"
+  }
+ },
+ {
+  "ename": "geiser-gauche",
+  "commit": "1cb02b836748f31be26013d2e43ada6d68f35c90",
+  "sha256": "1fbhfaz304bfzq7m75kifpfxb69zx4ymnvanfv7lnmbx6fqqfrqp",
+  "fetcher": "gitlab",
+  "repo": "emacs-geiser/gauche",
+  "unstable": {
+   "version": [
+    20200802,
+    1300
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "66e51430bded0f0e2037f474818a7bbaafb2906c",
+   "sha256": "1gsvl0r6r385lkv0z4gkxirz9as6k0ghmk402zsyz8gvdpl0f3jw"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
     2
    ],
-   "commit": "51252bcb35d6afe006487b73c1e2276210b4ed83",
-   "sha256": "1khi1bghsjx6cs5acizmlbw9z19s4qycnji9krdbn42cbpv0rysv"
+   "deps": [
+    "geiser"
+   ],
+   "commit": "9e7ed54e5629f759660569bc7efc3d75dbabbc5f",
+   "sha256": "0rxncnzx7qgcpvc8nz0sd8r0hwrplazzraahdwhbpq0q6z8ywqgg"
   }
  },
  {
@@ -37324,6 +38060,21 @@
   }
  },
  {
+  "ename": "gemini-mode",
+  "commit": "2cc0e9039171064cd0fb37b3eb5324c91a88ef7a",
+  "sha256": "1mbhv034jk4bwi58z6jc2r4d828v0ir3jwqpgi2mfjnjxk5x5ga5",
+  "fetcher": "git",
+  "url": "http://git.carcosa.net/jmcbray/gemini.el.git",
+  "unstable": {
+   "version": [
+    20200813,
+    1424
+   ],
+   "commit": "d114bacfb12f9e66821254ff0a1fb85443700b24",
+   "sha256": "0m7jricw40h4r30kcg60dl2ybgrdbiglnb55lz3n70bc5nsx8dcd"
+  }
+ },
+ {
   "ename": "general",
   "commit": "d86383b443622d78f6d8ff7b8ac74c8d72879d26",
   "sha256": "104ywsfylfymly64p1i3hsy9pnpz3dkpmcq1ygafnld8zjd08gpc",
@@ -37456,8 +38207,8 @@
   "repo": "thisch/gerrit.el",
   "unstable": {
    "version": [
-    20200226,
-    2137
+    20200727,
+    2006
    ],
    "deps": [
     "dash",
@@ -37465,8 +38216,8 @@
     "magit",
     "s"
    ],
-   "commit": "36870fd34ad681f907a57a2d82b2002735878614",
-   "sha256": "0h9v4ajp50wpg3zz0p7klyi705ynfy2mka0hpzz81kgpq8q8f46z"
+   "commit": "eb4b182e493a6d5d3e94c9ff5abe0a0206b03c7c",
+   "sha256": "16v043avd9sm0rq7951x7045zfxhiadq2q056grkjgcpy2id45lw"
   }
  },
  {
@@ -37603,10 +38354,10 @@
  },
  {
   "ename": "gh-md",
-  "commit": "2794e59d5fea812ce5b376d3d9609f50f6bca40e",
-  "sha256": "0b72fl1hj7gkqlqrr8hklq0w3ryqqqfn5qpb7a9i6q0vh98652xm",
+  "commit": "b38908bc1b759b14173ffb49ddeb040a9892cc0d",
+  "sha256": "11bbicmv15qfh4s5bpgvbnc6v9v1hdh6y0clii5k8jv4p1nxfix4",
   "fetcher": "github",
-  "repo": "emacs-pe/gh-md.el",
+  "repo": "emacsorphanage/gh-md",
   "unstable": {
    "version": [
     20151207,
@@ -37754,28 +38505,28 @@
   "repo": "magit/ghub",
   "unstable": {
    "version": [
-    20200425,
-    2233
+    20200801,
+    815
    ],
    "deps": [
     "let-alist",
     "treepy"
    ],
-   "commit": "206f2b5b2ab622efda8da85feaa3bc2a1e0f3da3",
-   "sha256": "132y2yi9c91p25cwnvb9w6jj7la6fdc0xlvnxmbnfnxaic4jyhs3"
+   "commit": "942e7bdabc4b938a0535530c26eb6548504fca24",
+   "sha256": "07iy4203ppvzkh67sb0v968hnypnvy4dpfy0qpqrp8zmc455dxq5"
   },
   "stable": {
    "version": [
     3,
-    3,
-    0
+    4,
+    1
    ],
    "deps": [
     "let-alist",
     "treepy"
    ],
-   "commit": "eec071aa9e2810c8ce2f2522e6be8d78f579069d",
-   "sha256": "1229g0d9f4ywwjndx32x4z5jdr0kzyi44hjxmy0sifwfmg9nn251"
+   "commit": "942e7bdabc4b938a0535530c26eb6548504fca24",
+   "sha256": "07iy4203ppvzkh67sb0v968hnypnvy4dpfy0qpqrp8zmc455dxq5"
   }
  },
  {
@@ -37984,11 +38735,11 @@
   "repo": "ryuslash/git-auto-commit-mode",
   "unstable": {
    "version": [
-    20200322,
-    2007
+    20200801,
+    748
    ],
-   "commit": "dd0c2441de0f5ff8c69c8260d9450d0b607e3e55",
-   "sha256": "0r7jry1sbqsp7c1vxf7fchc7ivmnccfrflg52379v3gmpvd8s0kn"
+   "commit": "d4fd94320610100f23de083493d12de3324304b5",
+   "sha256": "180rzh53hrd374nf96cz8n6brxvi68fgss21ic5r623hkczhi73b"
   },
   "stable": {
    "version": [
@@ -38038,15 +38789,15 @@
   "repo": "walseb/git-backup-ivy",
   "unstable": {
    "version": [
-    20200424,
-    1049
+    20200709,
+    818
    ],
    "deps": [
     "git-backup",
     "ivy"
    ],
-   "commit": "d9361c9ad903e0d58f25ccebad99d9a753f1937a",
-   "sha256": "0jkkajv0scbp91al18fqqyvvcda2z6wkkbz0p1rcwzap5g96b7ag"
+   "commit": "0a5c52e64d0062f77ffefc9213e75690c6d7b111",
+   "sha256": "060x20c4q7cr5zrfsa28z2zgr6isfb2y2ys450h46a9yi3w9h60f"
   }
  },
  {
@@ -38105,16 +38856,16 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20200207,
-    1819
+    20200701,
+    2112
    ],
    "deps": [
     "dash",
     "transient",
     "with-editor"
    ],
-   "commit": "d05545ec2fd7edf915eaf1b9c15c785bb08975cc",
-   "sha256": "11aqyy4r9hrdi9nlypd70hn8384b6q89c7xavgv8c5q7f2g5z9qg"
+   "commit": "321214c3a2dd10fdf672ba96bd00703a51094bbe",
+   "sha256": "152i5kvkx8hsy9qlhalhjc4sf6ly3rlfymb8daygj428363xx25n"
   },
   "stable": {
    "version": [
@@ -38312,16 +39063,16 @@
   "repo": "akirak/git-identity.el",
   "unstable": {
    "version": [
-    20200124,
-    1856
+    20200810,
+    1106
    ],
    "deps": [
     "dash",
     "f",
     "hydra"
    ],
-   "commit": "8471e6f8ef6c502dc999e513b552d6b23974d40d",
-   "sha256": "1w4dnrc0dq0brdq0dpk5lj7ji50v5b7q32f1ghkvx50i7a3dslvq"
+   "commit": "6bf8b2cd72061eac5a4d247ba2fabdd8deafdea7",
+   "sha256": "1p6if6fvz6m7nnd7fl1j2dxg830ax06ln9wvm5anpsdky0lqwqyr"
   },
   "stable": {
    "version": [
@@ -38385,20 +39136,20 @@
   "repo": "sshaw/git-link",
   "unstable": {
    "version": [
-    20200331,
-    2329
+    20200721,
+    2250
    ],
-   "commit": "7142ec898f0cb97aa5d1a68da7957b4710bbfa87",
-   "sha256": "0xcgzhlxd7ycfxmbgkwm04pdfjysygkka3jis4p45zy6mrackn4c"
+   "commit": "cbaf7033edad8d4712b6e7dc11cad979c6a002de",
+   "sha256": "074xqp1apcrmnh2cb9m60gaq78hzybyg5sr09n37ka0sw447rp15"
   },
   "stable": {
    "version": [
     0,
-    7,
-    5
+    8,
+    0
    ],
-   "commit": "267bd81c228bdab434172dbef896f3f3b82713fa",
-   "sha256": "04xa6lp8wkjb6zs096bf4sz124grcjj15xv1h009bmn2j95rggj6"
+   "commit": "2f61413bec5d94b068140a764ba8c2a732ac8d58",
+   "sha256": "1cj04nzqxwvi1f97y36n311nayj31y3iy7kysb31nlfn19y2g4wj"
   }
  },
  {
@@ -38496,14 +39247,14 @@
   "repo": "pidu/git-timemachine",
   "unstable": {
    "version": [
-    20190730,
-    849
+    20200603,
+    701
    ],
    "deps": [
     "transient"
    ],
-   "commit": "391eb61050de321101e631fcf373fc70ec6e7700",
-   "sha256": "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"
+   "commit": "8d675750e921a047707fcdc36d84f8439b19a907",
+   "sha256": "1ppids836gdk5j8cli8wkzkjb85f4s1s550v5xpxyyq75rj1bnsr"
   },
   "stable": {
    "version": [
@@ -38753,11 +39504,20 @@
   "repo": "TxGVNN/github-explorer",
   "unstable": {
    "version": [
-    20190701,
-    630
+    20200803,
+    1445
+   ],
+   "commit": "e6bdc500dd9b580ed12a54d18600f5db541b38b8",
+   "sha256": "1a9hnmx1q7fxyyxn0ji2mcam6wz8rwxi7a71f5542l65ah20gg1r"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
    ],
-   "commit": "e3a410dd1113bdff382a745465ea48d9b1fe860b",
-   "sha256": "1yq9bsy2qry49q1asdxnfyhahsp499b37l2yabwhpbxjlb7mmnp6"
+   "commit": "e6bdc500dd9b580ed12a54d18600f5db541b38b8",
+   "sha256": "1a9hnmx1q7fxyyxn0ji2mcam6wz8rwxi7a71f5542l65ah20gg1r"
   }
  },
  {
@@ -38850,8 +39610,8 @@
     "ghub",
     "s"
    ],
-   "commit": "50c6bcc7cf4d7193577b3f74eea4dd72f2b7795b",
-   "sha256": "0khsxsqzx81y5krj06i8v84qsb3z86b1z17knyr1xizrd2lmraqp"
+   "commit": "fab440aeae4fbf6a8192fd11795052e9eb5d27d1",
+   "sha256": "19kk55r0qixmvw1q80x3rnvcssrq64k5b5ixp8wjzpg6h65s9vk9"
   }
  },
  {
@@ -39078,7 +39838,7 @@
     "dash",
     "helm"
    ],
-   "commit": "a0ba22ae7098b1a57af626fe5b6e9d663e8e2fc3",
+   "commit": "782df679e33646db29e07508311bc8e8624b484e",
    "sha256": "1mxkcnjgazc1pyjbqqfnhc9phpyrgah960avm2fmi7m9n5v8cf0w"
   },
   "stable": {
@@ -39198,11 +39958,11 @@
   "url": "https://git.launchpad.net/global-tags.el",
   "unstable": {
    "version": [
-    20200511,
-    2146
+    20200520,
+    1816
    ],
-   "commit": "5239c1ba873eb907d5665964820b4a7ddbf75b5c",
-   "sha256": "0yp1hq849drkkbypaaak36i5s1q9ff549w21qswmi60nmiikabsg"
+   "commit": "f3c93828ab08895bf7eac8a2d3bfd949303a6d1f",
+   "sha256": "1ar9pgc31mfv2x26qpvsmiv2lnczfjliplnzjxnrmiccqiabp1y8"
   }
  },
  {
@@ -39514,8 +40274,8 @@
   "repo": "deusmax/gnus-notes",
   "unstable": {
    "version": [
-    20200509,
-    1942
+    20200605,
+    1421
    ],
    "deps": [
     "async",
@@ -39526,17 +40286,26 @@
     "org",
     "s"
    ],
-   "commit": "c5c057263ecc86f60b62a1e811e63cfb1c394c15",
-   "sha256": "1rfkc6pp2kkin87hbjz1192hb6hf24ygiyd6zigs3bfaxja313rp"
+   "commit": "2b587ac2e428fe3805443df5306e67d78bdf8ec2",
+   "sha256": "0r08dhc6w2zk8is738qd6rkpq03n1fnfr398lsqgn2jaizgsik0l"
   },
   "stable": {
    "version": [
     0,
     3,
-    1
+    2
    ],
-   "commit": "8373615b1b5945db485ab18205fdd1077ee0a506",
-   "sha256": "10ddsw1idyn1w2w92gs6i7a14hq347qib521vk7yqb9s4qyxg1fg"
+   "deps": [
+    "async",
+    "bbdb",
+    "helm",
+    "hydra",
+    "lv",
+    "org",
+    "s"
+   ],
+   "commit": "56403ee22242fd479c2aff85f4cf4133e32ca90a",
+   "sha256": "0g26ygcmbcmxbafvyw04xcqzg2dlava2rqa5m2lv0cxyi6rnvdhj"
   }
  },
  {
@@ -39729,11 +40498,11 @@
   "url": "https://git.sr.ht/~zge/go-capf",
   "unstable": {
    "version": [
-    20200216,
-    936
+    20200814,
+    1046
    ],
-   "commit": "9e66ce4ef4307e9f0e73e65f6bb2f287ed2c940b",
-   "sha256": "1sgsxd511xw1g707c0d58j3xzxfbay7k5b7hyamd2fnh30pw2hb3"
+   "commit": "acc353135f390245453f0d90f5846f67b0a84952",
+   "sha256": "1hb8glprzpm94bsyx2mnv9w6b825y451agpqh2ry8ngydbc1llhi"
   },
   "stable": {
    "version": [
@@ -39803,26 +40572,26 @@
   "repo": "benma/go-dlv.el",
   "unstable": {
    "version": [
-    20191005,
-    829
+    20200713,
+    1202
    ],
    "deps": [
     "go-mode"
    ],
-   "commit": "d3cca689e76b71e0ef0ab827c7e01cd9042d2095",
-   "sha256": "0qdbfg9ihxwywjyir3lj1azwsaw425f90gp3182q7165j5v43k9w"
+   "commit": "69b86c1bdb73d78fb3404f2f1eefbc9a93b1aba6",
+   "sha256": "1ww91sw15qnwrglz9q37vxm5qxxa43ccpyczz7kkjp66qs6746wh"
   },
   "stable": {
    "version": [
     0,
-    3,
+    4,
     0
    ],
    "deps": [
     "go-mode"
    ],
-   "commit": "d3cca689e76b71e0ef0ab827c7e01cd9042d2095",
-   "sha256": "0qdbfg9ihxwywjyir3lj1azwsaw425f90gp3182q7165j5v43k9w"
+   "commit": "69b86c1bdb73d78fb3404f2f1eefbc9a93b1aba6",
+   "sha256": "1ww91sw15qnwrglz9q37vxm5qxxa43ccpyczz7kkjp66qs6746wh"
   }
  },
  {
@@ -39879,6 +40648,21 @@
   }
  },
  {
+  "ename": "go-expr-completion",
+  "commit": "8d09efb2e93fefd5158685084691ccf20178fe78",
+  "sha256": "1fhcwwv377zahg6nh9v9vigb7pqnm6r0fwvfa6fd5j81vffivaww",
+  "fetcher": "github",
+  "repo": "fujimisakari/emacs-go-expr-completion",
+  "unstable": {
+   "version": [
+    20200817,
+    1750
+   ],
+   "commit": "66bba78f52a732b978848e3a4c99fa2afeb6c25f",
+   "sha256": "0gbxgf36p24gjh9n5swmvyzl4h518lx63zyf0b80xnrvb7d5qi46"
+  }
+ },
+ {
   "ename": "go-fill-struct",
   "commit": "0c03d2382efd20e248b27b5505cdeed67d000f73",
   "sha256": "19xxqb836saxigvwdqf4xv0y9zrl7csv97x0facgyjyiqmwhx3x7",
@@ -40084,28 +40868,27 @@
   "repo": "grafov/go-playground",
   "unstable": {
    "version": [
-    20190625,
-    1855
+    20200818,
+    2215
    ],
    "deps": [
     "go-mode",
     "gotest"
    ],
-   "commit": "508294fbc22b22b37f587b2dbc8f3a48a16a07a6",
-   "sha256": "18vsrckkazfzksjpyx1lbwg5hdgd43ndaj3csy3i3hk7p26x98lm"
+   "commit": "ede417a52c0eea1a69658f4c6c6c12d6165e64a4",
+   "sha256": "1zzdkp6zqh03gfiirmvwv5c8s9m4511zcaya9cp5sjzmh0g5wjip"
   },
   "stable": {
    "version": [
     1,
-    6,
-    1
+    7
    ],
    "deps": [
     "go-mode",
     "gotest"
    ],
-   "commit": "508294fbc22b22b37f587b2dbc8f3a48a16a07a6",
-   "sha256": "18vsrckkazfzksjpyx1lbwg5hdgd43ndaj3csy3i3hk7p26x98lm"
+   "commit": "ede417a52c0eea1a69658f4c6c6c12d6165e64a4",
+   "sha256": "1zzdkp6zqh03gfiirmvwv5c8s9m4511zcaya9cp5sjzmh0g5wjip"
   }
  },
  {
@@ -40140,18 +40923,19 @@
   "repo": "dougm/go-projectile",
   "unstable": {
    "version": [
-    20181023,
-    2144
+    20200609,
+    131
    ],
    "deps": [
+    "dash",
     "go-eldoc",
     "go-guru",
     "go-mode",
     "go-rename",
     "projectile"
    ],
-   "commit": "7910884b4de560f3fc70b53752f658ef9cdc02cd",
-   "sha256": "03bh8k95qrc3q1sja05bbv3jszh6rgdv56jpi8g06yxk53457a1n"
+   "commit": "ad4ca3b5695a0e31e95e3cc4ccab498f87d68303",
+   "sha256": "1ai34z7n56cczz6qb0vbcrqbjrkmxwv9r928pjbw58812nycj1mh"
   }
  },
  {
@@ -40300,20 +41084,20 @@
   "repo": "emacsorphanage/god-mode",
   "unstable": {
    "version": [
-    20200413,
-    2144
+    20200708,
+    2200
    ],
-   "commit": "1eb6ef3a4f67a805c5d6deb1e3895b6c853707d7",
-   "sha256": "0kqw6w72prhxbqvxccbrc80q82yfif0y99nfgqd60rfk9mpl369k"
+   "commit": "ad2e6745294843462f78768b5a1cd3b0d3563951",
+   "sha256": "00v69c76737yfmy3injhf6l1khj67rr0xvpq0yyjxg4hh9dv4j90"
   },
   "stable": {
    "version": [
     2,
-    16,
+    17,
     2
    ],
-   "commit": "1eb6ef3a4f67a805c5d6deb1e3895b6c853707d7",
-   "sha256": "0kqw6w72prhxbqvxccbrc80q82yfif0y99nfgqd60rfk9mpl369k"
+   "commit": "2e519312fdef36dea523aa530d134a703d3032a6",
+   "sha256": "1gnwl81immxdq72hsxgic2631r4jsq9pv5jqh0jzji0q320m9xcl"
   }
  },
  {
@@ -40404,14 +41188,14 @@
   "repo": "stardiviner/goldendict.el",
   "unstable": {
    "version": [
-    20180121,
-    920
+    20200731,
+    1119
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "1aac19daaec811deb9afe45eea4929309c09ac8b",
-   "sha256": "1il432f6ayj2whl4s804n5wykgs51jhbx4xkcbfgqra58cbjrjhi"
+   "commit": "ad5212f6ade58c193287851a46c3f9378fe2f059",
+   "sha256": "0lgdrrch9rn23jd90rpcs5zxrv279ds3g9rzq5whl19410dbjamm"
   }
  },
  {
@@ -40488,8 +41272,8 @@
     20180130,
     1736
    ],
-   "commit": "7a59e424c8e641605e30eed68197859533ea6aaf",
-   "sha256": "1w9hf7bcdd5ddjavhj0ggnxipf5f5w3cfj52n9i46jmm6g2x2b5g"
+   "commit": "25e977d641fc204a38263a2272f92307c545121b",
+   "sha256": "1dgna85s3gwb0a2504min4ch0xih4ygnv8ia2jvx3wyxgn436z1x"
   }
  },
  {
@@ -40566,20 +41350,20 @@
   "repo": "atykhonov/google-translate",
   "unstable": {
    "version": [
-    20190620,
-    1416
+    20200809,
+    1430
    ],
-   "commit": "dc118de511c433750d4c98b9dd67350118c04fd6",
-   "sha256": "1kbiqisqyk31l94gxsirhnrdkj51ylgcb16fk2wf7zigmf13jqzp"
+   "commit": "0ab218f9e1a620af7b4b22d9c82b8d83ff5f4606",
+   "sha256": "1z0jbjgjnb36cj14l6khnxmrcfvbmlw89sc9dbkw6j7a3k51nlc0"
   },
   "stable": {
    "version": [
     0,
-    11,
-    18
+    12,
+    0
    ],
-   "commit": "dc118de511c433750d4c98b9dd67350118c04fd6",
-   "sha256": "1kbiqisqyk31l94gxsirhnrdkj51ylgcb16fk2wf7zigmf13jqzp"
+   "commit": "ba027ff85352b989abac29b0efba1811b870ebec",
+   "sha256": "0rwpij2bm8d4jq2w5snkp88mfryplw8166dsrjm407n2p6xr48zx"
   }
  },
  {
@@ -40728,20 +41512,20 @@
   "repo": "jcs-elpa/goto-char-preview",
   "unstable": {
    "version": [
-    20190418,
-    829
+    20200717,
+    730
    ],
-   "commit": "c0209143fbeafcc9ba93bc2333dd08e72211fa20",
-   "sha256": "15plzc33vyhmfm7bxhvnfr25yvjj6fdr1zp2dvsj8jryj4gb6gkz"
+   "commit": "11fb6b8c77c6191f839f86afc8c8ca3341919058",
+   "sha256": "14wcz9azp1c66jz1wz75v0ijbsk5hjmchcm36k7phbn3hjag99ji"
   },
   "stable": {
    "version": [
     0,
     0,
-    1
+    2
    ],
-   "commit": "366cf84c30fc8e675e9cbab1091ead6f3cd0d399",
-   "sha256": "1y2ay0r0rqayvw8wlbf8advjbhvzz7sa16k272mxszxzp7xmnr71"
+   "commit": "446e5236227d6b3f180be2eb5ef2209aef947553",
+   "sha256": "0dd5iq9xkvqavabipg1iz9zk1rnz830grhzw0z1l89b1vvgzpd62"
   }
  },
  {
@@ -40752,14 +41536,14 @@
   "repo": "emacs-evil/goto-chg",
   "unstable": {
    "version": [
-    20190110,
-    2114
+    20200603,
+    1911
    ],
    "deps": [
     "undo-tree"
    ],
-   "commit": "1829a13026c597e358f716d2c7793202458120b5",
-   "sha256": "1y603maw9xwdj3qiarmf1bp13461f9f5ackzicsbynl0i9la3qki"
+   "commit": "85fca9f7d8b04be3fbb37cc5d42416f3c4d32830",
+   "sha256": "0laq44dfwcdhphrkwsklxa0146sl9y841mmjwn5gc0z4d5npz0ql"
   },
   "stable": {
    "version": [
@@ -40818,20 +41602,20 @@
   "repo": "jcs-elpa/goto-line-preview",
   "unstable": {
    "version": [
-    20190308,
-    736
+    20200717,
+    733
    ],
-   "commit": "1f0afb261a4e4a1b0a2fae3959b0ce5d30bce2a1",
-   "sha256": "03csbs9mh9jjw21sncvnlmm97waazy0c57jp1jynwhzzsbp0k0rs"
+   "commit": "b1df7fe72b0281704d277a69dfd9e2b8214a328b",
+   "sha256": "00862y6r5xbq5crb581xh1b18dqigc8k42di9mjc6zvslxq8n6qd"
   },
   "stable": {
    "version": [
     0,
     0,
-    5
+    6
    ],
-   "commit": "772fb942777a321b4698add1b94cff157f23a93b",
-   "sha256": "16zil8kjv7lfmy11g88p1cm24j9db319fgkwzsgf2vzp1m15l0pc"
+   "commit": "a4173abfffda03ad27e695a316adfe560a97f00e",
+   "sha256": "0bh70d2isl3kdzxyidjrxhs7sh8rqr8cmdwil7ksp9a28mz3l55p"
   }
  },
  {
@@ -40851,14 +41635,14 @@
     "magit-popup",
     "s"
    ],
-   "commit": "0c56c1e833bc9e21b603539a19bdfe4836a197ed",
-   "sha256": "0iaa34hh0zpy9alf0d6bad7qwk565l9k5k09ig342pwnmigz1scs"
+   "commit": "609218c5232673cec215d088eb01d043120de385",
+   "sha256": "0wg2sn5zfcsdnv6ymy0a13px7j6pkgmdd9dpss98l70xf3b6g590"
   },
   "stable": {
    "version": [
     0,
-    22,
-    2
+    23,
+    1
    ],
    "deps": [
     "dash",
@@ -40866,8 +41650,8 @@
     "magit-popup",
     "s"
    ],
-   "commit": "e7df0c1118c15c0b35fe08f183ca084269ea6542",
-   "sha256": "0lm1jaw5bpz7z4gibbbhswjr7qdhxkgbawr5bnykprsmp663i3nm"
+   "commit": "cfbe1d59b449be9b5378251bc6e52c65bc5e1cbd",
+   "sha256": "05f6i7v8v9g3w3cmz8c952djl652mj6qcwjx9iyl23h6knd1d9b1"
   }
  },
  {
@@ -40917,19 +41701,19 @@
   "repo": "xuchunyang/grab-mac-link.el",
   "unstable": {
    "version": [
-    20190419,
-    1307
+    20200712,
+    428
    ],
-   "commit": "b52d29cd78a60cfe874667a8987ed10e8eb0f172",
-   "sha256": "15qznll0358cgqb9m9hpr2if2rsskr29mpsg7h32xb6njqnn741m"
+   "commit": "9b47cbe126a0735fa447a3c5e1e8ba80a7ef8d26",
+   "sha256": "1hx3a6sfc3ah3xgwii0l0jvshgbw0fjwsyrmb4sri0k8cla7fwin"
   },
   "stable": {
    "version": [
     0,
-    2
+    3
    ],
-   "commit": "8bf05a69758fd10a4303c5c458cd91a49ab8b1b2",
-   "sha256": "12x47k3mm5hvhgn7fmfi7bqfa3naz8w1sx6fl3rmnbzvldb89i1k"
+   "commit": "9b47cbe126a0735fa447a3c5e1e8ba80a7ef8d26",
+   "sha256": "1hx3a6sfc3ah3xgwii0l0jvshgbw0fjwsyrmb4sri0k8cla7fwin"
   }
  },
  {
@@ -40999,20 +41783,20 @@
   "repo": "lifeisfoo/emacs-grails",
   "unstable": {
    "version": [
-    20160417,
-    636
+    20200519,
+    1909
    ],
-   "commit": "fa638abe5c37f3f8af4fcd32f212453185ce50b1",
-   "sha256": "1npsjniazaq20vz3kvwr8p30ivc6x24r9a16rfcwhr5wjx3nn91b"
+   "commit": "d47273a619d6731683afe60636259b02e2c78a2e",
+   "sha256": "1j2sd51bnn6ngz5sd01akmrnh9938g7v1fh6mxq4lbzjwgnzbvgy"
   },
   "stable": {
    "version": [
     0,
     4,
-    1
+    2
    ],
-   "commit": "fa638abe5c37f3f8af4fcd32f212453185ce50b1",
-   "sha256": "1npsjniazaq20vz3kvwr8p30ivc6x24r9a16rfcwhr5wjx3nn91b"
+   "commit": "d47273a619d6731683afe60636259b02e2c78a2e",
+   "sha256": "1j2sd51bnn6ngz5sd01akmrnh9938g7v1fh6mxq4lbzjwgnzbvgy"
   }
  },
  {
@@ -41026,8 +41810,8 @@
     20160504,
     911
    ],
-   "commit": "cafdd98e06a3bbff213f3ccb163de2c42d412b66",
-   "sha256": "07809alyxind4n0rb1h3x19hgq7ihpn128xljlz38d9xvp0r48z3"
+   "commit": "26da902d1158c0312628d57578109be54eca2415",
+   "sha256": "113s9znqrdi9zm045hi3ws5ixrd0bzxfy3wr8lzxq9r3jbv67iz2"
   },
   "stable": {
    "version": [
@@ -41078,32 +41862,30 @@
   "repo": "jcs-elpa/grammarly",
   "unstable": {
    "version": [
-    20200126,
-    420
+    20200720,
+    948
    ],
    "deps": [
-    "cl-lib",
     "request",
     "s",
     "websocket"
    ],
-   "commit": "709bf3124b6e130efcede8b38fc2fed38699e19b",
-   "sha256": "1lz74qqzznv5c6pnsnnp0x0k16q663pkqakvwpg69lavcg68ysxh"
+   "commit": "d597c5d71bc64f5a91e96c707d7471bceaa84075",
+   "sha256": "073rv64m14llav59b2y73qcw7z5p0b537aa46chxf2bxq93lb4vf"
   },
   "stable": {
    "version": [
     0,
     1,
-    2
+    3
    ],
    "deps": [
-    "cl-lib",
     "request",
     "s",
     "websocket"
    ],
-   "commit": "cd2e75f21989a586c9cc71540fc6e3b5df8a5ce0",
-   "sha256": "1v7lwwx9iyksh5aaav97vd5pm07k93fkv5v4h96s8i3hyrbcgd74"
+   "commit": "d597c5d71bc64f5a91e96c707d7471bceaa84075",
+   "sha256": "073rv64m14llav59b2y73qcw7z5p0b537aa46chxf2bxq93lb4vf"
   }
  },
  {
@@ -41358,20 +42140,20 @@
   "repo": "fredcamps/green-is-the-new-black-emacs",
   "unstable": {
    "version": [
-    20190724,
-    1252
+    20200529,
+    242
    ],
-   "commit": "34f0372878a07a23bf1d9418aa380c403d272457",
-   "sha256": "1gfp5n4lknbw2p5wik0kq5i80p90x9gwd1zif7sjz5g3ximmgg04"
+   "commit": "9b682c0000bc732e4c55e876ac968877eada0402",
+   "sha256": "0yilp68qw2a4z8b8mmr2yl2lmwkd3ibk6j5ix6x3vlcmfmrfl3bj"
   },
   "stable": {
    "version": [
+    1,
     0,
-    5,
     0
    ],
-   "commit": "34f0372878a07a23bf1d9418aa380c403d272457",
-   "sha256": "1gfp5n4lknbw2p5wik0kq5i80p90x9gwd1zif7sjz5g3ximmgg04"
+   "commit": "9b682c0000bc732e4c55e876ac968877eada0402",
+   "sha256": "0yilp68qw2a4z8b8mmr2yl2lmwkd3ibk6j5ix6x3vlcmfmrfl3bj"
   }
  },
  {
@@ -41444,38 +42226,6 @@
   }
  },
  {
-  "ename": "grep-context",
-  "commit": "41dbaf627ae4ef86c222d2b6b5d3523fdb9a4637",
-  "sha256": "175s9asbnk2wlgpzc5izcd3vlfvdj064n38myy9qf4awn12c2y1g",
-  "fetcher": "github",
-  "repo": "mkcms/grep-context",
-  "unstable": {
-   "version": [
-    20181002,
-    1654
-   ],
-   "deps": [
-    "cl-lib",
-    "dash"
-   ],
-   "commit": "58f6edc18510d871e4f5ef63ef60665cbc204e96",
-   "sha256": "04mk5wi2i4mx58mfzl4zk10lm58yliczsw5vpxqmikz8gbripqqx"
-  },
-  "stable": {
-   "version": [
-    0,
-    1,
-    0
-   ],
-   "deps": [
-    "cl-lib",
-    "dash"
-   ],
-   "commit": "4c63d0f2654dee1e249c2054d118d674a757bd45",
-   "sha256": "0n2bc9q6bvbfpaqivp3ajy9ad1wr7hfdd98qhnspsap67p73kfn4"
-  }
- },
- {
   "ename": "greymatters-theme",
   "commit": "d13621f3033b180d06852d90bd3ebe03276031f5",
   "sha256": "10cxajyws5rwk62i4vk26c1ih0dq490kcfx7gijw38q3b5r1l8nr",
@@ -41498,11 +42248,11 @@
   "repo": "seagle0128/grip-mode",
   "unstable": {
    "version": [
-    20200312,
-    1136
+    20200725,
+    725
    ],
-   "commit": "9615c4774727a719d38313a679d70f2a2c6aca68",
-   "sha256": "01imyi1l33ng78m6c5g4pma5gy4j7jy7dwmqwsqgwbws08qdbwgr"
+   "commit": "281ada2c93bac7043c6f665fac065a17d4247bdc",
+   "sha256": "14gsmxpp8znk2w2yszdpwb8dx0hxbpy2rjr7rshs3bvqjib8rzyp"
   },
   "stable": {
    "version": [
@@ -41587,8 +42337,8 @@
     "dash",
     "s"
    ],
-   "commit": "cafdd98e06a3bbff213f3ccb163de2c42d412b66",
-   "sha256": "07809alyxind4n0rb1h3x19hgq7ihpn128xljlz38d9xvp0r48z3"
+   "commit": "26da902d1158c0312628d57578109be54eca2415",
+   "sha256": "113s9znqrdi9zm045hi3ws5ixrd0bzxfy3wr8lzxq9r3jbv67iz2"
   },
   "stable": {
    "version": [
@@ -41626,6 +42376,30 @@
   }
  },
  {
+  "ename": "grugru",
+  "commit": "eb55452f19b8f33605ca1b0cb5d93e00ff4cf3f5",
+  "sha256": "0zrcx6097hjdrr3b5fagm77h6fl5ys0djk8h70gkzvc2cc4sdim2",
+  "fetcher": "github",
+  "repo": "ROCKTAKEY/grugru",
+  "unstable": {
+   "version": [
+    20200810,
+    1411
+   ],
+   "commit": "2f304daa39df10ebe9e4cb982af5343bca252c6d",
+   "sha256": "1bry2iqab6shyhlmka7334yqc5k4c9hl1qrigz2p9km9hv45r7hw"
+  },
+  "stable": {
+   "version": [
+    1,
+    10,
+    0
+   ],
+   "commit": "d71007802389028a70d0ccbf5c57330241add7cc",
+   "sha256": "1gr8jdm8g7cxysf1f83mkfwp3la6bcd08r8gw5v9ms4k217nx2is"
+  }
+ },
+ {
   "ename": "grunt",
   "commit": "acc9b816796b9f142c53f90593952b43c962d2d8",
   "sha256": "1qdzqcrff9x97kyy0d4j636d5i751qja10liw8i0lf4lk6n0lywz",
@@ -41665,14 +42439,14 @@
   "repo": "greduan/emacs-theme-gruvbox",
   "unstable": {
    "version": [
-    20200514,
-    740
+    20200807,
+    855
    ],
    "deps": [
     "autothemer"
    ],
-   "commit": "f1dfcd8bd50e4885cab71b174bbc6a620c2b9d7f",
-   "sha256": "106vkpm75s3s52bkmcnjlw8gx3qlh5hffwvj2bvkmqfcgnxpzgx0"
+   "commit": "746a5f36cf4ff3959f2d007598d5cb248cfc1879",
+   "sha256": "1j66ffg1xl37nggckm38fmapxm0v7bycvpggxdx0s8q7hqlikk9f"
   },
   "stable": {
    "version": [
@@ -41807,14 +42581,14 @@
   "repo": "tmalsburg/guess-language.el",
   "unstable": {
    "version": [
-    20200326,
-    1725
+    20200707,
+    1058
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "f4ce91eba3c479d08fedf0a3ced6c1265a7838ca",
-   "sha256": "0z7agqi5sgjjidhmnrv7615737xk7p1s6pdhr6swjcr117dq44fm"
+   "commit": "256230072f4f828e07db6ab17b6b7e90891b7308",
+   "sha256": "0yqvrd7b43ibzszzcw8zg0ifqz7v4ply5wdgq1zclk3xgsn9n3pr"
   }
  },
  {
@@ -41889,8 +42663,8 @@
   "repo": "alezost/guix.el",
   "unstable": {
    "version": [
-    20200510,
-    1613
+    20200730,
+    930
    ],
    "deps": [
     "bui",
@@ -41899,8 +42673,8 @@
     "geiser",
     "magit-popup"
    ],
-   "commit": "0b8f75124372266bfab32e8d1fa114f33ea24e6f",
-   "sha256": "17i0rivgixkg18qiqw5a47ahli9vpc9p5yhd9s9j3jmf1jlzq4bf"
+   "commit": "58a840d0671091e3064e36244790ef8839da87d6",
+   "sha256": "1qnr5sixmvrhr9rinrhfy7sy20mikjvvwbdixwkbx30qpcdwgwj1"
   },
   "stable": {
    "version": [
@@ -41942,19 +42716,19 @@
   "repo": "bbatsov/guru-mode",
   "unstable": {
    "version": [
-    20170730,
-    731
+    20200708,
+    728
    ],
-   "commit": "c180e05ebc1484764aad245c85b69de779826e4e",
-   "sha256": "0qb6yr6vbic0rh8ayrpbz5byq7jxmwm1fc9l4alpz7dhyb11z07v"
+   "commit": "9d0aff6cda6d3d78d5102f07f813b9fca6f0ab7b",
+   "sha256": "1ja98di2iwjp0l4ndh22pwm7s56753kmz255xlv6vni2ai4rf8sm"
   },
   "stable": {
    "version": [
-    0,
-    2
+    1,
+    0
    ],
-   "commit": "62a9a0025249f2f8866b94683c4114c39f48e1fa",
-   "sha256": "1y46qd9cgkfb0wp2cvksjncyp77hd2jnr4bm4zafqirc3qhbysx0"
+   "commit": "9d0aff6cda6d3d78d5102f07f813b9fca6f0ab7b",
+   "sha256": "1ja98di2iwjp0l4ndh22pwm7s56753kmz255xlv6vni2ai4rf8sm"
   }
  },
  {
@@ -42066,14 +42840,14 @@
   "repo": "hhvm/hack-mode",
   "unstable": {
    "version": [
-    20200421,
-    157
+    20200526,
+    2210
    ],
    "deps": [
     "s"
    ],
-   "commit": "330df61f7297344cff9cf9e2d802a4d041279de3",
-   "sha256": "00g9h96kb9d3qg544x9143hx4nc5crw67cq93ip4mrh3d86rkpc1"
+   "commit": "572c3b41bed91ea543434c04914a7a0c45fec7c7",
+   "sha256": "12r14846dpgn03h1gn58aff3p8swlp0zlajhzpqpzp2s7kvl0f6f"
   },
   "stable": {
    "version": [
@@ -42119,23 +42893,20 @@
   "repo": "clarete/hackernews.el",
   "unstable": {
    "version": [
-    20190529,
-    1120
+    20200604,
+    1557
    ],
-   "commit": "2362d7b00e59da7caddc8c0adc24dccb42fddef9",
-   "sha256": "1hcc5b173yzcvvd2ls3jxrmsw2w9bi21m9hcpcirkn0nh93ywadv"
+   "commit": "019a727b41e2726516841048a2b5b04f2ed2301a",
+   "sha256": "1b4vlk3l1mm8jz0kkyjbddfnx963vzsq4gprci8aw203fjnxhbdx"
   },
   "stable": {
    "version": [
     0,
-    5,
+    6,
     0
    ],
-   "deps": [
-    "json"
-   ],
-   "commit": "916c3da8da45c757f5ec2faeed57fa370513d4ac",
-   "sha256": "09bxaaczana1cfvxyk9aagjvdszkj0j1yldl5r4xa60b59lxihsg"
+   "commit": "aec997970f2c2f8e0077c1f6584e4d1996ae3864",
+   "sha256": "15asarr271p582xbmhvhh9q0lgka25h6k65xh82rqvig4mirhn1l"
   }
  },
  {
@@ -42517,11 +43288,11 @@
   "repo": "haskell/haskell-mode",
   "unstable": {
    "version": [
-    20200408,
-    247
+    20200531,
+    2255
    ],
-   "commit": "bbdbc0e9231f49a45ce787ebfb3f2b019615bf61",
-   "sha256": "0qln2zc4zx8w4ffplp6b17sksg578x61hyvwv1l79pc8bmpgn0ww"
+   "commit": "41683c0e634bb3f54eac8747919a82132e1714fe",
+   "sha256": "1fxj11in90xvpbqhxx5c3qynkd8yfainpbf8cvdh3gdgpifrc0gg"
   },
   "stable": {
    "version": [
@@ -42574,8 +43345,8 @@
     20200513,
     1950
    ],
-   "commit": "0482f0de774c58bd7f2e079f5bf01781eed709a3",
-   "sha256": "05hgxrmsrmg5i50zxs7pa2xnfn2sja09hdk8xjsalnbbjvn4mmxx"
+   "commit": "3239e814d6999f31ad845cc58df53395ad299059",
+   "sha256": "0319nr4l56p0d2gpybkc2lkkhwi6qmf2gjpgpajpcz11ms9m8x5z"
   },
   "stable": {
    "version": [
@@ -42792,8 +43563,8 @@
     20200315,
     2129
    ],
-   "commit": "c3d1158ad1a64f06aa8986ab1cdea6b7fbdd4bf7",
-   "sha256": "0qza5pgpzcabik3592dk25glsv9zcg84pn1jzm43f9b1j9w5iv4i"
+   "commit": "e12b1df2ca28d2b06c471cd709c038a2dc0bcdbd",
+   "sha256": "05j97g2l4rdx35a435xpdpq1ixgf9j94828fx4yhh4g60fjwwb82"
   },
   "stable": {
    "version": [
@@ -42851,30 +43622,30 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20200515,
-    715
+    20200818,
+    742
    ],
    "deps": [
     "async",
     "helm-core",
     "popup"
    ],
-   "commit": "202bcb533e2feb25d63c64553afccefd9cfab262",
-   "sha256": "0vn6420qjs04cwiq1bry0cj14i53w3zkyib4y6wyrnd709dfyzgp"
+   "commit": "e9a1e53c57478389343ee23ebb962c8b9b4b4bba",
+   "sha256": "1vw6qcpz71sb6xhjzlikr4l1q23sfbphlza4x4ma0gc7mfzyqfh0"
   },
   "stable": {
    "version": [
     3,
     6,
-    1
+    4
    ],
    "deps": [
     "async",
     "helm-core",
     "popup"
    ],
-   "commit": "55281e1390bae54310dc880ae3805e0595d5c1bd",
-   "sha256": "1sghq7xjd4a9ysh3cywd5rss9y47rwk82y86cwh1g7p0jv89gqaf"
+   "commit": "a3343a370975d9c01df4f1ff42875cc32ae89592",
+   "sha256": "0cl5awhq5py872qx9s30sfgfpfwjivwbsi18mgar8lj6lvs4s8zz"
   }
  },
  {
@@ -42974,25 +43745,25 @@
   "repo": "emacsorphanage/helm-ag",
   "unstable": {
    "version": [
-    20200516,
-    613
+    20200811,
+    1304
    ],
    "deps": [
     "helm"
    ],
-   "commit": "ae1dbefa151544035272d04e56e0147185a847c5",
-   "sha256": "03q29x63v500b3h4mj99h619ayifb12rrqiyyihm84i9lmgp5r28"
+   "commit": "4ee2174c4e27e02c75a487a235de4d80c663aa08",
+   "sha256": "1sc9ksfb3s5p5kqriz5402r785fklw3ykz8fb107xykl9kdjnzy3"
   },
   "stable": {
    "version": [
     0,
-    59
+    62
    ],
    "deps": [
     "helm"
    ],
-   "commit": "79373d7f1616d175a5e0730e1e0c3855f04bd945",
-   "sha256": "0vsz2b5qw4qahlf74059z4p1grinhfz28f0psw4c3qf4jasv3b9j"
+   "commit": "08aaab53b8876caba619f956945a8152ece47182",
+   "sha256": "0xgbpp8xqdiyvfs64x0q909g77ml28z3irw2lnasvpsg0dfdm2zy"
   }
  },
  {
@@ -43014,6 +43785,24 @@
   }
  },
  {
+  "ename": "helm-apt",
+  "commit": "5d3fec3e22c66091f0f71c2c9916755006b290f4",
+  "sha256": "11l35c08zs0ds0k8q8mr63446b0943i9yr85g9i6s1kdcsx96swc",
+  "fetcher": "github",
+  "repo": "emacs-helm/helm-apt",
+  "unstable": {
+   "version": [
+    20200719,
+    1131
+   ],
+   "deps": [
+    "helm"
+   ],
+   "commit": "f6204e2333881291b007e4859d9446994e988653",
+   "sha256": "08gxfby2i80nmzlbj39p0nnicg95swzjxc222wksvggfxvvln5f7"
+  }
+ },
+ {
   "ename": "helm-aws",
   "commit": "421182006b8af17dae8b5ad453cc11e2d990a053",
   "sha256": "0sjgdjpznjxsf6nlv2ah45fw17j8j5apdphd1fp43rjv1lskkgc5",
@@ -43368,16 +44157,15 @@
   "repo": "emacs-jp/helm-c-yasnippet",
   "unstable": {
    "version": [
-    20170128,
-    1542
+    20200520,
+    1519
    ],
    "deps": [
-    "cl-lib",
     "helm",
     "yasnippet"
    ],
-   "commit": "65ca732b510bfc31636708aebcfe4d2d845b59b0",
-   "sha256": "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"
+   "commit": "89cc8561e7e57e9d1070ee3641df019c7f49c5dd",
+   "sha256": "1b6wwz7j9alwmxmk3wvf862ynznkdm1jk5r456dn8ykkvfrs7nlv"
   },
   "stable": {
    "version": [
@@ -43733,26 +44521,26 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20200514,
-    644
+    20200803,
+    1032
    ],
    "deps": [
     "async"
    ],
-   "commit": "202bcb533e2feb25d63c64553afccefd9cfab262",
-   "sha256": "0vn6420qjs04cwiq1bry0cj14i53w3zkyib4y6wyrnd709dfyzgp"
+   "commit": "e9a1e53c57478389343ee23ebb962c8b9b4b4bba",
+   "sha256": "1vw6qcpz71sb6xhjzlikr4l1q23sfbphlza4x4ma0gc7mfzyqfh0"
   },
   "stable": {
    "version": [
     3,
     6,
-    1
+    4
    ],
    "deps": [
     "async"
    ],
-   "commit": "55281e1390bae54310dc880ae3805e0595d5c1bd",
-   "sha256": "1sghq7xjd4a9ysh3cywd5rss9y47rwk82y86cwh1g7p0jv89gqaf"
+   "commit": "a3343a370975d9c01df4f1ff42875cc32ae89592",
+   "sha256": "0cl5awhq5py872qx9s30sfgfpfwjivwbsi18mgar8lj6lvs4s8zz"
   }
  },
  {
@@ -43829,10 +44617,10 @@
  },
  {
   "ename": "helm-dash",
-  "commit": "855ea20024b606314f8590129259747cac0bcc97",
-  "sha256": "032hwwq4r72grzls5ww7bjyj39c82wkcgf3k7myfcrqd3lgblrwb",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "0vn9b6v6y1l4v475s69930sf2h8cj9g3vdi1rx5janpcq7w42mq7",
   "fetcher": "github",
-  "repo": "areina/helm-dash",
+  "repo": "dash-docs-el/helm-dash",
   "unstable": {
    "version": [
     20190527,
@@ -43989,10 +44777,10 @@
  },
  {
   "ename": "helm-dired-recent-dirs",
-  "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
-  "sha256": "1rm47if91hk6hi4xil9vb6rs415s5kvhwc6zkrmcvay9hiw9vrpw",
+  "commit": "04f78275b18383eb9594eb57e48b5b5c4639cbd8",
+  "sha256": "08dyzsfpzzp279jvzbj7m187gn8rmxzfclrn71n4xsss5g1k7gb1",
   "fetcher": "github",
-  "repo": "yynozk/helm-dired-recent-dirs",
+  "repo": "zonkyy/helm-dired-recent-dirs",
   "unstable": {
    "version": [
     20131228,
@@ -44230,14 +45018,14 @@
   "repo": "cute-jumper/helm-ext",
   "unstable": {
    "version": [
-    20180526,
-    350
+    20200722,
+    107
    ],
    "deps": [
     "helm"
    ],
-   "commit": "90b788aced21ec467a234b6b77b5a6ebae6de75f",
-   "sha256": "11a27556slh95snzqyvy0rlf6p7f51nx8rxglnv0d34529h72508"
+   "commit": "c30f7772ec577a5ce1de3215f0507826e0725a69",
+   "sha256": "1sb3z1c1p9wal5g6fz8b948pvaarg4yhcmjqmpd2y7b85hzapgp1"
   },
   "stable": {
    "version": [
@@ -44328,8 +45116,20 @@
    "deps": [
     "helm"
    ],
-   "commit": "6ab26c5fb414a0c1232974fd3f888839b6844203",
-   "sha256": "0lsrcn03f4981762l2rq25ps1f2ka86q125jkh6nq7wzfb7pj71f"
+   "commit": "d7e0c1814299fc0e345e159f02733cee5277716e",
+   "sha256": "07767jm0wqnn4qavnvnsf6wzfsvsk5bfba2sm16l5036sj4dyjxn"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    4
+   ],
+   "deps": [
+    "helm"
+   ],
+   "commit": "52dbc68cf7484d66c40593733770c0c61b383ef0",
+   "sha256": "1xrq5481mri9nfdwkn14zjq1zgl31w6aywca6sr1by5cqggqrqr1"
   }
  },
  {
@@ -44359,15 +45159,15 @@
   "repo": "emacs-helm/helm-firefox",
   "unstable": {
    "version": [
-    20200306,
-    1408
+    20200612,
+    800
    ],
    "deps": [
     "cl-lib",
     "helm"
    ],
-   "commit": "7065e01188ed17b86a7b4f01b95ace575a15eef1",
-   "sha256": "0kk7d73hcrxcnsrq803zp5lh1hyk30nahb6wdlalqvkczksgpkml"
+   "commit": "8ecf5bcb815d1650bf184deffeef10b1277e0e1e",
+   "sha256": "00is30ijsh2aqvrkk5cxl46mbcj3q2fzc02hb55mj3gq4h6lb1bq"
   },
   "stable": {
    "version": [
@@ -44390,27 +45190,27 @@
   "repo": "emacs-helm/helm-fish-completion",
   "unstable": {
    "version": [
-    20200509,
-    1056
+    20200622,
+    1255
    ],
    "deps": [
     "fish-completion",
     "helm"
    ],
-   "commit": "fd730198afe01f6eecc6c5841358a8eea4cf4b09",
-   "sha256": "1iv0hwr74hzgrvrr31nlnswvi87lvpg24rd1rhkr5kjicr2295fq"
+   "commit": "f055dab2f14462ff130841d4ab421f34baab39d5",
+   "sha256": "0hpsm39kx8vpz2zmarjrkvy1capkk5lwpsmdg2xnklsck6xsn922"
   },
   "stable": {
    "version": [
     0,
-    3
+    5
    ],
    "deps": [
     "fish-completion",
     "helm"
    ],
-   "commit": "fd730198afe01f6eecc6c5841358a8eea4cf4b09",
-   "sha256": "1iv0hwr74hzgrvrr31nlnswvi87lvpg24rd1rhkr5kjicr2295fq"
+   "commit": "f055dab2f14462ff130841d4ab421f34baab39d5",
+   "sha256": "0hpsm39kx8vpz2zmarjrkvy1capkk5lwpsmdg2xnklsck6xsn922"
   }
  },
  {
@@ -44524,15 +45324,15 @@
   "repo": "rustify-emacs/fuz.el",
   "unstable": {
    "version": [
-    20200104,
-    524
+    20200812,
+    1222
    ],
    "deps": [
     "fuz",
     "helm"
    ],
-   "commit": "0b6b64cebde5675be3a28520ee16234db48d3b8b",
-   "sha256": "1bddjr3rpmvkrljq5ipjm42d59m2897cpfhmiah3rcb4c6ra40m1"
+   "commit": "fee874aa35d2ee6b12b836290b5c8eaa44175a28",
+   "sha256": "1xswm8my29i4fddy64k21b1vclbr5fjb0pisb4hs8ynkk5w1kw2a"
   },
   "stable": {
    "version": [
@@ -44581,6 +45381,19 @@
     "flx",
     "helm"
    ],
+   "commit": "152d54bcd7137e4f5df54cf213e578c9d71864bd",
+   "sha256": "1msnagb1mxxi9c64j54j9r95l98jha2n6qdgs236b953lz8d9wwf"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    5
+   ],
+   "deps": [
+    "flx",
+    "helm"
+   ],
    "commit": "fc080a0b4be8a68944a64bc4fb5b38cd11a70bc7",
    "sha256": "01632zrpl69b034srgsfidf62r1kwc8f4z8i48kz95g5n2ax1xk9"
   }
@@ -44895,14 +45708,26 @@
   "repo": "kopoli/helm-grepint",
   "unstable": {
    "version": [
-    20161001,
-    1413
+    20200811,
+    1616
    ],
    "deps": [
     "helm"
    ],
-   "commit": "a62ca27515ff6a366b89b420500eb16d380cc653",
-   "sha256": "1v87v6a34zv998z1dwwcqx49476pvy9g5zml7w5vzfkms0l8l28w"
+   "commit": "9aec98428823b749eb14d2c8512b46b59ca9f8ca",
+   "sha256": "1fmpk9ynish20daajnx4c2s8bnlngb8sv3nwspxkk8fvv0c3p39i"
+  },
+  "stable": {
+   "version": [
+    1,
+    6,
+    1
+   ],
+   "deps": [
+    "helm"
+   ],
+   "commit": "9aec98428823b749eb14d2c8512b46b59ca9f8ca",
+   "sha256": "1fmpk9ynish20daajnx4c2s8bnlngb8sv3nwspxkk8fvv0c3p39i"
   }
  },
  {
@@ -44931,26 +45756,26 @@
   "repo": "emacsorphanage/helm-gtags",
   "unstable": {
    "version": [
-    20200409,
-    1559
+    20200602,
+    1610
    ],
    "deps": [
     "helm"
    ],
-   "commit": "25b81d7774622911c1e95d9020209ae4ace1542b",
-   "sha256": "14k0yrf8p015gsgdgq8ykvrjjhd1brq2gsfx7m3jv0p789yxw7zk"
+   "commit": "a15fe1dd272d252ad933d8129db1dce02fd41adb",
+   "sha256": "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"
   },
   "stable": {
    "version": [
     1,
     5,
-    6
+    7
    ],
    "deps": [
     "helm"
    ],
-   "commit": "dbe0d2d9d08058d469ad2d729bd782515b5b3b62",
-   "sha256": "0zyspn9rqfs3hkq8qx0q1w5qiv30ignbmycyv0vn3a6q7a5fsnhx"
+   "commit": "a15fe1dd272d252ad933d8129db1dce02fd41adb",
+   "sha256": "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"
   }
  },
  {
@@ -45072,6 +45897,26 @@
   }
  },
  {
+  "ename": "helm-icons",
+  "commit": "388e1c96b251fd68adc08288c9109dad19840bc7",
+  "sha256": "074s4pv0lgvcmvfqv34bsi45cy4rlskc6skmfffkflyf1kddpz1g",
+  "fetcher": "github",
+  "repo": "yyoncho/helm-icons",
+  "unstable": {
+   "version": [
+    20200719,
+    1359
+   ],
+   "deps": [
+    "dash",
+    "f",
+    "treemacs"
+   ],
+   "commit": "d8c15dc61c1f321686b447e83abb17e14bc6f1c6",
+   "sha256": "0na4nks6l7917r64rc49b38lwsdj7wvslnnikms92882z5c8c6nn"
+  }
+ },
+ {
   "ename": "helm-idris",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "04f1963ksbjdza1syajb5vkwwsc9gzk0az6c1m1zgvsianrq4rd9",
@@ -45295,16 +46140,16 @@
   "repo": "leanprover/lean-mode",
   "unstable": {
    "version": [
-    20171102,
-    1454
+    20200620,
+    915
    ],
    "deps": [
     "dash",
     "helm",
     "lean-mode"
    ],
-   "commit": "65b55b1711fb61129312044d5ac7e6a2c2ee245c",
-   "sha256": "1zmw8950qhry2ixk2ng0pg4j0vwx11nvjlrpab9jg6x47ys9j65n"
+   "commit": "6b4377686128d5c2fb55d8fe61b92a9991d40fbd",
+   "sha256": "1zb3igic1i30mfbsx4k2sabhdpl58fsrl5c3fjvqrpn92ixi9vws"
   }
  },
  {
@@ -45371,14 +46216,14 @@
   "repo": "emacs-helm/helm-ls-git",
   "unstable": {
    "version": [
-    20191127,
-    510
+    20200519,
+    912
    ],
    "deps": [
     "helm"
    ],
-   "commit": "18c53b62bc758b9d8ad4e94a94f58d143ccb29db",
-   "sha256": "0r4dj6422g2zsbm2kig369j39lw4d68zpcr2xr02p02sfyhg1c0f"
+   "commit": "4da1a53f2f0a078ee2e896a914a1b19c0bf1d5ed",
+   "sha256": "12fi08w20yjsdfkxl1pk9q4w0z9l92va5fa5ghay9w33xlymc8dc"
   },
   "stable": {
    "version": [
@@ -45450,16 +46295,29 @@
   "repo": "emacs-lsp/helm-lsp",
   "unstable": {
    "version": [
-    20200429,
-    1457
+    20200808,
+    713
    ],
    "deps": [
     "dash",
     "helm",
     "lsp-mode"
    ],
-   "commit": "6b5ce182d7c94c62b55b8f7d0c7e643b2c30e560",
-   "sha256": "0f6a26h1n6h0x3dal40180w3vb7gz3h8qwxvr3b0zq4f7byikisb"
+   "commit": "4263c967267b0579956b3b12ef32878a9ea80d97",
+   "sha256": "1j0w6391ivw7gyx03vmmhccj25d5p94dnbblhd6vxl8d22azdfq3"
+  },
+  "stable": {
+   "version": [
+    0,
+    2
+   ],
+   "deps": [
+    "dash",
+    "helm",
+    "lsp-mode"
+   ],
+   "commit": "5c960e7800dc8f4432f3a1466a637d484b87dc35",
+   "sha256": "1vq3qpqm3ndqyvf5bk8qhqcr60x9ykc0ipk2a43rr3yjm4z1b6s9"
   }
  },
  {
@@ -45504,11 +46362,11 @@
   "repo": "abo-abo/helm-make",
   "unstable": {
    "version": [
-    20200228,
-    1742
+    20200620,
+    27
    ],
-   "commit": "a52b3a34ade00e695a412bc0c5873d4f4d22c323",
-   "sha256": "1jqihwh24f190zsc3a2xc7ja6j6q3nl742a0m9d6fiw28aijg34f"
+   "commit": "ebd71e85046d59b37f6a96535e01993b6962c559",
+   "sha256": "14jvhhw4chl94dgfwbyy7yirwchvcz5zrsgr9w6qy4z0fhqba41a"
   },
   "stable": {
    "version": [
@@ -45693,10 +46551,10 @@
  },
  {
   "ename": "helm-notmuch",
-  "commit": "98667b3aa43d3e0f6174eeef82acaf71d7019aac",
-  "sha256": "1ixdc1ba4ygxl0lpg6ijk06dgj2hfv5p5k6ivq60ss0axyisnnv0",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "1k1kj5n6r32qc139ms5cvj5x5xpbd5v8c64j3jpcrmgg8d396f1m",
   "fetcher": "github",
-  "repo": "xuchunyang/helm-notmuch",
+  "repo": "emacs-helm/helm-notmuch",
   "unstable": {
    "version": [
     20190320,
@@ -45800,8 +46658,8 @@
     "org-multi-wiki",
     "org-ql"
    ],
-   "commit": "8b056103d6f5320563e9fd794a008fd4e0719702",
-   "sha256": "1xmj2p9hcpf1nld0gsnxq12kaljh0p195fy24v23l8ygykhmqw17"
+   "commit": "2541e1b0798a1c9d4b4b8778e6c97a579ac3fa14",
+   "sha256": "1mcpbq1qylkxpd6nzq04jrji6p1xll5a30dc7dpxpcjrkgvbzf39"
   },
   "stable": {
    "version": [
@@ -45820,10 +46678,10 @@
  },
  {
   "ename": "helm-org-rifle",
-  "commit": "f39cc94dde5aaf0d6cfea5c98dd52cdb0bcb1615",
-  "sha256": "0hx764vql2qgw9i8qrr3kkn23lw6jx3x604dm1y33ig6a15gy3a3",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "05arqjadly6qf2slw8109wk828sd4f76spklpnxwjc98x01vacxw",
   "fetcher": "github",
-  "repo": "alphapapa/helm-org-rifle",
+  "repo": "alphapapa/org-rifle",
   "unstable": {
    "version": [
     20200512,
@@ -46138,31 +46996,30 @@
   "repo": "bbatsov/helm-projectile",
   "unstable": {
    "version": [
-    20190731,
-    1538
+    20200625,
+    443
    ],
    "deps": [
     "cl-lib",
     "helm",
     "projectile"
    ],
-   "commit": "5328b74dddcee8d1913803ca8167868831a07463",
-   "sha256": "0a811cblrvc8llpv771b8dppgxs6bwjyvjy3qn2xns4nigvn93s0"
+   "commit": "2f3a2a03d6cb9419c25b432637aa11c8d2f9f3b7",
+   "sha256": "0h6r8v2lj6abjz73iv8568ijs7l37j76nf58h4p9r9ldpdigihzz"
   },
   "stable": {
    "version": [
+    1,
     0,
-    14,
     0
    ],
    "deps": [
     "cl-lib",
-    "dash",
     "helm",
     "projectile"
    ],
-   "commit": "1a90f93732f1a1e8080098d65eadd6a1cd799e31",
-   "sha256": "0lph38p112fridighqcizpsyzjbv7qr3d8prbfj6w6q6gfl6cna4"
+   "commit": "5eb861b77d8e6697733def65288039df5be81a0e",
+   "sha256": "05gpg90gg03yalmv9fw1y9k21i2l617iipvs0p9n80aln8nrzs8g"
   }
  },
  {
@@ -46400,14 +47257,14 @@
   "repo": "emacs-helm/helm-recoll",
   "unstable": {
    "version": [
-    20190729,
-    453
+    20200805,
+    1235
    ],
    "deps": [
     "helm"
    ],
-   "commit": "219e517dd79a7879414ca36e8de28a159a49c78a",
-   "sha256": "0yjz8g8v839fs42lmmjbm5l4yzkq9npjlb6jxz6nv5j71xvz5lbf"
+   "commit": "c021a3b5e8c010bdad062cceb80fb49788f89e9f",
+   "sha256": "09aj1hsj81vx761v5ai48hvl17i2i60gx3szk8qcmmpcn00m3ps7"
   },
   "stable": {
    "version": [
@@ -46429,16 +47286,16 @@
   "repo": "cosmicexplorer/helm-rg",
   "unstable": {
    "version": [
-    20190130,
-    1734
+    20200721,
+    725
    ],
    "deps": [
     "cl-lib",
     "dash",
     "helm"
    ],
-   "commit": "785a80fe5cc87e27c5ea3d00a70049028d9e2847",
-   "sha256": "1cfdnwlgwil7fp228p5sb3jkwrgnhnad4p2m1vl2wn0fjb89dppp"
+   "commit": "ee0a3c09da0c843715344919400ab0a0190cc9dc",
+   "sha256": "0m4l894345n0zkbgl0ar4c93v8pyrhblk9zbrjrdr9cfz40bx2kd"
   },
   "stable": {
    "version": [
@@ -46537,8 +47394,8 @@
     "helm",
     "rtags"
    ],
-   "commit": "ed229d2e4070cc07ba76e537e8f5f93835ff0710",
-   "sha256": "1jf1mg2pib2rsrn280j2ywmnqgkr5jwmiaqf252jsb7ndq7p5gcr"
+   "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+   "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
   },
   "stable": {
    "version": [
@@ -46623,10 +47480,10 @@
  },
  {
   "ename": "helm-sage",
-  "commit": "09760a7f7b3cff6551c394fc7b2298567ca88eb0",
-  "sha256": "1vnq15fjaap0ai7dadi64sm4415xssmahk2j7kx45sasy4qaxlbj",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "1v1j2ipmzxcflknzmy1asm2ifalj2yb5qiv24wi7a323izlaxy2m",
   "fetcher": "github",
-  "repo": "stakemori/helm-sage",
+  "repo": "sagemath/helm-sage",
   "unstable": {
    "version": [
     20160514,
@@ -46675,6 +47532,35 @@
   }
  },
  {
+  "ename": "helm-selector",
+  "commit": "91193d76993bc65cc71bfa06148ef375b8034bd7",
+  "sha256": "19v1xvrbc9pn6ilbf28g4bjd4psmb34as6cjmksyaw5rn71ps2ay",
+  "fetcher": "github",
+  "repo": "emacs-helm/helm-selector",
+  "unstable": {
+   "version": [
+    20200808,
+    858
+   ],
+   "deps": [
+    "helm"
+   ],
+   "commit": "a1920a885830693dd9b1d6af3dd60f1915d976f4",
+   "sha256": "134rxm4zicn565k3q5q15iiqcvcyiq6lsvmsqr53ifjjbq8pd9y6"
+  },
+  "stable": {
+   "version": [
+    0,
+    3
+   ],
+   "deps": [
+    "helm"
+   ],
+   "commit": "a1920a885830693dd9b1d6af3dd60f1915d976f4",
+   "sha256": "134rxm4zicn565k3q5q15iiqcvcyiq6lsvmsqr53ifjjbq8pd9y6"
+  }
+ },
+ {
   "ename": "helm-sheet",
   "commit": "010c5c5e6ad6e7b05e63936079229739963bf970",
   "sha256": "0lx70l5gq43hckgdfna8s6wx287sw5ms9l1z3n6vg2x8nr9m61kc",
@@ -46886,16 +47772,15 @@
   "repo": "jamesnvc/helm-switch-shell",
   "unstable": {
    "version": [
-    20191223,
-    1418
+    20200817,
+    1725
    ],
    "deps": [
     "dash",
-    "helm",
-    "s"
+    "helm"
    ],
-   "commit": "690e20f0d95f81151b34cb424a201f39d93eb430",
-   "sha256": "08p9dfjkf1ssnzd8n69a10mkvdvm8w229fy32z95dh9vbxsp7aqv"
+   "commit": "9cab3dfd2f006148e969555bc3bfb6456d1b3f84",
+   "sha256": "0z1785cw5sbcyqs2zbi35b5y6ac9lws1wxp89la7hwdlzwzk1c2a"
   }
  },
  {
@@ -46906,26 +47791,26 @@
   "repo": "emacsorphanage/helm-swoop",
   "unstable": {
    "version": [
-    20200515,
-    417
+    20200814,
+    448
    ],
    "deps": [
     "helm"
    ],
-   "commit": "2efc552591102ab8b4408ad60a3c4be991bb8e93",
-   "sha256": "0fbahbcgdcbmnhv3m2pmxy8n01qab5x0468bikygs80krch84qh5"
+   "commit": "1f7d3cf0d742b199e4ce13fcb8b19c977a44611e",
+   "sha256": "1r03d3ivmi0r5knsrlfx2cq5jljjl36h2l5n0mbs3sc6iad9wz20"
   },
   "stable": {
    "version": [
-    2,
+    3,
     0,
     0
    ],
    "deps": [
     "helm"
    ],
-   "commit": "c5ec1f3acfb07155273c2de021f3521e198e4a9d",
-   "sha256": "0k0ns92g45x8dbymqpl6ylk5mj3wiw2h03f48q5cy1z8in0c4rjd"
+   "commit": "533dcd14198b61fd2fbf8c6f286f65feae5b6bd2",
+   "sha256": "1qjay0fvryxa8n1ws6r1by512p2fylb2nj7ycm1497fcalb0d706"
   }
  },
  {
@@ -46943,8 +47828,8 @@
     "helm",
     "seq"
    ],
-   "commit": "4e257fc84472d3d85ee2b413ca8a45aa0fd0118c",
-   "sha256": "1p89zggsqhif6dadajapq8vr9ffxbzq7v8sv8iaxyn0cg2sn6fdl"
+   "commit": "d6ad2f682d744048ea0ac47c470be5a159a6541b",
+   "sha256": "01zsl1g8r3rkgwpdphgmbljjnrhk6mmk2rjqhykjk5f3bdk02rwk"
   },
   "stable": {
    "version": [
@@ -47182,6 +48067,24 @@
   }
  },
  {
+  "ename": "helm-wikipedia",
+  "commit": "317729c132a993dd14f25876f753c8f1636d7b91",
+  "sha256": "0wnyzqz0q79bl2fmq0wszkhv10wm7ydqvqy4mmi4hi78skqmykq6",
+  "fetcher": "github",
+  "repo": "emacs-helm/helm-wikipedia",
+  "unstable": {
+   "version": [
+    20200630,
+    504
+   ],
+   "deps": [
+    "helm"
+   ],
+   "commit": "a6c8b1d1ab5dc0a69cb44bb5f3eb6792ef091147",
+   "sha256": "1him1sqdl15qfjqrkgmnhligwqc6a9liiqndssa1law3bd36c2jb"
+  }
+ },
+ {
   "ename": "helm-wordnet",
   "commit": "11626120951afc589beac4cf5a0f49bffa752349",
   "sha256": "0di8gxsa9r8mzja4akhz0wpgrhlidqyn1s1ix5szplwxklwf2r2f",
@@ -47258,10 +48161,10 @@
  },
  {
   "ename": "helm-z",
-  "commit": "48c9b83fff8fc428d9d1ecf0005d47f2adb8cb00",
-  "sha256": "1m268zsr4z7a9l5wj0i8qpimv0kyl8glgm0yb3f08959538nlmd1",
+  "commit": "04f78275b18383eb9594eb57e48b5b5c4639cbd8",
+  "sha256": "0vazbn8i0yz59310zq839jr86nwv6hh2mn1a9m8a7jv0l3121hzq",
   "fetcher": "github",
-  "repo": "yynozk/helm-z",
+  "repo": "zonkyy/helm-z",
   "unstable": {
    "version": [
     20171204,
@@ -47427,21 +48330,6 @@
   }
  },
  {
-  "ename": "heroku",
-  "commit": "855ea20024b606314f8590129259747cac0bcc97",
-  "sha256": "1wavsymviybfcmwdfrffbkdwbiydggx55jqg6ql79wf9bx7agacp",
-  "fetcher": "github",
-  "repo": "technomancy/heroku.el",
-  "unstable": {
-   "version": [
-    20120629,
-    1813
-   ],
-   "commit": "92af1c073b593c4def99c8777c869992aa4d0b3a",
-   "sha256": "0c45pib8qpwgyr271g5ddnsn7hzq68mqflv0yyc8803ni06w9vhj"
-  }
- },
- {
   "ename": "heroku-theme",
   "commit": "348f0e7aec86c3efd87ab06849a5f1ce90ba23e2",
   "sha256": "0mchh9y3pqwamry6105qrv1bp1qg1g0jmz7rzc5svz9giynypwf9",
@@ -47761,11 +48649,11 @@
   "repo": "Lindydancer/highlight-doxygen",
   "unstable": {
    "version": [
-    20180829,
-    1818
+    20200520,
+    1713
    ],
-   "commit": "53f2250018725fa19548e1771ee79fcc23641694",
-   "sha256": "0l6zh5cmp771h30i16bv3qvcq40pz9fxn3j7a8yx708vanb4d7kc"
+   "commit": "eec4874e2e89d4eb39091aad89a67dff8f8ec84c",
+   "sha256": "0r3rv1px43r265716l3g20c1ss4381h1mc1kjxin22vdmrj6cmxy"
   }
  },
  {
@@ -47806,11 +48694,11 @@
   "repo": "DarthFennec/highlight-indent-guides",
   "unstable": {
    "version": [
-    20200412,
-    2328
+    20200528,
+    2128
    ],
-   "commit": "1b12c7b440ff988c7237936187c1375ac4ddc7f4",
-   "sha256": "03dpwklrwbkminfds8v129w0i47p5mkwdyhlhv05a22xnmlanyrs"
+   "commit": "a4f771418e4eed1f3f7879a43af28cf97747d41c",
+   "sha256": "0zwp7kh10b0gxwp6128am94fwc5lmn73qar13qzyh3r1jsc8f95y"
   }
  },
  {
@@ -48050,10 +48938,10 @@
  },
  {
   "ename": "hindent",
-  "commit": "9a15a17a5aa78aed72958b2a1bde53f0c0ab5be7",
-  "sha256": "0az2zhdi73sa3h1q1c0bayqdk22a7ngrvsg9fr8b0i39sn3w8y07",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "1f3vzgnqigwbwvglxv0ziz3kyp5dxjraw3vlghkpw39f57mky4xz",
   "fetcher": "github",
-  "repo": "commercialhaskell/hindent",
+  "repo": "chrisdone/hindent",
   "unstable": {
    "version": [
     20180518,
@@ -48062,8 +48950,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "1583be4a8a01b765841f7306284528ae713abb7b",
-   "sha256": "1l8v3vq3yw7zr1yxyscfw8lggcf0klnyszhv18505c6myybp2dkp"
+   "commit": "50242bb64e946555defc9fff11ab32bcb05300b6",
+   "sha256": "0k062mswihnpl1h7r0w37siv57fi5k90956ji2vix9r9qc33zsxc"
   },
   "stable": {
    "version": [
@@ -48283,14 +49171,14 @@
   "repo": "laishulu/hl-fill-column",
   "unstable": {
    "version": [
-    20200404,
-    306
+    20200607,
+    757
    ],
    "deps": [
     "names"
    ],
-   "commit": "43cb3c35a92c912b7205b8a36f1ad0ec0a5b4a22",
-   "sha256": "0pf1hk21xbahccw1cdz95haqvhrf50cwg32qa36v9nammd37752z"
+   "commit": "5782a91ba0182c4e562fa0db6379ff9dd472856b",
+   "sha256": "0sfki2844yjlvnjlaia0n46af3c5y1bi74x91icwxccqwlkyg8jg"
   }
  },
  {
@@ -48341,20 +49229,20 @@
   "repo": "tarsius/hl-todo",
   "unstable": {
    "version": [
-    20200103,
-    1239
+    20200813,
+    1419
    ],
-   "commit": "3bba4591c54951d2abab113ec5e58a6319808ca9",
-   "sha256": "1i5mdmkbrxqx75grwl01pywbgl8pasr00mq6fidspp0aligsbg6w"
+   "commit": "0598b98f63b623c1778cbd2e2f60b774b7a311b9",
+   "sha256": "1y57q3s6hrjd134mkwzcz5ii2jichvccpvc6bcj1vfl4d7yrxsal"
   },
   "stable": {
    "version": [
     3,
     1,
-    1
+    2
    ],
-   "commit": "5d2ea49f83a7e6953f9d71de94dee478d08f9543",
-   "sha256": "1v51mlq13wr890ijwcwf0ymmc768cipj7a1nvmbmwh7y4ymlrsgn"
+   "commit": "3bba4591c54951d2abab113ec5e58a6319808ca9",
+   "sha256": "1i5mdmkbrxqx75grwl01pywbgl8pasr00mq6fidspp0aligsbg6w"
   }
  },
  {
@@ -48406,8 +49294,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "f17360fe93de6df99a05b4b64b0a1ca4ee45abb6",
-   "sha256": "01sfba4sd3mjc7bs1y4qdzryfawg1xzg3hbwy9afwfaz0w5czni8"
+   "commit": "5646d9c0b9e7598b20b2004eab5439fdc6dbeda5",
+   "sha256": "1w442h5wzxylrbmqn1blpv2pmvyvq7avsk5h8xxsjfqw5580riri"
   }
  },
  {
@@ -48436,16 +49324,16 @@
   "repo": "thanhvg/emacs-hnreader",
   "unstable": {
    "version": [
-    20200321,
-    1900
+    20200726,
+    654
    ],
    "deps": [
     "org",
     "promise",
     "request"
    ],
-   "commit": "5dd287e932e2398aab0f34cb23b99457b81ac370",
-   "sha256": "0ynq9dg00frk1sriraglzsszxpx51mpfdkbd1iqdz648rlhzyp3m"
+   "commit": "7ff808d4728ce4e269b6d99a73604063dd9b374a",
+   "sha256": "0kxx8pvl99qdbldsn6lvxj69j1jpmmc33wxcr2aw3h423ibcna3s"
   }
  },
  {
@@ -48456,11 +49344,11 @@
   "url": "https://gitlab.lrde.epita.fr/spot/emacs-modes.git",
   "unstable": {
    "version": [
-    20191010,
-    1132
+    20200610,
+    1339
    ],
-   "commit": "558e55429acde26423332a03a3b65b12efdbce5f",
-   "sha256": "0a6jagjimr00dvzrbxj078vyranmv14zl2vn4dkcww4swjzpaag9"
+   "commit": "18f5c981e256f867f29a93376ccdc04717b159cd",
+   "sha256": "1814si09xjimmn1a8yp6q13lz1lr6cwnaz7fqfszqcil8lldcwvx"
   }
  },
  {
@@ -48616,11 +49504,11 @@
   "repo": "aodhneine/horizon-theme.el",
   "unstable": {
    "version": [
-    20200129,
-    1957
+    20200720,
+    1832
    ],
-   "commit": "040d19abd397d2132508a50e1266e86d324f7c69",
-   "sha256": "04impsvfmna1vyssjs2id9hsk9cq7wx317z4h16wr1jvng6m1jig"
+   "commit": "9595549c514a9376c61d5d303405f6a6982e9e46",
+   "sha256": "1m7wwf17p7qa6dmm0qykz0qnqz7rxvxhsmn9287y8f6wahzd8yfb"
   }
  },
  {
@@ -48717,16 +49605,16 @@
   "repo": "thanhvg/emacs-howdoyou",
   "unstable": {
    "version": [
-    20191118,
-    2222
+    20200805,
+    1739
    ],
    "deps": [
     "org",
     "promise",
     "request"
    ],
-   "commit": "23407fb7a950f08498b5586062ba69962a20ea24",
-   "sha256": "1hcwac7fjsshnjapb1hdh9x0liap4n1i5q6bsar5zanmz1h9i94q"
+   "commit": "6bf4d5964299c5b51a2299869c0402079869343b",
+   "sha256": "0rzyh71w5ccimzy1wm489sj96119bnn86mdfshhyk753h9ldjjgp"
   }
  },
  {
@@ -48893,11 +49781,11 @@
   "repo": "hniksic/emacs-htmlize",
   "unstable": {
    "version": [
-    20191111,
-    2130
+    20200816,
+    746
    ],
-   "commit": "86f22f211e9230857197c42a9823d3f05381deed",
-   "sha256": "0n117rb4d9dydl01b65d09rp8bmkir3m09zs02dhlmqmljpy25w8"
+   "commit": "49205105898ba8993b5253beec55d8bddd820a70",
+   "sha256": "0caw0wwbscfr4a9ynfabrpkvgibf0hlrkwisib82nhcqcaanf962"
   },
   "stable": {
    "version": [
@@ -49107,11 +49995,11 @@
   "repo": "nflath/hungry-delete",
   "unstable": {
    "version": [
-    20200309,
-    209
+    20200807,
+    2257
    ],
-   "commit": "4a341cfa3a19185c5ecb687970e299082e1144e3",
-   "sha256": "1gwksvvizz3kdpfzgwp45l1idjbrn8kz4jf0zx4fva20mh6mjz01"
+   "commit": "671d941de0176255b79820a662d5a694607cf28a",
+   "sha256": "1cnbyixm1dihcvvfqx591qcjcrs963d2swn9rbrwkplm4a5fyxhf"
   },
   "stable": {
    "version": [
@@ -49131,16 +50019,16 @@
   "repo": "hylang/hy-mode",
   "unstable": {
    "version": [
-    20200508,
-    502
+    20200730,
+    2340
    ],
    "deps": [
     "dash",
     "dash-functional",
     "s"
    ],
-   "commit": "a18b0b8bfcd79a30bfe9ef960244ec6748a9430d",
-   "sha256": "0vvwilfj1sv7r1xsv7m6w0qc3077jfaflwxmq54dmrbw6qypqx1f"
+   "commit": "55e84cadbdb63427a8d531992df3990414a26688",
+   "sha256": "0mrml5cy3isgy5mybxm8mrzqcrxrw4nn9yxchyjakkqzvfjk8gm1"
   },
   "stable": {
    "version": [
@@ -49188,6 +50076,21 @@
   }
  },
  {
+  "ename": "hybrid-reverse-theme",
+  "commit": "efea6a0ea9176f61cb5a97f5fdce22b3ba28894e",
+  "sha256": "1lfssdga5y1h42qqbr1lg4rjb8rn8kkv0yxbqyxfv1w1yybn924l",
+  "fetcher": "github",
+  "repo": "Riyyi/emacs-hybrid-reverse",
+  "unstable": {
+   "version": [
+    20200819,
+    240
+   ],
+   "commit": "18b1b786fb4346ad31ec76df75cb672ef5cc7cbf",
+   "sha256": "03wgxhly8n3j05l9k3pzixczj4xzqd499k0l3d4nngsxps2v67w3"
+  }
+ },
+ {
   "ename": "hydandata-light-theme",
   "commit": "51edfd2eed17b79058bbef836bc3edff50defa6e",
   "sha256": "1x4hf3ysjq3nwzr8jg0zs5lgalgxriyby4rww24w9xi3jc1bx5f1",
@@ -49242,15 +50145,15 @@
   "repo": "abo-abo/hydra",
   "unstable": {
    "version": [
-    20200504,
-    1747
+    20200711,
+    1210
    ],
    "deps": [
     "cl-lib",
     "lv"
    ],
-   "commit": "87873d788891029d9e44fa5458321d6a05849b94",
-   "sha256": "1b6davg1jqcxqzf9aqv8av8c78fgdri97m9q44xzvr1xfbmvkl8g"
+   "commit": "112e689f75b59398d8eca79ac6562dca12b8a959",
+   "sha256": "0famsjgsgd61fm3l5m9mqg4szf8lcgcb57paxlg8rxnsmxmwga7d"
   },
   "stable": {
    "version": [
@@ -49267,6 +50170,21 @@
   }
  },
  {
+  "ename": "hyperlist-mode",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "0c3jdwbarxvnczfx2g3g1m53kiyjls7l48s6l4bzxl2w4x8axvsw",
+  "fetcher": "github",
+  "repo": "Vifon/hyperlist-mode",
+  "unstable": {
+   "version": [
+    20200515,
+    2209
+   ],
+   "commit": "374cdc04761df23e7a50ca276319ba9745cda9d7",
+   "sha256": "11940wmzhnj6yxgdkadkwak4k9gad4y1bbf0k39sca13j10j48n7"
+  }
+ },
+ {
   "ename": "hyperspace",
   "commit": "0696a12acba676015640de63fc6e011128bca71c",
   "sha256": "0ya41c9bxvspj81n5209p9b4c9p1i6jcp710n9i9jawpahwpqlkw",
@@ -49334,11 +50252,11 @@
   "repo": "mkcms/interactive-align",
   "unstable": {
    "version": [
-    20181202,
-    1146
+    20200711,
+    1117
    ],
-   "commit": "e1308c8f6aea05ad6dbcaa33b9bee4eb7e05ee39",
-   "sha256": "0b7a2z4v1nyyaw0lvql9xrakpsi1a6kflqr74k56ndm3ivmqwx09"
+   "commit": "eca40b8b59ea713dba21b18f5b047a6c086b91dc",
+   "sha256": "1nvj47d62dffgry0dy08m8rz5fqsrn1yhmkmp5jn57fyhbk6nfal"
   },
   "stable": {
    "version": [
@@ -49411,14 +50329,14 @@
   "repo": "purcell/ibuffer-projectile",
   "unstable": {
    "version": [
-    20200304,
-    2205
+    20200805,
+    604
    ],
    "deps": [
     "projectile"
    ],
-   "commit": "504b0edaa0d937ce60ccc8fdf09f2dae0a90fbaf",
-   "sha256": "18cqxnwzzbkcj9jcaw89b210432yzhrl1dwsv48p0jbhfnr17k41"
+   "commit": "ecbe482804a217b1471593f6c7a8b3d64f3cdc47",
+   "sha256": "0gcars1zmfrysq1n3bv40nwqsk821bz3pffrsjw14fg2mwjpmaxq"
   },
   "stable": {
    "version": [
@@ -49497,14 +50415,14 @@
   "repo": "purcell/ibuffer-vc",
   "unstable": {
    "version": [
-    20200304,
-    2207
+    20200805,
+    604
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "1249c1e30cf11badfe032ac3b1058f24ba510ace",
-   "sha256": "1mgn7b786j4hwq1ks012hxxgvrfn5rz90adi2j190gmjz60rc5g5"
+   "commit": "5fa6aea09bc67f71ea743302d609f459967b1e81",
+   "sha256": "03xkhr8vq741pgbv0b184j5ksqhhdvb7pzwa1arpymsarc6hjwsy"
   },
   "stable": {
    "version": [
@@ -49526,14 +50444,26 @@
   "repo": "conao3/iceberg-theme.el",
   "unstable": {
    "version": [
-    20200515,
-    934
+    20200812,
+    943
    ],
    "deps": [
     "solarized-theme"
    ],
-   "commit": "9615307cbd37e698d6939a04128162ef893313cb",
-   "sha256": "02lsbzk5215z1rdvs6idnv2yff2487i4pqi1ljdjfn3g43ly5lr2"
+   "commit": "183b41eae07d94d4a8f299306078410bddc41d34",
+   "sha256": "1sxadaip63mhfjvgkax45jlv3c8cnbjnq653qbvw98vb8xsrmjc4"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "deps": [
+    "solarized-theme"
+   ],
+   "commit": "04b8d04c30276a471b37ff93d73409508e88d295",
+   "sha256": "13m6sq3ld8cm28jq7kxmv4ygrvyi7pjh1lsxwzvgaj6ncjqdi87v"
   }
  },
  {
@@ -49544,19 +50474,19 @@
   "repo": "oantolin/icomplete-vertical",
   "unstable": {
    "version": [
-    20200504,
-    1916
+    20200616,
+    2322
    ],
-   "commit": "fe835acce91b0f088c8d27801bf42e24bb2dbab5",
-   "sha256": "1az3m6zwrggj4w2lh5qhnbh09dvxpyj5m2a85yhcha2p7g1hpym1"
+   "commit": "a5871d39c5850ac4d9aac48350eaa1d31f3aaef7",
+   "sha256": "00sp2n8kb38nrkgs11m3jpijj9qnsdmy3sp37c1v6p7lgnzly80i"
   },
   "stable": {
    "version": [
     0,
-    1
+    2
    ],
-   "commit": "a2ee9254085431ec9e5c88d522e2c700355003ef",
-   "sha256": "1bqnlvv1gvrjriazvzd3bq98r8ii6fqax0zznhvkl1ij5pf55a90"
+   "commit": "2c328a19f617b538986977a897d3af051ae7f355",
+   "sha256": "1bm02qd71r3j35b861rgbxkv3kcmg2458c70vwfaw9sjjba0ssng"
   }
  },
  {
@@ -49748,24 +50678,6 @@
   }
  },
  {
-  "ename": "ido-clever-match",
-  "commit": "add68b4815cdfe83402b217595a4a46068f83a2a",
-  "sha256": "081i6cjvqyfpgj0nvzc94zrl2v3l6nv6mhfda4zf7c8qqbvx1m8m",
-  "fetcher": "github",
-  "repo": "Bogdanp/ido-clever-match",
-  "unstable": {
-   "version": [
-    20151011,
-    1726
-   ],
-   "deps": [
-    "cl-lib"
-   ],
-   "commit": "f173473e99c8b0756f12e4cc8f67e68fa59eadd3",
-   "sha256": "14nmldahr0pj2x4vkzpnpx0bsxafmiihgjylk5j5linqvy8q6wk6"
-  }
- },
- {
   "ename": "ido-complete-space-or-hyphen",
   "commit": "59e11094068d3a0c0e4edc1f82158c43d3b15e0e",
   "sha256": "1wk0cq5gjnprmpyvhh80ksz3fash42hckvmx8m95crbzjg9j0gbc",
@@ -49796,16 +50708,16 @@
   "repo": "DarwinAwardWinner/ido-completing-read-plus",
   "unstable": {
    "version": [
-    20200310,
-    25
+    20200520,
+    1535
    ],
    "deps": [
     "cl-lib",
     "memoize",
     "seq"
    ],
-   "commit": "98d3a6e56b1d3652da7b47f49f76d77f82ea80ba",
-   "sha256": "0rmqyxb0cr3avm6lzz26r2d9fmja2csrh3whmky8h2giz79mjf7d"
+   "commit": "b9ca2566b867464c25b720e2148d240961c110e7",
+   "sha256": "1vkk311wghhnkmybv3h5a6hf3vxlgy03iqzwl6xyxdw3hgip8in5"
   },
   "stable": {
    "version": [
@@ -49822,36 +50734,6 @@
   }
  },
  {
-  "ename": "ido-describe-bindings",
-  "commit": "31b8e255630f1348a5b5730f7b624ad550d219ad",
-  "sha256": "1lsa09h025vd908r9q571iq2ia0zdpnq04mlihb3crpp5v9n9ws2",
-  "fetcher": "github",
-  "repo": "danil/ido-describe-bindings",
-  "unstable": {
-   "version": [
-    20161023,
-    1102
-   ],
-   "deps": [
-    "dash"
-   ],
-   "commit": "a814e25cb272401bdfee94cb98d915119d307414",
-   "sha256": "040mpwwldivyapmj0pjxsk8drgi113k7rpx8ym4jqz1hah5n33s1"
-  },
-  "stable": {
-   "version": [
-    0,
-    0,
-    11
-   ],
-   "deps": [
-    "dash"
-   ],
-   "commit": "a142ff1c33df23ed9665497d0dcae2943b3c706a",
-   "sha256": "0967709jyp9s04i6gi90axgqzhz03cdf1j1w39yrkds6q1b6v7jw"
-  }
- },
- {
   "ename": "ido-exit-target",
   "commit": "b815e7492eb0bd39c5d1be5a95784f9fe5612b62",
   "sha256": "17vmg47xwk6yjlbcsswirl8s2q565k291ajzjglnz7qg2fwx6spi",
@@ -50008,36 +50890,6 @@
   }
  },
  {
-  "ename": "ido-occur",
-  "commit": "8a576d8569bf82be01e7d50defcc99a90aab1436",
-  "sha256": "058l2pklg12wkvyyshk8va6shphpbc508fv9a8x25pw857a28pji",
-  "fetcher": "github",
-  "repo": "danil/ido-occur",
-  "unstable": {
-   "version": [
-    20160820,
-    1440
-   ],
-   "deps": [
-    "dash"
-   ],
-   "commit": "6a0bfeaca2e334b47b4f38ab80d63f53535b189e",
-   "sha256": "0q4w0akmnwk42ldbzqxbr7swz026q8wr1g27bl4i4k25bidqlx9q"
-  },
-  "stable": {
-   "version": [
-    0,
-    2,
-    0
-   ],
-   "deps": [
-    "dash"
-   ],
-   "commit": "b0e67fe4835c162cbcf8a982bdf377955b9ac5ae",
-   "sha256": "13f21vx3q1qbnl13n3lx1rnr8dhq3zwch22pvy53h8q6sdf7r73a"
-  }
- },
- {
   "ename": "ido-select-window",
   "commit": "775c8361322c2ba9026130dd60083e0255170b8f",
   "sha256": "03xqfpnagy2sk67yq7n7s6ma3im37d558zzx8sdzd9pbfxy9ij23",
@@ -50184,28 +51036,27 @@
   "repo": "idris-hackers/idris-mode",
   "unstable": {
    "version": [
-    20190427,
-    1539
+    20200522,
+    808
    ],
    "deps": [
     "cl-lib",
     "prop-menu"
    ],
-   "commit": "acc8835449475d7cd205aba213fdd3d41c38ba40",
-   "sha256": "0n9xbknc68id0mf8hbfmawi8qpvrs47ix807sk9ffv2g3ik32kk6"
+   "commit": "b77eadd8ac2048d5c882b4464bd9673e45dd6a59",
+   "sha256": "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"
   },
   "stable": {
    "version": [
-    0,
-    9,
-    19
+    1,
+    0
    ],
    "deps": [
     "cl-lib",
     "prop-menu"
    ],
-   "commit": "314a0baea5752069de08e814bb134a9643fb675d",
-   "sha256": "0iwgbaq2797k1f7ql86i2pjfa67cha4s2v0mgmrd0qcgqkxsdq92"
+   "commit": "b77eadd8ac2048d5c882b4464bd9673e45dd6a59",
+   "sha256": "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"
   }
  },
  {
@@ -50231,11 +51082,11 @@
   "repo": "victorhge/iedit",
   "unstable": {
    "version": [
-    20200412,
-    756
+    20200807,
+    853
    ],
-   "commit": "0fb3d380866664c3ab543acede606d343c257406",
-   "sha256": "0fz3p41j6d6bwk95v626j7w1z4rvbdxms6a4azy9dfncplnbnih0"
+   "commit": "59430e8c11c1fa9a294a070a3b1d571bd3887806",
+   "sha256": "1phm9n25hdg7v7gjjb5l173hrsgb64rc5frmdpchkd7li4ka4g91"
   },
   "stable": {
    "version": [
@@ -50271,19 +51122,19 @@
   "repo": "jrosdahl/iflipb",
   "unstable": {
    "version": [
-    20190817,
-    547
+    20200731,
+    1655
    ],
-   "commit": "aeeb85633566ed3c13dbe94a6a4925d8930b7b85",
-   "sha256": "07010alf6ymhs0nyj3arafksba0rdvgzjw9wqqhayzw6qqannbb2"
+   "commit": "d48884212499cd128d103c5ceba3173a90ebd2b4",
+   "sha256": "0qbdaf41zpm846jjkr9sgarb7iivpvb1qj5izsd5v4w1sz6igwf4"
   },
   "stable": {
    "version": [
     1,
-    4
+    5
    ],
-   "commit": "a5ad1fbd1173cff5228dab265515c92c0778f86a",
-   "sha256": "0gyxd5d57j0x93mqnfwwdf28plp102xh0ag2d2iws7y1d5m99wm2"
+   "commit": "83e698f312a6e621f6d2c87b27d1e4acce96b4bf",
+   "sha256": "1nnkxzf35gx6a7a2xjf73wc5jzzpg4x0hj96jb3j6rim19yrfs8f"
   }
  },
  {
@@ -50545,14 +51396,14 @@
   "repo": "alezost/imenus.el",
   "unstable": {
    "version": [
-    20180505,
-    1717
+    20200730,
+    855
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "149cfa579ee231014d3341a0e05add69759757a5",
-   "sha256": "00licvs457wzqq06a8cx7vw22kyqky20i7yq7a2nzf3cfl7vaya7"
+   "commit": "90200f5f22377903b405082eabe185447968f3e2",
+   "sha256": "04zhyn69bihxqddzsn9j0l6lxjpqkgdvbslh77cfdb4fp02cxsp1"
   },
   "stable": {
    "version": [
@@ -50592,20 +51443,20 @@
   "repo": "petergardfjall/emacs-immaterial-theme",
   "unstable": {
    "version": [
-    20200308,
-    1330
+    20200818,
+    638
    ],
-   "commit": "19c46859e041a0c0e7f40a9157a6c4d0d660f441",
-   "sha256": "0nx1g7caypnkid7bzhm4gg44cmpikpz1qz1cp11y6rlq1lwrb1d9"
+   "commit": "d7f18842f5e97977684c3dbb550c418b7625b343",
+   "sha256": "0gfw8fdl1wh7m2p449qxs2kfixqbhl4lc4zgmx1l3llv1kdq9qkw"
   },
   "stable": {
    "version": [
     0,
-    4,
-    2
+    5,
+    5
    ],
-   "commit": "19c46859e041a0c0e7f40a9157a6c4d0d660f441",
-   "sha256": "0nx1g7caypnkid7bzhm4gg44cmpikpz1qz1cp11y6rlq1lwrb1d9"
+   "commit": "d7f18842f5e97977684c3dbb550c418b7625b343",
+   "sha256": "0gfw8fdl1wh7m2p449qxs2kfixqbhl4lc4zgmx1l3llv1kdq9qkw"
   }
  },
  {
@@ -50655,15 +51506,15 @@
   "repo": "skeeto/impatient-mode",
   "unstable": {
    "version": [
-    20200327,
-    1619
+    20200723,
+    2117
    ],
    "deps": [
     "htmlize",
     "simple-httpd"
    ],
-   "commit": "fc84f4a333d47ca853842570cf35e659753a3ebe",
-   "sha256": "14zycqky7xkmbfacmfdqbmq1qs3sj2r41nfmg09dv0hl97pavir8"
+   "commit": "cbddfd54242210df3e1c3b590fada5bb5423f5ed",
+   "sha256": "14jnni828ndl1sj92cy49r0aa6y8qwqbm2rrxc87j0yfn5sdckc7"
   },
   "stable": {
    "version": [
@@ -50753,8 +51604,8 @@
     "epc",
     "f"
    ],
-   "commit": "86f17856db194c5f18b30f35df40fb029d5544b5",
-   "sha256": "0cak79lnlbfigl6lh3c5wzphxssq78vyd9xxj3zi7ln5q9ijl6pp"
+   "commit": "701dfcca5f3ab42be0f26a8d381d7116c79be850",
+   "sha256": "035830aizamh4c8hpnmfrbz9v9gy23d3nx0dv366l3q8mrh36l44"
   },
   "stable": {
    "version": [
@@ -50823,15 +51674,15 @@
   "repo": "conao3/indent-lint.el",
   "unstable": {
    "version": [
-    20200129,
-    2046
+    20200812,
+    949
    ],
    "deps": [
     "async",
     "async-await"
    ],
-   "commit": "23ef4bab5509e2e7fb1f4a194895a9510fa7c797",
-   "sha256": "00ipp87hjiymraiv6xy0lqzhn9h3wcrw7z4dkzb2934d7bd08j29"
+   "commit": "c55f4ded11e8e50a96f43675a071354a8fb501c3",
+   "sha256": "0d7vkgzsx6ka4zliscsg6drqhg2bj16i911ryzmsp4v6hj294jrc"
   },
   "stable": {
    "version": [
@@ -50962,26 +51813,26 @@
   "repo": "clojure-emacs/inf-clojure",
   "unstable": {
    "version": [
-    20200425,
-    1648
+    20200801,
+    1128
    ],
    "deps": [
     "clojure-mode"
    ],
-   "commit": "f29861204ddbb032b425c7d693e8c006b7b027c6",
-   "sha256": "127kl64hqdy04qdbqr1xfzky3d8fzgbmp7z4hv6mjsc0p4s19azw"
+   "commit": "2c8e46b584be71fe1a585c9072da86382710dc59",
+   "sha256": "13rk3g58vaizp67c1plhfc80vsshdvvsz81wsf3076xp35p05w9b"
   },
   "stable": {
    "version": [
-    2,
-    2,
+    3,
+    0,
     0
    ],
    "deps": [
     "clojure-mode"
    ],
-   "commit": "ff72d667c2709166d19ac15a36f7aac3423cefa1",
-   "sha256": "07l8wkm0j6y2cj7bbb24x4rkjgf4q6ag0c1kcjs0sfmf1kaf14bk"
+   "commit": "2c8e46b584be71fe1a585c9072da86382710dc59",
+   "sha256": "13rk3g58vaizp67c1plhfc80vsshdvvsz81wsf3076xp35p05w9b"
   }
  },
  {
@@ -51037,11 +51888,11 @@
   "repo": "nonsequitur/inf-ruby",
   "unstable": {
    "version": [
-    20200327,
-    1418
+    20200730,
+    1456
    ],
-   "commit": "41e5ed3a886fca56990486f1987bb3bae0dbd54b",
-   "sha256": "12qgd2p664rh0ks5kq6sxaqi5nlmxrzj5p0kpqrx40caicj6jfpl"
+   "commit": "9f0f79ff459c7c417e8931ca020db121e24b45b5",
+   "sha256": "0h0kxgihjrabklnwfphaf86b67q0wmfjywffrydhdmlidi56rbis"
   },
   "stable": {
    "version": [
@@ -51177,11 +52028,11 @@
   "repo": "dieter-wilhelm/inform",
   "unstable": {
    "version": [
-    20200512,
-    1351
+    20200723,
+    500
    ],
-   "commit": "54e0c51960c7f50de31a6831c034ea6adc5a8892",
-   "sha256": "0j3hc3f7yx9dklbvvwpcq0d2n3lp0z47l5066ngvmm52aihhhiyd"
+   "commit": "8ff0a19a9f40cfa8283da8ed73de94c35a327423",
+   "sha256": "1rg3v554zjx1mrw1wz2agfrr9317fzj1bqkn82m9r4ys91gx1qh4"
   },
   "stable": {
    "version": [
@@ -51269,11 +52120,11 @@
   "repo": "emacs-jp/init-loader",
   "unstable": {
    "version": [
-    20160528,
-    1315
+    20200520,
+    2345
    ],
-   "commit": "5d3cea1004c11ff96b33020e337b03b925c67c42",
-   "sha256": "17bg4s8yz7yz28m04fp2ff6ld0y01yl99wkn2k5rkg4j441xg3n2"
+   "commit": "44829fa70f5c4cba03d36db5fa2c969001325b91",
+   "sha256": "1863s0qvnh7hcy2f86d86zajkqldvnz71q16dd9b4wvgnnicwk8s"
   },
   "stable": {
    "version": [
@@ -51333,17 +52184,26 @@
  },
  {
   "ename": "ink-mode",
-  "commit": "855ea20024b606314f8590129259747cac0bcc97",
-  "sha256": "02q95xay6z56i4l0j24dszxnfpjbxijlj4150nsadbv55m7nnjcf",
+  "commit": "8e5ed03afe02f3a53150c6046b8d6bfc12c9eea0",
+  "sha256": "027k27w9yjzmf6rm9ax2njf9aq4j1y4fa4i5388lf1mf8za9sv2s",
   "fetcher": "github",
   "repo": "Kungsgeten/ink-mode",
   "unstable": {
    "version": [
-    20160814,
-    1116
+    20200611,
+    1807
+   ],
+   "commit": "f610a2e7a5a5b176bdc831c66e52f85dc0e7e450",
+   "sha256": "0bssmf9nsg58xavf55wz1y7akw90bacxqd2czhmj4fnmykqd7cnz"
+  },
+  "stable": {
+   "version": [
+    0,
+    3,
+    0
    ],
-   "commit": "e35f26abbaf8ea23c5aa0a0c7ef15334cdfb7b48",
-   "sha256": "0ixqgk101gnm2q6f2bjk2pnqlrj41krqz56lss6fmf81xhxavmpp"
+   "commit": "f883fefb739d62e75a3f7247ea5c6ba8a0895c23",
+   "sha256": "1hr1n0xzjs84a2rgz4mfhhz3d2a7ibgn3wx4kg3qbjlwlwz17x0d"
   }
  },
  {
@@ -51354,11 +52214,11 @@
   "repo": "ideasman42/emacs-inkpot-theme",
   "unstable": {
    "version": [
-    20200515,
-    421
+    20200616,
+    434
    ],
-   "commit": "0f289a3f465728ed41d532674166eef09ac7209b",
-   "sha256": "1bchvrmmcbw8ird7i1klz0ds2xkfmwccz2pp59ixgys0j8cxnq4b"
+   "commit": "0a5f50c3aa590404ae81cdb08eb869ffc04da625",
+   "sha256": "0hnhq51r0rrl2i3hiwzqzax6cwm3j480w1w2nn8hy61x5p37wn06"
   }
  },
  {
@@ -51424,6 +52284,33 @@
   }
  },
  {
+  "ename": "insert-esv",
+  "commit": "de7f7ac1b8e67da50a1bce7f23a0805f8b8dfc06",
+  "sha256": "02s0jikma4qp38pf46jw0l6mqlx9kkfl7ny9zxzr6w2jmi8nc9nr",
+  "fetcher": "github",
+  "repo": "sam030820/insert-esv",
+  "unstable": {
+   "version": [
+    20200808,
+    1832
+   ],
+   "deps": [
+    "request"
+   ],
+   "commit": "cf23d1d7e230c0b9212f8eeceff398f86c991b07",
+   "sha256": "0jqz6krd8b606nqr4q169qcg7dbbwa86gi2rcxvnx5i3jhfhrmab"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "commit": "8a09629bfafa87f8cd75e92fee6655cfa8be67f2",
+   "sha256": "00w9k2r07nyzqrbqp9q77jgx1h976d1gmiq2nv6zxm36sqfvr0xl"
+  }
+ },
+ {
   "ename": "insert-kaomoji",
   "commit": "216fcef758036cf466fa5b52599394709eed48b3",
   "sha256": "1ip61cigz6b6hsj8ahgb6fxf7yab24r0rjjl11i10ykq7sb49k00",
@@ -51601,10 +52488,10 @@
  },
  {
   "ename": "intero",
-  "commit": "1b56ca344ad944e03b669a9974e9b734b5b445bb",
-  "sha256": "15n7ipsq8ylmq4blsycpszkx034j9sb92vqvaz30j5v307fmvs99",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "1a25lsm1psjvn9az3vd0an46p9qwrrmn09r16dqnhsjcaiabinxi",
   "fetcher": "github",
-  "repo": "commercialhaskell/intero",
+  "repo": "chrisdone/intero",
   "unstable": {
    "version": [
     20200125,
@@ -51760,14 +52647,14 @@
   "repo": "dotemacs/ipcalc.el",
   "unstable": {
    "version": [
-    20170926,
-    805
+    20200809,
+    1444
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "2720f7e3e662e04e195f8338b81a499cf321296a",
-   "sha256": "1kmqbb9ca3sca59462ha21grbgxkl4wynz2lr4yqb4qk7cijgd6g"
+   "commit": "58b2b6c90af93ae46c5445b33ee4d1ef4bac1efb",
+   "sha256": "0v6ahhixp57p94m0sagidvq95m45bf4lfwszjzsn7a2wcrvap7r9"
   }
  },
  {
@@ -51840,11 +52727,11 @@
   "repo": "a13/iqa.el",
   "unstable": {
    "version": [
-    20181024,
-    2253
+    20200520,
+    1137
    ],
-   "commit": "b45614f5204ed851de0abe93907aa94de5e37379",
-   "sha256": "11wrmiwlp91x59cn9k2j2pqgvzbrnzvf81dqgm9l5ph5fym0jqsd"
+   "commit": "c1077aca6553cb2011f21b178e10271a17fe4f58",
+   "sha256": "0rr8m477hma3aaqxzmsayms6qgpf3ff1vx5bgcvbz27ddri375hh"
   }
  },
  {
@@ -51901,8 +52788,8 @@
     "cl-lib",
     "json"
    ],
-   "commit": "5f75fc0c9274f4622470e2324e2f4457087aa643",
-   "sha256": "107ry1jxl7qiqa0ackn03whygndkabg20s7szl5xm1l87vx5xghc"
+   "commit": "1e1aabaa686a08767ab33e5cd43ce8f0ebf8d020",
+   "sha256": "1v3q0k93sviv2nn6qsi8f0537w2g0g6c3wamaidlcb019a5rj4vn"
   },
   "stable": {
    "version": [
@@ -51926,15 +52813,15 @@
   "repo": "ikirill/irony-eldoc",
   "unstable": {
    "version": [
-    20170502,
-    1908
+    20200622,
+    2214
    ],
    "deps": [
     "cl-lib",
     "irony"
    ],
-   "commit": "0df5831eaae264a25422b061eb2792aadde8b3f2",
-   "sha256": "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"
+   "commit": "73e79a89fad982a2ba072f2fcc1b4e41f0aa2978",
+   "sha256": "0nwwghsdv11bxqar4ppraxxmm6i076s7nmi9l2c53m708xn4p6pi"
   }
  },
  {
@@ -51963,26 +52850,26 @@
   "repo": "jcs-elpa/isearch-project",
   "unstable": {
    "version": [
-    20190505,
-    819
+    20200717,
+    807
    ],
    "deps": [
-    "cl-lib"
+    "f"
    ],
-   "commit": "4d660afa365c82c3ed00f685b53f0d2358972d36",
-   "sha256": "0klngpw69kdh3l9jrvjq63xlgpqd86j8rrvivrzipddmplppz9gy"
+   "commit": "9113d9452a9a879dc0e503f35e8c1fb4d44d9b64",
+   "sha256": "0gvr758kbfxcvrcwkvf8msibwbfqfp44zl99s7ls0gi81pgzwryj"
   },
   "stable": {
    "version": [
     0,
-    0,
-    7
+    2,
+    4
    ],
    "deps": [
-    "cl-lib"
+    "f"
    ],
-   "commit": "462b8100451b947367aed2970c2669ea6d15edbd",
-   "sha256": "0b8ncpi6kps7fx3fmgfwd2czaal52laf2k6pn46yh110sz6dl30m"
+   "commit": "9113d9452a9a879dc0e503f35e8c1fb4d44d9b64",
+   "sha256": "0gvr758kbfxcvrcwkvf8msibwbfqfp44zl99s7ls0gi81pgzwryj"
   }
  },
  {
@@ -52132,20 +53019,19 @@
   "repo": "doublep/iter2",
   "unstable": {
    "version": [
-    20200512,
-    2111
+    20200517,
+    1623
    ],
-   "commit": "b87c1e8ac50f728e8d33b5b69bf4124ef90b88ba",
-   "sha256": "09yasj1vfakryjvs22a3gd27wwa866b2pkvajwp8hlngk11sc3p3"
+   "commit": "987045585d60700b4b9e617313c1a73618a144c9",
+   "sha256": "0gaq3z2v1q4r9mkyq71dzmqakhi0p8g7ph4z0n3a11rvyc3z9ykx"
   },
   "stable": {
    "version": [
-    0,
-    9,
-    11
+    1,
+    0
    ],
-   "commit": "a6e228eefed8dd6a405c235c15e7a4ea726cae02",
-   "sha256": "1n65202ap7qf44mv8f3ly5msp9fn12ap3cckhqb62ib3yw46ilwk"
+   "commit": "987045585d60700b4b9e617313c1a73618a144c9",
+   "sha256": "0gaq3z2v1q4r9mkyq71dzmqakhi0p8g7ph4z0n3a11rvyc3z9ykx"
   }
  },
  {
@@ -52205,17 +53091,17 @@
  },
  {
   "ename": "ivy",
-  "commit": "06c24112a5e17c423a4d92607356b25eb90a9a7b",
-  "sha256": "0xf5p91r2ljl93wbr5wbgnb4hzhs00wkaf4fmdlf31la8xwwp5ci",
+  "commit": "de5b4f40470cdfb4d2b4b3078436a7457f5703af",
+  "sha256": "0lrf3xxxi3b78z80sg6jkaz07gzqrv242ajiiy0rvly6da17i06z",
   "fetcher": "github",
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20200515,
-    1845
+    20200818,
+    1250
    ],
-   "commit": "04ca16420053a3a6d34a96f0d680dd449c2e5851",
-   "sha256": "1sjaf026zim28c9cld0w5hlk9inp1map70ip99smlk483ib6lbj3"
+   "commit": "dd43ab1217f72948dc5cd669467e33b8b568db44",
+   "sha256": "0h4273gr4h9xkdf5g08ci95jq0n9l1w3vgd1y9452cry1r07ya9l"
   },
   "stable": {
    "version": [
@@ -52228,6 +53114,25 @@
   }
  },
  {
+  "ename": "ivy-avy",
+  "commit": "d820ccd91bcd265539276baedb656ab63d4a9c75",
+  "sha256": "1zanwbf0jcbi0v07n2j058r814dh0qs2qxmwlqrv12j7d1w72kd4",
+  "fetcher": "github",
+  "repo": "abo-abo/swiper",
+  "unstable": {
+   "version": [
+    20200615,
+    938
+   ],
+   "deps": [
+    "avy",
+    "ivy"
+   ],
+   "commit": "dd43ab1217f72948dc5cd669467e33b8b568db44",
+   "sha256": "0h4273gr4h9xkdf5g08ci95jq0n9l1w3vgd1y9452cry1r07ya9l"
+  }
+ },
+ {
   "ename": "ivy-bibtex",
   "commit": "873ae2af16e03c8e10494be3f0e7840eb27172a3",
   "sha256": "0ri0f8cfzyymx9jrw0bldwzx74bzdd5gc90yv16hv239g65scbvx",
@@ -52294,15 +53199,15 @@
   "repo": "wandersoncferreira/ivy-clojuredocs",
   "unstable": {
    "version": [
-    20190907,
-    2053
+    20200714,
+    1111
    ],
    "deps": [
     "edn",
     "ivy"
    ],
-   "commit": "dd33a25f1de4339f75f05689ed60fe1b1c97f554",
-   "sha256": "0km1par5jhhbdbn1sccpsz0drqvmmjg1905xyc2bbfc2xx38cg1i"
+   "commit": "0ea57b70a144ecfa80fbd2ec383ebabedb524c37",
+   "sha256": "1hqs45573651jw248zcyczby4fwp4pdgil2n9rk4lvgb89531qlz"
   }
  },
  {
@@ -52339,11 +53244,30 @@
   }
  },
  {
+  "ename": "ivy-emms",
+  "commit": "12b434e4c78b3428ee144559cb57ea41df8fb4c5",
+  "sha256": "1kqjdw94f2mg5m0zcnah1xk59dp152dm4si2rd9c66jn79s2ai4a",
+  "fetcher": "github",
+  "repo": "franburstall/ivy-emms",
+  "unstable": {
+   "version": [
+    20200629,
+    801
+   ],
+   "deps": [
+    "emms",
+    "ivy"
+   ],
+   "commit": "6f547f9f3dcbf0d5b88595760b3505c7195dc96b",
+   "sha256": "0bqn0hqdrw8psc8r6xcx6dxrjy7llkfpm0fd1k6ra4ybncgaznfg"
+  }
+ },
+ {
   "ename": "ivy-emoji",
-  "commit": "f1121a85321a3184d1fa990ae86f5d1f3b04f145",
-  "sha256": "0sp8z7r1kffgfm4jrn5cqfi335vaynn27hs9345ybrxi3r4a3c0g",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "037r1j2s632a1v05gynlclh6slnhp6mxn55fyx02qw1507l5ap74",
   "fetcher": "github",
-  "repo": "sbozzolo/ivy-emoji",
+  "repo": "Sbozzolo/ivy-emoji",
   "unstable": {
    "version": [
     20200316,
@@ -52518,15 +53442,15 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20200421,
-    1120
+    20200608,
+    1010
    ],
    "deps": [
     "hydra",
     "ivy"
    ],
-   "commit": "04ca16420053a3a6d34a96f0d680dd449c2e5851",
-   "sha256": "1sjaf026zim28c9cld0w5hlk9inp1map70ip99smlk483ib6lbj3"
+   "commit": "dd43ab1217f72948dc5cd669467e33b8b568db44",
+   "sha256": "0h4273gr4h9xkdf5g08ci95jq0n9l1w3vgd1y9452cry1r07ya9l"
   },
   "stable": {
    "version": [
@@ -52550,15 +53474,15 @@
   "repo": "julienXX/ivy-lobsters",
   "unstable": {
    "version": [
-    20171202,
-    2041
+    20200818,
+    1406
    ],
    "deps": [
     "cl-lib",
     "ivy"
    ],
-   "commit": "4364df4b3685fd1b50865ac9360fb948c0288dd1",
-   "sha256": "1cfcy2ks0kb04crwlfp02052zcwg384cgz7xjyafwqynm77d35l0"
+   "commit": "3f7f90751d15ebcf91253ef3cda18c0aa7d856ff",
+   "sha256": "034ln7r1fgsgpxgmk4iv08pkjkxmdc0c0q44hqv2ryb1zkbwija1"
   }
  },
  {
@@ -52603,45 +53527,15 @@
   "repo": "akirak/ivy-omni-org",
   "unstable": {
    "version": [
-    20200125,
-    807
+    20200810,
+    1050
    ],
    "deps": [
     "dash",
     "ivy"
    ],
-   "commit": "113477ae46ec857c5794fc0a031c1e579615f0a9",
-   "sha256": "1j9gwl3azh6y24yiy2s9p9yh6vhs2rmydv2496ivwxqnq9md5b49"
-  }
- },
- {
-  "ename": "ivy-pages",
-  "commit": "93f1183beb74aa4a96de8cd043a2a8eefdd7ad7e",
-  "sha256": "0zz8nbjma8r6r7xxbg7xfz13202d77k1ybzpib41slmljzh7xgwv",
-  "fetcher": "github",
-  "repo": "igorepst/ivy-pages",
-  "unstable": {
-   "version": [
-    20160728,
-    1920
-   ],
-   "deps": [
-    "ivy"
-   ],
-   "commit": "47b03a1f9384502cf22369ff31a2898c863d3aff",
-   "sha256": "0jv74s8jn1sdwdhxkx11gnaqcc49369gld1g6a1hl62521j897rc"
-  },
-  "stable": {
-   "version": [
-    0,
-    1,
-    1
-   ],
-   "deps": [
-    "ivy"
-   ],
-   "commit": "428a901f94c9625c8407fd2bf76f9d7714d40d87",
-   "sha256": "11lcv8dqlmfqvhn7n3wfp9idr5hf30312p213y5pvs4m70lbc9k2"
+   "commit": "a6b284f65b229d9b118b4316c2f6377de93400b1",
+   "sha256": "028c51z4glxxrni1vjdzs9l1475jmcjagpgwaryiqdwx6clia59x"
   }
  },
  {
@@ -52690,15 +53584,15 @@
   "repo": "tumashu/ivy-posframe",
   "unstable": {
    "version": [
-    20200331,
-    536
+    20200528,
+    553
    ],
    "deps": [
     "ivy",
     "posframe"
    ],
-   "commit": "ae9bafe94fe6b77b6fe45766ae6172646f6a5d50",
-   "sha256": "1j6yns5d7lh2v1nfcznrirl7qicdli9csciqvfgj4gkh72a97pw1"
+   "commit": "44749562a9e68bd43ccaa225b31311476fab1251",
+   "sha256": "12wj8v483jjnpjvcgkhlm0p971s06c58c3fd73pgnzzppf0fn7xd"
   }
  },
  {
@@ -52709,27 +53603,27 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20200415,
-    1457
+    20200716,
+    1414
    ],
    "deps": [
     "ivy",
     "prescient"
    ],
-   "commit": "3ab7605d997fb8337bf5ded2ad960b98ac0e1fd7",
-   "sha256": "081v916gnjvx2rzjbqkqhdwijz57w7iryxzg71729gwvavs25lsv"
+   "commit": "cc289ba3b0d89f251267ca2b669d01b3afecc530",
+   "sha256": "0xwy2xh55dm4y7wlz2g6fkwf1xyqqjyp0sjb522qgasivknzwa5p"
   },
   "stable": {
    "version": [
-    4,
-    1
+    5,
+    0
    ],
    "deps": [
     "ivy",
     "prescient"
    ],
-   "commit": "aa3110281a0622fa7b5da115cefb71a319b5b1a0",
-   "sha256": "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3"
+   "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
+   "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
   }
  },
  {
@@ -52771,14 +53665,14 @@
   "repo": "Yevgnen/ivy-rich",
   "unstable": {
    "version": [
-    20200428,
-    110
+    20200601,
+    104
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "3f818b201769bc13cc75aa73645217e374136aca",
-   "sha256": "19w1mmqg15xy963f2h50i0cz0gmii75yarkmv2ssfh164pkyvhdk"
+   "commit": "10970130b41c6ef9570893cdab8dfbe720e2b1a9",
+   "sha256": "0zpkgj2q16hncafpbap32ypm3666j2vvcrwsn78mca9i82j7xg7l"
   },
   "stable": {
    "version": [
@@ -52808,8 +53702,8 @@
     "ivy",
     "rtags"
    ],
-   "commit": "ed229d2e4070cc07ba76e537e8f5f93835ff0710",
-   "sha256": "1jf1mg2pib2rsrn280j2ywmnqgkr5jwmiaqf252jsb7ndq7p5gcr"
+   "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+   "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
   },
   "stable": {
    "version": [
@@ -52886,8 +53780,8 @@
   "repo": "mkcms/ivy-yasnippet",
   "unstable": {
    "version": [
-    20181002,
-    1655
+    20200704,
+    700
    ],
    "deps": [
     "cl-lib",
@@ -52895,8 +53789,8 @@
     "ivy",
     "yasnippet"
    ],
-   "commit": "ebf05761cd890bccd8072051f988dae7ab11c9ce",
-   "sha256": "01dc8hv464r3q3d6whix76sqwfkjcvhdg55jmw0ck9jwmhwsvc7x"
+   "commit": "83402d91b4eba5307f71884a72df8e11cc6a994e",
+   "sha256": "07a4bk3hva41qzz8x4qyswa2f89psxhih89k0slhngw5d8iidx3i"
   }
  },
  {
@@ -53075,11 +53969,11 @@
   "url": "https://bitbucket.org/sbarbit/jack-connect",
   "unstable": {
    "version": [
-    20200325,
-    1639
+    20200519,
+    1027
    ],
-   "commit": "c227d1ed3016960c8666a60e4215bbb029436bc7",
-   "sha256": "1w66dpn0cmdqwgjd1528cd2739ijxhsr62zyx2arlr9ldrnqy5f6"
+   "commit": "fae8c5f9b383f7606f3883badfd1294e8affb0db",
+   "sha256": "0r6dihw5dar7w6h5xvif25fv9alwarb74mmaxq2ld8rbhv4il66c"
   }
  },
  {
@@ -53164,33 +54058,6 @@
   }
  },
  {
-  "ename": "japanlaw",
-  "commit": "6192e1db76f017c3b1315453144cffc47cdd495d",
-  "sha256": "1pxss1mjk5660k80r1xqgslnbrsr6r4apgp9abjwjfxpg4f6d0sa",
-  "fetcher": "github",
-  "repo": "mhayashi1120/japanlaw.el",
-  "unstable": {
-   "version": [
-    20160615,
-    643
-   ],
-   "deps": [
-    "cl-lib"
-   ],
-   "commit": "1bbdef942f28c61a0adb89d1b3c2cca5b10ca2dc",
-   "sha256": "1vj5b551383acp77lawvlw5cfvnqidjhd52sig3kz8v4bzz73cch"
-  },
-  "stable": {
-   "version": [
-    0,
-    9,
-    1
-   ],
-   "commit": "d90b204b018893d5d75286c92948c0bddf94cce2",
-   "sha256": "08gkxxaw789g1r0dql11skz6i8bdrrz4wp87fzs9f5rgx99xxr6h"
-  }
- },
- {
   "ename": "jape-mode",
   "commit": "b034024bd31c4be96c478a951b0ef63d8f89a1b7",
   "sha256": "1gd685r86h0kr36msw81gfgwv7d35hihz6h0jkc6vd22wf6qc3ly",
@@ -53353,14 +54220,14 @@
   "repo": "zk-phi/jaword",
   "unstable": {
    "version": [
-    20170426,
-    627
+    20200816,
+    647
    ],
    "deps": [
     "tinysegmenter"
    ],
-   "commit": "ac062b0e5ab4bd3270497e80aa0f3ac033a0493f",
-   "sha256": "05kbscympb59njfrs94w4b2lwkc3057wzib65kq0l93bx4pcw2iy"
+   "commit": "45e350895fc55f087a2102fded5b306811089a7d",
+   "sha256": "02ncm22wldx8g3iibdw92gk4hdig0209f7bmhxrhgdv8xp544c2h"
   }
  },
  {
@@ -53594,15 +54461,15 @@
   "repo": "rmuslimov/jenkins.el",
   "unstable": {
    "version": [
-    20200115,
-    2133
+    20200524,
+    2016
    ],
    "deps": [
     "dash",
     "json"
    ],
-   "commit": "29e27a685ec971b518251ce0e66a0b67d78ea395",
-   "sha256": "0ms9i4dww801q09n4wzjpaqd6k89xdkn5vx3i565p748kp9lqhz6"
+   "commit": "bd06cdc57c0cb9217d773eeba06ecc998f10033b",
+   "sha256": "0g99bi3i27ay8xhz409k9ska9yy77j3k687l817k1fyhlyy5lpjk"
   }
  },
  {
@@ -53621,15 +54488,33 @@
   }
  },
  {
+  "ename": "jenkinsfile-mode",
+  "commit": "a579d11271a8f46a65cf557b74f84db36a7b8bb4",
+  "sha256": "1j70gp8w5f3nli5m08s9ysl3k7pys6n4bzdzmbq0r9yzl02i6m8r",
+  "fetcher": "github",
+  "repo": "john2x/jenkinsfile-mode",
+  "unstable": {
+   "version": [
+    20200725,
+    2325
+   ],
+   "deps": [
+    "groovy-mode"
+   ],
+   "commit": "00d259ff9b870d234540e00e1d7c83cccdb063b8",
+   "sha256": "0srf6xdjnrd4v4ks9pal7i48wmkcl4q5ry7d0yzfx1c9pz2qg9zx"
+  }
+ },
+ {
   "ename": "jest",
-  "commit": "a656c058c423ea6396b831d45c6dbb9bce6c4881",
-  "sha256": "10xsqcjskh2s6mlh07vf10whaas3aqm18hk3w309r3n1qmqihf75",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "1x9dqyrpri2giqzzlcg0nnq6wjfdfmy9fqqrq159qvw8rshvfzcz",
   "fetcher": "github",
-  "repo": "emiller88/emacs-jest",
+  "repo": "Emiller88/emacs-jest",
   "unstable": {
    "version": [
-    20200318,
-    237
+    20200625,
+    1611
    ],
    "deps": [
     "cl-lib",
@@ -53640,8 +54525,8 @@
     "projectile",
     "s"
    ],
-   "commit": "b51be19c1de9e82ee1dc62921be2222fc5685eed",
-   "sha256": "1jdphlhp9vxvkj51cswqfgka910216snyjhql700x4dgpmvkcv56"
+   "commit": "4c6ddd3304e199211f0fbdc8a5b83ccbfe1f7fcc",
+   "sha256": "1v940c6p77dhs3rf016qqzhaniifkfsspbkpknf7vdssxgk9g1a5"
   }
  },
  {
@@ -53718,11 +54603,11 @@
   "repo": "paradoxxxzero/jinja2-mode",
   "unstable": {
    "version": [
-    20141128,
-    1007
+    20200718,
+    730
    ],
-   "commit": "cfaa7bbe7bb290cc500440124ce89686f3e26f86",
-   "sha256": "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"
+   "commit": "ecd19a40b7832bb00f0a2244e3b0713d0bf3850d",
+   "sha256": "05z380d8ln53mx1gqa7awnv4wpqdhv7ggc91dds57681wzsqgz15"
   },
   "stable": {
    "version": [
@@ -53756,15 +54641,15 @@
   "repo": "nyyManni/jiralib2",
   "unstable": {
    "version": [
-    20200331,
-    1940
+    20200520,
+    2031
    ],
    "deps": [
     "dash",
     "request"
    ],
-   "commit": "ccf69e417911e091ec4c28d47d178ee63196c626",
-   "sha256": "170fjz7k9bk17qk7wrd56xw484xp8zckx635360pm0lfg4dvycpc"
+   "commit": "c21c4e759eff549dbda11099f2f680b78d7f5a01",
+   "sha256": "0yrcc9yfz9gxkhizy03bpysl1wcdbk0m6fj9hkqw3kbgnsk25h4p"
   }
  },
  {
@@ -53824,6 +54709,29 @@
   }
  },
  {
+  "ename": "journalctl-mode",
+  "commit": "38710d44fba3c886431d1acb7477ae4035cf00c1",
+  "sha256": "126gj6rh6j0j6lbygx15lg5qxfaz4bpspbzd1hv3h05nvnnykv3h",
+  "fetcher": "github",
+  "repo": "SebastianMeisel/journalctl-mode",
+  "unstable": {
+   "version": [
+    20200607,
+    754
+   ],
+   "commit": "e8e057f387266d1c11f8fb68023ceb9607404948",
+   "sha256": "1l9z0w8kb15vsfpwcl9rfhflmvy8illsssfqjxkcwl8d7pzfhm8n"
+  },
+  "stable": {
+   "version": [
+    0,
+    8
+   ],
+   "commit": "457e38af67427e92d6217abbb362ca9673b33ed5",
+   "sha256": "1lnjgpbvs3b7h1m1lnd4g3965pjn1sw4vyjd3f4106s10llmkd8x"
+  }
+ },
+ {
   "ename": "jpop",
   "commit": "2a52a3cf909d12201196b92685435f9fa338b7ba",
   "sha256": "00chh1aqnkkkhdp44sapdjx37cbn92g42wapdq7kcl8v1v0xmnjr",
@@ -53892,11 +54800,11 @@
   "repo": "ljos/jq-mode",
   "unstable": {
    "version": [
-    20200516,
-    1606
+    20200604,
+    833
    ],
-   "commit": "85214664a9f20faab7c45087b28bedd0feabb560",
-   "sha256": "0kvi1cqn4hdcs2mc4lsddy01yyixvm2ykqq6j4yb9h07lixrxih6"
+   "commit": "42ad0a99f0114233e2cb317585cb9af494d18a2f",
+   "sha256": "1n4w45yv1k7979j42dahhp9356p9bmk6ldybqa0z65k9gz4abkxl"
   },
   "stable": {
    "version": [
@@ -53953,8 +54861,8 @@
     20180807,
     1352
    ],
-   "commit": "306abcfb9f6e46962061a34b68d4f6baa8c7aba4",
-   "sha256": "1pifplr4qr9667bbbqgqg39v8dyglvg6ljglkjga0d2n39am7r2q"
+   "commit": "9d9460b17f59e4e7a4e5cc34576ba72b2ca56524",
+   "sha256": "0hil53mzvxz71l908wm6804migvm7hm0nwm8qpyy2dgnfzl996hg"
   },
   "stable": {
    "version": [
@@ -54144,14 +55052,14 @@
   "repo": "mooz/js2-mode",
   "unstable": {
    "version": [
-    20200427,
-    33
+    20200725,
+    112
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "515d876c6ae45a61cf67a7bd5723fe4c9e518756",
-   "sha256": "05pgyisb2szbrfbv6wjhfi8c00gakv51jxb8j73pji30v2a9rapn"
+   "commit": "40aab27581279d0fdbfeb9afeb85f39d401a927f",
+   "sha256": "0ysd0ji3vvk2zpjcg1wl7b2hva8471vq0ypib4h6spnpjdr43vzk"
   },
   "stable": {
    "version": [
@@ -54203,6 +55111,24 @@
   }
  },
  {
+  "ename": "js2hl",
+  "commit": "7c7f441e411427ed570f0aa0b04e46d088debecc",
+  "sha256": "09jp7cy5jgcmhrpa2x48q39shpcgw1xm3g73aqmlhcw7wfn6q1b5",
+  "fetcher": "github",
+  "repo": "redguardtoo/js2hl",
+  "unstable": {
+   "version": [
+    20200729,
+    146
+   ],
+   "deps": [
+    "js2-mode"
+   ],
+   "commit": "0255339dbb9fdfb009c94beefdc60e78baae11a7",
+   "sha256": "19vw96z28zgkkb93zq6ndslc20yg3qip44fqzvnsf8qr9wxxl3g1"
+  }
+ },
+ {
   "ename": "js3-mode",
   "commit": "cdd1f8002636bf02c7a3d3d0a075758972eaf228",
   "sha256": "0iqhqq9wkhpgw1n83x6f8qib0agc626cv0qah73v6497ra9ri8ni",
@@ -54479,11 +55405,11 @@
   "repo": "mgyucht/jsonnet-mode",
   "unstable": {
    "version": [
-    20200218,
-    2217
+    20200812,
+    1558
    ],
-   "commit": "d8b486c8376a4785a7f2dc8a16fe1f2d82c6bfae",
-   "sha256": "0xpy699jh6ia46brd7i2qrfi0zrcdrhj3dc8d275va9w8a78paks"
+   "commit": "c8422a617438c79ade98f8d9eeb2086dacb0378c",
+   "sha256": "1r2ic7gbngbwmjjcigphj8jamaff42s7bsn6xz7yfzrci0gm8jrd"
   },
   "stable": {
    "version": [
@@ -54558,11 +55484,11 @@
   "repo": "JuliaEditorSupport/julia-emacs",
   "unstable": {
    "version": [
-    20200504,
-    1726
+    20200717,
+    1915
    ],
-   "commit": "839726af374991223ffe56f7e7d10bef81033d09",
-   "sha256": "0lspmp519py7adippfmz70zcd9dpz46x8a3wlda71a5pdjs5szfq"
+   "commit": "b5f5983d2b232c8bba4c5eff75cccdb787c19d98",
+   "sha256": "0pxaga920bab6n5byag6h0wql2akiybhsh9nlinfx708i9dzmvv6"
   },
   "stable": {
    "version": [
@@ -54581,14 +55507,14 @@
   "repo": "tpapp/julia-repl",
   "unstable": {
    "version": [
-    20200310,
-    1145
+    20200625,
+    924
    ],
    "deps": [
     "s"
    ],
-   "commit": "5fa04de4e76e10d5ee37d4244f48ddae4503faa1",
-   "sha256": "1xnb3r5999ipkkvh7fl2kr0yy0j3vmnw7a6n23m9ps4fvy6hpl9n"
+   "commit": "d073acb6339e99edf77833f82277afd9a076f16a",
+   "sha256": "1p2d92mcbdl8j22qz04iwdlpkbv2qn9p8ds8n2vpf4m9mgzjplzi"
   },
   "stable": {
    "version": [
@@ -54620,14 +55546,14 @@
  },
  {
   "ename": "julia-snail",
-  "commit": "4b80da8bdccaa0992deb07cef7ea4a582d9707ae",
-  "sha256": "0yljiqgamm5gjr1dbzjfqvnrijhgrpjd7gj8and1w33s1d2qh8gd",
+  "commit": "5510bd5788fc1dab3049100f9a993d89fcd10601",
+  "sha256": "0bbz4r0xygx9hcddk5r64w9hycvxqvl7y6z53smlwns1pj7n9wvp",
   "fetcher": "github",
   "repo": "gcv/julia-snail",
   "unstable": {
    "version": [
-    20200515,
-    2010
+    20200810,
+    1941
    ],
    "deps": [
     "cl-lib",
@@ -54638,8 +55564,8 @@
     "spinner",
     "vterm"
    ],
-   "commit": "c9aff5ffe6df951dd5343f05d6e4170203a7032a",
-   "sha256": "065ix3jycsx3wvkq7a6060i93caxisdvgxgqb1l6rq15n4qln78y"
+   "commit": "44d06e18cf9ded6c05936ce10aca0a73f768f457",
+   "sha256": "0hpypirqc2hd1zga5qjcx2i7vp3h2vif76npd0j10hiimxal1kxz"
   },
   "stable": {
    "version": [
@@ -54803,8 +55729,8 @@
     "websocket",
     "zmq"
    ],
-   "commit": "785edbbff65abb0c929dc2fbd8b8305c77fd529e",
-   "sha256": "1l1fd062dmig3mgkwixr4ly8x12z9skh5wj18hkyc84n7rwdar47"
+   "commit": "360cae2c70ab28c7a7848c0c56473d984f0243e5",
+   "sha256": "1bn0jwpigpl5n45vpz73vv12g078151vyhkkhkwy5xqx627swxf9"
   },
   "stable": {
    "version": [
@@ -54860,14 +55786,26 @@
   "repo": "TxGVNN/emacs-k8s-mode",
   "unstable": {
    "version": [
-    20191006,
-    849
+    20200803,
+    1549
+   ],
+   "deps": [
+    "yaml-mode"
+   ],
+   "commit": "9364cdbbae00055c4efa1eeb80503e0b0a215743",
+   "sha256": "1ap8nwlv9ha5a03gc10sva12sc6qzq1vig8hibg1igbsc1qmfkad"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
    ],
    "deps": [
     "yaml-mode"
    ],
-   "commit": "5984acee6f3891afa78acfd1d08c44a24953a233",
-   "sha256": "11x602pmqa3833azkzph1ghm354nypv6rr1y53k6kdrkwviwkcpm"
+   "commit": "9364cdbbae00055c4efa1eeb80503e0b0a215743",
+   "sha256": "1ap8nwlv9ha5a03gc10sva12sc6qzq1vig8hibg1igbsc1qmfkad"
   }
  },
  {
@@ -54999,16 +55937,16 @@
   "repo": "jmorag/kakoune.el",
   "unstable": {
    "version": [
-    20191017,
-    1502
+    20200621,
+    1818
    ],
    "deps": [
     "expand-region",
     "multiple-cursors",
     "ryo-modal"
    ],
-   "commit": "d73d14e69ea38076af50cc69f846808383ff539d",
-   "sha256": "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"
+   "commit": "ea8dde5dfe59c54d7729b141024976535b472573",
+   "sha256": "04ixj4cpw5iayxxwly5sr19lfnyss5cac0vsd0q1x3ys57y9v9im"
   }
  },
  {
@@ -55121,28 +56059,28 @@
   "repo": "ogdenwebb/emacs-kaolin-themes",
   "unstable": {
    "version": [
-    20200508,
-    1621
+    20200817,
+    1844
    ],
    "deps": [
     "autothemer",
     "cl-lib"
    ],
-   "commit": "15e2612eba2eeb223f6b4e5ac4a55dc5da09b14a",
-   "sha256": "0qay924qz5ab7a4d7cnancfnb7ivra33dr6knwqmy3wf089jl6kk"
+   "commit": "380bcb745c9bbf7328b7f190680a0e51231e3c3e",
+   "sha256": "1yw1c97ynjjr3md2shrhviiqycaggcmzhkb0i5y49b2w2mdvp1fa"
   },
   "stable": {
    "version": [
     1,
-    5,
-    4
+    6,
+    0
    ],
    "deps": [
     "autothemer",
     "cl-lib"
    ],
-   "commit": "db1c43915fe68f31fffa00159b4198c32e87c8ed",
-   "sha256": "038bqg66m5cpg1w70la3jr57rq9fngmb1g67z27lpqcf3xf416xc"
+   "commit": "3e2c700aa1cf9f0ee17486ef9a7a68f77fb9946a",
+   "sha256": "07lydl1b8fz4g4q22ffrl6li9kc3zp9zq5rpqghzr9b8f56ddfqj"
   }
  },
  {
@@ -55217,11 +56155,11 @@
   "repo": "delaanthonio/kconfig-mode",
   "unstable": {
    "version": [
-    20190818,
-    2030
+    20200628,
+    1721
    ],
-   "commit": "02bb919596cf673828e95872dc329f2424a99864",
-   "sha256": "1h0v9528d2ssjgqa8813l3anhz15aggsmf8yln0qpphhrlrkfmpz"
+   "commit": "d9fdf751646abe2b75b7bbeb46e7552e0f36f290",
+   "sha256": "0dhkggvni5k4rnj2m6lva99hj1925b4w24dh9nv3m9w0x7b49263"
   }
  },
  {
@@ -55264,6 +56202,39 @@
   }
  },
  {
+  "ename": "keg",
+  "commit": "78d46bbc822f5df56aa83b986a4f283949533d5b",
+  "sha256": "1cmbpak0rn6xz0ccpn1629qp0wn7rpv40js4jr958a2z89448g3g",
+  "fetcher": "github",
+  "repo": "conao3/keg.el",
+  "unstable": {
+   "version": [
+    20200726,
+    228
+   ],
+   "deps": [
+    "cl-lib"
+   ],
+   "commit": "fea2f831d84d7642c35820bb63250487e46683e5",
+   "sha256": "062lnv7g9ixs6d0qzp6py9ajd2rbrk7l2yrz3dn5zz8lx06hbaga"
+  }
+ },
+ {
+  "ename": "keg-mode",
+  "commit": "bb72a113cefcc1e42a1fe9ea00404fbc6ee8d917",
+  "sha256": "13g43mfja6b84bkfzinr2f39viyrix5xf4xwg7kg66zpy12bshiv",
+  "fetcher": "github",
+  "repo": "conao3/keg.el",
+  "unstable": {
+   "version": [
+    20200601,
+    333
+   ],
+   "commit": "fea2f831d84d7642c35820bb63250487e46683e5",
+   "sha256": "062lnv7g9ixs6d0qzp6py9ajd2rbrk7l2yrz3dn5zz8lx06hbaga"
+  }
+ },
+ {
   "ename": "kerl",
   "commit": "166afdc776689b0da93576dbeaa71ff6dfb627db",
   "sha256": "0f8n7cm5c432pwj28bcpv2jj5z3br3k164xj6nwfis3dvijwsgss",
@@ -55407,20 +56378,20 @@
   "repo": "tarsius/keycast",
   "unstable": {
    "version": [
-    20200418,
-    2028
+    20200612,
+    2247
    ],
-   "commit": "a912c4db1b88390f76b14e3b47ded314fdc8f48c",
-   "sha256": "07gfldj9y4jfvna1rqlr7w6y6daqdsvc1fb2m7acjn37bpmfrc3b"
+   "commit": "038475c178e90c7bad64d113db26d42cad60e149",
+   "sha256": "1926khkdak2d1wgrgrfzhsv9l5f0rrl1rws78c3zw8ikwl8k7wbl"
   },
   "stable": {
    "version": [
     1,
     0,
-    1
+    3
    ],
-   "commit": "adb55497c0f16e90069d6e5e86b4f9f65f13624b",
-   "sha256": "1sprdfx0gvyqmq0fkf4bf56q3d8xxig2vxi38nzjx90llzvka35q"
+   "commit": "038475c178e90c7bad64d113db26d42cad60e149",
+   "sha256": "1926khkdak2d1wgrgrfzhsv9l5f0rrl1rws78c3zw8ikwl8k7wbl"
   }
  },
  {
@@ -55517,13 +56488,13 @@
    "version": [
     3,
     0,
-    2
+    3
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "0b9bb7f4959ca54f0827b202f513ec7508c11e0e",
-   "sha256": "11y1vdrj2isn00mh428ynzqnfxjsg0138wx0bs619j0pv6d3j09g"
+   "commit": "195e0ca5b1b9967faf94a3e5a634d8975b796705",
+   "sha256": "0ckv9mbqb1f2lp17sv3nxjwww4ph9v3bhlxwvchvkkdlbcg87i5n"
   }
  },
  {
@@ -55549,11 +56520,11 @@
   "repo": "chuntaro/emacs-keypression",
   "unstable": {
    "version": [
-    20200514,
-    822
+    20200819,
+    534
    ],
-   "commit": "1e00bbdb451fd88bde9917526fd0b13b2a1bd26c",
-   "sha256": "06j8pqss8izhyahf0nw95mg34lbclhzk4f5vzfg35qcmjmbmqzg6"
+   "commit": "9427241f3fa539e4b5ad7581a05eb7e49f2cf518",
+   "sha256": "0p2pag2hzxswsf5hzjfm0nf4wpp40lsmxf1x6n9vfwfrpfk5b9ar"
   }
  },
  {
@@ -55571,8 +56542,8 @@
     "cl-lib",
     "dash"
    ],
-   "commit": "41bbfc4dbed5de6ecf3ec1dba634c7c26241ca84",
-   "sha256": "0cm6naqlwk65xy9lwnn5r7m6nc1l7ims2ckydmyzny5ak8y5jbws"
+   "commit": "45ce83c4b56f064874256db37e697a63b2c69e65",
+   "sha256": "0fcz1qw3mw4m8albs1ybixrcz8yqgwip69fr99cd5bxfyr6zqj6d"
   },
   "stable": {
    "version": [
@@ -55730,8 +56701,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "e77fcf46284afa1fd13499db695745112f41c8cd",
-   "sha256": "0c65qnsibcppyrf3bqp4blv2bfamisfwgxqy90z0gkbxzw9q4lxw"
+   "commit": "7db85a3f3004ff400e24105d1875f4e3a6eec7a6",
+   "sha256": "02nv6hzzr60gn24ra88smrwmkfjcb33c987dcgxqv7rzjpdjagnx"
   },
   "stable": {
    "version": [
@@ -55842,8 +56813,8 @@
     20180702,
     2029
    ],
-   "commit": "c0227c5ce4011033b5f0cf2815c352d123a13305",
-   "sha256": "1l3fjljm7abk29ibbbvds7nq72yqrgcsy5bv42s1czbffw62zcn6"
+   "commit": "f34c43f235f35767ed04765a90d68b23807436ba",
+   "sha256": "06pgjd79kvkpznniw90hrsb7fvc0y3hhnxs6pyay869d50vbyw53"
   },
   "stable": {
    "version": [
@@ -55851,10 +56822,10 @@
     0,
     0,
     -1,
-    2
+    3
    ],
-   "commit": "78fb93b88f9941c22be02d36a786db8ca7639c59",
-   "sha256": "1z59fi9q32xql1w7pjh4w1jzfz1n63a0lr5x38kwjj79dpz3ccal"
+   "commit": "20c14b2a2bac73288a4c2808843910364565f66a",
+   "sha256": "1mf3if96cvxc8sqy22h4j2aq320ngw6q2286psvpq9v1mhv0wna4"
   }
  },
  {
@@ -55865,15 +56836,15 @@
   "repo": "stardiviner/kiwix.el",
   "unstable": {
    "version": [
-    20200512,
-    1321
+    20200714,
+    1357
    ],
    "deps": [
     "cl-lib",
     "request"
    ],
-   "commit": "dd02284149027694e4cf16d6f4daf1f6dd011249",
-   "sha256": "0zhg9467id0jd516hnz4c6aqmjp5q1s95fkhjxbk3g9j11cnfjf0"
+   "commit": "cb3e2531a55b896b9b41f38f97a597c26433da8e",
+   "sha256": "077bng1mwnd1m8ji4a44aqly94d07k09grwk0j52kgxlhvv3p3di"
   },
   "stable": {
    "version": [
@@ -56130,16 +57101,16 @@
   "repo": "abrochard/kubel",
   "unstable": {
    "version": [
-    20200429,
-    1454
+    20200812,
+    2143
    ],
    "deps": [
     "dash",
     "s",
     "transient"
    ],
-   "commit": "7a0f095992cc135babfbf9706b6eb927e0d0c883",
-   "sha256": "0g6sr8ndbig0vgqy7791hkzn89m5lj7qfq36inh5ci9q9r343ggg"
+   "commit": "55099f130803b56eb1f7595ba34a313df4ec138a",
+   "sha256": "1sly3fgdrynazaab0nb7hbxs0vb42g0r00m7zr162kqw7n57gxaw"
   },
   "stable": {
    "version": [
@@ -56165,8 +57136,8 @@
     "evil",
     "kubel"
    ],
-   "commit": "7a0f095992cc135babfbf9706b6eb927e0d0c883",
-   "sha256": "0g6sr8ndbig0vgqy7791hkzn89m5lj7qfq36inh5ci9q9r343ggg"
+   "commit": "55099f130803b56eb1f7595ba34a313df4ec138a",
+   "sha256": "1sly3fgdrynazaab0nb7hbxs0vb42g0r00m7zr162kqw7n57gxaw"
   },
   "stable": {
    "version": [
@@ -56351,11 +57322,11 @@
   "repo": "MetroWind/lab-theme",
   "unstable": {
    "version": [
-    20200204,
-    1931
+    20200815,
+    2104
    ],
-   "commit": "2cd61072d2b4c563d961f80918fc6b1dc45f7ba4",
-   "sha256": "0jwslzxjyclr4iw8ir0glcj5iasgx2z9i16qn7705sdmdmbzkdwz"
+   "commit": "9d7deb9635959d3a50ccb1082eb1207275f4b3e8",
+   "sha256": "0ifpg3vz84x87a1xsx0db79v14bfdnbaha6p4hcvaj67hi58qa81"
   }
  },
  {
@@ -56405,15 +57376,15 @@
   "repo": "Deducteam/lambdapi",
   "unstable": {
    "version": [
-    20200513,
-    1043
+    20200706,
+    1546
    ],
    "deps": [
     "eglot",
     "math-symbol-lists"
    ],
-   "commit": "a3d4ae8863e268c88664ce869e9469c8a42d2e05",
-   "sha256": "1v8w70x1jnald6k22ipa7d9z1ggcf2imr97wbw3i48dp4iv21zqd"
+   "commit": "665cb18e484b8e41b0314fc442422b671cda2962",
+   "sha256": "0qsd30xnhzcvfdk0p2adzrbzl6hw4z5is0wwirzr79qx025zm4gf"
   }
  },
  {
@@ -56472,26 +57443,26 @@
   "repo": "mhayashi1120/Emacs-langtool",
   "unstable": {
    "version": [
-    20200117,
-    441
+    20200529,
+    230
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "a71ed02ce06920ae3cafd6708de1c21811ce14c3",
-   "sha256": "1ars70nx8gxb8szlp6jyqjll9gr7j9z5cd9ip1izqv00si6p1fvn"
+   "commit": "8276eccc5587bc12fd205ee58a7a982f0a136e41",
+   "sha256": "1pkfazn6qy6n4rg1rvw7b79b7nsp7xqdadhpah4xjvqxd6apqasz"
   },
   "stable": {
    "version": [
     2,
-    0,
-    4
+    2,
+    1
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "adb80f55665db65a46fc552d364386d3cc703d94",
-   "sha256": "15bbyc0fqdn7d0k8zrn71jljkq9cc8a5rcllywvph46lnfnqy3p6"
+   "commit": "0fe79567244ca719448c55a89082505596a2359a",
+   "sha256": "1pkfazn6qy6n4rg1rvw7b79b7nsp7xqdadhpah4xjvqxd6apqasz"
   }
  },
  {
@@ -56520,26 +57491,26 @@
   "repo": "lassik/emacs-language-id",
   "unstable": {
    "version": [
-    20200409,
-    607
+    20200726,
+    1813
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "bf17d80b6c4b58fb66cddc2b2914f57d48468e97",
-   "sha256": "1p21smbm3z6xfq0zk8pv62wppbbxx8mh994ax8b00kh16j7yhh2c"
+   "commit": "aa541a4461a07add17374fd56aef6e2fd1a61c60",
+   "sha256": "0mxwch6692mb5d9l5hzbscrg61a3sxf2wjbn66q06b5a2r2wkqvn"
   },
   "stable": {
    "version": [
     0,
-    5,
+    7,
     1
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "bf17d80b6c4b58fb66cddc2b2914f57d48468e97",
-   "sha256": "1p21smbm3z6xfq0zk8pv62wppbbxx8mh994ax8b00kh16j7yhh2c"
+   "commit": "aa541a4461a07add17374fd56aef6e2fd1a61c60",
+   "sha256": "0mxwch6692mb5d9l5hzbscrg61a3sxf2wjbn66q06b5a2r2wkqvn"
   }
  },
  {
@@ -56574,8 +57545,8 @@
   "repo": "mihaiolteanu/lastfm.el",
   "unstable": {
    "version": [
-    20200320,
-    1839
+    20200701,
+    715
    ],
    "deps": [
     "anaphora",
@@ -56584,8 +57555,8 @@
     "request",
     "s"
    ],
-   "commit": "54636059512adec0176950e8fce3b9bf7423619d",
-   "sha256": "1ffvh71vgsdv118hhz0x2xfmqb2bayk7i3mdxc1ybs2vrdggnim4"
+   "commit": "cfa5e9b0b1f54884dc36ae5d8f35e3c6b841ef74",
+   "sha256": "1m1qf5f7kq7d720inkks6wwwn4hf40lrz4755gwnnn6d5zf0b1ix"
   },
   "stable": {
    "version": [
@@ -56784,11 +57755,11 @@
   "repo": "pekingduck/launchctl-el",
   "unstable": {
    "version": [
-    20150518,
-    1309
+    20200531,
+    1043
    ],
-   "commit": "73f8f52a5aa9a0be9bdcf68c29ad0fa2b4a115a4",
-   "sha256": "154z7bhb7qagvl3dlgrlsxdg4chz2863ijglg47xs3yhjp5ypanj"
+   "commit": "96886b7e64d15ffd3319c8b4b04310ccdc648576",
+   "sha256": "0mw1c14ysh186lbgmmyp01hszdgjm605diqfq6a17a7dd7fn549a"
   }
  },
  {
@@ -56820,8 +57791,8 @@
    "deps": [
     "colorless-themes"
    ],
-   "commit": "2b4c341640c8191a39e4bc28d6cd04c7d6dcbb37",
-   "sha256": "0ni9cnrv464fk840i1ll241kzkiy1zc6nfrbdv3ciixxdxbshxbn"
+   "commit": "736f7a105535901b4783d19534e7855920e25115",
+   "sha256": "1wi7wxiyk0g3k0l60hdmcyvvxr1kaapbkxvkknwd9qvdsji0ng73"
   },
   "stable": {
    "version": [
@@ -56896,11 +57867,11 @@
   "repo": "conao3/leaf.el",
   "unstable": {
    "version": [
-    20200511,
-    821
+    20200817,
+    1226
    ],
-   "commit": "59c85a53385a3c55ce6b3b0e62a4fca1556389eb",
-   "sha256": "0scmdb99i20xk8rvlv2xjg54lqqvfp9gv8q9kpqa8jpcq21nbav0"
+   "commit": "7d2f13a103ff275f64086f4ad12308266d1fb48a",
+   "sha256": "1ggcbnpahxxjm4h21z9pl9164jwv7mhq4n6k5zagna863a9hlrbw"
   },
   "stable": {
    "version": [
@@ -56920,16 +57891,16 @@
   "repo": "conao3/leaf-convert.el",
   "unstable": {
    "version": [
-    20200415,
-    1725
+    20200812,
+    1306
    ],
    "deps": [
     "leaf",
     "leaf-keywords",
     "ppp"
    ],
-   "commit": "2a8ec045d5d36e85e7deb2a46aefacaecf4bfafe",
-   "sha256": "133id4zd9dnx962r71m0irxvqs9dwaqnv5l4b8bjd3gigijah1dp"
+   "commit": "d716e0bc3be91a79c791e7a4cb8335132a69d195",
+   "sha256": "0a2rqylqzvvfs62rrqkigga9jaxs89b2l8sdzkfb30vwp0y3d0sb"
   }
  },
  {
@@ -56940,14 +57911,14 @@
   "repo": "conao3/leaf-keywords.el",
   "unstable": {
    "version": [
-    20200428,
-    1803
+    20200812,
+    1025
    ],
    "deps": [
     "leaf"
    ],
-   "commit": "bdf225b2b2cc76b87f5bf55dfa09c3a020ac1e7d",
-   "sha256": "0wdxxwh64l013vpkb7xpjqzyy4c0qy7h9l6l5cr4pncp7nx3bcns"
+   "commit": "c38d9d0d8cdb5a95df788af784e4eb989b674622",
+   "sha256": "19a1wrzikbzn2lswf5xwy8145a60mrj9ndj7cx29qrbr8fjcz431"
   },
   "stable": {
    "version": [
@@ -56967,8 +57938,22 @@
   "repo": "conao3/leaf-manager.el",
   "unstable": {
    "version": [
-    20200414,
-    543
+    20200812,
+    1004
+   ],
+   "deps": [
+    "leaf",
+    "leaf-convert",
+    "ppp"
+   ],
+   "commit": "baea372b3cfc7e1ad6d341d2f06e2932dcebf801",
+   "sha256": "031qgwc3pdxxqzkbdkaxd9lq4chngjba1s6q01wm98i5bdj4n4r0"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
    ],
    "deps": [
     "leaf",
@@ -57017,8 +58002,8 @@
   "repo": "leanprover/lean-mode",
   "unstable": {
    "version": [
-    20200319,
-    838
+    20200620,
+    919
    ],
    "deps": [
     "dash",
@@ -57027,8 +58012,8 @@
     "flycheck",
     "s"
    ],
-   "commit": "65b55b1711fb61129312044d5ac7e6a2c2ee245c",
-   "sha256": "1zmw8950qhry2ixk2ng0pg4j0vwx11nvjlrpab9jg6x47ys9j65n"
+   "commit": "6b4377686128d5c2fb55d8fe61b92a9991d40fbd",
+   "sha256": "1zb3igic1i30mfbsx4k2sabhdpl58fsrl5c3fjvqrpn92ixi9vws"
   }
  },
  {
@@ -57082,8 +58067,8 @@
     20200224,
     2229
    ],
-   "commit": "e3424b3ae3f7d85ef020d030c2fa58df86ed8955",
-   "sha256": "0a8x2c0lxa0xihpbc9i1dvn1l00nsmawl1nv3i06r6iq5486pqdn"
+   "commit": "86505672be0aabc9fa1048bc453ab2fc855b27e1",
+   "sha256": "00j6j2n0z616r9p78wp8hk62d9s2dpzlmflfm7ilrx40dnd4nlgj"
   }
  },
  {
@@ -57094,14 +58079,14 @@
   "repo": "DamienCassou/ledger-import",
   "unstable": {
    "version": [
-    20200302,
-    943
+    20200522,
+    853
    ],
    "deps": [
     "ledger-mode"
    ],
-   "commit": "955e915fef9d46c968ef9101f7770870e2d2d80f",
-   "sha256": "018f7k4j8q1ka36winv2higjp8vmm90vss7vwyck9hg4w708m85p"
+   "commit": "027a6caf173948feacd2f416a7995d82f82165e7",
+   "sha256": "08aqqhbrcgn72wjw4c9wq5pyxdswbhly2c2izmy316bjh3cqvbhf"
   },
   "stable": {
    "version": [
@@ -57124,11 +58109,11 @@
   "repo": "ledger/ledger-mode",
   "unstable": {
    "version": [
-    20200509,
-    1136
+    20200530,
+    1710
    ],
-   "commit": "5a517cee3dfedfd1b90c2f01d6d8e01198a198d1",
-   "sha256": "1gldvp2gp8vh97skrkxbcxh1qvjpndankjckm1q1h7jpkznjvc2v"
+   "commit": "805507fd6c14839be4efc7aee2017f9c03e36834",
+   "sha256": "1sil9kdkcb0r165qm8vpxll0ikfnm0cqjd3gmj8vi6k8n6awv9zv"
   },
   "stable": {
    "version": [
@@ -57163,32 +58148,34 @@
   "repo": "kaiwk/leetcode.el",
   "unstable": {
    "version": [
-    20200101,
-    1111
+    20200730,
+    1433
    ],
    "deps": [
     "aio",
     "dash",
     "graphql",
+    "log4e",
     "spinner"
    ],
-   "commit": "28b78c45c86570cb1e3538f275eb4de1cf28cd04",
-   "sha256": "1c9zsh4ikflgqjrkjbilfqjjb0g698mqy2g5b210ssbivvkvncb5"
+   "commit": "153a3a6a9ffb64ffce37b3d203c13a85cc1884ab",
+   "sha256": "0600njpn3dvd8xrj21r5p69mc1r76ri1bjcxy2krp53dnsy3nvfb"
   },
   "stable": {
    "version": [
     0,
     1,
-    10
+    18
    ],
    "deps": [
     "aio",
     "dash",
     "graphql",
+    "log4e",
     "spinner"
    ],
-   "commit": "28b78c45c86570cb1e3538f275eb4de1cf28cd04",
-   "sha256": "1c9zsh4ikflgqjrkjbilfqjjb0g698mqy2g5b210ssbivvkvncb5"
+   "commit": "ef59344158ae4b7842ca2531ec77c439ed6e6997",
+   "sha256": "0sxrzr34x43dcxw9l3ib982rz4327fpwnjmj3hi17bc5gk6zzfq2"
   }
  },
  {
@@ -57362,11 +58349,11 @@
   "repo": "fniessen/emacs-leuven-theme",
   "unstable": {
    "version": [
-    20200513,
-    1742
+    20200707,
+    1143
    ],
-   "commit": "afda2d80b0bc98d431a3ac7c1563c76b8ace3a65",
-   "sha256": "0fapzkjnm3w4fgc5464a9bz2sld3m81zzls7sy4h0yxq9rpb284d"
+   "commit": "a116202c82613c087440d2e8a6a504b08f1862ce",
+   "sha256": "1pqv4idkbqbxxvdfqxwf5rq2isl1jikba5nd0z8d7fr09wv48pv7"
   }
  },
  {
@@ -57410,8 +58397,8 @@
     20170121,
     1254
    ],
-   "commit": "a6c9922f31f59686bb48db1b8d5b75e74e79757a",
-   "sha256": "0wvk341hx0fsv4hihlr508grqzgzza0w3gfqh4c1f88mdpmm62if"
+   "commit": "9d15bc75a34052f7f2749bd38b3d0297ed60b29a",
+   "sha256": "07ysaihl24fiqz8n6hvdvaj53nyalk68dsn073zb8q88sdmzf33w"
   },
   "stable": {
    "version": [
@@ -57490,11 +58477,11 @@
   "repo": "merrickluo/liberime",
   "unstable": {
    "version": [
-    20200511,
-    46
+    20200804,
+    147
    ],
-   "commit": "a631d3d575b5ffa2dc9a3a950c53f425c21380c1",
-   "sha256": "1gx3nxxcw5xz2n85xqgnghw04gaakhcnqcs9bnxx2fh4qpwkqggp"
+   "commit": "2a6f1bca1aff64a9136368c4afa15c0ea1042893",
+   "sha256": "1nvpy2mclcyi75clcnic7ap5rihccvgf7yn10an4y50sas8g2jiv"
   },
   "stable": {
    "version": [
@@ -57568,11 +58555,11 @@
   "repo": "buzztaiki/lice-el",
   "unstable": {
    "version": [
-    20191011,
-    631
+    20200607,
+    103
    ],
-   "commit": "3ff90745cd43d1cc41216a01f55f871a00692ffe",
-   "sha256": "08aiwyd0cxwd37jdy1m78l1r35h7fiq7wygpys2yrms6mdl8063b"
+   "commit": "482e58ab83fff86ed754b00be27b62a219597e7c",
+   "sha256": "0yxkjyhfk8kpr8yqz54gdx6xwkj4s8bnbz60162jh12crj0bs5n7"
   },
   "stable": {
    "version": [
@@ -57606,26 +58593,26 @@
   "repo": "jcs-elpa/line-reminder",
   "unstable": {
    "version": [
-    20191016,
-    1528
+    20200816,
+    1151
    ],
    "deps": [
-    "cl-lib"
+    "indicators"
    ],
-   "commit": "f50f8474db7c9b26ab3cf56d08e5184209f25cec",
-   "sha256": "1frf77ilyadrzil8sjp3rpr6v7j1nmmk1dz84d0kf8yr2cl48d9h"
+   "commit": "4eafedb1f4f9b0fb9c6268ac6c72fea4b786233e",
+   "sha256": "1vygzd7gw9a4cwg554hdvpy4h6ywjk4gg6iffcgwxhvdwg2vmrvs"
   },
   "stable": {
    "version": [
     0,
-    2,
+    4,
     3
    ],
    "deps": [
-    "cl-lib"
+    "indicators"
    ],
-   "commit": "ea7fc43210b5293beac4ac453b1bdde415f5183e",
-   "sha256": "13vspm2c53ph25li4xd77q2v7rqwsszsy8a842ivcgn0k3qn6w0r"
+   "commit": "4eafedb1f4f9b0fb9c6268ac6c72fea4b786233e",
+   "sha256": "1vygzd7gw9a4cwg554hdvpy4h6ywjk4gg6iffcgwxhvdwg2vmrvs"
   }
  },
  {
@@ -57639,8 +58626,8 @@
     20180219,
     1024
    ],
-   "commit": "d083a9f0c74830bd77b794babb09fe0f0fdb3854",
-   "sha256": "1fgd2kfwh7gl4yxrmvv8yrv6wvvwy6y0nwibqqsy55698a1qb2fm"
+   "commit": "ffa07b82102945f18efb4430a6554835c450f6bf",
+   "sha256": "1zpqydk8s01f1qmk8aycn67pw48mll0rvrnrjd9q41p2aklhncms"
   },
   "stable": {
    "version": [
@@ -57744,15 +58731,30 @@
   "repo": "noctuid/link-hint.el",
   "unstable": {
    "version": [
-    20200405,
-    1607
+    20200718,
+    1737
    ],
    "deps": [
     "avy",
     "cl-lib"
    ],
-   "commit": "7440704cacb5c0fab35fff8ec59d30fbea17f44a",
-   "sha256": "0j609j69lxyfvr2g89gdkjrk1vy0c1qq6m0p0ay468bh7l6crs7v"
+   "commit": "be735e5b57dfad891a7394c116b584bf005fe3b4",
+   "sha256": "0vg0pmvyya3gncih6rj83zx6qjm5gh9qs4svxb8f3wd053ppnvk9"
+  }
+ },
+ {
+  "ename": "linkode",
+  "commit": "8c03a8d88fa65f1ebc0b335b27be896232e8277d",
+  "sha256": "0wp55j17zms6zn90win35g203jzc4hjsj27500sq6iihci9gyfjk",
+  "fetcher": "github",
+  "repo": "erickgnavar/linkode.el",
+  "unstable": {
+   "version": [
+    20200607,
+    2152
+   ],
+   "commit": "675e612e30b74764c57de4117d950ea803b15f74",
+   "sha256": "1iqgii1zdv1q2gcknszxfgs09gvylr2l1yvyp104jriyy8qlsakg"
   }
  },
  {
@@ -57854,20 +58856,20 @@
   "repo": "marcowahl/lisp-butt-mode",
   "unstable": {
    "version": [
-    20191128,
-    835
+    20200727,
+    1441
    ],
-   "commit": "9eca319bdbb96dac4d44d19cd21937ed82a67268",
-   "sha256": "1biyvcwrqgyy7dmrv6i972lrcr5xhsyjq5nwc035c341jcxkp0g5"
+   "commit": "1b178fec96cb200574a17cb26ac0742d9df571a9",
+   "sha256": "01hj2kzy1mrzqc806jvgvkiyf7mkjacg944l3dblblyl7zgx8plx"
   },
   "stable": {
    "version": [
-    1,
+    2,
     0,
-    4
+    2
    ],
-   "commit": "1ad373fd18d9db62b236d9d85603cd923f62f084",
-   "sha256": "0nhikhnqnxyxx6s14vafhfwd4ph2bwvxz0m7mn0arrf6hjqzw7ws"
+   "commit": "008d2093608ee8fac184a6682e4ccf7b461dcaa1",
+   "sha256": "1kxvwd9y9q5ax9509b3xy3qqjpamfxzljyvbm1fc89qy50pdjxyr"
   }
  },
  {
@@ -57937,8 +58939,8 @@
   "repo": "abo-abo/lispy",
   "unstable": {
    "version": [
-    20200510,
-    1533
+    20200818,
+    1151
    ],
    "deps": [
     "ace-window",
@@ -57947,8 +58949,8 @@
     "iedit",
     "zoutline"
    ],
-   "commit": "3660a8a6acf9a7faee4af4bf5249ceb85a5d8bbb",
-   "sha256": "0s20wrdqf51mxfnnpll38nzp5ira59l83yz9dg0svz0vj5mrrwr5"
+   "commit": "0a9dcfdfbc20cadbb9cb29b224dc64b8efdd7b70",
+   "sha256": "13hzkh0rij40d58v6h232s784p40q1qv24n6bycd89lacn8xrcsr"
   },
   "stable": {
    "version": [
@@ -57999,16 +59001,16 @@
   "repo": "noctuid/lispyville",
   "unstable": {
    "version": [
-    20200129,
-    243
+    20200808,
+    2240
    ],
    "deps": [
     "cl-lib",
     "evil",
     "lispy"
    ],
-   "commit": "25a70126ea807653e0a8c512d4128c90ed673d7a",
-   "sha256": "0h4zz3k5chipswpp7abmd9agwacrss1dd5981x70wblpabdxm39m"
+   "commit": "0f13f26cd6aa71f9fd852186ad4a00c4294661cd",
+   "sha256": "0ah59s9c24addlx1rxgm11jihn7w45xrf0wrmrb7mbmqf3rj3izc"
   }
  },
  {
@@ -58231,6 +59233,24 @@
   }
  },
  {
+  "ename": "literate-calc-mode",
+  "commit": "3b6b9d96bb894744f61d65ebd3a813b3c3493f42",
+  "sha256": "1ck61af2lg2rk0r8rlqjsh1am9xw71lk99i3sb71vi2ipd9dq9nb",
+  "fetcher": "github",
+  "repo": "sulami/literate-calc-mode.el",
+  "unstable": {
+   "version": [
+    20200703,
+    723
+   ],
+   "deps": [
+    "s"
+   ],
+   "commit": "e855bd718fa7d0d70b8f43264e10664369dd3a37",
+   "sha256": "0mk4cig8g8ibz97mvyan79fkypyanh7r0h7h20ibafq09nb0mw01"
+  }
+ },
+ {
   "ename": "literate-coffee-mode",
   "commit": "2a2670edb1155f02d1cbe2600db84a82c8f3398b",
   "sha256": "00zd5i6wpn95sslz0gd7m1h1fw7w07swszfqwaphkbqfwckgll6m",
@@ -58267,14 +59287,14 @@
   "repo": "jingtaozf/literate-elisp",
   "unstable": {
    "version": [
-    20200327,
-    620
+    20200708,
+    803
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "732d649136051a4b6d43c2fabeb5233c3e5f16d7",
-   "sha256": "1d4p6s9dj5368ywfpp46pysxvcqwsiacih3n1hia9c4y7p0xx4cz"
+   "commit": "722b7b3988336642167e0e0db12800a23410ab07",
+   "sha256": "19fckshqp1dxf7msjjk6cd506i0ydzqb1fqz879pfbbvhg6iclva"
   },
   "stable": {
    "version": [
@@ -58343,11 +59363,11 @@
   "repo": "lassik/emacs-live-preview",
   "unstable": {
    "version": [
-    20200419,
-    2143
+    20200730,
+    1517
    ],
-   "commit": "7af1c74e0479c5b91d6368a4a3ff1342b83ef477",
-   "sha256": "0ifk0k6lfjzb0x0mgzh69jx0m166ljdg3ad69p51jw3m85c0wc6b"
+   "commit": "b099cd4d9d4b30d432ffd2ca76f8db1b4c13cd08",
+   "sha256": "1sgl9152f16wlafpd1d2sik044h3dplx0ins3b9kwkm0hxgncdfj"
   },
   "stable": {
    "version": [
@@ -58367,20 +59387,20 @@
   "repo": "donkirkby/live-py-plugin",
   "unstable": {
    "version": [
-    20200510,
-    1939
+    20200709,
+    422
    ],
-   "commit": "38a3cf447fd7d9c4e6014b71134e178b0d8a01de",
-   "sha256": "0yah03sblz9i510cq6q2bj0mkz6sqdifpwhzxhs4kn8zdircr0f4"
+   "commit": "fdc85e5f2ddc72934be704ac90d5436d379c3381",
+   "sha256": "1g74m9v5818v8wg2zsm4zb74lzw28zfvlpv98b2dkqzikpxgz362"
   },
   "stable": {
    "version": [
     4,
-    1,
+    2,
     0
    ],
-   "commit": "0a0d881d8ff30a6007b998e9bb9dddb999cca16e",
-   "sha256": "1mdnbbd0kr5y4vr2xbay80v4n07gg5jkkn0k3ywypsin7fz5ihhl"
+   "commit": "de3ce16dbb054b6d1b14f3274935bbdccadd9790",
+   "sha256": "1vl6v8lsid4p82clvp62079jnxhmibza3p5hb1frdlsycyc9d1bv"
   }
  },
  {
@@ -58466,11 +59486,11 @@
   "url": "https://hg.serna.eu/emacs/lms",
   "unstable": {
    "version": [
-    20191102,
-    3
+    20200616,
+    1814
    ],
-   "commit": "0967d3bada2ab70784a944d56c81691b8e87dbd8",
-   "sha256": "15ksvdf2cfa8hwvazdza56iln244xlv1l65gydhjw8388hr7gbr0"
+   "commit": "8090ba32866033c3ab580190cc79cac61463a180",
+   "sha256": "0l97i08k9qqr76xniac912id0hx5f56psf3v3l4mprs5k8myihj6"
   }
  },
  {
@@ -58514,11 +59534,11 @@
   "repo": "rocky/emacs-load-relative",
   "unstable": {
    "version": [
-    20190601,
-    1221
+    20200722,
+    1109
    ],
-   "commit": "dbcd7cbcca6503ef93f4b8d19bf7a9efd7f6bf9b",
-   "sha256": "010f2mhvlzkxarw298850khqc6srzb01l2vay0jsp46dh3jfmdhf"
+   "commit": "85b88d6fbf472381dfdaf0a762215b7e35ceee9b",
+   "sha256": "0jajdk2685d1jdw72hp4g0pq9xwbwbnls79nizkydamwhnj8sfcp"
   },
   "stable": {
    "version": [
@@ -58553,11 +59573,11 @@
   "repo": "rocky/emacs-loc-changes",
   "unstable": {
    "version": [
-    20160801,
-    1708
+    20200722,
+    1111
    ],
-   "commit": "4d1dcdf7631c23b1259ad4f72bf9686cf95fb46c",
-   "sha256": "0a81933l3rrsbi9vkvfb1g94vkhl5n3fkffpy4icis97q7qh08mc"
+   "commit": "0a55bcba684f78417e831eef2cc32da24a207f29",
+   "sha256": "1fywhx8jk25mxrv0i446r519x4vjdsgvm1rzwdd0mcnjbwpv90b4"
   },
   "stable": {
    "version": [
@@ -58748,11 +59768,19 @@
   "repo": "Wilfred/logstash-conf.el",
   "unstable": {
    "version": [
-    20170524,
-    1929
+    20200725,
+    1843
    ],
-   "commit": "4e127f9aec190786613445aa88efa307ff7c6748",
-   "sha256": "119yb1wk1n5ycfzgpffcwy7yx8ar8k1gza0gvbq3r61ha5a9qijs"
+   "commit": "131565042f8f12b9b88bd477959246dd034fa7d6",
+   "sha256": "1cyrmhnc38piw8q6d8j8xwyk0vl0a00mzjhmswkwd76w06adr9md"
+  },
+  "stable": {
+   "version": [
+    0,
+    4
+   ],
+   "commit": "652dddecf19f3e39a36055823e44fcffc5b44aeb",
+   "sha256": "0xdqfkcpv1677xfp54j2rwc9wjl3mfs9542jjcs0ym2063r6fzla"
   }
  },
  {
@@ -58795,11 +59823,11 @@
   "repo": "xuchunyang/lol-data-dragon.el",
   "unstable": {
    "version": [
-    20200321,
-    2142
+    20200705,
+    1822
    ],
-   "commit": "6f53bb3971daad60bd0529d1e3889d5f9fedf235",
-   "sha256": "0xblv8l6krp3581m0xava95pm6wcsjm3rsl47dsvzpgns1kyz8lx"
+   "commit": "0deec9867bd7ba96220ee2968a9b2a94fd474431",
+   "sha256": "136x1yqdzjh6a2vhyd73yhgg6kmwl00c5c14ny5davlghwd5g7aw"
   }
  },
  {
@@ -58933,6 +59961,29 @@
   }
  },
  {
+  "ename": "lox-mode",
+  "commit": "8a4f385fd128097781b563ad91d4aa8301167f5e",
+  "sha256": "14mqn4r2jmz661gyvzm48s9qb98w75sjflmrgqg6sslaca98jrpi",
+  "fetcher": "github",
+  "repo": "timmyjose-projects/lox-mode",
+  "unstable": {
+   "version": [
+    20200619,
+    1700
+   ],
+   "commit": "b6935b3f5b131d2c1c7685cf6464274f7cd64943",
+   "sha256": "0yx6j44284zv1ldqk44xfgqbrkcraznr0xfpaxy7797bmn9bajnp"
+  },
+  "stable": {
+   "version": [
+    1,
+    3
+   ],
+   "commit": "083a2299e188a516d1e46ef2dd1cbb89db1aec49",
+   "sha256": "0wwx1vs7gw8f3p63ql5mf311iydxlzar7wzbvig14k785rfzq69c"
+  }
+ },
+ {
   "ename": "lpy",
   "commit": "e0e7941d9efc303b8cd5d3e7b29606316307fd8b",
   "sha256": "1wna38yc3sxylg2qjwl424g8qcnaj0h6g0rnnmhzf1kfd8hkd7zx",
@@ -58940,14 +59991,14 @@
   "repo": "abo-abo/lpy",
   "unstable": {
    "version": [
-    20200504,
-    1918
+    20200722,
+    1159
    ],
    "deps": [
     "lispy"
    ],
-   "commit": "39d05463939398168dd8c8dca22d76af93aa87ae",
-   "sha256": "03wa94wn9a1lzdmi5fj5r446cvpqk7km9r9h8sq1hmwpr6qwymw7"
+   "commit": "c6744639ee313ee6dd4bc1e14b651d944b2ee1fd",
+   "sha256": "1vypwkx3020wx95cg34zi03pgarbjdhxpchbfvsj6bkd5v4bq6mc"
   }
  },
  {
@@ -58958,40 +60009,38 @@
   "repo": "emacs-lsp/lsp-dart",
   "unstable": {
    "version": [
-    20200515,
-    2152
+    20200814,
+    1405
    ],
    "deps": [
     "dap-mode",
     "dart-mode",
     "dash",
     "f",
-    "ht",
     "lsp-mode",
     "lsp-treemacs",
     "pkg-info"
    ],
-   "commit": "14d11f959dfab22a546525a0076fa3abd0d85c32",
-   "sha256": "0mxiy8myvk91b7r5ngidi2665vpqs87f8qraplyl0vcpywb2jm5n"
+   "commit": "437c548d411c9e166b7c658fd45294775235fd5f",
+   "sha256": "1pl7payda8i9cyca2j808inb8pmnyhh1sjc9f4qvxpbwd7b94vlr"
   },
   "stable": {
    "version": [
     1,
-    10,
-    5
+    14,
+    6
    ],
    "deps": [
     "dap-mode",
     "dart-mode",
     "dash",
     "f",
-    "ht",
     "lsp-mode",
     "lsp-treemacs",
     "pkg-info"
    ],
-   "commit": "14d11f959dfab22a546525a0076fa3abd0d85c32",
-   "sha256": "0mxiy8myvk91b7r5ngidi2665vpqs87f8qraplyl0vcpywb2jm5n"
+   "commit": "437c548d411c9e166b7c658fd45294775235fd5f",
+   "sha256": "1pl7payda8i9cyca2j808inb8pmnyhh1sjc9f4qvxpbwd7b94vlr"
   }
  },
  {
@@ -59009,8 +60058,8 @@
     "dash",
     "lsp-mode"
    ],
-   "commit": "af56404c383102344f9b99e2e168e69b7d8d50d0",
-   "sha256": "16fsyr77bwa7gipsafsacqy1ad51kgm5im0js5yinkg2ipwi75xk"
+   "commit": "5053b697d1541afd436bc4a93f51b6afd8f2b79f",
+   "sha256": "0kxvzhrm8l99bmf3zjig7axkfm5mn0yl4l4yfxpvvfsb04iqj10k"
   }
  },
  {
@@ -59032,6 +60081,38 @@
   }
  },
  {
+  "ename": "lsp-focus",
+  "commit": "a71079ecb60d84bded984d856f52590f64adbd9b",
+  "sha256": "0w0kywrs3pcs4kgdwhh4r9c1hdjblbdfcn66iz0xhrv1qxpv0zqv",
+  "fetcher": "github",
+  "repo": "emacs-lsp/lsp-focus",
+  "unstable": {
+   "version": [
+    20200809,
+    1413
+   ],
+   "deps": [
+    "focus",
+    "lsp-mode"
+   ],
+   "commit": "c8270663c1fa8650cf0e248caa6a8e3d8f25d80d",
+   "sha256": "13d7s2pm7nqz06bj6qkibi50f69slqwz6dc0fik97glxnlqqqva5"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    1
+   ],
+   "deps": [
+    "focus",
+    "lsp-mode"
+   ],
+   "commit": "30a19e9d616b341e41469b141e86ff825070cb67",
+   "sha256": "1xzyz59bgsjpvb32x60wk2n6x6pj5pk65sfd677h898rvlxnn1lz"
+  }
+ },
+ {
   "ename": "lsp-haskell",
   "commit": "1a7b69312e688211089a23b75910c05efb507e35",
   "sha256": "0pdcxnfp8ng24bfk695wpx5wcdqnjrjsfpks0xicih3mcdm1x9l8",
@@ -59039,15 +60120,15 @@
   "repo": "emacs-lsp/lsp-haskell",
   "unstable": {
    "version": [
-    20200510,
-    941
+    20200527,
+    2014
    ],
    "deps": [
     "haskell-mode",
     "lsp-mode"
    ],
-   "commit": "1a541e2459b918012cd655407920600ad35736ef",
-   "sha256": "0bmyjgydyr0mppx8c4kv4vrfivyz1lpxxg966danh7rv9c90ps3b"
+   "commit": "17d7d4c6615b5e6c7442828720730bfeda644af8",
+   "sha256": "1kkp63ppmi3p0p6qkfpkr8p5cx8qggmsj73dwphv90mdq0nrfsx8"
   }
  },
  {
@@ -59076,16 +60157,29 @@
   "repo": "emacs-lsp/lsp-ivy",
   "unstable": {
    "version": [
-    20200418,
-    1500
+    20200701,
+    2043
    ],
    "deps": [
     "dash",
     "ivy",
     "lsp-mode"
    ],
-   "commit": "81e81ced99829358674c5a6bbe2c3e15cecd4ed8",
-   "sha256": "011126hz98qzb8zn1628z77j2s5w1hgvmb5saj2fr9wncgv1nax9"
+   "commit": "4cdb739fc2bc47f7d4dcad824f9240c70c4cb37d",
+   "sha256": "08dpn0vcfdwwysijwdpnnj91m69yw0q464i0wmp51zpj3dyd4kb1"
+  },
+  "stable": {
+   "version": [
+    0,
+    4
+   ],
+   "deps": [
+    "dash",
+    "ivy",
+    "lsp-mode"
+   ],
+   "commit": "4cdb739fc2bc47f7d4dcad824f9240c70c4cb37d",
+   "sha256": "08dpn0vcfdwwysijwdpnnj91m69yw0q464i0wmp51zpj3dyd4kb1"
   }
  },
  {
@@ -59096,10 +60190,11 @@
   "repo": "emacs-lsp/lsp-java",
   "unstable": {
    "version": [
-    20200430,
-    1659
+    20200804,
+    1609
    ],
    "deps": [
+    "dap-mode",
     "dash",
     "dash-functional",
     "f",
@@ -59109,13 +60204,13 @@
     "request",
     "treemacs"
    ],
-   "commit": "bbbe4297fd470d0eb9492d011b0b4daf628763f5",
-   "sha256": "0qm9hwl88qwm19xwpsnv1rp9ny664440di0rd2lh3h7w1bczf76s"
+   "commit": "260016236fa0520b5b6ec7f51ca2086288524cba",
+   "sha256": "1h0hqgjpk5mbylma1fkva0vx45achf0k7ab2c5y8a2449niww90h"
   },
   "stable": {
    "version": [
-    2,
-    4
+    3,
+    0
    ],
    "deps": [
     "dash",
@@ -59127,8 +60222,8 @@
     "request",
     "treemacs"
    ],
-   "commit": "004516ed2f0803e068f50e00d5bc3bad76af45e1",
-   "sha256": "1n7prbj3fppl5d2qvjfyfsw280grr3yywvazrhygjrr5920jxarh"
+   "commit": "811760ad89a29939c28f47d0925f58d9eeea9fa3",
+   "sha256": "1grcapmd9k0a128vhgpy2a5dh6iqmf8bdvz0hykl4v7d55vcm423"
   }
  },
  {
@@ -59151,6 +60246,36 @@
   }
  },
  {
+  "ename": "lsp-jedi",
+  "commit": "65d0fa5e46e336e0e93db1bea062e79253861de4",
+  "sha256": "1hxw4nrjds9ir7f6j2zypazf208cc7v2621c11rdxkik8iykqikf",
+  "fetcher": "github",
+  "repo": "fredcamps/lsp-jedi",
+  "unstable": {
+   "version": [
+    20200812,
+    1826
+   ],
+   "deps": [
+    "lsp-mode"
+   ],
+   "commit": "10c782261b20ad459f5d2785592c4f46f7088126",
+   "sha256": "0rip6fq5mwk2lsa0wwr573mx4myqvc8a7v4mqalmqxgwzcv9w7vb"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    1
+   ],
+   "deps": [
+    "lsp-mode"
+   ],
+   "commit": "10c782261b20ad459f5d2785592c4f46f7088126",
+   "sha256": "0rip6fq5mwk2lsa0wwr573mx4myqvc8a7v4mqalmqxgwzcv9w7vb"
+  }
+ },
+ {
   "ename": "lsp-julia",
   "commit": "ca6a06ed4de499bcccce05163ea3d54e4dca9539",
   "sha256": "1frjvq2x0xsf93kgpy6bp9mgzfpr7zhacskmm6x8kknb9vj18h4v",
@@ -59190,26 +60315,69 @@
   "repo": "ROCKTAKEY/lsp-latex",
   "unstable": {
    "version": [
-    20200425,
-    920
+    20200718,
+    928
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "5cd7b6bb35bc54f3e9341d6a64605a3bb50db0a0",
-   "sha256": "0lc3hidi1s993fz432090ab31r5pgb62ivw6y755332bgr359i4p"
+   "commit": "a9a26a21bf16b9444021563d844719ace0c5c3b6",
+   "sha256": "1waysrxhihg099czr2hydsvipdm8kf1zxw725r84lv5363cijw0b"
   },
   "stable": {
    "version": [
     1,
-    0,
+    2,
     0
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "d016440fe364a016935bd90ae07e22d9012bcf8f",
-   "sha256": "0a6nryx7vshh4k0amlw3w3fn4yr8zlqxq5py8vj3pz4zkcndhxks"
+   "commit": "a1376d3f4d4467aaf7fc5750c437e3edc91d2116",
+   "sha256": "044jivz2w6xs2kyjasndy00c0j9f63qf66s5wmkjjxbyamd7viwi"
+  }
+ },
+ {
+  "ename": "lsp-metals",
+  "commit": "ee055cc258692a92f727633306adf7df31267479",
+  "sha256": "1nl9ay741y7qxvgdr6vywavr3aayh6z3a3bvmc4q5g5vsh3inwya",
+  "fetcher": "github",
+  "repo": "emacs-lsp/lsp-metals",
+  "unstable": {
+   "version": [
+    20200727,
+    1925
+   ],
+   "deps": [
+    "dap-mode",
+    "dash",
+    "dash-functional",
+    "f",
+    "ht",
+    "lsp-mode",
+    "lsp-treemacs",
+    "treemacs"
+   ],
+   "commit": "039aa72439e3c52cfef4bcde416ba49d88ac0991",
+   "sha256": "12b2f1d07rqnbj27whdkk74c3fkqp7qrsqmwnyv0ysc870w29sb0"
+  },
+  "stable": {
+   "version": [
+    1,
+    1,
+    0
+   ],
+   "deps": [
+    "dap-mode",
+    "dash",
+    "dash-functional",
+    "f",
+    "ht",
+    "lsp-mode",
+    "treemacs"
+   ],
+   "commit": "efefcc0e936ec463f0d19b6cae7c8336dcd186e4",
+   "sha256": "01396r17ipmp0s5k5njm8m4vqw0g1sj9rq6dpkxv7wbad1c4izmx"
   }
  },
  {
@@ -59220,8 +60388,8 @@
   "repo": "emacs-lsp/lsp-mode",
   "unstable": {
    "version": [
-    20200515,
-    2000
+    20200819,
+    1349
    ],
    "deps": [
     "dash",
@@ -59232,13 +60400,13 @@
     "markdown-mode",
     "spinner"
    ],
-   "commit": "17614737b6ae881d0e94ad6f0b87a01950062dba",
-   "sha256": "0zh2mllm7n3gj0w5rn4y6491kx361mrf6w0fa46jgdck26fkazfw"
+   "commit": "4145a70ce1d4bfb2463606ba34c5965080b080d9",
+   "sha256": "01nji47mh79ip67vagi8yb5dd9kscnvg4070zklnfyp9v0rfl73r"
   },
   "stable": {
    "version": [
-    6,
-    3,
+    7,
+    0,
     1
    ],
    "deps": [
@@ -59250,8 +60418,8 @@
     "markdown-mode",
     "spinner"
    ],
-   "commit": "bdbd2d0ccfe02f6721ea942e82e5178f4b216228",
-   "sha256": "125rpmhlyd6wmq7p71j54x3rzmk07vn1hdcvvdjjip5481raxcwx"
+   "commit": "4db1151dbf1fe84769433d841e90803448b0b354",
+   "sha256": "1z8zm7qr21hvhl6rnbznv2l9drh1pp5y4zkjrx5ac4x77b8i4aaz"
   }
  },
  {
@@ -59284,15 +60452,15 @@
   "repo": "emacs-lsp/lsp-origami",
   "unstable": {
    "version": [
-    20190331,
-    1723
+    20200809,
+    1537
    ],
    "deps": [
     "lsp-mode",
     "origami"
    ],
-   "commit": "c7653602a2f2396b1a42d6053fd2be55fce8e0a2",
-   "sha256": "02qxqjiqfi82j0bqfr22a9ynxnbdw470whfky7405x90nis50k7l"
+   "commit": "110c40eafde81179ec7a78aab94b0b2059689374",
+   "sha256": "0z2z0idzpc8mql3mc0szb81j712ad54kpnxj28j6giid1a540bzd"
   }
  },
  {
@@ -59361,6 +60529,26 @@
   }
  },
  {
+  "ename": "lsp-pyright",
+  "commit": "42a1aeef2b84b55e6e683066a3aed83331812476",
+  "sha256": "11dxq3419cq7lq2rnfka9kkkl4la627d0fki99djq6nrzddqf56p",
+  "fetcher": "github",
+  "repo": "emacs-lsp/lsp-pyright",
+  "unstable": {
+   "version": [
+    20200810,
+    354
+   ],
+   "deps": [
+    "dash",
+    "ht",
+    "lsp-mode"
+   ],
+   "commit": "9603dda12afaae9c82608c7d3762f98b24b8563f",
+   "sha256": "1xh0q356q7sy68m9syfbclabamdnw5y772inspn5y8640ig4rg21"
+  }
+ },
+ {
   "ename": "lsp-python-ms",
   "commit": "dd67aefa5a6df2d1388a7516e529e388615c8fe0",
   "sha256": "1aifydzz7jv3bf9qfxj37isq40wirfgvd9h40cb5c9wq4v44j8ps",
@@ -59368,28 +60556,26 @@
   "repo": "emacs-lsp/lsp-python-ms",
   "unstable": {
    "version": [
-    20200501,
-    1408
+    20200811,
+    1204
    ],
    "deps": [
-    "cl-lib",
     "lsp-mode"
    ],
-   "commit": "97ad997c6c2e3bc8d12c02b2809960d47ad316b0",
-   "sha256": "11jad58shbrxd1r2r4amlvddx0qlx3ikbmq598sfwz2253ndzny1"
+   "commit": "a884a9a4eb1a3acd3d70c776aec5e968bbdc1731",
+   "sha256": "02fws6ph1ikpx86709dswlag180m6b34nchqcsfcvx4zp7qg2wj2"
   },
   "stable": {
    "version": [
     0,
-    6,
+    7,
     0
    ],
    "deps": [
-    "cl-lib",
     "lsp-mode"
    ],
-   "commit": "5d0c799099aa5810858174f390e28fff3894bc06",
-   "sha256": "002h0i93blsv092pnfmzsfx0pj98r9glki0ki9n7gxg1z3nb0ybp"
+   "commit": "7a502e6c09456cbe8b5f6c64883c79f5ce08e5a9",
+   "sha256": "0rkxhm9lmvsalyzq96452cgpn5cqljw7b9d9xcxkkl2cwz1745f3"
   }
  },
  {
@@ -59412,6 +60598,40 @@
   }
  },
  {
+  "ename": "lsp-sonarlint",
+  "commit": "ee843ab9cc6188b4f1b8f31ab4a4e69688fb36df",
+  "sha256": "19a189aaws5i6klzjbplh4wxq7z38399wpmkgcji5cc7anzrkzqn",
+  "fetcher": "github",
+  "repo": "emacs-lsp/lsp-sonarlint",
+  "unstable": {
+   "version": [
+    20200702,
+    2351
+   ],
+   "deps": [
+    "dash",
+    "ht",
+    "lsp-mode"
+   ],
+   "commit": "e0a27c07e886a147e2b8750471660af02e142086",
+   "sha256": "1kfgqdxynzpy98j1hc07zsygi0npw4xfm80jx3h30wyvxmgy7flp"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    1
+   ],
+   "deps": [
+    "dash",
+    "ht",
+    "lsp-mode"
+   ],
+   "commit": "5f519612c6a10b189292083b04dcd652b64bc7d1",
+   "sha256": "04xs8n0lxx54hyj1y002ps52cxwb7s79k38q3dqzzbfax1nxwfw3"
+  }
+ },
+ {
   "ename": "lsp-sourcekit",
   "commit": "a1e15078916dc053ca2413a6afae51df22321e9e",
   "sha256": "1n3lkpyk2mb8a5qc2h00d6dgbp4ws8pwzqljplnnm35sqg6an76k",
@@ -59437,8 +60657,8 @@
   "repo": "emacs-lsp/lsp-treemacs",
   "unstable": {
    "version": [
-    20200503,
-    1640
+    20200815,
+    1841
    ],
    "deps": [
     "dash",
@@ -59448,8 +60668,24 @@
     "lsp-mode",
     "treemacs"
    ],
-   "commit": "bd2c3727dd1e46e972477f11ba84999697ed842c",
-   "sha256": "03jlwbzkkpqn0a68m991b6zhbnpna1rvjsdjmqqvyng209lgcgph"
+   "commit": "3f8ca910c8e8724f93d8268a91771a51427684ff",
+   "sha256": "0xnbw3j7n10wp6jbzrgrr0xfzilrlhrmmzs4d00y56g1fmqn3jja"
+  },
+  "stable": {
+   "version": [
+    0,
+    3
+   ],
+   "deps": [
+    "dash",
+    "dash-functional",
+    "f",
+    "ht",
+    "lsp-mode",
+    "treemacs"
+   ],
+   "commit": "08e256c45d2e95b510a98a8b88b0531e8785e519",
+   "sha256": "1z9cb7i546pbzvxii6lsj31jq8m70xrzscphl5z71vh93sydyhkb"
   }
  },
  {
@@ -59460,8 +60696,8 @@
   "repo": "emacs-lsp/lsp-ui",
   "unstable": {
    "version": [
-    20200503,
-    1650
+    20200816,
+    841
    ],
    "deps": [
     "dash",
@@ -59469,13 +60705,14 @@
     "lsp-mode",
     "markdown-mode"
    ],
-   "commit": "271b47cb33f11915295911f7cf8575f8a82a5e1c",
-   "sha256": "181j9anm3h5sfallls3sxik6cd7dw1fbi3q9mlfhk979wk6varjk"
+   "commit": "c39ae3713f95a2d86e11fd1f77e89a671d08d18a",
+   "sha256": "033ah4mz3pa6da3xdn6yk3lmkv6lanpj07b0icf30c6bp7rmk3il"
   },
   "stable": {
    "version": [
-    6,
-    2
+    7,
+    0,
+    1
    ],
    "deps": [
     "dash",
@@ -59483,8 +60720,8 @@
     "lsp-mode",
     "markdown-mode"
    ],
-   "commit": "207bc8d61abff7c3024f8a484f63bc60bc4ad58b",
-   "sha256": "024753bi0p1jyjhw7wk8k6s16kbwab5ar4cfasvbn8g08acf293b"
+   "commit": "449f3a6b80a60d88c4ed300e69d64eb8e875f1c7",
+   "sha256": "09dmhhxmfjnzdc5kygwsjf8nwqlnq9rbgrca679s2wy93miqj7vc"
   }
  },
  {
@@ -59550,14 +60787,11 @@
   "repo": "sjbach/lusty-emacs",
   "unstable": {
    "version": [
-    20200415,
-    1456
-   ],
-   "deps": [
-    "s"
+    20200602,
+    228
    ],
-   "commit": "1b7053b41083666c6805bcaeb55ece6dcc0d77cb",
-   "sha256": "1y3nzp6rpg7anv5xscbp4lzmfdvzffcxha9vx3mrclhjg6giz510"
+   "commit": "a746514ccd8df71fc920ba8ad0aa8dca58702631",
+   "sha256": "0sjs3gn7mrmm60v0yi77fha9b6wdqfnydqz9f4dg2fvwj4a9w2rr"
   },
   "stable": {
    "version": [
@@ -59580,8 +60814,8 @@
     20200507,
     1518
    ],
-   "commit": "87873d788891029d9e44fa5458321d6a05849b94",
-   "sha256": "1b6davg1jqcxqzf9aqv8av8c78fgdri97m9q44xzvr1xfbmvkl8g"
+   "commit": "112e689f75b59398d8eca79ac6562dca12b8a959",
+   "sha256": "0famsjgsgd61fm3l5m9mqg4szf8lcgcb57paxlg8rxnsmxmwga7d"
   },
   "stable": {
    "version": [
@@ -59874,14 +61108,14 @@
   "repo": "zk-phi/magic-latex-buffer",
   "unstable": {
    "version": [
-    20191106,
-    241
+    20200816,
+    648
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "8597f4db70732d6e479396e2f2a7e78742387253",
-   "sha256": "16zv10rir99wl16d79479204h5fbdx78wpgahlg6kf74001fr3sv"
+   "commit": "8a6e33f79a930d2c1977409f1980afc4cc99b909",
+   "sha256": "1f052yx0fib6vv2kqr21fv1nlsxc1b0mlcxasppxr6kig1jbj2x9"
   }
  },
  {
@@ -59916,8 +61150,8 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20200514,
-    1330
+    20200816,
+    955
    ],
    "deps": [
     "async",
@@ -59926,8 +61160,8 @@
     "transient",
     "with-editor"
    ],
-   "commit": "d05545ec2fd7edf915eaf1b9c15c785bb08975cc",
-   "sha256": "11aqyy4r9hrdi9nlypd70hn8384b6q89c7xavgv8c5q7f2g5z9qg"
+   "commit": "321214c3a2dd10fdf672ba96bd00703a51094bbe",
+   "sha256": "152i5kvkx8hsy9qlhalhjc4sf6ly3rlfymb8daygj428363xx25n"
   },
   "stable": {
    "version": [
@@ -59955,15 +61189,15 @@
   "repo": "magit/magit-annex",
   "unstable": {
    "version": [
-    20200428,
-    9
+    20200516,
+    2028
    ],
    "deps": [
     "cl-lib",
     "magit"
    ],
-   "commit": "ef5dce6267e9118a5eca82a22bcad0b67826c23a",
-   "sha256": "0vzkydgl889cq173zjl89g2vrddb9abc4a8gljiz3b4a7n5b1nrd"
+   "commit": "c5ecb4b53ea2461e737ea00242ef1e69e35da398",
+   "sha256": "0f1psh03hsb57h3r66zfa0jmwkky12121lhvpynlgj330ryxl5bj"
   },
   "stable": {
    "version": [
@@ -60000,6 +61234,25 @@
   }
  },
  {
+  "ename": "magit-delta",
+  "commit": "6e045d09ceec253bbd033b561ab077d897e9b6b2",
+  "sha256": "0r7g8p7g348cfz31q0mgxxa591n8clwpaack487ycc1nzsqbj726",
+  "fetcher": "github",
+  "repo": "dandavison/magit-delta",
+  "unstable": {
+   "version": [
+    20200518,
+    2205
+   ],
+   "deps": [
+    "magit",
+    "xterm-color"
+   ],
+   "commit": "d988abd99882c6b89f21f2746f721a4d7ece6ad4",
+   "sha256": "1dj2kw2wzxnms4z54pk7qngylvy903jwd84x3k5ys3wsydmk4bbf"
+  }
+ },
+ {
   "ename": "magit-diff-flycheck",
   "commit": "a5d28982425519157a6116c077fbc4be7cfa53be",
   "sha256": "1gnjvhxy48ah84cglq6653wgb07g0gry0672334ad3cwc5b45kdk",
@@ -60185,14 +61438,14 @@
   "repo": "magit/magit-imerge",
   "unstable": {
    "version": [
-    20191105,
-    2245
+    20200516,
+    2029
    ],
    "deps": [
     "magit"
    ],
-   "commit": "3b588991d30a69d2209dbcbb041777ae8af62bd0",
-   "sha256": "19fyrann61k8viak05y0f5v9xr2p531ysrcq05d8pq8qf3vna1y1"
+   "commit": "f4b88f0c127faa154f138907bf4e98b1baf12fb6",
+   "sha256": "10l0z0c0q6sbf3id5dajws30cxzjvi5rgx1hl8jf6nxr5zcmcmm1"
   },
   "stable": {
    "version": [
@@ -60254,8 +61507,8 @@
     "libgit",
     "magit"
    ],
-   "commit": "d05545ec2fd7edf915eaf1b9c15c785bb08975cc",
-   "sha256": "11aqyy4r9hrdi9nlypd70hn8384b6q89c7xavgv8c5q7f2g5z9qg"
+   "commit": "321214c3a2dd10fdf672ba96bd00703a51094bbe",
+   "sha256": "152i5kvkx8hsy9qlhalhjc4sf6ly3rlfymb8daygj428363xx25n"
   }
  },
  {
@@ -60335,26 +61588,26 @@
   "repo": "magit/magit-popup",
   "unstable": {
    "version": [
-    20200306,
-    223
+    20200719,
+    1015
    ],
    "deps": [
     "dash"
    ],
-   "commit": "b8e886c4f2242d6c58f84d4549af712e86360db1",
-   "sha256": "14l989m5pxzxk6164z8lgvshy45aq0ab78mjz5f6zw58h5rvnbdg"
+   "commit": "d8585fa39f88956963d877b921322530257ba9f5",
+   "sha256": "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"
   },
   "stable": {
    "version": [
     2,
     13,
-    2
+    3
    ],
    "deps": [
     "dash"
    ],
-   "commit": "df9abf1a1bce3fadb5e0657eb8f4c7026efa3c69",
-   "sha256": "1ifhph1mj7wjar62d65fjx45qsjwsyslbj7liih3v0r4by5gyxmw"
+   "commit": "d8585fa39f88956963d877b921322530257ba9f5",
+   "sha256": "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"
   }
  },
  {
@@ -60383,16 +61636,16 @@
   "repo": "jtamagnan/magit-reviewboard",
   "unstable": {
    "version": [
-    20190211,
-    2244
+    20200727,
+    1748
    ],
    "deps": [
     "magit",
     "request",
     "s"
    ],
-   "commit": "f3d5ed914243e3930f9c06f59021305e7e43e67d",
-   "sha256": "0xlhy328h2wxklpy71dhy1fk7zv6hs2v4jrl1mm9x5mnrbrdfvxx"
+   "commit": "aceedff88921f1dfef8a6b2fb18fe316fb7223a8",
+   "sha256": "0agk53san02n49jna6g2ndw4wbqkpr0kfd4ravbs9b4w6l3r30xb"
   }
  },
  {
@@ -60403,14 +61656,14 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20200513,
-    1503
+    20200816,
+    955
    ],
    "deps": [
     "dash"
    ],
-   "commit": "d05545ec2fd7edf915eaf1b9c15c785bb08975cc",
-   "sha256": "11aqyy4r9hrdi9nlypd70hn8384b6q89c7xavgv8c5q7f2g5z9qg"
+   "commit": "321214c3a2dd10fdf672ba96bd00703a51094bbe",
+   "sha256": "152i5kvkx8hsy9qlhalhjc4sf6ly3rlfymb8daygj428363xx25n"
   },
   "stable": {
    "version": [
@@ -60484,14 +61737,14 @@
   "repo": "magit/magit-tbdiff",
   "unstable": {
    "version": [
-    20190918,
-    6
+    20200519,
+    418
    ],
    "deps": [
     "magit"
    ],
-   "commit": "0162390581c1165a0c4c68081d8fc5ffae4cf1a9",
-   "sha256": "0blwbgr4by0rawzw2hdpc5jcckmj96p0dxvgcml61rg3andsqyyl"
+   "commit": "e52e8ab4906996c410f6c6db890b9bfe0951d4ce",
+   "sha256": "0mp466bnm63pas8z0p6b0684i3rakb6cs5xzkz8jv3z3x34ak12c"
   },
   "stable": {
    "version": [
@@ -60994,26 +62247,26 @@
   "repo": "jcs-elpa/manage-minor-mode-table",
   "unstable": {
    "version": [
-    20200302,
-    1517
+    20200717,
+    809
    ],
    "deps": [
     "manage-minor-mode"
    ],
-   "commit": "cd126cbeb2e99c8d00b48310938a85448ebc2e1a",
-   "sha256": "1lk2rmv0qhzfyg57h461qdxgqciwqjggipl9i146m9bpjp7bjjvx"
+   "commit": "d377094c4ff5e93321e12f53892113083148bdaf",
+   "sha256": "0dpljs8qmpvpb0y2cvcr71ashzrm2ypb8p6anay4sjmiphkb60p5"
   },
   "stable": {
    "version": [
     0,
     1,
-    1
+    3
    ],
    "deps": [
     "manage-minor-mode"
    ],
-   "commit": "0636f376d9bc169bd1bd20c5847eb9f029b9467c",
-   "sha256": "1n4a9msfzspk0dfkr1i515ibrwg5yk3hyap2kym05yqpn4wq5xwp"
+   "commit": "d377094c4ff5e93321e12f53892113083148bdaf",
+   "sha256": "0dpljs8qmpvpb0y2cvcr71ashzrm2ypb8p6anay4sjmiphkb60p5"
   }
  },
  {
@@ -61277,22 +62530,19 @@
   "repo": "jrblevin/markdown-mode",
   "unstable": {
    "version": [
-    20200514,
-    16
+    20200815,
+    203
    ],
-   "commit": "705c77b9533970a425b09fb4c2fabf3b406117c7",
-   "sha256": "0i40pp0157azw2jkkr08f4cbal9ansp9dbscdbdzmlp9lf27kqjs"
+   "commit": "ef2cb4d94af68908a4963afa492afba876725128",
+   "sha256": "0pi971jgil2wpfnrg7j7i9hh3a418nxf82jkammzry2ijv2q5kj5"
   },
   "stable": {
    "version": [
     2,
-    3
-   ],
-   "deps": [
-    "cl-lib"
+    4
    ],
-   "commit": "cde5c5d2bcce470c494b76e23cfe1364b6291c20",
-   "sha256": "1zm1j4w0f3h01bmmpsv4j4mh6i13nnl8fcqlj2hsa1ncy1lgi8q7"
+   "commit": "7b854c8e70b6d6edee12aec4194f4eb239586804",
+   "sha256": "0g0ja4h651yfabm3k6gbw4y8w7wibc9283fyfzb33kjj38ivl5d7"
   }
  },
  {
@@ -61383,30 +62633,30 @@
   "repo": "ardumont/markdown-toc",
   "unstable": {
    "version": [
-    20200502,
-    742
+    20200517,
+    1233
    ],
    "deps": [
     "dash",
     "markdown-mode",
     "s"
    ],
-   "commit": "a9f13eecd0c7d8be960055dbc2d6f5d3fe6f40ca",
-   "sha256": "01xls8jd6l8c8xiyx8l15j5ca96gsln1m32prnhw4sfmrlw996h6"
+   "commit": "9565eeaa1d26bc0ab83eb65bd30470888f724044",
+   "sha256": "1l49hi4nwralx5kg4aqjj2b592y71ba4i91vmlzk5rrcjmdnc6b0"
   },
   "stable": {
    "version": [
     0,
     1,
-    4
+    5
    ],
    "deps": [
     "dash",
     "markdown-mode",
     "s"
    ],
-   "commit": "e6de0f5c4c6dfdb8da37b34a16fe7e8edc88765c",
-   "sha256": "1xqrrf4gwcr64xgbyvgplmcrcl7knfsm0v8yzrhscq65pb7zf3zj"
+   "commit": "9565eeaa1d26bc0ab83eb65bd30470888f724044",
+   "sha256": "1l49hi4nwralx5kg4aqjj2b592y71ba4i91vmlzk5rrcjmdnc6b0"
   }
  },
  {
@@ -61426,10 +62676,10 @@
  },
  {
   "ename": "markless",
-  "commit": "5542e142d47f6f52839a44b8ee16327f88869f50",
-  "sha256": "1a5kp46xj4b5kgcypacxcwhjjwi4m7f6shdda8l8my3s3x8ji5bj",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "1nd7np60h0k1p9pwp3dn8068584h7r7lhfl9j7yn2jrf2r51806h",
   "fetcher": "github",
-  "repo": "shirakumo/markless.el",
+  "repo": "Shirakumo/markless.el",
   "unstable": {
    "version": [
     20190306,
@@ -61521,20 +62771,20 @@
   "repo": "jcs-elpa/marquee-header",
   "unstable": {
    "version": [
-    20191017,
-    1017
+    20200720,
+    1034
    ],
-   "commit": "cb694a9eee79ea807dbc1587c47e209dd7e250fc",
-   "sha256": "0h191mip2yjvj1ha6cqvghd45g5ccd3p0qsvh9l2g0gg9d2salxk"
+   "commit": "d8e83b837bacdd45d274be42fe2d172fd1cbbba2",
+   "sha256": "1iy8vg2wlrzb01nc6sx21ijg62ak94k2x2w6gy56krp7frakacrv"
   },
   "stable": {
    "version": [
     0,
     0,
-    8
+    9
    ],
-   "commit": "77e4becd8a812377eb219c77641a22a77b4fdfef",
-   "sha256": "0a51aw567gkdxz58v7h2vdfs2rmnvyllqhq4a1yy4gslr0xsqk9c"
+   "commit": "d8e83b837bacdd45d274be42fe2d172fd1cbbba2",
+   "sha256": "1iy8vg2wlrzb01nc6sx21ijg62ak94k2x2w6gy56krp7frakacrv"
   }
  },
  {
@@ -61633,19 +62883,19 @@
   "repo": "cpaulik/emacs-material-theme",
   "unstable": {
    "version": [
-    20171123,
-    1840
+    20200620,
+    943
    ],
-   "commit": "b66838d220ad380a16da1d8878936974b26f815d",
-   "sha256": "128zn4078b2av3vs8vrqa73fb53vrm64lqg0ks6kymnnmyvcz8v2"
+   "commit": "2710e61ecee1bbec943538305c26af4fe4fca68a",
+   "sha256": "1qg59w216iv1yk594xjgazfqx5qhw3jgjqf32pcwwbkcnyj5f6zw"
   },
   "stable": {
    "version": [
     1,
-    2
+    3
    ],
-   "commit": "b66838d220ad380a16da1d8878936974b26f815d",
-   "sha256": "128zn4078b2av3vs8vrqa73fb53vrm64lqg0ks6kymnnmyvcz8v2"
+   "commit": "2710e61ecee1bbec943538305c26af4fe4fca68a",
+   "sha256": "1qg59w216iv1yk594xjgazfqx5qhw3jgjqf32pcwwbkcnyj5f6zw"
   }
  },
  {
@@ -61712,11 +62962,11 @@
   "repo": "rudi/maude-mode",
   "unstable": {
    "version": [
-    20160222,
-    1607
+    20200725,
+    2035
    ],
-   "commit": "c9543bb8a172fa77af592388e7f520a4a6d38987",
-   "sha256": "1sn9bdaq3mf2vss5gzmxhnp9fz43cakxh36qjdgqrvx302nlnv52"
+   "commit": "008f372631a1efe15be033792cfb1686b1736aeb",
+   "sha256": "07a51iwlzj88b6jaxzz8p8r7l9kcbflw8l11h67sx5y0gv23a6vv"
   }
  },
  {
@@ -61760,8 +63010,8 @@
     20170120,
     1705
    ],
-   "commit": "daeb5c35bb677a23df69336b4843ea59517e57ed",
-   "sha256": "1qpzha7j7g5fw1lazw5l6mspgrnsnqybqgpq48icbx2vvil9y3q7"
+   "commit": "f7048ce95443f2c06cb6b140814451e3a037103a",
+   "sha256": "0kjhfc2jlhq9qdwigx1iq8wpvzfr7jlv8jfqa2j2va8h0jp2jnp6"
   },
   "stable": {
    "version": [
@@ -61972,20 +63222,20 @@
   "repo": "hexmode/mediawiki-el",
   "unstable": {
    "version": [
-    20170813,
-    555
+    20200718,
+    1529
    ],
-   "commit": "8473e12d1839f5287a4227586bf117dad820f867",
-   "sha256": "03rpj3yrk3i1l9yjnamnx38idn6y4zi9zg53bc83sx3g2b4m5v04"
+   "commit": "932497604fd417964e4f04614e28d96f4eee028e",
+   "sha256": "1446vihy9cpg0hbvqjrp82ya1k889gpvgbsmw9bk7kyd983jhfar"
   },
   "stable": {
    "version": [
     2,
-    2,
-    9
+    3,
+    1
    ],
-   "commit": "8473e12d1839f5287a4227586bf117dad820f867",
-   "sha256": "03rpj3yrk3i1l9yjnamnx38idn6y4zi9zg53bc83sx3g2b4m5v04"
+   "commit": "5178a1a1dbe37a144d9c82622eb683bd3c61bef1",
+   "sha256": "1d05jw2sa19rgzskvavh21bfmbh07yza1drfbgypsvay3nkjfd2z"
   }
  },
  {
@@ -61996,30 +63246,30 @@
   "repo": "mopemope/meghanada-emacs",
   "unstable": {
    "version": [
-    20200506,
-    743
+    20200628,
+    247
    ],
    "deps": [
     "company",
     "flycheck",
     "yasnippet"
    ],
-   "commit": "e119c7b3271281d60892b80a0cc6488503baf38f",
-   "sha256": "11nvhvxm39pcxjknzik6n07l309x9r5maf24pnlgk2wxkr28xmzs"
+   "commit": "1e41f7f2c7a172e9699f3557c97c3f39a149bfc2",
+   "sha256": "1cplw3x94xc2yqvvimkjgppbb36mnj8n3gcx0k2gy7zwzdvzg4c6"
   },
   "stable": {
    "version": [
     1,
     3,
-    0
+    1
    ],
    "deps": [
     "company",
     "flycheck",
     "yasnippet"
    ],
-   "commit": "83ee6c6520a8cf063742e1b16fef3efebbcf8b73",
-   "sha256": "1hk4953dk93pa7srlgnjh9pskpl67f90gm9g0iv9zffwsxw4kwaw"
+   "commit": "1e41f7f2c7a172e9699f3557c97c3f39a149bfc2",
+   "sha256": "1cplw3x94xc2yqvvimkjgppbb36mnj8n3gcx0k2gy7zwzdvzg4c6"
   }
  },
  {
@@ -62186,15 +63436,15 @@
   "repo": "DogLooksGood/meow",
   "unstable": {
    "version": [
-    20200510,
-    154
+    20200727,
+    851
    ],
    "deps": [
     "cl-lib",
     "dash"
    ],
-   "commit": "56e7ba100eb0ae92a37bcd0fcce77affa26d2fb8",
-   "sha256": "1jz0jpdr4imzs7rr21q19j59y04kw518qpisrrsmyw6fywi8k22g"
+   "commit": "c9296491e923a678ac9a42a2743f21ce1e0552c4",
+   "sha256": "00636in9cgcnij1sz6vj5y5vijdd13g5akwj1facf0v4lrlvacpn"
   }
  },
  {
@@ -62208,17 +63458,17 @@
     20191025,
     851
    ],
-   "commit": "db957668fa2be7b9d076f0c066178a65c48dd085",
-   "sha256": "0abg2c0lcdiwmf1jlybrjw0n17hwqfmj29r7gbvrsm16snf27rag"
+   "commit": "3751cbfff75022c396c4ff4dc1729048f80daa4f",
+   "sha256": "0vbzbjajm0ww864cl7aaj70s3fkgg79cq8srdf5dmw1vwdrqq6ld"
   },
   "stable": {
    "version": [
     3,
     3,
-    4
+    6
    ],
-   "commit": "21f4ba18acd9ca3dc5c8263acfc46042a6aa557e",
-   "sha256": "1sp1g70wy8qp34641hlpk5xaf7vv359xgwc7z8cw7yvj39mn98va"
+   "commit": "464df1a60775fd2bb70f4efff4f8603eaf834b74",
+   "sha256": "0yw3a8mhjsjh9359cvk7kr5ch6dhwvhv9zilk12fgyii9iw08mlz"
   }
  },
  {
@@ -62258,14 +63508,14 @@
   "repo": "abrochard/mermaid-mode",
   "unstable": {
    "version": [
-    20200420,
-    2258
+    20200804,
+    2107
    ],
    "deps": [
     "f"
    ],
-   "commit": "b8673381ff8bbfbdf3f165ae928e7c775a3117e9",
-   "sha256": "14w2mwqiksmng8pzm4l0c458q0i2m3p4wcfvvmagyqk6mfl05m4l"
+   "commit": "795bcf830d9345474fad864602180408891b292d",
+   "sha256": "0qdpbayxar0vkan0m83k4jir8saqy47nq2240608l8h9bjv48hz2"
   }
  },
  {
@@ -62276,11 +63526,11 @@
   "repo": "wentasah/meson-mode",
   "unstable": {
    "version": [
-    20200216,
-    2254
+    20200806,
+    1325
    ],
-   "commit": "bc6c09136c7f7de6f4b6ce9294e9b998e24b93c7",
-   "sha256": "113vj7z8zk80653ldq4sfxkk3pja8yjscywb0cwpkaq0088n5jf7"
+   "commit": "b471b9282724d6f324dbd6fa25d083635fc4293a",
+   "sha256": "0y5a1sfk4h4szv4v6693i3ylrf3xiwf8khrahdaz0bx210h2qmpg"
   },
   "stable": {
    "version": [
@@ -62302,8 +63552,8 @@
     20200428,
     124
    ],
-   "commit": "a8b761d665c17694a04eccf1c2bc135d35bdf482",
-   "sha256": "0rg34w1nsvmwxn9z3aipj32fk26fykzqxkr0x7am7icigg02dsbn"
+   "commit": "ce506b27b15cc39a47c58ff795026eaea8632e2f",
+   "sha256": "0wpj3ich8wisq0jy304fngj0nkkvdqzfkfcx0s8ib6l04v29ypa5"
   }
  },
  {
@@ -62401,17 +63651,17 @@
     20191018,
     242
    ],
-   "commit": "60eae1c8a7f82fbcc2660d785b33601daaa29f4b",
-   "sha256": "06ia4ba6c1yph259wr4y5sdkl1ry6pzbwhx807ia675rp0clp9hz"
+   "commit": "a56346bf1517118b2a960eaadbf138ae1695ddd1",
+   "sha256": "09iycpdj6dkvz5axfx85bkrrf5128ws7clg1jn9yli06rjsw36ba"
   },
   "stable": {
    "version": [
     1,
     1,
-    8
+    10
    ],
-   "commit": "0177fc4e7edd705db59b82c83a24db51dc405890",
-   "sha256": "1whl7kz4im2jmdz99336wfn152q0l3qwii4w7sn45rlsm2sijiw1"
+   "commit": "19aa8a17428d6ee42f54e464c26eeab17a6478ab",
+   "sha256": "198ahgxji0kh6ynygrrdvllj9fwcqrnma4sd8msj2aq18xij9glr"
   }
  },
  {
@@ -62422,20 +63672,20 @@
   "repo": "ianxm/emacs-tracker",
   "unstable": {
    "version": [
-    20200503,
-    1425
+    20200602,
+    1032
    ],
    "deps": [
     "seq"
    ],
-   "commit": "6d68118eee409a2b671537129eae1154421ba82c",
-   "sha256": "1i7fzla9i3s4439ckkny09fq3r2q0q2153qzyhxsfbcxb47vbx26"
+   "commit": "6283e1fc5ddb65323513eb77638181551bda967b",
+   "sha256": "12sw627rhvqldbg8cvgg4fim91h3r9qlki5ni1fi0y5sa9iqh20j"
   }
  },
  {
   "ename": "metronome",
-  "commit": "2f77239fecb41487a6aa03e6fc219cba96dee18d",
-  "sha256": "1kkm7s6hiyk3h1bnf9pfnsikmfpp998041wg0bwqnpzhzzlq6fy4",
+  "commit": "123d2788dc05d53862ebbf31476cfd3a43f2f348",
+  "sha256": "0arsx39lrbwp3a4krjn8pggqrqm250c8sk3c6z37q8d2g3sazp11",
   "fetcher": "gitlab",
   "repo": "jagrg/metronome",
   "unstable": {
@@ -62478,11 +63728,11 @@
   "repo": "sggutier/mexican-holidays",
   "unstable": {
    "version": [
-    20190506,
-    245
+    20200622,
+    132
    ],
-   "commit": "663633be1d693f6081d7d000e05d15ddbf71aa10",
-   "sha256": "09b0292d87xm5mrhfhv7j11ljl4j9hv8h5dibzrrlh1b3vsg2xkj"
+   "commit": "5b5dd6e71505e8938bac9e9733b30bd394631923",
+   "sha256": "04d4148nq3lmrpkxvzzkn88j30iv2l2466ps035x7v8hc83wxnjw"
   }
  },
  {
@@ -62745,14 +63995,14 @@
   "repo": "kiennq/emacs-mini-modeline",
   "unstable": {
    "version": [
-    20200424,
-    647
+    20200801,
+    1554
    ],
    "deps": [
     "dash"
    ],
-   "commit": "4f1dce78916cccd2e7066345ae2be3394a675c46",
-   "sha256": "0qbd6jdaqfs43i9cgs4n4d8vkv3nbcxcmwkd9xrj1d03rdmyzxh0"
+   "commit": "754a28efdf043e193922a897fc724ad9b9f2e8de",
+   "sha256": "1jx1baw6zskpnfdi02as59736jx4iy0q1n4x5n5ypvr7csrs1nz3"
   },
   "stable": {
    "version": [
@@ -62887,8 +64137,8 @@
     20190113,
     2132
    ],
-   "commit": "063b4d8ca33d55d04c341f0b2b777ec241a3e201",
-   "sha256": "0lvg7iym6sxhgl4ab9a6x8c2mh2d32vkf0033bs3vphx657gra6l"
+   "commit": "221b43aad320d226863892dfe4d85465e8eb81ce",
+   "sha256": "1zsabgn5mi63ry8jg1li866jcix9mf588ypdfajk8747a6127qd0"
   }
  },
  {
@@ -62899,26 +64149,26 @@
   "repo": "tarsius/minions",
   "unstable": {
    "version": [
-    20200204,
-    1950
+    20200522,
+    1052
    ],
    "deps": [
     "dash"
    ],
-   "commit": "bc1edab09d3fc1b248c17775ae2eb7d35b96be40",
-   "sha256": "09z5wynw3xaxx2jr55ymlnhczryp5c5zgb1g9nr99k2rksq2j980"
+   "commit": "36d39bd25ae58d1359d17f99142520339bea5974",
+   "sha256": "1rvsfg9aabvyzzxd38kvjwkm9675zcmrfhzj5x6wj0ba3n0k34q5"
   },
   "stable": {
    "version": [
     0,
     3,
-    3
+    4
    ],
    "deps": [
     "dash"
    ],
-   "commit": "c331c1516111b9d2136e632a218c1d7707215356",
-   "sha256": "095yx8zg61nka6f7biyj1binbp8g872vq275ycwgmd2ix462zyf4"
+   "commit": "36d39bd25ae58d1359d17f99142520339bea5974",
+   "sha256": "1rvsfg9aabvyzzxd38kvjwkm9675zcmrfhzj5x6wj0ba3n0k34q5"
   }
  },
  {
@@ -62992,8 +64242,8 @@
     20200306,
     1220
    ],
-   "commit": "d1e04ca03aadb942dc4bee82f44848c3ce52b25c",
-   "sha256": "1yrjmyh8a0xqijyg16v20iqh13s7j4pf410f0214a4m9lp07pxpx"
+   "commit": "e4dcdec3a4472a507d6b249ae2194dacaa885ecb",
+   "sha256": "03m4rnfdfsbs44cfqjy8j2z6nbxs2yzhzgizlpsvg64441hdkfa0"
   }
  },
  {
@@ -63137,21 +64387,33 @@
   }
  },
  {
-  "ename": "mmm-mako",
-  "commit": "5b7972602399f9df9139cff177e38653bb0f43ed",
-  "sha256": "0a4af5q9wxafrid8visp30cz6073ig0c961b78vmmgqrwvvxd3kn",
-  "fetcher": "bitbucket",
-  "repo": "pjenvey/mmm-mako",
+  "ename": "mmm-mode",
+  "commit": "ddf7604d914273aef49e75ae1d45c2a9a4bbbedc",
+  "sha256": "10vkqaf4684cm5yds1xfinvgc3v7871fb203sfl9dbkcgnd5dcjw",
+  "fetcher": "github",
+  "repo": "purcell/mmm-mode",
   "unstable": {
    "version": [
-    20121020,
-    651
+    20200714,
+    1714
    ],
    "deps": [
-    "mmm-mode"
+    "cl-lib"
    ],
-   "commit": "5c9ff92137b547569264eeca1ab2a86e4ba12f55",
-   "sha256": "0rpp748ym79sxccp9pyrwri14m7624zzb80srfgjfdpysrrs0jrr"
+   "commit": "9ffe364f3a31c7a771fe3401b8924642609953e8",
+   "sha256": "1yr7nd6kmvy3mc5k6vvwaikzy9cvly4617l4s9zrfrbnldpsyjk7"
+  },
+  "stable": {
+   "version": [
+    0,
+    5,
+    7
+   ],
+   "deps": [
+    "cl-lib"
+   ],
+   "commit": "ff0b214f27d5dddeb856acb4216e77a864dcc0b2",
+   "sha256": "0lxd55yhz0ag7v1ydff55bg4h8snq5lbk8cjwxqpyq6gh4v7md1h"
   }
  },
  {
@@ -63168,8 +64430,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "6d3eedf4fae3c88dee33691aa2856514122adc8c",
-   "sha256": "0fykf7svgsbcjfcsbp1r571mgjhxwkdvmmhhl2clyi5z3mwg0s1g"
+   "commit": "d7729563e656a3e8adef6bce60348861ba183c09",
+   "sha256": "05f218f0lncgx2bbipjz7db09rrka8fq0qf5qkvbgssagxyl7rav"
   },
   "stable": {
    "version": [
@@ -63240,15 +64502,15 @@
   "repo": "scottaj/mocha.el",
   "unstable": {
    "version": [
-    20180321,
-    2322
+    20200729,
+    1130
    ],
    "deps": [
     "f",
     "js2-mode"
    ],
-   "commit": "cfd5b1a8a32162575f1c30b82e17b74efb67cf1c",
-   "sha256": "015pinqd2bxac372dvmcxnc7z9qayq4xpa254sp31bdzn4r5xns4"
+   "commit": "6a72fa20e7be6e55c09b1bc9887ee09c5df28e45",
+   "sha256": "0xp0xps5xvamp7jdxq6hkmyp63ww9ca7imf0nz35xivwwkk17ri6"
   },
   "stable": {
    "version": [
@@ -63335,8 +64597,8 @@
     20190713,
     1335
    ],
-   "commit": "8f71e0a85c2f6039111663e65d9a13f3310f12ed",
-   "sha256": "0vz58nk044jm97wh77v02h24571nwg57j1vx2v4rx9wmwrnifwid"
+   "commit": "4b2b92b14ed0b64fb0a0fa80a374ec9f87fbfeb6",
+   "sha256": "18dbnicaqryq4xhv4d7hds61k85kj3bnpcqv7rippvlyrqm2r6wx"
   },
   "stable": {
    "version": [
@@ -63433,11 +64695,11 @@
   "repo": "ludwigpacifici/modern-cpp-font-lock",
   "unstable": {
    "version": [
-    20190331,
-    1528
+    20200530,
+    1010
    ],
-   "commit": "02f104701bc34c146d22e3143ae59ef362999098",
-   "sha256": "14vxxvvm12jnq4llb759h8y4w3cv71d3xic1mbp0jmyd0j4dkqzp"
+   "commit": "865955d0035382a17a7f03add0d00d0bd812b103",
+   "sha256": "1x04jgc94gpdci24rahb1awvkjii1vdv7bdr9gyiksbry75dsxi1"
   },
   "stable": {
    "version": [
@@ -63451,10 +64713,10 @@
  },
  {
   "ename": "modern-fringes",
-  "commit": "c765214f003426ac7a0e98c5764b14dd61ccce52",
-  "sha256": "0acp18v97k2iahbd5kp240g46wqdmrk4ddrsgvckzm0chsmjmm8q",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "0rkcpjhcw4nfsmsr83zng941cf1mpdparbmqn5ps3qwifiw19m5f",
   "fetcher": "github",
-  "repo": "specialbomb/emacs-modern-fringes",
+  "repo": "SpecialBomb/emacs-modern-fringes",
   "unstable": {
    "version": [
     20200321,
@@ -63495,20 +64757,20 @@
   "repo": "protesilaos/modus-themes",
   "unstable": {
    "version": [
-    20200513,
-    601
+    20200819,
+    628
    ],
-   "commit": "4b3f6a383642fb81a3407dde5d887e2d937ec471",
-   "sha256": "0adbyyfpwzcc1y2vlbdf5kxwxsspm1cnxpd21rjnvcc06pvxzq4s"
+   "commit": "26a211835b6e62e4ad29b2feee75472e02046fa8",
+   "sha256": "12rqgyrnk6x2a7b635wg4c5ihyh9s8ig7s1431xqj91pdx7756kx"
   },
   "stable": {
    "version": [
     0,
-    8,
-    1
+    11,
+    0
    ],
-   "commit": "89a31f6242dac52071ee6be18feadcb604b548d7",
-   "sha256": "0kax2pl2x37yvn9zg3vnr9vp39sfgm7650lz2svp535srhki80il"
+   "commit": "c376b08059028737390f41fb82f64d748c42970c",
+   "sha256": "08alhr6d7shmm1fcvca0a0ipi9mvnaqp5klvqdb1d171h457fcv3"
   }
  },
  {
@@ -63519,20 +64781,20 @@
   "repo": "protesilaos/modus-themes",
   "unstable": {
    "version": [
-    20200513,
-    601
+    20200819,
+    628
    ],
-   "commit": "4b3f6a383642fb81a3407dde5d887e2d937ec471",
-   "sha256": "0adbyyfpwzcc1y2vlbdf5kxwxsspm1cnxpd21rjnvcc06pvxzq4s"
+   "commit": "26a211835b6e62e4ad29b2feee75472e02046fa8",
+   "sha256": "12rqgyrnk6x2a7b635wg4c5ihyh9s8ig7s1431xqj91pdx7756kx"
   },
   "stable": {
    "version": [
     0,
-    8,
-    1
+    11,
+    0
    ],
-   "commit": "89a31f6242dac52071ee6be18feadcb604b548d7",
-   "sha256": "0kax2pl2x37yvn9zg3vnr9vp39sfgm7650lz2svp535srhki80il"
+   "commit": "c376b08059028737390f41fb82f64d748c42970c",
+   "sha256": "08alhr6d7shmm1fcvca0a0ipi9mvnaqp5klvqdb1d171h457fcv3"
   }
  },
  {
@@ -63695,11 +64957,11 @@
   "repo": "belak/emacs-monokai-pro-theme",
   "unstable": {
    "version": [
-    20200504,
-    237
+    20200525,
+    1430
    ],
-   "commit": "06f907e4a954688ec2096420fea1c9935d819e07",
-   "sha256": "1k73bnwyjnmgvx4664pqrk1ig0rr0rwxzlf165dh5fspzqkmrjqh"
+   "commit": "d1bc669200bf5753cf1963e5e65269e0d60648d5",
+   "sha256": "0zqrn1pvlrgbf0yc34bycahvrl8sl67jmc0436yx3lgjwpkvhf0f"
   }
  },
  {
@@ -63749,11 +65011,11 @@
   "repo": "sanel/monroe",
   "unstable": {
    "version": [
-    20190912,
-    1624
+    20200703,
+    1254
    ],
-   "commit": "508f5ed0f88b0b5e01a37d456186ea437f44d93c",
-   "sha256": "01dwnb7f6c49q8vr3qb9m5h1wh9h119axxalqa71wahi1ygrcydc"
+   "commit": "b540e13cf767055086c37b2878e551fd3eddf5c5",
+   "sha256": "0sfj0b7j3385la01d8vq1s8ynpl5vzwdx7vdpyhbi3hrh02xkcqh"
   },
   "stable": {
    "version": [
@@ -63773,20 +65035,20 @@
   "repo": "jessieh/mood-line",
   "unstable": {
    "version": [
-    20200429,
-    309
+    20200722,
+    2327
    ],
-   "commit": "5ff7cb514d7842901b592fa5132b75bc2b0df2e8",
-   "sha256": "135cl8fksl0hyh7jxmdmwng1ppcv3lc3i39v7vslkwi2xp7b0xfk"
+   "commit": "64cbd61c3d9ebf8eb7e1b6366279e32382405f90",
+   "sha256": "0fh9j9fkgl433nykfzjnzap5labi4sdndfk1nv4f904ij69pmvxb"
   },
   "stable": {
    "version": [
     1,
     2,
-    2
+    4
    ],
-   "commit": "5ff7cb514d7842901b592fa5132b75bc2b0df2e8",
-   "sha256": "135cl8fksl0hyh7jxmdmwng1ppcv3lc3i39v7vslkwi2xp7b0xfk"
+   "commit": "64cbd61c3d9ebf8eb7e1b6366279e32382405f90",
+   "sha256": "0fh9j9fkgl433nykfzjnzap5labi4sdndfk1nv4f904ij69pmvxb"
   }
  },
  {
@@ -63797,20 +65059,20 @@
   "repo": "jessieh/mood-one-theme",
   "unstable": {
    "version": [
-    20191029,
-    743
+    20200730,
+    18
    ],
-   "commit": "77ff4bfd954d46bc7580175ef443a9168938f9cd",
-   "sha256": "02aqp3na2401n0mc6fbqvlwrfvbq283kyn9fhan4d0i6mrgvdblx"
+   "commit": "00e2d3797a271c0b3ecb0bab56dc705558015311",
+   "sha256": "0cq5y5fcx581vv8fzbxn5k71r95ss92yvddw4nk85h3710scclds"
   },
   "stable": {
    "version": [
     1,
     0,
-    4
+    6
    ],
-   "commit": "98c2f3ca27dce87cec1bd7ffd322b48129213588",
-   "sha256": "1rs9az5d4279jqldvx963qx0plbxp49c3crksmcq6si0x1iwg86x"
+   "commit": "00e2d3797a271c0b3ecb0bab56dc705558015311",
+   "sha256": "0cq5y5fcx581vv8fzbxn5k71r95ss92yvddw4nk85h3710scclds"
   }
  },
  {
@@ -63831,10 +65093,10 @@
    "version": [
     0,
     5,
-    3
+    4
    ],
-   "commit": "2751d36152abcc2ac1479225392182b53f1e02dd",
-   "sha256": "1xyw4l42053595r76lj8safsx6pj25as0107wd96by3h7dg9m586"
+   "commit": "f6bebfe6fe51b728ebd013b7084becad23cabad3",
+   "sha256": "0n8p864yj5m3n7f9qiq9hy24dwfvv0a0wchx2818rppff6vfq3hf"
   }
  },
  {
@@ -63845,20 +65107,20 @@
   "repo": "takaxp/moom",
   "unstable": {
    "version": [
-    20191118,
-    902
+    20200725,
+    126
    ],
-   "commit": "f16c8c509990932f3db7570a838a441d5c22dec3",
-   "sha256": "172ih3wa3n6q46i7hcjddvnpy4h3vjldj42wvid4lpny0ibjazfy"
+   "commit": "d6dc1f42ccf0d53c8f5d5a327442ae52b2de7aed",
+   "sha256": "0s0liwc9sriv2ar6905n2vsdf9x8l85mwfyw05kr6vmxh9w08wbx"
   },
   "stable": {
    "version": [
     1,
-    2,
+    3,
     0
    ],
-   "commit": "536eac1dd2b187f65ed85ad8efc95f7e2bcaadb2",
-   "sha256": "12v2m66dlvnggmraxgmcfq4ycv6wdc56dv63gggrcy7zhlxwi9vp"
+   "commit": "1d8344cec018a417cb5845c0717c7400c281caa1",
+   "sha256": "0ig5j4dzb0vxx145yv4ly93hndc2hkbx6dfng2zy7agf124ygh37"
   }
  },
  {
@@ -63967,6 +65229,29 @@
   }
  },
  {
+  "ename": "most-used-words",
+  "commit": "5c240664b29e0e455d3d2503381b9db1ed0ea20f",
+  "sha256": "1129wbn7myzqijzcs1bsy3fh6iizijfpkpa1mw6j9s618anj282p",
+  "fetcher": "git",
+  "url": "https://github.com/udyantw/most-used-words.git",
+  "unstable": {
+   "version": [
+    20200808,
+    931
+   ],
+   "commit": "f712879493660c3c3ee3793470b8f8939b79c2b0",
+   "sha256": "0aim8kzs95xjf6ldc4qy9xma1crxybmafs40sqaq35cbfszg0mf0"
+  },
+  "stable": {
+   "version": [
+    0,
+    2
+   ],
+   "commit": "90c09da92b30c6497e9141f0edfe7842440c4d53",
+   "sha256": "0bcqg5p7v6wi3g68c9qpv3rvi9lh6427dd0gmmnwvs1qysz28f1b"
+  }
+ },
+ {
   "ename": "mote-mode",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "0ccsyl0wvf0nbsw57sxad7w0c0i5al5s5mjrjjq8bnfh4dyj2x0y",
@@ -64029,20 +65314,20 @@
   "repo": "wyuenho/move-dup",
   "unstable": {
    "version": [
-    20200506,
-    2305
+    20200819,
+    940
    ],
-   "commit": "fa9be365fcd6a2b89388b4d27dec93928d506678",
-   "sha256": "0pb5xfzk5lfdz613hqsr9x1f0i5ls61xc0np43kqaxnr4xjz2fld"
+   "commit": "c5a346d3058011b8152cceeb45858f9b4cef1b69",
+   "sha256": "1dfsfxy7v85qc2gl14gxhngnvkcdbq9gadnsabs1fq56qdgmq814"
   },
   "stable": {
    "version": [
     1,
-    0,
-    0
+    1,
+    2
    ],
-   "commit": "dae61de7aa5e2bf56a7bab1fa36fa3a39520a3c0",
-   "sha256": "1mrrxx2slxi1qgf483nnxv3y8scfsc844sfnzn4b7hjpfpali0r8"
+   "commit": "c5a346d3058011b8152cceeb45858f9b4cef1b69",
+   "sha256": "1dfsfxy7v85qc2gl14gxhngnvkcdbq9gadnsabs1fq56qdgmq814"
   }
  },
  {
@@ -64233,8 +65518,8 @@
     "dash",
     "mozc"
    ],
-   "commit": "01f09b6c0b308e9f7057fb2aa80171e2ce328bb8",
-   "sha256": "0vgyx7v79224mg3ci8i5kjasnh1w0c48jzwgxbjj270lrra3gfsr"
+   "commit": "90a6eb1db8fa1283b944432cfb83739286b37f92",
+   "sha256": "03pqqzzca9z3a1nbrfdkvfczzi7nr3bn75x7m4mdww9z3wxxda2c"
   },
   "stable": {
    "version": [
@@ -64611,20 +65896,20 @@
   "repo": "mkcms/mu4e-overview",
   "unstable": {
    "version": [
-    20200218,
-    546
+    20200817,
+    2046
    ],
-   "commit": "151d5d9e0dd5e8e8c775035203d3e17538151f33",
-   "sha256": "1gvlh306pcn1g4b7j5pk5m2n2wa72bl9vscfsp0gqr4fwrfnm3r6"
+   "commit": "467a7dfda4e534783469a137545193ded8a66723",
+   "sha256": "08lwvgwfsxmvm5bnw0sl96dry57h4wcjsi2fr2mmfq190kdjrizy"
   },
   "stable": {
    "version": [
     0,
-    1,
+    2,
     0
    ],
-   "commit": "c34f45b3ab9cce892835e14c6701b531a4f54cce",
-   "sha256": "1jc291xwym2ddiqvn83s2b2jw6a08dd63x0f6526qv8g3yr1jl1s"
+   "commit": "467a7dfda4e534783469a137545193ded8a66723",
+   "sha256": "08lwvgwfsxmvm5bnw0sl96dry57h4wcjsi2fr2mmfq190kdjrizy"
   }
  },
  {
@@ -64658,6 +65943,25 @@
   }
  },
  {
+  "ename": "mugur",
+  "commit": "7f218af9e4a50c53d0cacdd3fbbfc514d2f98e8d",
+  "sha256": "05qn7b3jsprdcyc4p6h70qvaydgq3b71y2hb4jfqx19prcbcly7k",
+  "fetcher": "github",
+  "repo": "mihaiolteanu/mugur",
+  "unstable": {
+   "version": [
+    20200602,
+    642
+   ],
+   "deps": [
+    "anaphora",
+    "s"
+   ],
+   "commit": "5333d0ff56cb4d1448e4cdf48278abcbc32e96eb",
+   "sha256": "07xglyc05d42inlh4j3nvdyi55pa0cy013c5yk8rv94xs31pjd8k"
+  }
+ },
+ {
   "ename": "multi",
   "commit": "c9fea5cf529bcdf412af2926e55b8d77edc07eca",
   "sha256": "1c240d1c1g8wb2ld944344zklnv86d9rycmya4z53b2ai10642ig",
@@ -64689,14 +65993,14 @@
   "repo": "ReanGD/emacs-multi-compile",
   "unstable": {
    "version": [
-    20160306,
-    2223
+    20200517,
+    1747
    ],
    "deps": [
     "dash"
    ],
-   "commit": "bd0331854774e7a269ce8a7dd49580cd397c0ec2",
-   "sha256": "1aswpv1m02n26620hgkcfd38f06bzmmijlr9rs5krv6snq5gdb8g"
+   "commit": "e3772f7e68968f7fa2c97615115cd3fc0f701229",
+   "sha256": "0r1ahchfhyqjyc0q0xp5x0p34d6hg4ga3cga1l6dlaw1xjflrsq2"
   }
  },
  {
@@ -64809,15 +66113,15 @@
   "repo": "suonlight/multi-vterm",
   "unstable": {
    "version": [
-    20200329,
-    940
+    20200614,
+    548
    ],
    "deps": [
     "projectile",
     "vterm"
    ],
-   "commit": "11f1b0cc97a24aba66fb561a0a94e9a66375b30f",
-   "sha256": "0pzcwn13yj21qcga2agcv8as0jyrmw055fr8nbzvkp1jml4l3vwj"
+   "commit": "723658c162d483acc07fccf2dd8ae5b8582616f7",
+   "sha256": "1wgsqrr6jxv8dwf89406m53w1xzsvq45hrcc72x12hxkc1hay2vk"
   }
  },
  {
@@ -64961,16 +66265,16 @@
   "repo": "Wilfred/mustache.el",
   "unstable": {
    "version": [
-    20190905,
-    2214
+    20200726,
+    553
    ],
    "deps": [
     "dash",
     "ht",
     "s"
    ],
-   "commit": "6443e1563ddf4eee2236ca1bb1fe87ddfde4b2bb",
-   "sha256": "0wbmknx4pjgfw6y1482a3y1fxv054r0k2qj3qzc47xrkdsjw47y8"
+   "commit": "4649a47340b63214c7b8f1dcc178806d96288839",
+   "sha256": "1vwngm8fvfmh6p7p54pf01gqsmcg7f86nbyg18qphny9zsss1zjl"
   },
   "stable": {
    "version": [
@@ -65160,6 +66464,30 @@
   }
  },
  {
+  "ename": "mybigword",
+  "commit": "77cae5811b20615f356c520e200f771805642976",
+  "sha256": "1v7llcas9hzv2gwjvsxb0i29zcqizg7qgmzx3zyrkbww3ciwwfmp",
+  "fetcher": "github",
+  "repo": "redguardtoo/mybigword",
+  "unstable": {
+   "version": [
+    20200818,
+    1059
+   ],
+   "commit": "182a972cc48c30ba73ebf5424cdf27601a77399f",
+   "sha256": "1k3bxxc3fyh5zimwvw1b0fis95x0q9kp0cxdgdy3y2iayavm203r"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    9
+   ],
+   "commit": "182a972cc48c30ba73ebf5424cdf27601a77399f",
+   "sha256": "1k3bxxc3fyh5zimwvw1b0fis95x0q9kp0cxdgdy3y2iayavm203r"
+  }
+ },
+ {
   "ename": "mykie",
   "commit": "e10504a19e052c080be2ccc9b1b8fd2e73a852e0",
   "sha256": "12ram39fp3m9ar6q184rsnpkxb14y0ajibng7ia2ck54ck7n36cj",
@@ -65238,14 +66566,14 @@
   "repo": "mallt/mysql-to-org-mode",
   "unstable": {
    "version": [
-    20200503,
-    1239
+    20200602,
+    2019
    ],
    "deps": [
     "s"
    ],
-   "commit": "7dcd6486f374814908bdb3c6d4c88cd6cece1e2f",
-   "sha256": "1jpz68pf8j7f4jin5qk4lrkxfzjwyqs16fn3j9ll21z4lc2mj2a8"
+   "commit": "f3afc506f8b0d037238e49290de4b028c6ad9dd1",
+   "sha256": "19g21zvvamlhy1yrqhqbd1x3km6q2m650xsvl613rpcdqsk8l2ic"
   },
   "stable": {
    "version": [
@@ -65592,10 +66920,10 @@
  },
  {
   "ename": "nash-mode",
-  "commit": "c8bd080c81b163a6ddcfffc710316b9711935b4a",
-  "sha256": "1d6nfxn7fc2qv78bf5277sdwfqflag2gihgic8vxrbjlpnizxn1p",
+  "commit": "04f78275b18383eb9594eb57e48b5b5c4639cbd8",
+  "sha256": "1rkqcf8whk6g8ic0vlahf9m0kphd83515cr4yqv21qg2yx8irf2w",
   "fetcher": "github",
-  "repo": "tiago4orion/nash-mode.el",
+  "repo": "i4ki/nash-mode.el",
   "unstable": {
    "version": [
     20160830,
@@ -65637,11 +66965,11 @@
   "repo": "CeleritasCelery/emacs-native-shell-complete",
   "unstable": {
    "version": [
-    20200424,
-    1635
+    20200814,
+    2301
    ],
-   "commit": "0f290514564d3733b35e4b48d70446c1a6eb4b41",
-   "sha256": "0i8bss7ipwsjfrgfri7d3f9pbpkdbfh8aqz8cawr2wvf4yayk8q5"
+   "commit": "be7ced29c5a86e29c364f19d248634b8b54d0e52",
+   "sha256": "1lyad89byq54fva58njf7wiq2rw3767fxif1ykijirzx7q14ahxd"
   }
  },
  {
@@ -65869,8 +67197,8 @@
     20161029,
     2023
    ],
-   "commit": "f5fe5832889d7b6eab7d45724e051f4edbe1983f",
-   "sha256": "15ljrcmmpfwqxvci0ilmn3xgjxj19wq638zvij0wh2g0n6nil6xx"
+   "commit": "db4bc9078f1b6238da32df1519c1957e74b6834a",
+   "sha256": "07axi57f4q7rvsk3w15jrbql20fwmxn2rk07cc9ahqkzys66jfv1"
   },
   "stable": {
    "version": [
@@ -66034,16 +67362,17 @@
   "repo": "felko/neuron-mode",
   "unstable": {
    "version": [
-    20200503,
-    930
+    20200806,
+    833
    ],
    "deps": [
-    "counsel",
+    "company",
     "f",
-    "markdown-mode"
+    "markdown-mode",
+    "s"
    ],
-   "commit": "4329de608ca14dc67448ad576645eabb084009ef",
-   "sha256": "0wk4cjcj98yym1cca2k1wgail9rvxaqs7n9fkccnxv9bddjmymv9"
+   "commit": "18d230ce6b126fe7193db9c20ac93811ccfe779d",
+   "sha256": "18s7phs285jc4whd54x3dvbajqil7yff18xirbvf9pjlzivqwfk5"
   }
  },
  {
@@ -66099,14 +67428,14 @@
   "repo": "AdamNiederer/ng2-mode",
   "unstable": {
    "version": [
-    20190524,
-    1912
+    20200703,
+    1610
    ],
    "deps": [
     "typescript-mode"
    ],
-   "commit": "52fdfe27247548b46f6171eebaf887a90dd67463",
-   "sha256": "1g8za385clky1waba4ggi5bl2q4h26gz00lkzghn3zvxg5nbh47d"
+   "commit": "d9feee65d882723b955483d2b8af01e49df21652",
+   "sha256": "0i0xad3h6rnkrbglmv10vv0zs3nf8kda19n176h6v4zy5bazgrqi"
   },
   "stable": {
    "version": [
@@ -66196,11 +67525,11 @@
   "repo": "aaronjensen/night-owl-emacs",
   "unstable": {
    "version": [
-    20200118,
-    1513
+    20200622,
+    1943
    ],
-   "commit": "b52fbf83ffef1ca265c9ea273bf51827532cef67",
-   "sha256": "0blgf7wx8i7am943m1jc7q4ndkb7pdczfgigrdnqsaf861m0nhng"
+   "commit": "4b9b5cb4fead9c5f145ba399d172c7e6bf577121",
+   "sha256": "0hkjy8qnpjwqc6c8zczb68s7kg5cx8wq9067rvwx4hraxv1bjqmm"
   },
   "stable": {
    "version": [
@@ -66274,11 +67603,11 @@
   "repo": "m-cat/nimbus-theme",
   "unstable": {
    "version": [
-    20200203,
-    1941
+    20200812,
+    915
    ],
-   "commit": "32c5c88502aec1afb6700a798c215b7fc6ce6101",
-   "sha256": "1s0f7wgik5383ffkys27376s0gzhhz6m0rap7l8iqq67yz0k6hxw"
+   "commit": "1a828c1fa0574503014afe8dda3229fb76a4bf64",
+   "sha256": "1qapsq7mxayjjr7y376p9vb7k871rwjgmyvmv756xg98lf7vm3fb"
   }
  },
  {
@@ -66292,17 +67621,17 @@
     20181024,
     1439
    ],
-   "commit": "c6148b0c3377a7d12b679f99f35e09cc7f36e940",
-   "sha256": "088znrs8hygsfx0ndqhpfdgra3l3jf6dyfwz2l6h4s7w4kc8mlnk"
+   "commit": "9ddd3c917793bb97eb19d571429cdedf07501c03",
+   "sha256": "0lrj3k5ng748faarz63rspnd4sh38qvkxxcgbmk81h4cqvv529fy"
   },
   "stable": {
    "version": [
     1,
     10,
-    0
+    1
    ],
-   "commit": "ed7f67040b370189d989adbd60ff8ea29957231f",
-   "sha256": "1fbzl7mrcrwp527sgkc1npfl3k6bbpydpiq98xcf1a1hkrx0z5x4"
+   "commit": "a1f879b29c9aafe6a2bc0ba885701f8f4f19f772",
+   "sha256": "1bmv7zfqwp48ga6vnqvy0gzkclv40xgq19q4ihl58r6cn4swccn3"
   }
  },
  {
@@ -66343,11 +67672,11 @@
   "repo": "akirak/nix-env-install",
   "unstable": {
    "version": [
-    20200113,
-    751
+    20200812,
+    1305
    ],
-   "commit": "b343a7e885206e78544da7313b860442abbd7440",
-   "sha256": "06sq5biv15pgz8azp1kkbkj6ifi2xpa688gx8hj3xvkms9hy6b29"
+   "commit": "79c34bc117ba1cebeb67fab32c364951d2ec37a0",
+   "sha256": "12f16pfki1jwnw1ghdsqcrb11039njffl9hz3aa7sflwr95g2pbb"
   }
  },
  {
@@ -66391,20 +67720,20 @@
   "repo": "NixOS/nix-mode",
   "unstable": {
    "version": [
-    20200515,
-    410
+    20200811,
+    1947
    ],
-   "commit": "e20afb51a48b5d014292d123487f53a678c7c3f7",
-   "sha256": "1gbq9pmz1wv6kc128pyzi2hrsv9ax20myjmq02bwc4x5sqg6rdzq"
+   "commit": "0cf1ea1e0ed330b59f47056d927797e625ba8f53",
+   "sha256": "0wsiyvv23jcazh7jrbkg3d0qs1y5i88ahsdi3pp2s8q9h3lyhwnb"
   },
   "stable": {
    "version": [
     1,
     4,
-    2
+    4
    ],
-   "commit": "e20afb51a48b5d014292d123487f53a678c7c3f7",
-   "sha256": "1gbq9pmz1wv6kc128pyzi2hrsv9ax20myjmq02bwc4x5sqg6rdzq"
+   "commit": "e4e604ae3ac91748c4e7d51a591cb9ee60961b7c",
+   "sha256": "19f36kl00pxm2a18hn4cdsdvxlfsdx1pnnm6s6zxd8nw6y8ynvn0"
   }
  },
  {
@@ -66482,8 +67811,8 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "cc8ee143d4ef45a8c540901852326ccdf6ff8482",
-   "sha256": "0a1ih8w8xk8rdd96k7236v6xh2xr1r6gaiv2b6js95k04igdqxnh"
+   "commit": "213251f82a69edc033766ec96948e83aeb428cd2",
+   "sha256": "1hx13p9rs33j2ajbg0dp6a371hr0dcxbcyzr5xlvkg6gf746lmg8"
   },
   "stable": {
    "version": [
@@ -66575,8 +67904,8 @@
   "repo": "dickmao/nndiscourse",
   "unstable": {
    "version": [
-    20200418,
-    2355
+    20200524,
+    1649
    ],
    "deps": [
     "anaphora",
@@ -66585,8 +67914,8 @@
     "json-rpc",
     "rbenv"
    ],
-   "commit": "103eb5c13ad2d154c9386b2aa9dbea532435ee7a",
-   "sha256": "04nympxjg1dhahk7m71769c5lzsxxsnd9c62lqrkn22gvfzm0wm5"
+   "commit": "e8d99d132d649e179f7cc81b80d873436b4e8ce1",
+   "sha256": "03iqbb3svidczzci0l8b19zk8yx9xdslf9y0hpn2y8fzhf4gszrp"
   }
  },
  {
@@ -66597,8 +67926,8 @@
   "repo": "dickmao/nnhackernews",
   "unstable": {
    "version": [
-    20200407,
-    1525
+    20200730,
+    1052
    ],
    "deps": [
     "anaphora",
@@ -66606,8 +67935,8 @@
     "dash-functional",
     "request"
    ],
-   "commit": "d5e58b373ab6c5f13174e76f5ae62539dc5cfc95",
-   "sha256": "0gqqdjmasjs1p6nal9s2yhas1xr2nm99rd3rns2b8cd5j04ccvaz"
+   "commit": "ad20d17f196a1b99c683ad2ffc39a9b4b2fada58",
+   "sha256": "1b5jnprpvlsn7cnxj6pab8kr0kdzm8xqrzhsga6dlaww6max26xp"
   }
  },
  {
@@ -66633,8 +67962,8 @@
   "repo": "dickmao/nnreddit",
   "unstable": {
    "version": [
-    20200417,
-    1757
+    20200524,
+    1647
    ],
    "deps": [
     "anaphora",
@@ -66643,8 +67972,8 @@
     "request",
     "virtualenvwrapper"
    ],
-   "commit": "7f6e3bdbfa872af8e92ed339671772b46bc7f7f0",
-   "sha256": "1dbb4pm2dvyvgw6lxjhhdqplb1b1jbvnywy8d3abr5dpzfqzij8s"
+   "commit": "4f41473221ea3312085c9f562db59d8f22bf8910",
+   "sha256": "0b42z866igmh8lvykcmac19zb6irdyvaag5dnaa54w2xc9ms52hj"
   }
  },
  {
@@ -66670,26 +67999,26 @@
   "repo": "emacscollective/no-littering",
   "unstable": {
    "version": [
-    20200426,
-    2105
+    20200817,
+    1831
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "e67d7edac513892c5997468899f177a6e7956906",
-   "sha256": "0b1f1lxzp2i2liysl8fs1lqcyrz220m232pzk8h6l7iq8y5fp15q"
+   "commit": "85629e5979f2159ab8cc77814dd4cb219e6ba69c",
+   "sha256": "0ii19sbmsl35y1glj2mz309aila8954rmpah7y7mr2b34ami6hdw"
   },
   "stable": {
    "version": [
     1,
-    0,
-    3
+    1,
+    2
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "d1d6965c70fc6ce0cfb38a5115d0e112aefac1d7",
-   "sha256": "17is06l0w6glppabv2kaclrnqi3dqb6p6alpslpg7lrjd8vd45ir"
+   "commit": "aaa3c36b25e07017595b54e91e190f69f0de0487",
+   "sha256": "0v642qbd65w5jq44zsl4vy525vjmhr948p1jmpq4mpvhfgmxx88c"
   }
  },
  {
@@ -66806,11 +68135,11 @@
   "repo": "abicky/nodejs-repl.el",
   "unstable": {
    "version": [
-    20200320,
-    1645
+    20200802,
+    1310
    ],
-   "commit": "6fad7d764fa0d818ba497450bd722ae10cb8efed",
-   "sha256": "0saky39n0p8w7lmalg3j4da0crrx40yz0rz1zdjzwpd2bd9v2izg"
+   "commit": "3b841055cad00f442e4a9159b1056f59411b6646",
+   "sha256": "0371lz9378x3vjj2kqir89sjy0l5d5j6ha5yz1381nkh15dcww15"
   },
   "stable": {
    "version": [
@@ -66847,21 +68176,6 @@
   }
  },
  {
-  "ename": "nodenv",
-  "commit": "272df58a1112c8c082c740d54bd37469af513d4a",
-  "sha256": "15wqlpswp4m19widnls21rm5n0ijfhmw3vyx0ch5k2bhi4a5rip6",
-  "fetcher": "github",
-  "repo": "twlz0ne/nodenv.el",
-  "unstable": {
-   "version": [
-    20181023,
-    1543
-   ],
-   "commit": "832fb0cbac4513edde7ebd6d1ab971c54313be36",
-   "sha256": "0hn29y8gv9y9646yacnhirx2iz1z7h0p3wrzjn5axbhw0y382qhq"
-  }
- },
- {
   "ename": "noflet",
   "commit": "df33a7230e0e4a67ce75e5cce6a436e2a0d205e8",
   "sha256": "0vzamqb52n330mi6rydrd4ls8nbwh5s42fc2gs5y15zakp6mvhr3",
@@ -66908,11 +68222,11 @@
   "repo": "arcticicestudio/nord-emacs",
   "unstable": {
    "version": [
-    20200108,
-    833
+    20200620,
+    1122
    ],
-   "commit": "d828752e270978a56bde19986c98b1bbe8f51386",
-   "sha256": "096f8cik4jz89bvkifwp3gm9iraqrd75ljy2q9js724v7yj88711"
+   "commit": "4f5b64605709d5803285953026137e905756c35f",
+   "sha256": "032lgin0pn07ysshsdfdfqd5ck1fhrwdfz64sxwwc4gxlg5p4p98"
   },
   "stable": {
    "version": [
@@ -66938,8 +68252,8 @@
    "deps": [
     "colorless-themes"
    ],
-   "commit": "2b4c341640c8191a39e4bc28d6cd04c7d6dcbb37",
-   "sha256": "0ni9cnrv464fk840i1ll241kzkiy1zc6nfrbdv3ciixxdxbshxbn"
+   "commit": "736f7a105535901b4783d19534e7855920e25115",
+   "sha256": "1wi7wxiyk0g3k0l60hdmcyvvxr1kaapbkxvkknwd9qvdsji0ng73"
   },
   "stable": {
    "version": [
@@ -66969,21 +68283,6 @@
   }
  },
  {
-  "ename": "nose",
-  "commit": "855ea20024b606314f8590129259747cac0bcc97",
-  "sha256": "1xdqsxq06x2m9rcfn1qh89g0mz1rvzl246d3sfmciwcyl932x682",
-  "fetcher": "bitbucket",
-  "repo": "durin42/nosemacs",
-  "unstable": {
-   "version": [
-    20140520,
-    1648
-   ],
-   "commit": "194d7789bf797f31ea0adc45f08beb66ae9ea98e",
-   "sha256": "07bhzddaxdjd591xmg59yd657a1is0q515291jd83mjsmgq258bm"
-  }
- },
- {
   "ename": "nothing-theme",
   "commit": "8f69a676e9adfb45f8fbd4467e86a4cb0fbf6ae8",
   "sha256": "0w93f50sb9swgn1lwnk8pdwwa5kpizmaaz13lvbk1qhq2xipr7yp",
@@ -67006,20 +68305,21 @@
   "url": "https://git.notmuchmail.org/git/notmuch",
   "unstable": {
    "version": [
-    20200427,
-    1036
+    20200816,
+    1342
    ],
-   "commit": "627460d7bbbb6b95a07084c2b6fc7f647a5547e1",
-   "sha256": "07fm4ndg42c0fw2dhj2rl32yrdnyprhidgkrwyckghwj02gjfwrj"
+   "commit": "8776faf6d5118e8152ecfacf94accf35ccebf1d2",
+   "sha256": "0r4f12m2xbwzl0fhqcz2vv7dcr0psnhy8ahhv6b5gsdfdfd2w4w3"
   },
   "stable": {
    "version": [
     0,
-    29,
-    3
+    31,
+    -1,
+    1
    ],
-   "commit": "a59ef7d02cb229c2ec3569024918024003568aea",
-   "sha256": "0w9k7jfhcp34inkqciisrjfgflrx8h5q4svfa6bij9p93g1hig0b"
+   "commit": "75ec89dfb4c254ba0b88ddb479e6ede6bfb7d0c7",
+   "sha256": "1pc4nkbhxmx1qlamnjzd1arzr3sgp0m95vn1jmmfivgddy3xh8b0"
   }
  },
  {
@@ -67089,28 +68389,28 @@
   "url": "https://depp.brause.cc/nov.el.git",
   "unstable": {
    "version": [
-    20200506,
-    1245
+    20200813,
+    821
    ],
    "deps": [
     "dash",
     "esxml"
    ],
-   "commit": "55a3b41aa71740826a1cd410fa8d24a313f27b7c",
-   "sha256": "0zw6iq2iwv06jixb5cv73b832y576v0vs51l0j80d8w5d09zpfz3"
+   "commit": "6cfd80124038504038bcb5d4cf2e8b037c36841a",
+   "sha256": "1zr8q9kl3i1900vp08c52ywx2lpwp4iyqs8vm3kb8a7dsc4hpggf"
   },
   "stable": {
    "version": [
     0,
     3,
-    0
+    1
    ],
    "deps": [
     "dash",
     "esxml"
    ],
-   "commit": "ea0c835c1b5e6e70293f4bd64e9c89bdc42f8596",
-   "sha256": "04phmm14ywgicjsl2bsg6w9rapd71vdkxdp5wp0brj6px27y85jz"
+   "commit": "3d32aac0f895c8605e254c8b7f246537816744f5",
+   "sha256": "13r7lvyyyv62m57m4s4xjs4qz2ckhqk6ib514px7qzc7mdzcz9i9"
   }
  },
  {
@@ -67160,14 +68460,26 @@
   "repo": "shaneikennedy/npm.el",
   "unstable": {
    "version": [
-    20200406,
-    1429
+    20200812,
+    1850
+   ],
+   "deps": [
+    "jest",
+    "transient"
+   ],
+   "commit": "26d5cf79dfd1a2a74a66c44de129483d26354345",
+   "sha256": "0akjjb5xqpzg784qi6hbjfjm335mixqszzrxwz69ggl50iy9s6rk"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
    ],
    "deps": [
     "transient"
    ],
-   "commit": "187ddd2732deb49df1e87fbaace153afb8a3e7e1",
-   "sha256": "0kh8y0izab3rra5vb1229h77ykz704wh28m7vv0bsfn5lg02ridx"
+   "commit": "a699cba6a8798af709b2576f2df54abd7eb1701b",
+   "sha256": "1w9a9pjpp3lchl4k8y1zhdpdnmd090s8vp7vbfb89xawp1gavhxg"
   }
  },
  {
@@ -67255,8 +68567,8 @@
     20181022,
     2154
    ],
-   "commit": "1efc30d38509647b417f05587fd7003457719256",
-   "sha256": "0px64jsdps477s9xiw96mhcf1fmgxf0gsp30gzhqfb1b1k4f306j"
+   "commit": "60273e764bf8d95abc40dd2fdc23af87ea9ee33b",
+   "sha256": "0cr0y0mflqr434223rfwlzzp2zdaddqymsrysbsrbv3qhh157sk3"
   },
   "stable": {
    "version": [
@@ -67487,20 +68799,20 @@
   "repo": "TeMPOraL/nyan-mode",
   "unstable": {
    "version": [
-    20170423,
-    740
+    20200526,
+    1054
    ],
-   "commit": "a85ac925367ddc542827182a2d9f0133b421c41b",
-   "sha256": "1178zinzaq0hj1n57yhbpakgky952jhj7dfwhwvsvfclmk9dlrr1"
+   "commit": "06e67ab2c490756d3eeed4a68aba7c33e508a5d5",
+   "sha256": "0d0hdjliad8afz4br38gwidph9zhmm5s09y45n95kqlazq62jfsx"
   },
   "stable": {
    "version": [
     1,
     1,
-    2
+    3
    ],
-   "commit": "4195cd368aca8f05a71cbff4e60cfa9dde10319a",
-   "sha256": "1bnfxw6cnhsqill3n32j9bc6adl437ia9ivbwvwjpz1ay928yxm7"
+   "commit": "06e67ab2c490756d3eeed4a68aba7c33e508a5d5",
+   "sha256": "0d0hdjliad8afz4br38gwidph9zhmm5s09y45n95kqlazq62jfsx"
   }
  },
  {
@@ -67797,8 +69109,8 @@
   "repo": "zweifisch/ob-cypher",
   "unstable": {
    "version": [
-    20170725,
-    1420
+    20200521,
+    936
    ],
    "deps": [
     "cypher-mode",
@@ -67806,8 +69118,8 @@
     "dash-functional",
     "s"
    ],
-   "commit": "114bdf6db20ee0ade060bb5df379ddee48ff4f26",
-   "sha256": "142d91jvf7nr7q2sj61njy5hv6ljhsq2qkvkdbkfqj07rgpwfgn3"
+   "commit": "da9f97339474a48d759fc128cee610c0bc9ae6c0",
+   "sha256": "0r4dsbrdxhyyh708pm8fqn423v21xk7a940nbajw9y07n28y5hgk"
   }
  },
  {
@@ -67884,14 +69196,14 @@
   "repo": "BonfaceKilz/ob-elm",
   "unstable": {
    "version": [
-    20200102,
-    2000
+    20200528,
+    1857
    ],
    "deps": [
     "org"
    ],
-   "commit": "8b49ca0ecdff9df7c3f428bac22a96ed675ee5dd",
-   "sha256": "0prc0bddyppdzckfkjd6h2j5qg9plfzccg2gyn4jkmjhkx0gi09g"
+   "commit": "d3a9fbc2f56416894c9aed65ea9a20cc1d98f15d",
+   "sha256": "1wdlr0cbsb2drdmcn2bnivjkj1f2v52l6yizwsnjgi4xq3w6k56h"
   }
  },
  {
@@ -68076,6 +69388,24 @@
   }
  },
  {
+  "ename": "ob-latex-as-png",
+  "commit": "5a9c900e82ff9e9726ce9cad98d8067752a53fdf",
+  "sha256": "0r355k7h5nq91dir1rvmq0hbrx6pr9kan6qblls6fzi1r0f4d1ph",
+  "fetcher": "github",
+  "repo": "alhassy/ob-latex-as-png",
+  "unstable": {
+   "version": [
+    20200629,
+    1013
+   ],
+   "deps": [
+    "org"
+   ],
+   "commit": "d21d436814e9605cf2a942b709f957695298dc70",
+   "sha256": "0zmckisi9q9kv25jh0jn0ab9xbh2b7d4mzyyi1sdgnkg0ayzvvhb"
+  }
+ },
+ {
   "ename": "ob-lfe",
   "commit": "d595d3b93e6b25ece1cdffc9d1502e8a868eb538",
   "sha256": "11cpaxk9wb27b9zhyns75dqpds4gh3cbjcvia4p2bnvmbm8lz4y8",
@@ -68151,6 +69481,30 @@
   }
  },
  {
+  "ename": "ob-napkin",
+  "commit": "675b76ed3aa7b3bea74ff7103f004589b6cc6b74",
+  "sha256": "1v6s28ahc8xzd4hdl9v4cnigg21978rj6z7xnryv35nzm6kdxn15",
+  "fetcher": "github",
+  "repo": "pinetr2e/ob-napkin",
+  "unstable": {
+   "version": [
+    20200816,
+    1245
+   ],
+   "commit": "7af5e8af08da8455c489909afbd9528a61f570e7",
+   "sha256": "1rmfxbnl2y6yx1869sm5203k7hch481wh5dq6lik5bj00cf3knc6"
+  },
+  "stable": {
+   "version": [
+    0,
+    9,
+    1
+   ],
+   "commit": "7af5e8af08da8455c489909afbd9528a61f570e7",
+   "sha256": "1rmfxbnl2y6yx1869sm5203k7hch481wh5dq6lik5bj00cf3knc6"
+  }
+ },
+ {
   "ename": "ob-nim",
   "commit": "35763febad20f29320d459394f810668db6c3353",
   "sha256": "0j8mk12d29jyhhj4dlc0jykqmqy8g0yrbv7f2sqig83wj531bwza",
@@ -68227,10 +69581,10 @@
  },
  {
   "ename": "ob-sagemath",
-  "commit": "dc074af316a09906a26ad957a56e3dc272cd813b",
-  "sha256": "02ispac1y4g7p7iyscf5p8lvp92ncrn6281jm9igyiny1w6hivy7",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "1xb8s4xm9wzfpdlhj5rym2lh4naz3h13v4sjqh71zxw6hy82gba3",
   "fetcher": "github",
-  "repo": "stakemori/ob-sagemath",
+  "repo": "sagemath/ob-sagemath",
   "unstable": {
    "version": [
     20191106,
@@ -68515,14 +69869,14 @@
   "repo": "clemera/objed",
   "unstable": {
    "version": [
-    20200403,
-    1500
+    20200815,
+    1504
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "e89d8dae3b2d4331a4455d2a7b203500537d184d",
-   "sha256": "1xjcbfqxpda73l8imw1pj9my71qqacri269cv7wnzsfrphqh526x"
+   "commit": "dea5a64a4da32e8947fe5b45de569e293aaa8a96",
+   "sha256": "1jmr14bfs489g0czpmn987gpmmdqx72blkzcnd8sn1sfyk5n18ng"
   },
   "stable": {
    "version": [
@@ -68733,26 +70087,26 @@
   "repo": "oer/oer-reveal",
   "unstable": {
    "version": [
-    20200503,
-    853
+    20200813,
+    1540
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "b5ac03800294272d2deba115bcd08c9176580691",
-   "sha256": "08rimp8652jy54p7gnhk774gv023wn1bh73zkarxrwqrlvjkh5m5"
+   "commit": "165eaf9d151c589226f7a4e0edc3a3100c0a9efb",
+   "sha256": "06740c4qdpdrim5wj88gw973lbh59h6sx4kzrpl37cqjvdsawbzv"
   },
   "stable": {
    "version": [
+    3,
     2,
-    12,
-    0
+    1
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "b5ac03800294272d2deba115bcd08c9176580691",
-   "sha256": "08rimp8652jy54p7gnhk774gv023wn1bh73zkarxrwqrlvjkh5m5"
+   "commit": "7a99fa342eae234069344893b5bc851280ff2dc9",
+   "sha256": "1fsp6li73dk2272lgj4kxapd1sqw2pqj42rlcbl5hhh35hva714h"
   }
  },
  {
@@ -68778,6 +70132,48 @@
   }
  },
  {
+  "ename": "oj",
+  "commit": "f271f03feaa578e3e8ad9b02e0ca3ac99142fd60",
+  "sha256": "0qzyl7h8rdwyy1d6xralzcxgrc4nwx1hq30n5daa0cy3l5yix5xz",
+  "fetcher": "github",
+  "repo": "conao3/oj.el",
+  "unstable": {
+   "version": [
+    20200811,
+    517
+   ],
+   "deps": [
+    "quickrun"
+   ],
+   "commit": "2dd65324ac9833e07eaed5fb04acebafc6d5cbd2",
+   "sha256": "00lxjl1i6kcvj9lym2m59xb5hrx2gcdpvsvq972d8iczp2jmcfxr"
+  }
+ },
+ {
+  "ename": "olc",
+  "commit": "1e21abd021d72c491ed1503146c51761e18c56c4",
+  "sha256": "0kcqwnhhy5wa0r61yqg9gly9jd6b1846q2w43fmhzk3l4nzky32r",
+  "fetcher": "git",
+  "url": "https://gitlab.liu.se/davby02/olc.git",
+  "unstable": {
+   "version": [
+    20200818,
+    1221
+   ],
+   "commit": "d2dc62dbc3cf6460cc12bd96857a988bc80ac37e",
+   "sha256": "176w03pybs5rg87cj94s0dy365pxp981mlkbh3zv3d34kpmrzh10"
+  },
+  "stable": {
+   "version": [
+    1,
+    5,
+    1
+   ],
+   "commit": "d2dc62dbc3cf6460cc12bd96857a988bc80ac37e",
+   "sha256": "176w03pybs5rg87cj94s0dy365pxp981mlkbh3zv3d34kpmrzh10"
+  }
+ },
+ {
   "ename": "old-norse-input",
   "commit": "84780a6ebd1b2294b86ae8c6df5bd6521cf4e85a",
   "sha256": "1g00h6ykf61ckr6f3r17j72w3h04p5q65aa3rhr5llk3jk1wv331",
@@ -68815,20 +70211,20 @@
   "repo": "rnkn/olivetti",
   "unstable": {
    "version": [
-    20200430,
-    519
+    20200702,
+    601
    ],
-   "commit": "b23a05f442e3b1230f014e8054ebe3e57d22fc42",
-   "sha256": "18ln5i3pjzgakpyqdwd4ii8n49l9kxbdp092bsx9s92miknkl2mp"
+   "commit": "0bc5e98b8456493084d1bd3df35e92a12c5da3b2",
+   "sha256": "121dzm051jivskssfvxs5kxkviqivf1j0fr3q8rkfqii7rxdw84r"
   },
   "stable": {
    "version": [
     1,
-    9,
-    5
+    11,
+    1
    ],
-   "commit": "b23a05f442e3b1230f014e8054ebe3e57d22fc42",
-   "sha256": "18ln5i3pjzgakpyqdwd4ii8n49l9kxbdp092bsx9s92miknkl2mp"
+   "commit": "57ca8e70bc9ee975f0e2a60bfc4121064dadd2e0",
+   "sha256": "0rghxjdzyfykd4qc2zkavvbyf9xc899k1b8hbk890f1y3vakqvqz"
   }
  },
  {
@@ -69122,11 +70518,11 @@
   "repo": "balajisivaraman/emacs-one-themes",
   "unstable": {
    "version": [
-    20190424,
-    740
+    20200720,
+    1444
    ],
-   "commit": "e62e4ebef7ef8ccb1e90781d613638d30cf24d7a",
-   "sha256": "13vjlgac3ikd5xr6cjqb3aaj8qr201lc3ndvwhj3k617474312jh"
+   "commit": "0e77d31f9fc0cd55f3d92ec0db79513d616b2efd",
+   "sha256": "0dc2xkgnl5x542332cnlilbzy9ps060gjx0hkg8pfhismvavr4mi"
   }
  },
  {
@@ -69380,19 +70776,19 @@
   "repo": "oantolin/orderless",
   "unstable": {
    "version": [
-    20200504,
-    706
+    20200614,
+    1920
    ],
-   "commit": "5b292ac136b891d574f0d9827904e6ad527a9c35",
-   "sha256": "0973fksap71cya30g3a58jqdd4hxkv4ia603dgl06qgirjvpl820"
+   "commit": "1f1e0380e2a8cd4fc29b8cc2e00cb01b56d86fbc",
+   "sha256": "15an4y0xdaih86p33zmb6r7qx5n0cs54flcnnq50jakkxlg9s8xh"
   },
   "stable": {
    "version": [
     0,
-    3
+    5
    ],
-   "commit": "b69b52289fdb0023a3123b1ddec5b490125345a3",
-   "sha256": "0vxpaqsad3x1lqga1ky7sipm8lk8ps66wpcvz52jdqasxmxzvrjm"
+   "commit": "c6432b086f9c8ccb50b3656ba5895750f2a15541",
+   "sha256": "032lfwflkpaxbcxl4jf438vapswsdagipjczcn30sc4dfdh3p42c"
   }
  },
  {
@@ -69587,16 +70983,16 @@
   "repo": "diadochos/org-babel-eval-in-repl",
   "unstable": {
    "version": [
-    20191204,
-    18
+    20200723,
+    838
    ],
    "deps": [
     "ess",
     "eval-in-repl",
     "matlab-mode"
    ],
-   "commit": "e111b4b5c6844bb389317354ea172cd96a8bb658",
-   "sha256": "0j1z1kp85fvn874l7s8h0cf528khaa38bs5ccx5dwf8mkb68vjgm"
+   "commit": "85136ac7397fcdf0a4700a860de44d7912bb6b4c",
+   "sha256": "0pkp1w8ivgbr7jy90fymws2k9bambayrfq9rcad9qfzl76i412z9"
   },
   "stable": {
    "version": [
@@ -69644,11 +71040,11 @@
   "repo": "scallywag/org-board",
   "unstable": {
    "version": [
-    20190203,
-    1424
+    20200619,
+    1016
    ],
-   "commit": "2e01e801abc04b8fb718ca4bc19636242ac0cb52",
-   "sha256": "044nqxrg11qk0lnipzvhvdyd37vjkklaksyasrn6k1ifcfdx2qp8"
+   "commit": "1393bd46d11a81328ed4fb8471831415a3efe224",
+   "sha256": "1kryrg988c3sbxyp1sdgc6xdv2iz6kiflpzn2rw4z3l4grzab53b"
   },
   "stable": {
    "version": [
@@ -69693,8 +71089,8 @@
   "repo": "lepisma/org-books",
   "unstable": {
    "version": [
-    20200510,
-    844
+    20200522,
+    1800
    ],
    "deps": [
     "dash",
@@ -69703,14 +71099,14 @@
     "helm-org",
     "s"
    ],
-   "commit": "44aec8dcdf4a498e13a80362dff4027cfa4b74a1",
-   "sha256": "10ws56ww3hhqx5gghxaygiyi5vkfb5snjf4v0djaam53yn03jl90"
+   "commit": "49617901d087f532d7cae1aa23637671fd153d20",
+   "sha256": "09nq7na9r39pl6aljrf5vpkfih92ms7s081nxdrhxcscaysk08kb"
   },
   "stable": {
    "version": [
     0,
     2,
-    18
+    19
    ],
    "deps": [
     "dash",
@@ -69719,8 +71115,8 @@
     "helm-org",
     "s"
    ],
-   "commit": "44aec8dcdf4a498e13a80362dff4027cfa4b74a1",
-   "sha256": "10ws56ww3hhqx5gghxaygiyi5vkfb5snjf4v0djaam53yn03jl90"
+   "commit": "4b93bb1e20e2e66b9e64819b21ca75f36c389370",
+   "sha256": "1ksvdl8liqv74am1r7brn8slkwgbc83jv7l92qk9md7s1krcb6y0"
   }
  },
  {
@@ -69731,14 +71127,14 @@
   "repo": "Kungsgeten/org-brain",
   "unstable": {
    "version": [
-    20200516,
-    1343
+    20200625,
+    2050
    ],
    "deps": [
     "org"
    ],
-   "commit": "3ce2a33b81ce611695ad74bf21cb911ef90d9a1a",
-   "sha256": "0br8mqhxfx9pf1nslvlqk4x5rdlpjagixi6il0i0xpxhca7z3fya"
+   "commit": "671db0e08b91c7d2637d765a7afca8b2561275c8",
+   "sha256": "17i0lnp9xyzbky0xh1qi6q7jpnpz950j2zxwv2hg007zziqd21ks"
   }
  },
  {
@@ -69836,14 +71232,14 @@
   "repo": "Chobbes/org-chef",
   "unstable": {
    "version": [
-    20200512,
-    2102
+    20200729,
+    2021
    ],
    "deps": [
     "org"
    ],
-   "commit": "1dd73fd3db0e9382fa34d3b48c8ec608e65f3bdc",
-   "sha256": "0wfl416hd7f42j1fidap0f9zlcm3vhgjs12k99k672fggl0459h1"
+   "commit": "5b461ed7d458cdcbff0af5013fbdbe88cbfb13a4",
+   "sha256": "171ybf5n6a6ab3ycghc2z016qxbgqyj13kkcdsfqy0691wx7dcqb"
   }
  },
  {
@@ -69869,15 +71265,15 @@
   "repo": "dfeich/org-clock-convenience",
   "unstable": {
    "version": [
-    20200123,
-    1029
+    20200705,
+    1527
    ],
    "deps": [
     "cl-lib",
     "org"
    ],
-   "commit": "4e522706a90a504c75d377161005f9543575ea02",
-   "sha256": "08d0hv2shpbw01pjh8ks04avyl4zc0zcyqlmn4hbdhwjz7lzp8dv"
+   "commit": "efc9773a8dedf834cf4a78fb6f5f8fffe55ef8eb",
+   "sha256": "0xnzw4p0wvahkfnxpj2ysz9nylzndp4pvy90vlf0l0d2ff5dymbh"
   }
  },
  {
@@ -69888,15 +71284,15 @@
   "repo": "atheriel/org-clock-csv",
   "unstable": {
    "version": [
-    20190418,
-    1505
+    20200714,
+    2109
    ],
    "deps": [
     "org",
     "s"
    ],
-   "commit": "e2fbaa1ad1a1be40fceecde603a600b292b76acc",
-   "sha256": "1fpjga40v2wlkvq4ap75hd844m47gm55dkraznqz078k5f8fx8kk"
+   "commit": "499b961f26e1f9a9898bf0b1725b49d783893639",
+   "sha256": "08li6il9rhbm62pcb15cd40b6vjqjlywk07jcs9m85q589v6q2yg"
   },
   "stable": {
    "version": [
@@ -69981,11 +71377,11 @@
   "repo": "thisirs/org-context",
   "unstable": {
    "version": [
-    20200418,
-    1540
+    20200615,
+    1554
    ],
-   "commit": "bbef096dc20b206b792b0ef310f2eed7c70ca3a0",
-   "sha256": "05s73wn2q3a0mfc14qlgcb1bas9addby0m43id2v8ljvxyigicr8"
+   "commit": "8ef429124c13b1a68f7672cb6e6cb9c8b9d9db93",
+   "sha256": "178hpp3ylafmr2n3ydcqwqjxa8avlb8g1n3swzndc3jjk0gy6vck"
   }
  },
  {
@@ -70056,10 +71452,10 @@
  },
  {
   "ename": "org-doing",
-  "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
-  "sha256": "10vg0wl8dsy12r51178qi4rzi94img692z5x3zv8dxa29lmn26xs",
+  "commit": "8377b69021bda729b9e96e59a5d7ce2c120838c5",
+  "sha256": "1hbdyvfqybbgzmcllys6bqip799j79j6h4b28pp6mnlyfqi64msp",
   "fetcher": "github",
-  "repo": "rudolfolah/org-doing",
+  "repo": "emacsattic/org-doing",
   "unstable": {
    "version": [
     20200510,
@@ -70104,14 +71500,14 @@
   "repo": "abo-abo/org-download",
   "unstable": {
    "version": [
-    20200506,
-    1829
+    20200818,
+    1117
    ],
    "deps": [
     "async"
    ],
-   "commit": "d248fcb8f2592a40507682e91eed9a31ead4e4a6",
-   "sha256": "1m8683hkxs70754kqxxw6sb0wfvjkb9ghf9ny7zsyzvz0yj02gkm"
+   "commit": "67b3c744f94cf0bf50f7052ce428e95af5a6ff3f",
+   "sha256": "0f94drnfkyd1vpdhkr463zv952lk1v895dwrzk1251j8fb9vdf9m"
   },
   "stable": {
    "version": [
@@ -70397,14 +71793,26 @@
   "repo": "io12/org-fragtog",
   "unstable": {
    "version": [
-    20200215,
-    2217
+    20200703,
+    229
+   ],
+   "deps": [
+    "org"
+   ],
+   "commit": "92119e3ae7c9a0ae2b5c9d9e4801b5fdc4804ad7",
+   "sha256": "0hyhwbfhb7gj3wjv0722gmz637pd3l0k0gnk4z100v3crnk9rfs6"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    0
    ],
    "deps": [
     "org"
    ],
-   "commit": "8eca8084cc025c43ce2677b38ed4919218dd9ad9",
-   "sha256": "0irr4l40djgmgvg41gx7kqza6zwi2mz69drq7dyrr10pz5hd0ikp"
+   "commit": "92119e3ae7c9a0ae2b5c9d9e4801b5fdc4804ad7",
+   "sha256": "0hyhwbfhb7gj3wjv0722gmz637pd3l0k0gnk4z100v3crnk9rfs6"
   }
  },
  {
@@ -70415,8 +71823,8 @@
   "repo": "kidd/org-gcal.el",
   "unstable": {
    "version": [
-    20200501,
-    24
+    20200809,
+    2137
    ],
    "deps": [
     "alert",
@@ -70424,8 +71832,8 @@
     "request",
     "request-deferred"
    ],
-   "commit": "2ee2b31547e6f4e33db70fb812d552e55d612fd6",
-   "sha256": "1gwz1avfbvn5pf72qfg3q6v8qhjihs89avzgx4v7mx6x34fgnpby"
+   "commit": "2cad2d8c175975dea42903cd4e3fd8bec423c01a",
+   "sha256": "013h09gdd7zlcrrvwf2i2ipyazvsjg2hwcfracb9bbv4r5bc0syf"
   },
   "stable": {
    "version": [
@@ -70443,6 +71851,38 @@
   }
  },
  {
+  "ename": "org-generate",
+  "commit": "7bbcd2fe177abe7d823dd5576cce6ba50054e51a",
+  "sha256": "18hlqlzvlgs2gnabsawjxbp9gn6w3b9fgkzg4sp3plxaqayhayas",
+  "fetcher": "github",
+  "repo": "conao3/org-generate.el",
+  "unstable": {
+   "version": [
+    20200815,
+    736
+   ],
+   "deps": [
+    "mustache",
+    "org"
+   ],
+   "commit": "98825efb73c4537f05f653ce40e639a220d2ee5d",
+   "sha256": "0p4xc4rznkq0vp0bbm1k69bfbmlp46lap12q75wdpkdrn5k4sr2p"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "deps": [
+    "mustache",
+    "org"
+   ],
+   "commit": "0c25f12cd25d835428dece427f26df53f1d60ce3",
+   "sha256": "0z2frp5mn3lp2xskwanw2rncrwa50x3aphy87vfxmhx4fqlqrzy8"
+  }
+ },
+ {
   "ename": "org-gnome",
   "commit": "4f7ebd2d2312954d098fe4afd07c3d02b4df475d",
   "sha256": "0c37gfs6xs0jbvg6ypd4z5ip1khm26wr5lxgmv1dzcc383ynzg0v",
@@ -70494,6 +71934,42 @@
   }
  },
  {
+  "ename": "org-gtd",
+  "commit": "26f2af3e31a2ddbf8600cb9a625d138c924d8a53",
+  "sha256": "1k264yb9n544zzf8ivzm16vqrklghrhiqs6jfwyx85675088vp6m",
+  "fetcher": "github",
+  "repo": "trevoke/org-gtd.el",
+  "unstable": {
+   "version": [
+    20200809,
+    2319
+   ],
+   "deps": [
+    "f",
+    "org",
+    "org-agenda-property",
+    "org-edna"
+   ],
+   "commit": "6837b4b192c850ae45b042a78b79f4e7cca2d56e",
+   "sha256": "1m3na0xswmndhjmgpqh1m5pj9cy5jp3vjmga74x2igrhk40ba8ly"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    1
+   ],
+   "deps": [
+    "f",
+    "org",
+    "org-agenda-property",
+    "org-edna"
+   ],
+   "commit": "ee10b8cb70d27d01280de8f282d9602f3497b8ab",
+   "sha256": "0j555cfi312j0kkpba91np3vwly26y7hyyyaxr2lcg84jd17frjg"
+  }
+ },
+ {
   "ename": "org-id-cleanup",
   "commit": "2d59dfe413397ba07a74b7d344e9f9a73c0e3db0",
   "sha256": "1jv4ffjd61p3p8qkki798yzky96k53hbnph4xfz77xkc8i2d6rxf",
@@ -70501,15 +71977,15 @@
   "repo": "marcIhm/org-id-cleanup",
   "unstable": {
    "version": [
-    20200516,
-    1339
+    20200523,
+    735
    ],
    "deps": [
     "dash",
     "org"
    ],
-   "commit": "05d57840893d9ae8146ed41d29d1f0571c05ded8",
-   "sha256": "1rsw4zgvxp77ncq4z98hcy6qsg6j72glx1y69rwfblg87lz3mj6d"
+   "commit": "e79540b64e0ee5ef11adfeb932a9b04beb905680",
+   "sha256": "0qn85515lzhqhn49byf0vpyhbgfwyibf21f7xl2j7cj306x1f79c"
   },
   "stable": {
    "version": [
@@ -70609,16 +72085,16 @@
   "repo": "ahungry/org-jira",
   "unstable": {
    "version": [
-    20200505,
-    137
+    20200714,
+    41
    ],
    "deps": [
     "cl-lib",
     "dash",
     "request"
    ],
-   "commit": "c3c69aaeff743da4be415579444732c2904e9d3b",
-   "sha256": "02bl3qgplfn45wqj5gi43cz54j0i3c2nd2yn1ay2wjmdscm6akb0"
+   "commit": "5c90dce918fcb873754bff375e988b17dcc69701",
+   "sha256": "1d38szx1vq4k1pfdisr3czwaasfw7jkwa2vswfcrnk3d65akkgzk"
   },
   "stable": {
    "version": [
@@ -70644,23 +72120,26 @@
   "repo": "bastibe/org-journal",
   "unstable": {
    "version": [
-    20200514,
-    1648
+    20200815,
+    1335
    ],
    "deps": [
     "org"
    ],
-   "commit": "2c43b10eed0659f8e47797e5e53d2973f939284d",
-   "sha256": "1ppzq6hx7nc2iy6pnpgxd39znc701mgqbi2v4v71a0yp8zl6kbgs"
+   "commit": "a2728e25b854af21cea8e8d313714c993eb1c848",
+   "sha256": "1rvlrn0jlw6a3p48zg50vw4nll2cffk9nkng0qvh8ws0a161w2j1"
   },
   "stable": {
    "version": [
     2,
-    0,
+    1,
     0
    ],
-   "commit": "8eda1119f561561b993eea72a550a6b1f0ef35e1",
-   "sha256": "18dqd0jy2x530lk0h4fcn9cld9qh4w7b3vxa60fpiia628vsv1dg"
+   "deps": [
+    "org"
+   ],
+   "commit": "f7bfc592ec11e9e5d0b0bfa377961167b68bba72",
+   "sha256": "1imrfvzc52l976598df2243s4jdwicznnxs3q91m5vrjsk23zfp2"
   }
  },
  {
@@ -70686,30 +72165,30 @@
   "repo": "gizmomogwai/org-kanban",
   "unstable": {
    "version": [
-    20200329,
-    543
+    20200729,
+    2120
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "544aac80f1c7113cfe42cf1a2b89f5ca6bd9ead6",
-   "sha256": "0sx4mvr5g2ipj1s1jg82vr1q90jkq9lm0pg5cdab8lrx464lqf2c"
+   "commit": "70b4c9823b32ae299f3da521966b6c5abacf73e2",
+   "sha256": "159g13m1zpc1b2ggs9iw2l51pj0h433y1x00bgznhc9fvamysasd"
   },
   "stable": {
    "version": [
     0,
-    4,
-    23
+    6,
+    1
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "93f8135f2b7ae2d5ed807cb92954640796bbe273",
-   "sha256": "1wxc4y5swldqv3jqdz9gj1gx30r4xzis8g2m572bbsrdfjf04c26"
+   "commit": "fbb27c3983ad735a333c766815642a6615cea2ed",
+   "sha256": "0xclk323hq4lszqmvba4v8785v57bxfxln5n1hy0vaf0f45hfkjw"
   }
  },
  {
@@ -70762,6 +72241,36 @@
   }
  },
  {
+  "ename": "org-linkotron",
+  "commit": "6105d5302a5fdec261f30168f811fa1e277bcb21",
+  "sha256": "10smvy4h178cqrn0d6kj86mqjnj23np1a2z9q8hp0n1dxyisjfhg",
+  "fetcher": "gitlab",
+  "repo": "perweij/org-linkotron",
+  "unstable": {
+   "version": [
+    20200112,
+    2235
+   ],
+   "deps": [
+    "org"
+   ],
+   "commit": "d0adc5247b205bc73d2f1a83d4a512d2be541eb5",
+   "sha256": "1w80kwh17b4svw0md7is8ajc732cbkknychsqcp1ia42qxqq4y8r"
+  },
+  "stable": {
+   "version": [
+    0,
+    9,
+    3
+   ],
+   "deps": [
+    "org"
+   ],
+   "commit": "d0adc5247b205bc73d2f1a83d4a512d2be541eb5",
+   "sha256": "1w80kwh17b4svw0md7is8ajc732cbkknychsqcp1ia42qxqq4y8r"
+  }
+ },
+ {
   "ename": "org-listcruncher",
   "commit": "5bed5078a3e56a825be61d158ca8321763b92f7c",
   "sha256": "05vi7a03gj1waaqcjnkgpij4r45r2087xg7kgfs6ki8zhsyws23q",
@@ -70839,14 +72348,14 @@
   "repo": "org-mime/org-mime",
   "unstable": {
    "version": [
-    20200502,
-    1133
+    20200520,
+    1100
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "484bf3b0b8af461805b9e30d175510c031bcfbc3",
-   "sha256": "1shp3xfjifvwcj67mvfiv0dwpwyz846s6xa5zs269fwbvdvmx65q"
+   "commit": "9bb6351b25c62835c7881fc64096028eb8ef83ef",
+   "sha256": "1h9dv1rw42c4yhdxp2cnxpyv49aklxgljhbw1adl4p7sp4zgrqbd"
   },
   "stable": {
    "version": [
@@ -70863,10 +72372,10 @@
  },
  {
   "ename": "org-mind-map",
-  "commit": "3c8683ee547a6a99f8d258561c3ae157b1f427f2",
-  "sha256": "07wffzf4dzfj8bplwhr9yscm6l9wbz8y01j0jc8cw943z5b8pdgs",
+  "commit": "04f78275b18383eb9594eb57e48b5b5c4639cbd8",
+  "sha256": "0qgh74dzvpkij8xzdgwyd70wnfmjhjbmvqyw0zgkabw7s059yysk",
   "fetcher": "github",
-  "repo": "theodorewiles/org-mind-map",
+  "repo": "the-humanities/org-mind-map",
   "unstable": {
    "version": [
     20180826,
@@ -70881,6 +72390,38 @@
   }
  },
  {
+  "ename": "org-ml",
+  "commit": "95cc2843698e2341697a223a463c4d51348aec5e",
+  "sha256": "013rlpq5in8mq02pnlpsl0mbgflv6bwx2cr18j0jcyd4sd1r1srz",
+  "fetcher": "github",
+  "repo": "ndwarshuis/org-ml",
+  "unstable": {
+   "version": [
+    20200806,
+    2244
+   ],
+   "deps": [
+    "dash",
+    "s"
+   ],
+   "commit": "e3df332fac6dea0810db0286ef154e917c971c49",
+   "sha256": "1pdl13hmvyznvk1k1096pid628rmhfif09bhryla7xjqkczpv25g"
+  },
+  "stable": {
+   "version": [
+    2,
+    0,
+    1
+   ],
+   "deps": [
+    "dash",
+    "s"
+   ],
+   "commit": "c36f8a7f6b15dddcfa9e270a86d48a5e5f2beea3",
+   "sha256": "0vv8rk1mn7vhwz5riadg1fdjx5nmvm8h578yb9b85a100nq7av2w"
+  }
+ },
+ {
   "ename": "org-mobile-sync",
   "commit": "f0a8eb0eefe88b4ea683a4743c0f8393506e014b",
   "sha256": "152mswykbz3m9w1grpsvb6wi9rg1vf3clnrl8qy6v911c0hy1s9c",
@@ -70930,14 +72471,14 @@
   "repo": "jeremy-compostella/org-msg",
   "unstable": {
    "version": [
-    20200513,
-    1617
+    20200722,
+    2238
    ],
    "deps": [
     "htmlize"
    ],
-   "commit": "d8a571c720b2b7dec9115fd85b114ae46d4ac4b7",
-   "sha256": "094nrd7fy7m7m758gks14kz7yfdcclcwvbz8p90dwg3dv311hii2"
+   "commit": "2db6725c4a4f4342a9c61895b7c3c82795b01fee",
+   "sha256": "0ijll4fbm0231zig9ia3bpm2padjyj9w0c89nv5aqpilx2fk84v8"
   }
  },
  {
@@ -70948,8 +72489,8 @@
   "repo": "akirak/org-multi-wiki",
   "unstable": {
    "version": [
-    20200419,
-    1833
+    20200810,
+    1055
    ],
    "deps": [
     "dash",
@@ -70957,8 +72498,8 @@
     "org-ql",
     "s"
    ],
-   "commit": "8b056103d6f5320563e9fd794a008fd4e0719702",
-   "sha256": "1xmj2p9hcpf1nld0gsnxq12kaljh0p195fy24v23l8ygykhmqw17"
+   "commit": "2541e1b0798a1c9d4b4b8778e6c97a579ac3fa14",
+   "sha256": "1mcpbq1qylkxpd6nzq04jrji6p1xll5a30dc7dpxpcjrkgvbzf39"
   },
   "stable": {
    "version": [
@@ -71296,8 +72837,8 @@
   "repo": "org-pivotal/org-pivotal",
   "unstable": {
    "version": [
-    20191116,
-    530
+    20200607,
+    1505
    ],
    "deps": [
     "a",
@@ -71305,8 +72846,8 @@
     "dash-functional",
     "request"
    ],
-   "commit": "f073f3ed8c2e78f5080c617d01b1f6bb3df63d1c",
-   "sha256": "13bqcwlappxz0gsiyvklrf0xv4an6s4id48s3ydi0hki1na9fzzk"
+   "commit": "125e70f9a682751e4ed7c3a350b2794af9600f47",
+   "sha256": "1w91wb6l3vsri015awig1kfs986zf49466x4ni0m24hcg00n2m7n"
   }
  },
  {
@@ -71374,8 +72915,8 @@
     "elnode",
     "org-present"
    ],
-   "commit": "d66aa2022eea65c83b6e5e5b99a1331284a7ec30",
-   "sha256": "1ji1qqhp6hpsmri0lgwzvvn1477njlcv60958xf6akvryk6azqh3"
+   "commit": "ba7e07af3bd1142e310e868893b919286758a007",
+   "sha256": "1vzipij1wy3g1lh13igbmf16p16llgnm90ydjrr6mlb35d141i20"
   }
  },
  {
@@ -71522,8 +73063,8 @@
   "repo": "alphapapa/org-ql",
   "unstable": {
    "version": [
-    20200501,
-    1131
+    20200713,
+    309
    ],
    "deps": [
     "dash",
@@ -71538,14 +73079,14 @@
     "transient",
     "ts"
    ],
-   "commit": "c847afe0b538a1a44c73e40b067831cbea132ba7",
-   "sha256": "0x1dymh7brhfznr6xkgc2vib4p1s5aqxq9kfjlcvi8q0cfasg9b4"
+   "commit": "6633dbb276d51767c3f401d0f68ef99e7b9364b6",
+   "sha256": "0rqhdf9g6n14v1ixwnb3d6jl85zxlarg28fz0jpzzikj4spiy772"
   },
   "stable": {
    "version": [
     0,
     4,
-    5
+    6
    ],
    "deps": [
     "dash",
@@ -71558,8 +73099,8 @@
     "s",
     "ts"
    ],
-   "commit": "5a031bf5c19d274934f80d616d6fde62a6db5786",
-   "sha256": "133x49kr7nf7jhi5r7ww5pydgq8wq3g31klirwgkc29698sd6n78"
+   "commit": "00800556907408ee11a23de3a4982061d08d3b85",
+   "sha256": "08xax4fp9rzi8iimkyw2gvp2rd0lgb2f83qrhhnhnc1kgpkdl6y1"
   }
  },
  {
@@ -71638,28 +73179,28 @@
   "repo": "oer/org-re-reveal",
   "unstable": {
    "version": [
-    20200512,
-    1701
+    20200813,
+    1104
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "a9e9d4ef88417b3af7741a8d8f444ece820e7a3b",
-   "sha256": "0lkqq5n4dspnpiywaparn95wriwh7ffypdykz0a3mmlnv96rizyi"
+   "commit": "7fe39d5d03ccc75d2811445d25cbbb473b53de76",
+   "sha256": "1cmvqr97vx22lw510z0k2nsy5xfgnz2lvchmx5sdxrqz54pz1wfq"
   },
   "stable": {
    "version": [
-    2,
-    12,
-    2
+    3,
+    1,
+    0
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "fa6f656f561ebb8377bfd904795aec90b4332bbd",
-   "sha256": "19nz77f2r49hqavz50ri222prhrd5890vhvc7jfazbascbcdjbqv"
+   "commit": "7fe39d5d03ccc75d2811445d25cbbb473b53de76",
+   "sha256": "1cmvqr97vx22lw510z0k2nsy5xfgnz2lvchmx5sdxrqz54pz1wfq"
   }
  },
  {
@@ -71670,15 +73211,15 @@
   "repo": "oer/org-re-reveal-ref",
   "unstable": {
    "version": [
-    20191022,
-    1426
+    20200624,
+    615
    ],
    "deps": [
     "org-re-reveal",
     "org-ref"
    ],
-   "commit": "1f56a1fc9a52f3815bb2115ebeca3c355688d722",
-   "sha256": "1xrswpkr7hgsb9pj991z4m0820f1nksfad184x0j7kir2xcx0myg"
+   "commit": "d60e7b000e863c60485f866f14f552506317f5b4",
+   "sha256": "03p3fhrllrx42dzx4v2lc4w6bpw5wxgncd8mivg3lqhkm8sb5qwj"
   },
   "stable": {
    "version": [
@@ -71770,8 +73311,8 @@
   "repo": "jkitchin/org-ref",
   "unstable": {
    "version": [
-    20200509,
-    1756
+    20200814,
+    1307
    ],
    "deps": [
     "dash",
@@ -71785,8 +73326,8 @@
     "pdf-tools",
     "s"
    ],
-   "commit": "4ce80644377f2369efb475bd58a57cf6950d8c41",
-   "sha256": "1j15agy19n0qc4a1750qpyz6wbkwlzasq0cnk16isyq60bszgxx4"
+   "commit": "831fe96c242bf178f0c55b93fd076dfb549f7791",
+   "sha256": "18r9n6vln65czjvk46r5lbr7d2rd2dpcqrzhs37jffz9qj93cpcc"
   },
   "stable": {
    "version": [
@@ -71841,14 +73382,14 @@
   "repo": "akirak/org-reverse-datetree",
   "unstable": {
    "version": [
-    20200325,
-    1003
+    20200812,
+    1340
    ],
    "deps": [
     "dash"
    ],
-   "commit": "afac070eb64cc24917c0ab0e14686258da4916f6",
-   "sha256": "1737r8c5kpb68yb2sixp88fm7fcmr7rvpkpywyxzwgqk30xpsjgq"
+   "commit": "e0b04fe953de43bec51dd867d5fe12498099f2b4",
+   "sha256": "0r5vkx5la5dvw8vbrmmbxfffxjmhjmzdfbwy6c31lr60p55m5m7d"
   },
   "stable": {
    "version": [
@@ -71910,36 +73451,36 @@
   "repo": "org-roam/org-roam",
   "unstable": {
    "version": [
-    20200516,
-    1203
+    20200818,
+    816
    ],
    "deps": [
     "dash",
     "emacsql",
-    "emacsql-sqlite",
+    "emacsql-sqlite3",
     "f",
     "org",
     "s"
    ],
-   "commit": "265182a698be6babcbb11718c2821c747b1cff52",
-   "sha256": "159zi0a392p1f8bzlxvfkwmx12xm749cia5m0b3paz23mvvhgzgi"
+   "commit": "c33867e6bc282ff0a69d4ef4a020db82604039bb",
+   "sha256": "0nklci9ixnkawa0ryffcnxvj7hm4vhklsv7whdynhr9w6aw6f7kq"
   },
   "stable": {
    "version": [
     1,
-    1,
-    0
+    2,
+    1
    ],
    "deps": [
     "dash",
     "emacsql",
-    "emacsql-sqlite",
+    "emacsql-sqlite3",
     "f",
     "org",
     "s"
    ],
-   "commit": "27a63b59b176f9d2048de69eb0f525f3c7be8f5f",
-   "sha256": "18ljww204kf1pbgrrnx7bn6177lw1bs3npywbx2k1b5j35c3j8xv"
+   "commit": "89e9121f26cf03bb7820d257cd9d9106916cd1e9",
+   "sha256": "10s7mcyshgj6yva4k1j086xm61k9zck3r586f1maar5b2z6hwvsa"
   }
  },
  {
@@ -71950,34 +73491,66 @@
   "repo": "org-roam/org-roam-bibtex",
   "unstable": {
    "version": [
-    20200516,
-    1742
+    20200803,
+    1209
    ],
    "deps": [
     "bibtex-completion",
-    "f",
+    "org-roam"
+   ],
+   "commit": "a92d9e6f523f449314e72911ba300192a42fc4dc",
+   "sha256": "1np029bspw14lcv8qzzgfyqimjz697wx2isasad06qbnhqbyc84m"
+  },
+  "stable": {
+   "version": [
+    0,
+    3,
+    0
+   ],
+   "deps": [
+    "bibtex-completion",
+    "org-roam"
+   ],
+   "commit": "ed148cee7d09538664fd22fc6bdf72adbe225617",
+   "sha256": "0a7jhpmjkb4d66zakgajs5anr4nrhs94l60x62s5qdxh5dn0m7gh"
+  }
+ },
+ {
+  "ename": "org-roam-server",
+  "commit": "40932819ae514a015f998a687d3cf651b30a79a1",
+  "sha256": "1bizzzmi1bx996n9g9rmkvpm229ipmpdacmh2jd3pvn8kx6252bm",
+  "fetcher": "github",
+  "repo": "org-roam/org-roam-server",
+  "unstable": {
+   "version": [
+    20200816,
+    819
+   ],
+   "deps": [
+    "dash",
     "org",
     "org-roam",
-    "s"
+    "s",
+    "simple-httpd"
    ],
-   "commit": "4d60c7824e028b4bcdbe5dd589e416ec682a63c8",
-   "sha256": "010vgf2dlafx3673dpcpy94273i65pffpn5rz5vqvh0k3wwxhqyn"
+   "commit": "5ea3d1403bd68af49ac0593a8cdff7514595d025",
+   "sha256": "0ajsid9p5znxqz7bq39jbf779s46ymmxwpfki4yxpa9308pwjwgc"
   },
   "stable": {
    "version": [
+    1,
     0,
-    2,
-    3
+    4
    ],
    "deps": [
-    "bibtex-completion",
-    "f",
+    "dash",
     "org",
     "org-roam",
-    "s"
+    "s",
+    "simple-httpd"
    ],
-   "commit": "02803c85cb312608172343c2d33bf9684d4bcefe",
-   "sha256": "0403ic5zc2sbrg3ryxk55n52ii4qzg1373h4j8bibfal2jv5i3ir"
+   "commit": "fe0364ef63928337f442c1d987d17cfe9619df2d",
+   "sha256": "0a5b625i7gv467xm8p92nvrh2wzgmldm8gzcbrc15al1gvnwpbqm"
   }
  },
  {
@@ -72006,8 +73579,8 @@
   "repo": "tyler-dodge/org-runbook",
   "unstable": {
    "version": [
-    20200504,
-    648
+    20200523,
+    2004
    ],
    "deps": [
     "dash",
@@ -72017,14 +73590,14 @@
     "s",
     "seq"
    ],
-   "commit": "fb4026df05b8e05c6aefd9483bec0e8f43d87d7e",
-   "sha256": "1qf0hpcscplpxd8xzf0yzkh87chbv3fgsfrr7bxh81g0akjiw03j"
+   "commit": "27dafe2a470d54a2c664164b5f9cbd2a1e5d921e",
+   "sha256": "1bl8f7azkr2657izhcwxy8w8jz7qs2wkk843q2bzzdzixqadlabs"
   },
   "stable": {
    "version": [
     1,
-    0,
-    6
+    1,
+    2
    ],
    "deps": [
     "dash",
@@ -72034,8 +73607,8 @@
     "s",
     "seq"
    ],
-   "commit": "53e8876a1587190ec4d103f9e94380f34797ce49",
-   "sha256": "1cyb956s3vshh2i4gd37m1cjxwq5s0xj55pwysgganwgxxw22c8n"
+   "commit": "27dafe2a470d54a2c664164b5f9cbd2a1e5d921e",
+   "sha256": "1bl8f7azkr2657izhcwxy8w8jz7qs2wkk843q2bzzdzixqadlabs"
   }
  },
  {
@@ -72084,11 +73657,11 @@
   "repo": "lordnik22/org-shoplist",
   "unstable": {
    "version": [
-    20190809,
-    2156
+    20200603,
+    1515
    ],
-   "commit": "9591a4747eb2e5cab53203a120f9b854c75e629b",
-   "sha256": "1b721xp6dn54x2j73ysnzw9qxd9fxpvnqiy2y0issmz6xmccgzac"
+   "commit": "e1e465ef815500140940c3a247d508b8f7dd09c5",
+   "sha256": "03a39q495ivxn0bc9wsdl61d2qlxs2w618d5f3lkny9567wcrxgx"
   }
  },
  {
@@ -72215,28 +73788,28 @@
   "repo": "akirak/org-starter",
   "unstable": {
    "version": [
-    20191224,
-    1909
+    20200812,
+    1341
    ],
    "deps": [
     "dash",
     "dash-functional"
    ],
-   "commit": "4c0f01a493a6dc9ab3fec50e0b458aa0d35464f9",
-   "sha256": "1c2vjxgscngg0k7qxr67ad0cws9yv88yhmdrn9qq4rxzc9fdjkzg"
+   "commit": "dc69138a42745aac79dec9e8de1b6aacde3a4511",
+   "sha256": "0vshlr6kzri4c86yd54g3xccgj6q0vbi920858lg5ij3si4a2z2x"
   },
   "stable": {
    "version": [
     0,
     2,
-    6
+    8
    ],
    "deps": [
     "dash",
     "dash-functional"
    ],
-   "commit": "7ea72ec530a340af61da215327a7fbb66a07ad2a",
-   "sha256": "0y1i4zpgmk6i2nj5l6dvdvqkp5a8cww8y4vcpps85blj586xgby3"
+   "commit": "64ed31f7c012f37219f306a4b232de2767c1911e",
+   "sha256": "04zdh6rw07zy6mf69hy754vp8p7kp56ny56dcnsns8ay7dd581zj"
   }
  },
  {
@@ -72254,21 +73827,21 @@
     "org-starter",
     "swiper"
    ],
-   "commit": "4c0f01a493a6dc9ab3fec50e0b458aa0d35464f9",
-   "sha256": "1c2vjxgscngg0k7qxr67ad0cws9yv88yhmdrn9qq4rxzc9fdjkzg"
+   "commit": "dc69138a42745aac79dec9e8de1b6aacde3a4511",
+   "sha256": "0vshlr6kzri4c86yd54g3xccgj6q0vbi920858lg5ij3si4a2z2x"
   },
   "stable": {
    "version": [
     0,
     2,
-    6
+    8
    ],
    "deps": [
     "org-starter",
     "swiper"
    ],
-   "commit": "7ea72ec530a340af61da215327a7fbb66a07ad2a",
-   "sha256": "0y1i4zpgmk6i2nj5l6dvdvqkp5a8cww8y4vcpps85blj586xgby3"
+   "commit": "64ed31f7c012f37219f306a4b232de2767c1911e",
+   "sha256": "04zdh6rw07zy6mf69hy754vp8p7kp56ny56dcnsns8ay7dd581zj"
   }
  },
  {
@@ -72279,20 +73852,20 @@
   "repo": "bastibe/org-static-blog",
   "unstable": {
    "version": [
-    20200508,
-    654
+    20200720,
+    715
    ],
-   "commit": "38a74456af863e07ab0b838c10830ce796886302",
-   "sha256": "1zmmv4izv5na0y29a55df1fa309xj25jdvhpwir879pfa15807bl"
+   "commit": "58019b6dd1ae1323b72d491e65bf9636a9278dd6",
+   "sha256": "00yhgxg87mfaflrkh0i905hr873yd03a7znw5hkrps43zxha9kb9"
   },
   "stable": {
    "version": [
     1,
-    3,
+    4,
     0
    ],
-   "commit": "afe250fc43cd1beffd7946b54692d712d9263ff2",
-   "sha256": "15iy3z8rglaqbx1fz14inh18ksgjsmq30b8hyv3lgjvcc9ssaiw0"
+   "commit": "58019b6dd1ae1323b72d491e65bf9636a9278dd6",
+   "sha256": "00yhgxg87mfaflrkh0i905hr873yd03a7znw5hkrps43zxha9kb9"
   }
  },
  {
@@ -72370,26 +73943,26 @@
   "repo": "integral-dw/org-superstar-mode",
   "unstable": {
    "version": [
-    20200416,
-    2354
+    20200818,
+    2257
    ],
    "deps": [
     "org"
    ],
-   "commit": "09ddc28383d363a4b353348a433e24535b4af0e3",
-   "sha256": "14w06v76xi4f6hpq6xzicrjjv0b802g5zc9as4mpimfy5gx2xpm0"
+   "commit": "94f35c20f8b84a63defa145e3e6ae735fa33dd5d",
+   "sha256": "1aklp6nk05ghpq7ybsbvn28wrygfwqvq58k1hjll97nbhd7h0gyb"
   },
   "stable": {
    "version": [
     1,
-    2,
-    1
+    4,
+    0
    ],
    "deps": [
     "org"
    ],
-   "commit": "09ddc28383d363a4b353348a433e24535b4af0e3",
-   "sha256": "14w06v76xi4f6hpq6xzicrjjv0b802g5zc9as4mpimfy5gx2xpm0"
+   "commit": "94f35c20f8b84a63defa145e3e6ae735fa33dd5d",
+   "sha256": "1aklp6nk05ghpq7ybsbvn28wrygfwqvq58k1hjll97nbhd7h0gyb"
   }
  },
  {
@@ -72513,6 +74086,43 @@
   }
  },
  {
+  "ename": "org-taskforecast",
+  "commit": "757def05a6104d8aab2dde9977762bdaef63241a",
+  "sha256": "1xbck5kdbfzjw55amjfxsjscmdj7yl3fyrfzgqpdicdih0fas7kz",
+  "fetcher": "github",
+  "repo": "HKey/org-taskforecast",
+  "unstable": {
+   "version": [
+    20200817,
+    748
+   ],
+   "deps": [
+    "dash",
+    "dash-functional",
+    "org-ql",
+    "s",
+    "transient"
+   ],
+   "commit": "fc160ce255a98da36c59da4d49a628dd7f742087",
+   "sha256": "063myyg4p2qwbvhb8kcgnz15xp48rv8zhcb86kxh51bm92ifwgb0"
+  },
+  "stable": {
+   "version": [
+    0,
+    3,
+    0
+   ],
+   "deps": [
+    "dash",
+    "dash-functional",
+    "org-ql",
+    "s"
+   ],
+   "commit": "036da7c14e0defb85917293f00a5fa9ac0977da4",
+   "sha256": "0lz6c1hq35qw44fllzsrzv9p4r4sjikciyzvi6nyf0fw189b0c4h"
+  }
+ },
+ {
   "ename": "org-tfl",
   "commit": "d9e97f2fee577c7e3fb42e4ca9d4f422c8907faf",
   "sha256": "1rqmmw0222vbxfn5wxq9ni2j813x92lpv99jjszqjvgnf2rkhjhf",
@@ -72582,15 +74192,15 @@
   "repo": "leoc/org-time-budgets",
   "unstable": {
    "version": [
-    20151111,
-    801
+    20200715,
+    1016
    ],
    "deps": [
     "alert",
     "cl-lib"
    ],
-   "commit": "1e81ea29af1ccc7b4ddb42fe4e3fbfc0adf891b0",
-   "sha256": "0cqk9q26qby2y1l6x39jfrdrw9x9419mlx2zhndmlb6gv3lv35f9"
+   "commit": "1d6bfc323013bbf725167842d9e097fad805de03",
+   "sha256": "0cny7ck4acj8s2l6hzp48mvz0v0yk7q91mmzxn8vgrggsb02qm5k"
   },
   "stable": {
    "version": [
@@ -72734,11 +74344,11 @@
   "repo": "takaxp/org-tree-slide",
   "unstable": {
    "version": [
-    20200114,
-    2334
+    20200611,
+    1143
    ],
-   "commit": "7bf09a02bd2d8f1ccfcb5209bfb18fbe02d1f44e",
-   "sha256": "1pzgb1z5k8zsbdqiaa7l94xlrncji1l09zqxvq62fyc0slxcf4ix"
+   "commit": "7126a4365072a32898f169ead8fb59265dabc605",
+   "sha256": "0lbqq3kzh8pd991c3s76parsl49ci5sclfq3sx0aqbcla0qzvh3y"
   },
   "stable": {
    "version": [
@@ -72850,11 +74460,11 @@
   "repo": "flexibeast/org-vcard",
   "unstable": {
    "version": [
-    20191130,
-    703
+    20200720,
+    638
    ],
-   "commit": "4f5d71225e946999f45ac9f96996705fee83df5a",
-   "sha256": "1w8miq52d2rlyslbss5173gnbv7rmkn2cicd9h272v6ybb585hcd"
+   "commit": "1ae97371b207dabfecaf6b4f7118abafe6cc5e2b",
+   "sha256": "0k9slz20gxcdpvpz8kgvvwff6cif74wybpqgg9x03wqqqda3f37v"
   },
   "stable": {
    "version": [
@@ -72874,11 +74484,11 @@
   "repo": "tesujimath/org-wc",
   "unstable": {
    "version": [
-    20180610,
-    253
+    20200731,
+    2244
    ],
-   "commit": "0716c1e8276f6953e139e357e97566e792c8be19",
-   "sha256": "0wx4z6y3wn6948bz2pgrpffd4jzwgplvjkh0rnra4gihrapg1bv8"
+   "commit": "dbbf794e4ec6c4080d945f43338185e34a4a582d",
+   "sha256": "0j58591jnj182hps1zc9an692hhnxinlpbw762l7xdc0sa5pjrgb"
   }
  },
  {
@@ -72963,20 +74573,30 @@
   "repo": "marcIhm/org-working-set",
   "unstable": {
    "version": [
-    20200516,
-    1341
+    20200819,
+    708
    ],
-   "commit": "c8c66a97e9adf84a4778f68e100259eaba67905b",
-   "sha256": "1h5ivbvzj46zkl3rgvcc0l50bn161g2q17miybm1mk70574q9fwn"
+   "deps": [
+    "dash",
+    "org",
+    "s"
+   ],
+   "commit": "d6f2d1ebcfe0b6ccb3a799f04ba6842ca86c9115",
+   "sha256": "1lkf497qpydvw5f7vi0v7yr43j9v03hys16qz6nsqkbizr54b5jh"
   },
   "stable": {
    "version": [
     2,
-    2,
-    1
+    3,
+    4
+   ],
+   "deps": [
+    "dash",
+    "org",
+    "s"
    ],
-   "commit": "c8c66a97e9adf84a4778f68e100259eaba67905b",
-   "sha256": "1h5ivbvzj46zkl3rgvcc0l50bn161g2q17miybm1mk70574q9fwn"
+   "commit": "d6f2d1ebcfe0b6ccb3a799f04ba6842ca86c9115",
+   "sha256": "1lkf497qpydvw5f7vi0v7yr43j9v03hys16qz6nsqkbizr54b5jh"
   }
  },
  {
@@ -73009,8 +74629,8 @@
   "repo": "org2blog/org2blog",
   "unstable": {
    "version": [
-    20200317,
-    2136
+    20200814,
+    543
    ],
    "deps": [
     "htmlize",
@@ -73018,14 +74638,14 @@
     "metaweblog",
     "xml-rpc"
    ],
-   "commit": "60eae1c8a7f82fbcc2660d785b33601daaa29f4b",
-   "sha256": "06ia4ba6c1yph259wr4y5sdkl1ry6pzbwhx807ia675rp0clp9hz"
+   "commit": "a56346bf1517118b2a960eaadbf138ae1695ddd1",
+   "sha256": "09iycpdj6dkvz5axfx85bkrrf5128ws7clg1jn9yli06rjsw36ba"
   },
   "stable": {
    "version": [
     1,
     1,
-    8
+    10
    ],
    "deps": [
     "htmlize",
@@ -73033,8 +74653,8 @@
     "metaweblog",
     "xml-rpc"
    ],
-   "commit": "0177fc4e7edd705db59b82c83a24db51dc405890",
-   "sha256": "1whl7kz4im2jmdz99336wfn152q0l3qwii4w7sn45rlsm2sijiw1"
+   "commit": "19aa8a17428d6ee42f54e464c26eeab17a6478ab",
+   "sha256": "198ahgxji0kh6ynygrrdvllj9fwcqrnma4sd8msj2aq18xij9glr"
   }
  },
  {
@@ -73099,32 +74719,28 @@
   "repo": "ardumont/org2jekyll",
   "unstable": {
    "version": [
-    20200516,
-    1727
+    20200622,
+    1519
    ],
    "deps": [
     "dash-functional",
-    "deferred",
-    "kv",
     "s"
    ],
-   "commit": "36d7789b7b3dfa2f4739a83692d322b601a0f4ea",
-   "sha256": "1j1cckvvghz9656bjkdxrc3gsfpz1wjvq3hlh6zblmnlbhhvbsan"
+   "commit": "571249c977e0340edb3ef3af45b7841b62ec8065",
+   "sha256": "1hjqawygbmvdlvzi908b2l4k7ca3g0dg32mpk7vld8xwi49hb1kp"
   },
   "stable": {
    "version": [
     0,
     2,
-    2
+    7
    ],
    "deps": [
     "dash-functional",
-    "deferred",
-    "kv",
     "s"
    ],
-   "commit": "7be4a71ce55f2fdc7fe7f6414f03d58f19d43410",
-   "sha256": "0cxhmbbznvv9d3nmqfn0ggr164fa6yjbfac9wqi3c58vm3zri00k"
+   "commit": "c05ba707190cfab20938afd1b5d4966511ca63b7",
+   "sha256": "03ddrc40qab285i7sj438kicaxxmixkk0b6d8512cn44f42zczyq"
   }
  },
  {
@@ -73179,11 +74795,11 @@
   "repo": "kostafey/organic-green-theme",
   "unstable": {
    "version": [
-    20200510,
-    1645
+    20200717,
+    1937
    ],
-   "commit": "2a88a70a5c2a57150c80d306f2475e351a59039c",
-   "sha256": "1y3g180q96vx7l8qs0l2jwjv2wbmk6aqzfm2p1h130h05lhgv31w"
+   "commit": "01fe614086e31e166d2a2f1d6b34e301f060458e",
+   "sha256": "1hsidgcyqsbm96gh0nfrdpnm4vq1sw8777d0zslsczr1fp51il6d"
   }
  },
  {
@@ -73194,30 +74810,28 @@
   "repo": "jcs-elpa/organize-imports-java",
   "unstable": {
    "version": [
-    20190922,
-    1520
+    20200717,
+    757
    ],
    "deps": [
-    "cl-lib",
     "f",
     "s"
    ],
-   "commit": "8299bdfd65105feb8d7fb85d2951954d73671cd2",
-   "sha256": "023gkvhaxx54gcfz6m3pc0yhygf2y43391r1dghivk8420savdjg"
+   "commit": "c431b338d34c94345217b2b904d9c6f331d4015c",
+   "sha256": "1dqvx49lcfi5472aq17nd7y7v7d2ljxcmy5zhks2mfbhhzgdp8n6"
   },
   "stable": {
    "version": [
     0,
     1,
-    3
+    4
    ],
    "deps": [
-    "cl-lib",
     "f",
     "s"
    ],
-   "commit": "de094d6d56c85aa9820c77055b54287ae6b46d20",
-   "sha256": "0hgdgz1jx292dfxcm1av4v9v6400jpnyp1j21d4fzfi0wj2srfrr"
+   "commit": "c431b338d34c94345217b2b904d9c6f331d4015c",
+   "sha256": "1dqvx49lcfi5472aq17nd7y7v7d2ljxcmy5zhks2mfbhhzgdp8n6"
   }
  },
  {
@@ -73260,29 +74874,64 @@
   "repo": "magit/orgit",
   "unstable": {
    "version": [
-    20200417,
-    1720
+    20200714,
+    1943
    ],
    "deps": [
     "magit",
     "org"
    ],
-   "commit": "e147f055772cc934fe1f1d8619059badeb647c93",
-   "sha256": "1q3v22drqbjzzr6d0zdwczz1rq37iyh78k2nk1wirbs5z4ixfyx8"
+   "commit": "ac9b1a42863a864fde9d225890ef5464bffdc646",
+   "sha256": "08amzcvw483dpfq5r34ysn84wzd538qk0jblc94vgcaidspx6481"
   },
   "stable": {
    "version": [
     1,
     6,
-    0
+    3
    ],
    "deps": [
-    "dash",
     "magit",
     "org"
    ],
-   "commit": "e7cddf39e301c87c36c7de13e429dee74874d5c8",
-   "sha256": "00s3a8i221didw8phlbvdvihj9pxkq9k9j9vh1g1mzd7cz58dm07"
+   "commit": "ac9b1a42863a864fde9d225890ef5464bffdc646",
+   "sha256": "08amzcvw483dpfq5r34ysn84wzd538qk0jblc94vgcaidspx6481"
+  }
+ },
+ {
+  "ename": "orgit-forge",
+  "commit": "d180f7bb9d937d574726326b788f3721266e31a8",
+  "sha256": "1v1a8cz2r84f9y1arzlhpff2fkqyx598pd1lqf81fr6l6l2y9j5n",
+  "fetcher": "github",
+  "repo": "magit/orgit-forge",
+  "unstable": {
+   "version": [
+    20200621,
+    2144
+   ],
+   "deps": [
+    "forge",
+    "magit",
+    "org",
+    "orgit"
+   ],
+   "commit": "63a19d1df1434e583aac1329ba4dcfa2ee59d7c1",
+   "sha256": "1vd7wnas53z0985if22sv0wpww2dp0g8b0z9hwlzdhlcrsjay5fz"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "deps": [
+    "forge",
+    "magit",
+    "org",
+    "orgit"
+   ],
+   "commit": "63a19d1df1434e583aac1329ba4dcfa2ee59d7c1",
+   "sha256": "1vd7wnas53z0985if22sv0wpww2dp0g8b0z9hwlzdhlcrsjay5fz"
   }
  },
  {
@@ -73293,28 +74942,28 @@
   "repo": "tarsius/orglink",
   "unstable": {
    "version": [
-    20200413,
-    2124
+    20200719,
+    917
    ],
    "deps": [
-    "dash",
-    "org"
+    "org",
+    "seq"
    ],
-   "commit": "a5f5da06174d22dc21bbac167a8c2361fa84bf2b",
-   "sha256": "0sxali4vnqzk6mj0m7d82yr2ixvxxj5lzmxffyznpa7j6yndi2mm"
+   "commit": "2f1939488204f67d2a427f224b45596361b402b1",
+   "sha256": "0ipy1p2cr5i0465hchqazmgn9jrgwzbyrb3prfgkl7z2m1gd7fcg"
   },
   "stable": {
    "version": [
     1,
     1,
-    4
+    6
    ],
    "deps": [
-    "dash",
-    "org"
+    "org",
+    "seq"
    ],
-   "commit": "988ad54db45708b0fe835829d512eb6d5f6cf161",
-   "sha256": "1mswfbwz7fm9lriab365g7hq8hn85gxcsg8y41by9j0n8hb3hj5q"
+   "commit": "2f1939488204f67d2a427f224b45596361b402b1",
+   "sha256": "0ipy1p2cr5i0465hchqazmgn9jrgwzbyrb3prfgkl7z2m1gd7fcg"
   }
  },
  {
@@ -73364,11 +75013,11 @@
   "repo": "tbanel/orgaggregate",
   "unstable": {
    "version": [
-    20200516,
-    1344
+    20200708,
+    2131
    ],
-   "commit": "7426df13512f5eee921c26aa68cfc6e32e3061fc",
-   "sha256": "18n2xzwpqq8159qwqy7hy0b93a5qxdb5rjh0ls4jk8lmahk5jrqk"
+   "commit": "99c6bc8c9b72dc9ce886a09540ed24ec83bcc056",
+   "sha256": "03q02cxz76wnx20rhwqiysxnskzs7caw428ij3jj4nsmjkhxdfv0"
   }
  },
  {
@@ -73394,14 +75043,14 @@
   "repo": "tbanel/orgtbljoin",
   "unstable": {
    "version": [
-    20200512,
-    721
+    20200708,
+    2127
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "5bfe2f6d53798d0fe071f9990e03d7428623e4a7",
-   "sha256": "16xcps2qlzh5z8c20sl0cnc0mlj8153vk6j1dnfd6l3a6kni88af"
+   "commit": "1aa352a09a2c543352fceb32a505c44e080efcb3",
+   "sha256": "0aczwlssnhn1xpgk3s7l2smrxmhb8af6gg9xjdsfysss4ybbcgy6"
   }
  },
  {
@@ -73449,6 +75098,35 @@
   }
  },
  {
+  "ename": "origami-predef",
+  "commit": "0cda4d6554f8c99928973a0bf718766b7135ffeb",
+  "sha256": "1wr0fs0a2p43yr9fsbdm52z767rbj4j1w3m25w299zf71h263pc9",
+  "fetcher": "github",
+  "repo": "alvarogonzalezsotillo/origami-predef",
+  "unstable": {
+   "version": [
+    20200615,
+    1044
+   ],
+   "deps": [
+    "origami"
+   ],
+   "commit": "edcba971ba52a14f69a436ad47888827d7927982",
+   "sha256": "1r3dbnjwmg7y1zsimvqw3bi4168ikwdd5fqkjqd6gm905w32hwc0"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "deps": [
+    "origami"
+   ],
+   "commit": "edcba971ba52a14f69a436ad47888827d7927982",
+   "sha256": "1r3dbnjwmg7y1zsimvqw3bi4168ikwdd5fqkjqd6gm905w32hwc0"
+  }
+ },
+ {
   "ename": "ormolu",
   "commit": "ab315f96d9b8d01ffc3b4748d01c70861daf8c1a",
   "sha256": "0d6pgmp1iy3yylvx9bbdia5p0c7m59m8hca55lkxb7g6ck2c628y",
@@ -73467,6 +75145,39 @@
   }
  },
  {
+  "ename": "osa",
+  "commit": "df18def95ae792387da2e21f1050cfc25af772fb",
+  "sha256": "1knzkwvdq9wwy2x7kgl1nf0p564247l2y82ms77r0j5vfqhsfd9s",
+  "fetcher": "github",
+  "repo": "atomontage/osa",
+  "unstable": {
+   "version": [
+    20200522,
+    2103
+   ],
+   "commit": "615ca9eef4131a23d9971691fa0d0f20fe59d01b",
+   "sha256": "1p651fqivyfyqjs6zz9p4n19r9d23xiswhyjz7r93llmsqs702qi"
+  }
+ },
+ {
+  "ename": "osa-chrome",
+  "commit": "b9c83566892095706033869da370a12e8eccc590",
+  "sha256": "1spihfihcd5iblsl1xp19ayk65mn9ik32jlqn2pg15jwhyfmvyfs",
+  "fetcher": "github",
+  "repo": "atomontage/osa-chrome",
+  "unstable": {
+   "version": [
+    20200627,
+    1344
+   ],
+   "deps": [
+    "osa"
+   ],
+   "commit": "07894b9cb40171702b4c89b75542af1f1ac1403c",
+   "sha256": "0brhn6qlminzamwl90ynaik03xvaw3rlkdccdyxfpckjd5npa9wr"
+  }
+ },
+ {
   "ename": "osx-browse",
   "commit": "081aa3e1d50c2c9e5a9b9ce0716258a93279f605",
   "sha256": "06rfzq2hxhzg6jh2zs28r7ffxwlq40nz954j13ly8403c7rmbrfm",
@@ -73729,20 +75440,20 @@
   "repo": "tarsius/outline-minor-faces",
   "unstable": {
    "version": [
-    20200429,
-    2055
+    20200720,
+    1954
    ],
-   "commit": "b616b0d90a7c3d7b87bd164f2d213a5e009c39eb",
-   "sha256": "1b2mjzym8x42rz3qvmr0va21naw3aycvc2blfxx91i7pwpp8n3qg"
+   "commit": "cb9c529bb992c6f60b054caf4e993b03c7b3ba9e",
+   "sha256": "1s76zfzpwhcql2c4kr5maxc53vznqw6p7hx9n8nihxjgz2rywcas"
   },
   "stable": {
    "version": [
     0,
-    1,
-    3
+    2,
+    1
    ],
-   "commit": "d6247aaec44f60a9bd161c1d56960f80ab314a49",
-   "sha256": "0mscnbbv6cap818zhzz3ig6ychrw0zw84zyl2g1rksir0qj4hznf"
+   "commit": "cb9c529bb992c6f60b054caf4e993b03c7b3ba9e",
+   "sha256": "1s76zfzpwhcql2c4kr5maxc53vznqw6p7hx9n8nihxjgz2rywcas"
   }
  },
  {
@@ -73975,11 +75686,11 @@
   "repo": "fishyfriend/owcmd",
   "unstable": {
    "version": [
-    20200427,
-    633
+    20200517,
+    2039
    ],
-   "commit": "cdd2280f34328f65fe470046c928b0018914584a",
-   "sha256": "15601vbng2vn45zcdp51vkgycfpcfkaw0xidrq13rg5544x9h7lz"
+   "commit": "05fb8f8f81838b5888fdec8b3947096dd2222e61",
+   "sha256": "0y9ldprxhp6nq8m5bxmhw4iq4n78wvdx2jmr5w9wbd0znvi4cbfz"
   }
  },
  {
@@ -74064,8 +75775,8 @@
     "htmlize",
     "org"
    ],
-   "commit": "bd36f9fb4e3b1b9e8686b993b02ccd780ff75a96",
-   "sha256": "03wj3gx09lbfmsanfhqfbzz61zaszia1mhfvlywhygknpagxr3lp"
+   "commit": "f5eac28734ea33d0b7a3dbe10b777907a91cf9f9",
+   "sha256": "05ndpkqr4kh2942ygjsa1w53056d60qvl0gmp30dxmzc57v0wb2x"
   }
  },
  {
@@ -74175,14 +75886,14 @@
   "repo": "kaushalmodi/ox-hugo",
   "unstable": {
    "version": [
-    20200501,
-    1317
+    20200722,
+    1939
    ],
    "deps": [
     "org"
    ],
-   "commit": "8f36181977377383cb54803651d93b24e370122d",
-   "sha256": "1rxkbkgvylwnh5n6zc6hiqa9zhxwc8j1if7mxribw44xrg3150a1"
+   "commit": "75b849e9561c4a6022babf6eaf0e037310ded7c1",
+   "sha256": "1xsxljf99h2pyvpp9gvma6g42q1n2xmhnwvpmciwj5rajw5xqc5v"
   },
   "stable": {
    "version": [
@@ -74198,10 +75909,10 @@
  },
  {
   "ename": "ox-impress-js",
-  "commit": "e5e79b4b897daca80f26440107abaddf0a480db9",
-  "sha256": "0p0cc51lmxgl0xv951ybdg5n8gbzv8qf0chfgigijizzjypxc21l",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "1n7g5ykn95565z7kp83pqvm4y8r4p1jmwh0g7pl3kbw48y1521vc",
   "fetcher": "github",
-  "repo": "kinjo/org-impress-js.el",
+  "repo": "nullpofy/org-impress-js.el",
   "unstable": {
    "version": [
     20150412,
@@ -74271,14 +75982,14 @@
   "repo": "stig/ox-jira.el",
   "unstable": {
    "version": [
-    20200218,
-    2301
+    20200616,
+    2310
    ],
    "deps": [
     "org"
    ],
-   "commit": "00767df8ba024eb1ef09fe16c3aed30d729d6add",
-   "sha256": "0fbic43vzp0dp8wbx12cq22ca192v2jl2w131xcqmbhbww6j5xv2"
+   "commit": "e9a47ef51862f11a5c006cf9e8c5f4ec5517aced",
+   "sha256": "1ws3myl2z6vv3idq28m8q97zlrmsfg5z3i8y3adsbm56ga9jqvdj"
   }
  },
  {
@@ -74341,6 +76052,25 @@
   }
  },
  {
+  "ename": "ox-leanpub",
+  "commit": "20e1ea346ac6d912e3fbb597b7c65c98a6785132",
+  "sha256": "10nz3dy7dmy8p70fsglbc0gdfhhvr286wby5yccjfaacjkg77ifj",
+  "fetcher": "gitlab",
+  "repo": "zzamboni/ox-leanpub",
+  "unstable": {
+   "version": [
+    20200818,
+    1116
+   ],
+   "deps": [
+    "org",
+    "ox-gfm"
+   ],
+   "commit": "8c8d026aa3a31cb6dcd2530ac5902e551b161343",
+   "sha256": "0i88bzcczvhsylcbk7nwx19gn6ydiw8vrgwl2p5njm10vngrjlny"
+  }
+ },
+ {
   "ename": "ox-mdx-deck",
   "commit": "13d1a86dfe682f65daf529f9f62dd494fd860be9",
   "sha256": "1k41sbqcfrj485ps11f6xdb1kxp7kh22k0zhn9vrjb5mxwdilfyl",
@@ -74471,14 +76201,14 @@
   "repo": "0x60df/ox-qmd",
   "unstable": {
    "version": [
-    20170402,
-    1657
+    20200813,
+    408
    ],
    "deps": [
     "org"
    ],
-   "commit": "3a24c7a0b3ec80e494b977e14a3dfb94c9f1d8ec",
-   "sha256": "030nay81c49ings96akzzy108a6agg91rvpmg0pf05qmjysfysmf"
+   "commit": "8c3d8ce2a21044fc85e5e4e06be0220900d7ba4f",
+   "sha256": "1j6zmjy3s2l2wj500q9i75xd3hf8wlh04ycmmad45swrkgp70f2s"
   }
  },
  {
@@ -74489,14 +76219,14 @@
   "repo": "yjwen/org-reveal",
   "unstable": {
    "version": [
-    20200429,
-    1533
+    20200802,
+    710
    ],
    "deps": [
     "org"
    ],
-   "commit": "e8b2801ab2210187ab1cfacad09bb07e4b61ca56",
-   "sha256": "0xa34y0v6z78gpida59jc3gzng68n0has5dnkccv4vdxi4yb6ii9"
+   "commit": "553e1a9d678e74c2646e4c19bd9f6c08d8a00486",
+   "sha256": "18khlffdmg88pd50vwg00vz143ysqhkdkvva9h4bkw618inz70wq"
   }
  },
  {
@@ -74525,14 +76255,14 @@
   "repo": "msnoigrs/ox-rst",
   "unstable": {
    "version": [
-    20191013,
-    551
+    20200815,
+    1511
    ],
    "deps": [
     "org"
    ],
-   "commit": "9158bfd18096c559e0a225ae62ab683f1c98a547",
-   "sha256": "11v1h45ipjh95ksk6cdgp0azfmb7y3i8hdd46m7psmda08x8kqm5"
+   "commit": "99fa790da55b57a3f2e9aa187493ba434a64250e",
+   "sha256": "0dxadzbha2fvg42jh4ng8hjb582mv7avlzmpxlzf32qxf6x8r638"
   }
  },
  {
@@ -74683,20 +76413,20 @@
   "repo": "marsmining/ox-twbs",
   "unstable": {
    "version": [
-    20191216,
-    1011
+    20200628,
+    1949
    ],
-   "commit": "cf56accf8633f72c741fff19a49c24cc8bdd8974",
-   "sha256": "12w58nvpzn0fbica3m679n08hczzikqr1xi1n4k7a6h1l60qykl7"
+   "commit": "e8a27dc78b7be494d9918f26db7a3bbb6b45020b",
+   "sha256": "0nffy7ivs8fw0dj3s66hbsby0riz5wrv7xzm8g9mrfvhki938pqa"
   },
   "stable": {
    "version": [
     1,
     1,
-    2
+    4
    ],
-   "commit": "cf56accf8633f72c741fff19a49c24cc8bdd8974",
-   "sha256": "12w58nvpzn0fbica3m679n08hczzikqr1xi1n4k7a6h1l60qykl7"
+   "commit": "e8a27dc78b7be494d9918f26db7a3bbb6b45020b",
+   "sha256": "0nffy7ivs8fw0dj3s66hbsby0riz5wrv7xzm8g9mrfvhki938pqa"
   }
  },
  {
@@ -74877,14 +76607,14 @@
   "repo": "melpa/package-build",
   "unstable": {
    "version": [
-    20200426,
-    2253
+    20200601,
+    1939
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "5fe5156491145c667286cb92be4191a348eaa31e",
-   "sha256": "1r9ir8jqfi2sqjjx9yxs4phxrpfw8x35nm58xfrqsjw158dspzai"
+   "commit": "4cb0f98a21729f9ef0189f095384555c9d2b6fe4",
+   "sha256": "0ij6p7i5x0fs0yn8zxcx7gf9ldanflh7mj7mblr8snpgbzx3jwnz"
   },
   "stable": {
    "version": [
@@ -74921,27 +76651,27 @@
   "repo": "purcell/package-lint",
   "unstable": {
    "version": [
-    20200419,
-    406
+    20200816,
+    24
    ],
    "deps": [
     "cl-lib",
     "let-alist"
    ],
-   "commit": "495da67557d35acb146ec1f38f7576126aec6bfc",
-   "sha256": "0nb83rs2hb097pvv63pkvdlyqx136mrcbzdjkyskwg3rd3rwvimq"
+   "commit": "c4b16a90196d6d83d6ba668923c1ce725e13a5d6",
+   "sha256": "0kz8snjl0802ypxzag2n7552f6ssmj0hxx4lkal4v421pr2cqka6"
   },
   "stable": {
    "version": [
     0,
-    12
+    13
    ],
    "deps": [
     "cl-lib",
     "let-alist"
    ],
-   "commit": "f86705d0d4ed81ea8ea14e00fe59714f11f7c2ba",
-   "sha256": "00inrfla7f824yh10rxlr0xq1cmyqigppsrfspd637d58239l6sw"
+   "commit": "9e28a5cd08e94db0ba4fb8847fa970c98316facc",
+   "sha256": "03pim9ijqmjqyv0qlkap5jw47iv9qsw1d7s2p9vrqjnpf4jxcq70"
   }
  },
  {
@@ -74958,19 +76688,19 @@
    "deps": [
     "package-lint"
    ],
-   "commit": "495da67557d35acb146ec1f38f7576126aec6bfc",
-   "sha256": "0nb83rs2hb097pvv63pkvdlyqx136mrcbzdjkyskwg3rd3rwvimq"
+   "commit": "c4b16a90196d6d83d6ba668923c1ce725e13a5d6",
+   "sha256": "0kz8snjl0802ypxzag2n7552f6ssmj0hxx4lkal4v421pr2cqka6"
   },
   "stable": {
    "version": [
     0,
-    12
+    13
    ],
    "deps": [
     "package-lint"
    ],
-   "commit": "f86705d0d4ed81ea8ea14e00fe59714f11f7c2ba",
-   "sha256": "00inrfla7f824yh10rxlr0xq1cmyqigppsrfspd637d58239l6sw"
+   "commit": "9e28a5cd08e94db0ba4fb8847fa970c98316facc",
+   "sha256": "03pim9ijqmjqyv0qlkap5jw47iv9qsw1d7s2p9vrqjnpf4jxcq70"
   }
  },
  {
@@ -75128,8 +76858,8 @@
     20200305,
     244
    ],
-   "commit": "314b397910b3d16bb7cbcc25098696348e678080",
-   "sha256": "106w2n01i9d6z2r43lwwrm7hlppi9bkf8g8nsqd91f0f06921plw"
+   "commit": "f8c4cd7fc67638ae4113551dcffdf87fcd252d9b",
+   "sha256": "1jh7mdry3ysgl9dvrrbx7b9f5dh4bm6gccibpcdnm9pgpfj2bm29"
   },
   "stable": {
    "version": [
@@ -75181,11 +76911,11 @@
   "repo": "danielsz/Palimpsest",
   "unstable": {
    "version": [
-    20200211,
-    641
+    20200804,
+    2308
    ],
-   "commit": "389ec5b4c5067fa903c543b7fe1d804f30b6ced5",
-   "sha256": "1yki1sl2m7fj4m52gmb768h2qkv0j93lmd72jv21n20bnzvjp73v"
+   "commit": "f474b3ad706373d9953abdc401d683a2a023d28e",
+   "sha256": "0wzxl1zcbm3svspjpjzvx92is1k9sz7g0a99r8q066j2364la0zh"
   }
  },
  {
@@ -75252,11 +76982,11 @@
   "repo": "sebasmonia/panda",
   "unstable": {
    "version": [
-    20200424,
-    2206
+    20200715,
+    338
    ],
-   "commit": "bdd9f80283d8ae4a69f8789e5f18b1560b94fe43",
-   "sha256": "1ld4igmmjk7p7dxm0mnfks3k0cqpqjxrvlmjdi0m7w11ba8dsah9"
+   "commit": "6508ac3228975c39d10a1caa70b9ce34ff3ed21d",
+   "sha256": "019nigy5yh1qrzw0agp2kgjfpfm503fgkj07c9m2xqs9hww781x1"
   }
  },
  {
@@ -75440,14 +77170,14 @@
   "repo": "ajgrf/parchment",
   "unstable": {
    "version": [
-    20200514,
-    2047
+    20200812,
+    1259
    ],
    "deps": [
     "autothemer"
    ],
-   "commit": "4fa14adbc043497fc942568fdb78505ca549e5b7",
-   "sha256": "1ply18yzdf1lxyia8knn6fk8wb4yzwicgdiscr2z87bpk8p5d2pb"
+   "commit": "271ab4b7d023d730e3d684a1505cc77e2d0cc14a",
+   "sha256": "138n4fs33cv2ly89cvs7lkh372kghldhw8pw18zsi39qfvggw6wm"
   },
   "stable": {
    "version": [
@@ -75470,8 +77200,8 @@
     20191121,
     2328
    ],
-   "commit": "814999bb320e6d5aaa9c8ff663b1933157129571",
-   "sha256": "0jb3qwx8bxr7x17cgqbd6v53634i9lmrcnqn847bnnlsvy0j094x"
+   "commit": "8330a41e8188fe18d3fa805bb9aa529f015318e8",
+   "sha256": "10zm5nfs8sx1cmjifjcy6xj3285hx1936xc3kbf6ndzpcqgb9yd5"
   },
   "stable": {
    "version": [
@@ -75623,6 +77353,30 @@
   }
  },
  {
+  "ename": "parinfer-rust-mode",
+  "commit": "b35f28995db0c21ecaadd5504a10aa2ee5ac2070",
+  "sha256": "06003hh19k1087s8lvsbl04as2yph1zw9qr844s4rbyi838d4pc1",
+  "fetcher": "github",
+  "repo": "justinbarclay/parinfer-rust-mode",
+  "unstable": {
+   "version": [
+    20200802,
+    2026
+   ],
+   "commit": "9e2e91cf1697582a396a5365f24d74634acfc744",
+   "sha256": "1ii73zlpdvi5fxp6ajyn8h7xvxgc5iz58zr5g4vk0flm1vw6v5kn"
+  },
+  "stable": {
+   "version": [
+    0,
+    8,
+    1
+   ],
+   "commit": "9e2e91cf1697582a396a5365f24d74634acfc744",
+   "sha256": "1ii73zlpdvi5fxp6ajyn8h7xvxgc5iz58zr5g4vk0flm1vw6v5kn"
+  }
+ },
+ {
   "ename": "parrot",
   "commit": "b1b393ffb9b7691e8fc99bee5fc676463038a68d",
   "sha256": "0m67b80vc3qivcxs4w6fpzdg6h9d8s75251rlhnbc0xp7271zgnk",
@@ -75669,28 +77423,26 @@
   "repo": "jcs-elpa/parse-it",
   "unstable": {
    "version": [
-    20191209,
-    549
+    20200720,
+    1047
    ],
    "deps": [
-    "cl-lib",
     "s"
    ],
-   "commit": "ff9f9049ac039473f0ba5d070ac0e6d89cfbf851",
-   "sha256": "05ckrhkxffzcz1igqwznbkxc1hpidvsnwv6cxp8n4q6kmniagx4i"
+   "commit": "abf2b7528ea2ec5c45f99664a6ab9509ccd954f3",
+   "sha256": "1v4a07gnaccqnl1r0r8yhw6ka6f8nh0p8j0lr562ik6cbfljf04a"
   },
   "stable": {
    "version": [
     0,
     1,
-    7
+    8
    ],
    "deps": [
-    "cl-lib",
     "s"
    ],
-   "commit": "318cb29153c6ae0032ddceb69bb8c1f2a7df5ef6",
-   "sha256": "0f2fjb0a0yj62dy3j820fgxlpg2gsv1awaswwrb2rv7mp44drr4f"
+   "commit": "abf2b7528ea2ec5c45f99664a6ab9509ccd954f3",
+   "sha256": "1v4a07gnaccqnl1r0r8yhw6ka6f8nh0p8j0lr562ik6cbfljf04a"
   }
  },
  {
@@ -75933,8 +77685,8 @@
     "s",
     "with-editor"
    ],
-   "commit": "07b169ec32ad6961ed8625a0b932a663abcb01d2",
-   "sha256": "1dl3bck16zwhpspjrms11dknqgadnmpjqhcplkvv3v4f7vbnij6v"
+   "commit": "06f499994071bb6131244218b25d637103afe1d5",
+   "sha256": "05w0jkl7m55h30szvgknbwg7xayilk4bh3nf70hrsy3czisxmccx"
   },
   "stable": {
    "version": [
@@ -76569,29 +78321,6 @@
   }
  },
  {
-  "ename": "peg",
-  "commit": "9b9b55a02e903ae7e75f8b636fdb1cf907c5db7c",
-  "sha256": "0nxy9xn99myz0p36m4jflfj48qxhhn1sspbfx8d90030xg3cc2gm",
-  "fetcher": "github",
-  "repo": "ellerh/peg.el",
-  "unstable": {
-   "version": [
-    20150708,
-    641
-   ],
-   "commit": "081efeca91d790c7fbc90871ac22c40935f4833b",
-   "sha256": "0kjz7ch4bn0m4v9zgqyqcrsasnqc5c5drv2hp22j7rnbb7ny0q3n"
-  },
-  "stable": {
-   "version": [
-    0,
-    6
-   ],
-   "commit": "081efeca91d790c7fbc90871ac22c40935f4833b",
-   "sha256": "0kjz7ch4bn0m4v9zgqyqcrsasnqc5c5drv2hp22j7rnbb7ny0q3n"
-  }
- },
- {
   "ename": "pelican-mode",
   "commit": "aede5994c2e76c7fd860661c1e3252fb741f9228",
   "sha256": "0z6w5j3qwb58pndqbmpsvy1l77w9jv90bss9qq9hicil8nlk4pvi",
@@ -76639,14 +78368,11 @@
   "url": "https://hg.serna.eu/emacs/per-buffer-theme",
   "unstable": {
    "version": [
-    20191101,
-    2333
-   ],
-   "deps": [
-    "cl-lib"
+    20200527,
+    1256
    ],
-   "commit": "7df4d2f4be64dbcf0bf10a2b9ac3db858fbcd9c8",
-   "sha256": "04s14x3qi5aa18bfcr3zjbb109nm2pgwgnl36g7fw2crj8mz03v4"
+   "commit": "f29b5c57198ebfedbf142f95129190c6c00b4822",
+   "sha256": "0b39m8zmy4yfj3z93q3gqqqhhmyb10kd76fl7347pm6xgq4sl1g0"
   }
  },
  {
@@ -76793,11 +78519,11 @@
   "repo": "Bad-ptr/persp-mode.el",
   "unstable": {
    "version": [
-    20200222,
-    1106
+    20200617,
+    2154
    ],
-   "commit": "391a7dc248c9c04b7ad424c696bdff578e14dd2c",
-   "sha256": "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"
+   "commit": "14325c11f7a347717d7c3780f29b24a38c68fbfc",
+   "sha256": "1kb5v7pl2vhx6zdwf9kip38qjk8nkd9xpgdy74q8p3c56ap9lg6g"
   },
   "stable": {
    "version": [
@@ -76871,25 +78597,25 @@
   "repo": "nex3/perspective-el",
   "unstable": {
    "version": [
-    20200513,
-    1416
+    20200814,
+    554
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "1fc13646623f42e1d70cf1f651c4b154e12070ca",
-   "sha256": "1gdacw1gkng1dhm12lhfssmac0fijsh3wpbvcmsv2jz3gpnjin1g"
+   "commit": "74e811ccbada09dd9a3d90b983e78d146542121b",
+   "sha256": "1xfcm69nd6f9chwlqfz5vd8nnyl5mwharxjrn1m515568dqrk62x"
   },
   "stable": {
    "version": [
     2,
-    8
+    10
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "1fc13646623f42e1d70cf1f651c4b154e12070ca",
-   "sha256": "1gdacw1gkng1dhm12lhfssmac0fijsh3wpbvcmsv2jz3gpnjin1g"
+   "commit": "74e811ccbada09dd9a3d90b983e78d146542121b",
+   "sha256": "1xfcm69nd6f9chwlqfz5vd8nnyl5mwharxjrn1m515568dqrk62x"
   }
  },
  {
@@ -76929,8 +78655,17 @@
     20200321,
     504
    ],
-   "commit": "4ae88a9c81d499bbe99978ff0216b645fed70023",
-   "sha256": "1zc7dmgp3s9q33wkvw6i7zzlcaa65ixx3hxb78m62lk2a7fzb3ih"
+   "commit": "43447a2c70f98edd1139005e32f437d3f142442b",
+   "sha256": "1ccpb1jbynlqqzhsm3h7xk2s7n9nbpnnxmixz77kxskdxj5as79a"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "commit": "43447a2c70f98edd1139005e32f437d3f142442b",
+   "sha256": "1ccpb1jbynlqqzhsm3h7xk2s7n9nbpnnxmixz77kxskdxj5as79a"
   }
  },
  {
@@ -77039,15 +78774,15 @@
   "repo": "emacs-php/phan.el",
   "unstable": {
    "version": [
-    20191125,
-    1408
+    20200805,
+    356
    ],
    "deps": [
     "composer",
     "f"
    ],
-   "commit": "2a6e1b66c2aad25fddb8b4f706a28a1aafaaa4c7",
-   "sha256": "1ivkkmjg9drp22l5hvira5m0ialca8kzw6pzj01wm4ykqsaajnlf"
+   "commit": "b7d523630bb072c4dbcfa9995dc734b25b72a69f",
+   "sha256": "0xif2hmlfcnhf716964zmzzldxsyhmpp2y40i9l1cxlcliszwscv"
   },
   "stable": {
    "version": [
@@ -77071,14 +78806,14 @@
   "repo": "zk-phi/phi-autopair",
   "unstable": {
    "version": [
-    20191220,
-    311
+    20200816,
+    535
    ],
    "deps": [
     "paredit"
    ],
-   "commit": "5685b9541c4c9d4cc8a892743fdf245aceea1682",
-   "sha256": "16kib35s7pffcs8kiljydbf5z1qq5l2d04dqqcnbbi0539y979n5"
+   "commit": "3e78793f9c480adf79b12d441fae5571e97b9e5f",
+   "sha256": "003dnixrnn7qcm25dbibc4rc8yrqsj9jci9rxp9l7ci6ya1bi0i2"
   }
  },
  {
@@ -77089,14 +78824,14 @@
   "repo": "zk-phi/phi-grep",
   "unstable": {
    "version": [
-    20190920,
-    908
+    20200816,
+    1027
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "06b740e3fb20074be9bae87530f5616a122c3aca",
-   "sha256": "0lwqlz6jp44dq7yhj5yvfrhnjlxlihkpqjil6d2ma20b2946n9ny"
+   "commit": "d9dbf69dcf0e06944dcfb89375b09d0d2b0ef4ee",
+   "sha256": "1lgixvg5668kb1y8a2xxm1nlbppj5a8sswjrcxasqnxmrif6lkls"
   }
  },
  {
@@ -77107,11 +78842,11 @@
   "repo": "zk-phi/phi-rectangle",
   "unstable": {
    "version": [
-    20151208,
-    654
+    20200816,
+    650
    ],
-   "commit": "0c12716afc71d803d1f39417469521dc465762d9",
-   "sha256": "0d2c579rg8wdfmn94nzaix9332jch4wlr939jszls330s38d0iv4"
+   "commit": "4ea8b40a614c1cc9087b9c0bd924a2d9d6cc0a83",
+   "sha256": "1ajjdpx4xbgig11380lyy10gqfmp23k5zwb77pwdl1rhapsdpjp8"
   }
  },
  {
@@ -77144,14 +78879,14 @@
   "repo": "zk-phi/phi-search-dired",
   "unstable": {
    "version": [
-    20150405,
-    714
+    20200816,
+    1542
    ],
    "deps": [
     "phi-search"
    ],
-   "commit": "162a5e4507c72512affae22744bb606a906d4193",
-   "sha256": "1b44947hncw4q42fxxrz6fm21habzp4pyp0569xdwysrx2rca2fn"
+   "commit": "f014a9fb0b6a94af2df0e22f91ef79ce6996afd7",
+   "sha256": "0ivb7d33qajccvs1sz4fc3h031qkqmz8w93k6di47qyfzd4vrvjm"
   }
  },
  {
@@ -77347,17 +79082,17 @@
  },
  {
   "ename": "php-mode",
-  "commit": "2e41dc09413eaa93704e7d9f55bd2bd01f658806",
-  "sha256": "1gqmcynz2wx09xjnk70db1a2pbnrh1vfm5vd6mks1s10y59bh0zq",
+  "commit": "5593a586ce7579fd3a136e2416b89721157f98e1",
+  "sha256": "1xa9dmjinm6qm4cbzqanw5njmif71sg3jxnvgvi17jj9j3125d9f",
   "fetcher": "github",
   "repo": "emacs-php/php-mode",
   "unstable": {
    "version": [
-    20200507,
-    1755
+    20200812,
+    1129
    ],
-   "commit": "a7687e454adc2e6c1e13d90beac122af32169eb8",
-   "sha256": "1nlikgyflksdzbd8k2l3f0nmv3gisj145fi45kw971ianihq476x"
+   "commit": "f4c7c6995dadcdc6da5fefadfd362f8418b2eec1",
+   "sha256": "0vg8xzpm4lbahlldgfsc63wfans3wx0nfkm2x2k3qkgp9r7wbh38"
   },
   "stable": {
    "version": [
@@ -77370,6 +79105,30 @@
   }
  },
  {
+  "ename": "php-quickhelp",
+  "commit": "955f58195517df08f69dd4c85cba31c94c88d345",
+  "sha256": "0w9r3h5pqbsg88ki3zny6mznmz39w5cq21lzzg2521a4hddi8g44",
+  "fetcher": "github",
+  "repo": "vpxyz/php-quickhelp",
+  "unstable": {
+   "version": [
+    20200818,
+    1944
+   ],
+   "commit": "f1d79fbed01b667495f64438687f1fbd6bf486c6",
+   "sha256": "0lnjd0ris288ia6i2wvw30yg57fmh5xgq1dln243s57yvm1wccfd"
+  },
+  "stable": {
+   "version": [
+    0,
+    3,
+    4
+   ],
+   "commit": "325668a47127bee77f094ed2b09171b8656c7429",
+   "sha256": "16cm754r1cg1rb6blfqcja41klr4hy90gkhg6p9p79qgxjrnbbbd"
+  }
+ },
+ {
   "ename": "php-refactor-mode",
   "commit": "ad4a9bb43e131e2eb0d8b09b13245bc268c524a5",
   "sha256": "0gj0nv6ii7pya0hcxs8haz5pahj0sa12c2ls53c3j85in645zb3s",
@@ -77445,18 +79204,17 @@
   "repo": "emacs-php/phpactor.el",
   "unstable": {
    "version": [
-    20200405,
-    1544
+    20200618,
+    1845
    ],
    "deps": [
     "async",
-    "cl-lib",
     "composer",
     "f",
     "php-runtime"
    ],
-   "commit": "860d7e8784b261ee71deba354d01c3038cd777ab",
-   "sha256": "1d3fijh11g70xhx3a47l75mrp64bvkk7hh9lg83nl30qhn2vrbn3"
+   "commit": "62d2372ea55c0c5fb4e77076988472ebb5d85f24",
+   "sha256": "1sfrdap157zc7lk9vwsy91p813ip8dmazgfjwh7jwzyvcj7dsimc"
   },
   "stable": {
    "version": [
@@ -77510,14 +79268,14 @@
   "repo": "emacs-php/phpstan.el",
   "unstable": {
    "version": [
-    20200411,
-    531
+    20200807,
+    1101
    ],
    "deps": [
     "php-mode"
    ],
-   "commit": "2f715a186c5fe6576de83d4c0b64a37e2bfce101",
-   "sha256": "03ix2s068pzmybj0fcb08dlfgdqw0pmqhbdf4id2077f67bfad0w"
+   "commit": "e675cf0881408e10b76f2e70c6158237cb94671e",
+   "sha256": "11qd0mpcvc56hghwv60a57d5pap19s7yvlvi6827wnrq35cyzh7f"
   },
   "stable": {
    "version": [
@@ -77731,14 +79489,14 @@
   "repo": "davep/pinboard.el",
   "unstable": {
    "version": [
-    20200402,
-    919
+    20200630,
+    1544
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "7c57f20667ead2bb27ab1d0a03307c28ea728bd9",
-   "sha256": "0d9z1hr2082sbg4dlmarksh598xd92w7c09xmdjyn1yqm39gsljw"
+   "commit": "d426f9d2ebec5f907c8a89d6b38ccbcb13750d4f",
+   "sha256": "0jganb5ws2qlzyncyhaw1hldqbpxm44ddzzy17hmriy8n5701fyv"
   },
   "stable": {
    "version": [
@@ -78053,11 +79811,11 @@
   "repo": "juergenhoetzel/pkgbuild-mode",
   "unstable": {
    "version": [
-    20200425,
-    616
+    20200818,
+    1742
    ],
-   "commit": "bc22301198b3f581d89352510e847454fb1cb9ff",
-   "sha256": "11il65myybgfj30psicfgqpjwwpa6hwapf55d497x8kbixx2kpg1"
+   "commit": "887c01cb06420501c7780fb01a8a76bdb0864cca",
+   "sha256": "17v71sd1i7wyvjzz0nir7p28cskzgws4dcpm83ch1khhljh3r7kl"
   },
   "stable": {
    "version": [
@@ -78076,14 +79834,14 @@
   "repo": "abo-abo/plain-org-wiki",
   "unstable": {
    "version": [
-    20200507,
-    2135
+    20200617,
+    828
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "99cd7f90e5c741cf3327f464852203baee7c488c",
-   "sha256": "1s4ida511fi6mbrckn9kvssr4vmiy4w5qkkby7s1jlqvlydnsa8m"
+   "commit": "5e32e7e6216e24d515624008fa0898077403aa7f",
+   "sha256": "0d3nhvkzzharjv54w3rinqcpwhqb61flgvvcngfdxkrgs1yazaqk"
   }
  },
  {
@@ -78291,11 +80049,11 @@
   "repo": "akirak/emacs-playground",
   "unstable": {
    "version": [
-    20180624,
-    326
+    20200812,
+    1336
    ],
-   "commit": "9212790026bea9ab5fb4ecf0da1163be8ab00776",
-   "sha256": "0g6d7z9sv7fdc918gay7rd71frzqn75mcwnljgmqksfh5890apa6"
+   "commit": "77d2faab0bc3f6e1f2c65c66644c52167304610d",
+   "sha256": "1xl6fp246wk764jkyr7km7lgqfdyvbjxr9ri20dzaadfvwqyfzg5"
   }
  },
  {
@@ -78479,6 +80237,21 @@
   }
  },
  {
+  "ename": "pnpm-mode",
+  "commit": "c12d8b34a72c2ac8b29109492e203e45619116a6",
+  "sha256": "0vwsvadl6z31mzskjaykffv68vb8k4nffccdkb71vmrrbnpii6k5",
+  "fetcher": "github",
+  "repo": "rajasegar/pnpm-mode",
+  "unstable": {
+   "version": [
+    20200527,
+    557
+   ],
+   "commit": "391207e6505948b0d0cb57b802ee4885e3292c21",
+   "sha256": "0pgh9fnghj5f6vfkfb2l4jgf5j4lmidnfs949q0xik3b3hz4j4h3"
+  }
+ },
+ {
   "ename": "po-mode",
   "commit": "38e855cde9264bff67016d23e7e5e00f113c55bf",
   "sha256": "1w06i709bb04pziygdn7y47gcci7gybg0p7ncdsm07d0w7q14v2z",
@@ -78486,11 +80259,19 @@
   "repo": "emacsmirror/po-mode",
   "unstable": {
    "version": [
-    20190511,
-    1542
+    20200610,
+    1743
+   ],
+   "commit": "3114e245c2ee6208e9b506f3e65e631e1b236019",
+   "sha256": "1f84fziibcc1bjhcmmzvbsvsw2lwabsb70vl4x2jpqsraygzhw0b"
+  },
+  "stable": {
+   "version": [
+    0,
+    21
    ],
-   "commit": "1916142f6a817c733d5ec37e3b4fbae3da67e499",
-   "sha256": "0nvpr5ry86by1dm7mp2w5p534qg4c9dpdich3x13gbbp9vazc7h6"
+   "commit": "25eb1bdca30ed25d2e5d51b9feeb28a3faff51ec",
+   "sha256": "00ff5njs4aghkhipw5pmha4mj1a5s35g1cxihhbqpn9gr7kmbg02"
   }
  },
  {
@@ -78615,14 +80396,14 @@
   "repo": "lujun9972/podcaster",
   "unstable": {
    "version": [
-    20161020,
-    1535
+    20200607,
+    1054
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "9854517025deb5d556168a68955fb7b662239f5c",
-   "sha256": "06ag0idz7cf6i9kg7kqr03js9b6cw6my1jzd1x3wkgazx5slqk4q"
+   "commit": "7a21173da0c57e6aa41dbdc33383047386b35eb5",
+   "sha256": "1b2bhwipsyyydrqdxjsipzy170xdkfamd4mw5pwzjcgdjqz9wvxa"
   }
  },
  {
@@ -78675,11 +80456,11 @@
   "repo": "kunalb/poet",
   "unstable": {
    "version": [
-    20191215,
-    201
+    20200606,
+    2343
    ],
-   "commit": "ad998dce8a953eb6101e61bd6bb5ff871535d383",
-   "sha256": "030qm41sf4z29f0gghrk6a4lpf775lgg9vvlmcnl678vgy7p9fa5"
+   "commit": "16eb694f0755c04c4db98614d0eca1199fddad70",
+   "sha256": "0zm8jbviddyj7jnyssh77jx43jghbpjwr77n9s3cjp3bmadwkrv5"
   }
  },
  {
@@ -78690,15 +80471,15 @@
   "repo": "galaunay/poetry.el",
   "unstable": {
    "version": [
-    20200326,
-    1328
+    20200805,
+    1259
    ],
    "deps": [
     "pyvenv",
     "transient"
    ],
-   "commit": "6dcc9d22cac6642a861770b5518398d8ee4fcc9a",
-   "sha256": "1za8s1k5ni11yqz64rz777lps400jnga151cca2f3l3xx2lcc2c7"
+   "commit": "22a76cdcba180b4689a6b45c97669e3c76cd36ed",
+   "sha256": "099sxca06zxfvlvmsgjicira4r4csqv2m4l0d7icji57qahbp5h2"
   },
   "stable": {
    "version": [
@@ -78769,6 +80550,21 @@
   }
  },
  {
+  "ename": "poke-line",
+  "commit": "e608228443b10d1cd883ed8044b624480647ed17",
+  "sha256": "1j94pzhp1wsaa4nipbfx3bdapvf38h6g352dxakw38jimqyp6cvw",
+  "fetcher": "github",
+  "repo": "RyanMillerC/poke-line",
+  "unstable": {
+   "version": [
+    20200818,
+    1403
+   ],
+   "commit": "fe876cd6e8fdf3a68037285eda4ac2eaf977eae4",
+   "sha256": "04dpfg22nqmqrw3rzpyh62kb17iqdadmimrnrvy9cnyd8mla0k5z"
+  }
+ },
+ {
   "ename": "pollen-mode",
   "commit": "97bda0616abe3bb632fc4231e5317d9472dfd14f",
   "sha256": "1kskvdh6rczlki724h5xym8s4iychqzm0i82qdj87x1cg1kx9i85",
@@ -78957,14 +80753,14 @@
   "repo": "polymode/poly-org",
   "unstable": {
    "version": [
-    20200316,
-    1315
+    20200817,
+    756
    ],
    "deps": [
     "polymode"
    ],
-   "commit": "8f4d11489532be98a291258ca27405aa528fc126",
-   "sha256": "1srnwcsn2bh8gqzxixkhffk7gbnk66kd4dgvxbnps5nxqc6v0qhc"
+   "commit": "0793ee5c3565718606c514c3f299c0aa5bb71272",
+   "sha256": "011nacpyxc969qyvbzwhz0hr3bcbkjiwlaqa27sb4hffnl4p1py9"
   },
   "stable": {
    "version": [
@@ -79098,11 +80894,11 @@
   "repo": "polymode/polymode",
   "unstable": {
    "version": [
-    20200411,
-    915
+    20200606,
+    1106
    ],
-   "commit": "2a61fb6d3e805bc0e4ca7b6510510a955c6bfb6a",
-   "sha256": "0cphikjz9hwij1k41radyar6nh7md8v98qwn2j9lzcbyz69hrvaq"
+   "commit": "3284ff10017d280ba82f27dc20fe5223b0df709c",
+   "sha256": "0756c0fi5msqdsks95bcs0ghhk90b340y4zrkijhaz4b2cnm07h4"
   },
   "stable": {
    "version": [
@@ -79122,22 +80918,20 @@
   "repo": "TatriX/pomidor",
   "unstable": {
    "version": [
-    20200513,
-    1054
+    20200722,
+    1402
    ],
-   "commit": "308a438550173685cb852a8aadef75c25701513e",
-   "sha256": "1w4sds6h6q80drqzkmiz51nvy942a88s99zfrvmyvfrvwv7wlqqb"
+   "commit": "60da23c97c30e08254a914dca411b2e3fd639c99",
+   "sha256": "19a5155gxz97yqhfxp48d6lnhh0qqai4pd5rg1xy79mq0hxy31p7"
   },
   "stable": {
    "version": [
     0,
-    3
-   ],
-   "deps": [
-    "alert"
+    6,
+    1
    ],
-   "commit": "590e64d316d9210bd00cb4eb39d2f07ddc16809a",
-   "sha256": "0001k4p09il5f20s0jgyi96wzslfcgv3y35wfxj771gixlacnrhi"
+   "commit": "bf3ca99c24a84befe9ed76b9636ec9adb37ab844",
+   "sha256": "1qsgx1vh0xsk1wwpyx8lpnpa4879bzf0gil28v94sncbri2c6f7w"
   }
  },
  {
@@ -79208,26 +81002,40 @@
   "repo": "ponylang/ponylang-mode",
   "unstable": {
    "version": [
-    20200510,
-    200
+    20200724,
+    137
    ],
    "deps": [
-    "dash"
+    "company-ctags",
+    "dash",
+    "fill-column-indicator",
+    "hl-todo",
+    "hydra",
+    "rainbow-delimiters",
+    "yafolding",
+    "yasnippet"
    ],
-   "commit": "d72e2a53b4b542ad8adf1807d7b94a7788ab00cf",
-   "sha256": "1k13fpnd40lpg90vgck28cxfg6i2m5y2pagkw27zaqcd1h8n7d59"
+   "commit": "136cc4f7ab4f2ab549633392a72d55051c8b31ac",
+   "sha256": "0pjjccd145bla2gshs648kwhlw9r4n449g318nw81v2nn10z6qwl"
   },
   "stable": {
    "version": [
     0,
-    0,
-    12
+    5,
+    3
    ],
    "deps": [
-    "dash"
+    "company-ctags",
+    "dash",
+    "fill-column-indicator",
+    "hl-todo",
+    "hydra",
+    "rainbow-delimiters",
+    "yafolding",
+    "yasnippet"
    ],
-   "commit": "d72e2a53b4b542ad8adf1807d7b94a7788ab00cf",
-   "sha256": "1k13fpnd40lpg90vgck28cxfg6i2m5y2pagkw27zaqcd1h8n7d59"
+   "commit": "0b876e6a2d602f94cc118e6b76f5f79d18244325",
+   "sha256": "00xn2mhnf5qvn4v6yncmfa9ijrb33zl49mlc7pqn8pzr8nhbxzvc"
   }
  },
  {
@@ -79285,26 +81093,26 @@
   "repo": "auto-complete/popup-el",
   "unstable": {
    "version": [
-    20160709,
-    1429
+    20200610,
+    317
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "4839797cd1db25be6f3f98bc8d401b6c2af01f9f",
-   "sha256": "1sxzv4zdmyra6b6nicnng0zpixlpxnczhq0qjyfzxvvhks7jyyf3"
+   "commit": "9d104d4bbbcb37bbc9d9ce762e74d41174683f86",
+   "sha256": "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl"
   },
   "stable": {
    "version": [
     0,
     5,
-    3
+    8
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "46632ab9652dacad56fd961cd6def25a015170ae",
-   "sha256": "1y538siabcf1n00wr4iz5gbxfndw661kx2mn9w1g4lg7yi4n0h0h"
+   "commit": "9d104d4bbbcb37bbc9d9ce762e74d41174683f86",
+   "sha256": "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl"
   }
  },
  {
@@ -79411,15 +81219,15 @@
   "repo": "kostafey/popup-switcher",
   "unstable": {
    "version": [
-    20200201,
-    1913
+    20200701,
+    2034
    ],
    "deps": [
     "cl-lib",
     "popup"
    ],
-   "commit": "e275ec35de3b9cdedf0d6b2a4a78e91c605381be",
-   "sha256": "1zm6zk7c2i7gmn5am2d7090j1a71vbis8lbrzrbxdx53q6sklgi7"
+   "commit": "68bbe23f7ceaca889529be95762925ac29515545",
+   "sha256": "18nfrhmdjsgmrpr82qqmxj3rdv85ml2pkssrkrljzzgaxavx5ind"
   }
  },
  {
@@ -79531,20 +81339,20 @@
   "repo": "tumashu/posframe",
   "unstable": {
    "version": [
-    20200426,
-    819
+    20200818,
+    606
    ],
-   "commit": "093b29a53cbeda6d637ccc9ef4dfc47123e79b9e",
-   "sha256": "0wca1w667h930dyi3hm1kqiqapggnwbgqjbxiwpgj7l773s7xdbw"
+   "commit": "7b92a54e588889a74d36d51167e067676db7be8a",
+   "sha256": "1638qw6m588a1dh8gfic1n2mzacm7rzs99ds8qwdfqs3ids857nj"
   },
   "stable": {
    "version": [
     0,
-    7,
+    8,
     0
    ],
-   "commit": "83b4d39fdda34355c01aecc22677f7376ae0f013",
-   "sha256": "0cjrl4xgs70hbw1a1mqkdmpcmrxaakw8csrz365c31vj14nii0ax"
+   "commit": "7b92a54e588889a74d36d51167e067676db7be8a",
+   "sha256": "1638qw6m588a1dh8gfic1n2mzacm7rzs99ds8qwdfqs3ids857nj"
   }
  },
  {
@@ -79626,14 +81434,14 @@
   "repo": "milkypostman/powerline",
   "unstable": {
    "version": [
-    20200105,
-    2053
+    20200817,
+    1321
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "edbb464eef680efc9d408730288c716cd4cac404",
-   "sha256": "0j1bb9dyr76m68gn94qk6k6bxhdqbiq59fzi4mnx3ivnnkbfz6n7"
+   "commit": "e15e77ab2e589bd73f9e90498747d77d042789ea",
+   "sha256": "1sw9aicv9xbcg0fz6584hfycwibzxx2jxlav0kf83d3wg3lprgps"
   },
   "stable": {
    "version": [
@@ -79697,16 +81505,16 @@
   "repo": "SavchenkoValeriy/emacs-powerthesaurus",
   "unstable": {
    "version": [
-    20190721,
-    805
+    20200720,
+    1546
    ],
    "deps": [
     "jeison",
     "request",
     "s"
    ],
-   "commit": "81a262ec0c9294ad377bafc6cc4e6d91b461acb6",
-   "sha256": "0ffy2c56difdhgpwvvvgyvifldxlmijcs11hs6hx6gv3hndmym7i"
+   "commit": "93036d3b111925ebc34f747ff846cb0b8669b92e",
+   "sha256": "0l45n12b8jny7g4bfdn3sc7lp9kyxd7pyisr0r9svr9sls7cybv4"
   }
  },
  {
@@ -79749,14 +81557,14 @@
   "repo": "conao3/ppp.el",
   "unstable": {
    "version": [
-    20200418,
-    1551
+    20200812,
+    844
    ],
    "deps": [
     "leaf"
    ],
-   "commit": "27683aa4a0df67b4539bcaa2e82d865023cf1fae",
-   "sha256": "0azqpmlz6r2amklzrgi0wgmy89fbkz0kkpikgf5gccfmks5pij6y"
+   "commit": "86dad69c3a7dae770f6b99285647dff2aad81930",
+   "sha256": "01c82h5j7yggsbhbrlbcwl562mpd79c0i878129r4ivvhka3nha3"
   },
   "stable": {
    "version": [
@@ -79814,19 +81622,19 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20200412,
-    1607
+    20200818,
+    1400
    ],
-   "commit": "3ab7605d997fb8337bf5ded2ad960b98ac0e1fd7",
-   "sha256": "081v916gnjvx2rzjbqkqhdwijz57w7iryxzg71729gwvavs25lsv"
+   "commit": "cc289ba3b0d89f251267ca2b669d01b3afecc530",
+   "sha256": "0xwy2xh55dm4y7wlz2g6fkwf1xyqqjyp0sjb522qgasivknzwa5p"
   },
   "stable": {
    "version": [
-    4,
-    1
+    5,
+    0
    ],
-   "commit": "aa3110281a0622fa7b5da115cefb71a319b5b1a0",
-   "sha256": "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3"
+   "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
+   "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
   }
  },
  {
@@ -79875,6 +81683,38 @@
   }
  },
  {
+  "ename": "prettier",
+  "commit": "e9992d6d5ed3bd677976262d8a887e5c0a4f4914",
+  "sha256": "07zhjbb40jl6xkfdzavqg33z17z8s4nyrv3qjh8c0m3si8abh6zb",
+  "fetcher": "github",
+  "repo": "jscheid/prettier.el",
+  "unstable": {
+   "version": [
+    20200714,
+    859
+   ],
+   "deps": [
+    "iter2",
+    "nvm"
+   ],
+   "commit": "000244b82ca9e2118376f6a44506bac8ab225677",
+   "sha256": "1mrxjvx16ixcyqvqvc8lmvh3jdkcriq9djhiak0pg8y6nbrj4dqa"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "deps": [
+    "iter2",
+    "nvm"
+   ],
+   "commit": "d5ccedc7a8ed84aff292bce688c73648dc8f567f",
+   "sha256": "1rk2hwpxvnc1hadvdg86jnzz4nh5kmkwp18iwvsbkgmx47cnyni3"
+  }
+ },
+ {
   "ename": "prettier-js",
   "commit": "968ac7bb98b385f8542dc150486982c0ded73187",
   "sha256": "0mf66sdsdbhf76pwkjkfjsnh26g4j3zb4y1qrbxc9jcvymccb3yq",
@@ -80263,20 +82103,20 @@
   "repo": "jcs-elpa/project-abbrev",
   "unstable": {
    "version": [
-    20190517,
-    521
+    20200724,
+    901
    ],
-   "commit": "22830177a0cea19acf29fb9910b784ea5f66f551",
-   "sha256": "05ks95j6706rabfh1487nix2cjbxa6pjjr0xm01nhd3vcfr1m2b0"
+   "commit": "7b5749eae33eda576da3293dc386794c1248bb48",
+   "sha256": "0fvfp5hy93ggqspbnishzp0x0j1652ayismb8bpzkf6vra8vjrdw"
   },
   "stable": {
    "version": [
     0,
     0,
-    2
+    4
    ],
-   "commit": "fc4e9f774cae42a6fe135833774daaecf2b3dac0",
-   "sha256": "07056jd1z9i65db4pcshhdfrk5yb6xc28k3ihq7pixmya71l15pk"
+   "commit": "7b5749eae33eda576da3293dc386794c1248bb48",
+   "sha256": "0fvfp5hy93ggqspbnishzp0x0j1652ayismb8bpzkf6vra8vjrdw"
   }
  },
  {
@@ -80416,26 +82256,26 @@
   "repo": "bbatsov/projectile",
   "unstable": {
    "version": [
-    20200507,
-    650
+    20200819,
+    531
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "f650faecf699e4b4659374cf5a949f6927feff3e",
-   "sha256": "142is55cbyya511zp0yl5d1x6i8mvxqjn8zky4gxif15rmmqrk9n"
+   "commit": "46d2010c6a6cccfc4be72317f10ea99fd041ab54",
+   "sha256": "1xd4ag6sypqhfn85vnr8609cl9nip0l5j77226p6apv6yhdippqx"
   },
   "stable": {
    "version": [
     2,
-    1,
+    2,
     0
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "34b2665023f9a29ebd2a415bfb8091db3c804d46",
-   "sha256": "16p79m8mkrlczx4b5v28nnlcd1ny49861lax28r7cb9ps9jhdz7d"
+   "commit": "dc0e7a5ba46f92bd224a5e89f0af2ace0ed05ade",
+   "sha256": "1kf34p2jwcjcqniia8bx3kn14ybwcq81x7gcm1vkd9cj7x0mx96n"
   }
  },
  {
@@ -80510,26 +82350,6 @@
   }
  },
  {
-  "ename": "projectile-hanami",
-  "commit": "9c0123322baee1e96afd055de3f44827574d2b5f",
-  "sha256": "0qi9i4wdggrmihf1j42fqrf38psmb33rlafg3y6da5r7lpn03j1a",
-  "fetcher": "github",
-  "repo": "avdgaag/projectile-hanami",
-  "unstable": {
-   "version": [
-    20160505,
-    1311
-   ],
-   "deps": [
-    "inf-ruby",
-    "projectile",
-    "rake"
-   ],
-   "commit": "c4b8e7d4dfec789ef8493a7c5d4ce0cf7937e579",
-   "sha256": "1pqmyfz0vil30x739r18zpw9n76297ckisimq2g0xl1irhynsvbk"
-  }
- },
- {
   "ename": "projectile-rails",
   "commit": "b16532bb8d08f7385bca4b83ab4e030d7b453524",
   "sha256": "0fgvignqdqh0ma91z9385782l89mvwfn77rp1gmy8cbkwi3b7fkq",
@@ -80788,11 +82608,11 @@
   "repo": "chuntaro/emacs-promise",
   "unstable": {
    "version": [
-    20200429,
-    440
+    20200727,
+    900
    ],
-   "commit": "ed9b073ee5b0975a35ee15bc12e25e02f796d787",
-   "sha256": "1mqqsnwkwfg2i6rhx747hcnk725siw6qsxh5yni3l1sfizbyvw03"
+   "commit": "d7b59805e7a8da1f5edea9313b6e2d0f1115fec0",
+   "sha256": "08f30fwwh86mnymbjxr9gswkgvsfdxa1mqajsmsbkk5nvmz1jx0n"
   },
   "stable": {
    "version": [
@@ -80868,11 +82688,11 @@
   "repo": "ProofGeneral/PG",
   "unstable": {
    "version": [
-    20200506,
-    1948
+    20200623,
+    1748
    ],
-   "commit": "ea62543527e6c0fcca8bbb70695e25c2f5d89614",
-   "sha256": "0jzyj3a3b9b26b2cksrcby39gj9jg77dzj3d4zzbwf33j1vkvfd2"
+   "commit": "03e427a8f19485e12b2f95387ed3e0bff7cc944c",
+   "sha256": "0ykxb4xdsxv2mja620kf61k2l18scs0jdsfsg1kzs2qf4ddjscyn"
   },
   "stable": {
    "version": [
@@ -80972,20 +82792,22 @@
   "repo": "google/protobuf",
   "unstable": {
    "version": [
-    20170526,
-    1650
+    20200619,
+    1742
    ],
-   "commit": "63da77bc971e08c2241cc1d9e65ede4bf335c421",
-   "sha256": "0b0shac978n6djxid6z9h4mfb2ah4hc1vvb0rg8rf65gs4cxjzlz"
+   "commit": "214c77e1b76e63e512bd675d1c300c80438642b6",
+   "sha256": "1fxf5gydjcfc9gdwv6yfcwv85ww5glqbzlfv9hcnkddwlz6schxa"
   },
   "stable": {
    "version": [
-    3,
-    12,
-    0
+    4,
+    0,
+    0,
+    -1,
+    2
    ],
-   "commit": "0dd036d675508a4ecf69e61626fd0c88235a661d",
-   "sha256": "0ac0v7mx2sf4hwf61074bgh2m1q0rs88c7gc6v910sd7cw7gql3a"
+   "commit": "6c61c1e63b9be3c36db6bed19032dfc0d63aadda",
+   "sha256": "1910pnpy0mfzqga4mv52ybjfbxrbdflgb6nsh2vbpbpsv4jl58dq"
   }
  },
  {
@@ -81033,6 +82855,36 @@
   }
  },
  {
+  "ename": "psalm",
+  "commit": "148d9b28e683a6602bb18eecaaf3cbc8dede65b1",
+  "sha256": "0j54gj76xz7hkbbsb3dahxy1yf3y7kfg1ls060cskd6sdds412zq",
+  "fetcher": "github",
+  "repo": "emacs-php/psalm.el",
+  "unstable": {
+   "version": [
+    20200510,
+    1157
+   ],
+   "deps": [
+    "php-mode"
+   ],
+   "commit": "b2a1e8a9524b0004e62996c70da5536f86e56182",
+   "sha256": "0r0qz5bdznzdj7zxq6a6fz7fwn2c978bq57yywj3fcy8f5vh8jcf"
+  },
+  "stable": {
+   "version": [
+    0,
+    6,
+    0
+   ],
+   "deps": [
+    "php-mode"
+   ],
+   "commit": "aaa77b4ceb61d41a520baa0b84b9b236c99c4156",
+   "sha256": "1fnr8sbx74c4mdz91y6b4m0n6njjb0qa01r4i9975q197vwzni48"
+  }
+ },
+ {
   "ename": "psc-ide",
   "commit": "9eb5ff1de1d207317df052ecbd65dbe0f8766f5d",
   "sha256": "0gvq4cmmnbh4afzhmpqmizlvyr2fmd88jwdcac3w4b25fvhzr8hp",
@@ -81040,8 +82892,8 @@
   "repo": "purescript-emacs/psc-ide-emacs",
   "unstable": {
    "version": [
-    20200317,
-    1013
+    20200702,
+    1540
    ],
    "deps": [
     "company",
@@ -81052,8 +82904,8 @@
     "s",
     "seq"
    ],
-   "commit": "7fc2b841be25f5bc5e1eb7d0634436181c38b3fe",
-   "sha256": "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj"
+   "commit": "663f4e2cf9cbafdd4b9a60c34346596e2a40c87c",
+   "sha256": "06zgi5inlg244qhabsp4a24kda83i6rdpxf78qb7ygpxwdj4hf44"
   }
  },
  {
@@ -81099,15 +82951,15 @@
   "repo": "thierryvolpiatto/psession",
   "unstable": {
    "version": [
-    20200509,
-    803
+    20200714,
+    555
    ],
    "deps": [
     "async",
     "cl-lib"
    ],
-   "commit": "ddeccf7808cf39fedc41cd33204b0ef5fe4253b5",
-   "sha256": "083srsvnv8ks52qsi6hv02v4j4xlm67bld9ynm8cl8fy500ghpzz"
+   "commit": "d2b8f8d8c6acd2f86f3a7774a7079f40b1b75f8e",
+   "sha256": "1pks2xvnampp74d1m7rrq6801bdhcmdsx9gbrcvr8ljxxlzbka1w"
   },
   "stable": {
    "version": [
@@ -81187,8 +83039,8 @@
   "repo": "fvdbeek/emacs-pubmed",
   "unstable": {
    "version": [
-    20200502,
-    2153
+    20200618,
+    2203
    ],
    "deps": [
     "deferred",
@@ -81196,8 +83048,8 @@
     "s",
     "unidecode"
    ],
-   "commit": "d781870e2f57e40110e07768289ab81d8554f122",
-   "sha256": "17d2v7q6sfafk8j1ish053xsmihi4f1hbk53fkkmhwan6sw9c4sc"
+   "commit": "88aeb71ed4354af0b58354636ee6a9485887213d",
+   "sha256": "154lkpipi5wgcwx4j9w6h3zysciw7hblf03an2irr9xgdhs7xs7q"
   },
   "stable": {
    "version": [
@@ -81365,14 +83217,14 @@
   "repo": "purescript-emacs/purescript-mode",
   "unstable": {
    "version": [
-    20190522,
-    2230
+    20200708,
+    827
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "8db1d0243c03da31adac4d7c5287407a4df6aff2",
-   "sha256": "07z5m8h5a1dhqlzf8wqyxqw2mz3kxzjfpb0p7az3bhs3xsxq6q1q"
+   "commit": "154ad16b61fb9dec83a6c863ffaf92638278f00f",
+   "sha256": "14046nryg870s366j6hxqpwza0y057hxaiq3kwlnpf1avlzdwhib"
   }
  },
  {
@@ -81690,21 +83542,6 @@
   }
  },
  {
-  "ename": "pydoc-info",
-  "commit": "5b7972602399f9df9139cff177e38653bb0f43ed",
-  "sha256": "0l80g0rzkk3a1wrw2riiywz9wdyxwr5i64jb2h5r8alp9qq1k7mf",
-  "fetcher": "bitbucket",
-  "repo": "jonwaltman/pydoc-info",
-  "unstable": {
-   "version": [
-    20110301,
-    834
-   ],
-   "commit": "151d877c8fb8e418a573b1e879b1263c18e22776",
-   "sha256": "1mzyr6yznkyv99x9q8zx2f270ngjh8s94zvnhcbhidi57inpd1nh"
-  }
- },
- {
   "ename": "pyenv-mode",
   "commit": "c756ccbae044bc23131060355532261aa9a12409",
   "sha256": "05rfppn75130m5zpg5yz9bz1r7wap05jmd9v08fbqjipv98ckpz3",
@@ -81712,14 +83549,14 @@
   "repo": "pythonic-emacs/pyenv-mode",
   "unstable": {
    "version": [
-    20170801,
-    2348
+    20200518,
+    1521
    ],
    "deps": [
     "pythonic"
    ],
-   "commit": "aec6f2aa289f6aed974f053c081143758dd142fb",
-   "sha256": "1zmgm24d6s56jc4ix61058p1k0h95vdvdllr7fh1k3bq4mw22qn3"
+   "commit": "d191037fe62ed8d4fee5888845da3e2c386d8e89",
+   "sha256": "0dipwjdkx4887g61gn22wga4pvvkwv6rx7izq73l8b6x1mc17c0h"
   },
   "stable": {
    "version": [
@@ -81755,21 +83592,6 @@
   }
  },
  {
-  "ename": "pyfmt",
-  "commit": "68d477025ae5af50bf8f7b37f2adfa9159502e13",
-  "sha256": "112kjsp763c2plhqlhydpngrabhc58ya7cszvi4119xqw2s699g6",
-  "fetcher": "github",
-  "repo": "aheaume/pyfmt.el",
-  "unstable": {
-   "version": [
-    20150521,
-    2056
-   ],
-   "commit": "cb92be2cf0804cc53142dc5edb36f8e0ef5cec32",
-   "sha256": "1rp8zchvclh29rl9a1i82pcqghnhpaqnppaydxc2qx23y9pdgz9i"
-  }
- },
- {
   "ename": "pygen",
   "commit": "e761724e52de6fa4d92950751953645dd439d340",
   "sha256": "1ivg7a1ghg0bvz3idz7dzy5yb0ln3b2j7dfizg2g0fi4iwvc4czz",
@@ -81929,10 +83751,10 @@
  },
  {
   "ename": "pyimpsort",
-  "commit": "97eb7c0934298d393910419fd55d7d5f1b0cfc38",
-  "sha256": "0kdk3bmryfzvwf8vshfszbih8mwncf4xlb0n0n0yjn0p1n98q99k",
+  "commit": "b38908bc1b759b14173ffb49ddeb040a9892cc0d",
+  "sha256": "105i63d05hlpwb4n5mn71jjgnav95s8n6xy0gb2smq9ljvxbbgl0",
   "fetcher": "github",
-  "repo": "emacs-pe/pyimpsort.el",
+  "repo": "emacsorphanage/pyimpsort",
   "unstable": {
    "version": [
     20160130,
@@ -81953,8 +83775,8 @@
     20200503,
     1624
    ],
-   "commit": "1fc490c0a1d0df5d4d6a64da0ccf2dd711b9bf67",
-   "sha256": "0fkcn6dk67ljx73ww1zxxkmqp551xsshhz40z2fh1dxw00b470ga"
+   "commit": "52fd8e17c6aedbc68f58f1169363d6cc216f405b",
+   "sha256": "0nvgv67gq80hriaasck4zrr3v7qqrw6apxhnyixyavabdvvrawqz"
   }
  },
  {
@@ -82049,20 +83871,20 @@
   "repo": "poppyschmo/pytest-pdb-break",
   "unstable": {
    "version": [
-    20200426,
-    2335
+    20200804,
+    848
    ],
-   "commit": "22e54796b0522f812423b2fb0ec842e2984ff0f7",
-   "sha256": "0gsnbpk14iw4mqxk7c0409dibsb6f3j936hd781ly956mvn0afil"
+   "commit": "05d227493b7b96f3556cba22f215cb85f9282020",
+   "sha256": "0dsvi5scrhk6mypz8wggvy9zlnkbm2fmb5a24jprqh3bihg077xl"
   },
   "stable": {
    "version": [
     0,
     0,
-    9
+    10
    ],
-   "commit": "3ff296d14e7350241b22fcbe09325a16bb834d16",
-   "sha256": "0pipbp6i0vq3maiwf8cj8g43zk8nq3dpgbgacdk9v2bhcgwl3im3"
+   "commit": "05d227493b7b96f3556cba22f215cb85f9282020",
+   "sha256": "0dsvi5scrhk6mypz8wggvy9zlnkbm2fmb5a24jprqh3bihg077xl"
   }
  },
  {
@@ -82195,11 +84017,11 @@
   "repo": "python-mode-devs/python-mode",
   "unstable": {
    "version": [
-    20200508,
-    1756
+    20200608,
+    737
    ],
-   "commit": "a4ee6e9f60ff63f0706661e54308281ed7c900e3",
-   "sha256": "02gfr692xr3clrim5l6bqzn1kzcv232ylvd5k33421s21wb9vhzv"
+   "commit": "6658e5d768db0c0d8dbc6fdedff3a85b65327061",
+   "sha256": "1mf6bbx4brwzafxwrv37x14b286vlza9knswhcccvcb3aplvll6h"
   },
   "stable": {
    "version": [
@@ -82219,34 +84041,34 @@
   "repo": "wbolster/emacs-python-pytest",
   "unstable": {
    "version": [
-    20180725,
-    1146
+    20200812,
+    737
    ],
    "deps": [
     "dash",
     "dash-functional",
-    "magit-popup",
     "projectile",
-    "s"
+    "s",
+    "transient"
    ],
-   "commit": "09ad688df207ee9b02c990d3897a9e2841931d97",
-   "sha256": "18v7kxdhrayxg2pgbysm0y47xpdvwa15fmazpkfg0q8dfp2j3022"
+   "commit": "fc056faf2757c42641ed94d36a090e56eb13572f",
+   "sha256": "00dwbh549ygnrp98s883v45f5pbb34f2j5qwvw92camhp6daw38y"
   },
   "stable": {
    "version": [
-    0,
     3,
-    1
+    0,
+    0
    ],
    "deps": [
     "dash",
     "dash-functional",
-    "magit-popup",
     "projectile",
-    "s"
+    "s",
+    "transient"
    ],
-   "commit": "6772ecfaa86f0f4a1a66bfd3a454c9b11956de70",
-   "sha256": "086jjygzdrcjfp7j70xs8jh8nq0xv496kza6iap7lyc3qf16b4kk"
+   "commit": "10ad9afc840ac2d9d5616abf4bd92ab8fee2ce48",
+   "sha256": "1lc5qlsznzw8hdcdwjwn8fcgfmqjvb1wplsr2gaxwvm8rbw22g1l"
   }
  },
  {
@@ -82319,15 +84141,15 @@
   "repo": "pythonic-emacs/pythonic",
   "unstable": {
    "version": [
-    20200304,
-    1901
+    20200806,
+    434
    ],
    "deps": [
     "f",
     "s"
    ],
-   "commit": "f577f155fb0c6e57b3ff82447ac25dcb3ca0080f",
-   "sha256": "10faqkfbr7n1zlbrs9c9slm2f7wr2liav8r367s00bw3vb2vm8nb"
+   "commit": "51233ec7ec9fbafd13e2b0479c7b2ee0930ccca5",
+   "sha256": "1v4n6wx0qff2ndlxy11acm21jq5yflk28axs6jc6yh7mdj44js9x"
   },
   "stable": {
    "version": [
@@ -82384,34 +84206,6 @@
   }
  },
  {
-  "ename": "qiita",
-  "commit": "d8065a58e297c50c031de97d2d80bce5857bd803",
-  "sha256": "1kzk7pc68ks9gxm2l2d28al23gxh56z0cmkl80qwg7sh4gsmhyxl",
-  "fetcher": "github",
-  "repo": "gongo/qiita-el",
-  "unstable": {
-   "version": [
-    20140118,
-    844
-   ],
-   "deps": [
-    "helm",
-    "markdown-mode"
-   ],
-   "commit": "93c697b97d540fd1601a13a3d9889fb939b19878",
-   "sha256": "0ggivlaj29rbbhkjpf3bf7vr96xjzffas0sf5m54qh6nyz6nnha5"
-  },
-  "stable": {
-   "version": [
-    0,
-    0,
-    1
-   ],
-   "commit": "33b6d3450bb4b3d0186c2475f6c78269c71fd1ff",
-   "sha256": "110z27n3h7p2yalicfhnv832ikfcf7p0hrf5qkryz1sdmz79wb3f"
-  }
- },
- {
   "ename": "ql",
   "commit": "475bd8fd66c6d5b5c7e74aa2c4e094d313cc8303",
   "sha256": "0wxjblqacs5nx2hyh7r6rlv1yngbhn6phn5rni4dw2dms98zj34z",
@@ -82483,10 +84277,10 @@
  },
  {
   "ename": "qtcreator-theme",
-  "commit": "bf0caf3c60f4b8c6ed1c126a5feb91c99eea1f60",
-  "sha256": "0ic7a9zas8ndrp15xbw4j2987ajfjjq003fcmqhibp0sc66rldfx",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "01w4qxh9d8mkw7k0pawy0hvcdvvrkkhcnszpy5hixi5j6h7l24m0",
   "fetcher": "github",
-  "repo": "lesleylai/emacs-qtcreator-theme",
+  "repo": "LesleyLai/emacs-qtcreator-theme",
   "unstable": {
    "version": [
     20200203,
@@ -82542,11 +84336,11 @@
   "repo": "quelpa/quelpa",
   "unstable": {
    "version": [
-    20200514,
-    1242
+    20200617,
+    2205
    ],
-   "commit": "9ece62efa829c6b89ba61cb674f337764b266482",
-   "sha256": "1mvrpyiw53lrz6i7r7zlcfvksh8lsjb4vib6gnj5b849njzcjwhm"
+   "commit": "f1fc228f217be692eaae2d53f51966ce922d6a32",
+   "sha256": "03h30qcixq54q212381cf7mahi2k9q4590vm44pqy9widpigmxz7"
   }
  },
  {
@@ -82576,11 +84370,11 @@
   "repo": "renard/quick-buffer-switch",
   "unstable": {
    "version": [
-    20151007,
-    2208
+    20200727,
+    720
    ],
-   "commit": "d5fdd67b4c9f04b7a7122da2215e4ae076a03b1b",
-   "sha256": "0kh63nzdzwxksn2ar2i1ds7n96jga2dhhc9gg27p1g2ca66fs6h5"
+   "commit": "ceb5222599b861f9d1133b1509516fcf07a3cd67",
+   "sha256": "09dfw42d5834z8x1c1mri7g61r91i1crr3h6r118nmszhbx9b7iy"
   }
  },
  {
@@ -82655,20 +84449,20 @@
   "repo": "emacsorphanage/quickrun",
   "unstable": {
    "version": [
-    20200514,
-    1506
+    20200603,
+    1902
    ],
-   "commit": "a8752887b81fc2f4f4e4bcd3d2cf8abafb85edbb",
-   "sha256": "0zjhpgg6zkqx8v0gv7h7z73i64ipzszm9cqs4wwaldlz228316ra"
+   "commit": "ce7383c53215077f7e1d258d389cf8731309fbe9",
+   "sha256": "0dscg35hrywn8qr02q46y0cdclyscz6qxa0dqphkx3bv9xvzmqjl"
   },
   "stable": {
    "version": [
     2,
-    2,
-    8
+    3,
+    0
    ],
-   "commit": "70e93e06778f44113f405aedec6187b925311d57",
-   "sha256": "0swbgsidq11w7vyjhf06dn8vsj06j9scj8n2dm9m7fasj0yh3ghw"
+   "commit": "072ec7be93f31e9dd265fb834cd709d0c0d4a8bb",
+   "sha256": "1zx8hpm5wa9ad675py8676071pip6831d4jy2dqyrlxpfvi6q47l"
   }
  },
  {
@@ -82817,15 +84611,15 @@
   "repo": "greghendershott/racket-mode",
   "unstable": {
    "version": [
-    20200513,
-    1519
+    20200810,
+    1513
    ],
    "deps": [
     "faceup",
     "pos-tip"
    ],
-   "commit": "0f1efa4a3cdcd26de1d2b002868ffc851cff25ac",
-   "sha256": "1zhn50apdrysm9d6ynv92slah78i39cismj88ym4ahrllwr1jnj4"
+   "commit": "c55fd70c5e9a371f262486f7d5d8837481388b95",
+   "sha256": "13ngnm22h5rzmm9pvgbw9nidv8jkkcsckbypi2mn1k8j8wfjypx0"
   }
  },
  {
@@ -82931,6 +84725,24 @@
   }
  },
  {
+  "ename": "rainbow-fart",
+  "commit": "cdcc8091357c42f5edbc1a13886253130f104242",
+  "sha256": "0zi1r8bgzd3g1dvginlp5nywyjk3lh495j6j3girgjqhsblnhfrx",
+  "fetcher": "github",
+  "repo": "stardiviner/emacs-rainbow-fart",
+  "unstable": {
+   "version": [
+    20200718,
+    437
+   ],
+   "deps": [
+    "flycheck"
+   ],
+   "commit": "16759a0aa1b39c43cdedcf6a6c9a5dc3c3895fd2",
+   "sha256": "14dh7bd40jc6vl6933575jivgmm3h6frphmwxspijb7c8pj1wfmv"
+  }
+ },
+ {
   "ename": "rainbow-identifiers",
   "commit": "975aadd9fe1faf9ad617ba6200ca77185b87e7c0",
   "sha256": "0lw790ymrgpyh0sxwmzinl2ik5vl5vggbg14cd0cx5yagkw5y3mp",
@@ -82996,14 +84808,26 @@
   "repo": "Raku/raku-mode",
   "unstable": {
    "version": [
-    20200510,
-    2005
+    20200524,
+    1625
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "43fd5628254754bee41575a55a7d1c7ad79837fa",
-   "sha256": "1c1l0c4pnza3bf0s1262z5r8xmbmhq3qdvgqq28k8raawdqszqfk"
+   "commit": "e0639c89a3a29e9196e298951da6c3a79fb944e8",
+   "sha256": "02zn1sm86srwdzdkhw53ll0h41a9hwh6c8lan72530zysjrm4x1i"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "deps": [
+    "pkg-info"
+   ],
+   "commit": "e0639c89a3a29e9196e298951da6c3a79fb944e8",
+   "sha256": "02zn1sm86srwdzdkhw53ll0h41a9hwh6c8lan72530zysjrm4x1i"
   }
  },
  {
@@ -83065,11 +84889,11 @@
   "repo": "ralesi/ranger.el",
   "unstable": {
    "version": [
-    20200218,
-    203
+    20200607,
+    2002
    ],
-   "commit": "ae9b3816a6da927cca5beb62c45400103797a2da",
-   "sha256": "07fiyw0gw51dxc7r92pj75lbxppg0gixjv9317qx9c3v1lcxaqiv"
+   "commit": "d7c18370981c9e585bc0fb78f7e55033457ca643",
+   "sha256": "0xfg38ginrd0sdn194gpapi67q6i81csddgsf0rqmwihazpgs060"
   },
   "stable": {
    "version": [
@@ -83190,20 +85014,20 @@
   "repo": "thiagoa/rbtagger",
   "unstable": {
    "version": [
-    20191115,
-    1858
+    20200714,
+    1658
    ],
-   "commit": "18ef567e65d1437e9a9e03d4f30a02d60e926d85",
-   "sha256": "0kr10j3f0dd7q102db4y16yj8yfv06wnqsgnx2l9jyc8qhkbxq6w"
+   "commit": "b3333b9dc9ffdaf5dfb2ea6ef2dd0f74e2f0f03f",
+   "sha256": "04zccf9bis259c13nzljfjajjgkrhhbb3b2v6q6q12c30ikj5b09"
   },
   "stable": {
    "version": [
     0,
-    2,
-    0
+    3,
+    2
    ],
-   "commit": "e46137e36a3bdba8dd4d27017b194a8524c7375b",
-   "sha256": "154y2adh2pgn77ycidkd6ndjg9wjxsjmbkb8cppf9csq31vmc313"
+   "commit": "b3333b9dc9ffdaf5dfb2ea6ef2dd0f74e2f0f03f",
+   "sha256": "04zccf9bis259c13nzljfjajjgkrhhbb3b2v6q6q12c30ikj5b09"
   }
  },
  {
@@ -83446,8 +85270,8 @@
     20200505,
     1537
    ],
-   "commit": "8e51241e5ba7b07b91d8188c14cf193017640292",
-   "sha256": "0yn0ibbda8bjqjhiqhmbvv7p8c52n65mi95v91nkfcj60hwyglnq"
+   "commit": "481a2d1460ab5a9b6df3721dda76ad515923bfd1",
+   "sha256": "1f1sqbqc0ckp7850ahvy0syky7lplwhb05r3cw4fdmz2xbywwg52"
   },
   "stable": {
    "version": [
@@ -83460,22 +85284,22 @@
  },
  {
   "ename": "realgud",
-  "commit": "7a21be3673962d5706f12efa5179a5426bdce82b",
-  "sha256": "14n6d3jfhpa29nf4ywdg3aw4i51lfkr99b4z8q4833pmpz1jbq2c",
+  "commit": "fd34d2accd92d1473b743e2eee1309d329209cd0",
+  "sha256": "063bqpq05l29cvapp4xnvgbdx6l4p0ax83hhz4dv4cqbh1mi68b0",
   "fetcher": "github",
   "repo": "realgud/realgud",
   "unstable": {
    "version": [
-    20200513,
-    418
+    20200809,
+    2221
    ],
    "deps": [
     "load-relative",
     "loc-changes",
     "test-simple"
    ],
-   "commit": "1238d8e72945a84bb06cd39d7ded75f37105d4d2",
-   "sha256": "0gx5fivzksanyp9a0ijdzrcbgg8nw94mbilhdh1jkra5mw3ndr63"
+   "commit": "332d13673074bee252ae7819b0898ee7c7895d2e",
+   "sha256": "0cnnhxgyrjvr75pin7kis5qzd54hh0qscbnvvm8jflmljzca77lz"
   },
   "stable": {
    "version": [
@@ -83520,15 +85344,15 @@
   "repo": "realgud/realgud-ipdb",
   "unstable": {
    "version": [
-    20191115,
+    20200722,
     1116
    ],
    "deps": [
     "load-relative",
     "realgud"
    ],
-   "commit": "347090928d7866a9909208c5bbe2cb8fa7b55cd7",
-   "sha256": "1m7v8qsqm8b8liyfdfqpcsjnlcbs0lpl6m91ff3449a94l1g99k7"
+   "commit": "f18f907aa4ddd3e59dc19ca296d4ee2dc5e436b0",
+   "sha256": "196zy8xmqkm6nc7074gsy4ymm6h4ikbd01f41karys7dwib3gg5i"
   }
  },
  {
@@ -83539,15 +85363,15 @@
   "repo": "realgud/realgud-jdb",
   "unstable": {
    "version": [
-    20191125,
-    1700
+    20200722,
+    1120
    ],
    "deps": [
     "load-relative",
     "realgud"
    ],
-   "commit": "99b7f08e0fcec9e33dde8dbbe60e42cfec08bc17",
-   "sha256": "16q9wxa518f3g54zk3imgj8ml06bn66d9jyyg2k86j94ny7q1azd"
+   "commit": "1c183b2f8aae0de60942ea01444b896bf182c66a",
+   "sha256": "1i80llf9bncd5hkrk0wj3xswd36q1rkv5gaqgfqq4r1f8dkrhrz1"
   }
  },
  {
@@ -83650,16 +85474,16 @@
   "repo": "realgud/realgud-pry",
   "unstable": {
    "version": [
-    20190520,
-    1139
+    20200620,
+    1006
    ],
    "deps": [
     "cl-lib",
     "load-relative",
     "realgud"
    ],
-   "commit": "fe04c0e1e1ce33361d12ad6f9bcf493f3fe228e0",
-   "sha256": "14b3104wlaxwbg3p2pmnxlap5q4msbhswpiq5cx5q1wwhzkjfp2a"
+   "commit": "7b502b9e802b8594c90da329b9716bcfd2c981b1",
+   "sha256": "1rwqzpcdapfdlf6hvypi16w6z13r1fhv91arbr34jzfzbsnk7sb1"
   }
  },
  {
@@ -83690,15 +85514,15 @@
   "repo": "realgud/realgud-trepan-ni",
   "unstable": {
    "version": [
-    20190912,
-    1418
+    20200722,
+    1118
    ],
    "deps": [
     "load-relative",
     "realgud"
    ],
-   "commit": "6e9cac5e8097018aadf41c88de541168036cc227",
-   "sha256": "0xc80mhqk26vm1sv8xz0zw0pmbznvdpb8gla5bh3rnxpadpannc3"
+   "commit": "6e38cf838c7b47b5f1353d00901b939ffa36d707",
+   "sha256": "0qwzvaarl2vr6ca0kd9k195f5nbnkdjsrwrkhxggjqsk7v1hq6x2"
   },
   "stable": {
    "version": [
@@ -84167,11 +85991,11 @@
   "repo": "purcell/reformatter.el",
   "unstable": {
    "version": [
-    20200426,
-    818
+    20200814,
+    435
    ],
-   "commit": "dc6278a6b1e3565604346ac41a6ffc3cbab04031",
-   "sha256": "147qrqs3ndc4xfbb9wiymjsskccp54qpj8bn3i19n9zwm4kmgdzr"
+   "commit": "45c0add95025f53ca644a6c8b9afa05b2da3c474",
+   "sha256": "1dfn7c3gpavpiwd73v2pasd8wd8b62dczhg9iv1cgh8vaqlsf92x"
   },
   "stable": {
    "version": [
@@ -84259,11 +86083,11 @@
   "repo": "alvarogonzalezsotillo/region-occurrences-highlighter",
   "unstable": {
    "version": [
-    20190905,
-    730
+    20200815,
+    1555
    ],
-   "commit": "ee86d6a79342c6e4b3cfad5ec73cb0a40e18ae3d",
-   "sha256": "06y1hbqgdw2y0isn26wmwrqjxb1ypwrqhcjg4n69mdn74cwlk4jz"
+   "commit": "07e2201db7a88b246a63e868e711749e1465d3d6",
+   "sha256": "0y9746pqinp0nir2afm181drs2qa63jpb834s3s7pzd2mvjrw0rc"
   }
  },
  {
@@ -84312,11 +86136,11 @@
   "url": "https://schlomp.space/tastytea/register-quicknav.git",
   "unstable": {
    "version": [
-    20200325,
-    1612
+    20200524,
+    2006
    ],
-   "commit": "06afa1efc490a6cbc1d814fc6f1e7a80a601ecc7",
-   "sha256": "055bffsa81chjpv39p2fn10dwikpzb034k19k0mc1026d8a423kg"
+   "commit": "c15ea92b0946c28b3f14986d42b15b0b534aa6a2",
+   "sha256": "03xm5rxhafzngdqnpl884d0zy9qkpx57zbcnh0psalmvswd4d4fh"
   },
   "stable": {
    "version": [
@@ -84342,8 +86166,8 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "41c99057d0406c7fb3895a03da777af3961a648d",
-   "sha256": "1dw6f60ysyvxgm5gpir37ay8z9csykxj0r7v9h6z38cswicg27sj"
+   "commit": "439a4d5e130e67e9e8c34e813fa1dc6631e7a8d5",
+   "sha256": "0lzlhmz0c4jv65phksh6aya93rlh8rqcffbvz1llcyj8i2gr7hqj"
   }
  },
  {
@@ -84365,56 +86189,6 @@
   }
  },
  {
-  "ename": "relative-buffers",
-  "commit": "ab22cea99fbee937bbd6e8fbc8bd27967aeaa8a5",
-  "sha256": "131182yb0pr0d6jibqd8aag4w8hywdyi87ldp77b95gw4bqhr96i",
-  "fetcher": "github",
-  "repo": "proofit404/relative-buffers",
-  "unstable": {
-   "version": [
-    20191004,
-    1205
-   ],
-   "deps": [
-    "cl-lib",
-    "dash",
-    "f",
-    "s"
-   ],
-   "commit": "6064cd0b3cbd42c4a46c70fc396f05be71f42bd6",
-   "sha256": "0wzxnbbzzjkzrnfdbdn7k172ad6mnhq5y3swcbilnk1w1a1lzyhn"
-  }
- },
- {
-  "ename": "relax",
-  "commit": "67247451b39461db4a5fcff3827a09f53f9fc8ec",
-  "sha256": "0gfr4ym6aakawhkfz40ar2n0rfz503hq428yj6rbf7jmq3ajaysk",
-  "fetcher": "github",
-  "repo": "technomancy/relax.el",
-  "unstable": {
-   "version": [
-    20131029,
-    2134
-   ],
-   "deps": [
-    "json"
-   ],
-   "commit": "6e33892623ab87833082262321dc8e1977209626",
-   "sha256": "0lqbhwi1f8b4sv9p1rf0gyjllk0l7g6v6mlws496079wxx1n5j66"
-  },
-  "stable": {
-   "version": [
-    0,
-    2
-   ],
-   "deps": [
-    "json"
-   ],
-   "commit": "6e33892623ab87833082262321dc8e1977209626",
-   "sha256": "0lqbhwi1f8b4sv9p1rf0gyjllk0l7g6v6mlws496079wxx1n5j66"
-  }
- },
- {
   "ename": "remark-mode",
   "commit": "083f2070eb27d66f09552bf42a346f41a9b9b4b5",
   "sha256": "1ccgii79h05bjl16nz7rgvkf35s9y18vp7l6mx6chciwjz6l78kn",
@@ -84469,17 +86243,17 @@
  },
  {
   "ename": "renpy",
-  "commit": "cdd1f8002636bf02c7a3d3d0a075758972eaf228",
-  "sha256": "173391mcv56ljrkhl6hb9fhkl2vic9wj2xmd21hq88m3awpjmill",
+  "commit": "68635e3c52d12c234200680fd393a0b8748d2993",
+  "sha256": "18lnp1920c88j6fvjsrrymqh23amna9qyllh68mf7kssbsh5w2zq",
   "fetcher": "github",
-  "repo": "treymerkley/renpy-mode",
+  "repo": "Reagankm/renpy-mode",
   "unstable": {
    "version": [
-    20190419,
-    1749
+    20200607,
+    135
    ],
-   "commit": "943e1af71d23128ff100d41d178ccffe28f97944",
-   "sha256": "1l2dglkbpb3d6c6cnifhngcjc4yy726mq6yic8x9409c6r0apn2n"
+   "commit": "f2f95a72a8c842f229f80999132e8ea8ee73f6fc",
+   "sha256": "1jka61j6zrc0yzjcplnyg1kp1d45ikwnkmayjg41v9w0pfrzzim3"
   }
  },
  {
@@ -84534,8 +86308,8 @@
    "deps": [
     "fullframe"
    ],
-   "commit": "a36caac7649fbffbe30f7b06541c9efd723563fc",
-   "sha256": "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"
+   "commit": "f066782c10226d31ea8c1cc386cfa7fa3a4e3aa7",
+   "sha256": "14kap395xd3d5n7ini5cyif2ygz0db8bv0py5ipwlac2zcwgmfwl"
   },
   "stable": {
    "version": [
@@ -84704,11 +86478,11 @@
   "repo": "tkf/emacs-request",
   "unstable": {
    "version": [
-    20200219,
-    2257
+    20200517,
+    1305
    ],
-   "commit": "216d570a58d05ef1307edb63d2539bafa5f688c6",
-   "sha256": "11malas5n5g4yxydx8pz8aahr5rkjq256cg5avhd64fvfryz9wj2"
+   "commit": "d02d1347ffdf138cffd380cbeac62ac8732036ef",
+   "sha256": "1rkpakzish2d470ca15yq3k0m1j7a2lrkvvddcyvc2rx0sncsdjs"
   },
   "stable": {
    "version": [
@@ -84735,8 +86509,8 @@
     "deferred",
     "request"
    ],
-   "commit": "216d570a58d05ef1307edb63d2539bafa5f688c6",
-   "sha256": "11malas5n5g4yxydx8pz8aahr5rkjq256cg5avhd64fvfryz9wj2"
+   "commit": "d02d1347ffdf138cffd380cbeac62ac8732036ef",
+   "sha256": "1rkpakzish2d470ca15yq3k0m1j7a2lrkvvddcyvc2rx0sncsdjs"
   },
   "stable": {
    "version": [
@@ -84867,8 +86641,8 @@
     20200502,
     831
    ],
-   "commit": "edea7b3e3d6110ebe44b9387acad1967e540d2ca",
-   "sha256": "1lajb0xil1jpy1hvvmmig1xgil45976yr7m3lrffavp34ma3kcbh"
+   "commit": "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3",
+   "sha256": "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk"
   }
  },
  {
@@ -84886,8 +86660,8 @@
     "helm",
     "restclient"
    ],
-   "commit": "edea7b3e3d6110ebe44b9387acad1967e540d2ca",
-   "sha256": "1lajb0xil1jpy1hvvmmig1xgil45976yr7m3lrffavp34ma3kcbh"
+   "commit": "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3",
+   "sha256": "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk"
   }
  },
  {
@@ -84920,6 +86694,21 @@
   }
  },
  {
+  "ename": "retrie",
+  "commit": "12ed1c6d8e2aa4f73b793f9e16e8e13985fae944",
+  "sha256": "1y0zknhc2wkq6kpmz2bylwqla1xd7n7l3650zj2bi8g84ly777af",
+  "fetcher": "github",
+  "repo": "Ailrun/emacs-retrie",
+  "unstable": {
+   "version": [
+    20200519,
+    551
+   ],
+   "commit": "976d6f01a3e214917f16b82e750d825cb9bfcc59",
+   "sha256": "08rwhkx2chphrfqd6l2bjr1w4rn394q8w5iy93cdprl5y56axvp6"
+  }
+ },
+ {
   "ename": "reveal-in-folder",
   "commit": "26682a1fb2d885168ca922521df7f3d8fbfe43a8",
   "sha256": "0nhrsmilimffpjnv9hn8a49wckdi1lywjlb2fpxpqdi8zl0bgkzs",
@@ -84927,26 +86716,28 @@
   "repo": "jcs-elpa/reveal-in-folder",
   "unstable": {
    "version": [
-    20191209,
-    514
+    20200618,
+    1211
    ],
    "deps": [
-    "f"
+    "f",
+    "s"
    ],
-   "commit": "e3cc73688d8dc3b47ccb1db49519a83b275b1cde",
-   "sha256": "0xdpm7r83nd5j4ss530l3srz4qy2z0m7wp084i3v2sfqi3in5qgl"
+   "commit": "cc4f56c8870136aafcdc5afc010e9a73a9bfd707",
+   "sha256": "09byr8lh1agar1mmxs82sg8ica1p9wrjjahpx3k3adfmgq2glzcr"
   },
   "stable": {
    "version": [
     0,
     0,
-    2
+    5
    ],
    "deps": [
-    "f"
+    "f",
+    "s"
    ],
-   "commit": "715e34b7c4a93840f6188386a13d15231907257b",
-   "sha256": "0d75hgaskhc6gwjdcc19nligb4xj2irg33cirrc0wp23k7il1m6f"
+   "commit": "cc4f56c8870136aafcdc5afc010e9a73a9bfd707",
+   "sha256": "09byr8lh1agar1mmxs82sg8ica1p9wrjjahpx3k3adfmgq2glzcr"
   }
  },
  {
@@ -84981,11 +86772,11 @@
   "repo": "a13/reverse-im.el",
   "unstable": {
    "version": [
-    20200324,
-    1113
+    20200520,
+    853
    ],
-   "commit": "c42a7a585c7b85bc402f63535ae6261f68c6aa57",
-   "sha256": "1lx23y4dzf5ln4ahf5dnnvx3blvjf3s65n3hgfv0qi5hgi8i8f59"
+   "commit": "90add9a1f8c4a3c78029d38087ff4d22fe5372d3",
+   "sha256": "05k2zp2hldzq5h6nl8gx79dd8lvfn507ad4x3naichdqgn2013nn"
   }
  },
  {
@@ -85019,11 +86810,11 @@
   "repo": "kmuto/review-el",
   "unstable": {
    "version": [
-    20200131,
-    122
+    20200710,
+    155
    ],
-   "commit": "09e2df58398b392f19642a12c8cb78eae726dbd2",
-   "sha256": "13cy7wy2jv1cjncfnayp28w1ka4s0jim2sarcw0dn2iiniqlkbwf"
+   "commit": "343e7155f8238a7a53ef1f753319b8e2f9e8e8b9",
+   "sha256": "13wgrj5qbg2pv6d9yxkbsrrllvd40m4p7911g23wcwnnx211p943"
   }
  },
  {
@@ -85049,26 +86840,26 @@
   "repo": "galdor/rfc-mode",
   "unstable": {
    "version": [
-    20200215,
-    1357
+    20200719,
+    1241
    ],
    "deps": [
     "helm"
    ],
-   "commit": "88e6577a0e50f523f7da04de9f939b0bc168b514",
-   "sha256": "1k8330bgc9m7pnpvz3kjyjpjsmha43v4srnhns85xi0nv328g1iy"
+   "commit": "02546beecf4c495940885e7b7b911d84b12646ef",
+   "sha256": "1v52vbs2zbqv62wcgcrqgjcwcdq0w6hdb14nma4yhqldnqi57875"
   },
   "stable": {
    "version": [
     1,
-    2,
+    3,
     0
    ],
    "deps": [
     "helm"
    ],
-   "commit": "55d28321b480a095d29e5c6cd03c8dea9ad55553",
-   "sha256": "0f9h8vmfn8xi0c3qwigzbbvsck4wwxbflxl06m7ky2h5jnj6n0g3"
+   "commit": "02546beecf4c495940885e7b7b911d84b12646ef",
+   "sha256": "1v52vbs2zbqv62wcgcrqgjcwcdq0w6hdb14nma4yhqldnqi57875"
   }
  },
  {
@@ -85079,16 +86870,16 @@
   "repo": "dajva/rg.el",
   "unstable": {
    "version": [
-    20200516,
-    1412
+    20200703,
+    1250
    ],
    "deps": [
     "s",
     "transient",
     "wgrep"
    ],
-   "commit": "f5456e006f22b6bc947e799261b36d55b075c5a2",
-   "sha256": "120n4vkw3c1l130932pziz9ivw85wyh6b75836w82dhx9d41h4cr"
+   "commit": "853c1acaf999500d867180b9e71938366c8e1a7c",
+   "sha256": "0lp32mjmbzjbsvzia2zd29yv0i75mqvp1w7c0jcwvyyl6gqbg3k1"
   },
   "stable": {
    "version": [
@@ -85238,8 +87029,23 @@
   "repo": "DogLooksGood/emacs-rime",
   "unstable": {
    "version": [
-    20200502,
-    349
+    20200816,
+    827
+   ],
+   "deps": [
+    "cl-lib",
+    "dash",
+    "popup",
+    "posframe"
+   ],
+   "commit": "aab21695f1dee0db3ddf0f0c834b94aecec7057c",
+   "sha256": "0rzghfnrdyrqijw76f4vvsn3hsninwp3qyvr1p7r0ddz21xz04np"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    3
    ],
    "deps": [
     "cl-lib",
@@ -85247,8 +87053,8 @@
     "popup",
     "posframe"
    ],
-   "commit": "daf956df30d4007f70a4495560d656e517ab69a9",
-   "sha256": "0wr1ski9j7m7mwizdgxnnj61z1nqpyjp6gc7dniaac0m6svxf1rf"
+   "commit": "2a0b116d56bf54456eb5d6e8e80a7a6cf6944863",
+   "sha256": "08rzkiqwcl8j3i2yyibll5lcsj8720plzm9zfdgmxgkw7vhcyix5"
   }
  },
  {
@@ -85405,14 +87211,14 @@
   "stable": {
    "version": [
     0,
-    4,
+    5,
     0
    ],
    "deps": [
     "js2-mode"
    ],
-   "commit": "f7d31589acd8a2dfcf4ca8851d2384e4f90364d0",
-   "sha256": "057pgylflzd69ydqz41g8wisvixypdrfn8yv81mfixh3iyq740y8"
+   "commit": "0061587a06cdc2579a8d0e90863498d96bf982d8",
+   "sha256": "08b4hdgq4hc1yfd9pvyir2j3cqqdqa3j5svgaba97x5fzhsz7y8i"
   }
  },
  {
@@ -85438,26 +87244,26 @@
   "repo": "dgutov/robe",
   "unstable": {
    "version": [
-    20190521,
-    58
+    20200628,
+    1225
    ],
    "deps": [
     "inf-ruby"
    ],
-   "commit": "68503b32bb3a005787ecb7a7fdeb3bb4a2317e2b",
-   "sha256": "1v4nbfr3rhdm1733gb88cv0f018iy53cw5hdcwpshrmjj36a2lpn"
+   "commit": "082da38797d247f9c64568ad712a345e041d5c84",
+   "sha256": "1xbj7wi389n6pxfvxrakvhylkdlqg8ll9ad2zmxggcchygwah6nl"
   },
   "stable": {
    "version": [
     0,
     8,
-    2
+    3
    ],
    "deps": [
     "inf-ruby"
    ],
-   "commit": "1908afd42ce05fc8b8bbf3f38301680264b68d19",
-   "sha256": "0qw18wi54yg971n4wnjqkd8lqj5lbs9ra8bvmngif2bzhqlfdsbn"
+   "commit": "082da38797d247f9c64568ad712a345e041d5c84",
+   "sha256": "1xbj7wi389n6pxfvxrakvhylkdlqg8ll9ad2zmxggcchygwah6nl"
   }
  },
  {
@@ -85606,14 +87412,14 @@
   "repo": "zk-phi/rpn-calc",
   "unstable": {
    "version": [
-    20181121,
-    1154
+    20200816,
+    545
    ],
    "deps": [
     "popup"
    ],
-   "commit": "27279f89c80eb3f28ff9f981eff06502056943e2",
-   "sha256": "0klzhscdvzwpcrfkq2v28in5fv01zqabgxdrziyhj666sly1scjq"
+   "commit": "1554be19acc2644898a2175fa277d1159327c8dc",
+   "sha256": "1b4v9x8f9ykz2dqiv7p7c2f6kbl374i2723idmnvm2c9bc0hbpyv"
   }
  },
  {
@@ -85647,15 +87453,15 @@
   "repo": "pezra/rspec-mode",
   "unstable": {
    "version": [
-    20200228,
-    2348
+    20200615,
+    1443
    ],
    "deps": [
     "cl-lib",
     "ruby-mode"
    ],
-   "commit": "9a2a9d2935ae17b8570485bdea7c347533b464f6",
-   "sha256": "0plr71dbghzcnbrl9l4g52g59yvlcx1dh41fwcnp0b12x13vslay"
+   "commit": "f1029cad2a8d9fd096e9a0f1ae9e7d7e2c8bd1ec",
+   "sha256": "02818knhbnqqnfmlhzr2ak0i6cv6pmbxw2icns2lg8vfr430c286"
   },
   "stable": {
    "version": [
@@ -85678,11 +87484,11 @@
   "repo": "Andersbakken/rtags",
   "unstable": {
    "version": [
-    20200507,
-    1824
+    20200810,
+    2326
    ],
-   "commit": "ed229d2e4070cc07ba76e537e8f5f93835ff0710",
-   "sha256": "1jf1mg2pib2rsrn280j2ywmnqgkr5jwmiaqf252jsb7ndq7p5gcr"
+   "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+   "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
   },
   "stable": {
    "version": [
@@ -85707,8 +87513,8 @@
    "deps": [
     "rtags"
    ],
-   "commit": "ed229d2e4070cc07ba76e537e8f5f93835ff0710",
-   "sha256": "1jf1mg2pib2rsrn280j2ywmnqgkr5jwmiaqf252jsb7ndq7p5gcr"
+   "commit": "b57b36039f6411f23009c4ec0315ca5a7adb6824",
+   "sha256": "1816yxyqkxd895wka9xkxpca59iwjpcv73d25sq03z2gf1ayd56b"
   },
   "stable": {
    "version": [
@@ -85802,26 +87608,26 @@
   "repo": "jimeh/rubocopfmt.el",
   "unstable": {
    "version": [
-    20181009,
-    1703
+    20200713,
+    1144
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "fc96145719a65b2551339d087ddd95b72e14646f",
-   "sha256": "12sfzvb5lf20d4kqa1fzhz8s48lgr8w0x7qimjcy5c75yjb123wl"
+   "commit": "b84810105940aa5e0bde20c9a89359c95c9b6917",
+   "sha256": "1w922wl7zab61v6z09rh3xpjnfi97c802ijvv4g92nqds6fhnym1"
   },
   "stable": {
    "version": [
     0,
-    3,
+    5,
     0
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "43ffa9d9c3dcc0574038bebd049102642f50b290",
-   "sha256": "0vzpfd9xv80ph9xz8psczz46blhsdnac8zh5i944klkxgqdw7x1x"
+   "commit": "b84810105940aa5e0bde20c9a89359c95c9b6917",
+   "sha256": "1w922wl7zab61v6z09rh3xpjnfi97c802ijvv4g92nqds6fhnym1"
   }
  },
  {
@@ -85998,15 +87804,15 @@
   "repo": "ruby-test-mode/ruby-test-mode",
   "unstable": {
    "version": [
-    20190412,
-    909
+    20200521,
+    907
    ],
    "deps": [
     "pcre2el",
     "ruby-mode"
    ],
-   "commit": "e805a81c3ea787f3c82dbb252c21d747be20bc7a",
-   "sha256": "07j74hgq3d4y6m992y98y9n87ivk8a2wb3zlahkj32slkcqfz3kd"
+   "commit": "5bb6b7b7ba0a4c91ba2e029853215e76e5df7772",
+   "sha256": "19sacch06cxj1803m8ac246cl9sp1wsxbp7zgrhmw1gdpsnpxac8"
   },
   "stable": {
    "version": [
@@ -86164,11 +87970,11 @@
   "repo": "vmalloc/rust-auto-use.el",
   "unstable": {
    "version": [
-    20181125,
-    637
+    20200608,
+    1359
    ],
-   "commit": "d924505ecd954625dcb2d56dfba97111dc6a17fa",
-   "sha256": "1yw9l13dgkfsdv4kgpbvzx12g8bqycclgq2gk4b1r29mxy72wnpq"
+   "commit": "d5205f7b9b9eae0f7d0893f87d3391464719f9c0",
+   "sha256": "01jhb4bjb4dc4m4nw6n16dc4cc7x9z7j2vri0s1y16v1bm4cv26g"
   }
  },
  {
@@ -86179,20 +87985,20 @@
   "repo": "rust-lang/rust-mode",
   "unstable": {
    "version": [
-    20200513,
-    812
+    20200709,
+    723
    ],
-   "commit": "bfe40565753295a4cf8403f4124710acd2827d21",
-   "sha256": "1bx0hfilw48cz8n58lf427yg6sfi50wr91vcmj0w0m4s26zbdrr2"
+   "commit": "ca7d99c6fd90fc1e636aa9d4020a2f077786a0c3",
+   "sha256": "1m24g08q7w76aq0gnb2pdp0jbadi19fw4jmbgmx47180glz082qh"
   },
   "stable": {
    "version": [
     0,
-    4,
+    5,
     0
    ],
-   "commit": "106aeab800fb3404baf231845d3e3549ec235afa",
-   "sha256": "0bcrklyicxh032rrp585rl5mxd26nb61dp6r5bl935rlcmxzsczh"
+   "commit": "00177f542976601d7f114fed82caaa3daad7b177",
+   "sha256": "1f3nnl0d7p9b5cv1bpm0hj898qmr2psxfvmqr61bh684z7fgc045"
   }
  },
  {
@@ -86226,8 +88032,8 @@
   "repo": "brotzeit/rustic",
   "unstable": {
    "version": [
-    20200516,
-    759
+    20200724,
+    1517
    ],
    "deps": [
     "dash",
@@ -86241,8 +88047,8 @@
     "spinner",
     "xterm-color"
    ],
-   "commit": "52b632d161b64bdca3f35e35180af63b668ce9fb",
-   "sha256": "1pcqm8463hjlv70bn6cpl2sv3z2h992yvkzrcz0w2rpz6jgrcfg1"
+   "commit": "75b99201bb4e7a0bd990c006896ad7897f284ca2",
+   "sha256": "1ddma5fi2yaxg2c2hvigfz4hbp218l71ixcnnkzp8ilqr8m2jvjj"
   }
  },
  {
@@ -86256,8 +88062,8 @@
     20150402,
     1442
    ],
-   "commit": "134497bc460990c71ab8fa75431156e62c17da2d",
-   "sha256": "1z5psj8mfp0fw8fx6v1sibf8cxhz30yyiwjw17w80f9c24g0j4ii"
+   "commit": "081d5173158054c6d0780b9462c74c5697eac1fc",
+   "sha256": "1s950jmhrwjmzrr3qv3636sn2rhxfvaqlrl36h8700pq3791l1fs"
   },
   "stable": {
    "version": [
@@ -86350,15 +88156,15 @@
   "repo": "mattusifer/s3ed",
   "unstable": {
    "version": [
-    20180204,
-    1349
+    20200720,
+    1313
    ],
    "deps": [
     "dash",
-    "seq"
+    "s"
    ],
-   "commit": "13503cb057bed29cb00a14dffe4472b5cb7748ad",
-   "sha256": "1ak5nmay12s4ipmvm1a36kyny05xhzmj7wp6dry391db9n7g2wy0"
+   "commit": "3e3b962d3848e6cc8ce9dc491b2e29e915a5c351",
+   "sha256": "0v8c3zwnfy40clbq6lb03z33n5pj36sz5jpprmgppms3w2ba6fw8"
   }
  },
  {
@@ -86393,16 +88199,16 @@
   "repo": "sagemath/sage-shell-mode",
   "unstable": {
    "version": [
-    20191103,
-    1040
+    20200524,
+    958
    ],
    "deps": [
     "cl-lib",
     "deferred",
     "let-alist"
    ],
-   "commit": "8ff9888fd84a96816512403a1b5ded93b4d4278b",
-   "sha256": "0rrp137r5cf049xqry3jz514pmdzfxkmri9z8kv08yk3w3c9sapj"
+   "commit": "855fb4ece47cea2c72295ce2158e0915829835b5",
+   "sha256": "12s289g5xc1b7szyp0zhxdxh6rzhlhkzwiwg14hf020c41mz27am"
   },
   "stable": {
    "version": [
@@ -86599,6 +88405,24 @@
   }
  },
  {
+  "ename": "saveplace-pdf-view",
+  "commit": "94efcb8e99185753d73c7436c18a086c441c0d7f",
+  "sha256": "1z43sb8fyg8zhlcmpn2vbivjnzljka64q146v5v81k990pjvk3z1",
+  "fetcher": "github",
+  "repo": "nicolaisingh/saveplace-pdf-view",
+  "unstable": {
+   "version": [
+    20200719,
+    113
+   ],
+   "deps": [
+    "pdf-tools"
+   ],
+   "commit": "bbbc466fff060b372a9d2b30e48ec6bbb7d03095",
+   "sha256": "13dxd06dicv50rl1kk6c5971iaj7x3imkqs5q2ndm0daqzrp0lva"
+  }
+ },
+ {
   "ename": "say-what-im-doing",
   "commit": "35763febad20f29320d459394f810668db6c3353",
   "sha256": "0wi7318q7mms4wjbzhnsw298bjh7g957dnra0bvg87vv48pz3yfp",
@@ -86635,8 +88459,8 @@
    "deps": [
     "cider"
    ],
-   "commit": "277404a6bb0a979e195df5886fc143bb1d1f1e8c",
-   "sha256": "0whsfl6z39zhjm6b3wcliwfs70xz3pg9b1r6s2bcwnp5ld1v65m9"
+   "commit": "cbc3546fb6b1374080f1646ac3a6532a5723b7eb",
+   "sha256": "06aysbwr4lr9cd8mbfdpkiz8458hwl5qg41nq1wnl5dx0gvw3fgn"
   },
   "stable": {
    "version": [
@@ -86659,11 +88483,11 @@
   "repo": "hvesalai/emacs-sbt-mode",
   "unstable": {
    "version": [
-    20200106,
-    753
+    20200521,
+    632
    ],
-   "commit": "633a315ad453cd963588c9b8fba02d9cf75296b4",
-   "sha256": "0ha2lyw42ir16b2d09y27q0rsdx6azcfv258frp1ja63mx0jiqic"
+   "commit": "4358ed862a1b1ec18ac9699afb4862146669eb79",
+   "sha256": "1qm5ziilapfpafqch3pl5iijfj1kwccl2r7g4xl5a2pqnc480sjl"
   },
   "stable": {
    "version": [
@@ -86683,11 +88507,11 @@
   "repo": "openscad/openscad",
   "unstable": {
    "version": [
-    20190413,
-    1246
+    20200628,
+    2256
    ],
-   "commit": "648206e2ea609e8f38599cd540368d54ff52ae8a",
-   "sha256": "0vsabvci7y5l1lbqmn0fw301wfnwbb7fw7vffm1gd0w7rjjhxw73"
+   "commit": "0c9a36b82c7129a0fdce20ce99e15ecdffd3b437",
+   "sha256": "0qsvi7d3bcsai99dvbdfm8n6qafvwj51r4g4ph5jch2f1yb8m995"
   }
  },
  {
@@ -86698,14 +88522,14 @@
   "repo": "zk-phi/scad-preview",
   "unstable": {
    "version": [
-    20160206,
-    1336
+    20200816,
+    549
    ],
    "deps": [
     "scad-mode"
    ],
-   "commit": "fee011589671cc8f1296cb6aa81553e5bb699819",
-   "sha256": "13x00dls59zshz69260pnqmx6ydrjg8p2jdjn1rzgf5dsmwfy3sc"
+   "commit": "75fe00a9aaf875ac97930bdb334aef9e479e41d5",
+   "sha256": "0vdb9ib76fjdvm3f13v3kh7x04izq993crrzsqp0vs5nilbkrs8c"
   }
  },
  {
@@ -86716,20 +88540,20 @@
   "repo": "hvesalai/emacs-scala-mode",
   "unstable": {
    "version": [
-    20190929,
-    1522
+    20200524,
+    1304
    ],
-   "commit": "46bb948345f165ebffe6ff3116e36a3b8a3f219d",
-   "sha256": "1072lsin7dxadc0xyhy42wd0cw549axbbd4dy95wfmfcc1xbzjwv"
+   "commit": "1d08e885b1489313666c7f15a3962432a4f757ee",
+   "sha256": "06g6szxb9a4ih90mcryv9r1h6nqbpk3x4icd1i6nh2ky1sj6s37q"
   },
   "stable": {
    "version": [
     1,
-    0,
+    1,
     0
    ],
-   "commit": "56cba2903cf6e12c715dbb5c99b34c97b2679379",
-   "sha256": "13miqdn426cw9y1wqaz5smmf0wi3bzls95z6shcxzdz8cg50zmpg"
+   "commit": "46bb948345f165ebffe6ff3116e36a3b8a3f219d",
+   "sha256": "1072lsin7dxadc0xyhy42wd0cw549axbbd4dy95wfmfcc1xbzjwv"
   }
  },
  {
@@ -86813,11 +88637,11 @@
   "repo": "emacs-pe/scihub.el",
   "unstable": {
    "version": [
-    20190801,
+    20200604,
     920
    ],
-   "commit": "a32e8f47961d606c1315a972f2dab4d3a61945af",
-   "sha256": "06qcs7jq68ylmvw0kf1myhpgzci7i9qbb2h0hxh0g21mz8ssna3f"
+   "commit": "5a4666ca99de6a90108b4606b4c57270c03002ce",
+   "sha256": "1njvf7712ryfd83xk27b6d2nx653j57x3ckn7xba7an4i0g7gk4a"
   }
  },
  {
@@ -86881,14 +88705,14 @@
   "repo": "technomancy/scpaste",
   "unstable": {
    "version": [
-    20200415,
-    40
+    20200717,
+    2007
    ],
    "deps": [
     "htmlize"
    ],
-   "commit": "ca95a8dd088e848bd1cab6be207c6a98343ee176",
-   "sha256": "01v199xkadcbdr627skhisixdqj0hbbyv912xgyypm1rxdjfhhx9"
+   "commit": "2aa1513fa0a402f03b993c0a6929daf39820b02b",
+   "sha256": "1cvkqb5v0v790nmhg4wi6kv6mbzfkfcgvn2xh9bmny37dcv0i2gk"
   },
   "stable": {
    "version": [
@@ -86927,6 +88751,30 @@
   }
  },
  {
+  "ename": "scratch-comment",
+  "commit": "9578c2878a7a5f89fd495531e03a8658696fc360",
+  "sha256": "06zn1czv7bw8akbgp61pxi1k4kd2r06d7nxvr14j3cpb3v7fs7kz",
+  "fetcher": "github",
+  "repo": "conao3/scratch-comment.el",
+  "unstable": {
+   "version": [
+    20200812,
+    1025
+   ],
+   "commit": "cf3e967b4def1308b6ef1cfeedd2cf15ee6e226c",
+   "sha256": "0wq1vf391h53ys3292ap7f4nvk4i7wz3cqfbb18bwzz7iga922qd"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "commit": "d62665ecbeb05d1f92761af185736609278ffba2",
+   "sha256": "1bnzijfp6jkhl59y18qxnj39f06jzs39xgvj5aj7vlab5zrassmg"
+  }
+ },
+ {
   "ename": "scratch-ext",
   "commit": "a142d336a57d075dfd5caf44fa1c1254b83ac728",
   "sha256": "031wxz10k1q4bi5hywhcw1vzi41d5pv5hc09x8jk9s5nzyssvc0y",
@@ -86979,14 +88827,14 @@
   "repo": "zk-phi/scratch-palette",
   "unstable": {
    "version": [
-    20150225,
-    842
+    20200816,
+    551
    ],
    "deps": [
     "popwin"
    ],
-   "commit": "f6803b448079f4a81cc699cec7442ef543cd5818",
-   "sha256": "00b4r8bqlxc29k18vig0164d5c9fp5bp5q26d28lwr4f0s4a71d2"
+   "commit": "c39cacb11992383887fa096ace85510baed94aef",
+   "sha256": "1va9c97cvdqf6404kixvgk0qwrlnc1lrz6khpkdp2w7w1brhf2f7"
   }
  },
  {
@@ -86997,14 +88845,14 @@
   "repo": "zk-phi/scratch-pop",
   "unstable": {
    "version": [
-    20200504,
-    2004
+    20200818,
+    1820
    ],
    "deps": [
     "popwin"
    ],
-   "commit": "1a36cb5ab6668aa57b1b7192521a472feeec1ea2",
-   "sha256": "1hdbwzd52qhn2jc8ghkp0lwr2hzrs4zfnwj6vniffxd5xz3c21ck"
+   "commit": "b1bdd0f8a345737069194ab8727f164f5d8560b4",
+   "sha256": "03x0kb0cf4yzjxl9nqwl3sg9nl75l9n8k4ain0yw0h2vpi2g0wf3"
   }
  },
  {
@@ -87199,21 +89047,6 @@
   }
  },
  {
-  "ename": "seclusion-mode",
-  "commit": "b087d151b00f5251b15ebb071896995874afb274",
-  "sha256": "0ff10x6yr37vpp6ffbk1nb027lgmrydwjrb332fskwlf3xmy6v0m",
-  "fetcher": "github",
-  "repo": "dleslie/seclusion-mode",
-  "unstable": {
-   "version": [
-    20121118,
-    2353
-   ],
-   "commit": "9634e76c52bfb7200ff0f9f01404f743429e9ef0",
-   "sha256": "15cjhwjiwmrfzmr74hbw5s92si2qdb8i97nmkbsgkj3444rxg239"
-  }
- },
- {
   "ename": "secretaria",
   "commit": "3eeddbcf95315da40d021a6913ccf344849c4284",
   "sha256": "04pcibzdljcfiha4yh10van8gsjrzn6bdkvkm2ahfcwrmscfn3hf",
@@ -87365,11 +89198,11 @@
   "repo": "Kungsgeten/selected.el",
   "unstable": {
    "version": [
-    20170222,
-    834
+    20200528,
+    606
    ],
-   "commit": "03edaeac90bc6000d263f03be3d889b4685e1bf7",
-   "sha256": "1d72vw1dcxnyir7vymr3cfxal5dndm1pmm192aa9bcyrcg7aq39g"
+   "commit": "3043fd2609f7e71d809763ae6e8dd4b6c904e63d",
+   "sha256": "11cr55g7rrr4gqb9r2znmff0bp112l7a96d26mznfdprzj7pdzvd"
   }
  },
  {
@@ -87404,19 +89237,19 @@
   "repo": "raxod502/selectrum",
   "unstable": {
    "version": [
-    20200514,
-    1440
+    20200817,
+    1459
    ],
-   "commit": "392fb1ba8a594a291854c27d2b6824b04cd0c2e7",
-   "sha256": "1rr7w8jlxsfn2kpryb1ywn066qlc31px1dbwd42hafp6k5cl870n"
+   "commit": "5448e7cbaeb8d58c5dfd474cd0e03d6db60ac532",
+   "sha256": "09xfi0gfk9jmjmz941cfzwrv15jlzqxzwlq4m0qb29g1r4kv62ng"
   },
   "stable": {
    "version": [
-    1,
+    2,
     0
    ],
-   "commit": "5995a4ba07a7b1b5f661ff050d93ad702f9014a4",
-   "sha256": "105zl102dwbzvk50xh6b824nq6p24kxhky18ghdnk5yi5sv620lm"
+   "commit": "51b75f4b287b13beff86810eb3a060747ac191e9",
+   "sha256": "08wm4ybidn8g7sy5a009lnsm0f1p7a3jfzpzxnzylvnyrmyhi3y4"
   }
  },
  {
@@ -87427,27 +89260,27 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20200404,
-    1550
+    20200716,
+    1414
    ],
    "deps": [
     "prescient",
     "selectrum"
    ],
-   "commit": "3ab7605d997fb8337bf5ded2ad960b98ac0e1fd7",
-   "sha256": "081v916gnjvx2rzjbqkqhdwijz57w7iryxzg71729gwvavs25lsv"
+   "commit": "cc289ba3b0d89f251267ca2b669d01b3afecc530",
+   "sha256": "0xwy2xh55dm4y7wlz2g6fkwf1xyqqjyp0sjb522qgasivknzwa5p"
   },
   "stable": {
    "version": [
-    4,
-    1
+    5,
+    0
    ],
    "deps": [
     "prescient",
     "selectrum"
    ],
-   "commit": "aa3110281a0622fa7b5da115cefb71a319b5b1a0",
-   "sha256": "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3"
+   "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
+   "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
   }
  },
  {
@@ -87492,14 +89325,14 @@
   "repo": "wanderlust/semi",
   "unstable": {
    "version": [
-    20200429,
-    641
+    20200818,
+    1252
    ],
    "deps": [
     "flim"
    ],
-   "commit": "57a948c5f07e57e78ab3c0e6fd76ffcd591bb4ac",
-   "sha256": "0y73l0zf2lg7kxz7kpbirpipzq007bdrgmlqfrv8najh4q03gf8g"
+   "commit": "10897f024fd9282c73385d24514cc4b57fe193db",
+   "sha256": "14d4j17l0ngg6fp00mf2zgyz6989cx9n5n3za7ifcfr8gjbbn7gp"
   }
  },
  {
@@ -87510,29 +89343,30 @@
   "repo": "conao3/seml-mode.el",
   "unstable": {
    "version": [
-    20200419,
-    1022
+    20200812,
+    1027
    ],
    "deps": [
     "htmlize",
     "impatient-mode",
     "web-mode"
    ],
-   "commit": "4ca9d275948898602640a46573cb95d7eef913e5",
-   "sha256": "1wl5qsph19i0ll2ppn9va4563m4bfz1zpv99d7xd7w65x6cp29ci"
+   "commit": "7a9a8305f7b54ee59e4c29b33ef5fd4058ba4219",
+   "sha256": "0sm6kd0r7wjsvynfkhq33d6rz431j784jlbxjpag60g5avxha9s9"
   },
   "stable": {
    "version": [
     1,
-    5,
+    6,
     0
    ],
    "deps": [
     "htmlize",
-    "simple-httpd"
+    "simple-httpd",
+    "web-mode"
    ],
-   "commit": "f62f7a9f5e18ef8f370444a1fce710770227b0f5",
-   "sha256": "037p2kiwkkbk921ik15jalcci0p87q3my9mxzyh6i0mnc6qsh4zf"
+   "commit": "1f8bda7e5a4a36212f968b462cfc31ce53c6db85",
+   "sha256": "1hc0rwlgapbqf9965n3nsyvd4chdga5av7ya82wjzxn1mx4bhifa"
   }
  },
  {
@@ -87610,15 +89444,15 @@
   "repo": "twlz0ne/separedit.el",
   "unstable": {
    "version": [
-    20200407,
-    728
+    20200702,
+    634
    ],
    "deps": [
     "dash",
     "edit-indirect"
    ],
-   "commit": "e9a7b4402859d73f052330106d29ad14c3d9b6f3",
-   "sha256": "0d9w8n497j6q879rd9mqrmzvk3ssm95ayqbyfb5x0r3pnywdjp1b"
+   "commit": "fa752df206f8f6e64f27e2a6d998ddd58e3c444b",
+   "sha256": "1c0k5cg2si4i0hwdi7lbh058rq6vmry8ncddgq5dxbih14wpbys4"
   }
  },
  {
@@ -87893,11 +89727,11 @@
   "repo": "sfztools/emacs-sfz-mode",
   "unstable": {
    "version": [
-    20200312,
-    1153
+    20200716,
+    1023
    ],
-   "commit": "4d8ccde889b112896c7299cad9f1e9305bde8cb3",
-   "sha256": "1ccqb05xmnxpwxl9vdvkb3f8211kbj5rsb73xv1ghyx3i40qjmzm"
+   "commit": "aaf31d1b68817251affed7da719dfcb2acd4b51a",
+   "sha256": "1b9qi5vhqp2c2bmkyvmjj4nrb3n42g4w71p2phxssiwmyq80m28f"
   }
  },
  {
@@ -87908,26 +89742,26 @@
   "url": "https://depp.brause.cc/shackle.git",
   "unstable": {
    "version": [
-    20200506,
-    1231
+    20200529,
+    1839
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "4b81514191dd182a28a3e5b2fe3069264b6835fe",
-   "sha256": "0k3waffnd08x1vb7mj6ix21zcadn9ipx4fis26iy3dsj35cbd3fb"
+   "commit": "171c3f437d853f34782b201d86ef765665b755e2",
+   "sha256": "0s4br59zpd5qq7z9074ddq9lmwnddq2ixijwi666wp5gxw45fpgg"
   },
   "stable": {
    "version": [
     1,
     0,
-    3
+    4
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "242bacc940c18b6f9c156e1912155d45537fd827",
-   "sha256": "0qqx8py21jaq1bdafkfqx18ns4zn305qg84zbmy65spiqnfq8hwk"
+   "commit": "171c3f437d853f34782b201d86ef765665b755e2",
+   "sha256": "0s4br59zpd5qq7z9074ddq9lmwnddq2ixijwi666wp5gxw45fpgg"
   }
  },
  {
@@ -87971,8 +89805,8 @@
     20190903,
     1907
    ],
-   "commit": "f3cbe25c82f99367ac009d67a2400eb6d56547ff",
-   "sha256": "10y7qcb61f0x17fy5h2flhvyyql99cshqmfy1varn1mgg2h36mn9"
+   "commit": "5f24c90bb8e7333ee4315619672dc2ec69d198be",
+   "sha256": "0msrhh41nyvyy17skd5y5lzdz7a6lxnlqnflgz4xf2qpnc390kd6"
   }
  },
  {
@@ -88290,8 +90124,8 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "342c55fab27f1e62472eebbb53cfc73b0d422a34",
-   "sha256": "0hmxa856hlai9ydarfsn5s9i8cnfrydgpa7mkh4a36klhdj21gfh"
+   "commit": "465dc1fcaeed778b504d3d349a30e611368dcc00",
+   "sha256": "1gzky5xs63y7xl7j2hs81aja8qq6c5l3vk07hh050flw4yfxyi23"
   },
   "stable": {
    "version": [
@@ -88355,19 +90189,19 @@
   "repo": "emacs-w3m/emacs-w3m",
   "unstable": {
    "version": [
-    20200406,
-    2209
+    20200813,
+    37
    ],
-   "commit": "e522a44b151d69d4a176e8809225598ab540fc4d",
-   "sha256": "1alishzz4j1hbfyfi09rkhffx6gv16yxln7q8jx25shb9rssivyz"
+   "commit": "7dcbab77334c5adf8309c7a93512c9f95a2c64e4",
+   "sha256": "0in8ir99b33d83nfxsnpj2dgyv4f558yrid77bp7f9k0qpgpj4zk"
   }
  },
  {
   "ename": "shm",
-  "commit": "68a2fddb7e000487f022b3827a7de9808ae73e2a",
-  "sha256": "1qmp8cc83dcz25xbyqd4987i0d8ywvh16wq2wfs4km3ia8a2vi3c",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "0z9qwwqf63wmizzby3yanqa31050f9jp6zrfhx7grf8a9aj89m89",
   "fetcher": "github",
-  "repo": "chrisdone/structured-haskell-mode",
+  "repo": "projectional-haskell/structured-haskell-mode",
   "unstable": {
    "version": [
     20180327,
@@ -88431,20 +90265,20 @@
   "repo": "jcs-elpa/show-eol",
   "unstable": {
    "version": [
-    20190924,
-    621
+    20200723,
+    706
    ],
-   "commit": "bd0e47d7d61bf04a923a1d1689693a47af3a2b22",
-   "sha256": "0nq02qf7rxswxqcsl1lv7skd14ixmmyjkhk7wdbn5j3dhw192bh7"
+   "commit": "9fe95a4b1cda218082eb1d977190cc66c7a6b4ea",
+   "sha256": "1nzid34cwgyqih46glw3r5hkav1px5wf8w2skbac1f3vvjfm6qk7"
   },
   "stable": {
    "version": [
     0,
     0,
-    3
+    4
    ],
-   "commit": "097a2a79e5bd7c297bcdc231559813056cd584ac",
-   "sha256": "0yhwd20azk6ib992fy3vzb9knqji3g6hz3ahz89sz71sjjvy1rrm"
+   "commit": "9fe95a4b1cda218082eb1d977190cc66c7a6b4ea",
+   "sha256": "1nzid34cwgyqih46glw3r5hkav1px5wf8w2skbac1f3vvjfm6qk7"
   }
  },
  {
@@ -88502,14 +90336,14 @@
   "repo": "xuchunyang/shr-tag-pre-highlight.el",
   "unstable": {
    "version": [
-    20171113,
-    914
+    20200626,
+    1047
    ],
    "deps": [
     "language-detection"
    ],
-   "commit": "6182f43a36b0f82ba6edcf6e423b5f69a46a814e",
-   "sha256": "0916bpzi6sw5gyn5xgi9czf35zrvl04w10wz6fvz0lc57giihil1"
+   "commit": "931c447bc0d6c134ddc9657c664eeee33afbc54d",
+   "sha256": "09gcprqhl1ds4k407rlsjqr9y56a9wvjkli70wrf2l7w3dcm4qq0"
   },
   "stable": {
    "version": [
@@ -88530,14 +90364,14 @@
   "repo": "chenyanming/shrface",
   "unstable": {
    "version": [
-    20200508,
-    1711
+    20200816,
+    1032
    ],
    "deps": [
     "org"
    ],
-   "commit": "a146e7d25713c33999deff24338670a5d1308c6a",
-   "sha256": "17pm5ljn004wdsl2hryjla5my8a63mx3bpapkqfyvrkwswwzs3fw"
+   "commit": "9470de04daf0d917d0501432cea78cd6f5cefec4",
+   "sha256": "00qi4dg0684all2aw9dljzd3hp01vk3hsfqpf2pvri8l31a9dls5"
   },
   "stable": {
    "version": [
@@ -88687,8 +90521,8 @@
     20200410,
     639
    ],
-   "commit": "e5b4bae0a1a9bb8a762da40397a04efdd0b2b397",
-   "sha256": "0p9b621rgy34r1hl9xfzxh4xpx9gpsr3n330ypfxhlr0s5754j73"
+   "commit": "5308d6891276b0aa2b0fd865f6c6f8c1a80ecb54",
+   "sha256": "01sz7iqny2r1zfipkria6r5w48rlbrp3ranqqyywvsxhwwr3apmp"
   },
   "stable": {
    "version": [
@@ -88738,20 +90572,20 @@
   "repo": "rnkn/side-notes",
   "unstable": {
    "version": [
-    20200311,
-    547
+    20200617,
+    1445
    ],
-   "commit": "f78d7ba1173cf6056a95935add30cd30b7a7d347",
-   "sha256": "0fv1l3vrm50qbxs0dc1qyy1m3i08w46lh3z6nz8p32va5yjwfjmj"
+   "commit": "27c964334b8e30fa88e4278ae58dc3d00df34f1f",
+   "sha256": "1xl2ykdscrwpxm02ypnf68mkxf9dkp64cj465b69s874x10bxfc3"
   },
   "stable": {
    "version": [
     0,
-    3,
-    1
+    4,
+    0
    ],
-   "commit": "f78d7ba1173cf6056a95935add30cd30b7a7d347",
-   "sha256": "0fv1l3vrm50qbxs0dc1qyy1m3i08w46lh3z6nz8p32va5yjwfjmj"
+   "commit": "27c964334b8e30fa88e4278ae58dc3d00df34f1f",
+   "sha256": "1xl2ykdscrwpxm02ypnf68mkxf9dkp64cj465b69s874x10bxfc3"
   }
  },
  {
@@ -88942,14 +90776,14 @@
   "repo": "jorenvo/simple-mpc",
   "unstable": {
    "version": [
-    20180716,
-    129
+    20200523,
+    1804
    ],
    "deps": [
     "s"
    ],
-   "commit": "bee8520e81292b4c7353e45b193f9a13b482f5b2",
-   "sha256": "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"
+   "commit": "ce731fa390b7e4edfc461a9cfb4443c1aab4b011",
+   "sha256": "14fb52r5fzdcqqbh5kkajaz43iqq8g64g0rsswwwv6g1j23y93k3"
   }
  },
  {
@@ -89104,6 +90938,24 @@
   }
  },
  {
+  "ename": "sis",
+  "commit": "bea2374d589869dde682db96c35c530a051de3a9",
+  "sha256": "0zkfpmnnj30l36mcv90x90vs31x8q2rrs2ixy5w8lc96vn1dgavf",
+  "fetcher": "github",
+  "repo": "laishulu/emacs-smart-input-source",
+  "unstable": {
+   "version": [
+    20200816,
+    1533
+   ],
+   "deps": [
+    "terminal-focus-reporting"
+   ],
+   "commit": "2568d04908af2d529f5ce0e71f0da541ff53e2a8",
+   "sha256": "0kmfhq6rypcc00ylmhf0m9nd51r6kzqfp6hcd22riynq51fb2cyh"
+  }
+ },
+ {
   "ename": "skeletor",
   "commit": "1e63aefc869900c2af6f958dc138f9c72c63e2b8",
   "sha256": "1vfvg5l12dzksr24dxwc6ngawsqzpxjs97drw48qav9dy1vyl10v",
@@ -89272,8 +91124,8 @@
   "repo": "yuya373/emacs-slack",
   "unstable": {
    "version": [
-    20200512,
-    1702
+    20200725,
+    1052
    ],
    "deps": [
     "alert",
@@ -89283,8 +91135,8 @@
     "request",
     "websocket"
    ],
-   "commit": "b30525d63bb46882240de6f86e951305bcc7af10",
-   "sha256": "1f35lr19g5ci1jba6b9hkl7vajg4iy1yw6wb8bhg8dyppdkwnmvy"
+   "commit": "7570e82604b59b65e9ef31c5325bef45769ae027",
+   "sha256": "1i7fb4icj9h4lkcsfqqqhsi59msmslckcgxaa5aag4v3cdy93prg"
   }
  },
  {
@@ -89345,27 +91197,27 @@
   "repo": "slime/slime",
   "unstable": {
    "version": [
-    20200414,
-    1444
+    20200810,
+    224
    ],
    "deps": [
     "cl-lib",
     "macrostep"
    ],
-   "commit": "221518f0d3d224403743e6690f6bb66c42d9dec9",
-   "sha256": "0wbxv461lq7760gsqjw5djhjkzmwxz563l97csn2637gb1wkn461"
+   "commit": "fb12bac676ab51b75be19197e21ab4674479d627",
+   "sha256": "1lqd6mk87kmmyb83qf4h0i5wpq3mnqwzl9gdcjildy7afsp3f1fk"
   },
   "stable": {
    "version": [
     2,
-    24
+    26
    ],
    "deps": [
     "cl-lib",
     "macrostep"
    ],
-   "commit": "c1f15e2bd02fabe7bb468b05fe311cd9a932f14f",
-   "sha256": "0w7j835p9riyd6n4znj3x255lwsrmy0lj51hpc7bhk0vdz2cv2qm"
+   "commit": "fb12bac676ab51b75be19197e21ab4674479d627",
+   "sha256": "1lqd6mk87kmmyb83qf4h0i5wpq3mnqwzl9gdcjildy7afsp3f1fk"
   }
  },
  {
@@ -89440,14 +91292,14 @@
   "repo": "augfab/slime-repl-ansi-color",
   "unstable": {
    "version": [
-    20190426,
-    1414
+    20200712,
+    1226
    ],
    "deps": [
     "slime"
    ],
-   "commit": "fdd0c7a75a217abca2ff16ab9281d55f392bd841",
-   "sha256": "0d3q9js5vybddniyirvvabljmxasgdqimjdpy7pn48hh4rd875di"
+   "commit": "e38c7958d9657e41c426b4e96938b3f604238795",
+   "sha256": "0rbg6ndi59ycw54s2c21a3c2cr0wlymrpp4qr33yxv1ik00n5n5p"
   }
  },
  {
@@ -89570,11 +91422,11 @@
   "repo": "joaotavora/sly",
   "unstable": {
    "version": [
-    20200314,
-    55
+    20200816,
+    928
    ],
-   "commit": "1382bda945ecfb4b177c7d05a36da8fd41e0384c",
-   "sha256": "1hmdx3nakhpsmg6zr52090pimmy0kpjz2adyi0m1wzh9zdg5cx4x"
+   "commit": "155cb0655e037477b592f8bde9c80022427293e5",
+   "sha256": "0g0ncqb7x3g3gafxm5j0v893cvnskq4idb5442f0v8d3y9pr0lyi"
   },
   "stable": {
    "version": [
@@ -89679,14 +91531,14 @@
   "repo": "joaotavora/sly-quicklisp",
   "unstable": {
    "version": [
-    20191012,
-    2124
+    20200707,
+    1635
    ],
    "deps": [
     "sly"
    ],
-   "commit": "01ebe3976a244309f2e277c09206831135a0b66c",
-   "sha256": "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"
+   "commit": "4707b62803d7a29f172e9c5ff993b91187a9aaf3",
+   "sha256": "1i4fqgd42khl85d4fifgfz2z6njpb8bxdry4chmgl8wfhh0mydza"
   }
  },
  {
@@ -89746,11 +91598,11 @@
   "repo": "zenitani/elisp",
   "unstable": {
    "version": [
-    20200508,
-    249
+    20200727,
+    1249
    ],
-   "commit": "f808ac53870d32c57a3cd01dd2850ee62d3af98a",
-   "sha256": "0dy3idfbvlrrim3rkv7lrr12gg2s4wlml6wcwgv1mazq3kdvjvvl"
+   "commit": "1f14c86af7ca5813ddc0b6dfcf2edd4a81371644",
+   "sha256": "0z1mmbgsx2lxrlyg59kz39khbir5k3cwb83mpz49ixfmy54byx5n"
   }
  },
  {
@@ -89770,16 +91622,16 @@
  },
  {
   "ename": "smart-dash",
-  "commit": "98a2cf93cc41cb2bba14f91a83b6949267623198",
-  "sha256": "1n3lh0ximwrqawdg8q9ls6aabidrawqca5w67f8vsfmrvyfx48n4",
-  "fetcher": "bitbucket",
+  "commit": "59d3ab87741a9290fce17307256e085b91dd1d8a",
+  "sha256": "1rs5xxmn2qdpwla55rq4ar1kani2acil3sq47gx15y3v0rsrxxkx",
+  "fetcher": "github",
   "repo": "malsyned/smart-dash",
   "unstable": {
    "version": [
     20200104,
     1620
    ],
-   "commit": "cc540eea7452e15d4ef2b09d8809d88174f509c0",
+   "commit": "9db5c6bb4a51457281588523a2725939a31d3f26",
    "sha256": "10xp7nf42v9rz9as3gspjcm3rjy075xza3yqbcppdk1zm59xxljr"
   }
  },
@@ -89832,24 +91684,6 @@
   }
  },
  {
-  "ename": "smart-input-source",
-  "commit": "82ef5414e63fe94905f042534d8bde88fb5461c6",
-  "sha256": "1dx3cvbm9hrdfrj4ggf0hbmfag2hybdlrqgpzy48fc07dscv0acd",
-  "fetcher": "github",
-  "repo": "laishulu/emacs-smart-input-source",
-  "unstable": {
-   "version": [
-    20200428,
-    1031
-   ],
-   "deps": [
-    "names"
-   ],
-   "commit": "6d6db53db20712570cb99cd6a03f2be0349d87b8",
-   "sha256": "1h8vcdzgbg80c51cl3x6ic2d8q2sjlk5dp9j4wvmzqg6qdf34a6b"
-  }
- },
- {
   "ename": "smart-jump",
   "commit": "52f29e14e61b28cd1637ca5d6bd878d91a71251f",
   "sha256": "14c7p6xqasd0fgn70zj1jlpwjxldzqx44bcdqdk6nmjihw0rk632",
@@ -90441,15 +92275,15 @@
   "repo": "kyleam/snakemake-mode",
   "unstable": {
    "version": [
-    20200417,
-    2230
+    20200720,
+    349
    ],
    "deps": [
     "cl-lib",
     "magit-popup"
    ],
-   "commit": "03562dcd82964d53eff7314b844c2897d1d9af55",
-   "sha256": "1cj8628l196da5j54wl8wq7znvha44z1f6w9qqg37yw0pjynbvxz"
+   "commit": "44b88fc2aff7c970c2699de2d8615d81092342f6",
+   "sha256": "0538bfjaj19s5fa94x3s0np4jj7cw2wc77yngxk809h8bb82s7ba"
   },
   "stable": {
    "version": [
@@ -90689,14 +92523,14 @@
   "repo": "hlissner/emacs-solaire-mode",
   "unstable": {
    "version": [
-    20200423,
-    742
+    20200812,
+    1552
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "adc8c0c60d914f6395eba0bee78feedda128b30b",
-   "sha256": "0kj6lhx57gl3809q4bmgv7cac8wk61g1sdyr4c2a0y9jkzf21x67"
+   "commit": "cd63b675140232f399e7733d7ce95a0b931b1058",
+   "sha256": "0c7l1q7xyzvxqlk7vawfrx7gmzsmycjy2lib12wmgvfh83bgc3bh"
   },
   "stable": {
    "version": [
@@ -90719,14 +92553,14 @@
   "repo": "bbatsov/solarized-emacs",
   "unstable": {
    "version": [
-    20200411,
-    1026
+    20200717,
+    1054
    ],
    "deps": [
     "dash"
    ],
-   "commit": "c8f09494330900081ed5a4f020c972a37fd7b02e",
-   "sha256": "0z5srqz4g81bsyw74q04fwz30qvi4i08s7fszmwnwyr5xrf5dx42"
+   "commit": "63eb59a7ef32abc6780883e27df69a6e42a8a6e4",
+   "sha256": "1hqqmji6vh468w73xi3fvkyzznr27f83czz0pcxzb00q62cbdqf4"
   },
   "stable": {
    "version": [
@@ -90757,8 +92591,8 @@
     "flycheck",
     "solidity-mode"
    ],
-   "commit": "022b3159832384a7dcdc2168809e698600826047",
-   "sha256": "144w84abffbrbb4wflgipndaasx82axf36xm373ybdih4131mi69"
+   "commit": "d166a86b83907e0cfd64c191e9dfce4b44a9843e",
+   "sha256": "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"
   },
   "stable": {
    "version": [
@@ -90782,11 +92616,11 @@
   "repo": "ethereum/emacs-solidity",
   "unstable": {
    "version": [
-    20200418,
-    921
+    20200529,
+    1924
    ],
-   "commit": "022b3159832384a7dcdc2168809e698600826047",
-   "sha256": "144w84abffbrbb4wflgipndaasx82axf36xm373ybdih4131mi69"
+   "commit": "d166a86b83907e0cfd64c191e9dfce4b44a9843e",
+   "sha256": "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"
   },
   "stable": {
    "version": [
@@ -90856,10 +92690,10 @@
  },
  {
   "ename": "sorcery-theme",
-  "commit": "cdb6f1cfbf3bbeb1eeb6440fb216e8e3b523bb0f",
-  "sha256": "1qsavwbqidva4m0mdw393qbwlibhkkywnxj9mshfmkwaq050ivb2",
+  "commit": "04f78275b18383eb9594eb57e48b5b5c4639cbd8",
+  "sha256": "18g4lkn98cjz5y4c2csziykq9ixafgixsxki04hfk9k1d9idixz3",
   "fetcher": "github",
-  "repo": "vxid/emacs-theme-sorcery",
+  "repo": "mtreca/emacs-theme-sorcery",
   "unstable": {
    "version": [
     20200413,
@@ -90880,20 +92714,20 @@
   "repo": "mssola/soria",
   "unstable": {
    "version": [
-    20200505,
-    851
+    20200803,
+    1402
    ],
-   "commit": "0f73c5a87b874e72ed286cf43e0b8dfec73769c3",
-   "sha256": "0pmsgvmf1ilv2jpay1mwb49rjc1y3h1hhc2kg3rzjpg10p3mak1n"
+   "commit": "d5274cc4a8e19ed0f1393a09192def951d025a11",
+   "sha256": "1zdcwccndgmn83xmlxqlx6azd03g7dxd2ldc3dj6yxbjasfx00x5"
   },
   "stable": {
    "version": [
     0,
     3,
-    2
+    3
    ],
-   "commit": "5edb9379cd21411fb182239ed9ac19be4a278f32",
-   "sha256": "103837zizm5iqv3sskxgkhjij2icjx9sjvjhq2l9zi66rlh9gca7"
+   "commit": "d5274cc4a8e19ed0f1393a09192def951d025a11",
+   "sha256": "1zdcwccndgmn83xmlxqlx6azd03g7dxd2ldc3dj6yxbjasfx00x5"
   }
  },
  {
@@ -90913,10 +92747,10 @@
  },
  {
   "ename": "sos",
-  "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
-  "sha256": "0d0n2h7lbif32qgz0z2c36536mrx36d22gq86xm7kmxday6iy19k",
+  "commit": "e8acf595ef51c928b4b41a9fea171fbfd40c080d",
+  "sha256": "1sny4wa2746fi9p18js0y9fm2f9ix7yblqyqa36ibkfj4b50hvxi",
   "fetcher": "github",
-  "repo": "rudolfolah/emacs-sos",
+  "repo": "emacsattic/sos",
   "unstable": {
    "version": [
     20200510,
@@ -91288,11 +93122,11 @@
   "repo": "nashamri/spacemacs-theme",
   "unstable": {
    "version": [
-    20200324,
-    1107
+    20200808,
+    1859
    ],
-   "commit": "f79c40fb241e204539fde97200abae91e828e585",
-   "sha256": "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n"
+   "commit": "462ef2ac16ab8c51de21d5f3d2b1b6122b314391",
+   "sha256": "1qhvf0xf58cm4x8wij1l6301q1y6jp8j7i61g8lizlb24f7fla9l"
   }
  },
  {
@@ -91420,11 +93254,11 @@
   "repo": "brailcom/speechd-el",
   "unstable": {
    "version": [
-    20200122,
-    2036
+    20200706,
+    1236
    ],
-   "commit": "590278f2b37919d082f576e522cbb790167a7f8d",
-   "sha256": "0s2znn91jy342xrcsda6mbf78f19ixxf5lf401jls8l5gj9bnx7f"
+   "commit": "058f91b4d1b0350221218656202ea80cd6827d65",
+   "sha256": "0c9k68mnwm7hhd9mj6f3p8k83kmd67rgzcr27791mnjfkhipynvb"
   }
  },
  {
@@ -91497,11 +93331,11 @@
   "repo": "ideasman42/emacs-spell-fu",
   "unstable": {
    "version": [
-    20200426,
-    600
+    20200623,
+    307
    ],
-   "commit": "e62cfc4f08fc4743d6961fe3402adbf2260d7e70",
-   "sha256": "1w6jsn3p6956vk5pzwlbc211sswqai8ary8ad3fbhbjwxl5z3gsc"
+   "commit": "e94d01cdc822e02968971cde09276047a5d55772",
+   "sha256": "0fph3l2cpis9k09d6yhl8rv9yb727ayqq6qw6pbmxmn687xmxx9q"
   }
  },
  {
@@ -91669,14 +93503,14 @@
   "repo": "remvee/spotify-el",
   "unstable": {
    "version": [
-    20181030,
-    810
+    20200615,
+    1418
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "29577cf1188161f98b8358c149aaf47b2c137902",
-   "sha256": "0h6yhfvvyd9sd5d37d3ng3z56zfb546vl95qjq16kcvxq00hdn1v"
+   "commit": "7e28ef0b4519c6a46fce6a89c0ff1ed775eda71a",
+   "sha256": "0mi8g6ryjg7czrr6fchwq9459ijd5c9wsvj3s9j0l0w4jcyxrvrd"
   },
   "stable": {
    "version": [
@@ -91930,8 +93764,8 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "2f10382034cd5cd2356cc69b4a1e9116d77a0d86",
-   "sha256": "18z9hljifw63zy4jrsyg4x2lqzgx29sfibx3maj0dm90yzj6zmcg"
+   "commit": "9e6351dc97a6f58f221d6e1baa7bab292309c437",
+   "sha256": "1r49c8ick1vk7zl4h0472z0p6j3d5b839al3s687acgqdymb24kk"
   },
   "stable": {
    "version": [
@@ -91958,6 +93792,21 @@
   }
  },
  {
+  "ename": "sqlite3",
+  "commit": "75bbc8a92954bd12b4c9d206a804c34c97b19e3d",
+  "sha256": "1c7j8hzz8xs1nrn931apyj7nhwr3dnfbsrimb6fpdfmms8095y7w",
+  "fetcher": "github",
+  "repo": "pekingduck/emacs-sqlite3-api",
+  "unstable": {
+   "version": [
+    20200710,
+    1432
+   ],
+   "commit": "e5b14b03183cde855059084eba425428ec4618c1",
+   "sha256": "1r7hs23xa2yhr0rbgdhxid8gg4fwhrk2wjrk1scrp37aj2szwpjm"
+  }
+ },
+ {
   "ename": "sqlup-mode",
   "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
   "sha256": "0ngs58iri3fwv5ny707kvb6xjq98x19pzak8c9nq4qnpw3nkr83b",
@@ -92012,11 +93861,11 @@
   "repo": "srcery-colors/srcery-emacs",
   "unstable": {
    "version": [
-    20200422,
-    1941
+    20200813,
+    1430
    ],
-   "commit": "9630e465cc5166f723b7c5378e326561cf2a1738",
-   "sha256": "0ppaicggrrd3wrbjddw75mnsfli9a8db6bg21m1k7bafjkgraxfn"
+   "commit": "a3a4df9875ea6ae21cfb483dfd7b5c92278fb1c3",
+   "sha256": "1lc8796r5vy4n9nz9q10qy4brzd7c7i7dsjmvci6c9f7blqnz1la"
   },
   "stable": {
    "version": [
@@ -92059,25 +93908,22 @@
   "repo": "srfi-explorations/emacs-srfi",
   "unstable": {
    "version": [
-    20200512,
-    2217
-   ],
-   "deps": [
-    "cl-lib"
+    20200817,
+    549
    ],
-   "commit": "fd64b75f1051c4fe59209412f00a28625371588c",
-   "sha256": "1rh3nhwh75b698aq45cwmflv97r0596fq36w1rj08syfhmy3aari"
+   "commit": "1588f720ecd7f69a7972d5c9e113975af045c813",
+   "sha256": "136zx2sr0n4lb396vpz5nq60zjc3cav4kpx8r5h3nzgnmamqz61b"
   },
   "stable": {
    "version": [
     0,
-    1
+    3
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "c0a1ae75bfb3fdc81bb722dff5f5e2fae3f07024",
-   "sha256": "1zymgidk09yyjdd23cz7rx2hql8vpmpqn21i07hwcr7032v0kl7k"
+   "commit": "98b8b1f9edd4ce6a05eeef49bed0d1966bd7c528",
+   "sha256": "1il0z6lb2jz495gdp6g7wc0n9a4z8z8ndhrrl71rnws53fah0lm3"
   }
  },
  {
@@ -92258,8 +94104,8 @@
     20200221,
     2025
    ],
-   "commit": "599a0440086c660e6823622b35058f6d2d6d9637",
-   "sha256": "0mm0kpyihpd55hx14smlm0ayz05zw750fihhqhxqc258y8y73m5y"
+   "commit": "e891a0fcb3a7ab7d9cedbe3deda560134636897e",
+   "sha256": "158afanfaww2jkrz9szap6ys8xhbpz35kd5apkxr1j9j7s8h0iw0"
   },
   "stable": {
    "version": [
@@ -92286,8 +94132,8 @@
     "stan-mode",
     "yasnippet"
    ],
-   "commit": "599a0440086c660e6823622b35058f6d2d6d9637",
-   "sha256": "0mm0kpyihpd55hx14smlm0ayz05zw750fihhqhxqc258y8y73m5y"
+   "commit": "e891a0fcb3a7ab7d9cedbe3deda560134636897e",
+   "sha256": "158afanfaww2jkrz9szap6ys8xhbpz35kd5apkxr1j9j7s8h0iw0"
   },
   "stable": {
    "version": [
@@ -92304,6 +94150,38 @@
   }
  },
  {
+  "ename": "standard-dirs",
+  "commit": "3af817370f249a7e7a04b06ccc850b24c0f4b5bb",
+  "sha256": "0jcwav3dhvdxkxsc1nrwswrljam06llyspd9nk70pfpafis9smzl",
+  "fetcher": "github",
+  "repo": "lafrenierejm/standard-dirs.el",
+  "unstable": {
+   "version": [
+    20200621,
+    1603
+   ],
+   "deps": [
+    "f",
+    "s"
+   ],
+   "commit": "e37b7e1c714c7798cd8e3a6569e4d71b96718a60",
+   "sha256": "0r814qcrhvx4qlx4sdzwdmrhiryslqclx0bnpp0qcrbx6g8qfl25"
+  },
+  "stable": {
+   "version": [
+    2,
+    0,
+    0
+   ],
+   "deps": [
+    "f",
+    "s"
+   ],
+   "commit": "e37b7e1c714c7798cd8e3a6569e4d71b96718a60",
+   "sha256": "0r814qcrhvx4qlx4sdzwdmrhiryslqclx0bnpp0qcrbx6g8qfl25"
+  }
+ },
+ {
   "ename": "standoff-mode",
   "commit": "98858a45f72c28eec552b119a66479ea99b60f93",
   "sha256": "127bzpm1cz103f1pb860yqrh7mr0rdaivrm9p6ssd01kchl9nskp",
@@ -92369,11 +94247,11 @@
   "repo": "thisirs/state",
   "unstable": {
    "version": [
-    20180627,
-    1956
+    20200727,
+    1227
    ],
-   "commit": "258fe1cba00bdc2c600f866bb0406c719661d0a6",
-   "sha256": "1miwmb4012a4pjxc0qi0qrs0aw7yf8fhiy72ndf80sj050wmpaqn"
+   "commit": "8cd9210f17c1b134274a7352b996839aed9a7d8c",
+   "sha256": "04h8n2wy9qr4bskq9znhadcf02wk4ydhyaaq44yvh55hzmn6gm25"
   }
  },
  {
@@ -92449,25 +94327,25 @@
  },
  {
   "ename": "stgit",
-  "commit": "726da64b7baea1735a916b826bdfb8f575860e21",
-  "sha256": "1gbr0pvvig2vg94svy1r6zp57rhyg6n9yp7qvlkfal1z2lhzhs0g",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "0iv2fiv8i2h4pqbsvy10avijvlk2waprmn0z4jq4hcyvarwzxvp1",
   "fetcher": "github",
-  "repo": "ctmarinas/stgit",
+  "repo": "stacked-git/stgit",
   "unstable": {
    "version": [
-    20171130,
-    1559
+    20200606,
+    1308
    ],
-   "commit": "fb180610de78c68736c963236afb28ee3ac952b4",
-   "sha256": "106jjrbjdgxp1s41h9vn877rq7a3m1jj9brlgdz1mrjgay266gcc"
+   "commit": "333e9e434cec9aa2f887083cdf2cefcaa316f438",
+   "sha256": "1q058qav0al8mb6f3f3jc4mnzlvhlis9dllchw3flw3gx57qcrx5"
   },
   "stable": {
    "version": [
     0,
-    22
+    23
    ],
-   "commit": "9acc95666619699d4cdf0526305155407081d8de",
-   "sha256": "0rhdgakd4vc0549m6zjwcmsnvh2i3mbv5laks25wnfmsxr8dwqns"
+   "commit": "e6dd7eff206a6515aefced2ad701beaf625d7b7d",
+   "sha256": "157vdhdjzxsf7077916ibn0jbsxw9d71m8mwm4kn0i0ip7sj9xdg"
   }
  },
  {
@@ -92608,20 +94486,20 @@
   "repo": "akicho8/string-inflection",
   "unstable": {
    "version": [
-    20180827,
-    1301
+    20200517,
+    115
    ],
-   "commit": "e9a50855a4c718592c28a5a892f164ecf46e39a8",
-   "sha256": "03kvp5xrv9p46m4w25jr5nvi801yafq5vxzif42y0dav7ifmmdfp"
+   "commit": "1937db7513db570606ea8798916180b7dd75d3b1",
+   "sha256": "06n968iqh6w8grmk8w67g6la9cxpp8ww5mi9s3zgdjhfcs5g8xdl"
   },
   "stable": {
    "version": [
     1,
     0,
-    10
+    11
    ],
-   "commit": "9b08372301e3c5f91cb278ee0e00a48845a42cb6",
-   "sha256": "0j3ms2cxbv24kr27r2jhzxpdih6w43gjdkm3sqd28c28ycab8d4b"
+   "commit": "1937db7513db570606ea8798916180b7dd75d3b1",
+   "sha256": "06n968iqh6w8grmk8w67g6la9cxpp8ww5mi9s3zgdjhfcs5g8xdl"
   }
  },
  {
@@ -92795,10 +94673,10 @@
  },
  {
   "ename": "subatomic-theme",
-  "commit": "de7f6009bab3e9a5b14b7b96ab16557e81e7f078",
-  "sha256": "0mqas67qms492n3hn74c5nrkjpsgf9b42lp02s2dh366c075dpqc",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "0qh311h8vc3c7f2dv6gqq3kw1pxv6a7h4xbyqlas5ybkk2vzq12r",
   "fetcher": "github",
-  "repo": "cryon/subatomic",
+  "repo": "cryon/subatomic-theme",
   "unstable": {
    "version": [
     20190607,
@@ -92878,14 +94756,14 @@
   "repo": "zk-phi/sublimity",
   "unstable": {
    "version": [
-    20181121,
-    1311
+    20200816,
+    854
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "4c8d0280815978fc11e1c5f86266a11c717b0c89",
-   "sha256": "1618ba3m36crh2wmmisi3ls5ijdqrwr58yda810jik0b6fjzzacv"
+   "commit": "133ac118eaa51cce81978ed78abba6aa8d427577",
+   "sha256": "0sqjdrzsp7pf1wj14vcr322n8fydjzzii4msdvlhj0xr3xhl0469"
   },
   "stable": {
    "version": [
@@ -92927,14 +94805,14 @@
   "repo": "nflath/sudo-edit",
   "unstable": {
    "version": [
-    20180731,
-    1908
+    20200625,
+    142
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "cc3d478937b1accd38742bfceba92af02ee9357d",
-   "sha256": "1qv58x5j5a3v1s2ylhck1ykbfclq0mbi0gsvaql3nyv8cxazqlwl"
+   "commit": "0e2c32b5e5242d30f8780cbe8e1b1649476cac4d",
+   "sha256": "1z26i4hzi2mksl4nr8szzlnrnyv96fg7jjddbm5dp5dlmh2pndk1"
   },
   "stable": {
    "version": [
@@ -93183,11 +95061,11 @@
   "repo": "leafOfTree/svelte-mode",
   "unstable": {
    "version": [
-    20200327,
-    406
+    20200816,
+    354
    ],
-   "commit": "48a26af6a3395a8bf3f09747d0a205c6dbc79313",
-   "sha256": "12gg55jdb6b5jk0xizx2cqc795bgll2kap3jp08s1vr16zkdaryn"
+   "commit": "5db0451429d4bf68f5dd131837faa6eb601a631d",
+   "sha256": "1ffr9yzxr1z8xmvl0lf7nfp9gjp79zps556d3kni45dbnkdi0z1h"
   }
  },
  {
@@ -93301,6 +95179,21 @@
   }
  },
  {
+  "ename": "sweet-theme",
+  "commit": "a149448c38504bdf6f782a10cb1440da9102990f",
+  "sha256": "1ca56disxyr30anvpqahh33s062y35w003yxi1rhdrknka2cnl5q",
+  "fetcher": "github",
+  "repo": "2bruh4me/sweet-theme",
+  "unstable": {
+   "version": [
+    20200708,
+    1202
+   ],
+   "commit": "78f741806ecebe01224bf54d09ad80e306652508",
+   "sha256": "1yqz15l6xa1vkll4gaa3jpr30vq3yjgbgadjilsmz5p8mblawhyx"
+  }
+ },
+ {
   "ename": "sweetgreen",
   "commit": "63812707948e6dcc00e00ebc3c423469593e80fd",
   "sha256": "1v75wk0gq5fkz8i1r8pl4gqnxbv1d80isyn48w2hxj2fmdn2xhpy",
@@ -93343,16 +95236,16 @@
   "repo": "danielmartin/swift-helpful",
   "unstable": {
    "version": [
-    20200516,
-    1836
+    20200701,
+    2005
    ],
    "deps": [
     "dash",
     "lsp-mode",
     "swift-mode"
    ],
-   "commit": "e990ea6f5ea932763d002c3794dd9589add1532d",
-   "sha256": "1a4yrj3yjqgd5jssxd38dvx06cigsszrvs6hv7slfl60p729i0lw"
+   "commit": "2c8c9cda5ed9d9e96bb3a39c6d0905a15dd9e2e6",
+   "sha256": "1kq4jxhig6bg4cifggy06a6ydksg68nr2gbnxn589znacxbs0iy9"
   },
   "stable": {
    "version": [
@@ -93376,14 +95269,14 @@
   "repo": "swift-emacs/swift-mode",
   "unstable": {
    "version": [
-    20200418,
-    617
+    20200606,
+    730
    ],
    "deps": [
     "seq"
    ],
-   "commit": "2ab9ea1784a12a482ed9e3fb284b7a7658f40fff",
-   "sha256": "0wml7f8k3gqlxm0yg744271mqh087prlsfmbiv7fvkrcs55q0592"
+   "commit": "d266fbd300a1bf1592e1462ead4be093b8b68f98",
+   "sha256": "0l3i74acv1msmbfkn99mz9g73kd7j1a7j0b082vcxw6kr69476yc"
   },
   "stable": {
    "version": [
@@ -93466,8 +95359,8 @@
    "deps": [
     "ivy"
    ],
-   "commit": "04ca16420053a3a6d34a96f0d680dd449c2e5851",
-   "sha256": "1sjaf026zim28c9cld0w5hlk9inp1map70ip99smlk483ib6lbj3"
+   "commit": "dd43ab1217f72948dc5cd669467e33b8b568db44",
+   "sha256": "0h4273gr4h9xkdf5g08ci95jq0n9l1w3vgd1y9452cry1r07ya9l"
   },
   "stable": {
    "version": [
@@ -93515,6 +95408,21 @@
   }
  },
  {
+  "ename": "swiss-holidays",
+  "commit": "2260acd32c74352c5b1c5622c527676a81223640",
+  "sha256": "1d91fnvm2sikfmy0s1gffzgn19088ggkkf992zbms7gy7njbgysf",
+  "fetcher": "github",
+  "repo": "egli/swiss-holidays",
+  "unstable": {
+   "version": [
+    20200526,
+    822
+   ],
+   "commit": "0995c9685033a09466f5b2dceb7316362bde997a",
+   "sha256": "098s55jsmr6na5qf8s5a3iws6zb47rbq7mk4garbxar9vyfi3bw7"
+  }
+ },
+ {
   "ename": "switch-buffer-functions",
   "commit": "d37ebd28f4a2f770958bd9a2669cce86cc76cbe7",
   "sha256": "1b93p8q07zncqq3nw829gddc615rwaan1ds5vgfhdb1l7bh9f37l",
@@ -93570,16 +95478,16 @@
   "repo": "emacsorphanage/swoop",
   "unstable": {
    "version": [
-    20200321,
-    319
+    20200618,
+    905
    ],
    "deps": [
     "async",
     "ht",
     "pcre2el"
    ],
-   "commit": "7f6f20d0f32b76b7ce5b1459afa44c1ab700f8bb",
-   "sha256": "1d134f3dyh8sa8q8dgmla01wiky61y4jmhqb5whqpb7c2p53niyc"
+   "commit": "0c737a961970a2e61735545320367bafaa8dfc49",
+   "sha256": "1kjzc7543b7l0rcq9iiwf8sq39akzw5spsv51yl4wmwgnmyj2n1c"
   },
   "stable": {
    "version": [
@@ -93662,26 +95570,46 @@
   "repo": "contrapunctus/sxiv.el",
   "unstable": {
    "version": [
-    20200508,
-    1620
+    20200803,
+    1431
    ],
    "deps": [
     "dash"
    ],
-   "commit": "f1a030c538af6d47d32eef04ab6536eeef948268",
-   "sha256": "0qnd89zphpa9cl7xw6lchsi0yw2a48v8xbgddgbsisff183bzcfz"
+   "commit": "9eb6a121bfdf64433cd8ac7985d2c82b590b5abb",
+   "sha256": "0fjzzynlmqxxrr4520rh7ds0gip6l8cbmrgp7ghrgm07830arpcj"
   },
   "stable": {
    "version": [
     0,
     3,
-    2
+    3
    ],
    "deps": [
     "dash"
    ],
-   "commit": "f1a030c538af6d47d32eef04ab6536eeef948268",
-   "sha256": "0qnd89zphpa9cl7xw6lchsi0yw2a48v8xbgddgbsisff183bzcfz"
+   "commit": "9eb6a121bfdf64433cd8ac7985d2c82b590b5abb",
+   "sha256": "0fjzzynlmqxxrr4520rh7ds0gip6l8cbmrgp7ghrgm07830arpcj"
+  }
+ },
+ {
+  "ename": "symbol-navigation-hydra",
+  "commit": "ed20cf413c32e924506a4c4aa7129d1185b63d46",
+  "sha256": "1aw8ssjqsqnihri3qp8c3q6dv52mc3rnq2mgyncrbghq1yajh8ml",
+  "fetcher": "github",
+  "repo": "bgwines/symbol-navigation-hydra",
+  "unstable": {
+   "version": [
+    20200811,
+    655
+   ],
+   "deps": [
+    "auto-highlight-symbol",
+    "hydra",
+    "multiple-cursors"
+   ],
+   "commit": "20a63121695452e39f1a3c9bfea1e313359c5f1e",
+   "sha256": "08fs5wr9p2rbwlydx2xmwqmvzr6q05fg4dji6wdf40dn3pb5w78g"
   }
  },
  {
@@ -93692,14 +95620,14 @@
   "repo": "wolray/symbol-overlay",
   "unstable": {
    "version": [
-    20191224,
-    250
+    20200809,
+    2023
    ],
    "deps": [
     "seq"
    ],
-   "commit": "8096a684c29bae20e1f5a1c7adbe7881680a5c10",
-   "sha256": "1x7ghzxn5634amvj6r786j8nm25b780pz8h57z7qk40x0s6qk5a7"
+   "commit": "f2734ce633c2b498d3ea70042a3ae9f93f9f046a",
+   "sha256": "1n1a2jldshfyyyxc3msr16fzczjlpglzdy7ab4qpyyz6ghklaqys"
   },
   "stable": {
    "version": [
@@ -93744,8 +95672,8 @@
   "repo": "countvajhula/symex.el",
   "unstable": {
    "version": [
-    20200425,
-    1911
+    20200526,
+    211
    ],
    "deps": [
     "cider",
@@ -93762,13 +95690,13 @@
     "slime",
     "smartparens"
    ],
-   "commit": "3dba2ae3f65bd1c40e3756e05a57ced039a15a7f",
-   "sha256": "1j2ycsi2ipbyaknscy0vgr1ybyvzl7j1q0gvazkl5rpihshz2shl"
+   "commit": "b35e3622601ca5b27bb8e1b7ab301cc6dd674a62",
+   "sha256": "118s8xxas5nmj181p7mf9lsal7jl0pkph3gs1gyr0x6c5y93b1ci"
   },
   "stable": {
    "version": [
     0,
-    6,
+    7,
     0
    ],
    "deps": [
@@ -93786,8 +95714,8 @@
     "slime",
     "smartparens"
    ],
-   "commit": "62bd31d8647b88ec179fb8ff89f583b55a0421cc",
-   "sha256": "1c2y65hcd0nydhkh7a903flq061x8hld272n00xn4dd0b8kvjp29"
+   "commit": "8209d63d88b596e5e4ed66c56085c978f33acda5",
+   "sha256": "0l0pb9d5q84wv4jiappm3wi800dslv9ciq9rla0mrv4xb2lhf3pp"
   }
  },
  {
@@ -93986,11 +95914,11 @@
   "repo": "dantecatalfamo/sysctl.el",
   "unstable": {
    "version": [
-    20190720,
-    2028
+    20200615,
+    1824
    ],
-   "commit": "0fc50305a96de059ad1ff4e6081c9b4089f5247f",
-   "sha256": "0v2andw08qawgbdzn0vplxd3drs41gqf2qbidhakmsssdd4nqiib"
+   "commit": "d8c2e18de1d7a3b2999a4d5054c0bbf30cb10fed",
+   "sha256": "0jvw5r4z9lq36yv58slpc8fw9ljzrppdsg9j7cs34m0wnhyid4a4"
   }
  },
  {
@@ -94251,10 +96179,10 @@
  },
  {
   "ename": "tabula-rasa",
-  "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
-  "sha256": "14j92inssmm61bn475gyn0dn0rv8kvfnqyl1zq3xliy7a0jn58zz",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "041yl5727ba0b2ircmfmm693gg7vimrijd80k8w8j13xcrq5i1i3",
   "fetcher": "github",
-  "repo": "idomagal/Tabula-Rasa",
+  "repo": "IdoMagal/Tabula-Rasa",
   "unstable": {
    "version": [
     20141216,
@@ -94391,11 +96319,11 @@
   "repo": "saf-dmitry/taskpaper-mode",
   "unstable": {
    "version": [
-    20200513,
-    1728
+    20200701,
+    1436
    ],
-   "commit": "45625bd90cf5dbdcaed02b57baaa995e240ceb4c",
-   "sha256": "1s2xxscj675ps93hqczw1xcs3jsixblfzjcfpz74vbz9zkmq1ygm"
+   "commit": "5ded73ae13d58ab0bbd52ac7556ff29e114a96d6",
+   "sha256": "00bvjrbcqalwlw1lc883p8l7szb9qniqp120pwd6hgyvgpr7h3s1"
   },
   "stable": {
    "version": [
@@ -94530,30 +96458,6 @@
   }
  },
  {
-  "ename": "tdd-status-mode-line",
-  "commit": "25b445a1dea5e8f1042bed6b5372471c25129fd8",
-  "sha256": "1i0s7f4y4v8681mymcmjlcbq0jfghgmdzrs167c453mb5ssz8yxg",
-  "fetcher": "github",
-  "repo": "algernon/tdd-status-mode-line",
-  "unstable": {
-   "version": [
-    20131123,
-    1716
-   ],
-   "commit": "4c082e62f4915b573338a97efcc6854d132323dc",
-   "sha256": "1jyz6z5bk1gvmknphcnvjvbl329zm8m40yl0a1hfaj8fvhwyzdw5"
-  },
-  "stable": {
-   "version": [
-    0,
-    1,
-    2
-   ],
-   "commit": "9b3c35b0a972772640e9fee653eab6a76e06416a",
-   "sha256": "0bvxc926kaxvqnppaw4y6gp814qc0krvidn5qg761z4qwz023rax"
-  }
- },
- {
   "ename": "tea-time",
   "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
   "sha256": "0qypwf0pgsixq6c5avbwp81i3ayy9dd2fngzdvq14pax913q8pg1",
@@ -94584,6 +96488,21 @@
   }
  },
  {
+  "ename": "teco",
+  "commit": "f8c7a2d741bd0061f5edc30fd000a82cdd3b66e4",
+  "sha256": "0ahixvxvjbm7xngsqfjdb6lfg43bki9vays2yw2psmyw7c34zp3s",
+  "fetcher": "github",
+  "repo": "mtk/teco",
+  "unstable": {
+   "version": [
+    20200707,
+    2309
+   ],
+   "commit": "61caf8f419659a0567a269f290c90427a215d77b",
+   "sha256": "0jfrlpmcr8msj39fhm0sc11sxw46w0dk24zidsdp12lwgcnli44m"
+  }
+ },
+ {
   "ename": "telega",
   "commit": "e067f03ebe9dd8c90ceaa5a7983483087c74107f",
   "sha256": "0n1n1fciwh7jbakdjkx36aq6k0is0c694j3n5dicwvfp7spca7p8",
@@ -94591,27 +96510,28 @@
   "repo": "zevlg/telega.el",
   "unstable": {
    "version": [
-    20200516,
-    1007
+    20200814,
+    1652
    ],
    "deps": [
     "rainbow-identifiers",
     "visual-fill-column"
    ],
-   "commit": "e2fd3b1b34ae659d306749ab3129ed498b3a2720",
-   "sha256": "0h851m3p9cqblr5wpl769g8dl5vxjgx62c6grkdk2g0ip2cm4vcf"
+   "commit": "9594ebcb0f605e5b01bc4ec6d1bd1b6470002bc0",
+   "sha256": "0hm6yvr4ygkcycw850sd4lcwmrr49s88nhan08hal0xylzazlq24"
   },
   "stable": {
    "version": [
     0,
     6,
-    0
+    28
    ],
    "deps": [
+    "rainbow-identifiers",
     "visual-fill-column"
    ],
-   "commit": "ae09592498ce380e57fbb76725fd4c89ae248864",
-   "sha256": "0mv6i80958d9crzspzik5xh5g8326115bvg2frgv0dp9p6rm86m3"
+   "commit": "e53996777570a5bed84d21f6c8defd4f51c8e255",
+   "sha256": "058x6svgy33lyqjqq0l3byv8bysqig9jmh3kx8shaqr0ypfrjhi3"
   }
  },
  {
@@ -94645,16 +96565,16 @@
   "repo": "dbordak/telephone-line",
   "unstable": {
    "version": [
-    20200412,
-    1614
+    20200516,
+    2102
    ],
    "deps": [
     "cl-generic",
     "cl-lib",
     "seq"
    ],
-   "commit": "65198f72f3b1ae618507aa28094f05d6de4846a9",
-   "sha256": "177v612ii8nj9nsmfxlf17gr3wair4whzggi3pshch7ghbxdqv5q"
+   "commit": "110c578ccf6c0421cfd9eec7aa3e960b6fd49fb4",
+   "sha256": "157df4h9hr5mmwp0q5w0rdv7ndrjk3014r5xwwblszvx33s70gbk"
   },
   "stable": {
    "version": [
@@ -94689,6 +96609,30 @@
   }
  },
  {
+  "ename": "templatel",
+  "commit": "0e43ad23f7b58ddb82bc08066d8b48e04708b5ba",
+  "sha256": "10sx3kd22z4qa1g60c3fzxpc55xlddmb4iqqdbiqkn6bqzdzrslq",
+  "fetcher": "github",
+  "repo": "clarete/templatel",
+  "unstable": {
+   "version": [
+    20200818,
+    241
+   ],
+   "commit": "796021c2964a5bfbba7abf7f339f970bbedc3aab",
+   "sha256": "1yv85ik2slaibnajsfns1icliw0qyqw871jxdklav918lic9fia0"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    1
+   ],
+   "commit": "6785b487aaa6bbab3cffcf74e9f596c0058c1b18",
+   "sha256": "1qdjbbr6mq2ib8aan5hb47vdj2s50yxfidmjyfyyms28qpi3524g"
+  }
+ },
+ {
   "ename": "temporary-persistent",
   "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
   "sha256": "0afjcad97pzbrjs1v80l6c98vi5asgaxcn2rq95gz1ld7nn0a9zh",
@@ -94990,14 +96934,14 @@
   "repo": "davidshepherd7/terminal-here",
   "unstable": {
    "version": [
-    20180513,
-    833
+    20200617,
+    714
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "bc7f3477133df0142d3e49e6eb8eaf4468b57865",
-   "sha256": "1i0pz5lfhgqzcqwi9wkiq8skj3hf00xn9vya890g1i9ix3bclq35"
+   "commit": "d8b95302abe6e4a8a91a4526441a1c5d51b886a6",
+   "sha256": "0b05arm8b95dkzj6m2kx7wb37z00y0bdsj3z34sjny75srph3c0c"
   },
   "stable": {
    "version": [
@@ -95044,8 +96988,8 @@
     "cl-lib",
     "json"
    ],
-   "commit": "a295a80a502771cc07dc061961e0eb85343c2925",
-   "sha256": "02szncbbvb52kv9mn2clqhzg49knpny1bxsa7wd5l0gwbsqly3dw"
+   "commit": "ef50c6f0269a6fd9ce742d0a87647d60a0ef850f",
+   "sha256": "1c3zamvcambi9l91vilc0sbyzn21jj89n9j02simza4ffyn9xix9"
   },
   "stable": {
    "version": [
@@ -95077,8 +97021,8 @@
     "cl-lib",
     "tern"
    ],
-   "commit": "a295a80a502771cc07dc061961e0eb85343c2925",
-   "sha256": "02szncbbvb52kv9mn2clqhzg49knpny1bxsa7wd5l0gwbsqly3dw"
+   "commit": "ef50c6f0269a6fd9ce742d0a87647d60a0ef850f",
+   "sha256": "1c3zamvcambi9l91vilc0sbyzn21jj89n9j02simza4ffyn9xix9"
   },
   "stable": {
    "version": [
@@ -95135,11 +97079,20 @@
   "repo": "TxGVNN/terraform-doc",
   "unstable": {
    "version": [
-    20190813,
-    1254
+    20200803,
+    1545
+   ],
+   "commit": "d609290021ea7f2d10caadffc9131663838f8ad4",
+   "sha256": "1gvydmi37d7jxibn7nfg1rhb6phfn3kgrlmq250g7321g15j1q3v"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    1
    ],
-   "commit": "2ec10ea7bef5a75edfffeb515dd268e19c1f8c9c",
-   "sha256": "0r70fc7vv2rjnwnsg7myc1c15f3ql6hp6zrf5msmf8r2iz32jnpp"
+   "commit": "d609290021ea7f2d10caadffc9131663838f8ad4",
+   "sha256": "1gvydmi37d7jxibn7nfg1rhb6phfn3kgrlmq250g7321g15j1q3v"
   }
  },
  {
@@ -95247,14 +97200,14 @@
   "repo": "rocky/emacs-test-simple",
   "unstable": {
    "version": [
-    20170527,
-    1532
+    20200722,
+    1121
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "cfd383d36dc6853917acb753fdfa0eebf33856f3",
-   "sha256": "0rn3x0v92v3a2g58armazhg97bl72d90j5gwf1zdak75hzimmah2"
+   "commit": "ce6de04636e8d19ec84a475c03c0142b20a63de0",
+   "sha256": "1knpzibhwm8f604fklq35d2w5rlx26fq3fzzybdm2xb65mifqnar"
   },
   "stable": {
    "version": [
@@ -95288,14 +97241,14 @@
   "repo": "TobiasZawada/texfrag",
   "unstable": {
    "version": [
-    20200424,
-    205
+    20200716,
+    1331
    ],
    "deps": [
     "auctex"
    ],
-   "commit": "48118c4e38836117efb4eede927ab85d9a0d2013",
-   "sha256": "1dpvf9limh9b0sg0x41gyw9w5nf5nvkd7zzlyysswhinm6jba4iz"
+   "commit": "a5f59e0c5f43578f139a2943bd08e5b3140f4c2b",
+   "sha256": "11xissn0xpfx2xxcm5qj2smkxa5frcswvhpfv6m34j12z0nww7pw"
   },
   "stable": {
    "version": [
@@ -95372,10 +97325,10 @@
  },
  {
   "ename": "textx-mode",
-  "commit": "dada0378af342e0798c418032a8dcc7dfd80d600",
-  "sha256": "10y95m6fskvdb2gh078ifa70nc48shkvw0223iyqbyjys35h53bn",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "0004z2ym3rmbqr42ysziqja7y5fl2fnmhbsqclk0mvr247gmb4vf",
   "fetcher": "github",
-  "repo": "novakboskov/textx-mode",
+  "repo": "textX/textx-mode",
   "unstable": {
    "version": [
     20170516,
@@ -95602,18 +97555,18 @@
     20200212,
     1903
    ],
-   "commit": "81d2abd9097fc3497f77d830ebf8d8386beb7127",
-   "sha256": "0k9yr3dx12cl07dlz0zmaaf4zfr4zh54w5ix74b0kj1ny299f9q6"
+   "commit": "32b109977cbde37bf719c2955ff7dd1e657a6c70",
+   "sha256": "0ww3k4yd5bk40r3v1a96mgzhaayqgb0v2kjvxzn10wcybqxf1zqb"
   },
   "stable": {
    "version": [
     2020,
-    5,
-    11,
+    8,
+    17,
     0
    ],
-   "commit": "99612a3f69c0aecf6c2c4535a610e888aa923820",
-   "sha256": "17p6ip2na9629pdbrllrhrpnhlb9ngjdcs7g9ha3yhvk0sbgz4wf"
+   "commit": "b733bf19c3c68c0aa6d5e0bb7db4321fe13b47a2",
+   "sha256": "11kpja52drs4xsja6gyg37rq1681pfgv71cc3lksh2dn6jrn8nbq"
   }
  },
  {
@@ -95663,26 +97616,26 @@
   "repo": "tidalcycles/Tidal",
   "unstable": {
    "version": [
-    20191210,
-    1647
+    20200523,
+    833
    ],
    "deps": [
     "haskell-mode"
    ],
-   "commit": "f68e58cd7f8c483307573a96307f1f872a1921a0",
-   "sha256": "1rwc1vk0gl1sjnvzvwz4x25m6c61r8ghf6wrjclgifrm8zf1na5d"
+   "commit": "137192a2ef6c4f457ddba38a0397570266333854",
+   "sha256": "1wwmgzlqih3j8slggmi79xiy811qzlrwjqpd7y37lj508w96qppi"
   },
   "stable": {
    "version": [
     1,
-    4,
-    9
+    6,
+    1
    ],
    "deps": [
     "haskell-mode"
    ],
-   "commit": "252e3be53eb1bf6bfcd1b3c52af982506c84a89e",
-   "sha256": "19chvk24csg5w38q6yh1wky4nk4z8361p1q5q118427njqkl5ql3"
+   "commit": "7377b6c8ddc23d197018af203456063864df1457",
+   "sha256": "0vj55135h0mw093b9rlnq8hka9sj4kmhnv8xj46z2kcqj0qcq7q8"
   }
  },
  {
@@ -95693,8 +97646,8 @@
   "repo": "ananthakumaran/tide",
   "unstable": {
    "version": [
-    20200504,
-    832
+    20200811,
+    2114
    ],
    "deps": [
     "cl-lib",
@@ -95703,8 +97656,8 @@
     "s",
     "typescript-mode"
    ],
-   "commit": "8a7c1fc5dcc9b3321c10c71f21d1436b0a62ac07",
-   "sha256": "14i618dbhi66z19szyjznfnb56k9w64m00732g20r8izbhjsg4nm"
+   "commit": "f0b6dac4829c3daecf02bf445a5b41b4c68f2911",
+   "sha256": "0533kxxl68vsx99b5nwdhy885nl2ad8wc6my38kardmklshjpvj1"
   },
   "stable": {
    "version": [
@@ -95724,6 +97677,21 @@
   }
  },
  {
+  "ename": "tikz",
+  "commit": "fe4080be1b98c4016360113741a9bb6b3764e872",
+  "sha256": "07wbl8aih7p9gzjnljymryrrakq9ffwzd2l73h08hjvrr8ff92m9",
+  "fetcher": "github",
+  "repo": "emiliotorres/tikz",
+  "unstable": {
+   "version": [
+    20200728,
+    913
+   ],
+   "commit": "f1495516657da6dc2296ffb6c38a3bb4acf118ad",
+   "sha256": "0w9xff7y6zhb28b1cfbbam9gy7dp11i96yb4rn4lj8h2yry89293"
+  }
+ },
+ {
   "ename": "tile",
   "commit": "424cfd28378ef328721bb0dc3651808e64c01306",
   "sha256": "1795048ilpg6y9pn0jj0js5446hwxhwm6qmk50hds0hpcb396vbv",
@@ -96032,15 +98000,15 @@
   "repo": "laishulu/emacs-tmux-pane",
   "unstable": {
    "version": [
-    20200419,
-    1331
+    20200730,
+    520
    ],
    "deps": [
     "names",
     "s"
    ],
-   "commit": "6e8d0584b0bbd412c5d29c87add7364299b3d2a0",
-   "sha256": "054qncg530paiv1vs27hs94m2y2fzvr4iind1rr16m8v8qf7zia6"
+   "commit": "923524efe8e6e5e0d269de6bb253b45e02d9a663",
+   "sha256": "0bhck6vrb48zxfh5id637mq57k7jv4f2ax0lrhyvr0nw8m0ndqmx"
   }
  },
  {
@@ -96075,16 +98043,16 @@
   "repo": "abrochard/emacs-todoist",
   "unstable": {
    "version": [
-    20200227,
-    1510
+    20200517,
+    1825
    ],
    "deps": [
     "dash",
     "org",
     "transient"
    ],
-   "commit": "b1fba9f3600e6cfe129efae304b96a7f6dc66e1a",
-   "sha256": "0391m19ws4ajqfbbwd1q1z8p1l6ai94xzf2rqg5zdvlnmc06kl76"
+   "commit": "b3f003603111b7e31b94c354cf4c83c8208c01c3",
+   "sha256": "0srk3chc45fl6zjwymzqwmxm22w9pcjxg7968c7fkvbqr21wk6p7"
   }
  },
  {
@@ -96095,11 +98063,11 @@
   "repo": "rpdillon/todotxt.el",
   "unstable": {
    "version": [
-    20180626,
-    2230
+    20200530,
+    2337
    ],
-   "commit": "f13e404304c9d26c105de872f96b4601441b3875",
-   "sha256": "1yvy2pl2ncgkz1xz598qjvp2v3g66m57wz7nra2vira7m4kq4671"
+   "commit": "b51f7fa1357d2cbc1b72b10d15f8c6f009ce5a46",
+   "sha256": "1asf33na834mc4ppvfyjxa70v4r80dnq641si5kd86gjfzjjjfmi"
   }
  },
  {
@@ -96149,8 +98117,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "bcd3d76a47b4f0e7c382fb680b14f40208dae568",
-   "sha256": "0sgzjddd34icbbm4pc7v1662k6288pkr70ki4p2j3q4mh9qqc8q7"
+   "commit": "fc9ec563430e3beaefc00b26da179f4b4ca9855b",
+   "sha256": "1m4v56yy73gvycsvpc36h7yh6yhn3fgp90rk5m248hz89gjf9kxv"
   }
  },
  {
@@ -96479,8 +98447,8 @@
     20171210,
     2102
    ],
-   "commit": "e5bf5f89741a9c43aa406491e94dd8d58c302fb4",
-   "sha256": "104l0b9n9ia7zrha20yaxp6c09wg1h5l5a8b988k6mhyj9a1w1aw"
+   "commit": "89aac22259e5d09ae1183e0df163338fe491e9e7",
+   "sha256": "16hfahyhl1vv3r0amyvc514sw6x9x56b319lkp7bwcy8mxicc3cy"
   },
   "stable": {
    "version": [
@@ -96559,20 +98527,20 @@
  },
  {
   "ename": "transfer-sh",
-  "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
-  "sha256": "0xc6dkmayk935grmy8883l4cyv4zrq3fb77fj16knfj4yw8w6c9j",
-  "fetcher": "github",
-  "repo": "SRoskamp/transfer-sh.el",
+  "commit": "55dc23a82be3e85b46cfdee18697b1b096573924",
+  "sha256": "1pzsjibqbzkvfb4c5i271yb5jjadsclb383jfhi6jikpnm3vkf5g",
+  "fetcher": "gitlab",
+  "repo": "tuedachu/transfer-sh.el",
   "unstable": {
    "version": [
-    20180603,
-    1431
+    20200601,
+    1708
    ],
    "deps": [
     "async"
    ],
-   "commit": "55da85f963d347255a2b46568954923679331798",
-   "sha256": "0yv4i4ps379kz1q9qmjh4q3pk5ik77xw86faxmwpjx4yzp1wsz9v"
+   "commit": "0621a66d00ec91a209a542c10b158095088bd44d",
+   "sha256": "1dnh8ws788if32wqnhzqjm38zjhpm9l3sq74245djnn1mx5bm56m"
   }
  },
  {
@@ -96583,11 +98551,11 @@
   "repo": "magit/transient",
   "unstable": {
    "version": [
-    20200508,
-    1911
+    20200819,
+    1133
    ],
-   "commit": "d49f85a8c1172b9f21d2fd4a54d1f802b53948fc",
-   "sha256": "01rnd67mc9avm4d39vqr074shfmqjsilynivb3s32dqyk13fsz8r"
+   "commit": "f5d81ef0ed24be935f3c0192b746a1738d903d37",
+   "sha256": "0kyrf0nh9l9x1jwfca1921qc0w2ii1xp4ya4mv2jmanm3apbihb9"
   },
   "stable": {
    "version": [
@@ -96607,14 +98575,14 @@
   "repo": "conao3/transient-dwim.el",
   "unstable": {
    "version": [
-    20200508,
-    617
+    20200812,
+    1033
    ],
    "deps": [
     "transient"
    ],
-   "commit": "e075bda369bbd0df2ac5e5d5626664f4a0062676",
-   "sha256": "052pj4b4jgr9vk0nrap57kpy0fsplssc7b9w7lkdmpxrbdld7n6h"
+   "commit": "de03d875dd89b1d838be67b0c44d9786adf96717",
+   "sha256": "0gb4k3758bv25vdw30rq0vbs94vdyss0xsiyaxnmvpfnj0v9k2cq"
   }
  },
  {
@@ -96625,14 +98593,14 @@
   "repo": "holomorph/transmission",
   "unstable": {
    "version": [
-    20200506,
-    2144
+    20200620,
+    402
    ],
    "deps": [
     "let-alist"
    ],
-   "commit": "b2c35b6f4c503976581573a4512c50e8081f9038",
-   "sha256": "1b0d2xq22121f64hls28gb44m284g1b6xiw3mi7x6g1fil8b3wb2"
+   "commit": "7ed254437c1f95ce7f59e87e90d6ec5e4d91c01d",
+   "sha256": "15qim9dfir08hkqf0ynwf1953cq60726rkjyc32l8hkpjlgw23ar"
   },
   "stable": {
    "version": [
@@ -96687,6 +98655,30 @@
   }
  },
  {
+  "ename": "transwin",
+  "commit": "4b6dc821c99edd8ee6faa5289b0ecbdbb28f5f08",
+  "sha256": "0vrzf3xhwincsl4gg0fghczvwzicci0gjsvpfpjzcqz3m7ab6frb",
+  "fetcher": "github",
+  "repo": "jcs-elpa/transwin",
+  "unstable": {
+   "version": [
+    20200704,
+    356
+   ],
+   "commit": "df814cb578b0a4c01ed68f1da262df17d2a0a694",
+   "sha256": "0kfq7br70cn9jpjnc7lxgimqcw9cpp4yf95dkjalbk5l8w8gzlm2"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    2
+   ],
+   "commit": "df814cb578b0a4c01ed68f1da262df17d2a0a694",
+   "sha256": "0kfq7br70cn9jpjnc7lxgimqcw9cpp4yf95dkjalbk5l8w8gzlm2"
+  }
+ },
+ {
   "ename": "trashed",
   "commit": "0a0609353c8ef01ca5da44b6239e1d4756da3a92",
   "sha256": "0vpfga0kp2r9p0b91fm5y1nf15j8c3r4aqf4wsl12yqgy0v08s6f",
@@ -96694,20 +98686,20 @@
   "repo": "shingo256/trashed",
   "unstable": {
    "version": [
-    20200508,
-    734
+    20200523,
+    231
    ],
-   "commit": "075749debcaf867bf151d83a59d7845dea71a4b9",
-   "sha256": "1r22x2m4mdkdick40myayzmhxby2v515bm5a8pxxcppnvd8259ci"
+   "commit": "23e782f78d9adf6b5479a01bfac90b2cfbf729fe",
+   "sha256": "0lfza55nbb62nmr27cwpcz2ad1vm95piq4nfd8zvkwqbn6klwmm6"
   },
   "stable": {
    "version": [
     2,
     1,
-    1
+    2
    ],
-   "commit": "075749debcaf867bf151d83a59d7845dea71a4b9",
-   "sha256": "1r22x2m4mdkdick40myayzmhxby2v515bm5a8pxxcppnvd8259ci"
+   "commit": "23e782f78d9adf6b5479a01bfac90b2cfbf729fe",
+   "sha256": "0lfza55nbb62nmr27cwpcz2ad1vm95piq4nfd8zvkwqbn6klwmm6"
   }
  },
  {
@@ -96805,8 +98797,8 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20200516,
-    1204
+    20200816,
+    939
    ],
    "deps": [
     "ace-window",
@@ -96818,8 +98810,8 @@
     "pfuture",
     "s"
    ],
-   "commit": "1935108f683ac446e3d0add9467bc1adc4f744e7",
-   "sha256": "0b8r7wsjm3my1cgwv66lz53i4r6yklfpyhx1xq1cibixwxi1p1ac"
+   "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+   "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
   },
   "stable": {
    "version": [
@@ -96841,6 +98833,25 @@
   }
  },
  {
+  "ename": "treemacs-all-the-icons",
+  "commit": "7e6c70295787573cbe4dcf761cc8147eee1b9e04",
+  "sha256": "0zkvpkfjs4lf2a6g5qlg0pr9alqmr8rvy02qh8pgqgismaz8c5s1",
+  "fetcher": "github",
+  "repo": "Alexander-Miller/treemacs",
+  "unstable": {
+   "version": [
+    20200801,
+    920
+   ],
+   "deps": [
+    "all-the-icons",
+    "treemacs"
+   ],
+   "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+   "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
+  }
+ },
+ {
   "ename": "treemacs-evil",
   "commit": "37cca017cf529a0553ba73bcb824a945ec8b1137",
   "sha256": "144klr1gqqzfqy7fx9lzngc2vljy6mnz7awk0z5f8vfclczkihw2",
@@ -96848,15 +98859,15 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20200302,
-    558
+    20200716,
+    2041
    ],
    "deps": [
     "evil",
     "treemacs"
    ],
-   "commit": "1935108f683ac446e3d0add9467bc1adc4f744e7",
-   "sha256": "0b8r7wsjm3my1cgwv66lz53i4r6yklfpyhx1xq1cibixwxi1p1ac"
+   "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+   "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
   },
   "stable": {
    "version": [
@@ -96879,15 +98890,14 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20200510,
-    2001
+    20200530,
+    2129
    ],
    "deps": [
-    "cl-lib",
     "treemacs"
    ],
-   "commit": "1935108f683ac446e3d0add9467bc1adc4f744e7",
-   "sha256": "0b8r7wsjm3my1cgwv66lz53i4r6yklfpyhx1xq1cibixwxi1p1ac"
+   "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+   "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
   },
   "stable": {
    "version": [
@@ -96918,8 +98928,8 @@
     "pfuture",
     "treemacs"
    ],
-   "commit": "1935108f683ac446e3d0add9467bc1adc4f744e7",
-   "sha256": "0b8r7wsjm3my1cgwv66lz53i4r6yklfpyhx1xq1cibixwxi1p1ac"
+   "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+   "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
   },
   "stable": {
    "version": [
@@ -96943,16 +98953,16 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20200421,
-    1426
+    20200530,
+    2129
    ],
    "deps": [
     "dash",
     "persp-mode",
     "treemacs"
    ],
-   "commit": "1935108f683ac446e3d0add9467bc1adc4f744e7",
-   "sha256": "0b8r7wsjm3my1cgwv66lz53i4r6yklfpyhx1xq1cibixwxi1p1ac"
+   "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+   "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
   },
   "stable": {
    "version": [
@@ -96976,15 +98986,15 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20200114,
-    1715
+    20200530,
+    2129
    ],
    "deps": [
     "projectile",
     "treemacs"
    ],
-   "commit": "1935108f683ac446e3d0add9467bc1adc4f744e7",
-   "sha256": "0b8r7wsjm3my1cgwv66lz53i4r6yklfpyhx1xq1cibixwxi1p1ac"
+   "commit": "400b3916b61e61a299916f053cc52b48638479b7",
+   "sha256": "1z9kvq0p3fhb48n85bav12pj9xgblhh7v1xsi3bymimxhdmkziq8"
   },
   "stable": {
    "version": [
@@ -97010,17 +99020,17 @@
     20191108,
     2217
    ],
-   "commit": "306f7031d26e4ebfc9ff36614acdc6993f3e23c3",
-   "sha256": "09k95b846mzak62acyzrmqvc7kwkni14w8d74079kr7lnar9g6zq"
+   "commit": "3ac940e97f3d03e48ca9d7fcd74916a9b01c72f3",
+   "sha256": "0pmrpij80m5kgcr8bw36r8wllgppasw08vn3ghwvis9srpaq75cn"
   },
   "stable": {
    "version": [
     0,
     1,
-    1
+    2
    ],
-   "commit": "b40e6b09eb9be45da67b8c9e4990a5a0d7a2a09d",
-   "sha256": "04zwm6gx9pxfvgfkizx6pvb1ql8pqxjyzqp8flz0432x0gq5nlxk"
+   "commit": "3ac940e97f3d03e48ca9d7fcd74916a9b01c72f3",
+   "sha256": "0pmrpij80m5kgcr8bw36r8wllgppasw08vn3ghwvis9srpaq75cn"
   }
  },
  {
@@ -97068,6 +99078,30 @@
   }
  },
  {
+  "ename": "tron-legacy-theme",
+  "commit": "975e93e060f50a1fd00a6ba1566a9386271bdfd6",
+  "sha256": "08cfhnkb62121h6dksw9c0d38vxm38dfbfww7c8kj491is0w63f4",
+  "fetcher": "github",
+  "repo": "ianpan870102/tron-legacy-emacs-theme",
+  "unstable": {
+   "version": [
+    20200601,
+    533
+   ],
+   "commit": "af17842821400a6fd466bb2769d13606e98550c0",
+   "sha256": "19pabaiza0lrvqa8yi0p83rffm9g44n6789m395iayfcxq49lylq"
+  },
+  "stable": {
+   "version": [
+    2,
+    5,
+    0
+   ],
+   "commit": "cdc052b044448654109bfb7d9b3d8bbfcf49042d",
+   "sha256": "0q1i2q6pkld8rz938yj9g68a55041d9vnps05nn4v1l8rx1x8jif"
+  }
+ },
+ {
   "ename": "trr",
   "commit": "56fa3c0b65e4e300f01804df7779ba6f1cb18cec",
   "sha256": "068vqsyx8riqzfrmjk8wr81f68r2y2b6ymc2vvl6vka9rprvsfwr",
@@ -97258,14 +99292,14 @@
   "repo": "ocaml/tuareg",
   "unstable": {
    "version": [
-    20191220,
-    2314
+    20200518,
+    1820
    ],
    "deps": [
     "caml"
    ],
-   "commit": "c12061eb80c1487a1963af7cdae268d709a70ca9",
-   "sha256": "0x85yy20caqb24n7qx3h8nw259p6593y5dx43jl5iapy2n9za1gy"
+   "commit": "ccde45bbc292123ec20617f1af7f7e19f7481545",
+   "sha256": "1yxv4bnqarilnpg5j7wywall8170hwvm0q4xx06yqjgcn8pq1lac"
   },
   "stable": {
    "version": [
@@ -97328,30 +99362,6 @@
   }
  },
  {
-  "ename": "tup-mode",
-  "commit": "bda3260dad1c766c5b6ae9124f966bf441e24f2f",
-  "sha256": "0pzpn1ljfcc2dl9fg7jc8lmjwz2baays4axjqk1qsbj0kqbc8j0l",
-  "fetcher": "github",
-  "repo": "ejmr/tup-mode",
-  "unstable": {
-   "version": [
-    20140410,
-    1614
-   ],
-   "commit": "bcc100c6485f1c81fdcd1215dfc6c41a81c215c8",
-   "sha256": "0y1b9zvwbw3vp41siyzj04bis939fgz3j27hc5ljjzy92kd39nzm"
-  },
-  "stable": {
-   "version": [
-    1,
-    3,
-    1
-   ],
-   "commit": "945af9c8e6c402e10cd3bf8e28a9591174023d6d",
-   "sha256": "0asd024n5v23wdsg1959sszq568wg3a1bp4jrk0cllfji1z0n78y"
-  }
- },
- {
   "ename": "turing-machine",
   "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
   "sha256": "0q9a31m5wnz9j9l4i8czdl7z12nrcdjw72w8sqvf94ri2g5dbpkq",
@@ -97510,11 +99520,11 @@
   "repo": "emacs-typescript/typescript.el",
   "unstable": {
    "version": [
-    20200430,
-    1232
+    20200817,
+    817
    ],
-   "commit": "0fc729787007b5111f3584034af0f3ef2389098f",
-   "sha256": "0h4k5gxjx55bg7dx8ixl87qdbxrmdzym6bvg2apasjs3kz9ggan5"
+   "commit": "42a60e5c881082db2ec2c541a5c154308c4863e6",
+   "sha256": "14hn0v5gcbzj6y2xs30qyh8wba4l073x5281xd7xs05f9yv7dv5j"
   },
   "stable": {
    "version": [
@@ -97570,8 +99580,8 @@
     "f",
     "mmt"
    ],
-   "commit": "231cb7df43253b84323520b8ed70f128d37003af",
-   "sha256": "1savrxs7xl92ifyxpxkkzv2didr7lb405h0dwz1bs1wldr5fb53f"
+   "commit": "f567867a0a519e17ad3552837b48d3d45fb73aa5",
+   "sha256": "0a5xds0mhfnq6kyc13s385vf4x4cqqpk2jiw1in7qg382fl8w2p0"
   },
   "stable": {
    "version": [
@@ -97595,11 +99605,11 @@
   "repo": "jorgenschaefer/typoel",
   "unstable": {
    "version": [
-    20200212,
-    919
+    20200706,
+    1714
    ],
-   "commit": "505b4b1ead337b773863ea54066f867d07735f9e",
-   "sha256": "0n8xh6bp757fjqa68slphw04kb4g0489g66r6f4n4v8bpbbi3bbl"
+   "commit": "173ebe4fc7ac38f344b16e6eaf41f79e38f20d57",
+   "sha256": "09835zlfzxby5lpz9njl705nqc2n2h2f7a4vpcyx89f5rb9qhy68"
   },
   "stable": {
    "version": [
@@ -97611,6 +99621,38 @@
   }
  },
  {
+  "ename": "typo-suggest",
+  "commit": "d2dc0688a0e8371b5d74e16b6e73bc91d6a835ea",
+  "sha256": "0hp55apmm5z0zjz81ll746m9733rp7z0ylrl49a1vxzfpwx2fw47",
+  "fetcher": "github",
+  "repo": "kadircancetin/typo-suggest",
+  "unstable": {
+   "version": [
+    20200801,
+    1000
+   ],
+   "deps": [
+    "company",
+    "helm"
+   ],
+   "commit": "ac48f2e59daee15983a5fd13009f751e0d928ab1",
+   "sha256": "0kjyjav2bwrr2kwvdm3dx7mi966ji49n9hcw9dxx458bl72giwqf"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    3
+   ],
+   "deps": [
+    "company",
+    "helm"
+   ],
+   "commit": "ac48f2e59daee15983a5fd13009f751e0d928ab1",
+   "sha256": "0kjyjav2bwrr2kwvdm3dx7mi966ji49n9hcw9dxx458bl72giwqf"
+  }
+ },
+ {
   "ename": "typoscript-mode",
   "commit": "701de09cb97cbfa49a3a81aaeb9577817566efa2",
   "sha256": "18i2wwbn8vj5dbgxp2ds29n12v8ldvxjd1zb6h1g9lfh8iyrnjmx",
@@ -97686,6 +99728,21 @@
   }
  },
  {
+  "ename": "udev-mode",
+  "commit": "38ea66665abd85da45aa005ba0fc03891fbbee63",
+  "sha256": "1gwp1hays9afl09vqv5zyq9s8k5w28jwc7aya0j7h6fbw3hrxnfn",
+  "fetcher": "github",
+  "repo": "benley/emacs-udev-mode",
+  "unstable": {
+   "version": [
+    20200702,
+    1536
+   ],
+   "commit": "5ca236980662141518603672ebdbdf863756da5a",
+   "sha256": "15nspdkjwbvxbqxlhmpsbhdf1zij9zd2z2xxhkmvdyjy89w0hyzp"
+  }
+ },
+ {
   "ename": "uimage",
   "commit": "346cb25abdfdd539d121a9f34bce75b2fc5a16be",
   "sha256": "0i6qpk6v4pmpk3zswygdy0dd7rxy8kl7qn8a1xanpi4aqg7wlbmd",
@@ -97765,10 +99822,10 @@
  },
  {
   "ename": "undercover",
-  "commit": "d58ad9eb863494f609114e3c6af8c14c891b83a5",
-  "sha256": "1s30c3i6y4r3mgrrs3lda3rrwmy9ff11ihdmshyziv9v5879sdjf",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "09wfgskilv001mlvkiyw6yichkxd1wpz4j70r5mlzqgv7xfy7p1l",
   "fetcher": "github",
-  "repo": "sviridov/undercover.el",
+  "repo": "undercover-el/undercover.el",
   "unstable": {
    "version": [
     20191122,
@@ -97820,6 +99877,29 @@
   }
  },
  {
+  "ename": "undersea-theme",
+  "commit": "0ee426fc0dcf1d8a4519ea9f953a8e20f1505f05",
+  "sha256": "1f2lkm4nv0sah2674wkfd50qx3mjg57618kcjvwam1q6qz2k1q41",
+  "fetcher": "github",
+  "repo": "jcs-elpa/undersea-theme",
+  "unstable": {
+   "version": [
+    20200719,
+    618
+   ],
+   "commit": "d4edb2cc110f1679ebc82cb52a4242cbc74636db",
+   "sha256": "0agn2j0qd516kxqx1bh6ajpandi8vz7zas966nw88yhv8m8hlzb2"
+  },
+  "stable": {
+   "version": [
+    0,
+    3
+   ],
+   "commit": "952d0c14258b0fd2d2e4642c6576708dac35c2f8",
+   "sha256": "005m1qzhqg25ymmh17mmp3g8ism5k8mz430ri689g26zzw4m76mh"
+  }
+ },
+ {
   "ename": "underwater-theme",
   "commit": "e7dccc77d082181629b8f0c45404ac5d8bd97590",
   "sha256": "0ab2bcqfdi9ml3z9d511pbfwcbp8hkkd36xxp61k36gkyi3acvlr",
@@ -97851,11 +99931,11 @@
   "repo": "ideasman42/emacs-undo-fu",
   "unstable": {
    "version": [
-    20200512,
-    19
+    20200701,
+    1435
    ],
-   "commit": "2b1e53285a55ce50ca6fd60b050f2171e235d8f9",
-   "sha256": "0x7i7aj9fh8j0944xbym3hijr33mc0kfadl7v657k0d8nx00x3zh"
+   "commit": "c0806c1903c5a0e4c69b6615cdc3366470a9b8ca",
+   "sha256": "1n594aakmcgyl7qbda86v4wsx8clm62ypiv3h559xz3x72h7mr3j"
   }
  },
  {
@@ -97866,11 +99946,11 @@
   "repo": "ideasman42/emacs-undo-fu-session",
   "unstable": {
    "version": [
-    20200510,
-    434
+    20200517,
+    949
    ],
-   "commit": "0400f15f2a0cfcedb69c06c3ff62f3f8814b62fb",
-   "sha256": "0f3f4svgsl5338bbglxscvk6mrscjbpcxqc2f84w2np7iyap4ls9"
+   "commit": "e2043f8350970e1a9ef06a94956a733826cdf32b",
+   "sha256": "14qlrdal1z64cqqssa34cw1yzsppslgwwy23060sxgjz2vvwwwfb"
   }
  },
  {
@@ -97929,8 +100009,8 @@
     20200304,
     2218
    ],
-   "commit": "02c36a04364bcb586477ab79d2b5e0d4e6ae6d47",
-   "sha256": "0pp9ywxkvvfay2pblbqcknf2c3q5izig552r5zksmxbac1rlsvcm"
+   "commit": "6a3f9e929489ebac5aa26862363410144d84409e",
+   "sha256": "0jdk2r6jlynswjz047zz2v3dyfq94inf1zbsriq1b8fmia018gah"
   },
   "stable": {
    "version": [
@@ -98032,8 +100112,8 @@
   "repo": "rolandwalker/unicode-fonts",
   "unstable": {
    "version": [
-    20181001,
-    1509
+    20200803,
+    1335
    ],
    "deps": [
     "font-utils",
@@ -98042,8 +100122,8 @@
     "persistent-soft",
     "ucs-utils"
    ],
-   "commit": "7b88ae84e589f6c8b9386b2fb5a02ff4ccb91169",
-   "sha256": "07wzcfj92jiadgd6nj5rmxky2aiaxs89j7zywp877xdp4vv0v512"
+   "commit": "e3942fe40b418bfb2dc4e73633e09195437fef01",
+   "sha256": "1vyldpmbi92yqzj0v7wbxma86f3cla0jhxbmq8jzl94pqy6q98jc"
   },
   "stable": {
    "version": [
@@ -98063,21 +100143,6 @@
   }
  },
  {
-  "ename": "unicode-input",
-  "commit": "5b7972602399f9df9139cff177e38653bb0f43ed",
-  "sha256": "17sf3xnl8yyx4ln4mrjlrvfinb8dvabh81l3qyr9pkn5skpgqgj8",
-  "fetcher": "bitbucket",
-  "repo": "m00nlight/unicode-input",
-  "unstable": {
-   "version": [
-    20141219,
-    720
-   ],
-   "commit": "e76ccb549e6a2a66c373da927eb65d69353e07db",
-   "sha256": "0kzcg1wxi1z424jdn7pibk9zyfyi85kligav08sl1c2hdldzya4l"
-  }
- },
- {
   "ename": "unicode-math-input",
   "commit": "e0d39bc129500e55b99c11b3d27e042619777414",
   "sha256": "1hra3vf6nzh99piagbxsmp0sizvki2jl7qkfmlwd5nwmicw0ykrq",
@@ -98193,6 +100258,21 @@
   }
  },
  {
+  "ename": "unifdef",
+  "commit": "805d7ed87c68f45aa878a19816c21c1122501c01",
+  "sha256": "0d0k7h7bsgfmbnx697jc87mdhjqiw8wg6r8k4ay8cxfp2bxqnwkg",
+  "fetcher": "github",
+  "repo": "Lindydancer/unifdef",
+  "unstable": {
+   "version": [
+    20200517,
+    514
+   ],
+   "commit": "7a4b76f664c4375e3d98e8af0a29270752c13701",
+   "sha256": "0xx954cyvzndj7fy6k203nlnhaxi6d0pn3xrvy287dh9ydklng0m"
+  }
+ },
+ {
   "ename": "unify-opening",
   "commit": "0a2faab13744262ef4d12750f70b300b3afd2835",
   "sha256": "1gpmklbdbmv8va8d3yr94r1ydkcyvdzcgxv56rp0bxwbcgmk0as8",
@@ -98262,6 +100342,30 @@
   }
  },
  {
+  "ename": "unisonlang-mode",
+  "commit": "5811216040e25a78c8eef9f9d90176173229eb4e",
+  "sha256": "0pckg82iawswaljp6yk9vd6piwjsfky3zzdf3gyj1b2phhr9zz3x",
+  "fetcher": "github",
+  "repo": "dariooddenino/unison-mode-emacs",
+  "unstable": {
+   "version": [
+    20200803,
+    808
+   ],
+   "commit": "2b794adbe0b2a4edd40f350173a32b80bd2c5896",
+   "sha256": "0zy3la6n51kgybjxibcsj13m6381p6klsq98h1sym8mxm2k2s78y"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    0
+   ],
+   "commit": "f793430068ade1b0a2d744aaa45f569c9dec9085",
+   "sha256": "129xk966kkhwn0ym80739r23kwds09qjiavd01ddnb3pfhbjfbrk"
+  }
+ },
+ {
   "ename": "universal-emotions-emoticons",
   "commit": "57f913112c98db2248cf69e44deb69fd09cee042",
   "sha256": "1aj3k3yrvasn3zmfwz5si046hlyhnjdmxh7i8li6rc0v0qwl7p86",
@@ -98325,10 +100429,10 @@
  },
  {
   "ename": "untitled-new-buffer",
-  "commit": "de62e48115e1e5f9506e6d47a3b23c0420c1205b",
-  "sha256": "1hpv7k7jhpif9csdrd2gpz71s3fp4svsvrd1nh8hbx7avjl66pjf",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "0fqnwas6917338a896yi6y1fnp2yhpmkpk001wrw7fmybfqzw05y",
   "fetcher": "github",
-  "repo": "zonuexe/untitled-new-buffer.el",
+  "repo": "emacs-jp/untitled-new-buffer.el",
   "unstable": {
    "version": [
     20161212,
@@ -98465,14 +100569,14 @@
   "repo": "jwiegley/use-package",
   "unstable": {
    "version": [
-    20200322,
-    2110
+    20200721,
+    2156
    ],
    "deps": [
     "bind-key"
    ],
-   "commit": "c873d5529c9c80cb58222f22873a4f081c307cb2",
-   "sha256": "0jbq3w9ijsbl5gblhr24b0rh4gyp1xx696g20l438a7sbsk4b531"
+   "commit": "4fb1f9a68f1e7e7d614652afc017a6652fd029f1",
+   "sha256": "073sm0mbxcjysap2bjzf1cl0134jy8a0xig7ywmmd0bm2y8qzfip"
   },
   "stable": {
    "version": [
@@ -98503,8 +100607,8 @@
     "key-chord",
     "use-package"
    ],
-   "commit": "c873d5529c9c80cb58222f22873a4f081c307cb2",
-   "sha256": "0jbq3w9ijsbl5gblhr24b0rh4gyp1xx696g20l438a7sbsk4b531"
+   "commit": "4fb1f9a68f1e7e7d614652afc017a6652fd029f1",
+   "sha256": "073sm0mbxcjysap2bjzf1cl0134jy8a0xig7ywmmd0bm2y8qzfip"
   },
   "stable": {
    "version": [
@@ -98565,8 +100669,8 @@
     "system-packages",
     "use-package"
    ],
-   "commit": "c873d5529c9c80cb58222f22873a4f081c307cb2",
-   "sha256": "0jbq3w9ijsbl5gblhr24b0rh4gyp1xx696g20l438a7sbsk4b531"
+   "commit": "4fb1f9a68f1e7e7d614652afc017a6652fd029f1",
+   "sha256": "073sm0mbxcjysap2bjzf1cl0134jy8a0xig7ywmmd0bm2y8qzfip"
   },
   "stable": {
    "version": [
@@ -98618,26 +100722,26 @@
   "repo": "jcs-elpa/use-ttf",
   "unstable": {
    "version": [
-    20190823,
-    939
+    20200720,
+    957
    ],
    "deps": [
     "s"
    ],
-   "commit": "edfc3f4b50aec2234792c0cc894774e4916ce26a",
-   "sha256": "0xy522czbxva2dpfbfjqf0xm6wi7cc98pz6ha7glgylsmcvhlvar"
+   "commit": "e09f7d08b462984da6bf53b523b4fcd6826a6a5d",
+   "sha256": "1vli40rz0c27y3sl7b3rzmssgzrmawg0hdd5fvf8x8mjl9d61sia"
   },
   "stable": {
    "version": [
     0,
     0,
-    5
+    6
    ],
    "deps": [
     "s"
    ],
-   "commit": "8c7f50a2b6f5bd55cdd92e351371386ff4b6edce",
-   "sha256": "0xg98ngrdlfjcb902qaljwhh9jszkafc2vm1x8627lnw1k7i6b3q"
+   "commit": "e09f7d08b462984da6bf53b523b4fcd6826a6a5d",
+   "sha256": "1vli40rz0c27y3sl7b3rzmssgzrmawg0hdd5fvf8x8mjl9d61sia"
   }
  },
  {
@@ -98651,17 +100755,17 @@
     20190715,
     1836
    ],
-   "commit": "952f97a46062bb3315d3ae20ecbfd58747019c25",
-   "sha256": "0bfi325y5yzjbwnmdww0l5bpf4h9ynwz4mwg60k8q3p3f82pkrrm"
+   "commit": "7bc5117d3449fc19f5c706a6decfdb2a30984507",
+   "sha256": "0fg1amarrwyfq76mv0w5z78qxs1x9vsvmzf7qzvnwh92n7lv6snb"
   },
   "stable": {
    "version": [
     2,
-    5,
+    6,
     0
    ],
-   "commit": "471cb311159773bbb280d0f1a4b47c54456c67a9",
-   "sha256": "09hxi1v5wvb952rwfmj48n6ndxkqn8ciaqj1cd9xgkw62h54agq9"
+   "commit": "df2447a63de2fea0f56d8c63d35b0bf39e11c0f2",
+   "sha256": "1g0s46p8c5kbv1kxvvj838g8hghqbkykv94q6zwy0d7q8ai1kqrq"
   }
  },
  {
@@ -98687,11 +100791,11 @@
   "repo": "kanru/uuidgen-el",
   "unstable": {
    "version": [
-    20200223,
-    509
+    20200816,
+    1308
    ],
-   "commit": "f096f35a6e1f27d2bc9e9093cd61dd97bc33f502",
-   "sha256": "1nzf7cllyvx7kwdzpf0nl3g5a8mn6qgifa60aw68h0sx9a80xp01"
+   "commit": "b50e6fef2de4199a8f207b46588c2cb3890ddd85",
+   "sha256": "08m74kj7h70kna3pifk3sgsy7mck11p32vi48h9wzqnafyq3n55d"
   },
   "stable": {
    "version": [
@@ -98703,6 +100807,25 @@
   }
  },
  {
+  "ename": "v-mode",
+  "commit": "247cab604cf0ef6078f5b0f5887526bcbbcefb70",
+  "sha256": "0jky9y06fqj06m4mg95h8k3h5fihf9j9qj4w3n836qg5lnb4ywga",
+  "fetcher": "github",
+  "repo": "damon-kwok/v-mode",
+  "unstable": {
+   "version": [
+    20200812,
+    956
+   ],
+   "deps": [
+    "dash",
+    "hydra"
+   ],
+   "commit": "15a73b304e624d9b07fd8f23670569678d6cd9c3",
+   "sha256": "1arbd9wwaqlhc1hl4hgpfjn4ncyrirjmpq8sgnhffgw7vkzl99pv"
+  }
+ },
+ {
   "ename": "v2ex-mode",
   "commit": "b27b7d777415aa350c8c30822e239b9a4c02e77d",
   "sha256": "04frd6jbnf9g7ak2fdbik9iji7b0903cpbg1hx7rai1853af7gh1",
@@ -98927,19 +101050,19 @@
   "repo": "muffinmad/emacs-vc-hgcmd",
   "unstable": {
    "version": [
-    20200507,
-    2139
+    20200615,
+    1823
    ],
-   "commit": "7433c6cc557440893d54be05fbf6500ff0e863d7",
-   "sha256": "0wgr2g814a461nknqchwbrgfgax5hb5f9fp6ibz6616q56hrcbds"
+   "commit": "5c735b3e3897b7ba52b5ac4e6a2f43ca283fd52d",
+   "sha256": "050xk0rs7k79ymchqdkdmgpg3s22wpbdnzl3pz2wsghihkskz6q1"
   },
   "stable": {
    "version": [
     1,
-    11
+    12
    ],
-   "commit": "7433c6cc557440893d54be05fbf6500ff0e863d7",
-   "sha256": "0wgr2g814a461nknqchwbrgfgax5hb5f9fp6ibz6616q56hrcbds"
+   "commit": "5c735b3e3897b7ba52b5ac4e6a2f43ca283fd52d",
+   "sha256": "050xk0rs7k79ymchqdkdmgpg3s22wpbdnzl3pz2wsghihkskz6q1"
   }
  },
  {
@@ -99043,11 +101166,11 @@
   "repo": "plapadoo/vdf-mode",
   "unstable": {
    "version": [
-    20191122,
-    823
+    20200713,
+    1838
    ],
-   "commit": "35f5c3531b256b6578b9878ac2ce1ed79b3c8511",
-   "sha256": "16650xwq85rp98z4nljd5s7f14fg4rr90nr7ipfshj1i6zvbk229"
+   "commit": "8fbf6157440345879a0543bcab233e790a7b60ee",
+   "sha256": "1m237py9jcxkm6z3wgsxzhikc3lidd28gfflcmr0wm588sdx48sl"
   },
   "stable": {
    "version": [
@@ -99271,15 +101394,15 @@
   "repo": "applied-science/emacs-vega-view",
   "unstable": {
    "version": [
-    20200510,
-    726
+    20200520,
+    1202
    ],
    "deps": [
     "cider",
     "parseedn"
    ],
-   "commit": "c869defa3c0d9931e8eb4050dbaedb781160410b",
-   "sha256": "1l57w79ljihhfs4n60ak3hc3hdzv24wxkxafv51llb4zv2b85b5k"
+   "commit": "b0160c883f53ce069c0b4498880474c158ac7245",
+   "sha256": "1msc6s90a048lk4i8gqkhgnm1k52k40m62q9n1s0dwgmq1yj3zyl"
   }
  },
  {
@@ -99290,20 +101413,20 @@
   "repo": "federicotdn/verb",
   "unstable": {
    "version": [
-    20200515,
-    1734
+    20200801,
+    2217
    ],
-   "commit": "af1f250fd34d53ecdf31be1756c8693b4182d452",
-   "sha256": "0zk52ddlf11rwsd1f70i6jjc9z81jddqapfr2dv1d4ghn6j382x5"
+   "commit": "f8755213c8fadea92b7a2313fb38c0ee37b8a2cc",
+   "sha256": "0f59rw78hfc7hkgd9ja2hzyb6gaf400aa6375zcl3zxh2ljnvbvb"
   },
   "stable": {
    "version": [
     2,
-    10,
+    12,
     0
    ],
-   "commit": "ee83e62490bec3b6d99281748a2e894c2bdc9e24",
-   "sha256": "1zd7vkd3i3x5cr04sp3jpfd79cp0p30615c9605z1rq01jjxgm3m"
+   "commit": "08ddce1306ad1b8707300fee33848b7a48897fd3",
+   "sha256": "1azwmqhlasir5fhy2r3yd861xvk6lxrzq60svvyjss3kdlqp1irj"
   }
  },
  {
@@ -99344,6 +101467,25 @@
   }
  },
  {
+  "ename": "verona-mode",
+  "commit": "342867cf256c6e6c242387b6d8c439a7a90f17dc",
+  "sha256": "1w94hs8mkd6qfklgm7hxb8j7ykvif25czpha0yq7ghbfc0vb3595",
+  "fetcher": "github",
+  "repo": "damon-kwok/verona-mode",
+  "unstable": {
+   "version": [
+    20200812,
+    807
+   ],
+   "deps": [
+    "dash",
+    "hydra"
+   ],
+   "commit": "3519f83e68af163a6b01753ad7bb4cecf26c24b2",
+   "sha256": "1ck3x1w0nyn31s3fdks6wms5ic5n56jcxg49r56j3dwnifpk87mm"
+  }
+ },
+ {
   "ename": "versuri",
   "commit": "056daa8d5563dd6ffb9c93630f9b357f73c1e58a",
   "sha256": "0nidgn9gdrrvqzbfjwvhs9bycbj3l9jbcablnbs2yxf903zlgn9b",
@@ -99596,21 +101738,21 @@
  },
  {
   "ename": "vimish-fold",
-  "commit": "b4862b0a3d43f073e645803cbbf11d973a4b51d5",
-  "sha256": "017by9w53d8pqlsazfycmhdv16yylks308p5vxp1rcw2qacpc5m3",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "1ld9sab9r82wr74rscxcmsmd07jgkmkysbcn5aswzyrf1gn62gr9",
   "fetcher": "github",
-  "repo": "mrkkrp/vimish-fold",
+  "repo": "seregaxvm/vimish-fold",
   "unstable": {
    "version": [
-    20200329,
-    1242
+    20200524,
+    1729
    ],
    "deps": [
     "cl-lib",
     "f"
    ],
-   "commit": "63685239655a151181b9152e45478dad587f86f2",
-   "sha256": "1l6zca08diq3ppmg1pllihbfj0pcaqvbnisryr92mvbblhk44wxs"
+   "commit": "9d12e39f01da517565666e09a2e32e01aed24a90",
+   "sha256": "0xdk95hiamnim0bn1w5g0lccb9wc0sxbczrb95q3ndaw3cxxjaa2"
   },
   "stable": {
    "version": [
@@ -99756,8 +101898,8 @@
     20200428,
     816
    ],
-   "commit": "982606896e018c951917b73d2af6334df554cf9d",
-   "sha256": "19ks9wjfjyfk4s53wvhdqjnjc6847v43nh3ir0yvr66mflqxgg54"
+   "commit": "64d38bc1c00953be05c193c01332a633be67aac2",
+   "sha256": "1gkl2bg0ax16d3b17n7s3j5ng261jxfl6q3bi5bff03jph900x1p"
   },
   "stable": {
    "version": [
@@ -99875,11 +102017,11 @@
   "repo": "blak3mill3r/vmd-mode",
   "unstable": {
    "version": [
-    20190929,
-    735
+    20200727,
+    701
    ],
-   "commit": "aa9b753601ee1ed31b4f717629179ce7a2cacba5",
-   "sha256": "0gc1c5q1krqlbaq0lb7p29biwpl32lgv4c6527c322a21in6a5pb"
+   "commit": "31655a41caf006c3dd64d6e57f6c4488098f8bce",
+   "sha256": "1pnx977pm305kr0zakwy1wkdfpk09rilwx8rmai4459lyz0sa8j9"
   }
  },
  {
@@ -99940,11 +102082,11 @@
   "repo": "dbrock/volume.el",
   "unstable": {
    "version": [
-    20150718,
-    2009
+    20200523,
+    1246
    ],
-   "commit": "ecc1550b3c8b501d37e0f0116b54b535d15f90f6",
-   "sha256": "0ymibjq6iwab5ia1fglhz4gm5cnbi792018fmrabcqkisj2zsjb7"
+   "commit": "bd0ca8430098164740f111ac2bd2582d7f628b79",
+   "sha256": "0v8x9d0qq8gjlf6ydri580wix6hisf6x9pywg5px6cqj53r8g6rc"
   }
  },
  {
@@ -99958,8 +102100,8 @@
     20191209,
     1600
    ],
-   "commit": "d1f954a3879ec3f93c8dea9177772bf4d5bd0ecb",
-   "sha256": "13kfwp129wrlbbpvl9n4h7ybnycph68x214dx5v6v7ap6gnv0lr6"
+   "commit": "aea1ca9932df2c19a19e47f7971b7bc6b821181f",
+   "sha256": "0nk0vsxww46rrm1ijfpq58bn3zai7qmj2iqg1k8g14w7fc2si8mi"
   },
   "stable": {
    "version": [
@@ -99981,8 +102123,8 @@
     20191209,
     1600
    ],
-   "commit": "764f478f5866140b121b1e43857487b7a66afa72",
-   "sha256": "0s8fh7n8qhsfdk8l7r81ifscaazgmpls4n3pginaqb5cszdy4063"
+   "commit": "5c11a73bfc5f3873490ed0ba88eed44e4707e455",
+   "sha256": "1ifwm4dwmv4f97p1byv3l5k26gyb97zp60wjhrzrdj2g49fg716g"
   },
   "stable": {
    "version": [
@@ -100009,6 +102151,30 @@
   }
  },
  {
+  "ename": "vscode-dark-plus-theme",
+  "commit": "0e7e489ea5cee3b1d2b6b5295cf95f3e1d9d6c60",
+  "sha256": "001xhi87dsh75sd0vg26v4w78rf1p8bhj1zhn3w7j255817xvcgd",
+  "fetcher": "github",
+  "repo": "ianpan870102/vscode-dark-plus-emacs-theme",
+  "unstable": {
+   "version": [
+    20200818,
+    341
+   ],
+   "commit": "a33ef7fd5d9249bbb59fcb822c032e28bb3bf792",
+   "sha256": "0wm54jy09hsg3vbw4qc5k4nzznsn3mqcn0al8mwh2522q6kb6l8j"
+  },
+  "stable": {
+   "version": [
+    1,
+    5,
+    0
+   ],
+   "commit": "c64d5f7088f1295df0bd8f1dc87a532e00647fbe",
+   "sha256": "09a6plb2dqayj4m456ldh43a654jbkg8zjiky7bkj5m0kpdc5426"
+  }
+ },
+ {
   "ename": "vscode-icon",
   "commit": "90a07c96a9223a9ad477cbea895ba522523c5be4",
   "sha256": "0rhsqzgxl7hs52kniyi8yn4f953g7dgx49j4lzf2yr33ydxiw9d3",
@@ -100031,11 +102197,11 @@
   "repo": "akermu/emacs-libvterm",
   "unstable": {
    "version": [
-    20200515,
-    1412
+    20200813,
+    1748
    ],
-   "commit": "8337e77520bcdb136eebb74837dc71ac8ec67601",
-   "sha256": "1wf8w8w0690mkih7c9xkk11i9f7r47abvfpyw4y576ansxlr5g1f"
+   "commit": "797357bf65952337627f2d0c594c2fef600aafae",
+   "sha256": "0lqlx97kb1mpw17lmrx2xa407ixn3wl2cv9rdwrvlrlvg8kcpjmn"
   }
  },
  {
@@ -100046,14 +102212,15 @@
   "repo": "jixiuf/vterm-toggle",
   "unstable": {
    "version": [
-    20200516,
-    1117
+    20200614,
+    1452
    ],
    "deps": [
+    "projectile",
     "vterm"
    ],
-   "commit": "fd55be72e8ad19e2284c8f73d5707c033dbde46d",
-   "sha256": "0q3459vpj5fp2i7nbk67mfd0nf78mpkgz771nhdj4a7xwghk6xgq"
+   "commit": "7f762d216fc7311bac4182f650e0207574c29357",
+   "sha256": "0nz3qcd2jmjfky0xn62fkhnxchf9nap3li5blis0jgi6igj47ykq"
   }
  },
  {
@@ -100122,8 +102289,8 @@
   "repo": "mihaiolteanu/vuiet",
   "unstable": {
    "version": [
-    20200424,
-    1400
+    20200616,
+    1136
    ],
    "deps": [
     "bind-key",
@@ -100132,8 +102299,8 @@
     "s",
     "versuri"
    ],
-   "commit": "5da06a8acebcaf84a3581610ff24aae1b46f786b",
-   "sha256": "16yfnqpdzi3bih16d7dzbqmd30m7w8rkjylnsg9m951vc0lysk3p"
+   "commit": "3dab1ea2253d5bc2974a1a064d2b1af3bd6b24f6",
+   "sha256": "1q1rcnsda1392kqh944hdj30d79300ycl46ck1bzx4szx3m3p801"
   },
   "stable": {
    "version": [
@@ -100196,11 +102363,11 @@
   "repo": "emacs-w3m/emacs-w3m",
   "unstable": {
    "version": [
-    20200325,
-    2226
+    20200818,
+    141
    ],
-   "commit": "e522a44b151d69d4a176e8809225598ab540fc4d",
-   "sha256": "1alishzz4j1hbfyfi09rkhffx6gv16yxln7q8jx25shb9rssivyz"
+   "commit": "7dcbab77334c5adf8309c7a93512c9f95a2c64e4",
+   "sha256": "0in8ir99b33d83nfxsnpj2dgyv4f558yrid77bp7f9k0qpgpj4zk"
   }
  },
  {
@@ -100273,11 +102440,11 @@
   "repo": "wakatime/wakatime-mode",
   "unstable": {
    "version": [
-    20180920,
-    702
+    20200730,
+    240
    ],
-   "commit": "2531cb58287770883ba534d20b3288955c4d6ef3",
-   "sha256": "12wa845lwvwg38801mk880izfhjs50ssy5alj1743c2bz7ig5grk"
+   "commit": "7626678315918bdbb81ede68149f20a7d97a928f",
+   "sha256": "0dlhj32mkylji1d55pc593d3gn8babcs6s4c0c5sfm6jfz14m9j0"
   }
  },
  {
@@ -100674,11 +102841,11 @@
   "repo": "fxbois/web-mode",
   "unstable": {
    "version": [
-    20200501,
-    1939
+    20200612,
+    1038
    ],
-   "commit": "186a7c21049c50ecfd4109eb06c91196404f8bc5",
-   "sha256": "1si8i21ysqwnkq38wr0r4liz3j8v8sj66y46yl6bpw77116fngx9"
+   "commit": "60ffd878c4371644bd964f00fea38054645e3e47",
+   "sha256": "0la14k422jqcny1bxgvv8yidanl3pv5kkdfbiwq8skxsd6m2xfq5"
   },
   "stable": {
    "version": [
@@ -100856,8 +103023,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "078f83902c0846c00ed8e3b6c5add7ff9b98d8f9",
-   "sha256": "11nacz0vvhaa8582r0ylx5w886y2qysbvrh9s064g979vjyfh9rg"
+   "commit": "5aaf9d12068f98fb4efa772a3e5f4bb350b79a99",
+   "sha256": "13qwvjid9d67kk4ggvc2hvm6j4wy1jassd02krp8as91h5hr0y36"
   },
   "stable": {
    "version": [
@@ -100967,6 +103134,21 @@
   }
  },
  {
+  "ename": "weyland-yutani-theme",
+  "commit": "87fd30180367eaf64fe145d78e50febdfd79772b",
+  "sha256": "184vc3r34j2pv0a2a2bldbzpvv8d39c20znv6l9fmnqmr48fzvnq",
+  "fetcher": "github",
+  "repo": "jstaursky/weyland-yutani-theme",
+  "unstable": {
+   "version": [
+    20200818,
+    2225
+   ],
+   "commit": "d17297aee3a15b326e813d6c12831b587f6267fd",
+   "sha256": "0brixf1j1hdmj0wvd3qzlmr844fvd61nxgc5adczpy0qivc1c1c9"
+  }
+ },
+ {
   "ename": "wgrep",
   "commit": "9648e3df896fcd97b3757a727108bc78261973cc",
   "sha256": "09xs420lvbsmz5z28rf6f1iwa0ixkk0w24qbj6zhl9hidh4mv9y4",
@@ -101133,11 +103315,11 @@
   "repo": "justbur/emacs-which-key",
   "unstable": {
    "version": [
-    20200216,
-    1350
+    20200817,
+    2358
    ],
-   "commit": "8b49ae978cceca65967f3544c236f32964ddbed0",
-   "sha256": "15ydzqv23m1w6g27il57fmzs6pjcasdb7drml3msjpq2l8kr4ard"
+   "commit": "e48e190a75a0c176e1deac218b891e77792d6921",
+   "sha256": "1wr5lqjc5si0s0rn266jxfwln93l7aw79885w66gbjcynfy8rji3"
   },
   "stable": {
    "version": [
@@ -101251,8 +103433,8 @@
     20200304,
     2227
    ],
-   "commit": "5fac49636cd72a0043e2473c9a09a788cfd68d5f",
-   "sha256": "0myx8vayakmhb5hbrskk58rkb1f0jdw7kinvk8fvv73g050yk28d"
+   "commit": "c344cfd78df23980ee48fb85fbc16989b7d4cffe",
+   "sha256": "1jwz89j6v8mmdim8knnwjz2ip0cwn5lq6x8nz78xns1ba5fg293b"
   },
   "stable": {
    "version": [
@@ -101295,19 +103477,19 @@
   "repo": "lassik/emacs-whois",
   "unstable": {
    "version": [
-    20200409,
-    1538
+    20200715,
+    1715
    ],
-   "commit": "907abd9538c4a1e088853b816af883e5040fc430",
-   "sha256": "1qfkppciijyyg76idqqzjy351rki8y4pffwicprnrhv1qixfhdvv"
+   "commit": "11d01c483ab3ba78b6ea1e195bda65b5e35f2d4c",
+   "sha256": "14w1cchij7i8a9m9z71dsz76aphidmvp8lbai4gaxxi4qiyvkcn3"
   },
   "stable": {
    "version": [
     0,
-    1
+    2
    ],
-   "commit": "b4cdab4d25225c6e834727a7d85cdb0d493da152",
-   "sha256": "058wym1iwgz5n5yd508xdc05ncdyqbs53a5c9mq0s6gs06h5xfyw"
+   "commit": "7cc7e2734ec823bed6eb923387b3b33a1cde0c86",
+   "sha256": "0d8q8as85fjn2v65i25xv9bzg03mlk4jhxrbqrcg5ywjiv5i2ljg"
   }
  },
  {
@@ -101321,8 +103503,8 @@
     20200305,
     221
    ],
-   "commit": "71f84725e2643b2ee74f27c60c4fd8b79c9c3c97",
-   "sha256": "1rs446cwbp6i79wi7srzaxg9hdahagcjkjill34j70hdy1r4xjas"
+   "commit": "9791ae59f8bd8b9375d2dede92de8eba5f0d89fb",
+   "sha256": "0fk2nhcjkwrni8np8788z9aanrj1hxchg37a1j1z9ds42f0ghj6h"
   },
   "stable": {
    "version": [
@@ -101389,8 +103571,8 @@
     "makey",
     "s"
    ],
-   "commit": "1de068d49a6b5faf8754d217bdaa2cbfc903a9fc",
-   "sha256": "04gfhjpn4q8d4y6177gdffwjbqq627083pff2ckw79pbvlj9f2mm"
+   "commit": "a0d8456b9f71fcb40a28ec9235132df506aa6ecc",
+   "sha256": "1bndpdzscb917sp32khmifk7vdkj4psh7c8rf4j5s5zs7033qwka"
   }
  },
  {
@@ -101669,6 +103851,29 @@
   }
  },
  {
+  "ename": "windswap",
+  "commit": "442a7394fd31e641b778ef0b218a5ef158377db0",
+  "sha256": "0yxh8zlqg2gv08gfima2vgcqwadqkli1qz6q11xvy5a0d3n8drxr",
+  "fetcher": "github",
+  "repo": "purcell/windswap",
+  "unstable": {
+   "version": [
+    20200722,
+    411
+   ],
+   "commit": "1a334f6543e0a30c55ea1e6071e9732d948f9e4b",
+   "sha256": "0q36rqy1ss1hayf698zla2m6ff57gigkji5slaffjhnijhsj3c67"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
+   ],
+   "commit": "33d59d371843d5a72a4327e318382ff27ee15674",
+   "sha256": "13hbpi6rr7vgyy1cbxaz947ixbrbp8x2dy6dw2l02c5hl4p65miw"
+  }
+ },
+ {
   "ename": "windwow",
   "commit": "12aba18872021ce0affa96c46a17353c7d073ca2",
   "sha256": "0cbkp98pwzj484akdbidvdz4kqxv6ix6paimpxnag6fffciq245h",
@@ -101773,21 +103978,6 @@
   }
  },
  {
-  "ename": "wisp-mode",
-  "commit": "5b7972602399f9df9139cff177e38653bb0f43ed",
-  "sha256": "10zkp1qbvl8dmxij7zz4p1fixs3891xr1nr57vyb3llar9fgzglc",
-  "fetcher": "bitbucket",
-  "repo": "ArneBab/wisp",
-  "unstable": {
-   "version": [
-    20191114,
-    2340
-   ],
-   "commit": "91ec8dc32652811861116e6f750f0fb41b21b771",
-   "sha256": "0nc9c1agzhmlbh4ijjrsa9yx19hvxzk06gv6p4pgrlx1yg2khnli"
-  }
- },
- {
   "ename": "wispjs-mode",
   "commit": "a628330ee8deeab2bd5c2d4b61b33f119c4549d8",
   "sha256": "0qzm0dcvjndasnbqpkdc56f1qv66gxv8dfgfcwq5l1bp5wyx813p",
@@ -101825,26 +104015,26 @@
   "repo": "magit/with-editor",
   "unstable": {
    "version": [
-    20200217,
-    1015
+    20200720,
+    2014
    ],
    "deps": [
     "async"
    ],
-   "commit": "f25a70777d9d9c90a52249791578bd72f1b7dfd7",
-   "sha256": "1vb6dw07vx3zqqb1h457f9957yja8wfqcjcfcf3m78dah3l2qmr1"
+   "commit": "efafd482c21b90decbb0b682ed3159c86014d4f3",
+   "sha256": "1z3214zjf3dassb31k14gq4nbr3q8g5x87ydfah28hm4j08v0wb3"
   },
   "stable": {
    "version": [
     2,
     9,
-    1
+    4
    ],
    "deps": [
     "async"
    ],
-   "commit": "7e0bf753709f1775d2bbbb6edf4482fca7fd286a",
-   "sha256": "1y4zrgsfs0504ks30qb7hl32ygd3hb6yx5x8032b30j7rh5ks29d"
+   "commit": "efafd482c21b90decbb0b682ed3159c86014d4f3",
+   "sha256": "1z3214zjf3dassb31k14gq4nbr3q8g5x87ydfah28hm4j08v0wb3"
   }
  },
  {
@@ -101904,26 +104094,26 @@
   "repo": "p3r7/with-shell-interpreter",
   "unstable": {
    "version": [
-    20200510,
-    1621
+    20200527,
+    828
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "8d78bfeffa8a7bb4973395417d6fe21e4840ee16",
-   "sha256": "0ygbabavrhl9xmxmqaxrjkhyf7ar5lin5v1ay94hzr1v1lyiyc9h"
+   "commit": "f8a01beda6260bd2eff3f9fe154ddc16da7b6504",
+   "sha256": "1xwmg85211s6fvc9agb8ib06klbk6cn890gpjq33bns6ldjsq41s"
   },
   "stable": {
    "version": [
     0,
     2,
-    2
+    3
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "5ff0c8bc0b99b28d6c696e56cd7f44c7aa9ccaf1",
-   "sha256": "00dc0b0kj8215z14brwmzryb73w1j82r136a03n3pnczfh2l9z4n"
+   "commit": "eb2b629c885ca002b7225e20d03231835910d6be",
+   "sha256": "0b6z516lwcl08gnhlw99z9sdw15qxk3kanicpp0l0hcbmzann46k"
   }
  },
  {
@@ -102205,32 +104395,26 @@
   "repo": "pashinin/workgroups2",
   "unstable": {
    "version": [
-    20200516,
-    1451
+    20200729,
+    852
    ],
    "deps": [
-    "anaphora",
-    "cl-lib",
-    "dash",
-    "f"
+    "dash"
    ],
-   "commit": "239a5a3ba3b210be5d8fe527546d09241bd3185c",
-   "sha256": "16lzv61scc1iq1vsbfvyzla91cnxh5a7s84wx3x3kq9jggzh6hbs"
+   "commit": "737306531f6834227eee2f63b197a23401003d23",
+   "sha256": "0f16a4zz5havxbadiv4h6msa30c1yfdkfk56gic5wapz4i26z3x7"
   },
   "stable": {
    "version": [
     1,
     2,
-    0
+    1
    ],
    "deps": [
-    "anaphora",
-    "cl-lib",
-    "dash",
-    "f"
+    "dash"
    ],
-   "commit": "928d509157ec8a4a2e343b6115dff034c3243a7a",
-   "sha256": "0prj2b33h6rya7y9ff91r72bva1y6hg0sv9l11bn1gikmc6lc18n"
+   "commit": "737306531f6834227eee2f63b197a23401003d23",
+   "sha256": "0f16a4zz5havxbadiv4h6msa30c1yfdkfk56gic5wapz4i26z3x7"
   }
  },
  {
@@ -102348,14 +104532,14 @@
   "repo": "joostkremers/writeroom-mode",
   "unstable": {
    "version": [
-    20200427,
-    2319
+    20200519,
+    37
    ],
    "deps": [
     "visual-fill-column"
    ],
-   "commit": "7f7acde5e8fc4ba74e511ca295e21f9ba7874730",
-   "sha256": "01rc7v2kg1h3cc06qa521mx9kvdxpw2b5hg12skh9gq1v5q1pbv9"
+   "commit": "8a226a31a12a9203067094774ba6fd6175793e70",
+   "sha256": "1wb8lkza1a6yfgpwqlc78iq7b5hamss9lak2alwmp9j9aiwys1n0"
   },
   "stable": {
    "version": [
@@ -102454,20 +104638,20 @@
   "repo": "redguardtoo/wucuo",
   "unstable": {
    "version": [
-    20200516,
-    1526
+    20200710,
+    932
    ],
-   "commit": "49d2ae558068954eb8c4324b8ee7a6b2b0a00ef9",
-   "sha256": "1zr9fp4y9459y97zh4dj6109wwk6lj7sjfffwapyjmirnpfkxirk"
+   "commit": "54143769dbea06d34792687eadbc6c7a1cd89ea2",
+   "sha256": "1a6jy8vixc6ls6cjwxjy3ifmiw8xw3c0kfichgd1b6v20xqdvhh3"
   },
   "stable": {
    "version": [
     0,
-    1,
-    2
+    2,
+    6
    ],
-   "commit": "49d2ae558068954eb8c4324b8ee7a6b2b0a00ef9",
-   "sha256": "1zr9fp4y9459y97zh4dj6109wwk6lj7sjfffwapyjmirnpfkxirk"
+   "commit": "54143769dbea06d34792687eadbc6c7a1cd89ea2",
+   "sha256": "1a6jy8vixc6ls6cjwxjy3ifmiw8xw3c0kfichgd1b6v20xqdvhh3"
   }
  },
  {
@@ -102578,11 +104762,11 @@
   "repo": "xahlee/xah-css-mode",
   "unstable": {
    "version": [
-    20200309,
-    1750
+    20200627,
+    1652
    ],
-   "commit": "43dbab2b8c35bd6892fe80bf064b41bd731545ff",
-   "sha256": "0m6l2k22pfcp6s3dadm3w1mr7ar590xl64zjsr0dl9d8spc6gbz1"
+   "commit": "98e550db52865d6de141d5bbb85f8b4e68b56b39",
+   "sha256": "0km4b9praqpkv4n6sixmxjfvisp5640zyd1x85q43vkxrm39p7ah"
   }
  },
  {
@@ -102593,11 +104777,11 @@
   "repo": "xahlee/xah-elisp-mode",
   "unstable": {
    "version": [
-    20190125,
-    646
+    20200719,
+    1648
    ],
-   "commit": "a09c51e450bf4b39bdc3f4063c2946baec7ae3b1",
-   "sha256": "0hpdm6qns2i5zpavqq6zd7dyl9lxsxyic52jzjfisqv3gjrz8zpp"
+   "commit": "a051862622c56b7cad2057a95d8201ab38b50752",
+   "sha256": "00kan9rb133mf11qq0grdkph6ghv0hgwvdx3b21890mad20zmk1w"
   }
  },
  {
@@ -102623,11 +104807,11 @@
   "repo": "xahlee/xah-fly-keys",
   "unstable": {
    "version": [
-    20200427,
-    1357
+    20200707,
+    1310
    ],
-   "commit": "17319a5e5514a61564c7314cb65b7d825ca0bb0f",
-   "sha256": "1y5g89kl1lbwzxmgah06z6iisj55l089q25n9dbxmwnklsxpbicw"
+   "commit": "8c9c4df25e1406b093a32c87da19803337e4e09c",
+   "sha256": "10d1xvyd2mbvhmlf1x5snqn4d22xg0p53nq601s8b4f1gws6zs59"
   }
  },
  {
@@ -102772,11 +104956,11 @@
   "repo": "nhojb/xcode-project",
   "unstable": {
    "version": [
-    20181025,
-    1244
+    20200810,
+    2010
    ],
-   "commit": "0bf9a4230fab7830350c750c39beda99ef74d72f",
-   "sha256": "0746f2niclmlx90skvdb1xdac0nqj8a9pd9ap8n89ckb5r6f9hbg"
+   "commit": "11743f0a2212c840a108e1b905b1f20afcff8156",
+   "sha256": "1vj1xshdsff5xrgmp6c46q2ipglq4wy25mq51rnhv57f0r1wq62n"
   },
   "stable": {
    "version": [
@@ -102812,6 +104996,30 @@
   }
  },
  {
+  "ename": "xenops",
+  "commit": "605c8ca551d54c79246310bcee678cdd854548b0",
+  "sha256": "0l9pwjbdyfs2mkp2n9xg16pv02y063l92302fmi0h8rwra81xrvv",
+  "fetcher": "github",
+  "repo": "dandavison/xenops",
+  "unstable": {
+   "version": [
+    20200730,
+    1646
+   ],
+   "deps": [
+    "aio",
+    "auctex",
+    "avy",
+    "dash",
+    "dash-functional",
+    "f",
+    "s"
+   ],
+   "commit": "78cbe16b74480ac6304865c9c3cfad36b5d49d1d",
+   "sha256": "1rpcckp60pw1blkxs7wlp60pvpr847b6g2rcd6p0hpf5sx9wirgv"
+  }
+ },
+ {
   "ename": "xkcd",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "0gy2952zg1rq5gl10x7iwbchz5jibfcvikd3chifqbmil80wh6b5",
@@ -102905,10 +105113,10 @@
  },
  {
   "ename": "xml-rpc",
-  "commit": "547d773e07d6229d2135d1b081b5401039ffad39",
-  "sha256": "14r6xgnpqsb2jlv52vgrhqf3qw8a6gmdyap3ylhilyxw71lxf1js",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "08nx1a6v7b53zl1wgcypankdwqdgqcljwmzgrrd00ibi59nbfi4l",
   "fetcher": "github",
-  "repo": "hexmode/xml-rpc-el",
+  "repo": "xml-rpc-el/xml-rpc-el",
   "unstable": {
    "version": [
     20181002,
@@ -102921,10 +105129,10 @@
    "version": [
     1,
     6,
-    12
+    13
    ],
-   "commit": "0ab093d60140d19e31d217c8abdc7dbdac944486",
-   "sha256": "0g52bmamcd54acyk6i47ar5jawad6ycvm9g656inb994wprnjin9"
+   "commit": "8f624f8b964e9145acb504e4457c9510e87dd93c",
+   "sha256": "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"
   }
  },
  {
@@ -102958,19 +105166,19 @@
   "repo": "ndw/xmlunicode",
   "unstable": {
    "version": [
-    20191124,
-    2312
+    20200812,
+    747
    ],
-   "commit": "80f30becf860db4277e71e3445994fccaf35ba98",
-   "sha256": "0vs8l739104s3zqmqna4m0n0pkz4m04mivx6r9iqdjmg4khh6bfi"
+   "commit": "8ae84ded4341aaa303903b4da142ef3ea456391e",
+   "sha256": "0ki8i41jkkzk791dg5wvpl6nfa4py2bfcs6lf3wmw8y768vx6mbg"
   },
   "stable": {
    "version": [
     1,
-    21
+    22
    ],
-   "commit": "80f30becf860db4277e71e3445994fccaf35ba98",
-   "sha256": "0vs8l739104s3zqmqna4m0n0pkz4m04mivx6r9iqdjmg4khh6bfi"
+   "commit": "852bcbd0bd014f62c41ac78648e4f6664209b40b",
+   "sha256": "03b18jhfpbhkaq5fj30k6drwpcpvrb6gf1l43ja1mnqyrilvni2x"
   }
  },
  {
@@ -103106,11 +105314,11 @@
   "repo": "atomontage/xterm-color",
   "unstable": {
    "version": [
-    20200514,
-    1932
+    20200605,
+    2017
    ],
-   "commit": "3d1a24ca84d26ad4507a79260107b010a1d6886b",
-   "sha256": "1qppbf4jidq6q8c7gby0syp4560xqc3kzgbdgdwl1jc5k08ln3cl"
+   "commit": "b9b1f84fb10fff5261702e38bf15b3ae75a4b6bb",
+   "sha256": "0mb5a1g7sby3v4gaqgg9w3lr5albd99mj3kd2bgga7h7kbcjfp5a"
   },
   "stable": {
    "version": [
@@ -103186,6 +105394,29 @@
   }
  },
  {
+  "ename": "xwidgets-reuse",
+  "commit": "dada661402d2f3c9c4bcea8c41ebd926f8b26748",
+  "sha256": "08v2377h2f8yjav7icv0372d1h1wbjqsqnb57x0rwbivxwlb0ijy",
+  "fetcher": "github",
+  "repo": "lordpretzel/xwidgets-reuse",
+  "unstable": {
+   "version": [
+    20200817,
+    147
+   ],
+   "commit": "5d56472dda53e43e0a11edcd373b44c0dbab47ce",
+   "sha256": "1b85x1yhgip4g3kv1sdwf3zmi91w6m5xbmm6zzl84w67wqfmnqlz"
+  },
+  "stable": {
+   "version": [
+    0,
+    2
+   ],
+   "commit": "3f95d81bfce1b3c52f9dcf2890cd2559a5287a33",
+   "sha256": "1i6g4n2pnp3r0pyn4p6xryh0x44lyvazy8kc1bfrzwzf6py9wmq0"
+  }
+ },
+ {
   "ename": "xwwp",
   "commit": "83c34ae5023410cc31f93255275d6465b6152a10",
   "sha256": "07r62haa1ks2xvfh4zkqadpsjdhk6kbafk1fmvcim3m13ma6gch1",
@@ -103373,11 +105604,11 @@
   "repo": "yoshiki/yaml-mode",
   "unstable": {
    "version": [
-    20200512,
-    2141
+    20200725,
+    1836
    ],
-   "commit": "0b33131664719c61f834e77ff3b91ded3de2cd3b",
-   "sha256": "0ig5hpk0wb46yz6gml6g7x9am0l3cay1bzxldms0g2qjh5swxrq4"
+   "commit": "68fecb5f0dec712a10c8655df6881392a4613617",
+   "sha256": "11lasdsray1cy01m4yiklin2apgfk2bac93m2ii88vjlv6b6vv04"
   },
   "stable": {
    "version": [
@@ -103577,26 +105808,26 @@
   "repo": "emacsorphanage/yascroll",
   "unstable": {
    "version": [
-    20200224,
-    1117
+    20200701,
+    336
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "b298a34ae872a45c3e83d29d33888abde59c185b",
-   "sha256": "1pnynyy3scrd15q4ag769af5njrxx6rw48svbsfx3xrz1n0x9snz"
+   "commit": "9e828920d1931da66a473a66019922b9c3b729f5",
+   "sha256": "0cixj0swz322p7dghghbrasziygbzmn2ikcfiyrjar6bzh1mha9b"
   },
   "stable": {
    "version": [
     0,
     1,
-    7
+    9
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "784ebb0ee5496b5e7762bfd4c8101166542cb90d",
-   "sha256": "1k9y319ny01yqkg1xsh4rh2xs3dpx5jgvhs17p4c4dvqm0g53mkm"
+   "commit": "9e828920d1931da66a473a66019922b9c3b729f5",
+   "sha256": "0cixj0swz322p7dghghbrasziygbzmn2ikcfiyrjar6bzh1mha9b"
   }
  },
  {
@@ -103607,14 +105838,14 @@
   "repo": "joaotavora/yasnippet",
   "unstable": {
    "version": [
-    20200413,
-    2221
+    20200604,
+    246
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "5b1217ab085fab4abeb1118dccb260691b446703",
-   "sha256": "0486kd8brxwmbmw9bjf0p9i99dyl17hbc5aa03z7psqqlsw713mx"
+   "commit": "5cbdbf0d2015540c59ed8ee0fcf4788effdf75b6",
+   "sha256": "1cp1sgmfc8pgcy24l77aam833710mjp2y3m8l8c90677wxqr44vl"
   },
   "stable": {
    "version": [
@@ -103637,14 +105868,14 @@
   "repo": "leanprover-community/yasnippet-lean",
   "unstable": {
    "version": [
-    20190922,
-    2037
+    20200526,
+    326
    ],
    "deps": [
     "yasnippet"
    ],
-   "commit": "9119be08a32286d3e8559138e8ae003856ae1c0a",
-   "sha256": "1q06c574zn0ibbb3zbgi59zxj17i7kyjkcz45sj5h7hbn9l81594"
+   "commit": "e0933f55d59da5425d0604bdcdbbf3cb85967563",
+   "sha256": "0h64h47qdv3c20g9hlys2xb4w2jby7pdfhaza52y48wayz6vhpnx"
   }
  },
  {
@@ -103655,25 +105886,27 @@
   "repo": "AndreaCrotti/yasnippet-snippets",
   "unstable": {
    "version": [
-    20200508,
-    936
+    20200802,
+    1658
    ],
    "deps": [
+    "s",
     "yasnippet"
    ],
-   "commit": "ab3c20483a39742d7c612bc006d09aa8ffa3186d",
-   "sha256": "16gzc33qlmgbp9hq5c3bbv24b136ai23h3v0b2f9rr2xy9ln3ccz"
+   "commit": "b83c0f2f3bd068aa93c8f4c0c07f0b0a137d9cda",
+   "sha256": "0j1955y6gc3ddv783pd9kx834vvicpdsj49smkkpk4rj4s7pfxkz"
   },
   "stable": {
    "version": [
     0,
-    22
+    23
    ],
    "deps": [
+    "s",
     "yasnippet"
    ],
-   "commit": "e51a259527d685fe767b6ec951ad1940b1131a69",
-   "sha256": "1xcmx0frialb86z5adi07b6skqks326w3v1xn49c54gxim027i5d"
+   "commit": "e5ebfcdb38eb79a6d6705107d07f7bab2e2b5c38",
+   "sha256": "18pcnjnqvcky6i49p38vy3ms5xiisn27vy47pc3vsgr3r2n87mqb"
   }
  },
  {
@@ -103684,14 +105917,14 @@
   "repo": "mineo/yatemplate",
   "unstable": {
    "version": [
-    20200108,
-    2102
+    20200625,
+    1336
    ],
    "deps": [
     "yasnippet"
    ],
-   "commit": "bfee45cfc179d6b7fbc3ff06c9f79b76dc7fbf58",
-   "sha256": "0h2fc9vjwb94n3nklq35s3dy9i4ihrqffp2556cmsaq7gzlipb81"
+   "commit": "23865adaee824db44acec8a4366ce2f29dd2e978",
+   "sha256": "0ri0kw70yy6mm17drpw5sifscaan3f32fj3xapa0hbz5jxrs9cr9"
   },
   "stable": {
    "version": [
@@ -103905,11 +106138,30 @@
   }
  },
  {
+  "ename": "ynab",
+  "commit": "20a365e48ed200afadae01c096d1ea669e9c1938",
+  "sha256": "0in7blx21kv01vbwkrmvcl4n07vm4wmxkbv3l78s9xrri66i3nvf",
+  "fetcher": "github",
+  "repo": "janders223/ynab.el",
+  "unstable": {
+   "version": [
+    20200607,
+    2008
+   ],
+   "deps": [
+    "cl-lib",
+    "ts"
+   ],
+   "commit": "2c6beb4d2c4996017f6b3c62c26db52a61e5c479",
+   "sha256": "07bb1hlya07p6s6ymjl3vfv99xln3vrp78h4sda5va52vj1935rs"
+  }
+ },
+ {
   "ename": "yoficator",
-  "commit": "5156f01564978718dd99ab3a54f19b6512de5c3c",
-  "sha256": "0b6lv6wk5ammhb9rws9kig02wkm84i5avm7a1vd4sb7wkgm9nj9r",
+  "commit": "a3422f4918992343fcace1a3024be59a5d2ed8e5",
+  "sha256": "0v8hv2bqa9bl6cmfz8l9v72a6z1c2b3i1hjgbj38w9hdjvb2qad6",
   "fetcher": "gitlab",
-  "repo": "link2xt/yoficator",
+  "repo": "alx.k/yoficator",
   "unstable": {
    "version": [
     20190509,
@@ -103951,8 +106203,8 @@
   "repo": "xuchunyang/youdao-dictionary.el",
   "unstable": {
    "version": [
-    20200429,
-    259
+    20200722,
+    1705
    ],
    "deps": [
     "chinese-word-at-point",
@@ -103960,8 +106212,8 @@
     "popup",
     "pos-tip"
    ],
-   "commit": "bd839711e3cf6d3eb9c308cea5694369a440899e",
-   "sha256": "12r6avj1mxjj46s2p6kwhixhkinkm9krd62sy9ji7v9np2gqf7ll"
+   "commit": "8a4815a43565b9bfd257246e4895b8bfafb9d573",
+   "sha256": "0h8hgq76ja3fjrn8vsndkzvns4ar13qsydcrqjsj77jqw9kx9a43"
   },
   "stable": {
    "version": [
@@ -103978,18 +106230,52 @@
   }
  },
  {
+  "ename": "ytdl",
+  "commit": "3531012169cb78d00cdf89fa54a7aff684200083",
+  "sha256": "0s2ngslz6l4mkib09inv5r4g122jsnyiyh9ijjb27y3pr48cj23d",
+  "fetcher": "gitlab",
+  "repo": "tuedachu/ytdl",
+  "unstable": {
+   "version": [
+    20200727,
+    1824
+   ],
+   "deps": [
+    "async",
+    "dash",
+    "transient"
+   ],
+   "commit": "2d617ed1cc0be35158411f897e4156c20ff6565f",
+   "sha256": "1fhbg0l6xrayqssl1xqjdgymdggpsvig73pwl4k9pjifaria2fbm"
+  },
+  "stable": {
+   "version": [
+    1,
+    3,
+    4
+   ],
+   "deps": [
+    "async",
+    "dash",
+    "transient"
+   ],
+   "commit": "2d617ed1cc0be35158411f897e4156c20ff6565f",
+   "sha256": "1fhbg0l6xrayqssl1xqjdgymdggpsvig73pwl4k9pjifaria2fbm"
+  }
+ },
+ {
   "ename": "ytel",
-  "commit": "ec52f03658dca774daf7301e81edb20aedf03c10",
-  "sha256": "0adxiw83rah9hln3k8gm6s7ks3xpqfknypjb9j51lxcabc7c1677",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "0xafyxqps4dp44b4jmm69fa5d24df3fkyim7wa9ddgxkcqfl3mpx",
   "fetcher": "github",
-  "repo": "grastello/ytel",
+  "repo": "gRastello/ytel",
   "unstable": {
    "version": [
-    20200510,
-    1405
+    20200725,
+    1056
    ],
-   "commit": "828323f9acb654d8f61ccbca510b471fb00879ee",
-   "sha256": "1zixqicpdywzdc2pkx9h08y3kphmn9zcx44bj2rqg3h8xsmjayk5"
+   "commit": "d80c7964ec66589d5580fc13773e94f1834ab76f",
+   "sha256": "124pvj39lcv3dfz2m42qyydyab0xk6c5da54ffhrqbg8vri34w9w"
   }
  },
  {
@@ -104078,11 +106364,20 @@
   "repo": "zenlang/zen-mode",
   "unstable": {
    "version": [
-    20191224,
-    706
+    20200609,
+    822
+   ],
+   "commit": "c1b1806358f3cce6c04b30699987d82dc7d42559",
+   "sha256": "1ikny9lxvg8whcl2x0gmr31fdv93vwf53niqr11cx93bfsvs4a9z"
+  },
+  "stable": {
+   "version": [
+    0,
+    8,
+    20200609
    ],
-   "commit": "3d34bce20c1d7d35b99916672ea0dd67a96c7716",
-   "sha256": "1ykc58imkrhk4ib8mdgs7q7qrjbj84bm0rgfpgqk0dkfy16daj2q"
+   "commit": "c1b1806358f3cce6c04b30699987d82dc7d42559",
+   "sha256": "1ikny9lxvg8whcl2x0gmr31fdv93vwf53niqr11cx93bfsvs4a9z"
   }
  },
  {
@@ -104093,11 +106388,11 @@
   "repo": "bbatsov/zenburn-emacs",
   "unstable": {
    "version": [
-    20200305,
-    737
+    20200701,
+    1333
    ],
-   "commit": "7dd796840376342426f60018a6cf209228452f3e",
-   "sha256": "0zzg95sifg6ybh3ava67z688fycklqragkr3baxlhl2jfnwsps2l"
+   "commit": "c09dbd9a36bbc0062b90be182f2b4cac64128cee",
+   "sha256": "0lr73kghsi1f5awhgsbvh4snkbdkkpjn5bwf6s6ypbybmjf6kjxd"
   },
   "stable": {
    "version": [
@@ -104246,20 +106541,21 @@
  },
  {
   "ename": "zetteldeft",
-  "commit": "c643adaf73e8324092874887636cdf0365c481ee",
-  "sha256": "1vd70mrwn9cfalmiv97ja79hbdmyl5bm9cqsz5c276gk6v6pzvpc",
+  "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
+  "sha256": "05l2ljip5n9pcpcc1qm4m6ii86xs3dk94an1cigiw5is4qi8rhpl",
   "fetcher": "github",
-  "repo": "efls/zetteldeft",
+  "repo": "EFLS/zetteldeft",
   "unstable": {
    "version": [
-    20200516,
-    1108
+    20200812,
+    2159
    ],
    "deps": [
+    "ace-window",
     "deft"
    ],
-   "commit": "f3503ec8fde88d733b7bbbd4431e85de396a3fe8",
-   "sha256": "0843k0i6szjvc7f51q0pm7vmxpfz68911d75m75rg54k1jbynazq"
+   "commit": "2c4ddbf3e30e2f3ae6e877e08fd824b325fa7a62",
+   "sha256": "029fh32d2vilxlqs5jl3wc907ykxdkv36jjfzappyghd1qkp0iyi"
   },
   "stable": {
    "version": [
@@ -104274,6 +106570,38 @@
   }
  },
  {
+  "ename": "zetz-mode",
+  "commit": "ad2add185cf31a92ca1fcd3a9efcbcdb0aa9e583",
+  "sha256": "0k30c0f2h96vvb8yacpg710gi64swwslm1gljpzcwxni5kdpqkzm",
+  "fetcher": "github",
+  "repo": "damon-kwok/zetz-mode",
+  "unstable": {
+   "version": [
+    20200812,
+    957
+   ],
+   "deps": [
+    "dash",
+    "hydra"
+   ],
+   "commit": "3bd2cdb4f6c6e8400d58fa1001d0513e39ce38bb",
+   "sha256": "0v1aa0hr607afxd03p44m1abx2c8a5k91i047q7nv8sv0cd65ack"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "deps": [
+    "dash",
+    "hydra"
+   ],
+   "commit": "03a566b213e52da540818559f1b7bbb8400abb88",
+   "sha256": "1lv1psprhn2fr5knnapa11dc8dz5zh699s8k3ldkgm6a6adkms7n"
+  }
+ },
+ {
   "ename": "zig-mode",
   "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
   "sha256": "1kg1x0l65nqqpzn5np41ya9khr1yqcg5ki7z3jw0g4wxdbz7lrbx",
@@ -104281,11 +106609,11 @@
   "repo": "ziglang/zig-mode",
   "unstable": {
    "version": [
-    20200322,
-    131
+    20200713,
+    407
    ],
-   "commit": "fc7fde327f45533bb73be643e7bda1eda10394b6",
-   "sha256": "1ld34xs25bysxw9ialrlm6pnp5qbzx94zbb3594ghc2ggz5ph5d5"
+   "commit": "d88580913586b8749ed0ac3ae228e825a68f9412",
+   "sha256": "0r3cn6yxs013080il91x9b6fyx84bx3vzv7vkyr8npc2cz46klxs"
   }
  },
  {
@@ -104311,6 +106639,24 @@
   }
  },
  {
+  "ename": "zimports",
+  "commit": "c19dd3c0cb18bb429a0aaf834555869b98fda349",
+  "sha256": "19rhl9v4k0nxy8lsc1imjar2ib0g6slma5crzxjbminjjqnp5c3s",
+  "fetcher": "github",
+  "repo": "schmir/zimports.el",
+  "unstable": {
+   "version": [
+    20200606,
+    1700
+   ],
+   "deps": [
+    "projectile"
+   ],
+   "commit": "a96e9b993c9aaccf1fd07c8fddfc247c4e07618c",
+   "sha256": "1bzfdwyc4aybvnh20q7ypghpi3zrhhs0v8488lksjl26j23mhrwk"
+  }
+ },
+ {
   "ename": "zlc",
   "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
   "sha256": "0qw0qf14l09mcnw7h0ccbw17psfpra76qfawkc10zpdb5a2167d0",
@@ -104506,20 +106852,20 @@
   "repo": "cyrus-and/zoom",
   "unstable": {
    "version": [
-    20200106,
-    1204
+    20200708,
+    1105
    ],
-   "commit": "a54324344eca49cfb11626446e1ebe239cba6557",
-   "sha256": "01ycz8496ywb2d980hxpvlnzxw5012mrj8kh8d97vdclhdbkx0y1"
+   "commit": "a373e7eed59ad93315e5ae88c816ca70404d2d34",
+   "sha256": "0dmpin0rlwib659s3g7qp48qmma50amj7zdk281b4j0bl6p3zkyc"
   },
   "stable": {
    "version": [
     0,
     2,
-    2
+    3
    ],
-   "commit": "578295532fb1c4ad2a2e95894e65cce02f812b54",
-   "sha256": "1qcni15mps7w9waail21x0fy2rrd5y8cm4yzi8rs2ar4vqrjbyyp"
+   "commit": "85694c9baa99bcf247528a6743383a3a1e5323fe",
+   "sha256": "1xckqfkrx95b2bfdczz90y0b23bghlqkp2k5ml59ai2drb96l17h"
   }
  },
  {
@@ -104575,24 +106921,6 @@
   }
  },
  {
-  "ename": "zossima",
-  "commit": "b7566fe6fffc38981ea33582d783c58f3842fe28",
-  "sha256": "11kmnbqv4s8arindg7cxcdhbvfxsckks332wn7aiyb3bjhcgzwjb",
-  "fetcher": "github",
-  "repo": "technomancy/zossima",
-  "unstable": {
-   "version": [
-    20121124,
-    35
-   ],
-   "deps": [
-    "inf-ruby"
-   ],
-   "commit": "991676635c374d2a12714dcf48c1ce2d6f97a375",
-   "sha256": "0fgwxw7r3zfv0b7xi8bx7kxff2r5hdw9gxf16kwq04fnh18nhi39"
-  }
- },
- {
   "ename": "zotelo",
   "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
   "sha256": "0y6s5ma7633h5pf9zj7vkazidlf211va7nk47ppb1q0iyfkyln36",
@@ -104717,11 +107045,11 @@
   "repo": "pesterhazy/zprint-mode.el",
   "unstable": {
    "version": [
-    20191130,
-    1829
+    20200731,
+    1238
    ],
-   "commit": "4d0dd23b40155618181d9d1e4c82849e0d73b659",
-   "sha256": "0im63h7ang7zypzbf45k5pxz11svyyk8pab9d4qg9jsb7bz9v7k0"
+   "commit": "b9b72b4918156f2f44aa544be9e19ea391937c2a",
+   "sha256": "1jvk8g8qc83y6pmklk403mikl6q3s6gls60fyw07p8f3kvhgfxzi"
   }
  },
  {
@@ -104796,8 +107124,8 @@
     "avy",
     "cl-lib"
    ],
-   "commit": "09613d53e1e6e7c58102fb8812bbef2121d57026",
-   "sha256": "1rfi7gp5z2lm71qrf9akkn8iiiv297i1mqkvwyv7vlhx5vk21r4s"
+   "commit": "b0a50b8cb6925c3184405f81be9ef9be9da69f09",
+   "sha256": "003rg7x1vfv946j1m6yalzsgr88wvm3443pqf9yqwnzl2a3djq0g"
   },
   "stable": {
    "version": [
diff --git a/pkgs/applications/editors/emacs-modes/updater-emacs.nix b/pkgs/applications/editors/emacs-modes/updater-emacs.nix
index 518ee67e451..b5de993eaa7 100644
--- a/pkgs/applications/editors/emacs-modes/updater-emacs.nix
+++ b/pkgs/applications/editors/emacs-modes/updater-emacs.nix
@@ -1,7 +1,7 @@
 let
   pkgs = import ../../../.. {};
 
-  emacsEnv = (pkgs.emacsPackagesFor pkgs.emacs26).emacsWithPackages (epkgs: let
+  emacsEnv = (pkgs.emacsPackagesFor pkgs.emacs).emacsWithPackages (epkgs: let
 
     promise = epkgs.trivialBuild {
       pname = "promise";
diff --git a/pkgs/applications/editors/emacs/25.nix b/pkgs/applications/editors/emacs/25.nix
deleted file mode 100644
index 5bc29a046bc..00000000000
--- a/pkgs/applications/editors/emacs/25.nix
+++ /dev/null
@@ -1,146 +0,0 @@
-{ stdenv, lib, fetchurl, ncurses, xlibsWrapper, libXaw, libXpm, Xaw3d, fetchpatch
-, pkgconfig, gettext, libXft, dbus, libpng, libjpeg, libungif
-, libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux
-, alsaLib, cairo, acl, gpm, AppKit, GSS, ImageIO
-, withX ? !stdenv.isDarwin
-, withGTK2 ? false, gtk2 ? null
-, withGTK3 ? true, gtk3 ? null, gsettings-desktop-schemas ? null
-, withXwidgets ? false, webkitgtk, wrapGAppsHook ? null, glib-networking ? null
-, withCsrc ? true
-, autoconf ? null, automake ? null, texinfo ? null
-}:
-
-assert (libXft != null) -> libpng != null;      # probably a bug
-assert stdenv.isDarwin -> libXaw != null;       # fails to link otherwise
-assert withGTK2 -> withX || stdenv.isDarwin;
-assert withGTK3 -> withX || stdenv.isDarwin;
-assert withGTK2 -> !withGTK3 && gtk2 != null;
-assert withGTK3 -> !withGTK2 && gtk3 != null;
-assert withXwidgets -> withGTK3 && webkitgtk != null;
-
-let
-  toolkit =
-    if withGTK2 then "gtk2"
-    else if withGTK3 then "gtk3"
-    else "lucid";
-in
-stdenv.mkDerivation rec {
-  name = "emacs-${version}${versionModifier}";
-  version = "25.3";
-  versionModifier = "";
-
-  src = fetchurl {
-    url = "mirror://gnu/emacs/${name}.tar.xz";
-    sha256 = "02y00y9q42g1iqgz5qhmsja75hwxd88yrn9zp14lanay0zkwafi5";
-  };
-
-  enableParallelBuilding = true;
-
-  patches = lib.optionals stdenv.isDarwin [
-    ./at-fdcwd.patch
-
-    # Backport of the fix to
-    # https://lists.gnu.org/archive/html/bug-gnu-emacs/2017-04/msg00201.html
-    # Should be removed when switching to Emacs 26.1
-    (fetchurl {
-      url = "https://gist.githubusercontent.com/aaronjensen/f45894ddf431ecbff78b1bcf533d3e6b/raw/6a5cd7f57341aba673234348d8b0d2e776f86719/Emacs-25-OS-X-use-vfork.patch";
-      sha256 = "1nlsxiaynswqhy99jf4mw9x0sndhwcrwy8713kq1l3xqv9dbrzgj";
-    })
-  ] ++ [
-    # Backport patches so we can use webkitgtk with xwidgets.
-    (fetchpatch {
-      name = "0001-Omit-unnecessary-includes-from-xwidget-c.patch";
-      url = "https://github.com/emacs-mirror/emacs/commit/a36ed9b5e95afea5716256bac24d883263aefbaf.patch";
-      sha256 = "1j34c0vkj87il87xy1px23yk6bw73adpr7wqa79ncj89i4lc8qkb";
-    })
-    (fetchpatch {
-      name = "0002-xwidget-Use-WebKit2-API.patch";
-      url = "https://github.com/emacs-mirror/emacs/commit/d781662873f228b110a128f7a2b6583a4d5e0a3a.patch";
-      sha256 = "1lld56zi4cw2hmjxhhdcc0f07k8lbj32h10wcq4ml3asdwa31ryr";
-    })
-  ];
-
-  nativeBuildInputs = [ pkgconfig autoconf automake texinfo ]
-    ++ lib.optional (withX && (withGTK3 || withXwidgets)) wrapGAppsHook;
-
-  buildInputs =
-    [ ncurses gconf libxml2 gnutls alsaLib acl gpm gettext ]
-    ++ lib.optionals stdenv.isLinux [ dbus libselinux ]
-    ++ lib.optionals withX
-      [ xlibsWrapper libXaw Xaw3d libXpm libpng libjpeg libungif libtiff librsvg libXft
-        imagemagick gconf ]
-    ++ lib.optional (withX && withGTK2) gtk2
-    ++ lib.optionals (withX && withGTK3) [ gtk3 gsettings-desktop-schemas ]
-    ++ lib.optional (stdenv.isDarwin && withX) cairo
-    ++ lib.optionals (withX && withXwidgets) [ webkitgtk glib-networking ]
-    ++ lib.optionals stdenv.isDarwin [ AppKit GSS ImageIO ];
-
-  hardeningDisable = [ "format" ];
-
-  configureFlags = [ "--with-modules" ] ++
-   (if stdenv.isDarwin
-      then [ "--with-ns" "--disable-ns-self-contained" ]
-    else if withX
-      then [ "--with-x-toolkit=${toolkit}" "--with-xft" ]
-      else [ "--with-x=no" "--with-xpm=no" "--with-jpeg=no" "--with-png=no"
-             "--with-gif=no" "--with-tiff=no" ])
-    ++ lib.optional withXwidgets "--with-xwidgets";
-
-  preConfigure = ''
-    ./autogen.sh
-  '' + ''
-    substituteInPlace lisp/international/mule-cmds.el \
-      --replace /usr/share/locale ${gettext}/share/locale
-
-    for makefile_in in $(find . -name Makefile.in -print); do
-        substituteInPlace $makefile_in --replace /bin/pwd pwd
-    done
-  '';
-
-  installTargets = [ "tags" "install" ];
-
-  postInstall = ''
-    mkdir -p $out/share/emacs/site-lisp
-    cp ${./site-start.el} $out/share/emacs/site-lisp/site-start.el
-    $out/bin/emacs --batch -f batch-byte-compile $out/share/emacs/site-lisp/site-start.el
-
-    rm -rf $out/var
-    rm -rf $out/share/emacs/${version}/site-lisp
-  '' + lib.optionalString withCsrc ''
-    for srcdir in src lisp lwlib ; do
-      dstdir=$out/share/emacs/${version}/$srcdir
-      mkdir -p $dstdir
-      find $srcdir -name "*.[chm]" -exec cp {} $dstdir \;
-      cp $srcdir/TAGS $dstdir
-      echo '((nil . ((tags-file-name . "TAGS"))))' > $dstdir/.dir-locals.el
-    done
-  '' + lib.optionalString stdenv.isDarwin ''
-    mkdir -p $out/Applications
-    mv nextstep/Emacs.app $out/Applications
-  '';
-
-  meta = with stdenv.lib; {
-    description = "The extensible, customizable GNU text editor";
-    homepage    = "https://www.gnu.org/software/emacs/";
-    license     = licenses.gpl3Plus;
-    maintainers = with maintainers; [ lovek323 peti jwiegley ];
-    platforms   = platforms.all;
-
-    longDescription = ''
-      GNU Emacs is an extensible, customizable text editor—and more.  At its
-      core is an interpreter for Emacs Lisp, a dialect of the Lisp
-      programming language with extensions to support text editing.
-
-      The features of GNU Emacs include: content-sensitive editing modes,
-      including syntax coloring, for a wide variety of file types including
-      plain text, source code, and HTML; complete built-in documentation,
-      including a tutorial for new users; full Unicode support for nearly all
-      human languages and their scripts; highly customizable, using Emacs
-      Lisp code or a graphical interface; a large number of extensions that
-      add other functionality, including a project planner, mail and news
-      reader, debugger interface, calendar, and more.  Many of these
-      extensions are distributed with GNU Emacs; others are available
-      separately.
-    '';
-  };
-}
diff --git a/pkgs/applications/editors/emacs/26.nix b/pkgs/applications/editors/emacs/26.nix
new file mode 100644
index 00000000000..a151006a995
--- /dev/null
+++ b/pkgs/applications/editors/emacs/26.nix
@@ -0,0 +1,8 @@
+import ./generic.nix (rec {
+  version = "26.3";
+  sha256 = "119ldpk7sgn9jlpyngv5y4z3i7bb8q3xp4p0qqi7i5nq39syd42d";
+  patches = [
+    ./clean-env-26.patch
+    ./tramp-detect-wrapped-gvfsd-26.patch
+  ];
+})
diff --git a/pkgs/applications/editors/emacs/27.nix b/pkgs/applications/editors/emacs/27.nix
new file mode 100644
index 00000000000..1037c0cd91d
--- /dev/null
+++ b/pkgs/applications/editors/emacs/27.nix
@@ -0,0 +1,8 @@
+import ./generic.nix (rec {
+  version = "27.1";
+  sha256 = "0h9f2wpmp6rb5rfwvqwv1ia1nw86h74p7hnz3vb3gjazj67i4k2a";
+  patches = [
+    ./clean-env.patch
+    ./tramp-detect-wrapped-gvfsd.patch
+  ];
+})
diff --git a/pkgs/applications/editors/emacs/clean-env-26.patch b/pkgs/applications/editors/emacs/clean-env-26.patch
new file mode 100644
index 00000000000..88befda899a
--- /dev/null
+++ b/pkgs/applications/editors/emacs/clean-env-26.patch
@@ -0,0 +1,15 @@
+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/pkgs/applications/editors/emacs/clean-env.patch b/pkgs/applications/editors/emacs/clean-env.patch
index 88befda899a..2ffe8b777a0 100644
--- a/pkgs/applications/editors/emacs/clean-env.patch
+++ b/pkgs/applications/editors/emacs/clean-env.patch
@@ -2,14 +2,15 @@ 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
-@@ -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
+@@ -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) $@
+ 	      $(PAXCTL_dumped) emacs$(EXEEXT)
    endif
diff --git a/pkgs/applications/editors/emacs/default.nix b/pkgs/applications/editors/emacs/generic.nix
index 570dc28c684..71bb472d097 100644
--- a/pkgs/applications/editors/emacs/default.nix
+++ b/pkgs/applications/editors/emacs/generic.nix
@@ -1,7 +1,17 @@
+{
+  version
+  , sha256
+  , versionModifier ? ""
+  , pname ? "emacs"
+  , name ? "emacs-${version}${versionModifier}"
+  , patches ? [ ]
+}:
 { stdenv, lib, fetchurl, fetchpatch, ncurses, xlibsWrapper, libXaw, libXpm
 , Xaw3d, libXcursor,  pkgconfig, gettext, libXft, dbus, libpng, libjpeg, libungif
 , libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux
 , alsaLib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf
+, jansson, harfbuzz
+, libgccjit, targetPlatform, makeWrapper # native-comp params
 , systemd ? null
 , withX ? !stdenv.isDarwin
 , withNS ? stdenv.isDarwin
@@ -9,8 +19,9 @@
 , withGTK3 ? true, gtk3-x11 ? null, gsettings-desktop-schemas ? null
 , withXwidgets ? false, webkitgtk ? null, wrapGAppsHook ? null, glib-networking ? null
 , withCsrc ? true
-, srcRepo ? false, autoconf ? null, automake ? null, texinfo ? null
+, srcRepo ? false, autoreconfHook ? null, texinfo ? null
 , siteStart ? ./site-start.el
+, nativeComp ? false
 , toolkit ? (
   if withGTK2 then "gtk2"
   else if withGTK3 then "gtk3"
@@ -28,51 +39,76 @@ assert withGTK3 -> !withGTK2 && gtk3-x11 != null;
 assert withXwidgets -> withGTK3 && webkitgtk != null;
 
 
-stdenv.mkDerivation rec {
-  name = "emacs-${version}${versionModifier}";
-  version = "26.3";
-  versionModifier = "";
+let
+
+in stdenv.mkDerivation {
+  inherit pname version patches;
 
   src = fetchurl {
     url = "mirror://gnu/emacs/${name}.tar.xz";
-    sha256 = "119ldpk7sgn9jlpyngv5y4z3i7bb8q3xp4p0qqi7i5nq39syd42d";
+    inherit sha256;
   };
 
   enableParallelBuilding = true;
 
-  patches = [
-    ./clean-env.patch
-    ./tramp-detect-wrapped-gvfsd.patch
-    # unbreak macOS unexec
-    (fetchpatch {
-      url = "https://github.com/emacs-mirror/emacs/commit/888ffd960c06d56a409a7ff15b1d930d25c56089.patch";
-      sha256 = "08q3ygdigqwky70r47rcgzlkc5jy82xiq8am5kwwy891wlpl7frw";
-    })
-  ];
+  postPatch = lib.concatStringsSep "\n" [
+    (lib.optionalString srcRepo ''
+      rm -fr .git
+    '')
 
-  postPatch = lib.optionalString srcRepo ''
-    rm -fr .git
-  '';
+    ''
+    substituteInPlace lisp/international/mule-cmds.el \
+      --replace /usr/share/locale ${gettext}/share/locale
+
+    for makefile_in in $(find . -name Makefile.in -print); do
+      substituteInPlace $makefile_in --replace /bin/pwd pwd
+    done
+    ''
+
+    # Make native compilation work both inside and outside of nix build
+    (lib.optionalString nativeComp (let
+      backendPath = (lib.concatStringsSep " "
+        (builtins.map (x: ''\"-B${x}\"'') [
+          # Paths necessary so the JIT compiler finds its libraries:
+          "${lib.getLib libgccjit}/lib"
+          "${lib.getLib libgccjit}/lib/gcc"
+          "${lib.getLib stdenv.cc.libc}/lib"
+
+          # Executable paths necessary for compilation (ld, as):
+          "${lib.getBin stdenv.cc.cc}"
+          "${lib.getBin stdenv.cc.bintools}"
+          "${lib.getBin stdenv.cc.bintools.bintools}"
+        ]));
+    in ''
+      substituteInPlace lisp/emacs-lisp/comp.el --replace \
+        "(defcustom comp-native-driver-options nil" \
+        "(defcustom comp-native-driver-options '(${backendPath})"
+    ''))
+    ""
+  ];
 
   CFLAGS = "-DMAC_OS_X_VERSION_MAX_ALLOWED=101200";
 
-  nativeBuildInputs = [ pkgconfig ]
-    ++ lib.optionals srcRepo [ autoconf automake texinfo ]
+  LIBRARY_PATH = if nativeComp then "${lib.getLib stdenv.cc.libc}/lib" else "";
+
+  nativeBuildInputs = [ pkgconfig makeWrapper ]
+    ++ lib.optionals srcRepo [ autoreconfHook texinfo ]
     ++ lib.optional (withX && (withGTK3 || withXwidgets)) wrapGAppsHook;
 
   buildInputs =
-    [ ncurses gconf libxml2 gnutls alsaLib acl gpm gettext ]
+    [ ncurses gconf libxml2 gnutls alsaLib acl gpm gettext jansson harfbuzz.dev ]
     ++ lib.optionals stdenv.isLinux [ dbus libselinux systemd ]
     ++ lib.optionals withX
       [ xlibsWrapper libXaw Xaw3d libXpm libpng libjpeg libungif libtiff libXft
-        gconf ]
+        gconf cairo ]
     ++ lib.optionals (withX || withNS) [ imagemagick librsvg ]
     ++ lib.optionals (stdenv.isLinux && withX) [ m17n_lib libotf ]
     ++ lib.optional (withX && withGTK2) gtk2-x11
     ++ lib.optionals (withX && withGTK3) [ gtk3-x11 gsettings-desktop-schemas ]
-    ++ lib.optional (stdenv.isDarwin && withX) cairo
     ++ lib.optionals (withX && withXwidgets) [ webkitgtk glib-networking ]
-    ++ lib.optionals withNS [ AppKit GSS ImageIO ];
+    ++ lib.optionals withNS [ AppKit GSS ImageIO ]
+    ++ lib.optionals nativeComp [ libgccjit ]
+    ;
 
   hardeningDisable = [ "format" ];
 
@@ -85,34 +121,28 @@ stdenv.mkDerivation rec {
     (if withNS
       then [ "--disable-ns-self-contained" ]
     else if withX
-      then [ "--with-x-toolkit=${toolkit}" "--with-xft" ]
+      then [ "--with-x-toolkit=${toolkit}" "--with-xft" "--with-cairo" ]
       else [ "--with-x=no" "--with-xpm=no" "--with-jpeg=no" "--with-png=no"
              "--with-gif=no" "--with-tiff=no" ])
-    ++ lib.optional withXwidgets "--with-xwidgets";
-
-  preConfigure = lib.optionalString srcRepo ''
-    ./autogen.sh
-  '' + ''
-    substituteInPlace lisp/international/mule-cmds.el \
-      --replace /usr/share/locale ${gettext}/share/locale
-
-    for makefile_in in $(find . -name Makefile.in -print); do
-        substituteInPlace $makefile_in --replace /bin/pwd pwd
-    done
-  '';
+    ++ lib.optional withXwidgets "--with-xwidgets"
+    ++ lib.optional nativeComp "--with-nativecomp"
+    ;
 
   installTargets = [ "tags" "install" ];
 
   postInstall = ''
     mkdir -p $out/share/emacs/site-lisp
     cp ${siteStart} $out/share/emacs/site-lisp/site-start.el
+
     $out/bin/emacs --batch -f batch-byte-compile $out/share/emacs/site-lisp/site-start.el
 
+    siteVersionDir=`ls $out/share/emacs | grep -v site-lisp | head -n 1`
+
     rm -rf $out/var
-    rm -rf $out/share/emacs/${version}/site-lisp
+    rm -rf $siteVersionDir
   '' + lib.optionalString withCsrc ''
     for srcdir in src lisp lwlib ; do
-      dstdir=$out/share/emacs/${version}/$srcdir
+      dstdir=$siteVersionDir/$srcdir
       mkdir -p $dstdir
       find $srcdir -name "*.[chm]" -exec cp {} $dstdir \;
       cp $srcdir/TAGS $dstdir
@@ -123,16 +153,19 @@ stdenv.mkDerivation rec {
     mv nextstep/Emacs.app $out/Applications
   '';
 
-  postFixup =
-    let libPath = lib.makeLibraryPath [
-      libXcursor
-    ];
-    in lib.optionalString (stdenv.isLinux && withX && toolkit == "lucid") ''
+  postFixup = lib.concatStringsSep "\n" [
+
+    (lib.optionalString (stdenv.isLinux && withX && toolkit == "lucid") ''
       patchelf --set-rpath \
-        "$(patchelf --print-rpath "$out/bin/emacs"):${libPath}" \
+        "$(patchelf --print-rpath "$out/bin/emacs"):${lib.makeLibraryPath [ libXcursor ]}" \
         "$out/bin/emacs"
       patchelf --add-needed "libXcursor.so.1" "$out/bin/emacs"
-    '';
+    '')
+  ];
+
+  passthru = {
+    inherit nativeComp;
+  };
 
   meta = with stdenv.lib; {
     description = "The extensible, customizable GNU text editor";
diff --git a/pkgs/applications/editors/emacs/macport.nix b/pkgs/applications/editors/emacs/macport.nix
index 1624e62026a..3a573504c41 100644
--- a/pkgs/applications/editors/emacs/macport.nix
+++ b/pkgs/applications/editors/emacs/macport.nix
@@ -5,20 +5,20 @@
 
 stdenv.mkDerivation rec {
   pname = "emacs";
-  version = "26.3";
+  version = "27.1";
 
   emacsName = "emacs-${version}";
-  macportVersion = "7.7";
+  macportVersion = "8.0";
   name = "emacs-mac-${version}-${macportVersion}";
 
   src = fetchurl {
     url = "mirror://gnu/emacs/${emacsName}.tar.xz";
-    sha256 = "119ldpk7sgn9jlpyngv5y4z3i7bb8q3xp4p0qqi7i5nq39syd42d";
+    sha256 = "0h9f2wpmp6rb5rfwvqwv1ia1nw86h74p7hnz3vb3gjazj67i4k2a";
   };
 
   macportSrc = fetchurl {
     url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/${emacsName}-mac-${macportVersion}.tar.gz";
-    sha256 = "18jadknm47ymbl7skrgc7y8xsdldcbgnlfl7qpgzm1ym8d92as6j";
+    sha256 = "0rjk82k9qp1g701pfd4f0q2myzvsnp9q8xzphlxwi5yzwbs91kjq";
   };
 
   hiresSrc = fetchurl {
@@ -76,7 +76,16 @@ stdenv.mkDerivation rec {
     cp ${./site-start.el} $out/share/emacs/site-lisp/site-start.el
   '';
 
-  doCheck = true;
+  # fails with:
+
+  # Ran 3870 tests, 3759 results as expected, 6 unexpected, 105 skipped
+  # 5 files contained unexpected results:
+  #   lisp/url/url-handlers-test.log
+  #   lisp/simple-tests.log
+  #   lisp/files-x-tests.log
+  #   lisp/cedet/srecode-utest-template.log
+  #   lisp/net/tramp-tests.log
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "The extensible, customizable text editor";
diff --git a/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch b/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch
new file mode 100644
index 00000000000..5d16194fd20
--- /dev/null
+++ b/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch
@@ -0,0 +1,14 @@
+diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
+index f370abba31..f2806263a9 100644
+--- a/lisp/net/tramp-gvfs.el
++++ b/lisp/net/tramp-gvfs.el
+@@ -164,7 +164,8 @@ tramp-gvfs-enabled
+     (and (featurep 'dbusbind)
+ 	 (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")
++	 (or (tramp-compat-process-running-p ".gvfsd-fuse-wrapped")
++             (tramp-compat-process-running-p "gvfs-fuse-daemon")
+ 	     (tramp-compat-process-running-p "gvfsd-fuse"))))
+   "Non-nil when GVFS is available.")
+ 
diff --git a/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch b/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
index 5d16194fd20..5af6fcaba8c 100644
--- a/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
+++ b/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
@@ -1,14 +1,12 @@
 diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
-index f370abba31..f2806263a9 100644
+index 34a234c..b5a471c 100644
 --- a/lisp/net/tramp-gvfs.el
 +++ b/lisp/net/tramp-gvfs.el
-@@ -164,7 +164,8 @@ tramp-gvfs-enabled
-     (and (featurep 'dbusbind)
+@@ -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")
-+	 (or (tramp-compat-process-running-p ".gvfsd-fuse-wrapped")
-+             (tramp-compat-process-running-p "gvfs-fuse-daemon")
+ 	 (or (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/pkgs/applications/editors/featherpad/default.nix b/pkgs/applications/editors/featherpad/default.nix
index c6089fd5308..8343472fa70 100644
--- a/pkgs/applications/editors/featherpad/default.nix
+++ b/pkgs/applications/editors/featherpad/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, pkgconfig, qt5, fetchFromGitHub }:
-
-with qt5;
-
-stdenv.mkDerivation rec {
-  version = "0.10.0";
+{ stdenv, mkDerivation, pkgconfig, qmake, qttools, qtbase, qtsvg, qtx11extras, fetchFromGitHub }:
+mkDerivation rec {
   pname = "featherpad";
+  version = "0.10.0";
+
   src = fetchFromGitHub {
     owner = "tsujan";
     repo = "FeatherPad";
     rev = "V${version}";
     sha256 = "1wrbs6kni9s3x39cckm9kzpglryxn5vyarilvh9pafbzpc6rc57p";
   };
+
   nativeBuildInputs = [ qmake pkgconfig qttools ];
   buildInputs = [ qtbase qtsvg qtx11extras ];
+
   meta = with stdenv.lib; {
     description = "Lightweight Qt5 Plain-Text Editor for Linux";
     homepage = "https://github.com/tsujan/FeatherPad";
diff --git a/pkgs/applications/editors/glow/default.nix b/pkgs/applications/editors/glow/default.nix
index fd1e61463f8..347c5970cae 100644
--- a/pkgs/applications/editors/glow/default.nix
+++ b/pkgs/applications/editors/glow/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1c16s5xiqr36azh2w90wg14jlw67ca2flbgjijpz7qd0ypxyfqlk";
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=" "-X=main.Version=${version}" ];
 
   meta = with lib; {
@@ -21,4 +23,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ehmry filalex77 ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/editors/gnome-builder/default.nix b/pkgs/applications/editors/gnome-builder/default.nix
index d41746a16ee..a94ab58a78f 100644
--- a/pkgs/applications/editors/gnome-builder/default.nix
+++ b/pkgs/applications/editors/gnome-builder/default.nix
@@ -40,11 +40,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-builder";
-  version = "3.36.0";
+  version = "3.36.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "02ni81jyncycgfwslvaav0a62wzx3r9bi86xf0x7jvvk6plfaj8v";
+    sha256 = "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/editors/gophernotes/default.nix b/pkgs/applications/editors/gophernotes/default.nix
new file mode 100644
index 00000000000..e48ee4dd13c
--- /dev/null
+++ b/pkgs/applications/editors/gophernotes/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "gophernotes";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "gopherdata";
+    repo = "gophernotes";
+    rev = "v${version}";
+    sha256 = "0hs92bdrsjqafdkhg2fk3z16h307i32mvbm9f6bb80bgsciysh27";
+  };
+
+  vendorSha256 = "1ylqf1sx0h2kixnq9f3prn3sha43q3ybd5ay57yy5z79qr8zqvxs";
+
+  meta = with lib; {
+    description = "Go kernel for Jupyter notebooks";
+    homepage = "https://github.com/gopherdata/gophernotes";
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/hexdino/default.nix b/pkgs/applications/editors/hexdino/default.nix
index 79e0027d509..9722854b980 100644
--- a/pkgs/applications/editors/hexdino/default.nix
+++ b/pkgs/applications/editors/hexdino/default.nix
@@ -20,6 +20,5 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/Luz/hexdino";
     license = licenses.mit;
     maintainers = [ maintainers.luz ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 7d5a2f79585..fa382cc8836 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, callPackage, fetchurl
 , python
 , jdk, cmake, libxml2, zlib, python3, ncurses5
+, dotnet-sdk_3
 }:
 
 with stdenv.lib;
 
 let
   mkJetBrainsProduct = callPackage ./common.nix { };
-
   # Sorted alphabetically
 
   buildClion = { name, version, src, license, description, wmClass, ... }:
@@ -220,9 +220,9 @@ let
       };
     }) (attrs: {
       patchPhase = lib.optionalString (!stdenv.isDarwin) (attrs.patchPhase + ''
-        # Patch built-in mono for ReSharperHost to start successfully
-        interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2)
-        patchelf --set-interpreter "$interpreter" lib/ReSharperHost/linux-x64/mono/bin/mono-sgen
+        rm -rf lib/ReSharperHost/linux-x64/dotnet
+        mkdir -p lib/ReSharperHost/linux-x64/dotnet/
+        ln -s ${dotnet-sdk_3}/bin/dotnet lib/ReSharperHost/linux-x64/dotnet/dotnet
       '');
     });
 
@@ -268,12 +268,12 @@ in
 
   clion = buildClion rec {
     name = "clion-${version}";
-    version = "2020.1.2"; /* updated by script */
+    version = "2020.2"; /* updated by script */
     description  = "C/C++ IDE. New. Intelligent. Cross-platform";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
-      sha256 = "0q5bnb0rmsgks7brrdpgah83s2ixa4pyhw8jvg9p2g48b582rmf7"; /* updated by script */
+      sha256 = "1j80k6r4nbr8abwkpx78sy3jzq3jsywn2k6g4mjx6h0adwxswymm"; /* updated by script */
     };
     wmClass = "jetbrains-clion";
     update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
@@ -281,12 +281,12 @@ in
 
   datagrip = buildDataGrip rec {
     name = "datagrip-${version}";
-    version = "2020.1.5"; /* updated by script */
+    version = "2020.2"; /* updated by script */
     description = "Your Swiss Army Knife for Databases and SQL";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
-      sha256 = "0605d772156lzlz5904px2spdijc92yz6rjvmpyg6vk5zv5k2wm9"; /* updated by script */
+      sha256 = "0d0m6v4lr6qhi79csdpcyiyd2hnhlsan9lpnjmhkdxd84i1dl15a"; /* updated by script */
     };
     wmClass = "jetbrains-datagrip";
     update-channel = "DataGrip RELEASE";
@@ -294,12 +294,12 @@ in
 
   goland = buildGoland rec {
     name = "goland-${version}";
-    version = "2020.1.3"; /* updated by script */
+    version = "2020.2.1"; /* updated by script */
     description = "Up and Coming Go IDE";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/go/${name}.tar.gz";
-      sha256 = "0pqwj4gc23gf10xqciwndimb4ml7djmx8m5rh52c07m77y4aniyn"; /* updated by script */
+      sha256 = "15jd2yn4g3lya54ppcp8b0bvf2pp2khdvqba2g1aml16d5z8mkq6"; /* updated by script */
     };
     wmClass = "jetbrains-goland";
     update-channel = "GoLand RELEASE";
@@ -307,12 +307,12 @@ in
 
   idea-community = buildIdea rec {
     name = "idea-community-${version}";
-    version = "2020.1.2"; /* updated by script */
+    version = "2020.2"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
     license = stdenv.lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
-      sha256 = "07gfqyp6blbf7v8p106ngpq7c5p0llcjahi205yg2jgzkhshn7ld"; /* updated by script */
+      sha256 = "0rymyyhgm42i487dhlxh78shyvq4hd56frgz7wrqf85hg2j5ha0y"; /* updated by script */
     };
     wmClass = "jetbrains-idea-ce";
     update-channel = "IntelliJ IDEA RELEASE";
@@ -320,12 +320,12 @@ in
 
   idea-ultimate = buildIdea rec {
     name = "idea-ultimate-${version}";
-    version = "2020.1.2"; /* updated by script */
+    version = "2020.2"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz";
-      sha256 = "13qj8n5daz0z0pjizyfsvbbr1gxp5479ar3a68ygi0vrpmbdbssd"; /* updated by script */
+      sha256 = "00mbf8asxjdnfciz6bl8b83kqknqdnars5w5w5w38rmza53pzxsi"; /* updated by script */
     };
     wmClass = "jetbrains-idea";
     update-channel = "IntelliJ IDEA RELEASE";
@@ -333,12 +333,12 @@ in
 
   mps = buildMps rec {
     name = "mps-${version}";
-    version = "2019.2";
+    version = "2020.1.3"; /* updated by script */
     description = "Create your own domain-specific language";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
-      url = "https://download.jetbrains.com/mps/2019.2/MPS-${version}.tar.gz";
-      sha256 = "0rph3bibj74ddbyrn0az1npn4san4g1alci8nlq4gaqdlcz6zx22";
+      url = "https://download.jetbrains.com/mps/2020.1/MPS-${version}.tar.gz";
+      sha256 = "1ncvq834vn47pmh3q875hgqi4m7h3inljp89w3jwwhjn3g985ysz"; /* updated by script */
     };
     wmClass = "jetbrains-mps";
     update-channel = "MPS RELEASE";
@@ -346,12 +346,12 @@ in
 
   phpstorm = buildPhpStorm rec {
     name = "phpstorm-${version}";
-    version = "2020.1.2"; /* updated by script */
+    version = "2020.2"; /* updated by script */
     description = "Professional IDE for Web and PHP developers";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
-      sha256 = "00c8vlp125j56v9g9d4rc5g4dhgvl1bhi6qrzvpaf6x77jbq4fv4"; /* updated by script */
+      sha256 = "1zxhb2w7nivnx8habcf5vii6bwzaihs5x8smy0zf8ngv3xwr6vjc"; /* updated by script */
     };
     wmClass = "jetbrains-phpstorm";
     update-channel = "PhpStorm RELEASE";
@@ -359,12 +359,12 @@ in
 
   pycharm-community = buildPycharm rec {
     name = "pycharm-community-${version}";
-    version = "2020.1.2"; /* updated by script */
+    version = "2020.2"; /* updated by script */
     description = "PyCharm Community Edition";
     license = stdenv.lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "1s04b9w7sydix1sjqzmby63nwcvzs6iw28wz7441kxgryl9qg0qw"; /* updated by script */
+      sha256 = "12pp3xp74dzgjrv2nz83dnqycb250kkgqlb3skjkdx9pabmfxck0"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm-ce";
     update-channel = "PyCharm RELEASE";
@@ -372,12 +372,12 @@ in
 
   pycharm-professional = buildPycharm rec {
     name = "pycharm-professional-${version}";
-    version = "2020.1.2"; /* updated by script */
+    version = "2020.2"; /* updated by script */
     description = "PyCharm Professional Edition";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "1ysj00qbn5ik6i5953b9mln4g456fmn3phdln9m5jmcb0126y235"; /* updated by script */
+      sha256 = "0xq0nba31yc7cm1lbgkmgfbr5kp5fq5k7j2n6kampm2hyx5fa0ak"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm";
     update-channel = "PyCharm RELEASE";
@@ -385,12 +385,12 @@ in
 
   rider = buildRider rec {
     name = "rider-${version}";
-    version = "2020.1.3"; /* updated by script */
+    version = "2020.2"; /* updated by script */
     description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
-      sha256 = "1zzkd3b5j3q6jqrvibxz33a4fcm7pgqfx91bqjs615v3499ncng7"; /* updated by script */
+      sha256 = "0fxgdxsrrl659lh45slikgck6jld90rd6nnj8gj3aixq0yp5pkix"; /* updated by script */
     };
     wmClass = "jetbrains-rider";
     update-channel = "Rider RELEASE";
@@ -398,12 +398,12 @@ in
 
   ruby-mine = buildRubyMine rec {
     name = "ruby-mine-${version}";
-    version = "2020.1.2"; /* updated by script */
+    version = "2020.2"; /* updated by script */
     description = "The Most Intelligent Ruby and Rails IDE";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
-      sha256 = "1ycwml7fyhjajjfy1fhggmx0mcdcjidkxll7357rv2z51r0yhc9h"; /* updated by script */
+      sha256 = "1caxd5qcxwwrdy3ma87gnywr5czg3lam1n2gwbnc7hdxgfnvn3qz"; /* updated by script */
     };
     wmClass = "jetbrains-rubymine";
     update-channel = "RubyMine RELEASE";
@@ -411,12 +411,12 @@ in
 
   webstorm = buildWebStorm rec {
     name = "webstorm-${version}";
-    version = "2020.1.2"; /* updated by script */
+    version = "2020.2"; /* updated by script */
     description = "Professional IDE for Web and JavaScript development";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
-      sha256 = "1szgiccimfk99z9x1k99lgic6ix81fdahf1k3a88rddl8hhncjwv"; /* updated by script */
+      sha256 = "100j2q9hz0a50n3x3khk7hap7b496g6sx0y6q7n7vy2zayh5ibm5"; /* updated by script */
     };
     wmClass = "jetbrains-webstorm";
     update-channel = "WebStorm RELEASE";
diff --git a/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile b/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile
new file mode 100644
index 00000000000..c3f096edcad
--- /dev/null
+++ b/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile
@@ -0,0 +1,6 @@
+source 'https://rubygems.org'
+gem 'sensu'
+gem 'iruby'
+gem 'cztop'
+gem 'ffi-rzmq'
+gem 'rbczmq'
diff --git a/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile.lock b/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile.lock
new file mode 100644
index 00000000000..89f60a6dbdc
--- /dev/null
+++ b/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile.lock
@@ -0,0 +1,119 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    addressable (2.6.0)
+      public_suffix (>= 2.0.2, < 4.0)
+    amq-protocol (2.0.1)
+    amqp (1.6.0)
+      amq-protocol (>= 2.0.1)
+      eventmachine
+    bond (0.5.1)
+    childprocess (0.5.8)
+      ffi (~> 1.0, >= 1.0.11)
+    cookiejar (0.3.3)
+    czmq-ffi-gen (0.15.0)
+      ffi (~> 1.9.10)
+    cztop (0.13.1)
+      czmq-ffi-gen (~> 0.15.0)
+    data_uri (0.1.0)
+    em-http-request (1.1.5)
+      addressable (>= 2.3.4)
+      cookiejar (!= 0.3.1)
+      em-socksify (>= 0.3)
+      eventmachine (>= 1.0.3)
+      http_parser.rb (>= 0.6.0)
+    em-http-server (0.1.8)
+      eventmachine
+    em-socksify (0.3.2)
+      eventmachine (>= 1.0.0.beta.4)
+    em-worker (0.0.2)
+      eventmachine
+    eventmachine (1.2.7)
+    ffi (1.9.21)
+    ffi-rzmq (2.0.7)
+      ffi-rzmq-core (>= 1.0.7)
+    ffi-rzmq-core (1.0.7)
+      ffi
+    http_parser.rb (0.6.0)
+    iruby (0.3)
+      bond (~> 0.5)
+      data_uri (~> 0.1)
+      mimemagic (~> 0.3)
+      multi_json (~> 1.11)
+    mimemagic (0.3.3)
+    multi_json (1.13.1)
+    oj (2.18.1)
+    parse-cron (0.1.4)
+    public_suffix (3.0.3)
+    rbczmq (1.7.9)
+    sensu (1.6.2)
+      em-http-request (= 1.1.5)
+      em-http-server (= 0.1.8)
+      eventmachine (= 1.2.7)
+      parse-cron (= 0.1.4)
+      sensu-extension (= 1.5.2)
+      sensu-extensions (= 1.10.0)
+      sensu-json (= 2.1.1)
+      sensu-logger (= 1.2.2)
+      sensu-redis (= 2.4.0)
+      sensu-settings (= 10.14.0)
+      sensu-spawn (= 2.5.0)
+      sensu-transport (= 8.2.0)
+    sensu-extension (1.5.2)
+      eventmachine
+    sensu-extensions (1.10.0)
+      sensu-extension
+      sensu-extensions-check-dependencies (= 1.1.0)
+      sensu-extensions-debug (= 1.0.0)
+      sensu-extensions-json (= 1.0.0)
+      sensu-extensions-occurrences (= 1.2.0)
+      sensu-extensions-only-check-output (= 1.0.0)
+      sensu-extensions-ruby-hash (= 1.0.0)
+      sensu-json (>= 1.1.0)
+      sensu-logger
+      sensu-settings
+    sensu-extensions-check-dependencies (1.1.0)
+      sensu-extension
+    sensu-extensions-debug (1.0.0)
+      sensu-extension
+    sensu-extensions-json (1.0.0)
+      sensu-extension
+    sensu-extensions-occurrences (1.2.0)
+      sensu-extension
+    sensu-extensions-only-check-output (1.0.0)
+      sensu-extension
+    sensu-extensions-ruby-hash (1.0.0)
+      sensu-extension
+    sensu-json (2.1.1)
+      oj (= 2.18.1)
+    sensu-logger (1.2.2)
+      eventmachine
+      sensu-json
+    sensu-redis (2.4.0)
+      eventmachine
+    sensu-settings (10.14.0)
+      parse-cron
+      sensu-json (>= 1.1.0)
+    sensu-spawn (2.5.0)
+      childprocess (= 0.5.8)
+      em-worker (= 0.0.2)
+      eventmachine
+      ffi (= 1.9.21)
+    sensu-transport (8.2.0)
+      amq-protocol (= 2.0.1)
+      amqp (= 1.6.0)
+      eventmachine
+      sensu-redis (>= 1.0.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  cztop
+  ffi-rzmq
+  iruby
+  rbczmq
+  sensu
+
+BUNDLED WITH
+   1.17.2
diff --git a/pkgs/applications/editors/jupyter-kernels/iruby/default.nix b/pkgs/applications/editors/jupyter-kernels/iruby/default.nix
new file mode 100644
index 00000000000..260a614fe5c
--- /dev/null
+++ b/pkgs/applications/editors/jupyter-kernels/iruby/default.nix
@@ -0,0 +1,17 @@
+{ lib
+, bundlerApp
+}:
+
+bundlerApp {
+  pname = "iruby";
+  gemdir = ./.;
+  exes = [ "iruby" ];
+
+  meta = with lib; {
+    description = "Ruby kernel for Jupyter";
+    homepage    = "https://github.com/SciRuby/iruby";
+    license     = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/editors/jupyter-kernels/iruby/gemset.nix b/pkgs/applications/editors/jupyter-kernels/iruby/gemset.nix
new file mode 100644
index 00000000000..1ba77a058ea
--- /dev/null
+++ b/pkgs/applications/editors/jupyter-kernels/iruby/gemset.nix
@@ -0,0 +1,429 @@
+{
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
+  amq-protocol = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rpn9vgh7y037aqhhp04smihzr73vp5i5g6xlqlha10wy3q0wp7x";
+      type = "gem";
+    };
+    version = "2.0.1";
+  };
+  amqp = {
+    dependencies = ["amq-protocol" "eventmachine"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kbrqnpjgj9v0722p3n5rw589l4g26ry8mcghwc5yr20ggkpdaz9";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  bond = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r19ifc4skyl2gxnifrxa5jvbbay9fb2in79ppgv02b6n4bhsw90";
+      type = "gem";
+    };
+    version = "0.5.1";
+  };
+  childprocess = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lv7axi1fhascm9njxh3lx1rbrnsm8wgvib0g7j26v4h1fcphqg0";
+      type = "gem";
+    };
+    version = "0.5.8";
+  };
+  cookiejar = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0q0kmbks9l3hl0wdq744hzy97ssq9dvlzywyqv9k9y1p3qc9va2a";
+      type = "gem";
+    };
+    version = "0.3.3";
+  };
+  czmq-ffi-gen = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ngsd1yxiayd50v402vwhmq7ma9ang6pcba5kqiwq7smpdvfmbmp";
+      type = "gem";
+    };
+    version = "0.15.0";
+  };
+  cztop = {
+    dependencies = ["czmq-ffi-gen"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12xcz7g42dbp2ryhcwdm2ykj7bmwfhjhla296hy18g7a09zlfnz7";
+      type = "gem";
+    };
+    version = "0.13.1";
+  };
+  data_uri = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fzkxgdxrlbfl4537y3n9mjxbm28kir639gcw3x47ffchwsgdcky";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  em-http-request = {
+    dependencies = ["addressable" "cookiejar" "em-socksify" "eventmachine" "http_parser.rb"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13rxmbi0fv91n4sg300v3i9iiwd0jxv0i6xd0sp81dx3jlx7kasx";
+      type = "gem";
+    };
+    version = "1.1.5";
+  };
+  em-http-server = {
+    dependencies = ["eventmachine"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y8l4gymy9dzjjchjav90ck6has2i2zdjihlhcyrg3jgq6kjzyq5";
+      type = "gem";
+    };
+    version = "0.1.8";
+  };
+  em-socksify = {
+    dependencies = ["eventmachine"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rk43ywaanfrd8180d98287xv2pxyl7llj291cwy87g1s735d5nk";
+      type = "gem";
+    };
+    version = "0.3.2";
+  };
+  em-worker = {
+    dependencies = ["eventmachine"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0z4jx9z2q5hxvdvik4yp0ahwfk69qsmdnyp72ln22p3qlkq2z5wk";
+      type = "gem";
+    };
+    version = "0.0.2";
+  };
+  eventmachine = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  ffi = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0c2dl10pi6a30kcvx2s6p2v1wb4kbm48iv38kmz2ff600nirhpb8";
+      type = "gem";
+    };
+    version = "1.9.21";
+  };
+  ffi-rzmq = {
+    dependencies = ["ffi-rzmq-core"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14a5kxfnf8l3ngyk8hgmk30z07aj1324ll8i48z67ps6pz2kpsrg";
+      type = "gem";
+    };
+    version = "2.0.7";
+  };
+  ffi-rzmq-core = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0amkbvljpjfnv0jpdmz71p1i3mqbhyrnhamjn566w0c01xd64hb5";
+      type = "gem";
+    };
+    version = "1.0.7";
+  };
+  "http_parser.rb" = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  iruby = {
+    dependencies = ["bond" "data_uri" "mimemagic" "multi_json"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wdf2c0x8y6cya0n3y0p3p7b1sxkb2fdavdn2k58rf4rs37s7rzn";
+      type = "gem";
+    };
+    version = "0.3";
+  };
+  mimemagic = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04cp5sfbh1qx82yqxn0q75c7hlcx8y1dr5g3kyzwm4mx6wi2gifw";
+      type = "gem";
+    };
+    version = "0.3.3";
+  };
+  multi_json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+      type = "gem";
+    };
+    version = "1.13.1";
+  };
+  oj = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "147whmq8h2n04chskl3v4a132xhz5i6kk6vhnz83jwng4vihin5f";
+      type = "gem";
+    };
+    version = "2.18.1";
+  };
+  parse-cron = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02fj9i21brm88nb91ikxwxbwv9y7mb7jsz6yydh82rifwq7357hg";
+      type = "gem";
+    };
+    version = "0.1.4";
+  };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
+      type = "gem";
+    };
+    version = "3.0.3";
+  };
+  rbczmq = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bqr44m2nb61smza6y5cahp09hk16lsn0z3wpq9g5zpr9nhp50fx";
+      type = "gem";
+    };
+    version = "1.7.9";
+  };
+  sensu = {
+    dependencies = ["em-http-request" "em-http-server" "eventmachine" "parse-cron" "sensu-extension" "sensu-extensions" "sensu-json" "sensu-logger" "sensu-redis" "sensu-settings" "sensu-spawn" "sensu-transport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rxv6yj63nkxlzmmqk6qpfpcvrbar9s4sd4kgfb5zsv9bw7236cr";
+      type = "gem";
+    };
+    version = "1.6.2";
+  };
+  sensu-extension = {
+    dependencies = ["eventmachine"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bpizp4n01rv72cryjjlrbfxxj3csish3mkxjzdy4inpi5j5h1dw";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
+  sensu-extensions = {
+    dependencies = ["sensu-extension" "sensu-extensions-check-dependencies" "sensu-extensions-debug" "sensu-extensions-json" "sensu-extensions-occurrences" "sensu-extensions-only-check-output" "sensu-extensions-ruby-hash" "sensu-json" "sensu-logger" "sensu-settings"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04v221qjv8qy3jci40i66p63ig5vrrh0dpgmf1l8229x5m7bxrsg";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  sensu-extensions-check-dependencies = {
+    dependencies = ["sensu-extension"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hc4kz7k983f6fk27ikg5drvxm4a85qf1k07hqssfyk3k75jyj1r";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  sensu-extensions-debug = {
+    dependencies = ["sensu-extension"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11abdgn2kkkbvxq4692yg6a27qnxz4349gfiq7d35biy7vrw34lp";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  sensu-extensions-json = {
+    dependencies = ["sensu-extension"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wnbn9sycdqdh9m0fhszaqkv0jijs3fkdbvcv8kdspx6irbv3m6g";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  sensu-extensions-occurrences = {
+    dependencies = ["sensu-extension"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lx5wsbblfs0rvkxfg09bsz0g2mwmckrhga7idnarsnm8m565v1v";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  sensu-extensions-only-check-output = {
+    dependencies = ["sensu-extension"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ds2i8wd4ji9ifig2zzr4jpxinvk5dm7j10pvaqy4snykxa3rqh3";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  sensu-extensions-ruby-hash = {
+    dependencies = ["sensu-extension"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xyrj3gbmslbivcd5qcmyclgapn7qf7f5jwfvfpw53bxzib0h7s3";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  sensu-json = {
+    dependencies = ["oj"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08zlxg5j3bhs72cc7wcllp026jbif0xiw6ib1cgawndlpsfl9fgx";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
+  sensu-logger = {
+    dependencies = ["eventmachine" "sensu-json"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jpw4kz36ilaknrzb3rbkhpbgv93w2d668z2cv395dq30d4d3iwm";
+      type = "gem";
+    };
+    version = "1.2.2";
+  };
+  sensu-redis = {
+    dependencies = ["eventmachine"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0widfmmj1h9ca2kk14wy1sqmlkq40linp89a73s3ghngnzri0xyk";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  sensu-settings = {
+    dependencies = ["parse-cron" "sensu-json"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "152n4hazv2l4vbzrgd316rpj135jmz042fyh6k2yv2kw0x29pi0f";
+      type = "gem";
+    };
+    version = "10.14.0";
+  };
+  sensu-spawn = {
+    dependencies = ["childprocess" "em-worker" "eventmachine" "ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17yc8ivjpjbvig9r7yl6991d6ma0kcq75fbpz6i856ljvcr3lmd5";
+      type = "gem";
+    };
+    version = "2.5.0";
+  };
+  sensu-transport = {
+    dependencies = ["amq-protocol" "amqp" "eventmachine" "sensu-redis"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x6vyfmg1jm1srf7xa5aka73by7qwcmry2rx8kq8phwa4g0v4mzr";
+      type = "gem";
+    };
+    version = "8.2.0";
+  };
+}
\ No newline at end of file
diff --git a/pkgs/applications/editors/kakoune/default.nix b/pkgs/applications/editors/kakoune/default.nix
index 6a468bd67eb..eec14f286ba 100644
--- a/pkgs/applications/editors/kakoune/default.nix
+++ b/pkgs/applications/editors/kakoune/default.nix
@@ -4,12 +4,12 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "kakoune-unwrapped";
-  version = "2020.01.16";
+  version = "2020.09.01";
   src = fetchFromGitHub {
     repo = "kakoune";
     owner = "mawww";
     rev = "v${version}";
-    sha256 = "16v6z1nzj54j19fraxhb18jdby4zfs1br91gxpg9s2s4nsk0km0b";
+    sha256 = "091qzk0qs7hql0q51hix99srgma35mhdnjfd5ncfba1bmc1h8x5i";
   };
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ ncurses asciidoc docbook_xsl libxslt ];
diff --git a/pkgs/applications/editors/kakoune/plugins/case.kak.nix b/pkgs/applications/editors/kakoune/plugins/case.kak.nix
new file mode 100644
index 00000000000..20df2872628
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/case.kak.nix
@@ -0,0 +1,27 @@
+{ 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 stdenv.lib; {
+    description = "Ease navigation between opened buffers in Kakoune";
+    homepage = "https://gitlab.com/FlyingWombat/case.kak";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ eraserhd ];
+    platform = platforms.all;
+  };
+}
+
diff --git a/pkgs/applications/editors/kakoune/plugins/default.nix b/pkgs/applications/editors/kakoune/plugins/default.nix
index 4e92887bccb..3926973f7ea 100644
--- a/pkgs/applications/editors/kakoune/plugins/default.nix
+++ b/pkgs/applications/editors/kakoune/plugins/default.nix
@@ -3,11 +3,13 @@
 {
   inherit parinfer-rust;
 
+  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 { };
 }
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix b/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
index dd0faf63453..657f4a19bbf 100644
--- a/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
+++ b/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
@@ -4,12 +4,12 @@ assert stdenv.lib.asserts.assertOneOf "fzf" fzf.pname [ "fzf" "skim" ];
 
 stdenv.mkDerivation {
   name = "kak-fzf";
-  version = "2019-07-16";
+  version = "2020-05-24";
   src = fetchFromGitHub {
     owner = "andreyorst";
     repo = "fzf.kak";
-    rev = "ede90d3e02bceb714f997adfcbab8260b42e0a19";
-    sha256 = "18w90j3fpk2ddn68497s33n66aap8phw5636y1r7pqsa641zdxcv";
+    rev = "b2aeb26473962ab0bf3b51ba5c81c50c1d8253d3";
+    sha256 = "0bg845i814xh4y688p2zx726rsg0pd6nb4a7qv2fckmk639f4wzc";
   };
 
   configurePhase = ''
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix b/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix
new file mode 100644
index 00000000000..ee9c125827c
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation {
+  name = "kak-prelude";
+  version = "2020-03-15";
+
+  src = fetchFromGitHub {
+    owner = "alexherbo2";
+    repo = "prelude.kak";
+    rev = "05b2642b1e014bd46423f9d738cc38a624947b63";
+    sha256 = "180p8hq8z7mznzd9w9ma5as3ijs7zbzcj96prcpswqg263a0b329";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/kak/autoload/plugins
+    cp -r rc $out/share/kak/autoload/plugins/auto-pairs
+  '';
+
+  meta = with stdenv.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/pkgs/applications/editors/kibi/default.nix b/pkgs/applications/editors/kibi/default.nix
new file mode 100644
index 00000000000..85ad49a01d6
--- /dev/null
+++ b/pkgs/applications/editors/kibi/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "kibi";
+  version = "0.2.0";
+
+  cargoSha256 = "0zyqzb3k4ak7h58zjbg9b32hz1vgbbn9i9l85j4vd4aw8mhsz0n9";
+
+  src = fetchFromGitHub {
+    owner = "ilai-deutel";
+    repo = "kibi";
+    rev = "v${version}";
+    sha256 = "1cqnzw6gpsmrqcz82zn1x5i6najcr3i7shj0wnqzpwppff9a6yac";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A text editor in ≤1024 lines of code, written in Rust";
+    homepage = "https://github.com/ilai-deutel/kibi";
+    license = licenses.mit;
+    maintainers = with maintainers; [ robertodr ];
+  };
+}
diff --git a/pkgs/applications/editors/lighttable/default.nix b/pkgs/applications/editors/lighttable/default.nix
index 26c5ee42152..abf55b42c55 100644
--- a/pkgs/applications/editors/lighttable/default.nix
+++ b/pkgs/applications/editors/lighttable/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, zlib, glib, alsaLib, makeDesktopItem
+{ stdenv, lib, fetchurl, zlib, glib, alsaLib, makeDesktopItem
 , dbus, gtk2, atk, pango, freetype, fontconfig, libgnome-keyring3, gdk-pixbuf
 , cairo, cups, expat, libgpgerror, nspr, gnome2, nss, xorg, systemd, libnotify
 }:
@@ -45,9 +45,9 @@ stdenv.mkDerivation rec {
 
     mv $out/share/LightTable/light $out/bin/light
 
-    ln -sf ${systemd.lib}/lib/libudev.so.1 $out/share/LightTable/libudev.so.0
+    ln -sf ${lib.getLib systemd}/lib/libudev.so.1 $out/share/LightTable/libudev.so.0
     substituteInPlace $out/bin/light \
-        --replace "/usr/lib/x86_64-linux-gnu" "${systemd.lib}/lib" \
+        --replace "/usr/lib/x86_64-linux-gnu" "${lib.getLib systemd}/lib" \
         --replace "/lib/x86_64-linux-gnu" "$out/share/LightTable" \
         --replace 'HERE=`dirname $(readlink -f $0)`' "HERE=$out/share/LightTable"
 
diff --git a/pkgs/applications/editors/lite/default.nix b/pkgs/applications/editors/lite/default.nix
index d938edaa6e9..908ecf2bdd7 100644
--- a/pkgs/applications/editors/lite/default.nix
+++ b/pkgs/applications/editors/lite/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lite";
-  version = "1.06";
+  version = "1.11";
 
   src = fetchFromGitHub {
     owner = "rxi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1lw4a6xv8pdlgwnhh870caij4iyzxdyjw4qmm4fswja9mbqkj32f";
+    sha256 = "0wxqfb4ly8g7w5qph76xys95b55ackkags8jgd1nasmiyi8gcd5a";
   };
 
   nativeBuildInputs = [ makeWrapper pkg-config ];
diff --git a/pkgs/applications/editors/nano/default.nix b/pkgs/applications/editors/nano/default.nix
index e2f041d0fd5..244649f8663 100644
--- a/pkgs/applications/editors/nano/default.nix
+++ b/pkgs/applications/editors/nano/default.nix
@@ -20,11 +20,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "nano";
-  version = "4.9.3";
+  version = "5.2";
 
   src = fetchurl {
     url = "mirror://gnu/nano/${pname}-${version}.tar.xz";
-    sha256 = "1d2i3wvsq5lvpxxinq51dcvd58xx7j0d0c2csz9hgvd06gq3hd3f";
+    sha256 = "1qd7pn9g5dgzbfg4fb3nqxqgi2iqq0g6x33x8d1mx6mfw51xmhij";
   };
 
   nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix
index 0d54817c534..b546aae790a 100644
--- a/pkgs/applications/editors/neovim/default.nix
+++ b/pkgs/applications/editors/neovim/default.nix
@@ -20,16 +20,24 @@ let
     ));
 
   pyEnv = python.withPackages(ps: [ ps.pynvim ps.msgpack ]);
+
+  # FIXME: this is verry messy and strange.
+  # see https://github.com/NixOS/nixpkgs/pull/80528
+  luv = lua.pkgs.luv;
+  luvpath = with builtins ; if stdenv.isDarwin
+    then "${luv.libluv}/lib/lua/${lua.luaversion}/libluv.${head (match "([0-9.]+).*" luv.version)}.dylib"
+    else "${luv}/lib/lua/${lua.luaversion}/luv.so";
+
 in
   stdenv.mkDerivation rec {
     pname = "neovim-unwrapped";
-    version = "0.4.3";
+    version = "0.4.4";
 
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "neovim";
       rev = "v${version}";
-      sha256 = "03p7pic7hw9yxxv7fbgls1f42apx3lik2k6mpaz1a109ngyc5kaj";
+      sha256 = "11zyj6jvkwas3n6w1ckj3pk6jf81z1g7ngg4smmwm7c27y2a6f2m";
     };
 
     patches = [
@@ -47,7 +55,7 @@ in
       libtermkey
       libuv
       libvterm-neovim
-      lua.pkgs.luv.libluv
+      luv.libluv
       msgpack
       ncurses
       neovimLuaEnv
@@ -88,10 +96,8 @@ in
     cmakeFlags = [
       "-DGPERF_PRG=${gperf}/bin/gperf"
       "-DLUA_PRG=${neovimLuaEnv.interpreter}"
+      "-DLIBLUV_LIBRARY=${luvpath}"
     ]
-    # FIXME: this is verry messy and strange.
-    ++ optional (!stdenv.isDarwin) "-DLIBLUV_LIBRARY=${lua.pkgs.luv}/lib/lua/${lua.luaversion}/luv.so"
-    ++ optional (stdenv.isDarwin) "-DLIBLUV_LIBRARY=${lua.pkgs.luv.libluv}/lib/lua/${lua.luaversion}/libluv.dylib"
     ++ optional doCheck "-DBUSTED_PRG=${neovimLuaEnv}/bin/busted"
     ++ optional (!lua.pkgs.isLuaJIT) "-DPREFER_LUA=ON"
     ;
diff --git a/pkgs/applications/editors/neovim/gnvim/default.nix b/pkgs/applications/editors/neovim/gnvim/default.nix
index 3693ff32233..e6166dd14b1 100644
--- a/pkgs/applications/editors/neovim/gnvim/default.nix
+++ b/pkgs/applications/editors/neovim/gnvim/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gnvim-unwrapped";
-  version = "0.1.5";
+  version = "0.1.6";
 
   src = fetchFromGitHub {
     owner = "vhakulinen";
     repo = "gnvim";
-    rev = version;
-    sha256 = "11gb59lhc1sp5dxj2fdm6072f4nxxay0war3kmchdwsk41nvxlrh";
+    rev = "v${version}";
+    sha256 = "1cc3yk04v9icdjr5cn58mqc3ba1wqmlzhf9ly7biy9m8yk30w9y0";
   };
 
-  cargoSha256 = "0ay7hx5bzchp772ywgxzia12c44kbyarrshl689cmqh59wphsrx5";
+  cargoSha256 = "1fyn8nsabzrfl9ykf2gk2p8if0yjp6k0ybrmp0pw67pbwaxpb9ym";
 
   buildInputs = [ gtk webkitgtk ];
 
diff --git a/pkgs/applications/editors/neovim/qt.nix b/pkgs/applications/editors/neovim/qt.nix
index 8fe93d37c7e..b04c575dded 100644
--- a/pkgs/applications/editors/neovim/qt.nix
+++ b/pkgs/applications/editors/neovim/qt.nix
@@ -38,6 +38,7 @@ let
 
     meta = with stdenv.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/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix
index c7d5f764978..e3c03c92e58 100644
--- a/pkgs/applications/editors/neovim/wrapper.nix
+++ b/pkgs/applications/editors/neovim/wrapper.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, makeWrapper
+{ stdenv, symlinkJoin, lib, makeWrapper
 , vimUtils
 , bundlerEnv, ruby
 , nodejs
@@ -55,44 +55,98 @@ let
 
   binPath = makeBinPath (optionals withRuby [rubyEnv] ++ optionals withNodeJs [nodejs]);
 
+  # Mapping a boolean argument to a key that tells us whether to add or not to
+  # add to nvim's 'embedded rc' this:
+  #
+  #    let g:<key>_host_prog=$out/bin/nvim-<key>
+  #
+  # Or this:
+  #
+  #    let g:loaded_${prog}_provider=1
+  #
+  # While the later tells nvim that this provider is not available
+  #
+  hostprog_check_table = {
+    node = withNodeJs;
+    python = withPython;
+    python3 = withPython3;
+    ruby = withRuby;
+  };
+  ## Here we calculate all of the arguments to the 1st call of `makeWrapper`
+  # We start with the executable itself NOTE we call this variable "initial"
+  # because if configure != {} we need to call makeWrapper twice, in order to
+  # avoid double wrapping, see comment near finalMakeWrapperArgs
+  initialMakeWrapperArgs =
+    let
+      flags = lib.concatLists (lib.mapAttrsToList (
+        prog:
+        withProg:
+        [
+          "--cmd"
+          (if withProg then
+            "let g:${prog}_host_prog='${placeholder "out"}/bin/nvim-${prog}'"
+          else
+            "let g:loaded_${prog}_provider=1"
+            )
+        ]
+      ) hostprog_check_table);
+    in [
+      "${neovim}/bin/nvim" "${placeholder "out"}/bin/nvim"
+      "--argv0" "$0"
+      "--add-flags" (lib.escapeShellArgs flags)
+    ] ++ lib.optionals withRuby [
+      "--set" "GEM_HOME" "${rubyEnv}/${rubyEnv.ruby.gemPath}"
+    ] ++ lib.optionals (binPath != "") [
+      "--suffix" "PATH" ":" binPath
+    ];
+  # If configure != {}, we can't generate the rplugin.vim file with e.g
+  # NVIM_SYSTEM_RPLUGIN_MANIFEST *and* NVIM_RPLUGIN_MANIFEST env vars set in
+  # the wrapper. That's why only when configure != {} (tested both here and
+  # when postBuild is evaluated), we call makeWrapper once to generate a
+  # wrapper with most arguments we need, excluding those that cause problems to
+  # generate rplugin.vim, but still required for the final wrapper.
+  finalMakeWrapperArgs = initialMakeWrapperArgs
+    # this relies on a patched neovim, see
+    # https://github.com/neovim/neovim/issues/9413
+    ++ lib.optionals (configure != {}) [
+      "--set" "NVIM_SYSTEM_RPLUGIN_MANIFEST" "${placeholder "out"}/rplugin.vim"
+      "--add-flags" "-u ${vimUtils.vimrcFile configure}"
+    ]
+  ;
   in
-  stdenv.mkDerivation {
+  symlinkJoin {
       name = "neovim-${stdenv.lib.getVersion neovim}";
-      buildCommand = let bin="${neovim}/bin/nvim"; in ''
-        if [ ! -x "${bin}" ]
-        then
-            echo "cannot find executable file \`${bin}'"
-            exit 1
-        fi
-
-        makeWrapper "$(readlink -v --canonicalize-existing "${bin}")" \
-          "$out/bin/nvim" --add-flags " \
-        --cmd \"${if withNodeJs then "let g:node_host_prog='${nodePackages.neovim}/bin/neovim-node-host'" else "let g:loaded_node_provider=1"}\" \
-        --cmd \"${if withPython then "let g:python_host_prog='$out/bin/nvim-python'" else "let g:loaded_python_provider = 1"}\" \
-        --cmd \"${if withPython3 then "let g:python3_host_prog='$out/bin/nvim-python3'" else "let g:loaded_python3_provider = 1"}\" \
-        --cmd \"${if withRuby then "let g:ruby_host_prog='$out/bin/nvim-ruby'" else "let g:loaded_ruby_provider=1"}\" " \
-        --suffix PATH : ${binPath} \
-        ${optionalString withRuby '' --set GEM_HOME ${rubyEnv}/${rubyEnv.ruby.gemPath}'' }
+      # Remove the symlinks created by symlinkJoin which we need to perform
+      # extra actions upon
+      postBuild = ''
+        rm $out/bin/nvim
+        makeWrapper ${lib.escapeShellArgs initialMakeWrapperArgs} ${extraMakeWrapperArgs}
       ''
-      + optionalString (!stdenv.isDarwin) ''
-        # copy icon and patch the original neovim.desktop file
-        mkdir -p $out/share/{applications,pixmaps}
-        ln -s ${neovim}/share/pixmaps/nvim.png $out/share/pixmaps/nvim.png
+      + lib.optionalString stdenv.isLinux ''
+        rm $out/share/applications/nvim.desktop
         substitute ${neovim}/share/applications/nvim.desktop $out/share/applications/nvim.desktop \
           --replace 'TryExec=nvim' "TryExec=$out/bin/nvim" \
           --replace 'Name=Neovim' 'Name=WrappedNeovim'
       ''
       + optionalString withPython ''
         makeWrapper ${pythonEnv}/bin/python $out/bin/nvim-python --unset PYTHONPATH
-      '' + optionalString withPython3 ''
+      ''
+      + optionalString withPython3 ''
         makeWrapper ${python3Env}/bin/python3 $out/bin/nvim-python3 --unset PYTHONPATH
-      '' + optionalString withRuby ''
+      ''
+      + optionalString withRuby ''
         ln -s ${rubyEnv}/bin/neovim-ruby-host $out/bin/nvim-ruby
-      '' + optionalString vimAlias ''
+      ''
+      + optionalString withNodeJs ''
+        ln -s ${nodePackages.neovim}/bin/neovim-node-host $out/bin/nvim-node
+      ''
+      + optionalString vimAlias ''
         ln -s $out/bin/nvim $out/bin/vim
-      '' + optionalString viAlias ''
+      ''
+      + optionalString viAlias ''
         ln -s $out/bin/nvim $out/bin/vi
-      '' + optionalString (configure != {}) ''
+      ''
+      + optionalString (configure != {}) ''
         echo "Generating remote plugin manifest"
         export NVIM_RPLUGIN_MANIFEST=$out/rplugin.vim
         # Some plugins assume that the home directory is accessible for
@@ -119,22 +173,18 @@ let
           echo -e "\nGenerating rplugin.vim failed!"
           exit 1
         fi
-        unset NVIM_RPLUGIN_MANIFEST
-
-        # this relies on a patched neovim, see
-        # https://github.com/neovim/neovim/issues/9413
-        wrapProgram $out/bin/nvim \
-          --set NVIM_SYSTEM_RPLUGIN_MANIFEST $out/rplugin.vim \
-          --add-flags "-u ${vimUtils.vimrcFile configure}" ${extraMakeWrapperArgs}
+        makeWrapper ${lib.escapeShellArgs finalMakeWrapperArgs} ${extraMakeWrapperArgs}
       '';
 
+    paths = [ neovim ];
+
     preferLocalBuild = true;
 
     buildInputs = [makeWrapper];
     passthru = { unwrapped = neovim; };
 
     meta = neovim.meta // {
-      description = neovim.meta.description;
+      # To prevent builds on hydra
       hydraPlatforms = [];
       # prefer wrapper over the package
       priority = (neovim.meta.priority or 0) - 1;
diff --git a/pkgs/applications/editors/okteta/default.nix b/pkgs/applications/editors/okteta/default.nix
index b9d92409198..382fcd44257 100644
--- a/pkgs/applications/editors/okteta/default.nix
+++ b/pkgs/applications/editors/okteta/default.nix
@@ -4,11 +4,11 @@
 
 mkDerivation rec {
   pname = "okteta";
-  version = "0.26.3";
+  version = "0.26.4";
 
   src = fetchurl {
     url = "mirror://kde/stable/okteta/${version}/src/${pname}-${version}.tar.xz";
-    sha256 = "1454844s76skk18gpcf56y9pkmffs7p4z09ggmy37ifzf7yk1p19";
+    sha256 = "00qgzm5mqx0j8f0fznhnw76l9pjyw3lxirvy8ssq59nqqjbb08pg";
   };
 
   nativeBuildInputs = [ qtscript extra-cmake-modules kdoctools ];
diff --git a/pkgs/applications/editors/quilter/default.nix b/pkgs/applications/editors/quilter/default.nix
index 8fa85ab7557..4d1cf5dafb7 100644
--- a/pkgs/applications/editors/quilter/default.nix
+++ b/pkgs/applications/editors/quilter/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchFromGitHub, pkgconfig, meson, ninja, python3, vala
+{ stdenv, fetchFromGitHub, nix-update-script, pkgconfig, meson, ninja, python3, vala
 , gtk3, desktop-file-utils, gtksourceview, webkitgtk, gtkspell3, pantheon
 , libgee, discount, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "quilter";
-  version = "2.2.4";
+  version = "2.5.0";
 
   src = fetchFromGitHub {
     owner = "lainsce";
     repo = pname;
     rev = version;
-    sha256 = "0xmnfqqdn7p84aksb8yzs14ikgy5driylr6m4p5ffsb6i9aa0i9h";
+    sha256 = "0622mh46z3fi6zvipmgj8k4d4gj1c2781l10frk7wqq1sysjrxps";
   };
 
   nativeBuildInputs = [
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/editors/setzer/default.nix b/pkgs/applications/editors/setzer/default.nix
index 5a0ef754db1..0b1dd8fcb9f 100644
--- a/pkgs/applications/editors/setzer/default.nix
+++ b/pkgs/applications/editors/setzer/default.nix
@@ -17,13 +17,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "setzer";
-  version = "0.2.8";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "cvfosammmm";
     repo = "Setzer";
     rev = "v${version}";
-    sha256 = "1llxxjj038nd2p857bjdyyhzskn56826qi259v47vaqlv9hkifil";
+    sha256 = "0gx5fnyi932lswkhdvxfqs0wxx7hz690cbnpv4m3ysydi96mxwiv";
   };
 
   format = "other";
diff --git a/pkgs/applications/editors/sigil/default.nix b/pkgs/applications/editors/sigil/default.nix
index cbb9f7bd5b8..869c20c1d6c 100644
--- a/pkgs/applications/editors/sigil/default.nix
+++ b/pkgs/applications/editors/sigil/default.nix
@@ -1,18 +1,18 @@
 { stdenv, mkDerivation, fetchFromGitHub, cmake, pkgconfig, makeWrapper
-, boost, xercesc
-, qtbase, qttools, qtwebkit, qtxmlpatterns
-, python3, python3Packages
+, boost, xercesc, hunspell, zlib, pcre16
+, qtbase, qttools, qtwebengine, qtxmlpatterns
+, python3Packages
 }:
 
 mkDerivation rec {
   pname = "sigil";
-  version = "0.9.14";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
-    sha256 = "0fmfbfpnmhclbbv9cbr1xnv97si6ls7331kk3ix114iqkngqwgl1";
-    rev = version;
     repo = "Sigil";
     owner = "Sigil-Ebook";
+    rev = version;
+    sha256 = "02bkyi9xpaxdcivm075y3praxgvfay9z0189gvr6g8yc3ml1miyr";
   };
 
   pythonPath = with python3Packages; [ lxml ];
@@ -20,8 +20,9 @@ mkDerivation rec {
   nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
 
   buildInputs = [
-    boost xercesc qtbase qttools qtwebkit qtxmlpatterns
-    python3Packages.lxml ];
+    boost xercesc qtbase qttools qtwebengine qtxmlpatterns
+    python3Packages.lxml
+  ];
 
   dontWrapQtApps = true;
 
diff --git a/pkgs/applications/editors/texstudio/default.nix b/pkgs/applications/editors/texstudio/default.nix
index 94837023ca0..8f7e18a35c5 100644
--- a/pkgs/applications/editors/texstudio/default.nix
+++ b/pkgs/applications/editors/texstudio/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "texstudio";
-  version = "2.12.22";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "${pname}-org";
     repo = pname;
     rev = version;
-    sha256 = "037jvsfln8wav17qj9anxz2a7p51v7ky85wmhdj2hgwp40al651g";
+    sha256 = "1663lgl30698awa7fjplr8rjnf6capqvf8z80lzlnkfl5m9ph0jb";
   };
 
   nativeBuildInputs = [ qmake wrapQtAppsHook pkgconfig ];
diff --git a/pkgs/applications/editors/tiled/default.nix b/pkgs/applications/editors/tiled/default.nix
index 20e1427ddef..4b032d48ebf 100644
--- a/pkgs/applications/editors/tiled/default.nix
+++ b/pkgs/applications/editors/tiled/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "tiled";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "bjorn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1x8jymmc56di1c1wxalsp6qhcban2hahn70ndd097b8mx52gckjr";
+    sha256 = "0b3xjcc86vs9lfxr7xann9d43dz3v3x1g7j1mcn31sy2n68a1wx3";
   };
 
   nativeBuildInputs = [ pkgconfig qmake ];
diff --git a/pkgs/applications/editors/typora/default.nix b/pkgs/applications/editors/typora/default.nix
index 583229eb868..3c55cffdcf1 100644
--- a/pkgs/applications/editors/typora/default.nix
+++ b/pkgs/applications/editors/typora/default.nix
@@ -2,7 +2,7 @@
 , lib
 , fetchurl
 , makeWrapper
-, electron_5
+, electron_9
 , dpkg
 , gtk3
 , glib
@@ -12,13 +12,16 @@
 , pandoc
 }:
 
+let
+  electron = electron_9;
+in
 stdenv.mkDerivation rec {
   pname = "typora";
-  version = "0.9.73";
+  version = "0.9.95";
 
   src = fetchurl {
     url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
-    sha256 = "1fgcb4bx5pw8ah5j30d38gw7qi1cmqarfhvgdns9f2n0d57bvvw3";
+    sha256 = "0kgzk7z707vlbjrvykrnw2h6wscmc3h5hxycyz1z1j2cz26fns4p";
   };
 
   nativeBuildInputs = [
@@ -33,7 +36,8 @@ stdenv.mkDerivation rec {
     gtk3
   ];
 
-  unpackPhase = "dpkg-deb -x $src .";
+  # The deb contains setuid permission on `chrome-sandbox`, which will actually not get installed.
+  unpackPhase = "dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner";
 
   dontWrapGApps = true;
 
@@ -51,7 +55,7 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    makeWrapper ${electron_5}/bin/electron $out/bin/typora \
+    makeWrapper ${electron}/bin/electron $out/bin/typora \
       --add-flags $out/share/typora \
       "''${gappsWrapperArgs[@]}" \
       ${lib.optionalString withPandoc ''--prefix PATH : "${lib.makeBinPath [ pandoc ]}"''} \
diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix
index 47e71e2da4d..4ae7600f4a1 100644
--- a/pkgs/applications/editors/vim/common.nix
+++ b/pkgs/applications/editors/vim/common.nix
@@ -1,12 +1,12 @@
 { lib, fetchFromGitHub }:
 rec {
-  version = "8.2.0701";
+  version = "8.2.1522";
 
   src = fetchFromGitHub {
     owner = "vim";
     repo = "vim";
     rev = "v${version}";
-    sha256 = "1cbh2nhbvhp4kclc9fd8gqij2vi11c5zwdwn1nzg805k06hwmsrp";
+    sha256 = "0dah3392cq06pagik5y7kcq61mslqvfsh7vqldv3kvhr5ilqb8qy";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix
index 83c8533f5cd..77d7ca983cd 100644
--- a/pkgs/applications/editors/vim/configurable.nix
+++ b/pkgs/applications/editors/vim/configurable.nix
@@ -1,5 +1,3 @@
-# TODO tidy up eg The patchelf code is patching gvim even if you don't build it..
-# but I have gvim with python support now :) - Marc
 { source ? "default", callPackage, stdenv, ncurses, pkgconfig, gettext
 , writeText, config, glib, gtk2-x11, gtk3-x11, lua, python, perl, tcl, ruby
 , libX11, libXext, libSM, libXpm, libXt, libXaw, libXau, libXmu
@@ -156,7 +154,12 @@ in stdenv.mkDerivation rec {
   '' + stdenv.lib.optionalString stdenv.isLinux ''
     patchelf --set-rpath \
       "$(patchelf --print-rpath $out/bin/vim):${stdenv.lib.makeLibraryPath buildInputs}" \
-      "$out"/bin/{vim,gvim}
+      "$out"/bin/vim
+    if [[ -e "$out"/bin/gvim ]]; then
+      patchelf --set-rpath \
+        "$(patchelf --print-rpath $out/bin/vim):${stdenv.lib.makeLibraryPath buildInputs}" \
+        "$out"/bin/gvim
+    fi
 
     ln -sfn '${nixosRuntimepath}' "$out"/share/vim/vimrc
   '' + stdenv.lib.optionalString wrapPythonDrv ''
diff --git a/pkgs/applications/editors/vim/qvim.nix b/pkgs/applications/editors/vim/qvim.nix
deleted file mode 100644
index 0e3a4a15052..00000000000
--- a/pkgs/applications/editors/vim/qvim.nix
+++ /dev/null
@@ -1,113 +0,0 @@
-args@{ fetchgit, stdenv, ncurses, pkgconfig, gettext
-, lib, config, python, perl, tcl, ruby, qt4
-, libX11, libXext, libSM, libXpm, libXt, libXaw, libXau, libXmu
-, libICE
-, lua
-, features
-, luaSupport       ? config.vim.lua or true
-, perlSupport      ? config.vim.perl or false      # Perl interpreter
-, pythonSupport    ? config.vim.python or true
-, rubySupport      ? config.vim.ruby or true
-, nlsSupport       ? config.vim.nls or false
-, tclSupport       ? config.vim.tcl or false
-, multibyteSupport ? config.vim.multibyte or false
-, cscopeSupport    ? config.vim.cscope or false
-, netbeansSupport  ? config.netbeans or true # eg envim is using it
-
-# by default, compile with darwin support if we're compiling on darwin, but
-# allow this to be disabled by setting config.vim.darwin to false
-, darwinSupport    ? stdenv.isDarwin && (config.vim.darwin or true)
-
-# add .nix filetype detection and minimal syntax highlighting support
-, ftNixSupport     ? config.vim.ftNix or true
-
-, ... }: with args;
-
-let tag = "20140827";
-    sha256 = "0ncgbcm23z25naicxqkblz0mcl1zar2qwgi37y5ar8q8884w9ml2";
-in {
-
-  name = "qvim-7.4." + tag;
-
-  enableParallelBuilding = true; # test this
-
-  src = fetchgit {
-    url = "https://bitbucket.org/equalsraf/vim-qt.git";
-    rev = "refs/tags/package-" + tag;
-    inherit sha256;
-  };
-
-  # FIXME: adopt Darwin fixes from vim/default.nix, then chage meta.platforms.linux
-  # to meta.platforms.unix
-  preConfigure = assert (! stdenv.isDarwin); "";
-
-  configureFlags = [
-    "--with-vim-name=qvim"
-    "--enable-gui=qt"
-    "--with-features=${features}"
-    "--disable-xsmp"
-    "--disable-xsmp_interact"
-    "--disable-workshop"          # Sun Visual Workshop support
-    "--disable-sniff"             # Sniff interface
-    "--disable-hangulinput"       # Hangul input support
-    "--disable-fontset"           # X fontset output support
-    "--disable-acl"               # ACL support
-    "--disable-gpm"               # GPM (Linux mouse daemon)
-    "--disable-mzscheme"
-  ]
-  ++ stdenv.lib.optionals luaSupport [
-    "--with-lua-prefix=${lua}"
-    "--enable-luainterp"
-  ]
-  ++ stdenv.lib.optional pythonSupport      "--enable-pythoninterp"
-  ++ stdenv.lib.optional (pythonSupport && stdenv.isDarwin) "--with-python-config-dir=${python}/lib"
-  ++ stdenv.lib.optional nlsSupport         "--enable-nls"
-  ++ stdenv.lib.optional perlSupport        "--enable-perlinterp"
-  ++ stdenv.lib.optional rubySupport        "--enable-rubyinterp"
-  ++ stdenv.lib.optional tclSupport         "--enable-tcl"
-  ++ stdenv.lib.optional multibyteSupport   "--enable-multibyte"
-  ++ stdenv.lib.optional darwinSupport      "--enable-darwin"
-  ++ stdenv.lib.optional cscopeSupport      "--enable-cscope";
-
-  nativeBuildInputs = [ ncurses pkgconfig libX11 libXext libSM libXpm libXt libXaw
-    libXau libXmu libICE qt4
-  ]
-  ++ stdenv.lib.optional nlsSupport gettext
-  ++ stdenv.lib.optional perlSupport perl
-  ++ stdenv.lib.optional pythonSupport python
-  ++ stdenv.lib.optional tclSupport tcl
-  ++ stdenv.lib.optional rubySupport ruby
-  ++ stdenv.lib.optional luaSupport lua
-  ;
-
-  postPatch = ''
-  '' + stdenv.lib.optionalString ftNixSupport ''
-    # because we cd to src in the main patch phase, we can't just add this
-    # patch to the list, we have to apply it manually
-    cd runtime
-    patch -p2 < ${./ft-nix-support.patch}
-    cd ..
-  '';
-
-  postInstall = stdenv.lib.optionalString stdenv.isLinux ''
-    rpath=`patchelf --print-rpath $out/bin/qvim`;
-    for i in $nativeBuildInputs; do
-      echo adding $i/lib
-      rpath=$rpath:$i/lib
-    done
-    echo $nativeBuildInputs
-    echo $rpath
-    patchelf --set-rpath $rpath $out/bin/qvim
-  '';
-
-  dontStrip = 1;
-
-  meta = with stdenv.lib; {
-    description = "The most popular clone of the VI editor (Qt GUI fork)";
-    homepage    = "https://bitbucket.org/equalsraf/vim-qt/wiki/Home";
-    license = licenses.vim;
-    maintainers = with maintainers; [ smironov ttuegel ];
-    platforms   = platforms.linux;
-  };
-}
-
diff --git a/pkgs/applications/editors/viw/default.nix b/pkgs/applications/editors/viw/default.nix
new file mode 100644
index 00000000000..4025bf252b3
--- /dev/null
+++ b/pkgs/applications/editors/viw/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+  pname = "viw";
+  version = "unstable-20171029";
+
+  src = fetchFromGitHub {
+    owner = "lpan";
+    repo = pname;
+    rev = "2cf317f6d82a6fa58f284074400297b6dc0f44c2";
+    sha256 = "0bnkh57v01zay6ggk0rbddaf75i48h8z06xsv33wfbjldclaljp1";
+  };
+
+  buildInputs = [ ncurses ];
+
+  makeFlags = [ "CC=cc" ];
+  checkFlags = [ "test-command" "test-buffer" "test-state" ];
+
+  installPhase = ''
+    install -Dm 755 -t $out/bin viw
+    install -Dm 644 -t $out/share/doc/${pname} README.md
+  '';
+
+  meta = with stdenv.lib; {
+    description = "VI Worsened, a fun and light clone of VI";
+    homepage = "https://github.com/lpan/viw";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/pkgs/applications/editors/vscode/generic.nix b/pkgs/applications/editors/vscode/generic.nix
index 38d695bd74a..57bd73d6019 100644
--- a/pkgs/applications/editors/vscode/generic.nix
+++ b/pkgs/applications/editors/vscode/generic.nix
@@ -62,7 +62,7 @@ in
       else [ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages)
         ++ [ libsecret libXScrnSaver ];
 
-    runtimeDependencies = lib.optional (stdenv.isLinux) [ systemd.lib fontconfig.lib ];
+    runtimeDependencies = lib.optional (stdenv.isLinux) [ (lib.getLib systemd) fontconfig.lib ];
 
     nativeBuildInputs = lib.optional (!stdenv.isDarwin) autoPatchelfHook;
 
diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix
index 968cc69d92d..bedc8c60c70 100644
--- a/pkgs/applications/editors/vscode/vscode.nix
+++ b/pkgs/applications/editors/vscode/vscode.nix
@@ -11,8 +11,8 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "1c8gi2001p2f0zc165cqwwf9f8ls34fgg040qn9l08za7djb9hyv";
-    x86_64-darwin = "06n17s3qa2jkmg5qx3zvshz6rvdx33dhxn65j0x5mi62dv93gjgg";
+    x86_64-linux = "1i4vq8a81jgshn9iqkj8rp0yqihq2bjim27c8sh4vl9d6a8a6vcr";
+    x86_64-darwin = "090xj8pq3fdn7dcfrzvgvx906k6gs2xm04xkymz8vpm3a4rq1svn";
   }.${system};
 in
   callPackage ./generic.nix rec {
@@ -21,7 +21,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.46.1";
+    version = "1.48.2";
     pname = "vscode";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix
index cc0c73b73e9..5039fa4707c 100644
--- a/pkgs/applications/editors/vscode/vscodium.nix
+++ b/pkgs/applications/editors/vscode/vscodium.nix
@@ -11,8 +11,8 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "0l9sg2d0657k9dacy7k2jn8z07z50v8d1czgy4bkzbrj9vz7c6a7";
-    x86_64-darwin = "0mnq0ykahwfrgs28rdy1jl366qyclipsr3apnmhym1xsylk0mpfx";
+    x86_64-linux = "17frdyli375l20mb7sb5bmw000p9cplj4pagmhnb6nibi9wqypdx";
+    x86_64-darwin = "1dh5k36fjdfwhidlsg1grjwy3s9jik3pg6xpdgi6946vzqv1vxll";
   }.${system};
 
   sourceRoot = {
@@ -27,7 +27,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.46.1";
+    version = "1.48.2";
     pname = "vscodium";
 
     executableName = "codium";
diff --git a/pkgs/applications/editors/xxe-pe/default.nix b/pkgs/applications/editors/xxe-pe/default.nix
new file mode 100644
index 00000000000..e7cfe6284e3
--- /dev/null
+++ b/pkgs/applications/editors/xxe-pe/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, fetchurl
+, lib
+, unzip
+, makeWrapper
+, openjdk11
+, makeDesktopItem
+, icoutils
+, config
+, acceptLicense ? config.xxe-pe.acceptLicense or false
+}:
+
+let
+  pkg_path = "$out/lib/xxe";
+
+  desktopItem = makeDesktopItem {
+    name = "XMLmind XML Editor Personal Edition";
+    exec = "xxe";
+    icon = "xxe";
+    desktopName = "xxe";
+    genericName = "XML Editor";
+    categories = "Development;IDE;TextEditor;Java";
+  };
+in
+stdenv.mkDerivation rec {
+  pname = "xxe-pe";
+  version = "9.4.0";
+
+  src =
+    assert !acceptLicense -> throw ''
+      You must accept the XMLmind XML Editor Personal Edition License at
+      https://www.xmlmind.com/xmleditor/license_xxe_perso.html
+      by setting nixpkgs config option `xxe-pe.acceptLicense = true;`
+      or by using `xxe-pe.override { acceptLicense = true; }` package.
+    '';
+      fetchurl {
+        url = "https://www.xmlmind.com/xmleditor/_download/xxe-perso-${builtins.replaceStrings [ "." ] [ "_" ] version}.zip";
+        sha256 = "FKPdf9cOpgm/WG2i8bFnR6MmEifpiq5ykw2zHA8HnT8=";
+      };
+
+  nativeBuildInputs = [
+    unzip
+    makeWrapper
+    icoutils
+  ];
+
+  dontStrip = true;
+
+  installPhase = ''
+    mkdir -p "${pkg_path}"
+    mkdir -p "${pkg_path}" "$out/share/applications"
+    cp -a * "${pkg_path}"
+    ln -s ${desktopItem}/share/applications/* $out/share/applications
+
+    icotool -x "${pkg_path}/bin/icon/xxe.ico"
+    ls
+    for f in xxe_*.png; do
+      res=$(basename "$f" ".png" | cut -d"_" -f3 | cut -d"x" -f1-2)
+      mkdir -pv "$out/share/icons/hicolor/$res/apps"
+      mv "$f" "$out/share/icons/hicolor/$res/apps/xxe.png"
+    done;
+  '';
+
+  postFixup = ''
+    mkdir -p "$out/bin"
+    makeWrapper "${pkg_path}/bin/xxe" "$out/bin/xxe" \
+      --prefix PATH : ${lib.makeBinPath [ openjdk11 ]}
+  '';
+
+  meta = with lib; {
+    description = "Strictly validating, near WYSIWYG, XML editor with DocBook support";
+    homepage = "https://www.xmlmind.com/xmleditor/";
+    license = licenses.unfree;
+    maintainers = [ maintainers.jtojnar ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/gis/gmt/dcw.nix b/pkgs/applications/gis/gmt/dcw.nix
new file mode 100644
index 00000000000..58390e89290
--- /dev/null
+++ b/pkgs/applications/gis/gmt/dcw.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "dcw-gmt";
+  version = "1.1.4";
+  src = fetchurl {
+    url = "ftp://ftp.soest.hawaii.edu/gmt/dcw-gmt-${version}.tar.gz";
+    sha256 = "8d47402abcd7f54a0f711365cd022e4eaea7da324edac83611ca035ea443aad3";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/dcw-gmt
+    cp -rv ./* $out/share/dcw-gmt
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://www.soest.hawaii.edu/pwessel/dcw/";
+    description = "Vector basemap of the world, for use with GMT";
+    longDescription = ''
+      DCW-GMT is an enhancement to the original 1:1,000,000 scale vector basemap
+      of the world, available from the Princeton University Digital Map and
+      Geospatial Information Center. It contains more state boundaries (the
+      largest 8 countries are now represented) than the original data
+      source. Information about DCW can be found on Wikipedia
+      (https://en.wikipedia.org/wiki/Digital_Chart_of_the_World). This data is
+      for use by GMT, the Generic Mapping Tools.
+    '';
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ tviti ];
+  };
+
+}
diff --git a/pkgs/applications/gis/gmt/default.nix b/pkgs/applications/gis/gmt/default.nix
new file mode 100644
index 00000000000..f045ec067fe
--- /dev/null
+++ b/pkgs/applications/gis/gmt/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, fetchurl, cmake, curl, Accelerate, CoreGraphics, CoreVideo
+, fftwSinglePrec, netcdf, pcre, gdal, blas, lapack, glibc, ghostscript, dcw-gmt
+, gshhg-gmt }:
+
+/* The onus is on the user to also install:
+    - ffmpeg for webm or mp4 output
+    - graphicsmagick for gif output
+*/
+
+stdenv.mkDerivation rec {
+  pname = "gmt";
+  version = "6.1.1";
+  src = fetchurl {
+    url = "https://github.com/GenericMappingTools/gmt/releases/download/${version}/gmt-${version}-src.tar.gz";
+    sha256 = "04mdxxcild56jhg9ax522xh78v1wl1x8iqv2f6wv32x9b2lgy1lp";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ curl gdal netcdf pcre dcw-gmt gshhg-gmt ]
+    ++ (if stdenv.isDarwin then [
+      Accelerate
+      CoreGraphics
+      CoreVideo
+    ] else [
+      glibc
+      fftwSinglePrec
+      blas
+      lapack
+    ]);
+
+  propagatedBuildInputs = [ ghostscript ];
+
+  cmakeFlags = [
+    "-DGMT_DOCDIR=share/doc/gmt"
+    "-DGMT_MANDIR=share/man"
+    "-DGMT_LIBDIR=lib"
+    "-DCOPY_GSHHG:BOOL=FALSE"
+    "-DGSHHG_ROOT=${gshhg-gmt.out}/share/gshhg-gmt"
+    "-DCOPY_DCW:BOOL=FALSE"
+    "-DDCW_ROOT=${dcw-gmt.out}/share/dcw-gmt"
+    "-DGDAL_ROOT=${gdal.out}"
+    "-DNETCDF_ROOT=${netcdf.out}"
+    "-DPCRE_ROOT=${pcre.out}"
+    "-DGMT_INSTALL_TRADITIONAL_FOLDERNAMES:BOOL=FALSE"
+    "-DGMT_ENABLE_OPENMP:BOOL=TRUE"
+    "-DGMT_INSTALL_MODULE_LINKS:BOOL=FALSE"
+    "-DLICENSE_RESTRICTED=LGPL" # "GPL" and "no" also valid
+  ] ++ (with stdenv;
+    lib.optional (!isDarwin) [
+      "-DFFTW3_ROOT=${fftwSinglePrec.dev}"
+      "-DLAPACK_LIBRARY=${lapack}/lib/liblapack.so"
+      "-DBLAS_LIBRARY=${blas}/lib/libblas.so"
+    ]);
+
+  meta = with stdenv.lib; {
+    homepage = "https://www.generic-mapping-tools.org";
+    description = "Tools for manipulating geographic and cartesian data sets";
+    longDescription = ''
+      GMT is an open-source collection of command-line tools for manipulating
+      geographic and Cartesian data sets (including filtering, trend fitting,
+      gridding, projecting, etc.) and producing high-quality illustrations
+      ranging from simple x–y plots via contour maps to artificially illuminated
+      surfaces and 3D perspective views. It supports many map projections and
+      transformations and includes supporting data such as coastlines, rivers,
+      and political boundaries and optionally country polygons.
+    '';
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ tviti ];
+  };
+
+}
diff --git a/pkgs/applications/gis/gmt/gshhg.nix b/pkgs/applications/gis/gmt/gshhg.nix
new file mode 100644
index 00000000000..0f22f87c89b
--- /dev/null
+++ b/pkgs/applications/gis/gmt/gshhg.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "gshhg-gmt";
+  version = "2.3.7";
+  src = fetchurl {
+    url = "ftp://ftp.soest.hawaii.edu/gmt/gshhg-gmt-${version}.tar.gz";
+    sha256 = "9bb1a956fca0718c083bef842e625797535a00ce81f175df08b042c2a92cfe7f";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/gshhg-gmt
+    cp -rv ./* $out/share/gshhg-gmt
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://www.soest.hawaii.edu/pwessel/gshhg/";
+    description = "High-resolution shoreline data set, for use with GMT";
+    longDescription = ''
+      GSHHG is a high-resolution shoreline data set amalgamated from two
+      databases: Global Self-consistent Hierarchical High-resolution Shorelines
+      (GSHHS) and CIA World Data Bank II (WDBII). GSHHG contains vector
+      descriptions at five different resolutions of land outlines, lakes,
+      rivers, and political boundaries. This data is for use by GMT, the Generic
+      Mapping Tools.
+    '';
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ tviti ];
+  };
+
+}
diff --git a/pkgs/applications/gis/openorienteering-mapper/default.nix b/pkgs/applications/gis/openorienteering-mapper/default.nix
index 39f8694dd17..540fa271897 100644
--- a/pkgs/applications/gis/openorienteering-mapper/default.nix
+++ b/pkgs/applications/gis/openorienteering-mapper/default.nix
@@ -56,8 +56,6 @@ mkDerivation rec {
     "-DLICENSING_PROVIDER:BOOL=OFF"
     "-DMapper_MANUAL_QTHELP:BOOL=OFF"
   ] ++ stdenv.lib.optionals stdenv.isDarwin [
-    # Usually enabled on Darwin
-    "-DCMAKE_FIND_FRAMEWORK=never"
     # FindGDAL is broken and always finds /Library/Framework unless this is
     # specified
     "-DGDAL_INCLUDE_DIR=${gdal}/include"
diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix
index 72e84620252..130c0af6ee2 100644
--- a/pkgs/applications/gis/qgis/unwrapped.nix
+++ b/pkgs/applications/gis/qgis/unwrapped.nix
@@ -10,7 +10,7 @@ let
     [ qscintilla-qt5 gdal jinja2 numpy psycopg2
       chardet dateutil pyyaml pytz requests urllib3 pygments pyqt5 sip owslib six ];
 in mkDerivation rec {
-  version = "3.10.7";
+  version = "3.10.9";
   pname = "qgis";
   name = "${pname}-unwrapped-${version}";
 
@@ -18,7 +18,7 @@ in mkDerivation rec {
     owner = "qgis";
     repo = "QGIS";
     rev = "final-${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "0z593n5g3zwhlzhs0z7nlpblz6z2rl3y7y3j1wf1rdx76i8p3qgf";
+    sha256 = "0d646hvrhhgsw789qc2g3iblmsvr64qh15jck1jkaljzrj3qbml6";
   };
 
   passthru = {
diff --git a/pkgs/applications/gis/saga/default.nix b/pkgs/applications/gis/saga/default.nix
index 053272b1efa..716972342ed 100644
--- a/pkgs/applications/gis/saga/default.nix
+++ b/pkgs/applications/gis/saga/default.nix
@@ -1,27 +1,90 @@
-{ stdenv, fetchurl, gdal, wxGTK30, proj, libiodbc, lzma,
-  libharu, opencv2, vigra, postgresql, Cocoa,
-  unixODBC , poppler, hdf4, hdf5, netcdf, sqlite, qhull, giflib }:
+{ stdenv
+, fetchurl
+# native
+, autoreconfHook
+, pkg-config
+# not native
+, gdal
+, wxGTK31-gtk3
+, proj_5
+, dxflib
+, curl
+, libiodbc
+, lzma
+, libharu
+, opencv
+, vigra
+, postgresql
+, Cocoa
+, unixODBC
+, poppler
+, hdf4
+, hdf5
+, netcdf
+, sqlite
+, qhull
+, giflib
+, libsvm
+, fftw
+}:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "saga";
-  version = "7.6.3";
+  version = "7.7.0";
 
+  src = fetchurl {
+    url = "https://sourceforge.net/projects/saga-gis/files/SAGA%20-%20${stdenv.lib.versions.major version}/SAGA%20-%20${version}/saga-${version}.tar.gz";
+    sha256 = "1nmvrlcpcm2pas9pnav13iydnym9d8yqqnwq47lm0j6b0a2wy9zk";
+  };
+
+  nativeBuildInputs = [
+    # Upstream's gnerated ./configure is not reliable
+    autoreconfHook
+    pkg-config
+  ];
+  configureFlags = [
+    "--with-system-svm"
+    # hdf is no detected otherwise
+    "HDF5_LIBS=-l${hdf5}/lib"
+    "HDF5_CFLAGS=-I${hdf5.dev}/include"
+  ];
+  buildInputs = [
+    curl
+    dxflib
+    fftw
+    libsvm
+    hdf5
+    gdal
+    wxGTK31-gtk3
+    proj_5
+    libharu
+    opencv
+    vigra
+    postgresql
+    libiodbc
+    lzma
+    qhull
+    giflib
+  ]
   # See https://groups.google.com/forum/#!topic/nix-devel/h_vSzEJAPXs
   # for why the have additional buildInputs on darwin
-  buildInputs = [ gdal wxGTK30 proj libharu opencv2 vigra postgresql libiodbc lzma
-                  qhull giflib ]
-                ++ stdenv.lib.optionals stdenv.isDarwin
-                  [ Cocoa unixODBC poppler hdf4.out hdf5 netcdf sqlite ];
+  ++ stdenv.lib.optionals stdenv.isDarwin [
+    Cocoa
+    unixODBC
+    poppler
+    netcdf
+    sqlite
+  ];
+
+  patches = [
+    # See https://sourceforge.net/p/saga-gis/bugs/280/
+    ./opencv4.patch
+  ];
 
   enableParallelBuilding = true;
 
   CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isClang "-std=c++11 -Wno-narrowing";
 
-  src = fetchurl {
-    url = "https://sourceforge.net/projects/saga-gis/files/SAGA%20-%207/SAGA%20-%207.6.3/saga-7.6.3.tar.gz";
-    sha256 = "0f1qy2y929gd9y7h45bkv9x71xapbzyn06v6wqivjaiydsi1qycb";
-  };
-
   meta = with stdenv.lib; {
     description = "System for Automated Geoscientific Analyses";
     homepage = "http://www.saga-gis.org";
diff --git a/pkgs/applications/gis/saga/opencv4.patch b/pkgs/applications/gis/saga/opencv4.patch
new file mode 100644
index 00000000000..0b26192bf09
--- /dev/null
+++ b/pkgs/applications/gis/saga/opencv4.patch
@@ -0,0 +1,14 @@
+--- a/src/tools/imagery/imagery_opencv/Makefile.am
++++ b/src/tools/imagery/imagery_opencv/Makefile.am
+@@ -7,9 +7,9 @@
+ 
+ if HAVE_CV
+ DEF_SAGA           = -D_SAGA_LINUX -D_TYPEDEF_BYTE -D_TYPEDEF_WORD
+-CXX_INCS           = -I$(top_srcdir)/src/saga_core -I/usr/include/opencv
++CXX_INCS           = -I$(top_srcdir)/src/saga_core `pkg-config opencv4 --cflags`
+ AM_CXXFLAGS        = -fPIC $(CXX_INCS) $(DEF_SAGA) $(DBGFLAGS) $(GOMPFLAGS)
+-AM_LDFLAGS         = -fPIC -shared -avoid-version `pkg-config opencv --libs`
++AM_LDFLAGS         = -fPIC -shared -avoid-version `pkg-config opencv4 --libs`
+ pkglib_LTLIBRARIES = libimagery_opencv.la
+ libimagery_opencv_la_SOURCES =\
+ MLB_Interface.cpp\
diff --git a/pkgs/applications/gis/whitebox-tools/default.nix b/pkgs/applications/gis/whitebox-tools/default.nix
index c26243c0c59..0ac19c0d133 100644
--- a/pkgs/applications/gis/whitebox-tools/default.nix
+++ b/pkgs/applications/gis/whitebox-tools/default.nix
@@ -19,6 +19,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://jblindsay.github.io/ghrg/WhiteboxTools/index.html";
     license = licenses.mit;
     maintainers = [ maintainers.mpickering ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/graphics/ImageMagick/7.0.nix b/pkgs/applications/graphics/ImageMagick/7.0.nix
index 9bcf517e1d9..e7abc94a426 100644
--- a/pkgs/applications/graphics/ImageMagick/7.0.nix
+++ b/pkgs/applications/graphics/ImageMagick/7.0.nix
@@ -13,8 +13,8 @@ let
     else throw "ImageMagick is not supported on this platform.";
 
   cfg = {
-    version = "7.0.10-17";
-    sha256 = "15cj9qkikx13j6gfqaawi4nh09lnzg3asf5mdcswx6z6yhbf90zx";
+    version = "7.0.10-27";
+    sha256 = "1fqwbg2ws6ix3bymx7ncb4k4f6bg8q44n9xnlvngjapflnrmhcph";
     patches = [];
   };
 in
diff --git a/pkgs/applications/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix
index b021c186b5c..71c2de08a56 100644
--- a/pkgs/applications/graphics/darktable/default.nix
+++ b/pkgs/applications/graphics/darktable/default.nix
@@ -7,12 +7,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.0.2";
+  version = "3.2.1";
   pname = "darktable";
 
   src = fetchurl {
     url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
-    sha256 = "1yrnkw8c47kmy2x6m1xp69hwyk02xyc8pd9kvcmyj54lzrhzdfka";
+    sha256 = "035rvqmw386hm0jpi14lf4dnpr5rjkalzjkyprqh42nwi3m86dkf";
   };
 
   nativeBuildInputs = [ cmake ninja llvm pkgconfig intltool perl desktop-file-utils wrapGAppsHook ];
@@ -34,8 +34,6 @@ stdenv.mkDerivation rec {
     "-DUSE_KWALLET=OFF"
   ];
 
-  # Reduce the risk of collisions
-  postInstall = "rm -r $out/share/doc";
 
   # darktable changed its rpath handling in commit
   # 83c70b876af6484506901e6b381304ae0d073d3c and as a result the
@@ -45,6 +43,10 @@ stdenv.mkDerivation rec {
     libPathEnvVar = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH";
     libPathPrefix = "$out/lib/darktable" + stdenv.lib.optionalString stdenv.isLinux ":${ocl-icd}/lib";
   in ''
+    for f in $out/share/darktable/kernels/*.cl; do
+      sed -r "s|#include \"(.*)\"|#include \"$out/share/darktable/kernels/\1\"|g" -i "$f"
+    done
+
     gappsWrapperArgs+=(
       --prefix ${libPathEnvVar} ":" "${libPathPrefix}"
     )
diff --git a/pkgs/applications/graphics/digikam/default.nix b/pkgs/applications/graphics/digikam/default.nix
index 63b8d7b3f60..b2a03965601 100644
--- a/pkgs/applications/graphics/digikam/default.nix
+++ b/pkgs/applications/graphics/digikam/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitHub, cmake, doxygen, extra-cmake-modules, wrapGAppsHook
+{ mkDerivation, lib, fetchurl, cmake, doxygen, extra-cmake-modules, wrapGAppsHook
 
 # For `digitaglinktree`
 , perl, sqlite
@@ -33,7 +33,6 @@
 , libkipi
 , libksane
 , liblqr1
-, libqtav
 , libusb1
 , marble
 , libGL
@@ -52,13 +51,11 @@
 
 mkDerivation rec {
   pname   = "digikam";
-  version = "6.2.0";
+  version = "6.4.0";
 
-  src = fetchFromGitHub {
-    owner  = "KDE";
-    repo   = "digikam";
-    rev    = "v${version}";
-    sha256 = "1l1nb1nwicmip2jxhn5gzr7h60igvns0zs3kzp36r6qf4wvg3v2z";
+  src = fetchurl {
+    url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.xz";
+    sha256 = "0vwd97zkxv30y8x0z76s4fsj4w9ysgsmpjclp2h2bpava7zi4l3p";
   };
 
   nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ];
@@ -76,7 +73,6 @@ mkDerivation rec {
     libkipi
     libksane
     liblqr1
-    libqtav
     libusb1
     libGL
     libGLU
diff --git a/pkgs/applications/graphics/draftsight/default.nix b/pkgs/applications/graphics/draftsight/default.nix
deleted file mode 100644
index ccd4fd660f7..00000000000
--- a/pkgs/applications/graphics/draftsight/default.nix
+++ /dev/null
@@ -1,88 +0,0 @@
-{ stdenv, fetchurl, dpkg, makeWrapper, gcc, libGLU, libGL, xdg_utils,
-  dbus, alsaLib, cups, fontconfig, glib, icu, libpng12,
-  xkeyboard_config, zlib, libxslt, libxml2, sqlite, orc,
-  libX11, libXcursor, libXrandr, libxcb, libXi, libSM, libICE,
-  libXrender, libXcomposite }:
-
-let version = "2018SP2"; in
-stdenv.mkDerivation {
-  pname = "draftsight";
-  inherit version;
-
-  nativeBuildInputs = [ dpkg makeWrapper ];
-
-  unpackPhase = ''
-    mkdir $out
-    mkdir $out/draftsight
-    dpkg -x $src $out/draftsight
-  '';
-
-  # Both executables and bundled libraries need patching to find their
-  # dependencies.  The makeWrapper & QT_XKB_CONFIG_ROOT is to
-  # alleviate "xkbcommon: ERROR: failed to add default include path
-  # /usr/share/X11/xkb" and "Qt: Failed to create XKB context!".
-  installPhase = ''
-    mkdir $out/bin
-    for exe in DraftSight dsHttpApiController dsHttpApiService FxCrashRptApp HelpGuide; do
-      echo "Patching $exe..."
-      patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-               --set-rpath $libPath:\$ORIGIN/../Libraries \
-               $out/draftsight/opt/dassault-systemes/DraftSight/Linux/$exe
-      makeWrapper $out/draftsight/opt/dassault-systemes/DraftSight/Linux/$exe \
-          $out/bin/$exe \
-          --prefix "QT_XKB_CONFIG_ROOT" ":" "${xkeyboard_config}/share/X11/xkb"
-    done
-    for lib in $out/draftsight/opt/dassault-systemes/DraftSight/Libraries/*.so*; do
-      # DraftSight ships with broken symlinks for some reason
-      if [ -f $(readlink -f $lib) ]
-      then
-        echo "Patching $lib..."
-        patchelf --set-rpath $libPath:\$ORIGIN/../Libraries $lib
-      else
-        echo "Ignoring broken link $lib"
-      fi
-    done
-    for lib in $out/draftsight/opt/dassault-systemes/DraftSight/APISDK/lib/cpp/*.so*; do
-      if [ -f $(readlink $lib) ]
-      then
-        echo "Patching $lib..."
-        chmod u+w $lib
-        patchelf --set-rpath $libPath:\$ORIGIN/../Libraries $lib
-      else
-        echo "Ignoring broken link $lib"
-      fi
-    done
-    # These libraries shouldn't really be here anyway:
-    find $out/draftsight/opt/dassault-systemes/DraftSight/APISDK/Samples/C++ \
-         -type d -name _lib | xargs rm -r
-  '';
-
-  # TODO: Figure out why HelpGuide segfaults at startup.
-
-  # This must be here for main window graphics to appear (without it
-  # it also gives the error: "QXcbIntegration: Cannot create platform
-  # OpenGL context, neither GLX nor EGL are enabled"). My guess is
-  # that it dlopen()'s libraries in paths removed by shrinking RPATH.
-  dontPatchELF = true;
-
-  src = fetchurl {
-    name = "draftSight.deb";
-    url = "http://dl-ak.solidworks.com/nonsecure/draftsight/${version}/draftSight.deb";
-    sha256 = "05lrvml0zkzqg0sj6sj2h8h66hxdmsw5fg9fwz923r1y8j48qxdx";
-  };
-
-  libPath = stdenv.lib.makeLibraryPath [ gcc.cc libGLU libGL xdg_utils
-    dbus alsaLib cups.lib fontconfig glib icu libpng12
-    xkeyboard_config zlib libxslt libxml2 sqlite orc libX11
-    libXcursor libXrandr libxcb libXi libSM libICE libXrender
-    libXcomposite ];
-
-  meta = with stdenv.lib; {
-    description = "2D design & drafting application, meant to be similar to AutoCAD";
-    longDescription = "Professional-grade 2D design and drafting solution from Dassault Systèmes that lets you create, edit, view and mark up any kind of 2D CAD drawing.";
-    homepage = "https://www.3ds.com/products-services/draftsight-cad-software/";
-    license = stdenv.lib.licenses.unfree;
-    maintainers = with maintainers; [ hodapp ];
-    platforms = [ "x86_64-linux" ];
-  };
-}
diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix
index b23c13f85b8..5d037bba5ba 100644
--- a/pkgs/applications/graphics/drawio/default.nix
+++ b/pkgs/applications/graphics/drawio/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "drawio";
-  version = "13.3.5";
+  version = "13.6.2";
 
   src = fetchurl {
     url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
-    sha256 = "16pds6sip90davrlrk17a7ms5nh1bs8js5i0hbci1l8gsfyx22i7";
+    sha256 = "17nahdv06d41vyqkcqflf652wjp410i3hn4rhlv5cnd3jcr5vgih";
   };
 
   nativeBuildInputs = [
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
   ];
 
   runtimeDependencies = [
-    systemd.lib
+    (lib.getLib systemd)
   ];
 
   dontBuild = true;
@@ -88,6 +88,7 @@ stdenv.mkDerivation rec {
     description = "A desktop application for creating diagrams";
     homepage = "https://about.draw.io/";
     license = licenses.asl20;
+    changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}";
     maintainers = with maintainers; [ danieldk ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/graphics/drawpile/default.nix b/pkgs/applications/graphics/drawpile/default.nix
index 0ffcb5cdb41..20e295c85e9 100644
--- a/pkgs/applications/graphics/drawpile/default.nix
+++ b/pkgs/applications/graphics/drawpile/default.nix
@@ -1,7 +1,8 @@
-{ lib
+{ stdenv
+, lib
 , mkDerivation
-, fetchurl
-, cmake
+, fetchFromGitHub
+, fetchpatch
 , extra-cmake-modules
 
 # common deps
@@ -9,6 +10,7 @@
 
 # client deps
 , qtbase
+, qtkeychain
 , qtmultimedia
 , qtsvg
 , qttools
@@ -23,6 +25,8 @@
 # optional server deps
 , libmicrohttpd
 , libsodium
+, withSystemd ? stdenv.isLinux
+, systemd ? null
 
 # options
 , buildClient ? true
@@ -35,11 +39,9 @@
 with lib;
 
 let
-  commonDeps = [
-    karchive
-  ];
   clientDeps = [
     qtbase
+    qtkeychain
     qtmultimedia
     qtsvg
     qttools
@@ -49,40 +51,57 @@ let
     libvpx # WebM video export
     miniupnpc # automatic port forwarding
   ];
+
   serverDeps = [
     # optional:
     libmicrohttpd # HTTP admin api
     libsodium # ext-auth support
-  ];
+  ] ++ optional withSystemd systemd;
+
   kisDeps = [
     qtx11extras
   ];
 
+  boolToFlag = bool:
+    if bool then "ON" else "OFF";
+
 in mkDerivation rec {
   pname = "drawpile";
   version = "2.1.17";
 
-  src = fetchurl {
-    url = "https://drawpile.net/files/src/drawpile-${version}.tar.gz";
-    sha256 = "11lhn1mymhqk9g5sh384xhj3qw8h9lv88pr768y9q6kg3sl7nzzf";
+  src = fetchFromGitHub {
+    owner = "drawpile";
+    repo = "drawpile";
+    rev = "${version}";
+    sha256 = "sha256-AFFY+FcY9ExAur13OoWR9285RZtBe6jnRIrwi5raiCM=";
   };
 
-  nativeBuildInputs = [
-    cmake
-    extra-cmake-modules
+  patches = [
+    # fix for libmicrohttpd 0.9.71
+    (fetchpatch {
+      url = "https://github.com/drawpile/Drawpile/commit/ed1a75deb113da2d1df91a28f557509c4897130e.diff";
+      sha256 = "sha256-54wabH5F3Hf+6vv9rpCwCRdhjSaUFtuF/mE1/U+CpOA=";
+      name = "mhdfix.patch"; })
+  ];
+
+  nativeBuildInputs = [ extra-cmake-modules ];
+
+  buildInputs = [
+    karchive
+  ]
+  ++ optionals buildClient      clientDeps
+  ++ optionals buildServer      serverDeps
+  ++ optionals enableKisTablet  kisDeps;
+
+  cmakeFlags = [
+    "-Wno-dev"
+    "-DINITSYS=systemd"
+    "-DCLIENT=${boolToFlag buildClient}"
+    "-DSERVER=${boolToFlag buildServer}"
+    "-DSERVERGUI=${boolToFlag buildServerGui}"
+    "-DTOOLS=${boolToFlag buildExtraTools}"
+    "-DKIS_TABLET=${boolToFlag enableKisTablet}"
   ];
-  buildInputs =
-    commonDeps ++
-    optionals buildClient      clientDeps ++
-    optionals buildServer      serverDeps ++
-    optionals enableKisTablet  kisDeps    ;
-
-  cmakeFlags =
-    optional (!buildClient    )  "-DCLIENT=off" ++
-    optional (!buildServer    )  "-DSERVER=off" ++
-    optional (!buildServerGui )  "-DSERVERGUI=off" ++
-    optional ( buildExtraTools)  "-DTOOLS=on" ++
-    optional ( enableKisTablet)  "-DKIS_TABLET=on";
 
   meta = {
     description = "A collaborative drawing program that allows multiple users to sketch on the same canvas simultaneously";
diff --git a/pkgs/applications/graphics/feh/default.nix b/pkgs/applications/graphics/feh/default.nix
index 4782d920148..82128f81353 100644
--- a/pkgs/applications/graphics/feh/default.nix
+++ b/pkgs/applications/graphics/feh/default.nix
@@ -7,11 +7,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "feh";
-  version = "3.4.1";
+  version = "3.5";
 
   src = fetchurl {
     url = "https://feh.finalrewind.org/${pname}-${version}.tar.bz2";
-    sha256 = "0yvvj1s7ayn0lwils582smwkmckdk0gij5c58g45n4xh981n693q";
+    sha256 = "07jklibpi4ig9pbdrwhllsfffxn2h8xf4ma36qii00w4hb69v3rq";
   };
 
   outputs = [ "out" "man" "doc" ];
diff --git a/pkgs/applications/graphics/fluxus/default.nix b/pkgs/applications/graphics/fluxus/default.nix
index a53eb806bcf..f560ad45c57 100644
--- a/pkgs/applications/graphics/fluxus/default.nix
+++ b/pkgs/applications/graphics/fluxus/default.nix
@@ -18,7 +18,7 @@
 , openal
 , openssl
 , racket
-, scons
+, sconsPackages
 , zlib
 }:
 let
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
     openssl.dev
     racket
   ];
-  nativeBuildInputs = [ scons.py2 ];
+  nativeBuildInputs = [ sconsPackages.scons_3_1_2 ];
 
   patches = [ ./fix-build.patch ];
   sconsFlags = [
diff --git a/pkgs/applications/graphics/fondo/default.nix b/pkgs/applications/graphics/fondo/default.nix
index cd0ee8e662b..e80fbee1b71 100644
--- a/pkgs/applications/graphics/fondo/default.nix
+++ b/pkgs/applications/graphics/fondo/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , vala
 , pkgconfig
@@ -57,7 +58,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/graphics/gcolor3/default.nix b/pkgs/applications/graphics/gcolor3/default.nix
index 1c1c6ba08ee..2962825e49b 100644
--- a/pkgs/applications/graphics/gcolor3/default.nix
+++ b/pkgs/applications/graphics/gcolor3/default.nix
@@ -1,31 +1,40 @@
-{ stdenv, fetchFromGitLab, meson, ninja, gettext, pkgconfig, libxml2, gtk3, hicolor-icon-theme, wrapGAppsHook
-, fetchpatch }:
+{ stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, gettext
+, pkg-config
+, libxml2
+, gtk3
+, libportal
+, wrapGAppsHook
+}:
 
-let
-  version = "2.3.1";
-in stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "gcolor3";
-  inherit version;
+  version = "2.4.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "gcolor3";
     rev = "v${version}";
-    sha256 = "10cfzlkflwkb7f51rnrxmgxpfryh1qzvqaydj6lffjq9zvnhigg7";
+    sha256 = "rHIAjk2m3Lkz11obgNZaapa1Zr2GDH7XzgzuAJmq+MU=";
   };
 
-  patches = [
-    # Remove useage of deprecrated G_PARAM_PRIVATE
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/World/gcolor3/commit/96612cdd6c2cc71e28eb97ee17956004a05e5140.patch";
-      sha256 = "134wv5x15bd7k0fjzifrddwssaq213sx2l38r3xw6x1j625qwzq9";
-    })
+  nativeBuildInputs = [
+    meson
+    ninja
+    gettext
+    pkg-config
+    libxml2 # xml-stripblanks preprocessing of GResource
+    wrapGAppsHook
   ];
 
-  nativeBuildInputs = [ meson ninja gettext pkgconfig libxml2 wrapGAppsHook ];
-
-  buildInputs = [ gtk3 hicolor-icon-theme ];
+  buildInputs = [
+    gtk3
+    libportal
+  ];
 
   postPatch = ''
     chmod +x meson_install.sh # patchShebangs requires executable file
@@ -34,7 +43,7 @@ in stdenv.mkDerivation {
 
   meta = with stdenv.lib; {
     description = "A simple color chooser written in GTK3";
-    homepage = "https://www.hjdskes.nl/projects/gcolor3/";
+    homepage = "https://gitlab.gnome.org/World/gcolor3";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ jtojnar ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/graphics/gimp/default.nix b/pkgs/applications/graphics/gimp/default.nix
index 9e448fa23a4..6ec15bf02ab 100644
--- a/pkgs/applications/graphics/gimp/default.nix
+++ b/pkgs/applications/graphics/gimp/default.nix
@@ -2,6 +2,7 @@
 , lib
 , fetchurl
 , substituteAll
+, autoreconfHook
 , pkgconfig
 , intltool
 , babl
@@ -28,9 +29,10 @@
 , ghostscript
 , aalib
 , shared-mime-info
-, python2Packages
+, python2
 , libexif
 , gettext
+, makeWrapper
 , xorg
 , glib-networking
 , libmypaint
@@ -47,7 +49,7 @@
 }:
 
 let
-  inherit (python2Packages) pygtk wrapPython python;
+  python = python2.withPackages (pp: [ pp.pygtk ]);
 in stdenv.mkDerivation rec {
   pname = "gimp";
   version = "2.10.20";
@@ -59,11 +61,25 @@ in stdenv.mkDerivation rec {
     sha256 = "4S+fh0saAHxCd7YKqB4LZzML5+YVPldJ6tg5uQL8ezw=";
   };
 
+  patches = [
+    # to remove compiler from the runtime closure, reference was retained via
+    # gimp --version --verbose output
+    (substituteAll {
+      src = ./remove-cc-reference.patch;
+      cc_version = stdenv.cc.cc.name;
+    })
+
+    # Use absolute paths instead of relying on PATH
+    # to make sure plug-ins are loaded by the correct interpreter.
+    ./hardcode-plugin-interpreters.patch
+  ];
+
   nativeBuildInputs = [
+    autoreconfHook # hardcode-plugin-interpreters.patch changes Makefile.am
     pkgconfig
     intltool
     gettext
-    wrapPython
+    makeWrapper
   ];
 
   buildInputs = [
@@ -97,7 +113,6 @@ in stdenv.mkDerivation rec {
     libwebp
     libheif
     python
-    pygtk
     libexif
     xorg.libXpm
     glib-networking
@@ -116,7 +131,20 @@ in stdenv.mkDerivation rec {
     gegl
   ];
 
-  pythonPath = [ pygtk ];
+  configureFlags = [
+    "--without-webkit" # old version is required
+    "--disable-check-update"
+    "--with-bug-report-url=https://github.com/NixOS/nixpkgs/issues/new"
+    "--with-icc-directory=/run/current-system/sw/share/color/icc"
+    # fix libdir in pc files (${exec_prefix} needs to be passed verbatim)
+    "--libdir=\${exec_prefix}/lib"
+  ];
+
+  enableParallelBuilding = true;
+
+  # on Darwin,
+  # test-eevl.c:64:36: error: initializer element is not a compile-time constant
+  doCheck = !stdenv.isDarwin;
 
   # Check if librsvg was built with --disable-pixbuf-loader.
   PKG_CONFIG_GDK_PIXBUF_2_0_GDK_PIXBUF_MODULEDIR = "${librsvg}/${gdk-pixbuf.moduleDir}";
@@ -126,19 +154,8 @@ in stdenv.mkDerivation rec {
     export GIO_EXTRA_MODULES="${glib-networking}/lib/gio/modules:$GIO_EXTRA_MODULES"
   '';
 
-  patches = [
-    # to remove compiler from the runtime closure, reference was retained via
-    # gimp --version --verbose output
-    (substituteAll {
-      src = ./remove-cc-reference.patch;
-      cc_version = stdenv.cc.cc.name;
-    })
-  ];
-
   postFixup = ''
-    wrapPythonProgramsIn $out/lib/gimp/${passthru.majorVersion}/plug-ins/
     wrapProgram $out/bin/gimp-${lib.versions.majorMinor version} \
-      --prefix PYTHONPATH : "$PYTHONPATH" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
   '';
 
@@ -153,21 +170,6 @@ in stdenv.mkDerivation rec {
     gtk = gtk2;
   };
 
-  configureFlags = [
-    "--without-webkit" # old version is required
-    "--disable-check-update"
-    "--with-bug-report-url=https://github.com/NixOS/nixpkgs/issues/new"
-    "--with-icc-directory=/run/current-system/sw/share/color/icc"
-    # fix libdir in pc files (${exec_prefix} needs to be passed verbatim)
-    "--libdir=\${exec_prefix}/lib"
-  ];
-
-  # on Darwin,
-  # test-eevl.c:64:36: error: initializer element is not a compile-time constant
-  doCheck = !stdenv.isDarwin;
-
-  enableParallelBuilding = true;
-
   meta = with lib; {
     description = "The GNU Image Manipulation Program";
     homepage = "https://www.gimp.org/";
diff --git a/pkgs/applications/graphics/gimp/hardcode-plugin-interpreters.patch b/pkgs/applications/graphics/gimp/hardcode-plugin-interpreters.patch
new file mode 100644
index 00000000000..1528404c31d
--- /dev/null
+++ b/pkgs/applications/graphics/gimp/hardcode-plugin-interpreters.patch
@@ -0,0 +1,11 @@
+--- a/plug-ins/pygimp/Makefile.am
++++ b/plug-ins/pygimp/Makefile.am
+@@ -157,7 +157,7 @@ install-interp-file:
+ 	echo 'python=$(PYBIN_PATH)' > '$(DESTDIR)$(pyinterpfile)'
+ 	echo 'python2=$(PYBIN_PATH)' >> '$(DESTDIR)$(pyinterpfile)'
+ 	echo '/usr/bin/python=$(PYBIN_PATH)' >> '$(DESTDIR)$(pyinterpfile)'
+-	echo ":Python:E::py::`basename $(PYTHON)`:" >> '$(DESTDIR)$(pyinterpfile)'
++	echo ":Python:E::py::$(PYTHON):" >> '$(DESTDIR)$(pyinterpfile)'
+ 
+ install-data-local: install-env-file install-interp-file
+ 
diff --git a/pkgs/applications/graphics/gnome-photos/default.nix b/pkgs/applications/graphics/gnome-photos/default.nix
index 8660f6f218e..337b8f4cba6 100644
--- a/pkgs/applications/graphics/gnome-photos/default.nix
+++ b/pkgs/applications/graphics/gnome-photos/default.nix
@@ -111,7 +111,7 @@ stdenv.mkDerivation rec {
     };
 
     tests = {
-      installed-tests = nixosTests.gnome-photos;
+      installed-tests = nixosTests.installed-tests.gnome-photos;
     };
   };
 
diff --git a/pkgs/applications/graphics/gscan2pdf/default.nix b/pkgs/applications/graphics/gscan2pdf/default.nix
index 352b6b900cc..2906026c48f 100644
--- a/pkgs/applications/graphics/gscan2pdf/default.nix
+++ b/pkgs/applications/graphics/gscan2pdf/default.nix
@@ -10,11 +10,11 @@ with stdenv.lib;
 
 perlPackages.buildPerlPackage rec {
   pname = "gscan2pdf";
-  version = "2.6.5";
+  version = "2.8.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/gscan2pdf/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0x8931i5zs4zl3iqjhlp7h8y6ssklxiqsddz5kh84nl3p0izbg0y";
+    sha256 = "00g2vw7lz3yb4nq358x8d3r4mf3hkrq2vw1g9lli27zdp5p6jja1";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
@@ -64,6 +64,7 @@ perlPackages.buildPerlPackage rec {
 
     # Add runtime dependencies
     wrapProgram "$out/bin/gscan2pdf" \
+      --prefix PATH : "${sane-backends}/bin" \
       --prefix PATH : "${imagemagick}/bin" \
       --prefix PATH : "${libtiff}/bin" \
       --prefix PATH : "${djvulibre}/bin" \
diff --git a/pkgs/applications/graphics/ideogram/default.nix b/pkgs/applications/graphics/ideogram/default.nix
index 4bf414cf8dd..9ae7ae2cb8c 100644
--- a/pkgs/applications/graphics/ideogram/default.nix
+++ b/pkgs/applications/graphics/ideogram/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , vala
 , pkgconfig
@@ -51,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/graphics/inkscape/0.x.nix b/pkgs/applications/graphics/inkscape/0.x.nix
new file mode 100644
index 00000000000..880ecfb9f0b
--- /dev/null
+++ b/pkgs/applications/graphics/inkscape/0.x.nix
@@ -0,0 +1,133 @@
+{ stdenv
+, boehmgc
+, boost
+, cairo
+, cmake
+, fetchpatch
+, fetchurl
+, gettext
+, glib
+, glibmm
+, gsl
+, gtkmm2
+, gtkspell2
+, imagemagick
+, lcms
+, libcdr
+, libexif
+, libpng
+, librevenge
+, librsvg
+, libsigcxx
+, libvisio
+, libwpg
+, libXft
+, libxml2
+, libxslt
+, makeWrapper
+, perlPackages
+, pkg-config
+, poppler
+, popt
+, potrace
+, python3
+, wrapGAppsHook
+, zlib
+}:
+let
+  python3Env = python3.withPackages
+    (ps: with ps; [
+      numpy
+      lxml
+      scour
+    ]);
+in
+stdenv.mkDerivation rec {
+  pname = "inkscape_0";
+  version = "0.92.5";
+
+  src = fetchurl {
+    url = "https://media.inkscape.org/dl/resources/file/inkscape-${version}.tar.bz2";
+    sha256 = "ge5/aeK9ZKlzQ9g5Wkp6eQWyG4YVZu1eXZF5F41Rmgs=";
+  };
+
+  # Inkscape hits the ARGMAX when linking on macOS. It appears to be
+  # CMake’s ARGMAX check doesn’t offer enough padding for NIX_LDFLAGS.
+  # Setting strictDeps it avoids duplicating some dependencies so it
+  # will leave us under ARGMAX.
+  strictDeps = true;
+
+  postPatch = ''
+    patchShebangs share/extensions
+    patchShebangs fix-roff-punct
+
+    # Python is used at run-time to execute scripts, e.g., those from
+    # the "Effects" menu.
+    substituteInPlace src/extension/implementation/script.cpp \
+      --replace '"python-interpreter", "python"' '"python-interpreter", "${python3Env}/bin/python"'
+  '';
+
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+    makeWrapper
+    python3Env
+    wrapGAppsHook
+  ] ++ (with perlPackages; [
+    perl
+    XMLParser
+  ]);
+
+  buildInputs = [
+    boehmgc
+    boost
+    gettext
+    glib
+    glibmm
+    gsl
+    gtkmm2
+    imagemagick
+    lcms
+    libcdr
+    libexif
+    libpng
+    librevenge
+    librsvg # for loading icons
+    libsigcxx
+    libvisio
+    libwpg
+    libXft
+    libxml2
+    libxslt
+    perlPackages.perl
+    poppler
+    popt
+    potrace
+    python3Env
+    zlib
+  ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [
+    gtkspell2
+  ] ++ stdenv.lib.optionals stdenv.isDarwin [
+    cairo
+  ];
+
+  # Make sure PyXML modules can be found at run-time.
+  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+    install_name_tool -change $out/lib/libinkscape_base.dylib $out/lib/inkscape/libinkscape_base.dylib $out/bin/inkscape
+    install_name_tool -change $out/lib/libinkscape_base.dylib $out/lib/inkscape/libinkscape_base.dylib $out/bin/inkview
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Legacy version of vector graphics editor";
+    homepage = "https://www.inkscape.org";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.jtojnar ];
+    platforms = platforms.all;
+    longDescription = ''
+      Inkscape is a feature-rich vector graphics editor that edits
+      files in the W3C SVG (Scalable Vector Graphics) file format.
+
+      If you want to import .eps files install ps2edit.
+    '';
+  };
+}
diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix
index e2f27e9a495..3f8b306acf8 100644
--- a/pkgs/applications/graphics/inkscape/default.nix
+++ b/pkgs/applications/graphics/inkscape/default.nix
@@ -3,14 +3,18 @@
 , boost
 , cairo
 , cmake
-, fetchpatch
+, double-conversion
 , fetchurl
 , gettext
+, gdl
 , glib
+, glib-networking
 , glibmm
 , gsl
-, gtkmm2
-, gtkspell2
+, gtk-mac-integration
+, gtkmm3
+, gtkspell3
+, gdk-pixbuf
 , imagemagick
 , lcms
 , libcdr
@@ -19,18 +23,20 @@
 , librevenge
 , librsvg
 , libsigcxx
+, libsoup
 , libvisio
 , libwpg
 , libXft
 , libxml2
 , libxslt
-, makeWrapper
+, ninja
 , perlPackages
 , pkg-config
 , poppler
 , popt
 , potrace
 , python3
+, substituteAll
 , wrapGAppsHook
 , zlib
 }:
@@ -44,11 +50,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "inkscape";
-  version = "0.92.5";
+  version = "1.0";
 
   src = fetchurl {
-    url = "https://media.inkscape.org/dl/resources/file/${pname}-${version}.tar.bz2";
-    sha256 = "02wsa66ifycibmgfsrhmhqdv41brg955lffq8drsjr5xw9lpzvl1";
+    url = "https://media.inkscape.org/dl/resources/file/${pname}-${version}.tar.xz";
+    sha256 = "1fwl7yjkykqb86555k4fm24inhc40mrvxqwgl2v2vi9alv8j7hc9";
   };
 
   # Inkscape hits the ARGMAX when linking on macOS. It appears to be
@@ -57,21 +63,28 @@ stdenv.mkDerivation rec {
   # will leave us under ARGMAX.
   strictDeps = true;
 
+  patches = [
+    (substituteAll {
+      src = ./fix-python-paths.patch;
+      # Python is used at run-time to execute scripts,
+      # e.g., those from the "Effects" menu.
+      python3 = "${python3Env}/bin/python";
+    })
+  ];
+
   postPatch = ''
     patchShebangs share/extensions
-    patchShebangs fix-roff-punct
-
-    # Python is used at run-time to execute scripts, e.g., those from
-    # the "Effects" menu.
-    substituteInPlace src/extension/implementation/script.cpp \
-      --replace '"python-interpreter", "python"' '"python-interpreter", "${python3Env}/bin/python"'
+    patchShebangs share/templates
+    patchShebangs man/fix-roff-punct
   '';
 
   nativeBuildInputs = [
     pkg-config
     cmake
-    makeWrapper
+    ninja
     python3Env
+    glib # for setup hook
+    gdk-pixbuf # for setup hook
     wrapGAppsHook
   ] ++ (with perlPackages; [
     perl
@@ -81,11 +94,14 @@ stdenv.mkDerivation rec {
   buildInputs = [
     boehmgc
     boost
+    double-conversion
+    gdl
     gettext
     glib
+    glib-networking
     glibmm
     gsl
-    gtkmm2
+    gtkmm3
     imagemagick
     lcms
     libcdr
@@ -94,6 +110,7 @@ stdenv.mkDerivation rec {
     librevenge
     librsvg # for loading icons
     libsigcxx
+    libsoup
     libvisio
     libwpg
     libXft
@@ -106,9 +123,10 @@ stdenv.mkDerivation rec {
     python3Env
     zlib
   ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [
-    gtkspell2
+    gtkspell3
   ] ++ stdenv.lib.optionals stdenv.isDarwin [
     cairo
+    gtk-mac-integration
   ];
 
   # Make sure PyXML modules can be found at run-time.
diff --git a/pkgs/applications/graphics/inkscape/fix-python-paths.patch b/pkgs/applications/graphics/inkscape/fix-python-paths.patch
new file mode 100644
index 00000000000..9428ade8863
--- /dev/null
+++ b/pkgs/applications/graphics/inkscape/fix-python-paths.patch
@@ -0,0 +1,15 @@
+--- a/src/extension/implementation/script.cpp
++++ b/src/extension/implementation/script.cpp
+@@ -77,10 +77,10 @@ const std::map<std::string, Script::inte
+         { "python",  {"python-interpreter",  {"pythonw"           }}},
+ #elif defined __APPLE__
+         { "perl",    {"perl-interpreter",    {"perl"              }}},
+-        { "python",  {"python-interpreter",  {"python3"           }}},
++        { "python",  {"python-interpreter",  {"@python3@"         }}},
+ #else
+         { "perl",    {"perl-interpreter",    {"perl"              }}},
+-        { "python",  {"python-interpreter",  {"python3", "python" }}},
++        { "python",  {"python-interpreter",  {"@python3@"         }}},
+ #endif
+         { "python2", {"python2-interpreter", {"python2", "python" }}},
+         { "ruby",    {"ruby-interpreter",    {"ruby"    }}},
diff --git a/pkgs/applications/graphics/krita/default.nix b/pkgs/applications/graphics/krita/default.nix
index f98edd1e8ae..95a3e1e0928 100644
--- a/pkgs/applications/graphics/krita/default.nix
+++ b/pkgs/applications/graphics/krita/default.nix
@@ -10,11 +10,11 @@
 
 mkDerivation rec {
   pname = "krita";
-  version = "4.2.9";
+  version = "4.3.0";
 
   src = fetchurl {
     url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0rvm9mpaq66lxyq4f09x9w6xxhgys0phza223hm5zv6kgn413xsf";
+    sha256 = "19qlpp9ds60bab73pwi64dq1zn4zn2hcdkrxhjr1j438mc4pflsd";
   };
 
   # *somtimes* fails with can't find ui_manager.h, also see https://github.com/NixOS/nixpkgs/issues/35359
diff --git a/pkgs/applications/graphics/lazpaint/default.nix b/pkgs/applications/graphics/lazpaint/default.nix
new file mode 100644
index 00000000000..d8ea4924318
--- /dev/null
+++ b/pkgs/applications/graphics/lazpaint/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchFromGitHub, lazarus, fpc, pango, cairo, glib
+, atk, gtk2, libX11, gdk-pixbuf, busybox, python3, makeWrapper }:
+
+with stdenv;
+
+let
+  bgrabitmap = fetchFromGitHub {
+    owner = "bgrabitmap";
+    repo = "bgrabitmap";
+    rev = "v11.1";
+    sha256 = "0bcmiiwly4a7w8p3m5iskzvk8rz87qhc0gcijrdvwg87cafd88gz";
+  };
+  bgracontrols = fetchFromGitHub {
+    owner = "bgrabitmap";
+    repo = "bgracontrols";
+    rev = "v6.7.2";
+    sha256 = "0cwxzv0rl6crkf6f67mvga5cn5pyhr6ksm8cqhpxjiqi937dnyxx";
+  };
+in stdenv.mkDerivation rec {
+  pname = "lazpaint";
+  version = "7.1.3";
+
+  src = fetchFromGitHub {
+    owner = "bgrabitmap";
+    repo = "lazpaint";
+    rev = "v${version}";
+    sha256 = "1sfb5hmhzscz3nv4cmc192jimkg70l4z3q3yxkivhw1hwwsv9cbg";
+  };
+
+  nativeBuildInputs = [ lazarus fpc makeWrapper ];
+
+  buildInputs = [ pango cairo glib atk gtk2 libX11 gdk-pixbuf ];
+
+  NIX_LDFLAGS = "--as-needed -rpath ${lib.makeLibraryPath buildInputs}";
+
+  buildPhase = ''
+    cp -r --no-preserve=mode ${bgrabitmap} bgrabitmap
+    cp -r --no-preserve=mode ${bgracontrols} bgracontrols
+
+    lazbuild --lazarusdir=${lazarus}/share/lazarus \
+      --build-mode=Release \
+      bgrabitmap/bgrabitmap/bgrabitmappack.lpk \
+      bgracontrols/bgracontrols.lpk \
+      lazpaintcontrols/lazpaintcontrols.lpk \
+      lazpaint/lazpaint.lpi
+  '';
+
+  installPhase = ''
+    # Reuse existing install script
+    cd lazpaint/release/debian
+    substituteInPlace makedeb.sh --replace "rm -rf" "ls"
+    patchShebangs ./makedeb.sh
+    PATH=$PATH:${busybox}/bin ./makedeb.sh
+    cp -r staging/usr $out
+
+    # Python is needed for scripts
+    makeWrapper $out/share/lazpaint/lazpaint $out/bin/lazpaint \
+      --prefix PATH : ${stdenv.lib.makeBinPath [ python3 ]}
+
+    substituteInPlace $out/share/applications/lazpaint.desktop \
+      --replace /usr/share/pixmaps/lazpaint.png $out/share/pixmaps/lazpaint.png \
+      --replace /usr/share/lazpaint/lazpaint $out/bin/lazpaint
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Image editor like PaintBrush or Paint.Net";
+    homepage = "https://sourceforge.net/projects/lazpaint/";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ gnidorah ];
+  };
+}
diff --git a/pkgs/applications/graphics/lightburn/default.nix b/pkgs/applications/graphics/lightburn/default.nix
new file mode 100644
index 00000000000..7fcec93446d
--- /dev/null
+++ b/pkgs/applications/graphics/lightburn/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, patchelf, fetchurl, p7zip
+, nss, nspr, libusb1
+, qtbase, qtmultimedia, qtserialport
+, autoPatchelfHook, wrapQtAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lightburn";
+  version = "0.9.16";
+
+  nativeBuildInputs = [
+    p7zip
+    autoPatchelfHook
+    wrapQtAppsHook
+  ];
+
+  src = fetchurl {
+    url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z";
+    sha256 = "0xmpglfzff3jpxbr304czsa24fbp497b69yd8kjkjdp2cd0l70qc";
+  };
+
+  buildInputs = [
+    nss nspr libusb1
+    qtbase qtmultimedia qtserialport
+  ];
+
+  # We nuke the vendored Qt5 libraries that LightBurn ships and instead use our
+  # own.
+  unpackPhase = ''
+    7z x $src
+    rm -rf LightBurn/lib LightBurn/plugins
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share $out/bin
+    cp -ar LightBurn $out/share/LightBurn
+    ln -s $out/share/LightBurn/LightBurn $out/bin
+
+    wrapQtApp $out/bin/LightBurn
+  '';
+
+  meta = {
+    description = "LightBurn is layout, editing, and control software for your laser cutter.";
+    homepage = "https://lightburnsoftware.com/";
+    license = stdenv.lib.licenses.unfree;
+    maintainers = with stdenv.lib.maintainers; [ q3k ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/graphics/mandelbulber/default.nix b/pkgs/applications/graphics/mandelbulber/default.nix
index 53d1c5c3f73..a3ab52ba871 100644
--- a/pkgs/applications/graphics/mandelbulber/default.nix
+++ b/pkgs/applications/graphics/mandelbulber/default.nix
@@ -19,13 +19,13 @@ assert withOpenCL -> ocl-icd != null;
 
 mkDerivation rec {
   pname = "mandelbulber";
-  version = "2.21";
+  version = "2.22";
 
   src = fetchFromGitHub {
     owner = "buddhi1980";
     repo = "mandelbulber2";
     rev = version;
-    sha256 = "1bmk71vbxc1n8cnizlmzfqlvgxjb95cydbzxlvq1s5givxr2jwli";
+    sha256 = "011y2nl0jakf29cxprjmj1ifqc9iva61q5f4kk47b03gq7jw8sl4";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/meshlab/default.nix b/pkgs/applications/graphics/meshlab/default.nix
index 6ac937dcb93..bde8999eb41 100644
--- a/pkgs/applications/graphics/meshlab/default.nix
+++ b/pkgs/applications/graphics/meshlab/default.nix
@@ -1,4 +1,6 @@
-{ mkDerivation, lib, fetchFromGitHub
+{ mkDerivation
+, lib
+, fetchFromGitHub
 , fetchpatch
 , libGLU
 , qtbase
@@ -7,112 +9,26 @@
 , lib3ds
 , bzip2
 , muparser
+, eigen
+, glew
+, gmp
 , levmar
+, qhull
+, cmake
 }:
 
-let
-  meshlabRev = "25f3d17b1d1d47ddc51179cb955f3027b7638745";
-  vcglibRev = "910da4c3e310f2e6557bd7a39c4f1529e61573e5";
-  # ^ this should be the latest commit in the vcglib devel branch at the time of the meshlab revision
-  # We keep it separate here instead of using the `vcg` nix package because
-  # as of writing, meshlab upstream does not seem to follow a proper
-  # release process, and the other dependencies of `vcg` may no longer
-  # work when we upgrade it for the purpose of meshlab.
+mkDerivation rec {
+  pname = "meshlab";
+  version = "2020.07";
 
-  # Unfixed upstream compile error; see
-  #     https://github.com/cnr-isti-vclab/meshlab/issues/188#issuecomment-364785362
-  # that has with fixed line endings.
-  import_bundle_out_patch = fetchpatch {
-    name = "import_bundle_out.patch";
-    url = "https://aur.archlinux.org/cgit/aur.git/plain/import_bundle_out.patch?h=meshlab-git&id=f7250ea818470f07dc9b86726407091d39c0be6f";
-    sha256 = "1g6nli15i3fjd6jsgkxvb33kzbcv67xjkc3jv9r51lrwlm1ifzxi";
+  src = fetchFromGitHub {
+    owner = "cnr-isti-vclab";
+    repo = "meshlab";
+    rev = "Meshlab-${version}";
+    sha256 = "0vj849b57zk3k6lx35zzcjhr9gdy4hxqnnkb8chwy7hw262cm3ri";
+    fetchSubmodules = true; # for vcglib
   };
 
-  # Reduces amount of vendored libraries, fixes `/linux` vs `linux-g++`
-  # directory name linker errors.
-  external_patch = fetchpatch {
-    name = "external.patch";
-    url = "https://aur.archlinux.org/cgit/aur.git/plain/external.patch?h=meshlab-git&id=f7250ea818470f07dc9b86726407091d39c0be6f";
-    sha256 = "1rxwkxhmxis1420rc1w7dg89gkmym68lpszsq6snl6dzpl3ingsb";
-  };
-  _3ds_patch = fetchpatch {
-    name = "3ds.patch";
-    url = "https://aur.archlinux.org/cgit/aur.git/plain/3ds.patch?h=meshlab-git&id=f7250ea818470f07dc9b86726407091d39c0be6f";
-    sha256 = "1w435b7p1ggi2bzib4yyszmk54drjgpbn8n9mnsk1slsxnp2vmg8";
-  };
-  muparser_patch = fetchpatch {
-    name = "muparser.patch";
-    url = "https://aur.archlinux.org/cgit/aur.git/plain/muparser.patch?h=meshlab-git&id=f7250ea818470f07dc9b86726407091d39c0be6f";
-    sha256 = "1sf7xqwc2j8xxdx2yklwifii9qqgknvx6ahk2hq76mg78ry1nzhq";
-  };
-
-in mkDerivation {
-  name = "meshlab-20190129-beta";
-
-  srcs =
-    [
-      (fetchFromGitHub {
-        owner = "cnr-isti-vclab";
-        repo = "meshlab";
-        rev = meshlabRev;
-        sha256 = "16d2i91hrxvrr5p0k33g3fzis9zp4gsy3n5y2nhafvsgdmaidiij";
-        name = "meshlab-${meshlabRev}";
-      })
-      (fetchFromGitHub {
-        owner = "cnr-isti-vclab";
-        repo = "vcglib";
-        rev = vcglibRev;
-        sha256 = "0xpnjpwpj57hgai184rzyk9lbq6d9vbjzr477dvl5nplpwa420m1";
-        name = "vcglib-${vcglibRev}";
-      })
-    ];
-
-  sourceRoot = "meshlab-${meshlabRev}";
-
-  # Meshlab is not format-security clean; without disabling hardening, we get:
-  #     ../../external/qhull-2003.1/src/io.c:2169:3: error: format not a string literal and no format arguments [-Werror=format-security]
-  #        fprintf(fp, endfmt);
-  #        ^~~~~~~
-  hardeningDisable = [ "format" ];
-
-  enableParallelBuilding = true;
-
-  prePatch =
-    ''
-      # MeshLab has ../vcglib hardcoded everywhere, so move the source dir
-      mv ../vcglib-${vcglibRev} ../vcglib
-
-      # Make all source files writable so that patches can be applied.
-      chmod -R u+w ..
-
-      patch -Np1 --directory=../vcglib -i ${import_bundle_out_patch}
-
-      patch -Np1 -i ${external_patch}
-      # Individual libraries
-      patch -Np1 -i ${_3ds_patch}
-      patch -Np1 -i ${muparser_patch}
-    ''
-    ;
-
-  buildPhase = ''
-    cd src
-    export NIX_LDFLAGS="-rpath $out/opt/meshlab $NIX_LDFLAGS"
-
-    pushd external
-    qmake -recursive $QMAKE_FLAGS external.pro
-    buildPhase
-    popd
-    qmake -recursive $QMAKE_FLAGS meshlab_full.pro
-    buildPhase
-  '';
-
-  installPhase = ''
-    mkdir -p $out/opt/meshlab $out/bin
-    cp -Rv distrib/* $out/opt/meshlab
-    ln -s $out/opt/meshlab/meshlab $out/bin/meshlab
-    ln -s $out/opt/meshlab/meshlabserver $out/bin/meshlabserver
-  '';
-
   buildInputs = [
     libGLU
     qtbase
@@ -121,14 +37,60 @@ in mkDerivation {
     lib3ds
     bzip2
     muparser
+    eigen
+    glew
+    gmp
     levmar
+    qhull
+  ];
+
+  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
+  '';
+
+  cmakeFlags = [
+    "-DALLOW_BUNDLED_EIGEN=OFF"
+    "-DALLOW_BUNDLED_GLEW=OFF"
+    "-DALLOW_BUNDLED_LIB3DS=OFF"
+    "-DALLOW_BUNDLED_MUPARSER=OFF"
+    "-DALLOW_BUNDLED_QHULL=OFF"
+    # disable when available in nixpkgs
+    "-DALLOW_BUNDLED_OPENCTM=ON"
+    "-DALLOW_BUNDLED_SSYNTH=ON"
+    # some plugins are disabled unless these are on
+    "-DALLOW_BUNDLED_NEWUOA=ON"
+    "-DALLOW_BUNDLED_LEVMAR=ON"
   ];
 
+  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" ];
+
+  enableParallelBuilding = true;
+
   meta = {
     description = "A system for processing and editing 3D triangular meshes.";
     homepage = "http://www.meshlab.net/";
     license = lib.licenses.gpl3;
-    maintainers = with lib.maintainers; [viric];
+    maintainers = with lib.maintainers; [ viric ];
     platforms = with lib.platforms; linux;
   };
 }
diff --git a/pkgs/applications/graphics/meshlab/meshlab.desktop b/pkgs/applications/graphics/meshlab/meshlab.desktop
new file mode 100644
index 00000000000..aa8de186440
--- /dev/null
+++ b/pkgs/applications/graphics/meshlab/meshlab.desktop
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Name=MeshLab
+Version=@version@
+Name[en_GB]=MeshLab
+GenericName=Mesh processing
+GenericName[en_GB]=Mesh processing
+Comment=View and process meshes
+Type=Application
+Exec=@out@/bin/meshlab %U
+TryExec=@out@/bin/meshlab
+Icon=@out@/share/icons/hicolor/meshlab.png
+Terminal=false
+MimeType=model/mesh;application/x-3ds;image/x-3ds;model/x-ply;application/sla;model/x-quad-object;model/x-geomview-off;application/x-cyclone-ptx;application/x-vmi;application/x-bre;model/vnd.collada+xml;model/openctm;application/x-expe-binary;application/x-expe-ascii;application/x-xyz;application/x-gts;chemical/x-pdb;application/x-tri;application/x-asc;model/x3d+xml;model/x3d+vrml;model/vrml;model/u3d;model/idtf;
+Categories=Graphics;3DGraphics;Viewer;Qt;
diff --git a/pkgs/applications/graphics/mypaint/default.nix b/pkgs/applications/graphics/mypaint/default.nix
index 5ebbee0e4d6..b4dd86c3726 100644
--- a/pkgs/applications/graphics/mypaint/default.nix
+++ b/pkgs/applications/graphics/mypaint/default.nix
@@ -1,7 +1,7 @@
 { stdenv
 , fetchFromGitHub
 , gtk3
-, intltool
+, gettext
 , json_c
 , lcms2
 , libpng
@@ -20,18 +20,18 @@ let
   inherit (python3.pkgs) pycairo pygobject3 numpy buildPythonApplication;
 in buildPythonApplication rec {
   pname = "mypaint";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "mypaint";
     repo = "mypaint";
     rev = "v${version}";
-    sha256 = "180kyilhf81ndhwl1hlvy82gh6hxpcvka2d1nkghbpgy431rls6r";
+    sha256 = "rVKcxzWZRLcuxK8xRyRgvitXAh4uOEyqHswLeTdA2Mk=";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [
-    intltool
+    gettext
     pkgconfig
     swig
     wrapGAppsHook
diff --git a/pkgs/applications/graphics/nomacs/default.nix b/pkgs/applications/graphics/nomacs/default.nix
index 67e95aec758..d23c02dbbdf 100644
--- a/pkgs/applications/graphics/nomacs/default.nix
+++ b/pkgs/applications/graphics/nomacs/default.nix
@@ -18,13 +18,13 @@
 
 mkDerivation rec {
   pname = "nomacs";
-  version = "3.14.2";
+  version = "3.17.2206";
 
   src = fetchFromGitHub {
     owner = "nomacs";
     repo = "nomacs";
     rev = version;
-    sha256 = "1vms13kyg7cpqi2hxvrrhlnl7cq92ijr7dm1kl5ryglpcagqv811";
+    sha256 = "1bq7bv4p7w67172y893lvpk90d6fgdpnylynbj2kn8m2hs6khya4";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/graphics/odafileconverter/default.nix b/pkgs/applications/graphics/odafileconverter/default.nix
new file mode 100644
index 00000000000..0378c4db13b
--- /dev/null
+++ b/pkgs/applications/graphics/odafileconverter/default.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv, mkDerivation, dpkg, fetchurl, qtbase }:
+
+let
+  # To obtain the version you will need to run the following command:
+  #
+  # dpkg-deb -I ${odafileconverter.src} | grep Version
+  version = "21.7.0.0";
+  rpath = "$ORIGIN:${lib.makeLibraryPath [ stdenv.cc.cc qtbase ]}";
+
+in mkDerivation {
+  pname = "oda-file-converter";
+  inherit version;
+  nativeBuildInputs = [ dpkg ];
+
+  src = fetchurl {
+    # NB: this URL is not stable (i.e. the underlying file and the corresponding version will change over time)
+    url = "https://download.opendesign.com/guestfiles/ODAFileConverter/ODAFileConverter_QT5_lnxX64_7.2dll.deb";
+    sha256 = "0sa21nnwzqb6g7gl0z43smqgcd9h3xipj3cq2cl7ybfh3cvcxfi9";
+  };
+
+  unpackPhase = ''
+    dpkg -x $src oda_unpacked
+    sourceRoot=$PWD/oda_unpacked
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/lib
+    cp -vr $sourceRoot/usr/bin/ODAFileConverter_${version} $out/libexec
+    cp -vr $sourceRoot/usr/share $out/share
+  '';
+
+  dontWrapQtApps = true;
+  fixupPhase = ''
+    echo "setting interpreter"
+    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/libexec/ODAFileConverter
+    patchelf --set-rpath '${rpath}' $out/libexec/ODAFileConverter
+    wrapQtApp $out/libexec/ODAFileConverter
+    mv $out/libexec/ODAFileConverter $out/bin
+
+    find $out/libexec -type f -executable | while read file; do
+      echo "patching $file"
+      patchelf --set-rpath '${rpath}' $file
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "For converting between different versions of .dwg and .dxf";
+    homepage = "https://www.opendesign.com/guestfiles/oda_file_converter";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ nagisa ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/graphics/opentoonz/default.nix b/pkgs/applications/graphics/opentoonz/default.nix
new file mode 100644
index 00000000000..68830699699
--- /dev/null
+++ b/pkgs/applications/graphics/opentoonz/default.nix
@@ -0,0 +1,51 @@
+{ boost, cmake, fetchFromGitHub, freeglut, freetype, glew, libjpeg, libmypaint
+, libpng, libtiff, libusb1, lz4, lzma, lzo, openblas, pkgconfig, qtbase
+, qtmultimedia, qtscript, stdenv, superlu, wrapQtAppsHook, }:
+let source = import ./source.nix { inherit fetchFromGitHub; };
+in stdenv.mkDerivation rec {
+  inherit (source) src;
+
+  pname = "opentoonz";
+  version = source.versions.opentoonz;
+
+  nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
+
+  buildInputs = [
+    boost
+    freeglut
+    freetype
+    glew
+    libjpeg
+    libmypaint
+    libpng
+    libtiff
+    libusb1
+    lz4
+    lzma
+    lzo
+    openblas
+    qtbase
+    qtmultimedia
+    qtscript
+    superlu
+  ];
+
+  postUnpack = "sourceRoot=$sourceRoot/toonz";
+
+  cmakeDir = "../sources";
+  cmakeFlags = [
+    "-DTIFF_INCLUDE_DIR=${libtiff.dev}/include"
+    "-DTIFF_LIBRARY=${libtiff.out}/lib/libtiff.so"
+  ];
+
+  postInstall = ''
+    sed -i '/cp -r .*stuff/a\    chmod -R u+w $HOME/.config/OpenToonz/stuff' $out/bin/opentoonz
+  '';
+
+  meta = {
+    description = "Full-featured 2D animation creation software";
+    homepage = "https://opentoonz.github.io/";
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = with stdenv.lib.maintainers; [ chkno ];
+  };
+}
diff --git a/pkgs/applications/graphics/opentoonz/libtiff.nix b/pkgs/applications/graphics/opentoonz/libtiff.nix
new file mode 100644
index 00000000000..6663c47553e
--- /dev/null
+++ b/pkgs/applications/graphics/opentoonz/libtiff.nix
@@ -0,0 +1,21 @@
+# Per https://github.com/opentoonz/opentoonz/blob/master/doc/how_to_build_linux.md ,
+# opentoonz requires its own modified version of libtiff.  We still build it as
+# a separate package
+#  1. For visibility for tools like vulnix, and
+#  2. To avoid a diamond-dependency problem with qt linking the normal libtiff
+#     and opentoonz linking qt and this modified libtiff, we build a qt against
+#     this modified libtiff as well.
+
+{ fetchFromGitHub, libtiff }:
+let source = import ./source.nix { inherit fetchFromGitHub; };
+in libtiff.overrideAttrs (old: {
+  inherit (source) src;
+  version = source.versions.libtiff + "-opentoonz";
+  postUnpack = (old.postUnpack or "") + ''
+    sourceRoot="$sourceRoot/thirdparty/tiff-${source.versions.libtiff}"
+  '';
+  # opentoonz uses internal libtiff headers
+  postInstall = (old.postInstall or "") + ''
+    cp libtiff/{tif_config,tif_dir,tiffiop}.h $dev/include
+  '';
+})
diff --git a/pkgs/applications/graphics/opentoonz/source.nix b/pkgs/applications/graphics/opentoonz/source.nix
new file mode 100644
index 00000000000..7378d2f5f96
--- /dev/null
+++ b/pkgs/applications/graphics/opentoonz/source.nix
@@ -0,0 +1,16 @@
+# opentoonz's source archive contains both opentoonz's source and a modified
+# version of libtiff that opentoonz requires.
+
+{ fetchFromGitHub, }: rec {
+  versions = {
+    opentoonz = "1.4.0";
+    libtiff = "4.0.3";
+  };
+
+  src = fetchFromGitHub {
+    owner = "opentoonz";
+    repo = "opentoonz";
+    rev = "v${versions.opentoonz}";
+    sha256 = "0vgclx2yydsm5i2smff3fj8m750nhf35wfhva37kywgws01s189b";
+  };
+}
diff --git a/pkgs/applications/graphics/pdfcpu/default.nix b/pkgs/applications/graphics/pdfcpu/default.nix
index c03f5f8ed89..08dc87f6684 100644
--- a/pkgs/applications/graphics/pdfcpu/default.nix
+++ b/pkgs/applications/graphics/pdfcpu/default.nix
@@ -2,16 +2,19 @@
 
 buildGoModule rec {
   pname = "pdfcpu";
-  version = "0.3.4";
+  version = "0.3.5";
 
   src = fetchFromGitHub {
     owner = "pdfcpu";
     repo = pname;
     rev = "v${version}";
-    sha256 = "00c4psgfh4hia144zsdhrq83bw3fqda1ancv2gkn5ymxkbpnpyrn";
+    sha256 = "0fb7l1h4dhn100y2ydq50cgj63fbr4p11x8h803rv6x3xwmviwcg";
   };
 
-  vendorSha256 = "09alkpfyxapycv6zsaz7prgbr0a1jzd78n7w2mh01mg4hhb2j3k7";
+  vendorSha256 = "06xlwygqw3kzbjqlx09rs9hl4pfsmay5pj4c5hvkrj5z123ldvyw";
+
+  # No tests
+  doCheck = false;
 
   subPackages = [ "cmd/pdfcpu" ];
 
@@ -20,6 +23,5 @@ buildGoModule rec {
     homepage = "https://pdfcpu.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ doronbehar ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/graphics/pencil/default.nix b/pkgs/applications/graphics/pencil/default.nix
index edd923822ea..19e8121ac08 100644
--- a/pkgs/applications/graphics/pencil/default.nix
+++ b/pkgs/applications/graphics/pencil/default.nix
@@ -91,7 +91,7 @@ in stdenv.mkDerivation rec {
       $out/opt/pencil/pencil
 
     # fix missing libudev
-    ln -s ${systemd.lib}/lib/libudev.so.1 $out/opt/pencil/libudev.so.1
+    ln -s ${lib.getLib systemd}/lib/libudev.so.1 $out/opt/pencil/libudev.so.1
     wrapProgram $out/opt/pencil/pencil \
       --prefix LD_LIBRARY_PATH : $out/opt/pencil
   '';
diff --git a/pkgs/applications/graphics/qosmic/default.nix b/pkgs/applications/graphics/qosmic/default.nix
new file mode 100644
index 00000000000..96823441b6e
--- /dev/null
+++ b/pkgs/applications/graphics/qosmic/default.nix
@@ -0,0 +1,70 @@
+{ mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, qmake
+, wrapQtAppsHook
+, qtbase
+, pkg-config
+, lua
+, flam3
+, libxml2
+, libpng
+, libjpeg
+, lib
+}:
+
+mkDerivation rec {
+  pname = "qosmic";
+  version = "1.6.0";
+
+  src = fetchFromGitHub {
+    owner = "bitsed";
+    repo = "qosmic";
+    rev = "v${version}";
+    sha256 = "13nw1mkdib14430r21mj352v62vi546vf184vyhxm7yjjygyra1w";
+  };
+
+  patches = [
+    # Allow overriding PREFIX (to install to $out,
+    # written while creating this derivation)
+    # https://github.com/bitsed/qosmic/pull/39
+    (fetchpatch {
+      name = "allow-overriding-PREFIX.patch";
+      url = "https://github.com/bitsed/qosmic/commit/77fb3a577b0710efae2a1d9ed97c26ae16f3a5ba.patch";
+      sha256 = "0v9hj9s78cb6bg8ca0wjkbr3c7ml1n51n8h4a70zpzzgzz7rli5b";
+    })
+    # Fix QButtonGroup include errors with Qt 5.11:
+    # Will be part of the next post-1.6.0 release
+    (fetchpatch {
+      name = "fix-class-QButtonGroup-include-errors-with-Qt-5.11.patch";
+      url = "https://github.com/bitsed/qosmic/commit/3f6e1ea8d384a124dbc2d568171a4da798480752.patch";
+      sha256 = "0bp6b759plkqs32nvfpkfvf3qqzc9716k3ycwnjvwabbvpg1xwbl";
+    })
+  ];
+
+  nativeBuildInputs = [ qmake wrapQtAppsHook pkg-config ];
+
+  buildInputs = [
+    qtbase
+    lua
+    flam3
+    libxml2
+    libpng
+    libjpeg
+  ];
+
+  qmakeFlags = [
+    # Use pkg-config to correctly locate library paths
+    "-config" "link_pkgconfig"
+  ];
+
+  meta = with lib; {
+    description = "A cosmic recursive flame fractal editor";
+    homepage = "https://github.com/bitsed/qosmic";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.raboof ];
+    # It might be possible to make it work on OSX,
+    # but this has not been tested.
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/graphics/renderdoc/default.nix b/pkgs/applications/graphics/renderdoc/default.nix
index 2683206c8e4..5f39116e85f 100644
--- a/pkgs/applications/graphics/renderdoc/default.nix
+++ b/pkgs/applications/graphics/renderdoc/default.nix
@@ -13,14 +13,14 @@ let
   pythonPackages = python3Packages;
 in
 mkDerivation rec {
-  version = "1.8";
+  version = "1.9";
   pname = "renderdoc";
 
   src = fetchFromGitHub {
     owner = "baldurk";
     repo = "renderdoc";
     rev = "v${version}";
-    sha256 = "177j893abplj8wd8j4ava58m1mr7qq8fsffsq0w4hf5xgl5w8fq8";
+    sha256 = "18nparkd435hdbm924jfdvmym7f3xd2fcy96jr4lrkl5rhj2sf85";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/graphics/runwayml/default.nix b/pkgs/applications/graphics/runwayml/default.nix
index eb8ecc34b8f..9366276ebf8 100644
--- a/pkgs/applications/graphics/runwayml/default.nix
+++ b/pkgs/applications/graphics/runwayml/default.nix
@@ -6,20 +6,19 @@
 
 let
   pname = "runwayml";
-  version = "0.10.20";
+  version = "0.14.3";
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "https://runway-releases.s3.amazonaws.com/Runway%20${version}.AppImage";
-    sha256 = "1wi94xi8nrwfc4v2j1crlmwr0nxg95ffp5h4hxd84crvya8ibxgz";
-    name="${pname}-${version}.AppImage";
+    url = "https://runway-releases.s3.amazonaws.com/Runway-${version}.AppImage";
+    sha256 = "1bx8j39wd2z6f32hdvmk9z77bivnizzdhn296kin2nnqgq6v6y93";
   };
 
   binary = appimageTools.wrapType2 {
     name = pname;
     inherit src;
   };
-  # we only use this to extract the icon
+  # we only use this to extract the icon and desktop file
   appimage-contents = appimageTools.extractType2 {
     inherit name src;
   };
diff --git a/pkgs/applications/graphics/sane/backends/airscan/default.nix b/pkgs/applications/graphics/sane/backends/airscan/default.nix
index 0615b00f135..bd4a5ac9ad9 100644
--- a/pkgs/applications/graphics/sane/backends/airscan/default.nix
+++ b/pkgs/applications/graphics/sane/backends/airscan/default.nix
@@ -2,7 +2,7 @@
 , sane-backends, meson, ninja }:
 stdenv.mkDerivation rec {
   pname = "sane-airscan";
-  version = "0.99.3";
+  version = "0.99.8";
 
   nativeBuildInputs = [ meson ninja pkg-config ];
   buildInputs = [ avahi libsoup libjpeg libpng sane-backends ];
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     owner = "alexpevzner";
     repo = pname;
     rev = version;
-    sha256 = "1sxp207vzjzi0ad5202n46acbha4dfmzcijl2v0b9j9lj4k42a8k";
+    sha256 = "0sdlnbzhnfn4i5mkqhc8zmjywbbjqkbnsiz2gpqhy6fypshryahz";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/graphics/shotwell/default.nix b/pkgs/applications/graphics/shotwell/default.nix
index b03d0a01dd6..c041d2dde8c 100644
--- a/pkgs/applications/graphics/shotwell/default.nix
+++ b/pkgs/applications/graphics/shotwell/default.nix
@@ -17,6 +17,7 @@
 , libgudev
 , libraw
 , glib
+, glib-networking
 , json-glib
 , gcr
 , libgee
@@ -39,11 +40,11 @@
 
 stdenv.mkDerivation rec {
   pname = "shotwell";
-  version = "0.31.1";
+  version = "0.31.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0mbgrad4d4snffw2z3rkhwqq1bkxdgy52pblx99vjadvpgspb034";
+    sha256 = "0ywzr6vgcz8yy60v0jp55na9lgqi4dbh2vakfphkcml1gpah0r2l";
   };
 
   nativeBuildInputs = [
@@ -77,6 +78,7 @@ stdenv.mkDerivation rec {
     libraw
     json-glib
     glib
+    glib-networking
     gdk-pixbuf
     librsvg
     librest
diff --git a/pkgs/applications/graphics/viewnior/default.nix b/pkgs/applications/graphics/viewnior/default.nix
index 41463a7627a..1addb2d7bd5 100644
--- a/pkgs/applications/graphics/viewnior/default.nix
+++ b/pkgs/applications/graphics/viewnior/default.nix
@@ -1,24 +1,38 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, gtk2, libpng, exiv2, lcms
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, desktop-file-utils, gtk2, libpng, exiv2, lcms
 , intltool, gettext, shared-mime-info, glib, gdk-pixbuf, perl}:
 
 stdenv.mkDerivation rec {
   pname = "viewnior";
-  version = "1.6";
+  version = "1.7";
 
   src = fetchFromGitHub {
-    owner = "xsisqox";
+    owner = "hellosiyan";
     repo = "Viewnior";
     rev = "${pname}-${version}";
-    sha256 = "06ppv3r85l3id4ij6h4y5fgm3nib2587fdrdv9fccyi75zk7fs0p";
+    sha256 = "0y4hk3vq8psba5k615w18qj0kbdfp5w0lm98nv5apy6hmcpwfyig";
   };
 
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs =
-    [ pkgconfig gtk2 libpng exiv2 lcms intltool gettext
-      shared-mime-info glib gdk-pixbuf perl
-    ];
-
-  meta = {
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkgconfig
+    desktop-file-utils
+    intltool
+    gettext
+  ];
+
+  buildInputs = [
+    gtk2
+    libpng
+    exiv2
+    lcms
+    shared-mime-info
+    glib
+    gdk-pixbuf
+    perl
+  ];
+
+  meta = with stdenv.lib; {
     description = "Fast and simple image viewer";
     longDescription =
       '' Viewnior is insipred by big projects like Eye of Gnome, because of it's
@@ -27,13 +41,9 @@ stdenv.mkDerivation rec {
          with the quality of it's functions. The program is made with better integration
          in mind (follows Gnome HIG2).
       '';
-
-    license = stdenv.lib.licenses.gpl3;
-
+    license = licenses.gpl3;
     homepage = "http://siyanpanayotov.com/project/viewnior/";
-
-    maintainers = [ stdenv.lib.maintainers.smironov ];
-
-    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
+    maintainers = with maintainers; [ smironov artturin ];
+    platforms = platforms.gnu ++ platforms.linux;
   };
 }
diff --git a/pkgs/applications/graphics/write_stylus/default.nix b/pkgs/applications/graphics/write_stylus/default.nix
index 31fc4045026..8396ce72e50 100644
--- a/pkgs/applications/graphics/write_stylus/default.nix
+++ b/pkgs/applications/graphics/write_stylus/default.nix
@@ -1,29 +1,22 @@
-{ mkDerivation, stdenv, lib, qtbase, qtsvg, libglvnd, fetchurl, makeDesktopItem }:
+{ mkDerivation, stdenv, lib, qtbase, qtsvg, libglvnd, libX11, libXi, fetchurl, makeDesktopItem }:
 let
-  # taken from: https://www.iconfinder.com/icons/50835/edit_pencil_write_icon
-  # license: Free for commercial use
-  desktopIcon = fetchurl {
-    url = "https://www.iconfinder.com/icons/50835/download/png/256";
-    sha256 = "0abdya42yf9alxbsmc2nf8jwld50zfria6z3d4ncvp1zw2a9jhb8";
-  };
-in
-mkDerivation rec {
-  pname = "write_stylus";
-  version = "209";
-
   desktopItem = makeDesktopItem {
     name = "Write";
     exec = "Write";
     comment = "A word processor for handwriting";
-    icon = desktopIcon;
+    icon = "write_stylus";
     desktopName = "Write";
     genericName = "Write";
     categories = "Office;Graphics";
   };
+in
+mkDerivation rec {
+  pname = "write_stylus";
+  version = "300";
 
   src = fetchurl {
     url = "http://www.styluslabs.com/write/write${version}.tar.gz";
-    sha256 = "1p6glp4vdpwl8hmhypayc4cvs3j9jfmjfhhrgqm2xkgl5bfbv2qd";
+    sha256 = "0h1wf3af7jzp3f3l8mlnshi83d7a4v4y8nfqfai4lmskyicqlz7c";
   };
 
   sourceRoot = ".";
@@ -36,15 +29,20 @@ mkDerivation rec {
     # symlink the binary to bin/
     ln -s $out/Write/Write $out/bin/Write
 
+    # Create desktop item
     mkdir -p $out/share/applications
     ln -s ${desktopItem}/share/applications/* $out/share/applications/
+    mkdir -p $out/share/icons
+    ln -s $out/Write/Write144x144.png $out/share/icons/write_stylus.png
   '';
   preFixup = let
     libPath = lib.makeLibraryPath [
       qtbase            # libQt5PrintSupport.so.5
       qtsvg             # libQt5Svg.so.5
       stdenv.cc.cc.lib  # libstdc++.so.6
-      libglvnd          # ibGL.so.1
+      libglvnd          # libGL.so.1
+      libX11            # libX11.so.6
+      libXi             # libXi.so.6
     ];
   in ''
     patchelf \
diff --git a/pkgs/applications/graphics/xfractint/default.nix b/pkgs/applications/graphics/xfractint/default.nix
index 8d36e4630dc..08ef0cd7b58 100644
--- a/pkgs/applications/graphics/xfractint/default.nix
+++ b/pkgs/applications/graphics/xfractint/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, libX11, libXft}:
 stdenv.mkDerivation rec {
   pname = "xfractint";
-  version = "20.04p14";
+  version = "20.04p16";
   # or fetchFromGitHub(owner,repo,rev) or fetchgit(rev)
   src = fetchurl {
     url = "https://www.fractint.net/ftp/current/linux/xfractint-${version}.tar.gz";
-    sha256 = "0jdqr639z862qrswwk5srmv4fj5d7rl8kcscpn6mlkx4jvjmca0f";
+    sha256 = "1ba77jifxv8jql044mdydh4p4ms4w5vw3qrqmcfzlvqfxk7h2m2f";
   };
 
   buildInputs = [libX11 libXft];
diff --git a/pkgs/applications/graphics/yeetgif/default.nix b/pkgs/applications/graphics/yeetgif/default.nix
index 3ae1b98661a..84bcdee5b76 100644
--- a/pkgs/applications/graphics/yeetgif/default.nix
+++ b/pkgs/applications/graphics/yeetgif/default.nix
@@ -18,6 +18,5 @@ buildGoPackage rec {
     homepage = "https://github.com/sgreben/yeetgif";
     license = with licenses; [ mit asl20 cc-by-nc-sa-40 ];
     maintainers = with maintainers; [ ajs124 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/kde/akonadi/akonadi-paths.patch b/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
index ba6bbedeeae..58390cba226 100644
--- a/pkgs/applications/kde/akonadi/akonadi-paths.patch
+++ b/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
@@ -1,27 +1,42 @@
-Index: akonadi-19.08.0/src/akonadicontrol/agentmanager.cpp
-===================================================================
---- akonadi-19.08.0.orig/src/akonadicontrol/agentmanager.cpp
-+++ akonadi-19.08.0/src/akonadicontrol/agentmanager.cpp
-@@ -78,12 +78,12 @@ AgentManager::AgentManager(bool verbose,
-     mStorageController = new Akonadi::ProcessControl;
-     mStorageController->setShutdownTimeout(15 * 1000);   // the server needs more time for shutdown if we are using an internal mysqld
-     connect(mStorageController, &Akonadi::ProcessControl::unableToStart, this, &AgentManager::serverFailure);
--    mStorageController->start(QStringLiteral("akonadiserver"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
-+    mStorageController->start(QLatin1String(NIX_OUT "/bin/akonadiserver"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
+From 90969b9b36400d47b1afe761fb8468c1acb8a04a Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Mon, 13 Jul 2020 11:41:19 -0500
+Subject: [PATCH 1/3] akonadi paths
+
+---
+ src/akonadicontrol/agentmanager.cpp         |  4 ++--
+ src/akonadicontrol/agentprocessinstance.cpp |  2 +-
+ src/server/storage/dbconfigmysql.cpp        | 26 ++++-----------------
+ src/server/storage/dbconfigpostgresql.cpp   | 19 +++------------
+ 4 files changed, 11 insertions(+), 40 deletions(-)
+
+diff --git a/src/akonadicontrol/agentmanager.cpp b/src/akonadicontrol/agentmanager.cpp
+index 23b4a1f..c13b658 100644
+--- a/src/akonadicontrol/agentmanager.cpp
++++ b/src/akonadicontrol/agentmanager.cpp
+@@ -61,7 +61,7 @@ public:
+                 []() {
+                     QCoreApplication::instance()->exit(255);
+                 });
+-        start(QStringLiteral("akonadiserver"), args, RestartOnCrash);
++        start(QLatin1String(NIX_OUT "/bin/akonadiserver"), args, RestartOnCrash);
+     }
  
-     if (mAgentServerEnabled) {
-         mAgentServer = new Akonadi::ProcessControl;
-         connect(mAgentServer, &Akonadi::ProcessControl::unableToStart, this, &AgentManager::agentServerFailure);
--        mAgentServer->start(QStringLiteral("akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
-+        mAgentServer->start(QLatin1String(NIX_OUT "/bin/akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
+     ~StorageProcessControl() override
+@@ -84,7 +84,7 @@ public:
+                 []() {
+                     qCCritical(AKONADICONTROL_LOG) << "Failed to start AgentServer!";
+                 });
+-        start(QStringLiteral("akonadi_agent_server"), args, RestartOnCrash);
++        start(QLatin1String(NIX_OUT "/bin/akonadi_agent_server"), args, RestartOnCrash);
      }
- }
  
-Index: akonadi-19.08.0/src/akonadicontrol/agentprocessinstance.cpp
-===================================================================
---- akonadi-19.08.0.orig/src/akonadicontrol/agentprocessinstance.cpp
-+++ akonadi-19.08.0/src/akonadicontrol/agentprocessinstance.cpp
-@@ -62,7 +62,7 @@ bool AgentProcessInstance::start(const A
+     ~AgentServerProcessControl() override
+diff --git a/src/akonadicontrol/agentprocessinstance.cpp b/src/akonadicontrol/agentprocessinstance.cpp
+index 4e58f7e..e8bb532 100644
+--- a/src/akonadicontrol/agentprocessinstance.cpp
++++ b/src/akonadicontrol/agentprocessinstance.cpp
+@@ -62,7 +62,7 @@ bool AgentProcessInstance::start(const AgentType &agentInfo)
      } else {
          Q_ASSERT(agentInfo.launchMethod == AgentType::Launcher);
          const QStringList arguments = QStringList() << executable << identifier();
@@ -30,11 +45,11 @@ Index: akonadi-19.08.0/src/akonadicontrol/agentprocessinstance.cpp
          mController->start(agentLauncherExec, arguments);
      }
      return true;
-Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
-===================================================================
---- akonadi-19.08.0.orig/src/server/storage/dbconfigmysql.cpp
-+++ akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
-@@ -83,7 +83,6 @@ bool DbConfigMysql::init(QSettings &sett
+diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
+index cac40f5..527649b 100644
+--- a/src/server/storage/dbconfigmysql.cpp
++++ b/src/server/storage/dbconfigmysql.cpp
+@@ -83,7 +83,6 @@ bool DbConfigMysql::init(QSettings &settings)
      // determine default settings depending on the driver
      QString defaultHostName;
      QString defaultOptions;
@@ -42,7 +57,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
      QString defaultCleanShutdownCommand;
  
  #ifndef Q_OS_WIN
-@@ -92,16 +91,7 @@ bool DbConfigMysql::init(QSettings &sett
+@@ -92,16 +91,7 @@ bool DbConfigMysql::init(QSettings &settings)
  #endif
  
      const bool defaultInternalServer = true;
@@ -60,7 +75,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
      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 &sett
+@@ -111,10 +101,10 @@ bool DbConfigMysql::init(QSettings &settings)
  #endif
      }
  
@@ -73,7 +88,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
      qCDebug(AKONADISERVER_LOG) << "Found mysqlcheck: " << mMysqlCheckPath;
  
      mInternalServer = settings.value(QStringLiteral("QMYSQL/StartServer"), defaultInternalServer).toBool();
-@@ -131,7 +121,7 @@ bool DbConfigMysql::init(QSettings &sett
+@@ -131,7 +121,7 @@ bool DbConfigMysql::init(QSettings &settings)
      mUserName = settings.value(QStringLiteral("User")).toString();
      mPassword = settings.value(QStringLiteral("Password")).toString();
      mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
@@ -82,7 +97,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
      mCleanServerShutdownCommand = settings.value(QStringLiteral("CleanServerShutdownCommand"), defaultCleanShutdownCommand).toString();
      settings.endGroup();
  
-@@ -141,9 +131,6 @@ bool DbConfigMysql::init(QSettings &sett
+@@ -141,9 +131,6 @@ bool DbConfigMysql::init(QSettings &settings)
          // intentionally not namespaced as we are the only one in this db instance when using internal mode
          mDatabaseName = QStringLiteral("akonadi");
      }
@@ -92,7 +107,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
  
      qCDebug(AKONADISERVER_LOG) << "Using mysqld:" << mMysqldPath;
  
-@@ -152,9 +139,6 @@ bool DbConfigMysql::init(QSettings &sett
+@@ -152,9 +139,6 @@ bool DbConfigMysql::init(QSettings &settings)
      settings.setValue(QStringLiteral("Name"), mDatabaseName);
      settings.setValue(QStringLiteral("Host"), mHostName);
      settings.setValue(QStringLiteral("Options"), mConnectionOptions);
@@ -102,7 +117,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
      settings.setValue(QStringLiteral("StartServer"), mInternalServer);
      settings.endGroup();
      settings.sync();
-@@ -209,7 +193,7 @@ bool DbConfigMysql::startInternalServer(
+@@ -209,7 +193,7 @@ bool DbConfigMysql::startInternalServer()
  #endif
  
      // generate config file
@@ -111,11 +126,11 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
      const QString localConfig  = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-local.conf"));
      const QString actualConfig = StandardDirs::saveDir("data") + QLatin1String("/mysql.conf");
      if (globalConfig.isEmpty()) {
-Index: akonadi-19.08.0/src/server/storage/dbconfigpostgresql.cpp
-===================================================================
---- akonadi-19.08.0.orig/src/server/storage/dbconfigpostgresql.cpp
-+++ akonadi-19.08.0/src/server/storage/dbconfigpostgresql.cpp
-@@ -140,9 +140,7 @@ bool DbConfigPostgresql::init(QSettings
+diff --git a/src/server/storage/dbconfigpostgresql.cpp b/src/server/storage/dbconfigpostgresql.cpp
+index 09cdbd5..1c8996b 100644
+--- a/src/server/storage/dbconfigpostgresql.cpp
++++ b/src/server/storage/dbconfigpostgresql.cpp
+@@ -141,9 +141,7 @@ bool DbConfigPostgresql::init(QSettings &settings)
      // determine default settings depending on the driver
      QString defaultHostName;
      QString defaultOptions;
@@ -125,7 +140,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigpostgresql.cpp
      QString defaultPgData;
  
  #ifndef Q_WS_WIN // We assume that PostgreSQL is running as service on Windows
-@@ -153,12 +151,8 @@ bool DbConfigPostgresql::init(QSettings
+@@ -154,12 +152,8 @@ bool DbConfigPostgresql::init(QSettings &settings)
  
      mInternalServer = settings.value(QStringLiteral("QPSQL/StartServer"), defaultInternalServer).toBool();
      if (mInternalServer) {
@@ -139,7 +154,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigpostgresql.cpp
          defaultPgData = StandardDirs::saveDir("data", QStringLiteral("db_data"));
      }
  
-@@ -177,20 +171,14 @@ bool DbConfigPostgresql::init(QSettings
+@@ -178,20 +172,14 @@ bool DbConfigPostgresql::init(QSettings &settings)
      mUserName = settings.value(QStringLiteral("User")).toString();
      mPassword = settings.value(QStringLiteral("Password")).toString();
      mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
@@ -162,7 +177,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigpostgresql.cpp
      qCDebug(AKONADISERVER_LOG) << "Found pg_upgrade:" << mPgUpgradePath;
      mPgData = settings.value(QStringLiteral("PgData"), defaultPgData).toString();
      if (mPgData.isEmpty()) {
-@@ -206,7 +194,6 @@ bool DbConfigPostgresql::init(QSettings
+@@ -207,7 +195,6 @@ bool DbConfigPostgresql::init(QSettings &settings)
          settings.setValue(QStringLiteral("Port"), mHostPort);
      }
      settings.setValue(QStringLiteral("Options"), mConnectionOptions);
@@ -170,3 +185,6 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigpostgresql.cpp
      settings.setValue(QStringLiteral("InitDbPath"), mInitDbPath);
      settings.setValue(QStringLiteral("StartServer"), mInternalServer);
      settings.endGroup();
+-- 
+2.25.4
+
diff --git a/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch b/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
new file mode 100644
index 00000000000..ac9b3146e17
--- /dev/null
+++ b/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
@@ -0,0 +1,26 @@
+From b8c6a2a017321649db8fec553a644b8da2300514 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Mon, 13 Jul 2020 11:41:35 -0500
+Subject: [PATCH 2/3] akonadi timestamps
+
+---
+ src/server/storage/dbconfigmysql.cpp | 3 +--
+ 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
+--- a/src/server/storage/dbconfigmysql.cpp
++++ b/src/server/storage/dbconfigmysql.cpp
+@@ -235,8 +235,7 @@ bool DbConfigMysql::startInternalServer()
+     bool confUpdate = false;
+     QFile actualFile(actualConfig);
+     // update conf only if either global (or local) is newer than actual
+-    if ((QFileInfo(globalConfig).lastModified() > QFileInfo(actualFile).lastModified()) ||
+-            (QFileInfo(localConfig).lastModified()  > QFileInfo(actualFile).lastModified())) {
++    if (true) {
+         QFile globalFile(globalConfig);
+         QFile localFile(localConfig);
+         if (globalFile.open(QFile::ReadOnly) && actualFile.open(QFile::WriteOnly)) {
+-- 
+2.25.4
+
diff --git a/pkgs/applications/kde/akonadi/0001-Revert-Make-Akonadi-installation-properly-relocatabl.patch b/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
index c3964c5c05b..1a0bc000c80 100644
--- a/pkgs/applications/kde/akonadi/0001-Revert-Make-Akonadi-installation-properly-relocatabl.patch
+++ b/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
@@ -1,19 +1,18 @@
-From bc018b4bc816a3b51deb9739bedbf8a2268d0684 Mon Sep 17 00:00:00 2001
-From: gnidorah <gnidorah@users.noreply.github.com>
-Date: Fri, 22 Dec 2017 17:36:03 +0300
-Subject: [PATCH] Revert "Make Akonadi installation properly relocatable"
+From 7afe018382cf68b477b35f87b666424d62d19ef4 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Mon, 13 Jul 2020 11:41:55 -0500
+Subject: [PATCH 3/3] akonadi revert make relocatable
 
-This reverts commit b2bb55f13f2ac783f89cc414de8c39f62fa2096a.
 ---
  CMakeLists.txt            | 3 ---
  KF5AkonadiConfig.cmake.in | 6 +++---
  2 files changed, 3 insertions(+), 6 deletions(-)
 
-Index: akonadi-19.08.0/CMakeLists.txt
-===================================================================
---- akonadi-19.08.0.orig/CMakeLists.txt
-+++ akonadi-19.08.0/CMakeLists.txt
-@@ -306,9 +306,6 @@ configure_package_config_file(
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d927471..83a74c0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -330,9 +330,6 @@ configure_package_config_file(
      "${CMAKE_CURRENT_SOURCE_DIR}/KF5AkonadiConfig.cmake.in"
      "${CMAKE_CURRENT_BINARY_DIR}/KF5AkonadiConfig.cmake"
      INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
@@ -23,11 +22,11 @@ Index: akonadi-19.08.0/CMakeLists.txt
  )
  
  install(FILES
-Index: akonadi-19.08.0/KF5AkonadiConfig.cmake.in
-===================================================================
---- akonadi-19.08.0.orig/KF5AkonadiConfig.cmake.in
-+++ akonadi-19.08.0/KF5AkonadiConfig.cmake.in
-@@ -26,8 +26,8 @@ if(BUILD_TESTING)
+diff --git a/KF5AkonadiConfig.cmake.in b/KF5AkonadiConfig.cmake.in
+index 421e1df..e3abf27 100644
+--- a/KF5AkonadiConfig.cmake.in
++++ b/KF5AkonadiConfig.cmake.in
+@@ -24,8 +24,8 @@ if(BUILD_TESTING)
      find_dependency(Qt5Test "@QT_REQUIRED_VERSION@")
  endif()
  
@@ -38,7 +37,7 @@ Index: akonadi-19.08.0/KF5AkonadiConfig.cmake.in
  
  find_dependency(Boost "@Boost_MINIMUM_VERSION@")
  
-@@ -35,7 +35,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/KF5Ako
+@@ -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
@@ -47,3 +46,6 @@ Index: akonadi-19.08.0/KF5AkonadiConfig.cmake.in
  
  ####################################################################################
  # CMAKE_AUTOMOC
+-- 
+2.25.4
+
diff --git a/pkgs/applications/kde/akonadi/akonadi-timestamps.patch b/pkgs/applications/kde/akonadi/akonadi-timestamps.patch
deleted file mode 100644
index e299a6991f0..00000000000
--- a/pkgs/applications/kde/akonadi/akonadi-timestamps.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
-===================================================================
---- akonadi-19.08.0.orig/src/server/storage/dbconfigmysql.cpp
-+++ akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
-@@ -235,8 +235,7 @@ bool DbConfigMysql::startInternalServer(
-     bool confUpdate = false;
-     QFile actualFile(actualConfig);
-     // update conf only if either global (or local) is newer than actual
--    if ((QFileInfo(globalConfig).lastModified() > QFileInfo(actualFile).lastModified()) ||
--            (QFileInfo(localConfig).lastModified()  > QFileInfo(actualFile).lastModified())) {
-+    if (true) {
-         QFile globalFile(globalConfig);
-         QFile localFile(localConfig);
-         if (globalFile.open(QFile::ReadOnly) && actualFile.open(QFile::WriteOnly)) {
diff --git a/pkgs/applications/kde/akonadi/default.nix b/pkgs/applications/kde/akonadi/default.nix
index b9a96394a67..7bb4e921794 100644
--- a/pkgs/applications/kde/akonadi/default.nix
+++ b/pkgs/applications/kde/akonadi/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, copyPathsToStore, lib, kdepimTeam,
+  mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, shared-mime-info,
   boost, kcompletion, kconfigwidgets, kcrash, kdbusaddons, kdesignerplugin,
   ki18n, kiconthemes, kio, kitemmodels, kwindowsystem, mysql, qttools,
@@ -11,7 +11,11 @@ mkDerivation {
     license = [ lib.licenses.lgpl21 ];
     maintainers = kdepimTeam;
   };
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./0001-akonadi-paths.patch
+    ./0002-akonadi-timestamps.patch
+    ./0003-akonadi-revert-make-relocatable.patch
+  ];
   nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
   buildInputs = [
     kcompletion kconfigwidgets kcrash kdbusaddons kdesignerplugin ki18n
diff --git a/pkgs/applications/kde/akonadi/series b/pkgs/applications/kde/akonadi/series
deleted file mode 100644
index f828d503cc7..00000000000
--- a/pkgs/applications/kde/akonadi/series
+++ /dev/null
@@ -1,3 +0,0 @@
-akonadi-paths.patch
-akonadi-timestamps.patch
-0001-Revert-Make-Akonadi-installation-properly-relocatabl.patch
diff --git a/pkgs/applications/kde/bomber.nix b/pkgs/applications/kde/bomber.nix
new file mode 100644
index 00000000000..c3f47780259
--- /dev/null
+++ b/pkgs/applications/kde/bomber.nix
@@ -0,0 +1,30 @@
+{ mkDerivation, lib
+, libkdegames, extra-cmake-modules
+, kdeclarative, knewstuff
+}:
+
+mkDerivation {
+  name = "bomber";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.bomber";
+    description = "Bomber is a single player arcade game";
+    longDescription = ''
+      Bomber is a single player arcade game. The player is invading various
+      cities in a plane that is decreasing in height.
+
+      The goal of the game is to destroy all the buildings and advance to the next level.
+      Each level gets a bit harder by increasing the speed of the plane and the height of the buildings.
+      '';
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdeclarative
+    knewstuff
+    libkdegames
+  ];
+}
diff --git a/pkgs/applications/kde/bovo.nix b/pkgs/applications/kde/bovo.nix
new file mode 100644
index 00000000000..4bd3113a051
--- /dev/null
+++ b/pkgs/applications/kde/bovo.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, lib
+, libkdegames, extra-cmake-modules
+, kdeclarative, knewstuff
+}:
+
+mkDerivation {
+  name = "bovo";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.bovo";
+    description = "Five in a row application";
+    longDescription = ''
+      Bovo is a Gomoku (from Japanese 五目並べ - lit. "five points") like game for two players,
+      where the opponents alternate in placing their respective pictogram on the game board.
+      (Also known as: Connect Five, Five in a row, X and O, Naughts and Crosses)
+    '';
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdeclarative
+    knewstuff
+    libkdegames
+  ];
+}
diff --git a/pkgs/applications/kde/calendarsupport.nix b/pkgs/applications/kde/calendarsupport.nix
index 485397ec4aa..1537bd25d55 100644
--- a/pkgs/applications/kde/calendarsupport.nix
+++ b/pkgs/applications/kde/calendarsupport.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
-  akonadi, akonadi-calendar, akonadi-mime, kcalutils, kdepim-apps-libs,
+  akonadi, akonadi-calendar, akonadi-mime, akonadi-notes, kcalutils, kdepim-apps-libs,
   kholidays, kidentitymanagement, kmime, pimcommon, qttools,
 }:
 
@@ -13,7 +13,7 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    akonadi akonadi-mime kcalutils kdepim-apps-libs kholidays pimcommon qttools
+    akonadi akonadi-mime akonadi-notes kcalutils kdepim-apps-libs kholidays pimcommon qttools
   ];
   propagatedBuildInputs = [ akonadi-calendar kidentitymanagement kmime ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/applications/kde/default.nix b/pkgs/applications/kde/default.nix
index 82c653edda4..9622404c456 100644
--- a/pkgs/applications/kde/default.nix
+++ b/pkgs/applications/kde/default.nix
@@ -74,6 +74,8 @@ let
       akregator = callPackage ./akregator.nix {};
       ark = callPackage ./ark {};
       baloo-widgets = callPackage ./baloo-widgets.nix {};
+      bovo = callPackage ./bovo.nix {};
+      bomber = callPackage ./bomber.nix {};
       calendarsupport = callPackage ./calendarsupport.nix {};
       dolphin = callPackage ./dolphin.nix {};
       dolphin-plugins = callPackage ./dolphin-plugins.nix {};
@@ -82,6 +84,7 @@ let
       eventviews = callPackage ./eventviews.nix {};
       ffmpegthumbs = callPackage ./ffmpegthumbs.nix { };
       filelight = callPackage ./filelight.nix {};
+      granatier = callPackage ./granatier.nix {};
       grantleetheme = callPackage ./grantleetheme {};
       gwenview = callPackage ./gwenview.nix {};
       incidenceeditor = callPackage ./incidenceeditor.nix {};
@@ -89,15 +92,20 @@ let
       kaddressbook = callPackage ./kaddressbook.nix {};
       kalarm = callPackage ./kalarm.nix {};
       kalarmcal = callPackage ./kalarmcal.nix {};
+      kalzium = callPackage ./kalzium.nix {};
+      kapman = callPackage ./kapman.nix {};
       kapptemplate = callPackage ./kapptemplate.nix { };
       kate = callPackage ./kate.nix {};
+      katomic = callPackage ./katomic.nix {};
+      kblackbox = callPackage ./kblackbox.nix {};
+      kblocks = callPackage ./kblocks.nix {};
+      kbounce = callPackage ./kbounce.nix {};
       kbreakout = callPackage ./kbreakout.nix {};
       kcachegrind = callPackage ./kcachegrind.nix {};
       kcalc = callPackage ./kcalc.nix {};
       kcalutils = callPackage ./kcalutils.nix {};
       kcharselect = callPackage ./kcharselect.nix {};
       kcolorchooser = callPackage ./kcolorchooser.nix {};
-      kdav = callPackage ./kdav.nix {};
       kdebugsettings = callPackage ./kdebugsettings.nix {};
       kdegraphics-mobipocket = callPackage ./kdegraphics-mobipocket.nix {};
       kdegraphics-thumbnailers = callPackage ./kdegraphics-thumbnailers.nix {};
@@ -108,30 +116,42 @@ let
       kdepim-apps-libs = callPackage ./kdepim-apps-libs {};
       kdf = callPackage ./kdf.nix {};
       kdialog = callPackage ./kdialog.nix {};
+      kdiamond = callPackage ./kdiamond.nix {};
       keditbookmarks = callPackage ./keditbookmarks.nix {};
       kfind = callPackage ./kfind.nix {};
+      kfloppy = callPackage ./kfloppy.nix {};
       kgeography = callPackage ./kgeography.nix {};
       kget = callPackage ./kget.nix {};
       kgpg = callPackage ./kgpg.nix {};
       khelpcenter = callPackage ./khelpcenter.nix {};
       kidentitymanagement = callPackage ./kidentitymanagement.nix {};
       kig = callPackage ./kig.nix {};
+      kigo = callPackage ./kigo.nix {};
+      killbots = callPackage ./killbots.nix {};
       kimap = callPackage ./kimap.nix {};
       kipi-plugins = callPackage ./kipi-plugins.nix {};
       kitinerary = callPackage ./kitinerary.nix {};
       kio-extras = callPackage ./kio-extras.nix {};
       kldap = callPackage ./kldap.nix {};
       kleopatra = callPackage ./kleopatra.nix {};
+      klettres = callPackage ./klettres.nix {};
+      klines = callPackage ./klines.nix {};
+      kmag = callPackage ./kmag.nix {};
       kmahjongg = callPackage ./kmahjongg.nix {};
       kmail = callPackage ./kmail.nix {};
       kmail-account-wizard = callPackage ./kmail-account-wizard.nix {};
       kmailtransport = callPackage ./kmailtransport.nix {};
       kmbox = callPackage ./kmbox.nix {};
       kmime = callPackage ./kmime.nix {};
+      kmines = callPackage ./kmines.nix {};
       kmix = callPackage ./kmix.nix {};
       kmplot = callPackage ./kmplot.nix {};
+      knavalbattle = callPackage ./knavalbattle.nix {};
+      knetwalk = callPackage ./knetwalk.nix {};
+      knights = callPackage ./knights.nix {};
       knotes = callPackage ./knotes.nix {};
       kolf = callPackage ./kolf.nix {};
+      kollision = callPackage ./kollision.nix {};
       kolourpaint = callPackage ./kolourpaint.nix {};
       kompare = callPackage ./kompare.nix {};
       konsole = callPackage ./konsole.nix {};
@@ -143,17 +163,24 @@ let
       kpat = callPackage ./kpat.nix {};
       kpimtextedit = callPackage ./kpimtextedit.nix {};
       ksmtp = callPackage ./ksmtp {};
+      ksquares = callPackage ./ksquares.nix {};
       kqtquickcharts = callPackage ./kqtquickcharts.nix {};
       kpkpass = callPackage ./kpkpass.nix {};
+      kreversi = callPackage ./kreversi.nix {};
       krdc = callPackage ./krdc.nix {};
       krfb = callPackage ./krfb.nix {};
       kruler = callPackage ./kruler.nix {};
+      kshisen = callPackage ./kshisen.nix {};
       kspaceduel = callPackage ./kspaceduel.nix {};
       ksudoku = callPackage ./ksudoku.nix {};
       ksystemlog = callPackage ./ksystemlog.nix {};
+      kteatime = callPackage ./kteatime.nix {};
+      ktimer = callPackage ./ktimer.nix {};
       ktnef = callPackage ./ktnef.nix {};
       ktouch = callPackage ./ktouch.nix {};
+      kturtle = callPackage ./kturtle.nix {};
       kwalletmanager = callPackage ./kwalletmanager.nix {};
+      kwave = callPackage ./kwave.nix {};
       libgravatar = callPackage ./libgravatar.nix {};
       libkcddb = callPackage ./libkcddb.nix {};
       libkdcraw = callPackage ./libkdcraw.nix {};
@@ -174,6 +201,7 @@ let
       messagelib = callPackage ./messagelib.nix {};
       minuet = callPackage ./minuet.nix {};
       okular = callPackage ./okular.nix {};
+      picmi = callPackage ./picmi.nix {};
       pimcommon = callPackage ./pimcommon.nix {};
       pim-data-exporter = callPackage ./pim-data-exporter.nix {};
       pim-sieve-editor = callPackage ./pim-sieve-editor.nix {};
diff --git a/pkgs/applications/kde/fetch.sh b/pkgs/applications/kde/fetch.sh
index 3f6dc9ef181..90e1cf43f6b 100644
--- a/pkgs/applications/kde/fetch.sh
+++ b/pkgs/applications/kde/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( http://download.kde.org/stable/release-service/19.12.3/src )
+WGET_ARGS=(http://download.kde.org/stable/release-service/20.08.1/src)
diff --git a/pkgs/applications/kde/granatier.nix b/pkgs/applications/kde/granatier.nix
new file mode 100644
index 00000000000..f0b7cde5b2c
--- /dev/null
+++ b/pkgs/applications/kde/granatier.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib
+, libkdegames, extra-cmake-modules
+, kdeclarative, knewstuff
+}:
+
+mkDerivation {
+  name = "granatier";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.granatier";
+    description = "Granatier is a clone of the classic Bomberman game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdeclarative
+    knewstuff
+    libkdegames
+  ];
+}
diff --git a/pkgs/applications/kde/grantleetheme/default.nix b/pkgs/applications/kde/grantleetheme/default.nix
index bb8a97e8341..6204919a328 100644
--- a/pkgs/applications/kde/grantleetheme/default.nix
+++ b/pkgs/applications/kde/grantleetheme/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, copyPathsToStore, lib, kdepimTeam,
+  mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   grantlee, ki18n, kiconthemes, knewstuff, kservice, kxmlgui, qtbase,
 }:
@@ -11,7 +11,6 @@ mkDerivation {
     maintainers = kdepimTeam;
   };
   output = [ "out" "dev" ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     grantlee ki18n kiconthemes knewstuff kservice kxmlgui qtbase
diff --git a/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch b/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch
deleted file mode 100644
index ebb81248475..00000000000
--- a/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-diff --git a/src/grantleetheme.cpp b/src/grantleetheme.cpp
-index 27d5bc8..8d43140 100644
---- a/src/grantleetheme.cpp
-+++ b/src/grantleetheme.cpp
-@@ -46,7 +46,7 @@ ThemePrivate::ThemePrivate(const ThemePrivate &other)
-     , description(other.description)
-     , name(other.name)
-     , dirName(other.dirName)
--    , absolutePath(other.absolutePath)
-+    , absolutePaths(other.absolutePaths)
-     , author(other.author)
-     , email(other.email)
-     , loader(other.loader)
-@@ -64,12 +64,15 @@ void ThemePrivate::setupEngine()
- 
- void ThemePrivate::setupLoader()
- {
--    // Get the parent dir with themes, we set the theme directory separately
--    QDir dir(absolutePath);
--    dir.cdUp();
-+    QStringList templateDirs;
-+    for (const QString& path : absolutePaths) {
-+        QDir dir(path);
-+        dir.cdUp();
-+        templateDirs << dir.absolutePath();
-+    }
- 
-     loader = QSharedPointer<GrantleeTheme::QtResourceTemplateLoader>::create();
--    loader->setTemplateDirs({ dir.absolutePath() });
-+    loader->setTemplateDirs(templateDirs);
-     loader->setTheme(dirName);
- 
-     if (!sEngine) {
-@@ -121,7 +124,7 @@ Theme::Theme(const QString &themePath, const QString &dirName, const QString &de
-     KConfigGroup group(&config, QStringLiteral("Desktop Entry"));
-     if (group.isValid()) {
-         d->dirName = dirName;
--        d->absolutePath = themePath;
-+        d->absolutePaths = QStringList(themePath);
-         d->name = group.readEntry("Name", QString());
-         d->description = group.readEntry("Description", QString());
-         d->themeFileName = group.readEntry("FileName", QString());
-@@ -140,7 +143,7 @@ Theme::~Theme()
- 
- bool Theme::operator==(const Theme &other) const
- {
--    return isValid() && other.isValid() && d->absolutePath == other.absolutePath();
-+    return isValid() && other.isValid() && d->absolutePaths == other.absolutePaths();
- }
- 
- Theme &Theme::operator=(const Theme &other)
-@@ -184,7 +187,12 @@ QString Theme::dirName() const
- 
- QString Theme::absolutePath() const
- {
--    return d->absolutePath;
-+    return d->absolutePaths.first();
-+}
-+
-+QStringList Theme::absolutePaths() const
-+{
-+    return d->absolutePaths;
- }
- 
- QString Theme::author() const
-@@ -223,6 +231,13 @@ QString Theme::render(const QString &templateName, const QVariantHash &data, con
-     return result;
- }
- 
-+void Theme::addThemeDir(const QString& path)
-+{
-+    QDir dir(path);
-+    dir.cdUp();
-+    d->absolutePaths << dir.absolutePath();
-+}
-+
- void Theme::addPluginPath(const QString &path)
- {
-     if (!ThemePrivate::sEngine) {
-diff --git a/src/grantleetheme.h b/src/grantleetheme.h
-index a25c27b..be38299 100644
---- a/src/grantleetheme.h
-+++ b/src/grantleetheme.h
-@@ -48,11 +48,14 @@ public:
-     Q_REQUIRED_RESULT QStringList displayExtraVariables() const;
-     Q_REQUIRED_RESULT QString dirName() const;
-     Q_REQUIRED_RESULT QString absolutePath() const;
-+    Q_REQUIRED_RESULT QStringList absolutePaths() const;
-     Q_REQUIRED_RESULT QString author() const;
-     Q_REQUIRED_RESULT QString authorEmail() const;
- 
-     Q_REQUIRED_RESULT QString render(const QString &templateName, const QVariantHash &data, const QByteArray &applicationDomain = QByteArray());
- 
-+    void addThemeDir(const QString&);
-+
-     static void addPluginPath(const QString &path);
- 
- private:
-diff --git a/src/grantleetheme_p.h b/src/grantleetheme_p.h
-index eb73dcb..00510e9 100644
---- a/src/grantleetheme_p.h
-+++ b/src/grantleetheme_p.h
-@@ -43,7 +43,7 @@ public:
-     QString description;
-     QString name;
-     QString dirName;
--    QString absolutePath;
-+    QStringList absolutePaths;
-     QString author;
-     QString email;
- 
-diff --git a/src/grantleethememanager.cpp b/src/grantleethememanager.cpp
-index 606d717..dc99041 100644
---- a/src/grantleethememanager.cpp
-+++ b/src/grantleethememanager.cpp
-@@ -125,25 +125,18 @@ public:
- 
-         for (const QString &directory : qAsConst(themesDirectories)) {
-             QDirIterator dirIt(directory, QStringList(), QDir::AllDirs | QDir::NoDotAndDotDot);
--            QStringList alreadyLoadedThemeName;
-             while (dirIt.hasNext()) {
-                 dirIt.next();
-                 const QString dirName = dirIt.fileName();
-                 GrantleeTheme::Theme theme = q->loadTheme(dirIt.filePath(), dirName, defaultDesktopFileName);
-                 if (theme.isValid()) {
-                     QString themeName = theme.name();
--                    if (alreadyLoadedThemeName.contains(themeName)) {
--                        int i = 2;
--                        const QString originalName(theme.name());
--                        while (alreadyLoadedThemeName.contains(themeName)) {
--                            themeName = originalName + QStringLiteral(" (%1)").arg(i);
--                            ++i;
--                        }
--                        theme.d->name = themeName;
-+                    QMap<QString, GrantleeTheme::Theme>::iterator i = themes.find(dirName);
-+                    if (i != themes.end()) {
-+                        i.value().addThemeDir(dirIt.filePath());
-+                    } else {
-+                        themes.insert(dirName, theme);
-                     }
--                    alreadyLoadedThemeName << themeName;
--                    themes.insert(dirName, theme);
--                    //qDebug()<<" theme.name()"<<theme.name();
-                 }
-             }
-             watch->addDir(directory);
-@@ -366,7 +359,7 @@ QString ThemeManager::pathFromThemes(const QString &themesRelativePath, const QS
-                 GrantleeTheme::Theme theme = loadTheme(dirIt.filePath(), dirName, defaultDesktopFileName);
-                 if (theme.isValid()) {
-                     if (dirName == themeName) {
--                        return theme.absolutePath();
-+                        return theme.absolutePaths().first();
-                     }
-                 }
-             }
diff --git a/pkgs/applications/kde/grantleetheme/series b/pkgs/applications/kde/grantleetheme/series
deleted file mode 100644
index 9095599ea56..00000000000
--- a/pkgs/applications/kde/grantleetheme/series
+++ /dev/null
@@ -1 +0,0 @@
-grantlee-merge-theme-dirs.patch
diff --git a/pkgs/applications/kde/incidenceeditor.nix b/pkgs/applications/kde/incidenceeditor.nix
index 8224b98253b..30955d1c274 100644
--- a/pkgs/applications/kde/incidenceeditor.nix
+++ b/pkgs/applications/kde/incidenceeditor.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   akonadi, akonadi-mime, calendarsupport, eventviews, kdepim-apps-libs,
-  kdiagram, kldap, kmime, qtbase,
+  kdiagram, kldap, kmime, pimcommon, qtbase
 }:
 
 mkDerivation {
@@ -14,7 +14,7 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi akonadi-mime calendarsupport eventviews kdepim-apps-libs kdiagram
-    kldap kmime qtbase
+    kldap kmime pimcommon qtbase
   ];
   outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/applications/kde/kalzium.nix b/pkgs/applications/kde/kalzium.nix
new file mode 100644
index 00000000000..5bb51a6b4e1
--- /dev/null
+++ b/pkgs/applications/kde/kalzium.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, openbabel, avogadro, qtscript, kparts, kplotting, kunitconversion }:
+
+mkDerivation {
+  name = "kalzium";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/utilities/org.kde.kalzium";
+    description = "Kalzium is a program that shows you the Periodic Table of Elements";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    qtscript
+    #avogadro
+    kdoctools
+    ki18n
+    kio
+    openbabel
+    kparts
+    kplotting
+    kunitconversion
+  ];
+}
diff --git a/pkgs/applications/kde/kapman.nix b/pkgs/applications/kde/kapman.nix
new file mode 100644
index 00000000000..68af796dda4
--- /dev/null
+++ b/pkgs/applications/kde/kapman.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+  name = "kapman";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kapman";
+    description = "Kapman is a clone of the well known game Pac-Man";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/pkgs/applications/kde/katomic.nix b/pkgs/applications/kde/katomic.nix
new file mode 100644
index 00000000000..a1d0f12b6a1
--- /dev/null
+++ b/pkgs/applications/kde/katomic.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, knewstuff }:
+
+mkDerivation {
+  name = "katomic";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.katomic";
+    description = "KAtomic is a fun educational game built around molecular geometry";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    knewstuff
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/pkgs/applications/kde/kblackbox.nix b/pkgs/applications/kde/kblackbox.nix
new file mode 100644
index 00000000000..669c089df80
--- /dev/null
+++ b/pkgs/applications/kde/kblackbox.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+  name = "kblackbox";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kblackbox";
+    description = "KBlackbox is a game of hide and seek played on a grid of boxes";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/pkgs/applications/kde/kblocks.nix b/pkgs/applications/kde/kblocks.nix
new file mode 100644
index 00000000000..1dedabb2a08
--- /dev/null
+++ b/pkgs/applications/kde/kblocks.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+  name = "kblocks";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kblocks";
+    description = "KBlocks is the classic falling blocks game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/pkgs/applications/kde/kbounce.nix b/pkgs/applications/kde/kbounce.nix
new file mode 100644
index 00000000000..a24d2155180
--- /dev/null
+++ b/pkgs/applications/kde/kbounce.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, libkdegames, kconfig, kcrash, kio, ki18n }:
+
+mkDerivation {
+  name = "kbounce";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kbounce";
+    description = "KBounce is a single player arcade game with the elements of puzzle";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kconfig
+    kcrash
+    kio
+    ki18n
+  ];
+}
diff --git a/pkgs/applications/kde/kdegraphics-thumbnailers.nix b/pkgs/applications/kde/kdegraphics-thumbnailers.nix
index dc0b63594c4..2e7887582f9 100644
--- a/pkgs/applications/kde/kdegraphics-thumbnailers.nix
+++ b/pkgs/applications/kde/kdegraphics-thumbnailers.nix
@@ -9,14 +9,6 @@ mkDerivation {
     license = [ lib.licenses.lgpl21 ];
     maintainers = [ lib.maintainers.ttuegel ];
   };
-  patches = [
-    # Fix a bug with thumbnail.so processes hanging:
-    # https://bugs.kde.org/show_bug.cgi?id=404652
-    (fetchpatch {
-      url = "https://github.com/KDE/kdegraphics-thumbnailers/commit/3e2ea6e924d0e2a2cdd9bb435b06965117d6d34c.patch";
-      sha256 = "0fq85zhymmrq8vl0y6vgh87qf4c6fhcq704p4kpkaq7y0isxj4h1";
-    })
-  ];
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ karchive kio libkexiv2 libkdcraw ];
 }
diff --git a/pkgs/applications/kde/kdenlive.nix b/pkgs/applications/kde/kdenlive.nix
index e011a5652c5..795ba87ad5b 100644
--- a/pkgs/applications/kde/kdenlive.nix
+++ b/pkgs/applications/kde/kdenlive.nix
@@ -25,7 +25,7 @@
 , frei0r
 , phonon-backend-gstreamer
 , qtdeclarative
-, qtquickcontrols
+, qtquickcontrols2
 , qtscript
 , qtwebkit
 , rttr
@@ -60,7 +60,7 @@ mkDerivation {
     mlt
     phonon-backend-gstreamer
     qtdeclarative
-    qtquickcontrols
+    qtquickcontrols2
     qtscript
     qtwebkit
     shared-mime-info
diff --git a/pkgs/applications/kde/kdepim-apps-libs/default.nix b/pkgs/applications/kde/kdepim-apps-libs/default.nix
index 6189e8706db..57c02ea4e84 100644
--- a/pkgs/applications/kde/kdepim-apps-libs/default.nix
+++ b/pkgs/applications/kde/kdepim-apps-libs/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, copyPathsToStore, lib, kdepimTeam,
+  mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   akonadi, akonadi-contacts, grantlee, grantleetheme, kconfig, kconfigwidgets,
   kcontacts, ki18n, kiconthemes, kio, libkleo, pimcommon, prison,
@@ -11,7 +11,6 @@ mkDerivation {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
   };
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi akonadi-contacts grantlee grantleetheme kconfig kconfigwidgets
diff --git a/pkgs/applications/kde/kdepim-apps-libs/kdepim-apps-libs-grantlee-merge-theme-dirs.patch b/pkgs/applications/kde/kdepim-apps-libs/kdepim-apps-libs-grantlee-merge-theme-dirs.patch
deleted file mode 100644
index 02c369cc4ee..00000000000
--- a/pkgs/applications/kde/kdepim-apps-libs/kdepim-apps-libs-grantlee-merge-theme-dirs.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Index: kdepim-apps-libs-17.04.0/kaddressbookgrantlee/src/formatter/grantleecontactgroupformatter.cpp
-===================================================================
---- kdepim-apps-libs-17.04.0.orig/kaddressbookgrantlee/src/formatter/grantleecontactgroupformatter.cpp
-+++ kdepim-apps-libs-17.04.0/kaddressbookgrantlee/src/formatter/grantleecontactgroupformatter.cpp
-@@ -50,9 +50,9 @@ public:
-         mTemplateLoader.clear();
-     }
- 
--    void changeGrantleePath(const QString &path)
-+    void changeGrantleePath(const QStringList &paths)
-     {
--        mTemplateLoader->setTemplateDirs(QStringList() << path);
-+        mTemplateLoader->setTemplateDirs(paths);
-         mEngine->addTemplateLoader(mTemplateLoader);
- 
-         mSelfcontainedTemplate = mEngine->loadByName(QStringLiteral("contactgroup.html"));
-@@ -86,12 +86,12 @@ GrantleeContactGroupFormatter::~Grantlee
- 
- void GrantleeContactGroupFormatter::setAbsoluteThemePath(const QString &path)
- {
--    d->changeGrantleePath(path);
-+    d->changeGrantleePath(QStringList(path));
- }
- 
- void GrantleeContactGroupFormatter::setGrantleeTheme(const GrantleeTheme::Theme &theme)
- {
--    d->changeGrantleePath(theme.absolutePath());
-+    d->changeGrantleePath(theme.absolutePaths());
- }
- 
- inline static void setHashField(QVariantHash &hash, const QString &name, const QString &value)
-Index: kdepim-apps-libs-17.04.0/kaddressbookgrantlee/src/formatter/grantleecontactformatter.cpp
-===================================================================
---- kdepim-apps-libs-17.04.0.orig/kaddressbookgrantlee/src/formatter/grantleecontactformatter.cpp
-+++ kdepim-apps-libs-17.04.0/kaddressbookgrantlee/src/formatter/grantleecontactformatter.cpp
-@@ -74,9 +74,9 @@ public:
-         mTemplateLoader.clear();
-     }
- 
--    void changeGrantleePath(const QString &path)
-+    void changeGrantleePath(const QStringList &paths)
-     {
--        mTemplateLoader->setTemplateDirs(QStringList() << path);
-+        mTemplateLoader->setTemplateDirs(paths);
-         mEngine->addTemplateLoader(mTemplateLoader);
- 
-         mSelfcontainedTemplate = mEngine->loadByName(QStringLiteral("contact.html"));
-@@ -112,12 +112,12 @@ GrantleeContactFormatter::~GrantleeConta
- 
- void GrantleeContactFormatter::setAbsoluteThemePath(const QString &path)
- {
--    d->changeGrantleePath(path);
-+    d->changeGrantleePath(QStringList(path));
- }
- 
- void GrantleeContactFormatter::setGrantleeTheme(const GrantleeTheme::Theme &theme)
- {
--    d->changeGrantleePath(theme.absolutePath());
-+    d->changeGrantleePath(theme.absolutePaths());
- }
- 
- void GrantleeContactFormatter::setForceDisableQRCode(bool b)
diff --git a/pkgs/applications/kde/kdepim-apps-libs/series b/pkgs/applications/kde/kdepim-apps-libs/series
deleted file mode 100644
index 1e8a52b55e9..00000000000
--- a/pkgs/applications/kde/kdepim-apps-libs/series
+++ /dev/null
@@ -1 +0,0 @@
-kdepim-apps-libs-grantlee-merge-theme-dirs.patch
diff --git a/pkgs/applications/kde/kdepim-runtime/default.nix b/pkgs/applications/kde/kdepim-runtime/default.nix
index 65719514f96..e0a5d43e654 100644
--- a/pkgs/applications/kde/kdepim-runtime/default.nix
+++ b/pkgs/applications/kde/kdepim-runtime/default.nix
@@ -1,11 +1,11 @@
 {
-  mkDerivation, copyPathsToStore, lib, kdepimTeam,
+  mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   shared-mime-info,
   akonadi, akonadi-calendar, akonadi-contacts, akonadi-mime, akonadi-notes,
   kalarmcal, kcalutils, kcontacts, kdav, kdelibs4support, kidentitymanagement,
-  kimap, kmailtransport, kmbox, kmime, knotifications, knotifyconfig,
-  pimcommon, qtwebengine, libkgapi, qtnetworkauth, qtspeech, qtxmlpatterns,
+  kimap, kldap, kmailtransport, kmbox, kmime, knotifications, knotifyconfig,
+  pimcommon, qtwebengine, libkgapi, qca-qt5, qtnetworkauth, qtspeech, qtxmlpatterns,
 }:
 
 mkDerivation {
@@ -18,7 +18,7 @@ mkDerivation {
   buildInputs = [
     akonadi akonadi-calendar akonadi-contacts akonadi-mime akonadi-notes
     kalarmcal kcalutils kcontacts kdav kdelibs4support kidentitymanagement kimap
-    kmailtransport kmbox kmime knotifications knotifyconfig qtwebengine
-    pimcommon libkgapi qtnetworkauth qtspeech qtxmlpatterns
+    kldap kmailtransport kmbox kmime knotifications knotifyconfig qtwebengine
+    pimcommon libkgapi qca-qt5 qtnetworkauth qtspeech qtxmlpatterns
   ];
 }
diff --git a/pkgs/applications/kde/kdiamond.nix b/pkgs/applications/kde/kdiamond.nix
new file mode 100644
index 00000000000..26cd731beaf
--- /dev/null
+++ b/pkgs/applications/kde/kdiamond.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, kconfig, knotifyconfig }:
+
+mkDerivation {
+  name = "kdiamond";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kdiamond";
+    description = "KDiamond is a single player puzzle game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    knotifyconfig
+    kconfig
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/pkgs/applications/kde/kfloppy.nix b/pkgs/applications/kde/kfloppy.nix
new file mode 100644
index 00000000000..525520c159b
--- /dev/null
+++ b/pkgs/applications/kde/kfloppy.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, kcompletion, kxmlgui }:
+
+mkDerivation {
+  name = "kfloppy";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/utilities/org.kde.kfloppy";
+    description = "KFloppy is a utility to format 3.5\" and 5.25\" floppy disks";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdoctools
+    kcompletion
+    kxmlgui
+  ];
+}
diff --git a/pkgs/applications/kde/kigo.nix b/pkgs/applications/kde/kigo.nix
new file mode 100644
index 00000000000..6585f943f2a
--- /dev/null
+++ b/pkgs/applications/kde/kigo.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, knewstuff }:
+
+mkDerivation {
+  name = "kigo";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kigo";
+    description = "An open-source implementation of the popular Go game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    knewstuff
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/pkgs/applications/kde/killbots.nix b/pkgs/applications/kde/killbots.nix
new file mode 100644
index 00000000000..ec9b6de82c9
--- /dev/null
+++ b/pkgs/applications/kde/killbots.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+  name = "killbots";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.killbots";
+    description = "A game where you avoid robots";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/pkgs/applications/kde/kio-extras.nix b/pkgs/applications/kde/kio-extras.nix
index a7aa817576f..a803ba72982 100644
--- a/pkgs/applications/kde/kio-extras.nix
+++ b/pkgs/applications/kde/kio-extras.nix
@@ -1,9 +1,9 @@
 {
   mkDerivation, lib, extra-cmake-modules, kdoctools, shared-mime-info,
   exiv2, kactivities, karchive, kbookmarks, kconfig, kconfigwidgets,
-  kcoreaddons, kdbusaddons, kguiaddons, kdnssd, kiconthemes, ki18n, kio, khtml,
-  kdelibs4support, kpty, syntax-highlighting, libmtp, libssh, openexr, ilmbase,
-  openslp, phonon, qtsvg, samba, solid, gperf
+  kcoreaddons, kdbusaddons, kdsoap, kguiaddons, kdnssd, kiconthemes, ki18n, kio,
+  khtml, kdelibs4support, kpty, syntax-highlighting, libmtp, libssh, openexr,
+  ilmbase, openslp, phonon, qtsvg, samba, solid, gperf
 }:
 
 mkDerivation {
@@ -15,9 +15,9 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools shared-mime-info ];
   buildInputs = [
     exiv2 kactivities karchive kbookmarks kconfig kconfigwidgets kcoreaddons
-    kdbusaddons kguiaddons kdnssd kiconthemes ki18n kio khtml kdelibs4support
-    kpty syntax-highlighting libmtp libssh openexr openslp phonon qtsvg samba
-    solid gperf
+    kdbusaddons kdsoap kguiaddons kdnssd kiconthemes ki18n kio khtml
+    kdelibs4support kpty syntax-highlighting libmtp libssh openexr openslp
+    phonon qtsvg samba solid gperf
   ];
   CXXFLAGS = [ "-I${ilmbase.dev}/include/OpenEXR" ];
 }
diff --git a/pkgs/applications/kde/klettres.nix b/pkgs/applications/kde/klettres.nix
new file mode 100644
index 00000000000..e8e0a0aa59a
--- /dev/null
+++ b/pkgs/applications/kde/klettres.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, phonon, knewstuff }:
+
+mkDerivation {
+  name = "klettres";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/utilities/org.kde.klettres";
+    description = "KLettres is an application specially designed to help the user to learn an alphabet";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    phonon
+    knewstuff
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/pkgs/applications/kde/klines.nix b/pkgs/applications/kde/klines.nix
new file mode 100644
index 00000000000..c6ad883dd63
--- /dev/null
+++ b/pkgs/applications/kde/klines.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+  name = "klines";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.klines";
+    description = "KLines is a simple but highly addictive one player game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/pkgs/applications/kde/kmag.nix b/pkgs/applications/kde/kmag.nix
new file mode 100644
index 00000000000..701d8dbf130
--- /dev/null
+++ b/pkgs/applications/kde/kmag.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio }:
+
+mkDerivation {
+  name = "kmag";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/utilities/org.kde.kmag";
+    description = "KMag is a small utility for Linux to magnify a part of the screen";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/pkgs/applications/kde/kmail.nix b/pkgs/applications/kde/kmail.nix
index ab24f15a14b..d225eba8223 100644
--- a/pkgs/applications/kde/kmail.nix
+++ b/pkgs/applications/kde/kmail.nix
@@ -7,7 +7,7 @@
   kmail-account-wizard, kmailtransport, knotifications, knotifyconfig,
   kontactinterface, kparts, kpty, kservice, ktextwidgets, ktnef, kwallet,
   kwidgetsaddons, kwindowsystem, kxmlgui, libgravatar, libksieve, mailcommon,
-  messagelib, pim-sieve-editor, qtscript, qtwebengine, akonadi
+  messagelib, pim-sieve-editor, qtscript, qtwebengine, akonadi, kdepim-addons
 }:
 
 mkDerivation {
@@ -24,7 +24,7 @@ mkDerivation {
     knotifications knotifyconfig kontactinterface kparts kpty kservice
     ktextwidgets ktnef kwidgetsaddons kwindowsystem kxmlgui libgravatar
     libksieve mailcommon messagelib pim-sieve-editor qtscript qtwebengine
+    kdepim-addons
   ];
   propagatedUserEnvPkgs = [ kdepim-runtime kwallet akonadi ];
-  patches = [ ./kmail.patch ];
 }
diff --git a/pkgs/applications/kde/kmail.patch b/pkgs/applications/kde/kmail.patch
deleted file mode 100644
index 71a23be2d83..00000000000
--- a/pkgs/applications/kde/kmail.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/agents/archivemailagent/CMakeLists.txt b/agents/archivemailagent/CMakeLists.txt
-index 48ed076..9c56896 100644
---- a/agents/archivemailagent/CMakeLists.txt
-+++ b/agents/archivemailagent/CMakeLists.txt
-@@ -22,6 +22,7 @@ ki18n_wrap_ui(libarchivemailagent_SRCS ui/archivemailwidget.ui )
- add_library(archivemailagent STATIC ${libarchivemailagent_SRCS})
- target_link_libraries(archivemailagent
-     KF5::MailCommon
-+    KF5::Libkdepim
-     KF5::I18n
-     KF5::Notifications
-     KF5::IconThemes
-diff --git a/agents/followupreminderagent/CMakeLists.txt b/agents/followupreminderagent/CMakeLists.txt
-index a56b730..83604cf 100644
---- a/agents/followupreminderagent/CMakeLists.txt
-+++ b/agents/followupreminderagent/CMakeLists.txt
-@@ -23,6 +23,7 @@ target_link_libraries(followupreminderagent
-     KF5::AkonadiMime
-     KF5::AkonadiAgentBase
-     KF5::DBusAddons
-+    KF5::FollowupReminder
-     KF5::XmlGui
-     KF5::KIOWidgets
-     KF5::Notifications
diff --git a/pkgs/applications/kde/kmines.nix b/pkgs/applications/kde/kmines.nix
new file mode 100644
index 00000000000..9314cca4a23
--- /dev/null
+++ b/pkgs/applications/kde/kmines.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib, extra-cmake-modules, libkdegames, kconfig, kcrash, kdoctools, ki18n, kio }:
+
+mkDerivation {
+  name = "kmines";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kmines";
+    description = "KMines is a classic Minesweeper game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kconfig
+    kcrash
+    kio
+    kdoctools
+    ki18n
+  ];
+}
diff --git a/pkgs/applications/kde/knavalbattle.nix b/pkgs/applications/kde/knavalbattle.nix
new file mode 100644
index 00000000000..669f9961a49
--- /dev/null
+++ b/pkgs/applications/kde/knavalbattle.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, kdnssd }:
+
+mkDerivation {
+  name = "knavalbattle";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.knavalbattle";
+    description = "Naval Battle is a ship sinking game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+    kdnssd
+  ];
+}
diff --git a/pkgs/applications/kde/knetwalk.nix b/pkgs/applications/kde/knetwalk.nix
new file mode 100644
index 00000000000..88d08b56bb1
--- /dev/null
+++ b/pkgs/applications/kde/knetwalk.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+  name = "knetwalk";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.knetwalk";
+    description = "KNetWalk is a single player logic game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/pkgs/applications/kde/knights.nix b/pkgs/applications/kde/knights.nix
new file mode 100644
index 00000000000..ee5c37e2e94
--- /dev/null
+++ b/pkgs/applications/kde/knights.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, kplotting, plasma-framework, libkdegames }:
+
+mkDerivation {
+  name = "knights";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.knights";
+    description = "KNights is a chess game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    plasma-framework
+    kplotting
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/pkgs/applications/kde/kollision.nix b/pkgs/applications/kde/kollision.nix
new file mode 100644
index 00000000000..3c0c814cd15
--- /dev/null
+++ b/pkgs/applications/kde/kollision.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+  name = "kollision";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kollision";
+    description = "Kollision is a casual game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/pkgs/applications/kde/kontact.nix b/pkgs/applications/kde/kontact.nix
index 978baa925e5..eb28458392c 100644
--- a/pkgs/applications/kde/kontact.nix
+++ b/pkgs/applications/kde/kontact.nix
@@ -4,7 +4,7 @@
   qtwebengine,
   kcmutils, kcrash, kdbusaddons, kparts, kwindowsystem,
   akonadi, grantleetheme, kdepim-apps-libs, kontactinterface, kpimtextedit,
-  mailcommon, libkdepim
+  mailcommon, libkdepim, pimcommon
 }:
 
 mkDerivation {
@@ -18,6 +18,6 @@ mkDerivation {
     qtwebengine
     kcmutils kcrash kdbusaddons kparts kwindowsystem
     akonadi grantleetheme kdepim-apps-libs kontactinterface kpimtextedit
-    mailcommon libkdepim
+    mailcommon libkdepim pimcommon
   ];
 }
diff --git a/pkgs/applications/kde/kreversi.nix b/pkgs/applications/kde/kreversi.nix
new file mode 100644
index 00000000000..77ac4f05c8a
--- /dev/null
+++ b/pkgs/applications/kde/kreversi.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, lib, extra-cmake-modules, libkdegames, kdeclarative }:
+
+mkDerivation {
+  name = "kreversi";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kreversi";
+    description = "KReversi is a simple one player strategy game played against the computer";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdeclarative
+    libkdegames
+  ];
+}
diff --git a/pkgs/applications/kde/kshisen.nix b/pkgs/applications/kde/kshisen.nix
new file mode 100644
index 00000000000..7909ed8b2a3
--- /dev/null
+++ b/pkgs/applications/kde/kshisen.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, libkmahjongg }:
+
+mkDerivation {
+  name = "kshisen";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kshisen";
+    description = "KShisen is a solitaire-like game played using the standard set of Mahjong tiles";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    libkmahjongg
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/pkgs/applications/kde/ksquares.nix b/pkgs/applications/kde/ksquares.nix
new file mode 100644
index 00000000000..94a639a0d37
--- /dev/null
+++ b/pkgs/applications/kde/ksquares.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, libkdegames, kconfig, kcrash, kxmlgui }:
+
+mkDerivation {
+  name = "ksquares";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.ksquares";
+    description = "KSquares is a game of Dots and Boxes";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdoctools
+    libkdegames
+    kconfig
+    kcrash
+    kxmlgui
+  ];
+}
diff --git a/pkgs/applications/kde/kteatime.nix b/pkgs/applications/kde/kteatime.nix
new file mode 100644
index 00000000000..a69cb991acc
--- /dev/null
+++ b/pkgs/applications/kde/kteatime.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kconfig, kcrash, kiconthemes, knotifyconfig }:
+
+mkDerivation {
+  name = "kteatime";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/utilities/org.kde.kteatime";
+    description = "KTeaTime is a handy timer for steeping tea";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdoctools
+    ki18n
+    kconfig
+    kcrash
+    kiconthemes
+    knotifyconfig
+  ];
+}
diff --git a/pkgs/applications/kde/ktimer.nix b/pkgs/applications/kde/ktimer.nix
new file mode 100644
index 00000000000..aa755f35ce4
--- /dev/null
+++ b/pkgs/applications/kde/ktimer.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio }:
+
+mkDerivation {
+  name = "ktimer";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/utilities/org.kde.ktimer";
+    description = "KTimer is a little tool to execute programs after some time";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/pkgs/applications/kde/kturtle.nix b/pkgs/applications/kde/kturtle.nix
new file mode 100644
index 00000000000..e16c86dc136
--- /dev/null
+++ b/pkgs/applications/kde/kturtle.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, knewstuff }:
+
+mkDerivation {
+  name = "kturtle";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/utilities/org.kde.kturtle";
+    description = "KTurtle is an educational programming environment for learning how to program";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdoctools
+    ki18n
+    kio
+    knewstuff
+  ];
+}
diff --git a/pkgs/applications/kde/kwave.nix b/pkgs/applications/kde/kwave.nix
new file mode 100644
index 00000000000..349787d000b
--- /dev/null
+++ b/pkgs/applications/kde/kwave.nix
@@ -0,0 +1,37 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, qtmultimedia, kcompletion, kconfig, kcrash, kiconthemes, kio, audiofile, libsamplerate
+, alsaLib, libpulseaudio, flac, id3lib, libogg, libmad, libopus, libvorbis, fftw, librsvg }:
+
+mkDerivation {
+  name = "kwave";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/multimedia/org.kde.kwave";
+    description = "KWave is a simple media player";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    alsaLib
+    audiofile
+    kcrash
+    kdoctools
+    qtmultimedia
+    kcompletion
+    kconfig
+    kiconthemes
+    kio
+    libpulseaudio
+    libsamplerate
+    flac
+    fftw
+    id3lib
+    libogg
+    libmad
+    libopus
+    libvorbis
+    librsvg
+  ];
+}
diff --git a/pkgs/applications/kde/mailimporter.nix b/pkgs/applications/kde/mailimporter.nix
index f002ff0f340..5de58658777 100644
--- a/pkgs/applications/kde/mailimporter.nix
+++ b/pkgs/applications/kde/mailimporter.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   akonadi, akonadi-mime, karchive, kcompletion, kconfig, kcoreaddons, ki18n,
-  kmime, kxmlgui, libkdepim
+  kmime, kxmlgui, libkdepim, pimcommon
 }:
 
 mkDerivation {
@@ -14,6 +14,6 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi akonadi-mime karchive kcompletion kconfig kcoreaddons ki18n kmime
-    kxmlgui libkdepim
+    kxmlgui libkdepim pimcommon
   ];
 }
diff --git a/pkgs/applications/kde/marble.nix b/pkgs/applications/kde/marble.nix
index b02e29e3351..f690e453361 100644
--- a/pkgs/applications/kde/marble.nix
+++ b/pkgs/applications/kde/marble.nix
@@ -1,6 +1,6 @@
 { mkDerivation, lib
 , extra-cmake-modules, kdoctools
-, qtscript, qtsvg, qtquickcontrols, qtwebkit
+, qtscript, qtsvg, qtquickcontrols, qtwebengine
 , krunner, shared-mime-info, kparts, knewstuff
 , gpsd, perl
 }:
@@ -11,7 +11,7 @@ mkDerivation {
   outputs = [ "out" "dev" ];
   nativeBuildInputs = [ extra-cmake-modules kdoctools perl ];
   propagatedBuildInputs = [
-    qtscript qtsvg qtquickcontrols qtwebkit shared-mime-info krunner kparts
+    qtscript qtsvg qtquickcontrols qtwebengine shared-mime-info krunner kparts
     knewstuff gpsd
   ];
   preConfigure = ''
diff --git a/pkgs/applications/kde/messagelib.nix b/pkgs/applications/kde/messagelib.nix
index 23920a081c0..e31e61d35ca 100644
--- a/pkgs/applications/kde/messagelib.nix
+++ b/pkgs/applications/kde/messagelib.nix
@@ -5,7 +5,7 @@
   grantleetheme, karchive, kcodecs, kconfig, kconfigwidgets, kcontacts,
   kdepim-apps-libs, kiconthemes, kidentitymanagement, kio, kjobwidgets, kldap,
   kmailtransport, kmbox, kmime, kwindowsystem, libgravatar, libkdepim, libkleo,
-  pimcommon, qtwebengine, qtwebkit, syntax-highlighting
+  pimcommon, qca-qt5, qtwebengine, syntax-highlighting
 }:
 
 mkDerivation {
@@ -18,7 +18,7 @@ mkDerivation {
   buildInputs = [
     akonadi-notes akonadi-search gpgme grantlee grantleetheme karchive kcodecs
     kconfig kconfigwidgets kdepim-apps-libs kiconthemes kio kjobwidgets kldap
-    kmailtransport kmbox kmime kwindowsystem libgravatar libkdepim qtwebkit
+    kmailtransport kmbox kmime kwindowsystem libgravatar libkdepim qca-qt5
     syntax-highlighting
   ];
   propagatedBuildInputs = [
diff --git a/pkgs/applications/kde/picmi.nix b/pkgs/applications/kde/picmi.nix
new file mode 100644
index 00000000000..dd09e8f9cd8
--- /dev/null
+++ b/pkgs/applications/kde/picmi.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, lib
+, libkdegames, extra-cmake-modules
+, kdeclarative, knewstuff
+}:
+
+mkDerivation {
+  name = "picmi";
+  meta = with lib; {
+    description = "Nonogram game";
+    longDescription = ''The goal is to reveal the hidden pattern in the board by coloring or
+      leaving blank the cells in a grid according to numbers given at the side of the grid.
+      '';
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdeclarative
+    knewstuff
+    libkdegames
+  ];
+}
diff --git a/pkgs/applications/kde/pimcommon.nix b/pkgs/applications/kde/pimcommon.nix
index cd9ff2528fa..2e74f528aeb 100644
--- a/pkgs/applications/kde/pimcommon.nix
+++ b/pkgs/applications/kde/pimcommon.nix
@@ -1,9 +1,9 @@
 {
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
-  akonadi, akonadi-contacts, akonadi-mime, grantlee, karchive, kcodecs,
+  akonadi, akonadi-contacts, akonadi-mime, akonadi-search, grantlee, karchive, kcmutils, kcodecs,
   kcompletion, kconfig, kconfigwidgets, kcontacts, kdbusaddons,
-  kiconthemes, kimap, kio, kitemmodels, kjobwidgets, knewstuff, kpimtextedit,
+  kiconthemes, kimap, kio, kitemmodels, kjobwidgets, kldap, knewstuff, kpimtextedit,
   kpurpose, kwallet, kwindowsystem, libkdepim, qtwebengine
 }:
 
@@ -15,12 +15,12 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    akonadi-mime grantlee karchive kcodecs kcompletion kconfigwidgets
-    kdbusaddons kiconthemes kio kitemmodels kjobwidgets knewstuff kpimtextedit
+    akonadi-mime grantlee karchive kcmutils kcodecs kcompletion kconfigwidgets
+    kdbusaddons kiconthemes kio kitemmodels kjobwidgets knewstuff kldap kpimtextedit
     kpurpose kwallet kwindowsystem libkdepim qtwebengine
   ];
   propagatedBuildInputs = [
-    akonadi akonadi-contacts kconfig kcontacts kimap
+    akonadi akonadi-contacts akonadi-search kconfig kcontacts kimap
   ];
   outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/applications/kde/spectacle.nix b/pkgs/applications/kde/spectacle.nix
index 2d46b3cdaab..b980ea21df2 100644
--- a/pkgs/applications/kde/spectacle.nix
+++ b/pkgs/applications/kde/spectacle.nix
@@ -17,8 +17,8 @@ mkDerivation {
     knewstuff kwayland
   ];
   postPatch = ''
-    substituteInPlace desktop/org.kde.spectacle.desktop \
-      --replace "Exec=qdbus" "Exec=${lib.getBin qttools}/bin/qdbus"
+    substituteInPlace desktop/org.kde.spectacle.desktop.cmake \
+      --replace "Exec=@QtBinariesDir@/qdbus" "Exec=${lib.getBin qttools}/bin/qdbus"
   '';
   propagatedUserEnvPkgs = [ kipi-plugins libkipi ];
 }
diff --git a/pkgs/applications/kde/srcs.nix b/pkgs/applications/kde/srcs.nix
index dc6eb0f09e8..5bcb48acc18 100644
--- a/pkgs/applications/kde/srcs.nix
+++ b/pkgs/applications/kde/srcs.nix
@@ -1,1734 +1,1734 @@
 # DO NOT EDIT! This file is generated automatically.
-# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/applications/kde/fetch.sh
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/applications/kde
 { fetchurl, mirror }:
 
 {
   akonadi = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadi-19.12.3.tar.xz";
-      sha256 = "e41714d81ecbb629aaa0b267e0c32a4b1d83c6a45cf3f37d52232003b4c0f325";
-      name = "akonadi-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadi-20.08.1.tar.xz";
+      sha256 = "f930de5fae376f138e87c6d67357ab799a3397d865b55c50f771b4427d85f495";
+      name = "akonadi-20.08.1.tar.xz";
     };
   };
   akonadi-calendar = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadi-calendar-19.12.3.tar.xz";
-      sha256 = "c58d18153ef711a79962ba907e44338a0ddd62968e0a6c50486bba09a6e2a446";
-      name = "akonadi-calendar-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadi-calendar-20.08.1.tar.xz";
+      sha256 = "896ec2523203022bf70e23897d59b64c8bfffad4ead5b6756555ab34a4047ef5";
+      name = "akonadi-calendar-20.08.1.tar.xz";
     };
   };
   akonadi-calendar-tools = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadi-calendar-tools-19.12.3.tar.xz";
-      sha256 = "ad2c23cf188228dc697d39e2120b56ce445bbea3eb46721794cd6344aa7e94ba";
-      name = "akonadi-calendar-tools-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadi-calendar-tools-20.08.1.tar.xz";
+      sha256 = "21ccc2e1090eeda1eba0c29ab51c3bae1e8f57aedead569c4ed7995f5ad6cffc";
+      name = "akonadi-calendar-tools-20.08.1.tar.xz";
     };
   };
   akonadiconsole = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadiconsole-19.12.3.tar.xz";
-      sha256 = "0dedcccfcfd7e6ad9a5af0aa61ce05f26cbb625d8bf6b6d210ac6e3c5813487f";
-      name = "akonadiconsole-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadiconsole-20.08.1.tar.xz";
+      sha256 = "077ee646babbc4ca4075505d3dd830f4f5b8b1253617228e96f565fe23bcaad9";
+      name = "akonadiconsole-20.08.1.tar.xz";
     };
   };
   akonadi-contacts = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadi-contacts-19.12.3.tar.xz";
-      sha256 = "b0baed9edb8c05b6d9b8db84239cd83a334d8f1d14d4aa8027dc1139a543eadf";
-      name = "akonadi-contacts-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadi-contacts-20.08.1.tar.xz";
+      sha256 = "eee775960345ec0ca13b0550bb56fb6875867921fa7b9412a2c4b0dfb8ab4366";
+      name = "akonadi-contacts-20.08.1.tar.xz";
     };
   };
   akonadi-import-wizard = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadi-import-wizard-19.12.3.tar.xz";
-      sha256 = "2c1491e4f5994ed0d317a27cc717184a86f7d92c4b44f8bd056e147e80bee8c5";
-      name = "akonadi-import-wizard-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadi-import-wizard-20.08.1.tar.xz";
+      sha256 = "d895c866a05f0a55ca8f2d852ed0ae3fdc13aa160cbcbaf9f1017443458d9526";
+      name = "akonadi-import-wizard-20.08.1.tar.xz";
     };
   };
   akonadi-mime = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadi-mime-19.12.3.tar.xz";
-      sha256 = "13bdf9a233a183d5aeee1be0991617fca6d73ffd35bc14ca0d18714149f04392";
-      name = "akonadi-mime-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadi-mime-20.08.1.tar.xz";
+      sha256 = "3c7a57f798a7db1e1aebc3162c20f58a0fb9ed9e703078344ef1de215c73ff0b";
+      name = "akonadi-mime-20.08.1.tar.xz";
     };
   };
   akonadi-notes = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadi-notes-19.12.3.tar.xz";
-      sha256 = "a34c2420190925b985b0629d7d2d19be04443cfeeaf284229666338e039e56e2";
-      name = "akonadi-notes-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadi-notes-20.08.1.tar.xz";
+      sha256 = "afc0cdba349f0b2edece44221a7c3c532d07251ec51f05994e83a1d79c4f50fc";
+      name = "akonadi-notes-20.08.1.tar.xz";
     };
   };
   akonadi-search = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadi-search-19.12.3.tar.xz";
-      sha256 = "60072a36f6c817d009a8476bad2e80c4131b14358e03b4889a03aa42340ed041";
-      name = "akonadi-search-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadi-search-20.08.1.tar.xz";
+      sha256 = "db305bfc55535d8812d84a119e4dcf04e7b87c345e7ac3a884469cbf55abca83";
+      name = "akonadi-search-20.08.1.tar.xz";
     };
   };
   akregator = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akregator-19.12.3.tar.xz";
-      sha256 = "63db0f6c75bffe9235122201445d151f4eaa7061d2a8df4eb924bca1a4600f68";
-      name = "akregator-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akregator-20.08.1.tar.xz";
+      sha256 = "21751a5a14b188649caeeb19cbcef877dd00548a29c073f8694e227d951c7a00";
+      name = "akregator-20.08.1.tar.xz";
     };
   };
   analitza = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/analitza-19.12.3.tar.xz";
-      sha256 = "47ca3acaf2d2f52e91cd2253742ab97d9b07abc3fef0d632bfc36d253dbf161b";
-      name = "analitza-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/analitza-20.08.1.tar.xz";
+      sha256 = "91c691df8be52255db9387549c6392ad2c5358c12e805f3a96520e2aa0c147de";
+      name = "analitza-20.08.1.tar.xz";
     };
   };
   ark = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ark-19.12.3.tar.xz";
-      sha256 = "78594029729c197fc90321850696f1bd189b40d8d7fbc9faf51ad6b2ab744a07";
-      name = "ark-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ark-20.08.1.tar.xz";
+      sha256 = "32e8546b186b88efc9d4688e02def0b6225d921f9b92cfcd328417f09ec0f725";
+      name = "ark-20.08.1.tar.xz";
     };
   };
   artikulate = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/artikulate-19.12.3.tar.xz";
-      sha256 = "c27a5cb98a8e2975638fe74683a73f92c160ce133b133878844062dd99ffded6";
-      name = "artikulate-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/artikulate-20.08.1.tar.xz";
+      sha256 = "b626a6a38f6eb50d64607032d5b100351c4242e40a4a13cdce4769e188ee361a";
+      name = "artikulate-20.08.1.tar.xz";
     };
   };
   audiocd-kio = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/audiocd-kio-19.12.3.tar.xz";
-      sha256 = "b920170ae816f29a61a6f6b25df68c9125a5d4d9fec225feee45e46317d64d42";
-      name = "audiocd-kio-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/audiocd-kio-20.08.1.tar.xz";
+      sha256 = "7662849929c96d1745ce4ac7ddc931be2eff5e3cc755f2cd959b4d3f4b20b9b0";
+      name = "audiocd-kio-20.08.1.tar.xz";
     };
   };
   baloo-widgets = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/baloo-widgets-19.12.3.tar.xz";
-      sha256 = "236c0bb0bcb345f4ce5f07d591bded6221383bc7b190b42b96999893390cd8a5";
-      name = "baloo-widgets-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/baloo-widgets-20.08.1.tar.xz";
+      sha256 = "9f48cb2f1b45e46828b1656abaeb60e836650015c07277ec52bea053d0058958";
+      name = "baloo-widgets-20.08.1.tar.xz";
     };
   };
   blinken = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/blinken-19.12.3.tar.xz";
-      sha256 = "06ef385ab73d99fa3f1925a6f2ef522f691d04cd594777f5d9fa52a5f2e45a94";
-      name = "blinken-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/blinken-20.08.1.tar.xz";
+      sha256 = "53b30435ea0d83f713ecb53219173aa55c0d11194830972734a4acc9a5a28c5a";
+      name = "blinken-20.08.1.tar.xz";
     };
   };
   bomber = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/bomber-19.12.3.tar.xz";
-      sha256 = "ea4926fe08c62ac5da28c3bb480a6986e51f7a77e3245d1dc1603c38617da4b0";
-      name = "bomber-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/bomber-20.08.1.tar.xz";
+      sha256 = "a4b2f5dcce7e125da30bef6bcc9746b67f8451d2040696714686dd618d80a96c";
+      name = "bomber-20.08.1.tar.xz";
     };
   };
   bovo = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/bovo-19.12.3.tar.xz";
-      sha256 = "ac67aff75c1e8e0d1a1a8142ae94431e4f39565f411287f57c2778f8820316af";
-      name = "bovo-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/bovo-20.08.1.tar.xz";
+      sha256 = "5d5ee817a73de0deef6b7c35a798bda02c6d15e9dd0e7379a13c23c0832fe0d1";
+      name = "bovo-20.08.1.tar.xz";
     };
   };
   calendarsupport = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/calendarsupport-19.12.3.tar.xz";
-      sha256 = "ecbd194b5aa39284d33f7f2ddca75175f8699efee1bfbd5000ea10076567bae8";
-      name = "calendarsupport-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/calendarsupport-20.08.1.tar.xz";
+      sha256 = "38d6e695725c8484e1492d431144a0ecd1b66535bc07ac77e1f0eb1499d8fc32";
+      name = "calendarsupport-20.08.1.tar.xz";
     };
   };
   cantor = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/cantor-19.12.3.tar.xz";
-      sha256 = "8347160f18993f53c857ec0d418dfebbc533878ad9f480047646d121e4e644cb";
-      name = "cantor-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/cantor-20.08.1.tar.xz";
+      sha256 = "c44b96ac861302589923d144bf7b5d529b6eb2f91cea2d014944a0516de31a05";
+      name = "cantor-20.08.1.tar.xz";
     };
   };
   cervisia = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/cervisia-19.12.3.tar.xz";
-      sha256 = "733a90f521cd79157f6d02eeb28376bc703239800473e8cf366611dd4f3342a6";
-      name = "cervisia-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/cervisia-20.08.1.tar.xz";
+      sha256 = "eedd3b3f00b97d513437fdbd2eeaa28cd6db29512983b82196bdededd8b701f2";
+      name = "cervisia-20.08.1.tar.xz";
     };
   };
   dolphin = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/dolphin-19.12.3.tar.xz";
-      sha256 = "ba16f4d5be5ccc3c135a913f2e3c7dd3b7a492cfc9ec9ae518f714fcd7c2ab47";
-      name = "dolphin-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/dolphin-20.08.1.tar.xz";
+      sha256 = "7d6ef04b866366a0ff3b199aac082ade41b3748b225ef7675ea42ccf48cbdc24";
+      name = "dolphin-20.08.1.tar.xz";
     };
   };
   dolphin-plugins = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/dolphin-plugins-19.12.3.tar.xz";
-      sha256 = "7dbd5c0fe4281c46df789f86f468c4ea32949285055cae4652bab3de59acdfd3";
-      name = "dolphin-plugins-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/dolphin-plugins-20.08.1.tar.xz";
+      sha256 = "a00cab6b30c9b5a4c0164704c9eab2cbb661928e775f83acb3691af77bf17427";
+      name = "dolphin-plugins-20.08.1.tar.xz";
     };
   };
   dragon = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/dragon-19.12.3.tar.xz";
-      sha256 = "c5b09b2bd37f4e86f8412d3b950331d330257ba53278b1a569f36bf3fbf560ee";
-      name = "dragon-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/dragon-20.08.1.tar.xz";
+      sha256 = "691bc338ca25e70e9a43cbcdf50f2e0aa92643bdad0329bdc3e09373ac287040";
+      name = "dragon-20.08.1.tar.xz";
     };
   };
   elisa = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/elisa-19.12.3.tar.xz";
-      sha256 = "28ad795c1d993969d49ab71514129589a71ee6fe8a2de785e22f17f5af7c3d32";
-      name = "elisa-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/elisa-20.08.1.tar.xz";
+      sha256 = "1a0234a074a70bfcd4b2ccc14664b2cc7f88d2ccfd33c1716d35c27a31e258c0";
+      name = "elisa-20.08.1.tar.xz";
     };
   };
   eventviews = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/eventviews-19.12.3.tar.xz";
-      sha256 = "e2ac6a77c6bdee008229a2b03262ac5602e0cabfd325a92df58be63aaa7db662";
-      name = "eventviews-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/eventviews-20.08.1.tar.xz";
+      sha256 = "b46e6ad32a503ce1dc1e5ade71e79f44011362fe569836ca1f2cd11c560a5a73";
+      name = "eventviews-20.08.1.tar.xz";
     };
   };
   ffmpegthumbs = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ffmpegthumbs-19.12.3.tar.xz";
-      sha256 = "cc4a1c3b4768dc674d210294a9957d622448cbe9cdaf713c1cb40bff3a79260e";
-      name = "ffmpegthumbs-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ffmpegthumbs-20.08.1.tar.xz";
+      sha256 = "8b7cd6bd27b29977d0406b08c2cf33988c651a2f59392be47f076e49eea5673b";
+      name = "ffmpegthumbs-20.08.1.tar.xz";
     };
   };
   filelight = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/filelight-19.12.3.tar.xz";
-      sha256 = "9ea78509f932cd2bd553d934e2af75c25d0b65d85d2b0ab4a007ac5929b2d3b5";
-      name = "filelight-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/filelight-20.08.1.tar.xz";
+      sha256 = "9677038781a1d66238da0e54f967c9c97cb44d593dbe164b8e26f38d0ac75330";
+      name = "filelight-20.08.1.tar.xz";
     };
   };
   granatier = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/granatier-19.12.3.tar.xz";
-      sha256 = "aa2e410e4eeae74f3902028069955017a31a922dff98b81850f20743f7b54c95";
-      name = "granatier-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/granatier-20.08.1.tar.xz";
+      sha256 = "7b0d53fd50fdb56270f8fd53d45478c0f1be10bb67b901db08b0f413c4baeb3e";
+      name = "granatier-20.08.1.tar.xz";
     };
   };
   grantlee-editor = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/grantlee-editor-19.12.3.tar.xz";
-      sha256 = "5df3e5ce7933290f9f6423bdbcb0ff5614a1a4b6fda250a37bd3ed57647f8a3c";
-      name = "grantlee-editor-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/grantlee-editor-20.08.1.tar.xz";
+      sha256 = "edeb994eab7001bcf8462834a61ae1a045e9122ae104d31bdeed2ac7497b6306";
+      name = "grantlee-editor-20.08.1.tar.xz";
     };
   };
   grantleetheme = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/grantleetheme-19.12.3.tar.xz";
-      sha256 = "cc0ce448c9d8396dcadea2a43089feca8e1074572df42752f70dd176676f29f9";
-      name = "grantleetheme-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/grantleetheme-20.08.1.tar.xz";
+      sha256 = "9a8f91ce63a3b143d47d8e3fbd1378732639cd3daf5b5789989164d8225fe54f";
+      name = "grantleetheme-20.08.1.tar.xz";
     };
   };
   gwenview = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/gwenview-19.12.3.tar.xz";
-      sha256 = "b453cd55b7409bf8e4446a1b714dc66e73a0376d2da65b184b82f786767164e7";
-      name = "gwenview-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/gwenview-20.08.1.tar.xz";
+      sha256 = "df1c45317aff9aece8b023cd87aab62c9cd222520795922564e89fdc9df48995";
+      name = "gwenview-20.08.1.tar.xz";
     };
   };
   incidenceeditor = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/incidenceeditor-19.12.3.tar.xz";
-      sha256 = "c608a95f6d09433b378f5df0243eff77be3738fb56f99ab439774f2cad5908a6";
-      name = "incidenceeditor-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/incidenceeditor-20.08.1.tar.xz";
+      sha256 = "eecc51eb405c473eb20449842dcdb3dac96712bbcf7aeedaa06614e1da3e0bbe";
+      name = "incidenceeditor-20.08.1.tar.xz";
     };
   };
   juk = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/juk-19.12.3.tar.xz";
-      sha256 = "4bc4210d223afc23cb6edc9262eceee038ecc6243a550698e676230168943611";
-      name = "juk-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/juk-20.08.1.tar.xz";
+      sha256 = "aa9a93a0befacf401cf41d8358b4987d8b370b4c153f3b66e05e922472e004a8";
+      name = "juk-20.08.1.tar.xz";
     };
   };
   k3b = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/k3b-19.12.3.tar.xz";
-      sha256 = "832c314d528ed21971d9d9d26c1c4d6c61323c9b3b01787d710541e3651575a5";
-      name = "k3b-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/k3b-20.08.1.tar.xz";
+      sha256 = "66fad59f4e35c24dc8868c46ff45ffa66048501e0a6ac0c23a8b9e957033e50f";
+      name = "k3b-20.08.1.tar.xz";
     };
   };
   kaccounts-integration = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kaccounts-integration-19.12.3.tar.xz";
-      sha256 = "452b95113de5fb0d19a13ef75e229ee07b0e92cc1e7a17e9a2dc7879121d9d33";
-      name = "kaccounts-integration-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kaccounts-integration-20.08.1.tar.xz";
+      sha256 = "b65ec11be0c2b612222de382d24345f19be0cd264243f0d954da8a81b80034bc";
+      name = "kaccounts-integration-20.08.1.tar.xz";
     };
   };
   kaccounts-providers = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kaccounts-providers-19.12.3.tar.xz";
-      sha256 = "8774e9a8113e4aba593afeff655e38f6259c78e7dbaf1d95ea00235be880f3dd";
-      name = "kaccounts-providers-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kaccounts-providers-20.08.1.tar.xz";
+      sha256 = "481a2e2708773197b63937233ade6380c0b64e13a1610f27aa2751b6ee3624a4";
+      name = "kaccounts-providers-20.08.1.tar.xz";
     };
   };
   kaddressbook = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kaddressbook-19.12.3.tar.xz";
-      sha256 = "1dede421e6fef2b1abc7d36dd1855cef43cc82de909a432cd38cff42d4168fba";
-      name = "kaddressbook-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kaddressbook-20.08.1.tar.xz";
+      sha256 = "f7fb72cbff43ae6dfb222e5b1c49947602086412b97634484eb3cc86ab773aa2";
+      name = "kaddressbook-20.08.1.tar.xz";
     };
   };
   kajongg = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kajongg-19.12.3.tar.xz";
-      sha256 = "23e2b1be670b48bdd027e4e7a57e86a94b322afe6d37d8492c3d17689decfae5";
-      name = "kajongg-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kajongg-20.08.1.tar.xz";
+      sha256 = "801c0cc63767809ea4909ceb66dbbbb3e8ad400db7a24c80dc6ae8f3f5c9a6b9";
+      name = "kajongg-20.08.1.tar.xz";
     };
   };
   kalarm = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kalarm-19.12.3.tar.xz";
-      sha256 = "526ab8884752c15622233db8b72e88d0c22a7a1bd265763d850b6e18e32de417";
-      name = "kalarm-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kalarm-20.08.1.tar.xz";
+      sha256 = "22fea5be32c8db6b0903f216307f20dafc2ac69c620d9b4512e1034c0294c207";
+      name = "kalarm-20.08.1.tar.xz";
     };
   };
   kalarmcal = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kalarmcal-19.12.3.tar.xz";
-      sha256 = "0ec5188f1164d91de702639ab2f85a713889feef48fc02dfe7385c945d06aa60";
-      name = "kalarmcal-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kalarmcal-20.08.1.tar.xz";
+      sha256 = "745515662c23154480e73f4a8d6e9ec760d01770383c1dd7f31d3f1463be7602";
+      name = "kalarmcal-20.08.1.tar.xz";
     };
   };
   kalgebra = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kalgebra-19.12.3.tar.xz";
-      sha256 = "ac865dded31b61c438ddb9db721543b8facba79c9b39365750b4bebfe2645640";
-      name = "kalgebra-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kalgebra-20.08.1.tar.xz";
+      sha256 = "a5ab916eba3bfd7535408768e6530e993bc1097ef1a2a0af5aa804aa1f713caf";
+      name = "kalgebra-20.08.1.tar.xz";
     };
   };
   kalzium = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kalzium-19.12.3.tar.xz";
-      sha256 = "e44f359d1343c30cf1993a3970a3e610d0d5782f92a6b331b035cf4fef104195";
-      name = "kalzium-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kalzium-20.08.1.tar.xz";
+      sha256 = "c2c4a823525ab5927c39f29e2150f34fc03947fb852aea1bdb73390c5a709188";
+      name = "kalzium-20.08.1.tar.xz";
     };
   };
   kamera = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kamera-19.12.3.tar.xz";
-      sha256 = "22e19527bf9748cdc298be4c3fa2cb0a3b8b337da3a3a804c9d6066d7f3e1110";
-      name = "kamera-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kamera-20.08.1.tar.xz";
+      sha256 = "f5b04ca46313de1bb0a57253650d1d1578f45796035888b759ad224b5866ee96";
+      name = "kamera-20.08.1.tar.xz";
     };
   };
   kamoso = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kamoso-19.12.3.tar.xz";
-      sha256 = "9ae14c4c80cdbbf2ce2e92db5e9c814fbd685e81aa5c319aac5477649fc39fe4";
-      name = "kamoso-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kamoso-20.08.1.tar.xz";
+      sha256 = "ed8fa6a6127a8bea5294534aa2552526af101f981de58512fbb9f7dfd78e8984";
+      name = "kamoso-20.08.1.tar.xz";
     };
   };
   kanagram = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kanagram-19.12.3.tar.xz";
-      sha256 = "441cae90d3b70dbef40bebbcf1325fa06e0df174a3f961b4b117a5fa1b40d6e3";
-      name = "kanagram-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kanagram-20.08.1.tar.xz";
+      sha256 = "c810db58884e80d95baef149b8ced8fff7c5e48d6057478e81a5c8895ae67b42";
+      name = "kanagram-20.08.1.tar.xz";
     };
   };
   kapman = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kapman-19.12.3.tar.xz";
-      sha256 = "3c81e3395ce2b2ea0937b09c0836cb58b8a941c2b7e2a27bd9741b2a9be1c1dd";
-      name = "kapman-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kapman-20.08.1.tar.xz";
+      sha256 = "934da85c5d9c99a0ed658fe4d99df258246716e04e13ceb3e18b11cc035c4f4c";
+      name = "kapman-20.08.1.tar.xz";
     };
   };
   kapptemplate = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kapptemplate-19.12.3.tar.xz";
-      sha256 = "5bef4e4fb74da3102cba6672584195962514ee3f53fb369b48d492d6ce7255ad";
-      name = "kapptemplate-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kapptemplate-20.08.1.tar.xz";
+      sha256 = "7b350467e14bc310a695ffa3481afa7857de2f6ec714915ee2d8a25a6511909b";
+      name = "kapptemplate-20.08.1.tar.xz";
     };
   };
   kate = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kate-19.12.3.tar.xz";
-      sha256 = "f60b52e5a6a78920ac703a458f1eaf0ced02ffcd8b5f2d49de9a48674eeb007c";
-      name = "kate-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kate-20.08.1.tar.xz";
+      sha256 = "44607f6a1d5ca8bb7173bedbeabef65bb98dde0fd009987bd8139fbb53959146";
+      name = "kate-20.08.1.tar.xz";
     };
   };
   katomic = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/katomic-19.12.3.tar.xz";
-      sha256 = "d7ed527e2546e94cb091e433a2e61618301152704c48e1f003e1f8e60b4f0cbd";
-      name = "katomic-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/katomic-20.08.1.tar.xz";
+      sha256 = "1aa655857bb1708880b6fbf4e54acdfe1cb7f47a9494249978251d870b86f13a";
+      name = "katomic-20.08.1.tar.xz";
     };
   };
   kbackup = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kbackup-19.12.3.tar.xz";
-      sha256 = "1761009f9cd854d3fb4f98eb24b5ee7f3c42c4541f7cfb2ff1589786c86bdc99";
-      name = "kbackup-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kbackup-20.08.1.tar.xz";
+      sha256 = "08b0c43fca2dba65e1173841343daf8e6e37e11101be7315011e8345ba9b1e72";
+      name = "kbackup-20.08.1.tar.xz";
     };
   };
   kblackbox = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kblackbox-19.12.3.tar.xz";
-      sha256 = "dffb910a5d429dfc231b7d2185119430856d26af2c027d34c551a6d664ae49c6";
-      name = "kblackbox-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kblackbox-20.08.1.tar.xz";
+      sha256 = "3f09d483fa3a3013e685df9efd9cee8d9d1b9f0e017cc97d92636bae89fc469c";
+      name = "kblackbox-20.08.1.tar.xz";
     };
   };
   kblocks = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kblocks-19.12.3.tar.xz";
-      sha256 = "5bc5cb14b91c9b230563388b4d935211975bae34ed36cb0479cbf25bc3b652fb";
-      name = "kblocks-19.12.3.tar.xz";
-    };
-  };
-  kblog = {
-    version = "19.12.3";
-    src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kblog-19.12.3.tar.xz";
-      sha256 = "3fba584c4c217c5b5b3be52752f8f3c371fb877fe3b730a48711028fedc6b3d4";
-      name = "kblog-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kblocks-20.08.1.tar.xz";
+      sha256 = "e2b6e5b0727ca45d6b0f0e8b9f0aa029a0acb9bdebeac5bfd849455e560977ed";
+      name = "kblocks-20.08.1.tar.xz";
     };
   };
   kbounce = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kbounce-19.12.3.tar.xz";
-      sha256 = "d1b7ac99e54070e1e28a3449e8773691e90625c9f881cf94352ef752700197d0";
-      name = "kbounce-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kbounce-20.08.1.tar.xz";
+      sha256 = "99af3bd297fcbecb9eaa4222bbb5122144beff9cb999420bf45339d61375f2a4";
+      name = "kbounce-20.08.1.tar.xz";
     };
   };
   kbreakout = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kbreakout-19.12.3.tar.xz";
-      sha256 = "ca662c9f2c6765f5f8b07bd4cc2e2aa0a43b69fec6428c3deda2cfad0ab675fa";
-      name = "kbreakout-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kbreakout-20.08.1.tar.xz";
+      sha256 = "0d57c105f2778b68c0b5ff8cb3e02d5c7ea2956b90d48d126ff1118b94d5f2fa";
+      name = "kbreakout-20.08.1.tar.xz";
     };
   };
   kbruch = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kbruch-19.12.3.tar.xz";
-      sha256 = "522ddae0b2ec640e70c717a9fe0d6a95aef1ed3fe2acbca4b93a99a309abd559";
-      name = "kbruch-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kbruch-20.08.1.tar.xz";
+      sha256 = "f04bf902a31b68d18c69afff511a591817a35f5ad866de4f84aa1b664b35a41e";
+      name = "kbruch-20.08.1.tar.xz";
     };
   };
   kcachegrind = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kcachegrind-19.12.3.tar.xz";
-      sha256 = "a30b70bac32f2b33c3c90b8c17754cfbf7d293c9eff0d573747eca2b45353b41";
-      name = "kcachegrind-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kcachegrind-20.08.1.tar.xz";
+      sha256 = "59c43296aaa7d8a5dbf782ba9248ee8bb6308e7bd7bdfc0b99e1c912529337f2";
+      name = "kcachegrind-20.08.1.tar.xz";
     };
   };
   kcalc = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kcalc-19.12.3.tar.xz";
-      sha256 = "bbda4fc074e1ea748e95840aa79c51fdf0a1943ebb63ce6c7b68c197831258bd";
-      name = "kcalc-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kcalc-20.08.1.tar.xz";
+      sha256 = "46702fe8eca8b604e15f3f2eb4d1f17b8601b6ad0b03bb9cd0a0dd7ed7a13c49";
+      name = "kcalc-20.08.1.tar.xz";
     };
   };
   kcalutils = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kcalutils-19.12.3.tar.xz";
-      sha256 = "00da1f331110a63c3d3c2c96394ead3d282f582d73fa925065560a50807fb7ff";
-      name = "kcalutils-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kcalutils-20.08.1.tar.xz";
+      sha256 = "ae6a8ca02722f8f593a8d248ab3d043cc68be23d18f820e150af000a902601c2";
+      name = "kcalutils-20.08.1.tar.xz";
     };
   };
   kcharselect = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kcharselect-19.12.3.tar.xz";
-      sha256 = "9be6ac607148b0815bd985075fbb97d44561fdd6a955b60f0afc728f9cbd978b";
-      name = "kcharselect-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kcharselect-20.08.1.tar.xz";
+      sha256 = "36575e9fd0a93fb3ddaf6a75a213786351bdd3ab8c167dc1a3e2824a23a6655b";
+      name = "kcharselect-20.08.1.tar.xz";
     };
   };
   kcolorchooser = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kcolorchooser-19.12.3.tar.xz";
-      sha256 = "cb0395c1b4f953fd51129cfe5088702ec261f84cc045f889e22c13e81793744a";
-      name = "kcolorchooser-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kcolorchooser-20.08.1.tar.xz";
+      sha256 = "20cae01bd5e8c824f8e7900badd0d66464c363a749a1ce9fe6fe3a1e31c99ade";
+      name = "kcolorchooser-20.08.1.tar.xz";
     };
   };
   kcron = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kcron-19.12.3.tar.xz";
-      sha256 = "22d07834e8431d0fcc756a0e7d92d4e8993008766bf336254f8650c9455c9ab0";
-      name = "kcron-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kcron-20.08.1.tar.xz";
+      sha256 = "24ee9aee48bef951d6ac1fff32271417c4eb2239f0ec1de8388f2bae55ce83f5";
+      name = "kcron-20.08.1.tar.xz";
     };
   };
-  kdav = {
-    version = "19.12.3";
+  kdebugsettings = {
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdav-19.12.3.tar.xz";
-      sha256 = "7a0ed47378e064536b26dfdfcf7abcdb8dd2ec253a7bbcef7962b701d368872a";
-      name = "kdav-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdebugsettings-20.08.1.tar.xz";
+      sha256 = "cac50d34c8a31805924aa75755475a754109fc643e95fe50188477522d113a55";
+      name = "kdebugsettings-20.08.1.tar.xz";
     };
   };
-  kdebugsettings = {
-    version = "19.12.3";
+  kdeconnect-kde = {
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdebugsettings-19.12.3.tar.xz";
-      sha256 = "ad18d13dd0943a3651ec4729441899b103bd2dc743a4a373ce7bd14fb38dd3e0";
-      name = "kdebugsettings-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdeconnect-kde-20.08.1.tar.xz";
+      sha256 = "8ebfe36b4d08b36881082a3748f63a7c645b51e8f3b094607512817e9f6ce668";
+      name = "kdeconnect-kde-20.08.1.tar.xz";
     };
   };
   kde-dev-scripts = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kde-dev-scripts-19.12.3.tar.xz";
-      sha256 = "94c0ba9de369dd6af14dcea505616025bf06599618a6c7557861aa9fb89ea628";
-      name = "kde-dev-scripts-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kde-dev-scripts-20.08.1.tar.xz";
+      sha256 = "f7f99a199fea69019738e6d2147e5f6e4419835aa2c39e6d60f4d2e5d629ba96";
+      name = "kde-dev-scripts-20.08.1.tar.xz";
     };
   };
   kde-dev-utils = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kde-dev-utils-19.12.3.tar.xz";
-      sha256 = "772ec425865082b8be3650cf0af10ad943f38096036227cab22405b32c4e1fae";
-      name = "kde-dev-utils-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kde-dev-utils-20.08.1.tar.xz";
+      sha256 = "8105a5b911643dca1f0c476c9247282f80e4ea17bae06dcca63ba9638bf5d21d";
+      name = "kde-dev-utils-20.08.1.tar.xz";
     };
   };
   kdeedu-data = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdeedu-data-19.12.3.tar.xz";
-      sha256 = "76fd5c0efaf339bcfc5ac9f131bac8889cff1df2dd3452ea7dd507b8d9e2645b";
-      name = "kdeedu-data-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdeedu-data-20.08.1.tar.xz";
+      sha256 = "d9c10c849f94b8cff7f79747a0594b8050f19d5477799b03f803c4241a9d12b6";
+      name = "kdeedu-data-20.08.1.tar.xz";
     };
   };
   kdegraphics-mobipocket = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdegraphics-mobipocket-19.12.3.tar.xz";
-      sha256 = "c459f9f04cf98cdc88a6763da8880f418e0c33b3cbd1d06b9a7347ebb470d835";
-      name = "kdegraphics-mobipocket-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdegraphics-mobipocket-20.08.1.tar.xz";
+      sha256 = "9974c36d90fc23d9a3a7172cf1526dc3671bf90f01f608effe92f64fce53c372";
+      name = "kdegraphics-mobipocket-20.08.1.tar.xz";
     };
   };
   kdegraphics-thumbnailers = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdegraphics-thumbnailers-19.12.3.tar.xz";
-      sha256 = "92a045ac0e9ca57ea27760df3cca0203f29ba435574e9d837d0c1069b8e88f72";
-      name = "kdegraphics-thumbnailers-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdegraphics-thumbnailers-20.08.1.tar.xz";
+      sha256 = "8303231f2fc44c071b3f6a477ae5335f2657dbfaba52362529aaba20973a5995";
+      name = "kdegraphics-thumbnailers-20.08.1.tar.xz";
     };
   };
   kdenetwork-filesharing = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdenetwork-filesharing-19.12.3.tar.xz";
-      sha256 = "8cc75f47ef8038cd7ee75974056cd48022816ab42c76cb6bd2c35a3619445180";
-      name = "kdenetwork-filesharing-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdenetwork-filesharing-20.08.1.tar.xz";
+      sha256 = "e88f4a2f6d7b8a61ebd491eb112f51d50f9949d729022fab01223d6ea36b8a01";
+      name = "kdenetwork-filesharing-20.08.1.tar.xz";
     };
   };
   kdenlive = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdenlive-19.12.3.tar.xz";
-      sha256 = "cebcb8f019bc0fc719ef54d00507dc1281758e3c8c69ea2f93f99feda777bc64";
-      name = "kdenlive-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdenlive-20.08.1.tar.xz";
+      sha256 = "f99e3f22c3d5e41a3ca251299d010ac2bc44933091c25d360104d562a1090873";
+      name = "kdenlive-20.08.1.tar.xz";
     };
   };
   kdepim-addons = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdepim-addons-19.12.3.tar.xz";
-      sha256 = "f33bc70ac54ab56eea7bd8ca4c0ac98d9612acc4ddc9ce989d06b99f04f62c19";
-      name = "kdepim-addons-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdepim-addons-20.08.1.tar.xz";
+      sha256 = "a0bddcbe8f8f6d8c878a6b5634578522a8d485e424cf37d35bc17df9a1ffc7c2";
+      name = "kdepim-addons-20.08.1.tar.xz";
     };
   };
   kdepim-apps-libs = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdepim-apps-libs-19.12.3.tar.xz";
-      sha256 = "e133cf76364f6b244338eafd39845a9f392eb9b55c43446541acbcb24a6f4796";
-      name = "kdepim-apps-libs-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdepim-apps-libs-20.08.1.tar.xz";
+      sha256 = "a0664933b3b5ff20747bf2adec9fbbecf22935129349208430d53e8c9bf5b5bb";
+      name = "kdepim-apps-libs-20.08.1.tar.xz";
     };
   };
   kdepim-runtime = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdepim-runtime-19.12.3.tar.xz";
-      sha256 = "dabf7da1ad35dfaa3531639a8964b61dbd7094ec0a9b3d62f50fa24a22f5db13";
-      name = "kdepim-runtime-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdepim-runtime-20.08.1.tar.xz";
+      sha256 = "27a4c04dcf2eac4108a43acbdd57e3a8aa1da92443a3e7977329d0218da05c24";
+      name = "kdepim-runtime-20.08.1.tar.xz";
     };
   };
   kdesdk-kioslaves = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdesdk-kioslaves-19.12.3.tar.xz";
-      sha256 = "8b075bff545883aba24fee1763d0cdc64bf9444ae865f0623a33fc1ca295d254";
-      name = "kdesdk-kioslaves-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdesdk-kioslaves-20.08.1.tar.xz";
+      sha256 = "528cce0ea4c7c9fd53a604591eae4a70d39421ebbe62ed59bcbc80072f95c19f";
+      name = "kdesdk-kioslaves-20.08.1.tar.xz";
     };
   };
   kdesdk-thumbnailers = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdesdk-thumbnailers-19.12.3.tar.xz";
-      sha256 = "b304843045f93e91e0aeeeacf968018dc192ea71ed9977be3d9cfc4e149edcde";
-      name = "kdesdk-thumbnailers-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdesdk-thumbnailers-20.08.1.tar.xz";
+      sha256 = "5b189182f2a734f82e67e23d3293e694c51f97c0a9acd1ec5498442a3d2a3804";
+      name = "kdesdk-thumbnailers-20.08.1.tar.xz";
     };
   };
   kdf = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdf-19.12.3.tar.xz";
-      sha256 = "257e07e27376f45eaa1bfb1b3055c7f10759ca7ec185aa7572dc60317c8119bd";
-      name = "kdf-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdf-20.08.1.tar.xz";
+      sha256 = "c100c87e9dbfcf7c12ce78d743f4ce3a2ec2bf3c1b0d969af1285255071195a5";
+      name = "kdf-20.08.1.tar.xz";
     };
   };
   kdialog = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdialog-19.12.3.tar.xz";
-      sha256 = "e6f9a7a6b7c2f18795070bf9466dd6256568b02683d955ef3253432216594d00";
-      name = "kdialog-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdialog-20.08.1.tar.xz";
+      sha256 = "089e8a8e85a9021b830e9b8a19ecb1999781915a716c9c2b3c99894a5d1c8dcf";
+      name = "kdialog-20.08.1.tar.xz";
     };
   };
   kdiamond = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdiamond-19.12.3.tar.xz";
-      sha256 = "95dfd2fd3daa59a58d128c35b95b609117438efdb5d60110414ab7aff5fe3e7c";
-      name = "kdiamond-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdiamond-20.08.1.tar.xz";
+      sha256 = "1629dc6f70873b42081bd75dbf858da56d380c32925ddd49bd2110d458cb4b23";
+      name = "kdiamond-20.08.1.tar.xz";
     };
   };
   keditbookmarks = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/keditbookmarks-19.12.3.tar.xz";
-      sha256 = "1c5efb63eb0a714942677eb03f91ae0bbd10731eace5471ea12ae9d3296b6b05";
-      name = "keditbookmarks-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/keditbookmarks-20.08.1.tar.xz";
+      sha256 = "8bfedffae0332dbfb611d25f3178ab7babe374155cce7c44e1aaa841934c3123";
+      name = "keditbookmarks-20.08.1.tar.xz";
     };
   };
   kfind = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kfind-19.12.3.tar.xz";
-      sha256 = "b3738d6e3f26fffbfcc204d946e165ae0727d9f460cb2065ceb221b4872019b1";
-      name = "kfind-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kfind-20.08.1.tar.xz";
+      sha256 = "e49412d0eae6f77369b96ee7fa5902252294d03da1e8782460d4bba5be6bb149";
+      name = "kfind-20.08.1.tar.xz";
     };
   };
   kfloppy = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kfloppy-19.12.3.tar.xz";
-      sha256 = "7f384f9197d5066a5db978a9551665ae9a90b1f3afd1937f800ab61e376d3723";
-      name = "kfloppy-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kfloppy-20.08.1.tar.xz";
+      sha256 = "cfbe396c252acc23a929d05fe1a71099bc19ee3ab55f4f40e47780cf871852c5";
+      name = "kfloppy-20.08.1.tar.xz";
     };
   };
   kfourinline = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kfourinline-19.12.3.tar.xz";
-      sha256 = "1d2f4fdbf427e2ce86a0519ee61a70df0675f039cebd658cd75bd27af4fe69f6";
-      name = "kfourinline-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kfourinline-20.08.1.tar.xz";
+      sha256 = "2c65dcc685d7e46da73e53ac3ab250ef4d1738bb85aa6f1b09160ff2ece364a2";
+      name = "kfourinline-20.08.1.tar.xz";
     };
   };
   kgeography = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kgeography-19.12.3.tar.xz";
-      sha256 = "3947ca1f50910d77f85c630b49128a085fed4230c7919e09281bc1765529a533";
-      name = "kgeography-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kgeography-20.08.1.tar.xz";
+      sha256 = "f7ce4c6a00f18558aa04f4af0b71e45efc10c67f0b3454c5f0b2527a43133d30";
+      name = "kgeography-20.08.1.tar.xz";
     };
   };
   kget = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kget-19.12.3.tar.xz";
-      sha256 = "a4b1d8fb94617c80a557c27ae58a14131bda4476340c136262e5bf8f51d918d9";
-      name = "kget-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kget-20.08.1.tar.xz";
+      sha256 = "efbfc08a5a4ed3974bbdab20c5eae07cdb70f7f42e9de1c75651a57511d7e576";
+      name = "kget-20.08.1.tar.xz";
     };
   };
   kgoldrunner = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kgoldrunner-19.12.3.tar.xz";
-      sha256 = "5808d797fb9df178526b3ea462bc902ca36b5926ef7c51233816ba3da6bc0bdd";
-      name = "kgoldrunner-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kgoldrunner-20.08.1.tar.xz";
+      sha256 = "40380c0d3b65e06cdb9d9ca3791c10e0d2d300856cc49a7b3da0145b7651274b";
+      name = "kgoldrunner-20.08.1.tar.xz";
     };
   };
   kgpg = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kgpg-19.12.3.tar.xz";
-      sha256 = "53e5726a1ccf34a70090ac0bbf2effb6f1f9f9b3d0164a5beead982a24c97e38";
-      name = "kgpg-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kgpg-20.08.1.tar.xz";
+      sha256 = "6b926c2adf896c3f68402ec10faf8db1e5f7c7b9fa8c1c26f9021d1fb0c975b0";
+      name = "kgpg-20.08.1.tar.xz";
     };
   };
   khangman = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/khangman-19.12.3.tar.xz";
-      sha256 = "55286b318ec2c2d8b7e63f4063fc0e39a8ff81c0a9d3f06c9879f141c94762a8";
-      name = "khangman-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/khangman-20.08.1.tar.xz";
+      sha256 = "fe94116ea833295a46c59a7420676925bb1038e7da86f6369d452087add40868";
+      name = "khangman-20.08.1.tar.xz";
     };
   };
   khelpcenter = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/khelpcenter-19.12.3.tar.xz";
-      sha256 = "526c89e46cace9e8afb4e748f9bbf0d105472a4cc4a6d8bb821e8b9b88ab0f73";
-      name = "khelpcenter-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/khelpcenter-20.08.1.tar.xz";
+      sha256 = "217b433c1a5da966ad5dab1e89e2e719632f1e035ab92cce094c5f0848bb6e39";
+      name = "khelpcenter-20.08.1.tar.xz";
     };
   };
   kidentitymanagement = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kidentitymanagement-19.12.3.tar.xz";
-      sha256 = "254bfc3a60df7bc1960fa1e6d5b7733f6aa5ed7772c1097d9a8cfcdda2704516";
-      name = "kidentitymanagement-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kidentitymanagement-20.08.1.tar.xz";
+      sha256 = "3b34e029e99647d6742825633682ab8a5eecbe102e34ea2472cb53afb853840d";
+      name = "kidentitymanagement-20.08.1.tar.xz";
     };
   };
   kig = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kig-19.12.3.tar.xz";
-      sha256 = "1ae2c3024cdd14e476ff15b730f4ebe9b279477b67cc4cc89606755c7d3beef3";
-      name = "kig-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kig-20.08.1.tar.xz";
+      sha256 = "f318d346cd152e62ae892ade31a784f0b7b823c56fdfd64e05a330072ad95745";
+      name = "kig-20.08.1.tar.xz";
     };
   };
   kigo = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kigo-19.12.3.tar.xz";
-      sha256 = "ee18b8563c49e3e01924ea76cd8c6ec376482c2100e0fac7cdfd14b5899592d5";
-      name = "kigo-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kigo-20.08.1.tar.xz";
+      sha256 = "58fa166a487c855d300c8a33758928131fc4db80cbda19a08e3de918335d2bdb";
+      name = "kigo-20.08.1.tar.xz";
     };
   };
   killbots = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/killbots-19.12.3.tar.xz";
-      sha256 = "3c5dc7e1f27036d2584f6ee58bf3bbffd9e56a467f30a8e2eab9e1bda1e7d4a3";
-      name = "killbots-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/killbots-20.08.1.tar.xz";
+      sha256 = "252636f4df2af0e087f4d604f76c5d8702c38392d821281a0f6283be4e429af9";
+      name = "killbots-20.08.1.tar.xz";
     };
   };
   kimagemapeditor = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kimagemapeditor-19.12.3.tar.xz";
-      sha256 = "1aee6521974bde5151744d92823f6b405ee4a8bd2dfe3c538324a209e18c6b35";
-      name = "kimagemapeditor-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kimagemapeditor-20.08.1.tar.xz";
+      sha256 = "bf391d0812e0f2dce6a11481972cf9d04f14d0bf92cad7210fa35a1fa0edf230";
+      name = "kimagemapeditor-20.08.1.tar.xz";
     };
   };
   kimap = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kimap-19.12.3.tar.xz";
-      sha256 = "5c3b3cdf928754f9919030d865a2cdad0ad342c82c436afef660d018f85de4d2";
-      name = "kimap-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kimap-20.08.1.tar.xz";
+      sha256 = "eae645ae2535c2612556e8938011cc478054c032126bb55683b95127d1b94741";
+      name = "kimap-20.08.1.tar.xz";
     };
   };
   kio-extras = {
-    version = "19.12.3";
+    version = "20.08.1";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.08.1/src/kio-extras-20.08.1.tar.xz";
+      sha256 = "1122635926052f34fd35d8aeef9c3c1d892690d8372f2b7d902e6449cdab988a";
+      name = "kio-extras-20.08.1.tar.xz";
+    };
+  };
+  kio-gdrive = {
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kio-extras-19.12.3.tar.xz";
-      sha256 = "413cb21479fedf1421a6e2585b4df813c3a3fadaa77c248a9f810021f58cea4b";
-      name = "kio-extras-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kio-gdrive-20.08.1.tar.xz";
+      sha256 = "5104136948ee60cd527109bb9e8830e6a12f6062a29f34bc995b2625b0280825";
+      name = "kio-gdrive-20.08.1.tar.xz";
     };
   };
   kipi-plugins = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kipi-plugins-19.12.3.tar.xz";
-      sha256 = "16997bd6fbb59c194c2997732c870e33bbacd3d7346546af9a255db3330ec5ac";
-      name = "kipi-plugins-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kipi-plugins-20.08.1.tar.xz";
+      sha256 = "b7d8f1aa087006a48d9bd7ec036ab4779e898e3b02692c91342439747cad6c5c";
+      name = "kipi-plugins-20.08.1.tar.xz";
     };
   };
   kirigami-gallery = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kirigami-gallery-19.12.3.tar.xz";
-      sha256 = "17febaeb77e0dfc6f591dd285fd7f538466572f2f2e3253461c41f92d6cb05fe";
-      name = "kirigami-gallery-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kirigami-gallery-20.08.1.tar.xz";
+      sha256 = "497886cc5a8483f068a642ce19df19f69fd105a4fb583f1a9898c885659c9df5";
+      name = "kirigami-gallery-20.08.1.tar.xz";
     };
   };
   kiriki = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kiriki-19.12.3.tar.xz";
-      sha256 = "abbaa49f9b47286f9afbe7c968eb6fbfeecb4be84ed4b2ce7514a3ed1e92b2d5";
-      name = "kiriki-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kiriki-20.08.1.tar.xz";
+      sha256 = "51e77cbbf6a0c60487d72b03b28c08409d0b6134c983d9e420fbc4d7f73223e8";
+      name = "kiriki-20.08.1.tar.xz";
     };
   };
   kiten = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kiten-19.12.3.tar.xz";
-      sha256 = "663739a8b252cb95a38294c6f7d675c833daaa81f2654f5cabd8e512fd353560";
-      name = "kiten-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kiten-20.08.1.tar.xz";
+      sha256 = "f3764d090db8027746e83c326e833680fd669dca66dd6af095ba120e66de2901";
+      name = "kiten-20.08.1.tar.xz";
     };
   };
   kitinerary = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kitinerary-19.12.3.tar.xz";
-      sha256 = "4188efe8672091cbdaa4f757f5d8b94a30b1373dceafc076b01330602d5086e2";
-      name = "kitinerary-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kitinerary-20.08.1.tar.xz";
+      sha256 = "d3e0b6130b5c603bc1494404fa91ed1995e9142d66e4c3ddd5d2c79fdea856e4";
+      name = "kitinerary-20.08.1.tar.xz";
     };
   };
   kjumpingcube = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kjumpingcube-19.12.3.tar.xz";
-      sha256 = "b969111cb884efc9ad8ef585066ca33d7168bb045c93a3f18668173a11d29ea2";
-      name = "kjumpingcube-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kjumpingcube-20.08.1.tar.xz";
+      sha256 = "226424cd21f75c499eedd15460a466988b179312467ed16437df87be494d9fbc";
+      name = "kjumpingcube-20.08.1.tar.xz";
     };
   };
   kldap = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kldap-19.12.3.tar.xz";
-      sha256 = "49f1ad32ae10b7f997c77f3a8db0776b972b93f9e18873b77baabf0db05cd5d4";
-      name = "kldap-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kldap-20.08.1.tar.xz";
+      sha256 = "098fb07b280ef25dcf04b18f627223014257f6c0874b2959f2a8e68cacdb74a7";
+      name = "kldap-20.08.1.tar.xz";
     };
   };
   kleopatra = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kleopatra-19.12.3.tar.xz";
-      sha256 = "04edf29e42088b2bccdfe36b9b7170c38acd7816657673da5393244b73773098";
-      name = "kleopatra-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kleopatra-20.08.1.tar.xz";
+      sha256 = "e7bc3ce03ad5431e4289360ba6b701e38d53b60de58fd1ed358480cec48657a6";
+      name = "kleopatra-20.08.1.tar.xz";
     };
   };
   klettres = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/klettres-19.12.3.tar.xz";
-      sha256 = "f2a1bbb002954a80045780de24f494154214b8add53a5c01a8783cbeb26d26c7";
-      name = "klettres-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/klettres-20.08.1.tar.xz";
+      sha256 = "f29d6df1de3562731f246a892caaa493b9bccc9d1317a948e03ad12cb8c80c06";
+      name = "klettres-20.08.1.tar.xz";
     };
   };
   klickety = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/klickety-19.12.3.tar.xz";
-      sha256 = "351e421ecca5fc80955ed614453c81d8b790200185db16f56be1e0ca9325ad39";
-      name = "klickety-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/klickety-20.08.1.tar.xz";
+      sha256 = "a9b63b3e944faba25498e981c06981dc354f9acd34b77f46fe2bebef388bf2cb";
+      name = "klickety-20.08.1.tar.xz";
     };
   };
   klines = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/klines-19.12.3.tar.xz";
-      sha256 = "8d11894d0a02de20090e52ef697a5a3c00e902213c018a82c94ca0985e92350a";
-      name = "klines-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/klines-20.08.1.tar.xz";
+      sha256 = "d16650d7d44f48f47700dcb8fe97519dd28fe7213052636363d281c24f46a2b9";
+      name = "klines-20.08.1.tar.xz";
     };
   };
   kmag = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmag-19.12.3.tar.xz";
-      sha256 = "d1e8bbc8006cd2cfcb345e30aac73350562bff98b69b0333ad49726cdce81e7e";
-      name = "kmag-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmag-20.08.1.tar.xz";
+      sha256 = "0aaaf19af2c943ae460dbcc1984bae167b79be287802e8a6faa6aaaed11718f3";
+      name = "kmag-20.08.1.tar.xz";
     };
   };
   kmahjongg = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmahjongg-19.12.3.tar.xz";
-      sha256 = "41a07f74cc4e3bf05f6a57a380d4e093b0303528cb703369981b262a0b1787c8";
-      name = "kmahjongg-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmahjongg-20.08.1.tar.xz";
+      sha256 = "842b3d2e9c60b6a8e6bb6d09f26db49d988889ec3962ac40aea0e79434c2eb43";
+      name = "kmahjongg-20.08.1.tar.xz";
     };
   };
   kmail = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmail-19.12.3.tar.xz";
-      sha256 = "7f70e5270960e474b15631a36110e13fdf7238d6fd9f1b3fdb6d8c145b6529ba";
-      name = "kmail-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmail-20.08.1.tar.xz";
+      sha256 = "7ba5854e36e2ed752baa3a1ac15d1a6227699da6f5bdca3c250f22226b4d902b";
+      name = "kmail-20.08.1.tar.xz";
     };
   };
   kmail-account-wizard = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmail-account-wizard-19.12.3.tar.xz";
-      sha256 = "4199e8c73456bf31b829596919ca481c3a95e59dee7c9bfb2e680311d0354ff0";
-      name = "kmail-account-wizard-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmail-account-wizard-20.08.1.tar.xz";
+      sha256 = "7a1dc9ad542c0e54b80e955a162888c7d4b6bababcf02681d54af4480c03bd8d";
+      name = "kmail-account-wizard-20.08.1.tar.xz";
     };
   };
   kmailtransport = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmailtransport-19.12.3.tar.xz";
-      sha256 = "077b3dba7c02dde9693c003ab7039f3b2a530e3b1aecfcf187313db5226e8953";
-      name = "kmailtransport-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmailtransport-20.08.1.tar.xz";
+      sha256 = "4cabad74e141891546b0f47f44030eeb59fb63257a5c0d1c12124815ebf710c1";
+      name = "kmailtransport-20.08.1.tar.xz";
     };
   };
   kmbox = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmbox-19.12.3.tar.xz";
-      sha256 = "de69683abb42c5c24ccb4f034e067f50c94d5a10c53f359b0e6ad4b75a70b376";
-      name = "kmbox-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmbox-20.08.1.tar.xz";
+      sha256 = "df77b2bf448d1ce21ff4a816f1164297519b48cd60200cea0edae6e72a81a19b";
+      name = "kmbox-20.08.1.tar.xz";
     };
   };
   kmime = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmime-19.12.3.tar.xz";
-      sha256 = "5ed20ad77000c60ba5723aaa22149fca3a3956f930d63e70984f0a17b9339300";
-      name = "kmime-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmime-20.08.1.tar.xz";
+      sha256 = "cd0beaa46040d571b505d07853be76f099289e22d99ce4884695d4d645dfbe8c";
+      name = "kmime-20.08.1.tar.xz";
     };
   };
   kmines = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmines-19.12.3.tar.xz";
-      sha256 = "05d8004f2e560bf2c9e32a3ca1988b3848b99bfb9cc96307c1ac2b703c202dad";
-      name = "kmines-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmines-20.08.1.tar.xz";
+      sha256 = "eeb58941c94330f3ffdca60c0ca84d8ebcc9c6c355737217b521c54e50c650cd";
+      name = "kmines-20.08.1.tar.xz";
     };
   };
   kmix = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmix-19.12.3.tar.xz";
-      sha256 = "a4c637383e988ffa21b9c48c72ef6d8855fe207c852d0679011337a331ccfc5c";
-      name = "kmix-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmix-20.08.1.tar.xz";
+      sha256 = "012d14adbb200a7e66ddbc9ebc8e18c4e5082ae24dea6ab22284b6c730a1b472";
+      name = "kmix-20.08.1.tar.xz";
     };
   };
   kmousetool = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmousetool-19.12.3.tar.xz";
-      sha256 = "3741aff20c778bb704c76df7ff005da36ef6c41b07fca35f257ba440741b8413";
-      name = "kmousetool-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmousetool-20.08.1.tar.xz";
+      sha256 = "c1d769efdd318eb1e29905122c579c72a41da74b45a076b79cf177b1800e1464";
+      name = "kmousetool-20.08.1.tar.xz";
     };
   };
   kmouth = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmouth-19.12.3.tar.xz";
-      sha256 = "424dd4cf81cd43e47630ada0f2a9e47be8106b31ebf2e5c8c1077e55e3a8113f";
-      name = "kmouth-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmouth-20.08.1.tar.xz";
+      sha256 = "d87fb47fa00c54f13cdaef33d15cc74f31d7009d4a8d988902b62c698d1e2c2c";
+      name = "kmouth-20.08.1.tar.xz";
     };
   };
   kmplot = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmplot-19.12.3.tar.xz";
-      sha256 = "2743e3a472ccf40281f5afd9c6110dde6fb9bc437e8e291beba484d405d8152e";
-      name = "kmplot-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmplot-20.08.1.tar.xz";
+      sha256 = "6d294a89f9e0fc42262ada6d71ba5abaeb756beb194e71f1852e18ae2b85456e";
+      name = "kmplot-20.08.1.tar.xz";
     };
   };
   knavalbattle = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/knavalbattle-19.12.3.tar.xz";
-      sha256 = "59875e10b0f2b06c2d3165f2f2457113f04550215947c8296ce1dcaf385ee37f";
-      name = "knavalbattle-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/knavalbattle-20.08.1.tar.xz";
+      sha256 = "e0cbffc5643aac302c53cfd957eefa7f89486fdd0d9c55b74f39d733a0ac3b65";
+      name = "knavalbattle-20.08.1.tar.xz";
     };
   };
   knetwalk = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/knetwalk-19.12.3.tar.xz";
-      sha256 = "24cb7cfa4143b2ab1bcaf38a6698cd01252201238c6561bc711e0673366642ae";
-      name = "knetwalk-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/knetwalk-20.08.1.tar.xz";
+      sha256 = "30cbf7bdf5f875ce172a382ef7da8e74803015017c6cd525cb6c288defac020d";
+      name = "knetwalk-20.08.1.tar.xz";
     };
   };
   knights = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/knights-19.12.3.tar.xz";
-      sha256 = "4796654dcaff355b4f1097260748cfe04812ff926acc7ca0f037711875dd1512";
-      name = "knights-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/knights-20.08.1.tar.xz";
+      sha256 = "58518d8ecce5744fdf68c18e0803f48cb912fa29c5ea93ed6ccd2d4d320f722d";
+      name = "knights-20.08.1.tar.xz";
     };
   };
   knotes = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/knotes-19.12.3.tar.xz";
-      sha256 = "b27846609dfac1ffcb3ac5e7165b7557231b096f6a84206da956c37233aed7b0";
-      name = "knotes-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/knotes-20.08.1.tar.xz";
+      sha256 = "7d066a34d46684f258481466875d18f99a9000d66dec36f7dcab92790f6c57bb";
+      name = "knotes-20.08.1.tar.xz";
     };
   };
   kolf = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kolf-19.12.3.tar.xz";
-      sha256 = "2ba1f781d7d98ca0b10231e4f963b27d043c726f44da662b6c77105da4f9cffc";
-      name = "kolf-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kolf-20.08.1.tar.xz";
+      sha256 = "04d117895a6504d6138d1e3cd3157dd3318ba93eefd749182556344650f6a2f8";
+      name = "kolf-20.08.1.tar.xz";
     };
   };
   kollision = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kollision-19.12.3.tar.xz";
-      sha256 = "ce0bb077e8db8a959f965d463bb25bac02c91585b422af6c9249ad8a8f25eaab";
-      name = "kollision-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kollision-20.08.1.tar.xz";
+      sha256 = "858d69131951734181b449ce48498b3b843634eb8c069c932042b3c0f862f98c";
+      name = "kollision-20.08.1.tar.xz";
     };
   };
   kolourpaint = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kolourpaint-19.12.3.tar.xz";
-      sha256 = "7c134da2feb75a87bfda6b4265ef705868a9be03d70a828111a2869ca0b517b1";
-      name = "kolourpaint-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kolourpaint-20.08.1.tar.xz";
+      sha256 = "7de98e081f13fb9f8a73932d5e8ce6f1cfd73e345fa28d03f515cad69f1b8bae";
+      name = "kolourpaint-20.08.1.tar.xz";
     };
   };
   kompare = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kompare-19.12.3.tar.xz";
-      sha256 = "b89b266b6f648500627d2e70df29b73248c7b7d7d5e7c1bbcaddaedf072f6f1a";
-      name = "kompare-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kompare-20.08.1.tar.xz";
+      sha256 = "6e9109f1b24b3d79dec3d70c75357a67d16ab35081bcf7e4b842981b84796aa2";
+      name = "kompare-20.08.1.tar.xz";
     };
   };
   konqueror = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/konqueror-19.12.3.tar.xz";
-      sha256 = "0f2b31a1dae1740839232bd646bf22d7cb57e34995584b9a96271ebcb0da7f0e";
-      name = "konqueror-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/konqueror-20.08.1.tar.xz";
+      sha256 = "e3aac062d9e431e63a861ecf5a1d577b11a154faaed5bd95ef6b69b4fc8a34e9";
+      name = "konqueror-20.08.1.tar.xz";
     };
   };
   konquest = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/konquest-19.12.3.tar.xz";
-      sha256 = "e23732a7d78382c73fca0d31afb3ed85614ee4b4bfe2f07647a13582fa0811a5";
-      name = "konquest-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/konquest-20.08.1.tar.xz";
+      sha256 = "cad87dd698bd1ebc0279216614f7fa7c3d3f36d545683a69f1ceafe9e279bbfe";
+      name = "konquest-20.08.1.tar.xz";
     };
   };
   konsole = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/konsole-19.12.3.tar.xz";
-      sha256 = "0bde8eb6365c53e96489d0ceb05baa0bb0385ee865492622033164a4c4bfccdc";
-      name = "konsole-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/konsole-20.08.1.tar.xz";
+      sha256 = "bdd82f9104b2f76c53bdbdef613391719b70719a132d24f12e5f620e1c9313d1";
+      name = "konsole-20.08.1.tar.xz";
     };
   };
   kontact = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kontact-19.12.3.tar.xz";
-      sha256 = "8dbd01f73c181f7b44df5dfffac1cf33c36b36149294fd854403bada9ef33052";
-      name = "kontact-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kontact-20.08.1.tar.xz";
+      sha256 = "36c33eb5685c22f94257e86ff760d1aa225ae6e2d69402a2b653c54627c7cbde";
+      name = "kontact-20.08.1.tar.xz";
     };
   };
   kontactinterface = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kontactinterface-19.12.3.tar.xz";
-      sha256 = "1a0392cbeb6833f4834c86f202ff06e5b6069d12100bffe37de6427f0531af89";
-      name = "kontactinterface-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kontactinterface-20.08.1.tar.xz";
+      sha256 = "8272d0c17423a15e56e9e6d3979ee3017fd02ed996b8b6902c47312276ffeb51";
+      name = "kontactinterface-20.08.1.tar.xz";
     };
   };
   kopete = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kopete-19.12.3.tar.xz";
-      sha256 = "8d58fb0c9dd8b651bfc996e6928f7ccdad8e21cba39ffd0e54d46f7145fa7b27";
-      name = "kopete-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kopete-20.08.1.tar.xz";
+      sha256 = "9846baae28d723963927d231716e2a8bc19795bac920958b688b48394ef5bc05";
+      name = "kopete-20.08.1.tar.xz";
     };
   };
   korganizer = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/korganizer-19.12.3.tar.xz";
-      sha256 = "ea0a970aa510d5cdbbf80e974049fa3e7591e02c9ec2c4206137c49266df1acb";
-      name = "korganizer-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/korganizer-20.08.1.tar.xz";
+      sha256 = "e693d895b36575f2a73c36ceaafadf81465bbf9b03c74da27f5273a2e7e3670e";
+      name = "korganizer-20.08.1.tar.xz";
     };
   };
   kpat = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kpat-19.12.3.tar.xz";
-      sha256 = "00b823b1b204b68e0c8671e5ddfe5f96abe8c9fcfb1efa9b7f70191cfa5384e1";
-      name = "kpat-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kpat-20.08.1.tar.xz";
+      sha256 = "2c23ee028c03c5c210b110a2ad253aa7d91c5a0abcb101eb2b3f4c640092463c";
+      name = "kpat-20.08.1.tar.xz";
     };
   };
   kpimtextedit = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kpimtextedit-19.12.3.tar.xz";
-      sha256 = "64be03d7a8d4b9ece40c0065a23113023c2b3320dc57068fe00f6c4bc72537d5";
-      name = "kpimtextedit-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kpimtextedit-20.08.1.tar.xz";
+      sha256 = "2664e6cbe520fa345e18db071dd5b8a5b4cf9b0fc7317eb04849005228666189";
+      name = "kpimtextedit-20.08.1.tar.xz";
     };
   };
   kpkpass = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kpkpass-19.12.3.tar.xz";
-      sha256 = "45723989170e86c6739c8a377c54b3ba7456a8dc3ed6cf52eef884074c2df189";
-      name = "kpkpass-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kpkpass-20.08.1.tar.xz";
+      sha256 = "76012e5bdd4cc434313a0f311acec8f7c798542008cd8efa71fcdf04fb77e55b";
+      name = "kpkpass-20.08.1.tar.xz";
     };
   };
   kqtquickcharts = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kqtquickcharts-19.12.3.tar.xz";
-      sha256 = "94669a7add0cef9a1c0969a92ece8e60a67fbb0ff32826cc49ce87bd890c976c";
-      name = "kqtquickcharts-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kqtquickcharts-20.08.1.tar.xz";
+      sha256 = "ea931bfefcc04bee03bff2498b92ca1a390967bbc5366c739d1a7cde6bb75820";
+      name = "kqtquickcharts-20.08.1.tar.xz";
     };
   };
   krdc = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/krdc-19.12.3.tar.xz";
-      sha256 = "12602912abbc22e061067b6b5048d37a7cbdaaf99d203829d3f52fdf7319acce";
-      name = "krdc-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/krdc-20.08.1.tar.xz";
+      sha256 = "7b1fa57be31a3534099e7f203ef9afde23c86c4bbed1072a9d1164a3cf5e1e20";
+      name = "krdc-20.08.1.tar.xz";
     };
   };
   kreversi = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kreversi-19.12.3.tar.xz";
-      sha256 = "6bfe3a2faa7c0d08fb689b75341bfd5881d66bc865445573b2f4dbb316a751e8";
-      name = "kreversi-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kreversi-20.08.1.tar.xz";
+      sha256 = "5da68ddd37f5dbd4e1c94d1641c69f0e9b4e99eff3cdafcdcbac1139ca517315";
+      name = "kreversi-20.08.1.tar.xz";
     };
   };
   krfb = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/krfb-19.12.3.tar.xz";
-      sha256 = "cb88997dc7b15b992d1de5c5cabaeccb37122e20823501ac29140875259782ee";
-      name = "krfb-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/krfb-20.08.1.tar.xz";
+      sha256 = "a80b9bab47f2a7299e33b0e2a10b117605ec1cc572ca72e914c7f01dde383eda";
+      name = "krfb-20.08.1.tar.xz";
     };
   };
   kross-interpreters = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kross-interpreters-19.12.3.tar.xz";
-      sha256 = "2b4060494901a68ca1d07e0c345cc0814e11fb84e9f48014a7231021e4377487";
-      name = "kross-interpreters-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kross-interpreters-20.08.1.tar.xz";
+      sha256 = "1fb7d75d83e63d1a7147468dd25eeb6aeb06b4679f126c658a8b40ef257f9a4e";
+      name = "kross-interpreters-20.08.1.tar.xz";
     };
   };
   kruler = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kruler-19.12.3.tar.xz";
-      sha256 = "803a0d31bbb5bfbfa057b13a7f6bbf7630dcc1816a0d41ea13cc4592bdacaa47";
-      name = "kruler-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kruler-20.08.1.tar.xz";
+      sha256 = "a9a1f3bd7b02416a393826f7bb810211ef2e14a3628706de735cb88e791d72d1";
+      name = "kruler-20.08.1.tar.xz";
     };
   };
   kshisen = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kshisen-19.12.3.tar.xz";
-      sha256 = "f6ce353725d71ce65269b1b7b3d118cb8555cd065db0d3b17fe4696d87c10601";
-      name = "kshisen-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kshisen-20.08.1.tar.xz";
+      sha256 = "d53af415ed2f4d202f5a6f965408e39062e39f43acf83b9550b6cf2ecc1f7641";
+      name = "kshisen-20.08.1.tar.xz";
     };
   };
   ksirk = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ksirk-19.12.3.tar.xz";
-      sha256 = "6387d7a6320e644157f10b94474ca715e7ad7fd15cdf7156a8e7d94bff019dcb";
-      name = "ksirk-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ksirk-20.08.1.tar.xz";
+      sha256 = "763d3a8f518365391d2a04943f6efa9c73c388b7701deff300e9e42e4efe848f";
+      name = "ksirk-20.08.1.tar.xz";
     };
   };
   ksmtp = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ksmtp-19.12.3.tar.xz";
-      sha256 = "1fd69f494afee91c11667ddbba43bc6cc316b51acf5894fe4c3a2631f53fae27";
-      name = "ksmtp-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ksmtp-20.08.1.tar.xz";
+      sha256 = "608d395cd1a046810ebd00f990d6f7c63d66677e7293ef06948ab9d336d2f08f";
+      name = "ksmtp-20.08.1.tar.xz";
     };
   };
   ksnakeduel = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ksnakeduel-19.12.3.tar.xz";
-      sha256 = "8db1dece78571f3e6933f8edcd693c3ceb1035acff780547a72c98b9f7decb87";
-      name = "ksnakeduel-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ksnakeduel-20.08.1.tar.xz";
+      sha256 = "25bb5cfe2ed480b8ee31d9fe2e62272d77e7b8667748eb4f2c855901f718784f";
+      name = "ksnakeduel-20.08.1.tar.xz";
     };
   };
   kspaceduel = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kspaceduel-19.12.3.tar.xz";
-      sha256 = "a9b5dc498b3695b59ae8925cc572cfc521ccadc8532756fa95ac876a7423c444";
-      name = "kspaceduel-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kspaceduel-20.08.1.tar.xz";
+      sha256 = "382def18d1ce6a4333fb47bcd87aed6837382a2b0da2cb8b835d0b34eaed9e38";
+      name = "kspaceduel-20.08.1.tar.xz";
     };
   };
   ksquares = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ksquares-19.12.3.tar.xz";
-      sha256 = "45a922e4d85835cc655de560b6fd9be87d8cabc74eadbdecda3f17ba53ac92af";
-      name = "ksquares-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ksquares-20.08.1.tar.xz";
+      sha256 = "163c5c070643e31594ada4e812433eb5f615ef425dddafd515e6c445d821f319";
+      name = "ksquares-20.08.1.tar.xz";
     };
   };
   ksudoku = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ksudoku-19.12.3.tar.xz";
-      sha256 = "1cf36e762f31464b0640a88c739dfbb39b10129cace7fb5b74093ec607dea06c";
-      name = "ksudoku-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ksudoku-20.08.1.tar.xz";
+      sha256 = "e53b694b340f812cd3bdf5126a32a1e71efe0785897c5d15f9e28c68fd794840";
+      name = "ksudoku-20.08.1.tar.xz";
     };
   };
   ksystemlog = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ksystemlog-19.12.3.tar.xz";
-      sha256 = "8225b1308ace76ebbf9bb805a2b6fae9bf8a425d0b09518645234c1b2df522dc";
-      name = "ksystemlog-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ksystemlog-20.08.1.tar.xz";
+      sha256 = "e0e8bc1cf8ee229206c8a65e30979ba8b72426c8dc2f737f6fecb0dfb36ed21a";
+      name = "ksystemlog-20.08.1.tar.xz";
     };
   };
   kteatime = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kteatime-19.12.3.tar.xz";
-      sha256 = "0ab5fb6e33583e6d627b8f9dfaba5ce59e2b363e8045dfc66a4f65236d56542f";
-      name = "kteatime-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kteatime-20.08.1.tar.xz";
+      sha256 = "23cc14f587e4ae4e3b56f1fb7a2093301df740328e35b25d7fca55d35f012ce5";
+      name = "kteatime-20.08.1.tar.xz";
     };
   };
   ktimer = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktimer-19.12.3.tar.xz";
-      sha256 = "921af876a176a4731a74b5e9e76d751853043ec4f4857301b39a5c680246557c";
-      name = "ktimer-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktimer-20.08.1.tar.xz";
+      sha256 = "9c7062f9ee64ff49a7c7773fe41cee0899e30f1f47368af73da067e51db6714b";
+      name = "ktimer-20.08.1.tar.xz";
     };
   };
   ktnef = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktnef-19.12.3.tar.xz";
-      sha256 = "3537515b432e5da00d401046e94e0098fa54c071246cb0e357e3d8f47296ed3c";
-      name = "ktnef-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktnef-20.08.1.tar.xz";
+      sha256 = "433b232a0c835e7f27c06e6d19856e4f8690c3e3b5c5d63f85172897b2448c81";
+      name = "ktnef-20.08.1.tar.xz";
     };
   };
   ktouch = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktouch-19.12.3.tar.xz";
-      sha256 = "522fb081da5877717d577493fdaeeecbfe3d8d773e5d7fc83ecced008744ef0e";
-      name = "ktouch-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktouch-20.08.1.tar.xz";
+      sha256 = "e098ebbccca743f678103a9adf54fc388fa4379cc6f667e48259d0b50f56b5fb";
+      name = "ktouch-20.08.1.tar.xz";
     };
   };
   ktp-accounts-kcm = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-accounts-kcm-19.12.3.tar.xz";
-      sha256 = "ae5ae5004ecbf34596711a56e069d480c952de5ea784f5e90c391750439aff51";
-      name = "ktp-accounts-kcm-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-accounts-kcm-20.08.1.tar.xz";
+      sha256 = "b71f2f654c3cf48e4b4b037a0ae8f6fef5bac9c3483458c0eadf7b3253577504";
+      name = "ktp-accounts-kcm-20.08.1.tar.xz";
     };
   };
   ktp-approver = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-approver-19.12.3.tar.xz";
-      sha256 = "af4f6d247b6332745f6b6dfacef74eb2ea0f7bbea9398080fc7b57e5953fdfbd";
-      name = "ktp-approver-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-approver-20.08.1.tar.xz";
+      sha256 = "51296f4d84585ba63d4c72cdbdee6e2b436a1aff8ce6b475a8c9a81766856b39";
+      name = "ktp-approver-20.08.1.tar.xz";
     };
   };
   ktp-auth-handler = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-auth-handler-19.12.3.tar.xz";
-      sha256 = "40822e78879d97c3cc1d16f44f7d3b581980c4e249a273d7471b291adf3b9225";
-      name = "ktp-auth-handler-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-auth-handler-20.08.1.tar.xz";
+      sha256 = "6c1c006a3381caeebdfc37886b91b598153f3778567303d8a031e84599c9d582";
+      name = "ktp-auth-handler-20.08.1.tar.xz";
     };
   };
   ktp-call-ui = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-call-ui-19.12.3.tar.xz";
-      sha256 = "96b1dd64b0f87228d76f12b6cad3677afeb4c44d6f18645c3001555506573fb1";
-      name = "ktp-call-ui-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-call-ui-20.08.1.tar.xz";
+      sha256 = "feb783be10b0792cb0c59456a00607b2d595e8bef90f0b4ec79dd070596d413c";
+      name = "ktp-call-ui-20.08.1.tar.xz";
     };
   };
   ktp-common-internals = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-common-internals-19.12.3.tar.xz";
-      sha256 = "48cde7fc4f2f0d39999f70699867044e0f85e06769a0824aac49c572fb1af5a4";
-      name = "ktp-common-internals-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-common-internals-20.08.1.tar.xz";
+      sha256 = "5750bde4950fbe26f06a306aa642c9c501d4f0e1b41b57234d9e36b189a91d1b";
+      name = "ktp-common-internals-20.08.1.tar.xz";
     };
   };
   ktp-contact-list = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-contact-list-19.12.3.tar.xz";
-      sha256 = "093544e84ca12169966837be5f01d339ddc59e5f031d78e68ddf7be4dd890efd";
-      name = "ktp-contact-list-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-contact-list-20.08.1.tar.xz";
+      sha256 = "809db5ff05c1ec632109be408cef987532193b1b0bea69d6a9286c12ccfe19a1";
+      name = "ktp-contact-list-20.08.1.tar.xz";
     };
   };
   ktp-contact-runner = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-contact-runner-19.12.3.tar.xz";
-      sha256 = "50646e8670449d6f6a9b107e36f18174b5ec37052a7b4f471617f4f53fecc96b";
-      name = "ktp-contact-runner-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-contact-runner-20.08.1.tar.xz";
+      sha256 = "a9e761fd35545cfffade088e33f4358e2743416f61e9ba490f21f3b04193158f";
+      name = "ktp-contact-runner-20.08.1.tar.xz";
     };
   };
   ktp-desktop-applets = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-desktop-applets-19.12.3.tar.xz";
-      sha256 = "4ab8f04537345db8e41ed9f8ff7a6a2f3135e3539382cef97d1a7e9f0eddb54e";
-      name = "ktp-desktop-applets-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-desktop-applets-20.08.1.tar.xz";
+      sha256 = "d6ffd4b29c4fb977937cb47d55d023012be1a9b3602dd1f1628eba7d8c9167cd";
+      name = "ktp-desktop-applets-20.08.1.tar.xz";
     };
   };
   ktp-filetransfer-handler = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-filetransfer-handler-19.12.3.tar.xz";
-      sha256 = "b2e81fec33b51628d9d88707b6bd844c69eb2c9bfb00cb0b45759a4fd9769b03";
-      name = "ktp-filetransfer-handler-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-filetransfer-handler-20.08.1.tar.xz";
+      sha256 = "35495c1d18a7b65496fcf17cade4a81e4795b1603c380c036dda0a7626f66312";
+      name = "ktp-filetransfer-handler-20.08.1.tar.xz";
     };
   };
   ktp-kded-module = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-kded-module-19.12.3.tar.xz";
-      sha256 = "6bb0c05683812738e254c88d39936565966096a7156111565d8a64a59c55ef0d";
-      name = "ktp-kded-module-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-kded-module-20.08.1.tar.xz";
+      sha256 = "247e4047e3955e21066ec461a5374d1b3d925bb92b42adc46d3711e542ad7e04";
+      name = "ktp-kded-module-20.08.1.tar.xz";
     };
   };
   ktp-send-file = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-send-file-19.12.3.tar.xz";
-      sha256 = "566d9dccc0c2fa7c23c95051c25543d3aabe76065ddff7dff9d8a37683d2022b";
-      name = "ktp-send-file-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-send-file-20.08.1.tar.xz";
+      sha256 = "b3786c6e6f09ea086c2d94d2a6dd653e45bab8f984c6287c39f5e0134d6ffee1";
+      name = "ktp-send-file-20.08.1.tar.xz";
     };
   };
   ktp-text-ui = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-text-ui-19.12.3.tar.xz";
-      sha256 = "b8ad9a224ae300c0412874d0877fdc8e050869d3a8f60a4051a0919a8749c50f";
-      name = "ktp-text-ui-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-text-ui-20.08.1.tar.xz";
+      sha256 = "5cdb88f55b6ca1a1053b8d5b2604eff681c5f3558f0c8037034c264793de8c02";
+      name = "ktp-text-ui-20.08.1.tar.xz";
     };
   };
   ktuberling = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktuberling-19.12.3.tar.xz";
-      sha256 = "c4d74d18173d5761f7e6f8adf6178713a726c671aaa2eda4e6c77115484e9e55";
-      name = "ktuberling-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktuberling-20.08.1.tar.xz";
+      sha256 = "62d3d8db7b1db7f9d58df44acf61342ce42fb081038fc48f8f6e45d9167ceaa6";
+      name = "ktuberling-20.08.1.tar.xz";
     };
   };
   kturtle = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kturtle-19.12.3.tar.xz";
-      sha256 = "6958a88c484261919cd89cb1f0d163b0c5d5f1e28b10b3b4e3b6b9e82e379ef1";
-      name = "kturtle-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kturtle-20.08.1.tar.xz";
+      sha256 = "c261fdf44b36aaa278b4b9752a0d989facec3768853606e5c0b8a86d9d01edb3";
+      name = "kturtle-20.08.1.tar.xz";
     };
   };
   kubrick = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kubrick-19.12.3.tar.xz";
-      sha256 = "8fc0a0e68d255481c6efb3f4ff894c5e376367b29958c4738bd72d3f4b1ff557";
-      name = "kubrick-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kubrick-20.08.1.tar.xz";
+      sha256 = "c0c017f6913f94224e18df7d96ba9ad92f51522a331b77f5722f2d2c953c342c";
+      name = "kubrick-20.08.1.tar.xz";
     };
   };
   kwalletmanager = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kwalletmanager-19.12.3.tar.xz";
-      sha256 = "247c7f80a54babd21a13e6b9386370b72ec12bdf928c08a7e8a647ccca53e393";
-      name = "kwalletmanager-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kwalletmanager-20.08.1.tar.xz";
+      sha256 = "b5a134db6b6bceb802c6c45915636bcd95fea5b6846cfd022917405f48cc92c5";
+      name = "kwalletmanager-20.08.1.tar.xz";
     };
   };
   kwave = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kwave-19.12.3.tar.xz";
-      sha256 = "3c90115d4702dbe46767e2404c952d84533137fa558b787b87ff95ed61f6930d";
-      name = "kwave-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kwave-20.08.1.tar.xz";
+      sha256 = "3791f9401271c23d3ababd14e4c1e6acfe58df2100331e31ba61453feaf9fa32";
+      name = "kwave-20.08.1.tar.xz";
     };
   };
   kwordquiz = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kwordquiz-19.12.3.tar.xz";
-      sha256 = "6965a3b3c171c3f62aeecf4ccdddde14d23062ab914b1860822546a5770b80fc";
-      name = "kwordquiz-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kwordquiz-20.08.1.tar.xz";
+      sha256 = "77d2d30abcb37ee6a8e0b121ed1969f2fa61eb32814f49a0186043a4e8f1a71c";
+      name = "kwordquiz-20.08.1.tar.xz";
     };
   };
   libgravatar = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libgravatar-19.12.3.tar.xz";
-      sha256 = "70ea306f48aede9f8f327eaa74ea5ce5761e5dfe67f2da50d3242c0f312edc86";
-      name = "libgravatar-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libgravatar-20.08.1.tar.xz";
+      sha256 = "dfe95055869944b79b1f4120f013b547225b02b69c7e410fd09d52469a892263";
+      name = "libgravatar-20.08.1.tar.xz";
     };
   };
   libkcddb = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkcddb-19.12.3.tar.xz";
-      sha256 = "69cbaf03adba24c0cabf957ee4149c4fa86d403eb6b8a07f7f80eb17be49e892";
-      name = "libkcddb-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkcddb-20.08.1.tar.xz";
+      sha256 = "1519c9248b46d95d8761a8ed22b0805964a5fef5aa665710b08851c753f70590";
+      name = "libkcddb-20.08.1.tar.xz";
     };
   };
   libkcompactdisc = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkcompactdisc-19.12.3.tar.xz";
-      sha256 = "74aac7dcac84c60a7962f23e7bcc6eb693048fd96ca21015441a87487baa9d1c";
-      name = "libkcompactdisc-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkcompactdisc-20.08.1.tar.xz";
+      sha256 = "f43b8129a0083686dbc939387931867d9d65e14936f2a86be0a7286e01cf1974";
+      name = "libkcompactdisc-20.08.1.tar.xz";
     };
   };
   libkdcraw = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkdcraw-19.12.3.tar.xz";
-      sha256 = "9454aed707ee311dbfb921f8d45fba11710ffc01f48d65f64585d12c2580116f";
-      name = "libkdcraw-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkdcraw-20.08.1.tar.xz";
+      sha256 = "3431810972d886635ba6249ac86a9442a9c3a3333eb0b27533fc459e757e9eb1";
+      name = "libkdcraw-20.08.1.tar.xz";
     };
   };
   libkdegames = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkdegames-19.12.3.tar.xz";
-      sha256 = "39cf5039b7fe11688028df026252c9cd4424546817b5bb635af2558f71ba6b20";
-      name = "libkdegames-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkdegames-20.08.1.tar.xz";
+      sha256 = "6ab0b143dcba2d935dd0182c9154657ebbfb205c28bc86e2e13875b58e23737d";
+      name = "libkdegames-20.08.1.tar.xz";
     };
   };
   libkdepim = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkdepim-19.12.3.tar.xz";
-      sha256 = "911e7d174240d4c056472549dbd1f3da4467a57c765f3cb34fbac32943f38dbb";
-      name = "libkdepim-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkdepim-20.08.1.tar.xz";
+      sha256 = "a2fb769239283e7f536d4779089ad8664d1498cf7520f057589bf0285630fb4b";
+      name = "libkdepim-20.08.1.tar.xz";
     };
   };
   libkeduvocdocument = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkeduvocdocument-19.12.3.tar.xz";
-      sha256 = "31594d30e03890507b25d676981164fd64258e69c6b264b85939118377eda964";
-      name = "libkeduvocdocument-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkeduvocdocument-20.08.1.tar.xz";
+      sha256 = "ecd158beb7fcc1a5d540d956669c6fdce6172f4b282755170d2791076d75ad84";
+      name = "libkeduvocdocument-20.08.1.tar.xz";
     };
   };
   libkexiv2 = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkexiv2-19.12.3.tar.xz";
-      sha256 = "f5d0947f6b1ca0583d569990dc6f68bb01d8f7756a38bcc40b1e54f7814e4d4d";
-      name = "libkexiv2-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkexiv2-20.08.1.tar.xz";
+      sha256 = "67310ae90d89f26d2ae98ede8fa973e27ea1ce3d15c389954d391cd058543979";
+      name = "libkexiv2-20.08.1.tar.xz";
     };
   };
   libkgapi = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkgapi-19.12.3.tar.xz";
-      sha256 = "f52923c382272b47782348fbadb32902fbcd4652f4100875a745ba57033cf48a";
-      name = "libkgapi-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkgapi-20.08.1.tar.xz";
+      sha256 = "dfa9003556a01ef19eda186973f87356d32ea8f82f8d653803b2cc935f077127";
+      name = "libkgapi-20.08.1.tar.xz";
     };
   };
   libkgeomap = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkgeomap-19.12.3.tar.xz";
-      sha256 = "eb604deffe78cdcd4a8c7d888416246d0a17f2e3b7d80d6959e1412f03ab2755";
-      name = "libkgeomap-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkgeomap-20.08.1.tar.xz";
+      sha256 = "a210945b6807efca3390173233269aa31f27a23b5f36670b88f66b3b28df846f";
+      name = "libkgeomap-20.08.1.tar.xz";
     };
   };
   libkipi = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkipi-19.12.3.tar.xz";
-      sha256 = "3a57d07cd4fe8e118558d807242bf483fa2aac1bcf3dcdc29139636c2b280786";
-      name = "libkipi-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkipi-20.08.1.tar.xz";
+      sha256 = "4722ab563c1350042920d1937b84fdd38b5779449a2d9b689328cd82241cb5d2";
+      name = "libkipi-20.08.1.tar.xz";
     };
   };
   libkleo = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkleo-19.12.3.tar.xz";
-      sha256 = "1e715442a0c52ca561316abdce9662082f52ad9f3101ea01435a90984989a057";
-      name = "libkleo-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkleo-20.08.1.tar.xz";
+      sha256 = "78c1dc2e4d7177aaf37cb1c706d9c21b08fac7d130ac1da3d3f2a6f083117ffb";
+      name = "libkleo-20.08.1.tar.xz";
     };
   };
   libkmahjongg = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkmahjongg-19.12.3.tar.xz";
-      sha256 = "f8ea23952a576e6081052d10e9c967bebe5db017ad62775183f91236158cc19f";
-      name = "libkmahjongg-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkmahjongg-20.08.1.tar.xz";
+      sha256 = "5a8674921e39b38655d1f95340831b1bc746047cbad8501706436f5dacf47fc2";
+      name = "libkmahjongg-20.08.1.tar.xz";
     };
   };
   libkomparediff2 = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkomparediff2-19.12.3.tar.xz";
-      sha256 = "aadc6e420e24bdebe203d4dfc76f5c23c8529be70ac057d89b516ab57b165094";
-      name = "libkomparediff2-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkomparediff2-20.08.1.tar.xz";
+      sha256 = "9d109dfea1433602cdabc89ffa5f522147befc9b1d6d9760549aba7db5dbd399";
+      name = "libkomparediff2-20.08.1.tar.xz";
     };
   };
   libksane = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libksane-19.12.3.tar.xz";
-      sha256 = "0aab855b8414041c37ddfbb9f0732272206af1c0844376f1370b9d2a907af71d";
-      name = "libksane-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libksane-20.08.1.tar.xz";
+      sha256 = "0d8717ad004a2480aea232d9a2317b4d1cc4678d53f0176bdaeb411eedd19dbe";
+      name = "libksane-20.08.1.tar.xz";
     };
   };
   libksieve = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libksieve-19.12.3.tar.xz";
-      sha256 = "990e6a15e7e88120bf6c744fe6f1ac78184d6470318005f24634a70219f45002";
-      name = "libksieve-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libksieve-20.08.1.tar.xz";
+      sha256 = "a1defe888c6c5a3c16ef6fad39d9eb94bc784031079763f004048951820acec0";
+      name = "libksieve-20.08.1.tar.xz";
     };
   };
   lokalize = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/lokalize-19.12.3.tar.xz";
-      sha256 = "8015c994e974fd51c1c7f5903a005bbbc25f094656bdd44cd5e8675cd69cea92";
-      name = "lokalize-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/lokalize-20.08.1.tar.xz";
+      sha256 = "a4a3e5703d39ae8fe12d2ff832e99b3339ba1c8ec8d2439abeb348e687f1eae9";
+      name = "lokalize-20.08.1.tar.xz";
     };
   };
   lskat = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/lskat-19.12.3.tar.xz";
-      sha256 = "5f13417ba9f6831a5f48c220a5c67a8d73787715b8b4aa433e6e356b7ac58776";
-      name = "lskat-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/lskat-20.08.1.tar.xz";
+      sha256 = "319d611468b969b3bb62731a0aa04c5672bb689c41adf5545dfa8b9742668775";
+      name = "lskat-20.08.1.tar.xz";
     };
   };
   mailcommon = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/mailcommon-19.12.3.tar.xz";
-      sha256 = "d3999d290505b20aecbb4b14bec5af4d6a7db72d1f26f7a40b4aff231588c7e5";
-      name = "mailcommon-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/mailcommon-20.08.1.tar.xz";
+      sha256 = "d4ee996f74a749ad626ca5029821546da82dbfc1c81864ff39b5f51d6dcf1d88";
+      name = "mailcommon-20.08.1.tar.xz";
     };
   };
   mailimporter = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/mailimporter-19.12.3.tar.xz";
-      sha256 = "b81e8a5794aee24aa611c1a1912f93a308ce56c429ad4a72afe308e6b554c4a7";
-      name = "mailimporter-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/mailimporter-20.08.1.tar.xz";
+      sha256 = "dcf2b94d4f66be2b339b31dfebef7af373e0cf59f09e4cfb664eb828e1d4f73f";
+      name = "mailimporter-20.08.1.tar.xz";
     };
   };
   marble = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/marble-19.12.3.tar.xz";
-      sha256 = "73a2c5234f8a1728e2a97499166e7bbf8dfb2f48d10fe8cff96380631d064627";
-      name = "marble-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/marble-20.08.1.tar.xz";
+      sha256 = "96b019a41ae4e0aaab59950b6be040bd2145f130190b8c0dea436c791e3192ed";
+      name = "marble-20.08.1.tar.xz";
     };
   };
   mbox-importer = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/mbox-importer-19.12.3.tar.xz";
-      sha256 = "62fb1490517e0a49bf823946c8b747062cb970dbe00281d459adda73596f0046";
-      name = "mbox-importer-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/mbox-importer-20.08.1.tar.xz";
+      sha256 = "262c8805539b7c766099c6287d1dbf88161afe6d32c1c6821ebe63cff4fe3b71";
+      name = "mbox-importer-20.08.1.tar.xz";
     };
   };
   messagelib = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/messagelib-19.12.3.tar.xz";
-      sha256 = "5e776d5ea7b0cbb246b03cf2bfc84a65a959e7433a7f80b77a5f67cfa7c23ccb";
-      name = "messagelib-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/messagelib-20.08.1.tar.xz";
+      sha256 = "fc41124e905456a3c5227ca6154dc3e77620e307458fbb19f5421cbfb04523b3";
+      name = "messagelib-20.08.1.tar.xz";
     };
   };
   minuet = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/minuet-19.12.3.tar.xz";
-      sha256 = "740a3704004336f08c0fde148257c1562254b4e706704ec7eb2149fb3d7b6b9b";
-      name = "minuet-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/minuet-20.08.1.tar.xz";
+      sha256 = "a640025550337f415f7bfaaad7f6ef7de667dd054131be2c313d894c3f6703ea";
+      name = "minuet-20.08.1.tar.xz";
     };
   };
   okular = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/okular-19.12.3.tar.xz";
-      sha256 = "c5de22cc4292e3b7adae3f6ef6566dcba33a1dd5995fb0b968ea3e705a4c04e0";
-      name = "okular-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/okular-20.08.1.tar.xz";
+      sha256 = "77b5d8e410a2a008ea63f60a561f99053ec07d92da6ee3afaeefd977aadebd83";
+      name = "okular-20.08.1.tar.xz";
     };
   };
   palapeli = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/palapeli-19.12.3.tar.xz";
-      sha256 = "6989bbc94ed955f6990d40bccbc0c38768898bf2ccb8163c45119517340b723d";
-      name = "palapeli-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/palapeli-20.08.1.tar.xz";
+      sha256 = "31b847caa89b998dfa580553d96c656b05f2d85fdd88f0ba71e953762cefac90";
+      name = "palapeli-20.08.1.tar.xz";
     };
   };
   parley = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/parley-19.12.3.tar.xz";
-      sha256 = "ebf9fdec981abca988d83d8a77e921e7ce871eb010b6cf4ea9065ee6d45f5089";
-      name = "parley-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/parley-20.08.1.tar.xz";
+      sha256 = "9617a90c2d4f9ab5d928febc6bcd10c9023dcc10e9f1202bfb97b77019948f0c";
+      name = "parley-20.08.1.tar.xz";
     };
   };
   picmi = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/picmi-19.12.3.tar.xz";
-      sha256 = "04a69125fc76b1fcd58d873452e4a4e642ee9ee672cdb7656214d8cd854fc178";
-      name = "picmi-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/picmi-20.08.1.tar.xz";
+      sha256 = "027e37a2c9dcf828684a0f8ffdcfc6451a2bd62976c10d990e471fa0f5ba97c3";
+      name = "picmi-20.08.1.tar.xz";
     };
   };
   pimcommon = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/pimcommon-19.12.3.tar.xz";
-      sha256 = "443e2915eb42a4f56f1ddf47785ceeceb4ca1e0384ff48bc93fc4a7756392766";
-      name = "pimcommon-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/pimcommon-20.08.1.tar.xz";
+      sha256 = "58a33349bf932076f6be343ae64e23f146e2a6a96e3af8ce68dbd752f2c80dd9";
+      name = "pimcommon-20.08.1.tar.xz";
     };
   };
   pim-data-exporter = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/pim-data-exporter-19.12.3.tar.xz";
-      sha256 = "8e9961fcc4f1ed0305d589e3a417f8924657d89d798a77c53956d73f6bf19938";
-      name = "pim-data-exporter-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/pim-data-exporter-20.08.1.tar.xz";
+      sha256 = "54092763e4b951f4e90a217c876107900e0706da68ca5517184e5da258ae95ec";
+      name = "pim-data-exporter-20.08.1.tar.xz";
     };
   };
   pim-sieve-editor = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/pim-sieve-editor-19.12.3.tar.xz";
-      sha256 = "641ea56304df079a80e098fb253c173b63266990856f8795af093c144c3883ae";
-      name = "pim-sieve-editor-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/pim-sieve-editor-20.08.1.tar.xz";
+      sha256 = "f788038796f226bfe426835fc6f186e23f2c7f9fda8316dfa6af307d6936d4ad";
+      name = "pim-sieve-editor-20.08.1.tar.xz";
     };
   };
   poxml = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/poxml-19.12.3.tar.xz";
-      sha256 = "190178290ce18fe3a684c22d650843f3008a6e31ebbab8fff25491c58b21e276";
-      name = "poxml-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/poxml-20.08.1.tar.xz";
+      sha256 = "9f4bcafc664532706fe634ce8b0f410619d5e3c285526a7b61969155d75bbad2";
+      name = "poxml-20.08.1.tar.xz";
     };
   };
   print-manager = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/print-manager-19.12.3.tar.xz";
-      sha256 = "74c13802a65136539b4542fec10fb248149a3324e8060e947a8f305ce665269a";
-      name = "print-manager-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/print-manager-20.08.1.tar.xz";
+      sha256 = "52d41ca3ae69e6e8e1eb4ddf1d516868dc436e81779053efdea5e3819545ca5b";
+      name = "print-manager-20.08.1.tar.xz";
     };
   };
   rocs = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/rocs-19.12.3.tar.xz";
-      sha256 = "f834e69e676913e364162906b79da5a75a6043f4a5c8506954d1630abda45e3c";
-      name = "rocs-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/rocs-20.08.1.tar.xz";
+      sha256 = "3c5f764f06f6f5b7c68523be4fdd37e75b2249e0b15001bc39e55051d9e271ef";
+      name = "rocs-20.08.1.tar.xz";
     };
   };
   signon-kwallet-extension = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/signon-kwallet-extension-19.12.3.tar.xz";
-      sha256 = "46199be023bad630b769b14c2c0a63feff2949da944c76780b1ebd9a50ee3daa";
-      name = "signon-kwallet-extension-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/signon-kwallet-extension-20.08.1.tar.xz";
+      sha256 = "10a0ea806dc63cbf6c6d4794fe596c68355bccb3e08370d70ce7a8e95af448a5";
+      name = "signon-kwallet-extension-20.08.1.tar.xz";
     };
   };
   spectacle = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/spectacle-19.12.3.tar.xz";
-      sha256 = "443f114dab1fb50e7e12a046fdf06c0456bf99a3abdf09dce05605fdf7d3de81";
-      name = "spectacle-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/spectacle-20.08.1.tar.xz";
+      sha256 = "4a01b5ef41901ff2e83bb517c2e96a978188b98cb62243eb541a317f57a2bd69";
+      name = "spectacle-20.08.1.tar.xz";
     };
   };
   step = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/step-19.12.3.tar.xz";
-      sha256 = "0eb62c87553769e009daa02406b1d95742c946bdffe0d22327776ec558e7584b";
-      name = "step-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/step-20.08.1.tar.xz";
+      sha256 = "6e04930963676b1bfa55ee095914c7491a61bf3963c45ed4157f868175ee6605";
+      name = "step-20.08.1.tar.xz";
     };
   };
   svgpart = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/svgpart-19.12.3.tar.xz";
-      sha256 = "942d877a516d8407ef2782d7c6869ab688274fee6cde9b23ab1061bcbddf2cc9";
-      name = "svgpart-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/svgpart-20.08.1.tar.xz";
+      sha256 = "206c3741464f959ffbaea09bc918fc3e88f32fcf12928cd8c399ab44d4b1f228";
+      name = "svgpart-20.08.1.tar.xz";
     };
   };
   sweeper = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/sweeper-19.12.3.tar.xz";
-      sha256 = "cf89cfba61c9eeda9b4e7921c21a23e7d9a110b134ab6fbd127c37d036bd0517";
-      name = "sweeper-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/sweeper-20.08.1.tar.xz";
+      sha256 = "722c25de8cc74fe7e8310d47a7e794f32e935331f89d4f5249fd045a83ce0431";
+      name = "sweeper-20.08.1.tar.xz";
     };
   };
   umbrello = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/umbrello-19.12.3.tar.xz";
-      sha256 = "b2f769c7bd1cc259170b62c68d2dca05b4a143dd1048dbb507cf2bbb3020a193";
-      name = "umbrello-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/umbrello-20.08.1.tar.xz";
+      sha256 = "d980d67f8a878e01cd3af5499aa843df703f20cdecca8a14b59d87d13c747328";
+      name = "umbrello-20.08.1.tar.xz";
     };
   };
   yakuake = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/yakuake-19.12.3.tar.xz";
-      sha256 = "0e4f16eaf155750b0c35f1f8f1a625909f386f3359b9f23bf4e7c2f9045384e3";
-      name = "yakuake-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/yakuake-20.08.1.tar.xz";
+      sha256 = "6768a360a3d79080e6e53821460ed27f6c2e47fa11077bbec3213d85385d6fac";
+      name = "yakuake-20.08.1.tar.xz";
     };
   };
   zeroconf-ioslave = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/zeroconf-ioslave-19.12.3.tar.xz";
-      sha256 = "c9b2146030a9845b8164f5784d1c6fcc198b6cfe0e23f6a91edf78d093e4368f";
-      name = "zeroconf-ioslave-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/zeroconf-ioslave-20.08.1.tar.xz";
+      sha256 = "ca1685a22922057ba89510d71a11218bf47db0d0313aec2b55aca21932564866";
+      name = "zeroconf-ioslave-20.08.1.tar.xz";
     };
   };
 }
diff --git a/pkgs/applications/logging/humioctl/default.nix b/pkgs/applications/logging/humioctl/default.nix
new file mode 100644
index 00000000000..715af073d8b
--- /dev/null
+++ b/pkgs/applications/logging/humioctl/default.nix
@@ -0,0 +1,39 @@
+{ buildGoModule, fetchFromGitHub, installShellFiles, stdenv }:
+
+let
+  humioCtlVersion = "0.26.1";
+  sha256 = "1zpcbfv7zlym0jfyz78piggm8zhqlzbwpwq0dn255d0zc48zp773";
+  vendorSha256 = "1l2wa4w43srfrkb4qrgiyzdb6bnaqvp9g3fnrln6bhrcw6jsgj4z";
+in buildGoModule {
+    name = "humioctl-${humioCtlVersion}";
+    pname = "humioctl";
+    version = humioCtlVersion;
+
+    vendorSha256 = vendorSha256;
+
+    doCheck = false;
+
+    src = fetchFromGitHub {
+      owner = "humio";
+      repo = "cli";
+      rev = "v${humioCtlVersion}";
+      sha256 = sha256;
+    };
+
+    buildFlagsArray = "-ldflags=-X main.version=${humioCtlVersion}";
+
+    nativeBuildInputs = [ installShellFiles ];
+
+    postInstall = ''
+      $out/bin/humioctl completion bash > humioctl.bash
+      $out/bin/humioctl completion zsh > humioctl.zsh
+      installShellCompletion humioctl.{bash,zsh}
+    '';
+
+    meta = with stdenv.lib; {
+      homepage = "https://github.com/humio/cli";
+      description = "A CLI for managing and sending data to Humio";
+      license = licenses.asl20;
+      maintainers = with maintainers; [ lucperkins ];
+    };
+  }
diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix
index 5e027fcdf04..eeaf8d56185 100644
--- a/pkgs/applications/misc/1password/default.nix
+++ b/pkgs/applications/misc/1password/default.nix
@@ -2,26 +2,22 @@
 
 stdenv.mkDerivation rec {
   pname = "1password";
-  version = "1.0.0";
+  version = "1.1.1";
   src =
-    if stdenv.hostPlatform.system == "i686-linux" then
-      fetchzip {
-        url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip";
-        sha256 = "1d1lxmrmirh3837zib91dmxblb4imdz8gbq56pb7kgbff3zf96ql";
-        stripRoot = false;
-      }
-    else if stdenv.hostPlatform.system == "x86_64-linux" then
-      fetchzip {
-        url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip";
-        sha256 = "0pscm61dc69vmkrzrnxi531d37ig9y48w8q1lvzsg13zvvwaw8hs";
-        stripRoot = false;
-      }
-    else if stdenv.hostPlatform.system == "x86_64-darwin" then
-      fetchurl {
-        url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_darwin_amd64_v${version}.pkg";
-        sha256 = "1sb5qdssasqm7z7j4xzgkmkgf132zhgm93d7rkx3y5j0rac98y0g";
-      }
-    else throw "Architecture not supported";
+    if stdenv.isLinux then fetchzip {
+      url = {
+        "i686-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip";
+        "x86_64-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip";
+      }.${stdenv.hostPlatform.system};
+      sha256 = {
+        "i686-linux" = "1andl3ripkcg4jhwdkd4b39c9aaxqpx9wzq21pysn6rlyy4hfcb0";
+        "x86_64-linux" = "0qj5v8psqyp0sra0pvzkwjpm28kx3bgg36y37wklb6zl2ngpxm5g";
+      }.${stdenv.hostPlatform.system};
+      stripRoot = false;
+    } else fetchurl {
+      url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_darwin_amd64_v${version}.pkg";
+      sha256 = "16inwxkrky4xwlr7vara1l8kapdgjg3kfq1l94i5855782hn4ppm";
+    };
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ xar cpio ];
 
diff --git a/pkgs/applications/misc/ArchiSteamFarm/default.nix b/pkgs/applications/misc/ArchiSteamFarm/default.nix
index 71404e73547..e5121ce6e7d 100644
--- a/pkgs/applications/misc/ArchiSteamFarm/default.nix
+++ b/pkgs/applications/misc/ArchiSteamFarm/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ArchiSteamFarm";
-  version = "4.2.3.3";
+  version = "4.2.3.6";
 
   src = fetchurl {
     url = "https://github.com/JustArchiNET/ArchiSteamFarm/releases/download/${version}/ASF-generic.zip";
-    sha256 = "0v69rrs5fr1n5llfx42xkiish52al7kb36fjy3ng0j9qfp3g8pj7";
+    sha256 = "1a8baxrb8czndxxi16md1nyl2snfx215yvrygdpcblgngkp2z2y9";
   };
 
   nativeBuildInputs = [ unzip makeWrapper jq ];
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
       --run "[ -d config ] || cp --no-preserve=mode -r $dist/config ." \
       --run "[ -d logs ] || cp --no-preserve=mode -r $dist/logs ." \
       --run "[ -d plugins ] || cp --no-preserve=mode -r $dist/plugins ." \
-      --run "[ -d www ] || ln -sf $dist/www ."
+      --run "ln -sf $dist/www ."
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/adobe-reader/default.nix b/pkgs/applications/misc/adobe-reader/default.nix
index b67e514ce54..ecd130426de 100644
--- a/pkgs/applications/misc/adobe-reader/default.nix
+++ b/pkgs/applications/misc/adobe-reader/default.nix
@@ -28,5 +28,9 @@ stdenv.mkDerivation {
     description = "Adobe Reader, a viewer for PDF documents";
     homepage = "http://www.adobe.com/products/reader";
     license = stdenv.lib.licenses.unfree;
+    knownVulnerabilities = [
+      "Numerous unresolved vulnerabilities"
+      "See: https://www.cvedetails.com/product/497/Adobe-Acrobat-Reader.html?vendor_id=53"
+    ];
   };
 }
diff --git a/pkgs/applications/misc/alacritty/default.nix b/pkgs/applications/misc/alacritty/default.nix
index a1f45fc7ed1..72e00cb15a7 100644
--- a/pkgs/applications/misc/alacritty/default.nix
+++ b/pkgs/applications/misc/alacritty/default.nix
@@ -52,16 +52,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "alacritty";
-  version = "0.4.3";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "alacritty";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1b6fspcd8yn1857cgn1m8a828bvjspvrfc2giwsa9ai0ighcqbgl";
+    sha256 = "1948j57xhqvc5y876s929x9rhd6j0xnw5c91g1zqw2rfncn602g2";
   };
 
-  cargoSha256 = "1zadnwjqk9kklj0p43azd78kgbva2zihh9wh81w4c5y0kypbchyd";
+  cargoSha256 = "17lyzcj07f0vyki3091vgjd0w8ki11sw5m8gb3bxdph1dl04rria";
 
   nativeBuildInputs = [
     cmake
diff --git a/pkgs/applications/misc/appeditor/default.nix b/pkgs/applications/misc/appeditor/default.nix
index 38b51efa240..ab58f923764 100644
--- a/pkgs/applications/misc/appeditor/default.nix
+++ b/pkgs/applications/misc/appeditor/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , vala
 , meson
 , ninja
@@ -51,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/misc/archiver/default.nix b/pkgs/applications/misc/archiver/default.nix
index 0e345b1e273..114021eb78f 100644
--- a/pkgs/applications/misc/archiver/default.nix
+++ b/pkgs/applications/misc/archiver/default.nix
@@ -16,11 +16,12 @@ buildGoModule rec {
 
   vendorSha256 = "1ikrgl03r9zkn86kxkqi2kf540g3qzzz24i5wvh6g3d5q49nygl9";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Easily create & extract archives, and compress & decompress files of various formats";
     homepage = "https://github.com/mholt/archiver";
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/misc/ausweisapp2/default.nix b/pkgs/applications/misc/ausweisapp2/default.nix
index 1dbcdf31ed1..9f157798a7d 100644
--- a/pkgs/applications/misc/ausweisapp2/default.nix
+++ b/pkgs/applications/misc/ausweisapp2/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "AusweisApp2";
-  version = "1.20.1";
+  version = "1.20.2";
 
   src = fetchFromGitHub {
     owner = "Governikus";
     repo = "AusweisApp2";
     rev = "${version}";
-    sha256 = "17ify6v4z8i8ps3s8qabnrqfkj0my4yzyqwk3q3nhrqilbnhr40x";
+    sha256 = "1vibk3wmn54qr2mwz537hrr959y0r1zabp0gsijhzj2mk68g9pnb";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/applications/misc/batsignal/default.nix b/pkgs/applications/misc/batsignal/default.nix
index 62434982968..56c508eaca9 100644
--- a/pkgs/applications/misc/batsignal/default.nix
+++ b/pkgs/applications/misc/batsignal/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "batsignal";
-  version = "1.0.0";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "electrickite";
     repo = "batsignal";
     rev = "${version}";
-    sha256 = "wy7YhgKfz07u0bp7rWpze+KmSdooOkmU7giaBX3wWkY=";
+    sha256 = "0ss5dw7wpqsf96dig6r7x4fhf6brmjdy54jyyf5nk1h9kzw4d69r";
   };
 
   buildInputs = [ libnotify glib ];
diff --git a/pkgs/applications/misc/bemenu/default.nix b/pkgs/applications/misc/bemenu/default.nix
index 8b17ecea3cb..43362b0394e 100644
--- a/pkgs/applications/misc/bemenu/default.nix
+++ b/pkgs/applications/misc/bemenu/default.nix
@@ -11,13 +11,13 @@ assert x11Support -> xlibs != null && xorg != null;
 
 stdenv.mkDerivation rec {
   pname = "bemenu";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "Cloudef";
     repo = pname;
     rev = version;
-    sha256 = "1fjcs9d3533ay3nz79cx3c0lmy2chgragr2lhsy0xl2ckr0iins0";
+    sha256 = "1ifq5bk7782b9m6bl111x33fn38rpppdrww7hfavqia9a9gi2sl5";
   };
 
   nativeBuildInputs = [ pkgconfig pcre ];
diff --git a/pkgs/applications/misc/birdtray/default.nix b/pkgs/applications/misc/birdtray/default.nix
index 5385cf67884..8eb6a168721 100644
--- a/pkgs/applications/misc/birdtray/default.nix
+++ b/pkgs/applications/misc/birdtray/default.nix
@@ -7,6 +7,7 @@
   , qtbase
   , qttools
   , qtx11extras
+  , qttranslations
 }:
 
 mkDerivation rec {
@@ -20,11 +21,21 @@ mkDerivation rec {
     sha256 = "15l8drdmamq1dpqpj0h9ajj2r5vcs23cx421drvhfgs6bqlzd1hl";
   };
 
+  patches = [
+    # See https://github.com/NixOS/nixpkgs/issues/86054
+    ./fix-qttranslations-path.diff
+  ];
+
   nativeBuildInputs = [ cmake pkgconfig ];
   buildInputs = [
     qtbase qttools qtx11extras
   ];
 
+  postPatch = ''
+    substituteInPlace src/birdtrayapp.cpp \
+      --subst-var-by qttranslations ${qttranslations}
+  '';
+
   meta = with lib; {
     description = "Mail system tray notification icon for Thunderbird";
     homepage = "https://github.com/gyunaev/birdtray";
diff --git a/pkgs/applications/misc/birdtray/fix-qttranslations-path.diff b/pkgs/applications/misc/birdtray/fix-qttranslations-path.diff
new file mode 100644
index 00000000000..2a379b5e274
--- /dev/null
+++ b/pkgs/applications/misc/birdtray/fix-qttranslations-path.diff
@@ -0,0 +1,13 @@
+diff --git a/src/birdtrayapp.cpp b/src/birdtrayapp.cpp
+index 847b4d3..3a3709a 100644
+--- a/src/birdtrayapp.cpp
++++ b/src/birdtrayapp.cpp
+@@ -130,7 +130,7 @@ bool BirdtrayApp::loadTranslations() {
+             [](QString path) { return path.append("/translations"); });
+     QLocale locale = QLocale::system();
+     bool success = loadTranslation(
+-            qtTranslator, locale, "qt", {QLibraryInfo::location(QLibraryInfo::TranslationsPath)});
++            qtTranslator, locale, "qt", {QLatin1String("@qttranslations@/translations")});
+     success &= loadTranslation(dynamicTranslator, locale, "dynamic", locations);
+     success &= loadTranslation(mainTranslator, locale, "main", locations);
+     return success;
diff --git a/pkgs/applications/misc/bleachbit/default.nix b/pkgs/applications/misc/bleachbit/default.nix
index 0111f8519e7..3c11c7bfaf5 100644
--- a/pkgs/applications/misc/bleachbit/default.nix
+++ b/pkgs/applications/misc/bleachbit/default.nix
@@ -1,5 +1,5 @@
 { stdenv
-, pythonPackages
+, python3Packages
 , fetchurl
 , gettext
 , gobject-introspection
@@ -9,15 +9,15 @@
 , libnotify
 }:
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "bleachbit";
-  version = "3.2.0";
+  version = "4.0.0";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "1sszpn7ifiry0wwmkzdppzh61zvgrfypm9g7wk6q1ya20qhb5b51";
+    sha256 = "1dn3h6lr9ldbfpvgq9sdlk972sxhwalgj2f377qbqibm3yfxzpil";
   };
 
   nativeBuildInputs = [
@@ -32,7 +32,7 @@ pythonPackages.buildPythonApplication rec {
     libnotify
   ];
 
-  propagatedBuildInputs = with pythonPackages; [
+  propagatedBuildInputs = with python3Packages; [
     chardet
     pygobject3
     requests
@@ -51,6 +51,12 @@ pythonPackages.buildPythonApplication rec {
     "prefix=${placeholder "out"}"
   ];
 
+  # prevent double wrapping from wrapGApps and wrapPythonProgram
+  dontWrapGApps = true;
+  makeWrapperArgs = [
+    ''''${gappsWrapperArgs[@]}''
+  ];
+
   strictDeps = false;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index 232ab1b2df0..2190307fbb5 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -17,11 +17,11 @@ let python = python3Packages.python; in
 
 stdenv.mkDerivation rec {
   pname = "blender";
-  version = "2.83.1";
+  version = "2.83.5";
 
   src = fetchurl {
     url = "https://download.blender.org/source/${pname}-${version}.tar.xz";
-    sha256 = "1kd74nzqvpcpsb4lghnjj9z3ps93lzqbhkv3lp5p79rqs8y64i23";
+    sha256 = "0xyawly00a59hfdb6b7va84k5fhcv2mxnzd77vs22bzi9y7sap43";
   };
 
   patches = lib.optional stdenv.isDarwin ./darwin.patch;
diff --git a/pkgs/applications/misc/break-time/default.nix b/pkgs/applications/misc/break-time/default.nix
new file mode 100644
index 00000000000..4bcc4de5157
--- /dev/null
+++ b/pkgs/applications/misc/break-time/default.nix
@@ -0,0 +1,45 @@
+{ fetchFromGitHub
+, glib
+, gtk3
+, openssl
+, pkg-config
+, python3
+, rustPlatform
+, stdenv
+, wrapGAppsHook
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "break-time";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "cdepillabout";
+    repo  = "break-time";
+    rev = "v${version}";
+    sha256 = "18p9gfp0inbnjsc7af38fghyklr7qnl2kkr25isfy9d5m8cpxqc6";
+  };
+
+  cargoSha256 = "0brmgrxhspcpcarm4lvnl95dw2n96r20w736giv18xcg7d5jmgca";
+
+  nativeBuildInputs = [
+    pkg-config
+    python3 # needed for Rust xcb package
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    openssl
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Break timer that forces you to take a break";
+    homepage    = "https://github.com/cdepillabout/break-time";
+    license     = with licenses; [ mit ];
+    maintainers = with maintainers; [ cdepillabout ];
+    platforms   = platforms.linux;
+  };
+}
+
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index a6bfc04c308..92a491a0056 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -16,7 +16,7 @@
 , hyphen
 , unrarSupport ? false
 , chmlib
-, python2Packages
+, pythonPackages
 , libusb1
 , libmtp
 , xdg_utils
@@ -24,17 +24,13 @@
 , removeReferencesTo
 }:
 
-let
-  pypkgs = python2Packages;
-
-in
 mkDerivation rec {
   pname = "calibre";
-  version = "4.19.0";
+  version = "4.23.0";
 
   src = fetchurl {
     url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz";
-    sha256 = "1kpj65spwr9m88vshsljpdrw5jy7bbpqgqcrvqb17abh7fnnrb4x";
+    sha256 = "sha256-Ft5RRzzw4zb5RqVyUaHk9Pu6H4V/F9j8FKoTLn61lRg=";
   };
 
   patches = [
@@ -47,7 +43,7 @@ mkDerivation rec {
   ] ++ lib.optional (!unrarSupport) ./dont_build_unrar_plugin.patch;
 
   prePatch = ''
-    sed -i "/pyqt_sip_dir/ s:=.*:= '${pypkgs.pyqt5_with_qtwebkit}/share/sip/PyQt5':"  \
+    sed -i "/pyqt_sip_dir/ s:=.*:= '${pythonPackages.pyqt5}/share/sip/PyQt5':"  \
       setup/build_environment.py
 
     # Remove unneeded files and libs
@@ -61,52 +57,49 @@ mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig qmake removeReferencesTo ];
 
-  CALIBRE_PY3_PORT = builtins.toString pypkgs.isPy3k;
+  CALIBRE_PY3_PORT = builtins.toString pythonPackages.isPy3k;
 
   buildInputs = [
-    poppler_utils
-    libpng
+    chmlib
+    fontconfig
+    hunspell
+    hyphen
+    icu
     imagemagick
     libjpeg
-    fontconfig
+    libmtp
+    libpng
+    libusb1
     podofo
+    poppler_utils
     qtbase
-    chmlib
-    icu
-    hunspell
-    hyphen
     sqlite
-    libusb1
-    libmtp
     xdg_utils
   ] ++ (
-    with pypkgs; [
+    with pythonPackages; [
       apsw
-      cssselect
+      beautifulsoup4
       css-parser
+      cssselect
       dateutil
       dnspython
       feedparser
+      html2text
       html5-parser
       lxml
       markdown
+      mechanize
+      msgpack
       netifaces
       pillow
-      python
       pyqt5
-      sip
-      regex
-      msgpack
-      beautifulsoup4
-      html2text
       pyqtwebengine
+      python
+      regex
+      sip
       # the following are distributed with calibre, but we use upstream instead
       odfpy
     ]
-  ) ++ lib.optionals (!pypkgs.isPy3k) (
-    with pypkgs; [
-      mechanize
-    ]
   );
 
   installPhase = ''
@@ -121,18 +114,17 @@ mkDerivation rec {
     export FC_LIB_DIR=${fontconfig.lib}/lib
     export PODOFO_INC_DIR=${podofo.dev}/include/podofo
     export PODOFO_LIB_DIR=${podofo.lib}/lib
-    export SIP_BIN=${pypkgs.sip}/bin/sip
+    export SIP_BIN=${pythonPackages.sip}/bin/sip
     export XDG_DATA_HOME=$out/share
     export XDG_UTILS_INSTALL_MODE="user"
 
-    ${pypkgs.python.interpreter} setup.py install --root=$out \
+    ${pythonPackages.python.interpreter} setup.py install --root=$out \
       --prefix=$out \
       --libdir=$out/lib \
       --staging-root=$out \
       --staging-libdir=$out/lib \
       --staging-sharedir=$out/share
 
-
     PYFILES="$out/bin/* $out/lib/calibre/calibre/web/feeds/*.py
       $out/lib/calibre/calibre/ebooks/metadata/*.py
       $out/lib/calibre/calibre/ebooks/rtf2xml/*.py"
@@ -154,7 +146,8 @@ mkDerivation rec {
   # 2018-11-06) was a single string like the following:
   #   /nix/store/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-podofo-0.9.6-dev/include/podofo/base/PdfVariant.h
   preFixup = ''
-    remove-references-to -t ${podofo.dev} $out/lib/calibre/calibre/plugins/podofo.so
+    remove-references-to -t ${podofo.dev} \
+      $out/lib/calibre/calibre/plugins${lib.optionalString pythonPackages.isPy3k "/3"}/podofo.so
 
     for program in $out/bin/*; do
       wrapProgram $program \
diff --git a/pkgs/applications/misc/cheat/default.nix b/pkgs/applications/misc/cheat/default.nix
index 42b03774749..e3ffdef44d0 100644
--- a/pkgs/applications/misc/cheat/default.nix
+++ b/pkgs/applications/misc/cheat/default.nix
@@ -3,13 +3,13 @@
 
 buildGoModule rec {
   pname = "cheat";
-  version = "4.0.0";
+  version = "4.0.4";
 
   src = fetchFromGitHub {
     owner = "cheat";
     repo = "cheat";
     rev = version;
-    sha256 = "0j9w2rm8imb15njj7334xl6w0fgjvfqnrfvdq4zfsrwzl67ds86l";
+    sha256 = "0cracw6pja3d7z6ip6lbmpvfxlxcnh3fbgh5ba8c87bhfz99idqn";
   };
 
   subPackages = [ "cmd/cheat" ];
@@ -23,6 +23,8 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Create and view interactive cheatsheets on the command-line";
     maintainers = with maintainers; [ mic92 ];
diff --git a/pkgs/applications/misc/chewing-editor/default.nix b/pkgs/applications/misc/chewing-editor/default.nix
new file mode 100644
index 00000000000..b70f9a2e7d8
--- /dev/null
+++ b/pkgs/applications/misc/chewing-editor/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, mkDerivation, fetchFromGitHub, cmake, pkgconfig, libchewing, qtbase
+, qttools }:
+
+mkDerivation rec {
+  pname = "chewing-editor";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "chewing";
+    repo = "${pname}";
+    rev = "${version}";
+    sha256 = "0kc2hjx1gplm3s3p1r5sn0cyxw3k1q4gyv08q9r6rs4sg7xh2w7w";
+  };
+
+  doCheck = true;
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+  buildInputs = [ libchewing qtbase qttools ];
+
+  meta = with stdenv.lib; {
+    description = "Cross platform chewing user phrase editor";
+    longDescription = ''
+      chewing-editor is a cross platform chewing user phrase editor. It provides a easy way to manage user phrase. With it, user can customize their user phrase to increase input performance.
+    '';
+    homepage = "https://github.com/chewing/chewing-editor";
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.ShamrockLee ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/misc/cipher/default.nix b/pkgs/applications/misc/cipher/default.nix
index eef05fe91d2..630519ff2bf 100644
--- a/pkgs/applications/misc/cipher/default.nix
+++ b/pkgs/applications/misc/cipher/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , vala
@@ -48,7 +49,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/misc/clight/default.nix b/pkgs/applications/misc/clight/default.nix
index ed8767419d4..2502459af10 100644
--- a/pkgs/applications/misc/clight/default.nix
+++ b/pkgs/applications/misc/clight/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clight";
-  version = "4.0";
+  version = "4.1";
 
   src = fetchFromGitHub {
     owner = "FedeDP";
     repo = "Clight";
     rev = version;
-    sha256 = "101fp9kwmfmfffpdvv41wf96kdjw0b16xk49g43w32a5wlr74zrq";
+    sha256 = "1j7va217g1k8lxl3lly13js8myf0shjc6knalq8q6lakc6j1mkxx";
   };
 
   # bash-completion.pc completionsdir=${bash-completion.out}
diff --git a/pkgs/applications/misc/clipmenu/default.nix b/pkgs/applications/misc/clipmenu/default.nix
index 4bc56f0c452..54c2ab48f65 100644
--- a/pkgs/applications/misc/clipmenu/default.nix
+++ b/pkgs/applications/misc/clipmenu/default.nix
@@ -1,24 +1,30 @@
-{ clipnotify, makeWrapper, xsel, dmenu, utillinux, gawk, stdenv, fetchFromGitHub, lib }:
+{ clipnotify, makeWrapper, xsel, dmenu, utillinux, gawk, stdenv, fetchFromGitHub, fetchpatch, lib }:
 let
   runtimePath = lib.makeBinPath [ clipnotify xsel dmenu utillinux gawk ];
 in
 stdenv.mkDerivation rec {
   pname = "clipmenu";
-  version = "6.0.1";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner  = "cdown";
     repo   = "clipmenu";
     rev    = version;
-    sha256 = "0053j4i14lz5m2bzc5sch5id5ilr1bl196mp8fp0q8x74w3vavs9";
+    sha256 = "0ddj5xcwrdb2qvrndvhv8j6swcqc8dvv5i00pqk35rfk5mrl4hwv";
   };
-
+  
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/cdown/clipmenu/commit/443b58583ef216e2405e4a38d401f7c36386d21e.patch";
+      sha256 = "12m4rpw7jbr31c919llbsmn8dcf7yh9aijln4iym6h2lylzqzzdz";
+    })
+  ];
+  
+  makeFlags = [ "PREFIX=$(out)" ];
   buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ xsel clipnotify ];
 
   installPhase = ''
-    mkdir -p $out/bin
-    cp clipdel clipmenu clipmenud $out/bin
-
     for bin in $out/bin/*; do
       wrapProgram "$bin" --prefix PATH : "${runtimePath}"
     done
diff --git a/pkgs/applications/misc/coolreader/default.nix b/pkgs/applications/misc/coolreader/default.nix
new file mode 100644
index 00000000000..c3efed72cb0
--- /dev/null
+++ b/pkgs/applications/misc/coolreader/default.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, fetchFromGitHub, cmake, pkg-config, lib,
+  qttools, fribidi, libunibreak }:
+
+mkDerivation rec {
+  pname = "coolreader";
+  version = "3.2.45";
+
+  src = fetchFromGitHub {
+    owner = "buggins";
+    repo = pname;
+    rev = "cr${version}";
+    sha256 = "0nkk4d0j04yjwanjszq8h8hvx87rnwax2k6akm4bpjxwpcs4icws";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ qttools fribidi libunibreak ];
+
+  meta = with lib; {
+    homepage = "https://github.com/buggins/coolreader";
+    description = "Cross platform open source e-book reader";
+    license = licenses.gpl2Plus; # see https://github.com/buggins/coolreader/issues/80
+    maintainers = with maintainers; [ gebner ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/misc/copyq/default.nix b/pkgs/applications/misc/copyq/default.nix
index fb177e8278f..7cf89a74e10 100644
--- a/pkgs/applications/misc/copyq/default.nix
+++ b/pkgs/applications/misc/copyq/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "CopyQ";
-  version = "3.11.1";
+  version = "3.12.0";
 
   src  = fetchFromGitHub {
     owner = "hluk";
     repo = "CopyQ";
     rev = "v${version}";
-    sha256 = "1xxf8d220pa77195d9f3l3scvvyqsh1pvlrbw4cq6ydj9qbp5kf0";
+    sha256 = "04jidibf0b80c5vd659pz2wibmggjyyj9yz2bw7j4g84hwraksxb";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/cura/default.nix b/pkgs/applications/misc/cura/default.nix
index 1b5c7c23956..c0aa0a481bd 100644
--- a/pkgs/applications/misc/cura/default.nix
+++ b/pkgs/applications/misc/cura/default.nix
@@ -2,20 +2,20 @@
 
 mkDerivation rec {
   pname = "cura";
-  version = "4.6.1";
+  version = "4.7.1";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "Cura";
     rev = version;
-    sha256 = "0h1r9caa579d3gfpcmch54rdbkg5df64ds2v84iqsbxwjp0rmn4n";
+    sha256 = "19an168iad3cb5w8i71c0wbr79qnz5qnpxqx1j6dgh64qz6ffn2r";
   };
 
   materials = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "fdm_materials";
     rev = version;
-    sha256 = "1k5c3qmixhpz3z2yi0fysxcyyf1yhcwmdlrcypkw827lhsialqp4";
+    sha256 = "1w6i0dlff8b30q987x3y0zv8847fc8ppfcr9vi982msmv284c89z";
   };
 
   buildInputs = [ qtbase qtquickcontrols2 qtgraphicaleffects ];
diff --git a/pkgs/applications/misc/cura/plugins.nix b/pkgs/applications/misc/cura/plugins.nix
index 9fbe647046c..9082feb38a7 100644
--- a/pkgs/applications/misc/cura/plugins.nix
+++ b/pkgs/applications/misc/cura/plugins.nix
@@ -6,13 +6,13 @@ let
 
     octoprint = stdenv.mkDerivation rec {
       pname = "Cura-OctoPrintPlugin";
-      version = "3.5.12";
+      version = "3.5.16";
 
       src = fetchFromGitHub {
         owner = "fieldOfView";
         repo = pname;
-        rev = "ad522c0b7ead5fbe28da686a3cc75e351274c2bc";
-        sha256 = "0ln11ng32bh0smfsk54mv2j3sadh0gwf031nmm95zrvbj9cr6yc0";
+        rev = "8affa8aa9796cb37129d3b7222fff03f86c936cd";
+        sha256 = "0l4qfcashkdmpdm8nm3klz6hmi1f0bmbpb9b1yn4mvg0fam6c5xi";
       };
 
       propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/applications/misc/curaengine/default.nix b/pkgs/applications/misc/curaengine/default.nix
index 0a4ec62ca78..5cc5db3115f 100644
--- a/pkgs/applications/misc/curaengine/default.nix
+++ b/pkgs/applications/misc/curaengine/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "curaengine";
-  version = "4.6.1";
+  version = "4.7.1";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "CuraEngine";
     rev = version;
-    sha256 = "1fr151hmdg2lhk9pbpan1hb1pafj784nijr4pz646ljmjh12vfk2";
+    sha256 = "177fk6j4gn3ssi8j1qxj8p4486f7jkz328vc75agxnh7vhd4mwsm";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index 0ff5aaeb79a..e8a04aa2e14 100644
--- a/pkgs/applications/misc/dbeaver/default.nix
+++ b/pkgs/applications/misc/dbeaver/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "dbeaver-ce";
-  version = "7.1.1";
+  version = "7.2.0";
 
   desktopItem = makeDesktopItem {
     name = "dbeaver";
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "11c9jvpjg72xkwnni4clwg3inig77s7jz3ik52gk52m6f09brxhs";
+    sha256 = "0zpxsdzhn5fsrlq04v5kvkrgf4dsj5zmpypj9awsd2mjcbp6yxd7";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/misc/ddgr/default.nix b/pkgs/applications/misc/ddgr/default.nix
index 82730842bac..1cac8811103 100644
--- a/pkgs/applications/misc/ddgr/default.nix
+++ b/pkgs/applications/misc/ddgr/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, python3, installShellFiles }:
 
 stdenv.mkDerivation rec {
-  version = "1.8.1";
+  version = "1.9";
   pname = "ddgr";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = "ddgr";
     rev = "v${version}";
-    sha256 = "0668wzh1gqin0xscy3fly9hz370n2ny175f3kya9bsld0x0jkd5p";
+    sha256 = "0qbdq7k0mmvkjp6qzz88n7vf29liqn6y5w4y39ldqdc8hzw5sld7";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/applications/misc/direwolf/default.nix b/pkgs/applications/misc/direwolf/default.nix
deleted file mode 100644
index 623e6dc0fbe..00000000000
--- a/pkgs/applications/misc/direwolf/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ stdenv, fetchFromGitHub
-, espeak, alsaLib, perl
-, python }:
-
-with stdenv.lib;
-
-stdenv.mkDerivation rec {
-  pname = "direwolf";
-  version = "1.4";
-
-  src = fetchFromGitHub {
-    owner = "wb2osz";
-    repo = "direwolf";
-    rev = version;
-    sha256 = "033sffjs2dz48077hc58jr4lxxs8md1fyfh4lig6ib7pyigiv1y0";
-  };
-
-  buildInputs = [
-    espeak perl python
-  ] ++ (optional stdenv.isLinux alsaLib);
-
-  postPatch = ''
-    for i in Makefile.*; do
-      substituteInPlace "$i" \
-        --replace /usr/share $out/share
-    done
-
-    substituteInPlace dwespeak.sh \
-      --replace espeak ${espeak}/bin/espeak
-  '';
-
-  preInstall = ''
-    mkdir -p $out/bin
-  '';
-  installFlags = [ "INSTALLDIR=$(out)" ];
-
-  meta = {
-    description = "A Soundcard Packet TNC, APRS Digipeater, IGate, APRStt gateway";
-    homepage = "https://github.com/wb2osz/direwolf/";
-    license = licenses.gpl2;
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/applications/misc/dmenu/wayland.nix b/pkgs/applications/misc/dmenu/wayland.nix
index ca2e6f56e84..250a7567d78 100644
--- a/pkgs/applications/misc/dmenu/wayland.nix
+++ b/pkgs/applications/misc/dmenu/wayland.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dmenu-wayland-unstable";
-  version = "2020-04-03";
+  version = "2020-07-06";
 
   src = fetchFromGitHub {
     owner = "nyyManni";
     repo = "dmenu-wayland";
-    rev = "550a7c39f3f925b803d51c616609c8cb6c0ea543";
-    sha256 = "0az3w1csn4x6mjyacg6lf70kykdfqamic3hbr57mj83i5jjv0jlv";
+    rev = "304c8e917651ee02b16ebf0b7097a5c53fa2236b";
+    sha256 = "0rkpmpk7xkcfbnv9vpg8n65423z5xpgp0hm2vg0rxf9354bjin7k";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/applications/misc/dstask/default.nix b/pkgs/applications/misc/dstask/default.nix
index fae7809d25a..d0f84df7841 100644
--- a/pkgs/applications/misc/dstask/default.nix
+++ b/pkgs/applications/misc/dstask/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "dstask";
-  version = "0.18";
+  version = "0.20";
 
   src = fetchFromGitHub {
     owner = "naggie";
     repo = pname;
     rev = "v${version}";
-    sha256 = "16z5zlfj955pzsj0l58835slvpchdaq2vbyx2fjzi6y9xn1z2nd1";
+    sha256 = "0hrhvfkqflr4wx1r2xbfbi566pglrp4rp5yq0cr2ml0x6kw3yz0j";
   };
 
   # Set vendorSha256 to null because dstask vendors its dependencies (meaning
@@ -18,6 +18,8 @@ buildGoModule rec {
   # and <https://github.com/NixOS/nixpkgs/blob/d4226e3a4b5fcf988027147164e86665d382bbfa/pkgs/development/go-modules/generic/default.nix#L18>
   vendorSha256 = null;
 
+  doCheck = false;
+
   # The ldflags reduce the executable size by stripping some debug stuff.
   # The other variables are set so that the output of dstask version shows the
   # git ref and the release version from github.
diff --git a/pkgs/applications/misc/dunst/default.nix b/pkgs/applications/misc/dunst/default.nix
index 7da2ae421d7..a906669e7c6 100644
--- a/pkgs/applications/misc/dunst/default.nix
+++ b/pkgs/applications/misc/dunst/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dunst";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "dunst-project";
     repo = "dunst";
     rev = "v${version}";
-    sha256 = "0xjj1f2jr1ja5grj6wrx5jjz1sx5fpqnvkw7nqi4452j3nc4p4l2";
+    sha256 = "0irwkqcgwkqaylcpvqgh25gn2ysbdm2kydipxfzcq1ddj9ns6f9c";
   };
 
   nativeBuildInputs = [ perl pkgconfig which systemd makeWrapper ];
diff --git a/pkgs/applications/misc/effitask/cargo-lock.patch b/pkgs/applications/misc/effitask/cargo-lock.patch
new file mode 100644
index 00000000000..4f56b82368f
--- /dev/null
+++ b/pkgs/applications/misc/effitask/cargo-lock.patch
@@ -0,0 +1,1091 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..55e4495
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,1085 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "aho-corasick"
++version = "0.7.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "arrayvec"
++version = "0.4.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "atk"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "atk-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "autocfg"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "backtrace"
++version = "0.3.41"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace-sys 0.1.35 (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.68 (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.35"
++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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cairo-rs"
++version = "0.7.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "cairo-sys-rs"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "cc"
++version = "1.0.50"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cfg-if"
++version = "0.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "chrono"
++version = "0.4.11"
++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)",
++]
++
++[[package]]
++name = "effitask"
++version = "0.1.0"
++dependencies = [
++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "human-panic 1.0.3 (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)",
++ "notify 4.0.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "relm 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "relm-attributes 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "relm-derive 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "todo-txt 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "filetime"
++version = "0.2.9"
++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)",
++ "libc 0.2.68 (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)",
++]
++
++[[package]]
++name = "fragile"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "fsevent"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "fsevent-sys"
++version = "2.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "fuchsia-zircon"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++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)",
++]
++
++[[package]]
++name = "fuchsia-zircon-sys"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "gdk"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gdk-pixbuf"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gdk-pixbuf-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gdk-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "getopts"
++version = "0.2.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "getrandom"
++version = "0.1.14"
++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)",
++ "libc 0.2.68 (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)",
++]
++
++[[package]]
++name = "gio"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gio-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "glib"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "glib-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gobject-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gtk"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gtk-sys 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)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gtk-sys"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "human-panic"
++version = "1.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace 0.3.41 (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.106 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
++ "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "inotify"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "inotify-sys"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "iovec"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "kernel32-sys"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++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)",
++]
++
++[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "lazycell"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "lexical-core"
++version = "0.6.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "libc"
++version = "0.2.68"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "log"
++version = "0.4.8"
++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)",
++]
++
++[[package]]
++name = "memchr"
++version = "2.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "mio"
++version = "0.6.21"
++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)",
++ "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.68 (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)",
++]
++
++[[package]]
++name = "mio-extras"
++version = "2.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lazycell 1.2.1 (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)",
++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "miow"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++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)",
++]
++
++[[package]]
++name = "net2"
++version = "0.2.33"
++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)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "nodrop"
++version = "0.1.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "nom"
++version = "5.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lexical-core 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "notify"
++version = "4.0.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "filetime 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "inotify 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-integer"
++version = "0.1.42"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++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)",
++]
++
++[[package]]
++name = "num-traits"
++version = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "os_type"
++version = "2.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "pango"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "pango-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "pkg-config"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "proc-macro2"
++version = "0.4.30"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.10"
++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)",
++]
++
++[[package]]
++name = "pulldown-cmark"
++version = "0.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[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.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_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)",
++ "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_hc"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.1.56"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "regex"
++version = "1.3.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "relm"
++version = "0.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (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)",
++]
++
++[[package]]
++name = "relm-attributes"
++version = "0.16.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "relm-gen-widget 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "relm-derive"
++version = "0.18.0"
++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)",
++ "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)",
++]
++
++[[package]]
++name = "relm-gen-widget"
++version = "0.16.0"
++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)",
++ "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)",
++]
++
++[[package]]
++name = "rustc-demangle"
++version = "0.1.16"
++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)",
++]
++
++[[package]]
++name = "ryu"
++version = "1.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "same-file"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi-util 0.1.4 (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"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "serde"
++version = "1.0.106"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "serde_derive"
++version = "1.0.106"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "slab"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "static_assertions"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "syn"
++version = "0.15.44"
++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)",
++ "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.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "termcolor"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "thread_local"
++version = "1.0.1"
++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)",
++]
++
++[[package]]
++name = "time"
++version = "0.1.42"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (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)",
++]
++
++[[package]]
++name = "todo-txt"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "chrono 0.4.11 (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)",
++ "nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "toml"
++version = "0.5.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "unicase"
++version = "2.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "unicode-width"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[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"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "uuid"
++version = "0.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "version_check"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "walkdir"
++version = "2.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++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.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "wasi"
++version = "0.9.0+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi"
++version = "0.2.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++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)",
++]
++
++[[package]]
++name = "winapi-build"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi-util"
++version = "0.1.4"
++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 = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "ws2_32-sys"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++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)",
++]
++
++[[package]]
++name = "xdg"
++version = "2.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[metadata]
++"checksum aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)" = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
++"checksum arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9"
++"checksum atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "86b7499272acf036bb5820c6e346bbfb5acc5dceb104bc2c4fd7e6e33dfcde6a"
++"checksum atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e552c1776737a4c80110d06b36d099f47c727335f9aaa5d942a72b6863a8ec6f"
++"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
++"checksum backtrace 0.3.41 (registry+https://github.com/rust-lang/crates.io-index)" = "a4ed64ae6d9ebfd9893193c4b2532b1292ec97bd8271c9d7d0fa90cd78a34cba"
++"checksum backtrace-sys 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "7de8aba10a69c8e8d7622c5710229485ec32e9d55fdad160ea559c086fdcd118"
++"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++"checksum cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e05db47de3b0f09a222fa4bba2eab957d920d4243962a86b2d77ab401e4a359c"
++"checksum cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff65ba02cac715be836f63429ab00a767d48336efc5497c5637afb53b4f14d63"
++"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
++"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
++"checksum chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2"
++"checksum filetime 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f59efc38004c988e4201d11d263b8171f49a2e7ec0bdbb71773433f271504a5e"
++"checksum fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f8140122fa0d5dcb9fc8627cfce2b37cc1500f752636d46ea28bc26785c2f9"
++"checksum fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6"
++"checksum fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0"
++"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 gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6243e995f41f3a61a31847e54cc719edce93dd9140c89dca3b9919be1cfe22d5"
++"checksum gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9726408ee1bbada83094326a99b9c68fea275f9dbb515de242a69e72051f4fcc"
++"checksum gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d8991b060a9e9161bafd09bf4a202e6fd404f5b4dd1a08d53a1e84256fb34ab0"
++"checksum gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6adf679e91d1bff0c06860287f80403e7db54c2d2424dce0a470023b56c88fbb"
++"checksum getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
++"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
++"checksum gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6261b5d34c30c2d59f879e643704cf54cb44731f3a2038000b68790c03e360e3"
++"checksum gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4fad225242b9eae7ec8a063bb86974aca56885014672375e5775dc0ea3533911"
++"checksum glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "be27232841baa43e0fd5ae003f7941925735b2f733a336dc75f07b9eff415e7b"
++"checksum glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2"
++"checksum gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9"
++"checksum gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "709f1074259d4685b96133f92b75c7f35b504715b0fcdc96ec95de2607296a60"
++"checksum gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53def660c7b48b00b510c81ef2d2fbd3c570f1527081d8d7947f471513e1a4c1"
++"checksum human-panic 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "39f357a500abcbd7c5f967c1d45c8838585b36743823b9d43488f24850534e36"
++"checksum inotify 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24e40d6fd5d64e2082e0c796495c8ef5ad667a96d03e5aaa0becfd9d47bcbfb8"
++"checksum inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0"
++"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
++"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 lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
++"checksum lexical-core 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f86d66d380c9c5a685aaac7a11818bdfa1f733198dfd9ec09c70b762cd12ad6f"
++"checksum libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)" = "dea0c0405123bba743ee3f91f49b1c7cfb684eef0da0a50110f758ccf24cdff0"
++"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
++"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
++"checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f"
++"checksum mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19"
++"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
++"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
++"checksum nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
++"checksum nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6"
++"checksum notify 4.0.15 (registry+https://github.com/rust-lang/crates.io-index)" = "80ae4a7688d1fab81c5bf19c64fc8db920be8d519ce6336ed4e7efe024724dbd"
++"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 os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7edc011af0ae98b7f88cf7e4a83b70a54a75d2b8cb013d6efd02e5956207e9eb"
++"checksum pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393fa071b144f8ffb83ede273758983cf414ca3c0b1d2a5a9ce325b3ba3dd786"
++"checksum pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "86b93d84907b3cf0819bff8f13598ba72843bee579d5ebc2502e4b0367b4be7d"
++"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
++"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
++"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
++"checksum proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)" = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3"
++"checksum pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1c205cc82214f3594e2d50686730314f817c67ffa80fe800cf0db78c3c2b9d9e"
++"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
++"checksum quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f"
++"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
++"checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
++"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
++"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
++"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
++"checksum regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7f6946991529684867e47d86474e3a6d0c0ab9b82d5821e314b1ede31fa3a4b3"
++"checksum regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)" = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae"
++"checksum relm 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4127341a75eb96dc99ba39b87a2783bb011b20fbdbafc25ed2f58216d2ff714"
++"checksum relm-attributes 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4a8db24611fee7bb021f3aad7c4eaaba6d360947860b78b933a4d3ef86079b7f"
++"checksum relm-derive 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ec66397054dc1ea6c658159866b9978add6a90655aba5dd4a90c34d2e63f9d69"
++"checksum relm-gen-widget 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49ad47b054bdc12c90fb6b37c81ef785ee2a4a8a92c4e150b18325052766fbb0"
++"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.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535622e6be132bccd223f4bb2b8ac8d53cda3c7a6394944d3b2b33fb974f9d76"
++"checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
++"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.106 (registry+https://github.com/rust-lang/crates.io-index)" = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399"
++"checksum serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)" = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c"
++"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
++"checksum static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7f3eb36b47e512f8f1c9e3d10c2c1965bc992bd9cdb024fa581e2194501c83d3"
++"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
++"checksum syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "0df0eb663f387145cab623dea85b09c2c5b4b0aef44e945d928e682fce71bb03"
++"checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
++"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 todo-txt 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0d77aa2f90bd72b990bb2b8de52289b7a34f51cf035627df5e3ce361b321b417"
++"checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
++"checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
++"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 uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11"
++"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 wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
++"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.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fa515c5163a99cc82bab70fd3bfdd36d827be85de63737b40fcef2ce084a436e"
++"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
++"checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57"
diff --git a/pkgs/applications/misc/effitask/default.nix b/pkgs/applications/misc/effitask/default.nix
new file mode 100644
index 00000000000..f8adc7f61f6
--- /dev/null
+++ b/pkgs/applications/misc/effitask/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, openssl
+, gtk3
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "effitask";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "sanpii";
+    repo = "${pname}";
+    rev = "${version}";
+    sha256 = "09bffxdp43s8b1rpmsgqr2kyz3i4jbd2yrwbxw21fj3sf3mwb9ig";
+  };
+
+  # workaround for missing Cargo.lock file https://github.com/sanpii/effitask/issues/48
+  cargoPatches = [ ./cargo-lock.patch ];
+
+  cargoSha256 = "0dvmp23kny6rlv6c0mfyy3cmz1bi5wcm1mxps4z67lym5kxfd362";
+
+  buildInputs = [ openssl gtk3 ];
+
+  nativeBuildInputs = [ pkg-config ];
+
+  # default installPhase don't install assets
+  installPhase = ''
+    runHook preInstall
+    make install PREFIX="$out"
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Graphical task manager, based on the todo.txt format";
+    longDescription = ''
+      To use it as todo.sh add-on, create a symlink like this:
+      mkdir ~/.todo.actions.d/
+      ln -s $(which effitask) ~/.todo.actions.d/et
+
+      Or use it as standalone program by defining some environment variables
+      like described in the projects readme.
+    '';
+    homepage = "https://github.com/sanpii/effitask";
+    maintainers = with maintainers; [ davidak ];
+    license = with licenses; [ mit ];
+  };
+}
diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix
index d1011548b2a..db6b6f2e181 100644
--- a/pkgs/applications/misc/electrum/default.nix
+++ b/pkgs/applications/misc/electrum/default.nix
@@ -1,7 +1,11 @@
-{ stdenv, fetchurl, fetchFromGitHub, wrapQtAppsHook, python3, python3Packages, zbar, secp256k1
-, enableQt ? !stdenv.isDarwin
-
-
+{ stdenv
+, fetchurl
+, fetchFromGitHub
+, wrapQtAppsHook
+, python3
+, zbar
+, secp256k1
+, enableQt ? true
 # for updater.nix
 , writeScript
 , common-updater-scripts
@@ -15,7 +19,15 @@
 }:
 
 let
-  version = "3.3.8";
+  version = "4.0.2";
+
+  # electrum is not compatible with dnspython 2.0.0 yet
+  # use the latest 1.x release instead
+  py = python3.override {
+    packageOverrides = self: super: {
+      dnspython = super.dnspython_1;
+    };
+  };
 
   libsecp256k1_name =
     if stdenv.isLinux then "libsecp256k1.so.0"
@@ -31,7 +43,7 @@ let
     owner = "spesmilo";
     repo = "electrum";
     rev = version;
-    sha256 = "1di8ba77kgapcys0d7h5nx1qqakv3s60c6sp8skw8p69ramsl73c";
+    sha256 = "1xpkbard994n1gwl95b558x69k1m1m258bc220nxrajg1pywh90f";
 
     extraPostFetch = ''
       mv $out ./all
@@ -40,13 +52,13 @@ let
   };
 in
 
-python3Packages.buildPythonApplication {
+py.pkgs.buildPythonApplication {
   pname = "electrum";
   inherit version;
 
   src = fetchurl {
     url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
-    sha256 = "1g00cj1pmckd4xis8r032wmraiv3vd3zc803hnyxa2bnhj8z3bg2";
+    sha256 = "05ibrr6ysf6fncs1pimhxvyr7d659jwj2r2a9pdd3cmn1dxzy2w1";
   };
 
   postUnpack = ''
@@ -56,10 +68,12 @@ python3Packages.buildPythonApplication {
 
   nativeBuildInputs = stdenv.lib.optionals enableQt [ wrapQtAppsHook ];
 
-  propagatedBuildInputs = with python3Packages; [
-    aiorpcx
+  propagatedBuildInputs = with py.pkgs; [
     aiohttp
     aiohttp-socks
+    aiorpcx
+    attrs
+    bitstring
     dnspython
     ecdsa
     jsonrpclib-pelix
@@ -78,9 +92,6 @@ python3Packages.buildPythonApplication {
     keepkey
     trezor
     btchip
-
-    # TODO plugins
-    # amodem
   ] ++ stdenv.lib.optionals enableQt [ pyqt5 qdarkstyle ];
 
   preBuild = ''
@@ -90,7 +101,6 @@ python3Packages.buildPythonApplication {
   '' + (if enableQt then ''
     substituteInPlace ./electrum/qrscanner.py \
       --replace ${libzbar_name} ${zbar.lib}/lib/libzbar${stdenv.hostPlatform.extensions.sharedLibrary}
-    sed -i 's/qdarkstyle<2.7/qdarkstyle<3.0/' contrib/requirements/requirements.txt
   '' else ''
     sed -i '/qdarkstyle/d' contrib/requirements/requirements.txt
   '');
@@ -113,7 +123,7 @@ python3Packages.buildPythonApplication {
     wrapQtApp $out/bin/electrum
   '';
 
-  checkInputs = with python3Packages; [ pytest ];
+  checkInputs = with py.pkgs; [ pytest ];
 
   checkPhase = ''
     py.test electrum/tests
diff --git a/pkgs/applications/misc/electrum/ltc.nix b/pkgs/applications/misc/electrum/ltc.nix
index b7c655caaaf..4bcb66f48b9 100644
--- a/pkgs/applications/misc/electrum/ltc.nix
+++ b/pkgs/applications/misc/electrum/ltc.nix
@@ -1,6 +1,7 @@
 { stdenv
 , fetchurl
 , python3Packages
+, wrapQtAppsHook
 }:
 
 python3Packages.buildPythonApplication rec {
@@ -12,7 +13,7 @@ python3Packages.buildPythonApplication rec {
     sha256 = "0kxcx1xf6h9z8x0k483d6ykpnmfr30n6z3r6lgqxvbl42pq75li7";
   };
 
-  nativeBuildInputs = with python3Packages; [ pyqt5 ];
+  nativeBuildInputs = with python3Packages; [ pyqt5 wrapQtAppsHook ];
 
   propagatedBuildInputs = with python3Packages; [
     pyaes
@@ -35,6 +36,10 @@ python3Packages.buildPythonApplication rec {
     sed -i '/Created: .*/d' gui/qt/icons_rc.py
   '';
 
+  postFixup = ''
+    wrapQtApp $out/bin/electrum-ltc
+  '';
+
   checkPhase = ''
     $out/bin/electrum-ltc help >/dev/null
   '';
@@ -54,4 +59,3 @@ python3Packages.buildPythonApplication rec {
     maintainers = with maintainers; [ ];
   };
 }
-
diff --git a/pkgs/applications/misc/et/default.nix b/pkgs/applications/misc/et/default.nix
index 2cf8813aac4..9ab3fda96dc 100644
--- a/pkgs/applications/misc/et/default.nix
+++ b/pkgs/applications/misc/et/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "0.1.2";
 
   src = fetchFromGitHub {
-    owner = "geistesk";
+    owner = "oxzi";
     repo = "et";
     rev = version;
     sha256 = "0i0lgmnly8n7y4y6pb10pxgxyz8s5zk26k8z1g1578v1wan01lnq";
@@ -22,9 +22,9 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Minimal libnotify-based (egg) timer";
-    homepage = "https://github.com/geistesk/et";
+    homepage = "https://github.com/oxzi/et";
     license = licenses.gpl3;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/pkgs/applications/misc/etesync-dav/default.nix b/pkgs/applications/misc/etesync-dav/default.nix
index d4e015f31d7..5e3a85c3b93 100644
--- a/pkgs/applications/misc/etesync-dav/default.nix
+++ b/pkgs/applications/misc/etesync-dav/default.nix
@@ -1,19 +1,23 @@
-{ lib, python3Packages, radicale2 }:
+{ lib, python3Packages, radicale3 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "etesync-dav";
-  version = "0.17.0";
+  version = "0.20.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0lyjv8rknwbx5b5nvq5bgw26lhkymib4cvmv3s3469mrnn2c0ksp";
+    sha256 = "1q8h89hqi4kxphn1g5nbcia0haz5k57is9rycwaabm55mj9s9fah";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py --replace "Radicale==" "Radicale>="
+  '';
+
   propagatedBuildInputs = with python3Packages; [
     etesync
     flask
     flask_wtf
-    radicale2
+    radicale3
   ];
 
   checkInputs = with python3Packages; [
diff --git a/pkgs/applications/misc/exercism/default.nix b/pkgs/applications/misc/exercism/default.nix
index d983458a7ce..b1e9f3ac35a 100644
--- a/pkgs/applications/misc/exercism/default.nix
+++ b/pkgs/applications/misc/exercism/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0b2m9xkac60k5rbxmb03cxf530m23av14pnsjk8067l998sm4vqi";
 
+  doCheck = false;
+
   subPackages = [ "./exercism" ];
 
   meta = with stdenv.lib; {
@@ -21,4 +23,4 @@ buildGoModule rec {
    license     = licenses.mit;
    maintainers = [ maintainers.rbasso ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/misc/firestarter/default.nix b/pkgs/applications/misc/firestarter/default.nix
index 05c535e62c0..a03c87eb41b 100644
--- a/pkgs/applications/misc/firestarter/default.nix
+++ b/pkgs/applications/misc/firestarter/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     owner = "tud-zih-energy";
     repo = "FIRESTARTER";
     rev = "v${version}";
-    sha256 = "161mg0h1hvp6bxfjdhyfqrljvphys896mfd36254rbgzxm38ibi7";
+    sha256 = "0zqfqb7hf48z39g1qhbl1iraf8rz4d629h1q6ikizckpzfq23kd0";
   };
 
   nativeBuildInputs = [ python3 ];
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     homepage = "https://tu-dresden.de/zih/forschung/projekte/firestarter";
     description = "Processor Stress Test Utility";
     platforms = platforms.linux;
-    maintainers = with maintainers; [ astro ];
+    maintainers = with maintainers; [ astro marenz ];
     license = licenses.gpl3;
   };
 }
diff --git a/pkgs/applications/misc/font-manager/default.nix b/pkgs/applications/misc/font-manager/default.nix
index 008e59eebee..b2001c21bf7 100644
--- a/pkgs/applications/misc/font-manager/default.nix
+++ b/pkgs/applications/misc/font-manager/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "font-manager";
-  version = "0.7.7";
+  version = "0.7.8";
 
   src = fetchFromGitHub {
     owner = "FontManager";
     repo = "master";
     rev = version;
-    sha256 = "1bzqvspplp1zj0n0869jqbc60wgbjhf0vdrn5bj8dfawxynh8s5f";
+    sha256 = "0s1l30y55l45rrqd9lygvp2gzrqw25rmjgnnja6s5rzs79gc668c";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/fontpreview/default.nix b/pkgs/applications/misc/fontpreview/default.nix
new file mode 100644
index 00000000000..1d4e4d3e00f
--- /dev/null
+++ b/pkgs/applications/misc/fontpreview/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper, xdotool, fzf, imagemagick, sxiv, getopt }:
+
+stdenv.mkDerivation rec {
+  pname = "fontpreview";
+  version = "1.0.6";
+
+  src = fetchFromGitHub {
+    owner = "sdushantha";
+    repo = pname;
+    rev = version;
+    sha256 = "0g3i2k6n2yhp88rrcf0hp6ils7836db7hx73hw9qnpcbmckz0i4w";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  preInstall = "mkdir -p $out/bin";
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  postInstall = ''
+    wrapProgram $out/bin/fontpreview \
+      --prefix PATH : ${lib.makeBinPath [ xdotool fzf imagemagick sxiv getopt ]}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/sdushantha/fontpreview";
+    description = "Highly customizable and minimal font previewer written in bash";
+    longDescription = ''
+      fontpreview is a commandline tool that lets you quickly search for fonts
+      that are installed on your machine and preview them. The fuzzy search
+      feature is provided by fzf and the preview is generated with imagemagick
+      and then displayed using sxiv. This tool is highly customizable, almost
+      all of the variables in this tool can be changed using the commandline
+      flags or you can configure them using environment variables.
+    '';
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.erictapen ];
+  };
+}
diff --git a/pkgs/applications/misc/foot/default.nix b/pkgs/applications/misc/foot/default.nix
new file mode 100644
index 00000000000..02909ee1f2f
--- /dev/null
+++ b/pkgs/applications/misc/foot/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchgit
+, fcft, freetype, pixman, libxkbcommon, fontconfig, wayland
+, meson, ninja, ncurses, scdoc, tllist, wayland-protocols, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "foot";
+  version = "1.4.4";
+
+  src = fetchgit {
+    url = "https://codeberg.org/dnkl/foot.git";
+    rev = "${version}";
+    sha256 = "1cr4sz075v18clh8nlvgyxlbvfkhbsg0qrqgnclip5rwa24ry1lg";
+  };
+
+  nativeBuildInputs = [
+    meson ninja ncurses scdoc tllist wayland-protocols pkg-config
+  ];
+  buildInputs = [
+    fontconfig freetype pixman wayland libxkbcommon fcft
+  ];
+
+  # recommended build flags for foot as per INSTALL.md
+  # https://codeberg.org/dnkl/foot/src/branch/master/INSTALL.md#user-content-release-build
+  preConfigure = ''
+    export CFLAGS+="-O3 -fno-plt"
+  '';
+
+  mesonFlags = [ "--buildtype=release" "-Db_lto=true" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://codeberg.org/dnkl/foot/";
+    description = "A fast, lightweight and minimalistic Wayland terminal emulator";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/formatter/default.nix b/pkgs/applications/misc/formatter/default.nix
index b0224c052c4..85a70812cad 100644
--- a/pkgs/applications/misc/formatter/default.nix
+++ b/pkgs/applications/misc/formatter/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , vala
@@ -62,7 +63,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/misc/fslint/default.nix b/pkgs/applications/misc/fslint/default.nix
new file mode 100644
index 00000000000..f6e1071ac5e
--- /dev/null
+++ b/pkgs/applications/misc/fslint/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchFromGitHub, python2, makeWrapper }:
+
+let pythonEnv = python2.withPackages(ps: [ ps.pyGtkGlade]);
+in stdenv.mkDerivation rec {
+  pname   = "fslint";
+  version = "2.46";
+
+  src = fetchFromGitHub {
+    owner  = "pixelb";
+    repo   = "fslint";
+    rev    = version;
+    sha256 = "048pc1rsslbsrfchl2wmdd4hpa2gycglib7kdx8vqs947zcm0sfv";
+  };
+
+  buildInputs = [
+    pythonEnv makeWrapper
+  ];
+
+  prePatch = ''
+    substituteInPlace fslint-gui --replace "liblocation=os.path.dirname(os.path.abspath(sys.argv[0]))" "liblocation='$out'"
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp * -R $out/
+    cp fslint-gui $out/bin/fslint
+
+    wrapProgram "$out/bin/fslint" \
+      --prefix PYTHONPATH : "${pythonEnv.interpreter}"
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A utility to find and clean various forms of lint on a filesystem.";
+    homepage = "https://www.pixelbeat.org/fslint/";
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.dasj19 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/misc/fuzzel/default.nix b/pkgs/applications/misc/fuzzel/default.nix
new file mode 100644
index 00000000000..cef58b353a3
--- /dev/null
+++ b/pkgs/applications/misc/fuzzel/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, lib, fetchgit, pkg-config, meson, ninja, wayland, pixman, cairo, librsvg, wayland-protocols, wlroots, libxkbcommon, scdoc, git, tllist, fcft}:
+
+stdenv.mkDerivation rec {
+  pname = "fuzzel";
+  version = "1.4.1";
+
+  src = fetchgit {
+    url = "https://codeberg.org/dnkl/fuzzel";
+    rev = "${version}";
+    sha256 = "18pg46xry7q4i19mpjfz942c6vkqlrj4q18p85zldzv9gdsxnm9c";
+  };
+
+  nativeBuildInputs = [ pkg-config meson ninja scdoc git ];
+  buildInputs = [ wayland pixman cairo librsvg wayland-protocols  wlroots libxkbcommon tllist fcft ];
+
+  meta = with lib; {
+    description = "Wayland-native application launcher, similar to rofi’s drun mode";
+    homepage = "https://codeberg.org/dnkl/fuzzel";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fionera ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/applications/misc/gallery-dl/default.nix b/pkgs/applications/misc/gallery-dl/default.nix
index 8049f79af2d..ef882ac9b95 100644
--- a/pkgs/applications/misc/gallery-dl/default.nix
+++ b/pkgs/applications/misc/gallery-dl/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "gallery_dl";
-  version = "1.14.2";
+  version = "1.14.3";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "14a8skaxc4xn2hm8ahp8lzrmwh1f3lbcibvhpprqr3szd6i2p0pf";
+    sha256 = "0lyy48za81vfw4a5l7fsczsv889dk829nby941xvswp3scclpvfy";
   };
 
   doCheck = false;
diff --git a/pkgs/applications/misc/gcstar/default.nix b/pkgs/applications/misc/gcstar/default.nix
new file mode 100644
index 00000000000..b1ab386083e
--- /dev/null
+++ b/pkgs/applications/misc/gcstar/default.nix
@@ -0,0 +1,72 @@
+{ stdenv
+, fetchFromGitLab
+, perlPackages
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gcstar";
+  version = "1.7.2";
+
+  src = fetchFromGitLab {
+    owner = "Kerenoc";
+    repo = "GCstar";
+    rev = "v${version}";
+    sha256 = "1vqfff33sssvlvsva1dflggmwl00j5p64sn1669f9wrbvjkxgpv4";
+  };
+
+  nativeBuildInputs = [ wrapGAppsHook ];
+
+  buildInputs = with perlPackages; [
+    perl
+    ArchiveZip
+    DateCalc
+    DateTimeFormatStrptime
+    Glib
+    Gtk2
+    GD
+    GDGraph
+    GDText
+    HTMLParser
+    JSON
+    ImageExifTool
+    librelative
+    LWPUserAgent
+    LWPProtocolHttps
+    MP3Info
+    MP3Tag
+    NetFreeDB
+    OggVorbisHeaderPurePerl
+    Pango
+    XMLSimple
+    XMLParser
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    cd gcstar
+    perl install --text --prefix=$out
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    wrapProgram $out/bin/gcstar --prefix PERL5LIB : $PERL5LIB
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://gitlab.com/Kerenoc/GCstar";
+    description = "Manage your collections of movies, games, books, music and more";
+    longDescription = ''
+      GCstar is an application for managing your collections.
+      It supports many types of collections, including movies, books, games, comics, stamps, coins, and many more.
+      You can even create your own collection type for whatever unique thing it is that you collect!
+      Detailed information on each item can be automatically retrieved from the internet and you can store additional data, such as the location or who you've lent it to.
+      You may also search and filter your collections by many criteria.
+    '';
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ dasj19 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/misc/geoipupdate/default.nix b/pkgs/applications/misc/geoipupdate/default.nix
index 2b0fc88ccf9..ee6ed27ddda 100644
--- a/pkgs/applications/misc/geoipupdate/default.nix
+++ b/pkgs/applications/misc/geoipupdate/default.nix
@@ -13,11 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "0q4byhvs1c1xm4qjvs2vyf98vdv121qn0z51arcf7k4ayrys5xcx";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Automatic GeoIP database updater";
     homepage = "https://github.com/maxmind/geoipupdate";
     license = with licenses; [ asl20 ];
-    platforms = platforms.all;
     maintainers = with maintainers; [ das_j ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/misc/girara/default.nix b/pkgs/applications/misc/girara/default.nix
index 45bca7d3fbf..35e9d16f9df 100644
--- a/pkgs/applications/misc/girara/default.nix
+++ b/pkgs/applications/misc/girara/default.nix
@@ -3,20 +3,20 @@
 
 stdenv.mkDerivation rec {
   pname = "girara";
-  version = "0.3.4";
+  version = "0.3.5";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://git.pwmt.org/pwmt/${pname}/-/archive/${version}/${pname}-${version}.tar.gz";
-    sha256 = "08zdsr4zwi49facsl5596l0g1xqqv2jk3sqk841gkxwawcggim44";
+    sha256 = "1n3i960b458172mc3pkq7m9dn5qxry6fms3c3k06v27cjp5whsyf";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig gettext check dbus xvfb_run ];
   buildInputs = [ libintl libiconv json_c ];
   propagatedBuildInputs = [ glib gtk ];
 
-  doCheck = true;
+  doCheck = !stdenv.isDarwin;
 
   mesonFlags = [
     "-Ddocs=disabled" # docs do not seem to be installed
diff --git a/pkgs/applications/misc/glom/default.nix b/pkgs/applications/misc/glom/default.nix
index d576d2b5b47..9af6e39cb9b 100644
--- a/pkgs/applications/misc/glom/default.nix
+++ b/pkgs/applications/misc/glom/default.nix
@@ -1,5 +1,5 @@
 { stdenv
-, fetchFromGitLab
+, fetchurl
 , pkgconfig
 , autoconf
 , automake
@@ -26,7 +26,8 @@
 , goocanvasmm2
 , evince
 , isocodes
-, gtksourceviewmm4
+, gtksourceview
+, gtksourceviewmm
 , postgresql
 , gobject-introspection
 , yelp-tools
@@ -48,16 +49,13 @@ let
   boost_python = boost.override { enablePython = true; inherit python; };
 in stdenv.mkDerivation rec {
   pname = "glom";
-  version = "unstable-2018-12-16";
+  version = "1.32.0";
 
   outputs = [ "out" "lib" "dev" "doc" "devdoc" ];
 
-  src = fetchFromGitLab {
-    domain = "gitlab.gnome.org";
-    owner = "GNOME";
-    repo = pname;
-    rev = "fa5ff04f209f35bf3e97bc1c3eb1d1138d6172ce";
-    sha256 = "145hnk96xa4v35i3a3mbf3fnx4nlk8cksc0qhm7nrh8cnnrbdfgn";
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1wcd4kd3crwqjv0jfp73jkyyf5ws8mvykg37kqxmcb58piz21gsk";
   };
 
   nativeBuildInputs = [
@@ -93,7 +91,8 @@ in stdenv.mkDerivation rec {
     evince
     isocodes
     python3.pkgs.pygobject3
-    gtksourceviewmm4
+    gtksourceview
+    gtksourceviewmm
     postgresql # for pg_config
   ];
 
diff --git a/pkgs/applications/misc/go-jira/default.nix b/pkgs/applications/misc/go-jira/default.nix
index 5fad7b9ac03..7844a6a593c 100644
--- a/pkgs/applications/misc/go-jira/default.nix
+++ b/pkgs/applications/misc/go-jira/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "18jwxnkv94lsxfv57ga519knxm077cc8chp5c992ipk58a04nv18";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Simple command line client for Atlassian's Jira service written in Go";
     homepage = "https://github.com/go-jira/jira";
diff --git a/pkgs/applications/misc/gollum/Gemfile.lock b/pkgs/applications/misc/gollum/Gemfile.lock
index e7f905f3fe1..91096ddc917 100644
--- a/pkgs/applications/misc/gollum/Gemfile.lock
+++ b/pkgs/applications/misc/gollum/Gemfile.lock
@@ -1,18 +1,18 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    backports (3.17.2)
-    concurrent-ruby (1.1.6)
+    backports (3.18.1)
+    concurrent-ruby (1.1.7)
     crass (1.0.6)
     execjs (2.7.0)
     ffi (1.13.1)
     gemojione (4.3.3)
       json
     github-markup (3.0.4)
-    gollum (5.0.1)
+    gollum (5.1.1)
       gemojione (~> 4.1)
       gollum-lib (~> 5.0)
-      kramdown (~> 2.1.0)
+      kramdown (~> 2.3)
       kramdown-parser-gfm (~> 1.0.0)
       mustache (>= 0.99.5, < 1.0.0)
       octicons (~> 8.5)
@@ -25,7 +25,7 @@ GEM
       therubyrhino (~> 2.1.0)
       uglifier (~> 3.2)
       useragent (~> 0.16.2)
-    gollum-lib (5.0.4)
+    gollum-lib (5.0.5)
       gemojione (~> 4.1)
       github-markup (~> 3.0)
       gollum-rugged_adapter (~> 1.0)
@@ -37,8 +37,9 @@ GEM
     gollum-rugged_adapter (1.0)
       mime-types (>= 1.15)
       rugged (~> 0.99)
-    json (2.3.0)
-    kramdown (2.1.0)
+    json (2.3.1)
+    kramdown (2.3.0)
+      rexml
     kramdown-parser-gfm (1.0.1)
       kramdown (~> 2.0)
     loofah (2.6.0)
@@ -48,11 +49,11 @@ GEM
       mime-types-data (~> 3.2015)
     mime-types-data (3.2020.0512)
     mini_portile2 (2.4.0)
-    multi_json (1.14.1)
+    multi_json (1.15.0)
     mustache (0.99.8)
     mustermann (1.1.1)
       ruby2_keywords (~> 0.0.1)
-    nokogiri (1.10.9)
+    nokogiri (1.10.10)
       mini_portile2 (~> 2.4.0)
     octicons (8.5.0)
       nokogiri (>= 1.6.3.1)
@@ -63,7 +64,7 @@ GEM
     rb-inotify (0.10.1)
       ffi (~> 1.0)
     rexml (3.2.4)
-    rouge (3.20.0)
+    rouge (3.22.0)
     rss (0.2.9)
       rexml
     ruby2_keywords (0.0.2)
diff --git a/pkgs/applications/misc/gollum/gemset.nix b/pkgs/applications/misc/gollum/gemset.nix
index c4df6896057..45bf0e04d07 100644
--- a/pkgs/applications/misc/gollum/gemset.nix
+++ b/pkgs/applications/misc/gollum/gemset.nix
@@ -4,20 +4,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rg58rd3hgk8wz4fbapn3szwgymk1q9lv4ywg37bkbcflsbi70iy";
+      sha256 = "0qagwshq7zyjgm6k53hbrf4gfrwn6qz5d6rrc83cl59q37v68zsc";
       type = "gem";
     };
-    version = "3.17.2";
+    version = "3.18.1";
   };
   concurrent-ruby = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
       type = "gem";
     };
-    version = "1.1.6";
+    version = "1.1.7";
   };
   crass = {
     groups = ["default"];
@@ -76,10 +76,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f9p1230xmrvcb7ii2gkcvhpgcaqvvd47gy3c58nn730jkv471dr";
+      sha256 = "14i6y3ilv9l7cqvkawl75js26cfj1pd8cphhmq9lic95ajvdf371";
       type = "gem";
     };
-    version = "5.0.1";
+    version = "5.1.1";
   };
   gollum-lib = {
     dependencies = ["gemojione" "github-markup" "gollum-rugged_adapter" "loofah" "nokogiri" "octicons" "rouge" "twitter-text"];
@@ -87,10 +87,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pr3djmawqpmifyadw1vfzdkq720dsaqih1wf8k2vksw0lr9la74";
+      sha256 = "18f3g5px9zznyh6ppqlnjdp1ia8awgrix9lhbfh64rpgxg0b9xlr";
       type = "gem";
     };
-    version = "5.0.4";
+    version = "5.0.5";
   };
   gollum-rugged_adapter = {
     dependencies = ["mime-types" "rugged"];
@@ -108,20 +108,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.3.1";
   };
   kramdown = {
+    dependencies = ["rexml"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dl840bvx8d9nq6lg3mxqyvbiqnr6lk3jfsm6r8zhz7p5srmd688";
+      sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
       type = "gem";
     };
-    version = "2.1.0";
+    version = "2.3.0";
   };
   kramdown-parser-gfm = {
     dependencies = ["kramdown"];
@@ -181,10 +182,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xy54mjf7xg41l8qrg1bqri75agdqmxap9z466fjismc1rn2jwfr";
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
       type = "gem";
     };
-    version = "1.14.1";
+    version = "1.15.0";
   };
   mustache = {
     groups = ["default"];
@@ -213,10 +214,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12j76d0bp608932xkzmfi638c7aqah57l437q8494znzbj610qnm";
+      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
       type = "gem";
     };
-    version = "1.10.9";
+    version = "1.10.10";
   };
   octicons = {
     dependencies = ["nokogiri"];
@@ -286,10 +287,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1r5npy9a95qh5v74lw7ir3nhaq4xrzyhfdixd7c5xy295i92nnic";
+      sha256 = "1wcz7i009wdbymlfsamagqi18m6ih8j60bii0k18f21g70r72i0m";
       type = "gem";
     };
-    version = "3.20.0";
+    version = "3.22.0";
   };
   rss = {
     dependencies = ["rexml"];
diff --git a/pkgs/applications/misc/gomatrix/default.nix b/pkgs/applications/misc/gomatrix/default.nix
index 0cf6c966093..c903f1ba1bb 100644
--- a/pkgs/applications/misc/gomatrix/default.nix
+++ b/pkgs/applications/misc/gomatrix/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "1yw0gph4zfg8w4343882l6b9lggwyak2zz8ic1l1m2m44p3aq169";
 
+  doCheck = false;
+
   meta = with lib; {
     description = ''Displays "The Matrix" in a terminal'';
     license = licenses.bsd2;
     maintainers = with maintainers; [ skykanin ];
     homepage = "https://github.com/GeertJohan/gomatrix";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/misc/googleearth/default.nix b/pkgs/applications/misc/googleearth/default.nix
index dff69130c18..db388106345 100644
--- a/pkgs/applications/misc/googleearth/default.nix
+++ b/pkgs/applications/misc/googleearth/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, glibc, libGLU, libGL, freetype, glib, libSM, libICE, libXi, libXv
 , libXrender, libXrandr, libXfixes, libXcursor, libXinerama, libXext, libX11
-, zlib, fontconfig, dpkg, libproxy, libxml2, gstreamer, gst_all_1, dbus }:
+, zlib, fontconfig, dpkg, libproxy, libxml2, gst_all_1, dbus }:
 
 let
   arch =
@@ -33,7 +33,6 @@ let
     fontconfig
     libproxy
     libxml2
-    gstreamer
     dbus
     gst_all_1.gstreamer
     gst_all_1.gst-plugins-base
@@ -80,7 +79,7 @@ stdenv.mkDerivation rec {
     for a in $out/opt/google/earth/free/*.so* ; do
       patchelf --set-rpath "${fullPath}:\$ORIGIN" $a
     done
-    
+
     # Add desktop config file and icons
     mkdir -p $out/share/{applications,icons/hicolor/{16x16,22x22,24x24,32x32,48x48,64x64,128x128,256x256}/apps,pixmaps}
     ln -s $out/opt/google/earth/free/google-earth.desktop $out/share/applications/google-earth.desktop
diff --git a/pkgs/applications/misc/googler/default.nix b/pkgs/applications/misc/googler/default.nix
index fba36f5e8ac..de93dc6f43e 100644
--- a/pkgs/applications/misc/googler/default.nix
+++ b/pkgs/applications/misc/googler/default.nix
@@ -1,25 +1,33 @@
-{ stdenv, fetchFromGitHub, python }:
+{ stdenv, fetchFromGitHub, python, installShellFiles }:
 
 stdenv.mkDerivation rec {
   pname = "googler";
-  version = "4.1";
+  version = "4.2";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "04d7n2l159s7c9xzvyvbnbii1k3zdbajagpx09x1l692cwjbvpxw";
+    sha256 = "0c480wzc7q4pks1f6mnayr580c73jhzshliz4hgznzc7zwcdf41w";
   };
 
-  propagatedBuildInputs = [ python ];
+  buildInputs = [ python ];
+
+  nativeBuildInputs = [ installShellFiles ];
 
   makeFlags = [ "PREFIX=$(out)" ];
 
+  postInstall = ''
+    installShellCompletion --bash --name googler.bash auto-completion/bash/googler-completion.bash
+    installShellCompletion --fish auto-completion/fish/googler.fish
+    installShellCompletion --zsh auto-completion/zsh/_googler
+  '';
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/jarun/googler";
     description = "Google Search, Google Site Search, Google News from the terminal";
     license = licenses.gpl3;
     maintainers = with maintainers; [ koral filalex77 ];
-    platforms = platforms.unix;
+    platforms = python.meta.platforms;
   };
 }
diff --git a/pkgs/applications/misc/gopacked/default.nix b/pkgs/applications/misc/gopacked/default.nix
index 418fe96a897..57f6be40ab0 100644
--- a/pkgs/applications/misc/gopacked/default.nix
+++ b/pkgs/applications/misc/gopacked/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0fklr3lxh8g7gda65wf2wdkqv15869h7m1bwbzbiv8pasrf5b352";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "A simple text-based Minecraft modpack manager";
     license = licenses.agpl3;
diff --git a/pkgs/applications/misc/havoc/default.nix b/pkgs/applications/misc/havoc/default.nix
index fc4cc680ca4..a6d5278fc3c 100644
--- a/pkgs/applications/misc/havoc/default.nix
+++ b/pkgs/applications/misc/havoc/default.nix
@@ -4,13 +4,13 @@
 stdenv.mkDerivation rec {
 
   pname = "havoc";
-  version = "2019-12-08";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "ii8";
     repo = pname;
-    rev = "507446c92ed7bf8380a58c5ba2b14aba5cdf412c";
-    sha256 = "13nfnan1gmy4cqxmqv0rc8a4mcb1g62v73d56hy7z2psv4am7a09";
+    rev = version;
+    sha256 = "1g05r9j6srwz1krqvzckx80jn8fm48rkb4xp68953gy9yp2skg3k";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/misc/hovercraft/default.nix b/pkgs/applications/misc/hovercraft/default.nix
index edb8114e4a4..5a03cfe23ba 100644
--- a/pkgs/applications/misc/hovercraft/default.nix
+++ b/pkgs/applications/misc/hovercraft/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonApplication rec {
   pname = "hovercraft";
-  version = "2.6";
+  version = "2.7";
   disabled = ! isPy3k;
 
   src = fetchFromGitHub {
     owner = "regebro";
     repo = "hovercraft";
     rev = version;
-    sha256 = "150sn6kvqi2s89di1akl5i0g81fasji2ipr12zq5s4dcnhw4r5wp";
+    sha256 = "0k0gjlqjz424rymcfdjpj6a71ppblfls5f8y2hd800d1as4im8az";
   };
 
   checkInputs = [ manuel ];
diff --git a/pkgs/applications/misc/html5validator/default.nix b/pkgs/applications/misc/html5validator/default.nix
new file mode 100644
index 00000000000..657996d1da9
--- /dev/null
+++ b/pkgs/applications/misc/html5validator/default.nix
@@ -0,0 +1,25 @@
+{ buildPythonApplication, fetchFromGitHub, nose, openjdk, lib }:
+
+buildPythonApplication rec {
+  pname = "html5validator";
+  version = "0.3.3";
+
+  src = fetchFromGitHub {
+    owner = "svenkreiss";
+    repo = "html5validator";
+    rev = "v${version}";
+    sha256 = "130acqi0dsy3midg7hwslykzry6crr4ln6ia0f0avyywkz4bplsv";
+  };
+
+  propagatedBuildInputs = [ openjdk ];
+
+  checkInputs = [ nose ];
+  checkPhase = "PATH=$PATH:$out/bin nosetests";
+
+  meta = with lib; {
+    homepage = "https://github.com/svenkreiss/html5validator";
+    description = "Command line tool that tests files for HTML5 validity";
+    license = licenses.mit;
+    maintainers = [ maintainers.phunehehe ];
+  };
+}
diff --git a/pkgs/applications/misc/hugo/default.nix b/pkgs/applications/misc/hugo/default.nix
index d80526d66fe..a04c2bddaf9 100644
--- a/pkgs/applications/misc/hugo/default.nix
+++ b/pkgs/applications/misc/hugo/default.nix
@@ -1,33 +1,21 @@
-{ stdenv, buildGoModule, fetchFromGitHub, libsass }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "hugo";
-  version = "0.73.0";
-
-  buildInputs = [ libsass ];
+  version = "0.74.3";
 
   src = fetchFromGitHub {
     owner = "gohugoio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0qhv8kdv5k1xfk6106lxvsz7f92k7w6wk05ngz7qxbkb6zkcnshw";
+    sha256 = "0rikr4yrjvmrv8smvr8jdbcjqwf61y369wn875iywrj63pyr74r9";
   };
 
-  golibsass = fetchFromGitHub {
-    owner = "bep";
-    repo = "golibsass";
-    rev = "8a04397f0baba474190a9f58019ff499ec43057a";
-    sha256 = "0xk3m2ynbydzx87dz573ihwc4ryq0r545vz937szz175ivgfrhh3";
-  };
+  vendorSha256 = "17xn6bdy942g6nx5xky41ixmd5kaz68chj3rb02ibpyraamx04nm";
 
-  overrideModAttrs = (_: {
-      postBuild = ''
-      rm -rf vendor/github.com/bep/golibsass/
-      cp -r --reflink=auto ${golibsass} vendor/github.com/bep/golibsass
-      '';
-    });
+  doCheck = false;
 
-  vendorSha256 = "07dkmrldsxw59v6r4avj1gr4hsaxybhb14qv61hc777qix2kq9v1";
+  runVend = true;
 
   buildFlags = [ "-tags" "extended" ];
 
diff --git a/pkgs/applications/misc/imag/default.nix b/pkgs/applications/misc/imag/default.nix
new file mode 100644
index 00000000000..bb6956aaa59
--- /dev/null
+++ b/pkgs/applications/misc/imag/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, llvmPackages
+, openssl
+, pkg-config
+, installShellFiles
+, Security
+, gitMinimal
+, utillinuxMinimal
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "imag";
+  version = "0.10.1";
+
+  src = fetchFromGitHub {
+    owner = "matthiasbeyer";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0f9915f083z5qqcxyavj0w6m973c8m1x7kfb89pah5agryy5mkaq";
+  };
+
+  nativeBuildInputs = [ installShellFiles pkg-config ];
+  buildInputs = [ openssl ]
+    ++ stdenv.lib.optional stdenv.isDarwin Security;
+  checkInputs = [ gitMinimal utillinuxMinimal ];
+
+  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+
+  cargoSha256 = "0n8cw70qh8g4hfwfaxwwxbrrx5hm2z037z8kdhvdpqkxljl9189x";
+
+  checkPhase = ''
+    export HOME=$TMPDIR
+    git config --global user.email "nobody@example.com"
+    git config --global user.name "Nobody"
+
+    # UI tests uses executables directly, so we need to build them before
+    # launching the tests
+    cargo build
+  '' + (
+    # CLI uses the presence of a controlling TTY to check if arguments are
+    # passed in stdin, or in the command-line, so we use script to create
+    # a PTY for us.
+    if !stdenv.isDarwin then ''
+      script -qfec "cargo test --workspace"
+    '' else ''
+      script -q "cargo test --workspace"
+    ''
+  );
+
+  postInstall = ''
+    installShellCompletion target/imag.{bash,fish} --zsh target/_imag
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Commandline personal information management suite";
+    homepage = "https://imag-pim.org/";
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ filalex77 minijackson ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/misc/inkcut/default.nix b/pkgs/applications/misc/inkcut/default.nix
new file mode 100644
index 00000000000..6be6e842bde
--- /dev/null
+++ b/pkgs/applications/misc/inkcut/default.nix
@@ -0,0 +1,54 @@
+{ lib, python3Packages, fetchFromGitHub, wrapQtAppsHook }:
+
+with python3Packages;
+
+buildPythonApplication rec {
+  pname = "inkcut";
+  version = "2.1.1";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1c0mfdfy9iq4l683f3aa7cm7x2w9px83dyigc7655wvaq3bxi2rp";
+  };
+
+  nativeBuildInputs = [ wrapQtAppsHook ];
+
+  propagatedBuildInputs = [
+    enamlx
+    twisted
+    lxml
+    qreactor
+    jsonpickle
+    pyserial
+    pycups
+    qtconsole
+    pyqt5
+  ];
+
+  # QtApplication.instance() does not work during tests?
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "inkcut"
+    "inkcut.cli"
+    "inkcut.console"
+    "inkcut.core"
+    "inkcut.device"
+    "inkcut.job"
+    "inkcut.joystick"
+    "inkcut.monitor"
+    "inkcut.preview"
+  ];
+
+  dontWrapQtApps = true;
+  makeWrapperArgs = [ "\${qtWrapperArgs[@]}" ];
+
+  meta = with lib; {
+    homepage = "https://www.codelv.com/projects/inkcut/";
+    description = "Control 2D plotters, cutters, engravers, and CNC machines";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ raboof ];
+  };
+}
diff --git a/pkgs/applications/misc/jekyll/basic/Gemfile.lock b/pkgs/applications/misc/jekyll/basic/Gemfile.lock
index 86f1bf23a6b..ffc7c0e2aeb 100644
--- a/pkgs/applications/misc/jekyll/basic/Gemfile.lock
+++ b/pkgs/applications/misc/jekyll/basic/Gemfile.lock
@@ -10,7 +10,7 @@ GEM
     addressable (2.7.0)
       public_suffix (>= 2.0.2, < 5.0)
     colorator (1.1.0)
-    concurrent-ruby (1.1.6)
+    concurrent-ruby (1.1.7)
     em-websocket (0.5.1)
       eventmachine (>= 0.12.9)
       http_parser.rb (~> 0.6.0)
@@ -18,11 +18,11 @@ GEM
     ffi (1.13.1)
     forwardable-extended (2.6.0)
     gemoji (3.0.1)
-    html-pipeline (2.13.0)
+    html-pipeline (2.14.0)
       activesupport (>= 2)
       nokogiri (>= 1.4)
     http_parser.rb (0.6.0)
-    i18n (1.8.3)
+    i18n (1.8.5)
       concurrent-ruby (~> 1.0)
     jekyll (4.1.1)
       addressable (~> 2.4)
@@ -56,7 +56,7 @@ GEM
       gemoji (~> 3.0)
       html-pipeline (~> 2.2)
       jekyll (>= 3.0, < 5.0)
-    kramdown (2.2.1)
+    kramdown (2.3.0)
       rexml
     kramdown-parser-gfm (1.1.0)
       kramdown (~> 2.0)
@@ -67,7 +67,7 @@ GEM
     mercenary (0.4.0)
     mini_portile2 (2.4.0)
     minitest (5.14.1)
-    nokogiri (1.10.9)
+    nokogiri (1.10.10)
       mini_portile2 (~> 2.4.0)
     pathutil (0.16.2)
       forwardable-extended (~> 2.6)
@@ -76,7 +76,7 @@ GEM
     rb-inotify (0.10.1)
       ffi (~> 1.0)
     rexml (3.2.4)
-    rouge (3.20.0)
+    rouge (3.22.0)
     safe_yaml (1.0.5)
     sassc (2.4.0)
       ffi (~> 1.9)
@@ -86,7 +86,7 @@ GEM
     tzinfo (1.2.7)
       thread_safe (~> 0.1)
     unicode-display_width (1.7.0)
-    zeitwerk (2.3.0)
+    zeitwerk (2.4.0)
 
 PLATFORMS
   ruby
diff --git a/pkgs/applications/misc/jekyll/basic/gemset.nix b/pkgs/applications/misc/jekyll/basic/gemset.nix
index e4c8a94fce4..b14b27f3756 100644
--- a/pkgs/applications/misc/jekyll/basic/gemset.nix
+++ b/pkgs/applications/misc/jekyll/basic/gemset.nix
@@ -36,10 +36,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
       type = "gem";
     };
-    version = "1.1.6";
+    version = "1.1.7";
   };
   em-websocket = {
     dependencies = ["eventmachine" "http_parser.rb"];
@@ -98,10 +98,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01snn9z3c2p17d9wfczkdkml6mdffah6fpyzgs9mdskb14m68rq6";
+      sha256 = "080sn9z1a64gv04p318jz10y6lv6qd3avip08rrcmq9k4ihai0f1";
       type = "gem";
     };
-    version = "2.13.0";
+    version = "2.14.0";
   };
   "http_parser.rb" = {
     groups = ["default"];
@@ -119,10 +119,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10nq1xjqvkhngiygji831qx9bryjwws95r4vrnlq9142bzkg670s";
+      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
       type = "gem";
     };
-    version = "1.8.3";
+    version = "1.8.5";
   };
   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 = "059mk8lmddp2a2aa6s4pp7x2yyqbqg5crx5jkn32dzlnqi2j5cn6";
+      sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
       type = "gem";
     };
-    version = "2.2.1";
+    version = "2.3.0";
   };
   kramdown-parser-gfm = {
     dependencies = ["kramdown"];
@@ -291,10 +291,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12j76d0bp608932xkzmfi638c7aqah57l437q8494znzbj610qnm";
+      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
       type = "gem";
     };
-    version = "1.10.9";
+    version = "1.10.10";
   };
   pathutil = {
     dependencies = ["forwardable-extended"];
@@ -353,10 +353,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1r5npy9a95qh5v74lw7ir3nhaq4xrzyhfdixd7c5xy295i92nnic";
+      sha256 = "1wcz7i009wdbymlfsamagqi18m6ih8j60bii0k18f21g70r72i0m";
       type = "gem";
     };
-    version = "3.20.0";
+    version = "3.22.0";
   };
   safe_yaml = {
     groups = ["default"];
@@ -426,9 +426,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1akpm3pwvyiack2zk6giv9yn3cqb8pw6g40p4394pdc3xmy3s4k0";
+      sha256 = "0jvn50k76kl14fpymk4hdsf9sk00jl84yxzl783xhnw4dicp0m0k";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.4.0";
   };
 }
\ No newline at end of file
diff --git a/pkgs/applications/misc/jekyll/full/Gemfile.lock b/pkgs/applications/misc/jekyll/full/Gemfile.lock
index 9acfaaa97cd..d7955072065 100644
--- a/pkgs/applications/misc/jekyll/full/Gemfile.lock
+++ b/pkgs/applications/misc/jekyll/full/Gemfile.lock
@@ -17,7 +17,7 @@ GEM
       execjs
     coffee-script-source (1.12.2)
     colorator (1.1.0)
-    concurrent-ruby (1.1.6)
+    concurrent-ruby (1.1.7)
     em-websocket (0.5.1)
       eventmachine (>= 0.12.9)
       http_parser.rb (~> 0.6.0)
@@ -29,11 +29,11 @@ GEM
     ffi (1.13.1)
     forwardable-extended (2.6.0)
     gemoji (3.0.1)
-    html-pipeline (2.13.0)
+    html-pipeline (2.14.0)
       activesupport (>= 2)
       nokogiri (>= 1.4)
     http_parser.rb (0.6.0)
-    i18n (1.8.3)
+    i18n (1.8.5)
       concurrent-ruby (~> 1.0)
     jekyll (4.1.1)
       addressable (~> 2.4)
@@ -55,7 +55,7 @@ GEM
     jekyll-coffeescript (2.0.0)
       coffee-script (~> 2.2)
       coffee-script-source (~> 1.12)
-    jekyll-feed (0.14.0)
+    jekyll-feed (0.15.0)
       jekyll (>= 3.7, < 5.0)
     jekyll-gist (1.5.0)
       octokit (~> 4.2)
@@ -77,7 +77,7 @@ GEM
       gemoji (~> 3.0)
       html-pipeline (~> 2.2)
       jekyll (>= 3.0, < 5.0)
-    kramdown (2.2.1)
+    kramdown (2.3.0)
       rexml
     kramdown-parser-gfm (1.1.0)
       kramdown (~> 2.0)
@@ -97,7 +97,7 @@ GEM
     mini_portile2 (2.4.0)
     minitest (5.14.1)
     multipart-post (2.1.1)
-    nokogiri (1.10.9)
+    nokogiri (1.10.10)
       mini_portile2 (~> 2.4.0)
     octokit (4.18.0)
       faraday (>= 0.9)
@@ -110,7 +110,7 @@ GEM
       ffi (~> 1.0)
     rdoc (6.2.1)
     rexml (3.2.4)
-    rouge (3.20.0)
+    rouge (3.22.0)
     safe_yaml (1.0.5)
     sassc (2.4.0)
       ffi (~> 1.9)
@@ -125,7 +125,7 @@ GEM
       thread_safe (~> 0.1)
     unicode-display_width (1.7.0)
     yajl-ruby (1.4.1)
-    zeitwerk (2.3.0)
+    zeitwerk (2.4.0)
 
 PLATFORMS
   ruby
diff --git a/pkgs/applications/misc/jekyll/full/gemset.nix b/pkgs/applications/misc/jekyll/full/gemset.nix
index 073f69f5b33..aa0bc9bcdcc 100644
--- a/pkgs/applications/misc/jekyll/full/gemset.nix
+++ b/pkgs/applications/misc/jekyll/full/gemset.nix
@@ -90,10 +90,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
       type = "gem";
     };
-    version = "1.1.6";
+    version = "1.1.7";
   };
   em-websocket = {
     dependencies = ["eventmachine" "http_parser.rb"];
@@ -195,10 +195,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01snn9z3c2p17d9wfczkdkml6mdffah6fpyzgs9mdskb14m68rq6";
+      sha256 = "080sn9z1a64gv04p318jz10y6lv6qd3avip08rrcmq9k4ihai0f1";
       type = "gem";
     };
-    version = "2.13.0";
+    version = "2.14.0";
   };
   "http_parser.rb" = {
     groups = ["default"];
@@ -216,10 +216,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10nq1xjqvkhngiygji831qx9bryjwws95r4vrnlq9142bzkg670s";
+      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
       type = "gem";
     };
-    version = "1.8.3";
+    version = "1.8.5";
   };
   jekyll = {
     dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"];
@@ -260,10 +260,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fhbz5wc8cf60dwsbqcr49wygyk5qarpc7g77p6dlwq2r21nil5c";
+      sha256 = "1mgc1ik2cq2g8g7z9ql2i6ydzy771m2i4qrd1q77x8cf2sprlb0z";
       type = "gem";
     };
-    version = "0.14.0";
+    version = "0.15.0";
   };
   jekyll-gist = {
     dependencies = ["octokit"];
@@ -369,10 +369,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "059mk8lmddp2a2aa6s4pp7x2yyqbqg5crx5jkn32dzlnqi2j5cn6";
+      sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
       type = "gem";
     };
-    version = "2.2.1";
+    version = "2.3.0";
   };
   kramdown-parser-gfm = {
     dependencies = ["kramdown"];
@@ -519,10 +519,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12j76d0bp608932xkzmfi638c7aqah57l437q8494znzbj610qnm";
+      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
       type = "gem";
     };
-    version = "1.10.9";
+    version = "1.10.10";
   };
   octokit = {
     dependencies = ["faraday" "sawyer"];
@@ -602,10 +602,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1r5npy9a95qh5v74lw7ir3nhaq4xrzyhfdixd7c5xy295i92nnic";
+      sha256 = "1wcz7i009wdbymlfsamagqi18m6ih8j60bii0k18f21g70r72i0m";
       type = "gem";
     };
-    version = "3.20.0";
+    version = "3.22.0";
   };
   safe_yaml = {
     groups = ["default"];
@@ -718,9 +718,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1akpm3pwvyiack2zk6giv9yn3cqb8pw6g40p4394pdc3xmy3s4k0";
+      sha256 = "0jvn50k76kl14fpymk4hdsf9sk00jl84yxzl783xhnw4dicp0m0k";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.4.0";
   };
 }
\ No newline at end of file
diff --git a/pkgs/applications/misc/joplin-desktop/default.nix b/pkgs/applications/misc/joplin-desktop/default.nix
index 6515b3132d2..656cc6f69b9 100644
--- a/pkgs/applications/misc/joplin-desktop/default.nix
+++ b/pkgs/applications/misc/joplin-desktop/default.nix
@@ -2,20 +2,19 @@
 
 let
   pname = "joplin-desktop";
-  version = "1.0.216";
-  desktopItem = makeDesktopItem {
-     name = "Joplin";
-     exec = "joplin-desktop";
-     type = "Application";
-     desktopName = "Joplin";
-  };
-in appimageTools.wrapType2 rec {
+  version = "1.0.233";
   name = "${pname}-${version}";
+
   src = fetchurl {
     url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.AppImage";
-    sha256 = "17rb7h98h9i2p5kw5gznx5swpz6yxqdxwc9x5cgbkc31vk10iszn";
+    sha256 = "1fmk56b9b70ly1r471mhppr8fz1wm2gpxji1v760ynha8fqy7qg1";
   };
 
+  appimageContents = appimageTools.extractType2 {
+    inherit name src;
+  };
+in appimageTools.wrapType2 rec {
+  inherit name src;
 
   profile = ''
     export LC_ALL=C.UTF-8
@@ -25,9 +24,12 @@ in appimageTools.wrapType2 rec {
   multiPkgs = null; # no 32bit needed
   extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
   extraInstallCommands = ''
-    mkdir -p $out/share/applications
-    ln -s ${desktopItem}/share/applications/* $out/share/applications
     mv $out/bin/{${name},${pname}}
+    install -m 444 -D ${appimageContents}/joplin.desktop $out/share/applications/joplin.desktop
+    install -m 444 -D ${appimageContents}/joplin.png \
+      $out/share/pixmaps/joplin.png
+    substituteInPlace $out/share/applications/joplin.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
   '';
 
 
diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix
index 7f607de5ffc..ab8448f503d 100644
--- a/pkgs/applications/misc/josm/default.nix
+++ b/pkgs/applications/misc/josm/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, fetchsvn, makeWrapper, unzip, jre, libXxf86vm }:
 let
   pname = "josm";
-  version = "16731";
+  version = "16812";
   srcs = {
     jar = fetchurl {
       url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
-      sha256 = "0r94jcqciggjwjxfz5q3m81sx6cvh94hq5r9mpw44dvpnyfjj6p6";
+      sha256 = "1ld0c87mhifbdnlrr7a9jmgn3s5xklzbpwcl1m6j1lc18ajs1awq";
     };
     macosx = fetchurl {
       url = "https://josm.openstreetmap.de/download/macosx/josm-macosx-${version}.zip";
-      sha256 = "1ilcqy6ssi1jfnbw9nzpd4qlf2dmskfywy2lfm07y4w4gyjsp6w9";
+      sha256 = "0vhawcgzh06k2dfqav28n3sv1ij1ziz6bgi4k7m0diix6ia7hlar";
     };
     pkg = fetchsvn {
       url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
diff --git a/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch b/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch
new file mode 100644
index 00000000000..8f9271ac996
--- /dev/null
+++ b/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch
@@ -0,0 +1,49 @@
+From 2629af4ed00d7ca65359178203d80fb146901cdb Mon Sep 17 00:00:00 2001
+From: Daniel Fullmer <danielrf12@gmail.com>
+Date: Fri, 3 Jul 2020 21:00:45 -0700
+Subject: [PATCH 1/2] Fix CMakeLists
+
+---
+ CMakeLists.txt | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e218279..4341de9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -57,6 +57,7 @@ endif(JPEG_FOUND)
+ include(FindJasper)
+ if(JASPER_FOUND)
+   set(HAVE_JASPER_LIB 1)
++  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${JASPER_LIBRARY})
+ endif(JASPER_FOUND)
+ 
+ # paths from willuslib/wgs.c
+@@ -71,9 +72,12 @@ else()
+   message(STATUS "Could NOT find ghostscript executable")
+ endif(GHOSTSCRIPT_EXECUTABLE)
+ 
+-# willus.h
+-# HAVE_GSL_LIB
+-
++pkg_check_modules(GSL gsl)
++if(GSL_FOUND)
++  set(HAVE_GSL_LIB 1)
++  include_directories(SYSTEM ${GSL_INCLUDEDIR})
++  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${GSL_LDFLAGS})
++endif(GSL_FOUND)
+ 
+ # libfreetype6 (>= 2.3.9), libjbig2dec0, libjpeg8 (>= 8c), libx11-6, libxext6, zlib1g (>= 1:1.2.0)
+ # MUPDF_STATIC_LDFLAGS misses mupdf-js-none, and doubles libs ...
+@@ -85,7 +89,7 @@ if(MUPDF_FOUND)
+   include_directories(SYSTEM ${MUPDF_INCLUDEDIR})
+   message(STATUS "mupdf libraries: ${MUPDF_LDFLAGS}")
+   set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${MUPDF_LDFLAGS} 
+-    -lmupdf-js-none -lopenjpeg -ljbig2dec -ljpeg -lfreetype
++
+   )
+ endif(MUPDF_FOUND)
+ 
+-- 
+2.27.0
+
diff --git a/pkgs/applications/misc/k2pdfopt/default.nix b/pkgs/applications/misc/k2pdfopt/default.nix
index 8899654cc4c..431426e55fb 100644
--- a/pkgs/applications/misc/k2pdfopt/default.nix
+++ b/pkgs/applications/misc/k2pdfopt/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchzip, fetchurl, fetchpatch, cmake, pkgconfig
-, zlib, libpng
+{ stdenv, runCommand, fetchzip, fetchurl, fetchpatch, fetchFromGitHub
+, cmake, pkgconfig, zlib, libpng, makeWrapper
 , enableGSL ? true, gsl
 , enableGhostScript ? true, ghostscript
 , enableMuPDF ? true, mupdf
@@ -11,44 +11,132 @@
 
 with stdenv.lib;
 
-stdenv.mkDerivation rec {
-  pname = "k2pdfopt";
-  version = "2.51a";
+# k2pdfopt is a pain to package. It requires modified versions of mupdf,
+# leptonica, and tesseract.  Instead of shipping patches for these upstream
+# packages, k2pdfopt includes just the modified source files for these
+# packages.  The individual files from the {mupdf,leptonica,tesseract}_mod/
+# directories are intended to replace the corresponding source files in the
+# upstream packages, for a particular version of that upstream package.
+#
+# There are a few ways we could approach packaging these modified versions of
+# mupdf, leptonica, and mupdf:
+# 1) Override the upstream source with a new derivation that involves copying
+# the modified source files from k2pdfopt and replacing the corresponding
+# source files in the upstream packages. Since the files are intended for a
+# particular version of the upstream package, this would not allow us to easily
+# use updates to those packages in nixpkgs.
+# 2) Manually produce patches which can be applied against the upstream
+# project, and have the same effect as replacing those files.  This is what I
+# believe k2pdfopt should do this for us anyway.  The benefit of creating and
+# applying patches in this way is that minor updates (esp. security fixes) to
+# upstream packages might still allow these patches to apply successfully.
+# 3) Automatically produce these patches inside a nix derivation. This is the
+# approach taken here, using the "mkPatch" provided below.  This has the
+# benefit of easier review and should hopefully be simpler to update in the
+# future.
+
+let
+  # Create a patch against src based on changes applied in patchCommands
+  mkPatch = { name, src, patchCommands }: runCommand "${name}-k2pdfopt.patch" { inherit src; } ''
+    source $stdenv/setup
+    unpackPhase
 
-  src = (fetchzip {
-    url = "http://www.willus.com/k2pdfopt/src/k2pdfopt_v2.51_src.zip";
-    sha256 = "133l7xkvi67s6sfk8cfh7rmavbsf7ib5fyksk1ci6b6sch3z2sw9";
-  });
+    orig=$sourceRoot
+    new=$sourceRoot-modded
+    cp -r $orig/. $new/
 
-  # Note: the v2.51a zip contains only files to be replaced in the v2.50 zip.
-  v251a_src = (fetchzip {
-    url = "http://www.willus.com/k2pdfopt/src/k2pdfopt_v2.51a_src.zip";
-    sha256 = "0vvwblii7kgdwfxw8dzk6jbmz4dv94d7rkv18i60y8wkayj6yhl6";
-  });
+    pushd $new >/dev/null
+    ${patchCommands}
+    popd >/dev/null
 
-  postUnpack = ''
-    cp -r ${v251a_src}/* $sourceRoot
+    diff -Naur $orig $new > $out || true
   '';
 
-  patches = [ ./k2pdfopt.patch ./k2pdfopt-mupdf-1.16.1.patch ];
+  pname = "k2pdfopt";
+  version = "2.53";
+  k2pdfopt_src = fetchzip {
+    url = "http://www.willus.com/${pname}/src/${pname}_v${version}_src.zip";
+    sha256 = "1fna8bg3pascjfc3hmc6xn0xi2yh7f1qp0d344mw9hqanbnykyy8";
+  };
+in stdenv.mkDerivation rec {
+  inherit pname version;
+  src = k2pdfopt_src;
+
+  patches = [
+    ./0001-Fix-CMakeLists.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace willuslib/bmpdjvu.c \
+      --replace "<djvu.h>" "<libdjvu/ddjvuapi.h>"
+  '';
 
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
 
   buildInputs =
   let
-    #  The patches below were constructed by taking the files from k2pdfopt in
-    #  the {mupdf,leptonica,tesseract}_mod/ directories, replacing the
-    #  corresponding files in the respective source trees, resolving any errors
-    #  with more recent versions of these depencencies, and running diff.
-    mupdf_modded = mupdf.overrideAttrs (attrs: {
-      patches = attrs.patches ++ [ ./mupdf.patch ]; # Last verified with mupdf 1.16.1
+    # We use specific versions of these sources below to match the versions
+    # used in the k2pdfopt source. Note that this does _not_ need to match the
+    # version used elsewhere in nixpkgs, since it is only used to create the
+    # patch that can then be applied to the version in nixpkgs.
+    mupdf_patch = mkPatch {
+      name = "mupdf";
+      src = fetchurl {
+        url = "https://mupdf.com/downloads/archive/mupdf-1.17.0-source.tar.gz";
+        sha256 = "13nl9nrcx2awz9l83mlv2psi1lmn3hdnfwxvwgwiwbxlkjl3zqq0";
+      };
+      patchCommands = ''
+        cp ${k2pdfopt_src}/mupdf_mod/{filter-basic,font,stext-device,string}.c ./source/fitz/
+        cp ${k2pdfopt_src}/mupdf_mod/pdf-* ./source/pdf/
+      '';
+    };
+    mupdf_modded = mupdf.overrideAttrs ({ patches ? [], ... }: {
+      patches = patches ++ [ mupdf_patch ];
+      # This function is missing in font.c, see font-win32.c
+      postPatch = ''
+        echo "void pdf_install_load_system_font_funcs(fz_context *ctx) {}" >> source/fitz/font.c
+      '';
     });
-    leptonica_modded = leptonica.overrideAttrs (attrs: {
-      patches = [ ./leptonica.patch ]; # Last verified with leptonica 1.78.0
+
+    leptonica_patch = mkPatch {
+      name = "leptonica";
+      src = fetchurl {
+        url = "http://www.leptonica.org/source/leptonica-1.79.0.tar.gz";
+        sha256 = "1n004gv1dj3pq1fcnfdclvvx5nang80336aa67nvs3nnqp4ncn84";
+      };
+      patchCommands = "cp -r ${k2pdfopt_src}/leptonica_mod/. ./src/";
+    };
+    leptonica_modded = leptonica.overrideAttrs ({ patches ? [], ... }: {
+      patches = patches ++ [ leptonica_patch ];
     });
+
+    tesseract_patch = mkPatch {
+      name = "tesseract";
+      src = fetchFromGitHub {
+        owner = "tesseract-ocr";
+        repo = "tesseract";
+        rev = "4.1.1";
+        sha256 = "1ca27zbjpx35nxh9fha410z3jskwyj06i5hqiqdc08s2d7kdivwn";
+      };
+      patchCommands = ''
+        cp ${k2pdfopt_src}/tesseract_mod/{baseapi,tesscapi,tesseract}.* src/api/
+        cp ${k2pdfopt_src}/tesseract_mod/{tesscapi,tessedit,tesseract}.* src/ccmain/
+        cp ${k2pdfopt_src}/tesseract_mod/dotproduct{avx,fma,sse}.* src/arch/
+        cp ${k2pdfopt_src}/tesseract_mod/{intsimdmatrixsse,simddetect}.* src/arch/
+        cp ${k2pdfopt_src}/tesseract_mod/{errcode,genericvector,mainblk,params,serialis,tessdatamanager,tess_version,tprintf,unicharset}.* src/ccutil/
+        cp ${k2pdfopt_src}/tesseract_mod/{input,lstmrecognizer}.* src/lstm/
+        cp ${k2pdfopt_src}/tesseract_mod/openclwrapper.* src/opencl/
+      '';
+    };
     tesseract_modded = tesseract4.override {
-      tesseractBase = tesseract4.tesseractBase.overrideAttrs (_: {
-        patches = [ ./tesseract.patch ]; # Last verified with tesseract 1.4
+      tesseractBase = tesseract4.tesseractBase.overrideAttrs ({ patches ? [], ... }: {
+        patches = patches ++ [ tesseract_patch ];
+        # Additional compilation fixes
+        postPatch = ''
+          echo libtesseract_api_la_SOURCES += tesscapi.cpp >> src/api/Makefile.am
+          substituteInPlace src/api/tesseract.h \
+            --replace "#include <leptonica.h>" "//#include <leptonica.h>"
+        '';
       });
     };
   in
@@ -71,6 +159,10 @@ stdenv.mkDerivation rec {
     install -D -m 755 k2pdfopt $out/bin/k2pdfopt
   '';
 
+  preFixup = optionalString enableTesseract ''
+    wrapProgram $out/bin/k2pdfopt --set-default TESSDATA_PREFIX ${tesseract4}/share/tessdata
+  '';
+
   meta = with stdenv.lib; {
     description = "Optimizes PDF/DJVU files for mobile e-readers (e.g. the Kindle) and smartphones";
     homepage = "http://www.willus.com/k2pdfopt";
diff --git a/pkgs/applications/misc/k2pdfopt/k2pdfopt-mupdf-1.16.1.patch b/pkgs/applications/misc/k2pdfopt/k2pdfopt-mupdf-1.16.1.patch
deleted file mode 100644
index 3a9eca30e75..00000000000
--- a/pkgs/applications/misc/k2pdfopt/k2pdfopt-mupdf-1.16.1.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-diff --git a/willuslib/wmupdf.c b/willuslib/wmupdf.c
-index 81627ef..f14a96c 100644
---- a/willuslib/wmupdf.c
-+++ b/willuslib/wmupdf.c
-@@ -189,8 +189,6 @@ int wmupdf_remake_pdf(char *infile,char *outfile,WPDFPAGEINFO *pageinfo,int use_
-     pdf_write_opts.do_compress=1;
-     pdf_write_opts.do_linear=0;
-     pdf_write_opts.do_garbage=1; /* 2 and 3 don't work for this. */
--    pdf_write_opts.continue_on_error=0;
--    pdf_write_opts.errors=NULL;
-     write_failed=0;
-     wpdfpageinfo_sort(pageinfo);
-     xref=NULL;
-@@ -1687,8 +1685,8 @@ WPDFOUTLINE *wpdfoutline_read_from_pdf_file(char *filename)
-         /* Sumatra version of MuPDF v1.4 -- use locally installed fonts */
-         pdf_install_load_system_font_funcs(ctx);
-         fz_try(ctx) { doc=fz_open_document(ctx,filename); }
--        fz_catch(ctx) 
--            { 
-+        fz_catch(ctx)
-+            {
-             fz_drop_context(ctx);
-             return(NULL);
-             }
-@@ -1890,5 +1888,5 @@ static pdf_obj *pdf_new_string_utf8(fz_context *ctx,char *string)
-     willus_mem_free((double **)&utfbuf,funcname);
-     return(pdfobj);
-     }
--    
-+
- #endif /* HAVE_MUPDF_LIB */
-diff --git a/willuslib/wmupdfinfo.c b/willuslib/wmupdfinfo.c
-index 5c7f38c..9b9e6fd 100644
---- a/willuslib/wmupdfinfo.c
-+++ b/willuslib/wmupdfinfo.c
-@@ -237,23 +237,22 @@ static void showglobalinfo(fz_context *ctx, globals *glo,char *filename)
-         pdf_obj *robj;
- 
-         robj=pdf_resolve_indirect(ctx,obj);
--        n=pdf_sprint_obj(ctx,NULL,0,robj,1);
--        buf=malloc(n+2);
-+        buf=pdf_sprint_obj(ctx,NULL,0,&n,robj,1,0);
-         if (buf==NULL)
-             {
-             fz_write_printf(ctx,out,"Info object (%d %d R):\n",pdf_to_num(ctx,obj),pdf_to_gen(ctx,obj));
--		    pdf_print_obj(ctx,out,robj,1);
-+		    pdf_print_obj(ctx,out,robj,1,0);
-             }
-         else
-             {
--            pdf_sprint_obj(ctx,buf,n+2,robj,1);
-+            pdf_sprint_obj(ctx,buf,n+2,&n,robj,1,0);
-             display_pdf_field(ctx,out,buf,"Title","TITLE");
-             display_pdf_field(ctx,out,buf,"CreationDate","CREATED");
-             display_pdf_field(ctx,out,buf,"ModDate","LAST MODIFIED");
-             display_pdf_field(ctx,out,buf,"Producer","PDF PRODUCER");
-             display_pdf_field(ctx,out,buf,"Creator","CREATOR");
-             display_file_size(ctx,out,filename);
--            free(buf);
-+            fz_free(ctx,buf);
-             }
- 	    }
-     if (glo->dims==1)
-@@ -275,7 +274,7 @@ static void showglobalinfo(fz_context *ctx, globals *glo,char *filename)
- 	if (obj)
-         {
- 		fz_write_printf(ctx,out, "\nEncryption object (%d %d R):\n", pdf_to_num(ctx,obj), pdf_to_gen(ctx,obj));
--		pdf_print_obj(ctx,out, pdf_resolve_indirect(ctx,obj), 1);
-+		pdf_print_obj(ctx,out, pdf_resolve_indirect(ctx,obj), 1, 0);
-         }
-     }
- 
-@@ -396,7 +395,7 @@ gatherdimensions(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_
- 	if (j < glo->dims)
- 		return;
- 
--	glo->dim = fz_resize_array(ctx, glo->dim, glo->dims+1, sizeof(struct info));
-+	glo->dim = fz_realloc_array(ctx, glo->dim, glo->dims+1, struct info);
- 	glo->dims++;
- 
- 	glo->dim[glo->dims - 1].page = page;
-@@ -441,7 +440,7 @@ gatherfonts(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj *
- 		if (k < glo->fonts)
- 			continue;
- 
--		glo->font = fz_resize_array(ctx, glo->font, glo->fonts+1, sizeof(struct info));
-+		glo->font = fz_realloc_array(ctx, glo->font, glo->fonts+1, struct info);
- 		glo->fonts++;
- 
- 		glo->font[glo->fonts - 1].page = page;
-@@ -510,7 +509,7 @@ gatherimages(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj
- 		if (k < glo->images)
- 			continue;
- 
--		glo->image = fz_resize_array(ctx, glo->image, glo->images+1, sizeof(struct info));
-+		glo->image = fz_realloc_array(ctx, glo->image, glo->images+1, struct info);
- 		glo->images++;
- 
- 		glo->image[glo->images - 1].page = page;
-@@ -568,7 +567,7 @@ gatherforms(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj *
- 		if (k < glo->forms)
- 			continue;
- 
--		glo->form = fz_resize_array(ctx, glo->form, glo->forms+1, sizeof(struct info));
-+		glo->form = fz_realloc_array(ctx, glo->form, glo->forms+1, struct info);
- 		glo->forms++;
- 
- 		glo->form[glo->forms - 1].page = page;
-@@ -613,7 +612,7 @@ gatherpsobjs(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj
- 		if (k < glo->psobjs)
- 			continue;
- 
--		glo->psobj = fz_resize_array(ctx, glo->psobj, glo->psobjs+1, sizeof(struct info));
-+		glo->psobj = fz_realloc_array(ctx, glo->psobj, glo->psobjs+1, struct info);
- 		glo->psobjs++;
- 
- 		glo->psobj[glo->psobjs - 1].page = page;
-@@ -656,7 +655,7 @@ gathershadings(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_ob
- 		if (k < glo->shadings)
- 			continue;
- 
--		glo->shading = fz_resize_array(ctx, glo->shading, glo->shadings+1, sizeof(struct info));
-+		glo->shading = fz_realloc_array(ctx, glo->shading, glo->shadings+1, struct info);
- 		glo->shadings++;
- 
- 		glo->shading[glo->shadings - 1].page = page;
-@@ -724,7 +723,7 @@ gatherpatterns(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_ob
- 		if (k < glo->patterns)
- 			continue;
- 
--		glo->pattern = fz_resize_array(ctx, glo->pattern, glo->patterns+1, sizeof(struct info));
-+		glo->pattern = fz_realloc_array(ctx, glo->pattern, glo->patterns+1, struct info);
- 		glo->patterns++;
- 
- 		glo->pattern[glo->patterns - 1].page = page;
-@@ -1216,7 +1215,7 @@ void wmupdfinfo_get(char *filename,int *pagelist,char **buf)
-     if (fout==NULL)
-         return;
-     */
--    
-+
-     ctx = fz_new_context(NULL, NULL, FZ_STORE_UNLIMITED);
-     if (!ctx)
-         {
-@@ -1307,5 +1306,5 @@ static void date_convert(char *dst,char *src)
-     else if (src[i]!='\0')
-         sprintf(&dst[strlen(dst)]," %s",&src[i]);
-     }
--    
-+
- #endif /* HAVE_MUPDF_LIB */
diff --git a/pkgs/applications/misc/k2pdfopt/k2pdfopt.patch b/pkgs/applications/misc/k2pdfopt/k2pdfopt.patch
deleted file mode 100644
index cf7e4896b80..00000000000
--- a/pkgs/applications/misc/k2pdfopt/k2pdfopt.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 4a2378b..502c477 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -52,6 +52,7 @@ endif(JPEG_FOUND)
- include(FindJasper)
- if(JASPER_FOUND)
-   set(HAVE_JASPER_LIB 1)
-+  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${JASPER_LIBRARY})
- endif(JASPER_FOUND)
- 
- # paths from willuslib/wgs.c
-@@ -66,8 +67,12 @@ else()
-   message(STATUS "Could NOT find ghostscript executable")
- endif(GHOSTSCRIPT_EXECUTABLE)
- 
--# willus.h
--# HAVE_GSL_LIB
-+pkg_check_modules(GSL gsl)
-+if(GSL_FOUND)
-+  set(HAVE_GSL_LIB 1)
-+  include_directories(SYSTEM ${GSL_INCLUDEDIR})
-+  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${GSL_LDFLAGS})
-+endif(GSL_FOUND)
- 
- 
- # libfreetype6 (>= 2.3.9), libjbig2dec0, libjpeg8 (>= 8c), libx11-6, libxext6, zlib1g (>= 1:1.2.0)
-@@ -80,7 +85,7 @@ if(MUPDF_FOUND)
-   include_directories(SYSTEM ${MUPDF_INCLUDEDIR})
-   message(STATUS "mupdf libraries: ${MUPDF_LDFLAGS}")
-   set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${MUPDF_LDFLAGS} 
--    -lmupdf-js-none -lopenjpeg -ljbig2dec -ljpeg -lfreetype
-+ 
-   )
- endif(MUPDF_FOUND)
- 
-@@ -91,9 +96,25 @@ if(DJVU_FOUND)
-   set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${DJVU_LDFLAGS})
- endif(DJVU_FOUND)
- 
--# HAVE_GOCR_LIB
--# HAVE_LEPTONICA_LIB
--# HAVE_TESSERACT_LIB
-+find_library(GOCR_LIB NAMES Pgm2asc)
-+if(GOCR_LIB)
-+  set(HAVE_GOCR_LIB 1)
-+  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${GOCR_LIB})
-+endif(GOCR_LIB)
-+
-+pkg_check_modules(LEPTONICA lept)
-+if(LEPTONICA_FOUND)
-+  set(HAVE_LEPTONICA_LIB 1)
-+  include_directories(SYSTEM ${LEPTONICA_INCLUDEDIR})
-+  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${LEPTONICA_LDFLAGS})
-+endif(LEPTONICA_FOUND)
-+
-+pkg_check_modules(TESSERACT tesseract)
-+if(TESSERACT_FOUND)
-+  set(HAVE_TESSERACT_LIB 1)
-+  include_directories(SYSTEM ${TESSERACT_INCLUDEDIR})
-+  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${TESSERACT_LDFLAGS})
-+endif(TESSERACT_FOUND)
- 
- # ---- Describe project
- 
-diff --git a/willuslib/CMakeLists.txt b/willuslib/CMakeLists.txt
-index 463bbc9..8043db5 100644
---- a/willuslib/CMakeLists.txt
-+++ b/willuslib/CMakeLists.txt
-@@ -6,7 +6,7 @@ include_directories(..)
- set(WILLUSLIB_SRC
-     ansi.c array.c bmp.c bmpdjvu.c bmpmupdf.c dtcompress.c filelist.c
-     fontdata.c fontrender.c gslpolyfit.c linux.c math.c mem.c ocr.c
--    ocrjocr.c ocrtess.c pdfwrite.c point2d.c render.c strbuf.c string.c
-+    ocrgocr.c ocrtess.c pdfwrite.c point2d.c render.c strbuf.c string.c
-     token.c wfile.c wgs.c wgui.c willusversion.c win.c winbmp.c
-     wincomdlg.c winmbox.c winshell.c wmupdf.c wmupdfinfo.c wpdf.c wsys.c
-     wzfile.c wleptonica.c
-diff --git a/willuslib/ocrgocr.c b/willuslib/ocrgocr.c
-index 6027e9a..fbe10f0 100644
---- a/willuslib/ocrgocr.c
-+++ b/willuslib/ocrgocr.c
-@@ -29,6 +29,8 @@
- #ifdef HAVE_GOCR_LIB
- #include <gocr.h>
- 
-+job_t *OCR_JOB;
-+
- /*
- ** bmp8 must be grayscale
- ** (x1,y1) and (x2,y2) from top left of bitmap
-@@ -63,6 +65,7 @@ void gocr_single_word_from_bmp8(char *text,int maxlen,WILLUSBITMAP *bmp8,
-     h=y2-y1+1;
-     dh=h+bw*2;
-     job=&_job;
-+    OCR_JOB=job;
-     job_init(job);
-     job_init_image(job);
-     // willus_mem_alloc_warn((void **)&job->src.p.p,w*h,funcname,10);
diff --git a/pkgs/applications/misc/k2pdfopt/leptonica.patch b/pkgs/applications/misc/k2pdfopt/leptonica.patch
deleted file mode 100644
index dfab99fd013..00000000000
--- a/pkgs/applications/misc/k2pdfopt/leptonica.patch
+++ /dev/null
@@ -1,254 +0,0 @@
-From 8c11a20925686855023df90ed477957c7d7fe91e Mon Sep 17 00:00:00 2001
-From: Daniel Fullmer <danielrf12@gmail.com>
-Date: Fri, 13 Sep 2019 15:54:21 -0400
-Subject: [PATCH] Willus mod for k2pdfopt
-
----
- src/allheaders.h |   4 ++
- src/dewarp2.c    | 106 ++++++++++++++++++++++++++++++++++++++++++-----
- src/leptwin.c    |   6 ++-
- 3 files changed, 104 insertions(+), 12 deletions(-)
-
-diff --git a/src/allheaders.h b/src/allheaders.h
-index e68eff1..b3cc729 100644
---- a/src/allheaders.h
-+++ b/src/allheaders.h
-@@ -669,6 +669,10 @@ LEPT_DLL extern L_DEWARPA * dewarpaReadMem ( const l_uint8 *data, size_t size );
- LEPT_DLL extern l_ok dewarpaWrite ( const char *filename, L_DEWARPA *dewa );
- LEPT_DLL extern l_ok dewarpaWriteStream ( FILE *fp, L_DEWARPA *dewa );
- LEPT_DLL extern l_ok dewarpaWriteMem ( l_uint8 **pdata, size_t *psize, L_DEWARPA *dewa );
-+/* WILLUS MOD */
-+    LEPT_DLL extern l_int32 dewarpBuildPageModel_ex ( L_DEWARP *dew, const char *debugfile,l_int32 fit_order );
-+    LEPT_DLL extern l_int32 dewarpFindVertDisparity_ex ( L_DEWARP *dew, PTAA *ptaa, l_int32 rotflag,l_int32 fit_order );
-+    LEPT_DLL extern l_int32 dewarpBuildLineModel_ex ( L_DEWARP *dew, l_int32 opensize, const char *debugfile,l_int32 fit_order );
- LEPT_DLL extern l_ok dewarpBuildPageModel ( L_DEWARP *dew, const char *debugfile );
- LEPT_DLL extern l_ok dewarpFindVertDisparity ( L_DEWARP *dew, PTAA *ptaa, l_int32 rotflag );
- LEPT_DLL extern l_ok dewarpFindHorizDisparity ( L_DEWARP *dew, PTAA *ptaa );
-diff --git a/src/dewarp2.c b/src/dewarp2.c
-index 220eec1..2e29500 100644
---- a/src/dewarp2.c
-+++ b/src/dewarp2.c
-@@ -144,9 +144,17 @@ static const l_float32   L_ALLOWED_W_FRACT = 0.05;  /* no bigger */
-  *          longest textlines.
-  * </pre>
-  */
-+/* WILLUS MOD */
- l_ok
--dewarpBuildPageModel(L_DEWARP    *dew,
--                     const char  *debugfile)
-+dewarpBuildPageModel(L_DEWARP *dew,const char *debugfile)
-+{
-+return(dewarpBuildPageModel_ex(dew,debugfile,2));
-+}
-+
-+l_ok
-+dewarpBuildPageModel_ex(L_DEWARP    *dew,
-+                     const char  *debugfile,
-+                     l_int32 fit_order)
- {
- l_int32  linecount, topline, botline, ret;
- PIX     *pixs, *pix1, *pix2, *pix3;
-@@ -225,7 +233,7 @@ PTAA    *ptaa1, *ptaa2;
-         /* Get the sampled vertical disparity from the textline centers.
-          * The disparity array will push pixels vertically so that each
-          * textline is flat and centered at the y-position of the mid-point. */
--    if (dewarpFindVertDisparity(dew, ptaa2, 0) != 0) {
-+    if (dewarpFindVertDisparity_ex(dew, ptaa2, 0, fit_order) != 0) {
-         L_WARNING("vertical disparity not built\n", procName);
-         ptaaDestroy(&ptaa2);
-         return 1;
-@@ -290,13 +298,24 @@ PTAA    *ptaa1, *ptaa2;
-  *          a pdf.  Non-pix debug output goes to /tmp.
-  * </pre>
-  */
-+/* WILLUS MOD */
- l_ok
- dewarpFindVertDisparity(L_DEWARP  *dew,
-                         PTAA      *ptaa,
-                         l_int32    rotflag)
- {
-+return(dewarpFindVertDisparity_ex(dew,ptaa,rotflag,2));
-+}
-+/* WILLUS MOD -- add cubic and quartic fits and ..._ex functions */
-+l_int32
-+dewarpFindVertDisparity_ex(L_DEWARP  *dew,
-+                        PTAA      *ptaa,
-+                        l_int32    rotflag,
-+                        l_int32    fit_order)
-+{
- l_int32     i, j, nlines, npts, nx, ny, sampling;
--l_float32   c0, c1, c2, x, y, midy, val, medval, meddev, minval, maxval;
-+/* WILLUS MOD */
-+l_float32   c0, c1, c2, c3, c4, x, y, midy, val, medval, meddev, minval, maxval;
- l_float32  *famidys;
- NUMA       *nax, *nafit, *nacurve0, *nacurve1, *nacurves;
- NUMA       *namidy, *namidys, *namidysi;
-@@ -304,11 +323,22 @@ PIX        *pix1, *pix2, *pixcirc, *pixdb;
- PTA        *pta, *ptad, *ptacirc;
- PTAA       *ptaa0, *ptaa1, *ptaa2, *ptaa3, *ptaa4, *ptaa5, *ptaat;
- FPIX       *fpix;
-+/* WILLUS MOD */
-+l_int32 fit_order1,fit_order2;
- 
-     PROCNAME("dewarpFindVertDisparity");
- 
-     if (!dew)
-         return ERROR_INT("dew not defined", procName, 1);
-+/* WILLUS MOD */
-+    if (fit_order < 10)
-+        fit_order1 = fit_order2 = fit_order;
-+    else
-+        {
-+        fit_order1=fit_order % 10;
-+        fit_order2=fit_order / 10;
-+        fit_order2=fit_order2 % 10;
-+        }
-     dew->vsuccess = 0;
-     if (!ptaa)
-         return ERROR_INT("ptaa not defined", procName, 1);
-@@ -331,12 +361,32 @@ FPIX       *fpix;
-     pixdb = (rotflag) ? pixRotateOrth(dew->pixs, 1) : pixClone(dew->pixs);
-     for (i = 0; i < nlines; i++) {  /* for each line */
-         pta = ptaaGetPta(ptaa, i, L_CLONE);
--        ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
--        numaAddNumber(nacurve0, c2);
-+/* WILLUS MOD */
-+if (fit_order1>3)
-+    {
-+    ptaGetQuarticLSF(pta, &c4, &c3, &c2, &c1, &c0, NULL);
-+    numaAddNumber(nacurve0, c4);
-+    }
-+else if (fit_order1==3)
-+    {
-+    ptaGetCubicLSF(pta, &c3, &c2, &c1, &c0, NULL);
-+    numaAddNumber(nacurve0, c3);
-+    }
-+else
-+    {
-+    ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
-+    numaAddNumber(nacurve0, c2);
-+    }
-         ptad = ptaCreate(nx);
-         for (j = 0; j < nx; j++) {  /* uniformly sampled in x */
-              x = j * sampling;
--             applyQuadraticFit(c2, c1, c0, x, &y);
-+/* WILLUS MOD */
-+if (fit_order1>3)
-+    applyQuarticFit(c4, c3, c2, c1, c0, x, &y);
-+else if (fit_order1==3)
-+    applyCubicFit(c3, c2, c1, c0, x, &y);
-+else
-+    applyQuadraticFit(c2, c1, c0, x, &y);
-              ptaAddPt(ptad, x, y);
-         }
-         ptaaAddPta(ptaa0, ptad, L_INSERT);
-@@ -350,7 +400,13 @@ FPIX       *fpix;
-         for (i = 0; i < nlines; i++) {
-             pta = ptaaGetPta(ptaa, i, L_CLONE);
-             ptaGetArrays(pta, &nax, NULL);
--            ptaGetQuadraticLSF(pta, NULL, NULL, NULL, &nafit);
-+/* WILLUS MOD */
-+if (fit_order1>3)
-+ptaGetQuarticLSF(pta, NULL, NULL, NULL, NULL, NULL, &nafit);
-+else if (fit_order1==3)
-+ptaGetCubicLSF(pta, NULL, NULL, NULL, NULL, &nafit);
-+else
-+ptaGetQuadraticLSF(pta, NULL, NULL, NULL, &nafit);
-             ptad = ptaCreateFromNuma(nax, nafit);
-             ptaaAddPta(ptaat, ptad, L_INSERT);
-             ptaDestroy(&pta);
-@@ -494,11 +550,24 @@ FPIX       *fpix;
-     ptaa5 = ptaaCreate(nx);  /* uniformly sampled across full height of image */
-     for (j = 0; j < nx; j++) {  /* for each column */
-         pta = ptaaGetPta(ptaa4, j, L_CLONE);
--        ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
-+/* WILLUS MOD */
-+/* Order higher than 2 can cause a little craziness here. */
-+if (fit_order2>3)
-+    ptaGetQuarticLSF(pta, &c4, &c3, &c2, &c1, &c0, NULL);
-+else if (fit_order2==3)
-+    ptaGetCubicLSF(pta, &c3, &c2, &c1, &c0, NULL);
-+else
-+    ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
-         ptad = ptaCreate(ny);
-         for (i = 0; i < ny; i++) {  /* uniformly sampled in y */
-              y = i * sampling;
--             applyQuadraticFit(c2, c1, c0, y, &val);
-+/* WILLUS MOD */
-+if (fit_order2>3)
-+    applyQuarticFit(c4, c3, c2, c1, c0, y, &val);
-+else if (fit_order2==3)
-+    applyCubicFit(c3, c2, c1, c0, y, &val);
-+else
-+    applyQuadraticFit(c2, c1, c0, y, &val);
-              ptaAddPt(ptad, y, val);
-         }
-         ptaaAddPta(ptaa5, ptad, L_INSERT);
-@@ -1602,11 +1671,21 @@ FPIX      *fpix;
-  *          See notes there.
-  * </pre>
-  */
-+/* WILLUS MOD */
- l_ok
- dewarpBuildLineModel(L_DEWARP    *dew,
-                      l_int32      opensize,
-                      const char  *debugfile)
- {
-+return(dewarpBuildLineModel_ex(dew,opensize,debugfile,2));
-+}
-+
-+l_int32
-+dewarpBuildLineModel_ex(L_DEWARP    *dew,
-+                     l_int32      opensize,
-+                     const char  *debugfile,
-+                     l_int32 fit_order)
-+{
- char     buf[64];
- l_int32  i, j, bx, by, ret, nlines;
- BOXA    *boxa;
-@@ -1695,6 +1774,8 @@ PTAA    *ptaa1, *ptaa2;
- 
-             /* Remove all lines that are not at least 0.75 times the length
-              * of the longest line. */
-+/* WILLUS MOD */
-+/*
-         ptaa2 = dewarpRemoveShortLines(pix, ptaa1, 0.75, DEBUG_SHORT_LINES);
-         if (debugfile) {
-             pix1 = pixConvertTo32(pix);
-@@ -1704,6 +1785,8 @@ PTAA    *ptaa1, *ptaa2;
-             pixDestroy(&pix1);
-             pixDestroy(&pix2);
-         }
-+*/
-+ptaa2=ptaa1;
-         ptaaDestroy(&ptaa1);
-         nlines = ptaaGetCount(ptaa2);
-         if (nlines < dew->minlines) {
-@@ -1717,7 +1800,8 @@ PTAA    *ptaa1, *ptaa2;
-              * centers.  The disparity array will push pixels vertically
-              * so that each line is flat and centered at the y-position
-              * of the mid-point. */
--        ret = dewarpFindVertDisparity(dew, ptaa2, 1 - i);
-+/* WILLUS MOD */
-+        ret = dewarpFindVertDisparity_ex(dew, ptaa2, 1 - i, fit_order);
- 
-             /* If i == 0, move the result to the horizontal disparity,
-              * rotating it back by -90 degrees. */
-diff --git a/src/leptwin.c b/src/leptwin.c
-index 72643a0..573d33e 100644
---- a/src/leptwin.c
-+++ b/src/leptwin.c
-@@ -364,5 +364,9 @@ PIXCMAP   *cmap;
- 
-     return hBitmap;
- }
--
-+#else
-+/* willus mod: Avoid weird issue with OS/X library archiver when there are no symbols */
-+int leptwin_my_empty_func(void);
-+int leptwin_my_empty_func(void)
-+{return(0);}
- #endif   /* _WIN32 */
--- 
-2.22.0
-
diff --git a/pkgs/applications/misc/k2pdfopt/mupdf.patch b/pkgs/applications/misc/k2pdfopt/mupdf.patch
deleted file mode 100644
index 0c59a1d2016..00000000000
--- a/pkgs/applications/misc/k2pdfopt/mupdf.patch
+++ /dev/null
@@ -1,1060 +0,0 @@
-From d8927c969e3387ca2669a616c0ba53bce918a031 Mon Sep 17 00:00:00 2001
-From: Daniel Fullmer <danielrf12@gmail.com>
-Date: Fri, 13 Sep 2019 15:11:45 -0400
-Subject: [PATCH] Willus mod for k2pdfopt
-
----
- source/fitz/filter-basic.c |   3 +
- source/fitz/font-win32.c   | 866 +++++++++++++++++++++++++++++++++++++
- source/fitz/font.c         |   3 +
- source/fitz/stext-device.c |   5 +
- source/fitz/string.c       |   5 +
- source/pdf/pdf-annot.c     |  14 +-
- source/pdf/pdf-link.c      |   3 +
- source/pdf/pdf-parse.c     |   5 +
- source/pdf/pdf-xref.c      |   9 +
- 9 files changed, 912 insertions(+), 1 deletion(-)
- create mode 100644 source/fitz/font-win32.c
-
-diff --git a/source/fitz/filter-basic.c b/source/fitz/filter-basic.c
-index 0713a62e7..b8ef4d292 100644
---- a/source/fitz/filter-basic.c
-+++ b/source/fitz/filter-basic.c
-@@ -259,7 +259,10 @@ look_for_endstream:
- 	if (!state->warned)
- 	{
- 		state->warned = 1;
-+/* willus mod -- no warning */
-+/*
- 		fz_warn(ctx, "PDF stream Length incorrect");
-+*/
- 	}
- 	return *stm->rp++;
- }
-diff --git a/source/fitz/font-win32.c b/source/fitz/font-win32.c
-new file mode 100644
-index 000000000..45de8cfd3
---- /dev/null
-+++ b/source/fitz/font-win32.c
-@@ -0,0 +1,866 @@
-+/*
-+** Routines to access MS Windows system fonts.
-+** From sumatra PDF distro.
-+** Modified for MuPDF v1.9a by willus.com
-+*/
-+#include "mupdf/pdf.h"
-+
-+/*
-+	Which fonts are embedded is based on a few preprocessor definitions.
-+
-+	The base 14 fonts are always embedded.
-+	For CJK font substitution we embed DroidSansFallback.
-+
-+	Set NOCJK to skip all CJK support (this also omits embedding the CJK CMaps)
-+	Set NOCJKFONT to skip the embedded CJK font.
-+	Set NOCJKFULL to embed a smaller CJK font without CJK Extension A support.
-+*/
-+
-+#ifdef NOCJK
-+#define NOCJKFONT
-+#endif
-+
-+/* SumatraPDF: also load fonts included with Windows */
-+#ifdef _WIN32
-+
-+#ifndef UNICODE
-+#define UNICODE
-+#endif
-+#ifndef _UNICODE
-+#define _UNICODE
-+#endif
-+
-+#include <windows.h>
-+
-+// TODO: Use more of FreeType for TTF parsing (for performance reasons,
-+//       the fonts can't be parsed completely, though)
-+#include <ft2build.h>
-+#include FT_TRUETYPE_IDS_H
-+#include FT_TRUETYPE_TAGS_H
-+
-+#define TTC_VERSION1	0x00010000
-+#define TTC_VERSION2	0x00020000
-+
-+#define MAX_FACENAME	128
-+
-+// Note: the font face must be the first field so that the structure
-+//       can be treated like a simple string for searching
-+typedef struct pdf_fontmapMS_s
-+{
-+	char fontface[MAX_FACENAME];
-+	char fontpath[MAX_PATH];
-+	int index;
-+} pdf_fontmapMS;
-+
-+typedef struct pdf_fontlistMS_s
-+{
-+	pdf_fontmapMS *fontmap;
-+	int len;
-+	int cap;
-+} pdf_fontlistMS;
-+
-+typedef struct _tagTT_OFFSET_TABLE
-+{
-+	ULONG	uVersion;
-+	USHORT	uNumOfTables;
-+	USHORT	uSearchRange;
-+	USHORT	uEntrySelector;
-+	USHORT	uRangeShift;
-+} TT_OFFSET_TABLE;
-+
-+typedef struct _tagTT_TABLE_DIRECTORY
-+{
-+	ULONG	uTag;				//table name
-+	ULONG	uCheckSum;			//Check sum
-+	ULONG	uOffset;			//Offset from beginning of file
-+	ULONG	uLength;			//length of the table in bytes
-+} TT_TABLE_DIRECTORY;
-+
-+typedef struct _tagTT_NAME_TABLE_HEADER
-+{
-+	USHORT	uFSelector;			//format selector. Always 0
-+	USHORT	uNRCount;			//Name Records count
-+	USHORT	uStorageOffset;		//Offset for strings storage, from start of the table
-+} TT_NAME_TABLE_HEADER;
-+
-+typedef struct _tagTT_NAME_RECORD
-+{
-+	USHORT	uPlatformID;
-+	USHORT	uEncodingID;
-+	USHORT	uLanguageID;
-+	USHORT	uNameID;
-+	USHORT	uStringLength;
-+	USHORT	uStringOffset;	//from start of storage area
-+} TT_NAME_RECORD;
-+
-+typedef struct _tagFONT_COLLECTION
-+{
-+	ULONG	Tag;
-+	ULONG	Version;
-+	ULONG	NumFonts;
-+} FONT_COLLECTION;
-+
-+static struct {
-+	char *name;
-+	char *pattern;
-+} baseSubstitutes[] = {
-+	{ "Courier", "CourierNewPSMT" },
-+	{ "Courier-Bold", "CourierNewPS-BoldMT" },
-+	{ "Courier-Oblique", "CourierNewPS-ItalicMT" },
-+	{ "Courier-BoldOblique", "CourierNewPS-BoldItalicMT" },
-+	{ "Helvetica", "ArialMT" },
-+	{ "Helvetica-Bold", "Arial-BoldMT" },
-+	{ "Helvetica-Oblique", "Arial-ItalicMT" },
-+	{ "Helvetica-BoldOblique", "Arial-BoldItalicMT" },
-+	{ "Times-Roman", "TimesNewRomanPSMT" },
-+	{ "Times-Bold", "TimesNewRomanPS-BoldMT" },
-+	{ "Times-Italic", "TimesNewRomanPS-ItalicMT" },
-+	{ "Times-BoldItalic", "TimesNewRomanPS-BoldItalicMT" },
-+	{ "Symbol", "SymbolMT" },
-+};
-+static const char *base_font_names[][10] =
-+{
-+	{ "Courier", "CourierNew", "CourierNewPSMT", NULL },
-+	{ "Courier-Bold", "CourierNew,Bold", "Courier,Bold",
-+		"CourierNewPS-BoldMT", "CourierNew-Bold", NULL },
-+	{ "Courier-Oblique", "CourierNew,Italic", "Courier,Italic",
-+		"CourierNewPS-ItalicMT", "CourierNew-Italic", NULL },
-+	{ "Courier-BoldOblique", "CourierNew,BoldItalic", "Courier,BoldItalic",
-+		"CourierNewPS-BoldItalicMT", "CourierNew-BoldItalic", NULL },
-+	{ "Helvetica", "ArialMT", "Arial", NULL },
-+	{ "Helvetica-Bold", "Arial-BoldMT", "Arial,Bold", "Arial-Bold",
-+		"Helvetica,Bold", NULL },
-+	{ "Helvetica-Oblique", "Arial-ItalicMT", "Arial,Italic", "Arial-Italic",
-+		"Helvetica,Italic", "Helvetica-Italic", NULL },
-+	{ "Helvetica-BoldOblique", "Arial-BoldItalicMT",
-+		"Arial,BoldItalic", "Arial-BoldItalic",
-+		"Helvetica,BoldItalic", "Helvetica-BoldItalic", NULL },
-+	{ "Times-Roman", "TimesNewRomanPSMT", "TimesNewRoman",
-+		"TimesNewRomanPS", NULL },
-+	{ "Times-Bold", "TimesNewRomanPS-BoldMT", "TimesNewRoman,Bold",
-+		"TimesNewRomanPS-Bold", "TimesNewRoman-Bold", NULL },
-+	{ "Times-Italic", "TimesNewRomanPS-ItalicMT", "TimesNewRoman,Italic",
-+		"TimesNewRomanPS-Italic", "TimesNewRoman-Italic", NULL },
-+	{ "Times-BoldItalic", "TimesNewRomanPS-BoldItalicMT",
-+		"TimesNewRoman,BoldItalic", "TimesNewRomanPS-BoldItalic",
-+		"TimesNewRoman-BoldItalic", NULL },
-+	{ "Symbol", "Symbol,Italic", "Symbol,Bold", "Symbol,BoldItalic",
-+		"SymbolMT", "SymbolMT,Italic", "SymbolMT,Bold", "SymbolMT,BoldItalic", NULL },
-+	{ "ZapfDingbats", NULL }
-+};
-+
-+static pdf_fontlistMS fontlistMS =
-+{
-+	NULL,
-+	0,
-+	0,
-+};
-+static int strcmp_ignore_space(const char *a, const char *b);
-+static const char *clean_font_name(const char *fontname);
-+static const char *pdf_clean_base14_name(const char *fontname);
-+
-+static inline USHORT BEtoHs(USHORT x)
-+{
-+	BYTE *data = (BYTE *)&x;
-+	return (data[0] << 8) | data[1];
-+}
-+
-+static inline ULONG BEtoHl(ULONG x)
-+{
-+	BYTE *data = (BYTE *)&x;
-+	return (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3];
-+}
-+
-+static int strcmp_ignore_space(const char *a, const char *b)
-+{
-+	while (1)
-+	{
-+		while (*a == ' ')
-+			a++;
-+		while (*b == ' ')
-+			b++;
-+		if (*a != *b)
-+			return 1;
-+		if (*a == 0)
-+			return *a != *b;
-+		if (*b == 0)
-+			return *a != *b;
-+		a++;
-+		b++;
-+	}
-+}
-+
-+/* A little bit more sophisticated name matching so that e.g. "EurostileExtended"
-+   matches "EurostileExtended-Roman" or "Tahoma-Bold,Bold" matches "Tahoma-Bold" */
-+static int
-+lookup_compare(const void *elem1, const void *elem2)
-+{
-+	const char *val1 = elem1;
-+	const char *val2 = elem2;
-+	int len1 = strlen(val1);
-+	int len2 = strlen(val2);
-+
-+	if (len1 != len2)
-+	{
-+		const char *rest = len1 > len2 ? val1 + len2 : val2 + len1;
-+		if (',' == *rest || !_stricmp(rest, "-roman"))
-+			return _strnicmp(val1, val2, fz_mini(len1, len2));
-+	}
-+
-+	return _stricmp(val1, val2);
-+}
-+
-+static void
-+remove_spaces(char *srcDest)
-+{
-+	char *dest;
-+
-+	for (dest = srcDest; *srcDest; srcDest++)
-+		if (*srcDest != ' ')
-+			*dest++ = *srcDest;
-+	*dest = '\0';
-+}
-+
-+static int
-+str_ends_with(const char *str, const char *end)
-+{
-+	size_t len1 = strlen(str);
-+	size_t len2 = strlen(end);
-+
-+	return len1 >= len2 && !strcmp(str + len1 - len2, end);
-+}
-+
-+static pdf_fontmapMS *
-+pdf_find_windows_font_path(const char *fontname)
-+{
-+	return bsearch(fontname, fontlistMS.fontmap, fontlistMS.len, sizeof(pdf_fontmapMS), lookup_compare);
-+}
-+
-+/* source and dest can be same */
-+static void
-+decode_unicode_BE(fz_context *ctx, char *source, int sourcelen, char *dest, int destlen)
-+{
-+	WCHAR *tmp;
-+	int converted, i;
-+
-+	if (sourcelen % 2 != 0)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : invalid unicode string");
-+
-+	tmp = fz_malloc_array(ctx, sourcelen / 2 + 1, sizeof(WCHAR));
-+	for (i = 0; i < sourcelen / 2; i++)
-+		tmp[i] = BEtoHs(((WCHAR *)source)[i]);
-+	tmp[sourcelen / 2] = '\0';
-+
-+	converted = WideCharToMultiByte(CP_UTF8, 0, tmp, -1, dest, destlen, NULL, NULL);
-+	fz_free(ctx, tmp);
-+	if (!converted)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : invalid unicode string");
-+}
-+
-+static void
-+decode_platform_string(fz_context *ctx, int platform, int enctype, char *source, int sourcelen, char *dest, int destlen)
-+{
-+	switch (platform)
-+	{
-+	case TT_PLATFORM_APPLE_UNICODE:
-+		switch (enctype)
-+		{
-+		case TT_APPLE_ID_DEFAULT:
-+		case TT_APPLE_ID_UNICODE_2_0:
-+			decode_unicode_BE(ctx, source, sourcelen, dest, destlen);
-+			return;
-+		}
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : unsupported encoding (%d/%d)", platform, enctype);
-+	case TT_PLATFORM_MACINTOSH:
-+		switch (enctype)
-+		{
-+		case TT_MAC_ID_ROMAN:
-+			if (sourcelen + 1 > destlen)
-+				fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : overlong fontname: %s", source);
-+			// TODO: Convert to UTF-8 from what encoding?
-+			memcpy(dest, source, sourcelen);
-+			dest[sourcelen] = 0;
-+			return;
-+		}
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : unsupported encoding (%d/%d)", platform, enctype);
-+	case TT_PLATFORM_MICROSOFT:
-+		switch (enctype)
-+		{
-+		case TT_MS_ID_SYMBOL_CS:
-+		case TT_MS_ID_UNICODE_CS:
-+		case TT_MS_ID_UCS_4:
-+			decode_unicode_BE(ctx, source, sourcelen, dest, destlen);
-+			return;
-+		}
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : unsupported encoding (%d/%d)", platform, enctype);
-+	default:
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : unsupported encoding (%d/%d)", platform, enctype);
-+	}
-+}
-+
-+static void
-+grow_system_font_list(fz_context *ctx, pdf_fontlistMS *fl)
-+{
-+	int newcap;
-+	pdf_fontmapMS *newitems;
-+
-+	if (fl->cap == 0)
-+		newcap = 1024;
-+	else
-+		newcap = fl->cap * 2;
-+
-+	// use realloc/free for the fontmap, since the list can
-+	// remain in memory even with all fz_contexts destroyed
-+	newitems = realloc(fl->fontmap, newcap * sizeof(pdf_fontmapMS));
-+	if (!newitems)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "OOM in grow_system_font_list");
-+	memset(newitems + fl->cap, 0, sizeof(pdf_fontmapMS) * (newcap - fl->cap));
-+
-+	fl->fontmap = newitems;
-+	fl->cap = newcap;
-+}
-+
-+static void
-+append_mapping(fz_context *ctx, pdf_fontlistMS *fl, const char *facename, const char *path, int index)
-+{
-+	if (fl->len == fl->cap)
-+		grow_system_font_list(ctx, fl);
-+
-+	if (fl->len >= fl->cap)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : fontlist overflow");
-+
-+	fz_strlcpy(fl->fontmap[fl->len].fontface, facename, sizeof(fl->fontmap[0].fontface));
-+	fz_strlcpy(fl->fontmap[fl->len].fontpath, path, sizeof(fl->fontmap[0].fontpath));
-+	fl->fontmap[fl->len].index = index;
-+
-+	++fl->len;
-+}
-+
-+static void
-+safe_read(fz_context *ctx, fz_stream *file, int offset, char *buf, int size)
-+{
-+	int n;
-+	fz_seek(ctx, file, offset, 0);
-+	n = fz_read(ctx, file, (unsigned char *)buf, size);
-+	if (n != size)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "safe_read: read %d, expected %d", n, size);
-+}
-+
-+static void
-+read_ttf_string(fz_context *ctx, fz_stream *file, int offset, TT_NAME_RECORD *ttRecordBE, char *buf, int size)
-+{
-+	char szTemp[MAX_FACENAME * 2];
-+	// ignore empty and overlong strings
-+	int stringLength = BEtoHs(ttRecordBE->uStringLength);
-+	if (stringLength == 0 || stringLength >= sizeof(szTemp))
-+		return;
-+
-+	safe_read(ctx, file, offset + BEtoHs(ttRecordBE->uStringOffset), szTemp, stringLength);
-+	decode_platform_string(ctx, BEtoHs(ttRecordBE->uPlatformID),
-+		BEtoHs(ttRecordBE->uEncodingID), szTemp, stringLength, buf, size);
-+}
-+
-+static void
-+makeFakePSName(char szName[MAX_FACENAME], const char *szStyle)
-+{
-+	// append the font's subfamily, unless it's a Regular font
-+	if (*szStyle && _stricmp(szStyle, "Regular") != 0)
-+	{
-+		fz_strlcat(szName, "-", MAX_FACENAME);
-+		fz_strlcat(szName, szStyle, MAX_FACENAME);
-+	}
-+	remove_spaces(szName);
-+}
-+
-+static void
-+parseTTF(fz_context *ctx, fz_stream *file, int offset, int index, const char *path)
-+{
-+	TT_OFFSET_TABLE ttOffsetTableBE;
-+	TT_TABLE_DIRECTORY tblDirBE;
-+	TT_NAME_TABLE_HEADER ttNTHeaderBE;
-+	TT_NAME_RECORD ttRecordBE;
-+
-+	char szPSName[MAX_FACENAME] = { 0 };
-+	char szTTName[MAX_FACENAME] = { 0 };
-+	char szStyle[MAX_FACENAME] = { 0 };
-+	char szCJKName[MAX_FACENAME] = { 0 };
-+	int i, count, tblOffset;
-+
-+	safe_read(ctx, file, offset, (char *)&ttOffsetTableBE, sizeof(TT_OFFSET_TABLE));
-+
-+	// check if this is a TrueType font of version 1.0 or an OpenType font
-+	if (BEtoHl(ttOffsetTableBE.uVersion) != TTC_VERSION1 &&
-+		BEtoHl(ttOffsetTableBE.uVersion) != TTAG_OTTO)
-+	{
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : invalid font version %x", (unsigned int)BEtoHl(ttOffsetTableBE.uVersion));
-+	}
-+
-+	// determine the name table's offset by iterating through the offset table
-+	count = BEtoHs(ttOffsetTableBE.uNumOfTables);
-+	for (i = 0; i < count; i++)
-+	{
-+		int entryOffset = offset + sizeof(TT_OFFSET_TABLE) + i * sizeof(TT_TABLE_DIRECTORY);
-+		safe_read(ctx, file, entryOffset, (char *)&tblDirBE, sizeof(TT_TABLE_DIRECTORY));
-+		if (!BEtoHl(tblDirBE.uTag) || BEtoHl(tblDirBE.uTag) == TTAG_name)
-+			break;
-+	}
-+	if (count == i || !BEtoHl(tblDirBE.uTag))
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : nameless font");
-+	tblOffset = BEtoHl(tblDirBE.uOffset);
-+
-+	// read the 'name' table for record count and offsets
-+	safe_read(ctx, file, tblOffset, (char *)&ttNTHeaderBE, sizeof(TT_NAME_TABLE_HEADER));
-+	offset = tblOffset + sizeof(TT_NAME_TABLE_HEADER);
-+	tblOffset += BEtoHs(ttNTHeaderBE.uStorageOffset);
-+
-+	// read through the strings for PostScript name and font family
-+	count = BEtoHs(ttNTHeaderBE.uNRCount);
-+	for (i = 0; i < count; i++)
-+	{
-+		short langId, nameId;
-+		BOOL isCJKName;
-+
-+		safe_read(ctx, file, offset + i * sizeof(TT_NAME_RECORD), (char *)&ttRecordBE, sizeof(TT_NAME_RECORD));
-+
-+		langId = BEtoHs(ttRecordBE.uLanguageID);
-+		nameId = BEtoHs(ttRecordBE.uNameID);
-+		isCJKName = TT_NAME_ID_FONT_FAMILY == nameId && LANG_CHINESE == PRIMARYLANGID(langId);
-+
-+		// ignore non-English strings (except for Chinese font names)
-+		if (langId && langId != TT_MS_LANGID_ENGLISH_UNITED_STATES && !isCJKName)
-+			continue;
-+		// ignore names other than font (sub)family and PostScript name
-+		fz_try(ctx)
-+		{
-+			if (isCJKName)
-+				read_ttf_string(ctx, file, tblOffset, &ttRecordBE, szCJKName, sizeof(szCJKName));
-+			else if (TT_NAME_ID_FONT_FAMILY == nameId)
-+				read_ttf_string(ctx, file, tblOffset, &ttRecordBE, szTTName, sizeof(szTTName));
-+			else if (TT_NAME_ID_FONT_SUBFAMILY == nameId)
-+				read_ttf_string(ctx, file, tblOffset, &ttRecordBE, szStyle, sizeof(szStyle));
-+			else if (TT_NAME_ID_PS_NAME == nameId)
-+				read_ttf_string(ctx, file, tblOffset, &ttRecordBE, szPSName, sizeof(szPSName));
-+		}
-+		fz_catch(ctx)
-+		{
-+			fz_warn(ctx, "ignoring face name decoding fonterror");
-+		}
-+	}
-+
-+	// try to prevent non-Arial fonts from accidentally substituting Arial
-+	if (!strcmp(szPSName, "ArialMT"))
-+	{
-+		// cf. https://code.google.com/p/sumatrapdf/issues/detail?id=2471
-+		if (strcmp(szTTName, "Arial") != 0)
-+			szPSName[0] = '\0';
-+		// TODO: is there a better way to distinguish Arial Caps from Arial proper?
-+		// cf. http://code.google.com/p/sumatrapdf/issues/detail?id=1290
-+		else if (strstr(path, "caps") || strstr(path, "Caps"))
-+			fz_throw(ctx, FZ_ERROR_GENERIC, "ignore %s, as it can't be distinguished from Arial,Regular", path);
-+	}
-+
-+	if (szPSName[0])
-+		append_mapping(ctx, &fontlistMS, szPSName, path, index);
-+	if (szTTName[0])
-+	{
-+		// derive a PostScript-like name and add it, if it's different from the font's
-+		// included PostScript name; cf. http://code.google.com/p/sumatrapdf/issues/detail?id=376
-+		makeFakePSName(szTTName, szStyle);
-+		// compare the two names before adding this one
-+		if (lookup_compare(szTTName, szPSName))
-+			append_mapping(ctx, &fontlistMS, szTTName, path, index);
-+	}
-+	if (szCJKName[0])
-+	{
-+		makeFakePSName(szCJKName, szStyle);
-+		if (lookup_compare(szCJKName, szPSName) && lookup_compare(szCJKName, szTTName))
-+			append_mapping(ctx, &fontlistMS, szCJKName, path, index);
-+	}
-+}
-+
-+static void
-+parseTTFs(fz_context *ctx, const char *path)
-+{
-+	fz_stream *file = fz_open_file(ctx, path);
-+	/* "fonterror : %s not found", path */
-+	fz_try(ctx)
-+	{
-+		parseTTF(ctx, file, 0, 0, path);
-+	}
-+	fz_always(ctx)
-+	{
-+		fz_drop_stream(ctx,file);
-+	}
-+	fz_catch(ctx)
-+	{
-+		fz_rethrow(ctx);
-+	}
-+}
-+
-+static void
-+parseTTCs(fz_context *ctx, const char *path)
-+{
-+	FONT_COLLECTION fontcollectionBE;
-+	ULONG i, numFonts, *offsettableBE = NULL;
-+
-+	fz_stream *file = fz_open_file(ctx, path);
-+	/* "fonterror : %s not found", path */
-+
-+	fz_var(offsettableBE);
-+
-+	fz_try(ctx)
-+	{
-+		safe_read(ctx, file, 0, (char *)&fontcollectionBE, sizeof(FONT_COLLECTION));
-+		if (BEtoHl(fontcollectionBE.Tag) != TTAG_ttcf)
-+			fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : wrong format %x", (unsigned int)BEtoHl(fontcollectionBE.Tag));
-+		if (BEtoHl(fontcollectionBE.Version) != TTC_VERSION1 &&
-+			BEtoHl(fontcollectionBE.Version) != TTC_VERSION2)
-+		{
-+			fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : invalid version %x", (unsigned int)BEtoHl(fontcollectionBE.Version));
-+		}
-+
-+		numFonts = BEtoHl(fontcollectionBE.NumFonts);
-+		offsettableBE = fz_malloc_array(ctx, numFonts, sizeof(ULONG));
-+
-+		safe_read(ctx, file, sizeof(FONT_COLLECTION), (char *)offsettableBE, numFonts * sizeof(ULONG));
-+		for (i = 0; i < numFonts; i++)
-+			parseTTF(ctx, file, BEtoHl(offsettableBE[i]), i, path);
-+	}
-+	fz_always(ctx)
-+	{
-+		fz_free(ctx, offsettableBE);
-+		fz_drop_stream(ctx,file);
-+	}
-+	fz_catch(ctx)
-+	{
-+		fz_rethrow(ctx);
-+	}
-+}
-+
-+static void
-+extend_system_font_list(fz_context *ctx, const WCHAR *path)
-+{
-+	WCHAR szPath[MAX_PATH], *lpFileName;
-+	WIN32_FIND_DATA FileData;
-+	HANDLE hList;
-+
-+	GetFullPathName(path, nelem(szPath), szPath, &lpFileName);
-+
-+	hList = FindFirstFile(szPath, &FileData);
-+	if (hList == INVALID_HANDLE_VALUE)
-+	{
-+		// Don't complain about missing directories
-+		if (GetLastError() == ERROR_FILE_NOT_FOUND)
-+			return;
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "extend_system_font_list: unknown error %d", (int)GetLastError());
-+	}
-+	do
-+	{
-+		if (!(FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
-+		{
-+			char szPathUtf8[MAX_PATH], *fileExt;
-+			int res;
-+			lstrcpyn(lpFileName, FileData.cFileName, szPath + MAX_PATH - lpFileName);
-+			res = WideCharToMultiByte(CP_UTF8, 0, szPath, -1, szPathUtf8, sizeof(szPathUtf8), NULL, NULL);
-+			if (!res)
-+			{
-+				fz_warn(ctx, "WideCharToMultiByte failed for %S", szPath);
-+				continue;
-+			}
-+			fileExt = szPathUtf8 + strlen(szPathUtf8) - 4;
-+			fz_try(ctx)
-+			{
-+				if (!_stricmp(fileExt, ".ttc"))
-+					parseTTCs(ctx, szPathUtf8);
-+				else if (!_stricmp(fileExt, ".ttf") || !_stricmp(fileExt, ".otf"))
-+					parseTTFs(ctx, szPathUtf8);
-+			}
-+			fz_catch(ctx)
-+			{
-+				// ignore errors occurring while parsing a given font file
-+			}
-+		}
-+	} while (FindNextFile(hList, &FileData));
-+	FindClose(hList);
-+}
-+
-+static void
-+destroy_system_font_list(void)
-+{
-+	free(fontlistMS.fontmap);
-+	memset(&fontlistMS, 0, sizeof(fontlistMS));
-+}
-+
-+static void
-+create_system_font_list(fz_context *ctx)
-+{
-+	WCHAR szFontDir[MAX_PATH];
-+	UINT cch;
-+
-+	cch = GetWindowsDirectory(szFontDir, nelem(szFontDir) - 12);
-+	if (0 < cch && cch < nelem(szFontDir) - 12)
-+	{
-+        /* willus.com edit--Win XP default MSVCRT.DLL doesn't have wcscat_s */
-+#ifdef _WIN64
-+		wcscat_s(szFontDir, MAX_PATH, L"\\Fonts\\*.?t?");
-+#else
-+		wcscat(szFontDir,L"\\Fonts\\*.?t?");
-+#endif
-+		extend_system_font_list(ctx, szFontDir);
-+	}
-+
-+	if (fontlistMS.len == 0)
-+		fz_warn(ctx, "couldn't find any usable system fonts");
-+
-+#ifdef NOCJKFONT
-+	{
-+		// If no CJK fallback font is builtin but one has been shipped separately (in the same
-+		// directory as the main executable), add it to the list of loadable system fonts
-+		WCHAR szFile[MAX_PATH], *lpFileName;
-+		GetModuleFileName(0, szFontDir, MAX_PATH);
-+		GetFullPathName(szFontDir, MAX_PATH, szFile, &lpFileName);
-+		lstrcpyn(lpFileName, L"DroidSansFallback.ttf", szFile + MAX_PATH - lpFileName);
-+		extend_system_font_list(ctx, szFile);
-+	}
-+#endif
-+
-+	// sort the font list, so that it can be searched binarily
-+	qsort(fontlistMS.fontmap, fontlistMS.len, sizeof(pdf_fontmapMS), _stricmp);
-+
-+#ifdef DEBUG
-+	// allow to overwrite system fonts for debugging purposes
-+	// (either pass a full path or a search pattern such as "fonts\*.ttf")
-+	cch = GetEnvironmentVariable(L"MUPDF_FONTS_PATTERN", szFontDir, nelem(szFontDir));
-+	if (0 < cch && cch < nelem(szFontDir))
-+	{
-+		int i, prev_len = fontlistMS.len;
-+		extend_system_font_list(ctx, szFontDir);
-+		for (i = prev_len; i < fontlistMS.len; i++)
-+		{
-+			pdf_fontmapMS *entry = bsearch(fontlistMS.fontmap[i].fontface, fontlistMS.fontmap, prev_len, sizeof(pdf_fontmapMS), lookup_compare);
-+			if (entry)
-+				*entry = fontlistMS.fontmap[i];
-+		}
-+		qsort(fontlistMS.fontmap, fontlistMS.len, sizeof(pdf_fontmapMS), _stricmp);
-+	}
-+#endif
-+
-+	// make sure to clean up after ourselves
-+	atexit(destroy_system_font_list);
-+}
-+
-+static fz_font *
-+pdf_load_windows_font_by_name(fz_context *ctx, const char *orig_name)
-+{
-+	pdf_fontmapMS *found = NULL;
-+	char *comma, *fontname;
-+	fz_font *font;
-+
-+    /* WILLUS MOD--not multi-threaded for k2pdfopt */
-+	/* fz_synchronize_begin(); */
-+	if (fontlistMS.len == 0)
-+	{
-+		fz_try(ctx)
-+		{
-+			create_system_font_list(ctx);
-+		}
-+		fz_catch(ctx) { }
-+	}
-+    /* WILLUS MOD--not multi-threaded for k2pdfopt */
-+	/* fz_synchronize_end(); */
-+	if (fontlistMS.len == 0)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror: couldn't find any fonts");
-+
-+	// work on a normalized copy of the font name
-+	fontname = fz_strdup(ctx, orig_name);
-+	remove_spaces(fontname);
-+
-+	// first, try to find the exact font name (including appended style information)
-+	comma = strchr(fontname, ',');
-+	if (comma)
-+	{
-+		*comma = '-';
-+		found = pdf_find_windows_font_path(fontname);
-+		*comma = ',';
-+	}
-+	// second, substitute the font name with a known PostScript name
-+	else
-+	{
-+		int i;
-+		for (i = 0; i < nelem(baseSubstitutes) && !found; i++)
-+			if (!strcmp(fontname, baseSubstitutes[i].name))
-+				found = pdf_find_windows_font_path(baseSubstitutes[i].pattern);
-+	}
-+	// third, search for the font name without additional style information
-+	if (!found)
-+		found = pdf_find_windows_font_path(fontname);
-+	// fourth, try to separate style from basename for prestyled fonts (e.g. "ArialBold")
-+	if (!found && !comma && (str_ends_with(fontname, "Bold") || str_ends_with(fontname, "Italic")))
-+	{
-+		int styleLen = str_ends_with(fontname, "Bold") ? 4 : str_ends_with(fontname, "BoldItalic") ? 10 : 6;
-+		fontname = fz_resize_array(ctx, fontname, strlen(fontname) + 2, sizeof(char));
-+		comma = fontname + strlen(fontname) - styleLen;
-+		memmove(comma + 1, comma, styleLen + 1);
-+		*comma = '-';
-+		found = pdf_find_windows_font_path(fontname);
-+		*comma = ',';
-+		if (!found)
-+			found = pdf_find_windows_font_path(fontname);
-+	}
-+	// fifth, try to convert the font name from the common Chinese codepage 936
-+	if (!found && fontname[0] < 0)
-+	{
-+		WCHAR cjkNameW[MAX_FACENAME];
-+		char cjkName[MAX_FACENAME];
-+		if (MultiByteToWideChar(936, MB_ERR_INVALID_CHARS, fontname, -1, cjkNameW, nelem(cjkNameW)) &&
-+			WideCharToMultiByte(CP_UTF8, 0, cjkNameW, -1, cjkName, nelem(cjkName), NULL, NULL))
-+		{
-+			comma = strchr(cjkName, ',');
-+			if (comma)
-+			{
-+				*comma = '-';
-+				found = pdf_find_windows_font_path(cjkName);
-+				*comma = ',';
-+			}
-+			if (!found)
-+				found = pdf_find_windows_font_path(cjkName);
-+		}
-+	}
-+
-+	fz_free(ctx, fontname);
-+	if (!found)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "couldn't find system font '%s'", orig_name);
-+
-+    /*
-+	fz_warn(ctx, "loading non-embedded font '%s' from '%s'", orig_name, found->fontpath);
-+    */
-+
-+	font = fz_new_font_from_file(ctx, orig_name, found->fontpath, found->index,
-+		strcmp(found->fontface, "DroidSansFallback") != 0);
-+    /* willus mod for MuPDF v1.10, 10-21-2016 */
-+    {
-+    fz_font_flags_t *flags;
-+    flags=fz_font_flags(font);
-+    if (flags!=NULL)
-+    	flags->ft_substitute = 1;
-+    }
-+	return font;
-+}
-+
-+static fz_font *
-+pdf_load_windows_font(fz_context *ctx, const char *fontname, int bold, int italic, int needs_exact_metrics)
-+{
-+	if (needs_exact_metrics)
-+	{
-+		const char *clean_name;
-+        /* WILLUS: Declare pdf_clean_base14_name() */
-+        extern const char *pdf_clean_base14_name(const char *fontname);
-+
-+		/* TODO: the metrics for Times-Roman and Courier don't match
-+		   those of Windows' Times New Roman and Courier New; for
-+		   some reason, Poppler doesn't seem to have this problem */
-+		int len;
-+		if (fz_lookup_builtin_font(ctx,fontname, bold, italic, &len))
-+			return NULL;
-+
-+		/* cf. http://code.google.com/p/sumatrapdf/issues/detail?id=2173 */
-+		clean_name = pdf_clean_base14_name(fontname);
-+		if (clean_name != fontname && !strncmp(clean_name, "Times-", 6))
-+			return NULL;
-+	}
-+
-+	// TODO: unset font->ft_substitute for base14/needs_exact_metrics?
-+	return pdf_load_windows_font_by_name(ctx, fontname);
-+}
-+
-+static const char *clean_font_name(const char *fontname)
-+{
-+	int i, k;
-+	for (i = 0; i < nelem(base_font_names); i++)
-+		for (k = 0; base_font_names[i][k]; k++)
-+			if (!strcmp_ignore_space(base_font_names[i][k], fontname))
-+				return base_font_names[i][0];
-+	return fontname;
-+}
-+
-+
-+/* SumatraPDF: expose clean_font_name */
-+static const char * pdf_clean_base14_name(const char *fontname)
-+{
-+	return clean_font_name(fontname);
-+}
-+
-+static fz_font *
-+pdf_load_windows_cjk_font(fz_context *ctx, const char *fontname, int ros, int serif)
-+{
-+	fz_font *font;
-+
-+    font=NULL; /* WILLUS: Avoid compiler warning */
-+	/* try to find a matching system font before falling back to an approximate one */
-+	fz_try(ctx)
-+	{
-+		font = pdf_load_windows_font_by_name(ctx, fontname);
-+	}
-+	fz_catch(ctx)
-+	{
-+		font = NULL;
-+	}
-+	if (font)
-+		return font;
-+
-+	/* try to fall back to a reasonable system font */
-+	fz_try(ctx)
-+	{
-+		if (serif)
-+		{
-+			switch (ros)
-+			{
-+			case FZ_ADOBE_CNS: font = pdf_load_windows_font_by_name(ctx, "MingLiU"); break;
-+			case FZ_ADOBE_GB: font = pdf_load_windows_font_by_name(ctx, "SimSun"); break;
-+			case FZ_ADOBE_JAPAN: font = pdf_load_windows_font_by_name(ctx, "MS-Mincho"); break;
-+			case FZ_ADOBE_KOREA: font = pdf_load_windows_font_by_name(ctx, "Batang"); break;
-+			default: fz_throw(ctx, FZ_ERROR_GENERIC, "invalid serif ros");
-+			}
-+		}
-+		else
-+		{
-+			switch (ros)
-+			{
-+			case FZ_ADOBE_CNS: font = pdf_load_windows_font_by_name(ctx, "DFKaiShu-SB-Estd-BF"); break;
-+			case FZ_ADOBE_GB:
-+				fz_try(ctx)
-+				{
-+					font = pdf_load_windows_font_by_name(ctx, "KaiTi");
-+				}
-+				fz_catch(ctx)
-+				{
-+					font = pdf_load_windows_font_by_name(ctx, "KaiTi_GB2312");
-+				}
-+				break;
-+			case FZ_ADOBE_JAPAN: font = pdf_load_windows_font_by_name(ctx, "MS-Gothic"); break;
-+			case FZ_ADOBE_KOREA: font = pdf_load_windows_font_by_name(ctx, "Gulim"); break;
-+			default: fz_throw(ctx, FZ_ERROR_GENERIC, "invalid sans-serif ros");
-+			}
-+		}
-+	}
-+	fz_catch(ctx)
-+	{
-+#ifdef NOCJKFONT
-+		/* If no CJK fallback font is builtin, maybe one has been shipped separately */
-+		font = pdf_load_windows_font_by_name(ctx, "DroidSansFallback");
-+#else
-+		fz_rethrow(ctx);
-+#endif
-+	}
-+
-+	return font;
-+}
-+
-+#endif
-+
-+void pdf_install_load_system_font_funcs(fz_context *ctx)
-+{
-+#ifdef _WIN32
-+	fz_install_load_system_font_funcs(ctx, pdf_load_windows_font, pdf_load_windows_cjk_font, NULL);
-+#endif
-+}
-diff --git a/source/fitz/font.c b/source/fitz/font.c
-index 00c6e8f99..1448b4a56 100644
---- a/source/fitz/font.c
-+++ b/source/fitz/font.c
-@@ -4,8 +4,11 @@
- #include "draw-imp.h"
- 
- #include <ft2build.h>
-+/* willus mod -- remove hb includes */
-+/*
- #include "hb.h"
- #include "hb-ft.h"
-+*/
- 
- #include <assert.h>
- 
-diff --git a/source/fitz/stext-device.c b/source/fitz/stext-device.c
-index 2df90305e..b1f99e056 100644
---- a/source/fitz/stext-device.c
-+++ b/source/fitz/stext-device.c
-@@ -825,6 +825,11 @@ fz_new_stext_device(fz_context *ctx, fz_stext_page *page, const fz_stext_options
- 	dev->lastchar = ' ';
- 	dev->curdir = 1;
- 	dev->lasttext = NULL;
-+    /* willus mod -- seems like this should be here, but not sure. */
-+    if (opts)
-+        dev->flags = opts->flags;
-+    else
-+        dev->flags = 0;
- 
- 	return (fz_device*)dev;
- }
-diff --git a/source/fitz/string.c b/source/fitz/string.c
-index f8eedb682..7a767983d 100644
---- a/source/fitz/string.c
-+++ b/source/fitz/string.c
-@@ -560,6 +560,10 @@ fz_utflen(const char *s)
- */
- float fz_atof(const char *s)
- {
-+/* willus mod: atof(s), #if-#else-#endif */
-+#if (!defined(__SSE__))
-+    return(atof(s));
-+#else
- 	float result;
- 
- 	if (s == NULL)
-@@ -572,6 +576,7 @@ float fz_atof(const char *s)
- 		return 1;
- 	result = fz_clamp(result, -FLT_MAX, FLT_MAX);
- 	return result;
-+#endif
- }
- 
- /*
-diff --git a/source/pdf/pdf-annot.c b/source/pdf/pdf-annot.c
-index 4dfdf36fe..acff7d12a 100644
---- a/source/pdf/pdf-annot.c
-+++ b/source/pdf/pdf-annot.c
-@@ -5,8 +5,20 @@
- #include <string.h>
- #include <time.h>
- 
-+/* willus mod--don't use _mkgmtime--not available in Win XP */
- #ifdef _WIN32
--#define timegm _mkgmtime
-+static time_t timegm(struct tm *date);
-+static time_t timegm(struct tm *date)
-+
-+    {
-+    time_t t,z;
-+    struct tm gmz;
-+
-+    z=(time_t)0;
-+    gmz=(*gmtime(&z));
-+    t=mktime(date)-mktime(&gmz);
-+    return(t);
-+    }
- #endif
- 
- #define isdigit(c) (c >= '0' && c <= '9')
-diff --git a/source/pdf/pdf-link.c b/source/pdf/pdf-link.c
-index 37444b471..613cc05b9 100644
---- a/source/pdf/pdf-link.c
-+++ b/source/pdf/pdf-link.c
-@@ -345,6 +345,9 @@ pdf_resolve_link(fz_context *ctx, pdf_document *doc, const char *uri, float *xp,
- 		}
- 		return page;
- 	}
-+/* willus mod -- be quiet */
-+/*
- 	fz_warn(ctx, "unknown link uri '%s'", uri);
-+*/
- 	return -1;
- }
-diff --git a/source/pdf/pdf-parse.c b/source/pdf/pdf-parse.c
-index 04a772204..9dd0cd898 100644
---- a/source/pdf/pdf-parse.c
-+++ b/source/pdf/pdf-parse.c
-@@ -663,9 +663,14 @@ pdf_parse_ind_obj(fz_context *ctx, pdf_document *doc,
- 			if (c == '\r')
- 			{
- 				c = fz_peek_byte(ctx, file);
-+/* willus mod -- no warning */
-+/*
- 				if (c != '\n')
- 					fz_warn(ctx, "line feed missing after stream begin marker (%d %d R)", num, gen);
- 				else
-+*/
-+if (c=='\n')
-+/* willus mod -- end */
- 					fz_read_byte(ctx, file);
- 			}
- 			stm_ofs = fz_tell(ctx, file);
-diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c
-index 8f888059b..08de7bfba 100644
---- a/source/pdf/pdf-xref.c
-+++ b/source/pdf/pdf-xref.c
-@@ -710,8 +710,11 @@ pdf_xref_size_from_old_trailer(fz_context *ctx, pdf_document *doc, pdf_lexbuf *b
- 		if (!s)
- 			fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection length missing");
- 		len = fz_atoi(fz_strsep(&s, " "));
-+/* willus mod -- no warning */
-+/*
- 		if (len < 0)
- 			fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection length must be positive");
-+*/
- 
- 		/* broken pdfs where the section is not on a separate line */
- 		if (s && *s != '\0')
-@@ -1378,7 +1381,10 @@ pdf_init_document(fz_context *ctx, pdf_document *doc)
- 	{
- 		pdf_drop_xref_sections(ctx, doc);
- 		fz_rethrow_if(ctx, FZ_ERROR_TRYLATER);
-+/* willus mod -- be quiet */
-+/*
- 		fz_warn(ctx, "trying to repair broken xref");
-+*/
- 		repaired = 1;
- 	}
- 
-@@ -1506,7 +1512,10 @@ pdf_drop_document_imp(fz_context *ctx, pdf_document *doc)
- 		/* Swallow error, but continue dropping */
- 	}
- 
-+/* willu smod -- no pdf_drop_js */
-+/*
- 	pdf_drop_js(ctx, doc->js);
-+*/
- 
- 	pdf_drop_xref_sections(ctx, doc);
- 	fz_free(ctx, doc->xref_index);
--- 
-2.22.0
-
diff --git a/pkgs/applications/misc/k2pdfopt/tesseract.patch b/pkgs/applications/misc/k2pdfopt/tesseract.patch
deleted file mode 100644
index adfee9ae282..00000000000
--- a/pkgs/applications/misc/k2pdfopt/tesseract.patch
+++ /dev/null
@@ -1,675 +0,0 @@
-From 39aa8502eee7bb669a29d1a9b3bfe5c9595ad960 Mon Sep 17 00:00:00 2001
-From: Daniel Fullmer <danielrf12@gmail.com>
-Date: Fri, 13 Sep 2019 13:45:05 -0400
-Subject: [PATCH] Willus mod changes from k2pdfopt
-
----
- src/api/Makefile.am        |   1 +
- src/api/baseapi.cpp        |  87 +++++++++++
- src/api/baseapi.h          |   3 +
- src/api/tesscapi.cpp       | 311 +++++++++++++++++++++++++++++++++++++
- src/api/tesseract.h        |  29 ++++
- src/ccmain/tessedit.cpp    |   5 +-
- src/ccutil/ccutil.h        |   7 +
- src/ccutil/genericvector.h |  21 ++-
- src/ccutil/mainblk.cpp     |  17 +-
- src/ccutil/params.cpp      |   3 +-
- src/ccutil/serialis.cpp    |   3 +
- src/ccutil/serialis.h      |   2 +
- src/lstm/input.cpp         |   3 +
- 13 files changed, 488 insertions(+), 4 deletions(-)
- create mode 100644 src/api/tesscapi.cpp
- create mode 100644 src/api/tesseract.h
-
-diff --git a/src/api/Makefile.am b/src/api/Makefile.am
-index d9b76eb6..cd2dc30f 100644
---- a/src/api/Makefile.am
-+++ b/src/api/Makefile.am
-@@ -39,6 +39,7 @@ libtesseract_api_la_SOURCES += lstmboxrenderer.cpp
- libtesseract_api_la_SOURCES += pdfrenderer.cpp
- libtesseract_api_la_SOURCES += wordstrboxrenderer.cpp
- libtesseract_api_la_SOURCES += renderer.cpp
-+libtesseract_api_la_SOURCES += tesscapi.cpp
- 
- lib_LTLIBRARIES += libtesseract.la
- libtesseract_la_LDFLAGS = $(LEPTONICA_LIBS) $(OPENCL_LDFLAGS) $(libarchive_LIBS)
-diff --git a/src/api/baseapi.cpp b/src/api/baseapi.cpp
-index 9245d07c..ea964ee6 100644
---- a/src/api/baseapi.cpp
-+++ b/src/api/baseapi.cpp
-@@ -215,6 +215,14 @@ TessBaseAPI::TessBaseAPI()
-   // Use the current locale if building debug code.
-   std::locale::global(std::locale(""));
- #endif
-+  const char *locale;
-+  locale = std::setlocale(LC_ALL, nullptr);
-+/* willus mod Remove assertions--taken care of in tesscapi.cpp */
-+//  ASSERT_HOST(!strcmp(locale, "C"));
-+  locale = std::setlocale(LC_CTYPE, nullptr);
-+//  ASSERT_HOST(!strcmp(locale, "C"));
-+  locale = std::setlocale(LC_NUMERIC, nullptr);
-+//  ASSERT_HOST(!strcmp(locale, "C"));
- }
- 
- TessBaseAPI::~TessBaseAPI() {
-@@ -1333,6 +1341,85 @@ static void AddBoxToTSV(const PageIterator* it, PageIteratorLevel level,
-   text->add_str_int("\t", bottom - top);
- }
- 
-+/* willus mod */
-+int TessBaseAPI::GetOCRWords(int **x00,int **y00,int **x11,int **y11,int **ybaseline0,
-+                             char **utf8words)
-+
-+    {
-+    int iword,nwords,totlen,it8;
-+    int *x0,*y0,*x1,*y1,*ybaseline;
-+    char *tutf8;
-+
-+    ResultIterator *res_it = GetIterator();
-+    /* Count words */
-+    iword=0;
-+    totlen=0;
-+    while (!res_it->Empty(RIL_BLOCK))
-+        {
-+        if (res_it->Empty(RIL_WORD))
-+            {
-+            res_it->Next(RIL_WORD);
-+            continue;
-+            }
-+        iword++;
-+        STRING textstr=std::unique_ptr<const char[]>(res_it->GetUTF8Text(RIL_WORD)).get();
-+        totlen+=strlen(textstr.string())+1;
-+        res_it->Next(RIL_WORD);
-+        }
-+    nwords=iword;
-+/*
-+printf("\nnwords=%d, totlen=%d\n",nwords,totlen);
-+*/
-+    x0=(*x00)=(int *)malloc(sizeof(int)*5*nwords);
-+    y0=(*y00)=&x0[nwords];
-+    x1=(*x11)=&y0[nwords];
-+    y1=(*y11)=&x1[nwords];
-+    ybaseline=(*ybaseline0)=&y1[nwords];
-+    tutf8=(*utf8words)=(char *)malloc(totlen);
-+    iword=0;
-+    it8=0;
-+    res_it->Begin();
-+    while (!res_it->Empty(RIL_BLOCK))
-+        {
-+        if (res_it->Empty(RIL_WORD))
-+            {
-+            res_it->Next(RIL_WORD);
-+            continue;
-+            }
-+        STRING textstr=std::unique_ptr<const char[]>(res_it->GetUTF8Text(RIL_WORD)).get();
-+        strcpy(&tutf8[it8],textstr.string());
-+        it8 += strlen(&tutf8[it8])+1;
-+        /*
-+        STRING textstr("");
-+        textstr += std::unique_ptr<const char[]>(res_it->GetUTF8Text(RIL_WORD)).get();
-+        */
-+/*
-+printf("Word %d: '%s'\n",iword,textstr.string());
-+*/
-+        int left, top, right, bottom;
-+        int u1,v1,u2,v2;
-+        res_it->BoundingBox(RIL_WORD, &left, &top, &right, &bottom);
-+        res_it->Baseline(RIL_WORD, &u1, &v1, &u2, &v2);
-+        x0[iword]=left;
-+        x1[iword]=right;
-+        y0[iword]=top;
-+        y1[iword]=bottom;
-+        ybaseline[iword]=(v1+v2)/2;
-+        iword++;
-+/*
-+printf("BB: (%d,%d)-(%d,%d)  BL: (%d,%d)-(%d,%d)\n",left,bottom,right,top,x1,y1,x2,y2);
-+*/
-+        res_it->Next(RIL_WORD);
-+        }
-+/*
-+printf("iword=%d\n",iword);
-+*/
-+    return(iword);
-+    }
-+
-+/* willus mod */
-+int GetOCRWords(int **x0,int **y0,int **x1,int **y1,int **ybaseline,char **utf8words);
-+
- /**
-  * Make a TSV-formatted string from the internal data structures.
-  * page_number is 0-based but will appear in the output as 1-based.
-diff --git a/src/api/baseapi.h b/src/api/baseapi.h
-index 3724dd92..23be5920 100644
---- a/src/api/baseapi.h
-+++ b/src/api/baseapi.h
-@@ -575,6 +575,9 @@ class TESS_API TessBaseAPI {
-    */
-   char* GetHOCRText(ETEXT_DESC* monitor, int page_number);
- 
-+/* willus mod */
-+int GetOCRWords(int **x0,int **y0,int **x1,int **y1,int **ybaseline,char **utf8words);
-+
-   /**
-    * Make a HTML-formatted string with hOCR markup from the internal
-    * data structures.
-diff --git a/src/api/tesscapi.cpp b/src/api/tesscapi.cpp
-new file mode 100644
-index 00000000..1752fafe
---- /dev/null
-+++ b/src/api/tesscapi.cpp
-@@ -0,0 +1,311 @@
-+/*
-+** tesscapi.cpp    willus.com attempt at C wrapper for tesseract.
-+**                 (Butchered from tesseractmain.cpp)
-+**                 Last udpated 9-1-12
-+**
-+** Copyright (C) 2012  http://willus.com
-+**
-+** This program is free software: you can redistribute it and/or modify
-+** it under the terms of the GNU Affero General Public License as
-+** published by the Free Software Foundation, either version 3 of the
-+** License, or (at your option) any later version.
-+**
-+** This program is distributed in the hope that it will be useful,
-+** but WITHOUT ANY WARRANTY; without even the implied warranty of
-+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+** GNU Affero General Public License for more details.
-+**
-+** You should have received a copy of the GNU Affero General Public License
-+** along with this program.  If not, see <http://www.gnu.org/licenses/>.
-+**
-+*/
-+
-+/*
-+#include "mfcpch.h"
-+*/
-+// #define USE_VLD //Uncomment for Visual Leak Detector.
-+#if (defined _MSC_VER && defined USE_VLD)
-+#include <vld.h>
-+#endif
-+
-+// Include automatically generated configuration file if running autoconf
-+#ifdef HAVE_CONFIG_H
-+#include "config_auto.h"
-+#endif
-+#include <locale.h>
-+#ifdef USING_GETTEXT
-+#include <libintl.h>
-+#define _(x) gettext(x)
-+#else
-+#define _(x) (x)
-+#endif
-+
-+#include "allheaders.h"
-+#include "baseapi.h"
-+#include "strngs.h"
-+#include "params.h"
-+#include "blobs.h"
-+#include "simddetect.h"
-+#include "tesseractclass.h"
-+/*
-+#include "notdll.h"
-+*/
-+
-+/* C Wrappers */
-+#include "tesseract.h"
-+
-+// static tesseract::TessBaseAPI api[4];
-+
-+/*
-+** ocr_type=0:  OEM_DEFAULT
-+** ocr_type=1:  OEM_TESSERACT_ONLY
-+** ocr_type=2:  OEM_LSTM_ONLY
-+** ocr_type=3:  OEM_TESSERACT_LSTM_COMBINED
-+*/
-+void *tess_capi_init(char *datapath,char *language,int ocr_type,FILE *out,
-+                     char *initstr,int maxlen,int *status)
-+
-+    {
-+    char original_locale[256];
-+    tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI;
-+/*
-+printf("@tess_capi_init\n");
-+printf("    datapath='%s'\n",datapath);
-+printf("    language='%s'\n",language);
-+printf("    ocr_type=%d\n",ocr_type);
-+*/
-+#ifdef USE_NLS
-+    setlocale (LC_ALL, "");
-+    bindtextdomain (PACKAGE, LOCALEDIR);
-+    textdomain (PACKAGE);
-+#endif
-+    /* willus mod, 11-24-16 */
-+    /* Tesseract needs "C" locale to correctly parse all data .traineddata files. */
-+/*
-+printf("locale='%s'\n",setlocale(LC_ALL,NULL));
-+printf("ctype='%s'\n",setlocale(LC_CTYPE,NULL));
-+printf("numeric='%s'\n",setlocale(LC_NUMERIC,NULL));
-+*/
-+    strncpy(original_locale,setlocale(LC_ALL,NULL),255);
-+    original_locale[255]='\0';
-+/*
-+printf("original_locale='%s'\n",original_locale);
-+*/
-+    setlocale(LC_ALL,"C");
-+/*
-+printf("new locale='%s'\n",setlocale(LC_ALL,NULL));
-+printf("new ctype='%s'\n",setlocale(LC_CTYPE,NULL));
-+printf("new numeric='%s'\n",setlocale(LC_NUMERIC,NULL));
-+*/
-+    // fprintf(stderr, "tesseract %s\n", tesseract::TessBaseAPI::Version());
-+    // Make the order of args a bit more forgiving than it used to be.
-+    const char* lang = "eng";
-+    tesseract::PageSegMode pagesegmode = tesseract::PSM_SINGLE_BLOCK;
-+    if (language!=NULL && language[0]!='\0')
-+        lang = language;
-+    /*
-+    if (output == NULL)
-+        {
-+        fprintf(stderr, _("Usage:%s imagename outputbase [-l lang] "
-+                      "[-psm pagesegmode] [configfile...]\n"), argv[0]);
-+        fprintf(stderr,
-+            _("pagesegmode values are:\n"
-+              "0 = Orientation and script detection (OSD) only.\n"
-+              "1 = Automatic page segmentation with OSD.\n"
-+              "2 = Automatic page segmentation, but no OSD, or OCR\n"
-+              "3 = Fully automatic page segmentation, but no OSD. (Default)\n"
-+              "4 = Assume a single column of text of variable sizes.\n"
-+              "5 = Assume a single uniform block of vertically aligned text.\n"
-+              "6 = Assume a single uniform block of text.\n"
-+              "7 = Treat the image as a single text line.\n"
-+              "8 = Treat the image as a single word.\n"
-+              "9 = Treat the image as a single word in a circle.\n"
-+              "10 = Treat the image as a single character.\n"));
-+        fprintf(stderr, _("-l lang and/or -psm pagesegmode must occur before any"
-+                      "configfile.\n"));
-+        exit(1);
-+        }
-+    */
-+/*
-+printf("SSE = %s\n",SIMDDetect::IsSSEAvailable() ? "AVAILABLE" : "NOT AVAILABLE");
-+printf("AVX = %s\n",SIMDDetect::IsAVXAvailable() ? "AVAILABLE" : "NOT AVAILABLE");
-+*/
-+/*
-+v4.00 loads either TESSERACT enginer, LSTM engine, or both.  No CUBE.
-+*/
-+    ocr_type=0; /* Ignore specified and use default */
-+    api->SetOutputName(NULL);
-+    (*status)=api->Init(datapath,lang,
-+              ocr_type==0 ? tesseract::OEM_DEFAULT :
-+                (ocr_type==1 ? tesseract::OEM_TESSERACT_ONLY :
-+                   (ocr_type==2 ? tesseract::OEM_LSTM_ONLY :
-+                                  (tesseract::OEM_TESSERACT_LSTM_COMBINED))));
-+    if ((*status)!=0)
-+        {
-+        /* willus mod, 11-24-16 */
-+        setlocale(LC_ALL,original_locale);
-+        api->End();
-+        delete api;
-+        return(NULL);
-+        }
-+    /*
-+    api.Init("tesscapi",lang,tesseract::OEM_DEFAULT,
-+           &(argv[arg]), argc - arg, NULL, NULL, false);
-+    */
-+    // We have 2 possible sources of pagesegmode: a config file and
-+    // the command line. For backwards compatability reasons, the
-+    // default in tesseract is tesseract::PSM_SINGLE_BLOCK, but the
-+    // default for this program is tesseract::PSM_AUTO. We will let
-+    // the config file take priority, so the command-line default
-+    // can take priority over the tesseract default, so we use the
-+    // value from the command line only if the retrieved mode
-+    // is still tesseract::PSM_SINGLE_BLOCK, indicating no change
-+    // in any config file. Therefore the only way to force
-+    // tesseract::PSM_SINGLE_BLOCK is from the command line.
-+    // It would be simpler if we could set the value before Init,
-+    // but that doesn't work.
-+    if (api->GetPageSegMode() == tesseract::PSM_SINGLE_BLOCK)
-+        api->SetPageSegMode(pagesegmode);
-+
-+    /*
-+    ** Initialization message
-+    */
-+    {
-+    char istr[1024];
-+    int sse,avx;
-+
-+// printf("tessedit_ocr_engine_mode = %d\n",tessedit_ocr_engine_mode);
-+    sprintf(istr,"%s",api->Version());
-+    sse=tesseract::SIMDDetect::IsSSEAvailable();
-+    avx=tesseract::SIMDDetect::IsAVXAvailable();
-+    if (sse || avx)
-+        sprintf(&istr[strlen(istr)]," [%s]",sse&&avx?"SSE+AVX":(sse?"SSE":"AVX"));
-+    sprintf(&istr[strlen(istr)],"\n    Tesseract data folder = '%s'",datapath==NULL?getenv("TESSDATA_PREFIX"):datapath);
-+    strcat(istr,"\n    Tesseract languages: ");
-+    GenericVector<STRING> languages;
-+    api->GetLoadedLanguagesAsVector(&languages);
-+/*
-+printf("OEM=%d\n",api->oem());
-+printf("Langs='%s'\n",api->GetInitLanguagesAsString());
-+printf("AnyTessLang()=%d\n",(int)api->tesseract()->AnyTessLang());
-+printf("AnyLSTMLang()=%d\n",(int)api->tesseract()->AnyLSTMLang());
-+printf("num_sub_langs()=%d\n",api->tesseract()->num_sub_langs());
-+printf("languages.size()=%d\n",(int)languages.size());
-+*/
-+
-+    for (int i=0;i<=api->tesseract()->num_sub_langs();i++)
-+        {
-+        tesseract::Tesseract *lang1;
-+        int eng;
-+        lang1 = i==0 ? api->tesseract() : api->tesseract()->get_sub_lang(i-1);
-+        eng=(int)lang1->tessedit_ocr_engine_mode;
-+        sprintf(&istr[strlen(istr)],"%s%s [%s]",i==0?"":", ",lang1->lang.string(),
-+                 eng==2?"LSTM+Tess":(eng==1?"LSTM":"Tess"));
-+        }
-+/*
-+printf("%d. '%s'\n",i+1,languages[i].string());
-+printf("    sublang[%d].oem_engine = %d\n",i+1,(int)api->tesseract()->get_sub_lang(i)->tessedit_ocr_engine_mode);
-+*/
-+
-+    /*
-+    if (ocr_type==0 || ocr_type==3)
-+        sprintf(&istr[strlen(istr)],"[LSTM+] (lang=");
-+    else if (ocr_type==2)
-+        sprintf(&istr[strlen(istr)],"[LSTM] (lang=");
-+    strncpy(&istr[strlen(istr)],language,253-strlen(istr));
-+    istr[253]='\0';
-+    strcat(istr,")");
-+    */
-+    if (out!=NULL)
-+        fprintf(out,"%s\n",istr);
-+    if (initstr!=NULL)
-+        {
-+        strncpy(initstr,istr,maxlen-1);
-+        initstr[maxlen-1]='\0';
-+        }
-+    }
-+
-+
-+    /* Turn off LSTM debugging output */
-+    api->SetVariable("lstm_debug_level","0");
-+#if (WILLUSDEBUG & 1)
-+    api->SetVariable("lstm_debug_level","9");
-+    api->SetVariable("paragraph_debug_level","9");
-+    api->SetVariable("tessdata_manager_debug_level","9");
-+    api->SetVariable("tosp_debug_level","9");
-+    api->SetVariable("wordrec_debug_level","9");
-+    api->SetVariable("segsearch_debug_level","9");
-+#endif
-+    /* willus mod, 11-24-16 */
-+    setlocale(LC_ALL,original_locale);
-+    return((void *)api);
-+    }
-+
-+
-+int tess_capi_get_ocr(void *vapi,PIX *pix,char *outstr,int maxlen,int segmode,FILE *out)
-+
-+    {
-+    tesseract::TessBaseAPI *api;
-+    static int old_segmode=-1;
-+
-+    api=(tesseract::TessBaseAPI *)vapi;
-+    if (old_segmode != segmode)
-+        {
-+        old_segmode=segmode;
-+        api->SetPageSegMode((tesseract::PageSegMode)segmode);
-+        }
-+    if (!api->ProcessPage(pix,0,NULL,NULL,0,NULL))
-+        {
-+        /* pixDestroy(&pix); */
-+        if (out!=NULL)
-+            fprintf(out,"tesscapi:  Error during bitmap processing.\n");
-+        api->Clear();
-+        return(-1);
-+        }
-+    strncpy(outstr,api->GetUTF8Text(),maxlen-1);
-+    outstr[maxlen-1]='\0';
-+    api->Clear();
-+    return(0);
-+    }
-+
-+
-+int tess_capi_get_ocr_multiword(void *vapi,PIX *pix,int segmode,
-+                                int **left,int **top,int **right,int **bottom,
-+                                int **ybase,char **text,int *nw,
-+                                FILE *out)
-+
-+    {
-+    tesseract::TessBaseAPI *api;
-+    static int old_segmode=-1;
-+
-+    api=(tesseract::TessBaseAPI *)vapi;
-+    if (old_segmode != segmode)
-+        {
-+        old_segmode=segmode;
-+        api->SetPageSegMode((tesseract::PageSegMode)segmode);
-+        }
-+    if (!api->ProcessPage(pix,0,NULL,NULL,0,NULL))
-+        {
-+        if (out!=NULL)
-+            fprintf(out,"tesscapi:  Error during bitmap processing.\n");
-+        api->Clear();
-+        (*nw)=0;
-+        return(-1);
-+        }
-+    (*nw)=api->GetOCRWords(left,top,right,bottom,ybase,text);
-+    api->Clear();
-+    return(0);
-+    }
-+
-+
-+void tess_capi_end(void *vapi)
-+
-+    {
-+    tesseract::TessBaseAPI *api;
-+
-+    if (vapi==NULL)
-+        return;
-+    api=(tesseract::TessBaseAPI *)vapi;
-+    api->End();
-+    delete api;
-+    }
-diff --git a/src/api/tesseract.h b/src/api/tesseract.h
-new file mode 100644
-index 00000000..575948cc
---- /dev/null
-+++ b/src/api/tesseract.h
-@@ -0,0 +1,29 @@
-+/*
-+** Willus.com's Tesseract C Wrappers
-+**
-+** 6-8-12
-+**
-+*/
-+
-+#ifndef           _TESSERACT_H_
-+#define           _TESSERACT_H_
-+
-+//#include <leptonica.h>
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+void *tess_capi_init(char *datapath,char *language,int ocr_type,FILE *out,
-+                    char *initstr,int maxlen,int *status);
-+int tess_capi_get_ocr(void *api,PIX *pix,char *outstr,int maxlen,int segmode,FILE *out);
-+int tess_capi_get_ocr_multiword(void *vapi,PIX *pix,int segmode,
-+                                int **left,int **top,int **right,int **bottom,
-+                                int **ybase,char **text,int *nw,
-+                                FILE *out);
-+void tess_capi_end(void *api);
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif
-diff --git a/src/ccmain/tessedit.cpp b/src/ccmain/tessedit.cpp
-index 17f0951b..7af94ee2 100644
---- a/src/ccmain/tessedit.cpp
-+++ b/src/ccmain/tessedit.cpp
-@@ -101,6 +101,10 @@ bool Tesseract::init_tesseract_lang_data(
-         " to your \"tessdata\" directory.\n");
-     return false;
-   }
-+  /* willus mod */
-+  TFile fp;
-+  strncpy(fp.tfile_filename,tessdata_path.string(),511);
-+  fp.tfile_filename[511]='\0';
- #ifndef DISABLED_LEGACY_ENGINE
-   if (oem == OEM_DEFAULT) {
-     // Set the engine mode from availability, which can then be overridden by
-@@ -116,7 +120,6 @@ bool Tesseract::init_tesseract_lang_data(
- #endif  // ndef DISABLED_LEGACY_ENGINE
- 
-   // If a language specific config file (lang.config) exists, load it in.
--  TFile fp;
-   if (mgr->GetComponent(TESSDATA_LANG_CONFIG, &fp)) {
-     ParamUtils::ReadParamsFromFp(SET_PARAM_CONSTRAINT_NONE, &fp,
-                                  this->params());
-diff --git a/src/ccutil/ccutil.h b/src/ccutil/ccutil.h
-index 71e89c60..bdeccc14 100644
---- a/src/ccutil/ccutil.h
-+++ b/src/ccutil/ccutil.h
-@@ -80,6 +80,13 @@ class CCUtil {
-   // Member parameters.
-   // These have to be declared and initialized after params_ member, since
-   // params_ should be initialized before parameters are added to it.
-+/* willus mod */
-+/*
-+  #ifdef _WIN32
-+  STRING_VAR_H(tessedit_module_name, WINDLLNAME,
-+               "Module colocated with tessdata dir");
-+  #endif
-+*/
-   INT_VAR_H(ambigs_debug_level, 0, "Debug level for unichar ambiguities");
-   BOOL_VAR_H(use_definite_ambigs_for_classifier, false,
-              "Use definite ambiguities when running character classifier");
-diff --git a/src/ccutil/genericvector.h b/src/ccutil/genericvector.h
-index 3556d153..3a5e8662 100644
---- a/src/ccutil/genericvector.h
-+++ b/src/ccutil/genericvector.h
-@@ -382,7 +382,26 @@ inline bool LoadDataFromFile(const char* filename, GenericVector<char>* data) {
-       // reserve an extra byte in case caller wants to append a '\0' character
-       data->reserve(size + 1);
-       data->resize_no_init(size);
--      result = static_cast<long>(fread(&(*data)[0], 1, size, fp)) == size;
-+    /* willus mod Dec 2018--weird issue with Win XP and MinGW gcc 7.3.0 */
-+    /* Can't read entire file at once -- need to break up into smaller blocksize reads */
-+    {
-+    int frs,n;
-+    int blocksize;
-+    blocksize=1024*1024;
-+    for (n=0;1;)
-+        {
-+        int bs;
-+        bs= size-n > blocksize ? blocksize : size-n;
-+        frs=(int)fread(&(*data)[n],1,bs,fp);
-+        n+=frs;
-+        if (frs<bs || bs<blocksize || n>=size)
-+            break;
-+        }
-+    result = static_cast<long>((long)n==size);
-+    }
-+    /*
-+    result = static_cast<long>(fread(&(*data)[0], 1, size, fp)) == size;
-+    */
-     }
-     fclose(fp);
-   }
-diff --git a/src/ccutil/mainblk.cpp b/src/ccutil/mainblk.cpp
-index 52b04b04..80b26044 100644
---- a/src/ccutil/mainblk.cpp
-+++ b/src/ccutil/mainblk.cpp
-@@ -55,8 +55,22 @@ void CCUtil::main_setup(const char *argv0, const char *basename) {
- #if defined(_WIN32)
-   } else if (datadir == nullptr || _access(datadir.string(), 0) != 0) {
-     /* Look for tessdata in directory of executable. */
-+    /*
-+    char drive[_MAX_DRIVE];
-+    char dir[_MAX_DIR];
-+    */
-     char path[_MAX_PATH];
--    DWORD length = GetModuleFileName(nullptr, path, sizeof(path));
-+    int i;
-+    /* DWORD length = */ GetModuleFileName(nullptr, path, sizeof(path));
-+    /* willus mod--avoid _splitpath_s -- not in XP */
-+    for (i=strlen(path)-1;i>=0 && path[i]!='/' && path[i]!='\\';i--);
-+    if (i>=0)
-+        {
-+        path[i]='\0';
-+        datadir=path;
-+        datadir += "/tessdata";
-+        }
-+    /*
-     if (length > 0 && length < sizeof(path)) {
-       char* separator = std::strrchr(path, '\\');
-       if (separator != nullptr) {
-@@ -65,6 +79,7 @@ void CCUtil::main_setup(const char *argv0, const char *basename) {
-         datadir += "/tessdata";
-       }
-     }
-+    */
- #endif /* _WIN32 */
- #if defined(TESSDATA_PREFIX)
-   } else {
-diff --git a/src/ccutil/params.cpp b/src/ccutil/params.cpp
-index 00bf2563..486c5ce0 100644
---- a/src/ccutil/params.cpp
-+++ b/src/ccutil/params.cpp
-@@ -82,7 +82,8 @@ bool ParamUtils::ReadParamsFromFp(SetParamConstraint constraint, TFile *fp,
- 
-       if (!foundit) {
-         anyerr = true;         // had an error
--        tprintf("Warning: Parameter not found: %s\n", line);
-+        /* willus mod */
-+        tprintf("Tesseract warning: Parameter %s not found in file %s.\n",line,fp->tfile_filename);
-       }
-     }
-   }
-diff --git a/src/ccutil/serialis.cpp b/src/ccutil/serialis.cpp
-index 7def011f..6107a494 100644
---- a/src/ccutil/serialis.cpp
-+++ b/src/ccutil/serialis.cpp
-@@ -201,6 +201,9 @@ bool TFile::Open(const STRING& filename, FileReader reader) {
-   offset_ = 0;
-   is_writing_ = false;
-   swap_ = false;
-+  /* willus mod */
-+  strncpy(tfile_filename,filename.string(),511);
-+  tfile_filename[511]='\0';
-   if (reader == nullptr)
-     return LoadDataFromFile(filename, data_);
-   else
-diff --git a/src/ccutil/serialis.h b/src/ccutil/serialis.h
-index 095b9227..4cc8251e 100644
---- a/src/ccutil/serialis.h
-+++ b/src/ccutil/serialis.h
-@@ -77,6 +77,8 @@ class TFile {
-  public:
-   TFile();
-   ~TFile();
-+  /* willus mod */
-+  char tfile_filename[512];
- 
-   // All the Open methods load the whole file into memory for reading.
-   // Opens a file with a supplied reader, or nullptr to use the default.
-diff --git a/src/lstm/input.cpp b/src/lstm/input.cpp
-index 73b584b3..0b0b54c3 100644
---- a/src/lstm/input.cpp
-+++ b/src/lstm/input.cpp
-@@ -93,8 +93,11 @@ Pix* Input::PrepareLSTMInputs(const ImageData& image_data,
-     return nullptr;
-   }
-   if (width < min_width || height < min_width) {
-+    /* willus mod -- no warning */
-+    /*
-     tprintf("Image too small to scale!! (%dx%d vs min width of %d)\n", width,
-             height, min_width);
-+    */
-     pixDestroy(&pix);
-     return nullptr;
-   }
--- 
-2.22.0
-
diff --git a/pkgs/applications/misc/keepassx/community.nix b/pkgs/applications/misc/keepassx/community.nix
index 469b4cf5ea6..f0131712b23 100644
--- a/pkgs/applications/misc/keepassx/community.nix
+++ b/pkgs/applications/misc/keepassx/community.nix
@@ -6,6 +6,7 @@
 , qttools
 , darwin
 
+, asciidoctor
 , curl
 , glibcLocales
 , libXi
@@ -39,13 +40,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "keepassxc";
-  version = "2.5.4";
+  version = "2.6.1";
 
   src = fetchFromGitHub {
     owner = "keepassxreboot";
     repo = "keepassxc";
     rev = version;
-    sha256 = "1xih9q1pxszalc0l29fmjxwn1vrrrrbnhc8gmi8brw5sclhbs6bh";
+    sha256 = "0wgn0glmcxaa670bpxh7n7abjlxcx4h1rl1169cmah0ddxnxnxpq";
   };
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang [
@@ -63,11 +64,6 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./darwin.patch
-    # use wl-copy on Wayland - can be dropped with the next version update
-    (fetchpatch {
-      url = "https://github.com/keepassxreboot/keepassxc/commit/6128e5d58294f26411160f44da91087ebe7f4b07.patch";
-      sha256 = "16q0h7kijqjdbskmk4ar6p3g8vcxr0bq1zrlq2bk16pk10nv4bh1";
-    })
   ];
 
   cmakeFlags = [
@@ -97,6 +93,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake wrapQtAppsHook qttools ];
 
   buildInputs = [
+    asciidoctor
     curl
     glibcLocales
     libXi
diff --git a/pkgs/applications/misc/khal/default.nix b/pkgs/applications/misc/khal/default.nix
index 323fc501c84..257cacf69a0 100644
--- a/pkgs/applications/misc/khal/default.nix
+++ b/pkgs/applications/misc/khal/default.nix
@@ -2,21 +2,14 @@
 
 with python3.pkgs; buildPythonApplication rec {
   pname = "khal";
-  version = "0.10.1";
+  version = "0.10.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1r8bkgjwkh7i8ygvsv51h1cnax50sb183vafg66x5snxf3dgjl6l";
+    sha256 = "11qhrga44knlnp88py9p547d4nr5kn041d2nszwa3dqw7mf22ks9";
   };
 
-  # Include a khal.desktop file via upstream commit.
-  # This patch should be removed when updating to the next version, probably.
   patches = [
-    (fetchpatch {
-      name = "add-khal-dot-desktop.patch";
-      url = "https://github.com/pimutils/khal/commit/1f93d238fec7c934dd2f8e48f54925d22130e3aa.patch";
-      sha256 = "06skn3van7zd93348fc6axllx71ckkc7h2zljqlvwa339vca608c";
-    })
     ./skip-broken-test.patch
   ];
 
diff --git a/pkgs/applications/misc/khal/skip-broken-test.patch b/pkgs/applications/misc/khal/skip-broken-test.patch
index c3c982547ae..fc37f6acc86 100644
--- a/pkgs/applications/misc/khal/skip-broken-test.patch
+++ b/pkgs/applications/misc/khal/skip-broken-test.patch
@@ -1,3 +1,15 @@
+diff --git a/tests/cli_test.py b/tests/cli_test.py
+index 5e354a5..d8fbcd5 100644
+--- a/tests/cli_test.py
++++ b/tests/cli_test.py
+@@ -493,6 +493,7 @@ def test_import_invalid_choice_and_prefix(runner):
+     assert result.output == '09.04.-09.04. An Event\n'
+ 
+ 
++@pytest.mark.skip(reason="Mocking breaks in this testcase")
+ def test_import_from_stdin(runner, monkeypatch):
+     ics_data = 'This is some really fake icalendar data'
+ 
 diff --git a/tests/ui/test_editor.py b/tests/ui/test_editor.py
 index 27b7fa5..5978d72 100644
 --- a/tests/ui/test_editor.py
diff --git a/pkgs/applications/misc/khard/default.nix b/pkgs/applications/misc/khard/default.nix
index 98cd8a5a4fb..a3e4c1309ff 100644
--- a/pkgs/applications/misc/khard/default.nix
+++ b/pkgs/applications/misc/khard/default.nix
@@ -1,12 +1,12 @@
 { stdenv, glibcLocales, python3 }:
 
 python3.pkgs.buildPythonApplication rec {
-  version = "0.16.1";
+  version = "0.17.0";
   pname = "khard";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "0fg4qh5gzki5wg958wlpc8a2icnk74gzg33lqxjm755cfnjng7qd";
+    sha256 = "062nv4xkfsjc11k9m52dh6xjn9z68a4a6x1s8z05wwv4jbp1lkhn";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/applications/misc/kitty/default.nix b/pkgs/applications/misc/kitty/default.nix
index 85e9795a036..65d7df72489 100644
--- a/pkgs/applications/misc/kitty/default.nix
+++ b/pkgs/applications/misc/kitty/default.nix
@@ -20,14 +20,14 @@
 with python3Packages;
 buildPythonApplication rec {
   pname = "kitty";
-  version = "0.18.1";
+  version = "0.18.3";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "kovidgoyal";
     repo = "kitty";
     rev = "v${version}";
-    sha256 = "1g4mfgygyl143k0k6d3cb8b2l05ahiamlcqs1iqi66pc73cax4z6";
+    sha256 = "0y05bw6d1m79dyhm7b6lk6wy82pmy2s9jhf01kf8gr2p0rjjp9yl";
   };
 
   buildInputs = [
@@ -85,9 +85,15 @@ buildPythonApplication rec {
 
   checkInputs = [ pillow ];
 
-  checkPhase = ''
-    ${python.interpreter} test.py
-  '';
+  checkPhase =
+    let buildBinPath =
+      if stdenv.isDarwin
+        then "kitty.app/Contents/MacOS"
+        else "linux-package/bin";
+    in
+    ''
+      env PATH="${buildBinPath}:$PATH" ${python.interpreter} test.py
+    '';
 
   installPhase = ''
     runHook preInstall
@@ -130,6 +136,6 @@ buildPythonApplication rec {
     license = licenses.gpl3;
     changelog = "https://sw.kovidgoyal.net/kitty/changelog.html";
     platforms = platforms.darwin ++ platforms.linux;
-    maintainers = with maintainers; [ tex rvolosatovs ma27 Luflosi ];
+    maintainers = with maintainers; [ tex rvolosatovs Luflosi ];
   };
 }
diff --git a/pkgs/applications/misc/klayout/default.nix b/pkgs/applications/misc/klayout/default.nix
index 784656b8b96..5f6c679f3ba 100644
--- a/pkgs/applications/misc/klayout/default.nix
+++ b/pkgs/applications/misc/klayout/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "klayout";
-  version = "0.26.5";
+  version = "0.26.6";
 
   src = fetchFromGitHub {
     owner = "KLayout";
     repo = "klayout";
     rev = "v${version}";
-    sha256 = "1zv8yazhdyxm33vdn0m5cciw7zzg45nwdg4rdcsydnrwg7d667r6";
+    sha256 = "0z17pdjdc2r2m5yi5bfz504dzzs978z8p6bhlf08v2npvigp8vz1";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/misc/kondo/default.nix b/pkgs/applications/misc/kondo/default.nix
index 9df4c59717c..6b23d1d0437 100644
--- a/pkgs/applications/misc/kondo/default.nix
+++ b/pkgs/applications/misc/kondo/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kondo";
-  version = "0.3";
+  version = "0.4";
 
   src = fetchFromGitHub {
     owner = "tbillington";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1rrg0xfm3vn5jh861r4ismrga673g7v6qnzl2v1haflgjhvdazwd";
+    sha256 = "0kl2zn6ir3w75ny25ksgxl93vlyb13gzx2795zyimqqnsrdpbbrf";
   };
 
-  cargoSha256 = "1y7g8gw9hsm997d6i99c3dj2gb8y8cgws5001n85f9bpnlvvmf9y";
+  cargoSha256 = "1ax81a2828z3yla1psg5xi8ild65m6zcsvx48ncz902mpzqlj92b";
 
   meta = with stdenv.lib; {
     description = "Save disk space by cleaning unneeded files from software projects";
diff --git a/pkgs/applications/misc/krename/default.nix b/pkgs/applications/misc/krename/default.nix
index 816b352460b..578c56a748a 100644
--- a/pkgs/applications/misc/krename/default.nix
+++ b/pkgs/applications/misc/krename/default.nix
@@ -23,6 +23,8 @@ in mkDerivation rec {
 
   propagatedBuildInputs = [ kconfig kcrash kinit kjsembed ];
 
+  NIX_LDFLAGS = "-ltag";
+
   meta = with lib; {
     description = "A powerful batch renamer for KDE";
     homepage = "https://kde.org/applications/utilities/krename/";
diff --git a/pkgs/applications/misc/lutris/default.nix b/pkgs/applications/misc/lutris/default.nix
index fccb6ef49a9..b3a68cffeff 100644
--- a/pkgs/applications/misc/lutris/default.nix
+++ b/pkgs/applications/misc/lutris/default.nix
@@ -8,7 +8,6 @@
 , gobject-introspection
 , gst_all_1
 , gtk3
-, libgnome-keyring
 , libnotify
 , pango
 , webkitgtk
@@ -22,6 +21,7 @@
 , pygobject3
 , pyyaml
 , requests
+, keyring
 
 # commands that lutris needs
 , xrandr
@@ -37,6 +37,7 @@
 , wine
 , fluidsynth
 , xorgserver
+, xorg
 }:
 
 let
@@ -55,6 +56,8 @@ let
     wine
     fluidsynth
     xorgserver
+    xorg.setxkbmap
+    xorg.xkbcomp
   ];
 
   gstDeps = with gst_all_1; [
@@ -68,13 +71,13 @@ let
 
 in buildPythonApplication rec {
   pname = "lutris-original";
-  version = "0.5.6";
+  version = "0.5.7.1";
 
   src = fetchFromGitHub {
     owner = "lutris";
     repo = "lutris";
     rev = "v${version}";
-    sha256 = "1f78qhyy8xqdg0rhxcwkap1bmg5mfxhb8qw1vbpxr6g62ajpwksa";
+    sha256 = "12ispwkbbm5aq263n3bdjmjfkpwplizacnqs2c0wnag4zj4kpm29";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
@@ -85,14 +88,13 @@ in buildPythonApplication rec {
     gnome-desktop
     gobject-introspection
     gtk3
-    libgnome-keyring
     libnotify
     pango
     webkitgtk
   ] ++ gstDeps;
 
   propagatedBuildInputs = [
-    evdev distro pyyaml pygobject3 requests pillow dbus-python
+    evdev distro pyyaml pygobject3 requests pillow dbus-python keyring
   ];
 
   # avoid double wrapping
diff --git a/pkgs/applications/misc/lutris/chrootenv.nix b/pkgs/applications/misc/lutris/fhsenv.nix
index 6fad8b23d33..2b656775ab5 100644
--- a/pkgs/applications/misc/lutris/chrootenv.nix
+++ b/pkgs/applications/misc/lutris/fhsenv.nix
@@ -97,7 +97,7 @@ in buildFHSUserEnv {
     libcap libtiff libva libgphoto2 libxslt libsndfile giflib zlib glib
     alsaLib zziplib bash dbus keyutils zip cabextract freetype unzip coreutils
     readline gcc SDL SDL2 curl graphite2 gtk2 gtk3 udev ncurses wayland libglvnd
-    vulkan-loader xdg_utils sqlite gnutls p11-kit libbsd
+    vulkan-loader xdg_utils sqlite gnutls p11-kit libbsd harfbuzz
 
     # PCSX2 // TODO: "libgobject-2.0.so.0: wrong ELF class: ELFCLASS64"
 
diff --git a/pkgs/applications/misc/lyx/default.nix b/pkgs/applications/misc/lyx/default.nix
index 4f6b73d592c..34e7e145e74 100644
--- a/pkgs/applications/misc/lyx/default.nix
+++ b/pkgs/applications/misc/lyx/default.nix
@@ -3,12 +3,12 @@
 }:
 
 mkDerivation rec {
-  version = "2.3.5.1";
+  version = "2.3.5.2";
   pname = "lyx";
 
   src = fetchurl {
     url = "ftp://ftp.lyx.org/pub/lyx/stable/2.3.x/${pname}-${version}.tar.xz";
-    sha256 = "0mv32s26igm0pd8vs7d2mk1240dpr83y0a2wyh3xz6b67ph0w157";
+    sha256 = "1pwdh0ljd7lm5a83vsqmp4695irhig07wxa90jc23ng5gap589na";
   };
 
   # LaTeX is used from $PATH, as people often want to have it with extra pkgs
diff --git a/pkgs/applications/misc/makeself/default.nix b/pkgs/applications/misc/makeself/default.nix
index 6fcd86596fb..993596aabe1 100644
--- a/pkgs/applications/misc/makeself/default.nix
+++ b/pkgs/applications/misc/makeself/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, which }:
 
 stdenv.mkDerivation rec {
   version = "2.4.2";
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
   checkTarget = "test";
+  checkInputs = [ which ];
 
   installPhase = ''
     mkdir -p $out/{bin,share/{${pname}-${version},man/man1}}
diff --git a/pkgs/applications/misc/marktext/default.nix b/pkgs/applications/misc/marktext/default.nix
index 5813fc15c0d..e7600752ce2 100644
--- a/pkgs/applications/misc/marktext/default.nix
+++ b/pkgs/applications/misc/marktext/default.nix
@@ -1,19 +1,25 @@
-{ appimageTools, fetchurl, lib }:
+{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3 }:
 
 let
   pname = "marktext";
-  version = "v0.16.0-rc.2";
+  version = "v0.16.2";
 in
 appimageTools.wrapType2 rec {
   name = "${pname}-${version}-binary";
 
   src = fetchurl {
     url = "https://github.com/marktext/marktext/releases/download/${version}/marktext-x86_64.AppImage";
-    sha256 = "1w1mxa1j94zr36xhvlhzq8d77pi359vdxqb2j8mnz2bib9khxk9k";
+    sha256 = "0ivf9lvv2jk7dvxmqprzcsxgya3617xmx5bppjvik44z14b5x8r7";
   };
 
   profile = ''
     export LC_ALL=C.UTF-8
+  ''
+  # Fixes file open dialog error
+  #     GLib-GIO-ERROR **: 20:36:48.243: No GSettings schemas are installed on the system
+  # See https://github.com/NixOS/nixpkgs/pull/83701#issuecomment-608034097
+  + ''
+    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 32bit needed
diff --git a/pkgs/applications/misc/masterpdfeditor/default.nix b/pkgs/applications/misc/masterpdfeditor/default.nix
index 5df4a1b8d93..d541c5e1289 100644
--- a/pkgs/applications/misc/masterpdfeditor/default.nix
+++ b/pkgs/applications/misc/masterpdfeditor/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "masterpdfeditor";
-  version = "5.4.38";
+  version = "5.6.09";
 
   src = fetchurl {
     url = "https://code-industry.net/public/master-pdf-editor-${version}-qt5.amd64.tar.gz";
-    sha256 = "0fidy8gd4mqvyfgmrwdiz8z53dyzihqqhgfrffj0z0idm2zi4mcq";
+    sha256 = "0v9j6fwr0xl03kr77vf4wdb06zlplmn4mr3jyzxhvs8a77scmfzb";
   };
 
   nativeBuildInputs = [ autoPatchelfHook wrapQtAppsHook ];
diff --git a/pkgs/applications/misc/mediainfo-gui/default.nix b/pkgs/applications/misc/mediainfo-gui/default.nix
index 79dcf105361..96833bb25d3 100644
--- a/pkgs/applications/misc/mediainfo-gui/default.nix
+++ b/pkgs/applications/misc/mediainfo-gui/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, libmediainfo, wxGTK
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, libmediainfo, wxGTK30-gtk3
 , desktop-file-utils, libSM, imagemagick }:
 
 stdenv.mkDerivation rec {
-  version = "20.03";
+  version = "20.08";
   pname = "mediainfo-gui";
   src = fetchurl {
     url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
-    sha256 = "1f1shnycf0f1fwka9k9s250l228xjkg0k4k73h8bpld8msighgnw";
+    sha256 = "1baf2dj5s3g1x4ssqli1b2r1203syk42m09zhp36qcinmfixv11l";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ libzen libmediainfo wxGTK desktop-file-utils libSM
+  buildInputs = [ libzen libmediainfo wxGTK30-gtk3 desktop-file-utils libSM
                   imagemagick ];
 
   sourceRoot = "./MediaInfo/Project/GNU/GUI/";
diff --git a/pkgs/applications/misc/mediainfo/default.nix b/pkgs/applications/misc/mediainfo/default.nix
index 1ed1ef4afb5..09f20a9ba5d 100644
--- a/pkgs/applications/misc/mediainfo/default.nix
+++ b/pkgs/applications/misc/mediainfo/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, libmediainfo, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "20.03";
+  version = "20.08";
   pname = "mediainfo";
   src = fetchurl {
     url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
-    sha256 = "1f1shnycf0f1fwka9k9s250l228xjkg0k4k73h8bpld8msighgnw";
+    sha256 = "1baf2dj5s3g1x4ssqli1b2r1203syk42m09zhp36qcinmfixv11l";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/applications/misc/megasync/default.nix b/pkgs/applications/misc/megasync/default.nix
index e04833cd4b2..d5da4c7d773 100644
--- a/pkgs/applications/misc/megasync/default.nix
+++ b/pkgs/applications/misc/megasync/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "megasync";
-  version = "4.3.0.8";
+  version = "4.3.1.0";
 
   src = fetchFromGitHub {
     owner = "meganz";
     repo = "MEGAsync";
     rev = "v${version}_Linux";
-    sha256 = "1rhxkc6j3039rcsi8cxy3n00g6w7acir82ymnksbpsnp4yxqv5r3";
+    sha256 = "0b68wpif8a0wf1vfn1nr19dmz8f31dprb27jpldxrxhyfslc43yj";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/misc/minder/default.nix b/pkgs/applications/misc/minder/default.nix
index f391c3621a1..14b9ebfe4c7 100644
--- a/pkgs/applications/misc/minder/default.nix
+++ b/pkgs/applications/misc/minder/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "minder";
-  version = "1.9.0";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner = "phase1geo";
     repo = pname;
     rev = version;
-    sha256 = "1j3jk76rd0sc9sd9zrd24q3636559wd809yfnb9bv5jmvn9s1bkz";
+    sha256 = "0lhwwx515f0ycpinkhgbjnik7dj2c7fckikbgzwkzzs25xqp9ayj";
   };
 
   nativeBuildInputs = [ pkgconfig meson ninja python3 wrapGAppsHook vala shared-mime-info ];
diff --git a/pkgs/applications/misc/mlterm/default.nix b/pkgs/applications/misc/mlterm/default.nix
index f58fb13e61f..7c7906fc841 100644
--- a/pkgs/applications/misc/mlterm/default.nix
+++ b/pkgs/applications/misc/mlterm/default.nix
@@ -3,6 +3,8 @@
 , harfbuzz #substituting glyphs with opentype fonts
 , fribidi, m17n_lib #bidi and encoding
 , openssl, libssh2 #build-in ssh
+, fcitx, ibus, uim #IME
+, wrapGAppsHook #color picker in mlconfig
 }:
 
 stdenv.mkDerivation rec {
@@ -14,10 +16,11 @@ stdenv.mkDerivation rec {
     sha256 = "17h6j4nmbyvsx2shm8mqm7smzq9i7mbqxjw19c2m0rhf5yzqhr3k";
   };
 
-  nativeBuildInputs = [ pkgconfig autoconf ];
+  nativeBuildInputs = [ pkgconfig autoconf wrapGAppsHook ];
   buildInputs = [
     libX11 gdk-pixbuf.dev cairo libXft gtk3 vte
     harfbuzz fribidi m17n_lib openssl libssh2
+    fcitx ibus uim
   ];
 
   #bad configure.ac and Makefile.in everywhere
diff --git a/pkgs/applications/misc/moolticute/default.nix b/pkgs/applications/misc/moolticute/default.nix
index efd9cc4c021..c815a74e019 100644
--- a/pkgs/applications/misc/moolticute/default.nix
+++ b/pkgs/applications/misc/moolticute/default.nix
@@ -9,13 +9,13 @@
 
 mkDerivation rec {
   pname = "moolticute";
-  version = "0.43.19";
+  version = "0.44.0";
 
   src = fetchFromGitHub {
     owner = "mooltipass";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1rpkiyhy7z5zq0rmn0kj2kva57bnhkhvaplrlhfczv99h1kwsixg";
+    sha256 = "1xlbhx6f1ysx8gka8g67271whzhkzsnkavpq3x58hdxr8v88khby";
   };
 
   outputs = [ "out" "udev" ];
diff --git a/pkgs/applications/misc/mop/default.nix b/pkgs/applications/misc/mop/default.nix
index 81c23658965..be817608924 100644
--- a/pkgs/applications/misc/mop/default.nix
+++ b/pkgs/applications/misc/mop/default.nix
@@ -26,6 +26,5 @@ buildGoPackage rec {
     description = "Simple stock tracker implemented in go";
     homepage =  "https://github.com/mop-tracker/mop";
     license = licenses.mit;
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/misc/mysql-workbench/default.nix b/pkgs/applications/misc/mysql-workbench/default.nix
index 07ca64518e5..63d7077d32e 100644
--- a/pkgs/applications/misc/mysql-workbench/default.nix
+++ b/pkgs/applications/misc/mysql-workbench/default.nix
@@ -45,11 +45,11 @@ let
   inherit (python2.pkgs) paramiko pycairo pyodbc;
 in stdenv.mkDerivation rec {
   pname = "mysql-workbench";
-  version = "8.0.20";
+  version = "8.0.21";
 
   src = fetchurl {
     url = "http://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-${version}-src.tar.gz";
-    sha256 = "0c0ig2fqfpli7fwb4v4iwvfh4szzj3grx8j9rbh40kllkc8v5qh6";
+    sha256 = "0rqgr1dcbf6yp60hninbw5dnwykx5ngbyhhx0sbhgv0m0cq5a44h";
   };
 
   patches = [
@@ -142,7 +142,7 @@ in stdenv.mkDerivation rec {
     "-DMySQL_CONFIG_PATH=${mysql}/bin/mysql_config"
     "-DIODBC_CONFIG_PATH=${libiodbc}/bin/iodbc-config"
     "-DWITH_ANTLR_JAR=${antlr4_7.jarLocation}"
-    # mysql-workbench 8.0.20 depends on libmysqlconnectorcpp 1.1.8.
+    # mysql-workbench 8.0.21 depends on libmysqlconnectorcpp 1.1.8.
     # Newer versions of connector still provide the legacy library when enabled
     # but the headers are in a different location.
     "-DMySQLCppConn_INCLUDE_DIR=${libmysqlconnectorcpp}/include/jdbc"
diff --git a/pkgs/applications/misc/navi/default.nix b/pkgs/applications/misc/navi/default.nix
new file mode 100644
index 00000000000..62951f3fcab
--- /dev/null
+++ b/pkgs/applications/misc/navi/default.nix
@@ -0,0 +1,29 @@
+{ fetchFromGitHub, fzf, lib, makeWrapper, rustPlatform, wget }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "navi";
+  version = "2.10.0";
+
+  src = fetchFromGitHub {
+    owner = "denisidoro";
+    repo = "navi";
+    rev = "v${version}";
+    sha256 = "1fpfc3ikb6rhb8m0dp9ybh46mnqaw361rrsbv6yrivwfm3zc4w2w";
+  };
+
+  cargoSha256 = "0klizxrb92h7qfxs89m08ksdq698wx4kxsdhqhr5ld9dy3b6ks32";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/navi --prefix PATH : ${lib.makeBinPath [ fzf wget ]}
+  '';
+
+  meta = with lib; {
+    description = "An interactive cheatsheet tool for the command-line and application launchers";
+    homepage = "https://github.com/denisidoro/navi";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ cust0dian ];
+  };
+}
diff --git a/pkgs/applications/misc/netsurf/libnsbmp/default.nix b/pkgs/applications/misc/netsurf/libnsbmp/default.nix
index a553eb3e715..8a7e8b60741 100644
--- a/pkgs/applications/misc/netsurf/libnsbmp/default.nix
+++ b/pkgs/applications/misc/netsurf/libnsbmp/default.nix
@@ -6,11 +6,11 @@ stdenv.mkDerivation rec {
 
   name = "netsurf-${libname}-${version}";
   libname = "libnsbmp";
-  version = "0.1.5";
+  version = "0.1.6";
 
   src = fetchurl {
     url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
-    sha256 = "0lib2m07d1i0k80m4blkwnj0g7rha4jbm5vrgd0wwbkyfa0hvk35";
+    sha256 = "0krjg69a2amxjsahdgm3wmy9ngnyr3gfs2a1zhdlbvb0z1jr7i3r";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/misc/nimmm/default.nix b/pkgs/applications/misc/nimmm/default.nix
index 16400d76f64..383057ca655 100644
--- a/pkgs/applications/misc/nimmm/default.nix
+++ b/pkgs/applications/misc/nimmm/default.nix
@@ -36,8 +36,6 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ nim ];
   buildInputs = [ termbox pcre ];
 
-  NIX_LDFLAGS = "-lpcre";
-
   buildPhase = ''
     export HOME=$TMPDIR;
     nim -p:${noise} -p:${nimbox} -p:${lscolors}/src c -d:release src/nimmm.nim
diff --git a/pkgs/applications/misc/nnn/default.nix b/pkgs/applications/misc/nnn/default.nix
index 95920362a5f..9ec5018c4e3 100644
--- a/pkgs/applications/misc/nnn/default.nix
+++ b/pkgs/applications/misc/nnn/default.nix
@@ -4,13 +4,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "nnn";
-  version = "3.2";
+  version = "3.4";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "13p3379c26l57121ymx0kw7afh51zv614p57di311d2a41jaz5cw";
+    sha256 = "0lyrpyhzzs2bdgx3ifq1c5dq3s2v30xdiaq0j8zjc64s6bghfxnd";
   };
 
   configFile = optionalString (conf != null) (builtins.toFile "nnn.h" conf);
diff --git a/pkgs/applications/misc/notejot/default.nix b/pkgs/applications/misc/notejot/default.nix
index 3498ef27867..d5d6aea4946 100644
--- a/pkgs/applications/misc/notejot/default.nix
+++ b/pkgs/applications/misc/notejot/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, vala, pkgconfig, meson, ninja, python3, pantheon
+{ stdenv, fetchFromGitHub, nix-update-script, vala, pkgconfig, meson, ninja, python3, pantheon
 , gtk3, gtksourceview, json-glib, libgee, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/misc/nwg-launchers/default.nix b/pkgs/applications/misc/nwg-launchers/default.nix
new file mode 100644
index 00000000000..833a4584412
--- /dev/null
+++ b/pkgs/applications/misc/nwg-launchers/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, gtkmm3
+, meson
+, ninja
+, nlohmann_json
+, pkgconfig
+, swaylock
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nwg-launchers";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "nwg-piotr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1mlym0mpg6njwgwniwlk95fk6wfwlzq8nwmkb5mkjlm2nqv5bdv1";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkgconfig
+    cmake
+    makeWrapper
+  ];
+
+  buildInputs = [
+    gtkmm3
+    nlohmann_json
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/nwgbar \
+      --prefix PATH : "${swaylock}/bin"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "GTK-based launchers: application grid, button bar, dmenu for sway and other window managers";
+    homepage = "https://github.com/nwg-piotr/nwg-launchers";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ bbigras ];
+  };
+}
diff --git a/pkgs/applications/misc/obinskit/default.nix b/pkgs/applications/misc/obinskit/default.nix
index bbaa135f47e..dc03b9b4f93 100644
--- a/pkgs/applications/misc/obinskit/default.nix
+++ b/pkgs/applications/misc/obinskit/default.nix
@@ -1,4 +1,5 @@
 { stdenv
+, lib
 , fetchurl
 , libxkbcommon
 , systemd
@@ -16,7 +17,7 @@ let
     genericName = "Obinskit keyboard configurator";
     categories = "Utility";
   };
-
+  electron = electron_3;
 in
 stdenv.mkDerivation rec {
   pname = "obinskit";
@@ -48,9 +49,9 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    makeWrapper ${electron_3}/bin/electron $out/bin/${pname} \
+    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
       --add-flags $out/opt/obinskit/resources/app.asar \
-      --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib libxkbcommon systemd.lib xorg.libXt ]}"
+      --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib libxkbcommon (lib.getLib systemd) xorg.libXt ]}"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/obsidian/default.nix b/pkgs/applications/misc/obsidian/default.nix
index 396a7845112..98eb76d9be1 100644
--- a/pkgs/applications/misc/obsidian/default.nix
+++ b/pkgs/applications/misc/obsidian/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "obsidian";
-  version = "0.7.3";
+  version = "0.8.2";
 in
 
 appimageTools.wrapType2 rec {
@@ -11,7 +11,7 @@ appimageTools.wrapType2 rec {
 
   src = fetchurl {
     url = "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/Obsidian-${version}.AppImage";
-    sha256 = "1qiag5szagalik72j8s2dmp7075g48jxgcdy0wgd02kfv90ai0y6";
+    sha256 = "04jgsd97ivdm84diiafwqxzc9vvga1gsr7xicmqhdq05ns3xsfyz";
   };
 
   profile = ''
diff --git a/pkgs/applications/misc/octoprint/default.nix b/pkgs/applications/misc/octoprint/default.nix
index 793ea927a01..82cdf18b484 100644
--- a/pkgs/applications/misc/octoprint/default.nix
+++ b/pkgs/applications/misc/octoprint/default.nix
@@ -1,114 +1,172 @@
-{ pkgs, stdenv, lib, fetchFromGitHub, python3
-# To include additional plugins, pass them here as an overlay.
+{ pkgs
+, stdenv
+, lib
+, fetchFromGitHub
+, python3
+  # To include additional plugins, pass them here as an overlay.
 , packageOverrides ? self: super: {}
 }:
 let
   mkOverride = attrname: version: sha256:
-    self: super: {
-      ${attrname} = super.${attrname}.overridePythonAttrs (oldAttrs: {
+  self: super: {
+    ${attrname} = super.${attrname}.overridePythonAttrs (
+      oldAttrs: {
         inherit version;
         src = oldAttrs.src.override {
           inherit version sha256;
         };
-      });
-    };
+      }
+    );
+  };
 
   py = python3.override {
     self = py;
-    packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) ([
-      (mkOverride "flask"            "0.12.5" "fac2b9d443e49f7e7358a444a3db5950bdd0324674d92ba67f8f1f15f876b14f")
-      (mkOverride "flask_assets"     "0.12"   "0ivqsihk994rxw58vdgzrx4d77d7lpzjm4qxb38hjdgvi5xm4cb0")
-      (mkOverride "flaskbabel"       "0.12.2" "11jwp8vvq1gnm31qh6ihy2h393hy18yn9yjp569g60r0wj1x2sii")
-      (mkOverride "flask_login"      "0.4.1"  "1v2j8zd558xfmgn3rfbw0xz4vizjcnk8kqw52q4f4d9ygfnc25f8")
-      (mkOverride "markdown"         "3.1.1"  "2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a")
-      (mkOverride "tornado"          "4.5.3"  "02jzd23l4r6fswmwxaica9ldlyc2p6q8dk6dyff7j58fmdzf853d")
-      (mkOverride "psutil"           "5.6.7"  "ffad8eb2ac614518bbe3c0b8eb9dffdb3a8d2e3a7d5da51c5b974fb723a5c5aa")
-      (mkOverride "watchdog"         "0.9.0"  "07cnvvlpif7a6cg4rav39zq8fxa5pfqawchr46433pij0y6napwn")
-      (mkOverride "werkzeug"         "0.16.1" "010zmhyfbp4d56c1rgalwi188imjlkv9g7rm25jrvify6xnqalxk")
-      (mkOverride "websocket_client" "0.56.0" "0fpxjyr74klnyis3yf6m54askl0h5dchxcwbfjsq92xng0455m8z")
-      (mkOverride "wrapt"            "1.11.2" "1q81762dgsgrd12f8qc39zk8s5wll3m5xc32jdmlf6cls4gh4njn")
+    packageOverrides = lib.foldr lib.composeExtensions (self: super: {}) (
+      [
+        # the following dependencies are non trivial to update since later versions introduce backwards incompatible
+        # changes that might affect plugins, or due to other observed problems
+        (mkOverride "markupsafe" "1.1.1" "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b")
+        (mkOverride "rsa" "4.0" "1a836406405730121ae9823e19c6e806c62bbad73f890574fff50efa4122c487")
+        (mkOverride "markdown" "3.1.1" "2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a")
+        (mkOverride "tornado" "5.1.1" "4e5158d97583502a7e2739951553cbd88a72076f152b4b11b64b9a10c4c49409")
+        (mkOverride "unidecode" "0.04.21" "280a6ab88e1f2eb5af79edff450021a0d3f0448952847cd79677e55e58bad051")
+        (mkOverride "sarge" "0.1.5.post0" "1c1ll7pys9vra5cfi8jxlgrgaql6c27l6inpy15aprgqhc4ck36s")
 
-      # Octoprint holds back jinja2 to 2.8.1 due to breaking changes.
-      # This old version does not have updated test config for pytest 4,
-      # and pypi tarball doesn't contain tests dir anyways.
-      (self: super: {
-        jinja2 = super.jinja2.overridePythonAttrs (oldAttrs: rec {
-          version = "2.8.1";
-          src = oldAttrs.src.override {
-            inherit version;
-            sha256 = "14aqmhkc9rw5w0v311jhixdm6ym8vsm29dhyxyrjfqxljwx1yd1m";
-          };
-          doCheck = false;
-        });
+        # Built-in dependency
+        (
+          self: super: {
+            octoprint-filecheck = self.buildPythonPackage rec {
+              pname = "OctoPrint-FileCheck";
+              version = "2020.08.07";
 
-        httpretty = super.httpretty.overridePythonAttrs (oldAttrs: rec {
-          doCheck = false;
-        });
+              src = fetchFromGitHub {
+                owner = "OctoPrint";
+                repo = "OctoPrint-FileCheck";
+                rev = version;
+                sha256 = "05ys05l5x7d2bkg3yqrga6m65v3g5fcnnzbfab7j9w2pzjdapx5b";
+              };
+              doCheck = false;
+            };
+          }
+        )
 
-        celery = super.celery.overridePythonAttrs (oldAttrs: rec {
-          doCheck = false;
-        });
-      })
-      (self: super: {
-        octoprint = self.buildPythonPackage rec {
-          pname = "OctoPrint";
-          version = "1.4.0";
+        # Built-in dependency
+        (
+          self: super: {
+            octoprint-firmwarecheck = self.buildPythonPackage rec {
+              pname = "OctoPrint-FirmwareCheck";
+              version = "2020.06.22";
 
-          src = fetchFromGitHub {
-            owner  = "foosel";
-            repo   = "OctoPrint";
-            rev    = version;
-            sha256 = "0387228544v28d69dcdg2zr5gp6qavkfr6dydpjgj5awxv3w25d5";
-          };
+              src = fetchFromGitHub {
+                owner = "OctoPrint";
+                repo = "OctoPrint-FirmwareCheck";
+                rev = version;
+                sha256 = "19y7hrgg9z8hl7cwqkvg8nc8bk0wwrsfvjd1wawy33wn60psqv1h";
+              };
+              doCheck = false;
+            };
+          }
+        )
 
-          propagatedBuildInputs = with super; [
-            awesome-slugify flask flask_assets rsa requests pkginfo watchdog
-            semantic-version werkzeug flaskbabel tornado
-            psutil pyserial flask_login netaddr markdown
-            pylru pyyaml sarge feedparser netifaces click websocket_client
-            scandir chainmap future wrapt monotonic emoji jinja2
-            frozendict cachelib sentry-sdk filetype markupsafe
-          ] ++ lib.optionals stdenv.isDarwin [ py.pkgs.appdirs ];
+        (
+          self: super: {
+            octoprint = self.buildPythonPackage rec {
+              pname = "OctoPrint";
+              version = "1.4.2";
 
-          checkInputs = with super; [ pytestCheckHook mock ddt ];
+              src = fetchFromGitHub {
+                owner = "OctoPrint";
+                repo = "OctoPrint";
+                rev = version;
+                sha256 = "1bblrjwkccy1ifw7lf55g3k9lq1sqzwd49vj8bfzj2w07a7qda62";
+              };
 
-          postPatch = let
-            ignoreVersionConstraints = [
-              "sentry-sdk"
-            ];
-          in ''
-            sed -r -i \
-              ${lib.concatStringsSep "\n" (map (e:
-                ''-e 's@${e}[<>=]+.*@${e}",@g' \''
-              ) ignoreVersionConstraints)}
-              setup.py
-          '';
+              propagatedBuildInputs = with super; [
+                octoprint-firmwarecheck
+                octoprint-filecheck
+                markupsafe
+                tornado
+                markdown
+                rsa
+                regex
+                flask
+                jinja2
+                flask_login
+                flask-babel
+                flask_assets
+                werkzeug
+                itsdangerous
+                cachelib
+                pyyaml
+                pyserial
+                netaddr
+                watchdog
+                sarge
+                netifaces
+                pylru
+                pkginfo
+                requests
+                semantic-version
+                psutil
+                click
+                feedparser
+                future
+                websocket_client
+                wrapt
+                emoji
+                frozendict
+                sentry-sdk
+                filetype
+                unidecode
+                blinker
+              ] ++ lib.optionals stdenv.isDarwin [ py.pkgs.appdirs ];
 
-          dontUseSetuptoolsCheck = true;
+              checkInputs = with super; [ pytestCheckHook mock ddt ];
 
-          preCheck = ''
-            export HOME=$(mktemp -d)
-            rm pytest.ini
-          '';
+              postPatch = let
+                ignoreVersionConstraints = [
+                  "sentry-sdk"
+                ];
+              in
+                ''
+                  sed -r -i \
+                    ${lib.concatStringsSep "\n" (
+                  map (
+                    e:
+                      ''-e 's@${e}[<>=]+.*@${e}",@g' \''
+                  ) ignoreVersionConstraints
+                )}
+                    setup.py
+                '';
 
-          disabledTests = [
-            "test_check_setup" # Why should it be able to call pip?
-          ] ++ lib.optionals stdenv.isDarwin [
-            "test_set_external_modification"
-          ];
+              dontUseSetuptoolsCheck = true;
 
-          passthru.python = self.python;
+              preCheck = ''
+                export HOME=$(mktemp -d)
+                rm pytest.ini
+              '';
 
-          meta = with stdenv.lib; {
-            homepage = "https://octoprint.org/";
-            description = "The snappy web interface for your 3D printer";
-            license = licenses.agpl3;
-            maintainers = with maintainers; [ abbradar gebner WhittlesJr ];
-          };
-        };
-      })
-      (import ./plugins.nix {inherit pkgs;})
-      packageOverrides
-    ]);
+              disabledTests = [
+                "test_check_setup" # Why should it be able to call pip?
+              ] ++ lib.optionals stdenv.isDarwin [
+                "test_set_external_modification"
+              ];
+
+              passthru.python = self.python;
+
+              meta = with stdenv.lib; {
+                homepage = "https://octoprint.org/";
+                description = "The snappy web interface for your 3D printer";
+                license = licenses.agpl3;
+                maintainers = with maintainers; [ abbradar gebner WhittlesJr ];
+              };
+            };
+          }
+        )
+        (import ./plugins.nix { inherit pkgs; })
+        packageOverrides
+      ]
+    );
   };
-in with py.pkgs; toPythonApplication octoprint
+in
+  with py.pkgs; toPythonApplication octoprint
diff --git a/pkgs/applications/misc/octoprint/plugins.nix b/pkgs/applications/misc/octoprint/plugins.nix
index b5d52f5e5f8..ddf68b6f7c3 100644
--- a/pkgs/applications/misc/octoprint/plugins.nix
+++ b/pkgs/applications/misc/octoprint/plugins.nix
@@ -252,4 +252,42 @@ in {
       maintainers = with maintainers; [ WhittlesJr ];
     };
   };
+
+  displaylayerprogress = buildPlugin rec {
+    pname = "OctoPrint-DisplayLayerProgress";
+    version = "1.23.2";
+
+    src = fetchFromGitHub {
+      owner = "OllisGit";
+      repo = pname;
+      rev = version;
+      sha256 = "0yv8gy5dq0rl7zxkvqa98az391aiixl8wbzkyvbmpjar9r6whdzm";
+    };
+
+    meta = with stdenv.lib; {
+      description = "OctoPrint-Plugin that sends the current progress of a print via M117 command";
+      homepage = "https://github.com/OllisGit/OctoPrint-DisplayLayerProgress";
+      license = licenses.agpl3;
+      maintainers = with maintainers; [ j0hax ];
+    };
+  };
+
+  octoprint-dashboard = buildPlugin rec {
+    pname = "OctoPrint-Dashboard";
+    version = "1.13.0";
+
+    src = fetchFromGitHub {
+      owner = "StefanCohen";
+      repo = pname;
+      rev = version;
+      sha256 = "1879l05gkkryvhxkmhr3xvd10d4m7i0cr3jk1gdcv47xwyr6q9pf";
+    };
+
+    meta = with stdenv.lib; {
+      description = "A dashboard for Octoprint";
+      homepage = "https://github.com/StefanCohen/OctoPrint-Dashboard";
+      license = licenses.agpl3;
+      maintainers = with maintainers; [ j0hax ];
+    };
+  };
 }
diff --git a/pkgs/applications/misc/ola/default.nix b/pkgs/applications/misc/ola/default.nix
index b9529981c7c..7682b56e4d6 100644
--- a/pkgs/applications/misc/ola/default.nix
+++ b/pkgs/applications/misc/ola/default.nix
@@ -1,31 +1,45 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, bison, flex, pkgconfig
-, libuuid, cppunit, protobuf3_1, zlib, avahi, libmicrohttpd
-, perl, python36 # Replace by python3 after the next update
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, bison
+, flex
+, pkgconfig
+, libuuid
+, cppunit
+, protobuf
+, zlib
+, avahi
+, libmicrohttpd
+, perl
+, python3
 }:
 
 stdenv.mkDerivation rec {
   pname = "ola";
-  version = "0.10.7";
+  version = "unstable-2020-07-17";
 
   src = fetchFromGitHub {
     owner = "OpenLightingProject";
     repo = "ola";
-    rev = version;
-    sha256 = "18krwrw7w1qzwih8gnmv7r4sah5ppvq7ax65r7l5yjxn3ihwp2kf";
+    rev = "e2cd699c7792570500578fd092fb6bfb3d511023"; # HEAD of "0.10" branch
+    sha256 = "17a3z3zhx00rjk58icd3zlqfw3753f3y8bwy2sza0frdim09lqr4";
   };
 
   nativeBuildInputs = [ autoreconfHook bison flex pkgconfig perl ];
-  buildInputs = [ libuuid cppunit protobuf3_1 zlib avahi libmicrohttpd python36 ];
+  buildInputs = [ libuuid cppunit protobuf zlib avahi libmicrohttpd python3 ];
   propagatedBuildInputs = [
-    (python36.pkgs.protobuf.override { protobuf = protobuf3_1; })
-    python36.pkgs.numpy
+    python3.pkgs.protobuf
+    python3.pkgs.numpy
   ];
 
   configureFlags = [ "--enable-python-libs" ];
 
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib; {
     description = "A framework for controlling entertainment lighting equipment.";
-    maintainers = [ maintainers.globin ];
+    homepage = "https://www.openlighting.org/ola/";
+    maintainers = with maintainers; [ globin ];
     license = with licenses; [ lgpl21 gpl2Plus ];
     platforms = platforms.all;
   };
diff --git a/pkgs/applications/misc/olifant/default.nix b/pkgs/applications/misc/olifant/default.nix
new file mode 100644
index 00000000000..21091b2583a
--- /dev/null
+++ b/pkgs/applications/misc/olifant/default.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, fetchpatch
+, vala
+, meson
+, ninja
+, pkgconfig
+, python3
+, libgee
+, gsettings-desktop-schemas
+, gnome3
+, pantheon
+, wrapGAppsHook
+, gtk3
+, json-glib
+, glib
+, glib-networking
+}:
+
+stdenv.mkDerivation rec {
+  pname = "olifant";
+  version = "0.2.1-beta6";
+
+  src = fetchFromGitHub {
+    owner = "cleac";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-3hnEa4Q1dH0R8Jp+Ew0+dH1PEm3F+56jYwqhJ+vll4M=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkgconfig
+    python3
+    vala
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    glib-networking
+    gnome3.libsoup
+    gsettings-desktop-schemas
+    gtk3
+    json-glib
+    libgee
+    pantheon.granite
+  ];
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "A simple Mastodon client designed for elementary OS, originally developed by @bleakgrey";
+    homepage = "https://github.com/cleac/olifant";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ worldofpeace ];
+  };
+}
diff --git a/pkgs/applications/misc/openambit/default.nix b/pkgs/applications/misc/openambit/default.nix
new file mode 100644
index 00000000000..5ef6d4ae84d
--- /dev/null
+++ b/pkgs/applications/misc/openambit/default.nix
@@ -0,0 +1,48 @@
+{ cmake
+, fetchFromGitHub
+, lib
+, libusb1
+, mkDerivation
+, python3
+, qtbase
+, qttools
+, udev
+, zlib
+}:
+
+mkDerivation rec {
+  pname = "openambit";
+  version = "0.5";
+
+  src = fetchFromGitHub {
+    owner = "openambitproject";
+    repo = pname;
+    rev = version;
+    sha256 = "1074kvkamwnlkwdajsw1799wddcfkjh2ay6l842r0s4cvrxrai85";
+  };
+
+  nativeBuildInputs = [ cmake qttools ];
+  buildInputs = [ libusb1 python3 qtbase udev zlib ];
+
+  cmakeFlags = [ "-DCMAKE_INSTALL_UDEVRULESDIR=${placeholder "out"}/lib/udev/rules.d" ];
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/openambit --version
+  '';
+
+  postInstall = ''
+    install -m755 -D $src/tools/openambit2gpx.py $out/bin/openambit2gpx
+
+    mv -v $out/lib/udev/rules.d/libambit.rules \
+          $out/lib/udev/rules.d/20-libambit.rules
+  '';
+
+  meta = with lib; {
+    description = "Helps fetch data from Suunto Ambit GPS watches";
+    homepage = "https://github.com/openambitproject/openambit/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ rycee ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/openjump/default.nix b/pkgs/applications/misc/openjump/default.nix
index e537180686c..544329ec5e7 100644
--- a/pkgs/applications/misc/openjump/default.nix
+++ b/pkgs/applications/misc/openjump/default.nix
@@ -1,33 +1,33 @@
-{ stdenv, fetchurl, unzip, runtimeShell }:
+{ stdenv, fetchurl, unzip, makeWrapper
+, coreutils, gawk, which, gnugrep, findutils
+, jdk
+}:
 
 stdenv.mkDerivation {
-  name = "openjump-1.3.1";
+  pname = "openjump";
+  version = "1.15";
 
   src = fetchurl {
-    url = "mirror://sourceforge/jump-pilot/OpenJUMP/1.3.1/openjump-1.3.1.zip";
-    sha256 = "0y4z53yx0x7rp3c8rnj028ni3gr47r35apgcpqp3jl7r2di6zgqm";
+    url = "mirror://sourceforge/jump-pilot/OpenJUMP/1.15/OpenJUMP-Portable-1.15-r6241-CORE.zip";
+    sha256 = "12snzkv83w6khcdqzp6xahqapwp82af6c7j2q8n0lj62hk79rfgl";
   };
 
-  # ln jump.log hack: a different user will probably get a permission denied
-  # error. Still this is better than getting it always.
-  # TODO: build from source and patch this
+  # TODO: build from source
   unpackPhase = ''
     mkdir -p $out/bin;
     cd $out; unzip $src
-    s=$out/bin/OpenJump
-    dir=$(echo $out/openjump-*)
-    cat >> $s << EOF
-    #!${runtimeShell}
-    cd $dir/bin
-    exec ${stdenv.shell} openjump.sh
-    EOF
-    chmod +x $s
-    ln -s /tmp/openjump.log $dir/bin/jump.log
   '';
 
-  installPhase = ":";
+  buildInputs = [unzip makeWrapper];
 
-  buildInputs = [unzip];
+  installPhase = ''
+    dir=$(echo $out/OpenJUMP-*)
+
+    chmod +x $dir/bin/oj_linux.sh
+    makeWrapper $dir/bin/oj_linux.sh $out/bin/OpenJump \
+      --set JAVA_HOME ${jdk.home} \
+      --set PATH "${coreutils}/bin:${gawk}/bin:${which}/bin:${gnugrep}/bin:${findutils}/bin"
+  '';
 
   meta = {
     description = "Open source Geographic Information System (GIS) written in the Java programming language";
diff --git a/pkgs/applications/misc/openrgb/default.nix b/pkgs/applications/misc/openrgb/default.nix
index 77f6513b0ca..89a16568281 100644
--- a/pkgs/applications/misc/openrgb/default.nix
+++ b/pkgs/applications/misc/openrgb/default.nix
@@ -1,17 +1,17 @@
-{ mkDerivation, lib, fetchFromGitHub, qmake, libusb1, hidapi }:
+{ mkDerivation, lib, fetchFromGitHub, qmake, libusb1, hidapi, pkg-config }:
 
 mkDerivation rec {
   pname = "openrgb";
-  version = "0.2";
+  version = "0.3";
 
   src = fetchFromGitHub {
     owner = "CalcProgrammer1";
     repo = "OpenRGB";
     rev = "release_${version}";
-    sha256 = "0b1mkp4ca4gdzk020kp6dkd3i9a13h4ikrn3417zscsvv5y9kv0s";
+    sha256 = "1931aisdahjr99d4qqk824ib4x19mvhqgqmkm3j6fc5zd2hnw87m";
   };
 
-  nativeBuildInputs = [ qmake ];
+  nativeBuildInputs = [ qmake pkg-config ];
   buildInputs = [ libusb1 hidapi ];
 
   installPhase = ''
diff --git a/pkgs/applications/misc/orca/default.nix b/pkgs/applications/misc/orca/default.nix
index 849e156b529..ccb7f3e47c8 100644
--- a/pkgs/applications/misc/orca/default.nix
+++ b/pkgs/applications/misc/orca/default.nix
@@ -35,13 +35,13 @@
 
 buildPythonApplication rec {
   pname = "orca";
-  version = "3.36.3";
+  version = "3.36.5";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1x0xrcyxlvcjlqp6wcsx5d951i500079wqs04scssjzwqggy330n";
+    sha256 = "0nyb33p4y6nmln41pi70c8hiyjyasaryy10mazi7b2s6fy9pk25x";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/pastel/default.nix b/pkgs/applications/misc/pastel/default.nix
index 348ea4b991e..aaaf6dc778b 100644
--- a/pkgs/applications/misc/pastel/default.nix
+++ b/pkgs/applications/misc/pastel/default.nix
@@ -21,6 +21,5 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/sharkdp/pastel/releases/tag/v${version}";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ davidtwco ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/misc/pdfarranger/default.nix b/pkgs/applications/misc/pdfarranger/default.nix
index c43ae1de9a1..b8f7c4641d2 100644
--- a/pkgs/applications/misc/pdfarranger/default.nix
+++ b/pkgs/applications/misc/pdfarranger/default.nix
@@ -5,13 +5,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pdfarranger";
-  version = "1.5.3";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "jeromerobert";
     repo = pname;
     rev = version;
-    sha256 = "0a9ap7p8iw57sn5nmhim7gp5as8gj6ir6l3p0bpmg4iqjsr4169h";
+    sha256 = "03siz4ar6flyvrrgh7hr7sslc6n9x5d9i13lc5rm2qnssd0qdich";
   };
 
   nativeBuildInputs = [
@@ -27,6 +27,7 @@ python3Packages.buildPythonApplication rec {
   propagatedBuildInputs = with python3Packages; [
     pygobject3
     pikepdf
+    img2pdf
     setuptools
   ];
 
diff --git a/pkgs/applications/misc/pdfpc/default.nix b/pkgs/applications/misc/pdfpc/default.nix
index d8203b9e7b5..4e172e5fd7c 100644
--- a/pkgs/applications/misc/pdfpc/default.nix
+++ b/pkgs/applications/misc/pdfpc/default.nix
@@ -4,13 +4,13 @@
 stdenv.mkDerivation rec {
   name = "${product}-${version}";
   product = "pdfpc";
-  version = "4.3.4";
+  version = "4.4.0";
 
   src = fetchFromGitHub {
     repo = product;
     owner = product;
     rev = "v${version}";
-    sha256 = "07aafsm4jzdgpahz83p0ajv40hry7gviyadqi13ahr8xdhhwy2sd";
+    sha256 = "0vh2r32akvasdrghkaq7ard24r2qncp34jfiyshi3zxabm9bhfaa";
   };
 
   nativeBuildInputs = [
@@ -31,14 +31,6 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = stdenv.lib.optional stdenv.isDarwin "-DMOVIES=OFF";
 
-  patches = [
-    # Fix build vala 0.46
-    (fetchpatch {
-      url = "https://github.com/pdfpc/pdfpc/commit/bbc16b97ecbdcdd22c2dc827a5c0e8b569073312.patch";
-      sha256 = "0wi1rqcvg65cxnxvmvavcvghqyksnpijq1p91m57jaby3hb0pdcy";
-    })
-  ];
-
   meta = with stdenv.lib; {
     description = "A presenter console with multi-monitor support for PDF files";
     homepage = "https://pdfpc.github.io/";
diff --git a/pkgs/applications/misc/pdfsam-basic/default.nix b/pkgs/applications/misc/pdfsam-basic/default.nix
index dcf4a0a621b..a6dd86393ff 100644
--- a/pkgs/applications/misc/pdfsam-basic/default.nix
+++ b/pkgs/applications/misc/pdfsam-basic/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pdfsam-basic";
-  version = "4.1.3";
+  version = "4.1.4";
 
   src = fetchurl {
     url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb";
-    sha256 = "1rhv6mf6pr9aaa8516i3b7v6h622qb1p8c4jsy3j0s5wrdry5l9l";
+    sha256 = "1gw3cmc8c1xxc55bm71v1dz9x9560lbhx9nkwprarhxlmn0m0zzp";
   };
 
   unpackPhase = ''
@@ -44,6 +44,6 @@ stdenv.mkDerivation rec {
       description = "Multi-platform software designed to extract pages, split, merge, mix and rotate PDF files";
       license = licenses.agpl3;
       platforms = platforms.all;
-      maintainers = with maintainers; [ maintainers."1000101" ];
+      maintainers = with maintainers; [ _1000101 ];
   };
 }
diff --git a/pkgs/applications/misc/pipr/default.nix b/pkgs/applications/misc/pipr/default.nix
new file mode 100644
index 00000000000..b5a12f9ce7e
--- /dev/null
+++ b/pkgs/applications/misc/pipr/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, bubblewrap
+, makeWrapper
+, lib
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "pipr";
+  version = "0.0.12";
+
+  src = fetchFromGitHub {
+    owner = "ElKowar";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0l7yvpc59mbzh87lngj6pj8w586fwa07829l5x9mmxnkf6srapmc";
+  };
+
+  cargoSha256 = "1xzc1x5mjvj2jgdhwmjbdbqi8d7ln1ss7akn72d96kmy1wsj1qsa";
+
+  nativeBuildInputs = [ makeWrapper ];
+  postFixup = ''
+    wrapProgram "$out/bin/pipr" --prefix PATH : ${lib.makeBinPath [ bubblewrap ]}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A commandline-tool to interactively write shell pipelines";
+    homepage = "https://github.com/ElKowar/pipr";
+    license = licenses.mit;
+    maintainers = with maintainers; [ elkowar ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix b/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
index 3ecace18f92..15dd7222b28 100644
--- a/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
+++ b/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "plasma-applet-volumewin7mixer";
-  version = "24";
+  version = "25";
 
   src = fetchFromGitHub {
     owner = "Zren";
     repo = "plasma-applet-volumewin7mixer";
     rev = "v${version}";
-    sha256 = "1pms71229y7fv3zs38a0l9mdcg5qkcdv9yrcvdm6xqpdyk21jbz2";
+    sha256 = "1nvz0a06qb3pfk8dfh5n5vgf3psd6k0j3vms9pskr511qsxw0dfi";
   };
 
   patches = [ ./cmake.patch ];
diff --git a/pkgs/applications/misc/pueue/default.nix b/pkgs/applications/misc/pueue/default.nix
index 1294ca6dcf4..f5c237da440 100644
--- a/pkgs/applications/misc/pueue/default.nix
+++ b/pkgs/applications/misc/pueue/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pueue";
-  version = "0.6.1";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "Nukesor";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0x8slqxpnk4pis834g11wzp8fqsxwhdf0xnssz1pkkww4dqzali0";
+    sha256 = "1ksks8c35q9aq5vnjxh480vqjyaa8c1fz1fb465vngnlyw762b22";
   };
 
-  cargoSha256 = "0r110zlzpzg0j5cq9zg0kk46qigp6bzd0kzmpx3ddvhblhxvq5m5";
+  cargoSha256 = "0v1h4jhrzfb55zmpnbq18188rdvx7a7lvnjqh0w7cy90kvxssian";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/misc/qcad/application-dir.patch b/pkgs/applications/misc/qcad/application-dir.patch
index 84782e1e717..0b8a29319eb 100644
--- a/pkgs/applications/misc/qcad/application-dir.patch
+++ b/pkgs/applications/misc/qcad/application-dir.patch
@@ -33,3 +33,16 @@ index c6c31cbf5..c51b59ce6 100644
  }
  
  int RSettings::getSnapRange() {
+diff --git a/qcad.desktop b/qcad.desktop
+index 93c5e9720..2d0e6bf32 100644
+--- a/qcad.desktop
++++ b/qcad.desktop
+@@ -48,7 +48,7 @@ Comment[sv]=2D CAD-system
+ Comment[sl]=Sistem 2D CAD
+ Comment[uk]=2D САПР
+ Comment[tr]=2D CAD Sistemi
+-Exec=qcad %F
++Exec=qcad-bin %F
+ X-MultipleArgs=true
+ Icon=qcad_icon
+ Terminal=false
diff --git a/pkgs/applications/misc/qcad/default.nix b/pkgs/applications/misc/qcad/default.nix
index 3dfda8b9c5f..26b6f329764 100644
--- a/pkgs/applications/misc/qcad/default.nix
+++ b/pkgs/applications/misc/qcad/default.nix
@@ -11,13 +11,13 @@
 
 mkDerivationWith stdenv.mkDerivation rec {
   pname = "qcad";
-  version = "3.24.3.4";
+  version = "3.25.0.0";
 
   src = fetchFromGitHub {
     owner = "qcad";
     repo = "qcad";
     rev = "v${version}";
-    sha256 = "0hv9050srrq7fm1fqla8b52mwpilsvr1jriz4ay633s63svss3zz";
+    sha256 = "07qph2645m1wi9yi04ixdvx8dli03q1vimj3laqdmnpipi54lljc";
   };
 
   patches = [
@@ -25,11 +25,13 @@ mkDerivationWith stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    mkdir src/3rdparty/qt-labs-qtscriptgenerator-${qt5.qtbase.version}
-    cp \
-      src/3rdparty/qt-labs-qtscriptgenerator-5.12.3/qt-labs-qtscriptgenerator-5.12.3.pro \
-      src/3rdparty/qt-labs-qtscriptgenerator-${qt5.qtbase.version}/qt-labs-qtscriptgenerator-${qt5.qtbase.version}.pro
-  '';
+    if ! [ -d src/3rdparty/qt-labs-qtscriptgenerator-${qt5.qtbase.version} ]; then
+      mkdir src/3rdparty/qt-labs-qtscriptgenerator-${qt5.qtbase.version}
+      cp \
+        src/3rdparty/qt-labs-qtscriptgenerator-5.14.0/qt-labs-qtscriptgenerator-5.14.0.pro \
+        src/3rdparty/qt-labs-qtscriptgenerator-${qt5.qtbase.version}/qt-labs-qtscriptgenerator-${qt5.qtbase.version}.pro
+    fi
+ '';
 
   qmakeFlags = [
     "MUPARSER_DIR=${muparser}"
diff --git a/pkgs/applications/misc/qdirstat/default.nix b/pkgs/applications/misc/qdirstat/default.nix
index c57153fe0e0..e9f049159bf 100644
--- a/pkgs/applications/misc/qdirstat/default.nix
+++ b/pkgs/applications/misc/qdirstat/default.nix
@@ -3,17 +3,19 @@
 , makeWrapper, perlPackages, mkDerivation }:
 
 let
-  version = "1.6.1";
-in mkDerivation rec {
   pname = "qdirstat";
-  inherit version;
+  version = "1.7";
 
   src = fetchFromGitHub {
     owner = "shundhammer";
-    repo = "qdirstat";
+    repo = pname;
     rev = version;
-    sha256 = "0q77a347qv1aka6sni6l03zh5jzyy9s74aygg554r73g01kxczpb";
+    sha256 = "163x3fxra0l3vvrzm25mh7jvcwjbmwsqlpppkxx76mkz9a1769fy";
   };
+in
+
+mkDerivation {
+  inherit pname version src;
 
   nativeBuildInputs = [ qmake makeWrapper ];
 
diff --git a/pkgs/applications/misc/qt-video-wlr/default.nix b/pkgs/applications/misc/qt-video-wlr/default.nix
new file mode 100644
index 00000000000..e10c922e4f1
--- /dev/null
+++ b/pkgs/applications/misc/qt-video-wlr/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, lib, fetchFromGitHub, pkg-config, meson, ninja, wayland, pixman, cairo, librsvg, wayland-protocols, wlroots, libxkbcommon, gst_all_1, wrapQtAppsHook, qtbase, qtmultimedia }:
+let
+ gstreamerPath = with gst_all_1; stdenv.lib.makeSearchPath "lib/gstreamer-1.0" [
+     gstreamer
+     gst-plugins-base
+     gst-plugins-good
+     gst-plugins-bad
+     gst-plugins-ugly
+ ];
+in stdenv.mkDerivation rec {
+  pname = "qt-video-wlr";
+  version = "2020-08-03";
+
+  src = fetchFromGitHub {
+    owner = "xdavidwu";
+    repo = "qt-video-wlr";
+    rev = "f88a7aa43f28b879b18752069f4a1ec33d73f2fe";
+    sha256 = "135kfyg1b61xvfpk8vpk4qyw6s9q1mn3a6lfkrqrhl0dz9kka9lx";
+  };
+
+  nativeBuildInputs = [ pkg-config meson ninja wrapQtAppsHook ];
+  buildInputs = [
+      wayland
+      pixman
+      cairo
+      librsvg
+      wayland-protocols
+      wlroots
+      libxkbcommon
+      qtbase
+      qtmultimedia
+  ];
+
+  qtWrapperArgs = [
+      "--prefix PATH : $out/bin/qt-video-wlr"
+      "--prefix GST_PLUGIN_PATH : ${gstreamerPath}"
+  ];
+
+  meta = with lib; {
+    description = "Qt pip-mode-like video player for wlroots-based wayland compositors";
+    homepage = "https://github.com/xdavidwu/qt-video-wlr";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fionera ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/applications/misc/redshift/default.nix b/pkgs/applications/misc/redshift/default.nix
index 05dc4c429b6..86c787df62a 100644
--- a/pkgs/applications/misc/redshift/default.nix
+++ b/pkgs/applications/misc/redshift/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchFromGitHub, autoconf, automake, gettext, intltool
+{ stdenv, fetchFromGitHub, fetchFromGitLab
+, autoconf, automake, gettext, intltool
 , libtool, pkgconfig, wrapGAppsHook, wrapPython, gobject-introspection
 , gtk3, python, pygobject3, pyxdg
 
@@ -18,7 +19,7 @@ let
     stdenv.mkDerivation rec {
       inherit pname version src meta;
 
-      patches = [
+      patches = stdenv.lib.optionals (pname != "gammastep") [
         # https://github.com/jonls/redshift/pull/575
         ./575.patch
       ];
@@ -62,10 +63,15 @@ let
 
       # the geoclue agent may inspect these paths and expect them to be
       # valid without having the correct $PATH set
-      postInstall = ''
+      postInstall = if (pname == "gammastep") then ''
+        substituteInPlace $out/share/applications/gammastep.desktop \
+          --replace 'Exec=gammastep' "Exec=$out/bin/gammastep"
+        substituteInPlace $out/share/applications/gammastep-indicator.desktop \
+          --replace 'Exec=gammastep-indicator' "Exec=$out/bin/gammastep-indicator"
+      '' else ''
         substituteInPlace $out/share/applications/redshift.desktop \
           --replace 'Exec=redshift' "Exec=$out/bin/redshift"
-        substituteInPlace $out/share/applications/redshift.desktop \
+        substituteInPlace $out/share/applications/redshift-gtk.desktop \
           --replace 'Exec=redshift-gtk' "Exec=$out/bin/redshift-gtk"
       '';
 
@@ -118,4 +124,24 @@ rec {
       homepage = "https://github.com/minus7/redshift";
     };
   };
+
+  gammastep = mkRedshift rec {
+    pname = "gammastep";
+    version = "2.0.2";
+
+    src = fetchFromGitLab {
+      owner = "chinstrap";
+      repo = pname;
+      rev = "v${version}";
+      sha256 = "09wqlz3yya955galhs20014qfwm2yk0lxhyqdsw8gwddvcpyprzg";
+    };
+
+    meta = redshift.meta // {
+      name = "${pname}-${version}";
+      longDescription = "Gammastep"
+        + stdenv.lib.removePrefix "Redshift" redshift.meta.longDescription;
+      homepage = "https://gitlab.com/chinstrap/gammastep";
+      maintainers = [ stdenv.lib.maintainers.primeos ] ++ redshift.meta.maintainers;
+    };
+  };
 }
diff --git a/pkgs/applications/misc/remarkable/rmapi/default.nix b/pkgs/applications/misc/remarkable/rmapi/default.nix
index 90e99b5adf8..f159cd852e8 100644
--- a/pkgs/applications/misc/remarkable/rmapi/default.nix
+++ b/pkgs/applications/misc/remarkable/rmapi/default.nix
@@ -13,12 +13,13 @@ buildGoModule rec {
 
   vendorSha256 = "077s13pcql5w2m6wzls1q06r7p501kazbwzxgfh6akwza15kb4is";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "A Go app that allows access to the ReMarkable Cloud API programmatically";
     homepage = "https://github.com/juruen/rmapi";
     changelog = "https://github.com/juruen/rmapi/blob/v${version}/CHANGELOG.md";
     license = licenses.agpl3;
     maintainers = [ maintainers.nickhu ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/misc/rescuetime/default.nix b/pkgs/applications/misc/rescuetime/default.nix
index 9784e24187b..6b28b52dcf0 100644
--- a/pkgs/applications/misc/rescuetime/default.nix
+++ b/pkgs/applications/misc/rescuetime/default.nix
@@ -1,19 +1,21 @@
 { stdenv, lib, fetchurl, dpkg, patchelf, qt5, libXtst, libXext, libX11, mkDerivation, makeWrapper, libXScrnSaver }:
 
 let
+  version = "2.16.3.1";
   src =
     if stdenv.hostPlatform.system == "i686-linux" then fetchurl {
       name = "rescuetime-installer.deb";
-      url = "https://www.rescuetime.com/installers/rescuetime_current_i386.deb";
-      sha256 = "1yzbs2lg04bq0clkr6gfkx3j6wrahpnxqfiq4askk9k76y4ncd4m";
+      url = "https://www.rescuetime.com/installers/rescuetime_${version}_i386.deb";
+      sha256 = "1374nmj6g6w24cv604kzac0v57gcl1pwpw0nxpr7kv2786x1aqg2";
     } else fetchurl {
       name = "rescuetime-installer.deb";
-      url = "https://www.rescuetime.com/installers/rescuetime_current_amd64.deb";
-      sha256 = "1njxsh601d0p6n0hxv44gcg8gd43xwym83xwqba26vj6xw82bknv";
+      url = "https://www.rescuetime.com/installers/rescuetime_${version}_amd64.deb";
+      sha256 = "05qs6wbc3705z8w9c3n83m4j8xfmzm673lyh5j95x1ak5czkrphk";
     };
 in mkDerivation {
   # https://www.rescuetime.com/updates/linux_release_notes.html
-  name = "rescuetime-2.15.0.1";
+  inherit version;
+  pname = "rescuetime";
   inherit src;
   nativeBuildInputs = [ dpkg ];
   # avoid https://github.com/NixOS/patchelf/issues/99
diff --git a/pkgs/applications/misc/rsclock/default.nix b/pkgs/applications/misc/rsclock/default.nix
index 4f63ed057b7..e1ae63e09fd 100644
--- a/pkgs/applications/misc/rsclock/default.nix
+++ b/pkgs/applications/misc/rsclock/default.nix
@@ -10,7 +10,7 @@ rustPlatform.buildRustPackage rec {
     rev = "v${version}";
     sha256 = "1i93qkz6d8sbk78i4rvx099hnn4lklp4cjvanpm9ssv8na4rqvh2";
   };
-   
+
   cargoSha256 = "01dhkis6zswq1y40n7sdq9xv1sp61f2v7nfqbkicyjngmdrmcgrl";
 
   meta = with stdenv.lib; {
@@ -18,7 +18,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/valebes/rsClock";
     license = licenses.mit;
     maintainers = with maintainers; [valebes];
-    platforms = platforms.all;
   };
 }
-
diff --git a/pkgs/applications/misc/sampler/default.nix b/pkgs/applications/misc/sampler/default.nix
index a1f4c8f41bc..b68a3a98e34 100644
--- a/pkgs/applications/misc/sampler/default.nix
+++ b/pkgs/applications/misc/sampler/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "04nywhkil5xkipcibrp6vi63rfcvqgv7yxbxmmrhqys2cdxfvazv";
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   buildInputs = [ alsaLib ];
@@ -24,4 +26,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ uvnikita ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/misc/sdcv/default.nix b/pkgs/applications/misc/sdcv/default.nix
index 997786fc107..d220047a0a3 100644
--- a/pkgs/applications/misc/sdcv/default.nix
+++ b/pkgs/applications/misc/sdcv/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sdcv";
-  version = "0.5.2";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "Dushistov";
     repo = "sdcv";
     rev = "v${version}";
-    sha256 = "1b67s4nj0s5fh3cjk7858qvhiisc557xx72xwzrb8hq6ijpwx5k0";
+    sha256 = "144qpl9b8r2php0zhi9b7vg6flpvdgjy6yfaipydwwhxi4wy9600";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/misc/sequeler/default.nix b/pkgs/applications/misc/sequeler/default.nix
index 6f43774a128..d1962176140 100644
--- a/pkgs/applications/misc/sequeler/default.nix
+++ b/pkgs/applications/misc/sequeler/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub
+{ stdenv, fetchFromGitHub, nix-update-script
 , vala, meson, ninja, pkgconfig, pantheon, gettext, wrapGAppsHook, python3, desktop-file-utils
 , gtk3, glib, libgee, libgda, gtksourceview, libxml2, libsecret, libssh2 }:
 
@@ -30,7 +30,7 @@ in stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/misc/sidequest/default.nix b/pkgs/applications/misc/sidequest/default.nix
index 6c55c3157f5..883b3eec03d 100644
--- a/pkgs/applications/misc/sidequest/default.nix
+++ b/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.2";
+		version = "0.10.11";
 
 		desktopItem = makeDesktopItem rec {
 			name = "SideQuest";
@@ -16,7 +16,7 @@
 
 			src = fetchurl {
 				url = "https://github.com/the-expanse/SideQuest/releases/download/v${version}/SideQuest-${version}.tar.xz";
-				sha256 = "1vfxn4gx5b138gj6nk4w3jlp2l56cqpb8hq2kn5mrf4dhjii8n88";
+				sha256 = "0fw952kdh1gn00y6sx2ag0rnb2paxq9ikg4bzgmbj7rrd1c6l2k9";
 			};
 
 			buildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/misc/simplenote/default.nix b/pkgs/applications/misc/simplenote/default.nix
index 7cc5bc6eb7f..05cf15b8acc 100644
--- a/pkgs/applications/misc/simplenote/default.nix
+++ b/pkgs/applications/misc/simplenote/default.nix
@@ -4,6 +4,7 @@
 , fetchurl
 , makeDesktopItem
 , makeWrapper
+, lib
 , stdenv
 , udev
 , wrapGAppsHook
@@ -16,10 +17,10 @@ let
 
   pname = "simplenote";
 
-  version = "1.19.0";
+  version = "1.21.1";
 
   sha256 = {
-    x86_64-linux = "1bvg8xlf2y9nz7dzs5jkr5b48hwmvhvb6m4ia1fyvnqqq46nz9wb";
+    x86_64-linux = "00qx82d17yrrg2mxwhm40av0mpf5hy14j338i5ijhwp79yc8fk8x";
   }.${system} or throwSystem;
 
   meta = with stdenv.lib; {
@@ -82,7 +83,7 @@ let
     '';
 
     runtimeDependencies = [
-      udev.lib
+      (lib.getLib udev)
     ];
 
     postFixup = ''
diff --git a/pkgs/applications/misc/sl1-to-photon/default.nix b/pkgs/applications/misc/sl1-to-photon/default.nix
new file mode 100644
index 00000000000..a8a0bfb1e10
--- /dev/null
+++ b/pkgs/applications/misc/sl1-to-photon/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, pillow
+, pyside2
+, numpy
+, pyphotonfile
+, shiboken2
+, which
+}:
+let
+  version = "0.1.3";
+in
+ buildPythonApplication rec {
+  pname = "sl1-to-photon";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "fookatchu";
+    repo = "SL1toPhoton";
+    rev = "v${version}";
+    sha256 = "1hmb74rcky3nax4lxn7pw6lcd5a66fdbwrm11c84zb31xb51bakw";
+  };
+
+  propagatedBuildInputs = [ pyphotonfile pillow numpy pyside2 shiboken2 ];
+
+  format = "other";
+
+  installPhase = ''
+    install -D -m 0755 SL1_to_Photon.py $out/bin/${pname}
+    sed -i '1i#!/usr/bin/env python' $out/bin/${pname}
+  '';
+
+  meta = with lib; {
+    maintainers = [ maintainers.cab404 ];
+    license = licenses.gpl3Plus;
+    description = "Tool for converting Slic3r PE's SL1 files to Photon files for the Anycubic Photon 3D-Printer";
+    homepage = "https://github.com/fookatchu/SL1toPhoton";
+  };
+
+}
diff --git a/pkgs/applications/misc/slstatus/default.nix b/pkgs/applications/misc/slstatus/default.nix
index 5c13cbf8669..6adf24f617c 100644
--- a/pkgs/applications/misc/slstatus/default.nix
+++ b/pkgs/applications/misc/slstatus/default.nix
@@ -1,20 +1,22 @@
-{ stdenv, fetchgit, pkgconfig, writeText, libX11, conf ? null }:
+{ stdenv, fetchgit, pkgconfig, writeText, libX11, conf ? null, patches ? [] }:
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "slstatus";
-  version = "unstable-2018-04-16";
+  version = "unstable-2019-02-16";
 
   src = fetchgit {
     url = "https://git.suckless.org/slstatus";
-    rev = "97ef7c2a1d67bb2c9c379e657fbc8e35acd6aafb";
-    sha256 = "1777hgl10imk0l2sgnqgbkfchv1mpxrd82ninzwp7f1rgwchz36v";
+    rev = "b14e039639ed28005fbb8bddeb5b5fa0c93475ac";
+    sha256 = "0kayyhpmppybhwndxgabw48wsk9v8x9xdb05xrly9szkw3jbvgw4";
   };
 
   configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
   preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
 
+  inherit patches;
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libX11 ];
 
@@ -24,7 +26,7 @@ stdenv.mkDerivation rec {
     homepage = "https://tools.suckless.org/slstatus/";
     description = "status monitor for window managers that use WM_NAME like dwm";
     license = licenses.isc;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/snowsql/default.nix b/pkgs/applications/misc/snowsql/default.nix
new file mode 100644
index 00000000000..a860b555b59
--- /dev/null
+++ b/pkgs/applications/misc/snowsql/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, fetchurl
+, rpmextract
+, patchelf
+, makeWrapper
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "snowsql";
+  version = "1.2.5";
+
+  src = fetchurl {
+    url = "https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/1.2/linux_x86_64/snowflake-snowsql-1.2.5-1.x86_64.rpm";
+    sha256 = "c66e2044640197f4a5b5a16b89e8e7c6a816aa539004a0fb016aab185795f2d5";
+  };
+
+  nativeBuildInputs = [ rpmextract makeWrapper ];
+
+  libPath =
+    stdenv.lib.makeLibraryPath
+      [
+        openssl
+      ];
+
+  buildCommand = ''
+    mkdir -p $out/bin/
+    cd $out
+    rpmextract $src
+    rm -R usr/bin
+    mv usr/* $out
+    rmdir usr
+
+    ${patchelf}/bin/patchelf \
+      --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+        lib64/snowflake/snowsql/snowsql
+
+    makeWrapper $out/lib64/snowflake/snowsql/snowsql $out/bin/snowsql \
+      --set LD_LIBRARY_PATH "${libPath}":"${placeholder "out"}"/lib64/snowflake/snowsql \
+
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Command line client for the Snowflake database";
+    homepage = "https://www.snowflake.com";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ andehen ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/misc/stretchly/default.nix b/pkgs/applications/misc/stretchly/default.nix
index 87e8316c2c4..85098b0b003 100644
--- a/pkgs/applications/misc/stretchly/default.nix
+++ b/pkgs/applications/misc/stretchly/default.nix
@@ -1,8 +1,11 @@
-{ stdenv, lib, fetchurl, makeWrapper, wrapGAppsHook, electron
+{ stdenv, lib, fetchurl, makeWrapper, wrapGAppsHook, electron_7
 , common-updater-scripts
 , writeShellScript
 }:
 
+let
+  electron = electron_7;
+in
 stdenv.mkDerivation rec {
   pname = "stretchly";
   version = "0.21.1";
diff --git a/pkgs/applications/misc/subsurface/0001-core-fix-libgit-ifdef-to-handle-libgit2-v1.0-and-onw.patch b/pkgs/applications/misc/subsurface/0001-core-fix-libgit-ifdef-to-handle-libgit2-v1.0-and-onw.patch
deleted file mode 100644
index 027e3f493e1..00000000000
--- a/pkgs/applications/misc/subsurface/0001-core-fix-libgit-ifdef-to-handle-libgit2-v1.0-and-onw.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From dfa4bcafec4425659a409550085417af3c5c787b Mon Sep 17 00:00:00 2001
-From: Florian Klink <flokli@flokli.de>
-Date: Sat, 11 Apr 2020 12:38:38 +0200
-Subject: [PATCH] core: fix libgit ifdef to handle libgit2 v1.0 and onwards
-
-Conditional code for older libgit versions was removed in
-https://github.com/Subsurface-divelog/subsurface/pull/2737,
-but it's a non-trivial backport, and master currently isn't really ready
-for a release.
-
-So instead ship a patch fixing the one broken libgit2 conditional until
-a 4.10 release has been made.
-
-Note the inverted logic - the if branch now handles the old libgit
-condition, and the else branch the newer versions, consistent with how
-it's done in the rest of the subsurface codebase.
----
- core/git-access.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/core/git-access.c b/core/git-access.c
-index 3688cb90c..9997fc8fd 100644
---- a/core/git-access.c
-+++ b/core/git-access.c
-@@ -359,10 +359,10 @@ static int try_to_git_merge(git_repository *repo, git_reference **local_p, git_r
- 	}
- 
- 	git_merge_init_options(&merge_options, GIT_MERGE_OPTIONS_VERSION);
--#if !LIBGIT2_VER_MAJOR && LIBGIT2_VER_MINOR > 23
--	merge_options.flags = GIT_MERGE_FIND_RENAMES;
--#else
-+#if !LIBGIT2_VER_MAJOR && LIBGIT2_VER_MINOR <= 22
- 	merge_options.tree_flags = GIT_MERGE_TREE_FIND_RENAMES;
-+#else
-+	merge_options.flags = GIT_MERGE_FIND_RENAMES;
- #endif
- 	merge_options.file_favor = GIT_MERGE_FILE_FAVOR_UNION;
- 	merge_options.rename_threshold = 100;
--- 
-2.25.1
-
diff --git a/pkgs/applications/misc/subsurface/default.nix b/pkgs/applications/misc/subsurface/default.nix
index e189351022b..d8773240bac 100644
--- a/pkgs/applications/misc/subsurface/default.nix
+++ b/pkgs/applications/misc/subsurface/default.nix
@@ -4,13 +4,13 @@
 }:
 
 let
-  version = "4.9.3";
+  version = "4.9.6";
 
   subsurfaceSrc = (fetchFromGitHub {
-    owner = "Subsurface-divelog";
+    owner = "Subsurface";
     repo = "subsurface";
     rev = "v${version}";
-    sha256 = "1i07f7appifx9j205x5a7ng01wsipxr6n9a3692pm60jli2nsir5";
+    sha256 = "1w1ak0fi6ljhg2jc4mjqyrbpax3iawrnsaqq6ls7qdzrhi37rggf";
     fetchSubmodules = true;
   });
 
@@ -39,13 +39,13 @@ let
   googlemaps = stdenv.mkDerivation rec {
     pname = "googlemaps";
 
-    version = "2017-12-18";
+    version = "2018-06-02";
 
     src = fetchFromGitHub {
       owner = "vladest";
       repo = "googlemaps";
-      rev = "79f3511d60dc9640de02a5f24656094c8982b26d";
-      sha256 = "11334w0bnfb97sv23vvj2b5hcwvr0171hxldn91jms9y12l5j15d";
+      rev = "54a357f9590d9cf011bf1713589f66bad65e00eb";
+      sha256 = "159kslp6rj0qznzxijppwvv8jnswlfgf2pw4x8ladi8vp6bzxnzi";
     };
 
     nativeBuildInputs = [ qmake ];
@@ -78,9 +78,6 @@ in stdenv.mkDerivation {
 
   src = subsurfaceSrc;
 
-  # remove with the 4.10 release
-  patches = [ ./0001-core-fix-libgit-ifdef-to-handle-libgit2-v1.0-and-onw.patch ];
-
   buildInputs = [
     libdc googlemaps
     curl grantlee libgit2 libssh2 libusb-compat-0_1 libxml2 libxslt libzip
diff --git a/pkgs/applications/misc/super_user_spark/default.nix b/pkgs/applications/misc/super_user_spark/default.nix
deleted file mode 100644
index dd1218282d8..00000000000
--- a/pkgs/applications/misc/super_user_spark/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ mkDerivation, fetchgit, aeson, aeson-pretty, base, bytestring, directory
-, filepath, hspec, hspec-core, HUnit, mtl, optparse-applicative
-, parsec, process, pureMD5, QuickCheck, shelly, stdenv, text
-, transformers, unix
-}:
-mkDerivation {
-  pname = "super-user-spark";
-  version = "0.3.2.0-dev";
-  src = fetchgit {
-    url = "https://github.com/NorfairKing/super-user-spark";
-    sha256 = "0akyc51bghzkk8j75n0i8v8rrsklidwvljhx3aibxfbkqp33372g";
-    rev = "ab8635682d67842b9e6d909cf3c618014e4157f2";
-  };
-  isLibrary = true;
-  isExecutable = true;
-  libraryHaskellDepends = [
-    aeson aeson-pretty base bytestring directory filepath mtl
-    optparse-applicative parsec process pureMD5 shelly text
-    transformers unix
-  ];
-  executableHaskellDepends = [ base ];
-  testHaskellDepends = [
-    aeson aeson-pretty base bytestring directory filepath hspec
-    hspec-core HUnit mtl optparse-applicative parsec process pureMD5
-    QuickCheck shelly text transformers unix
-  ];
-  jailbreak = true;
-  description = "Configure your dotfile deployment with a DSL";
-  license = stdenv.lib.licenses.mit;
-  homepage = "https://github.com/NorfairKing/super-user-spark";
-  maintainers = [ stdenv.lib.maintainers.badi ];
-}
diff --git a/pkgs/applications/misc/sweethome3d/default.nix b/pkgs/applications/misc/sweethome3d/default.nix
index bd0730a05aa..94875de7ebc 100644
--- a/pkgs/applications/misc/sweethome3d/default.nix
+++ b/pkgs/applications/misc/sweethome3d/default.nix
@@ -34,7 +34,7 @@ let
       patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/i586/libnativewindow_x11.so
     '';
 
-    buildInputs = [ ant jdk jre makeWrapper p7zip gtk3 gsettings-desktop-schemas ];
+    buildInputs = [ ant jdk makeWrapper p7zip gtk3 gsettings-desktop-schemas ];
 
     buildPhase = ''
       ant furniture textures help
@@ -53,7 +53,7 @@ let
 
       makeWrapper ${jre}/bin/java $out/bin/$exec \
         --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings-desktop-schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
-        --add-flags "-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}"
+        --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}"
     '';
 
     dontStrip = true;
diff --git a/pkgs/applications/misc/syncthing-tray/default.nix b/pkgs/applications/misc/syncthing-tray/default.nix
index 38826b7735f..1cb5bb441ed 100644
--- a/pkgs/applications/misc/syncthing-tray/default.nix
+++ b/pkgs/applications/misc/syncthing-tray/default.nix
@@ -23,6 +23,5 @@ buildGoPackage rec {
     homepage = "https://github.com/alex2108/syncthing-tray";
     license = licenses.mit;
     maintainers = with maintainers; [ nickhu ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/misc/syncthingtray/default.nix b/pkgs/applications/misc/syncthingtray/default.nix
index 28506c8fa88..c45ea27c425 100644
--- a/pkgs/applications/misc/syncthingtray/default.nix
+++ b/pkgs/applications/misc/syncthingtray/default.nix
@@ -20,14 +20,14 @@
 }:
 
 mkDerivation rec {
-  version = "0.10.10";
+  version = "0.11.0";
   pname = "syncthingtray";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = "syncthingtray";
     rev = "v${version}";
-    sha256 = "14nn0igcx4kd7pcna1ggz3yz9xfk1czgy87fxkmn2p91psmy2i18";
+    sha256 = "1lpjrij6y8l738hd7bfig0piglqinnqbadidzw9k0nm53bh4pqrr";
   };
 
   buildInputs = [ qtbase cpp-utilities qtutilities ]
diff --git a/pkgs/applications/misc/synergy/default.nix b/pkgs/applications/misc/synergy/default.nix
index bb922f3ca5b..b0722e18eea 100644
--- a/pkgs/applications/misc/synergy/default.nix
+++ b/pkgs/applications/misc/synergy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, cmake, openssl, qttools
+{ stdenv, lib, fetchpatch, fetchFromGitHub, cmake, openssl, qttools
 , ApplicationServices, Carbon, Cocoa, CoreServices, ScreenSaver
 , xlibsWrapper, libX11, libXi, libXtst, libXrandr, xinput, avahi-compat
 , withGUI ? true, wrapQtAppsHook }:
@@ -14,7 +14,14 @@ stdenv.mkDerivation rec {
     sha256 = "1jk60xw4h6s5crha89wk4y8rrf1f3bixgh5mzh3cq3xyrkba41gh";
   };
 
-  patches = [ ./build-tests.patch
+  patches = [
+    ./build-tests.patch
+    (fetchpatch {
+      name = "CVE-2020-15117.patch";
+      url = "https://github.com/symless/synergy-core/commit/"
+          + "0a97c2be0da2d0df25cb86dfd642429e7a8bea39.patch";
+      sha256 = "03q8m5n50fms7fjfjgmqrgy9mrxwi9kkz3f3vlrs2x5h21dl6bmj";
+    })
   ] ++ lib.optional stdenv.isDarwin ./macos_build_fix.patch;
 
   # Since the included gtest and gmock don't support clang and the
@@ -75,7 +82,7 @@ stdenv.mkDerivation rec {
     description = "Share one mouse and keyboard between multiple computers";
     homepage = "http://synergy-project.org/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ aszlig enzime ];
+    maintainers = with maintainers; [ enzime ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/misc/systembus-notify/default.nix b/pkgs/applications/misc/systembus-notify/default.nix
index 28c1be4219d..374adc6c89b 100644
--- a/pkgs/applications/misc/systembus-notify/default.nix
+++ b/pkgs/applications/misc/systembus-notify/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "systembus-notify";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "rfjakob";
     repo = "systembus-notify";
     rev = "v${version}";
-    sha256 = "11zq84qfmbyl51d3r6294l2bjhlgwa9bx7d263g9fkqrwsg0si0y";
+    sha256 = "1pdn45rfpwhrf20hs87qmk2j8sr7ab8161f81019wnypnb1q2fsv";
   };
 
   buildInputs = [ systemd ];
diff --git a/pkgs/applications/misc/taskell/default.nix b/pkgs/applications/misc/taskell/default.nix
deleted file mode 100644
index 488e49c2181..00000000000
--- a/pkgs/applications/misc/taskell/default.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-{ lib, haskellPackages, fetchFromGitHub }:
-
-let
-  version = "1.7.3";
-  sha256  = "1439fh79ilc6jvz894cfzhk7gy5r2sv4v79bvqmmqbzbqk9qsbvx";
-
-in (haskellPackages.mkDerivation {
-  pname = "taskell";
-  inherit version;
-
-  src = fetchFromGitHub {
-    owner = "smallhadroncollider";
-    repo = "taskell";
-    rev = version;
-    inherit sha256;
-  };
-
-  postPatch = ''${haskellPackages.hpack}/bin/hpack'';
-
-  # basically justStaticExecutables; TODO: use justStaticExecutables
-  enableSharedExecutables = false;
-  enableLibraryProfiling = false;
-  isExecutable = true;
-  doHaddock = false;
-  postFixup = "rm -rf $out/lib $out/nix-support $out/share/doc";
-
-  # copied from packages.yaml
-  libraryHaskellDepends = with haskellPackages; [
-    classy-prelude
-    # base <=5
-    aeson
-    brick
-    # bytestring
-    config-ini
-    # containers
-    # directory
-    file-embed
-    fold-debounce
-    http-conduit
-    http-client
-    http-types
-    lens
-    raw-strings-qq
-    # mtl
-    # template-haskell
-    # text
-    time
-    vty
-  ];
-
-  executableHaskellDepends = [];
-
-  testHaskellDepends = with haskellPackages; [
-    tasty
-    tasty-discover
-    tasty-expected-failure
-    tasty-hunit
-  ];
-
-  description = "Command-line Kanban board/task manager with support for Trello boards and GitHub projects";
-  homepage    = "https://taskell.app";
-  license     = lib.licenses.bsd3;
-  maintainers = with lib.maintainers; [ matthiasbeyer ];
-  platforms   = with lib.platforms; unix ++ darwin;
-})
diff --git a/pkgs/applications/misc/tdrop/default.nix b/pkgs/applications/misc/tdrop/default.nix
index 020298a0c52..f9e2ea34b39 100644
--- a/pkgs/applications/misc/tdrop/default.nix
+++ b/pkgs/applications/misc/tdrop/default.nix
@@ -1,24 +1,34 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper
-, xwininfo, xdotool, xprop }:
+, xwininfo, xdotool, xprop, gawk, coreutils
+, gnugrep, procps }:
 
 stdenv.mkDerivation {
   pname = "tdrop";
-  version = "unstable-2018-11-13";
+  version = "unstable-2020-05-14";
 
   src = fetchFromGitHub {
     owner = "noctuid";
     repo = "tdrop";
-    rev = "198795c0d2573a31979330d6a2ae946eb81deebf";
-    sha256 = "1fhibqgmls64mylcb6q46ipmg1q6pvaqm26vz933gqav6cqsbdzs";
+    rev = "a9f2862515e5c190ac61d394e7fe7e1039871b89";
+    sha256 = "1zxhihgba33k8byjsracsyhby9qpdngbly6c8hpz3pbsyag5liwc";
   };
 
   dontBuild = true;
 
   installFlags = [ "PREFIX=$(out)" ];
 
-  postInstall = ''
-    wrapProgram $out/bin/tdrop \
-      --prefix PATH : ${lib.makeBinPath [ xwininfo xdotool xprop ]}
+  postInstall = let
+    binPath = lib.makeBinPath [
+      xwininfo
+      xdotool
+      xprop
+      gawk
+      coreutils
+      gnugrep
+      procps
+    ];
+  in ''
+    wrapProgram $out/bin/tdrop --prefix PATH : ${binPath}
   '';
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/misc/teleprompter/default.nix b/pkgs/applications/misc/teleprompter/default.nix
index 7cca3afa764..37b3f10329b 100644
--- a/pkgs/applications/misc/teleprompter/default.nix
+++ b/pkgs/applications/misc/teleprompter/default.nix
@@ -1,5 +1,8 @@
-{ lib, stdenv, fetchurl, electron, makeDesktopItem, makeWrapper, nodePackages, autoPatchelfHook}:
+{ lib, stdenv, fetchurl, electron_4, makeDesktopItem, makeWrapper, nodePackages, autoPatchelfHook}:
 
+let
+  electron = electron_4;
+in
 stdenv.mkDerivation rec {
   pname = "teleprompter";
   version = "2.3.4";
diff --git a/pkgs/applications/misc/terminal-parrot/default.nix b/pkgs/applications/misc/terminal-parrot/default.nix
index accaf62c60e..52116a52fbb 100644
--- a/pkgs/applications/misc/terminal-parrot/default.nix
+++ b/pkgs/applications/misc/terminal-parrot/default.nix
@@ -13,11 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "1qalnhhq3fmyzj0hkzc5gk9wbypr558mz3ik5msw7fid68k2i48c";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Shows colorful, animated party parrot in your terminial";
     homepage = "https://github.com/jmhobbs/terminal-parrot";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = [ maintainers.heel ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/misc/timewarrior/default.nix b/pkgs/applications/misc/timewarrior/default.nix
index 25cd3a53670..7b1d3c302b1 100644
--- a/pkgs/applications/misc/timewarrior/default.nix
+++ b/pkgs/applications/misc/timewarrior/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "timewarrior";
-  version = "1.3.0";
+  version = "1.4.2";
 
   enableParallelBuilding = true;
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "GothenburgBitFactory";
     repo = "timewarrior";
     rev = "v${version}";
-    sha256 = "1aijh1ad7gpa61cn7b57w24vy7fyjj0zx5k9z8d6m1ldzbw589cl";
+    sha256 = "0qvhpva0hmhybn0c2aajndw5vnxar1jw4pjjajd2k2cr6vax29dw";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/misc/tipp10/default.nix b/pkgs/applications/misc/tipp10/default.nix
index 8316fd918ab..4782b90b4a1 100644
--- a/pkgs/applications/misc/tipp10/default.nix
+++ b/pkgs/applications/misc/tipp10/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "tipp10";
-  version = "3.1.0";
+  version = "3.2.0";
 
   src = fetchFromGitLab {
-    owner = "a_a";
+    owner = "tipp10";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1mksga1zyqz1y2s524nkw86irg36zpjwz7ff87n2ygrlysczvnx1";
+    sha256 = "0fav5jlw6lw78iqrj7a65b8vd50hhyyaqyzmfrvyxirpsqhjk1v7";
   };
 
   nativeBuildInputs = [ cmake qttools ];
diff --git a/pkgs/applications/misc/tippecanoe/default.nix b/pkgs/applications/misc/tippecanoe/default.nix
index c85192603cb..455876a772b 100644
--- a/pkgs/applications/misc/tippecanoe/default.nix
+++ b/pkgs/applications/misc/tippecanoe/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tippecanoe";
-  version = "1.35.0";
+  version = "1.36.0";
 
   src = fetchFromGitHub {
     owner = "mapbox";
     repo = pname;
     rev = version;
-    sha256 = "0v5ycc3gsqnl9pps3m45yrnb1gvw5pk6jdyr0q6516b4ac6x67m5";
+    sha256 = "0lbmhly4ivnqc6qk1k3sdqvsg6x3nfd8gnjx846bhqj4wag3f88m";
   };
 
   buildInputs = [ sqlite zlib ];
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ sikmir ];
     platforms = with platforms; linux ++ darwin;
+    broken = stdenv.hostPlatform.isAarch64;
   };
 }
diff --git a/pkgs/applications/misc/todiff/default.nix b/pkgs/applications/misc/todiff/default.nix
index f55b3852e5b..431f922eeee 100644
--- a/pkgs/applications/misc/todiff/default.nix
+++ b/pkgs/applications/misc/todiff/default.nix
@@ -20,6 +20,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Ekleog/todiff";
     maintainers = with maintainers; [ ekleog ];
     license = licenses.mit;
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/misc/todoist-electron/default.nix b/pkgs/applications/misc/todoist-electron/default.nix
index be9027f9d09..e1d578edb0f 100644
--- a/pkgs/applications/misc/todoist-electron/default.nix
+++ b/pkgs/applications/misc/todoist-electron/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "todoist-electron";
-  version = "1.22";
+  version = "1.23.0";
 
   src = fetchurl {
-    url = "https://github.com/KryDos/todoist-linux/releases/download/${version}/Todoist_${version}.0_amd64.deb";
-    sha256 = "09w2040xkvv78190fmhx99c0dwy7vpab5fvxs67s7yyjwh5n4693";
+    url = "https://github.com/KryDos/todoist-linux/releases/download/${version}/Todoist_${version}_amd64.deb";
+    sha256 = "1yxa0fdc3fnffny6jf1hm7545792pw7828mc27il17l4kn346g98";
   };
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/applications/misc/todoist/default.nix b/pkgs/applications/misc/todoist/default.nix
index b3b3561227f..68388376f8f 100644
--- a/pkgs/applications/misc/todoist/default.nix
+++ b/pkgs/applications/misc/todoist/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "0cznb8glh36dwyyn1gx1ggkwa9zffrrxg52k78brnaczsl0rsmky";
 
+  doCheck = false;
+
   meta = {
     homepage = "https://github.com/sachaos/todoist";
     description = "Todoist CLI Client";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/misc/tootle/default.nix b/pkgs/applications/misc/tootle/default.nix
index 904782f3e1f..9c6008b7934 100644
--- a/pkgs/applications/misc/tootle/default.nix
+++ b/pkgs/applications/misc/tootle/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , vala
 , meson
@@ -63,7 +64,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/misc/tty-solitaire/default.nix b/pkgs/applications/misc/tty-solitaire/default.nix
new file mode 100644
index 00000000000..00e6efb713e
--- /dev/null
+++ b/pkgs/applications/misc/tty-solitaire/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+  pname = "tty-solitaire";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "mpereira";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0kix7wfy2bda8cw5kfm7bm5acd5fqmdl9g52ms9bza4kf2jnb754";
+  };
+
+  buildInputs = [ ncurses ];
+
+  patchPhase = "sed -i -e '/^CFLAGS *?= *-g *$/d' Makefile";
+
+  makeFlags = [ "CC=cc" "PREFIX=${placeholder "out"}" ];
+
+  meta = with stdenv.lib; {
+    description = "Klondike Solitaire in your ncurses terminal";
+    license = licenses.mit;
+    homepage = "https://github.com/mpereira/tty-solitaire";
+    platforms = ncurses.meta.platforms;
+    maintainers = [ maintainers.AndersonTorres ];
+  };
+}
diff --git a/pkgs/applications/misc/tut/default.nix b/pkgs/applications/misc/tut/default.nix
index 4ff3a06e0b4..d65e894417e 100644
--- a/pkgs/applications/misc/tut/default.nix
+++ b/pkgs/applications/misc/tut/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "tut";
-  version = "0.0.10";
+  version = "0.0.14";
 
   goPackagePath = "github.com/RasmusLindroth/tut";
   goDeps = ./deps.nix;
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "RasmusLindroth";
     repo = pname;
     rev = version;
-    sha256 = "09l6dmzrvcpix3wg4djs6zk3ql6b6lfhd8z9aglbi6fix4pm8565";
+    sha256 = "1l7lc6cjx97v9zhc0b6lfzqjmyv1i3qj83drkck36if3mc60vvwi";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/ulauncher/default.nix b/pkgs/applications/misc/ulauncher/default.nix
index a9713ffed38..81e273dd39d 100644
--- a/pkgs/applications/misc/ulauncher/default.nix
+++ b/pkgs/applications/misc/ulauncher/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchurl
+, nix-update-script
 , python3Packages
 , gdk-pixbuf
 , glib
@@ -103,6 +104,13 @@ python3Packages.buildPythonApplication rec {
     gappsWrapperArgs+=(--prefix PATH : "${stdenv.lib.makeBinPath [ wmctrl ]}")
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+
   meta = with stdenv.lib; {
     description = "A fast application launcher for Linux, written in Python, using GTK";
     homepage = "https://ulauncher.io/";
diff --git a/pkgs/applications/misc/urlscan/default.nix b/pkgs/applications/misc/urlscan/default.nix
index ef4684689b8..c5edd9133b7 100644
--- a/pkgs/applications/misc/urlscan/default.nix
+++ b/pkgs/applications/misc/urlscan/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "urlscan";
-  version = "0.9.4";
+  version = "0.9.5";
 
   src = fetchFromGitHub {
     owner = "firecat53";
     repo = pname;
     rev = version;
-    sha256 = "11wkwjqsq848ks6m2jqsb8h0xnz75fb60bm0c4jkxys9wzy4chg5";
+    sha256 = "16g7dzvjcfhaz52wbmcapamy55l7vfhgizqy3m8dv9gkmy8vap89";
   };
 
   propagatedBuildInputs = [ python3Packages.urwid ];
diff --git a/pkgs/applications/misc/waybar/default.nix b/pkgs/applications/misc/waybar/default.nix
index 7ecaabe9a92..259eb93771b 100644
--- a/pkgs/applications/misc/waybar/default.nix
+++ b/pkgs/applications/misc/waybar/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, meson, pkgconfig, ninja, wrapGAppsHook
-, wayland, wlroots, gtkmm3, libinput, libsigcxx, jsoncpp, fmt, scdoc, spdlog, gtk-layer-shell
+, wayland, wlroots, gtkmm3, libsigcxx, jsoncpp, fmt, scdoc, spdlog, gtk-layer-shell
 , howard-hinnant-date, cmake
 , traySupport  ? true,  libdbusmenu-gtk3
 , pulseSupport ? false, libpulseaudio
@@ -11,13 +11,13 @@
 }:
   stdenv.mkDerivation rec {
     pname = "waybar";
-    version = "0.9.2";
+    version = "0.9.3";
 
     src = fetchFromGitHub {
       owner = "Alexays";
       repo = "Waybar";
       rev = version;
-      sha256 = "1gfxyjzwfqznyrpyr3322z3w844i1lh77kly4hcpy9y5gsfmlafy";
+      sha256 = "0ks719khhg2zwpyiwa2079i6962qcxpapm28hmr4ckpsp2n659ck";
     };
 
     nativeBuildInputs = [
@@ -32,7 +32,7 @@
     strictDeps = false;
 
     buildInputs = with stdenv.lib;
-      [ wayland wlroots gtkmm3 libinput libsigcxx jsoncpp fmt spdlog gtk-layer-shell howard-hinnant-date ]
+      [ wayland wlroots gtkmm3 libsigcxx jsoncpp fmt spdlog gtk-layer-shell howard-hinnant-date ]
       ++ optional  traySupport  libdbusmenu-gtk3
       ++ optional  pulseSupport libpulseaudio
       ++ optional  nlSupport    libnl
diff --git a/pkgs/applications/misc/weather/default.nix b/pkgs/applications/misc/weather/default.nix
index ce4fae1cb22..9b6289d7082 100644
--- a/pkgs/applications/misc/weather/default.nix
+++ b/pkgs/applications/misc/weather/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, pythonPackages }:
 
 stdenv.mkDerivation rec {
-    version = "2.3";
+    version = "2.4";
     pname = "weather";
 
     src = fetchurl {
         url = "http://fungi.yuggoth.org/weather/src/${pname}-${version}.tar.xz";
-        sha256 = "0inij30prqqcmzjwcmfzjjn0ya5klv18qmajgxipz1jr3lpqs546";
+        sha256 = "084f0am0s1h6y71wgja9acaaxp0mq6k74b6ad4b5wpk2znwv0rzz";
     };
 
     nativeBuildInputs = [ pythonPackages.wrapPython ];
diff --git a/pkgs/applications/misc/wofi/default.nix b/pkgs/applications/misc/wofi/default.nix
index 37b991e6d47..4aeff6c9ec8 100644
--- a/pkgs/applications/misc/wofi/default.nix
+++ b/pkgs/applications/misc/wofi/default.nix
@@ -1,28 +1,27 @@
-{ stdenv, lib, fetchhg, fetchpatch, pkg-config, meson, ninja, wayland, gtk3, wrapGAppsHook }:
+{ stdenv, lib, fetchhg, fetchpatch, pkg-config, meson, ninja, wayland, gtk3, wrapGAppsHook, installShellFiles }:
 
 stdenv.mkDerivation rec {
   pname = "wofi";
-  version = "1.1.2";
+  version = "1.2.1";
 
   src = fetchhg {
     url = "https://hg.sr.ht/~scoopta/wofi";
     rev = "v${version}";
-    sha256 = "086j5wshawjbwdmmmldivfagc2rr7g5a2gk11l0snqqslm294xsn";
+    sha256 = "0hx61br19dlmc3lay23ww3n9ry06m7b6xrkjx7sk4vrg1422iq99";
   };
 
-  nativeBuildInputs = [ pkg-config meson ninja wrapGAppsHook ];
+  nativeBuildInputs = [ pkg-config meson ninja wrapGAppsHook installShellFiles ];
   buildInputs = [ wayland gtk3 ];
 
-  # Fixes icon bug on NixOS.
-  # Will need to be removed on next release
-  # see https://todo.sr.ht/~scoopta/wofi/54
   patches = [
-    (fetchpatch {
-      url = "https://paste.sr.ht/blob/1cbddafac3806afb203940c029e78ce8390d8f49";
-      sha256 = "1n4jpmh66p7asjhj0z2s94ny91lmaq4hhh2356nj406vlqr15vbb";
-    })
+    # https://todo.sr.ht/~scoopta/wofi/121
+    ./do_not_follow_symlinks.patch
   ];
 
+  postInstall = ''
+    installManPage man/wofi*
+  '';
+
   meta = with lib; {
     description = "A launcher/menu program for wlroots based wayland compositors such as sway";
     homepage = "https://hg.sr.ht/~scoopta/wofi";
diff --git a/pkgs/applications/misc/wofi/do_not_follow_symlinks.patch b/pkgs/applications/misc/wofi/do_not_follow_symlinks.patch
new file mode 100644
index 00000000000..f917c4c1685
--- /dev/null
+++ b/pkgs/applications/misc/wofi/do_not_follow_symlinks.patch
@@ -0,0 +1,39 @@
+diff -r 3414ab984249 modes/run.c
+--- a/modes/run.c	Tue Aug 11 19:07:49 2020 -0700
++++ b/modes/run.c	Sat Aug 22 13:39:52 2020 +0200
+@@ -91,23 +91,10 @@
+ 
+ 	char* path = strdup(getenv("PATH"));
+ 
+-	struct map* paths = map_init();
+-
+ 	char* save_ptr;
+ 	char* str = strtok_r(path, ":", &save_ptr);
+ 	do {
+ 
+-		str = realpath(str, NULL);
+-		if(str == NULL) {
+-			continue;
+-		}
+-		if(map_contains(paths, str)) {
+-			free(str);
+-			continue;
+-		}
+-
+-		map_put(paths, str, "true");
+-
+ 		DIR* dir = opendir(str);
+ 		if(dir == NULL) {
+ 			continue;
+@@ -132,11 +119,9 @@
+ 			}
+ 			free(full_path);
+ 		}
+-		free(str);
+ 		closedir(dir);
+ 	} while((str = strtok_r(NULL, ":", &save_ptr)) != NULL);
+ 	free(path);
+-	map_free(paths);
+ 	map_free(cached);
+ 	map_free(entries);
+ }
diff --git a/pkgs/applications/misc/worker/default.nix b/pkgs/applications/misc/worker/default.nix
index 9e3022457a0..b19b1b86cf5 100644
--- a/pkgs/applications/misc/worker/default.nix
+++ b/pkgs/applications/misc/worker/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "worker";
-  version = "4.4.0";
+  version = "4.5.0";
 
   src = fetchurl {
     url = "http://www.boomerangsworld.de/cms/worker/downloads/${pname}-${version}.tar.gz";
-    sha256 = "1k2svpzq01n1h9365nhi7r2k7dmsviczxi9m6fb80ccccdz7i530";
+    sha256 = "02xrdg1v784p4gfqjm1mlxqwi40qlbzhp68p5ksj96cjv6av5b5s";
   };
 
   buildInputs = [ libX11 ];
diff --git a/pkgs/applications/misc/wtf/default.nix b/pkgs/applications/misc/wtf/default.nix
index aeece53e779..612b97b5b53 100644
--- a/pkgs/applications/misc/wtf/default.nix
+++ b/pkgs/applications/misc/wtf/default.nix
@@ -7,16 +7,18 @@
 
 buildGoModule rec {
   pname = "wtf";
-  version = "0.30.0";
+  version = "0.31.0";
 
   src = fetchFromGitHub {
     owner = "wtfutil";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11vy39zygk1gxb1nc1zmxlgs6fn7yq68090fwm2jar0lsxx8a83i";
+    sha256 = "07ngk83p753w9qxm8bvw6n5vk0zldn14yv08d900sxny8cg2h0rb";
    };
 
-  vendorSha256 = "0qfb352gmsmy5glrsjwc3w57di5k2kjdsyfqn4xf7p4v12yg88va";
+  vendorSha256 = "09iy148pnbdrzjj2j50lbd8s9mkv7vggrx77mj88p1gnqclz3lip";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
diff --git a/pkgs/applications/misc/x3270/default.nix b/pkgs/applications/misc/x3270/default.nix
new file mode 100644
index 00000000000..747d2653876
--- /dev/null
+++ b/pkgs/applications/misc/x3270/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, openssl, m4, expat
+, libX11, libXt, libXaw, libXmu, bdftopcf, mkfontdir
+, fontadobe100dpi, fontadobeutopia100dpi, fontbh100dpi
+, fontbhlucidatypewriter100dpi, fontbitstream100dpi
+, tcl
+, ncurses }:
+
+let
+  majorVersion = "4";
+  minorVersion = "0";
+  versionSuffix = "ga9";
+in stdenv.mkDerivation rec {
+  pname = "x3270";
+  version = "${majorVersion}.${minorVersion}${versionSuffix}";
+
+  src = fetchurl {
+    url = "http://x3270.bgp.nu/download/0${majorVersion}.0${minorVersion}/suite3270-${version}-src.tgz";
+    sha256 = "0km24rgll0s4ji6iz8lvy5ra76ds162s95y33w5px6697cwqkp9j";
+  };
+
+  buildFlags = "unix";
+
+  postConfigure = ''
+    pushd c3270 ; ./configure ; popd
+  '';
+
+  nativeBuildInputs = [ m4 ];
+  buildInputs = [
+    expat
+    libX11 libXt libXaw libXmu bdftopcf mkfontdir
+    fontadobe100dpi fontadobeutopia100dpi fontbh100dpi
+    fontbhlucidatypewriter100dpi fontbitstream100dpi
+    tcl
+    ncurses
+    expat
+  ];
+
+  meta = with stdenv.lib; {
+    description = "IBM 3270 terminal emulator for the X Window System";
+    homepage = "http://x3270.bgp.nu/index.html";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.anna328p ];
+  };
+}
diff --git a/pkgs/applications/misc/xmenu/default.nix b/pkgs/applications/misc/xmenu/default.nix
new file mode 100644
index 00000000000..0904d1d048f
--- /dev/null
+++ b/pkgs/applications/misc/xmenu/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, imlib2, libX11, libXft, libXinerama }:
+
+stdenv.mkDerivation rec {
+  pname = "xmenu";
+  version = "4.3.1";
+
+  src = fetchFromGitHub {
+    owner = "phillbush";
+    repo = "xmenu";
+    rev = "v${version}";
+    sha256 = "0m97w1nwak5drcxxlyisqb73fxkapy2rlph9mg531kbx3k2h30r1";
+  };
+
+  buildInputs = [ imlib2 libX11 libXft libXinerama ];
+
+  postPatch = "sed -i \"s:/usr/local:$out:\" config.mk";
+
+  meta = with stdenv.lib; {
+    description = "XMenu is a menu utility for X";
+    homepage = "https://github.com/phillbush/xmenu";
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ neonfuz ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/misc/zathura/core/default.nix b/pkgs/applications/misc/zathura/core/default.nix
index 44f200174d9..58b1a81c90f 100644
--- a/pkgs/applications/misc/zathura/core/default.nix
+++ b/pkgs/applications/misc/zathura/core/default.nix
@@ -24,18 +24,17 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dsqlite=enabled"
     "-Dmagic=enabled"
-    # "-Dseccomp=enabled"
     "-Dmanpages=enabled"
     "-Dconvert-icon=enabled"
     "-Dsynctex=enabled"
     # Make sure tests are enabled for doCheck
     "-Dtests=enabled"
-  ];
+  ] ++ optional (!stdenv.isLinux) "-Dseccomp=disabled";
 
   nativeBuildInputs = [
     meson ninja pkgconfig desktop-file-utils python3.pkgs.sphinx
-    gettext wrapGAppsHook libxml2 check
-  ] ++ optional stdenv.isLinux appstream-glib;
+    gettext wrapGAppsHook libxml2 check appstream-glib
+  ];
 
   buildInputs = [
     gtk girara libintl sqlite glib file librsvg
diff --git a/pkgs/applications/misc/zettlr/default.nix b/pkgs/applications/misc/zettlr/default.nix
new file mode 100644
index 00000000000..3d762d9ab2a
--- /dev/null
+++ b/pkgs/applications/misc/zettlr/default.nix
@@ -0,0 +1,38 @@
+{ appimageTools, lib, fetchurl, gtk3, gsettings-desktop-schemas}:
+
+# Based on https://gist.github.com/msteen/96cb7df66a359b827497c5269ccbbf94 and joplin-desktop nixpkgs.
+let
+  pname = "zettlr";
+  version = "1.7.5";
+  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage";
+    sha256 = "040lx01ywdpla34d4abkmh51kchr11s17la6fk6yq77y8zb87xzi";
+  };
+  appimageContents = appimageTools.extractType2 {
+    inherit name src;
+  };
+in appimageTools.wrapType2 rec {
+  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
+  '';
+
+  multiPkgs = null; # no 32bit needed
+  extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
+  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
+    substituteInPlace $out/share/applications/zettlr.desktop --replace 'Exec=AppRun' 'Exec=${pname}'
+  '';
+
+  meta = with lib; {
+    description = "A markdown editor for writing academic texts and taking notes";
+    homepage = "https://www.zettlr.com";
+    platforms = [ "x86_64-linux" ];
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ tfmoraes ];
+  };
+}
diff --git a/pkgs/applications/misc/zola/default.nix b/pkgs/applications/misc/zola/default.nix
index d88d7296fd6..5c4df9880d9 100644
--- a/pkgs/applications/misc/zola/default.nix
+++ b/pkgs/applications/misc/zola/default.nix
@@ -1,22 +1,24 @@
-{ stdenv, fetchFromGitHub, rustPlatform, cmake, pkg-config, openssl, CoreServices }:
+{ stdenv, fetchFromGitHub, rustPlatform, cmake, pkg-config, openssl, oniguruma, CoreServices }:
 
 rustPlatform.buildRustPackage rec {
   pname = "zola";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "getzola";
     repo = pname;
     rev = "v${version}";
-    sha256 = "137ak9gzcn3689fmcb90wa4szw43rh2m51mf26l77a5gksn5y6cn";
+    sha256 = "119ikgall6bv1r6h1pqcmc6nxkxld2lch04gk860zzk54jragbrp";
   };
 
-  cargoSha256 = "0v40bcqh48dlhdc0kz7wm3q9r3i1m6j9s74bfiv237dqx5dymmsg";
+  cargoSha256 = "1jx5bgfmbv0wljps1yv6yir2pjlb0vwzzba4i2sv32awv9y0q3v6";
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ openssl ]
+  buildInputs = [ openssl oniguruma ]
     ++ stdenv.lib.optional stdenv.isDarwin CoreServices;
 
+  RUSTONIG_SYSTEM_LIBONIG = true;
+
   postInstall = ''
     install -D -m 444 completions/zola.bash \
       -t $out/share/bash-completion/completions
@@ -31,6 +33,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://www.getzola.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ dywedir ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/networking/Sylk/default.nix b/pkgs/applications/networking/Sylk/default.nix
index f6a88f26e9a..0796e117311 100644
--- a/pkgs/applications/networking/Sylk/default.nix
+++ b/pkgs/applications/networking/Sylk/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "Sylk";
-  version = "2.7.2";
+  version = "2.8.2";
 in
 
 appimageTools.wrapType2 rec {
@@ -10,7 +10,7 @@ appimageTools.wrapType2 rec {
 
   src = fetchurl {
     url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage";
-    sha256 = "1hz41jan8hw56ahpaajlb1yy5zjkyxrclzmqhklm5x59b76pd0zx";
+    hash = "sha256:0figpfm5cgbryq6v26k9gj42zgbk335bsa3bzyxpvz2slq8rzb2y";
   };
 
   profile = ''
diff --git a/pkgs/applications/networking/browsers/amfora/default.nix b/pkgs/applications/networking/browsers/amfora/default.nix
new file mode 100644
index 00000000000..2772cb6d987
--- /dev/null
+++ b/pkgs/applications/networking/browsers/amfora/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "amfora";
+  version = "1.5.0";
+
+  src = fetchFromGitHub {
+    owner = "makeworld-the-better-one";
+    repo = "amfora";
+    rev = "v${version}";
+    sha256 = "011h5xzwiafh3fdp9wil8n618p45ph9swa66lw6s82ijpiizz79s";
+  };
+
+  vendorSha256 = "10f3bh3r3jc1185r8r1ihg8rprdpl8qwg5b6wqwsda96ydkbpi2b";
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A fancy terminal browser for the Gemini protocol";
+    homepage = "https://github.com/makeworld-the-better-one/amfora";
+    license = with licenses; [ gpl3 ];
+    maintainers = with maintainers; [ deifactor ];
+  };
+}
diff --git a/pkgs/applications/networking/browsers/asuka/cargo-lock.patch b/pkgs/applications/networking/browsers/asuka/cargo-lock.patch
deleted file mode 100644
index 1d3990bc62f..00000000000
--- a/pkgs/applications/networking/browsers/asuka/cargo-lock.patch
+++ /dev/null
@@ -1,1351 +0,0 @@
-diff --git i/Cargo.lock w/Cargo.lock
-index 6807c00..00b2c60 100644
---- i/Cargo.lock
-+++ w/Cargo.lock
-@@ -4,29 +4,34 @@
- name = "aho-corasick"
- version = "0.7.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d"
- dependencies = [
-- "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memchr",
- ]
- 
- [[package]]
- name = "arc-swap"
- version = "0.4.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d7b8a9123b8027467bce0099fe556c628a53c8d83df0507084c31e9ba2e39aff"
- 
- [[package]]
- name = "array-macro"
- version = "1.0.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7d034edd76d4e7adc314c95400941dedc89bd4337d565bf87f6b69d3b20dc4de"
- 
- [[package]]
- name = "arrayref"
- version = "0.3.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee"
- 
- [[package]]
- name = "arrayvec"
- version = "0.5.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
- 
- [[package]]
- name = "asuka"
-@@ -38,8 +43,6 @@ dependencies = [
-  "lazy_static",
-  "native-tls",
-  "open",
-- "openssl",
-- "openssl-sys",
-  "regex",
-  "tempfile",
-  "textwrap",
-@@ -50,769 +53,861 @@ dependencies = [
- name = "autocfg"
- version = "0.1.7"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
- 
- [[package]]
- name = "backtrace"
- version = "0.3.40"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "924c76597f0d9ca25d762c25a4d369d51267536465dc5064bdf0eb073ed477ea"
- 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.65 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "backtrace-sys",
-+ "cfg-if",
-+ "libc",
-+ "rustc-demangle",
- ]
- 
- [[package]]
- name = "backtrace-sys"
- version = "0.1.32"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491"
- dependencies = [
-- "cc 1.0.47 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cc",
-+ "libc",
- ]
- 
- [[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 = "bitflags"
- version = "1.2.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
- 
- [[package]]
- name = "blake2b_simd"
- version = "0.5.9"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b83b7baab1e671718d78204225800d6b170e648188ac7dc992e9d6bddf87d0c0"
- dependencies = [
-- "arrayref 0.3.5 (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.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "arrayref",
-+ "arrayvec",
-+ "constant_time_eq",
- ]
- 
- [[package]]
- name = "byteorder"
- version = "1.3.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
- 
- [[package]]
- name = "c2-chacha"
- version = "0.2.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb"
- dependencies = [
-- "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ppv-lite86",
- ]
- 
- [[package]]
- name = "cc"
- version = "1.0.47"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aa87058dce70a3ff5621797f1506cb837edd02ac4c0ae642b4542dce802908b8"
- 
- [[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.9"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e8493056968583b0193c1bb04d6f7684586f3726992d6c573261941a895dbd68"
- dependencies = [
-- "libc 0.2.65 (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.9 (registry+https://github.com/rust-lang/crates.io-index)",
-- "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc",
-+ "num-integer",
-+ "num-traits",
-+ "time",
- ]
- 
- [[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 = "constant_time_eq"
- version = "0.1.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "995a44c877f9212528ccc74b21a232f66ad69001e40ede5bcee2ac9ef2657120"
- 
- [[package]]
- name = "core-foundation"
- version = "0.6.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d"
- dependencies = [
-- "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "core-foundation-sys",
-+ "libc",
- ]
- 
- [[package]]
- name = "core-foundation-sys"
- version = "0.6.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b"
- 
- [[package]]
- name = "crossbeam-channel"
- version = "0.3.9"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c8ec7fcd21571dc78f96cc96243cab8d8f035247c3efd16c687be154c3fa9efa"
- dependencies = [
-- "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-utils",
- ]
- 
- [[package]]
- name = "crossbeam-utils"
- version = "0.6.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
- 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)",
-+ "cfg-if",
-+ "lazy_static",
- ]
- 
- [[package]]
- name = "cursive"
- version = "0.13.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6261747aa936aab19fc4ac3a2c1a8eee8fb5862ba96fb1e524ee56cb520d9caf"
- dependencies = [
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "chrono 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)",
-- "crossbeam-channel 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-- "enum-map 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "enumset 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "hashbrown 0.5.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.65 (registry+https://github.com/rust-lang/crates.io-index)",
-- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-- "maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "ncurses 5.99.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "signal-hook 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
-- "term_size 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "toml 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
-- "unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-- "xi-unicode 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if",
-+ "chrono",
-+ "crossbeam-channel",
-+ "enum-map",
-+ "enumset",
-+ "hashbrown",
-+ "lazy_static",
-+ "libc",
-+ "log",
-+ "maplit",
-+ "ncurses",
-+ "num",
-+ "owning_ref",
-+ "signal-hook",
-+ "term_size",
-+ "toml",
-+ "unicode-segmentation",
-+ "unicode-width",
-+ "xi-unicode",
- ]
- 
- [[package]]
- name = "darling"
- version = "0.10.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858"
- dependencies = [
-- "darling_core 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "darling_macro 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "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 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
-- "ident_case 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
-- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "strsim 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "syn 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "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 0.10.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.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "darling_core",
-+ "quote",
-+ "syn",
- ]
- 
- [[package]]
- name = "dirs"
- version = "2.0.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3"
- dependencies = [
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if",
-+ "dirs-sys",
- ]
- 
- [[package]]
- name = "dirs-sys"
- version = "0.3.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b"
- dependencies = [
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
-- "redox_users 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)",
-+ "cfg-if",
-+ "libc",
-+ "redox_users",
-+ "winapi 0.3.8",
- ]
- 
- [[package]]
- name = "enum-map"
- version = "0.6.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "75eb4afb8170adb4120b13700c1af58c3137cd72e4c56e282045af5c29ab5329"
- dependencies = [
-- "array-macro 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "enum-map-derive 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "array-macro",
-+ "enum-map-derive",
- ]
- 
- [[package]]
- name = "enum-map-derive"
- version = "0.4.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e57001dfb2532f5a103ff869656887fae9a8defa7d236f3e39d2ee86ed629ad7"
- dependencies = [
-- "proc-macro2 1.0.6 (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.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
- ]
- 
- [[package]]
- name = "enumset"
- version = "0.4.4"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "57b811aef4ff1cc938f13bbec348f0ecbfc2bb565b7ab90161c9f0b2805edc8a"
- dependencies = [
-- "enumset_derive 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-traits 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "enumset_derive",
-+ "num-traits",
- ]
- 
- [[package]]
- name = "enumset_derive"
- version = "0.4.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b184c2d0714bbeeb6440481a19c78530aa210654d99529f13d2f860a1b447598"
- dependencies = [
-- "darling 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "proc-macro2 1.0.6 (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.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "darling",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
- ]
- 
- [[package]]
- name = "failure"
- version = "0.1.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9"
- dependencies = [
-- "backtrace 0.3.40 (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"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0bc225b78e0391e4b8683440bf2e63c2deeeb2ce5189eab46e2b68c6d3725d08"
- dependencies = [
-- "proc-macro2 1.0.6 (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.8 (registry+https://github.com/rust-lang/crates.io-index)",
-- "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+ "synstructure",
- ]
- 
- [[package]]
- name = "fnv"
- version = "1.0.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
- 
- [[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 = "fuchsia-cprng"
- version = "0.1.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
- 
- [[package]]
- name = "getrandom"
- version = "0.1.13"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e7db7ca94ed4cd01190ceee0d8a8052f08a247aa1b469a7f68c6a3b71afcf407"
- dependencies = [
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
-- "wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if",
-+ "libc",
-+ "wasi",
- ]
- 
- [[package]]
- name = "hashbrown"
- version = "0.5.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e1de41fb8dba9714efd92241565cdff73f78508c95697dd56787d3cba27e2353"
- 
- [[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"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
- 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.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "matches",
-+ "unicode-bidi",
-+ "unicode-normalization",
- ]
- 
- [[package]]
- name = "json"
- version = "0.12.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b3ca41abbeb7615d56322a984e63be5e5d0a117dfaca86c14393e32a762ccac1"
- 
- [[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.65"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1a31a0627fdf1f6a39ec0dd577e101440b7db22672c0901fe00a9a6fbb5c24e8"
- 
- [[package]]
- name = "log"
- version = "0.4.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
- dependencies = [
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if",
- ]
- 
- [[package]]
- name = "maplit"
- version = "1.0.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
- 
- [[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.2.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
- 
- [[package]]
- name = "native-tls"
- version = "0.2.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4b2df1a4c22fd44a62147fd8f13dd0f95c9d8ca7b2610299b2a2f9cf8964274e"
- dependencies = [
-- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.65 (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.25 (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.52 (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.3 (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",
-+ "libc",
-+ "log",
-+ "openssl",
-+ "openssl-probe",
-+ "openssl-sys",
-+ "schannel",
-+ "security-framework",
-+ "security-framework-sys",
-+ "tempfile",
- ]
- 
- [[package]]
- name = "ncurses"
- version = "5.99.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "15699bee2f37e9f8828c7b35b2bc70d13846db453f2d507713b758fabe536b82"
- dependencies = [
-- "cc 1.0.47 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
-- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cc",
-+ "libc",
-+ "pkg-config",
- ]
- 
- [[package]]
- name = "num"
- version = "0.2.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf4825417e1e1406b3782a8ce92f4d53f26ec055e3622e1881ca8e9f5f9e08db"
- dependencies = [
-- "num-complex 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-rational 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-traits 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-complex",
-+ "num-integer",
-+ "num-iter",
-+ "num-rational",
-+ "num-traits",
- ]
- 
- [[package]]
- name = "num-complex"
- version = "0.2.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fcb0cf31fb3ff77e6d2a6ebd6800df7fdcd106f2ad89113c9130bcd07f93dffc"
- dependencies = [
-- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-traits 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg",
-+ "num-traits",
- ]
- 
- [[package]]
- name = "num-integer"
- version = "0.1.41"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09"
- dependencies = [
-- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "num-traits 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg",
-+ "num-traits",
- ]
- 
- [[package]]
- name = "num-iter"
- version = "0.1.39"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "76bd5272412d173d6bf9afdf98db8612bbabc9a7a830b7bfc9c188911716132e"
- dependencies = [
-- "autocfg 0.1.7 (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.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg",
-+ "num-integer",
-+ "num-traits",
- ]
- 
- [[package]]
- name = "num-rational"
- version = "0.2.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f2885278d5fe2adc2f75ced642d52d879bffaceb5a2e0b1d4309ffdfb239b454"
- dependencies = [
-- "autocfg 0.1.7 (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.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg",
-+ "num-integer",
-+ "num-traits",
- ]
- 
- [[package]]
- name = "num-traits"
- version = "0.2.9"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "443c53b3c3531dfcbfa499d8893944db78474ad7a1d87fa2d94d1a2231693ac6"
- dependencies = [
-- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg",
- ]
- 
- [[package]]
- name = "open"
- version = "1.3.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "94b424e1086328b0df10235c6ff47be63708071881bead9e76997d9291c0134b"
- dependencies = [
-- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8",
- ]
- 
- [[package]]
- name = "openssl"
- version = "0.10.25"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2f372b2b53ce10fb823a337aaa674e3a7d072b957c6264d0f4ff0bd86e657449"
- 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.65 (registry+https://github.com/rust-lang/crates.io-index)",
-- "openssl-sys 0.9.52 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags",
-+ "cfg-if",
-+ "foreign-types",
-+ "lazy_static",
-+ "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-sys"
- version = "0.9.52"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c977d08e1312e2f7e4b86f9ebaa0ed3b19d1daff75fae88bbb88108afbd801fc"
- dependencies = [
-- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-- "cc 1.0.47 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.65 (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.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "autocfg",
-+ "cc",
-+ "libc",
-+ "pkg-config",
-+ "vcpkg",
- ]
- 
- [[package]]
- name = "owning_ref"
- version = "0.4.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13"
- dependencies = [
-- "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "stable_deref_trait",
- ]
- 
- [[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"
-+checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
- 
- [[package]]
- name = "ppv-lite86"
- version = "0.2.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
- 
- [[package]]
- name = "proc-macro2"
- version = "1.0.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9c9e470a8dc4aeae2dee2f335e8f533e2d4b347e1434e5671afc49b054592f27"
- dependencies = [
-- "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid",
- ]
- 
- [[package]]
- name = "quote"
- version = "1.0.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
- dependencies = [
-- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "proc-macro2",
- ]
- 
- [[package]]
- name = "rand"
- version = "0.7.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3ae1b169243eaf61759b8475a998f0a385e42042370f3a7dbaf35246eacc8412"
- dependencies = [
-- "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.65 (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)",
-+ "getrandom",
-+ "libc",
-+ "rand_chacha",
-+ "rand_core 0.5.1",
-+ "rand_hc",
- ]
- 
- [[package]]
- name = "rand_chacha"
- version = "0.2.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
- 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)",
-+ "c2-chacha",
-+ "rand_core 0.5.1",
- ]
- 
- [[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"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
- dependencies = [
-- "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "getrandom",
- ]
- 
- [[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 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.5.1",
- ]
- 
- [[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.65 (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.8",
- ]
- 
- [[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"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
- 
- [[package]]
- name = "redox_users"
- version = "0.3.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4ecedbca3bf205f8d8f5c2b44d83cd0690e39ee84b951ed649e9f1841132b66d"
- dependencies = [
-- "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand_os 0.1.3 (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.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure",
-+ "rand_os",
-+ "redox_syscall",
-+ "rust-argon2",
- ]
- 
- [[package]]
- name = "regex"
- version = "1.3.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dc220bd33bdce8f093101afe22a037b8eb0e5af33592e6a9caafff0d4cb81cbd"
- dependencies = [
-- "aho-corasick 0.7.6 (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.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
-- "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "aho-corasick",
-+ "memchr",
-+ "regex-syntax",
-+ "thread_local",
- ]
- 
- [[package]]
- name = "regex-syntax"
- version = "0.6.12"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716"
- 
- [[package]]
- name = "remove_dir_all"
- version = "0.5.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
- dependencies = [
-- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8",
- ]
- 
- [[package]]
- name = "rust-argon2"
- version = "0.5.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4ca4eaef519b494d1f2848fc602d18816fed808a981aedf4f1f00ceb7c9d32cf"
- dependencies = [
-- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
-- "blake2b_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)",
-- "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "base64",
-+ "blake2b_simd",
-+ "crossbeam-utils",
- ]
- 
- [[package]]
- name = "rustc-demangle"
- version = "0.1.16"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
- 
- [[package]]
- name = "schannel"
- version = "0.1.16"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021"
- 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",
-+ "winapi 0.3.8",
- ]
- 
- [[package]]
- name = "security-framework"
- version = "0.3.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "301c862a6d0ee78f124c5e1710205965fc5c553100dcda6d98f13ef87a763f04"
- 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.65 (registry+https://github.com/rust-lang/crates.io-index)",
-- "security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "core-foundation",
-+ "core-foundation-sys",
-+ "libc",
-+ "security-framework-sys",
- ]
- 
- [[package]]
- name = "security-framework-sys"
- version = "0.3.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e31493fc37615debb8c5090a7aeb4a9730bc61e77ab10b9af59f1a202284f895"
- dependencies = [
-- "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "core-foundation-sys",
- ]
- 
- [[package]]
- name = "serde"
- version = "1.0.102"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0c4b39bd9b0b087684013a792c59e3e07a46a01d2322518d8a1104641a0b1be0"
- 
- [[package]]
- name = "signal-hook"
- version = "0.1.11"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cb543aecec4ba8b867f41284729ddfdb7e8fcd70ec3d7d37fca3007a4b53675f"
- dependencies = [
-- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
-- "signal-hook-registry 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc",
-+ "signal-hook-registry",
- ]
- 
- [[package]]
- name = "signal-hook-registry"
- version = "1.1.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1797d48f38f91643908bb14e35e79928f9f4b3cefb2420a564dde0991b4358dc"
- dependencies = [
-- "arc-swap 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "arc-swap",
-+ "libc",
- ]
- 
- [[package]]
- name = "smallvec"
- version = "0.6.13"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
- dependencies = [
-- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "maybe-uninit",
- ]
- 
- [[package]]
- name = "stable_deref_trait"
- version = "1.1.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
- 
- [[package]]
- name = "strsim"
- version = "0.9.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "032c03039aae92b350aad2e3779c352e104d919cb192ba2fabbd7b831ce4f0f6"
- 
- [[package]]
- name = "syn"
- version = "1.0.8"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "661641ea2aa15845cddeb97dad000d22070bb5c1fb456b96c1cba883ec691e92"
- dependencies = [
-- "proc-macro2 1.0.6 (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",
-+ "unicode-xid",
- ]
- 
- [[package]]
- name = "synstructure"
- version = "0.12.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545"
- dependencies = [
-- "proc-macro2 1.0.6 (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.8 (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",
-+ "syn",
-+ "unicode-xid",
- ]
- 
- [[package]]
- name = "tempfile"
- version = "3.1.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
- dependencies = [
-- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
-- "rand 0.7.2 (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",
-+ "libc",
-+ "rand",
-+ "redox_syscall",
-+ "remove_dir_all",
-+ "winapi 0.3.8",
- ]
- 
- [[package]]
- name = "term_size"
- version = "0.3.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9e5b9a66db815dcfd2da92db471106457082577c3c278d4138ab3e3b4e189327"
- dependencies = [
-- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-- "libc 0.2.65 (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",
-+ "winapi 0.2.8",
- ]
- 
- [[package]]
-@@ -828,225 +923,126 @@ dependencies = [
- 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"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
- dependencies = [
-- "libc 0.2.65 (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)",
-+ "libc",
-+ "redox_syscall",
-+ "winapi 0.3.8",
- ]
- 
- [[package]]
- name = "toml"
- version = "0.5.5"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "01d1404644c8b12b16bfcffa4322403a91a451584daaaa7c28d3152e6cbc98cf"
- dependencies = [
-- "serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde",
- ]
- 
- [[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.9"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "09c8070a9942f5e7cfccd93f490fdebd230ee3c3c9f107cb25bad5351ef671cf"
- dependencies = [
-- "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "smallvec",
- ]
- 
- [[package]]
- name = "unicode-segmentation"
- version = "1.6.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
- 
- [[package]]
- name = "unicode-width"
- version = "0.1.6"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20"
- 
- [[package]]
- name = "unicode-xid"
- version = "0.2.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
- 
- [[package]]
- name = "url"
- version = "2.1.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "75b414f6c464c879d7f9babf951f23bc3743fb7313c081b2e6ca719067ea9d61"
- 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)",
-+ "idna",
-+ "matches",
-+ "percent-encoding",
- ]
- 
- [[package]]
- name = "vcpkg"
- version = "0.2.7"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "33dd455d0f96e90a75803cfeb7f948768c08d70a6de9a8d2362461935698bf95"
- 
- [[package]]
- name = "wasi"
- version = "0.7.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d"
- 
- [[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"
- source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
- 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"
-+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
- 
- [[package]]
- name = "xi-unicode"
- version = "0.2.0"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--
--[metadata]
--"checksum aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d"
--"checksum arc-swap 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d7b8a9123b8027467bce0099fe556c628a53c8d83df0507084c31e9ba2e39aff"
--"checksum array-macro 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7d034edd76d4e7adc314c95400941dedc89bd4337d565bf87f6b69d3b20dc4de"
--"checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee"
--"checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
--"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
--"checksum backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)" = "924c76597f0d9ca25d762c25a4d369d51267536465dc5064bdf0eb073ed477ea"
--"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 bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
--"checksum blake2b_simd 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b83b7baab1e671718d78204225800d6b170e648188ac7dc992e9d6bddf87d0c0"
--"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
--"checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb"
--"checksum cc 1.0.47 (registry+https://github.com/rust-lang/crates.io-index)" = "aa87058dce70a3ff5621797f1506cb837edd02ac4c0ae642b4542dce802908b8"
--"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
--"checksum chrono 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e8493056968583b0193c1bb04d6f7684586f3726992d6c573261941a895dbd68"
--"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
--"checksum constant_time_eq 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "995a44c877f9212528ccc74b21a232f66ad69001e40ede5bcee2ac9ef2657120"
--"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 crossbeam-channel 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c8ec7fcd21571dc78f96cc96243cab8d8f035247c3efd16c687be154c3fa9efa"
--"checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
--"checksum cursive 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6261747aa936aab19fc4ac3a2c1a8eee8fb5862ba96fb1e524ee56cb520d9caf"
--"checksum darling 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858"
--"checksum darling_core 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b"
--"checksum darling_macro 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72"
--"checksum dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3"
--"checksum dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b"
--"checksum enum-map 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "75eb4afb8170adb4120b13700c1af58c3137cd72e4c56e282045af5c29ab5329"
--"checksum enum-map-derive 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e57001dfb2532f5a103ff869656887fae9a8defa7d236f3e39d2ee86ed629ad7"
--"checksum enumset 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "57b811aef4ff1cc938f13bbec348f0ecbfc2bb565b7ab90161c9f0b2805edc8a"
--"checksum enumset_derive 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b184c2d0714bbeeb6440481a19c78530aa210654d99529f13d2f860a1b447598"
--"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 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 getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "e7db7ca94ed4cd01190ceee0d8a8052f08a247aa1b469a7f68c6a3b71afcf407"
--"checksum hashbrown 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e1de41fb8dba9714efd92241565cdff73f78508c95697dd56787d3cba27e2353"
--"checksum ident_case 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
--"checksum idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
--"checksum json 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3ca41abbeb7615d56322a984e63be5e5d0a117dfaca86c14393e32a762ccac1"
--"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.65 (registry+https://github.com/rust-lang/crates.io-index)" = "1a31a0627fdf1f6a39ec0dd577e101440b7db22672c0901fe00a9a6fbb5c24e8"
--"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
--"checksum maplit 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
--"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.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
--"checksum native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4b2df1a4c22fd44a62147fd8f13dd0f95c9d8ca7b2610299b2a2f9cf8964274e"
--"checksum ncurses 5.99.0 (registry+https://github.com/rust-lang/crates.io-index)" = "15699bee2f37e9f8828c7b35b2bc70d13846db453f2d507713b758fabe536b82"
--"checksum num 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cf4825417e1e1406b3782a8ce92f4d53f26ec055e3622e1881ca8e9f5f9e08db"
--"checksum num-complex 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fcb0cf31fb3ff77e6d2a6ebd6800df7fdcd106f2ad89113c9130bcd07f93dffc"
--"checksum num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09"
--"checksum num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "76bd5272412d173d6bf9afdf98db8612bbabc9a7a830b7bfc9c188911716132e"
--"checksum num-rational 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2885278d5fe2adc2f75ced642d52d879bffaceb5a2e0b1d4309ffdfb239b454"
--"checksum num-traits 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "443c53b3c3531dfcbfa499d8893944db78474ad7a1d87fa2d94d1a2231693ac6"
--"checksum open 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "94b424e1086328b0df10235c6ff47be63708071881bead9e76997d9291c0134b"
--"checksum openssl 0.10.25 (registry+https://github.com/rust-lang/crates.io-index)" = "2f372b2b53ce10fb823a337aaa674e3a7d072b957c6264d0f4ff0bd86e657449"
--"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
--"checksum openssl-sys 0.9.52 (registry+https://github.com/rust-lang/crates.io-index)" = "c977d08e1312e2f7e4b86f9ebaa0ed3b19d1daff75fae88bbb88108afbd801fc"
--"checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13"
--"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 ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
--"checksum proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "9c9e470a8dc4aeae2dee2f335e8f533e2d4b347e1434e5671afc49b054592f27"
--"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
--"checksum rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3ae1b169243eaf61759b8475a998f0a385e42042370f3a7dbaf35246eacc8412"
--"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.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
--"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
--"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.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ecedbca3bf205f8d8f5c2b44d83cd0690e39ee84b951ed649e9f1841132b66d"
--"checksum regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dc220bd33bdce8f093101afe22a037b8eb0e5af33592e6a9caafff0d4cb81cbd"
--"checksum regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716"
--"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
--"checksum rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ca4eaef519b494d1f2848fc602d18816fed808a981aedf4f1f00ceb7c9d32cf"
--"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
--"checksum schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021"
--"checksum security-framework 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "301c862a6d0ee78f124c5e1710205965fc5c553100dcda6d98f13ef87a763f04"
--"checksum security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e31493fc37615debb8c5090a7aeb4a9730bc61e77ab10b9af59f1a202284f895"
--"checksum serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)" = "0c4b39bd9b0b087684013a792c59e3e07a46a01d2322518d8a1104641a0b1be0"
--"checksum signal-hook 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "cb543aecec4ba8b867f41284729ddfdb7e8fcd70ec3d7d37fca3007a4b53675f"
--"checksum signal-hook-registry 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1797d48f38f91643908bb14e35e79928f9f4b3cefb2420a564dde0991b4358dc"
--"checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
--"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
--"checksum strsim 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "032c03039aae92b350aad2e3779c352e104d919cb192ba2fabbd7b831ce4f0f6"
--"checksum syn 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "661641ea2aa15845cddeb97dad000d22070bb5c1fb456b96c1cba883ec691e92"
--"checksum synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545"
--"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
--"checksum term_size 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9e5b9a66db815dcfd2da92db471106457082577c3c278d4138ab3e3b4e189327"
--"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.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "01d1404644c8b12b16bfcffa4322403a91a451584daaaa7c28d3152e6cbc98cf"
--"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
--"checksum unicode-normalization 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "09c8070a9942f5e7cfccd93f490fdebd230ee3c3c9f107cb25bad5351ef671cf"
--"checksum unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
--"checksum unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20"
--"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
--"checksum url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "75b414f6c464c879d7f9babf951f23bc3743fb7313c081b2e6ca719067ea9d61"
--"checksum vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "33dd455d0f96e90a75803cfeb7f948768c08d70a6de9a8d2362461935698bf95"
--"checksum wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d"
--"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 xi-unicode 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7395cdb9d0a6219fa0ea77d08c946adf9c1984c72fcd443ace30365f3daadef7"
-+checksum = "7395cdb9d0a6219fa0ea77d08c946adf9c1984c72fcd443ace30365f3daadef7"
diff --git a/pkgs/applications/networking/browsers/asuka/default.nix b/pkgs/applications/networking/browsers/asuka/default.nix
index 458ab3064a9..89f4fda88a1 100644
--- a/pkgs/applications/networking/browsers/asuka/default.nix
+++ b/pkgs/applications/networking/browsers/asuka/default.nix
@@ -2,16 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "asuka";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchurl {
     url = "https://git.sr.ht/~julienxx/${pname}/archive/${version}.tar.gz";
-    sha256 = "10hmsdwf2nrsmpycqa08vd31c6vhx7w5fhvv5a9f92sqp0lcavf0";
+    sha256 = "07i80qmdpwfdgwrk1gzs10wln91v23qjrsk0x134xf5mjnakxc06";
   };
 
-  cargoPatches = [ ./cargo-lock.patch ];
-
-  cargoSha256 = "0csj63x77nkdh543pzl9cbaip6xp8anw0942hc6j19y7yicd29ns";
+  cargoSha256 = "0p0x4ch04kydg76bfal5zqzr9hvn5268wf3k2v9h7g8r4y8xqlhw";
 
   nativeBuildInputs = [ pkgconfig ];
 
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index 7924d0b59ac..ceceffb8da0 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -86,11 +86,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.10.97";
+  version = "1.12.112";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    sha256 = "1qwk75k8km2sy7l3m4k5m383sl75dph4dyrp8hd65x5hnpip67yi";
+    sha256 = "0nvxmz1wrr6cfyhbnrfjsy9szbjmvjl6080pgkp25xa8rcql5gmb";
   };
 
   dontConfigure = true;
diff --git a/pkgs/applications/networking/browsers/captive-browser/default.nix b/pkgs/applications/networking/browsers/captive-browser/default.nix
index 3ce04842c6e..b302be4e013 100644
--- a/pkgs/applications/networking/browsers/captive-browser/default.nix
+++ b/pkgs/applications/networking/browsers/captive-browser/default.nix
@@ -16,7 +16,6 @@ buildGoPackage rec {
     description = "Dedicated Chrome instance to log into captive portals without messing with DNS settings";
     homepage = "https://blog.filippo.io/captive-browser";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ volth ];
   };
 }
diff --git a/pkgs/applications/networking/browsers/castor/default.nix b/pkgs/applications/networking/browsers/castor/default.nix
index 8181d782bd7..2da44bd4ed9 100644
--- a/pkgs/applications/networking/browsers/castor/default.nix
+++ b/pkgs/applications/networking/browsers/castor/default.nix
@@ -13,14 +13,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "castor";
-  version = "0.8.15";
+  version = "0.8.16";
 
   src = fetchurl {
     url = "https://git.sr.ht/~julienxx/castor/archive/${version}.tar.gz";
-    sha256 = "1i6550akxg78c9bh9111c4458ry1nmp3xh7ik7s2zqrp7lmxaf46";
+    sha256 = "1qwsprwazkzcs70h219fhh5jj5s5hm1k120fn3pk4qivii4lyhah";
   };
 
-  cargoSha256 = "1y047cm46l5hph3n48h60xvyh2hr0yagzswp375kiil96ndk206i";
+  cargoSha256 = "0yn2kfiaz6d8wc8rdqli2pwffp5vb1v3zi7520ysrd5b6fc2csf2";
 
   nativeBuildInputs = [
     pkg-config
@@ -45,7 +45,6 @@ rustPlatform.buildRustPackage rec {
     description = "A graphical client for plain-text protocols written in Rust with GTK. It currently supports the Gemini, Gopher and Finger protocols";
     homepage = "https://sr.ht/~julienxx/Castor";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ fgaz ];
   };
 }
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index 5dbafcee837..4e3960ee729 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -1,7 +1,7 @@
-{ stdenv, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, gnutar
+{ stdenv, lib, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, fetchurl
 
 # default dependencies
-, bzip2, flac, speex, libopus
+, gnutar, bzip2, flac, speex, libopus
 , libevent, expat, libjpeg, snappy
 , libpng, libcap
 , xdg_utils, yasm, nasm, minizip, libwebp
@@ -39,6 +39,7 @@
 , cupsSupport ? true
 , pulseSupport ? false, libpulseaudio ? null
 
+, channel
 , upstream-info
 }:
 
@@ -81,7 +82,7 @@ let
     # "ffmpeg" # https://crbug.com/731766
     # "harfbuzz-ng" # in versions over 63 harfbuzz and freetype are being built together
                     # so we can't build with one from system and other from source
-  ] ++ optional (versionRange "0" "84") "yasm";
+  ];
 
   opusWithCustomModes = libopus.override {
     withCustomModes = true;
@@ -94,9 +95,10 @@ let
     xdg_utils minizip libwebp
     libusb1 re2 zlib
     ffmpeg_3 libxslt libxml2
+    nasm
     # harfbuzz # in versions over 63 harfbuzz and freetype are being built together
                # so we can't build with one from system and other from source
-  ] ++ (if (versionRange "0" "84") then [ yasm ] else [ nasm ]);
+  ];
 
   # build paths and release info
   packageName = extraAttrs.packageName or extraAttrs.name;
@@ -107,7 +109,7 @@ let
   versionRange = min-version: upto-version:
     let inherit (upstream-info) version;
         result = versionAtLeast version min-version && versionOlder version upto-version;
-        stable-version = (import ./upstream-info.nix).stable.version;
+        stable-version = (importJSON ./upstream-info.json).stable.version;
     in if versionAtLeast stable-version upto-version
        then warn "chromium: stable version ${stable-version} is newer than a patchset bounded at ${upto-version}. You can safely delete it."
             result
@@ -115,17 +117,20 @@ let
 
   base = rec {
     name = "${packageName}-unwrapped-${version}";
-    inherit (upstream-info) channel version;
-    inherit packageName buildType buildPath;
+    inherit (upstream-info) version;
+    inherit channel packageName buildType buildPath;
 
-    src = upstream-info.main;
+    src = fetchurl {
+      url = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz";
+      inherit (upstream-info) sha256;
+    };
 
     nativeBuildInputs = [
       ninja which python2Packages.python perl pkgconfig
       python2Packages.ply python2Packages.jinja2 nodejs
-      gnutar
-    ] ++ optional (versionAtLeast version "83") python2Packages.setuptools
-      ++ optional (versionAtLeast version "84") (xorg.xcbproto.override { python = python2Packages.python; });
+      gnutar python2Packages.setuptools
+      (xorg.xcbproto.override { python = python2Packages.python; })
+    ];
 
     buildInputs = defaultDependencies ++ [
       nspr nss systemd
@@ -143,8 +148,9 @@ let
       ++ optional pulseSupport libpulseaudio
       ++ optionals useOzone [ libdrm wayland mesa_drivers libxkbcommon ];
 
-    patches = [
+    patches = optionals (versionRange "68" "86") [
       ./patches/nix_plugin_paths_68.patch
+    ] ++ [
       ./patches/remove-webp-include-69.patch
       ./patches/no-build-timestamps.patch
       ./patches/widevine-79.patch
@@ -158,12 +164,18 @@ let
       #
       # ++ optionals (channel == "dev") [ ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" ) ]
       # ++ optional (versionRange "68" "72") ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" )
-    ] ++ optionals (useVaapi) [ # Improvements for the VA-API build:
+    ] ++ optionals (useVaapi && versionRange "68" "86") [ # Improvements for the VA-API build:
       ./patches/enable-vdpau-support-for-nvidia.patch # https://aur.archlinux.org/cgit/aur.git/tree/vdpau-support.patch?h=chromium-vaapi
       ./patches/enable-video-acceleration-on-linux.patch # Can be controlled at runtime (i.e. without rebuilding Chromium)
     ];
 
-    postPatch = ''
+    postPatch = optionalString (!versionRange "0" "86") ''
+      # Required for patchShebangs (unsupported interpreter directive, basename: invalid option -- '*', etc.):
+      substituteInPlace native_client/SConstruct \
+        --replace "#! -*- python -*-" ""
+      substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \
+        --replace "/usr/bin/env -S make -f" "/usr/bin/make -f"
+    '' + ''
       # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
       substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \
         --replace \
@@ -181,10 +193,15 @@ let
           '/usr/share/locale/' \
           '${glibc}/share/locale/'
 
+      substituteInPlace ui/gfx/x/BUILD.gn \
+        --replace \
+          '/usr/share/xcb' \
+          '${xorg.xcbproto}/share/xcb/'
+
       sed -i -e 's@"\(#!\)\?.*xdg-@"\1${xdg_utils}/bin/xdg-@' \
         chrome/browser/shell_integration_linux.cc
 
-      sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${systemd.lib}/lib/\1!' \
+      sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \
         device/udev_linux/udev?_loader.cc
 
       sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
@@ -226,16 +243,9 @@ let
       ln -s ${stdenv.cc}/bin/clang              third_party/llvm-build/Release+Asserts/bin/clang
       ln -s ${stdenv.cc}/bin/clang++            third_party/llvm-build/Release+Asserts/bin/clang++
       ln -s ${llvmPackages.llvm}/bin/llvm-ar    third_party/llvm-build/Release+Asserts/bin/llvm-ar
-    '' + optionalString (versionAtLeast version "84") ''
-      substituteInPlace ui/gfx/x/BUILD.gn \
-        --replace \
-          '/usr/share/xcb' \
-          '${xorg.xcbproto}/share/xcb/'
     '';
 
-    gnFlags = mkGnFlags (optionalAttrs (versionRange "0" "84") {
-      linux_use_bundled_binutils = false;
-    } // {
+    gnFlags = mkGnFlags ({
       use_lld = false;
       use_gold = true;
       gold_path = "${stdenv.cc}/bin";
@@ -338,9 +348,11 @@ let
       origRpath="$(patchelf --print-rpath "$chromiumBinary")"
       patchelf --set-rpath "${libGL}/lib:$origRpath" "$chromiumBinary"
     '';
+
+    passthru.updateScript = ./update.py;
   };
 
 # Remove some extraAttrs we supplied to the base attributes already.
 in stdenv.mkDerivation (base // removeAttrs extraAttrs [
   "name" "gnFlags" "buildTargets"
-])
+] // { passthru = base.passthru // (extraAttrs.passthru or {}); })
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index 2fea779a8f8..1c811acd254 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -1,9 +1,9 @@
-{ newScope, config, stdenv, llvmPackages_9, llvmPackages_10
-, makeWrapper, ed
+{ newScope, config, stdenv, fetchurl, makeWrapper
+, llvmPackages_10, llvmPackages_11, ed, gnugrep, coreutils, xdg_utils
 , glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit
 , libva ? null
 , pipewire_0_2
-, gcc, nspr, nss, patchelfUnstable, runCommand
+, gcc, nspr, nss, runCommand
 , lib
 
 # package customization
@@ -28,29 +28,31 @@ let
 
   callPackage = newScope chromium;
 
-  chromium = {
+  chromium = rec {
     inherit stdenv llvmPackages;
 
-    upstream-info = (callPackage ./update.nix {}).getChannel channel;
+    upstream-info = (lib.importJSON ./upstream-info.json).${channel};
 
     mkChromiumDerivation = callPackage ./common.nix ({
-      inherit gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport useOzone;
+      inherit channel gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs
+              cupsSupport pulseSupport useOzone;
       # TODO: Remove after we can update gn for the stable channel (backward incompatible changes):
       gnChromium = gn.overrideAttrs (oldAttrs: {
-        version = "2020-03-23";
+        version = "2020-05-19";
         src = fetchgit {
           url = "https://gn.googlesource.com/gn";
-          rev = "5ed3c9cc67b090d5e311e4bd2aba072173e82db9";
-          sha256 = "00y2d35wvqmx9glaqhfb62wdgbfpwr77v0934nnvh9ks71vnsjqy";
+          rev = "d0a6f072070988e7b038496c4e7d6c562b649732";
+          sha256 = "0197msabskgfbxvhzq73gc3wlr3n9cr4bzrhy5z5irbvy05lxk17";
         };
       });
-    } // lib.optionalAttrs (channel == "dev") {
+    } // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "86") {
+      llvmPackages = llvmPackages_11;
       gnChromium = gn.overrideAttrs (oldAttrs: {
-        version = "2020-05-19";
+        version = "2020-07-20";
         src = fetchgit {
           url = "https://gn.googlesource.com/gn";
-          rev = "d0a6f072070988e7b038496c4e7d6c562b649732";
-          sha256 = "0197msabskgfbxvhzq73gc3wlr3n9cr4bzrhy5z5irbvy05lxk17";
+          rev = "3028c6a426a4aaf6da91c4ebafe716ae370225fe";
+          sha256 = "0h3wf4152zdvrbb0jbj49q6814lfl3rcy5mj8b2pl9s0ahvkbc6q";
         };
       });
     });
@@ -62,24 +64,33 @@ let
     };
   };
 
+  pkgSuffix = if channel == "dev" then "unstable" else channel;
+  pkgName = "google-chrome-${pkgSuffix}";
+  chromeSrc = fetchurl {
+    urls = map (repo: "${repo}/${pkgName}/${pkgName}_${version}-1_amd64.deb") [
+      "https://dl.google.com/linux/chrome/deb/pool/main/g"
+      "http://95.31.35.30/chrome/pool/main/g"
+      "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g"
+      "http://repo.fdzh.org/chrome/deb/pool/main/g"
+    ];
+    sha256 = chromium.upstream-info.sha256bin64;
+  };
+
   mkrpath = p: "${lib.makeSearchPathOutput "lib" "lib64" p}:${lib.makeLibraryPath p}";
-  widevineCdm = let upstream-info = chromium.upstream-info; in stdenv.mkDerivation {
+  widevineCdm = stdenv.mkDerivation {
     name = "chrome-widevine-cdm";
 
-    # The .deb file for Google Chrome
-    src = upstream-info.binary;
-
-    nativeBuildInputs = [ patchelfUnstable ];
+    src = chromeSrc;
 
     phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
 
     unpackCmd = let
       widevineCdmPath =
-        if upstream-info.channel == "stable" then
+        if channel == "stable" then
           "./opt/google/chrome/WidevineCdm"
-        else if upstream-info.channel == "beta" then
+        else if channel == "beta" then
           "./opt/google/chrome-beta/WidevineCdm"
-        else if upstream-info.channel == "dev" then
+        else if channel == "dev" then
           "./opt/google/chrome-unstable/WidevineCdm"
         else
           throw "Unknown chromium channel.";
@@ -189,10 +200,13 @@ in stdenv.mkDerivation {
   '' + ''
 
     # libredirect causes chromium to deadlock on startup
-    export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | tr ':' '\n' | grep -v /lib/libredirect\\\\.so$ | tr '\n' ':')"
+    export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | ${coreutils}/bin/tr ':' '\n' | ${gnugrep}/bin/grep -v /lib/libredirect\\\\.so$ | ${coreutils}/bin/tr '\n' ':')"
 
     export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS
 
+    # Mainly for xdg-open but also other xdg-* tools:
+    export PATH="${xdg_utils}/bin\''${PATH:+:}\$PATH"
+
     .
     w
     EOF
@@ -212,6 +226,7 @@ in stdenv.mkDerivation {
   passthru = {
     inherit (chromium) upstream-info browser;
     mkDerivation = chromium.mkChromiumDerivation;
-    inherit sandboxExecutableName;
+    inherit chromeSrc sandboxExecutableName;
+    updateScript = ./update.py;
   };
 }
diff --git a/pkgs/applications/networking/browsers/chromium/patches/enable-vdpau-support-for-nvidia.patch b/pkgs/applications/networking/browsers/chromium/patches/enable-vdpau-support-for-nvidia.patch
index b5372d1a255..8d879de7bfd 100644
--- a/pkgs/applications/networking/browsers/chromium/patches/enable-vdpau-support-for-nvidia.patch
+++ b/pkgs/applications/networking/browsers/chromium/patches/enable-vdpau-support-for-nvidia.patch
@@ -31,15 +31,6 @@
    // TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT
    // |output_mode_| as well.
    if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
-@@ -1105,7 +1113,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
-   // depends on the bitstream and sometimes it's not enough to cover the amount
-   // of frames needed by the client pipeline (see b/133733739).
-   // TODO(crbug.com/911754): Enable for VP9 Profile 2.
--  if (IsGeminiLakeOrLater() &&
-+  if (false && IsGeminiLakeOrLater() &&
-       (profile_ == VP9PROFILE_PROFILE0 || profile_ == VP8PROFILE_ANY)) {
-     // Add one to the reference frames for the one being currently egressed, and
-     // an extra allocation for both |client_| and |decoder_|, see
 --- a/media/gpu/vaapi/vaapi_video_decode_accelerator.h
 +++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.h
 @@ -204,6 +204,7 @@ class MEDIA_GPU_EXPORT VaapiVideoDecodeAccelerator
diff --git a/pkgs/applications/networking/browsers/chromium/plugins.nix b/pkgs/applications/networking/browsers/chromium/plugins.nix
index 707bf2056f0..239a6282a67 100644
--- a/pkgs/applications/networking/browsers/chromium/plugins.nix
+++ b/pkgs/applications/networking/browsers/chromium/plugins.nix
@@ -4,7 +4,6 @@
 , nspr
 , nss
 , fetchzip
-, patchelfUnstable
 , enablePepperFlash ? false
 
 , upstream-info
@@ -45,11 +44,11 @@ let
 
   flash = stdenv.mkDerivation rec {
     pname = "flashplayer-ppapi";
-    version = "32.0.0.387";
+    version = "32.0.0.414";
 
     src = fetchzip {
       url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
-      sha256 = "1igs8nh3zpfcps97ahzh7kknx3rddh6yliig8lxf6jskbpf0qgzf";
+      sha256 = "0wzf5i6qf5wgjm905kd3qh97rj47fybl9g7z72vasilbx8q5wfwk";
       stripRoot = false;
     };
 
diff --git a/pkgs/applications/networking/browsers/chromium/update.nix b/pkgs/applications/networking/browsers/chromium/update.nix
deleted file mode 100644
index 6dff17c69dd..00000000000
--- a/pkgs/applications/networking/browsers/chromium/update.nix
+++ /dev/null
@@ -1,271 +0,0 @@
-let maybePkgs = import ../../../../../. {}; in
-
-{ stdenv     ? maybePkgs.stdenv
-, runCommand ? maybePkgs.runCommand
-, fetchurl   ? maybePkgs.fetchurl
-, writeText  ? maybePkgs.writeText
-, curl       ? maybePkgs.curl
-, cacert     ? maybePkgs.cacert
-, nix        ? maybePkgs.nix
-}:
-
-let
-  inherit (stdenv) lib;
-
-  sources = if builtins.pathExists ./upstream-info.nix
-            then import ./upstream-info.nix
-            else {};
-
-  bucketURL = "https://commondatastorage.googleapis.com/"
-            + "chromium-browser-official";
-
-  mkVerURL = version: "${bucketURL}/chromium-${version}.tar.xz";
-
-  debURL = "https://dl.google.com/linux/chrome/deb/pool/main/g";
-
-  getDebURL = channelName: version: arch: mirror: let
-    packageSuffix = if channelName == "dev" then "unstable" else channelName;
-    packageName = "google-chrome-${packageSuffix}";
-  in "${mirror}/${packageName}/${packageName}_${version}-1_${arch}.deb";
-
-  # Untrusted mirrors, don't try to update from them!
-  debMirrors = [
-    "http://95.31.35.30/chrome/pool/main/g"
-    "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g"
-    "http://repo.fdzh.org/chrome/deb/pool/main/g"
-  ];
-
-in {
-  getChannel = channel: let
-    chanAttrs = builtins.getAttr channel sources;
-  in {
-    inherit channel;
-    inherit (chanAttrs) version;
-
-    main = fetchurl {
-      url = mkVerURL chanAttrs.version;
-      inherit (chanAttrs) sha256;
-    };
-
-    binary = fetchurl (let
-      mkUrls = arch: let
-        mkURLForMirror = getDebURL channel chanAttrs.version arch;
-      in map mkURLForMirror ([ debURL ] ++ debMirrors);
-    in if stdenv.is64bit && chanAttrs ? sha256bin64 then {
-      urls = mkUrls "amd64";
-      sha256 = chanAttrs.sha256bin64;
-    } else if !stdenv.is64bit && chanAttrs ? sha256bin32 then {
-      urls = mkUrls "i386";
-      sha256 = chanAttrs.sha256bin32;
-    } else throw "No Chrome plugins are available for your architecture.");
-  };
-
-  update = let
-    csv2nix = name: src: import (runCommand "${name}.nix" {
-      src = builtins.fetchurl src;
-    } ''
-      esc() { echo "\"$(echo "$1" | sed -e 's/"\\$/\\&/')\""; } # ohai emacs "
-      IFS=, read -r -a headings <<< "$(head -n1 "$src")"
-      echo "[" > "$out"
-      tail -n +2 "$src" | while IFS=, read -r -a line; do
-        echo "  {"
-        for idx in "''${!headings[@]}"; do
-          echo "    $(esc "''${headings[idx]}") = $(esc ''${line[$idx]});"
-        done
-        echo "  }"
-      done >> "$out"
-      echo "]" >> "$out"
-    '');
-
-    channels = lib.fold lib.recursiveUpdate {} (map (attrs: {
-      ${attrs.os}.${attrs.channel} = attrs // {
-        history = let
-          drvName = "omahaproxy-${attrs.os}.${attrs.channel}-info";
-          history = csv2nix drvName "http://omahaproxy.appspot.com/history";
-          cond = h: attrs.os == h.os && attrs.channel == h.channel
-                 && lib.versionOlder h.version attrs.current_version;
-          # Note that this is a *reverse* sort!
-          sorter = a: b: lib.versionOlder b.version a.version;
-          sorted = builtins.sort sorter (lib.filter cond history);
-        in map (lib.flip removeAttrs ["os" "channel"]) sorted;
-        version = attrs.current_version;
-      };
-    }) (csv2nix "omahaproxy-info" "http://omahaproxy.appspot.com/all?csv=1"));
-
-    /*
-      XXX: This is essentially the same as:
-
-        builtins.tryEval (builtins.fetchurl url)
-
-      ... except that tryEval on fetchurl isn't working and doesn't catch
-      errors for fetchurl, so we go for a different approach.
-
-      We only have fixed-output derivations that can have networking access, so
-      we abuse SHA1 and its weaknesses to forge a fixed-output derivation which
-      is not so fixed, because it emits different contents that have the same
-      SHA1 hash.
-
-      Using this method, we can distinguish whether the URL is available or
-      whether it's not based on the actual content.
-
-      So let's use tryEval as soon as it's working with fetchurl in Nix.
-    */
-    tryFetch = url: let
-      # SHA1 hash collisions from https://shattered.io/static/shattered.pdf:
-      collisions = runCommand "sha1-collisions" {
-        outputs = [ "out" "good" "bad" ];
-        base64 = ''
-          QlpoOTFBWSZTWbL5V5MABl///////9Pv///v////+/////HDdK739/677r+W3/75rUNr4
-          Aa/AAAAAAACgEVTRtQDQAaA0AAyGmjTQGmgAAANGgAaMIAYgGgAABo0AAAAAADQAIAGQ0
-          MgDIGmjQA0DRk0AaMQ0DQAGIANGgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk
-          0AaMQ0DQAGIANGgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk0AaMQ0DQAGIAN
-          GgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk0AaMQ0DQAGIANGgAAGRoNGQMRp
-          o0GIGgBoGQAABVTUExEZATTICnkxNR+p6E09JppoyamjGhkm0ammIyaekbUejU9JiGnqZ
-          qaaDxJ6m0JkZMQ2oaYmJ6gxqMyE2TUzJqfItligtJQJfYbl9Zy9QjQuB5mHQRdSSXCCTH
-          MgmSDYmdOoOmLTBJWiCpOhMQYpQlOYpJjn+wQUJSTCEpOMekaFaaNB6glCC0hKEJdHr6B
-          mUIHeph7YxS8WJYyGwgWnMTFJBDFSxSCCYljiEk7HZgJzJVDHJxMgY6tCEIIWgsKSlSZ0
-          S8GckoIIF+551Ro4RCw260VCEpWJSlpWx/PMrLyVoyhWMAneDilBcUIeZ1j6NCkus0qUC
-          Wnahhk5KT4GpWMh3vm2nJWjTL9Qg+84iExBJhNKpbV9tvEN265t3fu/TKkt4rXFTsV+Nc
-          upJXhOhOhJMQQktrqt4K8mSh9M2DAO2X7uXGVL9YQxUtzQmS7uBndL7M6R7vX869VxqPu
-          renSuHYNq1yTXOfNWLwgvKlRlFYqLCs6OChDp0HuTzCWscmGudLyqUuwVGG75nmyZhKpJ
-          yOE/pOZyHyrZxGM51DYIN+Jc8yVJgAykxKCEtW55MlfudLg3KG6TtozalunXrroSxUpVL
-          StWrWLFihMnVpkyZOrQnUrE6xq1CGtJlbAb5ShMbV1CZgqlKC0wCFCpMmUKSEkvFLaZC8
-          wHOCVAlvzaJQ/T+XLb5Dh5TNM67p6KZ4e4ZSGyVENx2O27LzrTIteAreTkMZpW95GS0CE
-          JYhMc4nToTJ0wQhKEyddaLb/rTqmgJSlkpnALxMhlNmuKEpkEkqhKUoEq3SoKUpIQcDgW
-          lC0rYahMmLuPQ0fHqZaF4v2W8IoJ2EhMhYmSw7qql27WJS+G4rUplToFi2rSv0NSrVvDU
-          pltQ8Lv6F8pXyxmFBSxiLSxglNC4uvXVKmAtusXy4YXGX1ixedEvXF1aX6t8adYnYCpC6
-          rW1ZzdZYlCCxKEv8vpbqdSsXl8v1jCQv0KEPxPTa/5rtWSF1dSgg4z4KjfIMNtgwWoWLE
-          sRhKxsSA9ji7V5LRPwtumeQ8V57UtFSPIUmtQdOQfseI2Ly1DMtk4Jl8n927w34zrWG6P
-          i4jzC82js/46Rt2IZoadWxOtMInS2xYmcu8mOw9PLYxQ4bdfFw3ZPf/g2pzSwZDhGrZAl
-          9lqky0W+yeanadC037xk496t0Dq3ctfmqmjgie8ln9k6Q0K1krb3dK9el4Xsu44LpGcen
-          r2eQZ1s1IhOhnE56WnXf0BLWn9Xz15fMkzi4kpVxiTKGEpffErEEMvEeMZhUl6yD1SdeJ
-          YbxzGNM3ak2TAaglLZlDCVnoM6wV5DRrycwF8Zh/fRsdmhkMfAO1duwknrsFwrzePWeMw
-          l107DWzymxdQwiSXx/lncnn75jL9mUzw2bUDqj20LTgtawxK2SlQg1CCZDQMgSpEqLjRM
-          sykM9zbSIUqil0zNk7Nu+b5J0DKZlhl9CtpGKgX5uyp0idoJ3we9bSrY7PupnUL5eWiDp
-          V5mmnNUhOnYi8xyClkLbNmAXyoWk7GaVrM2umkbpqHDzDymiKjetgzTocWNsJ2E0zPcfh
-          t46J4ipaXGCfF7fuO0a70c82bvqo3HceIcRlshgu73seO8BqlLIap2z5jTOY+T2ucCnBt
-          Atva3aHdchJg9AJ5YdKHz7LoA3VKmeqxAlFyEnQLBxB2PAhAZ8KvmuR6ELXws1Qr13Nd1
-          i4nsp189jqvaNzt+0nEnIaniuP1+/UOZdyfoZh57ku8sYHKdvfW/jYSUks+0rK+qtte+p
-          y8jWL9cOJ0fV8rrH/t+85/p1z2N67p/ZsZ3JmdyliL7lrNxZUlx0MVIl6PxXOUuGOeArW
-          3vuEvJ2beoh7SGyZKHKbR2bBWO1d49JDIcVM6lQtu9UO8ec8pOnXmkcponBPLNM2CwZ9k
-          NC/4ct6rQkPkQHMcV/8XckU4UJCy+VeTA==
-        '';
-      } ''
-        echo "$base64" | base64 -d | tar xj
-        mv good.pdf "$good"
-        mv bad.pdf "$bad"
-        touch "$out"
-      '';
-
-      cacheVal = let
-        urlHash = builtins.hashString "sha256" url;
-        timeSlice = builtins.currentTime / 600;
-      in "${urlHash}-${toString timeSlice}";
-
-    in {
-      success = import (runCommand "check-success" {
-        result = stdenv.mkDerivation {
-          name = "tryfetch-${cacheVal}";
-          inherit url;
-
-          outputHash = "d00bbe65d80f6d53d5c15da7c6b4f0a655c5a86a";
-          outputHashMode = "flat";
-          outputHashAlgo = "sha1";
-
-          nativeBuildInputs = [ curl ];
-          preferLocalBuild = true;
-
-          inherit (collisions) good bad;
-
-          buildCommand = ''
-            if SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt" \
-               curl -s -L -f -I "$url" > /dev/null; then
-              cp "$good" "$out"
-            else
-              cp "$bad" "$out"
-            fi
-          '';
-
-          impureEnvVars = lib.fetchers.proxyImpureEnvVars;
-        };
-        inherit (collisions) good;
-      } ''
-        if cmp -s "$result" "$good"; then
-          echo true > "$out"
-        else
-          echo false > "$out"
-        fi
-      '');
-      value = builtins.fetchurl url;
-    };
-
-    fetchLatest = channel: let
-      result = tryFetch (mkVerURL channel.version);
-    in if result.success then result.value else fetchLatest (channel // {
-      version = if channel.history != []
-                then (lib.head channel.history).version
-                else throw "Unfortunately there's no older version than " +
-                           "${channel.version} available for channel " +
-                           "${channel.channel} on ${channel.os}.";
-      history = lib.tail channel.history;
-    });
-
-    getHash = path: import (runCommand "gethash.nix" {
-      inherit path;
-      nativeBuildInputs = [ nix ];
-    } ''
-      sha256="$(nix-hash --flat --base32 --type sha256 "$path")"
-      echo "\"$sha256\"" > "$out"
-    '');
-
-    isLatest = channel: version: let
-      ourVersion = sources.${channel}.version or null;
-    in if ourVersion == null then false
-       else lib.versionOlder version sources.${channel}.version
-         || version == sources.${channel}.version;
-
-    # We only support GNU/Linux right now.
-    linuxChannels = let
-      genLatest = channelName: channel: let
-        newUpstream = {
-          inherit (channel) version;
-          sha256 = getHash (fetchLatest channel);
-        };
-        keepOld = let
-          oldChannel = sources.${channelName};
-        in {
-          inherit (oldChannel) version sha256;
-        } // lib.optionalAttrs (oldChannel ? sha256bin32) {
-          inherit (oldChannel) sha256bin32;
-        } // lib.optionalAttrs (oldChannel ? sha256bin64) {
-          inherit (oldChannel) sha256bin64;
-        };
-      in if isLatest channelName channel.version then keepOld else newUpstream;
-    in lib.mapAttrs genLatest channels.linux;
-
-    getLinuxFlash = channelName: channel: let
-      inherit (channel) version;
-      fetchArch = arch: tryFetch (getDebURL channelName version arch debURL);
-      packages = lib.genAttrs ["i386" "amd64"] fetchArch;
-      isNew = arch: attr: !(builtins.hasAttr attr channel)
-                       && packages.${arch}.success;
-    in channel // lib.optionalAttrs (isNew "i386" "sha256bin32") {
-      sha256bin32 = getHash (packages.i386.value);
-    } // lib.optionalAttrs (isNew "amd64" "sha256bin64") {
-      sha256bin64 = getHash (packages.amd64.value);
-    };
-
-    newChannels = lib.mapAttrs getLinuxFlash linuxChannels;
-
-    dumpAttrs = indent: attrs: let
-      mkVal = val: if lib.isAttrs val then dumpAttrs (indent + 1) val
-                   else "\"${lib.escape ["$" "\\" "\""] (toString val)}\"";
-      mkIndent = level: lib.concatStrings (builtins.genList (_: "  ") level);
-      mkAttr = key: val: "${mkIndent (indent + 1)}${key} = ${mkVal val};\n";
-      attrLines = lib.mapAttrsToList mkAttr attrs;
-    in "{\n" + (lib.concatStrings attrLines) + (mkIndent indent) + "}";
-  in writeText "chromium-new-upstream-info.nix" ''
-    # This file is autogenerated from update.sh in the same directory.
-    ${dumpAttrs 0 newChannels}
-  '';
-}
diff --git a/pkgs/applications/networking/browsers/chromium/update.py b/pkgs/applications/networking/browsers/chromium/update.py
new file mode 100755
index 00000000000..0a0d512004b
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/update.py
@@ -0,0 +1,63 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i python -p python3 nix
+
+import csv
+import json
+import subprocess
+from codecs import iterdecode
+from os.path import abspath, dirname
+from sys import stderr
+from urllib.request import urlopen
+
+HISTORY_URL = 'https://omahaproxy.appspot.com/history?os=linux'
+DEB_URL = 'https://dl.google.com/linux/chrome/deb/pool/main/g'
+BUCKET_URL = 'https://commondatastorage.googleapis.com/chromium-browser-official'
+
+JSON_PATH = dirname(abspath(__file__)) + '/upstream-info.json'
+
+def load_json(path):
+    with open(path, 'r') as f:
+        return json.load(f)
+
+def nix_prefetch_url(url, algo='sha256'):
+    print(f'nix-prefetch-url {url}')
+    out = subprocess.check_output(['nix-prefetch-url', '--type', algo, url])
+    return out.decode('utf-8').rstrip()
+
+channels = {}
+last_channels = load_json(JSON_PATH)
+
+print(f'GET {HISTORY_URL}', file=stderr)
+with urlopen(HISTORY_URL) as resp:
+    builds = csv.DictReader(iterdecode(resp, 'utf-8'))
+    for build in builds:
+        channel_name = build['channel']
+
+        # If we've already found a newer build for this channel, we're
+        # no longer interested in it.
+        if channel_name in channels:
+            continue
+
+        # If we're back at the last build we used, we don't need to
+        # keep going -- there's no new version available, and we can
+        # just reuse the info from last time.
+        if build['version'] == last_channels[channel_name]['version']:
+            channels[channel_name] = last_channels[channel_name]
+            continue
+
+        channel = {'version': build['version']}
+        suffix = 'unstable' if channel_name == 'dev' else channel_name
+
+        try:
+            channel['sha256'] = nix_prefetch_url(f'{BUCKET_URL}/chromium-{build["version"]}.tar.xz')
+            channel['sha256bin64'] = nix_prefetch_url(f'{DEB_URL}/google-chrome-{suffix}/google-chrome-{suffix}_{build["version"]}-1_amd64.deb')
+        except subprocess.CalledProcessError:
+            # This build isn't actually available yet.  Continue to
+            # the next one.
+            continue
+
+        channels[channel_name] = channel
+
+with open(JSON_PATH, 'w') as out:
+    json.dump(channels, out, indent=2)
+    out.write('\n')
diff --git a/pkgs/applications/networking/browsers/chromium/update.sh b/pkgs/applications/networking/browsers/chromium/update.sh
deleted file mode 100755
index ea67a62c107..00000000000
--- a/pkgs/applications/networking/browsers/chromium/update.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh -e
-cd "$(dirname "$0")"
-sp="$(nix-build --builders "" -Q --no-out-link update.nix -A update)"
-cat "$sp" > upstream-info.nix
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
new file mode 100644
index 00000000000..6365a4eafd6
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -0,0 +1,17 @@
+{
+  "beta": {
+    "version": "86.0.4240.22",
+    "sha256": "1qxacdwknrjwfp44mnqmq24n8sw4yaf0d1qnz39km2m4apc39svp",
+    "sha256bin64": "05qdzkq9daqjliqj7zxsa03903rv3kwaj627192ls6m33bacz9gp"
+  },
+  "dev": {
+    "version": "86.0.4240.8",
+    "sha256": "1x0kbc7xp6599jyn461mbmchbixivnxm0jsyfq0snhxz8x81z55q",
+    "sha256bin64": "0y7drzxxfn0vmfq0m426l8xvkgyajb8pjydi0d7kzk6i92sjf45j"
+  },
+  "stable": {
+    "version": "85.0.4183.83",
+    "sha256": "0fz781bxx1rnjwfix2dgzq5w1lg3x6a9vd9k49gh4z5q092slr10",
+    "sha256bin64": "0fa3la2nvqr0w40j2qkbwnh36924fsp2ajsla6aky6hz08mq2q1g"
+  }
+}
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
deleted file mode 100644
index 376d155d6f9..00000000000
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-# This file is autogenerated from update.sh in the same directory.
-{
-  beta = {
-    sha256 = "1s49qxg0gfmhm1lf5big6hprral21dbzjx0f1cp3xfvag9y61i7h";
-    sha256bin64 = "1sjvi3qmpwpr51442324a853k6s0k59k4809k8j5sjv7h6arw0sm";
-    version = "84.0.4147.56";
-  };
-  dev = {
-    sha256 = "1gxa0jg7xff87z7wvllp84a3ii1ypgy4vfzgxs4k7kzg5x0412vi";
-    sha256bin64 = "0swmn37rmvjvvdcrd002qg1wcvna06y14s3kx34bfr4zxhqk3lby";
-    version = "85.0.4173.0";
-  };
-  stable = {
-    sha256 = "1hravbi1lazmab2mih465alfzji1kzy38zya1visbwz9zs6pw35v";
-    sha256bin64 = "1ggyv2b50sclnqph0r40lb8p9h3pq9aq4fj1wdszhwc4rb0cj746";
-    version = "83.0.4103.116";
-  };
-}
diff --git a/pkgs/applications/networking/browsers/elinks/debian-patches.nix b/pkgs/applications/networking/browsers/elinks/debian-patches.nix
new file mode 100644
index 00000000000..07df14767aa
--- /dev/null
+++ b/pkgs/applications/networking/browsers/elinks/debian-patches.nix
@@ -0,0 +1,34 @@
+# Generated by debian-patches.sh from debian-patches.txt
+let
+  prefix = "https://sources.debian.org/data/main/e/elinks/0.13.2-1/debian/patches";
+in
+[
+  {
+    url = "${prefix}/03_459467_ui.leds.enable_0.diff";
+    sha256 = "0l35lglmnvyzz3xyy18nksra14gsp7yc67rskbzmr61szg8b9jqr";
+  }
+  {
+    url = "${prefix}/04_436817_nostrip.diff";
+    sha256 = "0ixvxaba1ww375gpdh7r67srp3xsfb5vyz2sfv1pgj6mczwg8v24";
+  }
+  {
+    url = "${prefix}/07_617713_cache_control.diff";
+    sha256 = "0drn4r33ywvmihr0drsp2jwz7mlf5z5fv8ra7fpkdavx45xqaf15";
+  }
+  {
+    url = "${prefix}/10-reproducible-build.diff";
+    sha256 = "024yp3xsh0hw29l1wikfmk9j3mqval6pdr4xi7rzffrlaknh58h5";
+  }
+  {
+    url = "${prefix}/14_debug_disable_Werror.diff";
+    sha256 = "0s620r88ikfljflb5nd133cww2wc0i85ag8lzpvrsmg0q00hfmax";
+  }
+  {
+    url = "${prefix}/16_POST_BUFFER_SIZE.diff";
+    sha256 = "17vkvy0d0rabmgk8iqwgdsrgjn6dbb9cf6760qbz82zlb37s09nh";
+  }
+  {
+    url = "${prefix}/11-reproducible-build.diff";
+    sha256 = "1z17g9z68lh12fs6fkralfghh8bs1bs5mlq83d15l4bn3za3s0sl";
+  }
+]
diff --git a/pkgs/applications/networking/browsers/elinks/debian-patches.txt b/pkgs/applications/networking/browsers/elinks/debian-patches.txt
new file mode 100644
index 00000000000..29efcf2d7a8
--- /dev/null
+++ b/pkgs/applications/networking/browsers/elinks/debian-patches.txt
@@ -0,0 +1,8 @@
+elinks/0.13.2-1
+03_459467_ui.leds.enable_0.diff
+04_436817_nostrip.diff
+07_617713_cache_control.diff
+10-reproducible-build.diff
+14_debug_disable_Werror.diff
+16_POST_BUFFER_SIZE.diff
+11-reproducible-build.diff
diff --git a/pkgs/applications/networking/browsers/elinks/default.nix b/pkgs/applications/networking/browsers/elinks/default.nix
index 79cb5437b3c..ccdd591cdb1 100644
--- a/pkgs/applications/networking/browsers/elinks/default.nix
+++ b/pkgs/applications/networking/browsers/elinks/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, ncurses, xlibsWrapper, bzip2, zlib, openssl
+{ stdenv, fetchurl, fetchpatch, ncurses, xlibsWrapper, bzip2, zlib, brotli, openssl, autoconf, automake, gettext, pkgconfig, libev
 , gpm
 , # Incompatible licenses, LGPLv3 - GPLv2
   enableGuile        ? false,                                         guile ? null
@@ -11,18 +11,15 @@ assert enableGuile -> guile != null;
 assert enablePython -> python != null;
 
 stdenv.mkDerivation rec {
-  pname = "elinks";
-  version = "0.12pre6";
+  pname = "elinks-0.13.2";
+  version = "0.13.2";
 
   src = fetchurl {
-    url = "http://elinks.or.cz/download/${pname}-${version}.tar.bz2";
-    sha256 = "1nnakbi01g7yd3zqwprchh5yp45br8086b0kbbpmnclabcvlcdiq";
+    url = "https://deb.debian.org/debian/pool/main/e/elinks/elinks_${version}.orig.tar.gz";
+    sha256 = "0xkpqnqy0x8sizx4snca0pw3q98gkhnw5a05yf144j1x1y2nb14c";
   };
 
-  patches = [
-    ./gc-init.patch
-    ./openssl-1.1.patch
-  ];
+  patches = map fetchurl (import ./debian-patches.nix);
 
   postPatch = (stdenv.lib.optional stdenv.isDarwin) ''
     patch -p0 < ${fetchpatch {
@@ -31,12 +28,15 @@ stdenv.mkDerivation rec {
     }}
   '';
 
-  buildInputs = [ ncurses xlibsWrapper bzip2 zlib openssl spidermonkey ]
+  buildInputs = [ ncurses xlibsWrapper bzip2 zlib brotli openssl libev ]
     ++ stdenv.lib.optional stdenv.isLinux gpm
     ++ stdenv.lib.optional enableGuile guile
     ++ stdenv.lib.optional enablePython python
     ++ stdenv.lib.optional enablePerl perl
+    ++ stdenv.lib.optional enableSpidermonkey spidermonkey
     ;
+  
+  nativeBuildInputs = [ autoconf automake gettext pkgconfig ];
 
   configureFlags = [
     "--enable-finger"
@@ -45,18 +45,24 @@ stdenv.mkDerivation rec {
     "--enable-cgi"
     "--enable-bittorrent"
     "--enable-nntp"
-    "--with-openssl=${openssl.dev}"
-    "--with-bzip2=${bzip2.dev}"
+    "--enable-256-colors"
+    "--with-libev"
   ] ++ stdenv.lib.optional enableGuile        "--with-guile"
     ++ stdenv.lib.optional enablePython       "--with-python"
     ++ stdenv.lib.optional enablePerl         "--with-perl"
     ++ stdenv.lib.optional enableSpidermonkey "--with-spidermonkey=${spidermonkey}"
     ;
+  
+  preConfigure = ''
+    patchShebangs ./autogen.sh
+    ./autogen.sh
+  '';
 
   meta = with stdenv.lib; {
-    description = "Full-featured text-mode web browser";
-    homepage = "http://elinks.or.cz";
+    description = "Full-featured text-mode web browser (package based on the fork felinks)";
+    homepage = "https://github.com/rkd77/felinks";
     license = licenses.gpl2;
     platforms = with platforms; linux ++ darwin;
+    maintainers = with maintainers; [ iblech ];
   };
 }
diff --git a/pkgs/applications/networking/browsers/elinks/gc-init.patch b/pkgs/applications/networking/browsers/elinks/gc-init.patch
deleted file mode 100644
index de06f563d6e..00000000000
--- a/pkgs/applications/networking/browsers/elinks/gc-init.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Fix libgc initialization in the presence of Guile 2.0.
-
---- elinks-0.12pre5/src/main/main.c	2009-07-07 14:23:17.000000000 +0200
-+++ elinks-0.12pre5/src/main/main.c	2011-04-28 23:20:15.000000000 +0200
-@@ -339,6 +339,11 @@ int
- main(int argc, char *argv[])
- {
- #ifdef CONFIG_GC
-+	/* Guile 2.x uses libgc too and it initializes it this way, so we
-+	 * must make sure to initialize it the same way, or it will just
-+	 * segfault.  */
-+	GC_all_interior_pointers = 0;
-+
- 	GC_INIT();
- 	GC_set_warn_proc(gc_warning);
- #endif
-
diff --git a/pkgs/applications/networking/browsers/elinks/openssl-1.1.patch b/pkgs/applications/networking/browsers/elinks/openssl-1.1.patch
deleted file mode 100644
index 22792b6c079..00000000000
--- a/pkgs/applications/networking/browsers/elinks/openssl-1.1.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-diff --git a/src/network/ssl/socket.c b/src/network/ssl/socket.c
-index 45b4b4a8..0385a431 100644
---- a/src/network/ssl/socket.c
-+++ b/src/network/ssl/socket.c
-@@ -67,7 +67,9 @@ static void
- ssl_set_no_tls(struct socket *socket)
- {
- #ifdef CONFIG_OPENSSL
--	((ssl_t *) socket->ssl)->options |= SSL_OP_NO_TLSv1;
-+#ifdef SSL_OP_NO_TLSv1
-+	SSL_set_options((ssl_t *)socket->ssl, SSL_OP_NO_TLSv1);
-+#endif
- #elif defined(CONFIG_GNUTLS)
- 	{
- 		/* GnuTLS does not support SSLv2 because it is "insecure".
-@@ -145,9 +147,11 @@ ssl_connect(struct socket *socket)
- 		}
- 
- 		if (client_cert) {
--			SSL_CTX *ctx = ((SSL *) socket->ssl)->ctx;
-+			SSL_CTX *ctx = SSL_get_SSL_CTX((SSL *) socket->ssl);
- 
--			SSL_CTX_use_certificate_chain_file(ctx, client_cert);
-+			SSL_CTX_use_certificate_chain_file(
-+					(SSL *) socket->ssl,
-+					client_cert);
- 			SSL_CTX_use_PrivateKey_file(ctx, client_cert,
- 						    SSL_FILETYPE_PEM);
- 		}
-diff --git a/src/network/ssl/ssl.c b/src/network/ssl/ssl.c
-index c008121d..c06a80a7 100644
---- a/src/network/ssl/ssl.c
-+++ b/src/network/ssl/ssl.c
-@@ -50,11 +50,16 @@ init_openssl(struct module *module)
- 	 * cannot initialize the PRNG and so every attempt to use SSL fails.
- 	 * It's actually an OpenSSL FAQ, and according to them, it's up to the
- 	 * application coders to seed the RNG. -- William Yodlowsky */
--	if (RAND_egd(RAND_file_name(f_randfile, sizeof(f_randfile))) < 0) {
-+	RAND_file_name(f_randfile, sizeof(f_randfile));
-+#ifdef HAVE_RAND_EGD
-+	if (RAND_egd(f_randfile) < 0) {
- 		/* Not an EGD, so read and write to it */
-+#endif
- 		if (RAND_load_file(f_randfile, -1))
- 			RAND_write_file(f_randfile);
-+#ifdef HAVE_RAND_EGD
- 	}
-+#endif
- 
- 	SSLeay_add_ssl_algorithms();
- 	context = SSL_CTX_new(SSLv23_client_method());
diff --git a/pkgs/applications/networking/browsers/eolie/default.nix b/pkgs/applications/networking/browsers/eolie/default.nix
index cfccacf1ae0..a16beb65208 100644
--- a/pkgs/applications/networking/browsers/eolie/default.nix
+++ b/pkgs/applications/networking/browsers/eolie/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchgit, meson, ninja, pkgconfig
-, python3, gtk3, libsecret, gst_all_1, webkitgtk
+{ stdenv, fetchgit, meson, ninja, pkgconfig, nix-update-script
+, python3, gtk3, libsecret, gst_all_1, webkitgtk, glib
 , glib-networking, gtkspell3, hunspell, desktop-file-utils
-, gobject-introspection, wrapGAppsHook }:
+, gobject-introspection, wrapGAppsHook, gnome3 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "eolie";
-  version = "0.9.63";
+  version = "0.9.99";
 
   format = "other";
   doCheck = false;
@@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
     url = "https://gitlab.gnome.org/World/eolie";
     rev = "refs/tags/${version}";
     fetchSubmodules = true;
-    sha256 = "0z8gcfg7i842rr5p8r3vqa31kf7nnj1yv3afax3jzf4zbnhb8wm0";
+    sha256 = "077jww5mqg6bbqbj0j1gss2j3dxlfr2xw8bc43k8vg52drqg6g8w";
   };
 
   nativeBuildInputs = [
@@ -33,18 +33,23 @@ python3.pkgs.buildPythonApplication rec {
     gst-plugins-base
     gst-plugins-ugly
     gstreamer
+    gnome3.gnome-settings-daemon
     gtk3
     gtkspell3
     hunspell
     libsecret
-    webkitgtk
+    (webkitgtk.override {enableGLES = false;})
+    glib
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
+    pyfxa
     beautifulsoup4
+    cryptography
     pycairo
     pygobject3
     python-dateutil
+    pycrypto
   ];
 
   postPatch = ''
@@ -52,11 +57,21 @@ python3.pkgs.buildPythonApplication rec {
     patchShebangs meson_post_install.py
   '';
 
+  dontWrapGApps = true;
   preFixup = ''
     buildPythonPath "$out $propagatedBuildInputs"
     patchPythonScript "$out/libexec/eolie-sp"
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+  strictDeps = false;
+
   meta = with stdenv.lib; {
     description = "A new GNOME web browser";
     homepage = "https://wiki.gnome.org/Apps/Eolie";
diff --git a/pkgs/applications/networking/browsers/ephemeral/default.nix b/pkgs/applications/networking/browsers/ephemeral/default.nix
index 69e8179489c..55007678778 100644
--- a/pkgs/applications/networking/browsers/ephemeral/default.nix
+++ b/pkgs/applications/networking/browsers/ephemeral/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , desktop-file-utils
 , vala
 , gettext
@@ -55,7 +56,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/networking/browsers/falkon/default.nix b/pkgs/applications/networking/browsers/falkon/default.nix
index f9e814a0941..3c2aace79b2 100644
--- a/pkgs/applications/networking/browsers/falkon/default.nix
+++ b/pkgs/applications/networking/browsers/falkon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, mkDerivation, lib, fetchFromGitHub
+{ stdenv, mkDerivation, lib, fetchFromGitHub, fetchpatch
 , cmake, extra-cmake-modules, pkgconfig, qmake
 , libpthreadstubs, libxcb, libXdmcp
 , qtsvg, qttools, qtwebengine, qtx11extras
@@ -17,6 +17,14 @@ mkDerivation rec {
     sha256 = "1w64slh9wpcfi4v7ds9wci1zvwh0dh787ndpi6hd4kmdgnswvsw7";
   };
 
+  patches = [
+    # fixes build with qt5 5.14
+    (fetchpatch {
+      url = "https://github.com/KDE/falkon/commit/bbde5c6955c43bc744ed2c4024598495de908f2a.diff";
+      sha256 = "0f7qcddvvdnij3di0acg7jwvwfwyd0xizlav4wccclbj8x7qp5ld";
+    })
+  ];
+
   preConfigure = ''
     export NONBLOCK_JS_DIALOGS=true
     export KDE_INTEGRATION=true
diff --git a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
index f9565a4f8a8..7548eb94fa6 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
@@ -1,965 +1,965 @@
 {
-  version = "78.0b9";
+  version = "81.0b4";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/ach/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ach/firefox-81.0b4.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha512 = "fdab8b20137ff4c5491d6d8888d3ed96939f167376b4de9a2636b055a936e1b18e458cbb9ebbe34a65021907fb97cb6367470083dc74a46d7a3cd15bfc008f9c";
+      sha256 = "4b133dd14e8ce1b934e482c4f7f7b5ca4b58751181bed89f6573ba5994ebe644";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/af/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/af/firefox-81.0b4.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha512 = "26c94bf548812dd7641e9ed2a741cca0732e5691ba391da684f2229abd50e78795740b04b4cd7d6e8b66d8d6098360d1f115bf9cf6216483093fc7298328bd32";
+      sha256 = "8e50a0845eb058ee853fe40b13c88d764e721f7f8ac2eb54695049ab2a66e3e9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/an/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/an/firefox-81.0b4.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha512 = "fbff456586aea9dfa174fef02d056efb7f4b85f085f6e59e879e5ddc8414f5f0c1089e14832ace1086cf11b7bb6d1f58d34df6b38dc79c8b3ec420f64645923d";
+      sha256 = "3edf8e157cac424b1cbfff019240877e7b7c3bf5ed1b576580569c155c5dd660";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/ar/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ar/firefox-81.0b4.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha512 = "5cc255be9a6ba2c559be5f882211254264ed4bdb5871cbdc6a6edf34c2ed9d6fe399d85a978c146f0da26260c741f5887c33b68c85acee1ea1f72a0d1473a033";
+      sha256 = "b2167ff357963e3295eed2ed423a1c3bcf62d645329b8f4cf817ad3c0e101c97";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/ast/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ast/firefox-81.0b4.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha512 = "1ec2408d738be67191e7f19bda47c180ff13b5eb6af54ed6aeab4105eff493b2ac185141deb8446ef7e474207f3c78518d15e9e9dada173905bb6f3fb96babf3";
+      sha256 = "805a87a99a417ff4b762c01a9a2b88c7963f53a04fc19b42015db304b15f4bbe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/az/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/az/firefox-81.0b4.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha512 = "375b60d1c023594b4d5a09d2b8d0d1b36942f7083a6cfbd577ebc5256970b4c4c9e81631f4e3671eb52597b661d220da701eabfcde180fa01fe3ede5c1ad8c14";
+      sha256 = "79c61c9515a683731649bcb5d36b26b95dd56165765e5a952339910310c9d259";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/be/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/be/firefox-81.0b4.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha512 = "4a948d44708a8913c1ab991fd60c245d8d2708ddd23bfca8fcf8439e2feb8c597298945964770a7dbdf183128b44a4820c2a15473250b6e31a20374b35f148dc";
+      sha256 = "318fece7d1ad734f6a19faa7003e060b1254b31bf62e59580c70a64c4a167ec6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/bg/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/bg/firefox-81.0b4.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha512 = "d0283703ee8b06db0e48af2155d6352b4fede42676511e47229ad452ce10ca2893babf3aa82258e434803615bff8822e8b5379a6f8fc756b873eaf4b9d7428ea";
+      sha256 = "55616606306dbd0933240d718fef8e83004fd65e4f53dd18f1601f09d0b94e92";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/bn/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/bn/firefox-81.0b4.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha512 = "9d0b8365651ec1b5e83defc18a3310fcf9b3b6d262850970500d73fdc226be22579302042e0f7095d041193c02e09160dd1c18f53e702ee24279d8fa9877579d";
+      sha256 = "c38fdef89f6aee7bf03362d2edfe4dcc665d540b1e1dc1dad8c53db20d70087d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/br/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/br/firefox-81.0b4.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha512 = "e0a576a6ab6227d38b2db3211990c02b56b695b138e66386a56fe7a923a679f5050478e043cfeb8de80e8e7f42379f03e2a08f3954d6f75453956918ac8602bb";
+      sha256 = "c5ac1c8e9dc2f4c5a1a2b6e33bf699a823a9422bce46922bc36222700a29d2e5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/bs/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/bs/firefox-81.0b4.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha512 = "f9fd7a505326a404acd15709317b0c18db49ee52ab38d3ab7912fb1a3642d6048a8c1384ffd642a72811362e7340728b98c2706c1e54e59c8e238d8dab19b2c5";
+      sha256 = "a18718ef7f467ed87c76816fb6797165db3e06bc166c5e88b526c9f2ce5c1d19";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/ca-valencia/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ca-valencia/firefox-81.0b4.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha512 = "89f6383f6f5d8c8d84fc2e95da88543eaec61a791aac15afe64fe742ef5996a47f9dce74bbaefb8b293f8cce3ccffa744ccf182bb3083d0eda2c6d3ab268d1b8";
+      sha256 = "fcfccd0714c965801ce468f6817bf37eb074064e6e0b616c81be7218a6b632fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/ca/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ca/firefox-81.0b4.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha512 = "822bcc56277b75b5d329e3d5e58ecb6ca37ae95ccd6194efbd5d21494a7e87f84129aeebca8f3d01620abaa29bffedf85058e54b633c0dd513b51a7a6c93800a";
+      sha256 = "5f08a2b2d357d5a6828865913b9e28fe90bda7a8ce17a0ea60effb25b8441b7a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/cak/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/cak/firefox-81.0b4.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha512 = "c317d87b9437b344a46426c46905eeacab73b450719bc14e3666d18b1fa3129457d6670082ccc0f215b0e7d559745a886f3de9991f1a53629af9b67db464a6af";
+      sha256 = "db41156b75e1148527c51b915e3d9367d1c36a8d24a52132d1cc9cfe63bd9db6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/cs/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/cs/firefox-81.0b4.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha512 = "ef661f3251ff6dcea7138b1c014ffbdce61f9abc1116fc2a7bc226cf01369347b19eb949bdce3b0c78c476c81144c1f7ca8824c81df70282454818a97001ed52";
+      sha256 = "d3287f28964581e63a3b1a5484e47e8ef33c136b39f13e07d6f3d555c27864cb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/cy/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/cy/firefox-81.0b4.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha512 = "df3341bf1815ad4e415d1fb57a638e2ef68c3dd2083fa504e1ee09276962aa26fd8de327f37c92270d2eb724a9870f527ff16fbad13bf8ea4b4ef0136f326220";
+      sha256 = "f41fd34cf1cc72d5fc80113cdc9fae7f03f434e45e990e17a94dd68463464c49";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/da/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/da/firefox-81.0b4.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha512 = "bc8691f460b1074cbb5ffc3641d20d0678aac54421d82dc99f96cdf73f33089ad3ea388945a32b4dce76c2a6a1221b8278ba1ad545b95a08e53e012ff41f27cd";
+      sha256 = "dbbf1611913315ac5294f400c727cd5afbc832efbea56bd839b77cd4d6a5b823";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/de/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/de/firefox-81.0b4.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha512 = "aa2ab6372a1de1afd8d354e85047329c445ba47e0c7ecd91f8282b48e05cb074b9d024f0aee0738c9f3b3efba072fd40a7de6aad7d3b77235003f85824143637";
+      sha256 = "1047799de5b42b5cb0827371872b7e85b93a4474bde9288da54a573841e156bd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/dsb/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/dsb/firefox-81.0b4.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha512 = "4a018ce1e2fe5124c72d8270acc97c465c88c5ce0606930cb12db7f36448c46bef17a6b1b118325278126b0553008276c4e21fe514f0eddb63d03fb52ef8688a";
+      sha256 = "602eaa32d32db35d6a6d07f1c0cc53eaa4e432b7ab81d1f23b47d3125ac98d24";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/el/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/el/firefox-81.0b4.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha512 = "1dc9c12e719030731ef2ec505ba7ff8b9d437ad7092509b2d8e6047d925430a96ddd80143fd5a6f10076ad0100583bfea8b28909db759bf01f381f73f25311a0";
+      sha256 = "8a460f9542e213b1605265c6497742e7d55213ac91b42d00a15b3123b47754ef";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/en-CA/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/en-CA/firefox-81.0b4.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha512 = "618d1f675d80c155a5f250e6bd21b16293220b0b2db3c45d50769cbabdad5de13f5e28f5447b6533219a2a741193025e0592e6a78862c7604c469cf026f8486a";
+      sha256 = "9bcc44ca3f4192a2a7a001f27db6884dd481551663b6d0c348ed0b9281dabe87";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/en-GB/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/en-GB/firefox-81.0b4.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha512 = "a1aa32aee0084b9659378e4cc1ffb899edd3e46a8c040a6036bc63036441d9b2f47091a48aad119fa912e2ca06494beb2d67883270d87d41142f5e357a30fe00";
+      sha256 = "9d241d56362ec52619ce02cdd2f11dc90c2e0f7c515c707ea56eca2e8f0eb306";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/en-US/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/en-US/firefox-81.0b4.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha512 = "575ad9a880f68480d4b185f24a332f8243d6381d5bbcad66f91a80a313b88d4e0041af3dcff6ce93d7391c9f6021998151b6a2842d13a243e6d0b860d0590037";
+      sha256 = "28972b08f8b3f2d19f5d50a2c9275fc459fc3e57df11c884149d1fdb9d99300b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/eo/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/eo/firefox-81.0b4.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha512 = "e89b6c12a8693682d0d7f1d748ef6b45677db13b4391fdab9f2c0c7e03cd3d569057c4d0131f79b0a17f4dbef288e9e69a3bbcab1bb15ec4305a5f3851896b48";
+      sha256 = "013caa4590462b4bc5dc09cb963cfd85cba4b5419111cdc87316574ca5691e80";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/es-AR/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/es-AR/firefox-81.0b4.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha512 = "36de0a28f03ad285e8d9a071261edcfa19346716f131cd82b3b35bd672b766a1a31fd665555e60a84e7534adab8343d24cee78f1dcdd314eb540b8e22b639edf";
+      sha256 = "d6970ccf4d58e2f1219cb0d43a8788084d0863f0f349ab3292e182fb0201e860";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/es-CL/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/es-CL/firefox-81.0b4.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha512 = "4aca111e3a8b7da1ca828b3a8952f4864683606b622d83acc6be8c2775573ba41390f2c2f8d1de98b0378d12a38c11a5cf0b048cef5f2fffc4332d07634504dd";
+      sha256 = "76fb3c865b3efa1da1d34c8caa7b56b5b6d0af2cbbaeaef873fa96d2b8c93bb1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/es-ES/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/es-ES/firefox-81.0b4.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha512 = "52c17193bf79164be5466c8563f7d22e961e858a2ceac5229f234aa8613135cf025a80fec26c279857d94d5f6fca5d26d440265f76af20e181598895126b87b1";
+      sha256 = "7b41a2b297df4f0f6d4f44e1eb0ea0cbf02454382d0994f119a77876c578c4b6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/es-MX/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/es-MX/firefox-81.0b4.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha512 = "744e556084ede6c9bdfadbb25c71d72d56ae92dfaeceb3e21139e02b5330fef6d6f732f88215cc08ef79aee48a1c7616b4d39cae6d3833560cfd61ca0fef061a";
+      sha256 = "733b90640a30df66700397ab0cc2045fcbc25af94ef9f36463a191228b511b77";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/et/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/et/firefox-81.0b4.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha512 = "2f9fe3fda93486e2142e27a1976b986f997b690b506aa82a9f75701dcaccb566ecc224d777915c32bfbe5c55d2b42f1e9a1e1768f4c8dbdf7616b43c5fadbaa4";
+      sha256 = "027286d744b1d9f21157d8242445ccd7610a08d8d541d64635fc16549aac1b4d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/eu/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/eu/firefox-81.0b4.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha512 = "a98f966a473029af2108631200ef08cd29b5b0f4abc391294a20b346d40c00794f0ca032c9103e888d7f38d08e25b8f8a57dcfcf713bb30d847262722871bd17";
+      sha256 = "ff555da3aaf1abb2c384772b309fb4129dad57b9fd523fcabef5b2743d3063ce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/fa/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/fa/firefox-81.0b4.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha512 = "2f3adb926df4c296b1b38ba53cd7880714e009c005f9627a164b1a59aef6f921994c398361845dea6d0f7591d55e542b06f4dc162ff1d66b4f04c4916efa9eab";
+      sha256 = "c99f9297568f93eda17058d96dfaf83e587907be9b5005e8f649f693662e4fb6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/ff/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ff/firefox-81.0b4.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha512 = "e2692acc18dad0df35759ded9a37ad525a88b17c1471ef4ee1b5b550173736b57b1df525861a78861e824c9deb211c856e7e6d8f4adcff02ce8c9cf152ae8a0c";
+      sha256 = "91658b195a622afa3c6fde535391eff1aa6b70f4c0cccc5c55e56e6d66459435";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/fi/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/fi/firefox-81.0b4.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha512 = "67d710bbf74c9b51530f1146e0822c533e8847c73150305428ae4ba6f3f4529edc8b68fab15dd39037ba921a6821412dca6c4713a5566f6a6bed6a8e1e204fd6";
+      sha256 = "cbc70d2051c96813ab081251c339f6cacd29ff26bdd8174b35caf9905a874635";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/fr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/fr/firefox-81.0b4.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha512 = "b30b49577339e3ec52eaa4601c703baad0ea62b0698e67df328f6c1830acc03088a77ea34768624b4f352c2ff2a09dd219e3c676c0088c8a5345f61e7a94210b";
+      sha256 = "51890621c8c3c0e40103a10e705adbc860937e5dbbb8a3984eb71a5cae3ed63b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/fy-NL/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/fy-NL/firefox-81.0b4.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha512 = "fae9b6a80a49bdc5709dbcb3812ec13c758050f0cd17ac6e391fe0e1c3d5e0d2bc7e025b4303575351cb4c9fd1eb04d678569baab179486808082eeff03717b7";
+      sha256 = "5c3a982a51951901732ec7684514be233fe1c44780531fb38f7205724c241387";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/ga-IE/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ga-IE/firefox-81.0b4.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha512 = "6fa7670a546178126f87d8820f3afcf0d8b470c77a8f151382700025eaa4bb7ceca976037322e4dafd2aa27241ed0d7d0f066dacf742cbf301ab0f2f73b14cb0";
+      sha256 = "04b5d338c7557f12fc6fb2206d444a8a00be6814b1ca26de4923449a4425b57d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/gd/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/gd/firefox-81.0b4.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha512 = "26fca8fdca9927e8436e327b90a0d3453a518a7013830a3cadce33079cf805d8c5861d80f6bab078f39ddf0f80fca0a27be5fc981b0343c88b4f9849ac387ebe";
+      sha256 = "6bc0de0ac627203b1ba035f7a7ba7dd19bd82a7730c526c217150cc5de668fd4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/gl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/gl/firefox-81.0b4.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha512 = "2749fce67388b56e2e705ff04b75e72408c05ea388c9ff082cc79094201a1ec5a869f2ea9f79b96dc90169f861221c210f43d51e7fa16e7ab532af4d0ee079b9";
+      sha256 = "37522d032422af770e37a93e33de6c0b8b79b2d22c6e71f32107cc8808de4d35";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/gn/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/gn/firefox-81.0b4.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha512 = "08f9308f7f6ea1df67085a381b19bd614ed773afb5d038cb035c38c54d440c5bca01ba2b1573ea6ea89ea36e99eb326f2c313f1239026362826425c256bcfbf1";
+      sha256 = "f761db975c72d7e419601988c0674acc7fe17227d5569cac85a1fe2d91f5141c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/gu-IN/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/gu-IN/firefox-81.0b4.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha512 = "4c54584913907e49558961af5abc0099a8afa9c53c65adbca4b963d37d6850e10139942ee3b18fd508256b4d49ea89bc3a9cb3375d3454154c82fb65bcb39ba3";
+      sha256 = "8565c1965e09060ddc5b253fa126998f827d17dd58692ec4d17d194d29a464a5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/he/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/he/firefox-81.0b4.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha512 = "658ed0ebcf81ed906ebe3ae5a056b544ba1a5caf95fc0d3387a84f439a493fe982095f0e5c683f7da989371f52e0917a7358a3c7d27f480f48d66c74a5deff04";
+      sha256 = "c3cc5911103ce955f89c5104ceb1ee50f7c047e4ec761681c8693b643f5d91a8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/hi-IN/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/hi-IN/firefox-81.0b4.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha512 = "035a5a1d7104175985e05f93bb4899a78b988d8f229af35390d4ad53abf1b9fb71b7f1e32d1a5ab9396b067bbd79e2f3e2b095b65d0e23250a207c05d3e852d2";
+      sha256 = "95463325675e56e700eaffb6e6690f4b398adb5cb77aaa34b87e16cb142f3533";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/hr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/hr/firefox-81.0b4.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha512 = "d1de8fe0b1765359281619ca251314369005d0769242be2edc77b5ac5e6535556157046c8de0ef58304ad49410b6cc2a249bd2b1c87165664bbafee43613ab9a";
+      sha256 = "6332ae812507f79baaed24e4fb79fc6c383418c4c9d41c0f3dbebc2fb72efef5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/hsb/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/hsb/firefox-81.0b4.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha512 = "4ca5fe030d6b584feb51a9e4fbe76ab1ab24ddeee621c143d9902c3307c61bbb6add38591c5caedfdbc40f437dd351ee4e7a7eb035e2d6c3cb93567cb017d58c";
+      sha256 = "b18a7d31d3ce7373bcbd6bb7ff56adc023c58097126781d5f915828be8fef92b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/hu/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/hu/firefox-81.0b4.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha512 = "929a4647c59a11c5daf7afe27360c784c50015ad674819629eba2f148e5d06fa963c8b7b2650b6cdbe024c5147cfd8a9d83f5ae65e4d8c9d67a7c222b8598763";
+      sha256 = "b1e4c6c9c21b2593f3fa111820a7e6a2e2e72e8b3065738f6a50df6ef4b7f18b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/hy-AM/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/hy-AM/firefox-81.0b4.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha512 = "ec3c42e4c9b43dfef6d8d911d8b38ec843b148325a493f2ae6c72071e5e351a6e246b6453a463a225eafdaacfb112e439a66f2e7cd63f42f968fd2d56c034888";
+      sha256 = "562f4d9e094b688cb53860834e425997e65b78222724c48ff4ddd71ccca264fe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/ia/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ia/firefox-81.0b4.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha512 = "c161f0e27942e8223597308c61eb2f4cc4e7c75cb3fec5e3780827a267ea414ae5ec1271f546c4b0df35fd40acde2e35892159c78a66adc430409510f925f3c0";
+      sha256 = "87299a8aeee6da57666a06cc2d4f479b0c74c220e2b22ddf5254a052f11edacd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/id/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/id/firefox-81.0b4.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha512 = "e388f0fd168fd22a0061c9de38907fb64dd6b3d0b9170b4c5bae537e39ac400501cf0dd94f4d7af56ba392de71dc01d3b8fa02733db5e414d769afa1cf87ab2c";
+      sha256 = "0cf1bae8def307d08e4c24fb44f7cfbebf150f1edfde2a3c0855a69775f26539";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/is/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/is/firefox-81.0b4.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha512 = "f2a94d74e0cf9373e9e9a80fcdb4f7b54e7b60b83adb19c133e68ac97a34e3861e9384af89da89c668493a96a6bf189342b4f3fe8d48def3ae32d16d7cf3e3f4";
+      sha256 = "6140d270e99173d995e42d32c0b696a51f72b1c6baa746549bdbbe7e2a08a811";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/it/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/it/firefox-81.0b4.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha512 = "1c67c8982e6e53a4881d2a5f11e50079bdeed8a812e0832f2c909ba2c99aacd174bc3df2251f8f545ca0df7aa2efcb2fab93b4e189114bcae62c9f713c5b53ad";
+      sha256 = "3583cf0223528929141879c085278354927ced41d71321fe8d832ebd356d4614";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/ja/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ja/firefox-81.0b4.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha512 = "19d152097f016fd21eff6aba409f3d60d1cc54ac62cff294386cca0df780a53c507e1734089e58ad8ef8ba04a92458754d7062a3508e2bc506cd029b8dcc1c7f";
+      sha256 = "4a1bcf87b3cd09d7c3379bd922ede7a3c6c4a19bf11596e858634b408df95cad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/ka/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ka/firefox-81.0b4.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha512 = "e2b5c57b222216f19ee62feabad0421f6afe40ad7b88359037fd068bb1c24c9c728f84a3b3213aa43a3f5f1ec4168979aef38dbe7228f0d809a48b3c75ad6f92";
+      sha256 = "320567daf4e4bb12c7209aff34d98efdbb2dead9b34f23d4a2181d2cdddeed71";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/kab/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/kab/firefox-81.0b4.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha512 = "c5b8159a3b4c24cf739ce4084017281ef8fa133ad5b599205a392b4ac52f8015860d08c206ab37bbf5d5b4534f786ebe530b6bcde962dc2b783e3154f3ba8cc0";
+      sha256 = "5b9d60703b494a4eb5956e59bc2d6893bc70e8b890d0c940f25d25b605000c89";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/kk/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/kk/firefox-81.0b4.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha512 = "ef54b2da6c0197cb4f85731cc441bf99e0576c5c688cc875ba52a6b985656d509a6784a4e6608b77be1d5031718cb07091c2f0371cf953be93ca92810f600319";
+      sha256 = "45580e0c3cbb265f718a69ac9de7220d3d89e52e3b8a5cfceb7363c20e63c83e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/km/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/km/firefox-81.0b4.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha512 = "3866fdbf865b42a27606ad9e1c84a75615309a0bf06f0e72689916269efda2c6a6659ecc70dba496f76eb5f4415d556f37e4c94aedfe4124c7da4e6bc1991de2";
+      sha256 = "24b4879f22829a2a5d72219cba2c5658bf7c7e73ffdc9640f6e897ec613733c7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/kn/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/kn/firefox-81.0b4.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha512 = "418376db9b6fc67e479bfc18170a96b0c1b23b05727760d2d10f4e6eab553f7b3b5f68a4697ef5bbb977ce78362ddc66a2fd7d6a539098fd30494a9d91a11f76";
+      sha256 = "905ed3fa762c73c5ba677b8ca5b620294cb1ad36dea2ac53fdfca5a739c0c0e6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/ko/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ko/firefox-81.0b4.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha512 = "34389c964d786f81b8832881c3367ae4de66afa982467bd09a5492540aeea4b0db691b2cb20e0b0030eb871de31991e884d4aa98844b4855c6be34470d1fcaf4";
+      sha256 = "a6a63ca4106ee9c710331ea50099e2a50842465095d38ea55a63dcb3ee3d80ad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/lij/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/lij/firefox-81.0b4.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha512 = "8e3b30f3b844e2cf3596b3d582435078a8d81cb42b0b05602038a017f7dac907a172a9660f1f37b977dc1fc95e51d21c0f71535c298df7a8a073763d79d427d1";
+      sha256 = "b6fa42dc9bc68d4b71ae93eebfb1a19416f0cdd06d20fb344c0c0347aa2d4862";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/lt/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/lt/firefox-81.0b4.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha512 = "9f06455338b565d112a376e6b5577d8fd5ea3690f20a481232fcc21172f87fedc01c6e04102ba97ac8074abdd314043da9fb313f367dca7c53ffb38e8ec55aa9";
+      sha256 = "c70f6e7c20e252fdef6bf136c99095ebc27672719594df302e58be801a3f06d3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/lv/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/lv/firefox-81.0b4.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha512 = "4d81635af9f6d08d91a2cf7123b5aff996ee592308ff5754380998ec0592d058055050156a70e47ee29e32a5a1b4b17512656ffe19b9e551c547c186bab42087";
+      sha256 = "c64d561be20fc8f0e7507a0b1dc2e5d79af407531a37cc7da3fd880789899fdb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/mk/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/mk/firefox-81.0b4.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha512 = "920d16c4cb05c821d690c50a552c2a3c80cb1afe70a58aa4bbc6230701a5858641c25a9d41b0ce3ab3eb2312104a8a70249316bb46bcaff6ebc46cafef8e8e10";
+      sha256 = "aa38b13c6bc5288ab491f5ccee3a881474b1f42f1bd959435035782d1c39f407";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/mr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/mr/firefox-81.0b4.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha512 = "ff9e640206fda93d09daf08a74e31203e6a660aab7a62c0395f293011d81eff7ec8122192690c0e663647765f843b582e15676c6141d732a0a987c360d269035";
+      sha256 = "e56eea60ca1cd447e30cccc82ce7a4797fa23e9bb4871a5e20e05d44ac35f720";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/ms/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ms/firefox-81.0b4.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha512 = "18105aef3e2734b36462ab6bafbd18788e6ebcf9681762abb32ebfc57c1ef3b9379ae2b30d526774191d878a8b8af02310e2993c2eef54869611dfaa45814b5e";
+      sha256 = "9d8445e2bda6a8cc8714a0eaf82e1b9ec03fbd94042c3557f07d9c8b25bc4b6f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/my/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/my/firefox-81.0b4.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha512 = "0568c7d5cfae6164296ced6b2522831d2ad3b8faca5b955f78de830e49cd7428eaf0f93a12e8b664bacdb1bb90bb5fc65c4d2a1566ebd3e13d3f2cc2ed83e80d";
+      sha256 = "4a7527e5e3e6ea0181cc8b9a2f206bbe162a4e1867faa75b4af261f08e89ae0d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/nb-NO/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/nb-NO/firefox-81.0b4.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha512 = "52eb5928c39fe71eb47a3d81ebb6589a8d68612f85f250fcc744f473ba0c06eda5722a066c21720f42ff4592bc996d3d37e4b824a753b8797a8c11785f2d0406";
+      sha256 = "c2ae9f5fb235541cc69cc3c4307dd4b7de51a9f4b6e038ef3091a773edec6c5a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/ne-NP/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ne-NP/firefox-81.0b4.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha512 = "c4dead373d6d240fb481f768910c5a837a41bae657311ff2b9f9b7a9ee0f090e7fed76213d6a4f5d27e9b380d32ca44b8b8e08ea6e401a6bffd862fc57fb83a8";
+      sha256 = "05acc175b06ab7f5861a3a7e58e9a92c40e0660224426fc8225fba6c25888726";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/nl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/nl/firefox-81.0b4.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha512 = "3e1c448e7419f8919f9524e8bc762790cc79a6784cac54d0bde170238d79a2f3e00b88d29e1cab6013b57b1091579d36f113c08ef7071ad5289942ff58a79bf2";
+      sha256 = "640be4e631343c9f2a55c24a4d5c63908627e9ab2d39a5346d1842d8e4a57799";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/nn-NO/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/nn-NO/firefox-81.0b4.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha512 = "0c730d0734614c97ce7ff98ded19798852f17747120619ec2b992c1bf68e5427495075ea126f5cef737fdf266a3975dfb4052903913a326a91729184595c79a4";
+      sha256 = "46a898f41e5c3c9853b05fda8f44be01b2fd5a7fe3dad281c21588c2deaaedce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/oc/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/oc/firefox-81.0b4.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha512 = "e69ffdba4624194ea9085f755d718e75094a65e04128c1f51ab71de7e79e33462cd4683c8f7e5e5e734dcabf0959a5f01a0e4a72694745fd79c1a66b034ee502";
+      sha256 = "7481c8bad2e905a033f09ec4c20f8d4b184a0f90fce1c10648c4fc57a7a5f301";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/pa-IN/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/pa-IN/firefox-81.0b4.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha512 = "bef28a4dc75532ca4007632fa50826107f63807901bf163fcffcee048728a377518ff496f15cd9090c555b21c8b04fb03f78bfd4b9609f7b95ff98e571dcc576";
+      sha256 = "a460ed0241c569e1ac62727b17f8c8d0d4091e794900e2e2be7d8d8e2b90ada4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/pl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/pl/firefox-81.0b4.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha512 = "961c13384d2419e571547b312d9f4b349df804283bb8af47bc5e81305606ab514e944efe0a1dec5734f0dcfe11cdb9aabc3b4c1bff6c3c18d218106e314e0898";
+      sha256 = "d82e300cc8be61ddc2aa66bd4d4ec35cd18e47603bd19530cf48728c5fe67a5c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/pt-BR/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/pt-BR/firefox-81.0b4.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha512 = "749da63d7a39aa571dbfa3cdc61393fdabaa92cd4e3965c5a40c072f0da431981c046766ab1a64d18dff00e627db26ec21421e386cade84589889a970e420a52";
+      sha256 = "1ee1560d4597adbd230fb0c556a4d8fa6984ee86bb731f7a5a936d660897eb99";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/pt-PT/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/pt-PT/firefox-81.0b4.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha512 = "445e43f228cae85e4bbc777032d1530d20694c779ed58456712efbd99a5312b27de23db598c3d963c9ef3c82ebc01f12a667125aa8b6acce528b9e9f6aef4571";
+      sha256 = "be7e484f8c3f4d8b7b894a437b70b2f4b448e3a7df518ce6906295df9be7749d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/rm/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/rm/firefox-81.0b4.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha512 = "bb04bd0d5c062225aba838824d66b9ac42fd6991c04f1b7a64a5373fb7a4e36c6ef6d4615014141d252288cb2a5af877c2e7fc6addcaea11919e0216def4b02c";
+      sha256 = "819cf6a13d1690dee4e4255aa0c3f551411e2b7076f8ce3447bba47f07c806db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/ro/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ro/firefox-81.0b4.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha512 = "301ed2ff68efd6b58aea68b4c18c89e1bf9c2092e56d18201d9fa9f1bcf0c81bed5a54a682ba9654269dc3edf8906b444ae13cfb8b396743521dd45499a568ee";
+      sha256 = "2baa8154f358962983c7e0b26c4a7cc8cf97587b646884527fafe46f5d8d92ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/ru/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ru/firefox-81.0b4.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha512 = "0de28f427eabf2c6baa531e37d5d3dacdb193f63ab4f76f1aacea3ac0f228e77e097bdd4a090a2516cc52007403ebaa19900fd20235d5436a73a90893dba1e3c";
+      sha256 = "eaaa5338ff8ffbc9bad5321ee3eb7410feb9a26a06d3cc49707c0a048f4412e2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/si/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/si/firefox-81.0b4.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha512 = "70d2c5ccbcac516f7c88e064f8fe996daabbe9e31e2c073ddc527aba5ae29c7114947f0c022231ad3add80cdbb2a40f6a8d78b2707ee92c3891d0a9025d2ba54";
+      sha256 = "ce04721a96cea62eb7011c261f740e9e0ad6288ad9ff231538c3a6df86fb40ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/sk/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/sk/firefox-81.0b4.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha512 = "ddf6aa8ced841054d931129bdf9e6b9bffd5ca02a0bc61b12a5e88834e8c314b4ea869e6713cc476c6900e00aa521cf4d1b40dd388d2d754c63f18a01ab60c32";
+      sha256 = "4b19fef341d64f94ad97a0bb8821693b00e4e7e04454156f92f0c82f4fee0005";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/sl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/sl/firefox-81.0b4.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha512 = "73ee6ae45da91bf901f19bf1d03b523d79b1341deade05c52faccfa1d7bf1611058104a69cfb40896d50f33a01f6ae1172d8e59fab77e9d9767355b5ff7a30e2";
+      sha256 = "96192922f2012a3e6be634c7ed09017cebf9498c6fc2862336bfddbc4ea40840";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/son/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/son/firefox-81.0b4.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha512 = "39f1b59caf9b4fb0a349cb890aa6ec598753907aae934abe1ace3845f50a996d03bc3b55fffb56b87cdb43ae0c8e7f521c9ec184049fbb8f82828947b6c777cb";
+      sha256 = "dfb144edeb3712bc0a3bf7e0675de80315c78bea7d7c6ee5f6047c077acbddf9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/sq/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/sq/firefox-81.0b4.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha512 = "cfb8dde4ee081d3f20bfcbf28dfc6cfa42d15366313af95e393a496a619a4ef2f929fd4abcc1939dde64f3816a822ab64bac49cfe6b3f6f1127ce2f81d791060";
+      sha256 = "54dfab9e843dcde43cf188ae33922371fb90c1bfda53ef629df16576d6a0bac2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/sr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/sr/firefox-81.0b4.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha512 = "0e1830128bf23801dfb6c02c2b5f8128c47a320ab251889ba20e9e4fc1b098d0fd1d8bb7f3268b205eb86e570526f0c62b36f411efe8d2bd936ad0d6a08b97c0";
+      sha256 = "f00b5184ccb47223858128aa26481867fb33aa50a914a8c807235c9a2bdf74fa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/sv-SE/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/sv-SE/firefox-81.0b4.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha512 = "f1d22cbeddfee1212e7566a7fa1864aa8fefbf015b59d7a875dec84577558a120024104ee377b4ad14094a2edf5faed8a6667f575e2c83ff704cc97fd10ff72f";
+      sha256 = "d3884cf4a9ff23971badfb1a794c9489e0006e6851a0e501e290d8793054cc1e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/ta/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ta/firefox-81.0b4.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha512 = "294ee5683589fadc76523c556070e32aa06223b3f591c01d6a586f0844325f246db151e01192e81bcf21d6e1b790c9497c46af08bd6168c417d8cd9352a3c6dd";
+      sha256 = "53584d2093feffd36a8a5249ee438b82d21af834a3c2c210944030c127b91cb2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/te/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/te/firefox-81.0b4.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha512 = "3fc115822fdb9129b841b2a851f62df5997beb6191d95d85ea1ec363c1ce7992334f1a48557a90d1ea56e473922be00163c75635871ba39b8628aef074c9ed0e";
+      sha256 = "63b65440720bc492fc95d080b191ba452cc87c8501b195e02df66ea4487fb902";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/th/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/th/firefox-81.0b4.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha512 = "93ffc698a80c20ad58db52ec56a4d25448b172618b80436ca62356db8509c4d93afbe3bdda4b1dfd3a38c49847a9b5eedfa3393365fbf7217312890d571bb55d";
+      sha256 = "3b01fff09734f2206e4aee227ee7f0c13544fb1635f92a5221ee356117955446";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/tl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/tl/firefox-81.0b4.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha512 = "27f440f611162988f1686f4a1cc4902cf104a1efade3a698397ad0b4312c0984f2d1d3c759d0a94aa099ac782bd1914265ed4e8a0dd20f4b076e05b681f5399a";
+      sha256 = "00f1c65baf63246a9ff44d98171a6ceec6e276488f5d6fbdf6f97760509b3bc7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/tr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/tr/firefox-81.0b4.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha512 = "eeb122a4082823e1075d92e5e096f2bdea1f16ed9c8a944694ee06e394156822bbd33c7af81f956edcc4010f620997af7361d5f9182cf4b1e8e21aa7415aed18";
+      sha256 = "064d6c6036fae215fcb50a87863e6808bd1626084d9144a18f7ea1f4c7072093";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/trs/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/trs/firefox-81.0b4.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha512 = "9d1fba7a1b9ddc18cbe8be6dc9eced593cc8ae7e97cb7db5a6cca59965a88b572d47701e20b0ec99f2e0784ead8cc03b6913098c00f61bcf80c95c787a959712";
+      sha256 = "73c892e0b0ab0bcdbcf6af88fdc8de335bcd5c56805675ba7b487ed3b620ed22";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/uk/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/uk/firefox-81.0b4.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha512 = "0e3ab01314523d936ac055a197919794cae269e5244f93a9df11a7b7ebc922a2b075aeb928316c82007d7af5616371c8b42671bad6ca7e3be1a78ecaf844175b";
+      sha256 = "8ac48524702e3f177e78fe97e4fcf528752a3ea0ef08e9212037dbd0febea53e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/ur/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ur/firefox-81.0b4.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha512 = "9768fa01a377b7c9c2417d91cbbac68031606f55ae01106de3df4c43ffcfef7ed8632be95e666f67c3a6c0941d9ed0b1fb00703b519bf906ecafef1c9843bf6a";
+      sha256 = "154dd642021769aa67a081080f33d87d736686b9e6e46cdfa2bd2201605bda26";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/uz/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/uz/firefox-81.0b4.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha512 = "19f4cd13217a8abaa447c1157413564ca2594cdc02da49496af884530c2652acb62bcdaab218c140e9d067052e5f33d05b5b1d897ca72ace0acaa202afc45a78";
+      sha256 = "dd36910596d777f49de3dfe8e22f2838b76081cb259107047b9a98c3445c01eb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/vi/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/vi/firefox-81.0b4.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha512 = "e29103dc7de0de15ba5e90a1e47eb1154b1bf55889654afdb8923985b0be35fd5c5c66e5f3228acbddc99a17e43e2dba6aa62e695037687b9bee728b63cda38b";
+      sha256 = "3cef9f657f83bbfc68ab4a7c8ab84e1e937553cca98cfc30d3fbbec5c8be7907";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/xh/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/xh/firefox-81.0b4.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha512 = "06e57712ae710266672aba578666e0b258e23c29d6a38ea3b642af01a7f82cd41719eef3e3296f9e9e2092b3a34deb317f933b63b48419fdbe654a4f7f1554d0";
+      sha256 = "30a98fa9218cbb07d792629e73a250659b321a3555eedca0a68e6ffb1d5191a7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/zh-CN/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/zh-CN/firefox-81.0b4.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha512 = "7c1bbc3c0623790cbbbcbefd8f86f2bea918d1ed4bb72e8e9b6902a01a3c2459c07223ac5b4a04443e41693d1e50d771835fca2db5772cc6bc7134e06d306be1";
+      sha256 = "bf15e819d84a3cd3825df2046bd9ffc139008f45fdbbdc64e04cec6a549af3e4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-x86_64/zh-TW/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/zh-TW/firefox-81.0b4.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha512 = "487ee80d785b0b1a3ebf583191f6840ccdecaa868ceb139d8e2a318e7d113fc27d692df4aa877924f60ce81207f8186c5c2e7634b0ecee252dbad3f5cbce3139";
+      sha256 = "b194749cb05fe282f59f2f6621a5d04fba42406d7a3ea71242b667fe94a5a857";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/ach/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ach/firefox-81.0b4.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha512 = "e99b0b7e69aa1023db7e57f21f30921313eef6f591e74eec9fa324cd575332d2391743a723993ba9d783c6a6ecea274fd8d48dc8875ce258e18359fa96833fd0";
+      sha256 = "203ca1a13f76935935daf2124c662329df93af0e44b4bcee7334ff60092c8027";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/af/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/af/firefox-81.0b4.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha512 = "9651404f703b153cc44af146de732231d73fe2b3976d5620c197a6273137a246f3c46444e1a40023d50e4f56c66aa2de95f1762a65a98a89d54fe589c1577c08";
+      sha256 = "481d233552b0702a8b8092748b4c71da3c14c8df5e971c5b4662273cd8808022";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/an/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/an/firefox-81.0b4.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha512 = "11f6023da98ccfd4762b8851f303b0e26ee0adf55d54eb8a116c0d078f30bb9a663c339f584bd7bee6cdd73b83d992ba2df36c1797d0973a65469f48386f562a";
+      sha256 = "a128b96a34eea409a8b5fa412e6a1a36bcc28f2fbed40ba9b474b9d86d23dbae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/ar/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ar/firefox-81.0b4.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha512 = "c19e5f1615e40345e62d0bfb18fcb25b71f29ee6fdbd9da20ae6faf9d585f1c5ca53897393b15b911e0379ac36a5c1f1a885bfa10c6ea79f0d3129a2c0176105";
+      sha256 = "a2ab8b556b6b477bb1aa287f630e7ae6aa902fd1b75968c01c2e2c76fe9cdf09";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/ast/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ast/firefox-81.0b4.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha512 = "bb9bcb2a81e0a574c8e85c48a4177c10f0331a26e2b18c5ec74b8efe43d0b2128ba385a388ad72165fa6b1e96587a1544a7703ef5224a33948e663fc02dd6eae";
+      sha256 = "193422cbafcaf5ed58f334a9d5b30f9a6181aa1cb649303df18626d9a3484088";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/az/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/az/firefox-81.0b4.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha512 = "b0e833c99286643a88a06b68af74e34724ebd2ef98aea5f138ef33e1f35b411bec482d52884ec1ad7d61d73ae2e52bc0510998bc9c8fe9ef8bd4887e7969dc30";
+      sha256 = "c206f5351f0ba474a5277e223514f032c7ff0b66029f570143f2d1d2b8ccf566";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/be/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/be/firefox-81.0b4.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha512 = "af4ae6dbaaadf22ed0d7743185f4e2c89201014665ab3d606d60cc4c86ada14135ac5816497ccd022bbc346218a452b614f25d32bb0b8e42fdca3ae261631351";
+      sha256 = "c3d7d04ea43230b6a6e4227b799d47348bc5c2ab6a60e93f4107efa6e7b34ef3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/bg/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/bg/firefox-81.0b4.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha512 = "c9854d8402af75a174e8478713f715d39e888c8354d27bbf17161b2629834e24c0b89b182477946e736002481dea3e7a9887b1e2efbbbb47e940b4089b19a970";
+      sha256 = "08edf0db8aebd41f25366ef4302214b4ef00540be39406fc780eec288b0de324";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/bn/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/bn/firefox-81.0b4.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha512 = "efee82a7c08bc0681e29b1604ed683894dd8ee70be22bcc00ed3dfb5e8af6b6739bddeddaf9850900e602935422e0f5c833e1256c78b2367c07f311e86ced69c";
+      sha256 = "a6d5dd5918d94e74ee8ffeb10c4caba65697ecdb81598b0bda815fa5d4830a78";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/br/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/br/firefox-81.0b4.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha512 = "1ba23efefe314bf53b9b0979eae103193152d8e7bf623f2c3ec5ff450de38f52d59f64b85d8816647845710b51e9e9bdbb9e17c36cee78d718b646903fe97d34";
+      sha256 = "4e7ffbc380b6f8716399ee9d7b9ffc5fcdcae72f48b63ae4bcd2011a85efa0b1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/bs/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/bs/firefox-81.0b4.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha512 = "bcd509bf0f893d37e83e2b3cc80d64a8c53919cbb043f480af3e57829b6537d208d0870a72509f2391ebfa5446a7be93136b34f9b2090a72b0191ce0b3918baa";
+      sha256 = "ef36dae13dc3c943e5981a16d7ca61b4c6daa9a4873d2cd87022fbbcd01c8907";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/ca-valencia/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ca-valencia/firefox-81.0b4.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha512 = "cb1b88aa61a2ae6786f4300b5ec7f35b01120da9d0c5bc5fe4b273820f1bab53949acd65e6acd5db421bb7e6d5cb99c02a2986592d45307a6e57121e85cc2657";
+      sha256 = "584a0370f79011dd2691461acd573133348a94cc1323d6fb99dea9dd6df1e155";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/ca/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ca/firefox-81.0b4.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha512 = "88b115ecab3e4b34ba105d5227ac48c10824c76f20a5f8dba63cb2850fb2c2c7f85a0e1cd5cbc8bcc368cc371007a094b03d81a880f47fe0211171a381f53b15";
+      sha256 = "e280fe05f4e9320fd354407811ea8664d50de3810298e5eb4922b2d3e549ad11";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/cak/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/cak/firefox-81.0b4.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha512 = "90b986f41f5ba63fda27084be05684baba11a4ca22fa9fec1177c4c90bfe36f0e3001c1169361b36de313cdf9d3a99902fc509f6515c24f08702df5617faabd7";
+      sha256 = "3decca8b5b0d44db169abfa20f07b3c109bbea0a68ae3e44a35f97e3b989324b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/cs/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/cs/firefox-81.0b4.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha512 = "ab8ea7e7fcac7687f93dff99670273c9c52a4b6d0945a60829fb2d0859e982df40bc2ddddd93a0f0048695d455ef8f30e9561826231880de19c5710800eec852";
+      sha256 = "efccc2a43f961179f61eb7858b1e17ffd069bf7a26027faaad09f1b529ade52c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/cy/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/cy/firefox-81.0b4.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha512 = "34ecb5f957fe88be8bbda757b98ca18739c38f1f84f4dc65dec6dd4e185a10922760049da3de020f07de9542976cf2b48bb90076cbe235071a7e99bb674670c3";
+      sha256 = "dc8a1945d0230070e2bdf65b673a9aecc4868c9821f7f1e2f6e0d18bb98c912d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/da/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/da/firefox-81.0b4.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha512 = "24272dcfc6f6ca922f4d19b7f277713516d36ee9404336baeb8ea0956cb1330aa9bab93ba9296312f6a3f302a8855f2e1cc28f33529927c85f26ae190a70a9a9";
+      sha256 = "058b800e2c9fc464f2a75fa48542269056a88916b9474a953f0d29a3e9041257";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/de/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/de/firefox-81.0b4.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha512 = "bb02945539fb419ac5fd9c090b2df6114af917c267a33a16b435ba95cb2e5d1849939707985824ba201560d1ff67f11a419587d28aaeb699eeb15fccac678a67";
+      sha256 = "7fbd0b27073b2c46829fc0d631ed11fd9a38a07d0ce474f6837ad1f5c2adff62";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/dsb/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/dsb/firefox-81.0b4.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha512 = "ac1e8b9f315f76eede59e212cd71d7af5c12b97747e362d968ff26c6184e5a232a3ea0a0248f5c0a7cf4cf3fe3ec2bdf1f3dce5cdc0b57b28f7459ed1c0d0b6b";
+      sha256 = "d0b6083098d416366040a877a92b163d469e2764af995c65fced49de23148624";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/el/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/el/firefox-81.0b4.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha512 = "41e223ed3b348107cb0d4b283eb3e271f11ba4cca843ef3ff059263040879be58cc36d86449d305c327b69148c4ebc24294695b2fe75634124fcc8af04024860";
+      sha256 = "104258b0e47b661d7c75c72f5a0d7750399a101a9996a3f8837f0f524e9820db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/en-CA/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/en-CA/firefox-81.0b4.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha512 = "850b10f65d29d351f24a82d35c9ba631931af262e039cb6a2aa08498d4af99a1791bfe1da6de50fc4713c3450d346a54af4dfbd0adbbbfc8450b14ae075545a6";
+      sha256 = "be6750a6946b7ef58869d0c9f0412febffcbe4955c823a573d02822f9a14266e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/en-GB/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/en-GB/firefox-81.0b4.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha512 = "34e6c313307a750f92c4f7e02b5b9210a5999154e701376b63d34866262b43b5b054d376bc7cd8b256925f895604acd5b664d7d198593e181f4fde21a97621e6";
+      sha256 = "e6d2c60c30aa90b6026cb85d6fc3a1d1b7266263980df652c9a1c158528cfc74";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/en-US/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/en-US/firefox-81.0b4.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha512 = "3c6cc88bbad795f2c7f1db75b045ae14f062d28ed11c594d22c68189df3a4213b5b56d441ccbd032cf61c69102ffcd43c86a97fe34e5a0565da25471eb53c646";
+      sha256 = "be534d43126a7fdd297f3431b579495b6f22832a358a0c793a23bea8adce1c9d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/eo/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/eo/firefox-81.0b4.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha512 = "f2b287e831c21f3b5d8c78e0d73fbe2ee832326a5ea656f9ea7ae304cc38831813a9b504984f090bdea48bff5d78644748650c2e9c0a8f031b61902e5a787ef9";
+      sha256 = "6ffe84994fe7db178e59ea667495e95e6fba621cd0e4ec812d94dc3d98cf0a3e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/es-AR/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/es-AR/firefox-81.0b4.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha512 = "06e968619285332e5101ac0f7257de0a5326a5f44c0e92a5e7aee3a1f57b021585841179591d0032e17ad4168d3feef5a8467ae5660a6b4d815d24844c8aee30";
+      sha256 = "982874a48791db0bc98559de45bb8884da93ee0a0738664c73ae5a08b3b1a2ef";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/es-CL/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/es-CL/firefox-81.0b4.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha512 = "e50c1eda0d1362ce5a3efd5495a9e75b2fc5d1bc1d3bb3f03b92e89dbf59e751823af4c24cfad3bdda798a2202dd9f204e575107a8e178ddce24682b40ef9a53";
+      sha256 = "c21fcdeacdf570a9f8bba9c34c64a60776aa8a4de56b5f773b1d26eca6d65b70";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/es-ES/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/es-ES/firefox-81.0b4.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha512 = "beb673f020367194ddcace2b1647a33f95d7fc017c352b4ecbae4539e4401b11bbd7711f4702cf80f5f33b29e6536083d5a40bb5dd9cb661ab3b718ffb976620";
+      sha256 = "bb34dda74d59c862ab24ad9ff0c5ad1e1fb5d73e6029b915f966d0913cf4506a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/es-MX/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/es-MX/firefox-81.0b4.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha512 = "3b61c3a813e4271ae70a8a5bc0b613da11c712ec3cb3965e95ad9c9e99889f755a22820d950a75e304a68f5861fbd204dbe254debbf1987a2d4300167291c396";
+      sha256 = "53686263f77643ad4f769faac81697c7e1eca216ed0a7b051c2318b181318d7b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/et/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/et/firefox-81.0b4.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha512 = "6f5b9bbc855f8a954c72857526a4c687bdbf6d3997143096ec74562ccd1033b0cca6db8b48983944a1e2b60781c3a6c53fb022e4c10bbef07ed0262b354614cf";
+      sha256 = "053d8ad6cf01be9f51cd133090e99230dfe797effc749e14c8a21ba712546776";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/eu/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/eu/firefox-81.0b4.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha512 = "d576c709576482053ac445f8d83efa1d6a6c18320c3674bd7e71444440aecee0a6e8ae9fadfc71cf36f152caedc0353a472a8ac4f7e29104287e5c7bacaae39d";
+      sha256 = "77774b9126ccbca2b5716b1701f8eb7933ee67ec5437a00b8ab991f423888a80";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/fa/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/fa/firefox-81.0b4.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha512 = "b79769bffdc1f7b9531dc7e58a48c8a93b422a6608a3fc94b7f781da1fe1f721690d909033ab8617e5dd71b00db513604af033e667f87064cb139822adbef4c6";
+      sha256 = "4a0554bff8c11ca39f1de223537d595d298e6f61c2590543151e8ab1d8eca36e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/ff/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ff/firefox-81.0b4.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha512 = "f71d4692e0a9ba2d0c4d982a543d3cf7a1fd634071d0926ed5ce9f97880e235cf9ff10622ff6c30a0b8713ddc7708cbeb7ae823dce9adf79657f49cb10bacc27";
+      sha256 = "272784bfa53ddc48fa43590b3ebd2fce808786b4649efa1d5b417488efbb8911";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/fi/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/fi/firefox-81.0b4.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha512 = "3d6b4ce128214edad6265144f3f1b800d311586566358807a62a9ab13ec4da090b6898799890af4b1cceffc0426328be189fd66daed9398c68492b7d0695a309";
+      sha256 = "c389eb80f3cdd215549c7ce55402a7c03544eca2fa3c2074842af32755d14cac";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/fr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/fr/firefox-81.0b4.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha512 = "234d91842553a82f854c6802137949cbd9e1b8706d887573ca4597a81aea08086d531ba01858bd441fc996e30261bf90032587dd4cb76b906f993431517c266d";
+      sha256 = "dc5a79229fbdd3e9fada6b6bbb35183c17a703b9c3f29d9172f2b56cd5c0d289";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/fy-NL/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/fy-NL/firefox-81.0b4.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha512 = "fb00b7749dfc4fc64a9d08e5d07fee6d79d10c088206eeb0ee97382eaed813c30758745ce4eeb0352549e251d524f5c57c440d67545a0844c17ea611247f6ee7";
+      sha256 = "3eb69867818f0a8448e4f421f0ded4ad1a172bd5c99048065bd4b6cf83e8b25c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/ga-IE/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ga-IE/firefox-81.0b4.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha512 = "ebaf22f5a885fef126e5fbaead30d4e1eaf619ebbb3c87407607debc0957d3b39016422005123f3ace25c64aa306a8a4eafdb5a82487b43aa7058ba2447dea6b";
+      sha256 = "b09208ca65279e393f512a04712f91b2b170ca6e32777479acb7a03db89e87dd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/gd/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/gd/firefox-81.0b4.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha512 = "19d26827df70204f6de6c350aae53a584064edc6194de1b4957e5c504d20a32a3a39566df74196c33ed4d91740d730a21a63209d6bb1cdce9a70e494c9d5bccd";
+      sha256 = "011beadfc3e78ff216a13d55a9b54471ebf84bb1be852aa986ab5ba1648836f4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/gl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/gl/firefox-81.0b4.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha512 = "ad3b9da6b560729d32e99fd92c19e089b60123387ef926abee962120b6e6dc84461dd31c25615eacb09323a8346bbbd38d052b6ecab80e2d88ca507db8084176";
+      sha256 = "c492314ad418a190484fce335d1dc5a28a515f630c59b1cf2d7e812b6d3c3bf4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/gn/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/gn/firefox-81.0b4.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha512 = "e32243be5d9b47da6e4307071a1a1d5f9d323491604d889d699f96777296cb3e03961be9323d2fd0910d289e2721aa025068dc7a2fc30ecc53bcdfdf73469fae";
+      sha256 = "25b03d5251a69631f5d0cbf9dd89d1ce1dd5355e05efcc233bcf62e5311d4d01";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/gu-IN/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/gu-IN/firefox-81.0b4.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha512 = "fbba7f14628061f5840b13d48797297515eab2812ce858db1c8d57e1aa30818cc92d6496e411dd437c3cc1c96a37d9b3e6029b06593cf2cc952c051a7f09f89b";
+      sha256 = "1cc9a3b933b625a26beeb7c31eb062e22ff8dc98c4860bf6ef4aef5567552d63";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/he/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/he/firefox-81.0b4.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha512 = "a00ecca4ba4c6360f039becd87a7c3a15b5ca8e8b371791ca14dd22504283dea598a3f8dee16f060dd23f0b9ca4ec910c671cf69e39f0afff4ee80705c5d42bd";
+      sha256 = "027cd01f51db3b4d27381870ddf95ca2f7252bf7c6588c3d073d303bebb45311";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/hi-IN/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/hi-IN/firefox-81.0b4.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha512 = "f38845963cf99e8d0de6ec82fea1b259d0001389bbeb08827d9c602989ee9c58693675c7c5d24428b2917cb0dad3fdf50b3183d8cfd5d06a5c4557b6a7f57ff1";
+      sha256 = "99d6d2159ae34ce2154678e4913145ccb9c96572ef19a18db6a223647b7ec68e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/hr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/hr/firefox-81.0b4.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha512 = "7770470e02621740a8da17f917fbe17d97d9f8d484bd0de0899cc8c4fde81995bd6a27d033ad99f67b858f00f18f1561a225080fddf832030fc156bcfd34dd68";
+      sha256 = "d9b2fbc6474bac73fe7fb5c4eb818f5dc0d74cbbd52c3aacbed0f17db8bce9eb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/hsb/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/hsb/firefox-81.0b4.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha512 = "bec5c0fe7e41a546ea05c6e311a195e84652e2968f25fb0b8daa8677e5feba9e9363c523343789823cb7f4333ba217ba337c6e05bdbd7c1e24679794f5391254";
+      sha256 = "dcd0c254c542a50807cbf1d0036a4cab5463c237318fb1d1fec9826d052aef62";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/hu/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/hu/firefox-81.0b4.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha512 = "e2cceb23880ec83543b9bf9d05cdb33df99637c8d873706f1a76d9a5e7bb4f838b469f729f5e5c857cd4bddf6911b25800c01da826d8abf54da9e63e2afcf17a";
+      sha256 = "5a0a94eeb9c8d219b3e34e92fc51163e190c606f975735215177d521b7ed9656";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/hy-AM/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/hy-AM/firefox-81.0b4.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha512 = "fdc7528f78dae192b08c6fbe4221ebdfc60c2be99368a11de0f5db2fac6d04dd069b4c5cd3683bb55d87e6152cdd2ae7e0725499171021004dcc03982144eac9";
+      sha256 = "2ff26ab884697d226bcfe224ff5c068aed355f6bb00777fa6d9f3bd0b9f9b386";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/ia/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ia/firefox-81.0b4.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha512 = "4916876d76ed40eb21ccd99c68ba9fa326b991577cd97375425835aa0e7a3fa84963a72b03a9a8b2b37b969fee812e7205a7cf4facda49e74961f06819f0e2cf";
+      sha256 = "7bd9d940f81d76984886463cc10920896247084f91efedf99f787601a47abba6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/id/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/id/firefox-81.0b4.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha512 = "e566b27eb9a493571750d199e77c65480ef075fbfc4fffdc2705b197aa3521e5808b23bc9229f89c9430ff772a29694c6eb35502893325cbd94ef18d3a6ce264";
+      sha256 = "c415b55ec7701219557cc4815ec0975d86f18312a2ef6a8abf3e82876edc5045";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/is/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/is/firefox-81.0b4.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha512 = "e92585293cac8457162b969b8173056d7946641f598e277c03c36a71ab1dcff3efde2d28b1b4cea0136294641f2fa414073192887f02249e344d2b653d4505dc";
+      sha256 = "3ee6e83bd9c244b123c1a1989fbcc0524c4101fefe697ea0a9ab7c6a05302ac5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/it/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/it/firefox-81.0b4.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha512 = "af82be9e0c19451c2cf009240be9aa1ea85f7f6dfceb54663bbeb43449f5302efe94ced7a6fae71bc7c402de6e83149c5d2999f79c414750ef58714ab292ce7a";
+      sha256 = "de141769375ff5da94ee1030f5af84b309917eeea48cde769419004ca5a015c6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/ja/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ja/firefox-81.0b4.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha512 = "5005bb3f0f0435fff380d857996e6b14a81654ad879609b9db6fca76af583591b3ea149fac119f63370195491bb9a235c5dbb49f878d77dc8dd86c4d196c4dcb";
+      sha256 = "69c5c01998a78c17ba55f262493c4e7bfa4fe03bd19a8ca605546f41f0c6f794";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/ka/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ka/firefox-81.0b4.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha512 = "134d29830fabc73ac1b880d918e707e779ff8fc947bfc830bbf959a2fcb5fd505e1c8dd1d4fef6376741ddc51d87f9eaaa9f358c734eb372a8c5131d87c8c506";
+      sha256 = "4c37f22f1a20c79c1b391b0f86bde8535c0766980a1b9a42ef912cbf91752392";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/kab/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/kab/firefox-81.0b4.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha512 = "cdf7bf73277af59d69077f528b1255edc81eb907d587c620c75ce0ae41affd82ba6f3923094baaa4a5d1b2e2ab2324066f82845fd21b80cfdc32dae89d36492c";
+      sha256 = "1c6722e18e1eff26918de17454d8103929115f7f036a1c23247695f7fee13051";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/kk/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/kk/firefox-81.0b4.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha512 = "5ae069f81714b409879a525f560b64c6d113d1c824b1397b64eade31b2ea0c90d4f406c86e6bad241dd03c6eeb693182f79446e0d44086d695e86595410d28eb";
+      sha256 = "9ef2e2142d2e6d49adf59e6dd190b4ff816cf566cd35e5d288f66794aa2d73c4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/km/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/km/firefox-81.0b4.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha512 = "642bc1a3ff81f34366c124fbbcf7dae88f20cdda44ba9c19296c62b2ddad04166dc9d8449f58781044924fc42cd2e9ce7310227c86e6c3aad8e7bb5420d1c006";
+      sha256 = "bf0899cad62f3331d157c557cbf3cf1f7faadaa7f9aeed3c6547b4533689dd7c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/kn/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/kn/firefox-81.0b4.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha512 = "459ddbc9d9879963bef5c57429d8622171362dc6c23ddc3b3445a65b9e7fb509b5da4dfac579841079b886f2d62252771f672d32ab5e70e8af4fff577bf059c3";
+      sha256 = "cfea495b254e1ca8c1be94e95f0c1f126d5f1a1c9d54129562fbec5ded6dec58";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/ko/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ko/firefox-81.0b4.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha512 = "6d674f5576c0ac5d880e532666337b334ad304a41a7974bb488036ad246386da6f21dd7b77d618e53c474798533b59ce8eade31b1ac96a649e86ec9cff51b4b0";
+      sha256 = "ba8c93f8567a4f6bbf7af3c38a2d2ee793b05c0246638ded86538f91e6e9112b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/lij/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/lij/firefox-81.0b4.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha512 = "95ff005b3bbe950fad7ee04f1f2fd81c35f4545613919d86172f2f5173c52c2fb4bf357d929d007f576fc2977e0eeb3ba2ae13ac7aff754c3d4a52ab919f82df";
+      sha256 = "c093b95b291af78460396e87ad39aa142d9925a7253f74aef9640fac0134e397";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/lt/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/lt/firefox-81.0b4.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha512 = "1a5e2f9ea0dff0070acf0bd62b5aa4a2df6f545fb736837d2e49f68329766d7b4e1fb75a23cadfc3f6780cb4fb77bb2bdc7292d0c6a48e2a5ac0077599461793";
+      sha256 = "b035e58bfe373138626d9c5a22e6b6a8c6f35e8ba30ce821f80a1a85fd16c35c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/lv/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/lv/firefox-81.0b4.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha512 = "d79d11a4147e3a10f582527848580c32948c4868d06f521914b159534f2285d9371ff12f5abb436296bea2e8b99c4e0bbfde10281f07543aeb8190890a069698";
+      sha256 = "6dd5cf66db0207527966532a2728d37438f71d1e79caf9b97916d0e404c9509f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/mk/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/mk/firefox-81.0b4.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha512 = "9af70af0e6e997081cb2c8d899462b67b649821bd073a8ce25dd1cc16204d5cdef5a23d633ecf25d52697941f7c0edf0386088c91640db173bc029976e3bc320";
+      sha256 = "1308f476d0052e1317b4c7db29d4d2218c60921a9ba7f619dde4455aee7978de";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/mr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/mr/firefox-81.0b4.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha512 = "c766bffdf742a3bff9620765d5536b1ee89674678aec48c00f7cc9d5badf8f8387f1a83b1429e3eb5d6753a5c97f547b2b71686f7c35ff70d7339d83229a9772";
+      sha256 = "7336012a19cd650dfb8f842de37da8e29e7b0948cc707880667eca87bb31869a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/ms/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ms/firefox-81.0b4.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha512 = "6de6d32414a251c0534c3ff794606d44489590c54ce2b9e12254e1743e38c5055149e9c55337bed4a487b2de5c47200e69a22d1ad6c126f09a6dc63c171db850";
+      sha256 = "192e12151ed1be4c3f7ea12beedd2c50f6e7fa877ae8c448cc899cd0fa1c6d24";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/my/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/my/firefox-81.0b4.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha512 = "b8e12bdb581f5e3b20522c15e35a249bc270e63fbaf298a955d42e7ae796e411b903689fb930ec8ed0a7a607ac143aafaf74e67b845ffbdf2907bf06590393c0";
+      sha256 = "08db2ff728d5bfcf751e95eb9bba34a94c435e53863790ae06daf803d56c227d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/nb-NO/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/nb-NO/firefox-81.0b4.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha512 = "62913a53dee0f9617da39bdc9adec5e500b85aeac68fcefc3b0797da515e570ac0eca70e142488b6de61ef7684ca5e3b100c6c4892660e7132e7cb77c2668a26";
+      sha256 = "22cfe518994fff77dc41e6f45550549593564ef2fa2dd34e31af17f5e42d636d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/ne-NP/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ne-NP/firefox-81.0b4.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha512 = "7d5c6b977b0e274c32932ef3c0c430a434cbe82664907b7fdaabc27b06d4d66b4d7a29a266876089a5647438544d0c2de82f236d394cbce5bcc095e0c627e91e";
+      sha256 = "605180e46adcaee8fb813dc41c4e7bbe5f509f181b607554137712405c0cc294";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/nl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/nl/firefox-81.0b4.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha512 = "7ac864091f66ef5be5d64a4c858ad9331c46a1b801a24da83a440062d4a4eb7c29e39354730e019a78f5d3ae0d52011a11d24f851a05015ad30c05e5e66f8a90";
+      sha256 = "ba8b45685a1d428d5fa1e38e1a3ec024f55db2f3ce4221fd53b96b0e0801a6b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/nn-NO/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/nn-NO/firefox-81.0b4.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha512 = "0825347f0076b5b6ef9f41811e7be2577d534031fac81d2bd8a7b8d943a08cb2adeef43ef31eee3c22176f22af7dd92d73d3f66cabdeb11b70de2f2093952b1e";
+      sha256 = "0b76c63f7942576a2deb29cf15b089d2e73aa0b25f07eb1a511ccf033c68234a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/oc/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/oc/firefox-81.0b4.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha512 = "336ddac8c9d3d0f1ebd56d693c6a1a316622a8abd75b37ffc1d0f511d1c1204f08b2997f95639a4144fbe70921e098b2eadfc036c0ca79f840a54f3cd6fe4e56";
+      sha256 = "5de508b4039c395b594a0c78d25655113906b95a735d1e94f8e1171ca789da19";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/pa-IN/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/pa-IN/firefox-81.0b4.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha512 = "84b93992b7b424a0253e65aec272a90c603867d513191610bb8000b6317784cbf8a706097e64707bb7e6c5b8c17b2ac0c2922b4d78168aae792706142b637f49";
+      sha256 = "0bf9e4751ef967f4c6f63cb6332fe3940698b3e67d0e4873ea6bf639487159f2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/pl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/pl/firefox-81.0b4.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha512 = "df53aa6a153b6cef0c1f53907131f046aec359a45dce64ac6580e887c233b653ec8a363374a5d39a755388b8bd562afb01be537f2192a4c7ba6c95089b8615f4";
+      sha256 = "0fcece8a65132810cb297a599cd4b003604854f0af684b33c9de554fbf7b1e86";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/pt-BR/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/pt-BR/firefox-81.0b4.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha512 = "6c6322785cc4e5f7597fdee4261eba1c44f4aa65fe25731488bd4a755baf619d08d4e1c8b3ffef328e5671db3f01cdd633f0405f4d234763e5e6d28031528362";
+      sha256 = "8363d209d1eb7e8053acb4805df119e230ab31e74b3389ddb01b53b032c12bf4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/pt-PT/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/pt-PT/firefox-81.0b4.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha512 = "88c761b94b4f2eaf3fe3b977b6c9ff57ce5f6f378ceea6d892f04e8c05fd60a2af664dcdb96fe2beca79d78032282a8d97d9e963cae90883b00a53d90d975c4b";
+      sha256 = "cf2ecf2a673f0a4f17cecb10b330bec530fd6e37aff9ed821aa68e202f59f864";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/rm/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/rm/firefox-81.0b4.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha512 = "8c2ba93f63d0418c9c89db8b9a80019940483a233520a5c4803f2d4731235c05e2012610118d90376d53e1ea3e32df69f0f50cf1ba6678f105ed1cd7b77d251b";
+      sha256 = "8849e945e79f0f9605e288de967e9f5316c792b150654e23ca65f6c91bba8978";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/ro/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ro/firefox-81.0b4.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha512 = "3d11bc187feceaaf323e4dcd146ac9fa865061c61185f2122603eb99b9b619a86f1ab83afe5a4cbc64ec70fa400c5039b185bc36f397f4f642a983900b7585c0";
+      sha256 = "452496612b170e53423009a128f092a3d4a372e0e6fe352e649b3c989f6f254b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/ru/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ru/firefox-81.0b4.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha512 = "0ed98d7436ba397e4ac7daffd5d0b2b1ff18ccb06db97795be60dcf88f267bc72d47f7024deb96f4de79e9386841dcb874ba2277de6c2f3dca12405711e56d41";
+      sha256 = "0e7787bee9fdbb1ca0bd3ef050b1ee5d6c6d8277da941232d6ef10c612003773";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/si/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/si/firefox-81.0b4.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha512 = "6e630790cfa072cdc65d264bc8fd06503fd27a0cb45a6ea2ee3512bff758cdbc70267f26ccd48cc0b25ec2d6a099943055f48e268df4dfab5b92a41c07eb2ee9";
+      sha256 = "bfd6df7b86490aa941f5878ad749d7918bc3c907a177213ab8a60df0270eea69";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/sk/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/sk/firefox-81.0b4.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha512 = "343751675e14419851b4d44019b149033e19f0946cb99a244e087c61cb2ebe6d649920823538fc992abb746471ef411214d5d06c82aaaee58383f1e1f9971c43";
+      sha256 = "87c4827968ac3de5fb7609b9d7685653ef279bafbbb8b15f15f93cc876d6e021";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/sl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/sl/firefox-81.0b4.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha512 = "bb4e20af34b7897f92929694520b9763a1717fc18b4f17318c399d737f76f75b0a20c6ab64e74415868bc6ab9af7368780c8e6ebd7680fd6a610231a161dd1c6";
+      sha256 = "6b272ee0cc91ba6114dc777f1833ed5201a96fd905a0d68a71cbafafe1a066cb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/son/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/son/firefox-81.0b4.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha512 = "5b5dafe5899d5e72ebad2b0feddb1a15992c4bd6d7f0c156bbe80eb09f8288f90186c05300d27323ad6df8f0b87f46c8419b77ea186cfce806a84e9a7894fc46";
+      sha256 = "342f9eedcb359409fb324c13120ed25421435b614e9b5e15585ccf1551c263c4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/sq/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/sq/firefox-81.0b4.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha512 = "2865b9573e3fbd5ffe6ce2fc7472fd0a952cc9bda986b42456b811ae1fc135fd3d80910da76472d5d148fc96cedba78deb09b099568749dbe4f02c6166e7b7cd";
+      sha256 = "ad11f5878139c46a2344d0bcf6b02ad2c19e59f9861e7ac74668801e14742b73";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/sr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/sr/firefox-81.0b4.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha512 = "c1f12986394670b2368ba83886491a260776a8959d28fefbbb3e28f89ff15992400d6d52399557f7787b4b90d6cae59f099c94f0ff487912e6813733822fc848";
+      sha256 = "5e555aafe353036537609b9ba997374d106bb5ecaaa386b5395b7d156ff89901";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/sv-SE/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/sv-SE/firefox-81.0b4.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha512 = "b1c4c8210c0f18ada011512cd7a48755db08b4067c7530e30a06ac34f43a863c0929cff714d2d78a79fbb3643c0aff7e901a0e36ba1d006cdb0dd9c42673f8e2";
+      sha256 = "cbd33b4fd20d8a7401e384196c28adf9fda6ee2bf24895d75e75f8b727d33e53";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/ta/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ta/firefox-81.0b4.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha512 = "5ef1af63b19b2dfe49488cb11ad12c495a576a5aa3623e6b977031974778943ce5714ce4eedcfafbeb621b298fb45b13454798ef72040a17d7e1ae722454f39f";
+      sha256 = "8e4e9919ec79c1847449cc75539f24801d972b67d6895727aafddf7485d95ed3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/te/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/te/firefox-81.0b4.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha512 = "8235d3907e8315bb1422e1b32f055571126f39892b2fccc53aeeccea00d896a0b8312e649998daf7ad2994863818b87a1dd14a48510e84caadc5ccb836bd98ca";
+      sha256 = "cb756aa758e69f26eb50d2e81bcb922c2a15a2304ef99debe67a57c44b2c3c52";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/th/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/th/firefox-81.0b4.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha512 = "05c6fa9d79b7d3e4fa922abe100b3d0f371b60e534a12faecf7691189f0431d7cff457e11cd8ed3c6494cfe0736c0d90f3ec3ba553b2da91c45a99a183cfe073";
+      sha256 = "8c2be1458aa4077264ec946181d7ab3160086d12c821dc3d5fa3bbba46de3574";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/tl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/tl/firefox-81.0b4.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha512 = "5f911a30b99972bb2b521b96ee50741a42ba921c345d7e9a820b9954e5c77c16afe9299ee5df98f971fb045d757c4ea96c269aac90a21d4fa7c9c6f651b125e6";
+      sha256 = "e51e4cf97b79b3720129ed9467b57d393a4ffd5698a9a941cd28feffa1d166fa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/tr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/tr/firefox-81.0b4.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha512 = "326798d3058adfd3d13ede18c643972e4435fc0ccfc126a1d9002c7cda264c94dd691c1929719f7dd0ead6e62454b7198da05cd2796c0393f010bc7bd15487ba";
+      sha256 = "9f0a494434bc3d78c43428bc535517b5d61743326fbdbf1836a84f353408a54e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/trs/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/trs/firefox-81.0b4.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha512 = "6b92fe4b0eb39c90d05d15c4b0ad7fc0774e4351af2cdff620465c9d949ab678fd37e671d1292cbb4830d88a66f81184a696938fd190dc4059aaac91c9b7a15f";
+      sha256 = "24cadb7247a254595c29aebe60784d37061465f2c960a8d036096c6df71e4186";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/uk/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/uk/firefox-81.0b4.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha512 = "3940ee3f91ad762937a1e7efb8e864339871e712d47348a08eb4ccf01a3bddc892048b6bbbf300f453ee0298de5d2269a86f2898579f34b70719c35b8bd27a86";
+      sha256 = "6aa85e7119fd3ca00cd87d898eb93d954b1e58d01edf14106c41df98bdca4d99";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/ur/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ur/firefox-81.0b4.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha512 = "fc363167abf28830a0b00ffc9b9d1f51e8805518854369516491fafb4bedda2eae9172659732cd89af782381ac3a7636968405e8e084e4e39623eb32246ba691";
+      sha256 = "6b188379acb89178d08e827a60244c2298eae62434991d53378327c36829fa01";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/uz/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/uz/firefox-81.0b4.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha512 = "1f8ae3f175837bddbe6b6efb594085892c28abb557316b2eb991d94ea0f83f34210c758d17f0fae3c8c79072772608948871a8b03e075f3ea1efacb0cafc0bd5";
+      sha256 = "782ced50737f68a9fa6db854cde83ef7bbc6f95776a44918248efcedd95230ec";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/vi/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/vi/firefox-81.0b4.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha512 = "2c6b5087fe7b58be884abc9bfff647d3ebf146e7b9497b2664d4d0ad055f8a335c93bda5149e43c18752e1fcb3f1b5d9d09632552a2daa15983a5c79ef1f71ce";
+      sha256 = "37b600b306c901080f659955163b1696f5129e71bc3c5f65dc74d280ee6e3024";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/xh/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/xh/firefox-81.0b4.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha512 = "0274824180e21a1b9b4e7d7bf5c03710b23e5ce68171c3b7a2a53acb173a081ae6038802896a0eedf933c278f0553c58d443557a6a8e5c3fe9146e8d3a6de59d";
+      sha256 = "ebdfb9a50a5a7cad0508ade647ef3f81e18837d6b84212de6393a854bbfc652f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/zh-CN/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/zh-CN/firefox-81.0b4.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha512 = "603fa464a03e65049c2520bb237e73f528542a7f58305e6cf3976bb0581323daec01e7c925d269e72e9990198a36950a8013563e1c40aad38e6ee818e622fe77";
+      sha256 = "fbc7b8952fa6d2d73b736abf4e60a10512eb983ea4588f7e746bff9512b953ce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b9/linux-i686/zh-TW/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/zh-TW/firefox-81.0b4.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha512 = "3c91149a15e27e9e3bd3d5aa8c8d26f2e7ea92b8930e801d48c2fc8c9b67581e724d79a90bcb8e91a4bb4d74426c421962cc16938cda3292cb749cf204487795";
+      sha256 = "5c29c56ef6480703ef9b6a2dc3cae8bc45b2fc01495ba099bd1ee28bbcdce55a";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix
index cb442f67359..d86b9d6f987 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -45,8 +45,9 @@
 , gnused
 , gnugrep
 , gnupg
-, ffmpeg_3
+, ffmpeg
 , runtimeShell
+, mesa # firefox wants gbm for drm+dmabuf
 , systemLocale ? config.i18n.defaultLocale or "en-US"
 }:
 
@@ -84,7 +85,7 @@ in
 stdenv.mkDerivation {
   inherit name;
 
-  src = fetchurl { inherit (source) url sha512; };
+  src = fetchurl { inherit (source) url sha256; };
 
   phases = [ "unpackPhase" "patchPhase" "installPhase" "fixupPhase" ];
 
@@ -106,6 +107,7 @@ stdenv.mkDerivation {
       gtk2
       gtk3
       kerberos
+      mesa
       libX11
       libXScrnSaver
       libXcomposite
@@ -128,7 +130,7 @@ stdenv.mkDerivation {
       libpulseaudio
       (lib.getDev libpulseaudio)
       systemd
-      ffmpeg_3
+      ffmpeg
     ] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [
       stdenv.cc.cc
     ];
diff --git a/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
index 9863ef90fc1..5b61afe0241 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
@@ -1,965 +1,965 @@
 {
-  version = "78.0b9";
+  version = "80.0b8";
   sources = [
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/ach/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ach/firefox-80.0b8.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha512 = "379dd556086264afb4cd324dd314ecee65e09a2dfc63c3f2b8dfa1e3f8e5ce0e3300f3c61fda186454d635c339b302c8d07c613137859dec585cf50f152ff556";
+      sha256 = "f9b686c12733f6be1c96fcc71727f55e9c79f417df64a4b703c7fadaaf3a85e6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/af/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/af/firefox-80.0b8.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha512 = "4b7b3e373253566c2672ad1d60b7b8af8617418c082f723fd5d3df9689e735ac5def3765f828af0f4147e74e347c288cb87a599cc5e611eb942589306625e1d0";
+      sha256 = "dc73e323741c3612607812878d24450b0b5d5274a8e58d25a9c3957d457b2431";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/an/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/an/firefox-80.0b8.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha512 = "37f394a8609528aaf4979c948449ec8db79c010ffcf309c5430541c1cc9b5c198766efdbe0122b03df7f864027b13d2b3d156e9632d84a1049a3491ccf1c3d5a";
+      sha256 = "a84e966f8ac0373f63c7fd76148e16c56af645bb9b83cccee91e20065883f92d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/ar/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ar/firefox-80.0b8.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha512 = "ff487607504315e2ee466b350d2710f5217ac4de3c32bf6d03a33d80aeb404c6a095d10f423bca2f69181b6bca7e3d9134bc4a14943afa0d0d885acc347298b3";
+      sha256 = "9949f976617961c3853fc6e4596bac9a7c18d66b72df22b9b217dbccaea6b0c7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/ast/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ast/firefox-80.0b8.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha512 = "2db7e4a70029f2866991fbf19531444a3aef8094f9d3fe49d413023e10b544a2f9f1472aa50d1c4784f6d415384ace05efdbbab9b382e164ab6a0b48ce32e702";
+      sha256 = "89f277e215e11c7efd270c6f0952292db5c85057a50b48a3753fb16c1322587d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/az/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/az/firefox-80.0b8.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha512 = "4664193864b34f060b720c186147c38a3ea1bfce23596de0764a220adebd44f559035009114da57f3733408b520319555cd0a3cc995d11642eb192d4259f8c60";
+      sha256 = "44c84f6e00f5672c4f4b5d26d727da4aa0e8f5bbdcb4ab484be4015b5ea4bb55";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/be/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/be/firefox-80.0b8.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha512 = "3ce6aac728ff4b6eeaacd1f70af0911a017f5df92edf2824ecdf83d499d3d8e0da7c3f8a16bfaf99c70667510ac99fc005c7feca1b3ef08af1ccbcc88a006a6d";
+      sha256 = "cbcb4dbf931214f01167705529ce410935a378ddf76f32c04a16a019a04dcec6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/bg/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/bg/firefox-80.0b8.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha512 = "d6ff09eb01548cf0cf0f75151f0dab3e959d888bb75104dde49db0245cf72db73c0177e1eace68d0e7a4472c310cee21a9c82536570f9275b8d3f3fb0069b9a2";
+      sha256 = "6af931944901fc143d9958538aecfcfa5c8604aa928dcad7ff4062e4752b2861";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/bn/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/bn/firefox-80.0b8.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha512 = "3a46ee6b89dfc60e2a989a4f8302bfd7ea43ed7d40c0d3f6a938d38a009ff698418e36a96e7e85c6ea6626f58dff00cff943678573215d7e49c150fdb3c292a7";
+      sha256 = "5f44e1a8abf75708aed3c73c217ac6aa31520c32eae8c6a2c28838d4591fd779";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/br/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/br/firefox-80.0b8.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha512 = "9d889cb992691ed4a0b8c5d77bf84141977c5741293eeefa12fc3c545b874472aa8a1ee352bd7cab985d5091463f47c5f0376b72b7dfc3aac36345a84a9324ed";
+      sha256 = "7f345832f046770ff20457c902b499a6d2d3650e3cbad696d0a0ce81371b8710";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/bs/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/bs/firefox-80.0b8.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha512 = "408aa585259f2f8775108f54b3b89fcf2a75d4eb09621a462f942eaefce805f75a94ba50df7cdb695a5905202f1de0e27bd01f99ea73c626c03b5e7f596975bb";
+      sha256 = "539e441b74c8897113d8fe36076473f61cd26f9be24d5197dfa8f92a5ce68169";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/ca-valencia/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ca-valencia/firefox-80.0b8.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha512 = "8c046266c4c684e86dd64327e1c04eeb5bf581ea9f56146d2248d5ab40f37e33cb1512b11513eac3a87c86350d2802664894adb64d5a097eaaca235b4bfc1004";
+      sha256 = "8f8581a6888dbdce1d357e8a289a0befa20e1679a8cc7bff13ef237bb5498ec9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/ca/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ca/firefox-80.0b8.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha512 = "41bca38caa75841d1d87169ce31d8cb9d5e356e708f607d2d4dd7818749ae05adb21312700a4ee849196d6aac7d1c9ae595b7c36019a23f18159a176cd60d058";
+      sha256 = "5f3b7553a62465e18e103ffce48f75cc58489349c3cf966e3ba0138ce14d7b8c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/cak/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/cak/firefox-80.0b8.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha512 = "3edbe6919d52d94768fad0d0ae14cdc8d62822b17348c3ae9394e0816f06ad56e9fe6d383fa90a34400a9fda5ed0671b73e85ad975efdf7bad3ffb311334881c";
+      sha256 = "a1269157c6ec005756c1e0f0bbbf61a524f03b4c69022a2c49661c0375a78839";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/cs/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/cs/firefox-80.0b8.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha512 = "3eb8df01cd7f3be700f03df2512f114dce87556694145f1cbbb80897c89266223052ef055a91b6a5863d228dc2b70f4177e72e11c65dfe5ad24bc58f45be8dae";
+      sha256 = "15a26b351b40964089c8eed80fd5cadafd66ef39abbf19ce50a8b7ef5bdc661d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/cy/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/cy/firefox-80.0b8.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha512 = "b3134d0405c68e02fd49be1d15c80befde907b44fd06d9c84a5dd938aebeceae89df695e28df2aeda865c682283a80d61934bf387a218e029dd1d08faf8d4372";
+      sha256 = "8400fc3e6192f2095d4a57bf354dbeee1b771a8aa61ab0d865956cdddfafcaf6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/da/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/da/firefox-80.0b8.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha512 = "be2aa9b4af5004e1c46792c26219b8d810f338a7f453e41741ff23ada1ee7486f7828e824c67ddd9e2eef5d5a0338a1bb59b7dd448d47716dc8425221de2a92b";
+      sha256 = "83c7818e65c32723c2bd0a4f65a33f19941fdcc5d84055cf2532cf8c4592020b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/de/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/de/firefox-80.0b8.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha512 = "10fc73c1c101eb9d751dc16184a5131bbc233f33b2a5c416421a42c10890439dbbf39a364dc75422e02f69e3350d51c857a09e9e30c80b1f96c738852828601b";
+      sha256 = "589b9249ffcff23c388716c24cd09baa8b309d771b97f4dfcf9c979ad9a3342a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/dsb/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/dsb/firefox-80.0b8.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha512 = "cebe56b680bdfeb07da3e5111f6179481aeb10c080df736bf6f920d6287537b87f0848722ced6b679c1e069e8224548de2217c1f3018b5ab424fef0e0d6eb3be";
+      sha256 = "df57cc439fa74d93921c7c1265b7335e23c0df545e78eccce34e06fa528e75b3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/el/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/el/firefox-80.0b8.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha512 = "a1100118bb7ed58f0ba182fbad0962976d307645bbd7415aa618111539fea530c9d6a14dfc5c136690b5ba5013ac082bf58cdfd02fbd06b725b786e90bac91d8";
+      sha256 = "7a2b0380cc8733e7d6eb5adc228fd543d8459d7b7d9ffbcb39b73dffd395e5de";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/en-CA/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/en-CA/firefox-80.0b8.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha512 = "0eea76486632298a11b160a2cc6b0437ad682788c1ca1b1b9d3cfa6561ac3362079365da9f134f5cc364cd9ca39872af65fea177e424febbb71706b76cdb8300";
+      sha256 = "6e747524fb05aa987e0c24b21fc9ab27901f1cb205b7cffa100d5bdb7ba130c6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/en-GB/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/en-GB/firefox-80.0b8.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha512 = "ad06e3fc4f5efd83160bbcf8db07081fc8701137d37f172e57be3251a47051c4f1ac61323042a51de4b310464eda177761d87e53b4271c747568708e7ad84421";
+      sha256 = "4e95f0c08c44e6d4830abaf9c2d25b10e63753f1dd48e192d4464a03b82a68de";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/en-US/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/en-US/firefox-80.0b8.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha512 = "6b95d450d1346c6a862aebae3e910b1f50b65ac670aedace293443bd0a8da6509f4c6b286640413368d5452486b2a899fb4b1a30acbe1872327fc3cce957a8ae";
+      sha256 = "2b75be9a3961e734ae16e591c367e76828e9a3adc458629db69fe5fb32a8b476";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/eo/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/eo/firefox-80.0b8.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha512 = "3b8a2602d30ded67190de907d498718d6bce213556b74294a5789e11f34ef1d8613fffefeccc964aa8b802b4cb3dfcd5022b5caaba6dcad51ffc1b6a5db6924c";
+      sha256 = "2fb71c60605c4c56432c262f62d72509d520787a7e86a45b496a68e55d08823b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/es-AR/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/es-AR/firefox-80.0b8.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha512 = "4ed53101f3dcddb40ec3f4bf7f6e442cddc2a665e73125f2a944280fdae072340bae68738f37c0bc858b014b35fdcf41c3638ee0f83e755434ef904cf79c1a06";
+      sha256 = "3aefd418e20dbb7ae0b8aa87d15be140b4ddd7f6572ae0ca691b98f7f919361b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/es-CL/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/es-CL/firefox-80.0b8.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha512 = "57ff61547ba0438c32f8fb099169fb2145e8b3106cf06146a43ac0439ea2df39040ac72c3b6b2ce2ab0e4e0a1e20e874561f8e73adb51e28c19ed8c24bdb513f";
+      sha256 = "7d650204f7f717cb39b218919b3654db5cced3fffa4d06fdcbd4eba5cea1263b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/es-ES/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/es-ES/firefox-80.0b8.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha512 = "ac2a880f095b6044aeef91be69b1c56e28d9515b04e5cc6144dabfb6704c77f4a8bd037007497f37741bc6224889e811ba8e13a1dd5d71e243fca236996fffac";
+      sha256 = "5870182df6c69538ac1eaad0e61f580165e2e916cb76bbdee8b659a5a58dc68b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/es-MX/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/es-MX/firefox-80.0b8.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha512 = "67849cbe94756db1fc7e3a07678550eca1d26530b0a141c5832d456e48fcffd83a1e6622505344225291fd4a6d0e3ae6e0771f5cb602cc0360e2fe045253e144";
+      sha256 = "166dc0e61759c879737a10c3b709e5bc94493bfbf01a7997c2d38b48254d6af6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/et/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/et/firefox-80.0b8.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha512 = "2b5a6618ce457cb0deedf234595e61530ac4f5b1a27f858a149748fe3bf7d3681c6d10f795f48f6dd65c3d965be8768894d8e29e01677f6c274ca3af4b854af8";
+      sha256 = "b8b8ea33ad920876b36abd8d35a61f01548c5a482c7eab0998f83f066bb62e27";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/eu/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/eu/firefox-80.0b8.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha512 = "bd1415e571bdf7abe411b3017b168d6310e4eac84bd3634ba7f73f3f6eb259f54a3e7767b7ea4dce7a6f6d292984d201501c0c9d92c3490c1aa22cf29469fbd1";
+      sha256 = "255637aa99002ea1f353098b19787077501efc915a74c2bc88a6ed6c05f12079";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/fa/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/fa/firefox-80.0b8.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha512 = "095169103f200c5a8cc6b618514a674f5d43d830ea1972ac18f5afde10632bc36c89b8cd96ebdb22d30c55bf27f7574f8b1a9fcf18fe25d49cf7c3bc85e821b2";
+      sha256 = "304144942ac8e71f4c29bf4bbc91f17a05bfd712e621cc0029909e0b65e09a95";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/ff/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ff/firefox-80.0b8.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha512 = "a0e73d6e57e441fe267fe43c6f6eec4c9d4d2d77e9c9b3f1a0abbda37a31ac4c45791275e6e19d50aba3f4256b637637b58738e6fa5c164b734aeef0989e8e0e";
+      sha256 = "7ce1b42078fe98783e2da541cdd69dd2083ada20254ef80fb53454950e77eddd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/fi/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/fi/firefox-80.0b8.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha512 = "df29cfea5faf453e17627cddf0234bd1896b7114a6c78f08347e2175bc1d4d8944b5af90da8d04c4c7e4a7e684990fbaa80b3d02be44fbe0583fabe971d79cbb";
+      sha256 = "af9271da2138c9c0d73fec09c5356a87b91aecc36a1211a9ce35e0ee1bcedda2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/fr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/fr/firefox-80.0b8.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha512 = "7c848af02baf72ed1a1b74bb65485cdca4b55b11dcfe3d79988c5394dc1019ce05b7b3a421dbae7011921f5ea8c7f818672cac29103e087ad5344471629f9a7e";
+      sha256 = "c7f347082b17060c7af21ef12f9fd8b210ee20f877e7e791379c482a63e04ace";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/fy-NL/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/fy-NL/firefox-80.0b8.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha512 = "e1d0a3611e6856889d08e8e29f251b89799c75ceed24fb9a03c7cab8753798b72b41beebd42777725d1166e1d306a6972f4a34a1a55031f1c3c8af5f430b680c";
+      sha256 = "51d42832b2f58e0d8f011762f9884dd49ab243d45b050258ceeae96bb92daad9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/ga-IE/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ga-IE/firefox-80.0b8.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha512 = "f97c61ee7ef60c82d4d044562da2e4331f3fe529b66774640ff0b098e9b8b05d11b57be4be13eefade43f06b7859fe1ff9b53abe9ab2b00d87fac56f72e3a6d1";
+      sha256 = "33a50b14ff9d965deac611e0dd6a85de9caa9cde9b99a8dd955a28916e026d7e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/gd/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/gd/firefox-80.0b8.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha512 = "66f1e68ef58259a90852e3d07d738b5c94dad69df1bc5923965af998b7fe7922db5ce40709575727054f8c9cfce88df6e4da9b5f7f8606b49985edfc270e26ab";
+      sha256 = "bd3469f5c101682a723eb5b261c591fa619b64dc99466ae919658cf44ae8fed4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/gl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/gl/firefox-80.0b8.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha512 = "7f9d3209fcb5937578eb34459d2d32470552941cfdae081f66a7411796f62f06000526d2d7054e72073c3b7431d6ad114d8d092ec70e001c2223992ba568cd0c";
+      sha256 = "eedd3b89b26b6634827e07a5b20b57716f54a604b18d9849a4b2fe30ab7c366e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/gn/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/gn/firefox-80.0b8.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha512 = "58db0dfade04dd4e73ef6b9dfd3555a51870e32085ddf1ff5287d5e21867bad74d4ab83c383508c42569ee829a02f44f2bc31dead67b8f1ccb62dc8b6c1f8e4b";
+      sha256 = "206a292bdf13d98a502ff89ea57e94b37a528e57b88c1611c5094ed64aae2b0d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/gu-IN/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/gu-IN/firefox-80.0b8.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha512 = "083ad0f168b9d9dd0b59c8012c9ad2bd297d5de971cfa226d725adc25d1be9d31af040b383ab655a494d5689bba6c0868612b200b5c69e9abd3b03dda80d551d";
+      sha256 = "2ec91a2be77abc9b52e4d466cfaef70ef02b7b92e332fe572cdc3f4e53ac5276";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/he/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/he/firefox-80.0b8.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha512 = "86de69997e354888101ba94a9066b5c482566b65ee89364f1d980d016509e67d1fe27090724df44466fb7b3a9a7a65eeed8b3a18079815a3be3560a1353a98dc";
+      sha256 = "5f53772c8a24d4fe1be3cc21673a924a5d65e606168f079b8091f4502d1218b7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/hi-IN/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/hi-IN/firefox-80.0b8.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha512 = "106d76c0bf26166a623c577c2a3697966af95ea4e5e9e0d19bceb1a60050519439664959603933f20d713f4057e3ecbef1fabfd79e89cff207a196c2abefa61e";
+      sha256 = "15e74fb5124e1547f7eb776bd3b6d4096338731f1d97b6c0944e7f3af1b569c9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/hr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/hr/firefox-80.0b8.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha512 = "9711210d9e1f5df7055984d425584bc5a9936508478ede52bd1eb78807f728d3fb7b71f2ac57293cd89af7954e703d64018dfa1fd61da185df11ad7f1e08a9ed";
+      sha256 = "5c4a0c766ed006e0f43856104aa8bd96e8d63ca618fda401370633b707e80374";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/hsb/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/hsb/firefox-80.0b8.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha512 = "591dedeae2053b35a6db8b0ff86fc3f9be53dacc5ae60053d6c3ae1191805a0d2947d657e217440d225f32788aee2a4c7827547d3088a89dac08fe122e2aa233";
+      sha256 = "6945e71a060bcbf8a329c65ddcba786beb4f955cc2105806bf5873c07daae988";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/hu/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/hu/firefox-80.0b8.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha512 = "4b69259d4ff976c87f321f31de7d9c8a07e3a6bb5c038f45779586b32bea4d493365199082cd609a266ef5c4ed15fea3d7d0069b6042931074464e3ef1620ff6";
+      sha256 = "5da76038365922aff82c540652132c7763a07f4336ef003a434299240444b036";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/hy-AM/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/hy-AM/firefox-80.0b8.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha512 = "e5fedf4eae997fd3e39699e0354d10d5354c5716cd469565d7f54c7da866a2fc272d0be43ace1d0436ff2daacd85f3696524bcf3ebc03dcca2e36ce1667139c5";
+      sha256 = "4be5260452b39b707d271b5696710038174c397083f626b3fd877aad36c37142";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/ia/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ia/firefox-80.0b8.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha512 = "6631cdd92464ce6adb971fae4062c4e33fca2c04399890ebca3004c127c99e7987318818cd626993e9ba17ac807349815cf49a806766b695dc3bba7c6d6aad97";
+      sha256 = "94dac5899d0f2d5afa0dec53472afb329b956347d22581e1b9668a123d200278";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/id/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/id/firefox-80.0b8.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha512 = "d960404ba82cea642c8d33b6120d2209a2ca454e68877f29e4d10f5f914ccd7ea6b35dadc554b1c8d6be4d5808511b48fe4d7959088fff8006d07567db0db015";
+      sha256 = "d4cade715292ed116c2605dd6a8c70854cad373641982283decbc1e2f0417490";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/is/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/is/firefox-80.0b8.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha512 = "290f940ae69ba340eb9d56b95224f62c32e07f63df68a5ba9544d093cfd17879baab6fa2a87b0e0f3fb6cb946f6ef4ca218768b4903f52893b186e2fb31ed57a";
+      sha256 = "5f4bf4e8bb2f5e72872e99f8415b864df457c93ddabbcd4377588895c83b1d7a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/it/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/it/firefox-80.0b8.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha512 = "d07fee4329e5448b31523f95d11f272c82668eff7a6d3ba4558b54f4c51028a0b8d86fb9d04296f4c0ac6e3d850bc6ac700bcf3ffc12ebce39fc0e2cc7e9fd9c";
+      sha256 = "5fa9251fd8c8e0d4aebc006ea1f8df15afada7276a1bd0517b89c2a6f8e488b6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/ja/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ja/firefox-80.0b8.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha512 = "8c2de9fefcf5089ac0a914244968d049cccd493c4c2352ad0ba2449a19f93fffc327c3aa77fcb6184b61fce2fd78cfd03617800c727f7413c7175cb65764ab71";
+      sha256 = "a1557fd84bb39786566b6c11d1efea9464a96b77a690b1b1c3b165283c031185";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/ka/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ka/firefox-80.0b8.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha512 = "3aa5200932dad122da63c828ff54248bf6ccb999dbba6e014061cae97d30ee19c00daea1f72a77be7b8bb1f0a207dcd0c82426e13a532a5e175cbe8c016a0470";
+      sha256 = "f9359c7eb9c6536ced999c18571babd932a1b1bd22565d6489bb43cb17893eb8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/kab/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/kab/firefox-80.0b8.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha512 = "dec8074470353c86488dc9fb1c1be218b5410c877ef5f70c4c806525f0d1846c98dfb2c553195b64d558ea88899116e3f365a58de5bac69651f0cc988d266cdf";
+      sha256 = "9b34875edfbf6383b5bbddd110d969e32e448e47eaf48b7f41c215e6b3f8da62";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/kk/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/kk/firefox-80.0b8.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha512 = "bf07ad65ea0411598d711addc25ea44106e7b8608d0674a1e81024b9cdcf8538186eafe285e7e2de36c0c40bf4a24dff82a47d691cbbac48c376e1cb381b96b7";
+      sha256 = "78bdac1a7f0bd82440e43c6079332624b1e7e60defe45d55493857b1f9e2c7ce";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/km/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/km/firefox-80.0b8.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha512 = "0b1034c7df41ff2b1dda99270f2c29b4a6bb32e82072d8a30ff403774ff489fdb05616a459c9d9334f493e53a07c12cf43645f5182f597b8a817024c1faf5a8e";
+      sha256 = "9fc753e4fa4a2a3a911dcfe9d8c7c993416833bedec4e94e85d95ef075209377";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/kn/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/kn/firefox-80.0b8.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha512 = "e4b46f136be69a14e75ed2db07764b16754edeb0f83f9542e96ea40c6a6c1a652cd56eda323386987e761330c3a135d0ca3e2b04bf73b7c2256a468d1b6b2fa2";
+      sha256 = "1e45e618c6d4db4f870e4d3baf60676d2a76916ce0998ae33d671ab73e8c1bfa";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/ko/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ko/firefox-80.0b8.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha512 = "efe3b5b2b261dbab560a9c5458f5aaac5a114a5c9e05a9528411677e1bda1b5782011bc7ddd18a7dac13de6a7e8bc9a769e4831dafc381468829f3cf3a4b7ec9";
+      sha256 = "afe8410a5be470aa016720f411f33aa0b244fa34dacb138ab145b97a7e195db9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/lij/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/lij/firefox-80.0b8.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha512 = "cfef1767caf46aa95c8237ac6714e049f6df0bdda9e7c8657575e1d17df34259838eda1d3c6df8d7d478732602cfd7eaedee7699f326095b9605f410cac1921e";
+      sha256 = "094f4ad0a2b988f0d75938dd6439ad5dacb1eee42584e7d1b424289117512d49";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/lt/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/lt/firefox-80.0b8.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha512 = "56e03d276a1e62a161ebfd200711e78e468d5703aed3d442687becc27a9e9bf1db8a219ad6681bcc609615352d55a6472c3cd9fac122f567f259a98b3f151a43";
+      sha256 = "69164a34e2cacc8f68e8e87defe713c4dcd1de278d449e1f9eb7b8cf42aae305";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/lv/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/lv/firefox-80.0b8.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha512 = "5149c964cecdce3c205fd14a9993cf79f5417dd26764ec4f81dfbd3972836d7b9f61534e53e531de4a3cb9b37e3e37d9eb1abd3a4d7412c6d13bd31398148c2a";
+      sha256 = "10262da2e4d50f2e331b3bd0c4d064002a3a5f10719284b96cced812ca0551bb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/mk/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/mk/firefox-80.0b8.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha512 = "0b9af40405aa6fdfeb3985ac642e257148ecadd26af084be4230e0235f837525c654197f513bf557f9e39ddb5c7057ac03568b378cd71d878a71e476aced1c74";
+      sha256 = "d310667e306b177191965b40b6cc8556e0fa749a3ebfa6120b0255e701d81ac1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/mr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/mr/firefox-80.0b8.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha512 = "5e5af806dc7b3609e1359b6e88ef5a3c8dd1ed13d5d3fd8520cfe67b9665a018914e91a8fd0d15860b6719e430b50c2bd486b953970aa4b3e6202bf49d9aa4e8";
+      sha256 = "2130fd9a56e2e4f4c09ea57cf0a566ade53c255c52e867c40316e14a04a59e0f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/ms/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ms/firefox-80.0b8.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha512 = "6f8d1755d5c3a97c19232102c1241d43860a0915a7d0ab4f266ef6a6b3564f19f4f04b2aec7a756ad6d1d12298823e005a70b47e75eb3f9c2f93c6b4bf3de6bc";
+      sha256 = "ac215f60d098eacfb4d03e857e0229d0368a113e5758f00044790953712cc4bf";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/my/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/my/firefox-80.0b8.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha512 = "687fdeb0a10cf2d03f9b7f3f62eccc577e897201f870dc3f49148c7f610be04c9c593f8bd00b3a7964002e1662f70efe445023eb4f4efd918543f8881d3e899a";
+      sha256 = "0f89f81cde40821463e9ddbd988616d019d73fc0a27cc3a427dad4c9bd6fc931";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/nb-NO/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/nb-NO/firefox-80.0b8.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha512 = "3a0a47f972b3e72f6bad2288fa5e2ce7ba400b280d1366695729c4446adfb6a9a799f6f433ae17ac056999484caa4791b5f61f3112bd909b09aa3d1001065d3d";
+      sha256 = "4d599136e6a8f430f21605895d2ea63aaa3542a2b9dff5fa44d3a618dff1be5b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/ne-NP/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ne-NP/firefox-80.0b8.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha512 = "c0df6d7bba0ca18712ef932d8065404d245c41ef009d35569e829657a2a572a31f5c61541155753214e85a5cb77ef84d9445840d58fd7c69f58be5e4673a73f4";
+      sha256 = "859dc2201e76de7f08b2c29d11382f02bb2eb6f9ec48f65656f578da67cc10d3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/nl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/nl/firefox-80.0b8.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha512 = "63959b74669f55d435c3e2e68989d7ca17f81b0f79e855b38cde675d1dc0f6fe8b3782ba20c5a1fe8eaccb30399ebce1278c891fe57b6a55213ff8bf7f43b7dc";
+      sha256 = "f9b7784f2c626f6bfe8a39a18a593d9f0d10d0f6407d1015969fd3744a483e88";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/nn-NO/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/nn-NO/firefox-80.0b8.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha512 = "446f6280e587e8df0c54219cea47f3445e87398c6a63c3cedfa3d847f6cf33771456076621db34d0a46454ef89a4bc99060cae052c1f2fb3cd2ef901e2e02bd3";
+      sha256 = "6c46d8b833423fe0eed0da6c162ae16f6969b569902c41fa21ee7e19ce7515fd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/oc/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/oc/firefox-80.0b8.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha512 = "bbc8b1917953ca5ddd6ca760848c233b770e798c38919ef978141d2fa5a58a8adade9cdec0e66f460ac38833b5fa55ea9993f9bd437fa890ac54fc383b3fbba2";
+      sha256 = "c359b9438f6065adb64baca086b7bed295ffccb825a96b4bcc5721ed4346a061";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/pa-IN/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/pa-IN/firefox-80.0b8.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha512 = "05f6b993ffec8e369246dbfc7708049b6700f1f662d3aed3c2ea70762a98edaf0d037d0e3859d2a1db024f95094f392fbd64714e17c8759191e7f76b858b89b2";
+      sha256 = "6ae3b82728155e195747176188e30d4ddc3d5e9499ab018902e2e1289b19c171";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/pl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/pl/firefox-80.0b8.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha512 = "8471d0e686068ebd15c52d937c160648ad3e30571eb26667ea609f3f8c03393bce095b18c935bc1914d409ad564257f93ab52af1bafc05c47520227b8abaeea9";
+      sha256 = "45b97c17dcd1042eb205f6c59f5b679fcd224705cd5009dc2e39c8a22099ecb9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/pt-BR/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/pt-BR/firefox-80.0b8.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha512 = "d9f4e47f6574691fe6c8cd9b187b1d2006ed98e5e1844890d9ca7c6abada04716e28cb2b347aebfdd434d60aec38cefb6e322f2e56eda80165b8aeda52337576";
+      sha256 = "50b2309fc1b083f739b090729096fe82747dc3e889923d271aae500ee5f0c82d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/pt-PT/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/pt-PT/firefox-80.0b8.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha512 = "01b80e0e548420e0cd0102b413e56e5e05c86f21c0b756c10001587032ff0a5d773e00de3d7d19cf64beb96d2f12988d424fabeb5fe1050d6fb1abe7e25faf2a";
+      sha256 = "aac403c497aa1bb9e37038ea7897f57074278d080e592bf1984f1712a80de632";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/rm/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/rm/firefox-80.0b8.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha512 = "ff0b5ace23ceff3045bd6428656476c15a90c1b317fbe4659533afd42e4b7d8bab829042b3bdfe3ecabb6a132978665c4806cd8977663cd221c7166df93c2920";
+      sha256 = "b8330c7ef733c1d50e320376bdd9c5205fd56f58fc7baf46497f1b0902193dc5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/ro/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ro/firefox-80.0b8.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha512 = "b2fed50309b9e9bb7368b80941f867ee18bfaa0f8f369a6ff861b9f48ce5cd7e3f7acf9c6c01ee16f5a79d10ac401f0426764b01ed1a102cdd4f4fc421c69aea";
+      sha256 = "ae7d39f56d162d7b8bfb4d55c6de9b46a40f45c1bf9a4191e65c7a99a36b22ab";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/ru/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ru/firefox-80.0b8.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha512 = "e8be53a00d9a5ef674c6063f080a4221a40f05490a34db631a8da734dcfa9d3af8d8a37422fa91c508743ecf040f0c3e8a88c6eccf3dc4f0c64cadeba2bd7357";
+      sha256 = "10e1adf60a23574fd5ccf9ae1be83710c92c902367174f73952d18412228814f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/si/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/si/firefox-80.0b8.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha512 = "d89e8e963da5e995171b1b4ad0e8752f5cdbebd16f683bcde9b9882203733e0bbadacebdba199dec21fe4cac52152667612b9542eaf1d3c8e5abed010fe1c75d";
+      sha256 = "fe02265dfb0bb12ad9a5739e802937540425789c8e36220f59001ef4fc256f16";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/sk/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/sk/firefox-80.0b8.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha512 = "39791d1da195e9d177fc7ba67a8ea2c95887921bfa70b989778721aeb7e825d946247e11c96ce30b0930366a7c6c7c4d6f6cc623c224db5e18e07b619b614650";
+      sha256 = "73c58bb35f204f875d2c8d293780810be6083d2934fa8d7d7e02a3bc8d41e5a3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/sl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/sl/firefox-80.0b8.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha512 = "72a1c5e18bfa8d3572f1734fa9affee8e761d56e7607650f79c656c80d01872d8c7ced0157c5bf133837ad315e81e002b6a3426304c0a861c1f8e31552bec9c3";
+      sha256 = "90243b7a75889617085715d6cbb65c220f1fc5eba5d4a70612277dcb6a6df6b6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/son/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/son/firefox-80.0b8.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha512 = "fd0a57a959dc5b2ec131393be51d80cffd8d8faba9b3089ceb8e5bf19e3cac2614d2611077fc289d710b86c733200b5d6aeabfd80c13fb8edf644700849076d7";
+      sha256 = "ba8ead8c649116edb7e168b25e6eb3735a85cf5c15a2a78ebe8340cd7071adc1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/sq/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/sq/firefox-80.0b8.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha512 = "fdcba60f81a478dafcd547b62119bec04c16e8fbd264b6622c90fd3f155c54927f205a6b73cc7d7caab93f336ba4bbc42e9e31c4e76ad004fc6000bb1cdf242d";
+      sha256 = "6466c44847b3b0370665e996582a2cbed9a8eb56a8b3f683582011cba77e918c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/sr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/sr/firefox-80.0b8.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha512 = "dc03351125431c81d5247ae8fa83b7e8e72398f806be6d7c7e9b5443004da03d123c2def551380c8eff85b52253c70fd3581b11b94e1daf96c3188eba21483c6";
+      sha256 = "06869c6fc77aecdf48a991ebd65cc6052c8c3aca976b01cac5e39933c7aa9190";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/sv-SE/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/sv-SE/firefox-80.0b8.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha512 = "c317f90aa1dc70dcaa0a6dc9c81f3b8fb14c8fe61e1956752cbe3b85e039b8e1f387a53a2a75506b6e56a2042b096e2b15789a41f2435b61c0d52b927e7c08dc";
+      sha256 = "e763358e9672fbc8b990bacae8687c7558d9718cc9d1e80798ee9ad220f28b35";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/ta/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ta/firefox-80.0b8.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha512 = "74d72946ef7a2becfea858c5fc7c848aa58014ccfbac5fca93205b6a2bc2642e5df3b02c4545bd3d29a4f379d76f50b2be803834949389aa945703a41dc53d4a";
+      sha256 = "1669e95f886a7adeac0489c072fb88f1ca09daf3b42027006305857bdbfced4f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/te/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/te/firefox-80.0b8.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha512 = "89577f313ae36daff2307530ab1eb3c73282141fd0dfd307084e79a713441190c09d500434a34e1b572a9eb8f0fd189130373f57dcd3ee5a144a9a5c5f290773";
+      sha256 = "3d5c9f1596291eba38fa5b5174674fdcfd335e4cff44ecc50ddc7f08ca254b97";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/th/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/th/firefox-80.0b8.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha512 = "3f690b0e5425f7fea8673377229d7d8e92e988f9cf3fa1462073a7aee1442f85406248cda1807d272244f8eec470c85116d2f241c630836d55b23853b0132146";
+      sha256 = "d583744cc4d1099f23960b0ee7c80992233864c94f877623f0c566a65cd944fe";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/tl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/tl/firefox-80.0b8.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha512 = "92d95d8b20edd55ab8136402fb98c8e28c24253a3a45c3d5ac7925a00568e3fbec128daaa93dbb1d179e559b5cfd3fe3f68fb2fb92d3a3454adde2bd64805f81";
+      sha256 = "cb6b8cdf1747e211cceeb07bda07573bc193574fa3603bfebaa537857953ce13";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/tr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/tr/firefox-80.0b8.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha512 = "04ca1766bc846a9291d669d86ca515d7887ed0c67793c192b9a076ae0b910069e310727c9f22ac919b6590d0475970f5705ac26b0cd9a3c734883ef20d6e7352";
+      sha256 = "e2561f98607ac5dcc67ef825cfe73d1c2af4ef9c5c01ebf48ee4dc0f80b53d07";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/trs/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/trs/firefox-80.0b8.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha512 = "905299a19706d0dba7be0beedb4b5ab482ebd0f058efc816ebbfa2a3ec19519a8add383b5c41625fb7dabe73d9596ee420f524f96b38b6bb8f0fdf7d611585d9";
+      sha256 = "de1e1f83c439d17d5489d666f1772ac32e26d70a5b3309176b528de413fae39d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/uk/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/uk/firefox-80.0b8.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha512 = "188cac17e46c9ea2a24ecd24de93a5b1d68a81b7468e49647fa459cf83b73dbede4be3d13260fd9bc61ec843893d258bd4e726b53fe911ebfc7007e9e37f6db8";
+      sha256 = "7632b4734ffe3106e78ddfc9e5ed81dbd219045f4b954421be4629397436763c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/ur/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ur/firefox-80.0b8.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha512 = "26005358567e594f962e7a1b0dc20216796b2fffccf3fb0d586830222a953447d866ce95e1f7ae053aec2182faea9a202c19b2250f38df95ed5ca8edb734eb84";
+      sha256 = "8e6c6d36546492ae93128c780c80bcae86ebaded38cc753db1f0401d4b5d31e3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/uz/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/uz/firefox-80.0b8.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha512 = "238e51edbc2c267cf212f3cbf6ba3fd69ac8414957878dfad10e6e700971ce2fad2150b76b92542c88632d8ddfe3b98a4fe86ba39ab42df83d0e89503bf63542";
+      sha256 = "18c7827cc1337e0a2cb3a1e9603aff8e7c3ac8e5631cb791eb0b7a2de35bb487";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/vi/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/vi/firefox-80.0b8.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha512 = "bafea9890b608309604d644d98bdb874d9d767528eaa012a3447cc0ed852907f4f06fa86e85ed39f5ba23922bd372f1aba8648cfa3c4672fc04ff913aa6853b8";
+      sha256 = "e78c922c13e0207c9cfb4d492e855543979e77b49a18fc63796c7e74cc4fcdeb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/xh/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/xh/firefox-80.0b8.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha512 = "94538371036a693422e28969f373923d5953d199617e5fb728439242fff6241e7177ba9c0c30e3848b925eda929d28338c7dbf50d8357849b24f0881945a3335";
+      sha256 = "bd30e089384bac81aacf68c52ac884712bd0c739f517faa6390090d112d9fcf7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/zh-CN/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/zh-CN/firefox-80.0b8.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha512 = "69e2bac008df8140041b23c370da8f6a07adf3c3724794f5d69c72442871bda35edd0736dfff5e27f0eaedbc916d7286740a9badd1c47b0b343c73ead7a2da0f";
+      sha256 = "316ad740bbba808a66b6fa00a9b1391597c949fa217e721563c685ef9fa028f1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-x86_64/zh-TW/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/zh-TW/firefox-80.0b8.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha512 = "6848b817eae291435243c12831df28f0d833ac23a6bd9bf9f8e91afbe6f0e30148a9567292b176e7f533bf160ffe4396ef6f26f4d8e482f18acacb5c7492d8dc";
+      sha256 = "f92189c808903b314ff4cc30fdfa7d5e2085ce22b9763e95144a7d69e6af719d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/ach/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ach/firefox-80.0b8.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha512 = "174c54576995c2149fe3901a606d980868c0e4106c9b220058f4e913b14688b6cbfbe9b3784998ef19e0f511ca3b2608eba64aa553d6f5eb0d151fad9ff64759";
+      sha256 = "aaf1bc4cda7e1f1182f701485f5cb186d4b731851aca70611cd478c923b2427b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/af/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/af/firefox-80.0b8.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha512 = "31c78d70dd51b4b3de1f30b56fd1751992f81d00accfac1b67e115d16d430a965e2f340fb802e894681f60eb2d432d1a391bd7d4488dffdc152cc3b3e397f6eb";
+      sha256 = "1be25b19658c15a88031169c57acda5ebd49b63212f584da6f859370b493ad32";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/an/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/an/firefox-80.0b8.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha512 = "48fe2c9d9d72603ca958e7afb3ca5070c16065e8f5c47a7c739f7fb2cc053316c9335cd3b048b160c01b87e8f9b17805fee7ff80d57bf82ff977eac6a6b261aa";
+      sha256 = "d461a566f7efc35ac323b0e8e963b8332a349e1b317401c2975cf4c75f7ce8cd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/ar/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ar/firefox-80.0b8.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha512 = "bf51670e9b92125b95f269eaef7b577b336d44536909e1bf1b1222293dc796d43a142378ac6b31047bb0dc4b04ba1e692d8b9f32b105a42b6777d24a8a1f3837";
+      sha256 = "2051bf3ff16a6ebf15ed4fcd97adc2bef65c04500d09ff1f009785f41c0b02a2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/ast/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ast/firefox-80.0b8.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha512 = "9c90a031a21e4e166e2c08151e048637cdf6623bd61eb69e1ea081932b4840f241f2fad77c3cbedd72b7a5cdb26be2771430215ee1ac02b2554a4639fd5c9b5f";
+      sha256 = "97951d00f79bed031680ff9676201c9ff0fe79273e4f2697cd19ca9ccdfe95cc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/az/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/az/firefox-80.0b8.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha512 = "bba9946a87468230c332bf8ce03191cba08ddadb0a4b40a7ebcc4fa3e89cc5a1c83b89f6cb2c2594573a1613475bd6f045297199fb0ec8e0d55adb43353cec5b";
+      sha256 = "a461aa41658c34bef1bffba2d34619ea402fdda2e51aa1e0200002b2e9321c8d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/be/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/be/firefox-80.0b8.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha512 = "1f33deb4fdbc7042dc4e77b73b1fa55768768630f5065dbf819063a1fd93b7544889a2ec6e5d64f8bb214ce0520cecc65552e848a1d96ded78172e781964c6f8";
+      sha256 = "ff1d2fa9203fce0aac5d91b38034910bbf7b0822b499fe522ed981f3365db8c3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/bg/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/bg/firefox-80.0b8.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha512 = "ab9139dfb215fa455fa2098bb042cbd3c95943ced0eaa008ec7dadd745f2eb184b6e6023dabe18fc15ac336fc8a8e63627e0696b98dddd13592ac2280fe3e3be";
+      sha256 = "17553a8566afe02d916b18d76a8850295512d9514bc37bbac459bd28a3bf46ec";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/bn/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/bn/firefox-80.0b8.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha512 = "8e37d06dffeaf777482a131ed750083d5d7a01324c1b217284c8c6778c2e0245c04bf7a47568dddd42d93b7211b3ea93ceb23a7609ddcc3e31d61674806c4083";
+      sha256 = "9863e968594a556a7bd52a43cd3c965687d4116c9fbfb62bed38b1b7ee343728";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/br/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/br/firefox-80.0b8.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha512 = "531cd08ff36a6cbda39aada2fb0636f0bcda8a9ed619469f130b5c142163454c1f86065826c9dab2ffeadce14220163f1457b57269d0e5c054278c058abd1c36";
+      sha256 = "762f1f951560f8c85a44cc2a7c318e4f8e5a0b752011cf06f86235e3aedabebf";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/bs/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/bs/firefox-80.0b8.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha512 = "1173703700639a513062944e8c0b0f6f0c0a4817b60fd7ccc90924ec08702165fd214df617b7eeb325c425ce76302819d4a0a3446e7b8e4b7873f73e02312569";
+      sha256 = "24fc8ac01417df1bbcec358c083f7627ed13bc76921bf0efc14e9f7653e9a819";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/ca-valencia/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ca-valencia/firefox-80.0b8.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha512 = "4b0861025cbf0ed500712412c1fab3d562c92ec2eba11aaea013ae67185aa9ada0e2662a62d908a38bb827fd0abe63caceff86ef72f6028b9bdf5574f1eefd49";
+      sha256 = "b071e20fadfaa2c06baa1579343c18167f6adf88e1c98fc68413287f6a45225f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/ca/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ca/firefox-80.0b8.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha512 = "5e7f762b8e0dac456ab673b8d6c0748d3728cbb587bdaef7b42a7621d4cbf36ca28e6f9fe4e49257f490a60b44437d4c13531396c8d3fb34fef0d8e8564d5706";
+      sha256 = "e63fc27b2bd404ae9190035d5537822fe76213545d8dd076566abd12ea213e25";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/cak/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/cak/firefox-80.0b8.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha512 = "f920732d97f05b502a6d5b66942d8d63ee90e3f14458e6d12533cc42607a0243f0c3d2ac52e3465550e9ef95bd4a9e10955701c64d76e0257cb0bdb955c45ef3";
+      sha256 = "6f4fc3e51819d9d3914ad624593cfc755d9e8f78263700268dab46c38e8fdbcf";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/cs/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/cs/firefox-80.0b8.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha512 = "bae02b4d0cbc5db8ef1ba675bc82e9e73c180bd481a1e45f058622141c08b62636f51f219f5e41cb60881a4f049f01c6b921b3e8fc3c9a35b4ec8f8850312dfa";
+      sha256 = "ee61413b6544ec56d13bebd08ee2ee69f8d1f16e886ba31d46c2a786c0984f7c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/cy/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/cy/firefox-80.0b8.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha512 = "5c80456aada7ca5f9cde4e933f7993cf9ef91c5ae77bd30a741155c9a08d22cb0924e86e007aa1af890b10fa636a7d48c7212ab4e6e8c745bb6fddf01d640e08";
+      sha256 = "8f29a8b77732cb1387371538efdf970d0e93d3de866b103c836990a4f0a30933";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/da/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/da/firefox-80.0b8.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha512 = "c2058678b9cb7a0098bcd320b3d1ce7911f515a6392c10e069c020cd61a44ddbddb96ae8e436ecd3e424b9309815cdedeeee82e76d26ba758ee1b4047011e18d";
+      sha256 = "b89854119e139a8e9347b262131ed5da62672f6d728b1017963a11d279861a45";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/de/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/de/firefox-80.0b8.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha512 = "740561c2311d0ff22e64045d01a0cbe3608cc73cf86c4ff7a442c04a5d8d7e69346dfcb3343008c635cdb34a03dc45ca1a9fb08dbc7983dd70f4e5587f45a2f7";
+      sha256 = "c453a0f5cf528c582a35997a963b944d31666018ffc912ee4e188f795066b925";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/dsb/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/dsb/firefox-80.0b8.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha512 = "bde801d0f4db8007f7bb766c17f47025672214fd7fda38858eb01317db1d0daf8a8a341cac91af096a376296c749cd109b9dbf40057b282e32f50f1dc0bb0319";
+      sha256 = "bf1f7ebef2aa4a5e0ed824a2c89a0b86101b5cc754feec482f0c39ef2ef3dea4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/el/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/el/firefox-80.0b8.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha512 = "46c2b468506ec594fca4094b37a4512701a400e61ca962254b9df033652ae2fddb4e06641efcb306b0a266ad798a8035e1206d9a15020e9903a30669a20683f1";
+      sha256 = "b31ea72af96ecfd2b625d813bf32e08dfbffb9c0acb004e1f279b7937d675a90";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/en-CA/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/en-CA/firefox-80.0b8.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha512 = "fe50154a835122b28599f692d69bcfe2110a526baddb44f86a813019b7651b8e7534c3bbfa0a4354f53264a71b103c71aea9dc0fcdae32e1bee1dd0b5394b7b3";
+      sha256 = "31866007d8bc76202fcec3b9531afe237c9822025a14113051a9389cd9f81ec8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/en-GB/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/en-GB/firefox-80.0b8.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha512 = "79f14b842022dd3fdcf0a74bb7c33719bea2e3b95331c49e624bde4f21568c11fc56566102aa4d567f7076f8f8dd08c7c038393cde5bed65d94ceeb568a4d488";
+      sha256 = "82b2e6cc268eefb687255fdc5170aa8ab6136d6a07b881d49c044e1700eb9190";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/en-US/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/en-US/firefox-80.0b8.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha512 = "3a938275cff2f55fe93bc9587e08410b5d9e70a926291f124e8f7c679a40dd944303c80877f0e70d6b273690cc101da25643849746f207532f646e4b43894e34";
+      sha256 = "dcd29328d9b464c16bd034f635a16d1593f98e08becc6a278d265b07bdc208a2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/eo/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/eo/firefox-80.0b8.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha512 = "97d1e61ae3ad39b531cc4309a43de654ff0eade822c1c264b9af4aaed889dd8251542a189c8fe6b4db527c1b175934bd7a2ad805becd4ef2319c2370b1e275ba";
+      sha256 = "cfd6996e81513426d0534ba62e4f2d22fafcef51ed48da4a593b9d3ead2cb2fb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/es-AR/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/es-AR/firefox-80.0b8.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha512 = "0e7ca3c44f5e3ad4d32fade1a36bc2798b635f8a18681875987e88140b7ced48bd1e18eebf1c6ed2be8f5b67f618b5ffb439223d6c17e72c334a32f2f2cf1a33";
+      sha256 = "9d4c24e1153f723a789c1934c15cf8b4d3925fd34e8fee98d7e5ad19c9f7a9d3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/es-CL/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/es-CL/firefox-80.0b8.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha512 = "bfaf1530b0e283a4c68482c4f0342bd11a2feeb66b925ebe796b0306e5084ff563ecdbdf3e7dd35bf3a14160fd6b5cf2dba2d71a19eadd22ed3d7d59d07da976";
+      sha256 = "91364ba1a2ab6c8bdede117f45a855b5968bee492e054123433c0fc034d66415";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/es-ES/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/es-ES/firefox-80.0b8.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha512 = "4a4a48cca77a128bd37ab09c6fc16592ce1f7b6ef15dbb140366a8ea97784c28b65a40cb65ca396df1e8b725de1250ce6ab030516a5fc6cc8aaadaa304af1349";
+      sha256 = "1cef40ebfb1b12813d85a975ac0620b3ed339acf5de8e4d0ff0aba6aadedcc7d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/es-MX/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/es-MX/firefox-80.0b8.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha512 = "e28b793f6510c61477af82191325f047ba4b66059c64b5ddd9d73dcbc3d9d01f93082907619daf05a44512733d91dbb6aff43663ef00a4d413fcca5bf34fb53a";
+      sha256 = "e41ae370750f65e59470e05b2ed501a308f8743cde3291bae2fb8d17af553789";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/et/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/et/firefox-80.0b8.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha512 = "b0538fcb7ec47abf24724b06172c70cde39d68e37c8863510e40c75c0464c7a46501b14c8d27a7b72219a5d91e31ddbfae5dba04af1d0915e732e461e14402fe";
+      sha256 = "5a279c246cffd27f6c919f451161e87b30ac8743e1a22ac490496b28af7e75de";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/eu/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/eu/firefox-80.0b8.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha512 = "b5babbd93dda80860eccd4651dbbc249095658140336a419a8165adcc8a8e1001ac07f6d1b3ed1bb17bcdf28c83ec5bab2f2df2fcbf82cd5f4d9761b1c521489";
+      sha256 = "3530e6f3060fd133dfad72532319c6cdb5be5bdd2dc0395d02e379b203264d20";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/fa/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/fa/firefox-80.0b8.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha512 = "649287a74c1fb1c309d3e4f58b5ee8492c194e4f00334f11db2be9c14706cbf02affa320eb81729a4486a3433473c086b3cfc97040dd1f2ab60a30a2978d75f4";
+      sha256 = "ae1b1fa06440f1038c97fa9d625a2b58ce5ffe11fb53a71afff632a18675f113";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/ff/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ff/firefox-80.0b8.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha512 = "aaaccb7b4ed53d1e5d2805e45fd49b2e8f1d505b358c271c5d12dad5f28c53f749a944c98078163a3200d0026aa5417af642c64a85565f5dfc875795266b0035";
+      sha256 = "05b47dda3d1fbce0e3dcd79534aef247516e5ded783d1184975ba97b1abb09f8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/fi/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/fi/firefox-80.0b8.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha512 = "8ccdecd8866b78c03ec26681abc381158a223ad4a60372ac31f5e8d5f920b8208dd58190f20b77e22d0f34e72caaf5aea35893781b1bfa14620a6146ab8cade1";
+      sha256 = "689eeeee1a769ec9bb53014044a615f0a5c05d8a15e6dcd408d18ef452c0b441";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/fr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/fr/firefox-80.0b8.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha512 = "00d5e0d1f85e2ef9622fbe85025ee17594239ec9bf7bcd879fdb504370ecd684233f67c1f51973cc75caa9f3dfadde6fa9bb5598083dc5d1cf167e5f286cab2f";
+      sha256 = "c64e31adfc24ba1fca84922b33a71bb74150ddc9b4d5e52f3627d2aac3b11516";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/fy-NL/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/fy-NL/firefox-80.0b8.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha512 = "9428a12bba33d6d872f93dc805b17cd8b344e2b90d3d57044dece426af04a473c84f1c29a23e501736402c8d5957122887e8cae3f0f009c64df70ecd3fa8e6fd";
+      sha256 = "36765f1c9e1b15b43fd7d70c9f9dd1b977c4171ff920710346493214e08f9dc0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/ga-IE/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ga-IE/firefox-80.0b8.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha512 = "3d78dae93c08ef2795281f12691d0fbfe43d2ef0547c106e28bbf61362f87cc7b4fe9d144a6eda9fa1cf30372ebb403681482afa4185bb518ef7bee726230d1f";
+      sha256 = "026c461de7bba74facc421a58028e46efe32e7e3f441a8ca030911e2e883f56a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/gd/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/gd/firefox-80.0b8.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha512 = "1330c5d0c7c2074269993d93f40a512570e6858e76171a5299624c6e6b91e12b25aba5e83830a4b8b5d6252e8e0d8bf906ecac93b4ef5d0905284a0c4fe5d8b2";
+      sha256 = "c2a21914b4f7cc71d6456e9c395fcf2ebbca12408563decc4a400e3d5d43c865";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/gl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/gl/firefox-80.0b8.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha512 = "b43421162c4ef0dfa21331d5e2ba670ce2fb3d5fca86dccafde72f789bfc86765ccd61f9cfff5b436209107db1e4ebd0f1aef7fcb700c3c0febf7ed59b59e536";
+      sha256 = "888aaad1dba8db4d71785fee01c100aa1919d432e8ccaa044e386224abe9494e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/gn/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/gn/firefox-80.0b8.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha512 = "c49fd8637ab6a809f343317187c719badf84e626e5e9d7cfb2113a78b9afb1fef770fa4ede000b7fade3302601c3fc9d35ceca4f9703dad9d6c2fb8c17dffd29";
+      sha256 = "d5b1d103104c2e6e7b8198be649b0628acb4cfe6865422fc9e3db3b6ecc07cc6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/gu-IN/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/gu-IN/firefox-80.0b8.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha512 = "8eea7b1ca7de041ca4e8aaf25c23b8853008c1fccbc57ffb802a835bba327d7913927e43f1a6a5c11951d9655c3b781be35aab636f8ce10874d0b4f1235993f0";
+      sha256 = "215b9df33e06685f9b264b06b512d325aa8353b3f3975699b77e9fc8d18531f1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/he/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/he/firefox-80.0b8.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha512 = "d39d794bcdf93717af61d9a1e261d0115aac83762da2120a6f3cda5ed89611207b8f2815486f96b8e420f80f6454fdacc934f49985f7bd0635f50290bc37b451";
+      sha256 = "8a19ef1eb702a0083c7751cbd7f2437c5fa46ba3f61a5f5d07f797b8ca696d22";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/hi-IN/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/hi-IN/firefox-80.0b8.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha512 = "ed235949d9f14918d8f034089550724ee2996dd6d32b77c654d270d96831f175f92355f94daa31a38a7f0ca3d677abe539f9da3a3c5b99208db9287cd396b751";
+      sha256 = "17a84efead836ce54c1c0f0f5486595753f97463fbc2031d78b01e33c7a7775d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/hr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/hr/firefox-80.0b8.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha512 = "c67482d9d48ef9d0c5ba607d045d57378e27b7dcb3f15162534d1420743d784aa2ffd7adf119fd397c09aed1ae91978d737a1d1f0ce22bdc43221d9f52295ac2";
+      sha256 = "41bc47533991b818b26fa149a30825326879cdb3ba92eab0ae5171be595078bd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/hsb/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/hsb/firefox-80.0b8.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha512 = "d50ba1e4665b01584bc65b1ede0d7bf072b1b0a6118879bef51da0fe49b2a75971ff9dd175edc9f1ba9fecc95d571bc5c014b8c106a7dc0bfb2b258392b96ce6";
+      sha256 = "9ee8d0255eaaefe37f00960ed59c83a06b8356a8c6ea05d1f9697edb9880593e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/hu/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/hu/firefox-80.0b8.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha512 = "5f5a6ec0f9df0a8d0cb6dd19e9e92ad581c9c1b63cb97247741085a5fa39d0599ee57baac86d444b1a887d7ab4d4d56df3ea6fda93582260c625c5a0a702da14";
+      sha256 = "a9b6dfa44cc8d90a530aeb98ac96a0ac1e63b4a46b9af8ddfd4d6f268fc7eb5a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/hy-AM/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/hy-AM/firefox-80.0b8.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha512 = "fbb9a35823c8e1277fa3f602adbf456e9b0d49e9a5c4ebc6857ab11fff271a7e352fdb9ee2ef2df96715b1e012302cc6f445722fb8c54c682a1c2c43ea89d749";
+      sha256 = "e93f74803b536d3b12b6e41d064a7adc5dc16615d045a2e6cf792d25477fbdc6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/ia/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ia/firefox-80.0b8.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha512 = "08b21692cf897f89a3a20b23ca1c0ccddd7c6f5d507b0296d6e7ff7e3b4993dd1263740181bdde72549bacf0f25294fe448215dfc6c423edc764c27027877845";
+      sha256 = "931dbb0817dd797c5af61bc683f3d95ed99ad9834efe2f66a50f9e444e708061";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/id/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/id/firefox-80.0b8.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha512 = "0d194d912519549a6d578ae523b5f0448fe520893c8b04ca2fd03731f152b2324670c134e879c671600c8577ab1fcaad54866c3bb30b24e88b94fa00988cf007";
+      sha256 = "1e1afcecc3bcadfbd6989eefc191f8d5cfd0f4d29c1f6814927370aa647af854";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/is/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/is/firefox-80.0b8.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha512 = "ff2890e5843e56c007f6fc500cc0da09e2132d897f290e6710b0e0df96b35048095a413ffea276de213e50a55e7971484b6e915e53fac51e00381f4570f85ea6";
+      sha256 = "4907987557a6a560557d417dcc31f9c7dd45dc0d2767ed050770f6fc6f308641";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/it/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/it/firefox-80.0b8.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha512 = "4cdece1e9782f45cfecb8a4325d391332b71a6c044608162c40b322248641cc9ea231fd8e85d247e2ab01191737702d797dbf73d565bdac975e13b755d718dda";
+      sha256 = "d895c87359cfb98e236c4b5bac92391528eef07a45dca2d067a7d55fed4ebe7c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/ja/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ja/firefox-80.0b8.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha512 = "4e12d8803fa2453082c6a132edf1d3599bf242cf4f76dcb1b65f26f5cf7b4e1f619f7b8b2c35c849a72c5fb4aaeb9d87da8ecf1dd4f74e7e79f656daa0616eca";
+      sha256 = "30dc7aee461930bea42c9f2985ff766f4aaf3ec0bd7f09562626b155bf80f202";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/ka/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ka/firefox-80.0b8.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha512 = "d3539c501a693bdb1efa153df5d50e8db7d8395152bad41d4f13c710c7169e82d8497a714cf27d8c118fb205036d476d7cbe1d8cd25194a963a0fa33ff67e3ea";
+      sha256 = "d452668daf3b5a9f0602417822f7581183dfd5dbcc5d770afa20e1d61d557003";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/kab/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/kab/firefox-80.0b8.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha512 = "e2db664a5a7e8a95472c90d2e5e3f2b9d67fbc28f48cfa219b6ababd4f6bdd334f25933128ce628d485ff2580955eb1c20ac26bba5c963f0b8e6fdf92be6304e";
+      sha256 = "5e828a4f6abbb80c7b575db2a70ddcff0d734f11eb9bca55c2b8d00f08fa6497";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/kk/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/kk/firefox-80.0b8.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha512 = "d26b381779d3cb5c71fa0b27dc46d31a272d7b5633a9573297be571325f6a0dfac35a1d87ec407db20c82f6fb4f8d5154acb0c2619a8d0070a88cd4aa7f6ec49";
+      sha256 = "994e8ccd626f3e640b8a1b687a22ae6e3943b25995278f3333b6814ce61185c2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/km/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/km/firefox-80.0b8.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha512 = "e672dd56f878548a611b567efed4024abbe9acaaee21fdf74ba4983e2f7c7373f0ac3a6dac2a21c92573693df86507b2daa53b43467fb491d756875fce486487";
+      sha256 = "a63ad9f77f01523dfb02eb6c2880a4046a556bae6d329a5e5480aa3eea0aec85";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/kn/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/kn/firefox-80.0b8.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha512 = "2f5fa29c9c4dec0ac88c4b3a43cd442f929e42c8329f33f5ea2e5b1662aae6405cfbde31f590bb9fa55c101684aed12de9452a98bf7234d95fde534125346b6e";
+      sha256 = "5396452efe004c7cb57105bb7134875e073f822927a98db23e96994e11fc7155";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/ko/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ko/firefox-80.0b8.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha512 = "315caf9b980be6b1c63054d476fb0eb44cafb3c11e9812c376e3536ad08ae44577fc4647d74a99a4df32cdadca0c551953b48d15ac10e1c0c81ab597e4f2d595";
+      sha256 = "a0bd2586531902121344b7c70e9ec9ae4e08514d2c467a17664701735f8d74ab";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/lij/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/lij/firefox-80.0b8.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha512 = "d1b2fcc0660813869087835abd6fe68f02e7375e3e6b1664b59636fb51eda8d3395b66882f7532d386999fdba30ebb836f100a0e17bf20ff8223b58e05d3ea60";
+      sha256 = "ac4f16381c71e3a4f00c6ac615913cc7d5eda77dd9ca337b9a8ec0e63a2e9176";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/lt/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/lt/firefox-80.0b8.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha512 = "f4e3e7ec38ce488591049e7d09978bdae9acefb64e747bec94c25b00c3a56dee45d5dc13569fdf5110812ed2ac9bbcedf0101c5ad429de3d0c68c5d7d2b72d60";
+      sha256 = "bbeda439051c1ff43ba08b95de57914237e7b9845fef0d92efa02265cdc81961";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/lv/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/lv/firefox-80.0b8.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha512 = "e696c69ebc27fafbe899afb1eb84e30105f6d3b373d7d014ed8cba9b2ff53ba23c3427a4c684dbc9f6adc2fd9813989c8e16254d015c577be09e8f61c6d9a469";
+      sha256 = "bb500de9c32241a7e28828e3f9b89427be1a54475d7b05b9c678d489a457c329";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/mk/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/mk/firefox-80.0b8.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha512 = "bb08fc439b7c0aafeac6061d7f9e179b2bbdb8fba0b732e222e1043b9d4972440f4c966a9dea0cee2cb2e5c632e264bed648816f479df27f63de8bac06a5c2f2";
+      sha256 = "5689b2805b30cece9f9757a1869906529a7094b4a9de5d5180a5bea7582606de";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/mr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/mr/firefox-80.0b8.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha512 = "9715d7d245ea077185e0c375be8b3bbb51989728786ed30d8bd770c236a7cd2cd93ec3b4a15c1e946a82ce645fb9c0a3543c692c992b7c22fc9d506c2fabb5d2";
+      sha256 = "fc5ec6938f33c548f52cfb90f8a40b342bc9b4a7b97c3fcc1b3cd2aa5a031270";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/ms/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ms/firefox-80.0b8.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha512 = "1b99814dd1b8c6c29d1d769622961bfb4f08d0d92ce6e452018423ad5104480f2863c66cab1baf3412bda94561073114d81de17b9d951b4c533ffe0f18350d94";
+      sha256 = "374e2a6ea3c59c7f985606f2e631294b57e20d7aff2bd8256ef9c91189e960b3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/my/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/my/firefox-80.0b8.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha512 = "8c596041d2271dad2b015da82689ff4ffc77ccf351a5ab4acb31ce568f6953595078908ca9fef133fdd958832771969031788b8e0aa10d01d9908bcf522a8622";
+      sha256 = "d9058df8893da03a707e549d9f133942fa71bf51e06c1a654f3ac588d79af82b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/nb-NO/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/nb-NO/firefox-80.0b8.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha512 = "17be021c57da49533552302cef3bd99d03e9876789e81ffcada592969e525007295eb8f49494466ec0c160b9268aa93339ecd3e91c30e8d84dcd2ec5cce83572";
+      sha256 = "11019961c5378bb86b45b2c6d4b74ca1e41e86aed500ec0cd73fbe1785ef7742";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/ne-NP/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ne-NP/firefox-80.0b8.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha512 = "189c42a7904e2a2b4f21a85e534db04b81d0ffcc159854029b8a8e2df99432e7bb64399294b7556e675b6194191d7fae3e5f286ea3a4f4788a46e246167486a9";
+      sha256 = "de45c606c961a38c84196cab1827089b1b22e2dd0c23302ce57bf9fcbfcaf82e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/nl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/nl/firefox-80.0b8.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha512 = "5a8aab4aaf2a9f750939d4609cc02248069c4455c9664286e21072387deb2ec863faf2d869bf40de1f1a82ba4aae726c7219596883c34f416433731a6c960dda";
+      sha256 = "bc2d98ae8f0fcc608d55b394398c45c1bcfcd02956031ca4762cc98d265916d8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/nn-NO/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/nn-NO/firefox-80.0b8.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha512 = "fca06c7a517833914d746509330b874c55a2b294fd450aae483a2ae3021f4914383a5bf54f5e8bf22a3e41e57231a9292be155106f665c0f703b023e4ba9b24b";
+      sha256 = "b7c1d390a8bdf295ad8951959fcb720f977139592ef0f669005dcca0e6cbb19b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/oc/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/oc/firefox-80.0b8.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha512 = "3dfc063b14f27d2c24fcf997bc6dcac470bee5e01cc6b3c735318ae29284b8606e5cc32b4dd683a269821e969ce77e8cd8a2f4155d2138d91cbf1ca864c2da08";
+      sha256 = "a61a765b698f48c15cf07ea424e8e69be7630261a94c6514fa739974b51243f0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/pa-IN/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/pa-IN/firefox-80.0b8.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha512 = "155b1f5091183c3bd9f44903f835abd5cb153936510e8b4bd818ea744f5e2deebde29f59d8b6784f5f99ec6044317312515f6174f058a6ec69889a3900d150d2";
+      sha256 = "6721ca2f49b60f5ff1d86e0b1c9a1d6107c5d701b319a2abec7b6fcb9f845d57";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/pl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/pl/firefox-80.0b8.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha512 = "01fc29cbd4a0469119946878b654fe34d9ec31ece166f1eaf3c06615dde144f73ef8c4d4a4617ca1d605f124dc3ee1b96c9b95e5bf0c6c6706946de2b168857b";
+      sha256 = "a77c0c05be64f027d25feaa75a788c630dd7af831c0c2fa334db7c36ac340144";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/pt-BR/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/pt-BR/firefox-80.0b8.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha512 = "62b1d24edb249a7418e74aea598d72e674ad528d240a0c70d775eb8922dafa75bcae6ce178a3a92211f706a1b1b5bd788011a8e47820bec7d4f04d3b610f1819";
+      sha256 = "2baf74be32eec18bb235b57ee3816a3c9df916bbd4458aab1613af864581a072";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/pt-PT/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/pt-PT/firefox-80.0b8.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha512 = "6a534951d73d8942e84e1301cbe5f0f5ff60f0317c9e1ef5fcf3283d37fc440d44c9373c821df1bf020ddf62c5ae9e7f7b81bb75d5e21b767d480854457baa74";
+      sha256 = "0103da6d53b4a9e9512b8e3b90e583d8592a5bd02f09aedb90f49b1ce73516e6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/rm/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/rm/firefox-80.0b8.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha512 = "cbae337ee14f03731991b1c0d64a4e31c9a8ed6b98df3636e71fd11550997dd84699ccede05f9410e7c120716260ba0a208dee830d4e13c4ead9e9843ffa8fe5";
+      sha256 = "5dc1ace0d108460d6a57f7b158a1640d822c4e07a2e4d108db9f17e63150e4a1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/ro/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ro/firefox-80.0b8.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha512 = "0fcf28c2fd8fde5ae76e34318b4a792cab936c4425ccfd4ee140952c976d2c7b46fff984ef457187065b232e44bdd6e229ecd44f14712b1de44bccfee3f44f3c";
+      sha256 = "1e2ee8f338625bf95da2914e54b22e1a052cce955a92102163e67cacc41129b8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/ru/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ru/firefox-80.0b8.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha512 = "280b8e19652593654d01bcfa561d432a9efe1b4ab3801801c0036684d1a4bea37cb0617c6f434fd9ef80c7b5ebee42b8f95588e9b14cf938960229e326a2fb2e";
+      sha256 = "c57cda1ba6e8895044fbc55b37eb5e241b02904f69337a6430b3b9fd47a57fea";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/si/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/si/firefox-80.0b8.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha512 = "d4d077be6af067603f8347a49cdcbcbcff6d686e4bc1016f8edb72dc001ee8893269577cac173df62a742f0575952e58a41d602e4d7805d148a06d91b99605c7";
+      sha256 = "e31df32be4babb9b1eeb5f6a5a44d1c94b07fd5c4bf70d8cc78d4061e1e790a0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/sk/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/sk/firefox-80.0b8.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha512 = "d61d1d54c2b3d88adc21729c91f2e1cd0b7f73501c6cf29df75a00cf48ab17200a55e231e5e308162f2f28f71f16143ba2ee81959b626d974fbe460e9e0008c2";
+      sha256 = "0630c3c617d1a646ab0acdc0c18346ac29066a8a31be9995f96e5daecc74bb24";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/sl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/sl/firefox-80.0b8.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha512 = "39de7a12cf2ac933d94673793928ff0a26fbde3e338135c3ba9faed52844a1fbde736dde5ed8c5893aaefcc9eed4f2109fd0192e85b0985bf9abd805aad80107";
+      sha256 = "65cc9e3d0e6af8743a768cf23b1dcb281d5ee26cbdf0fb2f0639cfe032f8cc07";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/son/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/son/firefox-80.0b8.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha512 = "6dcdbcf0ec715df1ce509e545f4c3bf99eac749d3c482d219408d840b422629e6f500f69d6a59b8c5bf4e8f814230dbd36b47ecceb38b18ef95eca46559add83";
+      sha256 = "7f25deb9d71b23647722745d813e8e115e0d08190811efa4fc0b6456ee5bc634";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/sq/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/sq/firefox-80.0b8.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha512 = "ad22a16e72c504ceb532e463752b121523ae2c74b89bc38b249d20c2f79b432ebf56a1ce7daa52a7c86ea7bd60d8ef821008503bc0bde17c9f078e9cbfe17d56";
+      sha256 = "e103461a63337bd7905345091edde08056eb267a522a205d6308e33d477f7d49";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/sr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/sr/firefox-80.0b8.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha512 = "c20305d2fd5bd21d877af5a0c30151073a14c032ce63e0c7673cf074e508c894d2190f4b5b468b9f15452ecc2facb762915c1e4083dc513792540b986c3517ae";
+      sha256 = "cfaead5b0913dd265c18e42793a2a845aeb6e421b6c54a0f979bc80cd7a6cb18";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/sv-SE/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/sv-SE/firefox-80.0b8.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha512 = "1705c465a304e4d9915149f7dd8095e54f232cc81e184c2f69c423208ec7e2d65371a827d4b19741f459b1223414cba93c0176c45e42e7cc0d9d5cb4340a53a4";
+      sha256 = "7343ae52dc3f85d35264fb6cc86daea45deed4cc3b7c3dc3078afdfde9a48919";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/ta/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ta/firefox-80.0b8.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha512 = "a77771a10da7188ca198bd8882f435522c9643974917ab316e4ba3a53411e1f00dc3c445f33692b484efabbb66cd43de9ef2d08ecc36c91c0dcd9bee228394bf";
+      sha256 = "389ae6d8db8280f74944c2c5d61dc031ba4ae4db792c1f851ff72ebfb123b17c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/te/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/te/firefox-80.0b8.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha512 = "4eedb898f0caa692c7b525d8a33ae784a345b912ac4ab4b26168c701a4bdeb4086706cf5b71b75d9977ab09e659a17264565bfe5a613ff49d7581a3ecc1ecb3f";
+      sha256 = "e49d8a521ffc7087c8d75f5ecbb9f6c010966c9f92dd4c105278aeeee1eee865";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/th/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/th/firefox-80.0b8.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha512 = "ed09925c67dc0a840ef3beb467d849cc0c6644e77e0f21e5349e66d6152034dff755de4753103e7e1cf86d41f783c30775e8b66f9d56933be81bf44d2ec5151c";
+      sha256 = "a27ff17d3bd090cf5bf798465dbeb3e369ea03a738729b748a0b03bb2d0418f8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/tl/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/tl/firefox-80.0b8.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha512 = "0c73908dad03020b85f64a449c00583dad4accb0d787df1c52013cbd29078490b7a8aa08efc415a2749adeb7c08e5cf9bf7ccb2cee6c5bbe287a18be05f01dcb";
+      sha256 = "5826bcb2683e74bc5588c7b12099d9d2ac70ecb0026d375bea92d94a3f381f70";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/tr/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/tr/firefox-80.0b8.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha512 = "90aeeb66a737f1110fc2c1a1f281bd5ab4df4a1fc1698e760e2e43f845a4c428718f2b22017e3f205defff667912bac6ff4bb17c7e88d93e1590223b5f522c8a";
+      sha256 = "73d79d2dfc0c7ac86566c1d41a6cbf6367ff57a6c5dcd459e1994d5bb8290fe8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/trs/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/trs/firefox-80.0b8.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha512 = "b74b39a162ac8f0aefcec575129f7764865e14616fa5e64afc93fc4f3e400a455287b8f677f88e03c198911dd62a97eb31f4c5501b640e99ac5026a2c05b789c";
+      sha256 = "a8b7cab92a7b449ce57a2eaf6a447e4cec99fbd8dd43ffe36dd4b87cd04c19a7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/uk/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/uk/firefox-80.0b8.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha512 = "ae5ae2afd758994c414b59bb65feaed73598590b4b5e14add28d0abaa9c5f82cafc238bdf41f3f12aee34482bb5fd18ed6de075b19b81d38fba7aa413cc277c6";
+      sha256 = "af59707ac1141ed356a9bacfa116d0a65236352f6bbbddd69e8544a551064782";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/ur/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ur/firefox-80.0b8.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha512 = "9a19cd8e3711c025675d5a189a12b0b9b6da1dcd0d0c05900fb255b85a43f301eb51652401239e7260dba78cc6f9ee0fdf42f5e9eb4e293e6058a2a04c53e3ab";
+      sha256 = "4a6068c0384b69592312bde06631584e612fd1f17d0af4b71dbfe38fe19dd413";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/uz/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/uz/firefox-80.0b8.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha512 = "0d31dc646fcdaa09e6c07f9ac446f4d7ea0c4a49d441aa9c375e9a6242542e6097f78bcea0429677f61d9fcab785ebd559bc38217f6c0577b08ebdf881d9776a";
+      sha256 = "a6f01fd45fc403dff8a97be0bcdcd2837eff7880ad039eab2cb31a2eca82c6e9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/vi/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/vi/firefox-80.0b8.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha512 = "bf580d0527319fcb770936f3ed188e0599f1c5525c9f23328abf6ed9c9bde3b6eaf426fcef7683f5dee508ad0beec1892ffb58dc6c3437015a94d98f5da2d868";
+      sha256 = "b7cc325a09e7e5a6097c81055eec760452ebff160af5e5f9b7a790a2d3fba53d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/xh/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/xh/firefox-80.0b8.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha512 = "3aa35017a33c258d3056b158f7b81fd5670900cf2855fc628331efd8fc14a42319f1cc1547b550f86c8354d7c6f6909e106489bec6158801c1059fde4ab7f371";
+      sha256 = "64e6d44ed8b07fefb110463e1003cab01503a52bcb72c76d6030325cd6c796d9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/zh-CN/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/zh-CN/firefox-80.0b8.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha512 = "a6b7b634bf0541a165a93136ee40e47c7451c2d9d87df9da6ecffb6f95bbae243888553ee4bf8c7b94832c8e0e8c1c2efb383218dbdca1b79ef96efe8d5a826a";
+      sha256 = "11312a9a212159bb929df04217292481b9aacdebc50ae941729b37f9c7c8312b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/78.0b9/linux-i686/zh-TW/firefox-78.0b9.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/zh-TW/firefox-80.0b8.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha512 = "e85a01fa2431aad8a312b4b3294528cc283e91de87d785fd4f30b0fb785b00c5f1265388232b14237e530c376cbc270e2a71f98847efde6965b59c6bc83aada8";
+      sha256 = "0b3f5974dd951fe9ec988c8608b186a2d5ebbc397fb017d587e869cbe4dcc74b";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 464eef9f4b7..e8e5109351e 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,965 +1,965 @@
 {
-  version = "77.0.1";
+  version = "80.0";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ach/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/ach/firefox-80.0.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha512 = "12adc58633a67921e1d1944501191510baf3b0308213f417a202abcc09d5abad3155a478c2541508273d6e8b07bd3c13f7f8ab6e40855927429a94cc8d989888";
+      sha256 = "4679b0ce4913b2c240f873fe5898234362d0b2cd6777e73ce272f37950edfd02";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/af/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/af/firefox-80.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha512 = "ee58827ac139f48b870d3c30d8c317857ad5973593fa99addd7d09faa1fc53ae5ae31e36cd1f5c9dec6ff56ab31b987baccad98d4c8f8e009830e2e5065b8a4a";
+      sha256 = "ae2f6e7d46344f56599ef1e7ba3f3321636ee378e8e1a4c0b8e652c5e71b932b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/an/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/an/firefox-80.0.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha512 = "ba8a36a8e7a8638c88355ce68ca4f320d13b60522f7699dbefd056ad01c4476799c38c3cb5817d5c506f29ec32532b533bb6aa5a592cef971f1a617d353b12aa";
+      sha256 = "8ae2ea7f6184f5f0cd5bc937924cfc5d813bb8bb0ea3e4e0770352b15291c043";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ar/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/ar/firefox-80.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha512 = "507a3c9487f0d2fd89b91473afbb9607d2c8fe2f642e331a4c781078d0f474b5345827a83167981c0d9b06556370b6d7baddd9eb3355dfd8c64014d139483e06";
+      sha256 = "54926c7b61e4d99f1d49f709fad198604c5e5af165d60a96c6f5cb1a94f73884";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ast/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/ast/firefox-80.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha512 = "70df4d795059609d2935243ca1af753e9e57d303f43df42f72a423135d095b8a295cf06fc3aa0284f68415c77de46b6925b34fc19987309a9b3f749e8234d9c5";
+      sha256 = "589262534a8665387cbbb3c13f5003738bca4c5673884bda831a4858aa73de54";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/az/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/az/firefox-80.0.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha512 = "34a95a03400f67bc17a405767d174de67103a57cfc2154621e4452b914e070344b361547876b2a17813638405440642f28684f84782285960d3ed5bd0d8c0eec";
+      sha256 = "60bfac6b93deff04f63c67dc9944d3df8efb314054ed6ee8f93d3b09db8608b6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/be/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/be/firefox-80.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha512 = "66acd13f56a2a3c79cc49f3cd5cd203c7b7e1f7f978a1ce1eb90f702f35f501bf7b16b1fbc9be8ba9b176b103bc37d0868aaf765ca485c854192c2c4d27b1030";
+      sha256 = "48cdbcb785f190dce708db6ca1fc711d5d2411da0f544b3a5d03aba6665efa1b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/bg/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/bg/firefox-80.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha512 = "44f3dc39fb73c03461d16a34f1fcfeb385722a0b4deb7b75199a8f8fb40fe85cec8116e11eb2f7852580a4ce9925d8f022c6133647232f6547db689b6d87912a";
+      sha256 = "a48fbe5f88ec729c1becbf7c63957ee48cd7692d153dcf709dd038ce1a218317";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/bn/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/bn/firefox-80.0.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha512 = "2ecc1a1433eb8301cc7e9d66dadf1926aa20b609b7683e69004dd56a12b3a8a2a1db19ec85113bdb0bb0759c29b0e70a157ef6f2f7ba29a121f22d39cb256c5e";
+      sha256 = "38245ddeeaa699941f54ba3d3d0fc3e804b57d4e8a6a0d1c58cf25d7c271a23c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/br/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/br/firefox-80.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha512 = "f9561f0d2f00da6736af19dfc2ec21a25a46b0a2c0ae195e0725a59f8df0367be3c0dbbfacc4b79ba82bce7643b00127b9a9431379e533c0393d49c6d3017ccf";
+      sha256 = "6766542a98977e6f2329b76345ab8f59d545479f1564261a47c0cb7b7db1e3d8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/bs/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/bs/firefox-80.0.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha512 = "e76982df74ee812f37f802d3e82a7ba842d6a211be3beff4fe6347a991ed49601678f11c01847a9708ce36ec2ca956f452b2d7b1fe168a7608ae7999113fbf22";
+      sha256 = "9bcd21931680502a9a5459f82a6d103d8b367b09cfa9048f54d87ca654e39e34";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ca-valencia/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/ca-valencia/firefox-80.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha512 = "a2633b6e009edcb98c4af62df6cac991254a0f370384c2d0a3b81f8c4e49648ab6cdc580888a628668acd0a4daef1bf6b65633c58441aa0e9aaf84dfccfd10fa";
+      sha256 = "a666b19726a6d10863cf351059dc45f610cd0356e2220a8d9e2a5bf2df0fde3a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ca/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/ca/firefox-80.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha512 = "c8ba559b912670a86f94188e1b3c0962093955a527b2751e4264699bdf343050999d76b93857f6819c797dbafbbd0980032cf5c497b0d34a50c5c8395cd07cd9";
+      sha256 = "458e791ac8025a56a7a9444aeb8aa1138f5108c5a5cd1d87a31bbe71c6ed51ca";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/cak/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/cak/firefox-80.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha512 = "52f446f2a2c4bd6d79f680ebdb38e2f62e0830d14fc98dc6ad01c5b404794da1e59f4b8da2d7f4a0483187f4725a212e41edcc2006190818e6229a5a9af8a597";
+      sha256 = "890f462890cdc825e138d174e396b78e10f74111d01da47514a8e449ee470676";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/cs/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/cs/firefox-80.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha512 = "91d8dbd3d8dd6e242943d9b416534492125746694a721fff6c9d51f811e2f93b5d521f63357addd0e11bbeac80d3a07d2fda0133d746eb3d4d5d086e59a713b9";
+      sha256 = "98e1bec6f176bc83da232b76b33e6dfe09db91c4be1424cf0c7b4e18e26b8d5e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/cy/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/cy/firefox-80.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha512 = "14a04b2d97ea473b45602ab44d8ad08f35f21e98621e93b901ae25731fd86d207b4949bca3283e39cf22aea7667e110c94b948b51a370551c4416a3009f10854";
+      sha256 = "06b649bc87eea5c81fa37873582a963d972cbc3d0a65fa9fcc12c67c107ccfbc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/da/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/da/firefox-80.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha512 = "5ff9be1796f70f608e12732c71f46c6c4f636e52ed03cb445ee1fc35d4db2897ee1b8f231ba0a5724696d3f7db04845dddf268a3ba59b26a869f65729abd57e5";
+      sha256 = "98328f0f7ec2b807717fd4ae6aaeb7daaae8a962eb929b760598f225f6d9e784";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/de/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/de/firefox-80.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha512 = "b15a90114ea7f2c69fa94bb6e9c2559be0f7a7a0b7c4c1042823153000bc6a04a27f62c9373cb4c73535e676c41b23dfd260396fa691f2ac0319badb7a087f05";
+      sha256 = "401877f41fd2bda02d0cbb7737f029f648e1d2b3c9642b093ef8bd4342f13712";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/dsb/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/dsb/firefox-80.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha512 = "bd10d40bb2f52c1b5cae9c7d91d53b3cc33bac0415a6f0b37fa5e1e2f5249ce5313a45e0e8b8b218ad961b2e3b3597c7132486a71eae76acdc61805181cd7220";
+      sha256 = "408ae85999139ba5c027bbf9ca20157b991e741349aae77176c012b862a7b4ff";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/el/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/el/firefox-80.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha512 = "4c28c9104085d2ddd024a1418f0f54cd4c57d0ad5fc59bbd26d28bf173a78999eadb025618f0221273c5cb697708f944764a88fe9c08695b10694c68ec54473c";
+      sha256 = "430c1062e9edc9bc4a0a47268782cb7928214df074aec17e2e3a283b7bfa69d0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/en-CA/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/en-CA/firefox-80.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha512 = "0722520753a1bdb093e696cebe1e9074661b7602b5d8285b41f62acd462e740cb0833b751d870d602e7473bd11f3bcb3e5dd8e84ca00ca3babeea3a19d45974d";
+      sha256 = "7f8d97a5643c959eb09119264c8829c7b7227c01f8e035b17f3c21eee3d1e0c9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/en-GB/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/en-GB/firefox-80.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha512 = "8f6aa14f4dddadf19661e3bf11573d930c5e931f383498fd22826cb1e61f97bb5cc5db7507e5363648fba3368c7d49d7395bd4d68c6f9787db65401e990a62c7";
+      sha256 = "d2361c90c46dc43eae25ff53440157322351645d6a20ed077e2496fbc3b955bf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/en-US/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/en-US/firefox-80.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha512 = "28b0f843220a88759893813c48f9b02a255c26fe954632e530f956f43c4cda6441546f3e9d827fd61bca0d61fc6a5580d3134b8d5315cdab90fb57aaf96fa5f8";
+      sha256 = "84191f06dd927cd16b8c0900e6c330f68cc8012bc48e9277891282a2d6f7bce7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/eo/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/eo/firefox-80.0.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha512 = "da2d5d3d337c39236ecf39291dc44ce5c023dc0dc0b093c73b17425befa5f8b54239f166831b2d2b88d3556b9ea1e3dddcda8bdf2907fa7c5a63d78ef222b214";
+      sha256 = "8a9f5359cbb0d8a0d173d3302181ab41f463d8cf6b17f9c06e33432a95d79b0f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/es-AR/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/es-AR/firefox-80.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha512 = "ffece84feea0c13e2f1b40c41ddf0c6bcb9db03d5d377c509421abc2bbab7d04134e14f9eda5bb87bf7a63da57ac214cf88a054fd58cf7785e620e37076b5820";
+      sha256 = "0f5e7d4a23daab7c96cf706fe1c5a62d9a244d39bf6be97325cfcc1d699936c3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/es-CL/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/es-CL/firefox-80.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha512 = "649bcc8ffa5ae82a26c277ed648e7e02bdae3df782c2716ae15834f46230105ec4c33bf838a7c5dc7cd1ab1ef92f9babe9bd39e8dd5d34376ae76121119e7a2a";
+      sha256 = "fd914b5892f2aa297054e79c6d6d863f1b4d88ab1a2bfae3d40192848c9efd64";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/es-ES/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/es-ES/firefox-80.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha512 = "c292b0f01d5289ca978b0af87d15a0472748db192ef4f09b36f5fcb1a671edc9a3286d3981e482bbe0b33158f930ee1514cf0e8b18cdf31a47a2c72b0e0dbf19";
+      sha256 = "b87aa07e99d0c8d3a17c76bc7e281f8309cda97565bbfa4dff653326fb2bbcb5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/es-MX/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/es-MX/firefox-80.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha512 = "969f18a23691d80f7cd7df0ac43c6a725eaffbee73d8044daf90ff4ea0baf504cba9e73049f74b9cf8619b78326797d831f247f86e5181a791fb4ae211b20e46";
+      sha256 = "ffb619b95658d5001a036e0906689f12520cc25d541c4b5b154e44e4b176da33";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/et/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/et/firefox-80.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha512 = "cacc56bec434d5c44422f2178bce9db151249b4298df079a00c378995cd353d6369b6a1edc841928eef26a5dfa23d44f25cc33f0dabe96b44c13004bf134ecf4";
+      sha256 = "2558280c2fa85aa3a2fdfc59994de6a593ccbb6a7141e76c21e5318152b6e992";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/eu/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/eu/firefox-80.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha512 = "a5fcf26a1b614006463f0b2503c39c00009ccadeeeef54c7ade12717837858594037cdcf96983cec88c5816e436e97eebacd07b40182504c016d238207bd3e62";
+      sha256 = "0ad66a2dd10d1e5b0d44e6db28982d82430acb7cef6e465ad0c88fd7958606ef";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/fa/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/fa/firefox-80.0.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha512 = "68a2938aa4f190941595e66efad29adb7770657dc755725e926a19e189f15f83a5e234d896f589c693fc3665e50b5da95fb3538238a2c2c2f955caf08d7a9cd0";
+      sha256 = "39b1bc086dd14ced01668961dac12a5408f5cc261188b2c32b6114dc70c67e4d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ff/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/ff/firefox-80.0.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha512 = "28298f6619a3c485f08d25fd9cfcd9ff8c60014c702ff7e4b6e462a0877b7225829d4a5014a653a3073d4d51dca731859bb6600ba9a66fdc488734af7487f9a4";
+      sha256 = "1511c50bd3ced8f570fe409ef609a6c9dc626d061156e5091e667b9314a5c4a0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/fi/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/fi/firefox-80.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha512 = "fb4ee19b0b71d6d51f82cdfa384a4229e4cb735e0901ef9d246dd192ea5fab010de5549a0236917ee0002de0cb28b0328692079087184f46511c429b4c0201f5";
+      sha256 = "4d9e7fe4eaa94e4a2195589cdaf9f58c4b55339751001e87bd42a6326ee26787";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/fr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/fr/firefox-80.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha512 = "73a06198b1b62ce230c76d045b8950008b0ea608a967cd7a143b79b745ca269b6d5960232dc2f20a26af6b9df785785db535182b2fcea2bc1fb6d46abffa1659";
+      sha256 = "99f293639744dd8e2615bc4d6290d2f5baeb9d646bc796d3bfac5de8a1c001f8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/fy-NL/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/fy-NL/firefox-80.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha512 = "a7a2ae5b4e1c5b6e0bee93e4dba501638d4f6aefb094833eca2e1a4c342beb29102d92840ef8c898106c8689d585548a2dd192dfdcdfae3a0c7a9fdffa604008";
+      sha256 = "a8628d16e51d7355198415f086186c9874f37f9250e64512457aa725c8ba9f04";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ga-IE/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/ga-IE/firefox-80.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha512 = "1341a646c758c1b879464722a536743cbe406b964ba289d9bd36ac973db8cfe008331f1736a838c1b0fa5c2c3a01e12fd8a4b3bbc073e0772ec3d50da7ea7159";
+      sha256 = "df63d7991979e8fdf8f6911f8df2122d9995c50c089596bc0f7c0e7179326051";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/gd/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/gd/firefox-80.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha512 = "d7996916bf60c44df2a354c2f09bd1116c2bf1f20bc4445686e16f1eadfa6606e772fb0f9f3086231b8666a5a22a4dd549a4efcf7aad4529ac57a49adf9a7777";
+      sha256 = "616906a45df46004e081cba3cdadd2782c3d402619193f5d19142977b7ff0fcb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/gl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/gl/firefox-80.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha512 = "38068429fb33f17451babe535ed9692f8d97aa9bd10a419016f6b61c8a02232c801a2e018bb6164ddcd1c4b3216fae71c1cc7f00cbfab3e20b85d3aabda02727";
+      sha256 = "bbff8f63ba3c029c97e5d40d3ecb41d757b5fccd59018dc81d7484f12c830686";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/gn/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/gn/firefox-80.0.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha512 = "ceedc3f1e05ca7b33e03bea9e0da10eec1930ebe30cc5b539e6b928da8a19eaa619289f25188888799c3a0d91c12a6873e38411e136fa684f5ad27d6ded6d6e0";
+      sha256 = "62d7fbf8afb95d221df768fc190381a859e142a253b8df6b63ee276c4111077e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/gu-IN/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/gu-IN/firefox-80.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha512 = "f2497076febb3f19964b3ffa29de9061cd64706224c29ea8680a4e7277131de559b67c0012d6d7a8905143e6b19ebf27b5ddccb3263d5fb3bfcc8aed1f93b294";
+      sha256 = "3e451729a93e315c9ae767d21c5fe25c505e327ab435c5a9c4f606e04ca61051";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/he/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/he/firefox-80.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha512 = "d91a982c027d2b68c449fcaeb719d8943d089c778d017534d72b571b26af8c7e01ed9ee37309394b6984daec3579b91c901a3a1d9ecf5485a2a0a1a8f93d522e";
+      sha256 = "a48159e9c2798308ca4765f02ac90a0a2b05029ae0505ad59688d281fc06344f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/hi-IN/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/hi-IN/firefox-80.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha512 = "7aa929a279e568ca517f3727b4c51417cb4acb6e2606da30658c9a213fb789dba9191b51d62037928a47daa394ddb5baa0e2746f68a4c5569bda3632be17a719";
+      sha256 = "39341543e9e8e2d5a377ead92287413df77d2f1c00a7362eb42d8e640b8f75ab";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/hr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/hr/firefox-80.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha512 = "07fde2ae76e5b9ffe81ed5d68114f66aacd7209e5edb353d1962a9509c7cf75bd42ae21ee8cf30216f502e31af5caa7984676192a714712bd279440659dc1661";
+      sha256 = "0067b77ff388004e0c60855868f1a45a282282b8c7360847b65ad2b53a558010";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/hsb/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/hsb/firefox-80.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha512 = "b591a29c05f751374fbcf9c8557d208842ee26eb27ec0be766fa1f5c608c4eac7311e667f27f95bddb4d55b984d1975533e4c6d3267c69130ec21ddf189e84ac";
+      sha256 = "5c3a47a28a8e67f6a5be72540d9ae85474e093b1a67254949794918a8294ded6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/hu/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/hu/firefox-80.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha512 = "cd5f400c8e66e201f34155450eadf6d920327a19e87f0d0d1f7728c481c03588268b7711c865a011a207287ba16ada555b6d370badb28ee3ea2b469a76f0a03a";
+      sha256 = "2c6e390d9348d2d9c1f2adc30b73c451aa6fdd281dfc040fa79dc7365a5414f4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/hy-AM/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/hy-AM/firefox-80.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha512 = "f08d7c0d8db0cfefad662eece31ef9d23de333f88aac225960bffd20a9de4bdeb4f2c9835be7351e20615f24024861231a79ab7ee598caa83dde88e810d973f4";
+      sha256 = "ba3d7371aae296aa6417e3c5d2b4647c0d0d0cb4f20441be525f2dd2ad594125";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ia/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/ia/firefox-80.0.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha512 = "b5bc06630095041dffff149743d7dd43fe0d4c698f514f2f91ec0d8dea62273501df4a304903dd96532e9fc1756a8330f052a5833e331bb39478397dca5fe7b0";
+      sha256 = "799ba99b5e5c9568d94c7ee7a3bc482eb6d827830ecdc8aef9a2e4d9b157634a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/id/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/id/firefox-80.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha512 = "2960c0551aadd142c5fac2e99b327be4393bc2e5515d3c67cca617cdbbf6dac8e20898d124960420a8804bc7e1c61a8bc3de715fe43ff7c5a9dba62d515a4e10";
+      sha256 = "97f9f9194178918d8af8453b165aaede0a236e75b973a8ab0374a36ea4a8f8cc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/is/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/is/firefox-80.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha512 = "ca9be0a8d2ed5cbaa3228de5d5cbc4ed6a0b14c5bf5f1e978e28fa1840c00d3cb32334f24cd9846e9aacbd61e04f79949f5271d061d62b5654a44e95f813b397";
+      sha256 = "f63efcd86ece79d4a996c23e22a1876e3db25bfc09e5132e1832c309711d9012";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/it/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/it/firefox-80.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha512 = "20259f0b35d85a75a90182851cb57f33b9e043e358a2b80e9d3e4fc5e6b0f3ce8bfffd9dca4f574304d66070f307c3832647d4829169202b119a998cf969ef39";
+      sha256 = "c1d5fcbe8a3fba613e5da888f5252043663b7a1fb801da5cf54934af11ea5782";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ja/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/ja/firefox-80.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha512 = "41234ac1f73c3f93f61bb6f1dda395d7e6b969627b86fe36f93f33353c1b28b4f9302014ad7cde6b3e8df2f84b3eaf0bb75c6df884de0a9a77ed2d133beef863";
+      sha256 = "75c5d37fdf2a488b0dbfb09c6bd020db90d699713350ca3c091d5e8096d41d18";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ka/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/ka/firefox-80.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha512 = "be9130cd5835cb103c3149dc53dc325c54c1cc5f5006cbf3598314be2022c1f51928529cf3218052abc5f7f6f649e862f69ccb5b39ab5053141e231e56113ba1";
+      sha256 = "364b16782a4948e986268aca5e07dd92367120e97aa1d3bcfd5b78e58f58025c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/kab/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/kab/firefox-80.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha512 = "75d15e95416f3f61e49164b7be43f9335049f62f8350cb4abcbe3c7df6848a124ff5b5e43f81a4eb2f492ad3a61ab1c0979083d14998b684b2ba8988c94d6b57";
+      sha256 = "20a5bfaf08f75040d1c627f79ff8cb133d0574c83cb13f8902367e88a3742bfc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/kk/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/kk/firefox-80.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha512 = "df7ecfd04df63351d35425f74bcd5b0b342302b6c7b24deb35394aff9ed3f025ea9ad1c1147d46a789a2a11d8dda924c15584ee826819fb4b1fb0509aa71cc9e";
+      sha256 = "f61bce593069f598b8b8fc035b09607f423d5600df7cb620360fb1aaf4cce68a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/km/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/km/firefox-80.0.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha512 = "811876b5a4d070aba73426b2da43ffa5e9f9beb1a4ca37ecfb5e058100c60d3455e6284e9a71d5ae58af8cb9fe9e3e0703847ffb16fd963b4eb1410a3921f260";
+      sha256 = "7056f40cc5fc9d59145f4e08a4b19aad8e2b473beb4d8a7b09d636559bcd8457";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/kn/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/kn/firefox-80.0.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha512 = "8c195accc9adbe3662abf62435d3b42ae4e2affcc41cefbb8f5a702ef75ad8566cab07eead40869118ef9164fb6529e1b4203970b908ed7d3f0cf43190049b2f";
+      sha256 = "c18b07bc5ee941f001e3ba9336d677f51b60dc08c2bf516b68882f647475b5b9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ko/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/ko/firefox-80.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha512 = "2c571a931e88a49e4c977728bfe51a2008d4c384aae55b759dea665bf2810e5929a693f633c82c5ee26e1236cdcbc003a9a39e0e01ac46db71c9bcc20eb8d17c";
+      sha256 = "7b58b30aa461119ef842ee886d06676fb5b00d05547e959bbaae4ab597cdcda6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/lij/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/lij/firefox-80.0.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha512 = "d624ab2b73c03157d0559a3a41a7a50f985364b8b2c03466f949d2cd212d206bb39957eed9ea769796f4091d7644cf7191fdd0881eb8101e2cb8944923c677ca";
+      sha256 = "8107773361daf1257a1a77d853ae5baa1e9ff393d16118fb1987723f2a7af33b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/lt/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/lt/firefox-80.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha512 = "72607d7201c562103dd241f18cdc2b681fcd5d28302f5afcf9e03f8aded2339a88e2b8c2b81fffdad5e10bfef94fe39810116d61a415f9625d0a48c794078bd4";
+      sha256 = "356a337cdb3ea658e6723897da2f8d99179ebfac01d071f641c661eea1da52c3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/lv/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/lv/firefox-80.0.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha512 = "f928e22f29e46bd9405f5d2bc902c82093ad8073d8f6ea52af20c93805b0c7b5523f489f9140baae1b04b015b7c185ba27398ca857b00c171dce32f38ea0d706";
+      sha256 = "10a9272101d4b37ac5949f2606317da5f41d205cfdc0967cacd9c72aba550cbb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/mk/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/mk/firefox-80.0.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha512 = "f6c7bcda5da5d3315a0a5a47d7a0b9ec0d4a6d4b0daf8fc11d41a8a8376fa05607889d108d38f3a6085c0f9cfdde86a6486993f72f44822a75a97b1b9dbfe185";
+      sha256 = "45618096f39f0c6e28a900e2a5985fc1ce5c9fbcd6abeeb2d21fb4b5bc095876";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/mr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/mr/firefox-80.0.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha512 = "8a41b844c5faf640f78615593343dee0bde8dfc2c20977b80a6e9de37fbe10e997345c801b025e4eb79627aac27a92169e0c332e7595715227b2d3015b2c9b3b";
+      sha256 = "63d774fdd4f825780c7f667365a560b72dd1f31449d408553f8c51dfb6583dc4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ms/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/ms/firefox-80.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha512 = "866daf16e535cf9e404a788c8b792c8cbb391c43912738d7eafa723c5e6eaee7290d94c39324708533b4c8514391a0eabd62626029ee7591934e5ff6abd72969";
+      sha256 = "fa67faa072b03b64132320a19691eadc719f8598167aa39f21d097b1e8fe42ce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/my/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/my/firefox-80.0.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha512 = "94ba7fa3a0cb791daaeaaf9998b0c574759f7afcafcd388b0b5aeb9bb1ce97e36671378f0c56c3d5120872ab2ca48933b2a304f3ef3e194a77741c492e8e75bd";
+      sha256 = "e40c7c534108dc7e9f978d3e6ea025e41b0e6120b9dd701a7935f90a7c4b834a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/nb-NO/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/nb-NO/firefox-80.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha512 = "c46ada870f940387fa6bff044176aa59f3fb376a8d8b1df1715f6abbe3bf87f932a49e53f2c4bde967bdc04c930fa2e426f7c4f66c22c64353be68220d9ed94a";
+      sha256 = "99b52d2ecd2ce0154378630f80f3bb9371d0cb7c59d780e8abcbd47f7008a7c2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ne-NP/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/ne-NP/firefox-80.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha512 = "005aac3f43e0104b284f1805062eea457e81e8b29940b8c034f99de7e07d38dcbf9077d62a1c44a1f2dccd65258b1346889e08b7736d9fc983f03df788fd5e2f";
+      sha256 = "49e9e67f879ecc519001ba500d136285c89a0fef3f7b8b1a693e8efd2af152cc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/nl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/nl/firefox-80.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha512 = "9d00c7ebf4589615afffddf6a33f0e75172059fa3e9ccd56d3fe720b01c521fa30a88217b77cb2ebc37b088ce69ad280488da6ab53525170cb1fafba64816235";
+      sha256 = "ada875468cd865efa4023bfecc0cde06469fa3bf655944a2dfb945603d3ad483";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/nn-NO/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/nn-NO/firefox-80.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha512 = "5a9ff27a1355497d57056826ea0ba465d9f10fe0112628634267b262b4bdaa07b0133fbacb8a5644063cacbd0d59526a09a6b98caef78d25c39173934445432d";
+      sha256 = "b04996dccdb1a34ae41066a58090eb1be8fef2d458cf1aeb0297650123ffbce8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/oc/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/oc/firefox-80.0.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha512 = "02e1519ec4097a990325cdcc2e13e70c16b25febb466d9d06db64b8b0c689c7246546d0666a71003a533d73d0b73b472aa8312d9bc59463dffde979618570ef8";
+      sha256 = "c6db46006f3bdaacd7a4ede17166e2bbcb4ef672d432363e86a819858327d867";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/pa-IN/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/pa-IN/firefox-80.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha512 = "9f7218eeb5abe8f2196b2a43cc24a0cf6cd13dcf8801f7b57100336a90550bce23579dac36353fdefe542714e67bdb86102de734ef74e4ccd29a55c8f79a2689";
+      sha256 = "a52fde04d6f25f6ff0641ade83dbb88f4d15aff689a041cad36352705fcb43ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/pl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/pl/firefox-80.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha512 = "d986bfcc489a89a9f49defd9383904043d36d4b29b02715186977cd60add217845dd1785fb457228c71ae02243d10a110b563f18fe5352e68e315ffa8290848a";
+      sha256 = "6918dd7bbde254eef27b740147d64550a1b4203979fedec6f9064006300e4638";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/pt-BR/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/pt-BR/firefox-80.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha512 = "cfb4d9510ec5e35d25d53302e553c9a85f8eea4120a236dffc5f2350b70868016b852bb1d43eddcc03b7dc9593f8f76e133fc8329c000f315f68f2e4ae5e3201";
+      sha256 = "21bd4c8b68c7154889f4d06cec9eb3696dde94e2ec2b946f25a627ade2b16a7b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/pt-PT/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/pt-PT/firefox-80.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha512 = "335fa2e31e66f0ee0323a50154dcbfdb1516b8376a587f0097e40c51c93e3c019de3e1c4af19cbeb4f57c1b736703b82dd63af91e53c2af5532eac42d80fd800";
+      sha256 = "b30ab69cacd27d7a60a0387caea18712cfd4f4e2dd45f7bb51e3074e46dc3f05";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/rm/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/rm/firefox-80.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha512 = "f7f06e4ad2f0f01f398afb5e95c4d88e6c045d57c86d7e004aac3bc79c29043853aeeb4a6162fe004ebcdd7278055a19f6c25d60887ed451905ec4e376eed175";
+      sha256 = "9fdba8959e1276684bdd53c2c3d02e80768f3e9a289bccacf5a719f5ce51efbb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ro/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/ro/firefox-80.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha512 = "4017ef08f0f1d7fb82bd9b7afa72a617a3f781ef6296b97b9c351528d8107523df5c2dac5aa1ca112cf6e6b5aaea818195f3458cbd20b9f0cf88b3acf09699f3";
+      sha256 = "e31d0a914b107736fb83e686c5c011b912b7a5b04fb394b7e769c40ab249b504";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ru/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/ru/firefox-80.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha512 = "7aa2ade09571ea44e08b12f2c758e56fa66eac8cbd49d90c28abad04b99f9fe005eaa04f5b6b238cdf56cd7a59ca388ff769c862310dff0a41d952d35f1cc7a5";
+      sha256 = "3b26ecd7fd38e224625def5087fe5e6ff1aa408e3a04a06e160e688402026113";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/si/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/si/firefox-80.0.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha512 = "668df6d1741a9d300e975d1d25b42931a7eb3c2883c33c4ce1a585ed7a065a589ff569732e1ee04ef8f25c84d69ec3458f92263aaa5b2a36fa6da8a1ccacaffd";
+      sha256 = "bb37483590bfe23951063e15626724a665cb03de6ce2916992ebad88759f2691";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/sk/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/sk/firefox-80.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha512 = "e295e69e84a768ba070f087aecf3cf041e67bc297f144af5eed9a75758e0d322f730b797601fa0733b1b9260f5d3225c899ccd80a3861fdc77ab1ce9179dc589";
+      sha256 = "60be0fae9156d425708360e233a39e8b1d2be45216d8a155d06f020fb5808cd9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/sl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/sl/firefox-80.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha512 = "63dd33ca7ce582b4f3284e936f54469a4c31ae1006dcd95ec5952dc4d97b2d524a91adfebc041e8a7b9358f5af847a6fb6af35b41af744c2701d408f64d181d6";
+      sha256 = "d1261f9dc8091df947df5e64b5123d8d4b39bf15ba6dbe5fc4844bce9f3be220";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/son/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/son/firefox-80.0.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha512 = "801bbdd3da93480dedcc13589c77dd2bebed151df9ff468e8d9d2358f69fb57c22f8916a9581e460ce4fefed6bff651126f92ca588392169556444c21a4aaf42";
+      sha256 = "76ae5c6f4890d5c29ee33ffd81923696f755e6fe0fa8081c75e72ed1599e5070";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/sq/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/sq/firefox-80.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha512 = "4eff5f67eaededa77e962609ef7da1af2b10f5510f3d354d5d8065957aec115d827da0c0ea056d02b5d7c11f05db7e4b91cfdd6bb0f879ab92f6fe84a1e137a3";
+      sha256 = "5aa679e980bd0808b0c924e4ad11bb6b3256afd031cb04f16f862eb9bfd4644d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/sr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/sr/firefox-80.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha512 = "d688aa2911bd7925f6be1307bfad521ac29364f047b8c7d683328b95b871a7ca0f382c103babffd518f607eea0298177d6ce145511271f3c92b8e2de81da06e8";
+      sha256 = "a4941d40721de72abf22b97846cc16de49670d7f096829aa0d1775089734d36e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/sv-SE/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/sv-SE/firefox-80.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha512 = "27fad5bd1e0a2b2a06ff48c90049ed2d03fe8c463ce5a5a5b5a83a24add6d1fb72ec83d02f4c9e2e741c3d43b86e9fd3a821cb6d158d3fc940fadcac9d040061";
+      sha256 = "c50a2d0bb15cc95982e3d2997719a65eba6e0099ffb13b066e66e5aa951375fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ta/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/ta/firefox-80.0.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha512 = "1dc96ca10fdedd37369037126c48940c060ec1b0238cb4c592db79b3154c8e1ed167152ebbd33bd7375b241776109222c1c3e886dacf4f885319eeeb7e33ee8b";
+      sha256 = "53651d5b0ea3d36c6600c57f02c27202f2f5b938aef34de4164f325ef46d8666";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/te/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/te/firefox-80.0.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha512 = "4c203815b896aec1a94416ae2baf96dda2c0c035da00e592ed16eadb9b729710d5cca26cd0d03fc654576b9458b4c2fc50be159164e6ef1f1fddf90609221eb3";
+      sha256 = "5225d57d4a5c83843ecc83735be2fbb4004d4411da5ea72340cd6306078fc426";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/th/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/th/firefox-80.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha512 = "22ae877469cd895afd487175ebf04c6a10b42cd7b408e5dcb352143e457690bc13561395abe15db0bb6594074f2298609fc381d2137c5e1aef2af273f17e2489";
+      sha256 = "b38092aef16253b180dfe0d297ee1bb8417dbb4851466625b80858a18b2d3801";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/tl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/tl/firefox-80.0.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha512 = "10d60e3389f43f1206a3eb1252897d0a047cb14272f8408c61f34eaeb227966e8e43f9fbb92d246bbffde77fd139e5354fd2abdf0abc91b8631dbbb64635b549";
+      sha256 = "5ac9aa87ad90d60a852f7cbfc611c05eeef09b2aba46da80a2ddb093ce5f1730";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/tr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/tr/firefox-80.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha512 = "c17c8ae0e97b130ee437752410eec9d2bbacc84aa2e5f13e0c52147d7540fe6f76e91a01b0c94aa81b1a67f2a7d8ac29fe9e21197b659a6840c3c9933603c119";
+      sha256 = "b2a6aa22523f9d3396675c60ca7590e9c379a15c445727f01c3ada090a0557fa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/trs/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/trs/firefox-80.0.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha512 = "df664c21640b9d36c487030a5db3f83a2947f375a7bbea3fef9a86add22ebe23f482091cff6205ef22e8544dacad43345302a7b34f0a4729a8da6670ee9ec9cd";
+      sha256 = "0e3e21f8c76bba90e730959e3f176c5b4406196a4b9f00aa4d85088495eeb337";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/uk/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/uk/firefox-80.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha512 = "68f6c6a804b40441cd5bccab2e925864ae8642dd2be6433e215e1a786043b50eebb8e00299d47c19d5b3c52a86c8a0877a511f3142299b906ea2bf4bcd92099f";
+      sha256 = "626f9af6252a003cf869067de439197d8b0dd0b73e654310f439579959036f5b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ur/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/ur/firefox-80.0.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha512 = "05751d956fe5c5d3662c722bf97af4056e32daaff5b704e0f514a16529d8110ffb6caa4207747745b9c46bdaabe51be658b15b54168fea4f0b27287ba7ae9173";
+      sha256 = "67e1108697c033ba3c6bcce7e36e5ab269f66a75674795e931aeeefadd7e949f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/uz/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/uz/firefox-80.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha512 = "bbc479208f90b22da1a8cc154870b1b2eaaed25395525820c5add437186c7e3a391545f5efef0d1b11e6ff82d5cb7ba85d1a0872e919cd681eca7abf92aefb92";
+      sha256 = "90e6d82c75ee24925cc6fdb48674e7ace3e58fd2cf27441d8ba9b24002b03a03";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/vi/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/vi/firefox-80.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha512 = "9414e3c51efde79c1d959036d6365416cb421d0cf37bc5e2fbfadf7673d5bd87d506e0ee1914949292c4cdb9061dc93ec50c405eff5cbba8bfe5f1870afb4948";
+      sha256 = "dff1e18e968d514b91d4f3c419da0570478e1667485761be703349b5c6019124";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/xh/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/xh/firefox-80.0.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha512 = "61c8b31b28f406eb63688258757ba072065eccc91cf0195f03721cb774ac3e5d5aca0fdba27e09933be8e4106e30ba39ba4cdcfa85d3bda1a8e976695a3e47e8";
+      sha256 = "1d524f5c5e6003c4cb1e00676ab5c369752c80c763684d7550224c7bdc66ca68";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/zh-CN/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/zh-CN/firefox-80.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha512 = "4fc2046f4f2cce47c27876cb63a7b07024b639e43cd01c771bf01ffbbaa70943dab0a17e08ecf63d47b66416a7fbf89cd37cb06dd0eb5d589f0e58168632d6ab";
+      sha256 = "8893528da90e46d8eb287ab857ee6e18d89355d7901e221c7820d7f1bdfc155f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/zh-TW/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-x86_64/zh-TW/firefox-80.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha512 = "5eaca5f3d81588547f0df7929f8591527c2a331d52136b23aca547e7d97b711ef45d1b5309d63b08eef44897fb9ba47d91b0b94f077856dbc5e6db3bb62ae441";
+      sha256 = "8b01036a6c807e22f66ccd93fa335e3fe71476e7a9993965172b85d2eada27ea";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ach/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/ach/firefox-80.0.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha512 = "10723c4bfb26d00637f4e190330bcce602b80b4693c4321b7fd7cfa58cf7ee33d8829c0afd23c17c836ef82f03d5c7da98695248bf932264697015a2949a3576";
+      sha256 = "1bb95b52770a8cad2b339874ac4576e190790935dfbfccf22cfa8be41e3b7e5a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/af/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/af/firefox-80.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha512 = "276a26621d0fb37f9c57bb5de992a3213cfc97ddf891b6fbec331722455221d71b1dbe6f5ec63cbb552a1dd0addc2ca8549451facd83d9b3b3b5d88fc0e5537c";
+      sha256 = "919522f2c9d8f0b3c7f7c7d4311735e68eee173883c80f4d168625b690d0f29c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/an/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/an/firefox-80.0.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha512 = "2cd26f8507a49676c32fb7c9c8ce43a9df082a965d59340ec794f11e85077f126a2052c86ab78edc6087a1fbbed3e58e773930f20a5e3e69fece29df0931aa1f";
+      sha256 = "878eba95507de8dc1788e01facd9710e39cb62d75229d6204601c58ea0df4cf5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ar/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/ar/firefox-80.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha512 = "80a4fa4279f0121fddc956ebec61b9ad2fc4417f8e41461517e50fbbd6d44278640590e4d4ae383a3e1d732382f037ed7bcbfe599fb08ab21a0d98b52f32d0f8";
+      sha256 = "4bfc935eb7a94eb6cb957b118c4811cbc0d1265a9fbcd4b4ecd3aea593658af1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ast/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/ast/firefox-80.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha512 = "68392bec35e5ae6913311c7f6187d916dee6e3702663e0812a557e331a5cc4f30cf8cd6555abdf132ae7d638100ddbcd485bdbbe1519693ba34d607e32c361e6";
+      sha256 = "c64157e1ef1c361cf1dff89ed443f9b7fceab088c3bdac4058e262a1c068c97d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/az/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/az/firefox-80.0.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha512 = "e15dda365436f32ce3b553f63e459e5d32c5a00aa3b4413899c9028e0b18d1a575c33747cd621d1b8e08a84a77ee2ead5c5fdd8b4077055dbe96cbf2d223cb05";
+      sha256 = "6045ef88f6cda1ac9b87854c7ac0dbfe789f9a4b4f7d35f9612beff57d832b60";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/be/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/be/firefox-80.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha512 = "46dc546bf28e57f7d2fd462733eb7486f88d4198159e77873a5b566590fa1b81db8ef4149dffcf60cbc6aad1529be11b8eaf5aa4fc410600a4a1eff3b576f0e0";
+      sha256 = "6c0e25a6610a0da75f086a829a142f1b7f419e1357d7c97efaba4f1a9c95b5d2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/bg/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/bg/firefox-80.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha512 = "f44fbeb1b25249a28a9fd77dda908c3247f85f788ba22dc131155e6c21d80450975687e546a63291832974555745e29bc8b8b177c338bf911c212125a10f95c1";
+      sha256 = "1c8579439940499262e8e2096f16bd6767441b72a00774a35d76db9463fdaf34";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/bn/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/bn/firefox-80.0.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha512 = "b2fdfb72aede045bbdf03feeb38d0f8530edbf6f2e9ecd9723b481365eaf0827e879a38136e6d72efb666138403205c13cdb10a1018e5d255a847d8fda4a2507";
+      sha256 = "06eaec1ac31a6c2dc21eaa871aa2dd4f45a299458d5cc950c2d52454366ba1b3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/br/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/br/firefox-80.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha512 = "68cd1a7eaabab81400c78e1fa36850dd84fae8f2b05d5c57a4769beb7948d050b6cdb5b4b6928afa3a70ab9cd97e37214d67ccc5cebf62d09b7c1194ff410b24";
+      sha256 = "3f8a1a9204ba24d2367f6ad995343eccdb48c981d726ed72e6f96b3579bb504f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/bs/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/bs/firefox-80.0.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha512 = "4fa4d41a85e4746e383bb514aab8222a9c0aa4ebb1779009a50e891c672e6a1002ba454ed24d7d4fc4f0f79ca53a985ff56981acb2845762085570bed93da3f2";
+      sha256 = "61da2d6bb7dc90615949b10ab45ac56d38ccd4007ab6f0ff730454994d303f6c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ca-valencia/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/ca-valencia/firefox-80.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha512 = "23b3a60a34fdc9dc31e54141e5f62d21fc118b9932ed5b0eef6614535174c107b113bbcb3c42a940fcf6a86d1e734d5478dcf840f882cad6a772c6006c8944c6";
+      sha256 = "15ea7d6e7eee13f2100111b8c9fd10cba728acdc27575ad0160b5baa5c5ba0f1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ca/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/ca/firefox-80.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha512 = "227cbe52a302f4030fe610ba816c70c5051c58732964fbe64462b62e879df0e35069b0a5d5a862bed87c21f36387fa43bdb82db827fe58b1e1d80c966f0ccf5f";
+      sha256 = "140c3b74f0edd7ad47c07dfd5cff6fd224048560ccc691467a00d3c67cc1505e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/cak/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/cak/firefox-80.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha512 = "5a615b7de8caefaab8f4f75401b13f40f3cc4ea23404f9a998979402789e8b2493c1cdb88b56a450b3a0bdc075a42722d963c3f65241ed3b690398d0d71dc196";
+      sha256 = "614876abaaddbca2dd2c56eae7b865828fa446c07bc5401f7bfca7637edb2728";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/cs/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/cs/firefox-80.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha512 = "75f06c1697372e0432e8c6e9691497e0cd328ed7e050a0bdf76acd3513328994d734c4ebddd923e2d19b5a83142c4570e16f3079fa6e0406ac83de25e3fe6e42";
+      sha256 = "2dafa0635a3192a9049d7804f97beaccf6e62a8613e96ba241dff1728aef840f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/cy/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/cy/firefox-80.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha512 = "7636a99636e77e4a6b6ea20c6d73eefc11c91691d0418d75a3fa7033d844c8ab652cc5dd1caa1c574dbf4c1a143ed738c08346af4ff4323493aca461fa256b44";
+      sha256 = "1993cd996e6027b4dbc0e306ab8c09772e0013bdbdd2dc9c774a702555b2f21e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/da/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/da/firefox-80.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha512 = "0a591e75f79f196dc45630b32e237e8b28cc2ae8463ababfb36b1fa9ae4f271eb53d7cf31834de8ebc0e453b89310e5789996add2f57d0035d1d9a80369e6ae6";
+      sha256 = "8fb1663ba5f646cf65593fe6eb57a63f750b555f6c75fad7f4a9d3592bb46421";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/de/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/de/firefox-80.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha512 = "fcbfe21676ccda69d67f945260ec5a62a7513b5d4c4a51dadd252d083860f2b0d2ca0882714af55485a0e11b36a0059c87db682032901506973ca54a8e341c38";
+      sha256 = "9536de23132d6267f3535e08194679ec16afbcf1c3cf6beaec64cff7de38d701";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/dsb/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/dsb/firefox-80.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha512 = "76e8200017f7a89b0418ff555ef8028e38012fa520ca2fa83239290eebfbf4c1e063d42bbe288e6d32daf9dd27d463cc6fde2d8c60e7a3b8ab2cd442742da450";
+      sha256 = "277cd59ab97d33a89e621ca3819fea2cc58042cc373891fd4599cdbddbf483ef";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/el/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/el/firefox-80.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha512 = "73f5a0f278556b0c99eb479407401f19ce228cfef164ab1cfc61c766052beac10ad9ca3d8bb2e9684d31db75b764572203ad22682f48af3db9d74b3b2c7e327d";
+      sha256 = "609c2e25ab34f793a85e60ff9fec4d4281bdd228026ef698fda1b25e956142ed";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/en-CA/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/en-CA/firefox-80.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha512 = "51d76ddee014df74e45fcf960fbcf61aff4500fbd86d4ce99b9f52223955af2b7f81bf6c66501085460ec759471a8ea45d45b09295d3be8f9d03a3b55d788570";
+      sha256 = "ca54e8fd35633530605149ca7aba49099098f96e880dd0629885e6c867c3d632";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/en-GB/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/en-GB/firefox-80.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha512 = "93aa0d761f68c2b5b6c387284418795a77491d5f880d3cc0fa9ccdea2971563326545fc9dbb1f5ca0bae19e7199553c757320706e95afb2b77c00c2e06fba911";
+      sha256 = "6a6e6b1b34fbaa578a035e430d10fd2911bf64e1917b170cd47ab565ddf9bdbd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/en-US/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/en-US/firefox-80.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha512 = "b3da650b9da5df10c611aeb5e08a6f96be431a85edc0c3768221faabfc3b302bb23677b33527d23d9df37aac7b83daf869f4a373d461893a9be83d1b74937e87";
+      sha256 = "d87d71827f0161f7d3230217fc4f7c7bdca804ccc5f49b4d107151fbcdd7622b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/eo/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/eo/firefox-80.0.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha512 = "c089b6425c683a1a75956fe50be90e9027693eb4bf3dd7b19efcfedcae36cf8c989898b5d6e69f15810be0a2485a353fd0d6a1ef9041e50ac62888769e9187cf";
+      sha256 = "50f158c96b8de9b789dbc138004646ae583b900fb067b59108ee4ad97e0cd2e1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/es-AR/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/es-AR/firefox-80.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha512 = "369fe08d54a48e9d6c5260b03c4af124ab43676ba46d96eac08f71b4bcd3a9776563e6bebf37ed523828463735792f6a160e222cba912cea9020a84b92136d31";
+      sha256 = "e5589a3a92ce6ee1b5756beb4cd6903e1526d74d457bf3fffd8b9072ded3c5a0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/es-CL/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/es-CL/firefox-80.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha512 = "dc9f850c487209b414b77d9bbebfbf3c32a8ee5644dbb2a9a119fb0f9da6d3d711a3783a4151dbf3036b9f94c28273802893add63238ffffdbf77cf213686c12";
+      sha256 = "3188fad7ee67a0c98b370ac32a50136c41f69154f99fda13804d16356679a87f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/es-ES/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/es-ES/firefox-80.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha512 = "331a100f8b71ad1e33e436e0d03c37438e0c7dfaad9f280d627dd02c2c28e28756d7856d36e407b84c254ca45b88a761e9a940955a8aa52c0c558fb98b4e6bc2";
+      sha256 = "c9f37fa0ab8e4d3c16cbc20ae9ce0f0a568a9cc2c48fbcfa114b1ab2b9b462a7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/es-MX/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/es-MX/firefox-80.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha512 = "c4ce60e070214ca4901e153c3033e66cfcfe8d0ebf9c1d1e448105467b8a129e7904a3293fb3d895a6380a0e54bfd007e5d581bba4f1d2ee7ba3cd44b5117705";
+      sha256 = "f07ee3d9317157e5205187bffddb0339fb810ff06aeb192d12e367acdfe89592";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/et/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/et/firefox-80.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha512 = "bae0eec7d0578f8ba911f71505d803efcb8b7005e6e6ba0bc7dc36093f462c7f704c1244dddad5d38249204b553cdf8b0efeb12c235db171d98f5e2827d085eb";
+      sha256 = "01aa2da0ec5504f601e774fb9a35e0b8bcaf59fee1cf8fe33a5d29c05fa75d68";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/eu/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/eu/firefox-80.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha512 = "821d3b331ac1bda31543c08ca678d141f640e862986da1c5b0e8c48981fe88252cacbc728b63e4552fbd83dcd086268420f63a0afad5a37ab0348e7d29828d03";
+      sha256 = "6d3f10b801660064e8f51fa45bc17bf1fec641cbb526e1da925b8eb71b863112";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/fa/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/fa/firefox-80.0.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha512 = "1ded2445623c10c5b348041935c03050eebfe1af1fcbc9ca9c2bb630a38a095408f3d09e9f4ecb9db4e06ea51d9aa139ddde8531db0072f6a57c7932fe302e80";
+      sha256 = "0f519bd6d2e8d1e01ef3f6af13937a84fe4c551b56a6c438d01f2b7818c0c440";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ff/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/ff/firefox-80.0.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha512 = "1f3a2d9c0c981c20f1dcabcdc5c8b6a8170a238f4381004183f8381bc1059d65d650374f03d124d22e821cb8d9bef59d59aba6ef132dec991b72af4c77f61d8b";
+      sha256 = "f72bf80190d3bf1a4b81aa06f6f0a7ea25267302747ead42a505461d4cd63e35";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/fi/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/fi/firefox-80.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha512 = "8f4737e9bbdfae980faae68758906099aede135167cc99b3ee98eab85e6d9d22616e8043af7f02981ab96b885312a89869980a06fc0ddc117806b1d5f9b2d3ab";
+      sha256 = "44aef7c10ed8815634d62bb60b7d5412901dd016ef7439b28a84219546b702b6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/fr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/fr/firefox-80.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha512 = "8680f38e6b9d56f3339f243e99cb5d541d6b2eb10a7210d8cd81bdc91f35dedd0de3b551e1b857b216806bda223c3a638cdd7e786d97674c5b7ea6710f669304";
+      sha256 = "a347e36231516c410e756e55fa8e03c660635a70c8315ec14e9b2c68deae9db8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/fy-NL/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/fy-NL/firefox-80.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha512 = "aa34dde7faed1b86707f71fe190abde730f0ecf33351c487d1a2fdd369dd67375d122a266fb5dc2b28aba87c93663a5606c43fe3092597b04cf9adc752c3bcb4";
+      sha256 = "d53d4fad373b633e287db03675f89279e44b80c28ab50c238a05b286abb916b6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ga-IE/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/ga-IE/firefox-80.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha512 = "bb1988e6b4b718cc698a5de87b9f339dd28a2d552906c24fbe9d67385c70e3669eb284220f506f3afe03949be5df0178af1d13c727716e1bcc07d9020c180661";
+      sha256 = "279f93b6e57dbaa443df2221217e4ef60be015c0a4e6fad8806e97f46f074f9e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/gd/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/gd/firefox-80.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha512 = "57b665e7bf404a0ae8c7602b88d987ff550d66a2a72c47ad8d163d9a697cef18753dde981d46471c5276002ebc5464bae54316e595d1d2aa8a00ca07bae25d69";
+      sha256 = "b3c89bb8b8e4f9bae3686e601de8ad7c065940f8852d63a8e503095b0674e931";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/gl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/gl/firefox-80.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha512 = "409cec1407ab01070aa75a0234ecc82e974f00ef7391119828b1a2ab019c62b5986a15226f620bb1fb403288d9aabded3bad1226ae8ce516476929a181b0ffad";
+      sha256 = "cc9687f4d35a62ba0be5c362bf0d55ed1acdc4d1b4e0284cc4db04553c36786b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/gn/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/gn/firefox-80.0.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha512 = "e2db32222279de40ae37392af9df330ab6d3bc1d1a583c93530262ad541b4d3139392a5d0043d6e9d0841fd0eaeb40c53b5e6f3f8fea762ad160888012dc7428";
+      sha256 = "c3d4cec222d099bd2a9f66c543c97d1c18c0abfa087c19fac3da08579c60d103";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/gu-IN/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/gu-IN/firefox-80.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha512 = "99bb0e4244ad5c406259d627161c8abbf5dbedd664c83ecff6767656af8e4101c8d62081ded7a8cd1842d739689cb6aaee02bba593ab162dad3139d5b03ad3cd";
+      sha256 = "7af5a56a90bd0eadf93ffeb2b61f08232996b560588fa52d55ffe3023e08b3e8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/he/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/he/firefox-80.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha512 = "ec00d7c46d50f38d0d43efe2e98d6e404398676eaee9640a4148e3cc196cb73ac62711a188d32c167c48bf048a5e0155db714172ba0bb7024dce6c2122c656ed";
+      sha256 = "65222595c4df12375837f0994f9fe23a3a8f96fde8ec0d7be980ab16ea19bc71";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/hi-IN/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/hi-IN/firefox-80.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha512 = "e107c3042a1e9ab1896a7b98dcff5918b8b3adf35d3e50fea5847337c505d2cb4073a9a15fd2d3b4f6949615cd8b0376541e715d686388e418d5ce64c1001e0b";
+      sha256 = "ee52e1eaca1e61c5ee1cfd5e86fc0afed242f9162f36027f57052162b88b2500";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/hr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/hr/firefox-80.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha512 = "cee9eb9a7b13944d2dd4c52456cc44404b2377062972eb3c9992499f3835d352567fb05560829ebd9db083f62bf9722d9c0e9610d439fb5d79c2dc120542970f";
+      sha256 = "ae9936bd5b55e92250d73859b1d78505fcc3d3312d0772591720012ea820c367";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/hsb/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/hsb/firefox-80.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha512 = "7936c949ac42d69b573f8b6be4055cf3b4cc62a8ad7c5c060ee4be8aaf0ad1e9e3c651289dab7c159e8ab18584374023dc605629233f58d944f13ca87db574c7";
+      sha256 = "55e837eb12417899dbcab8d15f3c8e3604f7a071339b1f2ee608801ad7fe7912";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/hu/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/hu/firefox-80.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha512 = "a68299f239c80c1346a5aa559fc5dd6f6e6dfc13f883c2e7be88c267725c837b6ca3c4dda06e5bf6c81ecd16739a1921c21bc71c3caf72944797915f452ba450";
+      sha256 = "710a5e73c34cdc1b7a77e8465724b0e99c4084effb015c3dd71e3fc2f678149c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/hy-AM/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/hy-AM/firefox-80.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha512 = "a8ef4b5467d58ef6935bb4525363d38a9167a00a8ad84665b2971cae231c60706ac46618d62d183c19ca2eaaee04d0f386c845cefe6eed3a3e12dae188524f2c";
+      sha256 = "7e40874e151c69145db6a812d7050de5ea65b8939a394cbc468c3492abd189fe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ia/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/ia/firefox-80.0.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha512 = "5c3b30a18467b416b109e2ff48e3a50c1cf10e550b22436115a44d13aaa03696443a5fee6c978e3560ada583fdd2806f3f1ec13c221dea097768b2d282d12160";
+      sha256 = "5c6083dd765489f378b6855713e601d50ff84acf95674b8d3b873b29981dda99";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/id/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/id/firefox-80.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha512 = "bfbd86bd3eef27c2eed900c23c29a0236884b1fd4d858ee8bcdda2a071abe1d042624b31ef258f9ea415b04ff1d17e70333c6507ef2a534033f1869e742e8b82";
+      sha256 = "b8cf9a69b6b52f816e355399e2bf6c1742f56d7d631dbee78a687a1cde9312dc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/is/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/is/firefox-80.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha512 = "459e4c9686952467d7e179c1b4f9f422e6445509813b0e0fba200e46468dabbefe59210a2cb218b226a6c41a333a64bc17005380be7e319015d722fa70a600fc";
+      sha256 = "532793a2e2d761ba36a3bdaa0a257e8828b5516193c4cf1f1ec1735efa510e6f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/it/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/it/firefox-80.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha512 = "6cd7c36d28e6abbcb92582b14022e56b048481cda7832b93c5dec6b0b4e38bd99de121c433eb0e90c9ebaad2bd00f681f22fadd09acfb1b669c0886544ebd8d4";
+      sha256 = "a5309e5f3c387990ba1aa255684ec73f2e38dca0aa873f998effb7dd7b13e0a0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ja/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/ja/firefox-80.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha512 = "cecda310147fc3298bbdb250d4d7a5a66225dd96f1bb0317b1846049a15c47bd2b7579982dac583dd4eaa1cd8bf706e7213b0c7bbe48ca980070f413380a133e";
+      sha256 = "f9dc927612114a5c8d9a4e0ee311356a0e5e819729f4ebd08ee5f03dcda52afd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ka/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/ka/firefox-80.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha512 = "ad29814eb9cbe19061b361c23c896f8bf8cb21c67d36942a1614af74a5adcb225df20dccf3af8d34dba27036d38feb758a945cb69a66c6ad1ec0271fe1c316b6";
+      sha256 = "37b82df19bd4897bc2c29eb3f5f94d107b6b97eeb5a1b3ff5ddcaf641dd0fb19";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/kab/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/kab/firefox-80.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha512 = "cadd0cb80e9d00d2a4f6f5a5274d85b23eaf802874c813a87fd7464d4cf7ac528c4b2ff30446c7cb438fd1faa514c80a2576d1d6b36779ab983fac5fd6654317";
+      sha256 = "1ef2b402c518da26838c2c3e0d5c47fa8f3c5d74cb2f9a95999814476d3bc629";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/kk/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/kk/firefox-80.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha512 = "033bdb4274c05b06b2c1fc3822a220aceb7b39bff310de6fbe2e59a097eac77a6aafcd275be690e84334ea7bf70c6bdb1a43f4bec0b82286e42db7797348ee57";
+      sha256 = "d152f45918a163fccc9eec97f5543d8c206a3e9ac130de58260943e6aebb19a8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/km/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/km/firefox-80.0.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha512 = "d028d387c7546ccba6b3001d006d0243300d770b1e255cbe02841bba759a8b4d75a55a68dc5f8a7dcc869badde9d7bd38f572e26d544444190ae05c23ff4b9c6";
+      sha256 = "2d9639684b0115f9db6eb73379e1d7b24670db83afd2e7d2bed2a7c62188f54c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/kn/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/kn/firefox-80.0.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha512 = "e7c17380869b5f47359bcbb82fbe6b2b16d814536218bfa1447432f0affae78d6c53e68a7ff7153e0e2ed72979c026edf6e8a9689b0cc90ff3d10919b3e06061";
+      sha256 = "224e41e1c33e60f1de88fe8243742675e0813b7041f1bac3a9a29528c618df3b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ko/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/ko/firefox-80.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha512 = "bda7e81ddb11dd7a197a9e6e286b3a8cc10e3c3d2a627f5c970643427a158c7615901aa05fc4da737586d5bd86eb4411a23e5830c1f6af582963f18c169eaa05";
+      sha256 = "16372732d44159e017875ee9d3bdbc5443bfb1eb577d62e8b28a05560caa2650";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/lij/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/lij/firefox-80.0.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha512 = "4a2a07e90d9ec3aa26557523c0c20d1aef34895ee06ee02dfedbb6f3d612623c23c84f10eaaeaabb35133e3f69b9545dd8720929ea04b73af8c9c3acac53901e";
+      sha256 = "a796e32ed17c08499fc2e459a1bf753c7578f5555e0a7eb62757b4c5d4f6b735";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/lt/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/lt/firefox-80.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha512 = "ddccb22c9d0dac8abe9c81782293834213a53b182ae0650b7904c6cc8f5777255ef642cb442345c64a1cad96d0ec8f45ce6d6cafb0e6405474c2a8e972250254";
+      sha256 = "6687e81d9be17a992e34fbbc9f44edb86be75e1329292122e7978211d4c0b43a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/lv/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/lv/firefox-80.0.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha512 = "86af4440803d27a5f6312b8a7dbd0d5f66fd1cf90b0e9b1cee8c4ee3b555927830a8cc3a06b6c72a66cee4e75d7e11168060d8681fa1f7c39ea2522819dc893d";
+      sha256 = "7c4beca6385caaf9e05eb6f6cf508f51d559094cff3eb60e28d562ec7404d804";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/mk/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/mk/firefox-80.0.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha512 = "e3876258021cd0d3197af334eff967ef2d1429eee880b63ee0d88569b94f0ab938b5843153cf4b9e6608c4c63c50682671ef4f6c15d8298b43748885f8d57c17";
+      sha256 = "d8da49d2b43467ef4b29f55a15f71125ceb8388a55ded93ccd90e7d484d84feb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/mr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/mr/firefox-80.0.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha512 = "9b7379aef1061ffc24f9f70e28dde4c5828315bbff4848cec7764a7d373f3590539a052e6578e1e87d214263f009c831dd2890f3d7a7eb071b0011f75402ecc0";
+      sha256 = "304c8f8caf6ebdd5d928135f7fb94d490658e0fb6b7b73e2f1618b7b07234de2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ms/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/ms/firefox-80.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha512 = "36d44b200a554476da7c63918b709d57c31741901bd33081f493d9ef8bfb27969d491381ccbb8f4a21e48693cd35bc1630144121c8871dbc0d1a87a730d467b1";
+      sha256 = "a4cea6625395d522ab3d4000f6774ba5898a1f740c9b70b23f71f52e1231404d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/my/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/my/firefox-80.0.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha512 = "4e290ea118b8b2ce63879a926d7992a3a231343ae98f9d6f61de720c5c39e2b4dd5b2e63ce8937945b02cc6b2acad1e7ee6aa3c2c15441e11270d817ea2615df";
+      sha256 = "1bbb703f65bc5d41174800ec789066d99ca10430605dfb2975b6d788b41c1220";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/nb-NO/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/nb-NO/firefox-80.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha512 = "82820f7da33b522f6e4547f650ff85e8d05e8b2142d2e113b9e0d94af560792ca3314a1afe98d3f18d3fc0fcf887de601bc22e93101908cc31a2238af359d150";
+      sha256 = "95592600fbb71a6346fa42f8647460fed047af96f38754a3322eef9bec7a22aa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ne-NP/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/ne-NP/firefox-80.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha512 = "591699f34737fcbfdf9c72b12be83ba5bc83bc027ef439c40f5b0eb22014fac54b5661da9fa0f118ed82bb5290147445f4d703e40a152ad4f7d2cb7153b9586b";
+      sha256 = "f902008b0c6390265e11209e573555b0854b0d0c879eb5c2637f18ce981223fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/nl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/nl/firefox-80.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha512 = "fbeae8de6a8297a9e0fab0a10e2c95aaa2d82af7304bbf49fad7cae69f26c5a9dae9de4d84614a1061cf9a82f71abb7eba2e8cb4988ad93d1b5667912ee537fb";
+      sha256 = "9ef3bbe6b6975b50013a951559f6beaa34ddd5b183ccb33500c585e3c094fc05";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/nn-NO/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/nn-NO/firefox-80.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha512 = "4cbef717a02fec48d29a9f0ed80c8db34fcee2ccd1f2cd6e0fbf0d2b0d36cb5101bbe794c59c8bdafe28c6286eb4c0fa28942c77b3d4a4c047a97bd66c41b7c0";
+      sha256 = "783427d27ef6be2bac3a219f72d61a6cc8b6105ec01c94476b06187d83fada90";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/oc/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/oc/firefox-80.0.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha512 = "5a1cf2f3b9200c0fc039ff7c961eb7fff97464f0259c4b6a5fbfecf54d7d333abdc8b052d3138278c87726769bf7b10f2bd4557493e6e666f96187386289c8b0";
+      sha256 = "f5a6af6e4d2bee9ea6c8e27edfe593640f0410766eec4a029c7b6641731cca58";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/pa-IN/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/pa-IN/firefox-80.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha512 = "355656300dfd9bef921e2123ffcc633d0562798b5ac692506c87204f2951f3800c03fc3e9e85c6dc9110644b17e40fe5058149b805255f43b1217b1cd71aacf0";
+      sha256 = "8d45fd730fcbf898062231356d11892eda44a2dc124444fc0623de363a807a73";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/pl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/pl/firefox-80.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha512 = "b677c207bad42145fac04efb40d9c48800ca0796536ece583d6588f612a3e7c1e5dfa8476e38795eac7362ee0cf4ff60e803bf4263bb6ef875337688d2f9897b";
+      sha256 = "9c89d3be668a295ef53d1dba84d1b9db230956d5700de6a86a6c8b0dffce5781";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/pt-BR/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/pt-BR/firefox-80.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha512 = "96e99c72d3131b7e920652a9adfa0794ed67932adfa9193796a8375e907a6c7817a21a2aa41f852e5c58897f41de8394c8e7e81462d74900fa45e2b3b5837d51";
+      sha256 = "8c591df0daa36ce3fd8380d34609cd1e1d26c8116db5bbe22828820c1f7f84aa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/pt-PT/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/pt-PT/firefox-80.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha512 = "2c119a0774f6ae8802a15ae24f2a1fae50da1d4a2f676e3fee7349745ffac497859aafdfca3d092dd3b2dae7f51307953337281ca3274a2746503161b93ff2d3";
+      sha256 = "e3ea46565734355a779e5b4b083c14e2f13d14f78f7347c36306fce57f4beb16";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/rm/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/rm/firefox-80.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha512 = "09c9669f36b03be27b4defde30cb3c20ea2790e18a05a2059bc79ecde006f019053cdf6c8f0eb2523de0c8d0fca3b2f0bd9cf02b8e2b6d9890ca3ecd51abe965";
+      sha256 = "c2355ccb07cd804aae65b31270e51d2d0a1ea438db44ab75c22aa57cb1bec71a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ro/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/ro/firefox-80.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha512 = "24b1b5587dafc81a45e6ed89db33cf0bdf054f14a4d7e883a4f779573d17fc04cde1065b22243d0e0827c73accdc0dd08619a56e8caa04986e7500a57916f95e";
+      sha256 = "e7b729a18283dabd9f295a436e97c3bd42eb6666e77c42ef1b967598d6e0ae37";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ru/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/ru/firefox-80.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha512 = "dbb9654c696ac29966551843b6c27d0867750565c21e84c9e71b6443bb5557847e109826ff550107bd56008e913c625e89ac60268f4cd140d2278a4eb82b1a67";
+      sha256 = "d9b2a3449ca0ed738db8bbd3f316a4973fa318c4abdb63aced9832419b579229";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/si/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/si/firefox-80.0.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha512 = "a47e67c9b3e6a33dcd0dc489e32d95f44345593fac2e678610045fe5408928e12445551011ae87d4e6e242f35c11ee0edad2b6955485394d1f55d3d4e8f68dd3";
+      sha256 = "8a43a0b25befbb5f0a9477086ae85d58b1d4c448e06630d1c0ece950d24bb6a5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/sk/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/sk/firefox-80.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha512 = "c73e183daea5adc333c04b0c473af3189c2d24f84ee352733b211925e62c02cdcd2125c4ccb12fa15b08a48bd0a690a06e39c364108ce47b834b321268cf5488";
+      sha256 = "40a4e4b307ebea63a13e8073536c1d039ee400b4eff109a4ed086c5f073c12bf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/sl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/sl/firefox-80.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha512 = "7f64f829c83b5483fd3a839aca41dbc0e3506576d633f8c6dfb9265a5bf783aeed537ca801fd07f8356b71aa47719e742b1bcf680f4a6d6c21469327bfa0b9b9";
+      sha256 = "19b163d77a8480099cc356f84c00d51c62cf97095ed2a3f2a16a654abcc0d413";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/son/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/son/firefox-80.0.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha512 = "fc8120011f886f996840420c07bd7502622f63a1b53b7d918c16ba1b60ed76a737bc6bd27532f03262671cbfc0f094e41422f5485b4c6854d78d4f95422141da";
+      sha256 = "0c9b0546846cde59fc550f2a94abb8e909f1955ff5790aacd3bfdf63a668a1d8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/sq/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/sq/firefox-80.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha512 = "9116b54651b0ed2caa04f7c9327cb1fb977242364ee17ea19e114d8fcfad03c08cc3706ab6e355f91ecc3d1f6232955db0668e5f7f290d191a051b214f06b779";
+      sha256 = "b153afd0d8efcb4563bf46df1f8d20408e179ecd94a4e294683eb5caa0141228";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/sr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/sr/firefox-80.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha512 = "ec0ac112222d35bf2345a91f448677ccc24f213710a1d5cda976c6ac15b8d3ca28bc32790f301103cfd3f2ae52ebfdf41464b6fb95df4b0f8535238b714649de";
+      sha256 = "36a3dbe8a9fec700ab91134344db6d70dfe96d53bfcf366ac83b29ba7f405a35";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/sv-SE/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/sv-SE/firefox-80.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha512 = "7e3a6c8da1143c3cf19e3f98542ed6b3e9dc1bab0667a2e64ab82c5f68f9623ed2196ed4378174998070e72a77bf00d5d9bc9d727b319d1c7699992a7bb67aef";
+      sha256 = "708b43a83fc88ddec15a87a0f753690048dcb7500aee2a52c59c28912de5f401";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ta/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/ta/firefox-80.0.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha512 = "5e3d653003fe036687bc55f4f5f0a2f1008ae58a196047654a1a067d88c7cf06b132207a3647ad5d3a707d85322d0d9eee21222c832daf67b9dc2895e6cf75ce";
+      sha256 = "e552b1ff45f4b904a7b76af41f44e9e349cf08f20981f44b95d7e89f727d3c12";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/te/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/te/firefox-80.0.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha512 = "2f42f73eb590ed605e1871d11217027abed2dfe0d2bdba2e9c29c6cbcc5c639b48e4bc26b8a6807c316dde23005e5e1010ebef4c4dfb385bf2e41a4710acf12e";
+      sha256 = "5ea5d027d0b6aacec730a865d8c70e8929c858b26a3ca0f798bb3a405e438aa6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/th/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/th/firefox-80.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha512 = "49f4f6d2f5dacf108debe915116905f5da4c65bed1c13d7f2a65b8b21b0734a34add68c6b56c340e90f6f82ba1f8cbcf9b7fb2546ce64e33c73e2a73e9b3bb17";
+      sha256 = "32e0e810308c3fdb52b247d086193f0dbf1184ee2f6ac42c2a25766f158ed79c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/tl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/tl/firefox-80.0.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha512 = "6e4368b4a0ebe0b296eae341563f8712567f08c7889b0600cd5c0ab881b1de1f5bf8e657b5ac497746fdfe087c8bed902014bb6daa0ce4c2d3712dda614b698e";
+      sha256 = "d64ff747faf81f626ff91c18f72f786669f48ca84f55df58a25ffeadc1683325";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/tr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/tr/firefox-80.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha512 = "fedfa95f6516d3685d73ec3997148eb0954a8ef6713e8cffc304080937a1962a26cf384a85e937a9394150d52fc9db14c3a85b8b483d18615759dd06bb04a558";
+      sha256 = "22cfc8b33829476e0a058900f5a606020b249225e15c3a78a5baa314ea39a5eb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/trs/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/trs/firefox-80.0.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha512 = "3b165460a7a34e5b2a059101a508a6353ca7f89c03c9eeb7b062e734c2cb1786b1cd2f9415cef7fd3ca2aceb72b4311b2b5da778f96b51f33aeb39cd7e69f1e4";
+      sha256 = "a7db4c7fc442156414d658b04cb531fe5b4f4ac7b46e3a62229bb7528b40a43d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/uk/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/uk/firefox-80.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha512 = "02c39e86a144dcb6ccffaf4a6c6620088409b8a098e3d2d92268d5b2dd7098c01b9a55878a9ebf1a91552b3f1be8dc86a6a8ff514e3988ffa51e581dfcf43b8b";
+      sha256 = "072b4d82b5a8c14764f3664ea5fd436aa616984e044e078002ef6c4ab3f5a804";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ur/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/ur/firefox-80.0.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha512 = "d244301b2ee17b78a1ab20cb7a8fe362b6ac86e0cdb9d811afc11c0637ad3fe1e1dffb721411f36960ecec011b7b691a12df1bef1d257c22ae45d345096b7166";
+      sha256 = "c52f5cb761b5d8f7c6c3646c3fc2a5c4580d5dcaa0d8757f3f37b990a1b61191";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/uz/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/uz/firefox-80.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha512 = "8fc3cf2b1eca9b229ada7ca632fd362e42bc1063ad1bc22df1f6781cf996d179dd8e8fa231e02ffb12dcdfccd6f6641735e0b4b28c6e2a1a9372d80c0dc8fd78";
+      sha256 = "4bc2ca5751a9d0cd69661799ab5ca6725bdc12055d07c975a6a7f90f44d93182";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/vi/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/vi/firefox-80.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha512 = "3676a6246a7fbd49a5779fb2b9ad3e14be809228e15bb19f81ca3b880ee5d584c4aba07d1a94ed2cdb6ec7549409d7738750422d06fa2415722d3424e948ab98";
+      sha256 = "1ce68d3b630754f961264558c424c0c9771d77f01858570ef0d15ed2098e99c8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/xh/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/xh/firefox-80.0.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha512 = "d4a8d251a4ad5603f301ad45f7eb3518066f06668a765d1583d067e0b89caa87f6699e1e06f67853527dd352b903c4b3a063d5ad7d19d297a040671a98aac2dc";
+      sha256 = "b7e4d8f55c8ff78491cf2e65510397f09b3b5995f7f7fd506c7e20027d330ee5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/zh-CN/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/zh-CN/firefox-80.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha512 = "2137ced68047439bfff22eaa7bccdeac3b0c30c7e71e3523c54f47a3127a8f0ecf6ff3a3ff789e05c5df525f3c3d32d616eb731f022fe063170d3c67e459b093";
+      sha256 = "3ab8f24ea6809b9a2b1cbecef55caa39dbf4ecd33b287b8ef77e5a76bb617337";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/zh-TW/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/80.0/linux-i686/zh-TW/firefox-80.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha512 = "23efdb7382ea3483784589fe0cfb9919630f34e5418734de9bd52ad9e91438a4d86f8760b1c4a4c127e1fe05de19ed24aedd0e21c2bdb32c5ab62183bc32fb18";
+      sha256 = "4c306d3227ca8dc322780c0eeb8532a62db101c6cde8317acfa824bdddea4d12";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/update.nix b/pkgs/applications/networking/browsers/firefox-bin/update.nix
index d6593be8890..03815a70332 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/update.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/update.nix
@@ -47,12 +47,13 @@ in writeScript "update-${name}" ''
            grep -e "${if isBeta then "b" else ""}\([[:digit:]]\|[[:digit:]][[:digit:]]\)$" | ${if isBeta then "" else "grep -v \"b\" |"} \
            tail -1`
 
-  curl --silent -o $HOME/shasums "$url$version/SHA512SUMS"
-  curl --silent -o $HOME/shasums.asc "$url$version/SHA512SUMS.asc"
+  curl --silent -o $HOME/shasums "$url$version/SHA256SUMS"
+  curl --silent -o $HOME/shasums.asc "$url$version/SHA256SUMS.asc"
   gpgv --keyring=$GNUPGHOME/pubring.kbx $HOME/shasums.asc $HOME/shasums
 
-  # this is a list of sha512 and tarballs for both arches
-  shasums=`cat $HOME/shasums`
+  # this is a list of sha256 and tarballs for both arches
+  # Upstream files contains python repr strings like b'somehash', hence the sed dance
+  shasums=`cat $HOME/shasums | sed -E s/"b'([a-f0-9]{64})'?(.*)"/'\1\2'/`
 
   cat > $tmpfile <<EOF
   {
@@ -74,7 +75,7 @@ in writeScript "update-${name}" ''
       { url = "$url$version/`echo $line | cut -d":" -f3`";
         locale = "`echo $line | cut -d":" -f3 | sed "s/$arch\///" | sed "s/\/.*//"`";
         arch = "$arch";
-        sha512 = "`echo $line | cut -d":" -f1`";
+        sha256 = "`echo $line | cut -d":" -f1`";
       }
   EOF
     done
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix
index 0eda0739eab..1f1831d3c91 100644
--- a/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/pkgs/applications/networking/browsers/firefox/common.nix
@@ -8,7 +8,7 @@
 , yasm, libGLU, libGL, sqlite, unzip, makeWrapper
 , hunspell, libXdamage, libevent, libstartup_notification
 , libvpx, libvpx_1_8
-, icu, libpng, jemalloc, glib
+, icu, icu67, libpng, jemalloc, glib
 , autoconf213, which, gnused, cargo, rustc, llvmPackages
 , rust-cbindgen, nodejs, nasm, fetchpatch
 , debugBuild ? false
@@ -51,7 +51,7 @@
 # https://github.com/NixOS/nixpkgs/issues/31843#issuecomment-346372756 we
 # have permission to use the official firefox branding.
 #
-# Fur purposes of documentation the statement of @sylvestre:
+# For purposes of documentation the statement of @sylvestre:
 # > As the person who did part of the work described in the LWN article
 # > and release manager working for Mozilla, I can confirm the statement
 # > that I made in
@@ -108,10 +108,10 @@ stdenv.mkDerivation ({
     dbus dbus-glib pango freetype fontconfig xorg.libXi xorg.libXcursor
     xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
     libnotify xorg.pixman yasm libGLU libGL
-    xorg.libXScrnSaver xorg.xorgproto
+    xorg.xorgproto
     xorg.libXext unzip makeWrapper
     libevent libstartup_notification /* cairo */
-    icu libpng jemalloc glib
+    libpng jemalloc glib
     nasm
     # >= 66 requires nasm for the AV1 lib dav1d
     # yasm can potentially be removed in future versions
@@ -119,8 +119,10 @@ stdenv.mkDerivation ({
     # https://groups.google.com/forum/#!msg/mozilla.dev.platform/o-8levmLU80/SM_zQvfzCQAJ
     nspr nss
   ]
-  ++ lib.optionals  (lib.versionOlder ffversion "75") [ libvpx sqlite ]
+  ++ lib.optionals (lib.versionOlder ffversion "75") [ libvpx sqlite ]
   ++ lib.optional  (lib.versionAtLeast ffversion "75.0") libvpx_1_8
+  ++ lib.optional  (lib.versionOlder ffversion "78") icu
+  ++ lib.optional  (lib.versionAtLeast ffversion "78.0") icu67
   ++ lib.optional  alsaSupport alsaLib
   ++ lib.optional  pulseaudioSupport libpulseaudio # only headers are needed
   ++ lib.optional  gtk3Support gtk3
@@ -139,6 +141,14 @@ stdenv.mkDerivation ({
 
   postPatch = ''
     rm -rf obj-x86_64-pc-linux-gnu
+  '' + lib.optionalString (lib.versionAtLeast ffversion "80") ''
+    substituteInPlace dom/system/IOUtils.h \
+      --replace '#include "nspr/prio.h"'          '#include "prio.h"'
+
+    substituteInPlace dom/system/IOUtils.cpp \
+      --replace '#include "nspr/prio.h"'          '#include "prio.h"' \
+      --replace '#include "nspr/private/pprio.h"' '#include "private/pprio.h"' \
+      --replace '#include "nspr/prtypes.h"'       '#include "prtypes.h"'
   '';
 
   nativeBuildInputs =
@@ -175,9 +185,10 @@ stdenv.mkDerivation ({
     # included we need to look in a few places.
     # TODO: generalize this process for other use-cases.
 
-    BINDGEN_CFLAGS="$(< ${stdenv.cc}/nix-support/libc-cflags) \
+    BINDGEN_CFLAGS="$(< ${stdenv.cc}/nix-support/libc-crt1-cflags) \
+      $(< ${stdenv.cc}/nix-support/libc-cflags) \
       $(< ${stdenv.cc}/nix-support/cc-cflags) \
-      ${stdenv.cc.default_cxx_stdlib_compile} \
+      $(< ${stdenv.cc}/nix-support/libcxx-cxxflags) \
       ${lib.optionalString stdenv.cc.isClang "-idirafter ${stdenv.cc.cc}/lib/clang/${lib.getVersion stdenv.cc.cc}/include"} \
       ${lib.optionalString stdenv.cc.isGNU "-isystem ${stdenv.cc.cc}/include/c++/${lib.getVersion stdenv.cc.cc} -isystem ${stdenv.cc.cc}/include/c++/${lib.getVersion stdenv.cc.cc}/${stdenv.hostPlatform.config}"} \
       $NIX_CFLAGS_COMPILE"
@@ -200,7 +211,6 @@ stdenv.mkDerivation ({
     "--enable-application=browser"
     "--with-system-jpeg"
     "--with-system-zlib"
-    "--with-system-bz2"
     "--with-system-libevent"
     "--with-system-libvpx"
     "--with-system-png" # needs APNG support
@@ -208,19 +218,21 @@ stdenv.mkDerivation ({
     "--enable-system-ffi"
     "--enable-system-pixman"
     #"--enable-system-cairo"
-    "--enable-startup-notification"
-    #"--enable-content-sandbox" # TODO: probably enable after 54
     "--disable-tests"
     "--disable-necko-wifi" # maybe we want to enable this at some point
     "--disable-updater"
     "--enable-jemalloc"
-    "--disable-gconf"
     "--enable-default-toolkit=${default-toolkit}"
     "--with-libclang-path=${llvmPackages.libclang}/lib"
     "--with-clang-path=${llvmPackages.clang}/bin/clang"
     "--with-system-nspr"
     "--with-system-nss"
   ]
+  ++ lib.optionals (lib.versionOlder ffversion "78") [
+    "--with-system-bz2"
+    "--enable-startup-notification"
+    "--disable-gconf"
+  ]
   ++ lib.optional (lib.versionOlder ffversion "75") "--enable-system-sqlite"
   ++ lib.optional (stdenv.isDarwin) "--disable-xcode-checks"
   ++ lib.optionals (lib.versionOlder ffversion "69") [
@@ -273,6 +285,7 @@ stdenv.mkDerivation ({
     patchelf --set-rpath "${lib.getLib libnotify
       }/lib:$(patchelf --print-rpath "$out"/lib/${binaryName}*/libxul.so)" \
         "$out"/lib/${binaryName}*/libxul.so
+    patchelf --add-needed ${xorg.libXScrnSaver.out}/lib/libXss.so $out/lib/${binaryName}/${binaryName}
   '';
 
   doInstallCheck = true;
diff --git a/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx65.patch b/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx65.patch
index 7d129dc78f9..1380c7dc9a2 100644
--- a/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx65.patch
+++ b/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx65.patch
@@ -1,3 +1,4 @@
+Remove about:buildconfig.  If used as-is, it would add unnecessary runtime dependencies.
 diff -ur firefox-65.0-orig/docshell/base/nsAboutRedirector.cpp firefox-65.0/docshell/base/nsAboutRedirector.cpp
 --- firefox-65.0-orig/docshell/base/nsAboutRedirector.cpp       2019-01-23 00:48:28.988747428 +0100
 +++ firefox-65.0/docshell/base/nsAboutRedirector.cpp    2019-01-23 00:51:13.378188397 +0100
diff --git a/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch b/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch
index 2fe30980a35..3530954ea5c 100644
--- a/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch
+++ b/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch
@@ -1,3 +1,4 @@
+Remove about:buildconfig.  If used as-is, it would add unnecessary runtime dependencies.
 diff -ur firefox-65.0-orig/docshell/base/nsAboutRedirector.cpp firefox-65.0/docshell/base/nsAboutRedirector.cpp
 --- firefox-76.0.orig/docshell/base/nsAboutRedirector.cpp       2020-05-03 19:01:29.926544735 +0200
 +++ firefox-76.0/docshell/base/nsAboutRedirector.cpp    2020-05-03 19:12:00.845035570 +0200
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index f0ca1c7cd15..37b36e5e629 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -1,4 +1,4 @@
-{ config, stdenv, lib, callPackage, fetchurl }:
+{ config, stdenv, lib, callPackage, fetchurl, nss_3_44 }:
 
 let
   common = opts: callPackage (import ./common.nix opts) {};
@@ -7,10 +7,10 @@ in
 rec {
   firefox = common rec {
     pname = "firefox";
-    ffversion = "77.0.1";
+    ffversion = "80.0.1";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
-      sha512 = "ngLihC0YuclLJEV3iPEX+tRzDKIdBe+CCOuFxvWNo7DnX8royOvTj2m4YyWyZoTQ5UCbPTQYmP4otgfovZSe8g==";
+      sha512 = "081sf41r7ickjij3kfrdq29a0d6wz7qv8950kx116kakh8qxgjy8ahk2mfwlcp6digrl4mimi8rl7ns1wjngsmrjh4lvqzh1xglx9cp";
     };
 
     patches = [
@@ -33,12 +33,40 @@ rec {
     };
   };
 
-  firefox-esr-68 = common rec {
+  firefox-esr-78 = common rec {
     pname = "firefox-esr";
-    ffversion = "68.9.0esr";
+    ffversion = "78.2.0esr";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
-      sha512 = "mEMYANgPfGgK757t4p34IXgQkSoxmn9/jC5jfEPs1PTikiOkF6+ypjFegl+XlFP/bmtaV1ZJq6XMY85ZVjdbuA==";
+      sha512 = "1dnvr9nyvnv5dkpnjnadff38lf9r7g37gk401c1i22d661ib5xj0gm2rnz1rjyrkvzrnr6p9f7liy3i41varja00g0x1racccj1my9q";
+    };
+
+    patches = [
+      ./no-buildconfig-ffx76.patch
+    ];
+
+    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 andir ];
+      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".
+                                             # not in `badPlatforms` because cross-compilation on 64-bit machine might work.
+      license = lib.licenses.mpl20;
+    };
+    updateScript = callPackage ./update.nix {
+      attrPath = "firefox-esr-78-unwrapped";
+      versionKey = "ffversion";
+    };
+  };
+
+  firefox-esr-68 = (common rec {
+    pname = "firefox-esr";
+    ffversion = "68.12.0esr";
+    src = fetchurl {
+      url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
+      sha512 = "169y4prlb4mi31jciz89kp35rpb1p2gxrk93qkwfzdk4imi9hk8mi2yvxknpr0rni3bn2x0zgrrc6ccr8swv5895sqvv1sc5r1056w3";
     };
 
     patches = [
@@ -53,24 +81,11 @@ rec {
       versionSuffix = "esr";
       versionKey = "ffversion";
     };
+  }).override {
+    # Mozilla unfortunately doesn't support building with latest NSS anymore;
+    # instead they provide ESR releases for NSS:
+    # https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases
+    nss = nss_3_44;
   };
-} // lib.optionalAttrs (config.allowAliases or true) {
-  #### ALIASES
-  #### remove after 20.03 branchoff
-
-  firefox-esr-52 = throw ''
-    firefoxPackages.firefox-esr-52 was removed as it's an unsupported ESR with
-    open security issues. If you need it because you need to run some plugins
-    not having been ported to WebExtensions API, import it from an older
-    nixpkgs checkout still containing it.
-  '';
-  firefox-esr-60 = throw "firefoxPackages.firefox-esr-60 was removed as it's an unsupported ESR with open security issues.";
-
-  icecat = throw "firefoxPackages.icecat was removed as even its latest upstream version is based on an unsupported ESR release with open security issues.";
-  icecat-52 = throw "firefoxPackages.icecat was removed as even its latest upstream version is based on an unsupported ESR release with open security issues.";
-
-  tor-browser-7-5 = throw "firefoxPackages.tor-browser-7-5 was removed because it was out of date and inadequately maintained. Please use tor-browser-bundle-bin instead. See #77452.";
-  tor-browser-8-5 = throw "firefoxPackages.tor-browser-8-5 was removed because it was out of date and inadequately maintained. Please use tor-browser-bundle-bin instead. See #77452.";
-  tor-browser = throw "firefoxPackages.tor-browser was removed because it was out of date and inadequately maintained. Please use tor-browser-bundle-bin instead. See #77452.";
 
 }
diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix
index 9e7e4bc5efa..424c45d305e 100644
--- a/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -10,6 +10,7 @@
 , udev
 , kerberos
 , libva
+, mesa # firefox wants gbm for drm+dmabuf
 }:
 
 ## configurability of the wrapper itself
@@ -26,11 +27,13 @@ let
     , nameSuffix ? ""
     , icon ? browserName
     , extraNativeMessagingHosts ? []
-    , gdkWayland ? false
+    , pkcs11Modules ? []
+    , forceWayland ? false
+    , useGlvnd ? true
     , cfg ? config.${browserName} or {}
     }:
 
-    assert gdkWayland -> (browser ? gtk3); # Can only use the wayland backend if gtk3 is being used
+    assert forceWayland -> (browser ? gtk3); # Can only use the wayland backend if gtk3 is being used
 
     let
       enableAdobeFlash = cfg.enableAdobeFlash or false;
@@ -65,14 +68,15 @@ let
           ++ lib.optional (cfg.enableFXCastBridge or false) fx_cast_bridge
           ++ extraNativeMessagingHosts
         );
-      libs =   lib.optionals stdenv.isLinux [ udev libva ]
+      libs =   lib.optionals stdenv.isLinux [ udev libva mesa ]
             ++ lib.optional ffmpegSupport ffmpeg
             ++ lib.optional gssSupport kerberos
-            ++ lib.optional gdkWayland libglvnd
+            ++ lib.optional useGlvnd libglvnd
             ++ lib.optionals (cfg.enableQuakeLive or false)
             (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ])
             ++ lib.optional (enableAdobeFlash && (cfg.enableAdobeFlashDRM or false)) hal-flash
-            ++ lib.optional (config.pulseaudio or true) libpulseaudio;
+            ++ lib.optional (config.pulseaudio or true) libpulseaudio
+            ++ pkcs11Modules;
       gtk_modules = [ libcanberra-gtk2 ];
 
     in stdenv.mkDerivation {
@@ -83,7 +87,7 @@ let
         exec = "${browserName}${nameSuffix} %U";
         inherit icon;
         comment = "";
-        desktopName = "${desktopName}${nameSuffix}${lib.optionalString gdkWayland " (Wayland)"}";
+        desktopName = "${desktopName}${nameSuffix}${lib.optionalString forceWayland " (Wayland)"}";
         genericName = "Web Browser";
         categories = "Network;WebBrowser;";
         mimeType = stdenv.lib.concatStringsSep ";" [
@@ -124,8 +128,8 @@ let
             --set SNAP_NAME "firefox" \
             --set MOZ_LEGACY_PROFILES 1 \
             --set MOZ_ALLOW_DOWNGRADE 1 \
-            ${lib.optionalString gdkWayland ''
-              --set GDK_BACKEND "wayland" \
+            ${lib.optionalString forceWayland ''
+              --set MOZ_ENABLE_WAYLAND "1" \
             ''}${lib.optionalString (browser ? gtk3)
                 ''--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
                   --suffix XDG_DATA_DIRS : '${gnome3.adwaita-icon-theme}/share'
@@ -152,6 +156,11 @@ let
             ln -sLt $out/lib/mozilla/native-messaging-hosts $ext/lib/mozilla/native-messaging-hosts/*
         done
 
+        mkdir -p $out/lib/mozilla/pkcs11-modules
+        for ext in ${toString pkcs11Modules}; do
+            ln -sLt $out/lib/mozilla/pkcs11-modules $ext/lib/mozilla/pkcs11-modules/*
+        done
+
         # For manpages, in case the program supplies them
         mkdir -p $out/nix-support
         echo ${browser} > $out/nix-support/propagated-user-env-packages
diff --git a/pkgs/applications/networking/browsers/google-chrome/default.nix b/pkgs/applications/networking/browsers/google-chrome/default.nix
index fb30bbfd2b6..4d985e33e6b 100644
--- a/pkgs/applications/networking/browsers/google-chrome/default.nix
+++ b/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -72,7 +72,7 @@ in stdenv.mkDerivation {
 
   name = "google-chrome${suffix}-${version}";
 
-  src = chromium.upstream-info.binary;
+  src = chromium.chromeSrc;
 
   nativeBuildInputs = [ patchelf makeWrapper ];
   buildInputs = [
@@ -105,6 +105,12 @@ in stdenv.mkDerivation {
     cp -a opt/* $out/share
     cp -a usr/share/* $out/share
 
+    # To fix --use-gl=egl:
+    test -e $out/share/google/$appname/libEGL.so
+    ln -s libEGL.so $out/share/google/$appname/libEGL.so.1
+    test -e $out/share/google/$appname/libGLESv2.so
+    ln -s libGLESv2.so $out/share/google/$appname/libGLESv2.so.2
+
     substituteInPlace $out/share/applications/google-$appname.desktop \
       --replace /usr/bin/google-chrome-$dist $exe
     substituteInPlace $out/share/gnome-control-center/default-apps/google-$appname.xml \
@@ -113,9 +119,13 @@ in stdenv.mkDerivation {
       --replace /opt $out/share \
       --replace $out/share/google/$appname/google-$appname $exe
 
-    for icon_file in $out/share/google/chrome*/product_logo_*[0-9].png; do
+    for icon_file in $out/share/google/chrome*/product_logo_[0-9]*.png; do
       num_and_suffix="''${icon_file##*logo_}"
-      icon_size="''${num_and_suffix%.*}"
+      if [ $dist = "stable" ]; then
+        icon_size="''${num_and_suffix%.*}"
+      else
+        icon_size="''${num_and_suffix%_*}"
+      fi
       logo_output_prefix="$out/share/icons/hicolor"
       logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps"
       mkdir -p "$logo_output_path"
diff --git a/pkgs/applications/networking/browsers/links2/default.nix b/pkgs/applications/networking/browsers/links2/default.nix
index 0312c3b6895..0db521f8ef5 100644
--- a/pkgs/applications/networking/browsers/links2/default.nix
+++ b/pkgs/applications/networking/browsers/links2/default.nix
@@ -8,12 +8,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.20.2";
+  version = "2.21";
   pname = "links2";
 
   src = fetchurl {
     url = "${meta.homepage}/download/links-${version}.tar.bz2";
-    sha256 = "097ll98ympzfx7qfdyhc52yzvsp167x5nnjs6v8ih496wv80fksb";
+    sha256 = "0qqdcghsdqm7l6kyi0k752ws3ak5crw85pqkcb11wy67j62yspi8";
   };
 
   buildInputs = with stdenv.lib;
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
index e967578a7ce..bec18edea37 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
@@ -74,7 +74,7 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "flashplayer";
-  version = "32.0.0.387";
+  version = "32.0.0.414";
 
   src = fetchurl {
     url =
@@ -85,14 +85,14 @@ stdenv.mkDerivation rec {
     sha256 =
       if debug then
         if arch == "x86_64" then
-          "1wmk60lnlrj9f8dvk4b6j7pqyl00w00qbzbdw4awzx91wmgfc4x0"
+          "184qy9zxk9ynp6avz1j0ca5mxqqqlhrc0m7d1cjxv39jfdiyz51i"
         else
-          "1afjxhi5jzn8zbkva940i9fayzxj1r3n6rqsiny02fpnv0waypfy"
+          "1m8fay452zps5yw1qpsc6irxxdvqjhkwxg066ckxkjf68gln7cmn"
       else
         if arch == "x86_64" then
-          "0si8rx955kyfsprk5465hfzafxvrdm7g686q7p5xykmh88nck6k2"
+          "0ng04yig7msq4mv01ngfsh7mkxia18j3k9clnp0y0sbpr60z8s83"
         else
-          "02pw2knvgdkahyp7lmy7fmynmplaz5wswdz48h3sdj6ibr066h97";
+          "0fndnhznqz28wfmm32fafx30pi517vvkxy1isp4krsfvyl7fmzhn";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
index 9d7d6eeeee8..7a5c676ccb0 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
@@ -50,7 +50,7 @@
 
 stdenv.mkDerivation {
   pname = "flashplayer-standalone";
-  version = "32.0.0.387";
+  version = "32.0.0.414";
 
   src = fetchurl {
     url =
@@ -60,9 +60,9 @@ stdenv.mkDerivation {
         "https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz";
     sha256 =
       if debug then
-        "1yxdwmm2gz162rmc9hwlccqgq613gnrihjicnzgan4vk7hjlga5y"
+        "1sfvxi0ngk1ny912hw1zp0l3v6md6qqpvnyab3h45562m2fm6vqz"
       else
-        "0hm5is3giz45a4v9m77q0i1dgyhpqqkagpjndbnynsnl9a61r0ly";
+        "0pxb3fhwvajvb28w11iylx5rp0h1f4s2aiii53gz28sq082w9br4";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix
index 686ffee9148..eefe7af26a1 100644
--- a/pkgs/applications/networking/browsers/opera/default.nix
+++ b/pkgs/applications/networking/browsers/opera/default.nix
@@ -47,11 +47,11 @@ let
 in stdenv.mkDerivation rec {
 
   pname = "opera";
-  version = "67.0.3575.31";
+  version = "68.0.3618.63";
 
   src = fetchurl {
     url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb";
-    sha256 = "1ghygin7xf5lwd77s8f6bag339di4alwlkqwjzlq20wzwx4lns4w";
+    sha256 = "1643043ywz94x2yr7xyw7krfq53iwkr8qxlbydzq6zb2zina7jxd";
   };
 
   unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
@@ -104,7 +104,7 @@ in stdenv.mkDerivation rec {
     # This is a little tricky. Without it the app starts then crashes. Then it
     # brings up the crash report, which also crashes. `strace -f` hints at a
     # missing libudev.so.0.
-    systemd.lib
+    (lib.getLib systemd)
   ];
 
   installPhase = ''
diff --git a/pkgs/applications/networking/browsers/palemoon/default.nix b/pkgs/applications/networking/browsers/palemoon/default.nix
index 911030dee53..c59d23ecdba 100644
--- a/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchgit, makeDesktopItem
+{ stdenv, lib, fetchFromGitHub, writeScript, desktop-file-utils
 , pkgconfig, autoconf213, alsaLib, bzip2, cairo
 , dbus, dbus-glib, ffmpeg_3, file, fontconfig, freetype
 , gnome2, gnum4, gtk2, hunspell, libevent, libjpeg
@@ -16,35 +16,33 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "palemoon";
-  version = "28.10.0";
+  version = "28.12.0";
 
-  src = fetchgit {
-    url = "https://github.com/MoonchildProductions/Pale-Moon.git";
+  src = fetchFromGitHub {
+    owner = "MoonchildProductions";
+    repo = "Pale-Moon";
     rev = "${version}_Release";
-    sha256 = "0c64vmrp46sbl1dgl9dq2vkmpgz9gvgd59dk02jqwyhx4lln1g2l";
+    sha256 = "1cc75972nhmxkkynkky1m2fijbf3qlzvpxsd98mxlx0b7h4d3l5l";
     fetchSubmodules = true;
   };
 
-  desktopItem = makeDesktopItem {
-    name = "palemoon";
-    exec = "palemoon %U";
-    icon = "palemoon";
-    desktopName = "Pale Moon";
-    genericName = "Web Browser";
-    categories = "Network;WebBrowser;";
-    mimeType = lib.concatStringsSep ";" [
-      "text/html"
-      "text/xml"
-      "application/xhtml+xml"
-      "application/vnd.mozilla.xul+xml"
-      "x-scheme-handler/http"
-      "x-scheme-handler/https"
-      "x-scheme-handler/ftp"
-    ];
-  };
+  passthru.updateScript = writeScript "update-${pname}" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p common-updater-scripts curl libxml2
+
+    set -eu -o pipefail
+
+    # Only release note announcement == finalized release
+    version="$(
+      curl -s 'http://www.palemoon.org/releasenotes.shtml' |
+      xmllint --html --xpath 'html/body/table/tbody/tr/td/h3/text()' - 2>/dev/null | head -n1 |
+      sed 's/v\(\S*\).*/\1/'
+    )"
+    update-source-version ${pname} "$version"
+  '';
 
   nativeBuildInputs = [
-    file gnum4 makeWrapper perl pkgconfig python2 wget which
+    desktop-file-utils file gnum4 makeWrapper perl pkgconfig python2 wget which
   ];
 
   buildInputs = [
@@ -106,7 +104,7 @@ in stdenv.mkDerivation rec {
 
     ac_add_options --prefix=$out
 
-    mk_add_options MOZ_MAKE_FLAGS="-j$NIX_BUILD_CORES"
+    mk_add_options MOZ_MAKE_FLAGS="-j${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"}"
     mk_add_options AUTOCONF=${autoconf213}/bin/autoconf
     '
   '';
@@ -116,14 +114,13 @@ in stdenv.mkDerivation rec {
   installPhase = ''
     $src/mach install
 
-    mkdir -p $out/share/applications
-    cp ${desktopItem}/share/applications/* $out/share/applications
+    desktop-file-install --dir=$out/share/applications \
+      $src/palemoon/branding/official/palemoon.desktop
 
-    for n in 16 22 24 32 48 256; do
+    for iconname in default{16,22,24,32,48,256} mozicon128; do
+      n=''${iconname//[^0-9]/}
       size=$n"x"$n
-      mkdir -p $out/share/icons/hicolor/$size/apps
-      cp $src/palemoon/branding/official/default$n.png \
-         $out/share/icons/hicolor/$size/apps/palemoon.png
+      install -Dm644 $src/palemoon/branding/official/$iconname.png $out/share/icons/hicolor/$size/apps/palemoon.png
     done
 
     wrapProgram $out/lib/palemoon-${version}/palemoon \
diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix
index 6256f4039b8..0e3e7205e1f 100644
--- a/pkgs/applications/networking/browsers/qutebrowser/default.nix
+++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -2,31 +2,40 @@
 , mkDerivationWith, wrapQtAppsHook, wrapGAppsHook, qtbase, glib-networking
 , asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2
 , libxslt, gst_all_1 ? null
-, withPdfReader        ? true
-, withMediaPlayback    ? true
+, withPdfReader      ? true
+, withMediaPlayback  ? true
+, backend            ? "webengine"
 }:
 
 assert withMediaPlayback -> gst_all_1 != null;
 
 let
   pdfjs = let
-    version = "2.3.200";
+    version = "2.4.456";
   in
   fetchzip rec {
     name = "pdfjs-${version}";
     url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/${name}-dist.zip";
-    sha256 = "1fpxsw0hzahccyng08acvc7g0gk29j2x701p6w6fg1718mvcrm1q";
+    sha256 = "02hpy96pi06gdq2s7n56ycm34d6d3gf8ly22y366np5vpwmc29rx";
     stripRoot = false;
   };
 
+  backendPackage =
+   if backend == "webengine" then python3Packages.pyqtwebengine else
+   if backend == "webkit"    then python3Packages.pyqt5_with_qtwebkit else
+   throw ''
+     Unknown qutebrowser backend "${backend}".
+     Valid choices are qtwebengine (recommended) or qtwebkit.
+   '';
+
 in mkDerivationWith python3Packages.buildPythonApplication rec {
   pname = "qutebrowser";
-  version = "1.13.0";
+  version = "1.13.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 = "1xq0a0mcssc1ss4fvhhwr75dhlh3nr9w46i2gmqczzh5cynk1sfk";
+    sha256 = "1n72dvrv4dch4i07lsis76p7g16a039fwx8rk7w8q9f60wgqb5i8";
   };
 
   # Needs tox
@@ -46,22 +55,20 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
   ];
 
   propagatedBuildInputs = with python3Packages; [
-    pyyaml pyqt5 pyqtwebengine jinja2 pygments
+    pyyaml backendPackage jinja2 pygments
     pypeg2 cssutils pyopengl attrs setuptools
     # scripts and userscripts libs
     tldextract beautifulsoup4
     pyreadability pykeepass stem
   ];
 
-  patches = [
-    ./fix-restart.patch
-  ];
+  patches = [ ./fix-restart.patch ];
 
   dontWrapGApps = true;
   dontWrapQtApps = true;
 
   postPatch = ''
-    substituteInPlace qutebrowser/app.py --subst-var-by qutebrowser "$out/bin/qutebrowser"
+    substituteInPlace qutebrowser/misc/quitter.py --subst-var-by qutebrowser "$out/bin/qutebrowser"
 
     sed -i "s,/usr/share/,$out/share/,g" qutebrowser/utils/standarddir.py
   '' + lib.optionalString withPdfReader ''
@@ -101,7 +108,8 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
   postFixup = ''
     wrapProgram $out/bin/qutebrowser \
       "''${gappsWrapperArgs[@]}" \
-      "''${qtWrapperArgs[@]}"
+      "''${qtWrapperArgs[@]}" \
+      --add-flags '--backend ${backend}'
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch b/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch
index d54a37fe71f..828fa5e107c 100644
--- a/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch
+++ b/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch
@@ -1,4 +1,4 @@
-diff --git a/quitter.py b/quitterb.py
+diff --git a/quitter.py b/quitter.py
 index a42b9d0..f544ccb 100644
 --- a/qutebrowser/misc/quitter.py
 +++ b/qutebrowser/misc/quitter.py
diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index 1b4fa5ef595..ab528a2c1cb 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -46,7 +46,8 @@
 
 # Hardening
 , graphene-hardened-malloc
-, useHardenedMalloc ? graphene-hardened-malloc != null && builtins.elem stdenv.system graphene-hardened-malloc.meta.platforms
+# crashes with intel driver
+, useHardenedMalloc ? false
 
 # Whether to disable multiprocess support to work around crashing tabs
 # TODO: fix the underlying problem instead of this terrible work-around
@@ -90,19 +91,19 @@ let
   fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
 
   # Upstream source
-  version = "9.5";
+  version = "9.5.4";
 
   lang = "en-US";
 
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
-      sha256 = "0l4fz2zkgwv2qniia4nv53a4pd79hfbgb66jn68r44diails1z08";
+      sha256 = "sha256-XW2B2wTgqMU2w9XhPJNcUjGLrHykQIngMcG/fFTWb04=";
     };
 
     i686-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz";
-      sha256 = "1h4awhyaiws68s727pq9r32xqg2878dl2df4kbc2nmllwrl2fxq3";
+      sha256 = "sha256-EyDyAxB5Og1Cn04tuBF9ob8BxqULy2Ur07BuDxZlmqQ=";
     };
   };
 in
@@ -403,7 +404,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.torproject.org/";
     changelog = "https://gitweb.torproject.org/builders/tor-browser-build.git/plain/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt?h=maint-${version}";
     platforms = attrNames srcs;
-    maintainers = with maintainers; [ offline matejc doublec thoughtpolice joachifm hax404 cap ];
+    maintainers = with maintainers; [ offline matejc doublec thoughtpolice joachifm hax404 cap KarlJoad ];
     hydraPlatforms = [];
     # MPL2.0+, GPL+, &c.  While it's not entirely clear whether
     # the compound is "libre" in a strict sense (some components place certain
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix
index a5bea6cf34a..f9a2693f243 100644
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix
@@ -1,10 +1,10 @@
-{ stdenv, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, gnutar
+{ stdenv, lib, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, gnutar
 
 # default dependencies
 , bzip2, flac, speex, libopus
 , libevent, expat, libjpeg, snappy
 , libpng, libcap
-, xdg_utils, yasm, minizip, libwebp
+, xdg_utils, yasm, nasm, minizip, libwebp
 , libusb1, pciutils, nss, re2, zlib
 
 , python2Packages, perl, pkgconfig
@@ -13,10 +13,12 @@
 , bison, gperf
 , glib, gtk3, dbus-glib
 , glibc
+, xorg
 , libXScrnSaver, libXcursor, libXtst, libGLU, libGL
 , protobuf, speechd, libXdamage, cups
 , ffmpeg_3, libxslt, libxml2, at-spi2-core
 , jre
+, pipewire_0_2
 
 # optional dependencies
 , libgcrypt ? null # gnomeSupport || cupsSupport
@@ -74,7 +76,7 @@ let
     in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs));
 
   gnSystemLibraries = [
-    "flac" "libwebp" "libxslt" "yasm" "opus" "snappy" "libpng"
+    "flac" "libwebp" "libxslt" "opus" "snappy" "libpng"
     # "zlib" # version 77 reports unresolved dependency on //third_party/zlib:zlib_config
     # "libjpeg" # fails with multiple undefined references to chromium_jpeg_*
     # "re2" # fails with linker errors
@@ -91,9 +93,10 @@ let
     bzip2 flac speex opusWithCustomModes
     libevent expat libjpeg snappy
     libpng libcap
-    xdg_utils yasm minizip libwebp
+    xdg_utils minizip libwebp
     libusb1 re2 zlib
     ffmpeg_3 libxslt libxml2
+    nasm
     # harfbuzz # in versions over 63 harfbuzz and freetype are being built together
                # so we can't build with one from system and other from source
   ];
@@ -128,8 +131,9 @@ let
     nativeBuildInputs = [
       ninja which python2Packages.python perl pkgconfig
       python2Packages.ply python2Packages.jinja2 nodejs
-      gnutar
-    ] ++ optional (versionAtLeast version "83") python2Packages.setuptools;
+      gnutar python2Packages.setuptools
+      (xorg.xcbproto.override { python = python2Packages.python; })
+    ];
 
     buildInputs = defaultDependencies ++ [
       nspr nss systemd
@@ -139,6 +143,7 @@ let
       libXScrnSaver libXcursor libXtst libGLU libGL
       pciutils protobuf speechd libXdamage at-spi2-core
       jre
+      pipewire_0_2
     ] ++ optional useVaapi libva
       ++ optional gnomeKeyringSupport libgnome-keyring3
       ++ optionals gnomeSupport [ gnome.GConf libgcrypt ]
@@ -161,13 +166,10 @@ let
       #
       # ++ optionals (channel == "dev") [ ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" ) ]
       # ++ optional (versionRange "68" "72") ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" )
-    ] ++ optionals (useVaapi) ([ # Fixes for the VA-API build:
+    ] ++ optionals (useVaapi) [ # Improvements for the VA-API build:
       ./patches/enable-vdpau-support-for-nvidia.patch # https://aur.archlinux.org/cgit/aur.git/tree/vdpau-support.patch?h=chromium-vaapi
       ./patches/enable-video-acceleration-on-linux.patch # Can be controlled at runtime (i.e. without rebuilding Chromium)
-    ] ++ optionals (versionRange "81" "82") [
-      (githubPatch "5b2ff215473e0526b5b24aeff4ad90d369b21c75" "0n00vh8wfpn2ay5fqsxcsx0zadnv7mihm72bcvnrfzh75nzbg902")
-      (githubPatch "98e343ab369e4262511b5fce547728e3e5eefba8" "00wwp653jk0k0yvix00vr7ymgck9dj7fxjwx4nc67ynn84dh6064")
-    ]);
+    ];
 
     postPatch = ''
       # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
@@ -187,10 +189,15 @@ let
           '/usr/share/locale/' \
           '${glibc}/share/locale/'
 
+      substituteInPlace ui/gfx/x/BUILD.gn \
+        --replace \
+          '/usr/share/xcb' \
+          '${xorg.xcbproto}/share/xcb/'
+
       sed -i -e 's@"\(#!\)\?.*xdg-@"\1${xdg_utils}/bin/xdg-@' \
         chrome/browser/shell_integration_linux.cc
 
-      sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${systemd.lib}/lib/\1!' \
+      sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \
         device/udev_linux/udev?_loader.cc
 
       sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
@@ -239,7 +246,6 @@ let
     '';
 
     gnFlags = mkGnFlags ({
-      linux_use_bundled_binutils = false;
       use_lld = false;
       use_gold = true;
       gold_path = "${stdenv.cc}/bin";
@@ -257,6 +263,8 @@ let
       # added later in the wrapped -wv build or downloaded from Google.
       enable_widevine = true;
       use_cups = cupsSupport;
+      # Provides the enable-webrtc-pipewire-capturer flag to support Wayland screen capture.
+      rtc_use_pipewire = true;
 
       treat_warnings_as_errors = false;
       is_clang = stdenv.cc.isClang;
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix
index 9d6c7fada70..9051fc55feb 100644
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix
@@ -1,8 +1,9 @@
 { newScope, config, stdenv, llvmPackages_9, llvmPackages_10
-, makeWrapper, ed
+, makeWrapper, ed, gnugrep
 , glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit
 , libva ? null
-, gcc, nspr, nss, patchelfUnstable, runCommand
+, pipewire_0_2
+, gcc, nspr, nss, runCommand
 , lib
 
 # package customization
@@ -23,9 +24,7 @@
 }:
 
 let
-  llvmPackages = if channel != "stable"
-    then llvmPackages_10
-    else llvmPackages_9;
+  llvmPackages = llvmPackages_10;
   stdenv = llvmPackages.stdenv;
 
   callPackage = newScope chromium;
@@ -38,8 +37,6 @@ let
     mkChromiumDerivation = callPackage ./common.nix ({
       inherit gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport useOzone;
       inherit ungoogled;
-      gnChromium = gn;
-    } // lib.optionalAttrs (channel != "stable") {
       # TODO: Remove after we can update gn for the stable channel (backward incompatible changes):
       gnChromium = gn.overrideAttrs (oldAttrs: {
         version = "2020-03-23";
@@ -49,6 +46,15 @@ let
           sha256 = "00y2d35wvqmx9glaqhfb62wdgbfpwr77v0934nnvh9ks71vnsjqy";
         };
       });
+    } // lib.optionalAttrs (channel == "dev") {
+      gnChromium = gn.overrideAttrs (oldAttrs: {
+        version = "2020-05-19";
+        src = fetchgit {
+          url = "https://gn.googlesource.com/gn";
+          rev = "d0a6f072070988e7b038496c4e7d6c562b649732";
+          sha256 = "0197msabskgfbxvhzq73gc3wlr3n9cr4bzrhy5z5irbvy05lxk17";
+        };
+      });
     });
 
     browser = callPackage ./browser.nix { inherit channel enableWideVine; };
@@ -67,8 +73,6 @@ let
     # The .deb file for Google Chrome
     src = upstream-info.binary;
 
-    nativeBuildInputs = [ patchelfUnstable ];
-
     phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
 
     unpackCmd = let
@@ -142,7 +146,7 @@ let
       (!enableVaapi)
       "--add-flags --disable-accelerated-video-decode --add-flags --disable-accelerated-video-encode";
 in stdenv.mkDerivation {
-  name = "chromium${suffix}-${version}";
+  name = "ungoogled-chromium${suffix}-${version}";
   inherit version;
 
   buildInputs = [
@@ -160,7 +164,7 @@ in stdenv.mkDerivation {
   buildCommand = let
     browserBinary = "${chromiumWV}/libexec/chromium/chromium";
     getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")";
-    libPath = stdenv.lib.makeLibraryPath [ libva ];
+    libPath = stdenv.lib.makeLibraryPath [ libva pipewire_0_2 ];
 
   in with stdenv.lib; ''
     mkdir -p "$out/bin"
@@ -187,7 +191,7 @@ in stdenv.mkDerivation {
   '' + ''
 
     # libredirect causes chromium to deadlock on startup
-    export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | tr ':' '\n' | grep -v /lib/libredirect\\\\.so$ | tr '\n' ':')"
+    export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | tr ':' '\n' | ${gnugrep}/bin/grep -v /lib/libredirect\\\\.so$ | tr '\n' ':')"
 
     export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS
 
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-vdpau-support-for-nvidia.patch b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-vdpau-support-for-nvidia.patch
index b5372d1a255..8d879de7bfd 100644
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-vdpau-support-for-nvidia.patch
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-vdpau-support-for-nvidia.patch
@@ -31,15 +31,6 @@
    // TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT
    // |output_mode_| as well.
    if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
-@@ -1105,7 +1113,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
-   // depends on the bitstream and sometimes it's not enough to cover the amount
-   // of frames needed by the client pipeline (see b/133733739).
-   // TODO(crbug.com/911754): Enable for VP9 Profile 2.
--  if (IsGeminiLakeOrLater() &&
-+  if (false && IsGeminiLakeOrLater() &&
-       (profile_ == VP9PROFILE_PROFILE0 || profile_ == VP8PROFILE_ANY)) {
-     // Add one to the reference frames for the one being currently egressed, and
-     // an extra allocation for both |client_| and |decoder_|, see
 --- a/media/gpu/vaapi/vaapi_video_decode_accelerator.h
 +++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.h
 @@ -204,6 +204,7 @@ class MEDIA_GPU_EXPORT VaapiVideoDecodeAccelerator
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix
index d45a3c9f864..239a6282a67 100644
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix
@@ -4,7 +4,6 @@
 , nspr
 , nss
 , fetchzip
-, patchelfUnstable
 , enablePepperFlash ? false
 
 , upstream-info
@@ -45,11 +44,11 @@ let
 
   flash = stdenv.mkDerivation rec {
     pname = "flashplayer-ppapi";
-    version = "32.0.0.371";
+    version = "32.0.0.414";
 
     src = fetchzip {
       url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
-      sha256 = "1nks2wx74b21hv0l7bnrzkxn7c6p6r8zgwbqvy3cqpi8famyr5v9";
+      sha256 = "0wzf5i6qf5wgjm905kd3qh97rj47fybl9g7z72vasilbx8q5wfwk";
       stripRoot = false;
     };
 
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix
index c393f7fe28e..109e410d5ee 100644
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix
@@ -1,6 +1,6 @@
 {
-  "81.0.4044.138" = {
-    rev = "81.0.4044.138-1";
-    sha256 = "1qa5lw2psaqxr2zklaldx4sm6by4gsw3mfrp01ijc4kkp9jmvg7r";
+  "84.0.4147.89" = {
+    rev = "84.0.4147.89-1";
+    sha256 = "1bqvcq3dj6615198j7cz3ylyyic5zpis06capvl6ybl1na3ainb0";
   };
 }
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix
index defb58822a0..874e45307eb 100644
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix
@@ -1,18 +1,18 @@
 # This file is autogenerated from update.sh in the same directory.
 {
   beta = {
-    sha256 = "0z9p4v5mkinf7hbdagh4bz6ymqjxg3df3wjpvm201ilzzngmjqz1";
-    sha256bin64 = "1srvlirhnynh0q2a17p8z13p7r54z0cchh1d1h07hqljnwmsf8qj";
-    version = "83.0.4103.34";
+    sha256 = "0yf6j0459qzr677zsa2apmfz0x0ndlscvwj1a5v40nqjijchv5qp";
+    sha256bin64 = "017ix9a74f2gzlg6in0x6fqgiw8bpk0rypr6wsqqkslywprypjd0";
+    version = "84.0.4147.89";
   };
   dev = {
-    sha256 = "178fc112bsbrgj2hss78y8rhnz8hl85fr33gawk9fz88zk5qz7xd";
-    sha256bin64 = "06qra245l2bbgxc3k04aabkgq1qnzybnrjhrjb25vriv31ji36b1";
-    version = "84.0.4128.3";
+    sha256 = "1dbbr7s8vbhxd0sk4k2yqp630zp1r4gzkkd2a86pzlzq2mjhsk8a";
+    sha256bin64 = "0bphfwi6nkj9nzrjjaffiv27xfblgdikyifsbjl6vv2pawkh335q";
+    version = "85.0.4183.15";
   };
   stable = {
-    sha256 = "19kpzmqmld0m0nflx13w9flxfal19msnxhzl3lip1jqih65z4y7l";
-    sha256bin64 = "0sl4wv7npc3rhi7jgn679hi7j5ykzwpx5dahy78h87yfg4fx84wx";
-    version = "81.0.4044.138";
+    sha256 = "0yf6j0459qzr677zsa2apmfz0x0ndlscvwj1a5v40nqjijchv5qp";
+    sha256bin64 = "1hzhgvs2ykqsncpnbnhzh09sw1vlsdfjhs06z5gc80l47brdi3wz";
+    version = "84.0.4147.89";
   };
 }
diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix
index 0ec400ea469..2fe4c638929 100644
--- a/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -3,7 +3,7 @@
 , alsaLib, dbus, cups, libexif, ffmpeg_3, systemd
 , freetype, fontconfig, libXft, libXrender, libxcb, expat
 , libuuid
-, gstreamer, gst-plugins-base, libxml2
+, libxml2
 , glib, gtk3, pango, gdk-pixbuf, cairo, atk, at-spi2-atk, at-spi2-core, gnome2
 , libdrm, mesa
 , nss, nspr
@@ -37,7 +37,7 @@ in stdenv.mkDerivation rec {
     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
-    gstreamer libxml2 gst-plugins-base pango cairo gnome2.GConf
+    libxml2 pango cairo gnome2.GConf
     libdrm mesa
   ] ++ stdenv.lib.optional proprietaryCodecs vivaldi-ffmpeg-codecs;
 
diff --git a/pkgs/applications/networking/cloudflared/default.nix b/pkgs/applications/networking/cloudflared/default.nix
index aca523545ad..96767f63653 100644
--- a/pkgs/applications/networking/cloudflared/default.nix
+++ b/pkgs/applications/networking/cloudflared/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "cloudflared";
-  version = "2020.5.1";
+  version = "2020.6.1";
 
   src = fetchFromGitHub {
     owner  = "cloudflare";
     repo   = "cloudflared";
     rev    = version;
-    sha256 = "0r1n3a8h8gyww4p2amb24jmp8zkyxy1ava3nbqgwlfjr3zagga00";
+    sha256 = "09jdgpglm4v7pivx8016zzdvj0xkdhaa8xl71p2akc2jn8i8i6gb";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   buildFlagsArray = "-ldflags=-X main.Version=${version}";
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix
index 4f05c90cff8..72c3955f90f 100644
--- a/pkgs/applications/networking/cluster/argo/default.nix
+++ b/pkgs/applications/networking/cluster/argo/default.nix
@@ -19,16 +19,18 @@ let
 in
 buildGoModule rec {
   pname = "argo";
-  version = "2.8.2";
+  version = "2.10.1";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo";
     rev = "v${version}";
-    sha256 = "1di6c8p9bc0g8r5l654sdvpiawp76cp8v97cj227yhznf39f20z9";
+    sha256 = "1k023rq4p0hvq5famxm83csp3zsijrki8myk6v83xyfigwxc8sia";
   };
 
-  vendorSha256 = "1p9b2m20gxc7iyq08mvllf5dpi4m06aw233sb45d05d624kw4aps";
+  vendorSha256 = "0fqdxs3r4249qxlc9cac0lpbqf2aifkcah07v0cckb9rxfyiwhjz";
+
+  doCheck = false;
 
   subPackages = [ "cmd/argo" ];
 
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index 40949890505..505de3c0802 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -14,6 +14,8 @@ buildGoModule rec {
 
   vendorSha256 = "0r2nh7v00m6zbdnhsgjn01q9pkiz41ckkqgfnpqmkxaqmjz31iyj";
 
+  doCheck = false;
+
   nativeBuildInputs = [ packr ];
 
   patches = [ ./use-go-module.patch ];
@@ -25,16 +27,16 @@ buildGoModule rec {
       -X github.com/argoproj/argo-cd/common.gitCommit=${commit}
       -X github.com/argoproj/argo-cd/common.gitTreeState=clean
   '';
- 
+
   # run packr to embed assets
   preBuild = ''
     packr
   '';
-  
+
   meta = with lib; {
     description = "Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes";
     homepage = "https://github.com/argoproj/argo";
     license = licenses.asl20;
     maintainers = with maintainers; [ shahrukh330 ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/cluster/atlantis/default.nix b/pkgs/applications/networking/cluster/atlantis/default.nix
index 0152f80afbf..d3e18ce691f 100644
--- a/pkgs/applications/networking/cluster/atlantis/default.nix
+++ b/pkgs/applications/networking/cluster/atlantis/default.nix
@@ -2,24 +2,25 @@
 
 buildGoModule rec {
   pname = "atlantis";
-  version = "0.13.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "runatlantis";
     repo = "atlantis";
     rev = "v${version}";
-    sha256 = "1ymixbix9sxhzmixqm9yjm9181aqnwnllqnswr0fq0nljw4018dn";
+    sha256 = "0nb0dm4yn6f5pw7clgb2d1khcwcxiidqyc0sdh38wwqg0zyil0cz";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/runatlantis/atlantis";
     description = "Terraform Pull Request Automation";
-    platforms = platforms.all;
     license = licenses.asl20;
     maintainers = with maintainers; [ jpotier ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/cluster/chronos/chronos-deps.nix b/pkgs/applications/networking/cluster/chronos/chronos-deps.nix
deleted file mode 100644
index aac0dd10e15..00000000000
--- a/pkgs/applications/networking/cluster/chronos/chronos-deps.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{stdenv, curl}:
-
-stdenv.mkDerivation {
-  name = "chronos-maven-deps";
-  builder = ./fetch-chronos-deps.sh;
-
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "0mm2sb1p5zz6b0z2s4zhdlix6fafydsxmqjy8zbkwzw4f6lazzyl";
-
-  nativeBuildInputs = [ curl ];
-
-  impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
-}
diff --git a/pkgs/applications/networking/cluster/chronos/default.nix b/pkgs/applications/networking/cluster/chronos/default.nix
deleted file mode 100644
index e0cc780841b..00000000000
--- a/pkgs/applications/networking/cluster/chronos/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ stdenv, lib, makeWrapper, fetchgit, curl, jdk, maven, nodejs, mesos }:
-
-stdenv.mkDerivation rec {
-  pname = "chronos";
-  version = "286b2ccb8e4695f8e413406ceca85b60d3a87e22";
-
-  src = fetchgit {
-    url = "https://github.com/airbnb/chronos";
-    rev = version;
-    sha256 = "0hrln3ad2g2cq2xqmy5mq32cdxxb9vb6v6jp6kcq03f8km6v3g9c";
-  };
-
-  buildInputs = [ makeWrapper curl jdk maven nodejs mesos ];
-
-  mavenRepo = import ./chronos-deps.nix { inherit stdenv curl; };
-
-  buildPhase = ''
-    ln -s $mavenRepo .m2
-    mvn package -Dmaven.repo.local=$(pwd)/.m2
-  '';
-
-  installPhase = ''
-    mkdir -p $out/{bin,libexec/chronos}
-    cp target/chronos*.jar $out/libexec/chronos/${pname}-${version}.jar
-
-    makeWrapper ${jdk.jre}/bin/java $out/bin/chronos \
-      --add-flags "-Xmx384m -Xms384m -cp $out/libexec/chronos/${pname}-${version}.jar com.airbnb.scheduler.Main" \
-      --prefix "MESOS_NATIVE_LIBRARY" : "$MESOS_NATIVE_LIBRARY"
-  '';
-
-  meta = with lib; {
-    homepage    = "http://airbnb.github.io/chronos";
-    license     = licenses.asl20;
-    description = "Fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules";
-    maintainers = with maintainers; [ offline ];
-    platforms   = platforms.unix;
-    broken = true; # doesn't build https://hydra.nixos.org/build/25768319
-  };
-}
diff --git a/pkgs/applications/networking/cluster/chronos/fetch-chronos-deps.sh b/pkgs/applications/networking/cluster/chronos/fetch-chronos-deps.sh
deleted file mode 100644
index 2e337076107..00000000000
--- a/pkgs/applications/networking/cluster/chronos/fetch-chronos-deps.sh
+++ /dev/null
@@ -1,1672 +0,0 @@
-source $stdenv/setup
-header "fetching Chronos maven repo"
-
-function fetchArtifact {
-  repoPath="$1"
-  echo "fetching $repoPath"
-  mkdir -p $(dirname $out/$repoPath)
-  curl --fail --location --insecure --max-redirs 20 "http://repo.maven.apache.org/maven2/$repoPath" --output "$out/$repoPath" ||
-  curl --fail --location --insecure --max-redirs 20 "https://repository.apache.org/content/repositories/release/$repoPath" --output "$out/$repoPath" ||
-  curl --fail --location --insecure --max-redirs 20 "http://downloads.mesosphere.io/maven/$repoPath" --output "$out/$repoPath"
-}
-
-fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.pom
-fetchArtifact commons-collections/commons-collections/2.0/commons-collections-2.0.pom
-fetchArtifact commons-collections/commons-collections/2.0/commons-collections-2.0.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.jar.sha1
-fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.pom
-fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.jar
-fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar.sha1
-fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom
-fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
-fetchArtifact commons-collections/commons-collections/2.1/commons-collections-2.1.pom
-fetchArtifact commons-collections/commons-collections/2.1/commons-collections-2.1.pom.sha1
-fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.jar
-fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.pom.sha1
-fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.pom
-fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.jar.sha1
-fetchArtifact commons-io/commons-io/2.2/commons-io-2.2.pom
-fetchArtifact commons-io/commons-io/2.2/commons-io-2.2.jar
-fetchArtifact commons-io/commons-io/2.2/commons-io-2.2.jar.sha1
-fetchArtifact commons-io/commons-io/2.2/commons-io-2.2.pom.sha1
-fetchArtifact aopalliance/aopalliance/1.0/aopalliance-1.0.jar
-fetchArtifact aopalliance/aopalliance/1.0/aopalliance-1.0.pom.sha1
-fetchArtifact aopalliance/aopalliance/1.0/aopalliance-1.0.pom
-fetchArtifact aopalliance/aopalliance/1.0/aopalliance-1.0.jar.sha1
-fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.pom
-fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.jar.sha1
-fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.pom.sha1
-fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.jar
-fetchArtifact net/kencochrane/raven/raven-all/4.1.2/raven-all-4.1.2.pom
-fetchArtifact net/kencochrane/raven/raven-all/4.1.2/raven-all-4.1.2.pom.sha1
-fetchArtifact net/kencochrane/raven/raven/4.1.2/raven-4.1.2.jar
-fetchArtifact net/kencochrane/raven/raven/4.1.2/raven-4.1.2.pom
-fetchArtifact net/kencochrane/raven/raven/4.1.2/raven-4.1.2.jar.sha1
-fetchArtifact net/kencochrane/raven/raven/4.1.2/raven-4.1.2.pom.sha1
-fetchArtifact net/kencochrane/raven/raven-getsentry/4.1.2/raven-getsentry-4.1.2.jar.sha1
-fetchArtifact net/kencochrane/raven/raven-getsentry/4.1.2/raven-getsentry-4.1.2.jar
-fetchArtifact net/kencochrane/raven/raven-getsentry/4.1.2/raven-getsentry-4.1.2.pom.sha1
-fetchArtifact net/kencochrane/raven/raven-getsentry/4.1.2/raven-getsentry-4.1.2.pom
-fetchArtifact net/liftweb/lift-markdown_2.11/2.6-M4/lift-markdown_2.11-2.6-M4.jar.sha1
-fetchArtifact net/liftweb/lift-markdown_2.11/2.6-M4/lift-markdown_2.11-2.6-M4.pom
-fetchArtifact net/liftweb/lift-markdown_2.11/2.6-M4/lift-markdown_2.11-2.6-M4.jar
-fetchArtifact net/liftweb/lift-markdown_2.11/2.6-M4/lift-markdown_2.11-2.6-M4.pom.sha1
-fetchArtifact net/java/jvnet-parent/4/jvnet-parent-4.pom
-fetchArtifact net/java/jvnet-parent/4/jvnet-parent-4.pom.sha1
-fetchArtifact net/java/jvnet-parent/1/jvnet-parent-1.pom
-fetchArtifact net/java/jvnet-parent/1/jvnet-parent-1.pom.sha1
-fetchArtifact net/java/jvnet-parent/3/jvnet-parent-3.pom.sha1
-fetchArtifact net/java/jvnet-parent/3/jvnet-parent-3.pom
-fetchArtifact net/alchim31/maven/scala-maven-plugin/3.1.0/scala-maven-plugin-3.1.0.jar.sha1
-fetchArtifact net/alchim31/maven/scala-maven-plugin/3.1.0/scala-maven-plugin-3.1.0.pom.sha1
-fetchArtifact net/alchim31/maven/scala-maven-plugin/3.1.0/scala-maven-plugin-3.1.0.pom
-fetchArtifact net/alchim31/maven/scala-maven-plugin/3.1.0/scala-maven-plugin-3.1.0.jar
-fetchArtifact net/jpountz/lz4/lz4/1.2.0/lz4-1.2.0.jar
-fetchArtifact net/jpountz/lz4/lz4/1.2.0/lz4-1.2.0.pom
-fetchArtifact net/jpountz/lz4/lz4/1.2.0/lz4-1.2.0.jar.sha1
-fetchArtifact net/jpountz/lz4/lz4/1.2.0/lz4-1.2.0.pom.sha1
-fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.pom
-fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.pom.sha1
-fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar.sha1
-fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom.sha1
-fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom
-fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar
-fetchArtifact xerces/xercesImpl/2.8.1/xercesImpl-2.8.1.pom.sha1
-fetchArtifact xerces/xercesImpl/2.8.1/xercesImpl-2.8.1.pom
-fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom.sha1
-fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom
-fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar
-fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar.sha1
-fetchArtifact io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.pom
-fetchArtifact io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.jar
-fetchArtifact io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.jar.sha1
-fetchArtifact io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.pom.sha1
-fetchArtifact io/dropwizard/metrics/metrics-graphite/3.1.0/metrics-graphite-3.1.0.jar.sha1
-fetchArtifact io/dropwizard/metrics/metrics-graphite/3.1.0/metrics-graphite-3.1.0.jar
-fetchArtifact io/dropwizard/metrics/metrics-graphite/3.1.0/metrics-graphite-3.1.0.pom.sha1
-fetchArtifact io/dropwizard/metrics/metrics-graphite/3.1.0/metrics-graphite-3.1.0.pom
-fetchArtifact io/dropwizard/metrics/metrics-parent/3.1.0/metrics-parent-3.1.0.pom.sha1
-fetchArtifact io/dropwizard/metrics/metrics-parent/3.1.0/metrics-parent-3.1.0.pom
-fetchArtifact io/netty/netty/3.7.0.Final/netty-3.7.0.Final.jar.sha1
-fetchArtifact io/netty/netty/3.7.0.Final/netty-3.7.0.Final.pom
-fetchArtifact io/netty/netty/3.7.0.Final/netty-3.7.0.Final.jar
-fetchArtifact io/netty/netty/3.7.0.Final/netty-3.7.0.Final.pom.sha1
-fetchArtifact io/netty/netty/3.9.0.Final/netty-3.9.0.Final.pom.sha1
-fetchArtifact io/netty/netty/3.9.0.Final/netty-3.9.0.Final.jar
-fetchArtifact io/netty/netty/3.9.0.Final/netty-3.9.0.Final.pom
-fetchArtifact io/netty/netty/3.9.0.Final/netty-3.9.0.Final.jar.sha1
-fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.jar.sha1
-fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.pom.sha1
-fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.jar
-fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.pom
-fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.pom.sha1
-fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.jar.sha1
-fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.jar
-fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.pom
-fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.jar
-fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.pom.sha1
-fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.pom
-fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha1
-fetchArtifact log4j/log4j/1.2.12/log4j-1.2.12.pom
-fetchArtifact log4j/log4j/1.2.12/log4j-1.2.12.pom.sha1
-fetchArtifact log4j/log4j/1.2.16/log4j-1.2.16.jar.sha1
-fetchArtifact log4j/log4j/1.2.16/log4j-1.2.16.pom.sha1
-fetchArtifact log4j/log4j/1.2.16/log4j-1.2.16.jar
-fetchArtifact log4j/log4j/1.2.16/log4j-1.2.16.pom
-fetchArtifact log4j/log4j/1.2.17/log4j-1.2.17.pom.sha1
-fetchArtifact log4j/log4j/1.2.17/log4j-1.2.17.jar
-fetchArtifact log4j/log4j/1.2.17/log4j-1.2.17.jar.sha1
-fetchArtifact log4j/log4j/1.2.17/log4j-1.2.17.pom
-fetchArtifact commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom
-fetchArtifact commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom
-fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar
-fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar.sha1
-fetchArtifact commons-logging/commons-logging/1.0/commons-logging-1.0.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.0/commons-logging-1.0.pom
-fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom
-fetchArtifact commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom
-fetchArtifact commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom.sha1
-fetchArtifact com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.pom.sha1
-fetchArtifact com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar
-fetchArtifact com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar.sha1
-fetchArtifact com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.pom
-fetchArtifact com/google/inject/guice-parent/3.0/guice-parent-3.0.pom.sha1
-fetchArtifact com/google/inject/guice-parent/3.0/guice-parent-3.0.pom
-fetchArtifact com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.pom.sha1
-fetchArtifact com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.jar
-fetchArtifact com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.jar.sha1
-fetchArtifact com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.pom
-fetchArtifact com/google/inject/extensions/extensions-parent/3.0/extensions-parent-3.0.pom.sha1
-fetchArtifact com/google/inject/extensions/extensions-parent/3.0/extensions-parent-3.0.pom
-fetchArtifact com/google/inject/guice/3.0/guice-3.0.jar
-fetchArtifact com/google/inject/guice/3.0/guice-3.0.jar.sha1
-fetchArtifact com/google/inject/guice/3.0/guice-3.0.pom.sha1
-fetchArtifact com/google/inject/guice/3.0/guice-3.0.pom
-fetchArtifact com/google/google/1/google-1.pom
-fetchArtifact com/google/google/1/google-1.pom.sha1
-fetchArtifact com/google/google/5/google-5.pom.sha1
-fetchArtifact com/google/google/5/google-5.pom
-fetchArtifact com/google/collections/google-collections/1.0/google-collections-1.0.pom
-fetchArtifact com/google/collections/google-collections/1.0/google-collections-1.0.pom.sha1
-fetchArtifact com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.pom
-fetchArtifact com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar.sha1
-fetchArtifact com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar
-fetchArtifact com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.pom.sha1
-fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom.sha1
-fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom
-fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar.sha1
-fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar
-fetchArtifact com/google/guava/guava-parent/15.0/guava-parent-15.0.pom
-fetchArtifact com/google/guava/guava-parent/15.0/guava-parent-15.0.pom.sha1
-fetchArtifact com/google/guava/guava-parent/13.0.1/guava-parent-13.0.1.pom.sha1
-fetchArtifact com/google/guava/guava-parent/13.0.1/guava-parent-13.0.1.pom
-fetchArtifact com/google/guava/guava-parent/17.0/guava-parent-17.0.pom.sha1
-fetchArtifact com/google/guava/guava-parent/17.0/guava-parent-17.0.pom
-fetchArtifact com/google/guava/guava-parent/16.0.1/guava-parent-16.0.1.pom
-fetchArtifact com/google/guava/guava-parent/16.0.1/guava-parent-16.0.1.pom.sha1
-fetchArtifact com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom
-fetchArtifact com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom.sha1
-fetchArtifact com/google/guava/guava/15.0/guava-15.0.pom.sha1
-fetchArtifact com/google/guava/guava/15.0/guava-15.0.pom
-fetchArtifact com/google/guava/guava/13.0.1/guava-13.0.1.pom
-fetchArtifact com/google/guava/guava/13.0.1/guava-13.0.1.pom.sha1
-fetchArtifact com/google/guava/guava/17.0/guava-17.0.pom
-fetchArtifact com/google/guava/guava/17.0/guava-17.0.pom.sha1
-fetchArtifact com/google/guava/guava/16.0.1/guava-16.0.1.pom.sha1
-fetchArtifact com/google/guava/guava/16.0.1/guava-16.0.1.pom
-fetchArtifact com/google/guava/guava/16.0.1/guava-16.0.1.jar
-fetchArtifact com/google/guava/guava/16.0.1/guava-16.0.1.jar.sha1
-fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.jar.sha1
-fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom
-fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.jar
-fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom.sha1
-fetchArtifact com/github/spullara/mustache/java/compiler/0.8.12/compiler-0.8.12.pom
-fetchArtifact com/github/spullara/mustache/java/compiler/0.8.12/compiler-0.8.12.pom.sha1
-fetchArtifact com/github/spullara/mustache/java/compiler/0.8.12/compiler-0.8.12.jar
-fetchArtifact com/github/spullara/mustache/java/compiler/0.8.12/compiler-0.8.12.jar.sha1
-fetchArtifact com/github/spullara/mustache/java/mustache.java/0.8.12/mustache.java-0.8.12.pom
-fetchArtifact com/github/spullara/mustache/java/mustache.java/0.8.12/mustache.java-0.8.12.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-servlets/3.0.2/metrics-servlets-3.0.2.jar
-fetchArtifact com/codahale/metrics/metrics-servlets/3.0.2/metrics-servlets-3.0.2.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-servlets/3.0.2/metrics-servlets-3.0.2.jar.sha1
-fetchArtifact com/codahale/metrics/metrics-servlets/3.0.2/metrics-servlets-3.0.2.pom
-fetchArtifact com/codahale/metrics/metrics-annotation/3.0.2/metrics-annotation-3.0.2.jar.sha1
-fetchArtifact com/codahale/metrics/metrics-annotation/3.0.2/metrics-annotation-3.0.2.pom
-fetchArtifact com/codahale/metrics/metrics-annotation/3.0.2/metrics-annotation-3.0.2.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-annotation/3.0.2/metrics-annotation-3.0.2.jar
-fetchArtifact com/codahale/metrics/metrics-jvm/3.0.2/metrics-jvm-3.0.2.pom
-fetchArtifact com/codahale/metrics/metrics-jvm/3.0.2/metrics-jvm-3.0.2.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-jvm/3.0.2/metrics-jvm-3.0.2.jar.sha1
-fetchArtifact com/codahale/metrics/metrics-jvm/3.0.2/metrics-jvm-3.0.2.jar
-fetchArtifact com/codahale/metrics/metrics-json/3.0.2/metrics-json-3.0.2.jar.sha1
-fetchArtifact com/codahale/metrics/metrics-json/3.0.2/metrics-json-3.0.2.pom
-fetchArtifact com/codahale/metrics/metrics-json/3.0.2/metrics-json-3.0.2.jar
-fetchArtifact com/codahale/metrics/metrics-json/3.0.2/metrics-json-3.0.2.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-jersey/3.0.2/metrics-jersey-3.0.2.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-jersey/3.0.2/metrics-jersey-3.0.2.jar
-fetchArtifact com/codahale/metrics/metrics-jersey/3.0.2/metrics-jersey-3.0.2.jar.sha1
-fetchArtifact com/codahale/metrics/metrics-jersey/3.0.2/metrics-jersey-3.0.2.pom
-fetchArtifact com/codahale/metrics/metrics-jetty8/3.0.2/metrics-jetty8-3.0.2.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-jetty8/3.0.2/metrics-jetty8-3.0.2.jar
-fetchArtifact com/codahale/metrics/metrics-jetty8/3.0.2/metrics-jetty8-3.0.2.jar.sha1
-fetchArtifact com/codahale/metrics/metrics-jetty8/3.0.2/metrics-jetty8-3.0.2.pom
-fetchArtifact com/codahale/metrics/metrics-healthchecks/3.0.2/metrics-healthchecks-3.0.2.jar.sha1
-fetchArtifact com/codahale/metrics/metrics-healthchecks/3.0.2/metrics-healthchecks-3.0.2.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-healthchecks/3.0.2/metrics-healthchecks-3.0.2.jar
-fetchArtifact com/codahale/metrics/metrics-healthchecks/3.0.2/metrics-healthchecks-3.0.2.pom
-fetchArtifact com/codahale/metrics/metrics-parent/3.0.2/metrics-parent-3.0.2.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-parent/3.0.2/metrics-parent-3.0.2.pom
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.4.1/jackson-jaxrs-base-2.4.1.pom
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.4.1/jackson-jaxrs-base-2.4.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.4.1/jackson-jaxrs-base-2.4.1.jar
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.4.1/jackson-jaxrs-base-2.4.1.jar.sha1
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.4.1/jackson-jaxrs-json-provider-2.4.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.4.1/jackson-jaxrs-json-provider-2.4.1.jar.sha1
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.4.1/jackson-jaxrs-json-provider-2.4.1.pom
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.4.1/jackson-jaxrs-json-provider-2.4.1.jar
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-providers/2.4.1/jackson-jaxrs-providers-2.4.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-providers/2.4.1/jackson-jaxrs-providers-2.4.1.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.1/jackson-annotations-2.4.1.jar
-fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.1/jackson-annotations-2.4.1.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.1/jackson-annotations-2.4.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.1/jackson-annotations-2.4.1.jar.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.0/jackson-annotations-2.4.0.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.0/jackson-annotations-2.4.0.pom.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.2.2/jackson-annotations-2.2.2.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.2.2/jackson-annotations-2.2.2.pom.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1/jackson-databind-2.4.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1/jackson-databind-2.4.1.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1.1/jackson-databind-2.4.1.1.jar.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1.1/jackson-databind-2.4.1.1.jar
-fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1.1/jackson-databind-2.4.1.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1.1/jackson-databind-2.4.1.1.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.2.2/jackson-databind-2.2.2.pom.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.2.2/jackson-databind-2.2.2.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-core/2.3.0/jackson-core-2.3.0.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-core/2.3.0/jackson-core-2.3.0.jar.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-core/2.3.0/jackson-core-2.3.0.pom.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-core/2.3.0/jackson-core-2.3.0.jar
-fetchArtifact com/fasterxml/jackson/core/jackson-core/2.4.1/jackson-core-2.4.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-core/2.4.1/jackson-core-2.4.1.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-core/2.2.2/jackson-core-2.2.2.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-core/2.2.2/jackson-core-2.2.2.pom.sha1
-fetchArtifact com/fasterxml/jackson/jackson-parent/2.4/jackson-parent-2.4.pom
-fetchArtifact com/fasterxml/jackson/jackson-parent/2.4/jackson-parent-2.4.pom.sha1
-fetchArtifact com/fasterxml/jackson/module/jackson-module-scala_2.11/2.4.1/jackson-module-scala_2.11-2.4.1.pom
-fetchArtifact com/fasterxml/jackson/module/jackson-module-scala_2.11/2.4.1/jackson-module-scala_2.11-2.4.1.jar
-fetchArtifact com/fasterxml/jackson/module/jackson-module-scala_2.11/2.4.1/jackson-module-scala_2.11-2.4.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/module/jackson-module-scala_2.11/2.4.1/jackson-module-scala_2.11-2.4.1.jar.sha1
-fetchArtifact com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.4.1/jackson-module-jaxb-annotations-2.4.1.jar
-fetchArtifact com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.4.1/jackson-module-jaxb-annotations-2.4.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.4.1/jackson-module-jaxb-annotations-2.4.1.jar.sha1
-fetchArtifact com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.4.1/jackson-module-jaxb-annotations-2.4.1.pom
-fetchArtifact com/fasterxml/oss-parent/16/oss-parent-16.pom
-fetchArtifact com/fasterxml/oss-parent/16/oss-parent-16.pom.sha1
-fetchArtifact com/fasterxml/oss-parent/11/oss-parent-11.pom.sha1
-fetchArtifact com/fasterxml/oss-parent/11/oss-parent-11.pom
-fetchArtifact com/fasterxml/oss-parent/10/oss-parent-10.pom.sha1
-fetchArtifact com/fasterxml/oss-parent/10/oss-parent-10.pom
-fetchArtifact com/fasterxml/classmate/1.0.0/classmate-1.0.0.pom.sha1
-fetchArtifact com/fasterxml/classmate/1.0.0/classmate-1.0.0.jar
-fetchArtifact com/fasterxml/classmate/1.0.0/classmate-1.0.0.pom
-fetchArtifact com/fasterxml/classmate/1.0.0/classmate-1.0.0.jar.sha1
-fetchArtifact com/datastax/cassandra/cassandra-driver-core/2.1.0/cassandra-driver-core-2.1.0.jar
-fetchArtifact com/datastax/cassandra/cassandra-driver-core/2.1.0/cassandra-driver-core-2.1.0.pom.sha1
-fetchArtifact com/datastax/cassandra/cassandra-driver-core/2.1.0/cassandra-driver-core-2.1.0.pom
-fetchArtifact com/datastax/cassandra/cassandra-driver-core/2.1.0/cassandra-driver-core-2.1.0.jar.sha1
-fetchArtifact com/datastax/cassandra/cassandra-driver-parent/2.1.0/cassandra-driver-parent-2.1.0.pom.sha1
-fetchArtifact com/datastax/cassandra/cassandra-driver-parent/2.1.0/cassandra-driver-parent-2.1.0.pom
-fetchArtifact com/typesafe/sbt/compiler-interface/0.12.0/compiler-interface-0.12.0.pom.sha1
-fetchArtifact com/typesafe/sbt/compiler-interface/0.12.0/compiler-interface-0.12.0-sources.jar
-fetchArtifact com/typesafe/sbt/compiler-interface/0.12.0/compiler-interface-0.12.0.pom
-fetchArtifact com/typesafe/sbt/compiler-interface/0.12.0/compiler-interface-0.12.0-sources.jar.sha1
-fetchArtifact com/typesafe/sbt/sbt-interface/0.12.0/sbt-interface-0.12.0.jar.sha1
-fetchArtifact com/typesafe/sbt/sbt-interface/0.12.0/sbt-interface-0.12.0.jar
-fetchArtifact com/typesafe/sbt/sbt-interface/0.12.0/sbt-interface-0.12.0.pom
-fetchArtifact com/typesafe/sbt/sbt-interface/0.12.0/sbt-interface-0.12.0.pom.sha1
-fetchArtifact com/typesafe/sbt/incremental-compiler/0.12.0/incremental-compiler-0.12.0.jar.sha1
-fetchArtifact com/typesafe/sbt/incremental-compiler/0.12.0/incremental-compiler-0.12.0.pom.sha1
-fetchArtifact com/typesafe/sbt/incremental-compiler/0.12.0/incremental-compiler-0.12.0.jar
-fetchArtifact com/typesafe/sbt/incremental-compiler/0.12.0/incremental-compiler-0.12.0.pom
-fetchArtifact com/typesafe/config/1.2.1/config-1.2.1.pom.sha1
-fetchArtifact com/typesafe/config/1.2.1/config-1.2.1.jar.sha1
-fetchArtifact com/typesafe/config/1.2.1/config-1.2.1.pom
-fetchArtifact com/typesafe/config/1.2.1/config-1.2.1.jar
-fetchArtifact com/typesafe/zinc/zinc/0.1.0/zinc-0.1.0.jar
-fetchArtifact com/typesafe/zinc/zinc/0.1.0/zinc-0.1.0.pom.sha1
-fetchArtifact com/typesafe/zinc/zinc/0.1.0/zinc-0.1.0.pom
-fetchArtifact com/typesafe/zinc/zinc/0.1.0/zinc-0.1.0.jar.sha1
-fetchArtifact com/typesafe/akka/akka-actor_2.11/2.3.6/akka-actor_2.11-2.3.6.pom.sha1
-fetchArtifact com/typesafe/akka/akka-actor_2.11/2.3.6/akka-actor_2.11-2.3.6.jar.sha1
-fetchArtifact com/typesafe/akka/akka-actor_2.11/2.3.6/akka-actor_2.11-2.3.6.pom
-fetchArtifact com/typesafe/akka/akka-actor_2.11/2.3.6/akka-actor_2.11-2.3.6.jar
-fetchArtifact com/thoughtworks/paranamer/paranamer-parent/2.6/paranamer-parent-2.6.pom.sha1
-fetchArtifact com/thoughtworks/paranamer/paranamer-parent/2.6/paranamer-parent-2.6.pom
-fetchArtifact com/thoughtworks/paranamer/paranamer/2.6/paranamer-2.6.pom
-fetchArtifact com/thoughtworks/paranamer/paranamer/2.6/paranamer-2.6.jar.sha1
-fetchArtifact com/thoughtworks/paranamer/paranamer/2.6/paranamer-2.6.pom.sha1
-fetchArtifact com/thoughtworks/paranamer/paranamer/2.6/paranamer-2.6.jar
-fetchArtifact com/sun/jersey/jersey-server/1.18.1/jersey-server-1.18.1.pom
-fetchArtifact com/sun/jersey/jersey-server/1.18.1/jersey-server-1.18.1.jar.sha1
-fetchArtifact com/sun/jersey/jersey-server/1.18.1/jersey-server-1.18.1.pom.sha1
-fetchArtifact com/sun/jersey/jersey-server/1.18.1/jersey-server-1.18.1.jar
-fetchArtifact com/sun/jersey/jersey-server/1.17.1/jersey-server-1.17.1.pom.sha1
-fetchArtifact com/sun/jersey/jersey-server/1.17.1/jersey-server-1.17.1.pom
-fetchArtifact com/sun/jersey/jersey-servlet/1.18.1/jersey-servlet-1.18.1.jar.sha1
-fetchArtifact com/sun/jersey/jersey-servlet/1.18.1/jersey-servlet-1.18.1.jar
-fetchArtifact com/sun/jersey/jersey-servlet/1.18.1/jersey-servlet-1.18.1.pom
-fetchArtifact com/sun/jersey/jersey-servlet/1.18.1/jersey-servlet-1.18.1.pom.sha1
-fetchArtifact com/sun/jersey/jersey-core/1.18.1/jersey-core-1.18.1.pom.sha1
-fetchArtifact com/sun/jersey/jersey-core/1.18.1/jersey-core-1.18.1.jar
-fetchArtifact com/sun/jersey/jersey-core/1.18.1/jersey-core-1.18.1.pom
-fetchArtifact com/sun/jersey/jersey-core/1.18.1/jersey-core-1.18.1.jar.sha1
-fetchArtifact com/sun/jersey/jersey-core/1.17.1/jersey-core-1.17.1.pom
-fetchArtifact com/sun/jersey/jersey-core/1.17.1/jersey-core-1.17.1.pom.sha1
-fetchArtifact com/sun/jersey/jersey-project/1.18.1/jersey-project-1.18.1.pom.sha1
-fetchArtifact com/sun/jersey/jersey-project/1.18.1/jersey-project-1.18.1.pom
-fetchArtifact com/sun/jersey/jersey-project/1.17.1/jersey-project-1.17.1.pom.sha1
-fetchArtifact com/sun/jersey/jersey-project/1.17.1/jersey-project-1.17.1.pom
-fetchArtifact com/sun/jersey/contribs/jersey-guice/1.18.1/jersey-guice-1.18.1.pom.sha1
-fetchArtifact com/sun/jersey/contribs/jersey-guice/1.18.1/jersey-guice-1.18.1.jar.sha1
-fetchArtifact com/sun/jersey/contribs/jersey-guice/1.18.1/jersey-guice-1.18.1.jar
-fetchArtifact com/sun/jersey/contribs/jersey-guice/1.18.1/jersey-guice-1.18.1.pom
-fetchArtifact com/sun/jersey/contribs/jersey-contribs/1.18.1/jersey-contribs-1.18.1.pom
-fetchArtifact com/sun/jersey/contribs/jersey-contribs/1.18.1/jersey-contribs-1.18.1.pom.sha1
-fetchArtifact com/sun/mail/all/1.4.5/all-1.4.5.pom
-fetchArtifact com/sun/mail/all/1.4.5/all-1.4.5.pom.sha1
-fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.jar
-fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.pom
-fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.jar.sha1
-fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.pom.sha1
-fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom.sha1
-fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom
-fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar
-fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar.sha1
-fetchArtifact jgraph/jgraph/5.13.0.0/jgraph-5.13.0.0.jar
-fetchArtifact jgraph/jgraph/5.13.0.0/jgraph-5.13.0.0.pom
-fetchArtifact jgraph/jgraph/5.13.0.0/jgraph-5.13.0.0.pom.sha1
-fetchArtifact jgraph/jgraph/5.13.0.0/jgraph-5.13.0.0.jar.sha1
-fetchArtifact asm/asm-parent/3.3.1/asm-parent-3.3.1.pom
-fetchArtifact asm/asm-parent/3.3.1/asm-parent-3.3.1.pom.sha1
-fetchArtifact asm/asm-parent/3.1/asm-parent-3.1.pom.sha1
-fetchArtifact asm/asm-parent/3.1/asm-parent-3.1.pom
-fetchArtifact asm/asm/3.3.1/asm-3.3.1.pom
-fetchArtifact asm/asm/3.3.1/asm-3.3.1.jar
-fetchArtifact asm/asm/3.3.1/asm-3.3.1.pom.sha1
-fetchArtifact asm/asm/3.3.1/asm-3.3.1.jar.sha1
-fetchArtifact asm/asm/3.1/asm-3.1.pom.sha1
-fetchArtifact asm/asm/3.1/asm-3.1.pom
-fetchArtifact jline/jline/0.9.94/jline-0.9.94.pom
-fetchArtifact jline/jline/0.9.94/jline-0.9.94.pom.sha1
-fetchArtifact jline/jline/0.9.94/jline-0.9.94.jar.sha1
-fetchArtifact jline/jline/0.9.94/jline-0.9.94.jar
-fetchArtifact xml-apis/xml-apis/1.3.03/xml-apis-1.3.03.pom
-fetchArtifact xml-apis/xml-apis/1.3.03/xml-apis-1.3.03.pom.sha1
-fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom
-fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom.sha1
-fetchArtifact xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom
-fetchArtifact xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom.sha1
-fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom
-fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar
-fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar.sha1
-fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom.sha1
-fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.pom.sha1
-fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.jar
-fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.pom
-fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.jar.sha1
-fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.pom
-fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.pom.sha1
-fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.pom
-fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.pom.sha1
-fetchArtifact org/vafer/jdependency/0.9/jdependency-0.9.jar
-fetchArtifact org/vafer/jdependency/0.9/jdependency-0.9.jar.sha1
-fetchArtifact org/vafer/jdependency/0.9/jdependency-0.9.pom
-fetchArtifact org/vafer/jdependency/0.9/jdependency-0.9.pom.sha1
-fetchArtifact org/joda/joda-convert/1.7/joda-convert-1.7.jar.sha1
-fetchArtifact org/joda/joda-convert/1.7/joda-convert-1.7.jar
-fetchArtifact org/joda/joda-convert/1.7/joda-convert-1.7.pom
-fetchArtifact org/joda/joda-convert/1.7/joda-convert-1.7.pom.sha1
-fetchArtifact org/mockito/mockito-core/1.9.5/mockito-core-1.9.5.pom
-fetchArtifact org/mockito/mockito-core/1.9.5/mockito-core-1.9.5.jar.sha1
-fetchArtifact org/mockito/mockito-core/1.9.5/mockito-core-1.9.5.pom.sha1
-fetchArtifact org/mockito/mockito-core/1.9.5/mockito-core-1.9.5.jar
-fetchArtifact org/mockito/mockito-all/1.9.5/mockito-all-1.9.5.jar
-fetchArtifact org/mockito/mockito-all/1.9.5/mockito-all-1.9.5.pom.sha1
-fetchArtifact org/mockito/mockito-all/1.9.5/mockito-all-1.9.5.pom
-fetchArtifact org/mockito/mockito-all/1.9.5/mockito-all-1.9.5.jar.sha1
-fetchArtifact org/javabits/jgrapht/jgrapht-ext/0.9.1/jgrapht-ext-0.9.1.pom.sha1
-fetchArtifact org/javabits/jgrapht/jgrapht-ext/0.9.1/jgrapht-ext-0.9.1.jar
-fetchArtifact org/javabits/jgrapht/jgrapht-ext/0.9.1/jgrapht-ext-0.9.1.pom
-fetchArtifact org/javabits/jgrapht/jgrapht-ext/0.9.1/jgrapht-ext-0.9.1.jar.sha1
-fetchArtifact org/javabits/jgrapht/jgrapht-core/0.9.1/jgrapht-core-0.9.1.pom
-fetchArtifact org/javabits/jgrapht/jgrapht-core/0.9.1/jgrapht-core-0.9.1.jar
-fetchArtifact org/javabits/jgrapht/jgrapht-core/0.9.1/jgrapht-core-0.9.1.jar.sha1
-fetchArtifact org/javabits/jgrapht/jgrapht-core/0.9.1/jgrapht-core-0.9.1.pom.sha1
-fetchArtifact org/javabits/jgrapht/jgrapht/0.9.1/jgrapht-0.9.1.pom.sha1
-fetchArtifact org/javabits/jgrapht/jgrapht/0.9.1/jgrapht-0.9.1.pom
-fetchArtifact org/scala-lang/scala-compiler/2.11.2/scala-compiler-2.11.2.pom
-fetchArtifact org/scala-lang/scala-compiler/2.11.2/scala-compiler-2.11.2.jar.sha1
-fetchArtifact org/scala-lang/scala-compiler/2.11.2/scala-compiler-2.11.2.jar
-fetchArtifact org/scala-lang/scala-compiler/2.11.2/scala-compiler-2.11.2.pom.sha1
-fetchArtifact org/scala-lang/scala-compiler/2.11.0-RC3/scala-compiler-2.11.0-RC3.jar.sha1
-fetchArtifact org/scala-lang/scala-compiler/2.11.0-RC3/scala-compiler-2.11.0-RC3.jar
-fetchArtifact org/scala-lang/scala-compiler/2.11.0-RC3/scala-compiler-2.11.0-RC3.pom.sha1
-fetchArtifact org/scala-lang/scala-compiler/2.11.0-RC3/scala-compiler-2.11.0-RC3.pom
-fetchArtifact org/scala-lang/scala-compiler/2.9.2/scala-compiler-2.9.2.jar
-fetchArtifact org/scala-lang/scala-compiler/2.9.2/scala-compiler-2.9.2.pom.sha1
-fetchArtifact org/scala-lang/scala-compiler/2.9.2/scala-compiler-2.9.2.pom
-fetchArtifact org/scala-lang/scala-compiler/2.9.2/scala-compiler-2.9.2.jar.sha1
-fetchArtifact org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.jar.sha1
-fetchArtifact org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.jar
-fetchArtifact org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.pom
-fetchArtifact org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.pom.sha1
-fetchArtifact org/scala-lang/scala-library/2.11.2/scala-library-2.11.2.pom.sha1
-fetchArtifact org/scala-lang/scala-library/2.11.2/scala-library-2.11.2.jar.sha1
-fetchArtifact org/scala-lang/scala-library/2.11.2/scala-library-2.11.2.pom
-fetchArtifact org/scala-lang/scala-library/2.11.2/scala-library-2.11.2.jar
-fetchArtifact org/scala-lang/scala-library/2.11.0-RC3/scala-library-2.11.0-RC3.pom
-fetchArtifact org/scala-lang/scala-library/2.11.0-RC3/scala-library-2.11.0-RC3.pom.sha1
-fetchArtifact org/scala-lang/scala-library/2.11.0-RC3/scala-library-2.11.0-RC3.jar
-fetchArtifact org/scala-lang/scala-library/2.11.0-RC3/scala-library-2.11.0-RC3.jar.sha1
-fetchArtifact org/scala-lang/scala-library/2.11.0/scala-library-2.11.0.pom
-fetchArtifact org/scala-lang/scala-library/2.11.0/scala-library-2.11.0.pom.sha1
-fetchArtifact org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.pom.sha1
-fetchArtifact org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.pom
-fetchArtifact org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.jar.sha1
-fetchArtifact org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.jar
-fetchArtifact org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.pom.sha1
-fetchArtifact org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.pom
-fetchArtifact org/scala-lang/scala-reflect/2.11.2/scala-reflect-2.11.2.jar
-fetchArtifact org/scala-lang/scala-reflect/2.11.2/scala-reflect-2.11.2.jar.sha1
-fetchArtifact org/scala-lang/scala-reflect/2.11.2/scala-reflect-2.11.2.pom
-fetchArtifact org/scala-lang/scala-reflect/2.11.2/scala-reflect-2.11.2.pom.sha1
-fetchArtifact org/scala-lang/scala-reflect/2.11.0-RC3/scala-reflect-2.11.0-RC3.pom.sha1
-fetchArtifact org/scala-lang/scala-reflect/2.11.0-RC3/scala-reflect-2.11.0-RC3.jar.sha1
-fetchArtifact org/scala-lang/scala-reflect/2.11.0-RC3/scala-reflect-2.11.0-RC3.pom
-fetchArtifact org/scala-lang/scala-reflect/2.11.0-RC3/scala-reflect-2.11.0-RC3.jar
-fetchArtifact org/scala-lang/scala-reflect/2.11.0/scala-reflect-2.11.0.pom.sha1
-fetchArtifact org/scala-lang/scala-reflect/2.11.0/scala-reflect-2.11.0.pom
-fetchArtifact org/scala-lang/modules/scala-xml_2.11.0-RC3/1.0.1/scala-xml_2.11.0-RC3-1.0.1.pom
-fetchArtifact org/scala-lang/modules/scala-xml_2.11.0-RC3/1.0.1/scala-xml_2.11.0-RC3-1.0.1.pom.sha1
-fetchArtifact org/scala-lang/modules/scala-xml_2.11.0-RC3/1.0.1/scala-xml_2.11.0-RC3-1.0.1.jar
-fetchArtifact org/scala-lang/modules/scala-xml_2.11.0-RC3/1.0.1/scala-xml_2.11.0-RC3-1.0.1.jar.sha1
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11.0-RC3/1.0.1/scala-parser-combinators_2.11.0-RC3-1.0.1.jar.sha1
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11.0-RC3/1.0.1/scala-parser-combinators_2.11.0-RC3-1.0.1.jar
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11.0-RC3/1.0.1/scala-parser-combinators_2.11.0-RC3-1.0.1.pom
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11.0-RC3/1.0.1/scala-parser-combinators_2.11.0-RC3-1.0.1.pom.sha1
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.pom.sha1
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.pom
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.jar.sha1
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.jar
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.2/scala-parser-combinators_2.11-1.0.2.jar.sha1
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.2/scala-parser-combinators_2.11-1.0.2.jar
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.2/scala-parser-combinators_2.11-1.0.2.pom.sha1
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.2/scala-parser-combinators_2.11-1.0.2.pom
-fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.1/scala-xml_2.11-1.0.1.jar.sha1
-fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.1/scala-xml_2.11-1.0.1.pom
-fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.1/scala-xml_2.11-1.0.1.jar
-fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.1/scala-xml_2.11-1.0.1.pom.sha1
-fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.pom.sha1
-fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.jar.sha1
-fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.pom
-fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.jar
-fetchArtifact org/scala-sbt/test-interface/1.0/test-interface-1.0.jar.sha1
-fetchArtifact org/scala-sbt/test-interface/1.0/test-interface-1.0.pom.sha1
-fetchArtifact org/scala-sbt/test-interface/1.0/test-interface-1.0.pom
-fetchArtifact org/scala-sbt/test-interface/1.0/test-interface-1.0.jar
-fetchArtifact org/specs2/specs2_2.11.0-RC3/2.3.10/specs2_2.11.0-RC3-2.3.10.jar.sha1
-fetchArtifact org/specs2/specs2_2.11.0-RC3/2.3.10/specs2_2.11.0-RC3-2.3.10.pom.sha1
-fetchArtifact org/specs2/specs2_2.11.0-RC3/2.3.10/specs2_2.11.0-RC3-2.3.10.pom
-fetchArtifact org/specs2/specs2_2.11.0-RC3/2.3.10/specs2_2.11.0-RC3-2.3.10.jar
-fetchArtifact org/specs2/classycle/1.4.3/classycle-1.4.3.jar
-fetchArtifact org/specs2/classycle/1.4.3/classycle-1.4.3.pom
-fetchArtifact org/specs2/classycle/1.4.3/classycle-1.4.3.jar.sha1
-fetchArtifact org/specs2/classycle/1.4.3/classycle-1.4.3.pom.sha1
-fetchArtifact org/jdom/jdom/1.1/jdom-1.1.pom
-fetchArtifact org/jdom/jdom/1.1/jdom-1.1.jar
-fetchArtifact org/jdom/jdom/1.1/jdom-1.1.jar.sha1
-fetchArtifact org/jdom/jdom/1.1/jdom-1.1.pom.sha1
-fetchArtifact org/jboss/shrinkwrap/shrinkwrap-bom/1.0.1/shrinkwrap-bom-1.0.1.pom
-fetchArtifact org/jboss/shrinkwrap/shrinkwrap-bom/1.0.1/shrinkwrap-bom-1.0.1.pom.sha1
-fetchArtifact org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-bom/2.0.0-alpha-3/shrinkwrap-descriptors-bom-2.0.0-alpha-3.pom.sha1
-fetchArtifact org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-bom/2.0.0-alpha-3/shrinkwrap-descriptors-bom-2.0.0-alpha-3.pom
-fetchArtifact org/jboss/shrinkwrap/resolver/shrinkwrap-resolver-bom/1.0.0-beta-7/shrinkwrap-resolver-bom-1.0.0-beta-7.pom
-fetchArtifact org/jboss/shrinkwrap/resolver/shrinkwrap-resolver-bom/1.0.0-beta-7/shrinkwrap-resolver-bom-1.0.0-beta-7.pom.sha1
-fetchArtifact org/jboss/jboss-parent/9/jboss-parent-9.pom.sha1
-fetchArtifact org/jboss/jboss-parent/9/jboss-parent-9.pom
-fetchArtifact org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.pom
-fetchArtifact org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.jar
-fetchArtifact org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.jar.sha1
-fetchArtifact org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.pom.sha1
-fetchArtifact org/jboss/arquillian/arquillian-bom/1.0.2.Final/arquillian-bom-1.0.2.Final.pom
-fetchArtifact org/jboss/arquillian/arquillian-bom/1.0.2.Final/arquillian-bom-1.0.2.Final.pom.sha1
-fetchArtifact org/rogach/scallop_2.11/0.9.5/scallop_2.11-0.9.5.jar.sha1
-fetchArtifact org/rogach/scallop_2.11/0.9.5/scallop_2.11-0.9.5.pom
-fetchArtifact org/rogach/scallop_2.11/0.9.5/scallop_2.11-0.9.5.pom.sha1
-fetchArtifact org/rogach/scallop_2.11/0.9.5/scallop_2.11-0.9.5.jar
-fetchArtifact org/scalacheck/scalacheck_2.11.0-RC3/1.11.3/scalacheck_2.11.0-RC3-1.11.3.pom
-fetchArtifact org/scalacheck/scalacheck_2.11.0-RC3/1.11.3/scalacheck_2.11.0-RC3-1.11.3.jar.sha1
-fetchArtifact org/scalacheck/scalacheck_2.11.0-RC3/1.11.3/scalacheck_2.11.0-RC3-1.11.3.jar
-fetchArtifact org/scalacheck/scalacheck_2.11.0-RC3/1.11.3/scalacheck_2.11.0-RC3-1.11.3.pom.sha1
-fetchArtifact org/tinyjee/jgraphx/jgraphx/2.0.0.1/jgraphx-2.0.0.1.jar.sha1
-fetchArtifact org/tinyjee/jgraphx/jgraphx/2.0.0.1/jgraphx-2.0.0.1.pom
-fetchArtifact org/tinyjee/jgraphx/jgraphx/2.0.0.1/jgraphx-2.0.0.1.jar
-fetchArtifact org/tinyjee/jgraphx/jgraphx/2.0.0.1/jgraphx-2.0.0.1.pom.sha1
-fetchArtifact org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.jar
-fetchArtifact org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.pom
-fetchArtifact org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.jar.sha1
-fetchArtifact org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.pom.sha1
-fetchArtifact org/hibernate/hibernate-validator-parent/5.1.2.Final/hibernate-validator-parent-5.1.2.Final.pom.sha1
-fetchArtifact org/hibernate/hibernate-validator-parent/5.1.2.Final/hibernate-validator-parent-5.1.2.Final.pom
-fetchArtifact org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.pom.sha1
-fetchArtifact org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.pom
-fetchArtifact org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar
-fetchArtifact org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.pom
-fetchArtifact org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.pom.sha1
-fetchArtifact org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar.sha1
-fetchArtifact org/slf4j/slf4j-api/1.7.6/slf4j-api-1.7.6.pom
-fetchArtifact org/slf4j/slf4j-api/1.7.6/slf4j-api-1.7.6.pom.sha1
-fetchArtifact org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar
-fetchArtifact org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.pom
-fetchArtifact org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.pom.sha1
-fetchArtifact org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar.sha1
-fetchArtifact org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.jar.sha1
-fetchArtifact org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.pom.sha1
-fetchArtifact org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.pom
-fetchArtifact org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.jar
-fetchArtifact org/slf4j/slf4j-parent/1.7.5/slf4j-parent-1.7.5.pom
-fetchArtifact org/slf4j/slf4j-parent/1.7.5/slf4j-parent-1.7.5.pom.sha1
-fetchArtifact org/slf4j/slf4j-parent/1.7.7/slf4j-parent-1.7.7.pom
-fetchArtifact org/slf4j/slf4j-parent/1.7.7/slf4j-parent-1.7.7.pom.sha1
-fetchArtifact org/slf4j/slf4j-parent/1.7.6/slf4j-parent-1.7.6.pom.sha1
-fetchArtifact org/slf4j/slf4j-parent/1.7.6/slf4j-parent-1.7.6.pom
-fetchArtifact org/slf4j/slf4j-parent/1.6.1/slf4j-parent-1.6.1.pom
-fetchArtifact org/slf4j/slf4j-parent/1.6.1/slf4j-parent-1.6.1.pom.sha1
-fetchArtifact org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.jar
-fetchArtifact org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.pom
-fetchArtifact org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.jar.sha1
-fetchArtifact org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.pom.sha1
-fetchArtifact org/apache/xbean/xbean/3.4/xbean-3.4.pom.sha1
-fetchArtifact org/apache/xbean/xbean/3.4/xbean-3.4.pom
-fetchArtifact org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom.sha1
-fetchArtifact org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom
-fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar.sha1
-fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom.sha1
-fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar
-fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom
-fetchArtifact org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom.sha1
-fetchArtifact org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom
-fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom
-fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar.sha1
-fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom.sha1
-fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar
-fetchArtifact org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom.sha1
-fetchArtifact org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom
-fetchArtifact org/apache/httpcomponents/project/4.0/project-4.0.pom.sha1
-fetchArtifact org/apache/httpcomponents/project/4.0/project-4.0.pom
-fetchArtifact org/apache/httpcomponents/project/4.1/project-4.1.pom
-fetchArtifact org/apache/httpcomponents/project/4.1/project-4.1.pom.sha1
-fetchArtifact org/apache/ant/ant-launcher/1.8.2/ant-launcher-1.8.2.jar.sha1
-fetchArtifact org/apache/ant/ant-launcher/1.8.2/ant-launcher-1.8.2.jar
-fetchArtifact org/apache/ant/ant-launcher/1.8.2/ant-launcher-1.8.2.pom
-fetchArtifact org/apache/ant/ant-launcher/1.8.2/ant-launcher-1.8.2.pom.sha1
-fetchArtifact org/apache/ant/ant/1.8.2/ant-1.8.2.jar
-fetchArtifact org/apache/ant/ant/1.8.2/ant-1.8.2.pom.sha1
-fetchArtifact org/apache/ant/ant/1.8.2/ant-1.8.2.pom
-fetchArtifact org/apache/ant/ant/1.8.2/ant-1.8.2.jar.sha1
-fetchArtifact org/apache/ant/ant-parent/1.8.2/ant-parent-1.8.2.pom.sha1
-fetchArtifact org/apache/ant/ant-parent/1.8.2/ant-parent-1.8.2.pom
-fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.jar.sha1
-fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.pom.sha1
-fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.jar
-fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.pom
-fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.pom
-fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.jar
-fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.3/maven-shade-plugin-2.3.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.3/maven-shade-plugin-2.3.jar
-fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.3/maven-shade-plugin-2.3.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.3/maven-shade-plugin-2.3.pom
-fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.pom
-fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.jar
-fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom
-fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar
-fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.pom
-fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.jar
-fetchArtifact org/apache/maven/plugins/maven-antrun-plugin/1.7/maven-antrun-plugin-1.7.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-antrun-plugin/1.7/maven-antrun-plugin-1.7.pom
-fetchArtifact org/apache/maven/plugins/maven-antrun-plugin/1.7/maven-antrun-plugin-1.7.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-antrun-plugin/1.7/maven-antrun-plugin-1.7.jar
-fetchArtifact org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-plugins/25/maven-plugins-25.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-plugins/25/maven-plugins-25.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/23/maven-plugins-23.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/23/maven-plugins-23.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-surefire-report-plugin/2.14.1/maven-surefire-report-plugin-2.14.1.pom
-fetchArtifact org/apache/maven/plugins/maven-surefire-report-plugin/2.14.1/maven-surefire-report-plugin-2.14.1.jar
-fetchArtifact org/apache/maven/plugins/maven-surefire-report-plugin/2.14.1/maven-surefire-report-plugin-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-surefire-report-plugin/2.14.1/maven-surefire-report-plugin-2.14.1.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.14.1/maven-surefire-plugin-2.14.1.jar
-fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.14.1/maven-surefire-plugin-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.14.1/maven-surefire-plugin-2.14.1.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.14.1/maven-surefire-plugin-2.14.1.pom
-fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom
-fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.pom
-fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.pom
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.jar
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.pom
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-filtering/1.1/maven-filtering-1.1.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-filtering/1.1/maven-filtering-1.1.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-filtering/1.1/maven-filtering-1.1.pom
-fetchArtifact org/apache/maven/shared/maven-filtering/1.1/maven-filtering-1.1.jar
-fetchArtifact org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/12/maven-shared-components-12.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/12/maven-shared-components-12.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/11/maven-shared-components-11.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/11/maven-shared-components-11.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.jar
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.pom
-fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom
-fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar
-fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar.sha1
-fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar.sha1
-fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar
-fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom
-fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.jar
-fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.pom
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar
-fetchArtifact org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.jar
-fetchArtifact org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.pom
-fetchArtifact org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.pom
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.pom
-fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom
-fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.5/maven-artifact-manager-2.0.5.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.5/maven-artifact-manager-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.10/maven-artifact-manager-2.0.10.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.10/maven-artifact-manager-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.11/maven-artifact-manager-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.11/maven-artifact-manager-2.0.11.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.jar
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/plugin-tools/maven-plugin-tools/3.2/maven-plugin-tools-3.2.pom
-fetchArtifact org/apache/maven/plugin-tools/maven-plugin-tools/3.2/maven-plugin-tools-3.2.pom.sha1
-fetchArtifact org/apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.pom.sha1
-fetchArtifact org/apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.jar
-fetchArtifact org/apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.pom
-fetchArtifact org/apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.jar.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.jar
-fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom
-fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.jar.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.5/maven-profile-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.5/maven-profile-2.0.5.pom
-fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom
-fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom
-fetchArtifact org/apache/maven/maven-profile/2.0.10/maven-profile-2.0.10.pom
-fetchArtifact org/apache/maven/maven-profile/2.0.10/maven-profile-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom
-fetchArtifact org/apache/maven/maven-profile/2.0.11/maven-profile-2.0.11.pom
-fetchArtifact org/apache/maven/maven-profile/2.0.11/maven-profile-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.jar
-fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom
-fetchArtifact org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom
-fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom
-fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom
-fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.10/maven-project-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.10/maven-project-2.0.10.pom
-fetchArtifact org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom
-fetchArtifact org/apache/maven/maven-project/2.0.11/maven-project-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.11/maven-project-2.0.11.pom
-fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom
-fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.jar
-fetchArtifact org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom
-fetchArtifact org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom
-fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.pom
-fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom
-fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.10/maven-model-2.0.10.pom
-fetchArtifact org/apache/maven/maven-model/2.0.10/maven-model-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom
-fetchArtifact org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.11/maven-model-2.0.11.pom
-fetchArtifact org/apache/maven/maven-model/2.0.11/maven-model-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom
-fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.jar
-fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire/2.14.1/surefire-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire/2.14.1/surefire-2.14.1.pom
-fetchArtifact org/apache/maven/surefire/surefire-report-parser/2.14.1/surefire-report-parser-2.14.1.jar
-fetchArtifact org/apache/maven/surefire/surefire-report-parser/2.14.1/surefire-report-parser-2.14.1.jar.sha1
-fetchArtifact org/apache/maven/surefire/surefire-report-parser/2.14.1/surefire-report-parser-2.14.1.pom
-fetchArtifact org/apache/maven/surefire/surefire-report-parser/2.14.1/surefire-report-parser-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire-junit4/2.14.1/surefire-junit4-2.14.1.pom
-fetchArtifact org/apache/maven/surefire/surefire-junit4/2.14.1/surefire-junit4-2.14.1.jar.sha1
-fetchArtifact org/apache/maven/surefire/surefire-junit4/2.14.1/surefire-junit4-2.14.1.jar
-fetchArtifact org/apache/maven/surefire/surefire-junit4/2.14.1/surefire-junit4-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.14.1/maven-surefire-common-2.14.1.jar.sha1
-fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.14.1/maven-surefire-common-2.14.1.pom
-fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.14.1/maven-surefire-common-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.14.1/maven-surefire-common-2.14.1.jar
-fetchArtifact org/apache/maven/surefire/surefire-booter/2.14.1/surefire-booter-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire-booter/2.14.1/surefire-booter-2.14.1.jar
-fetchArtifact org/apache/maven/surefire/surefire-booter/2.14.1/surefire-booter-2.14.1.pom
-fetchArtifact org/apache/maven/surefire/surefire-booter/2.14.1/surefire-booter-2.14.1.jar.sha1
-fetchArtifact org/apache/maven/surefire/surefire-api/2.14.1/surefire-api-2.14.1.pom
-fetchArtifact org/apache/maven/surefire/surefire-api/2.14.1/surefire-api-2.14.1.jar
-fetchArtifact org/apache/maven/surefire/surefire-api/2.14.1/surefire-api-2.14.1.jar.sha1
-fetchArtifact org/apache/maven/surefire/surefire-api/2.14.1/surefire-api-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire-providers/2.14.1/surefire-providers-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire-providers/2.14.1/surefire-providers-2.14.1.pom
-fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom
-fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.5/maven-repository-metadata-2.0.5.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.5/maven-repository-metadata-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.10/maven-repository-metadata-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.10/maven-repository-metadata-2.0.10.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.11/maven-repository-metadata-2.0.11.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.11/maven-repository-metadata-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.jar
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.pom
-fetchArtifact org/apache/maven/maven/2.0.5/maven-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.5/maven-2.0.5.pom
-fetchArtifact org/apache/maven/maven/2.2.0/maven-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven/2.2.0/maven-2.2.0.pom
-fetchArtifact org/apache/maven/maven/3.0/maven-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven/3.0/maven-3.0.pom
-fetchArtifact org/apache/maven/maven/2.0.6/maven-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.6/maven-2.0.6.pom
-fetchArtifact org/apache/maven/maven/2.0.10/maven-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.10/maven-2.0.10.pom
-fetchArtifact org/apache/maven/maven/2.0.8/maven-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.8/maven-2.0.8.pom
-fetchArtifact org/apache/maven/maven/2.2.1/maven-2.2.1.pom
-fetchArtifact org/apache/maven/maven/2.2.1/maven-2.2.1.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.2/maven-2.0.2.pom
-fetchArtifact org/apache/maven/maven/2.0.2/maven-2.0.2.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.11/maven-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.11/maven-2.0.11.pom
-fetchArtifact org/apache/maven/maven/2.0.9/maven-2.0.9.pom
-fetchArtifact org/apache/maven/maven/2.0.9/maven-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom
-fetchArtifact org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.10/maven-artifact-2.0.10.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.10/maven-artifact-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom
-fetchArtifact org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom
-fetchArtifact org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.11/maven-artifact-2.0.11.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.11/maven-artifact-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.jar
-fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.5/maven-settings-2.0.5.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.5/maven-settings-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom
-fetchArtifact org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.10/maven-settings-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.10/maven-settings-2.0.10.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.11/maven-settings-2.0.11.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.11/maven-settings-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.jar
-fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom
-fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom
-fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.10/maven-plugin-registry-2.0.10.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.10/maven-plugin-registry-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.11/maven-plugin-registry-2.0.11.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.11/maven-plugin-registry-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.jar
-fetchArtifact org/apache/maven/maven-parent/7/maven-parent-7.pom
-fetchArtifact org/apache/maven/maven-parent/7/maven-parent-7.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/4/maven-parent-4.pom
-fetchArtifact org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/16/maven-parent-16.pom
-fetchArtifact org/apache/maven/maven-parent/16/maven-parent-16.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/22/maven-parent-22.pom
-fetchArtifact org/apache/maven/maven-parent/22/maven-parent-22.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/9/maven-parent-9.pom
-fetchArtifact org/apache/maven/maven-parent/9/maven-parent-9.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/24/maven-parent-24.pom
-fetchArtifact org/apache/maven/maven-parent/24/maven-parent-24.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/13/maven-parent-13.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/13/maven-parent-13.pom
-fetchArtifact org/apache/maven/maven-parent/5/maven-parent-5.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/5/maven-parent-5.pom
-fetchArtifact org/apache/maven/maven-parent/6/maven-parent-6.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/6/maven-parent-6.pom
-fetchArtifact org/apache/maven/maven-parent/21/maven-parent-21.pom
-fetchArtifact org/apache/maven/maven-parent/21/maven-parent-21.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/12/maven-parent-12.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/12/maven-parent-12.pom
-fetchArtifact org/apache/maven/maven-parent/23/maven-parent-23.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/23/maven-parent-23.pom
-fetchArtifact org/apache/maven/maven-parent/8/maven-parent-8.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/8/maven-parent-8.pom
-fetchArtifact org/apache/maven/maven-parent/15/maven-parent-15.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/15/maven-parent-15.pom
-fetchArtifact org/apache/maven/maven-parent/11/maven-parent-11.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/11/maven-parent-11.pom
-fetchArtifact org/apache/maven/maven-parent/10/maven-parent-10.pom
-fetchArtifact org/apache/maven/maven-parent/10/maven-parent-10.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom
-fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom
-fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom
-fetchArtifact org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom
-fetchArtifact org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.1/maven-reporting-impl-2.1.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.1/maven-reporting-impl-2.1.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.1/maven-reporting-impl-2.1.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.1/maven-reporting-impl-2.1.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.9/maven-reporting-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.9/maven-reporting-2.0.9.pom
-fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom
-fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.10/maven-plugin-api-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.10/maven-plugin-api-2.0.10.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.11/maven-plugin-api-2.0.11.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.11/maven-plugin-api-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.jar
-fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom
-fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom.sha1
-fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.pom
-fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.0/doxia-modules-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.0/doxia-modules-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.1.4/doxia-modules-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.1.4/doxia-modules-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.1.2/doxia-modules-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.1.2/doxia-modules-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.4/doxia-decoration-model-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.4/doxia-decoration-model-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.4/doxia-decoration-model-1.1.4.jar
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.4/doxia-decoration-model-1.1.4.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.2/doxia-decoration-model-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.2/doxia-decoration-model-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.4/doxia-module-fml-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.4/doxia-module-fml-1.1.4.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.4/doxia-module-fml-1.1.4.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.4/doxia-module-fml-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.2/doxia-module-fml-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.2/doxia-module-fml-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.0/doxia-sitetools-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.0/doxia-sitetools-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.1.4/doxia-sitetools-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.1.4/doxia-sitetools-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.1.2/doxia-sitetools-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.1.2/doxia-sitetools-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.1.4/doxia-core-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.1.4/doxia-core-1.1.4.jar
-fetchArtifact org/apache/maven/doxia/doxia-core/1.1.4/doxia-core-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-core/1.1.4/doxia-core-1.1.4.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.1.2/doxia-core-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-core/1.1.2/doxia-core-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.4/doxia-logging-api-1.1.4.jar
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.4/doxia-logging-api-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.4/doxia-logging-api-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.4/doxia-logging-api-1.1.4.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.2/doxia-logging-api-1.1.2.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.2/doxia-logging-api-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.2/doxia-logging-api-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.2/doxia-logging-api-1.1.2.jar
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.pom
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.4/doxia-sink-api-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.4/doxia-sink-api-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.4/doxia-sink-api-1.1.4.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.4/doxia-sink-api-1.1.4.jar
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.2/doxia-sink-api-1.1.2.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.2/doxia-sink-api-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.2/doxia-sink-api-1.1.2.jar
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.2/doxia-sink-api-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.4/doxia-module-xhtml-1.1.4.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.4/doxia-module-xhtml-1.1.4.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.4/doxia-module-xhtml-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.4/doxia-module-xhtml-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.2/doxia-module-xhtml-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.2/doxia-module-xhtml-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.1.4/doxia-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.1.4/doxia-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.1.2/doxia-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.1.2/doxia-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.4/doxia-site-renderer-1.1.4.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.4/doxia-site-renderer-1.1.4.jar
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.4/doxia-site-renderer-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.4/doxia-site-renderer-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.2/doxia-site-renderer-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.2/doxia-site-renderer-1.1.2.pom.sha1
-fetchArtifact org/apache/apache/7/apache-7.pom
-fetchArtifact org/apache/apache/7/apache-7.pom.sha1
-fetchArtifact org/apache/apache/4/apache-4.pom
-fetchArtifact org/apache/apache/4/apache-4.pom.sha1
-fetchArtifact org/apache/apache/1/apache-1.pom
-fetchArtifact org/apache/apache/1/apache-1.pom.sha1
-fetchArtifact org/apache/apache/9/apache-9.pom
-fetchArtifact org/apache/apache/9/apache-9.pom.sha1
-fetchArtifact org/apache/apache/14/apache-14.pom.sha1
-fetchArtifact org/apache/apache/14/apache-14.pom
-fetchArtifact org/apache/apache/13/apache-13.pom
-fetchArtifact org/apache/apache/13/apache-13.pom.sha1
-fetchArtifact org/apache/apache/3/apache-3.pom
-fetchArtifact org/apache/apache/3/apache-3.pom.sha1
-fetchArtifact org/apache/apache/5/apache-5.pom
-fetchArtifact org/apache/apache/5/apache-5.pom.sha1
-fetchArtifact org/apache/apache/6/apache-6.pom.sha1
-fetchArtifact org/apache/apache/6/apache-6.pom
-fetchArtifact org/apache/apache/11/apache-11.pom
-fetchArtifact org/apache/apache/11/apache-11.pom.sha1
-fetchArtifact org/apache/apache/10/apache-10.pom
-fetchArtifact org/apache/apache/10/apache-10.pom.sha1
-fetchArtifact org/apache/mesos/mesos/0.20.1/mesos-0.20.1.pom
-fetchArtifact org/apache/mesos/mesos/0.20.1/mesos-0.20.1.pom.sha1
-fetchArtifact org/apache/mesos/mesos/0.20.1/mesos-0.20.1.jar.sha1
-fetchArtifact org/apache/mesos/mesos/0.20.1/mesos-0.20.1.jar
-fetchArtifact org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.pom
-fetchArtifact org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.jar
-fetchArtifact org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.pom.sha1
-fetchArtifact org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.jar.sha1
-fetchArtifact org/apache/curator/apache-curator/2.6.0/apache-curator-2.6.0.pom
-fetchArtifact org/apache/curator/apache-curator/2.6.0/apache-curator-2.6.0.pom.sha1
-fetchArtifact org/apache/curator/curator-framework/2.6.0/curator-framework-2.6.0.pom.sha1
-fetchArtifact org/apache/curator/curator-framework/2.6.0/curator-framework-2.6.0.jar
-fetchArtifact org/apache/curator/curator-framework/2.6.0/curator-framework-2.6.0.pom
-fetchArtifact org/apache/curator/curator-framework/2.6.0/curator-framework-2.6.0.jar.sha1
-fetchArtifact org/apache/curator/curator-client/2.6.0/curator-client-2.6.0.jar
-fetchArtifact org/apache/curator/curator-client/2.6.0/curator-client-2.6.0.jar.sha1
-fetchArtifact org/apache/curator/curator-client/2.6.0/curator-client-2.6.0.pom.sha1
-fetchArtifact org/apache/curator/curator-client/2.6.0/curator-client-2.6.0.pom
-fetchArtifact org/apache/curator/curator-test/2.6.0/curator-test-2.6.0.pom.sha1
-fetchArtifact org/apache/curator/curator-test/2.6.0/curator-test-2.6.0.jar
-fetchArtifact org/apache/curator/curator-test/2.6.0/curator-test-2.6.0.pom
-fetchArtifact org/apache/curator/curator-test/2.6.0/curator-test-2.6.0.jar.sha1
-fetchArtifact org/apache/curator/curator-recipes/2.6.0/curator-recipes-2.6.0.jar.sha1
-fetchArtifact org/apache/curator/curator-recipes/2.6.0/curator-recipes-2.6.0.pom.sha1
-fetchArtifact org/apache/curator/curator-recipes/2.6.0/curator-recipes-2.6.0.pom
-fetchArtifact org/apache/curator/curator-recipes/2.6.0/curator-recipes-2.6.0.jar
-fetchArtifact org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.pom
-fetchArtifact org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.jar.sha1
-fetchArtifact org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.jar
-fetchArtifact org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.pom.sha1
-fetchArtifact org/apache/commons/commons-math/2.2/commons-math-2.2.jar.sha1
-fetchArtifact org/apache/commons/commons-math/2.2/commons-math-2.2.pom
-fetchArtifact org/apache/commons/commons-math/2.2/commons-math-2.2.jar
-fetchArtifact org/apache/commons/commons-math/2.2/commons-math-2.2.pom.sha1
-fetchArtifact org/apache/commons/commons-email/1.3.2/commons-email-1.3.2.jar
-fetchArtifact org/apache/commons/commons-email/1.3.2/commons-email-1.3.2.jar.sha1
-fetchArtifact org/apache/commons/commons-email/1.3.2/commons-email-1.3.2.pom.sha1
-fetchArtifact org/apache/commons/commons-email/1.3.2/commons-email-1.3.2.pom
-fetchArtifact org/apache/commons/commons-exec/1.0.1/commons-exec-1.0.1.jar
-fetchArtifact org/apache/commons/commons-exec/1.0.1/commons-exec-1.0.1.pom.sha1
-fetchArtifact org/apache/commons/commons-exec/1.0.1/commons-exec-1.0.1.pom
-fetchArtifact org/apache/commons/commons-exec/1.0.1/commons-exec-1.0.1.jar.sha1
-fetchArtifact org/apache/commons/commons-parent/28/commons-parent-28.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/28/commons-parent-28.pom
-fetchArtifact org/apache/commons/commons-parent/7/commons-parent-7.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/7/commons-parent-7.pom
-fetchArtifact org/apache/commons/commons-parent/22/commons-parent-22.pom
-fetchArtifact org/apache/commons/commons-parent/22/commons-parent-22.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/9/commons-parent-9.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/9/commons-parent-9.pom
-fetchArtifact org/apache/commons/commons-parent/24/commons-parent-24.pom
-fetchArtifact org/apache/commons/commons-parent/24/commons-parent-24.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/17/commons-parent-17.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/17/commons-parent-17.pom
-fetchArtifact org/apache/commons/commons-parent/32/commons-parent-32.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/32/commons-parent-32.pom
-fetchArtifact org/apache/commons/commons-parent/5/commons-parent-5.pom
-fetchArtifact org/apache/commons/commons-parent/5/commons-parent-5.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/18/commons-parent-18.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/18/commons-parent-18.pom
-fetchArtifact org/apache/commons/commons-parent/11/commons-parent-11.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/11/commons-parent-11.pom
-fetchArtifact org/apache/commons/commons-math3/3.2/commons-math3-3.2.pom.sha1
-fetchArtifact org/apache/commons/commons-math3/3.2/commons-math3-3.2.jar.sha1
-fetchArtifact org/apache/commons/commons-math3/3.2/commons-math3-3.2.jar
-fetchArtifact org/apache/commons/commons-math3/3.2/commons-math3-3.2.pom
-fetchArtifact org/codehaus/jackson/jackson-mapper-asl/1.6.1/jackson-mapper-asl-1.6.1.pom
-fetchArtifact org/codehaus/jackson/jackson-mapper-asl/1.6.1/jackson-mapper-asl-1.6.1.jar
-fetchArtifact org/codehaus/jackson/jackson-mapper-asl/1.6.1/jackson-mapper-asl-1.6.1.pom.sha1
-fetchArtifact org/codehaus/jackson/jackson-mapper-asl/1.6.1/jackson-mapper-asl-1.6.1.jar.sha1
-fetchArtifact org/codehaus/jackson/jackson-core-asl/1.6.1/jackson-core-asl-1.6.1.jar
-fetchArtifact org/codehaus/jackson/jackson-core-asl/1.6.1/jackson-core-asl-1.6.1.pom.sha1
-fetchArtifact org/codehaus/jackson/jackson-core-asl/1.6.1/jackson-core-asl-1.6.1.pom
-fetchArtifact org/codehaus/jackson/jackson-core-asl/1.6.1/jackson-core-asl-1.6.1.jar.sha1
-fetchArtifact org/codehaus/codehaus-parent/4/codehaus-parent-4.pom
-fetchArtifact org/codehaus/codehaus-parent/4/codehaus-parent-4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.19/plexus-components-1.1.19.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.19/plexus-components-1.1.19.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.15/plexus-components-1.1.15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.15/plexus-components-1.1.15.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom
-fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.pom
-fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.jar
-fetchArtifact org/codehaus/plexus/plexus-compilers/1.8.1/plexus-compilers-1.8.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compilers/1.8.1/plexus-compilers-1.8.1.pom
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.pom
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.jar
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.jar
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.pom
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.7/plexus-utils-1.5.7.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.7/plexus-utils-1.5.7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.jar
-fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.pom
-fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.jar
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.pom
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.jar
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.pom
-fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom
-fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar
-fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.8.1/plexus-compiler-manager-1.8.1.jar
-fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.8.1/plexus-compiler-manager-1.8.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.8.1/plexus-compiler-manager-1.8.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.8.1/plexus-compiler-manager-1.8.1.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/3.3/plexus-3.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/3.3/plexus-3.3.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom
-fetchArtifact org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom
-fetchArtifact org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/3.2/plexus-3.2.pom
-fetchArtifact org/codehaus/plexus/plexus/3.2/plexus-3.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom
-fetchArtifact org/codehaus/plexus/plexus/3.0.1/plexus-3.0.1.pom
-fetchArtifact org/codehaus/plexus/plexus/3.0.1/plexus-3.0.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler/1.8.1/plexus-compiler-1.8.1.pom
-fetchArtifact org/codehaus/plexus/plexus-compiler/1.8.1/plexus-compiler-1.8.1.pom.sha1
-fetchArtifact org/parboiled/parboiled-java/1.1.4/parboiled-java-1.1.4.pom.sha1
-fetchArtifact org/parboiled/parboiled-java/1.1.4/parboiled-java-1.1.4.pom
-fetchArtifact org/parboiled/parboiled-java/1.1.4/parboiled-java-1.1.4.jar.sha1
-fetchArtifact org/parboiled/parboiled-java/1.1.4/parboiled-java-1.1.4.jar
-fetchArtifact org/parboiled/parboiled-core/1.1.4/parboiled-core-1.1.4.jar
-fetchArtifact org/parboiled/parboiled-core/1.1.4/parboiled-core-1.1.4.jar.sha1
-fetchArtifact org/parboiled/parboiled-core/1.1.4/parboiled-core-1.1.4.pom
-fetchArtifact org/parboiled/parboiled-core/1.1.4/parboiled-core-1.1.4.pom.sha1
-fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom.sha1
-fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom
-fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
-fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar.sha1
-fetchArtifact org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom.sha1
-fetchArtifact org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom
-fetchArtifact org/eclipse/jetty/jetty-server/8.1.11.v20130520/jetty-server-8.1.11.v20130520.pom
-fetchArtifact org/eclipse/jetty/jetty-server/8.1.11.v20130520/jetty-server-8.1.11.v20130520.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-server/8.1.15.v20140411/jetty-server-8.1.15.v20140411.jar
-fetchArtifact org/eclipse/jetty/jetty-server/8.1.15.v20140411/jetty-server-8.1.15.v20140411.pom
-fetchArtifact org/eclipse/jetty/jetty-server/8.1.15.v20140411/jetty-server-8.1.15.v20140411.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-server/8.1.15.v20140411/jetty-server-8.1.15.v20140411.jar.sha1
-fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.11.v20130520/jetty-continuation-8.1.11.v20130520.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.11.v20130520/jetty-continuation-8.1.11.v20130520.pom
-fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.15.v20140411/jetty-continuation-8.1.15.v20140411.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.15.v20140411/jetty-continuation-8.1.15.v20140411.pom
-fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.15.v20140411/jetty-continuation-8.1.15.v20140411.jar
-fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.15.v20140411/jetty-continuation-8.1.15.v20140411.jar.sha1
-fetchArtifact org/eclipse/jetty/jetty-security/8.1.15.v20140411/jetty-security-8.1.15.v20140411.jar
-fetchArtifact org/eclipse/jetty/jetty-security/8.1.15.v20140411/jetty-security-8.1.15.v20140411.jar.sha1
-fetchArtifact org/eclipse/jetty/jetty-security/8.1.15.v20140411/jetty-security-8.1.15.v20140411.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-security/8.1.15.v20140411/jetty-security-8.1.15.v20140411.pom
-fetchArtifact org/eclipse/jetty/jetty-util/8.1.11.v20130520/jetty-util-8.1.11.v20130520.pom
-fetchArtifact org/eclipse/jetty/jetty-util/8.1.11.v20130520/jetty-util-8.1.11.v20130520.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-util/8.1.15.v20140411/jetty-util-8.1.15.v20140411.jar.sha1
-fetchArtifact org/eclipse/jetty/jetty-util/8.1.15.v20140411/jetty-util-8.1.15.v20140411.pom
-fetchArtifact org/eclipse/jetty/jetty-util/8.1.15.v20140411/jetty-util-8.1.15.v20140411.jar
-fetchArtifact org/eclipse/jetty/jetty-util/8.1.15.v20140411/jetty-util-8.1.15.v20140411.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-project/8.1.11.v20130520/jetty-project-8.1.11.v20130520.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-project/8.1.11.v20130520/jetty-project-8.1.11.v20130520.pom
-fetchArtifact org/eclipse/jetty/jetty-project/8.1.15.v20140411/jetty-project-8.1.15.v20140411.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-project/8.1.15.v20140411/jetty-project-8.1.15.v20140411.pom
-fetchArtifact org/eclipse/jetty/jetty-http/8.1.11.v20130520/jetty-http-8.1.11.v20130520.pom
-fetchArtifact org/eclipse/jetty/jetty-http/8.1.11.v20130520/jetty-http-8.1.11.v20130520.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-http/8.1.15.v20140411/jetty-http-8.1.15.v20140411.jar.sha1
-fetchArtifact org/eclipse/jetty/jetty-http/8.1.15.v20140411/jetty-http-8.1.15.v20140411.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-http/8.1.15.v20140411/jetty-http-8.1.15.v20140411.jar
-fetchArtifact org/eclipse/jetty/jetty-http/8.1.15.v20140411/jetty-http-8.1.15.v20140411.pom
-fetchArtifact org/eclipse/jetty/jetty-parent/20/jetty-parent-20.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-parent/20/jetty-parent-20.pom
-fetchArtifact org/eclipse/jetty/jetty-parent/18/jetty-parent-18.pom
-fetchArtifact org/eclipse/jetty/jetty-parent/18/jetty-parent-18.pom.sha1
-fetchArtifact org/eclipse/jetty/orbit/jetty-orbit/1/jetty-orbit-1.pom
-fetchArtifact org/eclipse/jetty/orbit/jetty-orbit/1/jetty-orbit-1.pom.sha1
-fetchArtifact org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar
-fetchArtifact org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.pom.sha1
-fetchArtifact org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar.sha1
-fetchArtifact org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.pom
-fetchArtifact org/eclipse/jetty/jetty-servlet/8.1.15.v20140411/jetty-servlet-8.1.15.v20140411.pom
-fetchArtifact org/eclipse/jetty/jetty-servlet/8.1.15.v20140411/jetty-servlet-8.1.15.v20140411.jar
-fetchArtifact org/eclipse/jetty/jetty-servlet/8.1.15.v20140411/jetty-servlet-8.1.15.v20140411.jar.sha1
-fetchArtifact org/eclipse/jetty/jetty-servlet/8.1.15.v20140411/jetty-servlet-8.1.15.v20140411.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-io/8.1.11.v20130520/jetty-io-8.1.11.v20130520.pom
-fetchArtifact org/eclipse/jetty/jetty-io/8.1.11.v20130520/jetty-io-8.1.11.v20130520.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-io/8.1.15.v20140411/jetty-io-8.1.15.v20140411.pom
-fetchArtifact org/eclipse/jetty/jetty-io/8.1.15.v20140411/jetty-io-8.1.15.v20140411.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-io/8.1.15.v20140411/jetty-io-8.1.15.v20140411.jar
-fetchArtifact org/eclipse/jetty/jetty-io/8.1.15.v20140411/jetty-io-8.1.15.v20140411.jar.sha1
-fetchArtifact org/scalaz/scalaz-core_2.11.0-RC3/7.0.6/scalaz-core_2.11.0-RC3-7.0.6.pom.sha1
-fetchArtifact org/scalaz/scalaz-core_2.11.0-RC3/7.0.6/scalaz-core_2.11.0-RC3-7.0.6.pom
-fetchArtifact org/scalaz/scalaz-core_2.11.0-RC3/7.0.6/scalaz-core_2.11.0-RC3-7.0.6.jar
-fetchArtifact org/scalaz/scalaz-core_2.11.0-RC3/7.0.6/scalaz-core_2.11.0-RC3-7.0.6.jar.sha1
-fetchArtifact org/scalaz/scalaz-effect_2.11.0-RC3/7.0.6/scalaz-effect_2.11.0-RC3-7.0.6.jar.sha1
-fetchArtifact org/scalaz/scalaz-effect_2.11.0-RC3/7.0.6/scalaz-effect_2.11.0-RC3-7.0.6.pom.sha1
-fetchArtifact org/scalaz/scalaz-effect_2.11.0-RC3/7.0.6/scalaz-effect_2.11.0-RC3-7.0.6.jar
-fetchArtifact org/scalaz/scalaz-effect_2.11.0-RC3/7.0.6/scalaz-effect_2.11.0-RC3-7.0.6.pom
-fetchArtifact org/scalaz/scalaz-concurrent_2.11.0-RC3/7.0.6/scalaz-concurrent_2.11.0-RC3-7.0.6.jar
-fetchArtifact org/scalaz/scalaz-concurrent_2.11.0-RC3/7.0.6/scalaz-concurrent_2.11.0-RC3-7.0.6.pom
-fetchArtifact org/scalaz/scalaz-concurrent_2.11.0-RC3/7.0.6/scalaz-concurrent_2.11.0-RC3-7.0.6.jar.sha1
-fetchArtifact org/scalaz/scalaz-concurrent_2.11.0-RC3/7.0.6/scalaz-concurrent_2.11.0-RC3-7.0.6.pom.sha1
-fetchArtifact org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
-fetchArtifact org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom
-fetchArtifact org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom.sha1
-fetchArtifact org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar.sha1
-fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.pom
-fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.pom.sha1
-fetchArtifact org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom
-fetchArtifact org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom.sha1
-fetchArtifact org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1.pom.sha1
-fetchArtifact org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1.pom
-fetchArtifact org/sonatype/oss/oss-parent/7/oss-parent-7.pom.sha1
-fetchArtifact org/sonatype/oss/oss-parent/7/oss-parent-7.pom
-fetchArtifact org/sonatype/oss/oss-parent/5/oss-parent-5.pom
-fetchArtifact org/sonatype/oss/oss-parent/5/oss-parent-5.pom.sha1
-fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom
-fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
-fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar.sha1
-fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom
-fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom
-fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom
-fetchArtifact org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom
-fetchArtifact org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom
-fetchArtifact org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom
-fetchArtifact org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom
-fetchArtifact org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom
-fetchArtifact org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom
-fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar.sha1
-fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
-fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom
-fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar.sha1
-fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
-fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom
-fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/16/spice-parent-16.pom
-fetchArtifact org/sonatype/spice/spice-parent/16/spice-parent-16.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/17/spice-parent-17.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/17/spice-parent-17.pom
-fetchArtifact org/sonatype/spice/spice-parent/12/spice-parent-12.pom
-fetchArtifact org/sonatype/spice/spice-parent/12/spice-parent-12.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/10/spice-parent-10.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/10/spice-parent-10.pom
-fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar
-fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar.sha1
-fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.pom
-fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.pom.sha1
-fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom.sha1
-fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
-fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom
-fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar.sha1
-fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom.sha1
-fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar.sha1
-fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
-fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom
-fetchArtifact org/sonatype/forge/forge-parent/4/forge-parent-4.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/4/forge-parent-4.pom
-fetchArtifact org/sonatype/forge/forge-parent/3/forge-parent-3.pom
-fetchArtifact org/sonatype/forge/forge-parent/3/forge-parent-3.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/5/forge-parent-5.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/5/forge-parent-5.pom
-fetchArtifact org/sonatype/forge/forge-parent/6/forge-parent-6.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/6/forge-parent-6.pom
-fetchArtifact org/sonatype/forge/forge-parent/10/forge-parent-10.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/10/forge-parent-10.pom
-fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.jar.sha1
-fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.pom.sha1
-fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.pom
-fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.jar
-fetchArtifact org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.pom
-fetchArtifact org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.pom.sha1
-fetchArtifact org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar.sha1
-fetchArtifact org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar
-fetchArtifact org/ow2/asm/asm-parent/5.0.2/asm-parent-5.0.2.pom.sha1
-fetchArtifact org/ow2/asm/asm-parent/5.0.2/asm-parent-5.0.2.pom
-fetchArtifact org/ow2/asm/asm-parent/4.1/asm-parent-4.1.pom
-fetchArtifact org/ow2/asm/asm-parent/4.1/asm-parent-4.1.pom.sha1
-fetchArtifact org/ow2/asm/asm-analysis/5.0.2/asm-analysis-5.0.2.jar
-fetchArtifact org/ow2/asm/asm-analysis/5.0.2/asm-analysis-5.0.2.pom.sha1
-fetchArtifact org/ow2/asm/asm-analysis/5.0.2/asm-analysis-5.0.2.pom
-fetchArtifact org/ow2/asm/asm-analysis/5.0.2/asm-analysis-5.0.2.jar.sha1
-fetchArtifact org/ow2/asm/asm-analysis/4.1/asm-analysis-4.1.pom
-fetchArtifact org/ow2/asm/asm-analysis/4.1/asm-analysis-4.1.jar
-fetchArtifact org/ow2/asm/asm-analysis/4.1/asm-analysis-4.1.pom.sha1
-fetchArtifact org/ow2/asm/asm-analysis/4.1/asm-analysis-4.1.jar.sha1
-fetchArtifact org/ow2/asm/asm/5.0.2/asm-5.0.2.jar.sha1
-fetchArtifact org/ow2/asm/asm/5.0.2/asm-5.0.2.pom.sha1
-fetchArtifact org/ow2/asm/asm/5.0.2/asm-5.0.2.pom
-fetchArtifact org/ow2/asm/asm/5.0.2/asm-5.0.2.jar
-fetchArtifact org/ow2/asm/asm/4.1/asm-4.1.jar.sha1
-fetchArtifact org/ow2/asm/asm/4.1/asm-4.1.pom.sha1
-fetchArtifact org/ow2/asm/asm/4.1/asm-4.1.pom
-fetchArtifact org/ow2/asm/asm/4.1/asm-4.1.jar
-fetchArtifact org/ow2/asm/asm-util/5.0.2/asm-util-5.0.2.pom
-fetchArtifact org/ow2/asm/asm-util/5.0.2/asm-util-5.0.2.jar
-fetchArtifact org/ow2/asm/asm-util/5.0.2/asm-util-5.0.2.pom.sha1
-fetchArtifact org/ow2/asm/asm-util/5.0.2/asm-util-5.0.2.jar.sha1
-fetchArtifact org/ow2/asm/asm-util/4.1/asm-util-4.1.jar
-fetchArtifact org/ow2/asm/asm-util/4.1/asm-util-4.1.pom
-fetchArtifact org/ow2/asm/asm-util/4.1/asm-util-4.1.pom.sha1
-fetchArtifact org/ow2/asm/asm-util/4.1/asm-util-4.1.jar.sha1
-fetchArtifact org/ow2/asm/asm-tree/5.0.2/asm-tree-5.0.2.jar
-fetchArtifact org/ow2/asm/asm-tree/5.0.2/asm-tree-5.0.2.jar.sha1
-fetchArtifact org/ow2/asm/asm-tree/5.0.2/asm-tree-5.0.2.pom
-fetchArtifact org/ow2/asm/asm-tree/5.0.2/asm-tree-5.0.2.pom.sha1
-fetchArtifact org/ow2/asm/asm-tree/4.1/asm-tree-4.1.jar
-fetchArtifact org/ow2/asm/asm-tree/4.1/asm-tree-4.1.pom.sha1
-fetchArtifact org/ow2/asm/asm-tree/4.1/asm-tree-4.1.jar.sha1
-fetchArtifact org/ow2/asm/asm-tree/4.1/asm-tree-4.1.pom
-fetchArtifact org/ow2/asm/asm-commons/5.0.2/asm-commons-5.0.2.pom
-fetchArtifact org/ow2/asm/asm-commons/5.0.2/asm-commons-5.0.2.jar
-fetchArtifact org/ow2/asm/asm-commons/5.0.2/asm-commons-5.0.2.jar.sha1
-fetchArtifact org/ow2/asm/asm-commons/5.0.2/asm-commons-5.0.2.pom.sha1
-fetchArtifact org/ow2/ow2/1.3/ow2-1.3.pom.sha1
-fetchArtifact org/ow2/ow2/1.3/ow2-1.3.pom
-fetchArtifact org/glassfish/web/javax.el/2.2.5/javax.el-2.2.5.jar.sha1
-fetchArtifact org/glassfish/web/javax.el/2.2.5/javax.el-2.2.5.jar
-fetchArtifact org/glassfish/web/javax.el/2.2.5/javax.el-2.2.5.pom
-fetchArtifact org/glassfish/web/javax.el/2.2.5/javax.el-2.2.5.pom.sha1
-fetchArtifact org/pegdown/pegdown/1.2.1/pegdown-1.2.1.jar.sha1
-fetchArtifact org/pegdown/pegdown/1.2.1/pegdown-1.2.1.pom
-fetchArtifact org/pegdown/pegdown/1.2.1/pegdown-1.2.1.pom.sha1
-fetchArtifact org/pegdown/pegdown/1.2.1/pegdown-1.2.1.jar
-fetchArtifact junit/junit/4.11/junit-4.11.jar
-fetchArtifact junit/junit/4.11/junit-4.11.pom
-fetchArtifact junit/junit/4.11/junit-4.11.jar.sha1
-fetchArtifact junit/junit/4.11/junit-4.11.pom.sha1
-fetchArtifact junit/junit/3.8.1/junit-3.8.1.pom
-fetchArtifact junit/junit/3.8.1/junit-3.8.1.jar
-fetchArtifact junit/junit/3.8.1/junit-3.8.1.jar.sha1
-fetchArtifact junit/junit/3.8.1/junit-3.8.1.pom.sha1
-fetchArtifact junit/junit/3.8.2/junit-3.8.2.pom
-fetchArtifact junit/junit/3.8.2/junit-3.8.2.pom.sha1
-fetchArtifact joda-time/joda-time/2.3/joda-time-2.3.pom
-fetchArtifact joda-time/joda-time/2.3/joda-time-2.3.jar.sha1
-fetchArtifact joda-time/joda-time/2.3/joda-time-2.3.jar
-fetchArtifact joda-time/joda-time/2.3/joda-time-2.3.pom.sha1
-fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar
-fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom.sha1
-fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom
-fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar.sha1
-fetchArtifact commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom
-fetchArtifact commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom.sha1
-fetchArtifact javax/inject/javax.inject/1/javax.inject-1.pom
-fetchArtifact javax/inject/javax.inject/1/javax.inject-1.jar
-fetchArtifact javax/inject/javax.inject/1/javax.inject-1.jar.sha1
-fetchArtifact javax/inject/javax.inject/1/javax.inject-1.pom.sha1
-fetchArtifact javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.pom.sha1
-fetchArtifact javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.jar.sha1
-fetchArtifact javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.jar
-fetchArtifact javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.pom
-fetchArtifact javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.pom
-fetchArtifact javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar.sha1
-fetchArtifact javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.pom.sha1
-fetchArtifact javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar
-fetchArtifact javax/mail/mail/1.4.5/mail-1.4.5.pom.sha1
-fetchArtifact javax/mail/mail/1.4.5/mail-1.4.5.jar
-fetchArtifact javax/mail/mail/1.4.5/mail-1.4.5.pom
-fetchArtifact javax/mail/mail/1.4.5/mail-1.4.5.jar.sha1
-fetchArtifact javax/activation/activation/1.1/activation-1.1.pom.sha1
-fetchArtifact javax/activation/activation/1.1/activation-1.1.pom
-fetchArtifact javax/activation/activation/1.1.1/activation-1.1.1.jar.sha1
-fetchArtifact javax/activation/activation/1.1.1/activation-1.1.1.pom
-fetchArtifact javax/activation/activation/1.1.1/activation-1.1.1.jar
-fetchArtifact javax/activation/activation/1.1.1/activation-1.1.1.pom.sha1
-fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar.sha1
-fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom.sha1
-fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar
-fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom
-fetchArtifact mesosphere/chaos_2.11/0.6.1/chaos_2.11-0.6.1.jar
-fetchArtifact mesosphere/chaos_2.11/0.6.1/chaos_2.11-0.6.1.pom
-fetchArtifact mesosphere/chaos_2.11/0.6.1/chaos_2.11-0.6.1.jar.sha1
-fetchArtifact mesosphere/chaos_2.11/0.6.1/chaos_2.11-0.6.1.pom.sha1
-fetchArtifact mesosphere/mesos-utils_2.11/0.20.1-1/mesos-utils_2.11-0.20.1-1.jar.sha1
-fetchArtifact mesosphere/mesos-utils_2.11/0.20.1-1/mesos-utils_2.11-0.20.1-1.pom
-fetchArtifact mesosphere/mesos-utils_2.11/0.20.1-1/mesos-utils_2.11-0.20.1-1.pom.sha1
-fetchArtifact mesosphere/mesos-utils_2.11/0.20.1-1/mesos-utils_2.11-0.20.1-1.jar
-fetchArtifact oro/oro/2.0.8/oro-2.0.8.pom
-fetchArtifact oro/oro/2.0.8/oro-2.0.8.jar.sha1
-fetchArtifact oro/oro/2.0.8/oro-2.0.8.pom.sha1
-fetchArtifact oro/oro/2.0.8/oro-2.0.8.jar
diff --git a/pkgs/applications/networking/cluster/cni/default.nix b/pkgs/applications/networking/cluster/cni/default.nix
index 5bbd1014125..02f5fc18d13 100644
--- a/pkgs/applications/networking/cluster/cni/default.nix
+++ b/pkgs/applications/networking/cluster/cni/default.nix
@@ -18,6 +18,6 @@ buildGoPackage rec {
     license = licenses.asl20;
     homepage = "https://github.com/containernetworking/cni";
     maintainers = with maintainers; [ offline vdemeester ];
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" "aarch64-linux" ];
   };
 }
diff --git a/pkgs/applications/networking/cluster/cni/plugins.nix b/pkgs/applications/networking/cluster/cni/plugins.nix
index 4aa15b218df..fb7d2e2d6a5 100644
--- a/pkgs/applications/networking/cluster/cni/plugins.nix
+++ b/pkgs/applications/networking/cluster/cni/plugins.nix
@@ -2,19 +2,21 @@
 
 buildGoModule rec {
   pname = "cni-plugins";
-  version = "0.8.6";
+  version = "0.8.7";
 
   src = fetchFromGitHub {
     owner = "containernetworking";
     repo = "plugins";
     rev = "v${version}";
-    sha256 = "0f1cqxjf26sy1c4aw6y7pyd9lrz0vknby4q5j6xj77a1pab9073m";
+    sha256 = "1sjk0cghldygx1jgx4bqv83qky7shk64n6xkkfxl92f12wyvsq9j";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   buildFlagsArray = [
-    "-ldflags=-X github.com/containernetworking/plugins/pkg/utils/buildversion.BuildVersion=${version}"
+    "-ldflags=-X github.com/containernetworking/plugins/pkg/utils/buildversion.BuildVersion=v${version}"
   ];
 
   subPackages = [
@@ -36,7 +38,7 @@ buildGoModule rec {
     "plugins/meta/tuning"
   ];
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) cri-o podman; };
 
   meta = with lib; {
     description = "Some standard networking plugins, maintained by the CNI team";
diff --git a/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix b/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix
index 0c5a716aa8a..a9cdbf79077 100644
--- a/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix
+++ b/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix
@@ -1,12 +1,12 @@
 { lib, buildGoModule, minikube }:
 
 buildGoModule rec {
-  inherit (minikube) version src nativeBuildInputs buildInputs vendorSha256 commit;
+  inherit (minikube) version src nativeBuildInputs buildInputs vendorSha256 doCheck;
 
   pname = "docker-machine-hyperkit";
 
   buildPhase = ''
-    make docker-machine-driver-hyperkit COMMIT=${commit}
+    make docker-machine-driver-hyperkit COMMIT=${src.rev}
   '';
 
   installPhase = ''
@@ -20,4 +20,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ atkinschang ];
     platforms = platforms.darwin;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/cluster/docker-machine/kvm2.nix b/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
index 60d478fe158..172370d25e9 100644
--- a/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
+++ b/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
@@ -1,7 +1,7 @@
 { lib, buildGoModule, minikube }:
 
 buildGoModule rec {
-  inherit (minikube) version src nativeBuildInputs buildInputs vendorSha256 commit;
+  inherit (minikube) version src nativeBuildInputs buildInputs vendorSha256 doCheck;
 
   pname = "docker-machine-kvm2";
 
@@ -10,7 +10,7 @@ buildGoModule rec {
   '';
 
   buildPhase = ''
-    make docker-machine-driver-kvm2 COMMIT=${commit}
+    make docker-machine-driver-kvm2 COMMIT=${src.rev}
   '';
 
   installPhase = ''
@@ -24,4 +24,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ tadfisher atkinschang ];
     platforms = platforms.linux;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/cluster/fluxctl/default.nix b/pkgs/applications/networking/cluster/fluxctl/default.nix
index 4354d72a5bd..44e21de0a03 100644
--- a/pkgs/applications/networking/cluster/fluxctl/default.nix
+++ b/pkgs/applications/networking/cluster/fluxctl/default.nix
@@ -1,26 +1,37 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "fluxctl";
-  version = "1.19.0";
+  version = "1.20.2";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = "flux";
     rev = version;
-    sha256 = "1w6ndp0nrpps6pkxnq38hikbnzwahi6j9gn8l0bxd0qkf7cjc5w0";
+    sha256 = "1a44lmrvi5f9jr04rblhcsg3zvqzvdp9wyw4m4h4scsqp5g7dfb7";
   };
 
-  vendorSha256 = "0w5l1lkzx4frllflkbilj8qqwf54wkz7hin7q8xn1vflkv3lxcnp";
+  vendorSha256 = "1yzh6iglrzd43yqs1b6qh1i62b6qaz3232lgxyg3gmc81p0i5kr0";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  doCheck = false;
 
   subPackages = [ "cmd/fluxctl" ];
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
+  postInstall = ''
+    for shell in bash fish zsh; do
+      $out/bin/fluxctl completion $shell > fluxctl.$shell
+      installShellCompletion fluxctl.$shell
+    done
+  '';
+
   meta = with stdenv.lib; {
     description = "CLI client for Flux, the GitOps Kubernetes operator";
     homepage = "https://github.com/fluxcd/flux";
     license = licenses.asl20;
     maintainers = with maintainers; [ Gonzih filalex77 ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/cluster/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix
index 2e4f68d6bfa..3e24a3d0608 100644
--- a/pkgs/applications/networking/cluster/helm/default.nix
+++ b/pkgs/applications/networking/cluster/helm/default.nix
@@ -2,15 +2,17 @@
 
 buildGoModule rec {
   pname = "helm";
-  version = "3.2.1";
+  version = "3.3.1";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = "helm";
     rev = "v${version}";
-    sha256 = "1453qkd9s4z4r0xzmv8ym7qfg33szf6gizfkb5zxj590fcbsgnd7";
+    sha256 = "0y3ilvafzwizd9zqvp8jijkkd1c2yy7zyl5xfma1zv2x96p7xgqh";
   };
-  vendorSha256 = "0j25m56cwzjd9b75v7xlb26q81bsmln77k23h9n8v2f2gqwwpkrl";
+  vendorSha256 = "0f8a0psvic923rh13f5041p7hr6w8dy9qxdw3l195yky5cf3fj6w";
+
+  doCheck = false;
 
   subPackages = [ "cmd/helm" ];
   buildFlagsArray = [ "-ldflags=-w -s -X helm.sh/helm/v3/internal/version.version=v${version}" ];
@@ -26,6 +28,6 @@ buildGoModule rec {
     homepage = "https://github.com/kubernetes/helm";
     description = "A package manager for kubernetes";
     license = licenses.asl20;
-    maintainers = with maintainers; [ rlupton20 edude03 saschagrunert Frostman ];
+    maintainers = with maintainers; [ rlupton20 edude03 saschagrunert Frostman Chili-Man ];
   };
 }
diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix
index e4a6f63b014..3b3794e9538 100644
--- a/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "helmfile";
-  version = "0.119.1";
+  version = "0.128.0";
 
   src = fetchFromGitHub {
     owner = "roboll";
     repo = "helmfile";
     rev = "v${version}";
-    sha256 = "1j9b0xw59w5ailwa7dqgbsdigviw8ng5r4jbsk9b80izcig805zz";
+    sha256 = "1ihvjbh3v91wxny9jq0x9qi3s2zzdpg96w1vrhiim43nnv0ydg1y";
   };
 
-  vendorSha256 = "11bw10s5wifzw2cy1100hyjv4xv7an7b05lcw6sphwyy56gsp2fy";
+  vendorSha256 = "181iksfadjqrgsia8zy0zf5lr4h732s7hxjjfkr4gac586dlbj0w";
+
+  doCheck = false;
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/applications/networking/cluster/helmsman/default.nix b/pkgs/applications/networking/cluster/helmsman/default.nix
index 840a46ebf66..19c7234e11b 100644
--- a/pkgs/applications/networking/cluster/helmsman/default.nix
+++ b/pkgs/applications/networking/cluster/helmsman/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "05vnysr5r3hbayss1pyifgp989kjw81h95iack8ady62k6ys5njl";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Helm Charts (k8s applications) as Code tool";
     homepage = "https://github.com/Praqma/helmsman";
diff --git a/pkgs/applications/networking/cluster/hetzner-kube/default.nix b/pkgs/applications/networking/cluster/hetzner-kube/default.nix
index 98edd849bac..7409d71fe8f 100644
--- a/pkgs/applications/networking/cluster/hetzner-kube/default.nix
+++ b/pkgs/applications/networking/cluster/hetzner-kube/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1jh2f66ys6rmrrwrf5zqfprgcvziyq6l4z8bfqwxgf1ysnxx525h";
 
+  doCheck = false;
+
   buildFlagsArray = ''
     -ldflags=
     -X github.com/xetys/hetzner-kube/cmd.version=${version}
@@ -25,4 +27,4 @@ buildGoModule rec {
     maintainers = with lib.maintainers; [ eliasp ];
     platforms = lib.platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/cluster/istioctl/default.nix b/pkgs/applications/networking/cluster/istioctl/default.nix
new file mode 100644
index 00000000000..59be45bb536
--- /dev/null
+++ b/pkgs/applications/networking/cluster/istioctl/default.nix
@@ -0,0 +1,51 @@
+{ lib, buildGoModule, fetchFromGitHub, go-bindata, installShellFiles }:
+
+buildGoModule rec {
+  pname = "istioctl";
+  version = "1.7.0";
+
+  src = fetchFromGitHub {
+    owner = "istio";
+    repo = "istio";
+    rev = version;
+    sha256 = "0541j1wdhlbm2spl1w3m0hig7lqn05xk1xws8748wfzbr8wkir31";
+  };
+  vendorSha256 = "0sz92nspfclqxnx0mf80jxqqwxanqsx9nl9hg7f9izks7jw544vx";
+
+  doCheck = false;
+
+  nativeBuildInputs = [ go-bindata installShellFiles ];
+
+  # Bundle charts
+  preBuild = ''
+    patchShebangs operator/scripts
+    operator/scripts/create_assets_gen.sh
+  '';
+
+  # Bundle release metadata
+  buildFlagsArray = let
+    attrs = [
+      "istio.io/pkg/version.buildVersion=${version}"
+      "istio.io/pkg/version.buildStatus=Nix"
+      "istio.io/pkg/version.buildTag=${version}"
+      "istio.io/pkg/version.buildHub=docker.io/istio"
+    ];
+  in ["-ldflags=-s -w ${lib.concatMapStringsSep " " (attr: "-X ${attr}") attrs}"];
+
+  subPackages = [ "istioctl/cmd/istioctl" ];
+
+  postInstall = ''
+    $out/bin/istioctl collateral --man --bash --zsh
+    installManPage *.1
+    installShellCompletion istioctl.bash
+    installShellCompletion --zsh _istioctl
+  '';
+
+  meta = with lib; {
+    description = "Istio configuration command line utility for service operators to debug and diagnose their Istio mesh";
+    homepage = "https://istio.io/latest/docs/reference/commands/istioctl";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ veehaitch ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/networking/cluster/jx/default.nix b/pkgs/applications/networking/cluster/jx/default.nix
index 304a3c6fa28..5199bbfaf33 100644
--- a/pkgs/applications/networking/cluster/jx/default.nix
+++ b/pkgs/applications/networking/cluster/jx/default.nix
@@ -1,24 +1,37 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule, fetchFromGitHub, lib, installShellFiles }:
 
 buildGoModule rec {
   pname = "jx";
-  version = "2.1.65";
+  version = "2.1.138";
 
   src = fetchFromGitHub {
     owner = "jenkins-x";
     repo = "jx";
     rev = "v${version}";
-    sha256 = "0zkp0z5qpqw44bjnl20xna7s251k7jsxccqnqkdqqrzmqjpkkwgx";
+    sha256 = "1i45gzaql6rfplliky56lrzwjnm2qzv25kgyq7gvn9c7hjaaq65b";
   };
 
-  vendorSha256 = "0zi2n8fywzy87yfwcx7di74s8mx0468zmg6kwjln7mwhr6q23adf";
+  vendorSha256 = "1wvggarakshpw7m8h0x2zvd6bshd2kzbrjynfa113z90pgksvjng";
+
+  doCheck = false;
 
   subPackages = [ "cmd/jx" ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
   buildFlagsArray = ''
     -ldflags=
+    -s -w
     -X github.com/jenkins-x/jx/pkg/version.Version=${version}
-    -X github.com/jenkins-x/jx/pkg/version.Revision=${version}
+    -X github.com/jenkins-x/jx/pkg/version.Revision=${src.rev}
+    -X github.com/jenkins-x/jx/pkg/version.GitTreeState=clean
+  '';
+
+  postInstall = ''
+    for shell in bash zsh; do
+      $out/bin/jx completion $shell > jx.$shell
+      installShellCompletion jx.$shell
+    done
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/cluster/k9s/default.nix b/pkgs/applications/networking/cluster/k9s/default.nix
index 4be3398f4be..3c793cc9ec3 100644
--- a/pkgs/applications/networking/cluster/k9s/default.nix
+++ b/pkgs/applications/networking/cluster/k9s/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "k9s";
-  version = "0.19.4";
+  version = "0.21.7";
 
   src = fetchFromGitHub {
     owner  = "derailed";
     repo   = "k9s";
     rev    = "v${version}";
-    sha256 = "1ya3lrw31pxd1rxzf88l5hzilaxwrng1a3ibawgn57my333hrmf6";
+    sha256 = "1rw1vzxfjzklzdpcxz7mplvlmggavaym260s7vzvbgvd1snf38cb";
   };
 
   buildFlagsArray = ''
@@ -18,12 +18,14 @@ buildGoModule rec {
       -X github.com/derailed/k9s/cmd.commit=${src.rev}
   '';
 
-  vendorSha256 = "0vvzv5v7j77v809h2ial9n23244j1sy3xhkarsv0wwkifc3swvq5";
+  vendorSha256 = "05rsbi40pihdh212d5zn6cchnkrqd6rsyl3vfsw77ksybwakrbf7";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Kubernetes CLI To Manage Your Clusters In Style.";
     homepage = "https://github.com/derailed/k9s";
     license = licenses.asl20;
-    maintainers = with maintainers; [ Gonzih ];
+    maintainers = with maintainers; [ Gonzih markus1189 ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/cluster/kops/default.nix b/pkgs/applications/networking/cluster/kops/default.nix
index e34f7e8412d..d751c8ca18e 100644
--- a/pkgs/applications/networking/cluster/kops/default.nix
+++ b/pkgs/applications/networking/cluster/kops/default.nix
@@ -3,8 +3,8 @@
 let
   goPackagePath = "k8s.io/kops";
 
-  generic = { version, sha256, ...}@attrs:
-    let attrs' = builtins.removeAttrs attrs ["version" "sha256"] ; in
+  generic = { version, sha256, rev ? version, ...}@attrs:
+    let attrs' = builtins.removeAttrs attrs ["version" "sha256" "rev"] ; in
       buildGoPackage {
         pname = "kops";
         inherit version;
@@ -12,7 +12,7 @@ let
         inherit goPackagePath;
 
         src = fetchFromGitHub {
-          rev = version;
+          rev = rev;
           owner = "kubernetes";
           repo = "kops";
           inherit sha256;
@@ -51,18 +51,19 @@ in rec {
 
   mkKops = generic;
 
-  kops_1_15 = mkKops {
-    version = "1.15.3";
-    sha256 = "0pzgrsl61nw8pm3s032lj020fw13x3fpzlj7lknsnd581f0gg4df";
-  };
-
   kops_1_16 = mkKops {
-    version = "1.16.3";
-    sha256 = "01j7r89vim12wgb2dv6p2pib8wj2daain179cawlyb5kjyyb3jnq";
+    version = "1.16.4";
+    sha256 = "0qi80hzd5wc8vn3y0wsckd7pq09xcshpzvcr7rl5zd4akxb0wl3f";
   };
 
   kops_1_17 = mkKops {
-    version = "1.17.0";
-    sha256 = "175fi7pdzncqyv2gyaf96rn96zaywlyqrb6669n42faxilhyjbw7";
+    version = "1.17.1";
+    sha256 = "1km6nwanmhfx8rl1wp445z9ib50jr2f86rd92vilm3q4rs9kig1h";
+  };
+
+  kops_1_18 = mkKops rec {
+    version = "1.18.0";
+    sha256 = "16zbjxxv08j31y7lhkqx2bnx0pc3r0vpfrlhdjs26z22p5rc4rrh";
+    rev = "v${version}";
   };
 }
diff --git a/pkgs/applications/networking/cluster/kpt/default.nix b/pkgs/applications/networking/cluster/kpt/default.nix
new file mode 100644
index 00000000000..c370d122703
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kpt/default.nix
@@ -0,0 +1,25 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "kpt";
+  version = "0.33.0";
+
+  src = fetchFromGitHub {
+    owner = "GoogleContainerTools";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1lvfbpxxddm1pk4mb4sm0chw15dalsfyhgy86npz94xjf1jssyh8";
+  };
+
+  vendorSha256 = "1xkjgzy9z7v5z4kl1769dgrrr0ljr0fdxfdj7xbic9hl6nm94kif";
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "A toolkit to help you manage, manipulate, customize, and apply Kubernetes Resource configuration data files";
+    homepage = "https://googlecontainertools.github.io/kpt/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mikefaille ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/applications/networking/cluster/kube-router/default.nix b/pkgs/applications/networking/cluster/kube-router/default.nix
index c51e62b30b9..d967c741fca 100644
--- a/pkgs/applications/networking/cluster/kube-router/default.nix
+++ b/pkgs/applications/networking/cluster/kube-router/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "kube-router";
-  version = "1.0.0";
+  version = "1.0.1";
 
   goPackagePath = "github.com/cloudnativelabs/kube-router";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "cloudnativelabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0b6rsiq3pwp7wknmblgd8kszh9bd7nhvlsnyyamqnhlfjl97929x";
+    sha256 = "00bypaccv8q9xdcz6vlvl1qxqxqssl21bs4nkd1a6q8b4jpl339z";
   };
 
   buildFlagsArray = ''
diff --git a/pkgs/applications/networking/cluster/kube3d/default.nix b/pkgs/applications/networking/cluster/kube3d/default.nix
index c6ae0629d7c..0c1f452ea5b 100644
--- a/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -1,28 +1,38 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "kube3d";
-  version = "1.7.0";
-  k3sVersion = "1.17.3-k3s1";
+  version = "3.0.1";
+  k3sVersion = "1.18.6-k3s1";
 
-  goPackagePath = "github.com/rancher/k3d";
+  excludedPackages = ''tools'';
 
   src = fetchFromGitHub {
     owner  = "rancher";
     repo   = "k3d";
     rev    = "v${version}";
-    sha256 = "0aij2l7zmg4cxbw7pwf7ddc64di25hpjvbmp1madhz9q28rwfa9w";
+    sha256 = "1l6mh0dpf2bw9sxpn14iivv3pr8mj4favzx2hhn8k1j71cm1w4rj";
   };
 
   buildFlagsArray = ''
     -ldflags=
       -w -s
-      -X github.com/rancher/k3d/version.Version=${version}
-      -X github.com/rancher/k3d/version.K3sVersion=v${k3sVersion}
+      -X github.com/rancher/k3d/v3/version.Version=v${version}
+      -X github.com/rancher/k3d/v3/version.K3sVersion=v${k3sVersion}
+  '';
+
+  nativeBuildInputs = [ installShellFiles ];
+  postInstall = ''
+   for shell in bash zsh; do
+     $out/bin/k3d completion $shell > k3d.$shell
+     installShellCompletion k3d.$shell
+   done
   '';
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/rancher/k3d";
     description = "A helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container";
@@ -30,4 +40,4 @@ buildGoModule rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ kuznero jlesquembre ngerstle ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix
index 7dcff328226..91fa9e8b4ff 100644
--- a/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -15,13 +15,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "kubernetes";
-  version = "1.18.5";
+  version = "1.18.8";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "kubernetes";
     rev = "v${version}";
-    sha256 = "0pl7dzq5giwkzfyg4pzm8y76fnd62gaa6d4hswvgn87czab37lr6";
+    sha256 = "1dswgxxbybwllf2lf89saarsrn4pkb2617wycim07cd7i1l1dv5n";
   };
 
   nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];
diff --git a/pkgs/applications/networking/cluster/kubeseal/default.nix b/pkgs/applications/networking/cluster/kubeseal/default.nix
index c739be76324..0bd1967aec8 100644
--- a/pkgs/applications/networking/cluster/kubeseal/default.nix
+++ b/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "kubeseal";
-  version = "0.12.4";
+  version = "0.12.5";
 
   src = fetchFromGitHub {
     owner = "bitnami-labs";
     repo = "sealed-secrets";
     rev = "v${version}";
-    sha256 = "1abm63fb40zky5i97wm6h8ifmdf6i71ws9y7217hv2rnja37f4zd";
+    sha256 = "135ls3ngdz43qx6a49faczs2vdmccalsgak2hg0rairpy2jxym37";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   subPackages = [ "cmd/kubeseal" ];
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ];
@@ -23,4 +25,4 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ groodt ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/cluster/kubespy/default.nix b/pkgs/applications/networking/cluster/kubespy/default.nix
new file mode 100644
index 00000000000..e71e598e23d
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kubespy/default.nix
@@ -0,0 +1,33 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+  pname = "kubespy";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "pulumi";
+    repo = "kubespy";
+    sha256 = "1p0qmn6458pa9la6zkvyrkgs2rhzfwsk9m3rk5fkmcfbh7b031r8";
+  };
+
+  vendorSha256 = "0q85is01cbgxflnqdvxc9w5iqdizgvsc44h8z21j712bm2w7blqq";
+
+  doCheck = false;
+
+  # TODO: enable after https://github.com/pulumi/kubespy/issues/72 is addressed.
+  # postInstall = ''
+  # 	for shell in bash zsh; do
+  # 		$out/bin/kubespy completion $shell > kubespy.$shell
+  # 		installShellCompletion kubespy.$shell
+  # 	done
+  # '';
+
+  meta = with lib; {
+    description = "A tool to observe Kubernetes resources in real time";
+    homepage = "https://github.com/pulumi/kubespy";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ blaggacao ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/networking/cluster/kubetail/default.nix b/pkgs/applications/networking/cluster/kubetail/default.nix
index 114c5f5af15..7e6a66eea50 100644
--- a/pkgs/applications/networking/cluster/kubetail/default.nix
+++ b/pkgs/applications/networking/cluster/kubetail/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kubetail";
-  version = "1.6.10";
+  version = "1.6.12";
 
   src = fetchFromGitHub {
     owner = "johanhaleby";
     repo = "kubetail";
     rev = version;
-    sha256 = "0bg872n9fs6pl03rmjny9sgby718yznx9jwi5rx3hi4km3ha9j0b";
+    sha256 = "0hayfd7yvdhd2klfmhvl04hfqk0nfsimjyg3kbq8c5dbgbpz05nd";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/networking/cluster/kubeval/default.nix b/pkgs/applications/networking/cluster/kubeval/default.nix
index 10d75435e42..72dfe3ecc33 100644
--- a/pkgs/applications/networking/cluster/kubeval/default.nix
+++ b/pkgs/applications/networking/cluster/kubeval/default.nix
@@ -13,11 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "1kpwvi84i3h1yjprd6m6hn8l9j235931871y3qk9cl0g8q0hv9ja";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Validate your Kubernetes configuration files";
     homepage = "https://github.com/instrumenta/kubeval";
     license = licenses.asl20;
     maintainers = with maintainers; [ johanot nicknovitski ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/cluster/linkerd/default.nix b/pkgs/applications/networking/cluster/linkerd/default.nix
index 331cef0444c..70aeb784159 100644
--- a/pkgs/applications/networking/cluster/linkerd/default.nix
+++ b/pkgs/applications/networking/cluster/linkerd/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, buildGoModule }:
 
 buildGoModule {
-  pname = "linkerd-unstablle";
+  pname = "linkerd-unstable";
   version = "2020-05-01";
 
   src = fetchFromGitHub {
@@ -13,6 +13,8 @@ buildGoModule {
 
   vendorSha256 = "0vls58ld50jca5yn73kvg3lx4z83cc7skky54a90pkbj737y58pz";
 
+  doCheck = false;
+
   subPackages = [ "cli/cmd" ];
 
   meta = with stdenv.lib; {
@@ -21,4 +23,4 @@ buildGoModule {
     license = licenses.asl20;
     maintainers = with maintainers; [ Gonzih ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/cluster/luigi/default.nix b/pkgs/applications/networking/cluster/luigi/default.nix
index c6e2b7d8559..98b71cfe112 100644
--- a/pkgs/applications/networking/cluster/luigi/default.nix
+++ b/pkgs/applications/networking/cluster/luigi/default.nix
@@ -1,15 +1,22 @@
-{ lib, python3Packages }:
+{ lib, python3 }:
 
-python3Packages.buildPythonApplication rec {
+let
+  python = python3.override {
+    self = python;
+    packageOverrides = self: super: {
+      tornado = super.tornado_5;
+    };
+  };
+in with python.pkgs; buildPythonApplication rec {
   pname = "luigi";
-  version = "3.0.0";
+  version = "3.0.1";
 
-  src = python3Packages.fetchPypi {
+  src = fetchPypi {
     inherit pname version;
-    sha256 = "1km9fnq4pf0iqqcmz94idm0zb3l92zinz0bn6ip86xqhchafd4vf";
+    sha256 = "02c480f5pjgqsvqnkaw7f6n4nhdspmhq5w7lw8sgg2v3jghg8n7i";
   };
 
-  propagatedBuildInputs = with python3Packages; [ dateutil tornado_4 python-daemon boto3 ];
+  propagatedBuildInputs = [ dateutil tornado_5 python-daemon boto3 ];
 
   # Requires tox, hadoop, and google cloud
   doCheck = false;
diff --git a/pkgs/applications/networking/cluster/marathon/default.nix b/pkgs/applications/networking/cluster/marathon/default.nix
deleted file mode 100644
index df571f4cf86..00000000000
--- a/pkgs/applications/networking/cluster/marathon/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, makeWrapper, jdk, mesos, fetchurl }:
-
-stdenv.mkDerivation rec {
-  pname = "marathon";
-  version = "1.4.2";
-
-  src = fetchurl {
-    url = "https://downloads.mesosphere.com/marathon/v${version}/marathon-${version}.tgz";
-    sha256 = "6eab65a95c87a989e922aca2b49ba872b50a94e46a8fd4831d1ab41f319d6932";
-  };
-
-  buildInputs = [ makeWrapper jdk mesos ];
-
-  installPhase = ''
-    mkdir -p $out/{bin,libexec/marathon}
-    cp target/scala-*/marathon*.jar $out/libexec/marathon/${pname}-${version}.jar
-
-    makeWrapper ${jdk.jre}/bin/java $out/bin/marathon \
-      --add-flags "-Xmx512m -jar $out/libexec/marathon/${pname}-${version}.jar" \
-      --set "MESOS_NATIVE_JAVA_LIBRARY" "$MESOS_NATIVE_JAVA_LIBRARY"
-    '';
-
-  meta = with stdenv.lib; {
-    homepage = "https://mesosphere.github.io/marathon";
-    description = "Cluster-wide init and control system for services in cgroups or Docker containers";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ kamilchm pradeepchhetri ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/applications/networking/cluster/mesos/default.nix b/pkgs/applications/networking/cluster/mesos/default.nix
deleted file mode 100644
index ac1feee5d72..00000000000
--- a/pkgs/applications/networking/cluster/mesos/default.nix
+++ /dev/null
@@ -1,263 +0,0 @@
-{ stdenv, lib, makeWrapper, fetchurl, curl, sasl, openssh
-, unzip, gnutar, jdk, python, wrapPython
-, setuptools, boto, pythonProtobuf, apr, subversion, gzip
-, leveldb, glog, perf, utillinux, libnl, iproute, openssl, libevent
-, ethtool, coreutils, which, iptables, maven
-, bash, autoreconfHook
-, utf8proc, lz4
-, withJava ? !stdenv.isDarwin
-}:
-
-let
-  mavenRepo = import ./mesos-deps.nix { inherit stdenv curl; };
-  # `tar -z` requires gzip on $PATH, so wrap tar.
-  # At some point, we should try to patch mesos so we add gzip to the PATH when
-  # tar is invoked. I think that only needs to be done here:
-  #   src/common/command_utils.cpp
-  # https://github.com/NixOS/nixpkgs/issues/13783
-  tarWithGzip = lib.overrideDerivation gnutar (oldAttrs: {
-    # Original builder is bash 4.3.42 from bootstrap tools, too old for makeWrapper.
-    builder = "${bash}/bin/bash";
-    buildInputs = (oldAttrs.buildInputs or []) ++ [ makeWrapper ];
-    postInstall = (oldAttrs.postInstall or "") + ''
-      wrapProgram $out/bin/tar --prefix PATH ":" "${gzip}/bin"
-    '';
-  });
-
-in stdenv.mkDerivation rec {
-  version = "1.4.1";
-  pname = "mesos";
-
-  enableParallelBuilding = true;
-  dontDisableStatic = true;
-
-  src = fetchurl {
-    url = "mirror://apache/mesos/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1c7l0rim9ija913gpppz2mcms08ywyqhlzbbspqsi7wwfdd7jwsr";
-  };
-
-  patches = [
-    # https://reviews.apache.org/r/36610/
-    # TODO: is this still needed?
-    ./rb36610.patch
-
-    # see https://github.com/cstrahan/mesos/tree/nixos-${version}
-    ./nixos.patch
-  ];
-  nativeBuildInputs = [
-    autoreconfHook
-  ];
-  buildInputs = [
-    makeWrapper curl sasl
-    python wrapPython boto setuptools leveldb
-    subversion apr glog openssl libevent
-    utf8proc lz4
-  ] ++ lib.optionals stdenv.isLinux [
-    libnl
-  ] ++ lib.optionals withJava [
-    jdk maven
-  ];
-
-  propagatedBuildInputs = [
-    pythonProtobuf
-  ];
-
-  NIX_CFLAGS_COMPILE = "-Wno-error=format-overflow -Wno-error=class-memaccess";
-
-  preConfigure = ''
-    # https://issues.apache.org/jira/browse/MESOS-6616
-    configureFlagsArray+=(
-      "CXXFLAGS=-O2 -Wno-error=strict-aliasing"
-    )
-
-    substituteInPlace 3rdparty/stout/include/stout/jsonify.hpp \
-      --replace '<xlocale.h>' '<locale.h>'
-    # Fix cases where makedev(),major(),minor() are referenced through
-    # <sys/types.h> instead of <sys/sysmacros.h>
-    sed 1i'#include <sys/sysmacros.h>' -i src/linux/fs.cpp
-    sed 1i'#include <sys/sysmacros.h>' -i src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
-    substituteInPlace 3rdparty/stout/include/stout/os/posix/chown.hpp \
-      --subst-var-by chown ${coreutils}/bin/chown
-
-    substituteInPlace 3rdparty/stout/Makefile.am \
-      --replace "-lprotobuf" \
-                "${pythonProtobuf.protobuf}/lib/libprotobuf.a"
-
-    substituteInPlace 3rdparty/stout/include/stout/os/posix/fork.hpp \
-      --subst-var-by sh ${bash}/bin/bash
-
-    substituteInPlace 3rdparty/stout/include/stout/posix/os.hpp \
-      --subst-var-by tar ${tarWithGzip}/bin/tar
-
-    substituteInPlace src/cli/mesos-scp \
-      --subst-var-by scp ${openssh}/bin/scp
-
-    substituteInPlace src/common/command_utils.cpp \
-      --subst-var-by curl      ${curl}/bin/curl \
-      --subst-var-by gzip      ${gzip}/bin/gzip \
-      --subst-var-by sha512sum ${coreutils}/bin/sha512sum \
-      --subst-var-by tar       ${tarWithGzip}/bin/tar
-
-    substituteInPlace src/launcher/fetcher.cpp \
-      --subst-var-by cp    ${coreutils}/bin/cp \
-      --subst-var-by gzip  ${gzip}/bin/gzip \
-      --subst-var-by tar   ${tarWithGzip}/bin/tar \
-      --subst-var-by unzip ${unzip}/bin/unzip
-
-    substituteInPlace src/python/cli/src/mesos/cli.py \
-      --subst-var-by mesos-resolve $out/bin/mesos-resolve
-
-    substituteInPlace src/python/native_common/ext_modules.py.in \
-      --replace "-lprotobuf" \
-                "${pythonProtobuf.protobuf}/lib/libprotobuf.a"
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/gpu/volume.cpp \
-      --subst-var-by cp    ${coreutils}/bin/cp \
-      --subst-var-by which ${which}/bin/which
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/posix/disk.cpp \
-      --subst-var-by du ${coreutils}/bin/du
-
-    substituteInPlace src/slave/containerizer/mesos/provisioner/backends/copy.cpp \
-      --subst-var-by cp ${coreutils}/bin/cp \
-      --subst-var-by rm ${coreutils}/bin/rm
-
-    substituteInPlace src/uri/fetchers/copy.cpp \
-      --subst-var-by cp ${coreutils}/bin/cp
-
-    substituteInPlace src/uri/fetchers/curl.cpp \
-      --subst-var-by curl ${curl}/bin/curl
-
-    substituteInPlace src/uri/fetchers/docker.cpp \
-      --subst-var-by curl ${curl}/bin/curl
-
-    substituteInPlace src/Makefile.am \
-      --subst-var-by mavenRepo ${mavenRepo} \
-      --replace "-lprotobuf" \
-                "${pythonProtobuf.protobuf}/lib/libprotobuf.a"
-
-  '' + lib.optionalString stdenv.isLinux ''
-
-    substituteInPlace src/linux/perf.cpp \
-      --subst-var-by perf ${perf}/bin/perf
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp \
-      --subst-var-by mount ${utillinux}/bin/mount
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/filesystem/linux.cpp \
-      --subst-var-by mount ${utillinux}/bin/mount
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/filesystem/shared.cpp \
-      --subst-var-by mount ${utillinux}/bin/mount
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/gpu/isolator.cpp \
-      --subst-var-by mount ${utillinux}/bin/mount
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/namespaces/pid.cpp \
-      --subst-var-by mount ${utillinux}/bin/mount
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/network/cni/cni.cpp \
-      --subst-var-by mount ${utillinux}/bin/mount
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp \
-      --subst-var-by iptables ${iptables}/bin/iptables
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/network/port_mapping.cpp \
-      --subst-var-by ethtool ${ethtool}/sbin/ethtool \
-      --subst-var-by ip      ${iproute}/bin/ip \
-      --subst-var-by mount   ${utillinux}/bin/mount \
-      --subst-var-by tc      ${iproute}/bin/tc
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/volume/image.cpp \
-      --subst-var-by mount   ${utillinux}/bin/mount
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp \
-      --subst-var-by mount   ${utillinux}/bin/mount
-  '';
-
-  configureFlags = [
-    "--sbindir=\${out}/bin"
-    "--with-apr=${apr.dev}"
-    "--with-svn=${subversion.dev}"
-    "--with-leveldb=${leveldb}"
-    "--with-glog=${glog}"
-    "--enable-optimize"
-    "--disable-python-dependency-install"
-    "--enable-ssl"
-    "--with-ssl=${openssl.dev}"
-    "--enable-libevent"
-    "--with-libevent=${libevent.dev}"
-    "--with-protobuf=${pythonProtobuf.protobuf}"
-    "PROTOBUF_JAR=${mavenRepo}/com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar"
-    (if withJava then "--enable-java" else "--disable-java")
-  ] ++ lib.optionals stdenv.isLinux [
-    "--with-network-isolator"
-    "--with-nl=${libnl.dev}"
-  ];
-
-  postInstall = ''
-    rm -rf $out/var
-    rm $out/bin/*.sh
-
-    # Inspired by: pkgs/development/python-modules/generic/default.nix
-    pushd src/python
-    mkdir -p $out/lib/${python.libPrefix}/site-packages
-    export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
-    ${python}/bin/${python.executable} setup.py install \
-      --install-lib=$out/lib/${python.libPrefix}/site-packages \
-      --old-and-unmanageable \
-      --prefix="$out"
-    rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
-    popd
-
-    # optional python dependency for mesos cli
-    pushd src/python/cli
-    ${python}/bin/${python.executable} setup.py install \
-      --install-lib=$out/lib/${python.libPrefix}/site-packages \
-      --old-and-unmanageable \
-      --prefix="$out"
-    popd
-  '' + stdenv.lib.optionalString withJava ''
-    mkdir -p $out/share/java
-    cp src/java/target/mesos-*.jar $out/share/java
-
-    MESOS_NATIVE_JAVA_LIBRARY=$out/lib/libmesos${stdenv.hostPlatform.extensions.sharedLibrary}
-
-    mkdir -p $out/nix-support
-    touch $out/nix-support/setup-hook
-    echo "export MESOS_NATIVE_JAVA_LIBRARY=$MESOS_NATIVE_JAVA_LIBRARY" >> $out/nix-support/setup-hook
-    echo "export MESOS_NATIVE_LIBRARY=$MESOS_NATIVE_JAVA_LIBRARY" >> $out/nix-support/setup-hook
-  '';
-
-  postFixup = ''
-    if test -e $out/nix-support/propagated-build-inputs; then
-      ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
-    fi
-
-    for inputsfile in propagated-build-inputs propagated-native-build-inputs; do
-      if test -e $out/nix-support/$inputsfile; then
-        createBuildInputsPth $inputsfile "$(cat $out/nix-support/$inputsfile)"
-      fi
-    done
-
-    for f in $out/libexec/mesos/python/mesos/*.py; do
-      ${python}/bin/${python.executable} -c "import py_compile; py_compile.compile('$f')"
-    done
-
-    # wrap the python programs
-    for prog in mesos-cat mesos-ps mesos-scp mesos-tail; do
-      wrapProgram "$out/bin/$prog" \
-        --prefix PYTHONPATH ":" "$out/lib/${python.libPrefix}/site-packages"
-      true
-    done
-  '';
-
-  meta = with lib; {
-    homepage    = "http://mesos.apache.org";
-    license     = licenses.asl20;
-    description = "A cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks";
-    maintainers = with maintainers; [ cstrahan offline ];
-    platforms   = platforms.unix;
-    broken = true; # Broken since 2019-10-22 (https://hydra.nixos.org/build/115475123)
-  };
-}
diff --git a/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh b/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh
deleted file mode 100644
index 1e2840017b3..00000000000
--- a/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh
+++ /dev/null
@@ -1,1359 +0,0 @@
-source $stdenv/setup
-header "fetching Apache Mesos maven repo"
-
-function fetchArtifact {
-  repoPath="$1"
-  echo "Fetching $repoPath"
-  url="https://repo.maven.apache.org/maven2/$repoPath"
-  mkdir -p $(dirname $out/$repoPath)
-  curl --fail --location --insecure --retry 3 --max-redirs 20 "$url" --output "$out/$repoPath"
-}
-
-fetchArtifact org/apache/apache/11/apache-11.pom
-fetchArtifact org/apache/apache/11/apache-11.pom.sha1
-fetchArtifact org/apache/apache/10/apache-10.pom
-fetchArtifact org/apache/apache/10/apache-10.pom.sha1
-fetchArtifact org/apache/apache/7/apache-7.pom
-fetchArtifact org/apache/apache/7/apache-7.pom.sha1
-fetchArtifact org/apache/apache/9/apache-9.pom
-fetchArtifact org/apache/apache/9/apache-9.pom.sha1
-fetchArtifact org/apache/apache/13/apache-13.pom
-fetchArtifact org/apache/apache/13/apache-13.pom.sha1
-fetchArtifact org/apache/apache/3/apache-3.pom
-fetchArtifact org/apache/apache/3/apache-3.pom.sha1
-fetchArtifact org/apache/apache/6/apache-6.pom
-fetchArtifact org/apache/apache/6/apache-6.pom.sha1
-fetchArtifact org/apache/apache/4/apache-4.pom
-fetchArtifact org/apache/apache/4/apache-4.pom.sha1
-fetchArtifact org/apache/apache/2/apache-2.pom
-fetchArtifact org/apache/apache/2/apache-2.pom.sha1
-fetchArtifact org/apache/apache/5/apache-5.pom
-fetchArtifact org/apache/apache/5/apache-5.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-remote-resources-plugin/1.3/maven-remote-resources-plugin-1.3.pom
-fetchArtifact org/apache/maven/plugins/maven-remote-resources-plugin/1.3/maven-remote-resources-plugin-1.3.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-remote-resources-plugin/1.3/maven-remote-resources-plugin-1.3.jar
-fetchArtifact org/apache/maven/plugins/maven-remote-resources-plugin/1.3/maven-remote-resources-plugin-1.3.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-plugins/19/maven-plugins-19.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/19/maven-plugins-19.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-site-plugin/3.1/maven-site-plugin-3.1.pom
-fetchArtifact org/apache/maven/plugins/maven-site-plugin/3.1/maven-site-plugin-3.1.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-site-plugin/3.1/maven-site-plugin-3.1.jar
-fetchArtifact org/apache/maven/plugins/maven-site-plugin/3.1/maven-site-plugin-3.1.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-source-plugin/2.1.2/maven-source-plugin-2.1.2.pom
-fetchArtifact org/apache/maven/plugins/maven-source-plugin/2.1.2/maven-source-plugin-2.1.2.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-source-plugin/2.1.2/maven-source-plugin-2.1.2.jar
-fetchArtifact org/apache/maven/plugins/maven-source-plugin/2.1.2/maven-source-plugin-2.1.2.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-gpg-plugin/1.4/maven-gpg-plugin-1.4.pom
-fetchArtifact org/apache/maven/plugins/maven-gpg-plugin/1.4/maven-gpg-plugin-1.4.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-gpg-plugin/1.4/maven-gpg-plugin-1.4.jar
-fetchArtifact org/apache/maven/plugins/maven-gpg-plugin/1.4/maven-gpg-plugin-1.4.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom
-fetchArtifact org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.jar
-fetchArtifact org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.pom
-fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.jar
-fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.pom
-fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.jar
-fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.12/maven-surefire-plugin-2.12.pom
-fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.12/maven-surefire-plugin-2.12.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.12/maven-surefire-plugin-2.12.jar
-fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.12/maven-surefire-plugin-2.12.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.pom
-fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.jar
-fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-javadoc-plugin/2.8.1/maven-javadoc-plugin-2.8.1.pom
-fetchArtifact org/apache/maven/plugins/maven-javadoc-plugin/2.8.1/maven-javadoc-plugin-2.8.1.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-javadoc-plugin/2.8.1/maven-javadoc-plugin-2.8.1.jar
-fetchArtifact org/apache/maven/plugins/maven-javadoc-plugin/2.8.1/maven-javadoc-plugin-2.8.1.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.pom
-fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.jar
-fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom
-fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar
-fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar.sha1
-fetchArtifact org/apache/maven/maven-parent/21/maven-parent-21.pom
-fetchArtifact org/apache/maven/maven-parent/21/maven-parent-21.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/16/maven-parent-16.pom
-fetchArtifact org/apache/maven/maven-parent/16/maven-parent-16.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/19/maven-parent-19.pom
-fetchArtifact org/apache/maven/maven-parent/19/maven-parent-19.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/23/maven-parent-23.pom
-fetchArtifact org/apache/maven/maven-parent/23/maven-parent-23.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/5/maven-parent-5.pom
-fetchArtifact org/apache/maven/maven-parent/5/maven-parent-5.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/13/maven-parent-13.pom
-fetchArtifact org/apache/maven/maven-parent/13/maven-parent-13.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/7/maven-parent-7.pom
-fetchArtifact org/apache/maven/maven-parent/7/maven-parent-7.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/6/maven-parent-6.pom
-fetchArtifact org/apache/maven/maven-parent/6/maven-parent-6.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/8/maven-parent-8.pom
-fetchArtifact org/apache/maven/maven-parent/8/maven-parent-8.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/20/maven-parent-20.pom
-fetchArtifact org/apache/maven/maven-parent/20/maven-parent-20.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/10/maven-parent-10.pom
-fetchArtifact org/apache/maven/maven-parent/10/maven-parent-10.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/15/maven-parent-15.pom
-fetchArtifact org/apache/maven/maven-parent/15/maven-parent-15.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/11/maven-parent-11.pom
-fetchArtifact org/apache/maven/maven-parent/11/maven-parent-11.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/9/maven-parent-9.pom
-fetchArtifact org/apache/maven/maven-parent/9/maven-parent-9.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire/2.12/surefire-2.12.pom
-fetchArtifact org/apache/maven/surefire/surefire/2.12/surefire-2.12.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire-booter/2.12/surefire-booter-2.12.pom
-fetchArtifact org/apache/maven/surefire/surefire-booter/2.12/surefire-booter-2.12.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire-booter/2.12/surefire-booter-2.12.jar
-fetchArtifact org/apache/maven/surefire/surefire-booter/2.12/surefire-booter-2.12.jar.sha1
-fetchArtifact org/apache/maven/surefire/surefire-api/2.12/surefire-api-2.12.pom
-fetchArtifact org/apache/maven/surefire/surefire-api/2.12/surefire-api-2.12.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire-api/2.12/surefire-api-2.12.jar
-fetchArtifact org/apache/maven/surefire/surefire-api/2.12/surefire-api-2.12.jar.sha1
-fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.12/maven-surefire-common-2.12.pom
-fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.12/maven-surefire-common-2.12.pom.sha1
-fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.12/maven-surefire-common-2.12.jar
-fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.12/maven-surefire-common-2.12.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.jar
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.1/maven-plugin-api-2.0.1.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.1/maven-plugin-api-2.0.1.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.jar
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom
-fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.jar
-fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.2.1/maven-plugin-api-2.2.1.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.2.1/maven-plugin-api-2.2.1.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.6/maven-2.0.6.pom
-fetchArtifact org/apache/maven/maven/2.0.6/maven-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.1/maven-2.0.1.pom
-fetchArtifact org/apache/maven/maven/2.0.1/maven-2.0.1.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.8/maven-2.0.8.pom
-fetchArtifact org/apache/maven/maven/2.0.8/maven-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0/maven-2.0.pom
-fetchArtifact org/apache/maven/maven/2.0/maven-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.9/maven-2.0.9.pom
-fetchArtifact org/apache/maven/maven/2.0.9/maven-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven/3.0/maven-3.0.pom
-fetchArtifact org/apache/maven/maven/3.0/maven-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven/2.2.1/maven-2.2.1.pom
-fetchArtifact org/apache/maven/maven/2.2.1/maven-2.2.1.pom.sha1
-fetchArtifact org/apache/maven/maven/2.2.0/maven-2.2.0.pom
-fetchArtifact org/apache/maven/maven/2.2.0/maven-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.2/maven-2.0.2.pom
-fetchArtifact org/apache/maven/maven/2.0.2/maven-2.0.2.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.5/maven-2.0.5.pom
-fetchArtifact org/apache/maven/maven/2.0.5/maven-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom
-fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.jar
-fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-model/2.0/maven-model-2.0.pom
-fetchArtifact org/apache/maven/maven-model/2.0/maven-model-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom
-fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.jar
-fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.pom
-fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.jar
-fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.pom
-fetchArtifact org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom
-fetchArtifact org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom
-fetchArtifact org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom
-fetchArtifact org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom
-fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.jar
-fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-project/2.0/maven-project-2.0.pom
-fetchArtifact org/apache/maven/maven-project/2.0/maven-project-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom
-fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.jar
-fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom
-fetchArtifact org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom
-fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.jar
-fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.jar.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom
-fetchArtifact org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.jar
-fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0/maven-settings-2.0.pom
-fetchArtifact org/apache/maven/maven-settings/2.0/maven-settings-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.jar
-fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom
-fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.jar
-fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom
-fetchArtifact org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.5/maven-settings-2.0.5.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.5/maven-settings-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom
-fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.jar
-fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0/maven-profile-2.0.pom
-fetchArtifact org/apache/maven/maven-profile/2.0/maven-profile-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom
-fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.jar
-fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom
-fetchArtifact org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom
-fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.jar
-fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.jar.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.5/maven-profile-2.0.5.pom
-fetchArtifact org/apache/maven/maven-profile/2.0.5/maven-profile-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.jar
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.jar
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.jar
-fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.jar.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.5/maven-artifact-manager-2.0.5.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.5/maven-artifact-manager-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.jar
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.jar
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.jar
-fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.5/maven-repository-metadata-2.0.5.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.5/maven-repository-metadata-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.jar
-fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.jar
-fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom
-fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.jar
-fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom
-fetchArtifact org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom
-fetchArtifact org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.jar
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0/maven-plugin-registry-2.0.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0/maven-plugin-registry-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.jar
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.jar
-fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.jar.sha1
-fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom
-fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.jar
-fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-core/2.0/maven-core-2.0.pom
-fetchArtifact org/apache/maven/maven-core/2.0/maven-core-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom
-fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.jar
-fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.pom
-fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.jar
-fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.jar
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0/maven-plugin-parameter-documenter-2.0.pom
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0/maven-plugin-parameter-documenter-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.pom
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.jar
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0/maven-reporting-api-2.0.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0/maven-reporting-api-2.0.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0/maven-reporting-2.0.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0/maven-reporting-2.0.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.9/maven-reporting-2.0.9.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.9/maven-reporting-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-exec/1.0.2/maven-reporting-exec-1.0.2.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-exec/1.0.2/maven-reporting-exec-1.0.2.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-exec/1.0.2/maven-reporting-exec-1.0.2.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-exec/1.0.2/maven-reporting-exec-1.0.2.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.3/doxia-sink-api-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.3/doxia-sink-api-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.3/doxia-sink-api-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.3/doxia-sink-api-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.pom
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.3/doxia-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.3/doxia-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.2/doxia-1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.2/doxia-1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.3/doxia-logging-api-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.3/doxia-logging-api-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.3/doxia-logging-api-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.3/doxia-logging-api-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.2/doxia-logging-api-1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.2/doxia-logging-api-1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.3/doxia-core-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-core/1.3/doxia-core-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.3/doxia-core-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-core/1.3/doxia-core-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.3/doxia-module-xhtml-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.3/doxia-module-xhtml-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.3/doxia-module-xhtml-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.3/doxia-module-xhtml-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.3/doxia-modules-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.3/doxia-modules-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.0/doxia-modules-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.0/doxia-modules-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.3/doxia-module-apt-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.3/doxia-module-apt-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.3/doxia-module-apt-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.3/doxia-module-apt-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.3/doxia-module-xdoc-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.3/doxia-module-xdoc-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.3/doxia-module-xdoc-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.3/doxia-module-xdoc-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.3/doxia-module-fml-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.3/doxia-module-fml-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.3/doxia-module-fml-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.3/doxia-module-fml-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.3/doxia-decoration-model-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.3/doxia-decoration-model-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.3/doxia-decoration-model-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.3/doxia-decoration-model-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.2/doxia-decoration-model-1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.2/doxia-decoration-model-1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.3/doxia-sitetools-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.3/doxia-sitetools-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.2/doxia-sitetools-1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.2/doxia-sitetools-1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.0/doxia-sitetools-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.0/doxia-sitetools-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.3/doxia-site-renderer-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.3/doxia-site-renderer-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.3/doxia-site-renderer-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.3/doxia-site-renderer-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.jar.sha1
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.jar
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0/maven-error-diagnostics-2.0.pom
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0/maven-error-diagnostics-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.pom
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.jar
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.jar
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0/maven-plugin-descriptor-2.0.pom
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0/maven-plugin-descriptor-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.pom
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.jar
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom
-fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.jar
-fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-monitor/2.0/maven-monitor-2.0.pom
-fetchArtifact org/apache/maven/maven-monitor/2.0/maven-monitor-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.pom
-fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.jar
-fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-artifact-resolver/1.0/maven-artifact-resolver-1.0.pom
-fetchArtifact org/apache/maven/shared/maven-artifact-resolver/1.0/maven-artifact-resolver-1.0.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-artifact-resolver/1.0/maven-artifact-resolver-1.0.jar
-fetchArtifact org/apache/maven/shared/maven-artifact-resolver/1.0/maven-artifact-resolver-1.0.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/12/maven-shared-components-12.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/12/maven-shared-components-12.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/7/maven-shared-components-7.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/7/maven-shared-components-7.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/16/maven-shared-components-16.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/16/maven-shared-components-16.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/11/maven-shared-components-11.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/11/maven-shared-components-11.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.pom
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.jar
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.3/maven-common-artifact-filters-1.3.pom
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.3/maven-common-artifact-filters-1.3.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.3/maven-common-artifact-filters-1.3.jar
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.3/maven-common-artifact-filters-1.3.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.pom
-fetchArtifact org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.jar
-fetchArtifact org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-filtering/1.0/maven-filtering-1.0.pom
-fetchArtifact org/apache/maven/shared/maven-filtering/1.0/maven-filtering-1.0.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-filtering/1.0/maven-filtering-1.0.jar
-fetchArtifact org/apache/maven/shared/maven-filtering/1.0/maven-filtering-1.0.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.4/maven-doxia-tools-1.4.pom
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.4/maven-doxia-tools-1.4.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.4/maven-doxia-tools-1.4.jar
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.4/maven-doxia-tools-1.4.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.9/maven-invoker-2.0.9.pom
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.9/maven-invoker-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.9/maven-invoker-2.0.9.jar
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.9/maven-invoker-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.pom
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.jar
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar.sha1
-fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom
-fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom.sha1
-fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar
-fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom
-fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar
-fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.pom
-fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.jar
-fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.jar.sha1
-fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom
-fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom.sha1
-fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.jar
-fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.jar.sha1
-fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.pom
-fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.jar
-fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom
-fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.jar
-fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.jar.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.pom
-fetchArtifact org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.pom.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.jar
-fetchArtifact org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.jar.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.pom
-fetchArtifact org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.pom.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.jar
-fetchArtifact org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.jar.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.pom
-fetchArtifact org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.pom.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.jar
-fetchArtifact org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.jar.sha1
-fetchArtifact org/apache/maven/wagon/wagon-ssh/1.0/wagon-ssh-1.0.pom
-fetchArtifact org/apache/maven/wagon/wagon-ssh/1.0/wagon-ssh-1.0.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-ssh/1.0/wagon-ssh-1.0.jar
-fetchArtifact org/apache/maven/wagon/wagon-ssh/1.0/wagon-ssh-1.0.jar.sha1
-fetchArtifact org/apache/maven/wagon/wagon-providers/1.0/wagon-providers-1.0.pom
-fetchArtifact org/apache/maven/wagon/wagon-providers/1.0/wagon-providers-1.0.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon/1.0/wagon-1.0.pom
-fetchArtifact org/apache/maven/wagon/wagon/1.0/wagon-1.0.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom
-fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom
-fetchArtifact org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-ssh-common/1.0/wagon-ssh-common-1.0.pom
-fetchArtifact org/apache/maven/wagon/wagon-ssh-common/1.0/wagon-ssh-common-1.0.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-ssh-common/1.0/wagon-ssh-common-1.0.jar
-fetchArtifact org/apache/maven/wagon/wagon-ssh-common/1.0/wagon-ssh-common-1.0.jar.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0/wagon-provider-api-1.0.pom
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0/wagon-provider-api-1.0.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0/wagon-provider-api-1.0.jar
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0/wagon-provider-api-1.0.jar.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.jar
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.jar.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.jar
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.jar.sha1
-fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom
-fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.jar
-fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom
-fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.jar
-fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom
-fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.jar
-fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom
-fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.jar
-fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.jar.sha1
-fetchArtifact org/apache/velocity/velocity/1.7/velocity-1.7.pom
-fetchArtifact org/apache/velocity/velocity/1.7/velocity-1.7.pom.sha1
-fetchArtifact org/apache/velocity/velocity/1.7/velocity-1.7.jar
-fetchArtifact org/apache/velocity/velocity/1.7/velocity-1.7.jar.sha1
-fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.pom
-fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.pom.sha1
-fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.jar
-fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.jar.sha1
-fetchArtifact org/apache/velocity/velocity/1.6.2/velocity-1.6.2.pom
-fetchArtifact org/apache/velocity/velocity/1.6.2/velocity-1.6.2.pom.sha1
-fetchArtifact org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.pom
-fetchArtifact org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.pom.sha1
-fetchArtifact org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar
-fetchArtifact org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar.sha1
-fetchArtifact org/apache/commons/commons-parent/9/commons-parent-9.pom
-fetchArtifact org/apache/commons/commons-parent/9/commons-parent-9.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/5/commons-parent-5.pom
-fetchArtifact org/apache/commons/commons-parent/5/commons-parent-5.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/7/commons-parent-7.pom
-fetchArtifact org/apache/commons/commons-parent/7/commons-parent-7.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/12/commons-parent-12.pom
-fetchArtifact org/apache/commons/commons-parent/12/commons-parent-12.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/3/commons-parent-3.pom
-fetchArtifact org/apache/commons/commons-parent/3/commons-parent-3.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/17/commons-parent-17.pom
-fetchArtifact org/apache/commons/commons-parent/17/commons-parent-17.pom.sha1
-fetchArtifact org/apache/apache-jar-resource-bundle/1.4/apache-jar-resource-bundle-1.4.jar
-fetchArtifact org/apache/apache-jar-resource-bundle/1.4/apache-jar-resource-bundle-1.4.jar.sha1
-fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom
-fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom.sha1
-fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar
-fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar.sha1
-fetchArtifact org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom
-fetchArtifact org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom.sha1
-fetchArtifact org/apache/httpcomponents/project/4.1/project-4.1.pom
-fetchArtifact org/apache/httpcomponents/project/4.1/project-4.1.pom.sha1
-fetchArtifact org/apache/httpcomponents/project/4.0/project-4.0.pom
-fetchArtifact org/apache/httpcomponents/project/4.0/project-4.0.pom.sha1
-fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom
-fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom.sha1
-fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar
-fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar.sha1
-fetchArtifact org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom
-fetchArtifact org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom.sha1
-fetchArtifact org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.pom
-fetchArtifact org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.pom.sha1
-fetchArtifact org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.jar
-fetchArtifact org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.jar.sha1
-fetchArtifact org/apache/struts/struts-parent/1.3.8/struts-parent-1.3.8.pom
-fetchArtifact org/apache/struts/struts-parent/1.3.8/struts-parent-1.3.8.pom.sha1
-fetchArtifact org/apache/struts/struts-master/4/struts-master-4.pom
-fetchArtifact org/apache/struts/struts-master/4/struts-master-4.pom.sha1
-fetchArtifact org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.pom
-fetchArtifact org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.pom.sha1
-fetchArtifact org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.jar
-fetchArtifact org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.jar.sha1
-fetchArtifact org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.pom
-fetchArtifact org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.pom.sha1
-fetchArtifact org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.jar
-fetchArtifact org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.jar.sha1
-fetchArtifact org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom
-fetchArtifact org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom.sha1
-fetchArtifact org/apache/xbean/xbean/3.4/xbean-3.4.pom
-fetchArtifact org/apache/xbean/xbean/3.4/xbean-3.4.pom.sha1
-fetchArtifact org/codehaus/mojo/build-helper-maven-plugin/1.8/build-helper-maven-plugin-1.8.pom
-fetchArtifact org/codehaus/mojo/build-helper-maven-plugin/1.8/build-helper-maven-plugin-1.8.pom.sha1
-fetchArtifact org/codehaus/mojo/build-helper-maven-plugin/1.8/build-helper-maven-plugin-1.8.jar
-fetchArtifact org/codehaus/mojo/build-helper-maven-plugin/1.8/build-helper-maven-plugin-1.8.jar.sha1
-fetchArtifact org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom
-fetchArtifact org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom.sha1
-fetchArtifact org/codehaus/codehaus-parent/4/codehaus-parent-4.pom
-fetchArtifact org/codehaus/codehaus-parent/4/codehaus-parent-4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.2/plexus-utils-1.2.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.2/plexus-utils-1.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4/plexus-utils-1.4.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4/plexus-utils-1.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.10/plexus-utils-1.5.10.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.10/plexus-utils-1.5.10.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.10/plexus-utils-1.5.10.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.10/plexus-utils-1.5.10.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.9/plexus-utils-1.4.9.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.9/plexus-utils-1.4.9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.7/plexus-utils-1.5.7.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.7/plexus-utils-1.5.7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.5/plexus-1.0.5.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.5/plexus-1.0.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/3.1/plexus-3.1.pom
-fetchArtifact org/codehaus/plexus/plexus/3.1/plexus-3.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/3.0.1/plexus-3.0.1.pom
-fetchArtifact org/codehaus/plexus/plexus/3.0.1/plexus-3.0.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom
-fetchArtifact org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/3.3/plexus-3.3.pom
-fetchArtifact org/codehaus/plexus/plexus/3.3/plexus-3.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/3.2/plexus-3.2.pom
-fetchArtifact org/codehaus/plexus/plexus/3.2/plexus-3.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.jar
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.jar
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-15/plexus-container-default-1.0-alpha-15.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-15/plexus-container-default-1.0-alpha-15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.pom
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.jar
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.jar
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.pom
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.jar
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.0.1/plexus-archiver-2.0.1.pom
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.0.1/plexus-archiver-2.0.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.pom
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.jar
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.pom
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.jar
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.pom
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.jar
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.15/plexus-components-1.1.15.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.15/plexus-components-1.1.15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.20/plexus-components-1.1.20.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.20/plexus-components-1.1.20.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.19/plexus-components-1.1.19.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.19/plexus-components-1.1.19.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.17/plexus-components-1.1.17.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.17/plexus-components-1.1.17.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.jar
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-resources/1.0-alpha-5/plexus-resources-1.0-alpha-5.pom
-fetchArtifact org/codehaus/plexus/plexus-resources/1.0-alpha-5/plexus-resources-1.0-alpha-5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-resources/1.0-alpha-5/plexus-resources-1.0-alpha-5.jar
-fetchArtifact org/codehaus/plexus/plexus-resources/1.0-alpha-5/plexus-resources-1.0-alpha-5.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.8/plexus-velocity-1.1.8.pom
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.8/plexus-velocity-1.1.8.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.8/plexus-velocity-1.1.8.jar
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.8/plexus-velocity-1.1.8.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.pom
-fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.jar
-fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler/1.9.1/plexus-compiler-1.9.1.pom
-fetchArtifact org/codehaus/plexus/plexus-compiler/1.9.1/plexus-compiler-1.9.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.pom
-fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.jar
-fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.pom
-fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.jar
-fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-compilers/1.9.1/plexus-compilers-1.9.1.pom
-fetchArtifact org/codehaus/plexus/plexus-compilers/1.9.1/plexus-compilers-1.9.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.pom
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.jar
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.1/plexus-io-2.0.1.pom
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.1/plexus-io-2.0.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.pom
-fetchArtifact org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.jar
-fetchArtifact org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.pom
-fetchArtifact org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.jar
-fetchArtifact org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.pom
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.jar
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interactivity/1.0-alpha-6/plexus-interactivity-1.0-alpha-6.pom
-fetchArtifact org/codehaus/plexus/plexus-interactivity/1.0-alpha-6/plexus-interactivity-1.0-alpha-6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.jar
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-6/plexus-classworlds-1.2-alpha-6.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-6/plexus-classworlds-1.2-alpha-6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom
-fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar
-fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-component-api/1.0-alpha-15/plexus-component-api-1.0-alpha-15.pom
-fetchArtifact org/codehaus/plexus/plexus-component-api/1.0-alpha-15/plexus-component-api-1.0-alpha-15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom
-fetchArtifact org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/16/spice-parent-16.pom
-fetchArtifact org/sonatype/spice/spice-parent/16/spice-parent-16.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/10/spice-parent-10.pom
-fetchArtifact org/sonatype/spice/spice-parent/10/spice-parent-10.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/17/spice-parent-17.pom
-fetchArtifact org/sonatype/spice/spice-parent/17/spice-parent-17.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/12/spice-parent-12.pom
-fetchArtifact org/sonatype/spice/spice-parent/12/spice-parent-12.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/5/forge-parent-5.pom
-fetchArtifact org/sonatype/forge/forge-parent/5/forge-parent-5.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/3/forge-parent-3.pom
-fetchArtifact org/sonatype/forge/forge-parent/3/forge-parent-3.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/10/forge-parent-10.pom
-fetchArtifact org/sonatype/forge/forge-parent/10/forge-parent-10.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/4/forge-parent-4.pom
-fetchArtifact org/sonatype/forge/forge-parent/4/forge-parent-4.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/6/forge-parent-6.pom
-fetchArtifact org/sonatype/forge/forge-parent/6/forge-parent-6.pom.sha1
-fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.pom
-fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.pom.sha1
-fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar
-fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar.sha1
-fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom
-fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom.sha1
-fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
-fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar.sha1
-fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom
-fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom.sha1
-fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
-fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar.sha1
-fetchArtifact org/sonatype/oss/oss-parent/6/oss-parent-6.pom
-fetchArtifact org/sonatype/oss/oss-parent/6/oss-parent-6.pom.sha1
-fetchArtifact org/sonatype/oss/oss-parent/7/oss-parent-7.pom
-fetchArtifact org/sonatype/oss/oss-parent/7/oss-parent-7.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom
-fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.jar
-fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.jar.sha1
-fetchArtifact org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom
-fetchArtifact org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom
-fetchArtifact org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom
-fetchArtifact org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom
-fetchArtifact org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom
-fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
-fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar.sha1
-fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom
-fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
-fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar.sha1
-fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom
-fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.jar
-fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.jar.sha1
-fetchArtifact org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom
-fetchArtifact org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom
-fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
-fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar.sha1
-fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom
-fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.jar
-fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.jar.sha1
-fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom
-fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.jar
-fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.jar.sha1
-fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.pom
-fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.pom.sha1
-fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar
-fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar.sha1
-fetchArtifact org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1.pom
-fetchArtifact org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1.pom.sha1
-fetchArtifact org/beanshell/bsh/2.0b4/bsh-2.0b4.pom
-fetchArtifact org/beanshell/bsh/2.0b4/bsh-2.0b4.pom.sha1
-fetchArtifact org/beanshell/bsh/2.0b4/bsh-2.0b4.jar
-fetchArtifact org/beanshell/bsh/2.0b4/bsh-2.0b4.jar.sha1
-fetchArtifact org/beanshell/beanshell/2.0b4/beanshell-2.0b4.pom
-fetchArtifact org/beanshell/beanshell/2.0b4/beanshell-2.0b4.pom.sha1
-fetchArtifact org/mortbay/jetty/jetty/6.1.25/jetty-6.1.25.pom
-fetchArtifact org/mortbay/jetty/jetty/6.1.25/jetty-6.1.25.pom.sha1
-fetchArtifact org/mortbay/jetty/jetty/6.1.25/jetty-6.1.25.jar
-fetchArtifact org/mortbay/jetty/jetty/6.1.25/jetty-6.1.25.jar.sha1
-fetchArtifact org/mortbay/jetty/project/6.1.25/project-6.1.25.pom
-fetchArtifact org/mortbay/jetty/project/6.1.25/project-6.1.25.pom.sha1
-fetchArtifact org/mortbay/jetty/jetty-parent/10/jetty-parent-10.pom
-fetchArtifact org/mortbay/jetty/jetty-parent/10/jetty-parent-10.pom.sha1
-fetchArtifact org/mortbay/jetty/jetty-parent/7/jetty-parent-7.pom
-fetchArtifact org/mortbay/jetty/jetty-parent/7/jetty-parent-7.pom.sha1
-fetchArtifact org/mortbay/jetty/jetty-util/6.1.25/jetty-util-6.1.25.pom
-fetchArtifact org/mortbay/jetty/jetty-util/6.1.25/jetty-util-6.1.25.pom.sha1
-fetchArtifact org/mortbay/jetty/jetty-util/6.1.25/jetty-util-6.1.25.jar
-fetchArtifact org/mortbay/jetty/jetty-util/6.1.25/jetty-util-6.1.25.jar.sha1
-fetchArtifact org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.pom
-fetchArtifact org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.pom.sha1
-fetchArtifact org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.jar
-fetchArtifact org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.jar.sha1
-fetchArtifact org/eclipse/jetty/jetty-parent/14/jetty-parent-14.pom
-fetchArtifact org/eclipse/jetty/jetty-parent/14/jetty-parent-14.pom.sha1
-fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom
-fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom.sha1
-fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
-fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar.sha1
-fetchArtifact org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom
-fetchArtifact org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom.sha1
-fetchArtifact org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.pom
-fetchArtifact org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.pom.sha1
-fetchArtifact org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.jar
-fetchArtifact org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.jar.sha1
-fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.pom
-fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.pom.sha1
-fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.jar
-fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.jar.sha1
-fetchArtifact org/jdom/jdom/1.1/jdom-1.1.pom
-fetchArtifact org/jdom/jdom/1.1/jdom-1.1.pom.sha1
-fetchArtifact org/jdom/jdom/1.1/jdom-1.1.jar
-fetchArtifact org/jdom/jdom/1.1/jdom-1.1.jar.sha1
-fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.pom
-fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.pom.sha1
-fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.jar
-fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.jar.sha1
-fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.pom
-fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.pom.sha1
-fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar
-fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar.sha1
-fetchArtifact com/google/protobuf/protobuf-parent/3.3.0/protobuf-parent-3.3.0.pom
-fetchArtifact com/google/protobuf/protobuf-parent/3.3.0/protobuf-parent-3.3.0.pom.sha1
-fetchArtifact com/google/google/1/google-1.pom
-fetchArtifact com/google/google/1/google-1.pom.sha1
-fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom
-fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom.sha1
-fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.jar
-fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.jar.sha1
-fetchArtifact com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom
-fetchArtifact com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom.sha1
-fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom
-fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom.sha1
-fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar
-fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar.sha1
-fetchArtifact com/google/collections/google-collections/1.0/google-collections-1.0.pom
-fetchArtifact com/google/collections/google-collections/1.0/google-collections-1.0.pom.sha1
-fetchArtifact com/jcraft/jsch/0.1.44-1/jsch-0.1.44-1.pom
-fetchArtifact com/jcraft/jsch/0.1.44-1/jsch-0.1.44-1.pom.sha1
-fetchArtifact com/jcraft/jsch/0.1.44-1/jsch-0.1.44-1.jar
-fetchArtifact com/jcraft/jsch/0.1.44-1/jsch-0.1.44-1.jar.sha1
-fetchArtifact com/thoughtworks/qdox/qdox/1.12/qdox-1.12.pom
-fetchArtifact com/thoughtworks/qdox/qdox/1.12/qdox-1.12.pom.sha1
-fetchArtifact com/thoughtworks/qdox/qdox/1.12/qdox-1.12.jar
-fetchArtifact com/thoughtworks/qdox/qdox/1.12/qdox-1.12.jar.sha1
-fetchArtifact junit/junit/4.10/junit-4.10.pom
-fetchArtifact junit/junit/4.10/junit-4.10.pom.sha1
-fetchArtifact junit/junit/3.8.1/junit-3.8.1.pom
-fetchArtifact junit/junit/3.8.1/junit-3.8.1.pom.sha1
-fetchArtifact junit/junit/3.8.1/junit-3.8.1.jar
-fetchArtifact junit/junit/3.8.1/junit-3.8.1.jar.sha1
-fetchArtifact junit/junit/3.8.2/junit-3.8.2.pom
-fetchArtifact junit/junit/3.8.2/junit-3.8.2.pom.sha1
-fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom
-fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom.sha1
-fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar
-fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar.sha1
-fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.pom
-fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.pom.sha1
-fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.jar
-fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.jar.sha1
-fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.pom
-fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.pom.sha1
-fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.jar
-fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.jar.sha1
-fetchArtifact doxia/doxia-sink-api/1.0-alpha-4/doxia-sink-api-1.0-alpha-4.pom
-fetchArtifact doxia/doxia-sink-api/1.0-alpha-4/doxia-sink-api-1.0-alpha-4.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.pom
-fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.jar
-fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.jar.sha1
-fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom
-fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
-fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar.sha1
-fetchArtifact commons-collections/commons-collections/2.0/commons-collections-2.0.pom
-fetchArtifact commons-collections/commons-collections/2.0/commons-collections-2.0.pom.sha1
-fetchArtifact commons-collections/commons-collections/2.1/commons-collections-2.1.pom
-fetchArtifact commons-collections/commons-collections/2.1/commons-collections-2.1.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.pom
-fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.jar
-fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.jar.sha1
-fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.pom
-fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.pom.sha1
-fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.jar
-fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.jar.sha1
-fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.pom
-fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.pom.sha1
-fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.jar
-fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha1
-fetchArtifact commons-lang/commons-lang/2.5/commons-lang-2.5.pom
-fetchArtifact commons-lang/commons-lang/2.5/commons-lang-2.5.pom.sha1
-fetchArtifact commons-lang/commons-lang/2.5/commons-lang-2.5.jar
-fetchArtifact commons-lang/commons-lang/2.5/commons-lang-2.5.jar.sha1
-fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.pom
-fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.pom.sha1
-fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.jar
-fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.jar.sha1
-fetchArtifact oro/oro/2.0.8/oro-2.0.8.pom
-fetchArtifact oro/oro/2.0.8/oro-2.0.8.pom.sha1
-fetchArtifact oro/oro/2.0.8/oro-2.0.8.jar
-fetchArtifact oro/oro/2.0.8/oro-2.0.8.jar.sha1
-fetchArtifact velocity/velocity/1.5/velocity-1.5.pom
-fetchArtifact velocity/velocity/1.5/velocity-1.5.pom.sha1
-fetchArtifact velocity/velocity/1.5/velocity-1.5.jar
-fetchArtifact velocity/velocity/1.5/velocity-1.5.jar.sha1
-fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom
-fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom.sha1
-fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar
-fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar.sha1
-fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom
-fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom.sha1
-fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.jar
-fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.jar.sha1
-fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom
-fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom.sha1
-fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar
-fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar.sha1
-fetchArtifact xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom
-fetchArtifact xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom
-fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar
-fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar.sha1
-fetchArtifact commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom
-fetchArtifact commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.1/commons-logging-1.1.pom
-fetchArtifact commons-logging/commons-logging/1.1/commons-logging-1.1.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.0/commons-logging-1.0.pom
-fetchArtifact commons-logging/commons-logging/1.0/commons-logging-1.0.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom
-fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar
-fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar.sha1
-fetchArtifact commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom
-fetchArtifact commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom.sha1
-fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.pom
-fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.pom.sha1
-fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.jar
-fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.jar.sha1
-fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.pom
-fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.pom.sha1
-fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.jar
-fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.jar.sha1
-fetchArtifact javax/servlet/servlet-api/2.5/servlet-api-2.5.pom
-fetchArtifact javax/servlet/servlet-api/2.5/servlet-api-2.5.pom.sha1
-fetchArtifact javax/servlet/servlet-api/2.5/servlet-api-2.5.jar
-fetchArtifact javax/servlet/servlet-api/2.5/servlet-api-2.5.jar.sha1
-fetchArtifact javax/servlet/servlet-api/2.3/servlet-api-2.3.pom
-fetchArtifact javax/servlet/servlet-api/2.3/servlet-api-2.3.pom.sha1
-fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom
-fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom.sha1
-fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar
-fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar.sha1
-fetchArtifact commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom
-fetchArtifact commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom.sha1
-fetchArtifact commons-digester/commons-digester/1.8/commons-digester-1.8.pom
-fetchArtifact commons-digester/commons-digester/1.8/commons-digester-1.8.pom.sha1
-fetchArtifact commons-digester/commons-digester/1.8/commons-digester-1.8.jar
-fetchArtifact commons-digester/commons-digester/1.8/commons-digester-1.8.jar.sha1
-fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.pom
-fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.pom.sha1
-fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.jar
-fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.jar.sha1
-fetchArtifact log4j/log4j/1.2.12/log4j-1.2.12.pom
-fetchArtifact log4j/log4j/1.2.12/log4j-1.2.12.pom.sha1
-fetchArtifact log4j/log4j/1.2.14/log4j-1.2.14.pom
-fetchArtifact log4j/log4j/1.2.14/log4j-1.2.14.pom.sha1
-fetchArtifact log4j/log4j/1.2.14/log4j-1.2.14.jar
-fetchArtifact log4j/log4j/1.2.14/log4j-1.2.14.jar.sha1
-fetchArtifact logkit/logkit/1.0.1/logkit-1.0.1.pom
-fetchArtifact logkit/logkit/1.0.1/logkit-1.0.1.pom.sha1
-fetchArtifact avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.pom
-fetchArtifact avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.pom.sha1
-fetchArtifact commons-chain/commons-chain/1.1/commons-chain-1.1.pom
-fetchArtifact commons-chain/commons-chain/1.1/commons-chain-1.1.pom.sha1
-fetchArtifact commons-chain/commons-chain/1.1/commons-chain-1.1.jar
-fetchArtifact commons-chain/commons-chain/1.1/commons-chain-1.1.jar.sha1
-fetchArtifact commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.pom
-fetchArtifact commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.pom.sha1
-fetchArtifact commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.jar
-fetchArtifact commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.jar.sha1
-fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom
-fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom.sha1
-fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar
-fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar.sha1
-fetchArtifact dom4j/dom4j/1.1/dom4j-1.1.pom
-fetchArtifact dom4j/dom4j/1.1/dom4j-1.1.pom.sha1
-fetchArtifact dom4j/dom4j/1.1/dom4j-1.1.jar
-fetchArtifact dom4j/dom4j/1.1/dom4j-1.1.jar.sha1
-fetchArtifact sslext/sslext/1.2-0/sslext-1.2-0.pom
-fetchArtifact sslext/sslext/1.2-0/sslext-1.2-0.pom.sha1
-fetchArtifact sslext/sslext/1.2-0/sslext-1.2-0.jar
-fetchArtifact sslext/sslext/1.2-0/sslext-1.2-0.jar.sha1
-fetchArtifact antlr/antlr/2.7.2/antlr-2.7.2.pom
-fetchArtifact antlr/antlr/2.7.2/antlr-2.7.2.pom.sha1
-fetchArtifact antlr/antlr/2.7.2/antlr-2.7.2.jar
-fetchArtifact antlr/antlr/2.7.2/antlr-2.7.2.jar.sha1
-fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.pom
-fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.pom.sha1
-fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.jar
-fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.jar.sha1
-fetchArtifact commons-io/commons-io/1.3.2/commons-io-1.3.2.pom
-fetchArtifact commons-io/commons-io/1.3.2/commons-io-1.3.2.pom.sha1
-fetchArtifact commons-io/commons-io/1.3.2/commons-io-1.3.2.jar
-fetchArtifact commons-io/commons-io/1.3.2/commons-io-1.3.2.jar.sha1
-fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.pom
-fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.pom.sha1
-fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar
-fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar.sha1
-fetchArtifact asm/asm/3.3.1/asm-3.3.1.pom
-fetchArtifact asm/asm/3.3.1/asm-3.3.1.pom.sha1
-fetchArtifact asm/asm/3.3.1/asm-3.3.1.jar
-fetchArtifact asm/asm/3.3.1/asm-3.3.1.jar.sha1
-fetchArtifact asm/asm/3.2/asm-3.2.pom
-fetchArtifact asm/asm/3.2/asm-3.2.pom.sha1
-fetchArtifact asm/asm-parent/3.3.1/asm-parent-3.3.1.pom
-fetchArtifact asm/asm-parent/3.3.1/asm-parent-3.3.1.pom.sha1
-fetchArtifact asm/asm-parent/3.2/asm-parent-3.2.pom
-fetchArtifact asm/asm-parent/3.2/asm-parent-3.2.pom.sha1
-fetchArtifact asm/asm-commons/3.3.1/asm-commons-3.3.1.pom
-fetchArtifact asm/asm-commons/3.3.1/asm-commons-3.3.1.pom.sha1
-fetchArtifact asm/asm-commons/3.3.1/asm-commons-3.3.1.jar
-fetchArtifact asm/asm-commons/3.3.1/asm-commons-3.3.1.jar.sha1
-fetchArtifact asm/asm-commons/3.2/asm-commons-3.2.pom
-fetchArtifact asm/asm-commons/3.2/asm-commons-3.2.pom.sha1
-fetchArtifact asm/asm-tree/3.3.1/asm-tree-3.3.1.pom
-fetchArtifact asm/asm-tree/3.3.1/asm-tree-3.3.1.pom.sha1
-fetchArtifact asm/asm-tree/3.3.1/asm-tree-3.3.1.jar
-fetchArtifact asm/asm-tree/3.3.1/asm-tree-3.3.1.jar.sha1
-fetchArtifact asm/asm-tree/3.2/asm-tree-3.2.pom
-fetchArtifact asm/asm-tree/3.2/asm-tree-3.2.pom.sha1
-fetchArtifact asm/asm-analysis/3.2/asm-analysis-3.2.pom
-fetchArtifact asm/asm-analysis/3.2/asm-analysis-3.2.pom.sha1
-fetchArtifact asm/asm-analysis/3.2/asm-analysis-3.2.jar
-fetchArtifact asm/asm-analysis/3.2/asm-analysis-3.2.jar.sha1
-fetchArtifact asm/asm-util/3.2/asm-util-3.2.pom
-fetchArtifact asm/asm-util/3.2/asm-util-3.2.pom.sha1
-fetchArtifact asm/asm-util/3.2/asm-util-3.2.jar
-fetchArtifact asm/asm-util/3.2/asm-util-3.2.jar.sha1
-fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom
-fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom.sha1
-fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar
-fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar.sha1
-
-stopNest
diff --git a/pkgs/applications/networking/cluster/mesos/mesos-deps.nix b/pkgs/applications/networking/cluster/mesos/mesos-deps.nix
deleted file mode 100644
index 1cf819870f4..00000000000
--- a/pkgs/applications/networking/cluster/mesos/mesos-deps.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{stdenv, curl}:
-
-stdenv.mkDerivation {
-  name = "mesos-maven-deps";
-  builder = ./fetch-mesos-deps.sh;
-
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "10h0qs7svw0cqjkyxs8z6s3qraa8ga920zfrr59rdlanbwg4klly";
-
-  nativeBuildInputs = [ curl ];
-
-  impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
-}
diff --git a/pkgs/applications/networking/cluster/mesos/nixos.patch b/pkgs/applications/networking/cluster/mesos/nixos.patch
deleted file mode 100644
index a6fea024b08..00000000000
--- a/pkgs/applications/networking/cluster/mesos/nixos.patch
+++ /dev/null
@@ -1,731 +0,0 @@
-diff --git i/3rdparty/stout/include/stout/os/posix/fork.hpp w/3rdparty/stout/include/stout/os/posix/fork.hpp
-index a29967d..290b98b 100644
---- i/3rdparty/stout/include/stout/os/posix/fork.hpp
-+++ w/3rdparty/stout/include/stout/os/posix/fork.hpp
-@@ -369,7 +369,7 @@ private:
-     if (exec.isSome()) {
-       // Execute the command (via '/bin/sh -c command').
-       const char* command = exec.get().command.c_str();
--      execlp("sh", "sh", "-c", command, (char*) nullptr);
-+      execlp("@sh@", "sh", "-c", command, (char*) nullptr);
-       EXIT(EXIT_FAILURE)
-         << "Failed to execute '" << command << "': " << os::strerror(errno);
-     } else if (wait.isSome()) {
-diff --git i/3rdparty/stout/include/stout/posix/os.hpp w/3rdparty/stout/include/stout/posix/os.hpp
-index 8511dfd..1e7be01 100644
---- i/3rdparty/stout/include/stout/posix/os.hpp
-+++ w/3rdparty/stout/include/stout/posix/os.hpp
-@@ -366,7 +366,7 @@ inline Try<std::set<pid_t>> pids(Option<pid_t> group, Option<pid_t> session)
- inline Try<Nothing> tar(const std::string& path, const std::string& archive)
- {
-   Try<std::string> tarOut =
--    os::shell("tar %s %s %s", "-czf", archive.c_str(), path.c_str());
-+    os::shell("@tar@ %s %s %s", "-czf", archive.c_str(), path.c_str());
- 
-   if (tarOut.isError()) {
-     return Error("Failed to archive " + path + ": " + tarOut.error());
-diff --git i/src/Makefile.am w/src/Makefile.am
-index 68fff14..c572f92 100644
---- i/src/Makefile.am
-+++ w/src/Makefile.am
-@@ -1775,7 +1775,7 @@ if HAS_JAVA
- 
- $(MESOS_JAR): $(MESOS_JAR_SOURCE) $(MESOS_JAR_GENERATED) java/mesos.pom
- 	@echo "Building mesos-$(PACKAGE_VERSION).jar ..."
--	@cd $(abs_top_builddir)/src/java && $(MVN) -B -f mesos.pom clean package
-+	@cd $(abs_top_builddir)/src/java && $(MVN) -B -f mesos.pom -Dmaven.repo.local=@mavenRepo@ clean package
- 
- # Convenience library for JNI bindings.
- # TODO(Charles Reiss): We really should be building the Java library
-diff --git i/src/cli/mesos-scp w/src/cli/mesos-scp
-index a71ab07..1043d1b 100755
---- i/src/cli/mesos-scp
-+++ w/src/cli/mesos-scp
-@@ -19,7 +19,8 @@ if sys.version_info < (2,6,0):
- 
- 
- def scp(host, src, dst):
--    cmd = 'scp -pr %s %s' % (src, host + ':' + dst)
-+    cmd = '@scp@ -pr %s %s' % (src, host + ':' + dst)
-+
-     try:
-         process = subprocess.Popen(
-             cmd,
-diff --git i/src/common/command_utils.cpp w/src/common/command_utils.cpp
-index c50be76..388cc53 100644
---- i/src/common/command_utils.cpp
-+++ w/src/common/command_utils.cpp
-@@ -142,7 +142,7 @@ Future<Nothing> tar(
- 
-   argv.emplace_back(input);
- 
--  return launch("tar", argv)
-+  return launch("@tar@", argv)
-     .then([]() { return Nothing(); });
- }
- 
-@@ -164,7 +164,7 @@ Future<Nothing> untar(
-     argv.emplace_back(directory.get());
-   }
- 
--  return launch("tar", argv)
-+  return launch("@tar@", argv)
-     .then([]() { return Nothing(); });
- }
- 
-@@ -172,7 +172,7 @@ Future<Nothing> untar(
- Future<string> sha512(const Path& input)
- {
- #ifdef __linux__
--  const string cmd = "sha512sum";
-+  const string cmd = "@sha512sum@";
-   vector<string> argv = {
-     cmd,
-     input             // Input file to compute shasum.
-@@ -208,7 +208,7 @@ Future<Nothing> gzip(const Path& input)
-     input
-   };
- 
--  return launch("gzip", argv)
-+  return launch("@gzip@", argv)
-     .then([]() { return Nothing(); });
- }
- 
-@@ -221,7 +221,7 @@ Future<Nothing> decompress(const Path& input)
-     input
-   };
- 
--  return launch("gzip", argv)
-+  return launch("@gzip@", argv)
-     .then([]() { return Nothing(); });
- }
- 
-diff --git i/src/launcher/fetcher.cpp w/src/launcher/fetcher.cpp
-index 42980f5..3aebeed 100644
---- i/src/launcher/fetcher.cpp
-+++ w/src/launcher/fetcher.cpp
-@@ -80,17 +80,17 @@ static Try<bool> extract(
-       strings::endsWith(sourcePath, ".tar.bz2") ||
-       strings::endsWith(sourcePath, ".txz") ||
-       strings::endsWith(sourcePath, ".tar.xz")) {
--    command = {"tar", "-C", destinationDirectory, "-xf", sourcePath};
-+    command = {"@tar@", "-C", destinationDirectory, "-xf", sourcePath};
-   } else if (strings::endsWith(sourcePath, ".gz")) {
-     string pathWithoutExtension = sourcePath.substr(0, sourcePath.length() - 3);
-     string filename = Path(pathWithoutExtension).basename();
-     string destinationPath = path::join(destinationDirectory, filename);
- 
--    command = {"gunzip", "-d", "-c"};
-+    command = {"@gunzip@", "-d", "-c"};
-     in = Subprocess::PATH(sourcePath);
-     out = Subprocess::PATH(destinationPath);
-   } else if (strings::endsWith(sourcePath, ".zip")) {
--    command = {"unzip", "-o", "-d", destinationDirectory, sourcePath};
-+    command = {"@unzip@", "-o", "-d", destinationDirectory, sourcePath};
-   } else {
-     return false;
-   }
-@@ -193,7 +193,7 @@ static Try<string> copyFile(
-     const string& sourcePath,
-     const string& destinationPath)
- {
--  int status = os::spawn("cp", {"cp", sourcePath, destinationPath});
-+  int status = os::spawn("cp", {"@cp@", sourcePath, destinationPath});
- 
-   if (status == -1) {
-     return ErrnoError("Failed to copy '" + sourcePath + "'");
-diff --git i/src/linux/perf.cpp w/src/linux/perf.cpp
-index b301e25..356a2cf 100644
---- i/src/linux/perf.cpp
-+++ w/src/linux/perf.cpp
-@@ -128,7 +128,7 @@ private:
-     // NOTE: The supervisor childhook places perf in its own process group
-     // and will kill the perf process when the parent dies.
-     Try<Subprocess> _perf = subprocess(
--        "perf",
-+        "@perf@",
-         argv,
-         Subprocess::PIPE(),
-         Subprocess::PIPE(),
-diff --git i/src/linux/systemd.cpp w/src/linux/systemd.cpp
-index 6318f48..394d88d 100644
---- i/src/linux/systemd.cpp
-+++ w/src/linux/systemd.cpp
-@@ -196,13 +196,21 @@ bool exists()
-   // This is static as the init system should not change while we are running.
-   static const bool exists = []() -> bool {
-     // (1) Test whether `/sbin/init` links to systemd.
--    const Result<string> realpath = os::realpath("/sbin/init");
--    if (realpath.isError() || realpath.isNone()) {
--      LOG(WARNING) << "Failed to test /sbin/init for systemd environment: "
--                   << (realpath.isError() ? realpath.error()
--                                          : "does not exist");
--
--      return false;
-+    // cstrahan(nixos): first assume we're on NixOS, then try non-NixOS
-+    Result<string> realpath = os::realpath("/run/current-system/systemd/lib/systemd/systemd");
-+    Result<string> realpathNixOS = realpath;
-+    if (realpathNixOS.isError() || realpathNixOS.isNone()) {
-+      Result<string> realpathNonNixOS = realpath = os::realpath("/sbin/init");
-+      if (realpathNonNixOS.isError() || realpathNonNixOS.isNone()) {
-+        LOG(WARNING) << "Failed to test /run/current-system/systemd/lib/systemd/systemd for systemd environment: "
-+                     << (realpathNixOS.isError() ? realpathNixOS.error()
-+                                                 : "does not exist");
-+        LOG(WARNING) << "Failed to test /sbin/init for systemd environment: "
-+                     << (realpathNonNixOS.isError() ? realpathNonNixOS.error()
-+                                                    : "does not exist");
-+
-+        return false;
-+      }
-     }
- 
-     CHECK_SOME(realpath);
-@@ -278,6 +286,10 @@ Path hierarchy()
- 
- Try<Nothing> daemonReload()
- {
-+  // cstrahan(nixos): should we patch these `systemctl`s?
-+  // probably don't want to hard-code a particular systemd store path here,
-+  // but if we use /run/current-system/sw/bin/systemctl,
-+  // we won't be able to support non-NixOS distros.
-   Try<string> daemonReload = os::shell("systemctl daemon-reload");
-   if (daemonReload.isError()) {
-     return Error("Failed to reload systemd daemon: " + daemonReload.error());
-diff --git i/src/python/cli/src/mesos/cli.py w/src/python/cli/src/mesos/cli.py
-index 4a9b558..c08a8b9 100644
---- i/src/python/cli/src/mesos/cli.py
-+++ w/src/python/cli/src/mesos/cli.py
-@@ -40,7 +40,7 @@ def resolve(master):
-     import subprocess
- 
-     process = subprocess.Popen(
--        ['mesos-resolve', master],
-+        ['@mesos-resolve@', master],
-         stdin=None,
-         stdout=subprocess.PIPE,
-         stderr=subprocess.PIPE,
-diff --git i/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp w/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
-index 5b630c1..d63ad69 100644
---- i/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
-+++ w/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
-@@ -499,7 +499,7 @@ Future<Option<ContainerLaunchInfo>> DockerVolumeIsolatorProcess::_prepare(
-     // unsafe arbitrary commands).
-     CommandInfo* command = launchInfo.add_pre_exec_commands();
-     command->set_shell(false);
--    command->set_value("mount");
-+    command->set_value("@mount@");
-     command->add_arguments("mount");
-     command->add_arguments("-n");
-     command->add_arguments("--rbind");
-diff --git i/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp w/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
-index d7fe9a8..1361a4e 100644
---- i/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
-+++ w/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
-@@ -154,9 +154,9 @@ Try<Isolator*> LinuxFilesystemIsolatorProcess::create(const Flags& flags)
-       // here because 'create' will only be invoked during
-       // initialization.
-       Try<string> mount = os::shell(
--          "mount --bind %s %s && "
--          "mount --make-private %s && "
--          "mount --make-shared %s",
-+          "@mount@ --bind %s %s && "
-+          "@mount@ --make-private %s && "
-+          "@mount@ --make-shared %s",
-           workDir->c_str(),
-           workDir->c_str(),
-           workDir->c_str(),
-@@ -175,8 +175,8 @@ Try<Isolator*> LinuxFilesystemIsolatorProcess::create(const Flags& flags)
-       LOG(INFO) << "Making '" << workDir.get() << "' a shared mount";
- 
-       Try<string> mount = os::shell(
--          "mount --make-private %s && "
--          "mount --make-shared %s",
-+          "@mount@ --make-private %s && "
-+          "@mount@ --make-shared %s",
-           workDir->c_str(),
-           workDir->c_str());
- 
-@@ -422,7 +422,7 @@ Try<vector<CommandInfo>> LinuxFilesystemIsolatorProcess::getPreExecCommands(
- 
-     CommandInfo command;
-     command.set_shell(false);
--    command.set_value("mount");
-+    command.set_value("@mount@");
-     command.add_arguments("mount");
-     command.add_arguments("-n");
-     command.add_arguments("--rbind");
-@@ -610,7 +610,7 @@ Try<vector<CommandInfo>> LinuxFilesystemIsolatorProcess::getPreExecCommands(
-     // TODO(jieyu): Consider the mode in the volume.
-     CommandInfo command;
-     command.set_shell(false);
--    command.set_value("mount");
-+    command.set_value("@mount@");
-     command.add_arguments("mount");
-     command.add_arguments("-n");
-     command.add_arguments("--rbind");
-diff --git i/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp w/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
-index 927d95b..576dc63 100644
---- i/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
-+++ w/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
-@@ -208,7 +208,7 @@ Future<Option<ContainerLaunchInfo>> SharedFilesystemIsolatorProcess::prepare(
-     }
- 
-     launchInfo.add_pre_exec_commands()->set_value(
--        "mount -n --bind " + hostPath + " " + volume.container_path());
-+        "@mount@ -n --bind " + hostPath + " " + volume.container_path());
-   }
- 
-   return launchInfo;
-diff --git i/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp w/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
-index 25636b5..33ec315 100644
---- i/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
-+++ w/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
-@@ -401,7 +401,7 @@ Future<Option<ContainerLaunchInfo>> NvidiaGpuIsolatorProcess::_prepare(
-     }
- 
-     launchInfo.add_pre_exec_commands()->set_value(
--      "mount --no-mtab --rbind --read-only " +
-+      "@mount@ --no-mtab --rbind --read-only " +
-       volume.HOST_PATH() + " " + target);
-   }
- 
-diff --git i/src/slave/containerizer/mesos/isolators/gpu/volume.cpp w/src/slave/containerizer/mesos/isolators/gpu/volume.cpp
-index 536a3c7..e2819dd 100644
---- i/src/slave/containerizer/mesos/isolators/gpu/volume.cpp
-+++ w/src/slave/containerizer/mesos/isolators/gpu/volume.cpp
-@@ -274,7 +274,7 @@ Try<NvidiaVolume> NvidiaVolume::create()
-     string path = path::join(hostPath, "bin", binary);
- 
-     if (!os::exists(path)) {
--      string command = "which " + binary;
-+      string command = "@which@ " + binary;
-       Try<string> which = os::shell(command);
- 
-       if (which.isSome()) {
-@@ -288,7 +288,7 @@ Try<NvidiaVolume> NvidiaVolume::create()
-                               : "No such file or directory"));
-         }
- 
--        command = "cp " + realpath.get() + " " + path;
-+        command = "@cp@ " + realpath.get() + " " + path;
-         Try<string> cp = os::shell(command);
-         if (cp.isError()) {
-           return Error("Failed to os::shell '" + command + "': " + cp.error());
-@@ -360,7 +360,7 @@ Try<NvidiaVolume> NvidiaVolume::create()
-             Path(realpath.get()).basename());
- 
-         if (!os::exists(libraryPath)) {
--          string command = "cp " + realpath.get() + " " + libraryPath;
-+          string command = "@cp@ " + realpath.get() + " " + libraryPath;
-           Try<string> cp = os::shell(command);
-           if (cp.isError()) {
-             return Error("Failed to os::shell '" + command + "':"
-diff --git i/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp w/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
-index 42bc2e1..2f9066e 100644
---- i/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
-+++ w/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
-@@ -131,7 +131,7 @@ Future<Option<ContainerLaunchInfo>> NamespacesPidIsolatorProcess::prepare(
-   //
-   // TOOD(jieyu): Consider unmount the existing /proc.
-   launchInfo.add_pre_exec_commands()->set_value(
--      "mount -n -t proc proc /proc -o nosuid,noexec,nodev");
-+      "@mount@ -n -t proc proc /proc -o nosuid,noexec,nodev");
- 
-   return launchInfo;
- }
-diff --git i/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp w/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
-index fc68f04..267b040 100644
---- i/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
-+++ w/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
-@@ -205,9 +205,9 @@ Try<Isolator*> NetworkCniIsolatorProcess::create(const Flags& flags)
-       // here because 'create' will only be invoked during
-       // initialization.
-       Try<string> mount = os::shell(
--          "mount --bind %s %s && "
--          "mount --make-private %s && "
--          "mount --make-shared %s",
-+          "@mount@ --bind %s %s && "
-+          "@mount@ --make-private %s && "
-+          "@mount@ --make-shared %s",
-           rootDir->c_str(),
-           rootDir->c_str(),
-           rootDir->c_str(),
-@@ -227,8 +227,8 @@ Try<Isolator*> NetworkCniIsolatorProcess::create(const Flags& flags)
-       LOG(INFO) << "Making '" << rootDir.get() << "' a shared mount";
- 
-       Try<string> mount = os::shell(
--          "mount --make-private %s && "
--          "mount --make-shared %s",
-+          "@mount@ --make-private %s && "
-+          "@mount@ --make-shared %s",
-           rootDir->c_str(),
-           rootDir->c_str());
- 
-diff --git i/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp w/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp
-index 43cf3e4..94bad8b 100644
---- i/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp
-+++ w/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp
-@@ -301,7 +301,7 @@ Try<Nothing> PortMapper::addPortMapping(
-       # Check if the `chain` exists in the iptable. If it does not
-       # exist go ahead and install the chain in the iptables NAT
-       # table.
--      iptables -w -t nat --list %s
-+      @iptables@ -w -t nat --list %s
-       if [ $? -ne 0 ]; then
-         # NOTE: When we create the chain, there is a possibility of a
-         # race due to which a container launch can fail. This can
-@@ -315,25 +315,25 @@ Try<Nothing> PortMapper::addPortMapping(
-         # since it can happen only when the chain is created the first
-         # time and two commands for creation of the chain are executed
-         # simultaneously.
--        (iptables -w -t nat -N %s || exit 1)
-+        (@iptables@ -w -t nat -N %s || exit 1)
- 
-         # Once the chain has been installed add a rule in the PREROUTING
-         # chain to jump to this chain for any packets that are
-         # destined to a local address.
--        (iptables -w -t nat -A PREROUTING \
-+        (@iptables@ -w -t nat -A PREROUTING \
-         -m addrtype --dst-type LOCAL -j %s || exit 1)
- 
-         # For locally generated packets we need a rule in the OUTPUT
-         # chain as well, since locally generated packets directly hit
-         # the output CHAIN, bypassing PREROUTING.
--        (iptables -w -t nat -A OUTPUT \
-+        (@iptables@ -w -t nat -A OUTPUT \
-         ! -d 127.0.0.0/8 -m addrtype \
-         --dst-type LOCAL -j %s || exit 1)
-       fi
- 
-       # Within the `chain` go ahead and install the DNAT rule, if it
-       # does not exist.
--      (iptables -w -t nat -C %s || iptables -t nat -A %s))~",
-+      (@iptables@ -w -t nat -C %s || @iptables@ -t nat -A %s))~",
-       chain,
-       chain,
-       chain,
-@@ -360,7 +360,7 @@ Try<Nothing> PortMapper::delPortMapping()
-       # The iptables command searches for the DNAT rules with tag
-       # "container_id: <CNI_CONTAINERID>", and if it exists goes ahead
-       # and deletes it.
--      iptables -w -t nat -S %s | sed "/%s/ s/-A/iptables -w -t nat -D/e")~",
-+      @iptables@ -w -t nat -S %s | sed "/%s/ s/-A/@iptables@ -w -t nat -D/e")~",
-       chain,
-       getIptablesRuleTag()).get();
- 
-diff --git i/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp w/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
-index 57d4ccd..68c9577 100644
---- i/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
-+++ w/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
-@@ -1394,19 +1394,19 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
-   // Check the availability of a few Linux commands that we will use.
-   // We use the blocking os::shell here because 'create' will only be
-   // invoked during initialization.
--  Try<string> checkCommandTc = os::shell("tc filter show");
-+  Try<string> checkCommandTc = os::shell("@tc@ filter show");
-   if (checkCommandTc.isError()) {
-     return Error("Check command 'tc' failed: " + checkCommandTc.error());
-   }
- 
-   // NOTE: loopback device always exists.
--  Try<string> checkCommandEthtool = os::shell("ethtool -k lo");
-+  Try<string> checkCommandEthtool = os::shell("@ethtool@ -k lo");
-   if (checkCommandEthtool.isError()) {
-     return Error("Check command 'ethtool' failed: "
-                  + checkCommandEthtool.error());
-   }
- 
--  Try<string> checkCommandIp = os::shell("ip link show");
-+  Try<string> checkCommandIp = os::shell("@ip@ link show");
-   if (checkCommandIp.isError()) {
-     return Error("Check command 'ip' failed: " + checkCommandIp.error());
-   }
-@@ -1940,9 +1940,9 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
-     // visible. It's OK to use the blocking os::shell here because
-     // 'create' will only be invoked during initialization.
-     Try<string> mount = os::shell(
--        "mount --bind %s %s && "
--        "mount --make-slave %s && "
--        "mount --make-shared %s",
-+        "@mount@ --bind %s %s && "
-+        "@mount@ --make-slave %s && "
-+        "@mount@ --make-shared %s",
-         bindMountRoot->c_str(),
-         bindMountRoot->c_str(),
-         bindMountRoot->c_str(),
-@@ -1959,8 +1959,8 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
-       // shared mount yet (possibly due to slave crash while preparing
-       // the work directory mount). It's safe to re-do the following.
-       Try<string> mount = os::shell(
--          "mount --make-slave %s && "
--          "mount --make-shared %s",
-+          "@mount@ --make-slave %s && "
-+          "@mount@ --make-shared %s",
-           bindMountRoot->c_str(),
-           bindMountRoot->c_str());
- 
-@@ -1979,8 +1979,8 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
-           // so that they are in different peer groups.
-           if (entry.shared() == bindMountEntry->shared()) {
-             Try<string> mount = os::shell(
--                "mount --make-slave %s && "
--                "mount --make-shared %s",
-+                "@mount@ --make-slave %s && "
-+                "@mount@ --make-shared %s",
-                 bindMountRoot->c_str(),
-                 bindMountRoot->c_str());
- 
-@@ -3927,6 +3927,8 @@ Try<Nothing> PortMappingIsolatorProcess::removeHostIPFilters(
- // TODO(jieyu): Use the Subcommand abstraction to remove most of the
- // logic here. Completely remove this function once we can assume a
- // newer kernel where 'setns' works for mount namespaces.
-+// cstrahan(nixos): this is executed in the container,
-+// so we don't want to substitute paths here.
- string PortMappingIsolatorProcess::scripts(Info* info)
- {
-   ostringstream script;
-@@ -3937,7 +3939,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-   // Mark the mount point PORT_MAPPING_BIND_MOUNT_ROOT() as slave
-   // mount so that changes in the container will not be propagated to
-   // the host.
--  script << "mount --make-rslave " << bindMountRoot << "\n";
-+  script << "@mount@ --make-rslave " << bindMountRoot << "\n";
- 
-   // Disable IPv6 when IPv6 module is loaded as IPv6 packets won't be
-   // forwarded anyway.
-@@ -3945,7 +3947,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-          << " echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6\n";
- 
-   // Configure lo and eth0.
--  script << "ip link set " << lo << " address " << hostMAC
-+  script << "@ip@ link set " << lo << " address " << hostMAC
-          << " mtu " << hostEth0MTU << " up\n";
- 
-   // NOTE: This is mostly a kernel issue: in veth_xmit() the kernel
-@@ -3954,12 +3956,12 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-   // when we receive a packet with a bad checksum. Disabling rx
-   // checksum offloading ensures the TCP layer will checksum and drop
-   // it.
--  script << "ethtool -K " << eth0 << " rx off\n";
--  script << "ip link set " << eth0 << " address " << hostMAC << " up\n";
--  script << "ip addr add " << hostIPNetwork  << " dev " << eth0 << "\n";
-+  script << "@ethtool@ -K " << eth0 << " rx off\n";
-+  script << "@ip@ link set " << eth0 << " address " << hostMAC << " up\n";
-+  script << "@ip@ addr add " << hostIPNetwork  << " dev " << eth0 << "\n";
- 
-   // Set up the default gateway to match that of eth0.
--  script << "ip route add default via " << hostDefaultGateway << "\n";
-+  script << "@ip@ route add default via " << hostDefaultGateway << "\n";
- 
-   // Restrict the ephemeral ports that can be used by the container.
-   script << "echo " << info->ephemeralPorts.lower() << " "
-@@ -3988,19 +3990,19 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-   }
- 
-   // Set up filters on lo and eth0.
--  script << "tc qdisc add dev " << lo << " ingress\n";
--  script << "tc qdisc add dev " << eth0 << " ingress\n";
-+  script << "@tc@ qdisc add dev " << lo << " ingress\n";
-+  script << "@tc@ qdisc add dev " << eth0 << " ingress\n";
- 
-   // Allow talking between containers and from container to host.
-   // TODO(chzhcn): Consider merging the following two filters.
--  script << "tc filter add dev " << lo << " parent " << ingress::HANDLE
-+  script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE
-          << " protocol ip"
-          << " prio " << Priority(IP_FILTER_PRIORITY, NORMAL).get() << " u32"
-          << " flowid ffff:0"
-          << " match ip dst " << hostIPNetwork.address()
-          << " action mirred egress redirect dev " << eth0 << "\n";
- 
--  script << "tc filter add dev " << lo << " parent " << ingress::HANDLE
-+  script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE
-          << " protocol ip"
-          << " prio " << Priority(IP_FILTER_PRIORITY, NORMAL).get() << " u32"
-          << " flowid ffff:0"
-@@ -4011,7 +4013,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-   foreach (const PortRange& range,
-            getPortRanges(info->nonEphemeralPorts + info->ephemeralPorts)) {
-     // Local traffic inside a container will not be redirected to eth0.
--    script << "tc filter add dev " << lo << " parent " << ingress::HANDLE
-+    script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE
-            << " protocol ip"
-            << " prio " << Priority(IP_FILTER_PRIORITY, HIGH).get() << " u32"
-            << " flowid ffff:0"
-@@ -4020,7 +4022,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
- 
-     // Traffic going to host loopback IP and ports assigned to this
-     // container will be redirected to lo.
--    script << "tc filter add dev " << eth0 << " parent " << ingress::HANDLE
-+    script << "@tc@ filter add dev " << eth0 << " parent " << ingress::HANDLE
-            << " protocol ip"
-            << " prio " << Priority(IP_FILTER_PRIORITY, NORMAL).get() << " u32"
-            << " flowid ffff:0"
-@@ -4032,14 +4034,14 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-   }
- 
-   // Do not forward the ICMP packet if the destination IP is self.
--  script << "tc filter add dev " << lo << " parent " << ingress::HANDLE
-+  script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE
-          << " protocol ip"
-          << " prio " << Priority(ICMP_FILTER_PRIORITY, NORMAL).get() << " u32"
-          << " flowid ffff:0"
-          << " match ip protocol 1 0xff"
-          << " match ip dst " << hostIPNetwork.address() << "\n";
- 
--  script << "tc filter add dev " << lo << " parent " << ingress::HANDLE
-+  script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE
-          << " protocol ip"
-          << " prio " << Priority(ICMP_FILTER_PRIORITY, NORMAL).get() << " u32"
-          << " flowid ffff:0"
-@@ -4048,9 +4050,9 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-          << net::IP::Network::LOOPBACK_V4().address() << "\n";
- 
-   // Display the filters created on eth0 and lo.
--  script << "tc filter show dev " << eth0
-+  script << "@tc@ filter show dev " << eth0
-          << " parent " << ingress::HANDLE << "\n";
--  script << "tc filter show dev " << lo
-+  script << "@tc@ filter show dev " << lo
-          << " parent " << ingress::HANDLE << "\n";
- 
-   // If throughput limit for container egress traffic exists, use HTB
-@@ -4062,9 +4064,9 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-   // throughput. TBF requires other parameters such as 'burst' that
-   // HTB already has default values for.
-   if (egressRateLimitPerContainer.isSome()) {
--    script << "tc qdisc add dev " << eth0 << " root handle "
-+    script << "@tc@ qdisc add dev " << eth0 << " root handle "
-            << CONTAINER_TX_HTB_HANDLE << " htb default 1\n";
--    script << "tc class add dev " << eth0 << " parent "
-+    script << "@tc@ class add dev " << eth0 << " parent "
-            << CONTAINER_TX_HTB_HANDLE << " classid "
-            << CONTAINER_TX_HTB_CLASS_ID << " htb rate "
-            << egressRateLimitPerContainer.get().bytes() * 8 << "bit\n";
-@@ -4075,12 +4077,12 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-     // fq_codel, which has a larger buffer and better control on
-     // buffer bloat.
-     // TODO(cwang): Verity that fq_codel qdisc is available.
--    script << "tc qdisc add dev " << eth0
-+    script << "@tc@ qdisc add dev " << eth0
-            << " parent " << CONTAINER_TX_HTB_CLASS_ID << " fq_codel\n";
- 
-     // Display the htb qdisc and class created on eth0.
--    script << "tc qdisc show dev " << eth0 << "\n";
--    script << "tc class show dev " << eth0 << "\n";
-+    script << "@tc@ qdisc show dev " << eth0 << "\n";
-+    script << "@tc@ class show dev " << eth0 << "\n";
-   }
- 
-   return script.str();
-diff --git i/src/slave/containerizer/mesos/isolators/posix/disk.cpp w/src/slave/containerizer/mesos/isolators/posix/disk.cpp
-index eb23025..db268ea 100644
---- i/src/slave/containerizer/mesos/isolators/posix/disk.cpp
-+++ w/src/slave/containerizer/mesos/isolators/posix/disk.cpp
-@@ -572,7 +572,7 @@ private:
-     // NOTE: The supervisor childhook will watch the parent process and kill
-     // the 'du' process in case that the parent die.
-     Try<Subprocess> s = subprocess(
--        "du",
-+        "@du@",
-         command,
-         Subprocess::PATH(os::DEV_NULL),
-         Subprocess::PIPE(),
-diff --git i/src/slave/containerizer/mesos/isolators/volume/image.cpp w/src/slave/containerizer/mesos/isolators/volume/image.cpp
-index 35966aa..b62fc86 100644
---- i/src/slave/containerizer/mesos/isolators/volume/image.cpp
-+++ w/src/slave/containerizer/mesos/isolators/volume/image.cpp
-@@ -231,7 +231,7 @@ Future<Option<ContainerLaunchInfo>> VolumeImageIsolatorProcess::_prepare(
- 
-     CommandInfo* command = launchInfo.add_pre_exec_commands();
-     command->set_shell(false);
--    command->set_value("mount");
-+    command->set_value("@mount@");
-     command->add_arguments("mount");
-     command->add_arguments("-n");
-     command->add_arguments("--rbind");
-diff --git i/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp w/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp
-index b321b86..8ed3e78 100644
---- i/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp
-+++ w/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp
-@@ -265,7 +265,7 @@ Future<Option<ContainerLaunchInfo>> VolumeSandboxPathIsolatorProcess::prepare(
- 
-       CommandInfo* command = launchInfo.add_pre_exec_commands();
-       command->set_shell(false);
--      command->set_value("mount");
-+      command->set_value("@mount@");
-       command->add_arguments("mount");
-       command->add_arguments("-n");
-       command->add_arguments("--rbind");
-diff --git i/src/slave/containerizer/mesos/provisioner/backends/copy.cpp w/src/slave/containerizer/mesos/provisioner/backends/copy.cpp
-index 69faa03..01a3ed6 100644
---- i/src/slave/containerizer/mesos/provisioner/backends/copy.cpp
-+++ w/src/slave/containerizer/mesos/provisioner/backends/copy.cpp
-@@ -266,7 +266,7 @@ Future<Nothing> CopyBackendProcess::_provision(
- #endif // __APPLE__ || __FreeBSD__
- 
-   Try<Subprocess> s = subprocess(
--      "cp",
-+      "@cp@",
-       args,
-       Subprocess::PATH(os::DEV_NULL),
-       Subprocess::PATH(os::DEV_NULL),
-@@ -313,7 +313,7 @@ Future<bool> CopyBackendProcess::destroy(const string& rootfs)
-   vector<string> argv{"rm", "-rf", rootfs};
- 
-   Try<Subprocess> s = subprocess(
--      "rm",
-+      "@rm@",
-       argv,
-       Subprocess::PATH(os::DEV_NULL),
-       Subprocess::FD(STDOUT_FILENO),
-diff --git i/src/uri/fetchers/copy.cpp w/src/uri/fetchers/copy.cpp
-index 17f69be..831b08a 100644
---- i/src/uri/fetchers/copy.cpp
-+++ w/src/uri/fetchers/copy.cpp
-@@ -97,8 +97,8 @@ Future<Nothing> CopyFetcherPlugin::fetch(
-   VLOG(1) << "Copying '" << uri.path() << "' to '" << directory << "'";
- 
- #ifndef __WINDOWS__
--  const char* copyCommand = "cp";
--  const vector<string> argv = {"cp", "-a", uri.path(), directory};
-+  const char* copyCommand = "@cp@";
-+  const vector<string> argv = {"@cp@", "-a", uri.path(), directory};
- #else // __WINDOWS__
-   const char* copyCommand = os::Shell::name;
-   const vector<string> argv =
-diff --git i/src/uri/fetchers/curl.cpp w/src/uri/fetchers/curl.cpp
-index f34daf2..6a50341 100644
---- i/src/uri/fetchers/curl.cpp
-+++ w/src/uri/fetchers/curl.cpp
-@@ -109,7 +109,7 @@ Future<Nothing> CurlFetcherPlugin::fetch(
-   };
- 
-   Try<Subprocess> s = subprocess(
--      "curl",
-+      "@curl@",
-       argv,
-       Subprocess::PATH(os::DEV_NULL),
-       Subprocess::PIPE(),
-diff --git i/src/uri/fetchers/docker.cpp w/src/uri/fetchers/docker.cpp
-index 91db13b..82a7fc4 100644
---- i/src/uri/fetchers/docker.cpp
-+++ w/src/uri/fetchers/docker.cpp
-@@ -114,7 +114,7 @@ static Future<http::Response> curl(
- 
-   // TODO(jieyu): Kill the process if discard is called.
-   Try<Subprocess> s = subprocess(
--      "curl",
-+      "@curl@",
-       argv,
-       Subprocess::PATH(os::DEV_NULL),
-       Subprocess::PIPE(),
-@@ -229,7 +229,7 @@ static Future<int> download(
- 
-   // TODO(jieyu): Kill the process if discard is called.
-   Try<Subprocess> s = subprocess(
--      "curl",
-+      "@curl@",
-       argv,
-       Subprocess::PATH(os::DEV_NULL),
-       Subprocess::PIPE(),
diff --git a/pkgs/applications/networking/cluster/mesos/rb36610.patch b/pkgs/applications/networking/cluster/mesos/rb36610.patch
deleted file mode 100644
index bee578cc3e9..00000000000
--- a/pkgs/applications/networking/cluster/mesos/rb36610.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/linux/fs.cpp b/src/linux/fs.cpp
-index 913e233..c2917a6 100644
---- a/src/linux/fs.cpp
-+++ b/src/linux/fs.cpp
-@@ -17,6 +17,7 @@
- #include <errno.h>
- #include <stdio.h>
- #include <string.h>
-+#include <syscall.h>
- 
- #include <linux/limits.h>
- #include <linux/unistd.h>
diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix
index c409bf4712c..b319ee57b95 100644
--- a/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/pkgs/applications/networking/cluster/minikube/default.nix
@@ -11,18 +11,17 @@
 
 buildGoModule rec {
   pname = "minikube";
-  version = "1.11.0";
+  version = "1.13.0";
 
-  # for -ldflags
-  commit = "57e2f55f47effe9ce396cea42a1e0eb4f611ebbd";
+  vendorSha256 = "09bcp7pqbs9j06z1glpad70dqlsnrf69vn75l00bdjknbrvbzrb9";
 
-  vendorSha256 = "1l9dxn7yy21x4b3cg6l5a08wx2ng8qf531ilg8yf1rznwfwjajrv";
+  doCheck = false;
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "minikube";
     rev = "v${version}";
-    sha256 = "0y761svwyrpc4ywdd4vr9hxkg6593wg4wwqzn8n86g0zcz6qg11d";
+    sha256 = "1xlz07q0nlsq6js58b5ad0wxajwganaqcvwglj4w6fgmiqm9s1ny";
   };
 
   nativeBuildInputs = [ go-bindata installShellFiles pkg-config which ];
@@ -30,7 +29,7 @@ buildGoModule rec {
   buildInputs = if stdenv.isDarwin then [ vmnet ] else if stdenv.isLinux then [ libvirt ] else null;
 
   buildPhase = ''
-    make COMMIT=${commit}
+    make COMMIT=${src.rev}
   '';
 
   installPhase = ''
@@ -40,7 +39,7 @@ buildGoModule rec {
     export MINIKUBE_WANTUPDATENOTIFICATION=false
     export MINIKUBE_WANTKUBECTLDOWNLOADMSG=false
 
-    for shell in bash zsh; do
+    for shell in bash zsh fish; do
       $out/bin/minikube completion $shell > minikube.$shell
       installShellCompletion minikube.$shell
     done
diff --git a/pkgs/applications/networking/cluster/node-problem-detector/default.nix b/pkgs/applications/networking/cluster/node-problem-detector/default.nix
index 652518d892a..3ff0e4b397c 100644
--- a/pkgs/applications/networking/cluster/node-problem-detector/default.nix
+++ b/pkgs/applications/networking/cluster/node-problem-detector/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "node-problem-detector";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0cphlaf9k2va879jgqd6fzdgkscpwg29j1cpr677i3zj3hfgaw1g";
+    sha256 = "1sga5l8bvqgm0j71yj3l1ykqvchxa7cg8pkfvjsrqlikgrfb54f3";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   # Optionally, a log counter binary can be created to parse journald logs.
   # The binary is dynamically linked against systemd libraries, making it a
   # Linux-only feature. See 'ENABLE_JOURNALD' upstream:
diff --git a/pkgs/applications/networking/cluster/nomad/0.11.nix b/pkgs/applications/networking/cluster/nomad/0.11.nix
new file mode 100644
index 00000000000..9d0f2248ddc
--- /dev/null
+++ b/pkgs/applications/networking/cluster/nomad/0.11.nix
@@ -0,0 +1,6 @@
+{ callPackage }:
+
+callPackage ./generic.nix {
+  version = "0.11.4";
+  sha256 = "1sykp9sji6f564s7bz0cvnr9w5x92n0l1r1djf1bl7jvv2mi1mcb";
+}
diff --git a/pkgs/applications/networking/cluster/nomad/0.12.nix b/pkgs/applications/networking/cluster/nomad/0.12.nix
new file mode 100644
index 00000000000..ae131702df6
--- /dev/null
+++ b/pkgs/applications/networking/cluster/nomad/0.12.nix
@@ -0,0 +1,6 @@
+{ callPackage }:
+
+callPackage ./generic.nix {
+  version = "0.12.2";
+  sha256 = "1gc286ag6plk5kxw7jzr32cp3n5rwydj1z7rds1rfd0fyq7an404";
+}
diff --git a/pkgs/applications/networking/cluster/nomad/default.nix b/pkgs/applications/networking/cluster/nomad/generic.nix
index 990679a8668..0bfdb0b27f6 100644
--- a/pkgs/applications/networking/cluster/nomad/default.nix
+++ b/pkgs/applications/networking/cluster/nomad/generic.nix
@@ -1,8 +1,8 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, version, sha256 }:
 
 buildGoPackage rec {
   pname = "nomad";
-  version = "0.11.3";
+  inherit version;
   rev = "v${version}";
 
   goPackagePath = "github.com/hashicorp/nomad";
@@ -11,8 +11,7 @@ buildGoPackage rec {
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
-    inherit rev;
-    sha256 = "1p7g7x2gl77h1w7aip3xji3s530fj46gspargz4j3i6h4wkyvafb";
+    inherit rev sha256;
   };
 
   # ui:
diff --git a/pkgs/applications/networking/cluster/prow/default.nix b/pkgs/applications/networking/cluster/prow/default.nix
index 4ad685418d3..60e79ed6690 100644
--- a/pkgs/applications/networking/cluster/prow/default.nix
+++ b/pkgs/applications/networking/cluster/prow/default.nix
@@ -15,6 +15,8 @@ buildGoModule rec {
 
   vendorSha256 = "16fdc5r28andm8my4fxj0f1yygx6j2mvn92i6xdfhbcra0lvr4ql";
 
+  doCheck = false;
+
   subPackages = [
     "prow/cmd/admission"
     "prow/cmd/branchprotector"
@@ -63,4 +65,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ kalbasit ];
     platforms = platforms.linux ++ platforms.darwin;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/cluster/qbec/default.nix b/pkgs/applications/networking/cluster/qbec/default.nix
index c75e48d97db..508e0b656d6 100644
--- a/pkgs/applications/networking/cluster/qbec/default.nix
+++ b/pkgs/applications/networking/cluster/qbec/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "15hbjghi2ifylg7nr85qlk0alsy97h9zj6hf5w84m76dla2bcjf3";
 
+  doCheck = false;
+
   buildFlagsArray = ''
     -ldflags=
       -s -w
diff --git a/pkgs/applications/networking/cluster/spark/default.nix b/pkgs/applications/networking/cluster/spark/default.nix
index 162585851d0..53856ce9e2f 100644
--- a/pkgs/applications/networking/cluster/spark/default.nix
+++ b/pkgs/applications/networking/cluster/spark/default.nix
@@ -1,6 +1,5 @@
 { stdenv, fetchzip, makeWrapper, jre, pythonPackages, coreutils, hadoop
 , RSupport? true, R
-, mesosSupport ? true, mesos
 }:
 
 with stdenv.lib;
@@ -12,12 +11,11 @@ stdenv.mkDerivation rec {
 
   src = fetchzip {
     url    = "mirror://apache/spark/${pname}-${version}/${pname}-${version}-bin-without-hadoop.tgz";
-    sha256 = "1a9w5k0207fysgpxx6db3a00fs5hdc2ncx99x4ccy2s0v5ndc66g"; 
+    sha256 = "1a9w5k0207fysgpxx6db3a00fs5hdc2ncx99x4ccy2s0v5ndc66g";
   };
 
   buildInputs = [ makeWrapper jre pythonPackages.python pythonPackages.numpy ]
-    ++ optional RSupport R
-    ++ optional mesosSupport mesos;
+    ++ optional RSupport R;
 
   untarDir = "${pname}-${version}-bin-without-hadoop";
   installPhase = ''
@@ -37,8 +35,6 @@ stdenv.mkDerivation rec {
     ${optionalString RSupport
       ''export SPARKR_R_SHELL="${R}/bin/R"
         export PATH=$PATH:"${R}/bin/R"''}
-    ${optionalString mesosSupport
-      ''export MESOS_NATIVE_LIBRARY="$MESOS_NATIVE_LIBRARY"''}
     EOF
 
     for n in $(find $out/lib/${untarDir}/bin -type f ! -name "*.*"); do
diff --git a/pkgs/applications/networking/cluster/ssm-agent/default.nix b/pkgs/applications/networking/cluster/ssm-agent/default.nix
index 0835d268cd7..c6f9217b35b 100644
--- a/pkgs/applications/networking/cluster/ssm-agent/default.nix
+++ b/pkgs/applications/networking/cluster/ssm-agent/default.nix
@@ -1,22 +1,56 @@
-{ stdenv, fetchFromGitHub, buildGoPackage }:
+{ stdenv, fetchFromGitHub, buildGoPackage, bash, makeWrapper }:
 
 buildGoPackage rec {
   pname   = "amazon-ssm-agent";
-  version = "2.0.633.0";
+  version = "2.3.1319.0";
 
   goPackagePath = "github.com/aws/${pname}";
-  subPackages   = [ "agent" ];
+  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 ];
 
   src = fetchFromGitHub {
-    rev    = "v${version}";
+    rev    = version;
     owner  = "aws";
     repo   = pname;
-    sha256 = "10arshfn2k3m3zzgw8b3xc6ywd0ss73746nq5srh2jir7mjzi4xv";
+    sha256 = "1yiyhj7ckqa32b1rnbwn7zx89rsj00m5imn1xlpsw002ywxsxbnv";
   };
 
   preBuild = ''
     mv go/src/${goPackagePath}/vendor strange-vendor
     mv strange-vendor/src go/src/${goPackagePath}/vendor
+
+    cd go/src/${goPackagePath}
+    echo ${version} > VERSION
+
+    substituteInPlace agent/plugins/inventory/gatherers/application/dataProvider.go \
+      --replace '"github.com/aws/amazon-ssm-agent/agent/plugins/configurepackage/localpackages"' ""
+
+    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 -
+  '';
+
+  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
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bash}/bin
   '';
 
   meta = with stdenv.lib; {
@@ -24,7 +58,6 @@ buildGoPackage rec {
     homepage    = "https://github.com/aws/amazon-ssm-agent";
     license     = licenses.asl20;
     platforms   = platforms.unix;
-    maintainers = with maintainers; [ copumpkin ];
+    maintainers = with maintainers; [ copumpkin manveru ];
   };
 }
-
diff --git a/pkgs/applications/networking/cluster/tanka/default.nix b/pkgs/applications/networking/cluster/tanka/default.nix
new file mode 100644
index 00000000000..1793af1085a
--- /dev/null
+++ b/pkgs/applications/networking/cluster/tanka/default.nix
@@ -0,0 +1,34 @@
+{ buildGoModule, fetchFromGitHub, lib, installShellFiles }:
+
+buildGoModule rec {
+  pname = "tanka";
+  version = "0.11.1";
+
+  src = fetchFromGitHub {
+    owner = "grafana";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0hp10qgalglsdhh6z6v4azh2hsr89mdrv1g5lssfl5jyink409yd";
+  };
+
+  vendorSha256 = "15x8fqz2d2793ivgxpd9jyr34njzi1xpyxdlfyj1b01n2vr3xg4m";
+
+  doCheck = false;
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version}" ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    echo "complete -C $out/bin/tk tk" > tk.bash
+    installShellCompletion tk.bash
+  '';
+
+  meta = with lib; {
+    description = "Flexible, reusable and concise configuration for Kubernetes";
+    homepage = "https://github.com/grafana/tanka/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mikefaille ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/networking/cluster/terraform-compliance/default.nix b/pkgs/applications/networking/cluster/terraform-compliance/default.nix
new file mode 100644
index 00000000000..e906f035fda
--- /dev/null
+++ b/pkgs/applications/networking/cluster/terraform-compliance/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, GitPython
+, buildPythonApplication
+, emoji
+, fetchFromGitHub
+, filetype
+, ipython
+, junit-xml
+, lxml
+, mock
+, netaddr
+, pytestCheckHook
+, python3Packages
+, radish-bdd
+, semver
+}:
+
+buildPythonApplication rec {
+  pname = "terraform-compliance";
+  version = "1.2.11";
+
+  # No tests in Pypi package
+  src = fetchFromGitHub {
+    owner = "eerkunt";
+    repo = pname;
+    rev = version;
+    sha256 = "161mszmxqp3wypnda48ama2mmq8yjilkxahwc1mxjwzy1n19sn7v";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  disabledTests = [
+    "test_which_success"
+    "test_readable_plan_file_is_not_json"
+  ];
+
+  propagatedBuildInputs = [
+    GitPython
+    emoji
+    filetype
+    ipython
+    junit-xml
+    lxml
+    mock
+    netaddr
+    radish-bdd
+    semver
+  ];
+
+  meta = with lib; {
+    description = "BDD test framework for terraform";
+    homepage = https://github.com/eerkunt/terraform-compliance;
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/terraform-inventory/default.nix b/pkgs/applications/networking/cluster/terraform-inventory/default.nix
index 38fbd1b4286..72e717d9166 100644
--- a/pkgs/applications/networking/cluster/terraform-inventory/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-inventory/default.nix
@@ -21,7 +21,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     homepage = "https://github.com/adammck/terraform-inventory";
     description = "Terraform state to ansible inventory adapter";
-    platforms = platforms.all;
     license = licenses.mit;
     maintainers = with maintainers; [ htr ];
   };
diff --git a/pkgs/applications/networking/cluster/terraform-providers/default.nix b/pkgs/applications/networking/cluster/terraform-providers/default.nix
index 3a8ebe635f6..686b9ef9500 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -140,10 +140,12 @@ let
 
     # Packages that don't fit the default model
     ansible = callPackage ./ansible {};
-    gandi = callPackage ./gandi {};
     elasticsearch = callPackage ./elasticsearch {};
+    gandi = callPackage ./gandi {};
+    keycloak = callPackage ./keycloak {};
     libvirt = callPackage ./libvirt {};
     lxd = callPackage ./lxd {};
+    shell = callPackage ./shell {};
     vpsadmin = callPackage ./vpsadmin {};
   };
 in
diff --git a/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix b/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix
index 6afa63c4a52..6eaaa05106d 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix
@@ -12,6 +12,8 @@ buildGoModule rec {
 
   vendorSha256 = "1rdvyypdl3fk6af66gfjhyl271cnlx5xgrl1w68sc6sbvq00bqkd";
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   # Terraform allow checking the provider versions, but this breaks
@@ -24,4 +26,4 @@ buildGoModule rec {
     license = licenses.mpl20;
     maintainers = with maintainers; [ basvandijk ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/cluster/terraform-providers/keycloak/default.nix b/pkgs/applications/networking/cluster/terraform-providers/keycloak/default.nix
new file mode 100644
index 00000000000..0fc717bda76
--- /dev/null
+++ b/pkgs/applications/networking/cluster/terraform-providers/keycloak/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, fetchFromGitHub
+, buildGoModule
+}:
+
+buildGoModule rec {
+  name = "terraform-provider-keycloak-${version}";
+  version = "1.20.0";
+
+  src = fetchFromGitHub {
+    owner = "mrparkers";
+    repo = "terraform-provider-keycloak";
+    rev = version;
+    sha256 = "1h8780k8345pf0s14k1pmwdjbv2j08h4rq3jwds81mmv6qgj1r2n";
+  };
+
+  vendorSha256 = "12iary7p5qsbl4xdhfd1wh92mvf2fiylnb3m1d3m7cdcn32rfimq";
+
+  doCheck = false;
+
+  postInstall = "mv $out/bin/terraform-provider-keycloak{,_v${version}}";
+
+  meta = with stdenv.lib; {
+    description = "Terraform provider for keycloak";
+    homepage = "https://github.com/mrparkers/terraform-provider-keycloak";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ eonpatapon ];
+  };
+
+}
diff --git a/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix b/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
index 69d93ac1c75..d64178b1e65 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1shdpl1zsbbpc3mfs0l65ykq2h15ggvqylaixcap4j4lfl7m9my0";
 
+  doCheck = false;
+
   postBuild = "mv ../go/bin/terraform-provider-lxd{,_v${version}}";
 
   meta = with stdenv.lib; {
@@ -22,4 +24,4 @@ buildGoModule rec {
     license = licenses.mpl20;
     maintainers = with maintainers; [ gila ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/cluster/terraform-providers/shell/default.nix b/pkgs/applications/networking/cluster/terraform-providers/shell/default.nix
new file mode 100644
index 00000000000..c0ee431fa40
--- /dev/null
+++ b/pkgs/applications/networking/cluster/terraform-providers/shell/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, buildGoModule }:
+buildGoModule rec {
+  pname = "terraform-provider-shell";
+  version = "1.6.0";
+
+  src = fetchFromGitHub {
+    owner = "scottwinkler";
+    repo   = pname;
+    rev    = "v${version}";
+    sha256 = "0jxb30vw93ibnwz8nfqapac7p9r2famzvsf2h4nfbmhkm6mpan4l";
+  };
+
+  vendorSha256 = "1p2ja6cw3dl7mx41svri6frjpgb9pxsrl7sq0rk1d3sviw0f88sg";
+
+  doCheck = false;
+
+  subPackages = [ "." ];
+
+  # Terraform allows checking the provider versions, but this breaks
+  # if the versions are not provided via file paths.
+  postInstall = "mv $out/bin/${pname}{,_v${version}}";
+
+  meta = with stdenv.lib; {
+    inherit (src.meta) homepage;
+    description = "Terraform provider for executing shell commands and saving output to state file";
+    changelog = "https://github.com/scottwinkler/terraform-provider-shell/releases/tag/v${version}";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ mupdt ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix b/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix
index 2832580287b..a4167d2b099 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix
@@ -12,6 +12,8 @@ buildGoModule rec {
 
   vendorSha256 = "0j90fnzba23mwf9bzf9w5h0hszkl3h61p5i780s9v9c0hbzhbqsh";
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   # Terraform allow checking the provider versions, but this breaks
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index e375970823b..f29508ffe38 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -48,6 +48,7 @@ let
           kalbasit
           marsam
           babariviere
+          Chili-Man
         ];
       };
     } // attrs');
@@ -118,8 +119,8 @@ in rec {
   terraform_0_11-full = terraform_0_11.full;
 
   terraform_0_12 = pluggable (generic {
-    version = "0.12.27";
-    sha256 = "1m5inlcrqklbb22vqphyq280wqrimxbkk75zp1d2q29wb74awf7h";
+    version = "0.12.29";
+    sha256 = "18i7vkvnvfybwzhww8d84cyh93xfbwswcnwfrgvcny1qwm8rsaj8";
     patches = [
         ./provider-path.patch
         (fetchpatch {
@@ -130,6 +131,13 @@ in rec {
     passthru = { inherit plugins; };
   });
 
+  terraform_0_13 = pluggable (generic {
+    version = "0.13.2";
+    sha256 = "04pm57l29j3ai6dvh2343q4yhskkxqj8ayr2hdw2qqjch52p8mrw";
+    patches = [ ./provider-path.patch ];
+    passthru = { inherit plugins; };
+  });
+
   # Tests that the plugins are being used. Terraform looks at the specific
   # file pattern and if the plugin is not found it will try to download it
   # from the Internet. With sandboxing enable this test will fail if that is
diff --git a/pkgs/applications/networking/cluster/terragrunt/default.nix b/pkgs/applications/networking/cluster/terragrunt/default.nix
index 74f576b9a39..e8b602b8a80 100644
--- a/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "terragrunt";
-  version = "0.23.23";
+  version = "0.23.40";
 
    src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1087zs5k73rhhzni8zdj950aw4nsc7mqjj8lgdcc8y3yx8p8y5hy";
+    sha256 = "0gd2g1nl8dgj24mzk4qymcwnp6prbi3qxj863rkpi3k32zy2iw4k";
   };
 
-  vendorSha256 = "1xn7c6y32vpanqvf1sfpw6bs73dbjniavjbf00j0vx83bfyklsr4";
+  vendorSha256 = "0f466qn5vp74mwx9s4rcbw1x793w8hr5dcf2c12sgshya1bxs4nl";
+
+  doCheck = false;
 
   buildInputs = [ makeWrapper ];
 
@@ -30,4 +32,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/cluster/tilt/default.nix b/pkgs/applications/networking/cluster/tilt/default.nix
index 13f2c3d9bd9..c3ec58df35d 100644
--- a/pkgs/applications/networking/cluster/tilt/default.nix
+++ b/pkgs/applications/networking/cluster/tilt/default.nix
@@ -1,24 +1,23 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "tilt";
   /* 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.11.3";
+    running in development environment and try to serve assets from the
+    source tree, which is not there once build completes.  */
+  version = "0.17.2";
 
   src = fetchFromGitHub {
-    owner  = "windmilleng";
+    owner  = "tilt-dev";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "035czgr0rn6gcv24vnlr35n9yvy0fwq4spdzsc76gfxckcbcmzz0";
+    sha256 = "0wiqnlam4f7085n3djvb5phhvw9df61bj8w6c5rcpffykg33vhmi";
   };
-
-  goPackagePath = "github.com/windmilleng/tilt";
+  vendorSha256 = null;
 
   subPackages = [ "cmd/tilt" ];
 
-  buildFlagsArray = ("-ldflags=-X main.version=${version} -X main.date=2020-01-25");
+  buildFlagsArray = [ "-ldflags=-X main.version=${version}" ];
 
   meta = with stdenv.lib; {
     description = "Local development tool to manage your developer instance when your team deploys to Kubernetes in production";
diff --git a/pkgs/applications/networking/feedreaders/feedreader/default.nix b/pkgs/applications/networking/feedreaders/feedreader/default.nix
index f399aeaa98d..d050b75ac30 100644
--- a/pkgs/applications/networking/feedreaders/feedreader/default.nix
+++ b/pkgs/applications/networking/feedreaders/feedreader/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, vala, gettext, python3
-, appstream-glib, desktop-file-utils, wrapGAppsHook, gnome-online-accounts, fetchpatch
+{ stdenv, fetchFromGitHub, nix-update-script, meson, ninja, pkgconfig, vala, gettext, python3
+, appstream-glib, desktop-file-utils, wrapGAppsHook, gnome-online-accounts
 , gtk3, libgee, libpeas, librest, webkitgtk, gsettings-desktop-schemas, pantheon
 , curl, glib, gnome3, gst_all_1, json-glib, libnotify, libsecret, sqlite, gumbo, libxml2
 }:
 
 stdenv.mkDerivation rec {
   pname = "feedreader";
-  version = "2.10.0";
+  version = "2.11.0";
 
   src = fetchFromGitHub {
     owner = "jangernert";
     repo = pname;
     rev = "v${version}";
-    sha256 = "154lzvd8acs4dyc91nlabpr284yrij8jkhgm0h18hp3cy0a11rv8";
+    sha256 = "1agy1nkpkdsy2kbrrc8nrwphj5n86rikjjvwkr8klbf88mzl6civ";
   };
 
   nativeBuildInputs = [
@@ -32,16 +32,8 @@ stdenv.mkDerivation rec {
     patchShebangs build-aux/meson_post_install.py
   '';
 
-  patches = [
-    # Fixes build with libsecret
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/jangernert/FeedReader/pull/943.patch";
-      sha256 = "0anrwvcg6607dzvfrhy5qcnpxzflskb3iy3khdg191aw1h2mqhb5";
-    })
-  ];
-
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/networking/feedreaders/newsflash/default.nix b/pkgs/applications/networking/feedreaders/newsflash/default.nix
new file mode 100644
index 00000000000..896904b0cac
--- /dev/null
+++ b/pkgs/applications/networking/feedreaders/newsflash/default.nix
@@ -0,0 +1,88 @@
+{ lib
+, rustPlatform
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, wrapGAppsHook
+, gdk-pixbuf
+, glib
+, gtk3
+, libhandy
+, openssl
+, sqlite
+, webkitgtk
+, glib-networking
+, librsvg
+, gst_all_1
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "newsflash";
+  version = "1.0.5";
+
+  src = fetchFromGitLab {
+    owner = "news-flash";
+    repo = "news_flash_gtk";
+    rev = version;
+    sha256 = "0kh1xqvxfz58gnrl8av0zkig9vcgmx9iaxw5p6gdm8a7gv18nvp3";
+  };
+
+  cargoSha256 = "059sppidbxzjk8lmjq41d5qbymp9j9v2qr0jxd7xg9avr0klwc2s";
+
+  patches = [
+    ./no-post-install.patch
+  ];
+
+  postPatch = ''
+    chmod +x build-aux/cargo.sh
+    patchShebangs .
+  '';
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook
+
+    # Provides setup hook to fix "Unrecognized image file format"
+    gdk-pixbuf
+
+    # Provides glib-compile-resources to compile gresources
+    glib
+  ];
+
+  buildInputs = [
+    gtk3
+    libhandy
+    openssl
+    sqlite
+    webkitgtk
+
+    # TLS support for loading external content in webkitgtk WebView
+    glib-networking
+
+    # SVG support for gdk-pixbuf
+    librsvg
+  ] ++ (with gst_all_1; [
+    # Audio & video support for webkitgtk WebView
+    gstreamer
+    gst-plugins-base
+    gst-plugins-good
+    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";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ metadark ];
+  };
+}
diff --git a/pkgs/applications/networking/feedreaders/newsflash/no-post-install.patch b/pkgs/applications/networking/feedreaders/newsflash/no-post-install.patch
new file mode 100644
index 00000000000..cfdec206e77
--- /dev/null
+++ b/pkgs/applications/networking/feedreaders/newsflash/no-post-install.patch
@@ -0,0 +1,10 @@
+diff --git a/meson.build b/meson.build
+index 53f911c..361a233 100644
+--- a/meson.build
++++ b/meson.build
+@@ -61,5 +61,3 @@ meson.add_dist_script(
+   meson.source_root(),
+   join_paths(meson.build_root(), 'meson-dist', meson.project_name() + '-' + newsflash_version)
+ )
+-
+-meson.add_install_script('build-aux/meson_post_install.py')
diff --git a/pkgs/applications/networking/feedreaders/rss2email/default.nix b/pkgs/applications/networking/feedreaders/rss2email/default.nix
index 18f154d3ff7..977b71ebc50 100644
--- a/pkgs/applications/networking/feedreaders/rss2email/default.nix
+++ b/pkgs/applications/networking/feedreaders/rss2email/default.nix
@@ -4,13 +4,14 @@ with pythonPackages;
 
 buildPythonApplication rec {
   pname = "rss2email";
-  version = "3.11";
+  version = "3.12.2";
 
-  propagatedBuildInputs = [ feedparser beautifulsoup4 html2text ];
+  propagatedBuildInputs = [ feedparser html2text ];
+  checkInputs = [ beautifulsoup4 ];
 
   src = fetchurl {
     url = "mirror://pypi/r/rss2email/${pname}-${version}.tar.gz";
-    sha256 = "1vk5slp2mhmc1qj30igqkyq3z5h2bl1ayhafqrjapa6cg6rbvhrn";
+    sha256 = "12w6x80wsw6xm17fxyymnl45aavsagg932zw621wcjz154vjghjr";
   };
 
   outputs = [ "out" "man" "doc" ];
@@ -39,7 +40,7 @@ buildPythonApplication rec {
     description = "A tool that converts RSS/Atom newsfeeds to email.";
     homepage = "https://pypi.python.org/pypi/rss2email";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ jb55 Profpatsch ];
+    maintainers = with maintainers; [ jb55 Profpatsch ekleog ];
   };
   passthru.tests = {
     smoke-test = nixosTests.rss2email;
diff --git a/pkgs/applications/networking/feedreaders/rssguard/default.nix b/pkgs/applications/networking/feedreaders/rssguard/default.nix
index b95d272e651..40b67484360 100644
--- a/pkgs/applications/networking/feedreaders/rssguard/default.nix
+++ b/pkgs/applications/networking/feedreaders/rssguard/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rssguard";
-  version = "3.6.2";
+  version = "3.7.2";
 
   src = fetchFromGitHub {
     owner = "martinrotter";
     repo = pname;
     rev = version;
-    sha256 = "1dx7gcmrjyi115lf6d36i129zmxfb16z7wy4ff8z9m65paci24mw";
+    sha256 = "1l2ra06am6bgwb4q200lhi64sz3np1dzf2vpjh10znxbx0mahbq6";
   };
 
   buildInputs =  [ qtwebengine qttools ];
diff --git a/pkgs/applications/networking/firehol/default.nix b/pkgs/applications/networking/firehol/default.nix
index c6e8ab5c887..16b2b7454bf 100644
--- a/pkgs/applications/networking/firehol/default.nix
+++ b/pkgs/applications/networking/firehol/default.nix
@@ -102,7 +102,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://firehol.org/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/firehol/iprange.nix b/pkgs/applications/networking/firehol/iprange.nix
index e47afba0294..75b4d5b40a6 100644
--- a/pkgs/applications/networking/firehol/iprange.nix
+++ b/pkgs/applications/networking/firehol/iprange.nix
@@ -13,6 +13,6 @@ stdenv.mkDerivation rec {
     description = "manage IP ranges";
     homepage = "https://github.com/firehol/iprange";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index 7e691582881..c5998796145 100644
--- a/pkgs/applications/networking/flexget/default.nix
+++ b/pkgs/applications/networking/flexget/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "FlexGet";
-  version = "3.1.59";
+  version = "3.1.67";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "19vp2395sl6gdv54zn0k4vf1j6b902khvm44q5hfr805jd3fc11h";
+    sha256 = "d3f4b7bebff80a3a3aa00daf60145a6bc3d12847d7339b39846b2341bca75ef3";
   };
 
   postPatch = ''
@@ -32,7 +32,7 @@ python3Packages.buildPythonApplication rec {
     flask-cors
     flask_login
     flask-restful
-    flask-restplus
+    flask-restx
     flask
     guessit
     html5lib
diff --git a/pkgs/applications/networking/ftp/filezilla/default.nix b/pkgs/applications/networking/ftp/filezilla/default.nix
index 04f0296fe82..7d07c7acbe4 100644
--- a/pkgs/applications/networking/ftp/filezilla/default.nix
+++ b/pkgs/applications/networking/ftp/filezilla/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "filezilla";
-  version = "3.48.1";
+  version = "3.49.1";
 
   src = fetchurl {
     url = "https://download.filezilla-project.org/client/FileZilla_${version}_src.tar.bz2";
-    sha256 = "0pgg2gp4x5qmxwin2qhf6skw0z52y29p75g41kjyh1lhzxvxizxb";
+    sha256 = "1dmkwpc0vy7058bh9a10ida0k64rxggap8ysl5xx3457y468rk2f";
   };
 
   # https://www.linuxquestions.org/questions/slackware-14/trouble-building-filezilla-3-47-2-1-current-4175671182/#post6099769
diff --git a/pkgs/applications/networking/ftp/taxi/default.nix b/pkgs/applications/networking/ftp/taxi/default.nix
index b6c8a534545..c629a8a07cd 100644
--- a/pkgs/applications/networking/ftp/taxi/default.nix
+++ b/pkgs/applications/networking/ftp/taxi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3, vala
+{ stdenv, fetchFromGitHub, nix-update-script, pantheon, pkgconfig, meson, ninja, python3, vala
 , gtk3, libgee, libsoup, libsecret, gobject-introspection, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/networking/gmailctl/default.nix b/pkgs/applications/networking/gmailctl/default.nix
index a9b9436a211..a32da469719 100644
--- a/pkgs/applications/networking/gmailctl/default.nix
+++ b/pkgs/applications/networking/gmailctl/default.nix
@@ -16,6 +16,8 @@ buildGoModule rec {
 
   vendorSha256 = "0qp8n7z3vcsbc6safp7i18i0i3r4hy4nidzwl85i981sg12vcg6b";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Declarative configuration for Gmail filters";
     homepage = "https://github.com/mbrt/gmailctl";
@@ -23,4 +25,4 @@ buildGoModule rec {
     maintainers = [ maintainers.doronbehar ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/gns3/default.nix b/pkgs/applications/networking/gns3/default.nix
index 6cfc5ed3a99..867a49e47b3 100644
--- a/pkgs/applications/networking/gns3/default.nix
+++ b/pkgs/applications/networking/gns3/default.nix
@@ -1,7 +1,7 @@
-{ callPackage }:
+{ callPackage, libsForQt5 }:
 
 let
-  stableVersion = "2.2.8";
+  stableVersion = "2.2.13";
   previewVersion = stableVersion;
   addVersion = args:
     let version = if args.stable then stableVersion else previewVersion;
@@ -15,18 +15,19 @@ let
           src = oldAttrs.src.override {
             inherit version sha256;
           };
-          doCheck = oldAttrs.doCheck && (attrname != "psutil");
         });
       };
     commonOverrides = [
-      (mkOverride "psutil" "5.6.6"
-        "1rs6z8bfy6bqzw88s4i5zllrx3i18hnkv4akvmw7bifngcgjh8dd")
+      (mkOverride "psutil" "5.6.7"
+        "1an5llivfkwpbcfaapbx78p8sfnvzyfypf60wfxihib1mjr8xbgz")
+      (mkOverride "jsonschema" "3.2.0"
+        "0ykr61yiiizgvm3bzipa3l73rvj49wmrybbfwhvpgk3pscl5pa68")
     ];
   };
-  mkGui = args: callPackage (import ./gui.nix (addVersion args // extraArgs)) { };
+  mkGui = args: libsForQt5.callPackage (import ./gui.nix (addVersion args // extraArgs)) { };
   mkServer = args: callPackage (import ./server.nix (addVersion args // extraArgs)) { };
-  guiSrcHash = "1qgzad9hdbvkdalzdnlg5gnlzn2f9qlpd1aj8djmi6w1mmdkf9q7";
-  serverSrcHash = "1kg38dh0xk4yvi7hz0d5dq9k0wany0sfd185l0zxs3nz78zd23an";
+  guiSrcHash = "1vhch8hgbzdfmgpxlzgdasv6lxgl7rs96n5v4mn2pcccvfmbqj66";
+  serverSrcHash = "1vlnhlcnjh0kd623zxjjgkvln0rn5zr43zn00vkvbzwc9cgm2jxz";
 in {
   guiStable = mkGui {
     stable = true;
diff --git a/pkgs/applications/networking/gns3/gui.nix b/pkgs/applications/networking/gns3/gui.nix
index bc5f78d104f..8eb688bcd56 100644
--- a/pkgs/applications/networking/gns3/gui.nix
+++ b/pkgs/applications/networking/gns3/gui.nix
@@ -1,11 +1,9 @@
 { stable, branch, version, sha256Hash, mkOverride, commonOverrides }:
 
-{ lib, stdenv, python3, pkgs, fetchFromGitHub }:
+{ lib, python3, fetchFromGitHub, wrapQtAppsHook }:
 
 let
   defaultOverrides = commonOverrides ++ [
-    (mkOverride "jsonschema" "3.2.0"
-      "0ykr61yiiizgvm3bzipa3l73rvj49wmrybbfwhvpgk3pscl5pa68")
   ];
 
   python = python3.override {
@@ -22,16 +20,20 @@ in python.pkgs.buildPythonPackage rec {
     sha256 = sha256Hash;
   };
 
+  nativeBuildInputs = [ wrapQtAppsHook ];
   propagatedBuildInputs = with python.pkgs; [
-    raven psutil jsonschema # tox for check
+    sentry-sdk psutil jsonschema # tox for check
     # Runtime dependencies
     sip (pyqt5.override { withWebSockets = true; }) distro setuptools
-    pkgs.qt5Full
   ];
 
   doCheck = false; # Failing
+  dontWrapQtApps = true;
+  postFixup = ''
+      wrapQtApp "$out/bin/gns3"
+  '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Graphical Network Simulator 3 GUI (${branch} release)";
     longDescription = ''
       Graphical user interface for controlling the GNS3 network simulator. This
diff --git a/pkgs/applications/networking/gns3/server.nix b/pkgs/applications/networking/gns3/server.nix
index 26553b9aed2..bbf3f0514c4 100644
--- a/pkgs/applications/networking/gns3/server.nix
+++ b/pkgs/applications/networking/gns3/server.nix
@@ -4,10 +4,19 @@
 
 let
   defaultOverrides = commonOverrides ++ [
-    (mkOverride "jsonschema" "3.2.0"
-      "0ykr61yiiizgvm3bzipa3l73rvj49wmrybbfwhvpgk3pscl5pa68")
-    (mkOverride "aiofiles" "0.4.0"
-      "1vmvq9qja3wahv8m1adkyk00zm7j0x64pk3f2ry051ja66xa07h2")
+    (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 {
@@ -31,7 +40,7 @@ in python.pkgs.buildPythonPackage {
 
   propagatedBuildInputs = with python.pkgs; [
     aiohttp-cors yarl aiohttp multidict setuptools
-    jinja2 psutil zipstream raven jsonschema distro async_generator aiofiles
+    jinja2 psutil zipstream sentry-sdk jsonschema distro async_generator aiofiles
     prompt_toolkit py-cpuinfo
   ];
 
diff --git a/pkgs/applications/networking/gopher/sacc/default.nix b/pkgs/applications/networking/gopher/sacc/default.nix
new file mode 100644
index 00000000000..71726056a55
--- /dev/null
+++ b/pkgs/applications/networking/gopher/sacc/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchgit, ncurses
+, patches ? [] # allow users to easily override config.def.h
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sacc";
+  version = "1.01";
+
+  src = fetchgit {
+    url = "git://bitreich.org/sacc";
+    rev = version;
+    sha256 = "0n6ghbi715m7hrxzqggx1bpqj8h7569s72b9bzk6m4gd29jaq9hz";
+  };
+
+  inherit patches;
+
+  buildInputs = [ ncurses ];
+
+  postPatch = ''
+    substituteInPlace config.mk \
+      --replace curses ncurses \
+      --replace "/usr/local" "$out"
+    '';
+
+  meta = with stdenv.lib; {
+    description = "A terminal gopher client";
+    homepage = "gopher://bitreich.org/1/scm/sacc";
+    license = licenses.isc;
+    maintainers = [ maintainers.sternenseemann ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/networking/hydroxide/default.nix b/pkgs/applications/networking/hydroxide/default.nix
index 4753cd464b1..cf872b77b8d 100644
--- a/pkgs/applications/networking/hydroxide/default.nix
+++ b/pkgs/applications/networking/hydroxide/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "hydroxide";
-  version = "0.2.14";
+  version = "0.2.15";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0d8wjyzmw89yhrszz487f7i19rcz7xlx4w2wd4c69k5nsdrs6dys";
+    sha256 = "0r91cq39n89hfy8sbdy5vjzqfrsfd7cdhd41gwszpayq65qhbsyp";
   };
 
-  vendorSha256 = "0d8yfmsl8rycbq8gjnvc657j14644lq0zmr9l88ik360szw6v6gc";
+  vendorSha256 = "1r5qg5cx48yw1l5nil28y4a82fc7g52jmy9pckaxygppmmn539pc";
+
+  doCheck = false;
 
   subPackages = [ "cmd/hydroxide" ];
 
@@ -22,4 +24,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ filalex77 ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/ids/zeek/default.nix b/pkgs/applications/networking/ids/zeek/default.nix
index 8fe856f9773..a0e6433a202 100644
--- a/pkgs/applications/networking/ids/zeek/default.nix
+++ b/pkgs/applications/networking/ids/zeek/default.nix
@@ -1,19 +1,35 @@
-{stdenv, fetchurl, cmake, flex, bison, openssl, libpcap, zlib, file, curl
-, libmaxminddb, gperftools, python, swig, fetchpatch }:
+{ stdenv
+, fetchurl
+, cmake
+, flex
+, bison
+, openssl
+, libpcap
+, zlib
+, file
+, curl
+, libmaxminddb
+, gperftools
+, python
+, swig
+, gettext
+, fetchpatch
+}:
 let
   preConfigure = (import ./script.nix);
 in
 stdenv.mkDerivation rec {
   pname = "zeek";
-  version = "3.1.2";
+  version = "3.2.0";
 
   src = fetchurl {
     url = "https://download.zeek.org/zeek-${version}.tar.gz";
-    sha256 = "18aa4pfwav8m6vq7cr4bhfg243da54ak933rqbriljnhsrgp4n0q";
+    sha256 = "0ky4485z0gpaj1z75y7jr5bn9wr8x8w3v637aqq4v9a0a5iyagmg";
   };
 
   nativeBuildInputs = [ cmake flex bison file ];
-  buildInputs = [ openssl libpcap zlib curl libmaxminddb gperftools python swig ];
+  buildInputs = [ openssl libpcap zlib curl libmaxminddb gperftools python swig ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ gettext ];
 
   #see issue https://github.com/zeek/zeek/issues/804 to modify hardlinking duplicate files.
   inherit preConfigure;
@@ -24,8 +40,8 @@ stdenv.mkDerivation rec {
     # 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 = "0l8z7d7chq1awd8dnfarj4c40wx36hkhcan0702p5l89x73wqk54";
-      extraPrefix = "aux/broker/bindings/python/3rdparty/pybind11/";
+      sha256 = "17qznp8yavnv84fjsbghv3d59z6k6rx74j49w0izakmgw5a95w84";
+      extraPrefix = "auxil/broker/bindings/python/3rdparty/pybind11/";
       stripLen = 1;
     })
   ];
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix
index 0b6f142f1e9..c4d780d9ea2 100644
--- a/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ bitlbee glib ];
+  buildInputs = [ bitlbee ];
 
   preConfigure = ''
     export BITLBEE_PLUGINDIR=$out/lib/bitlbee
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix
index 78016065610..07e7b74a43c 100644
--- a/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoconf automake libtool pkgconfig ];
 
-  buildInputs = [ bitlbee glib json-glib ];
+  buildInputs = [ bitlbee json-glib ];
 
   preConfigure = ''
     export BITLBEE_PLUGINDIR=$out/lib/bitlbee
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix
index 155ea5edc4d..411cd789275 100644
--- a/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix
@@ -3,21 +3,20 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "bitlbee-mastodon";
-  version = "1.4.3";
+  version = "1.4.4";
 
   src = fetchgit {
     url = "https://alexschroeder.ch/cgit/bitlbee-mastodon";
     rev = "v${version}";
-    sha256 = "1k9j4403w6x93f4ls3xj8nrabz8ynjby6sigqdmhb7cqv26l987p";
+    sha256 = "0a8196pyr6bjnqg82zn7jdhiv7xsg4npbpzalla1i2h99j30q8pk";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ bitlbee glib ];
+  buildInputs = [ bitlbee ];
 
   preConfigure = ''
     export BITLBEE_PLUGINDIR=$out/lib/bitlbee
     export BITLBEE_DATADIR=$out/share/bitlbee
-    ./autogen.sh
   '';
 
   meta = {
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix
index 14a3319c149..8cb7f6c37c4 100644
--- a/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ bitlbee autoconf automake libtool glib libgcrypt ];
+  buildInputs = [ bitlbee autoconf automake libtool libgcrypt ];
 
   preConfigure = ''
     export BITLBEE_PLUGINDIR=$out/lib/bitlbee
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
index cf3f2549c81..7b1256b657a 100644
--- a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
@@ -14,10 +14,12 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ] ++ optional doCheck check;
 
-  buildInputs = [ gnutls glib libotr python ]
+  buildInputs = [ gnutls libotr python ]
     ++ optional enableLibPurple pidgin
     ++ optional enablePam pam;
 
+  propagatedBuildInputs = [ glib ];
+
   configureFlags = [
     "--otr=1"
     "--ssl=gnutls"
diff --git a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
index bd71166be22..f8bcdc4bef7 100644
--- a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
@@ -1,8 +1,7 @@
 { stdenv
+, lib
 , fetchurl
 , rpmextract
-, patchelf
-, patchelfUnstable
 , libnotify
 , libuuid
 , cairo
@@ -40,11 +39,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bluejeans";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchurl {
     url = "https://swdl.bluejeans.com/desktop-app/linux/${version}/BlueJeans.rpm";
-    sha256 = "06lcpkga8h0zpl2wlysj6n979f0yg361frp3zr0vwzln3fiil2a7";
+    sha256 = "180hc854ngwfn6y6nsrfn74rv78cxhq6sgshrca5zqv6wq3l98g0";
   };
 
   nativeBuildInputs = [ rpmextract makeWrapper ];
@@ -64,7 +63,7 @@ stdenv.mkDerivation rec {
         expat
         gdk-pixbuf
         dbus
-        udev.lib
+        (lib.getLib udev)
         freetype
         nspr
         glib
@@ -96,11 +95,11 @@ stdenv.mkDerivation rec {
     mv usr/share share
     rmdir usr
 
-    ${patchelf}/bin/patchelf \
+    patchelf \
       --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
       --replace-needed libudev.so.0 libudev.so.1 \
       opt/BlueJeans/bluejeans-v2
-    ${patchelfUnstable}/bin/patchelf \
+    patchelf \
       --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
       opt/BlueJeans/resources/BluejeansHelper
 
diff --git a/pkgs/applications/networking/instant-messengers/chatterino2/default.nix b/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
index 553b466b12f..8fd0128ef2c 100644
--- a/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
+++ b/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
@@ -2,12 +2,12 @@
 
 mkDerivation rec {
   pname = "chatterino2";
-  version = "unstable-2019-05-11";
+  version = "2.1.7";
   src = fetchFromGitHub {
     owner = "fourtf";
     repo = pname;
-    rev = "8c46cbf571dc8fd77287bf3186445ff52b1d1aaf";
-    sha256 = "0i2385hamhd9i7jdy906cfrd81cybw524j92l87c8pzrkxphignk";
+    rev = "v${version}";
+    sha256 = "0bbdzainfa7hlz5p0jfq4y04i3wix7z3i6w193906bi4gr9wilpg";
     fetchSubmodules = true;
   };
   nativeBuildInputs = [ qmake pkgconfig wrapQtAppsHook ];
diff --git a/pkgs/applications/networking/instant-messengers/cordless/default.nix b/pkgs/applications/networking/instant-messengers/cordless/default.nix
new file mode 100644
index 00000000000..a262b048746
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/cordless/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "cordless";
+  version = "2020-08-30";
+
+  src = fetchFromGitHub {
+    owner = "Bios-Marcel";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-CwOI7Ah4+sxD9We+Va5a6jYat5mjOeBk2EsOfwskz6k=";
+  };
+
+  subPackages = [ "." ];
+
+  vendorSha256 = "sha256-01I7GrZkaskuz20kVK2YwqvP7ViPMlQ3BFaoLHwgvOE=";
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/Bios-Marcel/cordless";
+    description = "Discord terminal client";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ colemickens ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix
index bc76949e80a..eadf90a0bae 100644
--- a/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -7,30 +7,30 @@ in {
     pname = "discord";
     binaryName = "Discord";
     desktopName = "Discord";
-    version = "0.0.10";
+    version = "0.0.11";
     src = fetchurl {
       url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
-      sha256 = "0kx92i8naqr3algmyy3wyzbh8146z7gigxwf1nbpg1gl16wlplaq";
+      sha256 = "1saqwigi1gjgy4q8rgnwyni57aaszi0w9vqssgyvfgzff8fpcx54";
     };
   };
   ptb = callPackage ./base.nix rec {
     pname = "discord-ptb";
     binaryName = "DiscordPTB";
     desktopName = "Discord PTB";
-    version = "0.0.19";
+    version = "0.0.21";
     src = fetchurl {
       url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
-      sha256 = "0wixmm16qsmgbr0l9144vl5pc3s2p4jqhl7cnc6kmgy1y4ig56ib";
+      sha256 = "1i164wpi07d45w19i7l5hs47crc29k3plg4y9kc97x75rhh4xym1";
     };
   };
   canary = callPackage ./base.nix rec {
     pname = "discord-canary";
     binaryName = "DiscordCanary";
     desktopName = "Discord Canary";
-    version = "0.0.104";
+    version = "0.0.111";
     src = fetchurl {
       url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
-      sha256 = "17np1hqqygjlbmlln0d1ba2qlbjykwj156w5dw7g4lg77kfxicfk";
+      sha256 = "0ngmb40pwfwydvxyfby89yp17lsvmv642jci9b12cyc3hlkf85n4";
     };
   };
 }.${branch}
diff --git a/pkgs/applications/networking/instant-messengers/riot/riot-desktop-package.json b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
index f3e7732686f..610cb328d66 100644
--- a/pkgs/applications/networking/instant-messengers/riot/riot-desktop-package.json
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
@@ -1,10 +1,10 @@
 {
-  "name": "riot-desktop",
-  "productName": "Riot",
+  "name": "element-desktop",
+  "productName": "Element",
   "main": "src/electron-main.js",
-  "version": "1.6.7",
+  "version": "1.7.5",
   "description": "A feature-rich client for Matrix.org",
-  "author": "New Vector Ltd.",
+  "author": "Element",
   "repository": {
     "type": "git",
     "url": "https://github.com/vector-im/riot-desktop"
@@ -38,32 +38,30 @@
   },
   "devDependencies": {
     "asar": "^2.0.1",
-    "electron-builder": "^22.3.2",
-    "electron-builder-squirrel-windows": "^22.3.2",
+    "electron-builder": "^22.7.0",
+    "electron-builder-squirrel-windows": "^22.7.0",
     "electron-devtools-installer": "^2.2.4",
     "electron-notarize": "^0.2.0",
-    "eslint": "^5.8.0",
-    "eslint-config-google": "^0.7.1",
-    "eslint-plugin-babel": "^4.1.2",
+    "eslint": "7.3.1",
+    "eslint-config-matrix-org": "^0.1.2",
     "find-npm-prefix": "^1.0.2",
     "fs-extra": "^8.1.0",
     "glob": "^7.1.6",
-    "matrix-js-sdk": "7.0.0",
     "mkdirp": "^1.0.3",
     "needle": "^2.5.0",
     "node-pre-gyp": "^0.15.0",
-    "npm": "^6.13.7",
+    "npm": "^6.14.6",
     "rimraf": "^3.0.2",
     "semver": "^7.1.3",
     "tar": "^6.0.1"
   },
   "hakDependencies": {
-    "matrix-seshat": "^1.3.3",
+    "matrix-seshat": "^2.1.0",
     "keytar": "^5.6.0"
   },
   "build": {
     "appId": "im.riot.app",
-    "electronVersion": "8.0.3",
+    "electronVersion": "9.1.2",
     "files": [
       "package.json",
       {
@@ -82,9 +80,9 @@
     "linux": {
       "target": "deb",
       "category": "Network;InstantMessaging;Chat",
-      "maintainer": "support@riot.im",
+      "maintainer": "support@element.io",
       "desktop": {
-        "StartupWMClass": "riot"
+        "StartupWMClass": "element"
       }
     },
     "mac": {
@@ -100,12 +98,13 @@
     "directories": {
       "output": "dist"
     },
+    "afterPack": "scripts/electron_afterPack",
     "afterSign": "scripts/electron_afterSign",
     "protocols": [
       {
-        "name": "riot",
+        "name": "element",
         "schemes": [
-          "riot"
+          "element"
         ]
       }
     ]
diff --git a/pkgs/applications/networking/instant-messengers/riot/riot-desktop-yarndeps.nix b/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
index 2fa0303ae05..f1c5ff1bfd4 100644
--- a/pkgs/applications/networking/instant-messengers/riot/riot-desktop-yarndeps.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
@@ -2,14 +2,6 @@
   offline_cache = linkFarm "offline" packages;
   packages = [
     {
-      name = "7zip_bin___7zip_bin_4.0.2.tgz";
-      path = fetchurl {
-        name = "7zip_bin___7zip_bin_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-4.0.2.tgz";
-        sha1 = "6abbdc22f33cab742053777a26db2e25ca527179";
-      };
-    }
-    {
       name = "7zip_bin___7zip_bin_5.0.3.tgz";
       path = fetchurl {
         name = "7zip_bin___7zip_bin_5.0.3.tgz";
@@ -34,6 +26,54 @@
       };
     }
     {
+      name = "_babel_code_frame___code_frame_7.10.4.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_generator___generator_7.10.5.tgz";
+      path = fetchurl {
+        name = "_babel_generator___generator_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.5.tgz";
+        sha1 = "1b903554bc8c583ee8d25f1e8969732e6b829a69";
+      };
+    }
+    {
+      name = "_babel_helper_function_name___helper_function_name_7.10.4.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_get_function_arity___helper_get_function_arity_7.10.4.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_split_export_declaration___helper_split_export_declaration_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz";
+        sha1 = "2c70576eaa3b5609b24cb99db2888cc3fc4251d1";
+      };
+    }
+    {
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.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_highlight___highlight_7.5.0.tgz";
       path = fetchurl {
         name = "_babel_highlight___highlight_7.5.0.tgz";
@@ -42,19 +82,51 @@
       };
     }
     {
-      name = "_babel_runtime___runtime_7.9.2.tgz";
+      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";
+      };
+    }
+    {
+      name = "_babel_parser___parser_7.10.5.tgz";
       path = fetchurl {
-        name = "_babel_runtime___runtime_7.9.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz";
-        sha1 = "d90df0583a3a252f09aaa619665367bae518db06";
+        name = "_babel_parser___parser_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.5.tgz";
+        sha1 = "e7c6bf5a7deff957cec9f04b551e2762909d826b";
       };
     }
     {
-      name = "_develar_schema_utils___schema_utils_2.1.0.tgz";
+      name = "_babel_template___template_7.10.4.tgz";
       path = fetchurl {
-        name = "_develar_schema_utils___schema_utils_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.1.0.tgz";
-        sha1 = "eceb1695bfbed6f6bb84666d5d3abe5e1fd54e17";
+        name = "_babel_template___template_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz";
+        sha1 = "3251996c4200ebc71d1a8fc405fba940f36ba278";
+      };
+    }
+    {
+      name = "_babel_traverse___traverse_7.10.5.tgz";
+      path = fetchurl {
+        name = "_babel_traverse___traverse_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.5.tgz";
+        sha1 = "77ce464f5b258be265af618d8fddf0536f20b564";
+      };
+    }
+    {
+      name = "_babel_types___types_7.10.5.tgz";
+      path = fetchurl {
+        name = "_babel_types___types_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.10.5.tgz";
+        sha1 = "d88ae7e2fde86bfbfe851d4d81afa70a997b5d15";
+      };
+    }
+    {
+      name = "_develar_schema_utils___schema_utils_2.6.5.tgz";
+      path = fetchurl {
+        name = "_develar_schema_utils___schema_utils_2.6.5.tgz";
+        url  = "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz";
+        sha1 = "3ece22c5838402419a6e0425f85742b961d9b6c6";
       };
     }
     {
@@ -98,11 +170,35 @@
       };
     }
     {
-      name = "_types_fs_extra___fs_extra_8.0.1.tgz";
+      name = "_types_eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
+      path = fetchurl {
+        name = "_types_eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz";
+        sha1 = "1ee30d79544ca84d68d4b3cdb0af4f205663dd2d";
+      };
+    }
+    {
+      name = "_types_fs_extra___fs_extra_9.0.1.tgz";
       path = fetchurl {
-        name = "_types_fs_extra___fs_extra_8.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.0.1.tgz";
-        sha1 = "a2378d6e7e8afea1564e44aafa2e207dadf77686";
+        name = "_types_fs_extra___fs_extra_9.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.1.tgz";
+        sha1 = "91c8fc4c51f6d5dbe44c2ca9ab09310bd00c7918";
+      };
+    }
+    {
+      name = "_types_json_schema___json_schema_7.0.5.tgz";
+      path = fetchurl {
+        name = "_types_json_schema___json_schema_7.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz";
+        sha1 = "dcce4430e64b443ba8945f0290fb564ad5bac6dd";
+      };
+    }
+    {
+      name = "_types_json5___json5_0.0.29.tgz";
+      path = fetchurl {
+        name = "_types_json5___json5_0.0.29.tgz";
+        url  = "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz";
+        sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee";
       };
     }
     {
@@ -122,6 +218,70 @@
       };
     }
     {
+      name = "_types_yargs_parser___yargs_parser_15.0.0.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_yargs___yargs_15.0.5.tgz";
+      path = fetchurl {
+        name = "_types_yargs___yargs_15.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz";
+        sha1 = "947e9a6561483bdee9adffc983e91a6902af8b79";
+      };
+    }
+    {
+      name = "_typescript_eslint_eslint_plugin___eslint_plugin_3.7.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_eslint_plugin___eslint_plugin_3.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.7.0.tgz";
+        sha1 = "0f91aa3c83d019591719e597fbdb73a59595a263";
+      };
+    }
+    {
+      name = "_typescript_eslint_experimental_utils___experimental_utils_3.7.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_experimental_utils___experimental_utils_3.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.7.0.tgz";
+        sha1 = "0ee21f6c48b2b30c63211da23827725078d5169a";
+      };
+    }
+    {
+      name = "_typescript_eslint_parser___parser_3.7.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_parser___parser_3.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.7.0.tgz";
+        sha1 = "3e9cd9df9ea644536feb6e5acdb8279ecff96ce9";
+      };
+    }
+    {
+      name = "_typescript_eslint_types___types_3.7.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_types___types_3.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.7.0.tgz";
+        sha1 = "09897fab0cb95479c01166b10b2c03c224821077";
+      };
+    }
+    {
+      name = "_typescript_eslint_typescript_estree___typescript_estree_3.7.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_typescript_estree___typescript_estree_3.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.7.0.tgz";
+        sha1 = "66872e6da120caa4b64e6b4ca5c8702afc74738d";
+      };
+    }
+    {
+      name = "_typescript_eslint_visitor_keys___visitor_keys_3.7.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_visitor_keys___visitor_keys_3.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.7.0.tgz";
+        sha1 = "ac0417d382a136e4571a0b0dcfe52088cb628177";
+      };
+    }
+    {
       name = "JSONStream___JSONStream_1.3.5.tgz";
       path = fetchurl {
         name = "JSONStream___JSONStream_1.3.5.tgz";
@@ -138,19 +298,19 @@
       };
     }
     {
-      name = "acorn_jsx___acorn_jsx_5.1.0.tgz";
+      name = "acorn_jsx___acorn_jsx_5.2.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_jsx___acorn_jsx_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz";
+        sha1 = "4c66069173d6fdd68ed85239fc256226182b2ebe";
       };
     }
     {
-      name = "acorn___acorn_6.4.1.tgz";
+      name = "acorn___acorn_7.3.1.tgz";
       path = fetchurl {
-        name = "acorn___acorn_6.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz";
-        sha1 = "531e58ba3f51b9dacb9a6646ca4debf5b14ca474";
+        name = "acorn___acorn_7.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz";
+        sha1 = "85010754db53c3fbaf3b9ea3e083aa5c5d147ffd";
       };
     }
     {
@@ -186,6 +346,14 @@
       };
     }
     {
+      name = "ajv___ajv_6.12.3.tgz";
+      path = fetchurl {
+        name = "ajv___ajv_6.12.3.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz";
+        sha1 = "18c5af38a111ddeb4f2697bd78d68abc1cabd706";
+      };
+    }
+    {
       name = "ajv___ajv_6.10.2.tgz";
       path = fetchurl {
         name = "ajv___ajv_6.10.2.tgz";
@@ -194,11 +362,11 @@
       };
     }
     {
-      name = "another_json___another_json_0.2.0.tgz";
+      name = "ajv___ajv_6.12.2.tgz";
       path = fetchurl {
-        name = "another_json___another_json_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/another-json/-/another-json-0.2.0.tgz";
-        sha1 = "b5f4019c973b6dd5c6506a2d93469cb6d32aeedc";
+        name = "ajv___ajv_6.12.2.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz";
+        sha1 = "c629c5eced17baf314437918d2da88c99d5958cd";
       };
     }
     {
@@ -218,11 +386,19 @@
       };
     }
     {
-      name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
+      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.1.tgz";
       path = fetchurl {
-        name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
-        sha1 = "8780b98ff9dbf5638152d1f1fe5c1d7b4442976b";
+        name = "ansi_escapes___ansi_escapes_4.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz";
+        sha1 = "a5c47cc43181f1f38ffd7076837700d395522a61";
       };
     }
     {
@@ -290,27 +466,19 @@
       };
     }
     {
-      name = "app_builder_bin___app_builder_bin_3.5.2.tgz";
-      path = fetchurl {
-        name = "app_builder_bin___app_builder_bin_3.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.2.tgz";
-        sha1 = "fba56e6e9ef76fcd37816738c5f9a0b3992d7183";
-      };
-    }
-    {
-      name = "app_builder_lib___app_builder_lib_22.3.2.tgz";
+      name = "app_builder_bin___app_builder_bin_3.5.9.tgz";
       path = fetchurl {
-        name = "app_builder_lib___app_builder_lib_22.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.3.2.tgz";
-        sha1 = "d43e0bdff91d484c0bd07d7248043dbb2665b8ac";
+        name = "app_builder_bin___app_builder_bin_3.5.9.tgz";
+        url  = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.9.tgz";
+        sha1 = "a3ac0c25286bac68357321cb2eaf7128b0bc0a4f";
       };
     }
     {
-      name = "app_builder_lib___app_builder_lib_22.3.3.tgz";
+      name = "app_builder_lib___app_builder_lib_22.7.0.tgz";
       path = fetchurl {
-        name = "app_builder_lib___app_builder_lib_22.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.3.3.tgz";
-        sha1 = "9a95a3c14f69fb6131834dd840fba561191c9998";
+        name = "app_builder_lib___app_builder_lib_22.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.7.0.tgz";
+        sha1 = "ccd3e7ece2d46bc209423a77aa142f74aaf65db0";
       };
     }
     {
@@ -346,11 +514,11 @@
       };
     }
     {
-      name = "archiver___archiver_3.1.1.tgz";
+      name = "archiver___archiver_4.0.1.tgz";
       path = fetchurl {
-        name = "archiver___archiver_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/archiver/-/archiver-3.1.1.tgz";
-        sha1 = "9db7819d4daf60aec10fe86b16cb9258ced66ea0";
+        name = "archiver___archiver_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/archiver/-/archiver-4.0.1.tgz";
+        sha1 = "3f722b121777e361ca9fad374ecda38e77e63c7f";
       };
     }
     {
@@ -378,6 +546,30 @@
       };
     }
     {
+      name = "array_includes___array_includes_3.1.1.tgz";
+      path = fetchurl {
+        name = "array_includes___array_includes_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz";
+        sha1 = "cdd67e6852bdf9c1215460786732255ed2459348";
+      };
+    }
+    {
+      name = "array.prototype.flat___array.prototype.flat_1.2.3.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.flatmap___array.prototype.flatmap_1.2.3.tgz";
+      path = fetchurl {
+        name = "array.prototype.flatmap___array.prototype.flatmap_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz";
+        sha1 = "1c13f84a178566042dd63de4414440db9222e443";
+      };
+    }
+    {
       name = "asap___asap_2.0.6.tgz";
       path = fetchurl {
         name = "asap___asap_2.0.6.tgz";
@@ -426,6 +618,14 @@
       };
     }
     {
+      name = "async___async_0.9.2.tgz";
+      path = fetchurl {
+        name = "async___async_0.9.2.tgz";
+        url  = "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz";
+        sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
+      };
+    }
+    {
       name = "async___async_2.6.3.tgz";
       path = fetchurl {
         name = "async___async_2.6.3.tgz";
@@ -442,6 +642,14 @@
       };
     }
     {
+      name = "at_least_node___at_least_node_1.0.0.tgz";
+      path = fetchurl {
+        name = "at_least_node___at_least_node_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz";
+        sha1 = "602cd4b46e844ad4effc92a8011a3c46e0238dc2";
+      };
+    }
+    {
       name = "auto_launch___auto_launch_5.0.5.tgz";
       path = fetchurl {
         name = "auto_launch___auto_launch_5.0.5.tgz";
@@ -466,19 +674,19 @@
       };
     }
     {
-      name = "balanced_match___balanced_match_1.0.0.tgz";
+      name = "babel_eslint___babel_eslint_10.1.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 = "babel_eslint___babel_eslint_10.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz";
+        sha1 = "6968e568a910b78fb3779cdd8b6ac2f479943232";
       };
     }
     {
-      name = "base_x___base_x_3.0.7.tgz";
+      name = "balanced_match___balanced_match_1.0.0.tgz";
       path = fetchurl {
-        name = "base_x___base_x_3.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/base-x/-/base-x-3.0.7.tgz";
-        sha1 = "1c5a7fafe8f66b4114063e8da102799d4e7c408f";
+        name = "balanced_match___balanced_match_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
+        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
       };
     }
     {
@@ -514,11 +722,11 @@
       };
     }
     {
-      name = "bl___bl_3.0.0.tgz";
+      name = "bl___bl_4.0.2.tgz";
       path = fetchurl {
-        name = "bl___bl_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/bl/-/bl-3.0.0.tgz";
-        sha1 = "3611ec00579fd18561754360b21e9f784500ff88";
+        name = "bl___bl_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz";
+        sha1 = "52b71e9088515d0606d9dd9cc7aa48dc1f98e73a";
       };
     }
     {
@@ -570,22 +778,6 @@
       };
     }
     {
-      name = "browser_request___browser_request_0.3.3.tgz";
-      path = fetchurl {
-        name = "browser_request___browser_request_0.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/browser-request/-/browser-request-0.3.3.tgz";
-        sha1 = "9ece5b5aca89a29932242e18bf933def9876cc17";
-      };
-    }
-    {
-      name = "bs58___bs58_4.0.1.tgz";
-      path = fetchurl {
-        name = "bs58___bs58_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz";
-        sha1 = "be161e76c354f6f788ae4071f63f34e8c4f0a42a";
-      };
-    }
-    {
       name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
       path = fetchurl {
         name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
@@ -618,27 +810,27 @@
       };
     }
     {
-      name = "builder_util_runtime___builder_util_runtime_8.6.0.tgz";
+      name = "buffer___buffer_5.6.0.tgz";
       path = fetchurl {
-        name = "builder_util_runtime___builder_util_runtime_8.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.6.0.tgz";
-        sha1 = "b7007c30126da9a90e99932128d2922c8c178649";
+        name = "buffer___buffer_5.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz";
+        sha1 = "a31749dc7d81d84db08abf937b6b8c4033f62786";
       };
     }
     {
-      name = "builder_util___builder_util_22.3.2.tgz";
+      name = "builder_util_runtime___builder_util_runtime_8.7.1.tgz";
       path = fetchurl {
-        name = "builder_util___builder_util_22.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.3.2.tgz";
-        sha1 = "23c61aaf0f0006f994087b33a26e47cdaec7aa8d";
+        name = "builder_util_runtime___builder_util_runtime_8.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.1.tgz";
+        sha1 = "23c808cddd650d4376a7a1518ec1e80e85c10f00";
       };
     }
     {
-      name = "builder_util___builder_util_22.3.3.tgz";
+      name = "builder_util___builder_util_22.7.0.tgz";
       path = fetchurl {
-        name = "builder_util___builder_util_22.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.3.3.tgz";
-        sha1 = "62f0527ceaa1a2e4a60596a9b38ad1ffe3e20ae6";
+        name = "builder_util___builder_util_22.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.7.0.tgz";
+        sha1 = "0776a66e6d6e408a78bed7f17a7ad22516d9e7f0";
       };
     }
     {
@@ -746,6 +938,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 = "chardet___chardet_0.7.0.tgz";
       path = fetchurl {
         name = "chardet___chardet_0.7.0.tgz";
@@ -826,11 +1026,11 @@
       };
     }
     {
-      name = "cli_cursor___cli_cursor_2.1.0.tgz";
+      name = "cli_cursor___cli_cursor_3.1.0.tgz";
       path = fetchurl {
-        name = "cli_cursor___cli_cursor_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz";
-        sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5";
+        name = "cli_cursor___cli_cursor_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz";
+        sha1 = "264305a7ae490d1d03bf0c9ba7c925d1753af307";
       };
     }
     {
@@ -842,11 +1042,11 @@
       };
     }
     {
-      name = "cli_width___cli_width_2.2.0.tgz";
+      name = "cli_width___cli_width_3.0.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 = "cli_width___cli_width_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz";
+        sha1 = "a2f48437a2caa9a22436e794bf071ec9e61cedf6";
       };
     }
     {
@@ -970,11 +1170,11 @@
       };
     }
     {
-      name = "compress_commons___compress_commons_2.1.1.tgz";
+      name = "compress_commons___compress_commons_3.0.0.tgz";
       path = fetchurl {
-        name = "compress_commons___compress_commons_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-2.1.1.tgz";
-        sha1 = "9410d9a534cf8435e3fbbb7c6ce48de2dc2f0610";
+        name = "compress_commons___compress_commons_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-3.0.0.tgz";
+        sha1 = "833944d84596e537224dd91cf92f5246823d4f1d";
       };
     }
     {
@@ -1034,11 +1234,11 @@
       };
     }
     {
-      name = "content_type___content_type_1.0.4.tgz";
+      name = "contains_path___contains_path_0.1.0.tgz";
       path = fetchurl {
-        name = "content_type___content_type_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz";
-        sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b";
+        name = "contains_path___contains_path_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz";
+        sha1 = "fe8cf184ff6670b6baef01a9d4861a5cbec4120a";
       };
     }
     {
@@ -1098,6 +1298,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 = "cross_unzip___cross_unzip_0.0.2.tgz";
       path = fetchurl {
         name = "cross_unzip___cross_unzip_0.0.2.tgz";
@@ -1154,6 +1362,14 @@
       };
     }
     {
+      name = "debug___debug_2.6.9.tgz";
+      path = fetchurl {
+        name = "debug___debug_2.6.9.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
+        sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
+      };
+    }
+    {
       name = "debug___debug_3.2.6.tgz";
       path = fetchurl {
         name = "debug___debug_3.2.6.tgz";
@@ -1170,6 +1386,14 @@
       };
     }
     {
+      name = "debug___debug_4.2.0.tgz";
+      path = fetchurl {
+        name = "debug___debug_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz";
+        sha1 = "7f150f93920e94c58f5574c2fd01a3110effe7f1";
+      };
+    }
+    {
       name = "debuglog___debuglog_1.0.1.tgz";
       path = fetchurl {
         name = "debuglog___debuglog_1.0.1.tgz";
@@ -1298,11 +1522,27 @@
       };
     }
     {
-      name = "dmg_builder___dmg_builder_22.3.2.tgz";
+      name = "dmg_builder___dmg_builder_22.7.0.tgz";
+      path = fetchurl {
+        name = "dmg_builder___dmg_builder_22.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.7.0.tgz";
+        sha1 = "ead7e7c046cbdc52d29d302a4455f6668cdf7d45";
+      };
+    }
+    {
+      name = "doctrine___doctrine_1.5.0.tgz";
       path = fetchurl {
-        name = "dmg_builder___dmg_builder_22.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.3.2.tgz";
-        sha1 = "4c052f75d601e3358da1ff9d7d57738e1c01b157";
+        name = "doctrine___doctrine_1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz";
+        sha1 = "379dce730f6166f76cefa4e6707a159b02c5a6fa";
+      };
+    }
+    {
+      name = "doctrine___doctrine_2.1.0.tgz";
+      path = fetchurl {
+        name = "doctrine___doctrine_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz";
+        sha1 = "5cd01fc101621b42c4cd7f5d1a66243716d3f39d";
       };
     }
     {
@@ -1394,27 +1634,27 @@
       };
     }
     {
-      name = "ejs___ejs_3.0.1.tgz";
+      name = "ejs___ejs_3.1.3.tgz";
       path = fetchurl {
-        name = "ejs___ejs_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/ejs/-/ejs-3.0.1.tgz";
-        sha1 = "30c8f6ee9948502cc32e85c37a3f8b39b5a614a5";
+        name = "ejs___ejs_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/ejs/-/ejs-3.1.3.tgz";
+        sha1 = "514d967a8894084d18d3d47bd169a1c0560f093d";
       };
     }
     {
-      name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.3.3.tgz";
+      name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.7.0.tgz";
       path = fetchurl {
-        name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-22.3.3.tgz";
-        sha1 = "0a417af35c83b067096bd3217b6b7bd75c6c48a9";
+        name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-22.7.0.tgz";
+        sha1 = "8d6f09d541c039f52202935c66d592c38575ceff";
       };
     }
     {
-      name = "electron_builder___electron_builder_22.3.2.tgz";
+      name = "electron_builder___electron_builder_22.7.0.tgz";
       path = fetchurl {
-        name = "electron_builder___electron_builder_22.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.3.2.tgz";
-        sha1 = "902d150fc0670cb90213262e5e0aa3c4f299ffa4";
+        name = "electron_builder___electron_builder_22.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.7.0.tgz";
+        sha1 = "a42d08a1654ffc2f7d9e2860829d3cc55d4a0c81";
       };
     }
     {
@@ -1434,19 +1674,11 @@
       };
     }
     {
-      name = "electron_publish___electron_publish_22.3.2.tgz";
-      path = fetchurl {
-        name = "electron_publish___electron_publish_22.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.3.2.tgz";
-        sha1 = "d2e60caf7a9643fe57e501c20acaf32c737b1c50";
-      };
-    }
-    {
-      name = "electron_publish___electron_publish_22.3.3.tgz";
+      name = "electron_publish___electron_publish_22.7.0.tgz";
       path = fetchurl {
-        name = "electron_publish___electron_publish_22.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.3.3.tgz";
-        sha1 = "7d1e757a20ce0558fdc42900b6e3d773fdae9d9e";
+        name = "electron_publish___electron_publish_22.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.7.0.tgz";
+        sha1 = "d92ba7c4007c9ac1dd070593e48028184fb2dc19";
       };
     }
     {
@@ -1498,6 +1730,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_paths___env_paths_1.0.0.tgz";
       path = fetchurl {
         name = "env_paths___env_paths_1.0.0.tgz";
@@ -1538,6 +1778,14 @@
       };
     }
     {
+      name = "es_abstract___es_abstract_1.17.6.tgz";
+      path = fetchurl {
+        name = "es_abstract___es_abstract_1.17.6.tgz";
+        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz";
+        sha1 = "9142071707857b2cacc7b89ecb670316c3e2d52a";
+      };
+    }
+    {
       name = "es_abstract___es_abstract_1.16.3.tgz";
       path = fetchurl {
         name = "es_abstract___es_abstract_1.16.3.tgz";
@@ -1594,27 +1842,123 @@
       };
     }
     {
-      name = "eslint_config_google___eslint_config_google_0.7.1.tgz";
+      name = "eslint_config_esnext___eslint_config_esnext_4.1.0.tgz";
+      path = fetchurl {
+        name = "eslint_config_esnext___eslint_config_esnext_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-esnext/-/eslint-config-esnext-4.1.0.tgz";
+        sha1 = "8695b858fcf40d28c1aedca181f700528c7b60c6";
+      };
+    }
+    {
+      name = "eslint_config_google___eslint_config_google_0.14.0.tgz";
+      path = fetchurl {
+        name = "eslint_config_google___eslint_config_google_0.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.14.0.tgz";
+        sha1 = "4f5f8759ba6e11b424294a219dbfa18c508bcc1a";
+      };
+    }
+    {
+      name = "eslint_config_matrix_org___eslint_config_matrix_org_0.1.2.tgz";
+      path = fetchurl {
+        name = "eslint_config_matrix_org___eslint_config_matrix_org_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-matrix-org/-/eslint-config-matrix-org-0.1.2.tgz";
+        sha1 = "b5d7e193e4f3fc5041905967b53c5ddd6924c793";
+      };
+    }
+    {
+      name = "eslint_config_node___eslint_config_node_4.1.0.tgz";
+      path = fetchurl {
+        name = "eslint_config_node___eslint_config_node_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-node/-/eslint-config-node-4.1.0.tgz";
+        sha1 = "fc1f13946d83766d6b83b0e67699e2071a56f417";
+      };
+    }
+    {
+      name = "eslint_config_react_native___eslint_config_react_native_4.1.0.tgz";
       path = fetchurl {
-        name = "eslint_config_google___eslint_config_google_0.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.7.1.tgz";
-        sha1 = "5598f8498e9e078420f34b80495b8d959f651fb2";
+        name = "eslint_config_react_native___eslint_config_react_native_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-react-native/-/eslint-config-react-native-4.1.0.tgz";
+        sha1 = "63e9401c7fac146804785f609e7df8f15b3e04eb";
       };
     }
     {
-      name = "eslint_plugin_babel___eslint_plugin_babel_4.1.2.tgz";
+      name = "eslint_config_recommended___eslint_config_recommended_4.1.0.tgz";
       path = fetchurl {
-        name = "eslint_plugin_babel___eslint_plugin_babel_4.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-4.1.2.tgz";
-        sha1 = "79202a0e35757dd92780919b2336f1fa2fe53c1e";
+        name = "eslint_config_recommended___eslint_config_recommended_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-recommended/-/eslint-config-recommended-4.1.0.tgz";
+        sha1 = "1adff90e0716d439be471d192977f233de171a46";
       };
     }
     {
-      name = "eslint_scope___eslint_scope_4.0.3.tgz";
+      name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
       path = fetchurl {
-        name = "eslint_scope___eslint_scope_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz";
-        sha1 = "ca03833310f6889a3264781aa82e63eb9cfe7848";
+        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_module_utils___eslint_module_utils_2.6.0.tgz";
+      path = fetchurl {
+        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";
+      };
+    }
+    {
+      name = "eslint_plugin_babel___eslint_plugin_babel_5.3.1.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_babel___eslint_plugin_babel_5.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-5.3.1.tgz";
+        sha1 = "75a2413ffbf17e7be57458301c60291f2cfbf560";
+      };
+    }
+    {
+      name = "eslint_plugin_import___eslint_plugin_import_2.22.0.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_import___eslint_plugin_import_2.22.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz";
+        sha1 = "92f7736fe1fde3e2de77623c838dd992ff5ffb7e";
+      };
+    }
+    {
+      name = "eslint_plugin_react_native_globals___eslint_plugin_react_native_globals_0.1.2.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_react_native_globals___eslint_plugin_react_native_globals_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz";
+        sha1 = "ee1348bc2ceb912303ce6bdbd22e2f045ea86ea2";
+      };
+    }
+    {
+      name = "eslint_plugin_react_native___eslint_plugin_react_native_3.8.1.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_react_native___eslint_plugin_react_native_3.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-react-native/-/eslint-plugin-react-native-3.8.1.tgz";
+        sha1 = "92811e37191ecb0d29c0f0a0c9e5c943ee573821";
+      };
+    }
+    {
+      name = "eslint_plugin_react___eslint_plugin_react_7.20.3.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_react___eslint_plugin_react_7.20.3.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.3.tgz";
+        sha1 = "0590525e7eb83890ce71f73c2cf836284ad8c2f1";
+      };
+    }
+    {
+      name = "eslint_rule_composer___eslint_rule_composer_0.3.0.tgz";
+      path = fetchurl {
+        name = "eslint_rule_composer___eslint_rule_composer_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz";
+        sha1 = "79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9";
+      };
+    }
+    {
+      name = "eslint_scope___eslint_scope_5.1.0.tgz";
+      path = fetchurl {
+        name = "eslint_scope___eslint_scope_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz";
+        sha1 = "d0f971dfe59c69e0cada684b23d49dbf82600ce5";
       };
     }
     {
@@ -1626,6 +1970,14 @@
       };
     }
     {
+      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.1.0.tgz";
       path = fetchurl {
         name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
@@ -1634,19 +1986,43 @@
       };
     }
     {
-      name = "eslint___eslint_5.16.0.tgz";
+      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___eslint_7.3.1.tgz";
+      path = fetchurl {
+        name = "eslint___eslint_7.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.3.1.tgz";
+        sha1 = "76392bd7e44468d046149ba128d1566c59acbe19";
+      };
+    }
+    {
+      name = "eslint___eslint_6.8.0.tgz";
       path = fetchurl {
-        name = "eslint___eslint_5.16.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz";
-        sha1 = "a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea";
+        name = "eslint___eslint_6.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz";
+        sha1 = "62262d6729739f9275723824302fb227c8c93ffb";
       };
     }
     {
-      name = "espree___espree_5.0.1.tgz";
+      name = "espree___espree_6.2.1.tgz";
       path = fetchurl {
-        name = "espree___espree_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz";
-        sha1 = "5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a";
+        name = "espree___espree_6.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz";
+        sha1 = "77fc72e1fd744a2052c20f38a5b575832e82734a";
+      };
+    }
+    {
+      name = "espree___espree_7.2.0.tgz";
+      path = fetchurl {
+        name = "espree___espree_7.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/espree/-/espree-7.2.0.tgz";
+        sha1 = "1c263d5b513dbad0ac30c4991b93ac354e948d69";
       };
     }
     {
@@ -1666,6 +2042,14 @@
       };
     }
     {
+      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.2.1.tgz";
       path = fetchurl {
         name = "esrecurse___esrecurse_4.2.1.tgz";
@@ -1682,6 +2066,14 @@
       };
     }
     {
+      name = "estraverse___estraverse_5.1.0.tgz";
+      path = fetchurl {
+        name = "estraverse___estraverse_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz";
+        sha1 = "374309d39fd935ae500e7b92e8a6b4c720e59642";
+      };
+    }
+    {
       name = "esutils___esutils_2.0.3.tgz";
       path = fetchurl {
         name = "esutils___esutils_2.0.3.tgz";
@@ -1754,6 +2146,14 @@
       };
     }
     {
+      name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
+      path = fetchurl {
+        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";
+      };
+    }
+    {
       name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
       path = fetchurl {
         name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
@@ -1778,11 +2178,11 @@
       };
     }
     {
-      name = "figures___figures_2.0.0.tgz";
+      name = "figures___figures_3.2.0.tgz";
       path = fetchurl {
-        name = "figures___figures_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz";
-        sha1 = "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962";
+        name = "figures___figures_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz";
+        sha1 = "625c18bd293c604dc4a8ddb2febf0c88341746af";
       };
     }
     {
@@ -1802,6 +2202,14 @@
       };
     }
     {
+      name = "filelist___filelist_1.0.1.tgz";
+      path = fetchurl {
+        name = "filelist___filelist_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/filelist/-/filelist-1.0.1.tgz";
+        sha1 = "f10d1a3ae86c1694808e8f20906f43d4c9132dbb";
+      };
+    }
+    {
       name = "find_npm_prefix___find_npm_prefix_1.0.2.tgz";
       path = fetchurl {
         name = "find_npm_prefix___find_npm_prefix_1.0.2.tgz";
@@ -1906,6 +2314,14 @@
       };
     }
     {
+      name = "fs_extra___fs_extra_9.0.1.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_minipass___fs_minipass_1.2.7.tgz";
       path = fetchurl {
         name = "fs_minipass___fs_minipass_1.2.7.tgz";
@@ -2034,6 +2450,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___glob_7.1.6.tgz";
       path = fetchurl {
         name = "glob___glob_7.1.6.tgz";
@@ -2074,6 +2498,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 = "got___got_6.7.1.tgz";
       path = fetchurl {
         name = "got___got_6.7.1.tgz";
@@ -2098,6 +2530,14 @@
       };
     }
     {
+      name = "graceful_fs___graceful_fs_4.2.4.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 = "har_schema___har_schema_2.0.0.tgz";
       path = fetchurl {
         name = "har_schema___har_schema_2.0.0.tgz";
@@ -2170,11 +2610,19 @@
       };
     }
     {
-      name = "hosted_git_info___hosted_git_info_3.0.2.tgz";
+      name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
+      path = fetchurl {
+        name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
+        sha1 = "7539bd4bc1e0e0a895815a2e0262420b12858488";
+      };
+    }
+    {
+      name = "hosted_git_info___hosted_git_info_3.0.4.tgz";
       path = fetchurl {
-        name = "hosted_git_info___hosted_git_info_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.2.tgz";
-        sha1 = "8b7e3bd114b59b51786f8bade0f39ddc80275a97";
+        name = "hosted_git_info___hosted_git_info_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.4.tgz";
+        sha1 = "be4973eb1fd2737b11c9c7c19380739bb249f60d";
       };
     }
     {
@@ -2346,11 +2794,19 @@
       };
     }
     {
-      name = "inquirer___inquirer_6.5.2.tgz";
+      name = "inquirer___inquirer_7.3.2.tgz";
+      path = fetchurl {
+        name = "inquirer___inquirer_7.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.2.tgz";
+        sha1 = "25245d2e32dc9f33dbe26eeaada231daa66e9c7c";
+      };
+    }
+    {
+      name = "internal_slot___internal_slot_1.0.2.tgz";
       path = fetchurl {
-        name = "inquirer___inquirer_6.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz";
-        sha1 = "ad50942375d036d327ff528c08bd5fab089928ca";
+        name = "internal_slot___internal_slot_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz";
+        sha1 = "9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3";
       };
     }
     {
@@ -2418,6 +2874,14 @@
       };
     }
     {
+      name = "is_callable___is_callable_1.2.0.tgz";
+      path = fetchurl {
+        name = "is_callable___is_callable_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz";
+        sha1 = "83336560b54a38e35e3a2df7afd0454d691468bb";
+      };
+    }
+    {
       name = "is_ci___is_ci_1.2.1.tgz";
       path = fetchurl {
         name = "is_ci___is_ci_1.2.1.tgz";
@@ -2450,6 +2914,14 @@
       };
     }
     {
+      name = "is_extglob___is_extglob_2.1.1.tgz";
+      path = fetchurl {
+        name = "is_extglob___is_extglob_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
+        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+      };
+    }
+    {
       name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
       path = fetchurl {
         name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
@@ -2482,6 +2954,14 @@
       };
     }
     {
+      name = "is_glob___is_glob_4.0.1.tgz";
+      path = fetchurl {
+        name = "is_glob___is_glob_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
+        sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
+      };
+    }
+    {
       name = "is_installed_globally___is_installed_globally_0.1.0.tgz";
       path = fetchurl {
         name = "is_installed_globally___is_installed_globally_0.1.0.tgz";
@@ -2546,14 +3026,6 @@
       };
     }
     {
-      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_redirect___is_redirect_1.0.0.tgz";
       path = fetchurl {
         name = "is_redirect___is_redirect_1.0.0.tgz";
@@ -2570,6 +3042,14 @@
       };
     }
     {
+      name = "is_regex___is_regex_1.1.0.tgz";
+      path = fetchurl {
+        name = "is_regex___is_regex_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz";
+        sha1 = "ece38e389e490df0dc21caea2bd596f987f767ff";
+      };
+    }
+    {
       name = "is_retry_allowed___is_retry_allowed_1.2.0.tgz";
       path = fetchurl {
         name = "is_retry_allowed___is_retry_allowed_1.2.0.tgz";
@@ -2586,6 +3066,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.3.tgz";
       path = fetchurl {
         name = "is_symbol___is_symbol_1.0.3.tgz";
@@ -2626,11 +3114,11 @@
       };
     }
     {
-      name = "isbinaryfile___isbinaryfile_4.0.4.tgz";
+      name = "isbinaryfile___isbinaryfile_4.0.6.tgz";
       path = fetchurl {
-        name = "isbinaryfile___isbinaryfile_4.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.4.tgz";
-        sha1 = "6803f81a8944201c642b6e17da041e24deb78712";
+        name = "isbinaryfile___isbinaryfile_4.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz";
+        sha1 = "edcb62b224e2b4710830b67498c8e4e5a4d2610b";
       };
     }
     {
@@ -2650,6 +3138,14 @@
       };
     }
     {
+      name = "jake___jake_10.8.2.tgz";
+      path = fetchurl {
+        name = "jake___jake_10.8.2.tgz";
+        url  = "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz";
+        sha1 = "ebc9de8558160a66d82d0eadc6a2e58fbc500a7b";
+      };
+    }
+    {
       name = "jimp___jimp_0.2.28.tgz";
       path = fetchurl {
         name = "jimp___jimp_0.2.28.tgz";
@@ -2682,6 +3178,14 @@
       };
     }
     {
+      name = "js_yaml___js_yaml_3.14.0.tgz";
+      path = fetchurl {
+        name = "js_yaml___js_yaml_3.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz";
+        sha1 = "a7a34170f26a21bb162424d8adacb4113a69e482";
+      };
+    }
+    {
       name = "jsbn___jsbn_0.1.1.tgz";
       path = fetchurl {
         name = "jsbn___jsbn_0.1.1.tgz";
@@ -2690,6 +3194,14 @@
       };
     }
     {
+      name = "jsesc___jsesc_2.5.2.tgz";
+      path = fetchurl {
+        name = "jsesc___jsesc_2.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz";
+        sha1 = "80564d2e483dacf6e8ef209650a67df3f0c283a4";
+      };
+    }
+    {
       name = "json_buffer___json_buffer_3.0.0.tgz";
       path = fetchurl {
         name = "json_buffer___json_buffer_3.0.0.tgz";
@@ -2738,11 +3250,19 @@
       };
     }
     {
-      name = "json5___json5_2.1.1.tgz";
+      name = "json5___json5_1.0.1.tgz";
       path = fetchurl {
-        name = "json5___json5_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz";
-        sha1 = "81b6cb04e9ba496f1c7005d07b4368a2638f90b6";
+        name = "json5___json5_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz";
+        sha1 = "779fb0018604fa854eacbf6252180d83543e3dbe";
+      };
+    }
+    {
+      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";
       };
     }
     {
@@ -2762,6 +3282,14 @@
       };
     }
     {
+      name = "jsonfile___jsonfile_6.0.1.tgz";
+      path = fetchurl {
+        name = "jsonfile___jsonfile_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz";
+        sha1 = "98966cba214378c8c84b82e085907b40bf614179";
+      };
+    }
+    {
       name = "jsonparse___jsonparse_1.3.1.tgz";
       path = fetchurl {
         name = "jsonparse___jsonparse_1.3.1.tgz";
@@ -2778,6 +3306,14 @@
       };
     }
     {
+      name = "jsx_ast_utils___jsx_ast_utils_2.4.1.tgz";
+      path = fetchurl {
+        name = "jsx_ast_utils___jsx_ast_utils_2.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz";
+        sha1 = "1114a4c1209481db06c690c2b4f488cc665f657e";
+      };
+    }
+    {
       name = "keyv___keyv_3.1.0.tgz";
       path = fetchurl {
         name = "keyv___keyv_3.1.0.tgz";
@@ -2850,6 +3386,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 = "libcipm___libcipm_4.0.7.tgz";
       path = fetchurl {
         name = "libcipm___libcipm_4.0.7.tgz";
@@ -3082,11 +3626,19 @@
       };
     }
     {
-      name = "loglevel___loglevel_1.6.6.tgz";
+      name = "lodash___lodash_4.17.19.tgz";
       path = fetchurl {
-        name = "loglevel___loglevel_1.6.6.tgz";
-        url  = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.6.tgz";
-        sha1 = "0ee6300cc058db6b3551fa1c4bf73b83bb771312";
+        name = "lodash___lodash_4.17.19.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz";
+        sha1 = "e48ddedbe30b3321783c5b4301fbd353bc1e4a4b";
+      };
+    }
+    {
+      name = "loose_envify___loose_envify_1.4.0.tgz";
+      path = fetchurl {
+        name = "loose_envify___loose_envify_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz";
+        sha1 = "71ee51fa7be4caec1a63839f7e682d8132d30caf";
       };
     }
     {
@@ -3154,14 +3706,6 @@
       };
     }
     {
-      name = "matrix_js_sdk___matrix_js_sdk_7.0.0.tgz";
-      path = fetchurl {
-        name = "matrix_js_sdk___matrix_js_sdk_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-7.0.0.tgz";
-        sha1 = "da2b24e57574379c3d8f7065eb68ea6c479d9806";
-      };
-    }
-    {
       name = "meant___meant_1.0.1.tgz";
       path = fetchurl {
         name = "meant___meant_1.0.1.tgz";
@@ -3210,11 +3754,11 @@
       };
     }
     {
-      name = "mime___mime_2.4.4.tgz";
+      name = "mime___mime_2.4.6.tgz";
       path = fetchurl {
-        name = "mime___mime_2.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz";
-        sha1 = "bd7b91135fc6b01cde3e9bae33d659b63d8857e5";
+        name = "mime___mime_2.4.6.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz";
+        sha1 = "e5b407c90db442f2beb5b162373d07b69affa4d1";
       };
     }
     {
@@ -3370,14 +3914,6 @@
       };
     }
     {
-      name = "mute_stream___mute_stream_0.0.7.tgz";
-      path = fetchurl {
-        name = "mute_stream___mute_stream_0.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz";
-        sha1 = "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab";
-      };
-    }
-    {
       name = "mute_stream___mute_stream_0.0.8.tgz";
       path = fetchurl {
         name = "mute_stream___mute_stream_0.0.8.tgz";
@@ -3426,6 +3962,14 @@
       };
     }
     {
+      name = "node_gyp___node_gyp_5.1.1.tgz";
+      path = fetchurl {
+        name = "node_gyp___node_gyp_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz";
+        sha1 = "eb915f7b631c937d282e33aed44cb7a025f62a3e";
+      };
+    }
+    {
       name = "node_pre_gyp___node_pre_gyp_0.15.0.tgz";
       path = fetchurl {
         name = "node_pre_gyp___node_pre_gyp_0.15.0.tgz";
@@ -3442,6 +3986,14 @@
       };
     }
     {
+      name = "nopt___nopt_4.0.3.tgz";
+      path = fetchurl {
+        name = "nopt___nopt_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz";
+        sha1 = "a375cad9d02fd921278d954c2254d5aa57e15e48";
+      };
+    }
+    {
       name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
       path = fetchurl {
         name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
@@ -3554,6 +4106,14 @@
       };
     }
     {
+      name = "npm_profile___npm_profile_4.0.4.tgz";
+      path = fetchurl {
+        name = "npm_profile___npm_profile_4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.4.tgz";
+        sha1 = "28ee94390e936df6d084263ee2061336a6a1581b";
+      };
+    }
+    {
       name = "npm_registry_fetch___npm_registry_fetch_4.0.2.tgz";
       path = fetchurl {
         name = "npm_registry_fetch___npm_registry_fetch_4.0.2.tgz";
@@ -3562,6 +4122,14 @@
       };
     }
     {
+      name = "npm_registry_fetch___npm_registry_fetch_4.0.5.tgz";
+      path = fetchurl {
+        name = "npm_registry_fetch___npm_registry_fetch_4.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.5.tgz";
+        sha1 = "cb87cf7f25bfb048d6c3ee19d115bebf93ea5bfa";
+      };
+    }
+    {
       name = "npm_run_path___npm_run_path_2.0.2.tgz";
       path = fetchurl {
         name = "npm_run_path___npm_run_path_2.0.2.tgz";
@@ -3578,11 +4146,11 @@
       };
     }
     {
-      name = "npm___npm_6.13.7.tgz";
+      name = "npm___npm_6.14.6.tgz";
       path = fetchurl {
-        name = "npm___npm_6.13.7.tgz";
-        url  = "https://registry.yarnpkg.com/npm/-/npm-6.13.7.tgz";
-        sha1 = "9533a3ddc57f9792db8a8b303efabaf878047841";
+        name = "npm___npm_6.14.6.tgz";
+        url  = "https://registry.yarnpkg.com/npm/-/npm-6.14.6.tgz";
+        sha1 = "1a81ce1fac2bf5457dbf6342ceed503627ff228f";
       };
     }
     {
@@ -3642,6 +4210,30 @@
       };
     }
     {
+      name = "object.assign___object.assign_4.1.0.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.entries___object.entries_1.1.2.tgz";
+      path = fetchurl {
+        name = "object.entries___object.entries_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz";
+        sha1 = "bc73f00acb6b6bb16c203434b10f9a7e797d3add";
+      };
+    }
+    {
+      name = "object.fromentries___object.fromentries_2.0.2.tgz";
+      path = fetchurl {
+        name = "object.fromentries___object.fromentries_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz";
+        sha1 = "4a09c9b9bb3843dd0f89acdb517a794d4f355ac9";
+      };
+    }
+    {
       name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz";
       path = fetchurl {
         name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz";
@@ -3650,6 +4242,14 @@
       };
     }
     {
+      name = "object.values___object.values_1.1.1.tgz";
+      path = fetchurl {
+        name = "object.values___object.values_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz";
+        sha1 = "68a99ecde356b7e9295a3c5e0ce31dc8c953de5e";
+      };
+    }
+    {
       name = "once___once_1.4.0.tgz";
       path = fetchurl {
         name = "once___once_1.4.0.tgz";
@@ -3658,11 +4258,11 @@
       };
     }
     {
-      name = "onetime___onetime_2.0.1.tgz";
+      name = "onetime___onetime_5.1.0.tgz";
       path = fetchurl {
-        name = "onetime___onetime_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz";
-        sha1 = "067428230fd67443b2794b22bba528b6867962d4";
+        name = "onetime___onetime_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz";
+        sha1 = "fff0f3c91617fe62bb50189636e99ac8a6df7be5";
       };
     }
     {
@@ -3682,6 +4282,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_homedir___os_homedir_1.0.2.tgz";
       path = fetchurl {
         name = "os_homedir___os_homedir_1.0.2.tgz";
@@ -3938,6 +4546,14 @@
       };
     }
     {
+      name = "path_key___path_key_3.1.1.tgz";
+      path = fetchurl {
+        name = "path_key___path_key_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz";
+        sha1 = "581f6ade658cbba65a0d3380de7753295054f375";
+      };
+    }
+    {
       name = "path_parse___path_parse_1.0.6.tgz";
       path = fetchurl {
         name = "path_parse___path_parse_1.0.6.tgz";
@@ -3994,6 +4610,14 @@
       };
     }
     {
+      name = "pkg_dir___pkg_dir_2.0.0.tgz";
+      path = fetchurl {
+        name = "pkg_dir___pkg_dir_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz";
+        sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b";
+      };
+    }
+    {
       name = "pkg_up___pkg_up_2.0.0.tgz";
       path = fetchurl {
         name = "pkg_up___pkg_up_2.0.0.tgz";
@@ -4018,6 +4642,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";
@@ -4090,6 +4722,14 @@
       };
     }
     {
+      name = "prop_types___prop_types_15.7.2.tgz";
+      path = fetchurl {
+        name = "prop_types___prop_types_15.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz";
+        sha1 = "52c41e75b8c87e72b9d9360e0206b99dcbffa6c5";
+      };
+    }
+    {
       name = "proto_list___proto_list_1.2.4.tgz";
       path = fetchurl {
         name = "proto_list___proto_list_1.2.4.tgz";
@@ -4186,14 +4826,6 @@
       };
     }
     {
-      name = "qs___qs_6.9.1.tgz";
-      path = fetchurl {
-        name = "qs___qs_6.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz";
-        sha1 = "20082c65cb78223635ab1a9eaca8875a29bf8ec9";
-      };
-    }
-    {
       name = "qs___qs_6.5.2.tgz";
       path = fetchurl {
         name = "qs___qs_6.5.2.tgz";
@@ -4226,6 +4858,14 @@
       };
     }
     {
+      name = "react_is___react_is_16.13.1.tgz";
+      path = fetchurl {
+        name = "react_is___react_is_16.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz";
+        sha1 = "789729a4dc36de2999dc156dd6c1d9c18cea56a4";
+      };
+    }
+    {
       name = "read_chunk___read_chunk_1.0.1.tgz";
       path = fetchurl {
         name = "read_chunk___read_chunk_1.0.1.tgz";
@@ -4242,11 +4882,11 @@
       };
     }
     {
-      name = "read_config_file___read_config_file_5.0.1.tgz";
+      name = "read_config_file___read_config_file_6.0.0.tgz";
       path = fetchurl {
-        name = "read_config_file___read_config_file_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/read-config-file/-/read-config-file-5.0.1.tgz";
-        sha1 = "ead3df0d9822cc96006ca16322eaa79dac8591c2";
+        name = "read_config_file___read_config_file_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.0.0.tgz";
+        sha1 = "224b5dca6a5bdc1fb19e63f89f342680efdb9299";
       };
     }
     {
@@ -4322,6 +4962,14 @@
       };
     }
     {
+      name = "readable_stream___readable_stream_3.6.0.tgz";
+      path = fetchurl {
+        name = "readable_stream___readable_stream_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198";
+      };
+    }
+    {
       name = "readable_stream___readable_stream_1.1.14.tgz";
       path = fetchurl {
         name = "readable_stream___readable_stream_1.1.14.tgz";
@@ -4338,14 +4986,6 @@
       };
     }
     {
-      name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
-      path = fetchurl {
-        name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
-        url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz";
-        sha1 = "d878a1d094b4306d10b9096484b33ebd55e26697";
-      };
-    }
-    {
       name = "regexp.prototype.flags___regexp.prototype.flags_1.2.0.tgz";
       path = fetchurl {
         name = "regexp.prototype.flags___regexp.prototype.flags_1.2.0.tgz";
@@ -4354,6 +4994,14 @@
       };
     }
     {
+      name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
+      path = fetchurl {
+        name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz";
+        sha1 = "7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75";
+      };
+    }
+    {
       name = "regexpp___regexpp_2.0.1.tgz";
       path = fetchurl {
         name = "regexpp___regexpp_2.0.1.tgz";
@@ -4362,6 +5010,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 = "registry_auth_token___registry_auth_token_3.4.0.tgz";
       path = fetchurl {
         name = "registry_auth_token___registry_auth_token_3.4.0.tgz";
@@ -4442,6 +5098,14 @@
       };
     }
     {
+      name = "resolve___resolve_1.17.0.tgz";
+      path = fetchurl {
+        name = "resolve___resolve_1.17.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz";
+        sha1 = "b25941b54968231cc2d1bb76a79cb7f2c0bf8444";
+      };
+    }
+    {
       name = "responselike___responselike_1.0.2.tgz";
       path = fetchurl {
         name = "responselike___responselike_1.0.2.tgz";
@@ -4450,11 +5114,11 @@
       };
     }
     {
-      name = "restore_cursor___restore_cursor_2.0.0.tgz";
+      name = "restore_cursor___restore_cursor_3.1.0.tgz";
       path = fetchurl {
-        name = "restore_cursor___restore_cursor_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz";
-        sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
+        name = "restore_cursor___restore_cursor_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz";
+        sha1 = "39f67c54b3a7a58cea5236d95cf0034239631f7e";
       };
     }
     {
@@ -4498,11 +5162,11 @@
       };
     }
     {
-      name = "run_async___run_async_2.3.0.tgz";
+      name = "run_async___run_async_2.4.1.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_async___run_async_2.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz";
+        sha1 = "8440eccf99ea3e70bd409d49aab88e10c189a455";
       };
     }
     {
@@ -4514,11 +5178,11 @@
       };
     }
     {
-      name = "rxjs___rxjs_6.5.3.tgz";
+      name = "rxjs___rxjs_6.6.0.tgz";
       path = fetchurl {
-        name = "rxjs___rxjs_6.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz";
-        sha1 = "510e26317f4db91a7eb1de77d9dd9ba0a4899a3a";
+        name = "rxjs___rxjs_6.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.0.tgz";
+        sha1 = "af2901eedf02e3a83ffa7f886240ff9018bbec84";
       };
     }
     {
@@ -4602,6 +5266,14 @@
       };
     }
     {
+      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 = "set_blocking___set_blocking_2.0.0.tgz";
       path = fetchurl {
         name = "set_blocking___set_blocking_2.0.0.tgz";
@@ -4626,6 +5298,14 @@
       };
     }
     {
+      name = "shebang_command___shebang_command_2.0.0.tgz";
+      path = fetchurl {
+        name = "shebang_command___shebang_command_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz";
+        sha1 = "ccd0af4f8835fbdc265b82461aaf0c36663f34ea";
+      };
+    }
+    {
       name = "shebang_regex___shebang_regex_1.0.0.tgz";
       path = fetchurl {
         name = "shebang_regex___shebang_regex_1.0.0.tgz";
@@ -4634,6 +5314,22 @@
       };
     }
     {
+      name = "shebang_regex___shebang_regex_3.0.0.tgz";
+      path = fetchurl {
+        name = "shebang_regex___shebang_regex_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz";
+        sha1 = "ae16f1644d873ecad843b0307b143362d4c42172";
+      };
+    }
+    {
+      name = "side_channel___side_channel_1.0.2.tgz";
+      path = fetchurl {
+        name = "side_channel___side_channel_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz";
+        sha1 = "df5d1abadb4e4bf4af1cd8852bf132d2f7876947";
+      };
+    }
+    {
       name = "signal_exit___signal_exit_3.0.2.tgz";
       path = fetchurl {
         name = "signal_exit___signal_exit_3.0.2.tgz";
@@ -4698,11 +5394,19 @@
       };
     }
     {
-      name = "source_map_support___source_map_support_0.5.16.tgz";
+      name = "source_map_support___source_map_support_0.5.19.tgz";
       path = fetchurl {
-        name = "source_map_support___source_map_support_0.5.16.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz";
-        sha1 = "0ae069e7fe3ba7538c64c98515e35339eac5a042";
+        name = "source_map_support___source_map_support_0.5.19.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz";
+        sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61";
+      };
+    }
+    {
+      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";
       };
     }
     {
@@ -4866,6 +5570,22 @@
       };
     }
     {
+      name = "string.prototype.matchall___string.prototype.matchall_4.0.2.tgz";
+      path = fetchurl {
+        name = "string.prototype.matchall___string.prototype.matchall_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz";
+        sha1 = "48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e";
+      };
+    }
+    {
+      name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz";
+      path = fetchurl {
+        name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz";
+        sha1 = "85812a6b847ac002270f5808146064c995fb6913";
+      };
+    }
+    {
       name = "string.prototype.trimleft___string.prototype.trimleft_2.1.0.tgz";
       path = fetchurl {
         name = "string.prototype.trimleft___string.prototype.trimleft_2.1.0.tgz";
@@ -4882,6 +5602,14 @@
       };
     }
     {
+      name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
+      path = fetchurl {
+        name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz";
+        sha1 = "14af6d9f34b053f7cfc89b72f8f2ee14b9039a54";
+      };
+    }
+    {
       name = "string_decoder___string_decoder_1.3.0.tgz";
       path = fetchurl {
         name = "string_decoder___string_decoder_1.3.0.tgz";
@@ -4962,6 +5690,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 = "strip_json_comments___strip_json_comments_2.0.1.tgz";
       path = fetchurl {
         name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
@@ -4994,11 +5730,11 @@
       };
     }
     {
-      name = "tar_stream___tar_stream_2.1.0.tgz";
+      name = "tar_stream___tar_stream_2.1.2.tgz";
       path = fetchurl {
-        name = "tar_stream___tar_stream_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.0.tgz";
-        sha1 = "d1aaa3661f05b38b5acc9b7020efdca5179a2cc3";
+        name = "tar_stream___tar_stream_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz";
+        sha1 = "6d5ef1a7e5783a95ff70b69b97455a5968dc1325";
       };
     }
     {
@@ -5018,11 +5754,11 @@
       };
     }
     {
-      name = "temp_file___temp_file_3.3.6.tgz";
+      name = "temp_file___temp_file_3.3.7.tgz";
       path = fetchurl {
-        name = "temp_file___temp_file_3.3.6.tgz";
-        url  = "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.6.tgz";
-        sha1 = "bd7a1951338bf93b59380b498ec1804d5b76c449";
+        name = "temp_file___temp_file_3.3.7.tgz";
+        url  = "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.7.tgz";
+        sha1 = "686885d635f872748e384e871855958470aeb18a";
       };
     }
     {
@@ -5114,6 +5850,14 @@
       };
     }
     {
+      name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+      path = fetchurl {
+        name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+        sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+      };
+    }
+    {
       name = "to_readable_stream___to_readable_stream_1.0.0.tgz";
       path = fetchurl {
         name = "to_readable_stream___to_readable_stream_1.0.0.tgz";
@@ -5138,6 +5882,22 @@
       };
     }
     {
+      name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
+      path = fetchurl {
+        name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz";
+        sha1 = "098547a6c4448807e8fcb8eae081064ee9a3c90b";
+      };
+    }
+    {
+      name = "tslib___tslib_1.13.0.tgz";
+      path = fetchurl {
+        name = "tslib___tslib_1.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz";
+        sha1 = "c881e13cc7015894ed914862d276436fa9a47043";
+      };
+    }
+    {
       name = "tslib___tslib_1.10.0.tgz";
       path = fetchurl {
         name = "tslib___tslib_1.10.0.tgz";
@@ -5146,6 +5906,14 @@
       };
     }
     {
+      name = "tsutils___tsutils_3.17.1.tgz";
+      path = fetchurl {
+        name = "tsutils___tsutils_3.17.1.tgz";
+        url  = "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz";
+        sha1 = "ed719917f11ca0dee586272b2ac49e015a2dd759";
+      };
+    }
+    {
       name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
       path = fetchurl {
         name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
@@ -5162,6 +5930,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";
@@ -5170,6 +5946,14 @@
       };
     }
     {
+      name = "type_fest___type_fest_0.11.0.tgz";
+      path = fetchurl {
+        name = "type_fest___type_fest_0.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz";
+        sha1 = "97abf0872310fed88a5c466b25681576145e33f1";
+      };
+    }
+    {
       name = "type_fest___type_fest_0.8.1.tgz";
       path = fetchurl {
         name = "type_fest___type_fest_0.8.1.tgz";
@@ -5194,6 +5978,14 @@
       };
     }
     {
+      name = "typescript___typescript_3.9.7.tgz";
+      path = fetchurl {
+        name = "typescript___typescript_3.9.7.tgz";
+        url  = "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz";
+        sha1 = "98d600a5ebdc38f40cb277522f12dc800e9e25fa";
+      };
+    }
+    {
       name = "uid_number___uid_number_0.0.6.tgz";
       path = fetchurl {
         name = "uid_number___uid_number_0.0.6.tgz";
@@ -5210,14 +6002,6 @@
       };
     }
     {
-      name = "unhomoglyph___unhomoglyph_1.0.3.tgz";
-      path = fetchurl {
-        name = "unhomoglyph___unhomoglyph_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/unhomoglyph/-/unhomoglyph-1.0.3.tgz";
-        sha1 = "8d3551622b57754e10a831bf81442d7f15d1ddfd";
-      };
-    }
-    {
       name = "unique_filename___unique_filename_1.1.1.tgz";
       path = fetchurl {
         name = "unique_filename___unique_filename_1.1.1.tgz";
@@ -5258,6 +6042,14 @@
       };
     }
     {
+      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 = "unpipe___unpipe_1.0.0.tgz";
       path = fetchurl {
         name = "unpipe___unpipe_1.0.0.tgz";
@@ -5386,6 +6178,14 @@
       };
     }
     {
+      name = "v8_compile_cache___v8_compile_cache_2.1.1.tgz";
+      path = fetchurl {
+        name = "v8_compile_cache___v8_compile_cache_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz";
+        sha1 = "54bc3cdd43317bca91e35dcaf305b1a7237de745";
+      };
+    }
+    {
       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";
@@ -5434,6 +6234,14 @@
       };
     }
     {
+      name = "which___which_2.0.2.tgz";
+      path = fetchurl {
+        name = "which___which_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz";
+        sha1 = "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1";
+      };
+    }
+    {
       name = "wide_align___wide_align_1.1.3.tgz";
       path = fetchurl {
         name = "wide_align___wide_align_1.1.3.tgz";
@@ -5626,11 +6434,11 @@
       };
     }
     {
-      name = "yargs_parser___yargs_parser_16.1.0.tgz";
+      name = "yargs_parser___yargs_parser_18.1.3.tgz";
       path = fetchurl {
-        name = "yargs_parser___yargs_parser_16.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz";
-        sha1 = "73747d53ae187e7b8dbe333f95714c76ea00ecf1";
+        name = "yargs_parser___yargs_parser_18.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz";
+        sha1 = "be68c4975c6b2abf469236b0c870362fab09a7b0";
       };
     }
     {
@@ -5658,11 +6466,11 @@
       };
     }
     {
-      name = "yargs___yargs_15.1.0.tgz";
+      name = "yargs___yargs_15.3.1.tgz";
       path = fetchurl {
-        name = "yargs___yargs_15.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-15.1.0.tgz";
-        sha1 = "e111381f5830e863a89550bd4b136bb6a5f37219";
+        name = "yargs___yargs_15.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz";
+        sha1 = "9505b472763963e54afe60148ad27a330818e98b";
       };
     }
     {
@@ -5674,11 +6482,11 @@
       };
     }
     {
-      name = "zip_stream___zip_stream_2.1.2.tgz";
+      name = "zip_stream___zip_stream_3.0.1.tgz";
       path = fetchurl {
-        name = "zip_stream___zip_stream_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/zip-stream/-/zip-stream-2.1.2.tgz";
-        sha1 = "841efd23214b602ff49c497cba1a85d8b5fbc39c";
+        name = "zip_stream___zip_stream_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/zip-stream/-/zip-stream-3.0.1.tgz";
+        sha1 = "cb8db9d324a76c09f9b76b31a12a48638b0b9708";
       };
     }
   ];
diff --git a/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
index 42f8ce60fd3..46e859076be 100644
--- a/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
@@ -1,44 +1,44 @@
 { stdenv, fetchFromGitHub
 , makeWrapper, makeDesktopItem, mkYarnPackage
-, electron_7, riot-web
+, electron_9, element-web
 }:
 # Notes for maintainers:
-# * versions of `riot-web` and `riot-desktop` should be kept in sync.
-# * the Yarn dependency expression must be updated with `./update-riot-desktop.sh <git release tag>`
+# * versions of `element-web` and `element-desktop` should be kept in sync.
+# * the Yarn dependency expression must be updated with `./update-element-desktop.sh <git release tag>`
 
 let
-  executableName = "riot-desktop";
-  version = "1.6.7";
+  executableName = "element-desktop";
+  version = "1.7.5";
   src = fetchFromGitHub {
     owner = "vector-im";
     repo = "riot-desktop";
     rev = "v${version}";
-    sha256 = "0l1ih7rkb0nnc79607kkg0k69j9kwqrczhgkqzsmvqxjz7pk9kgn";
+    sha256 = "0781yg15bzkw5bpfzbdkqix239djgsc7kjdvbilv1d1xxqz3462y";
   };
-  electron = electron_7;
+  electron = electron_9;
 
 in mkYarnPackage rec {
-  name = "riot-desktop-${version}";
+  name = "element-desktop-${version}";
   inherit version src;
 
-  packageJSON = ./riot-desktop-package.json;
-  yarnNix = ./riot-desktop-yarndeps.nix;
+  packageJSON = ./element-desktop-package.json;
+  yarnNix = ./element-desktop-yarndeps.nix;
 
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     # resources
-    mkdir -p "$out/share/riot"
-    ln -s '${riot-web}' "$out/share/riot/webapp"
-    cp -r './deps/riot-desktop' "$out/share/riot/electron"
-    cp -r './deps/riot-desktop/res/img' "$out/share/riot"
-    rm "$out/share/riot/electron/node_modules"
-    cp -r './node_modules' "$out/share/riot/electron"
+    mkdir -p "$out/share/element"
+    ln -s '${element-web}' "$out/share/element/webapp"
+    cp -r './deps/element-desktop' "$out/share/element/electron"
+    cp -r './deps/element-desktop/res/img' "$out/share/element"
+    rm "$out/share/element/electron/node_modules"
+    cp -r './node_modules' "$out/share/element/electron"
 
     # icons
-    for icon in $out/share/riot/electron/build/icons/*.png; do
+    for icon in $out/share/element/electron/build/icons/*.png; do
       mkdir -p "$out/share/icons/hicolor/$(basename $icon .png)/apps"
-      ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/riot.png"
+      ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/element.png"
     done
 
     # desktop item
@@ -47,36 +47,33 @@ in mkYarnPackage rec {
 
     # executable wrapper
     makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
-      --add-flags "$out/share/riot/electron"
+      --add-flags "$out/share/element/electron"
   '';
 
-  # Do not attempt generating a tarball for riot-web again.
+  # Do not attempt generating a tarball for element-web again.
   # note: `doDist = false;` does not work.
   distPhase = ''
     true
   '';
 
   # The desktop item properties should be kept in sync with data from upstream:
-  # * productName and description from
-  #   https://github.com/vector-im/riot-web/blob/develop/electron_app/package.json
-  # * category and StartupWMClass from the build.linux section of
-  #   https://github.com/vector-im/riot-web/blob/develop/package.json
+  # https://github.com/vector-im/riot-desktop/blob/develop/package.json
   desktopItem = makeDesktopItem {
-    name = "riot";
+    name = "element-desktop";
     exec = executableName;
-    icon = "riot";
-    desktopName = "Riot";
+    icon = "element";
+    desktopName = "Element (Riot)";
     genericName = "Matrix Client";
     comment = meta.description;
     categories = "Network;InstantMessaging;Chat;";
     extraEntries = ''
-      StartupWMClass=riot
+      StartupWMClass=element
     '';
   };
 
   meta = with stdenv.lib; {
     description = "A feature-rich client for Matrix.org";
-    homepage = "https://about.riot.im/";
+    homepage = "https://element.io/";
     license = licenses.asl20;
     maintainers = teams.matrix.members;
     inherit (electron.meta) platforms;
diff --git a/pkgs/applications/networking/instant-messengers/riot/riot-web.nix b/pkgs/applications/networking/instant-messengers/element/element-web.nix
index 23e17f96168..1ed5a6261f1 100644
--- a/pkgs/applications/networking/instant-messengers/riot/riot-web.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-web.nix
@@ -1,22 +1,22 @@
 { lib, stdenv, fetchurl, writeText, jq, conf ? {} }:
 
 # Note for maintainers:
-# Versions of `riot-web` and `riot-desktop` should be kept in sync.
+# Versions of `element-web` and `element-desktop` should be kept in sync.
 
 let
   noPhoningHome = {
     disable_guests = true; # disable automatic guest account registration at matrix.org
     piwik = false; # disable analytics
   };
-  configOverrides = writeText "riot-config-overrides.json" (builtins.toJSON (noPhoningHome // conf));
+  configOverrides = writeText "element-config-overrides.json" (builtins.toJSON (noPhoningHome // conf));
 
 in stdenv.mkDerivation rec {
-  pname = "riot-web";
-  version = "1.6.7";
+  pname = "element-web";
+  version = "1.7.5";
 
   src = fetchurl {
     url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
-    sha256 = "14g5rbvcw6p0q50slbf0c7s39i54ggv2cjc5iv93yvfrwn3z0f8p";
+    sha256 = "07qc4hymdp1r2zn9gsgkpwxf6knk6xr88dc3iihlhipmlk46m58b";
   };
 
   installPhase = ''
@@ -31,7 +31,7 @@ in stdenv.mkDerivation rec {
 
   meta = {
     description = "A glossy Matrix collaboration client for the web";
-    homepage = "http://riot.im/";
+    homepage = "https://element.io/";
     maintainers = stdenv.lib.teams.matrix.members;
     license = stdenv.lib.licenses.asl20;
     platforms = stdenv.lib.platforms.all;
diff --git a/pkgs/applications/networking/instant-messengers/element/update-element-desktop.sh b/pkgs/applications/networking/instant-messengers/element/update-element-desktop.sh
new file mode 100755
index 00000000000..ecca3018e76
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/element/update-element-desktop.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -I nixpkgs=../../../../../ -i bash -p wget yarn2nix
+
+set -euo pipefail
+
+if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
+	echo "Regenerates the Yarn dependency lock files for the element-desktop package."
+	echo "Usage: $0 <git release tag>"
+	exit 1
+fi
+
+RIOT_WEB_SRC="https://raw.githubusercontent.com/vector-im/riot-desktop/$1"
+
+wget "$RIOT_WEB_SRC/package.json" -O element-desktop-package.json
+wget "$RIOT_WEB_SRC/yarn.lock" -O element-desktop-yarndeps.lock
+yarn2nix --lockfile=element-desktop-yarndeps.lock > element-desktop-yarndeps.nix
+rm element-desktop-yarndeps.lock
diff --git a/pkgs/applications/networking/instant-messengers/ferdi/default.nix b/pkgs/applications/networking/instant-messengers/ferdi/default.nix
new file mode 100644
index 00000000000..e0f56e2783d
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/ferdi/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, mkFranzDerivation, fetchurl }:
+
+mkFranzDerivation rec {
+  pname = "ferdi";
+  name = "Ferdi";
+  version = "5.5.0";
+  src = fetchurl {
+    url = "https://github.com/getferdi/ferdi/releases/download/v${version}/ferdi_${version}_amd64.deb";
+    sha256 = "0i24vcnq4iz5amqmn2fgk92ff9x9y7fg8jhc3g6ksvmcfly7af3k";
+  };
+  meta = with stdenv.lib; {
+    description = "Ferdi allows you to combine your favorite messaging services into one application";
+    homepage = "https://getferdi.com/";
+    license = licenses.free;
+    maintainers = [ maintainers.davidtwco ];
+    platforms = [ "x86_64-linux" ];
+    hydraPlatforms = [ ];
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/fractal/default.nix b/pkgs/applications/networking/instant-messengers/fractal/default.nix
index 05767d1a9cd..68e7282870b 100644
--- a/pkgs/applications/networking/instant-messengers/fractal/default.nix
+++ b/pkgs/applications/networking/instant-messengers/fractal/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitLab
+, nix-update-script
 , fetchpatch
 , meson
 , ninja
@@ -8,7 +9,7 @@
 , rustc
 , python3
 , rustPlatform
-, pkgconfig
+, pkg-config
 , gtksourceview4
 , glib
 , libhandy
@@ -25,24 +26,24 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fractal";
-  version = "4.2.2";
+  version = "4.4.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = "fractal";
     rev = version;
-    sha256 = "0r98km3c8naj3mdr1wppzj823ir7jnsia7r3cbg3vsq8q52i480r";
+    sha256 = "DSNVd9YvI7Dd3s3+M0+wE594tmL1yPNMnD1W9wLhSuw=";
   };
 
-  cargoSha256 = "10fgw9m6gdazrca73g43sgvsghhac7xc3bg7hr0vpynzqyfigwa9";
+  cargoSha256 = "xim5sOzeXJjRXbTOg2Gk/LHU0LioiyMK5nSr1LwMPjc=";
 
   nativeBuildInputs = [
     cargo
     gettext
     meson
     ninja
-    pkgconfig
+    pkg-config
     python3
     rustc
     wrapGAppsHook
@@ -58,6 +59,9 @@ rustPlatform.buildRustPackage rec {
     gst_all_1.gst-editing-services
     gst_all_1.gst-plugins-bad
     gst_all_1.gst-plugins-base
+    (gst_all_1.gst-plugins-good.override {
+      gtkSupport = true;
+    })
     gst_all_1.gstreamer
     gst_all_1.gst-validate
     gtk3
@@ -78,6 +82,12 @@ rustPlatform.buildRustPackage rec {
   checkPhase = null;
   installPhase = null;
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "Matrix group messaging app";
     homepage = "https://gitlab.gnome.org/GNOME/fractal";
diff --git a/pkgs/applications/networking/instant-messengers/franz/default.nix b/pkgs/applications/networking/instant-messengers/franz/default.nix
index 0c5090574fa..52bc60b5aff 100644
--- a/pkgs/applications/networking/instant-messengers/franz/default.nix
+++ b/pkgs/applications/networking/instant-messengers/franz/default.nix
@@ -1,57 +1,19 @@
-{ stdenv, fetchurl, makeWrapper, wrapGAppsHook, autoPatchelfHook, dpkg
-, xorg, atk, glib, pango, gdk-pixbuf, cairo, freetype, fontconfig, gtk3
-, gnome2, dbus, nss, nspr, alsaLib, cups, expat, udev, libnotify, xdg_utils }:
+{ stdenv, mkFranzDerivation, fetchurl }:
 
-let
-  version = "5.4.1";
-in stdenv.mkDerivation {
+mkFranzDerivation rec {
   pname = "franz";
-  inherit version;
+  name = "Franz";
+  version = "5.5.0";
   src = fetchurl {
     url = "https://github.com/meetfranz/franz/releases/download/v${version}/franz_${version}_amd64.deb";
-    sha256 = "1g1z5zjm9l081hpqslfc4h7pqh4k76ccmlz71r21204wy630mw6h";
+    sha256 = "0kgfjai0pz0gpbxsmn3hbha7zr2kax0s1j3ygcsy4kzghla990wm";
   };
-
-  # don't remove runtime deps
-  dontPatchELF = true;
-
-  nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapGAppsHook dpkg ];
-  buildInputs = (with xorg; [
-    libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes
-    libXrender libX11 libXtst libXScrnSaver
-  ]) ++ [
-    gtk3 atk glib pango gdk-pixbuf cairo freetype fontconfig dbus
-    gnome2.GConf nss nspr alsaLib cups expat stdenv.cc.cc
-  ];
-  runtimeDependencies = [ udev.lib libnotify ];
-
-  unpackPhase = "dpkg-deb -x $src .";
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp -r opt $out
-    ln -s $out/opt/Franz/franz $out/bin
-
-    # provide desktop item and icon
-    cp -r usr/share $out
-    substituteInPlace $out/share/applications/franz.desktop \
-      --replace /opt/Franz/franz franz
-  '';
-
-  dontWrapGApps = true;
-
-  postFixup = ''
-    wrapProgram $out/opt/Franz/franz \
-      --prefix PATH : ${xdg_utils}/bin \
-      "''${gappsWrapperArgs[@]}"
-  '';
-
   meta = with stdenv.lib; {
     description = "A free messaging app that combines chat & messaging services into one application";
     homepage = "https://meetfranz.com";
     license = licenses.free;
     maintainers = [ maintainers.davidtwco ];
-    platforms = ["x86_64-linux"];
-    hydraPlatforms = [];
+    platforms = [ "x86_64-linux" ];
+    hydraPlatforms = [ ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/franz/generic.nix b/pkgs/applications/networking/instant-messengers/franz/generic.nix
new file mode 100644
index 00000000000..3f05e3d7a5d
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/franz/generic.nix
@@ -0,0 +1,90 @@
+{ stdenv
+, lib
+, makeWrapper
+, wrapGAppsHook
+, autoPatchelfHook
+, dpkg
+, xorg
+, atk
+, glib
+, pango
+, gdk-pixbuf
+, cairo
+, freetype
+, fontconfig
+, gtk3
+, gnome2
+, dbus
+, nss
+, nspr
+, alsaLib
+, cups
+, expat
+, udev
+, libnotify
+, xdg_utils
+}:
+
+# Helper function for building a derivation for Franz and forks.
+
+{ pname, name, version, src, meta }:
+stdenv.mkDerivation {
+  inherit pname version src meta;
+
+  # Don't remove runtime deps.
+  dontPatchELF = true;
+
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapGAppsHook dpkg ];
+  buildInputs = (with xorg; [
+    libXi
+    libXcursor
+    libXdamage
+    libXrandr
+    libXcomposite
+    libXext
+    libXfixes
+    libXrender
+    libX11
+    libXtst
+    libXScrnSaver
+  ]) ++ [
+    gtk3
+    atk
+    glib
+    pango
+    gdk-pixbuf
+    cairo
+    freetype
+    fontconfig
+    dbus
+    gnome2.GConf
+    nss
+    nspr
+    alsaLib
+    cups
+    expat
+    stdenv.cc.cc
+  ];
+  runtimeDependencies = [ (lib.getLib udev) libnotify ];
+
+  unpackPhase = "dpkg-deb -x $src .";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -r opt $out
+    ln -s $out/opt/${name}/${pname} $out/bin
+
+    # Provide desktop item and icon.
+    cp -r usr/share $out
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace /opt/${name}/${pname} ${pname}
+  '';
+
+  dontWrapGApps = true;
+
+  postFixup = ''
+    wrapProgram $out/opt/${name}/${pname} \
+      --prefix PATH : ${xdg_utils}/bin \
+      "''${gappsWrapperArgs[@]}"
+  '';
+}
diff --git a/pkgs/applications/networking/instant-messengers/gajim/default.nix b/pkgs/applications/networking/instant-messengers/gajim/default.nix
index b2be635728d..2ee017dfdba 100644
--- a/pkgs/applications/networking/instant-messengers/gajim/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gajim/default.nix
@@ -2,12 +2,13 @@
 
 # Native dependencies
 , python3, gtk3, gobject-introspection, gnome3
+, glib-networking
 
 # Test dependencies
 , xvfb_run, dbus
 
 # Optional dependencies
-, enableJingle ? true, farstream, gstreamer, gst-plugins-base, gst-libav, gst-plugins-ugly, libnice
+, enableJingle ? true, farstream, gstreamer, gst-plugins-base, gst-libav, gst-plugins-good, libnice
 , enableE2E ? true
 , enableSecrets ? true, libsecret
 , enableRST ? true, docutils
@@ -19,32 +20,33 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gajim";
-  majorVersion = "1.1";
-  version = "${majorVersion}.3";
+  version = "1.2.2";
 
   src = fetchurl {
-    url = "https://gajim.org/downloads/${majorVersion}/gajim-${version}.tar.bz2";
-    sha256 = "0bzxwcpdd4ydh6d6mzpr0gxwhcb0x9ympk55fpvm1hcw9d28a716";
+    url = "https://gajim.org/downloads/${lib.versions.majorMinor version}/gajim-${version}.tar.gz";
+    sha256 = "1gfcp3b5nq43xxz5my8vfhfxnnli726j3hzcgwh9fzrzzd9ic3gx";
   };
 
-  postPatch = ''
-    # This test requires network access
-    echo "" > test/integration/test_resolver.py
-  '';
-
   buildInputs = [
-    gobject-introspection gtk3 gnome3.adwaita-icon-theme wrapGAppsHook
-  ] ++ lib.optionals enableJingle [ farstream gstreamer gst-plugins-base gst-libav gst-plugins-ugly libnice ]
+    gobject-introspection gtk3 gnome3.adwaita-icon-theme
+    glib-networking
+  ] ++ lib.optionals enableJingle [ farstream gstreamer gst-plugins-base gst-libav gst-plugins-good libnice ]
     ++ lib.optional enableSecrets libsecret
     ++ lib.optional enableSpelling gspell
     ++ lib.optional enableUPnP gupnp-igd;
 
   nativeBuildInputs = [
-    gettext
+    gettext wrapGAppsHook
   ];
 
+  dontWrapGApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
   propagatedBuildInputs = with python3.pkgs; [
-    nbxmpp pyasn1 pygobject3 dbus-python pillow cssutils precis-i18n keyring setuptools
+    nbxmpp pygobject3 dbus-python pillow css-parser precis-i18n keyring setuptools
   ] ++ lib.optionals enableE2E [ pycrypto python-gnupg ]
     ++ lib.optional enableRST docutils
     ++ lib.optionals enableOmemoPluginDependencies [ python-axolotl qrcode ]
@@ -62,7 +64,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "http://gajim.org/";
     description = "Jabber client written in PyGTK";
     license = lib.licenses.gpl3Plus;
-    maintainers = with lib.maintainers; [ raskin aszlig abbradar ];
+    maintainers = with lib.maintainers; [ raskin abbradar ];
     downloadPage = "http://gajim.org/downloads.php";
     updateWalker = true;
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/networking/instant-messengers/go-neb/default.nix b/pkgs/applications/networking/instant-messengers/go-neb/default.nix
index 769e5cf5515..04418dc64fc 100644
--- a/pkgs/applications/networking/instant-messengers/go-neb/default.nix
+++ b/pkgs/applications/networking/instant-messengers/go-neb/default.nix
@@ -16,6 +16,8 @@ buildGoModule {
 
   vendorSha256 = "1k3980yf6zl00dkd1djwhm2f9nnffzrsbs3kq3alpw2gm0aln739";
 
+  doCheck = false;
+
   passthru.tests.go-neb = nixosTests.go-neb;
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/instant-messengers/gomuks/default.nix b/pkgs/applications/networking/instant-messengers/gomuks/default.nix
index c2402f98933..8df4e4b3ea3 100644
--- a/pkgs/applications/networking/instant-messengers/gomuks/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gomuks/default.nix
@@ -4,8 +4,6 @@ buildGoModule rec {
   pname = "gomuks";
   version = "0.1.2";
 
-  goPackagePath = "maunium.net/go/gomuks";
-
   src = fetchFromGitHub {
     owner = "tulir";
     repo = pname;
@@ -15,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "11rk7pma6dr6fsyz8hpjyr7nc2c7ichh5m7ds07m89gzk6ar55gb";
 
+  doCheck = false;
+
   buildInputs = [ olm ];
 
   postInstall = ''
diff --git a/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix b/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
index 715eef4229a..66194d9d246 100644
--- a/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
     description = "Jitsi Meet desktop application powered by Electron";
     homepage = "https://github.com/jitsi/jitsi-meet-electron";
     license = licenses.asl20;
-    maintainers = with maintainers; [ prusnak ];
+    maintainers = teams.jitsi.members;
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/pkgs/applications/networking/instant-messengers/jitsi/default.nix
index 4fb6b1852a4..63bcc58ac3e 100644
--- a/pkgs/applications/networking/instant-messengers/jitsi/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jitsi/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     comment = "VoIP and Instant Messaging client";
     desktopName = "Jitsi";
     genericName = "Instant Messaging";
-    categories = "X-Internet;";
+    categories = "Chat";
   };
 
   libPath = lib.makeLibraryPath ([
@@ -66,6 +66,6 @@ stdenv.mkDerivation rec {
     description = "Open Source Video Calls and Chat";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [];
+    maintainers = teams.jitsi.members;
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch b/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch
index e477bdfe2fd..07b16b91996 100644
--- a/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch
+++ b/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch
@@ -11,7 +11,7 @@
 
  # Get architecture
  ARCH=`uname -m | sed -e s/x86_64/64/ -e s/i.86/32/`
-@@ -6,7 +11,9 @@
+@@ -6,10 +11,12 @@
  # Additionnal JVM arguments
  CLIENTARGS=""
 
diff --git a/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix b/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
index 74406f217a2..7e63161ff35 100644
--- a/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
@@ -43,18 +43,18 @@ let
 in
   stdenv.mkDerivation rec {
     pname = "mattermost-desktop";
-    version = "4.5.0";
+    version = "4.5.2";
 
     src =
       if stdenv.hostPlatform.system == "x86_64-linux" then
         fetchurl {
           url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-x64.tar.gz";
-          sha256 = "1p44vxs7i9f15h4xjyr99g8x73qygv909a32lfkqip1fh8lk7sf4";
+          sha256 = "0r9xmhzif1ia1m53yr59q6p3niyq3jv3vgv4703x68jmd46f91n6";
         }
       else if stdenv.hostPlatform.system == "i686-linux" then
         fetchurl {
           url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-ia32.tar.gz";
-          sha256 = "03pn853z2famqxcsrwayqb94pzghlpfb0qs2nfi8mc5zzsgcic7z";
+          sha256 = "1h8lw06p3cqz9dkgbhfmzcrzjsir5cfhx28xm4zrmvkj4yfzbcnv";
         }
       else
         throw "Mattermost-Desktop is not currently supported on ${stdenv.hostPlatform.system}";
diff --git a/pkgs/applications/networking/instant-messengers/mirage/default.nix b/pkgs/applications/networking/instant-messengers/mirage/default.nix
new file mode 100644
index 00000000000..1101d6f9b06
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/mirage/default.nix
@@ -0,0 +1,57 @@
+{ lib, mkDerivation, fetchFromGitHub
+, qmake, pkgconfig, olm, wrapQtAppsHook
+, qtbase, qtquickcontrols2, qtkeychain, qtmultimedia, qttools, qtgraphicaleffects
+, python3Packages, pyotherside
+}:
+
+let
+  pypkgs = with python3Packages; [
+    aiofiles filetype matrix-nio appdirs cairosvg
+    pymediainfo setuptools html-sanitizer mistune blist
+    pyotherside
+  ];
+in
+mkDerivation rec {
+  pname = "mirage";
+  version = "0.5.2";
+
+  src = fetchFromGitHub {
+    owner = "mirukana";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0i891fafdncdz1xg6nji80jb86agsrbdvai9nwf1yy126q7piryv";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ pkgconfig qmake wrapQtAppsHook python3Packages.wrapPython ];
+
+  buildInputs = [
+    qtbase qtmultimedia
+    qtquickcontrols2
+    qtkeychain qtgraphicaleffects
+    olm pyotherside
+  ];
+
+  propagatedBuildInputs = pypkgs;
+
+  pythonPath = pypkgs;
+
+  qmakeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  dontWrapQtApps = true;
+  postInstall = ''
+    buildPythonPath "$out $pythonPath"
+    wrapProgram $out/bin/mirage \
+      --prefix PYTHONPATH : "$PYTHONPATH" \
+      "''${qtWrapperArgs[@]}"
+    '';
+
+  meta = with lib; {
+    description = "A fancy, customizable, keyboard-operable Qt/QML+Python Matrix chat client for encrypted and decentralized communication.";
+    homepage = "https://github.com/mirukana/mirage";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ colemickens ];
+    inherit (qtbase.meta) platforms;
+    inherit version;
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix b/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
index be7a8725df1..a751501376f 100644
--- a/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonApplication rec {
   pname = "pantalaimon";
-  version = "0.6.3";
+  version = "0.7.0";
 
   disabled = pythonOlder "3.6";
 
@@ -19,7 +19,7 @@ buildPythonApplication rec {
     owner = "matrix-org";
     repo = pname;
     rev = version;
-    sha256 = "1h1z701sj1qgcqlsk3pnzifnbcg9fshl7v6271h9x54hm3d6hg8a";
+    sha256 = "0cx8sqajf5lh8w61yy1l6ry67rv1b45xp264zkw3s7ip80i4ylb2";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix b/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix
index cae84c054e8..7bb2517a188 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pidgin-skypeweb";
-  version = "1.5";
+  version = "1.6";
 
   src = fetchFromGitHub {
     owner = "EionRobb";
     repo = "skype4pidgin";
     rev = version;
-    sha256 = "1bd9gd36yhrbrww0dvai9rnzxxj1c9sb4003c72wg27w12y47xfv";
+    sha256 = "1q3m8hyr77mxm4y0zify2xhjp9d8y4pgwvqyfly4zcpmyd2argi1";
   };
 
   setSourceRoot = ''
diff --git a/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix
index 999235314fe..4ded2ce1d0b 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix
@@ -26,10 +26,13 @@ stdenv.mkDerivation rec {
     "DATA_ROOT_DIR_PURPLE=${placeholder "out"}/share"
   ];
 
+  buildFlags = [ "CC=cc" ]; # fix build on darwin
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/matrix-org/purple-matrix";
     description = "Matrix support for Pidgin / libpurple";
     license = licenses.gpl2;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ symphorien ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/profanity/default.nix b/pkgs/applications/networking/instant-messengers/profanity/default.nix
index 86e760d497c..52172bd8be7 100644
--- a/pkgs/applications/networking/instant-messengers/profanity/default.nix
+++ b/pkgs/applications/networking/instant-messengers/profanity/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, glib, openssl
 , glibcLocales, expect, ncurses, libotr, curl, readline, libuuid
-, cmocka, libmicrohttpd, stabber, expat, libmesode
+, cmocka, libmicrohttpd, expat, sqlite, libmesode
 , autoconf-archive
 
 , autoAwaySupport ? true,       libXScrnSaver ? null, libX11 ? null
@@ -22,16 +22,18 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "profanity";
-  version = "0.8.1";
+  version = "0.9.5";
 
   src = fetchFromGitHub {
     owner = "profanity-im";
     repo = "profanity";
     rev = version;
-    sha256 = "0fg5xcdlvhsi7a40w4jcxyj7m7wl42jy1cvsa8fi2gb6g9y568k8";
+    sha256 = "14vbblf639f90bb4npg2xv53cpvk9am9ic4pmc1vnv4m3zsndjg5";
   };
 
-  patches = [ ./patches/packages-osx.patch ./patches/undefined-macros.patch ];
+  patches = [
+    ./patches/packages-osx.patch
+  ];
 
   enableParallelBuilding = true;
 
@@ -41,7 +43,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     expect readline libuuid glib openssl expat ncurses libotr
-    curl libmesode cmocka libmicrohttpd stabber
+    curl libmesode cmocka libmicrohttpd sqlite
   ] ++ optionals autoAwaySupport     [ libXScrnSaver libX11 ]
     ++ optionals notifySupport       [ libnotify gdk-pixbuf ]
     ++ optionals traySupport         [ gnome2.gtk ]
diff --git a/pkgs/applications/networking/instant-messengers/profanity/patches/undefined-macros.patch b/pkgs/applications/networking/instant-messengers/profanity/patches/undefined-macros.patch
deleted file mode 100644
index 9ef4e7bebe5..00000000000
--- a/pkgs/applications/networking/instant-messengers/profanity/patches/undefined-macros.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 1e55b1cc..0832a387 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -83,12 +81,12 @@ elif test "x$enable_python_plugins" != xno; then
-         AM_CONDITIONAL([BUILD_PYTHON_API], [true])
-         AC_DEFINE([HAVE_PYTHON], [1], [Python support])
-     else
--        if test "x$enable_python_plugins" = xyes; then
--            AC_MSG_ERROR([Python not found, cannot enable Python plugins.])
--        else
--            AM_CONDITIONAL([BUILD_PYTHON_API], [false])
--            AC_MSG_NOTICE([Python development package not found, Python plugin support disabled.])
--        fi
-+        AS_IF(
-+            [test "x$enable_python_plugins" = xyes],
-+            [],
-+            [AM_CONDITIONAL([BUILD_PYTHON_API], [false])
-+            AC_MSG_NOTICE([Python development package not found, Python plugin support disabled.])]
-+        )
-     fi
-     AS_IF([test "x$PLATFORM" = xosx], [rm -f Python.framework])
- else
-@@ -107,7 +105,7 @@ else
-             [AM_CONDITIONAL([BUILD_C_API], [true]) LIBS="$LIBS -ldl" AC_DEFINE([HAVE_C], [1], [C support])],
-             [AS_IF(
-                 [test "x$enable_c_plugins" = xyes],
--                    [AC_MSG_ERROR([dl library needed to run C plugins])],
-+                [],
-                 [AM_CONDITIONAL([BUILD_C_API], [false])])
-             ])
-     else
-@@ -116,7 +114,6 @@ else
- fi
- 
- # threading
--ACX_PTHREAD([], [AC_MSG_ERROR([pthread is required])])
- LIBS="$PTHREAD_LIBS $LIBS"
- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
- AS_IF([test "x$PTHREAD_CC" != x], [ CC="$PTHREAD_CC" ])
diff --git a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
index ba10ab16267..430a7cc4ca7 100644
--- a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
+++ b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "psi-plus";
-  version = "1.4.1407";
+  version = "1.4.1473";
 
   src = fetchFromGitHub {
     owner = "psi-plus";
     repo = "psi-plus-snapshots";
     rev = version;
-    sha256 = "0gp5rk7km2fzw109wil6s9x49x5q1qbw9mnkjs58dpzvxn74ylhw";
+    sha256 = "03f28zwbjn6fnsm0fqg8lmc11rpfdfvzjf7k7xydc3lzy8pxbds5";
   };
 
   cmakeFlags = [
diff --git a/pkgs/applications/networking/instant-messengers/rambox/default.nix b/pkgs/applications/networking/instant-messengers/rambox/default.nix
index 74a644d189d..e6f80de821f 100644
--- a/pkgs/applications/networking/instant-messengers/rambox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/rambox/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, xdg_utils, dpkg, makeWrapper, autoPatchelfHook
-, libXtst, libXScrnSaver, gtk3, nss, alsaLib, udev, libnotify
+{ stdenv, lib, fetchurl, xdg_utils, dpkg, makeWrapper, autoPatchelfHook
+, libXtst, libXScrnSaver, gtk3, nss, alsaLib, udev, libnotify, wrapGAppsHook
 }:
 
 let
@@ -18,9 +18,9 @@ in stdenv.mkDerivation rec {
     };
   }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
 
-  nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook ];
+  nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook wrapGAppsHook ];
   buildInputs = [ libXtst libXScrnSaver gtk3 nss alsaLib ];
-  runtimeDependencies = [ udev.lib libnotify ];
+  runtimeDependencies = [ (lib.getLib udev) libnotify ];
 
   unpackPhase = "dpkg-deb -x $src .";
 
@@ -35,8 +35,10 @@ in stdenv.mkDerivation rec {
       --replace Exec=/opt/Rambox/rambox Exec=rambox
   '';
 
-  postFixup = ''
-    wrapProgram $out/opt/Rambox/rambox --prefix PATH : ${xdg_utils}/bin
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix PATH : ${xdg_utils}/bin
+    )
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/instant-messengers/rambox/pro.nix b/pkgs/applications/networking/instant-messengers/rambox/pro.nix
index f7a904f1e36..d39091d4618 100644
--- a/pkgs/applications/networking/instant-messengers/rambox/pro.nix
+++ b/pkgs/applications/networking/instant-messengers/rambox/pro.nix
@@ -1,5 +1,8 @@
-{ autoPatchelfHook, electron, fetchurl, makeDesktopItem, makeWrapper, nodePackages, nss, stdenv, xdg_utils, xorg }:
+{ autoPatchelfHook, electron_4, fetchurl, makeDesktopItem, makeWrapper, nodePackages, nss, stdenv, xdg_utils, xorg }:
 
+let
+  electron = electron_4;
+in
 stdenv.mkDerivation rec {
   pname = "rambox-pro";
   version = "1.3.2";
diff --git a/pkgs/applications/networking/instant-messengers/riot/update-riot-desktop.sh b/pkgs/applications/networking/instant-messengers/riot/update-riot-desktop.sh
deleted file mode 100755
index d6e7259f19b..00000000000
--- a/pkgs/applications/networking/instant-messengers/riot/update-riot-desktop.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -I nixpkgs=../../../../../ -i bash -p wget yarn2nix
-
-set -euo pipefail
-
-if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
-	echo "Regenerates the Yarn dependency lock files for the riot-desktop package."
-	echo "Usage: $0 <git release tag>"
-	exit 1
-fi
-
-RIOT_WEB_SRC="https://raw.githubusercontent.com/vector-im/riot-desktop/$1"
-
-wget "$RIOT_WEB_SRC/package.json" -O riot-desktop-package.json
-wget "$RIOT_WEB_SRC/yarn.lock" -O riot-desktop-yarndeps.lock
-yarn2nix --lockfile=riot-desktop-yarndeps.lock > riot-desktop-yarndeps.nix
-rm riot-desktop-yarndeps.lock
diff --git a/pkgs/applications/networking/instant-messengers/ripcord/default.nix b/pkgs/applications/networking/instant-messengers/ripcord/default.nix
index f003bbec222..9055b51d975 100755
--- a/pkgs/applications/networking/instant-messengers/ripcord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ripcord/default.nix
@@ -5,12 +5,12 @@
 
 mkDerivation rec {
   pname = "ripcord";
-  version = "0.4.25";
+  version = "0.4.26";
 
   src = let
     appimage = fetchurl {
       url = "https://cancel.fm/dl/Ripcord-${version}-x86_64.AppImage";
-      sha256 = "17s4fxqirmzdw0sn9s9zyk90gr00ivsmz4s6i6knsq354zhy5fda";
+      sha256 = "0i9l21gyqga27ainzqp6icn8vbc22v1knq01pglgg1lg3p504ikq";
       name = "${pname}-${version}.AppImage";
     };
   in appimageTools.extract {
@@ -51,7 +51,8 @@ mkDerivation rec {
       --run "cd $out" \
       --set FONTCONFIG_FILE "${fontsConf}" \
       --prefix LD_LIBRARY_PATH ":" "${xorg.libXcursor}/lib" \
-      --prefix QT_XKB_CONFIG_ROOT ":" "${xorg.xkeyboardconfig}/share/X11/xkb"
+      --prefix QT_XKB_CONFIG_ROOT ":" "${xorg.xkeyboardconfig}/share/X11/xkb" \
+      --set RIPCORD_ALLOW_UPDATES 0
 
     runHook postInstall
   '';
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index d324de81149..c4eef754cd4 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -2,7 +2,9 @@
 , gnome2, gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig
 , dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite
 , libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsaLib
-, cups, expat, systemd, libnotify, libuuid, at-spi2-core, libappindicator-gtk3
+, cups, expat, libuuid, at-spi2-core, libappindicator-gtk3
+# Runtime dependencies:
+, systemd, libnotify, libdbusmenu
 # Unfortunately this also overwrites the UI language (not just the spell
 # checking language!):
 , hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE"
@@ -23,7 +25,7 @@ let
       else "");
 in stdenv.mkDerivation rec {
   pname = "signal-desktop";
-  version = "1.34.3"; # Please backport all updates to the stable channel.
+  version = "1.35.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:
@@ -33,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 = "1723h8fwclv07n5lcsqw3snmfhpigkrj609fayg0aycxgi3321h6";
+    sha256 = "1nxj7h8yrp2sbxxd49q9xdh1zsqixcd01i83lr492f4322cg1yjf";
   };
 
   nativeBuildInputs = [
@@ -79,8 +81,9 @@ in stdenv.mkDerivation rec {
   ];
 
   runtimeDependencies = [
-    systemd.lib
+    (lib.getLib systemd)
     libnotify
+    libdbusmenu
   ];
 
   unpackPhase = "dpkg-deb -x $src .";
diff --git a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index e7ba1e7f9aa..bdcaf3bd608 100644
--- a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -7,7 +7,7 @@ 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.60.0.76";
+  version = "8.63.0.76";
 
   rpath = stdenv.lib.makeLibraryPath [
     alsaLib
@@ -65,7 +65,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 = "1y919ki0c17vip90fln17impwky08qgprw0j1dgz239qqpwakn7a";
+        sha256 = "0gmrk1giabr53imiwdflf6ykwpcj2q5zn3bynvrncnhivsbvaavy";
       }
     else
       throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix
index ad831eb82a5..777aabf021b 100644
--- a/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , fetchurl
 , dpkg
+, undmg
 , makeWrapper
 , nodePackages
 , alsaLib
@@ -19,10 +20,12 @@
 , gnome2
 , gtk3
 , libappindicator-gtk3
+, libdrm
 , libnotify
 , libpulseaudio
 , libuuid
 , libxcb
+, mesa
 , nspr
 , nss
 , pango
@@ -32,21 +35,26 @@
 }:
 
 let
-
-  pname = "slack";
-
   inherit (stdenv.hostPlatform) system;
-
   throwSystem = throw "Unsupported system: ${system}";
 
-  sha256 = {
-    x86_64-darwin = "09daxnqxyccshkrmr7ysgjvgvgmlgd590ym68fz0l8n6ayfpkgw0";
-    x86_64-linux = "00ihhsgxm441nsmav7pq4n4y9s7p2r4x5dqld160658xyqi836cq";
+  pname = "slack";
+  version = {
+    x86_64-darwin = "4.8.0";
+    x86_64-linux = "4.8.0";
   }.${system} or throwSystem;
 
-  version = {
-    x86_64-darwin = "4.6.0";
-    x86_64-linux = "4.4.3";
+  src = let
+    base = "https://downloads.slack-edge.com";
+  in {
+    x86_64-darwin = fetchurl {
+      url = "${base}/releases/macos/${version}/prod/x64/Slack-${version}-macOS.dmg";
+      sha256 = "0k22w3c3brbc7ivmc5npqy8h7zxfgnbs7bqwii03psymm6sw53j2";
+    };
+    x86_64-linux = fetchurl {
+      url = "${base}/linux_releases/slack-desktop-${version}-amd64.deb";
+      sha256 = "0q8qpz5nwhps7y5gq1bl8hjw7vsk789srrv39hzc7jrl8f1bxzk0";
+    };
   }.${system} or throwSystem;
 
   meta = with stdenv.lib; {
@@ -58,11 +66,7 @@ let
   };
 
   linux = stdenv.mkDerivation rec {
-    inherit pname meta version;
-    src = fetchurl {
-      url = "https://downloads.slack-edge.com/linux_releases/slack-desktop-${version}-amd64.deb";
-      inherit sha256;
-    };
+    inherit pname version src meta;
 
     rpath = stdenv.lib.makeLibraryPath [
       alsaLib
@@ -81,10 +85,12 @@ let
       gnome2.GConf
       gtk3
       libappindicator-gtk3
+      libdrm
       libnotify
       libpulseaudio
       libuuid
       libxcb
+      mesa
       nspr
       nss
       pango
@@ -143,22 +149,17 @@ let
     '';
   };
 
-  darwin = stdenv.mkDerivation rec {
-    inherit pname meta version;
+  darwin = stdenv.mkDerivation {
+    inherit pname version src meta;
 
-    phases = [ "installPhase" ];
+    nativeBuildInputs = [ undmg ];
 
-    src = fetchurl {
-      url = "https://downloads.slack-edge.com/mac_releases/Slack-${version}-macOS.dmg";
-      inherit sha256;
-    };
+    sourceRoot = "Slack.app";
 
     installPhase = ''
-      /usr/bin/hdiutil mount -nobrowse -mountpoint slack-mnt $src
-      mkdir -p $out/Applications
-      cp -r ./slack-mnt/Slack.app $out/Applications
-      /usr/bin/hdiutil unmount slack-mnt
-      defaults write com.tinyspeck.slackmacgap SlackNoAutoUpdates -bool YES
+      mkdir -p $out/Applications/Slack.app
+      cp -R . $out/Applications/Slack.app
+      /usr/bin/defaults write com.tinyspeck.slackmacgap SlackNoAutoUpdates -bool YES
     '';
   };
 in if stdenv.isDarwin
diff --git a/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix b/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix
new file mode 100644
index 00000000000..5806a269104
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "ssh-chat";
+  version = "1.9";
+
+  goPackagePath = "github.com/shazow/ssh-chat";
+
+  src = fetchFromGitHub {
+    owner = "shazow";
+    repo = "ssh-chat";
+    rev = "v${version}";
+    sha256 = "04yszan6a7x9498s80xymf7wd10530yjrxcdw4czbplyhjdigxlg";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "Chat over SSH";
+    homepage = "https://github.com/shazow/ssh-chat";
+    license = licenses.mit;
+    maintainers = with maintainers; [ luc65r ];
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/ssh-chat/deps.nix b/pkgs/applications/networking/instant-messengers/ssh-chat/deps.nix
new file mode 100644
index 00000000000..4fc4b4b4909
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/ssh-chat/deps.nix
@@ -0,0 +1,84 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+  {
+    goPackagePath = "github.com/alexcesaro/log";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alexcesaro/log";
+      rev = "61e686294e58";
+      sha256 = "1ckd5crq9rd12wpclahg2q0wprfg0whd6k9zbfzzkr6l1qpmmfam";
+    };
+  }
+  {
+    goPackagePath = "github.com/howeyc/gopass";
+    fetch = {
+      type = "git";
+      url = "https://github.com/howeyc/gopass";
+      rev = "7cb4b85ec19c";
+      sha256 = "1qyhjd6wx409g9cq3xbpbl2xl41nm00mxzcxm5gbqdlwsd0z80rv";
+    };
+  }
+  {
+    goPackagePath = "github.com/jessevdk/go-flags";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jessevdk/go-flags";
+      rev = "v1.4.0";
+      sha256 = "0algnnigph27spgn655zm4723yfjxjjvlf4k14z9drj3682df25a";
+    };
+  }
+  {
+    goPackagePath = "github.com/shazow/rateio";
+    fetch = {
+      type = "git";
+      url = "https://github.com/shazow/rateio";
+      rev = "4461efc8bdc4";
+      sha256 = "1isy75cmm71q18mvs6xaizgdjqnn6pllkj4yvd42brfgfj84qz0w";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "884d27f42877";
+      sha256 = "1ka5kqpw3wr3iawwxq4swmrwbww6v1cmds86z1nm0qb8fvhvpslk";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev = "eb5bcb51f2a3";
+      sha256 = "17k4g8krxbl84gzcs275b7gsh66dzm15fdxivjnx9xz8q84l4kby";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "1957bb5e6d1f";
+      sha256 = "0imqk4l9785rw7ddvywyf8zn7k3ga6f17ky8rmf8wrri7nknr03f";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "v0.3.2";
+      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev = "90fa682c2a6e";
+      sha256 = "03ic2xsy51jw9749wl7gszdbz99iijbd2bckgygl6cm9w5m364ak";
+    };
+  }
+]
diff --git a/pkgs/applications/networking/instant-messengers/swift-im/default.nix b/pkgs/applications/networking/instant-messengers/swift-im/default.nix
index 953ce2809c4..c520835b1f0 100644
--- a/pkgs/applications/networking/instant-messengers/swift-im/default.nix
+++ b/pkgs/applications/networking/instant-messengers/swift-im/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, stdenv, fetchurl, pkgconfig, qttools, scons
+{ mkDerivation, stdenv, fetchurl, pkgconfig, qttools, sconsPackages
 , GConf, avahi, boost, hunspell, libXScrnSaver, libedit, libidn, libnatpmp, libxml2
 , lua, miniupnpc, openssl, qtbase, qtmultimedia, qtsvg, qtwebkit, qtx11extras, zlib
 }:
@@ -14,7 +14,7 @@ mkDerivation rec {
 
   patches = [ ./qt-5.11.patch ./scons.patch ];
 
-  nativeBuildInputs = [ pkgconfig qttools scons.py2 ];
+  nativeBuildInputs = [ pkgconfig qttools sconsPackages.scons_3_1_2 ];
 
   buildInputs = [
     GConf avahi boost hunspell libXScrnSaver libedit libidn libnatpmp libxml2
diff --git a/pkgs/applications/networking/instant-messengers/teams/default.nix b/pkgs/applications/networking/instant-messengers/teams/default.nix
index e3b664e5fc2..d58e27cc62b 100644
--- a/pkgs/applications/networking/instant-messengers/teams/default.nix
+++ b/pkgs/applications/networking/instant-messengers/teams/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   ];
 
   runtimeDependencies = [
-    systemd.lib
+    (lib.getLib systemd)
     pulseaudio
   ];
 
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index 5f5e0f9e9bf..7e932d74abc 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -19,12 +19,12 @@ with lib;
 
 mkDerivation rec {
   pname = "telegram-desktop";
-  version = "2.1.13";
+  version = "2.3.0";
 
   # Telegram-Desktop with submodules
   src = fetchurl {
     url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
-    sha256 = "0mq3f7faxn1hfkhv5n37y5iajjnm38s2in631046m0q7c4w3lrfi";
+    sha256 = "0yga4p36jrc5m3d8q2y2g0505c2v540w5hgcscapl4xj9hyb21dw";
   };
 
   postPatch = ''
@@ -52,14 +52,15 @@ mkDerivation rec {
 
   cmakeFlags = [
     "-Ddisable_autoupdate=ON"
-    # TODO: Officiall API credentials for Nixpkgs
-    # (see: https://github.com/NixOS/nixpkgs/issues/55271):
-    "-DTDESKTOP_API_TEST=ON"
+    # We're allowed to used the API ID of the Snap package:
+    "-DTDESKTOP_API_ID=611335"
+    "-DTDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c"
     "-DDESKTOP_APP_USE_PACKAGED_RLOTTIE=OFF"
     "-DDESKTOP_APP_USE_PACKAGED_VARIANT=OFF"
     "-DDESKTOP_APP_USE_PACKAGED_GSL=OFF"
     "-DTDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME=ON"
     "-DTDESKTOP_USE_PACKAGED_TGVOIP=OFF"
+    "-DDESKTOP_APP_DISABLE_WEBRTC_INTEGRATION=ON"
     #"-DDESKTOP_APP_SPECIAL_TARGET=\"\"" # TODO: Error when set to "": Bad special target '""'
     "-DTDESKTOP_LAUNCHER_BASENAME=telegramdesktop" # Note: This is the default
   ];
diff --git a/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix b/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
index bece4e467a3..2910c389daa 100644
--- a/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
+++ b/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, rpmextract, autoPatchelfHook
+{ stdenv, lib, fetchurl, rpmextract, autoPatchelfHook
 , xorg, gtk3, gnome2, nss, alsaLib, udev, libnotify
 , wrapGAppsHook }:
 
@@ -24,7 +24,7 @@ in stdenv.mkDerivation {
   ]) ++ [
     gtk3 nss alsaLib
   ];
-  runtimeDependencies = [ udev.lib libnotify ];
+  runtimeDependencies = [ (lib.getLib udev) libnotify ];
 
   unpackPhase = ''
     rpmextract $src
diff --git a/pkgs/applications/networking/instant-messengers/wavebox/default.nix b/pkgs/applications/networking/instant-messengers/wavebox/default.nix
index 1cd2df4c7ac..bdc8aabf61c 100644
--- a/pkgs/applications/networking/instant-messengers/wavebox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/wavebox/default.nix
@@ -40,7 +40,7 @@ in stdenv.mkDerivation {
     alsaLib gtk3 nss
   ];
 
-  runtimeDependencies = [ udev.lib libnotify ];
+  runtimeDependencies = [ (getLib udev) libnotify ];
 
   installPhase = ''
     mkdir -p $out/bin $out/opt/wavebox
diff --git a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
index 8d874c58191..48eb1ef202c 100644
--- a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
@@ -5,6 +5,7 @@
 , makeDesktopItem
 , makeWrapper
 , stdenv
+, lib
 , udev
 , wrapGAppsHook
 , cpio
@@ -20,13 +21,13 @@ let
   pname = "wire-desktop";
 
   version = {
-    x86_64-darwin = "3.18.3728";
-    x86_64-linux = "3.18.2925";
+    x86_64-darwin = "3.19.3799";
+    x86_64-linux = "3.19.2928";
   }.${system} or throwSystem;
 
   sha256 = {
-    x86_64-darwin = "0xi3k95yw59xsfavncc1giwxlwjz26z34qm3i604ksjjalvpzy5l";
-    x86_64-linux = "01g39hncj1w0zyfrzv4mgv8npwvx0g0lw99azyai99877b30bm8j";
+    x86_64-darwin = "1sv8n4g1pd4nwpwsg0m61zhrfjlh7sj29rnh46xjw1qg332g6cw9";
+    x86_64-linux = "038h1j59qfj5ckaxk823qpfflxay47v0jrqc0hmrdmnd2y59dpx7";
   }.${system} or throwSystem;
 
   meta = with stdenv.lib; {
@@ -107,7 +108,7 @@ let
     '';
 
     runtimeDependencies = [
-      udev.lib
+      (lib.getLib udev)
     ];
 
     postFixup = ''
diff --git a/pkgs/applications/networking/instant-messengers/ytalk/default.nix b/pkgs/applications/networking/instant-messengers/ytalk/default.nix
new file mode 100644
index 00000000000..8cb22aabc69
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/ytalk/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  pname = "ytalk";
+  version = "3.3.0";
+
+  src = fetchurl {
+    url = "ftp://ftp.ourproject.org/pub/ytalk/${pname}-${version}.tar.gz";
+    sha256 = "1d3jhnj8rgzxyxjwfa22vh45qwzjvxw1qh8fz6b7nfkj3zvk9jvf";
+  };
+
+  buildInputs = [ ncurses ];
+
+  meta = {
+    homepage    = "http://ytalk.ourproject.org";
+    description = "A terminal based talk client";
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ taeer ];
+    license     = stdenv.lib.licenses.gpl2Plus;
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index 6b00ebc3444..fde318c99ae 100644
--- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -6,7 +6,7 @@
 , qtquickcontrols2, qtscript, qtsvg , qttools, qtwayland, qtwebchannel
 , qtwebengine
 # Runtime
-, coreutils, libjpeg_turbo, pciutils, procps, utillinux
+, coreutils, faac, pciutils, procps, utillinux
 , pulseaudioSupport ? true, libpulseaudio ? null
 }:
 
@@ -15,11 +15,11 @@ assert pulseaudioSupport -> libpulseaudio != null;
 let
   inherit (stdenv.lib) concatStringsSep makeBinPath optional;
 
-  version = "5.1.418436.0628";
+  version = "5.1.422789.0705";
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
-      sha256 = "0qgjsc6880i5zn4ck57haidcq40w37sjpdrix4gf09986qcc8gmm";
+      sha256 = "1sc454xadxsbxxyb68qi7ac20yq0vymzzw1i07z19c9idfpjy75f";
     };
   };
 
@@ -40,7 +40,7 @@ in mkDerivation {
   nativeBuildInputs = [ autoPatchelfHook ];
 
   buildInputs = [
-    dbus glib libGL libX11 libXfixes libuuid libxcb libjpeg_turbo qtbase
+    dbus glib libGL libX11 libXfixes libuuid libxcb faac qtbase
     qtdeclarative qtgraphicaleffects qtlocation qtquickcontrols qtquickcontrols2
     qtscript qtwebchannel qtwebengine qtimageformats qtsvg qttools qtwayland
   ];
@@ -70,7 +70,10 @@ in mkDerivation {
       cp -ar ${files} $out/share/zoom-us
 
       # TODO Patch this somehow; tries to dlopen './libturbojpeg.so' from cwd
-      ln -s $(readlink -e "${libjpeg_turbo.out}/lib/libturbojpeg.so") $out/share/zoom-us/libturbojpeg.so
+      cp libturbojpeg.so $out/share/zoom-us/libturbojpeg.so
+
+      # Again, requires faac with a nonstandard filename.
+      ln -s $(readlink -e "${faac}/lib/libfaac.so") $out/share/zoom-us/libfaac1.so
 
       runHook postInstall
     '';
diff --git a/pkgs/applications/networking/instant-messengers/zulip/default.nix b/pkgs/applications/networking/instant-messengers/zulip/default.nix
index 1adfb71dd9b..c1ae0ce0a06 100644
--- a/pkgs/applications/networking/instant-messengers/zulip/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zulip/default.nix
@@ -5,12 +5,12 @@
 
 let
   pname = "zulip";
-  version = "5.2.0";
+  version = "5.4.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage";
-    sha256 = "0rgvllm1pzg6smyjrhh8v1ial0dvav0h2zccxp4p5nqmq6zdvs3h";
+    sha256 = "14p0nly144rivd9yk273asfjza5p9qncpbmh4qxnd4gq01f98igh";
     name="${pname}-${version}.AppImage";
   };
 
diff --git a/pkgs/applications/networking/insync/default.nix b/pkgs/applications/networking/insync/default.nix
index 773a07dd6c2..c864754403c 100644
--- a/pkgs/applications/networking/insync/default.nix
+++ b/pkgs/applications/networking/insync/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, makeWrapper }:
+{ stdenv, fetchurl, makeWrapper, autoPatchelfHook }:
 
 stdenv.mkDerivation rec {
   pname = "insync";
@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ makeWrapper ];
 
+  nativeBuildInputs = [ autoPatchelfHook ];
+
   postPatch = ''
     patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" client/insync-portable
   '';
diff --git a/pkgs/applications/networking/ipfs-cluster/default.nix b/pkgs/applications/networking/ipfs-cluster/default.nix
index ee9e368a659..09ab75aae94 100644
--- a/pkgs/applications/networking/ipfs-cluster/default.nix
+++ b/pkgs/applications/networking/ipfs-cluster/default.nix
@@ -7,6 +7,8 @@ buildGoModule rec {
 
   vendorSha256 = "00fkyxxi4iz16v0j33270x8qrspqpsv9j6csnikjy0klyb038pfq";
 
+  doCheck = false;
+
   src = fetchFromGitHub {
     owner = "ipfs";
     repo = "ipfs-cluster";
@@ -21,4 +23,4 @@ buildGoModule rec {
     platforms = platforms.unix;
     maintainers = with maintainers; [ jglukasik ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/ipfs-migrator/default.nix b/pkgs/applications/networking/ipfs-migrator/default.nix
index 7a9d8f63970..4b1d1213b01 100644
--- a/pkgs/applications/networking/ipfs-migrator/default.nix
+++ b/pkgs/applications/networking/ipfs-migrator/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "ipfs-migrator";
-  version = "1.5.1";
+  version = "1.6.3";
 
   src = fetchFromGitHub {
     owner = "ipfs";
     repo = "fs-repo-migrations";
     rev = "v${version}";
-    sha256 = "18pjxkxfbsbbj4hs4xyzfmmz991h31785ldx41dll6wa9zx4lsnm";
+    sha256 = "13ah5jk8n3wznvag6dda1ssgpqsdr9pdgvqm9gcsb7zzls89j9x5";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   meta = with lib; {
@@ -22,4 +24,4 @@ buildGoModule rec {
     platforms = platforms.unix;
     maintainers = with maintainers; [ elitak ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/ipget/default.nix b/pkgs/applications/networking/ipget/default.nix
index d137fcf296f..f16031e9dc8 100644
--- a/pkgs/applications/networking/ipget/default.nix
+++ b/pkgs/applications/networking/ipget/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0vy21pdqk6q5fw7wlcv51myhh9y79n2qhvy61rmblwhxlrkh6sdv";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Retrieve files over IPFS and save them locally";
     homepage = "https://ipfs.io/";
diff --git a/pkgs/applications/networking/irc/convos/default.nix b/pkgs/applications/networking/irc/convos/default.nix
index 5d497fe5139..7a30737c047 100644
--- a/pkgs/applications/networking/irc/convos/default.nix
+++ b/pkgs/applications/networking/irc/convos/default.nix
@@ -6,13 +6,13 @@ with stdenv.lib;
 
 perlPackages.buildPerlPackage rec {
   pname = "convos";
-  version = "4.22";
+  version = "4.33";
 
-  src = fetchFromGitHub rec {
+  src = fetchFromGitHub {
     owner = "Nordaaker";
     repo = pname;
     rev = version;
-    sha256 = "0a5wq88ncbn7kwcw3z4wdl1wxmx5vq5a7crb1bvbvskgwwy8zfx8";
+    sha256 = "0mxq4jpjk4vvhi5lqslj614dvk84iq12rsdyykxr8h9cnjjs57im";
   };
 
   nativeBuildInputs = [ makeWrapper ]
@@ -32,16 +32,20 @@ perlPackages.buildPerlPackage rec {
     patchShebangs script/convos
   '';
 
-  # A test fails since gethostbyaddr(127.0.0.1) fails to resolve to localhost in
-  # the sandbox, we replace the this out from a substitution expression
-  #
-  # Module::Install is a runtime dependency not covered by the tests, so we add
-  # a test for it.
-  #
   preCheck = ''
+    # Remove online test
+    #
+    rm t/web-pwa.t
+
+    # A test fails since gethostbyaddr(127.0.0.1) fails to resolve to localhost in
+    # the sandbox, we replace the this out from a substitution expression
+    #
     substituteInPlace t/web-register-open-to-public.t \
       --replace '!127.0.0.1!' '!localhost!'
 
+    # Module::Install is a runtime dependency not covered by the tests, so we add
+    # a test for it.
+    #
     echo "use Test::More tests => 1;require_ok('Module::Install')" \
       > t/00_nixpkgs_module_install.t
   '';
diff --git a/pkgs/applications/networking/irc/quassel/0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch b/pkgs/applications/networking/irc/quassel/0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch
new file mode 100644
index 00000000000..6c40dc8dd89
--- /dev/null
+++ b/pkgs/applications/networking/irc/quassel/0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch
@@ -0,0 +1,37 @@
+From ac9387271b2420a71f7d172f44354fc35adac504 Mon Sep 17 00:00:00 2001
+From: Manuel Nickschas <sputnick@quassel-irc.org>
+Date: Tue, 7 Jan 2020 18:34:54 +0100
+Subject: [PATCH] common: Disable enum type stream operators for Qt >= 5.14
+
+Starting from version 5.14, Qt provides stream operators for enum
+types, which collide with the ones we ship in types.h. Disable
+Quassel's stream operators when compiling against Qt 5.14 or later.
+
+(cherry-picked from 579e559a6322209df7cd51c34801fecff5fe734b)
+---
+ src/common/types.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/common/types.h b/src/common/types.h
+index 467d9fb2..c4b9f364 100644
+--- a/src/common/types.h
++++ b/src/common/types.h
+@@ -140,6 +140,7 @@ Q_DECLARE_METATYPE(QHostAddress)
+ typedef QList<MsgId> MsgIdList;
+ typedef QList<BufferId> BufferIdList;
+ 
++#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
+ /**
+  * Catch-all stream serialization operator for enum types.
+  *
+@@ -169,6 +170,7 @@ QDataStream &operator>>(QDataStream &in, T &value) {
+     value = static_cast<T>(v);
+     return in;
+ }
++#endif
+ 
+ // Exceptions
+ 
+-- 
+2.26.2
+
diff --git a/pkgs/applications/networking/irc/quassel/default.nix b/pkgs/applications/networking/irc/quassel/default.nix
index 86f7793819b..76743621fc7 100644
--- a/pkgs/applications/networking/irc/quassel/default.nix
+++ b/pkgs/applications/networking/irc/quassel/default.nix
@@ -43,6 +43,12 @@ in (if !buildClient then stdenv.mkDerivation else mkDerivation) rec {
     sha256 = "0z8p7iv90yrrjbh31cyxhpr6hsynfmi23rlayn7p2f6ki5az7yc3";
   };
 
+  patches = [
+    # fixes build with Qt 5.14
+    # source: https://github.com/quassel/quassel/pull/518/commits/8a46d983fc99204711cdff1e4c542e272fef45b9
+    ./0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch
+  ];
+
   enableParallelBuilding = true;
 
   # Prevent ``undefined reference to `qt_version_tag''' in SSL check
diff --git a/pkgs/applications/networking/irc/tiny/default.nix b/pkgs/applications/networking/irc/tiny/default.nix
index abb296d6474..d6b19fc77dd 100644
--- a/pkgs/applications/networking/irc/tiny/default.nix
+++ b/pkgs/applications/networking/irc/tiny/default.nix
@@ -6,6 +6,7 @@
 , pkg-config
 , dbus
 , openssl
+, Foundation
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -24,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   RUSTC_BOOTSTRAP = 1;
 
   nativeBuildInputs = lib.optional stdenv.isLinux pkg-config;
-  buildInputs = lib.optionals stdenv.isLinux [ dbus openssl ];
+  buildInputs = lib.optionals stdenv.isLinux [ dbus openssl ] ++ lib.optional stdenv.isDarwin Foundation;
 
   meta = with lib; {
     description = "A console IRC client";
diff --git a/pkgs/applications/networking/irc/weechat/default.nix b/pkgs/applications/networking/irc/weechat/default.nix
index a05ec290629..ea00669006b 100644
--- a/pkgs/applications/networking/irc/weechat/default.nix
+++ b/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 = "2.8";
+      version = "2.9";
       pname = "weechat";
 
       src = fetchurl {
         url = "https://weechat.org/files/src/weechat-${version}.tar.bz2";
-        sha256 = "0xpzl7985j47rpmly4r833jxd448xpy7chqphaxmhlql2c0gc08z";
+        sha256 = "12h4m4ag8cdab7q6f5n357mfg0fdayab1gcikncjkkid3bjd4r4g";
       };
 
       outputs = [ "out" "man" ] ++ map (p: p.name) enabledPlugins;
@@ -44,7 +44,7 @@ let
         "-DENABLE_JAVASCRIPT=OFF"  # Requires v8 <= 3.24.3, https://github.com/weechat/weechat/issues/360
         "-DENABLE_PHP=OFF"
       ]
-        ++ optionals stdenv.isDarwin ["-DICONV_LIBRARY=${libiconv}/lib/libiconv.dylib" "-DCMAKE_FIND_FRAMEWORK=LAST"]
+        ++ optionals stdenv.isDarwin ["-DICONV_LIBRARY=${libiconv}/lib/libiconv.dylib"]
         ++ map (p: "-D${p.cmakeFlag}=" + (if p.enabled then "ON" else "OFF")) plugins
         ;
 
@@ -78,7 +78,7 @@ let
           on https://nixos.org/nixpkgs/manual/#sec-weechat .
         '';
         license = stdenv.lib.licenses.gpl3;
-        maintainers = with stdenv.lib.maintainers; [ lovek323 lheckemann ma27 ];
+        maintainers = with stdenv.lib.maintainers; [ lovek323 lheckemann ];
         platforms = stdenv.lib.platforms.unix;
       };
     }
diff --git a/pkgs/applications/networking/irc/weechat/scripts/default.nix b/pkgs/applications/networking/irc/weechat/scripts/default.nix
index 0880a32af92..6d228688607 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/default.nix
@@ -7,6 +7,8 @@
 
   weechat-matrix = python3Packages.callPackage ./weechat-matrix { };
 
+  weechat-notify-send = python3Packages.callPackage ./weechat-notify-send { };
+
   wee-slack = callPackage ./wee-slack { };
 
   weechat-autosort = callPackage ./weechat-autosort { };
diff --git a/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix b/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix
index f1b075e6d08..5c734bf7de2 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
   meta = with stdenv.lib; {
     description = "A WeeChat script in Lua that implements the matrix.org chat protocol";
     homepage = "https://github.com/torhve/weechat-matrix-protocol-script";
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ ];
     license = licenses.mit; # see https://github.com/torhve/weechat-matrix-protocol-script/blob/0052e7275ae149dc5241226391c9b1889ecc3c6b/matrix.lua#L53
     platforms = platforms.unix;
 
diff --git a/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix b/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
new file mode 100644
index 00000000000..d219aa481cd
--- /dev/null
+++ b/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, libnotify }:
+
+stdenv.mkDerivation rec {
+  pname = "weechat-notify-send";
+  version = "0.9";
+
+  src = fetchFromGitHub {
+    owner = "s3rvac";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1693b7axm9ls5p7hm6kq6avddsisi491khr5irvswr5lpizvys6a";
+  };
+
+  passthru.scripts = [ "notify_send.py" ];
+
+  dontBuild = true;
+  doCheck = false;
+
+  installPhase = ''
+    install -D notify_send.py $out/share/notify_send.py
+    substituteInPlace $out/share/notify_send.py \
+      --replace "'notify-send'" "'${libnotify}/bin/notify-send'"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A WeeChat script that sends highlight and message notifications through notify-send";
+    homepage = "https://github.com/s3rvac/weechat-notify-srnd";
+    license = licenses.mit;
+    maintainers = with maintainers; [ tobim ];
+  };
+}
diff --git a/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix b/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix
index 9682aa3169a..c7f2958cf55 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix
@@ -8,14 +8,20 @@ let
 
   pycrypto = python3Packages.buildPythonPackage rec {
     pname = "pycrypto";
-    version = "2.6.1-10";
+    version = "2.6.1-13.1";
 
     src = fetchgit {
       url = "https://salsa.debian.org/sramacher/python-crypto.git";
       rev = "debian/${version}";
-      sha256 = "10rgq8bmjfpiqqa1g1p1hh7pxlxs7x0nawvk6zip0pd6x2vsr661";
+      sha256 = "1mahqmlgilgk0rn5hfkhza7kscfm7agdakkb6rqnif9g0qp3s52f";
     };
 
+    postPatch = ''
+      for p in debian/patches/*.patch; do
+        patch -p1 < "$p"
+      done
+    '';
+
     buildInputs = [ gmp ];
 
     preConfigure = ''
@@ -58,7 +64,7 @@ in stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     homepage = "https://github.com/mmb/weechat-otr";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
     description = "WeeChat script for Off-the-Record messaging";
   };
 }
diff --git a/pkgs/applications/networking/mailreaders/aerc/default.nix b/pkgs/applications/networking/mailreaders/aerc/default.nix
index 5609b48671c..9a607b54b9c 100644
--- a/pkgs/applications/networking/mailreaders/aerc/default.nix
+++ b/pkgs/applications/networking/mailreaders/aerc/default.nix
@@ -13,21 +13,10 @@ buildGoModule rec {
     sha256 = "05qy14k9wmyhsg1hiv4njfx1zn1m9lz4d1p50kc36v7pq0n4csfk";
   };
 
-  libvterm = fetchFromGitHub {
-    owner = "ddevault";
-    repo = "go-libvterm";
-    rev = "b7d861da381071e5d3701e428528d1bfe276e78f";
-    sha256 = "06vv4pgx0i6hjdjcar4ch18hp9g6q6687mbgkvs8ymmbacyhp7s6";
-  };
-
-  vendorSha256 = "1rqn36510m0yb7k4bvq2hgirr3z8a2h5xa7cq5mb84xsmhvf0g69";
+  runVend = true;
+  vendorSha256 = "13zs5113ip85yl6sw9hzclxwlnrhy18d39vh9cwbq97dgnh9rz89";
 
-  overrideModAttrs = (_: {
-      postBuild = ''
-      cp -r --reflink=auto ${libvterm}/libvterm vendor/github.com/ddevault/go-libvterm
-      cp -r --reflink=auto ${libvterm}/encoding vendor/github.com/ddevault/go-libvterm
-      '';
-    });
+  doCheck = false;
 
   nativeBuildInputs = [
     scdoc
@@ -44,8 +33,6 @@ buildGoModule rec {
 
   buildInputs = [ python3 notmuch ];
 
-  GOFLAGS="-tags=notmuch";
-
   buildPhase = "
     runHook preBuild
     # we use make instead of go build
@@ -54,7 +41,7 @@ buildGoModule rec {
 
   installPhase = ''
     runHook preInstall
-    make PREFIX=$out install
+    make PREFIX=$out GOFLAGS="$GOFLAGS -tags=notmuch" install
     wrapPythonProgramsIn $out/share/aerc/filters "$out $pythonPath"
     runHook postInstall
   '';
@@ -73,4 +60,4 @@ buildGoModule rec {
     license = licenses.mit;
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/mailreaders/alpine/default.nix b/pkgs/applications/networking/mailreaders/alpine/default.nix
index cfaa7dcd4af..a85e4e4d04c 100644
--- a/pkgs/applications/networking/mailreaders/alpine/default.nix
+++ b/pkgs/applications/networking/mailreaders/alpine/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "alpine";
-  version = "2.21";
+  version = "2.23";
 
   src = fetchurl {
     url = "http://alpine.x10host.com/alpine/release/src/${pname}-${version}.tar.xz";
-    sha256 = "0f3llxrmaxw7w9w6aixh752md3cdc91mwfmbarkm8s413f4bcc30";
+    sha256 = "0yqzm56lqgg8v66m09vqxjvpclli4pql5xj8zg7mynq0bhhn2fkr";
   };
 
   buildInputs = [
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--with-ssl-include-dir=${openssl.dev}/include/openssl"
     "--with-passfile=.pine-passfile"
+    "--with-c-client-target=slx"
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
index 5f5e66597ac..a000cad4708 100644
--- a/pkgs/applications/networking/mailreaders/claws-mail/default.nix
+++ b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -30,11 +30,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "claws-mail";
-  version = "3.17.5";
+  version = "3.17.6";
 
   src = fetchurl {
     url = "http://www.claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz";
-    sha256 = "1gjrmdmhc7zzilrlss9yl86ybv9sra8v0qi7mkwv7d9azidx5kns";
+    sha256 = "1s05qw0r0gqwvvkxvrrwbjkbi61dvilixiwrpgcq21qc9csc9r0m";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix b/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
new file mode 100644
index 00000000000..26d8fb1aab8
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, gnome3, cmake, gettext, intltool, pkg-config, evolution-data-server
+, sqlite, gtk3, webkitgtk, libgdata, libmspack }:
+
+stdenv.mkDerivation rec {
+  pname = "evolution-ews";
+  version = "3.36.5";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0h1wz4hxsasihdvvsaxnmzka4afjw7603gn0qcw8rxpw114ib1bl";
+  };
+
+  nativeBuildInputs = [ cmake gettext intltool pkg-config ];
+
+  buildInputs = [
+    evolution-data-server gnome3.evolution
+    sqlite libgdata
+    gtk3 webkitgtk
+    libmspack
+  ];
+
+  # Building with libmspack as reccommended: https://wiki.gnome.org/Apps/Evolution/Building#Build_evolution-ews
+  cmakeFlags = [
+    "-DWITH_MSPACK=ON"
+  ];
+
+  PKG_CONFIG_EVOLUTION_SHELL_3_0_ERRORDIR = "${placeholder "out"}/share/evolution/errors";
+  PKG_CONFIG_EVOLUTION_SHELL_3_0_PRIVLIBDIR = "${placeholder "out"}/lib/evolution";
+  PKG_CONFIG_CAMEL_1_2_CAMEL_PROVIDERDIR = "${placeholder "out"}/lib/evolution-data-server/camel-providers";
+  PKG_CONFIG_LIBEDATA_BOOK_1_2_BACKENDDIR = "${placeholder "out"}/lib/evolution-data-server/addressbook-backends";
+  PKG_CONFIG_LIBEDATA_CAL_2_0_BACKENDDIR = "${placeholder "out"}/lib/evolution-data-server/calendar-backends";
+  PKG_CONFIG_LIBEBACKEND_1_2_MODULEDIR = "${placeholder "out"}/lib/evolution-data-server/registry-modules";
+  PKG_CONFIG_EVOLUTION_SHELL_3_0_MODULEDIR = "${placeholder "out"}/lib/evolution/modules";
+  PKG_CONFIG_EVOLUTION_DATA_SERVER_1_2_PRIVDATADIR = "${placeholder "out"}/share/evolution-data-server";
+
+   passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "evolution-ews";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "Evolution connector for Microsoft Exchange Server protocols.";
+    homepage = "https://gitlab.gnome.org/GNOME/evolution-ews";
+    license = "LGPL-2.1-only OR LGPL-3.0-only"; # https://gitlab.gnome.org/GNOME/evolution-ews/issues/111
+    maintainers = [ maintainers.dasj19 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/mailreaders/hasmail/default.nix b/pkgs/applications/networking/mailreaders/hasmail/default.nix
index b02788e6772..a097fd0dd8a 100644
--- a/pkgs/applications/networking/mailreaders/hasmail/default.nix
+++ b/pkgs/applications/networking/mailreaders/hasmail/default.nix
@@ -21,6 +21,8 @@ buildGoModule rec {
 
   vendorSha256 = "0sblgjmn3i3k31jfq5zy3bx7bv5z2cg6rjzr7aj87c57yhzzcmk7";
 
+  doCheck = false;
+
   nativeBuildInputs = [
     pkgconfig
   ];
@@ -36,6 +38,5 @@ buildGoModule rec {
     homepage = "https://github.com/jonhoo/hasmail";
     license = licenses.unlicense;
     maintainers = with maintainers; [ doronbehar ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/mailreaders/mailnag/default.nix b/pkgs/applications/networking/mailreaders/mailnag/default.nix
index 5747da36b34..6d315049d24 100644
--- a/pkgs/applications/networking/mailreaders/mailnag/default.nix
+++ b/pkgs/applications/networking/mailreaders/mailnag/default.nix
@@ -1,8 +1,10 @@
-{ stdenv
+{ lib
+, callPackage
 , fetchFromGitHub
 , gettext
+, xorg # for lndir
 , gtk3
-, pythonPackages
+, python3Packages
 , gdk-pixbuf
 , libnotify
 , gst_all_1
@@ -11,9 +13,16 @@
 , gsettings-desktop-schemas
 , glib
 , gobject-introspection
+# Available plugins (can be overriden)
+, availablePlugins
+# Used in the withPlugins interface at passthru, can be overrided directly, or
+# prefarably via e.g: `mailnag.withPlugins(["goa"])`
+, mailnag
+, userPlugins ? [ ]
+, pluginsDeps ? [ ]
 }:
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "mailnag";
   version = "2.0.0";
 
@@ -23,14 +32,6 @@ pythonPackages.buildPythonApplication rec {
     rev = "v${version}";
     sha256 = "0q97v9i96br22z3h6r2mz79i68ib8m8x42yxky78szfrf8j60i30";
   };
-  preFixup = ''
-    substituteInPlace $out/${pythonPackages.python.sitePackages}/Mailnag/common/dist_cfg.py \
-      --replace "/usr/" $out/
-    for desktop_file in $out/share/applications/*.desktop; do
-      substituteInPlace "$desktop_file" \
-      --replace "/usr/bin" $out/bin
-    done
-  '';
 
   buildInputs = [
     gtk3
@@ -43,21 +44,58 @@ pythonPackages.buildPythonApplication rec {
     gst_all_1.gst-plugins-bad
     gobject-introspection
     libsecret
-  ];
+  ] ++ pluginsDeps;
 
   nativeBuildInputs = [
     gettext
     wrapGAppsHook
+    # To later add plugins to 
+    xorg.lndir
   ];
 
-  propagatedBuildInputs = with pythonPackages; [
+  propagatedBuildInputs = with python3Packages; [
     gsettings-desktop-schemas
     pygobject3
     dbus-python
     pyxdg
   ];
 
-  meta = with stdenv.lib; {
+  passthru = {
+    inherit availablePlugins;
+    withPlugins =
+      plugs:
+      let
+        # goa plugin requires gio's gnome-online-accounts which requires making sure
+        # mailnag runs with GI_TYPELIB_PATH containing the path to Goa-1.0.typelib.
+        # This is handled best by adding the plugins' deps to buildInputs and let
+        # wrapGAppsHook handle that.
+        pluginsDeps = lib.flatten (lib.catAttrs "buildInputs" plugs);
+        self = mailnag;
+      in
+        self.override { userPlugins = plugs; };
+  };
+
+  # See https://nixos.org/nixpkgs/manual/#ssec-gnome-common-issues-double-wrapped
+  dontWrapGApps = true;
+
+  preFixup = ''
+    substituteInPlace $out/${python3Packages.python.sitePackages}/Mailnag/common/dist_cfg.py \
+      --replace "/usr/" $out/
+    for desktop_file in $out/share/applications/*.desktop; do
+      substituteInPlace "$desktop_file" \
+      --replace "/usr/bin" $out/bin
+    done
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  # Actually install plugins
+  postInstall = ''
+    for plug in ${builtins.toString userPlugins}; do
+      lndir $plug/${python3Packages.python.sitePackages} $out/${python3Packages.python.sitePackages}
+    done
+  '';
+
+  meta = with lib; {
     description = "An extensible mail notification daemon";
     homepage = "https://github.com/pulb/mailnag";
     license = licenses.gpl2;
diff --git a/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix b/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix
new file mode 100644
index 00000000000..b2eccdc134b
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, fetchFromGitHub
+, python3Packages
+, gobject-introspection
+, gnome-online-accounts
+}:
+
+python3Packages.buildPythonPackage rec {
+  pname = "mailnag-goa-plugin";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "pulb";
+    repo = "mailnag-goa-plugin";
+    rev = "v${version}";
+    sha256 = "0bij6cy96nhq7xzslx0fnhmiac629h0x4wgy67k4i4npwqw10680";
+  };
+
+  buildInputs = [
+    gobject-introspection
+    gnome-online-accounts
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Mailnag GNOME Online Accounts plugin.";
+    homepage = "https://github.com/pulb/mailnag-goa-plugin";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/applications/networking/mailreaders/mailspring/default.nix b/pkgs/applications/networking/mailreaders/mailspring/default.nix
new file mode 100644
index 00000000000..6c6bf6f93db
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/mailspring/default.nix
@@ -0,0 +1,85 @@
+{ stdenv
+, lib
+, fetchurl
+, autoPatchelfHook
+, alsaLib
+, coreutils
+, db
+, dpkg
+, glib
+, gtk3
+, libkrb5
+, libsecret
+, nss
+, openssl
+, udev
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mailspring";
+  version = "1.7.8";
+
+  src = fetchurl {
+    url = "https://github.com/Foundry376/Mailspring/releases/download/${version}/mailspring-${version}-amd64.deb";
+    sha256 = "207fbf813b6da018a5b848e5dc1194b5996daab39adbd873b2cecb0565c105ce";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+  ];
+
+  buildInputs = [
+    alsaLib
+    db
+    glib
+    gtk3
+    libkrb5
+    libsecret
+    nss
+    xorg.libxkbfile
+    xorg.libXScrnSaver
+    xorg.libXtst
+  ];
+
+  runtimeDependencies = [
+    coreutils
+    openssl
+    (lib.getLib udev)
+  ];
+
+  unpackPhase = ''
+    dpkg -x $src .
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{bin,lib}
+    cp -ar ./usr/share $out
+
+    substituteInPlace $out/share/mailspring/resources/app.asar.unpacked/mailsync \
+      --replace realpath ${coreutils}/bin/realpath \
+      --replace dirname ${coreutils}/bin/dirname
+
+    ln -s $out/share/mailspring/mailspring $out/bin/mailspring
+    ln -s ${openssl.out}/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
+  '';
+
+  postFixup = /* sh */ ''
+    substituteInPlace $out/share/applications/mailspring.desktop \
+      --replace /usr/bin $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A beautiful, fast and maintained fork of Nylas Mail by one of the original authors";
+    longDescription = ''
+      Mailspring is an open-source mail client forked from Nylas Mail and built with Electron.
+      Mailspring's sync engine runs locally, but its source is not open.
+    '';
+    license = licenses.unfree;
+    maintainers = with maintainers; [ toschmidt ];
+    homepage = "https://getmailspring.com";
+    downloadPage = "https://github.com/Foundry376/Mailspring";
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/pkgs/applications/networking/mailreaders/meli/default.nix b/pkgs/applications/networking/mailreaders/meli/default.nix
index 719965455f9..1a6ae282a8d 100644
--- a/pkgs/applications/networking/mailreaders/meli/default.nix
+++ b/pkgs/applications/networking/mailreaders/meli/default.nix
@@ -15,15 +15,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "meli";
-  version = "alpha-0.5.1";
+  version = "alpha-0.6.1";
 
   src = fetchgit {
     url = "https://git.meli.delivery/meli/meli.git";
     rev = version;
-    sha256 = "1y5567hdm1s2s272drxvmp6x4y1jpyl7423iz58hgqcsjm9085zv";
+    sha256 = "0fs3wccbdfxf4nmx9l5wy7qpjk4r11qg0fc59y0pdvjrrslcjsds";
   };
 
-  cargoSha256 = "040dfr09bg5z5pn68dy323hcppd599d3f6k7zxqw5f8n4whnlc9y";
+  cargoSha256 = "sha256:19j7jrizp7yifmqwrmnv66pka7131jl7ks4zgs3nr5gbb28zvdrz";
 
   cargoBuildFlags = lib.optional withNotmuch "--features=notmuch";
 
@@ -44,7 +44,7 @@ rustPlatform.buildRustPackage rec {
     description = "Experimental terminal mail client aiming for configurability and extensibility with sane defaults";
     homepage = "https://meli.delivery";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ maintainers."0x4A6F" matthiasbeyer erictapen ];
+    maintainers = with maintainers; [ _0x4A6F matthiasbeyer erictapen ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index a6acea9d1cb..0b18a579e3b 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -27,11 +27,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "mutt";
-  version = "1.14.5";
+  version = "1.14.7";
 
   src = fetchurl {
     url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
-    sha256 = "0p1xiqzmkqlzy5yi4l0dh0lacdq300zdj48zk0fir8j1pp512sri";
+    sha256 = "0r58xnjgkw0kmnnzhb32mk5gkkani5kbi5krybpbag156fqhgxg4";
   };
 
   patches = optional smimeSupport (fetchpatch {
diff --git a/pkgs/applications/networking/mailreaders/neomutt/default.nix b/pkgs/applications/networking/mailreaders/neomutt/default.nix
index 5a567863ab5..84c81ecff64 100644
--- a/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -5,14 +5,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "20200626";
+  version = "20200821";
   pname = "neomutt";
 
   src = fetchFromGitHub {
     owner  = "neomutt";
     repo   = "neomutt";
     rev    = version;
-    sha256 = "0r16fy02z61dbjdxc28yzj5i4f6r7aakh453gaqc8ilm1nsxhmnp";
+    sha256 = "0l66xf6qp2fdhm5h2v58bbc73pwj72c80mriqac9pfyjh5padir5";
   };
 
   buildInputs = [
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
     # allow neomutt to map attachments to their proper mime.types if specified wrongly
     # and use a far more comprehensive list than the one shipped with neomutt
-    substituteInPlace sendlib.c \
+    substituteInPlace send/sendlib.c \
       --replace /etc/mime.types ${mailcap}/etc/mime.types
   '';
 
diff --git a/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix b/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
index 0b2a76cc00f..214f4311e69 100644
--- a/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "notmuch-bower";
-  version = "0.11";
+  version = "0.12";
 
   src = fetchFromGitHub {
     owner = "wangp";
     repo = "bower";
     rev = version;
-    sha256 = "0vhac8yjnhb1gz60jfzg27spyn96c1rr849gc6vjym5xamw7zp0v";
+    sha256 = "0hvvlbvad6h73iiyn9xshlj073p2ddchgh0pyizh9gi8niir4fn5";
   };
 
   nativeBuildInputs = [ gawk mercury pandoc ];
diff --git a/pkgs/applications/networking/mailreaders/notmuch/default.nix b/pkgs/applications/networking/mailreaders/notmuch/default.nix
index 26f47dba461..87053780073 100644
--- a/pkgs/applications/networking/mailreaders/notmuch/default.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv
+{ fetchurl, fetchgit, stdenv
 , pkgconfig, gnupg
 , xapian, gmime, talloc, zlib
 , doxygen, perl, texinfo
@@ -12,17 +12,18 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "0.29.3";
+  version = "0.30.1c80020";
   pname = "notmuch";
 
   passthru = {
-    pythonSourceRoot = "${pname}-${version}/bindings/python";
+    pythonSourceRoot = "${src.name}/bindings/python";
     inherit version;
   };
 
-  src = fetchurl {
-    url = "https://notmuchmail.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "0dfwa38vgnxk9cvvpza66szjgp8lir6iz6yy0cry9593lywh9xym";
+  src = fetchgit {
+    url = "https://git.notmuchmail.org/git/notmuch";
+    sha256 = "0xj944c4ayps1bg21pksjih3y9v6lb34dd582df14i14q0yzji51";
+    rev = "1c80020e701c7323de137c0616fc8864443d7bd3";
   };
 
   nativeBuildInputs = [
@@ -75,6 +76,7 @@ stdenv.mkDerivation rec {
       sha256 = "1lk91s00y4qy4pjh8638b5lfkgwyl282g1m27srsf7qfn58y16a2";
     };
   in ''
+    mkdir -p test/test-databases
     ln -s ${test-database} test/test-databases/database-v1.tar.xz
   '';
   doCheck = !stdenv.hostPlatform.isDarwin && (versionAtLeast gmime.version "3.0.3");
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix
new file mode 100644
index 00000000000..be937ab588d
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix
@@ -0,0 +1,183 @@
+# This pakcage is keeped until Thunderbird 78 supports OpenPGP.
+# https://www.thunderbird.net/en-US/thunderbird/78.0.1/releasenotes/
+{ stdenv, fetchurl, config, makeWrapper
+, alsaLib
+, at-spi2-atk
+, atk
+, cairo
+, cups
+, curl
+, dbus-glib
+, dbus
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, glibc
+, gtk2
+, gtk3
+, kerberos
+, libX11
+, libXScrnSaver
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXext
+, libXfixes
+, libXi
+, libXinerama
+, libXrender
+, libXt
+, libxcb
+, libcanberra
+, gnome3
+, libGLU, libGL
+, nspr
+, nss
+, pango
+, writeScript
+, xidel
+, coreutils
+, gnused
+, gnugrep
+, gnupg
+, runtimeShell
+}:
+
+# imports `version` and `sources`
+with (import ./68_sources.nix);
+
+let
+  arch = if stdenv.hostPlatform.system == "i686-linux"
+    then "linux-i686"
+    else "linux-x86_64";
+
+  isPrefixOf = prefix: string:
+    builtins.substring 0 (builtins.stringLength prefix) string == prefix;
+
+  sourceMatches = locale: source:
+      (isPrefixOf source.locale locale) && source.arch == arch;
+
+  systemLocale = config.i18n.defaultLocale or "en-US";
+
+  defaultSource = stdenv.lib.findFirst (sourceMatches "en-US") {} sources;
+
+  source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources;
+
+  name = "thunderbird-bin-${version}";
+in
+
+stdenv.mkDerivation {
+  inherit name;
+
+  src = fetchurl {
+    url = "https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/${version}/${source.arch}/${source.locale}/thunderbird-${version}.tar.bz2";
+    inherit (source) sha256;
+  };
+
+  phases = "unpackPhase installPhase";
+
+  libPath = stdenv.lib.makeLibraryPath
+    [ stdenv.cc.cc
+      alsaLib
+      at-spi2-atk
+      atk
+      cairo
+      cups
+      curl
+      dbus-glib
+      dbus
+      fontconfig
+      freetype
+      gdk-pixbuf
+      glib
+      glibc
+      gtk2
+      gtk3
+      kerberos
+      libX11
+      libXScrnSaver
+      libXcomposite
+      libXcursor
+      libXdamage
+      libXext
+      libXfixes
+      libXi
+      libXinerama
+      libXrender
+      libXt
+      libxcb
+      libcanberra
+      libGLU libGL
+      nspr
+      nss
+      pango
+    ] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [
+      stdenv.cc.cc
+    ];
+
+  buildInputs = [ gtk3 gnome3.adwaita-icon-theme ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase =
+    ''
+      mkdir -p "$prefix/usr/lib/thunderbird-bin-${version}"
+      cp -r * "$prefix/usr/lib/thunderbird-bin-${version}"
+
+      mkdir -p "$out/bin"
+      ln -s "$prefix/usr/lib/thunderbird-bin-${version}/thunderbird" "$out/bin/"
+
+      for executable in \
+        thunderbird crashreporter thunderbird-bin plugin-container updater
+      do
+        patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+          "$out/usr/lib/thunderbird-bin-${version}/$executable"
+      done
+
+      find . -executable -type f -exec \
+        patchelf --set-rpath "$libPath" \
+          "$out/usr/lib/thunderbird-bin-${version}/{}" \;
+
+      # Create a desktop item.
+      mkdir -p $out/share/applications
+      cat > $out/share/applications/thunderbird.desktop <<EOF
+      [Desktop Entry]
+      Type=Application
+      Exec=$out/bin/thunderbird
+      Icon=$out/usr/lib/thunderbird-bin-${version}/chrome/icons/default/default256.png
+      Name=Thunderbird
+      GenericName=Mail Reader
+      Categories=Application;Network;
+      EOF
+
+      # SNAP_NAME: https://github.com/NixOS/nixpkgs/pull/61980
+      # MOZ_LEGACY_PROFILES and MOZ_ALLOW_DOWNGRADE:
+      #   commit 87e261843c4236c541ee0113988286f77d2fa1ee
+      wrapProgram "$out/bin/thunderbird" \
+        --argv0 "$out/bin/.thunderbird-wrapped" \
+        --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:" \
+        --suffix XDG_DATA_DIRS : "$XDG_ICON_DIRS" \
+        --set SNAP_NAME "thunderbird" \
+        --set MOZ_LEGACY_PROFILES 1 \
+        --set MOZ_ALLOW_DOWNGRADE 1
+    '';
+
+  passthru.updateScript = import ./../../browsers/firefox-bin/update.nix {
+    inherit name writeScript xidel coreutils gnused gnugrep curl gnupg runtimeShell;
+    baseName = "thunderbird";
+    channel = "release";
+    basePath = "pkgs/applications/networking/mailreaders/thunderbird-bin";
+    baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/";
+  };
+  meta = with stdenv.lib; {
+    description = "Mozilla Thunderbird, a full-featured email client (binary package)";
+    homepage = "http://www.mozilla.org/thunderbird/";
+    license = {
+      free = false;
+      url = "http://www.mozilla.org/en-US/foundation/trademarks/policy/";
+    };
+    maintainers = with stdenv.lib.maintainers; [ ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/68_sources.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/68_sources.nix
new file mode 100644
index 00000000000..c48a6d1c606
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/68_sources.nix
@@ -0,0 +1,615 @@
+{
+  version = "68.12.0";
+  sources = [
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ar/thunderbird-68.12.0.tar.bz2";
+      locale = "ar";
+      arch = "linux-x86_64";
+      sha256 = "70cfb9e6a7a1f285f37a8f13c9a010237e6aabf815b77a12f54ee0deedd36400";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ast/thunderbird-68.12.0.tar.bz2";
+      locale = "ast";
+      arch = "linux-x86_64";
+      sha256 = "5645657f20d37ffdb11f383f164f03c66ed2024244849b09bfa60075d5d07490";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/be/thunderbird-68.12.0.tar.bz2";
+      locale = "be";
+      arch = "linux-x86_64";
+      sha256 = "d38cdcc2ba4534c23a1bb42b93f271623c497f48e1d255a23bf12a368ff339bd";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/bg/thunderbird-68.12.0.tar.bz2";
+      locale = "bg";
+      arch = "linux-x86_64";
+      sha256 = "c8883242683dec57f9db502d96d2036ec46753f474a33c0f1ae31f97f2c3113c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/br/thunderbird-68.12.0.tar.bz2";
+      locale = "br";
+      arch = "linux-x86_64";
+      sha256 = "cfb669e2378f97689a14f23e2c55ef4987e2508695eb195be3af75ed1d648345";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ca/thunderbird-68.12.0.tar.bz2";
+      locale = "ca";
+      arch = "linux-x86_64";
+      sha256 = "9ae4b43e0d5d9edd83291f0be7d53d07e5c84f1d0ad4348654136543b7b53a54";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/cak/thunderbird-68.12.0.tar.bz2";
+      locale = "cak";
+      arch = "linux-x86_64";
+      sha256 = "d6d635a15b913679ed943c3501dd03140d099ff36b48c8731a47eacda1b5232b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/cs/thunderbird-68.12.0.tar.bz2";
+      locale = "cs";
+      arch = "linux-x86_64";
+      sha256 = "616fbf24e36d63ce3cbc957d69b8972d517524c613a22bedcf5b57534f9a9a41";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/cy/thunderbird-68.12.0.tar.bz2";
+      locale = "cy";
+      arch = "linux-x86_64";
+      sha256 = "548c51228d2f3003bb94e1bee91cea0d2edb95bd0f86ee4259c8daef90a2dca8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/da/thunderbird-68.12.0.tar.bz2";
+      locale = "da";
+      arch = "linux-x86_64";
+      sha256 = "ad0e4b7a693d881b8875a5b8cc3e607a3883df759278129f0933522b9a6acd24";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/de/thunderbird-68.12.0.tar.bz2";
+      locale = "de";
+      arch = "linux-x86_64";
+      sha256 = "bf9b70b345ffe5df03365d819c5abc3339ed3af4d8a716cdfe7099134864a9b4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/dsb/thunderbird-68.12.0.tar.bz2";
+      locale = "dsb";
+      arch = "linux-x86_64";
+      sha256 = "a2cd7ffb0e8b4c3d1715c18e636d0dcd5efa245200d6d0f14048fc4b399b8121";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/el/thunderbird-68.12.0.tar.bz2";
+      locale = "el";
+      arch = "linux-x86_64";
+      sha256 = "07836ce122936848e26cd5a1522967760bee67654582076c53e4ec183cc4c40e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/en-GB/thunderbird-68.12.0.tar.bz2";
+      locale = "en-GB";
+      arch = "linux-x86_64";
+      sha256 = "c89fa35af79eca3cc26b492c602a3f8af0dbaf6ce4ee3af93d93f10daf4e9d6e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/en-US/thunderbird-68.12.0.tar.bz2";
+      locale = "en-US";
+      arch = "linux-x86_64";
+      sha256 = "6eeea0de838909f91da7270e42ae1513d2b801f412fc758f2f8c682d260a7c24";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/es-AR/thunderbird-68.12.0.tar.bz2";
+      locale = "es-AR";
+      arch = "linux-x86_64";
+      sha256 = "e9d84032a91f7feb2db3d22a500c564f273c2b637f97aaab2edf3209b93dda1d";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/es-ES/thunderbird-68.12.0.tar.bz2";
+      locale = "es-ES";
+      arch = "linux-x86_64";
+      sha256 = "a986e8a48b59354421193f2dd01e3c291fb6c98031af43531e723dc217a43d4a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/et/thunderbird-68.12.0.tar.bz2";
+      locale = "et";
+      arch = "linux-x86_64";
+      sha256 = "2f7508e83aba4fd64a817c7eb4b44d4ea9371956339a009ba541bf3a349693cf";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/eu/thunderbird-68.12.0.tar.bz2";
+      locale = "eu";
+      arch = "linux-x86_64";
+      sha256 = "edbc5ff4ba45106233cdbf5255405c4ee52ba7e6811736958323a616881b943f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/fi/thunderbird-68.12.0.tar.bz2";
+      locale = "fi";
+      arch = "linux-x86_64";
+      sha256 = "f4ad740a724efdbfec54445304ca75e9a16e0881bc18789b8ea35632d8857d4b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/fr/thunderbird-68.12.0.tar.bz2";
+      locale = "fr";
+      arch = "linux-x86_64";
+      sha256 = "ebf60a227c9fe5237eff22fb81f3c8bc02a593de823d6f0ad9b67f07af129dea";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/fy-NL/thunderbird-68.12.0.tar.bz2";
+      locale = "fy-NL";
+      arch = "linux-x86_64";
+      sha256 = "b12983077a62c5bf7353f50dd951348a457ce07f5beb2a579f199c4d77ed0906";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ga-IE/thunderbird-68.12.0.tar.bz2";
+      locale = "ga-IE";
+      arch = "linux-x86_64";
+      sha256 = "aa7c3a4b54fd6fef0f120a6748c45a3f379268f31e087cb3df07d270bf060bad";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/gd/thunderbird-68.12.0.tar.bz2";
+      locale = "gd";
+      arch = "linux-x86_64";
+      sha256 = "39fadb2bd4c01da0eb188cb9f52ccd726ec9f7eb5ced44e2a30ee0cfac2527bf";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/gl/thunderbird-68.12.0.tar.bz2";
+      locale = "gl";
+      arch = "linux-x86_64";
+      sha256 = "b4ee1f89b0326b22fc7a5b980b857c2652d6881d096060a8bc083015b47762d8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/he/thunderbird-68.12.0.tar.bz2";
+      locale = "he";
+      arch = "linux-x86_64";
+      sha256 = "cefbc742672942e310dc9f4dbcefc8b66cf01d58ac64448ac8c0dc33fdace5ae";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/hr/thunderbird-68.12.0.tar.bz2";
+      locale = "hr";
+      arch = "linux-x86_64";
+      sha256 = "9e132811cb6bd98faee86e298b78e845727bfded84c0cdab41608ed1565f1aee";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/hsb/thunderbird-68.12.0.tar.bz2";
+      locale = "hsb";
+      arch = "linux-x86_64";
+      sha256 = "2a41d1e188fd5fed93a37a1bedc67cb745367447504a76836f79928194730d3b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/hu/thunderbird-68.12.0.tar.bz2";
+      locale = "hu";
+      arch = "linux-x86_64";
+      sha256 = "9196df7850b9cff69f52b5db69ec3b64cfa312bba5669380c137b95a8140cf39";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/hy-AM/thunderbird-68.12.0.tar.bz2";
+      locale = "hy-AM";
+      arch = "linux-x86_64";
+      sha256 = "4a08137a9a714677ecf86a24f165047b809e22eff50d196b92c153e59f943c30";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/id/thunderbird-68.12.0.tar.bz2";
+      locale = "id";
+      arch = "linux-x86_64";
+      sha256 = "39784aab0bc3253af47cdcd95824eccdecae4dac819bacf6a04daa7b5c86d6e3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/is/thunderbird-68.12.0.tar.bz2";
+      locale = "is";
+      arch = "linux-x86_64";
+      sha256 = "a041d1af23e9c64967e4d014b6a84ddc80ad24e852146e448f6b380cdd672e67";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/it/thunderbird-68.12.0.tar.bz2";
+      locale = "it";
+      arch = "linux-x86_64";
+      sha256 = "b0e3161c801fbaee2f589b1bc61a4fba9968f5f363a62cf0f8af855d23e4782c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ja/thunderbird-68.12.0.tar.bz2";
+      locale = "ja";
+      arch = "linux-x86_64";
+      sha256 = "ad416d47930d81be9ac2f20b3699f4c74471c36e08b14f9d5c6ee1af97c7c9d4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ka/thunderbird-68.12.0.tar.bz2";
+      locale = "ka";
+      arch = "linux-x86_64";
+      sha256 = "3b30bc5f0971310d71e1909b4ed891481457ac8baf11c1e505c3400b2a7cfb63";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/kab/thunderbird-68.12.0.tar.bz2";
+      locale = "kab";
+      arch = "linux-x86_64";
+      sha256 = "abdc58d5d5ef251e63c0c40a48460f90e299a4420cbe4e290d519fbed4c335b8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/kk/thunderbird-68.12.0.tar.bz2";
+      locale = "kk";
+      arch = "linux-x86_64";
+      sha256 = "08018b951de59b1a92717fc82bd98a0c324a019ee0ae14888f09c5351a586284";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ko/thunderbird-68.12.0.tar.bz2";
+      locale = "ko";
+      arch = "linux-x86_64";
+      sha256 = "1178adc42b3a2ddac46dd50ad8436d1be50db409963e8fac3beb22a431f885fe";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/lt/thunderbird-68.12.0.tar.bz2";
+      locale = "lt";
+      arch = "linux-x86_64";
+      sha256 = "18d88a8cbb24d2a78af0de282187a743e707136fdb61912e5f64bf75730e3a76";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ms/thunderbird-68.12.0.tar.bz2";
+      locale = "ms";
+      arch = "linux-x86_64";
+      sha256 = "e1754cfbf20e286fd6304b8d75337e3794893c5ebd9b242cf624090e6fc6e9ee";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/nb-NO/thunderbird-68.12.0.tar.bz2";
+      locale = "nb-NO";
+      arch = "linux-x86_64";
+      sha256 = "6379f6dca3d8bacb466044f0a7d11b32eb61166d3f14c37431f77843eb884c90";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/nl/thunderbird-68.12.0.tar.bz2";
+      locale = "nl";
+      arch = "linux-x86_64";
+      sha256 = "66a56e218365bb260980848427609d390674e2ba3c70b9adc4121f73c861d9b8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/nn-NO/thunderbird-68.12.0.tar.bz2";
+      locale = "nn-NO";
+      arch = "linux-x86_64";
+      sha256 = "ccdb135d43f5542151fe2c99a8e13cebfbc032367abb0308213433b753dc8125";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/pl/thunderbird-68.12.0.tar.bz2";
+      locale = "pl";
+      arch = "linux-x86_64";
+      sha256 = "5dc2151d1bb956c4b6fbd1b6185d9328f7091e60fdcd51bad5a9ebaa8fcbb7d7";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/pt-BR/thunderbird-68.12.0.tar.bz2";
+      locale = "pt-BR";
+      arch = "linux-x86_64";
+      sha256 = "5ebf77d47bf45b058aaeca857060c908dbf7036bae2c2c5812ff145aed840203";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/pt-PT/thunderbird-68.12.0.tar.bz2";
+      locale = "pt-PT";
+      arch = "linux-x86_64";
+      sha256 = "73baa68f79b4a15795fc426dfc9a8d573a05e4ab8a663d122cfd802f93941825";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/rm/thunderbird-68.12.0.tar.bz2";
+      locale = "rm";
+      arch = "linux-x86_64";
+      sha256 = "29f8ba57d9000803bae795c2ff977347af9a1f0df123337eaab3bdcc20786734";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ro/thunderbird-68.12.0.tar.bz2";
+      locale = "ro";
+      arch = "linux-x86_64";
+      sha256 = "b8233ad81c6620c26a02457b9235ce0be0c5d93b81f88d9ddc84bc12f869dbad";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ru/thunderbird-68.12.0.tar.bz2";
+      locale = "ru";
+      arch = "linux-x86_64";
+      sha256 = "f959f786dbbb7d06cb33eca24efd9e2763c5ca73fc4ba47e9b933b6298d7f026";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/si/thunderbird-68.12.0.tar.bz2";
+      locale = "si";
+      arch = "linux-x86_64";
+      sha256 = "dcf59c0c1ea0acdcc894463b04c54339a72dcceb25fe5478608265eb3ead226a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sk/thunderbird-68.12.0.tar.bz2";
+      locale = "sk";
+      arch = "linux-x86_64";
+      sha256 = "2a06329fd4a9dd6333e2d73a44fca7eaf593032e8ace33736a03dbfffb2920a0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sl/thunderbird-68.12.0.tar.bz2";
+      locale = "sl";
+      arch = "linux-x86_64";
+      sha256 = "f7bd3e3a407dbab07836342ff29fc143fe3904e7f878ea719522ade3fc4f6b84";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sq/thunderbird-68.12.0.tar.bz2";
+      locale = "sq";
+      arch = "linux-x86_64";
+      sha256 = "0edc58751a6794494efab8b0a2ce852374a747ccb73b38455475f0099ea0f238";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sr/thunderbird-68.12.0.tar.bz2";
+      locale = "sr";
+      arch = "linux-x86_64";
+      sha256 = "91ac5cc0646c062b00b3b064af53ba03c7e034b75afa13dca7586eb80578d377";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sv-SE/thunderbird-68.12.0.tar.bz2";
+      locale = "sv-SE";
+      arch = "linux-x86_64";
+      sha256 = "5aa21e4b78f4294835197f784a651f17453d83fce98e7140e49c6da117464fd9";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/tr/thunderbird-68.12.0.tar.bz2";
+      locale = "tr";
+      arch = "linux-x86_64";
+      sha256 = "3ab2639dd126e3ed9b031fc10f4396c7d98ffa7b7ffca6a9b3f2f47590e3b83c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/uk/thunderbird-68.12.0.tar.bz2";
+      locale = "uk";
+      arch = "linux-x86_64";
+      sha256 = "59be2ddc7c65405e0b3854c2a551dab73df9736842ee362b2a20dc9088242a96";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/uz/thunderbird-68.12.0.tar.bz2";
+      locale = "uz";
+      arch = "linux-x86_64";
+      sha256 = "ae196683b283525511fbd2e3ad428339672f2f1339566a323e01f6f649d333c1";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/vi/thunderbird-68.12.0.tar.bz2";
+      locale = "vi";
+      arch = "linux-x86_64";
+      sha256 = "9d66b8e4eefbb6b8c0d9893b056fc684310ae583921d626cb676cd8a7b4b39de";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/zh-CN/thunderbird-68.12.0.tar.bz2";
+      locale = "zh-CN";
+      arch = "linux-x86_64";
+      sha256 = "2839f2f076a8a6e283a3ffdd6100986a11d19b9108fce074f8e7f127cb0f375e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/zh-TW/thunderbird-68.12.0.tar.bz2";
+      locale = "zh-TW";
+      arch = "linux-x86_64";
+      sha256 = "02ef645a7de8abc1c5dd92eb685d64570cf1db971cfe7e248111d6a17b3ddcd9";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ar/thunderbird-68.12.0.tar.bz2";
+      locale = "ar";
+      arch = "linux-i686";
+      sha256 = "5c4d899245a38626fa18d849bcf01d50125dee60d715d76224ca0bb4623f73be";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ast/thunderbird-68.12.0.tar.bz2";
+      locale = "ast";
+      arch = "linux-i686";
+      sha256 = "f657bdc5b43b75e43578251abccf5c7b9e6d0848fd55c6105060daba33c36721";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/be/thunderbird-68.12.0.tar.bz2";
+      locale = "be";
+      arch = "linux-i686";
+      sha256 = "669a2cbfe600727b9d9a8ed5046272a1f19b80b6af9a6a6977ce1b89f60fa36e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/bg/thunderbird-68.12.0.tar.bz2";
+      locale = "bg";
+      arch = "linux-i686";
+      sha256 = "e1b33857544c10c0191316f6e3d16b34957196b35a922c884315714fe851389b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/br/thunderbird-68.12.0.tar.bz2";
+      locale = "br";
+      arch = "linux-i686";
+      sha256 = "b9e4a530529449446fe5a302277878c4d2192ef7bb48206f8528024087f520ea";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ca/thunderbird-68.12.0.tar.bz2";
+      locale = "ca";
+      arch = "linux-i686";
+      sha256 = "aa5e4ae20fa9e5dbb8c0ba275ba18d1ba94900094ba3186aac40ffb27396a96f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/cak/thunderbird-68.12.0.tar.bz2";
+      locale = "cak";
+      arch = "linux-i686";
+      sha256 = "a812c9150feec48e2ebfb1786f5e30ade33203160fa4102382435641caeaf3b8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/cs/thunderbird-68.12.0.tar.bz2";
+      locale = "cs";
+      arch = "linux-i686";
+      sha256 = "75813ad7dd0ae5c073964296dd687e5c1289178491adc98d40e853ed812bdca9";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/cy/thunderbird-68.12.0.tar.bz2";
+      locale = "cy";
+      arch = "linux-i686";
+      sha256 = "b3894f05cf905aa96612860dcef0bdb4bb9564901ef84172e11856a9fa9e0ca4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/da/thunderbird-68.12.0.tar.bz2";
+      locale = "da";
+      arch = "linux-i686";
+      sha256 = "a4f21bd2017043872a962167f98db358b824ae1821fcf03e2df1bef7783e07c0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/de/thunderbird-68.12.0.tar.bz2";
+      locale = "de";
+      arch = "linux-i686";
+      sha256 = "3a079685f75d2ec0320ec9e366b4e037954d67fa3f9e3bda055b8cd7de8fbdd0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/dsb/thunderbird-68.12.0.tar.bz2";
+      locale = "dsb";
+      arch = "linux-i686";
+      sha256 = "295a0f56429b3638dd0dcbf8d97a6376636b67e22d493ce8dfaceeb579466d18";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/el/thunderbird-68.12.0.tar.bz2";
+      locale = "el";
+      arch = "linux-i686";
+      sha256 = "86e4b98ede80cc07cc1aec043af82068a73b7c76820f70df8314e3b91c108d18";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/en-GB/thunderbird-68.12.0.tar.bz2";
+      locale = "en-GB";
+      arch = "linux-i686";
+      sha256 = "2cb03a17f88e3826181911ec6a7455528d1e4c051b065252c964c6c0794175e4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/en-US/thunderbird-68.12.0.tar.bz2";
+      locale = "en-US";
+      arch = "linux-i686";
+      sha256 = "11fe953ede0d99656534ac676f118e939024744c5301d378acbeac6792e668e5";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/es-AR/thunderbird-68.12.0.tar.bz2";
+      locale = "es-AR";
+      arch = "linux-i686";
+      sha256 = "596264396a25adb873320222697e7f1a58aaab484de9c0d2e85f99962b6d893d";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/es-ES/thunderbird-68.12.0.tar.bz2";
+      locale = "es-ES";
+      arch = "linux-i686";
+      sha256 = "a9512af30e2b1613a6bd1ae6f4ce785f676b2cf70b80a37d85a5e1566bb2b35f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/et/thunderbird-68.12.0.tar.bz2";
+      locale = "et";
+      arch = "linux-i686";
+      sha256 = "b7dcb196881a23e979edb5ae247a7c07b1cf1250cb4c159ce523d1a26be188c2";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/eu/thunderbird-68.12.0.tar.bz2";
+      locale = "eu";
+      arch = "linux-i686";
+      sha256 = "4066164b4c9242a9885bc2de802c4f5b6b594c928db36ac72c94faabaad86679";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/fi/thunderbird-68.12.0.tar.bz2";
+      locale = "fi";
+      arch = "linux-i686";
+      sha256 = "a7c635cbbbc10725b28052ccc61603fb60b91e06bbf1f240561bdb8f941af55a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/fr/thunderbird-68.12.0.tar.bz2";
+      locale = "fr";
+      arch = "linux-i686";
+      sha256 = "7dba28adb1287e1aa9ae85840fc3aca42aaedd4b2c2aa6cc68d5f793549d19b7";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/fy-NL/thunderbird-68.12.0.tar.bz2";
+      locale = "fy-NL";
+      arch = "linux-i686";
+      sha256 = "bd763e264eb684ec3b0b1f2c68ce295d1df86994d15f5c66c487e4742bfef86e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ga-IE/thunderbird-68.12.0.tar.bz2";
+      locale = "ga-IE";
+      arch = "linux-i686";
+      sha256 = "52f9b5694efbdd8ecc76aef58695423c6a4b547b5b0cfedca313386b7500685e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/gd/thunderbird-68.12.0.tar.bz2";
+      locale = "gd";
+      arch = "linux-i686";
+      sha256 = "6c9c1b0f11ad13e0780371d54fedb52d2463713db3bc52adb72c8ea9ff80eb8f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/gl/thunderbird-68.12.0.tar.bz2";
+      locale = "gl";
+      arch = "linux-i686";
+      sha256 = "608bf5c0d6148cc3014758829ba06135222b462242456ca0984e7dc12654c2cd";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/he/thunderbird-68.12.0.tar.bz2";
+      locale = "he";
+      arch = "linux-i686";
+      sha256 = "f92d569a53f34bfdda4dac185834e5692526f13f20853d1943f165af33b54a37";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/hr/thunderbird-68.12.0.tar.bz2";
+      locale = "hr";
+      arch = "linux-i686";
+      sha256 = "60d2f184219f8d17c2739ee3cc8463bed474142bd2caad74157b97db2306b27f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/hsb/thunderbird-68.12.0.tar.bz2";
+      locale = "hsb";
+      arch = "linux-i686";
+      sha256 = "40ffece26101b2f6a7789511b026d99234bd34ec78e566e7e25065ae3201d693";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/hu/thunderbird-68.12.0.tar.bz2";
+      locale = "hu";
+      arch = "linux-i686";
+      sha256 = "e74da0bdb27fe3375dfbd1ab042892de3ded84f33a6f6d46e209fdcaa28183d0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/hy-AM/thunderbird-68.12.0.tar.bz2";
+      locale = "hy-AM";
+      arch = "linux-i686";
+      sha256 = "fd93972c11842b56453449e72617deb3177d020c8f25cf4d5fb687f4a3ddb5c0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/id/thunderbird-68.12.0.tar.bz2";
+      locale = "id";
+      arch = "linux-i686";
+      sha256 = "546825968ad86e4c5c6effefd0f924cc1d10489fff7968f17401e3f84c4d1ab0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/is/thunderbird-68.12.0.tar.bz2";
+      locale = "is";
+      arch = "linux-i686";
+      sha256 = "1f2e2228c685be2d65d6e0b92eef8ff3e58d7b772f846d0707a9b02e6d0ad306";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/it/thunderbird-68.12.0.tar.bz2";
+      locale = "it";
+      arch = "linux-i686";
+      sha256 = "41b27c8195432e1412e3c4645b823b8dd1f673eabf07ddc72f3d792d3f7488da";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ja/thunderbird-68.12.0.tar.bz2";
+      locale = "ja";
+      arch = "linux-i686";
+      sha256 = "68940d44d933bb7228d6f9a03406ca01903c54fdf57eb5a1e1033b12ef507df6";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ka/thunderbird-68.12.0.tar.bz2";
+      locale = "ka";
+      arch = "linux-i686";
+      sha256 = "ce0aff0fd47b00803ea66278b3514dcf65ecb5547878f8081f7ec6c1f411ce10";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/kab/thunderbird-68.12.0.tar.bz2";
+      locale = "kab";
+      arch = "linux-i686";
+      sha256 = "3936b56eaa1e05a96626f7d10c8fcc3ba9014b1385b21243c049b133b923ddef";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/kk/thunderbird-68.12.0.tar.bz2";
+      locale = "kk";
+      arch = "linux-i686";
+      sha256 = "7fa0aa64d0f0dcc6f71d6a21647cc4fccef935b783deb5d19b88f5b96b4b4ec4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ko/thunderbird-68.12.0.tar.bz2";
+      locale = "ko";
+      arch = "linux-i686";
+      sha256 = "4bddd0ccb747bb12cdc6d88c2c9544354293000c586454bb5932f4d81afbf400";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/lt/thunderbird-68.12.0.tar.bz2";
+      locale = "lt";
+      arch = "linux-i686";
+      sha256 = "f1a3514188c1b887afd2c662a1b6abf6fe37b558864be0cc79e87ed147188461";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ms/thunderbird-68.12.0.tar.bz2";
+      locale = "ms";
+      arch = "linux-i686";
+      sha256 = "7ea045d6db78ec7d6ebf164c8e3d28c2540a573238de518e934646573aec71dc";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/nb-NO/thunderbird-68.12.0.tar.bz2";
+      locale = "nb-NO";
+      arch = "linux-i686";
+      sha256 = "d2c0e2099ea60b9da95ebd9bd79a5d0a6a1ebc84b8b490511a68c81355f97761";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/nl/thunderbird-68.12.0.tar.bz2";
+      locale = "nl";
+      arch = "linux-i686";
+      sha256 = "48741be79422d80140ec862d004fa75a407f67490f67a3e440c01e0defe1f85f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/nn-NO/thunderbird-68.12.0.tar.bz2";
+      locale = "nn-NO";
+      arch = "linux-i686";
+      sha256 = "b40f0d7112cadab322c8b71cacce5d6df87fb80f40cc55ca22c279016c3ea805";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/pl/thunderbird-68.12.0.tar.bz2";
+      locale = "pl";
+      arch = "linux-i686";
+      sha256 = "e64b10526cb460f437427cc4a7ea90959cc693a75fd6a61b43e9d3fd76ded618";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/pt-BR/thunderbird-68.12.0.tar.bz2";
+      locale = "pt-BR";
+      arch = "linux-i686";
+      sha256 = "bdb558f9430c06871954ec6c7d54267625184a0cba914a87ad199e8f32b03de2";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/pt-PT/thunderbird-68.12.0.tar.bz2";
+      locale = "pt-PT";
+      arch = "linux-i686";
+      sha256 = "4631e8247446653e91f239fdb5ad3c8531f3d007dbdc83818178a4cdc525edf4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/rm/thunderbird-68.12.0.tar.bz2";
+      locale = "rm";
+      arch = "linux-i686";
+      sha256 = "13e6aca7139fd89e83e7ae9b71253731f0954b0a83cc3560ecc00500b9bc1df7";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ro/thunderbird-68.12.0.tar.bz2";
+      locale = "ro";
+      arch = "linux-i686";
+      sha256 = "023a567c42dad9bdbd465c8b99f12cf5f667ef4691e16971e09496c4a7db0f12";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ru/thunderbird-68.12.0.tar.bz2";
+      locale = "ru";
+      arch = "linux-i686";
+      sha256 = "9ec35bbce5f026a4262a5d708b53a767f47ac8e90314513d36a587d1a49dbb6b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/si/thunderbird-68.12.0.tar.bz2";
+      locale = "si";
+      arch = "linux-i686";
+      sha256 = "c540b94a45deeddf1f7f5a8cca8de7e944ee8ad9f8595a308836c159901ec0b6";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sk/thunderbird-68.12.0.tar.bz2";
+      locale = "sk";
+      arch = "linux-i686";
+      sha256 = "5296241664023773d2c0c4fa55e74eb6470482389c834d1934c252f79e79ebff";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sl/thunderbird-68.12.0.tar.bz2";
+      locale = "sl";
+      arch = "linux-i686";
+      sha256 = "cd0376137d8018875873332fdfae3bc3c0d6b2a2b881dfa970d7d7999e8b312b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sq/thunderbird-68.12.0.tar.bz2";
+      locale = "sq";
+      arch = "linux-i686";
+      sha256 = "6fbf47759ca8c4d7cf30ca3af8a3fd35a01b7738422d29448cfd9eed81eba49b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sr/thunderbird-68.12.0.tar.bz2";
+      locale = "sr";
+      arch = "linux-i686";
+      sha256 = "636708320247c7c45622fd9179d5689da97472a9308f11810623129cf5a0e8d7";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sv-SE/thunderbird-68.12.0.tar.bz2";
+      locale = "sv-SE";
+      arch = "linux-i686";
+      sha256 = "9550c173b047e3ff774f4c3faf2c1f125b3abc34e6feb5801c108fda94e54e4e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/tr/thunderbird-68.12.0.tar.bz2";
+      locale = "tr";
+      arch = "linux-i686";
+      sha256 = "ffe82a300c7fa7a0e826d11613f5187c003b009efa29f4755f17af0f88d9e73b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/uk/thunderbird-68.12.0.tar.bz2";
+      locale = "uk";
+      arch = "linux-i686";
+      sha256 = "b018769149c0a4ff323b90b5d51465733629e7c527b39381ba9696cb077ad767";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/uz/thunderbird-68.12.0.tar.bz2";
+      locale = "uz";
+      arch = "linux-i686";
+      sha256 = "b0b59ac4d08c9f385f4ed7980065ce99ef24874734390a83af6e8fbd18173d99";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/vi/thunderbird-68.12.0.tar.bz2";
+      locale = "vi";
+      arch = "linux-i686";
+      sha256 = "901b40a99d84e7c7360fd5be6a14aa04ef6cc04fe1275cac26824b310bbd26e0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/zh-CN/thunderbird-68.12.0.tar.bz2";
+      locale = "zh-CN";
+      arch = "linux-i686";
+      sha256 = "509478710f7c4fb404eec9fed0b6d22f4c5d76fee09ed833dffcefdacc53d55c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/zh-TW/thunderbird-68.12.0.tar.bz2";
+      locale = "zh-TW";
+      arch = "linux-i686";
+      sha256 = "a12dd777cc3eaf629cc7a6f4b8d4744cf63c3e778e559d9b3ce332414e509515";
+    }
+    ];
+}
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
index ba13d666ad9..8cdd27653e2 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/${version}/${source.arch}/${source.locale}/thunderbird-${version}.tar.bz2";
-    inherit (source) sha512;
+    inherit (source) sha256;
   };
 
   phases = "unpackPhase installPhase";
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index 1f14ee3ae40..86dbf80a6e1 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -1,615 +1,665 @@
 {
-  version = "68.9.0";
+  version = "78.2.1";
   sources = [
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ar/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/af/thunderbird-78.2.1.tar.bz2";
+      locale = "af";
+      arch = "linux-x86_64";
+      sha256 = "de73b113e488e76caca47b90abb4fa3f1c4d6ce04885d036f2e6aed81fe34038";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/ar/thunderbird-78.2.1.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha512 = "7e0a07631f2130d2876e020f7f28817cbca343e0666abd156d8f5c48a7f4bb0f4775f6366deeffdcd0676172e3b75c48c02635d018a5f1050f635f334834908d";
+      sha256 = "d6eeb95b1bd8e53663bd48570a0c2a03f570f906ca715ddf1d9f2cb8de37f3b7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ast/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/ast/thunderbird-78.2.1.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha512 = "47ef45548aeb20dc8dbd4f35bf12913b642986cf6071f060611696da99da30a2b10c9c8aaff8974f4fc02403026146b516e84f8f2244932f290202ef2aa59853";
+      sha256 = "f244c41515a2382d15697a47b88781120c649e319d86a1c6350fd20cade25809";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/be/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/be/thunderbird-78.2.1.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha512 = "c704c3e4be866d70c098b07bacdd4a1020ec109e92eb85c9c04d20d90db668a36bfef711acbe8bacb897543e3b8d499d35e54875bbe10fb3fc5436f8759828c3";
+      sha256 = "188c8850324bbc04535d4a1dfe1ef1f2e52de8cc2e1df7432623f6afcf8dbf1f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/bg/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/bg/thunderbird-78.2.1.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha512 = "ac31e7ceb3042c2f2ac4c833687a9a44b6ec593b2d50da2edf9f11fa9bba378dea192cd472470cb7cdb2a0b708b84de688f2988f6161447cf00e5a13fe6cdd9f";
+      sha256 = "3e7ab29fc795b577aa3bd2ac3df872c31a7ed22960e987d9bca6f348becb69a3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/br/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/br/thunderbird-78.2.1.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha512 = "1c3342c2cca3061d07be17f57d967b1e9e478f5ff91cac1df1dbc901e102e2fbeb68375af20ccc0b6922364c62fcc44a6d7715aee43fef0b2165ac091427708c";
+      sha256 = "c1138c59275149aaa6071cf128e7b480b7f74fa0d8f237552a5c54ce1ae573e0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ca/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/ca/thunderbird-78.2.1.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha512 = "2a0bca4b9fe58bb7872265384151ae7d2ed87122a9372ffd52752a11bec29b24a8d28f0e3102c0d6f84e545ccc6004fdace3bba7d68de206a3be5c72962c1a9e";
+      sha256 = "4d18b0b11710ab3427bf917ebe17cdf5e98508f517cf5cc4c97822d42a019dd1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/cak/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/cak/thunderbird-78.2.1.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha512 = "ef27a17f5a44072596b753cd110ed4d24d7355649ddfae988a2d6622871421088d1502866226fc1f18bf8233478b5c00e98f10cf3f920ad6b4a7bad9c5e9cae2";
+      sha256 = "5231c3b6c9b57ab528905184b740dd23de470f8bc4814a13000c8fc1fe4877cc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/cs/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/cs/thunderbird-78.2.1.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha512 = "1a68ecf3ae228078c67b296a1642578d8e5a7808707e8a7eab4cbe8191a6b19057fca8e3c4faa660d6a64732ca3a052579fa652bbe5bb30a85d577f7b702e55e";
+      sha256 = "04d1614000f1854b5d82e0d1740beb43ed9bef440b43f7bedce32cccec48fd59";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/cy/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/cy/thunderbird-78.2.1.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha512 = "4d3cc4a57f3e210129ba47c2fc0798d852e4369a62dfefaf3b9a8fc77939431a7cc5839c667a062231ccf49e6eeedfc60c5492fdbf5eec080233b851203305f4";
+      sha256 = "0ef895fdc1878b77650846d2ea4624a50d06838a3c51a91523019bb4d00a1322";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/da/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/da/thunderbird-78.2.1.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha512 = "79e655f62bc95b65640e3556d2690725ff012a16b2cbe656223a118294915c5619563fbdef9b88fd5db3f982cea5e8ad85a9bc389776ea95ab155539d6a4c217";
+      sha256 = "e909f7ba1890cebcac435c2cfaab7db1791785e6b5b1e8b205ee3b9962624c8d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/de/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/de/thunderbird-78.2.1.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha512 = "cad5d0c08e07f6d1247cae9737d0747875b9b35036892093230423d92530fe2de2975174dfd6ec0d2e2d7ddf86027601d37d3fce14343ad4cb89be5d68052785";
+      sha256 = "cce1e0acc3c61a66e5eaa065e81e01edb298b6dbf07a2376bf5a96ad2c1e784d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/dsb/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/dsb/thunderbird-78.2.1.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha512 = "15ca27de99125e4be3f6cf79ebe5e897efea14ea469040ab39ef2e0ab4a6ce61bb22f9afe95a670fcf9e1cf077512b8214226946e4f4a02e7bb04d136390bf6e";
+      sha256 = "a5acad173a15e77e21057e7450d997387f88a608dd602df7509fa13743758445";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/el/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/el/thunderbird-78.2.1.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha512 = "8fdda97681d04d9247d8030535d15888d24f3462ee8d91ac86ae9b0489ca4a2c759bbbcb151548786febed90de2ff4bf6e77fa55b8bc2b1cd4c8faef374fcc45";
+      sha256 = "7cb4dd233037415d9de96e0c292bd0a288ea62bc875b79a138aaf9639a8f8896";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/en-GB/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/en-CA/thunderbird-78.2.1.tar.bz2";
+      locale = "en-CA";
+      arch = "linux-x86_64";
+      sha256 = "158547432a7f38ab87ac5334b891921ef54f199896fe459cf65c81344d900edc";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/en-GB/thunderbird-78.2.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha512 = "51ccb86fc17862c9264823568fb2453318a8b6625f1d51eecaa150358a9efe4a15126c1a132bc57834645ba3d5799f75dd48e7cacc6305970698bdcad85c0bfd";
+      sha256 = "1f434d2aa74143eb8695fe54f031fdc7270b1dfe7365896b08f9a55c9dcc8197";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/en-US/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/en-US/thunderbird-78.2.1.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha512 = "ed6caacf356c6487a489e983275a2c3d00eac3b2282445667a1f26ac9ce217afb8261a929ccc9aa2bdf7a89101a86faee2ef87c16f0677ecf5abcc727397275f";
+      sha256 = "f5004ba1ac64911aec7dec3ec60a415500adfb0bfd566197f0f4fb139c71ff2a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/es-AR/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/es-AR/thunderbird-78.2.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha512 = "b8e75f5579740c8d0ae7ef30afb133b827c2e217bf9b0acdc8f117b6ffbd6c2674ff8670db87ede6db3c842af8d6f820bfa4370c0d611b7e74e99e8ad67a31b8";
+      sha256 = "49063e6e19b9c4ee1cd63826fda1c969d9739759a57ffabba5e2f93fc11de06a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/es-ES/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/es-ES/thunderbird-78.2.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha512 = "e51df8034b18c8dc0d7fa024c3e58317a614f4da4d286c837efac3d21c59d1e58a786cc2ae0afae8730f81e96a4f0263e4fa09b552df3b58f915fd0cad133c62";
+      sha256 = "216fe2514dc21190532b19af814b825d8a39c7dfe91a120848491f98c49f8ec4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/et/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/et/thunderbird-78.2.1.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha512 = "a81e2bf12df9ba23b8d330599eb9d32d25cb862d3cbd109183c0164ccfd2036bd327aaba36248e85f738d02d15d59f9fcaa837101b154834b53b04d2925ad666";
+      sha256 = "5a89262ffbdc536abf9d780d5d30ce7d0c626a4cf75bfe957689640f94323a34";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/eu/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/eu/thunderbird-78.2.1.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha512 = "98a3b4e765683a9fdb9f1b128354ddc8f81ffb7bcdfb3ecc04431e84862d65184f220cddf86ba2a3442f87c27ea990a2868ebf68dce7328857718f9e02ecd474";
+      sha256 = "f59c050361c617e4b2ca92f8e7081a135e976bb99ea4b650b80064aedef2c698";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/fa/thunderbird-78.2.1.tar.bz2";
+      locale = "fa";
+      arch = "linux-x86_64";
+      sha256 = "b9764595b4cb08584ccce801c08fa19dbbced21c3f89045800d83d531b0c825a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/fi/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/fi/thunderbird-78.2.1.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha512 = "75d0523e83f9f95fdef45fb8b6de632eedb8b274225ac5c6d6d460cc7c129f7e34f735262cbc44e8f99957358e33eb8c8e2ce0cdbbd59d237dde468991139e6f";
+      sha256 = "98169b3018a61ae6c2303300c1942c7d1d14a5318147a08a883b5a7b7042eba6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/fr/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/fr/thunderbird-78.2.1.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha512 = "c7b070e1b5dbb682e6dd119436512c5e2200105294f1c4e84c88fc8326f342196da1abaf8b7b4882397cf797070a524c19b640fc41d532885b9ce867de46d055";
+      sha256 = "49563e87d9543c52d33b7168c78adaab0483f14ceef22759541e927c13620657";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/fy-NL/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/fy-NL/thunderbird-78.2.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha512 = "bd93c4d482231c0c5444b653c045f4951d73c0c4c1ef9126757c41b30280f0009fddec38d8532af2c2e379a26128fe3b5e8db2857709fd2ed226d2fa73f0d88b";
+      sha256 = "1f3444faf91c24f8608ec59a4f705b42c7520079e4ad6756e693e92cdc8b142d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ga-IE/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/ga-IE/thunderbird-78.2.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha512 = "f6da6b1635d44f217b1ffe9e446d4ce8fbc82ecd5fa8a0421abdf83a0bdaf46db35343a5345b009fdf09a8237475b393d2cf0cd3f52fa16cd2cca63b792a546b";
+      sha256 = "28b27f73016f0a4d53a6c47248c26458ca2bdceb46ae231f16086b8cabed5210";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/gd/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/gd/thunderbird-78.2.1.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha512 = "d6e4c7e51432c4bc81a9470615349624f2d8eea0d6092e53afb833a2cb4a9e770ea4c373fbef424e9139a1668cb695841fe2cf8c752befb650d0e72185693c5c";
+      sha256 = "b81b247ebecd1727d27b64f96ba08b08cf59921e9b2e8ae732407b27e233c971";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/gl/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/gl/thunderbird-78.2.1.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha512 = "763f2dc852ac4ecc4accd7140ea9c1945bc343342a01efe8b09470cc41f76fad4f61ec25c9456b10a16f9db528fc6aed802d949252b12e0d73c89c299ee813be";
+      sha256 = "ea019d11fed7d87173b218d86fcee0dea7d4e20200bc73171fa8c1bc8f7288fe";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/he/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/he/thunderbird-78.2.1.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha512 = "82d66c85f843978d9b2e3e0353e831c7779a16cc3a977f225ef93c92cd8eb8ac98afd255e40b1da0c21a356a7f290027b7f2c1c2ecce656524f21d3f8d962a4d";
+      sha256 = "6308a7e4e2cc35e48bbd67a1a7b8ab37112f47ab228c703a6db681ac7af79cb6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/hr/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/hr/thunderbird-78.2.1.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha512 = "7c013aff2eb1d4d2330df3ec81dd4e6bc99f4ec9b620fd13cc487a02825669f7fbab84d8f9a2cb76cc34290dc301522505352b0985f75b7f26133cc0987d30e3";
+      sha256 = "3fb27f1e001817260981567fdb9949ad2f34818e9c919bd16fa0e939cf993cb4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/hsb/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/hsb/thunderbird-78.2.1.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha512 = "707059d39c02b2c95f18817757a4ab5fcdef4eba63645c93a8e1cdb37dd013633aaa7b67628d357e8c530a7d9394448d61fde9fae32befdb351502c27db3cd93";
+      sha256 = "2240e34fd713b39b410b584a8a6d06525f6abe0db2ee7b76b740a7252ec85e36";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/hu/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/hu/thunderbird-78.2.1.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha512 = "238047229050a38375a05d9d16514c88c5312d56857b179d7818be4421e3fb6450558f378c18035707d2abbbbb878656f1aeff461fb9f6b0f7a1b9e7e9863b96";
+      sha256 = "f303a1f1219c7b23d71471a00174e6084cee3773af72e855faa63a5384b08aee";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/hy-AM/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/hy-AM/thunderbird-78.2.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha512 = "871c444b878cdc2c63d96d389ff0ece2773862e825bf00bb4534475130f4b0b684dcad1002bc1d183f6c81b730bb3af1098d29b81dd7d07a5321e01fff3c39c6";
+      sha256 = "3e74775e459ebdca2661e2e2f55307429dcc4d4a6623bbb8447946a75c94dd20";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/id/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/id/thunderbird-78.2.1.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha512 = "518ce09cb9cedf086549873f6cc868235afa24fd04be3e2af00d92dcce8c1f08c7855c7af9c4cc21d2329187f2a28ddcbcdd46fb5a7f26f2993261e0f2cf7afc";
+      sha256 = "0c9baf8cff28193f774e13c3a49cfd0ebcf27d8ef73ade151d2371ea69cbafac";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/is/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/is/thunderbird-78.2.1.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha512 = "855c8d301067538bdd1494fb9a6b57e0182e94deab34a9aadc65dbe6a5829023145d88d4233f10702947fbbc7361812fea94b6a1352f687bc006988618781816";
+      sha256 = "5c505948333d9259d87aa5f2b53f33ade1bbbfd29b9d5438c2688d34891e29bf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/it/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/it/thunderbird-78.2.1.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha512 = "d447dcae327ceab2edc4302235d9055d1b11ff0407dc3a05cb1f16f8a53c6bd71dbaf5c33766f5c343ec357cbf8a8702c637c0748f658aa2083d244de9fff968";
+      sha256 = "a99896e8ccf8d01099834ee502601cb9de993fd7101e426cb87c240a744f2f88";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ja/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/ja/thunderbird-78.2.1.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha512 = "1ad5d5c0c7cb04fe7f471ea85557f8c4aac62eb9b7276b53fcc3111d3e37a7eed56e2e4521c1e978acc32c973618d84c05792b4100fbf9175d2a5db0c74eac1c";
+      sha256 = "83be10be5e946b785ac61e9a51c7054357c69af0a8e7bca524e27961dea4eef8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ka/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/ka/thunderbird-78.2.1.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha512 = "0d0f376c9a13165978e1b5d77e6b098f17ec552baa9e8e64d32b5d33c5b2d52f78c6e45ff92901f6c94cf9efc1d0349025c3dd7baff9693c9e5ce9f62e0a7c4f";
+      sha256 = "585a1d805663225b1c154e27b54aa1aa5d8a1b96576c0f8ea36bde7844921474";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/kab/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/kab/thunderbird-78.2.1.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha512 = "76927cd9f2630d8aa4b501a8ff49ebdabeaf75ecf5dc166aaccc254d38493a94df7dc6d432bb68511b78b5e31b483859503bf846b4c2e7fee2ea4d40e4506db9";
+      sha256 = "85128be7e4c28a526d0a395e38e86e5e85dc6c154be6b16fb2df6675effe3d0d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/kk/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/kk/thunderbird-78.2.1.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha512 = "1a0d0a328341a7efffb6fa5ebb7bdced15f8202d37520b1e2972a3f82f37053669d52e0a8a815a8a9f2cb439227fba2c6f25a5967f459b1d2d7140e16315cac1";
+      sha256 = "09538c022bbcfcb2a77a7ab11b5569eb56b483817d199cfd0ede68ad556601d0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ko/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/ko/thunderbird-78.2.1.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha512 = "d4b654cfc6f0f8be641d844a52eb332c2218b419c7a699852ad693b90958d185ef29c2c1bba5b7b9e397e05fe1572b80b0f0df01e83b65edede368e0c6ad9ead";
+      sha256 = "3e6f472e69d40d46f388096e1d13bc6735860021fc655e3efd4e5b93b1a83240";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/lt/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/lt/thunderbird-78.2.1.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha512 = "fdedc91f7bffbc4f464682f3a020ab161592015fe5c50180899eecf951e9f775cf5ef3cc6b5baf7faa58221f00e19fe99074f60d292ca258cf44dad2db0d0d69";
+      sha256 = "8b85c0874306afd3a39d8cf851d378f5f1bfce74129b16b02230c516001adc92";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ms/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/ms/thunderbird-78.2.1.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha512 = "1ecb61c99626dfbc8386364b747e94de7080facd6434813c8afeca60373d3cf07d2259ba90ed6de01c68a65e8b8408e58647d4e72b62f150f82da4a81e78f861";
+      sha256 = "b14e7baa06a2d4f98313a7f363b0d998f902164abad13a992878812cc5a0b6c3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/nb-NO/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/nb-NO/thunderbird-78.2.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha512 = "45ec1f8def3d2b57e29a3fd22bc38f08a9c7b1ebf44e6dfb736ee13d09cb1bcfcd632c2f8594e3c531d35aa7b696d45ffa1bf5c4cad7e1304fa92763f923df43";
+      sha256 = "c3718581db153ad8b171b3c454e9d156e3d55ff0969217ac36435d13ac0c7c3a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/nl/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/nl/thunderbird-78.2.1.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha512 = "20dd4c7e946e0fca871fddc3481f2f44b72939de3a7f5064ab8f062981ea717d47f2a3c09af32c9913556e2f5fc01fe1dd78c2d35b5fd44a7f35cdef1e4252d7";
+      sha256 = "802417acdc722e34c21936f840cd347ae86cf5ac8ad2ae05bd1e1ae078c4518c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/nn-NO/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/nn-NO/thunderbird-78.2.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha512 = "c366bdbd0cda3143c7684c1cfd948965c2b80bd5076878cf3e98b9b5fb82baa6df419445ab0da134209a969baa0e36d759297bfda701d2ea4cd8c6720b61f123";
+      sha256 = "5034f1fe526cab8de8091d5f20851a678e742ed37fa80e8491f3891ed89c43a8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/pa-IN/thunderbird-78.2.1.tar.bz2";
+      locale = "pa-IN";
+      arch = "linux-x86_64";
+      sha256 = "01ae1e84d990433b7cbb12dc637deec37b32998803cb60f5834d386e080505f7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/pl/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/pl/thunderbird-78.2.1.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha512 = "163130f55ed9e0cbc68b48c41541748aa320d7a8fdb954c38fc25ca7e2dac6fea98b30b2653b6e8b31230ebd8364ca12281551e00375e4dd64b87515f08e6bec";
+      sha256 = "84b877dba77c8be4400f4fc76128a85878781c4d8ff7845d265225211092674e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/pt-BR/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/pt-BR/thunderbird-78.2.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha512 = "5e362e0c53f898d1d156c53415469fe965162047bf5ab55798ece681a33322d677a874b80f9f934067a847da9f2c45a62d63753b866e368585ac5f0844e410df";
+      sha256 = "4daabc0cad02b878d8e17af4402b6b52fdd7783f89192909a43bed09f8aae196";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/pt-PT/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/pt-PT/thunderbird-78.2.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha512 = "b322096fd6fb0778fc26146b69fa9a63f249e927de6d2ae3fd6093e3e24b4825ed29a1d09cb68de274aebeb06effdec78e6445fa5282dd6a733b2181ead21248";
+      sha256 = "6ce92a7a1ea62398d22ee4e4fbdc383daa5d35d38c83cf1852953757563d17ba";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/rm/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/rm/thunderbird-78.2.1.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha512 = "715075dabca54e27001f68b11e6c3c99fc5e20f1fcba637e7613584d84a97520e06fd73761bc6c780ae8abbec3121504fb1b51b615a35c0d8660381d71f94eb0";
+      sha256 = "d876eb51534d8a5796b486f22f9602bcb9c4cd9c99042583f95c4464f7ee99f8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ro/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/ro/thunderbird-78.2.1.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha512 = "fc279090426b3baef609f23228ac11d4665fd805d6118a4ecc2bfd1dd7b36d37004033db4be1095275c677a092026a083199e699b553c6eb82192db0190d844d";
+      sha256 = "ab4bfaea0914401188d486554963c9ab3014237e7116afdf274dce6e55725cae";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ru/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/ru/thunderbird-78.2.1.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha512 = "8c575c2749cd719878ffba2c8158597222d1d494f2c3749c6b5253a8d75607f42a45799a288f85042d8390225f74ac55d7497abc76a8fc870f89f8f7b7a3c699";
+      sha256 = "e722a13113896bde97dd72d0c7182c26734d7d546d8fe210bbce900854ac925c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/si/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/si/thunderbird-78.2.1.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha512 = "b2edb098eea69332528f24a352e2cd318161ab3383cf13f878c7fdbca14f923f74a769fd494b435d0ef2fd760d4b7cfead063c91112fd44dfd3d4a47d4597549";
+      sha256 = "595588d25de16c3781c85a9ed5e3c767d4df85f0820d4503770468b1669e9411";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/sk/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/sk/thunderbird-78.2.1.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha512 = "2dde57c16b15b823a698f7c17d98eadd5528ea29cbc50d22a586c3ad7357289f2c4719edf8ba47c59c3419383c64b8ff948582a58356719990340f5db0be84c9";
+      sha256 = "f30929cad216539754842c0d938b4d5b8ec5f4e813b3ff0d5108d9c4a0fc6df2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/sl/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/sl/thunderbird-78.2.1.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha512 = "0014d8985ee139ec3ffae5ff18bcb8ac6f0921930853bab3ddcdcd6d21b9453aaa0af058068770dacb04bd1521b555945f9bfa7d9f47ba4a2adfd667fb067d78";
+      sha256 = "65d716b3fb5cad93d17704b62fd035a86ef6838cfff6ad95e571cedbb9e0974d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/sq/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/sq/thunderbird-78.2.1.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha512 = "5aa41dfc73adbad839452077b436ff302d0e611fb342998a7f6bffe98fd634d7995a30f49f8640645052b9f68c149c71a6bcdf0fd2df7e3c67783bca3c4ef511";
+      sha256 = "38c652f6aae768ab7a8b0c1e975c676a3724ae22f5f7e3ffc6224ee032a9dc47";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/sr/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/sr/thunderbird-78.2.1.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha512 = "266d0030c7d018dd68d5cd8496eeba061453e1d5a37e99c1645aa9c677492d0da397b2a9e70aed5d927c2e955449ff5b75efbad74d60fea4bb4ef90c36d765ec";
+      sha256 = "7f73bcc8efb4452fedb0f9707c5e2b1d0db936fda4c6b9582207043aeddf8747";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/sv-SE/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/sv-SE/thunderbird-78.2.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha512 = "6ce755bf48a29522e1f0805d6fb37bdbf145f75a4b6fa176c06562bd1b6b272d752a3d638ab66bf66dd6dc67fd817d76e70cc31fdf9b201f56c6bacd058e49df";
+      sha256 = "221974d62563b49f6c030b7a1f6307a71e60ce2a0e107b551363621320bba485";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/th/thunderbird-78.2.1.tar.bz2";
+      locale = "th";
+      arch = "linux-x86_64";
+      sha256 = "a8641ee0dc5bcd40ec84a4d4640e74e44710b5ac10d629ea0dd42ad2370e8d3b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/tr/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/tr/thunderbird-78.2.1.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha512 = "302b03ab2e23f6c0cac0fff85cfeacfcebabea838fef824b7d1733054fd9a3cb766dcff1dad333b199ea876a16ab7a059fe4e01289aef4ed481126c27011b4c6";
+      sha256 = "1d80d967b5ef98f0e642390c55618d454f2d82acec36bfd56db21e872490ff66";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/uk/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/uk/thunderbird-78.2.1.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha512 = "b3d59d62dd3d3e6e9ce8be3c4c746c41a0a0962d1327d1187b0b2034d0c1691970d181405cc7ab7e2f1fcafec6caaa26863020f5edae4479e453718619b7d02e";
+      sha256 = "fcc24a9885db5511c0b2859e6472d436769da2670573177f7bf332fb363a3ee3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/uz/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/uz/thunderbird-78.2.1.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha512 = "73d36534f000d00a52988825c0145288d8d1eb944065d11231501f6e2906e97b0beb89d59b796d3f2828054ed9393e8f65866cfcaed6eb7f939cf657b6f3d740";
+      sha256 = "b0f62e8fc5c6da398ad2e1a3488ddb37f0075c90ad54e6028293be7cfcd2f6f0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/vi/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/vi/thunderbird-78.2.1.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha512 = "b3ec66f92f5d023933e8dae18f0827f0fc8c5880890f9986b339f06b4e565cbe228bc2b0843924bd2a524a77ded7667e63c2747d2ff6c3789d57c8a68e440714";
+      sha256 = "0e38a1b645894ff81a481250ed434157fa2b70792b423c31dab61288612a82f2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/zh-CN/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/zh-CN/thunderbird-78.2.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha512 = "e61e72c3dcd376d74e732d76c5a49203b47e2ea31c86bcdcaad673583795f5c01549fa2c5526205857e565f2a72b8abf8b2aa4e7ede45a94b218428607662a1e";
+      sha256 = "04f37793bd17df88573d9d3f8c8412c26cfb3332395689a06f5fca6efb02b2ad";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/zh-TW/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-x86_64/zh-TW/thunderbird-78.2.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha512 = "f47bfe43ec5b570863ed1fc81828a23beb250db24fb77d2df2dfb5ec60a9c750f188cbda1a0f2927688865219f6a36695d87e4a8eb1fd642c4c9650dcf2e9063";
+      sha256 = "6c1e5b71bb2a9e005971050c9643c52090828e1ecb3910d66d2d0dbaa107011c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ar/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/af/thunderbird-78.2.1.tar.bz2";
+      locale = "af";
+      arch = "linux-i686";
+      sha256 = "2601d98ad27a2ed7277f673876c2a7d206fe1cfd8c7c8febdead85884031a416";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/ar/thunderbird-78.2.1.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha512 = "83a77d9f39196a8a3ec72469c038c835fb6b50872a2dd611519b178f5e46ef40293bfbdd908b3ce236681205b9b3ed133c845e357abb70285f9920401ad90cd2";
+      sha256 = "5d126b1152b42b6bd6c29ac602b59ab88f3491b0b6f2a69aa1e6ae3d9ded04d6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ast/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/ast/thunderbird-78.2.1.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha512 = "83084855cf03e66968d20d2caca749a9ff9d47b0cfdecdcedf0320b4bc7e628ff5f3a971ae1f6472c5a44facfcaee419250f55ebb254bff9f344c64772f54791";
+      sha256 = "7b22fbd980df00d6b1a2c0f14d68a3a7daf06dcb6a13033ca2619371b098445c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/be/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/be/thunderbird-78.2.1.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha512 = "722bcaa29137994e36f70a438fddb5be55355cd85d414fcf70cb8bbaf66a9ab0fc21408cf282272dbe977f46b5aa63575c7504bef8292adbd8d4c6e308655411";
+      sha256 = "bd59d2a9e70944a736e8e5db100b2cbe937fb8021577fdd912087e2cbe38723f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/bg/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/bg/thunderbird-78.2.1.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha512 = "95464ffd5256fb181599ad795fbfe5d9cfe8ef0c02a7830174ee4732761cd94a2cca75b6a686559e07d996640f5e973a660fc857f0839d6bea5594e61f2f7e4e";
+      sha256 = "ce3906cafce8ce00c4b69f2b1b584f7e4148d2d40ac12916f1108f78d7d3cdae";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/br/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/br/thunderbird-78.2.1.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha512 = "fe09bb21248975aa60ffd74a970c9dcfbef578c1188bc1c3704c7411c2e94f88976ac7ac5e52a69ac6235723332f2fc76757ef9118092833fe64bf0a05e3ecf3";
+      sha256 = "2f41237e0dd3dff4e0e4b196f8d02b988d7e5db3ac1984ea5577ce5052d43514";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ca/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/ca/thunderbird-78.2.1.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha512 = "01ac3c0090448f1ffc7c97623df8576a7a3c184a2bc1a2761f0e3451a18dee6d4f6bc37b305dcaea89930a1750a9541116bdf03f613b333ddc47d5f257b3bfc0";
+      sha256 = "0ec94acd77cca38d37dd23fb240c3c9e3840defccb491704d01072c1cab1f543";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/cak/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/cak/thunderbird-78.2.1.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha512 = "27dad086126a268f2c6700a5f01006c40e911ecbc95dc994da7cd2dadc3f2bd3bc94d5da15a297b2e72e8b20254d40c757456c308b70bae2c1d451ec6ad7d1d8";
+      sha256 = "1c77ebb51a83c57c7d81ef278f9fceae07f98330a8ccf8f863c2f0b613141e23";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/cs/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/cs/thunderbird-78.2.1.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha512 = "b99dc13bf43a9aebd08f13fb113186e6e4a72c68d609895afc8a52c4909a0506f646ba394c705004272d1b91db4efc81a5518bbd06e359a8a24c85f4fbb30102";
+      sha256 = "adf8c11ff60e697fc5087698088c42c95a15766ccebf24d77141a53dc255c366";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/cy/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/cy/thunderbird-78.2.1.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha512 = "36c1557a9955e461128929b7be0f679a02592b65e4b401b052ecf1f467a231ba725c92eb96b8118bb75d49ae45f8287bb5fbeb22d94ba11dcf311cdb87170ee0";
+      sha256 = "9b7c51652714c116c9bb22fab4f0fc6dcbce6ad2133cc860067898841d01b5b7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/da/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/da/thunderbird-78.2.1.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha512 = "e81b41e38b322f2eddfd68c07f326ec9d716bdbdf31c3a02d22d9377002fd21b58a68a8ac952fed2ed164a02f8b20e9f6678c52fbaca741a4bcde1079ecbe38a";
+      sha256 = "e7245ea0909efccaa9b94701061410437f16273c935484dd3638f5f4fa65aad9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/de/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/de/thunderbird-78.2.1.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha512 = "da6a44a2a6545b10bbe12644e433932c4410471f5948278b919baca1c6eb0181366114c1a6f611b897c71bf4091a6734393fd36f997c118f49466faa8dd2264d";
+      sha256 = "302394d24f919b0a24dc574001458b265bfc90024bf21b3d98a43b31ae50adf7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/dsb/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/dsb/thunderbird-78.2.1.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha512 = "6d19a0010553d1b08bc47a22c0c7f23bf4c86ca79ef3ca26c970cd502e6db003ccf045488f88d68a5b1b0ece4436de55d65592b314126b9b5792be30c9def553";
+      sha256 = "18ea8d27387581d49dd156957a089f1dbbe05f2772811aeddb1ebe81d26961e6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/el/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/el/thunderbird-78.2.1.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha512 = "67e6382474356c4ff25e6f49a7ee3859eba5bb29a4e795668e1ec52131dbaf0d87b9cfb8ffe1fa855bf8f34e841b8fac90c356545f47a711b533e3593219e957";
+      sha256 = "bcec06d4b01268ca90d99a98a45c2ef5927ae4152b6b2d356332f3690de08f62";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/en-GB/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/en-CA/thunderbird-78.2.1.tar.bz2";
+      locale = "en-CA";
+      arch = "linux-i686";
+      sha256 = "475a1393917665c17bc5e787ef29dd886f1480d544f55d1caacb2a89503da685";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/en-GB/thunderbird-78.2.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha512 = "f4e1d9b10ffc96aa7ef4202e73445d98a06082abcb87fb60d951ce491ead7cee4bad5c1009270004540d03aaf383eb5b8203845f84335b523d92bb586ed5932c";
+      sha256 = "dda5664fd8d843f3f29b85b855d54e00d15188c57e80c01d79a8be0a2eaa0be1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/en-US/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/en-US/thunderbird-78.2.1.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha512 = "a8fcf918c869e8064c2dd39a03bb768616b1a5e4e1c6121aa544d72626bfb790625e2cc48dc973443b947c6e619f9481cb20239d544b10bdf287b7fa4e05128c";
+      sha256 = "b299267b8a113dcd325bc6a928c561fe872535e1e876518e3075b85043aa7b23";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/es-AR/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/es-AR/thunderbird-78.2.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha512 = "6b98ed36080e8eba879e305aa34ccc77e1735700d104f592095cf9810545bdf25665dd36a527e19cf12ec4cf782a6387e30f7b4406b76230c08a350f4cfd5fcc";
+      sha256 = "e3e7cb829b07b7db95cad09c8887b9c91123665cd4601b685e3c7a7b0036992d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/es-ES/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/es-ES/thunderbird-78.2.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha512 = "0cf479d98ce943e20871e7073188db3c9162dec8cf2b0abaedbaabfac9b29411dad39fdf44c038680956c42f7f7e303d5e2bf8d7ef9225fa093821ce760e9974";
+      sha256 = "be8428e1cce22aff5000bdc11f632adfc4c1096060a7456d36230ebd6040d12d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/et/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/et/thunderbird-78.2.1.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha512 = "51584ee5c76710a9b805d4da528d5463f1e51e3efa6ca3b9cf3fc6bb6b953cac6b7919f908975905f619d9be75e4b9ea32980bd5f198f77dae0f75795465fc23";
+      sha256 = "deb81a63704b12ad2a945f5f0dcec878c3b7ec46f551f2d0122c03c52c031f73";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/eu/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/eu/thunderbird-78.2.1.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha512 = "bbcbd4a91856ebb9418c00feed41f00c93ffc5eed4af7c1c27585c707aa8dbfe4e48b0204cbb236a8205a219f0044811dc43f4cc94b6610f30d38120e3ab4b21";
+      sha256 = "8a2935dd5f83854b4d98bdab67e7b376a7e1d19a2ff790234516ba8211ed7345";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/fa/thunderbird-78.2.1.tar.bz2";
+      locale = "fa";
+      arch = "linux-i686";
+      sha256 = "c39189bc1f740a1e5a372eaf3c6e99090f04ed8b1e86016c54ed25612d16f341";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/fi/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/fi/thunderbird-78.2.1.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha512 = "f03014cd7a28b4d85c2d896e8e2a5a1db959c7290c98cfd0c12839170956e98e0087685ab4304fbbdae42b06a8ff7b5563e70c9bbe0a787d2d9b4103019cf31a";
+      sha256 = "4f23c9941975e67e6e40d7a504a24e4058a27786c5989dd3e25cfc4fab4c4c0e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/fr/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/fr/thunderbird-78.2.1.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha512 = "ce7b187a572da6bee677cc7849bd5123545bf437005b16a855d9e4bfcd58a10f3b095a3b0a767d5a67aa113c0a9e0d437827c37fe1c8bf84a3fc8c8d2c702a8d";
+      sha256 = "4de9885664bf4828355d09ceae11fc7cfb603d4514255b4de464c0653ddd45b0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/fy-NL/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/fy-NL/thunderbird-78.2.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha512 = "2062090196c7b07ce148a2937027637469e7593ac092db0bf7139286faac51d350c786c0bfed6e32903bcb7f2ddc4e3df6e993f8637fc68c1aae1be89ceddc98";
+      sha256 = "82ae68d970a02ad57aa9c3dfb6c1ef7783c25211e9228c0bad515c3fef385f88";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ga-IE/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/ga-IE/thunderbird-78.2.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha512 = "fb11eadd35e46081a16116843a4a134b8197c4e8e1d1a52981a085f02bbda7ca49dbf1d9a88f4a7fe2542a99ff24f6d35fc661414cef1fb50edecb98c6693f4f";
+      sha256 = "e6035d81bfa5c58ab79e71b9895638f23e47e8ab2990794786c5e9f590bb70e2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/gd/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/gd/thunderbird-78.2.1.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha512 = "e9b985732d6619555c24ababbbe38303998750986395c647aadebb0c209467fcdfe5f9dca99ecef0e0b747aa8598f887ef2218140ad1d97e7e3d73b430dad1d6";
+      sha256 = "2c628c5ed8ad0c00c42b384f8b925887e624f6a6dee69c86800a9b5137f04886";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/gl/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/gl/thunderbird-78.2.1.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha512 = "3b8eff0004db222eff3b4f42be4eff168310fd0e17e676ae92fddd9c11e3a6d4826c63a35f9de37095a7fa88f7f4931e36bc17ace548e36f91bd8334fa53799f";
+      sha256 = "49b8e22610f8e602a3870f541209251b61da8cb81df7f0a762d01002fef568e2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/he/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/he/thunderbird-78.2.1.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha512 = "e3dcd319e08ddb5aef2bc576f136eae7838e3aca3c9160aabdaecc32332f0c250201a80f31724233a77f4dd2857684f2bcd9b194df5ec965d69cc04a9e9b7da9";
+      sha256 = "5bb7193eb498d1edd713e18bbac630ba881b0a9b7fca9b05c9b8e4dd1ea1edbf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/hr/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/hr/thunderbird-78.2.1.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha512 = "84164d00d087e507ab79aa4db6567311bd0cecbde1cb1be7337f4ffc42abc8c7cd0f4fe9a3aae2e35b01683f96e1bfbc816fa96e6fb872157cb473128679e19f";
+      sha256 = "c31022ae9a1665cc0b22ab0e911730ccf5cd0dd24614fbd8d3bd51624760baa3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/hsb/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/hsb/thunderbird-78.2.1.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha512 = "a3fac91f5e2fbf739d2f2c164c6d58ea89026c1e8250a41c51ee11640bd7831c73a4c3148cd80ae2b40a2e1a369d47d3832f96a276dae2c80ba2d90d6990d062";
+      sha256 = "3e286b3ccf66300ead4d6b98a88a370fa1bac96244b143005c4974f075ceca92";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/hu/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/hu/thunderbird-78.2.1.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha512 = "002c42f700616d2ddcf1753d37de064959965e4504112e96507a8aaf2398fa25f650e1fcb50189aebf3bc3d0c3de795b496d1f8e1550fc0186d74ef312a11d74";
+      sha256 = "6d0c88c46d0f4ffb296638e4e8217041d8fdaec3abaa6bda7b7cf97c4bcabc2a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/hy-AM/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/hy-AM/thunderbird-78.2.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha512 = "41fe16657886ccde1c6410e3e62ade72d8890a50e77526994e82cb929c8296110d0aa32d8d02dd7d1482d594322325d28cfa54afe113dc69e2520dcfd56516f1";
+      sha256 = "aac23dfa8c299623bca2e3b0501a636c630fbf3f5b08689911569a568b3ad060";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/id/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/id/thunderbird-78.2.1.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha512 = "8fb8703220a801bb2d29e436d28325a3310b61f6a22d3d8964b98bd9cea9e74f9e53cd41c8c9a501057d1915a6c71f6f5d27fea267b802082488d2690a0ee088";
+      sha256 = "5bd5597cb6e91613a39c288d694f3af4f5686dcab1573e3b58c04dce3d1de865";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/is/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/is/thunderbird-78.2.1.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha512 = "09c59bca1a0282416aff4043b7d64e5f8ce308792efd35e197b2d91125715453769b482e5815c9f33cd0d9d3809bbe898c40e767c13786868673bc7f041f1c17";
+      sha256 = "bcd926c704177945aa7b917fe12940e058d12e6cf8a3eedbf1ab205fb9c41b80";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/it/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/it/thunderbird-78.2.1.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha512 = "c3f09f2681d0aa197084b0935855dba98517d6f5595595385d93dd7a998ff5b0c98f35141091f41ea8e91ea10b25f6464f242218cd7030351347f77f35396ca2";
+      sha256 = "04ca02a4fed6e8d904173d9ce52c16e47d7e9b3d16f5483d986f8188ec79d65c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ja/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/ja/thunderbird-78.2.1.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha512 = "4bdea34b50edfea5b3dd3bb80935e1148b3ad926c95d84a3d265268f783ff3c487527726b0151643c8f3eb5d061d441742da23f6cb03297894a8076a87275574";
+      sha256 = "1dbdc30ec3a06f2e7e7d38d9036fb90a2fdaad42356e9386ecc710d9a51f94b3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ka/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/ka/thunderbird-78.2.1.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha512 = "ec029d7a58aa502742160e131eab70f50f83851124297fef72214d58f1309f047b9881d824432a8bd3841dd158493ca2b41e41f4f9bf9dc043db9ec4df1a1d24";
+      sha256 = "2db1fa86ac87e0b8001b99c0eea30589db515c58e10548565533014481b1be9a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/kab/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/kab/thunderbird-78.2.1.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha512 = "cf291b9d2924e72b9871a4eadf10118cd0299e2206151c67bf36fe0c766b75c9e67e9b11e8612ca5d95c50c6cd3d90e95210e9625ed8eb1c14ba5a8d45bb997b";
+      sha256 = "8499d0d8a0372617800b039c9198cc372783b8ff4ce385fc692e39b1dca22576";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/kk/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/kk/thunderbird-78.2.1.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha512 = "1031db4a9f0716973fb1ddbc8e12b2252bdb8450617a6c642ad4001c119cd3eb3bad999b861e8204a85699b415fdc5d768b6aafa6fee2c5b9efb7e9a3558eda2";
+      sha256 = "29b228042a7f06c22300b123cc0fcdf7a86005d0d4c3c282c97635ebc25ce826";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ko/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/ko/thunderbird-78.2.1.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha512 = "bde75ae38856970c4da871cdbd63d96f31021f707869be7517d4c719ecce3f505f886c65e9faad8bcc0ac26885777e070246576fd47f75669b77f0247689954f";
+      sha256 = "a7af79975107cb32b408c7dd26827793c3c11f998705bc711c60f3dd6b7a1173";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/lt/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/lt/thunderbird-78.2.1.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha512 = "9459b50e1fd01ce742bfe6f13ac26241958ad5307c08e3980ed5a84023a12be009dc6a83085ad52c68e162e6a45f4f430e79e21e4d19f67e470ab07151c40bc8";
+      sha256 = "7a5010761d0af24a6852f32b1ebd6b543b1e1011888ded3f4a4297fc35f455b5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ms/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/ms/thunderbird-78.2.1.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha512 = "0632af25fd5245ec2a15a09a075db24a64e3020ea6353e88f72fa74f929d8507cb868cc617da8e97f01efff19a9108c9b2b30adc8e58b0e7e6353332219e658d";
+      sha256 = "8573dc35bd69ff20d05aa06484a2243f5a35ec78c1c31dbccc067f0cb9e6617a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/nb-NO/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/nb-NO/thunderbird-78.2.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha512 = "b16523b5a40dbe496537df487d72f8cb16ccf338c1a96e6ec3dc7e1a5d3073991c12ada23fc6b31f34d2fb712050334eae145a45420994c607a63799ed42d264";
+      sha256 = "722c0a4ce2a0d774f8971707ff553d9f2e62af10267ef491e670b020a2d8a49c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/nl/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/nl/thunderbird-78.2.1.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha512 = "82f0ab2e4969323ea8294f732b13144ddd453a613a68b582ff398cb85aee88874a5fb5eb61627f142ce8124b476f49fa6cf68cdaa41fdaf3621519c53c4ac16b";
+      sha256 = "63a08123e795ab8e51a2c98f33b0b6424c1f5f2c09a5d1683585f9762813afaf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/nn-NO/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/nn-NO/thunderbird-78.2.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha512 = "815d0010de5f6d9144a182a2170c59a502b167f18eec65d23987e4b73e6d5bae46be18d7f55462a3ec8634466639aceca03ad9b772c7e8b232eb874998e6148c";
+      sha256 = "8968de35faf9fe304631ece4e08a9944342a08dc518ac1eec0ba2d5c1ff268ed";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/pa-IN/thunderbird-78.2.1.tar.bz2";
+      locale = "pa-IN";
+      arch = "linux-i686";
+      sha256 = "57685a05321195019ef4d3c489dbb14ac0f1bd5ce51fda1f7573392de215e4e3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/pl/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/pl/thunderbird-78.2.1.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha512 = "5be434a54c91097d4f6477767af96f8b862828912783eee48577cc450a14eceee2e067e9c10697633a2833f473b9d10bea33b3c6c6377b898a18d3d7c6568f96";
+      sha256 = "d98967c9d54f9314faae53472b9d1506576761cd3de09747d3b407e1f26931e4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/pt-BR/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/pt-BR/thunderbird-78.2.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha512 = "b7b3fd6bb8535f2328ceb9259d7517bfd695cc881130720d3857d5a27197deba4fe683e163f49613054ebec2827e805a31a62c9a9e578f4ffb760f421a4ea506";
+      sha256 = "14fa89b2d8f659a90e19068130ce1a2da83137b7fb9a5a009d2363ccc2415009";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/pt-PT/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/pt-PT/thunderbird-78.2.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha512 = "b9561a6f55c25cff2bec9bda78e46204dc85429c52bb42f33b6ae972c0bf16f3a99ccbe3f283ef08cca955d31e5eb6d91ff9d8b50e85bd75443998236d6e08b1";
+      sha256 = "279f325e75157e0cedffe6a455e731373b077078f70b89bba76e12e2439350d8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/rm/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/rm/thunderbird-78.2.1.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha512 = "7ff72dc448c9303a70403558ae46cd720e645c24681dabbf265db783ef872e92216f8ee9169e155904d3fcd3288f2ee0ad11ca22bbf041b380884d57b306876e";
+      sha256 = "7432093e7516625957c3dcb90e8668fab1e22c0edba0411e3e2106d49e052fdf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ro/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/ro/thunderbird-78.2.1.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha512 = "7f585b942076749269ca86161694ef1b9f4e68e75300d60ea4141b2404be0c79761a2658c123787d67e65992e4b3dd5b7406acfee6084846bdefdb0f82d9baea";
+      sha256 = "f5d5f564cf56c66d1f2f9717df7c7f021532dc1912384c9921ca286030f7d82c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ru/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/ru/thunderbird-78.2.1.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha512 = "e4ef9e081cfdb3567f1823866ffd0e3e5fbe8596fd3a7dbb94869a8d1ebd328938c490669c8f46bc6575d6b8c5c351e387faf8dd2a33db263cb2fb5ddb2974f5";
+      sha256 = "4c4e31e74c4d10d88044fc49c24b3ae3ffb0b18e4a23295b60ac2d38d723753a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/si/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/si/thunderbird-78.2.1.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha512 = "42db8e43c4bd722102778d4a9cdfb0ba54b0151882b7963e07c0b8cd653d7303eb22a541a8fc3a5b93c9db09c1a24db8f5c3365b5654e997c17d3b4b2c2a5f38";
+      sha256 = "689be324633f6a872a09d6498d8772562dceca9bca96f7029830c965ad2e4138";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/sk/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/sk/thunderbird-78.2.1.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha512 = "fb025203b739cd89169bc25b36e6d541ebaf8726720c0b51e58a33fd0e71c2a4ae46428fe16547ed5e639e81ce35253a5519a28de9a8baa952a1b1af184b77a3";
+      sha256 = "194ff5a23a3a40ba98fb1968965c79f99246c6d93b81254d11df5d22530f1d86";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/sl/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/sl/thunderbird-78.2.1.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha512 = "ba392d3748b697d323e63c7217ce3c3aa4eaf6b994d798655a1667644733a6f19b23b95df420b2235e9ee000a868485d4f32fbe5d737ef5c7296c085738168bd";
+      sha256 = "9746db435fe3dbf5ab51603780d52862a6afda0e40c1ebc915b309ac93e75e25";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/sq/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/sq/thunderbird-78.2.1.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha512 = "b795928265f2b50a1032ab8fcce954f6d0d35a6dab2b381f11ca1b6b204aa1ae91b0ceb221da5ccadcca303f20792715d0f770c215dc59654df1b325ccc3e42e";
+      sha256 = "86f675921cdf0de41855d5e2c3d2d56c163d915ac8a0f8cc9678d1a55f87e069";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/sr/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/sr/thunderbird-78.2.1.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha512 = "274c3675cd3d5264c2ce74b101b7c87bfd1703645e4341f6499c25b4905781395f514ed8412b22289ad097994e748ee7b527f1d6081022429292a64155d2df74";
+      sha256 = "587e4c867dd43621c8e5e04461c4a2dcf2b0f256476b5b72d8fc6722e573e347";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/sv-SE/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/sv-SE/thunderbird-78.2.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha512 = "318ccb06cf2c9f5fdbf25fe70a8c5e65c20e5d7ca375f52f64724410d2afa8a852f9e9e77b673c1f59e26bddd6fde74783a96f69f7bd73a1b7042633b624b310";
+      sha256 = "a46294d3dafc8bfaaa7f5376c2db2402f31f24664e73045c653ea8660079b879";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/th/thunderbird-78.2.1.tar.bz2";
+      locale = "th";
+      arch = "linux-i686";
+      sha256 = "6105278c11c3e586240d50c9612730e75caecd08765b5b5cfe010f37d71c971d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/tr/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/tr/thunderbird-78.2.1.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha512 = "a86a69a8c146a0765e9fb7c835c1cc774a0a7fc309fa7f6627f427bc2cb4bd1b3e18f4aa61288cb68483f267b0be02662250abcdcafcb6619f1b4e3437cbb908";
+      sha256 = "4bdd2c91e8f361d1b2ade88cec06accb244adf3d7f1d714feea3e4004ed31968";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/uk/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/uk/thunderbird-78.2.1.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha512 = "86407123381e64df9f97190b0df253792582b0ba5296d6663bc0d8faf3004e3ec95cbc0140c9292928a7750cece1cc6887086a9e218f3169bee2246232643685";
+      sha256 = "40e2012a5b5dc05cb887a6c4cbb0c8f7bbc25cebd2de1247e5e8dc355cad78fe";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/uz/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/uz/thunderbird-78.2.1.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha512 = "2d31a86952df2f5b339479cc6dabd1cbcc000119514775b07ca086e01e8310fe0d0d2c63cc57cb936588c59a5f72a5d9dae0e0a6e2f9b7cdf6225e400c24bd31";
+      sha256 = "15f4aafba6b2bcb102683d9a665d208ab21c5767cf6d59c45d996fa26ef1e12a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/vi/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/vi/thunderbird-78.2.1.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha512 = "3c241242e918bb69d811289879323205c070620829e05488e224450e7edb2be32b0f2c36f3182fcab95a1673fd133635e89801feaf6a34fa1553d8fea3b57641";
+      sha256 = "32640a1c8e42cc79774a3b75539010dfb65e32c703992001eb03916d4fb46e91";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/zh-CN/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/zh-CN/thunderbird-78.2.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha512 = "b4932b43158a5f8627ec951a3cb726863575a81b9d7b93ab35a9168224cd91480ecde55a1e7d4c01b9ed74f92440724475980010f1645db9b2ef0b6c42e92d93";
+      sha256 = "09b52b6ebf0033738444bacfb53b84b1c98f7d3e10b32c001356083afbe4e89e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/zh-TW/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.2.1/linux-i686/zh-TW/thunderbird-78.2.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha512 = "018fff050295932a492433992a97fd01acc36685f7d1f96bba2f41972fdd6cd592c117434d2de81d0d018595c8473427aefe5a7b66194bc18d127c2e7eab5a34";
+      sha256 = "606e416a158023f674eda141bf67f9b3956e3e231ba85605173d73cad0d22a59";
     }
     ];
 }
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/68.nix b/pkgs/applications/networking/mailreaders/thunderbird/68.nix
new file mode 100644
index 00000000000..fef707b7293
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/thunderbird/68.nix
@@ -0,0 +1,340 @@
+# This pakcage is keeped until Thunderbird 78 supports OpenPGP.
+# https://www.thunderbird.net/en-US/thunderbird/78.0.1/releasenotes/
+{ autoconf213
+, bzip2
+, cargo
+, common-updater-scripts
+, coreutils
+, curl
+, dbus
+, dbus-glib
+, fetchurl
+, file
+, fontconfig
+, freetype
+, glib
+, gnugrep
+, gnused
+, icu
+, jemalloc
+, lib
+, libGL
+, libGLU
+, libevent
+, libjpeg
+, libnotify
+, libpng
+, libstartup_notification
+, libvpx
+, libwebp
+, llvmPackages
+, m4
+, makeDesktopItem
+, nasm
+, nodejs
+, nspr
+, nss
+, pango
+, perl
+, pkgconfig
+, python2
+, python3
+, runtimeShell
+, rust-cbindgen
+, rustc
+, sqlite
+, stdenv
+, systemd
+, unzip
+, which
+, writeScript
+, xidel
+, xorg
+, yasm
+, zip
+, zlib
+
+, debugBuild ? false
+
+, alsaSupport ? stdenv.isLinux, alsaLib
+, pulseaudioSupport ? stdenv.isLinux, libpulseaudio
+, gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
+, waylandSupport ? true
+, libxkbcommon, calendarSupport ? true
+
+# Use official trademarked branding.  Permission obtained at:
+# https://github.com/NixOS/nixpkgs/pull/94880#issuecomment-675907971
+, enableOfficialBranding ? true
+}:
+
+assert waylandSupport -> gtk3Support == true;
+
+stdenv.mkDerivation rec {
+  pname = "thunderbird";
+  version = "68.12.0";
+
+  src = fetchurl {
+    url =
+      "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
+    sha512 =
+      "33350vjgzvsg6sdhdld92z75k1xcf1wmngdcvzsj4f3y3aal73pyw03mlvgg6y36bm0j8fhaxvgbbg5zm7hxhn779z78970m4v9amg7";
+  };
+
+  nativeBuildInputs = [
+    autoconf213
+    cargo
+    gnused
+    llvmPackages.llvm
+    m4
+    nasm
+    nodejs
+    perl
+    pkgconfig
+    python2
+    python3
+    rust-cbindgen
+    rustc
+    which
+    yasm
+  ] ++ lib.optional gtk3Support wrapGAppsHook;
+
+  buildInputs = [
+    bzip2
+    dbus
+    dbus-glib
+    file
+    fontconfig
+    freetype
+    glib
+    gtk2
+    icu
+    jemalloc
+    libGL
+    libGLU
+    libevent
+    libjpeg
+    libnotify
+    libpng
+    libstartup_notification
+    libvpx
+    libwebp
+    nspr
+    nss
+    pango
+    perl
+    sqlite
+    unzip
+    xorg.libX11
+    xorg.libXScrnSaver
+    xorg.libXcursor
+    xorg.libXext
+    xorg.libXft
+    xorg.libXi
+    xorg.libXrender
+    xorg.libXt
+    xorg.pixman
+    xorg.xorgproto
+    zip
+    zlib
+  ] ++ lib.optional alsaSupport alsaLib
+    ++ lib.optional gtk3Support gtk3
+    ++ lib.optional pulseaudioSupport libpulseaudio
+    ++ lib.optional waylandSupport libxkbcommon;
+
+  NIX_CFLAGS_COMPILE =[
+    "-I${glib.dev}/include/gio-unix-2.0"
+    "-I${nss.dev}/include/nss"
+  ];
+
+  patches = [
+    ./no-buildconfig-68.patch
+  ];
+
+  postPatch = ''
+    rm -rf obj-x86_64-pc-linux-gnu
+  '';
+
+  hardeningDisable = [ "format" ];
+
+  preConfigure = ''
+    # remove distributed configuration files
+    rm -f configure
+    rm -f js/src/configure
+    rm -f .mozconfig*
+
+    configureScript="$(realpath ./mach) configure"
+    # AS=as in the environment causes build failure https://bugzilla.mozilla.org/show_bug.cgi?id=1497286
+    unset AS
+
+    export MOZCONFIG=$(pwd)/mozconfig
+
+    # Set C flags for Rust's bindgen program. Unlike ordinary C
+    # compilation, bindgen does not invoke $CC directly. Instead it
+    # uses LLVM's libclang. To make sure all necessary flags are
+    # included we need to look in a few places.
+    # TODO: generalize this process for other use-cases.
+
+    BINDGEN_CFLAGS="$(< ${stdenv.cc}/nix-support/libc-cflags) \
+      $(< ${stdenv.cc}/nix-support/cc-cflags) \
+      $(< ${stdenv.cc}/nix-support/libcxx-cxxflags) \
+      ${
+        lib.optionalString stdenv.cc.isClang
+        "-idirafter ${stdenv.cc.cc}/lib/clang/${
+          lib.getVersion stdenv.cc.cc
+        }/include"
+      } \
+      ${
+        lib.optionalString stdenv.cc.isGNU
+        "-isystem ${stdenv.cc.cc}/include/c++/${
+          lib.getVersion stdenv.cc.cc
+        } -isystem ${stdenv.cc.cc}/include/c++/${
+          lib.getVersion stdenv.cc.cc
+        }/${stdenv.hostPlatform.config}"
+      } \
+      $NIX_CFLAGS_COMPILE"
+
+    echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG
+  '';
+
+  configureFlags = let
+    toolkitSlug = if gtk3Support then
+      "3${lib.optionalString waylandSupport "-wayland"}"
+    else
+      "2";
+    toolkitValue = "cairo-gtk${toolkitSlug}";
+  in [
+    "--enable-application=comm/mail"
+
+    "--with-system-bz2"
+    "--with-system-icu"
+    "--with-system-jpeg"
+    "--with-system-libevent"
+    "--with-system-nspr"
+    "--with-system-nss"
+    "--with-system-png" # needs APNG support
+    "--with-system-icu"
+    "--with-system-zlib"
+    "--with-system-webp"
+    "--with-system-libvpx"
+
+    "--enable-rust-simd"
+    "--enable-crashreporter"
+    "--enable-default-toolkit=${toolkitValue}"
+    "--enable-js-shell"
+    "--enable-necko-wifi"
+    "--enable-startup-notification"
+    "--enable-system-ffi"
+    "--enable-system-pixman"
+    "--enable-system-sqlite"
+
+    "--disable-gconf"
+    "--disable-tests"
+    "--disable-updater"
+    "--enable-jemalloc"
+  ] ++ (if debugBuild then [
+    "--enable-debug"
+    "--enable-profiling"
+  ] else [
+    "--disable-debug"
+    "--enable-release"
+    "--disable-debug-symbols"
+    "--enable-optimize"
+    "--enable-strip"
+  ]) ++ lib.optionals (!stdenv.hostPlatform.isi686) [
+    # on i686-linux: --with-libclang-path is not available in this configuration
+    "--with-libclang-path=${llvmPackages.libclang}/lib"
+    "--with-clang-path=${llvmPackages.clang}/bin/clang"
+  ] ++ lib.optional alsaSupport "--enable-alsa"
+  ++ lib.optional calendarSupport "--enable-calendar"
+  ++ lib.optional enableOfficialBranding "--enable-official-branding"
+  ++ lib.optional pulseaudioSupport "--enable-pulseaudio";
+
+  enableParallelBuilding = true;
+
+  postConfigure = ''
+    cd obj-*
+  '';
+
+  makeFlags = lib.optionals enableOfficialBranding [
+    "MOZILLA_OFFICIAL=1"
+    "BUILD_OFFICIAL=1"
+  ];
+
+  doCheck = false;
+
+  postInstall = let
+    desktopItem = makeDesktopItem {
+      categories = lib.concatStringsSep ";" [ "Application" "Network" ];
+      desktopName = "Thunderbird";
+      genericName = "Mail Reader";
+      name = "thunderbird";
+      exec = "thunderbird %U";
+      icon = "$out/lib/thunderbird/chrome/icons/default/default256.png";
+      mimeType = lib.concatStringsSep ";" [
+        # Email
+        "x-scheme-handler/mailto"
+        "message/rfc822"
+        # Feeds
+        "x-scheme-handler/feed"
+        "application/rss+xml"
+        "application/x-extension-rss"
+        # Newsgroups
+        "x-scheme-handler/news"
+        "x-scheme-handler/snews"
+        "x-scheme-handler/nntp"
+      ];
+    };
+  in ''
+    # TODO: Move to a dev output?
+    rm -rf $out/include $out/lib/thunderbird-devel-* $out/share/idl
+
+    ${desktopItem.buildCommand}
+  '';
+
+  preFixup = ''
+    # Needed to find Mozilla runtime
+    gappsWrapperArgs+=(
+      --argv0 "$out/bin/thunderbird"
+      --set MOZ_APP_LAUNCHER thunderbird
+      # https://github.com/NixOS/nixpkgs/pull/61980
+      --set SNAP_NAME "thunderbird"
+      --set MOZ_LEGACY_PROFILES 1
+      --set MOZ_ALLOW_DOWNGRADE 1
+    )
+  '';
+
+  # FIXME: The XUL portion of this can probably be removed as soon as we
+  # package a Thunderbird >=71.0 since XUL shouldn't be anymore (in use)?
+  postFixup = ''
+    local xul="$out/lib/thunderbird/libxul.so"
+    patchelf --set-rpath "${libnotify}/lib:${lib.getLib systemd}/lib:$(patchelf --print-rpath $xul)" $xul
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    "$out/bin/thunderbird" --version
+  '';
+
+  disallowedRequisites = [
+    stdenv.cc
+  ];
+
+  passthru.updateScript = import ./../../browsers/firefox/update.nix {
+    attrPath = "thunderbird";
+    baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/";
+    inherit writeScript lib common-updater-scripts xidel coreutils gnused
+      gnugrep curl runtimeShell;
+  };
+
+  meta = with stdenv.lib; {
+    description = "A full-featured e-mail client";
+    homepage = "https://www.thunderbird.net";
+    maintainers = with maintainers; [
+      eelco
+      lovesegfault
+      pierron
+    ];
+    platforms = platforms.linux;
+    license = licenses.mpl20;
+  };
+}
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
index 3b0be4dad19..7a10c7f1d2a 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
@@ -60,25 +60,22 @@
 , waylandSupport ? true
 , libxkbcommon, calendarSupport ? true
 
-, # If you want the resulting program to call itself "Thunderbird" instead
-# of "Earlybird" or whatever, enable this option.  However, those
-# binaries may not be distributed without permission from the
-# Mozilla Foundation, see
-# http://www.mozilla.org/foundation/trademarks/.
-enableOfficialBranding ? false
+# Use official trademarked branding.  Permission obtained at:
+# https://github.com/NixOS/nixpkgs/pull/94880#issuecomment-675907971
+, enableOfficialBranding ? true
 }:
 
 assert waylandSupport -> gtk3Support == true;
 
 stdenv.mkDerivation rec {
   pname = "thunderbird";
-  version = "68.9.0";
+  version = "78.2.1";
 
   src = fetchurl {
     url =
       "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
     sha512 =
-      "3q0dikgkfr72hhz39pxi2f0cljn09lw4940qcn9kzfwfid2h290j7pihx6gs0z6h82fl78f9fl1598d064lwl1i2434dzx6bg4p4549";
+      "2iya9a5qaini524wrdrnxx6wsrgb8fa2b1m42mlypskxjjgb7n66vpxlbpi9x9mqzc63ca2ag36fjpbpsvbv5ppxvpfwk2j1zbfvb5w";
   };
 
   nativeBuildInputs = [
@@ -175,9 +172,10 @@ stdenv.mkDerivation rec {
     # included we need to look in a few places.
     # TODO: generalize this process for other use-cases.
 
-    BINDGEN_CFLAGS="$(< ${stdenv.cc}/nix-support/libc-cflags) \
+    BINDGEN_CFLAGS="$(< ${stdenv.cc}/nix-support/libc-crt1-cflags) \
+      $(< ${stdenv.cc}/nix-support/libc-cflags) \
       $(< ${stdenv.cc}/nix-support/cc-cflags) \
-      ${stdenv.cc.default_cxx_stdlib_compile} \
+      $(< ${stdenv.cc}/nix-support/libcxx-cxxflags) \
       ${
         lib.optionalString stdenv.cc.isClang
         "-idirafter ${stdenv.cc.cc}/lib/clang/${
@@ -206,14 +204,12 @@ stdenv.mkDerivation rec {
   in [
     "--enable-application=comm/mail"
 
-    "--with-system-bz2"
     "--with-system-icu"
     "--with-system-jpeg"
     "--with-system-libevent"
     "--with-system-nspr"
     "--with-system-nss"
     "--with-system-png" # needs APNG support
-    "--with-system-icu"
     "--with-system-zlib"
     "--with-system-webp"
     "--with-system-libvpx"
@@ -223,12 +219,9 @@ stdenv.mkDerivation rec {
     "--enable-default-toolkit=${toolkitValue}"
     "--enable-js-shell"
     "--enable-necko-wifi"
-    "--enable-startup-notification"
     "--enable-system-ffi"
     "--enable-system-pixman"
-    "--enable-system-sqlite"
 
-    "--disable-gconf"
     "--disable-tests"
     "--disable-updater"
     "--enable-jemalloc"
@@ -308,7 +301,7 @@ stdenv.mkDerivation rec {
   # package a Thunderbird >=71.0 since XUL shouldn't be anymore (in use)?
   postFixup = ''
     local xul="$out/lib/thunderbird/libxul.so"
-    patchelf --set-rpath "${libnotify}/lib:${systemd.lib}/lib:$(patchelf --print-rpath $xul)" $xul
+    patchelf --set-rpath "${libnotify}/lib:${lib.getLib systemd}/lib:$(patchelf --print-rpath $xul)" $xul
   '';
 
   doInstallCheck = true;
@@ -321,7 +314,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru.updateScript = import ./../../browsers/firefox/update.nix {
-    attrPath = "thunderbird";
+    attrPath = "thunderbird-78";
     baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/";
     inherit writeScript lib common-updater-scripts xidel coreutils gnused
       gnugrep curl runtimeShell;
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-68.patch b/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-68.patch
new file mode 100644
index 00000000000..482c10bd1cf
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-68.patch
@@ -0,0 +1,36 @@
+Remove about:buildconfig.  If used as-is, it would add unnecessary runtime dependencies.
+diff -ru -x '*~' a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp
+--- a/docshell/base/nsAboutRedirector.cpp	2017-07-31 18:20:51.000000000 +0200
++++ b/docshell/base/nsAboutRedirector.cpp	2017-09-26 22:02:00.814151731 +0200
+@@ -32,8 +32,6 @@
+     {"about", "chrome://global/content/aboutAbout.xhtml", 0},
+     {"addons", "chrome://mozapps/content/extensions/extensions.xul",
+      nsIAboutModule::ALLOW_SCRIPT},
+-    {"buildconfig", "chrome://global/content/buildconfig.html",
+-     nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT},
+     {"checkerboard", "chrome://global/content/aboutCheckerboard.xhtml",
+      nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
+          nsIAboutModule::ALLOW_SCRIPT},
+diff -ru -x '*~' a/toolkit/content/jar.mn b/toolkit/content/jar.mn
+--- a/toolkit/content/jar.mn	2017-07-31 18:20:52.000000000 +0200
++++ b/toolkit/content/jar.mn	2017-09-26 22:01:42.383350314 +0200
+@@ -39,7 +39,6 @@
+    content/global/plugins.css
+    content/global/browser-child.js
+    content/global/browser-content.js
+-*   content/global/buildconfig.html
+    content/global/buildconfig.css
+    content/global/contentAreaUtils.js
+    content/global/datepicker.xhtml
+--- a/comm/mail/base/jar.mn
++++ b/comm/mail/base/jar.mn
+@@ -117,9 +117,7 @@
+ % override chrome://mozapps/content/profile/profileDowngrade.js chrome://messenger/content/profileDowngrade.js
+ % override chrome://mozapps/content/profile/profileDowngrade.xul chrome://messenger/content/profileDowngrade.xul
+ 
+-*   content/messenger/buildconfig.html              (content/buildconfig.html)
+     content/messenger/buildconfig.css               (content/buildconfig.css)
+-% override chrome://global/content/buildconfig.html chrome://messenger/content/buildconfig.html
+ % override chrome://global/content/buildconfig.css chrome://messenger/content/buildconfig.css
+ 
+ # L10n resources and overrides.
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch b/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch
index fe3a93ebda7..d413a06475d 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch
+++ b/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch
@@ -1,31 +1,33 @@
+Remove about:buildconfig.  If used as-is, it would add unnecessary runtime dependencies.
 diff -ru -x '*~' a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp
---- a/docshell/base/nsAboutRedirector.cpp	2017-07-31 18:20:51.000000000 +0200
-+++ b/docshell/base/nsAboutRedirector.cpp	2017-09-26 22:02:00.814151731 +0200
-@@ -32,8 +32,6 @@
-     {"about", "chrome://global/content/aboutAbout.xhtml", 0},
-     {"addons", "chrome://mozapps/content/extensions/extensions.xul",
+--- a/docshell/base/nsAboutRedirector.cpp
++++ b/docshell/base/nsAboutRedirector.cpp
+@@ -63,8 +63,6 @@
+     {"about", "chrome://global/content/aboutAbout.html", 0},
+     {"addons", "chrome://mozapps/content/extensions/extensions.xhtml",
       nsIAboutModule::ALLOW_SCRIPT},
 -    {"buildconfig", "chrome://global/content/buildconfig.html",
 -     nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT},
-     {"checkerboard", "chrome://global/content/aboutCheckerboard.xhtml",
+     {"checkerboard", "chrome://global/content/aboutCheckerboard.html",
       nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
           nsIAboutModule::ALLOW_SCRIPT},
 diff -ru -x '*~' a/toolkit/content/jar.mn b/toolkit/content/jar.mn
---- a/toolkit/content/jar.mn	2017-07-31 18:20:52.000000000 +0200
-+++ b/toolkit/content/jar.mn	2017-09-26 22:01:42.383350314 +0200
-@@ -39,7 +39,6 @@
-    content/global/plugins.css
+--- a/toolkit/content/jar.mn
++++ b/toolkit/content/jar.mn
+@@ -35,7 +35,6 @@
+    content/global/plugins.js
     content/global/browser-child.js
     content/global/browser-content.js
 -*   content/global/buildconfig.html
     content/global/buildconfig.css
     content/global/contentAreaUtils.js
     content/global/datepicker.xhtml
+diff -ru -x '*~' a/comm/mail/base/jar.mn b/comm/mail/base/jar.mn
 --- a/comm/mail/base/jar.mn
 +++ b/comm/mail/base/jar.mn
-@@ -117,9 +117,7 @@
+@@ -119,9 +119,7 @@
  % override chrome://mozapps/content/profile/profileDowngrade.js chrome://messenger/content/profileDowngrade.js
- % override chrome://mozapps/content/profile/profileDowngrade.xul chrome://messenger/content/profileDowngrade.xul
+ % override chrome://mozapps/content/profile/profileDowngrade.xhtml chrome://messenger/content/profileDowngrade.xhtml
  
 -*   content/messenger/buildconfig.html              (content/buildconfig.html)
      content/messenger/buildconfig.css               (content/buildconfig.css)
diff --git a/pkgs/applications/networking/mailreaders/trojita/default.nix b/pkgs/applications/networking/mailreaders/trojita/default.nix
index f383018e253..6f885dd18be 100644
--- a/pkgs/applications/networking/mailreaders/trojita/default.nix
+++ b/pkgs/applications/networking/mailreaders/trojita/default.nix
@@ -19,12 +19,12 @@
 
 mkDerivation rec {
   pname = "trojita";
-  version = "0.7.20190618";
+  version = "0.7.20200706";
 
   src = fetchgit {
     url = "https://anongit.kde.org/trojita.git";
-    rev = "90b417b131853553c94ff93aef62abaf301aa8f1";
-    sha256 = "0xpxq5bzqaa68lkz90wima5q2m0mdcn0rvnigb66lylb4n20mnql";
+    rev = "e973a5169f18ca862ceb8ad749c93cd621d86e14";
+    sha256 = "0r8nmlqwgsqkk0k8xh32fkwvv6iylj35xq2h8b7l3g03yc342kbn";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/networking/modem-manager-gui/default.nix b/pkgs/applications/networking/modem-manager-gui/default.nix
index 38662bf7f69..64b1be363f3 100644
--- a/pkgs/applications/networking/modem-manager-gui/default.nix
+++ b/pkgs/applications/networking/modem-manager-gui/default.nix
@@ -1,15 +1,14 @@
 { stdenv
 , pkgconfig
 , python3
-, fetchhg
-, fetchpatch
+, fetchFromGitLab
 , gtk3
 , glib
 , gdbm
 , gtkspell3
 , ofono
 , itstool
-, libappindicator-gtk3
+, libayatana-appindicator-gtk3
 , perlPackages
 , glibcLocales
 , meson
@@ -18,22 +17,16 @@
 
 stdenv.mkDerivation rec {
   pname = "modem-manager-gui";
-  version = "0.0.19.1";
+  version = "0.0.20";
 
-  src = fetchhg {
-    url = "https://linuxonly@bitbucket.org/linuxonly/modem-manager-gui";
-    rev = "version ${version}";
-    sha256 = "11iibh36567814h2bz41sa1072b86p1l13xyj670pwkh9k8kw8fd";
+  src = fetchFromGitLab {
+    domain = "salsa.debian.org";
+    owner = "debian";
+    repo = "modem-manager-gui";
+    rev = "upstream%2F${version}";
+    sha256 = "1pjx4rbsxa7gcs628yjkwb0zqrm5xq8pkmp0cfk4flfk1ryflmgr";
   };
 
-  patches = [
-    # Fix docs build
-    (fetchpatch {
-      url = "https://bitbucket.org/linuxonly/modem-manager-gui/commits/68fb09c12413b7de9b7477cbf4241c3527568325/raw";
-      sha256 = "033nrlhjlk0zvadv5g9n2id53ajagswf77mda0ixnrskyi7wiig7";
-    })
-  ];
-
   nativeBuildInputs = [
     pkgconfig
     python3
@@ -49,7 +42,7 @@ stdenv.mkDerivation rec {
     gdbm
     gtkspell3
     ofono
-    libappindicator-gtk3
+    libayatana-appindicator-gtk3
   ];
 
   postPatch = ''
@@ -66,7 +59,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://linuxonly.ru/page/modem-manager-gui";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ ahuzik ];
+    maintainers = with maintainers; [ ahuzik galagora ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/msmtp/default.nix b/pkgs/applications/networking/msmtp/default.nix
index e21cd5b3f0f..ee5ea9d7e03 100644
--- a/pkgs/applications/networking/msmtp/default.nix
+++ b/pkgs/applications/networking/msmtp/default.nix
@@ -9,11 +9,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "msmtp";
-  version = "1.8.11";
+  version = "1.8.12";
 
   src = fetchurl {
     url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
-    sha256 = "0q0fg235qk448l1xjcwyxr7vcpzk6w57jzhjbkb0m7nffyhhypzj";
+    sha256 = "0m33m5bc7ajmgy7vivnzj3mhybg37259hx79xypj769kfyafyvx8";
   };
 
   patches = [
diff --git a/pkgs/applications/networking/mullvad-vpn/default.nix b/pkgs/applications/networking/mullvad-vpn/default.nix
index 265c8add278..aa7aaab29ac 100644
--- a/pkgs/applications/networking/mullvad-vpn/default.nix
+++ b/pkgs/applications/networking/mullvad-vpn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, makeWrapper, fetchurl, dpkg
+{ stdenv, lib, makeWrapper, fetchurl, dpkg
 , alsaLib, atk, cairo, cups, dbus, expat, fontconfig, freetype
 , gdk-pixbuf, glib, gnome2, pango, nspr, nss, gtk3
 , xorg, autoPatchelfHook, systemd, libnotify, libappindicator
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
 
   unpackPhase = "dpkg-deb -x $src .";
 
-  runtimeDependencies = [ systemd.lib libnotify libappindicator ];
+  runtimeDependencies = [ (lib.getLib systemd) libnotify libappindicator ];
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix
index b83e98a558c..c205f18e366 100644
--- a/pkgs/applications/networking/mumble/default.nix
+++ b/pkgs/applications/networking/mumble/default.nix
@@ -6,6 +6,7 @@
 , 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
 , nixosTests
 }:
 
@@ -13,6 +14,7 @@ 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 stdenv.lib;
 let
@@ -117,9 +119,12 @@ let
 
     configureFlags = [
       "CONFIG+=no-client"
-    ] ++ optional (!iceSupport) "CONFIG+=no-ice";
+    ] ++ optional (!iceSupport) "CONFIG+=no-ice"
+      ++ optional grpcSupport "CONFIG+=grpc";
 
-    buildInputs = [ libcap ] ++ optional iceSupport zeroc-ice;
+    buildInputs = [ libcap ]
+      ++ optional iceSupport zeroc-ice
+      ++ optionals grpcSupport [ grpc c-ares abseil-cpp which ];
 
     installPhase = ''
       # bin stuff
@@ -128,14 +133,14 @@ let
   } source;
 
   source = rec {
-    version = "1.3.1";
+    version = "1.3.2";
 
     # Needs submodules
     src = fetchFromGitHub {
       owner = "mumble-voip";
       repo = "mumble";
       rev = version;
-      sha256 = "1xsla9g7xbq6xniwcsjik5hbjh0xahv44qh4z9hjn7p70b8vgnwc";
+      sha256 = "1ljn7h7dr9iyhvq7rdh0prl7hzn9d2hhnxv0ni6dha6f7d9qbfy6";
       fetchSubmodules = true;
     };
   };
diff --git a/pkgs/applications/networking/ncgopher/default.nix b/pkgs/applications/networking/ncgopher/default.nix
new file mode 100644
index 00000000000..2e5e840d50d
--- /dev/null
+++ b/pkgs/applications/networking/ncgopher/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, ncurses6
+, openssl
+, sqlite
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "ncgopher";
+  version = "0.1.5";
+
+  src = fetchFromGitHub {
+    owner = "jansc";
+    repo = "ncgopher";
+    rev = "v${version}";
+    sha256 = "1mv89sanmr49b9za95jl5slpq960b246j2054r8xfafzqmbp44af";
+  };
+
+  cargoSha256 = "12r4vgrg2bkr3p61yxcsg02kppg84vn956l0v1vb08i94rxzc8zk";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [
+    ncurses6
+    openssl
+    sqlite
+  ];
+
+  meta = with lib; {
+    description = "A gopher and gemini client for the modern internet";
+    homepage = "https://github.com/jansc/ncgopher";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/newsreaders/liferea/default.nix b/pkgs/applications/networking/newsreaders/liferea/default.nix
index 2632acd73d3..8ec46080237 100644
--- a/pkgs/applications/networking/newsreaders/liferea/default.nix
+++ b/pkgs/applications/networking/newsreaders/liferea/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   pname = "liferea";
-  version = "1.12.6";
+  version = "1.12.9";
 
   src = fetchurl {
-    url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${pname}-${version}b.tar.bz2";
-    sha256 = "03pr1gmiv5y0i92bkhcxr8s311ll91chz19wb96jkixx32xav91d";
+    url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2";
+    sha256 = "06ybr1wjlfir8iqjx6x0v1knd4b2hsy30qmkk4kssy6ky2ahc66q";
   };
 
   nativeBuildInputs = [
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
     description = "A GTK-based news feed aggregator";
     homepage = "http://lzone.de/liferea/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ vcunat romildo ];
+    maintainers = with maintainers; [ romildo ];
     platforms = platforms.linux;
 
     longDescription = ''
diff --git a/pkgs/applications/networking/nextcloud-client/default.nix b/pkgs/applications/networking/nextcloud-client/default.nix
index 2560bc806ea..bc678cd1644 100644
--- a/pkgs/applications/networking/nextcloud-client/default.nix
+++ b/pkgs/applications/networking/nextcloud-client/default.nix
@@ -17,13 +17,13 @@
 
 mkDerivation rec {
   pname = "nextcloud-client";
-  version = "2.6.4";
+  version = "2.6.5";
 
   src = fetchFromGitHub {
     owner = "nextcloud";
     repo = "desktop";
     rev = "v${version}";
-    sha256 = "1wr57qwcjfzbpb4p0ybfjpw2hhwp91yrk2n3ywrqywcvjj38jg1q";
+    sha256 = "0r2n9l383drnnzbyywnbqljh9kxm3kz4g0mv7bnrp6b10b2ma3pg";
   };
 
   patches = [
diff --git a/pkgs/applications/networking/nextdns/default.nix b/pkgs/applications/networking/nextdns/default.nix
new file mode 100644
index 00000000000..de3ff40e43c
--- /dev/null
+++ b/pkgs/applications/networking/nextdns/default.nix
@@ -0,0 +1,26 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "nextdns";
+  version = "1.7.1";
+
+  src = fetchFromGitHub {
+    owner = "nextdns";
+    repo = "nextdns";
+    rev = "v${version}";
+    sha256 = "001swxmf7ga2g0ri3gsnwvgjcarwdhfg476ymblg34kk9wclidmy";
+  };
+
+  vendorSha256 = "09whpzsn16znyrknfm5zlhla253r69j6d751czza4c83m4r36swj";
+
+  doCheck = false;
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
+  meta = with lib; {
+    description = "NextDNS DNS/53 to DoH Proxy";
+    homepage = "https://nextdns.io";
+    license = licenses.mit;
+    maintainers = with maintainers; [ pnelson ];
+  };
+}
diff --git a/pkgs/applications/networking/openbazaar/client.nix b/pkgs/applications/networking/openbazaar/client.nix
index 8ee265743de..f011f9aef4e 100644
--- a/pkgs/applications/networking/openbazaar/client.nix
+++ b/pkgs/applications/networking/openbazaar/client.nix
@@ -8,13 +8,16 @@
 , electron_6
 }:
 
+let
+  electron = electron_6;
+in
 stdenv.mkDerivation rec {
   pname = "openbazaar-client";
-  version = "2.4.5";
+  version = "2.4.7";
 
   src = fetchurl {
     url = "https://github.com/OpenBazaar/openbazaar-desktop/releases/download/v${version}/openbazaar2client_${version}_amd64.deb";
-    sha256 = "0kahqqchalbyzy51gkxzmw91qignh8sprg57nbj1vmgm84w1z6kw";
+    sha256 = "04wwljaiqm8rsdrzngqrzrjzfrjsrfsaa60c904zhbhmsqc7y4f1";
   };
 
   dontBuild = true;
@@ -42,7 +45,7 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    makeWrapper ${electron_6}/bin/electron $out/bin/${pname} \
+    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
       --add-flags $out/share/${pname}/resources/app \
       --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ gcc-unwrapped.lib ]}"
   '';
diff --git a/pkgs/applications/networking/owncloud-client/default.nix b/pkgs/applications/networking/owncloud-client/default.nix
index a487da6f5ad..d990dfb39d2 100644
--- a/pkgs/applications/networking/owncloud-client/default.nix
+++ b/pkgs/applications/networking/owncloud-client/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "owncloud-client";
-  version = "2.5.4.11654";
+  version = "2.6.3.14058";
 
   src = fetchurl {
     url = "https://download.owncloud.com/desktop/stable/owncloudclient-${version}.tar.xz";
-    sha256 = "0gsnry0786crbnpgg3f1vcqw6mwbz6svhm6mw3767qi4lb33jm31";
+    sha256 = "1xcklhvbyg34clm9as2rjnjfwxpwq77lmdxj6qc0w7q43viqvlz3";
   };
 
   nativeBuildInputs = [ pkgconfig cmake ];
diff --git a/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix b/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
index 39ab0ee0efa..d38e9dc7336 100644
--- a/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
+++ b/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
@@ -3,12 +3,12 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "6.8.4";
+  version = "6.8.5";
   pname = "frostwire";
 
   src = fetchurl {
     url = "https://dl.frostwire.com/frostwire/${version}/frostwire-${version}.amd64.tar.gz";
-    sha256 = "1qs0r5621ihb9sj4sqpmxj9smwf8a8k3n1qx2i0sz65qhjfc90zz";
+    sha256 = "1zdas93w1yqg9yx8wlk7pxpdmwvg4ykg54ai7iyq9ir1zha8fyif";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/networking/p2p/gnunet/default.nix b/pkgs/applications/networking/p2p/gnunet/default.nix
index 5abee0108ec..618ca074912 100644
--- a/pkgs/applications/networking/p2p/gnunet/default.nix
+++ b/pkgs/applications/networking/p2p/gnunet/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, adns, curl, gettext, gmp, gnutls, libextractor
 , libgcrypt, libgnurl, libidn, libmicrohttpd, libtool, libunistring
 , makeWrapper, ncurses, pkgconfig, libxml2, sqlite, zlib
-, libpulseaudio, libopus, libogg, jansson }:
+, libpulseaudio, libopus, libogg, jansson, libsodium }:
 
 stdenv.mkDerivation rec {
   pname = "gnunet";
-  version = "0.12.1";
+  version = "0.13.2";
 
   src = fetchurl {
     url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz";
-    sha256 = "0zhz3dd4mr6k7wlcxw2xclq8p8l4ia5nlg78dylyz6lbz96h2lsm";
+    sha256 = "0b4a6bxwhpmj274d281vhny7i5rwydrdmab76xk6ji8vf0p705dn";
   };
 
   enableParallelBuilding = true;
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig libtool makeWrapper ];
   buildInputs = [
     adns curl gmp gnutls libextractor libgcrypt libgnurl libidn
-    libmicrohttpd libunistring libxml2 ncurses gettext
+    libmicrohttpd libunistring libxml2 ncurses gettext libsodium
     sqlite zlib libpulseaudio libopus libogg jansson
   ];
 
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
 
     homepage = "https://gnunet.org/";
     license = licenses.agpl3Plus;
-    maintainers = with maintainers; [ vrthra ];
+    maintainers = with maintainers; [ pstn vrthra ];
     platforms = platforms.gnu ++ platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/p2p/gnunet/gtk.nix b/pkgs/applications/networking/p2p/gnunet/gtk.nix
new file mode 100644
index 00000000000..4090814b3da
--- /dev/null
+++ b/pkgs/applications/networking/p2p/gnunet/gtk.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl
+, gnome3
+, gnunet
+, gnutls
+, gtk3
+, libextractor
+, libgcrypt
+, libxml2
+, pkg-config
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnunet-gtk";
+  version = "0.13.1";
+
+  src = fetchurl {
+    url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz";
+    sha256 = "1zdzgq16h77w6ybwg3lqjsjr965np6iqvncqvkbj07glqd4wss0j";
+  };
+
+  nativeBuildInputs= [
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gnome3.glade
+    gnunet
+    gnutls
+    gtk3
+    libextractor
+    libgcrypt
+    libxml2
+  ];
+
+  patchPhase = "patchShebangs pixmaps/icon-theme-installer";
+
+  meta = gnunet.meta // {
+    description = "GNUnet GTK User Interface";
+    homepage = "https://git.gnunet.org/gnunet-gtk.git";
+  };
+}
diff --git a/pkgs/applications/networking/p2p/magnetico/default.nix b/pkgs/applications/networking/p2p/magnetico/default.nix
index 1dcf42b7ece..b8c1991c88f 100644
--- a/pkgs/applications/networking/p2p/magnetico/default.nix
+++ b/pkgs/applications/networking/p2p/magnetico/default.nix
@@ -18,7 +18,6 @@ buildGoModule rec {
     make magneticow magneticod
   '';
 
-  doCheck = true;
   checkPhase = ''
     make test
   '';
@@ -30,4 +29,4 @@ buildGoModule rec {
     badPlatforms = platforms.darwin;
     maintainers  = with maintainers; [ rnhmjoj ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/p2p/stig/default.nix b/pkgs/applications/networking/p2p/stig/default.nix
index 98fd41e8bcd..276cabfa2aa 100644
--- a/pkgs/applications/networking/p2p/stig/default.nix
+++ b/pkgs/applications/networking/p2p/stig/default.nix
@@ -7,13 +7,13 @@ python3Packages.buildPythonApplication rec {
   pname = "stig";
   # This project has a different concept for pre release / alpha,
   # Read the project's README for details: https://github.com/rndusr/stig#stig
-  version = "0.11.0a";
+  version = "0.11.2a0";
 
   src = fetchFromGitHub {
     owner = "rndusr";
     repo = "stig";
     rev = "v${version}";
-    sha256 = "192v8f80jfly12bqzsslpxlvm72kdqm3jl40x1az5czpg4ab3lb7";
+    sha256 = "05dn6mr86ly65gdqarl16a2jk1bwiw5xa6r4kyag3s6lqsv66iw8";
   };
 
   # urwidtrees 1.0.3 is requested by the developer because 1.0.2 (which is packaged
diff --git a/pkgs/applications/networking/p2p/synapse-bt/default.nix b/pkgs/applications/networking/p2p/synapse-bt/default.nix
index 80d90789440..e2847d88f8a 100644
--- a/pkgs/applications/networking/p2p/synapse-bt/default.nix
+++ b/pkgs/applications/networking/p2p/synapse-bt/default.nix
@@ -24,6 +24,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://synapse-bt.org/";
     license = licenses.isc;
     maintainers = with maintainers; [ dywedir ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/networking/p2p/tixati/default.nix b/pkgs/applications/networking/p2p/tixati/default.nix
index 2e14bd0eb0f..f8a70d322f0 100644
--- a/pkgs/applications/networking/p2p/tixati/default.nix
+++ b/pkgs/applications/networking/p2p/tixati/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tixati";
-  version = "2.73";
+  version = "2.74";
 
   src = fetchurl {
     url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz";
-    sha256 = "1ncrfc4wgf02la2h3zpdcz07b980n9232lg5f62q7ab79fjrcrfr";
+    sha256 = "1slsrqv97hnj1vxx3hw32dhqckbr05w622samjbrimh4dv8yrd29";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/networking/p2p/torrential/default.nix b/pkgs/applications/networking/p2p/torrential/default.nix
index e432818bec7..d62e3b3b5a3 100644
--- a/pkgs/applications/networking/p2p/torrential/default.nix
+++ b/pkgs/applications/networking/p2p/torrential/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , cmake
 , pkgconfig
 , vala_0_40
@@ -51,7 +52,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/networking/p2p/transmission/default.nix b/pkgs/applications/networking/p2p/transmission/default.nix
index d59cdff34fd..ab4fc0908ba 100644
--- a/pkgs/applications/networking/p2p/transmission/default.nix
+++ b/pkgs/applications/networking/p2p/transmission/default.nix
@@ -72,9 +72,6 @@ in stdenv.mkDerivation {
 
   NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-framework CoreFoundation";
 
-  # Reduce the risk of collisions
-  postInstall = "rm -r $out/share/doc";
-
   meta = {
     description = "A fast, easy and free BitTorrent client";
     longDescription = ''
diff --git a/pkgs/applications/networking/p2p/tremc/default.nix b/pkgs/applications/networking/p2p/tremc/default.nix
new file mode 100644
index 00000000000..37f2a3584ee
--- /dev/null
+++ b/pkgs/applications/networking/p2p/tremc/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, python3Packages
+, x11Support ? !stdenv.isDarwin
+, xclip ? null
+, pbcopy ? null
+, useGeoIP ? false # Require /var/lib/geoip-databases/GeoIP.dat
+}:
+let
+  wrapperPath = with stdenv.lib; makeBinPath (
+    optional x11Support xclip ++
+    optional stdenv.isDarwin pbcopy
+  );
+in
+python3Packages.buildPythonPackage rec {
+  version = "0.9.1";
+  pname = "tremc";
+
+  src = fetchFromGitHub {
+    owner = "tremc";
+    repo = pname;
+    rev = "0.9.1";
+    sha256 = "1yhwvlcyv1s830p5a7q5x3mkb3mbvr5cn5nh7y62l5b6iyyynlvm";
+  };
+
+  buildInputs = with python3Packages; [
+    python
+    wrapPython
+  ];
+
+  pythonPath = with python3Packages; [
+    ipy
+    pyperclip
+  ] ++
+  stdenv.lib.optional useGeoIP GeoIP;
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  makeWrapperArgs = ["--prefix PATH : ${wrapperPath}"];
+
+  installPhase = ''
+    make DESTDIR=$out install
+    wrapPythonPrograms
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Curses interface for transmission";
+    homepage = "https://github.com/tremc/tremc";
+    license = licenses.gpl3;
+  };
+}
diff --git a/pkgs/applications/networking/ping/default.nix b/pkgs/applications/networking/ping/default.nix
index ed63a72f210..8e4125ac72a 100644
--- a/pkgs/applications/networking/ping/default.nix
+++ b/pkgs/applications/networking/ping/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , vala
@@ -52,7 +53,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/networking/protonvpn-cli-ng/default.nix b/pkgs/applications/networking/protonvpn-cli-ng/default.nix
deleted file mode 100644
index e2870c58e97..00000000000
--- a/pkgs/applications/networking/protonvpn-cli-ng/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ lib, fetchFromGitHub, python3Packages, openvpn, dialog, iptables }:
-
-python3Packages.buildPythonApplication rec {
-  pname = "protonvpn-cli-ng";
-  version = "2.2.4";
-
-  src = fetchFromGitHub {
-    owner = "protonvpn";
-    repo = "${pname}";
-    rev = "v${version}";
-    sha256 = "08yca0a0prrnrc7ir7ajd56yxvxpcs4m1k8f5kf273f5whgr7wzw";
-  };
-
-  propagatedBuildInputs = (with python3Packages; [
-      requests
-      docopt
-      setuptools
-      jinja2
-      pythondialog
-    ]) ++ [
-      dialog
-      openvpn
-      iptables
-    ];
-
-  # No tests
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Linux command-line client for ProtonVPN";
-    homepage = "https://github.com/protonvpn/protonvpn-cli-ng";
-    maintainers = with maintainers; [ jtcoolen jefflabonte ];
-    license = licenses.gpl3;
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/applications/networking/protonvpn-cli/default.nix b/pkgs/applications/networking/protonvpn-cli/default.nix
index c48f6c82026..1c72d4ef88c 100644
--- a/pkgs/applications/networking/protonvpn-cli/default.nix
+++ b/pkgs/applications/networking/protonvpn-cli/default.nix
@@ -1,43 +1,36 @@
-{ stdenv, lib, fetchFromGitHub, makeWrapper, coreutils
-, openvpn, python, dialog, wget, update-resolv-conf }:
+{ lib, fetchFromGitHub, python3Packages, openvpn, dialog, iptables }:
 
-let
-  expectedUpdateResolvPath = "/etc/openvpn/update-resolv-conf";
-  actualUpdateResolvePath = "${update-resolv-conf}/libexec/openvpn/update-resolv-conf";
-
-in stdenv.mkDerivation rec {
-  name = "protonvpn-cli";
-  version = "1.1.2";
+python3Packages.buildPythonApplication rec {
+  pname = "protonvpn-linux-cli";
+  version = "2.2.4";
 
   src = fetchFromGitHub {
-    owner = "ProtonVPN";
-    repo = "protonvpn-cli";
+    owner = "protonvpn";
+    repo = "linux-cli";
     rev = "v${version}";
-    sha256 = "0xvflr8zf267n3dv63nkk4wjxhbckw56sqmyca3krf410vrd7zlv";
+    sha256 = "08yca0a0prrnrc7ir7ajd56yxvxpcs4m1k8f5kf273f5whgr7wzw";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  propagatedBuildInputs = (with python3Packages; [
+      requests
+      docopt
+      setuptools
+      jinja2
+      pythondialog
+    ]) ++ [
+      dialog
+      openvpn
+      iptables
+    ];
 
-  installPhase = ''
-    mkdir -p "$out/bin"
-    substituteInPlace protonvpn-cli.sh \
-      --replace ${expectedUpdateResolvPath} ${actualUpdateResolvePath} \
-      --replace \$UID 0 \
-      --replace /etc/resolv.conf /dev/null \
-      --replace \
-        "  echo \"Connecting...\"" \
-        "  sed -ri 's@${expectedUpdateResolvPath}@${actualUpdateResolvePath}@g' \"\$openvpn_config\"; echo \"Connecting...\""
-    cp protonvpn-cli.sh "$out/bin/protonvpn-cli"
-    wrapProgram $out/bin/protonvpn-cli \
-      --prefix PATH : ${lib.makeBinPath [ coreutils openvpn python dialog wget update-resolv-conf ]}
-    ln -s "$out/bin/protonvpn-cli" "$out/bin/pvpn"
-  '';
+  # No tests
+  doCheck = false;
 
-  meta = with stdenv.lib; {
-    description = "ProtonVPN Command-Line Tool";
-    homepage = "https://github.com/ProtonVPN/protonvpn-cli";
-    maintainers = with maintainers; [ caugner ];
-    license = licenses.mit;
+  meta = with lib; {
+    description = "Linux command-line client for ProtonVPN";
+    homepage = "https://github.com/protonvpn/linux-cli";
+    maintainers = with maintainers; [ jtcoolen jefflabonte ];
+    license = licenses.gpl3;
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/protonvpn-gui/default.nix b/pkgs/applications/networking/protonvpn-gui/default.nix
new file mode 100644
index 00000000000..38ffb42aaf8
--- /dev/null
+++ b/pkgs/applications/networking/protonvpn-gui/default.nix
@@ -0,0 +1,86 @@
+{ lib, fetchFromGitHub, makeDesktopItem, makeWrapper, imagemagick
+, python3Packages, wrapGAppsHook, protonvpn-cli, gtk3, pango
+, gobject-introspection, libnotify, libappindicator-gtk3
+, procps, openvpn }:
+
+let
+  extraPath = lib.makeBinPath [ procps openvpn ];
+
+in python3Packages.buildPythonApplication rec {
+  pname = "protonvpn-linux-gui";
+  version = "2.1.1";
+
+  src = fetchFromGitHub {
+    owner = "protonvpn";
+    repo = "linux-gui";
+    rev = "v${version}";
+    sha256 = "avo5/2eq53HSHCnnjtxrsmpURtHvxmLZn2BxActImGY=";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "ProtonVPN";
+    desktopName = "ProtonVPN GUI";
+    type = "Application";
+    exec = "protonvpn-gui";
+    icon = "protonvpn";
+    categories = "Network;";
+    terminal = "false";
+  };
+
+  trayDesktopItem = makeDesktopItem {
+    name = "ProtonVPN Tray";
+    desktopName = "ProtonVPN Tray";
+    type = "Application";
+    exec = "protonvpn-tray";
+    icon = "protonvpn";
+    categories = "Network;";
+    terminal = "false";
+  };
+
+  nativeBuildInputs = [ wrapGAppsHook makeWrapper imagemagick ];
+
+  propagatedBuildInputs = (with python3Packages; [
+      pygobject3
+      pycairo
+      requests
+      configparser
+    ]) ++ [
+      protonvpn-cli
+      gtk3
+      gobject-introspection
+      libnotify
+      libappindicator-gtk3
+    ];
+
+  prePatch = ''
+    # if pkexec is used, we want to have more time to enter password
+    substituteInPlace linux_gui/services/login_service.py --replace 'timeout=8' 'timeout=30'
+  '';
+
+  postInstall = ''
+    # wrap binaries with extra required path
+    wrapProgram "$out/bin/protonvpn-tray" --prefix PATH ":" ${extraPath}
+    wrapProgram "$out/bin/protonvpn-gui" --prefix PATH ":" ${extraPath}
+
+    # install desktop files
+    mkdir -p $out/share/applications
+    cp "$desktopItem/share/applications/ProtonVPN.desktop" $out/share/applications/protonvpn-gui.desktop
+    cp "$trayDesktopItem/share/applications/ProtonVPN Tray.desktop" $out/share/applications/protonvpn-tray.desktop
+
+    # create icons
+    for size in 16 32 48 64 72 96 128 192 512 1024; do
+      mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
+      convert -resize "$size"x"$size" \
+        linux_gui/resources/img/logo/protonvpn_logo.png \
+        $out/share/icons/hicolor/"$size"x"$size"/apps/protonvpn.png
+    done
+  '';
+
+  meta = with lib; {
+    description = "Linux GUI for ProtonVPN, written in Python.";
+    homepage = "https://github.com/ProtonVPN/linux-gui";
+    maintainers = with maintainers; [ offline ];
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/remote/anydesk/default.nix b/pkgs/applications/networking/remote/anydesk/default.nix
index 3896e06838d..46221ac1478 100644
--- a/pkgs/applications/networking/remote/anydesk/default.nix
+++ b/pkgs/applications/networking/remote/anydesk/default.nix
@@ -5,8 +5,8 @@
 
 let
   sha256 = {
-    x86_64-linux = "1vpfyffg1g7f1m4mxmqghswihml9rm1cipm7krmr5wvxdmcphxnk";
-    i386-linux   = "0vjxbg5hwkqkh600rr75xviwy848r1xw9mxwf6bb6l8b0isvlsgg";
+    x86_64-linux = "19c6blkkqpyjf330v16mdmsh7q6x087p6gw5ag8r2mc6jwq5ixlx";
+    i386-linux   = "0dwc7v4p1dz51444zwn0kds23yi87r4h2d3isfj9xwkn90pxb7in";
   }.${stdenv.hostPlatform.system} or (throw "system ${stdenv.hostPlatform.system} not supported");
 
   arch = {
@@ -28,7 +28,7 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "anydesk";
-  version = "5.5.6";
+  version = "6.0.0";
 
   src = fetchurl {
     urls = [
diff --git a/pkgs/applications/networking/remote/citrix-workspace/default.nix b/pkgs/applications/networking/remote/citrix-workspace/default.nix
index a62b1bf5ee1..3a6054db354 100644
--- a/pkgs/applications/networking/remote/citrix-workspace/default.nix
+++ b/pkgs/applications/networking/remote/citrix-workspace/default.nix
@@ -1,253 +1,25 @@
-{ stdenv
-, lib
-, fetchurl
-, requireFile
-, makeWrapper
-, libredirect
-, busybox
-, file
-, makeDesktopItem
-, tzdata
-, cacert
-, dconf
-, glib
-, gtk2
-, atk
-, gdk-pixbuf
-, cairo
-, pango
-, gnome3
-, xorg
-, libpng12
-, freetype
-, fontconfig
-, gtk_engines
-, alsaLib
-, zlib
-, version ? "20.04.0"
-}:
+{ lib, callPackage }:
 
-let
-  versionInfo = let
-    supportedVersions = {
-      "19.6.0" = {
-        major     = "19";
-        minor     = "6";
-        patch     = "0";
-        x64hash   = "0szqlfmigzgf0309i6ikxkizxaf4ri7qmhys75m0zi3bpwx6hzhs";
-        x86hash   = "16v3kgavrh62z6vxcbw6mn7h0bfishpl7m92k7g1p2882r1f8vaf";
-        x64suffix = "60";
-        x86suffix = "60";
-        homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest.html";
-      };
-
-      "19.8.0" = {
-        major     = "19";
-        minor     = "8";
-        patch     = "0";
-        x64hash   = "0f8djw8lp5wihb23y09yac1mh09w1qp422h72r6zfx9k1lqfsdbw";
-        x86hash   = "0afcqirb4q349r3izy88vqkszg6y2wg14iwypk6nrmvwgvcl6jdn";
-        x64suffix = "20";
-        x86suffix = "20";
-        homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-1908.html";
-      };
-
-      "19.10.0" = {
-        major     = "19";
-        minor     = "10";
-        patch     = "0";
-        x64hash   = "1l4q4pmfiw9gmml6j5b3hls2101xf5m8p6855nhfhvqlisrj9h14";
-        x86hash   = "000zjik8wf8b6fadnsai0p77b4n2l95544zx503iyrb9pv53bj3y";
-        x64suffix = "15";
-        x86suffix = "15";
-        homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-1910.html";
-      };
-
-      "19.12.0" = {
-        major     = "19";
-        minor     = "12";
-        patch     = "0";
-        x64hash   = "1si5mkxbgb8m99bkvgc3l80idjfdp0kby6pv47s07nn43dbr1j7a";
-        x86hash   = "07rfp90ksnvr8zv7ix7f0z6a59n48s7bd4kqbzilfwxgs4ddqmcy";
-        x64suffix = "19";
-        x86suffix = "19";
-        homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-1912.html";
-      };
-
-      "20.04.0" = {
-        major     = "20";
-        minor     = "04";
-        patch     = "0";
-        x64hash   = "E923592216F9541173846F932784E6C062CB09C9E8858219C7489607BF82A0FB";
-        x86hash   = "A2E2E1882723DA6796E68916B3BB2B44DD575A83DEB03CA90A262F6C81B1A53F";
-        x64suffix = "21";
-        x86suffix = "21";
-        homepage  = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
-      };
-    };
-
-    # Copied this file largely from the citrix-receiver package
-    # Leaving this here even though there are no deprecations yet
-    # for ease of future maintenance.
-    #
-    # The lifespans of Citrix products can be found here:
-    # https://www.citrix.com/support/product-lifecycle/milestones/receiver.html
-    deprecatedVersions = let
-      versions = [ "19.3.0" ];
-    in
-      lib.listToAttrs
-        (lib.forEach versions
-          (v: lib.nameValuePair v (throw "Unsupported citrix_workspace version: ${v}")));
-  in
-    deprecatedVersions // supportedVersions;
-
-  citrixWorkspaceForVersion = { major, minor, patch, x64hash, x86hash, x64suffix, x86suffix, homepage }:
-    stdenv.mkDerivation rec {
-      pname = "citrix-workspace";
-      version  = "${major}.${minor}.${patch}";
-      inherit homepage;
-
-      prefixWithBitness = if stdenv.is64bit then "linuxx64" else "linuxx86";
-
-      preferLocalBuild = true;
-
-      src = requireFile rec {
-        name    = if stdenv.is64bit then "${prefixWithBitness}-${version}.${x64suffix}.tar.gz" else "${prefixWithBitness}-${version}.${x86suffix}.tar.gz";
-        sha256  = if stdenv.is64bit then x64hash else x86hash;
-        message = ''
-          In order to use Citrix Workspace, you need to comply with the Citrix EULA and download
-          the ${if stdenv.is64bit then "64-bit" else "32-bit"} binaries, .tar.gz from:
-
-          ${homepage}
-
-          (if you do not find version ${version} there, try at
-          https://www.citrix.com/downloads/workspace-app/
-
-          Once you have downloaded the file, please use the following command and re-run the
-          installation:
-
-          nix-prefetch-url file://\$PWD/${name}
-        '';
-      };
-
-      dontBuild = true;
+# For detailed information about the Citrix source-tarball, please refer to the OEM
+# reference guide: https://developer-docs.citrix.com/projects/workspace-app-for-linux-oem-guide/en/latest/
 
-      sourceRoot = ".";
-
-      buildInputs = [
-        makeWrapper
-        busybox
-        file
-        gtk2
-        gdk-pixbuf
-      ];
-
-      libPath = stdenv.lib.makeLibraryPath [
-        glib
-        gtk2
-        atk
-        gdk-pixbuf
-        cairo
-        pango
-        dconf
-        xorg.libX11
-        xorg.libXext
-        xorg.libXrender
-        xorg.libXinerama
-        xorg.libXfixes
-        libpng12
-        zlib
-        gtk_engines
-        freetype
-        fontconfig
-        alsaLib
-        stdenv.cc.cc # Fixes: Can not load [..]/opt/citrix-icaclient/lib/ctxh264_fb.so:(null)
-      ];
-
-      desktopItem = makeDesktopItem {
-        name        = "wfica";
-        desktopName = "Citrix Workspace";
-        genericName = "Citrix Workspace";
-        exec        = "wfica";
-        icon        = "wfica";
-        comment     = "Connect to remote Citrix server";
-        categories  = "GTK;GNOME;X-GNOME-NetworkSettings;Network;";
-        mimeType    = "application/x-ica";
-      };
-
-      installPhase = ''
-        runHook preInstall
-
-        export ICAInstDir="$out/opt/citrix-icaclient"
-
-        sed -i \
-          -e 's,^main_install_menu$,install_ICA_client,g' \
-          -e 's,^integrate_ICA_client(),alias integrate_ICA_client=true\nintegrate_ICA_client_old(),g' \
-          -e 's,^ANSWER=""$,ANSWER="$INSTALLER_YES",' \
-          -e 's,/bin/true,true,g' \
-          ./${prefixWithBitness}/hinst
-
-        # Run the installer...
-        bash ./${prefixWithBitness}/hinst CDROM "`pwd`"
-
-        echo "Deleting broken links..."
-        for link in `find $ICAInstDir -type l `
-        do
-          [ -f "$link" ] || rm -v "$link"
-        done
-
-        echo "Expanding certificates..."
-        # As explained in https://wiki.archlinux.org/index.php/Citrix#Security_Certificates
-        pushd "$ICAInstDir/keystore/cacerts"
-        awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' < ${cacert}/etc/ssl/certs/ca-bundle.crt
-        popd
-
-        echo "Patching executables..."
-        find $ICAInstDir -type f -exec file {} \; |
-          grep 'ELF.*executable' |
-          cut -f 1 -d : |
-          grep -vi '\(.dll\|.so\)$' | # added as a workaround to https://github.com/NixOS/nixpkgs/issues/41729
-          while read f
-          do
-            echo "Patching ELF intrepreter and rpath for $f"
-            chmod u+w "$f"
-            patchelf \
-              --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
-              --set-rpath "$ICAInstDir:$libPath" "$f"
-          done
-
-        echo "Wrapping wfica..."
-        mkdir "$out/bin"
-
-        makeWrapper "$ICAInstDir/wfica" "$out/bin/wfica" \
-          --add-flags "-icaroot $ICAInstDir" \
-          --set ICAROOT "$ICAInstDir" \
-          --set GTK_PATH "${gtk2.out}/lib/gtk-2.0:${gnome3.gnome-themes-extra}/lib/gtk-2.0" \
-          --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-          --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
-          --set LD_LIBRARY_PATH "$libPath" \
-          --set NIX_REDIRECTS "/usr/share/zoneinfo=${tzdata}/share/zoneinfo:/etc/zoneinfo=${tzdata}/share/zoneinfo:/etc/timezone=$ICAInstDir/timezone"
-
-        echo "We arbitrarily set the timezone to UTC. No known consequences at this point."
-        echo UTC > "$ICAInstDir/timezone"
-
-        echo "Installing desktop item..."
-        mkdir -p $out/share/applications
-        cp ${desktopItem}/share/applications/* $out/share/applications
+let
+  inherit (callPackage ./sources.nix { }) supportedVersions unsupportedVersions;
+  mkCitrix = callPackage ./generic.nix { };
 
-        # We introduce a dependency on the source file so that it need not be redownloaded everytime
-        echo $src >> "$out/share/workspace_dependencies.pin"
+  toAttrName = x: "citrix_workspace_${builtins.replaceStrings [ "." ] [ "_" ] x}";
 
-        runHook postInstall
-      '';
+  unsupported = lib.listToAttrs (
+    map (x: lib.nameValuePair (toAttrName x) (throw ''
+      Citrix Workspace at version ${x} is not supported anymore!
 
-      meta = with stdenv.lib; {
-        license     = stdenv.lib.licenses.unfree;
-        inherit homepage;
-        description = "Citrix Workspace";
-        platforms   = platforms.linux;
-        maintainers = with maintainers; [ ma27 ];
-      };
-    };
+      Actively supported releases are listed here:
+      https://www.citrix.com/en-gb/support/product-lifecycle/milestones/receiver.html
+    '')) unsupportedVersions
+  );
 
-in citrixWorkspaceForVersion (lib.getAttr version versionInfo)
+  supported = lib.mapAttrs' (
+    attr: versionInfo: lib.nameValuePair (toAttrName attr) (callPackage ./generic.nix versionInfo)
+  ) supportedVersions;
+in
+  supported // unsupported
diff --git a/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/pkgs/applications/networking/remote/citrix-workspace/generic.nix
new file mode 100644
index 00000000000..c19cb585952
--- /dev/null
+++ b/pkgs/applications/networking/remote/citrix-workspace/generic.nix
@@ -0,0 +1,203 @@
+{ stdenv, requireFile, makeWrapper, autoPatchelfHook, wrapGAppsHook, which, more
+, file, atk, alsaLib, cairo, fontconfig, gdk-pixbuf, glib, gnome3, gtk2-x11, gtk3
+, heimdal, krb5, libsoup, libvorbis, speex, openssl, zlib, xorg, pango, gtk2
+, gnome2, nss, nspr, gtk_engines, freetype, dconf, libpng12, libxml2
+, libjpeg, libredirect, tzdata, cacert, systemd, libcxxabi, libcxx, e2fsprogs, symlinkJoin
+
+, homepage, version, prefix, hash
+
+, extraCerts ? []
+}:
+
+let
+  inherit (stdenv) lib;
+
+  openssl' = symlinkJoin {
+    name = "openssl-backwards-compat";
+    nativeBuildInputs = [ makeWrapper ];
+    paths = [ openssl.out ];
+    postBuild = ''
+      ln -sf $out/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
+      ln -sf $out/lib/libssl.so $out/lib/libssl.so.1.0.0
+    '';
+  };
+in
+
+stdenv.mkDerivation rec {
+  pname = "citrix-workspace";
+  inherit version;
+
+  src = requireFile rec {
+    name = "${prefix}-${version}.tar.gz";
+    sha256 = hash;
+
+    message = ''
+      In order to use Citrix Workspace, you need to comply with the Citrix EULA and download
+      the ${if stdenv.is64bit then "64-bit" else "32-bit"} binaries, .tar.gz from:
+
+      ${homepage}
+
+      (if you do not find version ${version} there, try at
+      https://www.citrix.com/downloads/workspace-app/
+
+      Once you have downloaded the file, please use the following command and re-run the
+      installation:
+
+      nix-prefetch-url file://\$PWD/${name}
+    '';
+  };
+
+  dontBuild = true;
+  dontConfigure = true;
+  sourceRoot = ".";
+  preferLocalBuild = true;
+  passthru.icaroot = "${placeholder "out"}/opt/citrix-icaclient";
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    file
+    makeWrapper
+    more
+    which
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    alsaLib
+    atk
+    cairo
+    dconf
+    fontconfig
+    freetype
+    gdk-pixbuf
+    gnome2.gtkglext
+    gnome3.webkitgtk
+    gtk2
+    gtk2-x11
+    gtk3
+    gtk_engines
+    heimdal
+    krb5
+    libcxx
+    libcxxabi
+    libjpeg
+    libpng12
+    libsoup
+    libvorbis
+    libxml2
+    nspr
+    nss
+    openssl'
+    pango
+    speex
+    (lib.getLib systemd)
+    stdenv.cc.cc
+    xorg.libXaw
+    xorg.libXmu
+    xorg.libXScrnSaver
+    xorg.libXtst
+    zlib
+  ] ++ lib.optional (lib.versionOlder version "20.04") e2fsprogs;
+
+  runtimeDependencies = [
+    glib
+
+    xorg.libX11
+    xorg.libXScrnSaver
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXinerama
+    xorg.libXmu
+    xorg.libXrender
+    xorg.libXtst
+    xorg.libxcb
+  ];
+
+  installPhase = let
+    icaFlag = program:
+      if (builtins.match "selfservice(.*)" program) != null then "--icaroot"
+      else "-icaroot";
+    wrap = program: ''
+      wrapProgram $out/opt/citrix-icaclient/${program} \
+        --add-flags "${icaFlag program} $ICAInstDir" \
+        --set ICAROOT "$ICAInstDir" \
+        --prefix LD_LIBRARY_PATH : "$ICAInstDir:$ICAInstDir/lib" \
+        --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
+        --set NIX_REDIRECTS "/usr/share/zoneinfo=${tzdata}/share/zoneinfo:/etc/zoneinfo=${tzdata}/share/zoneinfo:/etc/timezone=$ICAInstDir/timezone"
+    '';
+    wrapLink = program: ''
+      ${wrap program}
+      ln -sf $out/opt/citrix-icaclient/${program} $out/bin/${baseNameOf program}
+    '';
+
+    copyCert = path: ''
+      cp -v ${path} $out/opt/citrix-icaclient/keystore/cacerts/${baseNameOf path}
+    '';
+
+    mkWrappers = lib.concatMapStringsSep "\n";
+
+    toWrap = [ "wfica" "selfservice" "util/configmgr" "util/conncenter" "util/ctx_rehash" ]
+      ++ lib.optional (lib.versionOlder version "20.06") "selfservice_old";
+  in ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,share/applications}
+    export ICAInstDir="$out/opt/citrix-icaclient"
+    export HOME=$(mktemp -d)
+
+    # Run upstream installer in the store-path.
+    sed -i -e 's,^ANSWER="",ANSWER="$INSTALLER_YES",g' -e 's,/bin/true,true,g' ./linuxx64/hinst
+    ${stdenv.shell} linuxx64/hinst CDROM "$(pwd)"
+
+    ${mkWrappers wrapLink toWrap}
+    ${mkWrappers wrap [ "PrimaryAuthManager" "ServiceRecord" "AuthManagerDaemon" "util/ctxwebhelper" ]}
+
+    ln -sf $ICAInstDir/util/storebrowse $out/bin/storebrowse
+
+    # As explained in https://wiki.archlinux.org/index.php/Citrix#Security_Certificates
+    echo "Expanding certificates..."
+    pushd "$ICAInstDir/keystore/cacerts"
+    awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' \
+      < ${cacert}/etc/ssl/certs/ca-bundle.crt
+    popd
+
+    ${mkWrappers copyCert extraCerts}
+
+    # See https://developer-docs.citrix.com/projects/workspace-app-for-linux-oem-guide/en/latest/reference-information/#library-files
+    # Those files are fallbacks to support older libwekit.so and libjpeg.so
+    rm $out/opt/citrix-icaclient/lib/ctxjpeg_fb_8.so
+    rm $out/opt/citrix-icaclient/lib/UIDialogLibWebKit.so
+
+    # We support only Gstreamer 1.0
+    rm $ICAInstDir/util/{gst_aud_{play,read},gst_*0.10,libgstflatstm0.10.so}
+    ln -sf $ICAInstDir/util/gst_play1.0 $ICAInstDir/util/gst_play
+    ln -sf $ICAInstDir/util/gst_read1.0 $ICAInstDir/util/gst_read
+
+    echo "We arbitrarily set the timezone to UTC. No known consequences at this point."
+    echo UTC > "$ICAInstDir/timezone"
+
+    echo "Copy .desktop files."
+    cp $out/opt/citrix-icaclient/desktop/* $out/share/applications/
+
+    # We introduce a dependency on the source file so that it need not be redownloaded everytime
+    echo $src >> "$out/share/workspace_dependencies.pin"
+
+    runHook postInstall
+  '';
+
+  # Make sure that `autoPatchelfHook` is executed before
+  # running `ctx_rehash`.
+  dontAutoPatchelf = true;
+  postFixup = ''
+    autoPatchelf -- "$out"
+    $out/opt/citrix-icaclient/util/ctx_rehash
+  '';
+
+  meta = with lib; {
+    license = licenses.unfree;
+    description = "Citrix Workspace";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ ma27 ];
+    inherit homepage;
+  };
+}
diff --git a/pkgs/applications/networking/remote/citrix-workspace/sources.nix b/pkgs/applications/networking/remote/citrix-workspace/sources.nix
new file mode 100644
index 00000000000..cc0d8637b90
--- /dev/null
+++ b/pkgs/applications/networking/remote/citrix-workspace/sources.nix
@@ -0,0 +1,58 @@
+{ stdenv, lib }:
+
+let
+  mkVersionInfo = _: { major, minor, patch, x64hash, x86hash, x64suffix, x86suffix, homepage }:
+    { inherit homepage;
+      version = "${major}.${minor}.${patch}.${if stdenv.is64bit then x64suffix else x86suffix}";
+      prefix = "linuxx${if stdenv.is64bit then "64" else "86"}";
+      hash = if stdenv.is64bit then x64hash else x86hash;
+    };
+
+  # 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/
+  supportedVersions = lib.mapAttrs mkVersionInfo {
+    "19.12.0" = {
+      major     = "19";
+      minor     = "12";
+      patch     = "0";
+      x64hash   = "1si5mkxbgb8m99bkvgc3l80idjfdp0kby6pv47s07nn43dbr1j7a";
+      x86hash   = "07rfp90ksnvr8zv7ix7f0z6a59n48s7bd4kqbzilfwxgs4ddqmcy";
+      x64suffix = "19";
+      x86suffix = "19";
+      homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-1912.html";
+    };
+
+    "20.04.0" = {
+      major     = "20";
+      minor     = "04";
+      patch     = "0";
+      x64hash   = "E923592216F9541173846F932784E6C062CB09C9E8858219C7489607BF82A0FB";
+      x86hash   = "A2E2E1882723DA6796E68916B3BB2B44DD575A83DEB03CA90A262F6C81B1A53F";
+      x64suffix = "21";
+      x86suffix = "21";
+      homepage  = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
+    };
+
+    "20.06.0" = {
+      major     = "20";
+      minor     = "06";
+      patch     = "0";
+      x64hash   = "1kpfcfg95mpprlca6cccnjlsqbj3xvv77cn3fc5msd304nsi9x1v";
+      x86hash   = "1di29hrimbw3myjnf2nn26a14klidhdwvjqla6yxhwd3s6lil194";
+      x64suffix = "15";
+      x86suffix = "15";
+      homepage  = "https://www.citrix.com/de-de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
+    };
+  };
+
+  # Retain attribute-names for abandoned versions of Citrix workspace to
+  # provide a meaningful error-message if it's attempted to use such an old one.
+  #
+  # The lifespans of Citrix products can be found here:
+  # https://www.citrix.com/support/product-lifecycle/milestones/receiver.html
+  unsupportedVersions = [ "19.6.0" "19.8.0" "19.10.0" ];
+in {
+  inherit supportedVersions unsupportedVersions;
+}
diff --git a/pkgs/applications/networking/remote/citrix-workspace/wrapper.nix b/pkgs/applications/networking/remote/citrix-workspace/wrapper.nix
deleted file mode 100644
index ea475ae6dbc..00000000000
--- a/pkgs/applications/networking/remote/citrix-workspace/wrapper.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ citrix_workspace, extraCerts ? [], symlinkJoin }:
-
-let
-
-  mkCertCopy = certPath:
-    "cp ${certPath} $out/opt/citrix-icaclient/keystore/cacerts/";
-
-in
-
-if builtins.length extraCerts == 0 then citrix_workspace else symlinkJoin {
-  name = "citrix-with-extra-certs-${citrix_workspace.version}";
-  paths = [ citrix_workspace ];
-
-  postBuild = ''
-    ${builtins.concatStringsSep "\n" (map mkCertCopy extraCerts)}
-
-    sed -i -E "s,-icaroot (.+citrix-icaclient),-icaroot $out/opt/citrix-icaclient," $out/bin/wfica
-  '';
-}
diff --git a/pkgs/applications/networking/remote/freerdp/default.nix b/pkgs/applications/networking/remote/freerdp/default.nix
index 11f97206b6e..52f8decf170 100644
--- a/pkgs/applications/networking/remote/freerdp/default.nix
+++ b/pkgs/applications/networking/remote/freerdp/default.nix
@@ -17,13 +17,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "freerdp";
-  version = "2.1.2";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "FreeRDP";
     repo = "FreeRDP";
     rev = version;
-    sha256 = "1yvi7zd0ic0rv7njd0wi9q1mfvz4d9qrx3i45dd6hcq465wg8dp7";
+    sha256 = "02zlg5r704zbryx09a5rjjf7q137kj16i9qh25dw9q1y69ri619n";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/remote/putty/default.nix b/pkgs/applications/networking/remote/putty/default.nix
index 804a40a614c..61e82726f35 100644
--- a/pkgs/applications/networking/remote/putty/default.nix
+++ b/pkgs/applications/networking/remote/putty/default.nix
@@ -3,7 +3,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.73";
+  version = "0.74";
   pname = "putty";
 
   src = fetchurl {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
       "https://the.earth.li/~sgtatham/putty/${version}/${pname}-${version}.tar.gz"
       "ftp://ftp.wayne.edu/putty/putty-website-mirror/${version}/${pname}-${version}.tar.gz"
     ];
-    sha256 = "076z34jpik2dmlwxicvf1djjgnahcqv12rjhmb9yq6ml7x0bbc1x";
+    sha256 = "0zc43g8ycyf712cdrja4k8ih5s3agw1k0nq0jkifdn8xwn4d7mfx";
   };
 
   # glib-2.62 deprecations
diff --git a/pkgs/applications/networking/remote/remmina/default.nix b/pkgs/applications/networking/remote/remmina/default.nix
index ee9ea667927..feb70741246 100644
--- a/pkgs/applications/networking/remote/remmina/default.nix
+++ b/pkgs/applications/networking/remote/remmina/default.nix
@@ -13,13 +13,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "remmina";
-  version = "1.4.4";
+  version = "1.4.7";
 
   src = fetchFromGitLab {
     owner  = "Remmina";
     repo   = "Remmina";
     rev    = "v${version}";
-    sha256 = "0kc0akr5xvbq2bx3wsgf0hd8x5hjgshwrrzhwixp0584ydax89gv";
+    sha256 = "0h09f2amj7ab78fzil2w7cr22d21ad5mp1r2fa70w26g7ra3jzk9";
   };
 
   nativeBuildInputs = [ cmake ninja pkgconfig wrapGAppsHook ];
diff --git a/pkgs/applications/networking/remote/teamviewer/default.nix b/pkgs/applications/networking/remote/teamviewer/default.nix
index dbb9d465cc7..9c3ed826a2d 100644
--- a/pkgs/applications/networking/remote/teamviewer/default.nix
+++ b/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -6,11 +6,11 @@
 
 mkDerivation rec {
   pname = "teamviewer";
-  version = "15.2.2756";
+  version = "15.8.3";
 
   src = fetchurl {
     url = "https://dl.tvcdn.de/download/linux/version_15x/teamviewer_${version}_amd64.deb";
-    sha256 = "1g6a7yadvc6gc660m62yibj2hrj7bwy26z5ww0gk6rwqlz048i97";
+    sha256 = "1c947yxgs0mv5x6qvy40dypbbhhjbglma1pwl66z39gzg51n2dmc";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/networking/remote/waypipe/default.nix b/pkgs/applications/networking/remote/waypipe/default.nix
index c72c7c6da8a..0393a5bdeb8 100644
--- a/pkgs/applications/networking/remote/waypipe/default.nix
+++ b/pkgs/applications/networking/remote/waypipe/default.nix
@@ -1,19 +1,19 @@
 { stdenv, fetchFromGitLab
-, meson, ninja, pkgconfig, scdoc
+, meson, ninja, pkg-config, scdoc
 , wayland, wayland-protocols, openssh
 , mesa, lz4, zstd, ffmpeg, libva
 }:
 
 stdenv.mkDerivation rec {
   pname = "waypipe-unstable";
-  version = "0.6.1";
+  version = "0.7.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "mstoeckl";
     repo = "waypipe";
     rev = "v${version}";
-    sha256 = "13kp5snkksli0sj5ldkgybcs1s865f0qdak2w8796xvy8dg9jda8";
+    sha256 = "0bkmibask7gfnwkn3fg3l6zaabp95n1zsdnz3dwng8j80a0kakyy";
   };
 
   postPatch = ''
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
       --replace "/usr/bin/ssh" "${openssh}/bin/ssh"
   '';
 
-  nativeBuildInputs = [ meson ninja pkgconfig scdoc ];
+  nativeBuildInputs = [ meson ninja pkg-config scdoc ];
 
   buildInputs = [
     wayland wayland-protocols
@@ -29,10 +29,6 @@ stdenv.mkDerivation rec {
     mesa lz4 zstd ffmpeg libva
   ];
 
-  enableParallelBuilding = true;
-
-  mesonFlags = [ "-Dwerror=false" ]; # TODO: Report warnings upstream
-
   meta = with stdenv.lib; {
     description = "A network proxy for Wayland clients (applications)";
     longDescription = ''
@@ -41,6 +37,7 @@ stdenv.mkDerivation rec {
       makes application forwarding similar to ssh -X feasible.
     '';
     homepage = "https://mstoeckl.com/notes/gsoc/blog.html";
+    changelog = "https://gitlab.freedesktop.org/mstoeckl/waypipe/-/releases#v${version}";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ primeos ];
diff --git a/pkgs/applications/networking/remote/wayvnc/add-missing-librt.patch b/pkgs/applications/networking/remote/wayvnc/add-missing-librt.patch
deleted file mode 100644
index e2d617bcc7c..00000000000
--- a/pkgs/applications/networking/remote/wayvnc/add-missing-librt.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/meson.build b/meson.build
-index cc6fa03..7c2b280 100644
---- a/meson.build
-+++ b/meson.build
-@@ -24,6 +24,7 @@ add_project_arguments(c_args, language: 'c')
- cc = meson.get_compiler('c')
- 
- libm = cc.find_library('m', required: false)
-+librt = cc.find_library('rt', required: false)
- 
- pixman = dependency('pixman-1')
- libuv = dependency('libuv')
-@@ -65,6 +66,7 @@ sources = [
- 
- dependencies = [
- 	libm,
-+	librt,
- 	pixman,
- 	libuv,
- 	egl,
diff --git a/pkgs/applications/networking/remote/wayvnc/default.nix b/pkgs/applications/networking/remote/wayvnc/default.nix
index 4ca6ae95258..32373e22b76 100644
--- a/pkgs/applications/networking/remote/wayvnc/default.nix
+++ b/pkgs/applications/networking/remote/wayvnc/default.nix
@@ -1,27 +1,20 @@
 { stdenv, fetchFromGitHub, meson, pkg-config, ninja
-, pixman, libuv, libGL, libxkbcommon, wayland, neatvnc, libdrm, libX11
+, pixman, libxkbcommon, wayland, neatvnc, libdrm, libX11, aml
 }:
 
 stdenv.mkDerivation rec {
   pname = "wayvnc";
-  version = "0.1.2";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "any1";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0aa12fkbwhzs0g2pqw1b27l33nn5dpbcvsf1z8h88kwsf9xdvb2r";
+    sha256 = "1ddcf8hrxhx4rcwvbjwa5j3ygiwca2dpw26wl37pb0q0jr81wylv";
   };
 
-  patches = [ ./add-missing-librt.patch ];
-
-  postPatch = ''
-    substituteInPlace meson.build \
-      --replace "version: '0.1.0'" "version: '${version}'"
-  '';
-
-  nativeBuildInputs = [ meson pkg-config ninja ];
-  buildInputs = [ pixman libuv libGL libxkbcommon wayland neatvnc libdrm libX11 ];
+  nativeBuildInputs = [ meson pkg-config ninja wayland ];
+  buildInputs = [ pixman libxkbcommon wayland neatvnc libdrm libX11 aml ];
 
   meta = with stdenv.lib; {
     description = "A VNC server for wlroots based Wayland compositors";
diff --git a/pkgs/applications/networking/resilio-sync/default.nix b/pkgs/applications/networking/resilio-sync/default.nix
index cdc2f5e1478..fe75268c0ec 100644
--- a/pkgs/applications/networking/resilio-sync/default.nix
+++ b/pkgs/applications/networking/resilio-sync/default.nix
@@ -9,13 +9,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "resilio-sync";
-  version = "2.7.1";
+  version = "2.7.2";
 
   src = fetchurl {
     url = "https://download-cdn.resilio.com/${version}/linux-${arch}/resilio-sync_${arch}.tar.gz";
     sha256 = {
-      x86_64-linux = "1gdjpwdg7cpig68wsl3b8w1y12391dh5ipg7g19kr30s6wr3avvm";
-      i686-linux   = "1b6pzckaixfzhjf38amrkg8pahh2p3jg6cgfacswdx7cjb4a0c4i";
+      x86_64-linux = "0gar5lzv1v4yqmypwqsjnfb64vffzn8mw9vnjr733fgf1pmr57hf";
+      i686-linux   = "1bws7r86h1vysjkhyvp2zk8yvxazmlczvhjlcayldskwq48iyv6w";
     }.${stdenv.hostPlatform.system};
   };
 
diff --git a/pkgs/applications/networking/scaleft/default.nix b/pkgs/applications/networking/scaleft/default.nix
index 991780bd820..b1a754193eb 100644
--- a/pkgs/applications/networking/scaleft/default.nix
+++ b/pkgs/applications/networking/scaleft/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "scaleft";
-  version = "1.41.0";
+  version = "1.45.4";
 
   src =
     fetchurl {
       url = "http://pkg.scaleft.com/rpm/scaleft-client-tools-${version}-1.x86_64.rpm";
-      sha256 = "a9a2f60cc85167a1098f44b35efd755b8155f0b88da8572e96ace767e7933c4d";
+      sha256 = "1yskybjba9ljy1wazddgrm7a4cc72i1xbk7sxnjpcq4hdy3b50l0";
     };
 
   nativeBuildInputs = [ patchelf rpmextract ];
diff --git a/pkgs/applications/networking/seafile-client/default.nix b/pkgs/applications/networking/seafile-client/default.nix
index 0893ee21a55..69b7b432b0a 100644
--- a/pkgs/applications/networking/seafile-client/default.nix
+++ b/pkgs/applications/networking/seafile-client/default.nix
@@ -4,13 +4,13 @@
 
 mkDerivation rec {
   pname = "seafile-client";
-  version = "7.0.7";
+  version = "7.0.9";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile-client";
     rev = "v${version}";
-    sha256 = "0szdyprljyckmbrw5sypizs22j96q84ak6nyidyr2j6gf4grh9mg";
+    sha256 = "0pcn6lfzma2hvpwsp9q0002wvym7zabpp8fvq29l101gzirn79m9";
   };
 
   nativeBuildInputs = [ pkgconfig cmake ];
diff --git a/pkgs/applications/networking/sniffers/ettercap/default.nix b/pkgs/applications/networking/sniffers/ettercap/default.nix
index 4af8e526cd2..8489b414cbc 100644
--- a/pkgs/applications/networking/sniffers/ettercap/default.nix
+++ b/pkgs/applications/networking/sniffers/ettercap/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ettercap";
-  version = "0.8.3";
+  version = "0.8.3.1";
 
   src = fetchFromGitHub {
     owner = "Ettercap";
     repo = "ettercap";
     rev = "v${version}";
-    sha256 = "0m40bmbrv9a8qlg54z3b5f8r541gl9vah5hm0bbqcgyyljpg39bz";
+    sha256 = "1sdf1ssa81ib6k0mc5m2jzbjl4jd1yv6ahv5dwx2x9w4b2pyqg1c";
   };
 
   strictDeps = true;
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index d025222b010..8d4a6d73120 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -10,7 +10,7 @@ assert withQt  -> qt5  != null;
 with stdenv.lib;
 
 let
-  version = "3.2.4";
+  version = "3.2.5";
   variant = if withQt then "qt" else "cli";
   pcap = libpcap.override { withBluez = stdenv.isLinux; };
 
@@ -21,7 +21,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
-    sha256 = "1amqgn94g6h6cfnsccm2zb4c73pfv1qmzi1i6h1hnbcyhhg4czfi";
+    sha256 = "0h69m9maq6w5gik4gamv4kfqrr37hmi4kpwh225y1k36awm0b2dx";
   };
 
   cmakeFlags = [
diff --git a/pkgs/applications/networking/ssb-patchwork/default.nix b/pkgs/applications/networking/ssb-patchwork/default.nix
index db33e7e6bb2..7bc5563d470 100644
--- a/pkgs/applications/networking/ssb-patchwork/default.nix
+++ b/pkgs/applications/networking/ssb-patchwork/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "ssb-patchwork";
-  version = "3.17.7";
+  version = "3.18.0";
   name = "Patchwork-${version}";
 
   src = fetchurl {
     url = "https://github.com/ssbc/patchwork/releases/download/v${version}/${name}.AppImage";
-    sha256 = "1xj2aqy7daf4r3ypch6hkvk1s0jnx70qwh0p63c7rzm16vh8kb2f";
+    sha256 = "1sb9q1qj5mj4cf8d9dsc498mg8a1ri2y0p9qbh44i8ykby8jkgjc";
   };
 
   binary = appimageTools.wrapType2 {
@@ -40,14 +40,14 @@ in
       cp ${desktopItem}/share/applications/* $out/share/applications/
     '';
 
-  meta = with lib; {
-    description = "A decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB)";
-    longDescription = ''
-      sea-slang for gossip - a scuttlebutt is basically a watercooler on a ship.
-    '';
-    homepage = "https://www.scuttlebutt.nz/";
-    license = licenses.agpl3;
-    maintainers = with maintainers; [ asymmetric ninjatrappeur thedavidmeister ];
-    platforms = [ "x86_64-linux" ];
-  };
-}
+    meta = with lib; {
+      description = "A decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB)";
+      longDescription = ''
+        sea-slang for gossip - a scuttlebutt is basically a watercooler on a ship.
+      '';
+      homepage = "https://www.scuttlebutt.nz/";
+      license = licenses.agpl3;
+      maintainers = with maintainers; [ asymmetric ninjatrappeur ];
+      platforms = [ "x86_64-linux" ];
+    };
+  }
diff --git a/pkgs/applications/networking/sync/rclone/default.nix b/pkgs/applications/networking/sync/rclone/default.nix
index bfbe32fba48..35315b729c1 100644
--- a/pkgs/applications/networking/sync/rclone/default.nix
+++ b/pkgs/applications/networking/sync/rclone/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, buildPackages, installShellFiles }:
+{ stdenv, buildGoModule, fetchFromGitHub, buildPackages, installShellFiles }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "rclone";
-  version = "1.52.2";
+  version = "1.53.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1da6azr4j5sbzb5xpy2xk4vqi6bdpmzlq3pxrmakaskicz64nnld";
+    sha256 = "1736np95di9ksy6i8glzmvzc7qp4d06354gvrnxbzimgf0mm11wn";
   };
 
-  goPackagePath = "github.com/rclone/rclone";
+  vendorSha256 = "1l4iz31k1pylvf0zrp4nhxna70s1ma4981x6q1s3dhszjxil5c88";
 
   subPackages = [ "." ];
 
@@ -19,6 +19,8 @@ buildGoPackage rec {
 
   nativeBuildInputs = [ installShellFiles ];
 
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/rclone/rclone/fs.Version=${version}" ];
+
   postInstall =
     let
       rcloneBin =
@@ -26,19 +28,18 @@ buildGoPackage rec {
         then "$out"
         else stdenv.lib.getBin buildPackages.rclone;
     in
-      ''
-        installManPage $src/rclone.1
-        for shell in bash zsh fish; do
-          ${rcloneBin}/bin/rclone genautocomplete $shell rclone.$shell
-          installShellCompletion rclone.$shell
-        done
-      '';
+    ''
+      installManPage rclone.1
+      for shell in bash zsh fish; do
+        ${rcloneBin}/bin/rclone genautocomplete $shell rclone.$shell
+        installShellCompletion rclone.$shell
+      done
+    '';
 
   meta = with stdenv.lib; {
     description = "Command line program to sync files and directories to and from major cloud storage";
     homepage = "https://rclone.org";
     license = licenses.mit;
-    maintainers = with maintainers; [ danielfullmer ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ danielfullmer marsam ];
   };
 }
diff --git a/pkgs/applications/networking/syncplay/default.nix b/pkgs/applications/networking/syncplay/default.nix
index 0613a5c5bcd..ac242eb9dc9 100644
--- a/pkgs/applications/networking/syncplay/default.nix
+++ b/pkgs/applications/networking/syncplay/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonApplication rec {
   pname = "syncplay";
-  version = "1.6.4a";
+  version = "1.6.5";
 
   format = "other";
 
@@ -10,7 +10,7 @@ buildPythonApplication rec {
     owner = "Syncplay";
     repo = "syncplay";
     rev = "v${version}";
-    sha256 = "0zz4a3vzfg808z1qkqz31z4818wzpfa2lika7wl0jgpmw4zi85ix";
+    sha256 = "107dgsrjv95ww6gj77q89dirl604b2ljlpjg79gffm9c4gkmjj2m";
   };
 
   propagatedBuildInputs = [ pyside2 shiboken2 twisted certifi ] ++ twisted.extras.tls;
diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
index 9d5ce848e33..aec44c1bfd8 100644
--- a/pkgs/applications/networking/syncthing/default.nix
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -3,17 +3,19 @@
 let
   common = { stname, target, postInstall ? "" }:
     buildGoModule rec {
-      version = "1.6.1";
+      version = "1.8.0";
       name = "${stname}-${version}";
 
       src = fetchFromGitHub {
         owner  = "syncthing";
         repo   = "syncthing";
         rev    = "v${version}";
-        sha256 = "1lhbx1mh2hdjjwks3s17i8y9vbl3fnapc1czaf42pp7nf8245q3j";
+        sha256 = "047y2sy9zif19dlh098ihaski9f3b971q3mmqg97qgfzpa8z8fpr";
       };
 
-      vendorSha256 = "12g63a6jsshzqjgww792xmvybhfbkjx5aza4xnyljjsp453iky7k";
+      vendorSha256 = "0l08d96226l135cqbv1qqw0136f5nzw7likc0nmhcm6ynzv83kj2";
+
+      doCheck = false;
 
       patches = [
         ./add-stcli-target.patch
@@ -41,7 +43,7 @@ let
       };
 
       meta = with lib; {
-        homepage = "https://www.syncthing.net/";
+        homepage = "https://syncthing.net/";
         description = "Open Source Continuous File Synchronization";
         license = licenses.mpl20;
         maintainers = with maintainers; [ pshendry joko peterhoeg andrew-d ];
diff --git a/pkgs/applications/networking/termius/default.nix b/pkgs/applications/networking/termius/default.nix
index a890aefe8cd..9ce2f1fcfd1 100644
--- a/pkgs/applications/networking/termius/default.nix
+++ b/pkgs/applications/networking/termius/default.nix
@@ -5,17 +5,18 @@
 , makeDesktopItem
 , makeWrapper
 , stdenv
+, lib
 , udev
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "termius";
-  version = "5.10.1";
+  version = "6.1.1";
 
   src = fetchurl {
     url = "https://deb.termius.com/pool/main/t/termius-app/termius-app_${version}_amd64.deb";
-    sha256 = "04zh0zzyp906lf6mz3xzxybn2a55rv3vvrj0m12gnrb8kjb3pk5s";
+    sha256 = "1z3ry9jjiyqn41h38hyrx27c2cz8j39qa6i6f0f79p6pqfv93p70";
   };
 
   desktopItem = makeDesktopItem {
@@ -50,7 +51,7 @@ stdenv.mkDerivation rec {
     cp "${desktopItem}/share/applications/"* "$out/share/applications"
   '';
 
-  runtimeDependencies = [ udev.lib ];
+  runtimeDependencies = [ (lib.getLib udev) ];
 
   postFixup = ''
     makeWrapper $out/opt/Termius/termius-app $out/bin/termius-app \
diff --git a/pkgs/applications/networking/utahfs/default.nix b/pkgs/applications/networking/utahfs/default.nix
new file mode 100644
index 00000000000..6e30e03531d
--- /dev/null
+++ b/pkgs/applications/networking/utahfs/default.nix
@@ -0,0 +1,24 @@
+{ buildGoPackage, lib, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "utahfs";
+  version = "1.0";
+  src = fetchFromGitHub {
+    owner = "cloudflare";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1hpwch5fsqlxwpk5afawa1k5s0bx5c1cw0hvdllp7257lgly19fb";
+  };
+
+  goPackagePath = "github.com/cloudflare/utahfs";
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    homepage = "https://github.com/cloudflare/utahfs";
+    description =
+      "Encrypted storage system that provides a user-friendly FUSE drive backed by cloud storage";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.snglth ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/networking/utahfs/deps.nix b/pkgs/applications/networking/utahfs/deps.nix
new file mode 100644
index 00000000000..a144211fc95
--- /dev/null
+++ b/pkgs/applications/networking/utahfs/deps.nix
@@ -0,0 +1,327 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "cloud.google.com/go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/googleapis/google-cloud-go";
+      rev =  "a6b88cf34a491498e4c7d15c107a31058693e2cb";
+      sha256 = "0ilqqymrphg546c66jc0npd48dlr88wbgrg462h1jgm2ykbnq1ba";
+    };
+  }
+  {
+    goPackagePath  = "github.com/BurntSushi/toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/toml";
+      rev =  "3012a1dbe2e4bd1391d42b32f0577cb7bbc7f005";
+      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
+    };
+  }
+  {
+    goPackagePath  = "github.com/aws/aws-sdk-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/aws/aws-sdk-go";
+      rev =  "420cda5d6383f94f7d9c231aa44bad3325181950";
+      sha256 = "1mp0c9173328r67iica662013jnshiv8yg2p5zgs0kr5sh3ri0ws";
+    };
+  }
+  {
+    goPackagePath  = "github.com/beorn7/perks";
+    fetch = {
+      type = "git";
+      url = "https://github.com/beorn7/perks";
+      rev =  "4b2b341e8d7715fae06375aa633dbb6e91b3fb46";
+      sha256 = "1i1nz1f6g55xi2y3aiaz5kqfgvknarbfl4f0sx4nyyb4s7xb1z9x";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/glog";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/glog";
+      rev =  "23def4e6c14b4da8ac2ed8007337bc5eb5007998";
+      sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/groupcache";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/groupcache";
+      rev =  "8c9f03a8e57eb486e42badaed3fb287da51807ba";
+      sha256 = "0vjjr79r32icjzlb05wn02k59av7jx0rn1jijml8r4whlg7dnkfh";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev =  "6c65a5562fc06764971b7c5d05c76c75e84bdbf7";
+      sha256 = "1k1wb4zr0qbwgpvz9q5ws9zhlal8hq7dmq62pwxxriksayl6hzym";
+    };
+  }
+  {
+    goPackagePath  = "github.com/google/readahead";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/readahead";
+      rev =  "eaceba16903255cb149d1efc316f6cc83d765268";
+      sha256 = "19l6a29yyypgpqf7v5877ni0bqgxfp41q7ffp2xj57rvikimwiyb";
+    };
+  }
+  {
+    goPackagePath  = "github.com/googleapis/gax-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/googleapis/gax-go";
+      rev =  "bd5b16380fd03dc758d11cef74ba2e3bc8b0e8c2";
+      sha256 = "1lxawwngv6miaqd25s3ba0didfzylbwisd2nz7r4gmbmin6jsjrx";
+    };
+  }
+  {
+    goPackagePath  = "github.com/jacobsa/fuse";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jacobsa/fuse";
+      rev =  "cd3959611bcb6bb23d49f1598d98f2bf44476805";
+      sha256 = "0qy7gyczmdwclhml0n4js3rai7qinnvlr8xz1wn0g6z0vqc9p9iz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/jmespath/go-jmespath";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jmespath/go-jmespath";
+      rev =  "c2b33e84";
+      sha256 = "1r6w7ydx8ydryxk3sfhzsk8m6f1nsik9jg3i1zhi69v4kfl4d5cz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/jstemmer/go-junit-report";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jstemmer/go-junit-report";
+      rev =  "cc1f095d5cc5eca2844f5c5ea7bb37f6b9bf6cac";
+      sha256 = "1knip80yir1cdsjlb3rzy0a4w3kl4ljpiciaz6hjzwqlfhnv7bkw";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-sqlite3";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-sqlite3";
+      rev =  "c7c4067b79cc51e6dfdcef5c702e74b1e0fa7c75";
+      sha256 = "1zmz6asplixfihxhj11spgfs0v3xzb3nv0hlq6n6zsg781ni31xx";
+    };
+  }
+  {
+    goPackagePath  = "github.com/matttproud/golang_protobuf_extensions";
+    fetch = {
+      type = "git";
+      url = "https://github.com/matttproud/golang_protobuf_extensions";
+      rev =  "c12348ce28de40eed0136aa2b644d0ee0650e56c";
+      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pquerna/ffjson";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pquerna/ffjson";
+      rev =  "e517b90714f7c0eabe6d2e570a5886ae077d6db6";
+      sha256 = "0lb76zvdi045r3kab529p9ippccsi9vw84xhinddyr4qrxvs9b06";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/client_golang";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/client_golang";
+      rev =  "4ab88e80c249ed361d3299e2930427d9ac43ef8d";
+      sha256 = "1f03ndyi3jq7zdxinnvzimz3s4z2374r6dikkc8i42xzb6d1bli6";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/client_model";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/client_model";
+      rev =  "fd36f4220a901265f90734c3183c5f0c91daa0b8";
+      sha256 = "1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/common";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/common";
+      rev =  "31bed53e4047fd6c510e43a941f90cb31be0972a";
+      sha256 = "1q16br348117ffycxdwsldb0i39p34miclfa8z93k6vjwnrqbh2l";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/procfs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/procfs";
+      rev =  "3f98efb27840a48a7a2898ec80be07674d19f9c8";
+      sha256 = "18c4m795fwng8f8qa395f3crvamlbk5y5afk8b5rzyisnmjq774y";
+    };
+  }
+  {
+    goPackagePath  = "go.opencensus.io";
+    fetch = {
+      type = "git";
+      url = "https://github.com/census-instrumentation/opencensus-go";
+      rev =  "d835ff86be02193d324330acdb7d65546b05f814";
+      sha256 = "0xj16iq5jp26hi2py7lsd8cvqh651fgn39y05gzvjdi88d9xd3nw";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev =  "4def268fd1a49955bfb3dda92fe3db4f924f2285";
+      sha256 = "1bfsnari529gw34cz0zqk3d9mrkcj1ay35kangri8kbgll0ss5a6";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/lint";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/lint";
+      rev =  "738671d3881b9731cc63024d5d88cf28db875626";
+      sha256 = "0jkiz4py59jjnkyxbxifpf7bsar11lbgmj5jiq2kic5k03shkn9c";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/mod";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/mod";
+      rev =  "ed3ec21bb8e252814c380df79a80f366440ddb2d";
+      sha256 = "1fp6885dclq77mh73v7i54v2b9llpv4di193zc8vmsbbkkc483cl";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "244492dfa37ae2ce87222fd06250a03160745faa";
+      sha256 = "0vm2q44phz4vjnzq9428rjk58c82fxf003whczp7c9ryn9fazh7s";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/oauth2";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/oauth2";
+      rev =  "bf48bf16ab8d622ce64ec6ce98d2c98f916b6303";
+      sha256 = "1sirdib60zwmh93kf9qrx51r8544k1p9rs5mk0797wibz3m4mrdg";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev =  "fae7ac547cb717d141c433a2a173315e216b64c4";
+      sha256 = "11pl0dycm5d8ar7g1l1w5q2cx0lms8i15n8mxhilhkdd2xpmh8f0";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev =  "342b2e1fbaa52c93f31447ad2c6abc048c63e475";
+      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev =  "e8dd451b4bcb2ef4a22627699ed7d9df7653d6f3";
+      sha256 = "0a088x8gpq7y0nx7z5baz2p9n1br908yrwjqnh2f9b4mv38kagzi";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/xerrors";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/xerrors";
+      rev =  "9bdfabe68543c54f90421aeb9a60ef8061b5b544";
+      sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c";
+    };
+  }
+  {
+    goPackagePath  = "google.golang.org/api";
+    fetch = {
+      type = "git";
+      url = "https://github.com/googleapis/google-api-go-client";
+      rev =  "c24765c18bb761c90df819dcdfdd62f9a7f6fa22";
+      sha256 = "13syr1x33k6mrn5w6l4sgdbzn368w3m60vf6kk2j10fwa45125rg";
+    };
+  }
+  {
+    goPackagePath  = "google.golang.org/appengine";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/appengine";
+      rev =  "971852bfffca25b069c31162ae8f247a3dba083b";
+      sha256 = "05hbq4cs7bqw0zl17bx8rzdkszid3nyl92100scg3jjrg70dhm7w";
+    };
+  }
+  {
+    goPackagePath  = "google.golang.org/genproto";
+    fetch = {
+      type = "git";
+      url = "https://github.com/googleapis/go-genproto";
+      rev =  "43be25429f5aa0b9a3f18fa4e32583729ca30b78";
+      sha256 = "0rj8xjyn4b73wvfg6v0fff7brnc61xd41500vxa6lw8cg36d51gr";
+    };
+  }
+  {
+    goPackagePath  = "google.golang.org/grpc";
+    fetch = {
+      type = "git";
+      url = "https://github.com/grpc/grpc-go";
+      rev =  "142182889d38b76209f1d9f1d8e91d7608aff542";
+      sha256 = "1m36rg3w2mf4r3383yf0r1pjrz890mdw506h1lpm6bkc8w3kyqz3";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/kothar/go-backblaze.v0";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kothar/go-backblaze";
+      rev =  "7594ed38700f5ca3fc7da8f8c7b91b0526ee66f2";
+      sha256 = "0zgd5jwwdrqrnx828yxkzywh1dnwqi9y8pmq0vsndi6bwdp6dvkb";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-yaml/yaml";
+      rev =  "51d6538a90f86fe93ac480b35f37b2be17fef232";
+      sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
+    };
+  }
+  {
+    goPackagePath  = "honnef.co/go/tools";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dominikh/go-tools";
+      rev =  "508b5eb18ee2f667ce06235ed383647038e2afc5";
+      sha256 = "0pvi1mzhy6zgx4zfgdypbl4zhvgg11hl5qv7blf2qs0a96j2djhf";
+    };
+  }
+]
\ No newline at end of file
diff --git a/pkgs/applications/networking/weather/meteo/default.nix b/pkgs/applications/networking/weather/meteo/default.nix
index 9887e34d735..c0591f24c96 100644
--- a/pkgs/applications/networking/weather/meteo/default.nix
+++ b/pkgs/applications/networking/weather/meteo/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitLab, vala, python3, pkgconfig, meson, ninja, gtk3
-, json-glib, libsoup, webkitgtk, geocode-glib
+, json-glib, libsoup, webkitgtk, geocode-glib, nix-update-script
 , libappindicator, desktop-file-utils, appstream, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
@@ -38,6 +38,13 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+
   meta = with stdenv.lib; {
     description = "Know the forecast of the next hours & days";
     homepage = "https://gitlab.com/bitseater/meteo";
diff --git a/pkgs/applications/networking/websocketd/default.nix b/pkgs/applications/networking/websocketd/default.nix
index 17f42b5ece4..c287abb0de2 100644
--- a/pkgs/applications/networking/websocketd/default.nix
+++ b/pkgs/applications/networking/websocketd/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "05k31z4h3b327mh940zh52im4xfk7kf5phb8b7xp4l9bgckhz4lb";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Turn any program that uses STDIN/STDOUT into a WebSocket server";
     homepage = "http://websocketd.com/";
     maintainers = [ maintainers.bjornfor ];
     license = licenses.bsd2;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/networking/wg-bond/default.nix b/pkgs/applications/networking/wg-bond/default.nix
new file mode 100644
index 00000000000..32ffbde400b
--- /dev/null
+++ b/pkgs/applications/networking/wg-bond/default.nix
@@ -0,0 +1,29 @@
+{ pkgs, lib, rustPlatform, fetchFromGitLab, wireguard-tools, makeWrapper }:
+rustPlatform.buildRustPackage rec {
+  pname = "wg-bond";
+  version = "0.2.0";
+
+  src = fetchFromGitLab {
+    owner = "cab404";
+    repo = "wg-bond";
+    rev = "v${version}";
+    hash = "sha256:04k0maxy39k7qzcsqsv1byddsmjszmnyjffrf22nzbvml83p3l0y";
+  };
+
+  cargoSha256 = "1v2az0v6l8mqryvq3898hm7bpvqdd2c4kpv6ck7932jfjyna512k";
+
+  buildInputs = [ makeWrapper ];
+  postInstall = ''
+    wrapProgram $out/bin/wg-bond --set PATH ${
+      lib.makeBinPath [ wireguard-tools ]
+    }
+  '';
+
+  meta = with lib; {
+    description = "Wireguard configuration manager";
+    homepage = "https://gitlab.com/cab404/wg-bond";
+    changelog = "https://gitlab.com/cab404/wg-bond/-/releases#v${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ cab404 ];
+  };
+}
diff --git a/pkgs/applications/office/aesop/default.nix b/pkgs/applications/office/aesop/default.nix
index 4f8c115600a..0e76c101545 100644
--- a/pkgs/applications/office/aesop/default.nix
+++ b/pkgs/applications/office/aesop/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, vala, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3, gtk3
+{ stdenv, vala, fetchFromGitHub, nix-update-script, pantheon, pkgconfig, meson, ninja, python3, gtk3
 , desktop-file-utils, json-glib, libsoup, libgee, poppler, wrapGAppsHook, fetchpatch }:
 
 stdenv.mkDerivation rec {
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/office/agenda/default.nix b/pkgs/applications/office/agenda/default.nix
index f7028ad6765..32cb2988ae3 100644
--- a/pkgs/applications/office/agenda/default.nix
+++ b/pkgs/applications/office/agenda/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -50,7 +51,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/office/beamerpresenter/default.nix b/pkgs/applications/office/beamerpresenter/default.nix
new file mode 100644
index 00000000000..cd15d3723d1
--- /dev/null
+++ b/pkgs/applications/office/beamerpresenter/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, mkDerivation, fetchFromGitHub, installShellFiles,
+  qmake, qtbase, poppler, qtmultimedia }:
+
+mkDerivation rec {
+  pname = "beamerpresenter";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "stiglers-eponym";
+    repo = "BeamerPresenter";
+    rev = "v${version}";
+    sha256 = "12xngnhwa3haf0pdxczgvhq1j20zbsr30y2bfn9qwmlhbwklhkj2";
+  };
+
+  nativeBuildInputs = [ qmake installShellFiles ];
+  buildInputs = [ qtbase qtmultimedia poppler ];
+
+  postPatch = ''
+    # Fix location of poppler-*.h
+    shopt -s globstar
+    for f in **/*.{h,cpp}; do
+      substituteInPlace $f --replace '#include <poppler-' '#include <poppler/qt5/poppler-'
+    done
+  '';
+
+  installPhase = ''
+    install -m755 beamerpresenter -Dt $out/bin/
+    install -m644 src/icons/beamerpresenter.svg -Dt $out/share/icons/hicolor/scalable/apps/
+    install -m644 share/applications/beamerpresenter.desktop -Dt $out/share/applications/
+    installManPage man/*.{1,5}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple dual screen pdf presentation software";
+    homepage = "https://github.com/stiglers-eponym/BeamerPresenter";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ pacien ];
+  };
+}
diff --git a/pkgs/applications/office/calligra/default.nix b/pkgs/applications/office/calligra/default.nix
index 6915be9b6d6..40c4b77f1b6 100644
--- a/pkgs/applications/office/calligra/default.nix
+++ b/pkgs/applications/office/calligra/default.nix
@@ -7,7 +7,7 @@
   knotifications, knotifyconfig, kparts, ktextwidgets, kwallet, kwidgetsaddons,
   kwindowsystem, kxmlgui, sonnet, threadweaver,
   kcontacts, akonadi, akonadi-calendar, akonadi-contacts,
-  eigen, git, gsl, ilmbase, kproperty, kreport, lcms2, marble, libgit2, libodfgen,
+  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
@@ -15,18 +15,14 @@
 
 mkDerivation rec {
   pname = "calligra";
-  version = "3.1.0";
+  version = "3.2.0";
 
   src = fetchurl {
     url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0w782k0hprpb6viixnqz34sp0z5csv3prdby46z22qqkcipcs638";
+    sha256 = "sha256-flViKGZdeeZ8Bi/RFz1mdvCw187v3W4bC8+aeB6nCVE=";
   };
 
-  patches = [ ./qt5_11.patch ];
-
-  enableParallelBuilding = true;
-
-  nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
 
   buildInputs = [
     boost qtwebkit qtx11extras shared-mime-info
@@ -35,7 +31,7 @@ mkDerivation rec {
     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 libgit2 libodfgen librevenge
+    eigen git gsl ilmbase kproperty kreport lcms2 marble pcre libgit2 libodfgen librevenge
     libvisio libwpd libwpg libwps okular openexr openjpeg phonon poppler qca-qt5 vc
   ];
 
@@ -43,13 +39,10 @@ mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR";
 
-  postInstall = ''
-    for i in $out/bin/*; do
-      wrapProgram $i \
-        --prefix PATH ':' "${pstoedit.out}/bin" \
-        --prefix XDG_DATA_DIRS ':' "${breeze-icons}/share"
-    done
-  '';
+  qtWrapperArgs = [
+    "--prefix PATH : ${lib.getBin pstoedit}/bin"
+    "--prefix XDG_DATA_DIRS : ${breeze-icons}/share"
+  ];
 
   meta = with lib; {
     description = "A suite of productivity applications";
@@ -64,7 +57,5 @@ mkDerivation rec {
     maintainers = with maintainers; [ phreedom ebzzry zraexy ];
     platforms = platforms.linux;
     license = with licenses; [ gpl2 lgpl2 ];
-    hydraPlatforms = [];
-    broken = true; # fails to start, kde home not found
   };
 }
diff --git a/pkgs/applications/office/elementary-planner/default.nix b/pkgs/applications/office/elementary-planner/default.nix
index e92d7d64337..c1d459a2df5 100644
--- a/pkgs/applications/office/elementary-planner/default.nix
+++ b/pkgs/applications/office/elementary-planner/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-planner";
-  version = "2.4.2";
+  version = "2.4.6";
 
   src = fetchFromGitHub {
     owner = "alainm23";
     repo = "planner";
     rev = version;
-    sha256 = "1q5pf9hnkix68idjd1dari8qlzfniazh8xfszj48d0yibhlr99zx";
+    sha256 = "0z0997yq809wbsk3w21xv4fcrgqcb958qdlksf4rhzhfnwbiii6y";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/envelope/default.nix b/pkgs/applications/office/envelope/default.nix
index 2a2f55a27a4..450b52bc0ca 100644
--- a/pkgs/applications/office/envelope/default.nix
+++ b/pkgs/applications/office/envelope/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , meson
 , ninja
@@ -65,7 +66,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/office/espanso/default.nix b/pkgs/applications/office/espanso/default.nix
index 8fb9b3c7878..86a2c961194 100644
--- a/pkgs/applications/office/espanso/default.nix
+++ b/pkgs/applications/office/espanso/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "espanso";
-  version = "0.6.3";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "federico-terzi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1x5p7hniapggqd18rx26mjvdf33z7rm7zz5vsqm2siv3mcl19033";
+    sha256 = "1yspycgmg7vwf4d86r6n24lvgn14aq73fl8sn00shxndramp46ib";
   };
 
-  cargoSha256 = "0liwwdncymjql5dw7rwhhimcr7qdbyvfgmsd0bawvi0ym7m1v408";
+  cargoSha256 = "0g0xf8j4yjayl7a5sqxm3piiif1hc7ws3i7q8vi7dk8nk609pbxr";
 
   nativeBuildInputs = [
     extra-cmake-modules
@@ -47,7 +47,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://espanso.org";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ kimat ];
-    platforms = platforms.all;
 
     longDescription = ''
       Espanso detects when you type a keyword and replaces it while you're typing.
diff --git a/pkgs/applications/office/flexibee/default.nix b/pkgs/applications/office/flexibee/default.nix
index c215b9ef637..f33eb98a48b 100644
--- a/pkgs/applications/office/flexibee/default.nix
+++ b/pkgs/applications/office/flexibee/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, makeWrapper, jre }:
 
 let
-  version = "2019.3.1.3";
+  version = "2020.2.3.1";
   majorVersion = builtins.substring 0 6 version;
 in
 
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://download.flexibee.eu/download/${majorVersion}/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0jfj0vmrwa05ga4rhqn0sapad06mq0pampmkr75vail2289zkga2";
+    sha256 = "05wzg7f6mzz7r6azzb8k2g5fakkqh6762y4q9qkmrzbixvxh4lz9";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/office/gnumeric/default.nix b/pkgs/applications/office/gnumeric/default.nix
index 40351ba64a1..b0609863c5a 100644
--- a/pkgs/applications/office/gnumeric/default.nix
+++ b/pkgs/applications/office/gnumeric/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, intltool, perlPackages
+{ stdenv, fetchurl, pkg-config, intltool, perlPackages
 , goffice, gnome3, wrapGAppsHook, gtk3, bison, python3Packages
 , itstool
 }:
@@ -7,16 +7,16 @@ let
   inherit (python3Packages) python pygobject3;
 in stdenv.mkDerivation rec {
   pname = "gnumeric";
-  version = "1.12.47";
+  version = "1.12.48";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1khrf72kiq50y8b5prbj2207k9shn36h2b2i588cc4wa28s9y5a0";
+    sha256 = "14556b0vyxdvdwjlin0rv7jk0vq4nplbmvp9j89bhkfk84xf7k2p";
   };
 
   configureFlags = [ "--disable-component" ];
 
-  nativeBuildInputs = [ pkgconfig intltool bison itstool wrapGAppsHook ];
+  nativeBuildInputs = [ pkg-config intltool bison itstool wrapGAppsHook ];
 
   # ToDo: optional libgda, introspection?
   buildInputs = [
diff --git a/pkgs/applications/office/gtg/default.nix b/pkgs/applications/office/gtg/default.nix
new file mode 100644
index 00000000000..9bd25cfff1d
--- /dev/null
+++ b/pkgs/applications/office/gtg/default.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, fetchFromGitHub
+, meson
+, python3Packages
+, ninja
+, gtk3
+, wrapGAppsHook
+, glib
+, itstool
+, gettext
+, pango
+, gdk-pixbuf
+, gobject-introspection
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "gtg";
+  version = "unstable-2020-08-02";
+
+  src = fetchFromGitHub {
+    owner = "getting-things-gnome";
+    repo = "gtg";
+    rev = "6623731f301c1b9c7b727e009f4a6462ad381c68";
+    sha256 = "14gxgg4nl0ki3dn913041jpyfhxsj90fkd55z6mmpyklhr8mwss1";
+  };
+
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    itstool
+    gettext
+    wrapGAppsHook
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    pango
+    gdk-pixbuf
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    pycairo
+    pygobject3
+    lxml
+    dbus-python
+    gst-python
+    liblarch
+  ];
+
+  checkInputs = with python3Packages; [
+    nose
+    mock
+  ];
+
+  format = "other";
+  strictDeps = false; # gobject-introspection does not run with strictDeps (https://github.com/NixOS/nixpkgs/issues/56943)
+
+  checkPhase = "python3 ../run-tests";
+
+  meta = with stdenv.lib; {
+    description = " A personal tasks and TODO-list items organizer.";
+    longDescription = ''
+      "Getting Things GNOME" (GTG) is a personal tasks and ToDo list organizer inspired by the "Getting Things Done" (GTD) methodology.
+      GTG is intended to help you track everything you need to do and need to know, from small tasks to large projects.
+    '';
+    homepage = "https://wiki.gnome.org/Apps/GTG";
+    downloadPage = "https://github.com/getting-things-gnome/gtg/releases";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ oyren ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/office/khronos/default.nix b/pkgs/applications/office/khronos/default.nix
index 1962528f6b6..b5cb94cda9b 100644
--- a/pkgs/applications/office/khronos/default.nix
+++ b/pkgs/applications/office/khronos/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , vala
@@ -49,7 +50,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/office/ledger/default.nix b/pkgs/applications/office/ledger/default.nix
index 6ac092f27e2..543545de263 100644
--- a/pkgs/applications/office/ledger/default.nix
+++ b/pkgs/applications/office/ledger/default.nix
@@ -1,37 +1,44 @@
-{ stdenv, fetchFromGitHub, cmake, boost, gmp, mpfr, libedit, python
+{ stdenv, lib, fetchFromGitHub, cmake, boost, gmp, mpfr, libedit, python
 , texinfo, gnused, usePython ? true }:
 
 stdenv.mkDerivation rec {
   pname = "ledger";
-  version = "3.1.3";
+  version = "3.2.1";
 
   src = fetchFromGitHub {
     owner  = "ledger";
     repo   = "ledger";
     rev    = "v${version}";
-    sha256 = "0bfnrqrd6wqgsngfpqi30xh6yy86pwl25iwzrqy44q31r0zl4mm3";
+    sha256 = "0x6jxwss3wwzbzlwmnwb8yzjk8f9wfawif4f1b74z2qg6hc4r7f6";
   };
 
+  outputs = [ "out" "dev" ];
+
   buildInputs = [
     (boost.override { enablePython = usePython; })
-    gmp mpfr libedit python texinfo gnused
+    gmp mpfr libedit python gnused
   ];
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake texinfo ];
 
   enableParallelBuilding = true;
 
   cmakeFlags = [
     "-DCMAKE_INSTALL_LIBDIR=lib"
     "-DBUILD_DOCS:BOOL=ON"
-    (stdenv.lib.optionalString usePython "-DUSE_PYTHON=true")
-   ];
+    (lib.optionalString usePython "-DUSE_PYTHON=true")
+  ];
 
-  postBuild = ''
-    make doc
+  # by default, it will query the python interpreter for it's sitepackages location
+  # 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}"'
   '';
 
-  meta = with stdenv.lib; {
+  installTargets = [ "doc" "install" ];
+
+  meta = with lib; {
     homepage = "https://ledger-cli.org/";
     description = "A double-entry accounting system with a command-line reporting interface";
     license = licenses.bsd3;
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index 66e12b22173..111e50b7d45 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -13,7 +13,7 @@
 , librevenge, libe-book, libmwaw, glm, glew, gst_all_1
 , gdb, commonsLogging, librdf_rasqal, wrapGAppsHook
 , gnome3, glib, ncurses, epoxy, gpgme
-, langs ? [ "ca" "cs" "de" "en-GB" "en-US" "eo" "es" "fr" "hu" "it" "ja" "nl" "pl" "pt" "pt-BR" "ru" "sl" "zh-CN" ]
+, langs ? [ "ca" "cs" "da" "de" "en-GB" "en-US" "eo" "es" "fr" "hu" "it" "ja" "nl" "pl" "pt" "pt-BR" "ro" "ru" "sl" "zh-CN" ]
 , withHelp ? true
 , kdeIntegration ? false, mkDerivation ? null, qtbase ? null, qtx11extras ? null
 , ki18n ? null, kconfig ? null, kcoreaddons ? null, kio ? null, kwindowsystem ? null
@@ -61,15 +61,12 @@ in (mkDrv rec {
   # of rasqal/rasqal.h
   NIX_CFLAGS_COMPILE = [
     "-I${librdf_rasqal}/include/rasqal"
-  ] ++ lib.optional stdenv.isx86_64 "-mno-fma";
+  ] ++ lib.optionals stdenv.isx86_64 [ "-mno-fma" "-mno-avx" ]
+  # https://bugs.documentfoundation.org/show_bug.cgi?id=78174#c10
+  ++ [ "-fno-visibility-inlines-hidden" ];
 
   patches = [
     ./xdg-open-brief.patch
-    (fetchpatch {
-      url = "https://git.pld-linux.org/gitweb.cgi?p=packages/libreoffice.git;a=blob_plain;f=poppler-0.86.patch;h=76b8356d5f22ef537a83b0f9b0debab591f152fe;hb=a2737a61353e305a9ee69640fb20d4582c218008";
-      name = "poppler-0.86.patch";
-      sha256 = "0q6k4l8imgp8ailcv0qx5l83afyw44hah24fi7gjrm9xgv5sbb8j";
-    })
   ];
 
   tarballPath = "external/tarballs";
diff --git a/pkgs/applications/office/libreoffice/src-fresh/download.nix b/pkgs/applications/office/libreoffice/src-fresh/download.nix
index f4b14870eb7..16d754a18a1 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/download.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/download.nix
@@ -28,11 +28,11 @@
     md5name = "976a12a59bc286d634a21d7be0841cc74289ea9077aa1af46be19d1a6e844c19-apr-util-1.5.4.tar.gz";
   }
   {
-    name = "boost_1_69_0.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/boost_1_69_0.tar.bz2";
-    sha256 = "8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406";
+    name = "boost_1_71_0.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/boost_1_71_0.tar.xz";
+    sha256 = "35e06a3bd7cd8f66be822c7d64e80c2b6051a181e9e897006917cb8e7988a543";
     md5 = "";
-    md5name = "8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406-boost_1_69_0.tar.bz2";
+    md5name = "35e06a3bd7cd8f66be822c7d64e80c2b6051a181e9e897006917cb8e7988a543-boost_1_71_0.tar.xz";
   }
   {
     name = "breakpad.zip";
@@ -63,11 +63,11 @@
     md5name = "5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331-cairo-1.16.0.tar.xz";
   }
   {
-    name = "libcdr-0.1.5.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/libcdr-0.1.5.tar.xz";
-    sha256 = "6ace5c499a8be34ad871e825442ce388614ae2d8675c4381756a7319429e3a48";
+    name = "libcdr-0.1.6.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libcdr-0.1.6.tar.xz";
+    sha256 = "01cd00b04a030977e544433c2d127c997205332cd9b8e35ec0ee17110da7f861";
     md5 = "";
-    md5name = "6ace5c499a8be34ad871e825442ce388614ae2d8675c4381756a7319429e3a48-libcdr-0.1.5.tar.xz";
+    md5name = "01cd00b04a030977e544433c2d127c997205332cd9b8e35ec0ee17110da7f861-libcdr-0.1.6.tar.xz";
   }
   {
     name = "clucene-core-2.3.3.4.tar.gz";
@@ -77,6 +77,13 @@
     md5name = "48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz";
   }
   {
+    name = "dtoa-20180411.tgz";
+    url = "http://dev-www.libreoffice.org/src/dtoa-20180411.tgz";
+    sha256 = "0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4";
+    md5 = "";
+    md5name = "0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4-dtoa-20180411.tgz";
+  }
+  {
     name = "libcmis-0.5.2.tar.xz";
     url = "http://dev-www.libreoffice.org/src/libcmis-0.5.2.tar.xz";
     sha256 = "d7b18d9602190e10d437f8a964a32e983afd57e2db316a07d87477a79f5000a2";
@@ -91,11 +98,11 @@
     md5name = "86c798780b9e1f5921fe4efe651a93cb420623b45aa1fdff57af8c37f116113f-CoinMP-1.7.6.tgz";
   }
   {
-    name = "cppunit-1.14.0.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/cppunit-1.14.0.tar.gz";
-    sha256 = "3d569869d27b48860210c758c4f313082103a5e58219a7669b52bfd29d674780";
+    name = "cppunit-1.15.1.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/cppunit-1.15.1.tar.gz";
+    sha256 = "89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7";
     md5 = "";
-    md5name = "3d569869d27b48860210c758c4f313082103a5e58219a7669b52bfd29d674780-cppunit-1.14.0.tar.gz";
+    md5name = "89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7-cppunit-1.15.1.tar.gz";
   }
   {
     name = "converttexttonumber-1-5-0.oxt";
@@ -105,11 +112,11 @@
     md5name = "1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt";
   }
   {
-    name = "curl-7.65.0.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/curl-7.65.0.tar.xz";
-    sha256 = "7766d263929404f693905b5e5222aa0f2bdf8c66ab4b8758f0c0820a42b966cd";
+    name = "curl-7.71.0.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/curl-7.71.0.tar.xz";
+    sha256 = "cdf18794393d8bead915312708a9e5d819c6e9919de14b20d5c8e7987abd9772";
     md5 = "";
-    md5name = "7766d263929404f693905b5e5222aa0f2bdf8c66ab4b8758f0c0820a42b966cd-curl-7.65.0.tar.xz";
+    md5name = "cdf18794393d8bead915312708a9e5d819c6e9919de14b20d5c8e7987abd9772-curl-7.71.0.tar.xz";
   }
   {
     name = "libe-book-0.1.3.tar.xz";
@@ -161,11 +168,11 @@
     md5name = "6994be3555e23226630c587444be19d309b25b0fcf1f87df3b4e3f88943e5860-Firebird-3.0.0.32483-0.tar.bz2";
   }
   {
-    name = "fontconfig-2.12.6.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/fontconfig-2.12.6.tar.bz2";
-    sha256 = "cf0c30807d08f6a28ab46c61b8dbd55c97d2f292cf88f3a07d3384687f31f017";
+    name = "fontconfig-2.13.91.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/fontconfig-2.13.91.tar.gz";
+    sha256 = "19e5b1bc9d013a52063a44e1307629711f0bfef35b9aca16f9c793971e2eb1e5";
     md5 = "";
-    md5name = "cf0c30807d08f6a28ab46c61b8dbd55c97d2f292cf88f3a07d3384687f31f017-fontconfig-2.12.6.tar.bz2";
+    md5name = "19e5b1bc9d013a52063a44e1307629711f0bfef35b9aca16f9c793971e2eb1e5-fontconfig-2.13.91.tar.gz";
   }
   {
     name = "crosextrafonts-20130214.tar.gz";
@@ -315,11 +322,11 @@
     md5name = "db8d87ea720ea9d5edc5388fc7a0497bb11ba9fe972245e0f7f4c7e8b1e1e84d-freetype-2.9.1.tar.bz2";
   }
   {
-    name = "glm-0.9.4.6-libreoffice.zip";
-    url = "http://dev-www.libreoffice.org/src/bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip";
-    sha256 = "d0312c360efe04dd048b3311fe375ff36f1993b4c2e3cb58c81062990532904a";
-    md5 = "bae83fa5dc7f081768daace6e199adc3";
-    md5name = "bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip";
+    name = "glm-0.9.9.7.zip";
+    url = "http://dev-www.libreoffice.org/src/glm-0.9.9.7.zip";
+    sha256 = "c5e167c042afd2d7ad642ace6b643863baeb33880781983563e1ab68a30d3e95";
+    md5 = "";
+    md5name = "c5e167c042afd2d7ad642ace6b643863baeb33880781983563e1ab68a30d3e95-glm-0.9.9.7.zip";
   }
   {
     name = "gpgme-1.9.0.tar.bz2";
@@ -329,11 +336,11 @@
     md5name = "1b29fedb8bfad775e70eafac5b0590621683b2d9869db994568e6401f4034ceb-gpgme-1.9.0.tar.bz2";
   }
   {
-    name = "graphite2-minimal-1.3.13.tgz";
-    url = "http://dev-www.libreoffice.org/src/graphite2-minimal-1.3.13.tgz";
-    sha256 = "d47d387161db7f7ebade1920aa7cbdc797e79772597d8b55e80b58d1071bcc36";
+    name = "graphite2-minimal-1.3.14.tgz";
+    url = "http://dev-www.libreoffice.org/src/graphite2-minimal-1.3.14.tgz";
+    sha256 = "b8e892d8627c41888ff121e921455b9e2d26836978f2359173d19825da62b8fc";
     md5 = "";
-    md5name = "d47d387161db7f7ebade1920aa7cbdc797e79772597d8b55e80b58d1071bcc36-graphite2-minimal-1.3.13.tgz";
+    md5name = "b8e892d8627c41888ff121e921455b9e2d26836978f2359173d19825da62b8fc-graphite2-minimal-1.3.14.tgz";
   }
   {
     name = "harfbuzz-2.6.0.tar.xz";
@@ -364,18 +371,18 @@
     md5name = "5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
   }
   {
-    name = "icu4c-65_1-src.tgz";
-    url = "http://dev-www.libreoffice.org/src/icu4c-65_1-src.tgz";
-    sha256 = "53e37466b3d6d6d01ead029e3567d873a43a5d1c668ed2278e253b683136d948";
+    name = "icu4c-67_1-src.tgz";
+    url = "http://dev-www.libreoffice.org/src/icu4c-67_1-src.tgz";
+    sha256 = "94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc";
     md5 = "";
-    md5name = "53e37466b3d6d6d01ead029e3567d873a43a5d1c668ed2278e253b683136d948-icu4c-65_1-src.tgz";
+    md5name = "94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc-icu4c-67_1-src.tgz";
   }
   {
-    name = "icu4c-65_1-data.zip";
-    url = "http://dev-www.libreoffice.org/src/icu4c-65_1-data.zip";
-    sha256 = "06359a7c4ad125ba11d3ac30617cd4b932f1214f611db96573032726574896b6";
+    name = "icu4c-67_1-data.zip";
+    url = "http://dev-www.libreoffice.org/src/icu4c-67_1-data.zip";
+    sha256 = "7c16a59cc8c06128b7ecc1dc4fc056b36b17349312829b17408b9e67b05c4a7e";
     md5 = "";
-    md5name = "06359a7c4ad125ba11d3ac30617cd4b932f1214f611db96573032726574896b6-icu4c-65_1-data.zip";
+    md5name = "7c16a59cc8c06128b7ecc1dc4fc056b36b17349312829b17408b9e67b05c4a7e-icu4c-67_1-data.zip";
   }
   {
     name = "flow-engine-0.9.4.zip";
@@ -462,11 +469,11 @@
     md5name = "b24890e2bb46e12e72a79f7e965f409f4e16466d00e1dd15d93d73ee6b592523-libjpeg-turbo-1.5.3.tar.gz";
   }
   {
-    name = "language-subtag-registry-2019-09-16.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/language-subtag-registry-2019-09-16.tar.bz2";
-    sha256 = "07b66bc0f2786fde55f6bbcbcb4a455a846eb8e2351c8ce3d0a219a73693736a";
+    name = "language-subtag-registry-2020-04-01.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/language-subtag-registry-2020-04-01.tar.bz2";
+    sha256 = "fb1ee0dabfd956a445fbe9f351e86a52767808558f20f4256e67fbbb3768e9da";
     md5 = "";
-    md5name = "07b66bc0f2786fde55f6bbcbcb4a455a846eb8e2351c8ce3d0a219a73693736a-language-subtag-registry-2019-09-16.tar.bz2";
+    md5name = "fb1ee0dabfd956a445fbe9f351e86a52767808558f20f4256e67fbbb3768e9da-language-subtag-registry-2020-04-01.tar.bz2";
   }
   {
     name = "JLanguageTool-1.7.0.tar.bz2";
@@ -532,11 +539,11 @@
     md5name = "d6242790324f1432fb0a6fae71b6851f520b2c5a87675497cf8ea14c2924d52e-liblangtag-0.6.2.tar.bz2";
   }
   {
-    name = "libnumbertext-1.0.5.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/libnumbertext-1.0.5.tar.xz";
-    sha256 = "e1c9086b4cecb6b25f180316f30740dfabe6a4dbaf70dddc34276fc839e4f4f7";
+    name = "libnumbertext-1.0.6.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libnumbertext-1.0.6.tar.xz";
+    sha256 = "739f220b34bf7cb731c09de2921771d644d37dfd276c45564401e5759f10ae57";
     md5 = "";
-    md5name = "e1c9086b4cecb6b25f180316f30740dfabe6a4dbaf70dddc34276fc839e4f4f7-libnumbertext-1.0.5.tar.xz";
+    md5name = "739f220b34bf7cb731c09de2921771d644d37dfd276c45564401e5759f10ae57-libnumbertext-1.0.6.tar.xz";
   }
   {
     name = "ltm-1.0.zip";
@@ -546,11 +553,11 @@
     md5name = "083daa92d8ee6f4af96a6143b12d7fc8fe1a547e14f862304f7281f8f7347483-ltm-1.0.zip";
   }
   {
-    name = "xmlsec1-1.2.28.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/xmlsec1-1.2.28.tar.gz";
-    sha256 = "13eec4811ea30e3f0e16a734d1dbf7f9d246a71d540b48d143a07b489f6222d4";
+    name = "xmlsec1-1.2.30.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/xmlsec1-1.2.30.tar.gz";
+    sha256 = "2d84360b03042178def1d9ff538acacaed2b3a27411db7b2874f1612ed71abc8";
     md5 = "";
-    md5name = "13eec4811ea30e3f0e16a734d1dbf7f9d246a71d540b48d143a07b489f6222d4-xmlsec1-1.2.28.tar.gz";
+    md5name = "2d84360b03042178def1d9ff538acacaed2b3a27411db7b2874f1612ed71abc8-xmlsec1-1.2.30.tar.gz";
   }
   {
     name = "libxml2-2.9.10.tar.gz";
@@ -581,18 +588,18 @@
     md5name = "940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e-lxml-4.1.1.tgz";
   }
   {
-    name = "mariadb_client-2.0.0-src.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz";
-    sha256 = "fd2f751dea049c1907735eb236aeace1d811d6a8218118b00bbaa9b84dc5cd60";
-    md5 = "a233181e03d3c307668b4c722d881661";
-    md5name = "a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz";
+    name = "mariadb-connector-c-3.1.8-src.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/mariadb-connector-c-3.1.8-src.tar.gz";
+    sha256 = "431434d3926f4bcce2e5c97240609983f60d7ff50df5a72083934759bb863f7b";
+    md5 = "";
+    md5name = "431434d3926f4bcce2e5c97240609983f60d7ff50df5a72083934759bb863f7b-mariadb-connector-c-3.1.8-src.tar.gz";
   }
   {
-    name = "mdds-1.5.0.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/mdds-1.5.0.tar.bz2";
-    sha256 = "144d6debd7be32726f332eac14ef9f17e2d3cf89cb3250eb31a7127e0789680d";
+    name = "mdds-1.6.0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/mdds-1.6.0.tar.bz2";
+    sha256 = "f1585c9cbd12f83a6d43d395ac1ab6a9d9d5d77f062c7b5f704e24ed72dae07d";
     md5 = "";
-    md5name = "144d6debd7be32726f332eac14ef9f17e2d3cf89cb3250eb31a7127e0789680d-mdds-1.5.0.tar.bz2";
+    md5name = "f1585c9cbd12f83a6d43d395ac1ab6a9d9d5d77f062c7b5f704e24ed72dae07d-mdds-1.6.0.tar.bz2";
   }
   {
     name = "mDNSResponder-878.200.35.tar.gz";
@@ -609,11 +616,11 @@
     md5name = "ef36c1a1aabb2ba3b0bedaaafe717bf4480be2ba8de6f3894be5fd3702b013ba-libmspub-0.1.4.tar.xz";
   }
   {
-    name = "libmwaw-0.3.15.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/libmwaw-0.3.15.tar.xz";
-    sha256 = "0440bb09f05e3419423d8dfa36ee847056ebfd837f9cbc091fdb5b057daab0b1";
+    name = "libmwaw-0.3.16.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libmwaw-0.3.16.tar.xz";
+    sha256 = "0c639edba5297bde5575193bf5b5f2f469956beaff5c0206d91ce9df6bde1868";
     md5 = "";
-    md5name = "0440bb09f05e3419423d8dfa36ee847056ebfd837f9cbc091fdb5b057daab0b1-libmwaw-0.3.15.tar.xz";
+    md5name = "0c639edba5297bde5575193bf5b5f2f469956beaff5c0206d91ce9df6bde1868-libmwaw-0.3.16.tar.xz";
   }
   {
     name = "mythes-1.2.4.tar.gz";
@@ -644,11 +651,11 @@
     md5name = "2c7b21892f84a4c67546f84611eccdad6259875c971e98ddb027da66ea0ac9c2-libodfgen-0.1.6.tar.bz2";
   }
   {
-    name = "odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar";
-    url = "http://dev-www.libreoffice.org/src/../extern/odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar";
-    sha256 = "984f2a479df79e27e7b01a5815ac53ae64e07746b882262d8a64566494515504";
+    name = "odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar";
+    url = "http://dev-www.libreoffice.org/src/../extern/odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar";
+    sha256 = "d55495ab3a86544650587de2a72180ddf8bfc6376d14ddfa923992dbc86a06e0";
     md5 = "";
-    md5name = "984f2a479df79e27e7b01a5815ac53ae64e07746b882262d8a64566494515504-odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar";
+    md5name = "d55495ab3a86544650587de2a72180ddf8bfc6376d14ddfa923992dbc86a06e0-odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar";
   }
   {
     name = "officeotron-0.7.4-master.jar";
@@ -672,11 +679,11 @@
     md5name = "14cb464efe7ac6b54799b34456bd69558a749a4931ecfd9cf9f71d7881cac7bc-openssl-1.0.2t.tar.gz";
   }
   {
-    name = "liborcus-0.15.3.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/liborcus-0.15.3.tar.gz";
-    sha256 = "0dd26f3f2e611c51df9ee02d6dbf08887989eaa417b73f6877cd0d94df795fc2";
+    name = "liborcus-0.15.4.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/liborcus-0.15.4.tar.bz2";
+    sha256 = "cfb2aa60825f2a78589ed030c07f46a1ee16ef8a2d1bf2279192fbc1ae5a5f61";
     md5 = "";
-    md5name = "0dd26f3f2e611c51df9ee02d6dbf08887989eaa417b73f6877cd0d94df795fc2-liborcus-0.15.3.tar.gz";
+    md5name = "cfb2aa60825f2a78589ed030c07f46a1ee16ef8a2d1bf2279192fbc1ae5a5f61-liborcus-0.15.4.tar.bz2";
   }
   {
     name = "owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
@@ -693,11 +700,11 @@
     md5name = "66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d-libpagemaker-0.0.4.tar.xz";
   }
   {
-    name = "pdfium-3963.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/pdfium-3963.tar.bz2";
-    sha256 = "80d4d6bd8faec226936fcde5521c6e92c0c645126ac3ae72dd2c160ca1749895";
+    name = "pdfium-4137.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/pdfium-4137.tar.bz2";
+    sha256 = "9a2f9bddca935a263f06c81003483473a525ccd0f4e517bc75fceb914d4c54b6";
     md5 = "";
-    md5name = "80d4d6bd8faec226936fcde5521c6e92c0c645126ac3ae72dd2c160ca1749895-pdfium-3963.tar.bz2";
+    md5name = "9a2f9bddca935a263f06c81003483473a525ccd0f4e517bc75fceb914d4c54b6-pdfium-4137.tar.bz2";
   }
   {
     name = "pixman-0.34.0.tar.gz";
@@ -791,11 +798,18 @@
     md5name = "6988d394b62c3494635b6f0760bc3079f9a0cd380baf0f6b075af1eb9fa5e700-serf-1.2.1.tar.bz2";
   }
   {
-    name = "libstaroffice-0.0.6.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/libstaroffice-0.0.6.tar.xz";
-    sha256 = "6b00e1ed8194e6072be4441025d1b888e39365727ed5b23e0e8c92c4009d1ec4";
+    name = "skia-m84-c1baf6e1c2a5454148adb516f0f833483b5a0353.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/skia-m84-c1baf6e1c2a5454148adb516f0f833483b5a0353.tar.xz";
+    sha256 = "f88dc1a500d29c87ef5251c5a6c3ea66aa4c7daf0cf5d349ece64b36f7623be0";
+    md5 = "";
+    md5name = "f88dc1a500d29c87ef5251c5a6c3ea66aa4c7daf0cf5d349ece64b36f7623be0-skia-m84-c1baf6e1c2a5454148adb516f0f833483b5a0353.tar.xz";
+  }
+  {
+    name = "libstaroffice-0.0.7.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libstaroffice-0.0.7.tar.xz";
+    sha256 = "f94fb0ad8216f97127bedef163a45886b43c62deac5e5b0f5e628e234220c8db";
     md5 = "";
-    md5name = "6b00e1ed8194e6072be4441025d1b888e39365727ed5b23e0e8c92c4009d1ec4-libstaroffice-0.0.6.tar.xz";
+    md5name = "f94fb0ad8216f97127bedef163a45886b43c62deac5e5b0f5e628e234220c8db-libstaroffice-0.0.7.tar.xz";
   }
   {
     name = "swingExSrc.zip";
@@ -840,11 +854,11 @@
     md5name = "99b3f7f8832385748582ab8130fbb9e5607bd5179bebf9751ac1d51a53099d1c-libwpg-0.3.3.tar.xz";
   }
   {
-    name = "libwps-0.4.10.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/libwps-0.4.10.tar.xz";
-    sha256 = "1421e034286a9f96d3168a1c54ea570ee7aa008ca07b89de005ad5ce49fb29ca";
+    name = "libwps-0.4.11.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libwps-0.4.11.tar.xz";
+    sha256 = "a8fdaabc28654a975fa78c81873ac503ba18f0d1cdbb942f470a21d29284b4d1";
     md5 = "";
-    md5name = "1421e034286a9f96d3168a1c54ea570ee7aa008ca07b89de005ad5ce49fb29ca-libwps-0.4.10.tar.xz";
+    md5name = "a8fdaabc28654a975fa78c81873ac503ba18f0d1cdbb942f470a21d29284b4d1-libwps-0.4.11.tar.xz";
   }
   {
     name = "xsltml_2.1.2.zip";
diff --git a/pkgs/applications/office/libreoffice/src-fresh/primary.nix b/pkgs/applications/office/libreoffice/src-fresh/primary.nix
index 5b62b0df954..1beb8f1156c 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/primary.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/primary.nix
@@ -6,10 +6,10 @@ rec {
     inherit sha256;
   };
 
-  major = "6";
-  minor = "4";
-  patch = "3";
-  tweak = "2";
+  major = "7";
+  minor = "0";
+  patch = "0";
+  tweak = "3";
 
   subdir = "${major}.${minor}.${patch}";
 
@@ -17,13 +17,13 @@ rec {
 
   src = fetchurl {
     url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
-    sha256 = "1cmbrhha7mlflnlbpla8fix07cxcgkdb7krnrgs1bylf31y5855w";
+    sha256 = "sha256-sl+vgnLGIWtyw8Y/ovVsxThdOMg2Gby4SRaiaqvZVB0=";
   };
 
   # FIXME rename
   translations = fetchSrc {
     name = "translations";
-    sha256 = "06z9hz4m3kdcljjc6y5s18001axjibj9xiyakdndkl9pmnnhn9h3";
+    sha256 = "sha256-i3yfD5cmM6D9BctjablIFRqfibjrwLAaxxPIsQdk0sY=";
   };
 
   # 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 = "0mpgrwg8z1q38j03l6m1sdpcplyjd5nz1nqaa13vfkryj2lflw45";
+    sha256 = "sha256-hYBEEPRmh16zgGZBUN20xfTY6qL07aKMC1lC/0ij9/0=";
   };
 }
diff --git a/pkgs/applications/office/libreoffice/src-still/override.nix b/pkgs/applications/office/libreoffice/src-still/override.nix
index c0880aa3ecb..54935dd7072 100644
--- a/pkgs/applications/office/libreoffice/src-still/override.nix
+++ b/pkgs/applications/office/libreoffice/src-still/override.nix
@@ -1,6 +1,13 @@
-{ stdenv, kdeIntegration, ... }:
+{ stdenv, kdeIntegration, fetchpatch, ... }:
 attrs:
 {
+  patches = attrs.patches or [ ] ++ [
+    (fetchpatch {
+      url = "https://git.pld-linux.org/gitweb.cgi?p=packages/libreoffice.git;a=blob_plain;f=poppler-0.86.patch;h=76b8356d5f22ef537a83b0f9b0debab591f152fe;hb=a2737a61353e305a9ee69640fb20d4582c218008";
+      name = "poppler-0.86.patch";
+      sha256 = "0q6k4l8imgp8ailcv0qx5l83afyw44hah24fi7gjrm9xgv5sbb8j";
+    })
+  ];
   postConfigure = attrs.postConfigure + ''
     sed -e '/CPPUNIT_TEST(Import_Export_Import);/d' -i './sw/qa/extras/inc/swmodeltestbase.hxx'
   '';
diff --git a/pkgs/applications/office/notes-up/default.nix b/pkgs/applications/office/notes-up/default.nix
index 055b3a41d09..6936387fb3c 100644
--- a/pkgs/applications/office/notes-up/default.nix
+++ b/pkgs/applications/office/notes-up/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , vala_0_46
@@ -52,7 +53,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = stdenv.lib.optional (!withPantheon) "-Dnoele=yes";
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/office/osmo/default.nix b/pkgs/applications/office/osmo/default.nix
index c3a7a5da455..507acb862a9 100644
--- a/pkgs/applications/office/osmo/default.nix
+++ b/pkgs/applications/office/osmo/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "osmo";
-  version = "0.4.2";
+  version = "0.4.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/osmo-pim/${pname}-${version}.tar.gz";
-    sha256 = "1gjd4w9jckfpqr9n0bw0w25h3qhfyzw1xvilh3hqdadfinwyal2v";
+    sha256 = "19h3dnjgqbawnvgnycyp4n5b6mjsp5zghn3b69b6f3xa3fyi32qy";
   };
 
   nativeBuildInputs = [ pkgconfig gettext wrapGAppsHook ];
diff --git a/pkgs/applications/office/portfolio/default.nix b/pkgs/applications/office/portfolio/default.nix
index 53f3b8a3150..b3538dd2b71 100644
--- a/pkgs/applications/office/portfolio/default.nix
+++ b/pkgs/applications/office/portfolio/default.nix
@@ -24,11 +24,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "PortfolioPerformance";
-  version = "0.46.3";
+  version = "0.48.1";
 
   src = fetchurl {
     url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "0263v0ymqmf7kcwys4smwx1p1gh8d20dh10canjfqgl4c5lfx966";
+    sha256 = "0xhxp4iglggv6rqwsg0xjn8z46v910rj372abkaviwa3cqzf7gdb";
   };
 
   nativeBuildInputs = [
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
     description = "A simple tool to calculate the overall performance of an investment portfolio.";
     homepage = "https://www.portfolio-performance.info/";
     license = licenses.epl10;
-    maintainers = with maintainers; [ elohmeier ];
+    maintainers = with maintainers; [ elohmeier oyren ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/office/skrooge/default.nix b/pkgs/applications/office/skrooge/default.nix
index 66d028144ff..e84e8496741 100644
--- a/pkgs/applications/office/skrooge/default.nix
+++ b/pkgs/applications/office/skrooge/default.nix
@@ -7,11 +7,11 @@
 
 mkDerivation rec {
   pname = "skrooge";
-  version = "2.22.1";
+  version = "2.23.0";
 
   src = fetchurl {
     url = "http://download.kde.org/stable/skrooge/${pname}-${version}.tar.xz";
-    sha256 = "194vwnc2fi7cgdhasxpr1gxjqqsiqadhadvv43d0lxaxys6f360h";
+    sha256 = "10k3j67x5xm5whsvb84k9p70bkn4jbbbvdfan7q49dh2mmpair5a";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/softmaker/freeoffice.nix b/pkgs/applications/office/softmaker/freeoffice.nix
index d9f901ff463..634a696a73e 100644
--- a/pkgs/applications/office/softmaker/freeoffice.nix
+++ b/pkgs/applications/office/softmaker/freeoffice.nix
@@ -1,14 +1,26 @@
-{ callPackage, fetchurl, ... } @ args:
+{ callPackage
+, fetchurl
 
-callPackage ./generic.nix (args // rec {
-  pname = "freeoffice";
+  # This is a bit unusual, but makes version and hash easily
+  # overridable. This is useful when the upstream archive was replaced
+  # and nixpkgs is not in sync yet.
+, officeVersion ? {
   version = "976";
   edition = "2018";
+  sha256 = "13yh4lyqakbdqf4r8vw8imy5gwpfva697iqfd85qmp3wimqvzskl";
+}
+
+, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  inherit (officeVersion) version edition;
+
+  pname = "freeoffice";
   suiteName = "FreeOffice";
 
   src = fetchurl {
+    inherit (officeVersion) sha256;
     url = "https://www.softmaker.net/down/softmaker-freeoffice-${version}-amd64.tgz";
-    sha256 = "13yh4lyqakbdqf4r8vw8imy5gwpfva697iqfd85qmp3wimqvzskl";
   };
 
   archive = "freeoffice${edition}.tar.lzma";
diff --git a/pkgs/applications/office/softmaker/generic.nix b/pkgs/applications/office/softmaker/generic.nix
index 82ac2b58f68..c7803fa3d1d 100644
--- a/pkgs/applications/office/softmaker/generic.nix
+++ b/pkgs/applications/office/softmaker/generic.nix
@@ -17,8 +17,11 @@ let
     inherit makeDesktopItem pname suiteName;
   };
   shortEdition = builtins.substring 2 2 edition;
-in stdenv.mkDerivation rec {
-  inherit pname version edition shortEdition src;
+in stdenv.mkDerivation {
+  inherit pname src;
+
+  version = "${edition}.${version}";
+
   nativeBuildInputs = [
     autoPatchelfHook
     makeWrapper
diff --git a/pkgs/applications/office/softmaker/softmaker_office.nix b/pkgs/applications/office/softmaker/softmaker_office.nix
index b04ef89769c..6aaa8c6745a 100644
--- a/pkgs/applications/office/softmaker/softmaker_office.nix
+++ b/pkgs/applications/office/softmaker/softmaker_office.nix
@@ -1,14 +1,27 @@
-{ callPackage, fetchurl, ... } @ args:
+{ callPackage
+, fetchurl
+
+  # This is a bit unusual, but makes version and hash easily
+  # overridable. This is useful when people have an older version of
+  # Softmaker Office or when the upstream archive was replaced and
+  # nixpkgs is not in sync yet.
+, officeVersion ? {
+  version = "1018";
+  edition = "2021";
+  sha256 = "1g9mcn0z7s3xw7d5bcjxbnamh6knzndcysahydskfcds6czdxg0c";
+}
+
+, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
+  inherit (officeVersion) version edition;
+
   pname = "softmaker-office";
-  version = "1014";
-  edition = "2021";
   suiteName = "SoftMaker Office";
 
   src = fetchurl {
+    inherit (officeVersion) sha256;
     url = "https://www.softmaker.net/down/softmaker-office-${edition}-${version}-amd64.tgz";
-    sha256 = "0wqaxng6s7lxwz6v2j6y1m5h4g4v63m0lscj7l2fpx5ksjlamp55";
   };
 
   archive = "office${edition}.tar.lzma";
diff --git a/pkgs/applications/office/spice-up/default.nix b/pkgs/applications/office/spice-up/default.nix
index fed00000af3..0cf7e8c53f1 100644
--- a/pkgs/applications/office/spice-up/default.nix
+++ b/pkgs/applications/office/spice-up/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , cmake
 , gdk-pixbuf
@@ -61,7 +62,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/office/timetable/default.nix b/pkgs/applications/office/timetable/default.nix
index 1f1d44e7494..838b1724ee8 100644
--- a/pkgs/applications/office/timetable/default.nix
+++ b/pkgs/applications/office/timetable/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , glib
 , gtk3
 , vala
@@ -48,7 +49,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/office/timeular/default.nix b/pkgs/applications/office/timeular/default.nix
new file mode 100644
index 00000000000..f0fc5c3738c
--- /dev/null
+++ b/pkgs/applications/office/timeular/default.nix
@@ -0,0 +1,45 @@
+{
+  stdenv,
+  fetchurl,
+  appimageTools,
+  libsecret
+}:
+
+let
+  version = "3.4.1";
+  pname = "timeular";
+  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "https://s3.amazonaws.com/timeular-desktop-packages/linux/production/Timeular-${version}.AppImage";
+    sha256 = "1s5jjdl1nzq9yd582lqs904yl10mp0s25897zmifmcbw1vz38bar";
+  };
+  appimageContents = appimageTools.extractType2 {
+    inherit name src;
+  };
+in appimageTools.wrapType2 rec {
+  inherit name src;
+
+  extraPkgs = pkgs: with pkgs; [
+    libsecret
+  ];
+
+  extraInstallCommands = ''
+    mv $out/bin/{${name},${pname}}
+    install -m 444 -D ${appimageContents}/timeular.desktop $out/share/applications/timeular.desktop
+    install -m 444 -D ${appimageContents}/timeular.png $out/share/icons/hicolor/512x512/apps/timeular.png
+    substituteInPlace $out/share/applications/timeular.desktop --replace 'Exec=AppRun' 'Exec=${pname}'
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Timetracking by flipping 8-sided dice";
+    longDescription = ''
+      The Timeular Tracker is an 8-sided dice that sits on your desk.
+      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;
+    license = licenses.unfree;
+    maintainers = with maintainers; [ ktor ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/office/todo.txt-cli/default.nix b/pkgs/applications/office/todo.txt-cli/default.nix
index d711440fc34..489b759f48c 100644
--- a/pkgs/applications/office/todo.txt-cli/default.nix
+++ b/pkgs/applications/office/todo.txt-cli/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl }:
 let
-  version = "2.11.0";
+  version = "2.12.0";
 in stdenv.mkDerivation {
   pname = "todo.txt-cli";
   inherit version;
 
   src = fetchurl {
     url = "https://github.com/ginatrapani/todo.txt-cli/releases/download/v${version}/todo.txt_cli-${version}.tar.gz";
-    sha256 = "0majx8lcvhh8ji54qi0sxr833wchdss95fjc92byd8g3lfz27rsz";
+    sha256 = "0gni8nj3wwdf7nl98d1bpx064bz5xari65hb998qqr92h0n9pnp6";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/office/trilium/default.nix b/pkgs/applications/office/trilium/default.nix
index 17af0b0591b..3d577a8852e 100644
--- a/pkgs/applications/office/trilium/default.nix
+++ b/pkgs/applications/office/trilium/default.nix
@@ -19,27 +19,27 @@ let
     maintainers = with maintainers; [ emmanuelrosa dtzWill kampka ];
   };
 
-  version = "0.42.2";
+  version = "0.43.3";
 
   desktopSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
-    sha256 = "14vb5a2kad1h8kd1vipgaxpv6rch2fl6j0s2ja0y16xypga82wrx";
+    sha256 = "1k9vcs7pwa89bzivqp0gfs45jzqw216fpypg3ja4n2dzn4qkv2as";
   };
 
   serverSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
-    sha256 = "16dz2i4g0vgwz4fi69lmg261aqb8hs6ipfy004wv73vg46wf1pnv";
+    sha256 = "1n3v7wdav6mvgcy72mmfhncsa74i0ax1ij5rjczgfjjyiyc5y0rk";
   };
 
 in {
-  
+
   trilium-desktop = stdenv.mkDerivation rec {
     pname = "trilium-desktop";
     inherit version;
     inherit meta;
 
     src = fetchurl desktopSource;
-  
+
     # Fetch from source repo, no longer included in release.
     # (they did special-case icon.png but we want the scalable svg)
     # Use the version here to ensure we get any changes.
@@ -47,33 +47,33 @@ in {
       url = "https://raw.githubusercontent.com/zadam/trilium/v${version}/images/trilium.svg";
       sha256 = "1rgj7pza20yndfp8n12k93jyprym02hqah36fkk2b3if3kcmwnfg";
     };
-  
-  
+
+
     nativeBuildInputs = [
       autoPatchelfHook
       makeWrapper
       wrapGAppsHook
     ];
-  
+
     buildInputs = atomEnv.packages ++ [ gtk3 ];
-  
+
     installPhase = ''
       mkdir -p $out/bin
       mkdir -p $out/share/trilium
       mkdir -p $out/share/{applications,icons/hicolor/scalable/apps}
-  
+
       cp -r ./* $out/share/trilium
       ln -s $out/share/trilium/trilium $out/bin/trilium
-  
+
       ln -s ${trilium_svg} $out/share/icons/hicolor/scalable/apps/trilium.svg
       cp ${desktopItem}/share/applications/* $out/share/applications
     '';
-  
+
     # LD_LIBRARY_PATH "shouldn't" be needed, remove when possible :)
     preFixup = ''
       gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : ${atomEnv.libPath})
     '';
-  
+
     dontStrip = true;
   };
 
diff --git a/pkgs/applications/office/watson/default.nix b/pkgs/applications/office/watson/default.nix
index 5d4b915edfb..00fa9416e17 100644
--- a/pkgs/applications/office/watson/default.nix
+++ b/pkgs/applications/office/watson/default.nix
@@ -1,27 +1,18 @@
-{ stdenv, fetchFromGitHub, pythonPackages, fetchpatch, installShellFiles }:
+{ stdenv, fetchFromGitHub, pythonPackages, installShellFiles }:
 
 with pythonPackages;
 
 buildPythonApplication rec {
   pname = "watson";
-  version = "1.9.0";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "TailorDev";
     repo = "Watson";
     rev = version;
-    sha256 = "0f0ldwadjf0xncx3m4w4wwqddd4wjwcsrbhby8vgsnqsn48dnfcx";
+    sha256 = "1s0k86ldqky6avwjaxkw1y02wyf59qwqldcahy3lhjn1b5dgsb3s";
   };
 
-  patches = [
-    # https://github.com/TailorDev/Watson/pull/380
-    # The nixpkgs' arrow version is too new / not supported by Watson's latest release.
-    (fetchpatch {
-      url = "https://github.com/TailorDev/Watson/commit/69b9ad25551525d52060f7fb2eef3653e872a455.patch";
-      sha256 = "0zrswgr0y219f92zi41m7cymfaspkhmlada4v9ijnsjjdb4bn2c9";
-    })
-  ];
-
   checkPhase = ''
     pytest -vs tests
   '';
@@ -39,6 +30,6 @@ buildPythonApplication rec {
     homepage = "https://tailordev.github.io/Watson/";
     description = "A wonderful CLI to track your time!";
     license = licenses.mit;
-    maintainers = with maintainers; [ mguentner nathyong ];
+    maintainers = with maintainers; [ mguentner nathyong oxzi ];
   };
 }
diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix
index cc8412e1ac5..e34c548f601 100644
--- a/pkgs/applications/office/wpsoffice/default.nix
+++ b/pkgs/applications/office/wpsoffice/default.nix
@@ -12,7 +12,7 @@
 , cups
 , dbus
 , expat
-, ffmpeg_3
+, ffmpeg
 , fontconfig
 , freetype
 , gdk-pixbuf
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
     cairo
     dbus.lib
     expat
-    ffmpeg_3
+    ffmpeg
     fontconfig
     freetype
     gdk-pixbuf
diff --git a/pkgs/applications/office/zim/default.nix b/pkgs/applications/office/zim/default.nix
index ba6351da1dd..05a3c2de9b4 100644
--- a/pkgs/applications/office/zim/default.nix
+++ b/pkgs/applications/office/zim/default.nix
@@ -9,11 +9,11 @@
 
 python3Packages.buildPythonApplication rec {
   name = "zim-${version}";
-  version = "0.72.1";
+  version = "0.73.1";
 
   src = fetchurl {
     url = "https://zim-wiki.org/downloads/${name}.tar.gz";
-    sha256 = "0a9h97rmp7if74p3i028cllzf9p9468psbqwcvm9009ga253dr1l";
+    sha256 = "13vhwsgv6mscgixypc0ixkgj0y7cpcm7z7wn1vmdrwp7kn8m3xgx";
   };
 
   buildInputs = [ gtk3 gobject-introspection wrapGAppsHook gnome3.adwaita-icon-theme ];
diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix
index bd4e5a6b9f7..d615f2a06f1 100644
--- a/pkgs/applications/office/zotero/default.nix
+++ b/pkgs/applications/office/zotero/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchurl, wrapGAppsHook, makeDesktopItem
 , atk
 , cairo
+, coreutils
 , curl
 , cups
 , dbus-glib
@@ -35,11 +36,11 @@
 
 stdenv.mkDerivation rec {
   pname = "zotero";
-  version = "5.0.87";
+  version = "5.0.89";
 
   src = fetchurl {
     url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
-    sha256 = "01kq3w4il64gqz6s1vbv3iyzayv6rnx9igxk55awixi9g3qs21f1";
+    sha256 = "18p4qnnfx9f2frk7f2nk1d7jr4cjzg9z7lfzrk7vq11qgbjdpqbl";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
@@ -131,6 +132,12 @@ stdenv.mkDerivation rec {
          "$out/usr/lib/zotero-bin-${version}/{}" \;
   '';
 
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils ]}
+    )
+  '';
+
   meta = with stdenv.lib; {
     homepage = "https://www.zotero.org";
     description = "Collect, organize, cite, and share your research sources";
diff --git a/pkgs/applications/qubes/qubes-core-vchan-xen/default.nix b/pkgs/applications/qubes/qubes-core-vchan-xen/default.nix
index ecb9403be36..ce9e4b5d881 100644
--- a/pkgs/applications/qubes/qubes-core-vchan-xen/default.nix
+++ b/pkgs/applications/qubes/qubes-core-vchan-xen/default.nix
@@ -23,8 +23,7 @@ stdenv.mkDerivation rec {
     description = "Libraries required for the higher-level Qubes daemons and tools";
     homepage = "https://qubes-os.org";
     license = licenses.gpl2Plus;
-    maintainers = [ maintainers."0x4A6F" ];
+    maintainers = with maintainers; [ _0x4A6F ];
     platforms = platforms.linux;
   };
 }
-
diff --git a/pkgs/applications/radio/chirp/default.nix b/pkgs/applications/radio/chirp/default.nix
index 377619f5088..8fb719567d5 100644
--- a/pkgs/applications/radio/chirp/default.nix
+++ b/pkgs/applications/radio/chirp/default.nix
@@ -4,11 +4,11 @@
 }:
 python2.pkgs.buildPythonApplication rec {
   pname = "chirp-daily";
-  version = "20200430";
+  version = "20200807";
 
   src = fetchurl {
     url = "https://trac.chirp.danplanet.com/chirp_daily/daily-${version}/${pname}-${version}.tar.gz";
-    sha256 = "060fzplgmpfrk6wkfaasx7phpfk90mmylk6drbwzk4f9r1655vda";
+    sha256 = "60b682793698e6427ad485546eae3a044b8290a220f190633158a2fb0e942fa0";
   };
 
   propagatedBuildInputs = with python2.pkgs; [
diff --git a/pkgs/applications/radio/cubicsdr/default.nix b/pkgs/applications/radio/cubicsdr/default.nix
index c85299606c0..c0dd4346d40 100644
--- a/pkgs/applications/radio/cubicsdr/default.nix
+++ b/pkgs/applications/radio/cubicsdr/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, fftw, hamlib, libpulseaudio, libGL, libX11, liquid-dsp,
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, fftw, hamlib, libpulseaudio, libGL, libX11, liquid-dsp,
   pkgconfig, soapysdr-with-plugins, wxGTK31-gtk3, enableDigitalLab ? false }:
 
 stdenv.mkDerivation rec {
@@ -12,6 +12,23 @@ stdenv.mkDerivation rec {
     sha256 = "1ihbn18bzdcdvwpa4hnb55ns38bj4b8xy53hkmra809f9qpbcjhn";
   };
 
+  # Allow cubicsdr 0.2.5 to build with wxGTK 3.1.3
+  # these come from cubicsdr's master branch, subsequent releases may include them
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/cjcliffe/CubicSDR/commit/65a160fa356ce9665dfe05c6bfc6754535e16743.patch";
+      sha256 = "0vbr5x9fnm09bws5crqcm6kkhr1bg5r0bc1pxnwwjyc6jpvqi6ad";
+    })
+    (fetchpatch {
+      url = "https://github.com/cjcliffe/CubicSDR/commit/f449a65457e35bf8260d0b16b8a47b6bc0ea2c7e.patch";
+      sha256 = "1zjvjmhm8ybi6i9pq7by3fj3mvx37dy7gj4gk23d79yrnl9mk25p";
+    })
+    (fetchpatch {
+      url = "https://github.com/cjcliffe/CubicSDR/commit/0540d08c2dea79b668b32b1a6d58f235d65ce9d2.patch";
+      sha256 = "07l7b82f779sbcj0jza0mg463ac1153bs9hn6ai388j7dm3lvasn";
+    })
+  ];
+
   nativeBuildInputs = [ cmake pkgconfig ];
 
   buildInputs = [ fftw hamlib libpulseaudio libGL libX11 liquid-dsp soapysdr-with-plugins wxGTK31-gtk3 ];
diff --git a/pkgs/applications/radio/direwolf/default.nix b/pkgs/applications/radio/direwolf/default.nix
new file mode 100644
index 00000000000..aab76574968
--- /dev/null
+++ b/pkgs/applications/radio/direwolf/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchFromGitHub
+, alsaLib, espeak, glibc, gpsd
+, hamlib, perl, python, udev }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  pname = "direwolf";
+  version = "1.5";
+
+  src = fetchFromGitHub {
+    owner = "wb2osz";
+    repo = "direwolf";
+    rev = version;
+    sha256 = "1w55dv9xqgc9mpincsj017838vmvdy972fhis3ddskyfvhhzgcsk";
+  };
+
+  buildInputs = [
+    espeak gpsd hamlib perl python
+  ] ++ (optionals stdenv.isLinux [alsaLib udev]);
+
+  makeFlags = [ "DESTDIR=$(out)" ];
+
+  postPatch = ''
+    substituteInPlace symbols.c \
+      --replace /usr/share/direwolf/symbols-new.txt $out/share/direwolf/symbols-new.txt \
+      --replace /opt/local/share/direwolf/symbols-new.txt $out/share/direwolf/symbols-new.txt
+    substituteInPlace decode_aprs.c \
+      --replace /usr/share/direwolf/tocalls.txt $out/share/direwolf/tocalls.txt \
+      --replace /opt/local/share/direwolf/tocalls.txt $out/share/direwolf/tocalls.txt
+    substituteInPlace dwespeak.sh \
+      --replace espeak ${espeak}/bin/espeak
+  '' + (optionalString stdenv.isLinux ''
+    substituteInPlace Makefile.linux \
+      --replace /usr/include/pthread.h ${stdenv.glibc.dev}/include/pthread.h \
+      --replace /usr/include/alsa ${alsaLib.dev}/include/alsa \
+      --replace /usr/include/gps.h ${gpsd}/include/gps.h \
+      --replace /usr/include/hamlib ${hamlib}/include/hamlib \
+      --replace /usr/include/libudev.h ${udev.dev}/include/libudev.h \
+      --replace /etc/udev $out/etc/udev \
+      --replace 'Exec=xterm -hold -title \"Dire Wolf\" -bg white -e \"$(DESTDIR)/bin/direwolf\"' "Exec=$out/bin/direwolf" \
+      --replace '#Terminal=true' 'Terminal=true' \
+      --replace 'Path=$(HOME)' '#Path='
+  '');
+
+  preInstall = ''
+    mkdir -p $out/bin
+  '';
+
+  meta = {
+    description = "A Soundcard Packet TNC, APRS Digipeater, IGate, APRStt gateway";
+    homepage = "https://github.com/wb2osz/direwolf/";
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ lasandell ];
+  };
+}
diff --git a/pkgs/applications/radio/dsd/default.nix b/pkgs/applications/radio/dsd/default.nix
new file mode 100644
index 00000000000..a369486278b
--- /dev/null
+++ b/pkgs/applications/radio/dsd/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, cmake
+, mbelib, libsndfile, itpp
+, portaudioSupport ? true, portaudio ? null
+}:
+
+assert portaudioSupport -> portaudio != null;
+
+stdenv.mkDerivation rec {
+  pname = "dsd";
+  version = "2018-07-01";
+
+  src = fetchFromGitHub {
+    owner = "szechyjs";
+    repo = "dsd";
+    rev = "f175834e45a1a190171dff4597165b27d6b0157b";
+    sha256 = "0w4r13sxvjwacdwxr326zr6p77a8p6ny0g6im574jliw5j3shlhr";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [
+    mbelib libsndfile itpp
+  ] ++ stdenv.lib.optionals portaudioSupport [ portaudio ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+  preCheck = ''
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD
+    export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}$PWD
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Digital Speech Decoder";
+    longDescription = ''
+      DSD is able to decode several digital voice formats from discriminator
+      tap audio and synthesize the decoded speech. Speech synthesis requires
+      mbelib, which is a separate package.
+    '';
+    homepage = https://github.com/szechyjs/dsd;
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ andrew-d ];
+  };
+}
diff --git a/pkgs/applications/radio/fldigi/default.nix b/pkgs/applications/radio/fldigi/default.nix
index b4815803ccd..af93b7ee65d 100644
--- a/pkgs/applications/radio/fldigi/default.nix
+++ b/pkgs/applications/radio/fldigi/default.nix
@@ -2,12 +2,12 @@
   libsamplerate, libpulseaudio, libXinerama, gettext, pkgconfig, alsaLib }:
 
 stdenv.mkDerivation rec {
-  version = "4.1.13";
+  version = "4.1.14";
   pname = "fldigi";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "0mlq4z5k3h466plij8hg9xn5xbjxk557g4pw13cplpf32fhng224";
+    sha256 = "0hr6xbv01xf7z4r2jxxhn8xjdmca2198q4m9glh4877dllvfq6xj";
   };
 
   buildInputs = [ libXinerama gettext hamlib fltk14 libjpeg libpng portaudio
diff --git a/pkgs/applications/radio/flrig/default.nix b/pkgs/applications/radio/flrig/default.nix
index 968b2fd0df9..d95d894bdef 100644
--- a/pkgs/applications/radio/flrig/default.nix
+++ b/pkgs/applications/radio/flrig/default.nix
@@ -6,12 +6,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.3.50";
+  version = "1.3.51";
   pname = "flrig";
 
   src = fetchurl {
     url = "mirror://sourceforge/fldigi/${pname}-${version}.tar.gz";
-    sha256 = "0fzrknzzi8kmzmrcfpc8rxr7v4a4ny6z6z5q5qwh95sp2kn2qzp9";
+    sha256 = "0aq4x0ai9q08ypfhzfj2inc4z3q39zq1l6h9as1kil9yn4zbay61";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/radio/gnss-sdr/default.nix b/pkgs/applications/radio/gnss-sdr/default.nix
index 4e423094e90..cc89ffb4f87 100644
--- a/pkgs/applications/radio/gnss-sdr/default.nix
+++ b/pkgs/applications/radio/gnss-sdr/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnss-sdr";
-  version = "0.0.12";
+  version = "0.0.13";
 
   src = fetchFromGitHub {
     owner = "gnss-sdr";
     repo = "gnss-sdr";
     rev = "v${version}";
-    sha256 = "0i9cz85jc2m758pzy3bq4dk4vj9wv7k2z118lasb09xldx01dwsq";
+    sha256 = "0a3k47fl5dizzhbqbrbmckl636lznyjby2d2nz6fz21637hvrnby";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/radio/inspectrum/default.nix b/pkgs/applications/radio/inspectrum/default.nix
index a205cec714d..f55c78ea26b 100644
--- a/pkgs/applications/radio/inspectrum/default.nix
+++ b/pkgs/applications/radio/inspectrum/default.nix
@@ -8,20 +8,21 @@
 , gnuradio
 , liquid-dsp
 , qtbase
+, wrapQtAppsHook
 }:
 
-mkDerivation {
+mkDerivation rec {
   pname = "inspectrum";
-  version = "unstable-2017-05-31";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "miek";
     repo = "inspectrum";
-    rev = "a89d1337efb31673ccb6a6681bb89c21894c76f7";
-    sha256 = "1fvnr8gca25i6s9mg9b2hyqs0zzr4jicw13mimc9dhrgxklrr1yv";
+    rev = "v${version}";
+    sha256 = "1a517y7s1xi66y5kjrpjay450pad9nc228pa8801mxq1c7m1lamm";
   };
 
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
   buildInputs = [
     fftwFloat
     boost
diff --git a/pkgs/applications/radio/limesuite/default.nix b/pkgs/applications/radio/limesuite/default.nix
index 7cadceab561..013b4978b56 100644
--- a/pkgs/applications/radio/limesuite/default.nix
+++ b/pkgs/applications/radio/limesuite/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "limesuite";
-  version = "20.01.0";
+  version = "20.07.2";
 
   src = fetchFromGitHub {
     owner = "myriadrf";
     repo = "LimeSuite";
     rev = "v${version}";
-    sha256 = "01z4idcby2lm34bbnpbp400ski7p61jjiir6sy6dalnvsl52m7vx";
+    sha256 = "0v0w0f5ff1gwpfy13x1q1jsx9xfg4s3ccg05ikpnkzj4yg6sjps1";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/radio/noaa-apt/default.nix b/pkgs/applications/radio/noaa-apt/default.nix
new file mode 100644
index 00000000000..55703ea44d6
--- /dev/null
+++ b/pkgs/applications/radio/noaa-apt/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, atk
+, cairo
+, gdk-pixbuf
+, glib
+, gtk3
+, openssl
+, pango
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "noaa-apt";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "martinber";
+    repo = "noaa-apt";
+    rev = "v${version}";
+    sha256 = "0fqki4a9c54rixdz5bpswvn433f9saw6yazgw4av3xdd7g2fdvvj";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    atk
+    cairo
+    gdk-pixbuf
+    glib
+    gtk3
+    openssl
+    pango
+  ];
+
+  cargoSha256 = "1pzcq31inazmc9cz31fspzqkp0lpkjid8ai3g17sin1pfzby5jlh";
+
+  preBuild = ''
+    # Used by macro pointing to resource location at compile time.
+    export NOAA_APT_RES_DIR=$out/share/noaa-apt
+  '';
+
+  postInstall = ''
+    # Resources.
+    mkdir -p $out/share/noaa-apt
+    cp -R $src/res/* $out/share/noaa-apt/
+
+    # Desktop icon.
+    install -Dm644 -t $out/share/applications $src/debian/ar.com.mbernardi.noaa-apt.desktop
+    install -Dm644 -t $out/share/icons/hicolor/48x48/apps $src/debian/noaa-apt.png
+    install -Dm644 -t $out/share/icons/hicolor/scalable/apps $src/debian/noaa-apt.svg
+  '';
+
+  meta = with lib; {
+    description = "NOAA APT image decoder.";
+    homepage = "http://noaa-apt.mbernardi.com.ar/";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ trepetti ];
+    changelog = "https://github.com/martinber/noaa-apt/releases/tag/v${version}";
+  };
+}
diff --git a/pkgs/applications/radio/soapyremote/default.nix b/pkgs/applications/radio/soapyremote/default.nix
index ed94693db41..b49debdb1af 100644
--- a/pkgs/applications/radio/soapyremote/default.nix
+++ b/pkgs/applications/radio/soapyremote/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, cmake, soapysdr, avahi }:
 
 let
-  version = "0.5.1";
+  version = "0.5.2";
 
 in stdenv.mkDerivation {
   pname = "soapyremote";
@@ -11,7 +11,7 @@ in stdenv.mkDerivation {
     owner = "pothosware";
     repo = "SoapyRemote";
     rev = "soapy-remote-${version}";
-    sha256 = "1qlpjg8mh564q26mni8g6bb8w9nj7hgcq86278fszxpwpnk3jsvk";
+    sha256 = "124sy9v08fm51ds1yzrxspychn34y0rl6y48mzariianazvzmfax";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/radio/welle-io/default.nix b/pkgs/applications/radio/welle-io/default.nix
index ce4c872821e..77969c5ca3f 100644
--- a/pkgs/applications/radio/welle-io/default.nix
+++ b/pkgs/applications/radio/welle-io/default.nix
@@ -3,7 +3,7 @@
 , faad2, rtl-sdr, soapysdr-with-plugins, libusb-compat-0_1, fftwSinglePrec, lame, mpg123 }:
 let
 
-  version = "2.1";
+  version = "2.2";
 
 in mkDerivation {
 
@@ -14,7 +14,7 @@ in mkDerivation {
     owner = "AlbrechtL";
     repo = "welle.io";
     rev = "v${version}";
-    sha256 = "1j63gdbd66d6rfjsxwdm2agrcww1rs4438kg7313h6zixpcc1icj";
+    sha256 = "04fpm6sc431dl9i5h53xpd6k85j22sv8aawl7b6wv2fzpfsd9fwa";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/applications/radio/wsjtx/default.nix b/pkgs/applications/radio/wsjtx/default.nix
index 8e135dee568..b11b6b474c6 100644
--- a/pkgs/applications/radio/wsjtx/default.nix
+++ b/pkgs/applications/radio/wsjtx/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   pname = "wsjtx";
-  version = "2.1.2";
+  version = "2.2.2";
 
   # This is a "superbuild" tarball containing both wsjtx and a hamlib fork
   src = fetchurl {
     url = "http://physics.princeton.edu/pulsar/k1jt/wsjtx-${version}.tgz";
-    sha256 = "0aj3wg5xjjqwjvw6lra171ag5wq86w0hf1ra4k8mnaf0mc1qgbyl";
+    sha256 = "17agyrhclqyahgdwba8vi9sl7vq03sm00jlyrmjgv34a4czidg0w";
   };
 
   # Hamlib builds with autotools, wsjtx builds with cmake
@@ -23,9 +23,6 @@ stdenv.mkDerivation rec {
   # Remove Git dependency from superbuild since sources are included
   patches = [ ./super.patch ];
 
-  # Superbuild has its own patch step after it extracts the inner archives
-  postPatch = "cp ${./wsjtx.patch} wsjtx.patch";
-
   meta = with stdenv.lib; {
     description = "Weak-signal digital communication modes for amateur radio";
     longDescription = ''
diff --git a/pkgs/applications/radio/wsjtx/super.patch b/pkgs/applications/radio/wsjtx/super.patch
index d903171ffc5..2d72fcddf0d 100644
--- a/pkgs/applications/radio/wsjtx/super.patch
+++ b/pkgs/applications/radio/wsjtx/super.patch
@@ -1,8 +1,8 @@
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3bf97a4..2c9dce5 100644
+index 84fa38a..87e31bb 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -23,7 +23,6 @@ source tarball." )
+@@ -24,7 +24,6 @@ source tarball." )
  #
  # Find_library (USB_LIBRARY NAMES libusb.a usb)
  Find_program (PATCH_EXECUTABLE patch REQUIRED)
diff --git a/pkgs/applications/radio/wsjtx/wsjtx.patch b/pkgs/applications/radio/wsjtx/wsjtx.patch
deleted file mode 100644
index fd7c40fdc13..00000000000
--- a/pkgs/applications/radio/wsjtx/wsjtx.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3e7e816b..e7dbb14a 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -885,6 +885,6 @@
- #
- 
- # Widgets finds its own dependencies.
--find_package (Qt5 COMPONENTS Widgets Multimedia PrintSupport Sql LinguistTools REQUIRED)
-+find_package (Qt5 COMPONENTS Widgets Multimedia PrintSupport Sql LinguistTools SerialPort REQUIRED)
- 
- if (WIN32)
-   add_definitions (-DQT_NEEDS_QTMAIN)
diff --git a/pkgs/applications/science/biology/hisat2/default.nix b/pkgs/applications/science/biology/hisat2/default.nix
index fb7f2cba3de..e641489b86c 100644
--- a/pkgs/applications/science/biology/hisat2/default.nix
+++ b/pkgs/applications/science/biology/hisat2/default.nix
@@ -1,16 +1,18 @@
-{stdenv, fetchurl, unzip, which, python, perl}:
+{stdenv, fetchFromGitHub, unzip, which, python3, perl}:
 
 stdenv.mkDerivation rec {
   pname = "hisat2";
-  version = "2.1.0";
+  version = "2.2.1";
 
-  src = fetchurl {
-    url = "ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-${version}-source.zip";
-    sha256 = "10g73sdf6vqqfhhd92hliw7bbpkb8v4pp5012r5l21zws7p7d8l9";
+  src = fetchFromGitHub {
+    owner = "DaehwanKimLab";
+    repo = "hisat2";
+    rev = "v${version}";
+    sha256 = "0lmzdhzjkvxw7n5w40pbv5fgzd4cz0f9pxczswn3d4cr0k10k754";
   };
 
   nativeBuildInputs = [ unzip which ];
-  buildInputs = [ python perl ];
+  buildInputs = [ python3 perl ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -30,12 +32,6 @@ stdenv.mkDerivation rec {
        hisat2_extract_snps_haplotypes_VCF.py \
        hisat2_extract_splice_sites.py \
        hisat2_simulate_reads.py \
-       hisatgenotype_build_genome.py \
-       hisatgenotype_extract_reads.py \
-       hisatgenotype_extract_vars.py \
-       hisatgenotype_hla_cyp.py \
-       hisatgenotype_locus.py \
-       hisatgenotype.py \
        $out/bin
   '';
 
diff --git a/pkgs/applications/science/biology/hmmer/default.nix b/pkgs/applications/science/biology/hmmer/default.nix
index 3786b62f747..6ee7cd609c4 100644
--- a/pkgs/applications/science/biology/hmmer/default.nix
+++ b/pkgs/applications/science/biology/hmmer/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "3.3";
+  version = "3.3.1";
   pname = "hmmer";
 
   src = fetchurl {
     url = "http://eddylab.org/software/hmmer/${pname}-${version}.tar.gz";
-    sha256 = "0v3kcgkr6jihq0xmpgn2xd5q7wiwvj6yswa905k2c0v7mx0bz1h1";
+    sha256 = "1mcvr74w6ffd5z0p8v3jss473mbgard9lz5whjnk95c661lnmrlc";
   };
 
   meta = with stdenv.lib; {
@@ -20,6 +20,6 @@ stdenv.mkDerivation rec {
     homepage = "http://hmmer.org/";
     license = licenses.gpl3;
     maintainers = [ maintainers.iimog ];
-    platforms = [ "x86_64-linux" "i686-linux" ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/science/biology/igv/default.nix b/pkgs/applications/science/biology/igv/default.nix
index aa6c95071b7..bc4f1677fc9 100644
--- a/pkgs/applications/science/biology/igv/default.nix
+++ b/pkgs/applications/science/biology/igv/default.nix
@@ -1,32 +1,34 @@
-{ stdenv, fetchurl, unzip, jre }:
+{ stdenv, fetchzip, jdk11 }:
 
 stdenv.mkDerivation rec {
   pname = "igv";
-  version = "2.4.19";
-
-  src = fetchurl {
-    url = "https://data.broadinstitute.org/igv/projects/downloads/2.4/IGV_${version}.zip";
-    sha256 = "048dgrhxcb854d24kyjkqz12bw04bsv49i5jawb75yzkswwfkb0z";
+  version = "2.8.9";
+  src = fetchzip {
+    url = "https://data.broadinstitute.org/igv/projects/downloads/2.8/IGV_${version}.zip";
+    sha256 = "1874w1xprv91caz1ymfxilq6inhj36xzx8j9m0mcyp0qfvfvyjp7";
   };
 
-  buildInputs = [ unzip jre ];
-
   installPhase = ''
     mkdir -pv $out/{share,bin}
     cp -Rv * $out/share/
 
     sed -i "s#prefix=.*#prefix=$out/share#g" $out/share/igv.sh
-    sed -i 's#java#${jre}/bin/java#g' $out/share/igv.sh
+    sed -i 's#java#${jdk11}/bin/java#g' $out/share/igv.sh
+
+    sed -i "s#prefix=.*#prefix=$out/share#g" $out/share/igvtools
+    sed -i 's#java#${jdk11}/bin/java#g' $out/share/igvtools
 
     ln -s $out/share/igv.sh $out/bin/igv
+    ln -s $out/share/igvtools $out/bin/igvtools
 
     chmod +x $out/bin/igv
+    chmod +x $out/bin/igvtools
   '';
 
   meta = with stdenv.lib; {
     homepage = "https://www.broadinstitute.org/igv/";
     description = "A visualization tool for interactive exploration of genomic datasets";
-    license = licenses.lgpl21;
+    license = licenses.mit;
     platforms = platforms.unix;
     maintainers = [ maintainers.mimame ];
   };
diff --git a/pkgs/applications/science/biology/itsx/default.nix b/pkgs/applications/science/biology/itsx/default.nix
index ac534a4ec3c..6f66cfc9cc3 100644
--- a/pkgs/applications/science/biology/itsx/default.nix
+++ b/pkgs/applications/science/biology/itsx/default.nix
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     homepage = "https://microbiology.se/software/itsx/";
     license = licenses.gpl3;
     maintainers = [ maintainers.bzizou ];
-    platforms = [ "x86_64-linux" "i686-linux" ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/science/biology/kssd/default.nix b/pkgs/applications/science/biology/kssd/default.nix
index ef8a0ce136f..621a8ce1576 100644
--- a/pkgs/applications/science/biology/kssd/default.nix
+++ b/pkgs/applications/science/biology/kssd/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kssd";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchurl {
     url = "https://github.com/yhg926/public_${pname}/archive/v${version}.tar.gz";
-    sha256 = "a5dcaf520049a962bef625cb59a567ea2b4252d4dc9be28dd06123d340e03919";
+    sha256 = "1x3v31cxnww4w5zn15vy0bwk53llsa0f97ma6qbw89h152d2mx5x";
   };
 
   buildInputs = [ zlib automake autoconf libtool ];
diff --git a/pkgs/applications/science/biology/last/default.nix b/pkgs/applications/science/biology/last/default.nix
index fc302522215..13f6a23913f 100644
--- a/pkgs/applications/science/biology/last/default.nix
+++ b/pkgs/applications/science/biology/last/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "last";
-  version = "1061";
+  version = "1066";
 
   src = fetchurl {
     url = "http://last.cbrc.jp/last-${version}.zip";
-    sha256 = "1jbvcxfy5xrf90qbhif0bd6aywm9rjqrm0sx24yr312f7r7c1dnx";
+    sha256 = "098j3f3a80rmhd01ds7rnb9y1xykmll2yh5ivpnvskssd8z2vc4r";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/applications/science/biology/minc-tools/default.nix b/pkgs/applications/science/biology/minc-tools/default.nix
index db803ea4922..b2029842bbb 100644
--- a/pkgs/applications/science/biology/minc-tools/default.nix
+++ b/pkgs/applications/science/biology/minc-tools/default.nix
@@ -14,15 +14,19 @@ stdenv.mkDerivation rec {
 
   patches = [ ./fix-netcdf-header.patch ];
 
+  # add missing CMake module to build NIFTI support
+  # (the maintainers normally build libminc and minc-tools in a meta-project)
+  postPatch = ''
+    cp ${libminc.src}/cmake-modules/FindNIFTI.cmake cmake-modules
+  '';
+
   nativeBuildInputs = [ cmake flex bison makeWrapper ];
-  buildInputs = [ libminc libjpeg zlib ];
+  buildInputs = [ libminc libjpeg nifticlib zlib ];
   propagatedBuildInputs = [ perl TextFormat ];
 
   cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/"
-                 "-DZNZ_INCLUDE_DIR=${nifticlib}/include/"
-                 "-DZNZ_LIBRARY=${nifticlib}/lib/libznz.a"
-                 "-DNIFTI_INCLUDE_DIR=${nifticlib}/include/nifti/"
-                 "-DNIFTI_LIBRARY=${nifticlib}/lib/libniftiio.a" ];
+                 "-DZNZ_INCLUDE_DIR=${nifticlib}/include/nifti"
+                 "-DNIFTI_INCLUDE_DIR=${nifticlib}/include/nifti" ];
 
   postFixup = ''
     for prog in minccomplete minchistory mincpik; do
diff --git a/pkgs/applications/science/biology/mosdepth/default.nix b/pkgs/applications/science/biology/mosdepth/default.nix
index 21af5b82207..1ce6357d2e8 100644
--- a/pkgs/applications/science/biology/mosdepth/default.nix
+++ b/pkgs/applications/science/biology/mosdepth/default.nix
@@ -26,14 +26,15 @@ in stdenv.mkDerivation rec {
     sha256 = "01gm9gj2x2zs4yx6wk761fi1papi7qr3gp4ln1kkn8n2f9y9h849";
   };
 
-  buildInputs = [ nim ];
+  nativeBuildInputs = [ nim ];
+  buildInputs = [ htslib pcre ];
 
   buildPhase = ''
     HOME=$TMPDIR
     nim -p:${hts-nim}/src -p:${docopt}/src c --nilseqs:on -d:release mosdepth.nim
   '';
+
   installPhase = "install -Dt $out/bin mosdepth";
-  fixupPhase = "patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ stdenv.cc.cc htslib pcre ]} $out/bin/mosdepth";
 
   meta = with stdenv.lib; {
     description = "fast BAM/CRAM depth calculation for WGS, exome, or targeted sequencing.";
diff --git a/pkgs/applications/science/biology/picard-tools/default.nix b/pkgs/applications/science/biology/picard-tools/default.nix
index e6bcb4470bb..d496e78748d 100644
--- a/pkgs/applications/science/biology/picard-tools/default.nix
+++ b/pkgs/applications/science/biology/picard-tools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "picard-tools";
-  version = "2.23.1";
+  version = "2.23.4";
 
   src = fetchurl {
     url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
-    sha256 = "1g4539x2081jgrbn207nsimpq9q5izd4z6cx7s8lr8p8ab8spbmk";
+    sha256 = "0xg4nbx02a2kckr6p8pqjpv5rmp95bkmglgm1bma6f77s7hkab7q";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/science/biology/seaview/default.nix b/pkgs/applications/science/biology/seaview/default.nix
index 4192de714d0..dfee9794782 100644
--- a/pkgs/applications/science/biology/seaview/default.nix
+++ b/pkgs/applications/science/biology/seaview/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, coreutils, fltk, libjpeg }:
 
 stdenv.mkDerivation rec {
-  version = "5.0.2";
+  version = "5.0.4";
   pname = "seaview";
 
   src = fetchurl {
     url = "ftp://pbil.univ-lyon1.fr/pub/mol_phylogeny/seaview/archive/seaview_${version}.tar.gz";
-    sha256 = "0bad0nd18a36g6ysx28j68rbnwqn33ra8inx2lv2igqqcs6i5kif";
+    sha256 = "09yp8467h49qnj7gg0mbcdha4ai3bn6vgs00gb76dd6h3pzfflz1";
   };
 
   buildInputs = [ fltk libjpeg ];
diff --git a/pkgs/applications/science/biology/sortmerna/default.nix b/pkgs/applications/science/biology/sortmerna/default.nix
index 1f291d1a700..4e32669dfca 100644
--- a/pkgs/applications/science/biology/sortmerna/default.nix
+++ b/pkgs/applications/science/biology/sortmerna/default.nix
@@ -2,32 +2,39 @@
 
 stdenv.mkDerivation rec {
   pname = "sortmerna";
-  version = "3.0.3";
+  version = "4.2.0";
 
   src = fetchFromGitHub {
     repo = pname;
     owner = "biocore";
     rev = "v${version}";
-    sha256 = "0zx5fbzyr8wdr0zwphp8hhcn1xz43s5lg2ag4py5sv0pv5l1jh76";
+    sha256 = "0r91viylzr069jm7kpcgb45kagvf8sqcj5zc1af4arl9sgfs1f3j";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "CMakeInstallPrefix.patch";
-      url = "https://github.com/biocore/sortmerna/commit/4d36d620a3207e26cf3f588d4ec39889ea21eb79.patch";
-      sha256 = "0hc3jwdr6ylbyigg52q8islqc0mb1k8rrjadvjfqaxnili099apd";
-    })
-  ];
-
-  nativeBuildInputs = [ cmake rapidjson pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
   buildInputs = [ zlib rocksdb rapidjson ];
 
   cmakeFlags = [
     "-DCMAKE_BUILD_TYPE=Release"
-    "-DROCKSDB_HOME=${rocksdb}"
+    "-DPORTABLE=off"
     "-DRAPIDJSON_HOME=${rapidjson}"
+    "-DROCKSDB_HOME=${rocksdb}"
+    "-DROCKSDB_STATIC=off"
+    "-DZLIB_STATIC=off"
   ];
 
+  postPatch = ''
+    # Fix formatting string error:
+    # https://github.com/biocore/sortmerna/issues/255
+    substituteInPlace src/sortmerna/indexdb.cpp \
+      --replace 'is_verbose, ss' 'is_verbose, "%s", ss'
+
+    # Fix missing pthread dependency for the main binary.
+    substituteInPlace src/sortmerna/CMakeLists.txt \
+      --replace "target_link_libraries(sortmerna" \
+        "target_link_libraries(sortmerna Threads::Threads"
+  '';
+
   meta = with stdenv.lib; {
     description = "Tools for filtering, mapping, and OTU-picking from shotgun genomics data";
     license = licenses.lgpl3;
diff --git a/pkgs/applications/science/biology/star/default.nix b/pkgs/applications/science/biology/star/default.nix
index 6f4211d0c0d..c331acbfe70 100644
--- a/pkgs/applications/science/biology/star/default.nix
+++ b/pkgs/applications/science/biology/star/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "star";
-  version = "2.7.3a";
+  version = "2.7.5c";
 
   src = fetchFromGitHub {
     repo = "STAR";
     owner = "alexdobin";
     rev = version;
-    sha256 = "1hgiqw5qhs0pc1xazzihcfd92na02xyq2kb469z04y1v51kpvvjq";
+    sha256 = "1plx9akrzwjk7f2j94l9ss0apg0asqmrf2bp0728d4bvlhnzmjyy";
   };
 
   sourceRoot = "source/source";
diff --git a/pkgs/applications/science/biology/tebreak/default.nix b/pkgs/applications/science/biology/tebreak/default.nix
index 9ff81944f6a..07669d097a4 100644
--- a/pkgs/applications/science/biology/tebreak/default.nix
+++ b/pkgs/applications/science/biology/tebreak/default.nix
@@ -3,13 +3,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "tebreak";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "adamewing";
     repo = "tebreak";
     rev = version;
-    sha256 = "194av17wz66n4zxyi56mbkik31j2wmkly5i9qmxgaxymhavzi3kq";
+    sha256 = "13mgh775d8hkl340923lfwwm4r5ps70girn8d6wgfxzwzxylz8iz";
   };
 
   nativeBuildInputs = [ findutils python3Packages.cython ];
diff --git a/pkgs/applications/science/biology/whisper/default.nix b/pkgs/applications/science/biology/whisper/default.nix
new file mode 100644
index 00000000000..9e336600202
--- /dev/null
+++ b/pkgs/applications/science/biology/whisper/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "whisper";
+  version = "2.0.1";
+
+  src = fetchFromGitHub {
+    owner = "refresh-bio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0wpx1w1mar2d6zq2v14vy6nn896ds1n3zshxhhrrj5d528504iyw";
+  };
+
+  preConfigure = ''
+    cd src
+
+    # disable default static linking
+    sed -i 's/ -static / /' makefile
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -Dt $out/bin whisper whisper-index
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Short read sequence mapper";
+    license = licenses.gpl3;
+    homepage = "https://github.com/refresh-bio/whisper";
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/pkgs/applications/science/chemistry/d-seams/default.nix b/pkgs/applications/science/chemistry/d-seams/default.nix
new file mode 100644
index 00000000000..1c639563757
--- /dev/null
+++ b/pkgs/applications/science/chemistry/d-seams/default.nix
@@ -0,0 +1,34 @@
+{ clangStdenv, stdenv, fetchFromGitHub, catch2, rang, fmt, libyamlcpp, cmake
+, eigen, lua, luaPackages, liblapack, blas, lib, boost, gsl }:
+
+clangStdenv.mkDerivation rec {
+  version = "v1.0.1";
+  pname = "d-SEAMS";
+
+  src = fetchFromGitHub {
+    owner = "d-SEAMS";
+    repo = "seams-core";
+    rev = "v1.0.1";
+    sha256 = "03zhhl9vhi3rhc3qz1g3zb89jksgpdlrk15fcr8xcz8pkj6r5b1i";
+  };
+
+  enableParallelBuilding = true;
+  nativeBuildInputs = [ cmake lua luaPackages.luafilesystem ];
+  buildInputs = [ fmt rang libyamlcpp eigen catch2 boost gsl liblapack blas ];
+
+  meta = with stdenv.lib; {
+    description =
+      "d-SEAMS: Deferred Structural Elucidation Analysis for Molecular Simulations";
+    longDescription = ''
+      d-SEAMS, is a free and open-source postprocessing engine for the analysis
+      of molecular dynamics trajectories, which is specifically able to
+      qualitatively classify ice structures in both strong-confinement and bulk
+      systems. The engine is in C++, with extensions via the Lua scripting
+      interface.
+    '';
+    homepage = "https://dseams.info";
+    license = licenses.gpl3Plus;
+    platforms = [ "x86_64-linux" ];
+    maintainers = [ maintainers.HaoZeke ];
+  };
+}
diff --git a/pkgs/applications/science/chemistry/gwyddion/default.nix b/pkgs/applications/science/chemistry/gwyddion/default.nix
index dec63910f70..bdebfc72e47 100644
--- a/pkgs/applications/science/chemistry/gwyddion/default.nix
+++ b/pkgs/applications/science/chemistry/gwyddion/default.nix
@@ -35,10 +35,10 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gwyddion";
-   version = "2.55";
+   version = "2.56";
   src = fetchurl {
     url = "mirror://sourceforge/gwyddion/gwyddion-${version}.tar.xz";
-    sha256 = "0l00zszvginpriv12idc0y1x28qmicdmrwkqa007srkxvrdgxwdi";
+    sha256 = "0z83p3ifdkv5dds8s6fqqbycql1zmgppdc7ygqmm12z5zlrl9p12";
   };
   
   nativeBuildInputs = [ pkg-config file ];
diff --git a/pkgs/applications/science/chemistry/jmol/default.nix b/pkgs/applications/science/chemistry/jmol/default.nix
index 45f28c93b38..99101a5fd1c 100644
--- a/pkgs/applications/science/chemistry/jmol/default.nix
+++ b/pkgs/applications/science/chemistry/jmol/default.nix
@@ -17,14 +17,14 @@ let
   };
 in
 stdenv.mkDerivation rec {
-  version = "14.31.0";
+  version = "14.31.2";
   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 = "14p823vxb8sfis1dgq8i9kj0rqf3cb8d0l8pspb8nz30fcvp1q7f";
+    sha256 = "0p2cbzxhw1s4l76kbriag3r4dkpsfvrnydryyikgkbdwnq479hm2";
   };
 
   patchPhase = ''
diff --git a/pkgs/applications/science/chemistry/marvin/default.nix b/pkgs/applications/science/chemistry/marvin/default.nix
index c090fbee377..e8cd077afd2 100644
--- a/pkgs/applications/science/chemistry/marvin/default.nix
+++ b/pkgs/applications/science/chemistry/marvin/default.nix
@@ -4,12 +4,12 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "marvin";
-  version = "20.13.0";
+  version = "20.17.0";
 
   src = fetchurl {
     name = "marvin-${version}.deb";
     url = "http://dl.chemaxon.com/marvin/${version}/marvin_linux_${versions.majorMinor version}.deb";
-    sha256 = "1mbbl7z215l6z4acwdrmqnvlvc2hv4znz4dmng9iw7rrqns3jjlv";
+    sha256 = "0ip6ma9ivk5b74s9najn2rrkiha7hya1rjhgyrc71kwsj5gqgli0";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper ];
diff --git a/pkgs/applications/science/chemistry/octopus/default.nix b/pkgs/applications/science/chemistry/octopus/default.nix
index adb31d32650..f8eb064e1fd 100644
--- a/pkgs/applications/science/chemistry/octopus/default.nix
+++ b/pkgs/applications/science/chemistry/octopus/default.nix
@@ -6,13 +6,13 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "octopus";
-  version = "9.2";
+  version = "10.0";
 
   src = fetchFromGitLab {
     owner = "octopus-code";
     repo = "octopus";
     rev = version;
-    sha256 = "083z51sjv70asr04rv53wb9gf4396nblq1zl22qw7jdr28hji4is";
+    sha256 = "1c6q20y0x9aacwa7vp6gj3yvfzain7hnk6skxmvg3wazp02l91kn";
   };
 
   nativeBuildInputs = [ perl procps autoreconfHook ];
diff --git a/pkgs/applications/science/electronics/adms/default.nix b/pkgs/applications/science/electronics/adms/default.nix
index f55dd2f0528..0fcf4d25e2d 100644
--- a/pkgs/applications/science/electronics/adms/default.nix
+++ b/pkgs/applications/science/electronics/adms/default.nix
@@ -2,14 +2,14 @@
   libxml2, perl, perlPackages, gd }:
 
 stdenv.mkDerivation rec {
-  version = "2.3.6";
+  version = "2.3.7";
   pname = "adms";
 
   src = fetchFromGitHub {
     owner = "Qucs";
     repo = "adms";
     rev = "release-${version}";
-    sha256 = "1pcwq5khzdq4x33lid9hq967gv78dr5i4f2sk8m8rwkfqb9vdzrg";
+    sha256 = "0i37c9k6q1iglmzp9736rrgsnx7sw8xn3djqbbjw29zsyl3pf62c";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/applications/science/electronics/appcsxcad/default.nix b/pkgs/applications/science/electronics/appcsxcad/default.nix
new file mode 100644
index 00000000000..d2b7c0d66a1
--- /dev/null
+++ b/pkgs/applications/science/electronics/appcsxcad/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, csxcad
+, qcsxcad
+, hdf5
+, vtkWithQt5
+, qtbase
+, wrapQtAppsHook
+, fparser
+, tinyxml
+, cgal
+, boost
+}:
+
+mkDerivation {
+  pname = "appcsxcad";
+  version = "unstable-2020-01-04";
+
+  src = fetchFromGitHub {
+    owner = "thliebig";
+    repo = "AppCSXCAD";
+    rev = "de8c271ec8b57e80233cb2a432e3d7fd54d30876";
+    sha256 = "0shnfa0if3w588a68gr82qi6k7ldg1j2921fnzji90mmay21birp";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    csxcad
+    qcsxcad
+    hdf5
+    vtkWithQt5
+    qtbase
+    fparser
+    tinyxml
+    cgal
+    boost
+  ];
+
+  postFixup = ''
+    rm $out/bin/AppCSXCAD.sh
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Minimal Application using the QCSXCAD library";
+    homepage = "https://github.com/thliebig/AppCSXCAD";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ matthuszagh ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/science/electronics/csxcad/default.nix b/pkgs/applications/science/electronics/csxcad/default.nix
new file mode 100644
index 00000000000..adc6a60be85
--- /dev/null
+++ b/pkgs/applications/science/electronics/csxcad/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, fparser
+, tinyxml
+, hdf5
+, cgal_5
+, vtk
+, boost
+, gmp
+, mpfr
+}:
+
+stdenv.mkDerivation rec {
+  pname = "csxcad";
+  version = "unstable-2020-02-08";
+
+  src = fetchFromGitHub {
+    owner = "thliebig";
+    repo = "CSXCAD";
+    rev = "ef6e40931dbd80e0959f37c8e9614c437bf7e518";
+    sha256 = "072s765jyzpdq8qqysdy0dld17m6sr9zfcs0ip2zk8c4imxaysnb";
+  };
+
+  patches = [./searchPath.patch ];
+
+  buildInputs = [
+    cgal_5
+    boost
+    gmp
+    mpfr
+    vtk
+    fparser
+    tinyxml
+    hdf5
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "A C++ library to describe geometrical objects";
+    homepage = "https://github.com/thliebig/CSXCAD";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ matthuszagh ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/science/electronics/csxcad/searchPath.patch b/pkgs/applications/science/electronics/csxcad/searchPath.patch
new file mode 100644
index 00000000000..2fc0d77b320
--- /dev/null
+++ b/pkgs/applications/science/electronics/csxcad/searchPath.patch
@@ -0,0 +1,11 @@
+--- CSXCAD/matlab/searchBinary.m	2019-07-14 09:24:02.154291745 -0700
++++ CSXCAD/matlab/searchBinary.m	2019-07-14 09:20:20.900248280 -0700
+@@ -33,7 +33,7 @@
+
+ % try all search paths
+ for n=1:numel(searchpath)
+-    binary_location = [searchpath{n} name];
++    binary_location = [searchpath{n} filesep name];
+     if exist(binary_location, 'file')
+         return
+     end
diff --git a/pkgs/applications/science/electronics/fritzing/default.nix b/pkgs/applications/science/electronics/fritzing/default.nix
index a0442db7fed..275100ac7fd 100644
--- a/pkgs/applications/science/electronics/fritzing/default.nix
+++ b/pkgs/applications/science/electronics/fritzing/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchpatch, fetchFromGitHub, qmake, pkgconfig
+{ mkDerivation, stdenv, fetchpatch, fetchFromGitHub, qmake, pkgconfig
 , qtbase, qtsvg, qtserialport, boost, libgit2
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "fritzing";
   version = "0.9.3b";
 
diff --git a/pkgs/applications/science/electronics/gtkwave/default.nix b/pkgs/applications/science/electronics/gtkwave/default.nix
index 3d75780936e..36cc19142d1 100644
--- a/pkgs/applications/science/electronics/gtkwave/default.nix
+++ b/pkgs/applications/science/electronics/gtkwave/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gtkwave";
-  version = "3.3.104";
+  version = "3.3.106";
 
   src = fetchurl {
     url    = "mirror://sourceforge/gtkwave/${pname}-gtk3-${version}.tar.gz";
-    sha256 = "1qvldbnlp3wkqr5ff93f6pdvv9yzij7lxfhpqlizakz08l1xb391";
+    sha256 = "0ma53s27735x16dq5qi91kvlypkiwkxh2jhw0gziyccnk1mkdsji";
   };
 
   nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
diff --git a/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix b/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
new file mode 100644
index 00000000000..06053a8f356
--- /dev/null
+++ b/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, cmake, ninja, pkgconfig, python3Packages
+, boost, rapidjson, qtbase, qtsvg, igraph, spdlog, wrapQtAppsHook
+, llvmPackages ? null
+}:
+
+stdenv.mkDerivation rec {
+  version = "2.0.0";
+  pname = "hal-hardware-analyzer";
+
+  src = fetchFromGitHub {
+    owner = "emsec";
+    repo = "hal";
+    rev = "v${version}";
+    sha256 = "11xmqxnryksl645wmm1d69k1b5zwvxxf0admk4iblzaa3ggf7cv1";
+  };
+  # make sure bundled dependencies don't get in the way - install also otherwise
+  # copies them in full to the output, bloating the package
+  postPatch = ''
+    rm -rf deps/*/*
+    substituteInPlace cmake/detect_dependencies.cmake \
+      --replace 'spdlog 1.4.2 EXACT' 'spdlog 1.4.2 REQUIRED'
+  '';
+
+  nativeBuildInputs = [ cmake ninja pkgconfig ];
+  buildInputs = [ qtbase qtsvg boost rapidjson igraph spdlog wrapQtAppsHook ]
+    ++ (with python3Packages; [ python pybind11 ])
+    ++ stdenv.lib.optional stdenv.cc.isClang llvmPackages.openmp;
+
+  cmakeFlags = with stdenv.lib.versions; [
+    "-DHAL_VERSION_RETURN=${version}"
+    "-DHAL_VERSION_MAJOR=${major version}"
+    "-DHAL_VERSION_MINOR=${minor version}"
+    "-DHAL_VERSION_PATCH=${patch version}"
+    "-DHAL_VERSION_TWEAK=0"
+    "-DHAL_VERSION_ADDITIONAL_COMMITS=0"
+    "-DHAL_VERSION_DIRTY=false"
+    "-DHAL_VERSION_BROKEN=false"
+    "-DENABLE_INSTALL_LDCONFIG=off"
+    "-DBUILD_ALL_PLUGINS=on"
+  ];
+  # needed for macos build - this is why we use wrapQtAppsHook instead of
+  # the qt mkDerivation - the latter forcibly overrides this.
+  cmakeBuildType = "MinSizeRel";
+
+  meta = {
+    description = "A comprehensive reverse engineering and manipulation framework for gate-level netlists";
+    homepage = "https://github.com/emsec/hal";
+    license = stdenv.lib.licenses.mit;
+    platforms = with stdenv.lib.platforms; unix;
+    maintainers = with stdenv.lib.maintainers; [ ris ];
+  };
+}
diff --git a/pkgs/applications/science/electronics/hyp2mat/default.nix b/pkgs/applications/science/electronics/hyp2mat/default.nix
new file mode 100644
index 00000000000..154b68dd5aa
--- /dev/null
+++ b/pkgs/applications/science/electronics/hyp2mat/default.nix
@@ -0,0 +1,53 @@
+{ stdenv
+, fetchFromGitHub
+, bison
+, flex
+, gengetopt
+, help2man
+, groff
+, libharu
+, autoreconfHook
+, pkgconfig
+, libpng
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "hyp2mat";
+  version = "0.0.18";
+
+  src = fetchFromGitHub {
+    owner = "koendv";
+    repo = "hyp2mat";
+    rev = "v${version}";
+    sha256 = "03ibk51swxfl7pfrhcrfiffdi4mnf8kla0g1xj1lsrvrjwapfx03";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkgconfig
+  ];
+
+  buildInputs = [
+    libharu
+    libpng
+    zlib
+    bison
+    flex
+    gengetopt
+    help2man
+    groff
+  ];
+
+  configureFlags = [ "--enable-library" ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Import Hyperlynx Boardsim files to openEMS, an open source 3D full-wave electromagnetic field solver";
+    homepage = "https://github.com/koendv/hyp2mat";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ matthuszagh ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/science/electronics/kicad/base.nix b/pkgs/applications/science/electronics/kicad/base.nix
index b7ab5fa70d9..2fd4c122041 100644
--- a/pkgs/applications/science/electronics/kicad/base.nix
+++ b/pkgs/applications/science/electronics/kicad/base.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   i18n = libraries.i18n;
 
   pname = "kicad-base";
-  version = "${versions.${baseName}.kicadVersion.version}";
+  version = "${builtins.substring 0 10 versions.${baseName}.kicadVersion.src.rev}";
 
   src = fetchFromGitLab (
     {
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index a99f1b2d8d7..e5ce1f0092e 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, gnome3, pkgs, wxGTK30, wxGTK31
+{ lib, stdenv, gnome3, wxGTK30, wxGTK31
+, makeWrapper
 , gsettings-desktop-schemas, hicolor-icon-theme
 , callPackage, callPackages
 , librsvg, cups
@@ -31,9 +32,8 @@ let
     # but brings high DPI support?
     else wxGTK31.override { withGtk2 = false; };
 
-  pythonPackages = python.pkgs;
   python = python3;
-  wxPython = pythonPackages.wxPython_4_0;
+  wxPython = python.pkgs.wxPython_4_0;
 
 in
 stdenv.mkDerivation rec {
@@ -55,10 +55,11 @@ stdenv.mkDerivation rec {
   dontFixup = true;
 
   pythonPath = optionals (scriptingSupport)
-    [ wxPython pythonPackages.six ];
+    [ wxPython python.pkgs.six ];
 
-  nativeBuildInputs = optionals (scriptingSupport)
-    [ pythonPackages.wrapPython ];
+  nativeBuildInputs = [ makeWrapper ]
+    ++ optionals (scriptingSupport)
+      [ python.pkgs.wrapPython ];
 
   # wrapGAppsHook added the equivalent to ${base}/share
   # though i noticed no difference without it
diff --git a/pkgs/applications/science/electronics/kicad/libraries.nix b/pkgs/applications/science/electronics/kicad/libraries.nix
index 4dde2a0a122..91ce30de5f0 100644
--- a/pkgs/applications/science/electronics/kicad/libraries.nix
+++ b/pkgs/applications/science/electronics/kicad/libraries.nix
@@ -15,7 +15,9 @@ let
   mkLib = name:
     stdenv.mkDerivation {
       pname = "kicad-${name}";
-      version = "${version}";
+      # Use the revision instead of `version` (which is an ISO 8601 date)
+      # to prevent duplicating the library when just the date changed
+      version = "${builtins.substring 0 10 libSources.${name}.rev}";
       src = fetchFromGitHub (
         {
           owner = "KiCad";
@@ -50,7 +52,7 @@ in
   i18n = let name = "i18n"; in
     stdenv.mkDerivation {
       pname = "kicad-${name}";
-      version = "${version}";
+      version = "${builtins.substring 0 10 libSources.${name}.rev}";
       src = fetchFromGitLab (
         {
           group = "kicad";
diff --git a/pkgs/applications/science/electronics/kicad/versions.nix b/pkgs/applications/science/electronics/kicad/versions.nix
index 4a9ed0cb86d..d001cc43367 100644
--- a/pkgs/applications/science/electronics/kicad/versions.nix
+++ b/pkgs/applications/science/electronics/kicad/versions.nix
@@ -27,25 +27,25 @@
   };
   "kicad-unstable" = {
     kicadVersion = {
-      version =			"2020-05-14";
+      version =			"2020-08-22";
       src = {
-        rev =			"3b8465359135e9f6dea4b0a5fcb62377753fe890";
-        sha256 =		"18xsg2s0pxx176rnblygq1f8xpmryw59lcjzm897gifz0sj0nhvx";
+        rev =			"a2341f0f335b0abb9fc8cb86d19cbe6f9b38fade";
+        sha256 =		"0167yb39f800xarq3khn7sbdkgcx9j2ayhy8c7lhhks6kh7459g0";
       };
     };
     libVersion = {
-      version =			"2020-05-14";
+      version =			"2020-08-22";
       libSources = {
-        i18n.rev =		"c4460d0d8e1075691d43dc928ffc332fa1282592";
-        i18n.sha256 =		"1gkrbfyfzsr5q7sahhlyhgfpfwm6b83lzf0q1v854gwxdfabvi0y";
-        symbols.rev =		"614b5f6256fbae82c2bba399086506bbe435bd94";
-        symbols.sha256 =	"10ix3wdcl832r4ha5q8phpx8j97gzngb41nczdli1qkhjmiw9y8r";
-        templates.rev =		"7db8d4d0ea0711f1961d117853547fb3edbc3857";
-        templates.sha256 =	"1hppcsrkn4dk6ggby6ckh0q65qxkywrbyxa4lwpaf7pxjyv498xg";
-        footprints.rev =	"240804c6c89b66af808379e1fc94ea6011433cbe";
-        footprints.sha256 =	"1jh71004lrn7bl384zfmbqqdbs28gjb6diwn6hyb587jpivdnl3g";
-        packages3d.rev =	"9b560cf94a35b692ca516d37bdaf392ce10e549d";
-        packages3d.sha256 =	"0b9jglf77fy0n0r8xs4yqkv6zvipyfvp0z5dnqlzp32csy5aqpi1";
+        i18n.rev =		"cbbb1efd940094bf0c3168280698b2b059a8c509";
+        i18n.sha256 =		"1q4jakn6m8smnr2mg7jgb520nrb6fag9mdvlcpx3smp3qbxka818";
+        symbols.rev =		"9ca6a5348cdeb88e699582d4ed051ff7303b44d3";
+        symbols.sha256 =	"13w6pb34rhz96rnar25z7kiscy6q1fm8l39hq1bpb8g9yn86ssz4";
+        templates.rev =		"ae16953b81055855bcede4a33305413599d86a15";
+        templates.sha256 =	"1pkv90p3liy3bj4nklxsvpzh9m56p0k5ldr22armvgqfaqaadx9v";
+        footprints.rev =	"f94c2d5d619d16033f69a555b449f59604d97865";
+        footprints.sha256 =	"1g71sk77jvqaf9xvgq6dkyvd9pij2lb4n0bn0dqnwddhwam935db";
+        packages3d.rev =	"f699b0e3c13fe75618086913e39279c85da14cc7";
+        packages3d.sha256 =	"0m5rb5axa946v729z35ga84in76y4zpk32qzi0hwqx957zy72hs9";
       };
     };
   };
diff --git a/pkgs/applications/science/electronics/magic-vlsi/default.nix b/pkgs/applications/science/electronics/magic-vlsi/default.nix
index 62b830547e5..96849c30029 100644
--- a/pkgs/applications/science/electronics/magic-vlsi/default.nix
+++ b/pkgs/applications/science/electronics/magic-vlsi/default.nix
@@ -31,6 +31,6 @@ stdenv.mkDerivation {
     description = "VLSI layout tool written in Tcl";
     homepage = "http://opencircuitdesign.com/magic/";
     license = licenses.mit;
-    maintainers = [ maintainers.dkudriavtsev ];
+    maintainers = [ maintainers.anna328p ];
   };
 }
diff --git a/pkgs/applications/science/electronics/openhantek6022/default.nix b/pkgs/applications/science/electronics/openhantek6022/default.nix
new file mode 100644
index 00000000000..ad8fa3c7a7a
--- /dev/null
+++ b/pkgs/applications/science/electronics/openhantek6022/default.nix
@@ -0,0 +1,31 @@
+{ mkDerivation, lib, fetchFromGitHub, makeWrapper, cmake, qtbase, qttools, fftw, libusb1, libglvnd }:
+
+mkDerivation rec {
+  pname = "openhantek6022";
+  version = "3.1.2";
+
+  src = fetchFromGitHub {
+    owner = "OpenHantek";
+    repo = "OpenHantek6022";
+    rev = version;
+    sha256 = "104j7d3i5y6jd20c2z3l10sr6sgdy8iki3g9mlwhddnr8x6nzc03";
+  };
+
+  nativeBuildInputs = [ cmake makeWrapper ];
+  buildInputs = [ fftw libusb1 libglvnd qtbase qttools ];
+
+  postPatch = ''
+    # Fix up install paths & checks
+    sed -i 's#if(EXISTS ".*")#if(1)#g' CMakeLists.txt
+    sed -i 's#/lib/udev#lib/udev#g' CMakeLists.txt
+    sed -i 's#/usr/share#share#g' CMakeLists.txt
+  '';
+
+  meta = with lib; {
+    description = "Free software for Hantek and compatible (Voltcraft/Darkwire/Protek/Acetech) USB digital signal oscilloscopes";
+    homepage    = "https://github.com/OpenHantek/OpenHantek6022";
+    license     = licenses.gpl3;
+    maintainers = with maintainers; [ baracoder ];
+    platforms = qtbase.meta.platforms;
+  };
+}
diff --git a/pkgs/applications/science/electronics/qcsxcad/default.nix b/pkgs/applications/science/electronics/qcsxcad/default.nix
new file mode 100644
index 00000000000..c12678c0047
--- /dev/null
+++ b/pkgs/applications/science/electronics/qcsxcad/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, csxcad
+, tinyxml
+, vtkWithQt5
+, wrapQtAppsHook
+, qtbase
+}:
+
+mkDerivation {
+  pname = "qcsxcad";
+  version = "unstable-2020-01-04";
+
+  src = fetchFromGitHub {
+    owner = "thliebig";
+    repo = "QCSXCAD";
+    rev = "0dabbaf2bc1190adec300871cf309791af842c8e";
+    sha256 = "11kbh0mxbdfh7s5azqin3i2alic5ihmdfj0jwgnrhlpjk4cbf9rn";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    wrapQtAppsHook
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
+    "-DCSXCAD_ROOT_DIR=${csxcad}"
+    "-DENABLE_RPATH=OFF"
+  ];
+
+  buildInputs = [
+    csxcad
+    tinyxml
+    vtkWithQt5
+    qtbase
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Qt library for CSXCAD";
+    homepage = "https://github.com/thliebig/QCSXCAD";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ matthuszagh ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/science/electronics/verilator/default.nix b/pkgs/applications/science/electronics/verilator/default.nix
index 0613e22bbda..9c59ad3a394 100644
--- a/pkgs/applications/science/electronics/verilator/default.nix
+++ b/pkgs/applications/science/electronics/verilator/default.nix
@@ -1,22 +1,29 @@
-{ stdenv, fetchurl, perl, flex, bison }:
+{ stdenv, fetchurl
+, perl, flex, bison
+}:
 
 stdenv.mkDerivation rec {
   pname = "verilator";
-  version = "4.036";
+  version = "4.040";
 
   src = fetchurl {
     url    = "https://www.veripool.org/ftp/${pname}-${version}.tgz";
-    sha256 = "1sy02pgq3kvk8548l57hsh08vfbqdg8dghj8mwlybdi8fdjz4z1h";
+    sha256 = "1qy0wllsmxva3c838spxwmacxx36r3njxwhgp172m4l3829785bf";
   };
 
   enableParallelBuilding = true;
-  buildInputs = [ perl flex bison ];
+  buildInputs = [ perl ];
+  nativeBuildInputs = [ flex bison ];
 
-  meta = {
+  # these tests need some interpreter paths patched early on...
+  doCheck = false;
+  checkTarget = "test";
+
+  meta = with stdenv.lib; {
     description = "Fast and robust (System)Verilog simulator/compiler";
     homepage    = "https://www.veripool.org/wiki/verilator";
-    license     = stdenv.lib.licenses.lgpl3;
-    platforms   = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
+    license     = licenses.lgpl3;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ thoughtpolice ];
   };
 }
diff --git a/pkgs/applications/science/electronics/vhd2vl/default.nix b/pkgs/applications/science/electronics/vhd2vl/default.nix
new file mode 100644
index 00000000000..43dfdcabd02
--- /dev/null
+++ b/pkgs/applications/science/electronics/vhd2vl/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, fetchFromGitHub
+, bison
+, flex
+, verilog
+}:
+
+stdenv.mkDerivation rec {
+  pname = "vhd2vl";
+  version = "unstable-2018-09-01";
+
+  src = fetchFromGitHub {
+    owner = "ldoolitt";
+    repo = pname;
+    rev = "37e3143395ce4e7d2f2e301e12a538caf52b983c";
+    sha256 = "17va2pil4938j8c93anhy45zzgnvq3k71a7glj02synfrsv6fs8n";
+  };
+
+  nativeBuildInputs = [
+    bison
+    flex
+  ];
+
+  buildInputs = [
+    verilog
+  ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp src/vhd2vl $out/bin/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "VHDL to Verilog converter";
+    homepage = "https://github.com/ldoolitt/vhd2vl";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ matthuszagh ];
+  };
+}
diff --git a/pkgs/applications/science/geometry/gama/default.nix b/pkgs/applications/science/geometry/gama/default.nix
new file mode 100644
index 00000000000..fe606125c55
--- /dev/null
+++ b/pkgs/applications/science/geometry/gama/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, lib, expat, octave, libxml2, texinfo }:
+stdenv.mkDerivation rec {
+  pname = "gama";
+  version = "2.09";
+
+  src = fetchurl {
+    url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "0c1b28frl6109arj09v4zr1xs859krn8871mkvis517g5pb55dc9";
+  };
+
+  buildInputs = [ expat ];
+
+  nativeBuildInputs = [ texinfo ];
+
+  checkInputs = [ octave libxml2 ];
+  doCheck = true;
+
+  meta = with lib ; {
+    description = "Tools for adjustment of geodetic networks";
+    homepage = "https://www.gnu.org/software/gama/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/science/logic/abc/default.nix b/pkgs/applications/science/logic/abc/default.nix
index 0bad0046e93..29d727d988e 100644
--- a/pkgs/applications/science/logic/abc/default.nix
+++ b/pkgs/applications/science/logic/abc/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname   = "abc-verifier";
-  version = "2020.04.30";
+  version = "2020.06.22";
 
   src = fetchFromGitHub {
     owner  = "berkeley-abc";
     repo   = "abc";
-    rev    = "fd2c9b1c19216f6b756f88b18f5ca67b759ca128";
-    sha256 = "1d18pkpsx0nlzl3a6lyfdnpk4kixjmgswy6cp5fbrkpp4rf1gahi";
+    rev    = "341db25668f3054c87aa3372c794e180f629af5d";
+    sha256 = "14cgv34vz5ljkcms6nrv19vqws2hs8bgjgffk5q03cbxnm2jxv5s";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/logic/alt-ergo/default.nix b/pkgs/applications/science/logic/alt-ergo/default.nix
index e396f1c4a91..519b1f98138 100644
--- a/pkgs/applications/science/logic/alt-ergo/default.nix
+++ b/pkgs/applications/science/logic/alt-ergo/default.nix
@@ -2,29 +2,27 @@
 
 let
   pname = "alt-ergo";
-  version = "2.3.2";
+  version = "2.3.3";
 
   src = fetchurl {
     url = "https://alt-ergo.ocamlpro.com/http/alt-ergo-${version}/alt-ergo-${version}.tar.gz";
-    sha256 = "130hisjzkaslygipdaaqib92spzx9rapsd45dbh5ssczjn5qnhb9";
+    sha256 = "124k2a4ikk4wdpmvgjpgl97x9skvr9qznk8m68dzsynzpv6yksaj";
   };
 
-  preConfigure = "patchShebangs ./configure";
-
   nativeBuildInputs = [ which ];
 
 in
 
 let alt-ergo-lib = ocamlPackages.buildDunePackage rec {
   pname = "alt-ergo-lib";
-  inherit version src preConfigure nativeBuildInputs;
+  inherit version src 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 preConfigure nativeBuildInputs;
+  inherit version src nativeBuildInputs;
   configureFlags = pname;
   buildInputs = with ocamlPackages; [ menhir ];
   propagatedBuildInputs = [ alt-ergo-lib ] ++ (with ocamlPackages; [ camlzip psmt2-frontend ]);
@@ -32,7 +30,7 @@ let alt-ergo-parsers = ocamlPackages.buildDunePackage rec {
 
 ocamlPackages.buildDunePackage {
 
-  inherit pname version src preConfigure nativeBuildInputs;
+  inherit pname version src nativeBuildInputs;
 
   configureFlags = pname;
 
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index a10b34e0a60..946cba41b14 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -5,11 +5,10 @@
 # - The exact version can be specified through the `version` argument to
 #   the derivation; it defaults to the latest stable version.
 
-{ stdenv, fetchFromGitHub, writeText, pkgconfig
+{ stdenv, fetchFromGitHub, writeText, pkgconfig, gnumake42
 , ocamlPackages, ncurses
 , buildIde ? !(stdenv.isDarwin && stdenv.lib.versionAtLeast version "8.10")
 , glib, gnome3, wrapGAppsHook
-, darwin
 , csdp ? null
 , version
 }:
@@ -35,7 +34,7 @@ let
    "8.11.0" = "1rfdic6mp7acx2zfwz7ziqk12g95bl9nyj68z4n20a5bcjv2pxpn";
    "8.11.1" = "0qriy9dy36dajsv5qmli8gd6v55mah02ya334nw49ky19v7518m0";
    "8.11.2" = "0f77ccyxdgbf1nrj5fa8qvrk1cyfy06fv8gj9kzfvlcgn0cf48sa";
-   "8.12+beta1" = "0jbm8am9j926s0h4fi0cjl95l37l6p7i03spcryyrd4sg5xrddr7";
+   "8.12.0" = "18dc7k0piv6v064zgdadpw6mkkxk7j663hb3svgj5236fihjr0cz";
   }.${version};
   coq-version = stdenv.lib.versions.majorMinor version;
   versionAtLeast = stdenv.lib.versionAtLeast coq-version;
@@ -107,16 +106,19 @@ self = stdenv.mkDerivation {
     inherit sha256;
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ]
+  ++ stdenv.lib.optional (!versionAtLeast "8.6") gnumake42
+  ;
   buildInputs = [ ncurses ocamlPackages.ocaml ocamlPackages.findlib ]
   ++ stdenv.lib.optional (!versionAtLeast "8.10") ocamlPackages.camlp5
-  ++ [ ocamlPackages.num ]
+  ++ stdenv.lib.optional (!versionAtLeast "8.12") ocamlPackages.num
   ++ stdenv.lib.optionals buildIde
     (if versionAtLeast "8.10"
      then [ ocamlPackages.lablgtk3-sourceview3 glib gnome3.defaultIconTheme wrapGAppsHook ]
-     ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa
      else [ ocamlPackages.lablgtk ]);
 
+  propagatedBuildInputs = stdenv.lib.optional (versionAtLeast "8.12") ocamlPackages.num;
+
   postPatch = ''
     UNAME=$(type -tp uname)
     RM=$(type -tp rm)
diff --git a/pkgs/applications/science/logic/cryptominisat/default.nix b/pkgs/applications/science/logic/cryptominisat/default.nix
index 591b04ab062..ddbb140c9ba 100644
--- a/pkgs/applications/science/logic/cryptominisat/default.nix
+++ b/pkgs/applications/science/logic/cryptominisat/default.nix
@@ -1,16 +1,24 @@
-{ stdenv, fetchFromGitHub, cmake, python3, xxd, boost }:
+{ stdenv, fetchFromGitHub, cmake, python3, xxd, boost, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "cryptominisat";
-  version = "5.7.1";
+  version = "5.8.0";
 
   src = fetchFromGitHub {
     owner  = "msoos";
     repo   = "cryptominisat";
     rev    = version;
-    sha256 = "16lydnbd4rxfyabvvw7l4hbbby3yprcqqzrydd3n8rjbxibi4xyf";
+    sha256 = "00hmxdlyhn7pwk9jlvc5g0l5z5xqfchjzf5jgn3pkj9xhl8yqq50";
   };
 
+  patches = [ 
+    (fetchpatch {
+      # https://github.com/msoos/cryptominisat/pull/621
+      url = "https://github.com/msoos/cryptominisat/commit/11a97003b0bfbfb61ed6c4e640212110d390c28c.patch";
+      sha256 = "0hdy345bwcbxz0jl1jdxfa6mmfh77s2pz9rnncsr0jzk11b3j0cw";
+    })
+  ];
+
   buildInputs = [ python3 boost ];
   nativeBuildInputs = [ cmake xxd ];
 
diff --git a/pkgs/applications/science/logic/cvc4/default.nix b/pkgs/applications/science/logic/cvc4/default.nix
index a6e9bc69a12..54a2f022551 100644
--- a/pkgs/applications/science/logic/cvc4/default.nix
+++ b/pkgs/applications/science/logic/cvc4/default.nix
@@ -1,19 +1,20 @@
-{ stdenv, fetchurl, cln, gmp, swig, pkgconfig
-, readline, libantlr3c, boost, jdk, autoreconfHook
-, python3, antlr3_4
+{ stdenv, fetchFromGitHub, cmake, cln, gmp, git, swig, pkgconfig
+, readline, libantlr3c, boost, jdk, python3, antlr3_4
 }:
 
 stdenv.mkDerivation rec {
   pname = "cvc4";
-  version = "1.6";
+  version = "1.8";
 
-  src = fetchurl {
-    url = "https://cvc4.cs.stanford.edu/downloads/builds/src/cvc4-${version}.tar.gz";
-    sha256 = "1iw793zsi48q91lxpf8xl8lnvv0jsj4whdad79rakywkm1gbs62w";
+  src = fetchFromGitHub {
+    owner  = "cvc4";
+    repo   = "cvc4";
+    rev    = version;
+    sha256 = "1rhs4pvzaa1wk00czrczp58b2cxfghpsnq534m0l3snnya2958jp";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ gmp cln readline swig libantlr3c antlr3_4 boost jdk python3 ];
+  nativeBuildInputs = [ pkgconfig cmake ];
+  buildInputs = [ gmp git python3.pkgs.toml cln readline swig libantlr3c antlr3_4 boost jdk python3 ];
   configureFlags = [
     "--enable-language-bindings=c,c++,java"
     "--enable-gpl"
@@ -30,6 +31,10 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     patchShebangs ./src/
   '';
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Production"
+  ];
+
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/science/logic/drat-trim/default.nix b/pkgs/applications/science/logic/drat-trim/default.nix
index 4099236e628..81e20df3342 100644
--- a/pkgs/applications/science/logic/drat-trim/default.nix
+++ b/pkgs/applications/science/logic/drat-trim/default.nix
@@ -1,13 +1,14 @@
 { stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation {
-  name = "drat-trim-2017-08-31";
+  pname = "drat-trim-unstable";
+  version = "2020-06-05";
 
   src = fetchFromGitHub {
     owner = "marijnheule";
     repo = "drat-trim";
-    rev = "37ac8f874826ffa3500a00698910e137498defac";
-    sha256 = "1m9q47dfnvdli1z3kb1jvvbm0dgaw725k1aw6h9w00bggqb91bqh";
+    rev = "9afad0f7156a1e9c6ce19dce5d72cf1cb9a3ef27";
+    sha256 = "1zq585igfaknwqbvv2cji744016zxadbvr0ifr5l6yq13m0vvn3b";
   };
 
   postPatch = ''
@@ -15,7 +16,7 @@ stdenv.mkDerivation {
   '';
 
   installPhase = ''
-    install -Dt $out/bin drat-trim
+    install -Dt $out/bin drat-trim lrat-check
   '';
 
   meta = with stdenv.lib; {
@@ -31,6 +32,10 @@ stdenv.mkDerivation {
       annual SAT Competition in recent years, in order to check
       competing SAT solvers' work when they claim that a SAT instance
       is unsatisfiable.
+
+      This package also contains the related tool LRAT-check, which checks a
+      proof format called LRAT which extends DRAT with hint statements to speed
+      up the checking process.
     '';
     homepage = "https://www.cs.utexas.edu/~marijn/drat-trim/";
     license = licenses.mit;
diff --git a/pkgs/applications/science/logic/eprover/default.nix b/pkgs/applications/science/logic/eprover/default.nix
index f19d7e35c3e..a3844dc3700 100644
--- a/pkgs/applications/science/logic/eprover/default.nix
+++ b/pkgs/applications/science/logic/eprover/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "eprover";
-  version = "2.4";
+  version = "2.5";
 
   src = fetchurl {
     url = "https://wwwlehre.dhbw-stuttgart.de/~sschulz/WORK/E_DOWNLOAD/V_${version}/E.tgz";
-    sha256 = "1xn5yypy6w36amsb3kvj1srlbv6v5dl51k64cd264asz2n469dxw";
+    sha256 = "0jj0zkiqpcx9xp16spkskrv3jycprz7jg1g97i67j43c4yvxylwa";
   };
 
   buildInputs = [ which ];
diff --git a/pkgs/applications/science/logic/fast-downward/default.nix b/pkgs/applications/science/logic/fast-downward/default.nix
index ed757e444b7..a4654209537 100644
--- a/pkgs/applications/science/logic/fast-downward/default.nix
+++ b/pkgs/applications/science/logic/fast-downward/default.nix
@@ -1,12 +1,13 @@
 { stdenv, lib, fetchhg, cmake, which, python3, osi, cplex }:
 
 stdenv.mkDerivation {
-  name = "fast-downward-2019-05-13";
+  version = "19.12";
+  pname = "fast-downward";
 
   src = fetchhg {
     url = "http://hg.fast-downward.org/";
-    rev = "090f5df5d84a";
-    sha256 = "14pcjz0jfzx5269axg66iq8js7lm2w3cnqrrhhwmz833prjp945g";
+    rev = "41688a4f16b3";
+    sha256 = "08m4k1mkx4sz7c2ab7xh7ip6b67zxv7kl68xrvwa83xw1yigqkna";
   };
 
   nativeBuildInputs = [ cmake which ];
@@ -17,19 +18,22 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
+  configurePhase = ''
+    python build.py release
+  '';
+
   postPatch = ''
-    cd src
     # Needed because the package tries to be too smart.
     export CC="$(which $CC)"
     export CXX="$(which $CXX)"
   '';
 
   installPhase = ''
-    install -Dm755 bin/downward $out/libexec/fast-downward/downward
-    cp -r ../translate $out/libexec/fast-downward/
-    install -Dm755 ../../fast-downward.py $out/bin/fast-downward
+    install -Dm755 builds/release/bin/downward $out/libexec/fast-downward/downward
+    cp -r builds/release/bin/translate $out/libexec/fast-downward/
+    install -Dm755 fast-downward.py $out/bin/fast-downward
     mkdir -p $out/${python3.sitePackages}
-    cp -r ../../driver $out/${python3.sitePackages}
+    cp -r driver $out/${python3.sitePackages}
 
     wrapPythonProgramsIn $out/bin "$out $pythonPath"
     wrapPythonProgramsIn $out/libexec/fast-downward/translate "$out $pythonPath"
@@ -43,13 +47,16 @@ stdenv.mkDerivation {
       echo "Moving $i to $dest"
       mv "$i" "$dest"
     done
+
+    substituteInPlace $out/${python3.sitePackages}/driver/arguments.py \
+      --replace 'args.build = "release"' "args.build = \"$out/libexec/fast-downward\""
   '';
 
   meta = with stdenv.lib; {
     description = "A domain-independent planning system";
     homepage = "http://www.fast-downward.org/";
     license = licenses.gpl3Plus;
-    platforms = platforms.linux;
+    platforms = with platforms; (linux ++ darwin);
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/pkgs/applications/science/logic/isabelle/default.nix b/pkgs/applications/science/logic/isabelle/default.nix
index d2e49d81783..a12d75eabbe 100644
--- a/pkgs/applications/science/logic/isabelle/default.nix
+++ b/pkgs/applications/science/logic/isabelle/default.nix
@@ -3,18 +3,18 @@
 
 stdenv.mkDerivation rec {
   pname = "isabelle";
-  version = "2018";
+  version = "2020";
 
   dirname = "Isabelle${version}";
 
   src = if stdenv.isDarwin
     then fetchurl {
-      url = "http://isabelle.in.tum.de/website-${dirname}/dist/${dirname}.dmg";
-      sha256 = "0jwnvsf5whklq14ihaxs7b9nbic94mm56nvxljrdbvl6y628j9r5";
+      url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_macos.tar.gz";
+      sha256 = "1sfr5filsaqj93g5y4p9n8g5652dhr4whj25x4lifdxr2pp560xx";
     }
     else fetchurl {
       url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_linux.tar.gz";
-      sha256 = "1928lwrw1v1p9s23kix30ncpqm8djmrnjixj82f3ni2a8sc3hrsp";
+      sha256 = "1bibabhlsvf6qsjjkgxcpq3cvl1z7r8yfcgqbhbvsiv69n3gyfk3";
     };
 
   buildInputs = [ perl polyml z3 ]
@@ -42,14 +42,14 @@ stdenv.mkDerivation rec {
       ML_SOURCES="\$POLYML_HOME/src"
     EOF
 
-    cat >contrib/jdk/etc/settings <<EOF
+    cat >contrib/jdk*/etc/settings <<EOF
       ISABELLE_JAVA_PLATFORM=${stdenv.system}
       ISABELLE_JDK_HOME=${java}
     EOF
 
     echo ISABELLE_LINE_EDITOR=${rlwrap}/bin/rlwrap >>etc/settings
 
-    for comp in contrib/jdk contrib/polyml-* contrib/z3-*; do
+    for comp in contrib/jdk* contrib/polyml-* contrib/z3-*; do
       rm -rf $comp/x86*
     done
     '' + (if ! stdenv.isLinux then "" else ''
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
     bin/isabelle install $out/bin
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A generic proof assistant";
 
     longDescription = ''
@@ -74,9 +74,9 @@ stdenv.mkDerivation rec {
       to be expressed in a formal language and provides tools for proving those
       formulas in a logical calculus.
     '';
-    homepage = "http://isabelle.in.tum.de/";
-    license = "LGPL";
-    maintainers = [ stdenv.lib.maintainers.jwiegley ];
-    platforms = stdenv.lib.platforms.linux;
+    homepage = "https://isabelle.in.tum.de/";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.jwiegley ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/science/logic/lean/default.nix b/pkgs/applications/science/logic/lean/default.nix
index 886ecdb76ce..32a75cabc13 100644
--- a/pkgs/applications/science/logic/lean/default.nix
+++ b/pkgs/applications/science/logic/lean/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lean";
-  version = "3.16.5";
+  version = "3.19.0";
 
   src = fetchFromGitHub {
     owner  = "leanprover-community";
     repo   = "lean";
     rev    = "v${version}";
-    sha256 = "0s1ay6qgpkxhygfbfrl1cw2pd8bpgw2dw71rzhza20ndqwk8nqs5";
+    sha256 = "1dybq6104vc62x620izgblfd8dqc4ynaiw8ml07km78lq38anm6v";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/logic/ltl2ba/default.nix b/pkgs/applications/science/logic/ltl2ba/default.nix
index 02e9844115e..b5d13db3b9a 100644
--- a/pkgs/applications/science/logic/ltl2ba/default.nix
+++ b/pkgs/applications/science/logic/ltl2ba/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ltl2ba";
-  version = "1.2";
+  version = "1.3";
 
   src = fetchurl {
     url    = "http://www.lsv.ens-cachan.fr/~gastin/ltl2ba/${pname}-${version}.tar.gz";
-    sha256 = "0vzv5g7v87r41cvdafxi6yqnk7glzxrzgavy8213k59f6v11dzlx";
+    sha256 = "1bz9gjpvby4mnvny0nmxgd81rim26mqlcnjlznnxxk99575pfa4i";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/science/logic/mcy/default.nix b/pkgs/applications/science/logic/mcy/default.nix
index a9366d56058..eba910e07eb 100644
--- a/pkgs/applications/science/logic/mcy/default.nix
+++ b/pkgs/applications/science/logic/mcy/default.nix
@@ -7,31 +7,38 @@ let
 in
 stdenv.mkDerivation {
   pname = "mcy";
-  version = "2020.03.21";
+  version = "2020.08.03";
 
   src = fetchFromGitHub {
     owner  = "YosysHQ";
     repo   = "mcy";
-    rev    = "bac92b8aad9bf24714fda70d3750bb50d6d96177";
-    sha256 = "0mmg6zd5cbn8g0am9c3naamg0lq67yyy117fzn2ydigcyia7vmnp";
+    rev    = "62048e69df13f8e03670424626755ae8ef4c36ff";
+    sha256 = "15xxgzx1zxzx5kshqyrxnfx33cz6cjzxcdcn6z98jhs9bwyvf96f";
   };
 
   buildInputs = [ python ];
   patchPhase = ''
+    chmod +x scripts/create_mutated.sh
+    patchShebangs .
+
     substituteInPlace mcy.py \
       --replace yosys '${yosys}/bin/yosys' \
       --replace 'os.execvp("mcy-dash"' "os.execvp(\"$out/bin/mcy-dash\""
     substituteInPlace mcy-dash.py \
-      --replace 'app.run(debug=True)' 'app.run(host="0.0.0.0",debug=True)'
+      --replace 'app.run(debug=True)' 'app.run(host="0.0.0.0",debug=True)' \
+      --replace 'subprocess.Popen(["mcy"' "subprocess.Popen([\"$out/bin/mcy\""
+    substituteInPlace scripts/create_mutated.sh \
+      --replace yosys '${yosys}/bin/yosys'
   '';
 
   # the build needs a bit of work...
   buildPhase = "true";
   installPhase = ''
-    mkdir -p $out/bin $out/share/mcy/dash
+    mkdir -p $out/bin $out/share/mcy/{dash,scripts}
     install mcy.py      $out/bin/mcy      && chmod +x $out/bin/mcy
     install mcy-dash.py $out/bin/mcy-dash && chmod +x $out/bin/mcy-dash
-    cp -r dash/. $out/share/mcy/dash/.
+    cp -r dash/.    $out/share/mcy/dash/.
+    cp -r scripts/. $out/share/mcy/scripts/.
   '';
 
   meta = {
diff --git a/pkgs/applications/science/logic/ott/default.nix b/pkgs/applications/science/logic/ott/default.nix
index fa2ad9c4abc..4f1b984b995 100644
--- a/pkgs/applications/science/logic/ott/default.nix
+++ b/pkgs/applications/science/logic/ott/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ott";
-  version = "0.30";
+  version = "0.31";
 
   src = fetchFromGitHub {
     owner = "ott-lang";
     repo = "ott";
     rev = version;
-    sha256 = "16bxfnm30z94x36vr8vs6zd6fj55vnb7aypjl6hf7clk42040brc";
+    sha256 = "0l81126i2qkz11fs5yrjdgymnqgjcs5avb7f951h61yh1s68jpnn";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/science/logic/proverif/default.nix b/pkgs/applications/science/logic/proverif/default.nix
index 6a9367b30aa..6acae2bcb76 100644
--- a/pkgs/applications/science/logic/proverif/default.nix
+++ b/pkgs/applications/science/logic/proverif/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "proverif";
-  version = "2.01";
+  version = "2.02pl1";
 
   src = fetchurl {
     url    = "http://prosecco.gforge.inria.fr/personal/bblanche/proverif/proverif${version}.tar.gz";
-    sha256 = "01wp5431c77z0aaa99h8bnm5yhr6jslpqc8iyg0a7gxfqnb19gxi";
+    sha256 = "1jmzfpx0hdgfmkq0jp6i3k5av9xxgndjaj743wfy37svn0ga4jjx";
   };
 
   buildInputs = with ocamlPackages; [ ocaml findlib lablgtk ];
diff --git a/pkgs/applications/science/logic/sad/default.nix b/pkgs/applications/science/logic/sad/default.nix
index f1066abf693..77613a13571 100644
--- a/pkgs/applications/science/logic/sad/default.nix
+++ b/pkgs/applications/science/logic/sad/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation {
     maintainers = [ stdenv.lib.maintainers.schmitthenner ];
     homepage = "http://nevidal.org/sad.en.html";
     platforms = stdenv.lib.platforms.linux;
+    broken = true;  # ghc-8.4.4 is gone from Nixpkgs
   };
 }
diff --git a/pkgs/applications/science/logic/symbiyosys/default.nix b/pkgs/applications/science/logic/symbiyosys/default.nix
index debdc56f035..9cf8b0845d4 100644
--- a/pkgs/applications/science/logic/symbiyosys/default.nix
+++ b/pkgs/applications/science/logic/symbiyosys/default.nix
@@ -1,20 +1,20 @@
 { stdenv, fetchFromGitHub
 , bash, python3, yosys
-, yices, boolector, aiger
+, yices, boolector, z3, aiger
 }:
 
 stdenv.mkDerivation {
   pname = "symbiyosys";
-  version = "2020.05.18";
+  version = "2020.08.22";
 
   src = fetchFromGitHub {
     owner  = "YosysHQ";
     repo   = "SymbiYosys";
-    rev    = "13fef4a710d0e2cf0f109ca75a94fb7253ba6838";
-    sha256 = "152nyxddiqbxvbd06cmwavvgi931v6i35zj9sh3z04m737grvb3d";
+    rev    = "33b0bb7d836fe2a73dc7b10587222f2a718beef4";
+    sha256 = "03rbrbwsji1sqcp2yhgbc0fca04zsryv2g4izjhdzv64nqjzjyhn";
   };
 
-  buildInputs = [ python3 ];
+  buildInputs = [ ];
   patchPhase = ''
     patchShebangs .
 
@@ -26,14 +26,15 @@ stdenv.mkDerivation {
     # Fix various executable references
     substituteInPlace sbysrc/sby_core.py \
       --replace '"/usr/bin/env", "bash"' '"${bash}/bin/bash"' \
-      --replace ': "btormc"'       ': "${boolector}/bin/btormc"' \
-      --replace ': "yosys"'        ': "${yosys}/bin/yosys"' \
-      --replace ': "yosys-smtbmc"' ': "${yosys}/bin/yosys-smtbmc"' \
-      --replace ': "yosys-abc"'    ': "${yosys}/bin/yosys-abc"' \
-      --replace ': "aigbmc"'       ': "${aiger}/bin/aigbmc"' \
+      --replace ', "btormc"'             ', "${boolector}/bin/btormc"' \
+      --replace ', "aigbmc"'             ', "${aiger}/bin/aigbmc"'
+
+    substituteInPlace sbysrc/sby_core.py \
+      --replace '##yosys-program-prefix##' '"${yosys}/bin/"'
   '';
 
   buildPhase = "true";
+
   installPhase = ''
     mkdir -p $out/bin $out/share/yosys/python3
 
@@ -43,6 +44,10 @@ stdenv.mkDerivation {
     chmod +x $out/bin/sby
   '';
 
+  doCheck = false; # not all provers are yet packaged...
+  checkInputs = [ python3 yosys boolector yices z3 aiger ];
+  checkPhase = "make test";
+
   meta = {
     description = "Tooling for Yosys-based verification flows";
     homepage    = "https://symbiyosys.readthedocs.io/";
diff --git a/pkgs/applications/science/logic/vampire/default.nix b/pkgs/applications/science/logic/vampire/default.nix
index e5941a35fd5..dca03823e9e 100644
--- a/pkgs/applications/science/logic/vampire/default.nix
+++ b/pkgs/applications/science/logic/vampire/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vampire";
-  version = "4.4";
+  version = "4.5.1";
 
   src = fetchFromGitHub {
     owner = "vprover";
     repo = "vampire";
     rev = version;
-    sha256 = "0v2fdfnk7l5xr5c4y54r25g1nbp4vi85zv29nbklh3r7aws3w9q1";
+    sha256 = "0q9gqyq96amdnhxgwjyv0r2sxakikp3jvmizgj2h0spfz643p8db";
   };
 
   buildInputs = [ z3 zlib ];
diff --git a/pkgs/applications/science/logic/why3/configure.patch b/pkgs/applications/science/logic/why3/configure.patch
deleted file mode 100644
index 3eebf3cf165..00000000000
--- a/pkgs/applications/science/logic/why3/configure.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/configure b/configure
---- a/configure
-+++ b/configure
-@@ -4029,7 +4029,6 @@ fi
- 
- if test "$USEOCAMLFIND" = yes; then
-    OCAMLFINDLIB=$(ocamlfind printconf stdlib)
--   OCAMLFIND=$(which ocamlfind)
-    if test "$OCAMLFINDLIB" != "$OCAMLLIB"; then
-    USEOCAMLFIND=no;
-    echo "but your ocamlfind is not compatible with your ocamlc:"
diff --git a/pkgs/applications/science/logic/why3/default.nix b/pkgs/applications/science/logic/why3/default.nix
index cd44dadcedc..b9bd2172bb1 100644
--- a/pkgs/applications/science/logic/why3/default.nix
+++ b/pkgs/applications/science/logic/why3/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation {
   pname = "why3";
-  version = "1.2.1";
+  version = "1.3.1";
 
   src = fetchurl {
-    url = "https://gforge.inria.fr/frs/download.php/file/38185/why3-1.2.1.tar.gz";
-    sha256 = "014gkwisjp05x3342zxkryb729p02ngx1hcjjsrplpa53jzgz647";
+    url = "https://gforge.inria.fr/frs/download.php/file/38291/why3-1.3.1.tar.gz";
+    sha256 = "16zcrc60zz2j3gd3ww93z2z9x2jkxb3kr57y8i5rcgmacy7mw3bv";
   };
 
   buildInputs = with ocamlPackages; [
@@ -29,15 +29,6 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
-  # Remove unnecessary call to which
-  patches = [ ./configure.patch
-    # Compatibility with js_of_ocaml 3.5
-    (fetchpatch {
-      url = "https://gitlab.inria.fr/why3/why3/commit/269ab313382fe3e64ef224813937314748bf7cf0.diff";
-      sha256 = "0i92wdnbh8pihvl93ac0ma1m5g95jgqqqj4kw6qqvbbjjqdgvzwa";
-    })
-  ];
-
   postPatch = ''
     substituteInPlace Makefile.in --replace js_of_ocaml.ppx js_of_ocaml-ppx
   '';
diff --git a/pkgs/applications/science/logic/z3/default.nix b/pkgs/applications/science/logic/z3/default.nix
index 170a56b95b9..350a4f99af8 100644
--- a/pkgs/applications/science/logic/z3/default.nix
+++ b/pkgs/applications/science/logic/z3/default.nix
@@ -1,32 +1,41 @@
-{ stdenv, fetchFromGitHub, python, fixDarwinDylibNames }:
+{ stdenv, fetchFromGitHub, python, fixDarwinDylibNames
+, javaBindings ? false
+, pythonBindings ? true
+, jdk ? null
+}:
+
+assert javaBindings -> jdk != null;
+
+with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "z3";
-  version = "4.8.7";
+  version = "4.8.8";
 
   src = fetchFromGitHub {
     owner  = "Z3Prover";
     repo   = pname;
     rev    = "z3-${version}";
-    sha256 = "0hprcdwhhyjigmhhk6514m71bnmvqci9r8gglrqilgx424r6ff7q";
+    sha256 = "1rn538ghqwxq0v8i6578j8mflk6fyv0cp4hjfqynzvinjbps56da";
   };
 
-  buildInputs = [ python fixDarwinDylibNames ];
+  buildInputs = [ python fixDarwinDylibNames ] ++ optional javaBindings jdk;
   propagatedBuildInputs = [ python.pkgs.setuptools ];
   enableParallelBuilding = true;
 
-  configurePhase = ''
-    ${python.interpreter} scripts/mk_make.py --prefix=$out --python --pypkgdir=$out/${python.sitePackages}
-    cd build
-  '';
+  configurePhase = concatStringsSep " " (
+    [ "${python.interpreter} scripts/mk_make.py --prefix=$out" ]
+    ++ optional javaBindings   "--java"
+    ++ optional pythonBindings "--python --pypkgdir=$out/${python.sitePackages}"
+  ) + "\n" + "cd build";
 
   postInstall = ''
-    mkdir -p $dev $lib $python/lib
-
-    mv $out/lib/python*  $python/lib/
-    mv $out/lib          $lib/lib
-    mv $out/include      $dev/include
-
+    mkdir -p $dev $lib
+    mv $out/lib     $lib/lib
+    mv $out/include $dev/include
+  '' + optionalString pythonBindings ''
+    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}
   '';
 
@@ -37,6 +46,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://github.com/Z3Prover/z3";
     license     = stdenv.lib.licenses.mit;
     platforms   = stdenv.lib.platforms.x86_64;
-    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+    maintainers = with stdenv.lib.maintainers; [ thoughtpolice ttuegel ];
   };
 }
diff --git a/pkgs/applications/science/machine-learning/finalfrontier/default.nix b/pkgs/applications/science/machine-learning/finalfrontier/default.nix
new file mode 100644
index 00000000000..f1a2dbaa54f
--- /dev/null
+++ b/pkgs/applications/science/machine-learning/finalfrontier/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, installShellFiles
+, pkg-config
+, libiconv
+, openssl
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "finalfrontier";
+  version = "0.9.4";
+
+  src = fetchFromGitHub {
+    owner = "finalfusion";
+    repo = pname;
+    rev = version;
+    sha256 = "1lvwv238p8hrl4sc5pmnvaargl2dd25p44gxl3kibq5ng03afd0n";
+  };
+
+  cargoSha256 = "1ibn22v24brdlrar6j7fryiwimbbw7byak265hrw7a5agf1799x0";
+
+  nativeBuildInputs = [
+    installShellFiles
+    pkg-config
+  ];
+
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [
+    libiconv
+    Security
+  ];
+
+  postInstall = ''
+    installManPage man/*.1
+
+    # Install shell completions
+    for shell in bash fish zsh; do
+      $out/bin/finalfrontier completions $shell > finalfrontier.$shell
+    done
+    installShellCompletion finalfrontier.{bash,fish,zsh}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Utility for training word and subword embeddings";
+    homepage = "https://github.com/finalfusion/finalfrontier/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix b/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
new file mode 100644
index 00000000000..eeeafdd3d98
--- /dev/null
+++ b/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, installShellFiles
+, blas
+, gfortran
+, lapack
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "finalfusion-utils";
+  version = "0.12.0";
+
+  src = fetchFromGitHub {
+    owner = "finalfusion";
+    repo = pname;
+    rev = version;
+    sha256 = "0gxcjrhfa86kz5qmdf5h278ydc3nc0nfj61brnykb723mg45jj41";
+  };
+
+  cargoSha256 = "03p786hh54zql61vhmsqcdgvz23v2rm12cgwf7clfmk6a6yj6ibx";
+
+  # Enables build against a generic BLAS.
+  cargoBuildFlags = [
+    "--features"
+    "netlib"
+  ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildInputs = [
+    blas
+    gfortran.cc.lib
+    lapack
+  ] ++ lib.optionals stdenv.isDarwin [
+    Security
+  ];
+
+  postInstall = ''
+    # Install shell completions
+    for shell in bash fish zsh; do
+      $out/bin/finalfusion completions $shell > finalfusion.$shell
+    done
+    installShellCompletion finalfusion.{bash,fish,zsh}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Utility for converting, quantizing, and querying word embeddings";
+    homepage = "https://github.com/finalfusion/finalfusion-utils/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/pkgs/applications/science/machine-learning/labelimg/default.nix b/pkgs/applications/science/machine-learning/labelimg/default.nix
index a952fb559ce..05c56b0b095 100644
--- a/pkgs/applications/science/machine-learning/labelimg/default.nix
+++ b/pkgs/applications/science/machine-learning/labelimg/default.nix
@@ -1,20 +1,31 @@
-{ stdenv, python2Packages, fetchurl }:
-  python2Packages.buildPythonApplication rec {
+{ stdenv, python3Packages, fetchFromGitHub, qt5 }:
+  python3Packages.buildPythonApplication rec {
     pname = "labelImg";
-    version = "1.8.1";
-    src = fetchurl {
-      url = "https://github.com/tzutalin/labelImg/archive/v${version}.tar.gz";
-      sha256 = "1banpkpbrny1jx3zsgs544xai62z5yvislbq782a5r47gv2f2k4a";
+    version = "1.8.3";
+    src = fetchFromGitHub {
+      owner = "tzutalin";
+      repo = "labelImg";
+      rev = "v${version}";
+      sha256 = "07v106fzlmxrbag4xm06m4mx9m0gckb27vpwsn7sap1bbgc1pap5";
     };
-    nativeBuildInputs = with python2Packages; [
-      pyqt4
+    nativeBuildInputs = with python3Packages; [
+      pyqt5
+      qt5.wrapQtAppsHook
     ];
-    propagatedBuildInputs = with python2Packages; [
-      pyqt4
+    propagatedBuildInputs = with python3Packages; [
+      pyqt5
       lxml
+      sip
     ];
     preBuild = ''
-      make qt4py2
+      make qt5py3
+    '';
+    postInstall = ''
+      cp libs/resources.py $out/${python3Packages.python.sitePackages}/libs
+    '';
+    dontWrapQtApps = true;
+    preFixup = ''
+      makeWrapperArgs+=("''${qtWrapperArgs[@]}")
     '';
     meta = with stdenv.lib; {
       description = "LabelImg is a graphical image annotation tool and label object bounding boxes in images";
diff --git a/pkgs/applications/science/math/R/default.nix b/pkgs/applications/science/math/R/default.nix
index 52da3b4a1ac..717b240c1cc 100644
--- a/pkgs/applications/science/math/R/default.nix
+++ b/pkgs/applications/science/math/R/default.nix
@@ -12,11 +12,11 @@
 assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
-  name = "R-4.0.0";
+  name = "R-4.0.2";
 
   src = fetchurl {
     url = "https://cran.r-project.org/src/base/R-4/${name}.tar.gz";
-    sha256 = "0h1995smlyiyhx7gpg9paxsfqrcn6g9bbp5h9r47i6an3clv1gh6";
+    sha256 = "0xdy3dy2bzdiba8z94hjykyra8si8a5q15s0bri7c26scjrymg6k";
   };
 
   dontUseImakeConfigure = true;
diff --git a/pkgs/applications/science/math/calculix/calculix.patch b/pkgs/applications/science/math/calculix/calculix.patch
index 5b8f492a8e7..2334d54711e 100644
--- a/pkgs/applications/science/math/calculix/calculix.patch
+++ b/pkgs/applications/science/math/calculix/calculix.patch
@@ -1,16 +1,7 @@
-diff --git a/ccx_2.15/src/Makefile b/ccx_2.15/src/Makefile
-index 9cab2fc..6e977b8 100755
---- a/ccx_2.15/src/Makefile
-+++ b/ccx_2.15/src/Makefile
-@@ -1,6 +1,6 @@
- 
- CFLAGS = -Wall -O3  -I ../../../SPOOLES.2.2 -DARCH="Linux" -DSPOOLES -DARPACK -DMATRIXSTORAGE -DNETWORKOUT
--FFLAGS = -Wall -O3 
-+FFLAGS = -Wall -O3
- 
- CC=cc
- FC=gfortran
-@@ -18,15 +18,10 @@ OCCXF = $(SCCXF:.f=.o)
+diff -Naur a/ccx_2.17/src/Makefile b/ccx_2.17/src/Makefile
+--- a/ccx_2.17/src/Makefile	2020-07-23 21:41:38.507761972 +0200
++++ b/ccx_2.17/src/Makefile	2020-08-22 16:53:50.004938281 +0200
+@@ -18,15 +18,10 @@
  OCCXC = $(SCCXC:.c=.o)
  OCCXMAIN = $(SCCXMAIN:.c=.o)
  
@@ -22,10 +13,10 @@ index 9cab2fc..6e977b8 100755
 -	../../../ARPACK/libarpack_INTEL.a \
 -       -lpthread -lm -lc
 -
--ccx_2.15: $(OCCXMAIN) ccx_2.15.a  $(LIBS)
--	./date.pl; $(CC) $(CFLAGS) -c ccx_2.15.c; $(FC)  -Wall -O3 -o $@ $(OCCXMAIN) ccx_2.15.a $(LIBS)
-+ccx_2.15: $(OCCXMAIN) ccx_2.15.a
-+	$(CC) $(CFLAGS) -c ccx_2.15.c; $(FC)  -Wall -O3 -o $@ $(OCCXMAIN) ccx_2.15.a $(LIBS)
+-ccx_2.17: $(OCCXMAIN) ccx_2.17.a  $(LIBS)
+-	./date.pl; $(CC) $(CFLAGS) -c ccx_2.17.c; $(FC)  -Wall -O2 -o $@ $(OCCXMAIN) ccx_2.17.a $(LIBS)
++ccx_2.17: $(OCCXMAIN) ccx_2.17.a
++	$(CC) $(CFLAGS) -c ccx_2.17.c; $(FC)  -Wall -O2 -o $@ $(OCCXMAIN) ccx_2.17.a $(LIBS)
  
- ccx_2.15.a: $(OCCXF) $(OCCXC)
+ ccx_2.17.a: $(OCCXF) $(OCCXC)
  	ar vr $@ $?
diff --git a/pkgs/applications/science/math/calculix/default.nix b/pkgs/applications/science/math/calculix/default.nix
index 44882594550..e37e9d0910c 100644
--- a/pkgs/applications/science/math/calculix/default.nix
+++ b/pkgs/applications/science/math/calculix/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "calculix";
-  version = "2.15";
+  version = "2.17";
 
   src = fetchurl {
     url = "http://www.dhondt.de/ccx_${version}.src.tar.bz2";
-    sha256 = "0d4axfxgm3ag4p2vx9rjcky7c122k99a2nhv1jv53brm35rblzdw";
+    sha256 = "0l3fizxfdj2mpdp62wnk9v47q2yc3cy39fpsm629z7bjmba8lw6a";
   };
 
   nativeBuildInputs = [ gfortran ];
diff --git a/pkgs/applications/science/math/geogebra/default.nix b/pkgs/applications/science/math/geogebra/default.nix
index 1dd92267a83..5cebef83a4a 100644
--- a/pkgs/applications/science/math/geogebra/default.nix
+++ b/pkgs/applications/science/math/geogebra/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "geogebra";
-  version = "5-0-574-0";
+  version = "5-0-593-0";
 
   preferLocalBuild = true;
 
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
       "https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
       "http://web.archive.org/https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
     ];
-    sha256 = "0jbci4spqkf33yb079lsnsc684y4mdf1p8lm9r0037av8jlsrgrc";
+    sha256 = "d84c27a3299e6df08881733d22215a18decedcba4c2d97a9e5424c39cd57db35";
   };
 
   srcIcon = fetchurl {
diff --git a/pkgs/applications/science/math/geogebra/geogebra6.nix b/pkgs/applications/science/math/geogebra/geogebra6.nix
new file mode 100644
index 00000000000..65caff82ead
--- /dev/null
+++ b/pkgs/applications/science/math/geogebra/geogebra6.nix
@@ -0,0 +1,46 @@
+{ stdenv, unzip, fetchurl, electron_6, makeWrapper, geogebra }:
+stdenv.mkDerivation rec{
+
+  name = "geogebra-${version}";
+  version = "6-0-600-0";
+
+  src = fetchurl {
+    urls = [
+        "https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
+        "https://web.archive.org/web/20200904093945/https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
+      ];
+    sha256 = "1l49rvfkil2cz6r7sa2mi0p6hvb6p66jv3x6xj8hjqls4l3sfhkm";
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [
+    unzip
+    makeWrapper
+  ];
+
+  unpackPhase = ''
+    unzip $src
+  '';
+
+  installPhase = ''
+    mkdir -p $out/libexec/geogebra/ $out/bin
+    cp -r GeoGebra-linux-x64/{resources,locales} "$out/"
+    makeWrapper ${stdenv.lib.getBin electron_6}/bin/electron $out/bin/geogebra --add-flags "$out/resources/app"
+    install -Dm644 "${desktopItem}/share/applications/"* \
+      -t $out/share/applications/
+
+    install -Dm644 "${srcIcon}" \
+      "$out/share/icons/hicolor/scalable/apps/geogebra.svg"
+  '';
+
+  srcIcon = geogebra.srcIcon;
+
+  desktopItem = geogebra.desktopItem;
+  meta = with stdenv.lib; geogebra.meta // {
+    license = licenses.geogebra;
+    maintainers = with maintainers; [ voidless ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/science/math/gfan/default.nix b/pkgs/applications/science/math/gfan/default.nix
index 72d1a548c53..adac92f376c 100644
--- a/pkgs/applications/science/math/gfan/default.nix
+++ b/pkgs/applications/science/math/gfan/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "02pihqb1lb76a0xbfwjzs1cd6ay3ldfxsm8dvsbl6qs3vkjxax56";
   };
 
-  patchPhase = stdenv.lib.optionalString stdenv.isDarwin ''
+  patchPhase = stdenv.lib.optionalString stdenv.cc.isClang ''
     substituteInPlace Makefile --replace "-fno-guess-branch-probability" ""
   '';
 
diff --git a/pkgs/applications/science/math/mathematica/l10ns.nix b/pkgs/applications/science/math/mathematica/l10ns.nix
index c75c91be059..8ec6ac5048d 100644
--- a/pkgs/applications/science/math/mathematica/l10ns.nix
+++ b/pkgs/applications/science/math/mathematica/l10ns.nix
@@ -8,6 +8,12 @@ let allVersions = with lib; flip map
   # N.B. Versions in this list should be ordered from newest to oldest.
   [
     {
+      version = "12.1.1";
+      lang = "en";
+      language = "English";
+      sha256 = "02mk8gmv8idnakva1nc7r7mx8ld02lk7jgsj1zbn962aps3bhixd";
+    }
+    {
       version = "12.1.0";
       lang = "en";
       language = "English";
diff --git a/pkgs/applications/science/math/nasc/default.nix b/pkgs/applications/science/math/nasc/default.nix
index 002acbf3875..9d14df5a798 100644
--- a/pkgs/applications/science/math/nasc/default.nix
+++ b/pkgs/applications/science/math/nasc/default.nix
@@ -1,7 +1,9 @@
 { stdenv
 , fetchFromGitHub
-, fetchpatch
 , pkgconfig
+, python3
+, meson
+, ninja
 , vala
 , gtk3
 , glib
@@ -9,52 +11,67 @@
 , libsoup
 , gtksourceview
 , libgee
-, cmake
+, nix-update-script
+, webkitgtk
 , libqalculate
-, cln
+, intltool
+, gnuplot
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "nasc";
-  version = "0.5.4";
+  version = "0.7.5";
 
   src = fetchFromGitHub {
     owner = "parnold-x";
     repo = pname;
     rev = version;
-    sha256 = "036v3dx8yasp19j88lflibqnpfi5d0nk7qkcnr80zn1lvawf4wgn";
+    sha256 = "kSRc5RLkI6SBJirUYw6swZi8IJhaL3y74b2Zw8kh2XA=";
+    fetchSubmodules = true;
   };
 
-  patches = [
-    # fix build with gcc9
-    (fetchpatch {
-      url = "https://github.com/parnold-x/nasc/commit/46b9b80e228b6b86001bded45d85e073a9411549.patch";
-      sha256 = "1sm2aw0xhw2chk036r231nmp2f2ypxcmzggwljkn7wfzgg3h1mx3";
-    })
-  ];
-
   nativeBuildInputs = [
-    cmake
-    vala
+    glib # post_install.py
+    gtk3 # post_install.py
+    intltool # for libqalculate
+    meson
+    ninja
     pkgconfig
+    python3
+    vala
     wrapGAppsHook
   ];
 
   buildInputs = [
-    cln
-    libsoup
-    gtk3
     glib
+    gtk3
     gtksourceview
     libgee
-    libqalculate
     pantheon.elementary-icon-theme
     pantheon.granite
-  ];
+    webkitgtk
+    # We add libqalculate's runtime dependencies because nasc has it as a modified subproject.
+  ] ++ libqalculate.buildInputs ++ libqalculate.propagatedBuildInputs;
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+
+    # patch subproject. same code in libqalculate expression
+    substituteInPlace subprojects/libqalculate/libqalculate/Calculator-plot.cc \
+      --replace 'commandline = "gnuplot"' 'commandline = "${gnuplot}/bin/gnuplot"' \
+      --replace '"gnuplot - ' '"${gnuplot}/bin/gnuplot - '
+  '';
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
 
   meta = with stdenv.lib; {
-    description = "Do maths like a normal person";
+    description = "Do maths like a normal person, designed for elementary OS";
     longDescription = ''
       It’s an app where you do maths like a normal person. It lets you
       type whatever you want and smartly figures out what is math and
@@ -63,7 +80,7 @@ stdenv.mkDerivation rec {
       the equations it’s used in.
     '';
     homepage = "https://github.com/parnold-x/nasc";
-    maintainers = with maintainers; [ samdroid-apps ];
+    maintainers = pantheon.maintainers;
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
   };
diff --git a/pkgs/applications/science/math/nauty/default.nix b/pkgs/applications/science/math/nauty/default.nix
index c1d408213b9..d75fc9731cd 100644
--- a/pkgs/applications/science/math/nauty/default.nix
+++ b/pkgs/applications/science/math/nauty/default.nix
@@ -10,15 +10,13 @@ stdenv.mkDerivation rec {
     sha256 = "1nym0p2djws8ylkpr0kgpxfa6fxdlh46cmvz0gn5vd02jzgs0aww";
   };
   outputs = [ "out" "dev" ];
-  configureFlags = {
+  configureFlags = [
     # Prevent nauty from sniffing some cpu features. While those are very
     # widely available, it can lead to nasty bugs when they are not available:
     # https://groups.google.com/forum/#!topic/sage-packaging/Pe4SRDNYlhA
-    default        = [ "--disable-clz" "--disable-popcnt" ];
-    westmere       = [ "--disable-clz" ];
-    sandybridge    = [ "--disable-clz" ];
-    ivybridge      = [ "--disable-clz" ];
-  }.${stdenv.hostPlatform.platform.gcc.arch or "default"} or [];
+    "--${if stdenv.hostPlatform.sse4_2Support then "enable" else "disable"}-popcnt"
+    "--${if stdenv.hostPlatform.sse4_aSupport then "enable" else "disable"}-clz"
+  ];
   installPhase = ''
     mkdir -p "$out"/{bin,share/doc/nauty} "$dev"/{lib,include/nauty}
 
diff --git a/pkgs/applications/science/math/qalculate-gtk/default.nix b/pkgs/applications/science/math/qalculate-gtk/default.nix
index 213530b60a9..df622e7303d 100644
--- a/pkgs/applications/science/math/qalculate-gtk/default.nix
+++ b/pkgs/applications/science/math/qalculate-gtk/default.nix
@@ -2,17 +2,25 @@
 
 stdenv.mkDerivation rec {
   pname = "qalculate-gtk";
-  version = "3.8.0a";
+  version = "3.12.1";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "qalculate-gtk";
     rev = "v${version}";
-    sha256 = "0bjd61bbc5b2i09kz3ss01c0xmxrhmiv5wpbhhplkp3yhw2qrf3m";
+    sha256 = "0ylsxj9rn3dc1grn9w6jisci3ak0hxgbwzqp54azs3aj5cmvkfgg";
   };
 
   patchPhase = ''
-    substituteInPlace src/main.cc --replace 'getPackageDataDir().c_str()' \"$out/share\"
+    # The gnome-search-provider2.c file generated by gdbus-codegen depends
+    # on gio-unix-2.0, which is a Requires.private of gtk+-3.0,
+    # and private dependencies are dropped in our default patched pkg-config.
+    # https://github.com/Qalculate/qalculate-gtk/pull/178
+    # https://github.com/NixOS/nixpkgs/issues/292
+    substituteInPlace configure.ac --replace 'libxml-2.0' 'libxml-2.0 gio-unix-2.0'
+
+    # https://github.com/Qalculate/qalculate-gtk/pull/179
+    echo searchprovider.o: gnome-search-provider2.c >>src/Makefile.am
   '';
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/science/math/rofi-calc/default.nix b/pkgs/applications/science/math/rofi-calc/default.nix
index 84adb2358d2..40b2711ff65 100644
--- a/pkgs/applications/science/math/rofi-calc/default.nix
+++ b/pkgs/applications/science/math/rofi-calc/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rofi-calc";
-  version = "1.7";
+  version = "1.8";
 
   src = fetchFromGitHub {
     owner = "svenstaro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "046x2zpvza7n0m81s75qkvmnpkvsvvyqqqjxcqzj7by0llpqs7wa";
+    sha256 = "0vwb9c3xvd2cms6cw8j8parg7w4bsxvvrd1wgggr8sz2p8rrvy5p";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/math/wxmaxima/default.nix b/pkgs/applications/science/math/wxmaxima/default.nix
index a6afc95ac09..7a81a0d679a 100644
--- a/pkgs/applications/science/math/wxmaxima/default.nix
+++ b/pkgs/applications/science/math/wxmaxima/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wxmaxima";
-  version = "20.04.0";
+  version = "20.06.6";
 
   src = fetchFromGitHub {
     owner = "wxMaxima-developers";
     repo = "wxmaxima";
     rev = "Version-${version}";
-    sha256 = "0vrjxzfgmjdzm1rgl0crz4b4badl14jwh032y3xkcdvjl5j67lp3";
+    sha256 = "054f7n5kx75ng5j20rd5q27n9xxk03mrd7sbxyym1lsswzimqh4w";
   };
 
   buildInputs = [ wxGTK maxima gnome3.adwaita-icon-theme ];
diff --git a/pkgs/applications/science/math/yacas/default.nix b/pkgs/applications/science/math/yacas/default.nix
index c19d8f0fbc1..06aab669df5 100644
--- a/pkgs/applications/science/math/yacas/default.nix
+++ b/pkgs/applications/science/math/yacas/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yacas";
-  version = "1.8.0";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = "grzegorzmazur";
     repo = "yacas";
     rev = "v${version}";
-    sha256 = "0fwd98dwq6g0md3yhgyl30i377593b8rw6gsvffzvs11g3aqf1ga";
+    sha256 = "0dqgqvsb6ggr8jb3ngf0jwfkn6xwj2knhmvqyzx3amc74yd3ckqx";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/science/medicine/aliza/default.nix b/pkgs/applications/science/medicine/aliza/default.nix
index 279f602e3fd..b4e56591f9c 100644
--- a/pkgs/applications/science/medicine/aliza/default.nix
+++ b/pkgs/applications/science/medicine/aliza/default.nix
@@ -3,11 +3,11 @@
 with stdenv.lib;
 stdenv.mkDerivation {
   pname = "aliza";
-  version = "1.48.10";
+  version = "1.98.32";
   src = fetchurl {
     # See https://www.aliza-dicom-viewer.com/download
-    url = "https://drive.google.com/uc?export=download&id=16WEScARaSrzJpJkyGuOUxDF95eUwGyET";
-    sha256 = "1ls16cwd0fmb5axxmy9lgf8cqrf7g7swm26f0gr2vqp4z9bw6qn3";
+    url = "https://drive.google.com/uc?export=download&id=1nggavPhY_633T-AW9PdkcAgbWtzv3QKG";
+    sha256 = "00vbgv8ca9ckgkicyyngrb01yhhcqc8hygg2bls7b44c47hcc8zz";
     name = "aliza.rpm";
   };
 
diff --git a/pkgs/applications/science/misc/gplates/boostfix.patch b/pkgs/applications/science/misc/gplates/boostfix.patch
deleted file mode 100644
index e429600b709..00000000000
--- a/pkgs/applications/science/misc/gplates/boostfix.patch
+++ /dev/null
@@ -1,612 +0,0 @@
---- a/src/app-logic/ApplicationState.h
-+++ b/src/app-logic/ApplicationState.h
-@@ -33,6 +33,7 @@
- #include <boost/shared_ptr.hpp>

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "FeatureCollectionFileState.h"

- #include "Layer.h"

- #include "LayerTaskRegistry.h"

-@@ -48,6 +49,7 @@
- #include "model/ModelInterface.h"

- #include "model/types.h"

- #include "model/WeakReferenceCallback.h"

-+#endif

- 

- ////////////////////////////////////////////////////////////////////////////////////////////////

- // NOTE: Please use forward declarations (and boost::scoped_ptr) instead of including headers

---- a/src/app-logic/CoRegistrationLayerTask.h
-+++ b/src/app-logic/CoRegistrationLayerTask.h
-@@ -32,11 +32,13 @@
- #include <QObject>

- #include <QString>

- 

-+#ifndef Q_MOC_RUN

- #include "CoRegistrationLayerParams.h"

- #include "CoRegistrationLayerProxy.h"

- #include "LayerTask.h"

- 

- #include "model/FeatureCollectionHandle.h"

-+#endif

- 

- namespace GPlatesAppLogic

- {

---- a/src/app-logic/RasterLayerTask.h
-+++ b/src/app-logic/RasterLayerTask.h
-@@ -32,11 +32,13 @@
- #include <QObject>

- #include <QString>

- 

-+#ifndef Q_MOC_RUN

- #include "LayerTask.h"

- #include "RasterLayerParams.h"

- #include "RasterLayerProxy.h"

- 

- #include "model/FeatureCollectionHandle.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/app-logic/ReconstructGraph.h
-+++ b/src/app-logic/ReconstructGraph.h
-@@ -46,6 +46,7 @@
- #include <boost/lambda/construct.hpp>

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "FeatureCollectionFileState.h"

- #include "Layer.h"

- #include "Reconstruction.h"

-@@ -53,6 +54,7 @@
- 

- #include "model/FeatureCollectionHandle.h"

- #include "model/WeakReferenceCallback.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/app-logic/ReconstructLayerTask.h
-+++ b/src/app-logic/ReconstructLayerTask.h
-@@ -33,6 +33,7 @@
- #include <QObject>

- #include <QString>

- 

-+#ifndef Q_MOC_RUN

- #include "LayerTask.h"

- #include "ReconstructLayerProxy.h"

- #include "ReconstructLayerParams.h"

-@@ -42,6 +43,7 @@
- #include "maths/types.h"

- 

- #include "model/FeatureCollectionHandle.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/app-logic/ReconstructScalarCoverageLayerParams.h
-+++ b/src/app-logic/ReconstructScalarCoverageLayerParams.h
-@@ -30,6 +30,7 @@
- #include <boost/optional.hpp>

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "LayerParams.h"

- #include "ReconstructScalarCoverageLayerProxy.h"

- #include "ReconstructScalarCoverageParams.h"

-@@ -38,6 +39,7 @@
- #include "property-values/ValueObjectType.h"

- 

- #include "utils/SubjectObserverToken.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/app-logic/ReconstructScalarCoverageLayerTask.h
-+++ b/src/app-logic/ReconstructScalarCoverageLayerTask.h
-@@ -30,12 +30,14 @@
- #include <boost/shared_ptr.hpp>

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "LayerTask.h"

- #include "ReconstructScalarCoverageLayerParams.h"

- #include "ReconstructScalarCoverageLayerProxy.h"

- #include "ScalarCoverageFeatureProperties.h"

- 

- #include "model/FeatureCollectionHandle.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/app-logic/TopologyNetworkResolverLayerTask.h
-+++ b/src/app-logic/TopologyNetworkResolverLayerTask.h
-@@ -33,6 +33,7 @@
- #include <QObject>

- #include <QString>

- 

-+#ifndef Q_MOC_RUN

- #include "LayerParams.h"

- #include "LayerTask.h"

- #include "ReconstructLayerProxy.h"

-@@ -41,6 +42,7 @@
- #include "TopologyNetworkResolverLayerProxy.h"

- 

- #include "model/FeatureCollectionHandle.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/app-logic/VelocityFieldCalculatorLayerTask.h
-+++ b/src/app-logic/VelocityFieldCalculatorLayerTask.h
-@@ -32,9 +32,11 @@
- #include <QObject>

- #include <QString>

- 

-+#ifndef Q_MOC_RUN

- #include "LayerTask.h"

- #include "VelocityFieldCalculatorLayerParams.h"

- #include "VelocityFieldCalculatorLayerProxy.h"

-+#endif

- 

- #include "model/FeatureCollectionHandle.h"

- 

---- a/src/data-mining/CoRegConfigurationTable.h
-+++ b/src/data-mining/CoRegConfigurationTable.h
-@@ -28,6 +28,7 @@
- 

- #include <vector>

- #include <map>

-+#ifndef Q_MOC_RUN

- #include <boost/operators.hpp>

- 

- #include "CoRegFilter.h"

-@@ -44,6 +45,7 @@
- #include "scribe/Transcribe.h"

- #include "scribe/TranscribeContext.h"

- 

-+#endif

- 

- namespace GPlatesDataMining

- {

---- a/src/gui/CommandServer.h
-+++ b/src/gui/CommandServer.h
-@@ -38,9 +38,11 @@
- #include <QRegExp>

- #include <QtXml/QXmlStreamReader>

- 

-+#ifndef Q_MOC_RUN

- #include "app-logic/ApplicationState.h"

- 

- #include "presentation/ViewState.h"

-+#endif

- 

- namespace GPlatesGui

- {

---- a/src/gui/FeatureTableModel.h
-+++ b/src/gui/FeatureTableModel.h
-@@ -32,8 +32,10 @@
- #include <QItemSelection>

- #include <QHeaderView>

- 

-+#ifndef Q_MOC_RUN

- #include "app-logic/Layer.h"

- #include "app-logic/ReconstructionGeometry.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/gui/TopologyTools.h
-+++ b/src/gui/TopologyTools.h
-@@ -35,6 +35,7 @@
- #include <QDebug>

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "TopologySectionsContainer.h"

- 

- #include "app-logic/Layer.h"

-@@ -64,6 +65,7 @@
- #include "utils/UnicodeStringUtils.h"

- 

- #include "view-operations/RenderedGeometryCollection.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/opengl/GLVisualLayers.h
-+++ b/src/opengl/GLVisualLayers.h
-@@ -35,6 +35,7 @@
- #include <boost/shared_ptr.hpp>

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "GLAgeGridMaskSource.h"

- #include "GLContext.h"

- #include "GLLight.h"

-@@ -79,6 +80,7 @@
- 

- #include "view-operations/RenderedGeometry.h"

- #include "view-operations/ScalarField3DRenderParameters.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/presentation/VisualLayer.h
-+++ b/src/presentation/VisualLayer.h
-@@ -32,6 +32,7 @@
- #include <QString>

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "VisualLayerParams.h"

- #include "VisualLayerType.h"

- 

-@@ -42,6 +43,7 @@
- #include "model/FeatureCollectionHandle.h"

- 

- #include "view-operations/RenderedGeometryCollection.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/presentation/VisualLayers.h
-+++ b/src/presentation/VisualLayers.h
-@@ -34,6 +34,7 @@
- #include <boost/weak_ptr.hpp>

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "VisualLayer.h"

- 

- #include "app-logic/FeatureCollectionFileState.h"

-@@ -42,6 +43,7 @@
- #include "gui/Symbol.h"

- 

- #include "view-operations/RenderedGeometryCollection.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/qt-widgets/AssignReconstructionPlateIdsDialog.h
-+++ b/src/qt-widgets/AssignReconstructionPlateIdsDialog.h
-@@ -39,6 +39,7 @@
- #include "GPlatesDialog.h"

- #include "InformationDialog.h"

- 

-+#ifndef Q_MOC_RUN

- #include "app-logic/AssignPlateIds.h"

- 

- #include "file-io/File.h"

-@@ -47,6 +48,7 @@
- #include "model/ModelInterface.h"

- 

- #include "presentation/VisualLayer.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/qt-widgets/CoRegistrationLayerConfigurationDialog.h
-+++ b/src/qt-widgets/CoRegistrationLayerConfigurationDialog.h
-@@ -38,6 +38,7 @@
- 

- #include "OpenDirectoryDialog.h"

- 

-+#ifndef Q_MOC_RUN

- #include "app-logic/ApplicationState.h"

- #include "app-logic/Layer.h"

- #include "app-logic/LayerInputChannelName.h"

-@@ -45,6 +46,7 @@
- 

- #include "data-mining/CheckAttrTypeVisitor.h"

- #include "data-mining/CoRegConfigurationTable.h"

-+#endif

- 

- #include "global/PointerTraits.h"

- 

---- a/src/qt-widgets/CoRegistrationOptionsWidget.h
-+++ b/src/qt-widgets/CoRegistrationOptionsWidget.h
-@@ -31,6 +31,7 @@
- #include "CoRegistrationLayerConfigurationDialog.h"

- #include "CoRegistrationOptionsWidgetUi.h"

- #include "LayerOptionsWidget.h"

-+#ifndef Q_MOC_RUN

- #include "CoRegistrationResultTableDialog.h"

- 

- #include "app-logic/CoRegistrationLayerTask.h"

-@@ -41,7 +42,7 @@
- #include "file-io/File.h"

- 

- #include "presentation/VisualLayer.h"

--

-+#endif

- 

- namespace GPlatesAppLogic

- {

---- a/src/qt-widgets/CoRegistrationResultTableDialog.h
-+++ b/src/qt-widgets/CoRegistrationResultTableDialog.h
-@@ -36,6 +36,7 @@
- #include <QEvent>

- #include <qevent.h>

- 

-+#ifndef Q_MOC_RUN

- #include "CoRegistrationResultTableDialogUi.h"

- #include "SaveFileDialog.h"

- 

-@@ -43,6 +44,7 @@
- #include "data-mining/OpaqueDataToQString.h"

- 

- #include "presentation/VisualLayer.h"

-+#endif

- 

- namespace GPlatesPresentation

- {

---- a/src/qt-widgets/DrawStyleDialog.h
-+++ b/src/qt-widgets/DrawStyleDialog.h
-@@ -33,6 +33,7 @@
- #include <QMutex>

- #include <QMutexLocker>

- 

-+#ifndef Q_MOC_RUN

- #include "DrawStyleDialogUi.h"

- #include "GPlatesDialog.h"

- #include "PythonArgumentWidget.h"

-@@ -41,6 +42,7 @@
- #include "gui/PythonConfiguration.h"

- 

- #include "presentation/Application.h"

-+#endif

- 

- namespace GPlatesAppLogic

- {

---- a/src/qt-widgets/EditTableActionWidget.h
-+++ b/src/qt-widgets/EditTableActionWidget.h
-@@ -27,8 +27,11 @@
- #define GPLATES_QTWIDGETS_EDITTABLEACTIONWIDGET_H

- 

- #include <QWidget>

-+

-+#ifndef Q_MOC_RUN

- #include "app-logic/ApplicationState.h"

- #include "EditTableActionWidgetUi.h"

-+#endif

- 

- namespace GPlatesQtWidgets

- {

---- a/src/qt-widgets/GlobeCanvas.h
-+++ b/src/qt-widgets/GlobeCanvas.h
-@@ -41,6 +41,7 @@
- #include <QPainter>

- #include <QtOpenGL/qgl.h>

- 

-+#ifndef Q_MOC_RUN

- #include "gui/ColourScheme.h"

- #include "gui/Globe.h"

- #include "gui/ViewportZoom.h"

-@@ -58,6 +59,7 @@
- #include "qt-widgets/SceneView.h"

- 

- #include "view-operations/RenderedGeometryFactory.h"

-+#endif

- 

- 

- namespace GPlatesGui

---- a/src/qt-widgets/LogDialog.h
-+++ b/src/qt-widgets/LogDialog.h
-@@ -34,7 +34,9 @@
- #include "GPlatesDialog.h"

- #include "LogDialogUi.h"

- 

-+#ifndef Q_MOC_RUN

- #include "app-logic/ApplicationState.h"

-+#endif

- 

- 

- namespace GPlatesGui

---- a/src/qt-widgets/MapCanvas.h
-+++ b/src/qt-widgets/MapCanvas.h
-@@ -39,6 +39,7 @@
- #include <QSize>

- #include <QTransform>

- 

-+#ifndef Q_MOC_RUN

- #include "gui/ColourScheme.h"

- #include "gui/Map.h"

- #include "gui/TextOverlay.h"

-@@ -47,6 +48,7 @@
- #include "opengl/GLMatrix.h"

- #include "opengl/GLOffScreenContext.h"

- #include "opengl/GLVisualLayers.h"

-+#endif

- 

- 

- namespace GPlatesGui

---- a/src/qt-widgets/MapView.h
-+++ b/src/qt-widgets/MapView.h
-@@ -36,6 +36,7 @@
- #include <QGLWidget>

- #include <QMouseEvent>

- 

-+#ifndef Q_MOC_RUN

- #include "gui/ColourScheme.h"

- 

- #include "maths/LatLonPoint.h"

-@@ -44,6 +45,7 @@
- #include "opengl/GLVisualLayers.h"

- 

- #include "qt-widgets/SceneView.h"

-+#endif

- 

- 

- namespace GPlatesGui

---- a/src/qt-widgets/MergeReconstructionLayersDialog.h
-+++ b/src/qt-widgets/MergeReconstructionLayersDialog.h
-@@ -33,7 +33,9 @@
- 

- #include "MergeReconstructionLayersDialogUi.h"

- 

-+#ifndef Q_MOC_RUN

- #include "app-logic/Layer.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/qt-widgets/RasterLayerOptionsWidget.h
-+++ b/src/qt-widgets/RasterLayerOptionsWidget.h
-@@ -31,6 +31,7 @@
- #include <QString>

- #include <QToolButton>

- 

-+#ifndef Q_MOC_RUN

- #include "RasterLayerOptionsWidgetUi.h"

- 

- #include "LayerOptionsWidget.h"

-@@ -40,6 +41,7 @@
- 

- #include "gui/BuiltinColourPaletteType.h"

- #include "gui/RasterColourPalette.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/qt-widgets/ReconstructScalarCoverageLayerOptionsWidget.h
-+++ b/src/qt-widgets/ReconstructScalarCoverageLayerOptionsWidget.h
-@@ -28,6 +28,7 @@
- 

- #include <utility>

- 

-+#ifndef Q_MOC_RUN

- #include "ReconstructScalarCoverageLayerOptionsWidgetUi.h"

- 

- #include "LayerOptionsWidget.h"

-@@ -37,6 +38,7 @@
- 

- #include "gui/BuiltinColourPaletteType.h"

- #include "gui/RasterColourPalette.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/qt-widgets/ScalarField3DLayerOptionsWidget.h
-+++ b/src/qt-widgets/ScalarField3DLayerOptionsWidget.h
-@@ -30,6 +30,7 @@
- #include <vector>

- #include <QSlider>

- 

-+#ifndef Q_MOC_RUN

- #include "ScalarField3DLayerOptionsWidgetUi.h"

- 

- #include "LayerOptionsWidget.h"

-@@ -41,6 +42,7 @@
- #include "gui/RasterColourPalette.h"

- 

- #include "view-operations/ScalarField3DRenderParameters.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/qt-widgets/TotalReconstructionPolesDialog.h
-+++ b/src/qt-widgets/TotalReconstructionPolesDialog.h
-@@ -32,12 +32,14 @@
- #include <boost/weak_ptr.hpp>

- #include <QDialog>

- 

-+#ifndef Q_MOC_RUN

- #include "TotalReconstructionPolesDialogUi.h"

- 

- #include "GPlatesDialog.h"

- #include "SaveFileDialog.h"

- 

- #include "presentation/VisualLayer.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/qt-widgets/VisualLayersComboBox.h
-+++ b/src/qt-widgets/VisualLayersComboBox.h
-@@ -32,8 +32,10 @@
- #include <QComboBox>

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "presentation/VisualLayer.h"

- #include "presentation/VisualLayerType.h"

-+#endif

- 

- 

- namespace GPlatesPresentation

---- a/src/qt-widgets/VisualLayerWidget.h
-+++ b/src/qt-widgets/VisualLayerWidget.h
-@@ -36,11 +36,13 @@
- #include <QMenu>

- #include <QStackedWidget>

- 

-+#ifndef Q_MOC_RUN

- #include "VisualLayerWidgetUi.h"

- 

- #include "app-logic/Layer.h"

- 

- #include "gui/Colour.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/view-operations/InternalGeometryBuilder.h
-+++ b/src/view-operations/InternalGeometryBuilder.h
-@@ -30,9 +30,11 @@
- #include <vector>

- #include <boost/optional.hpp>

- 

-+#ifndef Q_MOC_RUN

- #include "maths/GeometryOnSphere.h"

- #include "maths/GeometryType.h"

- #include "maths/PointOnSphere.h"

-+#endif

- 

- namespace GPlatesViewOperations

- {

---- a/src/view-operations/RenderedGeometryCollection.h
-+++ b/src/view-operations/RenderedGeometryCollection.h
-@@ -39,7 +39,9 @@
- #include <boost/foreach.hpp>

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "RenderedGeometryLayer.h"

-+#endif

- 

- namespace GPlatesViewOperations

- {

---- a/src/view-operations/RenderedGeometryFactory.h
-+++ b/src/view-operations/RenderedGeometryFactory.h
-@@ -33,6 +33,7 @@
- #include <QString>

- #include <QFont>

- 

-+#ifndef Q_MOC_RUN

- #include "RenderedGeometry.h"

- #include "RenderedColouredEdgeSurfaceMesh.h"

- #include "RenderedColouredTriangleSurfaceMesh.h"

-@@ -62,6 +63,7 @@
- #include "property-values/TextContent.h"

- 

- #include "view-operations/ScalarField3DRenderParameters.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

---- a/src/view-operations/RenderedGeometryLayer.h
-+++ b/src/view-operations/RenderedGeometryLayer.h
-@@ -35,10 +35,12 @@
- #include <boost/optional.hpp>

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "RenderedGeometry.h"

- 

- #include "maths/CubeQuadTreeLocation.h"

- 

-+#endif

- 

- namespace GPlatesMaths

- {

diff --git a/pkgs/applications/science/misc/gplates/default.nix b/pkgs/applications/science/misc/gplates/default.nix
index 592e36370e0..4bef967bc08 100644
--- a/pkgs/applications/science/misc/gplates/default.nix
+++ b/pkgs/applications/science/misc/gplates/default.nix
@@ -1,29 +1,30 @@
-{ stdenv, fetchurl, qt4, qwt6_qt4, libGLU, libGL, glew, gdal_1_11, cgal
-, proj, boost, cmake, python2, doxygen, graphviz, gmp }:
+{ stdenv, fetchurl, qt4, qwt6_qt4, libGLU, libGL, glew, gdal, cgal
+, proj, boost, cmake, python2, doxygen, graphviz, gmp, mpfr }:
 
 stdenv.mkDerivation rec {
   pname = "gplates";
-  version = "2.0.0";
+  version = "2.2.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/gplates/${pname}-${version}-unixsrc.tar.bz2";
-    sha256 = "02scnjj5nlc2d2c8lbx0xvj8gg1bgkjliv3wxsx564c55a9x69qw";
+    sha256 = "1jrcv498vpcs8xklhbsgg12yfa90f96p2mwq6x5sjnrlpf8mh50b";
   };
 
-  patches = [
-    ./boostfix.patch
-  ];
-
   buildInputs = [
-    qt4 qwt6_qt4 libGLU libGL glew gdal_1_11 cgal proj boost cmake python2
-    doxygen graphviz gmp
+    qt4 qwt6_qt4 libGLU libGL glew gdal cgal proj cmake python2
+    doxygen graphviz gmp mpfr
+    (boost.override {
+      enablePython = true;
+      python = python2;
+    })
   ];
 
+  NIX_CFLAGS_LINK="-ldl -lpthread -lutil";
+
   meta = with stdenv.lib; {
     description = "Desktop software for the interactive visualisation of plate-tectonics";
     homepage = "https://www.gplates.org";
     license = licenses.gpl2;
     platforms = platforms.all;
-    broken = true;
   };
 }
diff --git a/pkgs/applications/science/misc/openmvg/default.nix b/pkgs/applications/science/misc/openmvg/default.nix
index aea376301ab..5db6092fa36 100644
--- a/pkgs/applications/science/misc/openmvg/default.nix
+++ b/pkgs/applications/science/misc/openmvg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, pkgconfig, cmake
+{ stdenv, fetchFromGitHub, pkgconfig, cmake
 , libjpeg ? null
 , zlib ? null
 , libpng ? null
@@ -8,15 +8,14 @@
 , enableDocs ? false }:
 
 stdenv.mkDerivation rec {
-  version = "1.3";
+  version = "1.6";
   pname = "openmvg";
 
-  src = fetchgit {
-    url = "https://www.github.com/openmvg/openmvg.git";
-
-    # Tag v1.1
-    rev = "refs/tags/v${version}";
-    sha256 = "1cf1gbcl8zvxp4rr6f6vaxwcg0yzc4xban2b5p9zy1m4k1f81zyb";
+  src = fetchFromGitHub {
+    owner = "openmvg";
+    repo = "openmvg";
+    rev = "v${version}";
+    sha256 = "0mrsi0dzgi7cjzn13r9xv7rnc8c9a4h8ip78xy88m9xsyr21wd1h";
     fetchSubmodules = true;
   };
 
@@ -46,6 +45,5 @@ stdenv.mkDerivation rec {
     license = stdenv.lib.licenses.mpl20;
     platforms = stdenv.lib.platforms.linux;
     maintainers = with stdenv.lib.maintainers; [ mdaiter ];
-    broken = true; # 2018-04-11
   };
 }
diff --git a/pkgs/applications/science/misc/rink/cargo-lock.patch b/pkgs/applications/science/misc/rink/cargo-lock.patch
deleted file mode 100644
index 1fb3c2f4b56..00000000000
--- a/pkgs/applications/science/misc/rink/cargo-lock.patch
+++ /dev/null
@@ -1,2631 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-new file mode 100644
-index 0000000..17d0ae9
---- /dev/null
-+++ b/Cargo.lock
-@@ -0,0 +1,2625 @@
-+# This file is automatically @generated by Cargo.
-+# It is not intended for manual editing.
-+[[package]]
-+name = "adler32"
-+version = "1.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "aho-corasick"
-+version = "0.6.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "autocfg"
-+version = "0.1.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "backtrace"
-+version = "0.3.40"
-+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"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "base64"
-+version = "0.9.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "base64"
-+version = "0.10.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "bincode"
-+version = "0.6.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "bitflags"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "bitflags"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "bitflags"
-+version = "1.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "bodyparser"
-+version = "0.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "persistent 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_json 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "buf_redux"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "byteorder"
-+version = "1.3.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "bytes"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "bytes"
-+version = "0.4.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "c2-chacha"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "cc"
-+version = "1.0.48"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "cfg-if"
-+version = "0.1.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "chrono"
-+version = "0.2.25"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "chrono"
-+version = "0.4.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "chrono-humanize"
-+version = "0.0.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "chrono 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "chrono-tz"
-+version = "0.2.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "chrono 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "parse-zoneinfo 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "cloudabi"
-+version = "0.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "conduit-mime-types"
-+version = "0.7.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "cookie"
-+version = "0.12.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "cookie_store"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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.44 (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)",
-+]
-+
-+[[package]]
-+name = "core-foundation"
-+version = "0.6.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "core-foundation-sys"
-+version = "0.6.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "crc32fast"
-+version = "1.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "crossbeam-deque"
-+version = "0.7.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "crossbeam-epoch"
-+version = "0.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "crossbeam-queue"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "crossbeam-utils"
-+version = "0.6.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "crossbeam-utils"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "dtoa"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "dtoa"
-+version = "0.4.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "either"
-+version = "1.5.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "encoding"
-+version = "0.2.33"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "encoding-index-japanese"
-+version = "1.20141219.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "encoding-index-korean"
-+version = "1.20141219.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "encoding-index-simpchinese"
-+version = "1.20141219.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "encoding-index-singlebyte"
-+version = "1.20141219.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "encoding-index-tradchinese"
-+version = "1.20141219.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "encoding_index_tests"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "encoding_rs"
-+version = "0.8.22"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "error"
-+version = "0.1.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "error-chain"
-+version = "0.12.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "failure"
-+version = "0.1.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "failure_derive"
-+version = "0.1.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.7 (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.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "filetime"
-+version = "0.1.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "flate2"
-+version = "1.0.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "fnv"
-+version = "1.0.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "foreign-types"
-+version = "0.3.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "foreign-types-shared"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "fsevent"
-+version = "0.2.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fsevent-sys 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)",
-+]
-+
-+[[package]]
-+name = "fsevent-sys"
-+version = "0.1.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "fuchsia-cprng"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "fuchsia-zircon"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "fuchsia-zircon-sys"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "futures"
-+version = "0.1.29"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "futures-cpupool"
-+version = "0.1.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "getrandom"
-+version = "0.1.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "glob"
-+version = "0.2.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "h2"
-+version = "0.1.26"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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.0 (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)",
-+]
-+
-+[[package]]
-+name = "handlebars"
-+version = "0.25.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pest 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "handlebars-iron"
-+version = "0.23.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "handlebars 0.25.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "notify 3.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "walkdir 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "hermit-abi"
-+version = "0.1.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "http"
-+version = "0.1.21"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "http-body"
-+version = "0.1.0"
-+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)",
-+ "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)",
-+]
-+
-+[[package]]
-+name = "httparse"
-+version = "1.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "hyper"
-+version = "0.10.16"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[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.4 (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)",
-+]
-+
-+[[package]]
-+name = "hyper-tls"
-+version = "0.3.2"
-+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)",
-+ "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)",
-+]
-+
-+[[package]]
-+name = "idna"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "idna"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "indexmap"
-+version = "1.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "inotify"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "iovec"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "ipc-channel"
-+version = "0.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bincode 0.6.1 (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)",
-+ "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "irc"
-+version = "0.11.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "encoding 0.2.33 (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)",
-+]
-+
-+[[package]]
-+name = "iron"
-+version = "0.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "conduit-mime-types 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "error 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "hyper 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "modifier 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "typemap 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "itoa"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "itoa"
-+version = "0.4.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "json"
-+version = "0.10.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "kernel32-sys"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "language-tags"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "lazy_static"
-+version = "0.2.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "lazy_static"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "libc"
-+version = "0.2.66"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "limiter"
-+version = "0.3.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "linefeed"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+ "nix 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ole32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "shell32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-normalization 0.1.11 (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.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "lock_api"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "log"
-+version = "0.3.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "log"
-+version = "0.4.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "logger"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "matches"
-+version = "0.1.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "maybe-uninit"
-+version = "2.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "memchr"
-+version = "0.1.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "memchr"
-+version = "2.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "memoffset"
-+version = "0.5.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "mime"
-+version = "0.2.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "mime"
-+version = "0.3.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "mime_guess"
-+version = "1.8.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "mime_guess"
-+version = "2.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "mime 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "miniz_oxide"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "mio"
-+version = "0.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bytes 0.3.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.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "miow 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "nix 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "slab 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "mio"
-+version = "0.6.21"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "miow"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "miow"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "modifier"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "mount"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "sequence_trie 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "multipart"
-+version = "0.8.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "buf_redux 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mime_guess 1.8.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "native-tls"
-+version = "0.2.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)",
-+ "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.26 (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.53 (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)",
-+]
-+
-+[[package]]
-+name = "net2"
-+version = "0.2.33"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "nix"
-+version = "0.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "nix"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 0.4.0 (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_version 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "semver 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "notify"
-+version = "3.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "filetime 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fsevent 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fsevent-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "inotify 0.2.3 (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)",
-+ "mio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "walkdir 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num"
-+version = "0.1.42"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "num-bigint 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-complex 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-rational 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num-bigint"
-+version = "0.1.44"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num-complex"
-+version = "0.1.43"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num-integer"
-+version = "0.1.41"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num-iter"
-+version = "0.1.39"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "autocfg 0.1.7 (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.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num-rational"
-+version = "0.1.42"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "num-bigint 0.1.44 (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.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num-traits"
-+version = "0.1.43"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num-traits"
-+version = "0.2.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num_cpus"
-+version = "1.11.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "ole32-sys"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "openssl"
-+version = "0.10.26"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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.53 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "openssl-probe"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "openssl-sys"
-+version = "0.9.53"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cc 1.0.48 (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)",
-+]
-+
-+[[package]]
-+name = "params"
-+version = "0.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bodyparser 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "multipart 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_json 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "urlencoded 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "parking_lot"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "parking_lot_core"
-+version = "0.6.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "parse-zoneinfo"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "percent-encoding"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "percent-encoding"
-+version = "2.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "persistent"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "pest"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "phf"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "phf_codegen"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "phf_generator"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "phf_shared"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "pkg-config"
-+version = "0.3.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "plugin"
-+version = "0.2.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "typemap 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "ppv-lite86"
-+version = "0.2.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "proc-macro2"
-+version = "1.0.7"
-+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)",
-+]
-+
-+[[package]]
-+name = "publicsuffix"
-+version = "1.5.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "quick-error"
-+version = "1.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "quote"
-+version = "0.3.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "quote"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand"
-+version = "0.3.23"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "rand"
-+version = "0.4.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "rand"
-+version = "0.6.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "rand"
-+version = "0.7.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "getrandom 0.1.13 (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)",
-+]
-+
-+[[package]]
-+name = "rand_chacha"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "rand_chacha"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_hc"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_hc"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_isaac"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rand_jitter"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "rand_os"
-+version = "0.1.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "rand_pcg"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "rand_xorshift"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rdrand"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "redox_syscall"
-+version = "0.1.56"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "regex"
-+version = "0.2.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "regex"
-+version = "1.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "regex-syntax"
-+version = "0.5.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "ucd-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "regex-syntax"
-+version = "0.6.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[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 = "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.14 (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.44 (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)",
-+]
-+
-+[[package]]
-+name = "rink"
-+version = "0.4.4"
-+dependencies = [
-+ "chrono 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "chrono-humanize 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "chrono-tz 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "json 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "linefeed 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "reqwest 0.9.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rust-gmp 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_derive 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "strsim 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "xml-rs 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rink-irc"
-+version = "0.4.0"
-+dependencies = [
-+ "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "irc 0.11.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rink 0.4.4",
-+]
-+
-+[[package]]
-+name = "rink-web"
-+version = "0.4.0"
-+dependencies = [
-+ "chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "handlebars 0.25.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "handlebars-iron 0.23.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "limiter 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "logger 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mount 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "params 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rink 0.4.4",
-+ "router 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_derive 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_json 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "staticfile 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "toml 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "route-recognizer"
-+version = "0.1.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "router"
-+version = "0.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "route-recognizer 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rust-gmp"
-+version = "0.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[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"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "rustc_version"
-+version = "0.1.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "semver 0.1.20 (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)",
-+]
-+
-+[[package]]
-+name = "ryu"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "safemem"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "same-file"
-+version = "0.1.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "schannel"
-+version = "0.1.16"
-+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)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "scopeguard"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "security-framework"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "security-framework-sys"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "semver"
-+version = "0.1.20"
-+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"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "sequence_trie"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "serde"
-+version = "0.8.23"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "serde"
-+version = "1.0.104"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "serde_codegen"
-+version = "0.8.23"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_codegen_internals 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.10.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "serde_codegen_internals"
-+version = "0.11.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "syn 0.10.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "serde_derive"
-+version = "0.8.23"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "serde_codegen 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "serde_derive"
-+version = "1.0.104"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.7 (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.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "serde_json"
-+version = "0.8.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "dtoa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "itoa 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "serde_json"
-+version = "1.0.44"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "itoa 0.4.4 (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)",
-+]
-+
-+[[package]]
-+name = "serde_urlencoded"
-+version = "0.5.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "itoa 0.4.4 (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)",
-+]
-+
-+[[package]]
-+name = "shell32-sys"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "siphasher"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "slab"
-+version = "0.1.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "slab"
-+version = "0.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "smallvec"
-+version = "0.6.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "smallvec"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "staticfile"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mount 0.3.0 (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)",
-+]
-+
-+[[package]]
-+name = "string"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "strsim"
-+version = "0.5.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "syn"
-+version = "0.10.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "syn"
-+version = "1.0.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.7 (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)",
-+]
-+
-+[[package]]
-+name = "synstructure"
-+version = "0.12.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.7 (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.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.2.0 (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)",
-+]
-+
-+[[package]]
-+name = "tempfile"
-+version = "3.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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.2 (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)",
-+]
-+
-+[[package]]
-+name = "thread_local"
-+version = "0.3.6"
-+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)",
-+]
-+
-+[[package]]
-+name = "time"
-+version = "0.1.42"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "tokio"
-+version = "0.1.22"
-+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)",
-+ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num_cpus 1.11.1 (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)",
-+]
-+
-+[[package]]
-+name = "tokio-buf"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "tokio-current-thread"
-+version = "0.1.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "tokio-executor"
-+version = "0.1.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "tokio-io"
-+version = "0.1.12"
-+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)",
-+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "tokio-reactor"
-+version = "0.1.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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.11.1 (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)",
-+]
-+
-+[[package]]
-+name = "tokio-sync"
-+version = "0.1.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "tokio-tcp"
-+version = "0.1.3"
-+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)",
-+ "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)",
-+]
-+
-+[[package]]
-+name = "tokio-threadpool"
-+version = "0.1.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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.11.1 (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)",
-+]
-+
-+[[package]]
-+name = "tokio-timer"
-+version = "0.2.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "toml"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "traitobject"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "try-lock"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "try_from"
-+version = "0.3.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "typeable"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "typemap"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "unsafe-any 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "ucd-util"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "unicase"
-+version = "1.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "unicase"
-+version = "2.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "unicode-bidi"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "unicode-normalization"
-+version = "0.1.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "unicode-width"
-+version = "0.1.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "unicode-xid"
-+version = "0.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "unicode-xid"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "unsafe-any"
-+version = "0.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "url"
-+version = "1.7.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "url"
-+version = "2.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "urlencoded"
-+version = "0.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bodyparser 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "utf8-ranges"
-+version = "1.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "uuid"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "uuid"
-+version = "0.7.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "vcpkg"
-+version = "0.2.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "version_check"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "version_check"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "void"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "walkdir"
-+version = "0.1.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "walkdir"
-+version = "1.0.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "same-file 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "want"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "wasi"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "winapi"
-+version = "0.2.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "winapi"
-+version = "0.3.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "winapi-build"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "winapi-i686-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "winapi-x86_64-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "winreg"
-+version = "0.6.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 = "ws2_32-sys"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "xml-rs"
-+version = "0.3.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 0.7.0 (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.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5"
-+"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
-+"checksum backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)" = "924c76597f0d9ca25d762c25a4d369d51267536465dc5064bdf0eb073ed477ea"
-+"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.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
-+"checksum bincode 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "55eb0b7fd108527b0c77860f75eca70214e11a8b4c6ef05148c54c05a25d48ad"
-+"checksum bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dead7461c1127cf637931a1e50934eb6eee8bff2f74433ac7909e9afcee04a3"
-+"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
-+"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-+"checksum bodyparser 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6928e817538b74a73d1dd6e9a942a2a35c632a597b6bb14fd009480f859a6bf5"
-+"checksum buf_redux 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "861b9d19b9f5cb40647242d10d0cb0a13de0a96d5ff8c8a01ea324fa3956eb7d"
-+"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
-+"checksum bytes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c129aff112dcc562970abb69e2508b40850dd24c274761bb50fb8a0067ba6c27"
-+"checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
-+"checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb"
-+"checksum cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)" = "f52a465a666ca3d838ebbf08b241383421412fe7ebb463527bba275526d89f76"
-+"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-+"checksum chrono 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)" = "9213f7cd7c27e95c2b57c49f0e69b1ea65b27138da84a170133fd21b07659c00"
-+"checksum chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "31850b4a4d6bae316f7a09e691c944c28299298837edc0a03f755618c23cbc01"
-+"checksum chrono-humanize 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92afb1436280b0e4ed573c747ad30a1469cd945c201265b4d01e72cfa598da4f"
-+"checksum chrono-tz 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "45438695f3f154032951a341ecca7ed200714bea615096885c9e86ca9fa3d66b"
-+"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-+"checksum conduit-mime-types 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "95ca30253581af809925ef68c2641cc140d6183f43e12e0af4992d53768bd7b8"
-+"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 dtoa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0dd841b58510c9618291ffa448da2e4e0f699d984d436122372f446dae62263d"
-+"checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e"
-+"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
-+"checksum encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec"
-+"checksum encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
-+"checksum encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
-+"checksum encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
-+"checksum encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
-+"checksum encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
-+"checksum encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
-+"checksum encoding_rs 0.8.22 (registry+https://github.com/rust-lang/crates.io-index)" = "cd8d03faa7fe0c1431609dfad7bbe827af30f82e1e2ae6f7ee4fca6bd764bc28"
-+"checksum error 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "a6e606f14042bb87cc02ef6a14db6c90ab92ed6f62d87e69377bc759fd7987cc"
-+"checksum error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3ab49e9dcb602294bc42f9a7dfc9bc6e936fca4418ea300dbfb84fe16de0b7d9"
-+"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.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "714653f3e34871534de23771ac7b26e999651a0a228f47beb324dfdf1dd4b10f"
-+"checksum flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6bd6d6f4752952feb71363cffc9ebac9411b75b87c6ab6058c40c8900cf43c0f"
-+"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 fsevent 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)" = "c4bbbf71584aeed076100b5665ac14e3d85eeb31fdbb45fbd41ef9a682b5ec05"
-+"checksum fsevent-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1a772d36c338d07a032d5375a36f15f9a7043bf0cb8ce7cee658e037c6032874"
-+"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.13 (registry+https://github.com/rust-lang/crates.io-index)" = "e7db7ca94ed4cd01190ceee0d8a8052f08a247aa1b469a7f68c6a3b71afcf407"
-+"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 handlebars 0.25.3 (registry+https://github.com/rust-lang/crates.io-index)" = "15bdf598fc3c2de40c6b340213028301c0d225eea55a2294e6cc148074e557a1"
-+"checksum handlebars-iron 0.23.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1f86cf6ff931aa78e61415ad40c48a9af101b9a888eeed6ecf4f48dc52e80b76"
-+"checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772"
-+"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 hyper 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "0a0652d9a2609a968c14be1a9ea00bf4b1d64e2e1f53a1b51b6fff3a6e829273"
-+"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.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712d7b3ea5827fcb9d4fda14bf4da5f136f0db2ae9c8f4bd4e2d1c6fde4e6db2"
-+"checksum inotify 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8458c07bdbdaf309c80e2c3304d14c3db64e7465d4f07cf589ccb83fd0ff31a"
-+"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
-+"checksum ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "675587430ede6756dd03fdfdf9888f22f83855fd131c8451d842a710b059e571"
-+"checksum irc 0.11.8 (registry+https://github.com/rust-lang/crates.io-index)" = "6a45f7136bbfeec4377afc6363b38440ce153d8a61777d56da0c6b1176cf135a"
-+"checksum iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2440ae846e7a8c7f9b401db8f6e31b4ea5e7d3688b91761337da7e054520c75b"
-+"checksum itoa 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ae3088ea4baeceb0284ee9eea42f591226e6beaecf65373e41b38d95a1b8e7a1"
-+"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
-+"checksum json 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f3fb4510c0dbc38f7f43bdbe8b53defae0cd338b81ef416462a0ef69d600165c"
-+"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
-+"checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
-+"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 limiter 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cbc5d8bf63416df5331084dd9883b9598582f0d7ad5e42d53e55b05366931676"
-+"checksum linefeed 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1301a570e4e7d2d0f324b7a3fa73eac85b05c81b656a0983b16ebc8c504e53b6"
-+"checksum lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "79b2de95ecb4691949fea4716ca53cdbcfccb2c612e19644a8bad05edcf9f47b"
-+"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 logger 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "92ff59f9a797ff30f711fe6b8489ad424953cee17c206de77d3c5957a9182ba7"
-+"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 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 memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "75189eb85871ea5c2e2c15abbdd541185f63b408415e5051f5cac122d8c774b9"
-+"checksum mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0"
-+"checksum mime 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "dd1d63acd1b78403cc0c325605908475dd9b9a3acbf65ed8bcab97e27014afcf"
-+"checksum mime_guess 1.8.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0d977de9ee851a0b16e932979515c0f3da82403183879811bc97d50bd9cc50f7"
-+"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.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a637d1ca14eacae06296a008fa7ad955347e34efcb5891cfd8ba05491a37907e"
-+"checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f"
-+"checksum miow 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3e690c5df6b2f60acd45d56378981e827ff8295562fc8d34f573deb267a59cd1"
-+"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
-+"checksum modifier 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "41f5c9112cb662acd3b204077e0de5bc66305fa8df65c8019d5adb10e9ab6e58"
-+"checksum mount 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "32245731923cd096899502fc4c4317cfd09f121e80e73f7f576cf3777a824256"
-+"checksum multipart 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b16d6498fe5b0c2f6d973fd9753da099948834f96584d628e44a75f0d2955b03"
-+"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 nix 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bfb3ddedaa14746434a02041940495bf11325c22f6d36125d3bdd56090d50a79"
-+"checksum nix 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a0d95c5fa8b641c10ad0b8887454ebaafa3c92b5cd5350f8fc693adafd178e7b"
-+"checksum notify 3.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "13fdd4a6894329b193f38f03a88823ce721275fdfdb29820c44a30515033524e"
-+"checksum num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e"
-+"checksum num-bigint 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)" = "e63899ad0da84ce718c14936262a41cee2c79c981fc0a0e7c7beb47d5a07e8c1"
-+"checksum num-complex 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "b288631d7878aaf59442cffd36910ea604ecd7745c36054328595114001c9656"
-+"checksum num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09"
-+"checksum num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "76bd5272412d173d6bf9afdf98db8612bbabc9a7a830b7bfc9c188911716132e"
-+"checksum num-rational 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e"
-+"checksum num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
-+"checksum num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c81ffc11c212fa327657cb19dd85eb7419e163b5b076bede2bdb5c974c07e4"
-+"checksum num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "76dac5ed2a876980778b8b85f75a71b6cbf0db0b1232ee12f826bccb00d09d72"
-+"checksum ole32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2c49021782e5233cd243168edfa8037574afed4eba4bbaf538b3d8d1789d8c"
-+"checksum openssl 0.10.26 (registry+https://github.com/rust-lang/crates.io-index)" = "3a3cc5799d98e1088141b8e01ff760112bbd9f19d850c124500566ca6901a585"
-+"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
-+"checksum openssl-sys 0.9.53 (registry+https://github.com/rust-lang/crates.io-index)" = "465d16ae7fc0e313318f7de5cecf57b2fbe7511fd213978b457e1c96ff46736f"
-+"checksum params 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "421e9f2c30e80365c9672709be664bfc84f73b088720d1cc1f4e99675814bb37"
-+"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
-+"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
-+"checksum parse-zoneinfo 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f4ee19a3656dadae35a33467f9714f1228dd34766dbe49e10e656b5296867aea"
-+"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 persistent 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c9c94f2ef72dc272c6bcc8157ccf2bc7da14f4c58c69059ac2fc48492d6916"
-+"checksum pest 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0a6dda33d67c26f0aac90d324ab2eb7239c819fc7b2552fe9faa4fe88441edc8"
-+"checksum phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18"
-+"checksum phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e"
-+"checksum phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662"
-+"checksum phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0"
-+"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
-+"checksum plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1a6a0dc3910bc8db877ffed8e457763b317cf880df4ae19109b9f77d277cf6e0"
-+"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
-+"checksum proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0319972dcae462681daf4da1adeeaa066e3ebd29c69be96c6abb1259d2ee2bcc"
-+"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.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
-+"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.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
-+"checksum rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3ae1b169243eaf61759b8475a998f0a385e42042370f3a7dbaf35246eacc8412"
-+"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.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384"
-+"checksum regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dc220bd33bdce8f093101afe22a037b8eb0e5af33592e6a9caafff0d4cb81cbd"
-+"checksum regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7"
-+"checksum regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716"
-+"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 route-recognizer 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "ea509065eb0b3c446acdd0102f0d46567dc30902dc0be91d6552035d92b0f4f8"
-+"checksum router 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b9b1797ff166029cb632237bb5542696e54961b4cf75a324c6f05c9cf0584e4e"
-+"checksum rust-gmp 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c3ddf28998d5730b96a9fe188557953de503d77ff403ae175ad1417921e5d906"
-+"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.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084"
-+"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 safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
-+"checksum same-file 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d931a44fdaa43b8637009e7632a02adc4f2b2e0733c08caa4cf00e8da4a117a7"
-+"checksum schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021"
-+"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.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "d4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac"
-+"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 sequence_trie 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c915714ca833b1d4d6b8f6a9d72a3ff632fe45b40a8d184ef79c81bec6327eed"
-+"checksum serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)" = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8"
-+"checksum serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449"
-+"checksum serde_codegen 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)" = "a4c5d8a33087d8984f9535daa62a6498a08f6476050b00ab9339dd847e4c25cc"
-+"checksum serde_codegen_internals 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "afad7924a009f859f380e4a2e3a509a845c2ac66435fcead74a4d983b21ae806"
-+"checksum serde_derive 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)" = "ce44e5f4264b39e9d29c875357b7cc3ebdfb967bb9e22bfb5e44ffa400af5306"
-+"checksum serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64"
-+"checksum serde_json 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)" = "67f7d2e9edc3523a9c8ec8cd6ec481b3a27810aafee3e625d311febd3e656b4c"
-+"checksum serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)" = "48c575e0cc52bdd09b47f330f646cf59afc586e9c4e3ccd6fc1f625b8ea1dad7"
-+"checksum serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "642dd69105886af2efd227f75a520ec9b44a820d65bc133a9131f7d229fd165a"
-+"checksum shell32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9ee04b46101f57121c9da2b151988283b6beb79b34f5bb29a58ee48cb695122c"
-+"checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
-+"checksum slab 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d807fd58c4181bbabed77cb3b891ba9748241a552bcc5be698faaebefc54f46e"
-+"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.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "44e59e0c9fa00817912ae6e4e6e3c4fe04455e75699d06eedc7d85917ed8e8f4"
-+"checksum staticfile 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "31493480e073d52522a94cdf56269dd8eb05f99549effd1826b0271690608878"
-+"checksum string 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d24114bfcceb867ca7f71a0d3fe45d45619ec47a6fbfa98cb14e14250bfa5d6d"
-+"checksum strsim 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "67f84c44fbb2f91db7fef94554e6b2ac05909c9c0b0bc23bb98d3a1aebfe7f7c"
-+"checksum syn 0.10.8 (registry+https://github.com/rust-lang/crates.io-index)" = "58fd09df59565db3399efbba34ba8a2fec1307511ebd245d0061ff9d42691673"
-+"checksum syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1e4ff033220a41d1a57d8125eab57bf5263783dfdcc18688b1dacc6ce9651ef8"
-+"checksum synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545"
-+"checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
-+"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
-+"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 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.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "736b60249cb25337bc196faa43ee12c705e426f3d55c214d73a4e7be06f92cb4"
-+"checksum traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079"
-+"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 typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887"
-+"checksum typemap 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "653be63c80a3296da5551e1bfd2cca35227e13cdd08c6668903ae2f4f77aa1f6"
-+"checksum ucd-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa9b3b49edd3468c0e6565d85783f51af95212b6fa3986a5500954f00b460874"
-+"checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33"
-+"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.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b561e267b2326bb4cebfc0ef9e68355c7abe6c6f522aeac2f5bf95d56c59bdcf"
-+"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
-+"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
-+"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
-+"checksum unsafe-any 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f30360d7979f5e9c6e6cea48af192ea8fab4afb3cf72597154b8f08935bc9c7f"
-+"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
-+"checksum url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "75b414f6c464c879d7f9babf951f23bc3743fb7313c081b2e6ca719067ea9d61"
-+"checksum urlencoded 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8c28708636d6f7298a53b1cdb6af40f1ab523209a7cb83cf4d41b3ebc671d319"
-+"checksum utf8-ranges 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b4ae116fef2b7fea257ed6440d3cfcff7f190865f170cdad00bb6465bf18ecba"
-+"checksum uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1a9ff57156caf7e22f37baf3c9d8f6ce8194842c23419dafcb0716024514d162"
-+"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 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 void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
-+"checksum walkdir 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "c66c0b9792f0a765345452775f3adbd28dde9d33f30d13e5dcc5ae17cf6f3780"
-+"checksum walkdir 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd288ff"
-+"checksum want 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230"
-+"checksum wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d"
-+"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 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 xml-rs 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7ec6c39eaa68382c8e31e35239402c0a9489d4141a8ceb0c716099a0b515b562"
diff --git a/pkgs/applications/science/misc/rink/default.nix b/pkgs/applications/science/misc/rink/default.nix
index 5d592c233b6..b868706a05f 100644
--- a/pkgs/applications/science/misc/rink/default.nix
+++ b/pkgs/applications/science/misc/rink/default.nix
@@ -1,30 +1,27 @@
-{ stdenv, fetchFromGitHub, rustPlatform, openssl, pkgconfig, gmp, ncurses }:
+{ stdenv, fetchFromGitHub, rustPlatform, openssl, pkg-config, ncurses }:
 
 rustPlatform.buildRustPackage rec {
-  version = "0.4.5";
+  version = "0.5.1";
   pname = "rink";
 
   src = fetchFromGitHub {
     owner = "tiffany352";
     repo = "rink-rs";
     rev = "v${version}";
-    sha256 = "0vl996y58a9b62d8sqrpfn2h8qkya7qbg5zqsmy7nxhph1vhbspj";
+    sha256 = "1s67drjzd4cf93hpm7b2facfd6y1x0s60aq6pygj7i02bm0cb9l9";
   };
 
-  # Upstreamed in https://github.com/tiffany352/rink-rs/pull/53
-  cargoPatches = [ ./cargo-lock.patch ];
+  cargoSha256 = "1wd70y13lly7nccaqlv7w8znxfal0fzyf9d67y5c3aikj7hkzfin";
 
-  cargoSha256 = "0shlh0m9k0iqxpv9zmiw7a6v197swrvpz9x6qzhximzkdwni9gz9";
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ openssl gmp ncurses ];
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ openssl ncurses ];
 
   # Some tests fail and/or attempt to use internet servers.
   doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Unit-aware calculator";
-    homepage = "https://rink.tiffnix.com";
+    homepage = "https://rinkcalc.app";
     license = with licenses; [ mpl20 gpl3 ];
     maintainers = with maintainers; [ sb0 filalex77 ];
   };
diff --git a/pkgs/applications/science/misc/root/default.nix b/pkgs/applications/science/misc/root/default.nix
index 990952e21ac..97d8d4e7cee 100644
--- a/pkgs/applications/science/misc/root/default.nix
+++ b/pkgs/applications/science/misc/root/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, makeWrapper, cmake, gl2ps, gsl, libX11, libXpm, libXft
+{ stdenv, lib, fetchurl, makeWrapper, cmake, gl2ps, gsl, libX11, libXpm, libXft
 , libXext, libGLU, libGL, libxml2, lz4, lzma, pcre, pkgconfig, python, xxHash
 , zlib
 , Cocoa, OpenGL, noSplash ? false }:
@@ -13,11 +13,10 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ makeWrapper cmake pkgconfig ];
-  buildInputs = [ gl2ps pcre python zlib libxml2 lz4 lzma gsl xxHash ]
-    ++ stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
-    ++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
+  buildInputs = [ gl2ps pcre zlib libxml2 lz4 lzma gsl xxHash python.pkgs.numpy ]
+    ++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
+    ++ lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
     ;
-  propagatedBuildInputs = [ python.pkgs.numpy ];
 
   patches = [
     ./sw_vers.patch
diff --git a/pkgs/applications/science/misc/snakemake/default.nix b/pkgs/applications/science/misc/snakemake/default.nix
index 63a727f9c88..2b7532a9345 100644
--- a/pkgs/applications/science/misc/snakemake/default.nix
+++ b/pkgs/applications/science/misc/snakemake/default.nix
@@ -2,7 +2,7 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "snakemake";
-  version = "5.17.0";
+  version = "5.19.3";
 
   propagatedBuildInputs = with python3Packages; [
     appdirs
@@ -22,7 +22,7 @@ python3Packages.buildPythonApplication rec {
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0y652i3saqq2z61yvk0i6q3lnq2xfrygcxms5gygspj71q2n4f7k";
+    sha256 = "b83f3ef73e25dafcb39b3565030e33fa2f7e80ed70256c535dc7e58ea762305d";
   };
 
   doCheck = false; # Tests depend on Google Cloud credentials at ${HOME}/gcloud-service-key.json
diff --git a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
index d345827ed4e..151abb099f5 100644
--- a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
+++ b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
@@ -9,11 +9,11 @@
 }:
 
 stdenv.mkDerivation {
-  name = "gromacs-2020.2";
+  name = "gromacs-2020.3";
 
   src = fetchurl {
-    url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-2020.2.tar.gz";
-    sha256 = "1wyjgcdl30wy4hy6jvi9lkq53bqs9fgfq6fri52dhnb3c76y8rbl";
+    url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-2020.3.tar.gz";
+    sha256 = "1acjrhcfzpqy2dncblhj97602jbg9gdha4q1bgji9nrj25lq6cch";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/robotics/apmplanner2/default.nix b/pkgs/applications/science/robotics/apmplanner2/default.nix
index ede698e2b0b..e6d1c544ee4 100644
--- a/pkgs/applications/science/robotics/apmplanner2/default.nix
+++ b/pkgs/applications/science/robotics/apmplanner2/default.nix
@@ -5,23 +5,15 @@
 
 mkDerivation rec {
   pname = "apmplanner2";
-  version = "2.0.27-rc1";
+  version = "2.0.28-rc1";
 
   src = fetchFromGitHub {
     owner = "ArduPilot";
     repo = "apm_planner";
     rev = version;
-    sha256 = "1k0786mjzi49nb6yw4chh9l4dmkf9gybpxg9zqkr5yg019nyzcvd";
+    sha256 = "18yn8bdz5hmgb0m5hlk8bibz4cj4g25w75pm1rvc4ds0mr1qgyjd";
   };
 
-  patches = [
-    # can be dropped after 2.0.27-rc1
-    (fetchpatch {
-      url = "https://github.com/ArduPilot/apm_planner/commit/299ff23b5e9910de04edfc06b6893bb06b47a57b.patch";
-      sha256 = "16rc81iwqp2i46g6bm9lbvcjfsk83999r9h8w1pz0mys7rsilvqy";
-    })
-  ];
-
   buildInputs = [
     alsaLib libsndfile flite openssl udev SDL2
     qtbase qtscript qtwebkit qtserialport qtsvg qtdeclarative qtquickcontrols2
@@ -35,7 +27,7 @@ mkDerivation rec {
   preFixup = ''
     ln --relative --symbolic $out/share/APMPlanner2/* $out/bin/
     substituteInPlace $out/share/applications/apmplanner2.desktop \
-                      --replace /usr $out
+      --replace /usr $out
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/science/robotics/betaflight-configurator/default.nix b/pkgs/applications/science/robotics/betaflight-configurator/default.nix
index 4684ba8c193..66b9a1ef63a 100644
--- a/pkgs/applications/science/robotics/betaflight-configurator/default.nix
+++ b/pkgs/applications/science/robotics/betaflight-configurator/default.nix
@@ -13,10 +13,10 @@ let
 in
 stdenv.mkDerivation rec {
   inherit pname;
-  version = "10.6.0";
+  version = "10.7.0";
   src = fetchurl {
     url = "https://github.com/betaflight/${pname}/releases/download/${version}/${pname}_${version}_linux64.zip";
-    sha256 = "09hayzhwangh8b81r038p320vbg0xxlyzrdp9pcmfyxp6s00xslw";
+    sha256 = "07r60n9422g5sm7x5b62p044cp961l51vx0s8ig2hy24s74hkam1";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
diff --git a/pkgs/applications/science/robotics/qgroundcontrol/default.nix b/pkgs/applications/science/robotics/qgroundcontrol/default.nix
index 63247bcff72..8710b88ced3 100644
--- a/pkgs/applications/science/robotics/qgroundcontrol/default.nix
+++ b/pkgs/applications/science/robotics/qgroundcontrol/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkDerivation, fetchgit, SDL2
+{ lib, mkDerivation, fetchFromGitHub, SDL2
 , qtbase, qtcharts, qtlocation, qtserialport, qtsvg, qtquickcontrols2
 , qtgraphicaleffects, qtspeech, qtx11extras, qmake, qttools
 , gst_all_1, wayland, pkgconfig
@@ -6,7 +6,7 @@
 
 mkDerivation rec {
   pname = "qgroundcontrol";
-  version = "4.0.8";
+  version = "4.0.10";
 
   qtInputs = [
     qtbase qtcharts qtlocation qtserialport qtsvg qtquickcontrols2
@@ -58,10 +58,11 @@ mkDerivation rec {
   '';
 
   # TODO: package mavlink so we can build from a normal source tarball
-  src = fetchgit {
-    url = "https://github.com/mavlink/qgroundcontrol.git";
+  src = fetchFromGitHub {
+    owner = "mavlink";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "0jr9jpjqdwizsvh9zm0fdp8k2r4536m40dxrn30fbr3ba8vnzkgq";
+    sha256 = "1jmhhd2nwxq3m9rzzmrjls8f6hhj52ia71b1sv4vvcjh802cha8g";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/system/glances/default.nix b/pkgs/applications/system/glances/default.nix
index 3dfec185b57..6b77914539c 100644
--- a/pkgs/applications/system/glances/default.nix
+++ b/pkgs/applications/system/glances/default.nix
@@ -1,21 +1,21 @@
 { stdenv, buildPythonApplication, fetchFromGitHub, fetchpatch, isPyPy, lib
 , future, psutil, setuptools
 # Optional dependencies:
-, bottle, batinfo, pysnmp
+, bottle, pysnmp
 , hddtemp
 , netifaces # IP module
 }:
 
 buildPythonApplication rec {
   pname = "glances";
-  version = "3.1.4.1";
+  version = "3.1.5";
   disabled = isPyPy;
 
   src = fetchFromGitHub {
     owner = "nicolargo";
     repo = "glances";
     rev = "v${version}";
-    sha256 = "04dc3pwj9qbbhxpihf13ckdgwz0qc771c7v7awni4vyzk3a9cdfb";
+    sha256 = "0l91nvlwyabxlsy5p533dqnc68mmvykfsrcsnxylcpjjl1nzy931";
   };
 
   # Some tests fail in the sandbox (they e.g. require access to /sys/class/power_supply):
@@ -35,7 +35,6 @@ buildPythonApplication rec {
   '';
 
   propagatedBuildInputs = [
-    batinfo
     bottle
     future
     netifaces
diff --git a/pkgs/applications/system/monitor/default.nix b/pkgs/applications/system/monitor/default.nix
index ee1198c176f..30ae9e51e9e 100644
--- a/pkgs/applications/system/monitor/default.nix
+++ b/pkgs/applications/system/monitor/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , vala
@@ -18,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "monitor";
-  version = "0.7.2";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "stsdc";
     repo = "monitor";
     rev = version;
-    sha256 ="1gd2i7gja4k9j4xac8jnls3v41d6qqhmqradz2jbsxwm2sk3cgcf";
+    sha256 = "111g2f3y5lmz91m755jz0x8yx5cx9ym484gch8wcv80dmr7ilb1y";
     fetchSubmodules = true;
   };
 
@@ -55,7 +56,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/applications/version-management/bcompare/default.nix b/pkgs/applications/version-management/bcompare/default.nix
index d9a98ecce28..1af64f8e6df 100644
--- a/pkgs/applications/version-management/bcompare/default.nix
+++ b/pkgs/applications/version-management/bcompare/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bcompare";
-  version = "4.3.4.24657";
+  version = "4.3.5.24893";
 
   src = fetchurl {
     url = "https://www.scootersoftware.com/${pname}-${version}_amd64.deb";
-    sha256 = "031ivmpy0mk43skb30r7p5zwf0m90pmsqhaq5kc08gzy6g4s0wd0";
+    sha256 = "1gm8d6hgdg8f3hd83wqac28gkvz5nyn62wj7x44vmr60dh4i2jfn";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/version-management/fossil/default.nix b/pkgs/applications/version-management/fossil/default.nix
index d23728a060f..f8ad81c6058 100644
--- a/pkgs/applications/version-management/fossil/default.nix
+++ b/pkgs/applications/version-management/fossil/default.nix
@@ -1,11 +1,21 @@
 { stdenv
-, libiconv, fetchurl, zlib, openssl, tcl, readline, sqlite, ed, which
-, tcllib, withJson ? true
+, installShellFiles
+, tcl
+, libiconv
+, fetchurl
+, zlib
+, openssl
+, readline
+, sqlite
+, ed
+, which
+, tcllib
+, withJson ? true
 }:
 
 stdenv.mkDerivation rec {
   pname = "fossil";
-  version = "2.11.1";
+  version = "2.12.1";
 
   src = fetchurl {
     urls =
@@ -13,29 +23,36 @@ stdenv.mkDerivation rec {
         "https://www.fossil-scm.org/index.html/uv/fossil-src-${version}.tar.gz"
       ];
     name = "${pname}-${version}.tar.gz";
-    sha256 = "1sxq1hn87fdikhbg9y3v4sjy4gxaifnx4dig8nx6xwd5mm7z74dk";
+    sha256 = "00v6gmn2wpfms5jzf103hkm5s8i3bfs5mzacmznlhdzdrzzjc8w2";
   };
 
+  nativeBuildInputs = [ installShellFiles tcl ];
+
   buildInputs = [ zlib openssl readline sqlite which ed ]
-             ++ stdenv.lib.optional stdenv.isDarwin libiconv;
-  nativeBuildInputs = [ tcl ];
+    ++ stdenv.lib.optional stdenv.isDarwin libiconv;
 
   doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
+
+  configureFlags = [ "--disable-internal-sqlite" ]
+    ++ stdenv.lib.optional withJson "--json";
+
   preCheck = ''
     export TCLLIBPATH="${tcllib}/lib/tcllib${tcllib.version}"
   '';
-  configureFlags = stdenv.lib.optional withJson "--json";
 
-  preBuild=''
+  preBuild = ''
     export USER=nonexistent-but-specified-user
   '';
 
   installPhase = ''
     mkdir -p $out/bin
     INSTALLDIR=$out/bin make install
+
+    installManPage fossil.1
+    installShellCompletion --name fossil.bash tools/fossil-autocomplete.bash
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Simple, high-reliability, distributed software configuration management";
     longDescription = ''
       Fossil is a software configuration management system.  Fossil is
@@ -45,11 +62,7 @@ stdenv.mkDerivation rec {
       from the others by being extremely simple to setup and operate.
     '';
     homepage = "http://www.fossil-scm.org/";
-    license = stdenv.lib.licenses.bsd2;
-    platforms = with stdenv.lib.platforms; all;
-    maintainers = [ #Add your name here!
-      stdenv.lib.maintainers.maggesi
-      stdenv.lib.maintainers.viric
-    ];
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ maggesi viric ];
   };
 }
diff --git a/pkgs/applications/version-management/gerrit/default.nix b/pkgs/applications/version-management/gerrit/default.nix
index fc69ea7f65f..5b4808e87a6 100644
--- a/pkgs/applications/version-management/gerrit/default.nix
+++ b/pkgs/applications/version-management/gerrit/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gerrit";
-  version = "3.1.5";
+  version = "3.2.3";
 
   src = fetchurl {
     url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war";
-    sha256 = "0gyh6a0p8gcrfnkm0sdjvzg6is9iirxjyffgza6k4v9rz6pjx8i8";
+    sha256 = "0hdxbn5qqqjzpqfcydz33nc351zanxp0j2k0ivizx4dn40fnavd7";
   };
 
   buildCommand = ''
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.gerritcodereview.com/index.md";
     license = licenses.asl20;
     description = "A web based code review and repository management for the git version control system";
-    maintainers = with maintainers; [ jammerful zimbatm ];
+    maintainers = with maintainers; [ flokli jammerful zimbatm ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index b2511a7f2b3..657ae4605eb 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -63,6 +63,8 @@ let
 
   git-annex-utils = callPackage ./git-annex-utils { };
 
+  git-brunch = pkgs.haskellPackages.git-brunch;
+
   git-appraise = callPackage ./git-appraise {};
 
   git-bug = callPackage ./git-bug { };
@@ -96,7 +98,7 @@ let
 
   git-fame = callPackage ./git-fame {};
 
-  git-fast-export = callPackage ./fast-export { };
+  git-fast-export = callPackage ./fast-export { mercurial = mercurial_4; };
 
   git-filter-repo = callPackage ./git-filter-repo {
     pythonPackages = python3Packages;
@@ -235,6 +237,7 @@ let
   # aliases
   darcsToGit = darcs-to-git;
   gitAnnex = git-annex;
+  gitBrunch = git-brunch;
   gitFastExport = git-fast-export;
   gitRemoteGcrypt = git-remote-gcrypt;
   svn_all_fast_export = svn-all-fast-export;
diff --git a/pkgs/applications/version-management/git-and-tools/delta/default.nix b/pkgs/applications/version-management/git-and-tools/delta/default.nix
index 0cc184e2cfe..b3af66c3ffd 100644
--- a/pkgs/applications/version-management/git-and-tools/delta/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/delta/default.nix
@@ -9,24 +9,24 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "delta";
-  version = "0.2.0";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
     owner = "dandavison";
     repo = pname;
     rev = version;
-    sha256 = "15c7rsmiinnpxh12520jz3wr0j86vgzjq1ss5pf30fa7lcgicb32";
+    sha256 = "0g7jg6bxxihplxzq3ixdm24d36xd7xlwpazz8qj040m981cj123i";
   };
 
-  cargoSha256 = "0lzz32qh80s4dxr0d4pg0qagkn549lr4vbqknl2l0cmlq1bvvq6g";
+  cargoSha256 = "0q73adygyddjyajwwbkrhwss4f8ynxsga5yz4ac5fk5rzmda75rv";
 
   nativeBuildInputs = [ installShellFiles ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
   postInstall = ''
-    installShellCompletion --bash --name delta.bash completion/completion.bash
-    installShellCompletion --zsh --name _delta completion/completion.zsh
+    installShellCompletion --bash --name delta.bash etc/completion/completion.bash
+    installShellCompletion --zsh --name _delta etc/completion/completion.zsh
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix b/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
index c073edaee7d..ffdb788745a 100644
--- a/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
@@ -11,12 +11,19 @@ stdenv.mkDerivation rec {
     sha256 = "0aavxahzha2mms4vdwysk79pa6wzswpfwgsq2hwaxnaf66maahfl";
   };
 
-  # Perl is needed here for patchShebangs
-  nativeBuildInputs = [ perl makeWrapper ];
+  nativeBuildInputs = [
+    makeWrapper
+  ];
 
-  buildPhase = null;
+  buildInputs = [
+    perl # needed for patchShebangs
+  ];
+
+  dontBuild = true;
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin $out/lib/diff-so-fancy
 
     # diff-so-fancy executable searches for it's library relative to
@@ -32,6 +39,8 @@ stdenv.mkDerivation rec {
       --prefix PATH : "${git}/bin" \
       --prefix PATH : "${coreutils}/bin" \
       --prefix PATH : "${ncurses.out}/bin"
+
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/version-management/git-and-tools/fast-export/default.nix b/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
index 22009f10d44..80f048d0575 100644
--- a/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
@@ -1,13 +1,14 @@
-{stdenv, fetchgit, mercurial, makeWrapper}:
+{stdenv, fetchFromGitHub, git, mercurial, makeWrapper}:
 
 stdenv.mkDerivation rec {
   pname = "fast-export";
-  version = "190107";
+  version = "200213";
 
-  src = fetchgit {
-    url = "git://repo.or.cz/fast-export.git";
+  src = fetchFromGitHub {
+    owner = "frej";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "14azfps9jd5anivcvfwflgsvqdyy6gm9jy284kzx2ng9f7871d14";
+    sha256 = "0hzyh66rlawxip4n2pvz7pbs0cq82clqv1d6c7hf60v1drjxw287";
   };
 
   buildInputs = [mercurial.python mercurial makeWrapper];
@@ -27,11 +28,34 @@ stdenv.mkDerivation rec {
 
     for script in $out/bin/*.sh; do
       wrapProgram $script \
-        --prefix PATH : "${mercurial.python}/bin":$libexec \
+        --prefix PATH : "${git}/bin":"${mercurial.python}/bin":$libexec \
         --prefix PYTHONPATH : "${mercurial}/${mercurial.python.sitePackages}":$sitepackagesPath
     done
   '';
 
+  doInstallCheck = true;
+  # deliberately not adding git or hg into installCheckInputs - package should
+  # be able to work without them in runtime env
+  installCheckPhase = ''
+    mkdir repo-hg
+    pushd repo-hg
+    ${mercurial}/bin/hg init
+    echo foo > bar
+    ${mercurial}/bin/hg add bar
+    ${mercurial}/bin/hg commit --message "baz"
+    popd
+
+    mkdir repo-git
+    pushd repo-git
+    ${git}/bin/git init
+    ${git}/bin/git config core.ignoreCase false  # for darwin
+    $out/bin/hg-fast-export.sh -r ../repo-hg/ --hg-hash
+    for s in "foo" "bar" "baz" ; do
+      (${git}/bin/git show | grep $s > /dev/null) && echo $s found
+    done
+    popd
+  '';
+
   meta = with stdenv.lib; {
     description = "Import mercurial into git";
     homepage = "https://repo.or.cz/w/fast-export.git";
diff --git a/pkgs/applications/version-management/git-and-tools/gh/default.nix b/pkgs/applications/version-management/git-and-tools/gh/default.nix
index 9601de85897..d456dc15c54 100644
--- a/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "0.10.1";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "0q4zpm10hcci4j0g1gx08q2qwn71ab9f7yaf4k78sfn5p89y7rm2";
+    sha256 = "0l1d75smvly2k6s3j55n674ld6i5hd8yn6lfhg8vvkvhxx2jjvb9";
   };
 
-  vendorSha256 = "0igbqnylryiq36lbb1gha8najijzxmn10asc0xayxygbxc16s1vi";
+  vendorSha256 = "1xq1n583p0a3j78afprm2hk5f1hchdrx4vvphml95rv9786vjbcc";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -29,6 +29,10 @@ buildGoModule rec {
     done
   '';
 
+  checkPhase = ''
+    make test
+  '';
+
   meta = with lib; {
     description = "GitHub CLI tool";
     homepage = "https://cli.github.com/";
diff --git a/pkgs/applications/version-management/git-and-tools/ghq/default.nix b/pkgs/applications/version-management/git-and-tools/ghq/default.nix
index 288116ce2c7..96f72f2d69c 100644
--- a/pkgs/applications/version-management/git-and-tools/ghq/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/ghq/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "ghq";
-  version = "1.1.2";
+  version = "1.1.5";
 
   src = fetchFromGitHub {
     owner = "x-motemen";
     repo = "ghq";
     rev = "v${version}";
-    sha256 = "1qzrycmd26f4q36z3rblfxp7jngqgmspb9385vpfwv9laiw3sqrg";
+    sha256 = "098fik155viylq07az7crzbgswcvhpx0hr68xpvyx0rpri792jbq";
   };
 
-  vendorSha256 = "0x347ljj9q3zi0zf8x13dhvsydv9vg4qc5l1kc2y56v0w8hlb4p7";
+  vendorSha256 = "0gll132g111vn1hdmdjpkha9rbyppz0qj1ld89gwlk2mqd57jxkd";
+
+  doCheck = false;
 
   buildFlagsArray = ''
     -ldflags=
@@ -29,4 +31,4 @@ buildGoModule rec {
     maintainers = with stdenv.lib.maintainers; [ sigma ];
     license = stdenv.lib.licenses.mit;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix b/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix
index 7796f08c8a4..4895a2e399b 100644
--- a/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix
@@ -18,7 +18,6 @@ buildGoPackage rec {
     description = "Distributed code review system for Git repos";
     homepage = "https://github.com/google/git-appraise";
     license = stdenv.lib.licenses.asl20;
-    platforms = stdenv.lib.platforms.all;
     maintainers = [ stdenv.lib.maintainers.vdemeester ];
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/git-bug/default.nix b/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
index 0903af7499a..44eba8c4b39 100644
--- a/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
@@ -4,7 +4,6 @@ buildGoModule rec {
   pname = "git-bug";
   version = "0.7.1"; # the `rev` below pins the version of the source to get
   rev = "2d64b85db71a17ff3277bbbf7ac9d8e81f8e416c";
-  goPackagePath = "github.com/MichaelMure/git-bug";
 
   src = fetchFromGitHub {
     inherit rev;
@@ -15,11 +14,13 @@ buildGoModule rec {
 
   vendorSha256 = "0c8b47lj4wl3s21lm0vx4z7hznylm8c4fb8b8gxm278kn3zys607";
 
+  doCheck = false;
+
   buildFlagsArray = ''
     -ldflags=
-      -X ${goPackagePath}/commands.GitCommit=${rev}
-      -X ${goPackagePath}/commands.GitLastTag=${version}
-      -X ${goPackagePath}/commands.GitExactTag=${version}
+      -X github.com/MichaelMure/git-bug/commands.GitCommit=${rev}
+      -X github.com/MichaelMure/git-bug/commands.GitLastTag=${version}
+      -X github.com/MichaelMure/git-bug/commands.GitExactTag=${version}
   '';
 
   postInstall = ''
@@ -32,7 +33,6 @@ buildGoModule rec {
     description = "Distributed bug tracker embedded in Git";
     homepage = "https://github.com/MichaelMure/git-bug";
     license = licenses.gpl3;
-    platforms = platforms.all;
     maintainers = with maintainers; [ royneary ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix b/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix
index e4c57be2357..5a7e5bd32af 100644
--- a/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "git-filter-repo";
-  version = "2.27.1";
+  version = "2.28.0";
 
   src = fetchurl {
     url = "https://github.com/newren/git-filter-repo/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "07r32n31ryflgz1ds3dz5s3ixv7li3scxwavy9mzbzdhq6bbzl28";
+    sha256 = "0sa6h6k1mnhx8p8w5d88gx7cqbnxaazfj1dv47c107fk70hqvvpx";
   };
 
   buildInputs = [ pythonPackages.python ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix b/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix
index 93d152baa00..a2f319d82b0 100644
--- a/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix
@@ -30,7 +30,6 @@ buildRustPackage rec {
     description = "Quickly and easily fetch .gitignore templates from gitignore.io";
     homepage = "https://github.com/sondr3/git-ignore";
     license = licenses.gpl3Plus;
-    platforms = platforms.all;
     maintainers = [ maintainers.sondr3 ];
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
index 9cdec7464a6..a7d8080708e 100644
--- a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonApplication rec {
   pname = "git-machete";
-  version = "2.15.2";
+  version = "2.15.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0qv08a6xsdmcm8l69m4103vn4crb0ilzx94334xjbdl0sykm55q0";
+    sha256 = "0n2lrsjs3flfv7650yfhck1c96wkn41cv49440m7csy5yw16zlim";
   };
 
   nativeBuildInputs = [ installShellFiles pbr ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix b/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
index 37c06d3a85e..dd4e6e011a6 100644
--- a/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
@@ -1,36 +1,32 @@
-{ stdenv, lib, fetchFromGitHub, mercurial, makeWrapper
+{ stdenv, lib, fetchFromGitHub, python3Packages
 , asciidoc, xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt, libxml2
 }:
 
-stdenv.mkDerivation rec {
+python3Packages.buildPythonApplication rec {
   pname = "git-remote-hg";
-  version = "1.0.1";
+  version = "unstable-2020-06-12";
 
   src = fetchFromGitHub {
     owner = "mnauw";
     repo = "git-remote-hg";
-    rev = "v${version}";
-    sha256 = "1by5ygqvq9ww990kdrjndaqsssyf2jc4n380f9pfh2avsr7871wc";
+    rev = "28ed63b707919734d230cb13bff7d231dfeee8fc";
+    sha256 = "0dw48vbnk7pp0w6fzgl29mq8fyn52pacbya2w14z9c6jfvh5sha1";
   };
 
-  buildInputs = [ mercurial.python mercurial makeWrapper
+  nativeBuildInputs = [
     asciidoc xmlto docbook_xsl docbook_xml_dtd_45 libxslt libxml2
   ];
-
-  doCheck = false;
-
-  installFlags = [ "HOME=\${out}" "install-doc" ];
+  propagatedBuildInputs = with python3Packages; [ mercurial ];
 
   postInstall = ''
-    wrapProgram $out/bin/git-remote-hg \
-      --prefix PYTHONPATH : "$(echo ${mercurial}/lib/python*/site-packages):$(echo ${mercurial.python}/lib/python*/site-packages)${stdenv.lib.concatMapStrings (x: ":$(echo ${x}/lib/python*/site-packages)") mercurial.pythonPackages or []}"
+    make install-doc prefix=$out
   '';
 
   meta = with lib; {
     homepage = "https://github.com/mnauw/git-remote-hg";
     description = "Semi-official Mercurial bridge from Git project";
     license = licenses.gpl2;
-    maintainers = [ ];
+    maintainers = with maintainers; [ qyliss ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/git-subtrac/default.nix b/pkgs/applications/version-management/git-and-tools/git-subtrac/default.nix
index be67beef299..75ca58d4331 100644
--- a/pkgs/applications/version-management/git-and-tools/git-subtrac/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-subtrac/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1ccwbhzwys8sl3m2rs2lp70snzsi2a0ahnnq8kn15rrlvsv5qahf";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Keep the content for your git submodules all in one place: the parent repo";
     homepage = "https://github.com/apenwarr/git-subtrac";
diff --git a/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix b/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix
index 8894c4f0f7a..674bdd14247 100644
--- a/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix
@@ -2,28 +2,29 @@
 , fetchFromGitHub
 , rustPlatform
 , Security
+, pkgconfig, openssl
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "git-workspace";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "orf";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0n025bnisg724d9pjcindxagj1ry63sxr0pplpkh2f2qffzm78pi";
+    sha256 = "1ckfk221ag6yhbqxfz432wpgbhddgzgdsaxhl1ymw90pwpnz717y";
   };
 
-  cargoSha256 = "0ikyp6pdlw2c1gr1n1snjbdmblm0fs5swx5awy36jskii99q6kr1";
+  cargoSha256 = "0zkns037vgy96ybmn80px515ivz6yhj5br5mwbvxgl73va92wd9v";
 
-  buildInputs = with stdenv; lib.optional isDarwin Security;
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security;
 
   meta = with stdenv.lib; {
     description = "Sync personal and work git repositories from multiple providers";
     homepage = "https://github.com/orf/git-workspace";
     license = with licenses; [ mit ];
-    platforms = platforms.all;
     maintainers = with maintainers; [ misuzu ];
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 5686b1c6f3f..b0042b2ee9e 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -6,6 +6,7 @@
 , libxslt, tcl, tk, makeWrapper, libiconv
 , svnSupport, subversionClient, perlLibs, smtpPerlLibs
 , perlSupport ? true
+, nlsSupport ? true
 , guiSupport
 , withManual ? true
 , pythonSupport ? true
@@ -21,7 +22,7 @@ assert sendEmailSupport -> perlSupport;
 assert svnSupport -> perlSupport;
 
 let
-  version = "2.27.0";
+  version = "2.28.0";
   svn = subversionClient.override { perlBindings = perlSupport; };
 
   gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
@@ -33,7 +34,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    sha256 = "1ybk39ylvs32lywq7ra4l2kdr5izc80r9461hwfnw8pssxs9gjkk";
+    sha256 = "17a311vzimqn1glc9d7x82rhb1mb81m5rr4g8xji8idaafid39fz";
   };
 
   outputs = [ "out" ] ++ stdenv.lib.optional withManual "doc";
@@ -98,6 +99,7 @@ stdenv.mkDerivation {
   ++ (if stdenv.isDarwin then ["NO_APPLE_COMMON_CRYPTO=1"] else ["sysconfdir=/etc"])
   ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl ["NO_SYS_POLL_H=1" "NO_GETTEXT=YesPlease"]
   ++ stdenv.lib.optional withpcre2 "USE_LIBPCRE2=1"
+  ++ stdenv.lib.optional (!nlsSupport) "NO_GETTEXT=1"
   # git-gui refuses to start with the version of tk distributed with
   # macOS Catalina. We can prevent git from building the .app bundle
   # by specifying an invalid tk framework. The postInstall step will
diff --git a/pkgs/applications/version-management/git-and-tools/gita/default.nix b/pkgs/applications/version-management/git-and-tools/gita/default.nix
index 5fe6b34fd3b..3e07a93458b 100644
--- a/pkgs/applications/version-management/git-and-tools/gita/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gita/default.nix
@@ -9,11 +9,11 @@
 }:
 
 buildPythonApplication rec {
-  version = "0.10.9";
+  version = "0.10.10";
   pname = "gita";
 
   src = fetchFromGitHub {
-    sha256 = "0wilyf4nnn2jyxrfqs8krya3zvhj6x36szsp9xhb6h08g1ihzp5i";
+    sha256 = "0k7hicncbrqvhmpq1w3v1309bqij6izw31xs8xcb8is85dvi754h";
     rev = "v${version}";
     repo = "gita";
     owner = "nosarthur";
@@ -45,6 +45,7 @@ buildPythonApplication rec {
 
   postInstall = ''
     installShellCompletion --bash --name gita ${src}/.gita-completion.bash
+    installShellCompletion --zsh --name gita ${src}/.gita-completion.zsh
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/version-management/git-and-tools/gitin/default.nix b/pkgs/applications/version-management/git-and-tools/gitin/default.nix
index 5964af6c0f0..af9aef6d39c 100644
--- a/pkgs/applications/version-management/git-and-tools/gitin/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitin/default.nix
@@ -26,7 +26,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     homepage = "https://github.com/isacikgoz/gitin";
     description = "Text-based user interface for git";
-    platforms = platforms.all;
     license = licenses.bsd3;
     maintainers = with maintainers; [ kimat ];
   };
diff --git a/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix b/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
index 33048c95b67..b0e14859eed 100644
--- a/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gitstatus";
-  version = "1.1.3";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "gitstatus";
     rev = "v${version}";
-    sha256 = "16s09d2kpw0v0kyr2ada99qmsi0pqnsiis22mzq69hay0hdg8p1n";
+    sha256 = "1kspz2fhryyjhn6gqf029rv0386a1ga08sf6g0l6smivw628k71l";
   };
 
   buildInputs = [ (callPackage ./romkatv_libgit2.nix {}) ];
diff --git a/pkgs/applications/version-management/git-and-tools/gitui/default.nix b/pkgs/applications/version-management/git-and-tools/gitui/default.nix
index d3581eef559..25985ef0a23 100644
--- a/pkgs/applications/version-management/git-and-tools/gitui/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitui/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gitui";
-  version = "0.5.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "extrawurst";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0z3k83nfnl765ably4naybjf614qfizzpqb40ppwljijj9nqlng1";
+    sha256 = "0lxpdwpxizc4bczh5cl2x2xbbdam3fakvgcbbrdh43czgjwb4ds1";
   };
 
-  cargoSha256 = "11y4q56vl5dp2vdc7dc5q44l2m0mn590hfg6i134m11r8988am6y";
+  cargoSha256 = "14x0m3pq4gapgqaljxdwmr5pk9h209ls95an9xgrq0dj6apyimgx";
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
 
diff --git a/pkgs/applications/version-management/git-and-tools/lab/default.nix b/pkgs/applications/version-management/git-and-tools/lab/default.nix
index eaab2e6c505..2413019ebc7 100644
--- a/pkgs/applications/version-management/git-and-tools/lab/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/lab/default.nix
@@ -15,6 +15,8 @@ buildGoModule rec {
 
   vendorSha256 = "1lrmafvv5zfn9kc0p8g5vdz351n1zbaqwhwk861fxys0rdpqskyc";
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
   postInstall = ''
@@ -29,6 +31,5 @@ buildGoModule rec {
     homepage = "https://zaquestion.github.io/lab";
     license = licenses.cc0;
     maintainers = with maintainers; [ marsam dtzWill ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/version-management/git-and-tools/lefthook/default.nix b/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
index d86fca1a6d4..15c323680a4 100644
--- a/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "1pdrw4vwbj9cka2pjbjvxviigfvnrf8sgws27ixwwiblbkj4isc8";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Fast and powerful Git hooks manager for any type of projects";
     homepage = "https://github.com/Arkweid/lefthook";
     license = licenses.mit;
     maintainers = with maintainers; [ rencire ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/version-management/git-and-tools/stgit/default.nix b/pkgs/applications/version-management/git-and-tools/stgit/default.nix
index 36ea373177a..1bad72296b4 100644
--- a/pkgs/applications/version-management/git-and-tools/stgit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/stgit/default.nix
@@ -1,28 +1,26 @@
-{ stdenv, python3, python3Packages, fetchFromGitHub, git }:
+{ stdenv, python3Packages, fetchFromGitHub, git, installShellFiles }:
 
 python3Packages.buildPythonApplication rec {
   pname = "stgit";
-  version = "0.22";
+  version = "0.23";
 
   src = fetchFromGitHub {
     owner = "ctmarinas";
     repo = "stgit";
     rev = "v${version}";
-    sha256 = "0xpvs5fa50rrvl2c8naha1nblk5ip2mgg63a9srqqxfx6z8qmrfz";
+    sha256 = "1r9y8qnl6kdvq61788pnfhhgyv2xrnyrizbhy4qz4l1bpqkwfr2r";
   };
 
-  nativeBuildInputs = [ git ];
+  nativeBuildInputs = [ installShellFiles ];
 
-  makeFlags = [ "prefix=$$out" ];
+  checkInputs = [ git ];
 
   postInstall = ''
-    mkdir -p "$out/etc/bash_completion.d/"
-    ln -s ../../share/stgit/completion/stgit-completion.bash "$out/etc/bash_completion.d/"
+    installShellCompletion $out/share/stgit/completion/stg.fish
+    installShellCompletion --name stg $out/share/stgit/completion/stgit.bash
+    installShellCompletion --name _stg $out/share/stgit/completion/stgit.zsh
   '';
 
-  doCheck = false;
-  checkTarget = "test";
-
   meta = with stdenv.lib; {
     description = "A patch manager implemented on top of Git";
     homepage = "http://procode.org/stgit/";
diff --git a/pkgs/applications/version-management/git-and-tools/subgit/default.nix b/pkgs/applications/version-management/git-and-tools/subgit/default.nix
index 1fd70aab461..11189e02c8f 100644
--- a/pkgs/applications/version-management/git-and-tools/subgit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/subgit/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, unzip, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  name = "subgit-3.3.9";
+  name = "subgit-3.3.10";
 
   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 = "0dwd2kymmprci3b61ayr6axzlkc8zgbc40jqxvvyzschfxw9y0v5";
+    sha256 = "1z7cmaghfy5yjs50b3y6av9h2d6xmpamyxql7vvr3dy6kflvv8fk";
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/tig/default.nix b/pkgs/applications/version-management/git-and-tools/tig/default.nix
index cb03a9b42a2..9415c0eecf1 100644
--- a/pkgs/applications/version-management/git-and-tools/tig/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/tig/default.nix
@@ -34,13 +34,14 @@ stdenv.mkDerivation rec {
     # fixes tig-completion __git-complete dependency
     sed -i '1s;^;source ${git}/share/bash-completion/completions/git\n;' contrib/tig-completion.bash
 
-    substituteInPlace contrib/tig-completion.zsh \
-      --replace 'e=$(dirname ''${funcsourcetrace[1]%:*})/tig-completion.bash' "e=$out/share/bash-completion/completions/tig"
-
     install -D contrib/tig-completion.bash $out/share/bash-completion/completions/tig
-    install -D contrib/tig-completion.zsh $out/share/zsh/site-functions/_tig
     cp contrib/vim.tigrc $out/etc/
 
+    # Note: Until https://github.com/jonas/tig/issues/940 is resolved it is best
+    # not to install the ZSH completion so that the fallback implemenation from
+    # ZSH can be used (Completion/Unix/Command/_git: "_tig () { _git-log }"):
+    #install -D contrib/tig-completion.zsh $out/share/zsh/site-functions/_tig
+
     wrapProgram $out/bin/tig \
       --prefix PATH ':' "${git}/bin"
   '';
diff --git a/pkgs/applications/version-management/git-lfs/default.nix b/pkgs/applications/version-management/git-lfs/default.nix
index 80f236559f9..2df8b335bda 100644
--- a/pkgs/applications/version-management/git-lfs/default.nix
+++ b/pkgs/applications/version-management/git-lfs/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "git-lfs";
-  version = "2.11.0";
+  version = "2.12.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "git-lfs";
     repo = "git-lfs";
-    sha256 = "05qd96bn2cl7gn5qarbcv6scdpj28qiwdfzalamqk5jjiidpmng5";
+    sha256 = "0pyvlcy6jxh0vzpsmywlbzwwdyj3jkcclnqb6sg786mmwrnqzj88";
   };
 
   goPackagePath = "github.com/git-lfs/git-lfs";
@@ -30,6 +30,7 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     description = "Git extension for versioning large files";
     homepage    = "https://git-lfs.github.com/";
+    changelog   = "https://github.com/git-lfs/git-lfs/releases/tag/v${version}";
     license     = [ licenses.mit ];
     maintainers = [ maintainers.twey maintainers.marsam ];
   };
diff --git a/pkgs/applications/version-management/git-sizer/default.nix b/pkgs/applications/version-management/git-sizer/default.nix
index 6d41098ee1a..049a2aa2c1d 100644
--- a/pkgs/applications/version-management/git-sizer/default.nix
+++ b/pkgs/applications/version-management/git-sizer/default.nix
@@ -17,6 +17,5 @@ buildGoPackage rec {
     description = "Compute various size metrics for a Git repository";
     license = licenses.mit;
     maintainers = with maintainers; [ matthewbauer ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix
index aaae2a4a257..5005b9137a8 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/applications/version-management/gitea/default.nix
@@ -8,11 +8,11 @@ with stdenv.lib;
 
 buildGoPackage rec {
   pname = "gitea";
-  version = "1.12.1";
+  version = "1.12.4";
 
   src = fetchurl {
     url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
-    sha256 = "0n92msf5pbgb5q6pa2p0nj9lnzs4y0qis62c5mp4hp8rc1j22wlb";
+    sha256 = "0zz3mwf1yhncvi6pl52lcwbl7k4kkrqyw8q3476akwszjn79n83c";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/version-management/gitea/static-root-path.patch b/pkgs/applications/version-management/gitea/static-root-path.patch
index 985dbe04082..e486397d9cf 100644
--- a/pkgs/applications/version-management/gitea/static-root-path.patch
+++ b/pkgs/applications/version-management/gitea/static-root-path.patch
@@ -1,13 +1,13 @@
 diff --git a/modules/setting/setting.go b/modules/setting/setting.go
-index 714015c47..a2f85337e 100644
+index 45e55a2..9d18ee4 100644
 --- a/modules/setting/setting.go
 +++ b/modules/setting/setting.go
-@@ -641,7 +641,7 @@ func NewContext() {
- 	PortToRedirect = sec.Key("PORT_TO_REDIRECT").MustString("80")
+@@ -667,7 +667,7 @@ func NewContext() {
  	OfflineMode = sec.Key("OFFLINE_MODE").MustBool()
  	DisableRouterLog = sec.Key("DISABLE_ROUTER_LOG").MustBool()
--	StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(AppWorkPath)
-+	StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString("@data@")
+ 	if len(StaticRootPath) == 0 {
+-		StaticRootPath = AppWorkPath
++		StaticRootPath = "@data@"
+ 	}
+ 	StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(StaticRootPath)
  	StaticCacheTime = sec.Key("STATIC_CACHE_TIME").MustDuration(6 * time.Hour)
- 	AppDataPath = sec.Key("APP_DATA_PATH").MustString(path.Join(AppWorkPath, "data"))
- 	EnableGzip = sec.Key("ENABLE_GZIP").MustBool()
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index 64f1fc00ae7..dedddb6b39d 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -3,7 +3,7 @@
 , libX11, libXi, libxcb, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst
 , nss, nspr, cups, fetchzip, expat, gdk-pixbuf, libXdamage, libXrandr, dbus
 , makeDesktopItem, openssl, wrapGAppsHook, at-spi2-atk, at-spi2-core, libuuid
-, e2fsprogs, krb5
+, e2fsprogs, krb5, libdrm, mesa
 }:
 
 with stdenv.lib;
@@ -13,11 +13,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gitkraken";
-  version = "7.0.1";
+  version = "7.3.0";
 
   src = fetchzip {
     url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
-    sha256 = "0vj2ggbm617fypl69ksbrbl048xp4v6wc46y4sp7hrk6lg0gw1b0";
+    sha256 = "0q9imaka79p3krmcrxvnxzb2gprczybnw8d4y9p4icbmdbyb6h70";
   };
 
   dontBuild = true;
@@ -61,6 +61,8 @@ stdenv.mkDerivation rec {
     libuuid
     e2fsprogs
     krb5
+    libdrm
+    mesa
   ];
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index bc342ff2b5e..9389934ffc6 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,11 +1,11 @@
 {
-  "version": "13.0.6",
-  "repo_hash": "0iyzx5lnkwp6m8q5p60gzsjmpf6qflvzl0vzfw37hymnxwq646zy",
+  "version": "13.0.14",
+  "repo_hash": "15is18x631ifsj4iwmrs1s9lc3i99hwsxxf5v42qldbmsys31l1k",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v13.0.6-ee",
+  "rev": "v13.0.14-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "13.0.6",
+    "GITALY_SERVER_VERSION": "13.0.14",
     "GITLAB_PAGES_VERSION": "1.18.0",
     "GITLAB_SHELL_VERSION": "13.2.0",
     "GITLAB_WORKHORSE_VERSION": "8.31.2"
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 8f51b33fbd4..84cf1e500a2 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -19,14 +19,14 @@ let
       };
   };
 in buildGoPackage rec {
-  version = "13.0.6";
+  version = "13.0.14";
   pname = "gitaly";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitaly";
     rev = "v${version}";
-    sha256 = "14vp73z9f0p3m1bjykkfzrmw9miyjxiqm79rns477xbm2dbmwa4s";
+    sha256 = "16ynkwiv0faa60msashj5w1bc4rdh7yv2qjmpcbf7dwq54gqmlbv";
   };
 
   # Fix a check which assumes that hook files are writeable by their
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix b/pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix
index b4105f18c10..72c0f2cdf51 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix
@@ -13,7 +13,7 @@
     goPackagePath = "cloud.google.com/go";
     fetch = {
       type = "git";
-      url = "https://code.googlesource.com/gocloud";
+      url = "https://github.com/googleapis/google-cloud-go";
       rev = "v0.26.0";
       sha256 = "149v3ci17g6wd2pm18mzcncq5qpl9hwdjnz3rlbn5rfidyn46la1";
     };
@@ -634,7 +634,7 @@
     goPackagePath = "google.golang.org/genproto";
     fetch = {
       type = "git";
-      url = "https://github.com/google/go-genproto";
+      url = "https://github.com/googleapis/go-genproto";
       rev = "bd91e49a0898";
       sha256 = "1f5q04h03q6fksbfkhz13ai5849rkkb8xrmmi7cxs4lzsi6ixkg8";
     };
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 723863edfd9..e6407161f8e 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -559,18 +559,18 @@ GEM
     json-schema (2.8.0)
       addressable (>= 2.4)
     jwt (2.1.0)
-    kaminari (1.0.1)
+    kaminari (1.2.1)
       activesupport (>= 4.1.0)
-      kaminari-actionview (= 1.0.1)
-      kaminari-activerecord (= 1.0.1)
-      kaminari-core (= 1.0.1)
-    kaminari-actionview (1.0.1)
+      kaminari-actionview (= 1.2.1)
+      kaminari-activerecord (= 1.2.1)
+      kaminari-core (= 1.2.1)
+    kaminari-actionview (1.2.1)
       actionview
-      kaminari-core (= 1.0.1)
-    kaminari-activerecord (1.0.1)
+      kaminari-core (= 1.2.1)
+    kaminari-activerecord (1.2.1)
       activerecord
-      kaminari-core (= 1.0.1)
-    kaminari-core (1.0.1)
+      kaminari-core (= 1.2.1)
+    kaminari-core (1.2.1)
     kgio (2.11.3)
     knapsack (1.17.0)
       rake
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index 041f19226f4..7156347be05 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -2382,10 +2382,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0invfvfb252ihsdr65rylkvd1x2wy004jval52v3i8ybb0jhc5hi";
+      sha256 = "1vxkqciny5v4jgmjxl8qrgbmig2cij2iskqbwh4bfcmpxf467ch3";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.2.1";
   };
   kaminari-actionview = {
     dependencies = ["actionview" "kaminari-core"];
@@ -2393,10 +2393,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mhhsm6xhmwqc7hfw7xnk1kdbfg468bqs5awcqm5j6j8b9zyjvdi";
+      sha256 = "0w0p1hyv6lgf6h036cmn2kbkdv4x7g0g9q9kc5gzkpz7amlxr8ri";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.2.1";
   };
   kaminari-activerecord = {
     dependencies = ["activerecord" "kaminari-core"];
@@ -2404,20 +2404,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kb5aj6iy1cwcq5548jd3w1ipxicnzmnx2ay1s4hvad2gvrd4g93";
+      sha256 = "02n5xxv6ilh39q2m6vcz7qrdai7ghk3s178dw6f0b3lavwyq49w3";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.2.1";
   };
   kaminari-core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r2n293ad1xr9wgn8cr53nfzwls4w3p1xi4kjfjgl1z0yf05mpwr";
+      sha256 = "0h04cr4y1jfn81gxy439vmczifghc2cvsyw47aa32is5bbxg1wlz";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.2.1";
   };
   kgio = {
     groups = ["default" "unicorn"];
diff --git a/pkgs/applications/version-management/gitlab/yarnPkgs.nix b/pkgs/applications/version-management/gitlab/yarnPkgs.nix
index f7851c6adcb..797329c613e 100644
--- a/pkgs/applications/version-management/gitlab/yarnPkgs.nix
+++ b/pkgs/applications/version-management/gitlab/yarnPkgs.nix
@@ -11706,11 +11706,11 @@
       };
     }
     {
-      name = "swagger_ui_dist___swagger_ui_dist_3.24.3.tgz";
+      name = "swagger_ui_dist___swagger_ui_dist_3.26.2.tgz";
       path = fetchurl {
-        name = "swagger_ui_dist___swagger_ui_dist_3.24.3.tgz";
-        url  = "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-3.24.3.tgz";
-        sha1 = "99754d11b0ddd314a1a50db850acb415e4b0a0c6";
+        name = "swagger_ui_dist___swagger_ui_dist_3.26.2.tgz";
+        url  = "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-3.26.2.tgz";
+        sha1 = "22c700906c8911b1c9956da6c3fca371dba6219f";
       };
     }
     {
@@ -13226,11 +13226,11 @@
       };
     }
     {
-      name = "xterm___xterm_3.5.0.tgz";
+      name = "xterm___xterm_3.14.5.tgz";
       path = fetchurl {
-        name = "xterm___xterm_3.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/xterm/-/xterm-3.5.0.tgz";
-        sha1 = "ba3f464bc5730c9d259ebe62131862224db9ddcc";
+        name = "xterm___xterm_3.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/xterm/-/xterm-3.14.5.tgz";
+        sha1 = "c9d14e48be6873aa46fb429f22f2165557fd2dea";
       };
     }
     {
diff --git a/pkgs/applications/version-management/gitolite/default.nix b/pkgs/applications/version-management/gitolite/default.nix
index 60fed6954dc..d0853f33978 100644
--- a/pkgs/applications/version-management/gitolite/default.nix
+++ b/pkgs/applications/version-management/gitolite/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gitolite";
-  version = "3.6.11";
+  version = "3.6.12";
 
   src = fetchFromGitHub {
     owner = "sitaramc";
     repo = "gitolite";
     rev = "v${version}";
-    sha256 = "1rkj7gknwjlc5ij9w39zf5mr647bm45la57yjczydmvrb8c56yrh";
+    sha256 = "05xw1pmagvkrbzga5pgl3xk9qyc6b5x73f842454f3w9ijspa8zy";
   };
 
   buildInputs = [ nettools perl ];
diff --git a/pkgs/applications/version-management/gitoxide/default.nix b/pkgs/applications/version-management/gitoxide/default.nix
new file mode 100644
index 00000000000..0e9b3dbedb2
--- /dev/null
+++ b/pkgs/applications/version-management/gitoxide/default.nix
@@ -0,0 +1,24 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "gitoxide";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "Byron";
+    repo = "gitoxide";
+    rev = "v${version}";
+    sha256 = "0xpic9jx7nrxi5d8lqch2vxpvipx994d717c4n0kgr3ipyij1347";
+  };
+
+  cargoSha256 = "104lyfni75h1i30s2jlzf66sp1czfd9ywqz78kj4i7lfdf6fc4x9";
+
+  meta = with lib; {
+    description =
+      "A command-line application for interacting with git repositories";
+    homepage = "https://github.com/Byron/gitoxide";
+    # NOTE: the master branch is dual-licensed with APACHE but v0.3.0 is only MIT
+    license = licenses.mit;
+    maintainers = [ maintainers.syberant ];
+  };
+}
diff --git a/pkgs/applications/version-management/meld/default.nix b/pkgs/applications/version-management/meld/default.nix
index 3c46db6352e..07af9341646 100644
--- a/pkgs/applications/version-management/meld/default.nix
+++ b/pkgs/applications/version-management/meld/default.nix
@@ -1,53 +1,56 @@
-{ stdenv, fetchurl, itstool, python3, intltool, wrapGAppsHook
-, libxml2, gobject-introspection, gtk3, gtksourceview, gnome3
-, gsettings-desktop-schemas, dbus, xvfb_run
+{ stdenv
+, fetchurl
+, gettext
+, itstool
+, python3
+, meson
+, ninja
+, wrapGAppsHook
+, libxml2
+, pkg-config
+, desktop-file-utils
+, gobject-introspection
+, gtk3
+, gtksourceview4
+, gnome3
+, gsettings-desktop-schemas
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "meld";
-  version = "3.20.2";
+  version = "3.21.0";
+
+  format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0a0x156zr3w2yg0rnhwy39giy3xnfm6sqcfa4xcw4i6ahvwqa2dc";
+    sha256 = "toARTVq3kzJFSf1Y9OsgLY4oDAYzoLdl7ebfs0FgqBs=";
   };
 
   nativeBuildInputs = [
-    intltool itstool libxml2 gobject-introspection wrapGAppsHook
+    meson
+    ninja
+    gettext
+    itstool
+    libxml2
+    pkg-config
+    desktop-file-utils
+    gobject-introspection
+    wrapGAppsHook
   ];
+
   buildInputs = [
-    gtk3 gtksourceview gsettings-desktop-schemas gnome3.adwaita-icon-theme
+    gtk3
+    gtksourceview4
+    gsettings-desktop-schemas
+    gnome3.adwaita-icon-theme
     gobject-introspection # fixes https://github.com/NixOS/nixpkgs/issues/56943 for now
   ];
-  propagatedBuildInputs = with python3.pkgs; [ pygobject3 pycairo ];
-  checkInputs = [ xvfb_run python3.pkgs.pytest dbus gtksourceview gtk3 ];
-
-  installPhase = ''
-    runHook preInstall
-    ${python3.interpreter} setup.py install --prefix=$out
-    runHook postInstall
-  '';
-
-  checkPhase = ''
-    runHook preCheck
-
-    # Unable to create user data directory '/homeless-shelter/.local/share' for storing the recently used files list: Permission denied
-    mkdir test-home
-    export HOME=$(pwd)/test-home
 
-    # GLib.GError: gtk-icon-theme-error-quark: Icon 'meld-change-apply-right' not present in theme Adwaita
-    export XDG_DATA_DIRS="$out/share:$XDG_DATA_DIRS"
-
-    # ModuleNotFoundError: No module named 'meld'
-    export PYTHONPATH=$out/${python3.sitePackages}:$PYTHONPATH
-
-    # Gtk-CRITICAL **: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
-    xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
-      --config-file=${dbus.daemon}/share/dbus-1/session.conf \
-      py.test
-
-    runHook postCheck
-  '';
+  propagatedBuildInputs = with python3.pkgs; [
+    pygobject3
+    pycairo
+  ];
 
   passthru = {
     updateScript = gnome3.updateScript {
@@ -58,7 +61,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with stdenv.lib; {
     description = "Visual diff and merge tool";
     homepage = "http://meldmerge.org/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ jtojnar mimame ];
   };
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index 47453cb5e6f..c7a1c414987 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -8,11 +8,11 @@ let
 
 in python3Packages.buildPythonApplication rec {
   pname = "mercurial";
-  version = "5.4.1";
+  version = "5.4.2";
 
   src = fetchurl {
     url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
-    sha256 = "1ilam0dz121nn4852jgkgyzyrvk3hn5cqnivy8gk1qg815mh4763";
+    sha256 = "0ls8nwx3nz26pibphw54fg8pxqb365zmmqx95lqrxqqyf3d972sw";
   };
 
   format = "other";
diff --git a/pkgs/applications/version-management/p4/default.nix b/pkgs/applications/version-management/p4/default.nix
new file mode 100644
index 00000000000..3a397b5bf87
--- /dev/null
+++ b/pkgs/applications/version-management/p4/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, lib, autoPatchelfHook }:
+
+stdenv.mkDerivation rec {
+  pname = "p4";
+  version = "2020.1.1991450";
+
+  src = fetchurl {
+    url = "https://cdist2.perforce.com/perforce/r20.1/bin.linux26x86_64/helix-core-server.tgz";
+    sha256 = "0nhcxhwx3scx6vf7i2bc8j0b1l57lmq9bfy1cfbfbqasd3an721k";
+  };
+
+  sourceRoot = ".";
+
+  dontBuild = true;
+
+  nativeBuildInputs = [ autoPatchelfHook ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp p4 p4broker p4d p4p $out/bin
+  '';
+
+  meta = {
+    description = "Perforce Command-Line Client";
+    homepage = "https://www.perforce.com";
+    license = lib.licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with lib.maintainers; [ corngood ];
+  };
+}
diff --git a/pkgs/applications/version-management/p4v/default.nix b/pkgs/applications/version-management/p4v/default.nix
index 148f122f7c8..01ea365b76c 100644
--- a/pkgs/applications/version-management/p4v/default.nix
+++ b/pkgs/applications/version-management/p4v/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl, lib, qtbase, qtmultimedia, qtscript, qtsensors, qtwebkit, openssl_1_0_2, xkeyboard_config, wrapQtAppsHook }:
+{ stdenv, fetchurl, lib, qtbase, qtmultimedia, qtscript, qtsensors, qtwebengine, qtwebkit, openssl, xkeyboard_config, patchelfUnstable, wrapQtAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "p4v";
-  version = "2017.3.1601999";
+  version = "2020.1.1966006";
 
   src = fetchurl {
-    url = "https://cdist2.perforce.com/perforce/r17.3/bin.linux26x86_64/p4v.tgz";
-    sha256 = "9ded42683141e1808535ec3e87d3149f890315c192d6e97212794fd54862b9a4";
+    url = "https://cdist2.perforce.com/perforce/r20.1/bin.linux26x86_64/p4v.tgz";
+    sha256 = "0zc70d7jgdrd2jli338n1h05hgb7jmmv8hvq205wh78vvllrlv10";
   };
 
   dontBuild = true;
-  nativeBuildInputs = [ wrapQtAppsHook ];
+  nativeBuildInputs = [ patchelfUnstable wrapQtAppsHook ];
 
   ldLibraryPath = lib.makeLibraryPath [
       stdenv.cc.cc.lib
@@ -18,26 +18,33 @@ stdenv.mkDerivation rec {
       qtmultimedia
       qtscript
       qtsensors
+      qtwebengine
       qtwebkit
-      openssl_1_0_2
+      openssl
   ];
 
   dontWrapQtApps = true;
   installPhase = ''
     mkdir $out
     cp -r bin $out
-    mkdir -p $out/lib/p4v
-    cp -r lib/p4v/P4VResources $out/lib/p4v
+    mkdir -p $out/lib
+    cp -r lib/P4VResources $out/lib
 
     for f in $out/bin/*.bin ; do
-      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $f
-
+      patchelf --set-rpath $ldLibraryPath --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $f
+      # combining this with above breaks rpath (patchelf bug?)
+      patchelf --add-needed libstdc++.so $f \
+               --clear-symbol-version _ZNSt20bad_array_new_lengthD1Ev \
+               --clear-symbol-version _ZTVSt20bad_array_new_length \
+               --clear-symbol-version _ZTISt20bad_array_new_length \
+               $f
       wrapQtApp $f \
-        --suffix LD_LIBRARY_PATH : ${ldLibraryPath} \
         --suffix QT_XKB_CONFIG_ROOT : ${xkeyboard_config}/share/X11/xkb
     done
   '';
 
+  dontFixup = true;
+
   meta = {
     description = "Perforce Visual Client";
     homepage = "https://www.perforce.com";
diff --git a/pkgs/applications/version-management/pijul/default.nix b/pkgs/applications/version-management/pijul/default.nix
index 74b793f0e77..b17e759c657 100644
--- a/pkgs/applications/version-management/pijul/default.nix
+++ b/pkgs/applications/version-management/pijul/default.nix
@@ -60,6 +60,5 @@ in rustPlatform.buildRustPackage rec {
     homepage = "https://pijul.org";
     license = with licenses; [ gpl2Plus ];
     maintainers = [ maintainers.gal_bolle ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/version-management/redmine/0001-python3.patch b/pkgs/applications/version-management/redmine/0001-python3.patch
new file mode 100644
index 00000000000..98213c781a1
--- /dev/null
+++ b/pkgs/applications/version-management/redmine/0001-python3.patch
@@ -0,0 +1,275 @@
+--- a/lib/redmine/scm/adapters/mercurial/redminehelper.py
++++ b/lib/redmine/scm/adapters/mercurial/redminehelper.py
+@@ -45,17 +45,20 @@ Output example of rhmanifest::
+       </repository>
+     </rhmanifest>
+ """
+-import re, time, cgi, urllib
++import re, time, html, urllib
+ from mercurial import cmdutil, commands, node, error, hg, registrar
+ 
+ cmdtable = {}
+ command = registrar.command(cmdtable) if hasattr(registrar, 'command') else cmdutil.command(cmdtable)
+ 
+-_x = cgi.escape
+-_u = lambda s: cgi.escape(urllib.quote(s))
++_x = lambda s: html.escape(s.decode('utf-8')).encode('utf-8')
++_u = lambda s: html.escape(urllib.parse.quote(s)).encode('utf-8')
++
++def unquoteplus(*args, **kwargs):
++    return urllib.parse.unquote_to_bytes(*args, **kwargs).replace(b'+', b' ')
+ 
+ def _changectx(repo, rev):
+-    if isinstance(rev, str):
++    if isinstance(rev, bytes):
+        rev = repo.lookup(rev)
+     if hasattr(repo, 'changectx'):
+         return repo.changectx(rev)
+@@ -70,10 +73,10 @@ def _tip(ui, repo):
+         except TypeError:  # Mercurial < 1.1
+             return repo.changelog.count() - 1
+     tipctx = _changectx(repo, tiprev())
+-    ui.write('<tip revision="%d" node="%s"/>\n'
++    ui.write(b'<tip revision="%d" node="%s"/>\n'
+              % (tipctx.rev(), _x(node.hex(tipctx.node()))))
+ 
+-_SPECIAL_TAGS = ('tip',)
++_SPECIAL_TAGS = (b'tip',)
+ 
+ def _tags(ui, repo):
+     # see mercurial/commands.py:tags
+@@ -84,7 +87,7 @@ def _tags(ui, repo):
+             r = repo.changelog.rev(n)
+         except error.LookupError:
+             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)))
+ 
+ def _branches(ui, repo):
+@@ -104,136 +107,148 @@ def _branches(ui, repo):
+             return repo.branchheads(branch)
+     def lookup(rev, n):
+         try:
+-            return repo.lookup(rev)
++            return repo.lookup(str(rev).encode('utf-8'))
+         except RuntimeError:
+             return n
+     for t, n, r in sorted(iterbranches(), key=lambda e: e[2], reverse=True):
+         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)))
+ 
+ def _manifest(ui, repo, path, rev):
+     ctx = _changectx(repo, rev)
+-    ui.write('<manifest revision="%d" path="%s">\n'
++    ui.write(b'<manifest revision="%d" path="%s">\n'
+              % (ctx.rev(), _u(path)))
+ 
+     known = set()
+-    pathprefix = (path.rstrip('/') + '/').lstrip('/')
++    pathprefix = (path.decode('utf-8').rstrip('/') + '/').lstrip('/')
+     for f, n in sorted(ctx.manifest().iteritems(), key=lambda e: e[0]):
+-        if not f.startswith(pathprefix):
++        fstr = f.decode('utf-8')
++        if not fstr.startswith(pathprefix):
+             continue
+-        name = re.sub(r'/.*', '/', f[len(pathprefix):])
++        name = re.sub(r'/.*', '/', fstr[len(pathprefix):])
+         if name in known:
+             continue
+         known.add(name)
+ 
+         if name.endswith('/'):
+-            ui.write('<dir name="%s"/>\n'
++            ui.write(b'<dir name="%s"/>\n'
+                      % _x(urllib.quote(name[:-1])))
+         else:
+             fctx = repo.filectx(f, fileid=n)
+             tm, tzoffset = fctx.date()
+-            ui.write('<file name="%s" revision="%d" node="%s" '
+-                     'time="%d" size="%d"/>\n'
++            ui.write(b'<file name="%s" revision="%d" node="%s" '
++                     b'time="%d" size="%d"/>\n'
+                      % (_u(name), fctx.rev(), _x(node.hex(fctx.node())),
+                         tm, fctx.size(), ))
+ 
+-    ui.write('</manifest>\n')
++    ui.write(b'</manifest>\n')
+ 
+-@command('rhannotate',
+-         [('r', 'rev', '', 'revision'),
+-          ('u', 'user', None, 'list the author (long with -v)'),
+-          ('n', 'number', None, 'list the revision number (default)'),
+-          ('c', 'changeset', None, 'list the changeset'),
++@command(b'rhannotate',
++         [(b'r', b'rev', b'', b'revision'),
++          (b'u', b'user', None, b'list the author (long with -v)'),
++          (b'n', b'number', None, b'list the revision number (default)'),
++          (b'c', b'changeset', None, b'list the changeset'),
+          ],
+-         'hg rhannotate [-r REV] [-u] [-n] [-c] FILE...')
++         b'hg rhannotate [-r REV] [-u] [-n] [-c] FILE...')
+ def rhannotate(ui, repo, *pats, **opts):
+-    rev = urllib.unquote_plus(opts.pop('rev', None))
++    rev = unquoteplus(opts.pop('rev', b''))
+     opts['rev'] = rev
+-    return commands.annotate(ui, repo, *map(urllib.unquote_plus, pats), **opts)
++    return commands.annotate(ui, repo, *map(unquoteplus, pats), **opts)
+ 
+-@command('rhcat',
+-               [('r', 'rev', '', 'revision')],
+-               'hg rhcat ([-r REV] ...) FILE...')
++@command(b'rhcat',
++               [(b'r', b'rev', b'', b'revision')],
++               b'hg rhcat ([-r REV] ...) FILE...')
+ def rhcat(ui, repo, file1, *pats, **opts):
+-    rev = urllib.unquote_plus(opts.pop('rev', None))
++    rev = unquoteplus(opts.pop('rev', b''))
+     opts['rev'] = rev
+-    return commands.cat(ui, repo, urllib.unquote_plus(file1), *map(urllib.unquote_plus, pats), **opts)
++    return commands.cat(ui, repo, unquoteplus(file1), *map(unquoteplus, pats), **opts)
+ 
+-@command('rhdiff',
+-               [('r', 'rev', [], 'revision'),
+-                ('c', 'change', '', 'change made by revision')],
+-               'hg rhdiff ([-c REV] | [-r REV] ...) [FILE]...')
++@command(b'rhdiff',
++               [(b'r', b'rev', [], b'revision'),
++                (b'c', b'change', b'', b'change made by revision')],
++               b'hg rhdiff ([-c REV] | [-r REV] ...) [FILE]...')
+ def rhdiff(ui, repo, *pats, **opts):
+     """diff repository (or selected files)"""
+     change = opts.pop('change', None)
+     if change:  # add -c option for Mercurial<1.1
+         base = _changectx(repo, change).parents()[0].rev()
+-        opts['rev'] = [str(base), change]
++        opts['rev'] = [base, change]
+     opts['nodates'] = True
+-    return commands.diff(ui, repo, *map(urllib.unquote_plus, pats), **opts)
+-
+-@command('rhlog',
+-                   [
+-                    ('r', 'rev', [], 'show the specified revision'),
+-                    ('b', 'branch', [],
+-                       'show changesets within the given named branch'),
+-                    ('l', 'limit', '',
+-                         'limit number of changes displayed'),
+-                    ('d', 'date', '',
+-                         'show revisions matching date spec'),
+-                    ('u', 'user', [],
+-                      'revisions committed by user'),
+-                    ('', 'from', '',
+-                      ''),
+-                    ('', 'to', '',
+-                      ''),
+-                    ('', 'rhbranch', '',
+-                      ''),
+-                    ('', 'template', '',
+-                       'display with template')],
+-                   'hg rhlog [OPTION]... [FILE]')
++    return commands.diff(ui, repo, *map(unquoteplus, pats), **opts)
++
++@command(b'rhlog',
++                  [
++                    (b'r', b'rev', [], b'show the specified revision'),
++                    (b'b', b'branch', [],
++                       b'show changesets within the given named branch'),
++                    (b'l', b'limit', b'',
++                         b'limit number of changes displayed'),
++                    (b'd', b'date', b'',
++                         b'show revisions matching date spec'),
++                    (b'u', b'user', [],
++                      b'revisions committed by user'),
++                    (b'', b'from', b'',
++                      b''),
++                    (b'', b'to', b'',
++                      b''),
++                    (b'', b'rhbranch', b'',
++                      b''),
++                    (b'', b'template', b'',
++                       b'display with template')],
++                   b'hg rhlog [OPTION]... [FILE]')
++
+ def rhlog(ui, repo, *pats, **opts):
+     rev      = opts.pop('rev')
+     bra0     = opts.pop('branch')
+-    from_rev = urllib.unquote_plus(opts.pop('from', None))
+-    to_rev   = urllib.unquote_plus(opts.pop('to'  , None))
+-    bra      = urllib.unquote_plus(opts.pop('rhbranch', None))
+-    from_rev = from_rev.replace('"', '\\"')
+-    to_rev   = to_rev.replace('"', '\\"')
+-    if hg.util.version() >= '1.6':
+-      opts['rev'] = ['"%s":"%s"' % (from_rev, to_rev)]
++    from_rev = unquoteplus(opts.pop('from', b''))
++    to_rev   = unquoteplus(opts.pop('to'  , b''))
++    bra      = unquoteplus(opts.pop('rhbranch', b''))
++    from_rev = from_rev.replace(b'"', b'\\"')
++    to_rev   = to_rev.replace(b'"', b'\\"')
++    if (from_rev != b'') or (to_rev != b''):
++        if from_rev != b'':
++            quotefrom = b'"%s"' % (from_rev)
++        else:
++            quotefrom = from_rev
++        if to_rev != b'':
++            quoteto = b'"%s"' % (to_rev)
++        else:
++            quoteto = to_rev
++        opts['rev'] = [b'%s:%s' % (quotefrom, quoteto)]
+     else:
+-      opts['rev'] = ['%s:%s' % (from_rev, to_rev)]
+-    opts['branch'] = [bra]
+-    return commands.log(ui, repo, *map(urllib.unquote_plus, pats), **opts)
+-
+-@command('rhmanifest',
+-                   [('r', 'rev', '', 'show the specified revision')],
+-                   'hg rhmanifest [-r REV] [PATH]')
+-def rhmanifest(ui, repo, path='', **opts):
++        opts['rev'] = rev
++    if (bra != b''):
++        opts['branch'] = [bra]
++    return commands.log(ui, repo, *map(unquoteplus, pats), **opts)
++
++
++@command(b'rhmanifest',
++                   [(b'r', b'rev', b'', b'show the specified revision')],
++                   b'hg rhmanifest -r REV [PATH]')
++def rhmanifest(ui, repo, path=b'', **opts):
+     """output the sub-manifest of the specified directory"""
+-    ui.write('<?xml version="1.0"?>\n')
+-    ui.write('<rhmanifest>\n')
+-    ui.write('<repository root="%s">\n' % _u(repo.root))
++    ui.write(b'<?xml version="1.0"?>\n')
++    ui.write(b'<rhmanifest>\n')
++    ui.write(b'<repository root="%s">\n' % _u(repo.root))
+     try:
+-        _manifest(ui, repo, urllib.unquote_plus(path), urllib.unquote_plus(opts.get('rev')))
++        _manifest(ui, repo, unquoteplus(path), unquoteplus(opts.get('rev')))
+     finally:
+-        ui.write('</repository>\n')
+-        ui.write('</rhmanifest>\n')
++        ui.write(b'</repository>\n')
++        ui.write(b'</rhmanifest>\n')
+ 
+-@command('rhsummary',[], 'hg rhsummary')
++@command(b'rhsummary',[], b'hg rhsummary')
+ def rhsummary(ui, repo, **opts):
+     """output the summary of the repository"""
+-    ui.write('<?xml version="1.0"?>\n')
+-    ui.write('<rhsummary>\n')
+-    ui.write('<repository root="%s">\n' % _u(repo.root))
++    ui.write(b'<?xml version="1.0"?>\n')
++    ui.write(b'<rhsummary>\n')
++    ui.write(b'<repository root="%s">\n' % _u(repo.root))
+     try:
+         _tip(ui, repo)
+         _tags(ui, repo)
+         _branches(ui, repo)
+         # TODO: bookmarks in core (Mercurial>=1.8)
+     finally:
+-        ui.write('</repository>\n')
+-        ui.write('</rhsummary>\n')
++        ui.write(b'</repository>\n')
++        ui.write(b'</rhsummary>\n')
+ 
diff --git a/pkgs/applications/version-management/redmine/default.nix b/pkgs/applications/version-management/redmine/default.nix
index 2344e8dbd4b..defbf9c2aec 100644
--- a/pkgs/applications/version-management/redmine/default.nix
+++ b/pkgs/applications/version-management/redmine/default.nix
@@ -21,6 +21,10 @@ in
 
     buildInputs = [ rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler ];
 
+    # taken from https://www.redmine.org/issues/33784
+    # can be dropped when the upstream bug is closed and the fix is present in the upstream release
+    patches = [ ./0001-python3.patch ];
+
     buildPhase = ''
       mv config config.dist
       mv public/themes public/themes.dist
diff --git a/pkgs/applications/version-management/sit/default.nix b/pkgs/applications/version-management/sit/default.nix
index 67bda7a4fdd..d19f9862fca 100644
--- a/pkgs/applications/version-management/sit/default.nix
+++ b/pkgs/applications/version-management/sit/default.nix
@@ -27,7 +27,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://sit.fyi/";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ dywedir yrashk ];
-    platforms = platforms.all;
     # Upstream has not had a release in several years, and dependencies no
     # longer compile with the latest Rust compiler.
     broken = true;
diff --git a/pkgs/applications/version-management/sourcehut/builds.nix b/pkgs/applications/version-management/sourcehut/builds.nix
index 1bf78c548ee..d5a72a70ec6 100644
--- a/pkgs/applications/version-management/sourcehut/builds.nix
+++ b/pkgs/applications/version-management/sourcehut/builds.nix
@@ -9,9 +9,10 @@ let
   buildWorker = src: buildGoModule {
     inherit src version;
     pname = "builds-sr-ht-worker";
-    goPackagePath = "git.sr.ht/~sircmpwn/builds.sr.ht/worker";
 
-  vendorSha256 = "0prdlihcy5yz760llwyby747yy2981dn3gy401a48df7ndlfj6lp";
+    vendorSha256 = "0prdlihcy5yz760llwyby747yy2981dn3gy401a48df7ndlfj6lp";
+
+    doCheck = false;
   };
 in buildPythonPackage rec {
   inherit version;
@@ -57,4 +58,4 @@ in buildPythonPackage rec {
     license = licenses.agpl3;
     maintainers = with maintainers; [ eadwu ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/version-management/sourcehut/git.nix b/pkgs/applications/version-management/sourcehut/git.nix
index 992b889c831..d71568b94fd 100644
--- a/pkgs/applications/version-management/sourcehut/git.nix
+++ b/pkgs/applications/version-management/sourcehut/git.nix
@@ -9,33 +9,37 @@ let
   buildShell = src: buildGoModule {
     inherit src version;
     pname = "gitsrht-shell";
-    goPackagePath = "git.sr.ht/~sircmpwn/git.sr.ht/gitsrht-shell";
 
-  vendorSha256 = "1zvbqn4r940mibn4h1cqz94gbr476scm281ps361n0rfqlimw8g5";
+    vendorSha256 = "1zvbqn4r940mibn4h1cqz94gbr476scm281ps361n0rfqlimw8g5";
+
+    doCheck = false;
   };
 
   buildDispatcher = src: buildGoModule {
     inherit src version;
     pname = "gitsrht-dispatcher";
-    goPackagePath = "git.sr.ht/~sircmpwn/git.sr.ht/gitsrht-dispatch";
 
-  vendorSha256 = "1lzkf13m54pq0gnn3bcxc80nfg76hgck4l8q8jpaicrsiwgcyrd9";
+    vendorSha256 = "1lzkf13m54pq0gnn3bcxc80nfg76hgck4l8q8jpaicrsiwgcyrd9";
+
+    doCheck = false;
   };
 
   buildKeys = src: buildGoModule {
     inherit src version;
     pname = "gitsrht-keys";
-    goPackagePath = "git.sr.ht/~sircmpwn/git.sr.ht/gitsrht-keys";
 
-  vendorSha256 = "16j7kpar318s4766pln8xn6d51xqblwig5n1jywhj0sl80qjl5cv";
+    vendorSha256 = "16j7kpar318s4766pln8xn6d51xqblwig5n1jywhj0sl80qjl5cv";
+
+    doCheck = false;
   };
 
   buildUpdateHook = src: buildGoModule {
     inherit src version;
     pname = "gitsrht-update-hook";
-    goPackagePath = "git.sr.ht/~sircmpwn/git.sr.ht/gitsrht-update-hook";
 
-  vendorSha256 = "1rmv3p60g6w4h4v9wx99jkyx0q02snslyjrjy9n1flardjs01b63";
+    vendorSha256 = "1rmv3p60g6w4h4v9wx99jkyx0q02snslyjrjy9n1flardjs01b63";
+
+    doCheck = false;
   };
 in buildPythonPackage rec {
   inherit version;
@@ -79,4 +83,4 @@ in buildPythonPackage rec {
     license = licenses.agpl3;
     maintainers = with maintainers; [ eadwu ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/version-management/sparkleshare/default.nix b/pkgs/applications/version-management/sparkleshare/default.nix
new file mode 100644
index 00000000000..d4ae8a95b3e
--- /dev/null
+++ b/pkgs/applications/version-management/sparkleshare/default.nix
@@ -0,0 +1,87 @@
+{
+  appindicator-sharp,
+  coreutils,
+  fetchFromGitHub,
+  git,
+  glib,
+  gtk-sharp-3_0,
+  lib,
+  makeWrapper,
+  meson,
+  mono,
+  ninja,
+  notify-sharp,
+  openssh,
+  openssl,
+  pkg-config,
+  stdenv,
+  symlinkJoin,
+  webkit2-sharp,
+  xdg_utils,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sparkleshare";
+  version = "3.28";
+
+  src = fetchFromGitHub {
+    owner = "hbons";
+    repo = "SparkleShare";
+    rev = version;
+    sha256 = "sha256:1x5nv2f3mrsr4a336bz5kc2lzkzilfh43bxy2yqhhjp2dgb20497";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+    meson
+    mono
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    appindicator-sharp
+    gtk-sharp-3_0
+    notify-sharp
+    webkit2-sharp
+  ];
+
+  patchPhase = ''
+    # Nix will manage the icon cache.
+    echo '#!/bin/sh' >scripts/post-install.sh
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/sparkleshare \
+        --set PATH ${symlinkJoin {
+          name = "mono-path";
+          paths = [
+            coreutils
+            git
+            glib
+            mono
+            openssh
+            openssl
+            xdg_utils
+          ];
+        }}/bin \
+        --set MONO_GAC_PREFIX ${lib.concatStringsSep ":" [
+          appindicator-sharp
+          gtk-sharp-3_0
+          webkit2-sharp
+        ]} \
+        --set LD_LIBRARY_PATH ${lib.makeLibraryPath [
+          appindicator-sharp
+          gtk-sharp-3_0.gtk3
+          webkit2-sharp
+          webkit2-sharp.webkitgtk
+        ]}
+  '';
+
+  meta = {
+    description = "Share and collaborate by syncing with any Git repository instantly. Linux, macOS, and Windows.";
+    homepage = "https://sparkleshare.org";
+    license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ kevincox ];
+  };
+}
diff --git a/pkgs/applications/version-management/sublime-merge/default.nix b/pkgs/applications/version-management/sublime-merge/default.nix
index 7a0c0d1f1ed..e5f7f8cbeb0 100644
--- a/pkgs/applications/version-management/sublime-merge/default.nix
+++ b/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 = "2020";
-    sha256 = "0r5qqappaiicc4srk08az2vx42m7b6a75yn2ji5pv4w4085hlrzp";
+    buildVersion = "2033";
+    sha256 = "1ym806df2hsw1ml932mshlw7cdxfi6jwa3mkh5m7gbmn7qwpm4xb";
   } {};
 
   sublime-merge-dev = common {
-    buildVersion = "2022";
-    sha256 = "0fhxz6nx24wbspn7vfli3pvfv6fdbd591m619pvivig3scpidj61";
+    buildVersion = "2031";
+    sha256 = "1vv3qcggicy5fb4nm2k5a6nw1f20cwxgrmn3xv2dvgx7mpzbhknp";
     dev = true;
   } {};
 }
diff --git a/pkgs/applications/version-management/yadm/default.nix b/pkgs/applications/version-management/yadm/default.nix
index fab89d663fa..37fd8055662 100644
--- a/pkgs/applications/version-management/yadm/default.nix
+++ b/pkgs/applications/version-management/yadm/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, git, gnupg }:
 
-let version = "2.4.0"; in
+let version = "2.5.0"; in
 stdenv.mkDerivation {
   pname = "yadm";
   inherit version;
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     owner  = "TheLocehiliosan";
     repo   = "yadm";
     rev    = version;
-    sha256 = "0kpahznrkxkyj92vrhwjvldg2affi1askgwvpgbs4mg40f92szlp";
+    sha256 = "128qlx8mp7h5ifapqqgsj3fwghn3q6x6ya0y33h5r7gnassd3njr";
   };
 
   dontConfigure = true;
diff --git a/pkgs/applications/video/avidemux/default.nix b/pkgs/applications/video/avidemux/default.nix
index 9374d2dbc79..2dd6b12c14f 100644
--- a/pkgs/applications/video/avidemux/default.nix
+++ b/pkgs/applications/video/avidemux/default.nix
@@ -25,11 +25,11 @@ assert !withQT -> default != "qt5";
 
 stdenv.mkDerivation rec {
   pname = "avidemux";
-  version = "2.7.4";
+  version = "2.7.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/avidemux/avidemux/${version}/avidemux_${version}.tar.gz";
-    sha256 = "1acdb3m37vdzzbm8mwyibcn8msi7birb5v30qfi7jli5r00src3x";
+    sha256 = "1kwkn976ppahrcr74bnv6sqx75pzl9y21m1mvr5ksi1m6lgp924s";
   };
 
   patches = [
diff --git a/pkgs/applications/video/catt/default.nix b/pkgs/applications/video/catt/default.nix
index 7f2b8551151..d22657d651c 100644
--- a/pkgs/applications/video/catt/default.nix
+++ b/pkgs/applications/video/catt/default.nix
@@ -1,12 +1,19 @@
-{ buildPythonApplication, fetchPypi, lib
-, youtube-dl
-, PyChromecast
-, click
-, ifaddr
-, requests
-}:
+{ lib, python3 }:
 
-buildPythonApplication rec {
+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";
+        };
+      });
+    };
+  };
+
+in with py.pkgs; buildPythonApplication rec {
   pname = "catt";
   version = "0.11.0";
 
diff --git a/pkgs/applications/video/celluloid/default.nix b/pkgs/applications/video/celluloid/default.nix
index 208cbb7f4e6..80a30852dae 100644
--- a/pkgs/applications/video/celluloid/default.nix
+++ b/pkgs/applications/video/celluloid/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , python3
@@ -49,6 +50,12 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "Simple GTK frontend for the mpv video player";
     longDescription = ''
diff --git a/pkgs/applications/video/electronplayer/electronplayer.nix b/pkgs/applications/video/electronplayer/electronplayer.nix
new file mode 100644
index 00000000000..577c85c6b27
--- /dev/null
+++ b/pkgs/applications/video/electronplayer/electronplayer.nix
@@ -0,0 +1,33 @@
+{ appimageTools, stdenv, fetchurl }:
+let
+  pname = "electronplayer";
+  version = "2.0.8";
+  name = "${pname}-${version}";
+
+  #TODO: remove the -rc4 from the tag in the url when possible
+  src = fetchurl {
+    url = "https://github.com/oscartbeaumont/ElectronPlayer/releases/download/v${version}-rc4/${name}.AppImage";
+    sha256 = "wAsmSFdbRPnYnDyWQSbtyj+GLJLN7ibksUE7cegfkhI=";
+  };
+
+  appimageContents = appimageTools.extractType2 { inherit name src; };
+in appimageTools.wrapType2 {
+  inherit name src;
+
+  extraInstallCommands = ''
+    mv $out/bin/${name} $out/bin/${pname}
+
+    install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun' 'Exec=ElectronPlayer'
+    cp -r ${appimageContents}/usr/share/icons $out/share
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An electron based web video services player";
+    homepage = "https://github.com/oscartbeaumont/ElectronPlayer";
+    license = licenses.mit;
+    maintainers = with maintainers; [ extends ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/video/hdhomerun-config-gui/default.nix b/pkgs/applications/video/hdhomerun-config-gui/default.nix
new file mode 100644
index 00000000000..a147de52da8
--- /dev/null
+++ b/pkgs/applications/video/hdhomerun-config-gui/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, libhdhomerun, vlc, gcc, gnumake, pkg-config, gtk2 }:
+
+stdenv.mkDerivation rec {
+  pname = "hdhomerun-config-gui";
+  version = "20200521";
+
+  src = fetchurl {
+    url = "https://download.silicondust.com/hdhomerun/hdhomerun_config_gui_${version}.tgz";
+    sha256 = "1r1rwfgi714nwblyg8nqjzkpm4n2lg7kqqqas47hvbn5waimz1ja";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ gtk2 libhdhomerun ];
+
+  configureFlags = [ "CPPFLAGS=-I${libhdhomerun}/include/hdhomerun" ];
+  makeFlags = [ "SUBDIRS=src" ];
+
+  installPhase = ''
+    install -vDm 755 src/hdhomerun_config_gui $out/usr/bin/hdhomerun_config_gui
+  '';
+
+  meta = with stdenv.lib; {
+    description = "GUI for configuring Silicondust HDHomeRun TV tuners";
+    homepage = "https://www.silicondust.com/support/linux";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.louisdk1 ];
+  };
+}
diff --git a/pkgs/applications/video/jellyfin-mpv-shim/default.nix b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
index de931074091..825aac4dad2 100644
--- a/pkgs/applications/video/jellyfin-mpv-shim/default.nix
+++ b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
@@ -1,19 +1,27 @@
-{ stdenv, buildPythonApplication, fetchFromGitHub, fetchurl
+{ stdenv, buildPythonApplication, fetchFromGitHub, callPackage
 , mpv, python-mpv-jsonipc, jellyfin-apiclient-python
 , pillow, tkinter, pystray, jinja2, pywebview }:
 
+let
+  shaderPack = callPackage ./shader-pack.nix {};
+in
 buildPythonApplication rec {
   pname = "jellyfin-mpv-shim";
-  version = "1.4.2";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "iwalton3";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1cnii5wj0pgqg3dqk5cm6slpbs3730x8ippps4cjbsxcsrmqjpx6";
+    sha256 = "0alrh5h3f8pq9mrq09jmpqa0yslxsjqwij6kwn24ggbwc10zkq75";
     fetchSubmodules = true; # needed for display_mirror css file
   };
 
+  patches = [
+    ./disable-desktop-client.patch
+    ./disable-update-check.patch
+  ];
+
   # override $HOME directory:
   #   error: [Errno 13] Permission denied: '/homeless-shelter'
   #
@@ -25,6 +33,11 @@ buildPythonApplication rec {
     rm jellyfin_mpv_shim/win_utils.py
   '';
 
+  postPatch = ''
+    # link the default shader pack
+    ln -s ${shaderPack} jellyfin_mpv_shim/default_shader_pack
+  '';
+
   propagatedBuildInputs = [
     jellyfin-apiclient-python
     mpv
@@ -42,7 +55,7 @@ buildPythonApplication rec {
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/iwalton3/jellyfin-mpv-shim";
-    description = "Allows casting of videos to MPV via the jellyfin mobile and web app.";
+    description = "Allows casting of videos to MPV via the jellyfin mobile and web app";
     license = licenses.gpl3;
     maintainers = with maintainers; [ jojosch ];
   };
diff --git a/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch b/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch
new file mode 100644
index 00000000000..996225efb3a
--- /dev/null
+++ b/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch
@@ -0,0 +1,12 @@
+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/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch b/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch
new file mode 100644
index 00000000000..6941b956e85
--- /dev/null
+++ b/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch
@@ -0,0 +1,15 @@
+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/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix b/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix
new file mode 100644
index 00000000000..fd33e8c90b5
--- /dev/null
+++ b/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix
@@ -0,0 +1,25 @@
+{ 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 stdenv.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/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix
index 1ef3c9ee70f..56788ae4f10 100644
--- a/pkgs/applications/video/kodi/default.nix
+++ b/pkgs/applications/video/kodi/default.nix
@@ -44,15 +44,15 @@ assert vdpauSupport -> libvdpau != null;
 assert useWayland -> wayland != null && wayland-protocols != null && waylandpp != null && libxkbcommon != null;
 
 let
-  kodiReleaseDate = "20200301";
-  kodiVersion = "18.6";
+  kodiReleaseDate = "20200728";
+  kodiVersion = "18.8";
   rel = "Leia";
 
   kodi_src = fetchFromGitHub {
     owner  = "xbmc";
     repo   = "xbmc";
     rev    = "${kodiVersion}-${rel}";
-    sha256 = "0rwymipn5hljy5xrslzmrljmj6f9wb191wi7gjw20wl6sv44d0bk";
+    sha256 = "0qpkpz43s207msvv3qkiy6vzqwcgmydxv3py7vc29mv6h30chrva";
   };
 
   cmakeProto = fetchurl {
@@ -192,8 +192,8 @@ in stdenv.mkDerivation {
     ++ lib.optional  usbSupport      libusb-compat-0_1
     ++ lib.optional  vdpauSupport    libvdpau
     ++ lib.optionals useWayland [
-      wayland 
-      waylandpp.dev 
+      wayland
+      waylandpp.dev
       wayland-protocols
       # Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise
       libxkbcommon.dev
diff --git a/pkgs/applications/video/lightworks/default.nix b/pkgs/applications/video/lightworks/default.nix
index ae156574f5d..da413915e37 100644
--- a/pkgs/applications/video/lightworks/default.nix
+++ b/pkgs/applications/video/lightworks/default.nix
@@ -47,7 +47,7 @@ let
       # This adds it to lightworks' search path while keeping the default
       # using the FONTCONFIG_FILE env variable
       echo "<?xml version='1.0'?>
-      <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
+      <!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
       <fontconfig>
           <dir>/usr/share/fonts/truetype</dir>
           <include>/etc/fonts/fonts.conf</include>
diff --git a/pkgs/applications/video/makemkv/default.nix b/pkgs/applications/video/makemkv/default.nix
index 56247b27826..d3cb12924c2 100644
--- a/pkgs/applications/video/makemkv/default.nix
+++ b/pkgs/applications/video/makemkv/default.nix
@@ -3,21 +3,21 @@
 }:
 
 let
-  version = "1.15.1";
+  version = "1.15.2";
   # 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"
     ];
-    sha256 = "0c9661sdlld8b1g2pk8lbn3gz7cikh9bjqss11ffkriwii1x9fw0";
+    sha256 = "1dbips0qllbwhak44c50nlwn8n3kx8i6773cal5zl3dv4v2nf6ql";
   };
   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"
     ];
-    sha256 = "0rm1zykqagy2g8hb7pjrc6akdsym8pgdnx66hnna161jbah3sssy";
+    sha256 = "1wnhzlz5fw6qwh82hjcpimg60xb3a9a54zb6gcjhqr9zdly2zphy";
   };
 in mkDerivation {
   pname = "makemkv";
@@ -55,6 +55,6 @@ in mkDerivation {
     license = licenses.unfree;
     homepage = "http://makemkv.com";
     platforms = [ "x86_64-linux" ];
-    maintainers = [ maintainers.titanous ];
+    maintainers = with maintainers; [ danieldk titanous ];
   };
 }
diff --git a/pkgs/applications/video/mapmap/default.nix b/pkgs/applications/video/mapmap/default.nix
index 20ab4d75032..9d6ffbd439c 100644
--- a/pkgs/applications/video/mapmap/default.nix
+++ b/pkgs/applications/video/mapmap/default.nix
@@ -12,14 +12,14 @@ with stdenv;
 
 mkDerivation rec {
 
-  version = "0.6.1";
+  version = "0.6.2";
   pname = "mapmap";
 
   src = fetchFromGitHub {
     owner = "mapmapteam";
     repo = "mapmap";
     rev = version;
-    sha256 = "15km6xmfkxhrflq4sl9m9r85zi4shrr4k5h15x17v7x0qkc3xgsh";
+    sha256 = "1pyb3vz19lbfz2hrfqm9a29vnajw1bigdrblbmcy32imkf4isfvm";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix
index 68f3cac1bfa..9b2c8f83577 100644
--- a/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/pkgs/applications/video/mkvtoolnix/default.nix
@@ -13,13 +13,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "mkvtoolnix";
-  version = "47.0.0";
+  version = "48.0.0";
 
   src = fetchFromGitLab {
     owner  = "mbunkus";
     repo   = "mkvtoolnix";
     rev    = "release-${version}";
-    sha256 = "1s8y9khyfjg06mr7rmm26pk0b3nbkcrs56r29a9l57wbkqyl7qp9";
+    sha256 = "0lbl3w2m12blymda3m00afl9racgahvl0z4b2clwbawhvypc5vfc";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/molotov/default.nix b/pkgs/applications/video/molotov/default.nix
new file mode 100644
index 00000000000..c4ee96cc246
--- /dev/null
+++ b/pkgs/applications/video/molotov/default.nix
@@ -0,0 +1,31 @@
+{ appimageTools, lib, fetchurl }:
+
+let
+  pname = "molotov";
+  version = "4.2.2";
+  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "http://desktop-auto-upgrade.molotov.tv/linux/${version}/molotov.AppImage";
+    sha256 = "00p8srf4yswbihlsi3s7kfkav02h902yvrq99wys11is63n01x8z";
+  };
+  appimageContents = appimageTools.extractType2 { inherit name src; };
+in
+appimageTools.wrapType2 {
+  inherit name src;
+  extraInstallCommands = ''
+    mv $out/bin/${name} $out/bin/${pname}
+    install -m 444 -D \
+      ${appimageContents}/${pname}.desktop \
+      $out/share/applications/${pname}.desktop
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+    cp -r ${appimageContents}/usr/share/icons $out/share
+  '';
+  meta = with lib; {
+    description = "French TV service";
+    homepage = "https://www.molotov.tv/";
+    license = with licenses; [ unfree ];
+    maintainers = with maintainers; [ apeyroux freezeboy ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/video/motion/default.nix b/pkgs/applications/video/motion/default.nix
index 175958afb7e..7f101c41edb 100644
--- a/pkgs/applications/video/motion/default.nix
+++ b/pkgs/applications/video/motion/default.nix
@@ -1,25 +1,26 @@
 { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
-, ffmpeg_3, libjpeg, libmicrohttpd }:
+, ffmpeg, libjpeg, libmicrohttpd }:
 
 stdenv.mkDerivation rec {
   pname = "motion";
-  version = "4.3.0";
+  version = "4.3.1";
 
   src = fetchFromGitHub {
     owner  = "Motion-Project";
     repo   = "motion";
-    rev    = "Release-${version}";
-    sha256 = "08mm7ajgs0qnrydywxxyzcll09z80crjnjkjnckdi6ljsj6s96j8";
+    rev    = "release-${version}";
+    sha256 = "01yy4pdgd4wa97bpw27zn5zik9iz719m1jiwkk9lb7m2a2951dhc";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
 
-  buildInputs = [ ffmpeg_3 libjpeg libmicrohttpd ];
+  buildInputs = [ ffmpeg libjpeg libmicrohttpd ];
 
   meta = with stdenv.lib; {
     description = "Monitors the video signal from cameras";
     homepage = "https://motion-project.github.io/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ puffnfresh veprbl ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/video/mpv/scripts/sponsorblock.nix b/pkgs/applications/video/mpv/scripts/sponsorblock.nix
new file mode 100644
index 00000000000..8213e514d2b
--- /dev/null
+++ b/pkgs/applications/video/mpv/scripts/sponsorblock.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, fetchpatch, python3 }:
+
+# Usage: `pkgs.mpv.override { scripts = [ pkgs.mpvScripts.sponsorblock ]; }`
+stdenv.mkDerivation {
+  pname = "mpv_sponsorblock";
+  version = "unstable-2020-07-05";
+
+  src = fetchFromGitHub {
+    owner = "po5";
+    repo = "mpv_sponsorblock";
+    rev = "f71e49e0531350339134502e095721fdc66eac20";
+    sha256 = "1fr4cagzs26ygxyk8dxqvjw4n85fzv6is6cb1jhr2qnsjg6pa0p8";
+  };
+
+  dontBuild = true;
+
+  patches = [
+    # Use XDG_DATA_HOME and XDG_CACHE_HOME if defined for UID and DB
+    # Necessary to avoid sponsorblock to write in the nix store at runtime.
+    # https://github.com/po5/mpv_sponsorblock/pull/17
+    (fetchpatch {
+      url = "https://github.com/po5/mpv_sponsorblock/pull/17/commits/e65b360a7d03a3430b4829e457a6670b2f617b09.patch";
+      sha256 = "00wv0pvbz0dz2ibka66zhl2jk0pil4pyv6ipjfz37i81q6szyhs5";
+    })
+    (fetchpatch {
+      url = "https://github.com/po5/mpv_sponsorblock/pull/17/commits/3832304d959205e99120a14c0560ed3c37104b08.patch";
+      sha256 = "149ffvn714n2m3mqs8mgrbs24bcr74kqfkx7wyql36ndhm88xd2z";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace sponsorblock.lua \
+      --replace "python3" "${python3}/bin/python3" \
+      --replace 'mp.find_config_file("scripts")' "\"$out/share/mpv/scripts\""
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/mpv/scripts
+    cp -r sponsorblock.lua sponsorblock_shared $out/share/mpv/scripts/
+  '';
+
+  passthru.scriptName = "sponsorblock.lua";
+
+  meta = with stdenv.lib; {
+    description = "mpv script to skip sponsored segments of YouTube videos";
+    homepage = "https://github.com/po5/mpv_sponsorblock";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ pacien ];
+  };
+}
diff --git a/pkgs/applications/video/mythtv/default.nix b/pkgs/applications/video/mythtv/default.nix
index 2f1d3a3a1c9..db8d192b758 100644
--- a/pkgs/applications/video/mythtv/default.nix
+++ b/pkgs/applications/video/mythtv/default.nix
@@ -2,24 +2,21 @@
 , libpulseaudio, fftwSinglePrec , lame, zlib, libGLU, libGL, alsaLib, freetype
 , perl, pkgconfig , libsamplerate, libbluray, lzo, libX11, libXv, libXrandr, libXvMC, libXinerama, libXxf86vm
 , libXmu , yasm, libuuid, taglib, libtool, autoconf, automake, file, exiv2, linuxHeaders
-, libXNVCtrl, enableXnvctrl ? false
 }:
 
 mkDerivation rec {
   pname = "mythtv";
-  version = "30.0";
+  version = "31.0";
 
   src = fetchFromGitHub {
     owner = "MythTV";
     repo = "mythtv";
     rev = "v${version}";
-    sha256 = "1pfzjb07xwd3mfgmbr4kkiyfyvwy9fkl13ik7bvqds86m0ws5bw4";
+    sha256 = "092w5kvc1gjz6jd2lk2jhcazasz2h3xh0i5iq80k8x3znyp4i6v5";
   };
 
   patches = [
-    # Fixes build with exiv2 0.27.1.
-    ./exiv2.patch
-    # Disables OS detection used while checking for xnvctrl support.
+    # Disables OS detection used while checking if enforce_wshadow should be disabled.
     ./disable-os-detection.patch
   ];
 
@@ -29,17 +26,16 @@ mkDerivation rec {
     freetype qtbase qtwebkit qtscript lame zlib xlibsWrapper libGLU libGL
     perl libsamplerate libbluray lzo alsaLib libpulseaudio fftwSinglePrec libX11 libXv libXrandr libXvMC
     libXmu libXinerama libXxf86vm libXmu libuuid taglib exiv2
-  ] ++ stdenv.lib.optional enableXnvctrl libXNVCtrl;
+  ];
   nativeBuildInputs = [ pkgconfig which yasm libtool autoconf automake file ];
 
   configureFlags = 
-    [ "--dvb-path=${linuxHeaders}/include" ]
-    ++ stdenv.lib.optionals (!enableXnvctrl) [  "--disable-xnvctrl" ];
+    [ "--dvb-path=${linuxHeaders}/include" ];
 
   meta = with stdenv.lib; {
     homepage = "https://www.mythtv.org/";
     description = "Open Source DVR";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.titanous ];
   };
diff --git a/pkgs/applications/video/mythtv/disable-os-detection.patch b/pkgs/applications/video/mythtv/disable-os-detection.patch
index 5a35dc2d1dd..09ce6f6ca4f 100644
--- a/pkgs/applications/video/mythtv/disable-os-detection.patch
+++ b/pkgs/applications/video/mythtv/disable-os-detection.patch
@@ -1,51 +1,31 @@
---- a/configure	1970-01-01 01:00:01.000000000 +0100
-+++ b/configure	2019-10-26 11:54:01.920776490 +0200
-@@ -6642,29 +6642,29 @@
-     require libXinerama X11/extensions/Xinerama.h XineramaQueryExtension -lXinerama
-     require libXext "X11/Xdefs.h X11/Xlib.h X11/extensions/Xext.h" XMissingExtension -lXext
-     if enabled xnvctrl; then
--        case $target_os in
--            linux)
-+#        case $target_os in
-+#            linux)
-                 # Bah. Suse linux doesn't have xnvctrl.
--                . /etc/os-release
--                case $ID in
--                    *suse*)
-+#                . /etc/os-release
-+#                case $ID in
-+#                    *suse*)
- 			# This is hopefully temporary.
--			disable xnvctrl_external
--			;;
--		    *)
--                        require XNVctrl "X11/Xlib.h NVCtrl/NVCtrl.h NVCtrl/NVCtrlLib.h" XNVCTRLIsNvScreen -lXNVCtrl || disable xnvctrl
--                        ;;
--                esac
--                ;;
--            freebsd)
-+#			disable xnvctrl_external
-+#			;;
-+#		    *)
-+        require XNVctrl "X11/Xlib.h NVCtrl/NVCtrl.h NVCtrl/NVCtrlLib.h" XNVCTRLIsNvScreen -lXNVCtrl || disable xnvctrl
-+#                        ;;
-+#                esac
-+#                ;;
-+#            freebsd)
-                 # This is hopefully temporary, and will eventually
-                 # check for a system library too.
--                disable xnvctrl_external
--                ;;
--            *)
--                disable xnvctrl
--                ;;
--        esac
-+#                disable xnvctrl_external
-+#                ;;
-+#            *)
-+#                disable xnvctrl
-+#                ;;
-+#        esac
-     fi
- fi
+--- a/configure	2020-07-21 20:50:58.653989766 +0200
++++ b/configure	2020-07-21 20:52:21.236610586 +0200
+@@ -6537,17 +6537,17 @@
+                 }
  
+ enable enforce_wshadow
+-case $target_os in
+-    android)
+-        disable enforce_wshadow
+-        ;;
+-    linux)
+-        . /etc/os-release
+-        if test $ID = "centos"; then
+-            disable enforce_wshadow
+-        fi
+-        ;;
+-esac
++#case $target_os in
++#    android)
++#        disable enforce_wshadow
++#        ;;
++#    linux)
++#        . /etc/os-release
++#        if test $ID = "centos"; then
++#            disable enforce_wshadow
++#        fi
++#        ;;
++#esac
+ 
+ if $(pkg-config --exists Qt5WebKit) || $(pkg-config --exists QtWebKit) ; then
+     enable qtwebkit
diff --git a/pkgs/applications/video/mythtv/exiv2.patch b/pkgs/applications/video/mythtv/exiv2.patch
deleted file mode 100644
index 29bf1f5967b..00000000000
--- a/pkgs/applications/video/mythtv/exiv2.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Patch source: https://aur.archlinux.org/cgit/aur.git/plain/004-exiv2.patch?h=mythtv&id=76ea37f8556805b205878772ad7874e487c0d946
---- a/libs/libmythmetadata/imagemetadata.cpp
-+++ b/libs/libmythmetadata/imagemetadata.cpp
-@@ -7,14 +7,7 @@
- #include "exitcodes.h"        // for ffprobe
- 
- // libexiv2 for Exif metadata
--//#include <exiv2/exiv2.hpp>
--// Note: Older versions of Exiv2 don't have the exiv2.hpp include
--// file.  Using image.hpp instead seems to work.
--#ifdef _MSC_VER
--#include <exiv2/src/image.hpp>
--#else
--#include <exiv2/image.hpp>
--#endif
-+#include <exiv2/exiv2.hpp>
- 
- // To read FFMPEG Metadata
- extern "C" {
diff --git a/pkgs/applications/video/obs-studio/wlrobs.nix b/pkgs/applications/video/obs-studio/wlrobs.nix
index 77ef09d3c24..99486a9ccc0 100644
--- a/pkgs/applications/video/obs-studio/wlrobs.nix
+++ b/pkgs/applications/video/obs-studio/wlrobs.nix
@@ -13,12 +13,12 @@ assert dmabufSupport -> libdrm != null && libGL != null;
 
 stdenv.mkDerivation {
   pname = "obs-wlrobs";
-  version = "20200111";
+  version = "20200622";
 
   src = fetchhg {
     url = "https://hg.sr.ht/~scoopta/wlrobs";
-    rev = "8345bf985e390896d89e35e2feae1fa37722f4be";
-    sha256 = "0j01wkhwhhla4qx8mwyrq2qj9cfhxksxaq2k8rskmy2qbdkvvdpb";
+    rev = "1d3acaaf64049da3da9721aa8b9b47582fe0081b";
+    sha256 = "0qrcf8024r4ynfjw0zx8vn59ygx9q5rb196s6nyxmy3gkv2lfxlq";
   };
 
   buildInputs = [ libX11 libGL libdrm meson ninja pkgconfig wayland obs-studio ];
diff --git a/pkgs/applications/video/peek/default.nix b/pkgs/applications/video/peek/default.nix
index 24c44c248f5..6ca5c5bed21 100644
--- a/pkgs/applications/video/peek/default.nix
+++ b/pkgs/applications/video/peek/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , gettext
@@ -68,6 +69,13 @@ stdenv.mkDerivation rec {
     gappsWrapperArgs+=(--prefix PATH : ${stdenv.lib.makeBinPath [ which ffmpeg_3 gifski ]})
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/phw/peek";
     description = "Simple animated GIF screen recorder with an easy to use interface";
diff --git a/pkgs/applications/video/pitivi/default.nix b/pkgs/applications/video/pitivi/default.nix
index 276c2fa787f..b1c1dd285e2 100644
--- a/pkgs/applications/video/pitivi/default.nix
+++ b/pkgs/applications/video/pitivi/default.nix
@@ -1,15 +1,28 @@
-{ stdenv, fetchFromGitHub, fetchurl, pkgconfig, intltool, itstool, python3, wrapGAppsHook
-, python3Packages, gst_all_1, gtk3
-, gobject-introspection, librsvg, gnome3, libnotify, gsound
-, meson, ninja, gsettings-desktop-schemas
+{ stdenv
+, fetchFromGitHub
+, fetchurl
+, fetchpatch
+, pkg-config
+, gettext
+, itstool
+, python3
+, wrapGAppsHook
+, python3Packages
+, gst_all_1
+, gtk3
+, gobject-introspection
+, librsvg
+, gnome3
+, libnotify
+, gsound
+, meson
+, ninja
+, gsettings-desktop-schemas
 }:
 
 let
-  version = "0.999";
-
-  # gst-transcoder will eventually be merged with gstreamer (according to
-  # gst-transcoder 1.8.0 release notes). For now the only user is pitivi so we
-  # don't bother exposing the package to all of nixpkgs.
+  # gst-transcoder was merged with gst-plugins-bad 1.18.
+  # TODO: switch to that once available.
   gst-transcoder = stdenv.mkDerivation rec {
     version = "1.14.1";
     pname = "gst-transcoder";
@@ -19,45 +32,120 @@ let
       rev = version;
       sha256 = "16skiz9akavssii529v9nr8zd54w43livc14khdyzv164djg9q8f";
     };
-    nativeBuildInputs = [ pkgconfig meson ninja gobject-introspection python3 ];
-    buildInputs = with gst_all_1; [ gstreamer gst-plugins-base ];
+    nativeBuildInputs = [
+      pkg-config
+      meson
+      ninja
+      gobject-introspection
+      python3
+    ];
+    buildInputs = with gst_all_1; [
+      gstreamer
+      gst-plugins-base
+    ];
   };
 
 in python3Packages.buildPythonApplication rec {
-  name = "pitivi-${version}";
+  pname = "pitivi";
+  version = "0.999";
+
+  format = "other";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/pitivi/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/pitivi/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "0mxp2p4gg976fp1vj3rb5rmpl5mqfzncm9vw2719irl32f1qlvyb";
   };
 
-  format = "other";
-
   patches = [
     # By default, the build picks up environment variables like PYTHONPATH
     # and saves them to the generated binary. This would make the build-time
     # dependencies part of the closure so we remove it.
     ./prevent-closure-contamination.patch
-  ];
 
-  postPatch = ''
-    patchShebangs ./getenvvar.py
-  '';
+    # Port from intltool to gettext.
+    # Needed for the following patches to apply.
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/pitivi/commit/89b1053f2516c594f414c5c67c835471bce44b67.patch";
+      sha256 = "8yhArzAtZC+WjHftcSDrstBlT8j6WlGHffU9Nj+ny+c=";
+      excludes = [ "po/POTFILES.in" ];
+    })
 
-  nativeBuildInputs = [ meson ninja pkgconfig intltool itstool python3 wrapGAppsHook ];
+    # Complete switching to gst-transcoder in gst-plugins-bad.
+    # Otherwise there will likely be conflics.
+    # TODO: Apply this patch once we are using gst-transcoder from gst-plugins-bad.
+    # (fetchpatch {
+    #   url = "https://gitlab.gnome.org/GNOME/pitivi/commit/51ae6533ee26ffd47e453eb5f5ad8cd46f57d15e.patch";
+    #   sha256 = "zxJm+E5o+oZ3lW6wYNY/ERo2g4NmCjoY8oV+uScq8j8=";
+    # })
+
+    # Generate renderer.so on macOS instead of dylib.
+    # Needed for the following patch to apply.
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/pitivi/commit/bcacadcafabf8911efb0fddc8d57329237d08cd1.patch";
+      sha256 = "2BM5acIwOgdr1L9vhtMMN4trrLuqCg/K6v6ZYtD1Fjw=";
+      postFetch = ''
+        sed -i -e "s/1.90.0.1/0.999/g" "$out"
+      '';
+    })
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/pitivi/commit/0a3cc054a2c20b59f5aaaaa307de3c9af3c0d270.patch";
+      sha256 = "6DhqRlxFWFFdLwGoFem+vPt8x7v732KMVjMF9fypMK4=";
+      postFetch = ''
+        sed "$out" -i \
+          -e "s/1.90.0.1/0.999/g" \
+          -e "s/\(-python_dep.*\)/\1\n /" \
+          -e "s/-1,9 +1,16/-1,10 +1,17/"
+      '';
+    })
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    itstool
+    python3
+    wrapGAppsHook
+  ];
 
   buildInputs = [
-    gobject-introspection gtk3 librsvg gnome3.gnome-desktop gsound
+    gobject-introspection
+    gtk3
+    librsvg
+    gnome3.gnome-desktop
+    gsound
     gnome3.adwaita-icon-theme
-    gsettings-desktop-schemas libnotify
+    gsettings-desktop-schemas
+    libnotify
     gst-transcoder
   ] ++ (with gst_all_1; [
-    gstreamer gst-editing-services
-    gst-plugins-base (gst-plugins-good.override { gtkSupport = true; })
-    gst-plugins-bad gst-plugins-ugly gst-libav gst-validate
+    gstreamer
+    gst-editing-services
+    gst-plugins-base
+    (gst-plugins-good.override { gtkSupport = true; })
+    gst-plugins-bad
+    gst-plugins-ugly
+    gst-libav
+    gst-validate
   ]);
 
-  pythonPath = with python3Packages; [ pygobject3 gst-python pyxdg numpy pycairo matplotlib dbus-python ];
+  pythonPath = with python3Packages; [
+    pygobject3
+    gst-python
+    pyxdg
+    numpy
+    pycairo
+    matplotlib
+    dbus-python
+  ];
+
+  postPatch = ''
+    patchShebangs ./getenvvar.py
+
+    # fetchpatch does not support renamings
+    mv data/org.pitivi.Pitivi-mime.xml data/org.pitivi.Pitivi-mime.xml.in
+  '';
 
   passthru = {
     updateScript = gnome3.updateScript {
diff --git a/pkgs/applications/video/screenkey/default.nix b/pkgs/applications/video/screenkey/default.nix
index 7e2bc3a3ec0..00ead0f89a3 100644
--- a/pkgs/applications/video/screenkey/default.nix
+++ b/pkgs/applications/video/screenkey/default.nix
@@ -1,53 +1,66 @@
 { lib
-, substituteAll
-, buildPythonApplication
-, fetchFromGitHub
-, distutils_extra
-, setuptools-git
+, fetchFromGitLab
+# native
 , intltool
-, pygtk
-, libX11
-, libXtst
 , wrapGAppsHook
-, gnome3
+, file
+# not native
+, xorg
+, gobject-introspection
+, gtk3
+, python3
 }:
-buildPythonApplication rec {
+
+python3.pkgs.buildPythonApplication rec {
   pname = "screenkey";
-  version = "0.9";
+  version = "1.2";
 
-  src = fetchFromGitHub {
-    owner = "wavexx";
+  src = fetchFromGitLab {
+    owner = "screenkey";
     repo = "screenkey";
-    rev = "screenkey-${version}";
-    sha256 = "14g7fiv9n7m03djwz1pp5034pffi87ssvss9bc1q8vq0ksn23vrw";
+    rev = "v${version}";
+    sha256 = "1x13n57iy2pg3h3r994q3g5nbmh2gwk3qidmmcv0g7qa89n2gwbj";
   };
 
-  patches = [
-    (substituteAll {
-      src = ./paths.patch;
-      inherit libX11 libXtst;
-    })
-  ];
-
   nativeBuildInputs = [
-    distutils_extra
-    setuptools-git
+    python3.pkgs.distutils_extra
+    # Shouldn't be needed once https://gitlab.com/screenkey/screenkey/-/issues/122 is fixed.
     intltool
-
+    # We are not sure why is this needed, but without it we get "file: command
+    # not found" errors during build.
+    file
     wrapGAppsHook
+    # for setup hook
+    gobject-introspection
   ];
 
   buildInputs = [
-    gnome3.adwaita-icon-theme
+    gtk3
   ];
 
-  propagatedBuildInputs = [
-    pygtk
+  propagatedBuildInputs = with python3.pkgs; [
+    pycairo
+    pygobject3
   ];
 
+  # Prevent double wrapping because of wrapGAppsHook
+  dontWrapGApps = true;
+  # https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
   # screenkey does not have any tests
   doCheck = false;
 
+  # Fix CDLL python calls for non absolute paths of xorg libraries
+  postPatch = ''
+    substituteInPlace Screenkey/xlib.py \
+      --replace libX11.so.6 ${lib.getLib xorg.libX11}/lib/libX11.so.6 \
+      --replace libXtst.so.6 ${lib.getLib xorg.libXtst}/lib/libXtst.so.6
+  '';
+
   meta = with lib; {
     homepage = "https://www.thregr.org/~wavexx/software/screenkey/";
     description = "A screencast tool to display your keys inspired by Screenflick";
diff --git a/pkgs/applications/video/screenkey/paths.patch b/pkgs/applications/video/screenkey/paths.patch
deleted file mode 100644
index 7e5ed47fc19..00000000000
--- a/pkgs/applications/video/screenkey/paths.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/Screenkey/xlib.py
-+++ b/Screenkey/xlib.py
-@@ -6,7 +6,7 @@
- from ctypes import *
- 
- ## base X11
--libX11 = CDLL('libX11.so.6')
-+libX11 = CDLL('@libX11@/lib/libX11.so.6')
- 
- # types
- Atom = c_ulong
-@@ -278,7 +278,7 @@
- 
- 
- ## record extensions
--libXtst = CDLL('libXtst.so.6')
-+libXtst = CDLL('@libXtst@/lib/libXtst.so.6')
- 
- # types
- XPointer = String
\ No newline at end of file
diff --git a/pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch b/pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch
deleted file mode 100644
index 475788ba3a4..00000000000
--- a/pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 247baa7e9210bbe5462b6155014c3dcd4a60e56a Mon Sep 17 00:00:00 2001
-From: Peter Simons <simons@cryp.to>
-Date: Tue, 24 Sep 2019 10:27:17 +0200
-Subject: [PATCH] encodedock.cpp: connect to VAAPI via DRM, not X11
-
----
- src/docks/encodedock.cpp | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/src/docks/encodedock.cpp b/src/docks/encodedock.cpp
-index f2d64fc8..63d20787 100644
---- a/src/docks/encodedock.cpp
-+++ b/src/docks/encodedock.cpp
-@@ -766,7 +766,6 @@ Mlt::Properties* EncodeDock::collectProperties(int realtime)
-                     setIfNotSet(p, "pix_fmt", "nv12");
-                 } else if (vcodec.endsWith("_vaapi")) {
-                     setIfNotSet(p, "vprofile", "main");
--                    setIfNotSet(p, "connection_type", "x11");
-                 }
-             }
-             setIfNotSet(p, "width", ui->widthSpinner->value());
-@@ -1890,7 +1889,7 @@ void EncodeDock::on_hwencodeCheckBox_clicked(bool checked)
-             QStringList args;
-             args << "-hide_banner" << "-f" << "lavfi" << "-i" << "color=s=640x360" << "-frames" << "1" << "-an";
-             if (codec.endsWith("_vaapi"))
--                args << "-init_hw_device" << "vaapi=vaapi0:,connection_type=x11" << "-filter_hw_device" << "vaapi0" << "-vf" << "format=nv12,hwupload";
-+                args << "-init_hw_device" << "vaapi=vaapi0" << "-filter_hw_device" << "vaapi0" << "-vf" << "format=nv12,hwupload";
-             else if (codec == "hevc_qsv")
-                 args << "-load_plugin" << "hevc_hw";
-             args << "-c:v" << codec << "-f" << "rawvideo" << "pipe:";
--- 
-2.24.1
-
diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
index 9c0435a351c..f907179bd04 100644
--- a/pkgs/applications/video/shotcut/default.nix
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -3,22 +3,20 @@
 , qtquickcontrols, qtgraphicaleffects, libmlt, qmake, qttools
 }:
 
-assert stdenv.lib.versionAtLeast libmlt.version "6.18.0";
-assert stdenv.lib.versionAtLeast mlt.version "6.18.0";
+assert stdenv.lib.versionAtLeast libmlt.version "6.20.0";
+assert stdenv.lib.versionAtLeast mlt.version "6.20.0";
 
 mkDerivation rec {
   pname = "shotcut";
-  version = "20.04.12";
+  version = "20.07.11";
 
   src = fetchFromGitHub {
     owner = "mltframework";
     repo = "shotcut";
     rev = "v${version}";
-    sha256 = "05yyv9192f722j8fhfjrphxadgp3crvbq4pi23ln560zh9s1m8r4";
+    sha256 = "0ajg0bpdckhvmmsliy1xky9p4mdypnaw3z3cvfsdrm0zcihbgazv";
   };
 
-  patches = [ ./0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch ];
-
   enableParallelBuilding = true;
   nativeBuildInputs = [ pkgconfig qmake ];
   buildInputs = [
diff --git a/pkgs/applications/video/smplayer/default.nix b/pkgs/applications/video/smplayer/default.nix
index 85c71e86a64..a8d2aaaff0e 100644
--- a/pkgs/applications/video/smplayer/default.nix
+++ b/pkgs/applications/video/smplayer/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "smplayer";
-  version = "20.4.2";
+  version = "20.6.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0kqdx6q2274gm83rycvdcglka60ymdk4iw2lc39iw7z1zgsv6ky3";
+    sha256 = "0c59gfgm2ya8yb2nx7gy1zc0nrr4206213xy86y7jw0bk9mmjxmy";
   };
 
   buildInputs = [ qtscript ];
diff --git a/pkgs/applications/video/smtube/default.nix b/pkgs/applications/video/smtube/default.nix
index 1cd6fb693e8..26b14ab739c 100644
--- a/pkgs/applications/video/smtube/default.nix
+++ b/pkgs/applications/video/smtube/default.nix
@@ -1,12 +1,12 @@
 { lib, mkDerivation, fetchurl, qmake, qtscript, qtwebkit }:
 
 mkDerivation rec {
-  version = "20.1.0";
+  version = "20.6.0";
   pname = "smtube";
 
   src = fetchurl {
     url = "mirror://sourceforge/smtube/SMTube/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "00x7gyk06d01hrr1lcqbrffbkkpj2j0j1fy9mkxc7slbzqcl27dz";
+    sha256 = "0hnza5gszwqnkc1py5g34hi4p976vpkc4h3ab0247ynqs83fpwc2";
   };
 
   makeFlags = [
diff --git a/pkgs/applications/video/streamlink-twitch-gui/bin.nix b/pkgs/applications/video/streamlink-twitch-gui/bin.nix
new file mode 100644
index 00000000000..251f495b7e1
--- /dev/null
+++ b/pkgs/applications/video/streamlink-twitch-gui/bin.nix
@@ -0,0 +1,100 @@
+{ autoPatchelfHook, fetchurl, lib, makeDesktopItem, makeWrapper, stdenv, wrapGAppsHook
+, at-spi2-core, atk, alsaLib, cairo, cups, dbus, expat, gcc-unwrapped
+, gdk-pixbuf, glib, gnome2, gtk3-x11, libudev0-shim, libuuid, nss, nspr, xorg
+, streamlink }:
+
+let
+  basename = "streamlink-twitch-gui";
+  runtimeLibs = lib.makeLibraryPath [ libudev0-shim ];
+  arch =
+    if stdenv.hostPlatform.system == "x86_64-linux"
+    then
+      "linux64"
+    else
+      "linux32";
+
+in
+stdenv.mkDerivation rec {
+  pname = "${basename}-bin";
+  version = "1.10.0";
+
+  src = fetchurl {
+    url = "https://github.com/streamlink/${basename}/releases/download/v${version}/${basename}-v${version}-${arch}.tar.gz";
+    sha256 =
+      if arch == "linux64"
+      then
+        "17s9zbzj4pgz9mxxwjbp3788afkddc9s3p7xp28y5084z9wwzph2"
+      else
+        "1pww05hr48m6v0g1sz48g1c7p615lig3s12l21xgyz4gkjzmjy22";
+  };
+
+  nativeBuildInputs = with xorg; [
+    at-spi2-core
+    atk
+    alsaLib
+    autoPatchelfHook
+    cairo
+    cups.lib
+    dbus.daemon.lib
+    expat
+    gcc-unwrapped
+    gdk-pixbuf
+    glib
+    gnome2.pango
+    gtk3-x11
+    nss
+    nspr
+    libuuid
+    libX11
+    libxcb
+    libXcomposite
+    libXcursor
+    libXdamage
+    libXext
+    libXfixes
+    libXi
+    libXrandr
+    libXrender
+    libXScrnSaver
+    libXtst
+    makeWrapper
+    wrapGAppsHook
+  ];
+
+  buildInputs = [ streamlink ];
+
+  dontBuild = true;
+  dontConfigure = true;
+
+  installPhase = ''
+    mkdir -p $out/{bin,opt/${basename},share}
+
+    # Install all files, remove unnecessary ones
+    cp -a . $out/opt/${basename}/
+    rm -r $out/opt/${basename}/{{add,remove}-menuitem.sh,credits.html,icons/}
+
+    wrapProgram $out/opt/${basename}/${basename} --add-flags "--no-version-check" --prefix LD_LIBRARY_PATH : ${runtimeLibs}
+
+    ln -s "$out/opt/${basename}/${basename}" $out/bin/
+    ln -s "${desktopItem}/share/applications" $out/share/
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = basename;
+    exec = basename;
+    icon = basename;
+    desktopName = "Streamlink Twitch GUI";
+    genericName = meta.description;
+    categories = "AudioVideo;Network;";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Twitch.tv browser for Streamlink";
+    longDescription = "Browse Twitch.tv and watch streams in your videoplayer of choice";
+    homepage = "https://streamlink.github.io/streamlink-twitch-gui/";
+    downloadPage = https://github.com/streamlink/streamlink-twitch-gui/releases;
+    license = licenses.mit;
+    maintainers = with maintainers; [ rileyinman ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/pkgs/applications/video/streamlink/default.nix b/pkgs/applications/video/streamlink/default.nix
index c1066bf283a..4c8800c918e 100644
--- a/pkgs/applications/video/streamlink/default.nix
+++ b/pkgs/applications/video/streamlink/default.nix
@@ -1,14 +1,14 @@
 { stdenv, pythonPackages, fetchFromGitHub, rtmpdump, ffmpeg_3 }:
 
 pythonPackages.buildPythonApplication rec {
-  version = "1.4.1";
+  version = "1.5.0";
   pname = "streamlink";
 
   src = fetchFromGitHub {
     owner = "streamlink";
     repo = "streamlink";
     rev = version;
-    sha256 = "1q3h48qwf7vs2wnbkwv0xnm6s65mkcyqdz7z6z3vrsmif2sb19l2";
+    sha256 = "00pishpyim3mcvr9njcbfhj79j85b5xhkslk3mspc2csqknw4k61";
   };
 
   checkInputs = with pythonPackages; [ pytest mock requests-mock freezegun ];
diff --git a/pkgs/applications/video/vdr/default.nix b/pkgs/applications/video/vdr/default.nix
index d025554835e..14ca503f2e9 100644
--- a/pkgs/applications/video/vdr/default.nix
+++ b/pkgs/applications/video/vdr/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, fontconfig, libjpeg, libcap, freetype, fribidi, pkgconfig
-, gettext, systemd, perl, lib
+, gettext, systemd, perl, lib, fetchpatch
 , enableSystemd ? true
 , enableBidi ? true
 }: stdenv.mkDerivation rec {
@@ -12,6 +12,11 @@
     sha256 = "1p51b14aqzncx3xpfg0rjplc48pg7520035i5p6r5zzkqhszihr5";
   };
 
+  patches = [
+    # Derived from http://git.tvdr.de/?p=vdr.git;a=commit;h=930c2cd2eb8947413e88404fa94c66e4e1db5ad6
+    ./glibc2.31-compat.patch
+  ];
+
   enableParallelBuilding = true;
 
   postPatch = "substituteInPlace Makefile --replace libsystemd-daemon libsystemd";
diff --git a/pkgs/applications/video/vdr/glibc2.31-compat.patch b/pkgs/applications/video/vdr/glibc2.31-compat.patch
new file mode 100644
index 00000000000..9a52d4b290b
--- /dev/null
+++ b/pkgs/applications/video/vdr/glibc2.31-compat.patch
@@ -0,0 +1,15 @@
+diff --git a/eit.c b/eit.c
+index 50d8229..373dbca 100644
+--- a/eit.c
++++ b/eit.c
+@@ -391,7 +391,9 @@ cTDT::cTDT(const u_char *Data)
+   if (abs(diff) > MAX_TIME_DIFF) {
+      mutex.Lock();
+      if (abs(diff) > MAX_ADJ_DIFF) {
+-        if (stime(&dvbtim) == 0)
++        timespec ts = { 0 };
++        ts.tv_sec = dvbtim;
++        if (clock_settime(CLOCK_REALTIME, &ts) == 0)
+            isyslog("system time changed from %s (%ld) to %s (%ld)", *TimeToString(loctim), loctim, *TimeToString(dvbtim), dvbtim);
+         else
+            esyslog("ERROR while setting system time: %m");
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index 91fb36c3974..e655e0fbff4 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -25,11 +25,11 @@ assert (withQt5 -> qtbase != null && qtsvg != null && qtx11extras != null && wra
 
 stdenv.mkDerivation rec {
   pname = "vlc";
-  version = "3.0.11";
+  version = "3.0.11.1";
 
   src = fetchurl {
     url = "http://get.videolan.org/vlc/${version}/${pname}-${version}.tar.xz";
-    sha256 = "06a9hfl60f6l0fs5c9ma5s8np8kscm4ala6m2pdfji9lyfna351y";
+    sha256 = "1f46h0hv7fk35zg4iczlp7ib7h2jmh8m4r5klw3g2558ib9134qq";
   };
 
   # VLC uses a *ton* of libraries for various pieces of functionality, many of
diff --git a/pkgs/applications/video/vokoscreen-ng/default.nix b/pkgs/applications/video/vokoscreen-ng/default.nix
new file mode 100644
index 00000000000..600bc715ffb
--- /dev/null
+++ b/pkgs/applications/video/vokoscreen-ng/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, pkg-config
+, qmake
+, qttools
+, gstreamer
+, libX11
+, qtbase
+, qtmultimedia
+, qtx11extras
+
+, gst-plugins-base
+, gst-plugins-good
+, gst-plugins-bad
+, gst-plugins-ugly
+}:
+mkDerivation rec {
+
+  pname = "vokoscreen-ng";
+  version = "3.0.5";
+
+  src = fetchFromGitHub {
+    owner = "vkohaupt";
+    repo = "vokoscreenNG";
+    rev = version;
+    sha256 = "1spyqw8h8bkc1prdb9aixiw5h3hk3gp2p0nj934bnwq04kmfp660";
+  };
+
+  patches = [
+    # Better linux integration
+    (fetchpatch {
+      url = "https://github.com/vkohaupt/vokoscreenNG/commit/0a3784095ecca582f7eb09551ceb34c309d83637.patch";
+      sha256 = "1iibimv8xfxxfk44kkbrkay37ibdndjvs9g53mxr8x8vrsp917bz";
+    })
+  ];
+
+  qmakeFlags = [ "src/vokoscreenNG.pro" ];
+
+  nativeBuildInputs = [ qttools pkg-config qmake ];
+  buildInputs = [
+    gstreamer
+    libX11
+    qtbase
+    qtmultimedia
+    qtx11extras
+
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-bad
+    gst-plugins-ugly
+  ];
+
+  postPatch = ''
+    substituteInPlace src/vokoscreenNG.pro \
+      --replace lrelease-qt5 lrelease
+  '';
+
+  postInstall = ''
+    qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
+  '';
+
+  meta = with lib; {
+    description = "User friendly Open Source screencaster for Linux and Windows";
+    license = licenses.gpl2Plus;
+    homepage = "https://github.com/vkohaupt/vokoscreenNG";
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/video/vokoscreen/default.nix b/pkgs/applications/video/vokoscreen/default.nix
index 0cd3c814b17..94d0de20ccf 100644
--- a/pkgs/applications/video/vokoscreen/default.nix
+++ b/pkgs/applications/video/vokoscreen/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, mkDerivation
 , pkgconfig, qtbase, qttools, qmake, qtmultimedia, qtx11extras, alsaLib, libv4l, libXrandr
-, ffmpeg_3
+, ffmpeg
 }:
 
 mkDerivation rec {
@@ -35,7 +35,7 @@ mkDerivation rec {
   '';
 
   postConfigure = ''
-    substituteInPlace settings/QvkSettings.cpp --subst-var-by ffmpeg ${ffmpeg_3}
+    substituteInPlace settings/QvkSettings.cpp --subst-var-by ffmpeg ${ffmpeg}
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/video/webcamoid/default.nix b/pkgs/applications/video/webcamoid/default.nix
index 41304c21ac3..aa559215fe8 100644
--- a/pkgs/applications/video/webcamoid/default.nix
+++ b/pkgs/applications/video/webcamoid/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pkgconfig, libxcb, mkDerivation, qmake
 , qtbase, qtdeclarative, qtquickcontrols, qtquickcontrols2
-, ffmpeg-full, gstreamer, gst_all_1, libpulseaudio, alsaLib, jack2
+, ffmpeg-full, gst_all_1, libpulseaudio, alsaLib, jack2
 , v4l-utils }:
 mkDerivation rec {
   pname = "webcamoid";
@@ -17,7 +17,7 @@ mkDerivation rec {
     libxcb
     qtbase qtdeclarative qtquickcontrols qtquickcontrols2
     ffmpeg-full
-    gstreamer gst_all_1.gst-plugins-base
+    gst_all_1.gstreamer gst_all_1.gst-plugins-base
     alsaLib libpulseaudio jack2
     v4l-utils
   ];
diff --git a/pkgs/applications/video/webtorrent_desktop/default.nix b/pkgs/applications/video/webtorrent_desktop/default.nix
index 24c17daa759..ef50dad86bc 100644
--- a/pkgs/applications/video/webtorrent_desktop/default.nix
+++ b/pkgs/applications/video/webtorrent_desktop/default.nix
@@ -1,14 +1,16 @@
 {
-  alsaLib, atk, cairo, cups, dbus, dpkg, expat, fetchurl, fontconfig, freetype,
-  gdk-pixbuf, glib, gnome2, libX11, libXScrnSaver, libXcomposite, libXcursor,
+  alsaLib, atk, cairo, cups, dbus, dpkg, expat, fetchurl, fetchzip, fontconfig, freetype,
+  gdk-pixbuf, glib, gnome3, libX11, libXScrnSaver, libXcomposite, libXcursor,
   libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst,
-  libxcb, nspr, nss, stdenv, udev
+  libxcb, nspr, nss, stdenv, udev, libuuid, pango, at-spi2-atk, at-spi2-core
 }:
 
   let
     rpath = stdenv.lib.makeLibraryPath ([
     alsaLib
     atk
+    at-spi2-core
+    at-spi2-atk
     cairo
     cups
     dbus
@@ -17,9 +19,9 @@
     freetype
     gdk-pixbuf
     glib
-    gnome2.GConf
-    gnome2.gtk
-    gnome2.pango
+    gnome3.gtk
+    pango
+    libuuid
     libX11
     libXScrnSaver
     libXcomposite
@@ -39,29 +41,33 @@
     ]);
   in stdenv.mkDerivation rec {
     pname = "webtorrent-desktop";
-    version = "0.20.0";
+    version = "0.21.0";
 
     src =
       if stdenv.hostPlatform.system == "x86_64-linux" then
-        fetchurl {
-          url = "https://github.com/webtorrent/webtorrent-desktop/releases/download/v0.20.0/webtorrent-desktop_${version}-1_amd64.deb";
-          sha256 = "1kkrnbimiip5pn2nwpln35bbdda9gc3cgrjwphq4fqasbjf2781k";
+        fetchzip {
+          url = "https://github.com/webtorrent/webtorrent-desktop/releases/download/v${version}/WebTorrent-v${version}-linux.zip";
+          sha256 = "13gd8isq2l10kibsc1bsc15dbgpnwa7nw4cwcamycgx6pfz9a852";
         }
         else
           throw "Webtorrent is not currently supported on ${stdenv.hostPlatform.system}";
+    desktopFile = fetchurl {
+      url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/applications/webtorrent-desktop.desktop";
+      sha256 = "1v16dqbxqds3cqg3xkzxsa5fyd8ssddvjhy9g3i3lz90n47916ca";
+    };
+    icon256File = fetchurl {
+      url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/256x256/apps/webtorrent-desktop.png";
+      sha256 = "1dapxvvp7cx52zhyaby4bxm4rll9xc7x3wk8k0il4g3mc7zzn3yk";
+    };
+    icon48File = fetchurl {
+      url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/48x48/apps/webtorrent-desktop.png";
+      sha256 = "00y96w9shbbrdbf6xcjlahqd08154kkrxmqraik7qshiwcqpw7p4";
+    };
     phases = [ "unpackPhase" "installPhase" ];
     nativeBuildInputs = [ dpkg ];
-    unpackPhase = "dpkg-deb -x $src .";
     installPhase = ''
-      mkdir -p $out
-      cp -R opt $out
-
-      mv ./usr/share $out/share
-      mv $out/opt/webtorrent-desktop $out/libexec
-      chmod +x $out/libexec/WebTorrent
-      rmdir $out/opt
-
-      chmod -R g-w $out
+      mkdir -p $out/share/{applications,icons/hicolor/{48x48,256x256}/apps}
+      cp -R . $out/libexec
 
       # Patch WebTorrent
       patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
@@ -71,9 +77,11 @@
       mkdir -p $out/bin
       ln -s $out/libexec/WebTorrent $out/bin/WebTorrent
 
-      # Fix the desktop link
-      substituteInPlace $out/share/applications/webtorrent-desktop.desktop \
-        --replace /opt/webtorrent-desktop $out/bin
+      cp $icon48File $out/share/icons/hicolor/48x48/apps/webtorrent-desktop.png
+      cp $icon256File $out/share/icons/hicolor/256x256/apps/webtorrent-desktop.png
+      ## Fix the desktop link
+      substitute $desktopFile $out/share/applications/webtorrent-desktop.desktop \
+        --replace /opt/webtorrent-desktop $out/libexec
     '';
 
     meta = with stdenv.lib; {
diff --git a/pkgs/applications/virtualization/OVMF/default.nix b/pkgs/applications/virtualization/OVMF/default.nix
index 19ba8ced497..94d0ae94dbd 100644
--- a/pkgs/applications/virtualization/OVMF/default.nix
+++ b/pkgs/applications/virtualization/OVMF/default.nix
@@ -41,11 +41,14 @@ edk2.mkDerivation projectDscPath {
     mkdir -vp $fd/AAVMF
     mv -v $out/FV/QEMU_{EFI,VARS}.fd $fd/FV
 
-    # Uses Fedora dir layout: https://src.fedoraproject.org/cgit/rpms/edk2.git/tree/edk2.spec
-    # FIXME: why is it different from Debian dir layout? https://salsa.debian.org/qemu-team/edk2/blob/debian/debian/rules
-    dd of=$fd/AAVMF/QEMU_EFI-pflash.raw       if=/dev/zero bs=1M    count=64
-    dd of=$fd/AAVMF/QEMU_EFI-pflash.raw       if=$fd/FV/QEMU_EFI.fd conv=notrunc
-    dd of=$fd/AAVMF/vars-template-pflash.raw if=/dev/zero bs=1M    count=64
+    # Use Debian dir layout: https://salsa.debian.org/qemu-team/edk2/blob/debian/debian/rules
+    dd of=$fd/FV/AAVMF_CODE.fd  if=/dev/zero bs=1M    count=64
+    dd of=$fd/FV/AAVMF_CODE.fd  if=$fd/FV/QEMU_EFI.fd conv=notrunc
+    dd of=$fd/FV/AAVMF_VARS.fd  if=/dev/zero bs=1M    count=64
+
+    # Also add symlinks for Fedora dir layout: https://src.fedoraproject.org/cgit/rpms/edk2.git/tree/edk2.spec
+    ln -s $fd/FV/AAVMF_CODE.fd $fd/AAVMF/QEMU_EFI-pflash.raw
+    ln -s $fd/FV/AAVMF_VARS.fd $fd/AAVMF/vars-template-pflash.raw
   '' else ''
     mkdir -vp $fd/FV
     mv -v $out/FV/OVMF{,_CODE,_VARS}.fd $fd/FV
diff --git a/pkgs/applications/virtualization/charliecloud/default.nix b/pkgs/applications/virtualization/charliecloud/default.nix
index a316952a010..54663f9c5e6 100644
--- a/pkgs/applications/virtualization/charliecloud/default.nix
+++ b/pkgs/applications/virtualization/charliecloud/default.nix
@@ -1,22 +1,32 @@
-{ stdenv, fetchFromGitHub, python }:
+{ stdenv, fetchFromGitHub, python3, python3Packages, docker, autoreconfHook, coreutils, makeWrapper, gnused, gnutar, gzip, findutils, sudo, nixosTests }:
 
 stdenv.mkDerivation rec {
 
-  version = "0.12";
+  version = "0.18";
   pname = "charliecloud";
 
   src = fetchFromGitHub {
     owner = "hpc";
     repo = "charliecloud";
     rev = "v${version}";
-    sha256 = "177rcf1klcxsp6x9cw75cmz3y2izgd1hvi1rb9vc6iz9qx1nmk3v";
+    sha256 = "0x2kvp95ld0yii93z9i0k9sknfx7jkgy4rkw9l369fl7f73ghsiq";
   };
 
-  buildInputs = [ python ];
+  nativeBuildInputs = [ autoreconfHook makeWrapper ];
+  buildInputs = [
+    docker
+    (python3.withPackages (ps: [ ps.lark-parser ps.requests ]))
+  ];
+
+  configureFlags = let
+    pythonEnv = python3.withPackages (ps: [ ps.lark-parser ps.requests ]);
+  in [
+    "--with-python=${pythonEnv}/bin/python3"
+  ];
 
   preConfigure = ''
-    substituteInPlace Makefile --replace '/bin/bash' '${stdenv.shell}'
     patchShebangs test/
+    substituteInPlace configure.ac --replace "/usr/bin/env" "${coreutils}/bin/env"
   '';
 
   makeFlags = [
@@ -24,12 +34,16 @@ stdenv.mkDerivation rec {
     "LIBEXEC_DIR=lib/charliecloud"
   ];
 
+  # Charliecloud calls some external system tools.
+  # Here we wrap those deps so they are resolved inside nixpkgs.
   postInstall = ''
-    mkdir -p $out/share/charliecloud
-    mv $out/lib/charliecloud/examples $out/share/charliecloud
-    mv $out/lib/charliecloud/test $out/share/charliecloud
+    for file in $out/bin/* ; do \
+      wrapProgram $file --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils docker gnused gnutar gzip findutils sudo ]}
+    done
   '';
 
+  passthru.tests.charliecloud = nixosTests.charliecloud;
+
   meta = {
     description = "User-defined software stacks (UDSS) for high-performance computing (HPC) centers";
     longDescription = ''
diff --git a/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch b/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch
new file mode 100644
index 00000000000..7a7378faa58
--- /dev/null
+++ b/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch
@@ -0,0 +1,53 @@
+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/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/pkgs/applications/virtualization/cloud-hypervisor/default.nix
new file mode 100644
index 00000000000..59c97c4a8de
--- /dev/null
+++ b/pkgs/applications/virtualization/cloud-hypervisor/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub, rustPlatform, pkgconfig, openssl }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cloud-hypervisor";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    owner = "cloud-hypervisor";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "h2aWWjycTm84TS89/vhqnAvwOqeeSDtvvCt+Is6I0eI=";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ openssl ];
+
+  cargoPatches = [ ./cargo-lock-vendor-fix.patch ];
+  cargoSha256 = "fOIB+qVDqAAgQPW3bK2NfST24GzYJeRXgaMFXyNPcPQ=";
+
+  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" ];
+  };
+}
diff --git a/pkgs/applications/virtualization/conmon/default.nix b/pkgs/applications/virtualization/conmon/default.nix
index d5abb569e7b..064500fde7f 100644
--- a/pkgs/applications/virtualization/conmon/default.nix
+++ b/pkgs/applications/virtualization/conmon/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "conmon";
-  version = "2.0.18";
+  version = "2.0.20";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0f32g048jamfhrds68vzirx8iqizr45wf2d4bfvdsk176amrj4k0";
+    sha256 = "1f09wx5k98fa55r73y5v0sgf2lha675xhk40piyf0b7zqknl6lya";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   installFlags = [ "PREFIX=$(out)" ];
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) cri-o podman; };
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/containers/conmon";
diff --git a/pkgs/applications/virtualization/containerd/default.nix b/pkgs/applications/virtualization/containerd/default.nix
index 4210994f435..e6595a207b8 100644
--- a/pkgs/applications/virtualization/containerd/default.nix
+++ b/pkgs/applications/virtualization/containerd/default.nix
@@ -4,7 +4,7 @@ with lib;
 
 buildGoPackage rec {
   pname = "containerd";
-  version = "1.2.13";
+  version = "1.4.0";
   # git commit for the above version's tag
   commit = "7ad184331fa3e55e52b890ea95e65ba581ae3429";
 
@@ -12,7 +12,7 @@ buildGoPackage rec {
     owner = "containerd";
     repo = "containerd";
     rev = "v${version}";
-    sha256 = "1rac3iak3jpz57yarxc72bxgxvravwrl0j6s6w2nxrmh2m3kxqzn";
+    sha256 = "1ajns679ck5yp6vmf39pyshzf8jijw5fcg5biixkj54jhj3bv1sq";
   };
 
   goPackagePath = "github.com/containerd/containerd";
diff --git a/pkgs/applications/virtualization/cri-o/default.nix b/pkgs/applications/virtualization/cri-o/default.nix
index 5421bedf292..d0c8938e6de 100644
--- a/pkgs/applications/virtualization/cri-o/default.nix
+++ b/pkgs/applications/virtualization/cri-o/default.nix
@@ -10,19 +10,23 @@
 , libselinux
 , lvm2
 , pkg-config
+, nixosTests
 }:
 
 buildGoModule rec {
   pname = "cri-o";
-  version = "1.18.2";
+  version = "1.18.3";
 
   src = fetchFromGitHub {
     owner = "cri-o";
     repo = "cri-o";
     rev = "v${version}";
-    sha256 = "0p6gprbs54v3n09fjpyfxnzxs680ms8924wdim4q9qw52wc6sbdz";
+    sha256 = "1csdbyypqwxkfc061pdv7nj52a52b9xxzb6qgxcznd82w7wgfb3g";
   };
   vendorSha256 = null;
+
+  doCheck = false;
+
   outputs = [ "out" "man" ];
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
@@ -54,6 +58,8 @@ buildGoModule rec {
     installManPage docs/*.[1-9]
   '';
 
+  passthru.tests = { inherit (nixosTests) cri-o; };
+
   meta = with stdenv.lib; {
     homepage = "https://cri-o.io";
     description = ''
diff --git a/pkgs/applications/virtualization/cri-o/wrapper.nix b/pkgs/applications/virtualization/cri-o/wrapper.nix
index 1578eaf4f58..298bec6550e 100644
--- a/pkgs/applications/virtualization/cri-o/wrapper.nix
+++ b/pkgs/applications/virtualization/cri-o/wrapper.nix
@@ -27,7 +27,7 @@ let
 
 in runCommand cri-o.name {
   name = "${cri-o.pname}-wrapper-${cri-o.version}";
-  inherit (cri-o) pname version;
+  inherit (cri-o) pname version passthru;
 
   meta = builtins.removeAttrs cri-o.meta [ "outputsToInstall" ];
 
diff --git a/pkgs/applications/virtualization/crun/default.nix b/pkgs/applications/virtualization/crun/default.nix
index 8e903f475da..5f002f5ddc8 100644
--- a/pkgs/applications/virtualization/crun/default.nix
+++ b/pkgs/applications/virtualization/crun/default.nix
@@ -34,13 +34,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "crun";
-  version = "0.14";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = version;
-    sha256 = "14hmdarmhkfp5qgd8ifn7dn895j54ibaficci82q40haqh252l4n";
+    sha256 = "0r77ksdrpxskf79m898a7ai8wxw9fmmsf2lg8fw3ychnk74l8jvh";
     fetchSubmodules = true;
   };
 
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) podman; };
 
   meta = with lib; {
     description = "A fast and lightweight fully featured OCI runtime and C library for running containers";
diff --git a/pkgs/applications/virtualization/docker-compose/default.nix b/pkgs/applications/virtualization/docker-compose/default.nix
index 71359467c5c..cf11b693293 100644
--- a/pkgs/applications/virtualization/docker-compose/default.nix
+++ b/pkgs/applications/virtualization/docker-compose/default.nix
@@ -4,16 +4,16 @@
 , pyyaml, backports_ssl_match_hostname, colorama, docopt
 , dockerpty, docker, ipaddress, jsonschema, requests
 , six, texttable, websocket_client, cached-property
-, enum34, functools32, paramiko
+, enum34, functools32, paramiko, distro, python-dotenv
 }:
 
 buildPythonApplication rec {
-  version = "1.25.5";
+  version = "1.26.2";
   pname = "docker-compose";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ijhg93zs3lswkljnm0rhww7gdy0g94psvsya2741prz2zcbcbks";
+    sha256 = "0c3v30z7jlbxm9nxs42vv3nbja0zsppkcd6fnd0mjcm1s60hyssp";
   };
 
   # lots of networking and other fails
@@ -23,7 +23,7 @@ buildPythonApplication rec {
   propagatedBuildInputs = [
     pyyaml backports_ssl_match_hostname colorama dockerpty docker
     ipaddress jsonschema requests six texttable websocket_client
-    docopt cached-property paramiko
+    docopt cached-property paramiko distro python-dotenv
   ] ++
     stdenv.lib.optional (pythonOlder "3.4") enum34 ++
     stdenv.lib.optional (pythonOlder "3.2") functools32;
diff --git a/pkgs/applications/virtualization/docker-slim/default.nix b/pkgs/applications/virtualization/docker-slim/default.nix
index 996d52bacab..058f6fd8ccc 100644
--- a/pkgs/applications/virtualization/docker-slim/default.nix
+++ b/pkgs/applications/virtualization/docker-slim/default.nix
@@ -6,7 +6,7 @@
 
 buildGoPackage rec {
   pname = "docker-slim";
-  version = "1.29.0";
+  version = "1.32.0";
 
   goPackagePath = "github.com/docker-slim/docker-slim";
 
@@ -14,7 +14,7 @@ buildGoPackage rec {
     owner = "docker-slim";
     repo = "docker-slim";
     rev = version;
-    sha256 = "0qfjmwqxgghp9pqj4s2z71cmn8mi1l6655z6nbhh72yqaxh5a6ia";
+    sha256 = "0pd2v7df176ca923c4nw9ns5gz442jkb0jhzqjl53rwfwz1vxy9h";
   };
 
   subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
@@ -41,10 +41,5 @@ buildGoPackage rec {
     homepage = "https://dockersl.im/";
     license = licenses.asl20;
     maintainers = with maintainers; [ filalex77 marsam mbrgm ];
-    # internal/app/sensor/monitors/ptrace/monitor.go:151:16: undefined:
-    #     system.CallNumber
-    # internal/app/sensor/monitors/ptrace/monitor.go:161:15: undefined:
-    #     system.CallReturnValue
-    badPlatforms = [ "aarch64-linux" ];
   };
 }
diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix
index e9fc96986a8..78d6631c2dc 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, lib, fetchFromGitHub, makeWrapper, removeReferencesTo, installShellFiles, pkgconfig
+{ stdenv, lib, fetchFromGitHub, fetchpatch, buildGoPackage
+, makeWrapper, removeReferencesTo, installShellFiles, pkgconfig
 , go-md2man, go, containerd, runc, docker-proxy, tini, libtool
 , sqlite, iproute, lvm2, systemd
 , btrfs-progs, iptables, e2fsprogs, xz, utillinux, xfsprogs, git
@@ -56,7 +57,7 @@ rec {
       NIX_CFLAGS_COMPILE = "-DMINIMAL=ON";
     });
   in
-    stdenv.mkDerivation ((optionalAttrs (stdenv.isLinux) {
+    buildGoPackage ((optionalAttrs (stdenv.isLinux) {
 
     inherit docker-runc docker-containerd docker-proxy docker-tini;
 
@@ -66,7 +67,7 @@ rec {
       ++ optional (lvm2 == null) "exclude_graphdriver_devicemapper"
       ++ optional (libseccomp != null) "seccomp";
 
-   }) // {
+   }) // rec {
     inherit version rev;
 
     name = "docker-${version}";
@@ -78,9 +79,19 @@ rec {
       sha256 = sha256;
     };
 
-    nativeBuildInputs = [ installShellFiles pkgconfig ];
+    patches = [
+      # Replace hard-coded cross-compiler with $CC
+      (fetchpatch {
+        url = https://github.com/docker/docker-ce/commit/2fdfb4404ab811cb00227a3de111437b829e55cf.patch;
+        sha256 = "1af20bzakhpfhaixc29qnl9iml9255xdinxdnaqp4an0n1xa686a";
+      })
+    ];
+
+    goPackagePath = "github.com/docker/docker-ce";
+
+    nativeBuildInputs = [ pkgconfig go-md2man go libtool removeReferencesTo installShellFiles ];
     buildInputs = [
-      makeWrapper removeReferencesTo go-md2man go libtool
+      makeWrapper
     ] ++ optionals (stdenv.isLinux) [
       sqlite lvm2 btrfs-progs systemd libseccomp
     ];
@@ -91,7 +102,7 @@ rec {
       export GOCACHE="$TMPDIR/go-cache"
     '' + (optionalString (stdenv.isLinux) ''
       # build engine
-      cd ./components/engine
+      cd ./go/src/${goPackagePath}/components/engine
       export AUTO_GOPATH=1
       export DOCKER_GITCOMMIT="${rev}"
       export VERSION="${version}"
@@ -99,7 +110,7 @@ rec {
       cd -
     '') + ''
       # build cli
-      cd ./components/cli
+      cd ./go/src/${goPackagePath}/components/cli
       # Mimic AUTO_GOPATH
       mkdir -p .gopath/src/github.com/docker/
       ln -sf $PWD .gopath/src/github.com/docker/cli
@@ -113,7 +124,7 @@ rec {
     '';
 
     # systemd 230 no longer has libsystemd-journal as a separate entity from libsystemd
-    patchPhase = ''
+    postPatch = ''
       substituteInPlace ./components/cli/scripts/build/.variables --replace "set -eu" ""
     '' + optionalString (stdenv.isLinux) ''
       patchShebangs .
@@ -125,7 +136,13 @@ rec {
 
     extraPath = optionals (stdenv.isLinux) (makeBinPath [ iproute iptables e2fsprogs xz xfsprogs procps utillinux git ]);
 
-    installPhase = optionalString (stdenv.isLinux) ''
+    installPhase = ''
+      cd ./go/src/${goPackagePath}
+      install -Dm755 ./components/cli/docker $out/libexec/docker/docker
+
+      makeWrapper $out/libexec/docker/docker $out/bin/docker \
+        --prefix PATH : "$out/libexec/docker:$extraPath"
+    '' + optionalString (stdenv.isLinux) ''
       install -Dm755 ./components/engine/bundles/dynbinary-daemon/dockerd $out/libexec/docker/dockerd
 
       makeWrapper $out/libexec/docker/dockerd $out/bin/dockerd \
@@ -141,24 +158,20 @@ rec {
       # systemd
       install -Dm644 ./components/engine/contrib/init/systemd/docker.service $out/etc/systemd/system/docker.service
     '' + ''
-      install -Dm755 ./components/cli/docker $out/libexec/docker/docker
-
-      makeWrapper $out/libexec/docker/docker $out/bin/docker \
-        --prefix PATH : "$out/libexec/docker:$extraPath"
-
       # completion (cli)
       installShellCompletion --bash ./components/cli/contrib/completion/bash/docker
       installShellCompletion --fish ./components/cli/contrib/completion/fish/docker.fish
       installShellCompletion --zsh ./components/cli/contrib/completion/zsh/_docker
 
       # Include contributed man pages (cli)
+      cd ./components/cli
+    '' + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
       # Generate man pages from cobra commands
       echo "Generate man pages from cobra"
-      cd ./components/cli
       mkdir -p ./man/man1
       go build -o ./gen-manpages github.com/docker/cli/man
       ./gen-manpages --root . --target ./man/man1
-
+    '' + ''
       # Generate legacy pages from markdown
       echo "Generate legacy manpages"
       ./man/md2man-all.sh -q
@@ -167,7 +180,7 @@ rec {
     '';
 
     preFixup = ''
-      find $out -type f -exec remove-references-to -t ${go} -t ${stdenv.cc.cc} '{}' +
+      find $out -type f -exec remove-references-to -t ${stdenv.cc.cc} '{}' +
     '' + optionalString (stdenv.isLinux) ''
       find $out -type f -exec remove-references-to -t ${stdenv.glibc.dev} '{}' +
     '';
diff --git a/pkgs/applications/virtualization/firectl/default.nix b/pkgs/applications/virtualization/firectl/default.nix
index 47ae4637b57..523e96f347c 100644
--- a/pkgs/applications/virtualization/firectl/default.nix
+++ b/pkgs/applications/virtualization/firectl/default.nix
@@ -15,6 +15,8 @@ buildGoModule rec {
 
   vendorSha256 = "1xbpck1gvzl75xgrajf5yzl199l4f2f6j3mac5586i7b00b9jxqj";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "A command-line tool to run Firecracker microVMs";
     homepage = "https://github.com/firecracker-microvm/firectl";
@@ -22,4 +24,4 @@ buildGoModule rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ xrelkd ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/virtualization/gvisor/containerd-shim.nix b/pkgs/applications/virtualization/gvisor/containerd-shim.nix
index 97623511222..c8610b73865 100644
--- a/pkgs/applications/virtualization/gvisor/containerd-shim.nix
+++ b/pkgs/applications/virtualization/gvisor/containerd-shim.nix
@@ -17,7 +17,6 @@ buildGoModule rec {
     make
   '';
 
-  doCheck = true;
   checkPhase = ''
     make test
   '';
@@ -33,4 +32,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ andrew-d ];
     platforms   = [ "x86_64-linux" ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/virtualization/hercules/default.nix b/pkgs/applications/virtualization/hercules/default.nix
index 901e2f0b6ec..8746e66668f 100644
--- a/pkgs/applications/virtualization/hercules/default.nix
+++ b/pkgs/applications/virtualization/hercules/default.nix
@@ -13,6 +13,6 @@ stdenv.mkDerivation rec {
     description = "IBM mainframe emulator";
     homepage = "http://www.hercules-390.eu";
     license = licenses.qpl;
-    maintainers = [ maintainers.dkudriavtsev ];
+    maintainers = [ maintainers.anna328p ];
   };
 }
diff --git a/pkgs/applications/virtualization/nvidia-docker/default.nix b/pkgs/applications/virtualization/nvidia-docker/default.nix
index b56b88cf87e..d0d7125721f 100644
--- a/pkgs/applications/virtualization/nvidia-docker/default.nix
+++ b/pkgs/applications/virtualization/nvidia-docker/default.nix
@@ -3,18 +3,6 @@
 
 with lib; let
 
-  glibc-ldconf = glibc.overrideAttrs (oldAttrs: {
-    # ldconfig needs help reading libraries that have been patchelf-ed, as the
-    # .dynstr section is no longer in the first LOAD segment. See also
-    # https://sourceware.org/bugzilla/show_bug.cgi?id=23964 and
-    # https://github.com/NixOS/patchelf/issues/44
-    patches = oldAttrs.patches ++ [ (fetchpatch {
-      name = "ldconfig-patchelf.patch";
-      url = "https://sourceware.org/bugzilla/attachment.cgi?id=11444";
-      sha256 = "0nzzmq7pli37iyjrgcmvcy92piiwjybpw245ds7q43pbgdm7lc3s";
-    })];
-  });
-
   libnvidia-container = callPackage ./libnvc.nix { };
 
   nvidia-container-runtime = fetchFromGitHub {
@@ -72,7 +60,7 @@ in stdenv.mkDerivation rec {
     wrapProgram $out/bin/nvidia-container-cli \
       --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:/run/opengl-driver-32/lib
     cp ${./config.toml} $out/etc/config.toml
-    substituteInPlace $out/etc/config.toml --subst-var-by glibcbin ${lib.getBin glibc-ldconf}
+    substituteInPlace $out/etc/config.toml --subst-var-by glibcbin ${lib.getBin glibc}
   '';
 
   meta = {
diff --git a/pkgs/applications/virtualization/open-vm-tools/default.nix b/pkgs/applications/virtualization/open-vm-tools/default.nix
index 46d91884fcd..df9a89293f2 100644
--- a/pkgs/applications/virtualization/open-vm-tools/default.nix
+++ b/pkgs/applications/virtualization/open-vm-tools/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "open-vm-tools";
-  version = "11.0.5";
+  version = "11.1.0";
 
   src = fetchFromGitHub {
     owner  = "vmware";
     repo   = "open-vm-tools";
     rev    = "stable-${version}";
-    sha256 = "0idh8dqwb1df2di689090k9x1iap35jk3wg8yb1g70byichmscqb";
+    sha256 = "1wyiz8j5b22ajrr1fh9cn55lsgd5g13q0i8wvk2a0yw0vaw1883s";
   };
 
   sourceRoot = "${src.name}/open-vm-tools";
@@ -23,8 +23,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ fuse glib icu libdnet libmspack openssl pam procps xercesc ]
       ++ lib.optionals withX [ gdk-pixbuf-xlib gtk3 gtkmm3 libX11 libXext libXinerama libXi libXrender libXrandr libXtst ];
 
-  patches = [ 
-    ./recognize_nixos.patch 
+  patches = [
+    ./recognize_nixos.patch
     ./find_gdk_pixbuf_xlib.patch #See https://github.com/vmware/open-vm-tools/pull/438
   ];
 
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
      sed -i 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,' Makefile.am
      sed -i 's,^confdir = ,confdir = ''${prefix},' scripts/Makefile.am
+     sed -i 's,usr/bin,''${prefix}/usr/bin,' scripts/Makefile.am
      sed -i 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,' services/vmtoolsd/Makefile.am
      sed -i 's,$(PAM_PREFIX),''${prefix}/$(PAM_PREFIX),' services/vmtoolsd/Makefile.am
      sed -i 's,$(UDEVRULESDIR),''${prefix}/$(UDEVRULESDIR),' udev/Makefile.am
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index 6d277562065..871592c88c2 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -16,17 +16,19 @@
 
 buildGoModule rec {
   pname = "podman";
-  version = "2.0.1";
+  version = "2.0.6";
 
   src = fetchFromGitHub {
     owner = "containers";
-    repo = "libpod";
+    repo = "podman";
     rev = "v${version}";
-    sha256 = "11avj4q3xh7qbcbs8h4jis0bdfkvvh193sflwiz8hcp41qjvinz4";
+    sha256 = "1kl8cfsqwfbjl14mbp58wrxfm90y2w58x6138zq0sn4jzwwpy1a4";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   outputs = [ "out" "man" ];
 
   nativeBuildInputs = [ pkg-config go-md2man installShellFiles ];
@@ -58,7 +60,7 @@ buildGoModule rec {
     MANDIR=$man/share/man make install.man-nobuild
   '';
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) podman; };
 
   meta = with stdenv.lib; {
     homepage = "https://podman.io/";
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix
index c5dcc2fafc6..535f8371153 100644
--- a/pkgs/applications/virtualization/qemu/default.nix
+++ b/pkgs/applications/virtualization/qemu/default.nix
@@ -18,6 +18,7 @@
 , openGLSupport ? sdlSupport, mesa, epoxy, libdrm
 , virglSupport ? openGLSupport, virglrenderer
 , smbdSupport ? false, samba
+, tpmSupport ? true
 , hostCpuOnly ? false
 , hostCpuTargets ? (if hostCpuOnly
                     then (stdenv.lib.optional stdenv.isx86_64 "i386-softmmu"
@@ -35,7 +36,7 @@ let
 in
 
 stdenv.mkDerivation rec {
-  version = "5.0.0";
+  version = "5.1.0";
   pname = "qemu"
     + stdenv.lib.optionalString xenSupport "-xen"
     + stdenv.lib.optionalString hostCpuOnly "-host-cpu-only"
@@ -43,7 +44,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url= "https://download.qemu.org/qemu-${version}.tar.xz";
-    sha256 = "1dlcwyshdp94fwd30pddxf9bn2q8dfw5jsvry2gvdj551wmaj4rg";
+    sha256 = "1rd41wwlvp0vpialjp2czs6i3lsc338xc72l3zkbb7ixjfslw5y9";
   };
 
   nativeBuildInputs = [ python python.pkgs.sphinx pkgconfig flex bison ]
@@ -127,21 +128,25 @@ stdenv.mkDerivation rec {
     ++ optional cephSupport "--enable-rbd"
     ++ optional openGLSupport "--enable-opengl"
     ++ optional virglSupport "--enable-virglrenderer"
+    ++ optional tpmSupport "--enable-tpm"
     ++ optional smbdSupport "--smbd=${samba}/bin/smbd";
 
   doCheck = false; # tries to access /dev
   dontWrapGApps = true;
 
   postFixup = ''
-      # copy qemu-ga (guest agent) to separate output
-      mkdir -p $ga/bin
-      cp $out/bin/qemu-ga $ga/bin/
-    '' + optionalString gtkSupport ''
-      # wrap GTK Binaries
-      for f in $out/bin/qemu-system-*; do
-        wrapGApp $f
-      done
-    '';
+    # the .desktop is both invalid and pointless
+    rm $out/share/applications/qemu.desktop
+
+    # copy qemu-ga (guest agent) to separate output
+    mkdir -p $ga/bin
+    cp $out/bin/qemu-ga $ga/bin/
+  '' + optionalString gtkSupport ''
+    # wrap GTK Binaries
+    for f in $out/bin/qemu-system-*; do
+      wrapGApp $f
+    done
+  '';
 
   # Add a ‘qemu-kvm’ wrapper for compatibility/convenience.
   postInstall = ''
diff --git a/pkgs/applications/virtualization/qemu/utils.nix b/pkgs/applications/virtualization/qemu/utils.nix
index 436716e0a8c..90783039a1a 100644
--- a/pkgs/applications/virtualization/qemu/utils.nix
+++ b/pkgs/applications/virtualization/qemu/utils.nix
@@ -1,9 +1,10 @@
-{ stdenv, qemu }:
+{ stdenv, installShellFiles, qemu }:
 
 stdenv.mkDerivation rec {
   name = "qemu-utils-${version}";
   version = qemu.version;
 
+  nativeBuildInputs = [ installShellFiles ];
   buildInputs = [ qemu ];
   unpackPhase = "true";
 
@@ -12,6 +13,9 @@ stdenv.mkDerivation rec {
     cp "${qemu}/bin/qemu-img" "$out/bin/qemu-img"
     cp "${qemu}/bin/qemu-io"  "$out/bin/qemu-io"
     cp "${qemu}/bin/qemu-nbd" "$out/bin/qemu-nbd"
+
+    installManPage ${qemu}/share/man/man1/qemu-img.1.gz
+    installManPage ${qemu}/share/man/man8/qemu-nbd.8.gz
   '';
 
   inherit (qemu) meta;
diff --git a/pkgs/applications/virtualization/railcar/default.nix b/pkgs/applications/virtualization/railcar/default.nix
index fda95b41ab5..1a238bb475d 100644
--- a/pkgs/applications/virtualization/railcar/default.nix
+++ b/pkgs/applications/virtualization/railcar/default.nix
@@ -22,6 +22,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/oracle/railcar";
     license = with licenses; [ asl20 /* or */ upl ];
     maintainers = [ maintainers.spacekookie ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/virtualization/runc/default.nix b/pkgs/applications/virtualization/runc/default.nix
index 58c3ef4f61b..fd3d914af66 100644
--- a/pkgs/applications/virtualization/runc/default.nix
+++ b/pkgs/applications/virtualization/runc/default.nix
@@ -14,13 +14,13 @@
 
 buildGoPackage rec {
   pname = "runc";
-  version = "1.0.0-rc90";
+  version = "1.0.0-rc92";
 
   src = fetchFromGitHub {
     owner = "opencontainers";
     repo = "runc";
     rev = "v${version}";
-    sha256 = "0pi3rvj585997m4z9ljkxz2z9yxf9p2jr0pmqbqrc7bc95f5hagk";
+    sha256 = "0r4zbxbs03xr639r7848282j1ybhibfdhnxyap9p76j5w8ixms94";
   };
 
   goPackagePath = "github.com/opencontainers/runc";
@@ -30,7 +30,6 @@ buildGoPackage rec {
 
   buildInputs = [ libselinux libseccomp libapparmor apparmor-parser ];
 
-  # these will be the default in the next release
   makeFlags = [ "BUILDTAGS+=seccomp" "BUILDTAGS+=apparmor" "BUILDTAGS+=selinux" ];
 
   buildPhase = ''
@@ -46,7 +45,7 @@ buildGoPackage rec {
     installManPage man/*/*.[1-9]
   '';
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) cri-o podman; };
 
   meta = with lib; {
     homepage = "https://github.com/opencontainers/runc";
diff --git a/pkgs/applications/virtualization/singularity/default.nix b/pkgs/applications/virtualization/singularity/default.nix
index f6a1a3bc6a9..bfa0e0e5446 100644
--- a/pkgs/applications/virtualization/singularity/default.nix
+++ b/pkgs/applications/virtualization/singularity/default.nix
@@ -1,13 +1,16 @@
 {stdenv
 , removeReferencesTo
 , lib
-, fetchFromGitHub
+, fetchurl
 , utillinux
+, gpgme
 , openssl
+, libuuid
 , coreutils
 , go
 , which
 , makeWrapper
+, cryptsetup
 , squashfsTools
 , buildGoPackage}:
 
@@ -15,24 +18,22 @@ with lib;
 
 buildGoPackage rec {
   pname = "singularity";
-  version = "3.2.1";
+  version = "3.6.2";
 
-  src = fetchFromGitHub {
-    owner = "sylabs";
-    repo = "singularity";
-    rev = "v${version}";
-    sha256 = "14lhxwy21s7q081x7kbnvkjsbxgsg2f181qlzmlxcn6n7gfav3kj";
+  src = fetchurl {
+    url = "https://github.com/hpcng/singularity/releases/download/v${version}/singularity-${version}.tar.gz";
+    sha256 = "16sd08bfa2b1qgpnd3q6k7glw0w1wyrqyf47fz2220yafrryrmyz";
   };
 
   goPackagePath = "github.com/sylabs/singularity";
   goDeps = ./deps.nix;
 
-  buildInputs = [ openssl utillinux ];
-  nativeBuildInputs = [ removeReferencesTo which makeWrapper ];
+  buildInputs = [ gpgme openssl libuuid ];
+  nativeBuildInputs = [ removeReferencesTo utillinux which makeWrapper cryptsetup ];
   propagatedBuildInputs = [ coreutils squashfsTools ];
 
-  prePatch = ''
-    substituteInPlace internal/pkg/build/copy/copy.go \
+  postPatch = ''
+    substituteInPlace internal/pkg/build/files/copy.go \
       --replace /bin/cp ${coreutils}/bin/cp
   '';
 
@@ -46,24 +47,24 @@ buildGoPackage rec {
 
     # Don't install SUID binaries
     sed -i 's/-m 4755/-m 755/g' builddir/Makefile
-
   '';
 
   buildPhase = ''
+    runHook preBuild
     make -C builddir
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     make -C builddir install LOCALSTATEDIR=$out/var
     chmod 755 $out/libexec/singularity/bin/starter-suid
-    wrapProgram $out/bin/singularity --prefix PATH : ${stdenv.lib.makeBinPath propagatedBuildInputs}
-  '';
 
-  postFixup = ''
-    find $out/libexec/ -type f -executable -exec remove-references-to -t ${go} '{}' + || true
+    # Explicitly configure paths in the config file
+    sed -i 's|^# mksquashfs path =.*$|mksquashfs path = ${stdenv.lib.makeBinPath [squashfsTools]}/mksquashfs|' $out/etc/singularity/singularity.conf
+    sed -i 's|^# cryptsetup path =.*$|cryptsetup path = ${stdenv.lib.makeBinPath [cryptsetup]}/cryptsetup|' $out/etc/singularity/singularity.conf
 
-    # These etc scripts shouldn't have their paths patched
-    cp etc/actions/* $out/etc/singularity/actions/
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/virtualization/tini/default.nix b/pkgs/applications/virtualization/tini/default.nix
index db3fb1c96eb..e3b1ccd4ce2 100644
--- a/pkgs/applications/virtualization/tini/default.nix
+++ b/pkgs/applications/virtualization/tini/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = "-DPR_SET_CHILD_SUBREAPER=36 -DPR_GET_CHILD_SUBREAPER=37";
 
-  buildInputs = [ cmake glibc glibc.static ];
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ glibc glibc.static ];
 
   meta = with stdenv.lib; {
     description = "A tiny but valid init for containers";
diff --git a/pkgs/applications/virtualization/umoci/default.nix b/pkgs/applications/virtualization/umoci/default.nix
index 0b9668b701a..bef40bef87b 100644
--- a/pkgs/applications/virtualization/umoci/default.nix
+++ b/pkgs/applications/virtualization/umoci/default.nix
@@ -18,6 +18,8 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
   nativeBuildInputs = [ go-md2man installShellFiles ];
diff --git a/pkgs/applications/virtualization/virt-manager/qt.nix b/pkgs/applications/virtualization/virt-manager/qt.nix
index 85bc7c428ff..7112a8b33e8 100644
--- a/pkgs/applications/virtualization/virt-manager/qt.nix
+++ b/pkgs/applications/virtualization/virt-manager/qt.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "virt-manager-qt";
-  version = "0.70.91";
+  version = "0.71.95";
 
   src = fetchFromGitHub {
     owner  = "F1ash";
     repo   = "qt-virt-manager";
     rev    = version;
-    sha256 = "1z2kq88lljvr24z1kizvg3h7ckf545h4kjhhrjggkr0w4wjjwr43";
+    sha256 = "1s8753bzsjyixpv1c2l9d1xjcn8i47k45qj7pr50prc64ldf5f47";
   };
 
   cmakeFlags = [
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 7b7929d9f1d..7fb4f8b59d1 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -14,7 +14,6 @@
 , enableHardening ? false
 , headless ? false
 , enable32bitGuests ? true
-, patchelfUnstable # needed until 0.10 is released
 }:
 
 with stdenv.lib;
@@ -24,7 +23,7 @@ let
   buildType = "release";
   # Use maintainers/scripts/update.nix to update the version and all related hashes or
   # change the hashes in extpack.nix and guest-additions/default.nix as well manually.
-  version = "6.1.6";
+  version = "6.1.10";
 
   iasl' = iasl.overrideAttrs (old: rec {
     inherit (old) pname;
@@ -41,12 +40,12 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
-    sha256 = "b031c30d770f28c5f884071ad933e8c1f83e65b93aaba03a4012077c1d90a54f";
+    sha256 = "37d8b30c0be82a50c858f3fc70cde967882239b6212bb32e138d3615b423c477";
   };
 
   outputs = [ "out" "modsrc" ];
 
-  nativeBuildInputs = [ pkgconfig which docbook_xsl docbook_xml_dtd_43 patchelfUnstable ]
+  nativeBuildInputs = [ pkgconfig which docbook_xsl docbook_xml_dtd_43 ]
     ++ optional (!headless) wrapQtAppsHook;
 
   # Wrap manually because we wrap just a small number of executables.
diff --git a/pkgs/applications/virtualization/virtualbox/extpack.nix b/pkgs/applications/virtualization/virtualbox/extpack.nix
index c9918b1cedf..90eed1ff72e 100644
--- a/pkgs/applications/virtualization/virtualbox/extpack.nix
+++ b/pkgs/applications/virtualization/virtualbox/extpack.nix
@@ -12,7 +12,7 @@ fetchurl rec {
     # Manually sha256sum the extensionPack file, must be hex!
     # Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`.
     # Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS
-    let value = "80b96b4b51a502141f6a8981f1493ade08a00762622c39e48319e5b122119bf3";
+    let value = "03067f27f4da07c5d0fdafc56d27e3ea23a60682b333b2a1010fb74ef9a40c28";
     in assert (builtins.stringLength value) == 64; value;
 
   meta = {
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index 4275bc0542e..4482e9a0535 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -19,6 +19,7 @@ let
   dlopenLibs = [
     { name = "libdbus-1.so"; pkg = dbus; }
     { name = "libXfixes.so"; pkg = xorg.libXfixes; }
+    { name = "libXrandr.so"; pkg = xorg.libXrandr; }
   ];
 
 in stdenv.mkDerivation rec {
@@ -26,7 +27,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
-    sha256 = "bcde4691dea7de93b65a10a43dda2b8f52e570f820992ad281c9bb5c8dede181";
+    sha256 = "62a0c6715bee164817a6f58858dec1d60f01fd0ae00a377a75bbf885ddbd0a61";
   };
 
   KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
diff --git a/pkgs/applications/window-managers/bspwm/default.nix b/pkgs/applications/window-managers/bspwm/default.nix
index 52f52281043..7c7bdbe22a7 100644
--- a/pkgs/applications/window-managers/bspwm/default.nix
+++ b/pkgs/applications/window-managers/bspwm/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bspwm";
-  version = "0.9.9";
+  version = "0.9.10";
 
   src = fetchFromGitHub {
     owner  = "baskerville";
     repo   = "bspwm";
     rev    = version;
-    sha256 = "1i7crmljk1vra1r6alxvj6lqqailjjcv0llyg7a0gm23rbv4a42g";
+    sha256 = "0qlv7b4c2mmjfd65y100d11x8iqyg5f6lfiws3cgmpjidhdygnxc";
   };
 
   buildInputs = [ libxcb libXinerama xcbutil xcbutilkeysyms xcbutilwm ];
diff --git a/pkgs/applications/window-managers/cage/default.nix b/pkgs/applications/window-managers/cage/default.nix
index 0d9e3335f2c..372ad1e27fc 100644
--- a/pkgs/applications/window-managers/cage/default.nix
+++ b/pkgs/applications/window-managers/cage/default.nix
@@ -1,45 +1,45 @@
-{ stdenv, fetchFromGitHub, fetchpatch
-, meson, ninja, pkgconfig, makeWrapper
-, wlroots, wayland, wayland-protocols, pixman, libxkbcommon
+{ stdenv, fetchFromGitHub
+, meson, ninja, pkg-config, wayland, scdoc, makeWrapper
+, wlroots, wayland-protocols, pixman, libxkbcommon
 , systemd, libGL, libX11
 , xwayland ? null
+, nixosTests
 }:
 
 stdenv.mkDerivation rec {
-  pname = "cage-unstable";
-  version = "2020-01-18";
-  # The last stable release (0.1.1) would require at least the following 3 patches:
-  # - https://github.com/Hjdskes/cage/commit/33bb3c818c5971777b6f09d8821e7f078d38d262.patch
-  # - https://github.com/Hjdskes/cage/commit/51e6c760da51e2b885737d61a61cdc965bb9269d.patch
-  # - https://github.com/Hjdskes/cage/commit/84216ca2a417b237ad61c11e2f3ebbcb91681ece.patch
-  # Which need to be adapted due to other changes. At this point it seems
-  # better to use the current master version until the next stable release.
+  pname = "cage";
+  version = "0.1.2.1";
 
   src = fetchFromGitHub {
     owner = "Hjdskes";
     repo = "cage";
-    rev = "cc1f975c442ebd691b70196d76aa120ead717810";
-    sha256 = "1gkqx26pvlw00b3fgx6sh87yyjfzyj51jwxvbf9k117npkrf4b2g";
+    rev = "v${version}";
+    sha256 = "1i4rm3dpmk7gkl6hfs6a7vwz76ba7yqcdp63nlrdbnq81m9cy2am";
   };
 
-  nativeBuildInputs = [ meson ninja pkgconfig makeWrapper wayland ];
+  postPatch = ''
+    substituteInPlace meson.build --replace \
+      "0.1.2" "${version}"
+  '';
+
+  nativeBuildInputs = [ meson ninja pkg-config wayland scdoc makeWrapper ];
 
   buildInputs = [
     wlroots wayland wayland-protocols pixman libxkbcommon
-    # TODO: Not specified but required:
     systemd libGL libX11
   ];
 
-  enableParallelBuilding = true;
-
   mesonFlags = [ "-Dxwayland=${stdenv.lib.boolToString (xwayland != null)}" ];
 
   postFixup = stdenv.lib.optionalString (xwayland != null) ''
     wrapProgram $out/bin/cage --prefix PATH : "${xwayland}/bin"
   '';
 
+  # Tests Cage using the NixOS module by launching xterm:
+  passthru.tests.basic-nixos-module-functionality = nixosTests.cage;
+
   meta = with stdenv.lib; {
-    description = "A Wayland kiosk";
+    description = "A Wayland kiosk that runs a single, maximized application";
     homepage    = "https://www.hjdskes.nl/projects/cage/";
     license     = licenses.mit;
     platforms   = platforms.linux;
diff --git a/pkgs/applications/window-managers/cwm/default.nix b/pkgs/applications/window-managers/cwm/default.nix
index 27aacd78e9f..18baefdbf3e 100644
--- a/pkgs/applications/window-managers/cwm/default.nix
+++ b/pkgs/applications/window-managers/cwm/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "A lightweight and efficient window manager for X11";
     homepage    = "https://github.com/leahneukirchen/cwm";
-    maintainers = with maintainers; [ maintainers."0x4A6F" mkf ];
+    maintainers = with maintainers; [ _0x4A6F mkf ];
     license     = licenses.isc;
     platforms   = platforms.linux;
   };
diff --git a/pkgs/applications/window-managers/dwm/dwm-status.nix b/pkgs/applications/window-managers/dwm/dwm-status.nix
index 176c2a0ddff..c7c72b4d402 100644
--- a/pkgs/applications/window-managers/dwm/dwm-status.nix
+++ b/pkgs/applications/window-managers/dwm/dwm-status.nix
@@ -9,19 +9,19 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "dwm-status";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "Gerschtli";
     repo = "dwm-status";
     rev = version;
-    sha256 = "1a3dpawxgi8d2a6w5jzvzm5q13rvqd656ris8mz77gj6f8qp7ddl";
+    sha256 = "172qkzbi37j6wx81pyqqffi9wxbg3bf8nis7d15ncn1yfd5r4gqh";
   };
 
   nativeBuildInputs = [ makeWrapper pkgconfig ];
   buildInputs = [ dbus gdk-pixbuf libnotify xorg.libX11 ];
 
-  cargoSha256 = "12b6fdhj13axhwf854n071dpiycg73g4kvl7igk1qn7l3gqwsfqn";
+  cargoSha256 = "041sd9zm1c3v6iihnwjcya2xg5yxb2y4biyxpjlfblz2srxa15dm";
 
   postInstall = lib.optionalString (bins != [])  ''
     wrapProgram $out/bin/dwm-status --prefix "PATH" : "${stdenv.lib.makeBinPath bins}"
diff --git a/pkgs/applications/window-managers/hikari/default.nix b/pkgs/applications/window-managers/hikari/default.nix
index 274c75a3c13..9bf68adaef4 100644
--- a/pkgs/applications/window-managers/hikari/default.nix
+++ b/pkgs/applications/window-managers/hikari/default.nix
@@ -12,7 +12,7 @@
 
 let
   pname = "hikari";
-  version = "2.0.2";
+  version = "2.1.2";
 in
 
 stdenv.mkDerivation {
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
 
   src = fetchzip {
     url = "https://hikari.acmelabs.space/releases/${pname}-${version}.tar.gz";
-    sha256 = "1a3i01936pw11hrmjmrhzzwpndl1jqjgx376m5m724wd1j9awm68";
+    sha256 = "1qzbwc8dgsvp5jb4faapcrg9npsl11gq8jvhbbk2h7hj52c5lgmv";
   };
 
   nativeBuildInputs = [ pkgconfig bmake ];
diff --git a/pkgs/applications/window-managers/i3/default.nix b/pkgs/applications/window-managers/i3/default.nix
index 3888e10f258..b37a83648ae 100644
--- a/pkgs/applications/window-managers/i3/default.nix
+++ b/pkgs/applications/window-managers/i3/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "i3";
-  version = "4.18.1";
+  version = "4.18.2";
 
   src = fetchurl {
     url = "https://i3wm.org/downloads/${pname}-${version}.tar.bz2";
-    sha256 = "0z709cianlzw0x0qwq4361347354xd9ckj1v7vjvhb1zh3x91gws";
+    sha256 = "030jym6b8b07yf4y6pb806hg8k77zsprv569gy0r72rh5zb1g1mj";
   };
 
   nativeBuildInputs = [ which pkgconfig makeWrapper installShellFiles ];
diff --git a/pkgs/applications/window-managers/i3/gaps.nix b/pkgs/applications/window-managers/i3/gaps.nix
index 7be037ca833..fa1c97c14c1 100644
--- a/pkgs/applications/window-managers/i3/gaps.nix
+++ b/pkgs/applications/window-managers/i3/gaps.nix
@@ -3,11 +3,11 @@
 i3.overrideAttrs (oldAttrs : rec {
 
   name = "i3-gaps-${version}";
-  version = "4.18.1";
+  version = "4.18.2";
 
   src = fetchurl {
     url = "https://github.com/Airblader/i3/releases/download/${version}/i3-${version}.tar.bz2";
-    sha256 = "1cxwsrdzp18r5hj0ymg9fbzp1mhkj4m9h6i0b9cdg79cjbacba9k";
+    sha256 = "0lz08wf4b0yprzqsmymn94kiyg885dcwmh0p64v2rnf52s165g2g";
   };
 
   nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ autoreconfHook ];
diff --git a/pkgs/applications/window-managers/i3/i3ipc-glib.nix b/pkgs/applications/window-managers/i3/i3ipc-glib.nix
index 7e6a18c93c5..af353589a7e 100644
--- a/pkgs/applications/window-managers/i3/i3ipc-glib.nix
+++ b/pkgs/applications/window-managers/i3/i3ipc-glib.nix
@@ -6,13 +6,13 @@
 stdenv.mkDerivation rec {
 
   pname = "i3ipc-glib";
-  version = "0.6.0";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "acrisci";
     repo = "i3ipc-glib";
     rev = "v${version}";
-    sha256 = "1gmk1zjafrn6jh4j7r0wkwrpwvf9drl1lcw8vya23i1f4zbk0wh4";
+    sha256 = "01fzvrbnzcwx0vxw29igfpza9zwzp2s7msmzb92v01z0rz0y5m0p";
   };
 
   nativeBuildInputs = [ autoreconfHook which pkgconfig ];
diff --git a/pkgs/applications/window-managers/i3/lock-color.nix b/pkgs/applications/window-managers/i3/lock-color.nix
index c5e203ab1a5..a64e5ea3369 100644
--- a/pkgs/applications/window-managers/i3/lock-color.nix
+++ b/pkgs/applications/window-managers/i3/lock-color.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.12.c.4";
+  version = "2.12.c.5";
   pname = "i3lock-color";
 
   src = fetchFromGitHub {
     owner = "PandorasFox";
     repo = "i3lock-color";
     rev = version;
-    sha256 = "1jbk7kd49vgmakbldwwnbsp484fwh1pbzg8k8qvbq4dzbzf3q5hs";
+    sha256 = "10h50a6p9ivqjz8hd5pn9l03vz6y9dxdx68bprqssfzdkzqnzaiv";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix b/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix
new file mode 100644
index 00000000000..f6e24d979a4
--- /dev/null
+++ b/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, xorg, i3lock }:
+
+stdenv.mkDerivation rec {
+  pname = "i3lock-fancy-rapid";
+  version = "2019-10-09";
+  src = fetchFromGitHub {
+    owner = "yvbbrjdr";
+    repo = "i3lock-fancy-rapid";
+    rev = "c67f09bc8a48798c7c820d7d4749240b10865ce0";
+    sha256 = "0jhvlj6v6wx70239pgkjxd42z1s2bzfg886ra6n1rzsdclf4rkc6";
+  };
+
+  buildInputs = [ xorg.libX11 ];
+  propagatedBuildInputs = [ i3lock ];
+
+  postPatch = ''
+    substituteInPlace i3lock-fancy-rapid.c \
+      --replace '"i3lock"' '"${i3lock}/bin/i3lock"'
+  '';
+
+  installPhase = ''
+    install -D i3lock-fancy-rapid $out/bin/i3lock-fancy-rapid
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A faster implementation of i3lock-fancy";
+    homepage = "https://github.com/yvbbrjdr/i3lock-fancy-rapid";
+    maintainers = with maintainers; [ nickhu ];
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/window-managers/icewm/default.nix b/pkgs/applications/window-managers/icewm/default.nix
index bacfb9674f6..57f4a764c90 100644
--- a/pkgs/applications/window-managers/icewm/default.nix
+++ b/pkgs/applications/window-managers/icewm/default.nix
@@ -9,13 +9,13 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "icewm";
-  version = "1.6.6";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner  = "bbidulock";
     repo   = "icewm";
     rev    = version;
-    sha256 = "05jg2gs5cdxn2kfm2y6yrqxpza5s1zsgb52168psmzhb4nakpv42";
+    sha256 = "0x6axhwfwxxgnljf3201hvrwa90yacf3ln24lsywrk1bxq9am74b";
   };
 
   nativeBuildInputs = [ cmake pkgconfig perl asciidoc ];
diff --git a/pkgs/applications/window-managers/leftwm/default.nix b/pkgs/applications/window-managers/leftwm/default.nix
index ade3904b95c..06ebd7e0e92 100644
--- a/pkgs/applications/window-managers/leftwm/default.nix
+++ b/pkgs/applications/window-managers/leftwm/default.nix
@@ -6,16 +6,16 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "leftwm";
-  version = "0.2.2";
+  version = "0.2.4";
 
   src = fetchFromGitHub {
     owner = "leftwm";
     repo = "leftwm";
     rev = version;
-    sha256 = "0x8cqc7zay19jxy7cshayjjwwjrcblqpmqrxipm2g5hhyjghk6q0";
+    sha256 = "0xmkhkdpz1bpczrar9y6assdzhd7qxybnkjqs36h099fk9xqmsav";
   };
 
-  cargoSha256 = "1kphv3vnr8ij7raf0niwz3rwly986xi5fgwqg2ya0r46ifqkgvrc";
+  cargoSha256 = "06wnx81fhs19pz5qnir6h2v2kmj73y1g354nadcx6650q9pnhdv4";
 
   buildInputs = [ makeWrapper libX11 libXinerama ];
 
diff --git a/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch b/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch
index 219d6dcbe20..ed22ed99b07 100644
--- a/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch
+++ b/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch
@@ -1,30 +1,31 @@
+diff --git a/libqtile/backend/x11/xcursors.py b/libqtile/backend/x11/xcursors.py
+index 24454b83..ef37875c 100644
+--- a/libqtile/backend/x11/xcursors.py
++++ b/libqtile/backend/x11/xcursors.py
+@@ -107,7 +107,7 @@ class Cursors(dict):
+ 
+     def _setup_xcursor_binding(self):
+         try:
+-            xcursor = ffi.dlopen('libxcb-cursor.so.0')
++            xcursor = ffi.dlopen('@xcb-cursor@/lib/libxcb-cursor.so.0')
+         except OSError:
+             logger.warning("xcb-cursor not found, fallback to font pointer")
+             return False
 diff --git a/libqtile/pangocffi.py b/libqtile/pangocffi.py
-index 1e8f5c04..e860d43a 100644
+index dbae27ed..54c2c35f 100644
 --- a/libqtile/pangocffi.py
 +++ b/libqtile/pangocffi.py
-@@ -58,9 +58,9 @@ except ImportError:
-     else:
-         raise ImportError("No module named libqtile._ffi_pango, be sure to run `python ./libqtile/ffi_build.py`")
+@@ -52,10 +52,9 @@ try:
+ except ImportError:
+     raise ImportError("No module named libqtile._ffi_pango, be sure to run `./scripts/ffibuild`")
  
 -gobject = ffi.dlopen('libgobject-2.0.so.0')
 -pango = ffi.dlopen('libpango-1.0.so.0')
 -pangocairo = ffi.dlopen('libpangocairo-1.0.so.0')
+-
 +gobject = ffi.dlopen('@glib@/lib/libgobject-2.0.so.0')
 +pango = ffi.dlopen('@pango@/lib/libpango-1.0.so.0')
 +pangocairo = ffi.dlopen('@pango@/lib/libpangocairo-1.0.so.0')
  
- 
- def CairoContext(cairo_t):
-diff --git a/libqtile/xcursors.py b/libqtile/xcursors.py
-index f1133555..3e61204a 100644
---- a/libqtile/xcursors.py
-+++ b/libqtile/xcursors.py
-@@ -112,7 +112,7 @@ class Cursors(dict):
- 
-     def _setup_xcursor_binding(self):
-         try:
--            xcursor = ffi.dlopen('libxcb-cursor.so.0')
-+            xcursor = ffi.dlopen('@xcb-cursor@/lib/libxcb-cursor.so.0')
-         except OSError:
-             logger.warning("xcb-cursor not found, fallback to font pointer")
-             return False
+ def patch_cairo_context(cairo_t):
+     def create_layout():
diff --git a/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch b/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch
index a01f14062f1..1eaa5b84174 100644
--- a/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch
+++ b/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch
@@ -1,5 +1,5 @@
 diff --git a/bin/qshell b/bin/qshell
-index 2ba7e61c..0ac2a2ef 100755
+index 5c652b7a..2d169eb2 100755
 --- a/bin/qshell
 +++ b/bin/qshell
 @@ -28,5 +28,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
@@ -10,7 +10,7 @@ index 2ba7e61c..0ac2a2ef 100755
      from libqtile.scripts import qshell
      qshell.main()
 diff --git a/bin/qtile b/bin/qtile
-index 3e82814d..335b5cea 100755
+index ebc8fab5..08a965ef 100755
 --- a/bin/qtile
 +++ b/bin/qtile
 @@ -29,5 +29,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
@@ -20,8 +20,19 @@ index 3e82814d..335b5cea 100755
 +    __import__("importlib").import_module("libqtile.utils").restore_os_environment()
      from libqtile.scripts import qtile
      qtile.main()
+diff --git a/bin/qtile-cmd b/bin/qtile-cmd
+index a2136ee6..3d37a6d9 100755
+--- a/bin/qtile-cmd
++++ b/bin/qtile-cmd
+@@ -8,5 +8,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
+ sys.path.insert(0, base_dir)
+ 
+ if __name__ == '__main__':
++    __import__("importlib").import_module("libqtile.utils").restore_os_environment()
+     from libqtile.scripts import qtile_cmd
+     qtile_cmd.main()
 diff --git a/bin/qtile-run b/bin/qtile-run
-index e4b121be..1c203bc9 100755
+index ac4cb1fd..74c589cb 100755
 --- a/bin/qtile-run
 +++ b/bin/qtile-run
 @@ -8,5 +8,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
@@ -32,7 +43,7 @@ index e4b121be..1c203bc9 100755
      from libqtile.scripts import qtile_run
      qtile_run.main()
 diff --git a/bin/qtile-top b/bin/qtile-top
-index 5316e0e7..272c6430 100755
+index a6251f27..0d524b1d 100755
 --- a/bin/qtile-top
 +++ b/bin/qtile-top
 @@ -8,5 +8,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
@@ -43,14 +54,13 @@ index 5316e0e7..272c6430 100755
      from libqtile.scripts import qtile_top
      qtile_top.main()
 diff --git a/libqtile/utils.py b/libqtile/utils.py
-index 550ed02677e..1358a66f3df 100644
+index 2628c898..05117be7 100644
 --- a/libqtile/utils.py
 +++ b/libqtile/utils.py
-@@ -272,3 +272,11 @@ def safe_import(module_names, class_name, globals_, fallback=None):
-         logger.debug("%s", traceback.format_exc())
-         if fallback:
-             globals_[class_name] = fallback(module_path, class_name, error)
-+
+@@ -270,3 +270,10 @@ def guess_terminal():
+         return terminal
+ 
+     logger.error('Default terminal has not been found.')
 +
 +def restore_os_environment():
 +    pythonpath = os.environ.pop("QTILE_SAVED_PYTHONPATH", "")
@@ -58,3 +68,4 @@ index 550ed02677e..1358a66f3df 100644
 +    path = os.environ.pop("QTILE_SAVED_PATH", None)
 +    if path:
 +        os.environ["PATH"] = path
+
diff --git a/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch b/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch
index 87fd1977379..c04d8a83c1a 100644
--- a/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch
+++ b/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch
@@ -1,8 +1,8 @@
-diff --git a/libqtile/manager.py b/libqtile/manager.py
-index fc198e9bae7..860b97d8db1 100644
---- a/libqtile/manager.py
-+++ b/libqtile/manager.py
-@@ -1402,7 +1402,7 @@ class Qtile(command.CommandObject):
+diff --git a/libqtile/core/manager.py b/libqtile/core/manager.py
+index c22eeb6a..2ffe4eab 100644
+--- a/libqtile/core/manager.py
++++ b/libqtile/core/manager.py
+@@ -278,7 +278,7 @@ class Qtile(CommandObject):
              logger.error("Unable to pickle qtile state")
          argv = [s for s in argv if not s.startswith('--with-state')]
          argv.append('--with-state=' + buf.getvalue().decode())
@@ -10,4 +10,4 @@ index fc198e9bae7..860b97d8db1 100644
 +        self._restart = (os.environ.get("QTILE_WRAPPER", "@out@/bin/qtile"), argv[1:])
          self.stop()
  
-     def cmd_spawn(self, cmd):
+     async def finalize(self):
diff --git a/pkgs/applications/window-managers/qtile/default.nix b/pkgs/applications/window-managers/qtile/default.nix
index eb56e9c1639..eccf5c163a8 100644
--- a/pkgs/applications/window-managers/qtile/default.nix
+++ b/pkgs/applications/window-managers/qtile/default.nix
@@ -7,13 +7,13 @@ in
 
 python37Packages.buildPythonApplication rec {
   name = "qtile-${version}";
-  version = "0.13.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "qtile";
     repo = "qtile";
     rev = "v${version}";
-    sha256 = "1lyclnn8hs6wl4w9v5b4hh2q0pvmsn7cyibpskhbpw0cgv7bvi90";
+    sha256 = "1klv1k9847nyx71sfrhqyl1k51k2w8phqnp2bns4dvbqii7q125l";
   };
 
   patches = [
@@ -23,16 +23,18 @@ python37Packages.buildPythonApplication rec {
   ];
 
   postPatch = ''
-    substituteInPlace libqtile/manager.py --subst-var-by out $out
+    substituteInPlace libqtile/core/manager.py --subst-var-by out $out
     substituteInPlace libqtile/pangocffi.py --subst-var-by glib ${glib.out}
     substituteInPlace libqtile/pangocffi.py --subst-var-by pango ${pango.out}
-    substituteInPlace libqtile/xcursors.py --subst-var-by xcb-cursor ${xcbutilcursor.out}
+    substituteInPlace libqtile/backend/x11/xcursors.py --subst-var-by xcb-cursor ${xcbutilcursor.out}
   '';
 
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ glib libxcb cairo pango python37Packages.xcffib ];
 
-  pythonPath = with python37Packages; [ xcffib cairocffi-xcffib setuptools ];
+  pythonPath = with python37Packages; [ xcffib cairocffi-xcffib setuptools setuptools_scm ]; 
 
   postInstall = ''
     wrapProgram $out/bin/qtile \
@@ -41,7 +43,7 @@ python37Packages.buildPythonApplication rec {
       --run 'export QTILE_SAVED_PATH=$PATH'
   '';
 
-  doCheck = false; # Requires X server.
+  doCheck = false; # Requires X server #TODO this can be worked out with the existing NixOS testing infrastructure.
 
   meta = with stdenv.lib; {
     homepage = "http://www.qtile.org/";
diff --git a/pkgs/applications/window-managers/spectrwm/default.nix b/pkgs/applications/window-managers/spectrwm/default.nix
index b38cb990617..c3ab5589486 100644
--- a/pkgs/applications/window-managers/spectrwm/default.nix
+++ b/pkgs/applications/window-managers/spectrwm/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "spectrwm";
-  version = "3.3.0";
+  version = "3.4.1";
 
   src = fetchFromGitHub {
     owner = "conformal";
     repo = "spectrwm";
-    rev = "SPECTRWM_3_3_0";
-    sha256 = "139mswlr0z5dbp5migm98qqg84syq0py1qladp3226xy6q3bnn08";
+    rev = "SPECTRWM_3_4_1";
+    sha256 = "0bf0d25yr0craksamczn2mdy6cjp27l88smihlw9bw4p6a2qhi41";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/window-managers/sway/contrib.nix b/pkgs/applications/window-managers/sway/contrib.nix
index e2c27fb470f..fd44f4a5be5 100644
--- a/pkgs/applications/window-managers/sway/contrib.nix
+++ b/pkgs/applications/window-managers/sway/contrib.nix
@@ -18,23 +18,11 @@
 
 grimshot = stdenv.mkDerivation rec {
   pname = "grimshot";
-  version = "2020-05-08";
-  rev = "b1d08db5f5112ab562f89564825e3e791b0682c4";
-
-  # master has new fixes and features, and a man page
-  # after sway-1.5 these may be switched to sway-unwrapped.src
-  bsrc = fetchurl {
-    url = "https://raw.githubusercontent.com/swaywm/sway/${rev}/contrib/grimshot";
-    sha256 = "1awzmzkib8a7q5s78xyh8za03lplqfpbasqp3lidqqmjqs882jq9";
-  };
+  version = sway-unwrapped.version;
 
-  msrc = fetchurl {
-    url = "https://raw.githubusercontent.com/swaywm/sway/${rev}/contrib/grimshot.1";
-    sha256 = "191xxjfhf61gkxl3b0f694h0nrwd7vfnyp5afk8snhhr6q7ia4jz";
-  };
+  src = sway-unwrapped.src;
 
   dontBuild = true;
-  dontUnpack = true;
   dontConfigure = true;
 
   outputs = [ "out" "man" ];
@@ -42,9 +30,9 @@ grimshot = stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
   installPhase = ''
-    installManPage ${msrc}
+    installManPage contrib/grimshot.1
 
-    install -Dm 0755 ${bsrc} $out/bin/grimshot
+    install -Dm 0755 contrib/grimshot $out/bin/grimshot
     wrapProgram $out/bin/grimshot --set PATH \
       "${stdenv.lib.makeBinPath [
         sway-unwrapped
diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix
index 66681ef0850..da58d844ee8 100644
--- a/pkgs/applications/window-managers/sway/default.nix
+++ b/pkgs/applications/window-managers/sway/default.nix
@@ -1,20 +1,19 @@
 { stdenv, fetchFromGitHub, makeWrapper
-, meson, ninja
-, pkgconfig, scdoc
-, wayland, libxkbcommon, pcre, json_c, dbus, libevdev
+, meson, ninja, pkg-config, wayland, scdoc
+, libxkbcommon, pcre, json_c, dbus, libevdev
 , pango, cairo, libinput, libcap, pam, gdk-pixbuf, librsvg
 , wlroots, wayland-protocols
 }:
 
 stdenv.mkDerivation rec {
   pname = "sway-unwrapped";
-  version = "1.4";
+  version = "1.5";
 
   src = fetchFromGitHub {
     owner = "swaywm";
     repo = "sway";
     rev = version;
-    sha256 = "11qf89y3q92g696a6f4d23qb44gqixg6qxq740vwv2jw59ms34ja";
+    sha256 = "0r3b7h778l9i20z3him9i2qsaynpn9y78hzfgv3cqi8fyry2c4f9";
   };
 
   patches = [
@@ -22,8 +21,12 @@ stdenv.mkDerivation rec {
     ./load-configuration-from-etc.patch
   ];
 
+  postPatch = ''
+    substituteInPlace meson.build --replace "v1.5" "1.5"
+  '';
+
   nativeBuildInputs = [
-    pkgconfig meson ninja scdoc
+    meson ninja pkg-config wayland scdoc
   ];
 
   buildInputs = [
@@ -32,16 +35,23 @@ stdenv.mkDerivation rec {
     wlroots wayland-protocols
   ];
 
-  enableParallelBuilding = true;
-
   mesonFlags = [
-    "-Ddefault-wallpaper=false" "-Dxwayland=enabled" "-Dgdk-pixbuf=enabled"
-    "-Dtray=enabled" "-Dman-pages=enabled"
+    "-Ddefault-wallpaper=false"
   ];
 
   meta = with stdenv.lib; {
-    description = "i3-compatible tiling Wayland compositor";
+    description = "An i3-compatible tiling Wayland compositor";
+    longDescription = ''
+      Sway is a tiling Wayland compositor and a drop-in replacement for the i3
+      window manager for X11. It works with your existing i3 configuration and
+      supports most of i3's features, plus a few extras.
+      Sway allows you to arrange your application windows logically, rather
+      than spatially. Windows are arranged into a grid by default which
+      maximizes the efficiency of your screen and can be quickly manipulated
+      using only the keyboard.
+    '';
     homepage    = "https://swaywm.org";
+    changelog   = "https://github.com/swaywm/sway/releases/tag/${version}";
     license     = licenses.mit;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ primeos synthetica ma27 ];
diff --git a/pkgs/applications/window-managers/sway/lock-effects.nix b/pkgs/applications/window-managers/sway/lock-effects.nix
index e07080497f4..a6c8d5cd1c3 100644
--- a/pkgs/applications/window-managers/sway/lock-effects.nix
+++ b/pkgs/applications/window-managers/sway/lock-effects.nix
@@ -6,14 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "swaylock-effects";
-  version = "v1.6-0";
+  version = "v1.6-1";
 
   src = fetchFromGitHub {
     owner = "mortie";
     repo = "swaylock-effects";
     rev = version;
-    sha256 = "15lshqq3qj9m3yfac65hjcciaf9zdfh3ir7hgh0ach7gpi3rbk13";
-
+    sha256 = "044fc4makjx8v29fkx5xlil6vr1v4r0k6c8741pl67gzvlm4cx3i";
   };
 
   postPatch = ''
@@ -30,7 +29,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Screen locker for Wayland";
     longDescription = ''
-      swaylock-effects is a screen locking utility for Wayland compositors.
+      Swaylock, with fancy effects
     '';
     inherit (src.meta) homepage;
     license = licenses.mit;
diff --git a/pkgs/applications/window-managers/sxhkd/default.nix b/pkgs/applications/window-managers/sxhkd/default.nix
index 2404129b165..ac28abc31d3 100644
--- a/pkgs/applications/window-managers/sxhkd/default.nix
+++ b/pkgs/applications/window-managers/sxhkd/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sxhkd";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "baskerville";
     repo = "sxhkd";
     rev = version;
-    sha256 = "0j7bl2l06r0arrjzpz7al9j6cwzc730knbsijp7ixzz96pq7xa2h";
+    sha256 = "1winwzdy9yxvxnrv8gqpigl9y0c2px27mnms62bdilp4x6llrs9r";
   };
 
   buildInputs = [ asciidoc libxcb xcbutil xcbutilkeysyms xcbutilwm ];
diff --git a/pkgs/applications/window-managers/weston/default.nix b/pkgs/applications/window-managers/weston/default.nix
index 4a09cac9344..a1f3b3708a4 100644
--- a/pkgs/applications/window-managers/weston/default.nix
+++ b/pkgs/applications/window-managers/weston/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig
-, wayland, libGL, mesa, libxkbcommon, cairo, libxcb
+{ stdenv, fetchurl, meson, ninja, pkg-config, wayland
+, libGL, mesa, libxkbcommon, cairo, libxcb
 , libXcursor, xlibsWrapper, udev, libdrm, mtdev, libjpeg, pam, dbus, libinput, libevdev
 , colord, lcms2, pipewire ? null
 , pango ? null, libunwind ? null, freerdp ? null, vaapi ? null, libva ? null
@@ -10,14 +10,14 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "weston";
-  version = "8.0.0";
+  version = "9.0.0";
 
   src = fetchurl {
     url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "0j3q0af3595g4wcicldgy749zm2g2b6bswa6ya8k075a5sdv863m";
+    sha256 = "1zlql0xgiqc3pvgbpnnvj4xvpd91pwva8qf83xfb23if377ddxaw";
   };
 
-  nativeBuildInputs = [ meson ninja pkgconfig ];
+  nativeBuildInputs = [ meson ninja pkg-config wayland ];
   buildInputs = [
     wayland libGL mesa libxkbcommon cairo libxcb libXcursor xlibsWrapper udev libdrm
     mtdev libjpeg pam dbus libinput libevdev pango libunwind freerdp vaapi libva
@@ -45,9 +45,19 @@ stdenv.mkDerivation rec {
   passthru.providedSessions = [ "weston" ];
 
   meta = {
-    description = "Reference implementation of a Wayland compositor";
-    homepage = "https://wayland.freedesktop.org/";
-    license = licenses.mit;
+    description = "A lightweight and functional Wayland compositor";
+    longDescription = ''
+      Weston is the reference implementation of a Wayland compositor, as well
+      as a useful environment in and of itself.
+      Out of the box, Weston provides a very basic desktop, or a full-featured
+      environment for non-desktop uses such as automotive, embedded, in-flight,
+      industrial, kiosks, set-top boxes and TVs. It also provides a library
+      allowing other projects to build their own full-featured environments on
+      top of Weston's core. A small suite of example or demo clients are also
+      provided.
+    '';
+    homepage = "https://gitlab.freedesktop.org/wayland/weston";
+    license = licenses.mit; # Expat version
     platforms = platforms.linux;
     maintainers = with maintainers; [ primeos ];
   };
diff --git a/pkgs/applications/window-managers/windowchef/default.nix b/pkgs/applications/window-managers/windowchef/default.nix
new file mode 100644
index 00000000000..08a30b6085c
--- /dev/null
+++ b/pkgs/applications/window-managers/windowchef/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, libxcb, libXrandr
+, xcbutil, xcbutilkeysyms, xcbutilwm, xcbproto
+}:
+
+stdenv.mkDerivation rec {
+  pname = "windowchef";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner  = "tudurom";
+    repo   = "windowchef";
+    rev    = "v${version}";
+    sha256 = "02fvb8fxnkpzb0vpbsl6rf7ssdrvw6mlm43qvl2sxq7zb88zdw96";
+  };
+
+  buildInputs = [ libxcb libXrandr xcbutil xcbutilkeysyms xcbutilwm xcbproto];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    description = "A stacking window manager that cooks windows with orders from the Waitron";
+    homepage = "https://github.com/tudurom/windowchef";
+    maintainers = with maintainers; [ bhougland ];
+    license = licenses.isc;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/build-support/alternatives/blas/default.nix b/pkgs/build-support/alternatives/blas/default.nix
index bdee6688a74..5ebbc737e11 100644
--- a/pkgs/build-support/alternatives/blas/default.nix
+++ b/pkgs/build-support/alternatives/blas/default.nix
@@ -70,9 +70,9 @@ stdenv.mkDerivation {
     exit 1
   fi
 
-  nm -an "$libblas" | cut -f3 -d' ' > symbols
+  $NM -an "$libblas" | cut -f3 -d' ' > symbols
   for symbol in ${toString blasFortranSymbols}; do
-    grep "^$symbol_$" symbols || { echo "$symbol" was not found in "$libblas"; exit 1; }
+    grep -q "^$symbol_$" symbols || { echo "$symbol" was not found in "$libblas"; exit 1; }
   done
 
   cp -L "$libblas" $out/lib/libblas${canonicalExtension}
diff --git a/pkgs/build-support/appimage/default.nix b/pkgs/build-support/appimage/default.nix
index 58c5988ea4f..e6014e35aef 100644
--- a/pkgs/build-support/appimage/default.nix
+++ b/pkgs/build-support/appimage/default.nix
@@ -84,6 +84,7 @@ rec {
 
       gst_all_1.gstreamer
       gst_all_1.gst-plugins-ugly
+      gst_all_1.gst-plugins-base
       libdrm
       xorg.xkeyboardconfig
       xorg.libpciaccess
@@ -162,8 +163,6 @@ rec {
       SDL_mixer
       SDL2_ttf
       SDL2_mixer
-      gstreamer
-      gst-plugins-base
       libappindicator-gtk2
       libcaca
       libcanberra
diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix
index 9e31ca6a8a2..786f0f9c598 100644
--- a/pkgs/build-support/bintools-wrapper/default.nix
+++ b/pkgs/build-support/bintools-wrapper/default.nix
@@ -132,15 +132,15 @@ stdenv.mkDerivation {
       ldPath="${bintools_bin}/bin"
     ''
 
+    # Solaris needs an additional ld wrapper.
     + optionalString (targetPlatform.isSunOS && nativePrefix != "") ''
-      # Solaris needs an additional ld wrapper.
       ldPath="${nativePrefix}/bin"
       exec="$ldPath/${targetPrefix}ld"
       wrap ld-solaris ${./ld-solaris-wrapper.sh}
     '')
 
+    # Create a symlink to as (the assembler).
     + ''
-      # Create a symlink to as (the assembler).
       if [ -e $ldPath/${targetPrefix}as ]; then
         ln -s $ldPath/${targetPrefix}as $out/bin/${targetPrefix}as
       fi
@@ -200,26 +200,29 @@ stdenv.mkDerivation {
   ];
 
   postFixup =
+    ##
+    ## General libc support
+    ##
     optionalString (libc != null) (''
-      ##
-      ## General libc support
-      ##
-
-      echo "-L${libc_lib}${libc.libdir or "/lib"}" > $out/nix-support/libc-ldflags
+      touch "$out/nix-support/libc-ldflags"
+      echo "-L${libc_lib}${libc.libdir or "/lib"}" >> $out/nix-support/libc-ldflags
 
       echo "${libc_lib}" > $out/nix-support/orig-libc
       echo "${libc_dev}" > $out/nix-support/orig-libc-dev
+    ''
 
-      ##
-      ## Dynamic linker support
-      ##
-
+    ##
+    ## Dynamic linker support
+    ##
+    + ''
       if [[ -z ''${dynamicLinker+x} ]]; then
         echo "Don't know the name of the dynamic linker for platform '${targetPlatform.config}', so guessing instead." >&2
         local dynamicLinker="${libc_lib}/lib/ld*.so.?"
       fi
+    ''
 
-      # Expand globs to fill array of options
+    # Expand globs to fill array of options
+    + ''
       dynamicLinker=($dynamicLinker)
 
       case ''${#dynamicLinker[@]} in
@@ -228,58 +231,56 @@ stdenv.mkDerivation {
         *) echo "Multiple dynamic linkers found for platform '${targetPlatform.config}'." >&2;;
       esac
 
-      if [ -n "''${dynamicLinker:-}" ]; then
+      if [ -n "''${dynamicLinker-}" ]; then
         echo $dynamicLinker > $out/nix-support/dynamic-linker
 
     '' + (if targetPlatform.isDarwin then ''
         printf "export LD_DYLD_PATH=%q\n" "$dynamicLinker" >> $out/nix-support/setup-hook
-    '' else ''
+      '' else ''
         if [ -e ${libc_lib}/lib/32/ld-linux.so.2 ]; then
           echo ${libc_lib}/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32
         fi
-
-        local ldflagsBefore=(-dynamic-linker "$dynamicLinker")
-    '') + ''
-      fi
-
+      ''
       # The dynamic linker is passed in `ldflagsBefore' to allow
       # explicit overrides of the dynamic linker by callers to ld
       # (the *last* value counts, so ours should come first).
-      printWords "''${ldflagsBefore[@]}" > $out/nix-support/libc-ldflags-before
+      + ''
+        echo -dynamic-linker "$dynamicLinker" >> $out/nix-support/libc-ldflags-before
+    '') + ''
+      fi
     '')
 
+    # Ensure consistent LC_VERSION_MIN_MACOSX and remove LC_UUID.
     + optionalString stdenv.targetPlatform.isMacOS ''
-      # Ensure consistent LC_VERSION_MIN_MACOSX and remove LC_UUID.
       echo "-macosx_version_min 10.12 -sdk_version 10.12 -no_uuid" >> $out/nix-support/libc-ldflags-before
     ''
 
-    + optionalString (!nativeTools) ''
-      ##
-      ## User env support
-      ##
+    ##
+    ## User env support
+    ##
 
-      # Propagate the underling unwrapped bintools so that if you
-      # install the wrapper, you get tools like objdump (same for any
-      # binaries of libc).
+    # Propagate the underling unwrapped bintools so that if you
+    # install the wrapper, you get tools like objdump (same for any
+    # binaries of libc).
+    + optionalString (!nativeTools) ''
       printWords ${bintools_bin} ${if libc == null then "" else libc_bin} > $out/nix-support/propagated-user-env-packages
     ''
 
+    ##
+    ## Man page and info support
+    ##
     + optionalString propagateDoc (''
-      ##
-      ## Man page and info support
-      ##
-
       ln -s ${bintools.man} $man
     '' + optionalString (bintools ? info) ''
       ln -s ${bintools.info} $info
     '')
 
-    + ''
-      ##
-      ## Hardening support
-      ##
+    ##
+    ## Hardening support
+    ##
 
-      # some linkers on some platforms don't support specific -z flags
+    # some linkers on some platforms don't support specific -z flags
+    + ''
       export hardening_unsupported_flags=""
       if [[ "$($ldPath/${targetPrefix}ld -z now 2>&1 || true)" =~ un(recognized|known)\ option ]]; then
         hardening_unsupported_flags+=" bindnow"
@@ -304,15 +305,18 @@ stdenv.mkDerivation {
     ''
 
     + ''
+      for flags in "$out/nix-support"/*flags*; do
+        substituteInPlace "$flags" --replace $'\n' ' '
+      done
+
       substituteAll ${./add-flags.sh} $out/nix-support/add-flags.sh
       substituteAll ${./add-hardening.sh} $out/nix-support/add-hardening.sh
       substituteAll ${../wrapper-common/utils.bash} $out/nix-support/utils.bash
-
-      ##
-      ## Extra custom steps
-      ##
     ''
 
+    ##
+    ## Extra custom steps
+    ##
     + extraBuildCommands;
 
   inherit dynamicLinker expand-response-params;
diff --git a/pkgs/build-support/build-bazel-package/default.nix b/pkgs/build-support/build-bazel-package/default.nix
index 31c0c8e92e5..4d22a329e41 100644
--- a/pkgs/build-support/build-bazel-package/default.nix
+++ b/pkgs/build-support/build-bazel-package/default.nix
@@ -30,6 +30,19 @@ args@{
 , removeRulesCC ? true
 , removeLocalConfigCc ? true
 , removeLocal ? true
+
+# Use build --nobuild instead of fetch. This allows fetching the dependencies
+# required for the build as configured, rather than fetching all the dependencies
+# which may not work in some situations (e.g. Java code which ends up relying on
+# Debian-specific /usr/share/java paths, but doesn't in the configured build).
+, fetchConfigured ? false
+
+# Don’t add Bazel --copt and --linkopt from NIX_CFLAGS_COMPILE /
+# NIX_LDFLAGS. This is necessary when using a custom toolchain which
+# Bazel wants all headers / libraries to come from, like when using
+# CROSSTOOL. Weirdly, we can still get the flags through the wrapped
+# compiler.
+, dontAddBazelOpts ? false
 , ...
 }:
 
@@ -79,7 +92,7 @@ in stdenv.mkDerivation (fBuildAttrs // {
       bazel \
         --output_base="$bazelOut" \
         --output_user_root="$bazelUserRoot" \
-        fetch \
+        ${if fetchConfigured then "build --nobuild" else "fetch"} \
         --loading_phase_threads=1 \
         $bazelFlags \
         $bazelFetchFlags \
@@ -112,7 +125,8 @@ in stdenv.mkDerivation (fBuildAttrs // {
       # platforms -> NIX_BUILD_TOP/tmp/install/35282f5123611afa742331368e9ae529/_embedded_binaries/platforms
       find $bazelOut/external -maxdepth 1 -type l | while read symlink; do
         name="$(basename "$symlink")"
-        rm "$symlink" "$bazelOut/external/@$name.marker"
+        rm "$symlink"
+        test -f "$bazelOut/external/@$name.marker" && rm "$bazelOut/external/@$name.marker"
       done
 
       # Patching symlinks to remove build directory reference
@@ -162,6 +176,8 @@ in stdenv.mkDerivation (fBuildAttrs // {
     done
   '' + fBuildAttrs.preConfigure or "";
 
+  inherit dontAddBazelOpts;
+
   buildPhase = fBuildAttrs.buildPhase or ''
     runHook preBuild
 
@@ -173,20 +189,22 @@ in stdenv.mkDerivation (fBuildAttrs // {
     #
     copts=()
     host_copts=()
-    for flag in $NIX_CFLAGS_COMPILE; do
-      copts+=( "--copt=$flag" )
-      host_copts+=( "--host_copt=$flag" )
-    done
-    for flag in $NIX_CXXSTDLIB_COMPILE; do
-      copts+=( "--copt=$flag" )
-      host_copts+=( "--host_copt=$flag" )
-    done
     linkopts=()
     host_linkopts=()
-    for flag in $NIX_LDFLAGS; do
-      linkopts+=( "--linkopt=-Wl,$flag" )
-      host_linkopts+=( "--host_linkopt=-Wl,$flag" )
-    done
+    if [ -z "''${dontAddBazelOpts:-}" ]; then
+      for flag in $NIX_CFLAGS_COMPILE; do
+        copts+=( "--copt=$flag" )
+        host_copts+=( "--host_copt=$flag" )
+      done
+      for flag in $NIX_CXXSTDLIB_COMPILE; do
+        copts+=( "--copt=$flag" )
+        host_copts+=( "--host_copt=$flag" )
+      done
+      for flag in $NIX_LDFLAGS; do
+        linkopts+=( "--linkopt=-Wl,$flag" )
+        host_linkopts+=( "--host_linkopt=-Wl,$flag" )
+      done
+    fi
 
     BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \
     USER=homeless-shelter \
diff --git a/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix b/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
new file mode 100644
index 00000000000..c7cfd27d3fa
--- /dev/null
+++ b/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
@@ -0,0 +1,123 @@
+{ callPackage, runCommandLocal, writeShellScriptBin, stdenv, coreutils, bubblewrap }:
+
+let buildFHSEnv = callPackage ./env.nix { }; in
+
+args @ {
+  name,
+  runScript ? "bash",
+  extraInstallCommands ? "",
+  meta ? {},
+  passthru ? {},
+  ...
+}:
+
+with builtins;
+let
+  env = buildFHSEnv (removeAttrs args [
+    "runScript" "extraInstallCommands" "meta" "passthru"
+  ]);
+
+  chrootenv = callPackage ./chrootenv {};
+
+  etcBindFlags = let
+    files = [
+      # NixOS Compatibility
+      "static"
+      # Users, Groups, NSS
+      "passwd"
+      "group"
+      "shadow"
+      "hosts"
+      "resolv.conf"
+      "nsswitch.conf"
+      # Sudo & Su
+      "login.defs"
+      "sudoers"
+      "sudoers.d"
+      # Time
+      "localtime"
+      "zoneinfo"
+      # Other Core Stuff
+      "machine-id"
+      "os-release"
+      # PAM
+      "pam.d"
+      # Fonts
+      "fonts"
+      # ALSA
+      "asound.conf"
+      # SSL
+      "ssl/certs"
+      "pki"
+    ];
+  in concatStringsSep " \\\n  "
+  (map (file: "--ro-bind-try /etc/${file} /etc/${file}") files);
+
+  init = run: writeShellScriptBin "${name}-init" ''
+    source /etc/profile
+    exec ${run} "$@"
+  '';
+
+  bwrapCmd = { initArgs ? "" }: ''
+    blacklist="/nix /dev /proc /etc"
+    ro_mounts=""
+    for i in ${env}/*; do
+      path="/''${i##*/}"
+      if [[ $path == '/etc' ]]; then
+        continue
+      fi
+      ro_mounts="$ro_mounts --ro-bind $i $path"
+      blacklist="$blacklist $path"
+    done
+
+    if [[ -d ${env}/etc ]]; then
+      for i in ${env}/etc/*; do
+        path="/''${i##*/}"
+        ro_mounts="$ro_mounts --ro-bind $i /etc$path"
+      done
+    fi
+
+    auto_mounts=""
+    # loop through all directories in the root
+    for dir in /*; do
+      # if it is a directory and it is not in the blacklist
+      if [[ -d "$dir" ]] && grep -v "$dir" <<< "$blacklist" >/dev/null; then
+        # add it to the mount list
+        auto_mounts="$auto_mounts --bind $dir $dir"
+      fi
+    done
+
+    exec ${bubblewrap}/bin/bwrap \
+      --dev-bind /dev /dev \
+      --proc /proc \
+      --chdir "$(pwd)" \
+      --unshare-all \
+      --share-net \
+      --die-with-parent \
+      --ro-bind /nix /nix \
+      ${etcBindFlags} \
+      $ro_mounts \
+      $auto_mounts \
+      ${init runScript}/bin/${name}-init ${initArgs}
+  '';
+
+  bin = writeShellScriptBin name (bwrapCmd { initArgs = ''"$@"''; });
+
+in runCommandLocal name {
+  inherit meta;
+
+  passthru = passthru // {
+    env = runCommandLocal "${name}-shell-env" {
+      shellHook = bwrapCmd {};
+    } ''
+      echo >&2 ""
+      echo >&2 "*** User chroot 'env' attributes are intended for interactive nix-shell sessions, not for building! ***"
+      echo >&2 ""
+      exit 1
+    '';
+  };
+} ''
+  mkdir -p $out/bin
+  ln -s ${bin}/bin/${name} $out/bin/${name}
+  ${extraInstallCommands}
+''
diff --git a/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix b/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
new file mode 100644
index 00000000000..8b2d46c4ae9
--- /dev/null
+++ b/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
@@ -0,0 +1,167 @@
+{ stdenv, buildEnv, writeText, pkgs, pkgsi686Linux }:
+
+{ name, profile ? ""
+, targetPkgs ? pkgs: [], multiPkgs ? pkgs: []
+, extraBuildCommands ? "", extraBuildCommandsMulti ? ""
+, extraOutputsToInstall ? []
+}:
+
+# HOWTO:
+# All packages (most likely programs) returned from targetPkgs will only be
+# installed once--matching the host's architecture (64bit on x86_64 and 32bit on
+# x86).
+#
+# Packages (most likely libraries) returned from multiPkgs are installed
+# once on x86 systems and twice on x86_64 systems.
+# On x86 they are merged with packages from targetPkgs.
+# On x86_64 they are added to targetPkgs and in addition their 32bit
+# versions are also installed. The final directory structure looks as
+# follows:
+# /lib32 will include 32bit libraries from multiPkgs
+# /lib64 will include 64bit libraries from multiPkgs and targetPkgs
+# /lib will link to /lib32
+
+let
+  is64Bit = stdenv.hostPlatform.parsed.cpu.bits == 64;
+  isMultiBuild  = multiPkgs != null && is64Bit;
+  isTargetBuild = !isMultiBuild;
+
+  # list of packages (usually programs) which are only be installed for the
+  # host's architecture
+  targetPaths = targetPkgs pkgs ++ (if multiPkgs == null then [] else multiPkgs pkgs);
+
+  # list of packages which are installed for both x86 and x86_64 on x86_64
+  # systems
+  multiPaths = multiPkgs pkgsi686Linux;
+
+  # base packages of the chroot
+  # these match the host's architecture, glibc_multi is used for multilib
+  # builds. glibcLocales must be before glibc or glibc_multi as otherwiese
+  # the wrong LOCALE_ARCHIVE will be used where only C.UTF-8 is available.
+  basePkgs = with pkgs;
+    [ glibcLocales
+      (if isMultiBuild then glibc_multi else glibc)
+      (toString gcc.cc.lib) bashInteractive coreutils less shadow su
+      gawk diffutils findutils gnused gnugrep
+      gnutar gzip bzip2 xz
+    ];
+  baseMultiPkgs = with pkgsi686Linux;
+    [ (toString gcc.cc.lib)
+    ];
+
+  etcProfile = writeText "profile" ''
+    export PS1='${name}-chrootenv:\u@\h:\w\$ '
+    export LOCALE_ARCHIVE='/usr/lib/locale/locale-archive'
+    export LD_LIBRARY_PATH="/run/opengl-driver/lib:/run/opengl-driver-32/lib:/usr/lib:/usr/lib32''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
+    export PATH="/run/wrappers/bin:/usr/bin:/usr/sbin:$PATH"
+    export TZDIR='/etc/zoneinfo'
+
+    # Force compilers and other tools to look in default search paths
+    unset NIX_ENFORCE_PURITY
+    export NIX_CC_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt}=1
+    export NIX_CFLAGS_COMPILE='-idirafter /usr/include'
+    export NIX_CFLAGS_LINK='-L/usr/lib -L/usr/lib32'
+    export NIX_LDFLAGS='-L/usr/lib -L/usr/lib32'
+    export PKG_CONFIG_PATH=/usr/lib/pkgconfig
+    export ACLOCAL_PATH=/usr/share/aclocal
+
+    ${profile}
+  '';
+
+  # Compose /etc for the chroot environment
+  etcPkg = stdenv.mkDerivation {
+    name         = "${name}-chrootenv-etc";
+    buildCommand = ''
+      mkdir -p $out/etc
+      cd $out/etc
+
+      # environment variables
+      ln -s ${etcProfile} profile
+
+      # symlink /etc/mtab -> /proc/mounts (compat for old userspace progs)
+      ln -s /proc/mounts mtab
+    '';
+  };
+
+  # Composes a /usr-like directory structure
+  staticUsrProfileTarget = buildEnv {
+    name = "${name}-usr-target";
+    paths = [ etcPkg ] ++ basePkgs ++ targetPaths;
+    extraOutputsToInstall = [ "out" "lib" "bin" ] ++ extraOutputsToInstall;
+    ignoreCollisions = true;
+  };
+
+  staticUsrProfileMulti = buildEnv {
+    name = "${name}-usr-multi";
+    paths = baseMultiPkgs ++ multiPaths;
+    extraOutputsToInstall = [ "out" "lib" ] ++ extraOutputsToInstall;
+    ignoreCollisions = true;
+  };
+
+  # setup library paths only for the targeted architecture
+  setupLibDirsTarget = ''
+    # link content of targetPaths
+    cp -rsHf ${staticUsrProfileTarget}/lib lib
+    ln -s lib lib${if is64Bit then "64" else "32"}
+  '';
+
+  # setup /lib, /lib32 and /lib64
+  setupLibDirsMulti = ''
+    mkdir -m0755 lib32
+    mkdir -m0755 lib64
+    ln -s lib64 lib
+
+    # copy glibc stuff
+    cp -rsHf ${staticUsrProfileTarget}/lib/32/* lib32/ && chmod u+w -R lib32/
+
+    # copy content of multiPaths (32bit libs)
+    [ -d ${staticUsrProfileMulti}/lib ] && cp -rsHf ${staticUsrProfileMulti}/lib/* lib32/ && chmod u+w -R lib32/
+
+    # copy content of targetPaths (64bit libs)
+    cp -rsHf ${staticUsrProfileTarget}/lib/* lib64/ && chmod u+w -R lib64/
+
+    # symlink 32-bit ld-linux.so
+    ln -Ls ${staticUsrProfileTarget}/lib/32/ld-linux.so.2 lib/
+  '';
+
+  setupLibDirs = if isTargetBuild then setupLibDirsTarget
+                                  else setupLibDirsMulti;
+
+  # the target profile is the actual profile that will be used for the chroot
+  setupTargetProfile = ''
+    mkdir -m0755 usr
+    cd usr
+    ${setupLibDirs}
+    for i in bin sbin share include; do
+      if [ -d "${staticUsrProfileTarget}/$i" ]; then
+        cp -rsHf "${staticUsrProfileTarget}/$i" "$i"
+      fi
+    done
+    cd ..
+
+    for i in var etc; do
+      if [ -d "${staticUsrProfileTarget}/$i" ]; then
+        cp -rsHf "${staticUsrProfileTarget}/$i" "$i"
+      fi
+    done
+    for i in usr/{bin,sbin,lib,lib32,lib64}; do
+      if [ -d "$i" ]; then
+        ln -s "$i"
+      fi
+    done
+  '';
+
+in stdenv.mkDerivation {
+  name         = "${name}-fhs";
+  buildCommand = ''
+    mkdir -p $out
+    cd $out
+    ${setupTargetProfile}
+    cd $out
+    ${extraBuildCommands}
+    cd $out
+    ${if isMultiBuild then extraBuildCommandsMulti else ""}
+  '';
+  preferLocalBuild = true;
+  allowSubstitutes = false;
+}
diff --git a/pkgs/build-support/cc-wrapper/add-flags.sh b/pkgs/build-support/cc-wrapper/add-flags.sh
index 3398f11e8c2..94589131b70 100644
--- a/pkgs/build-support/cc-wrapper/add-flags.sh
+++ b/pkgs/build-support/cc-wrapper/add-flags.sh
@@ -33,10 +33,22 @@ NIX_CFLAGS_COMPILE_@suffixSalt@="-B@out@/bin/ $NIX_CFLAGS_COMPILE_@suffixSalt@"
 # Export and assign separately in order that a failing $(..) will fail
 # the script.
 
-if [ -e @out@/nix-support/libc-cflags ]; then
+if [[ "$cInclude" = 1 ]] && [ -e @out@/nix-support/libc-cflags ]; then
     NIX_CFLAGS_COMPILE_@suffixSalt@="$(< @out@/nix-support/libc-cflags) $NIX_CFLAGS_COMPILE_@suffixSalt@"
 fi
 
+if [ -e @out@/nix-support/libc-crt1-cflags ]; then
+    NIX_CFLAGS_COMPILE_@suffixSalt@="$(< @out@/nix-support/libc-crt1-cflags) $NIX_CFLAGS_COMPILE_@suffixSalt@"
+fi
+
+if [ -e @out@/nix-support/libcxx-cxxflags ]; then
+    NIX_CXXSTDLIB_COMPILE_@suffixSalt@+=" $(< @out@/nix-support/libcxx-cxxflags)"
+fi
+
+if [ -e @out@/nix-support/libcxx-ldflags ]; then
+    NIX_CXXSTDLIB_LINK_@suffixSalt@+=" $(< @out@/nix-support/libcxx-ldflags)"
+fi
+
 if [ -e @out@/nix-support/cc-cflags ]; then
     NIX_CFLAGS_COMPILE_@suffixSalt@="$(< @out@/nix-support/cc-cflags) $NIX_CFLAGS_COMPILE_@suffixSalt@"
 fi
diff --git a/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
index cf00202221e..7e734f57773 100644
--- a/pkgs/build-support/cc-wrapper/cc-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
@@ -17,16 +17,6 @@ fi
 
 source @out@/nix-support/utils.bash
 
-# Flirting with a layer violation here.
-if [ -z "${NIX_BINTOOLS_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then
-    source @bintools@/nix-support/add-flags.sh
-fi
-
-# Put this one second so libc ldflags take priority.
-if [ -z "${NIX_CC_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then
-    source @out@/nix-support/add-flags.sh
-fi
-
 
 # Parse command line options and set several variables.
 # For instance, figure out if linker flags should be passed.
@@ -37,6 +27,7 @@ cc1=0
 # shellcheck disable=SC2193
 [[ "@prog@" = *++ ]] && isCpp=1 || isCpp=0
 cppInclude=1
+cInclude=1
 
 expandResponseParams "$@"
 declare -i n=0
@@ -63,6 +54,7 @@ while (( "$n" < "$nParams" )); do
     elif [ "$p" = -nostdlib ]; then
         isCpp=-1
     elif [ "$p" = -nostdinc ]; then
+        cInclude=0
         cppInclude=0
     elif [ "$p" = -nostdinc++ ]; then
         cppInclude=0
@@ -111,6 +103,15 @@ if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "$NIX_STORE" ]]; then
     params=(${rest+"${rest[@]}"})
 fi
 
+# Flirting with a layer violation here.
+if [ -z "${NIX_BINTOOLS_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then
+    source @bintools@/nix-support/add-flags.sh
+fi
+
+# Put this one second so libc ldflags take priority.
+if [ -z "${NIX_CC_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then
+    source @out@/nix-support/add-flags.sh
+fi
 
 # Clear march/mtune=native -- they bring impurity.
 if [ "$NIX_ENFORCE_NO_NATIVE_@suffixSalt@" = 1 ]; then
@@ -129,7 +130,7 @@ fi
 
 if [[ "$isCpp" = 1 ]]; then
     if [[ "$cppInclude" = 1 ]]; then
-        NIX_CFLAGS_COMPILE_@suffixSalt@+=" ${NIX_CXXSTDLIB_COMPILE_@suffixSalt@:-@default_cxx_stdlib_compile@}"
+        NIX_CFLAGS_COMPILE_@suffixSalt@+=" $NIX_CXXSTDLIB_COMPILE_@suffixSalt@"
     fi
     NIX_CFLAGS_LINK_@suffixSalt@+=" $NIX_CXXSTDLIB_LINK_@suffixSalt@"
 fi
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index da16a23f9df..bfb15f2f783 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -8,6 +8,7 @@
 { name ? ""
 , stdenvNoCC
 , cc ? null, libc ? null, bintools, coreutils ? null, shell ? stdenvNoCC.shell
+, gccForLibs ? null
 , zlib ? null
 , nativeTools, noLibc ? false, nativeLibc, nativePrefix ? ""
 , propagateDoc ? cc != null && cc ? man
@@ -48,12 +49,6 @@ let
   # The wrapper scripts use 'cat' and 'grep', so we may need coreutils.
   coreutils_bin = if nativeTools then "" else getBin coreutils;
 
-  default_cxx_stdlib_compile = if (targetPlatform.isLinux && !(cc.isGNU or false) && !nativeTools && cc ? gcc) && !(targetPlatform.useLLVM or false) then
-    "-isystem $(echo -n ${cc.gcc}/include/c++/*) -isystem $(echo -n ${cc.gcc}/include/c++/*)/${targetPlatform.config}"
-  else if targetPlatform.isDarwin && (libcxx != null) && (cc.isClang or false) && !(targetPlatform.useLLVM or false) then
-    "-isystem ${libcxx}/include/c++/v1"
-  else "";
-
   # The "suffix salt" is a arbitrary string added in the end of env vars
   # defined by cc-wrapper's hooks so that multiple cc-wrappers can be used
   # without interfering. For the moment, it is defined as the target triple,
@@ -68,19 +63,27 @@ let
 
   # older compilers (for example bootstrap's GCC 5) fail with -march=too-modern-cpu
   isGccArchSupported = arch:
-    if cc.isGNU or false then
-      { skylake        = versionAtLeast ccVersion "6.0";
+    if isGNU then
+      { # Intel
+        skylake        = versionAtLeast ccVersion "6.0";
         skylake-avx512 = versionAtLeast ccVersion "6.0";
         cannonlake     = versionAtLeast ccVersion "8.0";
         icelake-client = versionAtLeast ccVersion "8.0";
         icelake-server = versionAtLeast ccVersion "8.0";
         knm            = versionAtLeast ccVersion "8.0";
+        # AMD
+        znver1         = versionAtLeast ccVersion "6.0";
+        znver2         = versionAtLeast ccVersion "9.0";
       }.${arch} or true
-    else if cc.isClang or false then
-      { cannonlake     = versionAtLeast ccVersion "5.0";
+    else if isClang then
+      { # Intel
+        cannonlake     = versionAtLeast ccVersion "5.0";
         icelake-client = versionAtLeast ccVersion "7.0";
         icelake-server = versionAtLeast ccVersion "7.0";
         knm            = versionAtLeast ccVersion "7.0";
+        # AMD
+        znver1         = versionAtLeast ccVersion "4.0";
+        znver2         = versionAtLeast ccVersion "9.0";
       }.${arch} or true
     else
       false;
@@ -116,7 +119,7 @@ stdenv.mkDerivation {
     # Binutils, and Apple's "cctools"; "bintools" as an attempt to find an
     # unused middle-ground name that evokes both.
     inherit bintools;
-    inherit libc nativeTools nativeLibc nativePrefix isGNU isClang default_cxx_stdlib_compile;
+    inherit libc nativeTools nativeLibc nativePrefix isGNU isClang;
 
     emacsBufferSetup = pkgs: ''
       ; We should handle propagation here too
@@ -160,21 +163,21 @@ stdenv.mkDerivation {
       ccPath="${cc}/bin"
     '')
 
+    # Create symlinks to everything in the bintools wrapper.
     + ''
-      # Create symlinks to everything in the bintools wrapper.
       for bbin in $bintools/bin/*; do
         mkdir -p "$out/bin"
         ln -s "$bbin" "$out/bin/$(basename $bbin)"
       done
+    ''
 
-      # We export environment variables pointing to the wrapped nonstandard
-      # cmds, lest some lousy configure script use those to guess compiler
-      # version.
+    # We export environment variables pointing to the wrapped nonstandard
+    # cmds, lest some lousy configure script use those to guess compiler
+    # version.
+    + ''
       export named_cc=${targetPrefix}cc
       export named_cxx=${targetPrefix}c++
 
-      export default_cxx_stdlib_compile="${default_cxx_stdlib_compile}"
-
       if [ -e $ccPath/${targetPrefix}gcc ]; then
         wrap ${targetPrefix}gcc $wrapper $ccPath/${targetPrefix}gcc
         ln -s ${targetPrefix}gcc $out/bin/${targetPrefix}cc
@@ -214,6 +217,7 @@ stdenv.mkDerivation {
       wrap ${targetPrefix}gfortran $wrapper $ccPath/${targetPrefix}gfortran
       ln -sv ${targetPrefix}gfortran $out/bin/${targetPrefix}g77
       ln -sv ${targetPrefix}gfortran $out/bin/${targetPrefix}f77
+      export named_fc=${targetPrefix}gfortran
     ''
 
     + optionalString cc.langJava or false ''
@@ -226,22 +230,29 @@ stdenv.mkDerivation {
 
   strictDeps = true;
   propagatedBuildInputs = [ bintools ] ++ extraTools ++ optionals cc.langD or false [ zlib ];
-  depsTargetTargetPropagated = extraPackages;
+  depsTargetTargetPropagated = optional (libcxx != null) libcxx ++ extraPackages;
 
   wrapperName = "CC_WRAPPER";
 
   setupHooks = [
     ../setup-hooks/role.bash
-    ./setup-hook.sh
-  ];
+  ] ++ stdenv.lib.optional (cc.langC or true) ./setup-hook.sh
+    ++ stdenv.lib.optional (cc.langFortran or false) ./fortran-hook.sh;
 
   postFixup =
+    # Ensure flags files exists, as some other programs cat them. (That these
+    # are considered an exposed interface is a bit dubious, but fine for now.)
     ''
-      # Backwards compatability for packages expecting this file, e.g. with
-      # `$NIX_CC/nix-support/dynamic-linker`.
-      #
-      # TODO(@Ericson2314): Remove this after stable release and force
-      # everyone to refer to bintools-wrapper directly.
+      touch "$out/nix-support/cc-cflags"
+      touch "$out/nix-support/cc-ldflags"
+    ''
+
+    # Backwards compatability for packages expecting this file, e.g. with
+    # `$NIX_CC/nix-support/dynamic-linker`.
+    #
+    # TODO(@Ericson2314): Remove this after stable release and force
+    # everyone to refer to bintools-wrapper directly.
+    + ''
       if [[ -f "$bintools/nix-support/dynamic-linker" ]]; then
         ln -s "$bintools/nix-support/dynamic-linker" "$out/nix-support"
       fi
@@ -250,23 +261,43 @@ stdenv.mkDerivation {
       fi
     ''
 
+    ##
+    ## General Clang support
+    ##
+    + optionalString isClang ''
+
+      echo "-target ${targetPlatform.config}" >> $out/nix-support/cc-cflags
+    ''
+
+    ##
+    ## GCC libs for non-GCC support
+    ##
+    + optionalString (isClang && libcxx == null && !(stdenv.targetPlatform.useLLVM or false) && gccForLibs != null) ''
+
+      echo "-B${gccForLibs}/lib/gcc/${targetPlatform.config}/${gccForLibs.version}" >> $out/nix-support/cc-cflags
+      echo "-L${gccForLibs}/lib/gcc/${targetPlatform.config}/${gccForLibs.version}" >> $out/nix-support/cc-ldflags
+      echo "-L${gccForLibs.lib}/${targetPlatform.config}/lib" >> $out/nix-support/cc-ldflags
+    ''
+
+    ##
+    ## General libc support
+    ##
+
+    # The "-B${libc_lib}/lib/" flag is a quick hack to force gcc to link
+    # against the crt1.o from our own glibc, rather than the one in
+    # /usr/lib.  (This is only an issue when using an `impure'
+    # compiler/linker, i.e., one that searches /usr/lib and so on.)
+    #
+    # Unfortunately, setting -B appears to override the default search
+    # path. Thus, the gcc-specific "../includes-fixed" directory is
+    # now longer searched and glibc's <limits.h> header fails to
+    # compile, because it uses "#include_next <limits.h>" to find the
+    # limits.h file in ../includes-fixed. To remedy the problem,
+    # another -idirafter is necessary to add that directory again.
     + optionalString (libc != null) (''
-      ##
-      ## General libc support
-      ##
-
-      # The "-B${libc_lib}/lib/" flag is a quick hack to force gcc to link
-      # against the crt1.o from our own glibc, rather than the one in
-      # /usr/lib.  (This is only an issue when using an `impure'
-      # compiler/linker, i.e., one that searches /usr/lib and so on.)
-      #
-      # Unfortunately, setting -B appears to override the default search
-      # path. Thus, the gcc-specific "../includes-fixed" directory is
-      # now longer searched and glibc's <limits.h> header fails to
-      # compile, because it uses "#include_next <limits.h>" to find the
-      # limits.h file in ../includes-fixed. To remedy the problem,
-      # another -idirafter is necessary to add that directory again.
-      echo "-B${libc_lib}${libc.libdir or "/lib/"}" >> $out/nix-support/libc-cflags
+      touch "$out/nix-support/libc-cflags"
+      touch "$out/nix-support/libc-ldflags"
+      echo "-B${libc_lib}${libc.libdir or "/lib/"}" >> $out/nix-support/libc-crt1-cflags
     '' + optionalString (!(cc.langD or false)) ''
       echo "-idirafter ${libc_dev}${libc.incdir or "/include"}" >> $out/nix-support/libc-cflags
     '' + optionalString (isGNU && (!(cc.langD or false))) ''
@@ -279,15 +310,40 @@ stdenv.mkDerivation {
       echo "${libc_dev}" > $out/nix-support/orig-libc-dev
     '')
 
+    ##
+    ## General libc++ support
+    ##
+
+    # We have a libc++ directly, we have one via "smuggled" GCC, or we have one
+    # bundled with the C compiler because it is GCC
+    + optionalString (libcxx != null || (isClang && !(stdenv.targetPlatform.useLLVM or false) && gccForLibs.langCC or false) || (isGNU && cc.langCC or false)) ''
+      touch "$out/nix-support/libcxx-cxxflags"
+      touch "$out/nix-support/libcxx-ldflags"
+    ''
+    + optionalString (libcxx == null && (isClang && !(stdenv.targetPlatform.useLLVM or false) && gccForLibs.langCC or false)) ''
+      for dir in ${gccForLibs}/include/c++/*; do
+        echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
+      done
+      for dir in ${gccForLibs}/include/c++/*/${targetPlatform.config}; do
+        echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
+      done
+    ''
+    + optionalString (libcxx.isLLVM or false) (''
+      echo "-isystem ${libcxx}/include/c++/v1" >> $out/nix-support/libcxx-cxxflags
+      echo "-stdlib=libc++" >> $out/nix-support/libcxx-ldflags
+    '' + stdenv.lib.optionalString stdenv.targetPlatform.isLinux ''
+      echo "-lc++abi" >> $out/nix-support/libcxx-ldflags
+    '')
+
+    ##
+    ## Initial CFLAGS
+    ##
+
+    # GCC shows ${cc_solib}/lib in `gcc -print-search-dirs', but not
+    # ${cc_solib}/lib64 (even though it does actually search there...)..
+    # This confuses libtool.  So add it to the compiler tool search
+    # path explicitly.
     + optionalString (!nativeTools) ''
-      ##
-      ## Initial CFLAGS
-      ##
-
-      # GCC shows ${cc_solib}/lib in `gcc -print-search-dirs', but not
-      # ${cc_solib}/lib64 (even though it does actually search there...)..
-      # This confuses libtool.  So add it to the compiler tool search
-      # path explicitly.
       if [ -e "${cc_solib}/lib64" -a ! -L "${cc_solib}/lib64" ]; then
         ccLDFlags+=" -L${cc_solib}/lib64"
         ccCFlags+=" -B${cc_solib}/lib64"
@@ -296,32 +352,34 @@ stdenv.mkDerivation {
       ccCFlags+=" -B${cc_solib}/lib"
 
     '' + optionalString cc.langAda or false ''
+      touch "$out/nix-support/gnat-cflags"
+      touch "$out/nix-support/gnat-ldflags"
       basePath=$(echo $cc/lib/*/*/*)
       ccCFlags+=" -B$basePath -I$basePath/adainclude"
       gnatCFlags="-I$basePath/adainclude -I$basePath/adalib"
 
-      echo "$gnatCFlags" > $out/nix-support/gnat-cflags
+      echo "$gnatCFlags" >> $out/nix-support/gnat-cflags
     '' + ''
-      echo "$ccLDFlags" > $out/nix-support/cc-ldflags
-      echo "$ccCFlags" > $out/nix-support/cc-cflags
+      echo "$ccLDFlags" >> $out/nix-support/cc-ldflags
+      echo "$ccCFlags" >> $out/nix-support/cc-cflags
     '' + optionalString (targetPlatform.isDarwin && (libcxx != null) && (cc.isClang or false)) ''
       echo " -L${libcxx}/lib" >> $out/nix-support/cc-ldflags
-    '' + optionalString propagateDoc ''
-      ##
-      ## Man page and info support
-      ##
+    ''
 
+    ##
+    ## Man page and info support
+    ##
+    + optionalString propagateDoc ''
       ln -s ${cc.man} $man
       ln -s ${cc.info} $info
     '' + optionalString (cc.langD or false) ''
       echo "-B${zlib}${zlib.libdir or "/lib/"}" >> $out/nix-support/libc-cflags
     ''
 
+    ##
+    ## Hardening support
+    ##
     + ''
-      ##
-      ## Hardening support
-      ##
-
       export hardening_unsupported_flags="${builtins.concatStringsSep " " (cc.hardeningUnsupportedFlags or [])}"
     ''
 
@@ -382,26 +440,25 @@ stdenv.mkDerivation {
 
     + optionalString (libc != null && targetPlatform.isAvr) ''
       for isa in avr5 avr3 avr4 avr6 avr25 avr31 avr35 avr51 avrxmega2 avrxmega4 avrxmega5 avrxmega6 avrxmega7 tiny-stack; do
-        echo "-B${getLib libc}/avr/lib/$isa" >> $out/nix-support/libc-cflags
+        echo "-B${getLib libc}/avr/lib/$isa" >> $out/nix-support/libc-crt1-cflags
       done
     ''
 
     # There are a few tools (to name one libstdcxx5) which do not work
     # well with multi line flags, so make the flags single line again
     + ''
-      if [ -e "$out/nix-support/libc-cflags" ]; then
-        substituteInPlace "$out/nix-support/libc-cflags" --replace $'\n' ' '
-      fi
+      for flags in "$out/nix-support"/*flags*; do
+        substituteInPlace "$flags" --replace $'\n' ' '
+      done
 
       substituteAll ${./add-flags.sh} $out/nix-support/add-flags.sh
       substituteAll ${./add-hardening.sh} $out/nix-support/add-hardening.sh
       substituteAll ${../wrapper-common/utils.bash} $out/nix-support/utils.bash
-
-      ##
-      ## Extra custom steps
-      ##
     ''
 
+    ##
+    ## Extra custom steps
+    ##
     + extraBuildCommands;
 
   inherit expand-response-params;
diff --git a/pkgs/build-support/cc-wrapper/fortran-hook.sh b/pkgs/build-support/cc-wrapper/fortran-hook.sh
new file mode 100644
index 00000000000..d72f314c01c
--- /dev/null
+++ b/pkgs/build-support/cc-wrapper/fortran-hook.sh
@@ -0,0 +1,11 @@
+getTargetRole
+getTargetRoleWrapper
+
+export FC${role_post}=@named_fc@
+
+# If unset, assume the default hardening flags.
+# These are different for fortran.
+: ${NIX_HARDENING_ENABLE="stackprotector pic strictoverflow relro bindnow"}
+export NIX_HARDENING_ENABLE
+
+unset -v role_post
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index 7ff325382a6..bf815af6f7c 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -442,6 +442,7 @@ rec {
     in
       runCommand "${name}.tar.gz" {
         inherit (stream) imageName;
+        passthru = { inherit (stream) imageTag; };
         buildInputs = [ pigz ];
       } "${stream} | pigz -nT > $out";
 
@@ -517,6 +518,11 @@ rec {
         layerClosure = writeReferencesToFile layer;
         passthru.buildArgs = args;
         passthru.layer = layer;
+        passthru.imageTag =
+          if tag != null
+            then lib.toLower tag
+            else
+              lib.head (lib.strings.splitString "-" (baseNameOf result.outPath));
         # Docker can't be made to run darwin binaries
         meta.badPlatforms = lib.platforms.darwin;
       } ''
@@ -737,6 +743,11 @@ rec {
       conf = runCommand "${name}-conf.json" {
         inherit maxLayers created;
         imageName = lib.toLower name;
+        passthru.imageTag =
+          if tag != null
+            then tag
+            else
+              lib.head (lib.strings.splitString "-" (baseNameOf conf.outPath));
         paths = referencesByPopularity overallClosure;
         buildInputs = [ jq ];
       } ''
@@ -792,6 +803,7 @@ rec {
       '';
       result = runCommand "stream-${name}" {
         inherit (conf) imageName;
+        passthru = { inherit (conf) imageTag; };
         buildInputs = [ makeWrapper ];
       } ''
         makeWrapper ${streamScript} $out --add-flags ${conf}
diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix
index b040d830b31..bc107471762 100644
--- a/pkgs/build-support/docker/examples.nix
+++ b/pkgs/build-support/docker/examples.nix
@@ -335,4 +335,87 @@ rec {
     };
   };
 
+  # 19. 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";
+    tag = "latest";
+    contents = [
+      pkgs.coreutils
+      pkgs.nix
+      (pkgs.writeScriptBin "myscript" ''
+        #!${pkgs.runtimeShell}
+        cat ${pkgs.writeText "somefile" "some data"}
+      '')
+    ];
+    config = {
+      Cmd = [ "myscript" ];
+      # For some reason 'nix-store --verify' requires this environment variable
+      Env = [ "USER=root" ];
+    };
+  };
+
+  # 20. 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";
+    tag = "latest";
+    contents = [ pkgs.coreutils ];
+    created = "now";
+  };
+
+  # buildImage without explicit tag
+  bashNoTag = pkgs.dockerTools.buildImage {
+    name = "bash-no-tag";
+    contents = pkgs.bashInteractive;
+  };
+
+  # buildLayeredImage without explicit tag
+  bashNoTagLayered = pkgs.dockerTools.buildLayeredImage {
+    name = "bash-no-tag-layered";
+    contents = pkgs.bashInteractive;
+  };
+
+  # buildImage without explicit tag
+  bashNoTagStreamLayered = pkgs.dockerTools.streamLayeredImage {
+    name = "bash-no-tag-stream-layered";
+    contents = pkgs.bashInteractive;
+  };
+
+  # buildLayeredImage with non-root user
+  bashLayeredWithUser =
+  let
+    nonRootShadowSetup = { user, uid, gid ? uid }: with pkgs; [
+      (
+      writeTextDir "etc/shadow" ''
+        root:!x:::::::
+        ${user}:!:::::::
+      ''
+      )
+      (
+      writeTextDir "etc/passwd" ''
+        root:x:0:0::/root:${runtimeShell}
+        ${user}:x:${toString uid}:${toString gid}::/home/${user}:
+      ''
+      )
+      (
+      writeTextDir "etc/group" ''
+        root:x:0:
+        ${user}:x:${toString gid}:
+      ''
+      )
+      (
+      writeTextDir "etc/gshadow" ''
+        root:x::
+        ${user}:x::
+      ''
+      )
+    ];
+  in
+    pkgs.dockerTools.buildLayeredImage {
+      name = "bash-layered-with-user";
+      tag = "latest";
+      contents = [ pkgs.bash pkgs.coreutils (nonRootShadowSetup { uid = 999; user = "somebody"; }) ];
+    };
+
 }
diff --git a/pkgs/build-support/docker/stream_layered_image.py b/pkgs/build-support/docker/stream_layered_image.py
index 4348513338d..ffb6ba0ade4 100644
--- a/pkgs/build-support/docker/stream_layered_image.py
+++ b/pkgs/build-support/docker/stream_layered_image.py
@@ -39,8 +39,9 @@ import json
 import hashlib
 import pathlib
 import tarfile
+import itertools
 import threading
-from datetime import datetime
+from datetime import datetime, timezone
 from collections import namedtuple
 
 
@@ -73,6 +74,10 @@ def archive_paths_to(obj, paths, mtime, add_nix, filter=None):
         ti.gname = "root"
         return filter(ti)
 
+    def nix_root(ti):
+        ti.mode = 0o0555  # r-xr-xr-x
+        return ti
+
     def dir(path):
         ti = tarfile.TarInfo(path)
         ti.type = tarfile.DIRTYPE
@@ -83,20 +88,20 @@ def archive_paths_to(obj, paths, mtime, add_nix, filter=None):
         # these directories first when building layer tarballs. But
         # we don't need them on the customisation layer.
         if add_nix:
-            tar.addfile(apply_filters(dir("/nix")))
-            tar.addfile(apply_filters(dir("/nix/store")))
+            tar.addfile(apply_filters(nix_root(dir("/nix"))))
+            tar.addfile(apply_filters(nix_root(dir("/nix/store"))))
 
         for path in paths:
-            ti = tar.gettarinfo(os.path.join("/", path))
-            tar.addfile(apply_filters(append_root(ti)))
-
-            for filename in pathlib.Path(path).rglob("*"):
+            path = pathlib.Path(path)
+            files = itertools.chain([path], path.rglob("*"))
+            for filename in sorted(files):
                 ti = append_root(tar.gettarinfo(filename))
 
                 # copy hardlinks as regular files
                 if ti.islnk():
                     ti.type = tarfile.REGTYPE
                     ti.linkname = ""
+                    ti.size = filename.stat().st_size
 
                 ti = apply_filters(ti)
                 if ti.isfile():
@@ -241,7 +246,7 @@ def main():
         conf = json.load(f)
 
     created = (
-      datetime.now(tz=datetime.timezone.utc)
+      datetime.now(tz=timezone.utc)
       if conf["created"] == "now"
       else datetime.fromisoformat(conf["created"])
     )
@@ -279,7 +284,7 @@ def main():
             },
             "history": [
                 {
-                  "created": conf["created"],
+                  "created": datetime.isoformat(created),
                   "comment": f"store paths: {layer.paths}"
                 }
                 for layer in layers
diff --git a/pkgs/build-support/emacs/generic.nix b/pkgs/build-support/emacs/generic.nix
index 6fa27f09839..956787ad59e 100644
--- a/pkgs/build-support/emacs/generic.nix
+++ b/pkgs/build-support/emacs/generic.nix
@@ -56,6 +56,16 @@ stdenv.mkDerivation ({
   meta = defaultMeta // meta;
 }
 
+// lib.optionalAttrs (emacs.nativeComp or false) {
+
+  LIBRARY_PATH = "${lib.getLib stdenv.cc.libc}/lib";
+
+  postInstall = ''
+    find $out/share/emacs -type f -name '*.el' -print0 | xargs -0 -n 1 -I {} -P $NIX_BUILD_CORES sh -c "emacs --batch -f batch-native-compile {} || true"
+  '';
+
+}
+
 // removeAttrs args [ "buildInputs" "packageRequires"
                       "meta"
                     ])
diff --git a/pkgs/build-support/fetchrepoproject/default.nix b/pkgs/build-support/fetchrepoproject/default.nix
index f8793dbac95..8144ed038bd 100644
--- a/pkgs/build-support/fetchrepoproject/default.nix
+++ b/pkgs/build-support/fetchrepoproject/default.nix
@@ -2,7 +2,7 @@
 
 { name, manifest, rev ? "HEAD", sha256
 # Optional parameters:
-, repoRepoURL ? "", repoRepoRev ? "", referenceDir ? ""
+, repoRepoURL ? "", repoRepoRev ? "", referenceDir ? "", manifestName ? ""
 , localManifests ? [], createMirror ? false, useArchive ? false
 }:
 
@@ -16,6 +16,7 @@ let
     (optionalString (repoRepoURL != "") "--repo-url=${repoRepoURL}")
     (optionalString (repoRepoRev != "") "--repo-branch=${repoRepoRev}")
     (optionalString (referenceDir != "") "--reference=${referenceDir}")
+    (optionalString (manifestName != "") "--manifest-name=${manifestName}")
   ];
 
   repoInitFlags = [
diff --git a/pkgs/build-support/fetchurl/builder.sh b/pkgs/build-support/fetchurl/builder.sh
index e93c98419a6..5b04a702aff 100644
--- a/pkgs/build-support/fetchurl/builder.sh
+++ b/pkgs/build-support/fetchurl/builder.sh
@@ -15,8 +15,14 @@ curl=(
     --retry 3
     --disable-epsv
     --cookie-jar cookies
-    --insecure
     --user-agent "curl/$curlVersion Nixpkgs/$nixpkgsVersion"
+)
+
+if ! [ -f "$SSL_CERT_FILE" ]; then
+    curl+=(--insecure)
+fi
+
+curl+=(
     $curlOpts
     $NIX_CURL_FLAGS
 )
diff --git a/pkgs/build-support/fetchurl/default.nix b/pkgs/build-support/fetchurl/default.nix
index a0c48468dfa..c65738aef41 100644
--- a/pkgs/build-support/fetchurl/default.nix
+++ b/pkgs/build-support/fetchurl/default.nix
@@ -1,4 +1,6 @@
-{ lib, buildPackages ? { inherit stdenvNoCC; }, stdenvNoCC, curl }: # Note that `curl' may be `null', in case of the native stdenvNoCC.
+{ lib, buildPackages ? { inherit stdenvNoCC; }, stdenvNoCC
+, curl # Note that `curl' may be `null', in case of the native stdenvNoCC.
+, cacert ? null }:
 
 let
 
@@ -112,6 +114,7 @@ let
     else if sha512 != "" then { outputHashAlgo = "sha512"; outputHash = sha512; }
     else if sha256 != "" then { outputHashAlgo = "sha256"; outputHash = sha256; }
     else if sha1   != "" then { outputHashAlgo = "sha1";   outputHash = sha1; }
+    else if cacert != null then { outputHashAlgo = "sha256"; outputHash = ""; }
     else throw "fetchurl requires a hash for fixed-output derivation: ${lib.concatStringsSep ", " urls_}";
 in
 
@@ -134,6 +137,10 @@ stdenvNoCC.mkDerivation {
   # New-style output content requirements.
   inherit (hash_) outputHashAlgo outputHash;
 
+  SSL_CERT_FILE = if hash_.outputHash == ""
+                  then "${cacert}/etc/ssl/certs/ca-bundle.crt"
+                  else "/no-cert-file.crt";
+
   outputHashMode = if (recursiveHash || executable) then "recursive" else "flat";
 
   inherit curlOpts showURLs mirrorsFile postFetch downloadToTemp executable;
diff --git a/pkgs/build-support/kernel/modules-closure.sh b/pkgs/build-support/kernel/modules-closure.sh
index 220f3b00a77..3f895d9cfed 100644
--- a/pkgs/build-support/kernel/modules-closure.sh
+++ b/pkgs/build-support/kernel/modules-closure.sh
@@ -19,37 +19,66 @@ version=$(cd $kernel/lib/modules && ls -d *)
 echo "kernel version is $version"
 
 # Determine the dependencies of each root module.
-closure=
+mkdir -p $out/lib/modules/"$version"
+touch closure
 for module in $rootModules; do
     echo "root module: $module"
-    deps=$(modprobe --config no-config -d $kernel --set-version "$version" --show-depends "$module" \
-        | sed 's/^insmod //') \
-        || if test -z "$allowMissing"; then exit 1; fi
-    if [[ "$deps" != builtin* ]]; then
-        closure="$closure $deps"
+    modprobe --config no-config -d $kernel --set-version "$version" --show-depends "$module" \
+    | while read cmd module args; do
+        case "$cmd" in
+            builtin)
+                touch found
+                echo "$module" >>closure
+                echo "  builtin dependency: $module";;
+            insmod)
+                touch found
+                if ! test -e "$module"; then
+                    echo "  dependency not found: $module"
+                    exit 1
+                fi
+                target=$(echo "$module" | sed "s^$NIX_STORE.*/lib/modules/^$out/lib/modules/^")
+                if test -e "$target"; then
+                    echo "  dependency already copied: $module"
+                    continue
+                fi
+                echo "$module" >>closure
+                echo "  copying dependency: $module"
+                mkdir -p $(dirname $target)
+                cp "$module" "$target"
+                # If the kernel is compiled with coverage instrumentation, it
+                # contains the paths of the *.gcda coverage data output files
+                # (which it doesn't actually use...).  Get rid of them to prevent
+                # the whole kernel from being included in the initrd.
+                nuke-refs "$target"
+                echo "$target" >> $out/insmod-list;;
+             *)
+                echo "  unexpected modprobe output: $cmd $module"
+                exit 1;;
+        esac
+    done || test -n "$allowMissing"
+    if ! test -e found; then
+        echo "  not found"
+        if test -z "$allowMissing"; then
+            exit 1
+        fi
+    else
+        rm found
     fi
 done
 
-echo "closure:"
-mkdir -p $out/lib/modules/"$version"
-for module in $closure; do
-    target=$(echo $module | sed "s^$NIX_STORE.*/lib/modules/^$out/lib/modules/^")
-    if test -e "$target"; then continue; fi
-    if test \! -e "$module"; then continue; fi # XXX: to avoid error with "cp builtin builtin"
-    mkdir -p $(dirname $target)
-    echo $module
-    cp $module $target
-    # If the kernel is compiled with coverage instrumentation, it
-    # contains the paths of the *.gcda coverage data output files
-    # (which it doesn't actually use...).  Get rid of them to prevent
-    # the whole kernel from being included in the initrd.
-    nuke-refs $target
-    echo $target >> $out/insmod-list
-done
-
 mkdir -p $out/lib/firmware
-for module in $closure; do
-    for i in $(modinfo -F firmware $module); do
+for module in $(cat closure); do
+    # for builtin modules, modinfo will reply with a wrong output looking like:
+    #   $ modinfo -F firmware unix
+    #   name:           unix
+    #
+    # There is a pending attempt to fix this:
+    #   https://github.com/NixOS/nixpkgs/pull/96153
+    #   https://lore.kernel.org/linux-modules/20200823215433.j5gc5rnsmahpf43v@blumerang/T/#u
+    #
+    # For now, the workaround is just to filter out the extraneous lines out
+    # of its output.
+    for i in $(modinfo -b $kernel --set-version "$version" -F firmware $module | grep -v '^name:'); do
         mkdir -p "$out/lib/firmware/$(dirname "$i")"
         echo "firmware for $module: $i"
         cp "$firmware/lib/firmware/$i" "$out/lib/firmware/$i" 2>/dev/null || if test -z "$allowMissing"; then exit 1; fi
diff --git a/pkgs/build-support/release/default.nix b/pkgs/build-support/release/default.nix
index 6b9aa9a8c4a..6aaa0338f0c 100644
--- a/pkgs/build-support/release/default.nix
+++ b/pkgs/build-support/release/default.nix
@@ -41,10 +41,6 @@ rec {
       doCoverityAnalysis = true;
     } // args);
 
-  gcovReport = args: import ./gcov-report.nix (
-    { inherit runCommand lcov rsync;
-    } // args);
-
   rpmBuild = args: import ./rpm-build.nix (
     { inherit vmTools;
     } // args);
diff --git a/pkgs/build-support/release/gcov-report.nix b/pkgs/build-support/release/gcov-report.nix
deleted file mode 100644
index 8ce5c0488a7..00000000000
--- a/pkgs/build-support/release/gcov-report.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ runCommand, lcov, rsync, coverageRuns, lcovFilter ? [ "/nix/store/*" ], baseDirHack ? false }:
-
-runCommand "coverage"
-  { buildInputs = [ lcov rsync ];
-    inherit lcovFilter baseDirHack;
-  }
-  ''
-    mkdir -p $TMPDIR/gcov $out/nix-support $out/coverage
-    info=$out/coverage/full.info
-
-    for p in ${toString coverageRuns}; do
-        if [ -f $p/nix-support/hydra-build-products ]; then
-            cat $p/nix-support/hydra-build-products >> $out/nix-support/hydra-build-products
-        fi
-
-        [ ! -e $p/nix-support/failed ] || touch $out/nix-support/failed
-
-        opts=
-        for d in $p/coverage-data/*; do
-            for i in $(cd $d/nix/store && ls); do
-                if ! [ -e /nix/store/$i/.build ]; then continue; fi
-                if [ -e $TMPDIR/gcov/nix/store/$i ]; then continue; fi
-                echo "copying $i..."
-                rsync -a /nix/store/$i/.build/* $TMPDIR/gcov/
-                if [ -n "$baseDirHack" ]; then
-                    opts="-b $TMPDIR/gcov/$(cd /nix/store/$i/.build && ls)"
-                fi
-            done
-
-            for i in $(cd $d/nix/store && ls); do
-                rsync -a $d/nix/store/$i/.build/* $TMPDIR/gcov/ --include '*/' --include '*.gcda' --exclude '*'
-            done
-        done
-
-        chmod -R u+w $TMPDIR/gcov
-
-        echo "producing info..."
-        geninfo --ignore-errors source,gcov $TMPDIR/gcov --output-file $TMPDIR/app.info $opts
-        cat $TMPDIR/app.info >> $info
-    done
-
-    echo "making report..."
-    set -o noglob
-    lcov --remove $info ''$lcovFilter > $info.tmp
-    set +o noglob
-    mv $info.tmp $info
-    genhtml --show-details $info -o $out/coverage
-    echo "report coverage $out/coverage" >> $out/nix-support/hydra-build-products
-  ''
diff --git a/pkgs/build-support/rust/build-rust-crate/build-crate.nix b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
index f82effdbca7..142109cef49 100644
--- a/pkgs/build-support/rust/build-rust-crate/build-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
@@ -38,7 +38,7 @@
     build_bin = if buildTests then "build_bin_test" else "build_bin";
   in ''
     runHook preBuild
- 
+
     # configure & source common build functions
     LIB_RUSTC_OPTS="${libRustcOpts}"
     BIN_RUSTC_OPTS="${binRustcOpts}"
diff --git a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
index 8e2f5f7f35e..a95b356646e 100644
--- a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
@@ -43,7 +43,7 @@ in ''
   noisily cd "${workspace_member}"
 ''}
   ${lib.optionalString (workspace_member == null) ''
-  echo_colored "Searching for matching Cargo.toml (${crateName})" 
+  echo_colored "Searching for matching Cargo.toml (${crateName})"
   local cargo_toml_dir=$(matching_cargo_toml_dir "${crateName}")
   if [ -z "$cargo_toml_dir" ]; then
     echo_error "ERROR configuring ${crateName}: No matching Cargo.toml in $(pwd) found." >&2
@@ -53,7 +53,7 @@ in ''
 ''}
 
   runHook preConfigure
- 
+
   symlink_dependency() {
     # $1 is the nix-store path of a dependency
     # $2 is the target path
diff --git a/pkgs/build-support/rust/build-rust-crate/lib.sh b/pkgs/build-support/rust/build-rust-crate/lib.sh
index 3bf1992cecd..d4927b025aa 100644
--- a/pkgs/build-support/rust/build-rust-crate/lib.sh
+++ b/pkgs/build-support/rust/build-rust-crate/lib.sh
@@ -153,8 +153,8 @@ matching_cargo_toml_path() {
   # is referenced there.
   cargo metadata --no-deps --format-version 1 \
     --manifest-path "$manifest_path" \
-    | jq -r '.packages[] 
-            | select( .name == "'$expected_crate_name'") 
+    | jq -r '.packages[]
+            | select( .name == "'$expected_crate_name'")
             | .manifest_path'
 }
 
@@ -171,4 +171,4 @@ matching_cargo_toml_dir() {
       break
     fi
   done
-}
\ No newline at end of file
+}
diff --git a/pkgs/build-support/rust/build-rust-crate/log.nix b/pkgs/build-support/rust/build-rust-crate/log.nix
index a7e2cb4f463..9054815f4a1 100644
--- a/pkgs/build-support/rust/build-rust-crate/log.nix
+++ b/pkgs/build-support/rust/build-rust-crate/log.nix
@@ -1,23 +1,23 @@
 { lib }:
 
 let echo_colored_body = start_escape:
-      # Body of a function that behaves like "echo" but 
+      # Body of a function that behaves like "echo" but
       # has the output colored by the given start_escape
       # sequence. E.g.
       #
       # * echo_x "Building ..."
       # * echo_x -n "Running "
       #
-      # This is more complicated than apparent at first sight 
+      # This is more complicated than apparent at first sight
       # because:
       #   * The color markers and the text must be print
       #     in the same echo statement. Otherise, other
-      #     intermingled text from concurrent builds will 
+      #     intermingled text from concurrent builds will
       #     be colored as well.
       #   * We need to preserve the trailing newline of the
       #     echo if and only if it is present. Bash likes
       #     to strip those if we capture the output of echo
-      #     in a variable.  
+      #     in a variable.
       #   * Leading "-" will be interpreted by test as an
       #     option for itself. Therefore, we prefix it with
       #     an x in `[[ "x$1" =~ ^x- ]]`.
@@ -27,13 +27,13 @@ let echo_colored_body = start_escape:
         echo_args+=" $1"
         shift
       done
-      
+
       local start_escape="$(printf '${start_escape}')"
       local reset="$(printf '\033[0m')"
       echo $echo_args $start_escape"$@"$reset
       '';
   echo_conditional_colored_body = colors: start_escape:
-      if colors == "always" 
+      if colors == "always"
       then (echo_colored_body start_escape)
       else ''echo "$@"'';
 in {
@@ -50,7 +50,7 @@ in {
   noisily = colors: verbose: ''
     noisily() {
   	  ${lib.optionalString verbose ''
-        echo_colored -n "Running " 
+        echo_colored -n "Running "
         echo $@
   	  ''}
   	  $@
diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix
index 8d3a7ba6929..23fb56539e4 100644
--- a/pkgs/build-support/rust/default.nix
+++ b/pkgs/build-support/rust/default.nix
@@ -74,6 +74,7 @@ let
   ccForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc";
   cxxForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++";
   releaseDir = "target/${rustTarget}/${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`.
@@ -154,7 +155,7 @@ stdenv.mkDerivation (args // {
       echo
       echo "To fix the issue:"
       echo '1. Use "0000000000000000000000000000000000000000000000000000" as the cargoSha256 value'
-      echo "2. Build the derivation and wait it to fail with a hash mismatch"
+      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
 
@@ -180,7 +181,7 @@ stdenv.mkDerivation (args // {
       "CXX_${rust.toRustTarget stdenv.buildPlatform}"="${cxxForBuild}" \
       "CC_${rust.toRustTarget stdenv.hostPlatform}"="${ccForHost}" \
       "CXX_${rust.toRustTarget stdenv.hostPlatform}"="${cxxForHost}" \
-      cargo build \
+      cargo build -j $NIX_BUILD_CORES \
         ${stdenv.lib.optionalString (buildType == "release") "--release"} \
         --target ${rustTarget} \
         --frozen ${concatStringsSep " " cargoBuildFlags}
@@ -193,7 +194,9 @@ stdenv.mkDerivation (args // {
     # 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.
-    bins=$(find $releaseDir \
+    mkdir -p $tmpDir
+    cp -r $releaseDir/* $tmpDir/
+    bins=$(find $tmpDir \
       -maxdepth 1 \
       -type f \
       -executable ! \( -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \))
@@ -205,7 +208,7 @@ stdenv.mkDerivation (args // {
     ${stdenv.lib.optionalString (buildAndTestSubdir != null) "pushd ${buildAndTestSubdir}"}
     runHook preCheck
     echo "Running cargo test ${argstr} -- ''${checkFlags} ''${checkFlagsArray+''${checkFlagsArray[@]}}"
-    cargo test ${argstr} -- ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"}
+    cargo test -j $NIX_BUILD_CORES ${argstr} -- --test-threads=$NIX_BUILD_CORES ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"}
     runHook postCheck
     ${stdenv.lib.optionalString (buildAndTestSubdir != null) "popd"}
   '');
@@ -214,13 +217,13 @@ stdenv.mkDerivation (args // {
 
   strictDeps = true;
 
-  inherit releaseDir;
+  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 '${releaseDir}$')
+    mapfile -t targets < <(find "$NIX_BUILD_TOP" -type d | grep '${tmpDir}$')
     for target in "''${targets[@]}"; do
       rm -rf "$target/../../${buildType}"
       ln -srf "$target" "$target/../../"
@@ -228,7 +231,7 @@ stdenv.mkDerivation (args // {
     mkdir -p $out/bin $out/lib
 
     xargs -r cp -t $out/bin <<< $bins
-    find $releaseDir \
+    find $tmpDir \
       -maxdepth 1 \
       -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \
       -print0 | xargs -r -0 cp -t $out/lib
diff --git a/pkgs/build-support/rust/fetchcrate.nix b/pkgs/build-support/rust/fetchcrate.nix
index 95dfd38b12a..4e6c38b032c 100644
--- a/pkgs/build-support/rust/fetchcrate.nix
+++ b/pkgs/build-support/rust/fetchcrate.nix
@@ -1,10 +1,13 @@
 { lib, fetchurl, unzip }:
 
-{ crateName
+{ crateName ? args.pname
+, pname ? null
 , version
 , sha256
 , ... } @ args:
 
+assert pname == null || pname == crateName;
+
 lib.overrideDerivation (fetchurl ({
 
   name = "${crateName}-${version}.tar.gz";
@@ -30,6 +33,6 @@ lib.overrideDerivation (fetchurl ({
       fi
       mv "$unpackDir/$fn" "$out"
     '';
-} // removeAttrs args [ "crateName" "version" ]))
+} // removeAttrs args [ "crateName" "pname" "version" ]))
 # Hackety-hack: we actually need unzip hooks, too
 (x: {nativeBuildInputs = x.nativeBuildInputs++ [unzip];})
diff --git a/pkgs/build-support/setup-hooks/auto-patchelf.sh b/pkgs/build-support/setup-hooks/auto-patchelf.sh
index 72970623ed7..4f7c0c14304 100644
--- a/pkgs/build-support/setup-hooks/auto-patchelf.sh
+++ b/pkgs/build-support/setup-hooks/auto-patchelf.sh
@@ -141,7 +141,7 @@ autoPatchelfFile() {
     # This makes sure the builder fails if we didn't find a dependency, because
     # the stdenv setup script is run with set -e. The actual error is emitted
     # earlier in the previous loop.
-    [ $depNotFound -eq 0 ]
+    [ $depNotFound -eq 0 -o -n "$autoPatchelfIgnoreMissingDeps" ]
 
     if [ -n "$rpath" ]; then
         echo "setting RPATH to: $rpath" >&2
diff --git a/pkgs/build-support/setup-hooks/multiple-outputs.sh b/pkgs/build-support/setup-hooks/multiple-outputs.sh
index 2e95495c96f..bfa47e3b20e 100644
--- a/pkgs/build-support/setup-hooks/multiple-outputs.sh
+++ b/pkgs/build-support/setup-hooks/multiple-outputs.sh
@@ -61,7 +61,7 @@ _multioutConfig() {
             local shareDocName="$(sed -n "s/^PACKAGE_TARNAME='\(.*\)'$/\1/p" < "$confScript")"
         fi
                                     # PACKAGE_TARNAME sometimes contains garbage.
-        if [ -n "$shareDocName" ] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_-]'; then
+        if [ -z "$shareDocName" ] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_-]'; then
             shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')"
         fi
     fi
diff --git a/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix b/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix
new file mode 100644
index 00000000000..5a87893d972
--- /dev/null
+++ b/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix
@@ -0,0 +1,175 @@
+{ stdenv
+, lib
+, makeSetupHook
+, makeWrapper
+, gobject-introspection
+, gtk3
+, librsvg
+, dconf
+, callPackage
+, wrapGAppsHook
+, writeTextFile
+}:
+
+makeSetupHook {
+  deps = lib.optionals (!stdenv.isDarwin) [
+    # It is highly probable that a program will use GSettings,
+    # at minimum through GTK file chooser dialogue.
+    # Let’s add a GIO module for “dconf” GSettings backend
+    # to avoid falling back to “memory” backend. This is
+    # required for GSettings-based settings to be persisted.
+    # Unfortunately, it also requires the user to have dconf
+    # D-Bus service enabled globally (e.g. through a NixOS module).
+    dconf.lib
+  ] ++ [
+    # TODO: remove this, packages should depend on GTK explicitly.
+    gtk3
+
+    # librsvg provides a module for gdk-pixbuf to allow rendering
+    # SVG icons. Most icon themes are SVG-based and so are some
+    # graphics in GTK (e.g. cross for closing window in window title bar)
+    # so it is pretty much required for applications using GTK.
+    librsvg
+
+    # We use the wrapProgram function.
+    makeWrapper
+  ];
+  substitutions = {
+    passthru.tests = let
+      sample-project = ./tests/sample-project;
+
+      testLib = callPackage ./tests/lib.nix { };
+      inherit (testLib) expectSomeLineContainingYInFileXToMentionZ;
+    in rec {
+      # Simple derivation containing a program and a daemon.
+      basic = stdenv.mkDerivation {
+        name = "basic";
+
+        src = sample-project;
+
+        nativeBuildInputs = [ wrapGAppsHook ];
+
+        installFlags = [ "bin-foo" "libexec-bar" ];
+      };
+
+      # The wrapper for executable files should add path to dconf GIO module.
+      basic-contains-dconf = let
+        tested = basic;
+      in testLib.runTest "basic-contains-dconf" (
+        testLib.skip stdenv.isDarwin ''
+          ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GIO_EXTRA_MODULES=" "${dconf.lib}/lib/gio/modules"}
+          ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GIO_EXTRA_MODULES=" "${dconf.lib}/lib/gio/modules"}
+        ''
+      );
+
+      # Simple derivation containing a gobject-introspection typelib.
+      typelib-Mahjong = stdenv.mkDerivation {
+        name = "typelib-Mahjong";
+
+        src = sample-project;
+
+        installFlags = [ "typelib-Mahjong" ];
+      };
+
+      # Simple derivation using a typelib.
+      typelib-user = stdenv.mkDerivation {
+        name = "typelib-user";
+
+        src = sample-project;
+
+        nativeBuildInputs = [
+          gobject-introspection
+          wrapGAppsHook
+        ];
+
+        buildInputs = [
+          typelib-Mahjong
+        ];
+
+        installFlags = [ "bin-foo" "libexec-bar" ];
+      };
+
+      # Testing cooperation with gobject-introspection setup hook,
+      # which should populate GI_TYPELIB_PATH variable with paths
+      # to typelibs among the derivation’s dependencies.
+      # The resulting GI_TYPELIB_PATH should be picked up by the wrapper.
+      typelib-user-has-gi-typelib-path = let
+        tested = typelib-user;
+      in testLib.runTest "typelib-user-has-gi-typelib-path" ''
+        ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GI_TYPELIB_PATH=" "${typelib-Mahjong}/lib/girepository-1.0"}
+        ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GI_TYPELIB_PATH=" "${typelib-Mahjong}/lib/girepository-1.0"}
+      '';
+
+      # Simple derivation containing a gobject-introspection typelib in lib output.
+      typelib-Bechamel = stdenv.mkDerivation {
+        name = "typelib-Bechamel";
+
+        outputs = [ "out" "lib" ];
+
+        src = sample-project;
+
+        makeFlags = [
+          "LIBDIR=${placeholder "lib"}/lib"
+        ];
+
+        installFlags = [ "typelib-Bechamel" ];
+      };
+
+      # Simple derivation using a typelib from non-default output.
+      typelib-multiout-user = stdenv.mkDerivation {
+        name = "typelib-multiout-user";
+
+        src = sample-project;
+
+        nativeBuildInputs = [
+          gobject-introspection
+          wrapGAppsHook
+        ];
+
+        buildInputs = [
+          typelib-Bechamel
+        ];
+
+        installFlags = [ "bin-foo" "libexec-bar" ];
+      };
+
+      # Testing cooperation with gobject-introspection setup hook,
+      # which should populate GI_TYPELIB_PATH variable with paths
+      # to typelibs among the derivation’s dependencies,
+      # even when they are not in default output.
+      # The resulting GI_TYPELIB_PATH should be picked up by the wrapper.
+      typelib-multiout-user-has-gi-typelib-path = let
+        tested = typelib-multiout-user;
+      in testLib.runTest "typelib-multiout-user-has-gi-typelib-path" ''
+        ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GI_TYPELIB_PATH=" "${typelib-Bechamel.lib}/lib/girepository-1.0"}
+        ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GI_TYPELIB_PATH=" "${typelib-Bechamel.lib}/lib/girepository-1.0"}
+      '';
+
+      # Simple derivation that contains a typelib as well as a program using it.
+      typelib-self-user = stdenv.mkDerivation {
+        name = "typelib-self-user";
+
+        src = sample-project;
+
+        nativeBuildInputs = [
+          gobject-introspection
+          wrapGAppsHook
+        ];
+
+        installFlags = [ "typelib-Cow" "bin-foo" "libexec-bar" ];
+      };
+
+      # Testing cooperation with gobject-introspection setup hook,
+      # which should add the path to derivation’s own typelibs
+      # to GI_TYPELIB_PATH variable.
+      # The resulting GI_TYPELIB_PATH should be picked up by the wrapper.
+      # https://github.com/NixOS/nixpkgs/issues/85515
+      typelib-self-user-has-gi-typelib-path = let
+        tested = typelib-self-user;
+      in testLib.runTest "typelib-self-user-has-gi-typelib-path" ''
+        ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GI_TYPELIB_PATH=" "${typelib-self-user}/lib/girepository-1.0"}
+        ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GI_TYPELIB_PATH=" "${typelib-self-user}/lib/girepository-1.0"}
+      '';
+    };
+  };
+} ./wrap-gapps-hook.sh
diff --git a/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/lib.nix b/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/lib.nix
new file mode 100644
index 00000000000..1757bdbbe25
--- /dev/null
+++ b/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/lib.nix
@@ -0,0 +1,30 @@
+{ runCommand
+}:
+
+rec {
+  runTest = name: body: runCommand name { } ''
+    set -o errexit
+    ${body}
+    touch $out
+  '';
+
+  skip = cond: text:
+    if cond then ''
+      echo "Skipping test $name" > /dev/stderr
+    '' else text;
+
+  fail = text: ''
+    echo "FAIL: $name: ${text}" > /dev/stderr
+    exit 1
+  '';
+
+  expectSomeLineContainingYInFileXToMentionZ = file: filter: expected: ''
+    if ! cat "${file}" | grep "${filter}"; then
+        ${fail "The file “${file}” should include a line containing “${filter}”."}
+    fi
+
+    if ! cat "${file}" | grep "${filter}" | grep ${expected}; then
+        ${fail "The file “${file}” should include a line containing “${filter}” that also contains “${expected}”."}
+    fi
+  '';
+}
diff --git a/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/sample-project/Makefile b/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/sample-project/Makefile
new file mode 100644
index 00000000000..5d234db11a0
--- /dev/null
+++ b/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/sample-project/Makefile
@@ -0,0 +1,30 @@
+PREFIX = $(out)
+BINDIR = $(PREFIX)/bin
+LIBEXECDIR = $(PREFIX)/libexec
+LIBDIR = $(PREFIX)/lib
+TYPELIBDIR = $(LIBDIR)/girepository-1.0
+
+all:
+	echo "Compiling…"
+install:
+	echo "Installing…"
+
+bin:
+	mkdir -p $(BINDIR)
+# Adds `bin-${foo}` targets, that install `${foo}` executable to `$(BINDIR)`.
+bin-%: bin
+	touch $(BINDIR)/$(@:bin-%=%)
+	chmod +x $(BINDIR)/$(@:bin-%=%)
+
+libexec:
+	mkdir -p $(LIBEXECDIR)
+# Adds `libexec-${foo}` targets, that install `${foo}` executable to `$(LIBEXECDIR)`.
+libexec-%: libexec
+	touch $(LIBEXECDIR)/$(@:libexec-%=%)
+	chmod +x $(LIBEXECDIR)/$(@:libexec-%=%)
+
+typelib:
+	mkdir -p $(TYPELIBDIR)
+# Adds `typelib-${foo}` targets, that install `${foo}-1.0.typelib` file to `$(TYPELIBDIR)`.
+typelib-%: typelib
+	touch $(TYPELIBDIR)/$(@:typelib-%=%)-1.0.typelib
diff --git a/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh b/pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh
index 1a46e075dbe..1a46e075dbe 100644
--- a/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh
+++ b/pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh
diff --git a/pkgs/build-support/singularity-tools/default.nix b/pkgs/build-support/singularity-tools/default.nix
index 54749e416ea..f1d4808e3cc 100644
--- a/pkgs/build-support/singularity-tools/default.nix
+++ b/pkgs/build-support/singularity-tools/default.nix
@@ -97,6 +97,7 @@ rec {
             cd ..
             mkdir -p /var/singularity/mnt/{container,final,overlay,session,source}
             echo "root:x:0:0:System administrator:/root:/bin/sh" > /etc/passwd
+            echo > /etc/resolv.conf
             TMPDIR=$(pwd -P) singularity build $out ./img
           '');
 
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index 3c81a4ece65..eab5366e183 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -240,6 +240,8 @@ rec {
    * This creates a single derivation that replicates the directory structure
    * of all the input paths.
    *
+   * BEWARE: it may not "work right" when the passed paths contain symlinks to directories.
+   *
    * Examples:
    * # adds symlinks of hello to current build.
    * symlinkJoin { name = "myhello"; paths = [ pkgs.hello ]; }
diff --git a/pkgs/build-support/writers/default.nix b/pkgs/build-support/writers/default.nix
index af492d80db0..4673b4e6cd8 100644
--- a/pkgs/build-support/writers/default.nix
+++ b/pkgs/build-support/writers/default.nix
@@ -22,7 +22,30 @@ rec {
       inherit interpreter;
       contentPath = content;
     }) ''
-      echo "#! $interpreter" > $out
+      # On darwin a script cannot be used as an interpreter in a shebang but
+      # there doesn't seem to be a limit to the size of shebang and multiple
+      # arguments to the interpreter are allowed.
+      if [[ -n "${toString pkgs.stdenvNoCC.isDarwin}" ]] && isScript $interpreter
+      then
+        wrapperInterpreterLine=$(head -1 "$interpreter" | tail -c+3)
+        # Get first word from the line (note: xargs echo remove leading spaces)
+        wrapperInterpreter=$(echo "$wrapperInterpreterLine" | xargs echo | cut -d " " -f1)
+
+        if isScript $wrapperInterpreter
+        then
+          echo "error: passed interpreter ($interpreter) is a script which has another script ($wrapperInterpreter) as an interpreter, which is not supported."
+          exit 1
+        fi
+
+        # This should work as long as wrapperInterpreter is a shell, which is
+        # the case for programs wrapped with makeWrapper, like
+        # python3.withPackages etc.
+        interpreterLine="$wrapperInterpreterLine $interpreter"
+      else
+        interpreterLine=$interpreter
+      fi
+
+      echo "#! $interpreterLine" > $out
       cat "$contentPath" >> $out
       ${optionalString (check != "") ''
         ${check} $out
@@ -227,6 +250,24 @@ rec {
   writePerlBin = name:
     writePerl "/bin/${name}";
 
+  # makePythonWriter takes python and compatible pythonPackages and produces python script writer,
+  # which validates the script with flake8 at build time. If any libraries are specified,
+  # python.withPackages is used as interpreter, otherwise the "bare" python is used.
+  makePythonWriter = python: pythonPackages: name: { libraries ? [], flakeIgnore ? [] }:
+  let
+    ignoreAttribute = optionalString (flakeIgnore != []) "--ignore ${concatMapStringsSep "," escapeShellArg flakeIgnore}";
+  in
+  makeScriptWriter {
+    interpreter =
+      if libraries == []
+      then "${python}/bin/python"
+      else "${python.withPackages (ps: libraries)}/bin/python"
+    ;
+    check = writeDash "python2check.sh" ''
+      exec ${pythonPackages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1"
+    '';
+  } name;
+
   # writePython2 takes a name an attributeset with libraries and some python2 sourcecode and
   # returns an executable
   #
@@ -239,17 +280,7 @@ rec {
   #
   #   print Test.a
   # ''
-  writePython2 = name: { libraries ? [], flakeIgnore ? [] }:
-  let
-    py = pkgs.python2.withPackages (ps: libraries);
-    ignoreAttribute = optionalString (flakeIgnore != []) "--ignore ${concatMapStringsSep "," escapeShellArg flakeIgnore}";
-  in
-  makeScriptWriter {
-    interpreter = "${py}/bin/python";
-    check = writeDash "python2check.sh" ''
-      exec ${pkgs.python2Packages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1"
-    '';
-  } name;
+  writePython2 = makePythonWriter pkgs.python2 pkgs.python2Packages;
 
   # writePython2Bin takes the same arguments as writePython2 but outputs a directory (like writeScriptBin)
   writePython2Bin = name:
@@ -267,17 +298,7 @@ rec {
   #   """)
   #   print(y[0]['test'])
   # ''
-  writePython3 = name: { libraries ? [], flakeIgnore ? [] }:
-  let
-    py = pkgs.python3.withPackages (ps: libraries);
-    ignoreAttribute = optionalString (flakeIgnore != []) "--ignore ${concatMapStringsSep "," escapeShellArg flakeIgnore}";
-  in
-  makeScriptWriter {
-    interpreter = "${py}/bin/python";
-    check = writeDash "python3check.sh" ''
-      exec ${pkgs.python3Packages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1"
-    '';
-  } name;
+  writePython3 = makePythonWriter pkgs.python3 pkgs.python3Packages;
 
   # writePython3Bin takes the same arguments as writePython3 but outputs a directory (like writeScriptBin)
   writePython3Bin = name:
diff --git a/pkgs/build-support/writers/test.nix b/pkgs/build-support/writers/test.nix
index 3cd0a080ae8..d284bda43d0 100644
--- a/pkgs/build-support/writers/test.nix
+++ b/pkgs/build-support/writers/test.nix
@@ -152,6 +152,14 @@ let
       """)
       print(y[0]['test'])
     '';
+
+    python2NoLibs = writePython2 "test_python2_no_libs" {} ''
+      print("success")
+    '';
+
+    python3NoLibs = writePython3 "test_python3_no_libs" {} ''
+      print("success")
+    '';
   };
 
 
diff --git a/pkgs/common-updater/nix-update.nix b/pkgs/common-updater/nix-update.nix
new file mode 100644
index 00000000000..13b85bf52ff
--- /dev/null
+++ b/pkgs/common-updater/nix-update.nix
@@ -0,0 +1,5 @@
+{ nix-update }:
+
+{ attrPath }:
+
+[ "${nix-update}/bin/nix-update" attrPath ]
diff --git a/pkgs/data/documentation/anarchism/default.nix b/pkgs/data/documentation/anarchism/default.nix
new file mode 100644
index 00000000000..5b63e104d9d
--- /dev/null
+++ b/pkgs/data/documentation/anarchism/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitLab, xdg_utils }:
+
+stdenv.mkDerivation rec {
+  pname = "anarchism";
+  version = "15.3-1";
+
+  src = fetchFromGitLab {
+    domain = "salsa.debian.org";
+    owner = "debian";
+    repo = pname;
+    rev = "debian%2F${version}"; # %2F = urlquote("/")
+    sha256 = "04ylk0y5b3jml2awmyz7m1hnymni8y1n83m0k6ychdh0px8frhm5";
+  };
+
+  phases = [ "unpackPhase" "postPatch" "installPhase" ];
+
+  postPatch = ''
+    substituteInPlace debian/anarchism.desktop \
+      --replace "/usr/bin/xdg-open" "${xdg_utils}/bin/xdg-open"
+    substituteInPlace debian/anarchism.desktop \
+      --replace "file:///usr" "file://$out"
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/doc/anarchism $out/share/applications $out/share/icons/hicolor/scalable/apps 
+    cp -r {html,markdown} $out/share/doc/anarchism
+    cp debian/anarchism.svg $out/share/icons/hicolor/scalable/apps
+    cp debian/anarchism.desktop $out/share/applications
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://www.anarchistfaq.org/";
+    changelog = "http://anarchism.pageabode.com/afaq/new.html";
+    description = "Exhaustive exploration of Anarchist theory and practice";
+    longDescription = ''
+      The Anarchist FAQ is an excellent source of information regarding Anarchist
+      (libertarian socialist) theory and practice. It covers all major topics,
+      from the basics of Anarchism to very specific discussions of politics,
+      social organization, and economics.
+    '';
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ davidak ];
+    platforms = with platforms; all;
+  };
+}
diff --git a/pkgs/data/documentation/bgnet/default.nix b/pkgs/data/documentation/bgnet/default.nix
index f5ac07f1b7f..a69a2d7a64f 100644
--- a/pkgs/data/documentation/bgnet/default.nix
+++ b/pkgs/data/documentation/bgnet/default.nix
@@ -1,27 +1,30 @@
-{ stdenv, lib, fetchurl, python, zip, fop }:
+{ stdenv, lib, fetchFromGitHub, python3, pandoc }:
 
 stdenv.mkDerivation {
   pname = "bgnet";
-  version = "3.0.21";
+  # to be found in the Makefile
+  version = "3.1.2";
 
-  src = fetchurl {
-    url = "https://beej.us/guide/bgnet/bgnet.tgz";
-    sha256 = "00ggr5prc5i3w9gaaw2sadfq6haq7lmh0vdilaxx8xz9z5znxvyv";
+  src = fetchFromGitHub {
+    owner = "beejjorgensen";
+    repo = "bgnet";
+    rev = "782a785a35d43c355951b8151628d7c64e4d0346";
+    sha256 = "19w0r3zr71ydd29amqwn8q3npgrpy5kkshyshyji2hw5hky6iy92";
   };
 
-  buildInputs = [ python zip fop ];
-
-  preBuild = ''
-    sed -i "s/#disable=1/disable=1/" bin/bgvalidate
+  buildPhase = ''
     # build scripts need some love
-    patchShebangs .
+    patchShebangs bin/preproc
+
+    make -C src bgnet.html
   '';
 
   installPhase = ''
-    mkdir -p $out
-    mv * $out/
+    install -Dm644 src/bgnet.html $out/share/doc/bgnet/html/index.html
   '';
 
+  nativeBuildInputs = [ python3 pandoc ];
+
   meta = {
     description = "Beej’s Guide to Network Programming";
     homepage = "https://beej.us/guide/bgnet/";
diff --git a/pkgs/data/documentation/man-pages/default.nix b/pkgs/data/documentation/man-pages/default.nix
index 5d58284cb66..58aaf8c47ca 100644
--- a/pkgs/data/documentation/man-pages/default.nix
+++ b/pkgs/data/documentation/man-pages/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "man-pages";
-  version = "5.07";
+  version = "5.08";
 
   src = fetchurl {
     url = "mirror://kernel/linux/docs/man-pages/${pname}-${version}.tar.xz";
-    sha256 = "13b3q7c67r0wkla4pdihl1qh09k67ms2z5jgzfqgpdqqy6mgziwd";
+    sha256 = "1xzp3f6wvw3wplk1a1x09zfv0jp0pdc9wh95czndh3h8z0qwv9yf";
   };
 
   makeFlags = [ "MANDIR=$(out)/share/man" ];
diff --git a/pkgs/data/documentation/scheme-manpages/default.nix b/pkgs/data/documentation/scheme-manpages/default.nix
index 0d57b8e261c..345fb99b7bb 100644
--- a/pkgs/data/documentation/scheme-manpages/default.nix
+++ b/pkgs/data/documentation/scheme-manpages/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "scheme-manpages-unstable";
-  version = "2020-05-17";
+  version = "2020-08-14";
 
   src = fetchFromGitHub {
     owner = "schemedoc";
-    repo = "scheme-manpages";
-    rev = "e97bd240d398e4e5ffc62305e506a2f2428322a4";
-    sha256 = "0c0n3mvghm9c2id8rxfd829plb64nf57jkqgmxf83w7x9jczbqqb";
+    repo = "manpages";
+    rev = "2e99a0aea9c0327e3c2dcfb9b7a2f8f528b4fe43";
+    sha256 = "0ykj4i8mx50mgyz9q63glfnc0mw1lf89hwsflpnbizjda5b4s0fp";
   };
 
   dontBuild = true;
@@ -19,8 +19,8 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "Manpages for Scheme";
-    homepage = "https://github.com/schemedoc/scheme-manpages";
+    description = "Unix manual pages for R6RS and R7RS";
+    homepage = "https://github.com/schemedoc/manpages";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/3270font/default.nix b/pkgs/data/fonts/3270font/default.nix
new file mode 100644
index 00000000000..3338b778415
--- /dev/null
+++ b/pkgs/data/fonts/3270font/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+let
+  version = "2.0.4";
+in
+fetchzip rec {
+  name = "3270font-${version}";
+
+  url = "https://github.com/rbanffy/3270font/releases/download/v${version}/3270_fonts_ece94f6.zip";
+
+  sha256 = "04q7dnrlq5hm30iibh3jafb33m5lwsgb3g9n9i188sg02ydkrsl9";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.woff -d $out/share/fonts/woff
+  '';
+
+  meta = with lib; {
+    description = "Monospaced font based on IBM 3270 terminals";
+    homepage = "https://github.com/rbanffy/3270font";
+    license = [ licenses.bsd3 licenses.ofl ];
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/fonts/agave/default.nix b/pkgs/data/fonts/agave/default.nix
index 585ab6b4292..0c2cd1609f6 100644
--- a/pkgs/data/fonts/agave/default.nix
+++ b/pkgs/data/fonts/agave/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "agave";
-  version = "14";
+  version = "22";
 in fetchurl {
   name = "${pname}-${version}";
   url = "https://github.com/agarick/agave/releases/download/v${version}/Agave-Regular.ttf";
@@ -13,7 +13,7 @@ in fetchurl {
     install -D $downloadedFile $out/share/fonts/truetype/Agave-Regular.ttf
   '';
 
-  sha256 = "14hr6cdn5xbfpszj4qyfqbwmjyrkmi83yl0g9j3y3jw561jwy27j";
+  sha256 = "1jb8f0xcv5z0l5nyx733b6zclswi82vrh2nwyyhbqzgqrl4y1h6s";
 
   meta = with lib; {
     description = "truetype monospaced typeface designed for X environments";
diff --git a/pkgs/data/fonts/alegreya-sans/default.nix b/pkgs/data/fonts/alegreya-sans/default.nix
new file mode 100644
index 00000000000..47984334165
--- /dev/null
+++ b/pkgs/data/fonts/alegreya-sans/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "alegreya-sans";
+  version = "2.008";
+
+  src = fetchFromGitHub {
+    owner = "huertatipografica";
+    repo = "Alegreya-Sans";
+    rev = "v${version}";
+    sha256 = "0xz5lq9fh0pj02ifazhddzh792qkxkz1z6ylj26d93wshc90jl5g";
+  };
+
+  installPhase = ''
+    install -D -m 444 fonts/otf/* -t $out/share/fonts/otf
+    install -D -m 444 fonts/ttf/* -t $out/share/fonts/ttf
+    install -D -m 444 fonts/webfonts/*.woff -t $out/share/fonts/woff
+    install -D -m 444 fonts/webfonts/*.woff2 -t $out/share/fonts/woff2
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Humanist sans serif family with a calligraphic feeling";
+    longDescription = ''
+Alegreya Sans is a humanist sans serif family with a calligraphic feeling that conveys a dynamic and varied rhythm. This gives a pleasant feeling to readers of long texts.
+
+The family follows humanist proportions and principles, just like the serif version of the family, Alegreya. It achieves a ludic and harmonious paragraph through elements carefully designed in an atmosphere of diversity. The italics bring a strong emphasis to the roman styles, and each have seven weights to bring you a wide typographic palette.
+
+Alegreya Sans supports expert latin, greek and cyrillic character sets and provides advanced typography OpenType features such as small caps, dynamic ligatures and fractions, four set of figures, super and subscript characters, ordinals, localized accent forms for spanish, catalan, guaraní, dutch, turkish, romanian, serbian among others.
+
+The Alegreya type system is a "super family", originally intended for literature, and includes sans and serif sister families.
+    '';
+    homepage = "https://www.huertatipografica.com/en/fonts/alegreya-sans-ht";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ Thra11 ];
+  };
+}
diff --git a/pkgs/data/fonts/alegreya/default.nix b/pkgs/data/fonts/alegreya/default.nix
new file mode 100644
index 00000000000..99a7131dc11
--- /dev/null
+++ b/pkgs/data/fonts/alegreya/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "alegreya";
+  version = "2.008";
+
+  src = fetchFromGitHub {
+    owner = "huertatipografica";
+    repo = "Alegreya";
+    rev = "v${version}";
+    sha256 = "1m5xr95y6qxxv2ryvhfck39d6q5hxsr51f530fshg53x48l2mpwr";
+  };
+
+  installPhase = ''
+    install -D -m 444 fonts/otf/* -t $out/share/fonts/otf
+    install -D -m 444 fonts/ttf/* -t $out/share/fonts/ttf
+    install -D -m 444 fonts/webfonts/*.woff -t $out/share/fonts/woff
+    install -D -m 444 fonts/webfonts/*.woff2 -t $out/share/fonts/woff2
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An elegant and versatile font family for comfortable reading";
+    longDescription = ''
+Alegreya is a typeface originally intended for literature. Among its crowning characteristics, it conveys a dynamic and varied rhythm which facilitates the reading of long texts. Also, it provides freshness to the page while referring to the calligraphic letter, not as a literal interpretation, but rather in a contemporary typographic language.
+
+The italic has just as much care and attention to detail in the design as the roman. The bold weights are strong, and the Black weights are really experimental for the genre. There is also a Small Caps sister family.
+
+Not only does Alegreya provide great performance, but also achieves a strong and harmonious text by means of elements designed in an atmosphere of diversity.
+
+The Alegreya type system is a "super family", originally intended for literature, and includes serif and sans serif sister families.
+
+It supports expert latin, greek and cyrillic character sets and provides advanced typography OpenType features such as small caps, dynamic ligatures and fractions, four set of figures, super and subscript characters, ordinals, localized accent forms for spanish, catalan, guaraní, dutch, turkish, romanian, serbian among others.
+
+Alegreya was chosen at the ATypI Letter2 competition in September 2011, and one of the top 14 text type systems. It was also selected in the 2nd Bienal Iberoamericana de Diseño, competition held in Madrid in 2010 and Tipos Latinos.
+
+Designed by Juan Pablo del Peral for Huerta Tipográfica.
+    '';
+    homepage = "https://www.huertatipografica.com/en/fonts/alegreya-ht-pro";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ Thra11 ];
+  };
+}
diff --git a/pkgs/data/fonts/barlow/default.nix b/pkgs/data/fonts/barlow/default.nix
new file mode 100644
index 00000000000..e9257260ea2
--- /dev/null
+++ b/pkgs/data/fonts/barlow/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchzip }:
+let
+  version = "1.422";
+in
+fetchzip rec {
+  name = "barlow-${version}";
+
+  url = "https://tribby.com/fonts/barlow/download/barlow-${version}.zip";
+
+  sha256 = "08ld4c3zq4d1px07lc64i7l8848zsc61ddy3654w2sh0hx5sm5ld";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.eot -d $out/share/fonts/eot
+    unzip -j $downloadedFile \*.woff -d $out/share/fonts/woff
+    unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2
+  '';
+
+  meta = with lib; {
+    description = "A grotesk variable font superfamily";
+    homepage = "https://tribby.com/fonts/barlow/";
+    license = licenses.ofl;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/fonts/caladea/cambria-alias.conf b/pkgs/data/fonts/caladea/cambria-alias.conf
index f763e2a8c34..78452961e8e 100644
--- a/pkgs/data/fonts/caladea/cambria-alias.conf
+++ b/pkgs/data/fonts/caladea/cambria-alias.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- Configure Caladea as a metric-compatible alias for the
        Microsoft Cambria font family. -->
diff --git a/pkgs/data/fonts/carlito/calibri-alias.conf b/pkgs/data/fonts/carlito/calibri-alias.conf
index 294af3b6c78..bbffff23721 100644
--- a/pkgs/data/fonts/carlito/calibri-alias.conf
+++ b/pkgs/data/fonts/carlito/calibri-alias.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- Configure Carlito as a metric-compatible alias for the
        Microsoft Calibri font family. -->
diff --git a/pkgs/data/fonts/cascadia-code/default.nix b/pkgs/data/fonts/cascadia-code/default.nix
index 56894f92095..220d2684eef 100644
--- a/pkgs/data/fonts/cascadia-code/default.nix
+++ b/pkgs/data/fonts/cascadia-code/default.nix
@@ -1,44 +1,21 @@
-{ stdenv, fetchurl }:
+{ lib, fetchzip }:
+let
+  version = "2007.01";
+in
+fetchzip {
+  name = "cascadia-code-${version}";
 
-stdenv.mkDerivation rec {
-  pname = "cascadia-code";
-  version = "1911.21";
+  url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaCode-${version}.zip";
 
-  srcs = [
-    (fetchurl {
-      url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/Cascadia.ttf";
-      sha256 = "1m5ymbngjg3n1g3p6vhcq7d825bwwln9afih651ar3jn7j9njnyg";
-     })
-    (fetchurl {
-      url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaMono.ttf";
-      sha256 = "0vkhm6rhspzd1iayxrzaag099wsc94azfqa3ips7f4x9s8fmbp80";
-    })
-    (fetchurl {
-      url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaMonoPL.ttf";
-      sha256 = "0xxqd8m2ydn97jngp1a3ik1mzpjbm65pfq02a82gfbbvajq5d673";
-    })
-    (fetchurl {
-      url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaPL.ttf";
-      sha256 = "1s83c9flvifd05nbhnk8knwnik7p621sr7i94smknigc7d72wqav";
-    })
-  ];
+  sha256 = "173dpr0k4y5b02ps9426pyaazl2pxj1kw5l5jrikbi6zjv4590gb";
 
-  unpackCmd = ''
-    ttfName=$(basename $(stripHash $curSrc))
-    cp $curSrc ./$ttfName
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
   '';
 
-  sourceRoot = ".";
-
-  installPhase = ''
-    install -Dm444 -t $out/share/fonts/truetype *.ttf
-  '';
-
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "1gkjs7qa409r4ykdy4ik8i0c3z49hzpklw6kyijhhifhyyyzhz4h";
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal";
     homepage = "https://github.com/microsoft/cascadia-code";
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/clearlyU/default.nix b/pkgs/data/fonts/clearlyU/default.nix
index 62002b14dd5..84cf3ebc538 100644
--- a/pkgs/data/fonts/clearlyU/default.nix
+++ b/pkgs/data/fonts/clearlyU/default.nix
@@ -20,19 +20,12 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
-    # install bdf fonts
+    # install otb and bdf fonts
     fontDir="$out/share/fonts"
-    install -m 644 -D *.bdf -t "$fontDir"
-    mkfontdir "$fontDir"
-
-    # install otb fonts
-    fontDir="$otb/share/fonts"
-    install -m 644 -D *.otb -t "$fontDir"
+    install -m 644 -D *.bdf *.otb -t "$fontDir"
     mkfontdir "$fontDir"
   '';
 
-  outputs = [ "out"  "otb" ];
-
   meta = with stdenv.lib; {
     description = "A Unicode font";
     license = licenses.mit;
diff --git a/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf b/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf
index be5f6cca866..e1362ec4f5f 100644
--- a/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf
+++ b/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- Configure Comic Relief as a metric-compatible alias for the
        Microsoft Comic Sans font family. -->
diff --git a/pkgs/data/fonts/corefonts/no-op.conf b/pkgs/data/fonts/corefonts/no-op.conf
index 503e62cfa29..3f8a9b9b544 100644
--- a/pkgs/data/fonts/corefonts/no-op.conf
+++ b/pkgs/data/fonts/corefonts/no-op.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- This configuation is intentionally left empty in order to
        override any other font package that may wish to set up an
diff --git a/pkgs/data/fonts/creep/default.nix b/pkgs/data/fonts/creep/default.nix
index 2e66ac468b0..7c7ad4d5aa9 100644
--- a/pkgs/data/fonts/creep/default.nix
+++ b/pkgs/data/fonts/creep/default.nix
@@ -20,14 +20,10 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
-    install -D -m644 creep.bdf "$out/share/fonts/misc/creep.bdf"
+    install -D -m644 creep.otb creep.bdf -t "$out/share/fonts/misc/"
     mkfontdir "$out/share/fonts/misc"
-    install -D -m644 creep.otb "$otb/share/fonts/misc/creep.otb"
-    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = "A pretty sweet 4px wide pixel font";
     homepage = "https://github.com/romeovs/creep";
diff --git a/pkgs/data/fonts/dina/default.nix b/pkgs/data/fonts/dina/default.nix
index 49c21947820..1a8ac344a53 100644
--- a/pkgs/data/fonts/dina/default.nix
+++ b/pkgs/data/fonts/dina/default.nix
@@ -41,15 +41,13 @@ stdenv.mkDerivation {
   '';
 
   installPhase = ''
-    install -D -m 644 -t "$out/share/fonts/misc" *.pcf.gz
+    install -D -m 644 -t "$out/share/fonts/misc" *.pcf.gz *.otb
     install -D -m 644 -t "$bdf/share/fonts/misc" *.bdf
-    install -D -m 644 -t "$otb/share/fonts/misc" *.otb
     mkfontdir "$out/share/fonts/misc"
     mkfontdir "$bdf/share/fonts/misc"
-    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputs = [ "out" "bdf" "otb" ];
+  outputs = [ "out" "bdf" ];
 
   meta = with stdenv.lib; {
     description = "A monospace bitmap font aimed at programmers";
diff --git a/pkgs/data/fonts/edukai/default.nix b/pkgs/data/fonts/edukai/default.nix
new file mode 100644
index 00000000000..d5b9e25c2eb
--- /dev/null
+++ b/pkgs/data/fonts/edukai/default.nix
@@ -0,0 +1,33 @@
+{ stdenvNoCC, lib, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "edukai";
+  version = "4.0";
+
+  src = fetchzip {
+    name = "${pname}-${version}";
+    url =
+      "http://language.moe.gov.tw/001/Upload/Files/site_content/M0001/edukai-4.0.zip";
+    sha256 = "10m9srvbazvg9gc43943dc89rjzcfc8mm4lx9gb5hnplrn22zrcn";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/
+    mv *.ttf $out/share/fonts/
+  '';
+
+  meta = {
+    description =
+      "The MOE Standard Kai Font, a Chinese font by the Ministry of Education, ROC (Taiwan)";
+    longDescription = ''
+      The MOE Standard Kai Font is a kai (regular srcipt) font
+      provided by
+      the Midistry of Education, Republic of China (Taiwan).
+      It currently includes 13,076 Chinese characters.
+    '';
+    homepage =
+      "http://language.moe.gov.tw/result.aspx?classify_sn=23&subclassify_sn=436&content_sn=47";
+    license = lib.licenses.cc-by-nd-30;
+    maintainers = with lib.maintainers; [ ShamrockLee ];
+  };
+}
diff --git a/pkgs/data/fonts/eduli/default.nix b/pkgs/data/fonts/eduli/default.nix
new file mode 100644
index 00000000000..7ff2ad4446c
--- /dev/null
+++ b/pkgs/data/fonts/eduli/default.nix
@@ -0,0 +1,36 @@
+{ stdenvNoCC, lib, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "eduli";
+  version = "3.0";
+
+  src = fetchzip {
+    name = "${pname}-${version}";
+    url =
+      "http://language.moe.gov.tw/001/Upload/Files/site_content/M0001/MoeLI-3.0.zip";
+    sha256 = "0vpmm2qb429npng0aqkafwgs7cjibq8a3f7bbn9hysbm2lndwxwd";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/
+    for name in *.ttf; do
+      mv "$name" "$out/share/fonts/$(echo $name | sed -r 's/(.*)\(.*\)\.ttf/\1.ttf/')"
+    done
+  '';
+
+  meta = {
+    description =
+      "The MOE Li Font, a clerical Chinese font by the Ministry of Education, ROC (Taiwan)";
+    longDescription = ''
+      The MOE Li Font is a li (clerical srcipt) font
+      provided by
+      the Midistry of Education, Republic of China (Taiwan).
+      It currently includes 4,808 Chinese characters.
+      The clerical script (lishu) is an archaic style of Chinese calligraphy.
+    '';
+    homepage =
+      "http://language.moe.gov.tw/result.aspx?classify_sn=23&subclassify_sn=436&content_sn=49";
+    license = lib.licenses.cc-by-nd-30;
+    maintainers = with lib.maintainers; [ ShamrockLee ];
+  };
+}
diff --git a/pkgs/data/fonts/edusong/default.nix b/pkgs/data/fonts/edusong/default.nix
new file mode 100644
index 00000000000..bf7d39aa20c
--- /dev/null
+++ b/pkgs/data/fonts/edusong/default.nix
@@ -0,0 +1,32 @@
+{ stdenvNoCC, lib, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "edusong";
+  version = "1.0"; # The upstream doesn't provide the version
+
+  src = fetchzip {
+    name = "${pname}-${version}";
+    url =
+      "http://language.moe.gov.tw/001/Upload/Files/site_content/M0001/eduSong_Unicode.zip";
+    sha256 = "1b74wj9hdzlnrvldwlkh21sfhqxwh9qghf1k0fv66zs6n48vb0d4";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/
+    mv *.ttf $out/share/fonts/
+  '';
+
+  meta = {
+    description =
+      "The MOE Standard Song Font, a Chinese font by the Ministry of Education, ROC (Taiwan)";
+    longDescription = ''
+      The MOE Standard Song Font is a Chinese Song font provided by
+      the Midistry of Education, Republic of China (Taiwan).
+      Song or Ming is a category of CKJ typefaces in print.
+    '';
+    homepage =
+      "http://language.moe.gov.tw/result.aspx?classify_sn=23&subclassify_sn=436&content_sn=48";
+    license = lib.licenses.cc-by-nd-30;
+    maintainers = with lib.maintainers; [ ShamrockLee ];
+  };
+}
diff --git a/pkgs/data/fonts/emojione/default.nix b/pkgs/data/fonts/emojione/default.nix
index 6f5168e90d5..71bd2216da2 100644
--- a/pkgs/data/fonts/emojione/default.nix
+++ b/pkgs/data/fonts/emojione/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, inkscape, imagemagick, potrace, svgo, scfbuild }:
+{ stdenv, fetchFromGitHub, inkscape_0, imagemagick, potrace, svgo, scfbuild }:
 
 stdenv.mkDerivation rec {
   pname = "emojione";
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     export HOME="$NIX_BUILD_ROOT"
   '';
 
-  nativeBuildInputs = [ inkscape imagemagick potrace svgo scfbuild ];
+  nativeBuildInputs = [ inkscape_0 imagemagick potrace svgo scfbuild ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/data/fonts/envypn-font/default.nix b/pkgs/data/fonts/envypn-font/default.nix
index c26569166a3..0d69b812c4c 100644
--- a/pkgs/data/fonts/envypn-font/default.nix
+++ b/pkgs/data/fonts/envypn-font/default.nix
@@ -25,14 +25,10 @@ stdenv.mkDerivation {
   '';
 
   installPhase = ''
-    install -D -m 644 -t "$out/share/fonts/misc" *.pcf.gz
-    install -D -m 644 -t "$otb/share/fonts/misc" *.otb
+    install -D -m 644 -t "$out/share/fonts/misc" *.otb *.pcf.gz
     mkfontdir "$out/share/fonts/misc"
-    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = ''
       Readable bitmap font inspired by Envy Code R
diff --git a/pkgs/data/fonts/fontconfig-penultimate/default.nix b/pkgs/data/fonts/fontconfig-penultimate/default.nix
deleted file mode 100644
index 5216cf0e3d8..00000000000
--- a/pkgs/data/fonts/fontconfig-penultimate/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, fetchzip
-, version ? "0.3.5"
-, sha256 ? "1gfgl7qimp76q4z0nv55vv57yfs4kscdr329np701k0xnhncwvrk"
-}:
-
-fetchzip {
-  name = "fontconfig-penultimate-${version}";
-
-  url = "https://github.com/ttuegel/fontconfig-penultimate/archive/${version}.zip";
-  inherit sha256;
-
-  postFetch = ''
-    mkdir -p $out/etc/fonts/conf.d
-    unzip -j $downloadedFile \*.conf -d $out/etc/fonts/conf.d
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/ttuegel/fontconfig-penultimate";
-    description = "Sensible defaults for Fontconfig";
-    license = licenses.asl20;
-    maintainers = [ maintainers.ttuegel ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/data/fonts/gohufont/default.nix b/pkgs/data/fonts/gohufont/default.nix
index e2361ef8163..ac82c82ae3d 100644
--- a/pkgs/data/fonts/gohufont/default.nix
+++ b/pkgs/data/fonts/gohufont/default.nix
@@ -52,19 +52,12 @@ stdenv.mkDerivation rec {
     fontDir="$out/share/consolefonts"
     install -D -m 644 -t "$fontDir" psf/*.psf
 
-    # install the pcf fonts (for xorg applications)
+    # install the pcf and otb fonts (for X11,GTK applications)
     fontDir="$out/share/fonts/misc"
-    install -D -m 644 -t "$fontDir" *.pcf
-    mkfontdir "$fontDir"
-
-    # install the otb fonts (for gtk applications)
-    fontDir="$otb/share/fonts/misc"
-    install -D -m 644 -t "$fontDir" *.otb
+    install -D -m 644 -t "$fontDir" *.pcf *.otb
     mkfontdir "$fontDir"
   '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = ''
       A monospace bitmap font well suited for programming and terminal use
diff --git a/pkgs/data/fonts/ibm-plex/default.nix b/pkgs/data/fonts/ibm-plex/default.nix
index 70657f03281..cd33a834acc 100644
--- a/pkgs/data/fonts/ibm-plex/default.nix
+++ b/pkgs/data/fonts/ibm-plex/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "5.0.0";
+  version = "5.1.3";
 
 in fetchzip {
   name = "ibm-plex-${version}";
@@ -13,7 +13,7 @@ in fetchzip {
     unzip -j $downloadedFile "OpenType/*/*.otf" -d $out/share/fonts/opentype
   '';
 
-  sha256 = "1m8a9p0bryrj05v7sg9kqvyp0ddhgdwd0zjbn0i4l296cj5s2k97";
+  sha256 = "0w07fkhav2lqdyki7ipnkpji5ngwarlhsyliy0ip7cd29x24ys5h";
 
   meta = with lib; {
     description = "IBM Plex Typeface";
diff --git a/pkgs/data/fonts/iosevka/bin.nix b/pkgs/data/fonts/iosevka/bin.nix
index b801451c7be..0f88aa05e4c 100644
--- a/pkgs/data/fonts/iosevka/bin.nix
+++ b/pkgs/data/fonts/iosevka/bin.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchzip }:
 
 let
-  version = "2.3.3";
+  version = "3.4.6";
 in fetchzip {
   name = "iosevka-bin-${version}";
 
@@ -9,10 +9,10 @@ in fetchzip {
 
   postFetch = ''
     mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttc -d $out/share/fonts/iosevka
+    unzip -j $downloadedFile \*.ttc -d $out/share/fonts/truetype
   '';
 
-  sha256 = "1dfm1888rii5kfmkxp5hnx8ycji57cbs5gazpgkxg1mnmn7i35wl";
+  sha256 = "1nab49gkpxahwvvw39xcc32q425qkccr7ffmz87jbcdv71qy7pp9";
 
   meta = with stdenv.lib; {
     homepage = "https://be5invis.github.io/Iosevka/";
diff --git a/pkgs/data/fonts/iosevka/default.nix b/pkgs/data/fonts/iosevka/default.nix
index 4ff0ed5fe49..5167c494fa0 100644
--- a/pkgs/data/fonts/iosevka/default.nix
+++ b/pkgs/data/fonts/iosevka/default.nix
@@ -30,13 +30,13 @@ assert (privateBuildPlan != null) -> set != null;
 stdenv.mkDerivation rec {
   pname = if set != null then "iosevka-${set}" else "iosevka";
 
-  version = "2.3.3";
+  version = "3.2.2";
 
   src = fetchFromGitHub {
     owner = "be5invis";
     repo = "Iosevka";
     rev = "v${version}";
-    sha256 = "0k7xij473g5g0lwhb6qpn70v3n2d025dww3nlb7jwbpnp03zliz0";
+    sha256 = "1wbnp6gr3ywvspwk6i0jn68zwjmsd38arn4n2dkh7mdkrmvah81k";
   };
 
   nativeBuildInputs = [
@@ -69,12 +69,12 @@ stdenv.mkDerivation rec {
 
   buildPhase = ''
     runHook preBuild
-    npm run build --no-update-notifier -- ttf::$pname >/dev/null
+    npm run build --no-update-notifier -- --jCmd=$NIX_BUILD_CORES ttf::$pname >/dev/null
     runHook postBuild
   '';
 
   installPhase = ''
-    fontdir="$out/share/fonts/$pname"
+    fontdir="$out/share/fonts/truetype"
     install -d "$fontdir"
     install "dist/$pname/ttf"/* "$fontdir"
   '';
diff --git a/pkgs/data/fonts/iosevka/package.json b/pkgs/data/fonts/iosevka/package.json
index 8faa397576b..bc772960882 100644
--- a/pkgs/data/fonts/iosevka/package.json
+++ b/pkgs/data/fonts/iosevka/package.json
@@ -1,26 +1,28 @@
 {
 	"name": "iosevka-build-deps",
-	"version": "2.3.3",
+	"version": "3.2.2",
 	"scripts": {
 		"build": "verda -f verdafile.js"
 	},
 	"dependencies": {
-		"caryll-shapeops": "^0.3.1",
-		"colors": "^1.3.3",
-		"libspiro-js": "^0.3.1",
-		"megaminx": "^0.9.0",
+		"@iarna/toml": "^2.2.5",
+		"cldr": "^5.5.4",
+		"ejs": "^3.1.3",
+		"fs-extra": "^9.0.0",
 		"object-assign": "^4.1.1",
-		"otfcc-ttcize": "^0.8.0",
+		"otfcc-ttcize": "^0.10.2",
 		"patel": "^0.33.1",
-		"patrisika-scopes": "^0.11.1",
-		"primitive-quadify-off-curves": "^0.4.0",
-		"stylus": "^0.54.5",
-		"toml": "^3.0.0",
-		"topsort": "0.0.2",
+		"prettier": "^2.0.5",
+		"semver": "^7.1.3",
+		"spiro": "^2.0.0",
+		"stylus": "^0.54.7",
+		"topsort": "^0.0.2",
 		"ttf2woff": "^2.0.1",
-		"ttf2woff2": "^2.0.3",
+		"ttf2woff2": "^3.0.0",
+		"typo-geom": "^0.8.0",
+		"unicode-13.0.0": "^0.8.0",
 		"unorm": "^1.6.0",
-		"verda": "^1.0.0-0",
-		"yargs": "^14.2.0"
+		"verda": "^1.0.1",
+		"which": "^2.0.2"
 	}
 }
diff --git a/pkgs/data/fonts/jetbrains-mono/default.nix b/pkgs/data/fonts/jetbrains-mono/default.nix
index 718b6b218df..b198486327d 100644
--- a/pkgs/data/fonts/jetbrains-mono/default.nix
+++ b/pkgs/data/fonts/jetbrains-mono/default.nix
@@ -1,14 +1,14 @@
 { lib, fetchzip }:
 
 let
-  version = "1.0.6";
+  version = "2.002";
 in
-fetchzip rec {
+fetchzip {
   name = "JetBrainsMono-${version}";
 
   url = "https://github.com/JetBrains/JetBrainsMono/releases/download/v${version}/JetBrainsMono-${version}.zip";
 
-  sha256 = "1198k5zw91g85h6n7rg3y7wcj1nrbby9zlr6zwlmiq0nb37n0d3g";
+  sha256 = "018lhxi9m8aprls6cnpndzdg5snijwzm22m2pxxi6zcqxrcxh8vb";
 
   postFetch = ''
     mkdir -p $out/share/fonts
@@ -21,7 +21,7 @@ fetchzip rec {
   meta = with lib; {
     description = "A typeface made for developers";
     homepage = "https://jetbrains.com/mono/";
-    license = licenses.asl20;
+    license = licenses.ofl;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.all;
   };
diff --git a/pkgs/data/fonts/kanji-stroke-order-font/default.nix b/pkgs/data/fonts/kanji-stroke-order-font/default.nix
index 1c1609b03f1..7b8444c3cde 100644
--- a/pkgs/data/fonts/kanji-stroke-order-font/default.nix
+++ b/pkgs/data/fonts/kanji-stroke-order-font/default.nix
@@ -1,20 +1,22 @@
-{ stdenv, fetchzip }:
+{ stdenv, fetchurl }:
 
 let
-  version = "4.002";
-in fetchzip {
+  version = "4.003";
+  debianVersion = "dfsg-1";
+in stdenv.mkDerivation {
   name = "kanji-stroke-order-font-${version}";
 
-  url = "https://sites.google.com/site/nihilistorguk/KanjiStrokeOrders_v${version}.zip?attredirects=0";
+  src = fetchurl {
+    url = "https://salsa.debian.org/fonts-team/fonts-kanjistrokeorders/-/archive/debian/${version}_${debianVersion}/fonts-kanjistrokeorders-debian-${version}_${debianVersion}.tar.bz2";
+    sha256 = "1a8hxzkrfjz0h5gl9h0panzzsn7cldlklxryyzmpam23g32q6bg1";
+  };
 
-  postFetch = ''
+  installPhase = ''
     mkdir -p $out/share/fonts/kanji-stroke-order $out/share/doc/kanji-stroke-order
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/kanji-stroke-order
-    unzip -j $downloadedFile \*.txt -d $out/share/doc/kanji-stroke-order
+    cp *.ttf $out/share/fonts/kanji-stroke-order
+    cp *.txt $out/share/doc/kanji-stroke-order
   '';
 
-  sha256 = "194ylkx5p7r1461wnnd3hisv5dz1xl07fyxmg8gv47zcwvdmwkc0";
-
   meta = with stdenv.lib; {
     description = "Font containing stroke order diagrams for over 6500 kanji, 180 kana and other characters";
     homepage = "https://sites.google.com/site/nihilistorguk/";
diff --git a/pkgs/data/fonts/liberation-fonts/default.nix b/pkgs/data/fonts/liberation-fonts/default.nix
index 838a8d4c769..edc39ff0a40 100644
--- a/pkgs/data/fonts/liberation-fonts/default.nix
+++ b/pkgs/data/fonts/liberation-fonts/default.nix
@@ -2,6 +2,7 @@
 let
   inherit (python3.pkgs) fonttools;
 
+  commonNativeBuildInputs = [ fontforge python3 ];
   common =
     { version, repo, sha256, nativeBuildInputs, postPatch ? null }:
       stdenv.mkDerivation rec {
@@ -50,13 +51,13 @@ in
   liberation_ttf_v1 = common {
     repo = "liberation-1.7-fonts";
     version = "1.07.5";
-    nativeBuildInputs = [ fontforge ];
+    nativeBuildInputs = commonNativeBuildInputs ;
     sha256 = "1ffl10mf78hx598sy9qr5m6q2b8n3mpnsj73bwixnd4985gsz56v";
   };
   liberation_ttf_v2 = common {
     repo = "liberation-fonts";
     version = "2.1.0";
-    nativeBuildInputs = [ fontforge fonttools ];
+    nativeBuildInputs = commonNativeBuildInputs ++ [ fonttools ];
     postPatch = ''
       substituteInPlace scripts/setisFixedPitch-fonttools.py --replace \
         'font = ttLib.TTFont(fontfile)' \
diff --git a/pkgs/data/fonts/nerdfonts/default.nix b/pkgs/data/fonts/nerdfonts/default.nix
index 35f43c14df4..bf98effb150 100644
--- a/pkgs/data/fonts/nerdfonts/default.nix
+++ b/pkgs/data/fonts/nerdfonts/default.nix
@@ -5,6 +5,9 @@
 # To select only certain fonts, put a list of strings to `fonts`: every key in
 # ./shas.nix is an optional font
 , fonts ? []
+# Whether to enable Windows font variants, their internal font name is limited
+# to 31 characters
+, enableWindowsFonts ? false
 }:
 
 let
@@ -50,6 +53,10 @@ stdenv.mkDerivation rec {
   installPhase = ''
     find -name \*.otf -exec mkdir -p $out/share/fonts/opentype/NerdFonts \; -exec mv {} $out/share/fonts/opentype/NerdFonts \;
     find -name \*.ttf -exec mkdir -p $out/share/fonts/truetype/NerdFonts \; -exec mv {} $out/share/fonts/truetype/NerdFonts \;
+    ${lib.optionalString (! enableWindowsFonts) ''
+      rm -rfv $out/share/fonts/opentype/NerdFonts/*Windows\ Compatible.*
+      rm -rfv $out/share/fonts/truetype/NerdFonts/*Windows\ Compatible.*
+    ''}
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/data/fonts/noto-fonts/default.nix b/pkgs/data/fonts/noto-fonts/default.nix
index e077fc30344..40a6c887439 100644
--- a/pkgs/data/fonts/noto-fonts/default.nix
+++ b/pkgs/data/fonts/noto-fonts/default.nix
@@ -6,11 +6,12 @@
 , fetchzip
 , optipng
 , cairo
-, python3Packages
+, python3
 , pkgconfig
 , pngquant
 , which
 , imagemagick
+, zopfli
 }:
 
 let
@@ -110,25 +111,36 @@ in
   };
 
   noto-fonts-emoji = let
-    version = "unstable-2019-10-22";
+    version = "unstable-2020-08-20";
+    emojiPythonEnv =
+      python3.withPackages (p: with p; [ fonttools nototools ]);
   in stdenv.mkDerivation {
     pname = "noto-fonts-emoji";
     inherit version;
 
     src = fetchFromGitHub {
-      owner = "googlei18n";
+      owner = "googlefonts";
       repo = "noto-emoji";
-      rev = "018aa149d622a4fea11f01c61a7207079da301bc";
-      sha256 = "0qmnnjpp5lza6g5m3ki6hj46p891h9vl42k3acd0qw8i0jj5yn2c";
+      rev = "1bc491419fa2925d018f27bfe702792031be0e68";
+      sha256 = "1vak4s1p4wlwzpnqfb1c2sg62q82gnjpnmqrfz8xl6bd0z55imzy";
     };
 
-    buildInputs = [ cairo ];
-    nativeBuildInputs = [ pngquant optipng which cairo pkgconfig imagemagick ]
-                     ++ (with python3Packages; [ python fonttools nototools ]);
+    nativeBuildInputs = [
+      cairo
+      imagemagick
+      zopfli
+      pngquant
+      which
+      pkgconfig
+      emojiPythonEnv
+    ];
 
     postPatch = ''
-      sed -i 's,^PNGQUANT :=.*,PNGQUANT := ${pngquant}/bin/pngquant,' Makefile
-      patchShebangs flag_glyph_name.py
+      patchShebangs *.py
+      patchShebangs third_party/color_emoji/*.py
+      # remove check for virtualenv, since we handle
+      # python requirements using python.withPackages
+      sed -i '/ifndef VIRTUAL_ENV/,+2d' Makefile
     '';
 
     enableParallelBuilding = true;
@@ -141,7 +153,7 @@ in
     meta = with lib; {
       inherit version;
       description = "Color and Black-and-White emoji fonts";
-      homepage = "https://github.com/googlei18n/noto-emoji";
+      homepage = "https://github.com/googlefonts/noto-emoji";
       license = with licenses; [ ofl asl20 ];
       platforms = platforms.all;
       maintainers = with maintainers; [ mathnerd314 ];
@@ -165,7 +177,7 @@ in
 
     meta = with stdenv.lib; {
       description = "Noto Emoji with extended Blob support";
-      homepage = https://github.com/C1710/blobmoji;
+      homepage = "https://github.com/C1710/blobmoji";
       license = with licenses; [ ofl asl20 ];
       platforms = platforms.all;
       maintainers = with maintainers; [ rileyinman ];
diff --git a/pkgs/data/fonts/noto-fonts/tools.nix b/pkgs/data/fonts/noto-fonts/tools.nix
index 3cc1570161e..6ea26f7c79d 100644
--- a/pkgs/data/fonts/noto-fonts/tools.nix
+++ b/pkgs/data/fonts/noto-fonts/tools.nix
@@ -1,32 +1,62 @@
-{ fetchFromGitHub, lib, fetchpatch, buildPythonPackage, isPy3k, fonttools, numpy, pillow, six, bash }:
+{ fetchFromGitHub, lib, buildPythonPackage, pythonOlder
+, afdko, appdirs, attrs, black, booleanoperations, brotlipy, click
+, defcon, fontmath, fontparts, fontpens, fonttools, fs, lxml
+, mutatormath, pathspec, psautohint, pyclipper, pytz, regex, scour
+, toml, typed-ast, ufonormalizer, ufoprocessor, unicodedata2, zopfli
+, pillow, six, bash, setuptools_scm }:
 
 buildPythonPackage rec {
   pname = "nototools";
-  version = "unstable-2019-10-21";
+  version = "0.2.12";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "googlefonts";
     repo = "nototools";
-    rev = "cae92ce958bee37748bf0602f5d7d97bb6db98ca";
-    sha256 = "1jqr0dz23rjqiyxw1w69l6ry16dwdcf3c6cysiy793g2v7pir2yi";
+    rev = "v${version}";
+    sha256 = "0drmx1asni3g6616fa4gjn5n43qkcf7icvxq9y2krpjxq78wcmc5";
   };
 
-  propagatedBuildInputs = [ fonttools numpy ];
-
-  patches = lib.optionals isPy3k [
-    # Additional Python 3 compat https://github.com/googlefonts/nototools/pull/497
-    (fetchpatch {
-      url = "https://github.com/googlefonts/nototools/commit/ded1f311b3260f015b5c5b80f05f7185392c4eff.patch";
-      sha256 = "0bn0rlbddxicw0h1dnl0cibgj6xjalja2qcm563y7kk3z5cdwhgq";
-    })
-  ];
-
   postPatch = ''
-    sed -ie "s^join(_DATA_DIR_PATH,^join(\"$out/third_party/ucd\",^" nototools/unicode_data.py
+    sed -i 's/use_scm_version=.*,/version="${version}",/' setup.py
   '';
 
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [
+    afdko
+    appdirs
+    attrs
+    black
+    booleanoperations
+    brotlipy
+    click
+    defcon
+    fontmath
+    fontparts
+    fontpens
+    fonttools
+    lxml
+    mutatormath
+    pathspec
+    psautohint
+    pyclipper
+    pytz
+    regex
+    scour
+    toml
+    typed-ast
+    ufonormalizer
+    ufoprocessor
+    unicodedata2
+    zopfli
+  ];
+
   checkInputs = [
-    pillow six bash
+    pillow
+    six
+    bash
   ];
 
   checkPhase = ''
diff --git a/pkgs/data/fonts/profont/default.nix b/pkgs/data/fonts/profont/default.nix
index cba08309fac..6297a8fbb20 100644
--- a/pkgs/data/fonts/profont/default.nix
+++ b/pkgs/data/fonts/profont/default.nix
@@ -28,15 +28,10 @@ stdenv.mkDerivation {
       gzip -n -9 -c "$f" > "$out/share/fonts/misc/$f.gz"
     done
     install -D -m 644 LICENSE -t "$out/share/doc/$pname"
+    install -D -m 644 "$srcOtb/profontn.otb" -t $out/share/fonts/misc
     mkfontdir "$out/share/fonts/misc"
-
-    cd $srcOtb
-    install -D -m 644 profontn.otb -t $otb/share/fonts/misc
-    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     homepage = "https://tobiasjung.name/profont/";
     description = "A monospaced font created to be a most readable font for programming";
diff --git a/pkgs/data/fonts/recursive/default.nix b/pkgs/data/fonts/recursive/default.nix
index 25a111c5804..39d63e7dd99 100644
--- a/pkgs/data/fonts/recursive/default.nix
+++ b/pkgs/data/fonts/recursive/default.nix
@@ -1,20 +1,21 @@
 { lib, fetchzip }:
 
 let
-  version = "1.052";
+  version = "1.064";
 in
 fetchzip {
   name = "recursive-${version}";
 
-  url = "https://github.com/arrowtype/recursive/releases/download/${version}/Recursive-Beta_${version}.zip";
+  url = "https://github.com/arrowtype/recursive/releases/download/${version}/ArrowType-Recursive-${version}.zip";
 
   postFetch = ''
     mkdir -p $out/share/fonts/
-    unzip -j $downloadedFile \*.ttf   -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
     unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2
   '';
 
-  sha256 = "1kam7wcn0rg89gw52pn174sz0r9lc2kjdz88l0jg20gwa3bjbpc6";
+  sha256 = "1pbrqk848nkaambvsz0n8f88xdm8hyib83in27rmal739qh9d1z6";
 
   meta = with lib; {
     homepage = "https://recursive.design/";
diff --git a/pkgs/data/fonts/redhat-official/default.nix b/pkgs/data/fonts/redhat-official/default.nix
index 44eea3774ff..37ca9db9fa0 100644
--- a/pkgs/data/fonts/redhat-official/default.nix
+++ b/pkgs/data/fonts/redhat-official/default.nix
@@ -1,16 +1,21 @@
-{ lib, fetchzip }:
-
-let version = "2.2.0"; in
-fetchzip {
+{ lib, fetchFromGitHub }:
+let
+  version = "2.3.2";
+in
+fetchFromGitHub {
   name = "redhat-official-${version}";
-  url = "https://github.com/RedHatOfficial/RedHatFont/archive/${version}.zip";
+
+  owner = "RedHatOfficial";
+  repo = "RedHatFont";
+  rev = version;
 
   postFetch = ''
-    mkdir -p $out/share/fonts/opentype
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/opentype OTF/*.otf
+    install -m444 -Dt $out/share/fonts/truetype TTF/*.ttf
   '';
 
-  sha256 = "0yb6shgq6jrv3kq9faky66qpdbv4g580c3jl942844grwyngymyj";
+  sha256 = "1afvxmgif61hb17g8inmxvq30vkzwh30mydlqpf0zgvaaz8qdwmv";
 
   meta = with lib; {
     homepage = "https://github.com/RedHatOfficial/RedHatFont";
diff --git a/pkgs/data/fonts/sarasa-gothic/default.nix b/pkgs/data/fonts/sarasa-gothic/default.nix
index 96bfaf191c3..9fce696b6e8 100644
--- a/pkgs/data/fonts/sarasa-gothic/default.nix
+++ b/pkgs/data/fonts/sarasa-gothic/default.nix
@@ -1,12 +1,12 @@
 { lib, fetchurl, libarchive }:
 
 let
-  version = "0.12.6";
+  version = "0.12.11";
 in fetchurl {
   name = "sarasa-gothic-${version}";
 
   url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${version}/sarasa-gothic-ttc-${version}.7z";
-  sha256 = "1b15gsmv2jr0r8xssr8216s8xsghr6w5wm3w3imm3qlh3kqk1qg8";
+  sha256 = "0vcp8583by7pfqinq8p2jx2bn4dqq816x4bxgv05k0kb9ziwj7aj";
 
   recursiveHash = true;
   downloadToTemp = true;
diff --git a/pkgs/data/fonts/siji/default.nix b/pkgs/data/fonts/siji/default.nix
index d1e53bbb757..fb13f82263d 100644
--- a/pkgs/data/fonts/siji/default.nix
+++ b/pkgs/data/fonts/siji/default.nix
@@ -24,15 +24,13 @@ stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    install -m 644 -D pcf/* -t "$out/share/fonts/misc"
+    install -m 644 -D *.otb pcf/* -t "$out/share/fonts/misc"
     install -m 644 -D bdf/* -t "$bdf/share/fonts/misc"
-    install -m 644 -D *.otb -t "$otb/share/fonts/misc"
     mkfontdir "$out/share/fonts/misc"
     mkfontdir "$bdf/share/fonts/misc"
-    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputs = [ "out" "bdf" "otb" ];
+  outputs = [ "out" "bdf" ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/stark/siji";
diff --git a/pkgs/data/fonts/source-han/default.nix b/pkgs/data/fonts/source-han/default.nix
index 7b6bef0198d..28ec08f63b6 100644
--- a/pkgs/data/fonts/source-han/default.nix
+++ b/pkgs/data/fonts/source-han/default.nix
@@ -19,7 +19,8 @@ let
     version = lib.removeSuffix "R" rev;
 
     buildCommand = ''
-      install -m444 -Dt $out/share/fonts/opentype/source-han-${family} ${ttc}
+      mkdir -p $out/share/fonts/opentype/source-han-${family}
+      ln -s ${ttc} $out/share/fonts/opentype/source-han-${family}/SourceHan${Family}.ttc
     '';
 
     meta = {
diff --git a/pkgs/data/fonts/spleen/default.nix b/pkgs/data/fonts/spleen/default.nix
index ace317bf35c..726f60938bb 100644
--- a/pkgs/data/fonts/spleen/default.nix
+++ b/pkgs/data/fonts/spleen/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "spleen";
-  version = "1.8.0";
+  version = "1.8.2";
 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 = "0vaawnav4k2gpwsgxn5rmkd8wyxnwsrbd0ksp749sb7rwfd3nphc";
+  sha256 = "0195d8ssmd8hc0q941z6zwnccffxajv4vylypsndxf28f3ikawby";
 
   meta = with lib; {
     description = "Monospaced bitmap fonts";
diff --git a/pkgs/data/fonts/sudo/default.nix b/pkgs/data/fonts/sudo/default.nix
index 8becdf83f5d..48ca0fea1e4 100644
--- a/pkgs/data/fonts/sudo/default.nix
+++ b/pkgs/data/fonts/sudo/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchzip }:
 
 let
-  version = "0.42";
+  version = "0.50";
 in fetchzip {
   name = "sudo-font-${version}";
-  url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";
-  sha256 = "1rqpwihf2sakrhkaw041r3xc9fhafaqn22n79haqkmwv4vmnspch";
+  url = "https://github.com/jenskutilek/sudo-font/raw/v${version}/dist/sudo.zip";
+  sha256 = "1mk81r9p7ks6av3rj06c6n9vx2qv2hwx6zfbc2mk1filxjirk1ll";
 
   postFetch = ''
     mkdir -p $out/share/fonts/
diff --git a/pkgs/data/fonts/tamsyn/default.nix b/pkgs/data/fonts/tamsyn/default.nix
index 2738925478f..4d1e58a6bb3 100644
--- a/pkgs/data/fonts/tamsyn/default.nix
+++ b/pkgs/data/fonts/tamsyn/default.nix
@@ -29,15 +29,11 @@ in stdenv.mkDerivation {
   '';
 
   installPhase = ''
-    install -m 644 -D *.pcf.gz -t "$out/share/fonts/misc"
+    install -m 644 -D *.otb *.pcf.gz -t "$out/share/fonts/misc"
     install -m 644 -D *.psf.gz -t "$out/share/consolefonts"
-    install -m 644 -D *.otb    -t "$otb/share/fonts/misc"
     mkfontdir "$out/share/fonts/misc"
-    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = "A monospace bitmap font aimed at programmers";
     longDescription = ''Tamsyn is a monospace bitmap font, primarily aimed at
diff --git a/pkgs/data/fonts/tamzen/default.nix b/pkgs/data/fonts/tamzen/default.nix
index 6ecc03d7310..026ec63d670 100644
--- a/pkgs/data/fonts/tamzen/default.nix
+++ b/pkgs/data/fonts/tamzen/default.nix
@@ -14,15 +14,11 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ mkfontscale ];
 
   installPhase = ''
-    install -m 644 -D pcf/*.pcf -t "$out/share/fonts/misc"
+    install -m 644 -D otb/*.otb pcf/*.pcf -t "$out/share/fonts/misc"
     install -m 644 -D psf/*.psf -t "$out/share/consolefonts"
-    install -m 644 -D otb/*.otb -t "$otb/share/fonts/misc"
     mkfontdir "$out/share/fonts/misc"
-    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = "Bitmapped programming font based on Tamsyn";
     longDescription = ''
diff --git a/pkgs/data/fonts/terminus-font/default.nix b/pkgs/data/fonts/terminus-font/default.nix
index fb120e5eec6..bbde1dd252c 100644
--- a/pkgs/data/fonts/terminus-font/default.nix
+++ b/pkgs/data/fonts/terminus-font/default.nix
@@ -35,14 +35,12 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     # install otb fonts (for GTK applications)
-    install -m 644 -D *.otb -t "$otb/share/fonts/misc";
-    mkfontdir "$otb/share/fonts/misc"
+    install -m 644 -D *.otb -t "$out/share/fonts/misc";
+    mkfontdir "$out/share/fonts/misc"
   '';
 
   installTargets = [ "install" "fontdir" ];
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = "A clean fixed width font";
     longDescription = ''
diff --git a/pkgs/data/fonts/tewi/default.nix b/pkgs/data/fonts/tewi/default.nix
index 7b67c1dd52d..7821cc66041 100644
--- a/pkgs/data/fonts/tewi/default.nix
+++ b/pkgs/data/fonts/tewi/default.nix
@@ -38,16 +38,10 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     fontDir="$out/share/fonts/misc"
-    install -m 644 -D out/* -t "$fontDir"
-    mkfontdir "$fontDir"
-
-    fontDir="$otb/share/fonts/misc"
-    install -m 644 -D *.otb -t "$fontDir"
+    install -m 644 -D *.otb out/* -t "$fontDir"
     mkfontdir "$fontDir"
   '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = "A nice bitmap font, readable even at small sizes";
     longDescription = ''
diff --git a/pkgs/data/fonts/twemoji-color-font/default.nix b/pkgs/data/fonts/twemoji-color-font/default.nix
index a9bf3720c07..ed04aa78ae1 100644
--- a/pkgs/data/fonts/twemoji-color-font/default.nix
+++ b/pkgs/data/fonts/twemoji-color-font/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, inkscape, imagemagick, potrace, svgo, scfbuild }:
+{ stdenv, fetchFromGitHub, inkscape_0, imagemagick, potrace, svgo, scfbuild }:
 
 stdenv.mkDerivation rec {
   pname = "twemoji-color-font";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "00pbgqpkq21wl8fs0q1xp49xb10m48b9sz8cdc58flkd2vqfssw2";
   };
 
-  nativeBuildInputs = [ inkscape imagemagick potrace svgo scfbuild ];
+  nativeBuildInputs = [ inkscape_0 imagemagick potrace svgo scfbuild ];
   # silence inkscape errors about non-writable home
   preBuild = "export HOME=\"$NIX_BUILD_ROOT\"";
   makeFlags = [ "SCFBUILD=${scfbuild}/bin/scfbuild" ];
diff --git a/pkgs/data/fonts/twitter-color-emoji/default.nix b/pkgs/data/fonts/twitter-color-emoji/default.nix
index ac3930853cf..8435957fe20 100644
--- a/pkgs/data/fonts/twitter-color-emoji/default.nix
+++ b/pkgs/data/fonts/twitter-color-emoji/default.nix
@@ -3,9 +3,8 @@
 
 { stdenv
 , fetchFromGitHub
-, fetchpatch
 , cairo
-, graphicsmagick
+, imagemagick
 , pkg-config
 , pngquant
 , python3
@@ -15,7 +14,7 @@
 }:
 
 let
-  version = "12.1.5";
+  version = "13.0.1";
 
   twemojiSrc = fetchFromGitHub {
     name = "twemoji";
@@ -25,6 +24,9 @@ let
     sha256 = "0acinlv2l3s1jga2i9wh16mvgkxw4ipzgvjx8c80zd104lpdpgd9";
   };
 
+  pythonEnv =
+    python3.withPackages (p: [ p.fonttools p.nototools ]);
+
 in
 stdenv.mkDerivation rec {
   pname = "twitter-color-emoji";
@@ -44,23 +46,14 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     cairo
-    graphicsmagick
+    imagemagick
     pkg-config
     pngquant
-    python3
-    python3.pkgs.nototools
+    pythonEnv
     which
     zopfli
   ];
 
-  patches = [
-    # ImageMagick -> GraphicsMagick
-    (fetchpatch {
-      url = "https://src.fedoraproject.org/rpms/twitter-twemoji-fonts/raw/07778605d50696f6aa929020e82611a01d254c90/f/noto-emoji-use-gm.patch";
-      sha256 = "06vg16z79s5adyjy8r3mr8fd391b1hi4xkqvbzkmnjwaai7p08lk";
-    })
-  ];
-
   postPatch = let
     templateSubstitutions = stdenv.lib.concatStringsSep "; " [
       ''s#Noto Color Emoji#Twitter Color Emoji#''
@@ -74,7 +67,7 @@ stdenv.mkDerivation rec {
       ''s#http://scripts.sil.org/OFL#http://creativecommons.org/licenses/by/4.0/#''
     ];
   in ''
-    patchShebangs ./flag_glyph_name.py
+    ${noto-fonts-emoji.postPatch}
 
     sed '${templateSubstitutions}' NotoColorEmoji.tmpl.ttx.tmpl > TwitterColorEmoji.tmpl.ttx.tmpl
     pushd ${twemojiSrc.name}/assets/72x72/
@@ -88,6 +81,8 @@ stdenv.mkDerivation rec {
     "EMOJI=TwitterColorEmoji"
     "EMOJI_SRC_DIR=${twemojiSrc.name}/assets/72x72"
     "BODY_DIMENSIONS=76x72"
+    # twemoji contains some codepoints noto doesn't like
+    "BYPASS_SEQUENCE_CHECK=True"
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/data/fonts/ucs-fonts/default.nix b/pkgs/data/fonts/ucs-fonts/default.nix
index 7168607ce09..71c42c46b5d 100644
--- a/pkgs/data/fonts/ucs-fonts/default.nix
+++ b/pkgs/data/fonts/ucs-fonts/default.nix
@@ -42,16 +42,14 @@ stdenv.mkDerivation {
   '';
 
   installPhase = ''
-    install -m 644 -D *.pcf.gz -t "$out/share/fonts/misc"
-    install -m 644 -D *.bdf    -t "$bdf/share/fonts/misc"
-    install -m 644 -D *.otb    -t "$otb/share/fonts/misc"
+    install -m 644 -D *.otb *.pcf.gz -t "$out/share/fonts/misc"
+    install -m 644 -D *.bdf -t "$bdf/share/fonts/misc"
 
     mkfontdir "$out/share/fonts/misc"
     mkfontdir "$bdf/share/fonts/misc"
-    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputs = [ "out" "bdf" "otb" ];
+  outputs = [ "out" "bdf" ];
 
   meta = with stdenv.lib; {
     homepage = "https://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html";
diff --git a/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix b/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
index 5b07adf822e..b1da06ccd8b 100644
--- a/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
+++ b/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
@@ -1,12 +1,12 @@
 { lib, fetchzip }:
 
 let
-  version = "1.0";
+  version = "2.0";
 in
 fetchzip {
   name = "ultimate-oldschool-pc-font-pack-${version}";
-  url = "https://int10h.org/oldschool-pc-fonts/download/ultimate_oldschool_pc_font_pack_v${version}.zip";
-  sha256 = "0hid4dgqfy2w26734vcw2rxmpacd9vd1r2qpdr9ww1n3kgc92k9y";
+  url = "https://int10h.org/oldschool-pc-fonts/download/oldschool_pc_font_pack_v${version}_ttf.zip";
+  sha256 = "0z0fw6ni7iq806y4m83xrfx46r14xxxql09ch2gxjqi062awqyh8";
 
   postFetch= ''
     mkdir -p $out/share/fonts/truetype
diff --git a/pkgs/data/fonts/uni-vga/default.nix b/pkgs/data/fonts/uni-vga/default.nix
index 58a5dbcfdbc..65db46ca2ca 100644
--- a/pkgs/data/fonts/uni-vga/default.nix
+++ b/pkgs/data/fonts/uni-vga/default.nix
@@ -34,23 +34,20 @@ stdenv.mkDerivation {
   '';
 
   installPhase = ''
-    # install pcf (for X11 applications)
-    install -m 644 -D *.pcf.gz -t "$out/share/fonts"
+    # install pcf and otb (for X11 and GTK applications)
+    install -m 644 -D *.otb *.pcf.gz -t "$out/share/fonts"
     mkfontdir "$out/share/fonts"
 
     # install bdf font
     install -m 644 -D *.bdf -t "$bdf/share/fonts"
     mkfontdir "$bdf/share/fonts"
 
-    # install otb font (for GTK applications)
-    install -m 644 -D *.otb -t "$otb/share/fonts"
-    mkfontdir "$otb/share/fonts"
   '' + optionalString stdenv.isLinux ''
     # install psf (for linux virtual terminal)
     install -m 644 -D *.psf.gz -t "$out/share/consolefonts"
   '';
 
-  outputs = [ "out" "bdf" "otb" ];
+  outputs = [ "out" "bdf" ];
 
   meta = {
     description = "Unicode VGA font";
diff --git a/pkgs/data/fonts/unifont/default.nix b/pkgs/data/fonts/unifont/default.nix
index 460efc2c581..685b5c452f2 100644
--- a/pkgs/data/fonts/unifont/default.nix
+++ b/pkgs/data/fonts/unifont/default.nix
@@ -30,8 +30,8 @@ stdenv.mkDerivation rec {
   installPhase =
     ''
       # install otb fonts
-      install -m 644 -D unifont.otb "$otb/share/fonts/unifont.otb"
-      mkfontdir "$otb/share/fonts"
+      install -m 644 -D unifont.otb "$out/share/fonts/unifont.otb"
+      mkfontdir "$out/share/fonts"
 
       # install pcf and ttf fonts
       install -m 644 -D ${pcf} $out/share/fonts/unifont.pcf.gz
@@ -41,8 +41,6 @@ stdenv.mkDerivation rec {
       mkfontscale
     '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = "Unicode font for Base Multilingual Plane";
     homepage = "http://unifoundry.com/unifont.html";
diff --git a/pkgs/data/fonts/uw-ttyp0/default.nix b/pkgs/data/fonts/uw-ttyp0/default.nix
index 96cde444d2b..b0e58faed60 100644
--- a/pkgs/data/fonts/uw-ttyp0/default.nix
+++ b/pkgs/data/fonts/uw-ttyp0/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
     install -m 644 -D psf/*.psf -t "$fontDir"
 
     # install otb fonts
-    fontDir="$otb/share/fonts/X11/misc"
+    fontDir="$out/share/fonts/X11/misc"
     install -m 644 -D otb/*.otb -t "$fontDir"
     mkfontdir "$fontDir"
   '';
@@ -80,8 +80,6 @@ stdenv.mkDerivation rec {
     runHook postConfigure
   '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = "Monospace bitmap screen fonts for X11";
     homepage = "https://people.mpi-inf.mpg.de/~uwe/misc/uw-ttyp0/";
diff --git a/pkgs/data/fonts/victor-mono/default.nix b/pkgs/data/fonts/victor-mono/default.nix
index 89b13585eb0..940c0d76c46 100644
--- a/pkgs/data/fonts/victor-mono/default.nix
+++ b/pkgs/data/fonts/victor-mono/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "victor-mono";
-  version = "1.3.1";
+  version = "1.4.1";
 in fetchFromGitHub rec {
   name = "${pname}-${version}";
 
@@ -26,7 +26,7 @@ in fetchFromGitHub rec {
     unzip -j VictorMonoAll.zip \*.otf -d $out/share/fonts/opentype/${pname}
   '';
 
-  sha256 = "1yj91rhs9pd705406r4lqabdfzjclbz837nzm6z1rziy6mbpd61s";
+  sha256 = "1g3jjrqd2fiw2hdifhff2fn20p5a0xfma3964f67ibdyri976zq5";
 
   meta = with lib; {
     description = "Free programming font with cursive italics and ligatures";
diff --git a/pkgs/data/fonts/vista-fonts-chs/no-op.conf b/pkgs/data/fonts/vista-fonts-chs/no-op.conf
index 2d00b624488..20d1b49d158 100644
--- a/pkgs/data/fonts/vista-fonts-chs/no-op.conf
+++ b/pkgs/data/fonts/vista-fonts-chs/no-op.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- This configuation is intentionally left empty in order to
        override any other font package that may wish to set up an
diff --git a/pkgs/data/fonts/vista-fonts/no-op.conf b/pkgs/data/fonts/vista-fonts/no-op.conf
index 503e62cfa29..3f8a9b9b544 100644
--- a/pkgs/data/fonts/vista-fonts/no-op.conf
+++ b/pkgs/data/fonts/vista-fonts/no-op.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- This configuation is intentionally left empty in order to
        override any other font package that may wish to set up an
diff --git a/pkgs/data/fonts/xits-math/default.nix b/pkgs/data/fonts/xits-math/default.nix
index db0ed425dee..dfb38973edd 100644
--- a/pkgs/data/fonts/xits-math/default.nix
+++ b/pkgs/data/fonts/xits-math/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xits-math";
-  version = "1.301";
+  version = "1.302";
 
   src = fetchFromGitHub {
     owner = "alif-type";
     repo = "xits";
     rev = "v${version}";
-    sha256 = "043g0gnjc7wn1szvrs0rc1vvrq1qmhqh45b0y2kwrlxsgprpv8ll";
+    sha256 = "1x3r505dylz9rz8dj98h5n9d0zixyxmvvhnjnms9qxdrz9bxy9g1";
   };
 
   nativeBuildInputs = (with python3Packages; [ python fonttools fontforge ]);
diff --git a/pkgs/data/icons/bibata-cursors/default.nix b/pkgs/data/icons/bibata-cursors/default.nix
index 66ed71f1f9e..670746d5d1a 100644
--- a/pkgs/data/icons/bibata-cursors/default.nix
+++ b/pkgs/data/icons/bibata-cursors/default.nix
@@ -1,4 +1,4 @@
-{ stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape, xcursorgen, python3 }:
+{ stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape_0, xcursorgen, python3 }:
 
 let
   py = python3.withPackages(ps: [ ps.pillow ]);
@@ -25,7 +25,7 @@ in stdenvNoCC.mkDerivation rec {
 
   nativeBuildInputs  = [
     gnome-themes-extra
-    inkscape
+    inkscape_0
     xcursorgen
     py
   ];
diff --git a/pkgs/data/icons/bibata-cursors/extra.nix b/pkgs/data/icons/bibata-cursors/extra.nix
index 7977566cb61..c353a049f07 100644
--- a/pkgs/data/icons/bibata-cursors/extra.nix
+++ b/pkgs/data/icons/bibata-cursors/extra.nix
@@ -1,4 +1,4 @@
-{ stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape, xcursorgen, python3 }:
+{ stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape_0, xcursorgen, python3 }:
 
 let
   py = python3.withPackages(ps: [ ps.pillow ]);
@@ -25,7 +25,7 @@ in stdenvNoCC.mkDerivation rec {
 
   nativeBuildInputs  = [
     gnome-themes-extra
-    inkscape
+    inkscape_0
     xcursorgen
     py
   ];
diff --git a/pkgs/data/icons/bibata-cursors/translucent.nix b/pkgs/data/icons/bibata-cursors/translucent.nix
index 90e1102e124..4b215d071ab 100644
--- a/pkgs/data/icons/bibata-cursors/translucent.nix
+++ b/pkgs/data/icons/bibata-cursors/translucent.nix
@@ -1,4 +1,4 @@
-{ stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape, xcursorgen }:
+{ stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape_0, xcursorgen }:
 
 stdenvNoCC.mkDerivation rec {
   pname = "bibata-cursors-translucent";
@@ -18,7 +18,7 @@ stdenvNoCC.mkDerivation rec {
 
   nativeBuildInputs  = [
     gnome-themes-extra
-    inkscape
+    inkscape_0
     xcursorgen
   ];
 
diff --git a/pkgs/data/icons/capitaine-cursors/default.nix b/pkgs/data/icons/capitaine-cursors/default.nix
index 09491b904ef..73ae4fe915f 100644
--- a/pkgs/data/icons/capitaine-cursors/default.nix
+++ b/pkgs/data/icons/capitaine-cursors/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub
-, inkscape, xcursorgen, bc }:
+, inkscape_0, xcursorgen, bc }:
 
 stdenv.mkDerivation rec {
   pname = "capitaine-cursors";
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs  =[
-    inkscape
+    inkscape_0
     xcursorgen
     bc
   ];
diff --git a/pkgs/data/icons/elementary-xfce-icon-theme/default.nix b/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
index 3a82c313296..52f9c8c821f 100644
--- a/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
+++ b/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-xfce-icon-theme";
-  version = "0.15";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "shimmerproject";
     repo = "elementary-xfce";
     rev = "v${version}";
-    sha256 = "1f6qvpzxz759znishmr4b22n540y18glv41wmy91r78sa4g6x4sh";
+    sha256 = "1rl15kh9c7qxw4pvwmw44fb4v3vwh6zin4wpx55bnvm5j76y6p3f";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/icons/iconpack-jade/default.nix b/pkgs/data/icons/iconpack-jade/default.nix
index 1bfa8092a32..619fd0205b5 100644
--- a/pkgs/data/icons/iconpack-jade/default.nix
+++ b/pkgs/data/icons/iconpack-jade/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "iconpack-jade";
-  version = "1.22";
+  version = "1.23";
 
   src = fetchFromGitHub {
     owner = "madmaxms";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1piypv8wdxnfiy6kgh7i3wi52m4fh4x874kh01qjmymssyirn17x";
+    sha256 = "1q29ikfssn1vmwws3dry4ssq6b44afd9sb7dwv3rdqg0frabpj1m";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/pkgs/data/icons/iconpack-obsidian/default.nix b/pkgs/data/icons/iconpack-obsidian/default.nix
index 01443578057..8fe21aabe36 100644
--- a/pkgs/data/icons/iconpack-obsidian/default.nix
+++ b/pkgs/data/icons/iconpack-obsidian/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, fetchFromGitHub, gtk3, gnome-icon-theme, hicolor-icon-theme }:
+{ stdenv, fetchFromGitHub, gtk3, gnome-icon-theme, mint-x-icons, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "iconpack-obsidian";
-  version = "4.12";
+  version = "4.13";
 
   src = fetchFromGitHub {
     owner = "madmaxms";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0139ps707mh1zkypaxsqzy58mmsm5whdxxx2nbsmqfswb7qisz2b";
+    sha256 = "1hh0hnd2d08l4n5r73fkngv08f8230pp94k9qq8xgmchvjfg6j8y";
   };
 
   nativeBuildInputs = [ gtk3 ];
 
-  propagatedBuildInputs = [ gnome-icon-theme hicolor-icon-theme ];
-  # still missing parent themes: Ambiant-MATE, Mint-X, Faenza-Dark, KFaenza
+  propagatedBuildInputs = [ gnome-icon-theme mint-x-icons hicolor-icon-theme ];
+  # still missing parent themes: Ambiant-MATE, Faenza-Dark, KFaenza
 
   dontDropIconThemeCache = true;
 
diff --git a/pkgs/data/icons/iso-flags/default.nix b/pkgs/data/icons/iso-flags/default.nix
new file mode 100644
index 00000000000..b329a151c72
--- /dev/null
+++ b/pkgs/data/icons/iso-flags/default.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, fetchFromGitHub
+, perl
+, perlPackages
+, inkscape
+, pngcrush
+, librsvg
+, targets ? [ "all" ]
+}:
+
+stdenv.mkDerivation {
+  pname = "iso-flags";
+  version = "unstable-18012020";
+
+  src = fetchFromGitHub {
+    owner = "joielechong";
+    repo = "iso-country-flags-svg-collection";
+    rev = "9ebbd577b9a70fbfd9a1931be80c66e0d2f31a9d";
+    sha256 = "17bm7w4md56xywixfvp7vr3d6ihvxk3383i9i4rpmgm6qa9dyxdl";
+  };
+
+  nativeBuildInputs = [
+    perl
+    inkscape
+    librsvg
+    (perl.withPackages(pp: with pp; [ JSON XMLLibXML ]))
+  ];
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  buildFlags = targets;
+
+  installPhase = ''
+    mkdir -p $out/share
+    mv build $out/share/iso-flags
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/joielechong/iso-country-flags-svg-collection";
+    description = "248 country flag SVG & PNG icons with different icon styles";
+    license = [ licenses.publicDomain ];
+    platforms = platforms.linux; # the output assets should work anywhere, but unsure about the tools to build them...
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/pkgs/data/icons/luna-icons/default.nix b/pkgs/data/icons/luna-icons/default.nix
new file mode 100644
index 00000000000..3125df5fe1c
--- /dev/null
+++ b/pkgs/data/icons/luna-icons/default.nix
@@ -0,0 +1,52 @@
+{ stdenv
+, fetchFromGitHub
+, gtk3
+, breeze-icons
+, hicolor-icon-theme
+, pantheon
+}:
+
+stdenv.mkDerivation rec {
+  pname = "luna-icons";
+  version = "2020-08-09";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = "d32aacabcc018212c460833327e1b54a716a5a23";
+    sha256 = "1f1ypxcvmd97afn7612i8gxmbrj80vx45vqrrh3n0p65jw5lg7zc";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    breeze-icons
+    hicolor-icon-theme
+    pantheon.elementary-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/icons
+    cp -a Luna* $out/share/icons
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Icon pack based on marwaita and papirus icons";
+    homepage = "https://github.com/darkomarko42/Luna-Icons";
+    license = [ licenses.gpl3Only ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/pkgs/data/icons/numix-cursor-theme/default.nix b/pkgs/data/icons/numix-cursor-theme/default.nix
index d0411a8c569..6445628e9bb 100644
--- a/pkgs/data/icons/numix-cursor-theme/default.nix
+++ b/pkgs/data/icons/numix-cursor-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, inkscape, xcursorgen }:
+{ stdenv, fetchFromGitHub, inkscape_0, xcursorgen }:
 
 stdenv.mkDerivation rec {
   version = "1.1";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "0p8h48wsy3z5dz9vdnp01fpn6q8ky0h74l5qgixlip557bsa1spi";
   };
 
-  nativeBuildInputs = [ inkscape xcursorgen ];
+  nativeBuildInputs = [ inkscape_0 xcursorgen ];
 
   buildPhase = ''
     patchShebangs .
diff --git a/pkgs/data/icons/numix-icon-theme-circle/default.nix b/pkgs/data/icons/numix-icon-theme-circle/default.nix
index 3c991cf1fc8..f43ca473f0d 100644
--- a/pkgs/data/icons/numix-icon-theme-circle/default.nix
+++ b/pkgs/data/icons/numix-icon-theme-circle/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "numix-icon-theme-circle";
-  version = "19.12.27";
+  version = "20.07.11";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "0za44h7f4vk37yl30xlaa6w76maiipb6p63gl9hl1rshdn9nxq0y";
+    sha256 = "0vj3d3wb12ksnkm99s32k7nrf9m5j83zzvkd0rwk8l0b30df975j";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/pkgs/data/icons/numix-icon-theme-square/default.nix b/pkgs/data/icons/numix-icon-theme-square/default.nix
index 9cebdc33106..51a2100d3aa 100644
--- a/pkgs/data/icons/numix-icon-theme-square/default.nix
+++ b/pkgs/data/icons/numix-icon-theme-square/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "numix-icon-theme-square";
-  version = "19.12.27";
+  version = "20.07.11";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "0pjbi2g7wk8gyr4lvp8fvcb8z29kc3l6v19a45axgadnc609hqw7";
+    sha256 = "07jy8l2r6grn7pabn3dnkc8j7xdykl7k57br30c6v61ss8paf2rw";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/pkgs/data/icons/papirus-icon-theme/default.nix b/pkgs/data/icons/papirus-icon-theme/default.nix
index 37bde66c3df..9227ceb4915 100644
--- a/pkgs/data/icons/papirus-icon-theme/default.nix
+++ b/pkgs/data/icons/papirus-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "papirus-icon-theme";
-  version = "20200602";
+  version = "20200801";
 
   src = fetchFromGitHub {
     owner = "PapirusDevelopmentTeam";
     repo = pname;
     rev = version;
-    sha256 = "0cms5dn8qfasi9xpfcq1hsdyvcb39vkh97mjvi7zrng4iyihq06y";
+    sha256 = "0w9ks8izxv7mkh82fnclfcdf6mif991dsbbnxsqmcbvljrmjval2";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/misc/cldr-emoji-annotation/default.nix b/pkgs/data/misc/cldr-emoji-annotation/default.nix
index d74a9cebcea..8164012b69a 100644
--- a/pkgs/data/misc/cldr-emoji-annotation/default.nix
+++ b/pkgs/data/misc/cldr-emoji-annotation/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cldr-emoji-annotation";
-  version = "36.12.120200305_0";
+  version = "37.0_13.0_0_2";
 
   src = fetchFromGitHub {
     owner = "fujiwarat";
     repo = "cldr-emoji-annotation";
     rev = version;
-    sha256 = "1zg4czaqnfjkd4hx06h8q56z8iiw22crwqr69w94s4hy9zcanfrs";
+    sha256 = "0la3h6l58j9jfjvzwz65x56ijx7sppirwpqbqc06if4c2g0kzswj";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/misc/hackage/default.nix b/pkgs/data/misc/hackage/default.nix
index b269042fd06..b1b8d6ce902 100644
--- a/pkgs/data/misc/hackage/default.nix
+++ b/pkgs/data/misc/hackage/default.nix
@@ -1,6 +1,6 @@
 { fetchurl }:
 
 fetchurl {
-  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/711b59b900ee0b267ebb86e41dbc83ad7fb69629.tar.gz";
-  sha256 = "0vfg5pilhqi59826iciz15bmylhfdlxmmkps7samzbilsf21j0sy";
+  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/edb0920a8dbbd592d67a781d0b905728515ab623.tar.gz";
+  sha256 = "08yvpwzw7c3xw3w970ysykj44vglqfiq057kx0axk81s68v83rcy";
 }
diff --git a/pkgs/data/misc/iana-etc/default.nix b/pkgs/data/misc/iana-etc/default.nix
index 2b2d2d19065..4f9a98dccff 100644
--- a/pkgs/data/misc/iana-etc/default.nix
+++ b/pkgs/data/misc/iana-etc/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchzip }:
 
 let
-  version = "20200407";
+  version = "20200729";
 in fetchzip {
   name = "iana-etc-${version}";
   url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
-  sha256 = "1zmqim0l4lz5xbq7w2wi48fzsvg2msyw6c80dzw4vxll31frpy18";
+  sha256 = "05cymmisfvpyd7fwzc6axvm5fsi1v6hzs0pjr4xp1i95wvpz7qpm";
 
   postFetch = ''
     tar -xzvf $downloadedFile --strip-components=1
diff --git a/pkgs/data/misc/nixos-artwork/wallpapers.nix b/pkgs/data/misc/nixos-artwork/wallpapers.nix
index 6e6b6e92678..36242db4621 100644
--- a/pkgs/data/misc/nixos-artwork/wallpapers.nix
+++ b/pkgs/data/misc/nixos-artwork/wallpapers.nix
@@ -46,6 +46,15 @@ in
 
 rec {
 
+  dracula = mkNixBackground {
+    name = "dracula-2020-07-02";
+    description = "Nix background based on the Dracula color palette";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/03c6c20be96c38827037d2238357f2c777ec4aa5/wallpapers/nix-wallpaper-dracula.png";
+      sha256 = "07ly21bhs6cgfl7pv4xlqzdqm44h22frwfhdqyd4gkn2jla1waab";
+    };
+  };
+
   gnome-dark = simple-dark-gray-bottom;
 
   mosaic-blue = mkNixBackground {
@@ -57,6 +66,24 @@ rec {
     };
   };
 
+  nineish = mkNixBackground {
+    name = "nineish-2019-12-04";
+    description = "Nix background inspired by simpler times";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/da01f68d21ddfdc9f1c6e520c2170871c81f1cf5/wallpapers/nix-wallpaper-nineish.png";
+      sha256 = "1mwvnmflp0z1biyyhfz7mjn7i1nna94n7jyns3na2shbfkaq7i0h";
+    };
+  };
+
+  nineish-dark-gray = mkNixBackground {
+    name = "nineish-dark-gray-2020-07-02";
+    description = "Dark gray Nix background inspired by simpler times";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/f07707cecfd89bc1459d5dad76a3a4c5315efba1/wallpapers/nix-wallpaper-nineish-dark-gray.png";
+      sha256 = "07zl1dlxqh9dav9pibnhr2x1llywwnyphmzcdqaby7dz5js184ly";
+    };
+  };
+
   simple-blue = mkNixBackground {
     name = "simple-blue-2016-02-19";
     description = "Simple blue background for Nix";
diff --git a/pkgs/data/misc/osinfo-db/default.nix b/pkgs/data/misc/osinfo-db/default.nix
index 87425defb87..d12eec8d8e3 100644
--- a/pkgs/data/misc/osinfo-db/default.nix
+++ b/pkgs/data/misc/osinfo-db/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, osinfo-db-tools, intltool, libxml2 }:
+{ stdenv, fetchurl, osinfo-db-tools, gettext, libxml2 }:
 
 stdenv.mkDerivation rec {
   pname = "osinfo-db";
-  version = "20200529";
+  version = "20200804";
 
   src = fetchurl {
     url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.xz";
-    sha256 = "0mbrf9j5wmjhc6jixvhp4jqyxixh1717lqrmzmipdg99xnzba81n";
+    sha256 = "1gx8yky41kz2f03r7gvxgq8naysnrf8apsss61xqaxmmyd080z0v";
   };
 
-  nativeBuildInputs = [ osinfo-db-tools intltool libxml2 ];
+  nativeBuildInputs = [ osinfo-db-tools gettext libxml2 ];
 
   phases = [ "installPhase" ];
 
diff --git a/pkgs/data/misc/spdx-license-list-data/default.nix b/pkgs/data/misc/spdx-license-list-data/default.nix
index 20931c8ad24..6d2c58afdb2 100644
--- a/pkgs/data/misc/spdx-license-list-data/default.nix
+++ b/pkgs/data/misc/spdx-license-list-data/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "spdx-license-list-data";
-  version = "3.9";
+  version = "3.10";
 
   src = fetchFromGitHub {
     owner = "spdx";
     repo = "license-list-data";
     rev = "v${version}";
-    sha256 = "0qf0g7a3jby8sngdjdic30xrb6ch56d6gzpphs8lkm6giir142rj";
+    sha256 = "1zza0jrs82112dcjqgkyck2b7hv4kg9s10pmlripi6c1rs37av14";
   };
 
   phases = [ "unpackPhase" "installPhase" ];
diff --git a/pkgs/data/themes/adapta/default.nix b/pkgs/data/themes/adapta/default.nix
index ca8e908009f..a9a80143fc9 100644
--- a/pkgs/data/themes/adapta/default.nix
+++ b/pkgs/data/themes/adapta/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, parallel, sassc, inkscape, libxml2, glib, gdk-pixbuf, librsvg, gtk-engine-murrine, gnome3 }:
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, parallel, sassc, inkscape_0, libxml2, glib, gdk-pixbuf, librsvg, gtk-engine-murrine, gnome3 }:
 
 stdenv.mkDerivation rec {
   pname = "adapta-gtk-theme";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     pkgconfig
     parallel
     sassc
-    inkscape
+    inkscape_0
     libxml2
     glib.dev
     gnome3.gnome-shell
diff --git a/pkgs/data/themes/adwaita-qt/default.nix b/pkgs/data/themes/adwaita-qt/default.nix
index dce625de5e3..ace93fa4495 100644
--- a/pkgs/data/themes/adwaita-qt/default.nix
+++ b/pkgs/data/themes/adwaita-qt/default.nix
@@ -1,14 +1,14 @@
-{ mkDerivation, lib, fetchFromGitHub, cmake, ninja, qtbase, pantheon }:
+{ mkDerivation, lib, fetchFromGitHub, nix-update-script, cmake, ninja, qtbase, pantheon }:
 
 mkDerivation rec {
   pname = "adwaita-qt";
-  version = "1.1.3";
+  version = "1.1.4";
 
   src = fetchFromGitHub {
     owner = "FedoraQt";
     repo = pname;
     rev = version;
-    sha256 = "1zfah1ybfgi4dag3lxqap99giwwng9b3lgcick1ciylz6vwf2gwh";
+    sha256 = "19s97wm96g3828dp8m85j3lsn1n6h5h2zqk4652hcqcgq6xb6gv5";
   };
 
   nativeBuildInputs = [
@@ -27,7 +27,7 @@ mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/data/themes/arc/default.nix b/pkgs/data/themes/arc/default.nix
index 9fba432656a..1e36eb2f99a 100644
--- a/pkgs/data/themes/arc/default.nix
+++ b/pkgs/data/themes/arc/default.nix
@@ -7,18 +7,18 @@
 , gnome3
 , gtk-engine-murrine
 , optipng
-, inkscape
+, inkscape_0
 }:
 
 stdenv.mkDerivation rec {
   pname = "arc-theme";
-  version = "20200513";
+  version = "20200819";
 
   src = fetchFromGitHub {
     owner = "jnsh";
     repo = pname;
     rev = version;
-    sha256 = "1xiaf31v3j040hflhf09kpznc93a5fqs92m5jf79y46w3dgpia0p";
+    sha256 = "1l5sc4r5jp3526r4p32fszny0cw6pkb45cp424hq0s0k344z9px6";
   };
 
   nativeBuildInputs = [
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     pkgconfig
     sassc
     optipng
-    inkscape
+    inkscape_0
     gtk3
   ];
 
diff --git a/pkgs/data/themes/cde-motif-theme/default.nix b/pkgs/data/themes/cdetheme/default.nix
index cc83047e3cc..ae738604751 100644
--- a/pkgs/data/themes/cde-motif-theme/default.nix
+++ b/pkgs/data/themes/cdetheme/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, python2Packages }:
 
 stdenv.mkDerivation rec {
-  pname = "cde-motif-theme";
+  pname = "cdetheme";
   version = "1.3";
 
   src = fetchFromGitHub {
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.all;
     maintainers = with maintainers; [ gnidorah ];
+    hydraPlatforms = [];
   };
 }
diff --git a/pkgs/data/themes/jade1/default.nix b/pkgs/data/themes/jade1/default.nix
index 7398c417933..47bb7242db3 100644
--- a/pkgs/data/themes/jade1/default.nix
+++ b/pkgs/data/themes/jade1/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "theme-jade1";
-  version = "1.7";
+  version = "1.8";
 
   src = fetchFromGitHub {
     owner = "madmaxms";
     repo = "theme-jade-1";
     rev = "v${version}";
-    sha256 = "19vg95bf0ylmfhg0frs2k0k7c0wfn933h06wrklb9p5qy84hfig3";
+    sha256 = "1nvn2ghkdhilrsjpvl7r92aldvbs0nx0xc82jwrfaahi87dgfs8x";
   };
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
diff --git a/pkgs/data/themes/marwaita-manjaro/default.nix b/pkgs/data/themes/marwaita-manjaro/default.nix
new file mode 100644
index 00000000000..3217175ebd7
--- /dev/null
+++ b/pkgs/data/themes/marwaita-manjaro/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita-manjaro";
+  version = "2020-08-29";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = "d97e852931732ae5134784d11b332eadd71b6bbf";
+    sha256 = "1qa2mlc6k82i4fkgbkahjz3fhghcf8rx1ayxw0r4xl21mkna7bfy";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Manjaro Style (green version) of Marwaita GTK theme";
+    homepage = "https://www.pling.com/p/1351213/";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/marwaita/default.nix b/pkgs/data/themes/marwaita/default.nix
new file mode 100644
index 00000000000..291f437c3ea
--- /dev/null
+++ b/pkgs/data/themes/marwaita/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita";
+  version = "7.6.1";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "1n7flwrngwh6gmh72j40apf8qk52162m93hsfhgxzrivkhg37zi0";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "GTK theme supporting Budgie, Pantheon, Mate, Xfce4 and GNOME desktops";
+    homepage = "https://www.pling.com/p/1239855/";
+    license = licenses.cc0;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/matcha/default.nix b/pkgs/data/themes/matcha/default.nix
index 5edc2990c02..69b1908b812 100644
--- a/pkgs/data/themes/matcha/default.nix
+++ b/pkgs/data/themes/matcha/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "matcha-gtk-theme";
-  version = "2020-06-18";
+  version = "2020-07-27";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "1hgwlzyfxl8yw93r0vsnvi51a4k5bn5qw1axhldy5l928qhmd5x7";
+    sha256 = "09kzxd92zqissk0bk3aw06hsa05riq88xvwhlxfw2agig13cfrhw";
   };
 
   buildInputs = [ gdk-pixbuf librsvg ];
diff --git a/pkgs/data/themes/mojave/default.nix b/pkgs/data/themes/mojave/default.nix
index 751dd690d11..a98218b6392 100644
--- a/pkgs/data/themes/mojave/default.nix
+++ b/pkgs/data/themes/mojave/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fetchurl, glib, gtk-engine-murrine, gtk_engines, inkscape, optipng, sassc, which }:
+{ stdenv, fetchFromGitHub, fetchurl, glib, gtk-engine-murrine, gtk_engines, inkscape_0, optipng, sassc, which }:
 
 stdenv.mkDerivation rec {
   pname = "mojave-gtk-theme";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   sourceRoot = "source";
 
-  nativeBuildInputs = [ glib inkscape optipng sassc which ];
+  nativeBuildInputs = [ glib inkscape_0 optipng sassc which ];
 
   buildInputs = [ gtk_engines ];
 
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
              src/assets/xfwm4/render-assets.sh
     do
       substituteInPlace $f \
-        --replace /usr/bin/inkscape ${inkscape}/bin/inkscape \
+        --replace /usr/bin/inkscape ${inkscape_0}/bin/inkscape \
         --replace /usr/bin/optipng ${optipng}/bin/optipng
     done
 
diff --git a/pkgs/data/themes/numix-solarized/default.nix b/pkgs/data/themes/numix-solarized/default.nix
index ae8a1d7145e..a3da60e243e 100644
--- a/pkgs/data/themes/numix-solarized/default.nix
+++ b/pkgs/data/themes/numix-solarized/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, python3, sass, glib, gdk-pixbuf, libxml2,
-  inkscape, optipng, gtk-engine-murrine
+  inkscape_0, optipng, gtk-engine-murrine
 }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "1kda0lyqi3cxh163fbj8yyi6jj6pf0y980k4s0cmyi3hkh4cqyd5";
   };
 
-  nativeBuildInputs = [ python3 sass glib gdk-pixbuf libxml2 inkscape optipng ];
+  nativeBuildInputs = [ python3 sass glib gdk-pixbuf libxml2 inkscape_0 optipng ];
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     patchShebangs .
     substituteInPlace Makefile --replace '$(DESTDIR)'/usr $out
     substituteInPlace scripts/render-assets.sh \
-      --replace /usr/bin/inkscape ${inkscape}/bin/inkscape \
+      --replace /usr/bin/inkscape ${inkscape_0}/bin/inkscape \
       --replace /usr/bin/optipng ${optipng}/bin/optipng
   '';
 
diff --git a/pkgs/data/themes/obsidian2/default.nix b/pkgs/data/themes/obsidian2/default.nix
index 3fb3af9436e..79c27a8c6e9 100644
--- a/pkgs/data/themes/obsidian2/default.nix
+++ b/pkgs/data/themes/obsidian2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "theme-obsidian2";
-  version = "2.12";
+  version = "2.13";
 
   src = fetchFromGitHub {
     owner = "madmaxms";
     repo = "theme-obsidian-2";
     rev = "v${version}";
-    sha256 = "1srl6wm6fjdc5pi9fjl5nghn4q40hn5jcxxl8qjvz8lkczylynnb";
+    sha256 = "1chbz1cbkbfzk8835x1dywk38d7wjh90myajgk5f7v2zgnvbya23";
   };
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
diff --git a/pkgs/data/themes/plata/default.nix b/pkgs/data/themes/plata/default.nix
index 6437bb1543d..2e23e9a5bbe 100644
--- a/pkgs/data/themes/plata/default.nix
+++ b/pkgs/data/themes/plata/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitLab, autoreconfHook, pkgconfig, parallel
-, sassc, inkscape, libxml2, glib, gdk-pixbuf, librsvg, gtk-engine-murrine
+, sassc, inkscape_0, libxml2, glib, gdk-pixbuf, librsvg, gtk-engine-murrine
 , cinnamonSupport ? true
 , gnomeFlashbackSupport ? true
 , gnomeShellSupport ? true
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     pkgconfig
     parallel
     sassc
-    inkscape
+    inkscape_0
     libxml2
     glib.dev
   ]
diff --git a/pkgs/data/themes/pop-gtk/default.nix b/pkgs/data/themes/pop-gtk/default.nix
index 730f7754d8f..feb2ddebb39 100644
--- a/pkgs/data/themes/pop-gtk/default.nix
+++ b/pkgs/data/themes/pop-gtk/default.nix
@@ -4,7 +4,7 @@
 , ninja
 , sassc
 , gtk3
-, inkscape
+, inkscape_0
 , optipng
 , gtk-engine-murrine
 , gdk-pixbuf
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pop-gtk-theme";
-  version = "2020-04-22";
+  version = "2020-06-30";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = "gtk-theme";
-    rev = "b3f98dfd61cfff81f69cdc7f57bce7a9efaa36f4";
-    sha256 = "0vhcc694x33sgcpbqkrc5bycbd7017k4iii0mjjxgd22jd5lzgkb";
+    rev = "8c31be9f9257375bf7a049069cb4ecbac7d281a1";
+    sha256 = "16dxxazpllcxlbiblynqq4b65wfn9k1jab8dl69l819v73z303ky";
   };
 
   nativeBuildInputs = [
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     ninja
     sassc
     gtk3
-    inkscape
+    inkscape_0
     optipng
     python3
   ];
@@ -48,9 +48,9 @@ stdenv.mkDerivation rec {
     for file in $(find -name render-\*.sh); do
       substituteInPlace "$file" \
         --replace 'INKSCAPE="/usr/bin/inkscape"' \
-                  'INKSCAPE="inkscape"' \
+                  'INKSCAPE="${inkscape_0}/bin/inkscape"' \
         --replace 'OPTIPNG="/usr/bin/optipng"' \
-                  'OPTIPNG="optipng"'
+                  'OPTIPNG="${optipng}/bin/optipng"'
     done
   '';
 
diff --git a/pkgs/data/themes/venta/default.nix b/pkgs/data/themes/venta/default.nix
new file mode 100644
index 00000000000..1086aaeb709
--- /dev/null
+++ b/pkgs/data/themes/venta/default.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "venta";
+  version = "2020-08-20";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = "f9b7ea560def5c9d25a14015d265ba559d3501ca";
+    sha256 = "13rdavspz1q3zk2h04jpd77hxdcifg42kd71qq13ryg4b5yzqqgb";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Venta* $out/share/themes
+    rm $out/share/themes/*/COPYING
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Gtk theme based on windows 10 style";
+    homepage = "https://www.pling.com/p/1386774/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/yaru/default.nix b/pkgs/data/themes/yaru/default.nix
index b63d70b3c69..8e8a56d09da 100644
--- a/pkgs/data/themes/yaru/default.nix
+++ b/pkgs/data/themes/yaru/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yaru";
-  version = "20.04.7";
+  version = "20.10.2";
 
   src = fetchFromGitHub {
     owner = "ubuntu";
     repo = "yaru";
     rev = version;
-    sha256 = "05fpr928kgyly7ac3zf6hfw9wqgc7fjn6980ih54iqc2qffcglsk";
+    sha256 = "0vxs17nbahrdix1q9xj06nflm344lfgj2mrafsvyfcr2isn61iv6";
   };
 
   nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
diff --git a/pkgs/desktops/cinnamon/cinnamon-common/default.nix b/pkgs/desktops/cinnamon/cinnamon-common/default.nix
new file mode 100644
index 00000000000..a67f04473c8
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cinnamon-common/default.nix
@@ -0,0 +1,156 @@
+{ atk
+, autoreconfHook
+, cacert
+, fetchpatch
+, dbus
+, cinnamon-control-center
+, cinnamon-desktop
+, cinnamon-menus
+, cjs
+, fetchFromGitHub
+, gdk-pixbuf
+, libgnomekbd
+, glib
+, gobject-introspection
+, gtk3
+, intltool
+, json-glib
+, callPackage
+, libsoup
+, libstartup_notification
+, libXtst
+, muffin
+, networkmanager
+, pkgconfig
+, polkit
+, stdenv
+, wrapGAppsHook
+, libxml2
+, gtk-doc
+, gnome3
+, python3
+, keybinder3
+, cairo
+, xapps
+, upower
+, nemo
+, libnotify
+, accountsservice
+, gnome-online-accounts
+, glib-networking
+, pciutils
+, timezonemap
+}:
+
+let
+  libcroco = callPackage ./libcroco.nix { };
+in
+stdenv.mkDerivation rec {
+  pname = "cinnamon-common";
+  version = "4.4.1";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = "cinnamon";
+    rev = version;
+    sha256 = "0sv7nqd1l6c727qj30dcgdkvfh1wxpszpgmbdyh58ilmc8xklnqd";
+  };
+
+  patches = [
+    # remove dbus-glib
+    (fetchpatch {
+      url = "https://github.com/linuxmint/cinnamon/commit/ce99760fa15c3de2e095b9a5372eeaca646fbed1.patch";
+      sha256 = "0p2sbdi5w7sgblqbgisb6f8lcj1syzq5vlk0ilvwaqayxjylg8gz";
+    })
+  ];
+
+  buildInputs = [
+    # TODO: review if we really need this all
+    (python3.withPackages (pp: with pp; [ dbus-python setproctitle pygobject3 pycairo xapp pillow pytz tinycss pam pexpect ]))
+    atk
+    cacert
+    cinnamon-control-center
+    cinnamon-desktop
+    cinnamon-menus
+    cjs
+    dbus
+    gdk-pixbuf
+    glib
+    gtk3
+    json-glib
+    libcroco
+    libsoup
+    libstartup_notification
+    libXtst
+    muffin
+    networkmanager
+    pkgconfig
+    polkit
+    libxml2
+    libgnomekbd
+
+    # bindings
+    cairo
+    gnome3.caribou
+    keybinder3
+    upower
+    xapps
+    timezonemap
+    nemo
+    libnotify
+    accountsservice
+
+    # gsi bindings
+    gnome-online-accounts
+    glib-networking # for goa
+  ];
+
+  nativeBuildInputs = [
+    gobject-introspection
+    autoreconfHook
+    wrapGAppsHook
+    intltool
+    gtk-doc
+  ];
+
+  autoreconfPhase = ''
+    GTK_DOC_CHECK=false NOCONFIGURE=1 bash ./autogen.sh
+  '';
+
+  configureFlags = [ "--disable-static" "--with-ca-certificates=${cacert}/etc/ssl/certs/ca-bundle.crt" "--with-libxml=${libxml2.dev}/include/libxml2" "--enable-gtk-doc=no" ];
+
+  postPatch = ''
+    substituteInPlace src/Makefile.am \
+      --replace "\$(libdir)/muffin" "${muffin}/lib/muffin"
+    patchShebangs autogen.sh
+
+    find . -type f -exec sed -i \
+      -e s,/usr/share/cinnamon,$out/share/cinnamon,g \
+      -e s,/usr/share/locale,/run/current-system/sw/share/locale,g \
+      {} +
+
+    sed "s|/usr/share/sounds|/run/current-system/sw/share/sounds|g" -i ./files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py
+
+    sed "s|/usr/bin/upload-system-info|${xapps}/bin/upload-system-info|g" -i ./files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
+    sed "s|upload-system-info|${xapps}/bin/upload-system-info|g" -i ./files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
+
+    sed "s|/usr/bin/cinnamon-control-center|${cinnamon-control-center}/bin/cinnamon-control-center|g" -i ./files/usr/bin/cinnamon-settings
+    # this one really IS optional
+    sed "s|/usr/bin/gnome-control-center|/run/current-system/sw/bin/gnome-control-center|g" -i ./files/usr/bin/cinnamon-settings
+
+    sed "s|\"/usr/lib\"|\"${cinnamon-control-center}/lib\"|g" -i ./files/usr/share/cinnamon/cinnamon-settings/bin/capi.py
+
+    # another bunch of optional stuff
+    sed "s|/usr/bin|/run/current-system/sw/bin|g" -i ./files/usr/bin/cinnamon-launcher
+
+    sed 's|"lspci"|"${pciutils}/bin/lspci"|g' -i ./files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/linuxmint/cinnamon";
+    description = "The Cinnamon desktop environment";
+    license = [ licenses.gpl2 ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/pkgs/desktops/cinnamon/cinnamon-common/libcroco.nix b/pkgs/desktops/cinnamon/cinnamon-common/libcroco.nix
new file mode 100644
index 00000000000..c6f6e350c9f
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cinnamon-common/libcroco.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, libxml2, glib, gnome3 }:
+
+stdenv.mkDerivation rec {
+  pname = "libcroco";
+  version = "0.6.13";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn";
+  };
+
+  outputs = [ "out" "dev" ];
+  outputBin = "dev";
+
+  configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libxml2 glib ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "GNOME CSS2 parsing and manipulation toolkit";
+    homepage = https://gitlab.gnome.org/GNOME/libcroco;
+    license = licenses.lgpl2;
+    platforms = platforms.unix;
+  };
+}
+
diff --git a/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix b/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
new file mode 100644
index 00000000000..97f0138de98
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
@@ -0,0 +1,111 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, autoreconfHook
+, glib
+, dbus
+, gettext
+, cinnamon-desktop
+, cinnamon-common
+, intltool
+, libxslt
+, gtk3
+, libnotify
+, libxkbfile
+, cinnamon-menus
+, libgnomekbd
+, libxklavier
+, networkmanager
+, libwacom
+, gnome3
+, libtool
+, wrapGAppsHook
+, tzdata
+, glibc
+, gobject-introspection
+, python3
+, pam
+, accountsservice
+, cairo
+, xapps
+, xorg
+, iso-flags-png-320x420
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cinnamon-screensaver";
+  version = "4.4.0";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "03v41wk1gmgmyl31j7a3pav52gfv2faibj1jnpj3ycwcv4cch5w5";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    autoreconfHook
+    wrapGAppsHook
+    gettext
+    intltool
+    dbus # for configure.ac
+    libxslt
+    libtool
+  ];
+
+  buildInputs = [
+    # from configure.ac
+    gobject-introspection
+    gtk3
+    glib
+
+    xorg.libXext
+    xorg.libXinerama
+    xorg.libX11
+    xorg.libXrandr
+
+    (python3.withPackages (pp: with pp; [ pygobject3 setproctitle xapp pycairo ]))
+    xapps
+    pam
+    accountsservice
+    cairo
+    cinnamon-desktop
+    cinnamon-common
+    gnome3.libgnomekbd
+    gnome3.caribou
+
+    # things
+    iso-flags-png-320x420
+  ];
+
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; # TODO: https://github.com/NixOS/nixpkgs/issues/36468
+
+  postPatch = ''
+    patchShebangs autogen.sh
+
+    sed ${stdenv.lib.escapeShellArg "s&DBUS_SESSION_SERVICE_DIR=.*&DBUS_SESSION_SERVICE_DIR=`$PKG_CONFIG --variable session_bus_services_dir dbus-1 | sed -e 's,/usr/share,\${datarootdir},g' | sed 's|^|$out|'`&g"} -i configure.ac
+
+    # cscreensaver hardcodes absolute paths everywhere. Nuke from orbit.
+    find . -type f -exec sed -i \
+      -e s,/usr/share/locale,/run/current-system/sw/share/locale,g \
+      -e s,/usr/lib/cinnamon-screensaver,$out/lib,g \
+      -e s,/usr/share/cinnamon-screensaver,$out/share,g \
+      -e s,/usr/share/iso-flag-png,${iso-flags-png-320x420}/share/iso-flags-png,g \
+      {} +
+
+    sed "s|/usr/share/locale|/run/current-system/sw/share/locale|g" -i ./src/cinnamon-screensaver-main.py
+  '';
+
+  autoreconfPhase = ''
+    NOCONFIGURE=1 bash ./autogen.sh
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/linuxmint/cinnamon-screensaver";
+    description = "The Cinnamon screen locker and screensaver program";
+    license = [ licenses.gpl2 licenses.lgpl2 ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/pkgs/desktops/cinnamon/cinnamon-translations/default.nix b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
index ce630999147..a679f15887b 100644
--- a/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-translations";
-  version = "4.6.0";
+  version = "4.6.2";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "04rlgcbz02n9kj1w12xa56b7f4x10y6g91hsl70zmag568mdclzz";
+    sha256 = "0zaghha62ibhg3rir6mrfy1z3v7p7v83b6glhmj9s51nxd86fyv6";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/cinnamon/default.nix b/pkgs/desktops/cinnamon/default.nix
index b08c9e468f8..5d054e4646d 100644
--- a/pkgs/desktops/cinnamon/default.nix
+++ b/pkgs/desktops/cinnamon/default.nix
@@ -1,10 +1,23 @@
 { pkgs, lib }:
 
 lib.makeScope pkgs.newScope (self: with self; {
+  iso-flags-png-320x420 = pkgs.iso-flags.overrideAttrs(p: p // {
+    buildPhase = "make png-country-320x240-fancy";
+    # installPhase = "mkdir -p $out/share && mv build/png-country-4x2-fancy/res-320x240 $out/share/iso-flags-png-320x420";
+    installPhase = "mkdir -p $out/share && mv build/png-country-4x2-fancy/res-320x240 $out/share/iso-flags-png";
+  });
+
+  iso-flags-svg = pkgs.iso-flags.overrideAttrs(p: p // {
+    buildPhase = "mkdir -p $out/share";
+    installPhase = "mv svg $out/share/iso-flags-svg";
+  });
+
+  cinnamon-common = callPackage ./cinnamon-common { };
   cinnamon-control-center = callPackage ./cinnamon-control-center { };
   cinnamon-desktop = callPackage ./cinnamon-desktop { };
   cinnamon-menus = callPackage ./cinnamon-menus { };
   cinnamon-translations = callPackage ./cinnamon-translations { };
+  cinnamon-screensaver = callPackage ./cinnamon-screensaver { };
   cinnamon-session = callPackage ./cinnamon-session { };
   cinnamon-settings-daemon = callPackage ./cinnamon-settings-daemon { };
   cjs = callPackage ./cjs { };
diff --git a/pkgs/desktops/deepin/dde-api/default.nix b/pkgs/desktops/deepin/dde-api/default.nix
deleted file mode 100644
index 011be982df5..00000000000
--- a/pkgs/desktops/deepin/dde-api/default.nix
+++ /dev/null
@@ -1,127 +0,0 @@
-{ stdenv
-, buildGoPackage
-, fetchFromGitHub
-, pkgconfig
-, alsaLib
-, bc
-, blur-effect
-, coreutils
-, deepin
-, deepin-gettext-tools
-, fontconfig
-, go
-, go-dbus-factory
-, go-gir-generator
-, go-lib
-, grub2
-, gtk3
-, libcanberra
-, libgudev
-, librsvg
-, poppler
-, pulseaudio
-, rfkill
-, xcur2png
-}:
-
-buildGoPackage rec {
-  pname = "dde-api";
-  version = "5.0.0";
-
-  goPackagePath = "pkg.deepin.io/dde/api";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0iv4krj6dqdknwvmax7aj40k1h96259kqcfnljadrwpl7cvsvp5p";
-  };
-
-  goDeps = ./deps.nix;
-
-  nativeBuildInputs = [
-    pkgconfig
-    deepin-gettext-tools # build
-    deepin.setupHook
-
-    # TODO: using $PATH to find run time executable does not work with cross compiling
-    bc          # run (to adjust grub theme?)
-    blur-effect # run (is it really needed?)
-    coreutils   # run (is it really needed?)
-    fontconfig  # run (is it really needed?)
-    rfkill      # run
-    xcur2png    # run
-    grub2       # run (is it really needed?)
-  ];
-
-  buildInputs = [
-    go-dbus-factory      # needed
-    go-gir-generator     # needed
-    go-lib               # build
-
-    alsaLib     # needed
-    #glib        # ? arch
-    gtk3        # build run
-    libcanberra # build run
-    libgudev    # needed
-    librsvg     # build run
-    poppler     # build run
-    pulseaudio  # needed
-    #locales     # run (locale-helper needs locale-gen, which is unavailable on NixOS?)
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-
-    fixPath $out /usr/lib/deepin-api \
-      lunar-calendar/main.go \
-      misc/services/com.deepin.api.CursorHelper.service \
-      misc/services/com.deepin.api.Graphic.service \
-      misc/services/com.deepin.api.LunarCalendar.service \
-      misc/services/com.deepin.api.Pinyin.service \
-      misc/system-services/com.deepin.api.Device.service \
-      misc/system-services/com.deepin.api.LocaleHelper.service \
-      misc/system-services/com.deepin.api.SoundThemePlayer.service \
-      misc/systemd/system/deepin-shutdown-sound.service \
-      theme_thumb/gtk/gtk.go \
-      thumbnails/gtk/gtk.go
-    fixPath $out /boot/grub Makefile     # TODO: confirm where to install grub themes
-    fixPath $out /var Makefile
-
-    # This package wants to install polkit local authority files into
-    # /var/lib. Nix does not allow a package to install files into /var/lib
-    # because it is outside of the Nix store and should contain applications
-    # state information (persistent data modified by programs as they
-    # run). Polkit looks for them in both /etc/polkit-1 and
-    # /var/lib/polkit-1 (with /etc having priority over /var/lib). An
-    # work around is to install them to $out/etc and simlnk them to
-    # /etc in the deepin module.
-
-    sed -i -e "s,/var/lib/polkit-1,/etc/polkit-1," Makefile
-  '';
-
-  buildPhase = ''
-    export GOCACHE="$TMPDIR/go-cache";
-    make -C go/src/${goPackagePath}
-  '';
-
-  installPhase = ''
-    make install PREFIX="$out" SYSTEMD_LIB_DIR="$out/lib" -C go/src/${goPackagePath}
-    mv $out/share/gocode $out/share/go
-    remove-references-to -t ${go} $out/lib/deepin-api/*
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Go-lang bindings for dde-daemon";
-    homepage = "https://github.com/linuxdeepin/dde-api";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-api/deps.nix b/pkgs/desktops/deepin/dde-api/deps.nix
deleted file mode 100644
index 5ebe1f6af95..00000000000
--- a/pkgs/desktops/deepin/dde-api/deps.nix
+++ /dev/null
@@ -1,102 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/alecthomas/template";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/template";
-      rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
-      sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev = "f65c72e2690dc4b403c8bd637baf4611cd4c069b";
-      sha256 = "04jyqm7m3m01ppfy1f9xk4qvrwvs78q9zml6llyf2b3v5k6b2bbc";
-    };
-  }
-  {
-    goPackagePath = "github.com/cryptix/wav";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cryptix/wav";
-      rev = "8bdace674401f0bd3b63c65479b6a6ff1f9d5e44";
-      sha256 = "18nyqv0ic35fs9fny8sj84c00vbxs8mnric6vr6yl42624fh5id6";
-    };
-  }
-  {
-    goPackagePath = "github.com/disintegration/imaging";
-    fetch = {
-      type = "git";
-      url = "https://github.com/disintegration/imaging";
-      rev = "9aab30e6aa535fe3337b489b76759ef97dfaf362";
-      sha256 = "015amm3x989hl3r4gxnixj602fl9j8z53n0lrq804cbfbk7a31fw";
-    };
-  }
-  {
-    goPackagePath = "github.com/fogleman/gg";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fogleman/gg";
-      rev = "4dc34561c649343936bb2d29e23959bd6d98ab12";
-      sha256 = "1x1finzdrr80dd3r7wvf7zb184yjf4dawz7s581p2dr64dcialww";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/freetype";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/freetype";
-      rev = "e2365dfdc4a05e4b8299a783240d4a7d5a65d4e4";
-      sha256 = "194w3djc6fv1rgcjqds085b9fq074panc5vw582bcb8dbfzsrqxc";
-    };
-  }
-  {
-    goPackagePath = "github.com/linuxdeepin/go-x11-client";
-    fetch = {
-      type = "git";
-      url = "https://github.com/linuxdeepin/go-x11-client";
-      rev = "b5b01565d224d5ccd5a4143d9099acceb23e182a";
-      sha256 = "1lnffjp8bqy6f8caw6drg1js6hny5w7432riqchcrcd4q85d94rs";
-    };
-  }
-  {
-    goPackagePath = "github.com/nfnt/resize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nfnt/resize";
-      rev = "83c6a9932646f83e3267f353373d47347b6036b2";
-      sha256 = "005cpiwq28krbjf0zjwpfh63rp4s4is58700idn24fs3g7wdbwya";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/image";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/image";
-      rev = "e7c1f5e7dbb87d8921928a6d9fc52fb31ce73b24";
-      sha256 = "0czp897aicqw1dgybj0hc2zzwb20rhqkdqm7siqci3yk7yk9cymf";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "daa7c04131f568e31c51927b359a2d197a357058";
-      sha256 = "17gbfvb5iqyayzw0zd6q218zsbf7x74rflvn18wkxvsw95n1y54h";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v2";
-      rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-]
diff --git a/pkgs/desktops/deepin/dde-calendar/default.nix b/pkgs/desktops/deepin/dde-calendar/default.nix
deleted file mode 100644
index 094f3447c6b..00000000000
--- a/pkgs/desktops/deepin/dde-calendar/default.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, qttools
-, deepin-gettext-tools
-, dtkcore
-, dtkwidget
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dde-calendar";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1zzr3crkz4l5l135y0m53vqhv7fkrbvbspk8295swz9gsm3f7ah9";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkgconfig
-    qttools
-    deepin-gettext-tools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    patchShebangs translate_generation.sh
-    patchShebangs translate_desktop.sh
-
-    fixPath $out /usr com.deepin.Calendar.service
-
-    sed -i translate_desktop.sh \
-      -e "s,/usr/bin/deepin-desktop-ts-convert,deepin-desktop-ts-convert,"
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Calendar for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/dde-calendar";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-control-center/default.nix b/pkgs/desktops/deepin/dde-control-center/default.nix
deleted file mode 100644
index 850e39b9367..00000000000
--- a/pkgs/desktops/deepin/dde-control-center/default.nix
+++ /dev/null
@@ -1,150 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, deepin
-, qttools
-, qtdeclarative
-, networkmanager
-, qtsvg
-, qtx11extras
-, dtkcore
-, dtkwidget
-, geoip
-, gsettings-qt
-, dde-network-utils
-, networkmanager-qt
-, xorg
-, mtdev
-, fontconfig
-, freetype
-, dde-api
-, dde-daemon
-, qt5integration
-, deepin-desktop-base
-, deepin-desktop-schemas
-, dbus
-, systemd
-, dde-qt-dbus-factory
-, qtmultimedia
-, qtbase
-, glib
-, gnome3
-, which
-, substituteAll
-, tzdata
-, wrapGAppsHook
-}:
-
-mkDerivation rec {
-  pname = "dde-control-center";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "10bx8bpvi3ib32a3l4nyb1j0iq3bch8jm9wfm6d5v0ym1zb92x3b";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    deepin.setupHook
-    pkgconfig
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    dde-api
-    dde-daemon
-    dde-network-utils
-    dde-qt-dbus-factory
-    deepin-desktop-base
-    deepin-desktop-schemas
-    dtkcore
-    dtkwidget
-    fontconfig
-    freetype
-    geoip
-    glib
-    gnome3.networkmanager-l2tp
-    gnome3.networkmanager-openconnect
-    gnome3.networkmanager-openvpn
-    gnome3.networkmanager-vpnc
-    gsettings-qt
-    mtdev
-    networkmanager-qt
-    qt5integration
-    qtbase
-    qtdeclarative
-    qtmultimedia
-    qtsvg
-    qttools
-    qtx11extras
-    xorg.libX11
-    xorg.libXext
-    xorg.libXrandr
-    xorg.libxcb
-  ];
-
-  cmakeFlags = [
-    "-DDISABLE_SYS_UPDATE=YES"
-    "-DDCC_DISABLE_GRUB=YES"
-  ];
-
-  patches = [
-    (substituteAll {
-      src = ./fix-paths.patch;
-      nmcli = "${networkmanager}/bin/nmcli";
-      which = "${which}/bin/which";
-      # not packaged
-      # dman = "${deepin-manual}/bin/dman";
-      inherit tzdata;
-      # exclusive to deepin linux?
-      # allows to synchronize configuration files to cloud networks
-      # deepin_sync = "${deepin-sync}";
-    })
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-
-    patchShebangs translate_ts2desktop.sh
-    patchShebangs translate_generation.sh
-    patchShebangs translate_desktop2ts.sh
-
-    fixPath $out /usr dde-control-center-autostart.desktop \
-      com.deepin.dde.ControlCenter.service \
-      src/frame/widgets/utils.h
-
-    substituteInPlace dde-control-center.desktop \
-      --replace "dbus-send" "${dbus}/bin/dbus-send"
-    substituteInPlace com.deepin.controlcenter.addomain.policy \
-      --replace "/bin/systemctl" "/run/current-system/sw/bin/systemctl"
-  '';
-
-  dontWrapQtApps = true;
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      "''${qtWrapperArgs[@]}"
-    )
-  '';
-
-  postFixup = ''
-    # debuging
-    searchForUnresolvedDLL $out
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Control panel of Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/dde-control-center";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo worldofpeace ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-control-center/fix-paths.patch b/pkgs/desktops/deepin/dde-control-center/fix-paths.patch
deleted file mode 100644
index 2c6e204d343..00000000000
--- a/pkgs/desktops/deepin/dde-control-center/fix-paths.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-diff --git a/src/frame/frame.cpp b/src/frame/frame.cpp
-index 90d06f8..7cdad04 100644
---- a/src/frame/frame.cpp
-+++ b/src/frame/frame.cpp
-@@ -375,7 +375,7 @@ void Frame::keyPressEvent(QKeyEvent *e)
- #ifdef QT_DEBUG
-     case Qt::Key_Escape:        qApp->quit();                               break;
- #endif
--    case Qt::Key_F1:            QProcess::startDetached("dman", QStringList("dde"));  break;
-+    case Qt::Key_F1:            QProcess::startDetached("@dman@", QStringList("dde"));  break;
-     default:;
-     }
- }
-diff --git a/src/frame/modules/datetime/timezone_dialog/timezone.cpp b/src/frame/modules/datetime/timezone_dialog/timezone.cpp
-index 3dd4aad..5f1b363 100644
---- a/src/frame/modules/datetime/timezone_dialog/timezone.cpp
-+++ b/src/frame/modules/datetime/timezone_dialog/timezone.cpp
-@@ -46,7 +46,7 @@ namespace installer {
- namespace {
- 
- // Absolute path to zone.tab file.
--const char kZoneTabFile[] = "/usr/share/zoneinfo/zone.tab";
-+const char kZoneTabFile[] = "@tzdata@/share/zoneinfo/zone.tab";
- 
- // Absolute path to backward timezone file.
- const char kTimezoneAliasFile[] = "/timezone_alias";
-diff --git a/src/frame/modules/network/connectionvpneditpage.cpp b/src/frame/modules/network/connectionvpneditpage.cpp
-index e292865..95c5a2b 100644
---- a/src/frame/modules/network/connectionvpneditpage.cpp
-+++ b/src/frame/modules/network/connectionvpneditpage.cpp
-@@ -215,7 +215,7 @@ void ConnectionVpnEditPage::exportConnConfig()
-     qDebug() << Q_FUNC_INFO << args;
- 
-     QProcess p;
--    p.start("nmcli", args);
-+    p.start("@nmcli@", args);
-     p.waitForFinished();
-     qDebug() << p.readAllStandardOutput();
-     qDebug() << p.readAllStandardError();
-diff --git a/src/frame/modules/network/vpnpage.cpp b/src/frame/modules/network/vpnpage.cpp
-index 521a603..450d1a6 100644
---- a/src/frame/modules/network/vpnpage.cpp
-+++ b/src/frame/modules/network/vpnpage.cpp
-@@ -224,7 +224,7 @@ void VpnPage::importVPN()
-     qDebug() << args;
- 
-     QProcess p;
--    p.start("nmcli", args);
-+    p.start("@nmcli@", args);
-     p.waitForFinished();
-     const auto stat = p.exitCode();
-     const QString output = p.readAllStandardOutput();
-diff --git a/src/frame/modules/sync/syncworker.cpp b/src/frame/modules/sync/syncworker.cpp
-index 3f929bf..6f240d9 100644
---- a/src/frame/modules/sync/syncworker.cpp
-+++ b/src/frame/modules/sync/syncworker.cpp
-@@ -24,7 +24,7 @@ SyncWorker::SyncWorker(SyncModel *model, QObject *parent)
- 
-     m_model->setSyncIsValid(
-         QProcess::execute(
--            "which", QStringList() << "/usr/lib/deepin-sync-daemon/deepin-sync-daemon") ==
-+            "@which@", QStringList() << "@deepin_sync@/lib/deepin-sync-daemon/deepin-sync-daemon") ==
-             0 &&
-         valueByQSettings<bool>(DCC_CONFIG_FILES, "CloudSync", "AllowCloudSync", false));
- }
diff --git a/pkgs/desktops/deepin/dde-daemon/default.nix b/pkgs/desktops/deepin/dde-daemon/default.nix
deleted file mode 100644
index c4edcef15af..00000000000
--- a/pkgs/desktops/deepin/dde-daemon/default.nix
+++ /dev/null
@@ -1,159 +0,0 @@
-{ stdenv
-, buildGoPackage
-, fetchFromGitHub
-, fetchpatch
-, pkgconfig
-, go-dbus-factory
-, go-gir-generator
-, go-lib
-, deepin-gettext-tools
-, gettext
-, dde-api
-, deepin-desktop-schemas
-, deepin-wallpapers
-, deepin-desktop-base
-, alsaLib
-, glib
-, gtk3
-, libgudev
-, libinput
-, libnl
-, librsvg
-, linux-pam
-, networkmanager
-, pulseaudio
-, python3
-, hicolor-icon-theme
-, glibc
-, tzdata
-, go
-, deepin
-, makeWrapper
-, xkeyboard_config
-, wrapGAppsHook
-}:
-
-buildGoPackage rec {
-  pname = "dde-daemon";
-  version = "5.0.0";
-
-  goPackagePath = "pkg.deepin.io/dde/daemon";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "08jri31bvzbaxaq78rpp46ndv0li2dij63hakvd9b9gs786srql1";
-  };
-
-  patches = [
-    # https://github.com/linuxdeepin/dde-daemon/issues/51
-    (fetchpatch {
-      url = "https://github.com/jouyouyun/tap-gesture-patches/raw/master/patches/dde-daemon_3.8.0.patch";
-      sha256 = "1ampdsp9zlg263flswdw9gj10n7gxh7zi6w6z9jgh29xlai05pvh";
-    })
-  ];
-
-  goDeps = ./deps.nix;
-
-  nativeBuildInputs = [
-    pkgconfig
-    deepin-gettext-tools
-    gettext
-    networkmanager
-    networkmanager.dev
-    python3
-    makeWrapper
-    wrapGAppsHook
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    go-dbus-factory
-    go-gir-generator
-    go-lib
-    linux-pam
-
-    alsaLib
-    dde-api
-    deepin-desktop-base
-    deepin-desktop-schemas
-    deepin-wallpapers
-    glib
-    libgudev
-    gtk3
-    hicolor-icon-theme
-    libinput
-    libnl
-    librsvg
-    pulseaudio
-    tzdata
-    xkeyboard_config
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-    patchShebangs network/nm_generator/gen_nm_consts.py
-
-    fixPath $out /usr/share/dde/data launcher/manager.go dock/dock_manager_init.go
-    fixPath $out /usr/share/dde-daemon launcher/manager.go gesture/config.go
-    fixPath ${networkmanager.dev} /usr/share/gir-1.0/NM-1.0.gir network/nm_generator/Makefile
-    fixPath ${glibc.bin} /usr/bin/getconf systeminfo/utils.go
-    fixPath ${deepin-desktop-base} /etc/deepin-version systeminfo/version.go accounts/deepinversion.go
-    fixPath ${tzdata} /usr/share/zoneinfo timedate/zoneinfo/zone.go
-    fixPath ${dde-api} /usr/lib/deepin-api grub2/modify_manger.go accounts/image_blur.go
-    fixPath ${deepin-wallpapers} /usr/share/wallpapers appearance/background/list.go accounts/user.go
-    fixPath ${xkeyboard_config} /usr/share/X11/xkb inputdevices/layout_list.go
-
-    # TODO: deepin-system-monitor comes from dde-extra
-
-    sed -i -e "s|{DESTDIR}/etc|{DESTDIR}$out/etc|" Makefile
-    sed -i -e "s|{DESTDIR}/lib|{DESTDIR}$out/lib|" Makefile
-    sed -i -e "s|{DESTDIR}/var|{DESTDIR}$out/var|" Makefile
-
-    find -type f -exec sed -i -e "s,/usr/lib/deepin-daemon,$out/lib/deepin-daemon," {} +
-
-    # This package wants to install polkit local authority files into
-    # /var/lib. Nix does not allow a package to install files into /var/lib
-    # because it is outside of the Nix store and should contain applications
-    # state information (persistent data modified by programs as they
-    # run). Polkit looks for them in both /etc/polkit-1 and
-    # /var/lib/polkit-1 (with /etc having priority over /var/lib). An
-    # work around is to install them to $out/etc and simlnk them to
-    # /etc in the deepin module.
-
-    sed -i -e "s,/var/lib/polkit-1,/etc/polkit-1," Makefile
-  '';
-
-  buildPhase = ''
-    export PAM_MODULE_DIR="$out/lib/security"
-    # compilation of the nm module is failing
-    #make -C go/src/${goPackagePath}/network/nm_generator gen-nm-code
-    make -C go/src/${goPackagePath}
-  '';
-
-  installPhase = ''
-    make install PREFIX="$out" -C go/src/${goPackagePath}
-    remove-references-to -t ${go} $out/lib/deepin-daemon/*
-    searchHardCodedPaths $out
-  '';
-
-  postFixup = ''
-    # wrapGAppsHook does not work with binaries outside of $out/bin or $out/libexec
-    for binary in $out/lib/deepin-daemon/*; do
-      wrapGApp "$binary"
-    done
-
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Daemon for handling Deepin Desktop Environment session settings";
-    homepage = "https://github.com/linuxdeepin/dde-daemon";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-daemon/deps.nix b/pkgs/desktops/deepin/dde-daemon/deps.nix
deleted file mode 100644
index bcc5ab81808..00000000000
--- a/pkgs/desktops/deepin/dde-daemon/deps.nix
+++ /dev/null
@@ -1,111 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/alecthomas/template";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/template";
-      rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
-      sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev = "f65c72e2690dc4b403c8bd637baf4611cd4c069b";
-      sha256 = "04jyqm7m3m01ppfy1f9xk4qvrwvs78q9zml6llyf2b3v5k6b2bbc";
-    };
-  }
-  {
-    goPackagePath = "github.com/axgle/mahonia";
-    fetch = {
-      type = "git";
-      url = "https://github.com/axgle/mahonia";
-      rev = "3358181d7394e26beccfae0ffde05193ef3be33a";
-      sha256 = "0b8wsrxmv8a0cqbnsg55lpf29pxy2zw8azvgh3ck664lqpcfybhq";
-    };
-  }
-  {
-    goPackagePath = "github.com/cryptix/wav";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cryptix/wav";
-      rev = "8bdace674401f0bd3b63c65479b6a6ff1f9d5e44";
-      sha256 = "18nyqv0ic35fs9fny8sj84c00vbxs8mnric6vr6yl42624fh5id6";
-    };
-  }
-  {
-    goPackagePath = "github.com/gosexy/gettext";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gosexy/gettext";
-      rev = "74466a0a0c4a62fea38f44aa161d4bbfbe79dd6b";
-      sha256 = "0asphx8nd7zmp88wk6aakk5292np7yw73akvfdvlvs9q5r5ahkgi";
-    };
-  }
-  {
-    goPackagePath = "github.com/linuxdeepin/go-x11-client";
-    fetch = {
-      type = "git";
-      url = "https://github.com/linuxdeepin/go-x11-client";
-      rev = "b5b01565d224d5ccd5a4143d9099acceb23e182a";
-      sha256 = "1lnffjp8bqy6f8caw6drg1js6hny5w7432riqchcrcd4q85d94rs";
-    };
-  }
-  {
-    goPackagePath = "github.com/msteinert/pam";
-    fetch = {
-      type = "git";
-      url = "https://github.com/msteinert/pam";
-      rev = "f29b9f28d6f9a1f6c4e6fd5db731999eb946574b";
-      sha256 = "1v5z51mgyz2glm7v0mg60xs1as88wx6cqhys2khc5d3khkr8q0qp";
-    };
-  }
-  {
-    goPackagePath = "github.com/nfnt/resize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nfnt/resize";
-      rev = "83c6a9932646f83e3267f353373d47347b6036b2";
-      sha256 = "005cpiwq28krbjf0zjwpfh63rp4s4is58700idn24fs3g7wdbwya";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/image";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/image";
-      rev = "e7c1f5e7dbb87d8921928a6d9fc52fb31ce73b24";
-      sha256 = "0czp897aicqw1dgybj0hc2zzwb20rhqkdqm7siqci3yk7yk9cymf";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "daa7c04131f568e31c51927b359a2d197a357058";
-      sha256 = "17gbfvb5iqyayzw0zd6q218zsbf7x74rflvn18wkxvsw95n1y54h";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "4b67af870c6ffd08258ef1202f371aebccaf7b68";
-      sha256 = "01mhy1xs2dh18kp6wdk1xnb34lbzv2qkvdwj7w5ha2qgm5rrm4ik";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v2";
-      rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-]
diff --git a/pkgs/desktops/deepin/dde-dock/dde-dock.plugins-dir.patch b/pkgs/desktops/deepin/dde-dock/dde-dock.plugins-dir.patch
deleted file mode 100644
index 87b76045b43..00000000000
--- a/pkgs/desktops/deepin/dde-dock/dde-dock.plugins-dir.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From c48867b73485b34b95f14e9b9bbb54507fc77648 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
-Date: Fri, 19 Apr 2019 18:21:49 -0300
-Subject: [PATCH] Use an environment variable for the plugins directory
-
----
- frame/controller/dockpluginscontroller.cpp          | 2 +-
- plugins/tray/system-trays/systemtrayscontroller.cpp | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/frame/controller/dockpluginscontroller.cpp b/frame/controller/dockpluginscontroller.cpp
-index 32a5885..efd53c8 100644
---- a/frame/controller/dockpluginscontroller.cpp
-+++ b/frame/controller/dockpluginscontroller.cpp
-@@ -126,7 +126,7 @@ void DockPluginsController::startLoader()
- {
-     QString pluginsDir("../plugins");
-     if (!QDir(pluginsDir).exists()) {
--        pluginsDir = "/usr/lib/dde-dock/plugins";
-+        pluginsDir = QProcessEnvironment::systemEnvironment().value("DDE_DOCK_PLUGINS_DIR", "@out@/lib/dde-dock/plugins");
-     }
-     qDebug() << "using dock plugins dir:" << pluginsDir;
-
-diff --git a/plugins/tray/system-trays/systemtrayscontroller.cpp b/plugins/tray/system-trays/systemtrayscontroller.cpp
-index 0c8ca88..7c47d25 100644
---- a/plugins/tray/system-trays/systemtrayscontroller.cpp
-+++ b/plugins/tray/system-trays/systemtrayscontroller.cpp
-@@ -159,7 +159,7 @@ void SystemTraysController::startLoader()
- {
-     QString pluginsDir("../plugins/system-trays");
-     if (!QDir(pluginsDir).exists()) {
--        pluginsDir = "/usr/lib/dde-dock/plugins/system-trays";
-+        pluginsDir = QProcessEnvironment::systemEnvironment().value("DDE_DOCK_PLUGINS_DIR", "@out@/lib/dde-dock/plugins") + "/system-trays";
-     }
-     qDebug() << "using system tray plugins dir:" << pluginsDir;
-
---
-2.21.0
-
diff --git a/pkgs/desktops/deepin/dde-dock/default.nix b/pkgs/desktops/deepin/dde-dock/default.nix
deleted file mode 100644
index 68f2caa6319..00000000000
--- a/pkgs/desktops/deepin/dde-dock/default.nix
+++ /dev/null
@@ -1,116 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, cmake
-, pkgconfig
-, qttools
-, qtx11extras
-, qtsvg
-, polkit
-, gsettings-qt
-, dtkcore
-, dtkwidget
-, dde-qt-dbus-factory
-, dde-network-utils
-, dde-daemon
-, deepin-desktop-schemas
-, xorg
-, glib
-, wrapGAppsHook
-, deepin
-, plugins ? [ ]
-, symlinkJoin
-, makeWrapper
-, libdbusmenu
-}:
-
-let
-  unwrapped = mkDerivation rec {
-    pname = "dde-dock";
-    version = "5.0.0";
-
-    src = fetchFromGitHub {
-      owner = "linuxdeepin";
-      repo = pname;
-      rev = version;
-      sha256 = "12dshsqhzajnxm7r53qg0c84b6xlj313qnssnx2m25z4jdp5i7pr";
-    };
-
-    nativeBuildInputs = [
-      cmake
-      pkgconfig
-      qttools
-      wrapGAppsHook
-      deepin.setupHook
-    ];
-
-    buildInputs = [
-      dde-daemon
-      dde-network-utils
-      dde-qt-dbus-factory
-      deepin-desktop-schemas
-      dtkcore
-      dtkwidget
-      glib
-      gsettings-qt
-      libdbusmenu
-      polkit
-      qtsvg
-      qtx11extras
-      xorg.libXdmcp
-      xorg.libXtst
-      xorg.libpthreadstubs
-    ];
-
-    patches = [
-      ./dde-dock.plugins-dir.patch
-    ];
-
-    postPatch = ''
-      searchHardCodedPaths
-      patchShebangs translate_generation.sh
-      fixPath $out                 /etc/dde-dock                plugins/keyboard-layout/CMakeLists.txt
-      fixPath $out                 /usr                         cmake/DdeDock/DdeDockConfig.cmake
-      fixPath $out                 /usr                         dde-dock.pc
-      fixPath $out                 /usr/bin/dde-dock            frame/com.deepin.dde.Dock.service
-      fixPath $out                 /usr/share/dbus-1            CMakeLists.txt
-      fixPath ${dde-daemon}        /usr/lib/deepin-daemon       frame/item/showdesktopitem.cpp
-      fixPath ${dde-network-utils} /usr/share/dde-network-utils frame/main.cpp
-      fixPath ${polkit}            /usr/bin/pkexec              plugins/overlay-warning/overlay-warning-plugin.cpp
-
-      substituteInPlace frame/controller/dockpluginscontroller.cpp --subst-var-by out $out
-      substituteInPlace plugins/tray/system-trays/systemtrayscontroller.cpp --subst-var-by out $out
-    '';
-
-    cmakeFlags = [ "-DDOCK_TRAY_USE_NATIVE_POPUP=YES" ];
-
-    dontWrapQtApps = true;
-
-    preFixup = ''
-      gappsWrapperArgs+=(
-        "''${qtWrapperArgs[@]}"
-      )
-    '';
-
-    postFixup = ''
-      searchHardCodedPaths $out
-    '';
-
-    passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-    meta = with stdenv.lib; {
-      description = "Dock for Deepin Desktop Environment";
-      homepage = "https://github.com/linuxdeepin/dde-dock";
-      license = licenses.gpl3;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ romildo ];
-    };
-  };
-
-in
-if plugins == [ ]
-then unwrapped
-else import ./wrapper.nix {
-  inherit makeWrapper symlinkJoin plugins;
-  dde-dock = unwrapped;
-}
diff --git a/pkgs/desktops/deepin/dde-dock/wrapper.nix b/pkgs/desktops/deepin/dde-dock/wrapper.nix
deleted file mode 100644
index 1690230a99e..00000000000
--- a/pkgs/desktops/deepin/dde-dock/wrapper.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ makeWrapper
-, symlinkJoin
-, dde-dock
-, plugins
-}:
-
-symlinkJoin {
-  name = "dde-dock-with-plugins-${dde-dock.version}";
-
-  paths = [ dde-dock ] ++ plugins;
-
-  buildInputs = [ makeWrapper ];
-
-  postBuild = ''
-    wrapProgram $out/bin/dde-dock \
-      --set DDE_DOCK_PLUGINS_DIR "$out/lib/dde-dock/plugins"
-
-    rm $out/share/dbus-1/services/com.deepin.dde.Dock.service
-
-    substitute ${dde-dock}/share/dbus-1/services/com.deepin.dde.Dock.service $out/share/dbus-1/services/com.deepin.dde.Dock.service \
-      --replace ${dde-dock} $out
-  '';
-
-  inherit (dde-dock) meta;
-}
diff --git a/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-mime-cache-paths.patch b/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-mime-cache-paths.patch
deleted file mode 100644
index 253a67b04ec..00000000000
--- a/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-mime-cache-paths.patch
+++ /dev/null
@@ -1,323 +0,0 @@
-From 29f4ad88e2294ae70b10180e7361d135c4e5c896 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
-Date: Mon, 13 May 2019 00:09:42 -0300
-Subject: [PATCH 2/2] Use XDG to look for mime cache
-
----
- .../shutil/mimesappsmanager.cpp               | 230 ++++++++++--------
- .../shutil/mimesappsmanager.h                 |   6 +-
- 2 files changed, 125 insertions(+), 111 deletions(-)
-
-diff --git a/dde-file-manager-lib/shutil/mimesappsmanager.cpp b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-index c9e53630..7a21df51 100644
---- a/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-+++ b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-@@ -552,14 +552,20 @@ QString MimesAppsManager::getMimeAppsCacheFile()
-     return QString("%1/%2").arg(DFMStandardPaths::location(DFMStandardPaths::CachePath), "MimeApps.json");
- }
- 
--QString MimesAppsManager::getMimeInfoCacheFilePath()
-+QStringList MimesAppsManager::getMimeInfoCacheFilePath()
- {
--    return "/usr/share/applications/mimeinfo.cache";
-+    QStringList paths;
-+    for (const QString dir : getMimeInfoCacheFileRootPath() )
-+       paths.append(dir + QDir::separator() + "mimeinfo.cache");
-+    qDebug() << "getMimeInfoCacheFilePath: " << paths;
-+    return paths;
- }
- 
--QString MimesAppsManager::getMimeInfoCacheFileRootPath()
-+QStringList MimesAppsManager::getMimeInfoCacheFileRootPath()
- {
--    return "/usr/share/applications";
-+    QStringList paths = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
-+    qDebug() << "getMimeInfoCacheFileRootPath: " << paths;
-+    return paths;
- }
- 
- QString MimesAppsManager::getDesktopFilesCacheFile()
-@@ -574,23 +580,27 @@ QString MimesAppsManager::getDesktopIconsCacheFile()
- 
- QStringList MimesAppsManager::getDesktopFiles()
- {
--      QStringList desktopFiles;
-+    QStringList desktopFiles;
- 
--      foreach (QString desktopFolder, getApplicationsFolders()) {
--          QDirIterator it(desktopFolder, QStringList("*.desktop"),
--                          QDir::Files | QDir::NoDotAndDotDot,
--                          QDirIterator::Subdirectories);
--          while (it.hasNext()) {
--            it.next();
--            desktopFiles.append(it.filePath());
--          }
--      }
--      return desktopFiles;
-+    foreach (QString desktopFolder, getApplicationsFolders()) {
-+        QDirIterator it(desktopFolder, QStringList("*.desktop"),
-+                        QDir::Files | QDir::NoDotAndDotDot,
-+                        QDirIterator::Subdirectories);
-+        while (it.hasNext()) {
-+          it.next();
-+          desktopFiles.append(it.filePath());
-+        }
-+    }
-+    return desktopFiles;
- }
- 
--QString MimesAppsManager::getDDEMimeTypeFile()
-+QStringList MimesAppsManager::getDDEMimeTypeFile()
- {
--    return QString("%1/%2/%3").arg(getMimeInfoCacheFileRootPath(), "deepin", "dde-mimetype.list");
-+    QStringList paths;
-+    for (const QString path : getMimeInfoCacheFileRootPath())
-+       paths.append(QString("%1/%2/%3").arg(path, "deepin", "dde-mimetype.list"));
-+    qDebug() << "getDDEMimeTypeFile: " << paths;
-+    return paths;
- }
- 
- QMap<QString, DesktopFile> MimesAppsManager::getDesktopObjs()
-@@ -663,124 +673,128 @@ void MimesAppsManager::initMimeTypeApps()
-         MimeApps.insert(key, orderApps);
-     }
- 
--    //check mime apps from cache
--    QFile f(getMimeInfoCacheFilePath());
--    if(!f.open(QIODevice::ReadOnly)){
--        qDebug () << "failed to read mime info cache file:" << f.errorString();
--        return;
--    }
--
-     QStringList audioDesktopList;
-     QStringList imageDeksopList;
-     QStringList textDekstopList;
-     QStringList videoDesktopList;
- 
--    while (!f.atEnd()) {
--        QString data = f.readLine();
--        QString _desktops = data.split("=").last();
--        QString mimeType = data.split("=").first();
--        QStringList desktops = _desktops.split(";");
--
--        foreach (const QString desktop, desktops) {
--            if(desktop.isEmpty() || audioDesktopList.contains(desktop))
--                continue;
-+    //check mime apps from cache
-+    for (const QString path : getMimeInfoCacheFilePath()) {
-+        QFile f(path);
-+        if(!f.open(QIODevice::ReadOnly)){
-+            qDebug () << "failed to read mime info cache file:" << f.errorString();
-+            return;
-+        }
- 
--            if(mimeType.startsWith("audio")){
--                if(!audioDesktopList.contains(desktop))
--                    audioDesktopList << desktop;
--            } else if(mimeType.startsWith("image")){
--                if(!imageDeksopList.contains(desktop))
--                    imageDeksopList << desktop;
--            } else if(mimeType.startsWith("text")){
--                if(!textDekstopList.contains(desktop))
--                    textDekstopList << desktop;
--            } else if(mimeType.startsWith("video")){
--                if(!videoDesktopList.contains(desktop))
--                    videoDesktopList << desktop;
-+        while (!f.atEnd()) {
-+            QString data = f.readLine();
-+            QString _desktops = data.split("=").last();
-+            QString mimeType = data.split("=").first();
-+            QStringList desktops = _desktops.split(";");
-+
-+            foreach (const QString desktop, desktops) {
-+                if(desktop.isEmpty() || audioDesktopList.contains(desktop))
-+                    continue;
-+
-+                if(mimeType.startsWith("audio")){
-+                    if(!audioDesktopList.contains(desktop))
-+                        audioDesktopList << desktop;
-+                } else if(mimeType.startsWith("image")){
-+                    if(!imageDeksopList.contains(desktop))
-+                        imageDeksopList << desktop;
-+                } else if(mimeType.startsWith("text")){
-+                    if(!textDekstopList.contains(desktop))
-+                        textDekstopList << desktop;
-+                } else if(mimeType.startsWith("video")){
-+                    if(!videoDesktopList.contains(desktop))
-+                        videoDesktopList << desktop;
-+                }
-             }
-         }
-+        f.close();
-     }
--    f.close();
- 
--    const QString mimeInfoCacheRootPath = getMimeInfoCacheFileRootPath();
--    foreach (QString desktop, audioDesktopList) {
--        const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
--        if(!QFile::exists(path))
--            continue;
--        DesktopFile df(path);
--        AudioMimeApps.insert(path, df);
--    }
-+    for (const QString mimeInfoCacheRootPath : getMimeInfoCacheFileRootPath()) {
-+        foreach (QString desktop, audioDesktopList) {
-+            const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
-+            if(!QFile::exists(path))
-+                continue;
-+            DesktopFile df(path);
-+            AudioMimeApps.insert(path, df);
-+        }
- 
--    foreach (QString desktop, imageDeksopList) {
--        const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
--        if(!QFile::exists(path))
--            continue;
--        DesktopFile df(path);
--        ImageMimeApps.insert(path, df);
--    }
-+        foreach (QString desktop, imageDeksopList) {
-+            const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
-+            if(!QFile::exists(path))
-+                continue;
-+            DesktopFile df(path);
-+            ImageMimeApps.insert(path, df);
-+        }
- 
--    foreach (QString desktop, textDekstopList) {
--        const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
--        if(!QFile::exists(path))
--            continue;
--        DesktopFile df(path);
--        TextMimeApps.insert(path, df);
--    }
-+        foreach (QString desktop, textDekstopList) {
-+            const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
-+            if(!QFile::exists(path))
-+                continue;
-+            DesktopFile df(path);
-+            TextMimeApps.insert(path, df);
-+        }
- 
--    foreach (QString desktop, videoDesktopList) {
--        const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
--        if(!QFile::exists(path))
--            continue;
--        DesktopFile df(path);
--        VideoMimeApps.insert(path, df);
-+        foreach (QString desktop, videoDesktopList) {
-+            const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
-+            if(!QFile::exists(path))
-+                continue;
-+            DesktopFile df(path);
-+            VideoMimeApps.insert(path, df);
-+        }
-     }
--
-     return;
- }
- 
- void MimesAppsManager::loadDDEMimeTypes()
- {
--    QSettings settings(getDDEMimeTypeFile(), QSettings::IniFormat);
--    qDebug() << settings.childGroups();
-+    for (const QString path : getDDEMimeTypeFile()) {
-+        QSettings settings(path, QSettings::IniFormat);
-+        qDebug() << settings.childGroups();
- 
--    QFile file(getDDEMimeTypeFile());
--    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
--        return;
--    }
-+        QFile file(path);
-+        if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
-+            continue;
-+        }
-+
-+        // Read propeties
-+        QTextStream in(&file);
-+        QString desktopKey;
-+        while (!in.atEnd()) {
- 
--    // Read propeties
--    QTextStream in(&file);
--    QString desktopKey;
--    while (!in.atEnd()) {
-+          // Read new line
-+          QString line = in.readLine();
- 
--      // Read new line
--      QString line = in.readLine();
-+          // Skip empty line or line with invalid format
-+          if (line.trimmed().isEmpty()) {
-+            continue;
-+          }
- 
--      // Skip empty line or line with invalid format
--      if (line.trimmed().isEmpty()) {
--        continue;
--      }
-+          // Read group
-+          // NOTE: symbols '[' and ']' can be found not only in group names, but
-+          // only group can start with '['
- 
--      // Read group
--      // NOTE: symbols '[' and ']' can be found not only in group names, but
--      // only group can start with '['
-+          if (line.trimmed().startsWith("[") && line.trimmed().endsWith("]")) {
-+                QString tmp = line.trimmed().replace("[", "").replace("]", "");
-+                desktopKey = tmp;
-+                continue;
-+          }
- 
--      if (line.trimmed().startsWith("[") && line.trimmed().endsWith("]")) {
--            QString tmp = line.trimmed().replace("[", "").replace("]", "");
--            desktopKey = tmp;
--            continue;
--      }
--
--      // If we are in correct group and line contains assignment then read data
--      int first_equal = line.indexOf('=');
--      if (!desktopKey.isEmpty() && first_equal >= 0) {
--            QString value = line.mid(first_equal + 1);
--            QStringList mimetypes = value.split(";");
--            DDE_MimeTypes.insert(desktopKey, mimetypes);
--            desktopKey.clear();
-+          // If we are in correct group and line contains assignment then read data
-+          int first_equal = line.indexOf('=');
-+          if (!desktopKey.isEmpty() && first_equal >= 0) {
-+                QString value = line.mid(first_equal + 1);
-+                QStringList mimetypes = value.split(";");
-+                DDE_MimeTypes.insert(desktopKey, mimetypes);
-+                desktopKey.clear();
-+            }
-         }
-+        file.close();
-     }
--    file.close();
- }
- 
- bool MimesAppsManager::lessByDateTime(const QFileInfo &f1, const QFileInfo &f2)
-diff --git a/dde-file-manager-lib/shutil/mimesappsmanager.h b/dde-file-manager-lib/shutil/mimesappsmanager.h
-index 223c80aa..00a61302 100644
---- a/dde-file-manager-lib/shutil/mimesappsmanager.h
-+++ b/dde-file-manager-lib/shutil/mimesappsmanager.h
-@@ -101,12 +101,12 @@ public:
- 
-     static QStringList getApplicationsFolders();
-     static QString getMimeAppsCacheFile();
--    static QString getMimeInfoCacheFilePath();
--    static QString getMimeInfoCacheFileRootPath();
-+    static QStringList getMimeInfoCacheFilePath();
-+    static QStringList getMimeInfoCacheFileRootPath();
-     static QString getDesktopFilesCacheFile();
-     static QString getDesktopIconsCacheFile();
-     static QStringList getDesktopFiles();
--    static QString getDDEMimeTypeFile();
-+    static QStringList getDDEMimeTypeFile();
-     static QMap<QString, DesktopFile> getDesktopObjs();
-     static void initMimeTypeApps();
-     static void loadDDEMimeTypes();
--- 
-2.21.0
-
diff --git a/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-paths.patch b/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-paths.patch
deleted file mode 100644
index 3ced15e7e5a..00000000000
--- a/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-paths.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From e68d983a6befd223087916cb3fe31baee77decc4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
-Date: Sun, 12 May 2019 08:50:07 -0300
-Subject: [PATCH 1/2] Use qt library to determine where to look for application
- files
-
----
- dde-file-manager-lib/shutil/fileutils.cpp     | 34 ++++++++++++-------
- .../shutil/mimesappsmanager.cpp               | 11 ++----
- 2 files changed, 25 insertions(+), 20 deletions(-)
-
-diff --git a/dde-file-manager-lib/shutil/fileutils.cpp b/dde-file-manager-lib/shutil/fileutils.cpp
-index ae8120d3..d6a0573a 100644
---- a/dde-file-manager-lib/shutil/fileutils.cpp
-+++ b/dde-file-manager-lib/shutil/fileutils.cpp
-@@ -242,13 +242,19 @@ bool FileUtils::isArchive(const QString &path)
-  */
- QStringList FileUtils::getApplicationNames() {
-   QStringList appNames;
--  QDirIterator it("/usr/share/applications", QStringList("*.desktop"),
--                  QDir::Files | QDir::NoDotAndDotDot,
--                  QDirIterator::Subdirectories);
--  while (it.hasNext()) {
--    it.next();
--    appNames.append(it.fileName());
-+
-+  const QStringList desktopDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
-+  qDebug() << "dde-file-manager getApplicationNames desktopDirs:" << desktopDirs;
-+  for (const QString &dir : desktopDirs) {
-+    QDirIterator it(dir, QStringList("*.desktop"),
-+                    QDir::Files | QDir::NoDotAndDotDot,
-+                    QDirIterator::Subdirectories);
-+    while (it.hasNext()) {
-+      it.next();
-+      appNames.append(it.fileName());
-+    }
-   }
-+  
-   return appNames;
- }
- //---------------------------------------------------------------------------
-@@ -259,12 +265,16 @@ QStringList FileUtils::getApplicationNames() {
-  */
- QList<DesktopFile> FileUtils::getApplications() {
-   QList<DesktopFile> apps;
--  QDirIterator it("/usr/share/applications", QStringList("*.desktop"),
--                  QDir::Files | QDir::NoDotAndDotDot,
--                  QDirIterator::Subdirectories);
--  while (it.hasNext()) {
--    it.next();
--    apps.append(DesktopFile(it.filePath()));
-+  const QStringList desktopDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
-+  qDebug() << "dde-file-manager getApplications desktopDirs:" << desktopDirs;
-+  for (const QString &dir : desktopDirs) {
-+    QDirIterator it(dir, QStringList("*.desktop"),
-+                    QDir::Files | QDir::NoDotAndDotDot,
-+                    QDirIterator::Subdirectories);
-+    while (it.hasNext()) {
-+      it.next();
-+      apps.append(DesktopFile(it.filePath()));
-+    }
-   }
-   return apps;
- }
-diff --git a/dde-file-manager-lib/shutil/mimesappsmanager.cpp b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-index c6149702..c9e53630 100644
---- a/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-+++ b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-@@ -542,14 +542,9 @@ QStringList MimesAppsManager::getrecommendedAppsFromMimeWhiteList(const DUrl &ur
- 
- QStringList MimesAppsManager::getApplicationsFolders()
- {
--    QStringList desktopFolders;
--    desktopFolders << QString("/usr/share/applications/")
--                   << QString("/usr/local/share/applications/")
--                   << QString("/usr/share/gnome/applications/")
--                   << QString("/var/lib/flatpak/exports/share/applications")
--                   << QDir::homePath() + QString("/.local/share/flatpak/exports/share/applications")
--                   << QDir::homePath() + QString( "/.local/share/applications" );
--    return desktopFolders;
-+    QStringList paths = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
-+    qDebug() << "dde-file-manager getApplicationsFolders:" << paths;
-+    return paths;
- }
- 
- QString MimesAppsManager::getMimeAppsCacheFile()
--- 
-2.21.0
-
diff --git a/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.pixmaps-paths.patch b/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.pixmaps-paths.patch
deleted file mode 100644
index 582760e6db2..00000000000
--- a/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.pixmaps-paths.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 084c3cfcf4995c109ca2e96f042fe341f925b0b4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
-Date: Thu, 16 May 2019 19:00:52 -0300
-Subject: [PATCH 4/4] Use xdg to look for pixmap icons
-
----
- dde-file-manager-lib/shutil/fileutils.cpp | 15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/dde-file-manager-lib/shutil/fileutils.cpp b/dde-file-manager-lib/shutil/fileutils.cpp
-index d6a0573a..e912e7c2 100644
---- a/dde-file-manager-lib/shutil/fileutils.cpp
-+++ b/dde-file-manager-lib/shutil/fileutils.cpp
-@@ -362,11 +362,16 @@ QIcon FileUtils::searchAppIcon(const DesktopFile &app,
-   }
- 
-   // Last chance
--  QDir appIcons("/usr/share/pixmaps","", 0, QDir::Files | QDir::NoDotAndDotDot);
--  QStringList iconFiles = appIcons.entryList();
--  QStringList searchIcons = iconFiles.filter(name);
--  if (searchIcons.count() > 0) {
--    return QIcon("/usr/share/pixmaps/" + searchIcons.at(0));
-+  const QStringList dirs = QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation);
-+  qDebug() << "searchAppIcon: last chance: look for pixmaps at: " << dirs;
-+  for (const QString &dir : dirs) {
-+    const QString path = dir + QDir::separator() + "pixmaps";
-+    QDir appIcons(path,"", 0, QDir::Files | QDir::NoDotAndDotDot);
-+    QStringList iconFiles = appIcons.entryList();
-+    QStringList searchIcons = iconFiles.filter(name);
-+    if (searchIcons.count() > 0) {
-+      return QIcon(path + QDir::separator() + searchIcons.at(0));
-+    }
-   }
- 
-   // Default icon
--- 
-2.21.0
-
diff --git a/pkgs/desktops/deepin/dde-file-manager/default.nix b/pkgs/desktops/deepin/dde-file-manager/default.nix
deleted file mode 100644
index 4258e2aa859..00000000000
--- a/pkgs/desktops/deepin/dde-file-manager/default.nix
+++ /dev/null
@@ -1,298 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, avfs
-, dde-daemon
-, dde-dock
-, dde-polkit-agent
-, dde-qt-dbus-factory
-, deepin
-, deepin-anything
-, deepin-desktop-schemas
-, deepin-gettext-tools
-, deepin-movie-reborn
-, deepin-shortcut-viewer
-, deepin-terminal
-, disomaster
-, dtkcore
-, dtkwidget
-, ffmpegthumbnailer
-, file
-, glib
-, gnugrep
-, gsettings-qt
-, gvfs
-, jemalloc
-, kcodecs
-, libX11
-, libsecret
-, polkit
-, polkit-qt
-, poppler
-, procps
-, qmake
-, qt5integration
-, qtmultimedia
-, qtsvg
-, qttools
-, qtx11extras
-, runtimeShell
-, samba
-, shadow
-, taglib
-, udisks2-qt5
-, xdg-user-dirs
-, xorg
-, zlib
-, wrapGAppsHook
-}:
-
-mkDerivation rec {
-  pname = "dde-file-manager";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0n2nl09anqdq0n5yn688n385rn81lcpybs0sa8m311k3k9ndkkyr";
-  };
-
-  nativeBuildInputs = [
-    deepin.setupHook
-    qmake
-    qttools
-    pkgconfig
-    deepin-gettext-tools
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    avfs
-    dde-daemon
-    dde-dock
-    dde-polkit-agent
-    dde-qt-dbus-factory
-    deepin-anything
-    deepin-desktop-schemas
-    deepin-movie-reborn.dev
-    deepin-shortcut-viewer
-    deepin-terminal
-    disomaster
-    dtkcore
-    dtkwidget
-    ffmpegthumbnailer
-    file
-    glib
-    gnugrep
-    gsettings-qt
-    gvfs
-    jemalloc
-    kcodecs
-    libsecret
-    polkit
-    polkit-qt
-    poppler
-    procps
-    qt5integration
-    qtmultimedia
-    qtsvg
-    qtx11extras
-    samba
-    taglib
-    udisks2-qt5
-    xdg-user-dirs
-    xorg.libX11
-    xorg.libxcb
-    xorg.xcbutil
-    xorg.xcbutilwm
-    xorg.xorgproto
-    zlib
-  ];
-
-  patches = [
-    ./dde-file-manager.fix-paths.patch
-    ./dde-file-manager.fix-mime-cache-paths.patch
-    ./dde-file-manager.pixmaps-paths.patch
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-
-    patchShebangs dde-desktop/translate_generation.sh
-    patchShebangs dde-desktop/translate_ts2desktop.sh
-    patchShebangs dde-file-manager-lib/generate_translations.sh
-    patchShebangs dde-file-manager/generate_translations.sh
-    patchShebangs dde-file-manager/translate_ts2desktop.sh
-    patchShebangs usb-device-formatter/generate_translations.sh
-    patchShebangs usb-device-formatter/translate_ts2desktop.sh
-
-    # x-terminal-emulator is a virtual package in Debian systems. The
-    # terminal emulator is configured by Debian's alternative system.
-    # It is not available on NixOS. Use deepin-terminal instead
-    sed -i -e "s,x-terminal-emulator,deepin-terminal," \
-      dde-file-manager-lib/shutil/fileutils.cpp
-
-    sed -i -e "s,\$\$\\[QT_INSTALL_LIBS\\],$out/lib," \
-       dde-file-manager-lib/dde-file-manager-lib.pro \
-       dde-file-thumbnail-tool/common.pri \
-       common/common.pri
-
-    sed -i '/^QMAKE_PKGCONFIG_DESTDIR/i QMAKE_PKGCONFIG_PREFIX = $$PREFIX' \
-       dde-file-manager-lib/dde-file-manager-lib.pro
-
-    fixPath ${dde-dock} /usr/include/dde-dock \
-      dde-dock-plugins/disk-mount/disk-mount.pro
-
-    # treefrog is not available in NixOS, and I am not sure if it is really needed
-    #fixPath $ {treefrog-framework} /usr/include/treefrog \
-    #  dde-sharefiles/appbase.pri
-
-    fixPath ${deepin-anything} /usr/share/dbus-1/interfaces \
-      dde-file-manager-lib/dbusinterface/dbusinterface.pri
-
-    sed -i -e "s,\$\$system(\$\$PKG_CONFIG --variable libdir deepin-anything-server-lib),$out/lib," \
-      deepin-anything-server-plugins/dde-anythingmonitor/dde-anythingmonitor.pro
-
-    fixPath ${dde-daemon} /usr/lib/deepin-daemon/desktop-toggle \
-      dde-zone/mainwindow.h
-
-    fixPath ${deepin-gettext-tools} /usr/bin/deepin-desktop-ts-convert \
-      dde-desktop/translate_desktop2ts.sh \
-      dde-desktop/translate_ts2desktop.sh \
-      dde-file-manager/translate_desktop2ts.sh \
-      dde-file-manager/translate_ts2desktop.sh \
-      usb-device-formatter/translate_desktop2ts.sh \
-      usb-device-formatter/translate_ts2desktop.sh
-
-    fixPath ${avfs} /usr/bin/mountavfs dde-file-manager-lib/shutil/fileutils.cpp
-    fixPath ${avfs} /usr/bin/umountavfs dde-file-manager-lib/shutil/fileutils.cpp
-
-    fixPath ${deepin-terminal} /usr/bin/deepin-terminal \
-      dde-file-manager-lib/shutil/fileutils.cpp
-
-    fixPath $out /usr/share/dde-file-manager \
-      dde-sharefiles/appbase.pri \
-      dde-sharefiles/dde-sharefiles.pro
-
-    fixPath $out /usr/share/usb-device-formatter \
-      usb-device-formatter/main.cpp
-
-    fixPath $out /usr/share/applications \
-      dde-file-manager/mips/dde-file-manager-autostart.desktop \
-      dde-desktop/development.pri
-
-    fixPath $out /usr/bin \
-      dbusservices/com.deepin.dde.desktop.service \
-      dde-desktop/data/com.deepin.dde.desktop.service \
-      dde-desktop/dbus/filedialog/com.deepin.filemanager.filedialog.service \
-      dde-desktop/dbus/filemanager1/org.freedesktop.FileManager.service \
-      dde-file-manager-daemon/dbusservice/com.deepin.filemanager.daemon.service \
-      dde-file-manager-daemon/dbusservice/dde-filemanager-daemon.service \
-      dde-file-manager-daemon/dde-file-manager-daemon.pro \
-      dde-file-manager-lib/dde-file-manager-lib.pro \
-      dde-file-manager-lib/pkexec/com.deepin.pkexec.dde-file-manager.policy \
-      dde-file-manager/dde-file-manager-xdg-autostart.desktop \
-      dde-file-manager/dde-file-manager.desktop \
-      dde-file-manager/dde-file-manager.pro \
-      dde-file-manager/mips/dde-file-manager-autostart.desktop \
-      dde-file-manager/mips/dde-file-manager.desktop \
-      dde-file-manager/pkexec/com.deepin.pkexec.dde-file-manager.policy \
-      usb-device-formatter/pkexec/com.deepin.pkexec.usb-device-formatter.policy \
-      usb-device-formatter/usb-device-formatter.desktop \
-      usb-device-formatter/usb-device-formatter.pro
-      fixPath $out /etc \
-      dde-file-manager/dde-file-manager.pro \
-      dde-file-manager-daemon/dde-file-manager-daemon.pro
-
-    fixPath $out /usr \
-      common/common.pri \
-      dde-desktop/dbus/filedialog/filedialog.pri \
-      dde-desktop/dbus/filemanager1/filemanager1.pri \
-      dde-desktop/development.pri \
-      dde-dock-plugins/disk-mount/disk-mount.pro \
-      dde-file-manager-daemon/dde-file-manager-daemon.pro \
-      usb-device-formatter/usb-device-formatter.pro
-
-    sed -i -e "s,xdg-user-dir,${xdg-user-dirs}/bin/xdg-user-dir," \
-      dde-file-manager/dde-xdg-user-dirs-update
-
-    sed -i -e "s,Exec=dde-file-manager,Exec=$out/bin/dde-file-manager," \
-      dde-file-manager/dde-file-manager.desktop
-
-    sed -i -e "s,Exec=gio,Exec=${glib.bin}/bin/gio," \
-      dde-desktop/data/applications/dde-trash.desktop \
-      dde-desktop/data/applications/dde-computer.desktop
-
-    sed -i -e "s,/usr/lib/gvfs/gvfsd,${gvfs}/libexec/gvfsd," \
-      dde-file-manager-lib/gvfs/networkmanager.cpp
-
-    sed -i -e "s,/usr/sbin/smbd,${samba}/bin/smbd," \
-           -e "s,/usr/sbin/groupadd,${shadow}/bin/groupadd," \
-           -e "s,/usr/sbin/adduser,${shadow}/bin/adduser," \
-      dde-file-manager-daemon/usershare/usersharemanager.cpp
-
-    sed -i -e 's,startDetached("deepin-shortcut-viewer",startDetached("${deepin-shortcut-viewer}/bin/deepin-shortcut-viewer",' \
-      dde-file-manager-lib/controllers/appcontroller.cpp
-
-    sed -i -e 's,/bin/bash,${runtimeShell},' \
-           -e 's,\<ps\>,${procps}/bin/ps,' \
-           -e 's,\<grep\>,${gnugrep}/bin/grep,' \
-      utils/utils.cpp \
-      dde-file-manager-lib/controllers/fileeventprocessor.cpp
-
-    # The hard coded path in `QString("/etc/xdg/%1/%2")` in
-    # dde-file-manager-lib/interfaces/dfmsettings.cpp
-    # does not needed a fix because all the standard locations
-    # are tried before faling back to /etc/xdg.
-
-    # I do not know yet how to deal with:
-    #   dde-file-manager-lib/sw_label/llsdeepinlabellibrary.h:        return "/usr/lib/sw_64-linux-gnu/dde-file-manager/libllsdeeplabel.so";
-    #   dde-file-manager-lib/sw_label/filemanagerlibrary.h:        return "/usr/lib/sw_64-linux-gnu/dde-file-manager/libfilemanager.so";
-    #   dde-file-manager-lib/sw_label/libinstall.sh:mkdir /usr/lib/sw_64-linux-gnu/dde-file-manager
-    #   dde-file-manager-lib/sw_label/libinstall.sh:cp libfilemanager.so libllsdeeplabel.so /usr/lib/sw_64-linux-gnu/dde-file-manager
-    # They are not present on my installations of Deepin Linux, Arch Linux and Ubuntu. Can they be ignored?
-
-    # Notes:
-    # - As file-roller is looked in the path using QStandardPaths::findExecutable, it is not been added as a dependency.
-    # - deepin-qt5config is a dependency exclusive to the Deepin Linux distribution. No other distribution has it, according to repology.
-  '';
-
-  qmakeFlags = [
-    "QMAKE_CFLAGS_ISYSTEM="
-
-    # Disable ffmpeg
-    "CONFIG+=DISABLE_FFMPEG"
-  ];
-
-  preBuild = ''
-    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${zlib}/lib";
-    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${libX11}/lib";
-  '';
-
-  dontWrapQtApps = true;
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      "''${qtWrapperArgs[@]}"
-    )
-  '';
-
-  postFixup = ''
-    # debuging
-    unset LD_LIBRARY_PATH
-    searchForUnresolvedDLL $out
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "File manager and desktop module for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/dde-file-manager";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-kwin/0001-dde-kwin.pc-make-paths-relative.patch b/pkgs/desktops/deepin/dde-kwin/0001-dde-kwin.pc-make-paths-relative.patch
deleted file mode 100644
index 707eb207409..00000000000
--- a/pkgs/desktops/deepin/dde-kwin/0001-dde-kwin.pc-make-paths-relative.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From c4edb65554f90a5abfc2ecbf63587b8c6ef2653d Mon Sep 17 00:00:00 2001
-From: worldofpeace <worldofpeace@protonmail.ch>
-Date: Tue, 22 Oct 2019 17:20:24 -0400
-Subject: [PATCH] dde-kwin.pc: make paths relative
-
-Values like libdir should be relative to the literal ${prefix}.
-We also use @ONLY so we don't substitute values like ${prefix}
-with CMake resulting in an unintentional replacement.
----
- plugins/kwin-xcb/lib/CMakeLists.txt |  2 +-
- plugins/kwin-xcb/lib/dde-kwin.pc.in | 18 +++++++++---------
- 2 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/plugins/kwin-xcb/lib/CMakeLists.txt b/plugins/kwin-xcb/lib/CMakeLists.txt
-index 0189b74..62e5553 100644
---- a/plugins/kwin-xcb/lib/CMakeLists.txt
-+++ b/plugins/kwin-xcb/lib/CMakeLists.txt
-@@ -61,7 +61,7 @@ install_files(
-     kwinutils.h
- )
- 
--configure_file(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc)
-+configure_file(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
- if (CMAKE_INSTALL_LIBDIR)
-     install_files("/${CMAKE_INSTALL_LIBDIR}/pkgconfig" FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc)
- elseif (CMAKE_LIBRARY_OUTPUT_DIRECTORY)
-diff --git a/plugins/kwin-xcb/lib/dde-kwin.pc.in b/plugins/kwin-xcb/lib/dde-kwin.pc.in
-index 9b1d813..1179761 100644
---- a/plugins/kwin-xcb/lib/dde-kwin.pc.in
-+++ b/plugins/kwin-xcb/lib/dde-kwin.pc.in
-@@ -1,13 +1,13 @@
--prefix=${CMAKE_INSTALL_PREFIX}
--exec_prefix=${CMAKE_INSTALL_PREFIX}
--libdir=${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
--includedir=${INCLUDE_OUTPUT_PATH}
-+prefix=@CMAKE_INSTALL_PREFIX@
-+exec_prefix=${prefix}
-+libdir=${prefix}/lib
-+includedir=@INCLUDE_OUTPUT_PATH@
- 
- 
--Name: ${PROJECT_NAME}
-+Name: @PROJECT_NAME@
- Description: DDE KWin plugin library
--Version: ${PROJECT_VERSION}
--Libs: -l${PROJECT_NAME}
--Libs.private: -L/usr/X11R6/lib64 -lQt5X11Extras -lKF5WindowSystem -lQt5Widgets -lQt5Gui -lKF5ConfigCore -lKF5CoreAddons -lQt5Core -lGL -lpthread   
--Cflags: -I${INCLUDE_OUTPUT_PATH}
-+Version: @PROJECT_VERSION@
-+Libs: -l$@PROJECT_NAME@
-+Libs.private: -L/usr/X11R6/lib64 -lQt5X11Extras -lKF5WindowSystem -lQt5Widgets -lQt5Gui -lKF5ConfigCore -lKF5CoreAddons -lQt5Core -lGL -lpthread
-+Cflags: -I@INCLUDE_OUTPUT_PATH@
- 
--- 
-2.23.0
-
diff --git a/pkgs/desktops/deepin/dde-kwin/default.nix b/pkgs/desktops/deepin/dde-kwin/default.nix
deleted file mode 100644
index ce1a1a8dda0..00000000000
--- a/pkgs/desktops/deepin/dde-kwin/default.nix
+++ /dev/null
@@ -1,142 +0,0 @@
-{ stdenv
-, mkDerivation
-, pkgconfig
-, fetchFromGitHub
-, deepin
-, cmake
-, extra-cmake-modules
-, qtbase
-, libxcb
-, kglobalaccel
-, kwindowsystem
-, kcoreaddons
-, kwin
-, dtkcore
-, gsettings-qt
-, fontconfig
-, deepin-desktop-schemas
-, glib
-, libXrender
-, mtdev
-, qttools
-, deepin-gettext-tools
-, kwayland
-, qtx11extras
-, qtquickcontrols2
-, epoxy
-, qt5integration
-, dde-session-ui
-, dbus
-, wrapGAppsHook
-}:
-
-mkDerivation rec {
-  pname = "dde-kwin";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0bvkx9h5ygj46a0j76kfyq3gvk6zn4fx6clhrmcr40hbi2k33cbl";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    deepin-gettext-tools
-    deepin.setupHook
-    extra-cmake-modules
-    pkgconfig
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    deepin-desktop-schemas
-    dtkcore
-    epoxy
-    fontconfig
-    glib
-    gsettings-qt
-    kcoreaddons
-    kglobalaccel
-    kwayland
-    kwin
-    kwindowsystem
-    libXrender
-    libxcb
-    mtdev
-    qtbase
-    qtquickcontrols2
-    qttools
-    qtx11extras
-    qt5integration
-  ];
-
-  # Need to add kwayland around:
-  # * https://github.com/linuxdeepin/dde-kwin/blob/5226bb984c844129f9fa589da56e77decb7b39a1/plugins/kwineffects/blur/CMakeLists.txt#L14
-  NIX_CFLAGS_COMPILE = [
-    "-I${kwayland.dev}/include/KF5"
-  ];
-
-  cmakeFlags = [
-    "-DKWIN_VERSION=${(builtins.parseDrvName kwin.name).version}"
-  ];
-
-  patches = [
-    ./0001-dde-kwin.pc-make-paths-relative.patch
-    ./fix-paths.patch
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-
-    patchShebangs translate_ts2desktop.sh \
-      translate_generation.sh \
-      translate_desktop2ts.sh \
-      plugins/kwin-xcb/plugin/translate_generation.sh
-
-    fixPath ${deepin-gettext-tools} /usr/bin/deepin-desktop-ts-convert translate_desktop2ts.sh translate_ts2desktop.sh
-
-    fixPath $out /etc/xdg configures/CMakeLists.txt deepin-wm-dbus/deepinwmfaker.cpp
-
-    # TODO: Need environmental patch
-    fixPath /run/current-system/sw /usr/lib plugins/kwin-xcb/plugin/main.cpp
-
-    substituteInPlace configures/kwin-wm-multitaskingview.desktop \
-      --replace "dbus-send" "${dbus}/bin/dbus-send"
-
-    fixPath ${dde-session-ui} /usr/lib/deepin-daemon/dde-warning-dialog deepin-wm-dbus/deepinwmfaker.cpp
-
-    # Correct qt plugin installation path to be within dde-kwin prefix.
-    substituteInPlace CMakeLists.txt \
-      --subst-var-by plugin_path "$out/$qtPluginPrefix"
-  '';
-
-  postInstall = ''
-    # Correct invalid path in .pc
-    substituteInPlace $out/lib/pkgconfig/dde-kwin.pc \
-      --replace "-L/usr/X11R6/lib64" ""
-
-    chmod +x $out/bin/kwin_no_scale
-  '';
-
-  dontWrapQtApps = true;
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      "''${qtWrapperArgs[@]}"
-    )
-  '';
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "KWin configuration for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/dde-kwin";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo worldofpeace ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-kwin/fix-paths.patch b/pkgs/desktops/deepin/dde-kwin/fix-paths.patch
deleted file mode 100644
index 1bf576e5c1a..00000000000
--- a/pkgs/desktops/deepin/dde-kwin/fix-paths.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index feef49d..ecb7ed2 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -26,9 +26,9 @@ macro(query_qmake args output)
-     endif()
- endmacro()
-
--query_qmake("QT_INSTALL_PLUGINS" QT_INSTALL_PLUGINS)
-+set(QT_INSTALL_PLUGINS @plugin_path@)
-
--set(PLUGIN_INSTALL_PATH ${QT_INSTALL_PLUGINS}/platforms)
-+set(PLUGIN_INSTALL_PATH @plugin_path@/platforms)
- # Find includes in corresponding build directories
- set(CMAKE_INCLUDE_CURRENT_DIR ON)
- # Instruct CMake to run moc automatically when needed
diff --git a/pkgs/desktops/deepin/dde-launcher/default.nix b/pkgs/desktops/deepin/dde-launcher/default.nix
deleted file mode 100644
index 0a50f7177ba..00000000000
--- a/pkgs/desktops/deepin/dde-launcher/default.nix
+++ /dev/null
@@ -1,101 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, dde-qt-dbus-factory
-, dde-session-ui
-, deepin
-, deepin-desktop-schemas
-, deepin-wallpapers
-, dtkcore
-, dtkwidget
-, gsettings-qt
-, qtsvg
-, qttools
-, qtx11extras
-, which
-, xdg_utils
-, wrapGAppsHook
-, glib
-}:
-
-mkDerivation rec {
-  pname = "dde-launcher";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0zh6bb0r3pgjrnw9rba46ghdzza1ka1mv7r1znf8gw24wsjgjcpn";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkgconfig
-    qttools
-    wrapGAppsHook
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dde-qt-dbus-factory
-    dde-session-ui
-    deepin-desktop-schemas
-    deepin-wallpapers
-    dtkcore
-    dtkwidget
-    glib
-    gsettings-qt
-    qtsvg
-    qtx11extras
-    which
-    xdg_utils
-  ];
-
-  postPatch = ''
-    # debugging
-    searchHardCodedPaths
-
-    substituteInPlace CMakeLists.txt --replace "/usr/share" "$out/share"
-
-    substituteInPlace src/dbusservices/com.deepin.dde.Launcher.service --replace "/usr" "$out"
-
-    substituteInPlace src/historywidget.cpp --replace "xdg-open" "${xdg_utils}/bin/xdg-open"
-    substituteInPlace src/widgets/miniframebottombar.cpp --replace "dde-shutdown" "${dde-session-ui}/bin/dde-shutdown"
-    substituteInPlace src/widgets/miniframerightbar.cpp --replace "which" "${which}/bin/which"
-
-    # Uncomment (and remove space after $) after packaging deepin-manual
-    #substituteInPlace src/sharedeventfilter.cpp --replace "dman" "$ {deepin-manual}/bin/dman"
-
-    for f in src/boxframe/*.cpp; do
-      substituteInPlace $f --replace "/usr/share/backgrounds/default_background.jpg" "${deepin-wallpapers}/share/backgrounds/deepin/desktop.jpg"
-    done
-
-    # note: `dbus-send` path does not need to be hard coded because it is not used for dtkcore >= 2.0.8.0
-  '';
-
-  dontWrapQtApps = true;
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      "''${qtWrapperArgs[@]}"
-    )
-  '';
-
-  postFixup = ''
-    # debugging
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin Desktop Environment launcher module";
-    homepage = "https://github.com/linuxdeepin/dde-launcher";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-network-utils/default.nix b/pkgs/desktops/deepin/dde-network-utils/default.nix
deleted file mode 100644
index d54558acf08..00000000000
--- a/pkgs/desktops/deepin/dde-network-utils/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, substituteAll
-, qmake
-, pkgconfig
-, qttools
-, dde-qt-dbus-factory
-, proxychains
-, which
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dde-network-utils";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0670kfnkplf7skkd1ql6y9x15kmrcbdv1005qwkg4vn8hic6s0z3";
-  };
-
-  nativeBuildInputs = [
-    qmake
-    pkgconfig
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dde-qt-dbus-factory
-    proxychains
-    which
-  ];
-
-  patches = [
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit which proxychains;
-    })
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # for debugging
-    patchShebangs translate_generation.sh
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # for debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin network utils";
-    homepage = "https://github.com/linuxdeepin/dde-network-utils";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-network-utils/fix-paths.patch b/pkgs/desktops/deepin/dde-network-utils/fix-paths.patch
deleted file mode 100644
index 9f7ecd423c5..00000000000
--- a/pkgs/desktops/deepin/dde-network-utils/fix-paths.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -ur dde-network-utils-master.orig/dde-network-utils.pro dde-network-utils-master/dde-network-utils.pro
---- dde-network-utils-master.orig/dde-network-utils.pro	2019-04-04 03:37:46.000000000 -0300
-+++ dde-network-utils-master/dde-network-utils.pro	2019-04-07 05:56:28.283195087 -0300
-@@ -52,6 +52,7 @@
- 
- QMAKE_PKGCONFIG_NAME = libddenetworkutils
- QMAKE_PKGCONFIG_DESCRIPTION = libddenetworkutils
-+QMAKE_PKGCONFIG_PREFIX = $$PREFIX
- QMAKE_PKGCONFIG_INCDIR = $$includes.path
- QMAKE_PKGCONFIG_LIBDIR = $$target.path
- QMAKE_PKGCONFIG_DESTDIR = pkgconfig
-diff -ur dde-network-utils-master.orig/networkworker.cpp dde-network-utils-master/networkworker.cpp
---- dde-network-utils-master.orig/networkworker.cpp	2019-04-04 03:37:46.000000000 -0300
-+++ dde-network-utils-master/networkworker.cpp	2019-04-07 05:54:28.656479216 -0300
-@@ -80,7 +80,7 @@
-         }
-     }
- 
--    const bool isAppProxyVaild = QProcess::execute("which", QStringList() << "/usr/bin/proxychains4") == 0;
-+    const bool isAppProxyVaild = QProcess::execute("@which@/bin/which", QStringList() << "@proxychains@/bin/proxychains4") == 0;
-     m_networkModel->onAppProxyExistChanged(isAppProxyVaild);
- }
- 
diff --git a/pkgs/desktops/deepin/dde-polkit-agent/dde-polkit-agent.plugins-dir.patch b/pkgs/desktops/deepin/dde-polkit-agent/dde-polkit-agent.plugins-dir.patch
deleted file mode 100644
index a6941e975eb..00000000000
--- a/pkgs/desktops/deepin/dde-polkit-agent/dde-polkit-agent.plugins-dir.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 4f457d38e9e75bc97ee7dba633bf0cdd61b8cd5b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
-Date: Fri, 19 Apr 2019 22:01:16 -0300
-Subject: [PATCH] Use an environment variable to find plugins
-
----
- pluginmanager.cpp | 18 ++++++++++++------
- 1 file changed, 12 insertions(+), 6 deletions(-)
-
-diff --git a/pluginmanager.cpp b/pluginmanager.cpp
-index 0c03237..79bdf86 100644
---- a/pluginmanager.cpp
-+++ b/pluginmanager.cpp
-@@ -34,13 +34,19 @@ QList<QButtonGroup*> PluginManager::reduceGetOptions(const QString &actionID)
- void PluginManager::load()
- {
- 
--    QDir dir("/usr/lib/polkit-1-dde/plugins/");
--    QFileInfoList pluginFiles = dir.entryInfoList((QStringList("*.so")));
-+    QStringList pluginsDirs = QProcessEnvironment::systemEnvironment().value("DDE_POLKIT_PLUGINS_DIRS").split(QDir::listSeparator(), QString::SkipEmptyParts);
-+    pluginsDirs.append("/usr/lib/polkit-1-dde/plugins/");
- 
--    for (const QFileInfo &pluginFile : pluginFiles) {
--       AgentExtension *plugin = loadFile(pluginFile.absoluteFilePath());
--       if (plugin)
--           m_plugins << plugin;
-+    for (const QString &dirName : pluginsDirs) {
-+        QDir dir(dirName);
-+
-+        QFileInfoList pluginFiles = dir.entryInfoList((QStringList("*.so")));
-+
-+        for (const QFileInfo &pluginFile : pluginFiles) {
-+            AgentExtension *plugin = loadFile(pluginFile.absoluteFilePath());
-+            if (plugin)
-+                m_plugins << plugin;
-+        }
-     }
- }
- 
--- 
-2.21.0
-
diff --git a/pkgs/desktops/deepin/dde-polkit-agent/default.nix b/pkgs/desktops/deepin/dde-polkit-agent/default.nix
deleted file mode 100644
index 1ca9a80abaf..00000000000
--- a/pkgs/desktops/deepin/dde-polkit-agent/default.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qttools
-, polkit-qt
-, dtkcore
-, dtkwidget
-, dde-qt-dbus-factory
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dde-polkit-agent";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "00p8syx6rfwhq7wdsk37hm9mvwd0kwj9h0s39hii892h1psd84q9";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dde-qt-dbus-factory
-    dtkcore
-    dtkwidget
-    polkit-qt
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    patchShebangs translate_generation.sh
-
-    fixPath $out /usr dde-polkit-agent.pro polkit-dde-authentication-agent-1.desktop
-    fixPath /run/current-system/sw /usr/lib/polkit-1-dde/plugins pluginmanager.cpp
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "PolicyKit agent for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/dde-polkit-agent";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix b/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix
deleted file mode 100644
index c7efb0f4b04..00000000000
--- a/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, qmake
-, python3
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "dde-qt-dbus-factory";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1wbh4jgvy3c09ivy0vvfk0azkg4d2sv37y23c9rq49jb3sakcjgm";
-  };
-
-  nativeBuildInputs = [
-    qmake
-    python3
-    deepin.setupHook
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    fixPath $out /usr \
-      libdframeworkdbus/DFrameworkdbusConfig.in \
-      libdframeworkdbus/libdframeworkdbus.pro
-  '';
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Qt DBus interface library for Deepin software";
-    homepage = "https://github.com/linuxdeepin/dde-qt-dbus-factory";
-    license = with licenses; [ gpl3Plus lgpl2Plus ];
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dde-session-ui/default.nix b/pkgs/desktops/deepin/dde-session-ui/default.nix
deleted file mode 100644
index ff785f16c81..00000000000
--- a/pkgs/desktops/deepin/dde-session-ui/default.nix
+++ /dev/null
@@ -1,157 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, dbus
-, dde-daemon
-, dde-qt-dbus-factory
-, deepin
-, deepin-desktop-schemas
-, deepin-gettext-tools
-, deepin-icon-theme
-, deepin-wallpapers
-, dtkcore
-, dtkwidget
-, gnugrep
-, gsettings-qt
-, lightdm_qt
-, onboard
-, qtsvg
-, qttools
-, qtx11extras
-, setxkbmap
-, utillinux
-, which
-, xkeyboard_config
-, xorg
-, xrandr
-, wrapGAppsHook
-}:
-
-mkDerivation rec {
-  pname = "dde-session-ui";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1gy9nlpkr9ayrs1z2dvd7h0dqlw6fq2m66d9cs48qyfkr6c8l9jj";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    qttools
-    deepin-gettext-tools
-    wrapGAppsHook
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dbus
-    dde-daemon
-    dde-qt-dbus-factory
-    deepin-desktop-schemas
-    deepin-icon-theme
-    deepin-wallpapers
-    dtkcore
-    dtkwidget
-    gnugrep
-    gsettings-qt
-    lightdm_qt
-    onboard
-    qtsvg
-    qtx11extras
-    setxkbmap
-    utillinux
-    which
-    xkeyboard_config
-    xorg.libXcursor
-    xorg.libXrandr
-    xorg.libXtst
-    xrandr
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-
-    patchShebangs translate_generation.sh translate_desktop.sh
-
-    substituteInPlace translate_desktop.sh --replace "/usr/bin/deepin-desktop-ts-convert" "deepin-desktop-ts-convert"
-
-    find -type f -exec sed -i -e "s,path = /etc,path = $out/etc," {} +
-    find -type f -exec sed -i -e "s,path = /usr,path = $out," {} +
-    find -type f -exec sed -i -e "s,/usr/share/dde-session-ui,$out/share/dde-session-ui," {} +
-
-    substituteInPlace dde-osd/dde-osd_autostart.desktop --replace "Exec=/usr/lib/deepin-daemon/dde-osd" "Exec=$out/lib/deepin-daemon/dde-osd"
-    substituteInPlace dde-osd/com.deepin.dde.osd.service --replace "Exec=/usr/lib/deepin-daemon/dde-osd" "Exec=$out/lib/deepin-daemon/dde-osd"
-    substituteInPlace dde-lock/com.deepin.dde.lockFront.service --replace "Exec=/usr/bin/dde-lock" "Exec=$out/bin/dde-lock"
-    substituteInPlace dmemory-warning-dialog/com.deepin.dde.MemoryWarningDialog.service --replace "Exec=/usr/bin/dmemory-warning-dialog" "Exec=$out/bin/dmemory-warning-dialog"
-    substituteInPlace dde-warning-dialog/com.deepin.dde.WarningDialog.service --replace "Exec=/usr/lib/deepin-daemon/dde-warning-dialog" "Exec=$out/lib/deepin-daemon/dde-warning-dialog"
-    substituteInPlace dde-shutdown/com.deepin.dde.shutdownFront.service --replace "Exec=/usr/bin/dde-shutdown" "Exec=$out/bin/dde-shutdown"
-    substituteInPlace dde-welcome/com.deepin.dde.welcome.service --replace "Exec=/usr/lib/deepin-daemon/dde-welcome" "Exec=$out/lib/deepin-daemon/dde-welcome"
-    substituteInPlace session-ui-guardien/session-ui-guardien.desktop --replace "Exec=/usr/bin/session-ui-guardien" "Exec=$out/bin/session-ui-guardien"
-    substituteInPlace lightdm-deepin-greeter/lightdm-deepin-greeter.desktop --replace "Exec=/usr/bin/deepin-greeter" "Exec=$out/bin/deepin-greeter"
-    substituteInPlace misc/applications/deepin-toggle-desktop.desktop.in --replace "Exec=/usr/lib/deepin-daemon/desktop-toggle" "Exec=${dde-daemon}/lib/deepin-daemon/desktop-toggle"
-
-    # Uncomment (and remove space after $) after packaging deepin-system-monitor
-    #substituteInPlace dde-shutdown/view/contentwidget.cpp --replace "/usr/bin/deepin-system-monitor" "$ {deepin-system-monitor}/bin/deepin-system-monitor"
-
-    substituteInPlace dde-offline-upgrader/main.cpp --replace "dbus-send" "${dbus}/bin/dbus-send"
-    substituteInPlace dde-osd/kblayoutindicator.cpp --replace "dbus-send" "${dbus}/bin/dbus-send"
-    substituteInPlace dde-shutdown/view/contentwidget.cpp --replace "/usr/share/backgrounds/deepin" "${deepin-wallpapers}/share/backgrounds/deepin"
-    substituteInPlace dde-welcome/mainwidget.cpp --replace "dbus-send" "${dbus}/bin/dbus-send"
-    substituteInPlace dmemory-warning-dialog/src/buttondelegate.cpp --replace "dbus-send" "${dbus}/bin/dbus-send"
-    substituteInPlace dmemory-warning-dialog/src/buttondelegate.cpp --replace "kill" "${utillinux}/bin/dbus-send"
-    substituteInPlace global_util/xkbparser.h --replace "/usr/share/X11/xkb/rules/base.xml" "${xkeyboard_config}/share/X11/xkb/rules/base.xml"
-    substituteInPlace lightdm-deepin-greeter/deepin-greeter --replace "/etc/deepin/greeters.d" "$out/etc/deepin/greeters.d"
-    substituteInPlace lightdm-deepin-greeter/main.cpp --replace "/usr/share/icons/deepin" "${deepin-icon-theme}/share/icons/deepin"
-    substituteInPlace lightdm-deepin-greeter/scripts/00-xrandr --replace "egrep" "${gnugrep}/bin/egrep"
-    substituteInPlace lightdm-deepin-greeter/scripts/00-xrandr --replace "xrandr" "${xrandr}/bin/xrandr"
-    substituteInPlace lightdm-deepin-greeter/scripts/lightdm-deepin-greeter --replace "/usr/bin/lightdm-deepin-greeter" "$out/bin/lightdm-deepin-greeter"
-    substituteInPlace session-ui-guardien/guardien.cpp --replace "dde-lock" "$out/bin/dde-lock"
-    substituteInPlace session-ui-guardien/guardien.cpp --replace "dde-shutdown" "$out/bin/dde-shutdown"
-    substituteInPlace dde-lock/lockworker.cpp --replace "dde-switchtogreeter" "$out/bin/dde-switchtogreeter"
-    substituteInPlace dde-lock/lockworker.cpp --replace "which" "${which}/bin/which"
-    substituteInPlace session-widgets/userinfo.cpp --replace "/usr/share/wallpapers/deepin" "${deepin-wallpapers}/share/wallpapers/deepin"
-    substituteInPlace widgets/fullscreenbackground.cpp --replace "/usr/share/wallpapers/deepin" "${deepin-wallpapers}/share/wallpapers/deepin"
-    substituteInPlace widgets/kblayoutwidget.cpp --replace "setxkbmap" "${setxkbmap}/bin/setxkbmap"
-    substituteInPlace widgets/virtualkbinstance.cpp --replace "onboard" "${onboard}/bin/onboard"
-
-    # fix default background url
-    substituteInPlace widgets/fullscreenbackground.cpp --replace "/usr/share/backgrounds/default_background.jpg" "${deepin-wallpapers}/share/backgrounds/deepin/desktop.jpg"
-
-    # NOTES
-    # - on deepin linux /usr/share/icons/default/index.theme is controlled by alternatives, without an equivalent mechanism in NixOS
-    # - do not wrap dde-dman-portal related files: it appears it has been removed: https://github.com/linuxdeepin/dde-session-ui/commit/3bd028cf135ad22c784c0146e447ef34a69af768
-  '';
-
-  dontWrapQtApps = true;
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      "''${qtWrapperArgs[@]}"
-    )
-  '';
-
-  postFixup = ''
-    # wrapGAppsHook or wrapQtAppsHook does not work with binaries outside of $out/bin or $out/libexec
-    for binary in $out/lib/deepin-daemon/*; do
-      wrapProgram $binary "''${gappsWrapperArgs[@]}"
-    done
-
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin desktop-environment - Session UI module";
-    homepage = "https://github.com/linuxdeepin/dde-session-ui";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-anything/default.nix b/pkgs/desktops/deepin/deepin-anything/default.nix
deleted file mode 100644
index 5fa6c93951d..00000000000
--- a/pkgs/desktops/deepin/deepin-anything/default.nix
+++ /dev/null
@@ -1,82 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, fetchpatch
-, pkgconfig
-, qtbase
-, udisks2-qt5
-, utillinux
-, dtkcore
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-anything";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1kvyffrii4b012f6ld1ih14qrn7gg5cxbdpbkac0wxb22hnz0azm";
-  };
-
-  patches = [
-    # fix compilation error and add support to kernel 5.6
-    # https://github.com/linuxdeepin/deepin-anything/pull/27
-    (fetchpatch {
-      name = "linux-5.6.patch";
-      url = "https://github.com/linuxdeepin/deepin-anything/commit/764b820c2bcd7248993349b32f91043fc58ee958.patch";
-      sha256 = "1ww4xllxc2s04px6fy8wp5cyw54xaz155ry30sqz21vl8awfr36h";
-    })
-  ];
-
-  outputs = [ "out" "modsrc" ];
-
-  nativeBuildInputs = [
-    pkgconfig
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    qtbase
-    udisks2-qt5
-    utillinux
-  ];
-
-  enableParallelBuilding = true;
-
-  makeFlags = [
-    "DEB_HOST_MULTIARCH="
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # for debugging
-    fixPath $modsrc /usr/src Makefile
-    fixPath $out /usr Makefile
-    fixPath $out /usr server/tool/tool.pro
-    fixPath $out /etc server/tool/tool.pro
-    fixPath $out /usr/bin \
-      server/tool/deepin-anything-tool.service \
-      server/tool/com.deepin.anything.service \
-      server/monitor/deepin-anything-monitor.service
-    sed -e 's,/lib/systemd,$$PREFIX/lib/systemd,' -i server/monitor/src/src.pro server/tool/tool.pro
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # for debugging
-    searchHardCodedPaths $modsrc  # for debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin file search tool";
-    homepage = "https://github.com/linuxdeepin/deepin-anything";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-calculator/default.nix b/pkgs/desktops/deepin/deepin-calculator/default.nix
deleted file mode 100644
index 67ead7d314a..00000000000
--- a/pkgs/desktops/deepin/deepin-calculator/default.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qttools
-, qtsvg
-, dtkcore
-, dtkwidget
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-calculator";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0f26y7b3giybybhvlzbnwcw8kidzvhq66h0c15n9ww81gnlqf7v5";
-  };
-
-  nativeBuildInputs = [
-    qmake
-    pkgconfig
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    qtsvg
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-    patchShebangs translate_generation.sh
-    fixPath $out /usr deepin-calculator.pro
-    substituteInPlace deepin-calculator.desktop --replace "Exec=deepin-calculator" "Exec=$out/bin/deepin-calculator"
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Easy to use calculator for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/deepin-calculator";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-desktop-base/default.nix b/pkgs/desktops/deepin/deepin-desktop-base/default.nix
deleted file mode 100644
index 74fa53b715d..00000000000
--- a/pkgs/desktops/deepin/deepin-desktop-base/default.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, deepin-wallpapers
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-desktop-base";
-  version = "2019.07.10";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0rs7bjy35k5gc5nbba1cijhdz16zny30lgmcf2ckx1pkdszk2vra";
-  };
-
-  nativeBuildInputs = [
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    deepin-wallpapers
-  ];
-
-  # TODO: Fedora recommended dependencies:
-  #   deepin-wallpapers
-  #   plymouth-theme-deepin
-
-  postPatch = ''
-    searchHardCodedPaths
-
-    fixPath $out /etc Makefile
-    fixPath $out /usr Makefile
-
-    # Remove Deepin distro's lsb-release
-    # Don't override systemd timeouts
-    # Remove apt-specific templates
-    echo ----------------------------------------------------------------
-    echo grep --color=always -E 'lsb-release|systemd|python-apt|backgrounds' Makefile
-    grep --color=always -E 'lsb-release|systemd|python-apt|backgrounds' Makefile
-    echo ----------------------------------------------------------------
-    sed -i -E '/lsb-release|systemd|python-apt|backgrounds/d' Makefile
-  '';
-
-  postInstall = ''
-    # Make a symlink for deepin-version
-    ln -s ../lib/deepin/desktop-version $out/etc/deepin-version
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Base assets and definitions for Deepin Desktop Environment";
-    # TODO: revise
-    longDescription = ''
-      This package provides some components for Deepin desktop environment.
-      - deepin logo
-      - deepin desktop version
-      - login screen background image
-      - language information
-    '';
-    homepage = "https://github.com/linuxdeepin/deepin-desktop-base";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix b/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix
deleted file mode 100644
index 15f9498cf0d..00000000000
--- a/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix
+++ /dev/null
@@ -1,79 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, python3
-, dconf
-, glib
-, deepin-gtk-theme
-, deepin-icon-theme
-, deepin-sound-theme
-, deepin-wallpapers
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-desktop-schemas";
-  version = "3.13.9";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1c69j6s7561zb1hrd1j3ihji1nvpgfzfgnp6svsv8jd8dg8vs8l1";
-  };
-
-  nativeBuildInputs = [
-    python3
-    glib.dev
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dconf
-    deepin-gtk-theme
-    deepin-icon-theme
-    deepin-sound-theme
-    deepin-wallpapers
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-
-    # fix default background url
-    sed -i -e 's,/usr/share/backgrounds/default_background.jpg,/usr/share/backgrounds/deepin/desktop.jpg,' \
-      overrides/common/com.deepin.wrap.gnome.desktop.override
-
-    fixPath ${deepin-wallpapers} /usr/share/backgrounds \
-      overrides/common/com.deepin.wrap.gnome.desktop.override
-
-    fixPath ${deepin-wallpapers} /usr/share/wallpapers/deepin \
-      schemas/com.deepin.dde.appearance.gschema.xml
-
-    # still hardcoded paths:
-    #   /etc/gnome-settings-daemon/xrandr/monitors.xml                                ? gnome3.gnome-settings-daemon
-    #   /usr/share/backgrounds/gnome/adwaita-lock.jpg                                 ? gnome3.gnome-backgrounds
-    #   /usr/share/backgrounds/gnome/adwaita-timed.xml                                gnome3.gnome-backgrounds
-    #   /usr/share/desktop-directories
-  '';
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  doCheck = true;
-  checkTarget = "test";
-
-  postInstall = ''
-    glib-compile-schemas --strict $out/share/glib-2.0/schemas
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "GSettings deepin desktop-wide schemas";
-    homepage = "https://github.com/linuxdeepin/deepin-desktop-schemas";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-editor/default.nix b/pkgs/desktops/deepin/deepin-editor/default.nix
deleted file mode 100644
index 0124ca8cc9e..00000000000
--- a/pkgs/desktops/deepin/deepin-editor/default.nix
+++ /dev/null
@@ -1,72 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, deepin
-, dtkcore
-, dtkwidget
-, kcodecs
-, qttools
-, syntax-highlighting
-, wrapQtAppsHook
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-editor";
-  version = "1.2.9.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0g7c3adqwn8i4ndxdrzibahr75dddz1fiqnsh3bjj1jjr86rv4ks";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkgconfig
-    qttools
-    wrapQtAppsHook
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    kcodecs
-    syntax-highlighting
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-
-    patchShebangs translate_generation.sh
-
-    fixPath $out /usr \
-      CMakeLists.txt \
-      dedit/main.cpp \
-      src/resources/settings.json \
-      src/thememodule/themelistmodel.cpp
-
-    substituteInPlace deepin-editor.desktop \
-      --replace "Exec=deepin-editor" "Exec=$out/bin/deepin-editor"
-
-    substituteInPlace src/editwrapper.cpp \
-      --replace "appExec = \"deepin-editor\"" "appExec = \"$out/bin/deepin-editor\""
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Simple editor for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/deepin-editor";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo worldofpeace ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-gettext-tools/default.nix b/pkgs/desktops/deepin/deepin-gettext-tools/default.nix
deleted file mode 100644
index 432add458de..00000000000
--- a/pkgs/desktops/deepin/deepin-gettext-tools/default.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, gettext
-, python3Packages
-, perlPackages
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-gettext-tools";
-  version = "1.0.8";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "03cwa82dd14a31v44jd3z0kpiri6g21ar4f48s8ph78nvjy55880";
-  };
-
-  nativeBuildInputs = [
-    python3Packages.wrapPython
-  ];
-
-  buildInputs = [
-    gettext
-    perlPackages.perl
-    perlPackages.XMLLibXML
-    perlPackages.ConfigTiny
-    python3Packages.python
-  ];
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  postPatch = ''
-    sed -e 's/sudo cp/cp/' -i src/generate_mo.py
-  '';
-
-  postFixup = ''
-    wrapPythonPrograms
-    wrapPythonProgramsIn "$out/lib/${pname}"
-    wrapProgram $out/bin/deepin-desktop-ts-convert --set PERL5LIB $PERL5LIB
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin Internationalization utilities";
-    homepage = "https://github.com/linuxdeepin/deepin-gettext-tools";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-gtk-theme/default.nix b/pkgs/desktops/deepin/deepin-gtk-theme/default.nix
deleted file mode 100644
index eee07470585..00000000000
--- a/pkgs/desktops/deepin/deepin-gtk-theme/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, gtk-engine-murrine
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-gtk-theme";
-  version = "17.10.11";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = "deepin-gtk-theme";
-    rev = version;
-    sha256 = "0zs6mq70yd1k3d9zm3q6zxnw1md56r4imad5imdxwx58yxdx47fw";
-  };
-
-  propagatedUserEnvPkgs = [
-    gtk-engine-murrine
-  ];
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin GTK Theme";
-    homepage = "https://github.com/linuxdeepin/deepin-gtk-theme";
-    license = licenses.lgpl3;
-    platforms = platforms.unix;
-    maintainers = [ maintainers.romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-icon-theme/default.nix b/pkgs/desktops/deepin/deepin-icon-theme/default.nix
deleted file mode 100644
index b56b219faff..00000000000
--- a/pkgs/desktops/deepin/deepin-icon-theme/default.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, gtk3
-, xcursorgen
-, papirus-icon-theme
-, hicolor-icon-theme
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-icon-theme";
-  version = "2020.05.21";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0b1s6kf0q804zbbghly981wzacy1spi8168shf3x8w95rqj6463p";
-  };
-
-  nativeBuildInputs = [
-    gtk3
-    xcursorgen
-  ];
-
-  propagatedBuildInputs = [
-    papirus-icon-theme
-    hicolor-icon-theme
-  ];
-
-  dontDropIconThemeCache = true;
-
-  buildTargets = "all hicolor-links";
-
-  postPatch = ''
-    # fix: hicolor links should follow the deepin -> bloom naming change
-    # https://github.com/linuxdeepin/deepin-icon-theme/pull/24
-    substituteInPlace tools/hicolor.links --replace deepin bloom
-
-    substituteInPlace Sea/index.theme --replace Inherits=deepin Inherits=bloom
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/share/icons
-    cp -vai bloom* Sea $out/share/icons
-
-    for theme in $out/share/icons/*; do
-      gtk-update-icon-cache $theme
-    done
-
-    cp -vai usr/share/icons/hicolor $out/share/icons
-
-    runHook postInstall
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Icons for the Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/deepin-icon-theme";
-    license = licenses.gpl3;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-image-viewer/default.nix b/pkgs/desktops/deepin/deepin-image-viewer/default.nix
deleted file mode 100644
index 43c18c85abc..00000000000
--- a/pkgs/desktops/deepin/deepin-image-viewer/default.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qttools
-, qtsvg
-, qtx11extras
-, dtkcore
-, dtkwidget
-, qt5integration
-, freeimage
-, libraw
-, libexif
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-image-viewer";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "01524hfdy3wvdf07n9b3qb8jdpxzg2hwjpl4gxvr68qws5nbnb3c";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    qtsvg
-    qtx11extras
-    dtkcore
-    dtkwidget
-    qt5integration
-    freeimage
-    libraw
-    libexif
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    patchShebangs viewer/generate_translations.sh
-    fixPath $out /usr viewer/com.deepin.ImageViewer.service
-    sed -i qimage-plugins/freeimage/freeimage.pro \
-           qimage-plugins/libraw/libraw.pro \
-      -e "s,\$\$\[QT_INSTALL_PLUGINS\],$out/$qtPluginPrefix,"
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Image Viewer for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/deepin-image-viewer";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    badPlatforms = [ "aarch64-linux" ]; # See https://github.com/NixOS/nixpkgs/pull/46463#issuecomment-420274189
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-menu/default.nix b/pkgs/desktops/deepin/deepin-menu/default.nix
deleted file mode 100644
index 983fe4e1c4d..00000000000
--- a/pkgs/desktops/deepin/deepin-menu/default.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, dtkcore
-, dtkwidget
-, qt5integration
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-menu";
-  version = "3.4.8";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "09i0ybllymlj7s46pxma5py6x8nknfja4gxn5gj9kpf2c37qsqjc";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    qt5integration
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    fixPath $out /usr \
-      data/com.deepin.menu.service \
-      deepin-menu.desktop \
-      deepin-menu.pro
-  '';
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin menu service";
-    homepage = "https://github.com/linuxdeepin/deepin-menu";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-movie-reborn/default.nix b/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
deleted file mode 100644
index 68daffb0d15..00000000000
--- a/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
+++ /dev/null
@@ -1,85 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, fetchpatch
-, cmake
-, pkgconfig
-, qttools
-, qtx11extras
-, dtkcore
-, dtkwidget
-, ffmpeg_3
-, ffmpegthumbnailer
-, mpv
-, pulseaudio
-, libdvdnav
-, libdvdread
-, xorg
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-movie-reborn";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0cly8q0514a58s3h3wsvx9yxar7flz6i2q8xkrkfjias22b3z7b0";
-  };
-
-  outputs = [ "out" "dev" ];
-
-  nativeBuildInputs = [
-    cmake
-    pkgconfig
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    ffmpeg_3
-    ffmpegthumbnailer
-    libdvdnav
-    libdvdread
-    mpv
-    pulseaudio
-    qtx11extras
-    xorg.libXdmcp
-    xorg.libXtst
-    xorg.libpthreadstubs
-    xorg.xcbproto
-  ];
-
-  patches = [
-    # fix: build failed if cannot find dtk-settings tool
-    (fetchpatch {
-      url = "https://github.com/linuxdeepin/deepin-movie-reborn/commit/fbb307b.patch";
-      sha256 = "0915za0khki0729rvcfpxkh6vxhqwc47cgcmjc90kfq1004221vx";
-    })
-  ];
-
-  NIX_LDFLAGS = "-ldvdnav";
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-
-    sed -i src/libdmr/libdmr.pc.in -e "s,/usr,$out," -e 's,libdir=''${prefix}/,libdir=,'
-
-    substituteInPlace src/deepin-movie.desktop \
-      --replace "Exec=deepin-movie" "Exec=$out/bin/deepin-movie"
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin movie player";
-    homepage = "https://github.com/linuxdeepin/deepin-movie-reborn";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix b/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix
deleted file mode 100644
index 76d8847b73f..00000000000
--- a/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, dtkcore
-, dtkwidget
-, qt5integration
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-shortcut-viewer";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "13vz8kjdqkrhgpvdgrvwn62vwzbyqp88hjm5m4rcqg3bh56709ma";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    qt5integration
-  ];
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Pop-up shortcut viewer for Deepin applications";
-    homepage = "https://github.com/linuxdeepin/deepin-shortcut-viewer";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-sound-theme/default.nix b/pkgs/desktops/deepin/deepin-sound-theme/default.nix
deleted file mode 100644
index e71c0cb77c5..00000000000
--- a/pkgs/desktops/deepin/deepin-sound-theme/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-sound-theme";
-  version = "15.10.3";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = "deepin-sound-theme";
-    rev = version;
-    sha256 = "1sw4nrn7q7wk1hpicm05apyc0mihaw42iqm52wb8ib8gm1qiylr9";
-  };
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin sound theme";
-    homepage = "https://github.com/linuxdeepin/deepin-sound-theme";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-terminal/default.nix b/pkgs/desktops/deepin/deepin-terminal/default.nix
deleted file mode 100644
index ae312137942..00000000000
--- a/pkgs/desktops/deepin/deepin-terminal/default.nix
+++ /dev/null
@@ -1,117 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, ninja
-, vala_0_40
-, fetchpatch
-, gettext
-, at-spi2-core
-, dbus
-, epoxy
-, expect
-, gtk3
-, json-glib
-, libXdmcp
-, libgee
-, libpthreadstubs
-, librsvg
-, libsecret
-, libtasn1
-, libxcb
-, libxkbcommon
-, p11-kit
-, pcre
-, vte
-, wnck
-, libselinux
-, gnutls
-, pcre2
-, libsepol
-, utillinux
-, deepin-menu
-, deepin-shortcut-viewer
-, deepin
-, wrapGAppsHook
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-terminal";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = "deepin-terminal";
-    rev = version;
-    sha256 = "1929saj828b438d07caw3cjhqq60v6gni7mi3fqrg9wdjz81xwv7";
-  };
-
-  patches = [
-    # Fix build with VTE 0.60
-    (fetchpatch {
-      url = "https://github.com/linuxdeepin/deepin-terminal/commit/542d1035b609698ee81aa7971d20ca8e5930743d.patch";
-      sha256 = "1pihiy70yc25fm5fx7i7v9gmi65v4mhldvi7xwv8rgr2z6hbfj41";
-    })
-  ];
-
-  nativeBuildInputs = [
-    pkgconfig
-    cmake
-    ninja
-    vala_0_40 # xcb.vapi:411.3-411.48: error: missing return statement at end of subroutine body
-    gettext
-    libselinux libsepol utillinux # required by gio
-    deepin.setupHook
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    at-spi2-core
-    dbus
-    deepin-menu
-    deepin-shortcut-viewer
-    epoxy
-    expect
-    gtk3
-    json-glib
-    libXdmcp
-    libgee
-    libpthreadstubs
-    librsvg
-    libsecret
-    libtasn1
-    libxcb
-    libxkbcommon
-    p11-kit
-    pcre
-    vte
-    wnck
-    gnutls
-    pcre2
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-  '';
-
-  cmakeFlags = [
-    "-DTEST_BUILD=OFF"
-    "-DUSE_VENDOR_LIB=OFF"
-    "-DVERSION=${version}"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Default terminal emulator for Deepin";
-    longDescription = ''
-      Deepin terminal, it sharpens your focus in the world of command line!
-      It is an advanced terminal emulator with workspace, multiple
-      windows, remote management, quake mode and other features.
-    '';
-    homepage = "https://github.com/linuxdeepin/deepin-terminal";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-turbo/default.nix b/pkgs/desktops/deepin/deepin-turbo/default.nix
deleted file mode 100644
index 6bba51ac674..00000000000
--- a/pkgs/desktops/deepin/deepin-turbo/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, cmake
-, pkgconfig
-, qtbase
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-turbo";
-  version = "0.0.3";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "15l0pgszmbirlaxj04ishj43kyvigsl1yaf58kxlbdb3lkmcp5f3";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkgconfig
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    qtbase
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # for debugging
-    fixPath $out /usr/lib/systemd src/booster-dtkwidget/CMakeLists.txt
-    fixPath $out /usr/lib/deepin-turbo src/booster-dtkwidget/deepin-turbo-booster-dtkwidget.service
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # for debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "A daemon that helps to launch applications faster";
-    homepage = "https://github.com/linuxdeepin/deepin-turbo";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/deepin-wallpapers/default.nix b/pkgs/desktops/deepin/deepin-wallpapers/default.nix
deleted file mode 100644
index 4fa3d6043d5..00000000000
--- a/pkgs/desktops/deepin/deepin-wallpapers/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, dde-api
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-wallpapers";
-  version = "1.7.7";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = "deepin-wallpapers";
-    rev = version;
-    sha256 = "09cfnxbpms98ibqbi4xd51181q3az5n8rmndcdr9w12kyzniz7xv";
-  };
-
-  nativeBuildInputs = [
-    dde-api
-    deepin.setupHook
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths # debugging
-
-    sed -i -e "s:/usr/lib/deepin-api:${dde-api}/lib/deepin-api:" Makefile
-    sed -i -e "s:/usr/share/wallpapers:$out/share/wallpapers:" Makefile
-  '';
-
-  installPhase = ''
-    mkdir -p $out/share/wallpapers/deepin
-    cp -a deepin/* deepin-community/* deepin-private/* $out/share/wallpapers/deepin
-    mkdir -p $out/var/cache
-    cp -a image-blur $out/var/cache
-    
-    # Suggested by upstream
-    mkdir -p $out/share/backgrounds/deepin
-    ln -s ../../wallpapers/deepin/Hummingbird_by_Shu_Le.jpg $out/share/backgrounds/deepin/desktop.jpg
-    ln -s $(echo -n $out/share/wallpapers/deepin/Hummingbird_by_Shu_Le.jpg | md5sum | cut -d " " -f 1).jpg \
-      $out/var/cache/image-blur/$(echo -n $out/share/backgrounds/deepin/desktop.jpg | md5sum | cut -d " " -f 1).jpg
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Wallpapers for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/deepin-wallpapers";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
deleted file mode 100644
index b177b2ccf35..00000000000
--- a/pkgs/desktops/deepin/default.nix
+++ /dev/null
@@ -1,62 +0,0 @@
-{ pkgs, makeScope, libsForQt5 }:
-let
-  packages = self: with self; {
-    setupHook = ./setup-hook.sh;
-
-    # Update script tailored to deepin packages from git repository
-    updateScript = { pname, version, src }:
-      pkgs.genericUpdater {
-        inherit pname version;
-        attrPath = "deepin.${pname}";
-        versionLister = "${pkgs.common-updater-scripts}/bin/list-git-tags ${src.meta.homepage}";
-        ignoredVersions = "^2014(\\.|rc)|^v[0-9]+";
-      };
-
-    dde-api = callPackage ./dde-api { };
-    dde-calendar = callPackage ./dde-calendar { };
-    dde-control-center = callPackage ./dde-control-center { };
-    dde-daemon = callPackage ./dde-daemon { };
-    dde-dock = callPackage ./dde-dock { };
-    dde-file-manager = callPackage ./dde-file-manager { };
-    dde-kwin = callPackage ./dde-kwin { };
-    dde-launcher = callPackage ./dde-launcher { };
-    dde-network-utils = callPackage ./dde-network-utils { };
-    dde-polkit-agent = callPackage ./dde-polkit-agent { };
-    dde-qt-dbus-factory = callPackage ./dde-qt-dbus-factory { };
-    dde-session-ui = callPackage ./dde-session-ui { };
-    deepin-anything = callPackage ./deepin-anything { };
-    deepin-calculator = callPackage ./deepin-calculator { };
-    deepin-desktop-base = callPackage ./deepin-desktop-base { };
-    deepin-desktop-schemas = callPackage ./deepin-desktop-schemas { };
-    deepin-editor = callPackage ./deepin-editor { };
-    deepin-gettext-tools = callPackage ./deepin-gettext-tools { };
-    deepin-gtk-theme = callPackage ./deepin-gtk-theme { };
-    deepin-icon-theme = callPackage ./deepin-icon-theme { };
-    deepin-image-viewer = callPackage ./deepin-image-viewer { };
-    deepin-menu = callPackage ./deepin-menu { };
-    deepin-movie-reborn = callPackage ./deepin-movie-reborn { };
-    deepin-shortcut-viewer = callPackage ./deepin-shortcut-viewer { };
-    deepin-sound-theme = callPackage ./deepin-sound-theme { };
-    deepin-terminal = callPackage ./deepin-terminal {
-      wnck = pkgs.libwnck3;
-    };
-    deepin-turbo = callPackage ./deepin-turbo { };
-    deepin-wallpapers = callPackage ./deepin-wallpapers { };
-    disomaster = callPackage ./disomaster { };
-    dpa-ext-gnomekeyring = callPackage ./dpa-ext-gnomekeyring { };
-    dtkcore = callPackage ./dtkcore { };
-    dtkwidget = callPackage ./dtkwidget { };
-    dtkwm = callPackage ./dtkwm { };
-    go-dbus-factory = callPackage ./go-dbus-factory { };
-    go-gir-generator = callPackage ./go-gir-generator { };
-    go-lib = callPackage ./go-lib { };
-    qcef = callPackage ./qcef { };
-    qt5integration = callPackage ./qt5integration { };
-    qt5platform-plugins = callPackage ./qt5platform-plugins { };
-    startdde = callPackage ./startdde { };
-    udisks2-qt5 = callPackage ./udisks2-qt5 { };
-
-  };
-
-in
-makeScope libsForQt5.newScope packages
diff --git a/pkgs/desktops/deepin/disomaster/default.nix b/pkgs/desktops/deepin/disomaster/default.nix
deleted file mode 100644
index 89cbe34ceaa..00000000000
--- a/pkgs/desktops/deepin/disomaster/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qtbase
-, libisoburn
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "disomaster";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1kmhlnw37pdmlf7k9zry657xlhz40m9nzg361kiyisn186pfqpws";
-  };
-
-  nativeBuildInputs = [
-    deepin.setupHook
-    pkgconfig
-    qmake
-  ];
-
-  buildInputs = [
-    libisoburn
-    qtbase
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-  '';
-
-  qmakeFlags = [
-    "QMAKE_PKGCONFIG_PREFIX=${placeholder "out"}"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "A libisoburn wrapper for Qt";
-    homepage = "https://github.com/linuxdeepin/disomaster";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo worldofpeace ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix b/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix
deleted file mode 100644
index 2caef7ce916..00000000000
--- a/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qttools
-, gnome3
-, dde-polkit-agent
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "dpa-ext-gnomekeyring";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "168j42nwyw7vcgwc0fha2pjpwwlgir70fq1hns4ia1dkdqa1nhzw";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dde-polkit-agent
-    gnome3.libgnome-keyring
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    patchShebangs translate_generation.sh
-    fixPath $out /usr dpa-ext-gnomekeyring.pro gnomekeyringextention.cpp
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "GNOME keyring extension for dde-polkit-agent";
-    homepage = "https://github.com/linuxdeepin/dpa-ext-gnomekeyring";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dtkcore/default.nix b/pkgs/desktops/deepin/dtkcore/default.nix
deleted file mode 100644
index 570b0cc2c11..00000000000
--- a/pkgs/desktops/deepin/dtkcore/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, gsettings-qt
-, pythonPackages
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dtkcore";
-  version = "2.1.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0xdh6mmrv8yr6mjmlwj0fv037parkkwfwlaibcbrskwxqp9iri1y";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    pythonPackages.wrapPython
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    gsettings-qt
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-
-    # Fix shebang
-    sed -i tools/script/dtk-translate.py -e "s,#!env,#!/usr/bin/env,"
-  '';
-
-  qmakeFlags = [
-    "DTK_VERSION=${version}"
-    "LIB_INSTALL_DIR=${placeholder "out"}/lib"
-    "MKSPECS_INSTALL_DIR=${placeholder "out"}/mkspecs"
-  ];
-
-  postFixup = ''
-    chmod +x $out/lib/libdtk-${version}/DCore/bin/*.py
-    wrapPythonProgramsIn "$out/lib/libdtk-${version}/DCore/bin" "$out $pythonPath"
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin tool kit core library";
-    homepage = "https://github.com/linuxdeepin/dtkcore";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dtkwidget/default.nix b/pkgs/desktops/deepin/dtkwidget/default.nix
deleted file mode 100644
index 9be222830db..00000000000
--- a/pkgs/desktops/deepin/dtkwidget/default.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qttools
-, qtmultimedia
-, qtsvg
-, qtx11extras
-, librsvg
-, libstartup_notification
-, gsettings-qt
-, dde-qt-dbus-factory
-, dtkcore
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dtkwidget";
-  version = "2.1.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0yqrm1p0k1843ldvcd79dxl26ybyl5kljl6vwhzc58sx7pw4qmvh";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    qttools
-  ];
-
-  buildInputs = [
-    qtmultimedia
-    qtsvg
-    qtx11extras
-    librsvg
-    libstartup_notification
-    gsettings-qt
-    dde-qt-dbus-factory
-    dtkcore
-  ];
-
-  outRef = placeholder "out";
-
-  qmakeFlags = [
-    "INCLUDE_INSTALL_DIR=${outRef}/include"
-    "LIB_INSTALL_DIR=${outRef}/lib"
-    "QT_HOST_DATA=${outRef}"
-  ];
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin graphical user interface library";
-    homepage = "https://github.com/linuxdeepin/dtkwidget";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/dtkwm/default.nix b/pkgs/desktops/deepin/dtkwm/default.nix
deleted file mode 100644
index 56031f11492..00000000000
--- a/pkgs/desktops/deepin/dtkwm/default.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, fetchpatch
-, pkgconfig
-, qmake
-, qtx11extras
-, dtkcore
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dtkwm";
-  version = "2.0.12";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0rdzzqsggqarldwb4yp5s4sf5czicgxbdmibjn0pw32129r2d1g3";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-  ];
-
-  buildInputs = [
-    dtkcore
-    qtx11extras
-  ];
-
-  patches = [
-    # Set DTK_MODULE_NAME
-    (fetchpatch {
-      url = "https://github.com/linuxdeepin/dtkwm/commit/2490891a.patch";
-      sha256 = "0krydxjpnaihkgs1n49b6mcf3rd3lkispcnkb1j5vpfs9hp9f48j";
-    })
-  ];
-
-  outRef = placeholder "out";
-
-  qmakeFlags = [
-    "QT_HOST_DATA=${outRef}"
-    "INCLUDE_INSTALL_DIR=${outRef}/include"
-    "LIB_INSTALL_DIR=${outRef}/lib"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin graphical user interface library";
-    homepage = "https://github.com/linuxdeepin/dtkwm";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/go-dbus-factory/default.nix b/pkgs/desktops/deepin/go-dbus-factory/default.nix
deleted file mode 100644
index 1c1afd9d099..00000000000
--- a/pkgs/desktops/deepin/go-dbus-factory/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "go-dbus-factory";
-  version = "0.9.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "06fqyad9f50gcjsjkh7929yyaprahdjhnd0dr4gl2797a7wysl3f";
-  };
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  postPatch = ''
-    sed -i -e 's:/share/gocode:/share/go:' Makefile
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "GoLang DBus factory for the Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/go-dbus-factory";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/go-gir-generator/default.nix b/pkgs/desktops/deepin/go-gir-generator/default.nix
deleted file mode 100644
index 7768f9afc85..00000000000
--- a/pkgs/desktops/deepin/go-gir-generator/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ stdenv
-, fetchpatch
-, fetchFromGitHub
-, pkgconfig
-, go
-, gobject-introspection
-, libgudev
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "go-gir-generator";
-  version = "2.0.2";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1ydzll8zlk897iqcihvv6p046p0rzr4qqz2drmz2nx95njp8n03a";
-  };
-
-  patches = [
-    # Fix compatibility with glib 2.63+
-    # https://github.com/linuxdeepin/go-gir-generator/pull/11
-    (fetchpatch {
-      url = "https://github.com/linuxdeepin/go-gir-generator/commit/7dea15a1a491f28d2ac8c411068ccefeba01aae3.patch";
-      sha256 = "182d30qkj1rx9ynpj9zfxh53nykvfq9wxk4502zc42gfvadgzfgd";
-    })
-  ];
-
-  nativeBuildInputs = [
-    pkgconfig
-    go
-  ];
-
-  buildInputs = [
-    gobject-introspection
-    libgudev
-  ];
-
-  postPatch = ''
-    sed -i -e 's:/share/gocode:/share/go:' Makefile
-  '';
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-    "GOCACHE=$(TMPDIR)/go-cache"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Generate static golang bindings for GObject";
-    homepage = "https://github.com/linuxdeepin/go-gir-generator";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/go-lib/default.nix b/pkgs/desktops/deepin/go-lib/default.nix
deleted file mode 100644
index 7129d912e30..00000000000
--- a/pkgs/desktops/deepin/go-lib/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, glib
-, xorg
-, gdk-pixbuf
-, pulseaudio
-, mobile-broadband-provider-info
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "go-lib";
-  version = "5.4.5";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "021sq7nzvfwsa5ccsb3vdjk53m7cf693xm4wkdkrkf8pja6vz94q";
-  };
-
-  buildInputs = [
-    glib
-    xorg.libX11
-    gdk-pixbuf
-    pulseaudio
-    mobile-broadband-provider-info
-  ];
-
-  installPhase = ''
-    mkdir -p $out/share/go/src/pkg.deepin.io/lib
-    cp -a * $out/share/go/src/pkg.deepin.io/lib
-
-    rm -r $out/share/go/src/pkg.deepin.io/lib/debian
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Go bindings for Deepin Desktop Environment development";
-    homepage = "https://github.com/linuxdeepin/go-lib";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/qcef/default.nix b/pkgs/desktops/deepin/qcef/default.nix
deleted file mode 100644
index c37915377d8..00000000000
--- a/pkgs/desktops/deepin/qcef/default.nix
+++ /dev/null
@@ -1,127 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, qtbase
-, qttools
-, qtwebchannel
-, qtx11extras
-, gnome2
-, nss
-, nspr
-, alsaLib
-, atk
-, cairo
-, cups
-, dbus
-, expat
-, fontconfig
-, gdk-pixbuf
-, glib
-, gtk2
-, libxcb
-, pango
-, pulseaudio
-, xorg
-, deepin
-}:
-
-let
-  rpahtLibraries = [
-    stdenv.cc.cc.lib # libstdc++.so.6
-    alsaLib
-    atk
-    cairo
-    cups
-    dbus
-    expat
-    fontconfig
-    gdk-pixbuf
-    glib
-    gnome2.GConf
-    gtk2
-    libxcb
-    nspr
-    nss
-    pango
-    pulseaudio
-    xorg.libX11
-    xorg.libXScrnSaver
-    xorg.libXcomposite
-    xorg.libXcursor
-    xorg.libXdamage
-    xorg.libXext
-    xorg.libXfixes
-    xorg.libXi
-    xorg.libXrandr
-    xorg.libXrender
-    xorg.libXtst
-  ];
-
-  libPath = stdenv.lib.makeLibraryPath rpahtLibraries;
-
-in
-mkDerivation rec {
-  pname = "qcef";
-  version = "1.1.8";
-
-  srcs = [
-    (fetchFromGitHub {
-      owner = "linuxdeepin";
-      repo = pname;
-      rev = version;
-      sha256 = "14a33af1h3wj3yph080c1ri3m27bqj1v1k0jdqc63x7c3smnpwfk";
-      name = pname;
-    })
-    (fetchFromGitHub {
-      owner = "linuxdeepin";
-      repo = "cef-binary";
-      rev = "fecf00339545d2819224333cc506d5aa22ae8008";
-      sha256 = "06i1zc7ciy7d0qhndiwpjrsii0x5i5hg9j6ddi4w5yf1nzgsrj4n";
-      name = "cef-binary";
-    })
-  ];
-
-  sourceRoot = pname;
-
-  nativeBuildInputs = [
-    pkgconfig
-    cmake
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    qtbase
-    qtwebchannel
-    qtx11extras
-  ] ++ rpahtLibraries;
-
-  postUnpack = ''
-    rmdir ${pname}/cef
-    ln -s ../cef-binary ${pname}/cef
-  '';
-
-  postPatch = ''
-    searchHardCodedPaths
-    fixPath $out /usr src/core/qcef_global_settings.{h,cpp}
-    sed '/COMMAND rm -rf Release Resources/a COMMAND ldd qcef/libcef.so' -i src/CMakeLists.txt
-    sed '/COMMAND rm -rf Release Resources/a COMMAND patchelf --set-rpath ${libPath} qcef/libcef.so' -i src/CMakeLists.txt
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version; src = (builtins.head srcs); };
-
-  meta = with stdenv.lib; {
-    description = "Qt5 binding of Chromium Embedded Framework";
-    homepage = "https://github.com/linuxdeepin/qcef";
-    license = licenses.lgpl3;
-    platforms = platforms.linux;
-    badPlatforms = [ "aarch64-linux" ]; # the cef-binary is not available
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/qt5integration/default.nix b/pkgs/desktops/deepin/qt5integration/default.nix
deleted file mode 100644
index e3bbaba068b..00000000000
--- a/pkgs/desktops/deepin/qt5integration/default.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, mtdev
-, lxqt
-, qtx11extras
-, qtmultimedia
-, qtsvg
-, qt5platform-plugins
-, qtstyleplugins
-, dtkcore
-, dtkwidget
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "qt5integration";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "140wb3vcm2ji8jhqdxv8f4shiknia1zk8fssqlp09kzc1cmb4ncy";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    qt5platform-plugins
-    mtdev
-    lxqt.libqtxdg
-    qtstyleplugins
-    qtx11extras
-    qtmultimedia
-    qtsvg
-  ];
-
-  postPatch = ''
-    sed -i dstyleplugin/dstyleplugin.pro \
-           platformthemeplugin/qt5deepintheme-plugin.pro \
-           iconengineplugins/svgiconengine/svgiconengine.pro \
-           imageformatplugins/svg/svg.pro \
-      -e "s,\$\$\[QT_INSTALL_PLUGINS\],$out/$qtPluginPrefix,"
-  '';
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Qt platform theme integration plugins for DDE";
-    homepage = "https://github.com/linuxdeepin/qt5integration";
-    license = with licenses; [ gpl3 lgpl2Plus bsd2 ];
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/qt5platform-plugins/default.nix b/pkgs/desktops/deepin/qt5platform-plugins/default.nix
deleted file mode 100644
index 33e4863c0d9..00000000000
--- a/pkgs/desktops/deepin/qt5platform-plugins/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qtx11extras
-, libSM
-, mtdev
-, cairo
-, deepin
-, qtbase
-}:
-
-mkDerivation rec {
-  pname = "qt5platform-plugins";
-  version = "5.0.11";
-
-  srcs = [
-    (fetchFromGitHub {
-      owner = "linuxdeepin";
-      repo = pname;
-      rev = version;
-      sha256 = "14xkr3p49716jc9v7ksj6jgcmfa65qicqrmablizfi71srg3z2pr";
-    })
-    qtbase.src
-  ];
-
-  sourceRoot = "source";
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-  ];
-
-  buildInputs = [
-    qtx11extras
-    libSM
-    mtdev
-    cairo
-    qtbase
-  ];
-
-  postPatch = ''
-    # The Qt5 platforms plugin is vendored in the package, however what's there is not always up-to-date with what's in nixpkgs.
-    # We simply copy the headers from qtbase's source tarball.
-    mkdir -p platformplugin/libqt5xcbqpa-dev/${qtbase.version}
-    cp -r ../qtbase-everywhere-src-${qtbase.version}/src/plugins/platforms/xcb/*.h platformplugin/libqt5xcbqpa-dev/${qtbase.version}/
-  '';
-
-  qmakeFlags = [
-    "INSTALL_PATH=${placeholder "out"}/${qtbase.qtPluginPrefix}/platforms"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version; src = (builtins.head srcs); };
-
-  meta = with stdenv.lib; {
-    description = "Qt platform theme integration plugin for DDE";
-    homepage = "https://github.com/linuxdeepin/qt5platform-plugins";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/setup-hook.sh b/pkgs/desktops/deepin/setup-hook.sh
deleted file mode 100755
index ce1d7330a22..00000000000
--- a/pkgs/desktops/deepin/setup-hook.sh
+++ /dev/null
@@ -1,64 +0,0 @@
-# Helper functions for deepin packaging
-
-searchHardCodedPaths() {
-    # Usage:
-    #
-    #   searchHardCodedPaths [-a] [<path>]
-    #
-    # Looks for ocurrences of FHS hard coded paths and command
-    # invocations in the given path (default: current directory) for
-    # the purpose of debugging a derivation. The option -a enables
-    # processing binary files as if they were text.
-
-    local binary
-    if [ "$1" = "-a" ]; then
-        binary="-a"
-        shift
-    fi
-
-    local path=$1
-
-    echo ----------- looking for command invocations in $path
-    grep --color=always -r -E '\<(ExecStart|Exec|startDetached|execute|exec\.(Command|LookPath))\>' $path || true
-
-    echo ----------- looking for hard coded paths in $path
-    grep --color=always $binary -r -E '/(usr|bin|sbin|etc|var|opt)\>' $path || true
-
-    echo ----------- done
-}
-
-fixPath() {
-    # Usage:
-    #
-    #   fixPath <parent dir> <path> <files>
-    #
-    # replaces occurences of <path> by <parent_dir><path> in <files>
-    # removing /usr from the start of <path> if present
-
-    local parentdir=$1
-    local path=$2
-    local newpath=$parentdir$(echo $path | sed "s,^/usr,,")
-    local files=("${@:3}")
-    echo ======= grep --color=always "${path}" "${files[@]}"
-    grep --color=always "${path}" "${files[@]}"
-    echo +++++++ sed -i -e "s,$path,$newpath,g" "${files[@]}"
-    sed -i -e "s,$path,$newpath,g" "${files[@]}"
-}
-
-searchForUnresolvedDLL() {
-    # Usage:
-    #
-    #   searchForUnresolvedDLL <dir>
-    #
-    # looks in <dir> for executables with unresolved dynamic library paths
-
-    local dir="$1"
-    echo ======= Looking for executables with unresolved dynamic library dependencies
-    echo $dir
-    for f in $(find -L "$dir" -type f -executable); do
-      if (ldd $f | grep -q "not found"); then
-        echo $f
-        ldd $f | grep --color=always "not found"
-      fi
-    done
-}
diff --git a/pkgs/desktops/deepin/startdde/default.nix b/pkgs/desktops/deepin/startdde/default.nix
deleted file mode 100644
index 75b36e85de3..00000000000
--- a/pkgs/desktops/deepin/startdde/default.nix
+++ /dev/null
@@ -1,161 +0,0 @@
-{ stdenv
-, buildGoPackage
-, fetchFromGitHub
-, pkgconfig
-, alsaLib
-, coreutils
-, dde-api
-, dde-daemon
-, dde-dock
-, dde-file-manager
-, dde-polkit-agent
-, dde-session-ui
-, deepin
-, deepin-desktop-base
-, deepin-desktop-schemas
-, deepin-turbo
-, dde-kwin
-, glib
-, gnome3
-, go
-, go-dbus-factory
-, go-gir-generator
-, go-lib
-, gtk3
-, jq
-, kmod
-, libX11
-, libXi
-, libcgroup
-, pciutils
-, psmisc
-, pulseaudio
-, systemd
-, xorg
-, wrapGAppsHook
-}:
-
-buildGoPackage rec {
-  pname = "startdde";
-  version = "5.0.1";
-
-  goPackagePath = "pkg.deepin.io/dde/startdde";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1xydmglydksy7hjlavf5pbfy0s0lndgavh8x3kg2mg7d36mbra43";
-  };
-
-  goDeps = ./deps.nix;
-
-  nativeBuildInputs = [
-    pkgconfig
-    jq
-    wrapGAppsHook
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dde-api
-    go-dbus-factory
-    go-gir-generator
-    go-lib
-    alsaLib
-    dde-daemon
-    dde-dock
-    dde-file-manager
-    dde-kwin
-    dde-polkit-agent
-    dde-session-ui
-    deepin-desktop-schemas
-    deepin-turbo
-    glib
-    gnome3.dconf
-    gnome3.gnome-keyring
-    gnome3.libgnome-keyring
-    gtk3
-    kmod
-    libX11
-    libXi
-    libcgroup
-    pciutils
-    psmisc
-    pulseaudio
-    systemd
-    xorg.xdriinfo
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-
-    # Commented lines below indicates a doubt about how to fix the hard coded path
-
-     fixPath $out                    /etc/X11                                  Makefile
-    #fixPath ?                       /etc/xdg/autostop                         autostop/autostop.go
-     fixPath ${coreutils}            /bin/ls                                   copyfile_test.go
-     fixPath $out                    /usr/share/startdde/auto_launch.json      launch_group.go
-    #fixPath ?                       /usr/bin/kwin_no_scale                    main.go  # not found on deepin linux and archlinux
-     fixPath $out                    /usr/share/startdde/memchecker.json       memchecker/config.go
-     fixPath $out                    /usr/bin/startdde                         misc/00deepin-dde-env
-     fixPath ${dde-file-manager}     /usr/bin/dde-file-manager                 misc/auto_launch/chinese.json
-     fixPath ${deepin-turbo}         /usr/lib/deepin-turbo/booster-dtkwidget   misc/auto_launch/chinese.json
-     fixPath ${dde-daemon}           /usr/lib/deepin-daemon/dde-session-daemon misc/auto_launch/chinese.json misc/auto_launch/default.json
-     fixPath ${dde-dock}             /usr/bin/dde-dock                         misc/auto_launch/chinese.json misc/auto_launch/default.json
-     fixPath ${dde-file-manager}     /usr/bin/dde-desktop                      misc/auto_launch/chinese.json misc/auto_launch/default.json
-     fixPath $out                    /usr/bin/startdde                         misc/deepin-session
-    #fixPath ?                       /usr/lib/lightdm/config-error-dialog.sh   misc/deepin-session  # provided by lightdm on deepin linux
-    #fixPath ?                       /usr/sbin/lightdm-session                 misc/deepin-session  # provided by lightdm on deepin linux
-     fixPath ${dde-session-ui}       /usr/bin/dde-lock                         session.go
-     fixPath ${dde-session-ui}       /usr/bin/dde-shutdown                     session.go
-     fixPath ${dde-session-ui}       /usr/lib/deepin-daemon/dde-osd            session.go
-     fixPath ${deepin-desktop-base}  /etc/deepin-version                       session.go
-     fixPath ${gnome3.gnome-keyring} /usr/bin/gnome-keyring-daemon             session.go
-     fixPath ${pulseaudio}           /usr/bin/pulseaudio                       sound_effect.go
-    #fixPath ?                       /usr/lib/UIAppSched.hooks                 startmanager.go  # not found anything about this
-     fixPath ${dde-session-ui}       /usr/lib/deepin-daemon/dde-welcome        utils.go
-     fixPath ${dde-polkit-agent}     /usr/lib/polkit-1-dde/dde-polkit-agent    watchdog/dde_polkit_agent.go
-    #fixPath ?                       /var/log/Xorg.0.log                       wm/driver.go
-    #fixPath ?                       /etc/deepin-wm-switcher/config.json       wm/switcher_config.go  # not present on nixos, deepin linux and archlinux
-
-    substituteInPlace wm/driver.go      --replace '/sbin/lsmod'                   "${kmod}/bin/lsmod"
-
-    substituteInPlace session.go        --replace 'LookPath("cgexec"'             'LookPath("${libcgroup}/bin/cgexec"'
-    substituteInPlace vm.go             --replace 'Command("dde-wm-chooser"'      'Command("${dde-session-ui}/bin/dde-wm-chooser"'
-    substituteInPlace vm.go             --replace 'Command("systemd-detect-virt"' 'Command("${systemd}/bin/systemd-detect-virt"'
-    substituteInPlace wm/card_info.go   --replace 'Command("lspci"'               'Command("${pciutils}/bin/lspci"'
-    substituteInPlace wm/driver.go      --replace 'Command("lspci"'               'Command("${pciutils}/bin/lspci"'
-    substituteInPlace wm/driver.go      --replace 'Command("xdriinfo"'            'Command("${xorg.xdriinfo}/bin/xdriinfo"'
-    substituteInPlace wm/platform.go    --replace 'Command("gsettings"'           'Command("${glib}/bin/gsettings"'
-    substituteInPlace wm/platform.go    --replace 'Command("uname"'               'Command("${coreutils}/bin/uname"'
-    substituteInPlace wm/switcher.go    --replace 'Command("killall"'             'Command("${psmisc}/bin/killall"'
-  '';
-
-  buildPhase = ''
-    make -C go/src/${goPackagePath}
-  '';
-
-  installPhase = ''
-    make install PREFIX="$out" -C go/src/${goPackagePath}
-    rm -rf $out/share/lightdm  # this is uselesss for NixOS
-    remove-references-to -t ${go} $out/sbin/*
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  passthru = {
-    updateScript = deepin.updateScript { inherit pname version src; };
-    providedSessions = [ "deepin" ];
-  };
-
-  meta = with stdenv.lib; {
-    description = "Starter of deepin desktop environment";
-    homepage = "https://github.com/linuxdeepin/startdde";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/deepin/startdde/deps.nix b/pkgs/desktops/deepin/startdde/deps.nix
deleted file mode 100644
index 8898b8c50fb..00000000000
--- a/pkgs/desktops/deepin/startdde/deps.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/cryptix/wav";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cryptix/wav";
-      rev = "8bdace674401f0bd3b63c65479b6a6ff1f9d5e44";
-      sha256 = "18nyqv0ic35fs9fny8sj84c00vbxs8mnric6vr6yl42624fh5id6";
-    };
-  }
-  {
-    goPackagePath = "github.com/linuxdeepin/go-x11-client";
-    fetch = {
-      type = "git";
-      url = "https://github.com/linuxdeepin/go-x11-client";
-      rev = "b5b01565d224d5ccd5a4143d9099acceb23e182a";
-      sha256 = "1lnffjp8bqy6f8caw6drg1js6hny5w7432riqchcrcd4q85d94rs";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "daa7c04131f568e31c51927b359a2d197a357058";
-      sha256 = "17gbfvb5iqyayzw0zd6q218zsbf7x74rflvn18wkxvsw95n1y54h";
-    };
-  }
-]
diff --git a/pkgs/desktops/deepin/udisks2-qt5/default.nix b/pkgs/desktops/deepin/udisks2-qt5/default.nix
deleted file mode 100644
index 0fcc2e9f9f7..00000000000
--- a/pkgs/desktops/deepin/udisks2-qt5/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, qmake
-, qtbase
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "udisks2-qt5";
-  version = "5.0.3";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0c87ks9glwhk4m2s7kf7mb43q011yi6l3qjq2ammmfqwl8xal69a";
-  };
-
-  nativeBuildInputs = [
-    deepin.setupHook
-    qmake
-  ];
-
-  buildInputs = [
-    qtbase
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths # debugging
-  '';
-
-  qmakeFlags = [
-    "QMAKE_PKGCONFIG_PREFIX=${placeholder "out"}"
-  ];
-
-  postFixup = ''
-    searchHardCodedPaths $out # debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "UDisks2 D-Bus interfaces binding for Qt5";
-    homepage = "https://github.com/linuxdeepin/udisks2-qt5";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/desktops/enlightenment/default.nix b/pkgs/desktops/enlightenment/default.nix
index 2739b9a2517..5c6a64b1f33 100644
--- a/pkgs/desktops/enlightenment/default.nix
+++ b/pkgs/desktops/enlightenment/default.nix
@@ -1,16 +1,14 @@
 { callPackage, pkgs }:
 {
   #### CORE EFL
-  efl = callPackage ./efl.nix {
-    openjpeg = pkgs.openjpeg_1;
-  };
+  efl = callPackage ./efl { };
 
   #### WINDOW MANAGER
-  enlightenment = callPackage ./enlightenment.nix { };
+  enlightenment = callPackage ./enlightenment { };
 
   #### APPLICATIONS
-  econnman = callPackage ./econnman.nix { };
-  terminology = callPackage ./terminology.nix { };
-  rage = callPackage ./rage.nix { };
-  ephoto = callPackage ./ephoto.nix { };
+  econnman = callPackage ./econnman { };
+  terminology = callPackage ./terminology { };
+  rage = callPackage ./rage { };
+  ephoto = callPackage ./ephoto { };
 }
diff --git a/pkgs/desktops/enlightenment/econnman.nix b/pkgs/desktops/enlightenment/econnman/default.nix
index 1979b4518a7..1979b4518a7 100644
--- a/pkgs/desktops/enlightenment/econnman.nix
+++ b/pkgs/desktops/enlightenment/econnman/default.nix
diff --git a/pkgs/desktops/enlightenment/efl/0002-efreet-more-stat-info-changes.patch b/pkgs/desktops/enlightenment/efl/0002-efreet-more-stat-info-changes.patch
new file mode 100644
index 00000000000..e0005e430b2
--- /dev/null
+++ b/pkgs/desktops/enlightenment/efl/0002-efreet-more-stat-info-changes.patch
@@ -0,0 +1,623 @@
+                                                                     
+                                                                     
+                                                                     
+                                             
+diff --git a/src/bin/efreet/efreet_icon_cache_create.c b/src/bin/efreet/efreet_icon_cache_create.c
+index 6810ca684e..6478df4dbd 100644
+--- a/src/bin/efreet/efreet_icon_cache_create.c
++++ b/src/bin/efreet/efreet_icon_cache_create.c
+@@ -38,38 +38,36 @@ static Eina_Hash *icon_themes = NULL;
+ static Eina_Bool
+ cache_directory_modified(Eina_Hash *dirs, const char *dir)
+ {
+-    Efreet_Cache_Directory *dcache;
+-    long long time;
+-
+-    if (!dirs) return EINA_TRUE;
+-
+-    time = ecore_file_mod_time(dir);
+-    if (!time)
+-      return EINA_FALSE;
+-    dcache = eina_hash_find(dirs, dir);
+-    if (!dcache)
+-    {
++   Efreet_Cache_Directory *dcache;
++   Efreet_Cache_Check check;
++
++   if (!dirs) return EINA_TRUE;
++   if (!efreet_file_cache_fill(dir, &check)) return EINA_FALSE;
++   dcache = eina_hash_find(dirs, dir);
++   if (!dcache)
++     {
+         dcache = malloc(sizeof (Efreet_Cache_Directory));
+         if (!dcache) return EINA_TRUE;
+-
+-        dcache->modified_time = time;
++        dcache->check = check;
+         eina_hash_add(dirs, dir, dcache);
+-    }
+-    else if (dcache->modified_time == time) return EINA_FALSE;
+-    dcache->modified_time = time;
+-
+-    return EINA_TRUE;
++     }
++   else if (efreet_file_cache_check(&check, &dcache->check))
++     return EINA_FALSE;
++   else
++     dcache->check = check;
++   return EINA_TRUE;
+ }
+ 
+ static Eina_Bool
+ cache_extension_lookup(const char *ext)
+ {
+-    unsigned int i;
++   unsigned int i;
+ 
+-    for (i = 0; i < exts->count; ++i)
+-        if (!strcmp(exts->data[i], ext))
+-            return EINA_TRUE;
+-    return EINA_FALSE;
++   for (i = 0; i < exts->count; ++i)
++     {
++        if (!strcmp(exts->data[i], ext)) return EINA_TRUE;
++     }
++   return EINA_FALSE;
+ }
+ 
+ static Eina_Bool
+@@ -223,6 +221,37 @@ check_fallback_changed(Efreet_Cache_Icon_Theme *theme)
+     return EINA_FALSE;
+ }
+ 
++typedef struct
++{
++  char *path;
++  int name_start;
++} Scanned_Entry;
++
++static Eina_Hash *already_scanned_path = NULL;
++
++static void
++cache_theme_change_verify(Efreet_Cache_Icon_Theme *theme)
++{
++   Eina_Bool changed = EINA_FALSE;
++   Eina_List *l;
++   Efreet_Icon_Theme_Directory *d;
++   char buf[PATH_MAX], *tdir, *sep;
++
++   tdir = strdup(theme->path);
++   sep = strrchr(tdir, '/');
++   if (sep) *sep = 0;
++   EINA_LIST_FOREACH(theme->theme.directories, l, d)
++     {
++        snprintf(buf, sizeof(buf), "%s/%s", tdir, d->name);
++        if (cache_directory_modified(theme->dirs, buf))
++          {
++             changed = EINA_TRUE;
++          }
++     }
++   free(tdir);
++   if (changed) theme->changed = changed;
++}
++
+ static Eina_Bool
+ cache_scan_path_dir(Efreet_Icon_Theme *theme,
+                     const char *path,
+@@ -232,29 +261,63 @@ cache_scan_path_dir(Efreet_Icon_Theme *theme,
+     Eina_Iterator *it;
+     char buf[PATH_MAX];
+     Eina_File_Direct_Info *entry;
++    Eina_List *dirs = NULL;
++    Eina_List *l;
++    char *ext;
++    Scanned_Entry *scentry;
+ 
+     snprintf(buf, sizeof(buf), "%s/%s", path, dir->name);
++    // we wont ever free this - no point
++    if (!already_scanned_path)
++      already_scanned_path = eina_hash_string_superfast_new(NULL);
++    dirs = eina_hash_find(already_scanned_path, buf);
++    if ((intptr_t)dirs == (intptr_t)(-1L)) return EINA_TRUE;
++    else if (!dirs)
++    {
++       it = eina_file_stat_ls(buf);
++       if (!it)
++         {
++            eina_hash_add(already_scanned_path, buf, (void *)(intptr_t)(-1L));
++            return EINA_TRUE;
++         }
++
++       EINA_ITERATOR_FOREACH(it, entry)
++         {
++            if (entry->type == EINA_FILE_DIR) continue;
++            ext = strrchr(entry->path + entry->name_start, '.');
++            if (!ext || !cache_extension_lookup(ext)) continue;
++            scentry = malloc(sizeof(Scanned_Entry));
++            if (!scentry)
++              {
++                 ERR("Out of memory");
++                 exit(1);
++              }
++            scentry->name_start = entry->name_start;
++            scentry->path = strdup(entry->path);
++            if (!scentry->path)
++              {
++                 ERR("Out of memory");
++                 exit(1);
++              }
++            dirs = eina_list_append(dirs, scentry);
++         }
++       eina_iterator_free(it);
++       if (dirs)
++         eina_hash_add(already_scanned_path, buf, dirs);
++       else
++         eina_hash_add(already_scanned_path, buf, (void *)(intptr_t)(-1L));
++    }
+ 
+-    it = eina_file_stat_ls(buf);
+-    if (!it) return EINA_TRUE;
+-
+-    EINA_ITERATOR_FOREACH(it, entry)
++   EINA_LIST_FOREACH(dirs, l, scentry)
+     {
+         Efreet_Cache_Icon *icon;
+         char *name;
+-        char *ext;
+         const char **tmp;
+         unsigned int i;
+ 
+-        if (entry->type == EINA_FILE_DIR)
+-            continue;
+-
+-        ext = strrchr(entry->path + entry->name_start, '.');
+-        if (!ext || !cache_extension_lookup(ext))
+-            continue;
+-
++        ext = strrchr(scentry->path + scentry->name_start, '.');
+         /* icon with known extension */
+-        name = entry->path + entry->name_start;
++        name = scentry->path + scentry->name_start;
+         *ext = '\0';
+ 
+         icon = eina_hash_find(icons, name);
+@@ -284,7 +347,7 @@ cache_scan_path_dir(Efreet_Icon_Theme *theme,
+ 
+             /* check if the path already exist */
+             for (j = 0; j < icon->icons[i]->paths_count; ++j)
+-                if (!strcmp(icon->icons[i]->paths[j], entry->path))
++                if (!strcmp(icon->icons[i]->paths[j], scentry->path))
+                     break;
+ 
+             if (j != icon->icons[i]->paths_count)
+@@ -348,12 +411,9 @@ cache_scan_path_dir(Efreet_Icon_Theme *theme,
+            exit(1);
+         }
+         icon->icons[i]->paths = tmp;
+-        icon->icons[i]->paths[icon->icons[i]->paths_count] = eina_stringshare_add(entry->path);
++        icon->icons[i]->paths[icon->icons[i]->paths_count] = eina_stringshare_add(scentry->path);
+         eina_array_push(strs, icon->icons[i]->paths[icon->icons[i]->paths_count++]);
+     }
+-
+-    eina_iterator_free(it);
+-
+     return EINA_TRUE;
+ }
+ 
+@@ -364,7 +424,9 @@ cache_scan_path(Efreet_Icon_Theme *theme, Eina_Hash *icons, const char *path)
+     Efreet_Icon_Theme_Directory *dir;
+ 
+     EINA_LIST_FOREACH(theme->directories, l, dir)
++     {
+         if (!cache_scan_path_dir(theme, path, dir, icons)) return EINA_FALSE;
++     }
+ 
+     return EINA_TRUE;
+ }
+@@ -511,13 +573,13 @@ icon_theme_index_read(Efreet_Cache_Icon_Theme *theme, const char *path)
+     Efreet_Ini *ini;
+     Efreet_Icon_Theme_Directory *dir;
+     const char *tmp;
+-    long long time;
++    Efreet_Cache_Check check;
+ 
+     if (!theme || !path) return EINA_FALSE;
+ 
+-    time = ecore_file_mod_time(path);
+-    if (!time) return EINA_FALSE;
+-    if (theme->path && !strcmp(theme->path, path) && theme->last_cache_check >= time)
++    if (!efreet_file_cache_fill(path, &check)) return EINA_FALSE;
++    if (theme->path && !strcmp(theme->path, path) &&
++        efreet_file_cache_check(&check, &(theme->check)))
+     {
+         /* no change */
+         theme->valid = 1;
+@@ -528,8 +590,7 @@ icon_theme_index_read(Efreet_Cache_Icon_Theme *theme, const char *path)
+         theme->path = eina_stringshare_add(path);
+         eina_array_push(strs, theme->path);
+     }
+-    if (time > theme->last_cache_check)
+-        theme->last_cache_check = time;
++    theme->check = check;
+     theme->changed = 1;
+ 
+     ini = efreet_ini_new(path);
+@@ -644,10 +705,10 @@ cache_theme_scan(const char *dir)
+         Efreet_Cache_Icon_Theme *theme;
+         const char *name;
+         const char *path;
+-        long long time;
++        Efreet_Cache_Check check;
++        Efreet_Cache_Directory *d;
+ 
+-        time = ecore_file_mod_time(entry->path);
+-        if (!time) continue;
++        if (!efreet_file_cache_fill(entry->path, &check)) continue;
+ 
+         if ((entry->type != EINA_FILE_DIR) &&
+             (entry->type != EINA_FILE_LNK))
+@@ -669,10 +730,26 @@ cache_theme_scan(const char *dir)
+                           (void *)theme->theme.name.internal, theme);
+             theme->changed = 1;
+         }
+-        if (time > theme->last_cache_check)
+-        {
+-            theme->last_cache_check = time;
++
++       d = NULL;
++       if (theme->dirs)
++         d = eina_hash_find(theme->dirs, entry->path);
++       if (!d)
++         {
++            if (!theme->dirs)
++              theme->dirs = eina_hash_string_superfast_new(NULL);
+             theme->changed = 1;
++            d = NEW(Efreet_Cache_Directory, 1);
++            d->check = check;
++            eina_hash_add(theme->dirs, entry->path, d);
++         }
++       else
++         {
++            if (!efreet_file_cache_check(&check, &(d->check)))
++              {
++                 d->check = check;
++                 theme->changed = 1;
++              }
+         }
+ 
+         /* TODO: We need to handle change in order of included paths */
+@@ -732,8 +809,7 @@ icon_theme_free(Efreet_Cache_Icon_Theme *theme)
+ 
+     eina_list_free(theme->theme.paths);
+     eina_list_free(theme->theme.inherits);
+-    EINA_LIST_FREE(theme->theme.directories, data)
+-        free(data);
++    EINA_LIST_FREE(theme->theme.directories, data) free(data);
+     if (theme->dirs) efreet_hash_free(theme->dirs, free);
+     free(theme);
+ }
+@@ -926,7 +1002,7 @@ main(int argc, char **argv)
+         if (!theme->theme.name.name) continue;
+ #endif
+         INF("scan theme %s", theme->theme.name.name);
+-
++        cache_theme_change_verify(theme);
+         theme->changed = check_changed(theme);
+         if (flush)
+             theme->changed = EINA_TRUE;
+@@ -981,18 +1057,18 @@ main(int argc, char **argv)
+ 
+                 icons_it = eina_hash_iterator_tuple_new(icons);
+                 EINA_ITERATOR_FOREACH(icons_it, tuple)
+-                    eet_data_write(icon_ef, icon_edd, tuple->key, tuple->data, 1);
++                    eet_data_write(icon_ef, icon_edd, tuple->key, tuple->data, EET_COMPRESSION_SUPERFAST);
+                 eina_iterator_free(icons_it);
+ 
+-                INF("theme change: %s %lld", theme->theme.name.internal, theme->last_cache_check);
+-                eet_data_write(theme_ef, theme_edd, theme->theme.name.internal, theme, 1);
++                INF("theme change: %s %lld", theme->theme.name.internal, theme->check.mtime);
++                eet_data_write(theme_ef, theme_edd, theme->theme.name.internal, theme, EET_COMPRESSION_SUPERFAST);
+             }
+             eina_hash_free(themes);
+             eina_hash_free(icons);
+             changed = EINA_TRUE;
+         }
+ 
+-        eet_data_write(icon_ef, efreet_version_edd(), EFREET_CACHE_VERSION, icon_version, 1);
++        eet_data_write(icon_ef, efreet_version_edd(), EFREET_CACHE_VERSION, icon_version, EET_COMPRESSION_SUPERFAST);
+         eet_close(icon_ef);
+         efreet_setowner(efreet_icon_cache_file(theme->theme.name.internal));
+         free(icon_version);
+@@ -1064,17 +1140,17 @@ main(int argc, char **argv)
+ 
+             icons_it = eina_hash_iterator_tuple_new(icons);
+             EINA_ITERATOR_FOREACH(icons_it, tuple)
+-                eet_data_write(icon_ef, fallback_edd, tuple->key, tuple->data, 1);
++                eet_data_write(icon_ef, fallback_edd, tuple->key, tuple->data, EET_COMPRESSION_SUPERFAST);
+             eina_iterator_free(icons_it);
+         }
+         eina_hash_free(icons);
+ 
+-        eet_data_write(theme_ef, theme_edd, EFREET_CACHE_ICON_FALLBACK, theme, 1);
++        eet_data_write(theme_ef, theme_edd, EFREET_CACHE_ICON_FALLBACK, theme, EET_COMPRESSION_SUPERFAST);
+     }
+ 
+     icon_theme_free(theme);
+ 
+-    eet_data_write(icon_ef, efreet_version_edd(), EFREET_CACHE_VERSION, icon_version, 1);
++    eet_data_write(icon_ef, efreet_version_edd(), EFREET_CACHE_VERSION, icon_version, EET_COMPRESSION_SUPERFAST);
+     eet_close(icon_ef);
+     efreet_setowner(efreet_icon_cache_file(EFREET_CACHE_ICON_FALLBACK));
+     free(icon_version);
+@@ -1082,7 +1158,7 @@ main(int argc, char **argv)
+     eina_hash_free(icon_themes);
+ 
+     /* save data */
+-    eet_data_write(theme_ef, efreet_version_edd(), EFREET_CACHE_VERSION, theme_version, 1);
++    eet_data_write(theme_ef, efreet_version_edd(), EFREET_CACHE_VERSION, theme_version, EET_COMPRESSION_SUPERFAST);
+ 
+     eet_close(theme_ef);
+     theme_ef = NULL;
+diff --git a/src/lib/efreet/efreet_cache.c b/src/lib/efreet/efreet_cache.c
+index f859c630f0..2b5d0c9f5f 100644
+--- a/src/lib/efreet/efreet_cache.c
++++ b/src/lib/efreet/efreet_cache.c
+@@ -1,3 +1,4 @@
++
+ #ifdef HAVE_CONFIG_H
+ # include <config.h>
+ #endif
+@@ -536,6 +537,137 @@ efreet_desktop_util_cache_file(void)
+ /*
+  * Needs EAPI because of helper binaries
+  */
++#define SHSH(n, v) ((((v) << (n)) & 0xffffffff) | ((v) >> (32 - (n))))
++
++static inline int
++int_to_bigendian(int in)
++{
++   static const unsigned char test[4] = { 0x11, 0x22, 0x33, 0x44 };
++   static const unsigned int *test_i = (const unsigned int *)test;
++   if (test_i[0] == 0x44332211) return eina_swap32(in);
++   return in;
++}
++
++static void
++sha1(unsigned char *data, int size, unsigned char *dst)
++{
++   unsigned int digest[5], word[80], wa, wb, wc, wd, we, t;
++   unsigned char buf[64], *d;
++   int idx, left, i;
++   const unsigned int magic[4] =
++     { 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6 };
++
++   idx = 0;
++   digest[0] = 0x67452301; digest[1] = 0xefcdab89; digest[2] = 0x98badcfe;
++   digest[3] = 0x10325476; digest[4] = 0xc3d2e1f0;
++
++   memset(buf, 0, sizeof(buf));
++   for (left = size, d = data; left > 0; left--, d++)
++     {
++        if ((idx == 0) && (left < 64))
++          {
++             memset(buf, 0, 60);
++             buf[60] = (size >> 24) & 0xff;
++             buf[61] = (size >> 16) & 0xff;
++             buf[62] = (size >> 8) & 0xff;
++             buf[63] = (size) & 0xff;
++          }
++        buf[idx] = *d;
++        idx++;
++        if ((idx == 64) || (left == 1))
++          {
++             if ((left == 1) && (idx < 64)) buf[idx] = 0x80;
++             for (i = 0; i < 16; i++)
++               {
++                  word[i]  = (unsigned int)buf[(i * 4)    ] << 24;
++                  word[i] |= (unsigned int)buf[(i * 4) + 1] << 16;
++                  word[i] |= (unsigned int)buf[(i * 4) + 2] << 8;
++                  word[i] |= (unsigned int)buf[(i * 4) + 3];
++               }
++             for (i = 16; i < 80; i++)
++               word[i] = SHSH(1,
++                              word[i - 3 ] ^ word[i - 8 ] ^
++                              word[i - 14] ^ word[i - 16]);
++             wa = digest[0]; wb = digest[1]; wc = digest[2];
++             wd = digest[3]; we = digest[4];
++             for (i = 0; i < 80; i++)
++               {
++                  if (i < 20)
++                    t = SHSH(5, wa) + ((wb & wc) | ((~wb) & wd)) +
++                        we + word[i] + magic[0];
++                  else if (i < 40)
++                    t = SHSH(5, wa) + (wb ^ wc ^ wd) +
++                        we + word[i] + magic[1];
++                  else if (i < 60)
++                    t = SHSH(5, wa) + ((wb & wc) | (wb & wd) | (wc & wd)) +
++                        we + word[i] + magic[2];
++                  else if (i < 80)
++                    t = SHSH(5, wa) + (wb ^ wc ^ wd) +
++                        we + word[i] + magic[3];
++                  we = wd;
++                  wd = wc;
++                  wc = SHSH(30, wb);
++                  wb = wa;
++                  wa = t;
++               }
++             digest[0] += wa; digest[1] += wb; digest[2] += wc;
++             digest[3] += wd; digest[4] += we;
++             idx = 0;
++          }
++     }
++   t = int_to_bigendian(digest[0]); digest[0] = t;
++   t = int_to_bigendian(digest[1]); digest[1] = t;
++   t = int_to_bigendian(digest[2]); digest[2] = t;
++   t = int_to_bigendian(digest[3]); digest[3] = t;
++   t = int_to_bigendian(digest[4]); digest[4] = t;
++   memcpy(dst, digest, 5 * 4);
++}
++
++EAPI Eina_Bool
++efreet_file_cache_fill(const char *file, Efreet_Cache_Check *check)
++{
++   struct stat st;
++   ssize_t size = 0;
++   char link[PATH_MAX];
++
++   if (lstat(file, &st) != 0) return EINA_FALSE;
++   if (S_ISLNK(st.st_mode))
++     {
++        size = readlink(file, link, sizeof(link));
++        if ((size > 0) && ((size_t)size >= sizeof(link))) return EINA_FALSE;
++        if (stat(file, &st) != 0) return EINA_FALSE;
++     }
++
++   memset(check, 0, sizeof(Efreet_Cache_Check));
++   if (size > 0) sha1((unsigned char *)link, size, check->link_sha1);
++   else memset(check->link_sha1, 0, sizeof(check->link_sha1));
++   check->uid    = st.st_uid;
++   check->gid    = st.st_gid;
++   check->size   = st.st_size;
++   check->blocks = st.st_blocks;
++   check->mtime  = st.st_mtime;
++   check->chtime = st.st_ctime;
++   check->mode   = st.st_mode;
++   return EINA_TRUE;
++}
++
++EAPI Eina_Bool // true if matches
++efreet_file_cache_check(const Efreet_Cache_Check *check1, const Efreet_Cache_Check *check2)
++{
++   if ((check1->mtime  != check2->mtime ) ||
++       (check1->size   != check2->size  ) ||
++       (check1->chtime != check2->chtime ) ||
++       (check1->blocks != check2->blocks) ||
++       (check1->mode   != check2->mode  ) ||
++       (check1->uid    != check2->uid   ) ||
++       (check1->gid    != check2->gid   ) ||
++       (memcmp(check1->link_sha1, check2->link_sha1, 20) != 0))
++     {
++        return EINA_FALSE;
++     }
++   return EINA_TRUE; // matches
++}
++
+ EAPI Eet_Data_Descriptor *
+ efreet_version_edd(void)
+ {
+@@ -691,8 +823,22 @@ efreet_icon_directory_edd(void)
+     directory_edd = eet_data_descriptor_file_new(&eddc);
+     if (!directory_edd) return NULL;
+ 
+-    EET_DATA_DESCRIPTOR_ADD_BASIC(directory_edd, Efreet_Cache_Directory,
+-                                  "modified_time", modified_time, EET_T_LONG_LONG);
++   EET_DATA_DESCRIPTOR_ADD_BASIC(directory_edd, Efreet_Cache_Directory,
++                                 "check.uid", check.uid, EET_T_LONG_LONG);
++   EET_DATA_DESCRIPTOR_ADD_BASIC(directory_edd, Efreet_Cache_Directory,
++                                 "check.gid", check.gid, EET_T_LONG_LONG);
++   EET_DATA_DESCRIPTOR_ADD_BASIC(directory_edd, Efreet_Cache_Directory,
++                                 "check.size", check.size, EET_T_LONG_LONG);
++   EET_DATA_DESCRIPTOR_ADD_BASIC(directory_edd, Efreet_Cache_Directory,
++                                 "check.blocks", check.blocks, EET_T_LONG_LONG);
++   EET_DATA_DESCRIPTOR_ADD_BASIC(directory_edd, Efreet_Cache_Directory,
++                                 "check.mtime", check.mtime, EET_T_LONG_LONG);
++   EET_DATA_DESCRIPTOR_ADD_BASIC(directory_edd, Efreet_Cache_Directory,
++                                 "check.chtime", check.chtime, EET_T_LONG_LONG);
++   EET_DATA_DESCRIPTOR_ADD_BASIC(directory_edd, Efreet_Cache_Directory,
++                                 "check.mode", check.mode, EET_T_INT);
++   EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY(directory_edd, Efreet_Cache_Directory,
++                                       "check.link_sha1", check.link_sha1, EET_T_CHAR);
+ 
+     return directory_edd;
+ }
+@@ -790,7 +936,21 @@ efreet_icon_theme_edd(Eina_Bool cache)
+     if (cache)
+     {
+         EET_DATA_DESCRIPTOR_ADD_BASIC(icon_theme_edd, Efreet_Cache_Icon_Theme,
+-                                      "last_cache_check", last_cache_check, EET_T_LONG_LONG);
++                                      "check.uid", check.uid, EET_T_LONG_LONG);
++        EET_DATA_DESCRIPTOR_ADD_BASIC(icon_theme_edd, Efreet_Cache_Icon_Theme,
++                                      "check.gid", check.gid, EET_T_LONG_LONG);
++        EET_DATA_DESCRIPTOR_ADD_BASIC(icon_theme_edd, Efreet_Cache_Icon_Theme,
++                                      "check.size", check.size, EET_T_LONG_LONG);
++        EET_DATA_DESCRIPTOR_ADD_BASIC(icon_theme_edd, Efreet_Cache_Icon_Theme,
++                                      "check.blocks", check.blocks, EET_T_LONG_LONG);
++        EET_DATA_DESCRIPTOR_ADD_BASIC(icon_theme_edd, Efreet_Cache_Icon_Theme,
++                                      "check.mtime", check.mtime, EET_T_LONG_LONG);
++        EET_DATA_DESCRIPTOR_ADD_BASIC(icon_theme_edd, Efreet_Cache_Icon_Theme,
++                                      "check.chtime", check.chtime, EET_T_LONG_LONG);
++        EET_DATA_DESCRIPTOR_ADD_BASIC(icon_theme_edd, Efreet_Cache_Icon_Theme,
++                                      "check.mode", check.mode, EET_T_INT);
++        EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY(icon_theme_edd, Efreet_Cache_Icon_Theme,
++                                            "check.link_sha1", check.link_sha1, EET_T_CHAR);
+ 
+         EET_DATA_DESCRIPTOR_ADD_BASIC(icon_theme_edd, Efreet_Cache_Icon_Theme,
+                                       "path", path, EET_T_STRING);
+diff --git a/src/lib/efreet/efreet_cache_private.h b/src/lib/efreet/efreet_cache_private.h
+index 97dbd45a1e..1edbb3b5ff 100644
+--- a/src/lib/efreet/efreet_cache_private.h
++++ b/src/lib/efreet/efreet_cache_private.h
+@@ -38,11 +38,20 @@
+ # endif
+ #endif
+ 
++typedef struct _Efreet_Cache_Check Efreet_Cache_Check;
++
++typedef struct _Efreet_Cache_Icon_Theme Efreet_Cache_Icon_Theme;
++typedef struct _Efreet_Cache_Directory Efreet_Cache_Directory;
++typedef struct _Efreet_Cache_Desktop Efreet_Cache_Desktop;
++
+ EAPI const char *efreet_desktop_util_cache_file(void);
+ EAPI const char *efreet_desktop_cache_file(void);
+ EAPI const char *efreet_icon_cache_file(const char *theme);
+ EAPI const char *efreet_icon_theme_cache_file(void);
+ 
++EAPI Eina_Bool efreet_file_cache_fill(const char *file, Efreet_Cache_Check *check);
++EAPI Eina_Bool efreet_file_cache_check(const Efreet_Cache_Check *check1, const Efreet_Cache_Check *check2);
++
+ EAPI Eet_Data_Descriptor *efreet_version_edd(void);
+ EAPI Eet_Data_Descriptor *efreet_desktop_edd(void);
+ EAPI Eet_Data_Descriptor *efreet_hash_array_string_edd(void);
+@@ -52,15 +61,23 @@ EAPI Eet_Data_Descriptor *efreet_icon_theme_edd(Eina_Bool cache);
+ EAPI Eet_Data_Descriptor *efreet_icon_edd(void);
+ EAPI Eet_Data_Descriptor *efreet_icon_fallback_edd(void);
+ 
+-typedef struct _Efreet_Cache_Icon_Theme Efreet_Cache_Icon_Theme;
+-typedef struct _Efreet_Cache_Directory Efreet_Cache_Directory;
+-typedef struct _Efreet_Cache_Desktop Efreet_Cache_Desktop;
++struct _Efreet_Cache_Check
++{
++   unsigned long long uid;
++   unsigned long long gid;
++   unsigned long long size;
++   unsigned long long blocks;
++   unsigned long long mtime;
++   unsigned long long chtime;
++   unsigned int       mode;
++   unsigned char      link_sha1[20];
++};
+ 
+ struct _Efreet_Cache_Icon_Theme
+ {
+     Efreet_Icon_Theme theme;
+ 
+-    long long last_cache_check; /**< Last time the cache was checked */
++    Efreet_Cache_Check check; /**< relevant stat info from last check */
+ 
+     Eina_Hash *dirs;            /**< All possible icon paths for this theme */
+ 
+@@ -73,13 +90,14 @@ struct _Efreet_Cache_Icon_Theme
+ 
+ struct _Efreet_Cache_Directory
+ {
+-    long long modified_time;
++    Efreet_Cache_Check check; /**< relevant stat info from last check */
+ };
+ 
+ struct _Efreet_Cache_Desktop
+ {
+     Efreet_Desktop desktop;
+ 
++    Efreet_Cache_Check check; /**< relevant stat info from last check */
+     double check_time; /**< Last time we check for disk modification */
+ };
diff --git a/pkgs/desktops/enlightenment/efl.nix b/pkgs/desktops/enlightenment/efl/default.nix
index 5ac8194d74e..9ce0306b549 100644
--- a/pkgs/desktops/enlightenment/efl.nix
+++ b/pkgs/desktops/enlightenment/efl/default.nix
@@ -54,11 +54,11 @@
 
 stdenv.mkDerivation rec {
   pname = "efl";
-  version = "1.24.2";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "http://download.enlightenment.org/rel/libs/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0w3srvigg4kfi7xq76c7y4hnq5yr2gxrrsvlyj1g2wc1igz1vyg1";
+    sha256 = "de95c6e673c170c1e21382918b122417c091c643e7dcaced89aa785529625c2a";
   };
 
   nativeBuildInputs = [
@@ -149,13 +149,16 @@ stdenv.mkDerivation rec {
     "-D sdl=true"
   ];
 
-  patches = [ ./efl-elua.patch ];
+  patches = [
+    ./efl-elua.patch
+    ./0002-efreet-more-stat-info-changes.patch
+  ];
 
   postPatch = ''
     patchShebangs src/lib/elementary/config_embed
 
     # fix destination of systemd unit and dbus service
-    substituteInPlace systemd-services/meson.build --replace "dep.get_pkgconfig_variable('systemduserunitdir')" "'$out/systemd/user'"
+    substituteInPlace systemd-services/meson.build --replace "sys_dep.get_pkgconfig_variable('systemduserunitdir')" "'$out/systemd/user'"
     substituteInPlace dbus-services/meson.build --replace "dep.get_pkgconfig_variable('session_bus_services_dir')" "'$out/share/dbus-1/services'"
   '';
 
@@ -188,8 +191,10 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    # EFL applications depend on libcurl, which is linked at runtime by hand in code (it is dlopened)
+    # Some libraries are linked at runtime by hand in code (they are dlopened)
     patchelf --add-needed ${curl.out}/lib/libcurl.so $out/lib/libecore_con.so
+    patchelf --add-needed ${libpulseaudio}/lib/libpulse.so $out/lib/libecore_audio.so
+    patchelf --add-needed ${libsndfile.out}/lib/libsndfile.so $out/lib/libecore_audio.so
   '';
 
   meta = {
diff --git a/pkgs/desktops/enlightenment/efl-elua.patch b/pkgs/desktops/enlightenment/efl/efl-elua.patch
index 96c42b3ff3c..96c42b3ff3c 100644
--- a/pkgs/desktops/enlightenment/efl-elua.patch
+++ b/pkgs/desktops/enlightenment/efl/efl-elua.patch
diff --git a/pkgs/desktops/enlightenment/0001-wrapped-setuid-executables.patch b/pkgs/desktops/enlightenment/enlightenment/0001-wrapped-setuid-executables.patch
index 55a3501ef8b..55a3501ef8b 100644
--- a/pkgs/desktops/enlightenment/0001-wrapped-setuid-executables.patch
+++ b/pkgs/desktops/enlightenment/enlightenment/0001-wrapped-setuid-executables.patch
diff --git a/pkgs/desktops/enlightenment/enlightenment/0003-setuid-missing-path.patch b/pkgs/desktops/enlightenment/enlightenment/0003-setuid-missing-path.patch
new file mode 100644
index 00000000000..5c32ed9b0d6
--- /dev/null
+++ b/pkgs/desktops/enlightenment/enlightenment/0003-setuid-missing-path.patch
@@ -0,0 +1,25 @@
+From b7ef2a0d3f31db55a12b2b8c2e1c60ba62b971c8 Mon Sep 17 00:00:00 2001
+From: Matt Bagnara <mbagnara@fastmail.com>
+Date: Wed, 1 Jul 2020 15:30:40 -0500
+Subject: [PATCH] add nixos path
+
+---
+ src/bin/e_util_suid.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/bin/e_util_suid.h b/src/bin/e_util_suid.h
+index b01ff792b..88c2a0f17 100644
+--- a/src/bin/e_util_suid.h
++++ b/src/bin/e_util_suid.h
+@@ -246,7 +246,7 @@ e_setuid_setup(uid_t *caller_uid, gid_t *caller_gid, char **caller_user, char **
+ # endif
+ #endif
+    // pass 3 - set path and ifs to minimal defaults
+-   putenv("PATH=/bin:/usr/bin:/sbin:/usr/sbin");
++   putenv("PATH=/bin:/usr/bin:/sbin:/usr/sbin:/run/current-system/sw/bin");
+    putenv("IFS= \t\n");
+    return 0;
+ }
+-- 
+2.27.0
+
diff --git a/pkgs/desktops/enlightenment/enlightenment.nix b/pkgs/desktops/enlightenment/enlightenment/default.nix
index cbec2006022..90a15a1d523 100644
--- a/pkgs/desktops/enlightenment/enlightenment.nix
+++ b/pkgs/desktops/enlightenment/enlightenment/default.nix
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation rec {
   pname = "enlightenment";
-  version = "0.24.1";
+  version = "0.24.2";
 
   src = fetchurl {
     url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "02aadl5fqvpmpjnisrc4aw7ffwyp1109y4k1wvmp33ciihbvdqmf";
+    sha256 = "1wfz0rwwsx7c1mkswn4hc9xw1i6bsdirhxiycf7ha2vcipqy465y";
   };
 
   nativeBuildInputs = [
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
     # wrapped in the enlightenment service module, and the wrapped
     # executables should be used instead.
     ./0001-wrapped-setuid-executables.patch
+    ./0003-setuid-missing-path.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/enlightenment/ephoto.nix b/pkgs/desktops/enlightenment/ephoto/default.nix
index 36719200c76..36719200c76 100644
--- a/pkgs/desktops/enlightenment/ephoto.nix
+++ b/pkgs/desktops/enlightenment/ephoto/default.nix
diff --git a/pkgs/desktops/enlightenment/rage.nix b/pkgs/desktops/enlightenment/rage/default.nix
index 3c4de19fa91..3c4de19fa91 100644
--- a/pkgs/desktops/enlightenment/rage.nix
+++ b/pkgs/desktops/enlightenment/rage/default.nix
diff --git a/pkgs/desktops/enlightenment/terminology.nix b/pkgs/desktops/enlightenment/terminology/default.nix
index 3eff9292cb6..2d0d34ec067 100644
--- a/pkgs/desktops/enlightenment/terminology.nix
+++ b/pkgs/desktops/enlightenment/terminology/default.nix
@@ -1,19 +1,18 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, efl, pcre, mesa, makeWrapper }:
+{ stdenv, fetchurl, meson, ninja, pkg-config, efl, pcre, mesa }:
 
 stdenv.mkDerivation rec {
   pname = "terminology";
-  version = "1.7.0";
+  version = "1.8.1";
 
   src = fetchurl {
     url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "11qan2k6w94cglysh95yxkbv6hw9x15ri927hkiy3k0hbmpbrxc8";
+    sha256 = "1fxqjf7g30ix4qxi6366rrax27s3maxq43z2vakwnhz4mp49m9h4";
   };
 
   nativeBuildInputs = [
     meson
     ninja
-    pkgconfig
-    makeWrapper
+    pkg-config
   ];
 
   buildInputs = [
@@ -22,6 +21,10 @@ stdenv.mkDerivation rec {
     mesa
   ];
 
+  mesonFlags = [
+    "-D edje-cc=${efl}/bin/edje_cc"
+  ];
+
   meta = {
     description = "Powerful terminal emulator based on EFL";
     homepage = "https://www.enlightenment.org/about-terminology";
diff --git a/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix b/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix
index 68c1b3b5da4..99175e25120 100644
--- a/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pkgconfig, glib, gnome2, dbus-glib, gmime, gnome-icon-theme, libnotify, libgnome-keyring, openssl, cyrus_sasl, gnonlin, sylpheed, gob2, gettext, intltool, libxml2, hicolor-icon-theme, tango-icon-theme }:
+{ stdenv, fetchFromGitHub, pkgconfig, glib, gnome2, dbus-glib, gmime, gnome-icon-theme, libnotify, libgnome-keyring, openssl, cyrus_sasl, sylpheed, gob2, gettext, intltool, libxml2, hicolor-icon-theme, tango-icon-theme }:
 
 stdenv.mkDerivation rec {
   rev = "9ae8768";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-   buildInputs = [ glib dbus-glib gmime libnotify libgnome-keyring openssl cyrus_sasl gnonlin sylpheed gob2 gettext intltool gnome2.GConf gnome2.libgnomeui dbus-glib gmime libnotify gnome2.scrollkeeper libxml2 gnome-icon-theme hicolor-icon-theme tango-icon-theme ];
+   buildInputs = [ glib dbus-glib gmime libnotify libgnome-keyring openssl cyrus_sasl sylpheed gob2 gettext intltool gnome2.GConf gnome2.libgnomeui dbus-glib gmime libnotify gnome2.scrollkeeper libxml2 gnome-icon-theme hicolor-icon-theme tango-icon-theme ];
 
   prePatch = ''
     sed -i  -e '/jb_rule_set_install_message/d' -e '/jb_rule_add_install_command/d' jbsrc/jb.c
diff --git a/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix b/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
index d248ad37d02..20cc3877efb 100644
--- a/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   patches = [
     (fetchpatch {
       name = "0001-gnome-scores.h-Convert-to-UTF-8.patch";
-      url = "https://github.com/GNOME/libgnomeui/commit/30334c28794ef85d8973f4ed0779b5ceed6594f2.diff";
+      url = "https://gitlab.gnome.org/Archive/libgnomeui/-/commit/30334c28794ef85d8973f4ed0779b5ceed6594f2.diff";
       sha256 = "1sn8j8dkam14wfkpw8nga3gk63wniff243mzv3jp0fvv52q8sqhk";
     })
   ];
diff --git a/pkgs/desktops/gnome-3/apps/accerciser/default.nix b/pkgs/desktops/gnome-3/apps/accerciser/default.nix
index 192c179a93f..c0ca54d6fec 100644
--- a/pkgs/desktops/gnome-3/apps/accerciser/default.nix
+++ b/pkgs/desktops/gnome-3/apps/accerciser/default.nix
@@ -16,14 +16,14 @@
 }:
 
  python3.pkgs.buildPythonApplication rec {
-  name = "accerciser-${version}";
-  version = "3.36.1";
+  pname = "accerciser";
+  version = "3.36.3";
 
   format = "other";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/accerciser/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1ig9zcg8z7yv2c28q0a4q57ckkpmzjsbnancx01rjihrrjbg9ib2";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0zfhmpaqqwm89k8p4apq4la191icjvqh0097p5aig3yhy87fahp9";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/apps/evolution/default.nix b/pkgs/desktops/gnome-3/apps/evolution/default.nix
index b9ac719004a..f27050cd68f 100644
--- a/pkgs/desktops/gnome-3/apps/evolution/default.nix
+++ b/pkgs/desktops/gnome-3/apps/evolution/default.nix
@@ -43,11 +43,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution";
-  version = "3.36.3";
+  version = "3.36.5";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "00yann3cibbsap7vh6qq08aklvydynmk6gmljkzd80kc52m6rqal";
+    sha256 = "1hpjd5d3z52xcjcc1hg5z8ypnx2y6ml9snyrlpflg9bx16yhxm1x";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/apps/file-roller/default.nix b/pkgs/desktops/gnome-3/apps/file-roller/default.nix
index a735d9f446d..7c518c4acd9 100644
--- a/pkgs/desktops/gnome-3/apps/file-roller/default.nix
+++ b/pkgs/desktops/gnome-3/apps/file-roller/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "file-roller";
-  version = "3.36.2";
+  version = "3.36.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/file-roller/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1lkb0m8ys13sy3b6c1kj3cqrqf5d1dqvhbp8spz8v9yjv3d7z3r6";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1dw1vfnfc44k57b6mip8fv565d2xv5wrigi4js044x3sbl5f2n89";
   };
 
   LANG = "en_US.UTF-8"; # postinstall.py
diff --git a/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
index eed28908bf3..4acc687da8b 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
@@ -51,11 +51,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-boxes";
-  version = "3.36.5";
+  version = "3.36.6";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-boxes/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1khvyhgd3p41fvvknga1hdl0p1ks4kj4cwsiaw28v1sy6nzclm2c";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix b/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
index 8d5501537a0..8d1208d4c68 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
@@ -23,7 +23,7 @@
 , docbook_xsl
 , docbook_xml_dtd_42
 , gobject-introspection
-, inkscape
+, inkscape_0
 , poppler_utils
 , desktop-file-utils
 , wrapGAppsHook
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
     python3
 
     # building getting started
-    inkscape
+    inkscape_0
     poppler_utils
   ];
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix b/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
index 08dbb2ea5d9..45675b791cd 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchurl
+, fetchpatch
 , meson
 , ninja
 , pkgconfig
@@ -27,6 +28,14 @@ stdenv.mkDerivation rec {
     sha256 = "0w1nfdxbv3f0wnhmdy21ydvr4swfc108hypda561p7l9lrhnnxj4";
   };
 
+  patches = [
+    # https://gitlab.gnome.org/GNOME/gnome-logs/-/issues/52
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-logs/-/commit/b42defceefc775220b525f665a3b662ab9593b81.patch";
+      sha256 = "1s0zscmhwy7r0xff17wh8ik8x9xw1vrkipw5vl5i770bxnljps8n";
+    })
+  ];
+
   nativeBuildInputs = [
     python3
     meson
diff --git a/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix b/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
index a722ab9616e..57ba6fd0766 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
@@ -5,13 +5,13 @@
 
 let
   pname = "gnome-maps";
-  version = "3.36.2";
+  version = "3.36.4";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "114pia3nd8k7j6ll7za7qzv0ggcdvcw6b3w4lppqqrwqvswik8jv";
+    sha256 = "1ila7li9yi4lyjc84a787qr33wr7ayppphxn451jzg410pfcamhz";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
index d2d3f83f427..92c40f4a008 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
@@ -30,13 +30,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gnome-music";
-  version = "3.36.3";
+  version = "3.36.4.1";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0ds225fd0zl0zpjc2wmzg4fwivqbqsyiqpnf9pzlqpwrz10d5y2l";
+    sha256 = "0zdpjgwf48bqb66wrl6k33pzcmc2g3m1046ma7z8xaj9idpi37jh";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix b/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
index 03edd5c9bfe..c32289d70d7 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
@@ -23,7 +23,7 @@
 }:
 
 let
-  version = "3.36.1";
+  version = "3.36.3";
 in
 stdenv.mkDerivation {
   pname = "gnome-notes";
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://gnome/sources/bijiben/${stdenv.lib.versions.majorMinor version}/bijiben-${version}.tar.xz";
-    sha256 = "0421g9czdahk2w2kv7zg4gd9b4q8g1hl483jsfrxy5y7saincbr1";
+    sha256 = "1midnphyg038s94ahhzv0pvbzzzn62ccky28c9nazxqvw4hvdsbh";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome-3/apps/seahorse/default.nix b/pkgs/desktops/gnome-3/apps/seahorse/default.nix
index ec6791e3231..3668fc171b3 100644
--- a/pkgs/desktops/gnome-3/apps/seahorse/default.nix
+++ b/pkgs/desktops/gnome-3/apps/seahorse/default.nix
@@ -27,11 +27,11 @@
 
 stdenv.mkDerivation rec {
   pname = "seahorse";
-  version = "3.36";
+  version = "3.36.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1nqn4a6dr4l1fpzj3mv4swhpnvhjcqlwsyhwm59sdzqgdfx4hbwr";
+    sha256 = "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
index 860b7b957b9..c6b02917ce4 100644
--- a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
+++ b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
@@ -3,13 +3,13 @@
 
 let
   pname = "dconf-editor";
-  version = "3.36.2";
+  version = "3.36.4";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1iz1ngb26llhqnm2s4p55ysvnav41iv0fx0pbw98k181gy3cikpd";
+    sha256 = "0y9yll77wkvr9ly132icfsl12sdz5aba9qc3aqm5rc90r6xhkhry";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/eog/default.nix b/pkgs/desktops/gnome-3/core/eog/default.nix
index db15cf2555c..9885d0de37f 100644
--- a/pkgs/desktops/gnome-3/core/eog/default.nix
+++ b/pkgs/desktops/gnome-3/core/eog/default.nix
@@ -4,13 +4,13 @@
 
 let
   pname = "eog";
-  version = "3.36.2";
+  version = "3.36.3";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "135pw7ifr585grz1rbmynyyrmhd8w880pilg7c4nvq58jl16n1aw";
+    sha256 = "1p1lrnsgk5iyw7h02qzax4s74dqqsh5lk85b0qsj7hwx91qm61xp";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig gettext itstool wrapGAppsHook libxml2 gobject-introspection python3 ];
diff --git a/pkgs/desktops/gnome-3/core/epiphany/default.nix b/pkgs/desktops/gnome-3/core/epiphany/default.nix
index 5cffe4187ca..ad2d67972a9 100644
--- a/pkgs/desktops/gnome-3/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome-3/core/epiphany/default.nix
@@ -35,11 +35,11 @@
 
 stdenv.mkDerivation rec {
   pname = "epiphany";
-  version = "3.36.2";
+  version = "3.36.4";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/epiphany/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0ppvzfv98031y884cgy5agr90a0q3m37x2kybsd804g21ym7drn2";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1gs2a94fzpciv58rljgbirsc2kqgiaiyc2yg6ff50nlgb2qpb2jq";
   };
 
   # Tests need an X display
diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix
index d1047b37a72..11a5bcbd0f7 100644
--- a/pkgs/desktops/gnome-3/core/evince/default.nix
+++ b/pkgs/desktops/gnome-3/core/evince/default.nix
@@ -43,13 +43,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evince";
-  version = "3.36.6";
+  version = "3.36.7";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evince/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1c4ddlx12jm2cq0h0kfqwqncq3d8grvqhvpb29z86z7wqqhrpklm";
+    sha256 = "0clg9fhgjyj23mmcmw7dp512wzgv5m18fppn05qf1frz7r11mmk5";
   };
 
   postPatch = ''
@@ -128,6 +128,6 @@ stdenv.mkDerivation rec {
 
     license = stdenv.lib.licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = teams.gnome.members ++ [ maintainers.vcunat ];
+    maintainers = teams.gnome.members;
   };
 }
diff --git a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
index 4bb3f4517f0..721b38d8564 100644
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution-data-server";
-  version = "3.36.3";
+  version = "3.36.5";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1cix02xl473m0l7h715s68cn7bi1p4y1jkrxswcq4a0g7lblhpqz";
+    sha256 = "1nbzzqxlck3jz42wnxl281yfzpylcvbsbb0fvkh7nibdaj654mf5";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
index 6e933e7b9af..5372552a720 100644
--- a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-contacts";
-  version = "3.36.1";
+  version = "3.36.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-contacts/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0qb2kgyk6f6wr129a0gzhvpy5wdjpwjbksxyfs6zxv183jl9s73z";
+    sha256 = "048l07biy8xrfidfyzrjd5lrnfzqhb767ih2gl7w6c4mmhj4g2dy";
   };
 
   propagatedUserEnvPkgs = [ evolution-data-server ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
index d282fec2e85..ea28d651eba 100644
--- a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
@@ -68,11 +68,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-control-center";
-  version = "3.36.3";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0739qcwfwrimfrpf3gaakkf7ipwy3virs096kkhkxjmy1nbls5xw";
+    sha256 = "0m7pxjgymc7aqqz0vcmlq91nxnwzd1v7v1gdhrfam49krxmk80mc";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
index 22b3f17b425..e558eb66d40 100644
--- a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-desktop";
-  version = "3.36.3.1";
+  version = "3.36.5";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-desktop/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0zkbx5inprjpf4abqwn0bxc2d1rwbhv450cjh1wgz82ylagi3vab";
+    sha256 = "0lxpgb199hn37vq822qg9g43pwixbki3x5lkazqa77qhjhlj98gf";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
index a7f66e68eef..40085e501b6 100644
--- a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-disk-utility";
-  version = "3.36.1";
+  version = "3.36.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-disk-utility/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "055l29z99f4ybgf2plz3biz1bwhlpsjpr0zk3aa6vg5w67r1h6vr";
+    sha256 = "0yhnjmjzkixj29vcw6rzaijpg4mlwm2k1kqp4g3hn1xb6qzks0yx";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix b/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
index ff7463b940e..ff7b1f45e45 100644
--- a/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
@@ -36,11 +36,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-initial-setup";
-  version = "3.36.3";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "11f2yj8q844gks3jkfbi4ap448snz1wjflqbq4y2kk12r3w37afq";
+    sha256 = "17szzz2a5wpi7kwjnhimiwf8vg0bfliyk3k0adgv1pw2mcfpxp5s";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
index a501f912277..ba1b0faedb2 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extensions";
-  version = "3.36.2";
+  version = "3.36.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell-extensions/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0gq0z0k02b5cfaqrikk2hzbqzjkb6qwcanaqi2jh7nswa7g050lp";
+    sha256 = "1cg3dqvvxg8zrdqs2rci8sds2hxjahbhm87f0xpy8b3gq56lqrrb";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
index 37962d0c69d..8f2e78c639c 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
@@ -1,60 +1,81 @@
-{ fetchurl, fetchpatch, substituteAll, stdenv, meson, ninja, pkgconfig, gnome3, json-glib, gettext, libsecret
-, python3, libsoup, polkit, clutter, networkmanager, docbook_xsl , docbook_xsl_ns, at-spi2-core
-, libstartup_notification, telepathy-glib, telepathy-logger, libXtst, unzip, glibcLocales, shared-mime-info
-, libgweather, libcanberra-gtk3, librsvg, geoclue2, perl, docbook_xml_dtd_42, desktop-file-utils
-, libpulseaudio, libical, gobject-introspection, wrapGAppsHook, libxslt, gcr
-, accountsservice, gdk-pixbuf, gdm, upower, ibus, libnma, libgnomekbd, gnome-desktop
-, gsettings-desktop-schemas, gnome-keyring, glib, gjs, mutter, evolution-data-server, gtk3
-, sassc, systemd, gst_all_1, adwaita-icon-theme, gnome-bluetooth, gnome-clocks, gnome-settings-daemon
-, gnome-autoar, asciidoc-full
+{ fetchurl
+, fetchpatch
+, substituteAll
+, stdenv
+, meson
+, ninja
+, pkg-config
+, gnome3
+, json-glib
+, gettext
+, libsecret
+, python3
+, polkit
+, networkmanager
+, gtk-doc
+, docbook-xsl-nons
+, at-spi2-core
+, libstartup_notification
+, telepathy-glib
+, telepathy-logger
+, unzip
+, shared-mime-info
+, libgweather
+, librsvg
+, geoclue2
+, perl
+, docbook_xml_dtd_412
+, docbook_xml_dtd_42
+, docbook_xml_dtd_43
+, desktop-file-utils
+, libpulseaudio
+, libical
+, gobject-introspection
+, wrapGAppsHook
+, libxslt
+, gcr
+, accountsservice
+, gdk-pixbuf
+, gdm
+, upower
+, ibus
+, libnma
+, libgnomekbd
+, gnome-desktop
+, gsettings-desktop-schemas
+, gnome-keyring
+, glib
+, gjs
+, mutter
+, evolution-data-server
+, gtk3
+, sassc
+, systemd
+, gst_all_1
+, adwaita-icon-theme
+, gnome-bluetooth
+, gnome-clocks
+, gnome-settings-daemon
+, gnome-autoar
+, asciidoc-full
 , bash-completion
 }:
 
 # http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild?revision=1.3&view=markup
-
 let
-  pythonEnv = python3.withPackages ( ps: with ps; [ pygobject3 ] );
-
-in stdenv.mkDerivation rec {
+  pythonEnv = python3.withPackages (ps: with ps; [ pygobject3 ]);
+in
+stdenv.mkDerivation rec {
   pname = "gnome-shell";
-  version = "3.36.3";
+  version = "3.36.5";
+
+  outputs = [ "out" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-shell/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1fs51lcaal4lnx6m5a3j8922yjbjk32khznx77cxb2db1zvspn46";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1hj7gmjmy92xndlgw7pzk5m6j2fbzcgfd1pxc32k38gml8qg19d4";
   };
 
-  LANG = "en_US.UTF-8";
-
-  nativeBuildInputs = [
-    meson ninja pkgconfig gettext docbook_xsl docbook_xsl_ns docbook_xml_dtd_42 perl wrapGAppsHook glibcLocales
-    sassc desktop-file-utils libxslt.bin python3 asciidoc-full
-  ];
-  buildInputs = [
-    systemd
-    gsettings-desktop-schemas gnome-keyring glib gcr json-glib accountsservice
-    libsecret libsoup polkit gdk-pixbuf librsvg
-    networkmanager libstartup_notification telepathy-glib
-    libXtst gjs mutter libpulseaudio evolution-data-server
-    libical gtk3 gdm libcanberra-gtk3 geoclue2
-    adwaita-icon-theme gnome-bluetooth
-    gnome-clocks # schemas needed
-    at-spi2-core upower ibus gnome-desktop telepathy-logger gnome-settings-daemon
-    gobject-introspection
-    gnome-autoar
-
-    # recording
-    gst_all_1.gstreamer
-    gst_all_1.gst-plugins-base
-    gst_all_1.gst-plugins-good
-
-    # not declared at build time, but typelib is needed at runtime
-    libgweather libnma
-
-    # for gnome-extension tool
-    bash-completion
-  ];
-
   patches = [
     # Hardcode paths to various dependencies so that they can be found at runtime.
     (substituteAll {
@@ -86,6 +107,77 @@ in stdenv.mkDerivation rec {
     })
   ];
 
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    docbook-xsl-nons
+    docbook_xml_dtd_412
+    docbook_xml_dtd_42
+    docbook_xml_dtd_43
+    gtk-doc
+    perl
+    wrapGAppsHook
+    sassc
+    desktop-file-utils
+    libxslt.bin
+    python3
+    asciidoc-full
+  ];
+
+  buildInputs = [
+    systemd
+    gsettings-desktop-schemas
+    gnome-keyring
+    glib
+    gcr
+    accountsservice
+    libsecret
+    polkit
+    gdk-pixbuf
+    librsvg
+    networkmanager
+    libstartup_notification
+    telepathy-glib
+    gjs
+    mutter
+    libpulseaudio
+    evolution-data-server
+    libical
+    gtk3
+    gdm
+    geoclue2
+    adwaita-icon-theme
+    gnome-bluetooth
+    gnome-clocks # schemas needed
+    at-spi2-core
+    upower
+    ibus
+    gnome-desktop
+    telepathy-logger
+    gnome-settings-daemon
+    gobject-introspection
+
+    # recording
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+
+    # not declared at build time, but typelib is needed at runtime
+    libgweather
+    libnma
+
+    # for gnome-extension tool
+    bash-completion
+    gnome-autoar
+    json-glib
+  ];
+
+  mesonFlags = [
+    "-Dgtk_doc=true"
+  ];
+
   postPatch = ''
     patchShebangs src/data-to-c.pl
     chmod +x meson/postinstall.py
diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix
index 42697911bd4..79cbbb9f5a8 100644
--- a/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/pkgs/desktops/gnome-3/core/mutter/default.nix
@@ -1,19 +1,18 @@
 { fetchurl
 , fetchpatch
 , substituteAll
+, runCommand
 , stdenv
 , pkgconfig
 , gnome3
 , gettext
 , gobject-introspection
-, upower
 , cairo
 , pango
-, cogl
 , json-glib
 , libstartup_notification
 , zenity
-, libcanberra-gtk3
+, libcanberra
 , ninja
 , xkeyboard_config
 , libxkbfile
@@ -24,7 +23,6 @@
 , glib
 , gtk3
 , gnome-desktop
-, geocode-glib
 , pipewire
 , libgudev
 , libwacom
@@ -42,17 +40,28 @@
 , wayland-protocols
 }:
 
-stdenv.mkDerivation rec {
+let self = stdenv.mkDerivation rec {
   pname = "mutter";
-  version = "3.36.3";
+  version = "3.36.5";
 
   outputs = [ "out" "dev" "man" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/mutter/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1lpf7anlm073npmfqc5n005kyj12j0ym8y9dqg9q7448ilp79kka";
+    sha256 = "1py7sqrpvg2qvswxclshysx7hd9jk65i6cwqsagd6rg6rnjhblp0";
   };
 
+  patches = [
+    # Drop inheritable cap_sys_nice, to prevent the ambient set from leaking
+    # from mutter/gnome-shell, see https://github.com/NixOS/nixpkgs/issues/71381
+    ./drop-inheritable.patch
+
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit zenity;
+    })
+  ];
+
   mesonFlags = [
     "-Degl_device=true"
     "-Dinstalled_tests=false" # TODO: enable these
@@ -85,16 +94,14 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     cairo
-    cogl
     egl-wayland
-    geocode-glib
     glib
     gnome-desktop
     gnome-settings-daemon
     gobject-introspection
     gsettings-desktop-schemas
     gtk3
-    libcanberra-gtk3
+    libcanberra
     libgudev
     libinput
     libstartup_notification
@@ -104,25 +111,11 @@ stdenv.mkDerivation rec {
     pango
     pipewire
     sysprof
-    upower
     xkeyboard_config
     xwayland
-    zenity
-    zenity
     wayland-protocols
   ];
 
-  patches = [
-    # Drop inheritable cap_sys_nice, to prevent the ambient set from leaking
-    # from mutter/gnome-shell, see https://github.com/NixOS/nixpkgs/issues/71381
-    ./drop-inheritable.patch
-
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit zenity;
-    })
-  ];
-
   postPatch = ''
     patchShebangs src/backends/native/gen-default-modes.py
   '';
@@ -132,6 +125,18 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
+    libdir = "${self}/lib/mutter-6";
+
+    tests = {
+      libdirExists = runCommand "mutter-libdir-exists" {} ''
+        if [[ ! -d ${self.libdir} ]]; then
+          echo "passthru.libdir should contain a directory, “${self.libdir}” is not one."
+          exit 1
+        fi
+        touch $out
+      '';
+    };
+
     updateScript = gnome3.updateScript {
       packageName = pname;
       attrPath = "gnome3.${pname}";
@@ -145,4 +150,5 @@ stdenv.mkDerivation rec {
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
   };
-}
+};
+in self
diff --git a/pkgs/desktops/gnome-3/core/rygel/default.nix b/pkgs/desktops/gnome-3/core/rygel/default.nix
index 1ace6a5f777..529091e5fd6 100644
--- a/pkgs/desktops/gnome-3/core/rygel/default.nix
+++ b/pkgs/desktops/gnome-3/core/rygel/default.nix
@@ -28,14 +28,14 @@
 
 stdenv.mkDerivation rec {
   pname = "rygel";
-  version = "0.38.3";
+  version = "0.38.4";
 
   # TODO: split out lib
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8";
+    sha256 = "0rm1m1z8rcvyj9873wqcz5i3qdg8j6gv6k1p01xifk0y9phg7rzc";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/simple-scan/default.nix b/pkgs/desktops/gnome-3/core/simple-scan/default.nix
index 938e89be1e3..eebd307a306 100644
--- a/pkgs/desktops/gnome-3/core/simple-scan/default.nix
+++ b/pkgs/desktops/gnome-3/core/simple-scan/default.nix
@@ -24,11 +24,11 @@
 
 stdenv.mkDerivation rec {
   pname = "simple-scan";
-  version = "3.36.2.1";
+  version = "3.36.4";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/simple-scan/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0aq1pf0wk536b91as54684xgmhl7lps0k2xcwha5wh6h1isyb35v";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "09gmzrlljdqkj3w6wa1c27wypy6j8z9dw3jzv9izfqvp38liibsn";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/extensions/appindicator/default.nix b/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
index da0d73364a9..5f34d079114 100644
--- a/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
@@ -18,10 +18,12 @@ stdenv.mkDerivation rec {
 
   uuid = "appindicatorsupport@rgcjonas.gmail.com";
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions/${uuid}
     cp *.js $out/share/gnome-shell/extensions/${uuid}
     cp -r interfaces-xml $out/share/gnome-shell/extensions/${uuid}
     cp metadata.json $out/share/gnome-shell/extensions/${uuid}
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix b/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
index 7bd31f587f6..336820b7938 100644
--- a/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-arc-menu";
-  version = "43";
+  version = "47";
 
   src = fetchFromGitLab {
-    owner = "LinxGem33";
+    owner = "arcmenu-team";
     repo = "Arc-Menu";
     rev = "v${version}-Stable";
-    sha256 = "1rspl89bxqy0wla8cj0h1d29gp38xg1vmvhc1qg7bl46ank4yp5q";
+    sha256 = "1hhjxdm1sm9pddhkkxx532hqqiv9ghvqgn9xszg1jwhj29380fv6";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch b/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch
index 7f6b8489ea8..5d8584f52a6 100644
--- a/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch
+++ b/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch
@@ -1,12 +1,11 @@
 --- a/extension.js
 +++ b/extension.js
-@@ -29,6 +29,8 @@
-  * https://github.com/The-Panacea-Projects/Gnomenu
-  */
- 
-+
-+imports.gi.GIRepository.Repository.prepend_search_path('@gmenu_path@');
- 
- // Import Libraries
- const Main = imports.ui.main;
+@@ -23,6 +23,8 @@
+
+ const Me = imports.misc.extensionUtils.getCurrentExtension();
 
++imports.gi.GIRepository.Repository.prepend_search_path('@gmenu_path@');
++
+ const {GLib, Gio, St} = imports.gi;
+ const Constants = Me.imports.constants;
+ const Controller = Me.imports.controller;
diff --git a/pkgs/desktops/gnome-3/extensions/battery-status/default.nix b/pkgs/desktops/gnome-3/extensions/battery-status/default.nix
index 44b3f04f79d..c6518201da0 100644
--- a/pkgs/desktops/gnome-3/extensions/battery-status/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/battery-status/default.nix
@@ -14,8 +14,10 @@ stdenv.mkDerivation rec {
   uuid = "battery_status@milliburn.github.com";
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions/
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/extensions/caffeine/default.nix b/pkgs/desktops/gnome-3/extensions/caffeine/default.nix
index 608d44a2892..770c32f21e7 100644
--- a/pkgs/desktops/gnome-3/extensions/caffeine/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/caffeine/default.nix
@@ -18,13 +18,17 @@ stdenv.mkDerivation rec {
   ];
 
   buildPhase = ''
+    runHook preBuild
     ${bash}/bin/bash ./update-locale.sh
     glib-compile-schemas --strict --targetdir=caffeine@patapon.info/schemas/ caffeine@patapon.info/schemas
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix b/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix
index 640903bfe4e..3e6903c5642 100644
--- a/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix
@@ -14,8 +14,10 @@ stdenv.mkDerivation rec {
   uuid = "clipboard-indicator@tudmotu.com";
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions/${uuid}
     cp -r * $out/share/gnome-shell/extensions/${uuid}
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix b/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix
index 4e9c4c025cd..a41719f2b9b 100644
--- a/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-dash-to-panel";
-  version = "31";
+  version = "38";
 
   src = fetchFromGitHub {
     owner = "home-sweet-gnome";
     repo = "dash-to-panel";
     rev = "v${version}";
-    sha256 = "0vh36mdncjvfp1jbinifznj5dw3ahsswwm3m9sjw5gydsbx6vh83";
+    sha256 = "1kvybb49l1vf0fvh8d0c6xkwnry8m330scamf5x40y63d4i213j1";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix b/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix
index fb713201594..3c6d181178b 100644
--- a/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix
@@ -21,8 +21,10 @@ stdenv.mkDerivation rec {
   ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions/
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/extensions/emoji-selector/default.nix b/pkgs/desktops/gnome-3/extensions/emoji-selector/default.nix
new file mode 100644
index 00000000000..c4db4702193
--- /dev/null
+++ b/pkgs/desktops/gnome-3/extensions/emoji-selector/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, glib, gettext }:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-shell-emoji-selector";
+  version = "19";
+
+  src = fetchFromGitHub {
+    owner = "maoschanz";
+    repo = "emoji-selector-for-gnome";
+    rev = version;
+    sha256 = "0x60pg5nl5d73av494dg29hyfml7fbf2d03wm053vx1q8a3pxbyb";
+  };
+
+  uuid = "emoji-selector@maestroschan.fr";
+
+  nativeBuildInputs = [ glib ];
+
+  buildPhase = ''
+    runHook preBuild
+    glib-compile-schemas ./${uuid}/schemas
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/gnome-shell/extensions
+    cp -r ${uuid} $out/share/gnome-shell/extensions
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description =
+      "GNOME Shell extension providing a searchable popup menu displaying most emojis";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ rawkode ];
+    homepage = "https://github.com/maoschanz/emoji-selector-for-gnome";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix b/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
index 625b06d7405..53f8d9e79a0 100644
--- a/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-gsconnect";
-  version = "38";
+  version = "39";
 
   src = fetchFromGitHub {
     owner = "andyholmes";
     repo = "gnome-shell-extension-gsconnect";
     rev = "v${version}";
-    sha256 = "1z5wn3n1sqc2xdxiq0g3dkga7srz5ak41qdyjsh9pzb5x93dxzi5";
+    sha256 = "0d2wypf36p95v756arf06gfilpb48gp55i1xbqnqvcd10n3q4zc2";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix b/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix
index efaef03f3b1..844c8ad84d7 100644
--- a/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix
@@ -14,8 +14,10 @@ stdenv.mkDerivation rec {
   uuid = "icon-hider@kalnitsky.org";
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/extensions/impatience/default.nix b/pkgs/desktops/gnome-3/extensions/impatience/default.nix
index 230498f5d7b..073a4301cc5 100644
--- a/pkgs/desktops/gnome-3/extensions/impatience/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/impatience/default.nix
@@ -16,12 +16,16 @@ stdenv.mkDerivation rec {
   ];
 
   buildPhase = ''
+    runHook preBuild
     make schemas
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r impatience $out/share/gnome-shell/extensions/${uuid}
+    runHook postInstall
   '';
 
   uuid = "impatience@gfxmonk.net";
diff --git a/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix b/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix
index fe3a079c01b..4bf4b750817 100644
--- a/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , gnome3
 }:
 
@@ -17,10 +18,19 @@ stdenv.mkDerivation rec {
   uuid = "mprisindicatorbutton@JasonLG1979.github.io";
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions
+    runHook postInstall
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "gnomeExtensions.${pname}";
+    };
+  };
+
+
   meta = with stdenv.lib; {
     description = "A simple MPRIS indicator button for GNOME Shell";
     license = licenses.gpl3;
diff --git a/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix b/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix
index be6c1916ab4..f170a2fb190 100644
--- a/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix
@@ -1,25 +1,25 @@
-{ stdenv, fetchFromGitLab }:
+{ stdenv, fetchFromGitLab, glib, gnome3, unzip }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-night-theme-switcher";
-  version = "19";
+  version = "36";
 
   src = fetchFromGitLab {
     owner = "rmnvgr";
     repo = "nightthemeswitcher-gnome-shell-extension";
     rev = "v${version}";
-    sha256 = "1ll0yf1skf51wa10mlrajd1dy459w33kx0i3vhfcx2pdk7mw5a3c";
+    sha256 = "1c88979qprwb5lj0v7va017w7rdr89a648anhw4k5q135jwyskpz";
   };
 
-  # makefile tries to do install in home directory using
-  # `gnome-extensions install`
-  dontBuild = true;
+  buildInputs = [ glib gnome3.gnome-shell unzip ];
 
   uuid = "nightthemeswitcher@romainvigier.fr";
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions/
-    cp -r src/ $out/share/gnome-shell/extensions/${uuid}
+    unzip build/${uuid}.shell-extension.zip -d $out/share/gnome-shell/extensions/${uuid}
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/extensions/paperwm/default.nix b/pkgs/desktops/gnome-3/extensions/paperwm/default.nix
index 7a79b691a4d..f5ffac9b2f3 100644
--- a/pkgs/desktops/gnome-3/extensions/paperwm/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/paperwm/default.nix
@@ -16,8 +16,10 @@ stdenv.mkDerivation rec {
   dontBuild = true;
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions/${uuid}
     cp -r . $out/share/gnome-shell/extensions/${uuid}
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix b/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix
index e13941ee045..dfcfd63b59d 100644
--- a/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix
@@ -15,10 +15,12 @@ stdenv.mkDerivation rec {
   dontBuild = true;
 
   installPhase = ''
+    runHook preInstall
     share_dir="$prefix/share"
     extensions_dir="$share_dir/gnome-shell/extensions/pidgin@muffinmad"
     mkdir -p "$extensions_dir"
     mv *.js metadata.json dbus.xml schemas locale "$extensions_dir"
+    runHook postInstall
   '';
 
   uuid = "pidgin@muffinmad";
diff --git a/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix b/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix
index acb0e362429..6d6a04a386c 100644
--- a/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix
@@ -18,9 +18,11 @@ stdenv.mkDerivation rec {
 
   uuid = "remove-dropdown-arrows@mpdeimos.com";
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions/${uuid}
     cp extension.js $out/share/gnome-shell/extensions/${uuid}
     cp metadata.json $out/share/gnome-shell/extensions/${uuid}
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix b/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix
index 6273a83dfca..870ac448bb4 100644
--- a/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix
@@ -28,8 +28,10 @@ stdenv.mkDerivation rec {
 
   uuid = "sound-output-device-chooser@kgshank.net";
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix b/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix
index 489a4c5587f..1b1da50b7fa 100644
--- a/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, substituteAll, fetchFromGitHub, glib, glib-networking, libgtop, gnome3 }:
+{ stdenv, substituteAll, fetchpatch, fetchFromGitHub, glib, glib-networking, libgtop, gnome3 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-system-monitor";
-  version = "38";
+  version = "2020-04-27-unstable";
 
   src = fetchFromGitHub {
     owner = "paradoxxxzero";
     repo = "gnome-shell-system-monitor-applet";
-    rev = "v${version}";
-    sha256 = "1sdj2kxb418mgq44a6lf6jic33wlfbnn3ja61igmx0jj1530iknv";
+    rev = "7f8f0a7b255473941f14d1dcaa35ebf39d3bccd0";
+    sha256 = "tUUvBY0UEUE+T79zVZEAICpKoriFZuuZzi9ArdHdXks=";
   };
 
   buildInputs = [
@@ -20,18 +20,23 @@ stdenv.mkDerivation rec {
   patches = [
     (substituteAll {
       src = ./paths_and_nonexisting_dirs.patch;
+      clutter_path = gnome3.mutter.libdir; # this should not be used in settings but 🤷‍♀️
       gtop_path = "${libgtop}/lib/girepository-1.0";
       glib_net_path = "${glib-networking}/lib/girepository-1.0";
     })
   ];
 
   buildPhase = ''
+    runHook preBuild
     glib-compile-schemas --targetdir=${uuid}/schemas ${uuid}/schemas
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions
+    runHook postInstall
   '';
 
   uuid = "system-monitor@paradoxxx.zero.gmail.com";
@@ -41,8 +46,5 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ tiramiseb ];
     homepage = "https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet";
-    # 3.36 support not yet ready
-    # https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet/pull/564
-    broken = stdenv.lib.versionAtLeast gnome3.gnome-shell.version "3.34";
   };
 }
diff --git a/pkgs/desktops/gnome-3/extensions/system-monitor/paths_and_nonexisting_dirs.patch b/pkgs/desktops/gnome-3/extensions/system-monitor/paths_and_nonexisting_dirs.patch
index 82e3d7c541b..280af965af3 100644
--- a/pkgs/desktops/gnome-3/extensions/system-monitor/paths_and_nonexisting_dirs.patch
+++ b/pkgs/desktops/gnome-3/extensions/system-monitor/paths_and_nonexisting_dirs.patch
@@ -1,5 +1,5 @@
 diff --git a/system-monitor@paradoxxx.zero.gmail.com/extension.js b/system-monitor@paradoxxx.zero.gmail.com/extension.js
-index b4b7f15..d139135 100644
+index de5e3d7..2d7824d 100644
 --- a/system-monitor@paradoxxx.zero.gmail.com/extension.js
 +++ b/system-monitor@paradoxxx.zero.gmail.com/extension.js
 @@ -18,6 +18,9 @@
@@ -11,13 +11,23 @@ index b4b7f15..d139135 100644
 +
  /* Ugly. This is here so that we don't crash old libnm-glib based shells unnecessarily
   * by loading the new libnm.so. Should go away eventually */
- const libnm_glib = imports.gi.GIRepository.Repository.get_default().is_registered("NMClient", "1.0");
-@@ -386,7 +389,7 @@ const smMountsMonitor = new Lang.Class({
-     connected: false,
-     _init: function () {
+ 
+@@ -407,7 +410,7 @@ const smMountsMonitor = class SystemMonitor_smMountsMonitor {
+         this.connected = false;
+ 
          this._volumeMonitor = Gio.VolumeMonitor.get();
 -        let sys_mounts = ['/home', '/tmp', '/boot', '/usr', '/usr/local'];
 +        let sys_mounts = ['/home', '/tmp', '/boot'];
          this.base_mounts = ['/'];
-         sys_mounts.forEach(Lang.bind(this, function (sMount) {
+         sys_mounts.forEach((sMount) => {
              if (this.is_sys_mount(sMount + '/')) {
+diff --git a/system-monitor@paradoxxx.zero.gmail.com/prefs.js b/system-monitor@paradoxxx.zero.gmail.com/prefs.js
+index 81d667c..0da4809 100644
+--- a/system-monitor@paradoxxx.zero.gmail.com/prefs.js
++++ b/system-monitor@paradoxxx.zero.gmail.com/prefs.js
+@@ -1,3 +1,5 @@
++imports.gi.GIRepository.Repository.prepend_search_path('@clutter_path@');
++
+ const Gtk = imports.gi.Gtk;
+ const Gio = imports.gi.Gio;
+ const Gdk = imports.gi.Gdk;
diff --git a/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix b/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix
index 60ca1dcbef3..57f5a9377ba 100644
--- a/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix
@@ -14,12 +14,16 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ glib ];
 
   buildPhase = ''
+    runHook preBuild
     glib-compile-schemas .
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions/${uuid}
     cp -r * $out/share/gnome-shell/extensions/${uuid}/
+    runHook postInstall
   '';
 
   uuid = "tilingnome@rliang.github.com";
diff --git a/pkgs/desktops/gnome-3/extensions/timepp/default.nix b/pkgs/desktops/gnome-3/extensions/timepp/default.nix
index 6ac9a4a0331..f9fc68b548a 100644
--- a/pkgs/desktops/gnome-3/extensions/timepp/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/timepp/default.nix
@@ -13,8 +13,10 @@ stdenv.mkDerivation rec {
 
   uuid = "timepp@zagortenay333";
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions/${uuid}
     cp -r . $out/share/gnome-shell/extensions/${uuid}
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix b/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix
index 44402fc6e13..9c5d5266ce2 100644
--- a/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix
@@ -15,8 +15,10 @@ stdenv.mkDerivation rec {
 
   uuid = "window-corner-preview@fabiomereu.it";
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/extensions/window-is-ready-remover/default.nix b/pkgs/desktops/gnome-3/extensions/window-is-ready-remover/default.nix
index 15871e661c1..45ac75baf8b 100644
--- a/pkgs/desktops/gnome-3/extensions/window-is-ready-remover/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/window-is-ready-remover/default.nix
@@ -14,8 +14,10 @@ stdenv.mkDerivation rec {
   uuid = "windowIsReady_Remover@nunofarruca@gmail.com";
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions/
     cp -r ${uuid} $out/share/gnome-shell/extensions/${uuid}
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix b/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix
index 528f4e9f892..4dcb4a8941c 100644
--- a/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-workspace-matrix";
-  version = "4.0.0";
+  version = "4.0.1";
 
   src = fetchFromGitHub {
     owner = "mzur";
     repo = "gnome-shell-wsmatrix";
     rev = "v${version}";
-    sha256 = "0ak4067kgr0yi2hlrsbhsq28ksspmx7l811h0xqy4idg48ly8c1d";
+    sha256 = "1xx2h8k981657lws614f7x4mqjk900xq9907j2h5jdhbbic5ppy6";
   };
 
   uuid = "wsmatrix@martin.zurowietz.de";
@@ -21,8 +21,10 @@ stdenv.mkDerivation rec {
   buildFlags = "schemas";
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/games/aisleriot/default.nix b/pkgs/desktops/gnome-3/games/aisleriot/default.nix
index e4de15c79b2..9ea68b02ea8 100644
--- a/pkgs/desktops/gnome-3/games/aisleriot/default.nix
+++ b/pkgs/desktops/gnome-3/games/aisleriot/default.nix
@@ -1,23 +1,64 @@
-{ stdenv, fetchurl, pkgconfig, gnome3, intltool, itstool, gtk3
-, wrapGAppsHook, librsvg, libxml2, desktop-file-utils
-, guile_2_0, libcanberra-gtk3 }:
+{ stdenv
+, fetchFromGitLab
+, pkg-config
+, gnome3
+, itstool
+, gtk3
+, wrapGAppsHook
+, meson
+, librsvg
+, libxml2
+, desktop-file-utils
+, pysolfc
+, guile
+, libcanberra-gtk3
+, ninja
+, appstream-glib
+, yelp-tools
+}:
 
 stdenv.mkDerivation rec {
   pname = "aisleriot";
-  version = "3.22.9";
+  version = "3.22.11";
 
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji";
+  src = fetchFromGitLab {
+    owner = "GNOME";
+    repo = pname;
+    domain = "gitlab.gnome.org";
+    rev    = "${version}";
+    sha256 = "1asm0y6485xqsysdg586y3hzz8bhxqwnc82k6vhfnxpxz7l62qa1";
   };
 
-  configureFlags = [
-    "--with-card-theme-formats=svg"
-    "--with-platform=gtk-only" # until they remove GConf
+  nativeBuildInputs = [
+    wrapGAppsHook
+    meson
+    ninja
+    appstream-glib
+    pkg-config
+    itstool
+    libxml2
+    desktop-file-utils
+    yelp-tools
   ];
 
-  nativeBuildInputs = [ pkgconfig intltool itstool wrapGAppsHook libxml2 desktop-file-utils ];
-  buildInputs = [ gtk3 librsvg guile_2_0 libcanberra-gtk3 ];
+  buildInputs = [
+    gtk3
+    librsvg
+    guile
+    libcanberra-gtk3
+    pysolfc
+  ];
+
+  prePatch = ''
+    patchShebangs cards/meson_svgz.sh
+    patchShebangs data/meson_desktopfile.py
+    patchShebangs data/icons/meson_updateiconcache.py
+    patchShebangs src/lib/meson_compileschemas.py
+  '';
+
+  mesonFlags = [
+    "-Dtheme_kde=false"
+  ];
 
   passthru = {
     updateScript = gnome3.updateScript {
diff --git a/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix b/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
index aaaba71c7ee..3960f233003 100644
--- a/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
+++ b/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "four-in-a-row";
-  version = "3.36.3";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/four-in-a-row/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1qc6s0v8gnzw3wfbfaaindb031cc8akdjdn2sjqqfxhbpx6mhzmr";
+    sha256 = "1y1ihh72zk0bgyj197dpwgwj1q91dhvp0rasrib8k18sisrdq31h";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-mines/default.nix b/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
index f49634c6ada..011b9569fd8 100644
--- a/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-mines";
-  version = "3.36.0";
+  version = "3.36.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-mines/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0m53ymxbgr3rb3yv13fzjwqh6shsfr51abkm47rchsy2jryqkzja";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i";
   };
 
   # gobject-introspection for finding vapi files
diff --git a/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix b/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
index 9dcc8744d2e..a9757de6393 100644
--- a/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-nibbles";
-  version = "3.36.0";
+  version = "3.36.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-nibbles/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "01vzcjys2x95wnanwq25x0a7x6cc4j6g8gk69c5yc9ild48rr9c1";
+    sha256 = "17n6ji6yr521kzxfbfm0yxvrlnw4hlzacbwn0jqmw7xf3pdq35z6";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix b/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
index fb609bbb978..99bdffe16ad 100644
--- a/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-taquin";
-  version = "3.36.3";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-taquin/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "149bv8q2a44i9msyshhh57nxwf5a43hankbndbvjqvq95yqlnhv4";
+    sha256 = "0awfssqpswsyla4gn80ifj53biwq34hcadxlknnlm7jpz0z38cp0";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix b/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
index 01dc3bab0ca..f80012e22bb 100644
--- a/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-tetravex";
-  version = "3.36.3";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-tetravex/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0y1kc9j740088ffj4rd49w4f2pkn8w6paids5g1dv609sfpzyips";
+    sha256 = "0amnmd12mpny3vnf946wnphlsnbvjrvkx29sarplm57m1571qdc5";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/games/iagno/default.nix b/pkgs/desktops/gnome-3/games/iagno/default.nix
index 3b4fca5f364..0263de1c9b0 100644
--- a/pkgs/desktops/gnome-3/games/iagno/default.nix
+++ b/pkgs/desktops/gnome-3/games/iagno/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "iagno";
-  version = "3.36.3";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/iagno/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0cid9fag8irlq0cywyqaj402vb60l8f66ld1zj7a023rg0khqnbb";
+    sha256 = "1fh2cvyqbz8saf2wij0bz2r9bja2k4gy6fqvbvig4gv0lx66gl29";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/quadrapassel/default.nix b/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
index a4c139f0671..a5302fee7ab 100644
--- a/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
+++ b/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "quadrapassel";
-  version = "3.36.02";
+  version = "3.36.05";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/quadrapassel/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0c80pzipxricyh4wydffsc94wj6ymnanqr9bg6wdx51hz1mmmilb";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "04abxmimh5npw8rhz1sfi6wxilgc6i1wka9mlnfwp8v1p1cb00cv";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/tali/default.nix b/pkgs/desktops/gnome-3/games/tali/default.nix
index 62df1cd1e3d..2fd1d034db3 100644
--- a/pkgs/desktops/gnome-3/games/tali/default.nix
+++ b/pkgs/desktops/gnome-3/games/tali/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tali";
-  version = "3.36.1";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/tali/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1klnxk49rr1m2lr4zj1wvfl0iaxzdh2k8ngrcmfmcq39vlxnn94y";
+    sha256 = "12h6783m4634zzprlk31j0dmvgzrfjklhl0z49fdwcziw5bszr3c";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix b/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
index d390a5b27a2..037c7812105 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
@@ -22,7 +22,7 @@
 
 let
   pname = "gnome-panel";
-  version = "3.36.1";
+  version = "3.36.2";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
@@ -30,7 +30,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1lxba8syy9gb50zxdk13gr1f62dfphwbb7njg6p26x9rvlkbf88y";
+    sha256 = "0z0f64rgcwkv48kfd1ifzjvnmg3c386hwi9cj11mr5198rah0p4p";
   };
 
   # make .desktop Exec absolute
diff --git a/pkgs/desktops/mate/atril/default.nix b/pkgs/desktops/mate/atril/default.nix
index e71ca81142a..12c89ee1b11 100644
--- a/pkgs/desktops/mate/atril/default.nix
+++ b/pkgs/desktops/mate/atril/default.nix
@@ -1,4 +1,25 @@
-{ stdenv, fetchurl, pkgconfig, gettext, gtk3, glib, libxml2, libsecret, poppler, itstool, hicolor-icon-theme, texlive, mate, wrapGAppsHook }:
+{ stdenv
+, fetchurl
+, pkgconfig
+, gettext
+, gtk3
+, glib
+, libxml2
+, libsecret
+, poppler
+, itstool
+, hicolor-icon-theme
+, texlive
+, mate
+, wrapGAppsHook
+, enableEpub ? true, webkitgtk
+, enableDjvu ? true, djvulibre
+, enablePostScript ? true, libspectre
+, enableXps ? true, libgxps
+, enableImages ? false
+}:
+
+with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "atril";
@@ -26,7 +47,19 @@ stdenv.mkDerivation rec {
     mate.mate-desktop
     hicolor-icon-theme
     texlive.bin.core  # for synctex, used by the pdf back-end
-  ];
+  ]
+  ++ optionals enableDjvu [ djvulibre ]
+  ++ optionals enableEpub [ webkitgtk ]
+  ++ optionals enablePostScript [ libspectre ]
+  ++ optionals enableXps [ libgxps ]
+  ;
+
+  configureFlags = [ ]
+    ++ optionals (enableDjvu) [ "--enable-djvu" ]
+    ++ optionals (enableEpub) [ "--enable-epub" ]
+    ++ optionals (enablePostScript) [ "--enable-ps" ]
+    ++ optionals (enableXps) [ "--enable-xps" ]
+    ++ optionals (enableImages) [ "--enable-pixbuf" ];
 
   NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
diff --git a/pkgs/desktops/mate/marco/default.nix b/pkgs/desktops/mate/marco/default.nix
index 3d36f51ab14..69beaa3cee7 100644
--- a/pkgs/desktops/mate/marco/default.nix
+++ b/pkgs/desktops/mate/marco/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "marco";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0hcbyv8czymhwz5q9rwig7kkhlhik6y080bls736f3wsbqnnirc2";
+    sha256 = "109b41pjrc1b4slw6sx1lakdhrc46x829vczzk4bz3j15kcszg54";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/mate-utils/default.nix b/pkgs/desktops/mate/mate-utils/default.nix
index e36ff69a6fa..35ff2635bbd 100644
--- a/pkgs/desktops/mate/mate-utils/default.nix
+++ b/pkgs/desktops/mate/mate-utils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, gettext, itstool, glib, gtk3, libxml2, libgtop, libcanberra-gtk3, inkscape, udisks2, mate, hicolor-icon-theme, wrapGAppsHook }:
+{ stdenv, fetchurl, pkgconfig, gettext, itstool, glib, gtk3, libxml2, libgtop, libcanberra-gtk3, inkscape_0, udisks2, mate, hicolor-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "mate-utils";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     pkgconfig
     gettext
     itstool
-    inkscape
+    inkscape_0
     wrapGAppsHook
   ];
 
diff --git a/pkgs/desktops/pantheon/apps/appcenter/default.nix b/pkgs/desktops/pantheon/apps/appcenter/default.nix
index cf1fe14c13d..18ee7bdd844 100644
--- a/pkgs/desktops/pantheon/apps/appcenter/default.nix
+++ b/pkgs/desktops/pantheon/apps/appcenter/default.nix
@@ -1,4 +1,5 @@
 { stdenv
+, nix-update-script
 , appstream
 , appstream-glib
 , dbus
@@ -23,22 +24,24 @@
 , pkgconfig
 , python3
 , vala
+, polkit
+, libhandy
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "appcenter";
-  version = "3.4.0";
+  version = "3.4.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "04q2gp9yyqsg4jd53rivcmikw52psxijrzfy2vxzjsx8fccd48ra";
+    sha256 = "sha256-8r0DlmG8xlCQ1uFHZQjXG2ls4VBrsRzrVY8Ey3/OYAU=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -58,17 +61,19 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     appstream
-    elementary-icon-theme
     elementary-gtk-theme
+    elementary-icon-theme
     flatpak
     glib
     granite
     gtk3
     json-glib
     libgee
+    libhandy
     libsoup
     libxml2
     packagekit
+    polkit
   ];
 
   mesonFlags = [
diff --git a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
index f2f6faedc5a..0695b6e4006 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -26,11 +27,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1csxsr2c8qvl97xz9ahwn91z095nzgr0i1mbcb1spljll2sr9lkj";
+    sha256 = "sha256-ctKUtaBU0qvDYquGCPL7tiTwQ7IcqvT7SXRjxETWXbM=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
index 2f29d803b25..e8f0e37620e 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -25,7 +26,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-calendar";
-  version = "5.0.5";
+  version = "5.1.0";
 
   repoName = "calendar";
 
@@ -33,11 +34,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1dn2h7riajrn619z69626qnr8w6lp62dnm3d4pjkr0g5l4dp1cdb";
+    sha256 = "sha256-b72BmChl/Ql0ljLRcPMNbJcOV4cVqz5D2j+5BGUi4Go=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/elementary-camera/default.nix b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
index 712f2bec8d5..e7bb60a062d 100644
--- a/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -31,11 +32,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "13jg224h2436swd6kdkfs22icg0ja9lshvxwg5bqnb5fshspkjba";
+    sha256 = "sha256-asl5NdSuLItXebxvqGlSEjwWhdButmka12YQAYkQT44=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/elementary-code/default.nix b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
index 086e0cf7a57..3454ff086c9 100644
--- a/pkgs/desktops/pantheon/apps/elementary-code/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -35,11 +36,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "158zrzyyy507rxcbsb5am9768zbakpwrl61ixab57zla7z51l0g0";
+    sha256 = "sha256-4AEayj+K/lOW6jEYmvmdan1kTqqqLL1YzwcU7/3PH5U=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
index ee9df9955f4..7cc34f8c82c 100644
--- a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, fetchpatch
 , vala
 , atk
 , cairo
@@ -27,7 +28,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-dock";
-  version = "unstable-2020-02-28";
+  version = "unstable-2020-06-11";
 
   outputs = [ "out" "dev" ];
 
@@ -36,10 +37,18 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "elementary";
     repo = repoName;
-    rev = "ac87d9063dc9c81d90f42f3002ad9c5b49460a82";
-    sha256 = "0lhjzd370fza488dav8n155ss486wqv6y7ldkahwg0c3zvlsvha7";
+    rev = "0a389ee58939d8c91c340df4e5340fc4b23d0b80";
+    sha256 = "01vinik73s0vmk56samgf49zr2bl4wjv44x15sz2cmh744llckja";
   };
 
+  patches = [
+    # Fix double includedir path in plank.pc
+    (fetchpatch {
+      url = "https://github.com/elementary/dock/commit/3bc368e2c4fafcd5b8baca2711c773b0e2441c7c.patch";
+      sha256 = "0gg35phi1cg7ixljc388i0h70w323r1gqzjhanccnsbjpqsgvs3k";
+    })
+  ];
+
   nativeBuildInputs = [
     gettext
     meson
diff --git a/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix b/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
index e54841275f6..29b897012e7 100644
--- a/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -26,11 +27,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0rc4ifs4hd4cj0v028bzc45v64pwx21xylwrhb20jpw61ainfi8s";
+    sha256 = "sha256-GkVnowqGXwnEgplT34Po/BKzC2F/IQE2kIw0SLSLhGU=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch b/pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch
new file mode 100644
index 00000000000..9bcedac3f03
--- /dev/null
+++ b/pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch
@@ -0,0 +1,35 @@
+From f51974c9736c3e28755245d15729578214652343 Mon Sep 17 00:00:00 2001
+Message-Id: <f51974c9736c3e28755245d15729578214652343.1599178185.git-series.worldofpeace@protonmail.ch>
+From: worldofpeace <worldofpeace@protonmail.ch>
+Date: Thu,  3 Sep 2020 20:08:15 -0400
+Subject: [PATCH] filechooser-module: hardcode gsettings for nixos
+
+---
+ filechooser-module/FileChooserDialog.vala | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/filechooser-module/FileChooserDialog.vala b/filechooser-module/FileChooserDialog.vala
+index a70fe10..08fde2c 100644
+--- a/filechooser-module/FileChooserDialog.vala
++++ b/filechooser-module/FileChooserDialog.vala
+@@ -60,10 +60,14 @@ public class CustomFileChooserDialog : Object {
+         /* If not local only during creation, strange bug occurs on fresh installs */
+         chooser_dialog.local_only = true;
+ 
+-        var files_preferences = new Settings ("io.elementary.files.preferences");
++        SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@ELEMENTARY_FILES_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
++        SettingsSchema preferences_schema = sss.lookup ("io.elementary.files.preferences", false);
++        SettingsSchema chooser_schema = sss.lookup ("io.elementary.files.file-chooser", false);
++
++        var files_preferences = new Settings.full (preferences_schema, null, null);
+         is_single_click = files_preferences.get_boolean ("single-click");
+ 
+-        var chooser_settings = new Settings ("io.elementary.files.file-chooser");
++        var chooser_settings = new Settings.full (chooser_schema, null, null);
+ 
+         assign_container_box ();
+         remove_gtk_widgets ();
+
+base-commit: 57cb89b64fd2d5c08f4aaf23e8c74bfaa5d0384f
+-- 
+git-series 0.9.1
diff --git a/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
index 346971d4fb4..9433edc9ce5 100644
--- a/pkgs/desktops/pantheon/apps/elementary-files/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -16,7 +17,7 @@
 , libnotify
 , libunity
 , pango
-, plank
+, elementary-dock
 , bamf
 , sqlite
 , libdbusmenu-gtk3
@@ -30,7 +31,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-files";
-  version = "4.4.3";
+  version = "4.5.0";
 
   repoName = "files";
 
@@ -40,11 +41,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "14i5icgpsy78mr7w6cav38p7shfk784b6nlxz9y72rbcxky036yc";
+    sha256 = "sha256-wtQW1poX791DAlSFdVV9psnCfBDeVXI2fDZ2GcvvNn8=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -63,6 +64,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     bamf
+    elementary-dock
     elementary-icon-theme
     granite
     gtk3
@@ -74,13 +76,12 @@ stdenv.mkDerivation rec {
     libnotify
     libunity
     pango
-    plank
     sqlite
     zeitgeist
   ];
 
   patches = [
-    ./hardcode-gsettings.patch
+    ./0001-filechooser-module-hardcode-gsettings-for-nixos.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch b/pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch
deleted file mode 100644
index 3191f4e3cb2..00000000000
--- a/pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/filechooser-module/FileChooserDialog.vala b/filechooser-module/FileChooserDialog.vala
-index cb7c3c49..8b1899d1 100644
---- a/filechooser-module/FileChooserDialog.vala
-+++ b/filechooser-module/FileChooserDialog.vala
-@@ -57,10 +57,15 @@ public class CustomFileChooserDialog : Object {
-         chooser_dialog.deletable = false;
-         chooser_dialog.local_only = false;
- 
--        var settings = new Settings ("io.elementary.files.preferences");
-+        SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@ELEMENTARY_FILES_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
-+        SettingsSchema preferences_schema = sss.lookup ("io.elementary.files.preferences", false);
-+        SettingsSchema chooser_schema = sss.lookup ("io.elementary.files.file-chooser", false);
-+
-+        var settings = new Settings.full (preferences_schema, null, null);
-+
-         is_single_click = settings.get_boolean ("single-click");
- 
--        var chooser_settings = new Settings ("io.elementary.files.file-chooser");
-+        var chooser_settings = new Settings.full (chooser_schema, null, null);
- 
-         assign_container_box ();
-         remove_gtk_widgets ();
diff --git a/pkgs/desktops/pantheon/apps/elementary-music/default.nix b/pkgs/desktops/pantheon/apps/elementary-music/default.nix
index 85739a6ec2e..0e34b29f1de 100644
--- a/pkgs/desktops/pantheon/apps/elementary-music/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-music/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -37,11 +38,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0cb0mwsp5w2bmjq8ap9mi0jvaqr9fgq00gfrkj0mzb5x5c26hrnw";
+    sha256 = "sha256-3GZoBCu9rF+BnNk9APBzKWO1JYg1XYWwrEvwcjWvYDE=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
index 5c6d34a55a5..d3d931e44fc 100644
--- a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -41,11 +42,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "09jjic165rmprc2cszsgj2m3j3f5p8v9pxx5mj66a0gj3ar3hfbd";
+    sha256 = "sha256-bTk4shryAWWMrKX3mza6xQ05qpBPf80Ey7fmYgKLUiY=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
index 078d496bf0d..da67ac0aed8 100644
--- a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -25,11 +26,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "179ib2ldvhdx3hks5lqyx2cvlkk3j1qccvlfwh2yd2bl79zpk3ma";
+    sha256 = "sha256-qo55fzp0ieYF5I5uxnCQY066mege06InHL3B3ahYMZ0=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
index f9f81c37a4b..ddd5c0a0eac 100644
--- a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , pantheon
 , pkgconfig
@@ -30,11 +31,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "119iwmzbpkj4nmxinqfsh73lx23g8gbl6ha6wc4mc4fq9hpnc9c2";
+    sha256 = "sha256-giVmL0zYEVYJ40ZBQ9dDb4hOx4HaYRt7tUTOu37lMYU=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
index c3da10d1cf3..f51c6c0090d 100644
--- a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -19,7 +20,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-videos";
-  version = "2.7.1";
+  version = "2.7.2";
 
   repoName = "videos";
 
@@ -27,11 +28,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "00arim4i9bv9mbms1irkp44grkgrfnmqzraswyn1xiz9nvl1bsb9";
+    sha256 = "sha256-MSyhCXsziQ0MD4lGp9X/9odidjT/L+2Aihwd1qCGvB0=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/sideload/default.nix b/pkgs/desktops/pantheon/apps/sideload/default.nix
index 379eede979f..2fc5d560da0 100644
--- a/pkgs/desktops/pantheon/apps/sideload/default.nix
+++ b/pkgs/desktops/pantheon/apps/sideload/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , desktop-file-utils
+, nix-update-script
 , elementary-gtk-theme
 , elementary-icon-theme
 , fetchFromGitHub
@@ -27,11 +28,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0mlc3nm2navzxm8k1rwpbw4w6mv30lmhqybm8jqxd4v8x7my73vq";
+    sha256 = "sha256-eI/j6+lok9axRHV5DCsFY1fDCV+X5zBR7X8rK6odjFY=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
index 6348f7c93a3..9937edc22b5 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , substituteAll
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -21,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0g8lhdwv9g16kjn7yxnl6x4rscjl2206ljfnghpxc4b5lwhqxxnw";
+    sha256 = "sha256-3PaOIadlEdYvfNZJaoAQVDKdSTfUdn+snCa8tHmDFD0=";
   };
 
   patches = [
@@ -32,7 +33,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
index 77012173656..86db11a3dc3 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , substituteAll
 , meson
@@ -22,11 +23,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1zs2qmglh85ami07dnlq3lfwl5ikc4abvz94a35k6fhfs703lay2";
+    sha256 = "sha256-wis6wNEOOjPLUCT9vRRhMxbKHR2Y2nZArKogSF/FQv8=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
index 9cd92d0a5ed..b5a8cc76651 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -19,11 +20,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0wzm390g8di4ks3w637a0wl4j7g89j321xkz5msd9058gksvaaxs";
+    sha256 = "sha256-uiu19XyogNR0LX/2IIZM6B1JKAfqDMOHniQ29EAa9XM=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
index a353dee27e5..ab1e0b5280a 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -20,11 +21,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0ksxx45mm0cvnb5jphyxsf843rn2rgb0yxv9j0ydh2xp4qgvvyva";
+    sha256 = "sha256-avu9Hya3C9g8kGl3D9bLwuZBkNPdwyvLspuBWgvpXU8=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
index 60762b13e01..95a454b36f4 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -22,11 +23,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1kkd75kp24zq84wfmc00brqxximfsi4sqyx8a7rbl7zaspf182xa";
+    sha256 = "sha256-qgsU3NXqH7ryUah7rEnUrsbecV4AsOo4QfgTcWc5bc4=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
index c1017e2dbdd..490c8c57a67 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -19,11 +20,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0ijzm91gycx8iaf3sd8i07b5899gbryxd6klzjh122d952wsyfcs";
+    sha256 = "sha256-mjmvuSipCRGg/HSa1n1eLyVU1gERNT2ciqgz/0KqX0Y=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch
new file mode 100644
index 00000000000..42900c38062
--- /dev/null
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch
@@ -0,0 +1,700 @@
+From 4fd6da39ab33a6eef46ee2c64eb4f5595c7fe633 Mon Sep 17 00:00:00 2001
+Message-Id: <4fd6da39ab33a6eef46ee2c64eb4f5595c7fe633.1599180249.git-series.worldofpeace@protonmail.ch>
+From: worldofpeace <worldofpeace@protonmail.ch>
+Date: Thu,  3 Sep 2020 20:43:25 -0400
+Subject: [PATCH] Remove Install Unlisted Engines function
+
+https://github.com/elementary/switchboard-plug-keyboard/issues/324
+---
+ src/Dialogs/InstallEngineDialog.vala           | 140 +------------------
+ src/Dialogs/ProgressDialog.vala                |  82 +----------
+ src/InputMethod/Installer/InstallList.vala     |  73 +---------
+ src/InputMethod/Installer/UbuntuInstaller.vala | 142 +------------------
+ src/InputMethod/Installer/aptd-client.vala     |  93 +------------
+ src/Widgets/InputMethod/AddEnginesPopover.vala |  12 +--
+ src/Widgets/InputMethod/LanguagesRow.vala      |  43 +-----
+ src/meson.build                                |   6 +-
+ 8 files changed, 591 deletions(-)
+ delete mode 100644 src/Dialogs/InstallEngineDialog.vala
+ delete mode 100644 src/Dialogs/ProgressDialog.vala
+ delete mode 100644 src/InputMethod/Installer/InstallList.vala
+ delete mode 100644 src/InputMethod/Installer/UbuntuInstaller.vala
+ delete mode 100644 src/InputMethod/Installer/aptd-client.vala
+ delete mode 100644 src/Widgets/InputMethod/LanguagesRow.vala
+
+diff --git a/src/Dialogs/InstallEngineDialog.vala b/src/Dialogs/InstallEngineDialog.vala
+deleted file mode 100644
+index ffba3a8..0000000
+--- a/src/Dialogs/InstallEngineDialog.vala
++++ /dev/null
+@@ -1,140 +0,0 @@
+-/*
+-* Copyright 2019-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it and/or modify
+-* it under the terms of the GNU General Public License as published by
+-* the Free Software Foundation, either version 3 of the License, or
+-* (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be useful,
+-* but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-* GNU General Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License
+-* along with this program.  If not, see <https://www.gnu.org/licenses/>.
+-*/
+-
+-public class Pantheon.Keyboard.InputMethodPage.InstallEngineDialog : Granite.MessageDialog {
+-    private InstallList? engines_filter;
+-
+-    public InstallEngineDialog (Gtk.Window parent) {
+-        Object (
+-            primary_text: _("Choose an engine to install"),
+-            secondary_text: _("Select an engine from the list to install and use."),
+-            image_icon: new ThemedIcon ("extension"),
+-            transient_for: parent,
+-            buttons: Gtk.ButtonsType.CANCEL
+-        );
+-    }
+-
+-    construct {
+-        var languages_list = new Gtk.ListBox () {
+-            activate_on_single_click = true,
+-            expand = true,
+-            selection_mode = Gtk.SelectionMode.NONE
+-        };
+-
+-        foreach (var language in InstallList.get_all ()) {
+-            var lang = new LanguagesRow (language);
+-            languages_list.add (lang);
+-        }
+-
+-        var back_button = new Gtk.Button.with_label (_("Languages")) {
+-            halign = Gtk.Align.START,
+-            margin = 6
+-        };
+-        back_button.get_style_context ().add_class (Granite.STYLE_CLASS_BACK_BUTTON);
+-
+-        var language_title = new Gtk.Label ("");
+-
+-        var language_header = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 6);
+-        language_header.pack_start (back_button);
+-        language_header.set_center_widget (language_title);
+-
+-        var listbox = new Gtk.ListBox () {
+-            expand = true
+-        };
+-        listbox.set_filter_func (filter_function);
+-        listbox.set_sort_func (sort_function);
+-
+-        foreach (var language in InstallList.get_all ()) {
+-            foreach (var engine in language.get_components ()) {
+-                listbox.add (new EnginesRow (engine));
+-            }
+-        }
+-
+-        var scrolled = new Gtk.ScrolledWindow (null, null);
+-        scrolled.add (listbox);
+-
+-        var engine_list_grid = new Gtk.Grid () {
+-            orientation = Gtk.Orientation.VERTICAL
+-        };
+-        engine_list_grid.get_style_context ().add_class (Gtk.STYLE_CLASS_VIEW);
+-        engine_list_grid.add (language_header);
+-        engine_list_grid.add (new Gtk.Separator (Gtk.Orientation.HORIZONTAL));
+-        engine_list_grid.add (scrolled);
+-
+-        var stack = new Gtk.Stack () {
+-            height_request = 200,
+-            width_request = 300,
+-            transition_type = Gtk.StackTransitionType.SLIDE_LEFT_RIGHT
+-        };
+-        stack.add (languages_list);
+-        stack.add (engine_list_grid);
+-
+-        var frame = new Gtk.Frame (null);
+-        frame.add (stack);
+-
+-        custom_bin.add (frame);
+-        custom_bin.show_all ();
+-
+-        var install_button = add_button (_("Install"), Gtk.ResponseType.OK);
+-        install_button.sensitive = false;
+-        install_button.get_style_context ().add_class (Gtk.STYLE_CLASS_SUGGESTED_ACTION);
+-
+-        languages_list.row_activated.connect ((row) => {
+-            stack.visible_child = engine_list_grid;
+-            language_title.label = ((LanguagesRow) row).language.get_name ();
+-            engines_filter = ((LanguagesRow) row).language;
+-            listbox.invalidate_filter ();
+-            var adjustment = scrolled.get_vadjustment ();
+-            adjustment.set_value (adjustment.lower);
+-        });
+-
+-        back_button.clicked.connect (() => {
+-            stack.visible_child = languages_list;
+-            install_button.sensitive = false;
+-        });
+-
+-        listbox.selected_rows_changed.connect (() => {
+-            foreach (var engines_row in listbox.get_children ()) {
+-                ((EnginesRow) engines_row).selected = false;
+-            }
+-
+-            ((EnginesRow) listbox.get_selected_row ()).selected = true;
+-            install_button.sensitive = true;
+-        });
+-
+-        response.connect ((response_id) => {
+-            if (response_id == Gtk.ResponseType.OK) {
+-                string engine_to_install = ((EnginesRow) listbox.get_selected_row ()).engine_name;
+-                UbuntuInstaller.get_default ().install (engine_to_install);
+-            }
+-        });
+-    }
+-
+-    [CCode (instance_pos = -1)]
+-    private bool filter_function (Gtk.ListBoxRow row) {
+-        if (InstallList.get_language_from_engine_name (((EnginesRow) row).engine_name) == engines_filter) {
+-            return true;
+-        }
+-
+-        return false;
+-    }
+-
+-    [CCode (instance_pos = -1)]
+-    private int sort_function (Gtk.ListBoxRow row1, Gtk.ListBoxRow row2) {
+-        return ((EnginesRow) row1).engine_name.collate (((EnginesRow) row1).engine_name);
+-    }
+-}
+diff --git a/src/Dialogs/ProgressDialog.vala b/src/Dialogs/ProgressDialog.vala
+deleted file mode 100644
+index f110aca..0000000
+--- a/src/Dialogs/ProgressDialog.vala
++++ /dev/null
+@@ -1,82 +0,0 @@
+-/*
+-* Copyright 2011-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it
+-* and/or modify it under the terms of the GNU Lesser General Public License as
+-* published by the Free Software Foundation, either version 3 of the
+-* License, or (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be
+-* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+-* Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License along
+-* with this program. If not, see http://www.gnu.org/licenses/.
+-*/
+-
+-public class Pantheon.Keyboard.InputMethodPage.ProgressDialog : Gtk.Dialog {
+-    public int progress {
+-        set {
+-            if (value >= 100) {
+-                destroy ();
+-            }
+-
+-            progress_bar.fraction = value / 100.0;
+-        }
+-    }
+-
+-    private Gtk.ProgressBar progress_bar;
+-
+-    construct {
+-        var image = new Gtk.Image.from_icon_name ("preferences-desktop-locale", Gtk.IconSize.DIALOG) {
+-            valign = Gtk.Align.START
+-        };
+-
+-        var primary_label = new Gtk.Label (null) {
+-            max_width_chars = 50,
+-            wrap = true,
+-            xalign = 0
+-        };
+-        primary_label.get_style_context ().add_class (Granite.STYLE_CLASS_PRIMARY_LABEL);
+-
+-        unowned UbuntuInstaller installer = UbuntuInstaller.get_default ();
+-        switch (installer.transaction_mode) {
+-            case UbuntuInstaller.TransactionMode.INSTALL:
+-                primary_label.label = _("Installing %s").printf (installer.engine_to_address);
+-                break;
+-            case UbuntuInstaller.TransactionMode.REMOVE:
+-                primary_label.label = _("Removing %s").printf (installer.engine_to_address);
+-                break;
+-        }
+-
+-        progress_bar = new Gtk.ProgressBar () {
+-            hexpand = true,
+-            valign = Gtk.Align.START,
+-            width_request = 300
+-        };
+-
+-        var cancel_button = (Gtk.Button) add_button (_("Cancel"), 0);
+-
+-        installer.bind_property ("install-cancellable", cancel_button, "sensitive");
+-
+-        var grid = new Gtk.Grid () {
+-            column_spacing = 12,
+-            margin = 6,
+-            row_spacing = 6
+-        };
+-        grid.attach (image, 0, 0, 1, 2);
+-        grid.attach (primary_label, 1, 0);
+-        grid.attach (progress_bar, 1, 1);
+-        grid.show_all ();
+-
+-        border_width = 6;
+-        deletable = false;
+-        get_content_area ().add (grid);
+-
+-        cancel_button.clicked.connect (() => {
+-            installer.cancel_install ();
+-            destroy ();
+-        });
+-    }
+-}
+diff --git a/src/InputMethod/Installer/InstallList.vala b/src/InputMethod/Installer/InstallList.vala
+deleted file mode 100644
+index 275c302..0000000
+--- a/src/InputMethod/Installer/InstallList.vala
++++ /dev/null
+@@ -1,73 +0,0 @@
+-/*
+-* 2019-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it and/or modify
+-* it under the terms of the GNU General Public License as published by
+-* the Free Software Foundation, either version 3 of the License, or
+-* (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be useful,
+-* but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-* GNU General Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License
+-* along with this program.  If not, see <https://www.gnu.org/licenses/>.
+-*/
+-
+-public enum Pantheon.Keyboard.InputMethodPage.InstallList {
+-    JA,
+-    KO,
+-    ZH;
+-
+-    public string get_name () {
+-        switch (this) {
+-            case JA:
+-                return _("Japanese");
+-            case KO:
+-                return _("Korean");
+-            case ZH:
+-                return _("Chinese");
+-            default:
+-                assert_not_reached ();
+-        }
+-    }
+-
+-    public string[] get_components () {
+-        switch (this) {
+-            case JA:
+-                return { "ibus-anthy", "ibus-mozc", "ibus-skk" };
+-            case KO:
+-                return { "ibus-hangul" };
+-            case ZH:
+-                return { "ibus-cangjie", "ibus-chewing", "ibus-pinyin" };
+-            default:
+-                assert_not_reached ();
+-        }
+-    }
+-
+-    public static InstallList get_language_from_engine_name (string engine_name) {
+-        switch (engine_name) {
+-            case "ibus-anthy":
+-                return JA;
+-            case "ibus-mozc":
+-                return JA;
+-            case "ibus-skk":
+-                return JA;
+-            case "ibus-hangul":
+-                return KO;
+-            case "ibus-cangjie":
+-                return ZH;
+-            case "ibus-chewing":
+-                return ZH;
+-            case "ibus-pinyin":
+-                return ZH;
+-            default:
+-                assert_not_reached ();
+-        }
+-    }
+-
+-    public static InstallList[] get_all () {
+-        return { JA, KO, ZH };
+-    }
+-}
+diff --git a/src/InputMethod/Installer/UbuntuInstaller.vala b/src/InputMethod/Installer/UbuntuInstaller.vala
+deleted file mode 100644
+index b65aa1f..0000000
+--- a/src/InputMethod/Installer/UbuntuInstaller.vala
++++ /dev/null
+@@ -1,142 +0,0 @@
+-/*
+-* Copyright 2011-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it
+-* and/or modify it under the terms of the GNU Lesser General Public License as
+-* published by the Free Software Foundation, either version 3 of the
+-* License, or (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be
+-* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+-* Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License along
+-* with this program. If not, see http://www.gnu.org/licenses/.
+-*/
+-
+-public class Pantheon.Keyboard.InputMethodPage.UbuntuInstaller : Object {
+-    private AptdProxy aptd;
+-    private AptdTransactionProxy proxy;
+-
+-    public bool install_cancellable { get; private set; }
+-    public TransactionMode transaction_mode { get; private set; }
+-    public string engine_to_address { get; private set; }
+-
+-    public signal void install_finished (string langcode);
+-    public signal void install_failed ();
+-    public signal void remove_finished (string langcode);
+-    public signal void progress_changed (int progress);
+-
+-    public enum TransactionMode {
+-        INSTALL,
+-        REMOVE,
+-        INSTALL_MISSING,
+-    }
+-
+-    Gee.HashMap<string, string> transactions;
+-
+-    private static GLib.Once<UbuntuInstaller> instance;
+-    public static unowned UbuntuInstaller get_default () {
+-        return instance.once (() => {
+-            return new UbuntuInstaller ();
+-        });
+-    }
+-
+-    private UbuntuInstaller () {}
+-
+-    construct {
+-        transactions = new Gee.HashMap<string, string> ();
+-        aptd = new AptdProxy ();
+-
+-        try {
+-            aptd.connect_to_aptd ();
+-        } catch (Error e) {
+-            warning ("Could not connect to APT daemon");
+-        }
+-    }
+-
+-    public void install (string engine_name) {
+-        transaction_mode = TransactionMode.INSTALL;
+-        engine_to_address = engine_name;
+-        string[] packages = {};
+-        packages += engine_to_address;
+-
+-        foreach (var packet in packages) {
+-            message ("Packet: %s", packet);
+-        }
+-
+-        aptd.install_packages.begin (packages, (obj, res) => {
+-            try {
+-                var transaction_id = aptd.install_packages.end (res);
+-                transactions.@set (transaction_id, "i-" + engine_name);
+-                run_transaction (transaction_id);
+-            } catch (Error e) {
+-                warning ("Could not queue downloads: %s", e.message);
+-            }
+-        });
+-    }
+-
+-    public void cancel_install () {
+-        if (install_cancellable) {
+-            warning ("cancel_install");
+-            try {
+-                proxy.cancel ();
+-            } catch (Error e) {
+-                warning ("cannot cancel installation:%s", e.message);
+-            }
+-        }
+-    }
+-
+-    private void run_transaction (string transaction_id) {
+-        proxy = new AptdTransactionProxy ();
+-        proxy.finished.connect (() => {
+-            on_apt_finshed (transaction_id, true);
+-        });
+-
+-        proxy.property_changed.connect ((prop, val) => {
+-            if (prop == "Progress") {
+-                progress_changed ((int) val.get_int32 ());
+-            }
+-
+-            if (prop == "Cancellable") {
+-                install_cancellable = val.get_boolean ();
+-            }
+-        });
+-
+-        try {
+-            proxy.connect_to_aptd (transaction_id);
+-            proxy.simulate ();
+-
+-            proxy.run ();
+-        } catch (Error e) {
+-            on_apt_finshed (transaction_id, false);
+-            warning ("Could no run transaction: %s", e.message);
+-        }
+-    }
+-
+-    private void on_apt_finshed (string id, bool success) {
+-        if (!success) {
+-            install_failed ();
+-            transactions.unset (id);
+-            return;
+-        }
+-
+-        if (!transactions.has_key (id)) { //transaction already removed
+-            return;
+-        }
+-
+-        var action = transactions.get (id);
+-        var lang = action[2:action.length];
+-
+-        message ("ID %s -> %s", id, success ? "success" : "failed");
+-
+-        if (action[0:1] == "i") { // install
+-            install_finished (lang);
+-        } else {
+-            remove_finished (lang);
+-        }
+-
+-        transactions.unset (id);
+-    }
+-}
+diff --git a/src/InputMethod/Installer/aptd-client.vala b/src/InputMethod/Installer/aptd-client.vala
+deleted file mode 100644
+index ee5c3f5..0000000
+--- a/src/InputMethod/Installer/aptd-client.vala
++++ /dev/null
+@@ -1,93 +0,0 @@
+-/*
+- * Copyright (C) 2012 Canonical Ltd
+- *
+- * This program is free software: you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License version 3 as
+- * published by the Free Software Foundation.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+- *
+- * Authored by Pawel Stolowski <pawel.stolowski@canonical.com>
+- */
+-
+-namespace Pantheon.Keyboard.InputMethodPage {
+-    private const string APTD_DBUS_NAME = "org.debian.apt";
+-    private const string APTD_DBUS_PATH = "/org/debian/apt";
+-
+-    /**
+-    * Expose a subset of org.debian.apt interfaces -- only what's needed by applications lens.
+-    */
+-    [DBus (name = "org.debian.apt")]
+-    public interface AptdService : GLib.Object {
+-        public abstract async string install_packages (string[] packages) throws GLib.Error;
+-        public abstract async string remove_packages (string[] packages) throws GLib.Error;
+-        public abstract async void quit () throws GLib.Error;
+-    }
+-
+-    [DBus (name = "org.debian.apt.transaction")]
+-    public interface AptdTransactionService : GLib.Object {
+-        public abstract void run () throws GLib.Error;
+-        public abstract void simulate () throws GLib.Error;
+-        public abstract void cancel () throws GLib.Error;
+-        public signal void finished (string exit_state);
+-        public signal void property_changed (string property, Variant val);
+-    }
+-
+-    public class AptdProxy : GLib.Object {
+-        private AptdService _aptd_service;
+-
+-        public void connect_to_aptd () throws GLib.Error {
+-            _aptd_service = Bus.get_proxy_sync (BusType.SYSTEM, APTD_DBUS_NAME, APTD_DBUS_PATH);
+-        }
+-
+-        public async string install_packages (string[] packages) throws GLib.Error {
+-            string res = yield _aptd_service.install_packages (packages);
+-            return res;
+-        }
+-
+-        public async string remove_packages (string[] packages) throws GLib.Error {
+-            string res = yield _aptd_service.remove_packages (packages);
+-            return res;
+-        }
+-
+-        public async void quit () throws GLib.Error {
+-            yield _aptd_service.quit ();
+-        }
+-    }
+-
+-    public class AptdTransactionProxy : GLib.Object {
+-        public signal void finished (string transaction_id);
+-        public signal void property_changed (string property, Variant variant);
+-
+-        private AptdTransactionService _aptd_service;
+-
+-        public void connect_to_aptd (string transaction_id) throws GLib.Error {
+-            _aptd_service = Bus.get_proxy_sync (BusType.SYSTEM, APTD_DBUS_NAME, transaction_id);
+-            _aptd_service.finished.connect ((exit_state) => {
+-                debug ("aptd transaction finished: %s\n", exit_state);
+-                finished (transaction_id);
+-            });
+-            _aptd_service.property_changed.connect ((prop, variant) => {
+-                property_changed (prop, variant);
+-            });
+-        }
+-
+-        public void simulate () throws GLib.Error {
+-            _aptd_service.simulate ();
+-        }
+-
+-        public void run () throws GLib.Error {
+-            _aptd_service.run ();
+-        }
+-
+-        public void cancel () throws GLib.Error {
+-            _aptd_service.cancel ();
+-        }
+-    }
+-}
+diff --git a/src/Widgets/InputMethod/AddEnginesPopover.vala b/src/Widgets/InputMethod/AddEnginesPopover.vala
+index 46e005d..6b56c6b 100644
+--- a/src/Widgets/InputMethod/AddEnginesPopover.vala
++++ b/src/Widgets/InputMethod/AddEnginesPopover.vala
+@@ -49,8 +49,6 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
+         };
+         scrolled.add (listbox);
+ 
+-        var install_button = new Gtk.Button.with_label (_("Install Unlisted Engines…"));
+-
+         var cancel_button = new Gtk.Button.with_label (_("Cancel"));
+ 
+         var add_button = new Gtk.Button.with_label (_("Add Engine"));
+@@ -61,10 +59,8 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
+             margin = 12,
+             spacing = 6
+         };
+-        button_box.add (install_button);
+         button_box.add (cancel_button);
+         button_box.add (add_button);
+-        button_box.set_child_secondary (install_button, true);
+ 
+         var grid = new Gtk.Grid ();
+         grid.attach (search_entry, 0, 0);
+@@ -92,14 +88,6 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
+             listbox.invalidate_filter ();
+         });
+ 
+-        install_button.clicked.connect (() => {
+-            popdown ();
+-
+-            var install_dialog = new InstallEngineDialog ((Gtk.Window) get_toplevel ());
+-            install_dialog.run ();
+-            install_dialog.destroy ();
+-        });
+-
+         cancel_button.clicked.connect (() => {
+             popdown ();
+         });
+diff --git a/src/Widgets/InputMethod/LanguagesRow.vala b/src/Widgets/InputMethod/LanguagesRow.vala
+deleted file mode 100644
+index dc064ae..0000000
+--- a/src/Widgets/InputMethod/LanguagesRow.vala
++++ /dev/null
+@@ -1,43 +0,0 @@
+-/*
+-* 2019-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it and/or modify
+-* it under the terms of the GNU General Public License as published by
+-* the Free Software Foundation, either version 3 of the License, or
+-* (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be useful,
+-* but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-* GNU General Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License
+-* along with this program.  If not, see <https://www.gnu.org/licenses/>.
+-*/
+-
+-public class Pantheon.Keyboard.InputMethodPage.LanguagesRow : Gtk.ListBoxRow {
+-    public InstallList language { get; construct; }
+-
+-    public LanguagesRow (InstallList language) {
+-        Object (language: language);
+-    }
+-
+-    construct {
+-        var label = new Gtk.Label (language.get_name ()) {
+-            halign = Gtk.Align.START,
+-            hexpand = true
+-        };
+-
+-        var caret = new Gtk.Image.from_icon_name ("pan-end-symbolic", Gtk.IconSize.MENU);
+-
+-        var grid = new Gtk.Grid () {
+-            margin = 3,
+-            margin_start = 6,
+-            margin_end = 6
+-        };
+-        grid.add (label);
+-        grid.add (caret);
+-
+-        add (grid);
+-    }
+-}
+diff --git a/src/meson.build b/src/meson.build
+index 28f07c1..a515419 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -16,7 +16,6 @@ plug_files = files(
+     'Widgets/Shortcuts/CustomTree.vala',
+     'Widgets/Layout/Display.vala',
+     'Widgets/Layout/AddLayoutPopover.vala',
+-    'Widgets/InputMethod/LanguagesRow.vala',
+     'Widgets/InputMethod/EnginesRow.vala',
+     'Widgets/InputMethod/AddEnginesPopover.vala',
+     'Views/Shortcuts.vala',
+@@ -36,11 +35,6 @@ plug_files = files(
+     'Layout/AdvancedSettingsGrid.vala',
+     'InputMethod/Utils.vala',
+     'InputMethod/AddEnginesList.vala',
+-    'InputMethod/Installer/UbuntuInstaller.vala',
+-    'InputMethod/Installer/InstallList.vala',
+-    'InputMethod/Installer/aptd-client.vala',
+-    'Dialogs/ProgressDialog.vala',
+-    'Dialogs/InstallEngineDialog.vala',
+     'Dialogs/ConflictDialog.vala',
+ )
+ 
+
+base-commit: 9d9eddeb7da8450a309496c25066f4f78a9d4070
+-- 
+git-series 0.9.1
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
index 10468cdc553..d1180f37ed0 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , fetchpatch
 , substituteAll
@@ -14,22 +15,27 @@
 , libgnomekbd
 , libxklavier
 , xorg
+, ibus
 , switchboard
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-keyboard";
-  version = "2.3.6";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "08zpw7ygrqmwwznvxkf4xbrgwbjkbwc95sw1ikikg3143ql9qclp";
+    sha256 = "sha256-iuv5NZ7v+rXyFsKB/PvGa/7hm9MIV8E6JnTzEGROlhM=";
   };
 
+  patches = [
+    ./0001-Remove-Install-Unlisted-Engines-function.patch
+  ];
+
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -45,6 +51,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     granite
     gtk3
+    ibus
     libgee
     libgnomekbd
     libxklavier
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
index c2b973f7616..78a74c59e9e 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -21,11 +22,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0jfykvdpjlymnks8mhlv9957ybq7srqqq23isjvh0jvc2r3cd7sq";
+    sha256 = "sha256-WJ/GRhZsSwC31HEIjHHWBy9/Skqbwor0tNVTedue3kk=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
index 4a4874e3a32..2ce9aad5666 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -17,17 +18,17 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-network";
-  version = "2.3.1";
+  version = "2.3.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1k7925qrgjvh1x8ijhkh3p0z4ypgmx3lg21ygr8qhlp7xr3zm8d5";
+    sha256 = "sha256-PYgewxBblhOfOJQSeRaq8xD7qZ3083EvgUjpi92FqyI=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
index 30df180eeb7..37f69a3cc14 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , pantheon
 , meson
@@ -21,11 +22,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "02amm2j6blpfc16p5rm64p8shnppzsg49hz4v196mli5xr1r441h";
+    sha256 = "sha256-MBCSQ+4l0mpS2OTDRJ7+91qo0SWm5nJNYO7SZaSoVQk=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
index 902703bc75e..16e8c7e66c1 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , pantheon
 , meson
@@ -26,11 +27,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "03h8ii8zz59fpp4fwlvyx3m3550096fn7a6w612b1rbj3dqhlmh9";
+    sha256 = "sha256-CVYKcRty5bBEMNyoY51JAJQy6uh+U+7IvS6V/1GMCA4=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
index a70fee63094..d877d43d137 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, glib
+{ stdenv, fetchFromGitHub, nix-update-script, pantheon, meson, ninja, pkgconfig, vala, glib
 , libgee, granite, gexiv2, elementary-settings-daemon, gtk3, gnome-desktop
-, gala, wingpanel, plank, switchboard, gettext, bamf, fetchpatch }:
+, gala, wingpanel, elementary-dock, switchboard, gettext, bamf, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-pantheon-shell";
@@ -10,11 +10,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1nnsv745inbdqk3xnbcaqmj87vr3kzh5hazbh8v3ib33cpi7wy88";
+    sha256 = "sha256-CHl+4mVjrDg2gusrWOCfI++DZMWKLdvHxG3ZWMjZ2to=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -29,17 +29,17 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     bamf
+    elementary-dock
     elementary-settings-daemon
+    gala
     gexiv2
     glib
     gnome-desktop
     granite
     gtk3
     libgee
-    gala
-    wingpanel
-    plank
     switchboard
+    wingpanel
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
index 7357a790b36..0549a797dbc 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , substituteAll
 , meson
@@ -25,11 +26,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0zbqv3bnwxapp9b442fjg9fizxmndva8vby5qicx0yy7l68in1xk";
+    sha256 = "sha256-swcbkaHHe9BZxMWvjdRutvYfXXrSCUJWuld1btfYeH0=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
index 8280ba483b8..2e8f05d8416 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , pantheon
 , meson
@@ -21,11 +22,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1jxpq4rvkrii85imnipbw44zjinq1sc0cq39lssprzfd4g5hjw5n";
+    sha256 = "sha256-tnAJyyPN/Xy1pmlgBpgO2Eb5CeHrRltjQTHmuTPBt8s=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
index e2732f3bd03..fd2a24db3e8 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , python3
@@ -24,11 +25,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0177lsly8qpqsfas3qc263as77h2k35avhw9708h1v8bllb3l2sb";
+    sha256 = "sha256-Sws6FqUL7QAROInDrcqYAp6j1TCC4aGV0/hi5Kmm5wQ=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
index 55ed654f75f..47c4928c08b 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , pantheon
 , meson
@@ -20,11 +21,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1awkz16nydlgi8a2dd6agfnd3qwl2qsvv6wnn8bhaz1kbv1v9kpw";
+    sha256 = "sha256-/M60w14zfAUXspabvTUWlOPRrHvKtCYUio82b034k6s=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
index 671c7d4544a..cab47c94cb9 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -16,17 +17,17 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-sound";
-  version = "2.2.4";
+  version = "2.2.5";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1kwd3cj6kk5dnmhcrmf13adqrhhjv2j6j2i78cpqbi9yv2h7sv9y";
+    sha256 = "sha256-ITgxLZSB4zhSaFKX7Vbf89DGI8ibIcGEQTtLjcGN2tA=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard/default.nix
index 4c8e30bdbe8..1327c4739eb 100644
--- a/pkgs/desktops/pantheon/apps/switchboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -23,11 +24,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "12xir2gssr0x21sgm5m620bvd6b6y8dcm26cj4s1wsn8qb59jx9p";
+    sha256 = "sha256-N3WZysLIah40kcyIyhryZpm2FxCmlvp0EB1krZ/IsYs=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
index 9deee9c9abe..05f1f10a5a7 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -16,11 +17,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0aqq0d21mqgrfiyhpfa8k51wxw2pia0qlsgp0sli79v7nwn3ykbq";
+    sha256 = "sha256-eE0/LLdnpxOpBvdpioGKV/DOQ5lIuQt9dPnhGkQDGCs=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
index febec3144a9..a12101c04d0 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , python3
@@ -20,11 +21,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0rs68cb39r9vq85pr8h3mgmyjpj8bkhkxr5cz4cn5947kf776wg9";
+    sha256 = "sha256-6XFzjpuHpGIZ+azkPuFcSF7p66sDonwLwjvlNBZDRmc=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
index f95e6815305..e18cac7d4ab 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -16,7 +17,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1dc583lq61c361arjl3s44d2k72c46bqvcqv1c3s69f2ndsnxjdz";
+    sha256 = "sha256-v8ludbPCJaMHCxuzjZchTJwpGiF6UJlVMIMFg+lAhbU=";
   };
 
   nativeBuildInputs = [
@@ -26,7 +27,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix b/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
index 82f45c95d61..975497cb9e4 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -16,7 +17,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0c63nds2ylqgcp39s13mfwhipgyw8cirn0bhybp291l5g86ii6s3";
+    sha256 = "sha256-Q5sYDXqFhiTu8nABmyND3L8bIXd1BJ3GZQ9TL3SzwzA=";
   };
 
   nativeBuildInputs = [
@@ -26,7 +27,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix
index edcda887754..8bae6f8fefe 100644
--- a/pkgs/desktops/pantheon/default.nix
+++ b/pkgs/desktops/pantheon/default.nix
@@ -23,10 +23,6 @@ lib.makeScope pkgs.newScope (self: with self; {
     wingpanel-indicator-session wingpanel-indicator-sound
   ];
 
-  nixpkgs-github-update = callPackage ./nixpkgs_github_update { };
-
-  updateScript = callPackage ./update.nix { };
-
   maintainers = with pkgs.stdenv.lib.maintainers; [ worldofpeace ];
 
   mutter = pkgs.gnome3.mutter334;
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
index 3215c001a5e..a8cf30e9732 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -23,11 +24,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "00z31alwn2skhksrhp2jk75f6jlaipzk91hclx7na4gbcyrw7ahw";
+    sha256 = "sha256-HKrDs2frEWVPpwyGNP+NikrjyplSXJj1hFMLy6kK4wM=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -83,8 +84,10 @@ stdenv.mkDerivation rec {
     cp -avr ${./launchers} $out/etc/skel/.config/plank/dock1/launchers
 
     # Whitelist wingpanel indicators to be used in the greeter
-    # TODO: is this needed or installed upstream?
-    install -D ${./io.elementary.greeter.whitelist} $out/etc/wingpanel.d/io.elementary.greeter.whitelist
+    # hhttps://github.com/elementary/greeter/blob/fc19752f147c62767cd2097c0c0c0fcce41e5873/debian/io.elementary.greeter.whitelist
+    # wingpanel 2.3.2 renamed this to .allowed to .forbidden
+    # https://github.com/elementary/wingpanel/pull/326
+    install -D ${./io.elementary.greeter.allowed} $out/etc/wingpanel.d/io.elementary.greeter.allowed
   '';
 
   postFixup = ''
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.whitelist b/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.allowed
index 0cff31f4f77..0cff31f4f77 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.whitelist
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.allowed
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
index da18ab26e08..de93b0d3683 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , linkFarm
 , substituteAll
 , elementary-greeter
@@ -36,11 +37,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1zrsvbd386f7r3jbvjf8j08v1n5cpzkbjjaj2lxvjn8b81xgwy8j";
+    sha256 = "sha256-Enn+ekALWbk7FVJJuea/rNiwEZDIyb3kyMcZNNraOv8=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
 
diff --git a/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
index 2580907a592..f435104b320 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
@@ -8,7 +8,7 @@
 , epiphany
 , elementary-settings-daemon
 , gtk3
-, plank
+, elementary-dock
 , gsettings-desktop-schemas
 , extraGSettingsOverrides ? ""
 , extraGSettingsOverridePackages ? []
@@ -17,13 +17,13 @@
 let
 
   gsettingsOverridePackages = [
+    elementary-dock
     elementary-settings-daemon
     epiphany
     gala
-    mutter
     gsettings-desktop-schemas
     gtk3
-    plank
+    mutter
   ] ++ extraGSettingsOverridePackages;
 
 in
diff --git a/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix b/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
index 44766c7202b..31ed7f3672a 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , fetchpatch
 , pkgconfig
@@ -28,11 +29,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1cq9smvrnzc12gp6rzcdxc3x0sbgcch246r5m2c7m2561mfg1d5l";
+    sha256 = "sha256-tLTwXA2miHqYqCUbIiBjb2nQB+uN/WzuE4F9m3fVCbM=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix b/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
index e8ea57b8bb9..7610551fb9c 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -18,11 +19,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1w3cfap7j42x14mqpfqdm46hk5xc0v5kv8r6wxcnknr3sfxi8qlp";
+    sha256 = "sha256-l2IUu9Mj22lZ5yajPcsGrJcJDakNu4srCV0Qea5ybPA=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
index 089c9188d6c..dba3c889508 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
@@ -1,7 +1,9 @@
 { stdenv
 , fetchFromGitHub
-, fetchpatch
+, nix-update-script
 , substituteAll
+, desktop-file-utils
+, pkg-config
 , writeScript
 , pantheon
 , gnome-keyring
@@ -16,7 +18,6 @@
 , writeText
 , meson
 , ninja
-, pkg-config
 }:
 
 let
@@ -69,53 +70,43 @@ let
 in
 
 stdenv.mkDerivation rec {
-  pname = "elementary-session-settings";
-  version = "unstable-2019-11-12";
+  pname = "elementary-session-settings-unstable";
+  version = "2020-06-11";
 
   repoName = "session-settings";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = repoName;
-    rev = "f9d5afed16ce447cf6ae3c2d1c1db5eece84daca";
-    sha256 = "0n1m41aapr58rb1ffvfkjq6c6w3f0ynjzzhja50s4di98p4m7y0q";
+    rev = "130c9ae221913032ed18bcf6d21e3dcdba3c4209";
+    sha256 = "0bzg9vbq0ssnxgcb2vxpx6x9zv8ngkm9r3ki5q83m9al9919n0pr";
   };
 
-  patches = [
-    # Map Pantheon required components by g-s-d versions
-    # https://github.com/elementary/session-settings/pull/23
-    (fetchpatch {
-      url = "https://github.com/elementary/session-settings/commit/39918f4ec64fa9ed5affa109d6a692b97ae4ff01.patch";
-      sha256 = "0v2kqcsibymnslnnw4v67yh098znsrhrcycgxkw8vymvwlinc502";
-    })
-  ];
-
   nativeBuildInputs = [
+    desktop-file-utils
     meson
     ninja
     pkg-config
   ];
 
   buildInputs = [
-    elementary-settings-daemon
+    pantheon.elementary-settings-daemon
+    gnome-keyring
+    onboard
+    orca
   ];
 
   mesonFlags = [
-    "-Ddefaults-list=false"
-    "-Dpatched-gsd-autostarts=false"
-    "-Dpatched-ubuntu-autostarts=false"
+    "-Dmimeapps-list=false"
     "-Dfallback-session=GNOME"
+    "-Ddetect-program-prefixes=true"
+    "--sysconfdir=${placeholder "out"}/etc"
   ];
 
   postInstall = ''
     mkdir -p $out/share/applications
     cp -av ${./pantheon-mimeapps.list} $out/share/applications/pantheon-mimeapps.list
 
-    mkdir -p $out/etc/xdg/autostart
-    for package in ${gnome-keyring} ${orca} ${onboard} ${at-spi2-core}; do
-      cp -av $package/etc/xdg/autostart/* $out/etc/xdg/autostart
-    done
-
     cp "${dockitemAutostart}" $out/etc/xdg/autostart/default-elementary-dockitems.desktop
 
     mkdir -p $out/libexec
@@ -127,21 +118,16 @@ stdenv.mkDerivation rec {
     substituteInPlace $out/share/xsessions/pantheon.desktop \
       --replace "gnome-session --session=pantheon" "$out/libexec/pantheon" \
       --replace "wingpanel" "${wingpanel}/bin/wingpanel"
-
-    for f in $out/etc/xdg/autostart/*; do mv "$f" "''${f%.desktop}-pantheon.desktop"; done
-
-    for autostart in $(grep -rl "OnlyShowIn=GNOME;" $out/etc/xdg/autostart)
-    do
-      echo "Patching OnlyShowIn to Pantheon in: $autostart"
-      sed -i "s,OnlyShowIn=GNOME;,OnlyShowIn=Pantheon;," $autostart
-    done
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
-    providedSessions = [ "pantheon" ];
+
+    providedSessions = [
+      "pantheon"
+    ];
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
index 9578c4e025f..4e6afb9ff89 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -25,11 +26,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0v8fx58fn309glxi2zxxlnddw8lkmjr025f22ml3p483zkvbcm2c";
+    sha256 = "sha256-TFS29vwDkTtoFcIVAbKskyLemqW9fxE7fQkM61DpDm0=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix
index 624a1bde61d..349b4cd63b5 100644
--- a/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -1,5 +1,7 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
+, fetchpatch
 , pantheon
 , pkgconfig
 , meson
@@ -18,7 +20,7 @@
 , gnome-desktop
 , mutter
 , clutter
-, plank
+, elementary-dock
 , elementary-icon-theme
 , elementary-settings-daemon
 , wrapGAppsHook
@@ -32,11 +34,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1qd8ynn04rzkki68w4x3ryq6fhlbi6mk359rx86a8ni084fsprh4";
+    sha256 = "sha256-BOarHUEgWqQM6jmVMauJi0JnsM+jE45MnPNnAqz1qOE=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -56,19 +58,26 @@ stdenv.mkDerivation rec {
   buildInputs = [
     bamf
     clutter
+    elementary-dock
     elementary-icon-theme
-    gnome-desktop
     elementary-settings-daemon
+    gnome-desktop
     granite
     gtk3
     libcanberra
     libcanberra-gtk3
     libgee
     mutter
-    plank
   ];
 
   patches = [
+    # https://github.com/elementary/gala/pull/869
+    # build failure in vala 0.48.7
+    # https://github.com/elementary/gala/pull/869#issuecomment-657147695
+    (fetchpatch {
+      url = "https://github.com/elementary/gala/commit/85d290c75eaa147b704ad34e6c67498071707ee8.patch";
+      sha256 = "19jkvmxidf453qfrxkvi35igxzfz2cm8srwkabvyn9wyd1yhiw0l";
+    })
     ./plugins-dir.patch
     ./use-new-notifications-default.patch
   ];
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
index deb6a958a22..3e58a2a101a 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , substituteAll
 , meson
@@ -14,7 +15,7 @@
 , appstream
 , gnome-menus
 , json-glib
-, plank
+, elementary-dock
 , bamf
 , switchboard
 , libunity
@@ -35,11 +36,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0wsfvyp0z6c612nl348dr6sar0qghhfcgkzcx3108x8v743v7rim";
+    sha256 = "sha256-NeazBzkbdQTC6OzPxxyED4OstMkNkUGtCIaZD67fTnM=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -56,6 +57,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     bamf
+    elementary-dock
     gnome-menus
     granite
     gtk3
@@ -64,7 +66,6 @@ stdenv.mkDerivation rec {
     libhandy
     libsoup
     libunity
-    plank
     switchboard
     wingpanel
     zeitgeist
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
index 979d6af8f0c..51c87d5f34b 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -23,11 +24,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0ylbpai05b300h07b94xcmw9xi7qx13l1q38zlg2n95d3c5264dp";
+    sha256 = "sha256-txEjChutJCse/WjgQEfo+MSeeGWdpHUABGCsAqK6i3o=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
index 7de8d3c91db..09583877fb1 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -19,17 +20,17 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-datetime";
-  version = "2.2.4";
+  version = "2.2.5";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0wrvya9438ncb2rvcz99aa497v95b4yhdw1479iacnb9f94jacns";
+    sha256 = "sha256-rZzZIh4bwZfwQFDbfPDKQtfLMJQ2IdykH1yiV6ckqnw=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
index 120cf8260a9..712b25d22f4 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -23,11 +24,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0q32qc6jh5w0i1ixkl59pys8r3hxmbig8854q7sxi07vlk9g3i7y";
+    sha256 = "sha256-/sTx0qT7gNj1waQg9OKqHY6MtL+p0NljiIAXKA3DYmA=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
index 652648b6884..7f1ee7fbfba 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -21,11 +22,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1ja789m4d3akm3i9fl3kazfcny376xl4apv445mrwkwlvcfyylf1";
+    sha256 = "sha256-wVHvHduUT55rIWRfRWg3Z3jL3FdzUJfiqFONRmpCR8k=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
index 9ec593afe4a..05d0b0a0beb 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -14,17 +15,17 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-nightlight";
-  version = "2.0.3";
+  version = "2.0.4";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1ihg5iz69jgcbyzdkcc2fqmr5l34h2d1jjsx7y86ag1jvhljb82r";
+    sha256 = "sha256-0f03XO74ezzS/Uy0mXT4raoazETL/SOVh58sAo9bEIA=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
index d8d5f44b82b..99ba52212a2 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , fetchpatch
@@ -21,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0qp13iaf2956ss4d6w6vwnzdvb7izqmyh6xrdii7j8gxxwjd4lxm";
+    sha256 = "sha256-tVPSJO/9IXlibLkb6Cv+8azdvuXbcNOI1qYk4VQc4WI=";
   };
 
   patches = [
@@ -34,7 +35,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
index 907b31d930a..3ad4ab4d662 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -17,17 +18,17 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-power";
-  version = "2.1.5";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "19zhgzyivf3y416r5xaajx81h87zdhvrrcsagli00gp1f2169q5m";
+    sha256 = "sha256-wjYZXFnzvPSukzh1BNvyaFxKpYm+kNNFm5AsthLXGVE=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
index 14c87036ec8..4812e2bc91d 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
@@ -1,5 +1,7 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
+, fetchpatch
 , pantheon
 , pkgconfig
 , meson
@@ -20,11 +22,24 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "02inp8xdxfx8qxjdf2nazw46ahp1gv3skd922ma6kgx5w4wxh5l8";
+    sha256 = "sha256-iBbYOeGlv2lUFSK1qcd+4UJlCP/KCtdkx6i73jq6Ngo=";
   };
 
+  patches = [
+    # build failure in vala 0.48.7
+    # https://github.com/elementary/gala/pull/869#issuecomment-657147695
+    (fetchpatch {
+      url = "https://github.com/elementary/wingpanel-indicator-session/commit/ead6971c708eed8b844bd9acd7eed2ab8a97e803.patch";
+      sha256 = "1v7w7zdia82d38ycr5zhckaxgf7gr15hsv05cv5khlki8frryn2x";
+    })
+    (fetchpatch {
+      url = "https://github.com/elementary/wingpanel-indicator-session/commit/85347e676054635ac878fc542bd057398ca70d3e.patch";
+      sha256 = "1vw4zx0qbhxmfzqhdcmwdp4fxvij7n3f5lwcplf5v3k9qsr3wm0n";
+    })
+  ];
+
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
index cd387a9fca4..02f7984eee9 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -18,17 +19,17 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-sound";
-  version = "2.1.5";
+  version = "2.1.6";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0nla8qgn5gb1g2gn7c47m9zw42sarjd0030x3h5kckapsbaxknhp";
+    sha256 = "sha256-WGkxLsbdJ7Z7kolymYpggsVy4cN4CicNKdfCbunklSI=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
index ff9925c5357..08eda9aa368 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , wrapGAppsHook
 , pkgconfig
@@ -20,17 +21,17 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel";
-  version = "2.3.1";
+  version = "2.3.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0yvn1crylrdc9gq6gc7v4ynb5ii4n0c3bnswfq72p8cs3vvvvv24";
+    sha256 = "sha256-mXi600gufUK81Uks9p4+al0tCI7H9KpizZGyoomp42s=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/granite/default.nix b/pkgs/desktops/pantheon/granite/default.nix
index 823613778f9..8b5ad8d5e6b 100644
--- a/pkgs/desktops/pantheon/granite/default.nix
+++ b/pkgs/desktops/pantheon/granite/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , python3
 , meson
 , ninja
@@ -17,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "granite";
-  version = "5.4.0";
+  version = "5.5.0";
 
   outputs = [ "out" "dev" ];
 
@@ -25,11 +26,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0acicv3f9gksb352v88lwap8ailjsxdrfknl2xql7blasbjzl2q0";
+    sha256 = "sha256-ytbjuo9RnYyJ9+LqtWE117dGlNErLl+nmTM22xGGDo8=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/.envrc b/pkgs/desktops/pantheon/nixpkgs_github_update/.envrc
deleted file mode 100644
index 1d953f4bd73..00000000000
--- a/pkgs/desktops/pantheon/nixpkgs_github_update/.envrc
+++ /dev/null
@@ -1 +0,0 @@
-use nix
diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/.formatter.exs b/pkgs/desktops/pantheon/nixpkgs_github_update/.formatter.exs
deleted file mode 100644
index d2cda26eddc..00000000000
--- a/pkgs/desktops/pantheon/nixpkgs_github_update/.formatter.exs
+++ /dev/null
@@ -1,4 +0,0 @@
-# Used by "mix format"
-[
-  inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"]
-]
diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/.gitignore b/pkgs/desktops/pantheon/nixpkgs_github_update/.gitignore
deleted file mode 100644
index 877c95f1f63..00000000000
--- a/pkgs/desktops/pantheon/nixpkgs_github_update/.gitignore
+++ /dev/null
@@ -1,32 +0,0 @@
-# The directory Mix will write compiled artifacts to.
-_build/
-
-# If you run "mix test --cover", coverage assets end up here.
-cover/
-
-# The directory Mix downloads your dependencies sources to.
-deps/
-
-# Where third-party dependencies like ExDoc output generated docs.
-doc/
-
-# Ignore .fetch files in case you like to edit your project deps locally.
-.fetch
-
-# If the VM crashes, it generates a dump, let's ignore it too.
-erl_crash.dump
-
-# Also ignore archive artifacts (built via "mix archive.build").
-*.ez
-
-# Ignore package tarball (built via "mix hex.build").
-nixpkgs_github_update-*.tar
-
-# Ignore elixir_ls
-.elixir_ls
-
-# mix escript.build result
-nixpkgs_github_update
-
-# lockfile. only because this is nixpkgs.
-mix.lock
diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/default.nix b/pkgs/desktops/pantheon/nixpkgs_github_update/default.nix
deleted file mode 100644
index 834291222cf..00000000000
--- a/pkgs/desktops/pantheon/nixpkgs_github_update/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ lib
-, beamPackages
-, makeWrapper
-, common-updater-scripts
-}:
-
-let
-
-  poison_4 = beamPackages.buildMix {
-    name = "poison";
-    version = "4.0.1";
-
-    src = beamPackages.fetchHex {
-      pkg = "poison";
-      version = "4.0.1";
-      sha256 = "098gdz7xzfmnjzgnnv80nl4h3zl8l9czqqd132vlnfabxbz3d25s";
-    };
-  };
-
-
-in
-
-beamPackages.buildMix {
-  name = "nixpkgs-github-update";
-  version = "0.1.0";
-
-  src = lib.cleanSource ./.;
-
-  nativeBuildInputs = [
-    makeWrapper
-  ];
-
-  beamDeps = with beamPackages; [ erlang poison_4 ];
-
-  buildPhase = ''
-    export HEX_OFFLINE=1
-    export HEX_HOME=`pwd`
-    export MIX_ENV=prod
-    export MIX_NO_DEPS=1
-
-    mix escript.build --no-deps-check
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp nixpkgs_github_update $out/bin
-  '';
-
-  postFixup = ''
-    wrapProgram $out/bin/nixpkgs_github_update \
-      --prefix PATH : "${lib.makeBinPath [ common-updater-scripts ]}"
-  '';
-}
diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/cli.ex b/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/cli.ex
deleted file mode 100644
index e735c428516..00000000000
--- a/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/cli.ex
+++ /dev/null
@@ -1,71 +0,0 @@
-defmodule NixpkgsGitHubUpdate.CLI do
-  @moduledoc """
-  Run updates on Nix Expressions that use fetchFromGitHub.
-
-  Arguments the script accepts:
-  --attribute <attribute_path>
-
-  Example usage:
-  ```
-  ./nixpkgs_github_update --attribute "notes-up"
-  ```
-  """
-  alias NixpkgsGitHubUpdate.{Nix, GitHubLatestVersion}
-
-  def help do
-    IO.puts("""
-    Run updates on Nix Expressions that use fetchFromGitHub.
-
-    Arguments the script accepts:
-    --attribute <attribute_path>
-
-    Example usage:
-    ./nixpkgs_github_update --attribute "notes-up"
-    """)
-  end
-
-  def main([]) do
-    help()
-  end
-
-  def main(args) do
-    opts = parse_args(args)
-
-    attribute = opts[:attribute]
-
-    case Nix.attribute_exists?(attribute) do
-      true -> update(attribute)
-      _ -> exit("Requested attribute doesn't exist.")
-    end
-  end
-
-  def parse_args(args) do
-    {options, _, _} =
-      args
-      |> OptionParser.parse(strict: [attribute: :string])
-
-    options
-  end
-
-  def update(attribute) do
-    version =
-      Nix.get_owner_repo(attribute)
-      |> GitHubLatestVersion.fetch()
-      |> decode_response()
-      |> construct_version()
-
-    Nix.update_source_version(attribute, version)
-  end
-
-  def decode_response({:ok, response}), do: response
-
-  def decode_response({:error, error}) do
-    IO.puts("Error getting latest release from GitHub: #{error["message"]}")
-    System.halt(2)
-  end
-
-  def construct_version(response) do
-    Map.get(response, "tag_name")
-    |> String.trim_leading("v")
-  end
-end
diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex b/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex
deleted file mode 100644
index 5333ad154f5..00000000000
--- a/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex
+++ /dev/null
@@ -1,42 +0,0 @@
-defmodule NixpkgsGitHubUpdate.GitHubLatestVersion do
-  @user_agent 'httpc'
-
-  def fetch({owner, repo}) do
-    endpoint = releases_endpoint(owner, repo)
-    headers = construct_headers()
-
-    :httpc.request(:get, {endpoint, headers}, [], [])
-    |> handle_response
-  end
-
-  def releases_endpoint(owner, repo) do
-    'https://api.github.com/repos/#{owner}/#{repo}/releases/latest'
-  end
-
-  def construct_headers do
-    headers = %{'User-Agent' => @user_agent}
-
-    put_token(headers, get_token())
-    |> Map.to_list
-  end
-
-  defp get_token do
-    System.get_env("OAUTH_TOKEN")
-  end
-
-  defp put_token(headers, token) when token != nil do
-    Map.put_new(headers, 'Authorization', 'token #{String.to_charlist(token)}')
-  end
-
-  defp put_token(headers, _), do: headers
-
-  def handle_response({_, {{_httpv, status_code, _}, _headers, response}}) do
-    {
-      status_code |> check_for_error(),
-      response |> Poison.Parser.parse!(%{})
-    }
-  end
-
-  defp check_for_error(200), do: :ok
-  defp check_for_error(_), do: :error
-end
diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/nix.ex b/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/nix.ex
deleted file mode 100644
index d5d9af84a6b..00000000000
--- a/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/nix.ex
+++ /dev/null
@@ -1,85 +0,0 @@
-defmodule NixpkgsGitHubUpdate.Nix do
-  def executable do
-    nix = System.find_executable("nix")
-
-    if nix == nil do
-      raise RuntimeError, message: "missing executable for 'nix'"
-    end
-
-    nix
-  end
-
-  def eval!(attribute) do
-    System.cmd(
-      executable(),
-      [
-        "eval",
-        "--json",
-        attribute
-      ],
-      stderr_to_stdout: true
-    )
-    |> handle_eval
-  end
-
-  defp handle_eval({eval_result, 0}) do
-    case eval_result do
-      "" -> eval_result
-      _ -> Poison.Parser.parse!(eval_result, %{})
-    end
-  end
-
-  defp handle_eval({eval_result, _}) do
-    raise RuntimeError, message: "Error running nix eval: #{eval_result}"
-  end
-
-  def attribute_exists?(attribute) do
-    attr_exist_expression = """
-      with import <nixpkgs> {};
-
-      let
-        attrSet = pkgs.lib.attrByPath (pkgs.lib.splitString "." "#{attribute}") null pkgs;
-      in
-        if attrSet == null then false
-        else true
-    """
-
-    eval!("(#{attr_exist_expression})")
-  end
-
-  def update_source_version(attribute, version) do
-    System.cmd("update-source-version", [
-      attribute,
-      version
-    ])
-  end
-
-  def get_url_attr(attribute) do
-    case attribute_exists?("#{attribute}.src.fetchSubmodules") do
-      true -> "url"
-      false -> "urls"
-    end
-  end
-
-  def get_owner_repo(attribute) do
-    url_attr = get_url_attr(attribute)
-
-    eval!("nixpkgs.#{attribute}.src.#{url_attr}")
-    |> case do
-      # It's fetchFromGitHub if we got a list
-      [url | _] ->
-        URI.parse(url).path
-        |> String.split("/archive", trim: true)
-        |> List.first()
-        |> String.split("/", trim: true)
-
-      # It's fetchgit if we got a plain string
-      url ->
-        URI.parse(url).path
-        |> String.split(".git", trim: true)
-        |> List.first()
-        |> String.split("/", trim: true)
-    end
-    |> List.to_tuple()
-  end
-end
diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/mix.exs b/pkgs/desktops/pantheon/nixpkgs_github_update/mix.exs
deleted file mode 100644
index 3498c7066a4..00000000000
--- a/pkgs/desktops/pantheon/nixpkgs_github_update/mix.exs
+++ /dev/null
@@ -1,28 +0,0 @@
-defmodule NixpkgsGitHubUpdate.MixProject do
-  use Mix.Project
-
-  def project do
-    [
-      app: :nixpkgs_github_update,
-      version: "0.1.0",
-      elixir: "~> 1.9",
-      escript: [main_module: NixpkgsGitHubUpdate.CLI],
-      start_permanent: Mix.env() == :prod,
-      deps: deps()
-    ]
-  end
-
-  # Run "mix help compile.app" to learn about applications.
-  def application do
-    [
-      extra_applications: [:logger, :inets, :ssl]
-    ]
-  end
-
-  # Run "mix help deps" to learn about dependencies.
-  defp deps do
-    [
-      {:poison, "~> 4.0.1"}
-    ]
-  end
-end
diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/shell.nix b/pkgs/desktops/pantheon/nixpkgs_github_update/shell.nix
deleted file mode 100644
index 0bb4e58a6a1..00000000000
--- a/pkgs/desktops/pantheon/nixpkgs_github_update/shell.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-with import <nixpkgs> {};
-
-let
-  inherit (lib) optional;
-in
-
-mkShell rec {
-  name = "nixpkgs-github-update-shell";
-
-  buildInputs = [
-    elixir
-    erlang
-    common-updater-scripts
-  ]
-  ++ optional stdenv.isLinux libnotify # For ExUnit Notifier on Linux.
-  ++ optional stdenv.isLinux inotify-tools # For file_system on Linux.
-  ;
-
-}
diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/test/nix_test.exs b/pkgs/desktops/pantheon/nixpkgs_github_update/test/nix_test.exs
deleted file mode 100644
index c5a57698fed..00000000000
--- a/pkgs/desktops/pantheon/nixpkgs_github_update/test/nix_test.exs
+++ /dev/null
@@ -1,49 +0,0 @@
-defmodule NixTest do
-  @fake_package "asanotehhhuh"
-  @fetchgit_package "polybar"
-  @fetchgithub_package "notes-up"
-
-  use ExUnit.Case
-
-  import NixpkgsGitHubUpdate.Nix
-
-  def check_for_nix(_context) do
-    try do
-      executable()
-    rescue
-      RuntimeError ->
-        IO.puts("You need Nix installed to run these tests.")
-        System.halt(127)
-    end
-
-    :ok
-  end
-
-  setup_all :check_for_nix
-
-  describe "evaluation tests" do
-    test "evaluation handling" do
-      exists_attr = "nixpkgs.#{@fetchgithub_package}"
-
-      assert is_binary(eval!(exists_attr)) == true
-      catch_error(eval!(@fake_package) == 1)
-    end
-
-    # This should always be true or false
-    test "package exists?" do
-      assert attribute_exists?(@fetchgithub_package) == true
-      assert attribute_exists?(@fake_package) == false
-    end
-  end
-
-  test "owner repo" do
-    assert get_url_attr(@fetchgit_package) == "url"
-    assert get_url_attr(@fetchgithub_package) == "urls"
-
-    assert get_owner_repo(@fetchgit_package) ==
-             {@fetchgit_package, @fetchgit_package}
-
-    assert get_owner_repo(@fetchgithub_package) ==
-             {"Philip-Scott", String.capitalize(@fetchgithub_package)}
-  end
-end
diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/test/test_helper.exs b/pkgs/desktops/pantheon/nixpkgs_github_update/test/test_helper.exs
deleted file mode 100644
index 869559e709e..00000000000
--- a/pkgs/desktops/pantheon/nixpkgs_github_update/test/test_helper.exs
+++ /dev/null
@@ -1 +0,0 @@
-ExUnit.start()
diff --git a/pkgs/desktops/pantheon/services/contractor/default.nix b/pkgs/desktops/pantheon/services/contractor/default.nix
index 68532bdd812..76874878ff7 100644
--- a/pkgs/desktops/pantheon/services/contractor/default.nix
+++ b/pkgs/desktops/pantheon/services/contractor/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , python3
@@ -21,11 +22,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1jzqv7pglhhyrkj1pfk1l624zn1822wyl5dp6gvwn4sk3iqxwwhl";
+    sha256 = "sha256-FHLecRxTE8v3M7cV6rkQKNhPhKFhuhvkzB5C+u7Z+Ms=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
index 7f17fb5d5a9..2213bcb4e37 100644
--- a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -25,11 +26,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "09pl1ynrmqjj844np4ww2i18z7kgx5kmj5ggfp8lqmxgsny7g8m3";
+    sha256 = "sha256-o6J3vNWvV0zRde8VWWfpb56PQhSck2sJQVLimq0P9CY=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix b/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix
index 7eeb156e028..3bb68475096 100644
--- a/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -20,11 +21,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0svfp0qyb6nx4mjl3jx4aqmb4x24m25jpi75mdis3yfr3c1xz9nh";
+    sha256 = "sha256-0KbfAxvZ+aFjq+XEK4uoRHSyKlaky0FlJd2a5TG4bms=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix b/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
index 905e2cc9aad..11e0aaee3ad 100644
--- a/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
+++ b/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -21,11 +22,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1lky7pw47d5mdza3bhq0ahdhgdv159ixngdsc1ys6j1kszsfxc1f";
+    sha256 = "sha256-LrDu9NczSKN9YLo922MqYbcHG1QAwzXUb7W0Q/g9ftI=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
index ca80a2f1df2..ad8cf7e82e9 100644
--- a/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
+++ b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -14,17 +15,17 @@
 
 stdenv.mkDerivation rec {
   pname = "pantheon-agent-polkit";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1gkispg1wr3fmwhbaaw722hc7cfqvj18gwb1nvv7rz3ghk9ih4jy";
+    sha256 = "sha256-YL1LHnPH7pP0EW9IkjdSEX+VuaAF9uNyFbl47vjVps0=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/update.nix b/pkgs/desktops/pantheon/update.nix
deleted file mode 100644
index 1137c533016..00000000000
--- a/pkgs/desktops/pantheon/update.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{ nixpkgs-github-update }:
-
-{ attrPath }:
-
-
-[ "${nixpkgs-github-update}/bin/nixpkgs_github_update" "--attribute" attrPath ]
diff --git a/pkgs/desktops/plasma-5/addons/caffeine-plus.nix b/pkgs/desktops/plasma-5/addons/caffeine-plus.nix
new file mode 100644
index 00000000000..66e1255f223
--- /dev/null
+++ b/pkgs/desktops/plasma-5/addons/caffeine-plus.nix
@@ -0,0 +1,32 @@
+{ lib, mkDerivation, fetchFromGitHub, extra-cmake-modules
+, kwindowsystem, plasma-framework }:
+
+mkDerivation rec {
+  pname = "plasma-applet-caffeine-plus";
+  version = "1.4";
+
+  src = fetchFromGitHub {
+    owner = "qunxyz";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-/Nz0kSDGok7GjqSQtjH/8q/u6blVTFPO6kfjEyt/jEo=";
+  };
+
+  buildInputs = [
+    kwindowsystem plasma-framework
+  ];
+
+  nativeBuildInputs = [ extra-cmake-modules ];
+
+  cmakeFlags = [
+    "-Wno-dev"
+  ];
+
+  meta = with lib; {
+    description = "Disable screensaver and auto suspend";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ peterhoeg ];
+    inherit (src.meta) homepage;
+    inherit (kwindowsystem.meta) platforms;
+  };
+}
diff --git a/pkgs/desktops/plasma-5/breeze-plymouth/default.nix b/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
index 770e549fc2c..9127b7fecb6 100644
--- a/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
+++ b/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
@@ -1,7 +1,6 @@
 {
   mkDerivation,
   lib,
-  copyPathsToStore,
   extra-cmake-modules,
   plymouth,
   nixos-icons,
@@ -16,19 +15,21 @@
   bottomColor ? "black"
 }:
 
-let 
+let
   validColors = [ "black" "cardboard_grey" "charcoal_grey" "icon_blue" "paper_white" "plasma_blue" "neon_blue" "neon_green" ];
   resolvedLogoName = if (logoFile != null && logoName == null) then lib.strings.removeSuffix ".png" (baseNameOf(toString logoFile)) else logoName;
 in
   assert lib.asserts.assertOneOf "topColor" topColor validColors;
   assert lib.asserts.assertOneOf "bottomColor" bottomColor validColors;
-  
+
 
 mkDerivation {
   name = "breeze-plymouth";
   nativeBuildInputs = [ extra-cmake-modules ] ++ lib.optionals (logoFile != null) [ imagemagick netpbm perl ];
   buildInputs = [ plymouth ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./install-paths.patch
+  ];
   cmakeFlags = []
     ++ lib.optional (osName      != null) "-DDISTRO_NAME=${osName}"
     ++ lib.optional (osVersion   != null) "-DDISTRO_VERSION=${osVersion}"
@@ -36,7 +37,7 @@ mkDerivation {
     ++ lib.optional (topColor    != null) "-DBACKGROUND_TOP_COLOR=${topColor}"
     ++ lib.optional (bottomColor != null) "-DBACKGROUND_BOTTOM_COLOR=${bottomColor}"
   ;
-  
+
   postPatch = ''
       substituteInPlace cmake/FindPlymouth.cmake --subst-var out
   '' + lib.optionalString (logoFile != null) ''
diff --git a/pkgs/desktops/plasma-5/breeze-plymouth/series b/pkgs/desktops/plasma-5/breeze-plymouth/series
deleted file mode 100644
index 8920e7ca518..00000000000
--- a/pkgs/desktops/plasma-5/breeze-plymouth/series
+++ /dev/null
@@ -1 +0,0 @@
-install-paths.patch
diff --git a/pkgs/desktops/plasma-5/fetch.sh b/pkgs/desktops/plasma-5/fetch.sh
index d871ceb2875..abb5659526f 100644
--- a/pkgs/desktops/plasma-5/fetch.sh
+++ b/pkgs/desktops/plasma-5/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/plasma/5.17.5/ )
+WGET_ARGS=( https://download.kde.org/stable/plasma/5.18.5/ )
diff --git a/pkgs/desktops/plasma-5/kde-cli-tools.nix b/pkgs/desktops/plasma-5/kde-cli-tools.nix
index 3364ee2c063..d84b7bc9801 100644
--- a/pkgs/desktops/plasma-5/kde-cli-tools.nix
+++ b/pkgs/desktops/plasma-5/kde-cli-tools.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, extra-cmake-modules, kdoctools,
+  lib, mkDerivation, extra-cmake-modules, kdoctools,
   kcmutils, kconfig, kdesu, ki18n, kiconthemes, kinit, kio, kwindowsystem,
   qtsvg, qtx11extras, kactivities, plasma-workspace
 }:
@@ -11,4 +11,18 @@ mkDerivation {
     kcmutils kconfig kdesu ki18n kiconthemes kinit kio kwindowsystem qtsvg
     qtx11extras kactivities plasma-workspace
   ];
+  postInstall = ''
+    # install a symlink in bin so that kdesu can eventually be found in PATH
+    mkdir -p $out/bin
+    ln -s $out/libexec/kf5/kdesu $out/bin
+  '';
+  dontWrapQtApps = true;
+  preFixup = ''
+    for program in $out/bin/*; do
+      wrapQtApp $program
+    done
+
+    # kdesu looks for kdeinit5 in PATH
+    wrapQtApp $out/libexec/kf5/kdesu --suffix PATH : ${lib.getBin kinit}/bin
+  '';
 }
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/0001-gsettings-schemas-path.patch b/pkgs/desktops/plasma-5/kde-gtk-config/0001-gsettings-schemas-path.patch
new file mode 100644
index 00000000000..2fe4672f675
--- /dev/null
+++ b/pkgs/desktops/plasma-5/kde-gtk-config/0001-gsettings-schemas-path.patch
@@ -0,0 +1,21 @@
+diff --git a/kded/gtkconfig.cpp b/kded/gtkconfig.cpp
+index 5303636..199c4d5 100644
+--- a/kded/gtkconfig.cpp
++++ b/kded/gtkconfig.cpp
+@@ -41,6 +41,16 @@ GtkConfig::GtkConfig(QObject *parent, const QVariantList&) :
+     kdeglobalsConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kdeglobals")))),
+     kwinConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kwinrc"))))
+ {
++    // Add GSETTINGS_SCHEMAS_PATH to the front of XDG_DATA_DIRS.
++    // Normally this would be done by wrapGAppsHook, but this plugin
++    // (shared object) cannot be wrapped.
++    QByteArray xdgdata = qgetenv("XDG_DATA_DIRS");
++    if (!xdgdata.isEmpty()) {
++        xdgdata.push_front(":");
++    }
++    xdgdata.push_front(QByteArray(GSETTINGS_SCHEMAS_PATH));
++    qputenv("XDG_DATA_DIRS", xdgdata);
++
+     QDBusConnection dbus = QDBusConnection::sessionBus();
+     dbus.registerService(QStringLiteral("org.kde.GtkConfig"));
+     dbus.registerObject(QStringLiteral("/GtkConfig"), this, QDBusConnection::ExportScriptableSlots);
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/default.nix b/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
index 8cfc947d30b..c1ed6dbd6c6 100644
--- a/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
+++ b/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
@@ -2,7 +2,7 @@
   mkDerivation,
   extra-cmake-modules, wrapGAppsHook,
   glib, gtk2, gtk3, karchive, kcmutils, kconfigwidgets, ki18n, kiconthemes, kio,
-  knewstuff, gsettings-desktop-schemas
+  knewstuff, gsettings-desktop-schemas, xsettingsd
 }:
 
 mkDerivation {
@@ -11,14 +11,16 @@ mkDerivation {
   dontWrapGApps = true;  # There is nothing to wrap
   buildInputs = [
     ki18n kio glib gtk2 gtk3 karchive kcmutils kconfigwidgets kiconthemes
-    knewstuff gsettings-desktop-schemas
+    knewstuff gsettings-desktop-schemas xsettingsd
   ];
-  patches = [ ./patches/follow-symlinks.patch ./patches/gsettings.patch ];
   cmakeFlags = [
     "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
     "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include"
     "-DGLIB_SCHEMAS_DIR=${gsettings-desktop-schemas.out}/"
   ];
+  # The gtkconfig KDED module will crash the daemon if the GSettings schemas
+  # aren't found.
+  patches = [ ./0001-gsettings-schemas-path.patch ];
   preConfigure = ''
     NIX_CFLAGS_COMPILE+=" -DGSETTINGS_SCHEMAS_PATH=\"$GSETTINGS_SCHEMAS_PATH\""
   '';
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/patches/follow-symlinks.patch b/pkgs/desktops/plasma-5/kde-gtk-config/patches/follow-symlinks.patch
deleted file mode 100644
index f30a0a4588f..00000000000
--- a/pkgs/desktops/plasma-5/kde-gtk-config/patches/follow-symlinks.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 33b25c2e3c7a002c7f726cd79fc4bab22b1299be Mon Sep 17 00:00:00 2001
-From: Thomas Tuegel <ttuegel@gmail.com>
-Date: Tue, 27 Oct 2015 18:07:54 -0500
-Subject: [PATCH] follow symlinks
-
----
- src/appearancegtk2.cpp  | 2 +-
- src/iconthemesmodel.cpp | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-Index: kde-gtk-config-5.12.4/src/appearancegtk2.cpp
-===================================================================
---- kde-gtk-config-5.12.4.orig/src/appearancegtk2.cpp
-+++ kde-gtk-config-5.12.4/src/appearancegtk2.cpp
-@@ -69,7 +69,7 @@ QString AppearanceGTK2::themesGtkrcFile(
-     QStringList themes=installedThemes();
-     themes=themes.filter(QRegExp("/"+themeName+"/?$"));
-     if(themes.size()==1) {
--        QDirIterator it(themes.first(), QDirIterator::Subdirectories);
-+        QDirIterator it(themes.first(), QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
-         while(it.hasNext()) {
-             it.next();
-             if(it.fileName()=="gtkrc") {
-Index: kde-gtk-config-5.12.4/src/iconthemesmodel.cpp
-===================================================================
---- kde-gtk-config-5.12.4.orig/src/iconthemesmodel.cpp
-+++ kde-gtk-config-5.12.4/src/iconthemesmodel.cpp
-@@ -47,7 +47,7 @@ QList<QDir> IconThemesModel::installedTh
- 
-     foreach(const QString& dir, dirs) {
-         QDir userIconsDir(dir);
--        QDirIterator it(userIconsDir.path(), QDir::NoDotAndDotDot|QDir::AllDirs|QDir::NoSymLinks);
-+        QDirIterator it(userIconsDir.path(), QDir::NoDotAndDotDot|QDir::AllDirs);
-         while(it.hasNext()) {
-             QString currentPath = it.next();
-             QDir dir(currentPath);
-Index: kde-gtk-config-5.12.4/src/cursorthemesmodel.cpp
-===================================================================
---- kde-gtk-config-5.12.4.orig/src/cursorthemesmodel.cpp
-+++ kde-gtk-config-5.12.4/src/cursorthemesmodel.cpp
-@@ -47,7 +47,7 @@ QList<QDir> CursorThemesModel::installed
- 
-     foreach(const QString& dir, dirs) {
-         QDir userIconsDir(dir);
--        QDirIterator it(userIconsDir.path(), QDir::NoDotAndDotDot|QDir::AllDirs|QDir::NoSymLinks);
-+        QDirIterator it(userIconsDir.path(), QDir::NoDotAndDotDot|QDir::AllDirs);
-         while(it.hasNext()) {
-             QString currentPath = it.next();
-             QDir dir(currentPath);
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/patches/gsettings.patch b/pkgs/desktops/plasma-5/kde-gtk-config/patches/gsettings.patch
deleted file mode 100644
index 69f7bc4e56a..00000000000
--- a/pkgs/desktops/plasma-5/kde-gtk-config/patches/gsettings.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/src/gtkconfigkcmodule.cpp b/src/gtkconfigkcmodule.cpp
-index 7b82d50..96831d8 100644
---- a/src/gtkconfigkcmodule.cpp
-+++ b/src/gtkconfigkcmodule.cpp
-@@ -91,6 +91,16 @@ GTKConfigKCModule::GTKConfigKCModule(QWidget* parent, const QVariantList& args )
-     iconsProxyModel->sort(0);
-     ui->cb_icon->setModel(iconsProxyModel);
-     ui->cb_icon_fallback->setModel(iconsProxyModel);
-+
-+    // Add GSETTINGS_SCHEMAS_PATH to the front of XDG_DATA_DIRS.
-+    // Normally this would be done by wrapGAppsHook, but this plugin
-+    // (shared object) cannot be wrapped.
-+    QByteArray xdgdata = qgetenv("XDG_DATA_DIRS");
-+    if (!xdgdata.isEmpty()) {
-+        xdgdata.push_front(":");
-+    }
-+    xdgdata.push_front(QByteArray(GSETTINGS_SCHEMAS_PATH));
-+    qputenv("XDG_DATA_DIRS", xdgdata);
-     
-     m_tempGtk2Preview = QStandardPaths::writableLocation(QStandardPaths::TempLocation)+ "/gtkrc-2.0";
-     m_tempGtk3Preview = QStandardPaths::writableLocation(QStandardPaths::TempLocation)+ "/.config/gtk-3.0/settings.ini";
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/patches/series b/pkgs/desktops/plasma-5/kde-gtk-config/patches/series
deleted file mode 100644
index 7aad1acf6ac..00000000000
--- a/pkgs/desktops/plasma-5/kde-gtk-config/patches/series
+++ /dev/null
@@ -1,2 +0,0 @@
-follow-symlinks.patch
-gsettings.patch
diff --git a/pkgs/desktops/plasma-5/kdeplasma-addons.nix b/pkgs/desktops/plasma-5/kdeplasma-addons.nix
index 398fc356fc9..f214d4070ee 100644
--- a/pkgs/desktops/plasma-5/kdeplasma-addons.nix
+++ b/pkgs/desktops/plasma-5/kdeplasma-addons.nix
@@ -1,17 +1,18 @@
 {
   mkDerivation,
   extra-cmake-modules, kdoctools,
-  kconfig, kconfigwidgets, kcoreaddons, kcmutils, kdelibs4support, kio,
-  knewstuff, kross, krunner, kservice, ksysguard, kunitconversion, ibus,
-  plasma-framework, plasma-workspace, qtdeclarative, qtx11extras, kholidays
+  kconfig, kconfigwidgets, kcoreaddons, kcmutils, kdelibs4support, kholidays,
+  kio, knewstuff, kpurpose, kross, krunner, kservice, ksysguard,
+  kunitconversion, ibus, plasma-framework, plasma-workspace, qtdeclarative,
+  qtwebengine, qtx11extras
 }:
 
 mkDerivation {
   name = "kdeplasma-addons";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    kconfig kconfigwidgets kcoreaddons kcmutils kdelibs4support kio knewstuff
-    kross krunner kservice ksysguard kunitconversion ibus plasma-framework
-    plasma-workspace qtdeclarative qtx11extras kholidays
+    kconfig kconfigwidgets kcoreaddons kcmutils kdelibs4support kholidays kio
+    knewstuff kpurpose kross krunner kservice ksysguard kunitconversion ibus
+    plasma-framework plasma-workspace qtdeclarative qtwebengine qtx11extras
   ];
 }
diff --git a/pkgs/desktops/plasma-5/khotkeys.nix b/pkgs/desktops/plasma-5/khotkeys.nix
index 77763c5e203..ad78d602dec 100644
--- a/pkgs/desktops/plasma-5/khotkeys.nix
+++ b/pkgs/desktops/plasma-5/khotkeys.nix
@@ -1,6 +1,7 @@
 {
-  mkDerivation,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
+  qtbase,
   kcmutils, kdbusaddons, kdelibs4support, kglobalaccel, ki18n, kio, kxmlgui,
   plasma-framework, plasma-workspace, qtx11extras
 }:
@@ -13,5 +14,5 @@ mkDerivation {
     plasma-framework plasma-workspace qtx11extras
   ];
   outputs = [ "bin" "dev" "out" ];
-  enableParallelBuilding = false;
+  meta.broken = lib.versionOlder qtbase.version "5.14";
 }
diff --git a/pkgs/desktops/plasma-5/kinfocenter.nix b/pkgs/desktops/plasma-5/kinfocenter.nix
index b35493929ff..cf353af5891 100644
--- a/pkgs/desktops/plasma-5/kinfocenter.nix
+++ b/pkgs/desktops/plasma-5/kinfocenter.nix
@@ -2,8 +2,9 @@
   mkDerivation,
   extra-cmake-modules, kdoctools,
   kcmutils, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons,
-  kdeclarative, kdelibs4support, ki18n, kiconthemes, kio, kpackage, kservice,
-  kwayland, kwidgetsaddons, kxmlgui, libraw1394, libGLU, pciutils, solid
+  kdeclarative, kdelibs4support, ki18n, kiconthemes, kio, kirigami2, kpackage,
+  kservice, kwayland, kwidgetsaddons, kxmlgui, libraw1394, libGLU, pciutils,
+  solid
 }:
 
 mkDerivation {
@@ -11,7 +12,7 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kcmutils kcompletion kconfig kconfigwidgets kcoreaddons kdbusaddons
-    kdeclarative kdelibs4support ki18n kiconthemes kio kpackage kservice
-    kwayland kwidgetsaddons kxmlgui libraw1394 libGLU pciutils solid
+    kdeclarative kdelibs4support ki18n kiconthemes kio kirigami2 kpackage
+    kservice kwayland kwidgetsaddons kxmlgui libraw1394 libGLU pciutils solid
   ];
 }
diff --git a/pkgs/desktops/plasma-5/kscreen-417316.patch b/pkgs/desktops/plasma-5/kscreen-417316.patch
deleted file mode 100644
index 92b347e2dbf..00000000000
--- a/pkgs/desktops/plasma-5/kscreen-417316.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-https://phabricator.kde.org/file/data/dyr2qr4wrhxg4eahkgd3/PHID-FILE-7d4og3zr4mk53u6lzkk2/D27442.diff
-https://bugs.kde.org/show_bug.cgi?id=417316
-
-diff -ru kscreen-5.17.5-orig/kcm/package/contents/ui/main.qml kscreen-5.17.5/kcm/package/contents/ui/main.qml
---- kscreen-5.17.5-orig/kcm/package/contents/ui/main.qml	2020-01-07 16:28:39.000000000 +0100
-+++ kscreen-5.17.5/kcm/package/contents/ui/main.qml	2020-04-03 17:54:26.097809557 +0200
-@@ -24,8 +24,8 @@
- KCM.SimpleKCM {
-     id: root
- 
--    implicitWidth: units.gridUnit * 30
--    implicitHeight: units.gridUnit * 38
-+    implicitWidth: Kirigami.Units.gridUnit * 32
-+    implicitHeight: Kirigami.Units.gridUnit * 38
- 
-     property int selectedOutput: 0
- 
-@@ -113,7 +113,7 @@
-             id: screen
- 
-             Layout.alignment: Qt.AlignHCenter
--            Layout.preferredWidth: Math.max(root.width * 0.8, units.gridUnit * 26)
-+            Layout.preferredWidth: Math.max(root.width * 0.8, Kirigami.Units.gridUnit * 26)
-             Layout.topMargin: Kirigami.Units.smallSpacing
-             Layout.bottomMargin: Kirigami.Units.largeSpacing * 2
- 
-diff -ru kscreen-5.17.5-orig/kcm/package/contents/ui/Output.qml kscreen-5.17.5/kcm/package/contents/ui/Output.qml
---- kscreen-5.17.5-orig/kcm/package/contents/ui/Output.qml	2020-01-07 16:28:39.000000000 +0100
-+++ kscreen-5.17.5/kcm/package/contents/ui/Output.qml	2020-04-03 17:53:22.491686708 +0200
-@@ -19,6 +19,7 @@
- import QtQuick.Layouts 1.1
- import QtQuick.Controls 2.3 as Controls
- import QtGraphicalEffects 1.0
-+import org.kde.kirigami 2.4 as Kirigami
- 
- Rectangle {
-     id: output
-@@ -77,7 +78,7 @@
- 
-             Controls.Label {
-                 Layout.fillWidth: true
--                Layout.margins: units.smallSpacing
-+                Layout.margins: Kirigami.Units.smallSpacing
- 
-                 text: model.display
-                 wrapMode: Text.Wrap
-@@ -87,7 +88,7 @@
- 
-             Controls.Label {
-                 Layout.fillWidth: true
--                Layout.bottomMargin: units.smallSpacing
-+                Layout.bottomMargin: Kirigami.Units.smallSpacing
- 
-                 text: "(" + model.size.width + "x" + model.size.height + ")"
-                 horizontalAlignment: Text.AlignHCenter
-diff -ru kscreen-5.17.5-orig/kcm/package/contents/ui/Screen.qml kscreen-5.17.5/kcm/package/contents/ui/Screen.qml
---- kscreen-5.17.5-orig/kcm/package/contents/ui/Screen.qml	2020-01-07 16:28:39.000000000 +0100
-+++ kscreen-5.17.5/kcm/package/contents/ui/Screen.qml	2020-04-03 17:53:22.491686708 +0200
-@@ -45,7 +45,7 @@
-     property int xOffset: (width - totalSize.width / relativeFactor) / 2;
-     property int yOffset: (height - totalSize.height / relativeFactor) / 2;
- 
--    implicitHeight: Math.max(root.height * 0.4, units.gridUnit * 13)
-+    implicitHeight: Math.max(root.height * 0.4, Kirigami.Units.gridUnit * 13)
- 
-     Component.onCompleted: background.visible = true;
- 
-@@ -54,7 +54,7 @@
-         anchors {
-             bottom: parent.bottom
-             horizontalCenter: parent.horizontalCenter
--            margins: units.smallSpacing
-+            margins: Kirigami.Units.smallSpacing
-         }
-         spacing: units.smallSpacing
-         Controls.Button {
diff --git a/pkgs/desktops/plasma-5/kscreen.nix b/pkgs/desktops/plasma-5/kscreen.nix
index 2f37c4212da..11b0f38fed0 100644
--- a/pkgs/desktops/plasma-5/kscreen.nix
+++ b/pkgs/desktops/plasma-5/kscreen.nix
@@ -2,17 +2,16 @@
   mkDerivation,
   extra-cmake-modules,
   kconfig, kcmutils, kconfigwidgets, kdbusaddons, kglobalaccel, ki18n,
-  kwidgetsaddons, kxmlgui, libkscreen, qtdeclarative, qtgraphicaleffects,
+  kwidgetsaddons, kxmlgui, libkscreen, qtdeclarative, qtgraphicaleffects, qtsensors,
   kwindowsystem, kdeclarative, plasma-framework
 }:
 
 mkDerivation {
   name = "kscreen";
-  patches = [ ./kscreen-417316.patch ];
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kconfig kcmutils kconfigwidgets kdbusaddons kglobalaccel ki18n
-    kwidgetsaddons kxmlgui libkscreen qtdeclarative qtgraphicaleffects
+    kwidgetsaddons kxmlgui libkscreen qtdeclarative qtgraphicaleffects qtsensors
     kwindowsystem kdeclarative plasma-framework
   ];
 }
diff --git a/pkgs/desktops/plasma-5/ksysguard.nix b/pkgs/desktops/plasma-5/ksysguard.nix
index 01e740f74c4..72793fdf083 100644
--- a/pkgs/desktops/plasma-5/ksysguard.nix
+++ b/pkgs/desktops/plasma-5/ksysguard.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation,
   extra-cmake-modules, kdoctools,
-  lm_sensors,
+  libcap, libpcap, lm_sensors,
   kconfig, kcoreaddons, kdelibs4support, ki18n, kiconthemes, kitemviews,
   knewstuff, libksysguard
 }:
@@ -11,6 +11,6 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kconfig kcoreaddons kitemviews knewstuff kiconthemes libksysguard
-    kdelibs4support ki18n lm_sensors
+    kdelibs4support ki18n libcap libpcap lm_sensors
   ];
 }
diff --git a/pkgs/desktops/plasma-5/kwin/default.nix b/pkgs/desktops/plasma-5/kwin/default.nix
index c3e9e2b9c24..78b6909f046 100644
--- a/pkgs/desktops/plasma-5/kwin/default.nix
+++ b/pkgs/desktops/plasma-5/kwin/default.nix
@@ -1,17 +1,18 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
 
   epoxy,libICE, libSM, libinput, libxkbcommon, udev, wayland, xcb-util-cursor,
   xwayland,
 
-  qtdeclarative, qtmultimedia, qtscript, qtx11extras,
+  qtdeclarative, qtmultimedia, qtquickcontrols2, qtscript, qtsensors,
+  qtvirtualkeyboard, qtx11extras,
 
   breeze-qt5, kactivities, kcompletion, kcmutils, kconfig, kconfigwidgets,
   kcoreaddons, kcrash, kdeclarative, kdecoration, kglobalaccel, ki18n,
   kiconthemes, kidletime, kinit, kio, knewstuff, knotifications, kpackage,
   kscreenlocker, kservice, kwayland, kwidgetsaddons, kwindowsystem, kxmlgui,
-  plasma-framework, qtsensors, libcap, libdrm, mesa
+  plasma-framework, libcap, libdrm, mesa
 }:
 
 # TODO (ttuegel): investigate qmlplugindump failure
@@ -23,7 +24,8 @@ mkDerivation {
     epoxy libICE libSM libinput libxkbcommon udev wayland xcb-util-cursor
     xwayland
 
-    qtdeclarative qtmultimedia qtscript qtx11extras qtsensors
+    qtdeclarative qtmultimedia qtquickcontrols2 qtscript qtsensors
+    qtvirtualkeyboard qtx11extras
 
     breeze-qt5 kactivities kcmutils kcompletion kconfig kconfigwidgets
     kcoreaddons kcrash kdeclarative kdecoration kglobalaccel ki18n kiconthemes
diff --git a/pkgs/desktops/plasma-5/kwin/scripts/dynamic-workspaces.nix b/pkgs/desktops/plasma-5/kwin/scripts/dynamic-workspaces.nix
new file mode 100644
index 00000000000..cea788f2640
--- /dev/null
+++ b/pkgs/desktops/plasma-5/kwin/scripts/dynamic-workspaces.nix
@@ -0,0 +1,39 @@
+{ lib, mkDerivation, fetchFromGitHub
+, kcoreaddons, kwindowsystem, plasma-framework, systemsettings }:
+
+mkDerivation rec {
+  pname = "dynamic_workspaces";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "d86leader";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1mnwh489i6l8z9s5a1zl7zybkw76pp9fdmmis41mym7r4wz4iznm";
+  };
+
+  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/dynamic_workspaces.desktop
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "KWin script that automatically adds/removes virtual desktops";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ samuelgrf ];
+    inherit (src.meta) homepage;
+    inherit (kwindowsystem.meta) platforms;
+  };
+}
diff --git a/pkgs/desktops/plasma-5/kwin/scripts/krohnkite.nix b/pkgs/desktops/plasma-5/kwin/scripts/krohnkite.nix
index abd655db375..95480bc5b96 100644
--- a/pkgs/desktops/plasma-5/kwin/scripts/krohnkite.nix
+++ b/pkgs/desktops/plasma-5/kwin/scripts/krohnkite.nix
@@ -26,7 +26,7 @@ mkDerivation rec {
     plasmapkg2 --type kwinscript --install ${src}/res/ --packageroot $out/share/kwin/scripts
     install -Dm644 ${src}/res/metadata.desktop $out/share/kservices5/krohnkite.desktop
 
-    runHook postInstalll
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/desktops/plasma-5/kwin/scripts/tiling.nix b/pkgs/desktops/plasma-5/kwin/scripts/tiling.nix
index d2c68d3cb7b..8a455cb8882 100644
--- a/pkgs/desktops/plasma-5/kwin/scripts/tiling.nix
+++ b/pkgs/desktops/plasma-5/kwin/scripts/tiling.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "kwin-tiling";
-  version = "2.2";
+  version = "2.4";
 
   src = fetchFromGitHub {
     owner = "kwin-scripts";
     repo = "kwin-tiling";
     rev = "v${version}";
-    sha256 = "1sx64xv7g9yh3j26zxxrbndv79xam9jq0vs00fczgfv2n0m7j7bl";
+    sha256 = "095slpvipy0zcmbn0l7mdnl9g74jaafkr2gqi09b0by5fkvnbh37";
   };
 
   # This is technically not needed, but we might as well clean up
@@ -31,7 +31,7 @@ mkDerivation rec {
     plasmapkg2 --type kwinscript --install ${src} --packageroot $out/share/kwin/scripts
     install -Dm644 ${src}/metadata.desktop $out/share/kservices5/kwin-script-tiling.desktop
 
-    runHook postInstalll
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/desktops/plasma-5/libkscreen/default.nix b/pkgs/desktops/plasma-5/libkscreen/default.nix
index cf9d7084401..db952944eca 100644
--- a/pkgs/desktops/plasma-5/libkscreen/default.nix
+++ b/pkgs/desktops/plasma-5/libkscreen/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore, propagate,
+  mkDerivation, lib, propagate,
   extra-cmake-modules,
   kwayland, libXrandr, qtbase, qtx11extras
 }:
@@ -12,7 +12,9 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kwayland libXrandr qtx11extras ];
   outputs = [ "out" "dev" ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./libkscreen-backends-path.patch
+  ];
   preConfigure = ''
     NIX_CFLAGS_COMPILE+=" -DNIXPKGS_LIBKSCREEN_BACKENDS=\"''${!outputBin}/$qtPluginPrefix/kf5/kscreen\""
   '';
diff --git a/pkgs/desktops/plasma-5/libkscreen/series b/pkgs/desktops/plasma-5/libkscreen/series
deleted file mode 100644
index 86bf4ab1060..00000000000
--- a/pkgs/desktops/plasma-5/libkscreen/series
+++ /dev/null
@@ -1 +0,0 @@
-libkscreen-backends-path.patch
diff --git a/pkgs/desktops/plasma-5/patches/0001-Add-a-logging-category-config-file.patch b/pkgs/desktops/plasma-5/patches/0001-Add-a-logging-category-config-file.patch
new file mode 100644
index 00000000000..d8d54a117eb
--- /dev/null
+++ b/pkgs/desktops/plasma-5/patches/0001-Add-a-logging-category-config-file.patch
@@ -0,0 +1,210 @@
+From e63a0dc2a7b185906a93d60e9d5d6deee4950efc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?M=C3=A9ven=20Car?= <meven.car@enioka.com>
+Date: Wed, 20 May 2020 14:02:07 +0200
+Subject: [PATCH] Add a logging category config file
+
+Makes powerdevil default logging level Warning
+---
+ CMakeLists.txt                     |  2 ++
+ daemon/CMakeLists.txt              |  6 ++++++
+ daemon/actions/dpms/CMakeLists.txt |  2 +-
+ daemon/backends/CMakeLists.txt     |  6 +++---
+ daemon/powerdevil_debug.cpp        | 21 ---------------------
+ daemon/powerdevil_debug.h          | 26 --------------------------
+ kcmodule/activities/CMakeLists.txt |  2 +-
+ kcmodule/common/CMakeLists.txt     |  2 +-
+ kcmodule/profiles/CMakeLists.txt   |  2 +-
+ powerdevil.categories              |  1 +
+ 10 files changed, 16 insertions(+), 54 deletions(-)
+ delete mode 100644 daemon/powerdevil_debug.cpp
+ delete mode 100644 daemon/powerdevil_debug.h
+ create mode 100644 powerdevil.categories
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5ded8f5a..52a7318c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -11,6 +11,7 @@ find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
+ set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
+ 
+ include(ECMSetupVersion)
++include(ECMQtDeclareLoggingCategory)
+ include(FeatureSummary)
+ include(KDEInstallDirs)
+ include(KDECMakeSettings)
+@@ -76,6 +77,7 @@ add_subdirectory(daemon)
+ add_subdirectory(kcmodule)
+ add_subdirectory(doc)
+ 
++install( FILES powerdevil.categories  DESTINATION  ${KDE_INSTALL_LOGGINGCATEGORIESDIR})
+ install( FILES powerdevil.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFY5RCDIR} )
+ 
+ feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
+diff --git a/daemon/CMakeLists.txt b/daemon/CMakeLists.txt
+index 33ca655b..96cc9b7b 100644
+--- a/daemon/CMakeLists.txt
++++ b/daemon/CMakeLists.txt
+@@ -48,6 +48,12 @@ set(powerdevilcore_SRCS
+     kwinkscreenhelpereffect.cpp
+ )
+ 
++ecm_qt_declare_logging_category(powerdevilcore_SRCS
++   HEADER powerdevil_debug.h
++   IDENTIFIER POWERDEVIL
++   CATEGORY_NAME org.kde.powerdevil
++   DEFAULT_SEVERITY Warning)
++
+ kconfig_add_kcfg_files(powerdevilcore_SRCS ../PowerDevilSettings.kcfgc)
+ 
+ # Action DBus Adaptors
+diff --git a/daemon/actions/dpms/CMakeLists.txt b/daemon/actions/dpms/CMakeLists.txt
+index f8ca4e20..3b8bd95b 100644
+--- a/daemon/actions/dpms/CMakeLists.txt
++++ b/daemon/actions/dpms/CMakeLists.txt
+@@ -3,7 +3,7 @@ include_directories(${PowerDevil_SOURCE_DIR}/daemon
+                     ${CMAKE_CURRENT_BINARY_DIR})
+ 
+ set(powerdevildpmsaction_SRCS
+-    ${PowerDevil_SOURCE_DIR}/daemon/powerdevil_debug.cpp
++    ${CMAKE_CURRENT_BINARY_DIR}/../../powerdevil_debug.cpp
+     powerdevildpmsaction.cpp
+     abstractdpmshelper.cpp
+     xcbdpmshelper.cpp
+diff --git a/daemon/backends/CMakeLists.txt b/daemon/backends/CMakeLists.txt
+index 89400446..05c4263e 100644
+--- a/daemon/backends/CMakeLists.txt
++++ b/daemon/backends/CMakeLists.txt
+@@ -4,7 +4,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/upower
+                     ${X11_Xrandr_INCLUDE_PATH})
+ 
+ set(powerdevilupowerbackend_SRCS
+-    ${PowerDevil_SOURCE_DIR}/daemon/powerdevil_debug.cpp
++    ${CMAKE_CURRENT_BINARY_DIR}/../powerdevil_debug.cpp
+     upower/upowersuspendjob.cpp
+     upower/login1suspendjob.cpp
+     upower/powerdevilupowerbackend.cpp
+@@ -33,14 +33,14 @@ ${CMAKE_CURRENT_SOURCE_DIR}/upower/dbus/org.freedesktop.UPower.KbdBacklight.xml
+ upower_kbdbacklight_interface)
+ 
+ ## backlight helper executable
+-add_executable(backlighthelper upower/backlighthelper.cpp ${PowerDevil_SOURCE_DIR}/daemon/powerdevil_debug.cpp ${backlighthelper_mocs})
++add_executable(backlighthelper upower/backlighthelper.cpp ${CMAKE_CURRENT_BINARY_DIR}/../powerdevil_debug.cpp ${backlighthelper_mocs})
+ target_link_libraries(backlighthelper Qt5::Core KF5::AuthCore KF5::I18n)
+ install(TARGETS backlighthelper DESTINATION ${KAUTH_HELPER_INSTALL_DIR})
+ kauth_install_helper_files(backlighthelper org.kde.powerdevil.backlighthelper root)
+ kauth_install_actions(org.kde.powerdevil.backlighthelper ${CMAKE_CURRENT_SOURCE_DIR}/upower/backlight_helper_actions.actions)
+ 
+ ## discrete gpu helper executable
+-add_executable(discretegpuhelper upower/discretegpuhelper.cpp ${PowerDevil_SOURCE_DIR}/daemon/powerdevil_debug.cpp ${discretegpuhelper_mocs})
++add_executable(discretegpuhelper upower/discretegpuhelper.cpp ${CMAKE_CURRENT_BINARY_DIR}/../powerdevil_debug.cpp ${discretegpuhelper_mocs})
+ target_link_libraries(discretegpuhelper Qt5::Core KF5::AuthCore)
+ install(TARGETS discretegpuhelper DESTINATION ${KAUTH_HELPER_INSTALL_DIR})
+ kauth_install_helper_files(discretegpuhelper org.kde.powerdevil.discretegpuhelper root)
+diff --git a/daemon/powerdevil_debug.cpp b/daemon/powerdevil_debug.cpp
+deleted file mode 100644
+index 86172c1b..00000000
+--- a/daemon/powerdevil_debug.cpp
++++ /dev/null
+@@ -1,21 +0,0 @@
+-/*  This file is part of the KDE project
+-    Copyright (C) 2014 Hrvoje Senjan <hrvoje.senjan@gmail.com>
+-
+-    This library is free software; you can redistribute it and/or
+-    modify it under the terms of the GNU Library General Public
+-    License as published by the Free Software Foundation; either
+-    version 2 of the License, or (at your option) any later version.
+-
+-    This library is distributed in the hope that it will be useful,
+-    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-    Library General Public License for more details.
+-
+-    You should have received a copy of the GNU Library General Public License
+-    along with this library; see the file COPYING.LIB.  If not, write to
+-    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+-    Boston, MA 02110-1301, USA.
+-*/
+-
+-#include "powerdevil_debug.h"
+-Q_LOGGING_CATEGORY(POWERDEVIL, "powerdevil")
+diff --git a/daemon/powerdevil_debug.h b/daemon/powerdevil_debug.h
+deleted file mode 100644
+index fcd9c10f..00000000
+--- a/daemon/powerdevil_debug.h
++++ /dev/null
+@@ -1,26 +0,0 @@
+-/*  This file is part of the KDE project
+-    Copyright (C) 2014 Hrvoje Senjan <hrvoje.senjan@gmail.com>
+-
+-    This library is free software; you can redistribute it and/or
+-    modify it under the terms of the GNU Library General Public
+-    License as published by the Free Software Foundation; either
+-    version 2 of the License, or (at your option) any later version.
+-
+-    This library is distributed in the hope that it will be useful,
+-    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-    Library General Public License for more details.
+-
+-    You should have received a copy of the GNU Library General Public License
+-    along with this library; see the file COPYING.LIB.  If not, write to
+-    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+-    Boston, MA 02110-1301, USA.
+-*/
+-
+-#ifndef PROCESSCORE_DEBUG_H
+-#define PROCESSCORE_DEBUG_H
+-
+-#include <QLoggingCategory>
+-Q_DECLARE_LOGGING_CATEGORY(POWERDEVIL)
+-
+-#endif
+diff --git a/kcmodule/activities/CMakeLists.txt b/kcmodule/activities/CMakeLists.txt
+index 41a6da48..6e248e91 100644
+--- a/kcmodule/activities/CMakeLists.txt
++++ b/kcmodule/activities/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ add_definitions(-DTRANSLATION_DOMAIN=\"powerdevilactivitiesconfig\")
+ 
+ set( kcm_powerdevil_activities_SRCS
+-     ${PowerDevil_SOURCE_DIR}/daemon/powerdevil_debug.cpp
++     ${CMAKE_CURRENT_BINARY_DIR}/../../daemon/powerdevil_debug.cpp
+      activitypage.cpp
+      activitywidget.cpp
+      ../common/ErrorOverlay.cpp
+diff --git a/kcmodule/common/CMakeLists.txt b/kcmodule/common/CMakeLists.txt
+index ca483fa7..400b7746 100644
+--- a/kcmodule/common/CMakeLists.txt
++++ b/kcmodule/common/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ add_definitions(-DTRANSLATION_DOMAIN=\"libpowerdevilcommonconfig\")
+ 
+ set( powerdevil_config_common_private_SRCS
+-    ${PowerDevil_SOURCE_DIR}/daemon/powerdevil_debug.cpp
++    ${CMAKE_CURRENT_BINARY_DIR}/../../daemon/powerdevil_debug.cpp
+     actionconfigwidget.cpp
+     actioneditwidget.cpp
+     ErrorOverlay.cpp
+diff --git a/kcmodule/profiles/CMakeLists.txt b/kcmodule/profiles/CMakeLists.txt
+index ac5c96e0..32279089 100644
+--- a/kcmodule/profiles/CMakeLists.txt
++++ b/kcmodule/profiles/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ add_definitions(-DTRANSLATION_DOMAIN=\"powerdevilprofilesconfig\")
+ 
+ set( kcm_powerdevil_profiles_SRCS
+-     ${PowerDevil_SOURCE_DIR}/daemon/powerdevil_debug.cpp
++     ${CMAKE_CURRENT_BINARY_DIR}/../../daemon/powerdevil_debug.cpp
+      EditPage.cpp
+      ${PowerDevil_SOURCE_DIR}/daemon/powerdevilprofilegenerator.cpp
+ )
+diff --git a/powerdevil.categories b/powerdevil.categories
+new file mode 100644
+index 00000000..3147de54
+--- /dev/null
++++ b/powerdevil.categories
+@@ -0,0 +1 @@
++org.kde.powerdevil Powerdevil DEFAULT_SEVERITY [WARNING] IDENTIFIER [POWERDEVIL]
+-- 
+2.25.4
+
diff --git a/pkgs/desktops/plasma-5/plasma-desktop/default.nix b/pkgs/desktops/plasma-5/plasma-desktop/default.nix
index 4183b38ba49..8ae48b21f7b 100644
--- a/pkgs/desktops/plasma-5/plasma-desktop/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-desktop/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
 
   boost, fontconfig, ibus, libXcursor, libXft, libcanberra_kde, libpulseaudio,
@@ -12,7 +12,7 @@
   kdeclarative, kded, kdelibs4support, kemoticons, kglobalaccel, ki18n,
   kitemmodels, knewstuff, knotifications, knotifyconfig, kpeople, krunner,
   kscreenlocker, ksysguard, kwallet, kwin, phonon, plasma-framework,
-  plasma-workspace, xf86inputlibinput
+  plasma-workspace, qqc2-desktop-style, xf86inputlibinput
 }:
 
 mkDerivation {
@@ -27,10 +27,13 @@ mkDerivation {
     attica baloo kactivities kactivities-stats kauth kcmutils kdbusaddons
     kdeclarative kded kdelibs4support kemoticons kglobalaccel ki18n kitemmodels
     knewstuff knotifications knotifyconfig kpeople krunner kscreenlocker
-    ksysguard kwallet kwin plasma-framework plasma-workspace
+    ksysguard kwallet kwin plasma-framework plasma-workspace qqc2-desktop-style
   ];
 
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./hwclock-path.patch
+    ./tzdir.patch
+  ];
   postPatch = ''
     sed '1i#include <cmath>' -i kcms/touchpad/src/backends/x11/synapticstouchpad.cpp
   '';
diff --git a/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch b/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch
index a46212af10f..6c04081ae29 100644
--- a/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch
+++ b/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch
@@ -17,7 +17,7 @@ Index: plasma-desktop-5.8.5/kcms/dateandtime/helper.cpp
  
  void ClockHelper::toHwclock()
  {
--    QString hwclock = KStandardDirs::findExe(QStringLiteral("hwclock"), exePath);
+-    QString hwclock = QStandardPaths::findExecutable(QStringLiteral("hwclock"), exePath.split(QLatin1Char(':')));
 +    QString hwclock = QLatin1String(NIXPKGS_HWCLOCK);
      if (!hwclock.isEmpty()) {
          KProcess::execute(hwclock, QStringList() << QStringLiteral("--systohc"));
diff --git a/pkgs/desktops/plasma-5/plasma-desktop/series b/pkgs/desktops/plasma-5/plasma-desktop/series
deleted file mode 100644
index 26517ba9356..00000000000
--- a/pkgs/desktops/plasma-5/plasma-desktop/series
+++ /dev/null
@@ -1,2 +0,0 @@
-hwclock-path.patch
-tzdir.patch
diff --git a/pkgs/desktops/plasma-5/plasma-pa.nix b/pkgs/desktops/plasma-5/plasma-pa.nix
index b60b5298d6d..e29df104f3c 100644
--- a/pkgs/desktops/plasma-5/plasma-pa.nix
+++ b/pkgs/desktops/plasma-5/plasma-pa.nix
@@ -1,15 +1,20 @@
 {
   mkDerivation,
   extra-cmake-modules, kdoctools,
-  gconf, glib, kconfigwidgets, kcoreaddons, kdeclarative, kglobalaccel, ki18n,
-  libcanberra-gtk3, libpulseaudio, plasma-framework, qtdeclarative, kwindowsystem
+  kconfigwidgets, kcoreaddons, kdeclarative, kglobalaccel, ki18n, kwindowsystem, plasma-framework,
+  qtdeclarative,
+  gconf, glib, libcanberra-gtk3, libpulseaudio, sound-theme-freedesktop
 }:
 
 mkDerivation {
   name = "plasma-pa";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    gconf glib kconfigwidgets kcoreaddons kdeclarative kglobalaccel ki18n
-    libcanberra-gtk3 libpulseaudio plasma-framework qtdeclarative kwindowsystem
+    gconf glib libcanberra-gtk3 libpulseaudio sound-theme-freedesktop
+
+    kconfigwidgets kcoreaddons kdeclarative kglobalaccel ki18n plasma-framework
+    kwindowsystem
+
+    qtdeclarative
   ];
 }
diff --git a/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch b/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
index d230e1270be..12080092629 100644
--- a/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
+++ b/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
@@ -1,4 +1,4 @@
-From 1796822e4c97062b919a596ce13db68e2c46c7e8 Mon Sep 17 00:00:00 2001
+From 6477e377fcca39c07ef5f91a55084d7d74715d00 Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
 Date: Tue, 28 Jan 2020 05:00:53 -0600
 Subject: [PATCH 1/2] startkde
@@ -6,11 +6,11 @@ Subject: [PATCH 1/2] startkde
 ---
  startkde/startplasma-waylandsession.cpp |  2 +-
  startkde/startplasma-x11.cpp            |  2 +-
- startkde/startplasma.cpp                | 32 ++++++++-----------------
- 3 files changed, 12 insertions(+), 24 deletions(-)
+ startkde/startplasma.cpp                | 24 ++++++++++--------------
+ 3 files changed, 12 insertions(+), 16 deletions(-)
 
 diff --git a/startkde/startplasma-waylandsession.cpp b/startkde/startplasma-waylandsession.cpp
-index 87c71c6..5fc5314 100644
+index 87c71c6b3..5fc53140e 100644
 --- a/startkde/startplasma-waylandsession.cpp
 +++ b/startkde/startplasma-waylandsession.cpp
 @@ -67,7 +67,7 @@ int main(int /*argc*/, char** /*argv*/)
@@ -23,7 +23,7 @@ index 87c71c6..5fc5314 100644
      cleanupX11();
      out << "startplasma-waylandsession: Done.\n";
 diff --git a/startkde/startplasma-x11.cpp b/startkde/startplasma-x11.cpp
-index 3314b62..14cbe29 100644
+index 3314b6283..14cbe29fa 100644
 --- a/startkde/startplasma-x11.cpp
 +++ b/startkde/startplasma-x11.cpp
 @@ -111,7 +111,7 @@ int main(int /*argc*/, char** /*argv*/)
@@ -36,7 +36,7 @@ index 3314b62..14cbe29 100644
      cleanupPlasmaEnvironment();
      cleanupX11();
 diff --git a/startkde/startplasma.cpp b/startkde/startplasma.cpp
-index e0f7004..8ac41fd 100644
+index 4c9f5cef6..5ea4c2cf1 100644
 --- a/startkde/startplasma.cpp
 +++ b/startkde/startplasma.cpp
 @@ -34,7 +34,7 @@ QTextStream out(stderr);
@@ -48,22 +48,7 @@ index e0f7004..8ac41fd 100644
  }
  
  QStringList allServices(const QLatin1String& prefix)
-@@ -184,14 +184,6 @@ void runEnvironmentScripts()
-         }
-     }
-     sourceFiles(scripts);
--
--    // Make sure that the KDE prefix is first in XDG_DATA_DIRS and that it's set at all.
--    // The spec allows XDG_DATA_DIRS to be not set, but X session startup scripts tend
--    // to set it to a list of paths *not* including the KDE prefix if it's not /usr or
--    // /usr/local.
--    if (!qEnvironmentVariableIsSet("XDG_DATA_DIRS")) {
--        qputenv("XDG_DATA_DIRS", KDE_INSTALL_FULL_DATAROOTDIR ":/usr/share:/usr/local/share");
--    }
- }
- 
- 
-@@ -240,15 +232,15 @@ void setupX11()
+@@ -242,15 +242,15 @@ void setupX11()
  //     If the user has overwritten fonts, the cursor font may be different now
  //     so don't move this up.
  
@@ -84,7 +69,7 @@ index e0f7004..8ac41fd 100644
  }
  
  // TODO: Check if Necessary
-@@ -265,11 +257,7 @@ bool syncDBusEnvironment()
+@@ -267,11 +267,7 @@ bool syncDBusEnvironment()
  {
      int exitCode;
      // At this point all environment variables are set, let's send it to the DBus session server to update the activation environment
@@ -97,7 +82,7 @@ index e0f7004..8ac41fd 100644
      return exitCode == 0;
  }
  
-@@ -285,7 +273,7 @@ void setupFontDpi()
+@@ -287,7 +283,7 @@ void setupFontDpi()
      //TODO port to c++?
      const QByteArray input = "Xft.dpi: " + QByteArray::number(fontsCfg.readEntry("forceFontDPI", 0));
      QProcess p;
@@ -106,7 +91,7 @@ index e0f7004..8ac41fd 100644
      p.setProcessChannelMode(QProcess::ForwardedChannels);
      p.write(input);
      p.closeWriteChannel();
-@@ -307,7 +295,7 @@ QProcess* setupKSplash()
+@@ -309,7 +305,7 @@ QProcess* setupKSplash()
          KConfigGroup ksplashCfg = cfg.group("KSplash");
          if (ksplashCfg.readEntry("Engine", QStringLiteral("KSplashQML")) == QLatin1String("KSplashQML")) {
              p = new QProcess;
@@ -115,7 +100,7 @@ index e0f7004..8ac41fd 100644
          }
      }
      return p;
-@@ -329,7 +317,7 @@ bool startKDEInit()
+@@ -331,7 +327,7 @@ bool startKDEInit()
  {
      // We set LD_BIND_NOW to increase the efficiency of kdeinit.
      // kdeinit unsets this variable before loading applications.
@@ -125,5 +110,5 @@ index e0f7004..8ac41fd 100644
          messageBox(QStringLiteral("startkde: Could not start kdeinit5. Check your installation."));
          return false;
 -- 
-2.23.1
+2.25.1
 
diff --git a/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch b/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch
index 8fa9e1d31cf..366707d2703 100644
--- a/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch
+++ b/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch
@@ -1,4 +1,4 @@
-From 7c6f939aea290bc3ec7629f26d02441d1d4bcb8a Mon Sep 17 00:00:00 2001
+From f43f15870f14b8fa17ba0765c0d7e2b225fafc3f 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
@@ -8,15 +8,16 @@ Subject: [PATCH 2/2] absolute-wallpaper-install-dir
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/sddm-theme/theme.conf.cmake b/sddm-theme/theme.conf.cmake
-index ea9a943..c8458ba 100644
+index 8494a5c8a..f723c1e1b 100644
 --- a/sddm-theme/theme.conf.cmake
 +++ b/sddm-theme/theme.conf.cmake
-@@ -2,4 +2,4 @@
+@@ -4,5 +4,5 @@ logo=${KDE_INSTALL_FULL_DATADIR}/sddm/themes/breeze/default-logo.svg
  type=image
  color=#1d99f3
  fontSize=10
--background=${CMAKE_INSTALL_PREFIX}/${WALLPAPER_INSTALL_DIR}/Next/contents/images/5120x2880.png
-+background=${NIXPKGS_BREEZE_WALLPAPERS}/Next/contents/images/5120x2880.png
+-background=${KDE_INSTALL_FULL_WALLPAPERDIR}/Next/contents/images/5120x2880.jpg
++background=${NIXPKGS_BREEZE_WALLPAPERS}/Next/contents/images/5120x2880.jpg
+ needsFullUserModel=false
 -- 
-2.23.1
+2.25.1
 
diff --git a/pkgs/desktops/plasma-5/plasma-workspace/default.nix b/pkgs/desktops/plasma-5/plasma-workspace/default.nix
index 6aa0e3b5738..2c4287f8edf 100644
--- a/pkgs/desktops/plasma-5/plasma-workspace/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-workspace/default.nix
@@ -11,7 +11,8 @@
   kinit, kjsembed, knewstuff, knotifyconfig, kpackage, kpeople, krunner,
   kscreenlocker, ktexteditor, ktextwidgets, kwallet, kwayland, kwin,
   kxmlrpcclient, libkscreen, libksysguard, libqalculate, networkmanager-qt,
-  phonon, plasma-framework, prison, solid, kholidays,
+  phonon, plasma-framework, prison, solid, kholidays, kquickcharts,
+  appstream-qt,
 
   qtgraphicaleffects, qtquickcontrols, qtquickcontrols2, qtscript, qttools,
   qtwayland, qtx11extras,
@@ -31,7 +32,7 @@ mkDerivation {
     knotifyconfig kpackage kpeople krunner kscreenlocker ktexteditor
     ktextwidgets kwallet kwayland kwin kxmlrpcclient libkscreen libksysguard
     libqalculate networkmanager-qt phonon plasma-framework prison solid
-    kholidays
+    kholidays kquickcharts appstream-qt
 
     qtgraphicaleffects qtquickcontrols qtquickcontrols2 qtscript qtwayland qtx11extras
   ];
@@ -47,7 +48,6 @@ mkDerivation {
     ./0002-absolute-wallpaper-install-dir.patch
   ];
 
-
   NIX_CFLAGS_COMPILE = [
     ''-DNIXPKGS_XMESSAGE="${getBin xmessage}/bin/xmessage"''
     ''-DNIXPKGS_XRDB="${getBin xrdb}/bin/xrdb"''
diff --git a/pkgs/desktops/plasma-5/powerdevil.nix b/pkgs/desktops/plasma-5/powerdevil.nix
index e6b2c472bc8..979d69a02f6 100644
--- a/pkgs/desktops/plasma-5/powerdevil.nix
+++ b/pkgs/desktops/plasma-5/powerdevil.nix
@@ -21,11 +21,16 @@ mkDerivation {
   patches = [
     # This fixes an issue where 'DDCA_Feature_List*' cannot be converted to
     # 'DDCA_Feature_List'.
-    # This can be dropped with the next release.
     # https://bugs.kde.org/show_bug.cgi?id=423605
     (fetchpatch {
       url = "https://invent.kde.org/plasma/powerdevil/-/commit/fcb26be2fb279e6ad3b7b814d26a5921d16201eb.patch";
       sha256 = "0gdyaa0nd1c1d6x2h0m933lascm8zm5sikd99wxmkf7hhaby6k2s";
     })
+
+    # Reduce log message spam by setting the default log level to Warning.
+    (fetchpatch {
+      url = "https://invent.kde.org/plasma/powerdevil/-/commit/c7590f9065ec9547b7fabad77a548bbc0c693113.patch";
+      sha256 = "077whhi0jrb3bajx357k7n66hv7nchis8jix0nfc1zjvi9fm6pi2";
+    })
   ];
 }
diff --git a/pkgs/desktops/plasma-5/srcs.nix b/pkgs/desktops/plasma-5/srcs.nix
index fe78f210c17..6f9214ccd60 100644
--- a/pkgs/desktops/plasma-5/srcs.nix
+++ b/pkgs/desktops/plasma-5/srcs.nix
@@ -1,374 +1,390 @@
 # 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.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/bluedevil-5.17.5.tar.xz";
-      sha256 = "22e9c683dfc56a559e652809ade238f8eb0ffb09d5ab042f5cd4b8216f647c09";
-      name = "bluedevil-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/bluedevil-5.18.5.tar.xz";
+      sha256 = "5350efbaee01c78fd451e96bb2aceb7986d45ab05500476d1e95c4e79ec89a66";
+      name = "bluedevil-5.18.5.tar.xz";
     };
   };
   breeze = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/breeze-5.17.5.tar.xz";
-      sha256 = "f89bf857321b18789089efc9271d7bd7b6459a173dd078dd03242775db76c8d7";
-      name = "breeze-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/breeze-5.18.5.tar.xz";
+      sha256 = "1d08dfd24df4a4fcacad1e3759e559e82f6014ba63dc75dc32a24de6cd133563";
+      name = "breeze-5.18.5.tar.xz";
     };
   };
   breeze-grub = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/breeze-grub-5.17.5.tar.xz";
-      sha256 = "591a1d7a510c76a1f2729a61a4d14c0f33db4d1e8ea5dbc87b74f2e7e7e2a2ba";
-      name = "breeze-grub-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/breeze-grub-5.18.5.tar.xz";
+      sha256 = "24c40171601b82d1c7d01eb85d16718a2f46cf23ee792f5524ac89fda3d278b1";
+      name = "breeze-grub-5.18.5.tar.xz";
     };
   };
   breeze-gtk = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/breeze-gtk-5.17.5.tar.xz";
-      sha256 = "6dbd8e7d936840fbaf7016574d07729c9d0791711ad6d371136585ddb8f76e66";
-      name = "breeze-gtk-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/breeze-gtk-5.18.5.tar.xz";
+      sha256 = "41c7e83a28c033903d4fcab3da28a4c74ddb72958e66693a2d2e451f716cb7e9";
+      name = "breeze-gtk-5.18.5.tar.xz";
     };
   };
   breeze-plymouth = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/breeze-plymouth-5.17.5.tar.xz";
-      sha256 = "e95f9eaf04e74383f5e1abe74d999787e408be7a34fd07a4f64e253e35150af0";
-      name = "breeze-plymouth-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/breeze-plymouth-5.18.5.tar.xz";
+      sha256 = "c0d48dc5a02f3236ff657f86ee8cf532cf885a0e8b36bfe79f007e4d5e277281";
+      name = "breeze-plymouth-5.18.5.tar.xz";
     };
   };
   discover = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/discover-5.17.5.tar.xz";
-      sha256 = "986ef367aef59c5a956d4163f987a60cfd3674a300880376ddedc0222769789f";
-      name = "discover-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/discover-5.18.5.tar.xz";
+      sha256 = "d5ce4f4668c50ba9be37e04227db4bbe469e00470c87907f1e217fdcad6e76b6";
+      name = "discover-5.18.5.tar.xz";
     };
   };
   drkonqi = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/drkonqi-5.17.5.tar.xz";
-      sha256 = "756c50f2458a8c564e608ea97244f6b2b3d5fb4a675a8cec29307be1d5ab5457";
-      name = "drkonqi-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/drkonqi-5.18.5.tar.xz";
+      sha256 = "b1a626c4ed2f9de8f8bc3359d8827e7fa6ac17486b8477674e47627fcf6efad1";
+      name = "drkonqi-5.18.5.tar.xz";
     };
   };
   kactivitymanagerd = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kactivitymanagerd-5.17.5.tar.xz";
-      sha256 = "362721c3a9712751fba29cd1f1ef440a1e74561a611f2d171692a4ddc895b3e4";
-      name = "kactivitymanagerd-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kactivitymanagerd-5.18.5.tar.xz";
+      sha256 = "24f32eb4585d427ee62e08a9fa2f057353085c62644d6bec8fb4b2568e507ac7";
+      name = "kactivitymanagerd-5.18.5.tar.xz";
     };
   };
   kde-cli-tools = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kde-cli-tools-5.17.5.tar.xz";
-      sha256 = "d14299ebeaf89854cb89435cfaaa4da1d84bf23a97df23ff8c7f95dae5bec55f";
-      name = "kde-cli-tools-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kde-cli-tools-5.18.5.tar.xz";
+      sha256 = "e3981d1a17111f4e284b787a6e841d7ff47f4fdbca0ad17e105c0a047e5aaaa8";
+      name = "kde-cli-tools-5.18.5.tar.xz";
     };
   };
   kdecoration = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kdecoration-5.17.5.tar.xz";
-      sha256 = "7d8f0128306d436aeba010e47a3dddbcb9fb9fd05ef9308cbad1934914875cd9";
-      name = "kdecoration-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kdecoration-5.18.5.tar.xz";
+      sha256 = "f09856245f2cb08d9013da4c3128b5438f1e2f58af40031eb547ae765f57a9c8";
+      name = "kdecoration-5.18.5.tar.xz";
     };
   };
   kde-gtk-config = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kde-gtk-config-5.17.5.tar.xz";
-      sha256 = "5feff23c756f1fb0ba9ab88c2aed92c0e7c5521c757f5a0cdd057273538f0010";
-      name = "kde-gtk-config-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kde-gtk-config-5.18.5.tar.xz";
+      sha256 = "9d7b1fd8b61f9f99c5a5721ea0227c4562588834a4886d66637f4c092f0e53ab";
+      name = "kde-gtk-config-5.18.5.tar.xz";
     };
   };
   kdeplasma-addons = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kdeplasma-addons-5.17.5.tar.xz";
-      sha256 = "997d6a3542ab1f1fd7fb17580693dc8281ff29b03c82577dbae3fc1ec4cccdb8";
-      name = "kdeplasma-addons-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kdeplasma-addons-5.18.5.tar.xz";
+      sha256 = "1d135a32a7442f79dba4cb4e23221cd2ad1aad36b54fb12bfa91918daf3ff53f";
+      name = "kdeplasma-addons-5.18.5.tar.xz";
     };
   };
   kgamma5 = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kgamma5-5.17.5.tar.xz";
-      sha256 = "3b8fd1539d035d4d39dcde6ca0dd214e6653c98778ac79b9cbf2f7009b155ca9";
-      name = "kgamma5-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kgamma5-5.18.5.tar.xz";
+      sha256 = "3aa89e361646214fb4910409644b941c83a85505d3d8a1d37984598d3e54269f";
+      name = "kgamma5-5.18.5.tar.xz";
     };
   };
   khotkeys = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/khotkeys-5.17.5.tar.xz";
-      sha256 = "cf78b5bfb8568fb4eea592b209bdb79aeac92bd08a580c3b6c08d45dd34a2d56";
-      name = "khotkeys-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/khotkeys-5.18.5.tar.xz";
+      sha256 = "8f02fdf3bbecdc31c305c276fe2b3b2eca6dc10195e65c723ee9148fed81e766";
+      name = "khotkeys-5.18.5.tar.xz";
     };
   };
   kinfocenter = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kinfocenter-5.17.5.tar.xz";
-      sha256 = "679870f10ee6494136d87a897a57a23c2905054d7a83ff11a4e85c204eb9fd9a";
-      name = "kinfocenter-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kinfocenter-5.18.5.tar.xz";
+      sha256 = "a9679bce4cd2d64e6f471c89de6da410237263b02512768f3acd0a4932b12ec5";
+      name = "kinfocenter-5.18.5.tar.xz";
     };
   };
   kmenuedit = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kmenuedit-5.17.5.tar.xz";
-      sha256 = "59beed03298cd9fd6b05d67844794ed6a77be0d1b25b55d5bbcdf72e15e357de";
-      name = "kmenuedit-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kmenuedit-5.18.5.tar.xz";
+      sha256 = "59d998972121662d2835d43ff5be36eca7bf62e66e39fd67b7005e8ef8afd5f6";
+      name = "kmenuedit-5.18.5.tar.xz";
     };
   };
   kscreen = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kscreen-5.17.5.tar.xz";
-      sha256 = "de8a00b33d0254245a53a5c097347aa86709d415754b3e3c675eef8fb4fe5bc0";
-      name = "kscreen-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kscreen-5.18.5.tar.xz";
+      sha256 = "9b6238447a4a38babdff482724ae3d33786b211e8b4224aaadafaad7435f6ba2";
+      name = "kscreen-5.18.5.tar.xz";
     };
   };
   kscreenlocker = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kscreenlocker-5.17.5.tar.xz";
-      sha256 = "078cfaa9f117a985f5c71152bdf4a9f5cb65ef23c0090cfaaccc9539770f138f";
-      name = "kscreenlocker-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kscreenlocker-5.18.5.tar.xz";
+      sha256 = "b4269cd027e1fee721760a22ca5d738d3d98622fa222fcf9e57d2da77a4e18d2";
+      name = "kscreenlocker-5.18.5.tar.xz";
     };
   };
   ksshaskpass = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/ksshaskpass-5.17.5.tar.xz";
-      sha256 = "b09e0d780340fc5a6a65e67a30d08a3f117f31e2dbfbb35579aa4cefb15c3b27";
-      name = "ksshaskpass-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/ksshaskpass-5.18.5.tar.xz";
+      sha256 = "c483c17d6ce2e3dffd54fc812f97b88c32f5def6e8c5e7a526e23f5e7f208cc5";
+      name = "ksshaskpass-5.18.5.tar.xz";
     };
   };
   ksysguard = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/ksysguard-5.17.5.tar.xz";
-      sha256 = "69bc12311dcf363b168a259139d30456ed395ec03b948bd35e992300c7e7bd82";
-      name = "ksysguard-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/ksysguard-5.18.5.tar.xz";
+      sha256 = "4acb352698b612a21a5eccf22042ab46265d50bbf3aa85844bbca762a64c9e2f";
+      name = "ksysguard-5.18.5.tar.xz";
     };
   };
   kwallet-pam = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kwallet-pam-5.17.5.tar.xz";
-      sha256 = "c829c7a44408e58beb87c71f5c70bccd349d285c3fcefb16df98bf2f29357fe9";
-      name = "kwallet-pam-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kwallet-pam-5.18.5.tar.xz";
+      sha256 = "bc4fe3dde503645d6233c3932d3cf74a7f5bf7acefb96bd6dbd224c8919d841a";
+      name = "kwallet-pam-5.18.5.tar.xz";
     };
   };
   kwayland-integration = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kwayland-integration-5.17.5.tar.xz";
-      sha256 = "818b4e14611e26f297ef60427d399edc458a44e113bc092390fa65ecababcedb";
-      name = "kwayland-integration-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kwayland-integration-5.18.5.tar.xz";
+      sha256 = "82d6943d79a9a2a9bce10623adb2c9af396a2dcf258a723bb349aafbde20e6d5";
+      name = "kwayland-integration-5.18.5.tar.xz";
     };
   };
   kwin = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kwin-5.17.5.tar.xz";
-      sha256 = "8517adaf8270d783aea7b3886d86b5abed6a5ec2b5c78b632479597d956baadc";
-      name = "kwin-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kwin-5.18.5.tar.xz";
+      sha256 = "ca39c63fd740432e95490031fd9d5ac003da034582014fa41c2be2b89627ddf8";
+      name = "kwin-5.18.5.tar.xz";
     };
   };
   kwrited = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kwrited-5.17.5.tar.xz";
-      sha256 = "ca22b1fa3e657fa2e58bf0c9dc1ebff3be8c0e003750223e7a7c5932d5b90823";
-      name = "kwrited-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kwrited-5.18.5.tar.xz";
+      sha256 = "45ffa31d3d141ce453fb09fd823d7edd8e6c782b353bce22b8c879ad794fd1fe";
+      name = "kwrited-5.18.5.tar.xz";
     };
   };
   libkscreen = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/libkscreen-5.17.5.tar.xz";
-      sha256 = "aa186e5751287701daec4d036aba776a911e4b84ca7eea44dc5fb531875afd94";
-      name = "libkscreen-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/libkscreen-5.18.5.tar.xz";
+      sha256 = "a962319000324200ec1abe3c58b1b8ab71ed4cc7c88a3c7e03a1c8eca86c287c";
+      name = "libkscreen-5.18.5.tar.xz";
     };
   };
   libksysguard = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/libksysguard-5.17.5.tar.xz";
-      sha256 = "f5d237af554d65740a28360e6d8fa39d4912239c5f21288846b1c934897a7e14";
-      name = "libksysguard-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/libksysguard-5.18.5.tar.xz";
+      sha256 = "d4d7030a2869a546a211844aa158dcef3598386cc035a8655529938ba102440b";
+      name = "libksysguard-5.18.5.tar.xz";
     };
   };
   milou = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/milou-5.17.5.tar.xz";
-      sha256 = "b89796e34cc8b6d6d4196169e814249f7b75c1c15763e0b4c1da5c97ccc2c8cf";
-      name = "milou-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/milou-5.18.5.tar.xz";
+      sha256 = "7ec763833c025aa719d1e25f3c5c1c8b6c934a48bf346517e94660e09d8582b2";
+      name = "milou-5.18.5.tar.xz";
     };
   };
   oxygen = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/oxygen-5.17.5.tar.xz";
-      sha256 = "58954374a4b9067365ee5d50b32b1986b2e7dd31e73cbf79fda8d978949943be";
-      name = "oxygen-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/oxygen-5.18.5.tar.xz";
+      sha256 = "479bdfa80b3f2216075470ab4be1e3159a17620870acf276144b9639134609f8";
+      name = "oxygen-5.18.5.tar.xz";
     };
   };
   plasma-browser-integration = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-browser-integration-5.17.5.tar.xz";
-      sha256 = "07bc4285991ab43830873a12b8c07f60e4faea1ec81121db783c425f18a4f87d";
-      name = "plasma-browser-integration-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-browser-integration-5.18.5.tar.xz";
+      sha256 = "3a087a836657b5304e2e0ef9ebefb84ce1f896bfbfc5dbf948d4b3eb7b709383";
+      name = "plasma-browser-integration-5.18.5.tar.xz";
     };
   };
   plasma-desktop = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-desktop-5.17.5.tar.xz";
-      sha256 = "7f741ab026989bdcc68701955fc290d5ead38bf4bc310f18a2f32c64b411ab04";
-      name = "plasma-desktop-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-desktop-5.18.5.tar.xz";
+      sha256 = "aeb106018fd90da79c8a3c444d880282846a842029b1223e7830db2d4b42df9f";
+      name = "plasma-desktop-5.18.5.tar.xz";
     };
   };
   plasma-integration = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-integration-5.17.5.tar.xz";
-      sha256 = "169206bebd790d2fee49cec621c46f6f64a8e20ee3e56bf16ee7373f61cad959";
-      name = "plasma-integration-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-integration-5.18.5.tar.xz";
+      sha256 = "c99b987efb2ab965cc2a55793ef94c7ccb2152ca5d75956a40ec99261ad4b870";
+      name = "plasma-integration-5.18.5.tar.xz";
+    };
+  };
+  plasma-nano = {
+    version = "5.18.5";
+    src = fetchurl {
+      url = "${mirror}/stable/plasma/5.18.5/plasma-nano-5.18.5.tar.xz";
+      sha256 = "d2f29b05894573517cb3336088e102d3604b1c2735e9bbe605119f559f0c6341";
+      name = "plasma-nano-5.18.5.tar.xz";
     };
   };
   plasma-nm = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-nm-5.17.5.tar.xz";
-      sha256 = "2165e47a0654d17735abc97aec287b46b52a2eafccc3591b667ea2755b731255";
-      name = "plasma-nm-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-nm-5.18.5.tar.xz";
+      sha256 = "1e091d01993708220f89501bb8a289279bf527d0593fd9e4b9223e6e8caf9aaa";
+      name = "plasma-nm-5.18.5.tar.xz";
     };
   };
   plasma-pa = {
-    version = "5.17.5";
+    version = "5.18.5";
+    src = fetchurl {
+      url = "${mirror}/stable/plasma/5.18.5/plasma-pa-5.18.5.tar.xz";
+      sha256 = "28765c07f584e7688a85c9761155e606440936de2ebb678917dac2c85f5d0209";
+      name = "plasma-pa-5.18.5.tar.xz";
+    };
+  };
+  plasma-phone-components = {
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-pa-5.17.5.tar.xz";
-      sha256 = "933c6ab1fda52b336a157a48b1ea64b81fd1d84ca08a40a52bfae276cca2bf23";
-      name = "plasma-pa-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-phone-components-5.18.5.tar.xz";
+      sha256 = "d0c091367ae07c71457a0c03d1023ac48d8665385a6a1b0e32f6ae7ad1fa7070";
+      name = "plasma-phone-components-5.18.5.tar.xz";
     };
   };
   plasma-sdk = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-sdk-5.17.5.tar.xz";
-      sha256 = "ff736029b1ae5773991db06f5827d9dcbd8e7a4e9a430c9014c35ddee2c55314";
-      name = "plasma-sdk-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-sdk-5.18.5.tar.xz";
+      sha256 = "5f399231d16d62f9880f953891477f74e0b1f7b931448a4b0fbb97f37acd2fe5";
+      name = "plasma-sdk-5.18.5.tar.xz";
     };
   };
   plasma-tests = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-tests-5.17.5.tar.xz";
-      sha256 = "1b566b7118a5c8d1b25078d331a6bc77f48781010fbd3425d85b137811218982";
-      name = "plasma-tests-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-tests-5.18.5.tar.xz";
+      sha256 = "3251ea30cb3c62de9bba2deb152370ea9e0e56b7506efd655888f1892c18413a";
+      name = "plasma-tests-5.18.5.tar.xz";
     };
   };
   plasma-thunderbolt = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-thunderbolt-5.17.5.tar.xz";
-      sha256 = "3743f9841d269d51f1b1419e24d5cd1b26a0ba5a90e76b531328a8cc43184382";
-      name = "plasma-thunderbolt-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-thunderbolt-5.18.5.tar.xz";
+      sha256 = "c61dc7abe350ead15ca4d6111606aaf19773c38a0307ae8a7d8a7c60b82be5d1";
+      name = "plasma-thunderbolt-5.18.5.tar.xz";
     };
   };
   plasma-vault = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-vault-5.17.5.tar.xz";
-      sha256 = "3e5c6b4dd6c1122b6a221205da506881959ab905e467b74b0536e7f5fe130d71";
-      name = "plasma-vault-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-vault-5.18.5.tar.xz";
+      sha256 = "cae2713823e8c59c7a2beb96d362a15024fe260cf10419ba037e8a798f3c1b41";
+      name = "plasma-vault-5.18.5.tar.xz";
     };
   };
   plasma-workspace = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-workspace-5.17.5.tar.xz";
-      sha256 = "764488e66d52bc3017efb2c1471f57196aa50fbfa3a80637bf48f24955cfba88";
-      name = "plasma-workspace-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-workspace-5.18.5.tar.xz";
+      sha256 = "14e82033be745f4db46a70d319e2c86012295ea31056092bc974004189b92354";
+      name = "plasma-workspace-5.18.5.tar.xz";
     };
   };
   plasma-workspace-wallpapers = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-workspace-wallpapers-5.17.5.tar.xz";
-      sha256 = "8a28ef67b65c340d40ff8f5bfc333ead68e6d8c9e410769c43af847ced9b4ca9";
-      name = "plasma-workspace-wallpapers-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-workspace-wallpapers-5.18.5.tar.xz";
+      sha256 = "f8da3bd7b97a9944639ed0860303b8a7a008905246313e1983367810a3a84d6d";
+      name = "plasma-workspace-wallpapers-5.18.5.tar.xz";
     };
   };
   plymouth-kcm = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plymouth-kcm-5.17.5.tar.xz";
-      sha256 = "bbd6994f60ed9d63b4e4dd0abe78bf1f9c14b8ecce8ba4355d16cd52a0a86528";
-      name = "plymouth-kcm-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plymouth-kcm-5.18.5.tar.xz";
+      sha256 = "e8f75dd8c8a45cd706a0a6e62826d1eb4fff9c3912cbaadba8c06e9de915d2e3";
+      name = "plymouth-kcm-5.18.5.tar.xz";
     };
   };
   polkit-kde-agent = {
-    version = "1-5.17.5";
+    version = "1-5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/polkit-kde-agent-1-5.17.5.tar.xz";
-      sha256 = "a79d76a2f584f6567639228fde6f75b3960484f7a65cfc69b6acb6df1de53f5d";
-      name = "polkit-kde-agent-1-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/polkit-kde-agent-1-5.18.5.tar.xz";
+      sha256 = "5e1733cb51c826c6215da4fbbc9c9568240275cf86b9922cd7a643d192a75a91";
+      name = "polkit-kde-agent-1-5.18.5.tar.xz";
     };
   };
   powerdevil = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/powerdevil-5.17.5.tar.xz";
-      sha256 = "27904361e85e1267d933d8f0a0d3be4dc712099ed2eb3cf90959209a4443dd82";
-      name = "powerdevil-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/powerdevil-5.18.5.tar.xz";
+      sha256 = "e000185ee61bff81fe28896a7d6353746c82c7f4d2626792fd22d34b5f49f548";
+      name = "powerdevil-5.18.5.tar.xz";
     };
   };
   sddm-kcm = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/sddm-kcm-5.17.5.tar.xz";
-      sha256 = "e85fb9e014439e8c0e73638112139561aff9a9f71f26c3eafedff5a98a07b33b";
-      name = "sddm-kcm-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/sddm-kcm-5.18.5.tar.xz";
+      sha256 = "cc99c185d701acc7442f33ef17b2396894dcf164f3f583c25105ac3f2528c33b";
+      name = "sddm-kcm-5.18.5.tar.xz";
     };
   };
   systemsettings = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/systemsettings-5.17.5.tar.xz";
-      sha256 = "50fa4d7866639995a6859446fc6a02a73ae05203e8f2ed31221e232ed3491eaf";
-      name = "systemsettings-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/systemsettings-5.18.5.tar.xz";
+      sha256 = "cde5b714261aaa54f937887657c3d3e74814c5447448b989159ee6035be4783b";
+      name = "systemsettings-5.18.5.tar.xz";
     };
   };
   user-manager = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/user-manager-5.17.5.tar.xz";
-      sha256 = "10ed3196063c7dfed3b3f25dd199a48ca39fa86db5d0126ec84a543b1c212f0d";
-      name = "user-manager-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/user-manager-5.18.5.tar.xz";
+      sha256 = "741d293947fa3fb3966f047bab121597bf1071be010684daff4a91626cf54484";
+      name = "user-manager-5.18.5.tar.xz";
     };
   };
   xdg-desktop-portal-kde = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/xdg-desktop-portal-kde-5.17.5.tar.xz";
-      sha256 = "a993bd4b86a44c8237a3f4957c2594aa2ca8916204ad866f8af32f7df34740f6";
-      name = "xdg-desktop-portal-kde-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/xdg-desktop-portal-kde-5.18.5.tar.xz";
+      sha256 = "807452708a0318b8e21b43f9ec7e016d1de51cac5d8714d70c577bb6f3976224";
+      name = "xdg-desktop-portal-kde-5.18.5.tar.xz";
     };
   };
 }
diff --git a/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix b/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
index 1e04eb1e2b0..c03c6a89161 100644
--- a/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
+++ b/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
@@ -1,15 +1,18 @@
 {
   mkDerivation,
   extra-cmake-modules, gettext, kdoctools, python,
+  cups, epoxy, mesa, pcre, pipewire,
   kcoreaddons, knotifications, kwayland, kwidgetsaddons, kwindowsystem,
-  cups, pcre, pipewire, kio
+  kirigami2, kdeclarative, plasma-framework, kio
 }:
 
 mkDerivation {
   name = "xdg-desktop-portal-kde";
   nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python ];
   buildInputs = [
-    cups pcre pipewire kio
-    kcoreaddons knotifications kwayland kwidgetsaddons kwindowsystem
+    cups epoxy mesa pcre pipewire
+
+    kio kcoreaddons knotifications kwayland kwidgetsaddons kwindowsystem
+    kirigami2 kdeclarative plasma-framework
   ];
 }
diff --git a/pkgs/desktops/xfce/applications/xfce4-volumed/default.nix b/pkgs/desktops/xfce/applications/xfce4-volumed/default.nix
deleted file mode 100644
index aec898161ff..00000000000
--- a/pkgs/desktops/xfce/applications/xfce4-volumed/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, makeWrapper
-, gstreamer, gtk2, gst-plugins-base, libnotify
-, keybinder, xfconf, xfce
-}:
-
-let
-  category = "apps";
-
-  # The usual Gstreamer plugins package has a zillion dependencies
-  # that we don't need for a simple mixer, so build a minimal package.
-  gst_plugins_minimal = gst-plugins-base.override {
-    minimalDeps = true;
-  };
-
-in
-
-stdenv.mkDerivation rec {
-  pname  = "xfce4-volumed";
-  version = "0.1.13";
-
-  src = fetchurl {
-    url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "1aa0a1sbf9yzi7bc78kw044m0xzg1li3y4w9kf20wqv5kfjs7v2c";
-  };
-
-  buildInputs =
-    [ gstreamer gst_plugins_minimal gtk2
-      keybinder xfconf libnotify
-    ];
-
-  nativeBuildInputs = [ pkgconfig makeWrapper ];
-
-  postInstall =
-    ''
-      wrapProgram "$out/bin/xfce4-volumed" \
-        --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
-    '';
-
-  passthru.updateScript = xfce.updateScript {
-    inherit pname version;
-    attrPath = "xfce.${pname}";
-    versionLister = xfce.archiveLister category pname;
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://www.xfce.org/projects/xfce4-volumed"; # referenced but inactive
-    description = "A volume keys control daemon for the Xfce desktop environment";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.abbradar ];
-  };
-}
diff --git a/pkgs/desktops/xfce/core/tumbler/default.nix b/pkgs/desktops/xfce/core/tumbler/default.nix
index 1a615b8f66a..cb6f90e5b96 100644
--- a/pkgs/desktops/xfce/core/tumbler/default.nix
+++ b/pkgs/desktops/xfce/core/tumbler/default.nix
@@ -14,9 +14,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "tumbler";
-  version = "0.2.8";
+  version = "0.2.9";
 
-  sha256 = "1y9sphaz3izal96v53lps692xxzp5pad1d09kxsmmpm7pic4n1r2";
+  sha256 = "0b3mli40msv35qn67c1m9rn5bigj6ls10l08qk7fa3fwvzl49hmw";
 
   buildInputs = [
     ffmpegthumbnailer
diff --git a/pkgs/desktops/xfce/core/xfwm4/default.nix b/pkgs/desktops/xfce/core/xfwm4/default.nix
index 1d119014cab..7ab12461046 100644
--- a/pkgs/desktops/xfce/core/xfwm4/default.nix
+++ b/pkgs/desktops/xfce/core/xfwm4/default.nix
@@ -5,9 +5,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfwm4";
-  version = "4.14.2";
+  version = "4.14.5";
 
-  sha256 = "1zzc4q1j55hjljksmlyghk58bx7kxyq3scihsr9zgyqc24ww1ks3";
+  sha256 = "0xxprhs8g00ysrl25y6z9agih6wb7n29v5f5m2icaz7yjvj1k9iv";
 
   nativeBuildInputs = [ exo librsvg ];
 
diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix
index 579e863bf9c..09df8d79dca 100644
--- a/pkgs/desktops/xfce/default.nix
+++ b/pkgs/desktops/xfce/default.nix
@@ -88,9 +88,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   xfdashboard = callPackage ./applications/xfdashboard {};
 
-  # TODO: this repo is inactive for many years. Remove?
-  xfce4-volumed = callPackage ./applications/xfce4-volumed { };
-
   xfce4-volumed-pulse = callPackage ./applications/xfce4-volumed-pulse { };
 
   xfce4-notifyd = callPackage ./applications/xfce4-notifyd { };
@@ -175,7 +172,6 @@ lib.makeScope pkgs.newScope (self: with self; {
   xfce4notifyd = xfce4-notifyd;
   xfce4taskmanager = xfce4-taskmanager;
   xfce4terminal = xfce4-terminal;
-  xfce4volumed = xfce4-volumed;
   xfce4volumed_pulse = xfce4-volumed-pulse;
   xfce4icontheme = xfce4-icon-theme;
   xfwm4themes = xfwm4-themes;
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
index 00b497c918d..e9cfbd50f91 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
@@ -6,11 +6,11 @@ in
 
 stdenv.mkDerivation rec {
   pname  = "xfce4-timer-plugin";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchurl {
     url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "16vypwwjwfk7nn4n16rfgn0z78jqrmbgxmc1r46269lrwd1m6kif";
+    sha256 = "1qr4m3n2l3rvsizsr3h7fyfajszfalqm7rhvjx2yjj8r3f8x4ljb";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
index 859a580bb70..ac9f22a9a0c 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
@@ -3,9 +3,9 @@
 mkXfceDerivation {
   category = "panel-plugins";
   pname = "xfce4-whiskermenu-plugin";
-  version = "2.4.4";
+  version = "2.4.6";
   rev-prefix = "v";
-  sha256 = "08b82j9xp3vzjlc740s9svcjkbsal71ggp23y7dvjqppch7sdxzw";
+  sha256 = "03asfaxqbhawzb3870az7qgid5y7cg3ip8h6r4z8kavcd0b7x4ii";
 
   nativeBuildInputs = [ cmake ];
 
diff --git a/pkgs/development/androidndk-pkgs/default.nix b/pkgs/development/androidndk-pkgs/default.nix
index 7bb779d1d13..10819d49ed3 100644
--- a/pkgs/development/androidndk-pkgs/default.nix
+++ b/pkgs/development/androidndk-pkgs/default.nix
@@ -30,4 +30,34 @@
       androidndk = androidComposition.ndk-bundle;
       targetAndroidndkPkgs = targetPackages.androidndkPkgs_18b;
     };
+
+  "21" =
+    let
+      ndkVersion = "21.0.6113669";
+
+      buildAndroidComposition = buildPackages.buildPackages.androidenv.composeAndroidPackages {
+        includeNDK = true;
+        inherit ndkVersion;
+      };
+
+      androidComposition = androidenv.composeAndroidPackages {
+        includeNDK = true;
+        inherit ndkVersion;
+      };
+    in
+    import ./androidndk-pkgs.nix {
+      inherit (buildPackages)
+        makeWrapper;
+      inherit (pkgs)
+        stdenv
+        runCommand wrapBintoolsWith wrapCCWith;
+      # buildPackages.foo rather than buildPackages.buildPackages.foo would work,
+      # but for splicing messing up on infinite recursion for the variants we
+      # *dont't* use. Using this workaround, but also making a test to ensure
+      # these two really are the same.
+      buildAndroidndk = buildAndroidComposition.ndk-bundle;
+      androidndk = androidComposition.ndk-bundle;
+      targetAndroidndkPkgs = targetPackages.androidndkPkgs_21;
+    };
+
 }
diff --git a/pkgs/development/arduino/arduino-cli/default.nix b/pkgs/development/arduino/arduino-cli/default.nix
new file mode 100644
index 00000000000..0fe9ed435d1
--- /dev/null
+++ b/pkgs/development/arduino/arduino-cli/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, buildGoModule, fetchFromGitHub, buildFHSUserEnv }:
+
+let
+
+  pkg = buildGoModule rec {
+    pname = "arduino-cli";
+    version = "0.11.0";
+
+    src = fetchFromGitHub {
+      owner = "arduino";
+      repo = pname;
+      rev = version;
+      sha256 = "0k9091ci7n7hl44nyzlxkmbwibgrrh9s6z7pgyj9v0mzxjmgz8h2";
+    };
+
+    subPackages = [ "." ];
+
+    vendorSha256 = "1qybym95a38az8lk8bqc53ngn08hijckajv8v2giifc4q7sb17d2";
+
+    doCheck = false;
+
+    buildFlagsArray = [
+      "-ldflags=-s -w -X github.com/arduino/arduino-cli/version.versionString=${version} -X github.com/arduino/arduino-cli/version.commit=unknown"
+    ] ++ stdenv.lib.optionals stdenv.isLinux [ "-extldflags '-static'" ];
+
+    meta = with stdenv.lib; {
+      inherit (src.meta) homepage;
+      description = "Arduino from the command line";
+      license = licenses.gpl3Only;
+      maintainers = with maintainers; [ ryantm ];
+    };
+
+  };
+
+# buildFHSUserEnv is needed because the arduino-cli downloads compiler
+# toolchains from the internet that have their interpreters pointed at
+# /lib64/ld-linux-x86-64.so.2
+in buildFHSUserEnv {
+  inherit (pkg) name meta;
+
+  runScript = "${pkg.outPath}/bin/arduino-cli";
+
+  extraInstallCommands = ''
+    mv $out/bin/$name $out/bin/arduino-cli
+  '';
+}
diff --git a/pkgs/development/arduino/arduino-core/default.nix b/pkgs/development/arduino/arduino-core/default.nix
index 2a7387c4378..1c537edd0b4 100644
--- a/pkgs/development/arduino/arduino-core/default.nix
+++ b/pkgs/development/arduino/arduino-core/default.nix
@@ -68,13 +68,14 @@ let
     xorg.libXxf86vm
     zlib
   ];
-  teensy_architecture =
-    lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") "linux64"
-    + lib.optionalString (stdenv.hostPlatform.system == "i686-linux") "linux32"
-    + lib.optionalString (stdenv.hostPlatform.system == "aarch64-linux") "linuxaarch64"
-    + lib.optionalString (builtins.match "armv[67]l-linux" stdenv.hostPlatform.system != null) "linuxarm";
-  flavor = ( if withTeensyduino then "teensyduino" else "arduino")
-    + stdenv.lib.optionalString (!withGui) "-core";
+  teensy_architecture = if stdenv.hostPlatform.isx86_32 then "linux32"
+                        else if stdenv.hostPlatform.isx86_64 then "linux64"
+                        else if stdenv.hostPlatform.isAarch64 then "linuxaarch64"
+                        else if stdenv.hostPlatform.isAarch32 then "linuxarm"
+                        else throw "${stdenv.hostPlatform.system} is not supported in teensy";
+
+  flavor = (if withTeensyduino then "teensyduino" else "arduino")
+             + stdenv.lib.optionalString (!withGui) "-core";
 in
 stdenv.mkDerivation rec {
   version = "1.8.12";
@@ -90,28 +91,23 @@ stdenv.mkDerivation rec {
   teensyduino_version = "151";
   teensyduino_src = fetchurl {
     url = "https://www.pjrc.com/teensy/td_${teensyduino_version}/TeensyduinoInstall.${teensy_architecture}";
-    sha256 =
-      lib.optionalString (teensy_architecture == "linux64")
-        "0q8mw9bm2vb5vwa98gwcs6ad164i98hc1qqh2qw029yhwm599pn0"
-      + lib.optionalString (teensy_architecture == "linux32")
-        "1rq6sx0048ab200jy0cz5vznwxi99avidngj42rjnh7kcfas5c4m"
-      + lib.optionalString (teensy_architecture == "linuxaarch64")
-        "09k78dycn1vcpcx37c1dak8bgjv8gs34l89n9r9s0c3rqmv3pg4x"
-      + lib.optionalString (teensy_architecture == "linuxarm")
-        "19j55bq36040rpdpfxcqimda76rkbx137q15bs8nvxj13wrbl4ip";
+    sha256 = {
+      linux64 = "0q8mw9bm2vb5vwa98gwcs6ad164i98hc1qqh2qw029yhwm599pn0";
+      linux32 = "1rq6sx0048ab200jy0cz5vznwxi99avidngj42rjnh7kcfas5c4m";
+      linuxarm = "19j55bq36040rpdpfxcqimda76rkbx137q15bs8nvxj13wrbl4ip";
+      linuxaarch64 = "09k78dycn1vcpcx37c1dak8bgjv8gs34l89n9r9s0c3rqmv3pg4x";
+    }.${teensy_architecture} or (throw "No arduino binaries for ${teensy_architecture}");
   };
   # Used because teensyduino requires jars be a specific size
   arduino_dist_src = fetchurl {
     url = "http://downloads.arduino.cc/arduino-${version}-${teensy_architecture}.tar.xz";
     sha256 =
-      lib.optionalString (teensy_architecture == "linux64")
-        "128f34kkxz7ab6ir5mqyr8d1mgxig8f9jygwxy44pdnq2rk6gmh9"
-      + lib.optionalString (teensy_architecture == "linux32")
-        "11n85lwsn1w4ysfacyw08v85s3f3zvl8j8ac7rld19yxgjslvisi"
-      + lib.optionalString (teensy_architecture == "linuxaarch64")
-        "04v2nhyjhahml6nmz23bfb63c0an4a7zxgcgxqqq442i8vd304wa"
-      + lib.optionalString (teensy_architecture == "linuxarm")
-        "1k8yjivaydm6y16mplrjyblgx7l0wjzm3mjxh5saxrjq7drswmxx";
+      {
+        linux64 = "128f34kkxz7ab6ir5mqyr8d1mgxig8f9jygwxy44pdnq2rk6gmh9";
+        linux32 = "11n85lwsn1w4ysfacyw08v85s3f3zvl8j8ac7rld19yxgjslvisi";
+        linuxarm = "1k8yjivaydm6y16mplrjyblgx7l0wjzm3mjxh5saxrjq7drswmxx";
+        linuxaarch64 = "04v2nhyjhahml6nmz23bfb63c0an4a7zxgcgxqqq442i8vd304wa";
+      }.${teensy_architecture} or (throw "No arduino binaries for ${teensy_architecture}");
   };
 
 
diff --git a/pkgs/development/arduino/platformio/chrootenv.nix b/pkgs/development/arduino/platformio/chrootenv.nix
index 01a2fb873aa..62a1d190a00 100644
--- a/pkgs/development/arduino/platformio/chrootenv.nix
+++ b/pkgs/development/arduino/platformio/chrootenv.nix
@@ -1,4 +1,4 @@
-{ lib, buildFHSUserEnv }:
+{ lib, buildFHSUserEnv, fetchFromGitHub }:
 
 let
   pio-pkgs = pkgs:
@@ -19,6 +19,14 @@ let
       platformio
     ]);
 
+  src = fetchFromGitHub {
+    owner = "platformio";
+    repo = "platformio-core";
+    rev = "v4.3.4";
+    sha256 = "0vf2j79319ypr4yrdmx84853igkb188sjfvlxgw06rlsvsm3kacq";
+  };
+
+
 in buildFHSUserEnv {
   name = "platformio";
 
@@ -34,7 +42,10 @@ in buildFHSUserEnv {
   };
 
   extraInstallCommands = ''
+    mkdir -p $out/lib/udev/rules.d
+
     ln -s $out/bin/platformio $out/bin/pio
+    ln -s ${src}/scripts/99-platformio-udev.rules $out/lib/udev/rules.d/99-platformio-udev.rules
   '';
 
   runScript = "platformio";
diff --git a/pkgs/development/arduino/platformio/core.nix b/pkgs/development/arduino/platformio/core.nix
index d83013dbbde..891d613da51 100644
--- a/pkgs/development/arduino/platformio/core.nix
+++ b/pkgs/development/arduino/platformio/core.nix
@@ -82,6 +82,7 @@ in buildPythonApplication rec {
   patches = [
     ./fix-searchpath.patch
     ./use-local-spdx-license-list.patch
+    ./missing-udev-rules-nixos.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/development/arduino/platformio/missing-udev-rules-nixos.patch b/pkgs/development/arduino/platformio/missing-udev-rules-nixos.patch
new file mode 100644
index 00000000000..f29b93cef4d
--- /dev/null
+++ b/pkgs/development/arduino/platformio/missing-udev-rules-nixos.patch
@@ -0,0 +1,14 @@
+diff --git a/platformio/exception.py b/platformio/exception.py
+index d291ad7f..4761a35b 100644
+--- a/platformio/exception.py
++++ b/platformio/exception.py
+@@ -195,7 +195,8 @@ class MissedUdevRules(InvalidUdevRules):
+ 
+     MESSAGE = (
+         "Warning! Please install `99-platformio-udev.rules`. \nMode details: "
+-        "https://docs.platformio.org/en/latest/faq.html#platformio-udev-rules"
++        "https://docs.platformio.org/en/latest/faq.html#platformio-udev-rules\n"
++        "On NixOS add the platformio package to services.udev.packages"
+     )
+ 
+ 
diff --git a/pkgs/development/compilers/abcl/default.nix b/pkgs/development/compilers/abcl/default.nix
index 543ba6036e4..edcf722f255 100644
--- a/pkgs/development/compilers/abcl/default.nix
+++ b/pkgs/development/compilers/abcl/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, ant, jre, jdk}:
 stdenv.mkDerivation rec {
   pname = "abcl";
-  version = "1.7.0";
+  version = "1.7.1";
   # or fetchFromGitHub(owner,repo,rev) or fetchgit(rev)
   src = fetchurl {
     url = "https://common-lisp.net/project/armedbear/releases/${version}/${pname}-src-${version}.tar.gz";
-    sha256 = "0pbn5s22zygk6k0rzjc9g76220628lj1b3057gr0n4grl11p4lx5";
+    sha256 = "09wjcjvriagml740krg9nva5v6bsc3sav86dmb55pjvfpsr1846m";
   };
   configurePhase = ''
     mkdir nix-tools
diff --git a/pkgs/development/compilers/adoptopenjdk-bin/sources.json b/pkgs/development/compilers/adoptopenjdk-bin/sources.json
index 80a16465af2..41e7a8eac7d 100644
--- a/pkgs/development/compilers/adoptopenjdk-bin/sources.json
+++ b/pkgs/development/compilers/adoptopenjdk-bin/sources.json
@@ -5,39 +5,45 @@
         "hotspot": {
           "aarch64": {
             "build": "10",
-            "sha256": "04b77f6754aed68528f39750c5cfd6a439190206aff216aa081d62a0e1a794fa",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.6_10.tar.gz",
-            "version": "11.0.6"
+            "sha256": "3b8b8bba6a0472ec7de5271cbf67f11e6ab525de6dd5d4729300375f1d56b7a1",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
           },
           "armv6l": {
             "build": "10",
-            "sha256": "ab5b76203e54fe7a5221535f6f407efa43153de029a746f60af3cffb7cb5080b",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jdk_arm_linux_hotspot_11.0.6_10.tar.gz",
-            "version": "11.0.6"
+            "sha256": "45c235af67498f87e3dc99642771e57547cf226335eaee8a55d195173e66a2e9",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_arm_linux_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
           },
           "armv7l": {
             "build": "10",
-            "sha256": "ab5b76203e54fe7a5221535f6f407efa43153de029a746f60af3cffb7cb5080b",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jdk_arm_linux_hotspot_11.0.6_10.tar.gz",
-            "version": "11.0.6"
+            "sha256": "45c235af67498f87e3dc99642771e57547cf226335eaee8a55d195173e66a2e9",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_arm_linux_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
           },
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
             "build": "10",
-            "sha256": "330d19a2eaa07ed02757d7a785a77bab49f5ee710ea03b4ee2fa220ddd0feffc",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jdk_x64_linux_hotspot_11.0.6_10.tar.gz",
-            "version": "11.0.6"
+            "sha256": "ee60304d782c9d5654bf1a6b3f38c683921c1711045e1db94525a51b7024a2ca",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_x64_linux_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
           }
         },
         "openj9": {
+          "aarch64": {
+            "build": "10",
+            "sha256": "0be01fdcae330e26c489d8d0d0c98c535a2af8cbd0cdcda211776ab9fcd05086",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10_openj9-0.20.0/OpenJDK11U-jdk_aarch64_linux_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
+            "version": "11.0.7"
+          },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
             "build": "10",
-            "sha256": "1530172ee98edd129954fcdca1bf725f7b30c8bfc3cdc381c88de96b7d19e690",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10_openj9-0.18.1/OpenJDK11U-jdk_x64_linux_openj9_11.0.6_10_openj9-0.18.1.tar.gz",
-            "version": "11.0.6"
+            "sha256": "526e89f3014fec473b24c10c2464c1343e23703114983fd171b68b1599bba561",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10_openj9-0.20.0/OpenJDK11U-jdk_x64_linux_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
+            "version": "11.0.7"
           }
         }
       },
@@ -45,27 +51,45 @@
         "hotspot": {
           "aarch64": {
             "build": "10",
-            "sha256": "7ed04ed9ed7271528e7f03490f1fd7dfbbc2d391414bd6fe4dd80ec3bad76d30",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jre_aarch64_linux_hotspot_11.0.6_10.tar.gz",
-            "version": "11.0.6"
+            "sha256": "cfe504e9e9621b831a5cfd800a2005dafe90a1d11aa14ee35d7b674d68685698",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jre_aarch64_linux_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
+          },
+          "armv6l": {
+            "build": "10",
+            "sha256": "581bae8efcaa40e209a780baa6f96b7c8c9397965bc6d54533f4fd8599d5c742",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jre_arm_linux_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
+          },
+          "armv7l": {
+            "build": "10",
+            "sha256": "581bae8efcaa40e209a780baa6f96b7c8c9397965bc6d54533f4fd8599d5c742",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jre_arm_linux_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
           },
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
             "build": "10",
-            "sha256": "c5a4e69e2be0e3e5f5bb7c759960b20650967d0f571baad4a7f15b2c03bda352",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jre_x64_linux_hotspot_11.0.6_10.tar.gz",
-            "version": "11.0.6"
+            "sha256": "74b493dd8a884dcbee29682ead51b182d9d3e52b40c3d4cbb3167c2fd0063503",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jre_x64_linux_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
           }
         },
         "openj9": {
+          "aarch64": {
+            "build": "10",
+            "sha256": "37ae26443abb02d2ab041eced9be948f0d20db03183aaf3c159ef682eeeabf9b",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10_openj9-0.20.0/OpenJDK11U-jre_aarch64_linux_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
+            "version": "11.0.7"
+          },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
             "build": "10",
-            "sha256": "056e4b5f7166f5daa44f36b06c735913bda52831d2e77fa2ac371505c66d10c1",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10_openj9-0.18.1/OpenJDK11U-jre_x64_linux_openj9_11.0.6_10_openj9-0.18.1.tar.gz",
-            "version": "11.0.6"
+            "sha256": "08258a767a6953bde21d15ef3c08e776d83257afa4acc52b55c70e1ac02f0489",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10_openj9-0.20.0/OpenJDK11U-jre_x64_linux_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
+            "version": "11.0.7"
           }
         }
       }
@@ -77,9 +101,9 @@
           "vmType": "hotspot",
           "x86_64": {
             "build": "10",
-            "sha256": "b87102274d983bf6bb0aa6c2c623301d0ff5eb7f61043ffd04abb00f962c2dcd",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jdk_x64_mac_hotspot_11.0.6_10.tar.gz",
-            "version": "11.0.6"
+            "sha256": "0ab1e15e8bd1916423960e91b932d2b17f4c15b02dbdf9fa30e9423280d9e5cc",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_x64_mac_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
           }
         },
         "openj9": {
@@ -87,9 +111,9 @@
           "vmType": "openj9",
           "x86_64": {
             "build": "10",
-            "sha256": "9a5c5b3bb51a82e666c46b2d1bbafa8c2bbc3aae50194858c8f96c5d43a96f64",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10_openj9-0.18.1/OpenJDK11U-jdk_x64_mac_openj9_11.0.6_10_openj9-0.18.1.tar.gz",
-            "version": "11.0.6"
+            "sha256": "a0de749c37802cc233ac58ffde68191a4dc985c71b626e7c0ff53944f743427f",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10.2_openj9-0.20.0/OpenJDK11U-jdk_x64_mac_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
+            "version": "11.0.7"
           }
         }
       },
@@ -99,9 +123,9 @@
           "vmType": "hotspot",
           "x86_64": {
             "build": "10",
-            "sha256": "ab3c2038a32c62843500109d2efb8f5dacdfa1de3cbb713c8226f26dc603cc33",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jre_x64_mac_hotspot_11.0.6_10.tar.gz",
-            "version": "11.0.6"
+            "sha256": "931a81f4bed38c48b364db57d4ebdd6e4b4ea1466e9bd0eaf8e0f1e47c4569e9",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jre_x64_mac_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
           }
         },
         "openj9": {
@@ -109,9 +133,9 @@
           "vmType": "openj9",
           "x86_64": {
             "build": "10",
-            "sha256": "130850133d9701393352c2ce13ab541b4f900ff1f5ddf8257cda624968aada9f",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10_openj9-0.18.1/OpenJDK11U-jre_x64_mac_openj9_11.0.6_10_openj9-0.18.1.tar.gz",
-            "version": "11.0.6"
+            "sha256": "0941d739e3230d1d83dc1ee54cff6d17d90331e4f275d00739cb78fba41c5b96",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10.2_openj9-0.20.0/OpenJDK11U-jre_x64_mac_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
+            "version": "11.0.7"
           }
         }
       }
@@ -122,68 +146,68 @@
       "jdk": {
         "hotspot": {
           "aarch64": {
-            "build": "33",
-            "sha256": "74f4110333ac4239564ed864b1d7d69b7af32af39efcfbde9816e1486cb5ae07",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jdk_aarch64_linux_hotspot_13_33.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "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": "33",
-            "sha256": "477e1b8d26a220d6d570765e9e0a4a34dbb489fab63a420d0859d173efc59adb",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jdk_arm_linux_hotspot_13_33.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "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": "33",
-            "sha256": "477e1b8d26a220d6d570765e9e0a4a34dbb489fab63a420d0859d173efc59adb",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jdk_arm_linux_hotspot_13_33.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "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"
           },
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "33",
-            "sha256": "e562caeffa89c834a69a44242d802eae3523875e427f07c05b1902c152638368",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jdk_x64_linux_hotspot_13_33.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "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"
           }
         },
         "openj9": {
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "33",
-            "sha256": "68ebab0021c719694be8fc868478725a69c5c515cdb62e2933eefe87ba6437df",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33_openj9-0.16.0/OpenJDK13U-jdk_x64_linux_openj9_13_33_openj9-0.16.0.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "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"
           }
         }
       },
       "jre": {
         "hotspot": {
           "aarch64": {
-            "build": "33",
-            "sha256": "2365b7fbba8d9125fb091933aad9f38f8cc1fbb0217cdec9ec75d2000f6d451a",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jre_aarch64_linux_hotspot_13_33.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "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"
           },
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "33",
-            "sha256": "73800a0d7c4e81df408a8518d282aa2c001ce4ee15541574c639dfc3564f708f",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jre_x64_linux_hotspot_13_33.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "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"
           }
         },
         "openj9": {
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "33",
-            "sha256": "2ee59be5062a81daa7be85be161cab6b245f9a2e2cbd4769ae9edefaac41e31d",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33_openj9-0.16.0/OpenJDK13U-jre_x64_linux_openj9_13_33_openj9-0.16.0.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "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"
           }
         }
       }
@@ -194,20 +218,20 @@
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "33",
-            "sha256": "f948be96daba250b6695e22cb51372d2ba3060e4d778dd09c89548889783099f",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jdk_x64_mac_hotspot_13_33.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "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"
           }
         },
         "openj9": {
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "33",
-            "sha256": "583e0defd5c062550896ead7cac383be16f1a81d9b6492dfec26da9af5dcc1c0",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33_openj9-0.16.0/OpenJDK13U-jdk_x64_mac_openj9_13_33_openj9-0.16.0.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "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"
           }
         }
       },
@@ -216,20 +240,20 @@
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "33",
-            "sha256": "1c23efba7908de9a611a98e755602f45381a8f7c957adb3fc4012ab1369a352c",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jre_x64_mac_hotspot_13_33.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "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"
           }
         },
         "openj9": {
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "33",
-            "sha256": "33a60b78138d50cb02325156c7d1fcf588697749a4401f6c11a3cbefa3033127",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33_openj9-0.16.0/OpenJDK13U-jre_x64_mac_openj9_13_33_openj9-0.16.0.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "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"
           }
         }
       }
@@ -241,51 +265,39 @@
         "hotspot": {
           "aarch64": {
             "build": "9",
-            "sha256": "35799a2fd4b467115aff1bc3a54853b5131ba9068e53e1ab0fbe5521a3f2ba83",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u232b09.tar.gz",
-            "version": "8.0.232"
+            "sha256": "536bf397d98174b376da9ed49d2f659d65c7310318d8211444f4b7ba7c15e453",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           },
           "armv6l": {
             "build": "9",
-            "sha256": "fdd9f61f1b2df74242da54ee3b3231b0123782a917e9673351276da439c7cab1",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jdk_arm_linux_hotspot_8u232b09.tar.gz",
-            "version": "8.0.232"
+            "sha256": "5b401ad3c9b246281bd6df34b1abaf75e10e5cad9c6b26b55232b016e90e411a",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_arm_linux_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           },
           "armv7l": {
             "build": "9",
-            "sha256": "fdd9f61f1b2df74242da54ee3b3231b0123782a917e9673351276da439c7cab1",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jdk_arm_linux_hotspot_8u232b09.tar.gz",
-            "version": "8.0.232"
-          },
-          "armv6l": {
-            "build": "10",
-            "sha256": "7b3d6ade8c25adca01095ba66642132d8c87a1a8caf3883850e34778453afcec",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jdk_arm_linux_hotspot_8u222b10.tar.gz",
-            "version": "8.0.222"
-          },
-          "armv7l": {
-            "build": "10",
-            "sha256": "7b3d6ade8c25adca01095ba66642132d8c87a1a8caf3883850e34778453afcec",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jdk_arm_linux_hotspot_8u222b10.tar.gz",
-            "version": "8.0.222"
+            "sha256": "5b401ad3c9b246281bd6df34b1abaf75e10e5cad9c6b26b55232b016e90e411a",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_arm_linux_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           },
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "8",
-            "sha256": "f39b523c724d0e0047d238eb2bb17a9565a60574cf651206c867ee5fc000ab43",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08/OpenJDK8U-jdk_x64_linux_hotspot_8u242b08.tar.gz",
-            "version": "8.0.242"
+            "build": "9",
+            "sha256": "2b59b5282ff32bce7abba8ad6b9fde34c15a98f949ad8ae43e789bbd78fc8862",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_x64_linux_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           }
         },
         "openj9": {
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "ca785af638b24f9d4df896f5a9f557cc9f1e5fa5e2b1174d6b906e3fd5474c2e",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08_openj9-0.18.1/OpenJDK8U-jdk_x64_linux_openj9_8u242b08_openj9-0.18.1.tar.gz",
-            "version": "8.0.242"
+            "build": "9",
+            "sha256": "910ae847109a6dd1b6cf69baa7615ea2cce8cff787e5a9349a5331ce7604f3a5",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09_openj9-0.20.0/OpenJDK8U-jdk_x64_linux_openj9_8u252b09_openj9-0.20.0.tar.gz",
+            "version": "8.0.252"
           }
         }
       },
@@ -293,51 +305,39 @@
         "hotspot": {
           "aarch64": {
             "build": "9",
-            "sha256": "4540db665260fdc84ae2f191e21beec9168a70a4227718bee5edd317707e2fda",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jre_aarch64_linux_hotspot_8u232b09.tar.gz",
-            "version": "8.0.232"
+            "sha256": "30bba4425497f5b4aabcba7b45db69d582d278fb17357d64c22c9dc6b2d29ca1",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jre_aarch64_linux_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           },
           "armv6l": {
             "build": "9",
-            "sha256": "8ab786fc2fa0a282f5cf57f6040f1976c32c3c5e480e900ce5925de6543f6688",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jre_arm_linux_hotspot_8u232b09.tar.gz",
-            "version": "8.0.232"
+            "sha256": "107699a88f611e0c2d57816be25821ef9b17db860b14402c4e9e5bf0b9cf16fd",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jre_arm_linux_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           },
           "armv7l": {
             "build": "9",
-            "sha256": "8ab786fc2fa0a282f5cf57f6040f1976c32c3c5e480e900ce5925de6543f6688",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jre_arm_linux_hotspot_8u232b09.tar.gz",
-            "version": "8.0.232"
-          },
-          "armv6l": {
-            "build": "10",
-            "sha256": "19de77b74812b90851816bdb991d6473488a10d3ac293c6accf46ae9b1f714a0",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jre_arm_linux_hotspot_8u222b10.tar.gz",
-            "version": "8.0.222"
-          },
-          "armv7l": {
-            "build": "10",
-            "sha256": "19de77b74812b90851816bdb991d6473488a10d3ac293c6accf46ae9b1f714a0",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jre_arm_linux_hotspot_8u222b10.tar.gz",
-            "version": "8.0.222"
+            "sha256": "107699a88f611e0c2d57816be25821ef9b17db860b14402c4e9e5bf0b9cf16fd",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jre_arm_linux_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           },
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "8",
-            "sha256": "5edfaefdbb0469d8b24d61c8aef80c076611053b1738029c0232b9a632fe2708",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08/OpenJDK8U-jre_x64_linux_hotspot_8u242b08.tar.gz",
-            "version": "8.0.242"
+            "build": "9",
+            "sha256": "a93be303ed62398dba9acb0376fb3caf8f488fcde80dc62d0a8e46256b3adfb1",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jre_x64_linux_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           }
         },
         "openj9": {
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "985d3134b64c6196d4c9ddbc87af0c62b0e643cef71b29f3d25a8c7811811745",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08_openj9-0.18.1/OpenJDK8U-jre_x64_linux_openj9_8u242b08_openj9-0.18.1.tar.gz",
-            "version": "8.0.242"
+            "build": "9",
+            "sha256": "5c0ab4691ff5f8e69bb14462f2afb8d73d751b01048eacf4b426ed6d6646dc63",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09_openj9-0.20.0/OpenJDK8U-jre_x64_linux_openj9_8u252b09_openj9-0.20.0.tar.gz",
+            "version": "8.0.252"
           }
         }
       }
@@ -348,20 +348,20 @@
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "8",
-            "sha256": "06675b7d65bce0313ee1f2e888dd44267e8afeced75e0b39b5ad1f5fdff54e0b",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08/OpenJDK8U-jdk_x64_mac_hotspot_8u242b08.tar.gz",
-            "version": "8.0.242"
+            "build": "9",
+            "sha256": "2caed3ec07d108bda613f9b4614b22a8bdd196ccf2a432a126161cd4077f07a5",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09.1/OpenJDK8U-jdk_x64_mac_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           }
         },
         "openj9": {
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "665dc9c8239b7270b007ab9dd7522570e2686e327d89caf57a6aa6e5c6450078",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08_openj9-0.18.1/OpenJDK8U-jdk_x64_mac_openj9_8u242b08_openj9-0.18.1.tar.gz",
-            "version": "8.0.242"
+            "build": "9",
+            "sha256": "f522061a23290bce3423e49025a95b6e78d6f30e2741817e83c8fdba4c0c4ae7",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09.2_openj9-0.20.0/OpenJDK8U-jdk_x64_mac_openj9_8u252b09_openj9-0.20.0.tar.gz",
+            "version": "8.0.252"
           }
         }
       },
@@ -370,23 +370,23 @@
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "8",
-            "sha256": "fae3777e3441dc7384c339a9054aa7efc40cd2c501625a535c2d4648367ccca3",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08/OpenJDK8U-jre_x64_mac_hotspot_8u242b08.tar.gz",
-            "version": "8.0.242"
+            "build": "9",
+            "sha256": "f8206f0fef194c598de6b206a4773b2e517154913ea0e26c5726091562a034c8",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09.1/OpenJDK8U-jre_x64_mac_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           }
         },
         "openj9": {
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "d4a924558ddda0aed671a67f71714b71c25871a7659fd4c505851cf5ee866de5",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08_openj9-0.18.1/OpenJDK8U-jre_x64_mac_openj9_8u242b08_openj9-0.18.1.tar.gz",
-            "version": "8.0.242"
+            "build": "9",
+            "sha256": "55cce54a39c5748360e2e3fe8edf04469b75a0783514853a5745463979b43c80",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09.2_openj9-0.20.0/OpenJDK8U-jre_x64_mac_openj9_8u252b09_openj9-0.20.0.tar.gz",
+            "version": "8.0.252"
           }
         }
       }
     }
   }
-}
+}
\ No newline at end of file
diff --git a/pkgs/development/compilers/aspectj/default.nix b/pkgs/development/compilers/aspectj/default.nix
index 94dc813d78a..8fd47e937c8 100644
--- a/pkgs/development/compilers/aspectj/default.nix
+++ b/pkgs/development/compilers/aspectj/default.nix
@@ -1,12 +1,15 @@
 {stdenv, fetchurl, jre}:
 
 stdenv.mkDerivation rec {
-  name = "aspectj-1.5.2";
+  pname = "aspectj";
+  version = "1.9.6";
   builder = ./builder.sh;
 
-  src = fetchurl {
-    url = "http://archive.eclipse.org/tools/aspectj/${name}.jar";
-    sha256 = "1b3mx248dc1xka1vgsl0jj4sm0nfjsqdcj9r9036mvixj1zj3nmh";
+  src = let
+    versionSnakeCase = builtins.replaceStrings ["."] ["_"] version;
+  in fetchurl {
+    url = "https://github.com/eclipse/org.aspectj/releases/download/V${versionSnakeCase}/aspectj-${version}.jar";
+    sha256 = "02jh66l3vw57k9a4dxlga3qh3487r36gyi6k2z2mmqxbpqajslja";
   };
 
   inherit jre;
diff --git a/pkgs/development/compilers/binaryen/0001-Get-rid-of-git-dependency.patch b/pkgs/development/compilers/binaryen/0001-Get-rid-of-git-dependency.patch
deleted file mode 100644
index 79b053592a9..00000000000
--- a/pkgs/development/compilers/binaryen/0001-Get-rid-of-git-dependency.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 1c6af6c68ba3f49ae9e942844c739e934339d3b9 Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Sat, 14 Mar 2020 00:37:31 +0100
-Subject: [PATCH] Get rid of git dependency
-
----
- CMakeLists.txt | 15 +--------------
- 1 file changed, 1 insertion(+), 14 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 4acf703e1..4e9bd60b5 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -7,20 +7,7 @@ IF(NOT CMAKE_BUILD_TYPE)
-   SET(CMAKE_BUILD_TYPE "Release")
- ENDIF()
- 
--FIND_PACKAGE(Git QUIET REQUIRED)
--EXECUTE_PROCESS(COMMAND
--             "${GIT_EXECUTABLE}" --git-dir=${CMAKE_CURRENT_SOURCE_DIR}/.git describe --tags
--         RESULT_VARIABLE
--             GIT_HASH_RESULT
--         OUTPUT_VARIABLE
--             GIT_HASH
--         OUTPUT_STRIP_TRAILING_WHITESPACE)
--IF(${GIT_HASH_RESULT})
--  MESSAGE(WARNING "Error running git describe to determine version")
--  SET(BINARYEN_VERSION_INFO "(unable to determine version)")
--ELSE()
--  SET(BINARYEN_VERSION_INFO "${GIT_HASH}")
--ENDIF()
-+SET(BINARYEN_VERSION_INFO "@emscriptenv@")
- CONFIGURE_FILE(config.h.in config.h)
- 
- OPTION(BUILD_STATIC_LIB "Build as a static library" OFF)
--- 
-2.25.0
-
diff --git a/pkgs/development/compilers/binaryen/default.nix b/pkgs/development/compilers/binaryen/default.nix
index 651c88704da..6de4e0fb304 100644
--- a/pkgs/development/compilers/binaryen/default.nix
+++ b/pkgs/development/compilers/binaryen/default.nix
@@ -1,38 +1,23 @@
-{ stdenv, cmake, python3, fetchFromGitHub, emscriptenRev ? null, substituteAll }:
-
-let
-  defaultVersion = "94";
-
-  # Map from git revs to SHA256 hashes
-  sha256s = {
-    version_94 = "1wk20fhyppb2ljni7ifqnsx9kl1kcl6c0svc0qljf0bs6rvr9qdm";
-    "1.39.1" = "0ygm9m5322h4vfpf3j63q32qxk2l26yk62hh7dkb49j51zwl1y3y";
-  };
-in
+{ stdenv, cmake, python3, fetchFromGitHub, fetchpatch, emscripten }:
 
 stdenv.mkDerivation rec {
-  version = if emscriptenRev == null
-            then defaultVersion
-            else "emscripten-${emscriptenRev}";
-  rev = if emscriptenRev == null
-        then "version_${version}"
-        else emscriptenRev;
   pname = "binaryen";
+  version = "96";
 
   src = fetchFromGitHub {
     owner = "WebAssembly";
     repo = "binaryen";
-    sha256 =
-      if builtins.hasAttr rev sha256s
-      then builtins.getAttr rev sha256s
-      else null;
-    inherit rev;
+    rev = "version_${version}";
+    sha256 = "1mqpb6yy87aifpbcy0lczi3bp6kddrwi6d0g6lrhjrdxx2kvbdag";
   };
 
-  patches = stdenv.lib.optional (emscriptenRev != null) (substituteAll {
-    src = ./0001-Get-rid-of-git-dependency.patch;
-    emscriptenv = "1.39.1";
-  });
+  patches = [
+    # Adds --minimize-wasm-changes option required by emscripten 2.0.1
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/WebAssembly/binaryen/pull/3044.patch";
+      sha256 = "1hdbc9h9zhh2d3bl4sqv6v9psfmny715612bwpjdln0ibdvc129s";
+    })
+  ];
 
   nativeBuildInputs = [ cmake python3 ];
 
@@ -43,4 +28,8 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ asppsa ];
     license = licenses.asl20;
   };
+
+  passthru.tests = {
+    inherit emscripten;
+  };
 }
diff --git a/pkgs/development/compilers/bluespec/default.nix b/pkgs/development/compilers/bluespec/default.nix
index 49737b48c57..09e76d63235 100644
--- a/pkgs/development/compilers/bluespec/default.nix
+++ b/pkgs/development/compilers/bluespec/default.nix
@@ -6,7 +6,6 @@
 , fontconfig
 , gmp
 , gperf
-, haskell
 , libX11
 , libpoly
 , perl
@@ -14,16 +13,14 @@
 , verilog
 , xorg
 , zlib
+, ghc
 }:
 
 let
   # yices wants a libgmp.a and fails otherwise
   gmpStatic = gmp.override { withStatic = true; };
 
-  # Compiling PreludeBSV fails with more recent GHC versions
-  # > imperative statement (not BVI context)
-  # https://github.com/B-Lang-org/bsc/issues/20#issuecomment-583724030
-  ghcWithPackages = haskell.packages.ghc844.ghc.withPackages (g: (with g; [old-time regex-compat syb]));
+  ghcWithPackages = ghc.withPackages (g: (with g; [old-time regex-compat syb]));
 in stdenv.mkDerivation rec {
   pname = "bluespec";
   version = "unstable-2020.02.09";
diff --git a/pkgs/development/compilers/ccl/default.nix b/pkgs/development/compilers/ccl/default.nix
index 573d36cd3f6..8f292e358ae 100644
--- a/pkgs/development/compilers/ccl/default.nix
+++ b/pkgs/development/compilers/ccl/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, bootstrap_cmds, coreutils, glibc, m4, runtimeShell }:
+{ stdenv, fetchurl, runCommand, bootstrap_cmds, coreutils, glibc, m4, runtimeShell }:
 
 let
   options = rec {
     /* TODO: there are also FreeBSD and Windows versions */
     x86_64-linux = {
       arch = "linuxx86";
-      sha256 = "0hs1f3z7crgzvinpj990kv9gvbsipxvcvwbmk54n51nasvc5025q";
+      sha256 = "0d5bsizgpw9hv0jfsf4bp5sf6kxh8f9hgzz9hsjzpfhs3npmmac4";
       runtime = "lx86cl64";
       kernel = "linuxx8664";
     };
@@ -17,26 +17,44 @@ let
     };
     armv7l-linux = {
       arch = "linuxarm";
-      sha256 = "0p0l1dzsygb6i1xxgbipjpxkn46xhq3jm41a34ga1qqp4x8lkr62";
+      sha256 = throw "ccl all-in-one linuxarm archive missing upstream";
       runtime = "armcl";
       kernel = "linuxarm";
     };
     x86_64-darwin = {
       arch = "darwinx86";
-      sha256 = "5adbea3d8b4a2e29af30d141f781c6613844f468c0ccfa11bae908c3e9641939";
+      sha256 = "1l060719k8mjd70lfdnr0hkybk7v88zxvfrsp7ww50q808cjffqk";
       runtime = "dx86cl64";
       kernel = "darwinx8664";
     };
     armv6l-linux = armv7l-linux;
   };
   cfg = options.${stdenv.hostPlatform.system} or (throw "missing source url for platform ${stdenv.hostPlatform.system}");
+
+  # The 1.12 github release of CCL seems to be missing the usual
+  # ccl-1.12-linuxarm.tar.gz tarball, so we build it ourselves here
+  linuxarm-src = runCommand "ccl-1.12-linuxarm.tar.gz" {
+    outer = fetchurl {
+      url = "https://github.com/Clozure/ccl/archive/v1.12.tar.gz";
+      sha256 = "0lmxhll6zgni0l41h4kcf3khbih9r0f8xni6zcfvbi3dzfs0cjkp";
+    };
+    inner = fetchurl {
+      url = "https://github.com/Clozure/ccl/releases/download/v1.12/linuxarm.tar.gz";
+      sha256 = "0x4bjx6cxsjvxyagijhlvmc7jkyxifdvz5q5zvz37028va65243c";
+    };
+  } ''
+    tar xf $outer
+    tar xf $inner -C ccl
+    tar czf $out ccl
+  '';
+
 in
 
 stdenv.mkDerivation rec {
   pname = "ccl";
-  version  = "1.11.5";
+  version  = "1.12";
 
-  src = fetchurl {
+  src = if cfg.arch == "linuxarm" then linuxarm-src else fetchurl {
     url = "https://github.com/Clozure/ccl/releases/download/v${version}/ccl-${version}-${cfg.arch}.tar.gz";
     sha256 = cfg.sha256;
   };
@@ -88,6 +106,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://ccl.clozure.com/";
     maintainers = with maintainers; [ raskin muflax tohl ];
     platforms   = attrNames options;
-    license     = licenses.lgpl21;
+    license     = licenses.asl20;
   };
 }
diff --git a/pkgs/development/compilers/closure/default.nix b/pkgs/development/compilers/closure/default.nix
index 2ee1223a53b..7c0d42f1864 100644
--- a/pkgs/development/compilers/closure/default.nix
+++ b/pkgs/development/compilers/closure/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "closure-compiler";
-  version = "20200614";
+  version = "20200719";
 
   src = fetchurl {
     url = "https://dl.google.com/closure-compiler/compiler-${version}.tar.gz";
-    sha256 = "0a54y2d9nfg60knfv34kf6sdsh065dzam86l3wprf8gvqffxxcli";
+    sha256 = "18095i98mk5kc1vpaf6gvmvhiyl2x4zrcwd7ix5l98jydldiz7wx";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/development/compilers/computecpp/default.nix b/pkgs/development/compilers/computecpp/default.nix
index 68d11bdf8b1..31a0b054ee7 100644
--- a/pkgs/development/compilers/computecpp/default.nix
+++ b/pkgs/development/compilers/computecpp/default.nix
@@ -37,8 +37,6 @@ stdenv.mkDerivation rec {
 
   passthru = {
     isClang = true;
-  } // stdenv.lib.optionalAttrs (stdenv.targetPlatform.isLinux || (stdenv.cc.isGNU && stdenv.cc.cc ? gcc)) {
-    gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/compilers/copper/default.nix b/pkgs/development/compilers/copper/default.nix
new file mode 100644
index 00000000000..4d24c78f25f
--- /dev/null
+++ b/pkgs/development/compilers/copper/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, fetchurl
+, libffi
+}:
+stdenv.mkDerivation rec {
+  pname = "copper";
+  version = "4.4";
+  src = fetchurl {
+    url = "https://tibleiz.net/download/copper-${version}-src.tar.gz";
+    sha256 = "1nf0bw143rjhd019yms3k6k531rahl8anidwh6bif0gm7cngfwfw";
+  };
+  buildInputs = [
+    libffi
+  ];
+  postPatch = ''
+    substituteInPlace Makefile --replace "-s scripts/" "scripts/"
+    patchShebangs .
+  '';
+  buildPhase = ''
+    make BACKEND=elf64 boot-elf64
+    make BACKEND=elf64 COPPER=stage3/copper-elf64 copper-elf64
+  '';
+  installPhase = ''
+    make BACKEND=elf64 install prefix=$out
+  '';
+  meta = with stdenv.lib; {
+    description = "Simple imperative language, statically typed with type inference and genericity.";
+    homepage = "https://tibleiz.net/copper/";
+    license = licenses.bsd2;
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/pkgs/development/compilers/cudatoolkit/common.nix b/pkgs/development/compilers/cudatoolkit/common.nix
index 2e93c0b661b..7346b73f53c 100644
--- a/pkgs/development/compilers/cudatoolkit/common.nix
+++ b/pkgs/development/compilers/cudatoolkit/common.nix
@@ -95,12 +95,33 @@ stdenv.mkDerivation rec {
       cd ..
     done
     ''}
-    ${lib.optionalString (lib.versionAtLeast version "10.1") ''
+    ${lib.optionalString (lib.versionAtLeast version "10.1" && lib.versionOlder version "11") ''
       cd pkg/builds/cuda-toolkit
       mv * $out/
     ''}
+    ${lib.optionalString (lib.versionAtLeast version "11") ''
+      mkdir -p $out/bin $out/lib64 $out/include $out/doc
+      for dir in pkg/builds/* pkg/builds/cuda_nvcc/nvvm pkg/builds/cuda_cupti/extras/CUPTI; do
+        if [ -d $dir/bin ]; then
+          mv $dir/bin/* $out/bin
+        fi
+        if [ -d $dir/doc ]; then
+          (cd $dir/doc && find . -type d -exec mkdir -p $out/doc/\{} \;)
+          (cd $dir/doc && find . \( -type f -o -type l \) -exec mv \{} $out/doc/\{} \;)
+        fi
+        if [ -L $dir/include ] || [ -d $dir/include ]; then
+          (cd $dir/include && find . -type d -exec mkdir -p $out/include/\{} \;)
+          (cd $dir/include && find . \( -type f -o -type l \) -exec mv \{} $out/include/\{} \;)
+        fi
+        if [ -L $dir/lib64 ] || [ -d $dir/lib64 ]; then
+          (cd $dir/lib64 && find . -type d -exec mkdir -p $out/lib64/\{} \;)
+          (cd $dir/lib64 && find . \( -type f -o -type l \) -exec mv \{} $out/lib64/\{} \;)
+        fi
+      done
+      mv pkg/builds/cuda_nvcc/nvvm $out/nvvm
+    ''}
 
-    rm $out/tools/CUDA_Occupancy_Calculator.xls # FIXME: why?
+    rm -f $out/tools/CUDA_Occupancy_Calculator.xls # FIXME: why?
 
     ${lib.optionalString (lib.versionOlder version "10.1") ''
     # let's remove the 32-bit libraries, they confuse the lib64->lib mover
@@ -152,7 +173,7 @@ stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    for b in nvvp nsight; do
+    for b in nvvp ${lib.optionalString (lib.versionOlder version "11") "nsight"}; do
       wrapProgram "$out/bin/$b" \
         --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
     done
diff --git a/pkgs/development/compilers/cudatoolkit/default.nix b/pkgs/development/compilers/cudatoolkit/default.nix
index c3b16293204..cd4af47a21e 100644
--- a/pkgs/development/compilers/cudatoolkit/default.nix
+++ b/pkgs/development/compilers/cudatoolkit/default.nix
@@ -4,6 +4,7 @@
 , gcc48
 , gcc6
 , gcc7
+, gcc9
 }:
 
 let
@@ -136,4 +137,14 @@ in rec {
   };
 
   cudatoolkit_10 = cudatoolkit_10_2;
+
+  cudatoolkit_11_0 = common {
+    version = "11.0.3";
+    url = "https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run";
+    sha256 = "1h4c69nfrgm09jzv8xjnjcvpq8n4gnlii17v3wzqry5d13jc8ydh";
+
+    gcc = gcc9;
+  };
+
+  cudatoolkit_11 = cudatoolkit_11_0;
 }
diff --git a/pkgs/development/compilers/dotnet/build-dotnet.nix b/pkgs/development/compilers/dotnet/build-dotnet.nix
new file mode 100644
index 00000000000..1162a75d0de
--- /dev/null
+++ b/pkgs/development/compilers/dotnet/build-dotnet.nix
@@ -0,0 +1,92 @@
+{ type
+, version
+, sha512
+}:
+
+assert builtins.elem type [ "aspnetcore" "netcore" "sdk"];
+{ stdenv
+, fetchurl
+, libunwind
+, openssl
+, icu
+, libuuid
+, zlib
+, curl
+}:
+
+let
+  pname = if type == "aspnetcore" then
+    "aspnetcore-runtime"
+  else if type == "netcore" then
+    "dotnet-runtime"
+  else
+    "dotnet-sdk";
+  platform = if stdenv.isDarwin then "osx" else "linux";
+  suffix = {
+    x86_64-linux = "x64";
+    aarch64-linux = "arm64";
+    x86_64-darwin = "x64";
+  }."${stdenv.hostPlatform.system}" or (throw
+    "Unsupported system: ${stdenv.hostPlatform.system}");
+  urls = {
+    aspnetcore = "https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/${version}/${pname}-${version}-${platform}-${suffix}.tar.gz";
+    netcore = "https://dotnetcli.azureedge.net/dotnet/Runtime/${version}/${pname}-${version}-${platform}-${suffix}.tar.gz";
+    sdk = "https://dotnetcli.azureedge.net/dotnet/Sdk/${version}/${pname}-${version}-${platform}-${suffix}.tar.gz";
+  };
+  descriptions = {
+    aspnetcore = "ASP .NET Core runtime ${version}";
+    netcore = ".NET Core runtime ${version}";
+    sdk = ".NET SDK ${version}";
+  };
+in stdenv.mkDerivation rec {
+  inherit pname version;
+
+  rpath = stdenv.lib.makeLibraryPath [
+    curl
+    icu
+    libunwind
+    libuuid
+    openssl
+    stdenv.cc.cc
+    zlib
+  ];
+
+  src = fetchurl {
+    url = builtins.getAttr type urls;
+    sha512 = sha512."${stdenv.hostPlatform.system}" or (throw
+      "Missing hash for host system: ${stdenv.hostPlatform.system}");
+  };
+
+  sourceRoot = ".";
+
+  dontPatchELF = true;
+  noDumpEnvVars = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp -r ./ $out
+    ln -s $out/dotnet $out/bin/dotnet
+    runHook postInstall
+  '';
+
+  postFixup = stdenv.lib.optionalString stdenv.isLinux ''
+    patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $out/dotnet
+    patchelf --set-rpath "${rpath}" $out/dotnet
+    find $out -type f -name "*.so" -exec patchelf --set-rpath '$ORIGIN:${rpath}' {} \;
+    find $out -type f -name "apphost" -exec patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" --set-rpath '$ORIGIN:${rpath}' {} \;
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/dotnet --info
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://dotnet.github.io/";
+    description = builtins.getAttr type descriptions;
+    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
+    maintainers = with maintainers; [ kuznero ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/compilers/dotnet/buildDotnet.nix b/pkgs/development/compilers/dotnet/buildDotnet.nix
deleted file mode 100644
index 20abc1c78b9..00000000000
--- a/pkgs/development/compilers/dotnet/buildDotnet.nix
+++ /dev/null
@@ -1,74 +0,0 @@
-{ type
-, version
-, sha512
-}:
-assert builtins.elem type [ "aspnetcore" "netcore" "sdk"];
-{ stdenv
-, fetchurl
-, libunwind
-, openssl
-, icu
-, libuuid
-, zlib
-, curl
-}: 
-let pname = if type == "aspnetcore" then "aspnetcore-runtime" else if type == "netcore" then "dotnet-runtime" else "dotnet-sdk";
-    platform = if stdenv.isDarwin then "osx" else "linux";
-    suffix = {
-      x86_64-linux  = "x64";
-      aarch64-linux = "arm64";
-      x86_64-darwin = "x64";
-    }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
-    urls = {
-        aspnetcore = "https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/${version}/${pname}-${version}-${platform}-${suffix}.tar.gz";
-        netcore = "https://dotnetcli.azureedge.net/dotnet/Runtime/${version}/${pname}-${version}-${platform}-${suffix}.tar.gz";
-        sdk = "https://dotnetcli.azureedge.net/dotnet/Sdk/${version}/${pname}-${version}-${platform}-${suffix}.tar.gz";
-    };
-    descriptions = {
-        aspnetcore = "ASP .NET Core runtime ${version}";
-        netcore = ".NET Core runtime ${version}";
-        sdk = ".NET SDK ${version}";
-    };
-in stdenv.mkDerivation rec {
-    inherit pname version;
-
-    rpath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc libunwind libuuid icu openssl zlib curl ];
-
-    src = fetchurl {
-        url = builtins.getAttr type urls;
-        sha512 = sha512."${stdenv.hostPlatform.system}"  or (throw "Missing hash for host system: ${stdenv.hostPlatform.system}");
-    };
-
-    sourceRoot = ".";
-
-    dontPatchELF = true;
-    noDumpEnvVars = true;
-
-    installPhase = ''
-        runHook preInstall
-        mkdir -p $out/bin
-        cp -r ./ $out
-        ln -s $out/dotnet $out/bin/dotnet
-        runHook postInstall
-    '';
-
-    postFixup = stdenv.lib.optionalString stdenv.isLinux ''
-        patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $out/dotnet
-        patchelf --set-rpath "${rpath}" $out/dotnet
-        find $out -type f -name "*.so" -exec patchelf --set-rpath '$ORIGIN:${rpath}' {} \;
-        find $out -type f -name "apphost" -exec patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" --set-rpath '$ORIGIN:${rpath}' {} \;
-    '';
-
-    doInstallCheck = true;
-    installCheckPhase = ''
-        $out/bin/dotnet --info
-    '';
-
-    meta = with stdenv.lib; {
-        homepage = "https://dotnet.github.io/";
-        description = builtins.getAttr type descriptions;
-        platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
-        maintainers = with maintainers; [ kuznero ];
-        license = licenses.mit;
-    };
-}
diff --git a/pkgs/development/compilers/dotnet/combinePackages.nix b/pkgs/development/compilers/dotnet/combine-packages.nix
index 00fb7c6d9b4..00fb7c6d9b4 100644
--- a/pkgs/development/compilers/dotnet/combinePackages.nix
+++ b/pkgs/development/compilers/dotnet/combine-packages.nix
diff --git a/pkgs/development/compilers/dotnet/default.nix b/pkgs/development/compilers/dotnet/default.nix
index dd1510548a3..e04f7a03f94 100644
--- a/pkgs/development/compilers/dotnet/default.nix
+++ b/pkgs/development/compilers/dotnet/default.nix
@@ -4,13 +4,13 @@ dotnetCombined = with dotnetCorePackages; combinePackages [ sdk_3_1 sdk_2_2 sdk_
 */
 { callPackage }:
 let
-  buildDotnet = attrs: callPackage (import ./buildDotnet.nix attrs) {};
+  buildDotnet = attrs: callPackage (import ./build-dotnet.nix attrs) {};
   buildAspNetCore = attrs: buildDotnet (attrs // { type = "aspnetcore"; });
   buildNetCore = attrs: buildDotnet (attrs // { type = "netcore"; });
   buildNetCoreSdk = attrs: buildDotnet (attrs // { type = "sdk"; });
 in
 rec {
-  combinePackages = attrs: callPackage (import ./combinePackages.nix attrs) {};
+  combinePackages = attrs: callPackage (import ./combine-packages.nix attrs) {};
 
   # v2.1.15 (LTS)
 
@@ -77,20 +77,20 @@ rec {
   # v3.1.1 (LTS)
 
   aspnetcore_3_1 = buildAspNetCore {
-    version = "3.1.2";
+    version = "3.1.5";
     sha512 = {
-      x86_64-linux = "27708bk5liz8r39p4dzs41clgq298d49g8ipzdj56pz613vkfyv7bp91666ydz36aazm265j2g9ji3sk1f9kbgv6024zwrly5w9vqrm";
-      aarch64-linux = "2sm5yf376w5dm0za3gbcj251kc909fmlasmlyn70zhqp2jiii075vcqh40racjlwlhsfydx32cw7kgnv238lad5mw5jxy143zql5xl3";
-      x86_64-darwin = "311sihjzg0x5inyrz0px29jikxcibd6l56xfdmxkncgwaikf3663x10dfl246qhz8v0f3lvg2vndgp5icbaqrp8awsnrhsl0vi5d7fh";
+      x86_64-linux = "3ziyvm6llvhnjg8ayr4cfcabwkc46fqscgj12faavib34r5zx4mnv3qccqm3gg2r8jps60h42lvrwj3fliqmr0qqnhsw04819kqwai6";
+      aarch64-linux = "2nbhvh8dpg7dghcs6ysdg7mcc60hbk5d3zab0nnbqkib93fdhbzhzcra9qhh80h8x03zw0jsn3gzqx0d1z2vz5z3lsa14vmb86pzj4a";
+      x86_64-darwin = "1sfnp849vmsv8775fjsf9nzx28cmkvfgk8fa81h2l849z31ssaw9fn89kk0n83l0wrhr24ivmprfr11sp42gnjbncqfsnz4883lfchw";
     };
   };
 
   netcore_3_1 = buildNetCore {
-    version = "3.1.2";
+    version = "3.1.5";
     sha512 = {
-      x86_64-linux = "3zwg1anrcni9kagmjxn485bpjvb146hkm7irmikq3v879gjhd2fgpscg226ds83l4pxll3r7lwris6ij952xmy8lsqraapd9111ba14";
-      aarch64-linux = "3hf61d5adlfffy51627ypp36qc5r55g9xwgfxqd0c7vj9bqmpiph673bvqqpr189df9shxr21p94cwrc5n36z72a37vw4ic8ks2yayx";
-      x86_64-darwin = "35flr1p5zpcd77mjsl6qy9ipxc5k9j6pk7ca6mnvqqjf0r3agm3qf8cs5fbraprvkwj8fha3giwbp5xir6050fbb374375idn9x12d8";
+      x86_64-linux = "03g6aghbpsxj9csaq9lkc8cad1nk8kvlivkarq6bfqvx992fxw6zryp7kcm5h6a5gkgpimb1nr17vndj1r629hdhpincqj8yw6i33mq";
+      aarch64-linux = "25gwicmpzhzs96w3azypbl32bx967f14xkfdgvl7knw234rcmfv7zr0a7lb3vci68dbx4xywpnwlrvgi54mimzp8nagrgwva8zrrxzb";
+      x86_64-darwin = "2g28jmv1n7pgxfq4wk9x58y5dp835c7rckz6c88ylk7g9w6z75l94pblfl1rc7mr6g3wddiy5cl87a607j9g283hv28a4vcpvll8s7g";
     };
   };
 
diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix
index 133235e5d40..6c534bb8362 100644
--- a/pkgs/development/compilers/elm/default.nix
+++ b/pkgs/development/compilers/elm/default.nix
@@ -1,6 +1,8 @@
 { lib, stdenv, pkgs
 , haskell, nodejs
-, fetchurl, fetchpatch, makeWrapper, writeScriptBin }:
+, fetchurl, fetchpatch, makeWrapper, writeScriptBin
+  # Rust dependecies
+, rustPlatform, openssl, pkg-config }:
 let
   fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
 
@@ -126,5 +128,8 @@ let
     };
 
 in hsPkgs.elmPkgs // elmNodePackages // {
+  elm-json = import ./packages/elm-json.nix {
+    inherit rustPlatform fetchurl openssl stdenv pkg-config;
+  };
   lib = elmLib;
 }
diff --git a/pkgs/development/compilers/elm/packages/elm-json.nix b/pkgs/development/compilers/elm/packages/elm-json.nix
new file mode 100644
index 00000000000..44d300d254b
--- /dev/null
+++ b/pkgs/development/compilers/elm/packages/elm-json.nix
@@ -0,0 +1,29 @@
+{ rustPlatform, fetchurl, openssl, stdenv, pkg-config }:
+rustPlatform.buildRustPackage rec {
+  pname = "elm-json";
+  version = "0.2.7";
+
+  src = fetchurl {
+    url = "https://github.com/zwilias/elm-json/archive/v${version}.tar.gz";
+    sha256 = "sha256:1b9bhl7rb01ylqjbfd1ccm26lhk4hzwd383rbg89aj2jwjv0w4hs";
+  };
+
+  cargoPatches = [ ./elm-json.patch ];
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ];
+
+  cargoSha256 = "0ylniriq073kpiykamkn9mxdaa6kyiza4pvf7gnfq2h1dvbqa6z7";
+
+  # Tests perform networking and therefore can't work in sandbox
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Install, upgrade and uninstall Elm dependencies";
+    homepage = "https://github.com/zwilias/elm-json";
+    license = licenses.mit;
+    maintainers = [ maintainers.turbomack ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/compilers/elm/packages/elm-json.patch b/pkgs/development/compilers/elm/packages/elm-json.patch
new file mode 100644
index 00000000000..70064d0a424
--- /dev/null
+++ b/pkgs/development/compilers/elm/packages/elm-json.patch
@@ -0,0 +1,48 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index f4d95f5..6830b3d 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -625,14 +625,6 @@ name = "openssl-probe"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ 
+-[[package]]
+-name = "openssl-src"
+-version = "111.9.0+1.1.1g"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-dependencies = [
+- "cc 1.0.54 (registry+https://github.com/rust-lang/crates.io-index)",
+-]
+-
+ [[package]]
+ name = "openssl-sys"
+ version = "0.9.56"
+@@ -641,7 +633,6 @@ dependencies = [
+  "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+  "cc 1.0.54 (registry+https://github.com/rust-lang/crates.io-index)",
+  "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-src 111.9.0+1.1.1g (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)",
+ ]
+@@ -1162,7 +1153,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ "checksum object 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9cbca9424c482ee628fa549d9c812e2cd22f1180b9222c9200fdfa6eb31aecb2"
+ "checksum once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
+ "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+-"checksum openssl-src 111.9.0+1.1.1g (registry+https://github.com/rust-lang/crates.io-index)" = "a2dbe10ddd1eb335aba3780eb2eaa13e1b7b441d2562fd962398740927f39ec4"
+ "checksum openssl-sys 0.9.56 (registry+https://github.com/rust-lang/crates.io-index)" = "f02309a7f127000ed50594f0b50ecc69e7c654e16d41b4e8156d1b3df8e0b52e"
+ "checksum petgraph 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "29c127eea4a29ec6c85d153c59dc1213f33ec74cead30fe4730aecc88cc1fd92"
+ "checksum pin-project 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)" = "edc93aeee735e60ecb40cf740eb319ff23eab1c5748abfdb5c180e4ce49f7791"
+diff --git a/Cargo.toml b/Cargo.toml
+index adfab25..37ae0c2 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -21,7 +21,7 @@ colored = "1.9"
+ dialoguer = "0.6"
+ dirs = "2.0"
+ fs2 = "0.4"
+-isahc = { version = "0.9", features = ["static-ssl"] }
++isahc = "0.9"
+ 
+ [dev-dependencies]
+ assert_cmd = "0.11"
diff --git a/pkgs/development/compilers/elm/packages/node-packages.nix b/pkgs/development/compilers/elm/packages/node-packages.nix
index 5b30111289e..ba17a1f0623 100644
--- a/pkgs/development/compilers/elm/packages/node-packages.nix
+++ b/pkgs/development/compilers/elm/packages/node-packages.nix
@@ -22,22 +22,22 @@ let
         sha512 = "OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==";
       };
     };
-    "@babel/code-frame-7.10.3" = {
+    "@babel/code-frame-7.10.4" = {
       name = "_at_babel_slash_code-frame";
       packageName = "@babel/code-frame";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz";
-        sha512 = "fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==";
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz";
+        sha512 = "vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==";
       };
     };
-    "@babel/compat-data-7.10.3" = {
+    "@babel/compat-data-7.10.5" = {
       name = "_at_babel_slash_compat-data";
       packageName = "@babel/compat-data";
-      version = "7.10.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.3.tgz";
-        sha512 = "BDIfJ9uNZuI0LajPfoYV28lX8kyCPMHY6uY4WH1lJdcicmAfxCK5ASzaeV0D/wsUaRH/cLk+amuxtC37sZ8TUg==";
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.5.tgz";
+        sha512 = "mPVoWNzIpYJHbWje0if7Ck36bpbtTvIxOi9+6WSK9wjGEXearAqlwBoTQvVjsAY2VIwgcs8V940geY3okzRCEw==";
       };
     };
     "@babel/core-7.9.6" = {
@@ -49,310 +49,310 @@ let
         sha512 = "nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==";
       };
     };
-    "@babel/generator-7.10.3" = {
+    "@babel/generator-7.10.5" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.10.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.10.3.tgz";
-        sha512 = "drt8MUHbEqRzNR0xnF8nMehbY11b1SDkRw03PSNH/3Rb2Z35oxkddVSi3rcaak0YJQ86PCuE7Qx1jSFhbLNBMA==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz";
+        sha512 = "3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==";
       };
     };
-    "@babel/helper-annotate-as-pure-7.10.1" = {
+    "@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.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz";
-        sha512 = "ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw==";
+        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.3" = {
+    "@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.3";
+      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.3.tgz";
-        sha512 = "lo4XXRnBlU6eRM92FkiZxpo1xFLmv3VsPFk61zJKMm7XYJfwqXHsYJTY6agoc4a3L8QPw1HqWehO18coZgbT6A==";
+        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.10.2" = {
+    "@babel/helper-compilation-targets-7.10.4" = {
       name = "_at_babel_slash_helper-compilation-targets";
       packageName = "@babel/helper-compilation-targets";
-      version = "7.10.2";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz";
-        sha512 = "hYgOhF4To2UTB4LTaZepN/4Pl9LD4gfbJx8A34mqoluT8TLbof1mhUlYuNWTEebONa8+UlCC4X0TEXu7AOUyGA==";
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz";
+        sha512 = "a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==";
       };
     };
-    "@babel/helper-create-regexp-features-plugin-7.10.1" = {
+    "@babel/helper-create-regexp-features-plugin-7.10.4" = {
       name = "_at_babel_slash_helper-create-regexp-features-plugin";
       packageName = "@babel/helper-create-regexp-features-plugin";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz";
-        sha512 = "Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA==";
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz";
+        sha512 = "2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==";
       };
     };
-    "@babel/helper-define-map-7.10.3" = {
+    "@babel/helper-define-map-7.10.5" = {
       name = "_at_babel_slash_helper-define-map";
       packageName = "@babel/helper-define-map";
-      version = "7.10.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.3.tgz";
-        sha512 = "bxRzDi4Sin/k0drWCczppOhov1sBSdBvXJObM1NLHQzjhXhwRtn7aRWGvLJWCYbuu2qUk3EKs6Ci9C9ps8XokQ==";
+        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.10.3" = {
+    "@babel/helper-explode-assignable-expression-7.10.4" = {
       name = "_at_babel_slash_helper-explode-assignable-expression";
       packageName = "@babel/helper-explode-assignable-expression";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.3.tgz";
-        sha512 = "0nKcR64XrOC3lsl+uhD15cwxPvaB6QKUDlD84OT9C3myRbhJqTMYir69/RWItUvHpharv0eJ/wk7fl34ONSwZw==";
+        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz";
+        sha512 = "4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==";
       };
     };
-    "@babel/helper-function-name-7.10.3" = {
+    "@babel/helper-function-name-7.10.4" = {
       name = "_at_babel_slash_helper-function-name";
       packageName = "@babel/helper-function-name";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.3.tgz";
-        sha512 = "FvSj2aiOd8zbeqijjgqdMDSyxsGHaMt5Tr0XjQsGKHD3/1FP3wksjnLAWzxw7lvXiej8W1Jt47SKTZ6upQNiRw==";
+        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.3" = {
+    "@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.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.3.tgz";
-        sha512 = "iUD/gFsR+M6uiy69JA6fzM5seno8oE85IYZdbVVEuQaZlEzMO2MXblh+KSPJgsZAUx0EEbWXU0yJaW7C9CdAVg==";
+        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.3" = {
+    "@babel/helper-hoist-variables-7.10.4" = {
       name = "_at_babel_slash_helper-hoist-variables";
       packageName = "@babel/helper-hoist-variables";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.3.tgz";
-        sha512 = "9JyafKoBt5h20Yv1+BXQMdcXXavozI1vt401KBiRc2qzUepbVnd7ogVNymY1xkQN9fekGwfxtotH2Yf5xsGzgg==";
+        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.10.3" = {
+    "@babel/helper-member-expression-to-functions-7.10.5" = {
       name = "_at_babel_slash_helper-member-expression-to-functions";
       packageName = "@babel/helper-member-expression-to-functions";
-      version = "7.10.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.3.tgz";
-        sha512 = "q7+37c4EPLSjNb2NmWOjNwj0+BOyYlssuQ58kHEWk1Z78K5i8vTUsteq78HMieRPQSl/NtpQyJfdjt3qZ5V2vw==";
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.5.tgz";
+        sha512 = "HiqJpYD5+WopCXIAbQDG0zye5XYVvcO9w/DHp5GsaGkRUaamLj2bEtu6i8rnGGprAhHM3qidCMgp71HF4endhA==";
       };
     };
-    "@babel/helper-module-imports-7.10.3" = {
+    "@babel/helper-module-imports-7.10.4" = {
       name = "_at_babel_slash_helper-module-imports";
       packageName = "@babel/helper-module-imports";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.3.tgz";
-        sha512 = "Jtqw5M9pahLSUWA+76nhK9OG8nwYXzhQzVIGFoNaHnXF/r4l7kz4Fl0UAW7B6mqC5myoJiBP5/YQlXQTMfHI9w==";
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz";
+        sha512 = "nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==";
       };
     };
-    "@babel/helper-module-transforms-7.10.1" = {
+    "@babel/helper-module-transforms-7.10.5" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.10.1";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz";
-        sha512 = "RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg==";
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz";
+        sha512 = "4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA==";
       };
     };
-    "@babel/helper-optimise-call-expression-7.10.3" = {
+    "@babel/helper-optimise-call-expression-7.10.4" = {
       name = "_at_babel_slash_helper-optimise-call-expression";
       packageName = "@babel/helper-optimise-call-expression";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.3.tgz";
-        sha512 = "kT2R3VBH/cnSz+yChKpaKRJQJWxdGoc6SjioRId2wkeV3bK0wLLioFpJROrX0U4xr/NmxSSAWT/9Ih5snwIIzg==";
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz";
+        sha512 = "n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==";
       };
     };
-    "@babel/helper-plugin-utils-7.10.3" = {
+    "@babel/helper-plugin-utils-7.10.4" = {
       name = "_at_babel_slash_helper-plugin-utils";
       packageName = "@babel/helper-plugin-utils";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.3.tgz";
-        sha512 = "j/+j8NAWUTxOtx4LKHybpSClxHoq6I91DQ/mKgAXn5oNUPIUiGppjPIX3TDtJWPrdfP9Kfl7e4fgVMiQR9VE/g==";
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
+        sha512 = "O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==";
       };
     };
-    "@babel/helper-regex-7.10.1" = {
+    "@babel/helper-regex-7.10.5" = {
       name = "_at_babel_slash_helper-regex";
       packageName = "@babel/helper-regex";
-      version = "7.10.1";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.1.tgz";
-        sha512 = "7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g==";
+        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz";
+        sha512 = "68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==";
       };
     };
-    "@babel/helper-remap-async-to-generator-7.10.3" = {
+    "@babel/helper-remap-async-to-generator-7.10.4" = {
       name = "_at_babel_slash_helper-remap-async-to-generator";
       packageName = "@babel/helper-remap-async-to-generator";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.3.tgz";
-        sha512 = "sLB7666ARbJUGDO60ZormmhQOyqMX/shKBXZ7fy937s+3ID8gSrneMvKSSb+8xIM5V7Vn6uNVtOY1vIm26XLtA==";
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz";
+        sha512 = "86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==";
       };
     };
-    "@babel/helper-replace-supers-7.10.1" = {
+    "@babel/helper-replace-supers-7.10.4" = {
       name = "_at_babel_slash_helper-replace-supers";
       packageName = "@babel/helper-replace-supers";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz";
-        sha512 = "SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A==";
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz";
+        sha512 = "sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==";
       };
     };
-    "@babel/helper-simple-access-7.10.1" = {
+    "@babel/helper-simple-access-7.10.4" = {
       name = "_at_babel_slash_helper-simple-access";
       packageName = "@babel/helper-simple-access";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz";
-        sha512 = "VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw==";
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz";
+        sha512 = "0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==";
       };
     };
-    "@babel/helper-split-export-declaration-7.10.1" = {
+    "@babel/helper-split-export-declaration-7.10.4" = {
       name = "_at_babel_slash_helper-split-export-declaration";
       packageName = "@babel/helper-split-export-declaration";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz";
-        sha512 = "UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==";
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz";
+        sha512 = "pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==";
       };
     };
-    "@babel/helper-validator-identifier-7.10.3" = {
+    "@babel/helper-validator-identifier-7.10.4" = {
       name = "_at_babel_slash_helper-validator-identifier";
       packageName = "@babel/helper-validator-identifier";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz";
-        sha512 = "bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw==";
+        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-wrap-function-7.10.1" = {
+    "@babel/helper-wrap-function-7.10.4" = {
       name = "_at_babel_slash_helper-wrap-function";
       packageName = "@babel/helper-wrap-function";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz";
-        sha512 = "C0MzRGteVDn+H32/ZgbAv5r56f2o1fZSA/rj/TYo8JEJNHg+9BdSmKBUND0shxWRztWhjlT2cvHYuynpPsVJwQ==";
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz";
+        sha512 = "6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==";
       };
     };
-    "@babel/helpers-7.10.1" = {
+    "@babel/helpers-7.10.4" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.1.tgz";
-        sha512 = "muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz";
+        sha512 = "L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==";
       };
     };
-    "@babel/highlight-7.10.3" = {
+    "@babel/highlight-7.10.4" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz";
-        sha512 = "Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz";
+        sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==";
       };
     };
-    "@babel/parser-7.10.3" = {
+    "@babel/parser-7.10.5" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.10.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.10.3.tgz";
-        sha512 = "oJtNJCMFdIMwXGmx+KxuaD7i3b8uS7TTFYW/FNG2BT8m+fmGHoiPYoH0Pe3gya07WuFmM5FCDIr1x0irkD/hyA==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz";
+        sha512 = "wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==";
       };
     };
-    "@babel/plugin-proposal-async-generator-functions-7.10.3" = {
+    "@babel/plugin-proposal-async-generator-functions-7.10.5" = {
       name = "_at_babel_slash_plugin-proposal-async-generator-functions";
       packageName = "@babel/plugin-proposal-async-generator-functions";
-      version = "7.10.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.3.tgz";
-        sha512 = "WUUWM7YTOudF4jZBAJIW9D7aViYC/Fn0Pln4RIHlQALyno3sXSjqmTA4Zy1TKC2D49RCR8Y/Pn4OIUtEypK3CA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz";
+        sha512 = "cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==";
       };
     };
-    "@babel/plugin-proposal-dynamic-import-7.10.1" = {
+    "@babel/plugin-proposal-dynamic-import-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-dynamic-import";
       packageName = "@babel/plugin-proposal-dynamic-import";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz";
-        sha512 = "Cpc2yUVHTEGPlmiQzXj026kqwjEQAD9I4ZC16uzdbgWgitg/UHKHLffKNCQZ5+y8jpIZPJcKcwsr2HwPh+w3XA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz";
+        sha512 = "up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==";
       };
     };
-    "@babel/plugin-proposal-json-strings-7.10.1" = {
+    "@babel/plugin-proposal-json-strings-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-json-strings";
       packageName = "@babel/plugin-proposal-json-strings";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz";
-        sha512 = "m8r5BmV+ZLpWPtMY2mOKN7wre6HIO4gfIiV+eOmsnZABNenrt/kzYBwrh+KOfgumSWpnlGs5F70J8afYMSJMBg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz";
+        sha512 = "fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==";
       };
     };
-    "@babel/plugin-proposal-nullish-coalescing-operator-7.10.1" = {
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
       packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz";
-        sha512 = "56cI/uHYgL2C8HVuHOuvVowihhX0sxb3nnfVRzUeVHTWmRHTZrKuAh/OBIMggGU/S1g/1D2CRCXqP+3u7vX7iA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz";
+        sha512 = "wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==";
       };
     };
-    "@babel/plugin-proposal-numeric-separator-7.10.1" = {
+    "@babel/plugin-proposal-numeric-separator-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-numeric-separator";
       packageName = "@babel/plugin-proposal-numeric-separator";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz";
-        sha512 = "jjfym4N9HtCiNfyyLAVD8WqPYeHUrw4ihxuAynWj6zzp2gf9Ey2f7ImhFm6ikB3CLf5Z/zmcJDri6B4+9j9RsA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz";
+        sha512 = "73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==";
       };
     };
-    "@babel/plugin-proposal-object-rest-spread-7.10.3" = {
+    "@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.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.3.tgz";
-        sha512 = "ZZh5leCIlH9lni5bU/wB/UcjtcVLgR8gc+FAgW2OOY+m9h1II3ItTO1/cewNUcsIDZSYcSaz/rYVls+Fb0ExVQ==";
+        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-optional-catch-binding-7.10.1" = {
+    "@babel/plugin-proposal-optional-catch-binding-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
       packageName = "@babel/plugin-proposal-optional-catch-binding";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz";
-        sha512 = "VqExgeE62YBqI3ogkGoOJp1R6u12DFZjqwJhqtKc2o5m1YTUuUWnos7bZQFBhwkxIFpWYJ7uB75U7VAPPiKETA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz";
+        sha512 = "LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==";
       };
     };
-    "@babel/plugin-proposal-optional-chaining-7.10.3" = {
+    "@babel/plugin-proposal-optional-chaining-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-optional-chaining";
       packageName = "@babel/plugin-proposal-optional-chaining";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.3.tgz";
-        sha512 = "yyG3n9dJ1vZ6v5sfmIlMMZ8azQoqx/5/nZTSWX1td6L1H1bsjzA8TInDChpafCZiJkeOFzp/PtrfigAQXxI1Ng==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz";
+        sha512 = "ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ==";
       };
     };
-    "@babel/plugin-proposal-unicode-property-regex-7.10.1" = {
+    "@babel/plugin-proposal-unicode-property-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
       packageName = "@babel/plugin-proposal-unicode-property-regex";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz";
-        sha512 = "JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz";
+        sha512 = "H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==";
       };
     };
     "@babel/plugin-syntax-async-generators-7.8.4" = {
@@ -391,13 +391,13 @@ let
         sha512 = "aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==";
       };
     };
-    "@babel/plugin-syntax-numeric-separator-7.10.1" = {
+    "@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.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz";
-        sha512 = "uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg==";
+        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" = {
@@ -427,238 +427,238 @@ let
         sha512 = "KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==";
       };
     };
-    "@babel/plugin-syntax-top-level-await-7.10.1" = {
+    "@babel/plugin-syntax-top-level-await-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-top-level-await";
       packageName = "@babel/plugin-syntax-top-level-await";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz";
-        sha512 = "hgA5RYkmZm8FTFT3yu2N9Bx7yVVOKYT6yEdXXo6j2JTm0wNxgqaGeQVaSHRjhfnQbX91DtjFB6McRFSlcJH3xQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz";
+        sha512 = "ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==";
       };
     };
-    "@babel/plugin-transform-arrow-functions-7.10.1" = {
+    "@babel/plugin-transform-arrow-functions-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-arrow-functions";
       packageName = "@babel/plugin-transform-arrow-functions";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz";
-        sha512 = "6AZHgFJKP3DJX0eCNJj01RpytUa3SOGawIxweHkNX2L6PYikOZmoh5B0d7hIHaIgveMjX990IAa/xK7jRTN8OA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz";
+        sha512 = "9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==";
       };
     };
-    "@babel/plugin-transform-async-to-generator-7.10.1" = {
+    "@babel/plugin-transform-async-to-generator-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-async-to-generator";
       packageName = "@babel/plugin-transform-async-to-generator";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz";
-        sha512 = "XCgYjJ8TY2slj6SReBUyamJn3k2JLUIiiR5b6t1mNCMSvv7yx+jJpaewakikp0uWFQSF7ChPPoe3dHmXLpISkg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz";
+        sha512 = "F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==";
       };
     };
-    "@babel/plugin-transform-block-scoped-functions-7.10.1" = {
+    "@babel/plugin-transform-block-scoped-functions-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-block-scoped-functions";
       packageName = "@babel/plugin-transform-block-scoped-functions";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz";
-        sha512 = "B7K15Xp8lv0sOJrdVAoukKlxP9N59HS48V1J3U/JGj+Ad+MHq+am6xJVs85AgXrQn4LV8vaYFOB+pr/yIuzW8Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz";
+        sha512 = "WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==";
       };
     };
-    "@babel/plugin-transform-block-scoping-7.10.1" = {
+    "@babel/plugin-transform-block-scoping-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-block-scoping";
       packageName = "@babel/plugin-transform-block-scoping";
-      version = "7.10.1";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz";
-        sha512 = "8bpWG6TtF5akdhIm/uWTyjHqENpy13Fx8chg7pFH875aNLwX8JxIxqm08gmAT+Whe6AOmaTeLPe7dpLbXt+xUw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz";
+        sha512 = "6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg==";
       };
     };
-    "@babel/plugin-transform-classes-7.10.3" = {
+    "@babel/plugin-transform-classes-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-classes";
       packageName = "@babel/plugin-transform-classes";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.3.tgz";
-        sha512 = "irEX0ChJLaZVC7FvvRoSIxJlmk0IczFLcwaRXUArBKYHCHbOhe57aG8q3uw/fJsoSXvZhjRX960hyeAGlVBXZw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz";
+        sha512 = "2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==";
       };
     };
-    "@babel/plugin-transform-computed-properties-7.10.3" = {
+    "@babel/plugin-transform-computed-properties-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-computed-properties";
       packageName = "@babel/plugin-transform-computed-properties";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.3.tgz";
-        sha512 = "GWzhaBOsdbjVFav96drOz7FzrcEW6AP5nax0gLIpstiFaI3LOb2tAg06TimaWU6YKOfUACK3FVrxPJ4GSc5TgA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz";
+        sha512 = "JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==";
       };
     };
-    "@babel/plugin-transform-destructuring-7.10.1" = {
+    "@babel/plugin-transform-destructuring-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-destructuring";
       packageName = "@babel/plugin-transform-destructuring";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz";
-        sha512 = "V/nUc4yGWG71OhaTH705pU8ZSdM6c1KmmLP8ys59oOYbT7RpMYAR3MsVOt6OHL0WzG7BlTU076va9fjJyYzJMA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz";
+        sha512 = "+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==";
       };
     };
-    "@babel/plugin-transform-dotall-regex-7.10.1" = {
+    "@babel/plugin-transform-dotall-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-dotall-regex";
       packageName = "@babel/plugin-transform-dotall-regex";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz";
-        sha512 = "19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz";
+        sha512 = "ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==";
       };
     };
-    "@babel/plugin-transform-duplicate-keys-7.10.1" = {
+    "@babel/plugin-transform-duplicate-keys-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-duplicate-keys";
       packageName = "@babel/plugin-transform-duplicate-keys";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz";
-        sha512 = "wIEpkX4QvX8Mo9W6XF3EdGttrIPZWozHfEaDTU0WJD/TDnXMvdDh30mzUl/9qWhnf7naicYartcEfUghTCSNpA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz";
+        sha512 = "GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==";
       };
     };
-    "@babel/plugin-transform-exponentiation-operator-7.10.1" = {
+    "@babel/plugin-transform-exponentiation-operator-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-exponentiation-operator";
       packageName = "@babel/plugin-transform-exponentiation-operator";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz";
-        sha512 = "lr/przdAbpEA2BUzRvjXdEDLrArGRRPwbaF9rvayuHRvdQ7lUTTkZnhZrJ4LE2jvgMRFF4f0YuPQ20vhiPYxtA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz";
+        sha512 = "S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==";
       };
     };
-    "@babel/plugin-transform-for-of-7.10.1" = {
+    "@babel/plugin-transform-for-of-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-for-of";
       packageName = "@babel/plugin-transform-for-of";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz";
-        sha512 = "US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz";
+        sha512 = "ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==";
       };
     };
-    "@babel/plugin-transform-function-name-7.10.1" = {
+    "@babel/plugin-transform-function-name-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-function-name";
       packageName = "@babel/plugin-transform-function-name";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz";
-        sha512 = "//bsKsKFBJfGd65qSNNh1exBy5Y9gD9ZN+DvrJ8f7HXr4avE5POW6zB7Rj6VnqHV33+0vXWUwJT0wSHubiAQkw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz";
+        sha512 = "OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==";
       };
     };
-    "@babel/plugin-transform-literals-7.10.1" = {
+    "@babel/plugin-transform-literals-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-literals";
       packageName = "@babel/plugin-transform-literals";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz";
-        sha512 = "qi0+5qgevz1NHLZroObRm5A+8JJtibb7vdcPQF1KQE12+Y/xxl8coJ+TpPW9iRq+Mhw/NKLjm+5SHtAHCC7lAw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz";
+        sha512 = "Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==";
       };
     };
-    "@babel/plugin-transform-member-expression-literals-7.10.1" = {
+    "@babel/plugin-transform-member-expression-literals-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-member-expression-literals";
       packageName = "@babel/plugin-transform-member-expression-literals";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz";
-        sha512 = "UmaWhDokOFT2GcgU6MkHC11i0NQcL63iqeufXWfRy6pUOGYeCGEKhvfFO6Vz70UfYJYHwveg62GS83Rvpxn+NA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz";
+        sha512 = "0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==";
       };
     };
-    "@babel/plugin-transform-modules-amd-7.10.1" = {
+    "@babel/plugin-transform-modules-amd-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-modules-amd";
       packageName = "@babel/plugin-transform-modules-amd";
-      version = "7.10.1";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz";
-        sha512 = "31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz";
+        sha512 = "elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==";
       };
     };
-    "@babel/plugin-transform-modules-commonjs-7.10.1" = {
+    "@babel/plugin-transform-modules-commonjs-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-modules-commonjs";
       packageName = "@babel/plugin-transform-modules-commonjs";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz";
-        sha512 = "AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz";
+        sha512 = "Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==";
       };
     };
-    "@babel/plugin-transform-modules-systemjs-7.10.3" = {
+    "@babel/plugin-transform-modules-systemjs-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-modules-systemjs";
       packageName = "@babel/plugin-transform-modules-systemjs";
-      version = "7.10.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.3.tgz";
-        sha512 = "GWXWQMmE1GH4ALc7YXW56BTh/AlzvDWhUNn9ArFF0+Cz5G8esYlVbXfdyHa1xaD1j+GnBoCeoQNlwtZTVdiG/A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz";
+        sha512 = "f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==";
       };
     };
-    "@babel/plugin-transform-modules-umd-7.10.1" = {
+    "@babel/plugin-transform-modules-umd-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-modules-umd";
       packageName = "@babel/plugin-transform-modules-umd";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz";
-        sha512 = "EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz";
+        sha512 = "mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==";
       };
     };
-    "@babel/plugin-transform-named-capturing-groups-regex-7.10.3" = {
+    "@babel/plugin-transform-named-capturing-groups-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
       packageName = "@babel/plugin-transform-named-capturing-groups-regex";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.3.tgz";
-        sha512 = "I3EH+RMFyVi8Iy/LekQm948Z4Lz4yKT7rK+vuCAeRm0kTa6Z5W7xuhRxDNJv0FPya/her6AUgrDITb70YHtTvA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz";
+        sha512 = "V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==";
       };
     };
-    "@babel/plugin-transform-new-target-7.10.1" = {
+    "@babel/plugin-transform-new-target-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-new-target";
       packageName = "@babel/plugin-transform-new-target";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz";
-        sha512 = "MBlzPc1nJvbmO9rPr1fQwXOM2iGut+JC92ku6PbiJMMK7SnQc1rytgpopveE3Evn47gzvGYeCdgfCDbZo0ecUw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz";
+        sha512 = "YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==";
       };
     };
-    "@babel/plugin-transform-object-super-7.10.1" = {
+    "@babel/plugin-transform-object-super-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-object-super";
       packageName = "@babel/plugin-transform-object-super";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz";
-        sha512 = "WnnStUDN5GL+wGQrJylrnnVlFhFmeArINIR9gjhSeYyvroGhBrSAXYg/RHsnfzmsa+onJrTJrEClPzgNmmQ4Gw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz";
+        sha512 = "5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==";
       };
     };
-    "@babel/plugin-transform-parameters-7.10.1" = {
+    "@babel/plugin-transform-parameters-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-parameters";
       packageName = "@babel/plugin-transform-parameters";
-      version = "7.10.1";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz";
-        sha512 = "tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz";
+        sha512 = "xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==";
       };
     };
-    "@babel/plugin-transform-property-literals-7.10.1" = {
+    "@babel/plugin-transform-property-literals-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-property-literals";
       packageName = "@babel/plugin-transform-property-literals";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz";
-        sha512 = "Kr6+mgag8auNrgEpbfIWzdXYOvqDHZOF0+Bx2xh4H2EDNwcbRb9lY6nkZg8oSjsX+DH9Ebxm9hOqtKW+gRDeNA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz";
+        sha512 = "ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==";
       };
     };
-    "@babel/plugin-transform-regenerator-7.10.3" = {
+    "@babel/plugin-transform-regenerator-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-regenerator";
       packageName = "@babel/plugin-transform-regenerator";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.3.tgz";
-        sha512 = "H5kNeW0u8mbk0qa1jVIVTeJJL6/TJ81ltD4oyPx0P499DhMJrTmmIFCmJ3QloGpQG8K9symccB7S7SJpCKLwtw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz";
+        sha512 = "3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==";
       };
     };
-    "@babel/plugin-transform-reserved-words-7.10.1" = {
+    "@babel/plugin-transform-reserved-words-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-reserved-words";
       packageName = "@babel/plugin-transform-reserved-words";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz";
-        sha512 = "qN1OMoE2nuqSPmpTqEM7OvJ1FkMEV+BjVeZZm9V9mq/x1JLKQ4pcv8riZJMNN3u2AUGl0ouOMjRr2siecvHqUQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz";
+        sha512 = "hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==";
       };
     };
     "@babel/plugin-transform-runtime-7.9.6" = {
@@ -670,58 +670,58 @@ let
         sha512 = "qcmiECD0mYOjOIt8YHNsAP1SxPooC/rDmfmiSK9BNY72EitdSc7l44WTEklaWuFtbOEBjNhWWyph/kOImbNJ4w==";
       };
     };
-    "@babel/plugin-transform-shorthand-properties-7.10.1" = {
+    "@babel/plugin-transform-shorthand-properties-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-shorthand-properties";
       packageName = "@babel/plugin-transform-shorthand-properties";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz";
-        sha512 = "AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz";
+        sha512 = "AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==";
       };
     };
-    "@babel/plugin-transform-spread-7.10.1" = {
+    "@babel/plugin-transform-spread-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-spread";
       packageName = "@babel/plugin-transform-spread";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz";
-        sha512 = "8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz";
+        sha512 = "1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==";
       };
     };
-    "@babel/plugin-transform-sticky-regex-7.10.1" = {
+    "@babel/plugin-transform-sticky-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-sticky-regex";
       packageName = "@babel/plugin-transform-sticky-regex";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz";
-        sha512 = "j17ojftKjrL7ufX8ajKvwRilwqTok4q+BjkknmQw9VNHnItTyMP5anPFzxFJdCQs7clLcWpCV3ma+6qZWLnGMA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz";
+        sha512 = "Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==";
       };
     };
-    "@babel/plugin-transform-template-literals-7.10.3" = {
+    "@babel/plugin-transform-template-literals-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-template-literals";
       packageName = "@babel/plugin-transform-template-literals";
-      version = "7.10.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.3.tgz";
-        sha512 = "yaBn9OpxQra/bk0/CaA4wr41O0/Whkg6nqjqApcinxM7pro51ojhX6fv1pimAnVjVfDy14K0ULoRL70CA9jWWA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz";
+        sha512 = "V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==";
       };
     };
-    "@babel/plugin-transform-typeof-symbol-7.10.1" = {
+    "@babel/plugin-transform-typeof-symbol-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-typeof-symbol";
       packageName = "@babel/plugin-transform-typeof-symbol";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz";
-        sha512 = "qX8KZcmbvA23zDi+lk9s6hC1FM7jgLHYIjuLgULgc8QtYnmB3tAVIYkNoKRQ75qWBeyzcoMoK8ZQmogGtC/w0g==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz";
+        sha512 = "QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==";
       };
     };
-    "@babel/plugin-transform-unicode-regex-7.10.1" = {
+    "@babel/plugin-transform-unicode-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-unicode-regex";
       packageName = "@babel/plugin-transform-unicode-regex";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz";
-        sha512 = "Y/2a2W299k0VIUdbqYm9X2qS6fE0CUBhhiPpimK6byy7OJ/kORLlIX+J6UrjgNu5awvs62k+6RSslxhcvVw2Tw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz";
+        sha512 = "wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==";
       };
     };
     "@babel/preset-env-7.9.6" = {
@@ -751,31 +751,31 @@ let
         sha512 = "64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==";
       };
     };
-    "@babel/template-7.10.3" = {
+    "@babel/template-7.10.4" = {
       name = "_at_babel_slash_template";
       packageName = "@babel/template";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/template/-/template-7.10.3.tgz";
-        sha512 = "5BjI4gdtD+9fHZUsaxPHPNpwa+xRkDO7c7JbhYn2afvrkDu5SfAAbi9AIMXw2xEhO/BR35TqiW97IqNvCo/GqA==";
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz";
+        sha512 = "ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==";
       };
     };
-    "@babel/traverse-7.10.3" = {
+    "@babel/traverse-7.10.5" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.10.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.3.tgz";
-        sha512 = "qO6623eBFhuPm0TmmrUFMT1FulCmsSeJuVGhiLodk2raUDFhhTECLd9E9jC4LBIWziqt4wgF6KuXE4d+Jz9yug==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz";
+        sha512 = "yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==";
       };
     };
-    "@babel/types-7.10.3" = {
+    "@babel/types-7.10.5" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.10.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.10.3.tgz";
-        sha512 = "nZxaJhBXBQ8HVoIcGsf9qWep3Oh3jCENK54V4mRF7qaJabVsAYdbTtmSD8WmAp1R6ytPiu5apMwSXyxB1WlaBA==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz";
+        sha512 = "ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==";
       };
     };
     "@hapi/address-2.1.4" = {
@@ -931,13 +931,13 @@ let
         sha512 = "rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==";
       };
     };
-    "@types/glob-7.1.2" = {
+    "@types/glob-7.1.3" = {
       name = "_at_types_slash_glob";
       packageName = "@types/glob";
-      version = "7.1.2";
+      version = "7.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.2.tgz";
-        sha512 = "VgNIkxK+j7Nz5P7jvUZlRvhuPSmsEfS03b0alKcq5V/STUKAa3Plemsn5mrQUO7am6OErJ4rhGEGJbACclrtRA==";
+        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz";
+        sha512 = "SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==";
       };
     };
     "@types/html-minifier-terser-5.1.0" = {
@@ -994,13 +994,13 @@ let
         sha512 = "tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==";
       };
     };
-    "@types/node-14.0.13" = {
+    "@types/node-14.0.23" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "14.0.13";
+      version = "14.0.23";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.0.13.tgz";
-        sha512 = "rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA==";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.0.23.tgz";
+        sha512 = "Z4U8yDAl5TFkmYsZdFPdjeMa57NOvnaf1tljHzhouaPEp7LCj2JKkejpI1ODviIAQuW4CcQmxkQ77rnLsOOoKw==";
       };
     };
     "@types/q-1.5.4" = {
@@ -1039,22 +1039,22 @@ let
         sha512 = "W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==";
       };
     };
-    "@types/uglify-js-3.9.2" = {
+    "@types/uglify-js-3.9.3" = {
       name = "_at_types_slash_uglify-js";
       packageName = "@types/uglify-js";
-      version = "3.9.2";
+      version = "3.9.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.2.tgz";
-        sha512 = "d6dIfpPbF+8B7WiCi2ELY7m0w1joD8cRW4ms88Emdb2w062NeEpbNCeWwVCgzLRpVG+5e74VFSg4rgJ2xXjEiQ==";
+        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.3.tgz";
+        sha512 = "KswB5C7Kwduwjj04Ykz+AjvPcfgv/37Za24O2EDzYNbwyzOo8+ydtvzUfZ5UMguiVu29Gx44l1A6VsPPcmYu9w==";
       };
     };
-    "@types/webpack-4.41.17" = {
+    "@types/webpack-4.41.21" = {
       name = "_at_types_slash_webpack";
       packageName = "@types/webpack";
-      version = "4.41.17";
+      version = "4.41.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.17.tgz";
-        sha512 = "6FfeCidTSHozwKI67gIVQQ5Mp0g4X96c2IXxX75hYEQJwST/i6NyZexP//zzMOBb+wG9jJ7oO8fk9yObP2HWAw==";
+        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.21.tgz";
+        sha512 = "2j9WVnNrr/8PLAB5csW44xzQSJwS26aOnICsP3pSGCEdsu6KYtfQ6QJsVUKHWRnm1bL7HziJsfh5fHqth87yKA==";
       };
     };
     "@types/webpack-sources-1.4.0" = {
@@ -1282,13 +1282,13 @@ let
         sha512 = "z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==";
       };
     };
-    "ajv-6.12.2" = {
+    "ajv-6.12.3" = {
       name = "ajv";
       packageName = "ajv";
-      version = "6.12.2";
+      version = "6.12.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz";
-        sha512 = "k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==";
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz";
+        sha512 = "4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==";
       };
     };
     "ajv-errors-1.0.1" = {
@@ -1300,13 +1300,13 @@ let
         sha512 = "DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==";
       };
     };
-    "ajv-keywords-3.5.0" = {
+    "ajv-keywords-3.5.1" = {
       name = "ajv-keywords";
       packageName = "ajv-keywords";
-      version = "3.5.0";
+      version = "3.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.0.tgz";
-        sha512 = "eyoaac3btgU8eJlvh01En8OCKzRqlLe2G5jDsCr3RiE2uLGMEEB1aaGwVVpwR8M95956tGH6R+9edC++OvzaVw==";
+        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz";
+        sha512 = "KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA==";
       };
     };
     "alphanum-sort-1.0.2" = {
@@ -1867,13 +1867,13 @@ let
         sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==";
       };
     };
-    "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==";
       };
     };
     "bindings-1.5.0" = {
@@ -2065,13 +2065,13 @@ let
         sha512 = "VBorw+tgpOtZ1BYhrVSVTzTt/3+vSE3eFUh0N2GCFK1HffceOaf32YS/bs6WiFhjDAblAFrx85jMy3BG9fBK2Q==";
       };
     };
-    "browserslist-4.12.0" = {
+    "browserslist-4.13.0" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.12.0";
+      version = "4.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz";
-        sha512 = "UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz";
+        sha512 = "MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==";
       };
     };
     "buffer-4.9.2" = {
@@ -2272,13 +2272,13 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001087" = {
+    "caniuse-lite-1.0.30001102" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001087";
+      version = "1.0.30001102";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001087.tgz";
-        sha512 = "KAQRGtt+eGCQBSp2iZTQibdCf9oe6cNTi5lmpsW38NnxP4WMYzfU6HCRmh4kJyh6LrTM9/uyElK4xcO93kafpg==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001102.tgz";
+        sha512 = "fOjqRmHjRXv1H1YD6QVLb96iKqnu17TjcLSaX64TwhGYed0P1E1CCWZ9OujbbK4Z/7zax7zAzvQidzdtjx8RcA==";
       };
     };
     "case-sensitive-paths-webpack-plugin-2.3.0" = {
@@ -2407,13 +2407,13 @@ let
         sha512 = "dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==";
       };
     };
-    "chokidar-3.4.0" = {
+    "chokidar-3.4.1" = {
       name = "chokidar";
       packageName = "chokidar";
-      version = "3.4.0";
+      version = "3.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz";
-        sha512 = "aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==";
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz";
+        sha512 = "TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==";
       };
     };
     "chownr-1.1.4" = {
@@ -3046,13 +3046,13 @@ let
         sha512 = "BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==";
       };
     };
-    "css-loader-3.5.3" = {
+    "css-loader-3.6.0" = {
       name = "css-loader";
       packageName = "css-loader";
-      version = "3.5.3";
+      version = "3.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-loader/-/css-loader-3.5.3.tgz";
-        sha512 = "UEr9NH5Lmi7+dguAm+/JSPovNjYbm2k3TK58EiwQHzOHH5Jfq1Y+XoP2bQO6TMn7PptMd0opxxedAWcaSTRKHw==";
+        url = "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz";
+        sha512 = "M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==";
       };
     };
     "css-select-1.2.0" = {
@@ -3640,13 +3640,13 @@ let
         sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
       };
     };
-    "electron-to-chromium-1.3.481" = {
+    "electron-to-chromium-1.3.500" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.481";
+      version = "1.3.500";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.481.tgz";
-        sha512 = "q2PeCP2PQXSYadDo9uNY+uHXjdB9PcsUpCVoGlY8TZOPHGlXdevlqW9PkKeqCxn2QBkGB8b6AcMO++gh8X82bA==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.500.tgz";
+        sha512 = "Zz8BZh4Ssb/rZBaicqpi+GOQ0uu3y+24+MxBLCk0UYt8EGoZRP4cYzYHHwXGZfrSbCU4VDjbWN+Tg+TPgOUX6Q==";
       };
     };
     "elliptic-6.5.3" = {
@@ -3812,13 +3812,13 @@ let
         sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
       };
     };
-    "enhanced-resolve-4.2.0" = {
+    "enhanced-resolve-4.3.0" = {
       name = "enhanced-resolve";
       packageName = "enhanced-resolve";
-      version = "4.2.0";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.2.0.tgz";
-        sha512 = "S7eiFb/erugyd1rLb6mQ3Vuq+EXHv5cpCkNqqIkYkBgN2QdFnyCZzFBleqwGEx4lgNGYij81BWnCrFNK7vxvjQ==";
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz";
+        sha512 = "3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==";
       };
     };
     "entities-1.1.2" = {
@@ -3884,6 +3884,15 @@ let
         sha512 = "HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==";
       };
     };
+    "escalade-3.0.2" = {
+      name = "escalade";
+      packageName = "escalade";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz";
+        sha512 = "gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==";
+      };
+    };
     "escape-html-1.0.3" = {
       name = "escape-html";
       packageName = "escape-html";
@@ -4037,13 +4046,13 @@ let
         sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==";
       };
     };
-    "execa-4.0.2" = {
+    "execa-4.0.3" = {
       name = "execa";
       packageName = "execa";
-      version = "4.0.2";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/execa/-/execa-4.0.2.tgz";
-        sha512 = "QI2zLa6CjGWdiQsmSkZoGtDx2N+cQIGb3yNolGTdjSQzydzLgYYf8LRuagp7S7fPimjcrzUDSUFd/MgzELMi4Q==";
+        url = "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz";
+        sha512 = "WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==";
       };
     };
     "expand-brackets-2.1.4" = {
@@ -6350,6 +6359,15 @@ let
         sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==";
       };
     };
+    "lodash-4.17.19" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "4.17.19";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz";
+        sha512 = "JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==";
+      };
+    };
     "lodash._reinterpolate-3.0.0" = {
       name = "lodash._reinterpolate";
       packageName = "lodash._reinterpolate";
@@ -6962,13 +6980,13 @@ let
         sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
       };
     };
-    "neo-async-2.6.1" = {
+    "neo-async-2.6.2" = {
       name = "neo-async";
       packageName = "neo-async";
-      version = "2.6.1";
+      version = "2.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz";
-        sha512 = "iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==";
+        url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz";
+        sha512 = "Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==";
       };
     };
     "nice-try-1.0.5" = {
@@ -7016,13 +7034,13 @@ let
         sha512 = "h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==";
       };
     };
-    "node-releases-1.1.58" = {
+    "node-releases-1.1.59" = {
       name = "node-releases";
       packageName = "node-releases";
-      version = "1.1.58";
+      version = "1.1.59";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz";
-        sha512 = "NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==";
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz";
+        sha512 = "H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==";
       };
     };
     "node-watch-0.5.5" = {
@@ -8321,15 +8339,6 @@ let
         sha1 = "5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3";
       };
     };
-    "private-0.1.8" = {
-      name = "private";
-      packageName = "private";
-      version = "0.1.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/private/-/private-0.1.8.tgz";
-        sha512 = "VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==";
-      };
-    };
     "process-0.11.10" = {
       name = "process";
       packageName = "process";
@@ -8780,13 +8789,13 @@ let
         sha1 = "d33eb95d0d2001a4be39659707c51b0cb71ce029";
       };
     };
-    "regenerator-transform-0.14.4" = {
+    "regenerator-transform-0.14.5" = {
       name = "regenerator-transform";
       packageName = "regenerator-transform";
-      version = "0.14.4";
+      version = "0.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz";
-        sha512 = "EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==";
+        url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz";
+        sha512 = "eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==";
       };
     };
     "regex-not-1.0.2" = {
@@ -8816,13 +8825,13 @@ let
         sha512 = "TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==";
       };
     };
-    "registry-auth-token-4.1.1" = {
+    "registry-auth-token-4.2.0" = {
       name = "registry-auth-token";
       packageName = "registry-auth-token";
-      version = "4.1.1";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz";
-        sha512 = "9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==";
+        url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz";
+        sha512 = "P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==";
       };
     };
     "registry-url-5.1.0" = {
@@ -9149,13 +9158,13 @@ let
         sha1 = "e848396f057d223f24386924618e25694161ec47";
       };
     };
-    "rxjs-6.5.5" = {
+    "rxjs-6.6.0" = {
       name = "rxjs";
       packageName = "rxjs";
-      version = "6.5.5";
+      version = "6.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz";
-        sha512 = "WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==";
+        url = "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz";
+        sha512 = "3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==";
       };
     };
     "safe-buffer-5.1.1" = {
@@ -11291,13 +11300,13 @@ let
         sha512 = "o41D/WmDeca0BqYhsr3nJzQyg9NF5X8l/UdnFNux9cS3lwB+swm8qGWX5rn+aD6xfBU3rGmtHij7g7x6LxFU3A==";
       };
     };
-    "ws-7.3.0" = {
+    "ws-7.3.1" = {
       name = "ws";
       packageName = "ws";
-      version = "7.3.0";
+      version = "7.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.3.0.tgz";
-        sha512 = "iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==";
+        url = "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz";
+        sha512 = "D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==";
       };
     };
     "xmlbuilder-13.0.2" = {
@@ -11363,13 +11372,13 @@ let
         sha512 = "AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==";
       };
     };
-    "yargs-15.3.1" = {
+    "yargs-15.4.1" = {
       name = "yargs";
       packageName = "yargs";
-      version = "15.3.1";
+      version = "15.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz";
-        sha512 = "92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==";
+        url = "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz";
+        sha512 = "aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==";
       };
     };
     "yargs-6.6.0" = {
@@ -11430,7 +11439,7 @@ in
     };
     dependencies = [
       sources."accepts-1.3.7"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."array-flatten-1.1.1"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
@@ -11519,7 +11528,7 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-2.4.0"
       sources."jsprim-1.4.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
@@ -11617,7 +11626,7 @@ in
     dependencies = [
       sources."@types/color-name-1.1.1"
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.1"
@@ -11630,7 +11639,7 @@ in
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."binary-0.3.0"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."binwrap-0.2.2"
       sources."bluebird-3.7.2"
       sources."brace-expansion-1.1.11"
@@ -11674,6 +11683,7 @@ in
             ];
           })
           sources."fs-extra-8.1.0"
+          sources."lodash-4.17.15"
           sources."which-2.0.1"
         ];
       })
@@ -11689,6 +11699,7 @@ in
       (sources."find-elm-dependencies-2.0.2" // {
         dependencies = [
           sources."firstline-1.2.0"
+          sources."lodash-4.17.15"
         ];
       })
       sources."find-parent-dir-0.3.0"
@@ -11727,7 +11738,7 @@ in
       sources."jsonfile-4.0.0"
       sources."jsprim-1.4.1"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       (sources."lru-cache-4.1.5" // {
         dependencies = [
           sources."yallist-2.1.2"
@@ -11747,6 +11758,7 @@ in
       (sources."node-elm-compiler-5.0.4" // {
         dependencies = [
           sources."cross-spawn-6.0.5"
+          sources."lodash-4.17.15"
           sources."path-key-2.0.1"
         ];
       })
@@ -11828,7 +11840,7 @@ in
       sources."xmlbuilder-13.0.2"
       sources."y18n-4.0.0"
       sources."yallist-3.1.1"
-      (sources."yargs-15.3.1" // {
+      (sources."yargs-15.4.1" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."emoji-regex-8.0.0"
@@ -11868,7 +11880,7 @@ in
       sources."async-limiter-1.0.1"
       sources."balanced-match-1.0.0"
       sources."batch-0.6.1"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."body-parser-1.19.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
@@ -11880,7 +11892,7 @@ in
         ];
       })
       sources."chalk-3.0.0"
-      sources."chokidar-3.4.0"
+      sources."chokidar-3.4.1"
       sources."clone-response-1.0.2"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
@@ -11969,7 +11981,7 @@ in
       sources."raw-body-2.4.0"
       sources."rc-1.2.8"
       sources."readdirp-3.4.0"
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       sources."responselike-1.0.2"
       sources."rimraf-2.7.1"
@@ -12005,7 +12017,7 @@ in
       sources."vary-1.1.2"
       sources."which-2.0.2"
       sources."wrappy-1.0.2"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -12030,7 +12042,7 @@ in
       sources."@nodelib/fs.stat-2.0.3"
       sources."@nodelib/fs.walk-1.2.4"
       sources."accepts-1.3.7"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."array-flatten-1.1.1"
       sources."array-union-2.1.0"
       sources."asn1-0.2.4"
@@ -12068,7 +12080,7 @@ in
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-4.0.0"
       sources."etag-1.8.1"
-      (sources."execa-4.0.2" // {
+      (sources."execa-4.0.3" // {
         dependencies = [
           sources."is-stream-2.0.0"
         ];
@@ -12123,7 +12135,7 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-2.4.0"
       sources."jsprim-1.4.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.19"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."merge-stream-2.0.0"
@@ -12246,7 +12258,7 @@ in
       sources."ansi-styles-2.2.1"
       sources."anymatch-3.1.1"
       sources."async-limiter-1.0.1"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."braces-3.0.2"
       sources."chalk-1.1.3"
       sources."charenc-0.0.2"
@@ -12360,7 +12372,7 @@ in
     };
     dependencies = [
       sources."@types/color-name-1.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."ansi-styles-4.2.1"
       sources."anymatch-3.1.1"
       sources."asn1-0.2.4"
@@ -12371,7 +12383,7 @@ in
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."binary-0.3.0"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."binwrap-0.2.2"
       sources."bluebird-3.7.2"
       sources."brace-expansion-1.1.11"
@@ -12519,7 +12531,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.0.13"
+      sources."@types/node-14.0.23"
       sources."@types/responselike-1.0.0"
       sources."cacheable-lookup-2.0.1"
       sources."cacheable-request-7.0.1"
@@ -12593,7 +12605,7 @@ in
       sha512 = "dAOv+U9hXZ0IRGx19mkpCAdf5rUwoJWlzFmcR2gvOzE/QjZUSlPh3e0IIDAfGUuEF8DjfE5CTe31fNtIkkd2rQ==";
     };
     dependencies = [
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.1"
@@ -12605,7 +12617,7 @@ in
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."binary-0.3.0"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."binwrap-0.2.2"
       sources."bluebird-3.7.2"
       sources."brace-expansion-1.1.11"
@@ -12822,107 +12834,107 @@ in
   create-elm-app = nodeEnv.buildNodePackage {
     name = "create-elm-app";
     packageName = "create-elm-app";
-    version = "4.2.25";
+    version = "4.2.26";
     src = fetchurl {
-      url = "https://registry.npmjs.org/create-elm-app/-/create-elm-app-4.2.25.tgz";
-      sha512 = "Lasm7xrh8XQR2aqqwRlB2gJ5CWAGNaVoHpjGVft+EkSKMtHn5xtRAEGU3U4IuRDIhL7kvPFZXX4g8VQ7o79UJg==";
+      url = "https://registry.npmjs.org/create-elm-app/-/create-elm-app-4.2.26.tgz";
+      sha512 = "m8+dA/ea43gXODN7nnd8zSXSNTtnhSFLK5O9xNSxRWasaLPI6fqO3TsG0MADSV1sB66rmHRFsn5au12ir058DQ==";
     };
     dependencies = [
       sources."@babel/cli-7.8.4"
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/compat-data-7.10.3"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/compat-data-7.10.5"
       (sources."@babel/core-7.9.6" // {
         dependencies = [
           sources."debug-4.2.0"
           sources."ms-2.1.2"
         ];
       })
-      sources."@babel/generator-7.10.3"
-      sources."@babel/helper-annotate-as-pure-7.10.1"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.3"
-      sources."@babel/helper-compilation-targets-7.10.2"
-      sources."@babel/helper-create-regexp-features-plugin-7.10.1"
-      sources."@babel/helper-define-map-7.10.3"
-      sources."@babel/helper-explode-assignable-expression-7.10.3"
-      sources."@babel/helper-function-name-7.10.3"
-      sources."@babel/helper-get-function-arity-7.10.3"
-      sources."@babel/helper-hoist-variables-7.10.3"
-      sources."@babel/helper-member-expression-to-functions-7.10.3"
-      sources."@babel/helper-module-imports-7.10.3"
-      sources."@babel/helper-module-transforms-7.10.1"
-      sources."@babel/helper-optimise-call-expression-7.10.3"
-      sources."@babel/helper-plugin-utils-7.10.3"
-      sources."@babel/helper-regex-7.10.1"
-      sources."@babel/helper-remap-async-to-generator-7.10.3"
-      sources."@babel/helper-replace-supers-7.10.1"
-      sources."@babel/helper-simple-access-7.10.1"
-      sources."@babel/helper-split-export-declaration-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      sources."@babel/helper-wrap-function-7.10.1"
-      sources."@babel/helpers-7.10.1"
-      sources."@babel/highlight-7.10.3"
-      sources."@babel/parser-7.10.3"
-      sources."@babel/plugin-proposal-async-generator-functions-7.10.3"
-      sources."@babel/plugin-proposal-dynamic-import-7.10.1"
-      sources."@babel/plugin-proposal-json-strings-7.10.1"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.1"
-      sources."@babel/plugin-proposal-numeric-separator-7.10.1"
-      sources."@babel/plugin-proposal-object-rest-spread-7.10.3"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.10.1"
-      sources."@babel/plugin-proposal-optional-chaining-7.10.3"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.10.1"
+      sources."@babel/generator-7.10.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.10.4"
+      sources."@babel/helper-create-regexp-features-plugin-7.10.4"
+      sources."@babel/helper-define-map-7.10.5"
+      sources."@babel/helper-explode-assignable-expression-7.10.4"
+      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.10.5"
+      sources."@babel/helper-module-imports-7.10.4"
+      sources."@babel/helper-module-transforms-7.10.5"
+      sources."@babel/helper-optimise-call-expression-7.10.4"
+      sources."@babel/helper-plugin-utils-7.10.4"
+      sources."@babel/helper-regex-7.10.5"
+      sources."@babel/helper-remap-async-to-generator-7.10.4"
+      sources."@babel/helper-replace-supers-7.10.4"
+      sources."@babel/helper-simple-access-7.10.4"
+      sources."@babel/helper-split-export-declaration-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helper-wrap-function-7.10.4"
+      sources."@babel/helpers-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.10.5"
+      sources."@babel/plugin-proposal-async-generator-functions-7.10.5"
+      sources."@babel/plugin-proposal-dynamic-import-7.10.4"
+      sources."@babel/plugin-proposal-json-strings-7.10.4"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.4"
+      sources."@babel/plugin-proposal-numeric-separator-7.10.4"
+      sources."@babel/plugin-proposal-object-rest-spread-7.10.4"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.10.4"
+      sources."@babel/plugin-proposal-optional-chaining-7.10.4"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.10.4"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
       sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
-      sources."@babel/plugin-syntax-numeric-separator-7.10.1"
+      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.10.1"
-      sources."@babel/plugin-transform-arrow-functions-7.10.1"
-      sources."@babel/plugin-transform-async-to-generator-7.10.1"
-      sources."@babel/plugin-transform-block-scoped-functions-7.10.1"
-      sources."@babel/plugin-transform-block-scoping-7.10.1"
-      sources."@babel/plugin-transform-classes-7.10.3"
-      sources."@babel/plugin-transform-computed-properties-7.10.3"
-      sources."@babel/plugin-transform-destructuring-7.10.1"
-      sources."@babel/plugin-transform-dotall-regex-7.10.1"
-      sources."@babel/plugin-transform-duplicate-keys-7.10.1"
-      sources."@babel/plugin-transform-exponentiation-operator-7.10.1"
-      sources."@babel/plugin-transform-for-of-7.10.1"
-      sources."@babel/plugin-transform-function-name-7.10.1"
-      sources."@babel/plugin-transform-literals-7.10.1"
-      sources."@babel/plugin-transform-member-expression-literals-7.10.1"
-      sources."@babel/plugin-transform-modules-amd-7.10.1"
-      sources."@babel/plugin-transform-modules-commonjs-7.10.1"
-      sources."@babel/plugin-transform-modules-systemjs-7.10.3"
-      sources."@babel/plugin-transform-modules-umd-7.10.1"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.3"
-      sources."@babel/plugin-transform-new-target-7.10.1"
-      sources."@babel/plugin-transform-object-super-7.10.1"
-      sources."@babel/plugin-transform-parameters-7.10.1"
-      sources."@babel/plugin-transform-property-literals-7.10.1"
-      sources."@babel/plugin-transform-regenerator-7.10.3"
-      sources."@babel/plugin-transform-reserved-words-7.10.1"
+      sources."@babel/plugin-syntax-top-level-await-7.10.4"
+      sources."@babel/plugin-transform-arrow-functions-7.10.4"
+      sources."@babel/plugin-transform-async-to-generator-7.10.4"
+      sources."@babel/plugin-transform-block-scoped-functions-7.10.4"
+      sources."@babel/plugin-transform-block-scoping-7.10.5"
+      sources."@babel/plugin-transform-classes-7.10.4"
+      sources."@babel/plugin-transform-computed-properties-7.10.4"
+      sources."@babel/plugin-transform-destructuring-7.10.4"
+      sources."@babel/plugin-transform-dotall-regex-7.10.4"
+      sources."@babel/plugin-transform-duplicate-keys-7.10.4"
+      sources."@babel/plugin-transform-exponentiation-operator-7.10.4"
+      sources."@babel/plugin-transform-for-of-7.10.4"
+      sources."@babel/plugin-transform-function-name-7.10.4"
+      sources."@babel/plugin-transform-literals-7.10.4"
+      sources."@babel/plugin-transform-member-expression-literals-7.10.4"
+      sources."@babel/plugin-transform-modules-amd-7.10.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.10.4"
+      sources."@babel/plugin-transform-modules-systemjs-7.10.5"
+      sources."@babel/plugin-transform-modules-umd-7.10.4"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.4"
+      sources."@babel/plugin-transform-new-target-7.10.4"
+      sources."@babel/plugin-transform-object-super-7.10.4"
+      sources."@babel/plugin-transform-parameters-7.10.5"
+      sources."@babel/plugin-transform-property-literals-7.10.4"
+      sources."@babel/plugin-transform-regenerator-7.10.4"
+      sources."@babel/plugin-transform-reserved-words-7.10.4"
       sources."@babel/plugin-transform-runtime-7.9.6"
-      sources."@babel/plugin-transform-shorthand-properties-7.10.1"
-      sources."@babel/plugin-transform-spread-7.10.1"
-      sources."@babel/plugin-transform-sticky-regex-7.10.1"
-      sources."@babel/plugin-transform-template-literals-7.10.3"
-      sources."@babel/plugin-transform-typeof-symbol-7.10.1"
-      sources."@babel/plugin-transform-unicode-regex-7.10.1"
+      sources."@babel/plugin-transform-shorthand-properties-7.10.4"
+      sources."@babel/plugin-transform-spread-7.10.4"
+      sources."@babel/plugin-transform-sticky-regex-7.10.4"
+      sources."@babel/plugin-transform-template-literals-7.10.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.10.4"
+      sources."@babel/plugin-transform-unicode-regex-7.10.4"
       sources."@babel/preset-env-7.9.6"
       sources."@babel/preset-modules-0.1.3"
       sources."@babel/runtime-7.9.6"
-      sources."@babel/template-7.10.3"
-      (sources."@babel/traverse-7.10.3" // {
+      sources."@babel/template-7.10.4"
+      (sources."@babel/traverse-7.10.5" // {
         dependencies = [
           sources."debug-4.2.0"
           sources."ms-2.1.2"
         ];
       })
-      sources."@babel/types-7.10.3"
+      sources."@babel/types-7.10.5"
       sources."@hapi/address-2.1.4"
       sources."@hapi/bourne-1.3.2"
       sources."@hapi/hoek-8.5.1"
@@ -12932,21 +12944,21 @@ in
       sources."@nodelib/fs.stat-1.1.3"
       sources."@types/anymatch-1.3.1"
       sources."@types/color-name-1.1.1"
-      sources."@types/glob-7.1.2"
+      sources."@types/glob-7.1.3"
       sources."@types/html-minifier-terser-5.1.0"
       sources."@types/http-proxy-1.17.4"
       sources."@types/json-schema-7.0.5"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.0.13"
+      sources."@types/node-14.0.23"
       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.9.2" // {
+      (sources."@types/uglify-js-3.9.3" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      (sources."@types/webpack-4.41.17" // {
+      (sources."@types/webpack-4.41.21" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -12979,9 +12991,9 @@ in
       sources."accepts-1.3.7"
       sources."acorn-6.4.1"
       sources."address-1.0.3"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."ajv-errors-1.0.1"
-      sources."ajv-keywords-3.5.0"
+      sources."ajv-keywords-3.5.1"
       sources."alphanum-sort-1.0.2"
       sources."ansi-colors-3.2.4"
       sources."ansi-escapes-3.2.0"
@@ -13019,7 +13031,11 @@ in
         ];
       })
       sources."assert-plus-1.0.0"
-      sources."assets-webpack-plugin-3.9.12"
+      (sources."assets-webpack-plugin-3.9.12" // {
+        dependencies = [
+          sources."lodash-4.17.15"
+        ];
+      })
       sources."assign-symbols-1.0.0"
       sources."async-0.9.2"
       sources."async-each-1.0.3"
@@ -13095,7 +13111,7 @@ in
         ];
       })
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.12.0"
+      sources."browserslist-4.13.0"
       sources."buffer-4.9.2"
       sources."buffer-from-1.1.1"
       sources."buffer-indexof-1.1.1"
@@ -13112,7 +13128,7 @@ in
       sources."camel-case-4.1.1"
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001087"
+      sources."caniuse-lite-1.0.30001102"
       sources."case-sensitive-paths-webpack-plugin-2.3.0"
       sources."caseless-0.12.0"
       sources."chainsaw-0.1.0"
@@ -13185,8 +13201,6 @@ in
       sources."copy-descriptor-0.1.1"
       (sources."copy-webpack-plugin-5.1.1" // {
         dependencies = [
-          sources."p-limit-2.3.0"
-          sources."p-try-2.2.0"
           sources."schema-utils-1.0.0"
         ];
       })
@@ -13215,7 +13229,7 @@ in
           sources."supports-color-6.1.0"
         ];
       })
-      (sources."css-loader-3.5.3" // {
+      (sources."css-loader-3.6.0" // {
         dependencies = [
           sources."postcss-7.0.32"
           sources."postcss-value-parser-4.1.0"
@@ -13315,7 +13329,7 @@ in
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.481"
+      sources."electron-to-chromium-1.3.500"
       (sources."elliptic-6.5.3" // {
         dependencies = [
           sources."bn.js-4.11.9"
@@ -13329,7 +13343,7 @@ in
         dependencies = [
           sources."ansi-styles-4.2.1"
           sources."anymatch-3.1.1"
-          sources."binary-extensions-2.0.0"
+          sources."binary-extensions-2.1.0"
           sources."braces-3.0.2"
           sources."chalk-3.0.0"
           sources."chokidar-3.3.0"
@@ -13343,6 +13357,7 @@ in
           sources."has-flag-4.0.0"
           sources."is-binary-path-2.1.0"
           sources."is-number-7.0.0"
+          sources."lodash-4.17.15"
           sources."readdirp-3.2.0"
           sources."supports-color-7.1.0"
           sources."to-regex-range-5.0.1"
@@ -13355,7 +13370,7 @@ in
       sources."emojis-list-3.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."enhanced-resolve-4.2.0" // {
+      (sources."enhanced-resolve-4.3.0" // {
         dependencies = [
           sources."memory-fs-0.5.0"
         ];
@@ -13365,6 +13380,7 @@ in
       sources."error-ex-1.3.2"
       sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
+      sources."escalade-3.0.2"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-2.0.0"
       sources."eslint-scope-4.0.3"
@@ -13452,10 +13468,11 @@ in
       (sources."find-elm-dependencies-2.0.2" // {
         dependencies = [
           sources."firstline-1.2.0"
+          sources."lodash-4.17.15"
         ];
       })
       sources."find-parent-dir-0.3.0"
-      sources."find-up-2.1.0"
+      sources."find-up-3.0.0"
       sources."firstline-2.0.2"
       sources."flush-write-stream-1.1.1"
       sources."follow-redirects-1.12.1"
@@ -13672,8 +13689,8 @@ in
           sources."json5-1.0.1"
         ];
       })
-      sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."locate-path-3.0.0"
+      sources."lodash-4.17.19"
       sources."lodash._reinterpolate-3.0.0"
       sources."lodash.memoize-4.1.2"
       sources."lodash.template-4.5.0"
@@ -13728,12 +13745,13 @@ in
       sources."nanomatch-1.2.13"
       sources."ncp-1.0.1"
       sources."negotiator-0.6.2"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       sources."nice-try-1.0.5"
       sources."no-case-3.0.3"
       (sources."node-elm-compiler-5.0.4" // {
         dependencies = [
           sources."cross-spawn-6.0.5"
+          sources."lodash-4.17.15"
           sources."path-key-2.0.1"
           sources."shebang-command-1.2.0"
           sources."shebang-regex-1.0.0"
@@ -13746,7 +13764,7 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-releases-1.1.58"
+      sources."node-releases-1.1.59"
       sources."normalize-package-data-2.5.0"
       sources."normalize-path-3.0.0"
       sources."normalize-range-0.1.2"
@@ -13795,11 +13813,11 @@ in
       sources."os-locale-1.4.0"
       sources."os-tmpdir-1.0.2"
       sources."p-finally-1.0.0"
-      sources."p-limit-1.3.0"
-      sources."p-locate-2.0.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-3.0.0"
       sources."p-map-2.1.0"
       sources."p-retry-3.0.1"
-      sources."p-try-1.0.0"
+      sources."p-try-2.2.0"
       sources."pako-1.0.11"
       sources."parallel-transform-1.2.0"
       sources."param-case-3.0.3"
@@ -13828,16 +13846,16 @@ in
       sources."pify-4.0.1"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
-      (sources."pkg-dir-3.0.0" // {
+      sources."pkg-dir-3.0.0"
+      (sources."pkg-up-2.0.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."find-up-2.1.0"
+          sources."locate-path-2.0.0"
+          sources."p-limit-1.3.0"
+          sources."p-locate-2.0.0"
+          sources."p-try-1.0.0"
         ];
       })
-      sources."pkg-up-2.0.0"
       sources."pkginfo-0.4.1"
       (sources."portfinder-1.0.26" // {
         dependencies = [
@@ -14100,7 +14118,6 @@ in
       sources."postcss-value-parser-3.3.1"
       sources."pretty-bytes-5.3.0"
       sources."pretty-error-2.1.1"
-      sources."private-0.1.8"
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
       sources."promise-8.1.0"
@@ -14149,14 +14166,9 @@ in
           sources."cross-spawn-6.0.5"
           sources."emojis-list-2.1.0"
           sources."escape-string-regexp-1.0.5"
-          sources."find-up-3.0.0"
           sources."globby-8.0.1"
           sources."json5-0.5.1"
           sources."loader-utils-1.1.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."path-key-2.0.1"
           sources."pify-3.0.0"
           sources."react-error-overlay-5.1.6"
@@ -14188,7 +14200,7 @@ in
       sources."regenerate-1.4.1"
       sources."regenerate-unicode-properties-8.2.0"
       sources."regenerator-runtime-0.13.5"
-      sources."regenerator-transform-0.14.4"
+      sources."regenerator-transform-0.14.5"
       sources."regex-not-1.0.2"
       sources."regexp.prototype.flags-1.3.0"
       sources."regexpu-core-4.7.0"
@@ -14228,7 +14240,7 @@ in
       sources."ripemd160-2.0.2"
       sources."run-async-2.4.1"
       sources."run-queue-1.0.3"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.0"
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
@@ -14468,9 +14480,14 @@ in
         dependencies = [
           sources."cacache-10.0.4"
           sources."find-cache-dir-1.0.0"
+          sources."find-up-2.1.0"
+          sources."locate-path-2.0.0"
           sources."lru-cache-4.1.5"
           sources."make-dir-1.3.0"
           sources."mississippi-2.0.0"
+          sources."p-limit-1.3.0"
+          sources."p-locate-2.0.0"
+          sources."p-try-1.0.0"
           sources."pify-3.0.0"
           sources."pkg-dir-2.0.0"
           sources."pump-2.0.1"
@@ -14542,9 +14559,9 @@ in
       (sources."watchpack-1.7.2" // {
         dependencies = [
           sources."anymatch-3.1.1"
-          sources."binary-extensions-2.0.0"
+          sources."binary-extensions-2.1.0"
           sources."braces-3.0.2"
-          sources."chokidar-3.4.0"
+          sources."chokidar-3.4.1"
           sources."fill-range-7.0.1"
           sources."fsevents-2.1.3"
           sources."glob-parent-5.1.1"
@@ -14571,17 +14588,12 @@ in
             ];
           })
           sources."debug-4.2.0"
-          sources."find-up-3.0.0"
           sources."get-caller-file-2.0.5"
           sources."http-proxy-middleware-0.19.1"
           sources."is-absolute-url-3.0.3"
           sources."is-fullwidth-code-point-2.0.0"
-          sources."locate-path-3.0.0"
           sources."ms-2.1.2"
           sources."opn-5.5.0"
-          sources."p-limit-2.3.0"
-          sources."p-locate-3.0.0"
-          sources."p-try-2.2.0"
           sources."require-main-filename-2.0.0"
           sources."schema-utils-1.0.0"
           sources."semver-6.3.0"
diff --git a/pkgs/development/compilers/emscripten/default.nix b/pkgs/development/compilers/emscripten/default.nix
index cd5142acce8..ac13f955930 100644
--- a/pkgs/development/compilers/emscripten/default.nix
+++ b/pkgs/development/compilers/emscripten/default.nix
@@ -1,63 +1,104 @@
-{ emscriptenVersion, stdenv, fetchFromGitHub, emscriptenfastcomp, python, nodejs, closurecompiler
-, jre, binaryen, enableWasm ? true ,  cmake
+{ stdenv, fetchFromGitHub, python3, nodejs, closurecompiler
+, jre, binaryen
+, llvmPackages_11
+, symlinkJoin, makeWrapper
+, mkYarnModules
 }:
 
-let
-  rev = emscriptenVersion;
-  appdir = "share/emscripten";
-  binaryenVersioned = binaryen.override { emscriptenRev = rev; };
-in
+stdenv.mkDerivation rec {
+  pname = "emscripten";
+  version = "2.0.1";
 
-stdenv.mkDerivation {
-  name = "emscripten-${rev}";
+  llvmEnv = symlinkJoin {
+    name = "emscripten-llvm-${version}";
+    paths = with llvmPackages_11; [ clang-unwrapped lld llvm ];
+  };
+
+  nodeModules = mkYarnModules {
+    name = "emscripten-node-modules-${version}";
+    inherit pname version;
+    # it is vitally important the the package.json has name and version fields
+    packageJSON = ./package.json;
+    yarnLock = ./yarn.lock;
+    yarnNix = ./yarn.nix;
+  };
 
   src = fetchFromGitHub {
     owner = "emscripten-core";
     repo = "emscripten";
-    sha256 = "1j3f0hpy05qskaiyv75l7wv4n0nzxhrh9b296zchx3f6f9h2rghq";
-    inherit rev;
+    sha256 = "06dsd819qjv4n2ihrz1mpn5aigmbv0gpkm7iw06wrqx30nzphnpk";
+    rev = version;
   };
 
-  buildInputs = [ nodejs cmake python ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ nodejs python3 ];
+
+  buildPhase = ''
+    patchShebangs .
 
-  buildCommand = ''
-    mkdir -p $out/${appdir}
-    cp -r $src/* $out/${appdir}
-    chmod -R +w $out/${appdir}
-    grep -rl '^#!/usr.*python' $out/${appdir} | xargs sed -i -s 's@^#!/usr.*python.*@#!${python}/bin/python@'
-    sed -i -e "s,EM_CONFIG = '~/.emscripten',EM_CONFIG = '$out/${appdir}/config'," $out/${appdir}/tools/shared.py
-    sed -i -e 's,^.*did not see a source tree above the LLVM.*$,      return True,' $out/${appdir}/tools/shared.py
-    sed -i -e 's,def check_sanity(force=False):,def check_sanity(force=False):\n  return,' $out/${appdir}/tools/shared.py
     # fixes cmake support
-    sed -i -e "s/print \('emcc (Emscript.*\)/sys.stderr.write(\1); sys.stderr.flush()/g" $out/${appdir}/emcc.py
-    mkdir $out/bin
-    ln -s $out/${appdir}/{em++,em-config,emar,embuilder.py,emcc,emcmake,emconfigure,emlink.py,emmake,emranlib,emrun,emscons} $out/bin
-
-    echo "EMSCRIPTEN_ROOT = '$out/${appdir}'" > $out/${appdir}/config
-    echo "LLVM_ROOT = '${emscriptenfastcomp}/bin'" >> $out/${appdir}/config
-    echo "PYTHON = '${python}/bin/python'" >> $out/${appdir}/config
-    echo "NODE_JS = '${nodejs}/bin/node'" >> $out/${appdir}/config
-    echo "JS_ENGINES = [NODE_JS]" >> $out/${appdir}/config
-    echo "COMPILER_ENGINE = NODE_JS" >> $out/${appdir}/config
-    echo "CLOSURE_COMPILER = '${closurecompiler}/share/java/closure-compiler-v${closurecompiler.version}.jar'" >> $out/${appdir}/config
-    echo "JAVA = '${jre}/bin/java'" >> $out/${appdir}/config
+    sed -i -e "s/print \('emcc (Emscript.*\)/sys.stderr.write(\1); sys.stderr.flush()/g" emcc.py
+
+    # disables cache in user home, use installation directory instead
+    sed -i '/^def/!s/root_is_writable()/True/' tools/shared.py
+    sed -i "/^def check_sanity/a\\  return" tools/shared.py
+
+    # required for wasm2c
+    ln -s ${nodeModules}/node_modules .
+
+    echo "EMSCRIPTEN_ROOT = '$appdir'" > .emscripten
+    echo "LLVM_ROOT = '${llvmEnv}/bin'" >> .emscripten
+    echo "NODE_JS = '${nodejs}/bin/node'" >> .emscripten
+    echo "JS_ENGINES = [NODE_JS]" >> .emscripten
+    echo "CLOSURE_COMPILER = ['${closurecompiler}/bin/closure-compiler']" >> .emscripten
+    echo "JAVA = '${jre}/bin/java'" >> .emscripten
     # to make the test(s) below work
-    echo "SPIDERMONKEY_ENGINE = []" >> $out/${appdir}/config
-  ''
-  + stdenv.lib.optionalString enableWasm ''
-    echo "BINARYEN_ROOT = '${binaryenVersioned}'" >> $out/share/emscripten/config
-  ''
-  +
-  ''
-    echo "--------------- running test -----------------"
-    # quick hack to get the test working
-    HOME=$TMPDIR
-    cp $out/${appdir}/config $HOME/.emscripten
-    export PATH=$PATH:$out/bin
-
-    #export EMCC_DEBUG=2  
-    ${python}/bin/python $src/tests/runner.py test_hello_world
-    echo "--------------- /running test -----------------"
+    # echo "SPIDERMONKEY_ENGINE = []" >> .emscripten
+    echo "BINARYEN_ROOT = '${binaryen}'" >> .emscripten
+
+    # make emconfigure/emcmake use the correct (wrapped) binaries
+    sed -i "s|^EMCC =.*|EMCC='$out/bin/emcc'|" tools/shared.py
+    sed -i "s|^EMXX =.*|EMXX='$out/bin/em++'|" tools/shared.py
+    sed -i "s|^EMAR =.*|EMAR='$out/bin/emar'|" tools/shared.py
+    sed -i "s|^EMRANLIB =.*|EMRANLIB='$out/bin/emranlib'|" tools/shared.py
+
+    # The tests use the C compiler to compile generated C code,
+    # use the wrapped compiler
+    sed -i 's/shared.CLANG_CC/"cc"/' tests/runner.py
+  '';
+
+  installPhase = ''
+    appdir=$out/share/emscripten
+    mkdir -p $appdir
+    cp -r . $appdir
+    chmod -R +w $appdir
+
+    mkdir -p $out/bin
+    for b in em++ em-config emar embuilder.py emcc emcmake emconfigure emlink.py emmake emranlib emrun emscons; do
+      makeWrapper $appdir/$b $out/bin/$b \
+        --set NODE_PATH ${nodeModules}/node_modules \
+        --set EM_EXCLUSIVE_CACHE_ACCESS 1 \
+        --set PYTHON ${python3}/bin/python
+    done
+
+    # precompile libc (etc.) in all variants:
+    pushd $TMPDIR
+    echo 'int main() { return 42; }' >test.c
+    for LTO in -flto ""; do
+      # wasm2c doesn't work with PIC
+      $out/bin/emcc -s WASM2C -s STANDALONE_WASM $LTO test.c
+
+      for RELOCATABLE in "" "-s RELOCATABLE"; do
+        $out/bin/emcc $RELOCATABLE $LTO test.c
+      done
+    done
+    popd
+
+    export PYTHON=${python3}/bin/python
+    export NODE_PATH=${nodeModules}/node_modules
+    pushd $appdir
+    python tests/runner.py test_hello_world
+    popd
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/compilers/emscripten/fastcomp/default.nix b/pkgs/development/compilers/emscripten/fastcomp/default.nix
deleted file mode 100644
index 57496d28860..00000000000
--- a/pkgs/development/compilers/emscripten/fastcomp/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ newScope, stdenv, binutils, wrapCCWith, symlinkJoin }:
-let
-  callPackage = newScope (self // {inherit stdenv;});
-
-  self = {
-    emscriptenfastcomp-unwrapped = callPackage ./emscripten-fastcomp.nix {};
-    emscriptenfastcomp-wrapped = wrapCCWith {
-      cc = self.emscriptenfastcomp-unwrapped;
-      # Never want Apple's cctools for WASM target
-      bintools = binutils;
-      libc = stdenv.cc.libc;
-      extraBuildCommands = ''
-        # hardening flags break WASM support
-        cat > $out/nix-support/add-hardening.sh
-      '';
-    };
-    emscriptenfastcomp = symlinkJoin {
-      name = "emscriptenfastcomp-${stdenv.lib.getVersion self.emscriptenfastcomp-unwrapped}";
-      paths = [ self.emscriptenfastcomp-wrapped self.emscriptenfastcomp-unwrapped ];
-      preferLocalBuild = false;
-      allowSubstitutes = true;
-      postBuild = ''
-        # replace unwrapped clang-3.9 binary by wrapper
-        ln -sf $out/bin/clang $out/bin/clang-[0-9]*
-      '';
-    };
-  };
-in self
diff --git a/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix b/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix
deleted file mode 100644
index 520a34afe58..00000000000
--- a/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ emscriptenVersion, stdenv, fetchFromGitHub, cmake, python, gtest, ... }:
-
-let
-  rev = emscriptenVersion;
-  gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
-in
-stdenv.mkDerivation rec {
-  name = "emscripten-fastcomp-${rev}";
-
-  src = fetchFromGitHub {
-    owner = "emscripten-core";
-    repo = "emscripten-fastcomp";
-    sha256 = "0bd0l5k2fa4k0nax2cpxi003pqffqivx4z4m2j5xdha1a12sid8i";
-    inherit rev;
-  };
-
-  srcFL = fetchFromGitHub {
-    owner = "emscripten-core";
-    repo = "emscripten-fastcomp-clang";
-    sha256 = "1iw2qplhp489qzw0rma73sab7asnm27g4m95sr36c6kq9cq6agri";
-    inherit rev;
-  };
-
-  nativeBuildInputs = [ cmake python gtest ];
-  preConfigure = ''
-    cp -Lr ${srcFL} tools/clang
-    chmod +w -R tools/clang
-  '';
-  cmakeFlags = [
-    "-DCMAKE_BUILD_TYPE=Release"
-    "-DLLVM_TARGETS_TO_BUILD='X86;JSBackend'"
-    "-DLLVM_INCLUDE_EXAMPLES=OFF"
-    "-DLLVM_INCLUDE_TESTS=ON"
-    #"-DLLVM_CONFIG=${llvm}/bin/llvm-config"
-    "-DLLVM_BUILD_TESTS=ON"
-    "-DCLANG_INCLUDE_TESTS=ON"
-  ] ++ (stdenv.lib.optional stdenv.isLinux
-    # necessary for clang to find crtend.o
-    "-DGCC_INSTALL_PREFIX=${gcc}"
-  );
-  enableParallelBuilding = true;
-
-  passthru = {
-    isClang = true;
-    inherit gcc;
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/emscripten-core/emscripten-fastcomp";
-    description = "Emscripten LLVM";
-    platforms = platforms.all;
-    maintainers = with maintainers; [ qknight matthewbauer ];
-    license = stdenv.lib.licenses.ncsa;
-  };
-}
diff --git a/pkgs/development/compilers/emscripten/package.json b/pkgs/development/compilers/emscripten/package.json
new file mode 100644
index 00000000000..039d215efcd
--- /dev/null
+++ b/pkgs/development/compilers/emscripten/package.json
@@ -0,0 +1,15 @@
+{
+  "name": "emscripten",
+  "version": "2.0.1",
+  "private": true,
+  "devDependencies": {
+    "ws": "~0.4.28"
+  },
+  "dependencies": {
+    "google-closure-compiler": "20200224.0.0",
+    "html-minifier-terser": "5.0.2",
+    "source-map": "0.5.6",
+    "wasm2c": "1.0.0",
+    "acorn": "7.3.1"
+  }
+}
diff --git a/pkgs/development/compilers/emscripten/yarn.lock b/pkgs/development/compilers/emscripten/yarn.lock
new file mode 100644
index 00000000000..079b254a472
--- /dev/null
+++ b/pkgs/development/compilers/emscripten/yarn.lock
@@ -0,0 +1,346 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+acorn@7.3.1:
+  version "7.3.1"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd"
+  integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==
+
+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==
+  dependencies:
+    color-convert "^1.9.0"
+
+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==
+
+camel-case@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
+  integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=
+  dependencies:
+    no-case "^2.2.0"
+    upper-case "^1.1.1"
+
+chalk@2.x:
+  version "2.4.2"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+  dependencies:
+    ansi-styles "^3.2.1"
+    escape-string-regexp "^1.0.5"
+    supports-color "^5.3.0"
+
+clean-css@^4.2.1:
+  version "4.2.3"
+  resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78"
+  integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==
+  dependencies:
+    source-map "~0.6.0"
+
+clone-buffer@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58"
+  integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg=
+
+clone-stats@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680"
+  integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=
+
+clone@^2.1.1:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
+  integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
+
+cloneable-readable@^1.0.0:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec"
+  integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==
+  dependencies:
+    inherits "^2.0.1"
+    process-nextick-args "^2.0.0"
+    readable-stream "^2.3.5"
+
+color-convert@^1.9.0:
+  version "1.9.3"
+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+  integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+  dependencies:
+    color-name "1.1.3"
+
+color-name@1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+  integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+
+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==
+
+commander@^4.0.0:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
+  integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
+
+commander@~2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781"
+  integrity sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=
+
+core-util-is@~1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+  integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+
+escape-string-regexp@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+
+google-closure-compiler-java@^20200224.0.0:
+  version "20200224.0.0"
+  resolved "https://registry.yarnpkg.com/google-closure-compiler-java/-/google-closure-compiler-java-20200224.0.0.tgz#03d71aefd0a07010fd8a7057d09c76f6729767bc"
+  integrity sha512-palFcDoScauZjWIsGDzMK6h+IctcRb55I3wJX8Ko/DTSz72xwadRdKm0lGt8OoYL7SKEO+IjgD7s8XrAGpLnlQ==
+
+google-closure-compiler-js@^20200224.0.0:
+  version "20200224.0.0"
+  resolved "https://registry.yarnpkg.com/google-closure-compiler-js/-/google-closure-compiler-js-20200224.0.0.tgz#cf4b598abf7be686c683e530529756805b8af500"
+  integrity sha512-70VKN0kbnTRtu2dqxDjWZQGfEQIHj7b7oUUCsYPO5oEXCDfgxNc13oYUJXvrTONLRWlHCNl/I8FNrVOwZ3gY/g==
+
+google-closure-compiler-linux@^20200224.0.0:
+  version "20200224.0.0"
+  resolved "https://registry.yarnpkg.com/google-closure-compiler-linux/-/google-closure-compiler-linux-20200224.0.0.tgz#d9608b224b4d8f38d4d34e99a24da54bca6b1902"
+  integrity sha512-/BaE889EPrXWOKJVolA9++e99xBDMzeFBf7zF7nBB8PUmU5DlvtsoLL82xnT6nbZC1ktHaETlVx+vYGju8zKBQ==
+
+google-closure-compiler-osx@^20200224.0.0:
+  version "20200224.0.0"
+  resolved "https://registry.yarnpkg.com/google-closure-compiler-osx/-/google-closure-compiler-osx-20200224.0.0.tgz#aee62d8b878a662fc73b92419603168c0c3a35ed"
+  integrity sha512-WXVNW9nPUqjvCe38mUIlBGEPVPCTKLtdaXC+q+kQdonkJFHNrpdyYWa746Y8cNP/byQyDNpPsqcKseZTLh17sQ==
+
+google-closure-compiler-windows@^20200224.0.0:
+  version "20200224.0.0"
+  resolved "https://registry.yarnpkg.com/google-closure-compiler-windows/-/google-closure-compiler-windows-20200224.0.0.tgz#cae323b898625ca57b0e87aaddde021a414dda58"
+  integrity sha512-l6w2D8r9+GC9CQTAYEMAuNI996Zb6YV5qG7+FR0gCoL6h6S3Mc7mi87bafgwaicsVcmmHE/9kCBuW4ZyTMs5Fg==
+
+google-closure-compiler@20200224.0.0:
+  version "20200224.0.0"
+  resolved "https://registry.yarnpkg.com/google-closure-compiler/-/google-closure-compiler-20200224.0.0.tgz#ec0e708d9716a48e12fff43fe37fa5cec732a283"
+  integrity sha512-V81dRYygdHbZtOtU16VX26xAdJBB1UZyfSg3OTzdNl3l/xEIx1D/L7TYUqjeTXsxcy+JruJ/UfUlIJAOaMRTog==
+  dependencies:
+    chalk "2.x"
+    google-closure-compiler-java "^20200224.0.0"
+    google-closure-compiler-js "^20200224.0.0"
+    minimist "1.x"
+    vinyl "2.x"
+    vinyl-sourcemaps-apply "^0.2.0"
+  optionalDependencies:
+    google-closure-compiler-linux "^20200224.0.0"
+    google-closure-compiler-osx "^20200224.0.0"
+    google-closure-compiler-windows "^20200224.0.0"
+
+has-flag@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+  integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+
+he@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
+  integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+
+html-minifier-terser@5.0.2:
+  version "5.0.2"
+  resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.0.2.tgz#0e67a0b062ae1dd0719fc73199479298f807ae16"
+  integrity sha512-VAaitmbBuHaPKv9bj47XKypRhgDxT/cDLvsPiiF7w+omrN3K0eQhpigV9Z1ilrmHa9e0rOYcD6R/+LCDADGcnQ==
+  dependencies:
+    camel-case "^3.0.0"
+    clean-css "^4.2.1"
+    commander "^4.0.0"
+    he "^1.2.0"
+    param-case "^2.1.1"
+    relateurl "^0.2.7"
+    terser "^4.3.9"
+
+inherits@^2.0.1, inherits@~2.0.3:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+isarray@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+  integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
+lower-case@^1.1.1:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
+  integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw=
+
+minimist@1.x:
+  version "1.2.5"
+  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+  integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+
+nan@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/nan/-/nan-1.0.0.tgz#ae24f8850818d662fcab5acf7f3b95bfaa2ccf38"
+  integrity sha1-riT4hQgY1mL8q1rPfzuVv6oszzg=
+
+no-case@^2.2.0:
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
+  integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==
+  dependencies:
+    lower-case "^1.1.1"
+
+options@>=0.0.5:
+  version "0.0.6"
+  resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
+  integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=
+
+param-case@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"
+  integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc=
+  dependencies:
+    no-case "^2.2.0"
+
+process-nextick-args@^2.0.0, process-nextick-args@~2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+  integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+readable-stream@^2.3.5:
+  version "2.3.7"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
+  integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
+  dependencies:
+    core-util-is "~1.0.0"
+    inherits "~2.0.3"
+    isarray "~1.0.0"
+    process-nextick-args "~2.0.0"
+    safe-buffer "~5.1.1"
+    string_decoder "~1.1.1"
+    util-deprecate "~1.0.1"
+
+relateurl@^0.2.7:
+  version "0.2.7"
+  resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
+  integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
+
+remove-trailing-separator@^1.0.1:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
+  integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
+
+replace-ext@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a"
+  integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==
+
+safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+  integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+source-map-support@~0.5.12:
+  version "0.5.19"
+  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
+  integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
+  dependencies:
+    buffer-from "^1.0.0"
+    source-map "^0.6.0"
+
+source-map@0.5.6:
+  version "0.5.6"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
+  integrity sha1-dc449SvwczxafwwRjYEzSiu19BI=
+
+source-map@^0.5.1:
+  version "0.5.7"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+  integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
+
+source-map@^0.6.0, source-map@~0.6.0, source-map@~0.6.1:
+  version "0.6.1"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+  integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+string_decoder@~1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+  dependencies:
+    safe-buffer "~5.1.0"
+
+supports-color@^5.3.0:
+  version "5.5.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+  integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+  dependencies:
+    has-flag "^3.0.0"
+
+terser@^4.3.9:
+  version "4.8.0"
+  resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
+  integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
+  dependencies:
+    commander "^2.20.0"
+    source-map "~0.6.1"
+    source-map-support "~0.5.12"
+
+tinycolor@0.x:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/tinycolor/-/tinycolor-0.0.1.tgz#320b5a52d83abb5978d81a3e887d4aefb15a6164"
+  integrity sha1-MgtaUtg6u1l42Bo+iH1K77FaYWQ=
+
+upper-case@^1.1.1:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
+  integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=
+
+util-deprecate@~1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+  integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+
+vinyl-sourcemaps-apply@^0.2.0:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705"
+  integrity sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=
+  dependencies:
+    source-map "^0.5.1"
+
+vinyl@2.x:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86"
+  integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==
+  dependencies:
+    clone "^2.1.1"
+    clone-buffer "^1.0.0"
+    clone-stats "^1.0.0"
+    cloneable-readable "^1.0.0"
+    remove-trailing-separator "^1.0.1"
+    replace-ext "^1.0.0"
+
+wasm2c@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/wasm2c/-/wasm2c-1.0.0.tgz#761671e141c46b8a7c6c54429db1e6bfa3cd0ec0"
+  integrity sha512-4SIESF2JNxrry6XFa/UQcsQibn+bxPkQ/oqixiXz2o8fsMl8J4vtvhH/evgbi8vZajAlaukuihEcQTWb9tVLUA==
+
+ws@~0.4.28:
+  version "0.4.32"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-0.4.32.tgz#787a6154414f3c99ed83c5772153b20feb0cec32"
+  integrity sha1-eHphVEFPPJntg8V3IVOyD+sM7DI=
+  dependencies:
+    commander "~2.1.0"
+    nan "~1.0.0"
+    options ">=0.0.5"
+    tinycolor "0.x"
diff --git a/pkgs/development/compilers/emscripten/yarn.nix b/pkgs/development/compilers/emscripten/yarn.nix
new file mode 100644
index 00000000000..af01d9c6869
--- /dev/null
+++ b/pkgs/development/compilers/emscripten/yarn.nix
@@ -0,0 +1,437 @@
+{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec {
+  offline_cache = linkFarm "offline" packages;
+  packages = [
+    {
+      name = "acorn___acorn_7.3.1.tgz";
+      path = fetchurl {
+        name = "acorn___acorn_7.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz";
+        sha1 = "85010754db53c3fbaf3b9ea3e083aa5c5d147ffd";
+      };
+    }
+    {
+      name = "ansi_styles___ansi_styles_3.2.1.tgz";
+      path = fetchurl {
+        name = "ansi_styles___ansi_styles_3.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
+        sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
+      };
+    }
+    {
+      name = "buffer_from___buffer_from_1.1.1.tgz";
+      path = fetchurl {
+        name = "buffer_from___buffer_from_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz";
+        sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef";
+      };
+    }
+    {
+      name = "camel_case___camel_case_3.0.0.tgz";
+      path = fetchurl {
+        name = "camel_case___camel_case_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz";
+        sha1 = "ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73";
+      };
+    }
+    {
+      name = "chalk___chalk_2.4.2.tgz";
+      path = fetchurl {
+        name = "chalk___chalk_2.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
+        sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
+      };
+    }
+    {
+      name = "clean_css___clean_css_4.2.3.tgz";
+      path = fetchurl {
+        name = "clean_css___clean_css_4.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz";
+        sha1 = "507b5de7d97b48ee53d84adb0160ff6216380f78";
+      };
+    }
+    {
+      name = "clone_buffer___clone_buffer_1.0.0.tgz";
+      path = fetchurl {
+        name = "clone_buffer___clone_buffer_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz";
+        sha1 = "e3e25b207ac4e701af721e2cb5a16792cac3dc58";
+      };
+    }
+    {
+      name = "clone_stats___clone_stats_1.0.0.tgz";
+      path = fetchurl {
+        name = "clone_stats___clone_stats_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz";
+        sha1 = "b3782dff8bb5474e18b9b6bf0fdfe782f8777680";
+      };
+    }
+    {
+      name = "clone___clone_2.1.2.tgz";
+      path = fetchurl {
+        name = "clone___clone_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz";
+        sha1 = "1b7f4b9f591f1e8f83670401600345a02887435f";
+      };
+    }
+    {
+      name = "cloneable_readable___cloneable_readable_1.1.3.tgz";
+      path = fetchurl {
+        name = "cloneable_readable___cloneable_readable_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz";
+        sha1 = "120a00cb053bfb63a222e709f9683ea2e11d8cec";
+      };
+    }
+    {
+      name = "color_convert___color_convert_1.9.3.tgz";
+      path = fetchurl {
+        name = "color_convert___color_convert_1.9.3.tgz";
+        url  = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz";
+        sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8";
+      };
+    }
+    {
+      name = "color_name___color_name_1.1.3.tgz";
+      path = fetchurl {
+        name = "color_name___color_name_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
+        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+      };
+    }
+    {
+      name = "commander___commander_2.20.3.tgz";
+      path = fetchurl {
+        name = "commander___commander_2.20.3.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz";
+        sha1 = "fd485e84c03eb4881c20722ba48035e8531aeb33";
+      };
+    }
+    {
+      name = "commander___commander_4.1.1.tgz";
+      path = fetchurl {
+        name = "commander___commander_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz";
+        sha1 = "9fd602bd936294e9e9ef46a3f4d6964044b18068";
+      };
+    }
+    {
+      name = "commander___commander_2.1.0.tgz";
+      path = fetchurl {
+        name = "commander___commander_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-2.1.0.tgz";
+        sha1 = "d121bbae860d9992a3d517ba96f56588e47c6781";
+      };
+    }
+    {
+      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 = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+      path = fetchurl {
+        name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+      };
+    }
+    {
+      name = "google_closure_compiler_java___google_closure_compiler_java_20200224.0.0.tgz";
+      path = fetchurl {
+        name = "google_closure_compiler_java___google_closure_compiler_java_20200224.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/google-closure-compiler-java/-/google-closure-compiler-java-20200224.0.0.tgz";
+        sha1 = "03d71aefd0a07010fd8a7057d09c76f6729767bc";
+      };
+    }
+    {
+      name = "google_closure_compiler_js___google_closure_compiler_js_20200224.0.0.tgz";
+      path = fetchurl {
+        name = "google_closure_compiler_js___google_closure_compiler_js_20200224.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/google-closure-compiler-js/-/google-closure-compiler-js-20200224.0.0.tgz";
+        sha1 = "cf4b598abf7be686c683e530529756805b8af500";
+      };
+    }
+    {
+      name = "google_closure_compiler_linux___google_closure_compiler_linux_20200224.0.0.tgz";
+      path = fetchurl {
+        name = "google_closure_compiler_linux___google_closure_compiler_linux_20200224.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/google-closure-compiler-linux/-/google-closure-compiler-linux-20200224.0.0.tgz";
+        sha1 = "d9608b224b4d8f38d4d34e99a24da54bca6b1902";
+      };
+    }
+    {
+      name = "google_closure_compiler_osx___google_closure_compiler_osx_20200224.0.0.tgz";
+      path = fetchurl {
+        name = "google_closure_compiler_osx___google_closure_compiler_osx_20200224.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/google-closure-compiler-osx/-/google-closure-compiler-osx-20200224.0.0.tgz";
+        sha1 = "aee62d8b878a662fc73b92419603168c0c3a35ed";
+      };
+    }
+    {
+      name = "google_closure_compiler_windows___google_closure_compiler_windows_20200224.0.0.tgz";
+      path = fetchurl {
+        name = "google_closure_compiler_windows___google_closure_compiler_windows_20200224.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/google-closure-compiler-windows/-/google-closure-compiler-windows-20200224.0.0.tgz";
+        sha1 = "cae323b898625ca57b0e87aaddde021a414dda58";
+      };
+    }
+    {
+      name = "google_closure_compiler___google_closure_compiler_20200224.0.0.tgz";
+      path = fetchurl {
+        name = "google_closure_compiler___google_closure_compiler_20200224.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/google-closure-compiler/-/google-closure-compiler-20200224.0.0.tgz";
+        sha1 = "ec0e708d9716a48e12fff43fe37fa5cec732a283";
+      };
+    }
+    {
+      name = "has_flag___has_flag_3.0.0.tgz";
+      path = fetchurl {
+        name = "has_flag___has_flag_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
+        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+      };
+    }
+    {
+      name = "he___he_1.2.0.tgz";
+      path = fetchurl {
+        name = "he___he_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz";
+        sha1 = "84ae65fa7eafb165fddb61566ae14baf05664f0f";
+      };
+    }
+    {
+      name = "html_minifier_terser___html_minifier_terser_5.0.2.tgz";
+      path = fetchurl {
+        name = "html_minifier_terser___html_minifier_terser_5.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.0.2.tgz";
+        sha1 = "0e67a0b062ae1dd0719fc73199479298f807ae16";
+      };
+    }
+    {
+      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 = "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 = "lower_case___lower_case_1.1.4.tgz";
+      path = fetchurl {
+        name = "lower_case___lower_case_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz";
+        sha1 = "9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac";
+      };
+    }
+    {
+      name = "minimist___minimist_1.2.5.tgz";
+      path = fetchurl {
+        name = "minimist___minimist_1.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
+        sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
+      };
+    }
+    {
+      name = "nan___nan_1.0.0.tgz";
+      path = fetchurl {
+        name = "nan___nan_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/nan/-/nan-1.0.0.tgz";
+        sha1 = "ae24f8850818d662fcab5acf7f3b95bfaa2ccf38";
+      };
+    }
+    {
+      name = "no_case___no_case_2.3.2.tgz";
+      path = fetchurl {
+        name = "no_case___no_case_2.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz";
+        sha1 = "60b813396be39b3f1288a4c1ed5d1e7d28b464ac";
+      };
+    }
+    {
+      name = "options___options_0.0.6.tgz";
+      path = fetchurl {
+        name = "options___options_0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz";
+        sha1 = "ec22d312806bb53e731773e7cdaefcf1c643128f";
+      };
+    }
+    {
+      name = "param_case___param_case_2.1.1.tgz";
+      path = fetchurl {
+        name = "param_case___param_case_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz";
+        sha1 = "df94fd8cf6531ecf75e6bef9a0858fbc72be2247";
+      };
+    }
+    {
+      name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
+      path = fetchurl {
+        name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+        sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2";
+      };
+    }
+    {
+      name = "readable_stream___readable_stream_2.3.7.tgz";
+      path = fetchurl {
+        name = "readable_stream___readable_stream_2.3.7.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz";
+        sha1 = "1eca1cf711aef814c04f62252a36a62f6cb23b57";
+      };
+    }
+    {
+      name = "relateurl___relateurl_0.2.7.tgz";
+      path = fetchurl {
+        name = "relateurl___relateurl_0.2.7.tgz";
+        url  = "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz";
+        sha1 = "54dbf377e51440aca90a4cd274600d3ff2d888a9";
+      };
+    }
+    {
+      name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+      path = fetchurl {
+        name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+        sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+      };
+    }
+    {
+      name = "replace_ext___replace_ext_1.0.1.tgz";
+      path = fetchurl {
+        name = "replace_ext___replace_ext_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz";
+        sha1 = "2d6d996d04a15855d967443631dd5f77825b016a";
+      };
+    }
+    {
+      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 = "source_map_support___source_map_support_0.5.19.tgz";
+      path = fetchurl {
+        name = "source_map_support___source_map_support_0.5.19.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz";
+        sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61";
+      };
+    }
+    {
+      name = "source_map___source_map_0.5.6.tgz";
+      path = fetchurl {
+        name = "source_map___source_map_0.5.6.tgz";
+        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz";
+        sha1 = "75ce38f52bf0733c5a7f0c118d81334a2bb5f412";
+      };
+    }
+    {
+      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 = "source_map___source_map_0.6.1.tgz";
+      path = fetchurl {
+        name = "source_map___source_map_0.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
+        sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
+      };
+    }
+    {
+      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 = "supports_color___supports_color_5.5.0.tgz";
+      path = fetchurl {
+        name = "supports_color___supports_color_5.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz";
+        sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f";
+      };
+    }
+    {
+      name = "terser___terser_4.8.0.tgz";
+      path = fetchurl {
+        name = "terser___terser_4.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz";
+        sha1 = "63056343d7c70bb29f3af665865a46fe03a0df17";
+      };
+    }
+    {
+      name = "tinycolor___tinycolor_0.0.1.tgz";
+      path = fetchurl {
+        name = "tinycolor___tinycolor_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/tinycolor/-/tinycolor-0.0.1.tgz";
+        sha1 = "320b5a52d83abb5978d81a3e887d4aefb15a6164";
+      };
+    }
+    {
+      name = "upper_case___upper_case_1.1.3.tgz";
+      path = fetchurl {
+        name = "upper_case___upper_case_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz";
+        sha1 = "f6b4501c2ec4cdd26ba78be7222961de77621598";
+      };
+    }
+    {
+      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 = "vinyl_sourcemaps_apply___vinyl_sourcemaps_apply_0.2.1.tgz";
+      path = fetchurl {
+        name = "vinyl_sourcemaps_apply___vinyl_sourcemaps_apply_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz";
+        sha1 = "ab6549d61d172c2b1b87be5c508d239c8ef87705";
+      };
+    }
+    {
+      name = "vinyl___vinyl_2.2.0.tgz";
+      path = fetchurl {
+        name = "vinyl___vinyl_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz";
+        sha1 = "d85b07da96e458d25b2ffe19fece9f2caa13ed86";
+      };
+    }
+    {
+      name = "wasm2c___wasm2c_1.0.0.tgz";
+      path = fetchurl {
+        name = "wasm2c___wasm2c_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/wasm2c/-/wasm2c-1.0.0.tgz";
+        sha1 = "761671e141c46b8a7c6c54429db1e6bfa3cd0ec0";
+      };
+    }
+    {
+      name = "ws___ws_0.4.32.tgz";
+      path = fetchurl {
+        name = "ws___ws_0.4.32.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-0.4.32.tgz";
+        sha1 = "787a6154414f3c99ed83c5772153b20feb0cec32";
+      };
+    }
+  ];
+}
diff --git a/pkgs/development/compilers/fasm/bin.nix b/pkgs/development/compilers/fasm/bin.nix
index c595c86615b..8013b443162 100644
--- a/pkgs/development/compilers/fasm/bin.nix
+++ b/pkgs/development/compilers/fasm/bin.nix
@@ -3,11 +3,11 @@
 stdenvNoCC.mkDerivation rec {
   pname = "fasm-bin";
 
-  version = "1.73.24";
+  version = "1.73.25";
 
   src = fetchurl {
     url = "https://flatassembler.net/fasm-${version}.tgz";
-    sha256 = "142vxhs8mh8isvlzq7ir0asmqda410phzxmk9gk9b43dldskkj7k";
+    sha256 = "0k3h61mfwslyb34kf4dnapfwl8jxlmrp4dv666wc057hkj047knn";
   };
 
   installPhase = ''
diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix
index afc8fbd7f49..9b9d1f7481d 100644
--- a/pkgs/development/compilers/flutter/default.nix
+++ b/pkgs/development/compilers/flutter/default.nix
@@ -6,26 +6,29 @@ let
     let files = builtins.attrNames (builtins.readDir dir);
     in map (f: dir + ("/" + f)) files;
 in {
-  stable = mkFlutter {
+  mkFlutter = mkFlutter;
+  stable = mkFlutter rec {
     pname = "flutter";
     channel = "stable";
-    version = "1.12.13+hotfix.9";
-    sha256Hash = "1ql3zvmmk5zk47y30lajxaam04q6vr373dayq15jv4vpc0fzif1y";
+    version = "1.17.5";
+    filename = "flutter_linux_${version}-${channel}.tar.xz";
+    sha256Hash = "0kapja3nh7dfhjbn2np02wghijrjnpzsv4hz10fj54hs8hdx19di";
     patches = getPatches ./patches/stable;
   };
-  beta = mkFlutter {
+  beta = mkFlutter rec {
     pname = "flutter-beta";
     channel = "beta";
-    version = "1.15.17";
-    sha256Hash = "0iil6y6y477dhjgzx54ab5m9nj0jg4xl8x4zzd9iwh8m756r7qsd";
+    version = "1.20.0-7.2.pre";
+    filename = "flutter_linux_${version}-${channel}.tar.xz";
+    sha256Hash = "0w89ig5vi4spa95mf08r4vvwni7bzzdlyhvr9sy1a35qmf7j9s6f";
     patches = getPatches ./patches/beta;
   };
   dev = mkFlutter rec {
     pname = "flutter-dev";
     channel = "dev";
-    version = "1.17.0-dev.5.0";
+    version = "1.21.0-1.0.pre";
     filename = "flutter_linux_${version}-${channel}.tar.xz";
-    sha256Hash = "0ks2jf2bd42y2jsc91p33r57q7j3m94d8ihkmlxzwi53x1mwp0pk";
+    sha256Hash = "14rx89jp6ivk3ai7iwbznkr5q445ndh8fppzbxg520kq10s2208r";
     patches = getPatches ./patches/beta;
   };
 }
diff --git a/pkgs/development/compilers/flutter/patches/beta/disable-auto-update.patch b/pkgs/development/compilers/flutter/patches/beta/disable-auto-update.patch
index 42c09c805cb..cd01577cc10 100644
--- a/pkgs/development/compilers/flutter/patches/beta/disable-auto-update.patch
+++ b/pkgs/development/compilers/flutter/patches/beta/disable-auto-update.patch
@@ -1,24 +1,24 @@
-diff --git a/bin/flutter b/bin/flutter
-index e0c18e235..2c3fb7ddd 100755
---- a/bin/flutter
-+++ b/bin/flutter
-@@ -185,8 +185,6 @@ fi
- # FLUTTER_TOOL_ARGS="--enable-asserts $FLUTTER_TOOL_ARGS"
- # FLUTTER_TOOL_ARGS="$FLUTTER_TOOL_ARGS --observe=65432"
+diff --git a/bin/internal/shared.sh b/bin/internal/shared.sh
+index 702bd9ed5..4d4dc94c6 100755
+--- a/bin/internal/shared.sh
++++ b/bin/internal/shared.sh
+@@ -204,8 +204,6 @@ function shared::execute() {
+   # FLUTTER_TOOL_ARGS="--enable-asserts $FLUTTER_TOOL_ARGS"
+   # FLUTTER_TOOL_ARGS="$FLUTTER_TOOL_ARGS --observe=65432"
  
--(upgrade_flutter) 3< "$PROG_NAME"
+-  upgrade_flutter 7< "$PROG_NAME"
 -
- # FLUTTER_TOOL_ARGS isn't quoted below, because it is meant to be considered as
- # separate space-separated args.
- "$DART" --packages="$FLUTTER_TOOLS_DIR/.packages" $FLUTTER_TOOL_ARGS "$SNAPSHOT_PATH" "$@"
+   BIN_NAME="$(basename "$PROG_NAME")"
+   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 99455ae64..f5b0cb59c 100644
+index 21be933e1..2ea73c4c0 100644
 --- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
 +++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
-@@ -301,13 +301,6 @@ class FlutterCommandRunner extends CommandRunner<void> {
+@@ -294,13 +294,6 @@ class FlutterCommandRunner extends CommandRunner<void> {
+           globals.flutterUsage.suppressAnalytics = true;
          }
  
-         _checkFlutterCopy();
 -        try {
 -          await globals.flutterVersion.ensureVersionFile();
 -        } on FileSystemException catch (e) {
diff --git a/pkgs/development/compilers/flutter/patches/beta/move-cache.patch b/pkgs/development/compilers/flutter/patches/beta/move-cache.patch
index 4672d4c625d..64950d4476e 100644
--- a/pkgs/development/compilers/flutter/patches/beta/move-cache.patch
+++ b/pkgs/development/compilers/flutter/patches/beta/move-cache.patch
@@ -1,5 +1,5 @@
 diff --git a/dev/devicelab/lib/framework/runner.dart b/dev/devicelab/lib/framework/runner.dart
-index 8e511eefd..fbc7d6ac3 100644
+index 8e511eefd..fef3cca8b 100644
 --- a/dev/devicelab/lib/framework/runner.dart
 +++ b/dev/devicelab/lib/framework/runner.dart
 @@ -126,7 +126,7 @@ Future<void> cleanupSystem() async {
@@ -12,31 +12,31 @@ index 8e511eefd..fbc7d6ac3 100644
      if (!Platform.isWindows) {
        await exec(
 diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart
-index 79b06949f..9040ba0a8 100644
+index c680de599..480abfb77 100644
 --- a/packages/flutter_tools/lib/src/asset.dart
 +++ b/packages/flutter_tools/lib/src/asset.dart
-@@ -6,6 +6,7 @@ import 'dart:async';
- 
+@@ -8,6 +8,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';
-@@ -325,7 +326,7 @@ List<_Asset> _getMaterialAssets(String fontSet) {
-     for (final Map<dynamic, dynamic> font in family['fonts']) {
+@@ -392,7 +393,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'),
++	baseDir: globals.fs.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 715189938..5afb2a0db 100644
+index c0946782c..bdbc35cb8 100644
 --- a/packages/flutter_tools/lib/src/cache.dart
 +++ b/packages/flutter_tools/lib/src/cache.dart
-@@ -189,8 +189,14 @@ class Cache {
+@@ -202,8 +202,15 @@ class Cache {
        return;
      }
      assert(_lock == null);
@@ -46,13 +46,14 @@ index 715189938..5afb2a0db 100644
 +      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'));
      try {
        _lock = lockFile.openSync(mode: FileMode.write);
      } on FileSystemException catch (e) {
-@@ -290,7 +296,7 @@ class Cache {
+@@ -306,7 +313,7 @@ class Cache {
      if (_rootOverride != null) {
        return _fileSystem.directory(_fileSystem.path.join(_rootOverride.path, 'bin', 'cache'));
      } else {
diff --git a/pkgs/development/compilers/flutter/patches/stable/disable-auto-update.patch b/pkgs/development/compilers/flutter/patches/stable/disable-auto-update.patch
index 16fe504595f..c77357ea13c 100644
--- a/pkgs/development/compilers/flutter/patches/stable/disable-auto-update.patch
+++ b/pkgs/development/compilers/flutter/patches/stable/disable-auto-update.patch
@@ -1,5 +1,5 @@
 diff --git a/bin/flutter b/bin/flutter
-index 3955f8f39..1e7573d30 100755
+index cdf974233..1f7de1c1b 100755
 --- a/bin/flutter
 +++ b/bin/flutter
 @@ -185,8 +185,6 @@ fi
@@ -12,20 +12,20 @@ index 3955f8f39..1e7573d30 100755
  # separate space-separated args.
  "$DART" --packages="$FLUTTER_TOOLS_DIR/.packages" $FLUTTER_TOOL_ARGS "$SNAPSHOT_PATH" "$@"
 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 5e45819d9..ab748b059 100644
+index b3e69714f..a9eb76234 100644
 --- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
 +++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
-@@ -377,13 +377,6 @@ class FlutterCommandRunner extends CommandRunner<void> {
+@@ -301,13 +301,6 @@ class FlutterCommandRunner extends CommandRunner<void> {
          }
  
          _checkFlutterCopy();
 -        try {
--          await FlutterVersion.instance.ensureVersionFile();
+-          await globals.flutterVersion.ensureVersionFile();
 -        } on FileSystemException catch (e) {
--          printError('Failed to write the version file to the artifact cache: "$e".');
--          printError('Please ensure you have permissions in the artifact cache directory.');
+-          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');
 -        }
-         if (topLevelResults.command?.name != 'upgrade' && topLevelResults['version-check'] as bool) {
-           await FlutterVersion.instance.checkFlutterVersionFreshness();
-         }
+         final bool machineFlag = topLevelResults['machine'] as bool;
+         if (topLevelResults.command?.name != 'upgrade' && topLevelResults['version-check'] as bool && !machineFlag) {
+           await globals.flutterVersion.checkFlutterVersionFreshness();
diff --git a/pkgs/development/compilers/flutter/patches/stable/move-cache.patch b/pkgs/development/compilers/flutter/patches/stable/move-cache.patch
index e5719a2867f..64950d4476e 100644
--- a/pkgs/development/compilers/flutter/patches/stable/move-cache.patch
+++ b/pkgs/development/compilers/flutter/patches/stable/move-cache.patch
@@ -1,5 +1,5 @@
 diff --git a/dev/devicelab/lib/framework/runner.dart b/dev/devicelab/lib/framework/runner.dart
-index 9fae74726..d88d6ecbb 100644
+index 8e511eefd..fef3cca8b 100644
 --- a/dev/devicelab/lib/framework/runner.dart
 +++ b/dev/devicelab/lib/framework/runner.dart
 @@ -126,7 +126,7 @@ Future<void> cleanupSystem() async {
@@ -7,57 +7,58 @@ index 9fae74726..d88d6ecbb 100644
      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(homeDirPath, '.cache', 'flutter', '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 e6216c737..5ab497092 100644
+index c680de599..480abfb77 100644
 --- a/packages/flutter_tools/lib/src/asset.dart
 +++ b/packages/flutter_tools/lib/src/asset.dart
-@@ -6,6 +6,7 @@ import 'dart:async';
- 
+@@ -8,6 +8,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/platform.dart';
-@@ -326,7 +327,7 @@ List<_Asset> _getMaterialAssets(String fontSet) {
-     for (Map<dynamic, dynamic> font in family['fonts']) {
-       final Uri entryUri = fs.path.toUri(font['asset'] as String);
+ import 'base/utils.dart';
+@@ -392,7 +393,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: fs.path.join(Cache.flutterRoot, 'bin', 'cache', 'artifacts', 'material_fonts'),
-+        baseDir: fs.path.join(homeDirPath, '.cache', 'flutter', 'artifacts', 'material_fonts'),
+-        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,
 diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
-index 5e1950b56..45585f9c0 100644
+index c0946782c..bdbc35cb8 100644
 --- a/packages/flutter_tools/lib/src/cache.dart
 +++ b/packages/flutter_tools/lib/src/cache.dart
-@@ -164,8 +164,14 @@ class Cache {
+@@ -202,8 +202,15 @@ class Cache {
        return;
      }
      assert(_lock == null);
 +
-+    final Directory dir = fs.directory(fs.path.join(homeDirPath, '.cache', 'flutter'));
++    final Directory dir = globals.fs.directory(globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter'));
 +    if (!dir.existsSync()) {
 +      dir.createSync(recursive: true);
-+      os.chmod(dir, '755');
++      globals.os.chmod(dir, '755');
 +    }
++
      final File lockFile =
--        fs.file(fs.path.join(flutterRoot, 'bin', 'cache', 'lockfile'));
-+        fs.file(fs.path.join(homeDirPath, '.cache', 'flutter', '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'));
      try {
        _lock = lockFile.openSync(mode: FileMode.write);
      } on FileSystemException catch (e) {
-@@ -239,7 +245,7 @@ class Cache {
+@@ -306,7 +313,7 @@ class Cache {
      if (_rootOverride != null) {
-       return fs.directory(fs.path.join(_rootOverride.path, 'bin', 'cache'));
+       return _fileSystem.directory(_fileSystem.path.join(_rootOverride.path, 'bin', 'cache'));
      } else {
--      return fs.directory(fs.path.join(flutterRoot, 'bin', 'cache'));
-+      return fs.directory(fs.path.join(homeDirPath, '.cache', 'flutter'));
+-      return _fileSystem.directory(_fileSystem.path.join(flutterRoot, 'bin', 'cache'));
++      return _fileSystem.directory(_fileSystem.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter'));
      }
    }
  
diff --git a/pkgs/development/compilers/fpc/binary.nix b/pkgs/development/compilers/fpc/binary.nix
index f160150d8b5..c7e3ec30b49 100644
--- a/pkgs/development/compilers/fpc/binary.nix
+++ b/pkgs/development/compilers/fpc/binary.nix
@@ -1,18 +1,24 @@
 { stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "fpc-3.0.0-binary";
+stdenv.mkDerivation rec {
+  pname = "fpc-binary";
+  version = "3.2.0";
 
   src =
     if stdenv.hostPlatform.system == "i686-linux" then
       fetchurl {
-        url = "mirror://sourceforge/project/freepascal/Linux/3.0.0/fpc-3.0.0.i386-linux.tar";
-        sha256 = "0h3f1dgs1zsx7vvk9kg67anjvgw5sslfbmjblif7ishbcp3k3g5k";
+        url = "mirror://sourceforge/project/freepascal/Linux/${version}/fpc-${version}.i386-linux.tar";
+        sha256 = "0y0510b2fbxbqz28967xx8b023k6q9fv5yclfrc1yc9mg8fyn411";
       }
     else if stdenv.hostPlatform.system == "x86_64-linux" then
       fetchurl {
-        url = "mirror://sourceforge/project/freepascal/Linux/3.0.0/fpc-3.0.0.x86_64-linux.tar";
-        sha256 = "1m2xx3nda45cb3zidbjgdr8kddd19zk0khvp7xxdlclszkqscln9";
+        url = "mirror://sourceforge/project/freepascal/Linux/${version}/fpc-${version}-x86_64-linux.tar";
+        sha256 = "0gfbwjvjqlx0562ayyl08khagslrws758al2yhbi4bz5rzk554ni";
+      }
+    else if stdenv.hostPlatform.system == "aarch64-linux" then
+      fetchurl {
+        url = "mirror://sourceforge/project/freepascal/Linux/${version}/fpc-${version}.aarch64-linux.tar";
+        sha256 = "1h481ngg3m8nlsg9mw7rr1bn2c4sj4wzqny9bxyq3xvcral12r71";
       }
     else throw "Not supported on ${stdenv.hostPlatform.system}.";
 
@@ -21,4 +27,4 @@ stdenv.mkDerivation {
   meta = {
     description = "Free Pascal Compiler from a binary distribution";
   };
-} 
+}
diff --git a/pkgs/development/compilers/fpc/default.nix b/pkgs/development/compilers/fpc/default.nix
index 42804677dc0..6e7ffefca21 100644
--- a/pkgs/development/compilers/fpc/default.nix
+++ b/pkgs/development/compilers/fpc/default.nix
@@ -3,23 +3,26 @@
 let startFPC = import ./binary.nix { inherit stdenv fetchurl; }; in
 
 stdenv.mkDerivation rec {
-  version = "3.0.4";
+  version = "3.2.0";
   pname = "fpc";
 
   src = fetchurl {
     url = "mirror://sourceforge/freepascal/fpcbuild-${version}.tar.gz";
-    sha256 = "0xjyhlhz846jbnp12y68c7nq4xmp4i65akfbrjyf3r62ybk18rgn";
+    sha256 = "0f38glyn3ffmqww432snhx2b8wyrq0yj1njkp4zh56lqrvm19fgr";
   };
 
   buildInputs = [ startFPC gawk ];
   glibc = stdenv.cc.libc.out;
 
-  preConfigure =
-    if stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux" then ''
-      sed -e "s@'/lib/ld-linux[^']*'@'''@" -i fpcsrc/compiler/systems/t_linux.pas
-      sed -e "s@'/lib64/ld-linux[^']*'@'''@" -i fpcsrc/compiler/systems/t_linux.pas
-      sed -e "s@/lib64[^']*@${glibc}/lib@" -i fpcsrc/compiler/systems/t_linux.pas
-    '' else "";
+  # Patch paths for linux systems. Other platforms will need their own patches.
+  patches = [
+    ./mark-paths.patch # mark paths for later substitution in postPatch
+  ];
+  postPatch = ''
+    # substitute the markers set by the mark-paths patch
+    substituteInPlace fpcsrc/compiler/systems/t_linux.pas --subst-var-by dynlinker-prefix "${glibc}"
+    substituteInPlace fpcsrc/compiler/systems/t_linux.pas --subst-var-by syslibpath "${glibc}/lib"
+  '';
 
   makeFlags = [ "NOGDB=1" "FPC=${startFPC}/bin/fpc" ];
 
diff --git a/pkgs/development/compilers/fpc/mark-paths.patch b/pkgs/development/compilers/fpc/mark-paths.patch
new file mode 100644
index 00000000000..707c5352de7
--- /dev/null
+++ b/pkgs/development/compilers/fpc/mark-paths.patch
@@ -0,0 +1,109 @@
+diff --git a/fpcsrc/compiler/systems/t_linux.pas b/fpcsrc/compiler/systems/t_linux.pas
+index a7398fb9..8e46fec0 100644
+--- a/fpcsrc/compiler/systems/t_linux.pas
++++ b/fpcsrc/compiler/systems/t_linux.pas
+@@ -135,13 +135,13 @@ begin
+       LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib64',true);
+       { /lib64 should be the really first, so add it before everything else }
+       LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib',true);
+-      LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib64',true);
++      LibrarySearchPath.AddLibraryPath(sysrootpath,'=@syslibpath@',true);
+ {$else}
+ {$ifdef powerpc64}
+       if target_info.abi<>abi_powerpc_elfv2 then
+-        LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib64;=/usr/lib64;=/usr/X11R6/lib64',true)
++        LibrarySearchPath.AddLibraryPath(sysrootpath,'=/@syslibpath@;=/usr/lib64;=/usr/X11R6/lib64',true)
+       else
+-        LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib64;=/usr/lib/powerpc64le-linux-gnu;=/usr/X11R6/powerpc64le-linux-gnu',true);
++        LibrarySearchPath.AddLibraryPath(sysrootpath,'=/@syslibpath@;=/usr/lib/powerpc64le-linux-gnu;=/usr/X11R6/powerpc64le-linux-gnu',true);
+ {$else powerpc64}
+       LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib;=/usr/lib;=/usr/X11R6/lib',true);
+ {$endif powerpc64}
+@@ -164,7 +164,7 @@ begin
+       LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib/i386-linux-gnu',true);
+ {$endif i386}
+ {$ifdef aarch64}
+-      LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib/aarch64-linux-gnu',true);
++      LibrarySearchPath.AddLibraryPath(sysrootpath,'=@syslibpath@',true);
+ {$endif aarch64}
+ {$ifdef powerpc}
+       LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib/powerpc-linux-gnu',true);
+@@ -185,53 +185,53 @@ begin
+ end;
+ 
+ {$ifdef m68k}
+-  const defdynlinker='/lib/ld.so.1';
++  const defdynlinker='@dynlinker-prefix@/lib/ld.so.1';
+ {$endif m68k}
+ 
+ {$ifdef i386}
+-  const defdynlinker='/lib/ld-linux.so.2';
++  const defdynlinker='@dynlinker-prefix@/lib/ld-linux.so.2';
+ {$endif}
+ 
+ {$ifdef x86_64}
+-  const defdynlinker='/lib64/ld-linux-x86-64.so.2';
++  const defdynlinker='@dynlinker-prefix@/lib64/ld-linux-x86-64.so.2';
+ {$endif x86_64}
+ 
+ {$ifdef sparc}
+-  const defdynlinker='/lib/ld-linux.so.2';
++  const defdynlinker='@dynlinker-prefix@/lib/ld-linux.so.2';
+ {$endif sparc}
+ 
+ {$ifdef powerpc}
+-  const defdynlinker='/lib/ld.so.1';
++  const defdynlinker='@dynlinker-prefix@/lib/ld.so.1';
+ {$endif powerpc}
+ 
+ {$ifdef powerpc64}
+-  const defdynlinkerv1='/lib64/ld64.so.1';
+-  const defdynlinkerv2='/lib64/ld64.so.2';
++  const defdynlinkerv1='@dynlinker-prefix@/lib64/ld64.so.1';
++  const defdynlinkerv2='@dynlinker-prefix@/lib64/ld64.so.2';
+   var defdynlinker: string;
+ {$endif powerpc64}
+ 
+ {$ifdef arm}
+ {$ifdef FPC_ARMHF}
+-  const defdynlinker='/lib/ld-linux-armhf.so.3';
++  const defdynlinker='@dynlinker-prefix@/lib/ld-linux-armhf.so.3';
+ {$else FPC_ARMHF}
+ {$ifdef FPC_ARMEL}
+-  const defdynlinker='/lib/ld-linux.so.3';
++  const defdynlinker='@dynlinker-prefix@/lib/ld-linux.so.3';
+ {$else FPC_ARMEL}
+-  const defdynlinker='/lib/ld-linux.so.2';
++  const defdynlinker='@dynlinker-prefix@/lib/ld-linux.so.2';
+ {$endif FPC_ARMEL}
+ {$endif FPC_ARMHF}
+ {$endif arm}
+ 
+ {$ifdef aarch64}
+-const defdynlinker='/lib/ld-linux-aarch64.so.1';
++const defdynlinker='@dynlinker-prefix@/lib/ld-linux-aarch64.so.1';
+ {$endif aarch64}
+ 
+ {$ifdef mips}
+-  const defdynlinker='/lib/ld.so.1';
++  const defdynlinker='@dynlinker-prefix@/lib/ld.so.1';
+ {$endif mips}
+ 
+ {$ifdef sparc64}
+-  const defdynlinker='/lib64/ld-linux.so.2';
++  const defdynlinker='@dynlinker-prefix@/lib64/ld-linux.so.2';
+ {$endif sparc64}
+ 
+ 
+@@ -266,9 +266,9 @@ begin
+       libctype:=uclibc;
+     end
+ {$ifdef i386}
+-  else if FileExists(sysrootpath+'/lib/ld-linux.so.1',false) then
++  else if FileExists(sysrootpath+'@dynlinker-prefix@/lib/ld-linux.so.1',false) then
+     begin
+-      DynamicLinker:='/lib/ld-linux.so.1';
++      DynamicLinker:='@dynlinker-prefix@/lib/ld-linux.so.1';
+       libctype:=glibc2;
+     end
+ {$endif i386}
diff --git a/pkgs/development/compilers/gambit/unstable.nix b/pkgs/development/compilers/gambit/unstable.nix
index 3ac4f536319..7284e5b531d 100644
--- a/pkgs/development/compilers/gambit/unstable.nix
+++ b/pkgs/development/compilers/gambit/unstable.nix
@@ -1,13 +1,13 @@
 { callPackage, fetchFromGitHub, gambit-support }:
 
 callPackage ./build.nix {
-  version = "unstable-2020-05-15";
-  git-version = "4.9.3-1109-g3c4d40de";
+  version = "unstable-2020-07-29";
+  git-version = "4.9.3-1232-gbba388b8";
   src = fetchFromGitHub {
     owner = "feeley";
     repo = "gambit";
-    rev = "3c4d40de908ae03ca0e3d854edc2234ef401b36c";
-    sha256 = "1c9a6rys2kiiqb79gvw29nv3dwwk6hmi1q4jk1whcx7mds7q5dvr";
+    rev = "bba388b80ca62a77883a8936d64b03316808696a";
+    sha256 = "0iqlp1mvxz8g32kqrqm0phnnp1i5c4jrapqh2wqwa8fh1vgnizg1";
   };
   gambit-params = gambit-support.unstable-params;
 }
diff --git a/pkgs/development/compilers/gcc/10/default.nix b/pkgs/development/compilers/gcc/10/default.nix
index ae723a14531..aa34798cc58 100644
--- a/pkgs/development/compilers/gcc/10/default.nix
+++ b/pkgs/development/compilers/gcc/10/default.nix
@@ -11,7 +11,7 @@
 , enableLTO ? true
 , texinfo ? null
 , perl ? null # optional, for texi2pod (then pod2man)
-, gmp, mpfr, libmpc, gettext, which
+, gmp, mpfr, libmpc, gettext, which, patchelf
 , libelf                      # optional, for link-time optimizations (LTO)
 , isl ? null # optional, for the Graphite optimization framework.
 , zlib ? null
@@ -151,11 +151,14 @@ stdenv.mkDerivation ({
 
   # For building runtime libs
   depsBuildTarget =
-    if hostPlatform == buildPlatform then [
-      targetPackages.stdenv.cc.bintools # newly-built gcc will be used
-    ] else assert targetPlatform == hostPlatform; [ # build != host == target
-      stdenv.cc
-    ];
+    (
+      if hostPlatform == buildPlatform then [
+        targetPackages.stdenv.cc.bintools # newly-built gcc will be used
+      ] else assert targetPlatform == hostPlatform; [ # build != host == target
+        stdenv.cc
+      ]
+    )
+    ++ optional targetPlatform.isLinux patchelf;
 
   buildInputs = [
     gmp mpfr libmpc libelf
diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix
index 6a2c506b1bf..213d0c91ff3 100644
--- a/pkgs/development/compilers/gcc/4.8/default.nix
+++ b/pkgs/development/compilers/gcc/4.8/default.nix
@@ -11,7 +11,7 @@
 , enableLTO ? true
 , texinfo ? null
 , perl ? null # optional, for texi2pod (then pod2man); required for Java
-, gmp, mpfr, libmpc, gettext, which
+, gmp, mpfr, libmpc, gettext, which, patchelf
 , libelf                      # optional, for link-time optimizations (LTO)
 , cloog ? null, isl ? null # optional, for the Graphite optimization framework.
 , zlib ? null, boehmgc ? null
@@ -160,11 +160,14 @@ stdenv.mkDerivation ({
 
   # For building runtime libs
   depsBuildTarget =
-    if hostPlatform == buildPlatform then [
-      targetPackages.stdenv.cc.bintools # newly-built gcc will be used
-    ] else assert targetPlatform == hostPlatform; [ # build != host == target
-      stdenv.cc
-    ];
+    (
+      if hostPlatform == buildPlatform then [
+        targetPackages.stdenv.cc.bintools # newly-built gcc will be used
+      ] else assert targetPlatform == hostPlatform; [ # build != host == target
+        stdenv.cc
+      ]
+    )
+    ++ optional targetPlatform.isLinux patchelf;
 
   buildInputs = [
     gmp mpfr libmpc libelf
diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix
index 0a35ed023c6..98d4b61648e 100644
--- a/pkgs/development/compilers/gcc/4.9/default.nix
+++ b/pkgs/development/compilers/gcc/4.9/default.nix
@@ -11,7 +11,7 @@
 , enableLTO ? true
 , texinfo ? null
 , perl ? null # optional, for texi2pod (then pod2man); required for Java
-, gmp, mpfr, libmpc, gettext, which
+, gmp, mpfr, libmpc, gettext, which, patchelf
 , libelf                      # optional, for link-time optimizations (LTO)
 , cloog ? null, isl ? null # optional, for the Graphite optimization framework.
 , zlib ? null, boehmgc ? null
@@ -63,6 +63,7 @@ let majorVersion = "4";
 
     patches =
       [ ../use-source-date-epoch.patch ../parallel-bconfig.patch ./parallel-strsignal.patch
+        ./libsanitizer.patch
         (fetchpatch {
           name = "avoid-ustat-glibc-2.28.patch";
           url = "https://gitweb.gentoo.org/proj/gcc-patches.git/plain/4.9.4/gentoo/100_all_avoid-ustat-glibc-2.28.patch?id=55fcb515620a8f7d3bb77eba938aa0fcf0d67c96";
@@ -172,11 +173,14 @@ stdenv.mkDerivation ({
 
   # For building runtime libs
   depsBuildTarget =
-    if hostPlatform == buildPlatform then [
-      targetPackages.stdenv.cc.bintools # newly-built gcc will be used
-    ] else assert targetPlatform == hostPlatform; [ # build != host == target
-      stdenv.cc
-    ];
+    (
+      if hostPlatform == buildPlatform then [
+        targetPackages.stdenv.cc.bintools # newly-built gcc will be used
+      ] else assert targetPlatform == hostPlatform; [ # build != host == target
+        stdenv.cc
+      ]
+    )
+    ++ optional targetPlatform.isLinux patchelf;
 
   buildInputs = [
     gmp mpfr libmpc libelf
diff --git a/pkgs/development/compilers/gcc/4.9/libsanitizer.patch b/pkgs/development/compilers/gcc/4.9/libsanitizer.patch
new file mode 100644
index 00000000000..f1a438a4e5f
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.9/libsanitizer.patch
@@ -0,0 +1,24 @@
+diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
+index aec950454..5bda9b3a3 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
+@@ -156,18 +156,13 @@ namespace __sanitizer {
+ #elif defined(__sparc__)
+ # if defined(__arch64__)
+     unsigned mode;
+-    unsigned short __pad1;
+-# else
+-    unsigned short __pad1;
+-    unsigned short mode;
+     unsigned short __pad2;
+ # endif
+     unsigned short __seq;
+     unsigned long long __unused1;
+     unsigned long long __unused2;
+ #else
+-    unsigned short mode;
+-    unsigned short __pad1;
++    unsigned int mode;
+     unsigned short __seq;
+     unsigned short __pad2;
+ #if defined(__x86_64__) && !defined(_LP64)
diff --git a/pkgs/development/compilers/gcc/6/0001-Fix-build-for-glibc-2.31.patch b/pkgs/development/compilers/gcc/6/0001-Fix-build-for-glibc-2.31.patch
new file mode 100644
index 00000000000..0cd04e218ca
--- /dev/null
+++ b/pkgs/development/compilers/gcc/6/0001-Fix-build-for-glibc-2.31.patch
@@ -0,0 +1,62 @@
+From 8b55f1047cf3491429c1af607e5dac08a81db6e1 Mon Sep 17 00:00:00 2001
+From: Maximilian Bosch <maximilian@mbosch.me>
+Date: Thu, 20 Feb 2020 15:08:36 +0100
+Subject: [PATCH] Fix build for glibc 2.31
+
+---
+ .../sanitizer_platform_limits_posix.cc            |  5 +++--
+ .../sanitizer_platform_limits_posix.h             | 15 +--------------
+ 2 files changed, 4 insertions(+), 16 deletions(-)
+
+diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+index 069d8d557..c49c28c6e 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+@@ -1130,8 +1130,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
+ #ifndef __GLIBC_PREREQ
+ #define __GLIBC_PREREQ(x, y) 0
+ #endif
+-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
+-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field.  */
++#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
++/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
++   on many architectures.  */
+ CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
+ #endif
+ 
+diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
+index 304d04e39..568081a79 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
+@@ -200,27 +200,14 @@ namespace __sanitizer {
+     unsigned __seq;
+     u64 __unused1;
+     u64 __unused2;
+-#elif defined(__mips__) || defined(__aarch64__)
+-    unsigned int mode;
+-    unsigned short __seq;
+-    unsigned short __pad1;
+-    unsigned long __unused1;
+-    unsigned long __unused2;
+ #elif defined(__sparc__)
+-# if defined(__arch64__)
+     unsigned mode;
+-    unsigned short __pad1;
+-# else
+-    unsigned short __pad1;
+-    unsigned short mode;
+     unsigned short __pad2;
+-# endif
+     unsigned short __seq;
+     unsigned long long __unused1;
+     unsigned long long __unused2;
+ #else
+-    unsigned short mode;
+-    unsigned short __pad1;
++    unsigned int mode;
+     unsigned short __seq;
+     unsigned short __pad2;
+ #if defined(__x86_64__) && !defined(_LP64)
+-- 
+2.25.0
+
diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix
index f3b15eac55d..a2f034a4827 100644
--- a/pkgs/development/compilers/gcc/6/default.nix
+++ b/pkgs/development/compilers/gcc/6/default.nix
@@ -13,7 +13,7 @@
 , texinfo ? null
 , flex
 , perl ? null # optional, for texi2pod (then pod2man); required for Java
-, gmp, mpfr, libmpc, gettext, which
+, gmp, mpfr, libmpc, gettext, which, patchelf
 , libelf                      # optional, for link-time optimizations (LTO)
 , isl ? null # optional, for the Graphite optimization framework.
 , zlib ? null, boehmgc ? null
@@ -64,9 +64,9 @@ let majorVersion = "6";
 
     inherit (stdenv) buildPlatform hostPlatform targetPlatform;
 
-    patches =
-      [ ../use-source-date-epoch.patch ]
-      ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
+    patches = optionals (!stdenv.targetPlatform.isRedox) [
+      ../use-source-date-epoch.patch ./0001-Fix-build-for-glibc-2.31.patch
+    ] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
       ++ optional langAda ../gnat-cflags.patch
       ++ optional langFortran ../gfortran-driving.patch
@@ -120,6 +120,11 @@ stdenv.mkDerivation ({
     repo = "gcc-vc4";
     rev = "e90ff43f9671c760cf0d1dd62f569a0fb9bf8918";
     sha256 = "0gxf66hwqk26h8f853sybphqa5ca0cva2kmrw5jsiv6139g0qnp8";
+  } else if stdenv.targetPlatform.isRedox then fetchFromGitHub {
+    owner = "redox-os";
+    repo = "gcc";
+    rev = "f360ac095028d286fc6dde4d02daed48f59813fa"; # `redox` branch
+    sha256 = "1an96h8l58pppyh3qqv90g8hgcfd9hj7igvh2gigmkxbrx94khfl";
   } else fetchurl {
     url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.xz";
     sha256 = "0i89fksfp6wr1xg9l8296aslcymv2idn60ip31wr9s4pwin7kwby";
@@ -182,15 +187,18 @@ stdenv.mkDerivation ({
   nativeBuildInputs = [ texinfo which gettext ]
     ++ (optional (perl != null) perl)
     ++ (optional javaAwtGtk pkgconfig)
-    ++ (optional (stdenv.targetPlatform.isVc4) flex);
+    ++ (optional (with stdenv.targetPlatform; isVc4 || isRedox) flex);
 
   # For building runtime libs
   depsBuildTarget =
-    if hostPlatform == buildPlatform then [
-      targetPackages.stdenv.cc.bintools # newly-built gcc will be used
-    ] else assert targetPlatform == hostPlatform; [ # build != host == target
-      stdenv.cc
-    ];
+    (
+      if hostPlatform == buildPlatform then [
+        targetPackages.stdenv.cc.bintools # newly-built gcc will be used
+      ] else assert targetPlatform == hostPlatform; [ # build != host == target
+        stdenv.cc
+      ]
+    )
+    ++ optional targetPlatform.isLinux patchelf;
 
   buildInputs = [
     gmp mpfr libmpc libelf
diff --git a/pkgs/development/compilers/gcc/7/0001-Fix-build-for-glibc-2.31.patch b/pkgs/development/compilers/gcc/7/0001-Fix-build-for-glibc-2.31.patch
new file mode 100644
index 00000000000..d8aad14942b
--- /dev/null
+++ b/pkgs/development/compilers/gcc/7/0001-Fix-build-for-glibc-2.31.patch
@@ -0,0 +1,62 @@
+From 2d03b6eaf823fc2db6a32b4a95e18f8a7474b47f Mon Sep 17 00:00:00 2001
+From: Maximilian Bosch <maximilian@mbosch.me>
+Date: Thu, 20 Feb 2020 01:56:42 +0100
+Subject: [PATCH] Fix build for glibc 2.31
+
+---
+ .../sanitizer_platform_limits_posix.cc            |  5 +++--
+ .../sanitizer_platform_limits_posix.h             | 15 +--------------
+ 2 files changed, 4 insertions(+), 16 deletions(-)
+
+diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+index 97eae3fc7..4089d4695 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+@@ -1145,8 +1145,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
+-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
+-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field.  */
++#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
++/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
++   on many architectures.  */
+ CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
+ #endif
+ 
+diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
+index c13932283..3456fb2db 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
+@@ -204,27 +204,14 @@ namespace __sanitizer {
+     unsigned __seq;
+     u64 __unused1;
+     u64 __unused2;
+-#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__)
+-    unsigned int mode;
+-    unsigned short __seq;
+-    unsigned short __pad1;
+-    unsigned long __unused1;
+-    unsigned long __unused2;
+ #elif defined(__sparc__)
+-# if defined(__arch64__)
+     unsigned mode;
+-    unsigned short __pad1;
+-# else
+-    unsigned short __pad1;
+-    unsigned short mode;
+     unsigned short __pad2;
+-# endif
+     unsigned short __seq;
+     unsigned long long __unused1;
+     unsigned long long __unused2;
+ #else
+-    unsigned short mode;
+-    unsigned short __pad1;
++    unsigned int mode;
+     unsigned short __seq;
+     unsigned short __pad2;
+ #if defined(__x86_64__) && !defined(_LP64)
+-- 
+2.25.0
+
diff --git a/pkgs/development/compilers/gcc/7/default.nix b/pkgs/development/compilers/gcc/7/default.nix
index 89933c22edd..6d066044ec1 100644
--- a/pkgs/development/compilers/gcc/7/default.nix
+++ b/pkgs/development/compilers/gcc/7/default.nix
@@ -10,7 +10,7 @@
 , enableLTO ? true
 , texinfo ? null
 , perl ? null # optional, for texi2pod (then pod2man)
-, gmp, mpfr, libmpc, gettext, which
+, gmp, mpfr, libmpc, gettext, which, patchelf
 , libelf                      # optional, for link-time optimizations (LTO)
 , isl ? null # optional, for the Graphite optimization framework.
 , zlib ? null
@@ -53,6 +53,8 @@ let majorVersion = "7";
         ./riscv-pthread-reentrant.patch
         # https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00297.html
         ./riscv-no-relax.patch
+
+        ./0001-Fix-build-for-glibc-2.31.patch
       ]
       ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optionals targetPlatform.isNetBSD [
@@ -156,11 +158,14 @@ stdenv.mkDerivation ({
 
   # For building runtime libs
   depsBuildTarget =
-    if hostPlatform == buildPlatform then [
-      targetPackages.stdenv.cc.bintools # newly-built gcc will be used
-    ] else assert targetPlatform == hostPlatform; [ # build != host == target
-      stdenv.cc
-    ];
+    (
+      if hostPlatform == buildPlatform then [
+        targetPackages.stdenv.cc.bintools # newly-built gcc will be used
+      ] else assert targetPlatform == hostPlatform; [ # build != host == target
+        stdenv.cc
+      ]
+    )
+    ++ optional targetPlatform.isLinux patchelf;
 
   buildInputs = [
     gmp mpfr libmpc libelf
diff --git a/pkgs/development/compilers/gcc/8/default.nix b/pkgs/development/compilers/gcc/8/default.nix
index 5a6e20c0f41..9e6a24d1294 100644
--- a/pkgs/development/compilers/gcc/8/default.nix
+++ b/pkgs/development/compilers/gcc/8/default.nix
@@ -10,7 +10,7 @@
 , enableLTO ? true
 , texinfo ? null
 , perl ? null # optional, for texi2pod (then pod2man)
-, gmp, mpfr, libmpc, gettext, which
+, gmp, mpfr, libmpc, gettext, which, patchelf
 , libelf                      # optional, for link-time optimizations (LTO)
 , isl ? null # optional, for the Graphite optimization framework.
 , zlib ? null
@@ -148,11 +148,14 @@ stdenv.mkDerivation ({
 
   # For building runtime libs
   depsBuildTarget =
-    if hostPlatform == buildPlatform then [
-      targetPackages.stdenv.cc.bintools # newly-built gcc will be used
-    ] else assert targetPlatform == hostPlatform; [ # build != host == target
-      stdenv.cc
-    ];
+    (
+      if hostPlatform == buildPlatform then [
+        targetPackages.stdenv.cc.bintools # newly-built gcc will be used
+      ] else assert targetPlatform == hostPlatform; [ # build != host == target
+        stdenv.cc
+      ]
+    )
+    ++ optional targetPlatform.isLinux patchelf;
 
   buildInputs = [
     gmp mpfr libmpc libelf
diff --git a/pkgs/development/compilers/gcc/9/default.nix b/pkgs/development/compilers/gcc/9/default.nix
index 978ad75a3d2..305ed56df78 100644
--- a/pkgs/development/compilers/gcc/9/default.nix
+++ b/pkgs/development/compilers/gcc/9/default.nix
@@ -12,7 +12,7 @@
 , enableLTO ? true
 , texinfo ? null
 , perl ? null # optional, for texi2pod (then pod2man)
-, gmp, mpfr, libmpc, gettext, which
+, gmp, mpfr, libmpc, gettext, which, patchelf
 , libelf                      # optional, for link-time optimizations (LTO)
 , isl ? null # optional, for the Graphite optimization framework.
 , zlib ? null
@@ -31,6 +31,11 @@
 , buildPackages
 }:
 
+# 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
+# files.
+
 # LTO needs libelf and zlib.
 assert libelf != null -> zlib != null;
 
@@ -153,11 +158,14 @@ stdenv.mkDerivation ({
 
   # For building runtime libs
   depsBuildTarget =
-    if hostPlatform == buildPlatform then [
-      targetPackages.stdenv.cc.bintools # newly-built gcc will be used
-    ] else assert targetPlatform == hostPlatform; [ # build != host == target
-      stdenv.cc
-    ];
+    (
+      if hostPlatform == buildPlatform then [
+        targetPackages.stdenv.cc.bintools # newly-built gcc will be used
+      ] else assert targetPlatform == hostPlatform; [ # build != host == target
+        stdenv.cc
+      ]
+    )
+    ++ optional targetPlatform.isLinux patchelf;
 
   buildInputs = [
     gmp mpfr libmpc libelf
@@ -176,7 +184,7 @@ stdenv.mkDerivation ({
 
   preConfigure = import ../common/pre-configure.nix {
     inherit (stdenv) lib;
-    inherit version hostPlatform gnatboot langAda langGo;
+    inherit version hostPlatform gnatboot langAda langGo langJit;
   };
 
   dontDisableStatic = true;
diff --git a/pkgs/development/compilers/gcc/builder.sh b/pkgs/development/compilers/gcc/builder.sh
index 4b14cdb94cd..2204744a4b5 100644
--- a/pkgs/development/compilers/gcc/builder.sh
+++ b/pkgs/development/compilers/gcc/builder.sh
@@ -61,7 +61,7 @@ if test "$noSysDirs" = "1"; then
         if [[ -e "${!curCC}/nix-support/orig-libc" ]]; then
             # Figure out what extra compiling flags to pass to the gcc compilers
             # being generated to make sure that they use our libc.
-            extraFlags=($(< "${!curCC}/nix-support/libc-cflags"))
+            extraFlags=($(< "${!curCC}/nix-support/libc-crt1-cflags") $(< "${!curCC}/nix-support/libc-cflags"))
 
             # The path to the Libc headers
             libc_devdir="$(< "${!curCC}/nix-support/orig-libc-dev")"
@@ -241,7 +241,7 @@ postInstall() {
     # More dependencies with the previous gcc or some libs (gccbug stores the build command line)
     rm -rf $out/bin/gccbug
 
-    if type "patchelf"; then
+    if [[ buildConfig == *"linux"* ]]; then
         # Take out the bootstrap-tools from the rpath, as it's not needed at all having $out
         for i in $(find "$out"/libexec/gcc/*/*/* -type f -a \! -name '*.la'); do
             PREV_RPATH=`patchelf --print-rpath "$i"`
@@ -250,8 +250,18 @@ postInstall() {
         done
     fi
 
+    if [[ targetConfig == *"linux"* ]]; then
+        # For some reason, when building for linux on darwin, the libs retain
+	# RPATH to $out.
+        for i in "$lib"/"$targetConfig"/lib/{libtsan,libasan,libubsan}.so.*.*.*; do
+            PREV_RPATH=`patchelf --print-rpath "$i"`
+            NEW_RPATH=`echo "$PREV_RPATH" | sed "s,:${out}[^:]*,,g"`
+            patchelf --set-rpath "$NEW_RPATH" "$i" && echo OK
+        done
+    fi
+
     if type "install_name_tool"; then
-        for i in "${!outputLib}"/lib/*.*.dylib; do
+        for i in "${!outputLib}"/lib/*.*.dylib "${!outputLib}"/lib/*.so.[0-9]; do
             install_name_tool -id "$i" "$i" || true
             for old_path in $(otool -L "$i" | grep "$out" | awk '{print $1}'); do
               new_path=`echo "$old_path" | sed "s,$out,${!outputLib},"`
diff --git a/pkgs/development/compilers/gcc/common/pre-configure.nix b/pkgs/development/compilers/gcc/common/pre-configure.nix
index 85b854e19b9..1c65b4a8ba6 100644
--- a/pkgs/development/compilers/gcc/common/pre-configure.nix
+++ b/pkgs/development/compilers/gcc/common/pre-configure.nix
@@ -2,6 +2,7 @@
 , gnatboot ? null
 , langAda ? false
 , langJava ? false
+, langJit ? false
 , langGo }:
 
 assert langJava -> lib.versionOlder version "7";
@@ -17,3 +18,43 @@ lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) ''
 '' + lib.optionalString langAda ''
   export PATH=${gnatboot}/bin:$PATH
 ''
+
+# NOTE 2020/3/18: This environment variable prevents configure scripts from
+# detecting the presence of aligned_alloc on Darwin.  There are many facts that
+# collectively make this fix necessary:
+#  - Nix uses a fixed set of standard library headers on all MacOS systems,
+#    regardless of their actual version.  (Nix uses version 10.12 headers.)
+#  - Nix uses the native standard library binaries for the build system.  That
+#    means the standard library binaries may not exactly match the standard
+#    library headers.
+#  - The aligned_alloc procedure is present in MacOS 10.15 (Catalina), but not
+#    in earlier versions.  Therefore on Catalina systems, aligned_alloc is
+#    linkable (i.e. present in the binary libraries) but not present in the
+#    headers.
+#  - Configure scripts detect a procedure's existence by checking whether it is
+#    linkable.  They do not check whether it is present in the headers.
+#  - GCC throws an error during compilation because aligned_alloc is not
+#    defined in the headers---even though the linker can see it.
+#
+# This fix would not be necessary if ANY of the above were false:
+#  - If Nix used native headers for each different MacOS version, aligned_alloc
+#    would be in the headers on Catalina.
+#  - If Nix used the same libary binaries for each MacOS version, aligned_alloc
+#    would not be in the library binaries.
+#  - If Catalina did not include aligned_alloc, this wouldn't be a problem.
+#  - If the configure scripts looked for header presence as well as
+#    linkability, they would see that aligned_alloc is missing.
+#  - If GCC allowed implicit declaration of symbols, it would not fail during
+#    compilation even if the configure scripts did not check header presence.
+#
++ lib.optionalString (hostPlatform.isDarwin) ''
+  export ac_cv_func_aligned_alloc=no
+''
+
+# In order to properly install libgccjit on macOS Catalina, strip(1)
+# upon installation must not remove external symbols, otherwise the
+# install step errors with "symbols referenced by indirect symbol
+# table entries that can't be stripped".
++ lib.optionalString (hostPlatform.isDarwin && langJit) ''
+  export STRIP='strip -x'
+''
diff --git a/pkgs/development/compilers/gcc/libstdc++-hook.sh b/pkgs/development/compilers/gcc/libstdc++-hook.sh
deleted file mode 100644
index f5b4123b64d..00000000000
--- a/pkgs/development/compilers/gcc/libstdc++-hook.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-# See pkgs/build-support/setup-hooks/role.bash
-getHostRole
-
-export NIX_CXXSTDLIB_COMPILE${role_post}+=" -isystem $(echo -n @gcc@/include/c++/*) -isystem $(echo -n @gcc@/include/c++/*)/@targetConfig@"
diff --git a/pkgs/development/compilers/gerbil/gerbil-crypto.nix b/pkgs/development/compilers/gerbil/gerbil-crypto.nix
new file mode 100644
index 00000000000..12f4726f1c6
--- /dev/null
+++ b/pkgs/development/compilers/gerbil/gerbil-crypto.nix
@@ -0,0 +1,27 @@
+{ pkgs, lib, fetchFromGitHub, gerbil-unstable, gerbil-support, gambit-support }:
+
+gerbil-support.gerbilPackage {
+  pname = "gerbil-crypto";
+  version = "unstable-2020-08-01";
+  git-version = "0.0-6-ga228862";
+  gerbil-package = "clan/crypto";
+  gerbil = gerbil-unstable;
+  gerbilInputs = [gerbil-support.gerbilPackages-unstable.gerbil-utils];
+  buildInputs = [pkgs.secp256k1 pkgs.pkg-config];
+  gambit-params = gambit-support.unstable-params;
+  version-path = "version";
+  softwareName = "Gerbil-crypto";
+  src = fetchFromGitHub {
+    owner = "fare";
+    repo = "gerbil-crypto";
+    rev = "a22886260849ec92c3a34bfeedc1574e41e49e33";
+    sha256 = "0qbanw2vnw2ymmr4pr1jap29cyc3icbhyq0apibpfnj2znns7w47";
+  };
+  meta = {
+    description = "Gerbil Crypto: Extra Cryptographic Primitives for Gerbil";
+    homepage    = "https://github.com/fare/gerbil-crypto";
+    license     = lib.licenses.asl20;
+    platforms   = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ fare ];
+  };
+}
diff --git a/pkgs/development/compilers/gerbil/gerbil-ethereum.nix b/pkgs/development/compilers/gerbil/gerbil-ethereum.nix
new file mode 100644
index 00000000000..9b90cc053e1
--- /dev/null
+++ b/pkgs/development/compilers/gerbil/gerbil-ethereum.nix
@@ -0,0 +1,28 @@
+{ pkgs, lib, fetchFromGitHub, gerbil-unstable, gerbil-support, gambit-support }:
+
+gerbil-support.gerbilPackage {
+  pname = "gerbil-ethereum";
+  version = "unstable-2020-08-02";
+  git-version = "0.0-15-g7cd2dd7";
+  gerbil-package = "mukn/ethereum";
+  gerbil = gerbil-unstable;
+  gerbilInputs = with gerbil-support.gerbilPackages-unstable;
+    [gerbil-utils gerbil-crypto gerbil-poo gerbil-persist];
+  buildInputs = [];
+  gambit-params = gambit-support.unstable-params;
+  version-path = "version";
+  softwareName = "Gerbil-ethereum";
+  src = fetchFromGitHub {
+    owner = "fare";
+    repo = "gerbil-ethereum";
+    rev = "7cd2dd7436b11917d0729dbafe087cfa8ec38f86";
+    sha256 = "0qq3ch2dg735yrj3l2c9pb9qlvz98x3vjfi2xyr4fwr78smpqgb5";
+  };
+  meta = {
+    description = "Gerbil Ethereum: a Scheme alternative to web3.js";
+    homepage    = "https://github.com/fare/gerbil-ethereum";
+    license     = lib.licenses.asl20;
+    platforms   = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ fare ];
+  };
+}
diff --git a/pkgs/development/compilers/gerbil/gerbil-persist.nix b/pkgs/development/compilers/gerbil/gerbil-persist.nix
new file mode 100644
index 00000000000..1be6684bf44
--- /dev/null
+++ b/pkgs/development/compilers/gerbil/gerbil-persist.nix
@@ -0,0 +1,27 @@
+{ pkgs, lib, fetchFromGitHub, gerbil-unstable, gerbil-support, gambit-support }:
+
+gerbil-support.gerbilPackage {
+  pname = "gerbil-persist";
+  version = "unstable-2020-08-02";
+  git-version = "0.0-4-ga3b2bd1";
+  gerbil-package = "clan/persist";
+  gerbil = gerbil-unstable;
+  gerbilInputs = with gerbil-support.gerbilPackages-unstable; [gerbil-utils gerbil-crypto gerbil-poo];
+  buildInputs = [];
+  gambit-params = gambit-support.unstable-params;
+  version-path = "version";
+  softwareName = "Gerbil-persist";
+  src = fetchFromGitHub {
+    owner = "fare";
+    repo = "gerbil-persist";
+    rev = "a3b2bd104612db0e4492737f09f72adea6684483";
+    sha256 = "0mc01wva26ww1i7n8naa95mfw7i6lj8qg0bwsik7gb3dsj2acjvh";
+  };
+  meta = {
+    description = "Gerbil Persist: Persistent data and activities";
+    homepage    = "https://github.com/fare/gerbil-persist";
+    license     = lib.licenses.asl20;
+    platforms   = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ fare ];
+  };
+}
diff --git a/pkgs/development/compilers/gerbil/gerbil-poo.nix b/pkgs/development/compilers/gerbil/gerbil-poo.nix
new file mode 100644
index 00000000000..55673368eea
--- /dev/null
+++ b/pkgs/development/compilers/gerbil/gerbil-poo.nix
@@ -0,0 +1,27 @@
+{ pkgs, lib, fetchFromGitHub, gerbil-unstable, gerbil-support, gambit-support }:
+
+gerbil-support.gerbilPackage {
+  pname = "gerbil-ethereum";
+  version = "unstable-2020-08-02";
+  git-version = "0.0-13-g1014154";
+  gerbil-package = "clan/poo";
+  gerbil = gerbil-unstable;
+  gerbilInputs = with gerbil-support.gerbilPackages-unstable; [gerbil-utils gerbil-crypto];
+  buildInputs = [];
+  gambit-params = gambit-support.unstable-params;
+  version-path = "version";
+  softwareName = "Gerbil-POO";
+  src = fetchFromGitHub {
+    owner = "fare";
+    repo = "gerbil-poo";
+    rev = "1014154fe4943dfbec7524666c831b601ba88559";
+    sha256 = "0g8l5mi007n07qs79m9h3h3am1p7h0kzq7yb49h562b8frh5gp97";
+  };
+  meta = {
+    description = "Gerbil POO: Prototype Object Orientation for Gerbil Scheme";
+    homepage    = "https://github.com/fare/gerbil-poo";
+    license     = lib.licenses.asl20;
+    platforms   = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ fare ];
+  };
+}
diff --git a/pkgs/development/compilers/gerbil/gerbil-support.nix b/pkgs/development/compilers/gerbil/gerbil-support.nix
index 4e94b6e65de..e3f4bb0e0d2 100644
--- a/pkgs/development/compilers/gerbil/gerbil-support.nix
+++ b/pkgs/development/compilers/gerbil/gerbil-support.nix
@@ -5,6 +5,10 @@ rec {
   # Gerbil libraries
   gerbilPackages-unstable = {
     gerbil-utils = callPackage ./gerbil-utils.nix { };
+    gerbil-crypto = callPackage ./gerbil-crypto.nix { };
+    gerbil-poo = callPackage ./gerbil-poo.nix { };
+    gerbil-persist = callPackage ./gerbil-persist.nix { };
+    gerbil-ethereum = callPackage ./gerbil-ethereum.nix { };
   };
 
   # Use this function in any package that uses Gerbil libraries, to define the GERBIL_LOADPATH.
@@ -13,21 +17,26 @@ rec {
 
   # Use this function to create a Gerbil library. See gerbil-utils as an example.
   gerbilPackage = {
-    pname, version, src, meta, package,
-    git-version ? "", version-path ? "config/version.ss",
+    pname, version, src, meta, gerbil-package,
+    git-version ? "", version-path ? "",
     gerbil ? pkgs.gerbil-unstable,
     gambit-params ? pkgs.gambit-support.stable-params,
     gerbilInputs ? [],
     buildInputs ? [],
-    softwareName ? "" } :
+    softwareName ? ""} :
     let buildInputs_ = buildInputs; in
     gccStdenv.mkDerivation rec {
       inherit src meta pname version;
+      passthru = { inherit gerbil-package version-path ;};
       buildInputs = [ gerbil ] ++ gerbilInputs ++ buildInputs_;
       postPatch = ''
         set -e ;
-        if [ -n "${version-path}" ] ; then
-          echo '(import :clan/utils/version)\n(register-software "${softwareName}" "${git-version}")\n' > "${version-path}"
+        if [ -n "${version-path}.ss" ] ; then
+          echo -e '(import :clan/versioning${builtins.concatStringsSep ""
+                     (map (x : if x.passthru.version-path != ""
+                               then " :${x.passthru.gerbil-package}/${x.passthru.version-path}" else "")
+                          gerbilInputs)
+                     })\n(register-software "${softwareName}" "v${git-version}")\n' > "${passthru.version-path}.ss"
         fi
         patchShebangs . ;
       '';
diff --git a/pkgs/development/compilers/gerbil/gerbil-utils.nix b/pkgs/development/compilers/gerbil/gerbil-utils.nix
index 075a63d7bf4..7e1a9bf0557 100644
--- a/pkgs/development/compilers/gerbil/gerbil-utils.nix
+++ b/pkgs/development/compilers/gerbil/gerbil-utils.nix
@@ -2,17 +2,18 @@
 
 gerbil-support.gerbilPackage {
   pname = "gerbil-utils";
-  version = "unstable-2020-05-17";
-  git-version = "33ef720";
-  package = "clan";
+  version = "unstable-2020-08-02";
+  git-version = "0.2-21-g7e7d053";
+  gerbil-package = "clan";
   gerbil = gerbil-unstable;
   gambit-params = gambit-support.unstable-params;
-  version-path = "";
+  version-path = "version";
+  softwareName = "Gerbil-utils";
   src = fetchFromGitHub {
     owner = "fare";
     repo = "gerbil-utils";
-    rev = "33ef720799ba98dc9eec773c662f070af4bac016";
-    sha256 = "0dsb97magbxzjqqfzwq4qwf7i80llv0s1dsy9nkzkvkq8drxlmqf";
+    rev = "7e7d053ec5e78cc58d38cb03baf554d83b31b0c6";
+    sha256 = "078vqdcddfavqq0d9pw430iz1562cgx1ck3fw6dpwxjkyc6m4bms";
   };
   meta = {
     description = "Gerbil Clan: Community curated Collection of Common Utilities";
diff --git a/pkgs/development/compilers/gerbil/unstable.nix b/pkgs/development/compilers/gerbil/unstable.nix
index 9de6dc42907..7b54438b5c9 100644
--- a/pkgs/development/compilers/gerbil/unstable.nix
+++ b/pkgs/development/compilers/gerbil/unstable.nix
@@ -1,13 +1,13 @@
 { callPackage, fetchFromGitHub, gambit-unstable, gambit-support }:
 
 callPackage ./build.nix rec {
-  version = "unstable-2020-05-17";
-  git-version = "0.16-1-g36a31050";
+  version = "unstable-2020-08-02";
+  git-version = "0.16-120-g3f248e13";
   src = fetchFromGitHub {
     owner = "vyzo";
     repo = "gerbil";
-    rev = "36a31050f6c80e7e1a49dfae96a57b2ad0260698";
-    sha256 = "0k3fypam9qx110sjxgzxa1mdf5b631w16s9p5v37cb8ll26vqfiv";
+    rev = "3f248e139dfa11be74284fc812253fbecafbaf31";
+    sha256 = "18v192cypj0nbmfcyflm8qnwp27qwy65m0a19ggs47wwbzhgvgqh";
   };
   inherit gambit-support;
   gambit = gambit-unstable;
diff --git a/pkgs/development/compilers/ghc/8.10.1.nix b/pkgs/development/compilers/ghc/8.10.1.nix
index c70efe1fdef..d3835d01e5a 100644
--- a/pkgs/development/compilers/ghc/8.10.1.nix
+++ b/pkgs/development/compilers/ghc/8.10.1.nix
@@ -23,6 +23,9 @@
 , # 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
@@ -52,19 +55,30 @@ let
     (targetPlatform != hostPlatform)
     "${targetPlatform.config}-";
 
-  buildMK = ''
+  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"}
-  '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
-    Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
+  ''
+    # 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.
+  + stdenv.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
+  '' + stdenv.lib.optionalString dontStrip ''
+    STRIP_CMD = :
+  '' + stdenv.lib.optionalString (!enableProfiledLibs) ''
+    GhcLibWays = "v dyn"
   '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
     GhcLibHcOpts += -fPIC
     GhcRtsHcOpts += -fPIC
@@ -94,7 +108,7 @@ stdenv.mkDerivation (rec {
   name = "${targetPrefix}ghc-${version}";
 
   src = fetchurl {
-    url = "https://downloads.haskell.org/ghc/8.10.1/ghc-${version}-src.tar.xz";
+    url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
     sha256 = "1xgdl6ig5jzli3bg054vfryfkg0y6wggf68g66c32sr67bw0ffsf";
   };
 
@@ -122,7 +136,7 @@ stdenv.mkDerivation (rec {
     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
+    echo -n "${buildMK dontStrip}" > mk/build.mk
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
   '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
     export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
@@ -235,8 +249,9 @@ stdenv.mkDerivation (rec {
     inherit (ghc.meta) license platforms;
   };
 
-} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
-  dontStrip = true;
+  dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
+
+} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
   dontPatchELF = true;
   noAuditTmpdir = true;
 })
diff --git a/pkgs/development/compilers/ghc/8.4.4.nix b/pkgs/development/compilers/ghc/8.10.2.nix
index a4174c47046..f3d64ced81e 100644
--- a/pkgs/development/compilers/ghc/8.4.4.nix
+++ b/pkgs/development/compilers/ghc/8.10.2.nix
@@ -2,12 +2,15 @@
 
 # build-tools
 , bootPkgs
-, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4, sphinx
+, autoconf, automake, coreutils, fetchurl, perl, python3, m4, sphinx
 , bash
 
 , libiconv ? null, ncurses
 
-, useLLVM ? !stdenv.targetPlatform.isx86 || (stdenv.targetPlatform.isMusl && stdenv.hostPlatform != stdenv.targetPlatform) || stdenv.targetPlatform.isiOS
+, # 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.
@@ -20,6 +23,9 @@
 , # 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
@@ -29,11 +35,12 @@
 
 , # What flavour to build. An empty string indicates no
   # specific flavour and falls back to ghc default values.
-  ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) "perf-cross"
-, # Whether to backport https://phabricator.haskell.org/D4388 for
-  # deterministic profiling symbol names, at the cost of a slightly
-  # non-standard GHC API
-  deterministicProfiling ? false
+  ghcFlavour ? stdenv.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;
@@ -61,6 +68,8 @@ let
     HADDOCK_DOCS = NO
     BUILD_SPHINX_HTML = NO
     BUILD_SPHINX_PDF = NO
+  '' + stdenv.lib.optionalString (!enableProfiledLibs) ''
+    GhcLibWays = "v dyn"
   '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
     GhcLibHcOpts += -fPIC
     GhcRtsHcOpts += -fPIC
@@ -70,6 +79,7 @@ let
 
   # Splicer will pull out correct variations
   libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
+    ++ [libffi]
     ++ stdenv.lib.optional (!enableIntegerSimple) gmp
     ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
 
@@ -85,38 +95,22 @@ let
 
 in
 stdenv.mkDerivation (rec {
-  version = "8.4.4";
+  version = "8.10.2";
   name = "${targetPrefix}ghc-${version}";
 
   src = fetchurl {
     url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
-    sha256 = "1ch4j2asg7pr52ai1hwzykxyj553wndg7wq93i47ql4fllspf48i";
+    sha256 = "02w8n085bw38vyp694j0lfk5wcnwkdaj7hhp0saj71x74533lmww";
   };
 
   enableParallelBuilding = true;
 
   outputs = [ "out" "doc" ];
 
-  patches = [(fetchpatch {
-    url = "https://github.com/haskell/hsc2hs/commit/738f3666c878ee9e79c3d5e819ef8b3460288edf.diff";
-    sha256 = "0plzsbfaq6vb1023lsarrjglwgr9chld4q3m99rcfzx0yx5mibp3";
-    extraPrefix = "utils/hsc2hs/";
-    stripLen = 1;
-  }) (fetchpatch rec { # https://phabricator.haskell.org/D5123
-    url = "http://tarballs.nixos.org/sha256/${sha256}";
-    name = "D5123.diff";
-    sha256 = "0nhqwdamf2y4gbwqxcgjxs0kqx23w9gv5kj0zv6450dq19rji82n";
-  })] ++ stdenv.lib.optional deterministicProfiling
-    (fetchpatch rec {
-      url = "http://tarballs.nixos.org/sha256/${sha256}";
-      name = "D4388.diff";
-      sha256 = "0w6sdcvnqjlnlzpvnzw20b80v150ijjyjvs9548ildc1928j0w7s";
-    })
-    ++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch
-    ++ stdenv.lib.optional (targetPlatform.isAarch32 || targetPlatform.isAarch64) (fetchpatch {
-      url = "https://github.com/ghc/ghc/commit/d8495549ba9d194815c2d0eaee6797fc7c00756a.diff";
-      sha256 = "1yjcma507c609bcim4rnxq0gaj2dg4d001jklmbpbqpzqzxkn5sz";
-    });
+  # https://gitlab.haskell.org/ghc/ghc/-/issues/18549 
+  patches = [ 
+    ./issue-18549.patch 
+  ];
 
   postPatch = "patchShebangs .";
 
@@ -167,22 +161,28 @@ stdenv.mkDerivation (rec {
   # TODO(@Ericson2314): Always pass "--target" and always prefix.
   configurePlatforms = [ "build" "host" ]
     ++ stdenv.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"
+  ] ++ stdenv.lib.optionals (libffi != null) [
+    "--with-system-libffi"
+    "--with-ffi-includes=${targetPackages.libffi.dev}/include"
+    "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
   ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
-    "--with-gmp-includes=${targetPackages.gmp.dev}/include" "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
+    "--with-gmp-includes=${targetPackages.gmp.dev}/include"
+    "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
   ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
-    "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
+    "--with-iconv-includes=${libiconv}/include"
+    "--with-iconv-libraries=${libiconv}/lib"
   ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
     "--enable-bootstrap-with-devel-snapshot"
   ] ++ stdenv.lib.optionals useLdGold [
     "CFLAGS=-fuse-ld=gold"
     "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
     "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
-  ] ++ stdenv.lib.optionals (targetPlatform.isDarwin && targetPlatform.isAarch64) [
-    # fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
+  ] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
     "--disable-large-address-space"
   ];
 
@@ -190,7 +190,7 @@ stdenv.mkDerivation (rec {
   strictDeps = true;
 
   # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
-  dontAddExtraLibs = true;
+	dontAddExtraLibs = true;
 
   nativeBuildInputs = [
     perl autoconf automake m4 python3 sphinx
@@ -212,10 +212,6 @@ stdenv.mkDerivation (rec {
   # that in turn causes GHCi to abort
   stripDebugFlags = [ "-S" ] ++ stdenv.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" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie";
@@ -239,7 +235,7 @@ stdenv.mkDerivation (rec {
     inherit enableShared;
 
     # Our Cabal compiler name
-    haskellCompilerName = "ghc-8.4.4";
+    haskellCompilerName = "ghc-${version}";
   };
 
   meta = {
diff --git a/pkgs/development/compilers/ghc/8.6.5.nix b/pkgs/development/compilers/ghc/8.6.5.nix
index 06266556cf3..a5d2bb5c88d 100644
--- a/pkgs/development/compilers/ghc/8.6.5.nix
+++ b/pkgs/development/compilers/ghc/8.6.5.nix
@@ -59,8 +59,15 @@ let
     endif
     DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
     INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
-  '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
-    Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
+  ''
+    # 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.
+  + stdenv.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
diff --git a/pkgs/development/compilers/ghc/8.8.2.nix b/pkgs/development/compilers/ghc/8.8.2.nix
index 305226b3407..371a369496e 100644
--- a/pkgs/development/compilers/ghc/8.8.2.nix
+++ b/pkgs/development/compilers/ghc/8.8.2.nix
@@ -52,19 +52,28 @@ let
     (targetPlatform != hostPlatform)
     "${targetPlatform.config}-";
 
-  buildMK = ''
+  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"}
-  '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
-    Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
+  ''
+    # 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.
+  + stdenv.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
+  '' + stdenv.lib.optionalString dontStrip ''
+    STRIP_CMD = :
   '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
     GhcLibHcOpts += -fPIC
     GhcRtsHcOpts += -fPIC
@@ -94,7 +103,7 @@ stdenv.mkDerivation (rec {
   name = "${targetPrefix}ghc-${version}";
 
   src = fetchurl {
-    url = "https://downloads.haskell.org/ghc/8.8.2/ghc-${version}-src.tar.xz";
+    url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
     sha256 = "02qa6wgjpxgakg7hv4zfdlrx9k7zxa5i02wnr6y9fsv8j16sbkh1";
   };
 
@@ -122,7 +131,7 @@ stdenv.mkDerivation (rec {
     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
+    echo -n "${buildMK dontStrip}" > mk/build.mk
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
   '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
     export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
@@ -235,8 +244,9 @@ stdenv.mkDerivation (rec {
     inherit (ghc.meta) license platforms;
   };
 
-} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
-  dontStrip = true;
+  dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
+
+} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
   dontPatchELF = true;
   noAuditTmpdir = true;
 })
diff --git a/pkgs/development/compilers/ghc/8.8.3.nix b/pkgs/development/compilers/ghc/8.8.3.nix
index b199dc34fa3..e26eacca204 100644
--- a/pkgs/development/compilers/ghc/8.8.3.nix
+++ b/pkgs/development/compilers/ghc/8.8.3.nix
@@ -23,6 +23,9 @@
 , # 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
@@ -52,19 +55,30 @@ let
     (targetPlatform != hostPlatform)
     "${targetPlatform.config}-";
 
-  buildMK = ''
+  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"}
-  '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
-    Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
+  ''
+    # 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.
+  + stdenv.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
+  '' + stdenv.lib.optionalString dontStrip ''
+    STRIP_CMD = :
+  '' + stdenv.lib.optionalString (!enableProfiledLibs) ''
+    GhcLibWays = "v dyn"
   '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
     GhcLibHcOpts += -fPIC
     GhcRtsHcOpts += -fPIC
@@ -122,7 +136,7 @@ stdenv.mkDerivation (rec {
     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
+    echo -n "${buildMK dontStrip}" > mk/build.mk
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
   '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
     export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
@@ -235,8 +249,9 @@ stdenv.mkDerivation (rec {
     inherit (ghc.meta) license platforms;
   };
 
-} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
-  dontStrip = true;
+  dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
+
+} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
   dontPatchELF = true;
   noAuditTmpdir = true;
 })
diff --git a/pkgs/development/compilers/ghc/8.8.4.nix b/pkgs/development/compilers/ghc/8.8.4.nix
new file mode 100644
index 00000000000..22a9e6e25f9
--- /dev/null
+++ b/pkgs/development/compilers/ghc/8.8.4.nix
@@ -0,0 +1,257 @@
+{ 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 ? !(stdenv.lib.any (stdenv.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 ? stdenv.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 = stdenv.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.
+  + stdenv.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
+  '' + stdenv.lib.optionalString dontStrip ''
+    STRIP_CMD = :
+  '' + stdenv.lib.optionalString (!enableProfiledLibs) ''
+    GhcLibWays = "v dyn"
+  '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
+    GhcLibHcOpts += -fPIC
+    GhcRtsHcOpts += -fPIC
+  '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
+    EXTRA_CC_OPTS += -std=gnu99
+  '';
+
+  # Splicer will pull out correct variations
+  libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
+    ++ [libffi]
+    ++ stdenv.lib.optional (!enableIntegerSimple) gmp
+    ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
+
+  toolsForTarget = [
+    pkgsBuildTarget.targetPackages.stdenv.cc
+  ] ++ stdenv.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.4";
+  name = "${targetPrefix}ghc-${version}";
+
+  src = fetchurl {
+    url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
+    sha256 = "0bgwbxxvdn56l91bp9p5d083gzcfdi6z8l8b17qzjpr3n8w5wl7h";
+  };
+
+  enableParallelBuilding = true;
+
+  outputs = [ "out" "doc" ];
+
+  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${stdenv.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
+  '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
+    export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    export NIX_LDFLAGS+=" -no_dtrace_dof"
+  '' + stdenv.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
+  '' + stdenv.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" ]
+    ++ stdenv.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"
+  ] ++ stdenv.lib.optionals (libffi != null) [
+    "--with-system-libffi"
+    "--with-ffi-includes=${targetPackages.libffi.dev}/include"
+    "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
+  ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
+    "--with-gmp-includes=${targetPackages.gmp.dev}/include"
+    "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
+  ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
+    "--with-iconv-includes=${libiconv}/include"
+    "--with-iconv-libraries=${libiconv}/lib"
+  ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
+    "--enable-bootstrap-with-devel-snapshot"
+  ] ++ stdenv.lib.optionals useLdGold [
+    "CFLAGS=-fuse-ld=gold"
+    "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
+    "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
+  ] ++ stdenv.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 ]
+    ++ stdenv.lib.optional useLLVM llvmPackages.llvm;
+
+  depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform);
+  depsTargetTargetPropagated = map (stdenv.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" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
+
+  checkTarget = "test";
+
+  hardeningDisable = [ "format" ] ++ stdenv.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:${stdenv.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 stdenv.lib.maintainers; [ marcweber andres peti ];
+    inherit (ghc.meta) license platforms;
+  };
+
+  dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
+
+} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
+  dontPatchELF = true;
+  noAuditTmpdir = true;
+})
diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix
index a15ef7f7dbf..6f9f577743f 100644
--- a/pkgs/development/compilers/ghc/head.nix
+++ b/pkgs/development/compilers/ghc/head.nix
@@ -20,14 +20,17 @@
   # 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 ? !(stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms)
+, # If enabled, GHC will be built with the GPL-free but slightly slower native
+  # bignum backend instead of the faster but GPLed gmp backend.
+  enableNativeBignum ? !(stdenv.lib.any (stdenv.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
@@ -35,7 +38,7 @@
 , # Whether to build terminfo.
   enableTerminfo ? !stdenv.targetPlatform.isWindows
 
-, version ? "8.11.20200505"
+, version ? "8.11.20200824"
 , # What flavour to build. An empty string indicates no
   # specific flavour and falls back to ghc default values.
   ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
@@ -46,7 +49,7 @@
   disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
 }:
 
-assert !enableIntegerSimple -> gmp != null;
+assert !enableNativeBignum -> gmp != null;
 
 let
   inherit (stdenv) buildPlatform hostPlatform targetPlatform;
@@ -58,19 +61,23 @@ let
     (targetPlatform != hostPlatform)
     "${targetPlatform.config}-";
 
-  buildMK = ''
+  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"}
+    BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"}
   '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
-    Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
+    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
+  '' + stdenv.lib.optionalString dontStrip ''
+    STRIP_CMD = :
+  '' + stdenv.lib.optionalString (!enableProfiledLibs) ''
+    GhcLibWays = "v dyn"
   '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
     GhcLibHcOpts += -fPIC
     GhcRtsHcOpts += -fPIC
@@ -81,7 +88,7 @@ let
   # Splicer will pull out correct variations
   libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
     ++ [libffi]
-    ++ stdenv.lib.optional (!enableIntegerSimple) gmp
+    ++ stdenv.lib.optional (!enableNativeBignum) gmp
     ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv
     ++ stdenv.lib.optional enableDwarf elfutils;
 
@@ -103,8 +110,8 @@ stdenv.mkDerivation (rec {
 
   src = fetchgit {
     url = "https://gitlab.haskell.org/ghc/ghc.git/";
-    rev = "40c71c2cf38b4e134d81b7184a4d5e02949ae70c";
-    sha256 = "04h9rcyzm9w3an1z00hjs062dp7dl19b8pkyxjsypr7a2i9dmvkb";
+    rev = "3f50154591ada9064351ccec4adfe6df53ca2439";
+    sha256 = "1w2p5bc74aswspzvgvrhcb95hvj5ky38rgqqjvrri19z2qyiky6d";
   };
 
   enableParallelBuilding = true;
@@ -132,7 +139,7 @@ stdenv.mkDerivation (rec {
     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
+    echo -n "${buildMK dontStrip}" > mk/build.mk
     echo ${version} > VERSION
     echo ${src.rev} > GIT_COMMIT_ID
     ./boot
@@ -173,7 +180,7 @@ stdenv.mkDerivation (rec {
     "--with-system-libffi"
     "--with-ffi-includes=${targetPackages.libffi.dev}/include"
     "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
-  ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
+  ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [
     "--with-gmp-includes=${targetPackages.gmp.dev}/include"
     "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
   ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
@@ -251,8 +258,9 @@ stdenv.mkDerivation (rec {
     inherit (ghc.meta) license platforms;
   };
 
-} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
-  dontStrip = true;
+  dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
+
+} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
   dontPatchELF = true;
   noAuditTmpdir = true;
 })
diff --git a/pkgs/development/compilers/ghc/issue-18549.patch b/pkgs/development/compilers/ghc/issue-18549.patch
new file mode 100644
index 00000000000..eb30d9d9dd4
--- /dev/null
+++ b/pkgs/development/compilers/ghc/issue-18549.patch
@@ -0,0 +1,296 @@
+From fac083e7ac8a37b61a4082bbbca2848e52fd1bb2 Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben@smart-cactus.org>
+Date: Sun, 9 Aug 2020 09:15:16 -0400
+Subject: [PATCH] Revert "[linker/rtsSymbols] More linker symbols"
+
+This reverts commit aa2e5863699306920513b216f337de09e29b5bb8.
+---
+ rts/RtsSymbols.c | 224 ++++-------------------------------------------
+ 1 file changed, 17 insertions(+), 207 deletions(-)
+
+diff --git a/rts/RtsSymbols.c b/rts/RtsSymbols.c
+index d10a6900db..b2f90a892d 100644
+--- a/rts/RtsSymbols.c
++++ b/rts/RtsSymbols.c
+@@ -58,6 +58,7 @@
+       SymI_HasProto(signal_handlers)            \
+       SymI_HasProto(stg_sig_install)            \
+       SymI_HasProto(rtsTimerSignal)             \
++      SymI_HasProto(atexit)                     \
+       SymI_NeedsDataProto(nocldstop)
+ #endif
+ 
+@@ -976,213 +977,29 @@
+       RTS_USER_SIGNALS_SYMBOLS                                          \
+       RTS_INTCHAR_SYMBOLS
+ 
++
+ // 64-bit support functions in libgcc.a
+-// See https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html#Libgcc
+-#define RTS_LIBGCC_SYMBOLS_32                          \
+-      SymI_NeedsProto(__fixunsdfdi)                    \
+-      /* 4 The GCC low-level runtime library         */\
+-      /* 4.1.1 Arithmetic functions                  */\
+-      /* SymI_NeedsProto(__ashlsi3) */\
+-      SymI_NeedsProto(__ashldi3) \
+-      /* SymI_NeedsProto(__ashlti3) */\
+-      /* These functions return the result of shifting a left by b bits. */\
+-      /* SymI_NeedsProto(__ashrsi3) */\
+-      SymI_NeedsProto(__ashrdi3) \
+-      /* SymI_NeedsProto(__ashrti3) */\
+-      /* These functions return the result of arithmetically shifting a right by b bits. */\
+-      /* SymI_NeedsProto(__divsi3) */\
+-      SymI_NeedsProto(__divdi3) \
+-      /* SymI_NeedsProto(__divti3) */\
+-      /* These functions return the quotient of the signed division of a and b. */\
+-      /* SymI_NeedsProto(__lshrsi3) */ \
+-      SymI_NeedsProto(__lshrdi3) \
+-      /* SymI_NeedsProto(__lshrti3) */ \
+-      /* These functions return the result of logically shifting a right by b bits. */\
+-      /* SymI_NeedsProto(__modsi3) */ \
+-      SymI_NeedsProto(__moddi3) \
+-      /* SymI_NeedsProto(__modti3) */ \
+-      /* These functions return the remainder of the signed division of a and b. */\
+-      /* SymI_NeedsProto(__mulsi3) */ \
+-      SymI_NeedsProto(__muldi3) \
+-      /* SymI_NeedsProto(__multi3) */ \
+-      /* These functions return the product of a and b. */\
+-      SymI_NeedsProto(__negdi2) \
+-      /* SymI_NeedsProto(__negti2) */ \
+-      /* These functions return the negation of a. */\
+-      /* SymI_NeedsProto(__udivsi3) */ \
+-      SymI_NeedsProto(__udivdi3) \
+-      /* SymI_NeedsProto(__udivti3) */ \
+-      /* These functions return the quotient of the unsigned division of a and b. */\
+-      SymI_NeedsProto(__udivmoddi4) \
+-      /* SymI_NeedsProto(__udivmodti4) */ \
+-      /* These functions calculate both the quotient and remainder of the unsigned division of a and b. The return value is the quotient, and the remainder is placed in variable pointed to by c. */\
+-      /* SymI_NeedsProto(__umodsi3) */ \
+-      SymI_NeedsProto(__umoddi3) \
+-      /* SymI_NeedsProto(__umodti3) */ \
+-      /* These functions return the remainder of the unsigned division of a and b. */\
+-      /* 4.1.2 Comparison functions */\
+-      /* The following functions implement integral comparisons. These functions implement a low-level compare, upon which the higher level comparison operators (such as less than and greater than or equal to) can be constructed. The returned values lie in the range zero to two, to allow the high-level operators to be implemented by testing the returned result using either signed or unsigned comparison. */\
+-      SymI_NeedsProto(__cmpdi2) \
+-      /* SymI_NeedsProto(__cmpti2) */ \
+-      /* These functions perform a signed comparison of a and b. If a is less than b, they return 0; if a is greater than b, they return 2; and if a and b are equal they return 1. */\
+-      SymI_NeedsProto(__ucmpdi2) \
+-      /* SymI_NeedsProto(__ucmpti2) */ \
+-      /* These functions perform an unsigned comparison of a and b. If a is less than b, they return 0; if a is greater than b, they return 2; and if a and b are equal they return 1. */\
+-      /* 4.1.3 Trapping arithmetic functions */\
+-      /* The following functions implement trapping arithmetic. These functions call the libc function abort upon signed arithmetic overflow. */\
+-      SymI_NeedsProto(__absvsi2) \
+-      SymI_NeedsProto(__absvdi2) \
+-      /* These functions return the absolute value of a. */\
+-      /* SymI_NeedsProto(__addvsi3) */ \
+-      SymI_NeedsProto(__addvdi3) \
+-      /* These functions return the sum of a and b; that is a + b. */\
+-      /* SymI_NeedsProto(__mulvsi3) */ \
+-      SymI_NeedsProto(__mulvdi3) \
+-      /* The functions return the product of a and b; that is a * b. */\
+-      SymI_NeedsProto(__negvsi2) \
+-      SymI_NeedsProto(__negvdi2) \
+-      /* These functions return the negation of a; that is -a. */\
+-      /* SymI_NeedsProto(__subvsi3) */ \
+-      SymI_NeedsProto(__subvdi3) \
+-      /* These functions return the difference between b and a; that is a - b. */\
+-      /* 4.1.4 Bit operations */\
+-      SymI_NeedsProto(__clzsi2) \
+-      SymI_NeedsProto(__clzdi2) \
+-      /* SymI_NeedsProto(__clzti2) */ \
+-      /* These functions return the number of leading 0-bits in a, starting at the most significant bit position. If a is zero, the result is undefined. */\
+-      SymI_NeedsProto(__ctzsi2) \
+-      SymI_NeedsProto(__ctzdi2) \
+-      /* SymI_NeedsProto(__ctzti2) */ \
+-      /* These functions return the number of trailing 0-bits in a, starting at the least significant bit position. If a is zero, the result is undefined. */\
+-      SymI_NeedsProto(__ffsdi2) \
+-      /* SymI_NeedsProto(__ffsti2) */ \
+-      /* These functions return the index of the least significant 1-bit in a, or the value zero if a is zero. The least significant bit is index one. */\
+-      SymI_NeedsProto(__paritysi2) \
+-      SymI_NeedsProto(__paritydi2) \
+-      /* SymI_NeedsProto(__parityti2) */\
+-      /* These functions return the value zero if the number of bits set in a is even, and the value one otherwise. */\
+-      SymI_NeedsProto(__popcountsi2) \
+-      SymI_NeedsProto(__popcountdi2) \
+-      /* SymI_NeedsProto(__popcountti2) */ \
+-      /* These functions return the number of bits set in a. */\
+-      SymI_NeedsProto(__bswapsi2) \
+-      SymI_NeedsProto(__bswapdi2)
+-#define RTS_LIBGCC_SYMBOLS_aarch32                     \
+-      /* armv6l                                      */\
+-      /* TODO: should check for __ARM_EABI__         */\
+-      SymI_NeedsProto(__aeabi_d2f) \
+-      SymI_NeedsProto(__aeabi_d2iz) \
+-      SymI_NeedsProto(__aeabi_d2lz) \
+-      SymI_NeedsProto(__aeabi_d2uiz) \
+-      SymI_NeedsProto(__aeabi_d2ulz) \
+-      SymI_NeedsProto(__aeabi_dadd) \
+-      SymI_NeedsProto(__aeabi_dcmpeq) \
+-      SymI_NeedsProto(__aeabi_dcmpge) \
+-      SymI_NeedsProto(__aeabi_dcmpgt) \
+-      SymI_NeedsProto(__aeabi_dcmple) \
+-      SymI_NeedsProto(__aeabi_dcmplt) \
+-      SymI_NeedsProto(__aeabi_dcmpun) \
+-      SymI_NeedsProto(__aeabi_ddiv) \
+-      SymI_NeedsProto(__aeabi_dmul) \
+-      SymI_NeedsProto(__aeabi_dneg) \
+-      SymI_NeedsProto(__aeabi_dsub) \
+-      SymI_NeedsProto(__aeabi_f2d) \
+-      SymI_NeedsProto(__aeabi_f2iz) \
+-      SymI_NeedsProto(__aeabi_f2lz) \
+-      SymI_NeedsProto(__aeabi_f2uiz) \
+-      SymI_NeedsProto(__aeabi_f2ulz) \
+-      SymI_NeedsProto(__aeabi_fadd) \
+-      SymI_NeedsProto(__aeabi_fcmpeq) \
+-      SymI_NeedsProto(__aeabi_fcmpge) \
+-      SymI_NeedsProto(__aeabi_fcmpgt) \
+-      SymI_NeedsProto(__aeabi_fcmple) \
+-      SymI_NeedsProto(__aeabi_fcmplt) \
+-      SymI_NeedsProto(__aeabi_fcmpun) \
+-      SymI_NeedsProto(__aeabi_fdiv) \
+-      SymI_NeedsProto(__aeabi_fmul) \
+-      SymI_NeedsProto(__aeabi_fneg) \
+-      SymI_NeedsProto(__aeabi_fsub) \
+-      SymI_NeedsProto(__aeabi_i2d) \
+-      SymI_NeedsProto(__aeabi_i2f) \
+-      SymI_NeedsProto(__aeabi_idiv) \
+-      SymI_NeedsProto(__aeabi_idivmod) \
+-      SymI_NeedsProto(__aeabi_l2d) \
+-      SymI_NeedsProto(__aeabi_l2f) \
+-      SymI_NeedsProto(__aeabi_lasr) \
+-      SymI_NeedsProto(__aeabi_lcmp) \
+-      SymI_NeedsProto(__aeabi_ldivmod) \
+-      SymI_NeedsProto(__aeabi_llsl) \
+-      SymI_NeedsProto(__aeabi_llsr) \
+-      SymI_NeedsProto(__aeabi_lmul) \
+-      SymI_NeedsProto(__aeabi_ui2d) \
+-      SymI_NeedsProto(__aeabi_ui2f) \
+-      SymI_NeedsProto(__aeabi_uidiv) \
+-      SymI_NeedsProto(__aeabi_uidivmod) \
+-      SymI_NeedsProto(__aeabi_ul2d) \
+-      SymI_NeedsProto(__aeabi_ul2f) \
+-      SymI_NeedsProto(__aeabi_ulcmp) \
+-      SymI_NeedsProto(__aeabi_uldivmod)
+-#define RTS_LIBGCC_SYMBOLS_64                          \
++#if defined(__GNUC__) && SIZEOF_VOID_P <= 4 && !defined(_ABIN32)
++#define RTS_LIBGCC_SYMBOLS                             \
++      SymI_NeedsProto(__divdi3)                        \
++      SymI_NeedsProto(__udivdi3)                       \
++      SymI_NeedsProto(__moddi3)                        \
++      SymI_NeedsProto(__umoddi3)                       \
++      SymI_NeedsProto(__muldi3)                        \
++      SymI_NeedsProto(__ashldi3)                       \
++      SymI_NeedsProto(__ashrdi3)                       \
++      SymI_NeedsProto(__lshrdi3)                       \
++      SymI_NeedsProto(__fixunsdfdi)
++#elif defined(__GNUC__) && SIZEOF_VOID_P == 8
++#define RTS_LIBGCC_SYMBOLS                             \
+       SymI_NeedsProto(__udivti3)                       \
+       SymI_NeedsProto(__umodti3)
+-
+-/* for aarch64                                        */
+-#define RTS_LIBGCC_SYMBOLS_aarch64                     \
+-      SymI_NeedsProto(__netf2)                         \
+-      SymI_NeedsProto(__addtf3)                        \
+-      SymI_NeedsProto(__subtf3)                        \
+-      SymI_NeedsProto(__multf3)                        \
+-      SymI_NeedsProto(__extenddftf2)                   \
+-      SymI_NeedsProto(__fixtfsi)                       \
+-      SymI_NeedsProto(__fixunstfsi)                    \
+-      SymI_NeedsProto(__floatsitf)                     \
+-      SymI_NeedsProto(__floatunsitf)
+-
+-#if defined(__GNUC__) && SIZEOF_VOID_P <= 4 && defined(arm_HOST_OS)
+-#define RTS_LIBGCC_SYMBOLS RTS_LIBGCC_SYMBOLS_32 RTS_LIBGCC_SYMBOLS_aarch32
+-#elif defined(__GNUC__) && SIZEOF_VOID_P <= 4 && !defined(_ABIN32)
+-#define RTS_LIBGCC_SYMBOLS RTS_LIBGCC_SYMBOLS_32
+-#elif defined(__GNUC__) && SIZEOF_VOID_P == 8 && defined(aarch64_HOST_OS)
+-#define RTS_LIBGCC_SYMBOLS RTS_LIBGCC_SYMBOLS_64 RTS_LIBGCC_SYMBOLS_aarch64
+-#elif defined(__GNUC__) && SIZEOF_VOID_P == 8
+-#define RTS_LIBGCC_SYMBOLS RTS_LIBGCC_SYMBOLS_64
+ #else
+ #define RTS_LIBGCC_SYMBOLS
+ #endif
+ 
+-#if !defined(mingw32_HOST_OS) && !defined(DYNAMIC) && (defined(_FORTIFY_SOURCE) || defined(__SSP__))
+-#define RTS_SSP_SYMBOLS                                \
+-      SymI_NeedsProto(__stack_chk_guard)               \
+-      SymI_NeedsProto(__stack_chk_fail)
+-#else
+-#define RTS_SSP_SYMBOLS
+-#endif
+-#if !defined(DYNAMIC) && defined(linux_HOST_OS)
+-// we need these for static musl builds. However when
+-// linking shared objects (DLLs) this will fail, hence
+-// we do not include them when building with -DDYNAMIC
+-#define RTS_LINKER_SYMBOLS                             \
+-      SymI_NeedsProto(__fini_array_start)              \
+-      SymI_NeedsProto(__fini_array_end)
+-#else
+-#define RTS_LINKER_SYMBOLS
+-#endif
+-
+-#if defined(darwin_HOST_OS) && defined(powerpc_HOST_ARCH)
+-      // Symbols that don't have a leading underscore
+-      // on Mac OS X. They have to receive special treatment,
+-      // see machoInitSymbolsWithoutUnderscore()
+-#define RTS_MACHO_NOUNDERLINE_SYMBOLS                   \
+-      SymI_NeedsProto(saveFP)                           \
+-      SymI_NeedsProto(restFP)
+-#endif
+-
+ /* entirely bogus claims about types of these symbols */
+-/* to prevent a bit of define expansion, SymI_NeedsProto is a variadic
+- * macro.  And we'll concat vvv with the __VA_ARGS__. This prevents
+- * vvv from getting macro expanded.
+- */
+-#define SymI_NeedsProto(vvv,...) extern void vvv ## __VA_ARGS__ (void);
++#define SymI_NeedsProto(vvv)  extern void vvv(void);
+ #define SymI_NeedsDataProto(vvv)  extern StgWord vvv[];
+ #if defined(COMPILING_WINDOWS_DLL)
+ #define SymE_HasProto(vvv)    SymE_HasProto(vvv);
+@@ -1209,8 +1026,6 @@ RTS_DARWIN_ONLY_SYMBOLS
+ RTS_OPENBSD_ONLY_SYMBOLS
+ RTS_LIBGCC_SYMBOLS
+ RTS_LIBFFI_SYMBOLS
+-RTS_SSP_SYMBOLS
+-RTS_LINKER_SYMBOLS
+ #undef SymI_NeedsProto
+ #undef SymI_NeedsDataProto
+ #undef SymI_HasProto
+@@ -1230,7 +1045,7 @@ RTS_LINKER_SYMBOLS
+ #define SymE_HasDataProto(vvv) \
+                     SymE_HasProto(vvv)
+ 
+-#define SymI_NeedsProto(vvv,...) SymI_HasProto(vvv ## __VA_ARGS__)
++#define SymI_NeedsProto(vvv) SymI_HasProto(vvv)
+ #define SymI_NeedsDataProto(vvv) SymI_HasDataProto(vvv)
+ #define SymE_NeedsProto(vvv) SymE_HasProto(vvv)
+ #define SymE_NeedsDataProto(vvv) SymE_HasDataProto(vvv)
+@@ -1251,8 +1066,6 @@ RTS_LINKER_SYMBOLS
+ #define SymI_HasProto_deprecated(vvv)   \
+    { #vvv, (void*)0xBAADF00D, true },
+ 
+-void *RTS_DYNAMIC = NULL;
+-
+ RtsSymbolVal rtsSyms[] = {
+       RTS_SYMBOLS
+       RTS_RET_SYMBOLS
+@@ -1264,14 +1077,11 @@ RtsSymbolVal rtsSyms[] = {
+       RTS_LIBGCC_SYMBOLS
+       RTS_LIBFFI_SYMBOLS
+       SymI_HasDataProto(nonmoving_write_barrier_enabled)
+-      RTS_SSP_SYMBOLS
+-      RTS_LINKER_SYMBOLS
+ #if defined(darwin_HOST_OS) && defined(i386_HOST_ARCH)
+       // dyld stub code contains references to this,
+       // but it should never be called because we treat
+       // lazy pointers as nonlazy.
+       { "dyld_stub_binding_helper", (void*)0xDEADBEEF, false },
+ #endif
+-      { "_DYNAMIC", (void*)(&RTS_DYNAMIC), false },
+       { 0, 0, false } /* sentinel */
+ };
+-- 
+2.25.4
+
diff --git a/pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix b/pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix
index c54c782fafa..bbf8a579919 100644
--- a/pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix
+++ b/pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix
@@ -1,11 +1,14 @@
 { haskellLib }:
 
-let inherit (haskellLib) doJailbreak dontHaddock;
+let inherit (haskellLib) doJailbreak dontHaddock dontCheck;
 in self: super: {
+  ghcjs = super.ghcjs.override {
+    shelly = super.shelly_1_8_1;
+  };
   ghc-api-ghcjs = super.ghc-api-ghcjs.override
   {
     happy = self.happy_1_19_5;
   };
-  haddock-library-ghcjs = doJailbreak super.haddock-library-ghcjs;
+  haddock-library-ghcjs = doJailbreak (dontCheck super.haddock-library-ghcjs);
   haddock-api-ghcjs = doJailbreak (dontHaddock super.haddock-api-ghcjs);
 }
diff --git a/pkgs/development/compilers/ghcjs-ng/default.nix b/pkgs/development/compilers/ghcjs-ng/default.nix
index 6d56c410aab..7b6fbc460a9 100644
--- a/pkgs/development/compilers/ghcjs-ng/default.nix
+++ b/pkgs/development/compilers/ghcjs-ng/default.nix
@@ -102,7 +102,6 @@ in stdenv.mkDerivation {
 
     inherit passthru;
 
-    meta.broken = true; # build does not succeed
-    meta.platforms = lib.platforms.none;  # passthru.bootPkgs.ghc.meta.platforms;
+    meta.platforms = passthru.bootPkgs.ghc.meta.platforms;
     meta.maintainers = [lib.maintainers.elvishjerricco];
   }
diff --git a/pkgs/development/compilers/gleam/default.nix b/pkgs/development/compilers/gleam/default.nix
index 1fa8720a400..a40065fe579 100644
--- a/pkgs/development/compilers/gleam/default.nix
+++ b/pkgs/development/compilers/gleam/default.nix
@@ -1,19 +1,22 @@
-{ stdenv, rustPlatform, fetchFromGitHub, Security }:
+{ stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "gleam";
-  version = "0.8.0";
+  version = "0.11.2";
 
   src = fetchFromGitHub {
     owner = "gleam-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "05n8a7b63i9946fvbxphfh8n6ib20qnbv44ghlzcjwca9qvlx7i7";
+    sha256 = "1g8yfp1xpkv1lqz8azam40cvrs5cggxlyrb72h8k88br75qmi6hj";
   };
 
-  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
+  nativeBuildInputs = [ pkg-config ];
 
-  cargoSha256 = "1ga5dinkmibkg53bfr6vc0i4bbgyn2y3d5qjf5bd965c1v7ba1jl";
+  buildInputs = [ openssl ] ++
+    stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+  cargoSha256 = "1gfr6c4i5kx8x3q23s4b4n25z2k6xkxpk12acr4ry97pyj2lr5wq";
 
   meta = with stdenv.lib; {
     description = "A statically typed language for the Erlang VM";
diff --git a/pkgs/development/compilers/go-jsonnet/default.nix b/pkgs/development/compilers/go-jsonnet/default.nix
index f528b9f1364..04af8e91251 100644
--- a/pkgs/development/compilers/go-jsonnet/default.nix
+++ b/pkgs/development/compilers/go-jsonnet/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0nsm4gsbbn8myz4yfi6m7qc3iizhdambsr18iks0clkdn3mi2jn1";
 
+  doCheck = false;
+
   subPackages = [ "cmd/jsonnet" "cmd/jsonnetfmt" ];
 
   meta = with lib; {
diff --git a/pkgs/development/compilers/go/1.13.nix b/pkgs/development/compilers/go/1.13.nix
deleted file mode 100644
index 48e4d9bdc6c..00000000000
--- a/pkgs/development/compilers/go/1.13.nix
+++ /dev/null
@@ -1,242 +0,0 @@
-{ stdenv, fetchurl, tzdata, iana-etc, runCommand
-, perl, which, pkgconfig, patch, procps, pcre, cacert, Security, Foundation
-, mailcap, runtimeShell
-, buildPackages, pkgsTargetTarget
-}:
-
-let
-
-  inherit (stdenv.lib) optionals optionalString;
-
-  goBootstrap = runCommand "go-bootstrap" {} ''
-    mkdir $out
-    cp -rf ${buildPackages.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";
-  }.${platform.parsed.cpu.name} or (throw "Unsupported system");
-
-in
-
-stdenv.mkDerivation rec {
-  pname = "go";
-  version = "1.13.12";
-
-  src = fetchurl {
-    url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "0d5s5rqyzp6ykj4x1dz8infcsmj3gy8djnf63ji971ypwi6jrfhp";
-  };
-
-  # perl is used for testing go vet
-  nativeBuildInputs = [ perl which pkgconfig patch procps ];
-  buildInputs = [ cacert pcre ]
-    ++ optionals stdenv.isLinux [ stdenv.cc.libc.out ]
-    ++ optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
-
-  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
-    # 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.13.patch
-    ./remove-test-pie-1.13.patch
-    ./creds-test.patch
-    ./go-1.9-skip-flaky-19608.patch
-    ./go-1.9-skip-flaky-20072.patch
-    ./skip-external-network-tests.patch
-    ./skip-nohup-tests.patch
-  ] ++ [
-    # breaks under load: https://github.com/golang/go/issues/25628
-    (if stdenv.isAarch32
-    then ./skip-test-extra-files-on-aarch32.patch
-    else ./skip-test-extra-files-on-386.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
-      "${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}cc"
-    else
-      null;
-  CXX_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
-      "${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}c++"
-    else
-      null;
-
-  GOARM = toString (stdenv.lib.intersectLists [(stdenv.hostPlatform.parsed.cpu.version or "")] ["5" "6" "7"]);
-  GO386 = 387; # 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
-
-    # Independent from host/target, CC should produce code for the building system.
-    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 stdenv.lib; {
-    branch = "1.13";
-    homepage = "http://golang.org/";
-    description = "The Go Programming language";
-    license = licenses.bsd3;
-    maintainers = teams.golang.members;
-    platforms = platforms.linux ++ platforms.darwin;
-  };
-}
diff --git a/pkgs/development/compilers/go/1.14.nix b/pkgs/development/compilers/go/1.14.nix
index 95a602025d9..4cd28187230 100644
--- a/pkgs/development/compilers/go/1.14.nix
+++ b/pkgs/development/compilers/go/1.14.nix
@@ -31,11 +31,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.14.4";
+  version = "1.14.8";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "1105qk2l4kfy1ki9n9gh8j4gfqrfgfwapa1fp38hih9aphxsy4bh";
+    sha256 = "0sp3ss9mqcysc3h7ynwxhdjq4g0id9y6liakwy2cy27mapxi79nr";
   };
 
   # perl is used for testing go vet
@@ -193,8 +193,11 @@ stdenv.mkDerivation rec {
 
     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
   '';
 
diff --git a/pkgs/development/compilers/go/1.15.nix b/pkgs/development/compilers/go/1.15.nix
index 69becebe770..adc3185babb 100644
--- a/pkgs/development/compilers/go/1.15.nix
+++ b/pkgs/development/compilers/go/1.15.nix
@@ -31,11 +31,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.15beta1";
+  version = "1.15.1";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "1h1sg6j9jac5bw2pjrd13bf4nr18prs89147izdhzbhp896sikbq";
+    sha256 = "0c2d2ngckcfsgrb7a4p6ag83mk5yd15npiq7q1f1p211li93fx6k";
   };
 
   # perl is used for testing go vet
@@ -196,8 +196,11 @@ stdenv.mkDerivation rec {
 
     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
   '';
 
diff --git a/pkgs/development/compilers/go/remove-test-pie-1.13.patch b/pkgs/development/compilers/go/remove-test-pie-1.13.patch
deleted file mode 100644
index 05f18b813f9..00000000000
--- a/pkgs/development/compilers/go/remove-test-pie-1.13.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go
-index f63c94697c..f02eff7064 100644
---- a/src/cmd/dist/test.go
-+++ b/src/cmd/dist/test.go
-@@ -574,29 +574,6 @@ func (t *tester) registerTests() {
- 		})
- 	}
- 
--	// Test internal linking of PIE binaries where it is supported.
--	if goos == "linux" && (goarch == "amd64" || goarch == "arm64") {
--		t.tests = append(t.tests, distTest{
--			name:    "pie_internal",
--			heading: "internal linking of -buildmode=pie",
--			fn: func(dt *distTest) error {
--				t.addCmd(dt, "src", t.goTest(), "reflect", "-buildmode=pie", "-ldflags=-linkmode=internal", t.timeout(60))
--				return nil
--			},
--		})
--		// Also test a cgo package.
--		if t.cgoEnabled {
--			t.tests = append(t.tests, distTest{
--				name:    "pie_internal_cgo",
--				heading: "internal linking of -buildmode=pie",
--				fn: func(dt *distTest) error {
--					t.addCmd(dt, "src", t.goTest(), "os/user", "-buildmode=pie", "-ldflags=-linkmode=internal", t.timeout(60))
--					return nil
--				},
--			})
--		}
--	}
--
- 	// sync tests
- 	if goos != "js" { // js doesn't support -cpu=10
- 		t.tests = append(t.tests, distTest{
diff --git a/pkgs/development/compilers/go/skip-test-extra-files-on-386.patch b/pkgs/development/compilers/go/skip-test-extra-files-on-386.patch
deleted file mode 100644
index afe5aea3d91..00000000000
--- a/pkgs/development/compilers/go/skip-test-extra-files-on-386.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/src/os/exec/exec_test.go b/src/os/exec/exec_test.go
-index 558345ff63..22129bf022 100644
---- a/src/os/exec/exec_test.go
-+++ b/src/os/exec/exec_test.go
-@@ -593,6 +593,10 @@ func TestExtraFiles(t *testing.T) {
- 		t.Skipf("skipping test on %q", runtime.GOOS)
- 	}
- 
-+	if runtime.GOOS == "linux" && runtime.GOARCH  == "386" {
-+		t.Skipf("skipping test on %q %q", runtime.GOARCH, runtime.GOOS)
-+	}
-+
- 	// Ensure that file descriptors have not already been leaked into
- 	// our environment.
- 	if !testedAlreadyLeaked {
diff --git a/pkgs/development/compilers/go/skip-test-extra-files-on-aarch32.patch b/pkgs/development/compilers/go/skip-test-extra-files-on-aarch32.patch
deleted file mode 100644
index f3566b3ddaa..00000000000
--- a/pkgs/development/compilers/go/skip-test-extra-files-on-aarch32.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/src/os/exec/exec_test.go b/src/os/exec/exec_test.go
-index 558345ff63..22129bf022 100644
---- a/src/os/exec/exec_test.go
-+++ b/src/os/exec/exec_test.go
-@@ -593,6 +593,10 @@ func TestExtraFiles(t *testing.T) {
- 		t.Skipf("skipping test on %q", runtime.GOOS)
- 	}
- 
-+	if runtime.GOOS == "linux" && runtime.GOARCH  == "arm" {
-+		t.Skipf("skipping test on %q %q", runtime.GOARCH, runtime.GOOS)
-+	}
-+
- 	// Ensure that file descriptors have not already been leaked into
- 	// our environment.
- 	if !testedAlreadyLeaked {
diff --git a/pkgs/development/compilers/go/ssl-cert-file-1.15.patch b/pkgs/development/compilers/go/ssl-cert-file-1.15.patch
index cca48eb5705..1884c681ca3 100644
--- a/pkgs/development/compilers/go/ssl-cert-file-1.15.patch
+++ b/pkgs/development/compilers/go/ssl-cert-file-1.15.patch
@@ -1,16 +1,16 @@
 diff --git a/src/crypto/x509/root_darwin_amd64.go b/src/crypto/x509/root_darwin_amd64.go
-index 8ad5a9607d..1d6091cf83 100644
+index ce88de025e..258ecc45d1 100644
 --- a/src/crypto/x509/root_darwin_amd64.go
 +++ b/src/crypto/x509/root_darwin_amd64.go
-@@ -8,6 +8,7 @@ import (
+@@ -10,6 +10,7 @@ import (
  	"bytes"
- 	"crypto/x509/internal/macOS"
+ 	macOS "crypto/x509/internal/macos"
  	"fmt"
 +	"io/ioutil"
  	"os"
  	"strings"
  )
-@@ -23,6 +24,14 @@ func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate
+@@ -25,6 +26,14 @@ func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate
  var loadSystemRootsWithCgo func() (*CertPool, error)
  
  func loadSystemRoots() (*CertPool, error) {
@@ -25,10 +25,10 @@ index 8ad5a9607d..1d6091cf83 100644
  	var trustedRoots []*Certificate
  	untrustedRoots := make(map[string]bool)
  
-diff --git a/src/crypto/x509/root_darwin_arm64.go b/src/crypto/x509/root_darwin_arm64.go
-index 2fb079ba66..6a072f3e78 100644
---- a/src/crypto/x509/root_darwin_arm64.go
-+++ b/src/crypto/x509/root_darwin_arm64.go
+diff --git a/src/crypto/x509/root_darwin_ios.go b/src/crypto/x509/root_darwin_ios.go
+index 5ecc4911b3..14b4205c00 100644
+--- a/src/crypto/x509/root_darwin_ios.go
++++ b/src/crypto/x509/root_darwin_ios.go
 @@ -6,6 +6,11 @@
  
  package x509
diff --git a/pkgs/development/compilers/idris2/default.nix b/pkgs/development/compilers/idris2/default.nix
index d2a071b61dd..5bde4bbb720 100644
--- a/pkgs/development/compilers/idris2/default.nix
+++ b/pkgs/development/compilers/idris2/default.nix
@@ -4,14 +4,14 @@
 
 # Uses scheme to bootstrap the build of idris2
 stdenv.mkDerivation rec {
-  name = "idris2";
-  version = "0.2.0";
+  pname = "idris2";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "idris-lang";
     repo = "Idris2";
     rev = "v${version}";
-    sha256 = "153z6zgb90kglw8rspk8ph5gh5nkplhi27mxai6yqbbjs2glx5d4";
+    sha256 = "044slgl2pwvj939kz3z92n6l182plc5fzng1n4z4k6bg11msqq14";
   };
 
   strictDeps = true;
@@ -30,9 +30,42 @@ stdenv.mkDerivation rec {
 
   checkTarget = "bootstrap-test";
 
-  # idris2 needs to find scheme at runtime to compile
-  postInstall = ''
-    wrapProgram "$out/bin/idris2" --set CHEZ "${chez}/bin/scheme"
+  # TODO: Move this into its own derivation, such that this can be changed
+  #       without having to recompile idris2 every time.
+  postInstall = let
+    includedLibs = [ "base" "contrib" "network" "prelude" ];
+    name = "${pname}-${version}";
+    packagePaths = builtins.map (l: "$out/${name}/" + l) includedLibs;
+    additionalIdris2Paths = builtins.concatStringsSep ":" packagePaths;
+  in ''
+    # Remove existing idris2 wrapper that sets incorrect LD_LIBRARY_PATH
+    rm $out/bin/idris2
+    # Move actual idris2 binary
+    mv $out/bin/idris2_app/idris2.so $out/bin/idris2
+
+    # After moving the binary, there is nothing left in idris2_app that isn't
+    # either contained in lib/ or is useless to us.
+    rm $out/bin/idris2_app/*
+    rmdir $out/bin/idris2_app
+
+    # idris2 needs to find scheme at runtime to compile
+    # idris2 installs packages with --install into the path given by PREFIX.
+    # Since PREFIX is in nix-store, it is immutable so --install does not work.
+    # If the user redefines PREFIX to be able to install packages, idris2 will
+    # not find the libraries and packages since all paths are relative to
+    # PREFIX by default.
+    # We explicitly make all paths to point to nix-store, such that they are
+    # independent of what IDRIS2_PREFIX is. This allows the user to redefine
+    # IDRIS2_PREFIX and use --install as expected.
+    # TODO: Make support libraries their own derivation such that
+    #       overriding LD_LIBRARY_PATH is unnecessary
+    # TODO: Maybe set IDRIS2_PREFIX to the users home directory
+    wrapProgram "$out/bin/idris2" \
+      --set-default CHEZ "${chez}/bin/scheme" \
+      --suffix IDRIS2_LIBS ':' "$out/${name}/lib" \
+      --suffix IDRIS2_DATA ':' "$out/${name}/support" \
+      --suffix IDRIS2_PATH ':' "${additionalIdris2Paths}" \
+      --suffix LD_LIBRARY_PATH ':' "$out/${name}/lib"
   '';
 
   meta = {
diff --git a/pkgs/development/compilers/inform6/default.nix b/pkgs/development/compilers/inform6/default.nix
new file mode 100644
index 00000000000..1d339a2b14b
--- /dev/null
+++ b/pkgs/development/compilers/inform6/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "inform6";
+  version = "6.34-6.12.2";
+
+  src = fetchurl  {
+    url = "https://ifarchive.org/if-archive/infocom/compilers/inform6/source/inform-${version}.tar.gz";
+    sha256 = "c149f143f2c29a4cb071e578afef8097647cc9e823f7fcfab518ac321d9d259f";
+  };
+
+  buildInputs = [ perl ];
+
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  meta = with stdenv.lib; {
+    description = "Interactive fiction compiler and libraries";
+    longDescription = ''
+      Inform 6 is a C-like programming language for writing interactive fiction
+      (text adventure) games.
+    '';
+    homepage = "https://gitlab.com/DavidGriffith/inform6unix";
+    changelog = "https://gitlab.com/DavidGriffith/inform6unix/-/raw/${version}/NEWS";
+    license = licenses.artistic2;
+    maintainers = with stdenv.lib.maintainers; [ ddelabru ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/compilers/intel-graphics-compiler/default.nix b/pkgs/development/compilers/intel-graphics-compiler/default.nix
index 6374846f440..8ca85817f9e 100644
--- a/pkgs/development/compilers/intel-graphics-compiler/default.nix
+++ b/pkgs/development/compilers/intel-graphics-compiler/default.nix
@@ -24,13 +24,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "intel-graphics-compiler";
-  version = "1.0.4062";
+  version = "1.0.4241";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "intel-graphics-compiler";
     rev = "igc-${version}";
-    sha256 = "1fr9mb7s5f0kiwxf04lqbyqbxfsvki0kwnpcy41m3p3la22mqz47";
+    sha256 = "1jp3c67ppl1x4pazr5nzy52615cpx0kyckaridhc0fsmrkgilyxq";
   };
 
   nativeBuildInputs = [ clang cmake bison flex llvm python ];
diff --git a/pkgs/development/compilers/jetbrains-jdk/default.nix b/pkgs/development/compilers/jetbrains-jdk/default.nix
index 1502b243d88..fd3270fa0d0 100644
--- a/pkgs/development/compilers/jetbrains-jdk/default.nix
+++ b/pkgs/development/compilers/jetbrains-jdk/default.nix
@@ -2,12 +2,12 @@
 
 openjdk11.overrideAttrs (oldAttrs: rec {
   pname = "jetbrains-jdk";
-  version = "11.0.6-b774";
+  version = "11.0.7-b64";
   src = fetchFromGitHub {
     owner = "JetBrains";
     repo = "JetBrainsRuntime";
     rev = "jb${stdenv.lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "0lx3h74jwa14kr8ybwxbzc4jsjj6xnymvckdsrhqhvrciya7bxzw";
+    sha256 = "1gxqi6dkyriv9j29ppan638w1ns2g9m4q1sq7arf9kwqr05zim90";
   };
   patches = [];
   meta = with stdenv.lib; {
diff --git a/pkgs/development/compilers/kotlin/default.nix b/pkgs/development/compilers/kotlin/default.nix
index 4e2810fa893..88c07fb07ca 100644
--- a/pkgs/development/compilers/kotlin/default.nix
+++ b/pkgs/development/compilers/kotlin/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, makeWrapper, jre, unzip }:
 
 let
-  version = "1.3.72";
+  version = "1.4.0";
 in stdenv.mkDerivation {
   inherit version;
   pname = "kotlin";
 
   src = fetchurl {
     url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
-    sha256 = "0v6c4vjiflwbjjc1lmiyzrilxwbqcz5ll6ls40zhw70zk23xpl6c";
+    sha256 = "0qgiabpkisqjm9iryidrynqy452vzmpgaw54rd9blr9w7g8r20sr";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/pkgs/development/compilers/llvm/10/bintools.nix b/pkgs/development/compilers/llvm/10/bintools.nix
index 72a2a733193..53f7941e336 100644
--- a/pkgs/development/compilers/llvm/10/bintools.nix
+++ b/pkgs/development/compilers/llvm/10/bintools.nix
@@ -11,9 +11,19 @@ in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } ''
      ln -s $prog $out/bin/${prefix}$(basename $prog)
    done
    for prog in ${llvm}/bin/*; do
-     ln -s $prog $out/bin/${prefix}$(echo $(basename $prog) | sed -e "s|llvm-||")
      ln -sf $prog $out/bin/${prefix}$(basename $prog)
    done
-   rm -f $out/bin/${prefix}cat
+
+   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/pkgs/development/compilers/llvm/10/clang/clang-extension-handling.patch b/pkgs/development/compilers/llvm/10/clang/clang-extension-handling.patch
deleted file mode 100644
index a74d10989ff..00000000000
--- a/pkgs/development/compilers/llvm/10/clang/clang-extension-handling.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Compressed diff from
-```
-git show d21664cce1db8debe2528f36b1fbd2b8af9c9401 87dac7da68ea1e0adac78c59ef1891dcf9632b67 3a0f6e699bb6d96dc62dce6faef20ac26cf103fd
-```
-with the purpose of avoiding linker errors arising in the polly-flavoured clang.
-
-diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt
-index 781c3eb7f2f..dc1413f4b59 100644
---- clang/CMakeLists.txt
-+++ clang/CMakeLists.txt
-@@ -864,6 +864,7 @@ add_subdirectory(utils/hmaptool)
- 
- if(CLANG_BUILT_STANDALONE)
-   llvm_distribution_add_targets()
-+  process_llvm_pass_plugins()
- endif()
- 
- configure_file(
diff --git a/pkgs/development/compilers/llvm/10/clang/default.nix b/pkgs/development/compilers/llvm/10/clang/default.nix
index 10026ca4eb1..a3d6e7e402a 100644
--- a/pkgs/development/compilers/llvm/10/clang/default.nix
+++ b/pkgs/development/compilers/llvm/10/clang/default.nix
@@ -8,7 +8,7 @@ let
     pname = "clang";
     inherit version;
 
-    src = fetch "clang" "08fbxa2a0kr3ni35ckppj0kyvlcyaywrhpqwcdrdy0z900mhcnw8";
+    src = fetch "clang" "091bvcny2lh32zy8f3m9viayyhb2zannrndni7325rl85cwgr6pr";
 
     unpackPhase = ''
       unpackFile $src
@@ -27,6 +27,7 @@ let
     cmakeFlags = [
       "-DCMAKE_CXX_FLAGS=-std=c++14"
       "-DCLANGD_BUILD_XPC=OFF"
+      "-DLLVM_ENABLE_RTTI=ON"
     ] ++ stdenv.lib.optionals enableManpages [
       "-DCLANG_INCLUDE_DOCS=ON"
       "-DLLVM_ENABLE_SPHINX=ON"
@@ -36,9 +37,6 @@ let
     ];
 
     patches = [
-      # 10.0.0 only, this should be present in 10.0.1
-      ./clang-extension-handling.patch
-
       ./purity.patch
       # https://reviews.llvm.org/D51899
       ./compiler-rt-baremetal.patch
@@ -89,8 +87,6 @@ let
     passthru = {
       isClang = true;
       inherit llvm;
-    } // stdenv.lib.optionalAttrs (stdenv.targetPlatform.isLinux || (stdenv.cc.isGNU && stdenv.cc.cc ? gcc)) {
-      gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
     };
 
     meta = {
diff --git a/pkgs/development/compilers/llvm/10/compiler-rt.nix b/pkgs/development/compilers/llvm/10/compiler-rt.nix
index 00c4f0677eb..47bbe808ac2 100644
--- a/pkgs/development/compilers/llvm/10/compiler-rt.nix
+++ b/pkgs/development/compilers/llvm/10/compiler-rt.nix
@@ -11,7 +11,7 @@ in
 stdenv.mkDerivation rec {
   pname = "compiler-rt";
   inherit version;
-  src = fetch pname "0x9c531k6ww21s2mkdwqx1vbdjmx6d4wmfb8gdbj0wqa796sczba";
+  src = fetch pname "1yjqjri753w0fzmxcyz687nvd97sbc9rsqrxzpq720na47hwh3fr";
 
   nativeBuildInputs = [ cmake python3 llvm ];
   buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
diff --git a/pkgs/development/compilers/llvm/10/default.nix b/pkgs/development/compilers/llvm/10/default.nix
index 4181ab29bd7..37ab89a5a31 100644
--- a/pkgs/development/compilers/llvm/10/default.nix
+++ b/pkgs/development/compilers/llvm/10/default.nix
@@ -1,12 +1,13 @@
-{ lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
+{ lowPrio, newScope, pkgs, 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
 }:
 
 let
-  release_version = "10.0.0";
-  version = release_version; # differentiating these (variables) is important for rc's
+  release_version = "10.0.1";
+  version = release_version; # differentiating these (variables) is important for RCs
   targetConfig = stdenv.targetPlatform.config;
 
   fetch = name: sha256: fetchurl {
@@ -14,7 +15,7 @@ let
     inherit sha256;
   };
 
-  clang-tools-extra_src = fetch "clang-tools-extra" "074ija5s2jsdn0k035r2dzmryjmqxdnyg4xwvaqych2bazv8rpxc";
+  clang-tools-extra_src = fetch "clang-tools-extra" "06n1yp638rh24xdxv9v2df0qajxbjz4w59b7dd4ky36drwmpi4yh";
 
   tools = stdenv.lib.makeExtensible (tools: let
     callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
@@ -24,8 +25,8 @@ let
       ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
       ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
-    '' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && tools.clang-unwrapped ? gcc && !(stdenv.targetPlatform.useLLVM or false)) ''
-      echo "--gcc-toolchain=${tools.clang-unwrapped.gcc}" >> $out/nix-support/cc-cflags
+    '' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && !(stdenv.targetPlatform.useLLVM or false)) ''
+      echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
     '';
   in {
 
@@ -36,20 +37,22 @@ let
       inherit clang-tools-extra_src;
     };
 
-    llvm-manpages = lowPrio (tools.llvm.override {
-      enableManpages = true;
-      python3 = pkgs.python3;  # don't use python-boot
-    });
+    # 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
     });
 
-    lldb-manpages = lowPrio (tools.lldb.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;
 
@@ -57,23 +60,18 @@ let
 
     libstdcxxClang = wrapCCWith rec {
       cc = tools.clang-unwrapped;
+      # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper.
+      libcxx = null;
       extraPackages = [
-        libstdcxxHook
         targetLlvmLibraries.compiler-rt
       ];
-      extraBuildCommands = ''
-          echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags
-          echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-cflags
-          echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags
-          echo "-L${gcc.cc.lib}/${targetConfig}/lib" >> $out/nix-support/cc-ldflags
-      '' + mkExtraBuildCommands cc;
+      extraBuildCommands = mkExtraBuildCommands cc;
     };
 
     libcxxClang = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
       extraPackages = [
-        targetLlvmLibraries.libcxx
         targetLlvmLibraries.libcxxabi
         targetLlvmLibraries.compiler-rt
       ];
@@ -100,14 +98,12 @@ let
         inherit (tools) bintools;
       };
       extraPackages = [
-        targetLlvmLibraries.libcxx
         targetLlvmLibraries.libcxxabi
         targetLlvmLibraries.compiler-rt
       ] ++ stdenv.lib.optionals (!stdenv.targetPlatform.isWasm) [
         targetLlvmLibraries.libunwind
       ];
       extraBuildCommands = ''
-        echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
         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
       '' + stdenv.lib.optionalString (!stdenv.targetPlatform.isWasm) ''
@@ -127,7 +123,6 @@ let
         targetLlvmLibraries.compiler-rt
       ];
       extraBuildCommands = ''
-        echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
         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
@@ -145,7 +140,6 @@ let
         targetLlvmLibraries.compiler-rt
       ];
       extraBuildCommands = ''
-        echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
         echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
@@ -161,7 +155,6 @@ let
       extraPackages = [ ];
       extraBuildCommands = ''
         echo "-nostartfiles" >> $out/nix-support/cc-cflags
-        echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
       '';
     };
 
diff --git a/pkgs/development/compilers/llvm/10/libc++/default.nix b/pkgs/development/compilers/llvm/10/libc++/default.nix
index ed76ce77a8b..651f1887553 100644
--- a/pkgs/development/compilers/llvm/10/libc++/default.nix
+++ b/pkgs/development/compilers/llvm/10/libc++/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation {
   pname = "libc++";
   inherit version;
 
-  src = fetch "libcxx" "1isnj78diknh0nvd73mlq8p8g209f9bab2mbysq826bg2wzql3r7";
+  src = fetch "libcxx" "0v78bfr6h2zifvdqnj2wlfk4pvxzrqn3hg1v6lqk3y12bx9p9xny";
 
   postUnpack = ''
     unpackFile ${libcxxabi.src}
@@ -39,12 +39,9 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
-  linkCxxAbi = stdenv.isLinux;
-
-  setupHooks = [
-    ../../../../../build-support/setup-hooks/role.bash
-    ./setup-hook.sh
-  ];
+  passthru = {
+    isLLVM = true;
+  };
 
   meta = {
     homepage = "https://libcxx.llvm.org/";
diff --git a/pkgs/development/compilers/llvm/10/libc++/setup-hook.sh b/pkgs/development/compilers/llvm/10/libc++/setup-hook.sh
deleted file mode 100644
index 3a274aecc23..00000000000
--- a/pkgs/development/compilers/llvm/10/libc++/setup-hook.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-# See pkgs/build-support/setup-hooks/role.bash
-getHostRole
-
-linkCxxAbi="@linkCxxAbi@"
-export NIX_CXXSTDLIB_COMPILE${role_post}+=" -isystem @out@/include/c++/v1"
-export NIX_CXXSTDLIB_LINK${role_post}=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
diff --git a/pkgs/development/compilers/llvm/10/libc++abi.nix b/pkgs/development/compilers/llvm/10/libc++abi.nix
index ab45f27d24f..00371b862ad 100644
--- a/pkgs/development/compilers/llvm/10/libc++abi.nix
+++ b/pkgs/development/compilers/llvm/10/libc++abi.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation {
   pname = "libc++abi";
   inherit version;
 
-  src = fetch "libcxxabi" "1q8lrbh68a9v4lr88b8xsjpmwx5z96sa5wnkb92xx7ccm1ssq6z7";
+  src = fetch "libcxxabi" "0yqs722y76cwvmfsq0lb917r9m3fci7bf5z3yzl71yz9n88ghzm9";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = stdenv.lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
diff --git a/pkgs/development/compilers/llvm/10/libunwind.nix b/pkgs/development/compilers/llvm/10/libunwind.nix
index 4e55b28c243..b13bacb3638 100644
--- a/pkgs/development/compilers/llvm/10/libunwind.nix
+++ b/pkgs/development/compilers/llvm/10/libunwind.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   pname = "libunwind";
   inherit version;
 
-  src = fetch pname "09n66dl9cc17d81qflj5h1l4garmhvzfi2lhcb7rx00l8z65xp09";
+  src = fetch pname "09syx66idnm2pr46x2vmk0jn3iwdv0lkd04xy4zjbwmz3vn066bl";
 
   nativeBuildInputs = [ cmake ];
 
diff --git a/pkgs/development/compilers/llvm/10/lld.nix b/pkgs/development/compilers/llvm/10/lld.nix
index 6a0032de2ac..5d513462820 100644
--- a/pkgs/development/compilers/llvm/10/lld.nix
+++ b/pkgs/development/compilers/llvm/10/lld.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   pname = "lld";
   inherit version;
 
-  src = fetch pname "026pwcbczcg0j5c9h7hxxrn3ki81ia9m9sfn0sy0bvzffv2xg85r";
+  src = fetch pname "0ynzi35r4fckvp6842alpd43qr810j3728yfslc66fk2mbh4j52r";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ llvm libxml2 ];
diff --git a/pkgs/development/compilers/llvm/10/lldb.nix b/pkgs/development/compilers/llvm/10/lldb.nix
index 90716f67f83..47215caa53e 100644
--- a/pkgs/development/compilers/llvm/10/lldb.nix
+++ b/pkgs/development/compilers/llvm/10/lldb.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation (rec {
   pname = "lldb";
   inherit version;
 
-  src = fetch pname "0ddikvc0kbqlqvsypsm9nhfwmyw4prp4rv49f0bgacyh5ssgq7yx";
+  src = fetch pname "051p5b04y6z3g730rmc2n2v71lipbw7k69riww3a6sl74myfiaq7";
 
   patches = [ ./lldb-procfs.patch ];
 
diff --git a/pkgs/development/compilers/llvm/10/llvm-extension-handling.patch b/pkgs/development/compilers/llvm/10/llvm-extension-handling.patch
deleted file mode 100644
index cf4b1eaacf7..00000000000
--- a/pkgs/development/compilers/llvm/10/llvm-extension-handling.patch
+++ /dev/null
@@ -1,146 +0,0 @@
-Compressed diff from
-```
-git show d21664cce1db8debe2528f36b1fbd2b8af9c9401 87dac7da68ea1e0adac78c59ef1891dcf9632b67 3a0f6e699bb6d96dc62dce6faef20ac26cf103fd
-```
-with the purpose of avoiding linker errors arising in the polly-flavoured clang.
-
-diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
-index a02c2a5a23f..faf8f561faa 100644
---- llvm/CMakeLists.txt
-+++ llvm/CMakeLists.txt
-@@ -1069,6 +1069,7 @@ endif()
- # after all targets are created.
- include(LLVMDistributionSupport)
- llvm_distribution_add_targets()
-+process_llvm_pass_plugins(GEN_CONFIG)
- 
- # This allows us to deploy the Universal CRT DLLs by passing -DCMAKE_INSTALL_UCRT_LIBRARIES=ON to CMake
- if (MSVC AND CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows" AND CMAKE_INSTALL_UCRT_LIBRARIES)
-@@ -1093,5 +1094,3 @@ endif()
- if (LLVM_INCLUDE_UTILS AND LLVM_INCLUDE_TOOLS)
-   add_subdirectory(utils/llvm-locstats)
- endif()
--
--process_llvm_pass_plugins()
-diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
-index fd69786544a..8fbb33a22fd 100644
---- llvm/cmake/modules/AddLLVM.cmake
-+++ llvm/cmake/modules/AddLLVM.cmake
-@@ -884,53 +884,71 @@ function(add_llvm_pass_plugin name)
-     if (TARGET intrinsics_gen)
-       add_dependencies(obj.${name} intrinsics_gen)
-     endif()
--    message(STATUS "Registering ${name} as a pass plugin (static build: ${LLVM_${name_upper}_LINK_INTO_TOOLS})")
--    set_property(GLOBAL APPEND PROPERTY LLVM_COMPILE_EXTENSIONS ${name})
-+    set_property(GLOBAL APPEND PROPERTY LLVM_STATIC_EXTENSIONS ${name})
-   elseif(NOT ARG_NO_MODULE)
-     add_llvm_library(${name} MODULE ${ARG_UNPARSED_ARGUMENTS})
-   else()
-     add_llvm_library(${name} OBJECT ${ARG_UNPARSED_ARGUMENTS})
-   endif()
-+  message(STATUS "Registering ${name} as a pass plugin (static build: ${LLVM_${name_upper}_LINK_INTO_TOOLS})")
- 
- endfunction(add_llvm_pass_plugin)
- 
--# Generate X Macro file for extension handling. It provides a
--# HANDLE_EXTENSION(extension_namespace, ExtensionProject) call for each extension
--# allowing client code to define HANDLE_EXTENSION to have a specific code be run for
--# each extension.
-+# process_llvm_pass_plugins([GEN_CONFIG])
-+#
-+# Correctly set lib dependencies between plugins and tools, based on tools
-+# registered with the ENABLE_PLUGINS option.
-+#
-+# if GEN_CONFIG option is set, also generate X Macro file for extension
-+# handling. It provides a HANDLE_EXTENSION(extension_namespace, ExtensionProject)
-+# call for each extension allowing client code to define
-+# HANDLE_EXTENSION to have a specific code be run for each extension.
- #
--# Also correctly set lib dependencies between plugins and tools.
- function(process_llvm_pass_plugins)
--  get_property(LLVM_EXTENSIONS GLOBAL PROPERTY LLVM_COMPILE_EXTENSIONS)
--  file(WRITE "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp" "//extension handlers\n")
--  foreach(llvm_extension ${LLVM_EXTENSIONS})
--    string(TOLOWER ${llvm_extension} llvm_extension_lower)
--
--    string(TOUPPER ${llvm_extension} llvm_extension_upper)
--    string(SUBSTRING ${llvm_extension_upper} 0 1 llvm_extension_upper_first)
--    string(SUBSTRING ${llvm_extension_lower} 1 -1 llvm_extension_lower_tail)
--    string(CONCAT llvm_extension_project ${llvm_extension_upper_first} ${llvm_extension_lower_tail})
--
--    if(LLVM_${llvm_extension_upper}_LINK_INTO_TOOLS)
--      file(APPEND "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp" "HANDLE_EXTENSION(${llvm_extension_project})\n")
--
--      get_property(llvm_plugin_targets GLOBAL PROPERTY LLVM_PLUGIN_TARGETS)
--      foreach(llvm_plugin_target ${llvm_plugin_targets})
--        set_property(TARGET ${llvm_plugin_target} APPEND PROPERTY LINK_LIBRARIES ${llvm_extension})
--        set_property(TARGET ${llvm_plugin_target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${llvm_extension})
--      endforeach()
--    else()
--      add_llvm_library(${llvm_extension_lower} MODULE obj.${llvm_extension_lower})
--    endif()
-+  cmake_parse_arguments(ARG
-+      "GEN_CONFIG" "" ""
-+    ${ARGN})
- 
-+  if(ARG_GEN_CONFIG)
-+      get_property(LLVM_STATIC_EXTENSIONS GLOBAL PROPERTY LLVM_STATIC_EXTENSIONS)
-+  else()
-+      include(LLVMConfigExtensions)
-+  endif()
-+
-+  # Add static plugins to each plugin target.
-+  foreach(llvm_extension ${LLVM_STATIC_EXTENSIONS})
-+    get_property(llvm_plugin_targets GLOBAL PROPERTY LLVM_PLUGIN_TARGETS)
-+    foreach(llvm_plugin_target ${llvm_plugin_targets})
-+      set_property(TARGET ${llvm_plugin_target} APPEND PROPERTY LINK_LIBRARIES ${llvm_extension})
-+      set_property(TARGET ${llvm_plugin_target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${llvm_extension})
-+    endforeach()
-   endforeach()
--  file(APPEND "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp" "#undef HANDLE_EXTENSION\n")
- 
--  # only replace if there's an actual change
--  execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
--    "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp"
--    "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def")
--  file(REMOVE "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp")
-+  # Eventually generate the extension header, and store config to a cmake file
-+  # for usage in third-party configuration.
-+  if(ARG_GEN_CONFIG)
-+      set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
-+      set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
-+      file(WRITE
-+          "${llvm_cmake_builddir}/LLVMConfigExtensions.cmake"
-+          "set(LLVM_STATIC_EXTENSIONS ${LLVM_STATIC_EXTENSIONS})")
-+      install(FILES
-+          ${llvm_cmake_builddir}/LLVMConfigExtensions.cmake
-+          DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
-+          COMPONENT cmake-exports)
-+
-+      file(WRITE "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp" "//extension handlers\n")
-+      foreach(llvm_extension ${LLVM_STATIC_EXTENSIONS})
-+        file(APPEND "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp" "HANDLE_EXTENSION(${llvm_extension})\n")
-+      endforeach()
-+      file(APPEND "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp" "#undef HANDLE_EXTENSION\n")
-+
-+      # only replace if there's an actual change
-+      execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
-+        "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp"
-+        "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def")
-+      file(REMOVE "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp")
-+  endif()
- endfunction()
- 
- function(export_executable_symbols target)
-diff --git a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt
-index 9cf22b436fa..af757d6199a 100644
---- llvm/cmake/modules/CMakeLists.txt
-+++ llvm/cmake/modules/CMakeLists.txt
-@@ -136,6 +136,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-     FILES_MATCHING PATTERN *.cmake
-     PATTERN .svn EXCLUDE
-     PATTERN LLVMConfig.cmake EXCLUDE
-+    PATTERN LLVMConfigExtensions.cmake EXCLUDE
-     PATTERN LLVMConfigVersion.cmake EXCLUDE
-     PATTERN LLVM-Config.cmake EXCLUDE
-     PATTERN GetHostTriple.cmake EXCLUDE)
diff --git a/pkgs/development/compilers/llvm/10/llvm.nix b/pkgs/development/compilers/llvm/10/llvm.nix
index dd0728b40c9..7394d4033d2 100644
--- a/pkgs/development/compilers/llvm/10/llvm.nix
+++ b/pkgs/development/compilers/llvm/10/llvm.nix
@@ -32,8 +32,8 @@ in stdenv.mkDerivation (rec {
   pname = "llvm";
   inherit version;
 
-  src = fetch pname "1pwgm6cr0xr5a0hrbqs1zvsvvjvy0yq1y47c96804wcs795s90yz";
-  polly_src = fetch "polly" "15sd3dq0w60jsb76pis09lkagj5iy43h9hg4kd9gx5l8cbnsdyrm";
+  src = fetch pname "1wydhbp9kyjp5y0rc627imxgkgqiv3dfirbqil9dgpnbaw5y7n65";
+  polly_src = fetch "polly" "0nm2d8niz47yjsa3r17v3p13b70igkd338ib8191znr1dfw0pyyj";
 
   unpackPhase = ''
     unpackFile $src
@@ -55,11 +55,6 @@ in stdenv.mkDerivation (rec {
 
   propagatedBuildInputs = [ ncurses zlib ];
 
-  patches = [
-    # 10.0.0rc3-only
-    ./llvm-extension-handling.patch
-  ];
-
   postPatch = optionalString stdenv.isDarwin ''
     substituteInPlace cmake/modules/AddLLVM.cmake \
       --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
@@ -86,6 +81,7 @@ in stdenv.mkDerivation (rec {
     rm test/DebugInfo/X86/convert-debugloc.ll
     rm test/DebugInfo/X86/convert-inlined.ll
     rm test/DebugInfo/X86/convert-linked.ll
+    rm test/DebugInfo/X86/debug_addr.ll
     rm test/tools/dsymutil/X86/op-convert.test
   '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") ''
     # Seems to require certain floating point hardware (NEON?)
diff --git a/pkgs/development/compilers/llvm/10/openmp.nix b/pkgs/development/compilers/llvm/10/openmp.nix
index 624c99bc868..0927448d2b4 100644
--- a/pkgs/development/compilers/llvm/10/openmp.nix
+++ b/pkgs/development/compilers/llvm/10/openmp.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   pname = "openmp";
   inherit version;
 
-  src = fetch pname "1ymd13gj07x0b0vxziygm0p41vrq6nsgx837jqg9ll6h8ndg57rv";
+  src = fetch pname "0i4bn84lkpm5w3qkpvwm5z6jdj8fynp7d3bcasa1xyq4is6757yi";
 
   nativeBuildInputs = [ cmake perl ];
   buildInputs = [ llvm ];
diff --git a/pkgs/development/compilers/llvm/11/bintools.nix b/pkgs/development/compilers/llvm/11/bintools.nix
new file mode 100644
index 00000000000..53f7941e336
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/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/pkgs/development/compilers/llvm/11/clang/default.nix b/pkgs/development/compilers/llvm/11/clang/default.nix
new file mode 100644
index 00000000000..08f9339dc8e
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/clang/default.nix
@@ -0,0 +1,117 @@
+{ 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" "18rv5nxk04fgk4ziix7z4s2cargdpqgvqrk3lnp3wvd6yb5g5p98";
+
+    unpackPhase = ''
+      unpackFile $src
+      mv clang-${version}* clang
+      sourceRoot=$PWD/clang
+      unpackFile ${clang-tools-extra_src}
+      mv clang-tools-extra-* $sourceRoot/tools/extra
+    '';
+
+    nativeBuildInputs = [ cmake python3 lld ]
+      ++ stdenv.lib.optional enableManpages python3.pkgs.sphinx;
+
+    buildInputs = [ libxml2 llvm ]
+      ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+    cmakeFlags = [
+      "-DCMAKE_CXX_FLAGS=-std=c++14"
+      "-DCLANGD_BUILD_XPC=OFF"
+    ] ++ stdenv.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
+    '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
+      sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp
+    '' + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
+      substituteInPlace tools/extra/clangd/CMakeLists.txt \
+        --replace "NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB" FALSE
+    '';
+
+    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
+    '';
+
+    enableParallelBuilding = true;
+
+    passthru = {
+      isClang = true;
+      inherit llvm;
+    } // stdenv.lib.optionalAttrs (stdenv.targetPlatform.isLinux || (stdenv.cc.isGNU && stdenv.cc.cc ? gcc)) {
+      gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
+    };
+
+    meta = {
+      description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler";
+      homepage    = "https://llvm.org/";
+      license     = stdenv.lib.licenses.ncsa;
+      platforms   = stdenv.lib.platforms.all;
+    };
+  } // stdenv.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/pkgs/development/compilers/llvm/11/clang/purity.patch b/pkgs/development/compilers/llvm/11/clang/purity.patch
new file mode 100644
index 00000000000..deb230a36c5
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/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/pkgs/development/compilers/llvm/11/compiler-rt-armv7l.patch b/pkgs/development/compilers/llvm/11/compiler-rt-armv7l.patch
new file mode 100644
index 00000000000..120cfe6feb2
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/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/pkgs/development/compilers/llvm/11/compiler-rt-codesign.patch b/pkgs/development/compilers/llvm/11/compiler-rt-codesign.patch
new file mode 100644
index 00000000000..3cc12b94b20
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/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/pkgs/development/compilers/llvm/11/compiler-rt.nix b/pkgs/development/compilers/llvm/11/compiler-rt.nix
new file mode 100644
index 00000000000..133db365942
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/compiler-rt.nix
@@ -0,0 +1,85 @@
+{ 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 "0qfgap6acxffm01hzk38pmzq8ac3isk90531dz0qf7fd5015jvvg";
+
+  nativeBuildInputs = [ cmake python3 llvm ];
+  buildInputs = stdenv.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}"
+  ] ++ stdenv.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"
+  ] ++ stdenv.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)}"
+  ] ++ stdenv.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"
+  ] ++ stdenv.lib.optionals (bareMetal) [
+    "-DCOMPILER_RT_OS_DIR=baremetal"
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  patches = [
+    ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
+  ]# ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
+    ++ stdenv.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 = stdenv.lib.optionalString (!stdenv.isDarwin) ''
+    substituteInPlace cmake/builtin-config-ix.cmake \
+      --replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)'
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    substituteInPlace cmake/config-ix.cmake \
+      --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)'
+  '' + stdenv.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 = stdenv.lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) ''
+    ln -s "$out/lib"/*/* "$out/lib"
+  '' + stdenv.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
+  '';
+
+  enableParallelBuilding = true;
+}
diff --git a/pkgs/development/compilers/llvm/11/default.nix b/pkgs/development/compilers/llvm/11/default.nix
new file mode 100644
index 00000000000..cbb3df9f687
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/default.nix
@@ -0,0 +1,195 @@
+{ lowPrio, newScope, pkgs, stdenv, cmake
+, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
+, buildLlvmTools # tools, but from the previous stage, for cross
+, targetLlvmLibraries # libraries, but from the next stage, for cross
+}:
+
+let
+  release_version = "11.0.0";
+  candidate = "rc2";
+  version = "${release_version}${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-${release_version}-${candidate}/${name}-${version}.src.tar.xz";
+    inherit sha256;
+  };
+
+  clang-tools-extra_src = fetch "clang-tools-extra" "0bg2a9nmkdbj5qfd0vvqj8bgchcx1yzmylxxgvh8y5hhj4fz13fs";
+
+  tools = stdenv.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"
+      echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
+    '' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && tools.clang-unwrapped ? gcc && !(stdenv.targetPlatform.useLLVM or false)) ''
+      echo "--gcc-toolchain=${tools.clang-unwrapped.gcc}" >> $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;
+      libcxx = null; # libstdcxx is smuggled in with clang.gcc
+      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 {};
+
+    lldb = callPackage ./lldb.nix {};
+
+    # 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
+      ] ++ stdenv.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
+      '' + stdenv.lib.optionalString (!stdenv.targetPlatform.isWasm) ''
+        echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
+      '' + stdenv.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 = stdenv.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 ({} //
+      (stdenv.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++ ({} //
+      (stdenv.lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
+        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
+      }));
+
+    libcxxabi = callPackage ./libc++abi.nix ({} //
+      (stdenv.lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
+        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
+        libunwind = libraries.libunwind;
+      }));
+
+    openmp = callPackage ./openmp.nix {};
+
+    libunwind = callPackage ./libunwind.nix ({} //
+      (stdenv.lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
+        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
+      }));
+
+  });
+
+in { inherit tools libraries; } // libraries // tools
diff --git a/pkgs/development/compilers/llvm/11/libc++/default.nix b/pkgs/development/compilers/llvm/11/libc++/default.nix
new file mode 100644
index 00000000000..a2ea7e29918
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/libc++/default.nix
@@ -0,0 +1,52 @@
+{ lib, stdenv, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version
+, enableShared ? true }:
+
+stdenv.mkDerivation {
+  pname = "libc++";
+  inherit version;
+
+  src = fetch "libcxx" "0aaci7iblfczv1jb22zjrwzxcrcx6x7klvjivmxm2zni0n2x3bd4";
+
+  postUnpack = ''
+    unpackFile ${libcxxabi.src}
+    export LIBCXXABI_INCLUDE_DIR="$PWD/$(ls -d libcxxabi-${version}*)/include"
+  '';
+
+  patches = stdenv.lib.optional stdenv.hostPlatform.isMusl ../../libcxx-0001-musl-hacks.patch;
+
+  preConfigure = ''
+    # Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package
+    cmakeFlagsArray=($cmakeFlagsArray -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$LIBCXXABI_INCLUDE_DIR")
+  '' + lib.optionalString stdenv.hostPlatform.isMusl ''
+    patchShebangs utils/cat_files.py
+  '';
+  nativeBuildInputs = [ cmake ]
+    ++ stdenv.lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) python3;
+
+  buildInputs = [ libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+  cmakeFlags = [
+    "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib"
+    "-DLIBCXX_LIBCPPABI_VERSION=2"
+    "-DLIBCXX_CXX_ABI=libcxxabi"
+  ] ++ stdenv.lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
+    ++ stdenv.lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON"
+    ++ stdenv.lib.optional stdenv.hostPlatform.isWasm [
+      "-DLIBCXX_ENABLE_THREADS=OFF"
+      "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
+      "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
+    ] ++ stdenv.lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF";
+
+  enableParallelBuilding = true;
+
+  passthru = {
+    isLLVM = true;
+  };
+
+  meta = {
+    homepage = "https://libcxx.llvm.org/";
+    description = "A new implementation of the C++ standard library, targeting C++11";
+    license = with stdenv.lib.licenses; [ ncsa mit ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/11/libc++abi.nix b/pkgs/development/compilers/llvm/11/libc++abi.nix
new file mode 100644
index 00000000000..bf7b3fd001d
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/libc++abi.nix
@@ -0,0 +1,67 @@
+{ stdenv, cmake, fetch, libcxx, libunwind, llvm, version
+, enableShared ? true }:
+
+stdenv.mkDerivation {
+  pname = "libc++abi";
+  inherit version;
+
+  src = fetch "libcxxabi" "04gqdzs13sw7f7a06h5zm5917d9f1k79l4rcm096grgvf0r7lnqx";
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = stdenv.lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
+
+  cmakeFlags = stdenv.lib.optionals (stdenv.hostPlatform.useLLVM or false) [
+    "-DLLVM_ENABLE_LIBCXX=ON"
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+  ] ++ stdenv.lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXXABI_ENABLE_THREADS=OFF"
+    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
+  ] ++ stdenv.lib.optionals (!enableShared) [
+    "-DLIBCXXABI_ENABLE_SHARED=OFF"
+  ];
+
+  patches = [ ./libcxxabi-no-threads.patch ];
+
+  postUnpack = ''
+    unpackFile ${libcxx.src}
+    unpackFile ${llvm.src}
+    cmakeFlags+=" -DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_PATH=$PWD/$(ls -d libcxx-*)"
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    export TRIPLE=x86_64-apple-darwin
+  '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
+    patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-0001-musl-hacks.patch}
+  '' + stdenv.lib.optionalString stdenv.hostPlatform.isWasm ''
+    patch -p1 -d $(ls -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
+    '' + stdenv.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 stdenv.lib.licenses; [ ncsa mit ];
+    maintainers = with stdenv.lib.maintainers; [ vlstill ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/11/libcxxabi-no-threads.patch b/pkgs/development/compilers/llvm/11/libcxxabi-no-threads.patch
new file mode 100644
index 00000000000..787f3e16500
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/libcxxabi-no-threads.patch
@@ -0,0 +1,12 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4138acf..41b4763 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -362,6 +362,7 @@ if (NOT LIBCXXABI_ENABLE_THREADS)
+                         " is also set to ON.")
+   endif()
+   add_definitions(-D_LIBCXXABI_HAS_NO_THREADS)
++  add_definitions(-D_LIBCPP_HAS_NO_THREADS)
+ endif()
+ 
+ if (LIBCXXABI_HAS_EXTERNAL_THREAD_API)
diff --git a/pkgs/development/compilers/llvm/11/libcxxabi-wasm.patch b/pkgs/development/compilers/llvm/11/libcxxabi-wasm.patch
new file mode 100644
index 00000000000..4ebfe46aa81
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/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/pkgs/development/compilers/llvm/11/libunwind.nix b/pkgs/development/compilers/llvm/11/libunwind.nix
new file mode 100644
index 00000000000..03b58ca8d1d
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/libunwind.nix
@@ -0,0 +1,14 @@
+{ stdenv, version, fetch, cmake, fetchpatch, enableShared ? true }:
+
+stdenv.mkDerivation rec {
+  pname = "libunwind";
+  inherit version;
+
+  src = fetch pname "1ch4a2yp821lgzxh9898f7nw2fnkrn3wh25sqg05hlks45znv30y";
+
+  nativeBuildInputs = [ cmake ];
+
+  enableParallelBuilding = true;
+
+  cmakeFlags = stdenv.lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
+}
diff --git a/pkgs/development/compilers/llvm/11/lld.nix b/pkgs/development/compilers/llvm/11/lld.nix
new file mode 100644
index 00000000000..74d18a444fc
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/lld.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetch
+, cmake
+, libxml2
+, llvm
+, version
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lld";
+  inherit version;
+
+  src = fetch pname "0lqz5cfids0rrl02p0qq5s18p8ikaa9r5gwa2yvj3bismdhvmar8";
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ llvm libxml2 ];
+
+  outputs = [ "out" "dev" ];
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    moveToOutput include "$dev"
+    moveToOutput lib "$dev"
+  '';
+
+  meta = {
+    description = "The LLVM Linker";
+    homepage    = "https://lld.llvm.org/";
+    license     = stdenv.lib.licenses.ncsa;
+    platforms   = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/11/lldb-procfs.patch b/pkgs/development/compilers/llvm/11/lldb-procfs.patch
new file mode 100644
index 00000000000..b075dbaeee0
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/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/pkgs/development/compilers/llvm/11/lldb.nix b/pkgs/development/compilers/llvm/11/lldb.nix
new file mode 100644
index 00000000000..c0b7f267f75
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/lldb.nix
@@ -0,0 +1,101 @@
+{ stdenv
+, fetch
+, cmake
+, zlib
+, ncurses
+, swig
+, which
+, libedit
+, libxml2
+, llvm
+, clang-unwrapped
+, python3
+, version
+, darwin
+, lit
+, enableManpages ? false
+}:
+
+stdenv.mkDerivation (rec {
+  pname = "lldb";
+  inherit version;
+
+  src = fetch pname "0hb582kvhxp3kcckz7imrihs0kszdaz09z22xfymyi4vgmcy62q3";
+
+  patches = [ ./lldb-procfs.patch ];
+
+  nativeBuildInputs = [ cmake python3 which swig lit ]
+    ++ stdenv.lib.optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];
+
+  buildInputs = [
+    ncurses
+    zlib
+    libedit
+    libxml2
+    llvm
+  ]
+  ++ stdenv.lib.optionals stdenv.isDarwin [
+    darwin.libobjc
+    darwin.apple_sdk.libs.xpc
+    darwin.apple_sdk.frameworks.Foundation
+    darwin.bootstrap_cmds
+    darwin.apple_sdk.frameworks.Carbon
+    darwin.apple_sdk.frameworks.Cocoa
+  ];
+
+  CXXFLAGS = "-fno-rtti";
+  hardeningDisable = [ "format" ];
+
+  cmakeFlags = [
+    "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
+    "-DClang_DIR=${clang-unwrapped}/lib/cmake"
+    "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit"
+  ] ++ stdenv.lib.optionals stdenv.isDarwin [
+    "-DLLDB_USE_SYSTEM_DEBUGSERVER=ON"
+  ] ++ stdenv.lib.optionals enableManpages [
+    "-DLLVM_ENABLE_SPHINX=ON"
+    "-DSPHINX_OUTPUT_MAN=ON"
+    "-DSPHINX_OUTPUT_HTML=OFF"
+  ]
+;
+
+  enableParallelBuilding = true;
+
+  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 stdenv.lib; {
+    description = "A next-generation high-performance debugger";
+    homepage = "https://lldb.llvm.org";
+    license = licenses.ncsa;
+    platforms = platforms.all;
+  };
+} // stdenv.lib.optionalAttrs enableManpages {
+  pname = "lldb-manpages";
+
+  buildPhase = ''
+    make docs-lldb-man
+  '';
+
+  propagatedBuildInputs = [];
+
+  installPhase = ''
+    # manually install lldb man page
+    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/pkgs/development/compilers/llvm/11/llvm-outputs.patch b/pkgs/development/compilers/llvm/11/llvm-outputs.patch
new file mode 100644
index 00000000000..40096fa3497
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/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/pkgs/development/compilers/llvm/11/llvm.nix b/pkgs/development/compilers/llvm/11/llvm.nix
new file mode 100644
index 00000000000..f15a7d12b80
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/llvm.nix
@@ -0,0 +1,190 @@
+{ 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 (stdenv.lib) optional optionals optionalString;
+
+  # Used when creating a version-suffixed symlink of libLLVM.dylib
+  shortVersion = with stdenv.lib;
+    concatStringsSep "." (take 1 (splitString "." release_version));
+
+in stdenv.mkDerivation (rec {
+  pname = "llvm";
+  inherit version;
+
+  src = fetch pname "151c7nphn18dcw04yxyp6qdj8w19psb8nigf26djf7rhpi1fn0sh";
+  polly_src = fetch "polly" "0caxfpaxhf38nam4gkb9xqlrw20v29cm8jf95ykkbngqw64rmgij";
+
+  unpackPhase = ''
+    unpackFile $src
+    mv llvm-${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
+  '' + 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 "-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_10}/bin/llvm-tblgen"
+  ];
+
+  postBuild = ''
+    rm -fR $out
+  '';
+
+  preCheck = ''
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib
+  '';
+
+  postInstall = ''
+    mkdir -p $python/share
+    mv $out/share/opt-viewer $python/share/opt-viewer
+  ''
+  + 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);
+
+  checkTarget = "check-all";
+
+  enableParallelBuilding = true;
+
+  requiredSystemFeatures = [ "big-parallel" ];
+  meta = {
+    description = "Collection of modular and reusable compiler and toolchain technologies";
+    homepage    = "https://llvm.org/";
+    license     = stdenv.lib.licenses.ncsa;
+    maintainers = with stdenv.lib.maintainers; [ lovek323 raskin dtzWill ];
+    platforms   = stdenv.lib.platforms.all;
+  };
+} // stdenv.lib.optionalAttrs enableManpages {
+  pname = "llvm-manpages";
+
+  buildPhase = ''
+    make docs-llvm-man
+  '';
+
+  propagatedBuildInputs = [];
+
+  installPhase = ''
+    make -C docs install
+  '';
+
+  postPatch = null;
+  postInstall = null;
+
+  outputs = [ "out" ];
+
+  doCheck = false;
+
+  meta.description = "man pages for LLVM ${version}";
+})
diff --git a/pkgs/development/compilers/llvm/11/openmp.nix b/pkgs/development/compilers/llvm/11/openmp.nix
new file mode 100644
index 00000000000..f4f9bbf2292
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/openmp.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, fetch
+, cmake
+, llvm
+, perl
+, version
+}:
+
+stdenv.mkDerivation rec {
+  pname = "openmp";
+  inherit version;
+
+  src = fetch pname "1025dwn68iw664df831zbkxy8bxilvjkbc6mw4nhv6p5ff7dcw7f";
+
+  nativeBuildInputs = [ cmake perl ];
+  buildInputs = [ llvm ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Components required to build an executable OpenMP program";
+    homepage    = "https://openmp.llvm.org/";
+    license     = stdenv.lib.licenses.mit;
+    platforms   = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/11/sanitizers-nongnu.patch b/pkgs/development/compilers/llvm/11/sanitizers-nongnu.patch
new file mode 100644
index 00000000000..1f2ac97818e
--- /dev/null
+++ b/pkgs/development/compilers/llvm/11/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/pkgs/development/compilers/llvm/5/clang/default.nix b/pkgs/development/compilers/llvm/5/clang/default.nix
index 1016398992f..cd7d952243c 100644
--- a/pkgs/development/compilers/llvm/5/clang/default.nix
+++ b/pkgs/development/compilers/llvm/5/clang/default.nix
@@ -4,7 +4,6 @@
 }:
 
 let
-  gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
   self = stdenv.mkDerivation ({
     pname = "clang";
     inherit version;
@@ -27,6 +26,7 @@ let
 
     cmakeFlags = [
       "-DCMAKE_CXX_FLAGS=-std=c++11"
+      "-DLLVM_ENABLE_RTTI=ON"
     ] ++ stdenv.lib.optionals enableManpages [
       "-DCLANG_INCLUDE_DOCS=ON"
       "-DLLVM_ENABLE_SPHINX=ON"
@@ -77,8 +77,6 @@ let
     passthru = {
       isClang = true;
       inherit llvm;
-    } // stdenv.lib.optionalAttrs stdenv.isLinux {
-      inherit gcc;
     };
 
     meta = {
diff --git a/pkgs/development/compilers/llvm/5/compiler-rt.nix b/pkgs/development/compilers/llvm/5/compiler-rt.nix
index 624034b5228..32d6dd3d479 100644
--- a/pkgs/development/compilers/llvm/5/compiler-rt.nix
+++ b/pkgs/development/compilers/llvm/5/compiler-rt.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation {
 
   patches = [
     ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
+    ../7/compiler-rt-glibc.patch
   ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
     ++ stdenv.lib.optional (stdenv.hostPlatform.libc == "glibc") ./compiler-rt-sys-ustat.patch
     ++ stdenv.lib.optional stdenv.hostPlatform.isAarch32 ./compiler-rt-armv7l.patch;
diff --git a/pkgs/development/compilers/llvm/5/default.nix b/pkgs/development/compilers/llvm/5/default.nix
index e7083a6ed13..36495249d16 100644
--- a/pkgs/development/compilers/llvm/5/default.nix
+++ b/pkgs/development/compilers/llvm/5/default.nix
@@ -1,5 +1,6 @@
-{ lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
+{ lowPrio, newScope, pkgs, stdenv, cmake, gccForLibs
 , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith
+, buildPackages
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
 }:
@@ -24,8 +25,8 @@ let
       ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
       ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
-    '' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && tools.clang-unwrapped ? gcc && !(stdenv.targetPlatform.useLLVM or false)) ''
-      echo "--gcc-toolchain=${tools.clang-unwrapped.gcc}" >> $out/nix-support/cc-cflags
+    '' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && !(stdenv.targetPlatform.useLLVM or false)) ''
+      echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
     '';
   in {
 
@@ -51,25 +52,18 @@ let
 
     libstdcxxClang = wrapCCWith rec {
       cc = tools.clang-unwrapped;
-      extraTools = [
-        libstdcxxHook
-      ];
+      # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper.
+      libcxx = null;
       extraPackages = [
         targetLlvmLibraries.compiler-rt
       ];
-      extraBuildCommands = ''
-          echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags
-          echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-cflags
-          echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags
-          echo "-L${gcc.cc.lib}/${targetConfig}/lib" >> $out/nix-support/cc-ldflags
-      '' + mkExtraBuildCommands cc;
+      extraBuildCommands = mkExtraBuildCommands cc;
     };
 
     libcxxClang = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
       extraPackages = [
-        targetLlvmLibraries.libcxx
         targetLlvmLibraries.libcxxabi
         targetLlvmLibraries.compiler-rt
       ];
diff --git a/pkgs/development/compilers/llvm/5/libc++/default.nix b/pkgs/development/compilers/llvm/5/libc++/default.nix
index 88ad3c29c3e..f8185fc3ff4 100644
--- a/pkgs/development/compilers/llvm/5/libc++/default.nix
+++ b/pkgs/development/compilers/llvm/5/libc++/default.nix
@@ -37,12 +37,9 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
-  linkCxxAbi = stdenv.isLinux;
-
-  setupHooks = [
-    ../../../../../build-support/setup-hooks/role.bash
-    ./setup-hook.sh
-  ];
+  passthru = {
+    isLLVM = true;
+  };
 
   meta = {
     homepage = "https://libcxx.llvm.org/";
diff --git a/pkgs/development/compilers/llvm/5/libc++/setup-hook.sh b/pkgs/development/compilers/llvm/5/libc++/setup-hook.sh
deleted file mode 100644
index 3a274aecc23..00000000000
--- a/pkgs/development/compilers/llvm/5/libc++/setup-hook.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-# See pkgs/build-support/setup-hooks/role.bash
-getHostRole
-
-linkCxxAbi="@linkCxxAbi@"
-export NIX_CXXSTDLIB_COMPILE${role_post}+=" -isystem @out@/include/c++/v1"
-export NIX_CXXSTDLIB_LINK${role_post}=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
diff --git a/pkgs/development/compilers/llvm/6/clang/default.nix b/pkgs/development/compilers/llvm/6/clang/default.nix
index e2f7166354a..8f6479fe2f4 100644
--- a/pkgs/development/compilers/llvm/6/clang/default.nix
+++ b/pkgs/development/compilers/llvm/6/clang/default.nix
@@ -4,7 +4,6 @@
 }:
 
 let
-  gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
   self = stdenv.mkDerivation ({
     pname = "clang";
     inherit version;
@@ -27,6 +26,7 @@ let
 
     cmakeFlags = [
       "-DCMAKE_CXX_FLAGS=-std=c++11"
+      "-DLLVM_ENABLE_RTTI=ON"
     ] ++ stdenv.lib.optionals enableManpages [
       "-DCLANG_INCLUDE_DOCS=ON"
       "-DLLVM_ENABLE_SPHINX=ON"
@@ -77,8 +77,6 @@ let
     passthru = {
       isClang = true;
       inherit llvm;
-    } // stdenv.lib.optionalAttrs stdenv.targetPlatform.isLinux {
-      inherit gcc;
     };
 
     meta = {
diff --git a/pkgs/development/compilers/llvm/6/compiler-rt.nix b/pkgs/development/compilers/llvm/6/compiler-rt.nix
index 13abf6d9561..89f25cad2c5 100644
--- a/pkgs/development/compilers/llvm/6/compiler-rt.nix
+++ b/pkgs/development/compilers/llvm/6/compiler-rt.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation {
 
   patches = [
     ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
+    ../7/compiler-rt-glibc.patch
   ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
     ++ stdenv.lib.optional stdenv.hostPlatform.isAarch32 ./compiler-rt-armv7l.patch;
 
diff --git a/pkgs/development/compilers/llvm/6/default.nix b/pkgs/development/compilers/llvm/6/default.nix
index b544a4f6ba6..4c2e87ec5e1 100644
--- a/pkgs/development/compilers/llvm/6/default.nix
+++ b/pkgs/development/compilers/llvm/6/default.nix
@@ -1,5 +1,6 @@
-{ lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
+{ lowPrio, newScope, pkgs, stdenv, cmake, gccForLibs
 , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith
+, buildPackages
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
 }:
@@ -24,8 +25,8 @@ let
       ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
       ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
-    '' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && tools.clang-unwrapped ? gcc && !(stdenv.targetPlatform.useLLVM or false)) ''
-      echo "--gcc-toolchain=${tools.clang-unwrapped.gcc}" >> $out/nix-support/cc-cflags
+    '' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && !(stdenv.targetPlatform.useLLVM or false)) ''
+      echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
     '';
   in {
 
@@ -51,25 +52,18 @@ let
 
     libstdcxxClang = wrapCCWith rec {
       cc = tools.clang-unwrapped;
-      extraTools = [
-        libstdcxxHook
-      ];
+      # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper.
+      libcxx = null;
       extraPackages = [
         targetLlvmLibraries.compiler-rt
       ];
-      extraBuildCommands = ''
-          echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags
-          echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-cflags
-          echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags
-          echo "-L${gcc.cc.lib}/${targetConfig}/lib" >> $out/nix-support/cc-ldflags
-      '' + mkExtraBuildCommands cc;
+      extraBuildCommands = mkExtraBuildCommands cc;
     };
 
     libcxxClang = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
       extraPackages = [
-        targetLlvmLibraries.libcxx
         targetLlvmLibraries.libcxxabi
         targetLlvmLibraries.compiler-rt
       ];
diff --git a/pkgs/development/compilers/llvm/6/libc++/default.nix b/pkgs/development/compilers/llvm/6/libc++/default.nix
index 57f1431f471..a922bcfaf0e 100644
--- a/pkgs/development/compilers/llvm/6/libc++/default.nix
+++ b/pkgs/development/compilers/llvm/6/libc++/default.nix
@@ -37,12 +37,9 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
-  linkCxxAbi = stdenv.isLinux;
-
-  setupHooks = [
-    ../../../../../build-support/setup-hooks/role.bash
-    ./setup-hook.sh
-  ];
+  passthru = {
+    isLLVM = true;
+  };
 
   meta = {
     homepage = "https://libcxx.llvm.org/";
diff --git a/pkgs/development/compilers/llvm/6/libc++/setup-hook.sh b/pkgs/development/compilers/llvm/6/libc++/setup-hook.sh
deleted file mode 100644
index 3a274aecc23..00000000000
--- a/pkgs/development/compilers/llvm/6/libc++/setup-hook.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-# See pkgs/build-support/setup-hooks/role.bash
-getHostRole
-
-linkCxxAbi="@linkCxxAbi@"
-export NIX_CXXSTDLIB_COMPILE${role_post}+=" -isystem @out@/include/c++/v1"
-export NIX_CXXSTDLIB_LINK${role_post}=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
diff --git a/pkgs/development/compilers/llvm/7/bintools.nix b/pkgs/development/compilers/llvm/7/bintools.nix
index 72a2a733193..53f7941e336 100644
--- a/pkgs/development/compilers/llvm/7/bintools.nix
+++ b/pkgs/development/compilers/llvm/7/bintools.nix
@@ -11,9 +11,19 @@ in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } ''
      ln -s $prog $out/bin/${prefix}$(basename $prog)
    done
    for prog in ${llvm}/bin/*; do
-     ln -s $prog $out/bin/${prefix}$(echo $(basename $prog) | sed -e "s|llvm-||")
      ln -sf $prog $out/bin/${prefix}$(basename $prog)
    done
-   rm -f $out/bin/${prefix}cat
+
+   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/pkgs/development/compilers/llvm/7/clang/default.nix b/pkgs/development/compilers/llvm/7/clang/default.nix
index 18ea46ea39c..905ec862ad7 100644
--- a/pkgs/development/compilers/llvm/7/clang/default.nix
+++ b/pkgs/development/compilers/llvm/7/clang/default.nix
@@ -27,6 +27,7 @@ let
 
     cmakeFlags = [
       "-DCMAKE_CXX_FLAGS=-std=c++11"
+      "-DLLVM_ENABLE_RTTI=ON"
     ] ++ stdenv.lib.optionals enableManpages [
       "-DCLANG_INCLUDE_DOCS=ON"
       "-DLLVM_ENABLE_SPHINX=ON"
@@ -87,8 +88,6 @@ let
     passthru = {
       isClang = true;
       inherit llvm;
-    } // stdenv.lib.optionalAttrs (stdenv.targetPlatform.isLinux || (stdenv.cc.isGNU && stdenv.cc.cc ? gcc)) {
-      gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
     };
 
     meta = {
diff --git a/pkgs/development/compilers/llvm/7/compiler-rt-glibc.patch b/pkgs/development/compilers/llvm/7/compiler-rt-glibc.patch
new file mode 100644
index 00000000000..2d211795fc8
--- /dev/null
+++ b/pkgs/development/compilers/llvm/7/compiler-rt-glibc.patch
@@ -0,0 +1,48 @@
+diff --git a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+index 54da635..c5dc1cd 100644
+--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
++++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+@@ -1158,8 +1158,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
+-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
+-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field.  */
++#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
++/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
++   on many architectures.  */
+ CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
+ #endif
+ 
+diff --git a/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+index f89a113..f6f986f 100644
+--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.h
++++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+@@ -213,26 +213,13 @@ namespace __sanitizer {
+     u64 __unused1;
+     u64 __unused2;
+ #elif defined(__sparc__)
+-#if defined(__arch64__)
+     unsigned mode;
+-    unsigned short __pad1;
+-#else
+-    unsigned short __pad1;
+-    unsigned short mode;
+     unsigned short __pad2;
+-#endif
+     unsigned short __seq;
+     unsigned long long __unused1;
+     unsigned long long __unused2;
+-#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__)
+-    unsigned int mode;
+-    unsigned short __seq;
+-    unsigned short __pad1;
+-    unsigned long __unused1;
+-    unsigned long __unused2;
+ #else
+-    unsigned short mode;
+-    unsigned short __pad1;
++    unsigned int mode;
+     unsigned short __seq;
+     unsigned short __pad2;
+ #if defined(__x86_64__) && !defined(_LP64)
diff --git a/pkgs/development/compilers/llvm/7/compiler-rt.nix b/pkgs/development/compilers/llvm/7/compiler-rt.nix
index 84ca6af3b36..97a5d73f304 100644
--- a/pkgs/development/compilers/llvm/7/compiler-rt.nix
+++ b/pkgs/development/compilers/llvm/7/compiler-rt.nix
@@ -46,6 +46,9 @@ stdenv.mkDerivation {
   outputs = [ "out" "dev" ];
 
   patches = [
+    # https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce
+    ./compiler-rt-glibc.patch
+
     ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
   ] ++ stdenv.lib.optional (useLLVM) ./crtbegin-and-end.patch
     ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
diff --git a/pkgs/development/compilers/llvm/7/default.nix b/pkgs/development/compilers/llvm/7/default.nix
index 0b71c3a28d2..3dd067ae607 100644
--- a/pkgs/development/compilers/llvm/7/default.nix
+++ b/pkgs/development/compilers/llvm/7/default.nix
@@ -1,5 +1,6 @@
-{ lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
+{ lowPrio, newScope, pkgs, 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
 }:
@@ -24,8 +25,8 @@ let
       ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
       ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
-    '' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && tools.clang-unwrapped ? gcc && !(stdenv.targetPlatform.useLLVM or false)) ''
-      echo "--gcc-toolchain=${tools.clang-unwrapped.gcc}" >> $out/nix-support/cc-cflags
+    '' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && !(stdenv.targetPlatform.useLLVM or false)) ''
+      echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
     '';
   in {
 
@@ -58,25 +59,18 @@ let
 
     libstdcxxClang = wrapCCWith rec {
       cc = tools.clang-unwrapped;
-      extraTools = [
-        libstdcxxHook
-      ];
+      # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper.
+      libcxx = null;
       extraPackages = [
         targetLlvmLibraries.compiler-rt
       ];
-      extraBuildCommands = ''
-          echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags
-          echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-cflags
-          echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags
-          echo "-L${gcc.cc.lib}/${targetConfig}/lib" >> $out/nix-support/cc-ldflags
-      '' + mkExtraBuildCommands cc;
+      extraBuildCommands = mkExtraBuildCommands cc;
     };
 
     libcxxClang = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
       extraPackages = [
-        targetLlvmLibraries.libcxx
         targetLlvmLibraries.libcxxabi
         targetLlvmLibraries.compiler-rt
       ];
@@ -87,48 +81,77 @@ let
 
     lldb = callPackage ./lldb.nix {};
 
+    # 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
+      ];
+      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
+      '' + stdenv.lib.optionalString (!stdenv.targetPlatform.isWasm) ''
+        echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
+      '' + stdenv.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.libcxx
-        # targetLlvmLibraries.libcxxabi
         targetLlvmLibraries.compiler-rt
       ];
       extraBuildCommands = ''
-        echo "-target ${stdenv.targetPlatform.config} -rtlib=compiler-rt" >> $out/nix-support/cc-cflags
+        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.libcxx
-        # targetLlvmLibraries.libcxxabi
         targetLlvmLibraries.compiler-rt
       ];
       extraBuildCommands = ''
-        echo "-target ${stdenv.targetPlatform.config} -rtlib=compiler-rt" >> $out/nix-support/cc-cflags
+        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 -target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
+        echo "-nostartfiles" >> $out/nix-support/cc-cflags
       '';
     };
 
@@ -148,9 +171,16 @@ let
 
     libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
 
-    libcxx = callPackage ./libc++ {};
+    libcxx = callPackage ./libc++ ({} //
+      (stdenv.lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
+        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
+      }));
 
-    libcxxabi = callPackage ./libc++abi.nix {};
+    libcxxabi = callPackage ./libc++abi.nix ({} //
+      (stdenv.lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
+        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
+        libunwind = libraries.libunwind;
+      }));
 
     openmp = callPackage ./openmp.nix {};
   });
diff --git a/pkgs/development/compilers/llvm/7/libc++/default.nix b/pkgs/development/compilers/llvm/7/libc++/default.nix
index 96cb671fa43..83c05cf0e63 100644
--- a/pkgs/development/compilers/llvm/7/libc++/default.nix
+++ b/pkgs/development/compilers/llvm/7/libc++/default.nix
@@ -37,12 +37,9 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
-  linkCxxAbi = stdenv.isLinux;
-
-  setupHooks = [
-    ../../../../../build-support/setup-hooks/role.bash
-    ./setup-hook.sh
-  ];
+  passthru = {
+    isLLVM = true;
+  };
 
   meta = {
     homepage = "https://libcxx.llvm.org/";
diff --git a/pkgs/development/compilers/llvm/7/libc++/setup-hook.sh b/pkgs/development/compilers/llvm/7/libc++/setup-hook.sh
deleted file mode 100644
index 3a274aecc23..00000000000
--- a/pkgs/development/compilers/llvm/7/libc++/setup-hook.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-# See pkgs/build-support/setup-hooks/role.bash
-getHostRole
-
-linkCxxAbi="@linkCxxAbi@"
-export NIX_CXXSTDLIB_COMPILE${role_post}+=" -isystem @out@/include/c++/v1"
-export NIX_CXXSTDLIB_LINK${role_post}=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
diff --git a/pkgs/development/compilers/llvm/8/bintools.nix b/pkgs/development/compilers/llvm/8/bintools.nix
index 72a2a733193..53f7941e336 100644
--- a/pkgs/development/compilers/llvm/8/bintools.nix
+++ b/pkgs/development/compilers/llvm/8/bintools.nix
@@ -11,9 +11,19 @@ in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } ''
      ln -s $prog $out/bin/${prefix}$(basename $prog)
    done
    for prog in ${llvm}/bin/*; do
-     ln -s $prog $out/bin/${prefix}$(echo $(basename $prog) | sed -e "s|llvm-||")
      ln -sf $prog $out/bin/${prefix}$(basename $prog)
    done
-   rm -f $out/bin/${prefix}cat
+
+   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/pkgs/development/compilers/llvm/8/clang/default.nix b/pkgs/development/compilers/llvm/8/clang/default.nix
index 3b398628e56..2d7fc806890 100644
--- a/pkgs/development/compilers/llvm/8/clang/default.nix
+++ b/pkgs/development/compilers/llvm/8/clang/default.nix
@@ -28,6 +28,7 @@ let
     cmakeFlags = [
       "-DCMAKE_CXX_FLAGS=-std=c++11"
       "-DCLANGD_BUILD_XPC=OFF"
+      "-DLLVM_ENABLE_RTTI=ON"
     ] ++ stdenv.lib.optionals enableManpages [
       "-DCLANG_INCLUDE_DOCS=ON"
       "-DLLVM_ENABLE_SPHINX=ON"
@@ -97,8 +98,6 @@ let
     passthru = {
       isClang = true;
       inherit llvm;
-    } // stdenv.lib.optionalAttrs (stdenv.targetPlatform.isLinux || (stdenv.cc.isGNU && stdenv.cc.cc ? gcc)) {
-      gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
     };
 
     meta = {
diff --git a/pkgs/development/compilers/llvm/8/compiler-rt.nix b/pkgs/development/compilers/llvm/8/compiler-rt.nix
index 15e55800dc8..a907d408655 100644
--- a/pkgs/development/compilers/llvm/8/compiler-rt.nix
+++ b/pkgs/development/compilers/llvm/8/compiler-rt.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation {
   outputs = [ "out" "dev" ];
 
   patches = [
+    ../7/compiler-rt-glibc.patch
     ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
   ]# ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
     ++ stdenv.lib.optional (useLLVM) ./crtbegin-and-end.patch
diff --git a/pkgs/development/compilers/llvm/8/default.nix b/pkgs/development/compilers/llvm/8/default.nix
index d9383d042bb..6e80737f32a 100644
--- a/pkgs/development/compilers/llvm/8/default.nix
+++ b/pkgs/development/compilers/llvm/8/default.nix
@@ -1,5 +1,6 @@
-{ lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
+{ lowPrio, newScope, pkgs, 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
 }:
@@ -24,8 +25,8 @@ let
       ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
       ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
-    '' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && tools.clang-unwrapped ? gcc && !(stdenv.targetPlatform.useLLVM or false)) ''
-      echo "--gcc-toolchain=${tools.clang-unwrapped.gcc}" >> $out/nix-support/cc-cflags
+    '' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && !(stdenv.targetPlatform.useLLVM or false)) ''
+      echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
     '';
   in {
 
@@ -42,10 +43,11 @@ let
       enablePolly = true;
     };
 
-    llvm-manpages = lowPrio (tools.llvm.override {
-      enableManpages = true;
-      python3 = pkgs.python3;  # don't use python-boot
-    });
+    # 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;
@@ -58,25 +60,18 @@ let
 
     libstdcxxClang = wrapCCWith rec {
       cc = tools.clang-unwrapped;
-      extraTools = [
-        libstdcxxHook
-      ];
+      # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper.
+      libcxx = null;
       extraPackages = [
         targetLlvmLibraries.compiler-rt
       ];
-      extraBuildCommands = ''
-          echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags
-          echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-cflags
-          echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags
-          echo "-L${gcc.cc.lib}/${targetConfig}/lib" >> $out/nix-support/cc-ldflags
-      '' + mkExtraBuildCommands cc;
+      extraBuildCommands = mkExtraBuildCommands cc;
     };
 
     libcxxClang = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
       extraPackages = [
-        targetLlvmLibraries.libcxx
         targetLlvmLibraries.libcxxabi
         targetLlvmLibraries.compiler-rt
       ];
@@ -103,14 +98,12 @@ let
         inherit (tools) bintools;
       };
       extraPackages = [
-        targetLlvmLibraries.libcxx
         targetLlvmLibraries.libcxxabi
         targetLlvmLibraries.compiler-rt
       ] ++ stdenv.lib.optionals (!stdenv.targetPlatform.isWasm) [
         targetLlvmLibraries.libunwind
       ];
       extraBuildCommands = ''
-        echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
         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
       '' + stdenv.lib.optionalString (!stdenv.targetPlatform.isWasm) ''
@@ -130,7 +123,6 @@ let
         targetLlvmLibraries.compiler-rt
       ];
       extraBuildCommands = ''
-        echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
         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
@@ -148,7 +140,6 @@ let
         targetLlvmLibraries.compiler-rt
       ];
       extraBuildCommands = ''
-        echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
         echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
@@ -164,7 +155,6 @@ let
       extraPackages = [ ];
       extraBuildCommands = ''
         echo "-nostartfiles" >> $out/nix-support/cc-cflags
-        echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
       '';
     };
 
diff --git a/pkgs/development/compilers/llvm/8/libc++/default.nix b/pkgs/development/compilers/llvm/8/libc++/default.nix
index 24bca6aafcd..9c0c7951c79 100644
--- a/pkgs/development/compilers/llvm/8/libc++/default.nix
+++ b/pkgs/development/compilers/llvm/8/libc++/default.nix
@@ -43,12 +43,9 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
-  linkCxxAbi = stdenv.isLinux;
-
-  setupHooks = [
-    ../../../../../build-support/setup-hooks/role.bash
-    ./setup-hook.sh
-  ];
+  passthru = {
+    isLLVM = true;
+  };
 
   meta = {
     homepage = "https://libcxx.llvm.org/";
diff --git a/pkgs/development/compilers/llvm/8/libc++/setup-hook.sh b/pkgs/development/compilers/llvm/8/libc++/setup-hook.sh
deleted file mode 100644
index 3a274aecc23..00000000000
--- a/pkgs/development/compilers/llvm/8/libc++/setup-hook.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-# See pkgs/build-support/setup-hooks/role.bash
-getHostRole
-
-linkCxxAbi="@linkCxxAbi@"
-export NIX_CXXSTDLIB_COMPILE${role_post}+=" -isystem @out@/include/c++/v1"
-export NIX_CXXSTDLIB_LINK${role_post}=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
diff --git a/pkgs/development/compilers/llvm/9/bintools.nix b/pkgs/development/compilers/llvm/9/bintools.nix
index 72a2a733193..53f7941e336 100644
--- a/pkgs/development/compilers/llvm/9/bintools.nix
+++ b/pkgs/development/compilers/llvm/9/bintools.nix
@@ -11,9 +11,19 @@ in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } ''
      ln -s $prog $out/bin/${prefix}$(basename $prog)
    done
    for prog in ${llvm}/bin/*; do
-     ln -s $prog $out/bin/${prefix}$(echo $(basename $prog) | sed -e "s|llvm-||")
      ln -sf $prog $out/bin/${prefix}$(basename $prog)
    done
-   rm -f $out/bin/${prefix}cat
+
+   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/pkgs/development/compilers/llvm/9/clang/default.nix b/pkgs/development/compilers/llvm/9/clang/default.nix
index c938a01f897..81117e904d8 100644
--- a/pkgs/development/compilers/llvm/9/clang/default.nix
+++ b/pkgs/development/compilers/llvm/9/clang/default.nix
@@ -28,6 +28,7 @@ let
     cmakeFlags = [
       "-DCMAKE_CXX_FLAGS=-std=c++11"
       "-DCLANGD_BUILD_XPC=OFF"
+      "-DLLVM_ENABLE_RTTI=ON"
     ] ++ stdenv.lib.optionals enableManpages [
       "-DCLANG_INCLUDE_DOCS=ON"
       "-DLLVM_ENABLE_SPHINX=ON"
@@ -92,8 +93,6 @@ let
     passthru = {
       isClang = true;
       inherit llvm;
-    } // stdenv.lib.optionalAttrs (stdenv.targetPlatform.isLinux || (stdenv.cc.isGNU && stdenv.cc.cc ? gcc)) {
-      gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
     };
 
     meta = {
diff --git a/pkgs/development/compilers/llvm/9/compiler-rt.nix b/pkgs/development/compilers/llvm/9/compiler-rt.nix
index 0183754a2fd..394f66ff7f1 100644
--- a/pkgs/development/compilers/llvm/9/compiler-rt.nix
+++ b/pkgs/development/compilers/llvm/9/compiler-rt.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   patches = [
+    ../7/compiler-rt-glibc.patch
     ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
   ]# ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
     ++ stdenv.lib.optional stdenv.hostPlatform.isAarch32 ./compiler-rt-armv7l.patch;
diff --git a/pkgs/development/compilers/llvm/9/default.nix b/pkgs/development/compilers/llvm/9/default.nix
index 3b6db967b6a..6f5bdb8e8cc 100644
--- a/pkgs/development/compilers/llvm/9/default.nix
+++ b/pkgs/development/compilers/llvm/9/default.nix
@@ -1,5 +1,6 @@
-{ lowPrio, newScope, pkgs, stdenv, cmake, gcc, libstdcxxHook
+{ lowPrio, newScope, pkgs, 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
 }:
@@ -24,8 +25,8 @@ let
       ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
       ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
-    '' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && tools.clang-unwrapped ? gcc && !(stdenv.targetPlatform.useLLVM or false)) ''
-      echo "--gcc-toolchain=${tools.clang-unwrapped.gcc}" >> $out/nix-support/cc-cflags
+    '' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && !(stdenv.targetPlatform.useLLVM or false)) ''
+      echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
     '';
   in {
 
@@ -42,10 +43,11 @@ let
       enablePolly = true;
     };
 
-    llvm-manpages = lowPrio (tools.llvm.override {
-      enableManpages = true;
-      python3 = pkgs.python3;  # don't use python-boot
-    });
+    # 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;
@@ -58,25 +60,18 @@ let
 
     libstdcxxClang = wrapCCWith rec {
       cc = tools.clang-unwrapped;
-      extraTools = [
-        libstdcxxHook
-      ];
+      # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper.
+      libcxx = null;
       extraPackages = [
         targetLlvmLibraries.compiler-rt
       ];
-      extraBuildCommands = ''
-          echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags
-          echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-cflags
-          echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags
-          echo "-L${gcc.cc.lib}/${targetConfig}/lib" >> $out/nix-support/cc-ldflags
-      '' + mkExtraBuildCommands cc;
+      extraBuildCommands = mkExtraBuildCommands cc;
     };
 
     libcxxClang = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
       extraPackages = [
-        targetLlvmLibraries.libcxx
         targetLlvmLibraries.libcxxabi
         targetLlvmLibraries.compiler-rt
       ];
@@ -103,14 +98,12 @@ let
         inherit (tools) bintools;
       };
       extraPackages = [
-        targetLlvmLibraries.libcxx
         targetLlvmLibraries.libcxxabi
         targetLlvmLibraries.compiler-rt
       ] ++ stdenv.lib.optionals (!stdenv.targetPlatform.isWasm) [
         targetLlvmLibraries.libunwind
       ];
       extraBuildCommands = ''
-        echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
         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
       '' + stdenv.lib.optionalString (!stdenv.targetPlatform.isWasm) ''
@@ -130,7 +123,6 @@ let
         targetLlvmLibraries.compiler-rt
       ];
       extraBuildCommands = ''
-        echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
         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
@@ -148,7 +140,6 @@ let
         targetLlvmLibraries.compiler-rt
       ];
       extraBuildCommands = ''
-        echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
         echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
@@ -164,7 +155,6 @@ let
       extraPackages = [ ];
       extraBuildCommands = ''
         echo "-nostartfiles" >> $out/nix-support/cc-cflags
-        echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
       '';
     };
 
diff --git a/pkgs/development/compilers/llvm/9/libc++/default.nix b/pkgs/development/compilers/llvm/9/libc++/default.nix
index f3081d1f269..cec6de61ca9 100644
--- a/pkgs/development/compilers/llvm/9/libc++/default.nix
+++ b/pkgs/development/compilers/llvm/9/libc++/default.nix
@@ -39,12 +39,9 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
-  linkCxxAbi = stdenv.isLinux;
-
-  setupHooks = [
-    ../../../../../build-support/setup-hooks/role.bash
-    ./setup-hook.sh
-  ];
+  passthru = {
+    isLLVM = true;
+  };
 
   meta = {
     homepage = "https://libcxx.llvm.org/";
diff --git a/pkgs/development/compilers/llvm/9/libc++/setup-hook.sh b/pkgs/development/compilers/llvm/9/libc++/setup-hook.sh
deleted file mode 100644
index 3a274aecc23..00000000000
--- a/pkgs/development/compilers/llvm/9/libc++/setup-hook.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-# See pkgs/build-support/setup-hooks/role.bash
-getHostRole
-
-linkCxxAbi="@linkCxxAbi@"
-export NIX_CXXSTDLIB_COMPILE${role_post}+=" -isystem @out@/include/c++/v1"
-export NIX_CXXSTDLIB_LINK${role_post}=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"
diff --git a/pkgs/development/compilers/llvm/rocm/clang.nix b/pkgs/development/compilers/llvm/rocm/clang.nix
new file mode 100644
index 00000000000..6bb23b77543
--- /dev/null
+++ b/pkgs/development/compilers/llvm/rocm/clang.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, python
+, llvm
+, clang-tools-extra_src ? null
+, lld
+
+, version
+, src
+}:
+
+stdenv.mkDerivation rec {
+  inherit version src;
+
+  pname = "clang";
+
+  nativeBuildInputs = [ cmake python ];
+
+  buildInputs = [ llvm ];
+
+  hardeningDisable = [ "all" ];
+
+  cmakeFlags = [
+    "-DLLVM_CMAKE_PATH=${llvm}/lib/cmake/llvm"
+    "-DLLVM_MAIN_SRC_DIR=${llvm.src}"
+    "-DCLANG_SOURCE_DIR=${src}"
+    "-DLLVM_ENABLE_RTTI=ON"
+  ];
+
+  VCSVersion = ''
+    #undef LLVM_REVISION
+    #undef LLVM_REPOSITORY
+    #undef CLANG_REVISION
+    #undef CLANG_REPOSITORY
+  '';
+
+  postUnpack = stdenv.lib.optionalString (!(isNull clang-tools-extra_src)) ''
+    ln -s ${clang-tools-extra_src} $sourceRoot/tools/extra
+  '';
+
+  # Rather than let cmake extract version information from LLVM or
+  # clang source control repositories, we generate the wanted
+  # `VCSVersion.inc` file ourselves and remove it from the
+  # depencencies of the `clangBasic` target.
+  preConfigure = ''
+    sed 's/  ''${version_inc}//' -i lib/Basic/CMakeLists.txt
+    sed 's|sys::path::parent_path(BundlerExecutable)|StringRef("${llvm}/bin")|' -i tools/clang-offload-bundler/ClangOffloadBundler.cpp
+    sed 's|\([[:space:]]*std::string Linker = \)getToolChain().GetProgramPath(getShortName())|\1"${lld}/bin/ld.lld"|' -i lib/Driver/ToolChains/AMDGPU.cpp
+    substituteInPlace lib/Driver/ToolChains/AMDGPU.h --replace ld.lld ${lld}/bin/ld.lld
+    sed 's|configure_file(AST/gen_ast_dump_json_test.py ''${LLVM_TOOLS_BINARY_DIR}/gen_ast_dump_json_test.py COPYONLY)||' -i test/CMakeLists.txt
+  '';
+
+  postConfigure = ''
+    mkdir -p lib/Basic
+    echo "$VCSVersion" > lib/Basic/VCSVersion.inc
+  '';
+
+  meta = with stdenv.lib; {
+    description = "ROCm fork of the clang C/C++/Objective-C/Objective-C++ LLVM compiler frontend";
+    homepage = "https://llvm.org/";
+    license = with licenses; [ ncsa ];
+    maintainers = with maintainers; [ danieldk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/rocm/default.nix b/pkgs/development/compilers/llvm/rocm/default.nix
new file mode 100644
index 00000000000..d29a2bda330
--- /dev/null
+++ b/pkgs/development/compilers/llvm/rocm/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, callPackage, wrapCCWith }:
+
+let
+  version = "3.7.0";
+  src = fetchFromGitHub {
+    owner = "RadeonOpenCompute";
+    repo = "llvm-project";
+    rev = "rocm-${version}";
+    sha256 = "02p0s041wwsi4q0dhs1sj5l6059y02s31az505h0f22agz3jnpfn";
+  };
+in rec {
+  clang = wrapCCWith rec {
+    cc = clang-unwrapped;
+    extraBuildCommands = ''
+      clang_version=`${cc}/bin/clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"`
+      rsrc="$out/resource-root"
+      mkdir "$rsrc"
+      ln -s "${cc}/lib/clang/$clang_version/include" "$rsrc"
+      echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
+      echo "--gcc-toolchain=${stdenv.cc.cc}" >> $out/nix-support/cc-cflags
+      echo "-Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags
+      rm $out/nix-support/add-hardening.sh
+      touch $out/nix-support/add-hardening.sh
+    '';
+  };
+
+  clang-unwrapped = callPackage ./clang.nix {
+    inherit lld llvm version;
+    src = "${src}/clang";
+  };
+
+  lld = callPackage ./lld.nix {
+    inherit llvm version;
+    src = "${src}/lld";
+  };
+
+  llvm = callPackage ./llvm.nix {
+    inherit version;
+    src = "${src}/llvm";
+  };
+}
diff --git a/pkgs/development/compilers/llvm/rocm/lld.nix b/pkgs/development/compilers/llvm/rocm/lld.nix
new file mode 100644
index 00000000000..052bfd1c62d
--- /dev/null
+++ b/pkgs/development/compilers/llvm/rocm/lld.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, cmake
+, libxml2
+, llvm
+
+, version
+, src
+}:
+
+stdenv.mkDerivation rec {
+  inherit version src;
+
+  pname = "lld";
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ libxml2 llvm ];
+
+  outputs = [ "out" "dev" ];
+
+  postInstall = ''
+    moveToOutput include "$dev"
+    moveToOutput lib "$dev"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "ROCm fork of the LLVM Linker";
+    homepage = "https://github.com/RadeonOpenCompute/llvm-project";
+    license = licenses.ncsa;
+    maintainers = with maintainers; [ danieldk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/compilers/llvm/rocm/llvm-outputs.patch b/pkgs/development/compilers/llvm/rocm/llvm-outputs.patch
new file mode 100644
index 00000000000..40096fa3497
--- /dev/null
+++ b/pkgs/development/compilers/llvm/rocm/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/pkgs/development/compilers/llvm/rocm/llvm.nix b/pkgs/development/compilers/llvm/rocm/llvm.nix
new file mode 100644
index 00000000000..909284a3e91
--- /dev/null
+++ b/pkgs/development/compilers/llvm/rocm/llvm.nix
@@ -0,0 +1,97 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, python3
+, libxml2
+, libffi
+, libbfd
+, ncurses
+, zlib
+, debugVersion ? false
+, enableManpages ? false
+, enableSharedLibraries ? true
+
+, version
+, src
+}:
+
+let
+  llvmNativeTarget =
+    if stdenv.isx86_64 then "X86"
+    else if stdenv.isAarch64 then "AArch64"
+    else throw "Unsupported ROCm LLVM platform";
+in stdenv.mkDerivation rec {
+  inherit src version;
+
+  pname = "rocm-llvm";
+
+  outputs = [ "out" "python" ]
+    ++ stdenv.lib.optional enableSharedLibraries "lib";
+
+  nativeBuildInputs = [ cmake python3 ];
+
+  buildInputs = [ libxml2 libffi ];
+
+  propagatedBuildInputs = [ ncurses zlib ];
+
+  cmakeFlags = with stdenv; [
+    "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
+    "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc
+    "-DLLVM_BUILD_TESTS=OFF"
+    "-DLLVM_ENABLE_FFI=ON"
+    "-DLLVM_ENABLE_RTTI=ON"
+    "-DLLVM_ENABLE_DUMP=ON"
+    "-DLLVM_TARGETS_TO_BUILD=AMDGPU;${llvmNativeTarget}"
+  ]
+  ++
+  stdenv.lib.optional
+    enableSharedLibraries
+    "-DLLVM_LINK_LLVM_DYLIB=ON"
+  ++ stdenv.lib.optionals enableManpages [
+    "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
+    "-DLLVM_BUILD_DOCS=ON"
+    "-DLLVM_ENABLE_SPHINX=ON"
+    "-DSPHINX_OUTPUT_MAN=ON"
+    "-DSPHINX_OUTPUT_HTML=OFF"
+    "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+  ];
+
+  postPatch = ''
+    substitute '${./llvm-outputs.patch}' ./llvm-outputs.patch --subst-var lib
+    patch -p1 < ./llvm-outputs.patch
+  '';
+
+  # hacky fix: created binaries need to be run before installation
+  preBuild = ''
+    mkdir -p $out/
+    ln -sv $PWD/lib $out
+  '';
+
+  postBuild = ''
+    rm -fR $out
+  '';
+
+  preCheck = ''
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib
+  '';
+
+  postInstall = ''
+    moveToOutput share/opt-viewer "$python"
+  ''
+  + stdenv.lib.optionalString enableSharedLibraries ''
+    moveToOutput "lib/libLLVM-*" "$lib"
+    moveToOutput "lib/libLLVM${stdenv.hostPlatform.extensions.sharedLibrary}" "$lib"
+    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
+      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM-" "$lib/lib/libLLVM-"
+  '';
+
+  passthru.src = src;
+
+  meta = with stdenv.lib; {
+    description = "ROCm fork of the LLVM compiler infrastructure";
+    homepage = "https://github.com/RadeonOpenCompute/llvm-project";
+    license = with licenses; [ ncsa ];
+    maintainers = with maintainers; [ danieldk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/compilers/mercury/default.nix b/pkgs/development/compilers/mercury/default.nix
index d534e2483d6..b9225cbd793 100644
--- a/pkgs/development/compilers/mercury/default.nix
+++ b/pkgs/development/compilers/mercury/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mercury";
-  version = "20.01.2";
+  version = "20.06";
 
   src = fetchurl {
     url    = "https://dl.mercurylang.org/release/mercury-srcdist-${version}.tar.gz";
-    sha256 = "084ml6kswgaqjgmib3gq7zjnqsimz3f35w13ff6z0dv4d9csmq4m";
+    sha256 = "1gkr9w8lsdzqykqwd3f1a1phsqv090648i14ilhv8jdg85frdimr";
   };
 
   buildInputs = [ gcc flex bison texinfo jdk erlang makeWrapper
diff --git a/pkgs/development/compilers/mit-scheme/default.nix b/pkgs/development/compilers/mit-scheme/default.nix
index b2fa8fba0dd..a3b320c384f 100644
--- a/pkgs/development/compilers/mit-scheme/default.nix
+++ b/pkgs/development/compilers/mit-scheme/default.nix
@@ -2,12 +2,11 @@
   enableX11 ? false, xlibsWrapper ? null }:
 
 let
-  version = "9.2";
+  version = "10.1.10";
   bootstrapFromC = ! (stdenv.isi686 || stdenv.isx86_64);
 
   arch = if      stdenv.isi686   then "-i386"
-         else if stdenv.isx86_64 then "-x86-64"
-         else                         "";
+         else                         "-x86-64";
 in
 stdenv.mkDerivation {
   name = if enableX11 then "mit-scheme-x11-${version}" else "mit-scheme-${version}";
@@ -20,14 +19,10 @@ stdenv.mkDerivation {
     if stdenv.isi686
     then fetchurl {
       url = "mirror://gnu/mit-scheme/stable.pkg/${version}/mit-scheme-${version}-i386.tar.gz";
-      sha256 = "1fmlpnhf5a75db93phajh4ysbdgrgl72v45lk3kznriprl0a7jc6";
-    } else if stdenv.isx86_64
-    then fetchurl {
+      sha256 = "117lf06vcdbaa5432hwqnskpywc6x8ai0gj99h480a4wzkp3vhy6";
+  } else fetchurl {
       url = "mirror://gnu/mit-scheme/stable.pkg/${version}/mit-scheme-${version}-x86-64.tar.gz";
-      sha256 = "1skzxxhr0iq96bf0j5m7mvf3i4sppfyfa6gpqn34mwgkw1fx8274";
-    } else fetchurl {
-      url = "mirror://gnu/mit-scheme/stable.pkg/${version}/mit-scheme-c-${version}.tar.gz";
-      sha256 = "0w5ib5vsidihb4hb6fma3sp596ykr8izagm57axvgd6lqzwicsjg";
+      sha256 = "1rljv6iddrbssm91c0nn08myj92af36hkix88cc6qwq38xsxs52g";
     };
 
   buildInputs = if enableX11 then [xlibsWrapper] else [];
diff --git a/pkgs/development/compilers/mono/generic.nix b/pkgs/development/compilers/mono/generic.nix
index e4d99dcec95..c510f372666 100644
--- a/pkgs/development/compilers/mono/generic.nix
+++ b/pkgs/development/compilers/mono/generic.nix
@@ -1,4 +1,5 @@
 { stdenv, fetchurl, bison, pkgconfig, glib, gettext, perl, libgdiplus, libX11, callPackage, ncurses, zlib, withLLVM ? false, cacert, Foundation, libobjc, python, version, sha256, autoconf, libtool, automake, cmake, which
+, gnumake42
 , enableParallelBuilding ? true
 , srcArchiveSuffix ? "tar.bz2"
 , extraPatches ? []
@@ -16,6 +17,7 @@ stdenv.mkDerivation rec {
     url = "https://download.mono-project.com/sources/mono/${pname}-${version}.${srcArchiveSuffix}";
   };
 
+  nativeBuildInputs = [ gnumake42 ];
   buildInputs =
     [ bison pkgconfig glib gettext perl libgdiplus libX11 ncurses zlib python autoconf libtool automake cmake which
     ]
diff --git a/pkgs/development/compilers/mozart/default.nix b/pkgs/development/compilers/mozart/default.nix
index b8951c8c800..025652c7492 100644
--- a/pkgs/development/compilers/mozart/default.nix
+++ b/pkgs/development/compilers/mozart/default.nix
@@ -9,7 +9,6 @@
 , llvmPackages_5
 , gmp
 , emacs
-, emacs25-nox
 , jre_headless
 , tcl
 , tk
@@ -61,7 +60,7 @@ in stdenv.mkDerivation rec {
     # gcc together as compilers and we need clang for the sources generation.
     # However, clang emits tons of warnings about gcc's atomic-base library.
     "-DCMAKE_CXX_FLAGS=-Wno-braced-scalar-init"
-  ] ++ lib.optional stdenv.isDarwin "-DCMAKE_FIND_FRAMEWORK=LAST";
+  ];
 
   fixupPhase = ''
     wrapProgram $out/bin/oz --set OZEMACS ${emacs}/bin/emacs
@@ -73,7 +72,7 @@ in stdenv.mkDerivation rec {
     llvmPackages_5.clang
     llvmPackages_5.clang-unwrapped
     gmp
-    emacs25-nox
+    emacs
     jre_headless
     tcl
     tk
diff --git a/pkgs/development/compilers/nextpnr/default.nix b/pkgs/development/compilers/nextpnr/default.nix
index 16470f16827..5dfefa61220 100644
--- a/pkgs/development/compilers/nextpnr/default.nix
+++ b/pkgs/development/compilers/nextpnr/default.nix
@@ -14,14 +14,14 @@ let
 in
 with stdenv; mkDerivation rec {
   pname = "nextpnr";
-  version = "2020.06.12";
+  version = "2020.08.22";
 
   srcs = [
     (fetchFromGitHub {
       owner  = "YosysHQ";
       repo   = "nextpnr";
-      rev    = "c9e7d1448eaa4644d18073316e30586f2cb1d75a";
-      sha256 = "13jyg9d8q9xs1gpb8mz315hcyi3npr4kbfi31x2laz4zmki6ibai";
+      rev    = "c8ecb8341ca766e1e7565cc2b652b63eaba67508";
+      sha256 = "1cf9ad7w5x452qdc6m9c3in6v9yzip3n1as978lbdh76f5mc00fv";
       name   = "nextpnr";
     })
     (fetchFromGitHub {
@@ -50,7 +50,7 @@ with stdenv; mkDerivation rec {
       "-DBUILD_TESTS=ON"
       "-DICEBOX_ROOT=${icestorm}/share/icebox"
       "-DTRELLIS_INSTALL_PREFIX=${trellis}"
-      "-DPYTRELLIS_LIBDIR=${trellis}/lib/trellis"
+      "-DTRELLIS_LIBDIR=${trellis}/lib/trellis"
       "-DUSE_OPENMP=ON"
       # warning: high RAM usage
       "-DSERIALIZE_CHIPDB=OFF"
diff --git a/pkgs/development/compilers/nim/NIM_CONFIG_DIR.patch b/pkgs/development/compilers/nim/NIM_CONFIG_DIR.patch
new file mode 100644
index 00000000000..61e05b791cf
--- /dev/null
+++ b/pkgs/development/compilers/nim/NIM_CONFIG_DIR.patch
@@ -0,0 +1,23 @@
+diff --git a/compiler/nimconf.nim b/compiler/nimconf.nim
+index a470179bd..73cfa1a23 100644
+--- a/compiler/nimconf.nim
++++ b/compiler/nimconf.nim
+@@ -225,10 +225,15 @@ proc getUserConfigPath*(filename: RelativeFile): AbsoluteFile =
+ proc getSystemConfigPath*(conf: ConfigRef; filename: RelativeFile): AbsoluteFile =
+   # try standard configuration file (installation did not distribute files
+   # the UNIX way)
+-  let p = getPrefixDir(conf)
+-  result = p / RelativeDir"config" / filename
++  let
++    prefix = getPrefixDir(conf)
++    env = getEnv("NIM_CONFIG_PATH")
++  if env != "":
++    result = env.toAbsoluteDir / filename
++  else:
++    result = prefix / RelativeDir"config" / filename
+   when defined(unix):
+-    if not fileExists(result): result = p / RelativeDir"etc/nim" / filename
++    if not fileExists(result): result = prefix / RelativeDir"etc/nim" / filename
+     if not fileExists(result): result = AbsoluteDir"/etc/nim" / filename
+
+ proc loadConfigs*(cfg: RelativeFile; cache: IdentCache; conf: ConfigRef) =
diff --git a/pkgs/development/compilers/nim/default.nix b/pkgs/development/compilers/nim/default.nix
index 9fa2270b1dd..8ac9f8e048c 100644
--- a/pkgs/development/compilers/nim/default.nix
+++ b/pkgs/development/compilers/nim/default.nix
@@ -1,69 +1,255 @@
-# based on https://github.com/nim-lang/Nim/blob/v0.18.0/.travis.yml
+# https://nim-lang.github.io/Nim/packaging.html
 
-{ stdenv, lib, fetchurl, makeWrapper, openssl, pcre, readline,
-  boehmgc, sfml, sqlite }:
-
-stdenv.mkDerivation rec {
-  pname = "nim";
-  version = "1.2.4";
+{ stdenv, lib, fetchgit, fetchurl, makeWrapper, gdb, openssl, pcre, readline
+, boehmgc, sqlite, nim-unwrapped, nim-stdlib, nim }:
 
+let
+  version = "1.2.6";
   src = fetchurl {
-    url = "https://nim-lang.org/download/${pname}-${version}.tar.xz";
-    sha256 = "0dnn60slvp3ynlx3zhv3cjkanv8zglljxws0db8g0rdyz8r8zwgf";
+    url = "https://nim-lang.org/download/nim-${version}.tar.xz";
+    sha256 = "0zk5qzxayqjw7kq6p92j4008g9bbyilyymhdc5xq9sln5rqym26z";
   };
 
-  enableParallelBuilding = true;
-
-  NIX_LDFLAGS = "-lcrypto -lpcre -lreadline -lgc -lsqlite3";
-
-  # we could create a separate derivation for the "written in c" version of nim
-  # used for bootstrapping, but koch insists on moving the nim compiler around
-  # as part of building it, so it cannot be read-only
-
-  nativeBuildInputs = [
-    makeWrapper
-  ];
-
-  buildInputs = [
-    openssl pcre readline boehmgc sfml sqlite
-  ];
-
-  buildPhase = ''
-    runHook preBuild
-
-    # build.sh wants to write to $HOME/.cache
-    HOME=$TMPDIR
-    sh build.sh
-    ./bin/nim c koch
-    ./koch boot  -d:release \
-                 -d:useGnuReadline \
-                 ${lib.optionals (stdenv.isDarwin || stdenv.isLinux) "-d:nativeStacktrace"}
-    ./koch tools -d:release
-
-    runHook postBuild
-  '';
+  meta = with lib; {
+    description = "Statically typed, imperative programming language";
+    homepage = "https://nim-lang.org/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ehmry ];
+  };
 
-  installPhase = ''
-    runHook preInstall
+  parseCpu = platform:
+    with platform;
+    # Derive a Nim CPU identifier
+    if isAarch32 then
+      "arm"
+    else if isAarch64 then
+      "arm64"
+    else if isAlpha then
+      "alpha"
+    else if isAvr then
+      "avr"
+    else if isMips && is32bit then
+      "mips"
+    else if isMips && is64bit then
+      "mips64"
+    else if isMsp430 then
+      "msp430"
+    else if isPowerPC && is32bit then
+      "powerpc"
+    else if isPowerPC && is64bit then
+      "powerpc64"
+    else if isRiscV && is64bit then
+      "riscv64"
+    else if isSparc then
+      "sparc"
+    else if isx86_32 then
+      "i386"
+    else if isx86_64 then
+      "amd64"
+    else
+      abort "no Nim CPU support known for ${config}";
+
+  parseOs = platform:
+    with platform;
+    # Derive a Nim OS identifier
+    if isAndroid then
+      "Android"
+    else if isDarwin then
+      "MacOSX"
+    else if isFreeBSD then
+      "FreeBSD"
+    else if isGenode then
+      "Genode"
+    else if isLinux then
+      "Linux"
+    else if isNetBSD then
+      "NetBSD"
+    else if isNone then
+      "Standalone"
+    else if isOpenBSD then
+      "OpenBSD"
+    else if isWindows then
+      "Windows"
+    else if isiOS then
+      "iOS"
+    else
+      abort "no Nim OS support known for ${config}";
+
+  parsePlatform = p: {
+    cpu = parseCpu p;
+    os = parseOs p;
+  };
 
-    install -Dt $out/bin bin/* koch
-    ./koch install $out
-    mv $out/nim/bin/* $out/bin/ && rmdir $out/nim/bin
-    mv $out/nim/*     $out/     && rmdir $out/nim
+  nimHost = parsePlatform stdenv.hostPlatform;
+  nimTarget = parsePlatform stdenv.targetPlatform;
+
+  wrapperInputs = rec {
+
+    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";
+      };
+
+      enableParallelBuilding = true;
+
+      installPhase = ''
+        runHook preInstall
+        install -Dt $out/bin bin/nim
+        runHook postInstall
+      '';
+    };
+
+    unwrapped = stdenv.mkDerivation {
+      # https://nim-lang.github.io/Nim/packaging.html
+      pname = "nim-unwrapped";
+      inherit version src;
+
+      buildInputs = [ boehmgc openssl pcre readline sqlite ];
+
+      patches = [
+        ./NIM_CONFIG_DIR.patch
+        # Override compiler configuration via an environmental variable
+
+        ./nixbuild.patch
+        # Load libraries at runtime by absolute path
+      ];
+
+      configurePhase = ''
+        runHook preConfigure
+        cp ${bootstrap}/bin/nim bin/
+        echo 'define:nixbuild' >> config/nim.cfg
+        runHook postConfigure
+      '';
+
+      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 tools $kochArgs --parallelBuild:$NIX_BUILD_CORES
+        runHook postBuild
+      '';
+
+      installPhase = ''
+        runHook preInstall
+        install -Dt $out/bin bin/*
+        runHook postInstall
+      '';
+
+      inherit meta;
+    };
+
+    stdlib = stdenv.mkDerivation {
+      pname = "nim-stdlib";
+      inherit (nim-unwrapped) version src patches;
+
+      dontConfigure = true;
+      dontBuild = true;
+
+      installPhase = ''
+        runHook preInstall
+        touch bin/nim
+        ./install.sh $TMPDIR
+        cp -r $TMPDIR/nim/lib $out
+        runHook postInstall
+      '';
+
+      meta = meta // {
+        description = meta.description + " (standard library)";
+      };
+    };
+  };
 
+  wrapped = let
+    nim = nim-unwrapped;
+    inherit (stdenv) targetPlatform;
+  in stdenv.mkDerivation {
+    name = "${targetPlatform.config}-nim-wrapper-${nim.version}";
+    inherit (nim) version;
+    preferLocalBuild = true;
+
+    nativeBuildInputs = [ makeWrapper ];
+
+    unpackPhase = ''
+      runHook preUnpack
+      tar xf ${nim.src} nim-$version/config/nim.cfg
+      cd nim-$version
+      runHook postUnpack
+    '';
+
+    dontConfigure = true;
+
+    wrapperArgs = [
+      "--prefix PATH : ${lib.makeBinPath [ stdenv.cc gdb ]}:${
+        placeholder "out"
+      }/bin"
+      "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ stdenv.cc.libc openssl ]}"
+      "--set NIM_CONFIG_PATH ${placeholder "out"}/etc/nim"
+    ];
+
+    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
+
+        makeWrapper ${nim}/bin/nim $out/bin/${targetPlatform.config}-nim \
+          $wrapperArgs \
+          --set NIX_HARDENING_ENABLE "''${NIX_HARDENING_ENABLE/fortify}" \
+          --add-flags --lib:${nim-stdlib}
+        ln -s $out/bin/${targetPlatform.config}-nim $out/bin/nim
+
+        runHook postBuild
+                '';
     # Fortify hardening appends -O2 to gcc flags which is unwanted for unoptimized nim builds.
-    wrapProgram $out/bin/nim \
-      --run 'NIX_HARDENING_ENABLE=''${NIX_HARDENING_ENABLE/fortify/}' \
-      --suffix PATH : ${lib.makeBinPath [ stdenv.cc ]}
 
-    runHook postInstall
-  '';
+    dontInstall = true;
+
+    meta = meta // {
+      description = nim.meta.description
+        + " (${targetPlatform.config} wrapper)";
+      platforms = lib.platforms.unix;
+    };
 
-  meta = with stdenv.lib; {
-    description = "Statically typed, imperative programming language";
-    homepage = "https://nim-lang.org/";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ehmry ];
-    platforms = with platforms; linux ++ darwin; # arbitrary
   };
-}
+
+in wrapped // wrapperInputs
diff --git a/pkgs/development/compilers/nim/nixbuild.patch b/pkgs/development/compilers/nim/nixbuild.patch
new file mode 100644
index 00000000000..bdfd04744e1
--- /dev/null
+++ b/pkgs/development/compilers/nim/nixbuild.patch
@@ -0,0 +1,51 @@
+commit 164ba50fc74b980f77047080b2ae1ea099ae9b27
+Author: Emery Hemingway <ehmry@posteo.net>
+Date:   Mon Sep 7 14:09:22 2020 +0200
+
+    Load libaries by absolute path on NixOS
+    
+    If "nixbuild" is defined then choose dynamic runtime libraries by
+    searching $NIX_LDFLAGS at compile-time.
+    
+    Fix #15194
+
+diff --git a/lib/pure/dynlib.nim b/lib/pure/dynlib.nim
+index f31ae94dd..debed9c07 100644
+--- a/lib/pure/dynlib.nim
++++ b/lib/pure/dynlib.nim
+@@ -56,6 +56,9 @@
+ 
+ import strutils
+ 
++when defined(nixbuild):
++  import os
++
+ type
+   LibHandle* = pointer ## a handle to a dynamically loaded library
+ 
+@@ -95,6 +98,25 @@ proc libCandidates*(s: string, dest: var seq[string]) =
+       libCandidates(prefix & middle & suffix, dest)
+   else:
+     add(dest, s)
++  when defined(nixbuild):
++    # Nix doesn't have a global library directory so
++    # load libraries using an absolute path if one
++    # can be derived from NIX_LDFLAGS.
++    #
++    # During Nix/NixOS packaging the line "define:nixbuild"
++    # should be appended to the ../../config/nim.cfg file
++    # to enable this behavior by default.
++    #
++    var libDirs = split(getEnv("LD_LIBRARY_PATH"), ':')
++    for flag in split(getEnv("NIX_LDFLAGS")):
++      if flag.startsWith("-L"):
++        libDirs.add(flag[2..flag.high])
++    for lib in dest:
++      for dir in libDirs:
++        let abs = dir / lib
++        if existsFile(abs):
++          dest = @[abs]
++          return
+ 
+ proc loadLibPattern*(pattern: string, globalSymbols = false): LibHandle =
+   ## loads a library with name matching `pattern`, similar to what `dlimport`
diff --git a/pkgs/development/compilers/ocaml/4.11.nix b/pkgs/development/compilers/ocaml/4.11.nix
index 410e4ee713e..afda8592818 100644
--- a/pkgs/development/compilers/ocaml/4.11.nix
+++ b/pkgs/development/compilers/ocaml/4.11.nix
@@ -1,6 +1,6 @@
 import ./generic.nix {
   major_version = "4";
   minor_version = "11";
-  patch_version = "0+beta1";
-  sha256 = "1xhkwprbnd3wp6bi3k74f42l1mff1ngn7gl4rgad9dk4ly0yzfdr";
+  patch_version = "1";
+  sha256 = "0k4521c0p10c5ams6vjv5qkkjhmpkb0bfn04llcz46ah0f3r2jpa";
 }
diff --git a/pkgs/development/compilers/ocaml/generic.nix b/pkgs/development/compilers/ocaml/generic.nix
index f2b61ab700d..1558756e16b 100644
--- a/pkgs/development/compilers/ocaml/generic.nix
+++ b/pkgs/development/compilers/ocaml/generic.nix
@@ -10,20 +10,22 @@ let
   safeX11 = stdenv: !(stdenv.isAarch32 || stdenv.isMips);
 in
 
-{ stdenv, fetchurl, ncurses, buildEnv
+{ stdenv, fetchurl, ncurses, buildEnv, libunwind
 , libX11, xorgproto, useX11 ? safeX11 stdenv && !stdenv.lib.versionAtLeast version "4.09"
 , aflSupport ? false
 , flambdaSupport ? false
+, spaceTimeSupport ? false
 }:
 
 assert useX11 -> !stdenv.isAarch32 && !stdenv.isMips;
 assert aflSupport -> stdenv.lib.versionAtLeast version "4.05";
 assert flambdaSupport -> stdenv.lib.versionAtLeast version "4.03";
+assert spaceTimeSupport -> stdenv.lib.versionAtLeast version "4.04";
 
 let
    useNativeCompilers = !stdenv.isMips;
    inherit (stdenv.lib) optional optionals optionalString;
-   name = "ocaml${optionalString aflSupport "+afl"}${optionalString flambdaSupport "+flambda"}-${version}";
+   name = "ocaml${optionalString aflSupport "+afl"}${optionalString spaceTimeSupport "+spacetime"}${optionalString flambdaSupport "+flambda"}-${version}";
 in
 
 let
@@ -53,11 +55,13 @@ stdenv.mkDerivation (args // {
       [ "-x11lib" x11lib "-x11include" x11inc ])
   ++ optional aflSupport (flags "--with-afl" "-afl-instrument")
   ++ optional flambdaSupport (flags "--enable-flambda" "-flambda")
+  ++ optional spaceTimeSupport (flags "--enable-spacetime" "-spacetime")
   ;
 
   buildFlags = [ "world" ] ++ optionals useNativeCompilers [ "bootstrap" "world.opt" ];
   buildInputs = optional (!stdenv.lib.versionAtLeast version "4.07") ncurses
     ++ optionals useX11 [ libX11 xorgproto ];
+  propagatedBuildInputs = optional spaceTimeSupport libunwind;
   installTargets = [ "install" ] ++ optional useNativeCompilers "installopt";
   preConfigure = optionalString (!stdenv.lib.versionAtLeast version "4.04") ''
     CAT=$(type -tp cat)
diff --git a/pkgs/development/compilers/openjdk/11.nix b/pkgs/development/compilers/openjdk/11.nix
index 9edb70074c7..5011fd39e2f 100644
--- a/pkgs/development/compilers/openjdk/11.nix
+++ b/pkgs/development/compilers/openjdk/11.nix
@@ -10,16 +10,17 @@
 
 let
   major = "11";
-  update = ".0.7";
-  build = "ga";
+  minor = "0";
+  update = "8";
+  build = "10";
 
   openjdk = stdenv.mkDerivation rec {
     pname = "openjdk" + lib.optionalString headless "-headless";
-    version = "${major}${update}-${build}";
+    version = "${major}.${minor}.${update}+${build}";
 
     src = fetchurl {
       url = "http://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/jdk-${version}.tar.gz";
-      sha256 = "14daacng9ndxf4kmvsn7nracwfiwwmw5rha8rkk3723pfk9g8q7p";
+      sha256 = "1sdncn1bk4h8xxfnmrl1125maqy6mc0v0y1dyifwsa04wasj9hbz";
     };
 
     nativeBuildInputs = [ pkgconfig autoconf ];
@@ -47,6 +48,7 @@ let
 
     configureFlags = [
       "--with-boot-jdk=${openjdk11-bootstrap.home}"
+      "--with-version-pre="
       "--enable-unlimited-crypto"
       "--with-native-debug-symbols=internal"
       "--with-libjpeg=system"
diff --git a/pkgs/development/compilers/openjdk/12.nix b/pkgs/development/compilers/openjdk/12.nix
index 16c2fd766bc..3576608e13e 100644
--- a/pkgs/development/compilers/openjdk/12.nix
+++ b/pkgs/development/compilers/openjdk/12.nix
@@ -55,6 +55,7 @@ let
 
     configureFlags = [
       "--with-boot-jdk=${openjdk11.home}"
+      "--with-version-pre="
       "--enable-unlimited-crypto"
       "--with-native-debug-symbols=internal"
       "--with-libjpeg=system"
diff --git a/pkgs/development/compilers/openjdk/13.nix b/pkgs/development/compilers/openjdk/13.nix
index b3842ba7cad..31ffb4baf01 100644
--- a/pkgs/development/compilers/openjdk/13.nix
+++ b/pkgs/development/compilers/openjdk/13.nix
@@ -55,6 +55,7 @@ let
 
     configureFlags = [
       "--with-boot-jdk=${openjdk13-bootstrap.home}"
+      "--with-version-pre="
       "--enable-unlimited-crypto"
       "--with-native-debug-symbols=internal"
       "--with-libjpeg=system"
diff --git a/pkgs/development/compilers/openjdk/8.nix b/pkgs/development/compilers/openjdk/8.nix
index 828df621b6f..f1379c209b3 100644
--- a/pkgs/development/compilers/openjdk/8.nix
+++ b/pkgs/development/compilers/openjdk/8.nix
@@ -19,8 +19,8 @@ let
     aarch64-linux = "aarch64";
   }.${stdenv.system} or (throw "Unsupported platform");
 
-  update = "242";
-  build = "b08";
+  update = "265";
+  build = if stdenv.isAarch64 then "b01" else "ga";
   baseurl = if stdenv.isAarch64 then "https://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah"
             else "https://hg.openjdk.java.net/jdk8u/jdk8u";
   repover = lib.optionalString stdenv.isAarch64 "aarch64-shenandoah-"
@@ -29,50 +29,50 @@ let
   jdk8 = fetchurl {
              name = "jdk8-${repover}.tar.gz";
              url = "${baseurl}/archive/${repover}.tar.gz";
-             sha256 = if stdenv.isAarch64 then "0qpmr267qcxhmw398zbl1axd161yxn4k4hfz1jlxlmdvg70p7h90"
-                      else "1crs4hmzmgm6fkwfq0d3xz9lph0nd33fngrqv2rz1mkkqcrjx18z";
+             sha256 = if stdenv.isAarch64 then "1a2adw51af064rzlngsdlhs9gl47h3lv6dzvr8swqgl2n93nlbxa"
+                      else "02j1nbf3rxl581fqzc6i3ri6wwxx1dhkmj5klkh5xlp8dkhclr30";
           };
   langtools = fetchurl {
              name = "langtools-${repover}.tar.gz";
              url = "${baseurl}/langtools/archive/${repover}.tar.gz";
-             sha256 = if stdenv.isAarch64 then "1rhhi4kgmxvnyl3ic5p008p1n7zyji5nw99blm1lr5fw7ry7df24"
-                      else "1aaxd1rl7dlk4kxdivvqvripsbn0d5vny0jvjksycsm97vrfiry4";
+             sha256 = if stdenv.isAarch64 then "0hfrbz7421s2barfrfp0fvmh45iksw2zx1z4ykjg3giv8zbmswfm"
+                      else "1r2adp7sn3y45rb5h059qygz18bgmkqr2g2jc9mpzskl5vwsqiw4";
           };
   hotspot = fetchurl {
              name = "hotspot-${repover}.tar.gz";
              url = "${baseurl}/hotspot/archive/${repover}.tar.gz";
-             sha256 = if stdenv.isAarch64 then "0lphrhjqlavd6qlkh7h4sd2bqf5gd0cchkcnvy87703fbd7gy5ii"
-                      else "18i4if16zikgda9k5bgqyx0p2104db23zlnclq512178z0p9yycb";
+             sha256 = if stdenv.isAarch64 then "0g5h74snfl2dj2xwlvb5hgfbqmnbhxax68axadz11mq7r2bhd0lk"
+                      else "10xj8qr499r6nla74bjh4dmq7pkj63iircijk1wyv9xz5v777pcc";
           };
   corba = fetchurl {
              name = "corba-${repover}.tar.gz";
              url = "${baseurl}/corba/archive/${repover}.tar.gz";
-             sha256 = if stdenv.isAarch64 then "18h0v566v420d00na6x4jrs41v4aa39byk15fi8k6dcn0dmirhvg"
-                      else "1298k8p2dsj7xc4h2ayk5nl4ssrcgncn06ysyqrmnwrb8gj8s1w4";
+             sha256 = if stdenv.isAarch64 then "0wfqrpr5m4gnavgsl6zcy2l3c7sgn3yl7yhp2crh9icp44ld2cj9"
+                      else "0lk4jimrafgphffsj5yyyhl6pib0y5xxqcr09bgr2w8sjkp4s04s";
           };
   jdk = fetchurl {
              name = "jdk-${repover}.tar.gz";
              url = "${baseurl}/jdk/archive/${repover}.tar.gz";
-             sha256 = if stdenv.isAarch64 then "0xxy7rkj8ah263nnzkd4mg9dai5qix3l9cyilm47dig5hv7g8aq0"
-                      else "0vqlbks3cy3cnmnrnhbjkqinvp8bcy2h96xvx81cvlza4s2hszvz";
+             sha256 = if stdenv.isAarch64 then "0ss49bv2dzb9vkabpv1ag04wli5722p0a8gqkzqmzw4nj67snfqw"
+                      else "0anbp4vq8bzhqsqxlgjd0dx0irf57x4i5ddbpljl36vy2pi9xsm7";
           };
   jaxws = fetchurl {
              name = "jaxws-${repover}.tar.gz";
              url = "${baseurl}/jaxws/archive/${repover}.tar.gz";
-             sha256 = if stdenv.isAarch64 then "0ajqm2l9g5w5ag5s4vl4ldpbm99pqa6d342hrzvv7psqn3zf6ar5"
-                      else "1wg9fbiz09arj0llavnzrmbhw8nx0dw8dcjkrzxw78rj1cadflzc";
+             sha256 = if stdenv.isAarch64 then "1nwn6mz38app6pk5f1x3vya1x9qfckyl7z6bi62k6mj2c72ikfh5"
+                      else "113d5nx2mp30m6xy2m2wh0nixk45q8abimlszkiq09w1w1ckzpba";
           };
   jaxp = fetchurl {
              name = "jaxp-${repover}.tar.gz";
              url = "${baseurl}/jaxp/archive/${repover}.tar.gz";
-             sha256 = if stdenv.isAarch64 then "03zjh6xvza05abxz9d9j2w9xndw9n07f8lrn6dymj7f4imals831"
-                      else "1i5xrk8r8pcgnc68zrgp3hd1a1nzcm99swpmdnlb424qlg5nnrcf";
+             sha256 = if stdenv.isAarch64 then "1rhgbwvp7xls7r3f5jm69dw7x521vamchv917dwiz1byvm2bwn7s"
+                      else "0nvqidjssmamcrchq15cg3lfv5v3cnrw05a4h20xmhlpgb9im0vj";
           };
   nashorn = fetchurl {
              name = "nashorn-${repover}.tar.gz";
              url = "${baseurl}/nashorn/archive/${repover}.tar.gz";
-             sha256 = if stdenv.isAarch64 then "0n809w264ndxksva9c81x0m1fsyg8c627w571f72xxxl9c1bnrmp"
-                      else "0qlxaz7sriy709vcyzz48s2v4p5h4d31my33whip018c4j5gkfqq";
+             sha256 = if stdenv.isAarch64 then "14gp8q6jw1hq2wlmcalfwn1kgmnq5w9svqnbjww20f25phxkicij"
+                      else "0fm9ldps7ayk7r3wjqiyxp1s6hvi242kl7f92ydkmlxqyfajx60a";
           };
   openjdk8 = stdenv.mkDerivation {
     pname = "openjdk" + lib.optionalString headless "-headless";
diff --git a/pkgs/development/compilers/openjdk/default.nix b/pkgs/development/compilers/openjdk/default.nix
index 063976d8765..e51e5540267 100644
--- a/pkgs/development/compilers/openjdk/default.nix
+++ b/pkgs/development/compilers/openjdk/default.nix
@@ -10,7 +10,7 @@
 
 let
   major = "14";
-  update = ".0.1";
+  update = ".0.2";
   build = "-ga";
 
   openjdk = stdenv.mkDerivation rec {
@@ -19,7 +19,7 @@ let
 
     src = fetchurl {
       url = "http://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/jdk-${version}.tar.gz";
-      sha256 = "0ic7dcrzk62jc65yrshs6xlclmsha7z52bia5s2bkllw1zpmdmip";
+      sha256 = "1s1pc6ihzf0awp4hbaqfxmbica0hnrg8nr7s0yd2hfn7nan8xmf3";
     };
 
     nativeBuildInputs = [ pkgconfig autoconf ];
diff --git a/pkgs/development/compilers/openjdk/openjfx/14.nix b/pkgs/development/compilers/openjdk/openjfx/14.nix
index 04bb1fa5627..22b5be7dc69 100644
--- a/pkgs/development/compilers/openjdk/openjfx/14.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/14.nix
@@ -96,7 +96,7 @@ in makePackage {
   postFixup = ''
     # Remove references to bootstrap.
     find "$out" -name \*.so | while read lib; do
-      new_refs="$(patchelf --print-rpath "$lib" | sed -E 's,:?${openjdk11_headless}[^:]*,,')"
+      new_refs="$(patchelf --print-rpath "$lib" | sed -E 's,:?${lib.escape ["+"] openjdk11_headless.outPath}[^:]*,,')"
       patchelf --set-rpath "$new_refs" "$lib"
     done
   '';
diff --git a/pkgs/development/compilers/oraclejdk/jdk11-linux.nix b/pkgs/development/compilers/oraclejdk/jdk11-linux.nix
new file mode 100644
index 00000000000..b73270e8dd8
--- /dev/null
+++ b/pkgs/development/compilers/oraclejdk/jdk11-linux.nix
@@ -0,0 +1,54 @@
+{ stdenv
+, requireFile
+, xorg
+, zlib
+, freetype
+, alsaLib
+, setJavaClassPath
+}:
+
+let result = stdenv.mkDerivation rec {
+  pname = "oraclejdk";
+  version = "11.0.8";
+
+  src = requireFile {
+    name = "jdk-${version}_linux-x64_bin.tar.gz";
+    url = "https://www.oracle.com/java/technologies/javase-jdk11-downloads.html";
+    sha256 = "6390878c91e29bad7b2483eb0b470620bd145269600f3b6a9d65724e6f83b6fd";
+  };
+
+  installPhase = ''
+    mv ../$sourceRoot $out
+
+    mkdir -p $out/nix-support
+    printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
+
+    # Set JAVA_HOME automatically.
+    cat <<EOF >> $out/nix-support/setup-hook
+    if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
+    EOF
+  '';
+
+  postFixup = ''
+    rpath="$out/lib/jli:$out/lib/server:$out/lib:${stdenv.lib.strings.makeLibraryPath [ zlib xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXrender freetype alsaLib]}"
+
+    for f in $(find $out -name "*.so") $(find $out -type f -perm -0100); do
+      patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$f" || true
+      patchelf --set-rpath   "$rpath"                                    "$f" || true
+    done
+
+    for f in $(find $out -name "*.so") $(find $out -type f -perm -0100); do
+      if ldd "$f" | fgrep 'not found'; then echo "in file $f"; fi
+    done
+  '';
+
+  passthru.jre = result;
+  passthru.home = result;
+
+  dontStrip = true; # See: https://github.com/NixOS/patchelf/issues/10
+
+  meta = with stdenv.lib; {
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+  };
+}; in result
diff --git a/pkgs/development/compilers/oraclejdk/jdk14-linux.nix b/pkgs/development/compilers/oraclejdk/jdk14-linux.nix
new file mode 100644
index 00000000000..427c7cedad1
--- /dev/null
+++ b/pkgs/development/compilers/oraclejdk/jdk14-linux.nix
@@ -0,0 +1,54 @@
+{ stdenv
+, requireFile
+, xorg
+, zlib
+, freetype
+, alsaLib
+, setJavaClassPath
+}:
+
+let result = stdenv.mkDerivation rec {
+  pname = "oraclejdk";
+  version = "14.0.2";
+
+  src = requireFile {
+    name = "jdk-${version}_linux-x64_bin.tar.gz";
+    url = "https://www.oracle.com/java/technologies/javase-jdk14-downloads.html";
+    sha256 = "cb811a86926cc0f529d16bec7bd2e25fb73e75125bbd1775cdb9a96998593dde";
+  };
+
+  installPhase = ''
+    mv ../$sourceRoot $out
+
+    mkdir -p $out/nix-support
+    printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
+
+    # Set JAVA_HOME automatically.
+    cat <<EOF >> $out/nix-support/setup-hook
+    if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
+    EOF
+  '';
+
+  postFixup = ''
+    rpath="$out/lib/jli:$out/lib/server:$out/lib:${stdenv.lib.strings.makeLibraryPath [ stdenv.cc.cc zlib xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXrender freetype alsaLib]}"
+
+    for f in $(find $out -name "*.so") $(find $out -type f -perm -0100); do
+      patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$f" || true
+      patchelf --set-rpath   "$rpath"                                    "$f" || true
+    done
+
+    for f in $(find $out -name "*.so") $(find $out -type f -perm -0100); do
+      if ldd "$f" | fgrep 'not found'; then echo "in file $f"; fi
+    done
+  '';
+
+  passthru.jre = result;
+  passthru.home = result;
+
+  dontStrip = true; # See: https://github.com/NixOS/patchelf/issues/10
+
+  meta = with stdenv.lib; {
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+  };
+}; in result
diff --git a/pkgs/development/compilers/oraclejdk/jdk8-linux.nix b/pkgs/development/compilers/oraclejdk/jdk8-linux.nix
index 3c4a2b7850f..fdea10dcd7e 100644
--- a/pkgs/development/compilers/oraclejdk/jdk8-linux.nix
+++ b/pkgs/development/compilers/oraclejdk/jdk8-linux.nix
@@ -1,10 +1,10 @@
 import ./jdk-linux-base.nix {
   productVersion = "8";
-  patchVersion = "251";
-  sha256.i686-linux = "0c6d25c09459e435570204f1a22a1cb765ce5d62c5bced92c9a9546b7be337f2";
-  sha256.x86_64-linux = "777a8d689e863275a647ae52cb30fd90022a3af268f34fc5b9867ce32f1b374e";
-  sha256.armv7l-linux = "f1b0c979e1b61ec52ebd5e1d0b754d7681d8623b09ac90c69718a553ef9b0cd1";
-  sha256.aarch64-linux = "58baeaab7da97dd5a6b02ad2dcd77c14b3b6ba014029ee67dbc2bd5f0fa98d1b";
+  patchVersion = "261";
+  sha256.i686-linux = "1bl12hd5i53m8d4j8rwkk3bavmzw0ndr88ch5lf5syi7vs5pfjpm";
+  sha256.x86_64-linux = "0d7a92csz8ws5h0pzqmrxq3sz286s57vw0dqq3ciwsqz14df012s";
+  sha256.armv7l-linux = "13dih7zyfgj90bkhnfxhpm88d9kqqrj6w5rzpidmxrjwrsnlndp9";
+  sha256.aarch64-linux = "0zzhs4pcnjss2561b8zrrnacpkb8p49ca0lpdw7hzgsjjj1y146n";
   jceName = "jce_policy-8.zip";
-  sha256JCE = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";
+  sha256JCE = "19n5wadargg3v8x76r7ayag6p2xz1bwhrgdzjs9f4i6fvxz9jr4w";
 }
diff --git a/pkgs/development/compilers/polyml/default.nix b/pkgs/development/compilers/polyml/default.nix
index 65767346537..7b15a988e38 100644
--- a/pkgs/development/compilers/polyml/default.nix
+++ b/pkgs/development/compilers/polyml/default.nix
@@ -2,20 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "polyml";
-  version = "5.8";
+  version = "5.8.1";
 
   prePatch = stdenv.lib.optionalString stdenv.isDarwin ''
     substituteInPlace configure.ac --replace stdc++ c++
   '';
 
-  patches = [
-    (fetchpatch {
-      name = "new-libffi-FFI_SYSV.patch";
-      url = "https://github.com/polyml/polyml/commit/ad32de7f181acaffaba78d5c3d9e5aa6b84a741c.patch";
-      sha256 = "007q3r2h9kfh3c1nv0dyhipmak44q468ab9bwnz4kk4a2dq76n8v";
-    })
-  ];
-
   buildInputs = [ libffi gmp ];
 
   nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin autoreconfHook;
@@ -30,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "polyml";
     repo = "polyml";
     rev = "v${version}";
-    sha256 = "1s7q77bivppxa4vd7gxjj5dbh66qnirfxnkzh1ql69rfx1c057n3";
+    sha256 = "0gcx2fjiwsiazlyfhm7zlrd563blc4fy9w2mspib9divbavaxin6";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/compilers/rgbds/default.nix b/pkgs/development/compilers/rgbds/default.nix
index 6fc21a0ffd1..d1a9a7742a8 100644
--- a/pkgs/development/compilers/rgbds/default.nix
+++ b/pkgs/development/compilers/rgbds/default.nix
@@ -6,12 +6,12 @@
 
 stdenv.mkDerivation rec {
   pname = "rgbds";
-  version = "0.4.0";
+  version = "0.4.1";
   src = fetchFromGitHub {
     owner = "rednex";
     repo = "rgbds";
     rev = "v${version}";
-    sha256 = "15680964nlsa83nqgxk7knxajn98lddz2hg6jnn8ffmnms5wdam7";
+    sha256 = "05djzl3h18zg2z5p2a881wjbmgikzkhf67cgk00frhw4v05sq0lf";
   };
   nativeBuildInputs = [ bison flex pkg-config libpng ];
   installFlags = [ "PREFIX=\${out}" ];
diff --git a/pkgs/development/compilers/rust/0001-Allow-getting-no_std-from-the-config-file.patch b/pkgs/development/compilers/rust/0001-Allow-getting-no_std-from-the-config-file.patch
deleted file mode 100644
index 0b9359221a7..00000000000
--- a/pkgs/development/compilers/rust/0001-Allow-getting-no_std-from-the-config-file.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 036c87c82793f1da9f98445e8e27462cc19bbe0a Mon Sep 17 00:00:00 2001
-From: John Ericson <John.Ericson@Obsidian.Systems>
-Date: Sat, 22 Feb 2020 14:38:38 -0500
-Subject: [PATCH] Allow getting `no_std` from the config file
-
-Currently, it is only set correctly in the sanity checking implicit
-default fallback code. Having a config file at all will for force
-`no_std = false`.
----
- src/bootstrap/config.rs | 3 +++
- src/bootstrap/sanity.rs | 4 +---
- 2 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs
-index 110c8b844d5..83a6934d477 100644
---- a/src/bootstrap/config.rs
-+++ b/src/bootstrap/config.rs
-@@ -350,6 +350,7 @@ struct TomlTarget {
-     musl_root: Option<String>,
-     wasi_root: Option<String>,
-     qemu_rootfs: Option<String>,
-+    no_std: Option<bool>,
- }
- 
- impl Config {
-@@ -610,6 +611,8 @@ impl Config {
-                 target.musl_root = cfg.musl_root.clone().map(PathBuf::from);
-                 target.wasi_root = cfg.wasi_root.clone().map(PathBuf::from);
-                 target.qemu_rootfs = cfg.qemu_rootfs.clone().map(PathBuf::from);
-+                target.no_std
-+                    = cfg.no_std.unwrap_or(triple.contains("-none-") || triple.contains("nvptx"));
- 
-                 config.target_config.insert(INTERNER.intern_string(triple.clone()), target);
-             }
-diff --git a/src/bootstrap/sanity.rs b/src/bootstrap/sanity.rs
-index 8ff7056e628..76e721ed8e3 100644
---- a/src/bootstrap/sanity.rs
-+++ b/src/bootstrap/sanity.rs
-@@ -194,9 +194,7 @@ pub fn check(build: &mut Build) {
- 
-         if target.contains("-none-") || target.contains("nvptx") {
-             if build.no_std(*target).is_none() {
--                let target = build.config.target_config.entry(target.clone()).or_default();
--
--                target.no_std = true;
-+                build.config.target_config.entry(target.clone()).or_default();
-             }
- 
-             if build.no_std(*target) == Some(false) {
--- 
-2.24.1
-
diff --git a/pkgs/development/compilers/rust/1_42.nix b/pkgs/development/compilers/rust/1_42.nix
deleted file mode 100644
index 8717aaf76a2..00000000000
--- a/pkgs/development/compilers/rust/1_42.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-# New rust versions should first go to staging.
-# Things to check after updating:
-# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin:
-#    i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github
-#    This testing can be also done by other volunteers as part of the pull
-#    request review, in case platforms cannot be covered.
-# 2. The LLVM version used for building should match with rust upstream.
-# 3. Firefox and Thunderbird should still build on x86_64-linux.
-
-{ stdenv, lib
-, buildPackages
-, newScope, callPackage
-, CoreFoundation, Security
-, llvmPackages_5
-, pkgsBuildTarget, pkgsBuildBuild
-} @ args:
-
-import ./default.nix {
-  rustcVersion = "1.42.0";
-  rustcSha256 = "0x9lxs82may6c0iln0b908cxyn1cv7h03n5cmbx3j1bas4qzks6j";
-
-  # Note: the version MUST be one version prior to the version we're
-  # building
-  bootstrapVersion = "1.41.0";
-
-  # fetch hashes by running `print-hashes.sh 1.42.0`
-  bootstrapHashes = {
-    i686-unknown-linux-gnu = "a93a34f9cf3d35de2496352cb615b42b792eb09db3149b3a278efd2c58fa7897";
-    x86_64-unknown-linux-gnu = "343ba8ef7397eab7b3bb2382e5e4cb08835a87bff5c8074382c0b6930a41948b";
-    arm-unknown-linux-gnueabihf = "d0b33fcc97eeb96d716b30573c7e66affdf9077ecdecb30df2498b49f8284047";
-    armv7-unknown-linux-gnueabihf = "3c8e787fb4f4f304a065e78c38010f0b5722d809f9dafb0e904084bf0f54f7be";
-    aarch64-unknown-linux-gnu = "79ddfb5e2563d0ee09a567fbbe121a2aed3c3bc61255b2787f2dd42183a10f27";
-    i686-apple-darwin = "628134b3fbaf5c0e7a25bd9a2b8d25f6e68bb256c8b04a3332ec979f5a1cd339";
-    x86_64-apple-darwin = "b6504003ab70b11f278e0243a43ba9d6bf75e8ad6819b4058a2b6e3991cc8d7a";
-  };
-
-  selectRustPackage = pkgs: pkgs.rust_1_42;
-
-  rustcPatches = [
-    ./0001-Allow-getting-no_std-from-the-config-file.patch
-  ];
-}
-
-(builtins.removeAttrs args [ "fetchpatch" ])
diff --git a/pkgs/development/compilers/rust/1_43.nix b/pkgs/development/compilers/rust/1_44.nix
index a1a9d17fcd5..9fc268d152b 100644
--- a/pkgs/development/compilers/rust/1_43.nix
+++ b/pkgs/development/compilers/rust/1_44.nix
@@ -16,24 +16,24 @@
 } @ args:
 
 import ./default.nix {
-  rustcVersion = "1.43.0";
-  rustcSha256 = "18akhk0wz1my6y9vhardriy2ysc482z0fnjdcgs9gy59kmnarxkm";
+  rustcVersion = "1.44.1";
+  rustcSha256 = "0ww4z2v3gxgn3zddqzwqya1gln04p91ykbrflnpdbmcd575n8bky";
 
   # Note: the version MUST be one version prior to the version we're
   # building
-  bootstrapVersion = "1.42.0";
+  bootstrapVersion = "1.43.1";
 
-  # fetch hashes by running `print-hashes.sh 1.43.0`
+  # fetch hashes by running `print-hashes.sh 1.44.1`
   bootstrapHashes = {
-    i686-unknown-linux-gnu = "1c89c12c8fc1a45dcbcb9ee2e21cc634b8453f1d4cdd658269263de686aab4e4";
-    x86_64-unknown-linux-gnu = "7d1e07ad9c8a33d8d039def7c0a131c5917aa3ea0af3d0cc399c6faf7b789052";
-    arm-unknown-linux-gnueabihf = "6cf776b910d08fb0d1f88be94464e7b20a50f9d8b2ec6372c3c385aec0b70e7a";
-    armv7-unknown-linux-gnueabihf = "a36e7f2bd148e325a7b8e7131b4226266cf522b1a2b12d585dad9c38ef68f4d9";
-    aarch64-unknown-linux-gnu = "fdd39f856a062af265012861949ff6654e2b7103be034d046bec84ebe46e8d2d";
-    x86_64-apple-darwin = "db1055c46e0d54b99da05e88c71fea21b3897e74a4f5ff9390e934f3f050c0a8";
+    i686-unknown-linux-gnu = "0626fa8a6a2387021413d740543f7496656d81115e2284e4ef73217128398990";
+    x86_64-unknown-linux-gnu = "25cd71b95bba0daef56bad8c943a87368c4185b90983f4412f46e3e2418c0505";
+    arm-unknown-linux-gnueabihf = "16b9c4861565a195323d144fd0f54c0ae794ee3d2a867682f8aedbdacaad5a6c";
+    armv7-unknown-linux-gnueabihf = "0c32a5958a358a031e6ca52074cfd45256688dc334db315199f5dbbf7562e5b1";
+    aarch64-unknown-linux-gnu = "fbb612387a64c9da2869725afffc1f66a72d6e7ba6667ba717cd52c33080b7fb";
+    x86_64-apple-darwin = "e1c3e1426a9e615079159d6b619319235e3ca7b395e7603330375bfffcbb7003";
   };
 
-  selectRustPackage = pkgs: pkgs.rust_1_43;
+  selectRustPackage = pkgs: pkgs.rust_1_44;
 
   rustcPatches = [
   ];
diff --git a/pkgs/development/compilers/rust/1_45.nix b/pkgs/development/compilers/rust/1_45.nix
new file mode 100644
index 00000000000..1a634d3f51e
--- /dev/null
+++ b/pkgs/development/compilers/rust/1_45.nix
@@ -0,0 +1,42 @@
+# New rust versions should first go to staging.
+# Things to check after updating:
+# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin:
+#    i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github
+#    This testing can be also done by other volunteers as part of the pull
+#    request review, in case platforms cannot be covered.
+# 2. The LLVM version used for building should match with rust upstream.
+# 3. Firefox and Thunderbird should still build on x86_64-linux.
+
+{ stdenv, lib
+, buildPackages
+, newScope, callPackage
+, CoreFoundation, Security
+, llvmPackages_5
+, pkgsBuildTarget, pkgsBuildBuild
+} @ args:
+
+import ./default.nix {
+  rustcVersion = "1.45.2";
+  rustcSha256 = "0273a1g3f59plyi1n0azf21qjzwml1yqdnj5z472crz37qggr8xp";
+
+  # Note: the version MUST be one version prior to the version we're
+  # building
+  bootstrapVersion = "1.44.1";
+
+  # fetch hashes by running `print-hashes.sh 1.45.0`
+  bootstrapHashes = {
+    i686-unknown-linux-gnu = "e69689b0a1b66599cf83e7dd54f839419007e44376195e93e301a3175da3d854";
+    x86_64-unknown-linux-gnu = "a41df89a461a580536aeb42755e43037556fba2e527dd13a1e1bb0749de28202";
+    arm-unknown-linux-gnueabihf = "ea18ccdfb62a153c2d43d013fdec56993cc9267f1cdc6f3834df8a2b9b468f08";
+    armv7-unknown-linux-gnueabihf = "d44294732cf268ea84908f1135f574ab9489132a332eaa9d5bda547374b15d54";
+    aarch64-unknown-linux-gnu = "a2d74ebeec0b6778026b6c37814cdc91d14db3b0d8b6d69d036216f4d9cf7e49";
+    x86_64-apple-darwin = "a5464e7bcbce9647607904a4afa8362382f1fc55d39e7bbaf4483ac00eb5d56a";
+  };
+
+  selectRustPackage = pkgs: pkgs.rust_1_45;
+
+  rustcPatches = [
+  ];
+}
+
+(builtins.removeAttrs args [ "fetchpatch" ])
diff --git a/pkgs/development/compilers/rust/cargo.nix b/pkgs/development/compilers/rust/cargo.nix
index dfea7f6c8ef..e820b982620 100644
--- a/pkgs/development/compilers/rust/cargo.nix
+++ b/pkgs/development/compilers/rust/cargo.nix
@@ -38,6 +38,11 @@ rustPlatform.buildRustPackage {
       --set SSL_CERT_FILE "${cacert}/etc/ssl/certs/ca-bundle.crt"
 
     installManPage src/tools/cargo/src/etc/man/*
+
+    installShellCompletion --bash --name cargo \
+      src/tools/cargo/src/etc/cargo.bashcomp.sh
+
+    installShellCompletion --zsh src/tools/cargo/src/etc/_cargo
   '';
 
   checkPhase = ''
diff --git a/pkgs/development/compilers/rust/rls/default.nix b/pkgs/development/compilers/rust/rls/default.nix
index 63a3c96a8f9..06b1b9b1e64 100644
--- a/pkgs/development/compilers/rust/rls/default.nix
+++ b/pkgs/development/compilers/rust/rls/default.nix
@@ -20,6 +20,11 @@ rustPlatform.buildRustPackage {
   # a nightly compiler is required unless we use this cheat code.
   RUSTC_BOOTSTRAP=1;
 
+  # As of rustc 1.45.0, these env vars are required to build rls
+  # (due to https://github.com/rust-lang/rust/pull/72001)
+  CFG_RELEASE = "${rustPlatform.rust.rustc.version}-nightly";
+  CFG_RELEASE_CHANNEL = "nightly";
+
   # rls-rustc links to rustc_private crates
   CARGO_BUILD_RUSTFLAGS = if stdenv.isDarwin then "-C rpath" else null;
 
@@ -44,6 +49,5 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/rust-lang/rls/";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ symphorien ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/compilers/rust/rustc.nix b/pkgs/development/compilers/rust/rustc.nix
index 40de5f61e03..65d8920c4a4 100644
--- a/pkgs/development/compilers/rust/rustc.nix
+++ b/pkgs/development/compilers/rust/rustc.nix
@@ -1,6 +1,6 @@
 { stdenv, removeReferencesTo, pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget
 , fetchurl, file, python3
-, llvm_9, darwin, cmake, rust, rustPlatform
+, llvm_10, darwin, cmake, rust, rustPlatform
 , pkgconfig, openssl
 , which, libffi
 , withBundledLLVM ? false
@@ -14,12 +14,12 @@ let
   inherit (stdenv.lib) optionals optional optionalString;
   inherit (darwin.apple_sdk.frameworks) Security;
 
-  llvmSharedForBuild = pkgsBuildBuild.llvm_9.override { enableSharedLibraries = true; };
-  llvmSharedForHost = pkgsBuildHost.llvm_9.override { enableSharedLibraries = true; };
-  llvmSharedForTarget = pkgsBuildTarget.llvm_9.override { enableSharedLibraries = true; };
+  llvmSharedForBuild = pkgsBuildBuild.llvm_10.override { enableSharedLibraries = true; };
+  llvmSharedForHost = pkgsBuildHost.llvm_10.override { enableSharedLibraries = true; };
+  llvmSharedForTarget = pkgsBuildTarget.llvm_10.override { enableSharedLibraries = true; };
 
   # For use at runtime
-  llvmShared = llvm_9.override { enableSharedLibraries = true; };
+  llvmShared = llvm_10.override { enableSharedLibraries = true; };
 in stdenv.mkDerivation rec {
   pname = "rustc";
   inherit version;
@@ -90,7 +90,7 @@ in stdenv.mkDerivation rec {
     "${setBuild}.llvm-config=${llvmSharedForBuild}/bin/llvm-config"
     "${setHost}.llvm-config=${llvmSharedForHost}/bin/llvm-config"
     "${setTarget}.llvm-config=${llvmSharedForTarget}/bin/llvm-config"
-  ] ++ optionals stdenv.isLinux [
+  ] ++ optionals (stdenv.isLinux && !stdenv.targetPlatform.isRedox) [
     "--enable-profiler" # build libprofiler_builtins
   ];
 
diff --git a/pkgs/development/compilers/rust/rustfmt.nix b/pkgs/development/compilers/rust/rustfmt.nix
index 66a18f40ad4..6215c936c6d 100644
--- a/pkgs/development/compilers/rust/rustfmt.nix
+++ b/pkgs/development/compilers/rust/rustfmt.nix
@@ -16,11 +16,15 @@ rustPlatform.buildRustPackage rec {
   # As of 1.0.0 and rustc 1.30 rustfmt requires a nightly compiler
   RUSTC_BOOTSTRAP = 1;
 
+  # As of rustc 1.45.0, these env vars are required to build rustfmt (due to
+  # https://github.com/rust-lang/rust/pull/72001)
+  CFG_RELEASE = "${rustPlatform.rust.rustc.version}-nightly";
+  CFG_RELEASE_CHANNEL = "nightly";
+
   meta = with stdenv.lib; {
     description = "A tool for formatting Rust code according to style guidelines";
     homepage = "https://github.com/rust-lang-nursery/rustfmt";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ globin basvandijk ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/compilers/sagittarius-scheme/default.nix b/pkgs/development/compilers/sagittarius-scheme/default.nix
index 4b1358b7247..dcc3457fe11 100644
--- a/pkgs/development/compilers/sagittarius-scheme/default.nix
+++ b/pkgs/development/compilers/sagittarius-scheme/default.nix
@@ -16,10 +16,10 @@ let platformLdLibraryPath = if stdenv.isDarwin then "DYLD_FALLBACK_LIBRARY_PATH"
 in
 stdenv.mkDerivation rec {
   pname = "sagittarius-scheme";
-  version = "0.9.6";
+  version = "0.9.7";
   src = fetchurl {
     url = "https://bitbucket.org/ktakashi/${pname}/downloads/sagittarius-${version}.tar.gz";
-    sha256 = "03nvvvfd4gdlvq244zpnikxxajp6w8jj3ymw4bcq83x7zilb2imr";
+    sha256 = "18pjj6f5qvixv5hbl1k4d3jqfcmi9qyx0gz0cjwrzpxa8brpwld8";
   };
   preBuild = ''
            # since we lack rpath during build, need to explicitly add build path
diff --git a/pkgs/development/compilers/scala/2.13.nix b/pkgs/development/compilers/scala/2.13.nix
index 04086321bef..75996c382a8 100644
--- a/pkgs/development/compilers/scala/2.13.nix
+++ b/pkgs/development/compilers/scala/2.13.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, makeWrapper, jre, gnugrep, coreutils }:
 
 stdenv.mkDerivation rec {
-  name = "scala-2.13.2";
+  name = "scala-2.13.3";
 
   src = fetchurl {
     url = "https://www.scala-lang.org/files/archive/${name}.tgz";
-    sha256 = "1gvdxwlhgjmn8i5a8kcp19700rscjq9ylb35p8vj7nqys94zjkap";
+    sha256 = "0zv9w9f6g2cfydsvp8mqcfgv2v3487xp4ca1qndg6v7jrhdp7wy9";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/pkgs/development/compilers/scala/dotty-bare.nix b/pkgs/development/compilers/scala/dotty-bare.nix
index d3f126052f5..9b060227067 100644
--- a/pkgs/development/compilers/scala/dotty-bare.nix
+++ b/pkgs/development/compilers/scala/dotty-bare.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, makeWrapper, jre, ncurses }:
 
 stdenv.mkDerivation rec {
-  version = "0.23.0-RC1";
+  version = "0.26.0-RC1";
   pname = "dotty-bare";
 
   src = fetchurl {
     url = "https://github.com/lampepfl/dotty/releases/download/${version}/dotty-${version}.tar.gz";
-    sha256 = "0c64dw2qp8mhgsll8viqaiy34wq1ablkbc4bi813a1r4nqg57sv0";
+    sha256 = "16njy9f0lk7q5x5w1k4yqy644005w4cxhq20r8i2qslhxjndz66f";
   };
 
   propagatedBuildInputs = [ jre ncurses.dev ] ;
diff --git a/pkgs/development/compilers/souffle/default.nix b/pkgs/development/compilers/souffle/default.nix
index d7fc7b114ab..dbc5c1fa517 100644
--- a/pkgs/development/compilers/souffle/default.nix
+++ b/pkgs/development/compilers/souffle/default.nix
@@ -10,13 +10,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "souffle";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner  = "souffle-lang";
     repo   = "souffle";
     rev    = version;
-    sha256 = "1azn32x0xbbk8gagipb34qk3y1srm927j5d34w20isgjxir4xsnz";
+    sha256 = "0f7jwmgv83m85lrb2qwvr4cfwzbqww7pik884xd2593fsfqhpnkn";
   };
 
   nativeBuildInputs = [ autoreconfHook bison flex mcpp doxygen graphviz makeWrapper perl ];
diff --git a/pkgs/development/compilers/swift/default.nix b/pkgs/development/compilers/swift/default.nix
index 0cd1f704421..c4144532c58 100644
--- a/pkgs/development/compilers/swift/default.nix
+++ b/pkgs/development/compilers/swift/default.nix
@@ -2,6 +2,7 @@
 , cmake
 , coreutils
 , glibc
+, gccForLibs
 , which
 , perl
 , libedit
@@ -121,7 +122,7 @@ let
   cmakeFlags = [
     "-DGLIBC_INCLUDE_PATH=${stdenv.cc.libc.dev}/include"
     "-DC_INCLUDE_DIRS=${stdenv.lib.makeSearchPathOutput "dev" "include" devInputs}:${libxml2.dev}/include/libxml2"
-    "-DGCC_INSTALL_PREFIX=${clang.cc.gcc}"
+    "-DGCC_INSTALL_PREFIX=${gccForLibs}"
   ];
 
 in
@@ -182,6 +183,9 @@ stdenv.mkDerivation {
   '';
 
   patchPhase = ''
+    # Glibc 2.31 fix
+    patch -p1 -i ${./patches/swift-llvm.patch}
+
     # Just patch all the things for now, we can focus this later
     patchShebangs $SWIFT_SOURCE_ROOT
 
@@ -196,7 +200,7 @@ stdenv.mkDerivation {
     substituteInPlace swift/stdlib/public/Platform/CMakeLists.txt \
       --replace '/usr/include' "${stdenv.cc.libc.dev}/include"
     substituteInPlace swift/utils/build-script-impl \
-      --replace '/usr/include/c++' "${clang.cc.gcc}/include/c++"
+      --replace '/usr/include/c++' "${gccForLibs}/include/c++"
     patch -p1 -d swift -i ${./patches/glibc-arch-headers.patch}
     patch -p1 -d swift -i ${./patches/0001-build-presets-linux-don-t-require-using-Ninja.patch}
     patch -p1 -d swift -i ${./patches/0002-build-presets-linux-allow-custom-install-prefix.patch}
@@ -257,11 +261,11 @@ stdenv.mkDerivation {
   '';
 
   buildPhase = ''
-    # gcc-6.4.0/include/c++/6.4.0/cstdlib:75:15: fatal error: 'stdlib.h' file not found
-    export NIX_CFLAGS_COMPILE="$( echo ${clang.default_cxx_stdlib_compile} ) $NIX_CFLAGS_COMPILE"
+    # explicitly include C++ headers to prevent errors where stdlib.h is not found from cstdlib
+    export NIX_CFLAGS_COMPILE="$(< ${clang}/nix-support/libcxx-cxxflags) $NIX_CFLAGS_COMPILE"
     # During the Swift build, a full local LLVM build is performed and the resulting clang is invoked.
     # This compiler is not using the Nix wrappers, so it needs some help to find things.
-    export NIX_LDFLAGS_BEFORE="-rpath ${clang.cc.gcc.lib}/lib -L${clang.cc.gcc.lib}/lib $NIX_LDFLAGS_BEFORE"
+    export NIX_LDFLAGS_BEFORE="-rpath ${gccForLibs.lib}/lib -L${gccForLibs.lib}/lib $NIX_LDFLAGS_BEFORE"
     # However, we want to use the wrapped compiler whenever possible.
     export CC="${clang}/bin/clang"
 
diff --git a/pkgs/development/compilers/swift/patches/swift-llvm.patch b/pkgs/development/compilers/swift/patches/swift-llvm.patch
new file mode 100644
index 00000000000..fcd9533fd72
--- /dev/null
+++ b/pkgs/development/compilers/swift/patches/swift-llvm.patch
@@ -0,0 +1,48 @@
+diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+index bc6675bf4..2f3514b64 100644
+--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+@@ -1129,8 +1129,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
+-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
+-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field.  */
++#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
++/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
++   on many architectures.  */
+ CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
+ #endif
+ 
+diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+index de69852d3..652d5cb3b 100644
+--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+@@ -204,26 +204,13 @@ namespace __sanitizer {
+     u64 __unused1;
+     u64 __unused2;
+ #elif defined(__sparc__)
+-#if defined(__arch64__)
+     unsigned mode;
+-    unsigned short __pad1;
+-#else
+-    unsigned short __pad1;
+-    unsigned short mode;
+     unsigned short __pad2;
+-#endif
+     unsigned short __seq;
+     unsigned long long __unused1;
+     unsigned long long __unused2;
+-#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__)
+-    unsigned int mode;
+-    unsigned short __seq;
+-    unsigned short __pad1;
+-    unsigned long __unused1;
+-    unsigned long __unused2;
+ #else
+-    unsigned short mode;
+-    unsigned short __pad1;
++    unsigned int mode;
+     unsigned short __seq;
+     unsigned short __pad2;
+ #if defined(__x86_64__) && !defined(_LP64)
diff --git a/pkgs/development/compilers/tinygo/default.nix b/pkgs/development/compilers/tinygo/default.nix
index b3176cac78a..060b95cf877 100644
--- a/pkgs/development/compilers/tinygo/default.nix
+++ b/pkgs/development/compilers/tinygo/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
     rev = "v${version}";
     sha256 = "0das5z5y2x1970yi9c4yssxvwrrjhdmsj495q0r5mb02amvc954v";
   };
- 
+
   overrideModAttrs = (_: {
       patches = [];
       preBuild = ''
@@ -27,7 +27,9 @@ buildGoModule rec {
   preBuild = "cp ${gomod} go.mod";
 
   vendorSha256 = "19194dlzpl6zzw2gqybma5pwip71rw8z937f104k6c158qzzgy62";
-  enableParallelBuilding = true;
+
+  doCheck = false;
+
   subPackages = [ "." ];
   buildInputs = [ llvm clang-unwrapped makeWrapper ];
   propagatedBuildInputs = [ lld avrgcc avrdude openocd gcc-arm-embedded ];
@@ -44,6 +46,5 @@ buildGoModule rec {
     description = "Go compiler for small places";
     license = licenses.bsd3;
     maintainers = with maintainers; [ chiiruno ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix
index 6afc14688ae..3b4cd1a5a79 100644
--- a/pkgs/development/compilers/vala/default.nix
+++ b/pkgs/development/compilers/vala/default.nix
@@ -123,8 +123,8 @@ in rec {
   };
 
   vala_0_48 = generic {
-    version = "0.48.1";
-    sha256 = "1m3igqlryj1161ymksy7666v7mp9l6gy0yfi4cvgd3wh1963jmzb";
+    version = "0.48.7";
+    sha256 = "0lswkb7gj0chas9n3l3dbrm9l71hs77adhvm2v600id2ipi37pi8";
   };
 
   vala = vala_0_48;
diff --git a/pkgs/development/compilers/wla-dx/default.nix b/pkgs/development/compilers/wla-dx/default.nix
index f50d9e0598b..2d3a527fa14 100644
--- a/pkgs/development/compilers/wla-dx/default.nix
+++ b/pkgs/development/compilers/wla-dx/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wla-dx";
-  version = "9.8";
+  version = "9.11";
 
   src = fetchFromGitHub {
     owner = "vhelin";
     repo = "wla-dx";
     rev = "v${version}-fix";
-    sha256 = "1dsxhy19nif983lr20vxl099giwzgmzqyh7ass705hkphmwagcv6";
+    sha256 = "0sz1vqafl7ii3z1710sk0ilvczv8pb4b6lkmg9pr7hqj3kaxndii";
   };
 
   installPhase = ''
diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix
index 1ac34c24315..c3185ca4e0e 100644
--- a/pkgs/development/compilers/yosys/default.nix
+++ b/pkgs/development/compilers/yosys/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname   = "yosys";
-  version = "2020.06.19";
+  version = "2020.08.22";
 
   src = fetchFromGitHub {
     owner  = "YosysHQ";
     repo   = "yosys";
-    rev    = "338ecbe02f8bb3cc4d69de1445c7f398a814b4e4";
-    sha256 = "0j5jwyxrq8rmwpyyidid6yp6g5bq7jwnhmn2ycj82kdj787p9vvs";
+    rev    = "12132b6850747aec99715fdfa3184fe3ebefa015";
+    sha256 = "1v6x1y2f3r8vi7pnkgx374rrv02xgmg9yg23f61n7d1v2rd6y5cc";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/compilers/zig/default.nix b/pkgs/development/compilers/zig/default.nix
index 20ce0b5ff5e..6a1e5b9e76e 100644
--- a/pkgs/development/compilers/zig/default.nix
+++ b/pkgs/development/compilers/zig/default.nix
@@ -20,13 +20,6 @@ llvmPackages.stdenv.mkDerivation rec {
     zlib
   ];
 
-  patches = [
-    (substituteAll {
-        src = ./llvm10_polly.patch;
-        llvm_extras = "-Wl,${llvmPackages.llvm}/lib/LLVMPolly.so";
-    })
-  ];
-
   preBuild = ''
     export HOME=$TMPDIR;
   '';
diff --git a/pkgs/development/compilers/zig/llvm10_polly.patch b/pkgs/development/compilers/zig/llvm10_polly.patch
deleted file mode 100644
index 72449c35d91..00000000000
--- a/pkgs/development/compilers/zig/llvm10_polly.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 97608cddf..e451c0711 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -369,4 +369,5 @@ target_link_libraries(zig_cpp LINK_PUBLIC
-     ${CLANG_LIBRARIES}
-     ${LLD_LIBRARIES}
-     ${LLVM_LIBRARIES}
-+    @llvm_extras@
- )
diff --git a/pkgs/development/compilers/zulu/8.nix b/pkgs/development/compilers/zulu/8.nix
index e48fee0a6a5..cb8eb0b8f26 100644
--- a/pkgs/development/compilers/zulu/8.nix
+++ b/pkgs/development/compilers/zulu/8.nix
@@ -4,11 +4,11 @@
 , swingSupport ? true }:
 
 let
-  version = "8.28.0.1";
-  openjdk = "8.0.163";
+  version = "8.48.0.53";
+  openjdk = "8.0.265";
 
-  sha256_linux = "1z8s3a948nvv92wybnhkyr27ipibcy45k0zv5h5gp37ynd91df45";
-  sha256_darwin = "0i0prjijsgg0yyycplpp9rlfl428126rqz7bb31pchrhi6jhk699";
+  sha256_linux = "ed32513524b32a83b3b388831c69d1884df5675bd5069c6d1485fd1a060be209";
+  sha256_darwin = "36f189bfbd0255195848835819377474ba9c1c868e3c204633c451c96e21f30a";
 
   platform = if stdenv.isDarwin then "macosx" else "linux";
   hash = if stdenv.isDarwin then sha256_darwin else sha256_linux;
@@ -29,7 +29,7 @@ in stdenv.mkDerivation {
   pname = "zulu";
 
   src = fetchurl {
-    url = "https://cdn.azul.com/zulu/bin/zulu${version}-jdk${openjdk}-${platform}_x64.${extension}";
+    url = "https://cdn.azul.com/zulu/bin/zulu${version}-ca-jdk${openjdk}-${platform}_x64.${extension}";
     sha256 = hash;
   };
 
diff --git a/pkgs/development/compilers/zulu/default.nix b/pkgs/development/compilers/zulu/default.nix
index bfaa4c777b3..d91581f5b10 100644
--- a/pkgs/development/compilers/zulu/default.nix
+++ b/pkgs/development/compilers/zulu/default.nix
@@ -4,11 +4,11 @@
 , swingSupport ? true }:
 
 let
-  version = "10.1+11";
-  openjdk = "10";
+  version = "11.41.23";
+  openjdk = "11.0.8";
 
-  sha256_linux = "0g51n2zc7inal29n5ly3mrrfj15c7vl87zb6b2r1q67n4mnbrgm8";
-  sha256_darwin = "1c5ib136nv6gz7ij31mg15nhzrl6zr7kp8spm17zwm1ib82bc73y";
+  sha256_linux = "f8aee4ab30ca11ab3c8f401477df0e455a9d6b06f2710b2d1b1ddcf06067bc79";
+  sha256_darwin = "643c6648cc4374f39e830e4fcb3d68f8667893d487c07eb7091df65937025cc3";
 
   platform = if stdenv.isDarwin then "macosx" else "linux";
   hash = if stdenv.isDarwin then sha256_darwin else sha256_linux;
@@ -29,7 +29,7 @@ in stdenv.mkDerivation {
   pname = "zulu";
 
   src = fetchurl {
-    url = "https://cdn.azul.com/zulu/bin/zulu${version}-jdk${openjdk}-${platform}_x64.${extension}";
+    url = "https://cdn.azul.com/zulu/bin/zulu${version}-ca-jdk${openjdk}-${platform}_x64.${extension}";
     sha256 = hash;
   };
 
diff --git a/pkgs/development/coq-modules/QuickChick/default.nix b/pkgs/development/coq-modules/QuickChick/default.nix
index 7f3c77c75e6..a167b7988dc 100644
--- a/pkgs/development/coq-modules/QuickChick/default.nix
+++ b/pkgs/development/coq-modules/QuickChick/default.nix
@@ -27,15 +27,29 @@ let params =
     };
 
     "8.10" = rec {
-      version = "1.2.0";
+      version = "1.2.1";
       rev = "v${version}";
-      sha256 = "1xs4mr3rdb0g44736jb40k370hw3maxdk12jiq1w1dl3q5gfrhah";
+      sha256 = "17vz88xjzxh3q7hs6hnndw61r3hdfawxp5awqpgfaxx4w6ni8z46";
+    };
+
+    "8.11" = rec {
+      version = "1.3.2";
+      rev = "v${version}";
+      sha256 = "0lciwaqv288dh2f13xk2x0lrn6zyrkqy6g4yy927wwzag2gklfrs";
+    };
+
+    "8.12" = rec {
+      version = "1.4.0";
+      rev = "v${version}";
+      sha256 = "068p48pm5yxjc3yv8qwzp25bp9kddvxj81l31mjkyx3sdrsw3kyc";
     };
   };
   param = params.${coq.coq-version};
 in
 
-let recent = stdenv.lib.versionAtLeast coq.coq-version "8.8"; in
+let inherit (stdenv.lib) maintainers optional optionals versionAtLeast; in
+
+let recent = versionAtLeast coq.coq-version "8.8"; in
 
 stdenv.mkDerivation {
 
@@ -51,12 +65,16 @@ stdenv.mkDerivation {
     "substituteInPlace Makefile --replace quickChickTool.byte quickChickTool.native";
 
   buildInputs = [ coq ]
-  ++ (with coq.ocamlPackages; [ ocaml camlp5 findlib ])
-  ++ stdenv.lib.optionals recent
-     (with coq.ocamlPackages; [ ocamlbuild num ])
+  ++ (with coq.ocamlPackages; [ ocaml findlib ])
+  ++ optionals (recent && !versionAtLeast coq.coq-version "8.10")
+       (with coq.ocamlPackages; [ camlp5 ocamlbuild ])
+  ++ optional recent coq.ocamlPackages.num
   ;
   propagatedBuildInputs = [ ssreflect ]
-  ++ stdenv.lib.optionals recent [ coq-ext-lib simple-io ];
+  ++ optionals recent [ coq-ext-lib simple-io ]
+  ++ optional (versionAtLeast coq.coq-version "8.10")
+       coq.ocamlPackages.ocamlbuild
+  ;
 
   enableParallelBuilding = false;
 
@@ -64,7 +82,7 @@ stdenv.mkDerivation {
     make -f Makefile.coq COQLIB=$out/lib/coq/${coq.coq-version}/ install
   '';
 
-  meta = with stdenv.lib; {
+  meta = {
     homepage = "https://github.com/QuickChick/QuickChick";
     description = "Randomized property-based testing plugin for Coq; a clone of Haskell QuickCheck";
     maintainers = with maintainers; [ jwiegley ];
diff --git a/pkgs/development/coq-modules/bignums/default.nix b/pkgs/development/coq-modules/bignums/default.nix
index 0e8cead0b31..88d7e461a31 100644
--- a/pkgs/development/coq-modules/bignums/default.nix
+++ b/pkgs/development/coq-modules/bignums/default.nix
@@ -25,6 +25,10 @@ let params = {
         rev = "V8.11.0";
         sha256 = "1xcd7c7qlvs0narfba6px34zq0mz8rffnhxw0kzhhg6i4iw115dp";
       };
+      "8.12" = {
+        rev = "V8.12.0";
+        sha256 = "14ijb3qy2hin3g4djx437jmnswxxq7lkfh3dwh9qvrds9a015yg8";
+      };
     };
     param = params.${coq.coq-version};
 in
diff --git a/pkgs/development/coq-modules/coq-bits/default.nix b/pkgs/development/coq-modules/coq-bits/default.nix
index 05dcb7898e5..9665c5400d8 100644
--- a/pkgs/development/coq-modules/coq-bits/default.nix
+++ b/pkgs/development/coq-modules/coq-bits/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/coq-community/coq-bits";
+    homepage = "https://github.com/coq-community/bits";
     description = "A formalization of bitset operations in Coq";
     license = licenses.asl20;
     maintainers = with maintainers; [ ptival ];
@@ -33,6 +33,6 @@ stdenv.mkDerivation {
   };
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.7" "8.8" "8.9" "8.10" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.7" "8.8" "8.9" "8.10" "8.11" "8.12" ];
   };
 }
diff --git a/pkgs/development/coq-modules/coq-elpi/default.nix b/pkgs/development/coq-modules/coq-elpi/default.nix
index 3857146ea60..230320671a7 100644
--- a/pkgs/development/coq-modules/coq-elpi/default.nix
+++ b/pkgs/development/coq-modules/coq-elpi/default.nix
@@ -2,9 +2,14 @@
 
 let params = {
   "8.11" = rec {
-    version = "1.4.1";
+    version = "1.6.0_8.11";
     rev = "v${version}";
-    sha256 = "12jwldcianai62y9jnghsjfya5dj6fvc6ilf37c7w037kylx45sd";
+    sha256 = "0ahxjnzmd7kl3gl38kyjqzkfgllncr2ybnw8bvgrc6iddgga7bpq";
+  };
+  "8.12" = rec {
+    version = "1.6.0";
+    rev = "v${version}";
+    sha256 = "0kf99i43mlf750fr7fric764mm495a53mg5kahnbp6zcjcxxrm0b";
   };
 };
   param = params.${coq.coq-version};
diff --git a/pkgs/development/coq-modules/coq-ext-lib/default.nix b/pkgs/development/coq-modules/coq-ext-lib/default.nix
index 17f9c2c4611..9cf30e277f3 100644
--- a/pkgs/development/coq-modules/coq-ext-lib/default.nix
+++ b/pkgs/development/coq-modules/coq-ext-lib/default.nix
@@ -5,10 +5,11 @@ let params =
     "8.5"  = { version = "0.9.4";  sha256 = "1y66pamgsdxlq2w1338lj626ln70cwj7k53hxcp933g8fdsa4hp0"; };
     "8.6"  = { version = "0.9.5";  sha256 = "1b4cvz3llxin130g13calw5n1zmvi6wdd5yb8a41q7yyn2hd3msg"; };
     "8.7"  = { version = "0.9.7";  sha256 = "00v4bm4glv1hy08c8xsm467az6d1ashrznn8p2bmbmmp52lfg7ag"; };
-    "8.8"  = { version = "0.11.1"; sha256 = "0dmf1p9j8lm0hwaq0af18jxdwg869xi2jm8447zng7krrq3kvkg5"; };
-    "8.9"  = { version = "0.11.1"; sha256 = "0dmf1p9j8lm0hwaq0af18jxdwg869xi2jm8447zng7krrq3kvkg5"; };
-    "8.10" = { version = "0.11.1"; sha256 = "0dmf1p9j8lm0hwaq0af18jxdwg869xi2jm8447zng7krrq3kvkg5"; };
-    "8.11" = { version = "0.11.1"; sha256 = "0dmf1p9j8lm0hwaq0af18jxdwg869xi2jm8447zng7krrq3kvkg5"; };
+    "8.8" = { version = "0.11.2"; sha256 = "0iyka81g26x5n99xic7kqn8vxqjw8rz7vw9rs27iw04lf137vzv6"; };
+    "8.9" = { version = "0.11.2"; sha256 = "0iyka81g26x5n99xic7kqn8vxqjw8rz7vw9rs27iw04lf137vzv6"; };
+    "8.10" = { version = "0.11.2"; sha256 = "0iyka81g26x5n99xic7kqn8vxqjw8rz7vw9rs27iw04lf137vzv6"; };
+    "8.11" = { version = "0.11.2"; sha256 = "0iyka81g26x5n99xic7kqn8vxqjw8rz7vw9rs27iw04lf137vzv6"; };
+    "8.12" = { version = "0.11.2"; sha256 = "0iyka81g26x5n99xic7kqn8vxqjw8rz7vw9rs27iw04lf137vzv6"; };
   };
   param = params.${coq.coq-version};
 in
diff --git a/pkgs/development/coq-modules/coq-extensible-records/default.nix b/pkgs/development/coq-modules/coq-extensible-records/default.nix
deleted file mode 100644
index 531c1528761..00000000000
--- a/pkgs/development/coq-modules/coq-extensible-records/default.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-{ stdenv, fetchFromGitHub, coq }:
-
-let
-  versions = {
-    pre_8_9 = {
-      owner   = "gmalecha";
-      rev     = "1.2.0";
-      version = "1.2.0";
-      sha256  = "0h5m04flqfk0v577syw0v1dw2wf7xrx6jaxv5gpmqzssf5hxafy4";
-    };
-    post_8_9 = {
-      owner   = "Ptival";
-      rev     = "bd7082a3571ee3c111096ff6b5eb28c8d3a99ce5";
-      version = "1.2.0+8.9-fix";
-      sha256  = "0625qd8pyxi0v704fwnawrfw5fk966vnk120il0g6qv42siyck95";
-    };
-  };
-  params =
-    {
-      "8.5"  = versions.pre_8_9;
-      "8.6"  = versions.pre_8_9;
-      "8.7"  = versions.pre_8_9;
-      "8.8"  = versions.pre_8_9;
-      "8.9"  = versions.post_8_9;
-      "8.10" = versions.post_8_9;
-    };
-  param = params.${coq.coq-version};
-in
-
-stdenv.mkDerivation rec {
-  inherit (param) version;
-  name = "coq${coq.coq-version}-coq-extensible-records-${version}";
-
-  src = fetchFromGitHub {
-    inherit (param) owner rev sha256;
-    repo = "coq-extensible-records";
-  };
-
-  buildInputs = [ coq ];
-
-  enableParallelBuilding = true;
-
-  installPhase = ''
-    make -f Makefile.coq COQLIB=$out/lib/coq/${coq.coq-version}/ install
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/gmalecha/coq-extensible-records";
-    description = "Implementation of extensible records in Coq";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ptival ];
-    platforms = coq.meta.platforms;
-  };
-
-  passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.5" "8.6" "8.7" "8.8" "8.9" "8.10" ];
-  };
-}
diff --git a/pkgs/development/coq-modules/coqhammer/default.nix b/pkgs/development/coq-modules/coqhammer/default.nix
index 16813ac4f11..56fce9ac526 100644
--- a/pkgs/development/coq-modules/coqhammer/default.nix
+++ b/pkgs/development/coq-modules/coqhammer/default.nix
@@ -13,12 +13,16 @@ let
       buildInputs = [ coq.ocamlPackages.camlp5 ];
     };
     "8.10" = {
-      version = "1.2";
-      sha256 = "1ir313mmkgp2c65wgw8c681a15clvri1wb1hyjqmj7ymx4shkl56";
+      version = "1.3";
+      sha256 = "1fj8497ir4m79hyrmmmmrag01001wrby0h24wv6525vz0w5py3cd";
     };
     "8.11" = {
-      version = "1.2";
-      sha256 = "1w317h7r5llyamzn1kqb8j6p5sxks2j8vq8wnpzrx01jqbyibxgy";
+      version = "1.3";
+      sha256 = "08zf8qfna7b9p2myfaz4g7bas3a1q1156x78n5isqivlnqfrjc1b";
+    };
+    "8.12" = {
+      version = "1.3";
+      sha256 = "1q1y3cwhd98pkm98g71fsdjz85bfwgcz2xn7s7wwmiraifv5l6z8";
     };
   };
   param = params.${coq.coq-version};
diff --git a/pkgs/development/coq-modules/coqprime/default.nix b/pkgs/development/coq-modules/coqprime/default.nix
index a049fa94d41..0ead97ffbf0 100644
--- a/pkgs/development/coq-modules/coqprime/default.nix
+++ b/pkgs/development/coq-modules/coqprime/default.nix
@@ -6,6 +6,10 @@ let
           version = "8.8";
           sha256 = "075yjczk79pf1hd3lgdjiz84ilkzfxjh18lgzrhhqp7d3kz5lxp5";
         };
+        v_8_10 = {
+          version = "8.10";
+          sha256 = "0r9gnh5a5ykiiz5h1i8xnzgiydpwc4z9qhndxyya85xq0f910qaz";
+        };
     in
       {
         "8.7" = {
@@ -14,10 +18,8 @@ let
         };
         "8.8" = v_8_8;
         "8.9" = v_8_8;
-        "8.10" = {
-          version = "8.10";
-          sha256 = "0r9gnh5a5ykiiz5h1i8xnzgiydpwc4z9qhndxyya85xq0f910qaz";
-        };
+        "8.10" = v_8_10;
+        "8.11" = v_8_10;
       };
   param = params.${coq.coq-version};
 in
diff --git a/pkgs/development/coq-modules/dpdgraph/default.nix b/pkgs/development/coq-modules/dpdgraph/default.nix
index 689745003df..54654f37bac 100644
--- a/pkgs/development/coq-modules/dpdgraph/default.nix
+++ b/pkgs/development/coq-modules/dpdgraph/default.nix
@@ -1,6 +1,10 @@
 { stdenv, fetchFromGitHub, autoreconfHook, coq }:
 
 let params = {
+  "8.12" = {
+    version = "0.6.8";
+    sha256 = "1mj6sknsd53xfb387sp3kdwvl4wn80ck24bfzf3s6mgw1a12vyps";
+  };
   "8.11" = {
     version = "0.6.7";
     sha256 = "01vpi7scvkl4ls1z2k2x9zd65wflzb667idj759859hlz3ps9z09";
diff --git a/pkgs/development/coq-modules/equations/default.nix b/pkgs/development/coq-modules/equations/default.nix
index 47ab19048ee..5a07d537536 100644
--- a/pkgs/development/coq-modules/equations/default.nix
+++ b/pkgs/development/coq-modules/equations/default.nix
@@ -33,15 +33,15 @@ let
     };
 
     "8.11" = {
-      version = "1.2.2";
-      rev = "v1.2.2-8.11";
-      sha256 = "0g2y0s8kb2imbqyrx9hmvjzpwmicid7shv7ma10fnb8dgk2dqkf9";
+      version = "1.2.3";
+      rev = "v1.2.3-8.11";
+      sha256 = "1srxz1rws8jsh7402g2x2vcqgjbbsr64dxxj5d2zs48pmhb20csf";
     };
 
     "8.12" = {
-      version = "1.2.2";
-      rev = "v1.2.2-8.12";
-      sha256 = "0fkz78i2gn9x9scfa7n8fl2sq7czppsicy7w5mq919qqfp0w1aj0";
+      version = "1.2.3";
+      rev = "v1.2.3-8.12";
+      sha256 = "1y0jkvzyz5ssv5vby41p1i8zs7nsdc8g3pzyq73ih9jz8h252643";
     };
   };
   param = params.${coq.coq-version};
diff --git a/pkgs/development/coq-modules/gappalib/default.nix b/pkgs/development/coq-modules/gappalib/default.nix
index eb431b9faf2..f6109398da8 100644
--- a/pkgs/development/coq-modules/gappalib/default.nix
+++ b/pkgs/development/coq-modules/gappalib/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, which, coq, flocq }:
 
 stdenv.mkDerivation {
-  name = "coq${coq.coq-version}-gappalib-1.4.3";
+  name = "coq${coq.coq-version}-gappalib-1.4.4";
   src = fetchurl {
-    url = "https://gforge.inria.fr/frs/download.php/file/38302/gappalib-coq-1.4.3.tar.gz";
-    sha256 = "108k9dks04wbcqz38pf0zz11hz5imbzimpnkgjrk5gp1hifih370";
+    url = "https://gforge.inria.fr/frs/download.php/file/38338/gappalib-coq-1.4.4.tar.gz";
+    sha256 = "1ds9qp3ml07w5ali0rsczlwgdx4xcgasgbcnpi2lssgj1xpxgfpn";
   };
 
   nativeBuildInputs = [ which ];
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   };
 
   passthru = {
-    compatibleCoqVersions = stdenv.lib.flip builtins.elem [ "8.8" "8.9" "8.10" "8.11" ];
+    compatibleCoqVersions = stdenv.lib.flip builtins.elem [ "8.8" "8.9" "8.10" "8.11" "8.12" ];
   };
 
 }
diff --git a/pkgs/development/coq-modules/hierarchy-builder/default.nix b/pkgs/development/coq-modules/hierarchy-builder/default.nix
index ed14217d4f3..9be8459ee9f 100644
--- a/pkgs/development/coq-modules/hierarchy-builder/default.nix
+++ b/pkgs/development/coq-modules/hierarchy-builder/default.nix
@@ -2,14 +2,15 @@
 
 let
   versions = {
-      "0.9.1" =  {
-        rev = "v0.9.1";
-        sha256 = "00fibahkmvisr16ffaxfrc00gcijsv9rgk4v8ibmy1jv0iyk875b";
+      "0.10.0" =  {
+        rev = "v0.10.0";
+        sha256 = "1a3vry9nzavrlrdlq3cys3f8kpq3bz447q8c4c7lh2qal61wb32h";
       };
   };
   version = x: versions.${x} // {version = x;};
   params = {
-   "8.11" = version "0.9.1";
+   "8.11" = version "0.10.0";
+   "8.12" = version "0.10.0";
   };
   param = params.${coq.coq-version};
 in
diff --git a/pkgs/development/coq-modules/interval/default.nix b/pkgs/development/coq-modules/interval/default.nix
index d5cfb5a217f..e72fe7845c8 100644
--- a/pkgs/development/coq-modules/interval/default.nix
+++ b/pkgs/development/coq-modules/interval/default.nix
@@ -2,23 +2,41 @@
 , bignums ? null }:
 
 let params =
-  if stdenv.lib.versionAtLeast coq.coq-version "8.7" then {
-    version = "3.4.2";
-    uid = "38288";
-    sha256 = "00bgzbji0gkazwxhs4q8gz4ccqsa1y1r0m0ravr18ps2h8a8qva5";
-  } else {
+  let
+  v3_3 = {
     version = "3.3.0";
     uid = "37077";
     sha256 = "08fdcf3hbwqphglvwprvqzgkg0qbimpyhnqsgv3gac4y1ap0f903";
-  }
-; in
+  };
+  v3_4 = {
+    version = "3.4.2";
+    uid = "38288";
+    sha256 = "00bgzbji0gkazwxhs4q8gz4ccqsa1y1r0m0ravr18ps2h8a8qva5";
+  };
+  v4_0 = {
+    version = "4.0.0";
+    uid = "38339";
+    sha256 = "19sbrv7jnzyxji7irfslhr9ralc0q3gx20nymig5vqbn3vssmgpz";
+  };
+  in {
+    "8.5" = v3_3;
+    "8.6" = v3_3;
+    "8.7" = v3_4;
+    "8.8" = v4_0;
+    "8.9" = v4_0;
+    "8.10" = v4_0;
+    "8.11" = v4_0;
+    "8.12" = v4_0;
+  };
+  param = params."${coq.coq-version}";
+in
 
 stdenv.mkDerivation {
-  name = "coq${coq.coq-version}-interval-${params.version}";
+  name = "coq${coq.coq-version}-interval-${param.version}";
 
   src = fetchurl {
-    url = "https://gforge.inria.fr/frs/download.php/file/${params.uid}/interval-${params.version}.tar.gz";
-    inherit (params) sha256;
+    url = "https://gforge.inria.fr/frs/download.php/file/${param.uid}/interval-${param.version}.tar.gz";
+    inherit (param) sha256;
   };
 
   nativeBuildInputs = [ which ];
@@ -38,8 +56,7 @@ stdenv.mkDerivation {
   };
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.5" "8.6" "8.7" "8.8" "8.9" "8.10" "8.11" ];
+    compatibleCoqVersions = stdenv.lib.flip builtins.hasAttr params;
   };
 
-
 }
diff --git a/pkgs/development/coq-modules/iris/default.nix b/pkgs/development/coq-modules/iris/default.nix
index 0718e518b35..6826e07d613 100644
--- a/pkgs/development/coq-modules/iris/default.nix
+++ b/pkgs/development/coq-modules/iris/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitLab, coq, stdpp }:
 
 stdenv.mkDerivation rec {
-  version = "3.2.0";
+  version = "3.3.0";
   name = "coq${coq.coq-version}-iris-${version}";
   src = fetchFromGitLab {
     domain = "gitlab.mpi-sws.org";
     owner = "iris";
     repo = "iris";
     rev = "iris-${version}";
-    sha256 = "10dfi7qx6j5w6kbmbrf05xh18jwxr9iz5g7y0f6157msgvl081xs";
+    sha256 = "0az4gkp5m8sq0p73dlh0r7ckkzhk7zkg5bndw01bdsy5ywj0vilp";
   };
 
   buildInputs = [ coq ];
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.7" "8.8" "8.9" "8.10" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.9" "8.10" "8.11" "8.12" ];
   };
 
 }
diff --git a/pkgs/development/coq-modules/math-classes/default.nix b/pkgs/development/coq-modules/math-classes/default.nix
index 9ab77418cce..73e420b326d 100644
--- a/pkgs/development/coq-modules/math-classes/default.nix
+++ b/pkgs/development/coq-modules/math-classes/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
 
   name = "coq${coq.coq-version}-math-classes-${version}";
-  version = "8.9.1";
+  version = "8.11.0";
 
   src = fetchFromGitHub {
     owner = "coq-community";
     repo = "math-classes";
     rev = version;
-    sha256 = "1lw89js07m1wcaycpnyd85sf0snil2rrsfmry9lna2x66ah1mzn5";
+    sha256 = "1hjgncvm1m46lw6264w4dqsy8dbh74vhmzq52x0fba2yqlvy94sf";
   };
 
   buildInputs = [ coq bignums ];
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.6" "8.7" "8.8" "8.9" "8.10" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.6" "8.7" "8.8" "8.9" "8.10" "8.11" ];
   };
 
 }
diff --git a/pkgs/development/coq-modules/simple-io/default.nix b/pkgs/development/coq-modules/simple-io/default.nix
index bc020174daa..82fa215ee9c 100644
--- a/pkgs/development/coq-modules/simple-io/default.nix
+++ b/pkgs/development/coq-modules/simple-io/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.7" "8.8" "8.9" "8.10" "8.11" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.7" "8.8" "8.9" "8.10" "8.11" "8.12" ];
   };
 
 }
diff --git a/pkgs/development/coq-modules/stdpp/default.nix b/pkgs/development/coq-modules/stdpp/default.nix
index 3ba99e87ffb..28917e73f29 100644
--- a/pkgs/development/coq-modules/stdpp/default.nix
+++ b/pkgs/development/coq-modules/stdpp/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "coq${coq.coq-version}-stdpp-${version}";
-  version = "1.2.1";
+  version = "1.4.0";
   src = fetchFromGitLab {
     domain = "gitlab.mpi-sws.org";
     owner = "iris";
     repo = "stdpp";
     rev = "coq-stdpp-${version}";
-    sha256 = "1lczybg1jq9drbi8nzrlb0k199x4n07aawjwfzrl3qqc0w8kmvdz";
+    sha256 = "1m6c7ibwc99jd4cv14v3r327spnfvdf3x2mnq51f9rz99rffk68r";
   };
 
   buildInputs = [ coq ];
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.7" "8.8" "8.9" "8.10" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.8" "8.9" "8.10" "8.11" "8.12" ];
   };
 
 }
diff --git a/pkgs/development/coq-modules/tlc/default.nix b/pkgs/development/coq-modules/tlc/default.nix
index 8a10dc388db..816b2205024 100644
--- a/pkgs/development/coq-modules/tlc/default.nix
+++ b/pkgs/development/coq-modules/tlc/default.nix
@@ -1,13 +1,27 @@
-{ stdenv, fetchurl, coq }:
+{ stdenv, fetchurl, fetchFromGitHub, coq }:
 
-stdenv.mkDerivation rec {
-  version = "20181116";
-  name = "coq${coq.coq-version}-tlc-${version}";
+let params =
+  if stdenv.lib.versionAtLeast coq.coq-version "8.10"
+  then rec {
+    version = "20200328";
+    src = fetchFromGitHub {
+      owner = "charguer";
+      repo = "tlc";
+      rev = version;
+      sha256 = "16vzild9gni8zhgb3qhmka47f8zagdh03k6nssif7drpim8233lx";
+    };
+  } else rec {
+    version = "20181116";
+    src = fetchurl {
+      url = "http://tlc.gforge.inria.fr/releases/tlc-${version}.tar.gz";
+      sha256 = "0iv6f6zmrv2lhq3xq57ipmw856ahsql754776ymv5wjm88ld63nm";
+    };
+  }
+; in
 
-  src = fetchurl {
-    url = "http://tlc.gforge.inria.fr/releases/tlc-${version}.tar.gz";
-    sha256 = "0iv6f6zmrv2lhq3xq57ipmw856ahsql754776ymv5wjm88ld63nm";
-  };
+stdenv.mkDerivation {
+  inherit (params) version src;
+  pname = "coq${coq.coq-version}-tlc";
 
   buildInputs = [ coq ];
 
@@ -22,6 +36,6 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    compatibleCoqVersions = stdenv.lib.flip builtins.elem [ "8.6" "8.7" "8.8" "8.9" "8.10" ];
+    compatibleCoqVersions = stdenv.lib.flip builtins.elem [ "8.6" "8.7" "8.8" "8.9" "8.10" "8.11" "8.12" ];
   };
 }
diff --git a/pkgs/development/go-modules/generic/default.nix b/pkgs/development/go-modules/generic/default.nix
index 0d8b382167e..7db4992d1d6 100644
--- a/pkgs/development/go-modules/generic/default.nix
+++ b/pkgs/development/go-modules/generic/default.nix
@@ -1,4 +1,4 @@
-{ go, cacert, git, lib, removeReferencesTo, stdenv }:
+{ go, cacert, git, lib, removeReferencesTo, stdenv, vend }:
 
 { name ? "${args'.pname}-${args'.version}"
 , src
@@ -20,8 +20,9 @@
 , vendorSha256
 # Whether to delete the vendor folder supplied with the source.
 , deleteVendor ? false
-
-, modSha256 ? null
+# Whether to run the vend tool to regenerate the vendor directory.
+# This is useful if any dependency contain C files.
+, runVend ? false
 
 # We want parallel builds by default
 , enableParallelBuilding ? true
@@ -48,6 +49,8 @@ let
 
   deleteFlag = if deleteVendor then "true" else "false";
 
+  vendCommand = if runVend then "${vend}/bin/vend" else "false";
+
   go-modules = if vendorSha256 != null then go.stdenv.mkDerivation (let modArgs = {
 
     name = "${name}-go-modules";
@@ -80,14 +83,25 @@ let
       runHook preBuild
 
       if [ ${deleteFlag} == "true" ]; then
-        rm -rf vendor
+        if [ ! -d vendor ]; then
+          echo "vendor folder does not exist, 'deleteVendor' is not needed"
+          exit 10
+        else
+          rm -rf vendor
+        fi
       fi
 
-      if [ -e vendor ]; then
-        echo "vendor folder exists, please set 'vendorSha256=null;' or 'deleteVendor=true;' in your expression"
+      if [ -d vendor ]; then
+        echo "vendor folder exists, please set 'vendorSha256 = null;' in your expression"
         exit 10
       fi
-      go mod vendor
+
+      if [ ${vendCommand} != "false" ]; then
+        echo running vend to rewrite vendor folder
+        ${vendCommand}
+      else
+        go mod vendor
+      fi
       mkdir -p vendor
 
       runHook postBuild
@@ -127,7 +141,7 @@ let
       export GOSUMDB=off
       export GOPROXY=off
       cd "$modRoot"
-      if [ -n "${go-modules}" ]; then 
+      if [ -n "${go-modules}" ]; then
           rm -rf vendor
           ln -s ${go-modules} vendor
       fi
@@ -199,7 +213,7 @@ let
       runHook postBuild
     '';
 
-    doCheck = args.doCheck or false;
+    doCheck = args.doCheck or true;
     checkPhase = args.checkPhase or ''
       runHook preCheck
 
@@ -221,7 +235,7 @@ let
     '';
 
     preFixup = (args.preFixup or "") + ''
-      find $out/bin -type f -exec ${removeExpr removeReferences} '{}' + || true
+      find $out/{bin,libexec,lib} -type f 2>/dev/null | xargs -r ${removeExpr removeReferences} || true
     '';
 
     strictDeps = true;
@@ -241,8 +255,5 @@ let
   });
 in if disabled then
   throw "${package.name} not supported for go ${go.meta.branch}"
-else if modSha256 != null then
-  lib.warn "modSha256 is deprecated and will be removed in the next release (20.09), use vendorSha256 instead" (
-    import ./old.nix { inherit go cacert git lib removeReferencesTo stdenv; } args')
 else
   package
diff --git a/pkgs/development/go-modules/generic/old.nix b/pkgs/development/go-modules/generic/old.nix
deleted file mode 100644
index 42b446b9fa8..00000000000
--- a/pkgs/development/go-modules/generic/old.nix
+++ /dev/null
@@ -1,229 +0,0 @@
-{ go, cacert, git, lib, removeReferencesTo, stdenv }:
-
-{ name ? "${args'.pname}-${args'.version}"
-, src
-, buildInputs ? []
-, nativeBuildInputs ? []
-, passthru ? {}
-, patches ? []
-
-# A function to override the go-modules derivation
-, overrideModAttrs ? (_oldAttrs : {})
-
-# path to go.mod and go.sum directory
-, modRoot ? "./"
-
-# modSha256 is the sha256 of the vendored dependencies
-#
-# CAUTION: if `null` is used as a value, the derivation won't be a
-# fixed-output derivation but disable the build sandbox instead. Don't use
-# this in nixpkgs as Hydra won't build those packages.
-, modSha256
-
-# We want parallel builds by default
-, enableParallelBuilding ? true
-
-# Disabled flag
-, disabled ? false
-
-# Do not enable this without good reason
-# IE: programs coupled with the compiler
-, allowGoReference ? false
-
-, meta ? {}
-
-, ... }@args':
-
-with builtins;
-
-let
-  args = removeAttrs args' [ "overrideModAttrs" "modSha256" "disabled" ];
-
-  removeReferences = [ ] ++ lib.optional (!allowGoReference) go;
-
-  removeExpr = refs: ''remove-references-to ${lib.concatMapStrings (ref: " -t ${ref}") refs}'';
-
-  go-modules = go.stdenv.mkDerivation (let modArgs = {
-    name = "${name}-go-modules";
-
-    nativeBuildInputs = [ go git cacert ];
-
-    inherit (args) src;
-    inherit (go) GOOS GOARCH;
-
-    patches = args.patches or [];
-
-    GO111MODULE = "on";
-
-    impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
-      "GIT_PROXY_COMMAND" "SOCKS_SERVER"
-    ];
-
-    configurePhase = args.modConfigurePhase or ''
-      runHook preConfigure
-
-      export GOCACHE=$TMPDIR/go-cache
-      export GOPATH="$TMPDIR/go"
-      mkdir -p "''${GOPATH}/pkg/mod/cache/download"
-      cd "${modRoot}"
-      runHook postConfigure
-    '';
-
-    buildPhase = args.modBuildPhase or ''
-      runHook preBuild
-
-      go mod download
-
-      runHook postBuild
-    '';
-
-    installPhase = args.modInstallPhase or ''
-      runHook preInstall
-
-      # remove cached lookup results and tiles
-      rm -rf "''${GOPATH}/pkg/mod/cache/download/sumdb"
-      cp -r "''${GOPATH}/pkg/mod/cache/download" $out
-
-      runHook postInstall
-    '';
-
-    dontFixup = true;
-  }; in modArgs // (
-    if modSha256 == null then
-      { __noChroot = true; }
-    else
-      {
-        outputHashMode = "recursive";
-        outputHashAlgo = "sha256";
-        outputHash = modSha256;
-      }
-  ) // overrideModAttrs modArgs);
-
-  package = go.stdenv.mkDerivation (args // {
-    nativeBuildInputs = [ removeReferencesTo go ] ++ nativeBuildInputs;
-
-    inherit (go) GOOS GOARCH;
-
-    GO111MODULE = "on";
-
-    configurePhase = args.configurePhase or ''
-      runHook preConfigure
-
-      export GOCACHE=$TMPDIR/go-cache
-      export GOPATH="$TMPDIR/go"
-      export GOSUMDB=off
-      export GOPROXY=file://${go-modules}
-
-      cd "$modRoot"
-
-      runHook postConfigure
-    '';
-
-    buildPhase = args.buildPhase or ''
-      runHook preBuild
-
-      buildGoDir() {
-        local d; local cmd;
-        cmd="$1"
-        d="$2"
-        . $TMPDIR/buildFlagsArray
-        echo "$d" | grep -q "\(/_\|examples\|Godeps\|testdata\)" && return 0
-        [ -n "$excludedPackages" ] && echo "$d" | grep -q "$excludedPackages" && return 0
-        local OUT
-        if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" -v -p $NIX_BUILD_CORES $d 2>&1)"; then
-          if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then
-            echo "$OUT" >&2
-            return 1
-          fi
-        fi
-        if [ -n "$OUT" ]; then
-          echo "$OUT" >&2
-        fi
-        return 0
-      }
-
-      getGoDirs() {
-        local type;
-        type="$1"
-        if [ -n "$subPackages" ]; then
-          echo "$subPackages" | sed "s,\(^\| \),\1./,g"
-        else
-          find . -type f -name \*$type.go -exec dirname {} \; | grep -v "/vendor/" | sort --unique
-        fi
-      }
-
-      if (( "''${NIX_DEBUG:-0}" >= 1 )); then
-        buildFlagsArray+=(-x)
-      fi
-
-      if [ ''${#buildFlagsArray[@]} -ne 0 ]; then
-        declare -p buildFlagsArray > $TMPDIR/buildFlagsArray
-      else
-        touch $TMPDIR/buildFlagsArray
-      fi
-      if [ -z "$enableParallelBuilding" ]; then
-          export NIX_BUILD_CORES=1
-      fi
-      for pkg in $(getGoDirs ""); do
-        echo "Building subPackage $pkg"
-        buildGoDir install "$pkg"
-      done
-    '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
-      # normalize cross-compiled builds w.r.t. native builds
-      (
-        dir=$GOPATH/bin/${go.GOOS}_${go.GOARCH}
-        if [[ -n "$(shopt -s nullglob; echo $dir/*)" ]]; then
-          mv $dir/* $dir/..
-        fi
-        if [[ -d $dir ]]; then
-          rmdir $dir
-        fi
-      )
-    '' + ''
-      runHook postBuild
-    '';
-
-    doCheck = args.doCheck or false;
-    checkPhase = args.checkPhase or ''
-      runHook preCheck
-
-      for pkg in $(getGoDirs test); do
-        buildGoDir test "$pkg"
-      done
-
-      runHook postCheck
-    '';
-
-    installPhase = args.installPhase or ''
-      runHook preInstall
-
-      mkdir -p $out
-      dir="$GOPATH/bin"
-      [ -e "$dir" ] && cp -r $dir $out
-
-      runHook postInstall
-    '';
-
-    preFixup = (args.preFixup or "") + ''
-      find $out/bin -type f -exec ${removeExpr removeReferences} '{}' + || true
-    '';
-
-    strictDeps = true;
-
-    disallowedReferences = lib.optional (!allowGoReference) go;
-
-    passthru = passthru // { inherit go go-modules modSha256; };
-
-    meta = {
-      # Add default meta information
-      platforms = go.meta.platforms or lib.platforms.all;
-    } // meta // {
-      # add an extra maintainer to every package
-      maintainers = (meta.maintainers or []) ++
-                    [ lib.maintainers.kalbasit ];
-    };
-  });
-in if disabled then
-  throw "${package.name} not supported for go ${go.meta.branch}"
-else
-  package
diff --git a/pkgs/development/go-packages/generic/default.nix b/pkgs/development/go-packages/generic/default.nix
index 54d1c743bee..de0a35b6934 100644
--- a/pkgs/development/go-packages/generic/default.nix
+++ b/pkgs/development/go-packages/generic/default.nix
@@ -211,7 +211,7 @@ let
     '';
 
     preFixup = preFixup + ''
-      find $out/bin -type f -exec ${removeExpr removeReferences} '{}' + || true
+      find $out/{bin,libexec,lib} -type f 2>/dev/null | xargs -r ${removeExpr removeReferences} || true
     '';
 
     strictDeps = true;
diff --git a/pkgs/development/guile-modules/guile-sdl2/default.nix b/pkgs/development/guile-modules/guile-sdl2/default.nix
index be885d990ec..061d3c4a1db 100644
--- a/pkgs/development/guile-modules/guile-sdl2/default.nix
+++ b/pkgs/development/guile-modules/guile-sdl2/default.nix
@@ -5,13 +5,13 @@
 let
   name = "${pname}-${version}";
   pname = "guile-sdl2";
-  version = "0.4.0";
+  version = "0.5.0";
 in stdenv.mkDerivation {
   inherit name;
 
   src = fetchurl {
     url = "https://files.dthompson.us/${pname}/${name}.tar.gz";
-    sha256 = "0zcxwgyadwpbhq6h5mv2569c3kalgra26zc186y9fqiyyzmh1v9s";
+    sha256 = "118x0cg7fzbsyrfhy5f9ab7dqp9czgia0ycgzp6sn3nlsdrcnr4m";
   };
 
   nativeBuildInputs = [ libtool pkgconfig ];
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index bf1bfc8327d..0a61c0accb4 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -62,10 +62,6 @@ self: super: {
   mysql-simple = dontCheck super.mysql-simple;
   mysql-haskell = dontCheck super.mysql-haskell;
 
-  # Tests failing, fixed once 0.8.0 is in stackage
-  # https://gitlab.com/twittner/zeromq-haskell/issues/63
-  zeromq4-haskell = dontCheck super.zeromq4-haskell;
-
   # The Hackage tarball is purposefully broken, because it's not intended to be, like, useful.
   # https://git-annex.branchable.com/bugs/bash_completion_file_is_missing_in_the_6.20160527_tarball_on_hackage/
   git-annex = (overrideSrc super.git-annex {
@@ -73,7 +69,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 = "0adw72lw3ygls87w6i7hirf26gz991dkm992jb5f0h5nvy6d44pl";
+      sha256 = "1d24080xh7gl197i0y5bkn3j94hvh8zqyg9gfcnx2qdlxfca1knb";
     };
   }).override {
     dbus = if pkgs.stdenv.isLinux then self.dbus else null;
@@ -121,7 +117,6 @@ self: super: {
   });
 
   # The Haddock phase fails for one reason or another.
-  bytestring-progress = dontHaddock super.bytestring-progress;
   deepseq-magic = dontHaddock super.deepseq-magic;
   feldspar-signal = dontHaddock super.feldspar-signal; # https://github.com/markus-git/feldspar-signal/issues/1
   hoodle-core = dontHaddock super.hoodle-core;
@@ -175,9 +170,6 @@ self: super: {
   # Test suite depends on source code being available
   simple-affine-space = dontCheck super.simple-affine-space;
 
-  # https://github.com/kazu-yamamoto/simple-sendfile/issues/17
-  simple-sendfile = dontCheck super.simple-sendfile;
-
   # Fails no apparent reason. Upstream has been notified by e-mail.
   assertions = dontCheck super.assertions;
 
@@ -185,9 +177,7 @@ self: super: {
   cmaes = dontCheck super.cmaes;                        # http://hydra.cryp.to/build/498725/log/raw
   dbmigrations = dontCheck super.dbmigrations;
   filestore = dontCheck super.filestore;
-  getopt-generics = dontCheck super.getopt-generics;
   graceful = dontCheck super.graceful;
-  Hclip = dontCheck super.Hclip;
   HList = dontCheck super.HList;
   ide-backend = dontCheck super.ide-backend;
   marquise = dontCheck super.marquise;                  # https://github.com/anchor/marquise/issues/69
@@ -212,12 +202,18 @@ self: super: {
   # base bound
   digit = doJailbreak super.digit;
 
-  # 2020-06-05: HACK: does not passes own build suite - `dontCheck` We should
+  # 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;
+  hnix = dontCheck (super.hnix.override {
+    # The neat-interpolation package from stack is to old for hnix.
+    # https://github.com/haskell-nix/hnix/issues/676
+    # Once neat-interpolation >= 0.4 is in our stack release,
+    # (which should happen soon), we can remove this override
+    neat-interpolation = self.neat-interpolation_0_5_1_2;
+  });
 
   # Fails for non-obvious reasons while attempting to use doctest.
   search = dontCheck super.search;
@@ -244,7 +240,6 @@ self: super: {
   bloodhound = dontCheck super.bloodhound;
   buildwrapper = dontCheck super.buildwrapper;
   burst-detection = dontCheck super.burst-detection;    # http://hydra.cryp.to/build/496948/log/raw
-  cabal-bounds = dontCheck super.cabal-bounds;          # http://hydra.cryp.to/build/496935/nixlog/1/raw
   cabal-meta = dontCheck super.cabal-meta;              # http://hydra.cryp.to/build/497892/log/raw
   camfort = dontCheck super.camfort;
   cjk = dontCheck super.cjk;
@@ -301,7 +296,6 @@ self: super: {
   hs2048 = dontCheck super.hs2048;
   hsbencher = dontCheck super.hsbencher;
   hsexif = dontCheck super.hsexif;
-  hspec-core = if pkgs.stdenv.isi686 then dontCheck super.hspec-core else super.hspec-core; # tests rely on `Int` being 64-bit; https://github.com/hspec/hspec/issues/431
   hspec-server = dontCheck super.hspec-server;
   HTF = dontCheck super.HTF;
   htsn = dontCheck super.htsn;
@@ -315,12 +309,24 @@ self: super: {
   language-slice = dontCheck super.language-slice;
   ldap-client = dontCheck super.ldap-client;
   lensref = dontCheck super.lensref;
-  lucid = dontCheck super.lucid; #https://github.com/chrisdone/lucid/issues/25
   lvmrun = disableHardening (dontCheck super.lvmrun) ["format"];
+  math-functions = if pkgs.stdenv.isDarwin
+    then dontCheck super.math-functions # "erf table" test fails on Darwin https://github.com/bos/math-functions/issues/63
+    else super.math-functions;
   matplotlib = dontCheck super.matplotlib;
+
+  # Needs the latest version of vty and brick.
+  matterhorn = super.matterhorn.overrideScope (self: super: {
+    brick = self.brick_0_55;
+    vty = self.vty_5_30;
+  });
+
   memcache = dontCheck super.memcache;
   metrics = dontCheck super.metrics;
   milena = dontCheck super.milena;
+  mockery = if pkgs.stdenv.isDarwin
+    then overrideCabal super.mockery (drv: { preCheck = "export TRAVIS=true"; }) # darwin doesn't have sub-second resolution https://github.com/hspec/mockery/issues/11
+    else super.mockery;
   modular-arithmetic = dontCheck super.modular-arithmetic; # tests require a very old Glob (0.7.*)
   nats-queue = dontCheck super.nats-queue;
   netpbm = dontCheck super.netpbm;
@@ -369,6 +375,7 @@ self: super: {
   tickle = dontCheck super.tickle;
   tpdb = dontCheck super.tpdb;
   translatable-intset = dontCheck super.translatable-intset;
+  trifecta = if pkgs.stdenv.hostPlatform.isAarch64 then dontCheck super.trifecta else super.trifecta; # affected by this bug https://gitlab.haskell.org/ghc/ghc/-/issues/15275#note_295461
   ua-parser = dontCheck super.ua-parser;
   unagi-chan = dontCheck super.unagi-chan;
   wai-logger = dontCheck super.wai-logger;
@@ -445,7 +452,7 @@ self: super: {
   # https://github.com/junjihashimoto/test-sandbox-compose/issues/2
   test-sandbox-compose = dontCheck super.test-sandbox-compose;
 
-  # https://github.com/tych0/xcffib/issues/37
+  # Waiting on language-python 0.5.8 https://github.com/bjpop/language-python/issues/60
   xcffib = dontCheck super.xcffib;
 
   # https://github.com/afcowie/locators/issues/1
@@ -460,6 +467,12 @@ self: super: {
   bytestring-strict-builder = dontCheck super.bytestring-strict-builder;
   bytestring-tree-builder = dontCheck super.bytestring-tree-builder;
 
+  # https://github.com/byteverse/bytebuild/issues/19
+  bytebuild = dontCheck super.bytebuild;
+
+  # https://github.com/andrewthad/haskell-ip/issues/67
+  ip = dontCheck super.ip;
+
   # https://github.com/ndmitchell/shake/issues/206
   # https://github.com/ndmitchell/shake/issues/267
   shake = overrideCabal super.shake (drv: { doCheck = !pkgs.stdenv.isDarwin && false; });
@@ -486,21 +499,12 @@ self: super: {
      then self.buildHaskellPackages.tasty-discover
      else dontCheck super.tasty-discover);
 
-  # generic-deriving bound is too tight
-  # aeson 1.4.6.0 needs Diff 0.4.0 to do tests but nixpkgs is still at 0.3.4
-  # https://github.com/bos/aeson/issues/740
-  aeson = dontCheck (doJailbreak super.aeson);
-
-  # containers >=0.4 && <0.6 is too tight
-  # https://github.com/RaphaelJ/friday/issues/34
+  # Waiting on https://github.com/RaphaelJ/friday/pull/36
   friday = doJailbreak super.friday;
 
   # Won't compile with recent versions of QuickCheck.
   inilist = dontCheck super.inilist;
 
-  # Doesn't accept recent versions of 'base' or QuickCheck.
-  MissingH = dontCheck (doJailbreak super.MissingH);
-
   # https://github.com/yaccz/saturnin/issues/3
   Saturnin = dontCheck super.Saturnin;
 
@@ -513,12 +517,6 @@ self: super: {
   # https://github.com/alphaHeavy/lzma-enumerator/issues/3
   lzma-enumerator = dontCheck super.lzma-enumerator;
 
-  # https://github.com/haskell-hvr/lzma/issues/14
-  lzma = dontCheck super.lzma;
-
-  # https://github.com/BNFC/bnfc/issues/140
-  BNFC = dontCheck super.BNFC;
-
   # FPCO's fork of Cabal won't succeed its test suite.
   Cabal-ide-backend = dontCheck super.Cabal-ide-backend;
 
@@ -533,21 +531,12 @@ self: super: {
   inline-c-win32 = dontDistribute super.inline-c-win32;
   Southpaw = dontDistribute super.Southpaw;
 
-  # https://github.com/yesodweb/serversession/issues/1
-  serversession = dontCheck super.serversession;
-
   # Hydra no longer allows building texlive packages.
   lhs2tex = dontDistribute super.lhs2tex;
 
   # https://ghc.haskell.org/trac/ghc/ticket/9825
   vimus = overrideCabal super.vimus (drv: { broken = pkgs.stdenv.isLinux && pkgs.stdenv.isi686; });
 
-  # https://github.com/hspec/mockery/issues/6
-  mockery = overrideCabal super.mockery (drv: { preCheck = "export TRAVIS=true"; });
-
-  # https://github.com/alphaHeavy/lzma-conduit/issues/5
-  lzma-conduit = dontCheck super.lzma-conduit;
-
   # https://github.com/kazu-yamamoto/logger/issues/42
   logger = dontCheck super.logger;
 
@@ -578,25 +567,10 @@ self: super: {
     sha256 = "13g462qmj8c7if797gnyvf8h0cddmm3xy0pjldw48w8f8sr4qsj0";
   });
 
-  # https://github.com/athanclark/sets/issues/2
-  sets = dontCheck super.sets;
-
   # Install icons, metadata and cli program.
   bustle = overrideCabal super.bustle (drv: {
     buildDepends = [ pkgs.libpcap ];
     buildTools = with pkgs.buildPackages; [ gettext perl help2man ];
-    patches = [
-      # fix build
-      # https://gitlab.freedesktop.org/bustle/bustle/merge_requests/14
-      (pkgs.fetchpatch {
-        url = "https://gitlab.freedesktop.org/bustle/bustle/commit/ee4b81cbc232d47ba9940f1987777b17452e71ff.patch";
-        sha256 = "0v9cvbmrma5jcqcg1narpm1549h0cg8mr6i00qxmq0x6hs04dnwa";
-      })
-      (pkgs.fetchpatch {
-        url = "https://gitlab.freedesktop.org/bustle/bustle/commit/aae6843f51f54679d440fb3813e61355dc8406b9.patch";
-        sha256 = "1a8hr38hd1gdkqhsy56hyl7njw8ci79iigr81aalkb7hn4ckvh2a";
-      })
-    ];
     postInstall = ''
       make install PREFIX=$out
     '';
@@ -664,9 +638,6 @@ self: super: {
   # https://github.com/pxqr/base32-bytestring/issues/4
   base32-bytestring = dontCheck super.base32-bytestring;
 
-  # https://github.com/goldfirere/singletons/issues/122
-  singletons = dontCheck super.singletons;
-
   # Djinn's last release was 2014, incompatible with Semigroup-Monoid Proposal
   # https://github.com/augustss/djinn/pull/8
   djinn = appendPatch super.djinn (pkgs.fetchpatch {
@@ -677,9 +648,6 @@ self: super: {
   # We cannot build this package w/o the C library from <http://www.phash.org/>.
   phash = markBroken super.phash;
 
-  # We get lots of strange compiler errors during the test suite run.
-  jsaddle = dontCheck super.jsaddle;
-
   # https://github.com/Philonous/hs-stun/pull/1
   # Remove if a version > 0.1.0.1 ever gets released.
   stunclient = overrideCabal super.stunclient (drv: {
@@ -691,9 +659,6 @@ self: super: {
   # The standard libraries are compiled separately.
   idris = generateOptparseApplicativeCompletion "idris" (dontCheck super.idris);
 
-  # https://github.com/bos/math-functions/issues/25
-  math-functions = dontCheck super.math-functions;
-
   # build servant docs from the repository
   servant =
     let
@@ -731,10 +696,6 @@ self: super: {
   # https://github.com/bmillwood/applicative-quoters/issues/6
   applicative-quoters = doJailbreak super.applicative-quoters;
 
-  # https://github.com/roelvandijk/terminal-progress-bar/issues/13
-  # Still needed because of HUnit < 1.6
-  terminal-progress-bar = doJailbreak super.terminal-progress-bar;
-
   # https://hydra.nixos.org/build/42769611/nixlog/1/raw
   # note: the library is unmaintained, no upstream issue
   dataenc = doJailbreak super.dataenc;
@@ -757,39 +718,17 @@ self: super: {
   # No upstream issue tracker
   hspec-expectations-pretty-diff = dontCheck super.hspec-expectations-pretty-diff;
 
-  # https://github.com/basvandijk/lifted-base/issues/34
-  # Still needed as HUnit < 1.5
-  lifted-base = doJailbreak super.lifted-base;
-
   # Don't depend on chell-quickcheck, which doesn't compile due to restricting
   # QuickCheck to versions ">=2.3 && <2.9".
   system-filepath = dontCheck super.system-filepath;
 
-  # https://github.com/basvandijk/case-insensitive/issues/24
-  # Still needed as HUnit < 1.6
-  case-insensitive = doJailbreak super.case-insensitive;
-
   # https://github.com/hvr/uuid/issues/28
   uuid-types = doJailbreak super.uuid-types;
   uuid = doJailbreak super.uuid;
 
-  # https://github.com/ekmett/lens/issues/713
-  lens = disableCabalFlag super.lens "test-doctests";
-
-  # https://github.com/haskell/fgl/issues/60
-  # Needed for QuickCheck < 2.10
-  fgl = dontCheck super.fgl;
-  fgl-arbitrary = doJailbreak super.fgl-arbitrary;
-
   # The tests spuriously fail
   libmpd = dontCheck super.libmpd;
 
-  # https://github.com/dan-t/cabal-lenses/issues/6
-  cabal-lenses = doJailbreak super.cabal-lenses;
-
-  # https://github.com/fizruk/http-api-data/issues/49
-  http-api-data = dontCheck super.http-api-data;
-
   # https://github.com/diagrams/diagrams-lib/issues/288
   diagrams-lib = overrideCabal super.diagrams-lib (drv: { doCheck = !pkgs.stdenv.isi686; });
 
@@ -819,9 +758,6 @@ self: super: {
   digestive-functors-blaze = doJailbreak super.digestive-functors-blaze;
   digestive-functors = doJailbreak super.digestive-functors;
 
-  # missing dependencies: doctest ==0.12.*
-  html-entities = doJailbreak super.html-entities;
-
   # https://github.com/takano-akio/filelock/issues/5
   filelock = dontCheck super.filelock;
 
@@ -841,8 +777,7 @@ self: super: {
   grakn = dontCheck (doJailbreak super.grakn);
 
   # test suite requires git and does a bunch of git operations
-  # doJailbreak because of hardcoded time, seems to be fixed upstream
-  restless-git = dontCheck (doJailbreak super.restless-git);
+  restless-git = dontCheck super.restless-git;
 
   # Depends on broken fluid.
   fluid-idl-http-client = markBroken super.fluid-idl-http-client;
@@ -859,20 +794,18 @@ self: super: {
 
   # Needs QuickCheck <2.10, which we don't have.
   edit-distance = doJailbreak super.edit-distance;
-  blaze-markup = doJailbreak super.blaze-markup;
   blaze-html = doJailbreak super.blaze-html;
-  attoparsec = dontCheck super.attoparsec;      # 1 out of 67 tests fails
   int-cast = doJailbreak super.int-cast;
-  nix-derivation = doJailbreak super.nix-derivation;
 
   # Needs QuickCheck <2.10, HUnit <1.6 and base <4.10
   pointfree = doJailbreak super.pointfree;
 
+  # Depends on tasty < 1.x, which we don't have.
+  cryptohash-sha256 = doJailbreak super.cryptohash-sha256;
+
   # Needs tasty-quickcheck ==0.8.*, which we don't have.
-  cryptohash-sha256 = dontCheck super.cryptohash-sha256;
   cryptohash-sha1 = doJailbreak super.cryptohash-sha1;
   cryptohash-md5 = doJailbreak super.cryptohash-md5;
-  text-short = doJailbreak super.text-short;
   gitHUD = dontCheck super.gitHUD;
   githud = dontCheck super.githud;
 
@@ -880,7 +813,6 @@ self: super: {
   config-ini = dontCheck super.config-ini;
 
   # doctest >=0.9 && <0.12
-  genvalidity-property = doJailbreak super.genvalidity-property;
   path = dontCheck super.path;
 
   # Test suite fails due to trying to create directories
@@ -909,14 +841,9 @@ self: super: {
           then dontCheck
           else pkgs.lib.id;
     in doJailbreak (f super.servant-docs); # jailbreak tasty < 1.2 until servant-docs > 0.11.3 is on hackage.
+  snap-templates = doJailbreak super.snap-templates; # https://github.com/snapframework/snap-templates/issues/22
   swagger2 = if (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64) then dontHaddock (dontCheck super.swagger2) else super.swagger2;
 
-  # requires a release including https://github.com/haskell-servant/servant-swagger/commit/249530d9f85fe76dfb18b100542f75a27e6a3079
-  servant-swagger = dontCheck super.servant-swagger;
-
-  # Tries to read a file it is not allowed to in the test suite
-  load-env = dontCheck super.load-env;
-
   # Copy hledger man pages from data directory into the proper place. This code
   # should be moved into the cabal2nix generator.
   hledger = overrideCabal super.hledger (drv: {
@@ -959,18 +886,8 @@ self: super: {
     '';
   });
 
-  # https://github.com/haskell-rewriting/term-rewriting/pull/15
-  # remove on next hackage update
-  term-rewriting = doJailbreak super.term-rewriting;
-
-  # https://github.com/GaloisInc/pure-zlib/pull/11
-  pure-zlib = doJailbreak super.pure-zlib;
-
-  # https://github.com/strake/lenz-template.hs/pull/2
-  lenz-template = doJailbreak super.lenz-template;
 
   # https://github.com/haskell-hvr/resolv/pull/6
-  resolv = dontCheck super.resolv;
   resolv_0_1_1_2 = dontCheck super.resolv_0_1_1_2;
 
   # spdx 0.2.2.0 needs older tasty
@@ -989,44 +906,27 @@ self: super: {
   # Compiles some C++ source which requires these headers
   VulkanMemoryAllocator = addExtraLibrary super.VulkanMemoryAllocator pkgs.vulkan-headers;
 
-  # # Builds only with the latest version of indexed-list-literals.
-  # vector-sized_1_0_3_0 = super.vector-sized_1_0_3_0.override {
-  #   indexed-list-literals = self.indexed-list-literals_0_2_1_1;
-  # };
-
   # https://github.com/dmwit/encoding/pull/3
   encoding = doJailbreak (appendPatch super.encoding ./patches/encoding-Cabal-2.0.patch);
 
   # Work around overspecified constraint on github ==0.18.
   github-backup = doJailbreak super.github-backup;
 
-  # Test suite depends on old QuickCheck 2.10.x.
-  cassava = dontCheck super.cassava;
-
   # Test suite depends on cabal-install
   doctest = dontCheck super.doctest;
 
   # https://github.com/haskell-servant/servant-auth/issues/113
   servant-auth-client = dontCheck super.servant-auth-client;
 
-  # Test has either build errors or fails anyway, depending on the compiler.
-  vector-algorithms = dontCheck super.vector-algorithms;
-
-  # 2020-06-04: HACK: dontCheck - The test suite attempts to use the network.
-  # Should be solved when: https://github.com/dhall-lang/dhall-haskell/issues/1837
-  dhall = (generateOptparseApplicativeCompletion "dhall" (dontCheck super.dhall)).override { repline = self.repline_0_3_0_0; };
-  dhall_1_30_0 = dontCheck super.dhall_1_30_0;
-  repline_0_3_0_0 = super.repline_0_3_0_0.override { haskeline = self.haskeline_0_8_0_0; };
-  haskeline_0_8_0_0 = dontCheck super.haskeline_0_8_0_0;
-
-  dhall-json =
-    generateOptparseApplicativeCompletions ["dhall-to-json" "dhall-to-yaml"]
-      super.dhall-json;
-
-  dhall-nix =
-    generateOptparseApplicativeCompletion "dhall-to-nix" (
-      super.dhall-nix
-  );
+  # Generate cli completions for dhall.
+  dhall = generateOptparseApplicativeCompletion "dhall" super.dhall;
+  dhall-json = generateOptparseApplicativeCompletions ["dhall-to-json" "dhall-to-yaml"] super.dhall-json;
+  dhall-nix = generateOptparseApplicativeCompletion "dhall-to-nix" (
+    super.dhall-nix.overrideScope (self: super: {
+      dhall = super.dhall_1_34_0;
+      repline = self.repline_0_4_0_0;
+      haskeline = self.haskeline_0_8_1_0;
+    }));
 
   # https://github.com/haskell-hvr/netrc/pull/2#issuecomment-469526558
   netrc = doJailbreak super.netrc;
@@ -1050,9 +950,6 @@ self: super: {
     sha256 = "056rk58v9h114mjx62f41x971xn9p3nhsazcf9zrcyxh1ymrdm8j";
   });
 
-  # needed because of testing-feat >=0.4.0.2 && <1.1
-  language-ecmascript = doJailbreak super.language-ecmascript;
-
   # sexpr is old, broken and has no issue-tracker. Let's fix it the best we can.
   sexpr =
     appendPatch (overrideCabal super.sexpr (drv: {
@@ -1063,9 +960,6 @@ self: super: {
   # https://github.com/haskell/hoopl/issues/50
   hoopl = dontCheck super.hoopl;
 
-  # https://github.com/snapframework/xmlhtml/pull/37
-  xmlhtml = doJailbreak super.xmlhtml;
-
   purescript =
     let
       purescriptWithOverrides = super.purescript.override {
@@ -1084,6 +978,9 @@ self: super: {
     # Generate shell completions
     generateOptparseApplicativeCompletion "purs" dontHaddockPurescript;
 
+  # Generate shell completion for spago
+  spago = generateOptparseApplicativeCompletion "spago" super.spago;
+
   # 2020-06-05: HACK: Package can not pass test suite,
   # Upstream Report: https://github.com/kcsongor/generic-lens/issues/83
   generic-lens = dontCheck super.generic-lens;
@@ -1101,12 +998,8 @@ self: super: {
   # });
   libnix = dontCheck super.libnix;
 
-  # 2020-06-23: NOTE: > 0.33 => rm 464.patch: https://github.com/jaor/xmobar/issues/466
   # dontCheck: The test suite tries to mess with ALSA, which doesn't work in the build sandbox.
-  xmobar = appendPatch (dontCheck super.xmobar) (pkgs.fetchpatch {
-    url = "https://github.com/jaor/xmobar/pull/464.patch";
-    sha256 = "0y1dd878yzy1cx0cjj0ijd3dmywr7jdmk68vxdjimxzblrdw1al6";
-  });
+  xmobar = dontCheck super.xmobar;
 
   # https://github.com/mgajda/json-autotype/issues/25
   json-autotype = dontCheck super.json-autotype;
@@ -1124,19 +1017,6 @@ self: super: {
     })];
   });
 
-  # Remove unecessary constraint:
-  # https://github.com/haskell-infra/hackage-trustees/issues/258
-  data-accessor-template = overrideCabal super.data-accessor-template (drv: {
-    postPatch = ''
-      sed -i 's#template-haskell >=2.11 && <2.15#template-haskell#' data-accessor-template.cabal
-    '';
-  });
-
-  # 2020-06-05: HACK: In Nixpkgs currently this is
-  # old pandoc version 2.7.4 to current 2.9.2.1,
-  # test suite failures: https://github.com/jgm/pandoc/issues/5582
-  pandoc = dontCheck super.pandoc;
-
   # Fix build with attr-2.4.48 (see #53716)
   xattr = appendPatch super.xattr ./patches/xattr-fix-build.patch;
 
@@ -1169,9 +1049,6 @@ self: super: {
   # Test suite won't link for no apparent reason.
   constraints-deriving = dontCheck super.constraints-deriving;
 
-  # QuickCheck >=2.3 && <2.13, hspec >=2.1 && <2.7
-  graphviz = dontCheck super.graphviz;
-
   # https://github.com/elliottt/hsopenid/issues/15
   openid = markBroken super.openid;
 
@@ -1184,10 +1061,6 @@ self: super: {
     '';
   });
 
-  # The doctests in universum-1.5.0 are broken.  The doctests in versions of universum after
-  # 1.5.0 should be fixed, so this should be able to be removed.
-  universum = dontCheck super.universum;
-
   # https://github.com/erikd/hjsmin/issues/32
   hjsmin = dontCheck super.hjsmin;
 
@@ -1206,9 +1079,6 @@ self: super: {
   # upstream issue: https://github.com/vmchale/atspkg/issues/12
   language-ats = dontCheck super.language-ats;
 
-  # https://github.com/Happstack/web-routes-th/pull/3
-  web-routes-th = doJailbreak super.web-routes-th;
-
   # Remove for hail > 0.2.0.0
   hail = overrideCabal super.hail (drv: {
     patches = [
@@ -1230,9 +1100,6 @@ self: super: {
   # https://github.com/kazu-yamamoto/dns/issues/150
   dns = dontCheck super.dns;
 
-  # Support recent versions of fast-logger.
-  spacecookie = doJailbreak super.spacecookie;
-
   # apply patches from https://github.com/snapframework/snap-server/pull/126
   # manually until they are accepted upstream
   snap-server = overrideCabal super.snap-server (drv: {
@@ -1254,9 +1121,6 @@ self: super: {
   # https://github.com/haskell-servant/servant-ekg/issues/15
   servant-ekg = doJailbreak super.servant-ekg;
 
-  # krank-0.1.0 does not accept PyF-0.9.0.0.
-  krank = doJailbreak super.krank;
-
   # the test suite has an overly tight restriction on doctest
   # See https://github.com/ekmett/perhaps/pull/5
   perhaps = doJailbreak super.perhaps;
@@ -1280,9 +1144,6 @@ self: super: {
     '';
   });
 
-  # Unnecessary upper bound on vector <0.12.1
-  bitwise-enum = doJailbreak super.bitwise-enum;
-
   # This breaks because of version bounds, but compiles and runs fine.
   # Last commit is 5 years ago, so we likely won't get upstream fixed soon.
   # https://bitbucket.org/rvlm/hakyll-contrib-hyphenation/src/master/
@@ -1295,13 +1156,6 @@ self: super: {
   # 2020-06-22: NOTE: QuickCheck upstreamed https://github.com/phadej/binary-instances/issues/7
   binary-instances = dontCheck super.binary-instances;
 
-  # Disabling the test suite lets the build succeed on older CPUs
-  # that are unable to run the generated library because they
-  # lack support for AES-NI, like some of our Hydra build slaves
-  # do. See https://github.com/NixOS/nixpkgs/issues/81915 for
-  # details.
-  cryptonite = dontCheck super.cryptonite;
-
   # The test suite depends on an impure cabal-install installation in
   # $HOME, which we don't have in our build sandbox.
   cabal-install-parsers = dontCheck super.cabal-install-parsers;
@@ -1309,9 +1163,6 @@ self: super: {
   # gitit is unbroken in the latest release
   gitit = markUnbroken super.gitit;
 
-  # haskell-ci-0.8 needs cabal-install-parsers ==0.1, but we have 0.2.
-  haskell-ci = doJailbreak super.haskell-ci;
-
   # Test suite requires database
   persistent-mysql = dontCheck super.persistent-mysql;
   persistent-postgresql = dontCheck super.persistent-postgresql;
@@ -1358,7 +1209,15 @@ self: super: {
 
   # this will probably need to get updated with every ghcide update,
   # we need an override because ghcide is tracking haskell-lsp closely.
-  ghcide = dontCheck (super.ghcide.override { ghc-check = self.ghc-check_0_3_0_1; });
+  ghcide = dontCheck (appendPatch (super.ghcide.override {
+    hie-bios = dontCheck super.hie-bios_0_7_1;
+    lsp-test = dontCheck self.lsp-test_0_11_0_4;
+  }) (pkgs.fetchpatch {
+    # This patch loosens the hie-bios upper bound.
+    # It is already merged into upstream and won‘t be needed for ghcide 0.4.0
+    url = "https://github.com/haskell/ghcide/commit/3e1b3620948870a4da8808ca0c0897fbd3ecad16.patch";
+    sha256 = "1jwn7jgi740x6wwv1k0mz9d4z0b9p3mzs54pdg4nfq0h2v7zxchz";
+  }));
 
   # hasn‘t bumped upper bounds
   # upstream: https://github.com/obsidiansystems/which/pull/6
@@ -1373,14 +1232,6 @@ self: super: {
 
   # Requested version bump on upstream https://github.com/obsidiansystems/constraints-extras/issues/32
   constraints-extras = doJailbreak super.constraints-extras;
-  # 2020-06-22: NOTE: > 0.10.0.0 => rm dhall override: https://github.com/srid/rib/issues/161
-  rib = doJailbreak (super.rib.override {
-    dhall = self.dhall_1_30_0;
-  });
-  # Necessary for neuron 0.4.0
-  neuron = super.neuron.override {
-    dhall = self.dhall_1_30_0;
-  };
 
   # Necessary for stack
   # x509-validation test suite hangs: upstream https://github.com/vincenthz/hs-certificate/issues/120
@@ -1388,13 +1239,6 @@ self: super: {
   x509-validation = dontCheck super.x509-validation;
   tls = dontCheck super.tls;
 
-  # Upstream PR: https://github.com/bgamari/monoidal-containers/pull/62
-  # Bump these version bound
-  monoidal-containers = appendPatch super.monoidal-containers (pkgs.fetchpatch {
-    url = "https://github.com/bgamari/monoidal-containers/commit/715093b22a015398a1390f636be6f39a0de83254.patch";
-    sha256="1lfxvwp8g55ljxvj50acsb0wjhrvp2hvir8y0j5pfjkd1kq628ng";
-  });
-
   patch = appendPatches super.patch [
     # Upstream PR: https://github.com/reflex-frp/patch/pull/20
     # Makes tests work with hlint 3
@@ -1459,15 +1303,8 @@ self: super: {
     sha256 = "0v6kv1d4syjzgzc2s7a76c6k4vminlcq62n7jg3nn9xd00gwmmv7";
   });
 
-  # Picking fixed version constraint from upstream
-  # Issue: https://github.com/ghcjs/jsaddle/issues/115
   # Tests disabled because they assume to run in the whole jsaddle repo and not the hackage tarbal of jsaddle-warp.
-  jsaddle-warp = dontCheck (appendPatch super.jsaddle-warp (pkgs.fetchpatch {
-    url = "https://github.com/ghcjs/jsaddle/commit/86b166033186c1724d4d52eeaf0935f0f29fe1ca.patch";
-    sha256 = "0j4g3hcqrandlnzr9n9mixygg86accdyk2nyj9hh9g4p7mrcyb7j";
-    stripLen = 2;
-    extraPrefix = "";
-  }));
+  jsaddle-warp = dontCheck super.jsaddle-warp;
 
   # 2020-06-24: Jailbreaking because of restrictive test dep bounds
   # Upstream issue: https://github.com/kowainik/trial/issues/62
@@ -1481,7 +1318,184 @@ self: super: {
   # See: https://github.com/robstewart57/rdf4h/issues/39
   rdf4h = dontCheck super.rdf4h;
 
+  # hasn't bumped upper bounds
+  # test fails: "floskell-test: styles/base.md: openBinaryFile: does not exist (No such file or directory)"
+  # https://github.com/ennocramer/floskell/issues/48
+  floskell = dontCheck (doJailbreak super.floskell);
+
+  # hasn't bumped upper bounds
+  # test fails because of a "Warning: Unused LANGUAGE pragma"
+  # https://github.com/ennocramer/monad-dijkstra/issues/4
+  monad-dijkstra = dontCheck (doJailbreak super.monad-dijkstra);
+
+  # Fixed upstream but not released to Hackage yet:
+  # https://github.com/k0001/hs-libsodium/issues/2
+  libsodium = overrideCabal super.libsodium (drv: {
+    libraryToolDepends = (drv.libraryToolDepends or []) ++ [self.c2hs];
+  });
+
   # https://github.com/kowainik/policeman/issues/57
   policeman = doJailbreak super.policeman;
 
-} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
+  # 2020-08-14: gi-pango from stackage is to old for the C libs it links against in nixpkgs.
+  # That's why we need to bump a ton of dependency versions to unbreak them.
+  gi-pango = assert super.gi-pango.version == "1.0.22"; self.gi-pango_1_0_23;
+  haskell-gi-base = assert super.haskell-gi-base.version == "0.23.0"; addBuildDepends (self.haskell-gi-base_0_24_2) [ pkgs.gobject-introspection ];
+  haskell-gi = assert super.haskell-gi.version == "0.23.1"; self.haskell-gi_0_24_4;
+  gi-cairo = assert super.gi-cairo.version == "1.0.23"; self.gi-cairo_1_0_24;
+  gi-glib = assert super.gi-glib.version == "2.0.23"; self.gi-glib_2_0_24;
+  gi-gobject = assert super.gi-gobject.version == "2.0.22"; self.gi-gobject_2_0_24;
+  gi-atk = assert super.gi-atk.version == "2.0.21"; self.gi-atk_2_0_22;
+  gi-gio = assert super.gi-gio.version == "2.0.26"; self.gi-gio_2_0_27;
+  gi-gdk = assert super.gi-gdk.version == "3.0.22"; self.gi-gdk_3_0_23;
+  gi-gtk = assert super.gi-gtk.version == "3.0.33"; self.gi-gtk_3_0_35;
+  gi-gdkpixbuf = assert super.gi-gdkpixbuf.version == "2.0.23"; self.gi-gdkpixbuf_2_0_24;
+
+  # 2020-08-14: Needs some manual patching to be compatible with haskell-gi-base 0.24
+  # Created upstream PR @ https://github.com/ghcjs/jsaddle/pull/119
+  jsaddle-webkit2gtk = appendPatch super.jsaddle-webkit2gtk (pkgs.fetchpatch {
+    url = "https://github.com/ghcjs/jsaddle/compare/9727365...f842748.patch";
+    sha256 = "07l4l999lmlx7sqxf7v4f70rmxhx9r0cjblkgc4n0y6jin4iv1cb";
+    stripLen = 2;
+    extraPrefix = "";
+  });
+
+  # Missing -Iinclude parameter to doc-tests (pull has been accepted, so should be resolved when 0.5.3 released)
+  # https://github.com/lehins/massiv/pull/104
+  massiv = dontCheck super.massiv;
+
+  # Upstream PR: https://github.com/jkff/splot/pull/9
+  splot = appendPatch super.splot (pkgs.fetchpatch {
+    url = "https://github.com/jkff/splot/commit/a6710b05470d25cb5373481cf1cfc1febd686407.patch";
+    sha256 = "1c5ck2ibag2gcyag6rjivmlwdlp5k0dmr8nhk7wlkzq2vh7zgw63";
+  });
+
+  # Version bumps have not been merged by upstream yet.
+  # https://github.com/obsidiansystems/dependent-sum-aeson-orphans/pull/5
+  dependent-sum-aeson-orphans = appendPatch super.dependent-sum-aeson-orphans (pkgs.fetchpatch {
+    url = "https://github.com/obsidiansystems/dependent-sum-aeson-orphans/commit/5a369e433ad7e3eef54c7c3725d34270f6aa48cc.patch";
+    sha256 = "1lzrcicvdg77hd8j2fg37z19amp5yna5xmw1fc06zi0j95csll4r";
+  });
+
+  # Tests are broken because of missing files in hackage tarball.
+  # https://github.com/jgm/commonmark-hs/issues/55
+  commonmark-extensions = dontCheck super.commonmark-extensions;
+
+  # Apply version-bump patch that is not contained in released version yet.
+  # Upstream PR: https://github.com/srid/neuron/pull/304
+  neuron = appendPatch super.neuron (pkgs.fetchpatch {
+    url= "https://github.com/srid/neuron/commit/9ddcb7e9d63b8266d1372ef7c14c13b6b5277990.patch";
+    sha256 = "01f9v3jnl05fnpd624wv3a0j5prcbnf62ysa16fbc0vabw19zv1b";
+    excludes = [ "commonmark-hs/github.json" ];
+    stripLen = 2;
+    extraPrefix = "";
+  });
+
+  # Testsuite trying to run `which haskeline-examples-Test`
+  haskeline_0_8_1_0 = dontCheck super.haskeline_0_8_1_0;
+
+  # Tests for list-t, superbuffer, and stm-containers
+  # depend on HTF and it is broken, 2020-08-23
+  list-t = dontCheck super.list-t;
+  superbuffer = dontCheck super.superbuffer;
+  stm-containers = dontCheck super.stm-containers;
+
+  # Fails with "supports custom headers"
+  Spock-core = dontCheck super.Spock-core;
+
+  # Needed by Hasura  1.3.1
+  dependent-map_0_2_4_0 = super.dependent-map_0_2_4_0.override {
+    dependent-sum = self.dependent-sum_0_4;
+  };
+
+  # Hasura 1.3.1
+  # Because of ghc-heap-view, profiling needs to be disabled.
+  graphql-engine = disableLibraryProfiling( overrideCabal (super.graphql-engine.override {
+     immortal = self.immortal_0_2_2_1;
+     dependent-map = self.dependent-map_0_2_4_0;
+     dependent-sum = self.dependent-sum_0_4;
+     witherable = self.witherable_0_3_2;
+  }) (drv: {
+     # version in cabal file is invalid
+     version = "1.3.1-beta1";
+     # hasura needs VERSION env exported during build
+     preBuild = "export VERSION=1.3.1-beta1";
+  }));
+
+  graphql-parser = super.graphql-parser.override {
+     protolude = self.protolude_0_3_0;
+  };
+
+  # Requires repline 0.4 which is the default only for ghc8101, override for the rest
+  zre = super.zre.override {
+    repline = self.repline_0_4_0_0.override {
+      haskeline = self.haskeline_0_8_1_0;
+    };
+  };
+
+  # https://github.com/bos/statistics/issues/170
+  statistics = dontCheck super.statistics;
+
+  hcoord = overrideCabal super.hcoord (drv: {
+    # Remove when https://github.com/danfran/hcoord/pull/8 is merged.
+    patches = [
+      (pkgs.fetchpatch {
+        url = "https://github.com/danfran/hcoord/pull/8/commits/762738b9e4284139f5c21f553667a9975bad688e.patch";
+        sha256 = "03r4jg9a6xh7w3jz3g4bs7ff35wa4rrmjgcggq51y0jc1sjqvhyz";
+      })
+    ];
+    # Remove when https://github.com/danfran/hcoord/issues/9 is closed.
+    doCheck = false;
+  });
+
+  # Tests rely on `Int` being 64-bit: https://github.com/hspec/hspec/issues/431.
+  # Also, we need QuickCheck-2.14.x to build the test suite, which isn't easy in LTS-16.x.
+  # So let's not go there and just disable the tests altogether.
+  hspec-core = dontCheck super.hspec-core;
+
+  # github.com/ucsd-progsys/liquidhaskell/issues/1729
+  liquidhaskell = super.liquidhaskell.override { Diff = self.Diff_0_3_4; };
+  Diff_0_3_4 = dontCheck super.Diff_0_3_4;
+
+  # We want the latest version of cryptonite. This is a first step towards
+  # resolving https://github.com/NixOS/nixpkgs/issues/81915.
+  cryptonite = self.cryptonite_0_27;
+
+  # We want the latest version of Pandoc.
+  hslua = self.hslua_1_1_2;
+  jira-wiki-markup = self.jira-wiki-markup_1_3_2;
+  pandoc = self.pandoc_2_10_1;
+  pandoc-citeproc = self.pandoc-citeproc_0_17_0_2;
+  pandoc-plot = self.pandoc-plot_0_9_2_0;
+  pandoc-types = self.pandoc-types_1_21;
+  rfc5051 = self.rfc5051_0_2;
+
+  # INSERT NEW OVERRIDES ABOVE THIS LINE
+
+} // (let
+  inherit (self) hls-ghcide;
+  hlsScopeOverride = self: super: {
+    # haskell-language-server uses its own fork of ghcide
+    # Test disabled: it seems to freeze (is it just that it takes a long time ?)
+    ghcide = hls-ghcide;
+    # we are faster than stack here
+    hie-bios = dontCheck super.hie-bios_0_7_1;
+    lsp-test = dontCheck super.lsp-test_0_11_0_4;
+    # fourmolu can‘t compile with an older aeson
+    aeson = dontCheck super.aeson_1_5_2_0;
+    # brittany has an aeson upper bound of 1.5
+    brittany = doJailbreak super.brittany;
+  };
+  in {
+    # jailbreaking for hie-bios 0.7.0 (upstream PR: https://github.com/haskell/haskell-language-server/pull/357)
+    haskell-language-server = dontCheck (doJailbreak (super.haskell-language-server.overrideScope hlsScopeOverride));
+    hls-ghcide = appendPatch (dontCheck (super.hls-ghcide.overrideScope hlsScopeOverride))
+      (pkgs.fetchpatch {
+        # This patch loosens the hie-bios upper bound.
+        # It is already merged into upstream and won‘t be needed for ghcide 0.4.0
+        url = "https://github.com/haskell/ghcide/commit/3e1b3620948870a4da8808ca0c0897fbd3ecad16.patch";
+        sha256 = "1jwn7jgi740x6wwv1k0mz9d4z0b9p3mzs54pdg4nfq0h2v7zxchz";
+      });
+    fourmolu = super.fourmolu.overrideScope hlsScopeOverride;
+  }
+)  // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
index 98e814b79d7..35a7d425a5b 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
@@ -61,36 +61,31 @@ self: super: {
   haddock-library = self.haddock-library_1_9_0;
 
   # Jailbreak to fix the build.
-  async = doJailbreak super.async;
   base-noprelude = doJailbreak super.base-noprelude;
-  ChasingBottoms = doJailbreak super.ChasingBottoms;
-  ed25519 = doJailbreak super.ed25519;
-  email-validate = doJailbreak super.email-validate;  # https://github.com/Porges/email-validate-hs/issues/51
-  feed = doJailbreak super.feed;  # https://github.com/bergmark/feed/issues/48
-  hashable = doJailbreak super.hashable;
-  pandoc = doJailbreak super.pandoc;
-  parallel = doJailbreak super.parallel;
-  regex-base = doJailbreak super.regex-base;
-  regex-compat = doJailbreak super.regex-compat;
-  regex-pcre-builtin = doJailbreak super.regex-pcre-builtin;
-  regex-posix = doJailbreak super.regex-posix;
-  regex-tdfa = doJailbreak super.regex-tdfa;
-  split = doJailbreak super.split;
   system-fileio = doJailbreak super.system-fileio;
-  tar = doJailbreak super.tar;
-  tasty-expected-failure = doJailbreak super.tasty-expected-failure;
-  tasty-rerun = doJailbreak super.tasty-rerun;  # https://github.com/ocharles/tasty-rerun/issues/18
   unliftio-core = doJailbreak super.unliftio-core;
-  vector = doJailbreak super.vector;
-  zlib = doJailbreak super.zlib;
 
   # Use the latest version to fix the build.
+  dhall = self.dhall_1_34_0;
   lens = self.lens_4_19_2;
-  optics-core = self.optics-core_0_3;
+  optics = self.optics_0_3;
+  optics-core = self.optics-core_0_3_0_1;
+  optics-extra = self.optics-extra_0_3;
+  optics-th = self.optics-th_0_3_0_2;
   repline = self.repline_0_4_0_0;
   singletons = self.singletons_2_7;
   th-desugar = self.th-desugar_1_11;
 
+  insert-ordered-containers = super.insert-ordered-containers.override {
+    optics-core = self.optics-core_0_3_0_1;
+    optics-extra = self.optics-extra_0_3.override {
+      optics-core = self.optics-core_0_3_0_1;
+    };
+  };
+
+  # Jailbreaking because monoidal-containers hasn‘t bumped it's base dependency for 8.10.
+  monoidal-containers = doJailbreak super.monoidal-containers;
+
   # `ghc-lib-parser-ex` (see conditionals in its `.cabal` file) does not need
   # the `ghc-lib-parser` dependency on GHC >= 8.8. However, because we have
   # multiple verions of `ghc-lib-parser(-ex)` available, and the default ones
@@ -99,16 +94,12 @@ self: super: {
   ghc-lib-parser-ex = super.ghc-lib-parser-ex.override { ghc-lib-parser = null; };
 
   # Jailbreak to fix the build.
-  aeson-diff = doJailbreak super.aeson-diff;
   brick = doJailbreak super.brick;
-  cabal-plan = doJailbreak super.cabal-plan;
-  cborg = doJailbreak super.cborg;
-  cborg-json = doJailbreak super.cborg-json;
   exact-pi = doJailbreak super.exact-pi;
-  relude = dontCheck (doJailbreak super.relude);
   serialise = doJailbreak super.serialise;
   setlocale = doJailbreak super.setlocale;
   shellmet = doJailbreak super.shellmet;
+  shower = doJailbreak super.shower;
 
   # The shipped Setup.hs file is broken.
   csv = overrideCabal super.csv (drv: { preCompileBuildDriver = "rm Setup.hs"; });
@@ -132,6 +123,10 @@ self: super: {
   });
 
   # hnix 0.9.0 does not provide an executable for ghc < 8.10, so define completions here for now.
-  hnix = generateOptparseApplicativeCompletion "hnix" super.hnix;
+  hnix = generateOptparseApplicativeCompletion "hnix"
+    (overrideCabal super.hnix (drv: {
+      # executable is allowed for ghc >= 8.10 and needs repline
+      executableHaskellDepends = drv.executableToolDepends or [] ++ [ self.repline ];
+    }));
 
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
index 57c38b22ccd..339fda5d6fb 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
@@ -64,6 +64,7 @@ self: super: {
   monad-par = dontCheck super.monad-par;  # https://github.com/simonmar/monad-par/issues/66
   github = dontCheck super.github; # hspec upper bound exceeded; https://github.com/phadej/github/pull/341
   binary-orphans = dontCheck super.binary-orphans; # tasty upper bound exceeded; https://github.com/phadej/binary-orphans/commit/8ce857226595dd520236ff4c51fa1a45d8387b33
+  rebase = doJailbreak super.rebase; # time ==1.9.* is too low
 
   # https://github.com/jgm/skylighting/issues/55
   skylighting-core = dontCheck super.skylighting-core;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
index bb2f9294cc1..a2562e44527 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
@@ -41,6 +41,13 @@ self: super: {
   unix = null;
   xhtml = null;
 
+  # Hasura 1.3.1
+  # Because of ghc-heap-view, profiling needs to be disabled.
+  graphql-engine = overrideCabal (super.graphql-engine) (drv: {
+     # GHC 8.8.x needs a revert of https://github.com/hasura/graphql-engine/commit/a77bb0570f4210fb826985e17a84ddcc4c95d3ea
+     patches = [ ./patches/hasura-884-compat.patch ];
+  });
+
   # GHC 8.8.x can build haddock version 2.23.*
   haddock = self.haddock_2_23_1;
   haddock-api = self.haddock-api_2_23_1;
@@ -54,7 +61,6 @@ self: super: {
   async = doJailbreak super.async;
   ChasingBottoms = doJailbreak super.ChasingBottoms;
   chell = doJailbreak super.chell;
-  cryptohash-sha256 = doJailbreak super.cryptohash-sha256;
   Diff = dontCheck super.Diff;
   doctest = doJailbreak super.doctest;
   hashable = doJailbreak super.hashable;
@@ -108,4 +114,16 @@ self: super: {
   # cabal-fmt requires Cabal3
   cabal-fmt = super.cabal-fmt.override { Cabal = self.Cabal_3_2_0_0; };
 
+  # liquidhaskell does not support ghc version 8.8.x.
+  liquid = markBroken super.liquid;
+  liquid-base = markBroken super.liquid-base;
+  liquid-bytestring = markBroken super.liquid-bytestring;
+  liquid-containers = markBroken super.liquid-containers;
+  liquid-ghc-prim = markBroken super.liquid-ghc-prim;
+  liquid-parallel = markBroken super.liquid-parallel;
+  liquid-platform = markBroken super.liquid-platform;
+  liquid-prelude = markBroken super.liquid-prelude;
+  liquid-vector = markBroken super.liquid-vector;
+  liquidhaskell = markBroken super.liquidhaskell;
+
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-head.nix b/pkgs/development/haskell-modules/configuration-ghc-head.nix
index 09755e4cc94..cbfd4b84b2f 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-head.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-head.nix
@@ -26,6 +26,7 @@ self: super: {
   filepath = null;
   ghc-boot = null;
   ghc-boot-th = null;
+  ghc-bignum = null;
   ghc-compact = null;
   ghc-heap = null;
   ghci = null;
@@ -47,6 +48,7 @@ self: super: {
   transformers = null;
   unix = null;
   xhtml = null;
+  exceptions = null;
 
   # https://github.com/tibbe/unordered-containers/issues/214
   unordered-containers = dontCheck super.unordered-containers;
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index cbedd07fa7d..c62e3a160e8 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -1,6 +1,6 @@
 # pkgs/development/haskell-modules/configuration-hackage2nix.yaml
 
-compiler: ghc-8.8.3
+compiler: ghc-8.8.4
 
 core-packages:
   - array-0.5.4.0
@@ -64,17 +64,15 @@ core-packages:
 #
 # WARNING: This list is generated semiautomatically based on the most recent
 # LTS package set. If you want to add entries to it, you must do so before the
-# comment saying "# LTS Haskell x.y". Any changes after that commend will be
+# comment saying "# LTS Haskell x.y". Any changes after that comment will be
 # lost the next time `update-stackage.sh` runs.
 default-package-overrides:
-  # Newer versions have test suite failures.
-  - git-annex < 8.20200522
   # This was only intended for ghc-7.0.4, and has very old deps, one hidden behind a flag
   - MissingH ==1.4.2.0
   # gi-gdkx11-4.x requires gtk-4.x, which is still under development and
   # not yet available in Nixpkgs
   - gi-gdkx11 < 4
-  # LTS Haskell 16.2
+  # LTS Haskell 16.12
   - abstract-deque ==0.3
   - abstract-par ==0.3.3
   - AC-Angle ==1.0
@@ -105,7 +103,7 @@ default-package-overrides:
   - aeson-yak ==0.1.1.3
   - aeson-yaml ==1.0.6.0
   - al ==0.1.4.2
-  - alarmclock ==0.7.0.4
+  - alarmclock ==0.7.0.5
   - alerts ==0.1.2.0
   - alex ==3.2.5
   - alg ==0.2.13.1
@@ -209,7 +207,7 @@ default-package-overrides:
   - amazonka-workspaces ==1.6.1
   - amazonka-xray ==1.6.1
   - amqp ==0.20.0
-  - amqp-utils ==0.4.4.0
+  - amqp-utils ==0.4.4.1
   - annotated-wl-pprint ==0.7.0
   - ansi-terminal ==0.10.3
   - ansi-wl-pprint ==0.6.9
@@ -245,8 +243,8 @@ default-package-overrides:
   - asn1-encoding ==0.9.6
   - asn1-parse ==0.9.5
   - asn1-types ==0.3.4
-  - assert-failure ==0.1.2.3
-  - assoc ==1.0.1
+  - assert-failure ==0.1.2.4
+  - assoc ==1.0.2
   - astro ==0.4.2.1
   - async ==2.2.2
   - async-extra ==0.2.0.0
@@ -264,16 +262,16 @@ default-package-overrides:
   - attoparsec-path ==0.0.0.1
   - audacity ==0.0.2
   - aur ==7.0.3
-  - aura ==3.1.4
+  - aura ==3.1.8
   - authenticate ==1.3.5
   - authenticate-oauth ==1.6.0.1
   - auto ==0.4.3.1
-  - autoexporter ==1.1.17
+  - autoexporter ==1.1.18
   - auto-update ==0.1.6
   - avers ==0.0.17.1
   - avro ==0.5.2.0
   - aws-cloudfront-signed-cookies ==0.2.0.6
-  - bank-holidays-england ==0.2.0.4
+  - bank-holidays-england ==0.2.0.5
   - base16 ==0.2.1.0
   - base16-bytestring ==0.1.1.7
   - base16-lens ==0.1.2.0
@@ -281,7 +279,7 @@ default-package-overrides:
   - base32-lens ==0.1.0.0
   - base32string ==0.9.1
   - base58string ==0.10.0
-  - base64 ==0.4.2
+  - base64 ==0.4.2.2
   - base64-bytestring ==1.0.0.3
   - base64-bytestring-type ==1.0.1
   - base64-lens ==0.3.0
@@ -325,7 +323,7 @@ default-package-overrides:
   - bins ==0.1.2.0
   - bitarray ==0.0.1.1
   - bits ==0.5.2
-  - bitset-word8 ==0.1.1.1
+  - bitset-word8 ==0.1.1.2
   - bits-extra ==0.0.2.0
   - bitvec ==1.0.3.0
   - blake2 ==0.3.0
@@ -336,7 +334,7 @@ default-package-overrides:
   - blaze-bootstrap ==0.1.0.1
   - blaze-builder ==0.4.1.0
   - blaze-html ==0.9.1.2
-  - blaze-markup ==0.8.2.5
+  - blaze-markup ==0.8.2.7
   - blaze-svg ==0.3.6.1
   - blaze-textual ==0.2.1.0
   - bmp ==1.2.6.3
@@ -368,7 +366,7 @@ default-package-overrides:
   - bv ==0.5
   - bv-little ==1.1.1
   - byteable ==0.1.1
-  - byte-count-reader ==0.10.0.1
+  - byte-count-reader ==0.10.1.1
   - bytedump ==1.0
   - byte-order ==0.1.2.0
   - byteorder ==1.0.4
@@ -385,9 +383,9 @@ default-package-overrides:
   - bzlib-conduit ==0.3.0.2
   - c2hs ==0.28.6
   - cabal-appimage ==0.3.0.0
-  - cabal-debian ==5.0.2
+  - cabal-debian ==5.0.3
   - cabal-doctest ==1.0.8
-  - cabal-rpm ==2.0.5.1
+  - cabal-rpm ==2.0.6
   - cache ==0.1.3.0
   - cacophony ==0.10.1
   - calendar-recycling ==0.0.0.1
@@ -408,7 +406,7 @@ default-package-overrides:
   - cast ==0.1.0.2
   - category ==0.2.5.0
   - cayley-client ==0.4.13
-  - cborg ==0.2.3.0
+  - cborg ==0.2.4.0
   - cborg-json ==0.2.2.0
   - cereal ==0.5.8.1
   - cereal-conduit ==0.8.0
@@ -423,7 +421,7 @@ default-package-overrides:
   - Chart ==1.9.3
   - Chart-diagrams ==1.9.3
   - chaselev-deque ==0.5.0.5
-  - ChasingBottoms ==1.3.1.8
+  - ChasingBottoms ==1.3.1.9
   - cheapskate ==0.1.1.2
   - cheapskate-highlight ==0.1.0.0
   - cheapskate-lucid ==0.1.0.0
@@ -432,7 +430,7 @@ default-package-overrides:
   - chimera ==0.3.1.0
   - chiphunk ==0.1.2.1
   - choice ==0.2.2
-  - chronologique ==0.3.1.1
+  - chronologique ==0.3.1.3
   - chronos ==1.1.1
   - chronos-bench ==0.2.0.2
   - chunked-data ==0.3.1
@@ -441,15 +439,15 @@ default-package-overrides:
   - cipher-des ==0.0.6
   - cipher-rc4 ==0.1.4
   - circle-packing ==0.1.0.6
-  - clash-ghc ==1.2.2
-  - clash-lib ==1.2.2
-  - clash-prelude ==1.2.2
+  - clash-ghc ==1.2.4
+  - clash-lib ==1.2.4
+  - clash-prelude ==1.2.4
   - classy-prelude ==1.5.0
   - classy-prelude-conduit ==1.5.0
   - classy-prelude-yesod ==1.5.0
   - clay ==0.13.3
   - clientsession ==0.9.1.2
-  - climb ==0.3.1
+  - climb ==0.3.3
   - Clipboard ==2.3.2.0
   - clock ==0.8
   - clock-extras ==0.1.0.2
@@ -514,15 +512,15 @@ default-package-overrides:
   - constraints ==0.12
   - constraint-tuples ==0.1.2
   - contravariant ==1.5.2
-  - contravariant-extras ==0.3.5.1
+  - contravariant-extras ==0.3.5.2
   - control-bool ==0.2.1
   - control-monad-free ==0.6.2
   - control-monad-omega ==0.3.2
   - convertible ==1.1.1.0
   - cookie ==0.4.5
-  - core-data ==0.2.1.5
-  - core-program ==0.2.4.2
-  - core-text ==0.2.3.3
+  - core-data ==0.2.1.8
+  - core-program ==0.2.4.5
+  - core-text ==0.2.3.6
   - countable ==1.0
   - cpio-conduit ==0.7.0
   - cpphs ==1.20.9.1
@@ -612,7 +610,7 @@ default-package-overrides:
   - dataurl ==0.1.0.0
   - DAV ==1.3.4
   - DBFunctor ==0.1.1.1
-  - dbus ==1.2.15.1
+  - dbus ==1.2.16
   - dbus-hslogger ==0.1.0.1
   - debian ==4.0.2
   - debian-build ==0.10.2.0
@@ -623,7 +621,7 @@ default-package-overrides:
   - deepseq-generics ==0.2.0.0
   - deepseq-instances ==0.1.0.1
   - deferred-folds ==0.9.10.1
-  - dejafu ==2.3.0.0
+  - dejafu ==2.3.0.1
   - dense-linear-algebra ==0.1.0.0
   - depq ==0.4.1.0
   - deque ==0.4.3
@@ -673,13 +671,13 @@ default-package-overrides:
   - doldol ==0.4.1.2
   - do-list ==1.0.1
   - do-notation ==0.1.0.2
-  - dotenv ==0.8.0.4
+  - dotenv ==0.8.0.6
   - dotgen ==0.4.3
   - dotnet-timespan ==0.0.1.0
   - double-conversion ==2.0.2.0
   - download ==0.3.2.7
   - drinkery ==0.4
-  - dsp ==0.2.5
+  - dsp ==0.2.5.1
   - dual ==0.1.1.1
   - dual-tree ==0.2.2.1
   - dublincore-xml-conduit ==0.1.0.2
@@ -689,7 +687,7 @@ default-package-overrides:
   - dynamic-state ==0.3.1
   - dyre ==0.8.12
   - eap ==0.9.0.2
-  - earcut ==0.1.0.2
+  - earcut ==0.1.0.4
   - Earley ==0.13.0.1
   - easy-file ==0.2.2
   - Ebnf2ps ==1.0.15
@@ -701,7 +699,7 @@ default-package-overrides:
   - editor-open ==0.6.0.0
   - egison ==4.0.3
   - egison-pattern-src ==0.2.1.0
-  - egison-pattern-src-th-mode ==0.2.1.0
+  - egison-pattern-src-th-mode ==0.2.1.1
   - either ==5.0.1.1
   - either-both ==0.1.1.1
   - either-unwrap ==1.1
@@ -735,7 +733,7 @@ default-package-overrides:
   - errors ==2.3.0
   - errors-ext ==0.4.2
   - ersatz ==0.4.8
-  - esqueleto ==3.3.3.0
+  - esqueleto ==3.3.3.2
   - essence-of-live-coding ==0.1.0.3
   - essence-of-live-coding-gloss ==0.1.0.3
   - essence-of-live-coding-pulse ==0.1.0.3
@@ -751,7 +749,7 @@ default-package-overrides:
   - exception-hierarchy ==0.1.0.3
   - exception-mtl ==0.4.0.1
   - exceptions ==0.10.4
-  - exception-transformers ==0.4.0.8
+  - exception-transformers ==0.4.0.9
   - executable-path ==0.0.3.1
   - exit-codes ==1.0.0
   - exomizer ==1.0.0
@@ -762,7 +760,7 @@ default-package-overrides:
   - extended-reals ==0.2.4.0
   - extensible-effects ==5.0.0.1
   - extensible-exceptions ==0.1.1.4
-  - extra ==1.7.3
+  - extra ==1.7.7
   - extractable-singleton ==0.0.1
   - extrapolate ==0.4.2
   - fail ==4.9.0.0
@@ -779,17 +777,17 @@ default-package-overrides:
   - feed ==1.3.0.1
   - FenwickTree ==0.1.2.1
   - fft ==0.1.8.6
-  - fgl ==5.7.0.2
+  - fgl ==5.7.0.3
   - filecache ==0.4.1
   - file-embed ==0.0.11.2
   - file-embed-lzma ==0
-  - filelock ==0.1.1.4
+  - filelock ==0.1.1.5
   - filemanip ==0.3.6.3
   - file-modules ==0.1.2.4
   - file-path-th ==0.1.0.0
   - filepattern ==0.1.2
   - fileplow ==0.1.0.0
-  - filtrable ==0.1.3.0
+  - filtrable ==0.1.4.0
   - fin ==0.1.1
   - FindBin ==0.0.5
   - fingertree ==0.1.4.2
@@ -810,14 +808,14 @@ default-package-overrides:
   - floatshow ==0.2.4
   - flow ==1.0.21
   - flush-queue ==1.0.0
-  - fmlist ==0.9.3
+  - fmlist ==0.9.4
   - fmt ==0.6.1.2
   - fn ==0.3.0.2
   - focus ==1.0.1.3
   - focuslist ==0.1.0.2
   - foldable1 ==0.1.0.0
   - fold-debounce ==0.2.0.9
-  - fold-debounce-conduit ==0.2.0.4
+  - fold-debounce-conduit ==0.2.0.5
   - foldl ==1.4.6
   - folds ==0.7.5
   - follow-file ==0.0.3
@@ -904,9 +902,9 @@ default-package-overrides:
   - ghcid ==0.8.7
   - ghci-hexcalc ==0.1.1.0
   - ghcjs-codemirror ==0.0.0.2
-  - ghc-lib ==8.10.1.20200523
-  - ghc-lib-parser ==8.10.1.20200523
-  - ghc-lib-parser-ex ==8.10.0.14
+  - ghc-lib ==8.10.2.20200808
+  - ghc-lib-parser ==8.10.2.20200808
+  - ghc-lib-parser-ex ==8.10.0.16
   - ghc-parser ==0.2.2.0
   - ghc-paths ==0.1.0.12
   - ghc-prof ==1.4.1.7
@@ -914,9 +912,9 @@ default-package-overrides:
   - ghc-syntax-highlighter ==0.0.6.0
   - ghc-tcplugins-extra ==0.4
   - ghc-typelits-extra ==0.4
-  - ghc-typelits-knownnat ==0.7.2
+  - ghc-typelits-knownnat ==0.7.3
   - ghc-typelits-natnormalise ==0.7.2
-  - ghc-typelits-presburger ==0.3.0.0
+  - ghc-typelits-presburger ==0.3.0.1
   - ghost-buster ==0.1.1.0
   - gi-atk ==2.0.21
   - gi-cairo ==1.0.23
@@ -933,12 +931,12 @@ default-package-overrides:
   - gi-graphene ==1.0.1
   - gi-gtk ==3.0.33
   - gi-gtk-hs ==0.3.8.1
-  - ginger ==0.10.0.5
+  - ginger ==0.10.1.0
   - gingersnap ==0.3.1.0
   - gi-pango ==1.0.22
   - giphy-api ==0.7.0.0
   - githash ==0.1.4.0
-  - github-rest ==1.0.2
+  - github-rest ==1.0.3
   - github-types ==0.2.1
   - gitlab-haskell ==0.1.8
   - gitrev ==1.3.1
@@ -946,8 +944,8 @@ default-package-overrides:
   - gl ==0.9
   - glabrous ==2.0.2
   - GLFW-b ==3.3.0.0
-  - Glob ==0.10.0
-  - gloss ==1.13.1.1
+  - Glob ==0.10.1
+  - gloss ==1.13.1.2
   - gloss-rendering ==1.13.1.1
   - GLURaw ==2.0.0.4
   - GLUT ==2.7.0.15
@@ -959,12 +957,12 @@ default-package-overrides:
   - graph-core ==0.3.0.0
   - graphite ==0.10.0.1
   - graphs ==0.7.1
-  - graphviz ==2999.20.0.4
+  - graphviz ==2999.20.1.0
   - graph-wrapper ==0.2.6.0
   - gravatar ==0.8.0
-  - greskell ==1.1.0.2
-  - greskell-core ==0.1.3.4
-  - greskell-websocket ==0.1.2.3
+  - greskell ==1.1.0.3
+  - greskell-core ==0.1.3.5
+  - greskell-websocket ==0.1.2.4
   - groom ==0.1.2.1
   - group-by-date ==0.1.0.3
   - groups ==0.4.1.0
@@ -976,11 +974,12 @@ default-package-overrides:
   - haddock-library ==1.8.0
   - hadolint ==1.18.0
   - hadoop-streaming ==0.2.0.3
-  - hakyll ==4.13.3.0
+  - hakyll ==4.13.4.0
   - half ==0.3
+  - hall-symbols ==0.1.0.6
   - hamtsolo ==1.0.3
   - HandsomeSoup ==0.4.2
-  - hapistrano ==0.4.1.0
+  - hapistrano ==0.4.1.2
   - happstack-server ==7.6.1
   - happy ==1.19.12
   - HasBigDecimal ==0.1.1
@@ -1008,13 +1007,13 @@ default-package-overrides:
   - haskoin-core ==0.13.4
   - haskoin-node ==0.13.0
   - hasql ==1.4.3
-  - hasql-optparse-applicative ==0.3.0.5
+  - hasql-optparse-applicative ==0.3.0.6
   - hasql-pool ==0.5.2
   - hasql-transaction ==1.0.0.1
   - hasty-hamiltonian ==1.3.3
   - HaTeX ==3.22.2.0
   - HaXml ==1.25.5
-  - haxr ==3000.11.4
+  - haxr ==3000.11.4.1
   - HCodecs ==0.5.2
   - hdaemonize ==0.5.6
   - HDBC ==2.4.0.3
@@ -1023,12 +1022,12 @@ default-package-overrides:
   - heap ==1.0.4
   - heaps ==0.3.6.1
   - hebrew-time ==0.1.2
-  - hedgehog ==1.0.2
+  - hedgehog ==1.0.3
   - hedgehog-corpus ==0.2.0
-  - hedgehog-fakedata ==0.0.1.2
+  - hedgehog-fakedata ==0.0.1.3
   - hedgehog-fn ==1.0
   - hedgehog-quickcheck ==0.1.1
-  - hedis ==0.12.13
+  - hedis ==0.12.14
   - here ==1.2.13
   - heredoc ==0.2.0.0
   - heterocephalus ==1.0.5.3
@@ -1039,7 +1038,7 @@ default-package-overrides:
   - hformat ==0.3.3.1
   - hfsevents ==0.1.6
   - hidapi ==0.1.5
-  - hie-bios ==0.5.0
+  - hie-bios ==0.5.1
   - hi-file-parser ==0.1.0.0
   - higher-leveldb ==0.5.0.2
   - highlighting-kate ==0.6.4
@@ -1048,7 +1047,7 @@ default-package-overrides:
   - hint ==0.9.0.3
   - hjsmin ==0.2.0.4
   - hkd-default ==1.1.0.0
-  - hkgr ==0.2.6
+  - hkgr ==0.2.6.1
   - hlibcpuid ==0.2.0
   - hlibgit2 ==0.18.0.16
   - hmatrix ==0.20.0.0
@@ -1082,35 +1081,35 @@ default-package-overrides:
   - hsebaysdk ==0.4.1.0
   - hsemail ==2.2.0
   - hset ==2.2.0
-  - hs-functors ==0.1.6.0
+  - hs-functors ==0.1.7.1
   - hs-GeoIP ==0.3
   - hsini ==0.5.1.2
   - hsinstall ==2.6
   - HSlippyMap ==3.0.1
   - hslogger ==1.3.1.0
   - hslua ==1.0.3.2
-  - hslua-aeson ==1.0.2
+  - hslua-aeson ==1.0.3
   - hslua-module-doclayout ==0.1.0
-  - hslua-module-system ==0.2.1
+  - hslua-module-system ==0.2.2
   - hslua-module-text ==0.2.1
   - HsOpenSSL ==0.11.4.18
   - hsp ==0.10.0
-  - hspec ==2.7.1
+  - hspec ==2.7.2
   - hspec-attoparsec ==0.1.0.2
   - hspec-checkers ==0.1.0.2
   - hspec-contrib ==0.5.1
-  - hspec-core ==2.7.1
-  - hspec-discover ==2.7.1
+  - hspec-core ==2.7.2
+  - hspec-discover ==2.7.2
   - hspec-expectations ==0.8.2
   - hspec-expectations-lifted ==0.10.0
   - hspec-expectations-pretty-diff ==0.7.2.5
-  - hspec-golden ==0.1.0.1
+  - hspec-golden ==0.1.0.3
   - hspec-golden-aeson ==0.7.0.0
   - hspec-hedgehog ==0.0.1.2
   - hspec-leancheck ==0.0.4
   - hspec-megaparsec ==2.1.0
   - hspec-meta ==2.6.0
-  - hspec-need-env ==0.1.0.4
+  - hspec-need-env ==0.1.0.5
   - hspec-parsec ==0
   - hspec-smallcheck ==0.5.2
   - hspec-tables ==0.0.1
@@ -1130,14 +1129,14 @@ default-package-overrides:
   - html-entities ==1.1.4.3
   - html-entity-map ==0.1.0.0
   - htoml ==1.0.0.3
-  - http2 ==2.0.4
+  - http2 ==2.0.5
   - HTTP ==4000.3.14
   - http-api-data ==0.4.1.1
   - http-client ==0.6.4.1
   - http-client-openssl ==0.3.1.0
   - http-client-overrides ==0.1.1.0
   - http-client-tls ==0.3.5.3
-  - http-common ==0.8.2.0
+  - http-common ==0.8.2.1
   - http-conduit ==2.3.7.3
   - http-date ==0.0.8
   - http-directory ==0.1.8
@@ -1146,12 +1145,12 @@ default-package-overrides:
   - http-link-header ==1.0.3.1
   - http-media ==0.8.0.0
   - http-reverse-proxy ==0.6.0
-  - http-streams ==0.8.7.1
+  - http-streams ==0.8.7.2
   - http-types ==0.12.3
   - human-readable-duration ==0.2.1.4
   - HUnit ==1.6.0.0
   - HUnit-approx ==1.1.1.1
-  - hunit-dejafu ==2.0.0.3
+  - hunit-dejafu ==2.0.0.4
   - hvect ==0.4.0.0
   - hvega ==0.9.1.0
   - hw-balancedparens ==0.4.1.0
@@ -1191,7 +1190,7 @@ default-package-overrides:
   - ieee754 ==0.8.0
   - if ==0.1.0.0
   - iff ==0.0.6
-  - ihaskell ==0.10.1.1
+  - ihaskell ==0.10.1.2
   - ihs ==0.1.0.3
   - ilist ==0.4.0.1
   - imagesize-conduit ==1.1
@@ -1230,8 +1229,8 @@ default-package-overrides:
   - intro ==0.7.0.0
   - intset-imperative ==0.1.0.0
   - invariant ==0.5.3
-  - invertible ==0.2.0.5
-  - invertible-grammar ==0.1.2
+  - invertible ==0.2.0.7
+  - invertible-grammar ==0.1.3
   - io-machine ==0.2.0.0
   - io-manager ==0.1.0.2
   - io-memoize ==1.1.1.0
@@ -1241,9 +1240,9 @@ default-package-overrides:
   - io-streams-haproxy ==1.0.1.0
   - ip6addr ==1.0.1
   - iproute ==1.7.9
-  - IPv6Addr ==1.1.4
+  - IPv6Addr ==1.1.5
   - ipynb ==0.1.0.1
-  - ipython-kernel ==0.10.2.0
+  - ipython-kernel ==0.10.2.1
   - irc ==0.6.1.0
   - irc-client ==1.1.1.1
   - irc-conduit ==0.3.0.4
@@ -1259,7 +1258,7 @@ default-package-overrides:
   - ix-shapable ==0.1.0
   - jack ==0.7.1.4
   - jira-wiki-markup ==1.1.4
-  - jose ==0.8.3
+  - jose ==0.8.3.1
   - jose-jwt ==0.8.0
   - js-dgtable ==0.5.2
   - js-flot ==0.8.3
@@ -1278,7 +1277,7 @@ default-package-overrides:
   - jwt ==0.10.0
   - kan-extensions ==5.2
   - kanji ==3.4.1
-  - katip ==0.8.4.0
+  - katip ==0.8.5.0
   - kawhi ==0.3.0
   - kazura-queue ==0.1.0.4
   - kdt ==0.2.4
@@ -1289,8 +1288,8 @@ default-package-overrides:
   - kind-generics-th ==0.2.2.0
   - kmeans ==0.1.3
   - koofr-client ==1.0.0.3
-  - krank ==0.2.1
-  - kubernetes-webhook-haskell ==0.2.0.2
+  - krank ==0.2.2
+  - kubernetes-webhook-haskell ==0.2.0.3
   - l10n ==0.1.0.1
   - labels ==0.3.3
   - lackey ==1.0.13
@@ -1340,16 +1339,16 @@ default-package-overrides:
   - libyaml ==0.1.2
   - LibZip ==1.0.1
   - life-sync ==1.1.1.0
-  - lifted-async ==0.10.0.6
+  - lifted-async ==0.10.1.2
   - lifted-base ==0.2.3.12
   - lift-generics ==0.1.3
   - line ==4.0.1
-  - linear ==1.21
+  - linear ==1.21.1
   - linenoise ==0.3.2
   - linux-file-extents ==0.2.0.0
   - linux-namespaces ==0.1.3.0
   - List ==0.6.2
-  - ListLike ==4.7
+  - ListLike ==4.7.2
   - list-predicate ==0.1.0.1
   - listsafe ==0.1.0.1
   - list-singleton ==1.0.0.4
@@ -1370,7 +1369,7 @@ default-package-overrides:
   - logging ==3.0.5
   - logging-facade ==0.3.0
   - logging-facade-syslog ==1
-  - logict ==0.7.0.2
+  - logict ==0.7.0.3
   - loop ==0.3.0
   - loopbreaker ==0.1.1.1
   - lrucache ==1.2.0.1
@@ -1390,15 +1389,16 @@ default-package-overrides:
   - markdown ==0.1.17.4
   - markdown-unlit ==0.5.0
   - markov-chain ==0.0.3.4
-  - massiv ==0.5.2.0
+  - massiv ==0.5.3.2
   - massiv-io ==0.2.1.0
-  - massiv-test ==0.1.3
+  - massiv-test ==0.1.3.1
   - mathexpr ==0.3.0.0
   - math-extras ==0.1.1.0
-  - math-functions ==0.3.4.0
+  - math-functions ==0.3.4.1
   - matplotlib ==0.7.5
   - matrices ==0.5.0
   - matrix ==0.3.6.1
+  - matrix-as-xyz ==0.1.2.2
   - matrix-market-attoparsec ==0.1.1.3
   - matrix-static ==0.3
   - maximal-cliques ==0.1.1
@@ -1420,7 +1420,7 @@ default-package-overrides:
   - metrics ==0.4.1.1
   - mfsolve ==0.3.2.0
   - microlens ==0.4.11.2
-  - microlens-aeson ==2.3.0.4
+  - microlens-aeson ==2.3.1
   - microlens-contra ==0.1.0.2
   - microlens-ghc ==0.4.12
   - microlens-mtl ==0.2.0.1
@@ -1433,19 +1433,19 @@ default-package-overrides:
   - midi ==0.2.2.2
   - mighty-metropolis ==2.0.0
   - mime-mail ==0.5.0
-  - mime-mail-ses ==0.4.1
+  - mime-mail-ses ==0.4.2
   - mime-types ==0.1.0.9
   - mini-egison ==1.0.0
   - minimal-configuration ==0.1.4
   - minimorph ==0.2.2.0
   - minio-hs ==1.5.2
   - miniutter ==0.5.1.0
-  - min-max-pqueue ==0.1.0.1
+  - min-max-pqueue ==0.1.0.2
   - mintty ==0.1.2
   - miso ==1.6.0.0
   - missing-foreign ==0.1.1
   - MissingH ==1.4.3.0
-  - mixed-types-num ==0.4.0.1
+  - mixed-types-num ==0.4.0.2
   - mixpanel-client ==0.2.1
   - mltool ==0.2.0.1
   - mmap ==0.5.9
@@ -1455,7 +1455,7 @@ default-package-overrides:
   - mmorph ==1.1.3
   - mnist-idx ==0.1.2.8
   - mockery ==0.3.5
-  - mod ==0.1.1.0
+  - mod ==0.1.2.0
   - model ==0.5
   - modern-uri ==0.3.2.0
   - modular ==0.1.0.8
@@ -1466,7 +1466,7 @@ default-package-overrides:
   - monad-extras ==0.6.0
   - monadic-arrays ==0.2.2
   - monad-journal ==0.8.1
-  - monad-logger ==0.3.32
+  - monad-logger ==0.3.35
   - monad-logger-json ==0.1.0.0
   - monad-logger-prefix ==0.1.11
   - monad-loops ==0.4.3
@@ -1478,7 +1478,7 @@ default-package-overrides:
   - monad-peel ==0.2.1.2
   - monad-products ==4.0.1
   - MonadPrompt ==1.0.0.5
-  - MonadRandom ==0.5.1.2
+  - MonadRandom ==0.5.2
   - monad-resumption ==0.1.4.0
   - monad-skeleton ==0.1.5
   - monad-st ==0.2.4.1
@@ -1491,13 +1491,13 @@ default-package-overrides:
   - monoid-subclasses ==1.0.1
   - monoid-transformer ==0.0.4
   - mono-traversable ==1.0.15.1
-  - mono-traversable-instances ==0.1.0.0
+  - mono-traversable-instances ==0.1.1.0
   - mono-traversable-keys ==0.1.0
   - more-containers ==0.2.2.0
   - morpheus-graphql ==0.12.0
   - morpheus-graphql-core ==0.12.0
   - mountpoints ==1.0.2
-  - mpi-hs ==0.7.1.2
+  - mpi-hs ==0.7.2.0
   - mpi-hs-binary ==0.1.1.0
   - mpi-hs-cereal ==0.1.0.0
   - mtl-compat ==0.2.2
@@ -1512,7 +1512,7 @@ default-package-overrides:
   - MusicBrainz ==0.4.1
   - mustache ==2.3.1
   - mutable-containers ==0.3.4
-  - mwc-probability ==2.3.0
+  - mwc-probability ==2.3.1
   - mwc-random ==0.14.0.0
   - mx-state-codes ==1.0.0.0
   - mysql ==0.1.7
@@ -1558,7 +1558,7 @@ default-package-overrides:
   - nonce ==1.0.7
   - nondeterminism ==1.4
   - non-empty ==0.3.2
-  - nonempty-containers ==0.3.3.0
+  - nonempty-containers ==0.3.4.1
   - nonemptymap ==0.0.6.0
   - non-empty-sequence ==0.2.0.4
   - nonempty-vector ==0.2.0.2
@@ -1570,7 +1570,7 @@ default-package-overrides:
   - nsis ==0.3.3
   - numbers ==3000.2.0.2
   - numeric-extras ==0.1
-  - numeric-prelude ==0.4.3.1
+  - numeric-prelude ==0.4.3.2
   - numhask ==0.4.0
   - NumInstances ==1.4
   - numtype-dk ==0.5.0.2
@@ -1589,7 +1589,7 @@ default-package-overrides:
   - OneTuple ==0.2.2.1
   - Only ==0.1
   - oo-prototypes ==0.1.0.0
-  - opaleye ==0.6.7004.2
+  - opaleye ==0.6.7006.1
   - OpenAL ==1.7.0.5
   - open-browser ==0.2.1.0
   - openexr-write ==0.1.0.2
@@ -1613,22 +1613,22 @@ default-package-overrides:
   - options ==1.2.1.1
   - optparse-applicative ==0.15.1.0
   - optparse-generic ==1.3.1
-  - optparse-simple ==0.1.1.2
+  - optparse-simple ==0.1.1.3
   - optparse-text ==0.1.1.0
   - ordered-containers ==0.2.2
-  - ormolu ==0.1.0.0
+  - ormolu ==0.1.2.0
   - overhang ==1.0.0
   - packcheck ==0.5.1
   - pager ==0.1.1.0
   - pagination ==0.2.1
   - pagure-cli ==0.2
   - pandoc ==2.9.2.1
-  - pandoc-citeproc ==0.17
+  - pandoc-citeproc ==0.17.0.1
   - pandoc-csv2table ==1.0.8
   - pandoc-plot ==0.6.1.0
   - pandoc-pyplot ==2.3.0.1
   - pandoc-types ==1.20
-  - pantry ==0.4.0.1
+  - pantry ==0.4.0.2
   - papillon ==0.1.1.1
   - parallel ==3.2.2.0
   - parallel-io ==0.3.3
@@ -1651,7 +1651,7 @@ default-package-overrides:
   - path-io ==1.6.0
   - path-pieces ==0.2.1
   - path-text-utf8 ==0.0.1.6
-  - pathtype ==0.8.1
+  - pathtype ==0.8.1.1
   - pathwalk ==0.3.1.2
   - pattern-arrows ==0.0.2
   - pcg-random ==0.1.3.6
@@ -1681,7 +1681,7 @@ default-package-overrides:
   - pg-transact ==0.3.1.1
   - phantom-state ==0.2.1.2
   - pid1 ==0.1.2.0
-  - pipes ==4.3.13
+  - pipes ==4.3.14
   - pipes-aeson ==0.4.1.8
   - pipes-attoparsec ==0.5.1.5
   - pipes-binary ==0.4.2
@@ -1733,11 +1733,11 @@ default-package-overrides:
   - pretty-class ==1.0.1.1
   - pretty-hex ==1.1
   - prettyprinter ==1.6.2
-  - prettyprinter-ansi-terminal ==1.1.1.2
+  - prettyprinter-ansi-terminal ==1.1.2
   - prettyprinter-compat-annotated-wl-pprint ==1
   - prettyprinter-compat-ansi-wl-pprint ==1.0.1
   - prettyprinter-compat-wl-pprint ==1.0.0.1
-  - prettyprinter-convert-ansi-wl-pprint ==1.1
+  - prettyprinter-convert-ansi-wl-pprint ==1.1.1
   - pretty-relative-time ==0.2.0.0
   - pretty-show ==1.10
   - pretty-simple ==3.2.3.0
@@ -1755,8 +1755,8 @@ default-package-overrides:
   - profiterole ==0.1
   - profunctors ==5.5.2
   - projectroot ==0.2.0.1
-  - project-template ==0.2.0.1
-  - prometheus-client ==1.0.0.1
+  - project-template ==0.2.1.0
+  - prometheus-client ==1.0.1
   - promises ==0.3
   - prompt ==0.1.1.2
   - prospect ==0.1.0.0
@@ -1780,13 +1780,13 @@ default-package-overrides:
   - pureMD5 ==2.1.3
   - purescript-bridge ==0.14.0.0
   - pushbullet-types ==0.4.1.0
-  - pusher-http-haskell ==1.5.1.13
+  - pusher-http-haskell ==1.5.1.14
   - pvar ==0.2.0.0
   - PyF ==0.9.0.1
   - qchas ==1.1.0.1
   - qm-interpolated-string ==0.3.0.0
-  - qrcode-core ==0.9.3
-  - qrcode-juicypixels ==0.8.1
+  - qrcode-core ==0.9.4
+  - qrcode-juicypixels ==0.8.2
   - quadratic-irrational ==0.1.1
   - QuasiText ==0.1.2.6
   - QuickCheck ==2.13.2
@@ -1799,7 +1799,7 @@ default-package-overrides:
   - quickcheck-simple ==0.1.1.1
   - quickcheck-special ==0.1.0.6
   - quickcheck-text ==0.1.2.1
-  - quickcheck-transformer ==0.3.1
+  - quickcheck-transformer ==0.3.1.1
   - quickcheck-unicode ==1.0.1.0
   - quiet ==0.2
   - radius ==0.6.1.0
@@ -1826,7 +1826,7 @@ default-package-overrides:
   - rawstring-qm ==0.2.3.0
   - raw-strings-qq ==1.1
   - rcu ==0.2.4
-  - rdf ==0.1.0.3
+  - rdf ==0.1.0.4
   - rdtsc ==1.3.0.1
   - re2 ==0.3
   - readable ==0.3.1
@@ -1835,7 +1835,7 @@ default-package-overrides:
   - reanimate ==0.3.3.0
   - reanimate-svg ==0.9.8.0
   - rebase ==1.6.1
-  - record-dot-preprocessor ==0.2.5
+  - record-dot-preprocessor ==0.2.6
   - record-hasfield ==1.0
   - records-sop ==0.1.0.3
   - recursion-schemes ==5.1.3
@@ -1859,7 +1859,7 @@ default-package-overrides:
   - regex-posix ==0.96.0.0
   - regex-tdfa ==1.3.1.0
   - regex-with-pcre ==1.1.0.0
-  - registry ==0.1.9.0
+  - registry ==0.1.9.3
   - reinterpret-cast ==0.1.0
   - relapse ==1.0.0.0
   - relational-query ==0.12.2.3
@@ -1876,7 +1876,7 @@ default-package-overrides:
   - rerebase ==1.6.1
   - resolv ==0.1.2.0
   - resource-pool ==0.2.3.2
-  - resourcet ==1.2.4.1
+  - resourcet ==1.2.4.2
   - result ==0.2.6.0
   - rethinkdb-client-driver ==0.0.25
   - retry ==0.8.1.2
@@ -1886,9 +1886,9 @@ default-package-overrides:
   - rhine ==0.6.0
   - rhine-gloss ==0.6.0.1
   - rigel-viz ==0.2.0.0
-  - rio ==0.1.17.0
+  - rio ==0.1.18.0
   - rio-orphans ==0.1.1.0
-  - rio-prettyprint ==0.1.0.0
+  - rio-prettyprint ==0.1.1.0
   - roc-id ==0.1.0.0
   - rocksdb-haskell ==1.0.1
   - rocksdb-query ==0.3.2
@@ -1896,17 +1896,17 @@ default-package-overrides:
   - rope-utf16-splay ==0.3.1.0
   - rosezipper ==0.2
   - rot13 ==0.2.0.1
-  - rpmbuild-order ==0.3
+  - rpmbuild-order ==0.3.1
   - RSA ==2.4.1
   - runmemo ==1.0.0.1
   - safe ==0.3.19
   - safecopy ==0.10.3
   - safe-decimal ==0.2.0.0
-  - safe-exceptions ==0.1.7.0
+  - safe-exceptions ==0.1.7.1
   - safe-exceptions-checked ==0.1.0
   - safe-foldable ==0.1.0.0
   - safeio ==0.0.5.0
-  - safe-json ==1.1.0
+  - safe-json ==1.1.1
   - safe-money ==0.9
   - SafeSemaphore ==0.10.1
   - salak ==0.3.6
@@ -1915,14 +1915,14 @@ default-package-overrides:
   - salve ==1.0.10
   - sample-frame ==0.0.3
   - sample-frame-np ==0.0.4.1
-  - sampling ==0.3.4
+  - sampling ==0.3.5
   - say ==0.1.0.1
   - sbp ==2.6.3
   - scalpel ==0.6.2
   - scalpel-core ==0.6.2
   - scanf ==0.1.0.0
   - scanner ==0.3.1
-  - scheduler ==1.4.2.2
+  - scheduler ==1.4.2.3
   - scientific ==0.3.6.2
   - scotty ==0.11.6
   - scrypt ==0.5.0
@@ -1936,14 +1936,14 @@ default-package-overrides:
   - securemem ==0.1.10
   - selda ==0.5.1.0
   - selda-json ==0.1.1.0
-  - selective ==0.4.1
-  - semialign ==1.1
+  - selective ==0.4.1.1
+  - semialign ==1.1.0.1
   - semialign-indexed ==1.1
   - semialign-optics ==1.1
   - semigroupoid-extras ==5
   - semigroupoids ==5.3.4
   - semigroups ==0.19.1
-  - semirings ==0.5.3
+  - semirings ==0.5.4
   - semiring-simple ==1.0.0.1
   - semver ==0.3.4
   - sendfile ==0.7.11.1
@@ -1969,7 +1969,7 @@ default-package-overrides:
   - servant-elm ==0.7.2
   - servant-errors ==0.1.6.0
   - servant-foreign ==0.15
-  - servant-js ==0.9.4.1
+  - servant-js ==0.9.4.2
   - servant-JuicyPixels ==0.3.0.5
   - servant-lucid ==0.9
   - servant-machines ==0.15
@@ -1978,7 +1978,7 @@ default-package-overrides:
   - servant-purescript ==0.10.0.0
   - servant-rawm ==0.3.2.0
   - servant-server ==0.16.2
-  - servant-static-th ==0.2.3.0
+  - servant-static-th ==0.2.4.0
   - servant-subscriber ==0.7.0.0
   - servant-swagger ==1.1.7.1
   - servant-swagger-ui ==0.3.4.3.23.11
@@ -1995,8 +1995,8 @@ default-package-overrides:
   - setlocale ==1.0.0.9
   - sexp-grammar ==2.1.0
   - SHA ==1.6.4.4
-  - shake-plus ==0.1.7.0
-  - shakespeare ==2.0.24.1
+  - shake-plus ==0.1.10.0
+  - shakespeare ==2.0.25
   - shared-memory ==0.2.0.0
   - shell-conduit ==4.7.0
   - shell-escape ==0.2.0
@@ -2024,7 +2024,7 @@ default-package-overrides:
   - singleton-bool ==0.1.5
   - singleton-nats ==0.4.5
   - singletons ==2.6
-  - singletons-presburger ==0.3.0.0
+  - singletons-presburger ==0.3.0.1
   - siphash ==1.0.3
   - sitemap-gen ==0.1.0.0
   - size-based ==0.1.2.0
@@ -2043,7 +2043,7 @@ default-package-overrides:
   - smash-microlens ==0.1.0.0
   - smoothie ==0.4.2.11
   - snap-blaze ==0.2.1.5
-  - snap-core ==1.0.4.1
+  - snap-core ==1.0.4.2
   - snap-server ==1.1.1.2
   - snowflake ==0.1.1.1
   - soap ==0.2.3.6
@@ -2062,7 +2062,7 @@ default-package-overrides:
   - special-values ==0.1.0.0
   - speculate ==0.4.2
   - speedy-slice ==0.3.1
-  - Spintax ==0.3.4
+  - Spintax ==0.3.5
   - splice ==0.6.1.1
   - split ==0.2.3.4
   - splitmix ==0.0.5
@@ -2074,7 +2074,7 @@ default-package-overrides:
   - squeather ==0.4.0.0
   - srcloc ==0.5.1.2
   - stache ==2.1.1
-  - stackcollapse-ghc ==0.0.1
+  - stackcollapse-ghc ==0.0.1.2
   - stack-templatizer ==0.1.0.2
   - starter ==0.3.0
   - stateref ==0.3
@@ -2094,11 +2094,11 @@ default-package-overrides:
   - storable-complex ==0.2.3.0
   - storable-record ==0.0.5
   - storable-tuple ==0.0.3.3
-  - storablevector ==0.2.13
+  - storablevector ==0.2.13.1
   - stratosphere ==0.53.0
   - streaming ==0.2.3.0
   - streaming-bytestring ==0.1.6
-  - streaming-commons ==0.2.1.2
+  - streaming-commons ==0.2.2.1
   - streamly ==0.7.2
   - streamly-bytestring ==0.1.2
   - streams ==3.3
@@ -2123,7 +2123,7 @@ default-package-overrides:
   - structs ==0.1.3
   - structured ==0.1
   - structured-cli ==2.5.2.0
-  - stylish-haskell ==0.11.0.0
+  - stylish-haskell ==0.11.0.3
   - summoner ==2.0.1.1
   - summoner-tui ==2.0.1.1
   - sum-type-boilerplate ==0.1.1
@@ -2134,10 +2134,11 @@ default-package-overrides:
   - svg-tree ==0.6.2.4
   - swagger ==0.3.0
   - swagger2 ==2.5
-  - swish ==0.10.0.3
+  - swish ==0.10.0.4
   - syb ==0.7.1
   - symbol ==0.2.4
   - symengine ==0.1.2.0
+  - symmetry-operations-symbols ==0.0.2.1
   - sysinfo ==0.1.1
   - system-argv0 ==0.1.1
   - systemd ==2.3.0
@@ -2160,7 +2161,7 @@ default-package-overrides:
   - tardis ==0.4.1.0
   - tasty ==1.2.3
   - tasty-ant-xml ==1.1.6
-  - tasty-dejafu ==2.0.0.4
+  - tasty-dejafu ==2.0.0.6
   - tasty-discover ==4.2.1
   - tasty-expected-failure ==0.11.1.2
   - tasty-golden ==2.3.3.2
@@ -2169,7 +2170,7 @@ default-package-overrides:
   - tasty-hunit ==0.10.0.2
   - tasty-kat ==0.0.3
   - tasty-leancheck ==0.0.1
-  - tasty-lua ==0.2.2
+  - tasty-lua ==0.2.3
   - tasty-program ==1.0.5
   - tasty-quickcheck ==0.10.1.1
   - tasty-rerun ==1.1.17
@@ -2181,7 +2182,7 @@ default-package-overrides:
   - TCache ==0.12.1
   - tce-conf ==1.3
   - tdigest ==0.2.1
-  - template-haskell-compat-v0208 ==0.1.2.1
+  - template-haskell-compat-v0208 ==0.1.4
   - temporary ==1.3
   - temporary-rc ==1.2.0.3
   - temporary-resourcet ==0.1.0.1
@@ -2222,8 +2223,8 @@ default-package-overrides:
   - th-data-compat ==0.1.0.0
   - th-desugar ==1.10
   - th-env ==0.1.0.2
-  - these ==1.1
-  - these-lens ==1
+  - these ==1.1.1.1
+  - these-lens ==1.0.0.1
   - these-optics ==1
   - th-expand-syns ==0.4.6.0
   - th-extras ==0.0.0.4
@@ -2232,10 +2233,10 @@ default-package-overrides:
   - th-nowq ==0.1.0.5
   - th-orphans ==0.13.10
   - th-printf ==0.7
-  - thread-hierarchy ==0.3.0.1
+  - thread-hierarchy ==0.3.0.2
   - thread-local-storage ==0.2
   - threads ==0.5.1.6
-  - thread-supervisor ==0.1.0.0
+  - thread-supervisor ==0.1.0.1
   - threepenny-gui ==0.9.0.0
   - th-reify-compat ==0.0.1.5
   - th-reify-many ==0.1.9
@@ -2293,7 +2294,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.19
+  - turtle ==1.5.20
   - TypeCompose ==0.9.14
   - typed-process ==0.2.6.0
   - typed-uuid ==0.0.0.2
@@ -2327,7 +2328,7 @@ default-package-overrides:
   - unexceptionalio-trans ==0.5.1
   - unicode ==0.0.1.1
   - unicode-show ==0.1.0.4
-  - unicode-transforms ==0.3.6
+  - unicode-transforms ==0.3.7
   - unification-fd ==0.10.0.1
   - union-find ==0.2
   - uniplate ==1.6.12
@@ -2358,7 +2359,7 @@ default-package-overrides:
   - urbit-hob ==0.3.3
   - uri-bytestring ==0.3.2.2
   - uri-bytestring-aeson ==0.1.0.8
-  - uri-encode ==1.5.0.5
+  - uri-encode ==1.5.0.6
   - url ==2.1.3
   - users ==0.5.0.0
   - utf8-conversions ==0.1.0.4
@@ -2394,7 +2395,7 @@ default-package-overrides:
   - vector-instances ==3.4
   - vector-mmap ==0.0.3
   - vector-rotcev ==0.1.0.0
-  - vector-sized ==1.4.1.0
+  - vector-sized ==1.4.2
   - vector-space ==0.16
   - vector-split ==1.0.0.2
   - vector-th-unbox ==0.2.1.7
@@ -2407,7 +2408,7 @@ default-package-overrides:
   - void ==0.7.3
   - vty ==5.28.2
   - wai ==3.2.2.1
-  - wai-app-static ==3.1.7.1
+  - wai-app-static ==3.1.7.2
   - wai-conduit ==3.0.0.4
   - wai-cors ==0.2.7
   - wai-enforce-https ==0.0.2.1
@@ -2421,23 +2422,23 @@ default-package-overrides:
   - wai-session ==0.3.3
   - wai-slack-middleware ==0.2.0
   - wai-websockets ==3.0.1.2
-  - warp ==3.3.12
+  - warp ==3.3.13
   - warp-tls ==3.2.12
   - warp-tls-uid ==0.2.0.6
   - wave ==0.2.0
   - wcwidth ==0.0.2
   - webdriver ==0.9.0.1
-  - webex-teams-api ==0.2.0.0
-  - webex-teams-conduit ==0.2.0.0
-  - webex-teams-pipes ==0.2.0.0
+  - webex-teams-api ==0.2.0.1
+  - webex-teams-conduit ==0.2.0.1
+  - webex-teams-pipes ==0.2.0.1
   - webrtc-vad ==0.1.0.3
   - websockets ==0.12.7.1
   - websockets-snap ==0.10.3.1
   - weigh ==0.0.16
   - wide-word ==0.1.1.1
   - wikicfp-scraper ==0.1.0.11
-  - wild-bind ==0.1.2.5
-  - wild-bind-x11 ==0.2.0.9
+  - wild-bind ==0.1.2.6
+  - wild-bind-x11 ==0.2.0.10
   - Win32 ==2.6.1.0
   - Win32-notify ==0.3.0.3
   - windns ==0.1.0.1
@@ -2454,7 +2455,7 @@ default-package-overrides:
   - word8 ==0.1.3
   - word-trie ==0.3.0
   - word-wrap ==0.4.1
-  - world-peace ==1.0.1.0
+  - world-peace ==1.0.2.0
   - wrap ==0.0.0
   - wreq ==0.5.3.2
   - writer-cps-exceptions ==0.1.0.1
@@ -2462,7 +2463,7 @@ default-package-overrides:
   - writer-cps-transformers ==0.5.6.1
   - wss-client ==0.3.0.0
   - wuss ==1.1.17
-  - X11 ==1.9.1
+  - X11 ==1.9.2
   - X11-xft ==0.3.1
   - x11-xim ==0.0.9.0
   - x509 ==1.7.5
@@ -2475,7 +2476,7 @@ default-package-overrides:
   - xdg-userdirs ==0.1.0.2
   - xeno ==0.4.1
   - xls ==0.1.3
-  - xlsx ==0.8.0
+  - xlsx ==0.8.1
   - xlsx-tabular ==0.2.2.1
   - xml ==1.3.14
   - xml-basic ==0.1.3.1
@@ -2490,20 +2491,20 @@ default-package-overrides:
   - xml-picklers ==0.3.6
   - xml-to-json ==2.0.1
   - xml-to-json-fast ==2.0.0
-  - xml-types ==0.3.7
+  - xml-types ==0.3.8
   - xmonad ==0.15
   - xmonad-contrib ==0.16
   - xmonad-extras ==0.15.2
   - xss-sanitize ==0.3.6
   - xturtle ==0.2.0.0
   - xxhash-ffi ==0.2.0.0
-  - yaml ==0.11.4.0
+  - yaml ==0.11.5.0
   - yamlparse-applicative ==0.1.0.1
-  - yesod ==1.6.0.1
+  - yesod ==1.6.1.0
   - yesod-auth ==1.6.10
   - yesod-auth-fb ==1.10.1
   - yesod-auth-hashdb ==1.7.1.2
-  - yesod-bin ==1.6.0.4
+  - yesod-bin ==1.6.0.6
   - yesod-core ==1.6.18
   - yesod-fb ==0.6.1
   - yesod-form ==1.6.7
@@ -2513,8 +2514,8 @@ default-package-overrides:
   - yesod-persistent ==1.6.0.4
   - yesod-recaptcha2 ==1.0.0
   - yesod-sitemap ==1.6.0
-  - yesod-static ==1.6.0.1
-  - yesod-test ==1.6.9.1
+  - yesod-static ==1.6.1.0
+  - yesod-test ==1.6.10
   - yesod-websockets ==0.3.0.2
   - yes-precure5-command ==5.5.3
   - yi-rope ==0.11
@@ -2531,7 +2532,7 @@ default-package-overrides:
   - zip-archive ==0.4.1
   - zippers ==0.3
   - zip-stream ==0.2.0.1
-  - zlib ==0.6.2.1
+  - zlib ==0.6.2.2
   - zlib-bindings ==0.1.1.5
   - zlib-lens ==0.1.2.1
   - zot ==0.0.3
@@ -2539,6 +2540,7 @@ default-package-overrides:
 
 extra-packages:
   - aeson < 0.8                         # newer versions don't work with GHC 7.6.x or earlier
+  - aeson == 1.5.2.0                    # needed for fourmolu 0.1.0.0, but 1.5.3 is to new for our purpose
   - aeson-pretty < 0.8                  # required by elm compiler
   - Agda == 2.6.1                       # allows the agdaPackage set to be fixed to this version so that it won't break when another agda version is released.
   - ansi-terminal == 0.10.3             # required by cabal-plan, and policeman in ghc-8.8.x
@@ -2558,11 +2560,12 @@ extra-packages:
   - dbus <1                             # for xmonad-0.26
   - deepseq == 1.3.0.1                  # required to build Cabal with GHC 6.12.3
   - dhall == 1.29.0                     # required for spago 0.14.0.
-  - dhall == 1.30.0                     # required for neuron 0.4.0.0.
+  - Diff < 0.4                          # required by liquidhaskell-0.8.10.2: https://github.com/ucsd-progsys/liquidhaskell/issues/1729
   - doctemplates == 0.8                 # required by pandoc-2.9.x
   - generic-deriving == 1.10.5.*        # new versions don't compile with GHC 7.10.x
-  - ghc-check == 0.3.0.1                # only version compatible with ghcide 0.2.0
   - ghc-tcplugins-extra ==0.3.2         # required for polysemy-plugin 0.2.5.0
+  - gi-gdk == 3.0.23                    # required for gi-pango 1.0.23
+  - gi-gtk == 3.0.35                    # required for gi-pango 1.0.23
   - gloss < 1.9.3                       # new versions don't compile with GHC 7.8.x
   - haddock == 2.22.*                   # required on GHC 8.0.x
   - haddock == 2.23.*                   # required on GHC < 8.10.x
@@ -2571,11 +2574,10 @@ extra-packages:
   - happy <1.19.6                       # newer versions break Agda
   - happy == 1.19.9                     # for purescript
   - haskell-gi-overloading == 0.0       # gi-* packages use this dependency to disable overloading support
-  - haskell-lsp == 0.22.*               # required for ghcide 0.2.0
-  - haskell-lsp-types == 0.22.*         # required for ghcide 0.2.0
   - haskell-src-exts == 1.19.*          # required by hindent and structured-haskell-mode
   - hinotify == 0.3.9                   # for xmonad-0.26: https://github.com/kolmodin/hinotify/issues/29
   - hoogle == 5.0.14                    # required by hie-hoogle
+  - hslua == 1.1.2                      # required for pandoc 2.10
   - html-conduit ^>= 1.2                # pre-lts-11.x versions neeed by git-annex 6.20180227
   - http-conduit ^>= 2.2                # pre-lts-11.x versions neeed by git-annex 6.20180227
   - inline-c < 0.6                      # required on GHC 8.0.x
@@ -2586,6 +2588,7 @@ extra-packages:
   - mtl-prelude < 2                     # required for to build postgrest on mtl 2.1.x platforms
   - network == 2.6.3.1                  # newer versions don't compile with GHC 7.4.x and below
   - network == 3.0.*                    # required by network-bsd, HTTP, and many others (2019-04-30)
+  - ormolu == 0.0.5.0                   # required by haskell-language-server
   - pantry == 0.2.0.0                   # required by stack-2.1.3.1
   - parallel == 3.2.0.3                 # newer versions don't work with GHC 6.12.3
   - patience ^>= 0.1                    # required by chell-0.4.x
@@ -2599,6 +2602,7 @@ extra-packages:
   - resourcet ==1.1.*                   # pre-lts-11.x versions neeed by git-annex 6.20180227
   - seqid < 0.2                         # newer versions depend on transformers 0.4.x which we cannot provide in GHC 7.8.x
   - seqid-streams < 0.2                 # newer versions depend on transformers 0.4.x which we cannot provide in GHC 7.8.x
+  - shelly ==1.8.1                      # ghcjs depends on shelly < 1.9
   - split < 0.2                         # newer versions don't work with GHC 6.12.3
   - tar < 0.4.2.0                       # later versions don't work with GHC < 7.6.x
   - transformers == 0.4.3.*             # the latest version isn't supported by mtl yet
@@ -2610,6 +2614,13 @@ extra-packages:
   - yesod-persistent < 1.5              # pre-lts-11.x versions neeed by git-annex 6.20180227
   - yesod-static ^>= 1.5                # pre-lts-11.x versions neeed by git-annex 6.20180227
   - yesod-test ^>= 1.5                  # pre-lts-11.x versions neeed by git-annex 6.20180227
+  - immortal == 0.2.2.1                 # required by Hasura 1.3.1, 2020-08-20
+  - dependent-map == 0.2.4.0            # required by Hasura 1.3.1, 2020-08-20
+  - dependent-sum == 0.4                # required by Hasura 1.3.1, 2020-08-20
+  - witherable == 0.3.2                 # required by Hasura 1.3.1, 2020-08-20
+  - protolude == 0.3.0                  # required by Hasura 1.3.1, 2020-08-20
+  - optics-core == 0.3.0.1              # required by Hasura 1.3.1, 2020-08-20
+  - base-compat == 0.11.1              # required by Hasura 1.3.1, 2020-08-20
 
 package-maintainers:
   peti:
@@ -2646,11 +2657,11 @@ package-maintainers:
     # - pipes-mongodb
     - streaming-wai
   kiwi:
+    - Unique
     - glirc
     - matterhorn
     - mattermost-api
     - mattermost-api-qc
-    - Unique
   psibi:
     - path-pieces
     - persistent
@@ -2667,7 +2678,6 @@ package-maintainers:
   cdepillabout:
     - pretty-simple
     - spago
-    - termonad
   rkrzr:
     - icepeak
   terlar:
@@ -2676,21 +2686,24 @@ package-maintainers:
     - reflex-dom
     - ghcide
     - cabal-fmt
-    - neuron
     - shh
     - brittany
     - hlint
+    - neuron
     - releaser
     - taskwarrior
   sorki:
     - cayene-lpp
     - data-stm32
-    # - gcodehs
+    - gcodehs
     - nix-derivation
     - nix-narinfo
     - ttn
     # - ttn-client
+    - update-nix-fetchgit
     - zre
+  utdemir:
+    - nix-tree
 
 unsupported-platforms:
   alsa-mixer:                                   [ x86_64-darwin ]
@@ -2749,16 +2762,26 @@ dont-distribute-packages:
   - accelerate-examples
   - accelerate-fft
   - accelerate-fourier-benchmark
+  - accelerate-io-array
+  - accelerate-io-bmp
+  - accelerate-io-bytestring
+  - accelerate-io-cereal
+  - accelerate-io-JuicyPixels
+  - accelerate-io-repa
+  - accelerate-io-vector
   - accelerate-llvm-ptx
   - bindings-yices
   - boolector
   - ccelerate-cuda
+  - containers-accelerate
   - cplex-hs
   - cublas
+  - cuda # 2020-08-18 because of dependency nvidia-x11
   - cufft
   - cusolver
   - cusparse
   - gloss-raster-accelerate
+  - hashable-accelerate
   - libnvvm
   - matlab
   - nvvm
@@ -2957,6 +2980,7 @@ broken-packages:
   - alerta
   - alex-prelude
   - alfred
+  - alfred-margaret
   - alga
   - algebra-dag
   - algebra-sql
@@ -2989,6 +3013,7 @@ broken-packages:
   - AMI
   - ampersand
   - amqp-conduit
+  - amqp-streamly
   - analyze
   - analyze-client
   - anansi-pandoc
@@ -3103,6 +3128,7 @@ broken-packages:
   - artifact
   - asap
   - ascii
+  - ascii-cows
   - ascii-flatten
   - ascii-string
   - ascii-table
@@ -3202,6 +3228,7 @@ broken-packages:
   - aws-kinesis-client
   - aws-kinesis-reshard
   - aws-lambda
+  - aws-lambda-haskell-runtime-wai
   - aws-mfa-credentials
   - aws-performance-tests
   - aws-route53
@@ -3213,9 +3240,11 @@ broken-packages:
   - aws-sns
   - axel
   - axiom
+  - azimuth-hs
   - azubi
   - azure-acs
   - azure-email
+  - azure-functions-worker
   - azure-service-api
   - azure-servicebus
   - azurify
@@ -3405,6 +3434,7 @@ broken-packages:
   - BirdPP
   - birds-of-paradise
   - bisect-binary
+  - bishbosh
   - bit-array
   - bit-stream
   - bitcoin-address
@@ -3495,6 +3525,8 @@ broken-packages:
   - bounded-array
   - bowntz
   - box
+  - box-csv
+  - box-socket
   - braid
   - brain-bleep
   - Bravo
@@ -3548,11 +3580,14 @@ broken-packages:
   - buster
   - buster-gtk
   - buster-network
+  - bustle
   - butter
   - butterflies
   - bv-sized
+  - byline
   - bytable
   - bytearray-parsing
+  - bytelog
   - bytestring-arbitrary
   - bytestring-builder-varword
   - bytestring-class
@@ -3577,7 +3612,6 @@ broken-packages:
   - c10k
   - c2ats
   - cabal-audit
-  - cabal-bounds
   - cabal-bundle-clib
   - cabal-cache
   - cabal-cargs
@@ -3594,7 +3628,6 @@ broken-packages:
   - cabal-install-bundle
   - cabal-install-ghc72
   - cabal-install-ghc74
-  - cabal-lenses
   - cabal-meta
   - cabal-mon
   - cabal-nirvana
@@ -3652,6 +3685,7 @@ broken-packages:
   - cap
   - Capabilities
   - capability
+  - capataz
   - capnp
   - capped-list
   - capri
@@ -3729,6 +3763,7 @@ broken-packages:
   - cgen
   - cgi-utils
   - cgrep
+  - chainweb-mining-client
   - chalkboard
   - chalkboard-viewer
   - charade
@@ -3737,6 +3772,7 @@ broken-packages:
   - chart-histogram
   - Chart-simple
   - chart-svg
+  - chart-svg-various
   - chart-unit
   - chatter
   - chatty-text
@@ -3880,6 +3916,7 @@ broken-packages:
   - codemonitor
   - codepad
   - codeworld-api
+  - codex
   - codo-notation
   - coin
   - coinbase-exchange
@@ -3939,8 +3976,9 @@ broken-packages:
   - complexity
   - compose-trans
   - composite-aeson
+  - composite-aeson-path
   - composite-aeson-refined
-  - composite-base
+  - composite-binary
   - composite-ekg
   - composite-opaleye
   - composite-swagger
@@ -4020,6 +4058,7 @@ broken-packages:
   - constraint-manip
   - ConstraintKinds
   - constraints-emerge
+  - construct
   - constructible
   - constructive-algebra
   - consul-haskell
@@ -4052,6 +4091,7 @@ broken-packages:
   - Control-Monad-ST2
   - contstuff-monads-tf
   - contstuff-transformers
+  - conversions
   - convert
   - convert-annotation
   - convertible-ascii
@@ -4071,6 +4111,7 @@ broken-packages:
   - CoreDump
   - CoreErlang
   - CoreFoundation
+  - corenlp-parser
   - Coroutine
   - coroutine-enumerator
   - coroutine-iteratee
@@ -4090,6 +4131,7 @@ broken-packages:
   - cparsing
   - CPBrainfuck
   - cpio-conduit
+  - cpkg
   - CPL
   - cplusplus-th
   - cprng-aes-effect
@@ -4145,11 +4187,18 @@ broken-packages:
   - cryptocipher
   - cryptocompare
   - cryptoconditions
+  - cryptoids
   - cryptol
   - cryptsy-api
   - crystalfontz
   - cse-ghc-plugin
   - csg
+  - csound-catalog
+  - csound-expression
+  - csound-expression-dynamic
+  - csound-expression-opcodes
+  - csound-expression-typed
+  - csound-sampler
   - CSPM-cspm
   - CSPM-FiringRules
   - CSPM-Frontend
@@ -4178,6 +4227,7 @@ broken-packages:
   - curve25519
   - curves
   - custom-prelude
+  - cut-the-crap
   - CV
   - cv-combinators
   - cypher
@@ -4228,6 +4278,7 @@ broken-packages:
   - data-filepath
   - data-fin
   - data-fin-simple
+  - data-fix-cse
   - data-flagset
   - data-forest
   - data-ivar
@@ -4261,6 +4312,7 @@ broken-packages:
   - data-transform
   - data-type
   - data-util
+  - data-validation
   - data-variant
   - database-id-groundhog
   - database-study
@@ -4353,7 +4405,6 @@ broken-packages:
   - dependent-hashmap
   - dependent-monoidal-map
   - dependent-state
-  - dependent-sum-aeson-orphans
   - depends
   - dephd
   - deptrack-core
@@ -4383,8 +4434,8 @@ broken-packages:
   - dgim
   - dgs
   - dhall-check
+  - dhall-docs
   - dhall-fly
-  - dhall-nix
   - dhall-text
   - dhall-to-cabal
   - dhall-yaml
@@ -4406,6 +4457,7 @@ broken-packages:
   - diagrams-wx
   - dialogflow-fulfillment
   - dib
+  - dice
   - dice-entropy-conduit
   - dice2tex
   - dicom
@@ -4658,6 +4710,7 @@ broken-packages:
   - elm-websocket
   - elynx
   - elynx-markov
+  - elynx-nexus
   - elynx-seq
   - elynx-tools
   - elynx-tree
@@ -4677,6 +4730,7 @@ broken-packages:
   - enchant
   - encoding
   - encoding-io
+  - encryptable
   - engine-io
   - engine-io-growler
   - engine-io-snap
@@ -4698,6 +4752,7 @@ broken-packages:
   - EnumMap
   - enummapmap
   - enummapset-th
+  - env-extra
   - env-parser
   - envstatus
   - epanet-haskell
@@ -4729,10 +4784,9 @@ broken-packages:
   - EsounD
   - espial
   - ess
-  - essence-of-live-coding
-  - essence-of-live-coding-gloss
-  - essence-of-live-coding-pulse
-  - essence-of-live-coding-quickcheck
+  - essence-of-live-coding-gloss-example
+  - essence-of-live-coding-pulse-example
+  - essence-of-live-coding-warp
   - estimators
   - EstProgress
   - estreps
@@ -4825,6 +4879,7 @@ broken-packages:
   - f-ree-hack-cheats-free-v-bucks-generator
   - Facebook-Password-Hacker-Online-Latest-Version
   - faceted
+  - factory
   - Facts
   - facts
   - factual-api
@@ -4922,6 +4977,7 @@ broken-packages:
   - FileManip
   - FileManipCompat
   - fileneglect
+  - filepath-crypto
   - filepath-io-access
   - FilePather
   - filepather
@@ -4942,7 +4998,6 @@ broken-packages:
   - findhttp
   - fingertree-psqueue
   - fingertree-tf
-  - finitary
   - finitary-derive
   - finitary-optics
   - FiniteMap
@@ -4951,6 +5006,7 @@ broken-packages:
   - first-class-instances
   - firstify
   - FirstOrderTheory
+  - fishfood
   - fit
   - fits-parse
   - fitsio
@@ -4989,7 +5045,6 @@ broken-packages:
   - flite
   - float-binstring
   - floating-bits
-  - floskell
   - flow-er
   - flow2dot
   - flowdock
@@ -5048,7 +5103,6 @@ broken-packages:
   - foscam-filename
   - foscam-sort
   - Foster
-  - fourmolu
   - fpco-api
   - fplll
   - fpnla-examples
@@ -5060,6 +5114,7 @@ broken-packages:
   - frag
   - Frames-beam
   - Frames-dsv
+  - Frames-map-reduce
   - franchise
   - Frank
   - fraxl
@@ -5143,8 +5198,12 @@ broken-packages:
   - funpat
   - funsat
   - funspection
+  - fused-effects-exceptions
+  - fused-effects-optics
+  - fused-effects-random
   - fused-effects-readline
   - fused-effects-squeal
+  - fused-effects-th
   - fusion
   - fusion-plugin
   - futun
@@ -5171,7 +5230,6 @@ broken-packages:
   - gas
   - gbu
   - gc-monitoring-wai
-  - gcodehs
   - gconf
   - gdax
   - gdiff-ig
@@ -5262,6 +5320,7 @@ broken-packages:
   - ghc-parmake
   - ghc-pkg-autofix
   - ghc-pkg-lib
+  - ghc-plugs-out
   - ghc-proofs
   - ghc-session
   - ghc-simple
@@ -5288,16 +5347,23 @@ broken-packages:
   - ghcprofview
   - ght
   - gi-cairo-again
+  - gi-cairo-connector
+  - gi-cairo-render
+  - gi-dbusmenu
+  - gi-dbusmenugtk3
+  - gi-gdkx11
   - gi-graphene
   - gi-gsk
   - gi-gstpbutils
   - gi-gsttag
+  - gi-gtk-declarative
+  - gi-gtk-declarative-app-simple
+  - gi-gtk-hs
   - gi-gtkosxapplication
   - gi-handy
-  - gi-ibus
   - gi-poppler
-  - gi-secret
   - gi-wnck
+  - gi-xlib
   - giak
   - Gifcurry
   - ginsu
@@ -5308,6 +5374,7 @@ broken-packages:
   - git-all
   - git-checklist
   - git-config
+  - git-cuk
   - git-date
   - git-fmt
   - git-gpush
@@ -5377,6 +5444,7 @@ broken-packages:
   - gloss-sodium
   - glpk-headers
   - glpk-hs
+  - gltf-codec
   - glue
   - GLUtil
   - gmap
@@ -5400,10 +5468,12 @@ broken-packages:
   - google-drive
   - google-html5-slide
   - google-mail-filters
+  - google-maps-geocoding
   - google-oauth2
   - google-oauth2-easy
   - google-search
   - google-server-api
+  - google-static-maps
   - google-translate
   - GoogleCodeJam
   - GoogleDirections
@@ -5511,6 +5581,8 @@ broken-packages:
   - gtfs
   - gtfs-realtime
   - gtk-serialized-event
+  - gtk-sni-tray
+  - gtk-strut
   - gtk-toy
   - gtk2hs-hello
   - gtk2hs-rpn
@@ -5594,18 +5666,25 @@ broken-packages:
   - hakismet
   - hakka
   - hako
+  - hakyll
   - hakyll-agda
   - hakyll-blaze-templates
   - hakyll-contrib
   - hakyll-contrib-csv
   - hakyll-contrib-elm
+  - hakyll-contrib-hyphenation
   - hakyll-contrib-links
   - hakyll-convert
+  - hakyll-dhall
   - hakyll-dir-list
+  - hakyll-favicon
   - hakyll-filestore
+  - hakyll-images
   - hakyll-ogmarkup
   - hakyll-R
+  - hakyll-sass
   - hakyll-series
+  - hakyll-shakespeare
   - hakyll-shortcode
   - hakyll-shortcut-links
   - hakyll-typescript
@@ -5699,6 +5778,7 @@ broken-packages:
   - has-th
   - HasCacBDD
   - hascar
+  - hascard
   - hascas
   - Haschoo
   - HasGP
@@ -5736,10 +5816,12 @@ broken-packages:
   - haskell-docs
   - haskell-eigen-util
   - haskell-exp-parser
+  - haskell-fake-user-agent
   - haskell-formatter
   - haskell-ftp
   - haskell-generate
   - haskell-go-checkers
+  - haskell-google-trends
   - haskell-in-space
   - haskell-kubernetes
   - haskell-lsp-client
@@ -5763,6 +5845,7 @@ broken-packages:
   - haskell-src-exts-prisms
   - haskell-src-exts-qq
   - haskell-src-exts-sc
+  - haskell-src-match
   - haskell-src-meta-mwotton
   - haskell-stack-trace-plugin
   - haskell-token-utils
@@ -5789,6 +5872,7 @@ broken-packages:
   - haskell2020
   - haskell98
   - haskell98libraries
+  - HaskellAnalysisProgram
   - haskelldb
   - haskelldb-connect-hdbc
   - haskelldb-connect-hdbc-catchio-mtl
@@ -5845,6 +5929,7 @@ broken-packages:
   - haskore-supercollider
   - haskore-synthesizer
   - HaskRel
+  - haskseg
   - hasktorch
   - hasktorch-codegen
   - hasktorch-ffi-th
@@ -5870,13 +5955,13 @@ broken-packages:
   - hasql-dynamic-statements
   - hasql-generic
   - hasql-implicits
-  - hasql-migration
   - hasql-optparse-applicative
   - hasql-postgres
   - hasql-postgres-options
   - hasql-queue
   - hasql-simple
   - hasql-th
+  - hasqly-mysql
   - hastache
   - hastache-aeson
   - haste
@@ -5929,7 +6014,6 @@ broken-packages:
   - hcltest
   - hcoap
   - hcom
-  - hcoord
   - hcron
   - hCsound
   - hcube
@@ -6039,6 +6123,7 @@ broken-packages:
   - hexpress
   - hexquote
   - hext
+  - hextra
   - heyefi
   - heyting-algebras
   - hF2
@@ -6161,6 +6246,7 @@ broken-packages:
   - HLogger
   - hlogger
   - hlongurl
+  - hlrdb
   - hls
   - hlwm
   - hly
@@ -6201,7 +6287,6 @@ broken-packages:
   - hobbes
   - hobbits
   - hocilib
-  - hocker
   - hodatime
   - HODE
   - hoe
@@ -6240,6 +6325,7 @@ broken-packages:
   - hoodle-types
   - hoogle-index
   - hooks-dir
+  - hoop
   - hoopl
   - hoovie
   - hopencc
@@ -6515,7 +6601,6 @@ broken-packages:
   - http-client-auth
   - http-client-lens
   - http-client-request-modifiers
-  - http-client-restricted
   - http-client-session
   - http-client-streams
   - http-conduit-browser
@@ -6586,6 +6671,7 @@ broken-packages:
   - hw-json-simple-cursor
   - hw-json-standard-cursor
   - hw-kafka-avro
+  - hw-prim-bits
   - hw-rankselect
   - hw-simd
   - hw-succinct
@@ -6747,8 +6833,8 @@ broken-packages:
   - inilist
   - initialize
   - inject-function
+  - inline-asm
   - inline-java
-  - inline-r
   - inserts
   - inspector-wrecker
   - instana-haskell-trace-sdk
@@ -6765,10 +6851,12 @@ broken-packages:
   - integer-pure
   - integreat
   - intel-aes
+  - intensional-datatys
   - interlude-l
   - InternedData
   - internetmarke
   - intero
+  - interp
   - interpol
   - interpolatedstring-qq
   - interpolatedstring-qq-mwotton
@@ -6780,7 +6868,6 @@ broken-packages:
   - introduction
   - introduction-test
   - intset
-  - invertible-grammar
   - invertible-hlist
   - invertible-syntax
   - io-capture
@@ -6793,7 +6880,6 @@ broken-packages:
   - iostring
   - iothread
   - iotransaction
-  - ip
   - ip2location
   - ip2proxy
   - ipatch
@@ -6940,6 +7026,7 @@ broken-packages:
   - jsonsql
   - jsontsv
   - jsonxlsx
+  - jsop
   - jspath
   - juandelacosa
   - judge
@@ -7041,6 +7128,7 @@ broken-packages:
   - ks-test
   - KSP
   - ktx
+  - ktx-codec
   - kubernetes-client
   - kubernetes-client-core
   - kuifje
@@ -7113,6 +7201,7 @@ broken-packages:
   - language-csharp
   - language-css
   - language-dart
+  - language-dickinson
   - language-dockerfile
   - language-ecmascript-analysis
   - language-eiffel
@@ -7156,6 +7245,8 @@ broken-packages:
   - latest-npm-version
   - latex-formulae-hakyll
   - latex-formulae-pandoc
+  - latex-svg-hakyll
+  - latex-svg-pandoc
   - LATS
   - launchdarkly-server-sdk
   - launchpad-control
@@ -7188,6 +7279,7 @@ broken-packages:
   - learn
   - learn-physics-examples
   - Learning
+  - learning-hmm
   - leetify
   - legion
   - legion-discovery
@@ -7222,10 +7314,12 @@ broken-packages:
   - lhe
   - lhs2TeX-hl
   - lhslatex
+  - libarchive
   - LibClang
   - libconfig
   - libcspm
   - libexpect
+  - libfuse3
   - libGenI
   - libhbb
   - libinfluxdb
@@ -7243,7 +7337,6 @@ broken-packages:
   - libraft
   - librandomorg
   - librato
-  - libsodium
   - libssh2
   - libssh2-conduit
   - libsystemd-daemon
@@ -7302,16 +7395,12 @@ broken-packages:
   - lio-fs
   - lio-simple
   - lipsum-gen
-  - liquid
-  - liquid-fixpoint
-  - liquidhaskell
   - liquidhaskell-cabal
   - Liquorice
   - list-fusion-probe
   - list-mux
   - list-prompt
   - list-remote-forwards
-  - list-t
   - list-t-attoparsec
   - list-t-html-parser
   - list-t-http-client
@@ -7373,6 +7462,7 @@ broken-packages:
   - log4hs
   - logentries
   - logger
+  - logging-effect
   - logging-effect-extra
   - logging-effect-extra-file
   - logging-effect-extra-handler
@@ -7417,6 +7507,7 @@ broken-packages:
   - lp-diagrams
   - lp-diagrams-svg
   - LRU
+  - lrucaching-haxl
   - ls-usb
   - lscabal
   - LslPlus
@@ -7445,6 +7536,7 @@ broken-packages:
   - lye
   - Lykah
   - lz4-conduit
+  - lz4-frame-conduit
   - lzma-enumerator
   - lzma-streams
   - lzo
@@ -7542,6 +7634,7 @@ broken-packages:
   - mathflow
   - mathlink
   - matrix-as-xyz
+  - matrix-lens
   - matrix-market
   - matrix-sized
   - matsuri
@@ -7570,6 +7663,7 @@ broken-packages:
   - mDNSResponder-client
   - mdp
   - mealstrom
+  - mealy
   - MeanShift
   - Measure
   - mecab
@@ -7659,7 +7753,9 @@ broken-packages:
   - ministg
   - minst-idx
   - mios
+  - MIP
   - mirror-tweet
+  - misfortune
   - miso-action-logger
   - miso-examples
   - miss
@@ -7700,7 +7796,7 @@ broken-packages:
   - monad-atom
   - monad-atom-simple
   - monad-branch
-  - monad-dijkstra
+  - monad-classes-logging
   - monad-exception
   - monad-finally
   - monad-fork
@@ -7849,6 +7945,7 @@ broken-packages:
   - multibase
   - multifocal
   - multihash
+  - multihash-cryptonite
   - multihash-serialise
   - multilinear
   - multilinear-io
@@ -7889,6 +7986,7 @@ broken-packages:
   - mvc
   - mvc-updates
   - mvclient
+  - mwc-probability-transition
   - mwc-random-accelerate
   - mxnet
   - mxnet-dataiter
@@ -8106,6 +8204,9 @@ broken-packages:
   - numhask-test
   - Nussinov78
   - Nutri
+  - nvim-hs
+  - nvim-hs-contrib
+  - nvim-hs-ghcid
   - NXT
   - NXTDSL
   - nylas
@@ -8145,6 +8246,7 @@ broken-packages:
   - om-actor
   - om-elm
   - om-fail
+  - om-http-logging
   - omaketex
   - ombra
   - Omega
@@ -8155,6 +8257,7 @@ broken-packages:
   - onama
   - ONC-RPC
   - oneormore
+  - online
   - online-csv
   - onpartitions
   - OnRmt
@@ -8265,9 +8368,11 @@ broken-packages:
   - pam
   - pan-os-syslog
   - panda
+  - pandoc-csv2table
   - pandoc-emphasize-code
   - pandoc-filter-graphviz
   - pandoc-include
+  - pandoc-include-code
   - pandoc-japanese-filters
   - pandoc-lens
   - pandoc-markdown-ghci-filter
@@ -8277,6 +8382,7 @@ broken-packages:
   - pandoc-pyplot
   - pandoc-sidenote
   - pandoc-unlit
+  - pandoc-utils
   - PandocAgda
   - pang-a-lambda
   - pangraph
@@ -8300,6 +8406,7 @@ broken-packages:
   - paphragen
   - pappy
   - paprika
+  - par-dual
   - paragon
   - Paraiso
   - Parallel-Arrows-Eden
@@ -8438,6 +8545,7 @@ broken-packages:
   - pg-store
   - pg-transact
   - pgdl
+  - pgf2
   - pgsql-simple
   - pgstream
   - phasechange
@@ -8524,6 +8632,7 @@ broken-packages:
   - plat
   - platinum-parsing
   - PlayingCards
+  - plex
   - plist
   - plist-buddy
   - plocketed
@@ -8563,7 +8672,10 @@ broken-packages:
   - polydata
   - polydata-core
   - polynomial
+  - polysemy-http
+  - polysemy-optics
   - polysemy-RandomFu
+  - polysemy-test
   - polysemy-webserver
   - polysemy-zoo
   - polyseq
@@ -8608,6 +8720,8 @@ broken-packages:
   - postgresql-simple-sop
   - postgresql-simple-typed
   - postgresql-syntax
+  - postgresql-tx-query
+  - postgresql-tx-squeal
   - postgresql-typed
   - postgresql-typed-lifted
   - postgrest-ws
@@ -8657,13 +8771,15 @@ broken-packages:
   - pretty-ghci
   - pretty-ncols
   - prettyprinter-graphviz
+  - prettyprinter-lucid
   - prettyprinter-vty
   - preview
   - prim
   - prim-array
   - prim-ref
+  - primal
+  - primal-memory
   - primes-type
-  - primitive-extras
   - primitive-indexed
   - primitive-maybe
   - primitive-simd
@@ -8768,6 +8884,7 @@ broken-packages:
   - purescript
   - purescript-iso
   - purescript-tsd-gen
+  - pursuit-client
   - push-notifications
   - push-notify
   - push-notify-apn
@@ -8800,6 +8917,7 @@ broken-packages:
   - quantfin
   - quantum-arrow
   - quantum-random
+  - quarantimer
   - qudb
   - Quelea
   - quenya-verb
@@ -8874,12 +8992,18 @@ broken-packages:
   - random-derive
   - random-eff
   - random-effin
+  - random-extras
+  - random-fu
+  - random-fu-multivariate
   - random-hypergeometric
+  - random-source
   - random-stream
   - RandomDotOrg
+  - Randometer
   - Range
   - range-space
   - rangemin
+  - rank-product
   - rank1dynamic
   - Ranka
   - rapid
@@ -8955,6 +9079,7 @@ broken-packages:
   - redis-hs
   - redis-io
   - redis-simple
+  - rediscaching-haxl
   - redland
   - Redmine
   - reduce-equations
@@ -8967,6 +9092,7 @@ broken-packages:
   - Referees
   - references
   - refh
+  - refined-http-api-data
   - reflection-extras
   - reflex-animation
   - reflex-backend-socket
@@ -9032,6 +9158,7 @@ broken-packages:
   - relacion
   - relation
   - relational-postgresql8
+  - relational-query-postgresql-pure
   - relative-date
   - relevant-time
   - reload
@@ -9071,6 +9198,7 @@ broken-packages:
   - req-url-extra
   - request-monad
   - require
+  - rescue
   - reserve
   - reservoir
   - resin
@@ -9098,7 +9226,6 @@ broken-packages:
   - rethinkdb-client-driver
   - rethinkdb-model
   - rethinkdb-wereHamster
-  - retrie
   - retryer
   - reverse-geocoding
   - reversi
@@ -9202,8 +9329,10 @@ broken-packages:
   - ruler
   - ruler-core
   - rungekutta
+  - runhs
   - runmany
   - runtime-arbitrary
+  - rvar
   - rws
   - RxHaskell
   - s-expression
@@ -9269,6 +9398,7 @@ broken-packages:
   - SCalendar
   - scalendar
   - scalp-webhooks
+  - scalpel-search
   - scan-vector-machine
   - scc
   - scenegraph
@@ -9301,6 +9431,7 @@ broken-packages:
   - scotty-fay
   - scotty-format
   - scotty-hastache
+  - scotty-haxl
   - scotty-resource
   - scotty-rest
   - scotty-session
@@ -9336,6 +9467,7 @@ broken-packages:
   - secure-sockets
   - secureUDP
   - sednaDBXML
+  - seitz-symbol
   - selectors
   - SelectSequencesFromMSA
   - selenium
@@ -9415,6 +9547,9 @@ broken-packages:
   - servant-pushbullet-client
   - servant-py
   - servant-quickcheck
+  - servant-rawm-client
+  - servant-rawm-docs
+  - servant-rawm-server
   - servant-reason
   - servant-reflex
   - servant-router
@@ -9426,6 +9561,7 @@ broken-packages:
   - servant-streaming-docs
   - servant-streaming-server
   - servant-swagger-tags
+  - servant-to-elm
   - servant-waargonaut
   - servant-zeppelin
   - servant-zeppelin-client
@@ -9448,7 +9584,6 @@ broken-packages:
   - setoid
   - setters
   - sexp
-  - sexp-grammar
   - sexpr-parser
   - sext
   - SFML
@@ -9469,11 +9604,13 @@ broken-packages:
   - shadower
   - shake-bindist
   - shake-cabal-build
+  - shake-dhall
   - shake-extras
   - shake-minify
   - shake-pack
   - shake-path
   - shake-persist
+  - shake-plus-extended
   - shakebook
   - shaker
   - shakespeare-babel
@@ -9575,6 +9712,7 @@ broken-packages:
   - siphon
   - siren-json
   - sirkel
+  - sitepipe
   - sixfiguregroup
   - sized-grid
   - sized-types
@@ -9617,6 +9755,7 @@ broken-packages:
   - smartconstructor
   - smartGroup
   - smartword
+  - smash-optics
   - smcdel
   - sme
   - smerdyakov
@@ -9649,7 +9788,6 @@ broken-packages:
   - snap-loader-static
   - snap-routes
   - snap-stream
-  - snap-templates
   - snap-testing
   - snap-utils
   - snap-web-routes
@@ -9743,6 +9881,7 @@ broken-packages:
   - spanout
   - sparkle
   - sparrow
+  - spars
   - sparse
   - sparse-lin-alg
   - sparsebit
@@ -9772,12 +9911,10 @@ broken-packages:
   - splines
   - split-morphism
   - splitter
-  - splot
   - Spock
   - Spock-api-ghcjs
   - Spock-api-server
   - Spock-auth
-  - Spock-core
   - Spock-digestive
   - Spock-lucid
   - Spock-worker
@@ -9803,6 +9940,7 @@ broken-packages:
   - sqlvalue-list
   - sqsd-local
   - squeal-postgresql
+  - squeeze
   - sr-extra
   - srcinst
   - sscan
@@ -9844,6 +9982,7 @@ broken-packages:
   - stackage-types
   - stackage-upload
   - stackage2nix
+  - stan
   - standalone-derive-topdown
   - standalone-haddock
   - starling
@@ -9883,9 +10022,7 @@ broken-packages:
   - STL
   - STLinkUSB
   - stm-chunked-queues
-  - stm-containers
   - stm-firehose
-  - stm-hamt
   - stm-promise
   - stm-stats
   - stm-supply
@@ -9920,9 +10057,13 @@ broken-packages:
   - streaming-png
   - streaming-process
   - streaming-sort
+  - streamly-archive
+  - streamly-lmdb
   - streamproc
   - strelka
   - strict-data
+  - strict-lens
+  - strict-optics
   - strict-tuple-lens
   - StrictBench
   - StrictCheck
@@ -9937,6 +10078,8 @@ broken-packages:
   - stripe-haskell
   - stripe-http-client
   - stripe-http-streams
+  - stripe-scotty
+  - stripe-signature
   - stripe-tests
   - strongswan-sql
   - structural-induction
@@ -9972,12 +10115,12 @@ broken-packages:
   - sunroof-server
   - super-user-spark
   - superbubbles
-  - superbuffer
   - supercollider-ht
   - supercollider-midi
   - superconstraints
   - superevent
   - supermonad
+  - supernova
   - supero
   - supervisor
   - supervisors
@@ -10001,6 +10144,7 @@ broken-packages:
   - swearjure
   - swf
   - swift-lda
+  - swiss-ephemeris
   - sws
   - syb-extras
   - syb-with-class-instances-text
@@ -10010,6 +10154,7 @@ broken-packages:
   - sym
   - sym-plot
   - symantic
+  - symantic-atom
   - symantic-http-test
   - symantic-lib
   - symantic-xml
@@ -10017,6 +10162,7 @@ broken-packages:
   - symbolic-link
   - symengine
   - symengine-hs
+  - symmetry-operations-symbols
   - sync
   - sync-mht
   - syncthing-hs
@@ -10058,6 +10204,7 @@ broken-packages:
   - Tablify
   - tabloid
   - tabs
+  - taffybar
   - tag-bits
   - tag-stream
   - tagged-exception-core
@@ -10087,9 +10234,9 @@ broken-packages:
   - tart
   - task
   - task-distribution
-  - taskell
   - TaskMonad
   - tasty-auto
+  - tasty-bdd
   - tasty-fail-fast
   - tasty-groundhog-converters
   - tasty-hedgehog-coverage
@@ -10127,6 +10274,7 @@ broken-packages:
   - tellbot
   - tempi
   - template-default
+  - template-haskell-optics
   - template-haskell-util
   - template-hsml
   - template-yj
@@ -10166,6 +10314,7 @@ broken-packages:
   - test-simple
   - testbench
   - testCom
+  - testcontainers
   - TestExplode
   - testloop
   - testpack
@@ -10274,8 +10423,10 @@ broken-packages:
   - timeseries
   - timespan
   - timeutils
+  - timezone-detect
   - timezone-olson-th
   - timezone-unix
+  - tini
   - tintin
   - tiny-scheduler
   - TinyLaunchbury
@@ -10344,6 +10495,7 @@ broken-packages:
   - trackit
   - traction
   - tracy
+  - trade-journal
   - traildb
   - trajectory
   - transactional-events
@@ -10382,6 +10534,8 @@ broken-packages:
   - treemap-html-tools
   - TreeStructures
   - Treiber
+  - trek-app
+  - trek-db
   - tremulous-query
   - TrendGraph
   - trhsx
@@ -10422,6 +10576,7 @@ broken-packages:
   - turingMachine
   - turtle-options
   - tweak
+  - twee
   - tweet-hs
   - twentefp-eventloop-graphics
   - twentefp-eventloop-trees
@@ -10511,6 +10666,7 @@ broken-packages:
   - UMM
   - unagi-bloomfilter
   - unamb-custom
+  - unbeliever
   - unbound
   - unbound-generics
   - unbound-kind-generics
@@ -10564,7 +10720,6 @@ broken-packages:
   - unused
   - uom-plugin
   - up
-  - update-nix-fetchgit
   - Updater
   - uploadcare
   - upskirt
@@ -10572,11 +10727,13 @@ broken-packages:
   - urembed
   - uri
   - uri-conduit
+  - uri-encoder
   - uri-enumerator
   - uri-enumerator-file
   - uri-parse
   - uri-template
   - uri-templater
+  - url-bytes
   - url-decoders
   - url-generic
   - URLb
@@ -10596,6 +10753,7 @@ broken-packages:
   - usb-id-database
   - usb-iteratee
   - usb-safe
+  - useragents
   - users-mysql-haskell
   - users-persistent
   - utf8-prelude
@@ -10616,6 +10774,7 @@ broken-packages:
   - uuagc-diagrams
   - uuid-aeson
   - uuid-bytes
+  - uuid-crypto
   - uvector
   - uvector-algorithms
   - uxadt
@@ -10696,6 +10855,7 @@ broken-packages:
   - views
   - vigilance
   - Villefort
+  - vimeta
   - vimus
   - vintage-basic
   - vinyl-gl
@@ -10831,11 +10991,13 @@ broken-packages:
   - webshow
   - websockets-rpc
   - webwire
+  - weekdaze
   - weighted
   - weighted-regexp
   - welshy
   - werewolf
   - werewolf-slack
+  - what4
   - Wheb
   - wheb-mongo
   - wheb-redis
@@ -10845,6 +11007,7 @@ broken-packages:
   - whiskers
   - whitespace
   - whois
+  - wholepixels
   - why3
   - WikimediaParser
   - wikipedia4epub
@@ -10991,7 +11154,6 @@ broken-packages:
   - xournal-parser
   - xournal-render
   - xournal-types
-  - xrefcheck
   - xsact
   - XSaiga
   - xsd
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index 232a99eed2c..cff7cc2cd80 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -655,16 +655,16 @@ self: super: builtins.intersectAttrs super {
 
       # This defines the version of the purescript-docs-search release we are using.
       # This is defined in the src/Spago/Prelude.hs file in the spago source.
-      docsSearchVersion = "v0.0.8";
+      docsSearchVersion = "v0.0.10";
 
       docsSearchAppJsFile = pkgs.fetchurl {
         url = "https://github.com/spacchetti/purescript-docs-search/releases/download/${docsSearchVersion}/docs-search-app.js";
-        sha256 = "00pzi7pgjicpa0mg0al80gh2q1q2lqiyb3kjarpydlmn8dfjny7v";
+        sha256 = "0m5ah29x290r0zk19hx2wix2djy7bs4plh9kvjz6bs9r45x25pa5";
       };
 
       purescriptDocsSearchFile = pkgs.fetchurl {
         url = "https://github.com/spacchetti/purescript-docs-search/releases/download/${docsSearchVersion}/purescript-docs-search";
-        sha256 = "1hsi1hc4p1z2xbw82w2jxmmczw6mravli1r89vrkivb72sqdjya7";
+        sha256 = "0wc1zyhli4m2yykc6i0crm048gyizxh7b81n8xc4yb7ibjqwhyj3";
       };
 
       spagoFixHpack = overrideCabal spagoWithOverrides (drv: {
@@ -719,11 +719,6 @@ self: super: builtins.intersectAttrs super {
   # break infinite recursion with base-orphans
   primitive = dontCheck super.primitive;
 
-  # dhall's tests access the network.
-  dhall_1_29_0 = dontCheck super.dhall_1_29_0;
-  dhall_1_31_1 = dontCheck super.dhall_1_31_1;
-  dhall_1_32_0 = dontCheck super.dhall_1_32_0;
-
   cut-the-crap =
     let path = pkgs.stdenv.lib.makeBinPath [ pkgs.ffmpeg_3 ];
     in overrideCabal (addBuildTool super.cut-the-crap pkgs.makeWrapper) (_drv: {
@@ -772,4 +767,8 @@ self: super: builtins.intersectAttrs super {
   postgresql-libpq-notify = dontCheck super.postgresql-libpq-notify;
   postgresql-pure = dontCheck super.postgresql-pure;
 
+  retrie = overrideCabal super.retrie (drv: {
+    testToolDepends = [ pkgs.git pkgs.mercurial ];
+  });
+
 }
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index de5bf631bf0..afb0087a028 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -21,20 +21,21 @@ in
 , configureFlags ? []
 , buildFlags ? []
 , haddockFlags ? []
-, description ? ""
+, description ? null
 , doCheck ? !isCross && stdenv.lib.versionOlder "7.4" ghc.version
 , doBenchmark ? false
 , doHoogle ? true
 , doHaddockQuickjump ? doHoogle && stdenv.lib.versionAtLeast ghc.version "8.6"
 , editedCabalFile ? null
-, enableLibraryProfiling ? !(ghc.isGhcjs or false)
+# aarch64 outputs otherwise exceed 2GB limit
+, enableLibraryProfiling ? !(ghc.isGhcjs or stdenv.targetPlatform.isAarch64 or false)
 , enableExecutableProfiling ? false
 , profilingDetail ? "exported-functions"
 # TODO enable shared libs for cross-compiling
 , enableSharedExecutables ? false
 , enableSharedLibraries ? (ghc.enableShared or false)
 , enableDeadCodeElimination ? (!stdenv.isDarwin)  # TODO: use -dead_strip for darwin
-, enableStaticLibraries ? !stdenv.hostPlatform.isWindows
+, enableStaticLibraries ? !(stdenv.hostPlatform.isWindows or stdenv.hostPlatform.isWasm)
 , enableHsc2hsViaAsm ? stdenv.hostPlatform.isWindows && stdenv.lib.versionAtLeast ghc.version "8.4"
 , extraLibraries ? [], librarySystemDepends ? [], executableSystemDepends ? []
 # On macOS, statically linking against system frameworks is not supported;
@@ -48,9 +49,8 @@ in
 , isExecutable ? false, isLibrary ? !isExecutable
 , jailbreak ? false
 , license
-  # aarch64 sometimes crashes for -jn with n>1: https://ghc.haskell.org/trac/ghc/ticket/15449
-, enableParallelBuilding ? !stdenv.buildPlatform.isAarch64
-, maintainers ? []
+, enableParallelBuilding ? true
+, maintainers ? null
 , doCoverage ? false
 , doHaddock ? !(ghc.isHaLVM or false)
 , passthru ? {}
@@ -59,14 +59,14 @@ in
 , benchmarkDepends ? [], benchmarkHaskellDepends ? [], benchmarkSystemDepends ? [], benchmarkFrameworkDepends ? []
 , testTarget ? ""
 , broken ? false
-, preCompileBuildDriver ? "", postCompileBuildDriver ? ""
-, preUnpack ? "", postUnpack ? ""
-, patches ? [], patchPhase ? "", prePatch ? "", postPatch ? ""
-, preConfigure ? "", postConfigure ? ""
-, preBuild ? "", postBuild ? ""
-, installPhase ? "", preInstall ? "", postInstall ? ""
-, checkPhase ? "", preCheck ? "", postCheck ? ""
-, preFixup ? "", postFixup ? ""
+, preCompileBuildDriver ? null, postCompileBuildDriver ? null
+, preUnpack ? null, postUnpack ? null
+, patches ? null, patchPhase ? null, prePatch ? "", postPatch ? ""
+, preConfigure ? null, postConfigure ? null
+, preBuild ? null, postBuild ? null
+, installPhase ? null, preInstall ? null, postInstall ? null
+, checkPhase ? null, preCheck ? null, postCheck ? null
+, preFixup ? null, postFixup ? null
 , shellHook ? ""
 , coreSetup ? false # Use only core packages to build Setup.hs.
 , useCpphs ? false
@@ -90,6 +90,7 @@ assert editedCabalFile != null -> revision != null;
 # --enable-static does not work on windows. This is a bug in GHC.
 # --enable-static will pass -staticlib to ghc, which only works for mach-o and elf.
 assert stdenv.hostPlatform.isWindows -> enableStaticLibraries == false;
+assert stdenv.hostPlatform.isWasm -> enableStaticLibraries == false;
 
 let
 
@@ -636,34 +637,34 @@ stdenv.mkDerivation ({
   };
 
   meta = { inherit homepage license platforms; }
-         // optionalAttrs broken               { inherit broken; }
-         // optionalAttrs (description != "")  { inherit description; }
-         // optionalAttrs (maintainers != [])  { inherit maintainers; }
-         // optionalAttrs (hydraPlatforms != null) { inherit hydraPlatforms; }
+         // optionalAttrs (args ? broken)         { inherit broken; }
+         // optionalAttrs (args ? description)    { inherit description; }
+         // optionalAttrs (args ? maintainers)    { inherit maintainers; }
+         // optionalAttrs (args ? hydraPlatforms) { inherit hydraPlatforms; }
          ;
 
 }
-// optionalAttrs (preCompileBuildDriver != "")  { inherit preCompileBuildDriver; }
-// optionalAttrs (postCompileBuildDriver != "") { inherit postCompileBuildDriver; }
-// optionalAttrs (preUnpack != "")      { inherit preUnpack; }
-// optionalAttrs (postUnpack != "")     { inherit postUnpack; }
-// optionalAttrs (patches != [])        { inherit patches; }
-// optionalAttrs (patchPhase != "")     { inherit patchPhase; }
-// optionalAttrs (preConfigure != "")   { inherit preConfigure; }
-// optionalAttrs (postConfigure != "")  { inherit postConfigure; }
-// optionalAttrs (preBuild != "")       { inherit preBuild; }
-// optionalAttrs (postBuild != "")      { inherit postBuild; }
-// optionalAttrs (doBenchmark)          { inherit doBenchmark; }
-// optionalAttrs (checkPhase != "")     { inherit checkPhase; }
-// optionalAttrs (preCheck != "")       { inherit preCheck; }
-// optionalAttrs (postCheck != "")      { inherit postCheck; }
-// optionalAttrs (preInstall != "")     { inherit preInstall; }
-// optionalAttrs (installPhase != "")   { inherit installPhase; }
-// optionalAttrs (postInstall != "")    { inherit postInstall; }
-// optionalAttrs (preFixup != "")       { inherit preFixup; }
-// optionalAttrs (postFixup != "")      { inherit postFixup; }
-// optionalAttrs (dontStrip)            { inherit dontStrip; }
-// optionalAttrs (hardeningDisable != []) { inherit hardeningDisable; }
+// optionalAttrs (args ? preCompileBuildDriver)  { inherit preCompileBuildDriver; }
+// optionalAttrs (args ? postCompileBuildDriver) { inherit postCompileBuildDriver; }
+// optionalAttrs (args ? preUnpack)              { inherit preUnpack; }
+// optionalAttrs (args ? postUnpack)             { inherit postUnpack; }
+// optionalAttrs (args ? patches)                { inherit patches; }
+// optionalAttrs (args ? patchPhase)             { inherit patchPhase; }
+// optionalAttrs (args ? preConfigure)           { inherit preConfigure; }
+// optionalAttrs (args ? postConfigure)          { inherit postConfigure; }
+// optionalAttrs (args ? preBuild)               { inherit preBuild; }
+// optionalAttrs (args ? postBuild)              { inherit postBuild; }
+// optionalAttrs (args ? doBenchmark)            { inherit doBenchmark; }
+// optionalAttrs (args ? checkPhase)             { inherit checkPhase; }
+// optionalAttrs (args ? preCheck)               { inherit preCheck; }
+// optionalAttrs (args ? postCheck)              { inherit postCheck; }
+// optionalAttrs (args ? preInstall)             { inherit preInstall; }
+// optionalAttrs (args ? installPhase)           { inherit installPhase; }
+// optionalAttrs (args ? postInstall)            { inherit postInstall; }
+// optionalAttrs (args ? preFixup)               { inherit preFixup; }
+// optionalAttrs (args ? postFixup)              { inherit postFixup; }
+// optionalAttrs (args ? dontStrip)              { inherit dontStrip; }
+// optionalAttrs (args ? hardeningDisable)       { inherit hardeningDisable; }
 // optionalAttrs (stdenv.buildPlatform.libc == "glibc"){ LOCALE_ARCHIVE = "${glibcLocales}/lib/locale/locale-archive"; }
 )
 )
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 609090b610c..513ef0fc21c 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -1031,6 +1031,20 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "Aoide" = callPackage
+    ({ mkDerivation, base, bytestring, mtl, process, template-haskell
+     }:
+     mkDerivation {
+       pname = "Aoide";
+       version = "0.1.0.2";
+       sha256 = "1nldvg8fwgbvn50prar3vs1nh704s1603fikyg2lhpz754yp0qbc";
+       libraryHaskellDepends = [
+         base bytestring mtl process template-haskell
+       ];
+       description = "A simple music library with the capability of generating .ly and .mid files.";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "ApplePush" = callPackage
     ({ mkDerivation, base, binary, bytestring, haskell98, json, mtl
      , network
@@ -1104,18 +1118,15 @@ self: {
      }) {};
 
   "AspectAG" = callPackage
-    ({ mkDerivation, base, containers, ghc-prim, mtl, tagged
-     , template-haskell, th-strict-compat
+    ({ mkDerivation, base, containers, mtl, poly-rec, requirements
+     , tagged, template-haskell
      }:
      mkDerivation {
        pname = "AspectAG";
-       version = "0.5.0.0";
-       sha256 = "039k40swscsg21b4k4a3q95migvkflcp7sgx2a8gpzanrkx3ckz2";
-       revision = "2";
-       editedCabalFile = "1afrgn3hhkfrb3khfnbj7x9p4dh8j682zjhp5lc7s7syr8zp8pxy";
+       version = "0.6.0.0";
+       sha256 = "09lm1hs9l3h6ndv385adhh0kf9id10fjf0n1bczgzqgxmiykx2kn";
        libraryHaskellDepends = [
-         base containers ghc-prim mtl tagged template-haskell
-         th-strict-compat
+         base containers mtl poly-rec requirements tagged template-haskell
        ];
        description = "Strongly typed Attribute Grammars implemented using type-level programming";
        license = stdenv.lib.licenses.gpl3;
@@ -1299,6 +1310,8 @@ self: {
        pname = "BNFC-meta";
        version = "0.6.1";
        sha256 = "0snackflcjxza4iqbd85fdsmylwr3bj71nsfrs2s2idc3nlxc7ia";
+       revision = "1";
+       editedCabalFile = "1lj92qxjf7gbgifhz1p6jw20079x6772gkbhvpd8ba4956dvzna3";
        libraryHaskellDepends = [
          alex-meta array base fail happy-meta haskell-src-meta syb
          template-haskell
@@ -2044,10 +2057,8 @@ self: {
      }:
      mkDerivation {
        pname = "BlogLiterately";
-       version = "0.8.6.3";
-       sha256 = "02a4mjz9lbx19plkanmdlm730dwphkdi79a5b5hcnrbilcy8k71n";
-       revision = "1";
-       editedCabalFile = "1nhnrchv8lr1clbsfyya4xfqy8qdi8wrfp8364anaq7mpfnslxws";
+       version = "0.8.7";
+       sha256 = "01x8q04bs0qr2vg434yl2mfnshjd6licyard6pjfvhalk2phxcp2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -2241,6 +2252,24 @@ self: {
        broken = true;
      }) {};
 
+  "C-structs" = callPackage
+    ({ mkDerivation, base, doctest, Glob, HUnit, QuickCheck
+     , template-haskell, test-framework, test-framework-hunit
+     , test-framework-quickcheck2
+     }:
+     mkDerivation {
+       pname = "C-structs";
+       version = "0.1.0.1";
+       sha256 = "0b3mqp20am2yn7jbgxxg08rds1c5mxx827app23hrhsl4ysslfkg";
+       libraryHaskellDepends = [ base template-haskell ];
+       testHaskellDepends = [
+         base doctest Glob HUnit QuickCheck template-haskell test-framework
+         test-framework-hunit test-framework-quickcheck2
+       ];
+       description = "C-Structs implementation for Haskell";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "CBOR" = callPackage
     ({ mkDerivation, base, binary, binary-bits, bytestring
      , data-binary-ieee754, doctest, QuickCheck, test-framework
@@ -3080,24 +3109,6 @@ self: {
      }:
      mkDerivation {
        pname = "ChasingBottoms";
-       version = "1.3.1.8";
-       sha256 = "1madbhhxi5awh74q0z2mx1la5jbkvx26zvhl4x8237sjzs0k51wx";
-       libraryHaskellDepends = [
-         base containers mtl QuickCheck random syb
-       ];
-       testHaskellDepends = [
-         array base containers mtl QuickCheck random syb
-       ];
-       description = "For testing partial and infinite values";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "ChasingBottoms_1_3_1_9" = callPackage
-    ({ mkDerivation, array, base, containers, mtl, QuickCheck, random
-     , syb
-     }:
-     mkDerivation {
-       pname = "ChasingBottoms";
        version = "1.3.1.9";
        sha256 = "1acsmvdwsgry0i0qhmz0img71gq97wikmn9zgbqppl4n8a1d7bvh";
        libraryHaskellDepends = [
@@ -3108,7 +3119,6 @@ self: {
        ];
        description = "For testing partial and infinite values";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "CheatSheet" = callPackage
@@ -3775,8 +3785,8 @@ self: {
      }:
      mkDerivation {
        pname = "CouchDB";
-       version = "1.2.2";
-       sha256 = "0imzpwrynr54as3bzx2222vqcnmmrzx6dis5qa2vmclf6yd8q1z8";
+       version = "1.2.3";
+       sha256 = "064savpqn5ppj3sg0jsaqq5625zf0ml6wa0k7x058pmsp9i93c4m";
        libraryHaskellDepends = [
          base bytestring containers HTTP json mtl network network-uri
          utf8-string
@@ -4549,6 +4559,24 @@ self: {
        broken = true;
      }) {};
 
+  "Diff_0_3_4" = callPackage
+    ({ mkDerivation, array, base, directory, pretty, process
+     , QuickCheck, test-framework, test-framework-quickcheck2
+     }:
+     mkDerivation {
+       pname = "Diff";
+       version = "0.3.4";
+       sha256 = "0bqcdvhxx8dmqc3793m6axg813wv9ldz2j37f1wygbbrbbndmdvp";
+       libraryHaskellDepends = [ array base pretty ];
+       testHaskellDepends = [
+         array base directory pretty process QuickCheck test-framework
+         test-framework-quickcheck2
+       ];
+       description = "O(ND) diff algorithm in haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "Diff" = callPackage
     ({ mkDerivation, array, base, directory, pretty, process
      , QuickCheck, test-framework, test-framework-quickcheck2
@@ -6380,8 +6408,8 @@ self: {
      }:
      mkDerivation {
        pname = "Frames";
-       version = "0.6.4";
-       sha256 = "1z1bv3dqna9gp6k2rjnbl54hxkaxl4khdlfy52r0cv51ah8969ri";
+       version = "0.7.0";
+       sha256 = "0g4c8s4v3lg7bnsz8n09zrf8cwyywmxpv97wkwx6xvflknb7z0cc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -6462,6 +6490,8 @@ self: {
        ];
        description = "Frames wrapper for map-reduce-folds and some extra folds helpers";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "Frank" = callPackage
@@ -6831,8 +6861,8 @@ self: {
     ({ mkDerivation, async, base, containers, GLFW-b, GPipe, stm }:
      mkDerivation {
        pname = "GPipe-GLFW";
-       version = "1.4.1.2";
-       sha256 = "0i63pxz6bvzixjgi1hbipxhrg7nykd37zii555qhss2m7x4pydak";
+       version = "1.4.1.3";
+       sha256 = "0czrq3zhcxfl9pzypmxpxgn11faqb0kw05m5k3apr4b88prbj1ij";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ async base containers GLFW-b GPipe stm ];
        description = "GLFW OpenGL context creation for GPipe";
@@ -6882,15 +6912,13 @@ self: {
      }:
      mkDerivation {
        pname = "Gamgine";
-       version = "0.5.3";
-       sha256 = "08awl1f1310ifx9gzjrinsv37n7k2yaxvmjaymjh01pawlp3w4gc";
-       revision = "1";
-       editedCabalFile = "1i14r4r8814l8cilp24ypcsbac284m6pvib5037sypgqv72wn044";
+       version = "0.6.0";
+       sha256 = "171mfxq7s719j3h2nfsck2qmwrkmlp3731na6nd81b5x3jvl3ma0";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         array base bytestring composition cpphs data-lens directory
-         filepath GLFW-b ListZipper mtl OpenGLRaw parsec pretty-show
-         StateVar time unordered-containers utility-ht Vec zlib
+         array base bytestring composition data-lens directory filepath
+         GLFW-b ListZipper mtl OpenGLRaw parsec pretty-show StateVar time
+         unordered-containers utility-ht Vec zlib
        ];
        libraryToolDepends = [ cpphs ];
        description = "Some kind of game library or set of utilities";
@@ -7245,10 +7273,8 @@ self: {
      }:
      mkDerivation {
        pname = "Glob";
-       version = "0.10.0";
-       sha256 = "0953f91f62ncna402vsrfzdcyxhdpjna3bgdw017kad0dfymacs7";
-       revision = "1";
-       editedCabalFile = "0zfd4wimwgnmgqkz9g9jqj2dq2r50wdcqmcz6v7is1zrpwhszk5v";
+       version = "0.10.1";
+       sha256 = "05fknrb114qvfzv6324ngx0fz43cwgrhrc700l3h2is9jinlgr6a";
        libraryHaskellDepends = [
          base containers directory dlist filepath transformers
          transformers-compat
@@ -8866,8 +8892,8 @@ self: {
      }:
      mkDerivation {
        pname = "HPDF";
-       version = "1.5.0";
-       sha256 = "0bwj0haxw9a061xzn5zh2qc5d958n0g9izbnn0w08dazfjyl8v46";
+       version = "1.5.1";
+       sha256 = "0kqbfzcqapxvkg52mixqjhxb79ziyfsfvazbzrwjvhp9nqhikn6y";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -9904,8 +9930,8 @@ self: {
      }:
      mkDerivation {
        pname = "HasCacBDD";
-       version = "0.1.0.2";
-       sha256 = "1yilx2pl0j4bw3c83kzc1y9wmg67r88gpahbwykff1jjr2xnrsp0";
+       version = "0.1.0.3";
+       sha256 = "04kczdr702kkqa89pm5lc3glq4xqnjy0rszpq7ms1zlj1gwvgckz";
        setupHaskellDepends = [ base Cabal directory ];
        libraryHaskellDepends = [ base process QuickCheck ];
        librarySystemDepends = [ CacBDD ];
@@ -9992,6 +10018,31 @@ self: {
        broken = true;
      }) {};
 
+  "HaskellAnalysisProgram" = callPackage
+    ({ mkDerivation, base, bytestring, cassava, containers, csv
+     , directory, fgl, filepath, graphviz, haskell-src-exts, HUnit
+     , pretty, split, syb, text, vector
+     }:
+     mkDerivation {
+       pname = "HaskellAnalysisProgram";
+       version = "0.1.0";
+       sha256 = "14z8nwvx306822nlna0p7vihrldk87z518c23aka17h3fxwfzzma";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring cassava containers csv directory fgl filepath
+         graphviz haskell-src-exts pretty split syb text vector
+       ];
+       testHaskellDepends = [
+         base bytestring cassava containers csv directory fgl filepath
+         graphviz haskell-src-exts HUnit pretty split syb text vector
+       ];
+       description = "Haskell source code analysis program";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "HaskellForMaths" = callPackage
     ({ mkDerivation, array, base, containers, random }:
      mkDerivation {
@@ -10730,12 +10781,27 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {inherit (pkgs) openssl;};
 
+  "HsOpenSSL_0_11_4_19" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, network, openssl, time }:
+     mkDerivation {
+       pname = "HsOpenSSL";
+       version = "0.11.4.19";
+       sha256 = "0iy3qrir13kp1c7a0xwj2ngfwhqxqbc5j0vj5mi0w3arv7w0x6ds";
+       setupHaskellDepends = [ base Cabal ];
+       libraryHaskellDepends = [ base bytestring network time ];
+       librarySystemDepends = [ openssl ];
+       testHaskellDepends = [ base bytestring ];
+       description = "Partial OpenSSL binding for Haskell";
+       license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) openssl;};
+
   "HsOpenSSL-x509-system" = callPackage
     ({ mkDerivation, base, bytestring, HsOpenSSL, unix }:
      mkDerivation {
        pname = "HsOpenSSL-x509-system";
-       version = "0.1.0.3";
-       sha256 = "14hzjdpv8ld3nw5fcx451w49vq0s8fhs1zh984vpm85b5ypbgp2v";
+       version = "0.1.0.4";
+       sha256 = "15mp70bqg1lzp971bzp6wym3bwzvxb76hzbgckygbfa722xyymhr";
        libraryHaskellDepends = [ base bytestring HsOpenSSL unix ];
        description = "Use the system's native CA certificate store with HsOpenSSL";
        license = stdenv.lib.licenses.bsd3;
@@ -10864,8 +10930,8 @@ self: {
        pname = "HsYAML-aeson";
        version = "0.2.0.0";
        sha256 = "12sxww260pc0bbpiyirm7911haxhljdi2f08a9ddpbgw8d5n7ffg";
-       revision = "1";
-       editedCabalFile = "1454jwcjaala8drxn7x765bqnzivdys99nl95mbd3yv2c6s1173g";
+       revision = "2";
+       editedCabalFile = "0sf4clxx3i3s6666w3il65fijx2xmgb1mxml9jgc5y40sj3qb3mm";
        libraryHaskellDepends = [
          aeson base bytestring containers HsYAML mtl scientific text
          unordered-containers vector
@@ -11111,24 +11177,6 @@ self: {
      }:
      mkDerivation {
        pname = "IPv6Addr";
-       version = "1.1.4";
-       sha256 = "1bkib3mzbc0lzmi4vqkmihgi9vdcsksgss5rp3czhc893wc3hzah";
-       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 = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "IPv6Addr_1_1_5" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, HUnit, iproute, network
-     , network-info, random, test-framework, test-framework-hunit, text
-     }:
-     mkDerivation {
-       pname = "IPv6Addr";
        version = "1.1.5";
        sha256 = "0fnh77znfkp0d2i6vdvrsnxcdprqjz43in5k36b3yrrzffdrfka7";
        libraryHaskellDepends = [
@@ -11139,7 +11187,6 @@ self: {
        ];
        description = "Library to deal with IPv6 address text representations";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "IPv6DB" = callPackage
@@ -11680,8 +11727,8 @@ self: {
        pname = "JuicyPixels-blurhash";
        version = "0.1.0.3";
        sha256 = "0kgl2j7990p8q5yrkn0wgaszc9fzva1pc3277j11k1lbjsymz360";
-       revision = "1";
-       editedCabalFile = "05vnd6a4z0r1dg25r2fc2q5krqcw1k0qdxwbhzc7rcnrnnwn0f2d";
+       revision = "2";
+       editedCabalFile = "0phffs6r83sny6zr4zsrppzqy1lgybm6lqgfmbfgwhyvmd544qx6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -12664,8 +12711,8 @@ self: {
      }:
      mkDerivation {
        pname = "ListLike";
-       version = "4.7";
-       sha256 = "1209xa73cxzajp8wx2bw2017vjb84yibm5q5sp0i0ifhi5syv4jl";
+       version = "4.7.2";
+       sha256 = "15c1q4rl4kwpgpsdf4x7k17m2fgzimm9915k71cpjiv0sq9b2rn2";
        libraryHaskellDepends = [
          array base bytestring containers deepseq dlist fmlist text
          utf8-string vector
@@ -12738,8 +12785,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "LiterateMarkdown";
-       version = "0.1.0.0";
-       sha256 = "0v9j7kqjvkrafxl4ahfqj1xvigim9vnd3kflgqagzccrgx9kz5gv";
+       version = "0.1.0.1";
+       sha256 = "0rgjf6blrg8rq75872bpwp6cn3bg89718cy6ik2m22881zfvr2m7";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [ base ];
@@ -13042,6 +13089,33 @@ self: {
        broken = true;
      }) {};
 
+  "MIP" = callPackage
+    ({ mkDerivation, base, bytestring, bytestring-encoding
+     , case-insensitive, containers, data-default-class, extended-reals
+     , filepath, intern, lattices, megaparsec, mtl, OptDir, process
+     , scientific, stm, tasty, tasty-hunit, tasty-quickcheck, tasty-th
+     , temporary, text, xml-conduit, zlib
+     }:
+     mkDerivation {
+       pname = "MIP";
+       version = "0.1.0.0";
+       sha256 = "0790jcwqjd33i8sqhzxarda8ihhv5iapj0apjmlqjppbipwa6awa";
+       libraryHaskellDepends = [
+         base bytestring bytestring-encoding case-insensitive containers
+         data-default-class extended-reals filepath intern lattices
+         megaparsec mtl OptDir process scientific stm temporary text
+         xml-conduit zlib
+       ];
+       testHaskellDepends = [
+         base containers data-default-class lattices tasty tasty-hunit
+         tasty-quickcheck tasty-th
+       ];
+       description = "Library for using Mixed Integer Programming (MIP)";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "MSQueue" = callPackage
     ({ mkDerivation, base, ghc-prim, monad-loops, ref-mtl, stm }:
      mkDerivation {
@@ -13137,6 +13211,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "MapWith" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "MapWith";
+       version = "0.2.0.0";
+       sha256 = "1xkyaj83yblf42qawv4nyi8miaynydd8b3ysx62f9y10bqxk7dja";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       benchmarkHaskellDepends = [ base ];
+       description = "mapWith: like fmap, but with additional parameters (isFirst, isLast, etc)";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "Mapping" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -13640,21 +13727,6 @@ self: {
      }:
      mkDerivation {
        pname = "MonadRandom";
-       version = "0.5.1.2";
-       sha256 = "0j1lwg3pp77cf87bk0c1gipzrdvpjcj7bkgi37lcjc7avmlhwvvp";
-       libraryHaskellDepends = [
-         base mtl primitive random transformers transformers-compat
-       ];
-       description = "Random-number generation monad";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "MonadRandom_0_5_2" = callPackage
-    ({ mkDerivation, base, mtl, primitive, random, transformers
-     , transformers-compat
-     }:
-     mkDerivation {
-       pname = "MonadRandom";
        version = "0.5.2";
        sha256 = "1rjihspfdg2b9bwvbgj36ql595nbza8ddh1bmgz924xmddshcf30";
        libraryHaskellDepends = [
@@ -13662,7 +13734,6 @@ self: {
        ];
        description = "Random-number generation monad";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "MonadRandomLazy" = callPackage
@@ -16355,16 +16426,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "QuickCheck_2_14" = callPackage
+  "QuickCheck_2_14_1" = callPackage
     ({ mkDerivation, base, containers, deepseq, process, random
      , splitmix, template-haskell, transformers
      }:
      mkDerivation {
        pname = "QuickCheck";
-       version = "2.14";
-       sha256 = "0jiqdk8ma8m68vg6vbxd0s1x0djmfjn1zm06masz7x8rzc3i9gjj";
-       revision = "1";
-       editedCabalFile = "0i8hh6f8y2jxn9hfchhbp9w5mb65fs6yy12z08wyrxxyhr5nllrz";
+       version = "2.14.1";
+       sha256 = "0ms71pphgihmqsvh4v88xd99n8xg3nlz1wxxxcf2vgns32mcbz63";
        libraryHaskellDepends = [
          base containers deepseq random splitmix template-haskell
          transformers
@@ -16852,6 +16921,8 @@ self: {
        executableHaskellDepends = [ base random-fu ];
        description = "Randomness intuition trainer";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "Range" = callPackage
@@ -16938,6 +17009,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "Rattus" = callPackage
+    ({ mkDerivation, base, Cabal, containers, ghc, simple-affine-space
+     }:
+     mkDerivation {
+       pname = "Rattus";
+       version = "0.3.1";
+       sha256 = "1sfjnfd3jsr095gkzxldb65ivxpyzsaphw2bv2f6svczhjc5b414";
+       setupHaskellDepends = [ base Cabal ];
+       libraryHaskellDepends = [
+         base containers ghc simple-affine-space
+       ];
+       testHaskellDepends = [ base containers ];
+       description = "A modal FRP language";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "ReadArgs" = callPackage
     ({ mkDerivation, base, hspec, system-filepath, text }:
      mkDerivation {
@@ -18771,8 +18858,8 @@ self: {
     ({ mkDerivation, attoparsec, base, extra, mtl, mwc-random, text }:
      mkDerivation {
        pname = "Spintax";
-       version = "0.3.4";
-       sha256 = "008b83nnjgpzjr4c2dk1vambzb78dwx59c5cq4p0s8ghp6xl9sk3";
+       version = "0.3.5";
+       sha256 = "1z5sv03h07bf8z6pzxsia9hgf879cmiqdajvx212dk47lysfnm8v";
        libraryHaskellDepends = [
          attoparsec base extra mtl mwc-random text
        ];
@@ -18889,8 +18976,6 @@ self: {
        ];
        description = "Another Haskell web framework for rapid development";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "Spock-digestive" = callPackage
@@ -20215,8 +20300,8 @@ self: {
      }:
      mkDerivation {
        pname = "Unique";
-       version = "0.4.7.7";
-       sha256 = "05klzscyvqd67rcyhkbx046i860vpxlfzp52yalfqrlvyyfgg3m2";
+       version = "0.4.7.8";
+       sha256 = "0w82pa6r2a6969w251fbrx0sr1ws8mkg2lwdyjl4qjhl5s28k43i";
        libraryHaskellDepends = [
          base containers extra hashable unordered-containers
        ];
@@ -20561,8 +20646,8 @@ self: {
     ({ mkDerivation, base, bytestring, transformers, vector, vulkan }:
      mkDerivation {
        pname = "VulkanMemoryAllocator";
-       version = "0.3.3";
-       sha256 = "0kjyyqwck2b4vv9z2121b3x1bnsc6zswp41idcpmqjxrwhs7whcz";
+       version = "0.3.7";
+       sha256 = "1y2dmk60dvk8d9n16in98cmin5ckvdx3knwlfzcs0jl6vyh8n51n";
        libraryHaskellDepends = [
          base bytestring transformers vector vulkan
        ];
@@ -20926,12 +21011,12 @@ self: {
        platforms = stdenv.lib.platforms.none;
      }) {};
 
-  "Win32_2_8_5_0" = callPackage
+  "Win32_2_9_0_0" = callPackage
     ({ mkDerivation }:
      mkDerivation {
        pname = "Win32";
-       version = "2.8.5.0";
-       sha256 = "1hvbb9zwp84y5s5hxz7a3g3xqlgcbwrlhhxdprj5qqhkizzb3vai";
+       version = "2.9.0.0";
+       sha256 = "1m9v1qimqi19siy1a7mzb52f3jdj5zs81085nybnyj7yk9988s1p";
        description = "A binding to Windows Win32 API";
        license = stdenv.lib.licenses.bsd3;
        platforms = stdenv.lib.platforms.none;
@@ -21237,8 +21322,8 @@ self: {
      }:
      mkDerivation {
        pname = "X11";
-       version = "1.9.1";
-       sha256 = "0gg6852mrlgl8zng1j84fismz7k81jr5fk92glgkscf8q6ryg0bm";
+       version = "1.9.2";
+       sha256 = "013yny4dwbs98kp7245j8dv81h4p1cdwn2rsf2hvhsplg6ixkc05";
        libraryHaskellDepends = [ base data-default ];
        librarySystemDepends = [
          libX11 libXext libXinerama libXrandr libXrender libXScrnSaver
@@ -22049,25 +22134,26 @@ self: {
      }) {};
 
   "accelerate" = callPackage
-    ({ mkDerivation, ansi-terminal, ansi-wl-pprint, base, base-orphans
-     , bytestring, Cabal, cabal-doctest, constraints, containers
-     , cryptonite, deepseq, directory, doctest, exceptions, filepath
-     , ghc-prim, half, hashable, hashtables, hedgehog, lens, mtl, tasty
-     , tasty-expected-failure, tasty-hedgehog, tasty-hunit
-     , template-haskell, terminal-size, transformers, unique, unix
+    ({ mkDerivation, ansi-terminal, base, base-orphans, bytestring
+     , Cabal, cabal-doctest, containers, cryptonite, deepseq, directory
+     , doctest, exceptions, filepath, ghc-prim, half, hashable
+     , hashtables, hedgehog, lens, mtl, prettyprinter
+     , prettyprinter-ansi-terminal, primitive, tasty, template-haskell
+     , terminal-size, text, transformers, unique, unix
      , unordered-containers, vector
      }:
      mkDerivation {
        pname = "accelerate";
-       version = "1.2.0.1";
-       sha256 = "0vglmasqgq0h8fvm9z8l2b3sygqvix8vr6c3n357gkr2mpz6gq8h";
+       version = "1.3.0.0";
+       sha256 = "14md9fbxckgwpbkm7hdj95ny11w5b5cj103r8razg0aw2hgid5sb";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         ansi-terminal ansi-wl-pprint base base-orphans bytestring
-         constraints containers cryptonite deepseq directory exceptions
-         filepath ghc-prim half hashable hashtables hedgehog lens mtl tasty
-         tasty-expected-failure tasty-hedgehog tasty-hunit template-haskell
-         terminal-size transformers unique unix unordered-containers vector
+         ansi-terminal base base-orphans bytestring containers cryptonite
+         deepseq directory exceptions filepath ghc-prim half hashable
+         hashtables hedgehog lens mtl prettyprinter
+         prettyprinter-ansi-terminal primitive tasty template-haskell
+         terminal-size text transformers unique unix unordered-containers
+         vector
        ];
        testHaskellDepends = [ base doctest ];
        description = "An embedded language for accelerated array processing";
@@ -22097,7 +22183,7 @@ self: {
      }) {};
 
   "accelerate-bignum" = callPackage
-    ({ mkDerivation, accelerate, accelerate-io, accelerate-llvm
+    ({ mkDerivation, accelerate, accelerate-io-vector, accelerate-llvm
      , accelerate-llvm-native, accelerate-llvm-ptx, base, criterion
      , ghc-prim, hedgehog, llvm-hs-pure, mwc-random, tasty
      , tasty-hedgehog, template-haskell, vector, vector-th-unbox
@@ -22105,10 +22191,8 @@ self: {
      }:
      mkDerivation {
        pname = "accelerate-bignum";
-       version = "0.2.0.0";
-       sha256 = "0xhnd39fb17kb7q5z9z8svn8zlv6j1wxrbkv3vij4f1q2hkqkl0p";
-       revision = "1";
-       editedCabalFile = "0lfsmhky8shyy9xhm0j2as91vrmqqrrn9r0fsv2ljc4xjklg723r";
+       version = "0.3.0.0";
+       sha256 = "1xwqg3d2qilkfx8wmmhp2qq5cas3pnsrpyli3a9z0yxqamibxh33";
        libraryHaskellDepends = [
          accelerate accelerate-llvm accelerate-llvm-native
          accelerate-llvm-ptx base ghc-prim llvm-hs-pure template-haskell
@@ -22118,8 +22202,9 @@ self: {
          tasty tasty-hedgehog
        ];
        benchmarkHaskellDepends = [
-         accelerate accelerate-io accelerate-llvm-native accelerate-llvm-ptx
-         base criterion mwc-random vector vector-th-unbox wide-word
+         accelerate accelerate-io-vector accelerate-llvm-native
+         accelerate-llvm-ptx base criterion mwc-random vector
+         vector-th-unbox wide-word
        ];
        description = "Fixed-length large integer arithmetic for Accelerate";
        license = stdenv.lib.licenses.bsd3;
@@ -22135,8 +22220,8 @@ self: {
      }:
      mkDerivation {
        pname = "accelerate-blas";
-       version = "0.2.0.1";
-       sha256 = "00869y2zrh43sl0rap8bbgnzqdvrrxpc2qhzz0zdfasr3440py6k";
+       version = "0.3.0.0";
+       sha256 = "1ydym6fxvg1b5vx49r8dnn80spsq42ssbg4v01s1djklks054g7y";
        libraryHaskellDepends = [
          accelerate accelerate-llvm accelerate-llvm-native
          accelerate-llvm-ptx base blas-hs bytestring containers cublas cuda
@@ -22229,37 +22314,39 @@ self: {
 
   "accelerate-examples" = callPackage
     ({ mkDerivation, accelerate, accelerate-fft, accelerate-io
-     , accelerate-llvm-native, accelerate-llvm-ptx, ansi-wl-pprint, base
-     , binary, bmp, bytestring, bytestring-lexing, cereal
+     , accelerate-io-bmp, accelerate-io-repa, accelerate-io-vector
+     , accelerate-llvm-native, accelerate-llvm-ptx, ansi-wl-pprint
+     , array, base, binary, bmp, bytestring, bytestring-lexing, cereal
      , colour-accelerate, containers, criterion, criterion-measurement
      , directory, fclabels, filepath, gloss, gloss-accelerate
      , gloss-raster-accelerate, gloss-rendering, HUnit, lens-accelerate
-     , linear, linear-accelerate, matrix-market-attoparsec, mwc-random
-     , normaldistribution, QuickCheck, random, repa, repa-io, scientific
-     , test-framework, test-framework-hunit, test-framework-quickcheck2
-     , vector, vector-algorithms
+     , linear-accelerate, matrix-market-attoparsec, mwc-random
+     , mwc-random-accelerate, normaldistribution, QuickCheck, random
+     , repa, repa-io, scientific, test-framework, test-framework-hunit
+     , test-framework-quickcheck2, vector, vector-algorithms
      }:
      mkDerivation {
        pname = "accelerate-examples";
-       version = "1.2.0.1";
-       sha256 = "0hzk6zas03yhh8xjjrh772knhbvisl0r6q10y4mcq552bcfd8yvj";
+       version = "1.3.0.0";
+       sha256 = "145m2bi8bini6z2jg6g99vnsc3m7pqz4dc9l34j8fg40fw65rwi0";
        configureFlags = [ "-f-opencl" ];
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          accelerate accelerate-llvm-native accelerate-llvm-ptx
          ansi-wl-pprint base containers criterion directory fclabels HUnit
-         linear mwc-random QuickCheck test-framework test-framework-hunit
+         QuickCheck test-framework test-framework-hunit
          test-framework-quickcheck2
        ];
        executableHaskellDepends = [
-         accelerate accelerate-fft accelerate-io base binary bmp bytestring
-         bytestring-lexing cereal colour-accelerate containers criterion
-         criterion-measurement directory fclabels filepath gloss
+         accelerate accelerate-fft accelerate-io accelerate-io-bmp
+         accelerate-io-repa accelerate-io-vector array base binary bmp
+         bytestring bytestring-lexing cereal colour-accelerate containers
+         criterion criterion-measurement directory fclabels filepath gloss
          gloss-accelerate gloss-raster-accelerate gloss-rendering
          lens-accelerate linear-accelerate matrix-market-attoparsec
-         mwc-random normaldistribution random repa repa-io scientific vector
-         vector-algorithms
+         mwc-random mwc-random-accelerate normaldistribution random repa
+         repa-io scientific vector vector-algorithms
        ];
        description = "Examples using the Accelerate library";
        license = stdenv.lib.licenses.bsd3;
@@ -22275,10 +22362,8 @@ self: {
      }:
      mkDerivation {
        pname = "accelerate-fft";
-       version = "1.2.0.0";
-       sha256 = "19p9d59vdd3nq97xjprlb6fz2ajlk6gl37cdyvrm9inag4nnk6lp";
-       revision = "2";
-       editedCabalFile = "096vhbwbkyvjx8znjqnb3lz43kzqq0x7kcfv1gmmbjjrcmwaj2y5";
+       version = "1.3.0.0";
+       sha256 = "1a7cwzbs8r3rvaymrq2kfx83lqb3i7wz0gmz3ppz59f40rxn974x";
        libraryHaskellDepends = [
          accelerate accelerate-llvm accelerate-llvm-native
          accelerate-llvm-ptx base bytestring carray containers cuda cufft
@@ -22357,25 +22442,119 @@ self: {
      }) {};
 
   "accelerate-io" = callPackage
-    ({ mkDerivation, accelerate, array, base, bmp, bytestring, hedgehog
-     , primitive, repa, tasty, tasty-hedgehog, vector
-     }:
+    ({ mkDerivation, accelerate, base }:
      mkDerivation {
        pname = "accelerate-io";
-       version = "1.2.0.0";
-       sha256 = "13pqqsd5pbxmgsxnp9w141mnwscnlmbhxaz6f5jx4ssipnma2pwf";
-       revision = "2";
-       editedCabalFile = "0w8y40p71c6c7cj49n4kanwmsa53s2nydigiiidqp93yxhw0virq";
+       version = "1.3.0.0";
+       sha256 = "048md40pfacxa1mbzncybxzwp9fzmsaq8i94pd8ai677n2zyw5cg";
+       libraryHaskellDepends = [ accelerate base ];
+       description = "Convert between Accelerate arrays and raw pointers";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "accelerate-io-JuicyPixels" = callPackage
+    ({ mkDerivation, accelerate, accelerate-io-vector, base
+     , JuicyPixels, vector
+     }:
+     mkDerivation {
+       pname = "accelerate-io-JuicyPixels";
+       version = "0.1.0.0";
+       sha256 = "0rr43lwmc16r99si1s4nimxxydlsxb6ck45absrxy6vnkln7x185";
        libraryHaskellDepends = [
-         accelerate array base bmp bytestring primitive repa vector
+         accelerate accelerate-io-vector base JuicyPixels vector
        ];
+       description = "Convert between Accelerate arrays and JuicyPixels images";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "accelerate-io-array" = callPackage
+    ({ mkDerivation, accelerate, array, base, hedgehog, primitive
+     , tasty, tasty-hedgehog
+     }:
+     mkDerivation {
+       pname = "accelerate-io-array";
+       version = "0.1.0.0";
+       sha256 = "1gcxd4m3h1xr8ia8z7c8sxznm90h2q3mzwhi5vsv8s1gh7sdym9m";
+       libraryHaskellDepends = [ accelerate array base primitive ];
        testHaskellDepends = [
-         accelerate array base hedgehog tasty tasty-hedgehog vector
+         accelerate array base hedgehog tasty tasty-hedgehog
        ];
-       description = "Read and write Accelerate arrays in various formats";
+       description = "Convert between Accelerate and array";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "accelerate-io-bmp" = callPackage
+    ({ mkDerivation, accelerate, accelerate-io-bytestring, base, bmp }:
+     mkDerivation {
+       pname = "accelerate-io-bmp";
+       version = "0.1.0.0";
+       sha256 = "0x7bkn4j7s9dzlfk4q1lh6fyd4bir1zkm4x37c65nl9g86154sc8";
+       libraryHaskellDepends = [
+         accelerate accelerate-io-bytestring base bmp
+       ];
+       description = "Convert between Accelerate arrays and BMP images";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "accelerate-io-bytestring" = callPackage
+    ({ mkDerivation, accelerate, base, bytestring }:
+     mkDerivation {
+       pname = "accelerate-io-bytestring";
+       version = "0.1.0.0";
+       sha256 = "15j42ahdcqpy4xbpp1xibfbjcrijy0hpfxp4k53qkb9bcqaknyq1";
+       libraryHaskellDepends = [ accelerate base bytestring ];
+       description = "Convert between Accelerate and ByteString";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "accelerate-io-cereal" = callPackage
+    ({ mkDerivation, accelerate, accelerate-io-bytestring, base, cereal
+     }:
+     mkDerivation {
+       pname = "accelerate-io-cereal";
+       version = "0.1.0.0";
+       sha256 = "13im1kmrd2yjxxrmpzp2030jhhq9fm9xa76yl11xwpd82z10a2pl";
+       libraryHaskellDepends = [
+         accelerate accelerate-io-bytestring base cereal
+       ];
+       description = "Binary serialisation of Accelerate arrays using cereal";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "accelerate-io-repa" = callPackage
+    ({ mkDerivation, accelerate, base, repa }:
+     mkDerivation {
+       pname = "accelerate-io-repa";
+       version = "0.1.0.0";
+       sha256 = "084gzvfwz6prwra5393lfm5hgvssxwij0cdf24fq5nahzn7x2wrp";
+       libraryHaskellDepends = [ accelerate base repa ];
+       description = "Convert between Accelerate and Repa arrays";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "accelerate-io-vector" = callPackage
+    ({ mkDerivation, accelerate, base, hedgehog, primitive, tasty
+     , tasty-hedgehog, vector
+     }:
+     mkDerivation {
+       pname = "accelerate-io-vector";
+       version = "0.1.0.0";
+       sha256 = "1nh7n3qj4csxyzvkhkvfr9bii2vmqky51f32pz3bphrwfvhzdrri";
+       libraryHaskellDepends = [ accelerate base primitive vector ];
+       testHaskellDepends = [
+         accelerate base hedgehog tasty tasty-hedgehog vector
+       ];
+       description = "Convert between Accelerate and vector";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "accelerate-kullback-liebler" = callPackage
@@ -22385,8 +22564,10 @@ self: {
      }:
      mkDerivation {
        pname = "accelerate-kullback-liebler";
-       version = "0.1.2.0";
-       sha256 = "16psmn0wakrrym8m98ing4nrh8r7qvbn04b28sicl5jdbfhg1fdn";
+       version = "0.1.2.1";
+       sha256 = "1pvgm5w8m7226wa139h49fd0f5bsrz3a7x30wx3mzjn80acgsm63";
+       revision = "1";
+       editedCabalFile = "1255a274j1ssiy934kl507giyv6zjmwiipqfj72gjik6ss0ih2vz";
        libraryHaskellDepends = [ accelerate base mwc-random-accelerate ];
        testHaskellDepends = [
          accelerate accelerate-llvm-native accelerate-llvm-ptx base
@@ -22405,20 +22586,19 @@ self: {
      }) {};
 
   "accelerate-llvm" = callPackage
-    ({ mkDerivation, abstract-deque, accelerate, base, bytestring
-     , chaselev-deque, containers, data-default-class, deepseq
-     , directory, dlist, exceptions, filepath, llvm-hs, llvm-hs-pure
-     , mtl, mwc-random, primitive, template-haskell
-     , unordered-containers, vector
+    ({ mkDerivation, accelerate, base, bytestring, constraints
+     , containers, data-default-class, deepseq, directory, dlist
+     , exceptions, filepath, llvm-hs, llvm-hs-pure, mtl, primitive
+     , template-haskell, unordered-containers, vector
      }:
      mkDerivation {
        pname = "accelerate-llvm";
-       version = "1.2.0.1";
-       sha256 = "1cv5s7fgkdd3m95vy2rrq2kvzyzxx6vwgsc5nqcmfdp00z8znjhk";
+       version = "1.3.0.0";
+       sha256 = "1fjjfjav11s6grwl6ihqdrzx738bwki0l25qlp4zzz2hi2440qbp";
        libraryHaskellDepends = [
-         abstract-deque accelerate base bytestring chaselev-deque containers
+         accelerate base bytestring constraints containers
          data-default-class deepseq directory dlist exceptions filepath
-         llvm-hs llvm-hs-pure mtl mwc-random primitive template-haskell
+         llvm-hs llvm-hs-pure mtl primitive template-haskell
          unordered-containers vector
        ];
        description = "Accelerate backend component generating LLVM IR";
@@ -22429,19 +22609,19 @@ self: {
 
   "accelerate-llvm-native" = callPackage
     ({ mkDerivation, accelerate, accelerate-llvm, base, bytestring
-     , c2hs, Cabal, cereal, containers, directory, dlist, filepath, ghc
-     , ghc-prim, hashable, libffi, llvm-hs, llvm-hs-pure, lockfree-queue
-     , mtl, template-haskell, time, unique, unix, vector
+     , c2hs, cereal, containers, deepseq, directory, dlist, filepath
+     , ghc, ghc-prim, hashable, libffi, llvm-hs, llvm-hs-pure
+     , lockfree-queue, mtl, template-haskell, unique, unix, vector
      }:
      mkDerivation {
        pname = "accelerate-llvm-native";
-       version = "1.2.0.1";
-       sha256 = "0sml5rj3dnxlv14i4xbs1sadnprjga1iws7fl7sxkyjzxqc04vrj";
+       version = "1.3.0.0";
+       sha256 = "1x4wfbp83ppzknd98k2ad160a8kdqh96qqmyfzdqyvy44iskxcn6";
        libraryHaskellDepends = [
-         accelerate accelerate-llvm base bytestring Cabal cereal containers
-         directory dlist filepath ghc ghc-prim hashable libffi llvm-hs
-         llvm-hs-pure lockfree-queue mtl template-haskell time unique unix
-         vector
+         accelerate accelerate-llvm base bytestring cereal containers
+         deepseq directory dlist filepath ghc ghc-prim hashable libffi
+         llvm-hs llvm-hs-pure lockfree-queue mtl template-haskell unique
+         unix vector
        ];
        libraryToolDepends = [ c2hs ];
        testHaskellDepends = [ accelerate base ];
@@ -22454,17 +22634,18 @@ self: {
   "accelerate-llvm-ptx" = callPackage
     ({ mkDerivation, accelerate, accelerate-llvm, base, bytestring
      , containers, cuda, deepseq, directory, dlist, file-embed, filepath
-     , hashable, llvm-hs, llvm-hs-pure, mtl, nvvm, pretty, process
-     , template-haskell, time, unordered-containers
+     , ghc-heap, hashable, llvm-hs, llvm-hs-pure, mtl, nvvm, pretty
+     , process, template-haskell, unordered-containers
      }:
      mkDerivation {
        pname = "accelerate-llvm-ptx";
-       version = "1.2.0.1";
-       sha256 = "0c9hl19v4si0lnah4l63kqhpxz16zy0wi3cg28gz00mxzgqilivs";
+       version = "1.3.0.0";
+       sha256 = "0bb7p67dv5csbblnaxbm7hkq8y2qknz0yd1f0rav29igsv3a9rfx";
        libraryHaskellDepends = [
          accelerate accelerate-llvm base bytestring containers cuda deepseq
-         directory dlist file-embed filepath hashable llvm-hs llvm-hs-pure
-         mtl nvvm pretty process template-haskell time unordered-containers
+         directory dlist file-embed filepath ghc-heap hashable llvm-hs
+         llvm-hs-pure mtl nvvm pretty process template-haskell
+         unordered-containers
        ];
        testHaskellDepends = [ accelerate base ];
        description = "Accelerate backend for NVIDIA GPUs";
@@ -23917,6 +24098,39 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "aeson_1_5_4_0" = callPackage
+    ({ mkDerivation, attoparsec, base, base-compat
+     , base-compat-batteries, base-orphans, base16-bytestring
+     , bytestring, containers, data-fix, deepseq, Diff, directory, dlist
+     , filepath, generic-deriving, ghc-prim, hashable, hashable-time
+     , integer-logarithms, primitive, QuickCheck, quickcheck-instances
+     , scientific, strict, tagged, tasty, tasty-golden, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, th-abstraction, these
+     , time, time-compat, unordered-containers, uuid-types, vector
+     }:
+     mkDerivation {
+       pname = "aeson";
+       version = "1.5.4.0";
+       sha256 = "17qgrli6xy3cds5k9ijdsmnl89h48w89mgqqy6kfah1bjlzs3l40";
+       libraryHaskellDepends = [
+         attoparsec base base-compat-batteries bytestring containers
+         data-fix deepseq dlist ghc-prim hashable primitive scientific
+         strict tagged template-haskell text th-abstraction these time
+         time-compat unordered-containers uuid-types vector
+       ];
+       testHaskellDepends = [
+         attoparsec base base-compat base-orphans base16-bytestring
+         bytestring containers data-fix Diff directory dlist filepath
+         generic-deriving ghc-prim hashable hashable-time integer-logarithms
+         QuickCheck quickcheck-instances scientific strict tagged tasty
+         tasty-golden tasty-hunit tasty-quickcheck template-haskell text
+         these time time-compat unordered-containers uuid-types vector
+       ];
+       description = "Fast JSON parsing and encoding";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "aeson-applicative" = callPackage
     ({ mkDerivation, aeson, base, text, unordered-containers }:
      mkDerivation {
@@ -24084,15 +24298,18 @@ self: {
      }) {};
 
   "aeson-deriving" = callPackage
-    ({ mkDerivation, aeson, base, hedgehog, text, unordered-containers
+    ({ mkDerivation, aeson, base, hedgehog, regex-tdfa, text
+     , unordered-containers
      }:
      mkDerivation {
        pname = "aeson-deriving";
-       version = "0.1.0.0";
-       sha256 = "18zdncbvhlpa5v6yvsj30fyrh44hchaps8jjh93z6ji08cb6wdni";
-       libraryHaskellDepends = [ aeson base text unordered-containers ];
+       version = "0.1.1.1";
+       sha256 = "1yqiw8imp30gv3jij4f724yi8mmf6w8fn84kmq9r7yjn7scfz4dj";
+       libraryHaskellDepends = [
+         aeson base regex-tdfa text unordered-containers
+       ];
        testHaskellDepends = [
-         aeson base hedgehog text unordered-containers
+         aeson base hedgehog regex-tdfa text unordered-containers
        ];
        description = "data types for compositional, type-directed serialization";
        license = stdenv.lib.licenses.mit;
@@ -24158,8 +24375,8 @@ self: {
        pname = "aeson-extra";
        version = "0.4.1.3";
        sha256 = "1k15vkyf635nh904diyg931ziwdngikvp7c9c339pys3savf5qr2";
-       revision = "3";
-       editedCabalFile = "04j4af350hfyl01dwxhn6051cgxsaj46f3vy55d1kbwg1ajffdqq";
+       revision = "4";
+       editedCabalFile = "0gwjgxpgq7lncylfpccikmn3jk2jmz54vsgjialhwa26iv9f9n4a";
        libraryHaskellDepends = [
          aeson aeson-compat attoparsec attoparsec-iso8601 base
          base-compat-batteries bytestring containers deepseq exceptions
@@ -24281,6 +24498,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "aeson-helper" = callPackage
+    ({ mkDerivation, aeson, base, text, unordered-containers, vector }:
+     mkDerivation {
+       pname = "aeson-helper";
+       version = "0.1.0.0";
+       sha256 = "0s4gq827i2wyflcaxbhlr8f8svlw8szzmwax9d7vnxk9wy9fw8w0";
+       libraryHaskellDepends = [
+         aeson base text unordered-containers vector
+       ];
+       description = "Aeson helper func";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "aeson-injector" = callPackage
     ({ mkDerivation, aeson, base, bifunctors, containers, deepseq
      , hashable, HUnit, lens, QuickCheck, quickcheck-text, scientific
@@ -24552,6 +24782,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "aeson-result" = callPackage
+    ({ mkDerivation, aeson, aeson-helper, base, text }:
+     mkDerivation {
+       pname = "aeson-result";
+       version = "0.1.0.0";
+       sha256 = "10bnzh7vlh42sip0z7mvx5jxrsi7p2s3vqy55pfg2pb17czzly2y";
+       libraryHaskellDepends = [ aeson aeson-helper base text ];
+       description = "API Result for aeson";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "aeson-schema" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, containers
      , directory, fail, filepath, ghc-prim, hashable, hint, HUnit, mtl
@@ -24593,6 +24834,8 @@ self: {
        pname = "aeson-schemas";
        version = "1.2.0";
        sha256 = "1fc8zzpkq6alkbl0v473h8diin8lqpliq6d3bsrh5bfny8yapvpk";
+       revision = "1";
+       editedCabalFile = "1kcsnpb4img9a122yz9lf7s0ils7ppbjyknbck2m8ip977kv04dp";
        libraryHaskellDepends = [
          aeson base bytestring first-class-families megaparsec
          template-haskell text unordered-containers
@@ -24780,19 +25023,19 @@ self: {
      }) {};
 
   "aeson-with" = callPackage
-    ({ mkDerivation, aeson, base, hashmap, lens, lens-aeson, scientific
-     , text, unordered-containers, vector
+    ({ mkDerivation, aeson, base, lens, lens-aeson, scientific, text
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "aeson-with";
-       version = "0.1.0.2";
-       sha256 = "0iv522v1cq2vnwnics0fas962kfaghvk33awnggd5k078x450wsq";
+       version = "0.1.2.0";
+       sha256 = "0zj8jjsq26i6k8m3zfszpjxnnkar3gmvdw1adl9rxlgha2v5kfz8";
        libraryHaskellDepends = [
-         aeson base hashmap lens lens-aeson scientific text
-         unordered-containers vector
+         aeson base lens lens-aeson scientific text unordered-containers
+         vector
        ];
        description = "withXField combinators for aeson";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.mit;
      }) {};
 
   "aeson-yak" = callPackage
@@ -25475,8 +25718,8 @@ self: {
      }:
      mkDerivation {
        pname = "alarmclock";
-       version = "0.7.0.4";
-       sha256 = "0am8q26yj29k82y9bsgrlqxam1wllzdnxjbwqx4cgmjkzr7x802j";
+       version = "0.7.0.5";
+       sha256 = "0197phsc4rn5mn155hbmxplxi2ymra1x6lxq16xs6a8zrk4gfkj9";
        libraryHaskellDepends = [
          async base clock stm time unbounded-delays
        ];
@@ -25557,8 +25800,8 @@ self: {
      }:
      mkDerivation {
        pname = "alex-meta";
-       version = "0.3.0.11";
-       sha256 = "0pb6m2h9r3j71iy8ch8kgvssblidlr6r7k12fa1q2v7wi5q2mq91";
+       version = "0.3.0.12";
+       sha256 = "0s0yhkl0ymr50agqnsbscw8926jk4044n6scw086ylhcijx3qmxa";
        libraryHaskellDepends = [
          array base containers haskell-src-meta QuickCheck template-haskell
        ];
@@ -25616,6 +25859,28 @@ self: {
        broken = true;
      }) {};
 
+  "alfred-margaret" = callPackage
+    ({ mkDerivation, base, containers, deepseq, hashable, hspec
+     , hspec-expectations, primitive, QuickCheck, quickcheck-instances
+     , text, vector
+     }:
+     mkDerivation {
+       pname = "alfred-margaret";
+       version = "1.0.0.0";
+       sha256 = "0dapvcxwwd6ylyqxfjf58jink2rh9i6k1lw1ii6j8jb28qfvy400";
+       libraryHaskellDepends = [
+         base containers deepseq hashable primitive text vector
+       ];
+       testHaskellDepends = [
+         base deepseq hspec hspec-expectations QuickCheck
+         quickcheck-instances text
+       ];
+       description = "Fast Aho-Corasick string searching";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "alg" = callPackage
     ({ mkDerivation, base, dual, util }:
      mkDerivation {
@@ -25715,6 +25980,24 @@ self: {
        broken = true;
      }) {};
 
+  "algebra-driven-design" = callPackage
+    ({ mkDerivation, base, bytestring, containers, dlist, file-embed
+     , generic-data, hashable, JuicyPixels, monoid-subclasses
+     , monoidal-containers, mtl, multiset, QuickCheck, quickspec
+     }:
+     mkDerivation {
+       pname = "algebra-driven-design";
+       version = "0.1.1.1";
+       sha256 = "0dp622a70biscjh1r0yyr9mz65g8p2wz60jrzrq8yhs1y4gsigs0";
+       libraryHaskellDepends = [
+         base bytestring containers dlist file-embed generic-data hashable
+         JuicyPixels monoid-subclasses monoidal-containers mtl multiset
+         QuickCheck quickspec
+       ];
+       description = "Companion library for the book Algebra-Driven Design by Sandy Maguire";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "algebra-sql" = callPackage
     ({ mkDerivation, aeson, algebra-dag, ansi-wl-pprint, base
      , bytestring, containers, Decimal, dlist, errors, fgl, filepath
@@ -25940,6 +26223,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "ally-invest" = callPackage
+    ({ mkDerivation, aeson, authenticate-oauth, base, bytestring
+     , http-client, http-client-tls, safe, text, time
+     }:
+     mkDerivation {
+       pname = "ally-invest";
+       version = "0.1.0.0";
+       sha256 = "0n6vz0xd4y4div0p63mnbpng2dqwrsmrdhs25r10xw2wc2bznl79";
+       libraryHaskellDepends = [
+         aeson authenticate-oauth base bytestring http-client
+         http-client-tls safe text time
+       ];
+       testHaskellDepends = [
+         aeson authenticate-oauth base bytestring http-client
+         http-client-tls safe text time
+       ];
+       description = "Ally Invest integration library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "almost-fix" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -28939,6 +29242,24 @@ self: {
        broken = true;
      }) {};
 
+  "amqp-streamly" = callPackage
+    ({ mkDerivation, amqp, base, bytestring, hspec, process, streamly
+     , testcontainers, text
+     }:
+     mkDerivation {
+       pname = "amqp-streamly";
+       version = "0.2.0";
+       sha256 = "0f6w574pq9nl4iq6di99cip4sxn62yrwpjqc22nwlvbqr6bgl79f";
+       libraryHaskellDepends = [ amqp base streamly text ];
+       testHaskellDepends = [
+         amqp base bytestring hspec process streamly testcontainers text
+       ];
+       description = "A simple streamly wrapper for amqp";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "amqp-utils" = callPackage
     ({ mkDerivation, amqp, base, bytestring, connection, containers
      , data-default-class, directory, hinotify, magic, network, process
@@ -28946,8 +29267,8 @@ self: {
      }:
      mkDerivation {
        pname = "amqp-utils";
-       version = "0.4.4.0";
-       sha256 = "07zpmq9sx6lmnma4dxxph0jficghrlfbb568frh3d6fbdiqgmfgl";
+       version = "0.4.4.1";
+       sha256 = "1vs0p7pc6z9mfjd2vns66wnhl8v1n9rbgabyjw0v832m2pwizzmj";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -28955,7 +29276,7 @@ self: {
          directory hinotify magic network process text time tls unix
          utf8-string x509-system
        ];
-       description = "Generic Haskell AMQP tools";
+       description = "AMQP toolset for the command line";
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
@@ -29520,6 +29841,20 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "ansi-terminal_0_11" = callPackage
+    ({ mkDerivation, base, colour }:
+     mkDerivation {
+       pname = "ansi-terminal";
+       version = "0.11";
+       sha256 = "14rp62c7y79n9dmmi7m0l9n3mcq6dh331b4yyyrivm5da6g1nqf6";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base colour ];
+       description = "Simple ANSI terminal support, with Windows compatibility";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "ansi-terminal-game" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, bytestring, cereal
      , clock, exceptions, hspec, linebreak, mintty, mtl, QuickCheck
@@ -29552,8 +29887,8 @@ self: {
        pname = "ansi-wl-pprint";
        version = "0.6.9";
        sha256 = "1b2fg8px98dzbaqyns10kvs8kn6cl1hdq5wb9saz40izrpkyicm7";
-       revision = "1";
-       editedCabalFile = "0bb5fzjjc00932pny1fql40dmpmikfqzbrbmpwr09bfw9aynvzgn";
+       revision = "2";
+       editedCabalFile = "1xrv66v5hqchjhj8a0g3awy1qpsswk2jqb4w4yh3mm1py5s0dlr0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ ansi-terminal base ];
@@ -30069,8 +30404,8 @@ self: {
     ({ mkDerivation, base, ghc-prim, integer-gmp }:
      mkDerivation {
        pname = "aop-prelude";
-       version = "0.3.1.0";
-       sha256 = "0zc1pifcr3s5zklm3rp9wjj370x4fwc7xhahdsqmkx67dpfqyiap";
+       version = "0.4.0.0";
+       sha256 = "0jg572zz9lbhpp4bxldrc0gs0ac0f4hfcrxds77gr51xizxfa7cn";
        libraryHaskellDepends = [ base ghc-prim integer-gmp ];
        testHaskellDepends = [ base ghc-prim ];
        description = "prelude for Algebra of Programming";
@@ -30121,6 +30456,18 @@ self: {
        broken = true;
      }) {inherit (pkgs) libaosd;};
 
+  "ap-normalize" = callPackage
+    ({ mkDerivation, base, inspection-testing, transformers }:
+     mkDerivation {
+       pname = "ap-normalize";
+       version = "0.1.0.0";
+       sha256 = "0iqfilamnp0k170af7sw0ydn0cmba7ab06yinkl8vfppf583a4la";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base inspection-testing transformers ];
+       description = "Self-normalizing applicative expressions";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "ap-reflect" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -31152,28 +31499,28 @@ self: {
 
   "apply-refact" = callPackage
     ({ mkDerivation, base, containers, directory, extra, filemanip
-     , filepath, ghc, ghc-boot-th, ghc-exactprint, mtl
-     , optparse-applicative, process, refact, silently, syb, tasty
-     , tasty-expected-failure, tasty-golden, transformers, unix-compat
+     , filepath, ghc, ghc-boot-th, ghc-exactprint, optparse-applicative
+     , process, refact, silently, syb, tasty, tasty-expected-failure
+     , tasty-golden, transformers, unix-compat
      }:
      mkDerivation {
        pname = "apply-refact";
-       version = "0.8.1.0";
-       sha256 = "1mnp33c8dghgmn62czyrbmw86czhznbhb75ac1ps1is1p1ik6mih";
+       version = "0.8.2.1";
+       sha256 = "12dnwsv37bhla7cnqa3h24mnvdk5199lwd5mf845n1r6xqrh2vvp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base containers directory extra filemanip ghc ghc-exactprint mtl
+         base containers directory extra filemanip ghc ghc-exactprint
          process refact syb transformers unix-compat
        ];
        executableHaskellDepends = [
          base containers directory extra filemanip filepath ghc ghc-boot-th
-         ghc-exactprint mtl optparse-applicative process refact syb
-         transformers unix-compat
+         ghc-exactprint optparse-applicative process refact syb transformers
+         unix-compat
        ];
        testHaskellDepends = [
          base containers directory extra filemanip filepath ghc ghc-boot-th
-         ghc-exactprint mtl optparse-applicative process refact silently syb
+         ghc-exactprint optparse-applicative process refact silently syb
          tasty tasty-expected-failure tasty-golden transformers unix-compat
        ];
        description = "Perform refactorings specified by the refact library";
@@ -31512,6 +31859,8 @@ self: {
        pname = "arbtt";
        version = "0.10.2";
        sha256 = "02izfga7nv2saq4d1xwigq41hhbc02830sjppqsqw6vcb8082vs1";
+       revision = "1";
+       editedCabalFile = "10b6ax854a4ig33iwcg21vad4gpgibfpb6xqkxd80hvkrj4gqd62";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -31589,8 +31938,8 @@ self: {
      }:
      mkDerivation {
        pname = "archive-libarchive";
-       version = "1.0.0.0";
-       sha256 = "0pqq76gnk6y71c5wwjhq99y2695v6bfyzjb8gakp6h3jivcpd2gb";
+       version = "1.0.0.1";
+       sha256 = "079wm4c9bahvi693g6655ag9rz9l5g7i4b82q7zm0hz383f94zsl";
        libraryHaskellDepends = [
          base bytestring composition-prelude libarchive
        ];
@@ -32656,6 +33005,8 @@ self: {
        libraryHaskellDepends = [ base random-extras random-fu text ];
        description = "A collection of ASCII cows. Moo.";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ascii-flatten" = callPackage
@@ -33120,8 +33471,8 @@ self: {
     ({ mkDerivation, base, pretty-show, text }:
      mkDerivation {
        pname = "assert-failure";
-       version = "0.1.2.3";
-       sha256 = "1cjl9xa8d4rmzafydcnjl7pnv40hl6q663k37kyx22dyg9frgc68";
+       version = "0.1.2.4";
+       sha256 = "0q4kaaxvz89qrw7j9kgh57nzyn6a8rh2w1hjb1h7ymdnznhr3cj4";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base pretty-show text ];
        description = "Syntactic sugar improving 'assert' and 'error'";
@@ -33194,10 +33545,8 @@ self: {
     ({ mkDerivation, base, bifunctors, tagged }:
      mkDerivation {
        pname = "assoc";
-       version = "1.0.1";
-       sha256 = "1m9n4vp190bvn2wcrd4ggfwa9pi93jp0zgx02mdgywn2zfidw020";
-       revision = "1";
-       editedCabalFile = "1q6sc9v79p2pdm7aa6mfbn824vc01wj267saf2gp86b3wzgp0mrh";
+       version = "1.0.2";
+       sha256 = "0kqlizznjy94fm8zr1ng633yxbinjff7cnsiaqs7m33ix338v66q";
        libraryHaskellDepends = [ base bifunctors tagged ];
        description = "swap and assoc: Symmetric and Semigroupy Bifunctors";
        license = stdenv.lib.licenses.bsd3;
@@ -33825,8 +34174,8 @@ self: {
      }:
      mkDerivation {
        pname = "atom-conduit";
-       version = "0.8.0.0";
-       sha256 = "0vakq72n9q6hk6ysl64qcyrrya2gp2l3s97n3vggwv84p167xqwd";
+       version = "0.9.0.0";
+       sha256 = "0kjdw3x5jsa5hjb36zq93xyp3ac1s4j5vpb52969hckcghmyrabm";
        libraryHaskellDepends = [
          base-noprelude blaze-builder conduit microlens microlens-th parsers
          prettyprinter refined relude safe-exceptions text time timerep
@@ -34026,27 +34375,27 @@ self: {
      }) {};
 
   "ats-pkg" = callPackage
-    ({ mkDerivation, ansi-wl-pprint, base, binary, bytestring, Cabal
-     , cli-setup, composition-prelude, containers, cpphs, dependency
-     , dhall, directory, file-embed, filepath, http-client
-     , http-client-tls, language-ats, libarchive, lzma, microlens, mtl
-     , optparse-applicative, parallel-io, process, shake, shake-ats
-     , shake-c, shake-ext, temporary, text, unix, unix-compat
+    ({ mkDerivation, ansi-wl-pprint, archive-libarchive, archive-sig
+     , base, binary, bytestring, Cabal, cli-setup, composition-prelude
+     , containers, cpphs, dependency, dhall, directory, file-embed
+     , filepath, http-client, http-client-tls, language-ats, lzma
+     , microlens, mtl, optparse-applicative, parallel-io, process, shake
+     , shake-ats, shake-c, shake-ext, temporary, text, unix, unix-compat
      , zip-archive, zlib
      }:
      mkDerivation {
        pname = "ats-pkg";
-       version = "3.5.0.0";
-       sha256 = "0ky17b8s4rg42gr2wwarvlgf0r0zgllrxqcdramsiyh8w9zgmc71";
+       version = "3.5.0.1";
+       sha256 = "09vv8cmag4189sv0nv213vhxp4pak5swk3gi4pnl777lmm0qgxxh";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         ansi-wl-pprint base binary bytestring Cabal composition-prelude
-         containers dependency dhall directory file-embed filepath
-         http-client http-client-tls libarchive lzma microlens mtl
-         parallel-io process shake shake-ats shake-c shake-ext text unix
-         unix-compat zip-archive zlib
+         ansi-wl-pprint archive-libarchive archive-sig base binary
+         bytestring Cabal composition-prelude containers dependency dhall
+         directory file-embed filepath http-client http-client-tls lzma
+         microlens mtl parallel-io process shake shake-ats shake-c shake-ext
+         text unix unix-compat zip-archive zlib
        ];
        libraryToolDepends = [ cpphs ];
        executableHaskellDepends = [
@@ -34648,8 +34997,8 @@ self: {
      }:
      mkDerivation {
        pname = "aura";
-       version = "3.1.4";
-       sha256 = "0zb83kq207d4gcmlq61972rkjr598zxxk1svs8x25q1i9f92km0z";
+       version = "3.1.8";
+       sha256 = "19zm9bwpixqdg4a5mcrv2c8fyhygjzawjrwv1jwwhcczqsrjwvrw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -34726,8 +35075,8 @@ self: {
        pname = "authenticate-oauth";
        version = "1.6.0.1";
        sha256 = "1hry1zbi7gbyfi94w9cyg6m7ii7xm68jnsph63zxdj2s4ns0ylp0";
-       revision = "1";
-       editedCabalFile = "0pyivmsmlzhpnzpi3jcmqyjjx5a1p7cl1grjyw8571pmxz6735w3";
+       revision = "2";
+       editedCabalFile = "08i6mmk2jqlrd1aksjx02arly7dfpkwc0dwxpr7hs4rbxajbckyr";
        libraryHaskellDepends = [
          base base64-bytestring blaze-builder bytestring crypto-pubkey-types
          data-default http-client http-types random RSA SHA time
@@ -34805,8 +35154,8 @@ self: {
      }:
      mkDerivation {
        pname = "autoapply";
-       version = "0.4";
-       sha256 = "0b7la51399kcj9a4z9j49xd9v2zs172vygs3djz5qid7fsl37pgm";
+       version = "0.4.1";
+       sha256 = "1jgzfdi5p0pns6w7543yp2ljglnmym9qplyb4vafynzg3bjhzvz0";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base logict mtl template-haskell th-desugar transformers
@@ -34823,8 +35172,8 @@ self: {
     ({ mkDerivation, base, Cabal, directory, filepath }:
      mkDerivation {
        pname = "autoexporter";
-       version = "1.1.17";
-       sha256 = "0h2pgbrslfbmwns6jz4gpkp7s82l04215fqzlmzrfm7pck27prcg";
+       version = "1.1.18";
+       sha256 = "0pzszi5q7h1qxqh2fpds8d43miq0cf4mfzcwggi8409s72pyf9xl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base Cabal directory filepath ];
@@ -35228,6 +35577,8 @@ self: {
        pname = "avro-piper";
        version = "1.0.3";
        sha256 = "1vi0mgpqpr74ankl8418npklyfxacxg001vppps22p2da97s3pk1";
+       revision = "1";
+       editedCabalFile = "1405kfnndnh6w4hslahg74rdhk8jmh48j64ps7mval3py8cl5qiv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -35258,8 +35609,8 @@ self: {
      }:
      mkDerivation {
        pname = "avwx";
-       version = "0.3.0.2";
-       sha256 = "02pvh2i1f96k3pyrmdb3jv2ia7mcp8q5pw067psr8k2sw329qadl";
+       version = "0.3.0.3";
+       sha256 = "1yvyyvfgga5gpf6bw5wkaxzwqvvvlzbqlq217h454gzlsm8vlv52";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ attoparsec base HTTP lens parsers text ];
@@ -35723,8 +36074,8 @@ self: {
      }:
      mkDerivation {
        pname = "aws-lambda-haskell-runtime";
-       version = "3.0.1";
-       sha256 = "17f41ppgc4irahp1g3ngrdb24kqhdfld11jdmc6cw6mg2r820l8i";
+       version = "3.0.4";
+       sha256 = "1rbgi7f1vymh8q6b074z64jlww5gssbzhpam8k8lcgp0zlvm13n1";
        libraryHaskellDepends = [
          aeson base bytestring case-insensitive http-client http-types path
          path-io safe-exceptions-checked template-haskell text
@@ -35742,8 +36093,8 @@ self: {
      }:
      mkDerivation {
        pname = "aws-lambda-haskell-runtime-wai";
-       version = "1.0.0";
-       sha256 = "03mqaxx726hm4pz18l37cg818jhq0fpfhfn20jfk497cm90clpzp";
+       version = "1.0.2";
+       sha256 = "0bjqrwl2kcnxv8yni2bxaz5x3pgs3j6c4rrgqpv5kfs7yn1ins7w";
        libraryHaskellDepends = [
          aeson aws-lambda-haskell-runtime base binary bytestring
          case-insensitive http-types iproute network text
@@ -35756,6 +36107,8 @@ self: {
        ];
        description = "Run wai applications on AWS Lambda";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "aws-lambda-runtime" = callPackage
@@ -36104,6 +36457,26 @@ self: {
        broken = true;
      }) {control-invariants = null;};
 
+  "azimuth-hs" = callPackage
+    ({ mkDerivation, base, data-default-class, exceptions, haskoin-core
+     , hspec, memory, mtl, shelly, text, urbit-hob, web3
+     }:
+     mkDerivation {
+       pname = "azimuth-hs";
+       version = "0.2.1";
+       sha256 = "0gr852mqzd05jhhmszf69r1kk5ja2syq15ac0hdnqzhfzlbq2nrl";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base data-default-class exceptions haskoin-core memory mtl text
+         urbit-hob web3
+       ];
+       testHaskellDepends = [ base hspec shelly text urbit-hob ];
+       description = "Interact with Azimuth from Haskell";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "azubi" = callPackage
     ({ mkDerivation, base, Diff, directory, filepath, hspec, options
      , process, unix
@@ -36163,6 +36536,35 @@ self: {
        broken = true;
      }) {};
 
+  "azure-functions-worker" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, Cabal, containers
+     , directory, filepath, glabrous, http-types, http2-client
+     , http2-client-grpc, http2-grpc-proto-lens, http2-grpc-types
+     , lens-family, lens-family-core, mtl, network-uri
+     , optparse-applicative, proto-lens-protobuf-types
+     , proto-lens-protoc, proto-lens-runtime, proto-lens-setup
+     , raw-strings-qq, stm, text, time
+     }:
+     mkDerivation {
+       pname = "azure-functions-worker";
+       version = "0.0.0.0";
+       sha256 = "0035kmxfnb121mg38xzbyxphwg2r4x63chlywl67b9nz1pwp828x";
+       setupHaskellDepends = [ base Cabal proto-lens-setup ];
+       libraryHaskellDepends = [
+         aeson async base bytestring containers directory filepath glabrous
+         http-types http2-client http2-client-grpc http2-grpc-proto-lens
+         http2-grpc-types lens-family lens-family-core mtl network-uri
+         optparse-applicative proto-lens-protobuf-types proto-lens-runtime
+         raw-strings-qq stm text time
+       ];
+       libraryToolDepends = [ proto-lens-protoc ];
+       testHaskellDepends = [ base ];
+       description = "Azure Functions Worker";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "azure-service-api" = callPackage
     ({ mkDerivation, base, binary, bytestring, case-insensitive
      , certificate, crypto-pubkey-types, http-conduit, hxt, hxt-xpath
@@ -36263,35 +36665,39 @@ self: {
   "b9" = callPackage
     ({ mkDerivation, aeson, async, base, base64-bytestring, bifunctors
      , binary, boxes, bytestring, conduit, conduit-extra, ConfigFile
-     , dhall, directory, exceptions, extensible-effects, filepath, free
-     , hashable, hspec, hspec-expectations, lens, monad-control, mtl
-     , optparse-applicative, parallel, parsec, pretty, pretty-show
-     , process, QuickCheck, random, shake, syb, tagged, template, text
-     , time, transformers, unordered-containers, vector, yaml
+     , containers, directory, exceptions, extensible-effects, filepath
+     , free, hashable, hspec, hspec-expectations, lens, monad-control
+     , mtl, neat-interpolation, optparse-applicative, parallel, parsec
+     , pretty, pretty-show, process, QuickCheck, random, shake, syb
+     , tagged, template, text, time, transformers, unordered-containers
+     , vector, yaml
      }:
      mkDerivation {
        pname = "b9";
-       version = "1.0.0";
-       sha256 = "0bny8pn98yyswhp7xd78d3gjb56ld6c5cpskx38iibjnzrzq3jf7";
+       version = "2.1.0";
+       sha256 = "0zrblqyq7zm2zya20zaxvcgb489y2kywns72kxyp6ymi2sax586g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson async base base64-bytestring bifunctors binary boxes
-         bytestring conduit conduit-extra ConfigFile dhall directory
+         bytestring conduit conduit-extra ConfigFile containers directory
          exceptions extensible-effects filepath free hashable hspec
-         hspec-expectations lens monad-control mtl optparse-applicative
-         parallel parsec pretty pretty-show process QuickCheck random shake
-         syb tagged template text time transformers unordered-containers
-         vector yaml
+         hspec-expectations lens monad-control mtl neat-interpolation
+         optparse-applicative parallel parsec pretty pretty-show process
+         QuickCheck random shake syb tagged template text time transformers
+         unordered-containers vector yaml
        ];
        executableHaskellDepends = [
-         base bytestring directory extensible-effects hspec
-         hspec-expectations lens optparse-applicative text
+         aeson base binary bytestring containers directory
+         extensible-effects filepath hspec hspec-expectations lens
+         neat-interpolation optparse-applicative process QuickCheck shake
+         text unordered-containers vector yaml
        ];
        testHaskellDepends = [
-         aeson base binary bytestring directory extensible-effects hspec
-         hspec-expectations lens QuickCheck text unordered-containers vector
-         yaml
+         aeson base binary bytestring containers directory
+         extensible-effects filepath hspec hspec-expectations lens
+         neat-interpolation optparse-applicative process QuickCheck shake
+         text unordered-containers vector yaml
        ];
        description = "A tool and library for building virtual machine images";
        license = stdenv.lib.licenses.mit;
@@ -36390,8 +36796,8 @@ self: {
      }:
      mkDerivation {
        pname = "backprop";
-       version = "0.2.6.3";
-       sha256 = "0zk3k20c100iwqcvg1xw2vdysn01w4h9jypz08xs849n1a3bp7di";
+       version = "0.2.6.4";
+       sha256 = "0wc71r6l5qgkspl5v76f1d75xwir9jp5kzdl83rq5sviggd458v9";
        libraryHaskellDepends = [
          base containers deepseq microlens primitive reflection transformers
          vector vinyl
@@ -36429,6 +36835,21 @@ self: {
        broken = true;
      }) {};
 
+  "backtracking" = callPackage
+    ({ mkDerivation, base, primes, tasty, tasty-discover, tasty-hunit
+     , transformers
+     }:
+     mkDerivation {
+       pname = "backtracking";
+       version = "0.1.0";
+       sha256 = "0l1isnnld8drsb8jqkf6zd8v61gcy172zk8zdr21yawnkwfr057b";
+       libraryHaskellDepends = [ base transformers ];
+       testHaskellDepends = [ base primes tasty tasty-hunit ];
+       testToolDepends = [ tasty-discover ];
+       description = "A backtracking monad";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "backtracking-exceptions" = callPackage
     ({ mkDerivation, base, either, free, kan-extensions, mtl
      , semigroupoids, semigroups, transformers
@@ -36740,8 +37161,8 @@ self: {
     ({ mkDerivation, base, containers, hspec, QuickCheck, time }:
      mkDerivation {
        pname = "bank-holidays-england";
-       version = "0.2.0.4";
-       sha256 = "1lqjcpxacjkvgy0900av004xsshyjqx1hq1q0ig42f8r6r4cnf3m";
+       version = "0.2.0.5";
+       sha256 = "0n7q9s1vsmh5adkhpgycz8y6q49xqf77fpmm73cw0iqgjly4x9hp";
        libraryHaskellDepends = [ base containers time ];
        testHaskellDepends = [ base containers hspec QuickCheck time ];
        description = "Calculation of bank holidays in England and Wales";
@@ -36775,8 +37196,8 @@ self: {
      }:
      mkDerivation {
        pname = "barbies";
-       version = "2.0.1.0";
-       sha256 = "0d2a1d9w8xlviarlrrnlrfs82zf6gzxv09i6sa4ci1bl8df64wmj";
+       version = "2.0.2.0";
+       sha256 = "0x9wn7whn36b4vsaq008zpcw47rs78dfqcysk8x7yhprxbzn7mi2";
        libraryHaskellDepends = [ base distributive transformers ];
        testHaskellDepends = [
          base distributive QuickCheck tasty tasty-hunit tasty-quickcheck
@@ -37127,6 +37548,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "base16_0_3_0_1" = callPackage
+    ({ mkDerivation, base, base16-bytestring, bytestring, criterion
+     , deepseq, primitive, QuickCheck, random-bytestring, tasty
+     , tasty-hunit, tasty-quickcheck, text, text-short
+     }:
+     mkDerivation {
+       pname = "base16";
+       version = "0.3.0.1";
+       sha256 = "10id9h9mas4kb4kfiz7hhp2hhwnb9mh92pr327c53jqxi4hazgnd";
+       libraryHaskellDepends = [
+         base bytestring deepseq primitive text text-short
+       ];
+       testHaskellDepends = [
+         base base16-bytestring bytestring QuickCheck random-bytestring
+         tasty tasty-hunit tasty-quickcheck text text-short
+       ];
+       benchmarkHaskellDepends = [
+         base base16-bytestring bytestring criterion deepseq
+         random-bytestring text
+       ];
+       description = "Fast RFC 4648-compliant Base16 encoding";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "base16-bytestring" = callPackage
     ({ mkDerivation, base, bytestring, ghc-prim }:
      mkDerivation {
@@ -37147,6 +37593,8 @@ self: {
        pname = "base16-lens";
        version = "0.1.2.0";
        sha256 = "1mgy1adhlw2sra8lfc2cklfn9w7jj2f9pilifnnfk2jq6hwalpn8";
+       revision = "1";
+       editedCabalFile = "0ann8lmr7w1p11c0yxb1q1j776hi1dj8xm6xg8c2nq3x396gcnlp";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base base16 bytestring lens text ];
        testHaskellDepends = [ base doctest lens ];
@@ -37154,6 +37602,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "base16-lens_0_1_3_0" = callPackage
+    ({ mkDerivation, base, base16, bytestring, Cabal, cabal-doctest
+     , doctest, lens, text, text-short
+     }:
+     mkDerivation {
+       pname = "base16-lens";
+       version = "0.1.3.0";
+       sha256 = "1612v5lj99szshz7vm3mr5p4xxcrga1xxcfm9q9zzpnyd5z5vkn2";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         base base16 bytestring lens text text-short
+       ];
+       testHaskellDepends = [ base doctest lens ];
+       description = "Optics for the Base16 library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "base32" = callPackage
     ({ mkDerivation, base, bytestring, criterion, deepseq, memory
      , random-bytestring, tasty, tasty-hunit, text
@@ -37173,6 +37639,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "base32_0_2_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, deepseq
+     , ghc-byteorder, memory, QuickCheck, random-bytestring, tasty
+     , tasty-hunit, tasty-quickcheck, text, text-short
+     }:
+     mkDerivation {
+       pname = "base32";
+       version = "0.2.0.0";
+       sha256 = "0xvilxcdcvz07f3qpad35whjd35c9ykicip2cdsd54ysxg71mwzm";
+       libraryHaskellDepends = [
+         base bytestring deepseq ghc-byteorder text text-short
+       ];
+       testHaskellDepends = [
+         base bytestring memory QuickCheck random-bytestring tasty
+         tasty-hunit tasty-quickcheck text text-short
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion deepseq memory random-bytestring text
+       ];
+       description = "Fast RFC 4648-compliant Base32 encoding";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "base32-bytestring" = callPackage
     ({ mkDerivation, base, bits-extras, bytestring, cpu, criterion
      , hspec, QuickCheck
@@ -37198,6 +37688,8 @@ self: {
        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 ];
@@ -37318,49 +37810,19 @@ self: {
 
   "base64" = callPackage
     ({ mkDerivation, base, base64-bytestring, bytestring, criterion
-     , deepseq, ghc-byteorder, memory, QuickCheck, quickcheck-instances
-     , random-bytestring, tasty, tasty-hunit, tasty-quickcheck, text
-     , text-short
-     }:
-     mkDerivation {
-       pname = "base64";
-       version = "0.4.2";
-       sha256 = "1q3cz1d2zj2bi57g4yrfk1bbfqrcppl6nh0g5fb5dpmf2wdrfv44";
-       revision = "3";
-       editedCabalFile = "1vjzv8d8yd18nz3pvm8003h3gnj1d45c6g74vd2qqawypwcwhm6b";
-       libraryHaskellDepends = [
-         base bytestring ghc-byteorder text text-short
-       ];
-       testHaskellDepends = [
-         base base64-bytestring bytestring QuickCheck quickcheck-instances
-         random-bytestring tasty tasty-hunit tasty-quickcheck text
-         text-short
-       ];
-       benchmarkHaskellDepends = [
-         base base64-bytestring bytestring criterion deepseq memory
-         random-bytestring text
-       ];
-       description = "A modern RFC 4648-compliant Base64 library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "base64_0_4_2_1" = callPackage
-    ({ mkDerivation, base, base64-bytestring, bytestring, criterion
-     , deepseq, ghc-byteorder, QuickCheck, quickcheck-instances
-     , random-bytestring, tasty, tasty-hunit, tasty-quickcheck, text
-     , text-short
+     , deepseq, ghc-byteorder, QuickCheck, random-bytestring, tasty
+     , tasty-hunit, tasty-quickcheck, text, text-short
      }:
      mkDerivation {
        pname = "base64";
-       version = "0.4.2.1";
-       sha256 = "14ssr4h59bx71fln3igi0nxrn749lqkanj49wahn77z3izm2s2xd";
+       version = "0.4.2.2";
+       sha256 = "05ins0i1561d4gfz6h7fxx8pj8i1qkskz8dgh8pfxa1llzmr856i";
        libraryHaskellDepends = [
-         base bytestring ghc-byteorder text text-short
+         base bytestring deepseq ghc-byteorder text text-short
        ];
        testHaskellDepends = [
-         base base64-bytestring bytestring QuickCheck quickcheck-instances
-         random-bytestring tasty tasty-hunit tasty-quickcheck text
-         text-short
+         base base64-bytestring bytestring QuickCheck random-bytestring
+         tasty tasty-hunit tasty-quickcheck text text-short
        ];
        benchmarkHaskellDepends = [
          base base64-bytestring bytestring criterion deepseq
@@ -37368,7 +37830,6 @@ self: {
        ];
        description = "Fast RFC 4648-compliant Base64 encoding";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "base64-bytes" = callPackage
@@ -37418,15 +37879,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "base64-bytestring_1_1_0_0" = callPackage
+  "base64-bytestring_1_2_0_0" = callPackage
     ({ mkDerivation, base, bytestring, containers, criterion, deepseq
      , HUnit, QuickCheck, split, test-framework, test-framework-hunit
      , test-framework-quickcheck2
      }:
      mkDerivation {
        pname = "base64-bytestring";
-       version = "1.1.0.0";
-       sha256 = "1adcnkcx4nh3d59k94bkndj0wkgbvchz576qwlpaa7148a86q391";
+       version = "1.2.0.0";
+       sha256 = "1vz4dbbsymjrw5dmb62yw41v126narlb3dpa037hgldlw1fw2iip";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [
          base bytestring containers HUnit QuickCheck split test-framework
@@ -37449,8 +37910,8 @@ self: {
        pname = "base64-bytestring-type";
        version = "1.0.1";
        sha256 = "03kq4rjj6by02rf3hg815jfdqpdk0xygm5f46r2pn8mb99yd01zn";
-       revision = "6";
-       editedCabalFile = "05z53pc1gi62lzl262mc1qx12qqrds6ab6rflwpfcxbp0a67c825";
+       revision = "7";
+       editedCabalFile = "1vry5qh9w1adwyfrlx8x2772knwmdvxgq2nfzng7vybll2cqph4c";
        libraryHaskellDepends = [
          aeson base base-compat base64-bytestring binary bytestring cereal
          deepseq hashable http-api-data QuickCheck serialise text
@@ -37815,15 +38276,16 @@ self: {
 
   "battleplace" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cereal, data-default
-     , hashable, memory, servant, text, vector
+     , hashable, memory, servant, swagger2, template-haskell, text
+     , vector
      }:
      mkDerivation {
        pname = "battleplace";
-       version = "0.1.0.9";
-       sha256 = "1m6nk9zjsckd3s27hmmr2jy6v28bp7n1d6wriqfmhzw7rzydrgjl";
+       version = "0.1.0.10";
+       sha256 = "0a1a7bw30wz0hv5n78l58h5qmr6k5x58dnijll7dgksm51g7c3j8";
        libraryHaskellDepends = [
          aeson base bytestring cereal data-default hashable memory servant
-         text vector
+         swagger2 template-haskell text vector
        ];
        description = "Core definitions for BattlePlace.io service";
        license = stdenv.lib.licenses.mit;
@@ -38411,6 +38873,34 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "bech32_1_1_0" = callPackage
+    ({ mkDerivation, array, base, base58-bytestring, bytestring
+     , containers, deepseq, extra, hspec, hspec-discover, memory
+     , optparse-applicative, process, QuickCheck, text, vector
+     }:
+     mkDerivation {
+       pname = "bech32";
+       version = "1.1.0";
+       sha256 = "0s7kqy128k71rnpv22awf643djhsyd8ipihx38lvslsxk8klr8i0";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base bytestring containers extra text
+       ];
+       executableHaskellDepends = [
+         base base58-bytestring bytestring extra memory optparse-applicative
+         text
+       ];
+       testHaskellDepends = [
+         base base58-bytestring bytestring containers deepseq extra hspec
+         memory process QuickCheck text vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Implementation of the Bech32 cryptocurrency address format (BIP 0173)";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "bech32-th" = callPackage
     ({ mkDerivation, base, bech32, hspec, hspec-discover
      , template-haskell, text
@@ -38534,8 +39024,8 @@ self: {
        pname = "bench";
        version = "1.0.12";
        sha256 = "1sy97qpv6paar2d5syppk6lc06wjx6qyz5aidsmh30jq853nydx6";
-       revision = "1";
-       editedCabalFile = "0sk6vkjwk7g1diwah67ifj7s69qvwi52ngaijkfx5prn0vz24ldn";
+       revision = "2";
+       editedCabalFile = "055482m81h7pijiszdkk2k65p208i3c3pxs955pv6h0gwrialcsh";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -39071,6 +39561,8 @@ self: {
        pname = "bifunctors";
        version = "5.5.7";
        sha256 = "0cimvd64jzd6dyxjw2kx8wqhd1x0z89pj0ppmsikj4afa3aa5cw8";
+       revision = "1";
+       editedCabalFile = "01jlhshvacdc9pi5il7jd6sphg33nf0iy3nlfkgn19xsrbc7168p";
        libraryHaskellDepends = [
          base base-orphans comonad containers tagged template-haskell
          th-abstraction transformers
@@ -39532,13 +40024,20 @@ self: {
      }) {};
 
   "binary-io" = callPackage
-    ({ mkDerivation, base, binary, bytestring, hspec, process }:
+    ({ mkDerivation, async, base, binary, bytestring, concurrency
+     , deque, exceptions, hspec, process, stm, transformers
+     }:
      mkDerivation {
        pname = "binary-io";
-       version = "0.2.0";
-       sha256 = "1m58zjavqcri55diwz6fspbg5qx3qj3b82ch1g740zdr27ly0bwn";
-       libraryHaskellDepends = [ base binary bytestring ];
-       testHaskellDepends = [ base binary bytestring hspec process ];
+       version = "0.4.0";
+       sha256 = "0yqxrzkria4bycc23ywc6cz12n15cr3lmmcphamwr0ngdgn1lf9i";
+       libraryHaskellDepends = [
+         base binary bytestring concurrency deque exceptions process
+         transformers
+       ];
+       testHaskellDepends = [
+         async base binary bytestring hspec process stm
+       ];
        description = "Read and write values of types that implement Binary";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -39869,8 +40368,8 @@ self: {
     ({ mkDerivation, base, binaryen }:
      mkDerivation {
        pname = "binaryen";
-       version = "0.0.1.1";
-       sha256 = "059j67lq63nzyivsmkwblsmbw8f3x079bng9cb174snp8yra8v8k";
+       version = "0.0.3.0";
+       sha256 = "08pdk57q4n49l3wyd9zbda4w5ci65ifq4yxscq61kkdqz8i4ggjs";
        libraryHaskellDepends = [ base ];
        librarySystemDepends = [ binaryen ];
        description = "Haskell bindings to binaryen";
@@ -41148,8 +41647,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "birds-of-paradise";
-       version = "0.1.1.0";
-       sha256 = "1s7d10m6p9zw9m3mkf20k45nna3ayvb4y2r9z3vslm9ahqazk5l8";
+       version = "0.2.0.0";
+       sha256 = "1jkj8li8yxl9kk5i8p63p9jkdcvdznmh473n12dxzimxnh15sf1y";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "Birds of Paradise";
@@ -41205,8 +41704,8 @@ self: {
      }:
      mkDerivation {
        pname = "bishbosh";
-       version = "0.0.0.4";
-       sha256 = "0d9mn2jn1iv9x41c1yskfkx9d7papwn863gc1wffcb6aw8wg4mrz";
+       version = "0.0.0.6";
+       sha256 = "0gax0q1i86m0zb3gwfwmy59z8jnpri96dd9y73xbjyy4cjnwc32m";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -41225,6 +41724,8 @@ self: {
        ];
        description = "Plays chess";
        license = "GPL";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "bit-array" = callPackage
@@ -41834,18 +42335,20 @@ self: {
 
   "bitset-word8" = callPackage
     ({ mkDerivation, base, bytestring, containers, criterion, deepseq
-     , hspec, QuickCheck, template-haskell, th-lift-instances, vector
+     , hspec, hspec-discover, QuickCheck, template-haskell
+     , th-lift-instances, vector
      }:
      mkDerivation {
        pname = "bitset-word8";
-       version = "0.1.1.1";
-       sha256 = "1pjjpqfqjnylfs5npnh7w75h9xk5gpkwzaqx0a972wa9h18gih7z";
+       version = "0.1.1.2";
+       sha256 = "06axklmjzwq2s9s3p5m5z0isl4smxhs8hij7zm9c7pd5hj7xhipj";
        libraryHaskellDepends = [
          base containers template-haskell th-lift-instances
        ];
        testHaskellDepends = [
          base containers hspec QuickCheck template-haskell th-lift-instances
        ];
+       testToolDepends = [ hspec-discover ];
        benchmarkHaskellDepends = [
          base bytestring containers criterion deepseq template-haskell
          th-lift-instances vector
@@ -42253,8 +42756,8 @@ self: {
        pname = "blank-canvas";
        version = "0.7.1";
        sha256 = "02w428jpb49yaqzw93121lf1m4pjxi8wniqhnrvqh2zh63gsfws1";
-       revision = "2";
-       editedCabalFile = "0rvdgsmlfkk135qx0y0df5r7sw9xv5i89r84q5ylf32icsivlrr7";
+       revision = "3";
+       editedCabalFile = "1l2xcvms2jw10c4jvnc3kldk21vqcchckms0bawrcf908yhq525g";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base base-compat-batteries base64-bytestring bytestring
@@ -42621,8 +43124,8 @@ self: {
      }:
      mkDerivation {
        pname = "blaze-markup";
-       version = "0.8.2.5";
-       sha256 = "0qbnydx79pappwd4mzmmqq0pilpkiq7f6rqmqzpi2jjyfxlbmlqv";
+       version = "0.8.2.7";
+       sha256 = "1r4fij8qs1z4dfrh6cjzjbnx9f3jyx01zgj15wvy961d8bnqjr4b";
        libraryHaskellDepends = [ base blaze-builder bytestring text ];
        testHaskellDepends = [
          base blaze-builder bytestring containers HUnit QuickCheck tasty
@@ -43072,6 +43575,58 @@ self: {
        broken = true;
      }) {};
 
+  "blucontrol" = callPackage
+    ({ mkDerivation, base, containers, data-default, deepseq, directory
+     , filepath, finite-typelits, hspec, libX11, libXrandr, lifted-base
+     , monad-control, mtl, process, QuickCheck, text, time, transformers
+     , transformers-base, unix, X11
+     }:
+     mkDerivation {
+       pname = "blucontrol";
+       version = "0.2.1.1";
+       sha256 = "087bk9fxjgavrprba7ffyb91jv7ms8k7mlq9s5963lkpdf5636n7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers data-default deepseq directory filepath
+         finite-typelits lifted-base monad-control mtl process text time
+         transformers transformers-base unix X11
+       ];
+       librarySystemDepends = [ libX11 libXrandr ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base data-default deepseq hspec mtl QuickCheck time
+       ];
+       description = "Configurable blue light filter";
+       license = stdenv.lib.licenses.bsd3;
+     }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXrandr;};
+
+  "bludigon" = callPackage
+    ({ mkDerivation, base, containers, data-default, deepseq, directory
+     , filepath, finite-typelits, hspec, libX11, libXrandr, lifted-base
+     , monad-control, mtl, process, QuickCheck, text, time, transformers
+     , transformers-base, unix, X11
+     }:
+     mkDerivation {
+       pname = "bludigon";
+       version = "0.1.1.0";
+       sha256 = "1l6rc79wb9822qjrs9zvm53qp6dd0h8lp5sln55wqa0qzq5xq9mk";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers data-default deepseq directory filepath
+         finite-typelits lifted-base monad-control mtl process text time
+         transformers transformers-base unix X11
+       ];
+       librarySystemDepends = [ libX11 libXrandr ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base data-default deepseq hspec mtl QuickCheck time
+       ];
+       description = "Configurable blue light filter";
+       license = stdenv.lib.licenses.bsd3;
+     }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXrandr;};
+
   "bluemix-sdk" = callPackage
     ({ mkDerivation, aeson, base, bytestring, http-client, http-types
      , text, vector
@@ -43563,8 +44118,8 @@ self: {
      }:
      mkDerivation {
        pname = "boolector";
-       version = "0.0.0.11";
-       sha256 = "1mj6pjh4vg7dziil68p8k60sn6s721jxdgpsq9kk1h05v67lh5fz";
+       version = "0.0.0.13";
+       sha256 = "0by1pw9i0f9kb81pd3ivi0rz9yxxzvmlg338p45wqf1k583c6jrg";
        libraryHaskellDepends = [
          base containers directory mtl temporary time
        ];
@@ -44087,34 +44642,74 @@ self: {
      }) {};
 
   "box" = callPackage
-    ({ mkDerivation, async, attoparsec, base, concurrency
-     , contravariant, dejafu, doctest, exceptions, foldl, generic-lens
-     , lens, managed, mtl, pipes, profunctors, protolude, random
-     , streaming, text, time, transformers, transformers-base
-     , typed-process, websockets
+    ({ mkDerivation, attoparsec, base, comonad, concurrency
+     , contravariant, dejafu, doctest, exceptions, generic-lens, lens
+     , mmorph, mtl, numhask, optparse-generic, profunctors, random, text
+     , time, transformers, transformers-base, websockets
      }:
      mkDerivation {
        pname = "box";
-       version = "0.4.0";
-       sha256 = "0vacsh2b6sdsy360513hpij5bdwr74x0aawfm64m7iw3a7909fpj";
+       version = "0.6.0";
+       sha256 = "0kv3j0fh2ahn4x2lgpghhkrbw5y1cy5mdlrriycqv4slrdzaqyks";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async attoparsec base concurrency contravariant exceptions foldl
-         lens pipes profunctors protolude streaming text time transformers
-         transformers-base typed-process
+         attoparsec base comonad concurrency contravariant exceptions lens
+         mmorph numhask profunctors text time transformers transformers-base
        ];
        executableHaskellDepends = [
-         base concurrency dejafu generic-lens lens managed mtl protolude
-         random streaming text transformers websockets
+         base concurrency dejafu exceptions generic-lens lens mtl numhask
+         optparse-generic random text transformers websockets
        ];
-       testHaskellDepends = [ base doctest ];
+       testHaskellDepends = [ base doctest numhask ];
        description = "boxes";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
+  "box-csv" = callPackage
+    ({ mkDerivation, attoparsec, base, box, doctest, generic-lens, lens
+     , numhask, scientific, text, time
+     }:
+     mkDerivation {
+       pname = "box-csv";
+       version = "0.0.2";
+       sha256 = "09qmxd9mxyag6zx8y5yv7bphycbs35zfkkf7kvkdmjqdk7l7b0fd";
+       libraryHaskellDepends = [
+         attoparsec base box generic-lens lens numhask scientific text time
+       ];
+       testHaskellDepends = [ base doctest numhask ];
+       description = "See readme.md";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "box-socket" = callPackage
+    ({ mkDerivation, base, box, concurrency, doctest, exceptions
+     , generic-lens, lens, numhask, optparse-generic, websockets
+     }:
+     mkDerivation {
+       pname = "box-socket";
+       version = "0.0.2";
+       sha256 = "0wf7smpzczqm0yqnphmp46bgm67nyhj0swn0vxhdgb8z0362szsp";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base box concurrency exceptions generic-lens lens numhask
+         websockets
+       ];
+       executableHaskellDepends = [
+         base box concurrency generic-lens lens numhask optparse-generic
+       ];
+       testHaskellDepends = [ base doctest numhask ];
+       description = "See readme.md";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "box-tuples" = callPackage
     ({ mkDerivation, base, ghc-prim }:
      mkDerivation {
@@ -44336,7 +44931,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "brick_0_54" = callPackage
+  "brick_0_55" = callPackage
     ({ mkDerivation, base, bytestring, config-ini, containers
      , contravariant, data-clist, deepseq, directory, dlist, exceptions
      , filepath, microlens, microlens-mtl, microlens-th, QuickCheck, stm
@@ -44345,8 +44940,10 @@ self: {
      }:
      mkDerivation {
        pname = "brick";
-       version = "0.54";
-       sha256 = "10a20w01wyi6rg883s9gcgkyr8vn317y67bmf7wa71lrhl283khv";
+       version = "0.55";
+       sha256 = "0n51vh8j75a2b6qbfah9k9zrp15m4rkq7fywpp811v93h8zf02fy";
+       revision = "1";
+       editedCabalFile = "1kn5nksvds8njy8zv7bq7gankngfam3dl1if0qvlhsfdl3n3d1zr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -44698,19 +45295,19 @@ self: {
 
   "brok" = callPackage
     ({ mkDerivation, ansi-terminal, attoparsec, base, classy-prelude
-     , connection, directory, file-embed, http-client, http-client-tls
-     , http-conduit, tasty, tasty-discover, tasty-expected-failure
-     , tasty-hunit, template-haskell, text, time
+     , connection, containers, directory, file-embed, http-client
+     , http-client-tls, http-conduit, tasty, tasty-discover
+     , tasty-expected-failure, tasty-hunit, template-haskell, text, time
      }:
      mkDerivation {
        pname = "brok";
-       version = "1.0.0";
-       sha256 = "07zi88xsacacqw6mg87ipic5y72vjpn9mx789bk9gk4jvd69z7x1";
+       version = "1.1.0";
+       sha256 = "0y8gppdyhwwlpw3d0kii2varqd25lxq3813xnjm632h4942l76xv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         ansi-terminal attoparsec base classy-prelude connection directory
-         file-embed http-client http-client-tls http-conduit
+         ansi-terminal attoparsec base classy-prelude connection containers
+         directory file-embed http-client http-client-tls http-conduit
          template-haskell text time
        ];
        executableHaskellDepends = [ base classy-prelude file-embed ];
@@ -44926,8 +45523,8 @@ self: {
     ({ mkDerivation, base, bson, ghc-prim, text }:
      mkDerivation {
        pname = "bson-generic";
-       version = "0.0.8.1";
-       sha256 = "0zl74si1cxpdj3sl7mmrdsdjk8iqpy14y6bgjhj350bx1hb8v7wv";
+       version = "0.0.9";
+       sha256 = "11a8k6rngz5rdgccwnifiydsfc87hlgy4mp6chi30m2jvdq92imb";
        libraryHaskellDepends = [ base bson ghc-prim text ];
        description = "Generic functionality for BSON";
        license = stdenv.lib.licenses.bsd3;
@@ -45335,6 +45932,28 @@ self: {
        broken = true;
      }) {};
 
+  "bugzilla-redhat" = callPackage
+    ({ mkDerivation, aeson, base, blaze-builder, bytestring, connection
+     , containers, http-conduit, http-types, iso8601-time, resourcet
+     , text, time, transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "bugzilla-redhat";
+       version = "0.3.0";
+       sha256 = "1d751f1219ivx9bfdl7xb89w2vns07ciqp4cqcykixnllx2jx18y";
+       revision = "1";
+       editedCabalFile = "145sdnk28sxwz4s1gh0qq6vzm9q6s5433q6w1199cv9585b53kcx";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base blaze-builder bytestring connection containers
+         http-conduit http-types iso8601-time resourcet text time
+         transformers unordered-containers vector
+       ];
+       description = "A Haskell interface to the Bugzilla native REST API";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "build" = callPackage
     ({ mkDerivation, algebraic-graphs, base, containers, extra
      , filepath, mtl, random, transformers
@@ -45594,8 +46213,8 @@ self: {
      }:
      mkDerivation {
        pname = "burrito";
-       version = "1.1.0.1";
-       sha256 = "197lchafv56g8kcxzfgdgkcygi5f8bddxqzhbsvb8c0gwlv7g270";
+       version = "1.2.0.0";
+       sha256 = "1nrb08czlnfcgb7v59vzkffik2w5yp833la4mq6sp6sgnm0ylgya";
        libraryHaskellDepends = [
          base bytestring containers parsec template-haskell text
          transformers
@@ -45693,15 +46312,15 @@ self: {
      }) {};
 
   "bustle" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, cairo, containers, dbus
-     , directory, filepath, gio, glib, gtk3, HUnit, mtl, pango, pcap
-     , process, QuickCheck, system-glib, test-framework
-     , test-framework-hunit, text, time
+    ({ mkDerivation, base, bytestring, Cabal, cairo, containers
+     , directory, filepath, gio, gio-unix, glib, gtk3, HUnit, libpcap
+     , mtl, pango, process, QuickCheck, system-glib, test-framework
+     , test-framework-hunit, text, time, transformers
      }:
      mkDerivation {
        pname = "bustle";
-       version = "0.7.5";
-       sha256 = "0r0ng67b2q9ww0adv1fdrpmgmdyjqv6ksd9g6kkn9cjwnaascq3p";
+       version = "0.8.0";
+       sha256 = "0g2p4s3z0xqng8bhcqml6dvvshmn8xlyhqz77jdcvcvxm7cykcrg";
        configureFlags = [ "-f-hgettext" ];
        isLibrary = false;
        isExecutable = true;
@@ -45709,16 +46328,23 @@ self: {
        setupHaskellDepends = [ base Cabal directory filepath process ];
        libraryPkgconfigDepends = [ system-glib ];
        executableHaskellDepends = [
-         base bytestring cairo containers dbus directory filepath gio glib
-         gtk3 mtl pango pcap process text time
+         base bytestring cairo containers directory filepath gio glib gtk3
+         mtl pango process text time transformers
        ];
+       executableSystemDepends = [ libpcap ];
        testHaskellDepends = [
-         base bytestring cairo containers dbus directory filepath gtk3 HUnit
-         mtl pango pcap QuickCheck test-framework test-framework-hunit text
+         base bytestring cairo containers directory filepath glib gtk3 HUnit
+         mtl pango QuickCheck test-framework test-framework-hunit text
+         transformers
        ];
+       testSystemDepends = [ libpcap ];
+       testPkgconfigDepends = [ gio-unix ];
        description = "Draw sequence diagrams of D-Bus traffic";
        license = stdenv.lib.licenses.lgpl21Plus;
-     }) {system-glib = pkgs.glib;};
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {gio-unix = null; inherit (pkgs) libpcap; 
+         system-glib = pkgs.glib;};
 
   "butcher" = callPackage
     ({ mkDerivation, base, bifunctors, containers, deque, extra, free
@@ -45844,8 +46470,8 @@ self: {
      }:
      mkDerivation {
        pname = "bv-sized";
-       version = "1.0.1";
-       sha256 = "12l69p95z1ihwbfhlm0wyr1bdhs52ng4fvdsqxhgn0bpx9skzw73";
+       version = "1.0.2";
+       sha256 = "0lx7cm7404r71ciksv8g58797k6x02zh337ra88syhj7nzlnij5w";
        libraryHaskellDepends = [
          base bitwise bytestring panic parameterized-utils th-lift
        ];
@@ -45859,21 +46485,27 @@ self: {
      }) {};
 
   "byline" = callPackage
-    ({ mkDerivation, ansi-terminal, base, colour, containers
-     , exceptions, haskeline, mtl, terminfo-hs, text, transformers
+    ({ mkDerivation, ansi-terminal, base, colour, exceptions, free
+     , haskeline, mtl, relude, tasty, tasty-hunit, terminfo-hs, text
      }:
      mkDerivation {
        pname = "byline";
-       version = "0.4.0.0";
-       sha256 = "1q8xb5b194ywm1sacxx47yhicww3m9hpffidgpj6l79fjqivgv09";
+       version = "1.0.0.0";
+       sha256 = "1jwjdjiraq37pr2ysc9h5qqlma6j7rd2dkip2y2f6bx07d1v7fpr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         ansi-terminal base colour containers exceptions haskeline mtl
-         terminfo-hs text transformers
+         ansi-terminal base colour exceptions free haskeline mtl relude
+         terminfo-hs text
+       ];
+       testHaskellDepends = [
+         ansi-terminal base colour exceptions free haskeline mtl relude
+         tasty tasty-hunit terminfo-hs text
        ];
        description = "Library for creating command-line interfaces (colors, menus, etc.)";
        license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "bytable" = callPackage
@@ -45894,8 +46526,8 @@ self: {
      }:
      mkDerivation {
        pname = "byte-count-reader";
-       version = "0.10.0.1";
-       sha256 = "0ibckpy0wz2f8590z92lvkmwcf29lv6sby1y3cz3cihxvp3bw3il";
+       version = "0.10.1.1";
+       sha256 = "0amzhcy60rmiyfp7cgdg7g1xcf7z5zz43kg18i1bwwj565ipb6p8";
        libraryHaskellDepends = [ base extra parsec parsec-numbers text ];
        testHaskellDepends = [
          base extra hspec parsec parsec-numbers text
@@ -45951,8 +46583,8 @@ self: {
      }:
      mkDerivation {
        pname = "bytebuild";
-       version = "0.3.5.0";
-       sha256 = "15ccfbhrvb6pj9py99qpbdrrfla83797ywmxjry2c7raaz3kpr73";
+       version = "0.3.6.0";
+       sha256 = "15nk9r9mx798kmjl04qf01il1csfjyi3jx44yhi4hmgl66p9fdx3";
        libraryHaskellDepends = [
          base byteslice bytestring integer-logarithms natural-arithmetic
          primitive primitive-offset primitive-unlifted run-st text-short
@@ -46024,6 +46656,8 @@ self: {
        ];
        description = "Fast logging";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "byteorder" = callPackage
@@ -46102,8 +46736,8 @@ self: {
      }:
      mkDerivation {
        pname = "bytesmith";
-       version = "0.3.6.0";
-       sha256 = "0idkkmmw5n8dv7hx236s1543n0k6gsj9s0yk6fggbaqydlsxn641";
+       version = "0.3.7.0";
+       sha256 = "13dc4cwiga63wmnw9hl332d8gvqjl4yl0p09z2pkmwl81br7ybrc";
        libraryHaskellDepends = [
          base byteslice bytestring contiguous primitive run-st text-short
          wide-word
@@ -46119,21 +46753,13 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "bytestring_0_10_10_0" = callPackage
-    ({ mkDerivation, base, byteorder, deepseq, directory, dlist
-     , ghc-prim, HUnit, integer-gmp, mtl, QuickCheck, random
-     , test-framework, test-framework-hunit, test-framework-quickcheck2
-     }:
+  "bytestring_0_10_12_0" = callPackage
+    ({ mkDerivation, base, deepseq, ghc-prim, integer-gmp }:
      mkDerivation {
        pname = "bytestring";
-       version = "0.10.10.0";
-       sha256 = "1h94lyyn4fpklm25dsazj9za08m0vz9irafpza90h9j5wx4qpndq";
+       version = "0.10.12.0";
+       sha256 = "1s1kgnqb8ybz223sf2838mmxnlhwsd3lnakng6ap38m058bzzj7d";
        libraryHaskellDepends = [ base deepseq ghc-prim integer-gmp ];
-       testHaskellDepends = [
-         base byteorder deepseq directory dlist ghc-prim HUnit mtl
-         QuickCheck random test-framework test-framework-hunit
-         test-framework-quickcheck2
-       ];
        description = "Fast, compact, strict and lazy byte strings with a list interface";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -46790,8 +47416,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "c-storable";
-       version = "0.2";
-       sha256 = "03ynlm6nbm2hsqp0bpcqj3kp1hbg2pnif44zrgj8rda8dmsczm9j";
+       version = "0.3";
+       sha256 = "0i39cm4sgd8bmx8yhfbdm8625fvig12f5m709v6603v7qdzlygz4";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base ];
        description = "CStorable class";
@@ -47050,8 +47676,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-bounds";
-       version = "2.2.1";
-       sha256 = "13pqdmghs92rwkg8fkky30sqimq54yzw2y1z5czdsmlj46r8i6ij";
+       version = "2.3.0";
+       sha256 = "106q5imjznbh7x2pvvgfsn8qx1awb00w0mgfrkkzbwnwc3g8jnw3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47062,10 +47688,8 @@ self: {
        testHaskellDepends = [
          base directory filepath Glob process tasty tasty-golden
        ];
-       description = "A command line program for managing the bounds/versions of the dependencies in a cabal file";
+       description = "A command line program for managing the dependency versions in a cabal file";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "cabal-build-programs" = callPackage
@@ -47111,8 +47735,8 @@ self: {
        pname = "cabal-cache";
        version = "1.0.1.8";
        sha256 = "0yxq73bdw1ai0yv54prcxpm1ygkpa8m0jnznwm975b82qlmplynw";
-       revision = "1";
-       editedCabalFile = "1rikn1g6v8yga0cs031ckxywfcf9g21ww9s5rkjf6lr4xvfqps2s";
+       revision = "2";
+       editedCabalFile = "1y4zfnr2a5w8kvwvk1dbzv0ik5b2wdlx8z2p6n9k5mzax952s689";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47143,8 +47767,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-cargs";
-       version = "1.2.0";
-       sha256 = "10dqy2i2rq4hq81v2gar2bsq3glx5yg5mwp9a0h7drap69407ygs";
+       version = "1.3.0";
+       sha256 = "08n2n0p3m282yx7cf1nzmlfmw0xikqwrj3l1s8jmx18z2gh0x1h4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47205,8 +47829,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-debian";
-       version = "5.0.2";
-       sha256 = "0586sjda7ar8p243m92csz3d35smpzlxvyh09rl4fllgzhazxn5f";
+       version = "5.0.3";
+       sha256 = "11imbizfa65fdqydpxvcdv0a80gsd6szzl33b312myw3il2xr5hi";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47220,6 +47844,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "cabal-debian_5_1" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, base, bifunctors, Cabal
+     , containers, data-default, debian, deepseq, Diff, directory
+     , exceptions, filepath, hsemail, HUnit, lens, mtl, network-uri
+     , newtype-generics, optparse-applicative, parsec, pretty, process
+     , pureMD5, regex-tdfa, syb, text, unix, unliftio, utf8-string
+     }:
+     mkDerivation {
+       pname = "cabal-debian";
+       version = "5.1";
+       sha256 = "14kh2s61m7wm9h0ms4dlpfvqr2gd8fv0w44ar3c3dg5053hwrvny";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-wl-pprint base bifunctors Cabal containers data-default debian
+         deepseq Diff directory exceptions filepath hsemail HUnit lens mtl
+         network-uri newtype-generics optparse-applicative parsec pretty
+         process pureMD5 regex-tdfa syb text unix unliftio utf8-string
+       ];
+       executableHaskellDepends = [ base Cabal debian lens mtl pretty ];
+       description = "Create a Debianization for a Cabal package";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "cabal-dependency-licenses" = callPackage
     ({ mkDerivation, base, Cabal, containers, directory, filepath }:
      mkDerivation {
@@ -47282,13 +47931,34 @@ self: {
        pname = "cabal-doctest";
        version = "1.0.8";
        sha256 = "03if74imlhhk7m56nci5f1wclniwqdmwl4hl177040j1gnlac9i0";
-       revision = "1";
-       editedCabalFile = "0z0r7h2y5six2zgfylcwr9g4j78qph35zqglk9lz4za1klvgdprl";
+       revision = "2";
+       editedCabalFile = "05v1awad3d1wvc763xcgvxm4n6n7bs7byc6s14kdbw35zcaddlcb";
        libraryHaskellDepends = [ base Cabal directory filepath ];
        description = "A Setup.hs helper for doctests running";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "cabal-edit" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, directory
+     , filepath, Glob, hackage-db, optparse-applicative, process, store
+     , time
+     }:
+     mkDerivation {
+       pname = "cabal-edit";
+       version = "0.1.0.0";
+       sha256 = "1irk50d1m0zzhp2s5c1qs4nq1ivp5638lapbzlc3ygx92nrskvr7";
+       revision = "1";
+       editedCabalFile = "176sa5lms18gxnswgfil2y1a7qf6w96wavb5kpwic05fnxw6s26m";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring Cabal containers directory filepath Glob hackage-db
+         optparse-applicative process store time
+       ];
+       description = "Cabal utility";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "cabal-file" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, directory, extra
      , filepath, hackage-security, optparse-applicative, simple-cabal
@@ -47337,8 +48007,8 @@ self: {
        pname = "cabal-flatpak";
        version = "0.1.0.2";
        sha256 = "1h7yklhqrsgxk841fryxz0sk03zb02p34g1nvwdz6c6mfpwc8y54";
-       revision = "1";
-       editedCabalFile = "0ba63swfx2xd6aw2iq1nkrl9932hvkn3lf7x74wqimcykm4vbws7";
+       revision = "2";
+       editedCabalFile = "0mf387hkxshcbss739c66j0hc1143r9lns3p3aw1l76as9lbdlwj";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -47358,8 +48028,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-fmt";
-       version = "0.1.3";
-       sha256 = "1d91kmx2q6ygx2avwgi9ihkdazngjf7i3ajyp3cmry5ahvv62x7z";
+       version = "0.1.4";
+       sha256 = "0akc63g7h21nyyr9m0dwjlnxqw8k26zx5s2mzn8zak2q9i88ds1b";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47370,7 +48040,8 @@ self: {
          base bytestring directory filepath optparse-applicative
        ];
        testHaskellDepends = [
-         base bytestring Cabal filepath process tasty tasty-golden
+         base bytestring Cabal containers filepath process tasty
+         tasty-golden
        ];
        doHaddock = false;
        description = "Format .cabal files";
@@ -47610,18 +48281,14 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-lenses";
-       version = "0.9.0";
-       sha256 = "0rvkwqzz92p85i9xwcxg3ah4imxh46ficg6yk0l6g9687970gfrg";
-       revision = "1";
-       editedCabalFile = "0snzm6qvalyczmdicff5fsradk3h1bm3cqcax6rmwzr7xa1j43p7";
+       version = "0.10.1";
+       sha256 = "0pjzz5d2s6b2xaqgb7z3ry5zpba84x3iy2hw3a7xq32ciyl3gnhb";
        libraryHaskellDepends = [
          base Cabal lens strict system-fileio system-filepath text
          transformers unordered-containers
        ];
        description = "Lenses and traversals for the Cabal library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "cabal-macosx" = callPackage
@@ -47722,8 +48389,8 @@ self: {
        pname = "cabal-plan";
        version = "0.7.0.0";
        sha256 = "1wv375dq50fibzg6xa9vrr8q4lhaqcl254b9a2vc42rrjvhxxmzc";
-       revision = "1";
-       editedCabalFile = "0gc64mgk11nszilkbid351zxh5cpy85kqcc3mrkrw2fsbcga08as";
+       revision = "2";
+       editedCabalFile = "1c3w9d75kqxhyafjyl8fyzbrp80idvhd693rsd08gws8blkk1vzr";
        configureFlags = [ "-fexe" ];
        isLibrary = true;
        isExecutable = true;
@@ -47774,18 +48441,19 @@ self: {
      }) {};
 
   "cabal-rpm" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, directory, filepath
-     , http-client, http-client-tls, http-conduit, optparse-applicative
-     , process, simple-cabal, simple-cmd, simple-cmd-args, time, unix
+    ({ 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.5.1";
-       sha256 = "1rpgl7msqr0v3rd11qyp05hv2crgmr59wk4jryx610f6mp7y5rrb";
+       version = "2.0.6";
+       sha256 = "1f27arazgv65ripbcjirs4hl5ywr7a7s0vcr5s7jd7176h8dr35b";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base bytestring Cabal directory filepath http-client
+         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
        ];
@@ -48100,8 +48768,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal2spec";
-       version = "2.6.1";
-       sha256 = "19azvrg20rsk95nfvwlamlz007ihpkra1wgvqpjkdimwr5q7837h";
+       version = "2.6.2";
+       sha256 = "0x1r01fk5mch76zindalvmlkfaca4y1x89zw2dm0d46fncsfgdrv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base Cabal filepath time ];
@@ -48456,6 +49124,22 @@ self: {
        broken = true;
      }) {};
 
+  "caerbannog" = callPackage
+    ({ mkDerivation, base, binary, bytestring, hspec, QuickCheck
+     , random
+     }:
+     mkDerivation {
+       pname = "caerbannog";
+       version = "0.6.0.3";
+       sha256 = "0mv10cc50365kz2ad36wivvhcyl43bwxjp71f0n9vq2ndrmb4dna";
+       libraryHaskellDepends = [ base binary bytestring ];
+       testHaskellDepends = [
+         base binary bytestring hspec QuickCheck random
+       ];
+       description = "That rabbit's got a vicious streak a mile wide!";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "caf" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -48703,27 +49387,27 @@ self: {
   "calamity" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, colour
      , concurrent-extra, containers, data-default-class, data-flags
-     , deepseq, deque, df1, di-polysemy, exceptions, fmt, focus
+     , deepseq, deque, df1, di-core, di-polysemy, exceptions, fmt, focus
      , generic-lens, generic-override, generic-override-aeson, hashable
-     , http-date, http-types, lens, lens-aeson, megaparsec, mtl
-     , polysemy, polysemy-plugin, reflection, safe-exceptions
+     , http-date, http-types, lens, lens-aeson, megaparsec, mime-types
+     , mtl, polysemy, polysemy-plugin, reflection, safe-exceptions
      , scientific, stm, stm-chans, stm-containers, text, text-show, time
-     , typerep-map, unagi-chan, unordered-containers, vector, websockets
-     , wreq-patchable, wuss
+     , typerep-map, unagi-chan, unboxing-vector, unordered-containers
+     , vector, websockets, wreq, wuss
      }:
      mkDerivation {
        pname = "calamity";
-       version = "0.1.16.0";
-       sha256 = "1gq8pbb9vag8xcq95a6f332g607mgfb93c5mjaivrqp38m0z3nv0";
+       version = "0.1.20.0";
+       sha256 = "0b11nkh4wynb8rdhn8qym5422l0nc49shkkp2mfbwh7yhmzaqwrh";
        libraryHaskellDepends = [
          aeson async base bytestring colour concurrent-extra containers
-         data-default-class data-flags deepseq deque df1 di-polysemy
+         data-default-class data-flags deepseq deque df1 di-core di-polysemy
          exceptions fmt focus generic-lens generic-override
          generic-override-aeson hashable http-date http-types lens
-         lens-aeson megaparsec mtl polysemy polysemy-plugin reflection
-         safe-exceptions scientific stm stm-chans stm-containers text
-         text-show time typerep-map unagi-chan unordered-containers vector
-         websockets wreq-patchable wuss
+         lens-aeson megaparsec mime-types mtl polysemy polysemy-plugin
+         reflection safe-exceptions scientific stm stm-chans stm-containers
+         text text-show time typerep-map unagi-chan unboxing-vector
+         unordered-containers vector websockets wreq wuss
        ];
        description = "A library for writing discord bots in haskell";
        license = stdenv.lib.licenses.mit;
@@ -48874,8 +49558,8 @@ self: {
      }:
      mkDerivation {
        pname = "call-alloy";
-       version = "0.2.0.4";
-       sha256 = "0j1vvnjvgjs11ffy7r5h87vsxywyp51cs8kvqlgi5vnlwb2zfxg9";
+       version = "0.2.0.5";
+       sha256 = "1qgvrvb9la7nsx04ql8qvlsavalyimbsc7j6pdc14pmyqnrh3y60";
        libraryHaskellDepends = [
          base bytestring containers directory file-embed filepath hashable
          lens mtl process split trifecta unix
@@ -49279,6 +49963,8 @@ self: {
        ];
        description = "OTP-like supervision trees in Haskell";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "capnp" = callPackage
@@ -49644,16 +50330,17 @@ self: {
 
   "casa-abbreviations-and-acronyms" = callPackage
     ({ mkDerivation, base, bytestring, containers, fuzzy, lens
-     , monoid-subclasses, optparse-applicative, these, wreq
+     , monoid-subclasses, optparse-applicative, profunctors, these, wreq
      }:
      mkDerivation {
        pname = "casa-abbreviations-and-acronyms";
-       version = "0.0.7";
-       sha256 = "16xdkbgym1jjqnmx10h3yfq2zw3mzpf7jskssf4nzm6dsvj1msp5";
+       version = "0.0.8";
+       sha256 = "01vfzkd8ap3ambsnzns6j537a21nvml0fa7qbqvk2knzhlyr7lv6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bytestring containers fuzzy lens monoid-subclasses these wreq
+         base bytestring containers fuzzy lens monoid-subclasses profunctors
+         these wreq
        ];
        executableHaskellDepends = [
          base bytestring containers fuzzy lens monoid-subclasses
@@ -50215,6 +50902,28 @@ self: {
        broken = true;
      }) {};
 
+  "cassava-conduit_0_6_0" = callPackage
+    ({ mkDerivation, array, base, bifunctors, bytestring, cassava
+     , conduit, containers, criterion, mtl, QuickCheck, text
+     }:
+     mkDerivation {
+       pname = "cassava-conduit";
+       version = "0.6.0";
+       sha256 = "114ab0kxy7rj1hps1sy9i0mkj2lp046zjlpll2apmf3mxdminva0";
+       libraryHaskellDepends = [
+         array base bifunctors bytestring cassava conduit containers mtl
+         text
+       ];
+       testHaskellDepends = [
+         base bytestring cassava conduit QuickCheck text
+       ];
+       benchmarkHaskellDepends = [ base criterion ];
+       description = "Conduit interface for cassava package";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "cassava-embed" = callPackage
     ({ mkDerivation, base, bytestring, cassava, template-haskell
      , vector
@@ -50233,6 +50942,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "cassava-generic" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cassava, data-default
+     , text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "cassava-generic";
+       version = "0.1.0.1";
+       sha256 = "0xm2ba4wmx5dbd83zpdyld65ga87fb9ja7hd33y5kba1zbw486g8";
+       libraryHaskellDepends = [
+         aeson base bytestring cassava data-default text
+         unordered-containers vector
+       ];
+       description = "Cassave instances for functor-like datatypes like `Either String a`";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "cassava-megaparsec" = callPackage
     ({ mkDerivation, base, bytestring, cassava, hspec, hspec-megaparsec
      , megaparsec, unordered-containers, vector
@@ -50717,10 +51442,8 @@ self: {
      }:
      mkDerivation {
        pname = "cborg";
-       version = "0.2.3.0";
-       sha256 = "14y7yckj1xzldadyq8g84dgsdaygf9ss0gd38vjfw62smdjq1in8";
-       revision = "1";
-       editedCabalFile = "0rwliw9xl6y5ypwcywlmr1adqi4c8zi0vghxxarkwh7s5ny34q9f";
+       version = "0.2.4.0";
+       sha256 = "0zrn75jx3lprdagl99r88jfhccalw783fn9jjk9zhy50zypkibil";
        libraryHaskellDepends = [
          array base bytestring containers deepseq ghc-prim half integer-gmp
          primitive text
@@ -51469,6 +52192,34 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "chainweb-mining-client" = callPackage
+    ({ mkDerivation, aeson, async, base, bytes, bytestring, Cabal
+     , configuration-tools, connection, containers, cryptonite
+     , exceptions, hashable, hostaddress, http-client, http-client-tls
+     , http-types, lens, loglevel, memory, mwc-random, process, retry
+     , stm, streaming, streaming-events, text, time
+     , unordered-containers, wai-extra
+     }:
+     mkDerivation {
+       pname = "chainweb-mining-client";
+       version = "0.2";
+       sha256 = "1zbqbc3icgz1fb0fgpfi1cf1i7pz2lf3wd82671ks1yixf893ypm";
+       isLibrary = false;
+       isExecutable = true;
+       setupHaskellDepends = [ base Cabal configuration-tools ];
+       executableHaskellDepends = [
+         aeson async base bytes bytestring configuration-tools connection
+         containers cryptonite exceptions hashable hostaddress http-client
+         http-client-tls http-types lens loglevel memory mwc-random process
+         retry stm streaming streaming-events text time unordered-containers
+         wai-extra
+       ];
+       description = "Mining Client for Kadena Chainweb";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "chalk" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -51754,34 +52505,57 @@ self: {
      }) {};
 
   "chart-svg" = callPackage
-    ({ mkDerivation, attoparsec, base, bifunctors, Color, containers
-     , foldl, generic-lens, javascript-bridge, lens, lucid, lucid-svg
-     , numhask-space, pretty-simple, protolude, scientific, scotty
-     , tagsoup, text, text-format, time, transformers
-     , unordered-containers, wai-middleware-static, web-rep
+    ({ mkDerivation, attoparsec, base, Color, containers, doctest
+     , generic-lens, lens, lucid, numhask, numhask-space, pretty-simple
+     , scientific, tagsoup, text, time, transformers
+     , unordered-containers, web-rep
      }:
      mkDerivation {
        pname = "chart-svg";
-       version = "0.0.3";
-       sha256 = "04p2ijvsf47j9r1hck5qby6w2x18r8mpk40pywc4wsbgxcdw6rfa";
+       version = "0.1.3";
+       sha256 = "0b3hpxm7xjw8pjhpcla46jdsjhqxxb3ga0jmmj97wn6w971yphi1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         attoparsec base bifunctors Color foldl generic-lens lens lucid
-         lucid-svg numhask-space pretty-simple protolude scientific tagsoup
-         text text-format time transformers web-rep
+         attoparsec base Color generic-lens lens lucid numhask numhask-space
+         pretty-simple scientific tagsoup text time transformers web-rep
        ];
        executableHaskellDepends = [
-         base bifunctors containers generic-lens javascript-bridge lens
-         lucid-svg numhask-space protolude scotty text transformers
-         unordered-containers wai-middleware-static web-rep
+         base containers generic-lens lens lucid numhask numhask-space text
+         transformers unordered-containers web-rep
        ];
+       testHaskellDepends = [ base doctest numhask ];
        description = "Charts in SVG";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
+  "chart-svg-various" = callPackage
+    ({ mkDerivation, base, box, box-csv, box-socket, chart-svg
+     , concurrency, doctest, foldl, lens, lucid, mealy, numhask
+     , numhask-array, numhask-space, text, time, transformers
+     , unordered-containers, web-rep
+     }:
+     mkDerivation {
+       pname = "chart-svg-various";
+       version = "0.0.2";
+       sha256 = "0ckh66pm4f3wp2w08z8bfjbwbxssp74g5chwpk9q9n786iaq9x90";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base box box-csv box-socket chart-svg concurrency foldl lens lucid
+         mealy numhask numhask-array numhask-space text time transformers
+         unordered-containers web-rep
+       ];
+       executableHaskellDepends = [ base numhask ];
+       testHaskellDepends = [ base doctest numhask ];
+       description = "See readme.md";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "chart-unit" = callPackage
     ({ mkDerivation, base, colour, data-default, diagrams-lib
      , diagrams-svg, doctest, foldl, formatting, generic-lens, lens
@@ -52177,8 +52951,8 @@ self: {
      }:
      mkDerivation {
        pname = "chessIO";
-       version = "0.3.1.1";
-       sha256 = "05jwz1nq5wiqdpnwn31wyc4gpryh9b4qzil4rkgx7vhavck2w1ap";
+       version = "0.3.1.2";
+       sha256 = "0x79cgngxbrk43f28pprqq85n54cg2i2chhpycdcnkx16iva5bbf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -52621,14 +53395,14 @@ self: {
      }:
      mkDerivation {
        pname = "chronologique";
-       version = "0.3.1.1";
-       sha256 = "05ly96mdm4nxmn7yz04wq9kgzlq8biaaaxs1mvsc3f8wgcpbqf65";
+       version = "0.3.1.3";
+       sha256 = "0bb75dijnjnhvgik4qf0zqj9q2wfdqyx70gs18cbxkrqg9956fwh";
        libraryHaskellDepends = [ aeson base hourglass text time vector ];
        testHaskellDepends = [
          aeson base bytestring hourglass hspec QuickCheck vector
        ];
        description = "Time to manipulate time";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.mit;
      }) {};
 
   "chronos" = callPackage
@@ -52961,6 +53735,8 @@ self: {
        pname = "cipher-aes128";
        version = "0.7.0.5";
        sha256 = "1bafr5aa9mjfzdgc6gwapvb9g04pyh4lwhv2x2m1v3ljjglg9d1w";
+       revision = "1";
+       editedCabalFile = "0miqp8jvgsqkgj5rxb2vjwa24ac5kdyy3b2cwxb9z0wk1ixk5ilm";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal process ];
@@ -53360,13 +54136,13 @@ self: {
      }) {};
 
   "cl3" = callPackage
-    ({ mkDerivation, base, criterion, QuickCheck, random }:
+    ({ mkDerivation, base, criterion, deepseq, random }:
      mkDerivation {
        pname = "cl3";
-       version = "1.0.0.4";
-       sha256 = "18q5r2m4sr7h8z35nivq2fndmxamyw3217j11na4gq361rq1340v";
-       libraryHaskellDepends = [ base random ];
-       testHaskellDepends = [ base QuickCheck ];
+       version = "2.0.0.0";
+       sha256 = "0ibril0fjhm848za1grvpi6pdcshbxbfjwkflzh7zw4b9y5b7g89";
+       libraryHaskellDepends = [ base deepseq random ];
+       testHaskellDepends = [ base criterion random ];
        benchmarkHaskellDepends = [ base criterion ];
        description = "Clifford Algebra of three dimensional space";
        license = stdenv.lib.licenses.bsd3;
@@ -53376,8 +54152,8 @@ self: {
     ({ mkDerivation, base, cl3, hmatrix }:
      mkDerivation {
        pname = "cl3-hmatrix-interface";
-       version = "1.0.0.1";
-       sha256 = "1fixwb8y2v0zwww6p08rwsq7wfz63aj3zv2yjs9z0rp2xm3mq67w";
+       version = "2.0.0.0";
+       sha256 = "0sa1gaclh7b3mpqiiyqqn2gqfwkwj2ig5yzjk1y0hkzyc7rz4l3k";
        libraryHaskellDepends = [ base cl3 hmatrix ];
        description = "Interface to/from Cl3 and HMatrix";
        license = stdenv.lib.licenses.bsd3;
@@ -53387,8 +54163,8 @@ self: {
     ({ mkDerivation, base, cl3, linear }:
      mkDerivation {
        pname = "cl3-linear-interface";
-       version = "1.0.0.1";
-       sha256 = "1i4f9xxsdzba49h1dv8x14zz1bv1zamhvw2ngi5d6a17qd11g319";
+       version = "2.0.0.0";
+       sha256 = "15431azhvwk2fcd3aca5snpqrp8kf7zdlbyxh99i1xfdhvq4vc78";
        libraryHaskellDepends = [ base cl3 linear ];
        description = "Interface to/from Cl3 and Linear";
        license = stdenv.lib.licenses.bsd3;
@@ -53601,9 +54377,9 @@ self: {
      }) {};
 
   "clash-ghc" = callPackage
-    ({ mkDerivation, array, base, bifunctors, bytestring, clash-lib
-     , clash-prelude, concurrent-supply, containers, deepseq, directory
-     , filepath, ghc, ghc-boot, ghc-prim, ghc-typelits-extra
+    ({ mkDerivation, array, base, bifunctors, bytestring, Cabal
+     , clash-lib, clash-prelude, concurrent-supply, containers, deepseq
+     , directory, 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
@@ -53611,12 +54387,12 @@ self: {
      }:
      mkDerivation {
        pname = "clash-ghc";
-       version = "1.2.2";
-       sha256 = "0nx7rgwhviqkzkly6ay3dcyphqmqqxg3mzb1v3r08icfg2yasmsf";
+       version = "1.2.4";
+       sha256 = "1xzpz0bkdfvhkk496q4zr7f6ix23dgg6w5r14j5gxy4jb8f8bxln";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         array base bifunctors bytestring clash-lib clash-prelude
+         array base bifunctors bytestring Cabal clash-lib clash-prelude
          concurrent-supply containers deepseq directory filepath ghc
          ghc-boot ghc-prim ghc-typelits-extra ghc-typelits-knownnat
          ghc-typelits-natnormalise ghci hashable haskeline integer-gmp lens
@@ -53638,12 +54414,13 @@ self: {
      , ordered-containers, parsers, prettyprinter, primitive, process
      , reducers, tasty, tasty-hunit, template-haskell, temporary
      , terminal-size, text, text-show, time, transformers, trifecta
-     , unordered-containers, vector, vector-binary-instances
+     , unordered-containers, utf8-string, vector
+     , vector-binary-instances
      }:
      mkDerivation {
        pname = "clash-lib";
-       version = "1.2.2";
-       sha256 = "0igqm964cb1x0kvh5hyvabxcn9mjfcnzzlfxqy996z2lzgz044xn";
+       version = "1.2.4";
+       sha256 = "147cahsid3l6ff8d96ndzli1v79i9lbmad0bkmy0s5vcbgp90q7c";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson ansi-terminal attoparsec base binary bytestring clash-prelude
@@ -53652,7 +54429,7 @@ self: {
          ghc-boot-th hashable haskell-src-meta hint integer-gmp interpolate
          lens mtl ordered-containers parsers prettyprinter primitive process
          reducers template-haskell temporary terminal-size text text-show
-         time transformers trifecta unordered-containers vector
+         time transformers trifecta unordered-containers utf8-string vector
          vector-binary-instances
        ];
        testHaskellDepends = [
@@ -53694,8 +54471,8 @@ self: {
      }:
      mkDerivation {
        pname = "clash-prelude";
-       version = "1.2.2";
-       sha256 = "0b7s9rbxh6z7liifzr8d0sqs2hdrz75hzg27lgncdl53v8bicpkw";
+       version = "1.2.4";
+       sha256 = "1yizprs6i4y2vyhjj6pvpd5xmdbxyqjwclk6saaws0g3xv008ffg";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          array base bifunctors binary bytestring constraints containers
@@ -54503,28 +55280,6 @@ self: {
      }:
      mkDerivation {
        pname = "climb";
-       version = "0.3.1";
-       sha256 = "0d9f0h0zk9ga349bvdaq6ch9xi3hynadi6r4mcmy7hcigckk2j7r";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base bytestring containers exceptions linenoise mtl text
-         unliftio-core
-       ];
-       executableHaskellDepends = [
-         base bytestring containers exceptions linenoise mtl text
-         unliftio-core
-       ];
-       description = "Building blocks for a GHCi-like REPL with colon-commands";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "climb_0_3_3" = callPackage
-    ({ mkDerivation, base, bytestring, containers, exceptions
-     , linenoise, mtl, text, unliftio-core
-     }:
-     mkDerivation {
-       pname = "climb";
        version = "0.3.3";
        sha256 = "0d6jscwbjlm21jcdl29c3ix6vd5ly9mjr0ljchzkr6yk7gqk4z24";
        isLibrary = true;
@@ -54539,7 +55294,6 @@ self: {
        ];
        description = "Building blocks for a GHCi-like REPL with colon-commands";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "clingo" = callPackage
@@ -55336,18 +56090,19 @@ self: {
 
   "cmdargs-browser" = callPackage
     ({ mkDerivation, base, bytestring, cmdargs, directory, filepath
-     , http-types, process, text, transformers, wai, wai-handler-launch
+     , http-types, js-jquery, process, text, transformers, wai
+     , wai-handler-launch
      }:
      mkDerivation {
        pname = "cmdargs-browser";
-       version = "0.1.3";
-       sha256 = "1k0g2vh7sqkblzjsfvyhfiy1fcwkw0i10kgl4n2r68w7v52mmzd0";
+       version = "0.1.4";
+       sha256 = "0rp1k7fl4ci9ngi6ywdiahs5njff2py6y9ya9qv5x123ibxgpz2y";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
        executableHaskellDepends = [
-         base bytestring cmdargs directory filepath http-types process text
-         transformers wai wai-handler-launch
+         base bytestring cmdargs directory filepath http-types js-jquery
+         process text transformers wai wai-handler-launch
        ];
        description = "Helper to enter cmdargs command lines using a web browser";
        license = stdenv.lib.licenses.bsd3;
@@ -55713,8 +56468,8 @@ self: {
      }:
      mkDerivation {
        pname = "cobot-io";
-       version = "0.1.3.5";
-       sha256 = "0h3pray036ddjwxvda5m6x7nx8p3ksaj4fkbw2afwgvn3gl7y991";
+       version = "0.1.3.6";
+       sha256 = "0ry01h9vkr5zyiwp60vqb8mp2lfg3yhfbaz0c7jammk034dszkf1";
        libraryHaskellDepends = [
          array attoparsec base binary bytestring containers data-msgpack
          deepseq http-conduit hyraxAbif lens linear mtl split text vector
@@ -55992,6 +56747,8 @@ self: {
        ];
        description = "A ctags file generator for cabal project dependencies";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "codo-notation" = callPackage
@@ -56656,10 +57413,8 @@ self: {
     ({ mkDerivation, accelerate, base }:
      mkDerivation {
        pname = "colour-accelerate";
-       version = "0.3.0.0";
-       sha256 = "0zvzra2w0sajw0hzg2k25khv8c5j1i17g8dnga70w73f3mmh3gbz";
-       revision = "1";
-       editedCabalFile = "1mbz9wdx396q8gdy6yqsc5vsxrkky9zkxczjblvc9zy542v252cn";
+       version = "0.4.0.0";
+       sha256 = "1j7ff2wb58yf346z2abr1v1yq498fxm498rdf1g62ppf6vkdplw8";
        libraryHaskellDepends = [ accelerate base ];
        description = "Working with colours in Accelerate";
        license = stdenv.lib.licenses.bsd3;
@@ -57156,6 +57911,87 @@ self: {
        broken = true;
      }) {};
 
+  "commonmark" = callPackage
+    ({ mkDerivation, base, bytestring, containers, criterion, parsec
+     , QuickCheck, tasty, tasty-hunit, tasty-quickcheck, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "commonmark";
+       version = "0.1.0.2";
+       sha256 = "00rqy02pn4gg0wpwvxyqxvzqg75lvb1qawn4m8rnjq6v43c4g23l";
+       libraryHaskellDepends = [
+         base bytestring containers parsec text transformers
+       ];
+       testHaskellDepends = [
+         base parsec QuickCheck tasty tasty-hunit tasty-quickcheck text
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring containers criterion text transformers
+       ];
+       description = "Pure Haskell commonmark parser";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "commonmark-cli" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, base, bytestring, commonmark
+     , commonmark-extensions, commonmark-pandoc, containers, mtl
+     , pandoc-types, pretty-simple, text
+     }:
+     mkDerivation {
+       pname = "commonmark-cli";
+       version = "0.1.0.1";
+       sha256 = "1k7s7wzphllfydki1ifzab6b4x865vwxg50xldqdar141425s84l";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson ansi-terminal base bytestring commonmark
+         commonmark-extensions commonmark-pandoc containers mtl pandoc-types
+         pretty-simple text
+       ];
+       description = "Command-line commonmark converter and highlighter";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "commonmark-extensions" = callPackage
+    ({ mkDerivation, base, bytestring, commonmark, containers
+     , criterion, emojis, parsec, QuickCheck, tasty, tasty-hunit
+     , tasty-quickcheck, text, transformers
+     }:
+     mkDerivation {
+       pname = "commonmark-extensions";
+       version = "0.2.0.1";
+       sha256 = "08i6167d78b5wf6aqsrjz2sb1qaanwrjzhpfg1jn4grd9g8i2ql6";
+       libraryHaskellDepends = [
+         base bytestring commonmark containers emojis parsec text
+         transformers
+       ];
+       testHaskellDepends = [
+         base commonmark parsec QuickCheck tasty tasty-hunit
+         tasty-quickcheck text
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring commonmark containers criterion text transformers
+       ];
+       description = "Pure Haskell commonmark parser";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "commonmark-pandoc" = callPackage
+    ({ mkDerivation, base, commonmark, commonmark-extensions
+     , containers, pandoc-types, text
+     }:
+     mkDerivation {
+       pname = "commonmark-pandoc";
+       version = "0.2.0.0";
+       sha256 = "1dis51lknwfk7ka0n6pbw03hwn4y5zk23kypkl84iwg2ydxvwbxh";
+       libraryHaskellDepends = [
+         base commonmark commonmark-extensions containers pandoc-types text
+       ];
+       description = "Bridge between commonmark and pandoc AST";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "commsec" = callPackage
     ({ mkDerivation, base, bytestring, cipher-aes128, crypto-api
      , network
@@ -57360,6 +58196,20 @@ self: {
        broken = true;
      }) {};
 
+  "compact-sequences" = callPackage
+    ({ mkDerivation, base, mtl, primitive, QuickCheck, tasty
+     , tasty-quickcheck, transformers
+     }:
+     mkDerivation {
+       pname = "compact-sequences";
+       version = "0.2.0.0";
+       sha256 = "0v7s99d7syspgc8z8mhdykyrsjyx0r0vjyf64plidndld2zg0swn";
+       libraryHaskellDepends = [ base mtl primitive transformers ];
+       testHaskellDepends = [ base QuickCheck tasty tasty-quickcheck ];
+       description = "Stacks, queues, and deques with compact representations";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "compact-socket" = callPackage
     ({ mkDerivation, base, binary, bytestring, compact, deepseq
      , directory, filepath, network, unix
@@ -57787,8 +58637,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-aeson";
-       version = "0.7.1.0";
-       sha256 = "1jv9frfv1ixqyby8zgldp2nkc051fnz0nqwcrnk1mqhav7rf3ilx";
+       version = "0.7.4.0";
+       sha256 = "1k8m89cff8b3yc1af0l9vd13pav2hjy51gcadahn07zpwv1bszfj";
        libraryHaskellDepends = [
          aeson aeson-better-errors base composite-base containers
          contravariant generic-deriving hashable lens mmorph mtl profunctors
@@ -57807,14 +58657,27 @@ self: {
        broken = true;
      }) {};
 
+  "composite-aeson-path" = callPackage
+    ({ mkDerivation, base, composite-aeson, path }:
+     mkDerivation {
+       pname = "composite-aeson-path";
+       version = "0.7.4.0";
+       sha256 = "08p988iq7y76px61dlj5jq35drmnrf4khi27wpqgh3pg9d96yihx";
+       libraryHaskellDepends = [ base composite-aeson path ];
+       description = "Formatting data for the path library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "composite-aeson-refined" = callPackage
     ({ mkDerivation, aeson-better-errors, base, composite-aeson, mtl
      , refined
      }:
      mkDerivation {
        pname = "composite-aeson-refined";
-       version = "0.7.1.0";
-       sha256 = "12nqw9mg25vblz5my5rrd0w2nwgpvykw0nnlmaibpj7z5z5fnfv6";
+       version = "0.7.4.0";
+       sha256 = "049lrm5iip5y3c9m9x4sjangaigdprj1553sw2vrcvnvn8xfq57s";
        libraryHaskellDepends = [
          aeson-better-errors base composite-aeson mtl refined
        ];
@@ -57825,25 +58688,37 @@ self: {
      }) {};
 
   "composite-base" = callPackage
-    ({ mkDerivation, base, exceptions, hspec, lens, monad-control, mtl
-     , profunctors, QuickCheck, template-haskell, text, transformers
-     , transformers-base, unliftio-core, vinyl
+    ({ mkDerivation, base, deepseq, exceptions, hspec, lens
+     , monad-control, mtl, profunctors, QuickCheck, template-haskell
+     , text, transformers, transformers-base, unliftio-core, vinyl
      }:
      mkDerivation {
        pname = "composite-base";
-       version = "0.7.1.0";
-       sha256 = "11sbpl43z65gkafz0y69b33irg51ag4hjg7yswaqiwv1b6qn80w4";
+       version = "0.7.4.0";
+       sha256 = "1ml1y1zh8znvaqydwcnv8n69rzmx7zy2bpzr65gy79xbczz3dxwz";
        libraryHaskellDepends = [
-         base exceptions lens monad-control mtl profunctors template-haskell
-         text transformers transformers-base unliftio-core vinyl
-       ];
-       testHaskellDepends = [
-         base exceptions hspec lens monad-control mtl profunctors QuickCheck
+         base deepseq exceptions lens monad-control mtl profunctors
          template-haskell text transformers transformers-base unliftio-core
          vinyl
        ];
+       testHaskellDepends = [
+         base deepseq exceptions hspec lens monad-control mtl profunctors
+         QuickCheck template-haskell text transformers transformers-base
+         unliftio-core vinyl
+       ];
        description = "Shared utilities for composite-* packages";
        license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "composite-binary" = callPackage
+    ({ mkDerivation, base, binary, composite-base }:
+     mkDerivation {
+       pname = "composite-binary";
+       version = "0.7.4.0";
+       sha256 = "07d88krkpplprnw57j4bqi71p8bmj0wz28yw41wgl2p5g2h7zccp";
+       libraryHaskellDepends = [ base binary composite-base ];
+       description = "Orphan binary instances";
+       license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -57853,8 +58728,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-ekg";
-       version = "0.7.1.0";
-       sha256 = "1w2vlbzaxrxj95q3k2vmvzd34d51cz1pj4fv3x34icmp4rx92qvz";
+       version = "0.7.4.0";
+       sha256 = "0y8wnp6n1fvqfrkm1lqv8pdfq7a4k7gaxl3i9dh6xfzyamlghg82";
        libraryHaskellDepends = [
          base composite-base ekg-core lens text vinyl
        ];
@@ -57864,6 +58739,17 @@ self: {
        broken = true;
      }) {};
 
+  "composite-hashable" = callPackage
+    ({ mkDerivation, base, composite-base, hashable }:
+     mkDerivation {
+       pname = "composite-hashable";
+       version = "0.7.4.0";
+       sha256 = "0zwv6m9nzz0g3ngmfznxh6wmprhcgdbfxrsgylnr6990ppk0bmg1";
+       libraryHaskellDepends = [ base composite-base hashable ];
+       description = "Orphan hashable instances";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "composite-opaleye" = callPackage
     ({ mkDerivation, base, bytestring, composite-base, hspec, lens
      , opaleye, postgresql-simple, product-profunctors, profunctors
@@ -57871,8 +58757,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-opaleye";
-       version = "0.7.1.0";
-       sha256 = "1p5nrq5i5ssdiqy38p0qraig8r3z1djfa2hrb7wg5pandiplngr8";
+       version = "0.7.4.0";
+       sha256 = "0nzyslqgh7m9ryqw4rajq2m4kfknqzdq0aqnygyz0sblmgixn4hm";
        libraryHaskellDepends = [
          base bytestring composite-base lens opaleye postgresql-simple
          product-profunctors profunctors template-haskell text vinyl
@@ -57895,8 +58781,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-swagger";
-       version = "0.7.1.0";
-       sha256 = "0npzy42ls7r8i4zldkn3569l5nfdcm905mycd5zda7pkjyyi36q4";
+       version = "0.7.4.0";
+       sha256 = "0a7pcs06m0w0mq60y3hhgn4a36gx5daypc1nh1ndsm6x3q3d99q8";
        libraryHaskellDepends = [
          base composite-base insert-ordered-containers lens swagger2
          template-haskell text vinyl
@@ -58884,6 +59770,35 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "conduit_1_3_2_1" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, directory
+     , exceptions, filepath, gauge, hspec, kan-extensions
+     , mono-traversable, mtl, mwc-random, primitive, QuickCheck
+     , resourcet, safe, silently, split, text, transformers, unix
+     , unliftio, unliftio-core, vector
+     }:
+     mkDerivation {
+       pname = "conduit";
+       version = "1.3.2.1";
+       sha256 = "0kyl1zspkp14vrgxgc2zpy9rd9h6aa7m9f385sgshysnhbc7hbg5";
+       libraryHaskellDepends = [
+         base bytestring directory exceptions filepath mono-traversable mtl
+         primitive resourcet text transformers unix unliftio-core vector
+       ];
+       testHaskellDepends = [
+         base bytestring containers directory exceptions filepath hspec
+         mono-traversable mtl QuickCheck resourcet safe silently split text
+         transformers unliftio vector
+       ];
+       benchmarkHaskellDepends = [
+         base containers deepseq gauge hspec kan-extensions mwc-random
+         transformers vector
+       ];
+       description = "Streaming data processing library";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "conduit-algorithms" = callPackage
     ({ mkDerivation, async, base, bytestring, bzlib-conduit, conduit
      , conduit-combinators, conduit-extra, conduit-zstd, containers
@@ -59843,6 +60758,8 @@ self: {
        pname = "configuration-tools";
        version = "0.5.0";
        sha256 = "0pgx2wzzqxgafgf3qjys05hp89lz4fwczsx0i581n8ngs3p4i0wh";
+       revision = "1";
+       editedCabalFile = "0srscnmj5dhaq0djx0lhcggl53ipn6pw8vgsvgzhhjrbmnn2zb2p";
        setupHaskellDepends = [
          base bytestring Cabal directory filepath process
        ];
@@ -60103,18 +61020,18 @@ self: {
      }) {};
 
   "connections" = callPackage
-    ({ mkDerivation, base, containers, hedgehog, lawz, rings
-     , semigroupoids
+    ({ mkDerivation, base, containers, finite-typelits, hedgehog
+     , transformers, universe-base
      }:
      mkDerivation {
        pname = "connections";
-       version = "0.0.3";
-       sha256 = "112m18l4apg9djgi9m9pg4222dy7wfkl0z9l98yf92yzw9pq08zv";
+       version = "0.1.0";
+       sha256 = "0lnskpdfgxjbkqlg82i1gxz8dsns36szyw1mv45nlq7jqspfspgp";
        libraryHaskellDepends = [
-         base containers lawz rings semigroupoids
+         base containers finite-typelits transformers universe-base
        ];
-       testHaskellDepends = [ base hedgehog lawz rings ];
-       description = "Partial orders, Galois connections, and lattices";
+       testHaskellDepends = [ base hedgehog ];
+       description = "Orders, Galois connections, and lattices";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -60455,6 +61372,8 @@ self: {
        pname = "constraints-extras";
        version = "0.3.0.2";
        sha256 = "1n3k5ld6qzq7vlwsqwrm3gsg4z7mk11ah3amazzbvbmxwz8wviys";
+       revision = "2";
+       editedCabalFile = "09mdfzrmnl0mc57n7h0w68i8xgp89y5729p2d2h6qb2qj81qsfq1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base constraints template-haskell ];
@@ -60477,17 +61396,17 @@ self: {
   "construct" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, Cabal, cabal-doctest
      , cereal, directory, doctest, filepath, incremental-parser
-     , markdown-unlit, monoid-subclasses, parsers, rank2classes, tasty
-     , tasty-hunit, text
+     , input-parsers, markdown-unlit, monoid-subclasses, parsers
+     , rank2classes, tasty, tasty-hunit, text
      }:
      mkDerivation {
        pname = "construct";
-       version = "0.2.0.1";
-       sha256 = "1j2xc1j9f71shins5nnj0xg41k4vx2r1jgimnnlcdln2g24v71l2";
+       version = "0.3";
+       sha256 = "06h3b1lbq0gdpzz2q5ga0dpgbvyh186z1brzslrwdmkp8qxx883x";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         attoparsec base bytestring cereal incremental-parser
+         attoparsec base bytestring cereal incremental-parser input-parsers
          monoid-subclasses parsers rank2classes text
        ];
        testHaskellDepends = [
@@ -60498,6 +61417,8 @@ self: {
        testToolDepends = [ markdown-unlit ];
        description = "Haskell version of the Construct library for easy specification of file formats";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "constructible" = callPackage
@@ -60635,18 +61556,37 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "containers_0_6_2_1" = callPackage
+  "containers_0_6_3_1" = callPackage
     ({ mkDerivation, array, base, deepseq }:
      mkDerivation {
        pname = "containers";
-       version = "0.6.2.1";
-       sha256 = "05h0sc70xy4jm0hvzv0pnqy1sbi61f73whawk46jwcjzyfa5f30k";
+       version = "0.6.3.1";
+       sha256 = "04v59j9xnaq4bab08b3b0m5lwpkjm2awdhd4q9i8rwmxf8977acg";
        libraryHaskellDepends = [ array base deepseq ];
        description = "Assorted concrete container types";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "containers-accelerate" = callPackage
+    ({ mkDerivation, accelerate, accelerate-llvm-native, base
+     , containers, half, hashable-accelerate, hedgehog, tasty
+     , tasty-hedgehog
+     }:
+     mkDerivation {
+       pname = "containers-accelerate";
+       version = "0.1.0.0";
+       sha256 = "1bfw5k6nq15szgwjkzd17inmlk0ii0pd6a4lrixi8gyjf6ksm6n1";
+       libraryHaskellDepends = [ accelerate base hashable-accelerate ];
+       testHaskellDepends = [
+         accelerate accelerate-llvm-native base containers half
+         hashable-accelerate hedgehog tasty tasty-hedgehog
+       ];
+       description = "Hashing-based container types";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "containers-benchmark" = callPackage
     ({ mkDerivation, base, bytestring, containers, criterion, deepseq
      , ghc-prim, random
@@ -60681,8 +61621,8 @@ self: {
     ({ mkDerivation, base, base-unicode-symbols, containers }:
      mkDerivation {
        pname = "containers-unicode-symbols";
-       version = "0.3.1.1";
-       sha256 = "0ccv7rqkykfk5wmr73mc0kwrnwyzakgp5x495dgwn5nila3g4ma6";
+       version = "0.3.1.2";
+       sha256 = "006znsrwz3sssvg53mail2xd98hq6y4l83140sd2fzyg4df25js7";
        libraryHaskellDepends = [ base base-unicode-symbols containers ];
        description = "Unicode alternatives for common functions and operators";
        license = stdenv.lib.licenses.bsd3;
@@ -60729,6 +61669,21 @@ self: {
        broken = true;
      }) {};
 
+  "context" = callPackage
+    ({ mkDerivation, async, base, containers, ghc-prim, hspec
+     , hspec-discover
+     }:
+     mkDerivation {
+       pname = "context";
+       version = "0.1.0.0";
+       sha256 = "17w0narhg25ls1rs2xp8x0yxh5jhw52b0c3zgi9ivn99j7c8qrhd";
+       libraryHaskellDepends = [ base containers ];
+       testHaskellDepends = [ async base ghc-prim hspec ];
+       testToolDepends = [ hspec-discover ];
+       description = "Thread-indexed, nested contexts";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "context-free-art" = callPackage
     ({ mkDerivation, base, bifunctors, blaze-markup, blaze-svg
      , directory, HUnit, random, text, text-show
@@ -60777,6 +61732,37 @@ self: {
        broken = true;
      }) {};
 
+  "context-http-client" = callPackage
+    ({ mkDerivation, async, base, bytestring, case-insensitive, context
+     , hspec, hspec-discover, http-client, http-types, stm, wai, warp
+     }:
+     mkDerivation {
+       pname = "context-http-client";
+       version = "0.1.0.0";
+       sha256 = "0ad917jnzqd2idzh6a5j9nvjf2pg7l968vmn38cxgh9hfq3yhwm7";
+       libraryHaskellDepends = [ base context http-client ];
+       testHaskellDepends = [
+         async base bytestring case-insensitive context hspec http-client
+         http-types stm wai warp
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Modify HTTP requests/responses using context";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "context-resource" = callPackage
+    ({ mkDerivation, async, base, context, hspec, hspec-discover }:
+     mkDerivation {
+       pname = "context-resource";
+       version = "0.1.0.0";
+       sha256 = "0695m9hnx8grfmyy7mzd6n3426qc18sh14hy6glhr5nwj9c4k4c2";
+       libraryHaskellDepends = [ base context ];
+       testHaskellDepends = [ async base context hspec ];
+       testToolDepends = [ hspec-discover ];
+       description = "Thread-safe, pool-compatible resource provider";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "context-stack" = callPackage
     ({ mkDerivation, base, classy-prelude, mtl, unordered-containers }:
      mkDerivation {
@@ -60792,6 +61778,24 @@ self: {
        broken = true;
      }) {};
 
+  "context-wai-middleware" = callPackage
+    ({ mkDerivation, async, base, bytestring, case-insensitive, context
+     , hspec, hspec-discover, http-client, http-types, stm, wai, warp
+     }:
+     mkDerivation {
+       pname = "context-wai-middleware";
+       version = "0.1.0.0";
+       sha256 = "0bisqsngccddkamf60qyk4h9w4w80ppks51i4p9bl39kmf7hd65l";
+       libraryHaskellDepends = [ base context wai ];
+       testHaskellDepends = [
+         async base bytestring case-insensitive context hspec http-client
+         http-types stm wai warp
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Add request-specific (or not!) context to your WAI applications";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "contiguous" = callPackage
     ({ mkDerivation, base, deepseq, primitive, primitive-unlifted
      , QuickCheck, quickcheck-classes, quickcheck-instances, random
@@ -60799,8 +61803,8 @@ self: {
      }:
      mkDerivation {
        pname = "contiguous";
-       version = "0.5";
-       sha256 = "0nz3ssh0zc8rs67mk8fmc8plvbjac6mlxdmzk9fw8sj2vx2ssisq";
+       version = "0.5.1";
+       sha256 = "1y02gqgd012zggs7kqxkky0prmbl0k9ji5ynb74i5mym88xrj67h";
        libraryHaskellDepends = [
          base deepseq primitive primitive-unlifted
        ];
@@ -60949,8 +61953,8 @@ self: {
      }:
      mkDerivation {
        pname = "contravariant-extras";
-       version = "0.3.5.1";
-       sha256 = "0r9bg6mrm5whv7inpp9m2agwbnk70vg0v7nrflpxkif81scpq0z9";
+       version = "0.3.5.2";
+       sha256 = "0ikwzg0992j870yp0x2ssf4mv2hw2nml979apg493m72xnvr1jz9";
        libraryHaskellDepends = [
          base contravariant template-haskell template-haskell-compat-v0208
        ];
@@ -61064,14 +62068,14 @@ self: {
      }:
      mkDerivation {
        pname = "control-monad-exception";
-       version = "0.11.2";
-       sha256 = "0vdms5if6c04459ksix5q38l9cflgc5bwnchd422fp2qfji5j14p";
+       version = "0.11.4";
+       sha256 = "124qqhr4w9b224bdfm88dvxfsalcki46yc06swm52jirag06hn6r";
        libraryHaskellDepends = [
          base failure lifted-base monad-control monadloc transformers
          transformers-base
        ];
        description = "Explicitly typed, checked exceptions with stack traces";
-       license = stdenv.lib.licenses.mit;
+       license = stdenv.lib.licenses.publicDomain;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -61315,6 +62319,29 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "conversions" = callPackage
+    ({ mkDerivation, base, bytestring, control-bool, devtools
+     , exceptions, mtl, source-constraints, template-haskell, text
+     , unliftio-core
+     }:
+     mkDerivation {
+       pname = "conversions";
+       version = "0.0.3";
+       sha256 = "1fn7ras17maswl7fw5hdbw02b8wjlzs2gcfwdxrw9xipjbw81hir";
+       libraryHaskellDepends = [
+         base bytestring control-bool devtools exceptions mtl
+         source-constraints template-haskell text unliftio-core
+       ];
+       testHaskellDepends = [
+         base bytestring control-bool devtools exceptions mtl
+         source-constraints template-haskell text unliftio-core
+       ];
+       description = "Injective explicit total and partial conversions";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "convert" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, bytestring, containers
      , data-default, impossible, lens, template-haskell, text
@@ -61673,8 +62700,8 @@ self: {
      }:
      mkDerivation {
        pname = "core-data";
-       version = "0.2.1.5";
-       sha256 = "17lvpbyrr9wm93qprk45n5gf3f6k47f9wf7ays0bfk0hx23chc1n";
+       version = "0.2.1.8";
+       sha256 = "1hgvvkk3m3ykdndmf2hbm59v0pim68jwgl2a6n5hw1dv4xwd3fay";
        libraryHaskellDepends = [
          aeson base bytestring containers core-text hashable prettyprinter
          prettyprinter-ansi-terminal scientific text unordered-containers
@@ -61710,8 +62737,8 @@ self: {
      }:
      mkDerivation {
        pname = "core-program";
-       version = "0.2.4.2";
-       sha256 = "0zs62mn87fdrjwi1dp11hkr7nbb7v3ikxk1ph6cnjdk0di9hrr6a";
+       version = "0.2.4.5";
+       sha256 = "1a2zjdywmgniwcj649f43hri55bh30vz2s00r3yqj3gvhhighi86";
        libraryHaskellDepends = [
          async base bytestring chronologique core-data core-text directory
          exceptions filepath fsnotify hashable hourglass mtl prettyprinter
@@ -61729,8 +62756,8 @@ self: {
      }:
      mkDerivation {
        pname = "core-text";
-       version = "0.2.3.3";
-       sha256 = "0bnbl34fzy497a8ljgcydp490j3684yw8r32jijqyix7y9q2cl2d";
+       version = "0.2.3.6";
+       sha256 = "13sdgym8xhljpc465bq1h066mrcvk77568viklhib255skjl56gn";
        libraryHaskellDepends = [
          base bytestring deepseq fingertree hashable prettyprinter
          prettyprinter-ansi-terminal template-haskell text text-short
@@ -61802,6 +62829,8 @@ self: {
        librarySystemDepends = [ rocksdb ];
        description = "Launches CoreNLP and parses the JSON output";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) rocksdb;};
 
   "cornea" = callPackage
@@ -62033,16 +63062,16 @@ self: {
 
   "country" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, deepseq
-     , ghc-prim, hashable, primitive, QuickCheck, quickcheck-classes
-     , scientific, tasty, tasty-quickcheck, text, unordered-containers
+     , hashable, primitive, QuickCheck, quickcheck-classes, scientific
+     , tasty, tasty-quickcheck, text, unordered-containers
      }:
      mkDerivation {
        pname = "country";
-       version = "0.2";
-       sha256 = "09qimpqgg4zhiiyw13n5r1ckswr5x3m8k1hdx9hwhd52j45zhbkg";
+       version = "0.2.1";
+       sha256 = "0nc9vjwagmih0m8h423lbsamkbxxyzhk3cr9cm7a7wwbl2bddq3a";
        libraryHaskellDepends = [
-         aeson attoparsec base bytestring deepseq ghc-prim hashable
-         primitive scientific text unordered-containers
+         aeson attoparsec base bytestring deepseq hashable primitive
+         scientific text unordered-containers
        ];
        testHaskellDepends = [
          base QuickCheck quickcheck-classes tasty tasty-quickcheck
@@ -62134,8 +63163,8 @@ self: {
     ({ mkDerivation, base, groups, primitive, refined, semirings }:
      mkDerivation {
        pname = "coya";
-       version = "0.1";
-       sha256 = "1s5si8w7s16l6s89gnhzmpyr555njb0gws7xipp017m7130pwgx3";
+       version = "0.1.0.1";
+       sha256 = "0cz4n27akgima9w75ilpg9ngapsh47gw3fdy01fx8z50cll6v02y";
        libraryHaskellDepends = [
          base groups primitive refined semirings
        ];
@@ -62196,6 +63225,8 @@ self: {
        pname = "cpkg";
        version = "0.2.5.6";
        sha256 = "1fvwvaqd9nn4pnblyi874kwb450h85gg2afa6khp4vsz1bybc8ch";
+       revision = "1";
+       editedCabalFile = "07scy0rvrinfiwj4l7gfwi8srnrp3v5w0pbjsqsp738akmlbbgna";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -62212,6 +63243,8 @@ self: {
        testHaskellDepends = [ base hspec hspec-megaparsec megaparsec ];
        description = "Build tool for C";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "cplex-hs" = callPackage
@@ -63346,6 +64379,23 @@ self: {
        broken = true;
      }) {};
 
+  "cronus" = callPackage
+    ({ mkDerivation, base, bytestring, comonad, containers, deepseq
+     , hashable, mtl, profunctors, text, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "cronus";
+       version = "0.1.0.0";
+       sha256 = "10mypmm3q1icxdmgqxpvha8igyr6nddwmpbhpxkksaqfgy7a6g63";
+       libraryHaskellDepends = [
+         base bytestring comonad containers deepseq hashable mtl profunctors
+         text transformers unordered-containers vector
+       ];
+       description = "Another bloated standard library";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "cruncher-types" = callPackage
     ({ mkDerivation, aeson, base, containers, hlint, lens, text }:
      mkDerivation {
@@ -63537,8 +64587,8 @@ self: {
        pname = "crypto-enigma";
        version = "0.1.1.6";
        sha256 = "07qxrpwg9r2w2l0d2nrvn703vzsfhchznly93bnr2pfpbwj4iv2z";
-       revision = "3";
-       editedCabalFile = "0djn9pyvhlk964mzqdw0fpczwsvzadcp6jkkryhi8vbvkb88i9rn";
+       revision = "4";
+       editedCabalFile = "0436kl0gsy0hj7dfrqmwz95q3k31af731q484yx2gj9zcma1h1vp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers split text ];
@@ -64012,6 +65062,8 @@ self: {
        ];
        description = "Reversable and secure encoding of object ids as a bytestring";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "cryptoids-class" = callPackage
@@ -64045,25 +65097,27 @@ self: {
      }) {};
 
   "cryptol" = callPackage
-    ({ mkDerivation, alex, ansi-terminal, array, base, base-compat
-     , blaze-html, bytestring, containers, criterion, cryptohash-sha1
-     , deepseq, directory, filepath, gitrev, GraphSCC, happy, haskeline
-     , heredoc, monad-control, monadLib, mtl, panic, pretty, process
-     , random, sbv, simple-smt, strict, text, tf-random, time
-     , transformers, transformers-base
+    ({ mkDerivation, alex, ansi-terminal, array, async, base
+     , base-compat, blaze-html, bv-sized, bytestring, containers
+     , criterion, cryptohash-sha1, deepseq, directory, exceptions
+     , filepath, gitrev, GraphSCC, happy, haskeline, heredoc, libBF
+     , monad-control, monadLib, mtl, panic, parameterized-utils, pretty
+     , process, random, sbv, simple-smt, strict, text, tf-random, time
+     , transformers, transformers-base, what4
      }:
      mkDerivation {
        pname = "cryptol";
-       version = "2.8.0";
-       sha256 = "1fqhk7glh1y0a1f0iwdzrljh9k7v06pn0ybhlcs51ph9vs4byqdh";
+       version = "2.9.1";
+       sha256 = "0c484pla89igj77x5n2n50a1la8j4jaqpc0pc58c1pcijffxac5l";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         array base base-compat bytestring containers cryptohash-sha1
-         deepseq directory filepath gitrev GraphSCC heredoc monad-control
-         monadLib mtl panic pretty process random sbv simple-smt strict text
-         tf-random time transformers-base
+         array async base base-compat bv-sized bytestring containers
+         cryptohash-sha1 deepseq directory exceptions filepath gitrev
+         GraphSCC heredoc libBF monad-control monadLib mtl panic
+         parameterized-utils pretty process random sbv simple-smt strict
+         text tf-random time transformers-base what4
        ];
        libraryToolDepends = [ alex happy ];
        executableHaskellDepends = [
@@ -64297,6 +65351,8 @@ self: {
        ];
        description = "a gallery of Csound instruments";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "csound-expression" = callPackage
@@ -64307,8 +65363,8 @@ self: {
      }:
      mkDerivation {
        pname = "csound-expression";
-       version = "5.3.2";
-       sha256 = "1v3ssy2rfgwz9wwv8kmaifyrphyl5w66p9zmrg1bi0vbzwxnr57q";
+       version = "5.3.3";
+       sha256 = "0g6djh3ijvka6hkw4nhb7vhhyl4i268rdxvnwmm6ayg6a8kg8p0g";
        libraryHaskellDepends = [
          base Boolean colour containers csound-expression-dynamic
          csound-expression-opcodes csound-expression-typed data-default
@@ -64316,22 +65372,27 @@ self: {
        ];
        description = "library to make electronic music";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "csound-expression-dynamic" = callPackage
     ({ mkDerivation, array, base, Boolean, containers, data-default
-     , data-fix, data-fix-cse, hashable, transformers, wl-pprint
+     , data-fix, data-fix-cse, deriving-compat, hashable, transformers
+     , wl-pprint
      }:
      mkDerivation {
        pname = "csound-expression-dynamic";
-       version = "0.3.3";
-       sha256 = "0k4pk96cx2f6rhz18mrdkkz7ic2fdzpqkxf1x596990az7pjg7g3";
+       version = "0.3.5";
+       sha256 = "07xykqpym48bvvs7sa0m12psahsn7z245cd89akv9flkgwjwaa29";
        libraryHaskellDepends = [
          array base Boolean containers data-default data-fix data-fix-cse
-         hashable transformers wl-pprint
+         deriving-compat hashable transformers wl-pprint
        ];
        description = "dynamic core for csound-expression library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "csound-expression-opcodes" = callPackage
@@ -64347,6 +65408,8 @@ self: {
        ];
        description = "opcodes for the library csound-expression";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "csound-expression-typed" = callPackage
@@ -64357,8 +65420,8 @@ self: {
      }:
      mkDerivation {
        pname = "csound-expression-typed";
-       version = "0.2.2.0";
-       sha256 = "19cplqpyd7vhn28z0k8mxmscja05w9xb8q4bbvq5qd0h8liqxsqg";
+       version = "0.2.3.1";
+       sha256 = "02zd41sz1y8qfchdyhgiddi6s1p5081nr5haq04qdmbz5bgpdmbq";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base Boolean colour containers csound-expression-dynamic
@@ -64367,6 +65430,8 @@ self: {
        ];
        description = "typed core for the library csound-expression";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "csound-sampler" = callPackage
@@ -64378,6 +65443,8 @@ self: {
        libraryHaskellDepends = [ base csound-expression transformers ];
        description = "A musical sampler based on Csound";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "csp" = callPackage
@@ -64760,8 +65827,8 @@ self: {
      }:
      mkDerivation {
        pname = "cublas";
-       version = "0.5.0.0";
-       sha256 = "0s47wrmlb35dpym4dz3688qx8m166i2a9d8pqnfdzxy67zv98g1f";
+       version = "0.6.0.0";
+       sha256 = "0yxyynvf9zlkc8yhra5j1sk1d8hbiqvzbsh02mc1y8hcf8nzyp61";
        setupHaskellDepends = [ base Cabal cuda directory filepath ];
        libraryHaskellDepends = [
          base cuda half storable-complex template-haskell
@@ -64794,11 +65861,12 @@ self: {
      }:
      mkDerivation {
        pname = "cuckoo";
-       version = "0.2.0.1";
-       sha256 = "1q070hzrsm0f1lfxnsk4jmmb9pay98522k2lqncvzg09fm2a687j";
+       version = "0.2.1";
+       sha256 = "1bv39vfg0yzancyya1cdbrcdc0gasp0djcc9ryiwrc3kf9y0nbzn";
        libraryHaskellDepends = [ base memory primitive random vector ];
        testHaskellDepends = [
-         base bytestring cryptonite doctest hashable memory stopwatch
+         base bytestring cryptonite doctest hashable memory primitive
+         stopwatch
        ];
        benchmarkHaskellDepends = [
          base bytestring criterion memory QuickCheck stopwatch
@@ -64842,10 +65910,8 @@ self: {
      }:
      mkDerivation {
        pname = "cuda";
-       version = "0.10.1.0";
-       sha256 = "10lyyc652ic3m4r5agszpv2r99y9fnsdwahb5pd4qiga770v45vp";
-       revision = "2";
-       editedCabalFile = "1nw135pd2ab3mmyq3xmkxynzfb54qr7a8xssq5ivrk83yzvs87im";
+       version = "0.10.2.0";
+       sha256 = "0fkjibnnxradhsbasx1mw0c088cfwypnk6a5002rxpzxid5qrp9l";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal directory filepath ];
@@ -64856,6 +65922,7 @@ self: {
        executableHaskellDepends = [ base pretty ];
        description = "FFI binding to the CUDA interface for programming NVIDIA GPUs";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "cudd" = callPackage
@@ -64882,8 +65949,8 @@ self: {
        pname = "cue-sheet";
        version = "2.0.1";
        sha256 = "0papll3xcq2ipmya61jr71gf3zx2swmys829x5sbz7lv6abj9r3i";
-       revision = "1";
-       editedCabalFile = "0md9051a0jp4vkss15dyyf1w7ylpqmvzfdj9xb1rgj95s1x7cx2g";
+       revision = "2";
+       editedCabalFile = "0kblqr8mjmps56a7pbjwnby5ik8grmj15l1qir7q9kbn44x4s8l3";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers exceptions megaparsec mtl QuickCheck
@@ -64904,8 +65971,8 @@ self: {
      }:
      mkDerivation {
        pname = "cufft";
-       version = "0.9.0.1";
-       sha256 = "1cf11ia4i19bpbs0wzkz2hqzc22hh2dvbn8m5frnwild83zal4n3";
+       version = "0.10.0.0";
+       sha256 = "1prma5srgfnhjvf1rvxd1kznv42k4svhk05j93mx1pcx7jd1cmvz";
        setupHaskellDepends = [
          base Cabal cuda directory filepath template-haskell
        ];
@@ -64957,23 +66024,23 @@ self: {
      }) {};
 
   "curl-runnings" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, case-insensitive, clock
-     , cmdargs, connection, directory, hspec, hspec-expectations
-     , http-client-tls, http-conduit, http-types, megaparsec
-     , pretty-simple, raw-strings-qq, regex-posix, tar, text, time
-     , unordered-containers, vector, yaml, zlib
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
+     , case-insensitive, clock, cmdargs, connection, directory, hspec
+     , hspec-expectations, http-client-tls, http-conduit, http-types
+     , megaparsec, pretty-simple, raw-strings-qq, regex-posix, tar, text
+     , time, unordered-containers, vector, yaml, zlib
      }:
      mkDerivation {
        pname = "curl-runnings";
-       version = "0.12.0";
-       sha256 = "091csiklwxhc8qjzqh3jmq7qvrr5z5z1mgndbli03wd33jhq5rw8";
+       version = "0.14.0";
+       sha256 = "1f4b44b8sw4fpbkcl3naj5y3d3j8d6sb9lxf7k0vy49aghmw50p6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base bytestring case-insensitive clock connection directory
-         hspec hspec-expectations http-client-tls http-conduit http-types
-         megaparsec pretty-simple regex-posix text time unordered-containers
-         vector yaml
+         aeson base base64-bytestring bytestring case-insensitive clock
+         connection directory hspec hspec-expectations http-client-tls
+         http-conduit http-types megaparsec pretty-simple regex-posix text
+         time unordered-containers vector yaml
        ];
        executableHaskellDepends = [
          aeson base bytestring cmdargs directory http-conduit tar text zlib
@@ -65286,8 +66353,8 @@ self: {
      }:
      mkDerivation {
        pname = "curve25519";
-       version = "0.2.3";
-       sha256 = "0kwn7g479vpmir0vklvj7pw9xav3l463i1apzrqd45paiz88px6k";
+       version = "0.2.5";
+       sha256 = "1j2fc1wv6xx95sicx2m44dm41gdfspb74qmh58592pp5fcv54vbb";
        libraryHaskellDepends = [ base bytestring crypto-api ];
        testHaskellDepends = [
          base bytestring crypto-api DRBG HUnit QuickCheck tagged
@@ -65323,8 +66390,8 @@ self: {
      }:
      mkDerivation {
        pname = "cusolver";
-       version = "0.2.0.0";
-       sha256 = "0v30wm32jcz7jy940y26zcqvjy1058bqf0v44xf73v53dlwkd07a";
+       version = "0.3.0.0";
+       sha256 = "0xskvpjqlckpfrfvnb2afj29p2gnzafq2v98pbvwsprmn60np9mq";
        setupHaskellDepends = [ base Cabal cuda directory filepath ];
        libraryHaskellDepends = [
          base cublas cuda cusparse half storable-complex template-haskell
@@ -65341,8 +66408,8 @@ self: {
      }:
      mkDerivation {
        pname = "cusparse";
-       version = "0.2.0.0";
-       sha256 = "1y6qnxfdcw3ik3mjp4410846pq1l628d02bdasll1xd4r4r87vh6";
+       version = "0.3.0.0";
+       sha256 = "0x2ab7sd7j1mmjns8332mm2nzikprq3w6fbrnbcfk5lz2x0bgir2";
        setupHaskellDepends = [ base Cabal cuda directory filepath ];
        libraryHaskellDepends = [ base cuda half storable-complex ];
        libraryToolDepends = [ c2hs ];
@@ -65365,34 +66432,41 @@ self: {
      }) {};
 
   "cut-the-crap" = callPackage
-    ({ mkDerivation, base, exceptions, generic-lens, hspec, hspec-core
-     , lens, optparse-applicative, optparse-generic, regex-tdfa, shelly
-     , system-filepath, temporary, text, unliftio-core
+    ({ mkDerivation, base, c2hs, exceptions, generic-lens, hspec
+     , hspec-core, lens, optparse-applicative, pocketsphinx, QuickCheck
+     , quickcheck-classes, regex-tdfa, shelly, sphinxbase
+     , system-filepath, temporary, text, time, unliftio-core
      }:
      mkDerivation {
        pname = "cut-the-crap";
-       version = "1.0.0";
-       sha256 = "0mq6hzv48ry3n8y0b60qbf3ddkfk2aqny4c1hzn92mqffhg4r0zr";
+       version = "1.4.2";
+       sha256 = "16l8ar38nl2sgsbwjslhxd8z2wyjmdgmi51sic3vvyv7n6b9mr51";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base exceptions generic-lens lens optparse-applicative
-         optparse-generic regex-tdfa shelly system-filepath temporary text
-         unliftio-core
+         base exceptions generic-lens lens optparse-applicative regex-tdfa
+         shelly system-filepath temporary text time unliftio-core
        ];
+       libraryPkgconfigDepends = [ pocketsphinx sphinxbase ];
+       libraryToolDepends = [ c2hs ];
        executableHaskellDepends = [
-         base exceptions generic-lens lens optparse-applicative
-         optparse-generic regex-tdfa shelly system-filepath temporary text
-         unliftio-core
+         base exceptions generic-lens lens optparse-applicative regex-tdfa
+         shelly system-filepath temporary text time unliftio-core
        ];
+       executablePkgconfigDepends = [ pocketsphinx sphinxbase ];
+       executableToolDepends = [ c2hs ];
        testHaskellDepends = [
          base exceptions generic-lens hspec hspec-core lens
-         optparse-applicative optparse-generic regex-tdfa shelly
-         system-filepath temporary text unliftio-core
+         optparse-applicative QuickCheck quickcheck-classes regex-tdfa
+         shelly system-filepath temporary text time unliftio-core
        ];
+       testPkgconfigDepends = [ pocketsphinx sphinxbase ];
+       testToolDepends = [ c2hs ];
        description = "Cuts out uninteresting parts of videos by detecting silences";
        license = stdenv.lib.licenses.mit;
-     }) {};
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) pocketsphinx; inherit (pkgs) sphinxbase;};
 
   "cutter" = callPackage
     ({ mkDerivation, base, bytestring, explicit-exception, spreadsheet
@@ -65730,38 +66804,43 @@ self: {
 
   "darcs" = callPackage
     ({ mkDerivation, array, async, attoparsec, base, base16-bytestring
-     , binary, bytestring, Cabal, cmdargs, containers, cryptohash, curl
-     , data-ordlist, directory, fgl, filepath, FindBin, graphviz
-     , hashable, haskeline, html, HTTP, HUnit, mmap, mtl, network
-     , network-uri, old-time, parsec, process, QuickCheck, random
-     , regex-applicative, regex-compat-tdfa, sandi, shelly, split, stm
-     , tar, terminfo, test-framework, test-framework-hunit
-     , test-framework-quickcheck2, text, time, transformers, unix
-     , unix-compat, utf8-string, vector, zip-archive, zlib
+     , binary, bytestring, Cabal, cmdargs, conduit, constraints
+     , containers, cryptonite, data-ordlist, directory, exceptions, fgl
+     , filepath, FindBin, hashable, haskeline, html, http-conduit
+     , http-types, HUnit, leancheck, memory, mmap, monad-control, mtl
+     , network, network-uri, old-time, parsec, process, QuickCheck
+     , regex-applicative, regex-compat-tdfa, sandi, split, stm
+     , system-fileio, system-filepath, tar, temporary, terminfo
+     , test-framework, test-framework-hunit, test-framework-leancheck
+     , test-framework-quickcheck2, text, time, transformers
+     , transformers-base, unix, unix-compat, utf8-string, vector
+     , zip-archive, zlib
      }:
      mkDerivation {
        pname = "darcs";
-       version = "2.14.4";
-       sha256 = "0qk70a2i5p69lai0vzrckjql3rz8sfiq5vnpafmscmq8018i2wp7";
+       version = "2.16.2";
+       sha256 = "1nsmaai4l5zas4v1vk92nvh721dykcxrpd4c2v9bh3wi3n2m45qn";
        configureFlags = [ "-fforce-char8-encoding" "-flibrary" ];
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal directory filepath process ];
        libraryHaskellDepends = [
          array async attoparsec base base16-bytestring binary bytestring
-         containers cryptohash data-ordlist directory fgl filepath graphviz
-         hashable haskeline html HTTP mmap mtl network network-uri old-time
-         parsec process random regex-applicative regex-compat-tdfa sandi stm
-         tar terminfo text time transformers unix unix-compat utf8-string
-         vector zip-archive zlib
+         conduit constraints containers cryptonite data-ordlist directory
+         fgl filepath hashable haskeline html http-conduit http-types memory
+         mmap mtl network network-uri old-time parsec process
+         regex-applicative regex-compat-tdfa sandi stm tar temporary
+         terminfo text time transformers unix unix-compat utf8-string vector
+         zip-archive zlib
        ];
-       librarySystemDepends = [ curl ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
-         array base bytestring cmdargs containers directory filepath FindBin
-         HUnit mtl QuickCheck shelly split test-framework
-         test-framework-hunit test-framework-quickcheck2 text transformers
-         zip-archive
+         array async base bytestring cmdargs constraints containers
+         directory exceptions filepath FindBin HUnit leancheck monad-control
+         mtl process QuickCheck split system-fileio system-filepath
+         test-framework test-framework-hunit test-framework-leancheck
+         test-framework-quickcheck2 text time transformers transformers-base
+         unix-compat vector zip-archive
        ];
        doCheck = false;
        postInstall = ''
@@ -65769,8 +66848,8 @@ self: {
          mv contrib/darcs_completion $out/etc/bash_completion.d/darcs
        '';
        description = "a distributed, interactive, smart revision control system";
-       license = stdenv.lib.licenses.gpl2;
-     }) {inherit (pkgs) curl;};
+       license = stdenv.lib.licenses.gpl2Plus;
+     }) {};
 
   "darcs-benchmark" = callPackage
     ({ mkDerivation, base, bytestring, cmdargs, containers, datetime
@@ -66946,15 +68025,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "data-fix_0_3_0" = callPackage
+    ({ mkDerivation, base, deepseq, hashable }:
+     mkDerivation {
+       pname = "data-fix";
+       version = "0.3.0";
+       sha256 = "184rz8ypgrb3sxy9wiaq321d82p689w7dcwkc0qkjlabd7nv6ncy";
+       libraryHaskellDepends = [ base deepseq hashable ];
+       description = "Fixpoint data types";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "data-fix-cse" = callPackage
     ({ mkDerivation, base, containers, data-fix, transformers }:
      mkDerivation {
        pname = "data-fix-cse";
-       version = "0.0.2";
-       sha256 = "1xn6qnir5dss23y8d71dsy78sdk7hczwprxir8v6la15c43rf9p2";
+       version = "0.0.3";
+       sha256 = "1v8ffi5c0sz8q2fla6fab4css3pkjmi0knx5d04mvffhw66bjhbz";
        libraryHaskellDepends = [ base containers data-fix transformers ];
        description = "Common subexpression elimination for the fixploint types";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "data-flags" = callPackage
@@ -67879,6 +68972,20 @@ self: {
        broken = true;
      }) {};
 
+  "data-validation" = callPackage
+    ({ mkDerivation, base, containers, hspec, template-haskell }:
+     mkDerivation {
+       pname = "data-validation";
+       version = "0.1.0.1";
+       sha256 = "0bc3i4pnz1v516cmsnay1hpmh9r7zglwyv2ai1ncxy2k4l78pih0";
+       libraryHaskellDepends = [ base containers template-haskell ];
+       testHaskellDepends = [ base containers hspec template-haskell ];
+       description = "A library for creating type safe validations";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "data-variant" = callPackage
     ({ mkDerivation, base, safe }:
      mkDerivation {
@@ -68094,8 +69201,8 @@ self: {
      }:
      mkDerivation {
        pname = "dataflower";
-       version = "0.2.1.0";
-       sha256 = "14pypk9lv5fri55waigl5526nq9rrbk4q3i5nxn4cyxra4gk3946";
+       version = "0.3.0.0";
+       sha256 = "0nxir4syhbw5spqks3pxj71w781vn8mqxdiig9dqnrv5ks02bqp6";
        libraryHaskellDepends = [
          base hashable mtl pretty-show stm time transformers vector
        ];
@@ -68558,8 +69665,8 @@ self: {
      }:
      mkDerivation {
        pname = "dbus";
-       version = "1.2.15.1";
-       sha256 = "1fq1ds5lkgysi5cpbwh97233vil6w9djxn6dcp5sjj7r5gb76vj7";
+       version = "1.2.16";
+       sha256 = "103zxllh7nwbbckjblidr45xa13lrpqh9bwhvirrx24g7hsj1y9c";
        libraryHaskellDepends = [
          base bytestring cereal conduit containers deepseq exceptions
          filepath lens network parsec random split template-haskell text
@@ -69252,8 +70359,8 @@ self: {
      }:
      mkDerivation {
        pname = "debug-me";
-       version = "1.20190926";
-       sha256 = "0qy2ianwal4v4s0m13yjszk032dp3y6k4p61whwmlp49xmqvwjyb";
+       version = "1.20200820";
+       sha256 = "1pxcycgdd0gmiqabpbjkish31yb2n7bqgwd1fm1na6w6xmjlh58a";
        isLibrary = false;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal filepath ];
@@ -69833,8 +70940,8 @@ self: {
      }:
      mkDerivation {
        pname = "dejafu";
-       version = "2.3.0.0";
-       sha256 = "09lqniw3gacyykmk23vl4icyhiixdyjps50cwvcmlwd8k4941gwa";
+       version = "2.3.0.1";
+       sha256 = "0klw2knnhqanmfjz2hjrj5sag6bqkh1g6vhgbvyk3d532m748wx1";
        libraryHaskellDepends = [
          base concurrency containers contravariant deepseq exceptions
          leancheck profunctors random transformers
@@ -69843,14 +70950,14 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "dejafu_2_3_0_1" = callPackage
+  "dejafu_2_4_0_0" = callPackage
     ({ mkDerivation, base, concurrency, containers, contravariant
      , deepseq, exceptions, leancheck, profunctors, random, transformers
      }:
      mkDerivation {
        pname = "dejafu";
-       version = "2.3.0.1";
-       sha256 = "0klw2knnhqanmfjz2hjrj5sag6bqkh1g6vhgbvyk3d532m748wx1";
+       version = "2.4.0.0";
+       sha256 = "1kj4ygdbbkr54bqknxk3jqif74jxgpid7cz9vzcm2m15h8q2z9k2";
        libraryHaskellDepends = [
          base concurrency containers contravariant deepseq exceptions
          leancheck profunctors random transformers
@@ -70173,6 +71280,20 @@ self: {
        broken = true;
      }) {};
 
+  "dependent-map_0_2_4_0" = callPackage
+    ({ mkDerivation, base, containers, dependent-sum }:
+     mkDerivation {
+       pname = "dependent-map";
+       version = "0.2.4.0";
+       sha256 = "0il2naf6gdkvkhscvqd8kg9v911vdhqp9h10z5546mninnyrdcsx";
+       revision = "1";
+       editedCabalFile = "0a5f35d1sgfq1cl1r5bgb5pwfjniiycxiif4ycxglaizp8g5rlr1";
+       libraryHaskellDepends = [ base containers dependent-sum ];
+       description = "Dependent finite maps (partial dependent products)";
+       license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "dependent-map" = callPackage
     ({ mkDerivation, base, constraints-extras, containers
      , dependent-sum
@@ -70220,6 +71341,18 @@ self: {
        broken = true;
      }) {};
 
+  "dependent-sum_0_4" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "dependent-sum";
+       version = "0.4";
+       sha256 = "07hs9s78wiybwjwkal2yq65hdavq0gg1h2ld7wbph61s2nsfrpm8";
+       libraryHaskellDepends = [ base ];
+       description = "Dependent sum type";
+       license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "dependent-sum" = callPackage
     ({ mkDerivation, base, constraints-extras, some }:
      mkDerivation {
@@ -70245,8 +71378,6 @@ self: {
        ];
        description = "JSON instances for DSum, DMap, and Some";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "dependent-sum-template" = callPackage
@@ -70506,8 +71637,8 @@ self: {
     ({ mkDerivation, base, bifunctors, reflection, template-haskell }:
      mkDerivation {
        pname = "derive-lifted-instances";
-       version = "0.1.1";
-       sha256 = "107nfd2q54whsaagq3wjh43dr0hgncczanw90lyiqirjr4kz07hs";
+       version = "0.2";
+       sha256 = "1bms5m5hfrq4qg1gxxc045qms9jqrqgbd0695cxqnx9vyr86fpxf";
        libraryHaskellDepends = [
          base bifunctors reflection template-haskell
        ];
@@ -70929,8 +72060,8 @@ self: {
      }:
      mkDerivation {
        pname = "devtools";
-       version = "0.0.1";
-       sha256 = "0jlzwvh49x1psxnn6gz75g2pipcmzljgg71b2j1807ia82wn01j3";
+       version = "0.0.3";
+       sha256 = "09lwvi4mbwkhazzmngpblxh2bvvxz1j4ndzsh3bp3nwwwa0xiihm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -71147,59 +72278,7 @@ self: {
        benchmarkHaskellDepends = [
          base bytestring containers directory gauge serialise text
        ];
-       description = "A configuration language guaranteed to terminate";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
-  "dhall_1_30_0" = 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, hashable, haskeline, http-client, http-client-tls
-     , http-types, lens-family-core, megaparsec, memory, mockery, mtl
-     , network-uri, optparse-applicative, parser-combinators, parsers
-     , pretty-simple, prettyprinter, prettyprinter-ansi-terminal
-     , profunctors, QuickCheck, quickcheck-instances, repline
-     , scientific, semigroups, serialise, special-values, spoon, tasty
-     , tasty-expected-failure, tasty-hunit, tasty-quickcheck
-     , template-haskell, text, th-lift-instances, transformers
-     , transformers-compat, turtle, unordered-containers, uri-encode
-     , vector
-     }:
-     mkDerivation {
-       pname = "dhall";
-       version = "1.30.0";
-       sha256 = "10aagimwa5ycrq15240ff2g7r0n995waa33vaz0h51nqvncrbgpj";
-       revision = "1";
-       editedCabalFile = "1pazhb3h1rabb80wxh29k5yfp915zqp1gmhcv4mx7ibzv9zw7miq";
-       isLibrary = true;
-       isExecutable = 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 hashable haskeline http-client http-client-tls http-types
-         lens-family-core megaparsec memory mtl network-uri
-         optparse-applicative parser-combinators parsers pretty-simple
-         prettyprinter prettyprinter-ansi-terminal profunctors repline
-         scientific serialise template-haskell text 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 lens-family-core megaparsec
-         mockery prettyprinter QuickCheck quickcheck-instances scientific
-         semigroups serialise special-values spoon tasty
-         tasty-expected-failure tasty-hunit tasty-quickcheck text
-         transformers turtle unordered-containers vector
-       ];
-       benchmarkHaskellDepends = [
-         base bytestring containers directory gauge serialise text
-       ];
+       doCheck = false;
        description = "A configuration language guaranteed to terminate";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -71254,18 +72333,19 @@ self: {
        benchmarkHaskellDepends = [
          base bytestring containers directory gauge serialise text
        ];
+       doCheck = false;
        description = "A configuration language guaranteed to terminate";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall_1_33_1" = callPackage
+  "dhall_1_34_0" = 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
-     , mockery, mtl, network-uri, optparse-applicative
+     , mmorph, mockery, mtl, network-uri, optparse-applicative
      , parser-combinators, parsers, pretty-simple, prettyprinter
      , prettyprinter-ansi-terminal, profunctors, QuickCheck
      , quickcheck-instances, repline, scientific, semigroups, serialise
@@ -71276,19 +72356,22 @@ self: {
      }:
      mkDerivation {
        pname = "dhall";
-       version = "1.33.1";
-       sha256 = "17l6qh5zhy0gnxw0x5v4c6n00dmgk279lfyi65n2hsbpaspw7h2k";
+       version = "1.34.0";
+       sha256 = "0rqvzvcqbhs9gvga7api6jjblnypm4a33z8kxi578ps63mhn3g0d";
+       revision = "2";
+       editedCabalFile = "1gvfcizp3blqas5ccgnqmahwq26xwd23kqh1vc9712agq7384z98";
        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 mtl network-uri
-         optparse-applicative parser-combinators parsers pretty-simple
-         prettyprinter prettyprinter-ansi-terminal profunctors repline
-         scientific serialise template-haskell text text-manipulate
+         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
        ];
@@ -71305,6 +72388,7 @@ self: {
        benchmarkHaskellDepends = [
          base bytestring containers directory gauge serialise text
        ];
+       doCheck = false;
        description = "A configuration language guaranteed to terminate";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -71333,14 +72417,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall-bash_1_0_31" = callPackage
+  "dhall-bash_1_0_32" = callPackage
     ({ mkDerivation, base, bytestring, containers, dhall
      , neat-interpolation, optparse-generic, shell-escape, text
      }:
      mkDerivation {
        pname = "dhall-bash";
-       version = "1.0.31";
-       sha256 = "10xp159bzbwnzapixrndg7sb0v5bg7li1nkr48akh6h4icpvnfsp";
+       version = "1.0.32";
+       sha256 = "0y4pjrknbq48j1cnj25zf31k02j5ivjm3h6ffizr3vgr24whfxih";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -71374,6 +72458,39 @@ self: {
        broken = true;
      }) {};
 
+  "dhall-docs" = callPackage
+    ({ mkDerivation, base, bytestring, containers, dhall, directory
+     , doctest, file-embed, filepath, foldl, HaXml, lens-family-core
+     , lucid, megaparsec, mmark, mtl, optparse-applicative, path
+     , path-io, pretty, prettyprinter, tar, tasty, tasty-hunit
+     , tasty-silver, text, turtle
+     }:
+     mkDerivation {
+       pname = "dhall-docs";
+       version = "1.0.0";
+       sha256 = "0kfn3nr0g4x5bpdrkg5lh8qma2536k3gx7bvrsrkn53lyyxnbnvi";
+       revision = "1";
+       editedCabalFile = "1g4mmf6276rndzq95s41qmj7vfmpabmnnv4v077vgrsravqqyrlb";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base bytestring containers dhall directory file-embed filepath
+         lens-family-core lucid megaparsec mmark mtl optparse-applicative
+         path path-io prettyprinter tar text
+       ];
+       executableHaskellDepends = [ base dhall ];
+       testHaskellDepends = [
+         base bytestring containers dhall directory doctest filepath foldl
+         HaXml path path-io pretty tasty tasty-hunit tasty-silver text
+         turtle
+       ];
+       description = "Generate HTML docs from a dhall package";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "dhall-fly" = callPackage
     ({ mkDerivation, aeson, aeson-casing, aeson-yaml, base, bytestring
      , dhall, dhall-json, hspec, hspec-discover, optparse-applicative
@@ -71439,25 +72556,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall-json_1_7_0" = callPackage
+  "dhall-json_1_7_1" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, aeson-yaml, ansi-terminal
      , base, bytestring, containers, dhall, exceptions, filepath
-     , optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
-     , scientific, tasty, tasty-hunit, tasty-silver, text
-     , unordered-containers, vector
+     , 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.0";
-       sha256 = "1nk2dibdnzm5wmvlsf82n8hc0zab1chqw339pp9q5n2gavj8kvsi";
-       revision = "1";
-       editedCabalFile = "1xbr4cphc98frf458vsggx5lh3my7ahlz5fl19hnyy876iwb04hm";
+       version = "1.7.1";
+       sha256 = "158c9vhxa124r1xqn365wvwqhby5rngkip08ghy8rnjs5ijcxzgf";
+       revision = "3";
+       editedCabalFile = "1xxc1nsg86y2qzl4ln4jhlqw118bijyakr0mnyz801ap1ffgqfmb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-pretty aeson-yaml base bytestring containers dhall
-         exceptions filepath optparse-applicative prettyprinter scientific
-         text unordered-containers vector
+         exceptions filepath lens-family-core optparse-applicative
+         prettyprinter scientific text unordered-containers vector
        ];
        executableHaskellDepends = [
          aeson aeson-pretty ansi-terminal base bytestring dhall exceptions
@@ -71519,14 +72636,46 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "dhall-lsp-server_1_0_9" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
+     , data-default, dhall, dhall-json, directory, doctest, filepath
+     , haskell-lsp, haskell-lsp-types, hslogger, lens, lens-family-core
+     , 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.9";
+       sha256 = "0zf53pc8rxapmdm9fvp04gfnw2910yv1gm5sm5v5wb606njzk0xn";
+       revision = "1";
+       editedCabalFile = "1ml2yhwwbwwdv13266fgjk39pk04hg0ak82y08aixcryaldfhgwi";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty base bytestring containers data-default dhall
+         dhall-json directory filepath haskell-lsp hslogger lens
+         lens-family-core 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 = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "dhall-nix" = callPackage
     ({ mkDerivation, base, containers, data-fix, dhall, hnix
      , lens-family-core, neat-interpolation, optparse-generic, text
      }:
      mkDerivation {
        pname = "dhall-nix";
-       version = "1.1.15";
-       sha256 = "0ynbl5nrsql9y0nh7kiyvf9h0z61d2d5v1iga8vidaqvdkih383h";
+       version = "1.1.16";
+       sha256 = "1p9aizzf7zx92ns292zyzvg01r85dpl3wa61nh6g3q16qjs35bcx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -71538,8 +72687,29 @@ self: {
        ];
        description = "Dhall to Nix compiler";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
+     }) {};
+
+  "dhall-nixpkgs" = callPackage
+    ({ mkDerivation, aeson, base, data-fix, dhall, foldl, hnix
+     , lens-family-core, megaparsec, mmorph, neat-interpolation
+     , network-uri, optparse-applicative, prettyprinter, text
+     , transformers, turtle
+     }:
+     mkDerivation {
+       pname = "dhall-nixpkgs";
+       version = "1.0.0";
+       sha256 = "1bymafh0p0avfsdpcijj76075pgkn81sf6f3y17m7p0lmp8hhh75";
+       revision = "1";
+       editedCabalFile = "0zg6rcjs96xh060k56p0y2rvwkb17pqd8qa52b2yalx5b7k70gys";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson base data-fix dhall foldl hnix lens-family-core megaparsec
+         mmorph neat-interpolation network-uri optparse-applicative
+         prettyprinter text transformers turtle
+       ];
+       description = "Convert Dhall projects to Nix packages";
+       license = stdenv.lib.licenses.bsd3;
      }) {};
 
   "dhall-text" = callPackage
@@ -71623,7 +72793,7 @@ self: {
        broken = true;
      }) {};
 
-  "dhall-yaml_1_2_0" = callPackage
+  "dhall-yaml_1_2_1" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring, dhall
      , dhall-json, exceptions, HsYAML, HsYAML-aeson
      , optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
@@ -71631,8 +72801,10 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-yaml";
-       version = "1.2.0";
-       sha256 = "0jvz8xjj2f0g8pxaspgvg7rzhfyccz1rgvp4l3c9zjri3wirxpwp";
+       version = "1.2.1";
+       sha256 = "18p8a92wiz2zi4q7v5fjvdallxrl21scmwwv706g3mm5dgfgcs5a";
+       revision = "2";
+       editedCabalFile = "0ni3jamaz552nd0lp142ga42cmh956jq0zv34jzqfzfz7d3i5yw6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -71793,8 +72965,8 @@ self: {
     ({ mkDerivation, base, df1, di-core, di-df1, di-handle, polysemy }:
      mkDerivation {
        pname = "di-polysemy";
-       version = "0.1.4.0";
-       sha256 = "0p9wyli73skjbdbb0dgqb3p37rbijpadywsi0dwjdwdzpddjarcm";
+       version = "0.2.0.0";
+       sha256 = "09n9kjfv6zx016zkglr0ya0gmi18xdgl08iv7pvh41h0mp435aaq";
        libraryHaskellDepends = [
          base df1 di-core di-df1 di-handle polysemy
        ];
@@ -72449,6 +73621,8 @@ self: {
        libraryHaskellDepends = [ base parsec random-fu transformers ];
        description = "Simplistic D&D style dice-rolling system";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "dice-entropy-conduit" = callPackage
@@ -73105,6 +74279,18 @@ self: {
        license = stdenv.lib.licenses.gpl2;
      }) {};
 
+  "dijkstra-simple" = callPackage
+    ({ mkDerivation, base, containers, fingertree, hspec }:
+     mkDerivation {
+       pname = "dijkstra-simple";
+       version = "0.1.0";
+       sha256 = "068jfmkk14fmyd8ars13zi8z716d7ak0mxj3zm5f1zyj31901wz8";
+       libraryHaskellDepends = [ base containers fingertree ];
+       testHaskellDepends = [ base containers fingertree hspec ];
+       description = "A simpler Dijkstra shortest paths implementation";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "dimensional" = callPackage
     ({ mkDerivation, base, criterion, deepseq, doctest, exact-pi, Glob
      , hspec, hspec-discover, ieee754, numtype-dk, QuickCheck
@@ -73672,22 +74858,22 @@ self: {
   "discord-haskell" = callPackage
     ({ mkDerivation, aeson, async, base, base64-bytestring, bytestring
      , containers, data-default, emoji, http-client, iso8601-time
-     , JuicyPixels, MonadRandom, req, safe-exceptions, text, time
-     , unordered-containers, vector, websockets, wuss
+     , JuicyPixels, MonadRandom, mtl, req, safe-exceptions, text, time
+     , unliftio, unordered-containers, vector, websockets, wuss
      }:
      mkDerivation {
        pname = "discord-haskell";
-       version = "1.6.0";
-       sha256 = "1abjkssssxj4a7zmb9dq7dgpkrmkjblz5smrj4qd3kpjhai6vs7c";
+       version = "1.8.0";
+       sha256 = "1zh4xf5a8ppfhcnkhai4mi0a7aj7m8qp8hcnyfi6s3nc86k7wj2w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson async base base64-bytestring bytestring containers
          data-default emoji http-client iso8601-time JuicyPixels MonadRandom
-         req safe-exceptions text time unordered-containers vector
-         websockets wuss
+         mtl req safe-exceptions text time unliftio unordered-containers
+         vector websockets wuss
        ];
-       executableHaskellDepends = [ base text ];
+       executableHaskellDepends = [ base text unliftio ];
        description = "Write bots for Discord in Haskell";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -74711,8 +75897,8 @@ self: {
        pname = "distributive";
        version = "0.6.2";
        sha256 = "1j93zkfffm6s16kgr0j0z87y5ds28rw0r2gyc5ncwcylvrqy4kl2";
-       revision = "1";
-       editedCabalFile = "1m1fv0ar214pqfsa4lbsn2b94npnqpnbg56wp2gim9i896fkdlhs";
+       revision = "2";
+       editedCabalFile = "11y4qanr09880d7sxkhrzrh3cpmqbx001hiqhsr2s75xrnmrpkia";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base base-orphans tagged transformers ];
        testHaskellDepends = [ base doctest generic-deriving hspec ];
@@ -74917,6 +76103,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "dlist_1_0" = callPackage
+    ({ mkDerivation, base, deepseq, QuickCheck }:
+     mkDerivation {
+       pname = "dlist";
+       version = "1.0";
+       sha256 = "0581a60xw4gw7pmqlmg5w2hr4hm9yjgx4c2z6v63y5xv51rn6g8p";
+       libraryHaskellDepends = [ base deepseq ];
+       testHaskellDepends = [ base QuickCheck ];
+       description = "Difference lists";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "dlist-instances" = callPackage
     ({ mkDerivation, base, dlist, semigroups }:
      mkDerivation {
@@ -74937,8 +76136,8 @@ self: {
        pname = "dlist-nonempty";
        version = "0.1.1";
        sha256 = "0csbspdy43pzvasb5mhs5pz2f49ws78pi253cx7pp84wjx6ads20";
-       revision = "8";
-       editedCabalFile = "134fcrv7lmbhzmgp07vp3fdjbbjrkkracvjf6ma5k2fwcw0wfkff";
+       revision = "9";
+       editedCabalFile = "09qgsqzjnkr5d2lwdz86q3zrikd5hacd62hvvfdqy39kh5wrqn4y";
        libraryHaskellDepends = [
          base base-compat deepseq dlist semigroupoids
        ];
@@ -75201,39 +76400,95 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "dobutokO-effects" = callPackage
+    ({ mkDerivation, base, dobutokO-frequency }:
+     mkDerivation {
+       pname = "dobutokO-effects";
+       version = "0.13.0.0";
+       sha256 = "10xpr7nqhx1djsgcgfr40v7axkl8a0fxx16vrpvr7h525ygyibp5";
+       libraryHaskellDepends = [ base dobutokO-frequency ];
+       description = "A library to deal with SoX effects and possibilities";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "dobutokO-frequency" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "dobutokO-frequency";
+       version = "0.1.1.0";
+       sha256 = "11ngz39dqdcv6xkff9b590cbhd94gx1q71v6cz3birmhvbf8qwrm";
+       libraryHaskellDepends = [ base ];
+       description = "Helps to create experimental music. Working with frequencies and types.";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "dobutokO-poetry" = callPackage
-    ({ mkDerivation, base, mmsyn3, mmsyn6ukr, mmsyn7s, vector }:
+    ({ mkDerivation, base, dobutokO-poetry-general, mmsyn2, mmsyn3
+     , mmsyn5, mmsyn6ukr, mmsyn7s, uniqueness-periods, vector
+     }:
      mkDerivation {
        pname = "dobutokO-poetry";
-       version = "0.5.0.0";
-       sha256 = "0nahsy5jhvg2q3zvalfr0p0pbjhschsvvly3hi59rp593p2n82hg";
+       version = "0.16.3.0";
+       sha256 = "151ncvk2jz2nlgr52485p6mdqix7qlld96kzi9y3hxag2kpb0723";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base mmsyn3 mmsyn6ukr mmsyn7s vector ];
+       libraryHaskellDepends = [
+         base dobutokO-poetry-general mmsyn2 mmsyn3 mmsyn5 mmsyn6ukr mmsyn7s
+         uniqueness-periods vector
+       ];
        executableHaskellDepends = [
-         base mmsyn3 mmsyn6ukr mmsyn7s vector
+         base dobutokO-poetry-general mmsyn2 mmsyn3 mmsyn5 mmsyn6ukr mmsyn7s
+         uniqueness-periods vector
        ];
        description = "Helps to order the 7 or less Ukrainian words to obtain somewhat suitable for poetry or music text";
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "dobutokO-poetry-general" = callPackage
+    ({ mkDerivation, base, mmsyn3, mmsyn6ukr, mmsyn7s, vector }:
+     mkDerivation {
+       pname = "dobutokO-poetry-general";
+       version = "0.1.0.0";
+       sha256 = "0gdhihblshxq70av2x8ni7vywdfic750kwq7qsbhagrqr71fvqb1";
+       libraryHaskellDepends = [ base mmsyn3 mmsyn6ukr mmsyn7s vector ];
+       description = "Helps to order the 7 or less words (first of all the Ukrainian ones) to obtain somewhat suitable for poetry or music text";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "dobutokO-poetry-general-languages" = callPackage
+    ({ mkDerivation, base, dobutokO-poetry-general, mmsyn3, mmsyn6ukr
+     , uniqueness-periods-general, vector
+     }:
+     mkDerivation {
+       pname = "dobutokO-poetry-general-languages";
+       version = "0.2.0.0";
+       sha256 = "0gw89nagj1adb70k1li1p1syzgmc6g4lb0yfnjr9caiddq9mi9x5";
+       libraryHaskellDepends = [
+         base dobutokO-poetry-general mmsyn3 mmsyn6ukr
+         uniqueness-periods-general vector
+       ];
+       description = "Helps to order the 7 or less words to obtain somewhat suitable for poetry or music text";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "dobutokO2" = callPackage
     ({ mkDerivation, base, bytestring, directory, mmsyn2, mmsyn3
-     , mmsyn6ukr, mmsyn7l, mmsyn7s, mmsyn7ukr, process, vector
+     , mmsyn6ukr, mmsyn7l, mmsyn7s, mmsyn7ukr, process
+     , uniqueness-periods, vector
      }:
      mkDerivation {
        pname = "dobutokO2";
-       version = "0.42.0.0";
-       sha256 = "12bjaa9kw1ks9f64zl0lg4447hs1bjjy5g3q3yhmabwzp5yyy014";
+       version = "0.43.0.0";
+       sha256 = "0f17ff77m16p951laijqf5w4pfw4pgc6x2ha13472h62dzg8gm2f";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring directory mmsyn2 mmsyn3 mmsyn6ukr mmsyn7l mmsyn7s
-         mmsyn7ukr process vector
+         mmsyn7ukr process uniqueness-periods vector
        ];
        executableHaskellDepends = [
          base bytestring directory mmsyn2 mmsyn3 mmsyn6ukr mmsyn7l mmsyn7s
-         mmsyn7ukr process vector
+         mmsyn7ukr process uniqueness-periods vector
        ];
        description = "Helps to create experimental music from a file (or its part) and a Ukrainian text";
        license = stdenv.lib.licenses.mit;
@@ -75245,8 +76500,8 @@ self: {
      }:
      mkDerivation {
        pname = "dobutokO3";
-       version = "0.2.1.0";
-       sha256 = "0xh6685v01j1r9fg8r7ldd8vqxlir2fylryb0z71ndpdi4ajvkih";
+       version = "0.3.0.0";
+       sha256 = "1dbax6j2sdn6cd6crskwr0r90ymxmjk596a9ak8gvlkrwpk1cbdm";
        libraryHaskellDepends = [
          base bytestring directory dobutokO2 mmsyn2 mmsyn3 mmsyn6ukr mmsyn7l
          mmsyn7s mmsyn7ukr process vector
@@ -75261,8 +76516,8 @@ self: {
      }:
      mkDerivation {
        pname = "dobutokO4";
-       version = "0.7.0.0";
-       sha256 = "16im8ki3jbc7jgvr8nwnr4mb19is1vf3pz6pdfrj4q9jfmrv82d2";
+       version = "0.8.0.0";
+       sha256 = "073kjv1m3qcrfyk8j8zs5hrc8x0bkyqnw6pa72afhkxq08dzj9y9";
        libraryHaskellDepends = [
          base directory dobutokO2 mmsyn3 mmsyn7l process vector
          vector-doublezip
@@ -75900,15 +77155,14 @@ self: {
      }) {};
 
   "dom-lt" = callPackage
-    ({ mkDerivation, array, base, containers, criterion, deepseq }:
+    ({ mkDerivation, array, base, containers, criterion, deepseq, HUnit
+     }:
      mkDerivation {
        pname = "dom-lt";
-       version = "0.2.0";
-       sha256 = "15jf1csnqwd56izw5zk6kbp2kk6y0zkgm9ddbwrk0k3ngmdqzkli";
-       revision = "1";
-       editedCabalFile = "1rkjm9ssi7j2klf11b8w1wlw3hg4ybcfxdi2klik6lm5mpb52x7w";
+       version = "0.2.2";
+       sha256 = "0hf0wf4fl671awf87f0r7r4a57cgm88x666081c0wy16qchahffw";
        libraryHaskellDepends = [ array base containers ];
-       testHaskellDepends = [ base containers ];
+       testHaskellDepends = [ base containers HUnit ];
        benchmarkHaskellDepends = [ base containers criterion deepseq ];
        description = "The Lengauer-Tarjan graph dominators algorithm";
        license = stdenv.lib.licenses.bsd3;
@@ -76071,8 +77325,8 @@ self: {
      }:
      mkDerivation {
        pname = "dotenv";
-       version = "0.8.0.4";
-       sha256 = "05dqa91zmxkzkz1dcpx2jxkzhdr4f51gw0qql47da9bllavl0jj4";
+       version = "0.8.0.6";
+       sha256 = "0ndgsjjcpmhxaxjn4mmw4cyd6i2y67zpx9ap099k5jw9ad0lbwb0";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -76969,20 +78223,6 @@ self: {
     ({ mkDerivation, array, base, containers, QuickCheck, random }:
      mkDerivation {
        pname = "dsp";
-       version = "0.2.5";
-       sha256 = "1lka6l0xf3p7cb9ikzvszwgr7pl3gjm0s5v312p6k4w1fqqsycl5";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ array base containers random ];
-       testHaskellDepends = [ array base containers QuickCheck ];
-       description = "Haskell Digital Signal Processing";
-       license = "GPL";
-     }) {};
-
-  "dsp_0_2_5_1" = callPackage
-    ({ mkDerivation, array, base, containers, QuickCheck, random }:
-     mkDerivation {
-       pname = "dsp";
        version = "0.2.5.1";
        sha256 = "03mhqqnjqjhklmlim6cljq5ik0l4h6lgqffw2i2clqgwj64ky5nf";
        isLibrary = true;
@@ -76991,7 +78231,6 @@ self: {
        testHaskellDepends = [ array base containers QuickCheck ];
        description = "Haskell Digital Signal Processing";
        license = stdenv.lib.licenses.gpl2;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "dstring" = callPackage
@@ -78111,8 +79350,8 @@ self: {
     ({ mkDerivation, base, vector }:
      mkDerivation {
        pname = "earcut";
-       version = "0.1.0.2";
-       sha256 = "080picb31ihv0gzxg0nnxx90g0n08l0hz9y57k2jihsibmkszwsi";
+       version = "0.1.0.4";
+       sha256 = "0nssl7n697rzwlfb5lq4kl64j4mrb4i19rp5kzjpmc7iin9fzxsf";
        libraryHaskellDepends = [ base vector ];
        description = "Binding to C++ earcut library";
        license = stdenv.lib.licenses.isc;
@@ -78937,6 +80176,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "effet" = callPackage
+    ({ mkDerivation, base, containers, monad-control, template-haskell
+     , transformers, transformers-base
+     }:
+     mkDerivation {
+       pname = "effet";
+       version = "0.2.0.0";
+       sha256 = "1fh6pyjalrns01sg1rnz2h462xgcmnj6xfg6xg61cdb4zh5i9gpp";
+       libraryHaskellDepends = [
+         base containers monad-control template-haskell transformers
+         transformers-base
+       ];
+       description = "An Effect System based on Type Classes";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "effin" = callPackage
     ({ mkDerivation, base, mtl }:
      mkDerivation {
@@ -79008,14 +80263,36 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "egison-pattern-src_0_2_1_1" = callPackage
+    ({ mkDerivation, base, containers, free, megaparsec, mtl
+     , parser-combinators, prettyprinter, recursion-schemes, tasty
+     , tasty-discover, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "egison-pattern-src";
+       version = "0.2.1.1";
+       sha256 = "0zpaxkskpdhq5nm1h6fh1klww4cslz96a3w4fhlaz0v0wdbkbrfs";
+       libraryHaskellDepends = [
+         base containers free megaparsec mtl parser-combinators
+         prettyprinter recursion-schemes text
+       ];
+       testHaskellDepends = [
+         base megaparsec mtl tasty tasty-hunit text
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Manipulating Egison patterns: abstract syntax, parser, and pretty-printer";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "egison-pattern-src-haskell-mode" = callPackage
     ({ mkDerivation, base, egison-pattern-src, haskell-src-exts, mtl
      , tasty, tasty-discover, tasty-hunit, text
      }:
      mkDerivation {
        pname = "egison-pattern-src-haskell-mode";
-       version = "0.2.1.0";
-       sha256 = "0lgvvw23ii0g62b8q67h4mfm2bd07akl2m8dp8855hm16q1b8w8n";
+       version = "0.2.1.1";
+       sha256 = "0k21fi28imqnn2rp5182mjxnrahssbdxay3pzhzj5yyfjp8qymwp";
        libraryHaskellDepends = [
          base egison-pattern-src haskell-src-exts mtl text
        ];
@@ -79034,10 +80311,8 @@ self: {
      }:
      mkDerivation {
        pname = "egison-pattern-src-th-mode";
-       version = "0.2.1.0";
-       sha256 = "0libfs39irdnqfvynmpji21p6nyk2s3zsxhlmsz763aya51ymxpy";
-       revision = "2";
-       editedCabalFile = "1ad2iii6csindqy9kd47zs1c04qj9fyg93iji5fxrb4wgmc90l2a";
+       version = "0.2.1.1";
+       sha256 = "110rykbxkpv9vrqvwdxm0fa73djy2g5swcxzpx61zh6cl4wk949g";
        libraryHaskellDepends = [
          base egison-pattern-src haskell-src-exts haskell-src-meta mtl
          pretty template-haskell text
@@ -79224,6 +80499,21 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "either-result" = callPackage
+    ({ mkDerivation, base, doctest, doctest-discover, hspec
+     , hspec-discover, mtl, transformers
+     }:
+     mkDerivation {
+       pname = "either-result";
+       version = "0.3.1.0";
+       sha256 = "1l4539j0ynn5jl0rh9bhjxlgvr0sn3bf8ws1zrlbfk15524znqhm";
+       libraryHaskellDepends = [ base mtl transformers ];
+       testHaskellDepends = [ base doctest hspec transformers ];
+       testToolDepends = [ doctest-discover hspec-discover ];
+       description = "‘MonadFail’ instance for a wrapper of ‘ExceptT String m a’";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "either-unwrap" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -80223,119 +81513,126 @@ self: {
      }:
      mkDerivation {
        pname = "elynx";
-       version = "0.2.2";
-       sha256 = "19fj65klv8pyan6n6i0mzcwpsprkhvxirh82hdmr3b3y2zaw10h6";
+       version = "0.4.0";
+       sha256 = "0qhq3h1va7pfcz58mkdw690v88jr3ynk2rrwl0s5qdz8xxvs5n3a";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          aeson base bytestring elynx-tools optparse-applicative slynx tlynx
        ];
        description = "Validate and (optionally) redo ELynx analyses";
-       license = stdenv.lib.licenses.gpl3;
+       license = stdenv.lib.licenses.gpl3Plus;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
   "elynx-markov" = callPackage
-    ({ mkDerivation, base, bytestring, containers, elynx-seq
-     , elynx-tools, elynx-tree, hmatrix, hspec, hspec-megaparsec
-     , integration, math-functions, megaparsec, mwc-random, parallel
-     , primitive, statistics, vector
+    ({ mkDerivation, async, attoparsec, base, bytestring, containers
+     , elynx-seq, elynx-tools, hmatrix, hspec, integration
+     , math-functions, mwc-random, parallel, primitive, statistics
+     , vector
      }:
      mkDerivation {
        pname = "elynx-markov";
-       version = "0.2.2";
-       sha256 = "1w7wxha82xaanfnzyn8ygfpxmk7lalfvzwr157crz8nm59ai4c05";
+       version = "0.4.0";
+       sha256 = "0ikk9xk71xyn1fmhzx59lfyk9skjkvhg19xb2afhcylnbg41f3wz";
        libraryHaskellDepends = [
-         base bytestring containers elynx-seq elynx-tools elynx-tree hmatrix
-         integration math-functions megaparsec mwc-random parallel primitive
-         statistics vector
+         async attoparsec base bytestring containers elynx-seq hmatrix
+         integration math-functions mwc-random parallel primitive statistics
+         vector
        ];
        testHaskellDepends = [
-         base bytestring containers elynx-tools elynx-tree hmatrix hspec
-         hspec-megaparsec integration math-functions megaparsec mwc-random
-         parallel primitive statistics vector
+         base containers elynx-tools hmatrix hspec mwc-random vector
        ];
        description = "Simulate molecular sequences along trees";
-       license = stdenv.lib.licenses.gpl3;
+       license = stdenv.lib.licenses.gpl3Plus;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "elynx-nexus" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, hspec }:
+     mkDerivation {
+       pname = "elynx-nexus";
+       version = "0.4.0";
+       sha256 = "02g67w8xracbasnkha383vz0ls1haxr78ia27k292lx572l17dvv";
+       libraryHaskellDepends = [ attoparsec base bytestring ];
+       testHaskellDepends = [ base hspec ];
+       description = "Import and export Nexus files";
+       license = stdenv.lib.licenses.gpl3Plus;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
   "elynx-seq" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, elynx-tools
-     , hspec, hspec-megaparsec, matrices, megaparsec, mwc-random
-     , parallel, primitive, vector, vector-th-unbox, word8
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, containers
+     , elynx-tools, hspec, matrices, mwc-random, parallel, primitive
+     , vector, vector-th-unbox, word8
      }:
      mkDerivation {
        pname = "elynx-seq";
-       version = "0.2.2";
-       sha256 = "1m09indy34zgx16m2rnmwjf9fvrhi8qcdxpfz7myjl2hxbp8hz1j";
+       version = "0.4.0";
+       sha256 = "03dh4rjdgn580niljgrl0cfw5h2mah8q1252jq3jx8349jxgpcmh";
        libraryHaskellDepends = [
-         aeson base bytestring containers elynx-tools matrices megaparsec
-         mwc-random parallel primitive vector vector-th-unbox word8
+         aeson attoparsec base bytestring containers matrices mwc-random
+         parallel primitive vector vector-th-unbox word8
        ];
        testHaskellDepends = [
-         aeson base bytestring containers elynx-tools hspec hspec-megaparsec
-         matrices megaparsec mwc-random parallel primitive vector
-         vector-th-unbox word8
+         base bytestring elynx-tools hspec matrices vector
        ];
        description = "Handle molecular sequences";
-       license = stdenv.lib.licenses.gpl3;
+       license = stdenv.lib.licenses.gpl3Plus;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
   "elynx-tools" = callPackage
-    ({ mkDerivation, aeson, async, base, base16-bytestring, bytestring
-     , containers, cryptohash-sha256, deepseq, directory, fast-logger
-     , hmatrix, matrices, megaparsec, monad-control, monad-logger
-     , mwc-random, optparse-applicative, parallel, primitive
-     , template-haskell, text, time, transformers, transformers-base
-     , vector, zlib
+    ({ mkDerivation, aeson, attoparsec, base, base16-bytestring
+     , bytestring, cryptohash-sha256, deepseq, directory, fast-logger
+     , hmatrix, monad-control, monad-logger, mwc-random
+     , optparse-applicative, primitive, template-haskell, text, time
+     , transformers, transformers-base, vector, zlib
      }:
      mkDerivation {
        pname = "elynx-tools";
-       version = "0.2.2";
-       sha256 = "0gdnfyag704yfvrakc7d0adh3mb9r1kf1v8cpdrspaxxr77brw9q";
+       version = "0.4.0";
+       sha256 = "0n8rf7y4qxhx35fhbhj4yc541ydsx8qvy66d11sl5a836gmsv0rr";
        libraryHaskellDepends = [
-         aeson async base base16-bytestring bytestring containers
-         cryptohash-sha256 deepseq directory fast-logger hmatrix matrices
-         megaparsec monad-control monad-logger mwc-random
-         optparse-applicative parallel primitive template-haskell text time
-         transformers transformers-base vector zlib
+         aeson attoparsec base base16-bytestring bytestring
+         cryptohash-sha256 deepseq directory fast-logger hmatrix
+         monad-control monad-logger mwc-random optparse-applicative
+         primitive template-haskell text time transformers transformers-base
+         vector zlib
        ];
        description = "Tools for ELynx";
-       license = stdenv.lib.licenses.gpl3;
+       license = stdenv.lib.licenses.gpl3Plus;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
   "elynx-tree" = callPackage
-    ({ mkDerivation, base, bytestring, containers, criterion
-     , elynx-tools, hspec, hspec-megaparsec, math-functions, megaparsec
-     , mwc-random, primitive, QuickCheck, quickcheck-instances
-     , statistics
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, comonad
+     , containers, criterion, deepseq, double-conversion, elynx-nexus
+     , elynx-tools, hspec, math-functions, mwc-random, primitive
+     , QuickCheck, statistics
      }:
      mkDerivation {
        pname = "elynx-tree";
-       version = "0.2.2";
-       sha256 = "00c7rli9vfi1crz9plpc5xgh960ba245kisxihbx54vqlc94b5hj";
+       version = "0.4.0";
+       sha256 = "1j22gkg1971wrih4gs4bxzkghvd3ddj85s6s5mcqhrfxmdnpsn2c";
        libraryHaskellDepends = [
-         base bytestring containers elynx-tools math-functions megaparsec
-         mwc-random primitive statistics
+         aeson attoparsec base bytestring comonad containers deepseq
+         double-conversion elynx-nexus math-functions mwc-random primitive
+         statistics
        ];
        testHaskellDepends = [
-         base bytestring containers elynx-tools hspec hspec-megaparsec
-         math-functions megaparsec mwc-random primitive QuickCheck
-         quickcheck-instances statistics
+         attoparsec base bytestring containers elynx-tools hspec QuickCheck
        ];
        benchmarkHaskellDepends = [
-         base bytestring containers criterion elynx-tools math-functions
-         megaparsec mwc-random primitive statistics
+         base bytestring criterion elynx-tools
        ];
        description = "Handle phylogenetic trees";
-       license = stdenv.lib.licenses.gpl3;
+       license = stdenv.lib.licenses.gpl3Plus;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -80787,6 +82084,31 @@ self: {
        broken = true;
      }) {};
 
+  "encryptable" = callPackage
+    ({ mkDerivation, base, bytestring, cryptonite, esqueleto
+     , generic-arbitrary, hspec, persistent, persistent-template
+     , QuickCheck, quickcheck-instances, text, universum
+     }:
+     mkDerivation {
+       pname = "encryptable";
+       version = "0.1";
+       sha256 = "0svvzk2js91qzcmbsfjcs2qs65a2b5ywgbpnyqidz53dlnbbk2r1";
+       libraryHaskellDepends = [
+         base bytestring cryptonite esqueleto generic-arbitrary hspec
+         persistent persistent-template QuickCheck quickcheck-instances text
+         universum
+       ];
+       testHaskellDepends = [
+         base bytestring cryptonite esqueleto generic-arbitrary hspec
+         persistent persistent-template QuickCheck quickcheck-instances text
+         universum
+       ];
+       description = "Typed encryption with persistent support";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "endo" = callPackage
     ({ mkDerivation, base, between, data-default-class, mtl
      , transformers
@@ -81262,10 +82584,8 @@ self: {
     ({ mkDerivation, base, containers, deepseq, template-haskell }:
      mkDerivation {
        pname = "enummapset-th";
-       version = "0.6.1.1";
-       sha256 = "0anmarswk8vvd9c8qhkhgwzmr5h2yq0bdx48ww5lbca1zf6h5hkw";
-       revision = "1";
-       editedCabalFile = "0fyjwcw7ibm0x5k2281q53drwm1ddsmkc890fywcv7r6b9jdx5py";
+       version = "0.6.2";
+       sha256 = "010cldc2jhhizllqj810ani5rffakfzmxm1rj69v5q489fnngswl";
        libraryHaskellDepends = [
          base containers deepseq template-haskell
        ];
@@ -81305,6 +82625,8 @@ self: {
        ];
        description = "Safe helpers for accessing and modifying environment variables";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "env-locale" = callPackage
@@ -81793,6 +83115,20 @@ self: {
        broken = true;
      }) {};
 
+  "errata" = callPackage
+    ({ mkDerivation, base, containers, text }:
+     mkDerivation {
+       pname = "errata";
+       version = "0.1.0.0";
+       sha256 = "193m9c0409jvk6s8acqad3dg5x97mr6814gq0diyc3yc7b7mdmvf";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base containers text ];
+       executableHaskellDepends = [ base containers text ];
+       description = "Source code error pretty printing";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "errno" = callPackage
     ({ mkDerivation, base, mtl }:
      mkDerivation {
@@ -82242,8 +83578,8 @@ self: {
      }:
      mkDerivation {
        pname = "esqueleto";
-       version = "3.3.3.0";
-       sha256 = "19zzqmaciski4ara41djkh1df17nzqw2nfwzc81zv6d3pylaznq1";
+       version = "3.3.3.2";
+       sha256 = "0488vrv85gzv190j4npyjll5v1fchqlxlg5346j4p90zb9vl2pzl";
        libraryHaskellDepends = [
          aeson attoparsec base blaze-html bytestring conduit containers
          monad-logger persistent resourcet tagged text time transformers
@@ -82260,7 +83596,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "esqueleto_3_3_3_2" = callPackage
+  "esqueleto_3_3_3_3" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, blaze-html, bytestring
      , conduit, containers, exceptions, hspec, monad-logger, mtl, mysql
      , mysql-simple, persistent, persistent-mysql, persistent-postgresql
@@ -82270,8 +83606,8 @@ self: {
      }:
      mkDerivation {
        pname = "esqueleto";
-       version = "3.3.3.2";
-       sha256 = "0488vrv85gzv190j4npyjll5v1fchqlxlg5346j4p90zb9vl2pzl";
+       version = "3.3.3.3";
+       sha256 = "14h6x4bj39ffz7arn9ddyjabb5s2a8ynphjvha606lz4mcv3mxkv";
        libraryHaskellDepends = [
          aeson attoparsec base blaze-html bytestring conduit containers
          monad-logger persistent resourcet tagged text time transformers
@@ -82322,8 +83658,30 @@ self: {
        ];
        description = "General purpose live coding framework";
        license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "essence-of-live-coding_0_2_3" = callPackage
+    ({ mkDerivation, base, containers, foreign-store, mtl, QuickCheck
+     , syb, test-framework, test-framework-quickcheck2, time
+     , transformers, vector-sized
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding";
+       version = "0.2.3";
+       sha256 = "19sc5wgby356bm5rh7sr41ydhw3v1pqbz76xyf7081kg77qcbc0m";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers foreign-store syb time transformers vector-sized
+       ];
+       executableHaskellDepends = [ base transformers ];
+       testHaskellDepends = [
+         base containers mtl QuickCheck syb test-framework
+         test-framework-quickcheck2 transformers
+       ];
+       description = "General purpose live coding framework";
+       license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "essence-of-live-coding-gloss" = callPackage
@@ -82339,6 +83697,40 @@ self: {
        ];
        description = "General purpose live coding framework - Gloss backend";
        license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "essence-of-live-coding-gloss_0_2_3" = callPackage
+    ({ mkDerivation, base, essence-of-live-coding, foreign-store, gloss
+     , syb, transformers
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding-gloss";
+       version = "0.2.3";
+       sha256 = "0msc2pfg7096azk4ggb267cfm2vh02kcksgdmzl46rc5if98xmi7";
+       libraryHaskellDepends = [
+         base essence-of-live-coding foreign-store gloss syb transformers
+       ];
+       description = "General purpose live coding framework - Gloss backend";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "essence-of-live-coding-gloss-example" = callPackage
+    ({ mkDerivation, base, essence-of-live-coding
+     , essence-of-live-coding-gloss, gloss, syb, transformers
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding-gloss-example";
+       version = "0.2.3";
+       sha256 = "08hzfi3mspxlkbhh8mr1q330yp94s6s9w55pla7x10qj8vda4shc";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base essence-of-live-coding essence-of-live-coding-gloss gloss syb
+         transformers
+       ];
+       description = "General purpose live coding framework - Gloss example";
+       license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -82356,6 +83748,40 @@ self: {
        ];
        description = "General purpose live coding framework - pulse backend";
        license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "essence-of-live-coding-pulse_0_2_3" = callPackage
+    ({ mkDerivation, base, essence-of-live-coding, foreign-store
+     , pulse-simple, transformers
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding-pulse";
+       version = "0.2.3";
+       sha256 = "1mxgicmy5xmmad0r0b3dn18ab9dn8r3rqglqxa6v75kl8lswm0c8";
+       libraryHaskellDepends = [
+         base essence-of-live-coding foreign-store pulse-simple transformers
+       ];
+       description = "General purpose live coding framework - pulse backend";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "essence-of-live-coding-pulse-example" = callPackage
+    ({ mkDerivation, base, essence-of-live-coding
+     , essence-of-live-coding-pulse, pulse-simple, transformers, vector
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding-pulse-example";
+       version = "0.2.3";
+       sha256 = "0da3l6z0lnjlq62vx18s2jyvrydffxvcjhv2ydlwczrcy0wggdln";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base essence-of-live-coding essence-of-live-coding-pulse
+         pulse-simple transformers vector
+       ];
+       description = "General purpose live coding framework - pulse backend example";
+       license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -82374,6 +83800,39 @@ self: {
        ];
        description = "General purpose live coding framework - QuickCheck integration";
        license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "essence-of-live-coding-quickcheck_0_2_3" = callPackage
+    ({ mkDerivation, base, boltzmann-samplers, essence-of-live-coding
+     , QuickCheck, syb, transformers
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding-quickcheck";
+       version = "0.2.3";
+       sha256 = "0shbpc1ivqr3m9p76kf1vj7g1rqy3magxyh58w1mxymf4c61a9gr";
+       libraryHaskellDepends = [
+         base boltzmann-samplers essence-of-live-coding QuickCheck syb
+         transformers
+       ];
+       description = "General purpose live coding framework - QuickCheck integration";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "essence-of-live-coding-warp" = callPackage
+    ({ mkDerivation, base, essence-of-live-coding, http-client
+     , http-types, wai, warp
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding-warp";
+       version = "0.2.3";
+       sha256 = "1rpp6xm3s3fji1pcdajc06iw0zhk3mbd245h6a0z6ygf8id7sh50";
+       libraryHaskellDepends = [
+         base essence-of-live-coding http-types wai warp
+       ];
+       testHaskellDepends = [ base essence-of-live-coding http-client ];
+       description = "General purpose live coding framework";
+       license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -82920,6 +84379,17 @@ self: {
        broken = true;
      }) {};
 
+  "eveff" = callPackage
+    ({ mkDerivation, base, ghc-prim, primitive }:
+     mkDerivation {
+       pname = "eveff";
+       version = "0.1.0.0";
+       sha256 = "1d0bxg1dg66g1yv291cp4jh3xv3caxrddqrwb0g6g1929dl019fa";
+       libraryHaskellDepends = [ base ghc-prim primitive ];
+       description = "Efficient effect handlers based on evidence translation";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "event" = callPackage
     ({ mkDerivation, base, containers, semigroups, transformers }:
      mkDerivation {
@@ -83307,6 +84777,43 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "eventsourcing" = callPackage
+    ({ mkDerivation, base, deepseq, free, hashable, hedgehog, mtl
+     , pipes, psqueues, stm, tasty, tasty-hedgehog, time
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "eventsourcing";
+       version = "0.9.0";
+       sha256 = "0rg9nd0sbqd132a4jzaq0065c5wjaib7iya305j2ql63gilfnjy3";
+       libraryHaskellDepends = [
+         base deepseq free hashable mtl pipes psqueues stm time
+         unordered-containers
+       ];
+       testHaskellDepends = [
+         base deepseq hedgehog mtl pipes stm tasty tasty-hedgehog
+         unordered-containers
+       ];
+       description = "CQRS/ES library";
+       license = stdenv.lib.licenses.isc;
+     }) {};
+
+  "eventsourcing-postgresql" = callPackage
+    ({ mkDerivation, base, bytestring, eventsourcing, hashable, mtl
+     , pipes, postgresql-simple, stm, unordered-containers
+     }:
+     mkDerivation {
+       pname = "eventsourcing-postgresql";
+       version = "0.9.0";
+       sha256 = "0dxa5lgf3lndhqgsmciyv9a6a6qwmwppq4qriasipnp656rcgyf8";
+       libraryHaskellDepends = [
+         base bytestring eventsourcing hashable mtl pipes postgresql-simple
+         stm unordered-containers
+       ];
+       description = "PostgreSQL adaptor for eventsourcing";
+       license = stdenv.lib.licenses.isc;
+     }) {};
+
   "eventstore" = callPackage
     ({ mkDerivation, aeson, array, async, base, bifunctors, bytestring
      , cereal, clock, connection, containers, dns, dotnet-timespan
@@ -83581,16 +85088,14 @@ self: {
      }) {};
 
   "exception-transformers" = callPackage
-    ({ mkDerivation, base, HUnit, stm, test-framework
-     , test-framework-hunit, transformers, transformers-compat
+    ({ mkDerivation, base, HUnit, test-framework, test-framework-hunit
+     , transformers, transformers-compat
      }:
      mkDerivation {
        pname = "exception-transformers";
-       version = "0.4.0.8";
-       sha256 = "079vwd0lkv7y5cijpjxsxn6wyba1y22fw9mfirzgjpiswx46isrr";
-       libraryHaskellDepends = [
-         base stm transformers transformers-compat
-       ];
+       version = "0.4.0.9";
+       sha256 = "033z8mhczwf59lh59q3z546gkcsy0bzg98r1qhm3fiq7j11hgd95";
+       libraryHaskellDepends = [ base transformers transformers-compat ];
        testHaskellDepends = [
          base HUnit test-framework test-framework-hunit transformers
          transformers-compat
@@ -83834,24 +85339,24 @@ self: {
 
   "exigo-schema" = callPackage
     ({ mkDerivation, aeson, base, binary, bytestring, directory
-     , exceptions, hint, hspec, hspec-core, interpolate, persistent
-     , persistent-template, QuickCheck, quickcheck-text
+     , esqueleto, exceptions, hint, hspec, hspec-core, interpolate
+     , monad-logger, mtl, persistent, persistent-sqlite
+     , persistent-template, QuickCheck, quickcheck-text, resourcet
      , template-haskell, temporary, text, th-lift-instances
      }:
      mkDerivation {
        pname = "exigo-schema";
-       version = "0.2.0.0";
-       sha256 = "1p9hss4s6fx59dy92pwnzph29yxprdzs96j7va9ycx31x34g41yx";
-       revision = "1";
-       editedCabalFile = "1r1sz3b4s6yvg5p7lzy1ir0zl1scy1jfk5bsml4jc78ivl2rssf1";
+       version = "0.2.0.2";
+       sha256 = "0kaja735bsgzywhfa16wg5kvjc1c89gvm503gxxyhkakacmp2002";
        libraryHaskellDepends = [
          aeson base binary bytestring persistent persistent-template
          template-haskell text th-lift-instances
        ];
        testHaskellDepends = [
-         base directory exceptions hint hspec hspec-core interpolate
-         persistent persistent-template QuickCheck quickcheck-text
-         template-haskell temporary
+         aeson base bytestring directory esqueleto exceptions hint hspec
+         hspec-core interpolate monad-logger mtl persistent
+         persistent-sqlite persistent-template QuickCheck quickcheck-text
+         resourcet template-haskell temporary text
        ];
        description = "database schema for exigo marking/assessment tools";
        license = stdenv.lib.licenses.bsd2;
@@ -84781,8 +86286,8 @@ self: {
      }:
      mkDerivation {
        pname = "extra";
-       version = "1.7.3";
-       sha256 = "19dw4y6zk3z2rf7nq1dxfclhlca9a9znb9x2qnpaqa4gz8q3j6na";
+       version = "1.7.7";
+       sha256 = "1ark7b6xknc44v8jg5aymxffj5d0qr81frjpg2ffqrkwnhva0w5s";
        libraryHaskellDepends = [
          base clock directory filepath process time unix
        ];
@@ -84983,8 +86488,8 @@ self: {
      }:
      mkDerivation {
        pname = "factory";
-       version = "0.3.2.1";
-       sha256 = "1vz273vni9335py69nlc2g92gkvy13rkfa238116g83qjjcx8w1f";
+       version = "0.3.2.2";
+       sha256 = "00nxadfipy92rpg7d3ypgigr51n4sn9jjh6n1gzxfjl6p7vq6myn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -85000,6 +86505,8 @@ self: {
        ];
        description = "Rational arithmetic in an irrational world";
        license = "GPL";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "facts" = callPackage
@@ -85258,7 +86765,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "fakedata_0_7_0" = callPackage
+  "fakedata_0_7_1" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, directory
      , exceptions, filepath, gauge, hashable, hspec, hspec-discover
      , random, string-random, template-haskell, text, time
@@ -85266,8 +86773,8 @@ self: {
      }:
      mkDerivation {
        pname = "fakedata";
-       version = "0.7.0";
-       sha256 = "0vzc2jyhan1igc7ffvch0zzsdnsyn5l857a5kr0zbsmri76sb59c";
+       version = "0.7.1";
+       sha256 = "1fbrfndwamwdnklbmyldhn45qxyyc61akbwvw0bmf645l0mkpn12";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers directory exceptions filepath hashable
@@ -85290,14 +86797,29 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "fakedata-parser" = callPackage
+    ({ mkDerivation, attoparsec, base, hspec, text }:
+     mkDerivation {
+       pname = "fakedata-parser";
+       version = "0.1.0.0";
+       sha256 = "0rf4mr9977p70vsinr3iga6l5wzkxnkxd52j4jmdmrk5b6i3flcp";
+       libraryHaskellDepends = [ attoparsec base text ];
+       testHaskellDepends = [ attoparsec base hspec text ];
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "fakefs" = callPackage
-    ({ mkDerivation, base, containers, hspec, mtl, QuickCheck }:
+    ({ mkDerivation, base, containers, exceptions, hspec, mtl
+     , QuickCheck
+     }:
      mkDerivation {
        pname = "fakefs";
-       version = "0.2.0.1";
-       sha256 = "0szdjrc4m87h9dsb7qg5rpp5avnyzv47mymyihgvmxc22wiyf1c1";
-       libraryHaskellDepends = [ base containers mtl ];
-       testHaskellDepends = [ base containers hspec QuickCheck ];
+       version = "0.3.0.1";
+       sha256 = "1vilfl6vgxcywg81xfy6w6lir6r5pky7f2p7mf196kjby630av05";
+       libraryHaskellDepends = [ base containers exceptions mtl ];
+       testHaskellDepends = [
+         base containers exceptions hspec QuickCheck
+       ];
        description = "Extensible fake file system for testing";
        license = stdenv.lib.licenses.asl20;
      }) {};
@@ -85745,8 +87267,8 @@ self: {
      }:
      mkDerivation {
        pname = "fastparser";
-       version = "0.4.0";
-       sha256 = "1pb97h5hpn3fn4r9qz3rx2kb3xrbvbja9yvakbacd03rn3my1pz3";
+       version = "0.5.0";
+       sha256 = "0pxd2f6f0a6kckqmkkafh9zx11x75x1zx1z90snzj3j8s4jcfg4y";
        libraryHaskellDepends = [
          base bytestring bytestring-lexing containers kan-extensions
          microlens thyme transformers vector-space
@@ -87105,10 +88627,8 @@ self: {
      }:
      mkDerivation {
        pname = "ffunctor";
-       version = "1.2.0";
-       sha256 = "0rq60a7ximvqdxqvijw1isd1d5gwqbjagmws91y0jvxlwmsgzf6w";
-       revision = "2";
-       editedCabalFile = "1mwddp63jdgfzhdcyqs77nv5lsbaw4gj63gcihimfmj5qxlx7zpk";
+       version = "1.2.1";
+       sha256 = "0143i0l4153k1pkql50hb158hcx9iqjj59zwqlhbqq0rr43nza3f";
        libraryHaskellDepends = [ base transformers ];
        testHaskellDepends = [
          aeson base exceptions generic-lens http-client mtl servant
@@ -87127,8 +88647,8 @@ self: {
      }:
      mkDerivation {
        pname = "fgl";
-       version = "5.7.0.2";
-       sha256 = "13zqdwj6j2y5827w3dcx8kl1gini4x938bfh4c5g5jc3b37rlnll";
+       version = "5.7.0.3";
+       sha256 = "04k5grp5d381wkc7sxgcl0sd3z3nlm6l6mmh103vhzh6p49vhs99";
        libraryHaskellDepends = [
          array base containers deepseq transformers
        ];
@@ -87142,8 +88662,8 @@ self: {
     ({ mkDerivation, base, containers, fgl, hspec, QuickCheck }:
      mkDerivation {
        pname = "fgl-arbitrary";
-       version = "0.2.0.5";
-       sha256 = "1wp6v4wb2g6alq4r26da1zmc3g2g2xzca0znf4ldw4552azasaxx";
+       version = "0.2.0.6";
+       sha256 = "1mykbd1r43gpsn10ys8q3nr0i4wnhn6wq23hcici18mxxji11wkc";
        libraryHaskellDepends = [ base fgl QuickCheck ];
        testHaskellDepends = [ base containers fgl hspec QuickCheck ];
        description = "QuickCheck support for fgl";
@@ -87178,10 +88698,8 @@ self: {
     ({ mkDerivation, base-noprelude, integer-gmp, semirings }:
      mkDerivation {
        pname = "fib";
-       version = "0.1";
-       sha256 = "19ppp760993wz4d1w3i5s60k4yqcx40il7l0ak0ylcqqym619zlk";
-       revision = "1";
-       editedCabalFile = "1pi7hhil698v9yk17ncw7raw0sf20yj679jvs2d0p7q8ypl9b1lh";
+       version = "0.1.0.1";
+       sha256 = "17pk2fzgr4jjmpam52vmqg69927gfsl81w61h7q9zsf1vzd0qnix";
        libraryHaskellDepends = [ base-noprelude integer-gmp semirings ];
        description = "fibonacci algebra";
        license = stdenv.lib.licenses.bsd3;
@@ -87352,14 +88870,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "file-embed_0_0_12_0" = callPackage
+  "file-embed_0_0_13_0" = callPackage
     ({ mkDerivation, base, bytestring, directory, filepath
      , template-haskell
      }:
      mkDerivation {
        pname = "file-embed";
-       version = "0.0.12.0";
-       sha256 = "13b2bcyifyrs1i9yk0qkj5md68ysnwma7zb1xrb1x2i4z3lk342p";
+       version = "0.0.13.0";
+       sha256 = "1sp1qq1ph2gr5a8ismn7n9vijnfwjyh38iqn338wa8mxn2mnhc6i";
        libraryHaskellDepends = [
          base bytestring directory filepath template-haskell
        ];
@@ -87528,8 +89046,8 @@ self: {
     ({ mkDerivation, async, base, process, unix }:
      mkDerivation {
        pname = "filelock";
-       version = "0.1.1.4";
-       sha256 = "189n4pvq7f4d235smg2iqs2m5rqmnjdxflifq0mnb2qdbc4jjznr";
+       version = "0.1.1.5";
+       sha256 = "06a44i7a956d7xkk2na4090xj2a7b7a228pk4spmccs4x20ymssh";
        libraryHaskellDepends = [ base unix ];
        testHaskellDepends = [ async base process ];
        description = "Portable interface to file locking (flock / LockFileEx)";
@@ -87608,6 +89126,8 @@ self: {
        ];
        description = "Reversable and secure encoding of object ids as filepaths";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "filepath-io-access" = callPackage
@@ -87678,9 +89198,8 @@ self: {
      }:
      mkDerivation {
        pname = "filestore";
-       version = "0.6.4";
-       sha256 = "1z967kviqsy3ma8xdfffx864f7ji6nsrbd5riis0nasm1bbwm8rr";
-       enableSeparateDataOutput = true;
+       version = "0.6.5";
+       sha256 = "0z29273vdqjsrj4vby0gp7d12wg9nkzq9zgqg18db0p5948jw1dh";
        libraryHaskellDepends = [
          base bytestring containers Diff directory filepath old-locale
          parsec process split time utf8-string xml
@@ -87809,16 +89328,31 @@ self: {
      }) {};
 
   "filtrable" = callPackage
-    ({ mkDerivation, base }:
+    ({ mkDerivation, base, transformers }:
      mkDerivation {
        pname = "filtrable";
-       version = "0.1.3.0";
-       sha256 = "1viazb01xnw7siwrsynaxqcjrgc96gqfgmj4vxl5r3lbnb34wdl0";
-       libraryHaskellDepends = [ base ];
+       version = "0.1.4.0";
+       sha256 = "11jas9w611pslc3hanybsdwrh4292zvgigng8y4cv7gm0j908xng";
+       libraryHaskellDepends = [ base transformers ];
        description = "Class of filtrable containers";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "filtrable_0_1_6_0" = callPackage
+    ({ mkDerivation, base, containers, smallcheck, tasty
+     , tasty-smallcheck, transformers
+     }:
+     mkDerivation {
+       pname = "filtrable";
+       version = "0.1.6.0";
+       sha256 = "058jl7wjaxzvcayc9qzpikxvi9x42civ4sb02jh66rcvpndbfh5y";
+       libraryHaskellDepends = [ base containers transformers ];
+       testHaskellDepends = [ base smallcheck tasty tasty-smallcheck ];
+       description = "Class of filtrable containers";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "fin" = callPackage
     ({ mkDerivation, base, dec, deepseq, hashable, inspection-testing
      , QuickCheck, tagged
@@ -88024,8 +89558,6 @@ self: {
        ];
        description = "A better, more type-safe Enum";
        license = stdenv.lib.licenses.gpl3Plus;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "finitary-derive" = callPackage
@@ -88270,8 +89802,8 @@ self: {
      }:
      mkDerivation {
        pname = "fishfood";
-       version = "0.0.1.9";
-       sha256 = "128m9zhn57jzz5ijkz54mlw70g0d1byp2gisw7wyrgddi0j3x3i5";
+       version = "0.0.1.11";
+       sha256 = "005jljanccyxj7j7lnkralir1lcinka5kapw0nv39pd1ibyc1nrb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -88285,6 +89817,8 @@ self: {
        ];
        description = "Calculates file-size frequency-distribution";
        license = "GPL";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "fit" = callPackage
@@ -88370,13 +89904,13 @@ self: {
      }:
      mkDerivation {
        pname = "fix-imports";
-       version = "2.2.0";
-       sha256 = "0nwl9gxaxjdvgr0ji7r0hh9z43s473rb69dgb3p8ab3kdc3mld11";
+       version = "2.3.0";
+       sha256 = "1ysz764i24l30cclw5zzwkk78di8i9qh136abwlpcxyyw4zy2n6d";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          base containers cpphs deepseq directory filepath haskell-src-exts
-         pretty process split text time uniplate
+         mtl pretty process split text time uniplate
        ];
        testHaskellDepends = [
          base containers cpphs deepseq directory filepath haskell-src-exts
@@ -89359,8 +90893,8 @@ self: {
      }:
      mkDerivation {
        pname = "floskell";
-       version = "0.10.3";
-       sha256 = "07nr7grav7z378k3v14f21kji0hrgch0q1dwc00iw93zamanda2x";
+       version = "0.10.4";
+       sha256 = "14cwby2xyv2cviknpji6117jz6zfjrayrfvc75481g229yhcx156";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -89383,8 +90917,6 @@ self: {
        ];
        description = "A flexible Haskell source code pretty printer";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "flow" = callPackage
@@ -89909,8 +91441,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "fmlist";
-       version = "0.9.3";
-       sha256 = "1w9nhm2zybdx4c1lalkajwqr8wcs731lfjld2r8gknd7y96x8pwf";
+       version = "0.9.4";
+       sha256 = "19h95ph7lh7llw6j1v1rssrdi5k7xw8x0iac9rgzss371s2w3g9d";
        libraryHaskellDepends = [ base ];
        description = "FoldMap lists";
        license = stdenv.lib.licenses.bsd3;
@@ -90073,25 +91605,6 @@ self: {
      }:
      mkDerivation {
        pname = "fold-debounce-conduit";
-       version = "0.2.0.4";
-       sha256 = "0mhnc5j8jnmf4rnb5cj75jlyj9xc4gj3dawywcw26zz189j540fj";
-       libraryHaskellDepends = [
-         base conduit fold-debounce resourcet stm transformers
-         transformers-base
-       ];
-       testHaskellDepends = [
-         base conduit hspec resourcet stm transformers
-       ];
-       description = "Regulate input traffic from conduit Source with Control.FoldDebounce";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "fold-debounce-conduit_0_2_0_5" = callPackage
-    ({ mkDerivation, base, conduit, fold-debounce, hspec, resourcet
-     , stm, transformers, transformers-base
-     }:
-     mkDerivation {
-       pname = "fold-debounce-conduit";
        version = "0.2.0.5";
        sha256 = "1qvr3wqqv2lvs22ddmalavggp8a4a50d056a50dsz6lcml1k6hdg";
        libraryHaskellDepends = [
@@ -90103,7 +91616,6 @@ self: {
        ];
        description = "Regulate input traffic from conduit Source with Control.FoldDebounce";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "foldable1" = callPackage
@@ -90138,20 +91650,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "foldl_1_4_7" = callPackage
+  "foldl_1_4_8" = callPackage
     ({ mkDerivation, base, bytestring, comonad, containers
      , contravariant, criterion, doctest, hashable, mwc-random
-     , primitive, profunctors, semigroupoids, semigroups, text
-     , transformers, unordered-containers, vector, vector-builder
+     , primitive, profunctors, semigroupoids, text, transformers
+     , unordered-containers, vector, vector-builder
      }:
      mkDerivation {
        pname = "foldl";
-       version = "1.4.7";
-       sha256 = "0pvdfzap9bv9v2n72gxy1xd1idyyz87h836bh09m84i8baasblxb";
+       version = "1.4.8";
+       sha256 = "1jlrcj9nq8xwlrsny6fzfizai3ilc1zbw38abgf35ryl23r5j6pd";
+       revision = "1";
+       editedCabalFile = "09jz01w3brgd8fwya56qgg0riv9vxzc0r9lkkhkx54nflari2rig";
        libraryHaskellDepends = [
          base bytestring comonad containers contravariant hashable
-         mwc-random primitive profunctors semigroupoids semigroups text
-         transformers unordered-containers vector vector-builder
+         mwc-random primitive profunctors semigroupoids text transformers
+         unordered-containers vector vector-builder
        ];
        testHaskellDepends = [ base doctest ];
        benchmarkHaskellDepends = [ base criterion ];
@@ -91111,6 +92625,8 @@ self: {
        pname = "fourmolu";
        version = "0.1.0.0";
        sha256 = "1kc7hhaqn7sghbcfj9xg8r1pvrmhawy9y2rhizfxzm7z034bgjyk";
+       revision = "1";
+       editedCabalFile = "1j6g6rzanjbdqf9svhjx0bbsy504xyc6vcn1ac3vgn4vp367wz0y";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -91127,8 +92643,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A formatter for Haskell source code";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "fpco-api" = callPackage
@@ -91480,6 +92994,8 @@ self: {
        pname = "free";
        version = "5.1.3";
        sha256 = "0b9f9jrfgkq13333px6p1faxpcypqvzi0m9dnbj2rm8s79pdcw1c";
+       revision = "1";
+       editedCabalFile = "0w0bxkdsspw1blhr01bb9n98wlmqpgjpdbbp2f50qmhapav2fk30";
        libraryHaskellDepends = [
          base comonad containers distributive exceptions mtl profunctors
          semigroupoids template-haskell transformers transformers-base
@@ -91494,8 +93010,8 @@ self: {
      }:
      mkDerivation {
        pname = "free-algebras";
-       version = "0.0.8.1";
-       sha256 = "07p1nmg88b6nvqi33q80vb2aj6svx9r33ax85ry6d7adkg83s4jz";
+       version = "0.0.8.2";
+       sha256 = "0mq9wwsylbmkiwwpvb1frym6nif587920rxkgq1gacwmh6dssymz";
        libraryHaskellDepends = [
          base containers data-fix dlist free groups kan-extensions mtl
          transformers
@@ -91525,8 +93041,8 @@ self: {
      }:
      mkDerivation {
        pname = "free-category";
-       version = "0.0.4.1";
-       sha256 = "1d7r9mcq4163g665bgzwxhvrk2iiypgss8s3j2lmqccb461s7a4j";
+       version = "0.0.4.2";
+       sha256 = "1nnf7y0m5pv36ka54vmfbhj6v0354gk36r539ss4zzp6jc8mzvdl";
        libraryHaskellDepends = [ base free-algebras ];
        testHaskellDepends = [
          base free-algebras QuickCheck tasty tasty-quickcheck
@@ -91570,10 +93086,8 @@ self: {
      }:
      mkDerivation {
        pname = "free-functors";
-       version = "1.1.1";
-       sha256 = "0bk985q1663rsgmkr08x6zr5yqvf84g0w7450qzccivis4wc5hp2";
-       revision = "1";
-       editedCabalFile = "0wvqwfvvl82z6jr7zy8f38bbqvjiikric8k7krcrlqix4v7zd6zi";
+       version = "1.1.2";
+       sha256 = "1qkn7irp1zids0dvi7xn17kk8wmwkqnys78qy5n27dhsgi2l1avs";
        libraryHaskellDepends = [
          base bifunctors comonad contravariant derive-lifted-instances
          profunctors template-haskell transformers
@@ -91927,6 +93441,17 @@ self: {
        broken = true;
      }) {};
 
+  "freer-indexed" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "freer-indexed";
+       version = "0.1.0.0";
+       sha256 = "14d5683z37xyahrw6dbcv516lmc8vasl1bc6zvdy3wr4y4g1qyzd";
+       libraryHaskellDepends = [ base ];
+       description = "Freer indexed monad for type-level resource-aware effectual operations";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "freer-simple" = callPackage
     ({ mkDerivation, base, criterion, extensible-effects, free, mtl
      , natural-transformation, QuickCheck, tasty, tasty-hunit
@@ -92173,8 +93698,8 @@ self: {
        pname = "friday";
        version = "0.2.3.1";
        sha256 = "04wn36249b7mddhp6r8zycdxixm0ryj3jrc6qjjvl5k138n4j9q8";
-       revision = "1";
-       editedCabalFile = "0n1f4plvrmad6gm8dbsi6g5ghahdwwy2fhgippmnp1ixb65x7d58";
+       revision = "2";
+       editedCabalFile = "1iy2ywz42mwwr2iy7fzfdif8f0vbyl3w9hgy4rkynsmmqc8mmxba";
        libraryHaskellDepends = [
          base containers convertible deepseq primitive ratio-int
          transformers vector
@@ -93179,25 +94704,27 @@ self: {
      }) {};
 
   "functor-combinators" = callPackage
-    ({ mkDerivation, base, bifunctors, comonad, constraints, containers
-     , dependent-sum, deriving-compat, free, hedgehog, kan-extensions
-     , mmorph, mtl, natural-transformation, nonempty-containers, pointed
-     , profunctors, semigroupoids, tagged, tasty, tasty-hedgehog, these
+    ({ mkDerivation, assoc, base, bifunctors, comonad, constraints
+     , containers, contravariant, dependent-sum, deriving-compat, free
+     , hedgehog, invariant, kan-extensions, mmorph, mtl
+     , natural-transformation, nonempty-containers, pointed, profunctors
+     , semigroupoids, sop-core, tagged, tasty, tasty-hedgehog, these
      , transformers, trivial-constraint, vinyl
      }:
      mkDerivation {
        pname = "functor-combinators";
-       version = "0.2.0.0";
-       sha256 = "0z8r9z08cayyv2ag748aa8550sd2mnj2zagdkf5i5yn3lvhd0k6j";
+       version = "0.3.6.0";
+       sha256 = "0idf896xadp5v5k4m0s087xvvs9008sxw61djqb9v0x08rs5zy8f";
        libraryHaskellDepends = [
-         base bifunctors comonad constraints containers deriving-compat free
-         kan-extensions mmorph mtl natural-transformation
-         nonempty-containers pointed profunctors semigroupoids tagged these
-         transformers trivial-constraint vinyl
+         assoc base bifunctors comonad constraints containers contravariant
+         deriving-compat free invariant kan-extensions mmorph mtl
+         natural-transformation nonempty-containers pointed profunctors
+         semigroupoids sop-core tagged these transformers trivial-constraint
+         vinyl
        ];
        testHaskellDepends = [
          base bifunctors dependent-sum free hedgehog nonempty-containers
-         semigroupoids tasty tasty-hedgehog transformers
+         semigroupoids tasty tasty-hedgehog transformers trivial-constraint
        ];
        description = "Tools for functor combinator-based program design";
        license = stdenv.lib.licenses.bsd3;
@@ -93489,14 +95016,35 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "fused-effects_1_1_0_0" = callPackage
+    ({ mkDerivation, base, containers, gauge, hedgehog, hedgehog-fn
+     , inspection-testing, markdown-unlit, tasty, tasty-hedgehog
+     , tasty-hunit, transformers
+     }:
+     mkDerivation {
+       pname = "fused-effects";
+       version = "1.1.0.0";
+       sha256 = "0ns1h03skgywfm3i5748q9hxvla5769p7hb72zw8yhdfpgwh9rlx";
+       libraryHaskellDepends = [ base transformers ];
+       testHaskellDepends = [
+         base containers hedgehog hedgehog-fn inspection-testing tasty
+         tasty-hedgehog tasty-hunit transformers
+       ];
+       testToolDepends = [ markdown-unlit ];
+       benchmarkHaskellDepends = [ base gauge transformers ];
+       description = "A fast, flexible, fused effect system";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "fused-effects-exceptions" = callPackage
     ({ mkDerivation, base, fused-effects, markdown-unlit, tasty
      , tasty-hunit, transformers
      }:
      mkDerivation {
        pname = "fused-effects-exceptions";
-       version = "1.0.0.0";
-       sha256 = "13ki1fzjsqd762bbc5ia9k4agsa634lflidnzs6lahxmar1sqmid";
+       version = "1.1.0.0";
+       sha256 = "0r5xfv5cknxz21viqcpa8xjd57sbadp2vf7nk7z9j1sd5faprmji";
        libraryHaskellDepends = [ base fused-effects transformers ];
        testHaskellDepends = [
          base fused-effects tasty tasty-hunit transformers
@@ -93504,33 +95052,46 @@ self: {
        testToolDepends = [ markdown-unlit ];
        description = "Handle exceptions thrown in IO with fused-effects";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "fused-effects-lens" = callPackage
     ({ mkDerivation, base, fused-effects, hspec, microlens }:
      mkDerivation {
        pname = "fused-effects-lens";
-       version = "1.2.0.0";
-       sha256 = "1g9shz0fi0maflgdj9lng27424jm3swgl6jl97d3v0k8syybdha6";
+       version = "1.2.0.1";
+       sha256 = "12bm84bfvvjw1rpmjbk445gd7mx42crsp9ba0jbgiyb8ryhzl9lx";
        libraryHaskellDepends = [ base fused-effects microlens ];
        testHaskellDepends = [ base fused-effects hspec microlens ];
        description = "Monadic lens combinators for fused-effects";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "fused-effects-optics" = callPackage
+    ({ mkDerivation, base, fused-effects, optics-core }:
+     mkDerivation {
+       pname = "fused-effects-optics";
+       version = "0.1.0.0";
+       sha256 = "16q5b7b46k4hi8c46kq57dxidh2djzksc7s8jb65k341bbvlsy1w";
+       libraryHaskellDepends = [ base fused-effects optics-core ];
+       description = "Bridge between the optics and fused-effects ecosystems";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "fused-effects-random" = callPackage
-    ({ mkDerivation, base, fused-effects, MonadRandom, random
-     , transformers
-     }:
+    ({ mkDerivation, base, fused-effects, random, transformers }:
      mkDerivation {
        pname = "fused-effects-random";
-       version = "1.0.0.0";
-       sha256 = "14s65ndb5ik47wasn62pd0m5ls02a0v2vinv69jz9z630q9y7ay4";
-       libraryHaskellDepends = [
-         base fused-effects MonadRandom random transformers
-       ];
+       version = "1.1.0.0";
+       sha256 = "0krcyx4hhvkxh0rbfwxb52xgb4rl45dflyx3aw8xryp6wn9my770";
+       libraryHaskellDepends = [ base fused-effects random transformers ];
        description = "Random number generation for fused-effects";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "fused-effects-readline" = callPackage
@@ -93540,8 +95101,8 @@ self: {
      }:
      mkDerivation {
        pname = "fused-effects-readline";
-       version = "0.0.0.0";
-       sha256 = "089f6b3y48ymhd45x1rxmimrwjygkjk3ykhz6nx7cf235d3cg83l";
+       version = "0.1.0.0";
+       sha256 = "1s9s5dbj0gs4y0cngqb7ynykx840n065bixx1c22xz1i481bf52m";
        libraryHaskellDepends = [
          base directory filepath fused-effects haskeline prettyprinter
          prettyprinter-ansi-terminal terminal-size transformers
@@ -93584,6 +95145,26 @@ self: {
        broken = true;
      }) {};
 
+  "fused-effects-th" = callPackage
+    ({ mkDerivation, base, fused-effects, tasty, tasty-hunit
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "fused-effects-th";
+       version = "0.1.0.1";
+       sha256 = "0yr9gymqna0q47cv9j17cwgbbjc8sjf7f1lm8fbig5zybb6ycpm9";
+       revision = "1";
+       editedCabalFile = "0slildsx3al8gn9s8w1dqq55pwsizjbkwmkm1vl742zk0kivax8c";
+       libraryHaskellDepends = [ base fused-effects template-haskell ];
+       testHaskellDepends = [
+         base fused-effects tasty tasty-hunit template-haskell
+       ];
+       description = "Template Haskell helpers for fused-effects";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "fusion" = callPackage
     ({ mkDerivation, base, directory, doctest, filepath, pipes-safe
      , transformers, void
@@ -93643,8 +95224,8 @@ self: {
      }:
      mkDerivation {
        pname = "futhark";
-       version = "0.15.8";
-       sha256 = "1pdfdfgimvlz741jxyzscj99xjw888mzbar7rjy1zlfqbmac6r9f";
+       version = "0.16.4";
+       sha256 = "14k682phqdp2scmv064i6jyymf3j2f3bs25yw1qff76bkymv02vd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -93761,14 +95342,14 @@ self: {
 
   "fuzzy-parse" = callPackage
     ({ mkDerivation, attoparsec, base, containers, hspec
-     , hspec-discover, interpolatedstring-perl6, mtl, text, time
+     , hspec-discover, interpolatedstring-perl6, mtl, safe, text, time
      }:
      mkDerivation {
        pname = "fuzzy-parse";
-       version = "0.1.0.0";
-       sha256 = "0sy5006m6ylvf01b8bnimql6ragmkdigcgiylxdm6y40a7wz34km";
+       version = "0.1.2.0";
+       sha256 = "0mf0bbs1vcxf6vf56n8r908c8jf6f11fyc86mk74b8dgqwjn7xfb";
        libraryHaskellDepends = [
-         attoparsec base containers mtl text time
+         attoparsec base containers mtl safe text time
        ];
        testHaskellDepends = [
          base hspec hspec-discover interpolatedstring-perl6 text
@@ -94451,8 +96032,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "GCode processor";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
+       maintainers = with stdenv.lib.maintainers; [ sorki ];
      }) {};
 
   "gconf" = callPackage
@@ -94831,6 +96411,60 @@ self: {
        broken = true;
      }) {};
 
+  "gemini-router" = callPackage
+    ({ mkDerivation, base, gemini-server, network-uri, transformers }:
+     mkDerivation {
+       pname = "gemini-router";
+       version = "0.1.0.0";
+       sha256 = "1k1fa4vi93ijj8yf1sfjgmy5kibs0z77z994pvzs1bm8sx73h8kr";
+       revision = "1";
+       editedCabalFile = "1pb52h8md6g422y5rj7nyy1mkgxccggfal27i42c3qsn8x9frrpz";
+       libraryHaskellDepends = [
+         base gemini-server network-uri transformers
+       ];
+       description = "A simple Happstack-style Gemini router";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "gemini-server" = callPackage
+    ({ mkDerivation, base, bytestring, hslogger, network, network-run
+     , network-uri, text, utf8-string
+     }:
+     mkDerivation {
+       pname = "gemini-server";
+       version = "0.1.0.0";
+       sha256 = "0m98dc66469gbnsra8sp0clrlbyzn817vnd7aini576g5gv4sxr5";
+       revision = "1";
+       editedCabalFile = "091wv6ar78dhhz1y6rknslxc2wh020b50n38928abl0a939gwvh9";
+       libraryHaskellDepends = [
+         base bytestring hslogger network network-run network-uri text
+         utf8-string
+       ];
+       description = "A lightweight server for the Gemini protocol";
+       license = stdenv.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 {
+       pname = "gemini-textboard";
+       version = "0.1.0.0";
+       sha256 = "1z8nkrkar4das4kpgsg03hsgg3i5y2639h7sik8cjdvyvwi8dpsn";
+       revision = "1";
+       editedCabalFile = "1h1fxigslzpbsjskrdaqa3gd063r4c7z6vvwaa6dk5d3mf67dbwq";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base cache clock gemini-router gemini-server language-gemini
+         network-uri nonce sqlite-simple text time transformers
+       ];
+       description = "A barebones textboard for the Gemini protocol";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "gemstone" = callPackage
     ({ mkDerivation, array, base, bitmap, bitmap-opengl, containers
      , FTGL, lens, linear, OpenGL, random, SDL, SDL-image, stb-image
@@ -95124,6 +96758,33 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "generic-data_0_9_1_0" = callPackage
+    ({ mkDerivation, ap-normalize, base, base-orphans, Cabal
+     , cabal-doctest, contravariant, criterion, deepseq, doctest
+     , generic-lens, ghc-boot-th, inspection-testing, one-liner
+     , QuickCheck, show-combinators, tasty, tasty-hunit
+     , template-haskell, unordered-containers
+     }:
+     mkDerivation {
+       pname = "generic-data";
+       version = "0.9.1.0";
+       sha256 = "0p58z70wp3vapxrwg7hkr5n6px7hws9398v9shc08c2aigq36kqa";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         ap-normalize base base-orphans contravariant ghc-boot-th
+         show-combinators
+       ];
+       testHaskellDepends = [
+         base doctest generic-lens inspection-testing one-liner QuickCheck
+         show-combinators tasty tasty-hunit template-haskell
+         unordered-containers
+       ];
+       benchmarkHaskellDepends = [ base criterion deepseq ];
+       description = "Deriving instances with GHC.Generics and related utilities";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "generic-data-surgery" = callPackage
     ({ mkDerivation, base, first-class-families, generic-data
      , show-combinators, tasty, tasty-hunit
@@ -95209,6 +96870,18 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "generic-functor" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "generic-functor";
+       version = "0.1.0.0";
+       sha256 = "02anlx3l0zn4hx9pckpdpp93yp1xyqcafpy6rk7s1zpv7nqk12z2";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       description = "Deriving generalized functors with GHC.Generics";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "generic-lens" = callPackage
     ({ mkDerivation, base, doctest, generic-lens-core, HUnit
      , inspection-testing, lens, profunctors, text
@@ -95278,6 +96951,17 @@ self: {
        broken = true;
      }) {};
 
+  "generic-match" = callPackage
+    ({ mkDerivation, base, generics-sop }:
+     mkDerivation {
+       pname = "generic-match";
+       version = "0.3.0.0";
+       sha256 = "1h27gd7f0px3xgan9liqwav8xhl0smn6nhdmi7ggd18mjafa1ngv";
+       libraryHaskellDepends = [ base generics-sop ];
+       description = "First class pattern matching";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "generic-maybe" = callPackage
     ({ mkDerivation, base, bytestring, containers, criterion, deepseq
      , directory, doctest, filepath, generic-deriving, ghc-prim, hlint
@@ -96788,22 +98472,6 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ghc-check_0_3_0_1" = callPackage
-    ({ mkDerivation, base, filepath, ghc, ghc-paths, process
-     , template-haskell, transformers
-     }:
-     mkDerivation {
-       pname = "ghc-check";
-       version = "0.3.0.1";
-       sha256 = "180xqs4g90v9sdjb0b3baqk62gbnw1xkv76wdq5ap49q0730s3vz";
-       libraryHaskellDepends = [
-         base filepath ghc ghc-paths process template-haskell transformers
-       ];
-       description = "detect mismatches between compile-time and run-time versions of the ghc api";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
   "ghc-check" = callPackage
     ({ mkDerivation, base, containers, directory, filepath, ghc
      , ghc-paths, process, safe-exceptions, template-haskell
@@ -97087,15 +98755,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ghc-exactprint_0_6_3_1" = callPackage
+  "ghc-exactprint_0_6_3_2" = callPackage
     ({ mkDerivation, base, bytestring, containers, Diff, directory
      , filemanip, filepath, free, ghc, ghc-boot, ghc-paths, HUnit, mtl
      , silently, syb
      }:
      mkDerivation {
        pname = "ghc-exactprint";
-       version = "0.6.3.1";
-       sha256 = "16rfmiyzp4s40vw75wpavfd28a6nanjv4abpjgy5zv13ayymx0rd";
+       version = "0.6.3.2";
+       sha256 = "1bzf8mafz20pn7cq2483b9w3hjrwfbb0ahbcb3y7xy5yy52qvmln";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -97115,8 +98783,8 @@ self: {
     ({ mkDerivation, base, directory, filepath, process }:
      mkDerivation {
        pname = "ghc-gc-tune";
-       version = "0.3";
-       sha256 = "0ghp3f86m91zi6kl8zq157717s2p73nwdgln4aiclq830m72ys9w";
+       version = "0.3.2";
+       sha256 = "1q77q0vavypdc9iqf1hrnxzhwj851a9s9qk646w98qkncm4ifblp";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base directory filepath process ];
@@ -97248,8 +98916,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib";
-       version = "8.10.1.20200523";
-       sha256 = "0qqcygmndgpmjm7hdr81bj298mc0gmnswm4i14r0fwnyc00zr4yy";
+       version = "8.10.2.20200808";
+       sha256 = "0vh941bk7fy44rn5hwqa25xbfyhm28wcy4nwpvm3291lp0cxndgh";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
@@ -97267,8 +98935,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib-parser";
-       version = "8.10.1.20200523";
-       sha256 = "1g2jki7f1in5c2y80zhz3hxrm4c7m063slxpg1lrvqrgrlwag5cb";
+       version = "8.10.2.20200808";
+       sha256 = "0nfxsvpsiyxbjc3hvdax70z07k08bc255lz9jhqgq57lnw46dyfl";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
@@ -97285,8 +98953,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib-parser-ex";
-       version = "8.10.0.14";
-       sha256 = "0p78j7pai6fl6dy7bwdd7w5b2khmc9njr2ankasixpn1a0mcfkf9";
+       version = "8.10.0.16";
+       sha256 = "1kqff62ml38hxwfnfq7ni0z65b3d3l7xqa5c5lxf3kzm9h7bdwb8";
        libraryHaskellDepends = [
          base bytestring containers ghc-lib-parser uniplate
        ];
@@ -97501,6 +99169,23 @@ self: {
        broken = true;
      }) {};
 
+  "ghc-plugs-out" = callPackage
+    ({ mkDerivation, base, ghc, th-printf }:
+     mkDerivation {
+       pname = "ghc-plugs-out";
+       version = "1.0.0.0";
+       sha256 = "0a6zqqwpsz38x07qj8jafjhp1pinb9xh1qs5ld56ms329aml2ymw";
+       isLibrary = false;
+       isExecutable = false;
+       libraryHaskellDepends = [ base ghc th-printf ];
+       testHaskellDepends = [ base ];
+       doHaddock = false;
+       description = "Type checker plugins without the type checking";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "ghc-prim_0_6_1" = callPackage
     ({ mkDerivation, rts }:
      mkDerivation {
@@ -97714,20 +99399,21 @@ self: {
      }) {};
 
   "ghc-tags-core" = callPackage
-    ({ mkDerivation, attoparsec, base, bytestring, criterion, deepseq
-     , directory, filepath, filepath-bytestring, ghc, lattices, mtl
-     , pipes, pipes-attoparsec, pipes-bytestring, QuickCheck
+    ({ mkDerivation, attoparsec, base, bytestring, cpphs, criterion
+     , deepseq, directory, filepath, filepath-bytestring, ghc, lattices
+     , mtl, pipes, pipes-attoparsec, pipes-bytestring, QuickCheck
      , quickcheck-instances, tasty, tasty-golden, tasty-quickcheck, text
      , transformers
      }:
      mkDerivation {
        pname = "ghc-tags-core";
-       version = "0.2.0.0";
-       sha256 = "1i7jr8zzkybh1f0ljg3l4airfc4ayy4z7v16avj6j5h3k8dksd3f";
+       version = "0.2.3.0";
+       sha256 = "0hpk3131dq07m92h6ppacgbj4ar475zrlsj2vhqgpmdh3z9lnd9c";
        libraryHaskellDepends = [
          attoparsec base bytestring directory filepath-bytestring ghc mtl
          pipes pipes-attoparsec pipes-bytestring text transformers
        ];
+       libraryToolDepends = [ cpphs ];
        testHaskellDepends = [
          attoparsec base bytestring directory filepath filepath-bytestring
          lattices mtl pipes QuickCheck quickcheck-instances tasty
@@ -97745,20 +99431,20 @@ self: {
 
   "ghc-tags-plugin" = callPackage
     ({ mkDerivation, base, bytestring, directory, filepath
-     , filepath-bytestring, ghc, ghc-tags-core, mtl
+     , filepath-bytestring, ghc, ghc-tags-core, lukko, mtl
      , optparse-applicative, pipes, pipes-attoparsec, pipes-bytestring
-     , pipes-safe, text, unix
+     , pipes-safe, text
      }:
      mkDerivation {
        pname = "ghc-tags-plugin";
-       version = "0.2.0.0";
-       sha256 = "0prl25wd8fcga2ndx78rvsyzk4ar9m7wrs10mbcmia9pi4kax7y9";
+       version = "0.2.3.0";
+       sha256 = "19bkn5lp1n993jxn4mhmnyw36d1vjwbvhlr1r6ywnanis9vgrbzg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring directory filepath filepath-bytestring ghc
-         ghc-tags-core mtl optparse-applicative pipes pipes-attoparsec
-         pipes-bytestring pipes-safe text unix
+         ghc-tags-core lukko mtl optparse-applicative pipes pipes-attoparsec
+         pipes-bytestring pipes-safe text
        ];
        description = "A compiler plugin which generates tags file from GHC parsed syntax tree";
        license = stdenv.lib.licenses.mpl20;
@@ -97863,8 +99549,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-typelits-knownnat";
-       version = "0.7.2";
-       sha256 = "1wdippdn029rpd1v3mk470gyp8v13d2bna8p8q6cn7q7nhm1dhhc";
+       version = "0.7.3";
+       sha256 = "1vz2qjgdv5hv7zrq0hm9f4ly0q3bl1cz2spcqrdpdzhivfff651g";
        libraryHaskellDepends = [
          base ghc ghc-prim ghc-tcplugins-extra ghc-typelits-natnormalise
          template-haskell transformers
@@ -97900,26 +99586,6 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-typelits-presburger";
-       version = "0.3.0.0";
-       sha256 = "1jahwmy2cywnnlvrjizak1wqih7pki9r35qazcz7mih68pd9gnhz";
-       revision = "1";
-       editedCabalFile = "0kh04p9n9q74n84vrzrybkd45alwzhll8m6xwn8nzi1bxpilrhm4";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base containers ghc ghc-tcplugins-extra mtl pretty reflection syb
-         transformers
-       ];
-       description = "Presburger Arithmetic Solver for GHC Type-level natural numbers";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "ghc-typelits-presburger_0_3_0_1" = callPackage
-    ({ mkDerivation, base, containers, ghc, ghc-tcplugins-extra, mtl
-     , pretty, reflection, syb, transformers
-     }:
-     mkDerivation {
-       pname = "ghc-typelits-presburger";
        version = "0.3.0.1";
        sha256 = "0h403zi5lqbpygpqw5469fafz1cgh5mcx96sp0iw4scnmh7z3cj9";
        isLibrary = true;
@@ -97930,7 +99596,6 @@ self: {
        ];
        description = "Presburger Arithmetic Solver for GHC Type-level natural numbers";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ghc-usage" = callPackage
@@ -98175,46 +99840,52 @@ self: {
 
   "ghcide" = callPackage
     ({ mkDerivation, aeson, array, async, base, base16-bytestring
-     , binary, bytestring, containers, cryptohash-sha1, data-default
-     , deepseq, directory, extra, filepath, fuzzy, ghc, ghc-boot
-     , ghc-boot-th, ghc-check, ghc-paths, ghc-typelits-knownnat, gitrev
+     , binary, bytestring, Chart, Chart-diagrams, containers
+     , cryptohash-sha1, data-default, deepseq, diagrams, diagrams-svg
+     , directory, extra, filepath, fuzzy, ghc, ghc-boot, ghc-boot-th
+     , ghc-check, ghc-paths, ghc-typelits-knownnat, gitrev
      , haddock-library, hashable, haskell-lsp, haskell-lsp-types
      , hie-bios, hslogger, lens, lsp-test, mtl, network-uri
-     , optparse-applicative, parser-combinators, prettyprinter
-     , prettyprinter-ansi-terminal, QuickCheck, quickcheck-instances
-     , regex-tdfa, rope-utf16-splay, safe-exceptions, shake, sorted-list
-     , stm, syb, tasty, tasty-expected-failure, tasty-hunit
-     , tasty-quickcheck, tasty-rerun, text, time, transformers, unix
-     , unordered-containers, utf8-string
+     , optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
+     , process, QuickCheck, quickcheck-instances, regex-tdfa
+     , rope-utf16-splay, safe, safe-exceptions, shake, sorted-list, stm
+     , syb, tasty, tasty-expected-failure, tasty-hunit, tasty-quickcheck
+     , tasty-rerun, text, time, transformers, unix, unordered-containers
+     , utf8-string, yaml
      }:
      mkDerivation {
        pname = "ghcide";
-       version = "0.2.0";
-       sha256 = "1zadj34583qp8xz0iv2r0anqh96r94jv13iary5bk1m9zbhf4f7v";
+       version = "0.3.0";
+       sha256 = "001g3240qd9q9j00cmvz9d0b73mbf8mv5204cyf5jh04xcd09908";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson array async base binary bytestring containers data-default
-         deepseq directory extra filepath fuzzy ghc ghc-boot ghc-boot-th
-         haddock-library hashable haskell-lsp haskell-lsp-types hslogger mtl
-         network-uri prettyprinter prettyprinter-ansi-terminal regex-tdfa
-         rope-utf16-splay safe-exceptions shake sorted-list stm syb text
-         time transformers unix unordered-containers utf8-string
+         aeson array async base base16-bytestring binary bytestring
+         containers cryptohash-sha1 data-default deepseq directory extra
+         filepath fuzzy ghc ghc-boot ghc-boot-th ghc-check ghc-paths
+         haddock-library hashable haskell-lsp haskell-lsp-types hie-bios
+         hslogger mtl network-uri prettyprinter prettyprinter-ansi-terminal
+         regex-tdfa rope-utf16-splay safe safe-exceptions shake sorted-list
+         stm syb text time transformers unix unordered-containers
+         utf8-string
        ];
        executableHaskellDepends = [
-         aeson async base base16-bytestring binary bytestring containers
-         cryptohash-sha1 data-default deepseq directory extra filepath ghc
-         ghc-check ghc-paths gitrev hashable haskell-lsp haskell-lsp-types
-         hie-bios hslogger optparse-applicative shake text time
+         aeson base bytestring containers data-default directory extra
+         filepath gitrev hashable haskell-lsp haskell-lsp-types hie-bios
+         lsp-test optparse-applicative process safe-exceptions text
          unordered-containers
        ];
        testHaskellDepends = [
-         aeson base bytestring containers directory extra filepath ghc
-         ghc-typelits-knownnat haddock-library haskell-lsp haskell-lsp-types
-         lens lsp-test network-uri parser-combinators QuickCheck
-         quickcheck-instances rope-utf16-splay shake tasty
-         tasty-expected-failure tasty-hunit tasty-quickcheck tasty-rerun
-         text
+         aeson base binary bytestring containers directory extra filepath
+         ghc ghc-typelits-knownnat haddock-library haskell-lsp
+         haskell-lsp-types lens lsp-test network-uri optparse-applicative
+         process QuickCheck quickcheck-instances rope-utf16-splay safe
+         safe-exceptions shake tasty tasty-expected-failure tasty-hunit
+         tasty-quickcheck tasty-rerun text
+       ];
+       benchmarkHaskellDepends = [
+         aeson base Chart Chart-diagrams diagrams diagrams-svg directory
+         extra filepath shake text yaml
        ];
        description = "The core of an IDE";
        license = stdenv.lib.licenses.asl20;
@@ -98593,6 +100264,26 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) atk;};
 
+  "gi-atk_2_0_22" = 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.22";
+       sha256 = "1jx0wy3a0vzclqpysks3nllvm2163svll1iakh3ar7njba7ihq2x";
+       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 = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) atk;};
+
   "gi-cairo" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, cairo, containers
      , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
@@ -98616,6 +100307,30 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) cairo;};
 
+  "gi-cairo_1_0_24" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, cairo, containers
+     , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-cairo";
+       version = "1.0.24";
+       sha256 = "1g8dvfhsncigi4xrdydp8bxjrcajk1794xb24wpvqpnnbmmykpwk";
+       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 = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) cairo;};
+
   "gi-cairo-again" = callPackage
     ({ mkDerivation, base, cairo-core, haskell-gi-base
      , template-haskell
@@ -98646,6 +100361,8 @@ self: {
        ];
        description = "GI friendly Binding to the Cairo library";
        license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "gi-cairo-render" = callPackage
@@ -98665,6 +100382,8 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "GI friendly Binding to the Cairo library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) cairo;};
 
   "gi-dbusmenu" = callPackage
@@ -98684,6 +100403,29 @@ self: {
        libraryPkgconfigDepends = [ libdbusmenu ];
        description = "Dbusmenu bindings";
        license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) libdbusmenu;};
+
+  "gi-dbusmenu_0_4_8" = 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.8";
+       sha256 = "15nvfap39ayw34282br4rch1aias0m1sbapc0nkla8h5ip2naqi6";
+       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 = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) libdbusmenu;};
 
   "gi-dbusmenugtk3" = callPackage
@@ -98708,6 +100450,34 @@ self: {
        libraryPkgconfigDepends = [ gtk3 libdbusmenu-gtk3 ];
        description = "DbusmenuGtk bindings";
        license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) gtk3; inherit (pkgs) libdbusmenu-gtk3;};
+
+  "gi-dbusmenugtk3_0_4_9" = 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.9";
+       sha256 = "1cni5368ldyblwh0jr6wva8fhi3574d258xzw49prwbjxngmjiv0";
+       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 = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) gtk3; inherit (pkgs) libdbusmenu-gtk3;};
 
   "gi-gdk" = callPackage
@@ -98734,7 +100504,32 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) gtk3;};
 
-  "gi-gdk_4_0_1" = callPackage
+  "gi-gdk_3_0_23" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
+     , gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject, gi-pango, gtk3
+     , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-gdk";
+       version = "3.0.23";
+       sha256 = "18v3kb6kmryymmrz0d88nf25priwyh3yzh7raghc5ph2rv7n4w8m";
+       setupHaskellDepends = [
+         base Cabal gi-cairo gi-gdkpixbuf gi-gio gi-glib gi-gobject gi-pango
+         haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-cairo gi-gdkpixbuf gi-gio gi-glib
+         gi-gobject gi-pango haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gtk3 ];
+       description = "Gdk bindings";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) gtk3;};
+
+  "gi-gdk_4_0_2" = 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
@@ -98742,8 +100537,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gdk";
-       version = "4.0.1";
-       sha256 = "1b2azv7c3c9ni9f258ag2cxy97sh8ax78v0hym0gpvrky741vqwq";
+       version = "4.0.2";
+       sha256 = "0271n81jqwcl7g0li4yv6x42jkcmx4cjs2b6b60g1mz0qq8klhbn";
        setupHaskellDepends = [
          base Cabal gi-cairo gi-gdkpixbuf gi-gio gi-glib gi-gobject gi-pango
          haskell-gi
@@ -98780,6 +100575,28 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) gdk-pixbuf;};
 
+  "gi-gdkpixbuf_2_0_24" = 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.24";
+       sha256 = "00hgfyln0pqx4fmffc24mx818y1lladfc288qq0f03345p5dnbna";
+       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 = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) gdk-pixbuf;};
+
   "gi-gdkx11" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
      , gi-gdk, gi-gio, gi-gobject, gi-xlib, gtk3, haskell-gi
@@ -98800,17 +100617,19 @@ self: {
        libraryPkgconfigDepends = [ gtk3 ];
        description = "GdkX11 bindings";
        license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) gtk3;};
 
-  "gi-gdkx11_4_0_1" = callPackage
+  "gi-gdkx11_4_0_2" = 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.1";
-       sha256 = "1z7d8vs4l1gzm0nbi0ir2q76jcc9s685s2nhbfflyjsvclr91spm";
+       version = "4.0.2";
+       sha256 = "1z510v5p515i2fyd5kjxcfnyf5lsd0kzgzsnnqw4km186b241fc5";
        setupHaskellDepends = [
          base Cabal gi-cairo gi-gdk gi-gio gi-gobject gi-xlib haskell-gi
        ];
@@ -98823,6 +100642,7 @@ self: {
        description = "GdkX11 bindings";
        license = stdenv.lib.licenses.lgpl21;
        hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {gtk4-x11 = null;};
 
   "gi-ggit" = callPackage
@@ -98832,8 +100652,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-ggit";
-       version = "1.0.8";
-       sha256 = "151qgcwp2spa957nr3jdb9ac35f1r1gyi2d5vzgxy8xzc3993wmq";
+       version = "1.0.9";
+       sha256 = "0qvmppdby40ncd9alnnk8ang90qcaj00c0g0nrq0s0m1ynar8ccd";
        setupHaskellDepends = [
          base Cabal gi-gio gi-glib gi-gobject haskell-gi
        ];
@@ -98865,6 +100685,26 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) glib;};
 
+  "gi-gio_2_0_27" = 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.27";
+       sha256 = "08qc0ahj0qmmibf92m48hv8q2x47q83c6j9a49h11dyc8l4nclx6";
+       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 = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) glib;};
+
   "gi-girepository" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
      , gi-gobject, gobject-introspection, haskell-gi, haskell-gi-base
@@ -98872,8 +100712,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-girepository";
-       version = "1.0.22";
-       sha256 = "1m7gnam8a46zbbnxgcszv1wn8zgzdrpki6k3fgy5xjnb4gp5pvpj";
+       version = "1.0.23";
+       sha256 = "0a8sis3zayiywi7mgs1g4p7nr9szv392j7bimq5nvva04lj6sdzc";
        setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
        libraryHaskellDepends = [
          base bytestring containers gi-glib gi-gobject haskell-gi
@@ -98903,6 +100743,26 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) glib;};
 
+  "gi-glib_2_0_24" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, glib
+     , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-glib";
+       version = "2.0.24";
+       sha256 = "0zrajclbjbq6d6pyvz3s0kjq997w7j8nghi3i89l8fjw16gbmjxn";
+       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 = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) glib;};
+
   "gi-gobject" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib, glib
      , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
@@ -98922,6 +100782,26 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) glib;};
 
+  "gi-gobject_2_0_24" = 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.24";
+       sha256 = "1i19s7pcs3gnhhyif8y3j7hngmdzfqbgaw52j8dvrz7w11fbx9sj";
+       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 = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) glib;};
+
   "gi-graphene" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
      , gi-gobject, graphene-gobject, haskell-gi, haskell-gi-base
@@ -98943,6 +100823,27 @@ self: {
        broken = true;
      }) {graphene-gobject = null;};
 
+  "gi-graphene_1_0_2" = 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.2";
+       sha256 = "1mszvx58mdazy8202s0c05hp800b92n21g4rxwvp5k0ms7qz95nq";
+       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 = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.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
@@ -98951,8 +100852,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gsk";
-       version = "4.0.1";
-       sha256 = "0645dyifg6d3x03zrzf2andfah32s878rcyqzw891prn2dvga3nx";
+       version = "4.0.2";
+       sha256 = "1jc5jxni87zg475rgjrxv85rpyr20bwxdyfjw060dx4gvnyhxnfs";
        setupHaskellDepends = [
          base Cabal gi-cairo gi-gdk gi-glib gi-gobject gi-graphene gi-pango
          haskell-gi
@@ -98976,8 +100877,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gst";
-       version = "1.0.22";
-       sha256 = "0qicgvy9wm1xs5y6fda8sxdilwfg2y6albdqy3jg2n5qn7c9p0f6";
+       version = "1.0.23";
+       sha256 = "0w4xscgd49d6d00gvsqc210r63c0wj748dqa5ypppr4mzllsm0qv";
        setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
        libraryHaskellDepends = [
          base bytestring containers gi-glib gi-gobject haskell-gi
@@ -98995,8 +100896,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gstaudio";
-       version = "1.0.21";
-       sha256 = "0zrcplkd0hfdfvwq7gbg8wyvsk2an8k5yj342adq1ar0zgfh064n";
+       version = "1.0.22";
+       sha256 = "17x0nmzawr9mqfjjbgk9s35102y4nsvxym9hwgwhh88ijnbhshhs";
        setupHaskellDepends = [
          base Cabal gi-glib gi-gobject gi-gst gi-gstbase haskell-gi
        ];
@@ -99016,8 +100917,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gstbase";
-       version = "1.0.22";
-       sha256 = "1y7hf5kcm4kj185glb298zr6x39m61hvqrdwskk9043nrd8ifcxx";
+       version = "1.0.23";
+       sha256 = "0im25z9pf9j0cxj0b6lbbr3lis9kbvzzvzns65cmargbh1018959";
        setupHaskellDepends = [
          base Cabal gi-glib gi-gobject gi-gst haskell-gi
        ];
@@ -99038,8 +100939,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gstpbutils";
-       version = "1.0.21";
-       sha256 = "15kg01g8cgaw98khf6nrr9sjbfss3a3d43g9zgbbv5h5qnzvjazb";
+       version = "1.0.22";
+       sha256 = "1kq86zc9rcla6xhgi0vf32y6bs3adi5xgkpknld6zl4dq7s70plk";
        setupHaskellDepends = [
          base Cabal gi-glib gi-gobject gi-gst gi-gstaudio gi-gsttag
          gi-gstvideo haskell-gi
@@ -99063,8 +100964,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gsttag";
-       version = "1.0.21";
-       sha256 = "061xy3vx41pgyyg6mcbc7saj50n5zwfc72l8dw54kgv09vykp7ji";
+       version = "1.0.22";
+       sha256 = "0jpqj5kggg2ahvbrnmacjk6n9zg31v0klybkygz4i6i4d6absvf6";
        setupHaskellDepends = [
          base Cabal gi-glib gi-gobject gi-gst gi-gstbase haskell-gi
        ];
@@ -99086,8 +100987,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gstvideo";
-       version = "1.0.22";
-       sha256 = "0fr9pfcfsjajl5cd6p05a4kp83acmllzzdm0kc2nxnr0kmjifi5v";
+       version = "1.0.23";
+       sha256 = "1kb09kal08x7nznc0g8c2n9jfijapdndbnsfs5cvz0p9smvd092i";
        setupHaskellDepends = [
          base Cabal gi-glib gi-gobject gi-gst gi-gstbase haskell-gi
        ];
@@ -99124,7 +101025,32 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) gtk3;};
 
-  "gi-gtk_4_0_1" = callPackage
+  "gi-gtk_3_0_35" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
+     , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject
+     , gi-pango, gtk3, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gtk";
+       version = "3.0.35";
+       sha256 = "08z6kc9m7xb24d9z08yy3g66l8i7nircnaiy5i82yfl2l4slvz2w";
+       setupHaskellDepends = [
+         base Cabal gi-atk gi-cairo gi-gdk gi-gdkpixbuf gi-gio gi-glib
+         gi-gobject gi-pango haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-atk gi-cairo gi-gdk gi-gdkpixbuf
+         gi-gio gi-glib gi-gobject gi-pango haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gtk3 ];
+       description = "Gtk bindings";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) gtk3;};
+
+  "gi-gtk_4_0_2" = 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
@@ -99132,8 +101058,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gtk";
-       version = "4.0.1";
-       sha256 = "1brn4pyjvnc00bwqwf3d77dhbiknak5yjqs9xyk9mknw2pb98ppv";
+       version = "4.0.2";
+       sha256 = "1lmbb3q4f73f7yihnl4qjv7qvzrys3jqsh3dg9wwdg9bxg900ghp";
        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
@@ -99171,6 +101097,8 @@ self: {
        ];
        description = "Declarative GTK+ programming in Haskell";
        license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "gi-gtk-declarative-app-simple" = callPackage
@@ -99189,6 +101117,8 @@ self: {
        ];
        description = "Declarative GTK+ programming in Haskell in the style of Pux";
        license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "gi-gtk-hs" = callPackage
@@ -99206,6 +101136,27 @@ self: {
        ];
        description = "A wrapper for gi-gtk, adding a few more idiomatic API parts on top";
        license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "gi-gtk-hs_0_3_9" = 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.9";
+       sha256 = "1ql14ripivfh1w65wnr6mw64f2vlwi54gz70c8qql9f5szbnjky1";
+       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 = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "gi-gtkosxapplication" = callPackage
@@ -99239,8 +101190,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gtksource";
-       version = "3.0.22";
-       sha256 = "08b3ffjdgyr5xapx37kkwx3z8fsd42ydvdwk3nvh2ysfq9q86cjh";
+       version = "3.0.23";
+       sha256 = "13rsxjbl62q8zhwqr8jm2fh5njzfa86izqwag4d6aw8xi71wqfrn";
        setupHaskellDepends = [
          base Cabal gi-atk gi-cairo gi-gdk gi-gdkpixbuf gi-gio gi-glib
          gi-gobject gi-gtk gi-pango haskell-gi
@@ -99257,22 +101208,22 @@ self: {
 
   "gi-handy" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
-     , gi-gdk, gi-gio, gi-glib, gi-gobject, gi-gtk, haskell-gi
+     , gi-gdk, gi-gio, gi-glib, gi-gobject, gi-gtk, gi-pango, haskell-gi
      , haskell-gi-base, haskell-gi-overloading, libhandy, text
      , transformers
      }:
      mkDerivation {
        pname = "gi-handy";
-       version = "0.0.6";
-       sha256 = "134dspf2vhwl76g25mjjj3gmdis748qg3rschmypd9w4zr2l651w";
+       version = "0.0.7";
+       sha256 = "0vdmby4wzxzhy9cbpi6i29r2ywq75ndcjpra3nvkavp91ba1y1c1";
        setupHaskellDepends = [
-         base Cabal gi-atk gi-gdk gi-gio gi-glib gi-gobject gi-gtk
+         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 haskell-gi haskell-gi-base haskell-gi-overloading text
-         transformers
+         gi-gtk gi-pango haskell-gi haskell-gi-base haskell-gi-overloading
+         text transformers
        ];
        libraryPkgconfigDepends = [ libhandy ];
        description = "libhandy bindings";
@@ -99281,6 +101232,25 @@ self: {
        broken = true;
      }) {inherit (pkgs) libhandy;};
 
+  "gi-harfbuzz" = 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.3";
+       sha256 = "1rapwaf8rz18rsai54lq9wcccf9j0ihcafvwhrzvgl17fjqcfqaz";
+       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 = stdenv.lib.licenses.lgpl21;
+     }) {inherit (pkgs) harfbuzz; harfbuzz-gobject = null;};
+
   "gi-ibus" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
      , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
@@ -99288,8 +101258,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-ibus";
-       version = "1.5.1";
-       sha256 = "1dvybzgckpqyvh9ivaq22x9i8paafglh3pmr4lk6i7zjlamw8kxv";
+       version = "1.5.2";
+       sha256 = "14chw0qhzdxixsqsn2ra31z561kn2zclk15b7hfpfzayqr6dqci1";
        setupHaskellDepends = [
          base Cabal gi-gio gi-glib gi-gobject haskell-gi
        ];
@@ -99300,8 +101270,6 @@ self: {
        libraryPkgconfigDepends = [ ibus ];
        description = "IBus bindings";
        license = stdenv.lib.licenses.lgpl21;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) ibus;};
 
   "gi-javascriptcore" = callPackage
@@ -99311,8 +101279,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-javascriptcore";
-       version = "4.0.21";
-       sha256 = "0zl2lanysqir9qhndai7v4yp6sq671115mi5k9q58rwkmvkm6w04";
+       version = "4.0.22";
+       sha256 = "191ipwjxn94dxz6saapidvjr8bbnl0y3p4f10s6mj6h6pkb5axjb";
        setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
        libraryHaskellDepends = [
          base bytestring containers gi-glib gi-gobject haskell-gi
@@ -99331,8 +101299,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-notify";
-       version = "0.7.21";
-       sha256 = "13ifi60jlfm9jypf6gam224s5rgq2kd1cj98wfl1dg9crahghbls";
+       version = "0.7.22";
+       sha256 = "0j5cxx9dsxh2wafw4xa7yasr6n98h2qwpm1y08nm7m6i0kwrksap";
        setupHaskellDepends = [
          base Cabal gi-gdkpixbuf gi-glib gi-gobject haskell-gi
        ];
@@ -99352,8 +101320,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-ostree";
-       version = "1.0.12";
-       sha256 = "0j7nd4ylz4whnsdfbn6ra7kvvnx6l6bqv2y57rgk1nnac3cc6201";
+       version = "1.0.13";
+       sha256 = "07k02mffidw18f104crmhayr5nf3v5xcldc8fbmxdinp7wik5c7f";
        setupHaskellDepends = [
          base Cabal gi-gio gi-glib gi-gobject haskell-gi
        ];
@@ -99390,6 +101358,32 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) cairo; inherit (pkgs) pango;};
 
+  "gi-pango_1_0_23" = 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.23";
+       sha256 = "18pp83nzqdxzq15g3rm0xym4hdq3f851m6mshlb4f7liy168vpl9";
+       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 = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) cairo; inherit (pkgs) pango;};
+
   "gi-pangocairo" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, cairo, containers
      , gi-cairo, gi-glib, gi-gobject, gi-pango, haskell-gi
@@ -99398,8 +101392,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-pangocairo";
-       version = "1.0.23";
-       sha256 = "0la2ga1hprwm4fnia48y0q1cg8il0aq42nwvaj5gndx6id42a1i6";
+       version = "1.0.24";
+       sha256 = "1yya5gsqrkagmm33rsasshlj691nmax47fqdn1p2rnf4aqx1jcqr";
        setupHaskellDepends = [
          base Cabal gi-cairo gi-glib gi-gobject gi-pango haskell-gi
        ];
@@ -99423,8 +101417,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-poppler";
-       version = "0.18.22";
-       sha256 = "0bqmkijnmxi4k30nbn8zsx03i9y7mlp06ikmd2dbxj22lyazqjz4";
+       version = "0.18.23";
+       sha256 = "0dn6qnsrgnvbz9nbv0ig9hyjmswrq6v3z1bcnf0pybcdwr8j1zrw";
        setupHaskellDepends = [
          base Cabal gi-cairo gi-gio gi-glib gi-gobject haskell-gi
        ];
@@ -99446,8 +101440,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-secret";
-       version = "0.0.11";
-       sha256 = "1s3vwy0aff4m1rvkbcvfa4zwbbalaiz46ij3ymmsx319v2mwwiib";
+       version = "0.0.12";
+       sha256 = "19mr7mvay2slm5k6afqj0hhy4ddh0advrb5dyzqi75xysx7xagm8";
        setupHaskellDepends = [
          base Cabal gi-gio gi-glib gi-gobject haskell-gi
        ];
@@ -99458,8 +101452,6 @@ self: {
        libraryPkgconfigDepends = [ libsecret ];
        description = "Libsecret bindings";
        license = stdenv.lib.licenses.lgpl21;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) libsecret;};
 
   "gi-soup" = callPackage
@@ -99469,8 +101461,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-soup";
-       version = "2.4.22";
-       sha256 = "0vgvcq9nysw9xfyjddi1qzngw7pfrfx4g1f3zngf56jcvxf8q6rw";
+       version = "2.4.23";
+       sha256 = "109n57ff69xmwhm3lvf0ajid3zl0l9sr1qdnvis06bhcddw9i1ap";
        setupHaskellDepends = [
          base Cabal gi-gio gi-glib gi-gobject haskell-gi
        ];
@@ -99491,8 +101483,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-vte";
-       version = "2.91.25";
-       sha256 = "0h6kqbbdr7zgpq6sfqs2pfx99c7wj1aabpzna9fryn6zhaha8j3c";
+       version = "2.91.27";
+       sha256 = "0a4n8yah3nirwciw0y1i8vpcjqbbk3pw15nd8av109cyxgl8nzx8";
        setupHaskellDepends = [
          base Cabal gi-atk gi-gdk gi-gio gi-glib gi-gobject gi-gtk gi-pango
          haskell-gi
@@ -99538,8 +101530,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-webkit2";
-       version = "4.0.25";
-       sha256 = "1xg4xy24nnz0ngv46m58jkmaka72nv4954g03f6ixpvwappim0vm";
+       version = "4.0.26";
+       sha256 = "0vbsc5zd1m1k47zpq620kzsiyg2g25ag6fvkwj0hdlq24xhyiavr";
        setupHaskellDepends = [
          base Cabal gi-atk gi-cairo gi-gdk gi-gio gi-glib gi-gobject gi-gtk
          gi-javascriptcore gi-soup haskell-gi
@@ -99563,8 +101555,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-webkit2webextension";
-       version = "4.0.24";
-       sha256 = "0lnf173c6myrswk0kdnwkhs925imvcpyvpmy50krqljnv6f2ksxn";
+       version = "4.0.25";
+       sha256 = "0vdzhnaj6d03cgxz3i886cahkfhl8xgcrm37wdcxqydkxx2ybh6h";
        setupHaskellDepends = [
          base Cabal gi-gio gi-gobject gi-gtk gi-javascriptcore gi-soup
          haskell-gi
@@ -99588,8 +101580,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-wnck";
-       version = "3.0.7";
-       sha256 = "02kgbp3h5ny7y0qmddsfng0a1gqpdmadl6yy45hmk98ws02rk9bx";
+       version = "3.0.9";
+       sha256 = "1cy1nzld3220rg0f1gzr5cw756s5vm9las8p8xyqhjmk3awy0cbp";
        setupHaskellDepends = [
          base Cabal gi-atk gi-gdk gi-gdkpixbuf gi-gobject gi-gtk haskell-gi
        ];
@@ -99622,6 +101614,29 @@ self: {
        libraryPkgconfigDepends = [ xlibsWrapper ];
        description = "xlib bindings";
        license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) xlibsWrapper;};
+
+  "gi-xlib_2_0_9" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
+     , xlibsWrapper
+     }:
+     mkDerivation {
+       pname = "gi-xlib";
+       version = "2.0.9";
+       sha256 = "02n2iz30dkkfqpsc3ngpx0zxrl6fbsafzrjf0im8an783jp3vm80";
+       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 = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) xlibsWrapper;};
 
   "giak" = callPackage
@@ -99665,8 +101680,8 @@ self: {
      }:
      mkDerivation {
        pname = "ginger";
-       version = "0.10.0.5";
-       sha256 = "187118g5fs97msdab4jmhrwy28hhi81ihyc1v6rfb535bsnm70sw";
+       version = "0.10.1.0";
+       sha256 = "0579ajr1rng0bd0pml69f6yz4aykvk8zcni0p7ck628qx4jzxihx";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -99872,9 +101887,10 @@ self: {
      , clientsession, concurrent-output, conduit, connection, containers
      , crypto-api, cryptonite, curl, data-default, DAV, dbus, deepseq
      , directory, disk-free-space, dlist, edit-distance, exceptions
-     , fdo-notify, feed, filepath, filepath-bytestring, free, git, gnupg
-     , hinotify, hslogger, http-client, http-client-tls, http-conduit
-     , http-types, IfElse, lsof, magic, memory, microlens, monad-control
+     , fdo-notify, feed, filepath, filepath-bytestring, free, git
+     , git-lfs, gnupg, hinotify, hslogger, http-client
+     , http-client-restricted, http-client-tls, http-conduit, http-types
+     , IfElse, lsof, magic, memory, microlens, monad-control
      , monad-logger, mountpoints, mtl, network, network-bsd
      , network-info, network-multicast, network-uri, old-locale, openssh
      , optparse-applicative, path-pieces, perl, persistent
@@ -99889,81 +101905,8 @@ self: {
      }:
      mkDerivation {
        pname = "git-annex";
-       version = "8.20200501";
-       sha256 = "19rggaymvqy7r61n2rl2nigwdi2hzq5l1afcd5l0k1vbacwgq4jl";
-       configureFlags = [
-         "-fassistant" "-f-benchmark" "-fdbus" "-f-debuglocks" "-fmagicmime"
-         "-fnetworkbsd" "-fpairing" "-fproduction" "-fs3" "-ftorrentparser"
-         "-fwebapp" "-fwebdav"
-       ];
-       isLibrary = false;
-       isExecutable = true;
-       setupHaskellDepends = [
-         base bytestring Cabal data-default directory exceptions filepath
-         filepath-bytestring hslogger IfElse process split transformers
-         unix-compat utf8-string
-       ];
-       executableHaskellDepends = [
-         aeson async attoparsec aws base blaze-builder bloomfilter byteable
-         bytestring case-insensitive clientsession concurrent-output conduit
-         connection containers crypto-api cryptonite data-default DAV dbus
-         deepseq directory disk-free-space dlist edit-distance exceptions
-         fdo-notify feed filepath filepath-bytestring free hinotify hslogger
-         http-client http-client-tls http-conduit http-types IfElse magic
-         memory microlens monad-control monad-logger mountpoints mtl network
-         network-bsd network-info network-multicast network-uri old-locale
-         optparse-applicative path-pieces persistent persistent-sqlite
-         persistent-template process QuickCheck random regex-tdfa resourcet
-         SafeSemaphore sandi securemem shakespeare socks split stm stm-chans
-         tagsoup tasty tasty-hunit tasty-quickcheck tasty-rerun
-         template-haskell text time torrent transformers unix unix-compat
-         unliftio-core unordered-containers utf8-string uuid vector wai
-         wai-extra warp warp-tls yesod yesod-core yesod-form yesod-static
-       ];
-       executableSystemDepends = [
-         bup curl git gnupg lsof openssh perl rsync wget which
-       ];
-       preConfigure = "export HOME=$TEMPDIR; patchShebangs .";
-       postBuild = ''
-         ln -sf dist/build/git-annex/git-annex git-annex
-         ln -sf git-annex git-annex-shell
-       '';
-       installPhase = "make PREFIX=$out BUILDER=: install install-completions";
-       checkPhase = ''PATH+=":$PWD" git-annex test'';
-       enableSharedExecutables = false;
-       description = "manage files with git, without checking their contents into git";
-       license = stdenv.lib.licenses.agpl3;
-       maintainers = with stdenv.lib.maintainers; [ peti ];
-     }) {inherit (pkgs) bup; inherit (pkgs) curl; inherit (pkgs) git; 
-         inherit (pkgs) gnupg; inherit (pkgs) lsof; inherit (pkgs) openssh; 
-         inherit (pkgs) perl; inherit (pkgs) rsync; inherit (pkgs) wget; 
-         inherit (pkgs) which;};
-
-  "git-annex_8_20200617" = callPackage
-    ({ mkDerivation, aeson, async, attoparsec, aws, base, blaze-builder
-     , bloomfilter, bup, byteable, bytestring, Cabal, case-insensitive
-     , clientsession, concurrent-output, conduit, connection, containers
-     , crypto-api, cryptonite, curl, data-default, DAV, dbus, deepseq
-     , directory, disk-free-space, dlist, edit-distance, exceptions
-     , fdo-notify, feed, filepath, filepath-bytestring, free, git, gnupg
-     , hinotify, hslogger, http-client, http-client-tls, http-conduit
-     , http-types, IfElse, lsof, magic, memory, microlens, monad-control
-     , monad-logger, mountpoints, mtl, network, network-bsd
-     , network-info, network-multicast, network-uri, old-locale, openssh
-     , optparse-applicative, path-pieces, perl, persistent
-     , persistent-sqlite, persistent-template, process, QuickCheck
-     , random, regex-tdfa, resourcet, rsync, SafeSemaphore, sandi
-     , securemem, shakespeare, socks, split, stm, stm-chans, tagsoup
-     , tasty, tasty-hunit, tasty-quickcheck, tasty-rerun
-     , template-haskell, text, time, torrent, transformers, unix
-     , unix-compat, unliftio-core, unordered-containers, utf8-string
-     , uuid, vector, wai, wai-extra, warp, warp-tls, wget, which, yesod
-     , yesod-core, yesod-form, yesod-static
-     }:
-     mkDerivation {
-       pname = "git-annex";
-       version = "8.20200617";
-       sha256 = "1vgpqbscvxm03ibxy6cjnp9vd1wpsr3gkajp4z3m9nnkmjz5r4q4";
+       version = "8.20200810";
+       sha256 = "1wy6ckcf5f6m94gakg1504h1zryail3mmj85sglq03s45vawjcg6";
        configureFlags = [
          "-fassistant" "-f-benchmark" "-fdbus" "-f-debuglocks" "-fmagicmime"
          "-fnetworkbsd" "-fpairing" "-fproduction" "-fs3" "-ftorrentparser"
@@ -99981,17 +101924,18 @@ self: {
          bytestring case-insensitive clientsession concurrent-output conduit
          connection containers crypto-api cryptonite data-default DAV dbus
          deepseq directory disk-free-space dlist edit-distance exceptions
-         fdo-notify feed filepath filepath-bytestring free hinotify hslogger
-         http-client http-client-tls http-conduit http-types IfElse magic
-         memory microlens monad-control monad-logger mountpoints mtl network
-         network-bsd network-info network-multicast network-uri old-locale
-         optparse-applicative path-pieces persistent persistent-sqlite
-         persistent-template process QuickCheck random regex-tdfa resourcet
-         SafeSemaphore sandi securemem shakespeare socks split stm stm-chans
-         tagsoup tasty tasty-hunit tasty-quickcheck tasty-rerun
-         template-haskell text time torrent transformers unix unix-compat
-         unliftio-core unordered-containers utf8-string uuid vector wai
-         wai-extra warp warp-tls yesod yesod-core yesod-form yesod-static
+         fdo-notify feed filepath filepath-bytestring free git-lfs hinotify
+         hslogger http-client http-client-restricted http-client-tls
+         http-conduit http-types IfElse magic memory microlens monad-control
+         monad-logger mountpoints mtl network network-bsd network-info
+         network-multicast network-uri old-locale optparse-applicative
+         path-pieces persistent persistent-sqlite persistent-template
+         process QuickCheck random regex-tdfa resourcet SafeSemaphore sandi
+         securemem shakespeare socks split stm stm-chans tagsoup tasty
+         tasty-hunit tasty-quickcheck tasty-rerun template-haskell text time
+         torrent transformers unix unix-compat unliftio-core
+         unordered-containers utf8-string uuid vector wai wai-extra warp
+         warp-tls yesod yesod-core yesod-form yesod-static
        ];
        executableSystemDepends = [
          bup curl git gnupg lsof openssh perl rsync wget which
@@ -100006,7 +101950,6 @@ self: {
        enableSharedExecutables = false;
        description = "manage files with git, without checking their contents into git";
        license = stdenv.lib.licenses.agpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {inherit (pkgs) bup; inherit (pkgs) curl; inherit (pkgs) git; 
          inherit (pkgs) gnupg; inherit (pkgs) lsof; inherit (pkgs) openssh; 
@@ -100019,8 +101962,8 @@ self: {
      }:
      mkDerivation {
        pname = "git-brunch";
-       version = "1.3.1.0";
-       sha256 = "0k1q3f9hyyagv67mpaj1159vic4kc44nk10nswg0pql38ai5bqvx";
+       version = "1.4.0.0";
+       sha256 = "1dv0hzdfmzm2c3mfmf73lb085279hnfx41ly5393l0vj1v2ln6a4";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -100076,6 +102019,27 @@ self: {
        broken = true;
      }) {};
 
+  "git-cuk" = callPackage
+    ({ mkDerivation, ansi-terminal, base, base-noprelude, github
+     , gitrev, optparse-applicative, process, relude, text
+     }:
+     mkDerivation {
+       pname = "git-cuk";
+       version = "0.0.1";
+       sha256 = "176027wag30imq3471c7qi8fdyb5myixlsphyq28394y47yz638i";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-terminal base-noprelude github gitrev optparse-applicative
+         process relude text
+       ];
+       executableHaskellDepends = [ base relude ];
+       description = "Haskell Git Helper Tool";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "git-date" = callPackage
     ({ mkDerivation, base, bytestring, old-locale, QuickCheck
      , test-framework, test-framework-quickcheck2, time, unexceptionalio
@@ -100504,8 +102468,8 @@ self: {
      }:
      mkDerivation {
        pname = "github-backup";
-       version = "1.20191219";
-       sha256 = "0yi0i342qh1wm7j81qa6mhyfjp4psbw4vrpp0m1c9zjbymfpcymk";
+       version = "1.20200721";
+       sha256 = "0d0sc2l6crkr42nwkhbcixlxrywx6gsn6vzgdpwh0r6vxlc83hcw";
        isLibrary = false;
        isExecutable = true;
        setupHaskellDepends = [
@@ -100575,8 +102539,8 @@ self: {
      }:
      mkDerivation {
        pname = "github-release";
-       version = "1.3.3";
-       sha256 = "15im4vsz04sx0iq83xmvk5ak4p7rj33jawk5lxkmv1ajwvklbpk7";
+       version = "1.3.5";
+       sha256 = "0z2sb9avhkq2mgj0pwlji5c2sjxd71628q1i3nhlbajfyms1bsqz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -100598,10 +102562,8 @@ self: {
      }:
      mkDerivation {
        pname = "github-rest";
-       version = "1.0.2";
-       sha256 = "0q4dxr0080pkszq9vv3j2wx89yhy15jjbk5m7wd1mwirgwxv214m";
-       revision = "2";
-       editedCabalFile = "02brididamvd9g938vqirp6d0vmw7cs9w1yk05ic89kxcl55n8mx";
+       version = "1.0.3";
+       sha256 = "0alwix2lvrvv6ba7nrxg6qvvrdci1vbv94yvq29zmsab9lbv6jrb";
        libraryHaskellDepends = [
          aeson base bytestring http-client http-client-tls http-types jwt
          mtl scientific text time transformers unliftio unliftio-core
@@ -100715,8 +102677,8 @@ self: {
      }:
      mkDerivation {
        pname = "github-webhooks";
-       version = "0.14.0";
-       sha256 = "0rjbavfcwhbi817dsvg2q9qmf5ln7mp5kgs1wlq23p0603jgm211";
+       version = "0.15.0";
+       sha256 = "0cmavbh7c59pimspjj42mwlac5jmlgagjsw4239hcsrna5yi4wdz";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring cryptonite deepseq
          deepseq-generics memory text time vector
@@ -100847,15 +102809,16 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "gitlab-haskell_0_2" = callPackage
+  "gitlab-haskell_0_2_2" = callPackage
     ({ mkDerivation, aeson, base, bytestring, connection, http-conduit
      , http-types, tasty, tasty-hunit, text, time, transformers
      , unliftio, unliftio-core
      }:
      mkDerivation {
        pname = "gitlab-haskell";
-       version = "0.2";
-       sha256 = "147flwysaip40mcqwhskivf196dan0bk9vrjfjjq2fvnx46xg1q5";
+       version = "0.2.2";
+       sha256 = "10c6fv0hd8fnll56l7p4qbhyb0b4imiav910762kywbfrz1z6w18";
+       enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring connection http-conduit http-types text time
          transformers unliftio unliftio-core
@@ -101507,25 +103470,25 @@ self: {
     ({ mkDerivation, async, attoparsec, base, base64-bytestring
      , bytestring, Cabal, config-schema, config-value, containers
      , directory, filepath, free, gitrev, hashable, hookup, HsOpenSSL
-     , HUnit, irc-core, kan-extensions, lens, network, process, psqueues
-     , regex-tdfa, semigroupoids, split, stm, template-haskell, text
-     , time, transformers, unix, unordered-containers, vector, vty
+     , HUnit, irc-core, kan-extensions, lens, mwc-random, network
+     , process, psqueues, regex-tdfa, semigroupoids, split, stm
+     , template-haskell, text, time, transformers, unix
+     , unordered-containers, vector, vty
      }:
      mkDerivation {
        pname = "glirc";
-       version = "2.35";
-       sha256 = "093cqbvqijjy6xd0fzas13ldrsf9kg59jak88qzl5kks7z9djl0f";
-       revision = "1";
-       editedCabalFile = "14kgfgqyfw5vcm77n5iljxw5n28iclc1hpvi44x4vhrnmfpmq62v";
+       version = "2.36";
+       sha256 = "0s136d0nnw0vs198kzana10ybnka4mx0jyqdf1wsz5m9a4y3cnvj";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal filepath ];
        libraryHaskellDepends = [
          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 regex-tdfa semigroupoids split stm template-haskell text
-         time transformers unix unordered-containers vector vty
+         hookup HsOpenSSL irc-core kan-extensions lens mwc-random network
+         process psqueues regex-tdfa semigroupoids split stm
+         template-haskell text time transformers unix unordered-containers
+         vector vty
        ];
        executableHaskellDepends = [ base lens text vty ];
        testHaskellDepends = [ base HUnit ];
@@ -101682,10 +103645,8 @@ self: {
      }:
      mkDerivation {
        pname = "gloss";
-       version = "1.13.1.1";
-       sha256 = "1bmjwd2vfbxfypr2g23810yyp921m30wxbb6f3m0wkk65iypjnls";
-       revision = "1";
-       editedCabalFile = "1bcjm3issssqxd60jd2y6032y8plcs0sm3wbnha1f6fa3z46z9n0";
+       version = "1.13.1.2";
+       sha256 = "0jyvjpd1gzzb9aiw5708822p8qyw14jj6j19gby9q9wjbpd4sd4d";
        libraryHaskellDepends = [
          base bmp bytestring containers ghc-prim gloss-rendering GLUT OpenGL
        ];
@@ -101694,14 +103655,16 @@ self: {
      }) {};
 
   "gloss-accelerate" = callPackage
-    ({ mkDerivation, accelerate, base, gloss, gloss-rendering }:
+    ({ mkDerivation, accelerate, base, gloss, gloss-rendering
+     , linear-accelerate
+     }:
      mkDerivation {
        pname = "gloss-accelerate";
-       version = "2.0.0.1";
-       sha256 = "106z8kax0m3hzk0381l8m7gxdapl3wf0fdr1ljwb5fgcjc00pac2";
-       revision = "1";
-       editedCabalFile = "0349yyzxn7r82mz4vr71dibzp0sh45b4a06hm0c0z9d7vlxj0sjj";
-       libraryHaskellDepends = [ accelerate base gloss gloss-rendering ];
+       version = "2.1.0.0";
+       sha256 = "1l09li68r04qij11p7rf9dwfv9cdncj7nm6crq6bm834il3zg4zx";
+       libraryHaskellDepends = [
+         accelerate base gloss gloss-rendering linear-accelerate
+       ];
        description = "Extras to interface Gloss and Accelerate";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -101712,10 +103675,8 @@ self: {
     ({ mkDerivation, base, containers, ghc-prim, gloss }:
      mkDerivation {
        pname = "gloss-algorithms";
-       version = "1.13.0.1";
-       sha256 = "0vbqcsvyicb409a60fab0c0shixny4l5z2l15n8hrrr1dsvisf95";
-       revision = "1";
-       editedCabalFile = "140zmk3br0nn98mjc6ri36nk8yl93n4v69zybzv2vc41yxgvnac5";
+       version = "1.13.0.2";
+       sha256 = "0wx546hm1afgq0al5bk1g2qfgg9r520whm6igz18lkc9fsksjfgd";
        libraryHaskellDepends = [ base containers ghc-prim gloss ];
        description = "Data structures and algorithms for working with 2D graphics";
        license = stdenv.lib.licenses.mit;
@@ -101758,8 +103719,8 @@ self: {
      }:
      mkDerivation {
        pname = "gloss-examples";
-       version = "1.13.0.2";
-       sha256 = "1g2l3jjj2mmmw9w45bmasqn9nbbsxxny6zhdvda931r6ryanq8db";
+       version = "1.13.0.3";
+       sha256 = "0bvy9hww3i2mk3fim5spg2fd66mhxz5njil7xjrw6wbjs4ryrr92";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -101833,8 +103794,8 @@ self: {
      }:
      mkDerivation {
        pname = "gloss-raster";
-       version = "1.13.1.1";
-       sha256 = "199b1avi4mils3x9xpk66992id40hdyk0lpjnyyxy8c22s0adgb9";
+       version = "1.13.1.2";
+       sha256 = "0sn1pnkpl76q6lf6w9ji7fh1fcb89vaz2jz9slz7fih2ksrnwlsa";
        libraryHaskellDepends = [
          base containers ghc-prim gloss gloss-rendering repa
        ];
@@ -101850,10 +103811,8 @@ self: {
      }:
      mkDerivation {
        pname = "gloss-raster-accelerate";
-       version = "2.0.0.0";
-       sha256 = "1i0qx9wybr66i1x4n3p8ai2z6qx0k5lac422mhh4rvimcjx2bc9d";
-       revision = "3";
-       editedCabalFile = "0nk901zy01x7v7faa20j0yawqfw3nfl27xr19ip7bn3agmq4sqq2";
+       version = "2.1.0.0";
+       sha256 = "0yxlpz5wqfriijzkhqgjyv3g0wcmdy33ifbziqrdm9phvsjygvza";
        libraryHaskellDepends = [
          accelerate base colour-accelerate gloss gloss-accelerate
        ];
@@ -101896,8 +103855,8 @@ self: {
      }:
      mkDerivation {
        pname = "glpk-headers";
-       version = "0.4.0";
-       sha256 = "1xljpxgcp5lxrxgx718fqqg3xrjc7rfzj5zxi1f1z8cdsg00cvmc";
+       version = "0.4.1";
+       sha256 = "1r77p0h9iyffl903ag008cb3v21jw021129cfxpr2mp1mgnkhdjd";
        libraryHaskellDepends = [ base derive-storable ];
        testHaskellDepends = [
          base derive-storable tasty tasty-discover tasty-hunit
@@ -101930,6 +103889,26 @@ self: {
        broken = true;
      }) {inherit (pkgs) glpk;};
 
+  "gltf-codec" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, binary, bytestring
+     , directory, filepath, scientific, shower, text
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "gltf-codec";
+       version = "0.1.0.1";
+       sha256 = "0qdwk4ygvhdp4x8bkw101b50wc8zfb6bb54zpxaxkmva40hcv2c2";
+       libraryHaskellDepends = [
+         aeson base base64-bytestring binary bytestring scientific text
+         unordered-containers vector
+       ];
+       testHaskellDepends = [ base bytestring directory filepath shower ];
+       description = "glTF scene loader";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "glue" = callPackage
     ({ mkDerivation, async, base, ekg-core, hashable, hspec
      , lifted-base, monad-control, monad-loops, QuickCheck
@@ -102445,8 +104424,8 @@ self: {
        pname = "godot-haskell";
        version = "0.1.0.0";
        sha256 = "02nvs84bq4nif235iycjwkxmabvs0avwm2xilpwv8kddv95z1f8i";
-       revision = "3";
-       editedCabalFile = "0dpvraw31gpzzlsy7j7mv99jvmwhldycll1hnbw2iscb5zs2g409";
+       revision = "4";
+       editedCabalFile = "06mb33ll7m24dr6mvzi2r6v0bl6k0680y751563zhz0ybrjypckk";
        libraryHaskellDepends = [
          aeson ansi-wl-pprint base bytestring casing colour containers lens
          linear mtl parsec parsers stm template-haskell text
@@ -104737,8 +106716,8 @@ self: {
      }:
      mkDerivation {
        pname = "goldplate";
-       version = "0.1.0";
-       sha256 = "0ccy1xcch224b09ka75j11zw6c0lm1rygc3910s7zlq8illlj34s";
+       version = "0.1.1";
+       sha256 = "0qjqx3yxlyfdj6glych7vwrrh47nrp6xi0vncga2a94hb5sljzzl";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -104886,6 +106865,8 @@ self: {
        ];
        description = "Bindings to the Google Geocoding API (formerly Maps Geocoding API)";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "google-oauth2" = callPackage
@@ -105018,6 +106999,8 @@ self: {
        ];
        description = "Bindings to the Google Maps Static API (formerly Static Maps API)";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "google-translate" = callPackage
@@ -105375,17 +107358,18 @@ self: {
      }) {};
 
   "gotta-go-fast" = callPackage
-    ({ mkDerivation, base, brick, cmdargs, directory, random, text
-     , time, vty, word-wrap
+    ({ mkDerivation, base, brick, cmdargs, directory, file-embed
+     , random, split, text, time, vty, word-wrap
      }:
      mkDerivation {
        pname = "gotta-go-fast";
-       version = "0.1.4.0";
-       sha256 = "15gip4nggw3wxa3k546sqqbiqzhkw5acxwmwy3iv911d61s89gvb";
+       version = "0.3.0.0";
+       sha256 = "067jmp0p21bw7mpsrlpawphjmlq9f85lsfiihp37pvs8sxb36lg9";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base brick cmdargs directory random text time vty word-wrap
+         base brick cmdargs directory file-embed random split text time vty
+         word-wrap
        ];
        description = "A command line utility for practicing typing";
        license = stdenv.lib.licenses.bsd3;
@@ -106250,24 +108234,24 @@ self: {
      }) {};
 
   "graphql" = callPackage
-    ({ mkDerivation, aeson, base, containers, hspec, hspec-expectations
-     , hspec-megaparsec, megaparsec, parser-combinators, QuickCheck
-     , raw-strings-qq, scientific, text, transformers
-     , unordered-containers, vector
+    ({ mkDerivation, aeson, base, conduit, containers, exceptions
+     , hspec, hspec-expectations, hspec-megaparsec, megaparsec
+     , parser-combinators, QuickCheck, raw-strings-qq, scientific, text
+     , transformers, unordered-containers
      }:
      mkDerivation {
        pname = "graphql";
-       version = "0.8.0.0";
-       sha256 = "08xi2q8jzk78a62q5qbi8i2d2kq0qcn0dzdx1haq2c4qjsf09798";
-       enableSeparateDataOutput = true;
+       version = "0.10.0.0";
+       sha256 = "0j0l8jmfnn3aw9vmk5z571ly9vk711hsz7cdklc243539vfnsywn";
        libraryHaskellDepends = [
-         aeson base containers megaparsec parser-combinators scientific text
-         transformers unordered-containers vector
+         aeson base conduit containers exceptions hspec-expectations
+         megaparsec parser-combinators scientific text transformers
+         unordered-containers
        ];
        testHaskellDepends = [
-         aeson base containers hspec hspec-expectations hspec-megaparsec
-         megaparsec parser-combinators QuickCheck raw-strings-qq scientific
-         text transformers unordered-containers vector
+         aeson base conduit containers exceptions hspec hspec-expectations
+         hspec-megaparsec megaparsec parser-combinators QuickCheck
+         raw-strings-qq scientific text transformers unordered-containers
        ];
        description = "Haskell GraphQL implementation";
        license = stdenv.lib.licenses.bsd3;
@@ -106304,6 +108288,36 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "graphql-client" = callPackage
+    ({ mkDerivation, aeson, aeson-schemas, base, bytestring, file-embed
+     , http-client, http-client-tls, http-types, mtl
+     , optparse-applicative, path, path-io, tasty, tasty-hunit
+     , template-haskell, text, transformers, typed-process
+     , unliftio-core
+     }:
+     mkDerivation {
+       pname = "graphql-client";
+       version = "1.0.0";
+       sha256 = "1qzrlk3vkvavi14zz7dkndz8qh449s6rpbrd5phqclgbrah1hj3a";
+       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 = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "graphql-w-persistent" = callPackage
     ({ mkDerivation, base, containers, json, text }:
      mkDerivation {
@@ -106374,8 +108388,8 @@ self: {
      }:
      mkDerivation {
        pname = "graphviz";
-       version = "2999.20.0.4";
-       sha256 = "047f6sa5rp0f2npgvdrj5irylh0raf01a6nrjj2vsf1mzb1q83xr";
+       version = "2999.20.1.0";
+       sha256 = "0l0zxgb938hh09qirggbaskq79mgj3s081cnr42y5vm1rp1jir2s";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -106647,27 +108661,6 @@ self: {
      }:
      mkDerivation {
        pname = "greskell";
-       version = "1.1.0.2";
-       sha256 = "0q8grqi9pslpwnh2a8frcvfw0gq71asm6m9748v97h4xqry116jg";
-       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 = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "greskell_1_1_0_3" = 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.1.0.3";
        sha256 = "1q3m4m994vmfk80szphfd74vzfq6zp678bdla6v4siwqjskagyn3";
        libraryHaskellDepends = [
@@ -106680,7 +108673,6 @@ self: {
        ];
        description = "Haskell binding for Gremlin graph query language";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "greskell-core" = callPackage
@@ -106690,27 +108682,6 @@ self: {
      }:
      mkDerivation {
        pname = "greskell-core";
-       version = "0.1.3.4";
-       sha256 = "03w4glzlavj57mak1nn7qxafr937z9afwdaaaj5i8spjpr2vz4hr";
-       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 = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "greskell-core_0_1_3_5" = 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 = [
@@ -106723,7 +108694,6 @@ self: {
        ];
        description = "Haskell binding for Gremlin graph query language - core data types and tools";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "greskell-websocket" = callPackage
@@ -106733,28 +108703,6 @@ self: {
      }:
      mkDerivation {
        pname = "greskell-websocket";
-       version = "0.1.2.3";
-       sha256 = "0jxckcjpdy1j5bbjdw37rc9sbnyznc7awifmjrcliy2yk1dwdj6w";
-       libraryHaskellDepends = [
-         aeson async base base64-bytestring bytestring greskell-core
-         hashtables safe-exceptions stm text unordered-containers uuid
-         vector websockets
-       ];
-       testHaskellDepends = [
-         aeson base bytestring greskell-core hspec unordered-containers uuid
-         vector
-       ];
-       description = "Haskell client for Gremlin Server using WebSocket serializer";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "greskell-websocket_0_1_2_4" = callPackage
-    ({ mkDerivation, aeson, async, base, base64-bytestring, bytestring
-     , greskell-core, hashtables, hspec, safe-exceptions, stm, text
-     , unordered-containers, uuid, vector, websockets
-     }:
-     mkDerivation {
-       pname = "greskell-websocket";
        version = "0.1.2.4";
        sha256 = "1w5867pdb07jlms3gddx8n3ds94qp4yq1yxcy880vcww2gyb4jda";
        libraryHaskellDepends = [
@@ -106768,7 +108716,6 @@ self: {
        ];
        description = "Haskell client for Gremlin Server using WebSocket serializer";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "grid" = callPackage
@@ -107235,6 +109182,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "groups_0_5" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "groups";
+       version = "0.5";
+       sha256 = "1ivz03k5bk6d72bibn8jyq4wkivkyakbmvbrp270b33282a4lkpc";
+       libraryHaskellDepends = [ base ];
+       description = "Groups";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "groups-generic" = callPackage
     ({ mkDerivation, base, generic-data, groups }:
      mkDerivation {
@@ -107561,7 +109520,7 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) gst-plugins-base; inherit (pkgs) gstreamer;};
+     }) {gst-plugins-base = null; gstreamer = null;};
 
   "gt-tools" = callPackage
     ({ mkDerivation, base, containers, extensible-exceptions, haskeline
@@ -107750,6 +109709,8 @@ self: {
        ];
        description = "A standalone StatusNotifierItem/AppIndicator tray";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) gtk3;};
 
   "gtk-strut" = callPackage
@@ -107761,6 +109722,8 @@ self: {
        libraryHaskellDepends = [ base gi-gdk gi-gtk text transformers ];
        description = "Libary for creating strut windows with gi-gtk";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "gtk-toggle-button-list" = callPackage
@@ -109517,8 +111480,8 @@ self: {
        pname = "hackage-security";
        version = "0.6.0.1";
        sha256 = "05rgz31cmp52137j4jk0074z8lfgk8mrf2x56bzw28asmxrv8qli";
-       revision = "1";
-       editedCabalFile = "0cq9apkfhvxgsmvqbi452aqpsdz1mpvhaw7paafh9kc3jhic5270";
+       revision = "3";
+       editedCabalFile = "03cc99ynscxhmw1mxm2xn2ywvfnl1zfb3rdbbcc7fvm92nznzpyi";
        libraryHaskellDepends = [
          base base16-bytestring base64-bytestring bytestring Cabal
          containers cryptohash-sha256 directory ed25519 filepath ghc-prim
@@ -109746,34 +111709,35 @@ self: {
 
   "hackport" = callPackage
     ({ mkDerivation, array, async, base, base16-bytestring
-     , base64-bytestring, binary, bytestring, containers, cryptohash
-     , deepseq, directory, ed25519, extensible-exceptions, filepath
-     , ghc-prim, hashable, HTTP, HUnit, MissingH, mtl, network
-     , network-uri, old-locale, old-time, parsec, pretty, process
-     , random, regex-compat, split, stm, tar, template-haskell, text
-     , time, transformers, unix, xml, zlib
+     , base64-bytestring, binary, bytestring, containers
+     , cryptohash-sha256, deepseq, directory, doctest, ed25519
+     , extensible-exceptions, filepath, ghc-prim, hashable, hspec
+     , hspec-discover, HTTP, lukko, mtl, network, network-uri
+     , old-locale, parsec, pretty, process, QuickCheck, random, split
+     , stm, tar, template-haskell, text, time, transformers, unix, xml
+     , zlib
      }:
      mkDerivation {
        pname = "hackport";
-       version = "0.6.4";
-       sha256 = "185b2mincqzla8j675lv4ydi8fvsj3ikyq4g8jivygbkcpawi5f5";
+       version = "0.6.6";
+       sha256 = "0cdwcrk8cqfbfi2kg074zmiq3j5fv3790inwc4hxwhrhv34hz437";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          array async base base16-bytestring base64-bytestring binary
-         bytestring containers cryptohash deepseq directory ed25519
-         extensible-exceptions filepath ghc-prim hashable HTTP MissingH mtl
-         network network-uri old-locale old-time parsec pretty process
-         random regex-compat split stm tar template-haskell text time
-         transformers unix xml zlib
+         bytestring containers cryptohash-sha256 deepseq directory ed25519
+         extensible-exceptions filepath ghc-prim hashable HTTP lukko mtl
+         network network-uri old-locale parsec pretty process random split
+         stm tar template-haskell text time transformers unix xml zlib
        ];
        testHaskellDepends = [
-         array base binary bytestring containers deepseq directory
-         extensible-exceptions filepath HUnit parsec pretty process split
-         text time transformers unix xml
+         array base binary bytestring containers deepseq directory doctest
+         extensible-exceptions filepath hspec mtl parsec pretty process
+         QuickCheck split template-haskell text time transformers unix xml
        ];
+       testToolDepends = [ hspec-discover ];
        description = "Hackage and Portage integration tool";
-       license = "GPL";
+       license = stdenv.lib.licenses.gpl3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -110569,8 +112533,8 @@ self: {
      }:
      mkDerivation {
        pname = "hakyll";
-       version = "4.13.3.0";
-       sha256 = "1wadcvxpr7w1gm1pmi9j8bm6x0i44ik806j73mzfb1d4wb1ck10p";
+       version = "4.13.4.0";
+       sha256 = "0gcs79jmpayndfsmmb40avrgyl4f0f1brprm2l0mvybfah84h2m3";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -110591,6 +112555,8 @@ self: {
        testToolDepends = [ utillinux ];
        description = "A static website compiler library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) utillinux;};
 
   "hakyll-R" = callPackage
@@ -110704,6 +112670,8 @@ self: {
        libraryHaskellDepends = [ base hakyll hyphenation split tagsoup ];
        description = "automatic hyphenation for Hakyll";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-contrib-links" = callPackage
@@ -110768,6 +112736,8 @@ self: {
        executableHaskellDepends = [ base dhall hakyll ];
        description = "Dhall compiler for Hakyll";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-dir-list" = callPackage
@@ -110812,6 +112782,8 @@ self: {
        executableHaskellDepends = [ base hakyll ];
        testHaskellDepends = [ base ];
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-filestore" = callPackage
@@ -110849,6 +112821,8 @@ self: {
        ];
        description = "Hakyll utilities to work with images";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-ogmarkup" = callPackage
@@ -110877,6 +112851,8 @@ self: {
        ];
        description = "Hakyll SASS compiler over hsass";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-series" = callPackage
@@ -110907,6 +112883,8 @@ self: {
        ];
        description = "Hakyll Hamlet compiler";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-shortcode" = callPackage
@@ -110969,18 +112947,17 @@ self: {
      }) {};
 
   "hal" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, envy
-     , exceptions, http-conduit, http-types, mtl, text, time
+    ({ mkDerivation, aeson, base, bytestring, conduit, conduit-extra
+     , containers, envy, exceptions, http-client, http-conduit
+     , http-types, mtl, text, time
      }:
      mkDerivation {
        pname = "hal";
-       version = "0.4.1";
-       sha256 = "09wmpscvwfdy57haszwnjxwqxqqf5s458h0b1pkk90pskfg7lf1d";
-       revision = "1";
-       editedCabalFile = "0n5b57l3q6wpzd7kbsn11802y1mcpsrs01sszsd5l4l57hkc71gd";
+       version = "0.4.4";
+       sha256 = "0nqxlvbk8lb9c6hh15gn8nd9h2p0rcrllkqjli0ixqil3qpynl76";
        libraryHaskellDepends = [
-         aeson base bytestring containers envy exceptions http-conduit
-         http-types mtl text time
+         aeson base bytestring conduit conduit-extra containers envy
+         exceptions http-client http-conduit http-types mtl text time
        ];
        description = "A runtime environment for Haskell applications running on AWS Lambda";
        license = stdenv.lib.licenses.bsd3;
@@ -111108,9 +113085,9 @@ self: {
      }:
      mkDerivation {
        pname = "hall-symbols";
-       version = "0.1.0.2";
-       sha256 = "05jp1l5v9vz4ai9pbz6nwcm3mzxx0k2nsj85ryi2nl9pkhfwa0l4";
-       libraryHaskellDepends = [ base doctest matrix parsec ];
+       version = "0.1.0.6";
+       sha256 = "1gf0whwmwlrnir01zi5v6bsp0864nh0qjvy59hql27hv12yypdwa";
+       libraryHaskellDepends = [ base matrix parsec ];
        testHaskellDepends = [
          base doctest hspec matrix matrix-as-xyz parsec QuickCheck
        ];
@@ -111695,8 +113672,8 @@ self: {
      }:
      mkDerivation {
        pname = "hapistrano";
-       version = "0.4.1.0";
-       sha256 = "1fkjg5q70qpp8y9xkzksfrdfn09psz5pydqw5bd8z4nfwhyivql8";
+       version = "0.4.1.2";
+       sha256 = "0ylahq6hnyzyhh4fb2d21fwisq8a8x5rij6zrzvhcapnir2vkrn0";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -112500,6 +114477,22 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "happy_1_20_0" = callPackage
+    ({ mkDerivation, array, base, containers, mtl, process }:
+     mkDerivation {
+       pname = "happy";
+       version = "1.20.0";
+       sha256 = "1346r2x5ravs5fqma65bzjragqbb2g6v41wz9maknwm2jf7kl79v";
+       isLibrary = false;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       executableHaskellDepends = [ array base containers mtl ];
+       testHaskellDepends = [ base process ];
+       description = "Happy is a parser generator for Haskell";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "happy-dot" = callPackage
     ({ mkDerivation, array, base, clock, happy, HUnit, language-dot
      , pretty, transformers, xml
@@ -112539,8 +114532,8 @@ self: {
      }:
      mkDerivation {
        pname = "happy-meta";
-       version = "0.2.0.10";
-       sha256 = "1w6shcydpca5g9dgnki0w2xqr9mf17xa18s8hxxm3z3dd0sp1db9";
+       version = "0.2.0.11";
+       sha256 = "1vgv5fx1fya7wfh3zwdgy0hm0lyzp171gnpp6ymfd6kqmqkl3293";
        libraryHaskellDepends = [
          array base containers fail haskell-src-meta mtl template-haskell
        ];
@@ -112720,8 +114713,8 @@ self: {
      }:
      mkDerivation {
        pname = "harg";
-       version = "0.4.2.0";
-       sha256 = "14a5d73klg7da1pg30as9xnky95jxh1kl0qrzihvgd5m2kybsrb0";
+       version = "0.4.2.1";
+       sha256 = "0fbbf9zxfbyc6mnsybrd81sd87ps6qwks5zv5kmjygc6w8ngh6vh";
        libraryHaskellDepends = [
          aeson barbies base bytestring directory higgledy
          optparse-applicative split text yaml
@@ -112988,6 +114981,42 @@ self: {
        broken = true;
      }) {};
 
+  "hascard" = callPackage
+    ({ mkDerivation, base, brick, containers, directory, filepath
+     , megaparsec, microlens, microlens-platform, mwc-random
+     , optparse-applicative, ordered-containers, process, random-fu
+     , strict, text, vector, vty, word-wrap
+     }:
+     mkDerivation {
+       pname = "hascard";
+       version = "0.3.0.1";
+       sha256 = "17f08qqwdzala1ldyarp841gpjl9iayi1440r77n8bkzcq3hpl54";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base brick containers directory filepath megaparsec microlens
+         microlens-platform mwc-random optparse-applicative
+         ordered-containers process random-fu strict text vector vty
+         word-wrap
+       ];
+       executableHaskellDepends = [
+         base brick containers directory filepath megaparsec microlens
+         microlens-platform mwc-random optparse-applicative
+         ordered-containers process random-fu strict text vector vty
+         word-wrap
+       ];
+       testHaskellDepends = [
+         base brick containers directory filepath megaparsec microlens
+         microlens-platform mwc-random optparse-applicative
+         ordered-containers process random-fu strict text vector vty
+         word-wrap
+       ];
+       description = "A TUI for reviewing notes using 'flashcards' written with markdown-like syntax";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hascas" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers
      , data-binary-ieee754, hspec, mtl, network, safe-exceptions, stm
@@ -113168,6 +115197,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hashable-accelerate" = callPackage
+    ({ mkDerivation, accelerate, base, template-haskell }:
+     mkDerivation {
+       pname = "hashable-accelerate";
+       version = "0.1.0.0";
+       sha256 = "04cfwd1vyz4xm87ah3x1avs2yzqi6ygcd3sl70v50g492dfl6738";
+       libraryHaskellDepends = [ accelerate base template-haskell ];
+       description = "A class for types which can be converted into a hash value";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hashable-extras" = callPackage
     ({ mkDerivation, base, bifunctors, bytestring, directory, doctest
      , filepath, hashable, transformers, transformers-compat
@@ -113338,6 +115379,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hashmap-throw" = callPackage
+    ({ mkDerivation, base, exceptions, hashable, hashmap }:
+     mkDerivation {
+       pname = "hashmap-throw";
+       version = "0.1.0.0";
+       sha256 = "0dibdmpb6nyhn37xfdw8wgam4a2w8b3hl04ivg08d1ybq4a4m1k5";
+       libraryHaskellDepends = [ base exceptions hashable hashmap ];
+       description = "Throw behaviour for hashmap lookup";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "hashrename" = callPackage
     ({ mkDerivation, base, bytestring, cryptohash, directory, filepath
      }:
@@ -113645,15 +115697,15 @@ self: {
        broken = true;
      }) {};
 
-  "haskeline_0_8_0_0" = callPackage
+  "haskeline_0_8_1_0" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory
      , exceptions, filepath, HUnit, process, stm, terminfo, text
      , transformers, unix
      }:
      mkDerivation {
        pname = "haskeline";
-       version = "0.8.0.0";
-       sha256 = "0gqsa5s0drim9m42hv4wrq61mnvcdylxysfxfw3acncwilfrn9pb";
+       version = "0.8.1.0";
+       sha256 = "0r6skxr45k0qq5vlh9dyl5g5ham994b8z0k3z3v56bi3npvyi6xw";
        configureFlags = [ "-fterminfo" ];
        isLibrary = true;
        isExecutable = true;
@@ -113893,8 +115945,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-ci";
-       version = "0.10.2";
-       sha256 = "07yqgwacz1qll2nvwdq1w4n35yca1k569i947s310pb22asbd5w2";
+       version = "0.10.3";
+       sha256 = "18qynghm1aj0qr18v6m3md75p2l3kyhki03798jwhi4kc5qdk2vv";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -114129,6 +116181,8 @@ self: {
        libraryHaskellDepends = [ base bytestring lens tagsoup wreq ];
        description = "Simple library for retrieving current user agent strings";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "haskell-formatter" = callPackage
@@ -114248,6 +116302,29 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) glib; inherit (pkgs) gobject-introspection;};
 
+  "haskell-gi_0_24_4" = 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.24.4";
+       sha256 = "0q2r8y9ca3w389sx613jz95hg9cssj6g4i2xyi8423nyqvyzms48";
+       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 = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) glib; inherit (pkgs) gobject-introspection;};
+
   "haskell-gi-base" = callPackage
     ({ mkDerivation, base, bytestring, containers, glib, text }:
      mkDerivation {
@@ -114260,6 +116337,19 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) glib;};
 
+  "haskell-gi-base_0_24_2" = callPackage
+    ({ mkDerivation, base, bytestring, containers, glib, text }:
+     mkDerivation {
+       pname = "haskell-gi-base";
+       version = "0.24.2";
+       sha256 = "0qjbbfxlx4gqnyfnjpr4ray7fih8alsa2bxb5imkckhrzfx4xmq0";
+       libraryHaskellDepends = [ base bytestring containers text ];
+       libraryPkgconfigDepends = [ glib ];
+       description = "Foundation for libraries generated by haskell-gi";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) glib;};
+
   "haskell-gi-overloading_0_0" = callPackage
     ({ mkDerivation }:
      mkDerivation {
@@ -114314,6 +116404,8 @@ self: {
        ];
        description = "Simple library for accessing Google Trends";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "haskell-holes-th" = callPackage
@@ -114787,17 +116879,17 @@ self: {
 
   "haskell-postgis" = callPackage
     ({ mkDerivation, aeson, base, binary, bytestring, bytestring-lexing
-     , cpu, data-binary-ieee754, hspec, mtl, placeholders, text
+     , cpu, data-binary-ieee754, either, hspec, mtl, placeholders, text
      , unordered-containers, vector
      }:
      mkDerivation {
        pname = "haskell-postgis";
-       version = "0.1.0.2";
-       sha256 = "0p3zdrzfsz3qj3rcx3yihg7vffa261ig5lywrfls5qvqihw62m41";
+       version = "0.2.0";
+       sha256 = "0y3di09hyxr5jhwrdqk2548h09x71pd7f1dhv3g6118pzdfps6nk";
        libraryHaskellDepends = [
          aeson base binary bytestring bytestring-lexing cpu
-         data-binary-ieee754 mtl placeholders text unordered-containers
-         vector
+         data-binary-ieee754 either mtl placeholders text
+         unordered-containers vector
        ];
        testHaskellDepends = [
          aeson base binary bytestring bytestring-lexing cpu
@@ -114941,6 +117033,8 @@ self: {
        pname = "haskell-src";
        version = "1.0.3.1";
        sha256 = "0cjigvshk4b8wqdk0v0hz9ag1kyjjsmqsy4a1m3n28ac008cg746";
+       revision = "1";
+       editedCabalFile = "1li6czcs54wnij6qnvpx6f66iiw023pggb3zl3jvp74qqflcf5sg";
        libraryHaskellDepends = [ array base pretty syb ];
        libraryToolDepends = [ happy ];
        description = "Support for manipulating Haskell source code";
@@ -115080,6 +117174,28 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "haskell-src-match" = callPackage
+    ({ mkDerivation, base, containers, filepath, haskell-src-exts
+     , hspec, interpolatedstring-perl6, pretty-simple, split
+     , template-haskell, text, transformers
+     }:
+     mkDerivation {
+       pname = "haskell-src-match";
+       version = "0.0.0.1";
+       sha256 = "0lhdnmzmwxsiw0if600apdvmkbqz44zwr7sypfclixl9c6h31wg0";
+       libraryHaskellDepends = [
+         base containers haskell-src-exts interpolatedstring-perl6
+         pretty-simple split template-haskell transformers
+       ];
+       testHaskellDepends = [
+         base filepath hspec interpolatedstring-perl6 template-haskell text
+       ];
+       description = "Testing code generators piece by piece";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "haskell-src-meta" = callPackage
     ({ mkDerivation, base, containers, haskell-src-exts, HUnit, pretty
      , syb, tasty, tasty-hunit, template-haskell, th-orphans
@@ -115157,8 +117273,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-to-elm";
-       version = "0.3.0.0";
-       sha256 = "02gspfwiif3a38fsfv0pxia7lcqyqppf9pnrbirnqdcry721mcvy";
+       version = "0.3.1.0";
+       sha256 = "0gplmz0s874zi8y8m06mlr3lipyffw0p6lfz6snl0sgdmynjg786";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -116476,18 +118592,18 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
-  "haskoin-core_0_14_1" = callPackage
+  "haskoin-core_0_15_0" = callPackage
     ({ mkDerivation, aeson, array, base, base16-bytestring, bytestring
      , cereal, conduit, containers, cryptonite, deepseq, entropy
-     , hashable, hspec, hspec-discover, HUnit, memory, mtl, murmur3
-     , network, QuickCheck, safe, scientific, secp256k1-haskell, split
-     , string-conversions, text, time, transformers
-     , unordered-containers, vector
+     , 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.14.1";
-       sha256 = "0ii32r1c72jvsgrcx0hhqckvbmsq27kzvs9akdlzrhm65jir6fc6";
+       version = "0.15.0";
+       sha256 = "1mvhp7khbjf3wxvgwgdxgbl8ylb4vhgiirq50dwi62p65w75xw1v";
        libraryHaskellDepends = [
          aeson array base base16-bytestring bytestring cereal conduit
          containers cryptonite deepseq entropy hashable hspec memory mtl
@@ -116497,9 +118613,9 @@ self: {
        ];
        testHaskellDepends = [
          aeson array base base16-bytestring bytestring cereal conduit
-         containers cryptonite deepseq entropy hashable hspec HUnit memory
-         mtl murmur3 network QuickCheck safe scientific secp256k1-haskell
-         split string-conversions text time transformers
+         containers cryptonite deepseq entropy hashable hspec HUnit lens
+         lens-aeson memory mtl murmur3 network QuickCheck safe scientific
+         secp256k1-haskell split string-conversions text time transformers
          unordered-containers vector
        ];
        testToolDepends = [ hspec-discover ];
@@ -116564,29 +118680,30 @@ self: {
        broken = true;
      }) {};
 
-  "haskoin-node_0_14_1" = callPackage
+  "haskoin-node_0_16_0" = callPackage
     ({ mkDerivation, base, base64, bytestring, cereal, conduit
      , conduit-extra, containers, data-default, hashable, haskoin-core
      , hspec, hspec-discover, HUnit, monad-logger, mtl, network, nqe
-     , random, resourcet, rocksdb-haskell, rocksdb-query, safe
+     , random, resourcet, rocksdb-haskell-jprupp, rocksdb-query, safe
      , string-conversions, text, time, transformers, unliftio
      , unordered-containers
      }:
      mkDerivation {
        pname = "haskoin-node";
-       version = "0.14.1";
-       sha256 = "110yhfxzwsca7c29zmg4dd1wkb2ylpkmcrzrg3fq1a03q6jsc22s";
+       version = "0.16.0";
+       sha256 = "0az8lv5xkbhfff9hq3r0kndz2hp3q6f1h6za85qj8v5755za61c8";
        libraryHaskellDepends = [
          base bytestring cereal conduit conduit-extra containers
          data-default hashable haskoin-core monad-logger mtl network nqe
-         random resourcet rocksdb-haskell rocksdb-query string-conversions
-         text time transformers unliftio unordered-containers
+         random resourcet rocksdb-haskell-jprupp rocksdb-query
+         string-conversions text time transformers unliftio
+         unordered-containers
        ];
        testHaskellDepends = [
          base base64 bytestring cereal conduit conduit-extra containers
          data-default hashable haskoin-core hspec HUnit monad-logger mtl
-         network nqe random resourcet rocksdb-haskell rocksdb-query safe
-         string-conversions text time transformers unliftio
+         network nqe random resourcet rocksdb-haskell-jprupp rocksdb-query
+         safe string-conversions text time transformers unliftio
          unordered-containers
        ];
        testToolDepends = [ hspec-discover ];
@@ -116647,22 +118764,24 @@ self: {
      , cereal, conduit, containers, data-default, deepseq, filepath
      , hashable, haskoin-core, haskoin-node, haskoin-store-data, hedis
      , hspec, hspec-discover, http-types, monad-logger, mtl, network
-     , nqe, optparse-applicative, QuickCheck, random, rocksdb-haskell
-     , rocksdb-query, scotty, string-conversions, text, time
-     , transformers, unliftio, unordered-containers, wai, warp
+     , nqe, optparse-applicative, QuickCheck, random
+     , rocksdb-haskell-jprupp, rocksdb-query, scotty, string-conversions
+     , text, time, transformers, unliftio, unordered-containers, wai
+     , warp
      }:
      mkDerivation {
        pname = "haskoin-store";
-       version = "0.34.1";
-       sha256 = "1i5xpygarb6vbx6l2k34wdj1jy5d9g6wp4ikp2vjkygnr18b7nm9";
+       version = "0.37.5";
+       sha256 = "0ac1znif59fzcxcl3nmvrv6v49rzlcgsv138zgjnk7zxarp8alyg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-pretty base bytestring cereal conduit containers
          data-default deepseq hashable haskoin-core haskoin-node
          haskoin-store-data hedis http-types monad-logger mtl network nqe
-         random rocksdb-haskell rocksdb-query scotty string-conversions text
-         time transformers unliftio unordered-containers wai warp
+         random rocksdb-haskell-jprupp rocksdb-query scotty
+         string-conversions text time transformers unliftio
+         unordered-containers wai warp
        ];
        executableHaskellDepends = [
          aeson aeson-pretty base bytestring cereal conduit containers
@@ -116675,7 +118794,7 @@ self: {
          aeson aeson-pretty base base64 bytestring cereal conduit containers
          data-default deepseq hashable haskoin-core haskoin-node
          haskoin-store-data hedis hspec http-types monad-logger mtl network
-         nqe QuickCheck random rocksdb-haskell rocksdb-query scotty
+         nqe QuickCheck random rocksdb-haskell-jprupp rocksdb-query scotty
          string-conversions text time transformers unliftio
          unordered-containers wai warp
        ];
@@ -116694,8 +118813,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-store-data";
-       version = "0.34.1";
-       sha256 = "0q169kwli4ws3lkiyfb2ln9p9r8d6kv914hh06h8dx3q2ggijnkw";
+       version = "0.37.5";
+       sha256 = "1p8hsnwr0h0sbnwg1kwbal36q4bh3s0daz1a5n2c8xal5xdkbdra";
        libraryHaskellDepends = [
          aeson base bytestring cereal containers data-default deepseq
          hashable haskoin-core http-client http-types lens mtl network
@@ -116957,6 +119076,8 @@ self: {
        ];
        description = "Simple unsupervised segmentation model";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hasktags" = callPackage
@@ -117575,7 +119696,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "hasql_1_4_4" = callPackage
+  "hasql_1_4_4_2" = callPackage
     ({ mkDerivation, attoparsec, base, base-prelude, bug, bytestring
      , bytestring-strict-builder, contravariant, contravariant-extras
      , criterion, dlist, hashable, hashtables, loch-th, mtl
@@ -117586,8 +119707,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql";
-       version = "1.4.4";
-       sha256 = "09rsbd6f28nzpmibcx1mqsycz7pl7wga30d6728d6k55670mlhlb";
+       version = "1.4.4.2";
+       sha256 = "09j532mcgs9q1gwr7czvcd85byf3ds3gs4nr5cvlajv4ciaym0di";
        libraryHaskellDepends = [
          attoparsec base base-prelude bytestring bytestring-strict-builder
          contravariant contravariant-extras dlist hashable hashtables
@@ -117696,8 +119817,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-dynamic-statements";
-       version = "0.2.0.1";
-       sha256 = "087zkb89cr0d3brjrpq414jpwswvzvxkbzvw63ahcvmv7lfgaknh";
+       version = "0.2.0.2";
+       sha256 = "017ngp4h1vhlv7lg3hj7l1qr77hf5pqj404dgdq2lqv1qxr7adjg";
        libraryHaskellDepends = [
          base bytestring containers hasql hasql-implicits ptr
        ];
@@ -117733,15 +119854,15 @@ self: {
 
   "hasql-implicits" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, hasql
-     , network-ip, ptr, scientific, text, time, uuid, vector
+     , network-ip, scientific, text, time, uuid, vector
      }:
      mkDerivation {
        pname = "hasql-implicits";
-       version = "0.1.0.1";
-       sha256 = "1b9j2za960h3sp48mxqk8lxhjsbhs47lnsvyah8p9wahf69qki5f";
+       version = "0.1.0.2";
+       sha256 = "0kg74bqm9mxf3b1gfbkj78zh859pmivvawi4aqk4h34xvmjx7217";
        libraryHaskellDepends = [
-         aeson base bytestring containers hasql network-ip ptr scientific
-         text time uuid vector
+         aeson base bytestring containers hasql network-ip scientific text
+         time uuid vector
        ];
        description = "Implicit definitions for Hasql, such as default codecs for standard types";
        license = stdenv.lib.licenses.mit;
@@ -117767,8 +119888,6 @@ self: {
        ];
        description = "PostgreSQL Schema Migrations";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "hasql-notifications" = callPackage
@@ -117799,8 +119918,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-optparse-applicative";
-       version = "0.3.0.5";
-       sha256 = "0q5ggbx3xlzq0lv6i6wac9zsf0x4k91cf1n5rg6q96wg90f0dxxq";
+       version = "0.3.0.6";
+       sha256 = "16k6k2qp8avnlsidyjk458lags2633789wvvwdy4xgmiqs1riqr9";
        libraryHaskellDepends = [
          base-prelude hasql hasql-pool optparse-applicative
        ];
@@ -117884,8 +120003,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-queue";
-       version = "1.0.1.1";
-       sha256 = "0ng1abkhlf8kd8916vpmm0z5m1czvsfnxq4lqsny15qh8bq1pkjl";
+       version = "1.2.0.2";
+       sha256 = "0d8ylf92ydhg12v2rjxxnijzjkkpmws0r1nnxm63w5arwz947n5m";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -117967,6 +120086,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hasqly-mysql" = callPackage
+    ({ mkDerivation, base, binary, bytestring, dlist, mtl
+     , mysql-haskell, scientific, text, time
+     }:
+     mkDerivation {
+       pname = "hasqly-mysql";
+       version = "0.0.1";
+       sha256 = "1la1lnwcv20jig72hgpgzy8a2ils95y0clhkf5ajvj1whh099g7p";
+       libraryHaskellDepends = [
+         base binary bytestring dlist mtl mysql-haskell scientific text time
+       ];
+       description = "composable SQL generation";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hastache" = callPackage
     ({ mkDerivation, base, blaze-builder, bytestring, containers
      , directory, filepath, HUnit, ieee754, mtl, process, syb, text
@@ -118540,8 +120676,8 @@ self: {
      }:
      mkDerivation {
        pname = "haxr";
-       version = "3000.11.4";
-       sha256 = "1pyf0wjifsvsnx7zzhbn8ps0n578r0p89p2ib0nx1rsi2f1x21i5";
+       version = "3000.11.4.1";
+       sha256 = "12f3acc253x88pk20b60z1qzyhbngvg7zzb9j6azbii0hx8yxxhy";
        libraryHaskellDepends = [
          array base base-compat base64-bytestring blaze-builder bytestring
          HaXml HsOpenSSL http-streams http-types io-streams mtl mtl-compat
@@ -119133,8 +121269,6 @@ self: {
        testHaskellDepends = [ base data-default HUnit ieee754 mtl ];
        description = "Easily convert between latitude/longitude, UTM and OSGB";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "hcron" = callPackage
@@ -119685,8 +121819,8 @@ self: {
      }:
      mkDerivation {
        pname = "headed-megaparsec";
-       version = "0.1.0.4";
-       sha256 = "1nl66j4fqmjcxkrmhm7jnbqqpw48727wfbb9xn0cz4yy1brivjrb";
+       version = "0.2";
+       sha256 = "1s2alhwmkk5czilm1m2dp72xpbdjhn7yhghrs1aca2js71x5j7qj";
        libraryHaskellDepends = [
          base case-insensitive megaparsec parser-combinators selective
        ];
@@ -119739,6 +121873,33 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "headroom_0_3_1_0" = callPackage
+    ({ mkDerivation, aeson, base, data-default-class, doctest, either
+     , file-embed, hspec, microlens, microlens-th, mustache
+     , optparse-applicative, pcre-heavy, pcre-light, QuickCheck, rio
+     , template-haskell, time, yaml
+     }:
+     mkDerivation {
+       pname = "headroom";
+       version = "0.3.1.0";
+       sha256 = "0md8yzjq92xc9pq9h8a78irgyka23ck7nlhdbdyfnm2f490fx2yw";
+       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
+       ];
+       executableHaskellDepends = [ base optparse-applicative rio ];
+       testHaskellDepends = [
+         aeson base doctest hspec optparse-applicative pcre-light QuickCheck
+         rio time
+       ];
+       description = "License Header Manager";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "heap" = callPackage
     ({ mkDerivation, base, QuickCheck }:
      mkDerivation {
@@ -119762,6 +121923,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "heapsize" = callPackage
+    ({ mkDerivation, base, criterion, deepseq, ghc-heap, hashable
+     , primitive, unordered-containers
+     }:
+     mkDerivation {
+       pname = "heapsize";
+       version = "0.1";
+       sha256 = "0cmzmz6f572is70sp79fxriywl5d19rcb8c32x22c2yazyl6c6d9";
+       libraryHaskellDepends = [
+         base deepseq ghc-heap hashable primitive unordered-containers
+       ];
+       benchmarkHaskellDepends = [ base criterion deepseq primitive ];
+       description = "Determine the size of runtime data structures";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "heapsort" = callPackage
     ({ mkDerivation, array, base }:
      mkDerivation {
@@ -120042,22 +122219,21 @@ self: {
 
   "hedgehog" = callPackage
     ({ mkDerivation, ansi-terminal, async, base, bytestring
-     , concurrent-output, containers, directory, erf, exceptions, fail
-     , lifted-async, mmorph, monad-control, mtl, pretty-show, primitive
-     , random, resourcet, semigroups, stm, template-haskell, text, time
-     , transformers, transformers-base, wl-pprint-annotated
+     , concurrent-output, containers, deepseq, directory, erf
+     , exceptions, fail, lifted-async, mmorph, monad-control, mtl
+     , pretty-show, primitive, random, resourcet, semigroups, stm
+     , template-haskell, text, time, transformers, transformers-base
+     , wl-pprint-annotated
      }:
      mkDerivation {
        pname = "hedgehog";
-       version = "1.0.2";
-       sha256 = "1058d5fcv3hhvlx34a8xkg8r75p93l2yhacdbga8d4radiayy34f";
-       revision = "3";
-       editedCabalFile = "0y9glrf68jx8h8wsrrcdgxwmf0im1rh3g050mf0lk8iv0cdvdd2m";
+       version = "1.0.3";
+       sha256 = "10lv574491zldqzin433z0vqkq43f0v3shjf78j395y0g1jyky9m";
        libraryHaskellDepends = [
          ansi-terminal async base bytestring concurrent-output containers
-         directory erf exceptions fail lifted-async mmorph monad-control mtl
-         pretty-show primitive random resourcet semigroups stm
-         template-haskell text time transformers transformers-base
+         deepseq directory erf exceptions fail lifted-async mmorph
+         monad-control mtl pretty-show primitive random resourcet semigroups
+         stm template-haskell text time transformers transformers-base
          wl-pprint-annotated
        ];
        testHaskellDepends = [
@@ -120104,8 +122280,8 @@ self: {
      }:
      mkDerivation {
        pname = "hedgehog-classes";
-       version = "0.2.5";
-       sha256 = "0rr9d3xajdlfmx92klq1zyi55wrc5ivf2p1jb0a6vxpyk75gy8wg";
+       version = "0.2.5.1";
+       sha256 = "0gyq9dr25sz14yw5x8jlb73l2hzv92r1c6cfan7lygq7z0yaiw6b";
        libraryHaskellDepends = [
          aeson base binary comonad containers hedgehog pretty-show primitive
          semirings silently transformers vector wl-pprint-annotated
@@ -120134,25 +122310,12 @@ self: {
     ({ mkDerivation, base, containers, fakedata, hedgehog, random }:
      mkDerivation {
        pname = "hedgehog-fakedata";
-       version = "0.0.1.2";
-       sha256 = "1fzvpicpmm39wiyj3phsdigsq3fh8lax9yjq7a28dhy6qiclp3y0";
-       libraryHaskellDepends = [ base fakedata hedgehog random ];
-       testHaskellDepends = [ base containers fakedata hedgehog ];
-       description = "Use 'fakedata' with 'hedgehog'";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hedgehog-fakedata_0_0_1_3" = callPackage
-    ({ mkDerivation, base, containers, fakedata, hedgehog, random }:
-     mkDerivation {
-       pname = "hedgehog-fakedata";
        version = "0.0.1.3";
        sha256 = "0h0cf4y25453n52d4y1ximzdc9l04b17byd9kgjvc3c279866f1i";
        libraryHaskellDepends = [ base fakedata hedgehog random ];
        testHaskellDepends = [ base containers fakedata hedgehog ];
        description = "Use 'fakedata' with 'hedgehog'";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hedgehog-fn" = callPackage
@@ -120286,8 +122449,8 @@ self: {
      }:
      mkDerivation {
        pname = "hedis";
-       version = "0.12.13";
-       sha256 = "1axsv81r1q393m178x89km49pi7w7dci0l48cnjdskdz99jwvywq";
+       version = "0.12.14";
+       sha256 = "14qd248ccijakksbaj72nwz8dx8qg4bifla3p0vsm6v96xb2qjbw";
        libraryHaskellDepends = [
          async base bytestring bytestring-lexing deepseq errors exceptions
          HTTP mtl network network-uri resource-pool scanner stm text time
@@ -121015,8 +123178,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-agent";
-       version = "0.7.2";
-       sha256 = "0yzrn08xl1mgr8614vmwn4j7n2rw7bajabn589sdqp83s0fc7bgi";
+       version = "0.7.4";
+       sha256 = "0yj9njd168xpj4har99mbb9rr5dqsbnzqs1061s3czrzlp229z3l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -121067,8 +123230,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-api-agent";
-       version = "0.2.1.0";
-       sha256 = "1ir15sssrldsp7d70p9m541ihlas3mxfr48hl67s2fkd3w2s46ah";
+       version = "0.2.2.0";
+       sha256 = "1pp0ink132wwj2wzj7ficxzxhj09bl3fm62fmslrl3l579ycbp7d";
        libraryHaskellDepends = [
          aeson base base64-bytestring-type bytestring containers cookie
          exceptions hashable hercules-ci-api-core http-api-data http-media
@@ -121143,13 +123306,13 @@ self: {
      }:
      mkDerivation {
        pname = "heredocs";
-       version = "0.1.6";
-       sha256 = "12qsa6vcdc255dx7dc4nfmgy3aam7w6qy92x4811mxx4mxrsr81r";
+       version = "0.2.0.0";
+       sha256 = "1649vhzymizmmi3ggmqxyq4b0fhrpipj4ljy1w7hca2wyh4jm1yw";
        libraryHaskellDepends = [
          base bytestring doctest parsec template-haskell text
        ];
        testHaskellDepends = [ base bytestring doctest text ];
-       description = "heredocument";
+       description = "Heredocument on Haskell";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -121507,52 +123670,52 @@ self: {
 
   "hevm" = callPackage
     ({ mkDerivation, abstract-par, aeson, ansi-wl-pprint, async, base
-     , base16-bytestring, base64-bytestring, binary, brick, bytestring
-     , cereal, containers, cryptonite, data-dword, deepseq, directory
-     , fgl, filepath, ghci-pretty, haskeline, here, HUnit, lens
-     , lens-aeson, megaparsec, memory, monad-par, mtl, multiset
-     , operational, optparse-generic, process, QuickCheck
-     , quickcheck-text, readline, regex-tdfa, restless-git, rosezipper
-     , s-cargot, scientific, secp256k1, tasty, tasty-hunit
-     , tasty-quickcheck, temporary, text, text-format, time
-     , transformers, tree-view, unordered-containers, vector, vty, wreq
+     , base16-bytestring, binary, brick, bytestring, cborg, cereal
+     , containers, cryptonite, data-dword, deepseq, directory, ff, fgl
+     , filepath, free, haskeline, here, HUnit, lens, lens-aeson
+     , megaparsec, memory, monad-par, mtl, multiset, operational
+     , optparse-generic, process, QuickCheck, quickcheck-text
+     , regex-tdfa, restless-git, rosezipper, s-cargot, sbv, scientific
+     , secp256k1, semver-range, tasty, tasty-hunit, tasty-quickcheck
+     , temporary, text, text-format, time, transformers, tree-view
+     , unordered-containers, vector, vty, witherable, wreq
      }:
      mkDerivation {
        pname = "hevm";
-       version = "0.24";
-       sha256 = "0bzhswisrmlw8ajl6mr13vr3a7l0vywl394aihrc0xs6vwgyflh0";
+       version = "0.41.0";
+       sha256 = "13qf0bh47dppqbxv1g07411c1lfmfxl0pm2s3xkwdf7kr219l0hw";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         abstract-par aeson ansi-wl-pprint base base16-bytestring
-         base64-bytestring binary brick bytestring cereal containers
-         cryptonite data-dword deepseq directory fgl filepath ghci-pretty
-         haskeline lens lens-aeson megaparsec memory monad-par mtl multiset
-         operational optparse-generic process QuickCheck quickcheck-text
-         readline restless-git rosezipper s-cargot scientific temporary text
-         text-format time transformers tree-view unordered-containers vector
-         vty wreq
+         abstract-par aeson ansi-wl-pprint base base16-bytestring binary
+         brick bytestring cborg cereal containers cryptonite data-dword
+         deepseq directory fgl filepath free haskeline lens lens-aeson
+         megaparsec memory monad-par mtl multiset operational
+         optparse-generic process QuickCheck quickcheck-text regex-tdfa
+         restless-git rosezipper s-cargot sbv scientific semver-range
+         temporary text text-format time transformers tree-view
+         unordered-containers vector vty witherable wreq
        ];
-       librarySystemDepends = [ secp256k1 ];
+       librarySystemDepends = [ ff secp256k1 ];
        executableHaskellDepends = [
-         aeson ansi-wl-pprint async base base16-bytestring base64-bytestring
-         binary brick bytestring containers cryptonite data-dword deepseq
-         directory filepath ghci-pretty lens lens-aeson memory mtl
-         optparse-generic process QuickCheck quickcheck-text readline
-         regex-tdfa temporary text text-format unordered-containers vector
-         vty
+         aeson ansi-wl-pprint async base base16-bytestring binary brick
+         bytestring containers cryptonite data-dword deepseq directory
+         filepath free lens lens-aeson memory mtl operational
+         optparse-generic process QuickCheck quickcheck-text regex-tdfa sbv
+         temporary text text-format unordered-containers vector vty
        ];
        testHaskellDepends = [
-         base base16-bytestring binary bytestring ghci-pretty here HUnit
-         lens mtl QuickCheck tasty tasty-hunit tasty-quickcheck text vector
+         base base16-bytestring binary bytestring containers free here HUnit
+         lens mtl QuickCheck sbv tasty tasty-hunit tasty-quickcheck text
+         vector
        ];
        testSystemDepends = [ secp256k1 ];
        description = "Ethereum virtual machine evaluator";
        license = stdenv.lib.licenses.agpl3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) secp256k1;};
+     }) {ff = null; inherit (pkgs) secp256k1;};
 
   "hevolisa" = callPackage
     ({ mkDerivation, base, bytestring, cairo, filepath, haskell98 }:
@@ -121896,6 +124059,19 @@ self: {
        broken = true;
      }) {};
 
+  "hextra" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "hextra";
+       version = "1.1.0.1";
+       sha256 = "0iq6kj7mijxppjghpqx19s79sj6k1jqf21gfi8jqbj6bq7j2cdvj";
+       libraryHaskellDepends = [ base ];
+       description = "Generic and niche utility functions and more for Haskell";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hextream" = callPackage
     ({ mkDerivation, attoparsec, base, base-compat, Cabal
      , cabal-doctest, containers, data-default, doctest, filepath
@@ -122289,22 +124465,23 @@ self: {
   "hgeometry" = callPackage
     ({ mkDerivation, aeson, base, bifunctors, bytestring, containers
      , data-clist, deepseq, dlist, doctest, doctest-discover, fingertree
-     , fixed-vector, hgeometry-combinatorial, hspec, lens, linear
-     , MonadRandom, mtl, primitive, QuickCheck, quickcheck-instances
-     , reflection, semigroupoids, semigroups, template-haskell, text
-     , vector, vector-builder, vinyl, yaml
+     , 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
      }:
      mkDerivation {
        pname = "hgeometry";
-       version = "0.10.0.0";
-       sha256 = "01kf7cmjdr2s172xj25i9vyjpfd0wayh0bjgccxqqy886kxrkhfw";
+       version = "0.11.0.0";
+       sha256 = "1vbj26j06byz9x0c03q5k7fijl31hsi7x9f5wfr2w9g96d7zl3ls";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bifunctors bytestring containers data-clist deepseq
-         dlist fingertree fixed-vector hgeometry-combinatorial hspec lens
-         linear MonadRandom mtl primitive QuickCheck quickcheck-instances
-         reflection semigroupoids semigroups template-haskell text vector
-         vector-builder vinyl yaml
+         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
        ];
        testHaskellDepends = [ base doctest doctest-discover QuickCheck ];
        description = "Geometric Algorithms, Data structures, and Data types";
@@ -122314,22 +124491,23 @@ self: {
   "hgeometry-combinatorial" = callPackage
     ({ mkDerivation, aeson, approximate-equality, base, bifunctors
      , bytestring, containers, contravariant, data-clist, deepseq
-     , directory, dlist, doctest, filepath, fingertree, hspec
-     , hspec-discover, lens, linear, MonadRandom, mtl, QuickCheck
-     , quickcheck-instances, random, reflection, semigroupoids
-     , semigroups, singletons, template-haskell, text, vector
-     , vector-builder, vinyl, yaml
+     , 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 {
        pname = "hgeometry-combinatorial";
-       version = "0.10.0.0";
-       sha256 = "0v168wxnzkmylh8gzxzrq0sfq5y2xn3i8r6kqnahc14x1c1jzzk1";
+       version = "0.11.0.0";
+       sha256 = "0qhb4aflqcjjm1qnhq7xsd086pk09gnq7q503ys4kzr8j0knc2j5";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bifunctors bytestring containers contravariant
-         data-clist deepseq dlist fingertree lens MonadRandom mtl QuickCheck
-         quickcheck-instances reflection semigroupoids semigroups
-         template-haskell text vector vector-builder vinyl yaml
+         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
        ];
        testHaskellDepends = [
          approximate-equality base bytestring containers data-clist
@@ -122352,8 +124530,8 @@ self: {
      }:
      mkDerivation {
        pname = "hgeometry-ipe";
-       version = "0.10.0.0";
-       sha256 = "1802yl65sy489s7pk58cd92qvzvdnw9z3ms6jr8wcrs6ipfqsa60";
+       version = "0.11.0.0";
+       sha256 = "0h78rsxc281wxmg27zxzzak0k15mv61i146gzafihrdg9hpbw1lk";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bifunctors bytestring colour containers data-clist
@@ -122578,8 +124756,8 @@ self: {
      }:
      mkDerivation {
        pname = "hgrev";
-       version = "0.2.4";
-       sha256 = "1mmnz6vipl42p2raxn26hjlcrjhrk3xfbvzyxhjl5ciybgi6dc3w";
+       version = "0.2.6";
+       sha256 = "1v1niqvqj6w8nkr3pmjwj7va2f2nv8miwsfqsp3lj3b2i9x6asb2";
        libraryHaskellDepends = [
          aeson base bytestring directory filepath process template-haskell
        ];
@@ -122627,8 +124805,8 @@ self: {
      }:
      mkDerivation {
        pname = "hhp";
-       version = "0.0.2";
-       sha256 = "0c9hcxvkrsz750r7hqviwn19r1slad4y5cj5m8ip84yiww44bfz4";
+       version = "0.0.3";
+       sha256 = "1d9hhsnf21f2v0hcmw5wpj33qdqw6xbcz979lkp2ilk8mxqgwf32";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -122856,8 +125034,8 @@ self: {
      }:
      mkDerivation {
        pname = "hie-bios";
-       version = "0.5.0";
-       sha256 = "1096d9i4xx1ca9csm2gqi4wnm8q8wya4a5k37qc5ihwix531wx02";
+       version = "0.5.1";
+       sha256 = "0b6kll3w8g0nb1ijz8kw39dmiksyaq30nk5b5gmdgjdycz5hp9vm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -122875,17 +125053,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "hie-bios_0_5_1" = callPackage
+  "hie-bios_0_7_1" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, bytestring
      , conduit, conduit-extra, containers, cryptohash-sha1, deepseq
-     , directory, extra, file-embed, filepath, ghc, hslogger, process
-     , tasty, tasty-hunit, temporary, text, time, transformers
-     , unix-compat, unordered-containers, vector, yaml
+     , 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
      }:
      mkDerivation {
        pname = "hie-bios";
-       version = "0.5.1";
-       sha256 = "0b6kll3w8g0nb1ijz8kw39dmiksyaq30nk5b5gmdgjdycz5hp9vm";
+       version = "0.7.1";
+       sha256 = "00gkr4dbbs70vnd6y90iirss88j8ax714l9jmwdfkmslwd4m2ml8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -122896,7 +125075,8 @@ self: {
        ];
        executableHaskellDepends = [ base directory filepath ghc ];
        testHaskellDepends = [
-         base directory extra filepath ghc tasty tasty-hunit text
+         base directory extra filepath ghc hspec-expectations tasty
+         tasty-expected-failure tasty-hunit temporary text
          unordered-containers yaml
        ];
        description = "Set up a GHC API session";
@@ -124487,8 +126667,8 @@ self: {
      }:
      mkDerivation {
        pname = "hkgr";
-       version = "0.2.6";
-       sha256 = "0wjq88cg84jiy3mqwhsamd6q57y76fqpyq27yq5jb30w3wrp4wdv";
+       version = "0.2.6.1";
+       sha256 = "0hq059l3byw3vcxw56z341q56xnb86kdqj5vnn16v29ql677xm26";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -124615,8 +126795,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger";
-       version = "1.18.1";
-       sha256 = "1yl6akcbmz5qy559m0k0cndwb6wdzvq2jqn7ahc46v3ai6hwk20c";
+       version = "1.19";
+       sha256 = "0kbvdpplc7h2xi1kzyk78wnmdxa32psn8swgk1apyzz36m03pax1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -124708,23 +126888,23 @@ self: {
      }) {};
 
   "hledger-flow" = callPackage
-    ({ mkDerivation, base, containers, foldl, HUnit
-     , optparse-applicative, stm, text, time, turtle
+    ({ mkDerivation, base, containers, exceptions, foldl, HUnit
+     , optparse-applicative, path, path-io, stm, text, time, turtle
      }:
      mkDerivation {
        pname = "hledger-flow";
-       version = "0.13.2.0";
-       sha256 = "1zajlqbayr6vm45y3901xwgg6acjn8fwx73mm9bnbsbxfzxn4g7d";
+       version = "0.14.1.0";
+       sha256 = "0xw2dqlvfi898d89f3srszylx9p3pasg3mmj6qqnwr5ng612pf4b";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base containers foldl stm text time turtle
+         base containers exceptions foldl path path-io stm text time turtle
        ];
        executableHaskellDepends = [
-         base optparse-applicative text turtle
+         base optparse-applicative path text turtle
        ];
        testHaskellDepends = [
-         base containers foldl HUnit stm text turtle
+         base containers foldl HUnit path path-io stm text turtle
        ];
        description = "An hledger workflow focusing on automated statement import and classification";
        license = stdenv.lib.licenses.gpl3;
@@ -124739,8 +126919,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-iadd";
-       version = "1.3.11";
-       sha256 = "1pqjyybbnhckz16in6skx3582aykk2yq5bf4ghbhj8iqbm3cczqf";
+       version = "1.3.12";
+       sha256 = "0klrqss2ch4yi50m1rybznzsjg4ahbx7rg9n8w5svpf34fdlp048";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -124768,8 +126948,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-interest";
-       version = "1.5.5";
-       sha256 = "1rsi0mpdgi0g7m07y8bd3gpw5jc8saxw15ab7yhxif4m7dfwjgmg";
+       version = "1.6.0";
+       sha256 = "0s0pmdm1vk4ib5ncs9mxyzr3dx5m6ji9778kddzqwxc9y9gvq5sq";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -124804,33 +126984,33 @@ self: {
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, array, base
      , base-compat-batteries, blaze-markup, bytestring, call-stack
      , cassava, cassava-megaparsec, cmdargs, containers, data-default
-     , Decimal, deepseq, directory, doctest, extra, fgl, file-embed
-     , filepath, Glob, hashtables, megaparsec, mtl, old-time, parsec
+     , Decimal, directory, doctest, extra, fgl, file-embed, filepath
+     , Glob, hashtables, megaparsec, mtl, old-time, parsec
      , parser-combinators, pretty-show, regex-tdfa, safe, split, tabular
      , tasty, tasty-hunit, template-haskell, text, time, timeit
-     , transformers, uglymemo, utf8-string
+     , transformers, uglymemo, unordered-containers, utf8-string
      }:
      mkDerivation {
        pname = "hledger-lib";
-       version = "1.18.1";
-       sha256 = "16fd3412n4vdnjacngjx5078yzmypn389m91308kgbd8anv6bhj4";
+       version = "1.19";
+       sha256 = "0asg5zxi664p1csjs70c40jnrq8z4fhawbjm0v6sl8sbx7pn1rj1";
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal array base base-compat-batteries
          blaze-markup bytestring call-stack cassava cassava-megaparsec
-         cmdargs containers data-default Decimal deepseq directory extra fgl
+         cmdargs containers data-default Decimal directory extra fgl
          file-embed filepath Glob hashtables megaparsec mtl old-time parsec
          parser-combinators pretty-show regex-tdfa safe split tabular tasty
          tasty-hunit template-haskell text time timeit transformers uglymemo
-         utf8-string
+         unordered-containers utf8-string
        ];
        testHaskellDepends = [
          aeson aeson-pretty ansi-terminal array base base-compat-batteries
          blaze-markup bytestring call-stack cassava cassava-megaparsec
-         cmdargs containers data-default Decimal deepseq directory doctest
-         extra fgl file-embed filepath Glob hashtables megaparsec mtl
-         old-time parsec parser-combinators pretty-show regex-tdfa safe
-         split tabular tasty tasty-hunit template-haskell text time timeit
-         transformers uglymemo utf8-string
+         cmdargs containers data-default Decimal directory doctest extra fgl
+         file-embed filepath Glob hashtables megaparsec mtl old-time parsec
+         parser-combinators pretty-show regex-tdfa safe split 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 = stdenv.lib.licenses.gpl3;
@@ -124889,8 +127069,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-ui";
-       version = "1.18.1";
-       sha256 = "0ggfz93f14znnjzkznzblsdk6iqbwwj2yxzx5rgsr0xcjzm8gx64";
+       version = "1.19";
+       sha256 = "1xi67k28b63cbg38771dqncwdh6qrcnb0gr31r5hwkglznk3ajss";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -124937,8 +127117,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-web";
-       version = "1.18.1";
-       sha256 = "1s10xyiqs77xl949m7rc71a4511i755yiv88jb0pc32xba7a2b1y";
+       version = "1.19";
+       sha256 = "1nmacg23smaagfwzr7qwnlwiswdr4gb8zkscgxkiyfl5z97gy58y";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -125167,6 +127347,8 @@ self: {
        ];
        description = "High-level Redis Database";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hlrdb-core" = callPackage
@@ -125933,46 +128115,44 @@ self: {
 
   "hnix" = callPackage
     ({ mkDerivation, aeson, array, base, base16-bytestring, binary
-     , bytestring, comonad, containers, contravariant, criterion
-     , data-fix, deepseq, deriving-compat, Diff, directory, exceptions
-     , filepath, free, generic-random, Glob, hashable, hashing, hedgehog
-     , hnix-store-core, http-client, http-client-tls, http-types
-     , interpolate, lens-family, lens-family-core, lens-family-th
-     , logict, megaparsec, monad-control, monadlist, mtl
-     , optparse-applicative, parser-combinators, pretty-show
-     , prettyprinter, process, ref-tf, regex-tdfa, scientific, semialign
-     , semialign-indexed, semigroups, serialise, some, split, syb, tasty
-     , tasty-hedgehog, tasty-hunit, tasty-quickcheck, tasty-th
+     , bytestring, comonad, containers, criterion, data-fix, deepseq
+     , deriving-compat, Diff, directory, exceptions, filepath, free
+     , Glob, hashable, hashing, hedgehog, hnix-store-core, http-client
+     , http-client-tls, http-types, lens-family, lens-family-core
+     , lens-family-th, logict, megaparsec, monad-control, monadlist, mtl
+     , neat-interpolation, optparse-applicative, parser-combinators
+     , pretty-show, prettyprinter, process, ref-tf, regex-tdfa
+     , scientific, semialign, semialign-indexed, serialise, some, split
+     , syb, tasty, tasty-hedgehog, tasty-hunit, tasty-th
      , template-haskell, text, these, time, transformers
      , transformers-base, unix, unordered-containers, vector, xml
      }:
      mkDerivation {
        pname = "hnix";
-       version = "0.9.0";
-       sha256 = "17lj5gaqigkrxchdzkhwxab613zzahgh5d8jpqa9jiz7037wgv2w";
-       revision = "1";
-       editedCabalFile = "0ccn3a2pp4dnd4ibhankrvi2hg7v1660w68wrmw2gabcwfir53lr";
+       version = "0.9.1";
+       sha256 = "1vxb55ih0gpaazb8kvms2sw21l78hb36cbz5217vg94i3yvk8zls";
+       revision = "2";
+       editedCabalFile = "17fxwg4bxnpwhwfwmh42xrwq6ajbk5b707zl8f01z0cyskzabzxy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson array base base16-bytestring binary bytestring comonad
-         containers contravariant data-fix deepseq deriving-compat directory
-         exceptions filepath free hashable hashing hnix-store-core
-         http-client http-client-tls http-types interpolate lens-family
-         lens-family-core lens-family-th logict megaparsec monad-control
-         monadlist mtl optparse-applicative parser-combinators pretty-show
-         prettyprinter process ref-tf regex-tdfa scientific semialign
-         semialign-indexed semigroups serialise some split syb
+         containers data-fix deepseq deriving-compat directory exceptions
+         filepath free hashable hashing hnix-store-core http-client
+         http-client-tls http-types lens-family lens-family-core
+         lens-family-th logict megaparsec monad-control monadlist mtl
+         neat-interpolation optparse-applicative parser-combinators
+         pretty-show prettyprinter process ref-tf regex-tdfa scientific
+         semialign semialign-indexed serialise some split syb
          template-haskell text these time transformers transformers-base
          unix unordered-containers vector xml
        ];
        testHaskellDepends = [
          base base16-bytestring bytestring containers data-fix deepseq Diff
-         directory exceptions filepath generic-random Glob hedgehog
-         interpolate megaparsec mtl optparse-applicative pretty-show
-         prettyprinter process serialise split tasty tasty-hedgehog
-         tasty-hunit tasty-quickcheck tasty-th template-haskell text time
-         transformers unix unordered-containers
+         directory exceptions filepath Glob hedgehog megaparsec mtl
+         neat-interpolation optparse-applicative pretty-show prettyprinter
+         process serialise split tasty tasty-hedgehog tasty-hunit tasty-th
+         template-haskell text time transformers unix unordered-containers
        ];
        benchmarkHaskellDepends = [
          base base16-bytestring bytestring containers criterion data-fix
@@ -126228,16 +128408,17 @@ self: {
      }) {};
 
   "hobbits" = callPackage
-    ({ mkDerivation, base, deepseq, haskell-src-exts, haskell-src-meta
-     , mtl, syb, tagged, template-haskell, th-expand-syns, transformers
+    ({ mkDerivation, base, containers, deepseq, haskell-src-exts
+     , haskell-src-meta, mtl, syb, tagged, template-haskell
+     , th-expand-syns, transformers, vector
      }:
      mkDerivation {
        pname = "hobbits";
-       version = "1.2.4";
-       sha256 = "0hqg29s938hz1hxb7ljv3wnr8iaxwjmi66zjvvy1939g5r6fmdll";
+       version = "1.3";
+       sha256 = "1w8bz1z747dd7vh110iynmsq5n0a84zw1gk7jcxfwl5lpfrqz97s";
        libraryHaskellDepends = [
-         base deepseq haskell-src-exts haskell-src-meta mtl syb tagged
-         template-haskell th-expand-syns transformers
+         base containers deepseq haskell-src-exts haskell-src-meta mtl syb
+         tagged template-haskell th-expand-syns transformers vector
        ];
        description = "A library for canonically representing terms with binding";
        license = stdenv.lib.licenses.bsd3;
@@ -126267,46 +128448,45 @@ self: {
      }) {ocilib = null;};
 
   "hocker" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, ansi-wl-pprint, async, base
-     , bytestring, concurrentoutput, containers, cryptonite, data-fix
-     , deepseq, directory, exceptions, filepath, foldl, hnix
-     , http-client, http-types, lens, lens-aeson, lifted-base, memory
+    ({ mkDerivation, aeson, aeson-pretty, async, base, bytestring
+     , concurrentoutput, containers, cryptonite, data-fix, deepseq
+     , directory, exceptions, filepath, foldl, hnix, http-client
+     , http-types, lens, lens-aeson, lifted-base, megaparsec, memory
      , mtl, neat-interpolation, network, network-uri, nix-paths
      , optional-args, optparse-applicative, optparse-generic, pooled-io
-     , pureMD5, scientific, tar, tasty, tasty-golden, tasty-hunit
-     , tasty-quickcheck, tasty-smallcheck, temporary, text, time
-     , transformers, turtle, unordered-containers, uri-bytestring
-     , vector, wreq, zlib
+     , prettyprinter, pureMD5, scientific, tar, tasty, tasty-golden
+     , tasty-hunit, tasty-quickcheck, tasty-smallcheck, temporary, text
+     , time, transformers, turtle, unordered-containers, uri-bytestring
+     , vector, word8, wreq, zlib
      }:
      mkDerivation {
        pname = "hocker";
-       version = "1.0.5";
-       sha256 = "0xv22kiw44y72asrnk027h9gxpfhjzgdm8sbcy70s4ipn8n62hha";
+       version = "1.0.6";
+       sha256 = "1j6gcb33jf3kcskxyl0s264h5b1rvmcgkrmhrgzw7i3314394xdj";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson aeson-pretty ansi-wl-pprint async base bytestring
-         concurrentoutput containers cryptonite data-fix deepseq directory
-         exceptions filepath foldl hnix http-client http-types lens
-         lens-aeson lifted-base memory mtl neat-interpolation network
+         aeson aeson-pretty async base bytestring concurrentoutput
+         containers cryptonite data-fix deepseq directory exceptions
+         filepath foldl hnix http-client http-types lens lens-aeson
+         lifted-base megaparsec memory mtl neat-interpolation network
          network-uri nix-paths optparse-applicative optparse-generic
-         pooled-io pureMD5 scientific tar temporary text time transformers
-         turtle unordered-containers uri-bytestring vector wreq zlib
+         pooled-io prettyprinter pureMD5 scientific tar temporary text time
+         transformers turtle unordered-containers uri-bytestring vector wreq
+         zlib
        ];
        executableHaskellDepends = [
          base bytestring cryptonite data-fix filepath hnix lens mtl network
          optional-args optparse-applicative optparse-generic temporary text
        ];
        testHaskellDepends = [
-         aeson ansi-wl-pprint base bytestring containers cryptonite mtl
-         network network-uri tasty tasty-golden tasty-hunit tasty-quickcheck
-         tasty-smallcheck text unordered-containers
+         aeson base bytestring containers cryptonite mtl network network-uri
+         prettyprinter tasty tasty-golden tasty-hunit tasty-quickcheck
+         tasty-smallcheck text unordered-containers word8
        ];
        description = "Interact with the docker registry and generate nix build instructions";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "hodatime" = callPackage
@@ -127080,8 +129260,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoogle";
-       version = "5.0.17.15";
-       sha256 = "0yl2izlxb863a3vxj4dhqn65qnwmmja799bgm004kcmk646r24jx";
+       version = "5.0.18";
+       sha256 = "16vbjivwwjn687cidg0v9bkdyk9mkv4gn6fmaxcfj8m94vrqdbdx";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -127140,10 +129320,8 @@ self: {
      }:
      mkDerivation {
        pname = "hookup";
-       version = "0.3.1.0";
-       sha256 = "0dyx0zgxis4viqgdkky25q93vh3z551m7nssjfr15rqj25w8zb5y";
-       revision = "1";
-       editedCabalFile = "0r92s1dz7bzm2p5wpdqfkmpgzfh3xgyan82b4rkpmq8m888z74w9";
+       version = "0.4";
+       sha256 = "0zfplby1lkbdr3s6icv1p4vii77a2sb3mx0ylp9pjg7f3ic9lw8i";
        libraryHaskellDepends = [
          attoparsec base bytestring HsOpenSSL HsOpenSSL-x509-system network
        ];
@@ -127151,6 +129329,29 @@ self: {
        license = stdenv.lib.licenses.isc;
      }) {};
 
+  "hoop" = callPackage
+    ({ mkDerivation, base, containers, haskell-src-exts
+     , haskell-src-meta, hspec, lens, mtl, parsec, pretty
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "hoop";
+       version = "0.3.0.0";
+       sha256 = "1p6094gwivk4lj3alb3c1w43n7qchga8kdnrz09sfyldcygycss8";
+       libraryHaskellDepends = [
+         base containers haskell-src-exts haskell-src-meta lens mtl parsec
+         pretty template-haskell text
+       ];
+       testHaskellDepends = [
+         base containers haskell-src-exts haskell-src-meta hspec lens mtl
+         parsec pretty template-haskell text
+       ];
+       description = "Object-Oriented Programming in Haskell";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hoopl" = callPackage
     ({ mkDerivation, base, containers, filepath, mtl, parsec
      , test-framework, test-framework-hunit
@@ -128125,8 +130326,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpath-directory";
-       version = "0.13.4";
-       sha256 = "0cg80zsh0cwkaq4hd6y41afvn340a4byrk6h4dspiksgym5i8ny0";
+       version = "0.14.0";
+       sha256 = "1rv2f0vqbivzqgpk3msxgymqmwp159bi6h2hcdgf65v5j3rhv52n";
        libraryHaskellDepends = [
          base bytestring exceptions hpath-filepath hpath-posix IfElse
          safe-exceptions streamly streamly-bytestring streamly-posix time
@@ -128158,8 +130359,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpath-io";
-       version = "0.13.2";
-       sha256 = "10dph69qsl73k5rjvr5mvcplwgcmq7qylaxmr2yx7hzcjzsdgg4z";
+       version = "0.14.0";
+       sha256 = "12awqghnway7fhcyzyy6dj5f9p1z15gbp31r1781n892w3vvk4l9";
        libraryHaskellDepends = [
          base bytestring exceptions hpath hpath-directory hpath-posix
          safe-exceptions streamly time unix
@@ -128252,6 +130453,8 @@ self: {
        pname = "hpc-lcov";
        version = "1.0.1";
        sha256 = "01ws5y2vavgm7151dcabw3jwny1prrnzn5b04q76m5gc6a36wivl";
+       revision = "1";
+       editedCabalFile = "1jv81ywwzvr37zki8hjylj6gfhamq7fi7rpjyk1g0d06ac9ix0zp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers hpc ];
@@ -128317,20 +130520,23 @@ self: {
 
   "hpdft" = callPackage
     ({ mkDerivation, attoparsec, base, binary, bytestring, containers
-     , directory, file-embed, parsec, text, utf8-string, zlib
+     , directory, file-embed, memory, optparse-applicative, parsec
+     , semigroups, text, utf8-string, zlib
      }:
      mkDerivation {
        pname = "hpdft";
-       version = "0.1.0.5";
-       sha256 = "1wcbkxcfwnmfbwfa3dqlqgf825b00x0fvmp4fp3jfxs6s5dyi6lh";
+       version = "0.1.0.6";
+       sha256 = "04r5a9z36dglpfz7j01cz3yizi9l0633rf630ypg2sfxkhn2384w";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          attoparsec base binary bytestring containers directory file-embed
-         parsec text utf8-string zlib
+         memory optparse-applicative parsec semigroups text utf8-string zlib
+       ];
+       executableHaskellDepends = [
+         base bytestring memory optparse-applicative semigroups utf8-string
        ];
-       executableHaskellDepends = [ base bytestring utf8-string ];
        description = "A tool for looking through PDF file using Haskell";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -129258,14 +131464,12 @@ self: {
      }) {inherit (pkgs) fltk; fltk_images = null;};
 
   "hs-functors" = callPackage
-    ({ mkDerivation, base, tagged, transformers }:
+    ({ mkDerivation, base, dual, tagged, transformers }:
      mkDerivation {
        pname = "hs-functors";
-       version = "0.1.6.0";
-       sha256 = "197vyl98ddvc55dxwwjd46sdjvh1a9s5qcx2m16smn9gwmx9gq0l";
-       revision = "1";
-       editedCabalFile = "1z4p93nibk1r0cyff4bfpb1rfklq43p75k35fyrk5kcvfa0ds296";
-       libraryHaskellDepends = [ base tagged transformers ];
+       version = "0.1.7.1";
+       sha256 = "1cigaggilr05pgizj11g5c40ln38zb5q8p0igliamkhx7fz3axis";
+       libraryHaskellDepends = [ base dual tagged transformers ];
        description = "Functors from products of Haskell and its dual to Haskell";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -129274,8 +131478,8 @@ self: {
     ({ mkDerivation, base, mtl }:
      mkDerivation {
        pname = "hs-gchart";
-       version = "0.4.1";
-       sha256 = "0nmykgdzkqidxv51bhlcn4zax4zfw26s4l65z3a3405si2s5x459";
+       version = "0.4.2";
+       sha256 = "1kky6fr7s4v3hpnabp95crrd6fd67rq49sbdpjbm4n5gbyby110q";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base mtl ];
        description = "Haskell wrapper for the Google Chart API";
@@ -129334,19 +131538,13 @@ self: {
      }) {};
 
   "hs-ix" = callPackage
-    ({ mkDerivation, base, base-unicode-symbols, criterion, hs-functors
-     , smallcheck, tasty, tasty-smallcheck, util
-     }:
+    ({ mkDerivation, base, hs-functors }:
      mkDerivation {
        pname = "hs-ix";
-       version = "0.1.1.0";
-       sha256 = "1a1plgzbqk4jhf5lyfx82yillcmy38lzlqwsfhnlka5h6f9j10hx";
-       libraryHaskellDepends = [
-         base base-unicode-symbols hs-functors util
-       ];
-       testHaskellDepends = [ base smallcheck tasty tasty-smallcheck ];
-       benchmarkHaskellDepends = [ base criterion ];
-       description = "Indexed monads";
+       version = "0.2.0.0";
+       sha256 = "04dm8c5ilaw4agljfp7k31ln2j5m1shyg4zb3x36rjkbs807z8sf";
+       libraryHaskellDepends = [ base hs-functors ];
+       description = "Indexed applicative functors and monads";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -129438,7 +131636,7 @@ self: {
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) mesos; inherit (pkgs) protobuf;};
+     }) {mesos = null; inherit (pkgs) protobuf;};
 
   "hs-multiaddr" = callPackage
     ({ mkDerivation, base, bytes, bytestring, cereal, either-unwrap
@@ -131368,8 +133566,8 @@ self: {
      }:
      mkDerivation {
        pname = "hsinspect-lsp";
-       version = "0.0.3";
-       sha256 = "0y7y8ldlyajczpiy216jm4inapmpssyri0mv0v7h86xxmgzz5c02";
+       version = "0.0.6";
+       sha256 = "0z02hismrc14yw36ly0xgzavam9n4svwyv0g31yjrg9szyadn1i8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -131590,15 +133788,38 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {inherit (pkgs) lua5_3;};
 
-  "hslua_1_1_1" = callPackage
+  "hslua_1_1_2" = callPackage
     ({ mkDerivation, base, bytestring, containers, exceptions, lua5_3
      , mtl, QuickCheck, quickcheck-instances, tasty, tasty-hunit
      , tasty-quickcheck, text
      }:
      mkDerivation {
        pname = "hslua";
-       version = "1.1.1";
-       sha256 = "10gga18cg03av05rff9dg1yjmcyk16lv66zd4gwpr4g60091snbl";
+       version = "1.1.2";
+       sha256 = "1cv4lwr91ckscwm2jksrg29ka1z32974xgkcgmna4ibpyjwkslbl";
+       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 = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) lua5_3;};
+
+  "hslua_1_2_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, exceptions, lua5_3
+     , mtl, QuickCheck, quickcheck-instances, tasty, tasty-hunit
+     , tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "hslua";
+       version = "1.2.0";
+       sha256 = "0a295zqpbrv8a2hw7msz5p7brlswag16sg08dyz399ij6b7q5x0h";
        configureFlags = [ "-fsystem-lua" "-f-use-pkgconfig" ];
        libraryHaskellDepends = [
          base bytestring containers exceptions mtl text
@@ -131620,8 +133841,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-aeson";
-       version = "1.0.2";
-       sha256 = "1v5saxppbnq62ds00a7diadvqg8dnsx0sjlcanjj15h13j3yw964";
+       version = "1.0.3";
+       sha256 = "0qqcf9km39bmw29d2s5zw91rxgmmm8nqfnfs5hkhmsgh5kvaal5h";
        libraryHaskellDepends = [
          aeson base hashable hslua scientific text unordered-containers
          vector
@@ -131652,16 +133873,18 @@ self: {
 
   "hslua-module-system" = callPackage
     ({ mkDerivation, base, containers, directory, exceptions, hslua
-     , tasty, tasty-hunit, temporary, text
+     , tasty, tasty-hunit, tasty-lua, temporary, text
      }:
      mkDerivation {
        pname = "hslua-module-system";
-       version = "0.2.1";
-       sha256 = "1m7wz3g5c34pyizqw5mllzhsy2vziddhlbhjfwdvd7nhd3p4v3hh";
+       version = "0.2.2";
+       sha256 = "0swl20v40kkh67vn6546a0afjcsq56x3ww854x3pwypxz1p6dyri";
        libraryHaskellDepends = [
          base containers directory exceptions hslua temporary
        ];
-       testHaskellDepends = [ base hslua tasty tasty-hunit text ];
+       testHaskellDepends = [
+         base hslua tasty tasty-hunit tasty-lua text
+       ];
        description = "Lua module wrapper around Haskell's System module";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -131679,6 +133902,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hslua-module-text_0_3_0" = callPackage
+    ({ mkDerivation, base, bytestring, hslua, tasty, tasty-hunit
+     , tasty-lua, text
+     }:
+     mkDerivation {
+       pname = "hslua-module-text";
+       version = "0.3.0";
+       sha256 = "1y15b38r0xiwcwpzsdr8x8i4y8all2jd3z0j7fvny6lsbna2hf7r";
+       libraryHaskellDepends = [ base bytestring hslua text ];
+       testHaskellDepends = [
+         base hslua tasty tasty-hunit tasty-lua text
+       ];
+       description = "Lua module for text";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hsluv-haskell" = callPackage
     ({ mkDerivation, aeson, base, bytestring, colour, containers }:
      mkDerivation {
@@ -132039,8 +134279,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec";
-       version = "2.7.1";
-       sha256 = "1x8rcr7j1azcaw0fg1xzp8j0gr4ias36z09aj24i4xp8pnyfp341";
+       version = "2.7.2";
+       sha256 = "0zb9b85vx7wyx8zcrkqwlwp9qmsg3f5qnd43ps6xfrsn1l2vszm9";
        libraryHaskellDepends = [
          base hspec-core hspec-discover hspec-expectations QuickCheck
        ];
@@ -132048,6 +134288,22 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hspec_2_7_4" = callPackage
+    ({ mkDerivation, base, hspec-core, hspec-discover
+     , hspec-expectations, QuickCheck
+     }:
+     mkDerivation {
+       pname = "hspec";
+       version = "2.7.4";
+       sha256 = "0zql8cl025ai3yx2dhp1sgvmw8n4ngqbrlmb42hcgv26q8qnvhmi";
+       libraryHaskellDepends = [
+         base hspec-core hspec-discover hspec-expectations QuickCheck
+       ];
+       description = "A Testing Framework for Haskell";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hspec-attoparsec" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, hspec
      , hspec-expectations, text
@@ -132111,10 +134367,35 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-core";
-       version = "2.7.1";
-       sha256 = "08vk8588lap00hsln8zl64dazbb28lzk4b4h5vnm7xvhg7r21k1c";
-       revision = "1";
-       editedCabalFile = "0aw68sgz2p63y0vg07c1jx2pr8lmhp5c1ck60dlipyxsa00455i6";
+       version = "2.7.2";
+       sha256 = "0vzsxwgg3rfp6mxq85sb1v2wd77f2lwdg9zm5f1mqm02avfglfnk";
+       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 = stdenv.lib.licenses.mit;
+     }) {};
+
+  "hspec-core_2_7_4" = 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.4";
+       sha256 = "1k0rs9399m6bzmndc9ybs26mxrzkl9pifrijvknysbaqfcifmq35";
        libraryHaskellDepends = [
          ansi-terminal array base call-stack clock deepseq directory
          filepath hspec-expectations HUnit QuickCheck quickcheck-io random
@@ -132130,6 +134411,7 @@ self: {
        testTarget = "--test-option=--skip --test-option='Test.Hspec.Core.Runner.hspecResult runs specs in parallel'";
        description = "A Testing Framework for Haskell";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hspec-dirstream" = callPackage
@@ -132155,8 +134437,27 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-discover";
-       version = "2.7.1";
-       sha256 = "0r47fm94wa6qrhp8cc1zzkjrxc32rnagfn9m9ga4dm6p6ydw4c8b";
+       version = "2.7.2";
+       sha256 = "0n3lvdznmrgrhd11969xn4ci31439y6fpr9xkzsabij87rw091l8";
+       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 = stdenv.lib.licenses.mit;
+     }) {};
+
+  "hspec-discover_2_7_4" = callPackage
+    ({ mkDerivation, base, directory, filepath, hspec-meta, QuickCheck
+     }:
+     mkDerivation {
+       pname = "hspec-discover";
+       version = "2.7.4";
+       sha256 = "02laain23bcnzsl65347qr5knvrmrlhd0kzc0d88kx59lpzm27a0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base directory filepath ];
@@ -132167,6 +134468,7 @@ self: {
        testToolDepends = [ hspec-meta ];
        description = "Automatically discover and run Hspec tests";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hspec-expectations" = callPackage
@@ -132296,8 +134598,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-golden";
-       version = "0.1.0.1";
-       sha256 = "1h29jffq33r5ffcni50ypa03x7qvx8yymdrp5nck9q8ykiivry22";
+       version = "0.1.0.3";
+       sha256 = "1d5ab34n0f1wk1q86qlb7x2b49abzzh08jh7j52nbrvnxld2j64l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base directory hspec-core ];
@@ -132416,6 +134718,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hspec-megaparsec_2_2_0" = callPackage
+    ({ mkDerivation, base, containers, hspec, hspec-expectations
+     , megaparsec
+     }:
+     mkDerivation {
+       pname = "hspec-megaparsec";
+       version = "2.2.0";
+       sha256 = "0hyf06gzzqd6sqd76crwxycwgx804sd39z7i0c2vmv1qgsxv82gn";
+       libraryHaskellDepends = [
+         base containers hspec-expectations megaparsec
+       ];
+       testHaskellDepends = [ base hspec hspec-expectations megaparsec ];
+       description = "Utility functions for testing Megaparsec parsers with Hspec";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hspec-meta" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, call-stack, clock
      , deepseq, directory, filepath, hspec-expectations, HUnit
@@ -132483,27 +134802,12 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-need-env";
-       version = "0.1.0.4";
-       sha256 = "0cb6jr0mqhaylqdky38s8plgs9w8hk1pi135yxggr707bnhwsplg";
-       libraryHaskellDepends = [ base hspec-core hspec-expectations ];
-       testHaskellDepends = [ base hspec hspec-core setenv transformers ];
-       description = "Read environment variables for hspec tests";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hspec-need-env_0_1_0_5" = 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 = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hspec-parsec" = callPackage
@@ -133311,10 +135615,8 @@ self: {
      }:
      mkDerivation {
        pname = "hstatistics";
-       version = "0.3";
-       sha256 = "1v7f2844p6bjzcwc2pnjyb8zl42kw1x021gcn688dvdxs6cgdwvs";
-       revision = "1";
-       editedCabalFile = "0qcp1kgpwnqphqq1fd92lfp8d0vcf3l6ighsdiqin51qg499xz9w";
+       version = "0.3.1";
+       sha256 = "0pcx1s15ijdj5kxqbwcqf5qvpa8wxac9ph5013cmg1k1yflnqrzh";
        libraryHaskellDepends = [
          array base hmatrix hmatrix-gsl-stats random vector
        ];
@@ -134426,6 +136728,32 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "http-api-data_0_4_2" = callPackage
+    ({ 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, transformers, unordered-containers, uuid-types
+     }:
+     mkDerivation {
+       pname = "http-api-data";
+       version = "0.4.2";
+       sha256 = "0xzfvxxh33ivlnrnzmm19cni3jgb5ph18n9hykkw3d6l3rhwzcnl";
+       libraryHaskellDepends = [
+         attoparsec attoparsec-iso8601 base base-compat bytestring
+         containers cookie hashable http-types tagged text time-compat
+         transformers unordered-containers uuid-types
+       ];
+       testHaskellDepends = [
+         base base-compat bytestring cookie hspec HUnit nats QuickCheck
+         quickcheck-instances text time-compat unordered-containers
+         uuid-types
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Converting to/from HTTP API data like URL pieces, headers and query parameters";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "http-attoparsec" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, http-types }:
      mkDerivation {
@@ -134466,7 +136794,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "http-client_0_7_1" = callPackage
+  "http-client_0_7_2_1" = callPackage
     ({ mkDerivation, array, async, base, blaze-builder, bytestring
      , case-insensitive, containers, cookie, deepseq, directory
      , exceptions, filepath, ghc-prim, hspec, http-types, memory
@@ -134475,8 +136803,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-client";
-       version = "0.7.1";
-       sha256 = "0qjdjpxwqbnxfgqny0iylv11ng2swmdz57bwzy3mif5hfamvr6p0";
+       version = "0.7.2.1";
+       sha256 = "0b699f07yqa525xqqcs4cn32fryjc2212sv8v83yfqlqwdwzr7jg";
        libraryHaskellDepends = [
          array base blaze-builder bytestring case-insensitive containers
          cookie deepseq exceptions filepath ghc-prim http-types memory
@@ -134647,8 +136975,6 @@ self: {
        ];
        description = "restricting the servers that http-client will use";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "http-client-session" = callPackage
@@ -134719,8 +137045,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-common";
-       version = "0.8.2.0";
-       sha256 = "14s5a178sb2vm5k00rs21760mds5dz2gs10k9iyn22h01mxyf599";
+       version = "0.8.2.1";
+       sha256 = "1pzi1h9qb6mpzkmv1bfa54vfzrp5jcdlbwj1i7qiricrwhqxh3dk";
        libraryHaskellDepends = [
          base base64-bytestring blaze-builder bytestring case-insensitive
          directory mtl network text transformers unordered-containers
@@ -135061,6 +137387,31 @@ self: {
        license = stdenv.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
+     }:
+     mkDerivation {
+       pname = "http-link-header";
+       version = "1.2.0";
+       sha256 = "1y0vr8fi8pap7ixbafp2lxvdk9hh56h370jw7qd11gm2032nnvg9";
+       libraryHaskellDepends = [
+         attoparsec base bytestring errors http-api-data network-uri text
+       ];
+       testHaskellDepends = [
+         attoparsec base bytestring errors hspec hspec-attoparsec
+         http-api-data network-uri QuickCheck text
+       ];
+       benchmarkHaskellDepends = [
+         attoparsec base bytestring criterion directory errors http-api-data
+         network-uri text transformers
+       ];
+       description = "A parser and writer for the HTTP Link header per RFC 5988";
+       license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "http-listen" = callPackage
     ({ mkDerivation, base, bytestring, exceptions, HTTP, network
      , transformers
@@ -135246,6 +137597,21 @@ self: {
        broken = true;
      }) {};
 
+  "http-query" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, http-conduit, network-uri
+     , text
+     }:
+     mkDerivation {
+       pname = "http-query";
+       version = "0.1.0";
+       sha256 = "1j2ad7ym5mkpavlw1fp07n4qlggms04i93l5rv6vg07ljf4imjvs";
+       libraryHaskellDepends = [
+         aeson base bytestring http-conduit network-uri text
+       ];
+       description = "Simple http queries";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "http-querystring" = callPackage
     ({ mkDerivation, base, bytestring, containers, doctest, hspec
      , http-types, QuickCheck
@@ -135352,8 +137718,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-streams";
-       version = "0.8.7.1";
-       sha256 = "0kl668ggxz5wzvziagw9inmmwb0l5x2r00nf4p7wm0pnl8m19l2b";
+       version = "0.8.7.2";
+       sha256 = "1q0lp8hkzfc0srci9y794q5cqkih50r3iw2c32wbx8h502jcvv1q";
        libraryHaskellDepends = [
          aeson attoparsec base base64-bytestring blaze-builder bytestring
          case-insensitive directory HsOpenSSL http-common io-streams mtl
@@ -135450,8 +137816,8 @@ self: {
      }:
      mkDerivation {
        pname = "http2";
-       version = "2.0.4";
-       sha256 = "0rqfx6vvcrlic4sw5xlqzk3xvdsbw13d0ymppx8yjhkkzign6227";
+       version = "2.0.5";
+       sha256 = "1rg6dnkx2yxcdp87r1vdpyxacqv7jgxiq3bb1hjz45v5jk1xj676";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -135989,8 +138355,8 @@ self: {
     ({ mkDerivation, base, dejafu, exceptions, HUnit }:
      mkDerivation {
        pname = "hunit-dejafu";
-       version = "2.0.0.3";
-       sha256 = "03kjpc26bpym06ccz0kvbid2n38xdq5j0nd1cywfjbii8zyjmgzg";
+       version = "2.0.0.4";
+       sha256 = "11d52blw31mcsg7c3w1f7khy3vk2p03h4c5z6ja6wb9k5bg4d004";
        libraryHaskellDepends = [ base dejafu exceptions HUnit ];
        description = "Deja Fu support for the HUnit test framework";
        license = stdenv.lib.licenses.mit;
@@ -136483,6 +138849,8 @@ self: {
        pname = "hw-balancedparens";
        version = "0.4.1.0";
        sha256 = "1ddxg00pwjvlrd4zdx9b9y7hm8rgxsxkvzzvwc34p2y75rivp21l";
+       revision = "1";
+       editedCabalFile = "0mc9lmjc3xrad4jlc9v66078362a791hnrrg9bclg1nq7jicfxgx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -136623,8 +138991,8 @@ self: {
        pname = "hw-dsv";
        version = "0.4.1.0";
        sha256 = "1wv0yg662c3bq4kpgfqfjks59v17i5h3v3mils1qpxn4c57jr3s8";
-       revision = "1";
-       editedCabalFile = "1xhdvqmqm44ky8mbwi64fj3bawqswf58ghlbj2bvk136yflvz2c7";
+       revision = "2";
+       editedCabalFile = "1l7aww6nci05ns7hnk46r20as3xy1j0s5fxsrb5w0x9y2kwvqj61";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -136664,8 +139032,8 @@ self: {
        pname = "hw-dump";
        version = "0.1.1.0";
        sha256 = "14ya18i3xvay5xn8j20b06msqyd49h34w526k1x1fxdp0i2l3rwr";
-       revision = "1";
-       editedCabalFile = "0v310296cxsv92k2rjrc9zrwh7yb7lkjwivndpbh5hv5p8ll0zm6";
+       revision = "2";
+       editedCabalFile = "0p6cbijds7vc8bx9rb8s8bwr9dp4qc91idmd64llgz06d9kmvkcs";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -136699,8 +139067,8 @@ self: {
        pname = "hw-eliasfano";
        version = "0.1.2.0";
        sha256 = "1wqpzznmz6bl88wzhrfcbgi49dw7w7i0p92hyc0m58nanqm1zgnj";
-       revision = "1";
-       editedCabalFile = "0qqshcj482x0yfmb76fj6ng57sf3i0r8daz93kzab8lscarh31j9";
+       revision = "2";
+       editedCabalFile = "0l7h7pr6gpq0xnp4w003q3dxw7pmv2d6kpx2iqfc3nzzpa562ivv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -136852,6 +139220,8 @@ self: {
        pname = "hw-ip";
        version = "2.4.2.0";
        sha256 = "1bvh4fkg1ffr3y8wink62rgkynlcgjhmra7a4w01h1dmw1vb2vfx";
+       revision = "1";
+       editedCabalFile = "19jbgqsmc71apmr6z0n0a2hgfhv9r0bsqa2x55r8grpyr91blpmw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -136885,6 +139255,8 @@ self: {
        pname = "hw-json";
        version = "1.3.2.1";
        sha256 = "11lf4nxnkk8l25a44g1pkr9j1w03l69gqjgli5yfj6k68lzml7bf";
+       revision = "1";
+       editedCabalFile = "0l42hlc0icik28isjihqsj4cxzgdj1vzyxwazlyyv4f52liyjk61";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -136956,6 +139328,8 @@ self: {
        pname = "hw-json-simd";
        version = "0.1.1.0";
        sha256 = "0bpfyx2bd7pcr8y8bfahcdm30bznqixfawraq3xzy476vy9ppa9n";
+       revision = "1";
+       editedCabalFile = "047s5clxvi3l9x80lnf7nrv7myxnvqmh8y7syb2ryv3m549lyv2q";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring hw-prim lens vector ];
@@ -136985,8 +139359,8 @@ self: {
        pname = "hw-json-simple-cursor";
        version = "0.1.1.0";
        sha256 = "1kwxnqsa2mkw5sa8rc9rixjm6f75lyjdaz7f67yyhwls5v4315bl";
-       revision = "2";
-       editedCabalFile = "144afi48rm613gcb8gccfyw5ybx9mzsfzsfq1nvsmlyijl8rgc1x";
+       revision = "3";
+       editedCabalFile = "0zmq1gb9znb84d9igppww6295glnhg5b6xlgadr435cddp5zmhpx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137025,6 +139399,8 @@ self: {
        pname = "hw-json-standard-cursor";
        version = "0.2.3.1";
        sha256 = "1mpsspp6ba2zqv38a0rcv93mbwb1rb8snmxklf32g02djj8b4vir";
+       revision = "1";
+       editedCabalFile = "0gdvwhj2jmd8dm1yi3kzs0lyw5r4bk7c50s21z1600v36bmzpdm1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137082,13 +139458,13 @@ self: {
 
   "hw-kafka-client" = callPackage
     ({ mkDerivation, base, bifunctors, bytestring, c2hs, containers
-     , either, hspec, hspec-discover, monad-loops, random, rdkafka, text
+     , either, hspec, hspec-discover, monad-loops, rdkafka, text
      , transformers, unix
      }:
      mkDerivation {
        pname = "hw-kafka-client";
-       version = "3.1.1";
-       sha256 = "109ld374fzrnin94s12ig5hhimjbnh643nbbgp7zdxjpr1qmjcz6";
+       version = "3.1.2";
+       sha256 = "1yqzh9cvs9yr88wa0r26izd35hg2vfzqvzxbx0l6c1apgc3m7hd6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137097,8 +139473,7 @@ self: {
        librarySystemDepends = [ rdkafka ];
        libraryToolDepends = [ c2hs ];
        testHaskellDepends = [
-         base bifunctors bytestring containers either hspec monad-loops
-         random text transformers
+         base bifunctors bytestring containers either hspec monad-loops text
        ];
        testToolDepends = [ hspec-discover ];
        description = "Kafka bindings for Haskell";
@@ -137162,8 +139537,8 @@ self: {
        pname = "hw-packed-vector";
        version = "0.2.1.0";
        sha256 = "13hly2yzx6kx4j56iksgj4i3wmvg7rmxq57d0g87lmybzhha9q38";
-       revision = "1";
-       editedCabalFile = "070ac32s0azzhnqwrvhnfa18sxn60ayhmlikr6zk4vl1v03y0xbc";
+       revision = "2";
+       editedCabalFile = "0hlmi9w5z7j9ycqjf5avx3b09yglcbx8krypv274j2qrm5fzypr4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137250,6 +139625,8 @@ self: {
        benchmarkHaskellDepends = [ base criterion vector ];
        description = "Primitive support for bit manipulation";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hw-rankselect" = callPackage
@@ -137264,8 +139641,8 @@ self: {
        pname = "hw-rankselect";
        version = "0.13.4.0";
        sha256 = "0chk3n4vb55px943w0l3q7pxhgbvqm64vn7lkhi7k0l2dpybycp7";
-       revision = "1";
-       editedCabalFile = "03p711rvs3qn9x5rfc90yxrbyp5fqsi9i2wbiwrs3vq6if66vc5z";
+       revision = "2";
+       editedCabalFile = "03lc8cgijr4ysz0i9c4pjhas4cd5ifxs400cr0nbasjvmz27hr3c";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137425,8 +139802,8 @@ self: {
        pname = "hw-uri";
        version = "0.2.1.0";
        sha256 = "1bwdzvms0n86k7gbkhk0jj3m1pcc9vbjk13kgpchqxpxm971srbs";
-       revision = "1";
-       editedCabalFile = "0bbsv8dj0z6wvgn0ldgvbrhji8mw5514pqwrp4ih8i2mjnfcdh2a";
+       revision = "2";
+       editedCabalFile = "0i6cw8m5g2hasif3q8gk7kpzavpmmk9fgr7vcqvym202ccbyj3dq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137475,8 +139852,8 @@ self: {
        pname = "hw-xml";
        version = "0.5.1.0";
        sha256 = "0g81kknllbc6v5wx7kgzhh78409njfzr3h7lfdx7ip0nkhhnpmw4";
-       revision = "2";
-       editedCabalFile = "1zi0ma6fmzghlc65dxpznsyiyp4ij7cwz1yw35i0jjm314mhi4va";
+       revision = "3";
+       editedCabalFile = "0b1lkhc6qf5vqafn69bid01k1hi043k7yrpl7pbxfrn154w8afpm";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -138461,6 +140838,8 @@ self: {
        pname = "hyper";
        version = "0.1.0.3";
        sha256 = "0bc2mvxaggdyikdx51qc1li8idmnlw3ha2n3qli6jf1zz8mlqx0s";
+       revision = "1";
+       editedCabalFile = "1qfavgvdlmsip57grhxs0mawh82nxrq4m0mv9z3vam1b9j6nw2cc";
        libraryHaskellDepends = [ base blaze-html deepseq text ];
        description = "Display class for the HyperHaskell graphical Haskell interpreter";
        license = stdenv.lib.licenses.bsd3;
@@ -138774,8 +141153,8 @@ self: {
      }:
      mkDerivation {
        pname = "hzenity";
-       version = "0.3";
-       sha256 = "1kggc8xfdc5ychbciyzipyv6skfvyhrgjcb805vrpkz3l2b8h0g8";
+       version = "0.4";
+       sha256 = "1zyj7wnjcmv5pmgzn6cgly2zalys5i9waik17b4n46kk38f2pv1i";
        libraryHaskellDepends = [
          base containers data-default process process-extras text time
        ];
@@ -139057,6 +141436,17 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ rkrzr ];
      }) {};
 
+  "icfpc2020-galaxy" = callPackage
+    ({ mkDerivation, base, ghc-prim, transformers }:
+     mkDerivation {
+       pname = "icfpc2020-galaxy";
+       version = "0.2.0.0";
+       sha256 = "17m8vp3kikpscagb40972r9a8i6ng8wjc697zdslj5zl95rpyrvd";
+       libraryHaskellDepends = [ base ghc-prim transformers ];
+       description = "A strange message received at the Pegovka observatory";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "icon-fonts" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -139740,8 +142130,8 @@ self: {
      }:
      mkDerivation {
        pname = "ihaskell";
-       version = "0.10.1.1";
-       sha256 = "10rsdcc2l0gkhapvi5vzjc7m2bwv67k4iy3vjkx8i92jk6023y64";
+       version = "0.10.1.2";
+       sha256 = "1gs2j0qgxzf346nlnq0zx12yj528ykxia5r3rlldpf6f01zs89v8";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -140432,6 +142822,25 @@ self: {
        broken = true;
      }) {};
 
+  "immortal_0_2_2_1" = callPackage
+    ({ mkDerivation, base, lifted-base, monad-control, stm, tasty
+     , tasty-hunit, transformers, transformers-base
+     }:
+     mkDerivation {
+       pname = "immortal";
+       version = "0.2.2.1";
+       sha256 = "13lddk62byx8w41k80d24q31mmijacnqqz64zrrkls9si2ia2jpd";
+       libraryHaskellDepends = [
+         base lifted-base monad-control stm transformers-base
+       ];
+       testHaskellDepends = [
+         base lifted-base stm tasty tasty-hunit transformers
+       ];
+       description = "Spawn threads that never die (unless told to do so)";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "immortal" = callPackage
     ({ mkDerivation, base, stm, tasty, tasty-hunit, transformers
      , unliftio-core
@@ -140598,6 +143007,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "implicit-hie-cradle" = callPackage
+    ({ mkDerivation, base, base16-bytestring, bytestring, containers
+     , directory, extra, filepath, hie-bios, hslogger, implicit-hie
+     , process, temporary, text, time, transformers, unix-compat
+     , unordered-containers, vector, yaml
+     }:
+     mkDerivation {
+       pname = "implicit-hie-cradle";
+       version = "0.1.0.0";
+       sha256 = "0yyzfpmv5x2ivzjsjwngklxv5nkad987ns8w3g7h92s5j1fb7x82";
+       libraryHaskellDepends = [
+         base base16-bytestring bytestring containers directory extra
+         filepath hie-bios hslogger implicit-hie process temporary text time
+         transformers unix-compat unordered-containers vector yaml
+       ];
+       testHaskellDepends = [ base ];
+       description = "Auto generate hie-bios cradles";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "implicit-logging" = callPackage
     ({ mkDerivation, base, mtl, time, transformers }:
      mkDerivation {
@@ -140932,6 +143361,30 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "incremental-parser_0_5" = callPackage
+    ({ mkDerivation, base, bytestring, checkers, criterion, deepseq
+     , input-parsers, monoid-subclasses, parsers, QuickCheck
+     , rank2classes, tasty, tasty-quickcheck, text, transformers
+     }:
+     mkDerivation {
+       pname = "incremental-parser";
+       version = "0.5";
+       sha256 = "1r3lmk8y0rg7fb7633ngp68izd2939yv2123vrcmwrvdha99w0g6";
+       libraryHaskellDepends = [
+         base input-parsers monoid-subclasses parsers rank2classes
+         transformers
+       ];
+       testHaskellDepends = [
+         base checkers monoid-subclasses QuickCheck tasty tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion deepseq monoid-subclasses text
+       ];
+       description = "Generic parser library capable of providing partial results from partial input";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "incremental-sat-solver" = callPackage
     ({ mkDerivation, base, containers, mtl }:
      mkDerivation {
@@ -141259,30 +143712,30 @@ self: {
      }) {};
 
   "indigo" = callPackage
-    ({ mkDerivation, base, constraints, containers, fmt, hedgehog
-     , hspec-expectations, HUnit, lorentz, morley, morley-prelude
-     , reflection, singletons, tasty, tasty-discover, tasty-hedgehog
-     , tasty-hunit-compat, template-haskell, vinyl
+    ({ mkDerivation, base, cleveland, constraints, containers, fmt
+     , hedgehog, hspec-expectations, HUnit, lorentz, morley
+     , morley-prelude, reflection, singletons, tasty, tasty-discover
+     , tasty-hedgehog, tasty-hunit-compat, vinyl, with-utf8
      }:
      mkDerivation {
        pname = "indigo";
-       version = "0.1.0.0";
-       sha256 = "03bspqbw8iz25d58xvy18qzk7wrm5k48k6bvnnslkikqy2bnkcr1";
+       version = "0.2.1";
+       sha256 = "07zgqg6d4ijfvdg0q9lgfi545c903lc6mbcc9mzyfl4b3gpxqfpj";
        libraryHaskellDepends = [
          base constraints containers lorentz morley morley-prelude
-         reflection singletons template-haskell vinyl
+         reflection singletons vinyl with-utf8
        ];
        testHaskellDepends = [
-         base containers fmt hedgehog hspec-expectations HUnit lorentz
-         morley morley-prelude singletons tasty tasty-hedgehog
-         tasty-hunit-compat
+         base cleveland containers fmt hedgehog hspec-expectations HUnit
+         lorentz morley morley-prelude singletons tasty tasty-hedgehog
+         tasty-hunit-compat with-utf8
        ];
        testToolDepends = [ tasty-discover ];
        description = "Convenient imperative eDSL over Lorentz";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {};
+     }) {cleveland = null;};
 
   "inf-interval" = callPackage
     ({ mkDerivation, array, base, deepseq, QuickCheck, text, vector }:
@@ -141480,7 +143933,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "influxdb_1_8_0" = callPackage
+  "influxdb_1_9_0" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal
      , cabal-doctest, clock, containers, doctest, foldl, http-client
      , http-types, lens, network, optional-args, raw-strings-qq
@@ -141489,8 +143942,8 @@ self: {
      }:
      mkDerivation {
        pname = "influxdb";
-       version = "1.8.0";
-       sha256 = "02hpav4j9shrx4gbfdf2mdfx53x5q24s8qr3yvi7ia4ssbr0bcfd";
+       version = "1.9.0";
+       sha256 = "1d580f2j71x0iww0q2mg47jbhjsd83yarrnnmcp9f2bx7cix174v";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -141683,6 +144136,8 @@ self: {
        ];
        description = "Inline some Assembly in ur Haskell!";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "inline-c_0_5_6_1" = callPackage
@@ -141786,19 +144241,22 @@ self: {
      }) {};
 
   "inline-java" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, directory, filepath, ghc
-     , hspec, jni, jvm, language-java, mtl, process, template-haskell
-     , temporary, text
+    ({ mkDerivation, base, bytestring, Cabal, criterion, deepseq
+     , directory, filepath, ghc, hspec, jni, jvm, language-java, mtl
+     , process, singletons, template-haskell, temporary, text
      }:
      mkDerivation {
        pname = "inline-java";
-       version = "0.8.4";
-       sha256 = "1ddgwhk40g23lc71f8wbbfck9pqymil0syi14wsawc25sx6zb52v";
+       version = "0.9.1";
+       sha256 = "12p59gf4dk4q00zpjwp0bzgljfa0nhr32x5schg0hj9bgsj6c6pk";
        libraryHaskellDepends = [
          base bytestring Cabal directory filepath ghc jni jvm language-java
          mtl process template-haskell temporary text
        ];
        testHaskellDepends = [ base hspec jni jvm text ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq jni jvm singletons
+       ];
        description = "Java interop via inline Java code in Haskell modules";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -141837,8 +144295,6 @@ self: {
        ];
        description = "Seamlessly call R from Haskell and vice versa. No FFI required.";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) R;};
 
   "inliterate" = callPackage
@@ -141861,6 +144317,22 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "input-parsers" = callPackage
+    ({ mkDerivation, attoparsec, base, binary, bytestring
+     , monoid-subclasses, parsec, parsers, text, transformers
+     }:
+     mkDerivation {
+       pname = "input-parsers";
+       version = "0.1.0.1";
+       sha256 = "0wqp98ly2f9vnqd97q9jphmxqr284aal40dlrgi4hwy216p67vzz";
+       libraryHaskellDepends = [
+         attoparsec base binary bytestring monoid-subclasses parsec parsers
+         text transformers
+       ];
+       description = "Extension of the parsers library with more capability and efficiency";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "inquire" = callPackage
     ({ mkDerivation, aether, base, text }:
      mkDerivation {
@@ -142180,8 +144652,8 @@ self: {
        pname = "int-cast";
        version = "0.2.0.0";
        sha256 = "0s8rqm5d9f4y2sskajsw8ff7q8xp52vwqa18m6bajldp11m9a1p0";
-       revision = "2";
-       editedCabalFile = "1fhc91170q9q9k628wc3dqzdvxfjs97jzg5x7g0ndaqnh60l8cy5";
+       revision = "3";
+       editedCabalFile = "1b99lqxwbhg96iykfr2l7qd388cbx9sf8bln728505qgj6kgsvj7";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base QuickCheck test-framework test-framework-quickcheck2
@@ -142357,6 +144829,28 @@ self: {
        broken = true;
      }) {intel_aes = null;};
 
+  "intensional-datatys" = callPackage
+    ({ mkDerivation, aeson, base, containers, directory, extra
+     , filepath, ghc, hashable, haskeline, mtl, unordered-containers
+     }:
+     mkDerivation {
+       pname = "intensional-datatys";
+       version = "0.2.0.0";
+       sha256 = "194f5z6h1pl5jh26zl1rw3d16q60m04a3wdy16vfvwaj2w1bkgz2";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base containers directory extra filepath ghc hashable
+         haskeline mtl unordered-containers
+       ];
+       testHaskellDepends = [ base ];
+       doHaddock = false;
+       description = "A GHC Core plugin for intensional datatype refinement checking";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "interact" = callPackage
     ({ mkDerivation, base, bytestring, hspec, main-tester, mtl
      , silently
@@ -142565,6 +145059,8 @@ self: {
        ];
        description = "Tracery-like randomized text interpolation";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "interpol" = callPackage
@@ -142717,6 +145213,28 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "interpolator_1_1_0_2" = callPackage
+    ({ mkDerivation, aeson, base, containers, either, hspec
+     , mono-traversable, mtl, product-profunctors, profunctors
+     , QuickCheck, template-haskell, text
+     }:
+     mkDerivation {
+       pname = "interpolator";
+       version = "1.1.0.2";
+       sha256 = "1lrng3y109brnm6jlqnbhrdi38qgwlb0lymxjdv2yv71x7rwdgvf";
+       libraryHaskellDepends = [
+         aeson base containers either mono-traversable mtl
+         product-profunctors profunctors QuickCheck template-haskell text
+       ];
+       testHaskellDepends = [
+         aeson base containers either hspec mono-traversable mtl
+         product-profunctors profunctors QuickCheck template-haskell text
+       ];
+       description = "Runtime interpolation of environment variables in records using profunctors";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "interprocess" = callPackage
     ({ mkDerivation, base, typed-process }:
      mkDerivation {
@@ -142778,6 +145296,30 @@ self: {
        broken = true;
      }) {};
 
+  "interval-algebra" = callPackage
+    ({ mkDerivation, base, hspec, QuickCheck, time }:
+     mkDerivation {
+       pname = "interval-algebra";
+       version = "0.1.2";
+       sha256 = "1nhpcrp7r6ba9mqwrfkx0zk7awdw24kh75ggq1wcif6mpir2khkx";
+       libraryHaskellDepends = [ base time ];
+       testHaskellDepends = [ base hspec QuickCheck time ];
+       description = "An implementation of Allen's interval algebra for temporal logic";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "interval-functor" = callPackage
+    ({ mkDerivation, base, hedgehog, transformers }:
+     mkDerivation {
+       pname = "interval-functor";
+       version = "0.0.0.0";
+       sha256 = "0fkpqav61s47mjvfkhbg2hrx6p78v3jrs6vjj75aixccfg4k8n43";
+       libraryHaskellDepends = [ base transformers ];
+       testHaskellDepends = [ base hedgehog ];
+       description = "Intervals of functors";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "intervals" = callPackage
     ({ mkDerivation, array, base, Cabal, cabal-doctest, directory
      , distributive, doctest, filepath, ghc-prim, QuickCheck
@@ -142802,8 +145344,8 @@ self: {
     ({ mkDerivation, base, containers, text, vector, word8 }:
      mkDerivation {
        pname = "intmap-graph";
-       version = "1.1.0.0";
-       sha256 = "0yg88vvq53kbzw2r8i1w1g4am4bkp8qzgy9qsc7wknb3zwlzs89w";
+       version = "1.3.0.0";
+       sha256 = "0g4kf7d4yh29jlb5a2f8awjbmaan2f7m1ybkcihayp83lvjld4v0";
        libraryHaskellDepends = [ base containers text vector word8 ];
        description = "A graph library that allows to explore edges after their type";
        license = stdenv.lib.licenses.bsd3;
@@ -142869,15 +145411,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "intro_0_8_0_0" = callPackage
+  "intro_0_9_0_0" = callPackage
     ({ mkDerivation, base, bytestring, containers, extra, hashable
      , lens, mtl, optics, QuickCheck, safe, text, transformers
      , unordered-containers, writer-cps-mtl
      }:
      mkDerivation {
        pname = "intro";
-       version = "0.8.0.0";
-       sha256 = "1vmhmpcikxlmad2c55bdlsa7j1x30irjb7dp69qii650qslh2rf3";
+       version = "0.9.0.0";
+       sha256 = "0x48bj9nri2zhsjpwx08nvjmpsjq6zd61npa02zsf357wylxir0x";
        libraryHaskellDepends = [
          base bytestring containers extra hashable mtl safe text
          transformers unordered-containers writer-cps-mtl
@@ -143015,8 +145557,8 @@ self: {
      }:
      mkDerivation {
        pname = "invertible";
-       version = "0.2.0.5";
-       sha256 = "1fwdbg0pimi9hfyp20fsvyxpicjd7jxg4vsh5kykkxviyfhxl2ha";
+       version = "0.2.0.7";
+       sha256 = "1ngcmy59cyrg5idcn8a4gxg6ipq88rhhwhdb09gra8jcraq9n7ii";
        libraryHaskellDepends = [
          base haskell-src-meta invariant lens partial-isomorphisms
          semigroupoids template-haskell transformers
@@ -143033,18 +145575,14 @@ self: {
      }:
      mkDerivation {
        pname = "invertible-grammar";
-       version = "0.1.2";
-       sha256 = "1nf7dchcxs8wwd2hgfpf04qd63ws22pafjwb5911lq7da8k1y57j";
-       revision = "4";
-       editedCabalFile = "1574py7cbgig031kh2v52m0w2af0sr0lyaj20makwrm9g8g6k9k8";
+       version = "0.1.3";
+       sha256 = "160hw7p5mpajwmv8fps2gicqj3x3yr9w239pfnv9i5gsf4irnn9n";
        libraryHaskellDepends = [
          base bifunctors containers mtl prettyprinter profunctors semigroups
          tagged template-haskell text transformers
        ];
        description = "Invertible parsing combinators framework";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "invertible-hlist" = callPackage
@@ -143086,6 +145624,17 @@ self: {
        broken = true;
      }) {};
 
+  "involutive-semigroups" = callPackage
+    ({ mkDerivation, base, bytestring, containers, text, vector }:
+     mkDerivation {
+       pname = "involutive-semigroups";
+       version = "0.1.0.0";
+       sha256 = "1nms6w5b8apdz9xlwdqyj9n4m0b192simxg9zl7pv8zkyklyb3aw";
+       libraryHaskellDepends = [ base bytestring containers text vector ];
+       description = "Semigroups with involution";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "io-capture" = callPackage
     ({ mkDerivation, base, bytestring, hspec, hspec-core
      , streaming-bytestring, unix
@@ -143410,8 +145959,6 @@ self: {
        ];
        description = "Library for IP and MAC addresses";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ip-quoter" = callPackage
@@ -143445,8 +145992,8 @@ self: {
     ({ mkDerivation, base, binary, bytestring, iproute }:
      mkDerivation {
        pname = "ip2proxy";
-       version = "2.2.1";
-       sha256 = "08ywvg39n59i8p66fpapcpj722lkam7pyd38525p3w4z735d8842";
+       version = "3.0.0";
+       sha256 = "1hi1q0kiqqp96w29y9699s66rmyr7k0fp6s7z86ll9n3bmf0a4g4";
        libraryHaskellDepends = [ base binary bytestring iproute ];
        description = "IP2Proxy Haskell package for proxy detection";
        license = stdenv.lib.licenses.mit;
@@ -143528,8 +146075,8 @@ self: {
      }:
      mkDerivation {
        pname = "ipfs";
-       version = "1.0.3";
-       sha256 = "0m39ixc5xkk1r0k7d5hfszr2hp66i9xdab3y4iqcqxl45nf9q2f2";
+       version = "1.1.3";
+       sha256 = "0ndd4015s5mp2cxwg85zly8xw0wfpx2da9jj6p0hh015whk8p2fm";
        libraryHaskellDepends = [
          aeson base bytestring envy flow Glob ip lens monad-logger
          regex-compat rio servant-client servant-server swagger2 text vector
@@ -143717,8 +146264,8 @@ self: {
      }:
      mkDerivation {
        pname = "ipython-kernel";
-       version = "0.10.2.0";
-       sha256 = "0ylqbcs7xdhkm0if18f1cmz4144gx0p4r9wgggbzphfx8v8lhz9a";
+       version = "0.10.2.1";
+       sha256 = "016w7bmji3k1cnnl3vq35zq6fnqdvc2x762zfzv4ync2jz63rq38";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -143814,10 +146361,8 @@ self: {
      }:
      mkDerivation {
        pname = "irc-core";
-       version = "2.7.2";
-       sha256 = "1gpd28lxhqj2xj75nyyififn9434imvm0vqvx7zdw44fvg75lqyq";
-       revision = "1";
-       editedCabalFile = "1xkvy5igrx4ri8gmmwzxs2mq7ih57gps8a592ya6bv1crrm45cy2";
+       version = "2.8";
+       sha256 = "1msn18qxvwywwkqz2mv6d5awk29w3f3jqjdjw7dwvk5k25llmc3l";
        libraryHaskellDepends = [
          attoparsec base base64-bytestring bytestring hashable primitive
          text time vector
@@ -144129,6 +146674,19 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "isbn_1_1_0_1" = callPackage
+    ({ mkDerivation, base, hspec, text }:
+     mkDerivation {
+       pname = "isbn";
+       version = "1.1.0.1";
+       sha256 = "0s7b06a0d37bhb38k2my6g6brn6bywxr59kw2c103dp4y4kzrcpn";
+       libraryHaskellDepends = [ base text ];
+       testHaskellDepends = [ base hspec text ];
+       description = "ISBN Validation and Manipulation";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "isdicom" = callPackage
     ({ mkDerivation, base, directory, doctest, filepath, QuickCheck
      , template-haskell
@@ -145067,6 +147625,44 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "ixset-typed-binary-instance" = callPackage
+    ({ mkDerivation, base, binary, ixset-typed }:
+     mkDerivation {
+       pname = "ixset-typed-binary-instance";
+       version = "0.1.0.2";
+       sha256 = "1jgqc1ys5pvfkha8pyddz5f01qsmv9a83xw0q75njk8zhqajlyvx";
+       libraryHaskellDepends = [ base binary ixset-typed ];
+       description = "Binary instance for ixset-typed";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "ixset-typed-conversions" = callPackage
+    ({ mkDerivation, base, exceptions, free, hashable, ixset-typed
+     , unordered-containers, zipper-extra
+     }:
+     mkDerivation {
+       pname = "ixset-typed-conversions";
+       version = "0.1.1.0";
+       sha256 = "13nwxwxgsw7kj9kig643c48fadm6y9fjr0rsaggplqy903l4w5ks";
+       libraryHaskellDepends = [
+         base exceptions free hashable ixset-typed unordered-containers
+         zipper-extra
+       ];
+       description = "Conversions from ixset-typed to other containers";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "ixset-typed-hashable-instance" = callPackage
+    ({ mkDerivation, base, hashable, ixset-typed }:
+     mkDerivation {
+       pname = "ixset-typed-hashable-instance";
+       version = "0.1.0.2";
+       sha256 = "0bwajqlj1kpis2616lrmcymmag66fkmdrsrj0r3kf8j6090zxmyv";
+       libraryHaskellDepends = [ base hashable ixset-typed ];
+       description = "Hashable instance for ixset-typed";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "ixshader" = callPackage
     ({ mkDerivation, base, ghc-prim, indexed, language-glsl, parsec
      , prettyclass, singletons, template-haskell, text
@@ -145922,18 +148518,19 @@ self: {
 
   "jni" = callPackage
     ({ mkDerivation, base, bytestring, choice, constraints, containers
-     , cpphs, deepseq, inline-c, jdk, singletons
+     , cpphs, deepseq, hspec, inline-c, jdk, singletons
      }:
      mkDerivation {
        pname = "jni";
-       version = "0.6.1";
-       sha256 = "1z71vp8qskymgd4bjv8wxxjn34n49m28vnph0p0wbxgpz2wpn4hz";
+       version = "0.7.0";
+       sha256 = "0dznaw0aqkmmymabws4dg7d71acgj72gfn5r587bi5gq0x86sgr3";
        libraryHaskellDepends = [
          base bytestring choice constraints containers deepseq inline-c
          singletons
        ];
        librarySystemDepends = [ jdk ];
        libraryToolDepends = [ cpphs ];
+       testHaskellDepends = [ base hspec singletons ];
        description = "Complete JNI raw bindings";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -146092,28 +148689,27 @@ self: {
     ({ mkDerivation, aeson, attoparsec, base, base64-bytestring
      , bytestring, concise, containers, cryptonite, hspec, lens, memory
      , monad-time, mtl, network-uri, pem, QuickCheck
-     , quickcheck-instances, safe, semigroups, tasty, tasty-hspec
-     , tasty-quickcheck, template-haskell, text, time
-     , unordered-containers, vector, x509
+     , quickcheck-instances, safe, tasty, tasty-hspec, tasty-quickcheck
+     , template-haskell, text, time, unordered-containers, vector, x509
      }:
      mkDerivation {
        pname = "jose";
-       version = "0.8.3";
-       sha256 = "0izrbjcmsiv67d2vmiqgmnzn27pvs0kvka3rw5x33fwjgq0b3jyv";
+       version = "0.8.3.1";
+       sha256 = "14cbdah9khw8z876c1fn26asp1xa3azn7hh7a04chznmqagnmbmj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson attoparsec base base64-bytestring bytestring concise
          containers cryptonite lens memory monad-time mtl network-uri
-         QuickCheck quickcheck-instances safe semigroups template-haskell
-         text time unordered-containers vector x509
+         QuickCheck quickcheck-instances safe template-haskell text time
+         unordered-containers vector x509
        ];
        testHaskellDepends = [
          aeson attoparsec base base64-bytestring bytestring concise
          containers cryptonite hspec lens memory monad-time mtl network-uri
-         pem QuickCheck quickcheck-instances safe semigroups tasty
-         tasty-hspec tasty-quickcheck template-haskell text time
-         unordered-containers vector x509
+         pem QuickCheck quickcheck-instances safe tasty tasty-hspec
+         tasty-quickcheck template-haskell text time unordered-containers
+         vector x509
        ];
        description = "Javascript Object Signing and Encryption and JSON Web Token library";
        license = stdenv.lib.licenses.asl20;
@@ -146249,8 +148845,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle";
-       version = "0.9.7.0";
-       sha256 = "1hd1ybacng2qydf23dn4qggls2mmz21aay7q947ifdaxg83mv6aq";
+       version = "0.9.7.1";
+       sha256 = "1igkv5lvlbq0xl2dp6d8fp4ybwnwmgrc3r4sfjsric0bj8sq2k86";
        libraryHaskellDepends = [
          aeson attoparsec base base-compat base64-bytestring bytestring
          containers deepseq exceptions filepath ghc-prim http-types lens
@@ -146267,8 +148863,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-clib";
-       version = "0.9.7.0";
-       sha256 = "1n1mafr6gnfzmndjs4w7g813dx2khaq4knkhcaqbr2lsbr5yrmg1";
+       version = "0.9.7.1";
+       sha256 = "07s2iy136dm526mr7q43mxqq9qndg8jbi9kz1652qgl0ivn8lapc";
        libraryHaskellDepends = [
          aeson base base-compat bytestring data-default jsaddle text
        ];
@@ -146282,8 +148878,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-dom";
-       version = "0.9.4.0";
-       sha256 = "0k70x8dv67v585qm9ycb1m32cc47zvr2ka8nbqxazyw09i498h22";
+       version = "0.9.4.1";
+       sha256 = "190r17hfwkkwycj9ikdfvhvfpga30k5rnspib9hi8dygwxgifc6j";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
          base base-compat exceptions jsaddle lens text transformers
@@ -146316,8 +148912,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-warp";
-       version = "0.9.7.0";
-       sha256 = "09pqcnyy2pj48xm8qzs1jyav8a4si0bfw43w0qql74ak137ll60c";
+       version = "0.9.7.1";
+       sha256 = "1piyxxmik1bwdzkz46vgdhdp0gw4p01fww591zqbxzjk6rmrpby0";
        libraryHaskellDepends = [
          aeson base bytestring containers foreign-store http-types jsaddle
          stm text time transformers wai wai-websockets warp websockets
@@ -146341,8 +148937,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-webkit2gtk";
-       version = "0.9.7.0";
-       sha256 = "1q4sz2s95pknsr6r8cdqrlmw0b64q4nzllrlhb80knpfxamzyjzp";
+       version = "0.9.7.1";
+       sha256 = "0f2siaid0b03zrjzpb3lr9k9w5np2vml6apd961zd97dghvvhiix";
        libraryHaskellDepends = [
          aeson base bytestring directory gi-gio gi-glib gi-gtk
          gi-javascriptcore gi-webkit2 haskell-gi-base haskell-gi-overloading
@@ -146378,8 +148974,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-wkwebview";
-       version = "0.9.7.0";
-       sha256 = "04ni6q8x9c5zqmdm1kfp3yygcflpdf5hx4r568fm5b6rjxi3zhf6";
+       version = "0.9.7.1";
+       sha256 = "0dfaysw7fzmv2b62wi5id45f4i0x2vbjp9irbdkmv1h2z3ydwy20";
        libraryHaskellDepends = [
          aeson base bytestring containers data-default directory jsaddle
          text
@@ -146478,6 +149074,8 @@ self: {
        pname = "json-api-lib";
        version = "0.3.0.0";
        sha256 = "14lycfqjp3v6lnr4vqagps80dpvy8z6gs6sqq3qz184xyw4m2ini";
+       revision = "1";
+       editedCabalFile = "16k87v87lq2xf3rbig4229a2gc3p6s9a771g48a95xc0rk4k4hkk";
        libraryHaskellDepends = [
          aeson base containers data-default deepseq lens lens-aeson text
          unordered-containers uri-encode
@@ -147299,8 +149897,8 @@ self: {
      }:
      mkDerivation {
        pname = "json5hs";
-       version = "0.1.2.2";
-       sha256 = "19r1ripvalrhvlqdk0pvm18b4a8sibdwlc60i2yj7da10rdx5cv1";
+       version = "0.1.3.1";
+       sha256 = "18i01c0045c26s80g69wdgyk9aa3pj092z0s6hmq9z5xddid2s8h";
        libraryHaskellDepends = [
          array base bytestring containers mtl pretty syb text
        ];
@@ -147512,6 +150110,32 @@ self: {
        broken = true;
      }) {};
 
+  "jsop" = callPackage
+    ({ mkDerivation, aeson, base, containers, generics-sop, lens
+     , lens-aeson, monoidal-containers, protolude, string-interpolate
+     , tasty, tasty-discover, tasty-hspec, text, unordered-containers
+     }:
+     mkDerivation {
+       pname = "jsop";
+       version = "0.2.0.1";
+       sha256 = "05qacp69pk4fm1b1mrk2ax8f8mbfzsb71bkj2qraa116xym61j38";
+       libraryHaskellDepends = [
+         aeson base containers generics-sop lens lens-aeson
+         monoidal-containers protolude string-interpolate tasty
+         tasty-discover tasty-hspec text unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base containers generics-sop lens lens-aeson
+         monoidal-containers protolude string-interpolate tasty
+         tasty-discover tasty-hspec text unordered-containers
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Cherry picking in JSON objects";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "jspath" = callPackage
     ({ mkDerivation, base, bytestring, bytestring-trie, JSONb
      , utf8-string
@@ -147617,18 +150241,18 @@ self: {
      }) {};
 
   "juicy-gcode" = callPackage
-    ({ mkDerivation, base, configurator, lens, linear, matrix
+    ({ mkDerivation, base, configurator, gitrev, lens, linear, matrix
      , optparse-applicative, svg-tree, text
      }:
      mkDerivation {
        pname = "juicy-gcode";
-       version = "0.1.0.9";
-       sha256 = "02i1d3jfisxiyq63z9z7jlyscywbskmsxkx2xxv7v742xi4w5wrb";
+       version = "0.2.0.1";
+       sha256 = "1jpdxxfg3wdj9kz41a1pklyshrxxakf2bahcc7y1l7p7jklb3lbi";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base configurator lens linear matrix optparse-applicative svg-tree
-         text
+         base configurator gitrev lens linear matrix optparse-applicative
+         svg-tree text
        ];
        description = "SVG to G-Code converter";
        license = stdenv.lib.licenses.bsd3;
@@ -147639,17 +150263,17 @@ self: {
   "jukebox" = callPackage
     ({ mkDerivation, alex, array, base, containers, directory, dlist
      , filepath, minisat, pretty, process, symbol, transformers
-     , uglymemo
+     , uglymemo, utf8-string
      }:
      mkDerivation {
        pname = "jukebox";
-       version = "0.4.4";
-       sha256 = "0xjyyklwyzblgyakziwyh4420q1fcbqsss35dpxm592wd74wk0mw";
+       version = "0.5.2";
+       sha256 = "1nhz7rf8sczrhph0h9hia1vqxig1bcpc8v6zvxgrywmacl1mnky6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          array base containers directory dlist filepath minisat pretty
-         process symbol transformers uglymemo
+         process symbol transformers uglymemo utf8-string
        ];
        libraryToolDepends = [ alex ];
        executableHaskellDepends = [ base ];
@@ -147744,19 +150368,19 @@ self: {
   "jvm" = callPackage
     ({ mkDerivation, base, bytestring, choice, constraints, criterion
      , deepseq, distributed-closure, exceptions, hspec, jni, singletons
-     , text, vector
+     , template-haskell, text, vector
      }:
      mkDerivation {
        pname = "jvm";
-       version = "0.4.2";
-       sha256 = "1z3lk2f7bmhi8bj4v32fymjr2bf9czjd73qm6gk33z4mxknddwbh";
+       version = "0.5.0";
+       sha256 = "18n0b5bvy5hhq5x4ynbxa3zbqbh4z5isvzgg9h6hgs7366jyrqhf";
        libraryHaskellDepends = [
          base bytestring choice constraints distributed-closure exceptions
-         jni singletons text vector
+         jni singletons template-haskell text vector
        ];
        testHaskellDepends = [ base bytestring hspec jni text ];
        benchmarkHaskellDepends = [
-         base criterion deepseq jni singletons
+         base criterion deepseq jni singletons text
        ];
        description = "Call JVM methods from Haskell";
        license = stdenv.lib.licenses.bsd3;
@@ -147771,8 +150395,8 @@ self: {
      }:
      mkDerivation {
        pname = "jvm-batching";
-       version = "0.1.1";
-       sha256 = "06vxhlpvb8ilj0xm5k7chzpsn0f7m48l7728g2m7likh55rs2dxq";
+       version = "0.1.2";
+       sha256 = "1if6yklllgja48bhaqggvmhsx5klbscx2clq37am7vapic5gydai";
        setupHaskellDepends = [ base Cabal inline-java ];
        libraryHaskellDepends = [
          base bytestring distributed-closure inline-java jni jvm singletons
@@ -147849,8 +150473,8 @@ self: {
      }:
      mkDerivation {
        pname = "jvm-streaming";
-       version = "0.3.1";
-       sha256 = "0kgr2l1gcxy2z30xr89fx1f51h5yycphhh3mpf00wahlkdz7q6wd";
+       version = "0.3.2";
+       sha256 = "16qr1wb8ria2n26irpirfvgr43ibhjfypxbyvzc0vwi941m7np4m";
        setupHaskellDepends = [ base Cabal inline-java jvm-batching ];
        libraryHaskellDepends = [
          base distributed-closure inline-java jni jvm jvm-batching
@@ -148363,8 +150987,8 @@ self: {
      }:
      mkDerivation {
        pname = "katip";
-       version = "0.8.4.0";
-       sha256 = "0hkhvkdyk4m5pdr0yj1lbdwqvrfr7sq49jw683mk0lxjlyc39xm6";
+       version = "0.8.5.0";
+       sha256 = "1kjzsx4fqbknnv158ypg5jhmw7ww1rk1mf99g3dci09xg97wmgjk";
        libraryHaskellDepends = [
          aeson async auto-update base bytestring containers either hostname
          microlens microlens-th monad-control mtl old-locale resourcet
@@ -148871,8 +151495,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-i18n";
-       version = "0.6.0";
-       sha256 = "0xal6xq60yljn53qrxcgsm4jc630za8jfcqxxvlrr9g53kganmpc";
+       version = "0.7.0";
+       sha256 = "0k5cvnkc5r99r4361hn5jrmslvb21y3k2pj0dryiwbs21jwyv213";
        libraryHaskellDepends = [
          base directory filepath glib hgettext MissingK setlocale
          utf8-string
@@ -148887,8 +151511,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "keera-hails-mvc-controller";
-       version = "0.6.0";
-       sha256 = "0k1i443mmw2lrpsrh8dzfzcydfzs305b4np45bfc0hlb6czkc4p6";
+       version = "0.7.0";
+       sha256 = "1j7vhkghdh4hrap7g2xshpd2fw3acgwvi68f2c01mqmfi5dl4z2n";
        libraryHaskellDepends = [ base ];
        description = "Haskell on Gtk rails - Gtk-based controller for MVC applications";
        license = stdenv.lib.licenses.bsd3;
@@ -148900,8 +151524,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-mvc-environment-gtk";
-       version = "0.6.0";
-       sha256 = "0acrafqcjq01qbd68c8ch510ggz3x581jrfx411xh8y0ngk3ydjv";
+       version = "0.7.0";
+       sha256 = "0px1f9jpdgkd253bhgalxk5rxx971s0s2a845h81x6hy9wi7n6mf";
        libraryHaskellDepends = [
          base keera-hails-mvc-model-protectedmodel keera-hails-mvc-view
          keera-hails-mvc-view-gtk
@@ -148918,8 +151542,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-mvc-model-lightmodel";
-       version = "0.6.0";
-       sha256 = "0m2v5dsvjrx42m5psb2yw9jgwzn14yw4l3yswpm469wfdyli88n4";
+       version = "0.7.0";
+       sha256 = "0nklcgsadm2h62jwp8i419dwrsfs885cmglr5n39b7r1zy7dsa0f";
        libraryHaskellDepends = [
          base containers keera-hails-reactivevalues MissingK stm
          template-haskell
@@ -148936,8 +151560,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-mvc-model-protectedmodel";
-       version = "0.6.0";
-       sha256 = "19lb7yxfgrv074z0qcdqa7fdpjx1mgl1djcl6vaz8ydf69qqdyfn";
+       version = "0.7.0";
+       sha256 = "0vz4bcnm2p03c3x6qspii9kylcv4d0qlmzawm6x1f148srrwidi7";
        libraryHaskellDepends = [
          base containers keera-hails-reactivevalues MissingK stm
          template-haskell
@@ -149012,8 +151636,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-cbmvar";
-       version = "0.6.0";
-       sha256 = "0g9fb8h1japh0hp6bn02lcsm5cls1lk4hhyk7rbxfkrfiln1khqi";
+       version = "0.7.0";
+       sha256 = "085zli0s7p8f2ib2882q4qpqlh6czw62626fnrjiks4sff3f31c7";
        libraryHaskellDepends = [
          base keera-callbacks keera-hails-reactivevalues lens
        ];
@@ -149049,8 +151673,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-gtk";
-       version = "0.6.0";
-       sha256 = "1vr0dy8a44fdh4ilwgzm8g5vjdcq9ll145v47ghpn7z7dhlmbgki";
+       version = "0.7.0";
+       sha256 = "1xn5ar20x8kpiv1z6i5gcvm09xjgrdppjyxd2si8nyv7gw173scr";
        libraryHaskellDepends = [
          base bytestring cairo glib gtk gtk-helpers
          keera-hails-reactivevalues mtl transformers
@@ -149068,8 +151692,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-htmldom";
-       version = "0.6.0";
-       sha256 = "1hpkmxdhvvwjly860n4kk4ghw47a0yc92dn1ajkz0fc849zp2mpa";
+       version = "0.7.0";
+       sha256 = "05lz38pffm6k3kbw3g6gkslixq4nc764n1i4dxz9p6zwj27f6svc";
        libraryHaskellDepends = [
          base ghcjs-dom keera-callbacks keera-hails-reactive-cbmvar
          keera-hails-reactivevalues mtl transformers
@@ -149086,8 +151710,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-network";
-       version = "0.6.0";
-       sha256 = "0k0qfh10wv4rabvi2zgwsv97mz7nbvg3rvxfddh6i2hsa48cjvcf";
+       version = "0.7.0";
+       sha256 = "0qn1vz55fpvrx4l3lak0lkx0ggli8smf3r4za3zypgfv3a1q3rxm";
        libraryHaskellDepends = [
          base bytestring keera-hails-reactivevalues network network-bsd
        ];
@@ -149117,8 +151741,8 @@ self: {
     ({ mkDerivation, base, keera-hails-reactivevalues, wx, wxcore }:
      mkDerivation {
        pname = "keera-hails-reactive-wx";
-       version = "0.6.0";
-       sha256 = "1yspys7vqg3xm86j4k0wcih5f9iqi0n7f6vnc83gjl84c8w8zac1";
+       version = "0.7.0";
+       sha256 = "1cpwyqqcdnxc30qmny0rq0ww51vv8g241jwjis1sbs47hvwgvi27";
        libraryHaskellDepends = [
          base keera-hails-reactivevalues wx wxcore
        ];
@@ -149134,8 +151758,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-yampa";
-       version = "0.6.0";
-       sha256 = "19zxpl9wypy31nwn2ghjcbkvn5xwqfpp9rprkx5ilax3rjagcqcc";
+       version = "0.7.0";
+       sha256 = "178r5igwnvkbpz1hypiy4l61s3amr4j8bk1yvqc7jvs40cldiw1x";
        libraryHaskellDepends = [
          base keera-callbacks keera-hails-reactivevalues time Yampa
        ];
@@ -149165,8 +151789,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactivevalues";
-       version = "0.6.0";
-       sha256 = "1fji0axzj0558dczvzgkwpxnkszfdk3zgky933pdkpcq1cnjz0d3";
+       version = "0.7.0";
+       sha256 = "1dmsjyvrzh8rdp9kcc8ysar0zw9gaxqh231xaqy17ndfhlmp2nzq";
        libraryHaskellDepends = [ base contravariant ];
        testHaskellDepends = [
          base directory filepath hlint HUnit mtl process QuickCheck
@@ -149874,8 +152498,8 @@ self: {
      }:
      mkDerivation {
        pname = "knit";
-       version = "0.1.0.0";
-       sha256 = "0ypa7bj89zbkgyryms6nzwhqpp15hs52ynjvisdsng1xpgmf65dy";
+       version = "0.2.0.0";
+       sha256 = "0a1swv5w9fxissxqr2x61qijqyhdxs71fv21fjz4r0kcqywnvy6x";
        libraryHaskellDepends = [
          base bytestring containers deepseq hashtables vector
        ];
@@ -149887,30 +152511,33 @@ self: {
 
   "knit-haskell" = callPackage
     ({ mkDerivation, aeson-pretty, base, base64-bytestring
-     , blaze-colonnade, blaze-html, bytestring, case-insensitive
+     , blaze-colonnade, blaze-html, bytestring, case-insensitive, cereal
      , colonnade, constraints, containers, diagrams-lib, diagrams-svg
-     , directory, Glob, here, http-client, http-client-tls, http-types
-     , hvega, logging-effect, lucid, mtl, network, network-uri, pandoc
-     , plots, polysemy, polysemy-plugin, polysemy-RandomFu, polysemy-zoo
-     , prettyprinter, random, random-fu, random-source, svg-builder
-     , text, time
+     , directory, doctemplates, exceptions, Glob, here, http-client
+     , http-client-tls, http-types, hvega, lucid, monad-control, mtl
+     , network, network-uri, pandoc, plots, polysemy, polysemy-plugin
+     , polysemy-RandomFu, polysemy-zoo, prettyprinter, random, random-fu
+     , random-source, say, stm, store, streamly, streamly-bytestring
+     , svg-builder, text, time, transformers-base
      }:
      mkDerivation {
        pname = "knit-haskell";
-       version = "0.7.0.0";
-       sha256 = "06p802fx328hkl3d9rnbdvlmhh9fyx2l293hg65z5ad96c9xzwas";
+       version = "0.8.0.0";
+       sha256 = "1maq5s4f05fpd98nw2gljqcwgdr62hy5lpcblvybcyp2xqh8fc9i";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson-pretty base base64-bytestring blaze-colonnade blaze-html
-         bytestring case-insensitive colonnade constraints containers
-         diagrams-lib diagrams-svg directory Glob http-client
-         http-client-tls http-types hvega logging-effect lucid mtl network
-         network-uri pandoc polysemy polysemy-plugin polysemy-zoo
-         prettyprinter random random-fu random-source svg-builder text time
+         bytestring case-insensitive cereal colonnade constraints containers
+         diagrams-lib diagrams-svg directory doctemplates exceptions Glob
+         http-client http-client-tls http-types hvega lucid monad-control
+         mtl network network-uri pandoc polysemy polysemy-plugin
+         polysemy-zoo prettyprinter random say stm streamly
+         streamly-bytestring svg-builder text time transformers-base
        ];
        testHaskellDepends = [
-         base blaze-html colonnade containers here hvega mtl plots polysemy
-         polysemy-plugin polysemy-RandomFu random-fu random-source text
+         base blaze-html bytestring colonnade containers here hvega mtl
+         plots polysemy polysemy-plugin polysemy-RandomFu random-fu
+         random-source store streamly text
        ];
        description = "a minimal Rmarkdown sort-of-thing for haskell, by way of Pandoc";
        license = stdenv.lib.licenses.bsd3;
@@ -149989,8 +152616,8 @@ self: {
      }:
      mkDerivation {
        pname = "kontrakcja-templates";
-       version = "0.11";
-       sha256 = "09fivafr368kfj5pp0g9r13jvrihhcwhx9ay2f45qilcpv4qbb1r";
+       version = "0.12";
+       sha256 = "1asmsk3d4wqmiqsxnhaknmnrplrwq6cx6p7n7859rl6x7ac0fjg0";
        libraryHaskellDepends = [
          base containers directory exceptions HStringTemplate html json
          monad-control mtl time transformers transformers-base
@@ -150097,8 +152724,8 @@ self: {
      }:
      mkDerivation {
        pname = "krank";
-       version = "0.2.1";
-       sha256 = "0lg7g5zzjpzjvdzd7ps3dygiqp33891dph35jrf704hkf3ksmqs2";
+       version = "0.2.2";
+       sha256 = "10w6vbpcn9n07s99w02izg7nfizpbq5m5mg6zv46f1llm35jpv6w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -150211,28 +152838,57 @@ self: {
        broken = true;
      }) {egl = null; inherit (pkgs) glew;};
 
+  "ktx-codec" = callPackage
+    ({ mkDerivation, base, binary, bytestring, containers, directory
+     , filepath, shower, text, vector
+     }:
+     mkDerivation {
+       pname = "ktx-codec";
+       version = "0.0.1.1";
+       sha256 = "1qvkcmxilvlwsbp5pidkh3njwsj6k19ybz8jw5mcm90zdhx3gya0";
+       libraryHaskellDepends = [
+         base binary bytestring containers text vector
+       ];
+       testHaskellDepends = [
+         base binary bytestring containers directory filepath shower text
+         vector
+       ];
+       description = "Khronos texture format";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "kubernetes-client" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, connection, containers
-     , data-default-class, hspec, http-client, http-client-tls
-     , kubernetes-client-core, microlens, mtl, pem, safe-exceptions
-     , streaming-bytestring, text, tls, x509, x509-store, x509-system
+    ({ mkDerivation, aeson, attoparsec, base, base64-bytestring
+     , bytestring, connection, containers, data-default-class, either
+     , file-embed, filepath, hoauth2, hspec, hspec-attoparsec
+     , http-client, http-client-tls, jose-jwt, jsonpath
+     , kubernetes-client-core, microlens, mtl, oidc-client, pem
+     , safe-exceptions, stm, streaming-bytestring, text, time, timerep
+     , tls, typed-process, uri-bytestring, x509, x509-store, x509-system
      , x509-validation, yaml
      }:
      mkDerivation {
        pname = "kubernetes-client";
-       version = "0.1.0.1";
-       sha256 = "0fzilm4k7cq3k6vlx01c5gzg4lnrgpfdldbiml4rbiv42f13pr7j";
+       version = "0.2.0.0";
+       sha256 = "07vvp8yb7jx5cgn3siykkh7jdkkcxapclyp09q4n975fzd01waww";
        libraryHaskellDepends = [
-         aeson base bytestring connection containers data-default-class
-         http-client http-client-tls kubernetes-client-core microlens mtl
-         pem safe-exceptions streaming-bytestring text tls x509 x509-store
-         x509-system x509-validation
+         aeson attoparsec base base64-bytestring bytestring connection
+         containers data-default-class either filepath hoauth2 http-client
+         http-client-tls jose-jwt jsonpath kubernetes-client-core microlens
+         mtl oidc-client pem safe-exceptions stm streaming-bytestring text
+         time timerep tls typed-process uri-bytestring x509 x509-store
+         x509-system x509-validation yaml
        ];
        testHaskellDepends = [
-         aeson base bytestring connection containers data-default-class
-         hspec http-client http-client-tls kubernetes-client-core microlens
-         mtl pem safe-exceptions streaming-bytestring text tls x509
-         x509-store x509-system x509-validation yaml
+         aeson attoparsec base base64-bytestring bytestring connection
+         containers data-default-class either file-embed filepath hoauth2
+         hspec hspec-attoparsec http-client http-client-tls jose-jwt
+         jsonpath kubernetes-client-core microlens mtl oidc-client pem
+         safe-exceptions stm streaming-bytestring text time timerep tls
+         typed-process uri-bytestring x509 x509-store x509-system
+         x509-validation yaml
        ];
        description = "Client library for Kubernetes";
        license = stdenv.lib.licenses.asl20;
@@ -150250,10 +152906,8 @@ self: {
      }:
      mkDerivation {
        pname = "kubernetes-client-core";
-       version = "0.1.0.1";
-       sha256 = "08sxsc9a9vdsqp71zxnc309cng75k3c57mcmmryhpwwyscvgfnsk";
-       revision = "1";
-       editedCabalFile = "0qzh7zq36q57yfccna1izi1gz9fpki9ngnl8dgf3m6halrxwqlc7";
+       version = "0.2.0.0";
+       sha256 = "03f9h4cb02nj2g49grp3i22djc6zh2bqxl7yxkx1yf70fnqv2zcq";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring case-insensitive containers
          deepseq exceptions http-api-data http-client http-client-tls
@@ -150277,8 +152931,8 @@ self: {
      }:
      mkDerivation {
        pname = "kubernetes-webhook-haskell";
-       version = "0.2.0.2";
-       sha256 = "1zhknc4bpdm3xcynn1jm7yii615sj7xcq3mv31xlx4kc4bh566al";
+       version = "0.2.0.3";
+       sha256 = "1xvc35jibs2nizzp6xgdzzyx6fhgzgqb55a48vl1djbi84s8b4q1";
        libraryHaskellDepends = [
          aeson base base64-bytestring binary bytestring text
          unordered-containers
@@ -150840,8 +153494,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot";
-       version = "5.3";
-       sha256 = "0sw1ghxrgs0zr71icalcs2w03km5bgsrhcwckyil77sjgy0sqx5w";
+       version = "5.3.0.1";
+       sha256 = "0jkp4qr2d37pd0nr074fzrvjn95jg7x7zjwnddsqw5m4m2l1iqsr";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -150859,23 +153513,23 @@ self: {
   "lambdabot-core" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers
      , dependent-map, dependent-sum, dependent-sum-template, directory
-     , edit-distance, filepath, haskeline, hslogger, HTTP, lifted-base
-     , monad-control, mtl, network, network-bsd, parsec, prim-uniq
-     , random, random-fu, random-source, regex-tdfa, SafeSemaphore
-     , split, syb, template-haskell, time, transformers
+     , edit-distance, exceptions, filepath, haskeline, hslogger, HTTP
+     , lifted-base, monad-control, mtl, network, network-bsd, parsec
+     , prim-uniq, random, random-fu, random-source, regex-tdfa
+     , SafeSemaphore, split, syb, template-haskell, time, transformers
      , transformers-base, unix, utf8-string, zlib
      }:
      mkDerivation {
        pname = "lambdabot-core";
-       version = "5.3";
-       sha256 = "1rbqqrpf6pdvn9mwwh6j0mn6p9w4lf54ax4gkrqsczxqv8gf557s";
+       version = "5.3.0.1";
+       sha256 = "05xx68f3gpc7s1k8p81pwphmiznf7niradf52p39rss3nx8rr3ay";
        libraryHaskellDepends = [
          base binary bytestring containers dependent-map dependent-sum
-         dependent-sum-template directory edit-distance filepath haskeline
-         hslogger HTTP lifted-base monad-control mtl network network-bsd
-         parsec prim-uniq random random-fu random-source regex-tdfa
-         SafeSemaphore split syb template-haskell time transformers
-         transformers-base unix utf8-string zlib
+         dependent-sum-template directory edit-distance exceptions filepath
+         haskeline hslogger HTTP lifted-base monad-control mtl network
+         network-bsd parsec prim-uniq random random-fu random-source
+         regex-tdfa SafeSemaphore split syb template-haskell time
+         transformers transformers-base unix utf8-string zlib
        ];
        description = "Lambdabot core functionality";
        license = "GPL";
@@ -151052,8 +153706,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot-xmpp";
-       version = "0.1.0.4";
-       sha256 = "0jgj1vyfw26asnj6zxlfzax6hs3syn29c0abp5b7blzl27iy5pdm";
+       version = "0.1.0.5";
+       sha256 = "1lnha3ivh5hv54k21gl8pir3dbkdlnqdnz5nz5gxcdfajz9bqpxd";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -151523,10 +154177,8 @@ self: {
      }:
      mkDerivation {
        pname = "language-ats";
-       version = "1.7.10.1";
-       sha256 = "19m9qalh9xiaw6n60zbhs8yqhd0acq08bkx42i44vfmm0917jys3";
-       revision = "1";
-       editedCabalFile = "1g1dqii5hrr016g1n8sjz7qyzrnmy46zsfd9cp7hmkxqgjk35p8k";
+       version = "1.7.10.2";
+       sha256 = "10lanbzbaywyc3a8lq2ndgmpqq2kgpm4vkjxw7gl4irzjn3206yg";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          ansi-wl-pprint array base composition-prelude containers deepseq
@@ -151621,6 +154273,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "language-c_0_9" = callPackage
+    ({ mkDerivation, alex, array, base, bytestring, containers, deepseq
+     , directory, filepath, happy, mtl, pretty, process, syb
+     }:
+     mkDerivation {
+       pname = "language-c";
+       version = "0.9";
+       sha256 = "0a2z97ajdbql583jcganadi9frqj09cidqb1hlh0gl6w6aj82kii";
+       libraryHaskellDepends = [
+         array base bytestring containers deepseq directory filepath mtl
+         pretty process syb
+       ];
+       libraryToolDepends = [ alex happy ];
+       testHaskellDepends = [ base directory filepath process ];
+       description = "Analysis and generation of C code";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "language-c-comments" = callPackage
     ({ mkDerivation, alex, array, base, language-c }:
      mkDerivation {
@@ -151792,6 +154463,47 @@ self: {
        broken = true;
      }) {};
 
+  "language-dickinson" = callPackage
+    ({ mkDerivation, alex, array, base, binary, bytestring
+     , composition-prelude, containers, cpphs, criterion, deepseq
+     , directory, filepath, happy, haskeline, microlens, microlens-mtl
+     , mtl, optparse-applicative, pretty-simple, prettyprinter, random
+     , split, tasty, tasty-golden, tasty-hunit, template-haskell, text
+     , transformers, zstd
+     }:
+     mkDerivation {
+       pname = "language-dickinson";
+       version = "1.3.0.2";
+       sha256 = "1dldip54xd54kbfgc3kl79z86p6c4q37vx43r3qpymxpc85kid84";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         array base binary bytestring composition-prelude containers deepseq
+         directory filepath microlens microlens-mtl mtl prettyprinter random
+         split template-haskell text transformers
+       ];
+       libraryToolDepends = [ alex happy ];
+       executableHaskellDepends = [
+         base binary bytestring containers directory filepath haskeline
+         microlens microlens-mtl mtl optparse-applicative prettyprinter
+         random text zstd
+       ];
+       executableToolDepends = [ cpphs ];
+       testHaskellDepends = [
+         base bytestring filepath pretty-simple prettyprinter tasty
+         tasty-golden tasty-hunit text
+       ];
+       benchmarkHaskellDepends = [
+         base binary bytestring criterion text
+       ];
+       doHaddock = false;
+       description = "A language for generative literature";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "language-docker" = callPackage
     ({ mkDerivation, base, bytestring, containers, data-default-class
      , hspec, HUnit, megaparsec, prettyprinter, QuickCheck, split, text
@@ -151965,6 +154677,19 @@ self: {
        broken = true;
      }) {};
 
+  "language-gemini" = callPackage
+    ({ mkDerivation, base, text }:
+     mkDerivation {
+       pname = "language-gemini";
+       version = "0.1.0.0";
+       sha256 = "1pfx1vn3bmjmvf019gdw7pfibfg23spvcpg147gy8ymf4yr7rxz6";
+       revision = "1";
+       editedCabalFile = "0gkllr25h5msjvlcx1pch6a4ndm7yymdqh4ya95drc7gns0kz1zc";
+       libraryHaskellDepends = [ base text ];
+       description = "Datatypes and parsing/printing functions to represent the Gemini markup language";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "language-glsl" = callPackage
     ({ mkDerivation, base, HUnit, parsec, prettyclass, test-framework
      , test-framework-hunit
@@ -152467,10 +155192,8 @@ self: {
      }:
      mkDerivation {
        pname = "language-python";
-       version = "0.5.6";
-       sha256 = "10xjxyhfamywpydjrimfyk2379inqyi7k7ps41v0pi657ipvbgkr";
-       revision = "1";
-       editedCabalFile = "0394np5jdxz83qd2mzj0wlvdrp65rxifga4121jq18359r6pcf7f";
+       version = "0.5.8";
+       sha256 = "1mf3czvnh9582klv0c9g7pcn1wx4qjwpvhv8la6afaifv6y5lki2";
        libraryHaskellDepends = [
          array base containers monads-tf pretty transformers utf8-string
        ];
@@ -152502,8 +155225,8 @@ self: {
     ({ mkDerivation, base, language-python }:
      mkDerivation {
        pname = "language-python-test";
-       version = "0.5.4";
-       sha256 = "13pd76xv9bd5jdwfzmbi6074dqcpg4m99xxhycbgj3b6b2kmb4g3";
+       version = "0.5.8";
+       sha256 = "0gsh5sziznzsy623izx7fs1s68xdmgf4vmk8rwhmvh5hhxvyazb6";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base language-python ];
@@ -152851,6 +155574,8 @@ self: {
        pname = "lapack-ffi-tools";
        version = "0.1.2.1";
        sha256 = "0hk54psm066acgn24mw5dbbhz4a0nqvyks75302cabijbp524gdh";
+       revision = "1";
+       editedCabalFile = "1h5chlb66ycg96ab56hwqr4qk82l19gq1pg1zfzhfdl5byg24fln";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -153085,6 +155810,8 @@ self: {
        ];
        description = "Use actual LaTeX to render formulae inside Hakyll pages";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "latex-svg-image" = callPackage
@@ -153121,6 +155848,8 @@ self: {
        executableHaskellDepends = [ base latex-svg-image pandoc-types ];
        description = "Render LaTeX formulae in pandoc documents to images with an actual LaTeX";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "lattices" = callPackage
@@ -153159,8 +155888,8 @@ self: {
      }:
      mkDerivation {
        pname = "launchdarkly-server-sdk";
-       version = "2.0.0";
-       sha256 = "0dfs9nq3vcf8w2k1x51pixb4wb47rg9nzyjgfpzx6vip296ivyf7";
+       version = "2.0.1";
+       sha256 = "19jp9809jrh3swvsji5zgbqg4qg5gayv6bj0svq00wyzaisns3dd";
        libraryHaskellDepends = [
          aeson attoparsec base base16-bytestring bytestring
          bytestring-conversion clock containers cryptohash exceptions extra
@@ -153301,8 +156030,8 @@ self: {
      }:
      mkDerivation {
        pname = "layers-game";
-       version = "0.6.0";
-       sha256 = "03a8l2hmirhfnl7s07yq06szmwcr5lz2lapbpp22ryqjr3zpvwf6";
+       version = "0.7.0";
+       sha256 = "1v55940lpp9p67nnnqslzz175cbzs7sfdyinxws9dhwmjvpm4ix8";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -153962,6 +156691,8 @@ self: {
        ];
        description = "Yet another library for hidden Markov models";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "leb128" = callPackage
@@ -154305,12 +157036,10 @@ self: {
     ({ mkDerivation, accelerate, base, lens }:
      mkDerivation {
        pname = "lens-accelerate";
-       version = "0.2.0.0";
-       sha256 = "099vvakv7gq9sr9mh3hxj5byxxb4dw8lw7y1g3c4j1kz4gf2vxfk";
-       revision = "1";
-       editedCabalFile = "0ggm157i4bmgh7k0dv9zncgn4agwk7zn5wvsknxsnfqzy45qabi9";
+       version = "0.3.0.0";
+       sha256 = "1sk3iy5qv24mifx0gwd5z714lf3y3s4zpbff09mqk42whk2sdd0y";
        libraryHaskellDepends = [ accelerate base lens ];
-       description = "Instances to mix lens with accelerate";
+       description = "Instances to mix lens with Accelerate";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -154840,8 +157569,8 @@ self: {
        pname = "lentil";
        version = "1.3.2.0";
        sha256 = "134f9ijnd1dw2l9k5m1ay643pc4jqmq5kx17cnijb7ff93442s0n";
-       revision = "1";
-       editedCabalFile = "0i3khfhc2k9wnyb8bb0mkh5vn2p3f6q9n6vy8ndydz1dzaxg56bb";
+       revision = "2";
+       editedCabalFile = "0xijjp1ysybbd9n3f5vcaph1qdad5v9ynp0jia5aaizr34lwx94z";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -155214,6 +157943,21 @@ self: {
        broken = true;
      }) {};
 
+  "libBF" = callPackage
+    ({ mkDerivation, base, deepseq }:
+     mkDerivation {
+       pname = "libBF";
+       version = "0.5.1";
+       sha256 = "0iwbkfbp26z1zmnk28mnkvyh8k0i0bx56wl2jwygdnqvl5lmfv6i";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base deepseq ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       description = "A binding to the libBF library";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "libGenI" = callPackage
     ({ mkDerivation, base, binary, containers, HUnit, mtl, parsec
      , process, QuickCheck
@@ -155241,10 +157985,8 @@ self: {
      }:
      mkDerivation {
        pname = "libarchive";
-       version = "2.2.5.0";
-       sha256 = "0vsrjkg4ijk63rgsl7cqdi1inpnv7ballrg5c5pgrrapwxfb5v4x";
-       revision = "1";
-       editedCabalFile = "1yc1rjcrxsq2f5hadma9fzrxcmxi1wdb03ynskhza2ynz111hjk3";
+       version = "3.0.0.0";
+       sha256 = "0qwnp5jzmlvi7bpbh1dhz3lp91qf5phr8hb7m3h5q0a50d72dqpp";
        setupHaskellDepends = [ base Cabal chs-cabal ];
        libraryHaskellDepends = [
          base bytestring composition-prelude deepseq dlist filepath mtl
@@ -155262,6 +158004,8 @@ self: {
        ];
        description = "Haskell interface to libarchive";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) libarchive;};
 
   "libarchive-conduit" = callPackage
@@ -155363,6 +158107,26 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {ffi = null;};
 
+  "libfuse3" = callPackage
+    ({ mkDerivation, base, bytestring, clock, fuse3, resourcet, time
+     , unix
+     }:
+     mkDerivation {
+       pname = "libfuse3";
+       version = "0.1.1.0";
+       sha256 = "0jnh6by1k42h8kl78anh8lqwhymdz2xgynm82vidsd7jjzanmf3j";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring clock resourcet time unix
+       ];
+       libraryPkgconfigDepends = [ fuse3 ];
+       description = "A Haskell binding for libfuse-3.x";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) fuse3;};
+
   "libgit" = callPackage
     ({ mkDerivation, base, mtl, process }:
      mkDerivation {
@@ -155913,8 +158677,6 @@ self: {
        testPkgconfigDepends = [ libsodium ];
        description = "Low-level bindings to the libsodium C library";
        license = stdenv.lib.licenses.isc;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) libsodium;};
 
   "libssh2" = callPackage
@@ -156288,8 +159050,8 @@ self: {
      }:
      mkDerivation {
        pname = "lifted-async";
-       version = "0.10.0.6";
-       sha256 = "1nnhb9sdn5ilwzdrzk9hfchcgvk3kb28fciriqhhxzi2qqzmdxbj";
+       version = "0.10.1.2";
+       sha256 = "04spjv6l7bpdl3wla78yqg8misq5ym6vi4q8d03iaw2kg4cwn95x";
        libraryHaskellDepends = [
          async base constraints lifted-base monad-control transformers-base
        ];
@@ -156791,36 +159553,6 @@ self: {
      }:
      mkDerivation {
        pname = "linear";
-       version = "1.21";
-       sha256 = "1i00j740fpxrbdy1kjzwjxqixk975rd0dh6jxk0da622spabym5a";
-       revision = "1";
-       editedCabalFile = "1ld4165qy07iph2d6pq3rxqn8158bciga7m839rhsd1ay4sjxq2d";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       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
-       ];
-       testHaskellDepends = [
-         base binary bytestring deepseq doctest HUnit lens reflection
-         simple-reflect test-framework test-framework-hunit vector
-       ];
-       description = "Linear Algebra";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "linear_1_21_1" = callPackage
-    ({ mkDerivation, adjunctions, base, base-orphans, binary, bytes
-     , bytestring, Cabal, cabal-doctest, cereal, containers, deepseq
-     , distributive, doctest, 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
-     }:
-     mkDerivation {
-       pname = "linear";
        version = "1.21.1";
        sha256 = "0rwr8h9ddzbxrfxzdqsy841rj27xbvy73v20r2aml7jqzy0s3gqc";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -156836,7 +159568,6 @@ self: {
        ];
        description = "Linear Algebra";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "linear-accelerate" = callPackage
@@ -156845,10 +159576,8 @@ self: {
      }:
      mkDerivation {
        pname = "linear-accelerate";
-       version = "0.6.0.0";
-       sha256 = "1bwqbs4816xrrc0bcf3nllad1an7c8gv2n9d1qv3ybk7s4fw288s";
-       revision = "1";
-       editedCabalFile = "1sf1jqpymhkdl5xn1br13qkw3zyg7pqmmwcczcw19zpgwk4ai19v";
+       version = "0.7.0.0";
+       sha256 = "1rdbmchbvrg5g0ndfppswydn15qbp2k9dvx7wapfpy8971qqf2df";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          accelerate base distributive lens linear
@@ -157133,19 +159862,22 @@ self: {
      }) {};
 
   "lingo" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, directory
-     , filepath, hspec, raw-strings-qq, text, yaml
+    ({ mkDerivation, base, bytestring, containers, directory, filepath
+     , hspec, raw-strings-qq, text, yaml
      }:
      mkDerivation {
        pname = "lingo";
-       version = "0.3.2.0";
-       sha256 = "0qym6svpvxsxbhbppk0lkpp2zbqa13f0njkxnpyz5id581c3v8hx";
-       setupHaskellDepends = [
-         base bytestring Cabal containers directory filepath text yaml
-       ];
+       version = "0.5.0.1";
+       sha256 = "0h57g6r2n9q8asx35prn8p5mn35qnp8cy2pdrrpmrvhq7islwd8s";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
          base bytestring containers filepath raw-strings-qq text yaml
        ];
+       executableHaskellDepends = [
+         base bytestring containers directory filepath raw-strings-qq text
+         yaml
+       ];
        testHaskellDepends = [ base hspec ];
        description = "File extension based programming language detection";
        license = stdenv.lib.licenses.bsd3;
@@ -157451,8 +160183,8 @@ self: {
     ({ mkDerivation, base, bytestring, hashable, unix }:
      mkDerivation {
        pname = "linux-inotify";
-       version = "0.3.0.1";
-       sha256 = "0fir9qajp1vrgr8l6q6h0w2dh4rbi8ibhnni9wl1cnkv5h7rrg1l";
+       version = "0.3.0.2";
+       sha256 = "1dl71xkfjlwjsmv0mqf2fpkfjl3hyzk5q1drsykg7rdblpjfbzlc";
        libraryHaskellDepends = [ base bytestring hashable unix ];
        description = "Thinner binding to the Linux Kernel's inotify interface";
        license = stdenv.lib.licenses.bsd3;
@@ -157682,32 +160414,71 @@ self: {
        benchmarkHaskellDepends = [ aeson attoparsec base criterion text ];
        description = "Liquid template language library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
+     }) {};
+
+  "liquid-base" = callPackage
+    ({ mkDerivation, base, Cabal, liquid-ghc-prim, liquidhaskell }:
+     mkDerivation {
+       pname = "liquid-base";
+       version = "4.14.1.0";
+       sha256 = "0w5pwksyf8fbr8v8j5mshcysxlbz4lxdvmayc3pj8cm8xcdrvzkm";
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal liquidhaskell ];
+       libraryHaskellDepends = [ base liquid-ghc-prim liquidhaskell ];
+       description = "Drop-in base replacement for LiquidHaskell";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "liquid-bytestring" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, liquid-base
+     , liquidhaskell
+     }:
+     mkDerivation {
+       pname = "liquid-bytestring";
+       version = "0.10.10.0";
+       sha256 = "1fkl637zdxpsginnr0gqv68kch0dkr4yhmmmryzqy2h8fxm8gmg7";
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal liquidhaskell ];
+       libraryHaskellDepends = [ bytestring liquid-base liquidhaskell ];
+       description = "LiquidHaskell specs for the bytestring package";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "liquid-containers" = callPackage
+    ({ mkDerivation, base, Cabal, containers, liquid-base
+     , liquidhaskell
+     }:
+     mkDerivation {
+       pname = "liquid-containers";
+       version = "0.6.2.1";
+       sha256 = "07k9sg1q5xvsab2dvikkjb9rpx9rcabs4szm5rbh1m5mqnwivr1l";
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal liquidhaskell ];
+       libraryHaskellDepends = [ containers liquid-base liquidhaskell ];
+       description = "LiquidHaskell specs for the containers package";
+       license = stdenv.lib.licenses.bsd3;
      }) {};
 
   "liquid-fixpoint" = callPackage
     ({ mkDerivation, ansi-terminal, array, ascii-progress, async
      , attoparsec, base, binary, boxes, cereal, cmdargs, containers
-     , deepseq, directory, fgl, filepath, ghc-prim, git, hashable
-     , intern, mtl, nettools, ocaml, parallel, parsec, pretty, process
-     , stm, syb, tasty, tasty-ant-xml, tasty-hunit, tasty-rerun, text
-     , text-format, transformers, unordered-containers, z3
+     , deepseq, directory, fgl, filepath, git, hashable, intern, mtl
+     , nettools, ocaml, parallel, parsec, pretty, process, stm, syb
+     , tasty, tasty-ant-xml, tasty-hunit, tasty-rerun, text, text-format
+     , transformers, unordered-containers, z3
      }:
      mkDerivation {
        pname = "liquid-fixpoint";
-       version = "0.8.0.2";
-       sha256 = "1x8xbcf2xc9hwfpsl1s15qkmgdhr30fff4gp09dvnwi3z4mgi2wf";
-       revision = "1";
-       editedCabalFile = "013q8xj4ib5llyq9wmnx98dprw2zn4rkc1jndavcjjg2cwwrw56w";
+       version = "0.8.10.2";
+       sha256 = "1sdd88p5mz9xfqk9pbn138ixxdrq089iy5imskvhx66dwwrmrr8l";
        configureFlags = [ "-fbuild-external" ];
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          ansi-terminal array ascii-progress async attoparsec base binary
          boxes cereal cmdargs containers deepseq directory fgl filepath
-         ghc-prim hashable intern mtl parallel parsec pretty process syb
-         text text-format transformers unordered-containers
+         hashable intern mtl parallel parsec pretty process syb text
+         text-format transformers unordered-containers
        ];
        executableHaskellDepends = [ base ];
        executableSystemDepends = [ ocaml ];
@@ -157719,48 +160490,113 @@ self: {
        doCheck = false;
        description = "Predicate Abstraction-based Horn-Clause/Implication Constraint Solver";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) git; inherit (pkgs) nettools; 
          inherit (pkgs) ocaml; inherit (pkgs) z3;};
 
+  "liquid-ghc-prim" = callPackage
+    ({ mkDerivation, base, Cabal, ghc-prim, liquidhaskell }:
+     mkDerivation {
+       pname = "liquid-ghc-prim";
+       version = "0.6.1";
+       sha256 = "1zpb0izg4y98xz87ivn6rs5nfshvawrxyb5hc8jzif2p17j0aqpb";
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal liquidhaskell ];
+       libraryHaskellDepends = [ ghc-prim liquidhaskell ];
+       description = "Drop-in ghc-prim replacement for LiquidHaskell";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "liquid-parallel" = callPackage
+    ({ mkDerivation, base, Cabal, liquid-base, liquidhaskell, parallel
+     }:
+     mkDerivation {
+       pname = "liquid-parallel";
+       version = "3.2.2.0";
+       sha256 = "0dg0k1lx74p3lj3vc43wypy5a3lpnww5w456ccp4xy3k83b3c4xd";
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal liquidhaskell ];
+       libraryHaskellDepends = [ liquid-base liquidhaskell parallel ];
+       description = "LiquidHaskell specs for the parallel package";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "liquid-platform" = callPackage
+    ({ mkDerivation }:
+     mkDerivation {
+       pname = "liquid-platform";
+       version = "0.8.10.2";
+       sha256 = "1rhpq04nl9gcm9rwjd261ssn8q59pdcpfna0xwkcv3gmkgirwzgf";
+       isLibrary = false;
+       isExecutable = true;
+       description = "A battery-included platform for LiquidHaskell";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "liquid-prelude" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, liquid-base
+     , liquidhaskell
+     }:
+     mkDerivation {
+       pname = "liquid-prelude";
+       version = "0.8.10.2";
+       sha256 = "0s52kd2x4h24j6z7cjkrarnqr7kp198qal55y84740rllskv3ijh";
+       setupHaskellDepends = [ base Cabal liquidhaskell ];
+       libraryHaskellDepends = [
+         bytestring containers liquid-base liquidhaskell
+       ];
+       description = "General utility modules for LiquidHaskell";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "liquid-vector" = callPackage
+    ({ mkDerivation, base, Cabal, liquid-base, liquidhaskell, vector }:
+     mkDerivation {
+       pname = "liquid-vector";
+       version = "0.12.1.2";
+       sha256 = "1kpa7c5a774ixqky3msp2xnq1nl16hh95azvaxdk0bhizfi3zjy3";
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal liquidhaskell ];
+       libraryHaskellDepends = [ liquid-base liquidhaskell vector ];
+       description = "LiquidHaskell specs for the vector package";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "liquidhaskell" = callPackage
-    ({ mkDerivation, aeson, base, binary, bytestring, cereal, cmdargs
-     , containers, data-default, deepseq, Diff, directory, filepath
-     , fingertree, ghc, ghc-boot, ghc-paths, ghc-prim, githash, gitrev
-     , hashable, hscolour, liquid-fixpoint, mtl, optparse-applicative
-     , optparse-simple, parsec, pretty, process, stm, syb, tagged, tasty
-     , tasty-ant-xml, tasty-hunit, tasty-rerun, template-haskell
+    ({ mkDerivation, aeson, base, binary, bytestring, Cabal, cereal
+     , cmdargs, containers, data-default, deepseq, Diff, directory
+     , extra, filepath, fingertree, ghc, ghc-boot, ghc-paths, ghc-prim
+     , githash, gitrev, hashable, hscolour, liquid-fixpoint, mtl, optics
+     , optparse-applicative, optparse-simple, parsec, pretty, process
+     , split, stm, string-conv, syb, tagged, tasty, tasty-ant-xml
+     , tasty-golden, tasty-hunit, tasty-rerun, template-haskell
      , temporary, text, time, transformers, unordered-containers, vector
      , z3
      }:
      mkDerivation {
        pname = "liquidhaskell";
-       version = "0.8.6.2";
-       sha256 = "1hqs1zfcz4fprrrcwj3j731ksldviafivk0kv2hprslmz4m1kfb2";
-       revision = "1";
-       editedCabalFile = "14mvnjgd65n6j2zlzw0c679zvlik02cn6x8rhxm3rb1155zybjil";
+       version = "0.8.10.2";
+       sha256 = "0byh5lia3kb44sgmilya881dp9il3n5qvrn16brnkvl9xhr9rdyi";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson base binary bytestring cereal cmdargs containers data-default
-         deepseq Diff directory filepath fingertree ghc ghc-boot ghc-paths
-         ghc-prim githash gitrev hashable hscolour liquid-fixpoint mtl
-         optparse-simple parsec pretty syb template-haskell temporary text
-         time transformers unordered-containers vector
+         aeson base binary bytestring Cabal cereal cmdargs containers
+         data-default deepseq Diff directory extra filepath fingertree ghc
+         ghc-boot ghc-paths ghc-prim githash gitrev hashable hscolour
+         liquid-fixpoint mtl optics optparse-applicative optparse-simple
+         parsec pretty split syb template-haskell temporary text time
+         transformers unordered-containers vector
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
-         base containers directory filepath liquid-fixpoint mtl
-         optparse-applicative parsec process stm syb tagged tasty
-         tasty-ant-xml tasty-hunit tasty-rerun text transformers
+         base containers directory extra filepath ghc liquid-fixpoint mtl
+         optparse-applicative parsec process stm string-conv syb tagged
+         tasty tasty-ant-xml tasty-golden tasty-hunit tasty-rerun text
+         transformers
        ];
        testSystemDepends = [ z3 ];
        description = "Liquid Types for Haskell";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) z3;};
 
   "liquidhaskell-cabal" = callPackage
@@ -157965,8 +160801,6 @@ self: {
        testHaskellDepends = [ base-prelude HTF mmorph mtl-prelude ];
        description = "ListT done right";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "list-t-attoparsec" = callPackage
@@ -158831,12 +161665,17 @@ self: {
      }) {};
 
   "llvm-pretty" = callPackage
-    ({ mkDerivation, base, containers, monadLib, parsec, pretty }:
+    ({ mkDerivation, base, containers, microlens, microlens-th
+     , monadLib, parsec, pretty, template-haskell, th-abstraction
+     }:
      mkDerivation {
        pname = "llvm-pretty";
-       version = "0.7.1.1";
-       sha256 = "17lb4jfkaxz2ahjfvq2mxnb82k209qg13rhdg76v3j8yahr5z0a2";
-       libraryHaskellDepends = [ base containers monadLib parsec pretty ];
+       version = "0.11.0";
+       sha256 = "17jw5i68fz2vk40dcqf8k7j6j6h8acg4fhnyygb72jbk17md4q94";
+       libraryHaskellDepends = [
+         base containers microlens microlens-th monadLib parsec pretty
+         template-haskell th-abstraction
+       ];
        description = "A pretty printing library inspired by the llvm binding";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -159199,19 +162038,21 @@ self: {
      }) {};
 
   "locators" = callPackage
-    ({ mkDerivation, base, bytestring, containers, cryptohash, hspec
-     , HUnit, QuickCheck
+    ({ mkDerivation, base, bytestring, containers, cryptonite, hspec
+     , HUnit, memory, QuickCheck
      }:
      mkDerivation {
        pname = "locators";
-       version = "0.2.4.4";
-       sha256 = "19csw13qbxxv7lr3blx856k2y21sidgpnv56dq45la3f4100jv9d";
-       libraryHaskellDepends = [ base bytestring containers cryptohash ];
+       version = "0.3.0.3";
+       sha256 = "1rjlgjm41mxflq4b7y7cl86mlkdlh5lgxsm40lmy1lwfcx7l2fmq";
+       libraryHaskellDepends = [
+         base bytestring containers cryptonite memory
+       ];
        testHaskellDepends = [
-         base bytestring containers cryptohash hspec HUnit QuickCheck
+         base bytestring containers cryptonite hspec HUnit QuickCheck
        ];
        description = "Human exchangable identifiers and locators";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.mit;
      }) {};
 
   "loch" = callPackage
@@ -159425,18 +162266,19 @@ self: {
 
   "log-elasticsearch" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, base64-bytestring
-     , bloodhound, bytestring, deepseq, http-client, http-client-tls
-     , log-base, semigroups, text, text-show, time, transformers
-     , unordered-containers, vector
+     , bytestring, deepseq, http-client, http-client-tls, http-types
+     , log-base, network-uri, semigroups, text, text-show, time
+     , transformers, unordered-containers, vector
      }:
      mkDerivation {
        pname = "log-elasticsearch";
-       version = "0.10.2.0";
-       sha256 = "0kcixyklnak34v8vmmpw8vpm1mvf3wll6xpcdvfg1c75wc9n1hqy";
+       version = "0.11.0.0";
+       sha256 = "1l64mxk3zmlfsqwlhsq62jp8rawj3jbw9izihg7555q51pbqlg5w";
        libraryHaskellDepends = [
-         aeson aeson-pretty base base64-bytestring bloodhound bytestring
-         deepseq http-client http-client-tls log-base semigroups text
-         text-show time transformers unordered-containers vector
+         aeson aeson-pretty base base64-bytestring bytestring deepseq
+         http-client http-client-tls http-types log-base network-uri
+         semigroups text text-show time transformers unordered-containers
+         vector
        ];
        description = "Structured logging solution (Elasticsearch back end)";
        license = stdenv.lib.licenses.bsd3;
@@ -159666,8 +162508,8 @@ self: {
      }:
      mkDerivation {
        pname = "logging-effect";
-       version = "1.3.10";
-       sha256 = "0d03ma5sq0aqkb42jy0531d4vkn1ci0gcs8vj3xd6ac4hwr0qcwm";
+       version = "1.3.11";
+       sha256 = "1r5qfip5xl22hq2v27b1lkcknixmc40wm7iya7vs3mrnwyavpmdb";
        libraryHaskellDepends = [
          async base exceptions free monad-control mtl prettyprinter
          semigroups stm stm-delay text time transformers transformers-base
@@ -159679,6 +162521,8 @@ self: {
        ];
        description = "A mtl-style monad transformer for general purpose & compositional logging";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "logging-effect-extra" = callPackage
@@ -159851,8 +162695,8 @@ self: {
     ({ mkDerivation, base, mtl, tasty, tasty-hunit }:
      mkDerivation {
        pname = "logict";
-       version = "0.7.0.2";
-       sha256 = "1xfgdsxg0lp8m0a2cb83rcxrnnc37asfikay2kydi933anh9ihfc";
+       version = "0.7.0.3";
+       sha256 = "0psihirap7mrn3ly1h9dvgvgjsqbqwji8m13fm48zl205mpfh73r";
        libraryHaskellDepends = [ base mtl ];
        testHaskellDepends = [ base mtl tasty tasty-hunit ];
        description = "A backtracking logic-programming monad";
@@ -160399,31 +163243,21 @@ self: {
 
   "lorentz" = callPackage
     ({ mkDerivation, aeson-pretty, base, bimap, bytestring, constraints
-     , containers, data-default, filepath, first-class-families, fmt
-     , formatting, ghc-prim, hedgehog, HUnit, interpolate, lens, morley
-     , morley-prelude, mtl, named, optparse-applicative, pretty-terminal
-     , QuickCheck, singletons, spoon, tasty, tasty-discover
-     , tasty-hedgehog, tasty-hunit-compat, template-haskell, text
-     , type-spec, unordered-containers, vinyl
+     , containers, data-default, first-class-families, fmt, interpolate
+     , lens, morley, morley-prelude, mtl, named, optparse-applicative
+     , pretty-terminal, QuickCheck, singletons, text
+     , unordered-containers, vinyl
      }:
      mkDerivation {
        pname = "lorentz";
-       version = "0.4.0";
-       sha256 = "1wihk6vmcnc7bcy3xayffdivkqfjjcb8zg3bdkqhnnfvccmwyckg";
+       version = "0.6.0";
+       sha256 = "1mzw2m46g5gffhihjfwimrhwqlky3z420b5wifdvxybm5vfc0qm2";
        libraryHaskellDepends = [
          aeson-pretty base bimap bytestring constraints containers
-         data-default first-class-families fmt formatting ghc-prim hedgehog
-         HUnit interpolate lens morley morley-prelude mtl named
-         optparse-applicative pretty-terminal QuickCheck singletons
-         template-haskell text unordered-containers vinyl
+         data-default first-class-families fmt interpolate lens morley
+         morley-prelude mtl named optparse-applicative pretty-terminal
+         QuickCheck singletons text unordered-containers vinyl
        ];
-       testHaskellDepends = [
-         base bimap bytestring constraints containers filepath
-         first-class-families fmt formatting hedgehog HUnit morley
-         morley-prelude singletons spoon tasty tasty-hedgehog
-         tasty-hunit-compat text type-spec unordered-containers vinyl
-       ];
-       testToolDepends = [ tasty-discover ];
        description = "EDSL for the Michelson Language";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -160616,6 +163450,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "lrucaching-haxl" = callPackage
+    ({ mkDerivation, base, hashable, haxl, lrucaching, psqueues }:
+     mkDerivation {
+       pname = "lrucaching-haxl";
+       version = "0.1.0.0";
+       sha256 = "0pn2f671ak1grzjigyvan5wagh9vyqhsz86jfy1z281rd2pw4gk2";
+       libraryHaskellDepends = [ base hashable haxl lrucaching psqueues ];
+       description = "Combine lrucaching and haxl";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "ls-usb" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, base-unicode-symbols
      , cmdtheline, text, usb, usb-id-database, vector
@@ -160680,7 +163527,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "lsp-test_0_11_0_2" = callPackage
+  "lsp-test_0_11_0_4" = 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
@@ -160689,8 +163536,8 @@ self: {
      }:
      mkDerivation {
        pname = "lsp-test";
-       version = "0.11.0.2";
-       sha256 = "0sl2n38q9xa3hr8psjrwlw2mq63vanjdyn5vry6mp87l8vba9s8f";
+       version = "0.11.0.4";
+       sha256 = "0nf0ys44q2n81arg7ll08dkilq8giz0gxarld2lpq5fyhhfvyv7g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -160945,6 +163792,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "lucid-cdn" = callPackage
+    ({ mkDerivation, base, lucid }:
+     mkDerivation {
+       pname = "lucid-cdn";
+       version = "0.2.0.0";
+       sha256 = "1b4s4yfhxnixc33kz0hnj2v5vrwag4vnssp8ma0vjgh17b9g4qzr";
+       libraryHaskellDepends = [ base lucid ];
+       description = "Curated list of CDN imports for lucid";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "lucid-colonnade" = callPackage
     ({ mkDerivation, base, colonnade, lucid, text }:
      mkDerivation {
@@ -161398,14 +164256,44 @@ self: {
        broken = true;
      }) {};
 
+  "lz4-frame-conduit" = callPackage
+    ({ mkDerivation, base, bytestring, conduit, conduit-extra
+     , containers, hspec, inline-c, optparse-applicative, QuickCheck
+     , raw-strings-qq, resourcet, template-haskell, text, unliftio
+     , unliftio-core
+     }:
+     mkDerivation {
+       pname = "lz4-frame-conduit";
+       version = "0.1.0.0";
+       sha256 = "0nvvf42m4vbadl869hgyqrzbzbxp9q7rlbrldi4y6zw48ig21r1d";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring conduit conduit-extra containers inline-c
+         raw-strings-qq resourcet template-haskell unliftio unliftio-core
+       ];
+       executableHaskellDepends = [
+         base bytestring conduit conduit-extra optparse-applicative
+         resourcet text
+       ];
+       testHaskellDepends = [
+         base bytestring conduit conduit-extra hspec QuickCheck resourcet
+         unliftio-core
+       ];
+       description = "Conduit implementing the official LZ4 frame streaming format";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "lz4-hs" = callPackage
     ({ mkDerivation, base, bytestring, c2hs, criterion, filepath, tasty
      , tasty-hunit, temporary
      }:
      mkDerivation {
        pname = "lz4-hs";
-       version = "0.1.4.1";
-       sha256 = "15jm8lbwhgp29yvnwsxsmbixvgpxrnw7jc96zwmzbqx365r4dfqr";
+       version = "0.1.5.0";
+       sha256 = "0qqv6n7hjcjkc1pzhwkdr9l1kfb8rqndx2lfm6j4bhmvrwwrn8lw";
        libraryHaskellDepends = [ base bytestring ];
        libraryToolDepends = [ c2hs ];
        testHaskellDepends = [ base bytestring tasty tasty-hunit ];
@@ -161899,8 +164787,8 @@ self: {
      }:
      mkDerivation {
        pname = "mackerel-client";
-       version = "0.2.0";
-       sha256 = "05x0c05h3k8c1qrxmmi4dlj1wxpmfqj6n3man5cqpqp0sxayxv9c";
+       version = "0.3.0";
+       sha256 = "1gzrj2nf3v7d55ddfmjvxijcg78l671b18av25hzsr9ymbbljafb";
        libraryHaskellDepends = [
          aeson base bytestring data-default directory filepath htoml
          http-client http-client-tls http-types parsec split text
@@ -162158,12 +165046,14 @@ self: {
      }) {};
 
   "magma" = callPackage
-    ({ mkDerivation, base, deepseq, profunctors, semigroups }:
+    ({ mkDerivation, base, deepseq, ghc-prim, profunctors, semigroups
+     }:
      mkDerivation {
        pname = "magma";
-       version = "0.5.0.0";
-       sha256 = "17ca22bs44whr597p7shv4fnpngbrb8vdxs6zbglfhb69bgjljyy";
+       version = "0.6.0.0";
+       sha256 = "054drdwpks29mf22imwng8k6i7701yl9hijb4wh2a8wa4axssn9w";
        libraryHaskellDepends = [ base deepseq profunctors semigroups ];
+       testHaskellDepends = [ base ghc-prim ];
        description = "magma is an algebraic structure";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -162540,6 +165430,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "managed_1_0_8" = callPackage
+    ({ mkDerivation, base, transformers }:
+     mkDerivation {
+       pname = "managed";
+       version = "1.0.8";
+       sha256 = "00wzfy9facwgimrilz7bxaigr79w10733h8zfgyhll644p2rnz38";
+       libraryHaskellDepends = [ base transformers ];
+       description = "A monad for managed values";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "manatee" = callPackage
     ({ mkDerivation, base, binary, cairo, containers, dbus-client
      , dbus-core, derive, directory, filepath, gtk, gtk-serialized-event
@@ -163694,8 +166596,8 @@ self: {
      }:
      mkDerivation {
        pname = "mason";
-       version = "0.2.1";
-       sha256 = "08na34n8f8r9r2z95dfnkvsbc0w76x0ic8yxvpxnykax7n2xhpia";
+       version = "0.2.2";
+       sha256 = "1wck31lm5ms99r0aji8mkr0ax78i9z0qzz7gy9ihwriwwhyl9yiz";
        libraryHaskellDepends = [
          array base bytestring ghc-prim integer-gmp network text
        ];
@@ -163704,16 +166606,39 @@ self: {
      }) {};
 
   "massiv" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, cabal-doctest
-     , data-default-class, deepseq, doctest, exceptions
-     , mersenne-random-pure64, primitive, QuickCheck, random, scheduler
-     , splitmix, template-haskell, unliftio-core, vector
+    ({ mkDerivation, base, bytestring, data-default-class, deepseq
+     , doctest, exceptions, mersenne-random-pure64, primitive
+     , QuickCheck, random, scheduler, splitmix, template-haskell
+     , unliftio-core, vector
      }:
      mkDerivation {
        pname = "massiv";
-       version = "0.5.2.0";
-       sha256 = "0j44as40bgzjixiga4l06gr3fpgk8vifmz2y12asczxwfv6k0xp1";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.5.3.2";
+       sha256 = "0fprcp231ynl9rax7xniqfr8ryavcbgc0j2h6w3c11n8bnrabrrr";
+       libraryHaskellDepends = [
+         base bytestring data-default-class deepseq exceptions primitive
+         scheduler unliftio-core vector
+       ];
+       testHaskellDepends = [
+         base doctest mersenne-random-pure64 QuickCheck random splitmix
+         template-haskell
+       ];
+       description = "Massiv (Массив) is an Array Library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "massiv_0_5_4_0" = callPackage
+    ({ mkDerivation, base, bytestring, data-default-class, deepseq
+     , doctest, exceptions, mersenne-random-pure64, primitive
+     , QuickCheck, random, scheduler, splitmix, template-haskell
+     , unliftio-core, vector
+     }:
+     mkDerivation {
+       pname = "massiv";
+       version = "0.5.4.0";
+       sha256 = "0dmm6x5izmjl1l803fvmxzqrh0jpg56z2aid228a4c44n620dzln";
        libraryHaskellDepends = [
          base bytestring data-default-class deepseq exceptions primitive
          scheduler unliftio-core vector
@@ -163807,15 +166732,39 @@ self: {
      }:
      mkDerivation {
        pname = "massiv-test";
-       version = "0.1.3";
-       sha256 = "1pkqaw43vzsh19ycr6pp817wq2k06gpkxqn8i09dkfzddbgymkf6";
+       version = "0.1.3.1";
+       sha256 = "0nwrfxi77w2xmmy7j7fh6kb06hzhmxl8vagdb856xmr9cbq02nj5";
        libraryHaskellDepends = [
          base bytestring data-default-class deepseq exceptions hspec massiv
          primitive QuickCheck scheduler unliftio vector
        ];
        testHaskellDepends = [
          base bytestring containers data-default deepseq genvalidity-hspec
-         hspec massiv mwc-random QuickCheck scheduler vector
+         hspec massiv mwc-random primitive QuickCheck scheduler vector
+       ];
+       description = "Library that contains generators, properties and tests for Massiv Array Library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "massiv-test_0_1_4" = callPackage
+    ({ mkDerivation, base, bytestring, containers, data-default
+     , data-default-class, deepseq, exceptions, genvalidity-hspec, hspec
+     , massiv, mwc-random, primitive, QuickCheck, scheduler, unliftio
+     , vector
+     }:
+     mkDerivation {
+       pname = "massiv-test";
+       version = "0.1.4";
+       sha256 = "1qhvph2s6bkw3zb43arq1zvrfyr09phqjwxhzsqxi2x2fcrdyvyn";
+       libraryHaskellDepends = [
+         base bytestring data-default-class deepseq exceptions hspec massiv
+         primitive QuickCheck scheduler unliftio vector
+       ];
+       testHaskellDepends = [
+         base bytestring containers data-default deepseq genvalidity-hspec
+         hspec massiv mwc-random primitive QuickCheck scheduler vector
        ];
        description = "Library that contains generators, properties and tests for Massiv Array Library";
        license = stdenv.lib.licenses.bsd3;
@@ -163870,6 +166819,8 @@ self: {
        pname = "matchable";
        version = "0.1.2";
        sha256 = "0wrbq9pqndr9rm8iy3vmz756q77s0ih3y2is0hvv48w89hn5a4r0";
+       revision = "1";
+       editedCabalFile = "15gh6v6wicnl670j6knqcm1a589rdyh1drpk8ia7p4w9lhyav7vk";
        libraryHaskellDepends = [
          base containers hashable tagged unordered-containers vector
        ];
@@ -163886,10 +166837,8 @@ self: {
      }:
      mkDerivation {
        pname = "matchable-th";
-       version = "0.1.0.0";
-       sha256 = "1381zpnpzgng7iwx326bjwi1i3300a0aa0hhp1j5wr0mxad8hyr3";
-       revision = "1";
-       editedCabalFile = "0az3cwf4gy0vhv0zqdvqpvk3j6ckhf1h2946kklvmij7z46x17ql";
+       version = "0.1.1.0";
+       sha256 = "0hmdy38k1il2b0j6bkr3m4f1c8d8rvw21k3rlrd0q345xjx8y8p1";
        libraryHaskellDepends = [
          base matchable template-haskell th-abstraction
        ];
@@ -163942,16 +166891,14 @@ self: {
      }) {};
 
   "math-functions" = callPackage
-    ({ mkDerivation, base, data-default-class, deepseq, erf, primitive
-     , QuickCheck, tasty, tasty-hunit, tasty-quickcheck, vector
-     , vector-th-unbox
+    ({ 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.0";
-       sha256 = "1r77ifqjxr8waf9ljgggyhl2a7gpqhhsi7m7cnc9v5kxqzgdbn4a";
-       revision = "1";
-       editedCabalFile = "1gyrzczs1df98l2d21xrpqqsxs9yw27pfwl27fx8lshd9n25x5h5";
+       version = "0.3.4.1";
+       sha256 = "13x4whrnacqvmprfi665n5nby8hqlz1pxrglsl81chyk0gy0l2p2";
        libraryHaskellDepends = [
          base data-default-class deepseq primitive vector
        ];
@@ -163959,6 +166906,9 @@ self: {
          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 = stdenv.lib.licenses.bsd2;
      }) {};
@@ -164014,8 +166964,8 @@ self: {
      }:
      mkDerivation {
        pname = "math-programming";
-       version = "0.3.0";
-       sha256 = "1dvkg1z1q97lq37v40z92r3rbir2g1x5d3g6nx131cjm034rm5ha";
+       version = "0.4.0";
+       sha256 = "0c154gvx0h1xincmmx2jcrvaivni36ahglbrwx08v8z3wdp51k0m";
        libraryHaskellDepends = [ base containers mtl text ];
        testHaskellDepends = [
          base containers mtl tasty tasty-discover tasty-hunit
@@ -164033,8 +166983,8 @@ self: {
      }:
      mkDerivation {
        pname = "math-programming-glpk";
-       version = "0.3.0";
-       sha256 = "0cc0888fkhfkj73yfdgpzvvrmkm9z3i1rl4phx13mc3b00qdna56";
+       version = "0.4.1";
+       sha256 = "1ikg8a3pspcrk46rr87lnwkhziihzfpjd543bisqs0pl2db1ll5b";
        libraryHaskellDepends = [
          base containers glpk-headers math-programming mtl text
        ];
@@ -164056,8 +167006,8 @@ self: {
      }:
      mkDerivation {
        pname = "math-programming-tests";
-       version = "0.3.0";
-       sha256 = "15ly6fhcl6p5frbdyavjighqyagi2zby3lzla1s0nn9vsqx6iwgk";
+       version = "0.4.0";
+       sha256 = "01d6yb4zm2jky8jm8jzd1365nhjsa4c50b5a5yx3r7g078lk91pi";
        libraryHaskellDepends = [
          base math-programming tasty tasty-hunit tasty-quickcheck text
        ];
@@ -164188,13 +167138,23 @@ self: {
      }) {};
 
   "matlab" = callPackage
-    ({ mkDerivation, array, base, Cabal, eng, filepath, mat, mx }:
+    ({ mkDerivation, array, base, Cabal, containers, eng, exceptions
+     , filepath, mat, mx, path, profunctors, template-haskell, text
+     }:
      mkDerivation {
        pname = "matlab";
-       version = "0.2.0.0";
-       sha256 = "08kalclinzqxy5l7j115hz6h9nw1g7mf9rzmpz8dblbhbwvj4l7x";
-       libraryHaskellDepends = [ array base Cabal filepath ];
+       version = "0.3.0.0";
+       sha256 = "1ghvmq8izn2rhv19qm3v3cxf8c2ry7jd627d49k4479sj9brs2wb";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base Cabal containers filepath path profunctors
+       ];
        librarySystemDepends = [ eng mat mx ];
+       executableHaskellDepends = [
+         base exceptions filepath path template-haskell text
+       ];
+       executableSystemDepends = [ eng mat mx ];
        description = "Matlab bindings and interface";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -164263,13 +167223,35 @@ self: {
      }:
      mkDerivation {
        pname = "matrix-as-xyz";
-       version = "0.1.1.1";
-       sha256 = "1hca54xrd0ia4vcqpgkjn65qgk35rzrs3hjl6d758dj3gshq30xp";
-       libraryHaskellDepends = [ base hspec matrix parsec QuickCheck ];
+       version = "0.1.2.2";
+       sha256 = "1qblzv6893z6y9jkp2v71g73x35bbizxghliby39fx6kxw6l2j7w";
+       revision = "2";
+       editedCabalFile = "01r2n4ys2z92wkdpky171dbxklynvp5cjf7vi61sf4hjdqih17nf";
+       libraryHaskellDepends = [ base matrix parsec ];
        testHaskellDepends = [
          base doctest hspec matrix parsec QuickCheck
        ];
-       description = "Read and Display representation of matrix like \"x,y,z\"";
+       description = "Read and Display Jones-Faithful notation for spacegroup and planegroup";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "matrix-lens" = callPackage
+    ({ mkDerivation, base, hedgehog, lens, matrix, tasty
+     , tasty-discover, tasty-hedgehog, tasty-hspec, vector
+     }:
+     mkDerivation {
+       pname = "matrix-lens";
+       version = "0.1.0.0";
+       sha256 = "077dwgvm73qlh12ss725ipbry8gqzl3y1xmg6r34r97vcah5a0fy";
+       libraryHaskellDepends = [ base lens matrix vector ];
+       testHaskellDepends = [
+         base hedgehog lens matrix tasty tasty-discover tasty-hedgehog
+         tasty-hspec vector
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Optics for the \"matrix\" package";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -164396,8 +167378,8 @@ self: {
      }:
      mkDerivation {
        pname = "matterhorn";
-       version = "50200.9.0";
-       sha256 = "1ky022msmh1ashhw8kwxwj4lcswa6xin2537q4bx8miii07cfvaw";
+       version = "50200.10.1";
+       sha256 = "0m4vqxxcqvbgm6flfwqy2w47ada3r29r34yw1gyv02na7gx3rqi1";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -164435,8 +167417,8 @@ self: {
      }:
      mkDerivation {
        pname = "mattermost-api";
-       version = "50200.6.0";
-       sha256 = "0p03r9hss1xrg4a542l2pyacm49ahkkqkr3afcwgdyb0m65ra620";
+       version = "50200.7.0";
+       sha256 = "1zqvfp0miql9ha9fcvr84p7yhli5br9kmsn080h058zknyabrl8p";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -164460,8 +167442,8 @@ self: {
      }:
      mkDerivation {
        pname = "mattermost-api-qc";
-       version = "50200.6.0";
-       sha256 = "11j1bli553n59j54qn9ka1a5d37jk1ijgbwaa3001gmxhj526r62";
+       version = "50200.7.0";
+       sha256 = "0gzrbgzynzr5g234dm1qbs9xkddfvm08rv1n12qx0191fzicbf25";
        libraryHaskellDepends = [
          base containers mattermost-api QuickCheck text time
        ];
@@ -164785,26 +167767,26 @@ self: {
 
   "mcmc" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, criterion
-     , directory, hspec, hspec-discover, log-domain, microlens
-     , mwc-random, QuickCheck, statistics, text, time, transformers
-     , vector, zlib
+     , data-default, directory, double-conversion, hspec, hspec-discover
+     , log-domain, microlens, mwc-random, QuickCheck, statistics, time
+     , transformers, vector, zlib
      }:
      mkDerivation {
        pname = "mcmc";
-       version = "0.1.3";
-       sha256 = "1rrbbnw6wi6k1p63n65a5rjr3fznzb48ksldb1w2xdbzmsa71nim";
+       version = "0.2.3";
+       sha256 = "14xf8l3ka7s34sa4rs4xsy7h5jxpl3fhsn959dvf17nsv252s6p8";
        libraryHaskellDepends = [
-         aeson base bytestring containers directory log-domain microlens
-         mwc-random statistics text time transformers vector zlib
+         aeson base bytestring containers data-default directory
+         double-conversion log-domain microlens mwc-random statistics time
+         transformers vector zlib
        ];
        testHaskellDepends = [
-         base hspec hspec-discover log-domain mwc-random QuickCheck
-         statistics vector
+         base directory hspec hspec-discover log-domain mwc-random
+         QuickCheck statistics vector
        ];
        testToolDepends = [ hspec-discover ];
        benchmarkHaskellDepends = [
-         base criterion log-domain microlens mwc-random statistics text
-         vector
+         base criterion log-domain microlens mwc-random statistics vector
        ];
        description = "Sample from a posterior using Markov chain Monte Carlo";
        license = stdenv.lib.licenses.gpl3Plus;
@@ -164964,6 +167946,28 @@ self: {
        broken = true;
      }) {};
 
+  "mealy" = callPackage
+    ({ mkDerivation, adjunctions, backprop, base, containers, doctest
+     , folds, generic-lens, hmatrix, lens, mwc-probability, mwc-random
+     , numhask, numhask-array, primitive, profunctors, tdigest, text
+     , vector, vector-algorithms
+     }:
+     mkDerivation {
+       pname = "mealy";
+       version = "0.0.1";
+       sha256 = "0z7hf1blzhgrjmrf7s2dpgmg73157j476g17i7m52zgfgq4vmym9";
+       libraryHaskellDepends = [
+         adjunctions backprop base containers folds generic-lens hmatrix
+         lens mwc-probability mwc-random numhask numhask-array primitive
+         profunctors tdigest text vector vector-algorithms
+       ];
+       testHaskellDepends = [ base doctest numhask ];
+       description = "See readme.md";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "means" = callPackage
     ({ mkDerivation, base, semigroups }:
      mkDerivation {
@@ -165072,6 +168076,32 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "medea_1_2_0" = callPackage
+    ({ mkDerivation, aeson, algebraic-graphs, base, bytestring
+     , containers, deepseq, directory, filepath, free, hashable, hspec
+     , hspec-core, megaparsec, microlens-ghc, mtl, nonempty-containers
+     , parser-combinators, QuickCheck, quickcheck-instances, scientific
+     , smash, text, unordered-containers, vector, vector-instances
+     }:
+     mkDerivation {
+       pname = "medea";
+       version = "1.2.0";
+       sha256 = "019jfz29gz3d06b5yi7fygqa79lp6c6vbzxcb5ka7d8w0zv7w60v";
+       libraryHaskellDepends = [
+         aeson algebraic-graphs base bytestring containers deepseq free
+         hashable megaparsec microlens-ghc mtl nonempty-containers
+         parser-combinators scientific smash text unordered-containers
+         vector vector-instances
+       ];
+       testHaskellDepends = [
+         aeson base bytestring directory filepath hspec hspec-core mtl
+         QuickCheck quickcheck-instances text unordered-containers vector
+       ];
+       description = "A schema language for JSON";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "mediabus" = callPackage
     ({ mkDerivation, array, async, base, binary, bytestring, cereal
      , conduit, conduit-combinators, conduit-extra, containers
@@ -165341,6 +168371,27 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "megaparsec_9_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, case-insensitive, containers
+     , criterion, deepseq, mtl, parser-combinators, scientific, text
+     , transformers, weigh
+     }:
+     mkDerivation {
+       pname = "megaparsec";
+       version = "9.0.0";
+       sha256 = "1x10f2b14ww306am9w06s23va26ab3vwdh0jk67ql6ybigxh0asi";
+       libraryHaskellDepends = [
+         base bytestring case-insensitive containers deepseq mtl
+         parser-combinators scientific text transformers
+       ];
+       benchmarkHaskellDepends = [
+         base containers criterion deepseq text weigh
+       ];
+       description = "Monadic parser combinators";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "megaparsec-tests" = callPackage
     ({ mkDerivation, base, bytestring, case-insensitive, containers
      , hspec, hspec-discover, hspec-expectations, hspec-megaparsec
@@ -165367,6 +168418,31 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "megaparsec-tests_9_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, case-insensitive, containers
+     , hspec, hspec-discover, hspec-expectations, hspec-megaparsec
+     , megaparsec, mtl, parser-combinators, QuickCheck, scientific, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "megaparsec-tests";
+       version = "9.0.0";
+       sha256 = "0zm246r8k48mj5v2dxjan7dsrcnw54bcm27swi5mh8c0yb3vcvab";
+       libraryHaskellDepends = [
+         base bytestring containers hspec hspec-expectations
+         hspec-megaparsec megaparsec mtl QuickCheck text transformers
+       ];
+       testHaskellDepends = [
+         base bytestring case-insensitive containers hspec
+         hspec-expectations hspec-megaparsec megaparsec mtl
+         parser-combinators QuickCheck scientific text transformers
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Test utilities and the test suite of Megaparsec";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "meldable-heap" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -165872,8 +168948,8 @@ self: {
        pname = "mercury-api";
        version = "0.1.0.2";
        sha256 = "0ybpc1kai85rflgdr80jd8cvwxaxmbphv82nz2p17502jrmdfkhg";
-       revision = "4";
-       editedCabalFile = "1bx3xrafmf82b9wlvhggv87fwqgpgqxjdgkk9r5b323m9ci2gign";
+       revision = "5";
+       editedCabalFile = "15xgb00cv8srnhfgh7v01b2qijcwapwsbx92jbdss525n3j74d48";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -166351,6 +169427,94 @@ self: {
        broken = true;
      }) {};
 
+  "metro" = callPackage
+    ({ mkDerivation, base, binary, bytestring, hashable, hslogger, mtl
+     , transformers, unix-time, unliftio, unordered-containers
+     }:
+     mkDerivation {
+       pname = "metro";
+       version = "0.1.0.1";
+       sha256 = "1snivs6zf3pjkh6p29wafjnrw8sfcrakl5s8ksn20hr1y8780v9k";
+       libraryHaskellDepends = [
+         base binary bytestring hashable hslogger mtl transformers unix-time
+         unliftio unordered-containers
+       ];
+       description = "A simple tcp and udp socket server framework";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "metro-socket" = callPackage
+    ({ mkDerivation, base, bytestring, directory, hashable, hslogger
+     , metro, mtl, network, transformers, unliftio
+     }:
+     mkDerivation {
+       pname = "metro-socket";
+       version = "0.1.0.0";
+       sha256 = "0ph2w4dwkixg5w3m13giy75zcl1f1kd52lrkbx6v0vf595dhgrcf";
+       libraryHaskellDepends = [
+         base bytestring directory hashable hslogger metro mtl network
+         transformers unliftio
+       ];
+       description = "Socket transport for metro";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "metro-transport-crypto" = callPackage
+    ({ mkDerivation, base, binary, bytestring, cryptonite, metro
+     , QuickCheck, quickcheck-instances, text, unliftio
+     }:
+     mkDerivation {
+       pname = "metro-transport-crypto";
+       version = "0.1.0.0";
+       sha256 = "1w7h47lrmw1zzdi8bp5rxrxidpxl1pf9q7ns38mqwf49xl9yyvz7";
+       libraryHaskellDepends = [
+         base binary bytestring cryptonite metro text unliftio
+       ];
+       testHaskellDepends = [
+         base bytestring cryptonite metro QuickCheck quickcheck-instances
+       ];
+       description = "Crypto transport for metro";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "metro-transport-tls" = callPackage
+    ({ mkDerivation, base, bytestring, data-default-class, metro, pem
+     , tls, x509, x509-store, x509-validation
+     }:
+     mkDerivation {
+       pname = "metro-transport-tls";
+       version = "0.1.0.0";
+       sha256 = "1lsw4s7h4s1m2hm5bwhq2nx0acnaw1377ifdf0xphb1rzgbdacvb";
+       libraryHaskellDepends = [
+         base bytestring data-default-class metro pem tls x509 x509-store
+         x509-validation
+       ];
+       description = "TLS transport for metro";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "metro-transport-websockets" = callPackage
+    ({ mkDerivation, base, bytestring, metro, websockets }:
+     mkDerivation {
+       pname = "metro-transport-websockets";
+       version = "0.1.0.0";
+       sha256 = "1jyy3sssz8ixwqdlf8zph05pfrm6qnf56sjsq8bx6yah9psy92dg";
+       libraryHaskellDepends = [ base bytestring metro websockets ];
+       description = "Websockets transport for metro";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "metro-transport-xor" = callPackage
+    ({ mkDerivation, base, bytestring, metro, unliftio }:
+     mkDerivation {
+       pname = "metro-transport-xor";
+       version = "0.1.0.0";
+       sha256 = "1hx839sxd2lrx6vsxswi4i88x1d1489jcdmh2vbnc2dvnssnqcpv";
+       libraryHaskellDepends = [ base bytestring metro unliftio ];
+       description = "XOR transport for metro";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "metronome" = callPackage
     ({ mkDerivation, base, data-lens, data-lens-template, hosc, stm }:
      mkDerivation {
@@ -166466,6 +169630,34 @@ self: {
        broken = true;
      }) {};
 
+  "micro-gateway" = callPackage
+    ({ mkDerivation, aeson, base, binary, bytestring, case-insensitive
+     , containers, cookie, data-default-class, hslogger, http-client
+     , http-types, network-uri, optparse-applicative, scotty, signature
+     , stm, streaming-commons, text, time, unix-time
+     , unordered-containers, wai, wai-cors, wai-websockets, warp
+     , websockets, yaml
+     }:
+     mkDerivation {
+       pname = "micro-gateway";
+       version = "1.1.0.0";
+       sha256 = "1jb703vcqncxw12cmgmyg63rw6fmfa4mv1685z6vab3xzq7kvxv7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base binary bytestring case-insensitive containers cookie
+         hslogger http-client http-types scotty signature stm text time
+         unix-time unordered-containers wai websockets
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring data-default-class http-client network-uri
+         optparse-applicative scotty streaming-commons text wai-cors
+         wai-websockets warp websockets yaml
+       ];
+       description = "A Micro service gateway";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "micro-recursion-schemes" = callPackage
     ({ mkDerivation, base, cpphs, HUnit, template-haskell
      , th-abstraction
@@ -166636,8 +169828,8 @@ self: {
      }:
      mkDerivation {
        pname = "microlens-aeson";
-       version = "2.3.0.4";
-       sha256 = "0w630kk5bnily1qh41081gqgbwmslrh5ad21899gwnb2r3jripyw";
+       version = "2.3.1";
+       sha256 = "074mzpk7av6i0xf7xy42jpzgljlmyw805md1vz4sqy85m99f0ikr";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring deepseq hashable microlens
          scientific text unordered-containers vector
@@ -167239,24 +170431,64 @@ self: {
      }) {};
 
   "mime-mail-ses" = callPackage
-    ({ mkDerivation, base, base64-bytestring, byteable, bytestring
-     , conduit, cryptohash, http-client, http-client-tls, http-conduit
-     , http-types, mime-mail, old-locale, text, time, transformers
-     , xml-conduit, xml-types
+    ({ mkDerivation, base, base16-bytestring, base64-bytestring
+     , byteable, bytestring, case-insensitive, conduit, cryptohash
+     , http-client, http-client-tls, http-conduit, http-types, mime-mail
+     , optparse-applicative, tasty, tasty-hunit, text, time, xml-conduit
+     , xml-types
      }:
      mkDerivation {
        pname = "mime-mail-ses";
-       version = "0.4.1";
-       sha256 = "1w6k4cm5yab9dhg7yn6mp7jzk1zdwpnzc6c1xb3vz3rdwp8jjvx7";
+       version = "0.4.2";
+       sha256 = "1jiv1h9b8396nf8iqf9x11idfcrppank3gqcn6l5877893fzd9hk";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
-         base base64-bytestring byteable bytestring conduit cryptohash
-         http-client http-client-tls http-conduit http-types mime-mail
-         old-locale text time transformers xml-conduit xml-types
+         base base16-bytestring base64-bytestring byteable bytestring
+         case-insensitive conduit cryptohash http-client http-client-tls
+         http-conduit http-types mime-mail text time xml-conduit xml-types
+       ];
+       executableHaskellDepends = [
+         base http-client http-client-tls mime-mail optparse-applicative
+         text
+       ];
+       testHaskellDepends = [
+         base bytestring case-insensitive tasty tasty-hunit time
        ];
        description = "Send mime-mail messages via Amazon SES";
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "mime-mail-ses_0_4_3" = callPackage
+    ({ mkDerivation, base, base16-bytestring, base64-bytestring
+     , byteable, bytestring, case-insensitive, conduit, cryptohash
+     , http-client, http-client-tls, http-conduit, http-types, mime-mail
+     , optparse-applicative, tasty, tasty-hunit, text, time, xml-conduit
+     , xml-types
+     }:
+     mkDerivation {
+       pname = "mime-mail-ses";
+       version = "0.4.3";
+       sha256 = "0v4b0y28kf7mx80z16j82wmaccpggkc262f7cn9g9j2nfayy2xhj";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base base16-bytestring base64-bytestring byteable bytestring
+         case-insensitive conduit cryptohash http-client http-client-tls
+         http-conduit http-types mime-mail text time xml-conduit xml-types
+       ];
+       executableHaskellDepends = [
+         base http-client http-client-tls mime-mail optparse-applicative
+         text
+       ];
+       testHaskellDepends = [
+         base bytestring case-insensitive tasty tasty-hunit time
+       ];
+       description = "Send mime-mail messages via Amazon SES";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "mime-string" = callPackage
     ({ mkDerivation, base, base64-string, bytestring, iconv, mtl
      , network, old-locale, old-time, random
@@ -167291,23 +170523,6 @@ self: {
      }:
      mkDerivation {
        pname = "min-max-pqueue";
-       version = "0.1.0.1";
-       sha256 = "09lby8qvjrcdp7ygy4a4dcw8w3y689qzazbcd55249z7ljjw731s";
-       libraryHaskellDepends = [ base containers ];
-       testHaskellDepends = [ base containers hedgehog ];
-       benchmarkHaskellDepends = [
-         base containers criterion integer-logarithms random
-       ];
-       description = "Double-ended priority queues";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "min-max-pqueue_0_1_0_2" = callPackage
-    ({ mkDerivation, base, containers, criterion, hedgehog
-     , integer-logarithms, random
-     }:
-     mkDerivation {
-       pname = "min-max-pqueue";
        version = "0.1.0.2";
        sha256 = "0nbvd8w4wj00dbh1zknxqb28wlxi87k3z3snjfqg7zz7j7mvy0jp";
        libraryHaskellDepends = [ base containers ];
@@ -167317,7 +170532,6 @@ self: {
        ];
        description = "Double-ended priority queues";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "minecraft" = callPackage
@@ -167897,6 +171111,8 @@ self: {
        executableHaskellDepends = [ monad-loops regex-base regex-pcre ];
        description = "fortune-mod clone";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "mismi-core" = callPackage
@@ -168023,15 +171239,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "miso_1_7_0_0" = callPackage
+  "miso_1_7_1_0" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, http-api-data
      , http-types, lucid, network-uri, servant, servant-lucid, text
      , transformers, vector
      }:
      mkDerivation {
        pname = "miso";
-       version = "1.7.0.0";
-       sha256 = "1qww479hwydbazv2jsmrhy9n6v6miyjq5dnld431sav70l9y2y48";
+       version = "1.7.1.0";
+       sha256 = "1hkfcinwymrff8mmvywhnlzbj5804hwkk4rhzxzhzsycdf4v7a41";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -168060,8 +171276,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "miso-examples";
-       version = "1.7.0.0";
-       sha256 = "0k69yqg1qx31cbf8d3kq57yyl19b5q5a7wsa0ab3l5dhc0jdbkwc";
+       version = "1.7.1.0";
+       sha256 = "1z6zcydai6k9hj1phws1axdcbvdplhxv833is7pzfv8sq9mfyfsc";
        isLibrary = false;
        isExecutable = true;
        description = "A tasty Haskell front-end framework";
@@ -168168,24 +171384,25 @@ self: {
 
   "miv" = callPackage
     ({ mkDerivation, aeson, async, base, concurrent-output, directory
-     , ghc-prim, hashable, hspec, monad-parallel, process, text, time
-     , unordered-containers, yaml
+     , filepath, ghc-prim, hashable, hspec, monad-parallel, process
+     , text, time, unix-compat, unordered-containers, xdg-basedir, yaml
      }:
      mkDerivation {
        pname = "miv";
-       version = "0.3.0";
-       sha256 = "1s4xkr6mrlwvmxh4v63yzljsz96v5fy9mws8xwmbybqrlpqgc5qy";
+       version = "0.4.2";
+       sha256 = "0yhfinygsb2fnjspg87fx447kajrbldhddm24vxl41741xmwjl8a";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         aeson async base concurrent-output directory ghc-prim hashable
-         monad-parallel process text time unordered-containers yaml
+         aeson async base concurrent-output directory filepath ghc-prim
+         hashable monad-parallel process text time unix-compat
+         unordered-containers xdg-basedir yaml
        ];
        testHaskellDepends = [
          aeson base directory ghc-prim hashable hspec monad-parallel process
          text time unordered-containers yaml
        ];
-       description = "Manage Vim plugins with command";
+       description = "Vim plugin manager written in Haskell";
        license = stdenv.lib.licenses.mit;
      }) {};
 
@@ -168226,8 +171443,8 @@ self: {
      }:
      mkDerivation {
        pname = "mixed-types-num";
-       version = "0.4.0.1";
-       sha256 = "10fkqb4d534nr5yqdybmvrbg3alfjvki4qxg20ma8mwxyiz4wc5g";
+       version = "0.4.0.2";
+       sha256 = "0kirxpnmwwnbxamwpzrxyx69n482xhifqpr5id73pfni7lrd126p";
        libraryHaskellDepends = [
          base hspec hspec-smallcheck mtl QuickCheck smallcheck
          template-haskell
@@ -168389,8 +171606,8 @@ self: {
        pname = "mmark";
        version = "0.0.7.2";
        sha256 = "1wwszzba6fvg0r4q5z2dzashim0nkaxzx4rmjl216kdi08jkp7mm";
-       revision = "1";
-       editedCabalFile = "15mjdasllgy543ipfwapaf3r8lz6i9sxh9ry7xbs0j1gg81px6h6";
+       revision = "2";
+       editedCabalFile = "1wwcar2a5hdwac8r1c1wlqhk7dnidvq98qsgnxyhfh8iblpn81hb";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base case-insensitive containers deepseq dlist email-validate
@@ -168417,8 +171634,8 @@ self: {
        pname = "mmark-cli";
        version = "0.0.5.0";
        sha256 = "15qrp2q1flx9csqvj8zx9w1jqg8pwfi0v7wpia7n7vg09jgydhby";
-       revision = "3";
-       editedCabalFile = "03n7i551lagr4b6587c34ic6c4d9sn9kmnzkff2x1klqaxgb88ld";
+       revision = "4";
+       editedCabalFile = "1z2jfbbjimcryb44g990cnx5xvmfipy5dx6z33v2aqgpjgjn2rr5";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -168439,8 +171656,8 @@ self: {
        pname = "mmark-ext";
        version = "0.2.1.2";
        sha256 = "1s44vznj8hkk7iymnzczbglxnw1q84gmm8q9yiwh0jkiw4kdi91c";
-       revision = "1";
-       editedCabalFile = "10dlh96l6fdbpl1slr8v022735z9zkdszd1aziid5ml3gf63ssd8";
+       revision = "3";
+       editedCabalFile = "02i6577qislr0qvgmfamcixpxgb7bh68lg18n3vkq6xbnjxdpwpx";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base foldl ghc-syntax-highlighter lucid microlens mmark modern-uri
@@ -168523,8 +171740,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmsyn6ukr";
-       version = "0.7.3.0";
-       sha256 = "078g7npfal2qry5agqrr13252y7c1n75s0bykdn5s0p5wy5812mj";
+       version = "0.8.0.0";
+       sha256 = "0cs4mi9ia3l3v19hldbaygsywvjcfx66plbyh6311j2qzbrqaq93";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -168544,8 +171761,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmsyn7h";
-       version = "0.7.7.0";
-       sha256 = "0ayx9mv25f8dvp30bbxm6cnbmxwpdhcpqsh0zgh6xp703vlwrfvc";
+       version = "0.8.0.0";
+       sha256 = "0mj96p3f96brv7cw3mkigngxnmqcn9r1yfghdx1jplrw5wycy80j";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -168566,8 +171783,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmsyn7l";
-       version = "0.7.0.0";
-       sha256 = "0mpc782zgv63ax8mfq7ljrdida4vviqhzhiakl42i368f1zavhqm";
+       version = "0.8.0.0";
+       sha256 = "0w1k89phzxyq2nwzr0vn313rlp0f7d62vhdvq113pqszbdbjh6gd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -168584,8 +171801,8 @@ self: {
     ({ mkDerivation, base, mmsyn2, mmsyn5, mmsyn6ukr, vector }:
      mkDerivation {
        pname = "mmsyn7s";
-       version = "0.7.0.0";
-       sha256 = "14vbqdhk8f6fa319c6yk57y474bivdmyhj9rmy20cqjjh7bsw229";
+       version = "0.8.0.0";
+       sha256 = "0brcmmlvdd294y35gby1qnb5b5h5mcn6xgwgvffxfmhif7nyxmc5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base mmsyn2 mmsyn5 mmsyn6ukr vector ];
@@ -168600,8 +171817,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmsyn7ukr";
-       version = "0.16.0.0";
-       sha256 = "1dmiisbn9v98rf4qa7zw976w3qj6s67j11vvd82f186n9p2id7px";
+       version = "0.17.0.0";
+       sha256 = "069pyv8g9gdzzvnmdqmcrqnxf5zglrqbmcn2v6frfxj7ibd4awif";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -168696,6 +171913,24 @@ self: {
        broken = true;
      }) {};
 
+  "mock-httpd" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, case-insensitive
+     , filepath, http-types, relude, text, wai, warp, yaml
+     }:
+     mkDerivation {
+       pname = "mock-httpd";
+       version = "0.0.0.0";
+       sha256 = "0mv669gvn61by4j7sd4w2hvzr3vpa0szrhgzdciv5g1a0gsh3kk7";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson async base bytestring case-insensitive filepath http-types
+         relude text wai warp yaml
+       ];
+       description = "A HTTP server for testing HTTP clients";
+       license = stdenv.lib.licenses.bsd2;
+     }) {};
+
   "mockazo" = callPackage
     ({ mkDerivation, base, constraints, hspec, multistate, relude
      , template-haskell
@@ -168735,17 +171970,20 @@ self: {
      }) {};
 
   "mod" = callPackage
-    ({ mkDerivation, base, deepseq, integer-gmp, quickcheck-classes
-     , quickcheck-classes-base, semirings, tasty, tasty-quickcheck, time
+    ({ mkDerivation, base, deepseq, integer-gmp, primitive
+     , quickcheck-classes, quickcheck-classes-base, semirings, tasty
+     , tasty-quickcheck, time, vector
      }:
      mkDerivation {
        pname = "mod";
-       version = "0.1.1.0";
-       sha256 = "03v942bd1hqcvikg71639f1p4s2zrx3zpf1yhwfrkl22c62cy99k";
-       libraryHaskellDepends = [ base deepseq integer-gmp semirings ];
+       version = "0.1.2.0";
+       sha256 = "116dm3cid2hh4gii4k806670xz7syxajxmbxka61d43f3719z65y";
+       libraryHaskellDepends = [
+         base deepseq integer-gmp primitive semirings vector
+       ];
        testHaskellDepends = [
-         base quickcheck-classes quickcheck-classes-base semirings tasty
-         tasty-quickcheck
+         base primitive quickcheck-classes quickcheck-classes-base semirings
+         tasty tasty-quickcheck vector
        ];
        benchmarkHaskellDepends = [ base time ];
        description = "Fast type-safe modular arithmetic";
@@ -168889,13 +172127,13 @@ self: {
      }) {};
 
   "modular-arithmetic" = callPackage
-    ({ mkDerivation, base, doctest }:
+    ({ mkDerivation, base, doctest, typelits-witnesses }:
      mkDerivation {
        pname = "modular-arithmetic";
-       version = "1.2.1.5";
-       sha256 = "0nrnjyqpyy2c5479wjw5ihkwmiingpw60isdladfgi1cis36pq5f";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base doctest ];
+       version = "2.0.0.1";
+       sha256 = "132cxgrw6lsdkpqi69v1f9jgl5icslwi5qclv4rc03hn0mcnl2sz";
+       libraryHaskellDepends = [ base typelits-witnesses ];
+       testHaskellDepends = [ base doctest typelits-witnesses ];
        description = "A type for integers modulo some constant";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -169324,6 +172562,8 @@ self: {
        ];
        description = "monad-classes based typeclass for Ollie's logging-effect LoggingT";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "monad-codec" = callPackage
@@ -169384,6 +172624,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "monad-control-identity" = callPackage
+    ({ mkDerivation, base, monad-control, transformers
+     , transformers-base
+     }:
+     mkDerivation {
+       pname = "monad-control-identity";
+       version = "0.1.0.3";
+       sha256 = "0nxsyhyvp04xr7js2z8mvmh2w2b2fwv5zzkbgjagm6l51pqpam6q";
+       libraryHaskellDepends = [
+         base monad-control transformers transformers-base
+       ];
+       description = "Stronger classes than monad-control";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "monad-coroutine" = callPackage
     ({ mkDerivation, base, monad-parallel, transformers
      , transformers-compat
@@ -169405,18 +172660,14 @@ self: {
      }:
      mkDerivation {
        pname = "monad-dijkstra";
-       version = "0.1.1.2";
-       sha256 = "1890rnypk3ra4f0f3m7nr31df3x6pmpw6ivid77wj7h9mdp0bdb6";
-       revision = "1";
-       editedCabalFile = "0dwcwwlfkhjl31asr35cy1m26nacz9xjry01cnq1dyaqcg53xjjb";
+       version = "0.1.1.3";
+       sha256 = "13zb3k0rfqpzz3ngmkqhc4zfa6p8nzj9hcsnfilkn8179pwp0qkc";
        libraryHaskellDepends = [
          base containers free mtl psqueues transformers
        ];
        testHaskellDepends = [ base hlint tasty tasty-hspec ];
        description = "A monad transformer for weighted graph searches";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "monad-exception" = callPackage
@@ -169546,6 +172797,20 @@ self: {
        broken = true;
      }) {};
 
+  "monad-introspect" = callPackage
+    ({ mkDerivation, base, coercion-extras, mmorph, mtl, transformers
+     }:
+     mkDerivation {
+       pname = "monad-introspect";
+       version = "0.1.0.0";
+       sha256 = "15c5ind2ddmj7xqps5fvlwl9awvsrpqcwaszlikf697aqjqra1nb";
+       libraryHaskellDepends = [
+         base coercion-extras mmorph mtl transformers
+       ];
+       description = "A reader monad that gives the environment access to the entire transformer stack";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "monad-io-adapter" = callPackage
     ({ mkDerivation, base, exceptions, hspec, monad-control
      , monad-logger, mtl, transformers, transformers-base
@@ -169645,8 +172910,8 @@ self: {
      }:
      mkDerivation {
        pname = "monad-logger";
-       version = "0.3.32";
-       sha256 = "14f1igbrkvwxxyhk58apc7swpzadaimfyaf75hwmsf5xc7xvjxyr";
+       version = "0.3.35";
+       sha256 = "1mrwwv3h3wy84kgphwn6ahjzxab0bzgzzbqla1c3jx02xl9x3q72";
        libraryHaskellDepends = [
          base bytestring conduit conduit-extra exceptions fast-logger
          lifted-base monad-control monad-loops mtl resourcet stm stm-chans
@@ -169698,6 +172963,8 @@ self: {
        pname = "monad-logger-syslog";
        version = "0.1.6.0";
        sha256 = "1n4r0fl043r18683ym3k03sdm3b9wlxfzjgmnxi804kwna639rj3";
+       revision = "1";
+       editedCabalFile = "0177m5h891s49yv924c5yqbfninc6x298vbpmx3fri6cychamgbl";
        libraryHaskellDepends = [
          base bytestring fast-logger hsyslog monad-logger text transformers
        ];
@@ -170461,8 +173728,8 @@ self: {
      }:
      mkDerivation {
        pname = "monadic-recursion-schemes";
-       version = "0.1.11.0";
-       sha256 = "0gi9g4vwd2wyff2gjjbjyd1hmx8hv55qmj6kl3c0f3mafxg5vfyj";
+       version = "0.1.12.0";
+       sha256 = "0h5syc9p4imlf03qfb1rjsk4rq2kqry522zvw67x122q1xzdnwnw";
        libraryHaskellDepends = [
          base comonad containers free mtl recursion-schemes transformers
        ];
@@ -170880,8 +174147,8 @@ self: {
      }:
      mkDerivation {
        pname = "mono-traversable-instances";
-       version = "0.1.0.0";
-       sha256 = "0zh81hvqnracil2nvkx14xzwv9vavsnx739acp6gycdyrs5jpzxm";
+       version = "0.1.1.0";
+       sha256 = "1fnkz8dlfz0bl7mx2p5y96w91zdhdvnzx1a9a8zlfxz06mwarhgb";
        libraryHaskellDepends = [
          base comonad containers dlist dlist-instances mono-traversable
          semigroupoids semigroups transformers vector-instances
@@ -171043,6 +174310,8 @@ self: {
        pname = "monoidal-containers";
        version = "0.6.0.1";
        sha256 = "1j5mfs0ysvwk3jsmq4hlj4l3kasfc28lk1b3xaymf9dw48ac5j82";
+       revision = "1";
+       editedCabalFile = "06agyfnhr4cr42m4zj7xwl5an3skbjvba53a5i6sl9890gx7mml3";
        libraryHaskellDepends = [
          aeson base containers deepseq hashable lens newtype semialign
          semigroups these unordered-containers
@@ -171347,52 +174616,36 @@ self: {
 
   "morley" = callPackage
     ({ mkDerivation, aeson, aeson-casing, aeson-pretty, base
-     , base16-bytestring, base58-bytestring, binary, bytestring
-     , constraints, containers, criterion, cryptonite, data-default
-     , directory, filepath, first-class-families, fmt, formatting, gauge
-     , ghc-prim, gitrev, hedgehog, hex-text, hspec, hspec-expectations
-     , HUnit, interpolate, lens, megaparsec, memory, morley-prelude, mtl
-     , named, o-clock, optparse-applicative, parser-combinators
-     , pretty-simple, QuickCheck, quickcheck-arbitrary-adt
-     , quickcheck-instances, semigroups, show-type, singletons
-     , statistics, syb, tasty, tasty-ant-xml, tasty-discover
-     , tasty-hedgehog, tasty-hspec, tasty-hunit-compat, tasty-quickcheck
-     , template-haskell, text, th-lift, th-lift-instances, time, timerep
-     , transformers-compat, unordered-containers, vector, vinyl
-     , wl-pprint-text
+     , 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, pretty-simple
+     , QuickCheck, quickcheck-arbitrary-adt, quickcheck-instances
+     , semigroups, show-type, singletons, syb, template-haskell, text
+     , th-lift, th-lift-instances, time, timerep, transformers-compat
+     , unordered-containers, vector, vinyl, wl-pprint-text
      }:
      mkDerivation {
        pname = "morley";
-       version = "1.4.0";
-       sha256 = "0696bp3851plhwm9x0bq4i1j6ygkqi1m91r0m73cn2svl8b5mnmw";
+       version = "1.6.0";
+       sha256 = "0i06yh7v2zz8lcjhc96k5wsfj9i401mgs05myg46ml04zz4pw408";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson aeson-casing aeson-pretty base base16-bytestring
-         base58-bytestring binary bytestring constraints containers
-         criterion cryptonite data-default first-class-families fmt
-         formatting ghc-prim gitrev hedgehog hex-text hspec
-         hspec-expectations HUnit interpolate lens megaparsec memory
-         morley-prelude mtl named o-clock optparse-applicative
-         parser-combinators QuickCheck quickcheck-arbitrary-adt
-         quickcheck-instances semigroups show-type singletons statistics syb
-         tasty tasty-ant-xml tasty-hedgehog tasty-hunit-compat
-         tasty-quickcheck template-haskell text th-lift th-lift-instances
-         time timerep transformers-compat unordered-containers vector vinyl
+         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 QuickCheck
+         quickcheck-arbitrary-adt quickcheck-instances semigroups show-type
+         singletons syb template-haskell text th-lift th-lift-instances time
+         timerep transformers-compat unordered-containers vector vinyl
          wl-pprint-text
        ];
        executableHaskellDepends = [
-         base fmt morley-prelude named optparse-applicative pretty-simple
-       ];
-       testHaskellDepends = [
-         aeson base bytestring containers data-default directory filepath
-         fmt formatting hedgehog hex-text hspec hspec-expectations HUnit
-         lens megaparsec morley-prelude singletons syb tasty tasty-hedgehog
-         tasty-hspec tasty-hunit-compat text unordered-containers
-       ];
-       testToolDepends = [ tasty-discover ];
-       benchmarkHaskellDepends = [
-         base containers gauge megaparsec morley-prelude
+         aeson base bytestring fmt haskeline megaparsec morley-prelude named
+         optparse-applicative pretty-simple text vinyl
        ];
        description = "Developer tools for the Michelson Language";
        license = stdenv.lib.licenses.mit;
@@ -171455,7 +174708,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "morpheus-graphql_0_13_0" = callPackage
+  "morpheus-graphql_0_14_1" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, megaparsec
      , morpheus-graphql-core, mtl, scientific, tasty, tasty-hunit
      , template-haskell, text, transformers, unliftio-core
@@ -171463,8 +174716,8 @@ self: {
      }:
      mkDerivation {
        pname = "morpheus-graphql";
-       version = "0.13.0";
-       sha256 = "0gcrgpdiazridddm9imjhsx05cnqxxb24dhg18d9n6c1qm1d4q30";
+       version = "0.14.1";
+       sha256 = "1vyb3jqnsmsjyl3zc0rh3c77ma3s5pgcqph4ijafhlm44fk6s82z";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring containers megaparsec morpheus-graphql-core
@@ -171504,17 +174757,23 @@ self: {
      }) {};
 
   "morpheus-graphql-client" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, morpheus-graphql-core
-     , mtl, template-haskell, text, transformers, unordered-containers
+    ({ mkDerivation, aeson, base, bytestring, directory
+     , morpheus-graphql-core, mtl, tasty, tasty-hunit, template-haskell
+     , text, transformers, unordered-containers
      }:
      mkDerivation {
        pname = "morpheus-graphql-client";
-       version = "0.13.0";
-       sha256 = "0m1a379csfs3bqysl8ai2k7ybpb2gbm9w1rccgr41p9lk7w2w40k";
+       version = "0.14.1";
+       sha256 = "0q5cb5db1fdnp685jkmary43m6l4w8bhlqs5zh4h0q1lmkfz13n8";
+       enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring morpheus-graphql-core mtl template-haskell
          text transformers unordered-containers
        ];
+       testHaskellDepends = [
+         aeson base bytestring directory morpheus-graphql-core mtl tasty
+         tasty-hunit template-haskell text transformers unordered-containers
+       ];
        description = "Morpheus GraphQL Client";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -171545,7 +174804,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "morpheus-graphql-core_0_13_0" = callPackage
+  "morpheus-graphql-core_0_14_1" = callPackage
     ({ mkDerivation, aeson, base, bytestring, directory, hashable
      , megaparsec, mtl, scientific, tasty, tasty-hunit, template-haskell
      , text, th-lift-instances, transformers, unordered-containers
@@ -171553,8 +174812,8 @@ self: {
      }:
      mkDerivation {
        pname = "morpheus-graphql-core";
-       version = "0.13.0";
-       sha256 = "0ix5n3c1db6qa6zdk74r890klc81wa1f4mdlqln6g039dbh423j7";
+       version = "0.14.1";
+       sha256 = "0xqam41z0i9f2bsa8z7gh3x2fhvy8qa02a1r4gix7dnymi69bbgj";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring hashable megaparsec mtl scientific
@@ -171944,8 +175203,8 @@ self: {
     ({ mkDerivation, base, bytestring, c2hs, monad-loops, mpich }:
      mkDerivation {
        pname = "mpi-hs";
-       version = "0.7.1.2";
-       sha256 = "0dhhvvncmsg6rnb16pi1da4zb82hlwyia0l5xxqz6s7518q0amkh";
+       version = "0.7.2.0";
+       sha256 = "1d68py61h09qshzr3lx66cgs2f2kxzdmy3z35hsf96wi9aqz3fr5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring monad-loops ];
@@ -172055,17 +175314,17 @@ self: {
 
   "mprelude" = callPackage
     ({ mkDerivation, base, devtools, source-constraints, text
-     , text-conversions
+     , unliftio-core
      }:
      mkDerivation {
        pname = "mprelude";
-       version = "0.1.0";
-       sha256 = "0p7zx0b49dp2vd3mx3knfl9gqbh6sj2znc372bmh6ja57g1kv8ds";
+       version = "0.2.0";
+       sha256 = "0llkcbilz138zlrqmsny74g9ybjf665h7w84g0q0rli9dvjnc4bl";
        libraryHaskellDepends = [
-         base source-constraints text text-conversions
+         base source-constraints text unliftio-core
        ];
        testHaskellDepends = [
-         base devtools source-constraints text text-conversions
+         base devtools source-constraints text unliftio-core
        ];
        description = "A minimalish prelude";
        license = stdenv.lib.licenses.bsd3;
@@ -172242,8 +175501,8 @@ self: {
     ({ mkDerivation, base, hspec }:
      mkDerivation {
        pname = "mr-env";
-       version = "0.1.0.3";
-       sha256 = "01dq9wac3jvbhll3kqjid5xy66hf11r382w8c1hhvmfd5j9bp0n4";
+       version = "0.1.0.4";
+       sha256 = "05f89d0lxmi8w7hgdlqrgxh2abnjghcgjhzmra41p28h26adqnfm";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec ];
        description = "A simple way to read environment variables in Haskell";
@@ -173368,6 +176627,8 @@ self: {
        testHaskellDepends = [ base cryptonite doctest hedgehog ];
        description = "Self-identifying hashes, implementation of <https://github.com/multiformats/multihash>";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "multihash-serialise" = callPackage
@@ -174194,21 +177455,22 @@ self: {
      }) {};
 
   "musicScroll" = callPackage
-    ({ mkDerivation, async, base, bytestring, containers, cryptonite
-     , dbus, deepseq, directory, gi-gtk, gi-gtk-hs, gtk3, mtl, req
-     , sqlite-simple, stm, tagsoup, text, transformers, xdg-basedir
+    ({ mkDerivation, async, base, bytestring, containers, contravariant
+     , cryptonite, dbus, deepseq, directory, gi-gtk, gi-gtk-hs, gtk3
+     , mtl, pipes, pipes-concurrency, req, sqlite-simple, stm, tagsoup
+     , text, transformers, xdg-basedir
      }:
      mkDerivation {
        pname = "musicScroll";
-       version = "0.2.3.3";
-       sha256 = "029k470w8mkqjjan615pbdgzln0fbrcqnpwqhzcc3r79kz4yafzj";
+       version = "0.3.1.0";
+       sha256 = "0ssf841r00zgy8h1l2041hs936mpsqpp4nwr3v6w4b5bva2p9jhn";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         async base bytestring containers cryptonite dbus deepseq directory
-         gi-gtk gi-gtk-hs mtl req sqlite-simple stm tagsoup text
-         transformers xdg-basedir
+         async base bytestring containers contravariant cryptonite dbus
+         deepseq directory gi-gtk gi-gtk-hs mtl pipes pipes-concurrency req
+         sqlite-simple stm tagsoup text transformers xdg-basedir
        ];
        executableHaskellDepends = [ base ];
        executablePkgconfigDepends = [ gtk3 ];
@@ -174260,8 +177522,8 @@ self: {
      }:
      mkDerivation {
        pname = "musicw";
-       version = "0.3.5";
-       sha256 = "1fkkx6gsfcb138vr7f685wg0wbqhr2sk9h4vqiv8r254hkwzl91h";
+       version = "0.3.5.2";
+       sha256 = "0mn5vnjxqkpd2pgjxmchlih74a1m52v06h6f08kyb26l0sjpbfx7";
        libraryHaskellDepends = [
          array base bytestring containers data-default file-embed ghcjs-base
          ghcjs-dom ghcjs-prim json monad-loops mtl safe text time
@@ -174384,17 +177646,17 @@ self: {
      }) {};
 
   "mutable" = callPackage
-    ({ mkDerivation, base, constraints, criterion, deepseq, directory
-     , generic-lens, generic-lens-core, microlens, microlens-th
-     , primitive, reflection, time, transformers, vector, vinyl
+    ({ mkDerivation, base, criterion, deepseq, directory, generic-lens
+     , generic-lens-core, microlens, microlens-th, primitive
+     , template-haskell, time, transformers, vector, vinyl
      }:
      mkDerivation {
        pname = "mutable";
-       version = "0.1.0.1";
-       sha256 = "1hcyijjq0s71jpa3bwxgk3dbnmyfq07cd8bwssj1aykpaaay3k9j";
+       version = "0.2.2.0";
+       sha256 = "03ahbhnn52mc1wsja3x6cc6ykxx4vqfjb5w5lgi4qiqsc387j16q";
        libraryHaskellDepends = [
-         base constraints generic-lens generic-lens-core primitive
-         reflection transformers vector vinyl
+         base generic-lens generic-lens-core primitive template-haskell
+         transformers vector vinyl
        ];
        benchmarkHaskellDepends = [
          base criterion deepseq directory microlens microlens-th time
@@ -174549,8 +177811,8 @@ self: {
      }:
      mkDerivation {
        pname = "mwc-probability";
-       version = "2.3.0";
-       sha256 = "1rk5n015a24bv49m2qnc66iv5hcw99zk9zflqv99pxxbpia6kiyj";
+       version = "2.3.1";
+       sha256 = "15gpvx1rhr24zvj6pfgyy9g2vnhgym5crmz4py3nly2jcmy9k39z";
        libraryHaskellDepends = [
          base containers mwc-random primitive transformers
        ];
@@ -174575,6 +177837,8 @@ self: {
        ];
        description = "A Markov stochastic transition operator with logging";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "mwc-random" = callPackage
@@ -174591,14 +177855,37 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "mwc-random_0_15_0_1" = callPackage
+    ({ mkDerivation, base, bytestring, doctest, gauge, math-functions
+     , mersenne-random, primitive, QuickCheck, random, tasty
+     , tasty-hunit, tasty-quickcheck, time, vector
+     }:
+     mkDerivation {
+       pname = "mwc-random";
+       version = "0.15.0.1";
+       sha256 = "1p8c5g4hb72k90ai39rgpn6cr942i6636l1y0zfp9xgjb3v0a2q3";
+       libraryHaskellDepends = [
+         base math-functions primitive random time vector
+       ];
+       testHaskellDepends = [
+         base bytestring doctest primitive QuickCheck random tasty
+         tasty-hunit tasty-quickcheck vector
+       ];
+       benchmarkHaskellDepends = [
+         base gauge mersenne-random random vector
+       ];
+       doCheck = false;
+       description = "Fast, high quality pseudo random number generation";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "mwc-random-accelerate" = callPackage
     ({ mkDerivation, accelerate, base, mwc-random }:
      mkDerivation {
        pname = "mwc-random-accelerate";
-       version = "0.1.0.0";
-       sha256 = "1qrji6b39zp5wrgz5c59xv06l3khhp4fv2ybdmx4ac5i28yx7yih";
-       revision = "3";
-       editedCabalFile = "1a7xx3mcli9fx5lqg1zxwqbrgzvgbssn3vprh4wp8zg58pqic6ic";
+       version = "0.2.0.0";
+       sha256 = "1a8b36l60p29461y0gacgjzarlyrncl54r7x4zh2rgvs2w7mjdc5";
        libraryHaskellDepends = [ accelerate base mwc-random ];
        description = "Generate Accelerate arrays filled with high quality pseudorandom numbers";
        license = stdenv.lib.licenses.bsd3;
@@ -175104,17 +178391,20 @@ self: {
      }) {};
 
   "myxine-client" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, dependent-map
-     , dependent-sum, file-embed, hashable, http-client, http-types, req
-     , template-haskell, text, transformers, unordered-containers
+    ({ mkDerivation, aeson, async, base, blaze-html, blaze-markup
+     , bytestring, constraints, containers, dependent-map, file-embed
+     , hashable, http-client, http-types, lens, modern-uri, mtl, req
+     , salve, some, spoon, template-haskell, text, transformers
+     , unordered-containers
      }:
      mkDerivation {
        pname = "myxine-client";
-       version = "0.0.0.2";
-       sha256 = "1pfvkdc7pa7x16skdcx355l20qk6574nhkjyzpk9jb7i0wqjqsf8";
+       version = "0.0.1.2";
+       sha256 = "0399pig7nw6k1hjw16mjg7lh6z1vd0xhq625wbx76ispwk6gqifb";
        libraryHaskellDepends = [
-         aeson base bytestring dependent-map dependent-sum file-embed
-         hashable http-client http-types req template-haskell text
+         aeson async base blaze-html blaze-markup bytestring constraints
+         containers dependent-map file-embed hashable http-client http-types
+         lens modern-uri mtl req salve some spoon template-haskell text
          transformers unordered-containers
        ];
        testHaskellDepends = [ bytestring text ];
@@ -175426,6 +178716,46 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "named-servant" = callPackage
+    ({ mkDerivation, base, named, servant }:
+     mkDerivation {
+       pname = "named-servant";
+       version = "0.0.2";
+       sha256 = "0i20c41gwyz5b75sn6a90c3yks4zgkpr5vfb6iqxqxpwyw76g3is";
+       libraryHaskellDepends = [ base named servant ];
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "named-servant-client" = callPackage
+    ({ mkDerivation, base, named, named-servant, servant
+     , servant-client-core
+     }:
+     mkDerivation {
+       pname = "named-servant-client";
+       version = "0.0.2";
+       sha256 = "06a5v4hxb3xafp7745iz8mfd26b4y3j31n2vsivn5v6r0prpi03c";
+       libraryHaskellDepends = [
+         base named named-servant servant servant-client-core
+       ];
+       description = "client support for named-servant";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "named-servant-server" = callPackage
+    ({ mkDerivation, base, named, named-servant, servant
+     , servant-server
+     }:
+     mkDerivation {
+       pname = "named-servant-server";
+       version = "0.0.2";
+       sha256 = "1whsg23kw1qydiy2a59ni57sr97dfhnwlaq7bbgzv2vxmsq2s1g7";
+       libraryHaskellDepends = [
+         base named named-servant servant servant-server
+       ];
+       description = "server support for named-servant";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "named-sop" = callPackage
     ({ mkDerivation, base, singletons, tasty, tasty-hunit, text }:
      mkDerivation {
@@ -176133,15 +179463,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "neat-interpolation_0_5_1" = callPackage
+  "neat-interpolation_0_5_1_2" = callPackage
     ({ mkDerivation, base, megaparsec, QuickCheck, quickcheck-instances
      , rerebase, tasty, tasty-hunit, tasty-quickcheck, template-haskell
      , text
      }:
      mkDerivation {
        pname = "neat-interpolation";
-       version = "0.5.1";
-       sha256 = "0hfyd74f83mxakahgj6q3wy2r1yg1zbsw1750k7zmwaqn3f8gzjz";
+       version = "0.5.1.2";
+       sha256 = "18c48r5qwrapkjh35l5dng3ahkkn1ch47vc4nzjwh4a9va94laln";
        libraryHaskellDepends = [ base megaparsec template-haskell text ];
        testHaskellDepends = [
          QuickCheck quickcheck-instances rerebase tasty tasty-hunit
@@ -176917,8 +180247,8 @@ self: {
        pname = "netrc";
        version = "0.2.0.0";
        sha256 = "11iax3ick0im397jyyjkny7lax9bgrlgk90a25dp2jsglkphfpls";
-       revision = "6";
-       editedCabalFile = "0mn0ar2xhjdsm50kmpw5ndvbyfmc30b3x0bx291d2ml7hqspnnsw";
+       revision = "7";
+       editedCabalFile = "0cmkwkqxzbhrzzwypvmamwcr5ndyk1qc5pjy1rnc50xx7wznw7hf";
        libraryHaskellDepends = [ base bytestring deepseq parsec ];
        testHaskellDepends = [
          base bytestring tasty tasty-golden tasty-quickcheck
@@ -177194,6 +180524,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "network_3_1_2_0" = callPackage
+    ({ mkDerivation, base, bytestring, deepseq, directory, hspec
+     , hspec-discover, HUnit, QuickCheck, temporary
+     }:
+     mkDerivation {
+       pname = "network";
+       version = "3.1.2.0";
+       sha256 = "07zbaaa4f0rnc4xqg5kbzqivmr9lqz2g6bw01gmqkmh9k9svsap0";
+       revision = "1";
+       editedCabalFile = "079svy0nr035xhz4gd6cila0wvsjl23hi3hq5407m3qdmcf4rkis";
+       libraryHaskellDepends = [ base bytestring deepseq directory ];
+       testHaskellDepends = [
+         base bytestring directory hspec HUnit QuickCheck temporary
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Low-level networking interface";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "network-address" = callPackage
     ({ mkDerivation, base, Cabal, QuickCheck, test-framework
      , test-framework-quickcheck2
@@ -177861,8 +181211,8 @@ self: {
     ({ mkDerivation, base, bytestring, network }:
      mkDerivation {
        pname = "network-run";
-       version = "0.2.3";
-       sha256 = "026l8j1nfgvs3lknn3fvsjj4x4niykhn99h5kywc47347b91xl3n";
+       version = "0.2.4";
+       sha256 = "0w3dmwk03j4n01xkiq8m4sqa27bskh239mpw7m4ihjmkxqcwc5gl";
        libraryHaskellDepends = [ base bytestring network ];
        description = "Simple network runner library";
        license = stdenv.lib.licenses.bsd3;
@@ -178218,8 +181568,8 @@ self: {
      }:
      mkDerivation {
        pname = "network-uri-json";
-       version = "0.3.1.1";
-       sha256 = "0akyhgi79pzhvfq47risrqmr6hi409fnz1ivwpwwfc4laimf3mky";
+       version = "0.4.0.0";
+       sha256 = "1hnsk8xsa89p4ywvyb4xfdk3l16mlhmb73sy1vbgckc7mlv3mmb4";
        libraryHaskellDepends = [ aeson base network-uri text ];
        testHaskellDepends = [
          aeson base hspec network-arbitrary network-uri test-invariant text
@@ -178408,42 +181758,54 @@ self: {
 
   "neuron" = callPackage
     ({ mkDerivation, aeson, aeson-gadt-th, algebraic-graphs, base, clay
-     , containers, data-default, dependent-sum, dependent-sum-template
-     , dhall, directory, exceptions, file-embed, filepath, filepattern
-     , foldl, gitrev, hspec, lucid, megaparsec, mmark, mmark-ext
-     , modern-uri, mtl, optparse-applicative, pandoc, parser-combinators
-     , QuickCheck, relude, rib, shake, text, time, unix, uuid, which
+     , commonmark, commonmark-extensions, commonmark-pandoc, containers
+     , data-default, dependent-sum, dependent-sum-aeson-orphans
+     , dependent-sum-template, dhall, directory, either, exceptions
+     , file-embed, filepath, filepattern, foldl, hspec, HsYAML
+     , iso8601-time, megaparsec, modern-uri, mtl, optparse-applicative
+     , pandoc, pandoc-types, parsec, parser-combinators, QuickCheck
+     , reflex, reflex-dom-core, reflex-dom-pandoc, relude, rib, shake
+     , shower, skylighting-core, tagged, text, time, unix, uuid, which
      , with-utf8
      }:
      mkDerivation {
        pname = "neuron";
-       version = "0.4.0.0";
-       sha256 = "1iw63qnq484zhi2fil050hswz1hl9cvygpqalhbbhnvry3f9bqkf";
+       version = "0.6.0.0";
+       sha256 = "1gqkypmlhv9hl0d3afjllv9a1ld0dw9qxnk9v1qlmgz65g22b6nr";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson algebraic-graphs base containers filepath filepattern
-         megaparsec mmark mtl parser-combinators relude text time
+         aeson aeson-gadt-th algebraic-graphs base clay commonmark
+         commonmark-extensions commonmark-pandoc containers data-default
+         dependent-sum dependent-sum-aeson-orphans dependent-sum-template
+         filepath filepattern HsYAML megaparsec modern-uri mtl pandoc-types
+         parsec parser-combinators reflex reflex-dom-core reflex-dom-pandoc
+         relude tagged text time
        ];
        executableHaskellDepends = [
-         aeson aeson-gadt-th algebraic-graphs base clay containers
-         data-default dependent-sum dependent-sum-template dhall directory
-         exceptions file-embed filepath filepattern foldl gitrev lucid
-         megaparsec mmark mmark-ext modern-uri mtl optparse-applicative
-         pandoc parser-combinators relude rib shake text time unix uuid
-         which with-utf8
+         aeson aeson-gadt-th algebraic-graphs base clay commonmark
+         commonmark-extensions commonmark-pandoc containers data-default
+         dependent-sum dependent-sum-aeson-orphans dependent-sum-template
+         dhall directory either exceptions file-embed filepath filepattern
+         foldl HsYAML iso8601-time megaparsec modern-uri mtl
+         optparse-applicative pandoc pandoc-types parsec parser-combinators
+         reflex reflex-dom-core reflex-dom-pandoc relude rib shake shower
+         skylighting-core tagged text time unix uuid which with-utf8
        ];
        testHaskellDepends = [
-         aeson aeson-gadt-th algebraic-graphs base clay containers
-         data-default dependent-sum dependent-sum-template dhall directory
-         exceptions file-embed filepath filepattern foldl gitrev hspec lucid
-         megaparsec mmark mmark-ext modern-uri mtl optparse-applicative
-         pandoc parser-combinators QuickCheck relude rib shake text time
-         unix uuid which with-utf8
+         aeson aeson-gadt-th algebraic-graphs base clay commonmark
+         commonmark-extensions commonmark-pandoc containers data-default
+         dependent-sum dependent-sum-aeson-orphans dependent-sum-template
+         dhall directory either exceptions file-embed filepath filepattern
+         foldl hspec HsYAML iso8601-time megaparsec modern-uri mtl
+         optparse-applicative pandoc pandoc-types parsec parser-combinators
+         QuickCheck reflex reflex-dom-core reflex-dom-pandoc relude rib
+         shake shower skylighting-core tagged text time unix uuid which
+         with-utf8
        ];
-       description = "Haskell meets Zettelkasten, for your plain-text delight";
-       license = stdenv.lib.licenses.bsd3;
+       description = "Future-proof system for plain-text notes";
+       license = stdenv.lib.licenses.agpl3;
        maintainers = with stdenv.lib.maintainers; [ maralorn ];
      }) {};
 
@@ -178587,6 +181949,8 @@ self: {
        pname = "newtype";
        version = "0.2.2.0";
        sha256 = "1b7bamnd0p8vmxvlg39g5d4a2av49kx10rdyz04ixa28pg8zy01s";
+       revision = "1";
+       editedCabalFile = "0261ljw57c7l7mw3z553s6ak8lmgyqwmfhk1m2jv6snra2i5shs4";
        libraryHaskellDepends = [ base ];
        description = "A typeclass and set of functions for working with newtypes";
        license = stdenv.lib.licenses.bsd3;
@@ -178803,21 +182167,21 @@ self: {
      }) {};
 
   "ngx-export-tools-extra" = callPackage
-    ({ mkDerivation, aeson, ansi-wl-pprint, base, base64, binary
+    ({ mkDerivation, aeson, ansi-wl-pprint, array, base, base64, binary
      , bytestring, case-insensitive, containers, ede
      , enclosed-exceptions, http-client, http-types, ngx-export
-     , ngx-export-tools, snap-core, snap-server, template-haskell, text
-     , time, trifecta, unordered-containers
+     , ngx-export-tools, safe, snap-core, snap-server, template-haskell
+     , text, time, trifecta, unordered-containers
      }:
      mkDerivation {
        pname = "ngx-export-tools-extra";
-       version = "0.4.1.1";
-       sha256 = "15d5dj8mdihj8m559lrfwwpb55nkkkapwd9x84jxsv6pmnh5m0qh";
+       version = "0.5.5.1";
+       sha256 = "0x3c1r0ddbk740182gwv43s2zxr6aj9k6y4npv7vi0fwyxjcqgkj";
        libraryHaskellDepends = [
-         aeson ansi-wl-pprint base base64 binary bytestring case-insensitive
-         containers ede enclosed-exceptions http-client http-types
-         ngx-export ngx-export-tools snap-core snap-server template-haskell
-         text time trifecta unordered-containers
+         aeson ansi-wl-pprint array base base64 binary bytestring
+         case-insensitive containers ede enclosed-exceptions http-client
+         http-types ngx-export ngx-export-tools safe snap-core snap-server
+         template-haskell text time trifecta unordered-containers
        ];
        description = "More extra tools for Nginx haskell module";
        license = stdenv.lib.licenses.bsd3;
@@ -179046,8 +182410,8 @@ self: {
      }:
      mkDerivation {
        pname = "niv";
-       version = "0.2.13";
-       sha256 = "11znn37j15gzwg6nh6z4k5ijxyyc7gbirnrwlhh4b8868d9axjfy";
+       version = "0.2.16";
+       sha256 = "0z2wws28nl7xd5fbc5za287y8ryvfrgha4qh7aahr3x1j9sywpyg";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -179267,6 +182631,47 @@ self: {
        broken = true;
      }) {};
 
+  "nix-tree" = callPackage
+    ({ mkDerivation, aeson, async, base, brick, containers, deepseq
+     , directory, filepath, hashable, hrfsize, lens, parallel, protolude
+     , text, transformers, typed-process, unordered-containers, vty
+     }:
+     mkDerivation {
+       pname = "nix-tree";
+       version = "0.1.1.0";
+       sha256 = "1dciwsw7cv1f73awrqr3gw3zj3mizaw53q3ibkawq9gbfsfg8yiz";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson async base brick containers deepseq directory filepath
+         hashable hrfsize lens parallel protolude text transformers
+         typed-process unordered-containers vty
+       ];
+       description = "Interactively browse a Nix store paths dependencies";
+       license = stdenv.lib.licenses.bsd3;
+       maintainers = with stdenv.lib.maintainers; [ utdemir ];
+     }) {};
+
+  "nixdu" = callPackage
+    ({ mkDerivation, aeson, async, base, brick, containers, deepseq
+     , directory, filepath, hashable, hrfsize, lens, parallel, protolude
+     , text, transformers, typed-process, unordered-containers, vty
+     }:
+     mkDerivation {
+       pname = "nixdu";
+       version = "0.1.0.0";
+       sha256 = "1a9ng3xaiddnmfjzd1dsmxf87114n6ga43w8hsij06p0la84mqq5";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson async base brick containers deepseq directory filepath
+         hashable hrfsize lens parallel protolude text transformers
+         typed-process unordered-containers vty
+       ];
+       description = "Interactively browse a Nix store paths dependencies";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "nixfmt" = callPackage
     ({ mkDerivation, base, cmdargs, directory, filepath, megaparsec
      , parser-combinators, safe-exceptions, text, unix
@@ -179608,6 +183013,22 @@ self: {
        broken = true;
      }) {};
 
+  "noli" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cmark, directory
+     , frontmatter, lucid, regex-compat, text, yaml
+     }:
+     mkDerivation {
+       pname = "noli";
+       version = "0.1.1.0";
+       sha256 = "043rjr7p8jj33bkrl3mz7qbzl1az0v8acmbbzv8a6j6cpdd8vcxr";
+       libraryHaskellDepends = [
+         aeson base bytestring cmark directory frontmatter lucid
+         regex-compat text yaml
+       ];
+       description = "A static site generator";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "nom" = callPackage
     ({ mkDerivation, algebra, base, base-compat, Cabal, cabal-doctest
      , containers, data-default, doctest, extra, finite-typelits, flow
@@ -179616,8 +183037,8 @@ self: {
      }:
      mkDerivation {
        pname = "nom";
-       version = "0.1.0.0";
-       sha256 = "17vwi6rna2zscw8n34zyx1vmsa0dkl02r1ji362pn1p0v0yclii5";
+       version = "0.1.0.2";
+       sha256 = "18vgasg9szc88pa61gw6qpasx6l9jx0z9lm36xa96j4ml4vr3ddf";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          algebra base containers data-default extra finite-typelits flow
@@ -179899,17 +183320,17 @@ self: {
      }) {};
 
   "nonempty-containers" = callPackage
-    ({ mkDerivation, base, comonad, containers, deepseq, hedgehog
-     , hedgehog-fn, nonempty-vector, semigroupoids, tasty
+    ({ mkDerivation, aeson, base, comonad, containers, deepseq
+     , hedgehog, hedgehog-fn, nonempty-vector, semigroupoids, tasty
      , tasty-hedgehog, text, these, vector
      }:
      mkDerivation {
        pname = "nonempty-containers";
-       version = "0.3.3.0";
-       sha256 = "11mrv2vzdqxjx3xn93zlwfxh7z2d5ca5cbsr25y4zv34brn114g2";
+       version = "0.3.4.1";
+       sha256 = "0cpn0f0gnir9w366hw2906316qx5yc06rrrlv67xba1p66507m83";
        libraryHaskellDepends = [
-         base comonad containers deepseq nonempty-vector semigroupoids these
-         vector
+         aeson base comonad containers deepseq nonempty-vector semigroupoids
+         these vector
        ];
        testHaskellDepends = [
          base comonad containers hedgehog hedgehog-fn nonempty-vector
@@ -180055,8 +183476,8 @@ self: {
        pname = "normalization-insensitive";
        version = "2.0.1";
        sha256 = "00nbha984yg4lxnpkyd3q0gbywf7xn5z5ixy3cr9ksn05w6blm1v";
-       revision = "3";
-       editedCabalFile = "1p1pw5llhw0jp1w8yvwd79w06lk7rz74rryppzvw8vpc5axl99bq";
+       revision = "4";
+       editedCabalFile = "1p0vxvp44nzjn7big9m3wj8gvffaxz05c46jalm73fwm8cj54iqf";
        libraryHaskellDepends = [
          base bytestring deepseq hashable text unicode-transforms
        ];
@@ -180802,25 +184223,6 @@ self: {
      }:
      mkDerivation {
        pname = "numeric-prelude";
-       version = "0.4.3.1";
-       sha256 = "0531yjw1rzbv3snv1lc955350frgf8526slsxbx3ias71krbdr69";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         array base containers deepseq non-negative parsec QuickCheck random
-         semigroups storable-record utility-ht
-       ];
-       description = "An experimental alternative hierarchy of numeric type classes";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "numeric-prelude_0_4_3_2" = callPackage
-    ({ mkDerivation, array, base, containers, deepseq, non-negative
-     , parsec, QuickCheck, random, semigroups, storable-record
-     , utility-ht
-     }:
-     mkDerivation {
-       pname = "numeric-prelude";
        version = "0.4.3.2";
        sha256 = "1vd777ax2yvxknfxp9isgjk7cabjv3q86dgf3hybv78hc4ji5gmq";
        isLibrary = true;
@@ -180831,7 +184233,6 @@ self: {
        ];
        description = "An experimental alternative hierarchy of numeric type classes";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "numeric-qq" = callPackage
@@ -180938,13 +184339,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "numhask_0_5_0" = callPackage
-    ({ mkDerivation, base }:
+  "numhask_0_6_0_2" = callPackage
+    ({ mkDerivation, base, bifunctors, mmorph, protolude, text
+     , transformers
+     }:
      mkDerivation {
        pname = "numhask";
-       version = "0.5.0";
-       sha256 = "0lqwpa3kmgphimy48asi6dxa1mhkjkjvn2bsy1sl5mkf2y93gwrb";
-       libraryHaskellDepends = [ base ];
+       version = "0.6.0.2";
+       sha256 = "1x8p92plblqz5kykqci86wjfvb79gsi00l0a5i2r1frs6imjvkjf";
+       libraryHaskellDepends = [
+         base bifunctors mmorph protolude text transformers
+       ];
        description = "numeric classes";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -180952,20 +184357,16 @@ self: {
 
   "numhask-array" = callPackage
     ({ mkDerivation, adjunctions, base, deepseq, distributive, doctest
-     , hedgehog, hmatrix, numhask, numhask-hedgehog, numhask-prelude
-     , protolude, vector
+     , hmatrix, numhask, vector
      }:
      mkDerivation {
        pname = "numhask-array";
-       version = "0.6.0";
-       sha256 = "1pi9rp6j27pbh4ijbzhazznmyz2079b4h1p3sbnsn09bj35zh7z3";
+       version = "0.7.0";
+       sha256 = "1izfym0y9920i2pbzil3z3sn8rzk23lj1rbgj0x0hc7y2p0w5lbm";
        libraryHaskellDepends = [
-         adjunctions base deepseq distributive hmatrix numhask
-         numhask-prelude protolude vector
-       ];
-       testHaskellDepends = [
-         base doctest hedgehog numhask-hedgehog numhask-prelude
+         adjunctions base deepseq distributive hmatrix numhask vector
        ];
+       testHaskellDepends = [ base doctest numhask ];
        description = "n-dimensional arrays";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -181046,18 +184447,17 @@ self: {
 
   "numhask-space" = callPackage
     ({ mkDerivation, adjunctions, base, containers, distributive
-     , doctest, foldl, lattices, protolude, semigroupoids, tdigest, text
-     , time
+     , doctest, numhask, semigroupoids, tdigest, text, time
      }:
      mkDerivation {
        pname = "numhask-space";
-       version = "0.4.0";
-       sha256 = "0p7pr314wm9mqmsn2jwxpr4z7dplb9nq7rih7c3qxc01lla3i59j";
+       version = "0.6.0";
+       sha256 = "0zm64spljv7pvl68b60y7hr46fa82i44j7yk8q6i33nhr78qv7wy";
        libraryHaskellDepends = [
-         adjunctions base containers distributive foldl lattices protolude
-         semigroupoids tdigest text time
+         adjunctions base containers distributive numhask semigroupoids
+         tdigest text time
        ];
-       testHaskellDepends = [ base doctest ];
+       testHaskellDepends = [ base doctest numhask ];
        description = "numerical spaces";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -181179,8 +184579,8 @@ self: {
      }:
      mkDerivation {
        pname = "nvim-hs";
-       version = "2.1.0.3";
-       sha256 = "19834hldpywsg52144i9b372msmw5pcj7v0fwiii14pns4sf6v7v";
+       version = "2.1.0.4";
+       sha256 = "0bg94adja6xvzlv1x849nrfpb0i5mjbp19f9cwhaa4iw1qs532rf";
        libraryHaskellDepends = [
          base bytestring cereal cereal-conduit conduit containers
          data-default deepseq foreign-store hslogger megaparsec messagepack
@@ -181202,6 +184602,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Haskell plugin backend for neovim";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "nvim-hs-contrib" = callPackage
@@ -181225,6 +184627,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Haskell plugin backend for neovim";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "nvim-hs-ghcid" = callPackage
@@ -181245,6 +184649,8 @@ self: {
        executableHaskellDepends = [ base nvim-hs ];
        description = "Neovim plugin that runs ghcid to update the quickfix list";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "nvvm" = callPackage
@@ -181253,12 +184659,14 @@ self: {
      }:
      mkDerivation {
        pname = "nvvm";
-       version = "0.9.0.0";
-       sha256 = "00ggaycs5z2b617kgjv851ahrakd4v8w374qbym19r1ccrxkdhhb";
+       version = "0.10.0.0";
+       sha256 = "188zf4hlqgjj5xgsfvrkynhq8pc29qfkaz6rp61ij3adc30410al";
        setupHaskellDepends = [
          base Cabal cuda directory filepath template-haskell
        ];
-       libraryHaskellDepends = [ base bytestring cuda template-haskell ];
+       libraryHaskellDepends = [
+         base bytestring cuda directory filepath template-haskell
+       ];
        libraryToolDepends = [ c2hs ];
        description = "FFI bindings to NVVM";
        license = stdenv.lib.licenses.bsd3;
@@ -181364,6 +184772,28 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "o-clock_1_2_0" = callPackage
+    ({ mkDerivation, base, doctest, ghc-prim, Glob, hedgehog
+     , markdown-unlit, tasty, tasty-hedgehog, tasty-hspec, type-spec
+     }:
+     mkDerivation {
+       pname = "o-clock";
+       version = "1.2.0";
+       sha256 = "0l8bwv0sagfpyfray4g1nnwb8zl4b2nljwxxwhh71vfhz620vrkx";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base ghc-prim ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base doctest Glob hedgehog markdown-unlit tasty tasty-hedgehog
+         tasty-hspec type-spec
+       ];
+       testToolDepends = [ doctest markdown-unlit ];
+       description = "Type-safe time library";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "oanda-rest-api" = callPackage
     ({ mkDerivation, aeson, base, bytestring, conduit, containers
      , Decimal, hlint, hspec, http-client, http-conduit, HUnit, lens
@@ -181869,8 +185299,8 @@ self: {
      }:
      mkDerivation {
        pname = "odd-jobs";
-       version = "0.2.1";
-       sha256 = "0s0sjy91pq7lqhc75cf6z478b956af7af2959g9qaa879vw9bx2k";
+       version = "0.2.2";
+       sha256 = "1l6nyyn27yjn2gkd6yvdxi5iai5af96srkxia24npl5rna2cngfp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -182225,6 +185655,23 @@ self: {
        broken = true;
      }) {};
 
+  "om-http-logging" = callPackage
+    ({ mkDerivation, base, http-types, monad-logger, safe-exceptions
+     , uuid, wai
+     }:
+     mkDerivation {
+       pname = "om-http-logging";
+       version = "0.1.0.0";
+       sha256 = "16swgkk6w7sxnbfdz07vz3pkqjcpq27g1hswqvdxfq5gfq5kgp67";
+       libraryHaskellDepends = [
+         base http-types monad-logger safe-exceptions uuid wai
+       ];
+       description = "om-http-logging";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "omaketex" = callPackage
     ({ mkDerivation, base, optparse-applicative, shakespeare-text
      , shelly, text
@@ -182493,19 +185940,25 @@ self: {
      }) {};
 
   "online" = callPackage
-    ({ mkDerivation, backprop, base, doctest, foldl, tasty, tdigest
-     , vector, vector-algorithms
+    ({ mkDerivation, adjunctions, backprop, base, containers, doctest
+     , foldl, folds, generic-lens, hmatrix, lens, mwc-probability
+     , mwc-random, numhask, numhask-array, primitive, profunctors
+     , tdigest, text, vector, vector-algorithms
      }:
      mkDerivation {
        pname = "online";
-       version = "0.5.0";
-       sha256 = "1z7b2aq0zmd65qdi3s6hq17svkw2v62bap586za6kvnbq8fz5cys";
+       version = "0.6.0";
+       sha256 = "1yr3jq4gpjmgfd9q95n3b0g9ib2xjccc56m8mxlzsjxhnqc149jy";
        libraryHaskellDepends = [
-         backprop base foldl tdigest vector vector-algorithms
+         adjunctions backprop base containers foldl folds generic-lens
+         hmatrix lens mwc-probability mwc-random numhask numhask-array
+         primitive profunctors tdigest text vector vector-algorithms
        ];
-       testHaskellDepends = [ base doctest tasty ];
-       description = "online statistics";
+       testHaskellDepends = [ base doctest numhask ];
+       description = "See readme.md";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "online-csv" = callPackage
@@ -182602,10 +186055,36 @@ self: {
      }:
      mkDerivation {
        pname = "opaleye";
-       version = "0.6.7004.2";
-       sha256 = "0lmfpbrfy6l7nlkjn26smmv3n992b54xnplwm67jjpryaz7psdz1";
-       revision = "1";
-       editedCabalFile = "1gnig6gdpcz6zkzp9x97m9blhgha2z4ksd9pyqpvm6qrdsjpqsfp";
+       version = "0.6.7006.1";
+       sha256 = "0qg42qdk6gcziwfvjsjbwyj629grna2ay4pmh8myy3d1rznp6s93";
+       libraryHaskellDepends = [
+         aeson base base16-bytestring bytestring case-insensitive
+         contravariant postgresql-simple pretty product-profunctors
+         profunctors scientific semigroups text time time-locale-compat
+         transformers uuid void
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers contravariant dotenv hspec
+         hspec-discover multiset postgresql-simple product-profunctors
+         profunctors QuickCheck semigroups text time transformers uuid
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "An SQL-generating DSL targeting PostgreSQL";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "opaleye_0_7_0_0" = callPackage
+    ({ mkDerivation, aeson, base, base16-bytestring, bytestring
+     , case-insensitive, containers, contravariant, dotenv, hspec
+     , hspec-discover, multiset, postgresql-simple, pretty
+     , product-profunctors, profunctors, QuickCheck, scientific
+     , semigroups, text, time, time-locale-compat, transformers, uuid
+     , void
+     }:
+     mkDerivation {
+       pname = "opaleye";
+       version = "0.7.0.0";
+       sha256 = "1a4ymnfw7gdqf2b5lsrfhxf53ybjfcyx31fdxn52fv89jc2h2yiy";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring case-insensitive
          contravariant postgresql-simple pretty product-profunctors
@@ -182613,13 +186092,14 @@ self: {
          transformers uuid void
        ];
        testHaskellDepends = [
-         aeson base containers contravariant dotenv hspec hspec-discover
-         multiset postgresql-simple product-profunctors profunctors
-         QuickCheck semigroups text time transformers uuid
+         aeson base bytestring containers contravariant dotenv hspec
+         hspec-discover multiset postgresql-simple product-profunctors
+         profunctors QuickCheck semigroups text time transformers uuid
        ];
        testToolDepends = [ hspec-discover ];
        description = "An SQL-generating DSL targeting PostgreSQL";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "opaleye-classy" = callPackage
@@ -183411,6 +186891,21 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "opentelemetry_0_6_1" = callPackage
+    ({ mkDerivation, base, bytestring, exceptions, ghc-trace-events
+     , hashable
+     }:
+     mkDerivation {
+       pname = "opentelemetry";
+       version = "0.6.1";
+       sha256 = "0i88ciig40gil4gaj95qw28c2racdr2jb6rcpnsf60fzkqc8b3fk";
+       libraryHaskellDepends = [
+         base bytestring exceptions ghc-trace-events hashable
+       ];
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "opentelemetry-extra" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, clock, containers
      , directory, exceptions, filepath, ghc-events, hashable
@@ -183447,6 +186942,44 @@ self: {
        broken = true;
      }) {};
 
+  "opentelemetry-extra_0_6_1" = callPackage
+    ({ mkDerivation, aeson, async, base, binary, bytestring, clock
+     , containers, directory, exceptions, filepath, gauge
+     , generic-arbitrary, ghc-events, hashable, hashtables, http-client
+     , http-client-tls, http-types, hvega, opentelemetry, process
+     , QuickCheck, quickcheck-instances, random, scientific, splitmix
+     , stm, tasty, tasty-discover, tasty-hunit, tasty-quickcheck, text
+     , text-show, typed-process, unordered-containers
+     }:
+     mkDerivation {
+       pname = "opentelemetry-extra";
+       version = "0.6.1";
+       sha256 = "0ggxkhcrjj8sg6zf9jnp1j05wwlsay6k95c79j9j3dvw8qy2yjbx";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson async base binary bytestring clock containers directory
+         exceptions filepath ghc-events hashable http-client http-client-tls
+         http-types opentelemetry random scientific splitmix stm text
+         text-show unordered-containers
+       ];
+       executableHaskellDepends = [
+         async base bytestring clock containers directory exceptions
+         filepath hashtables http-client http-client-tls hvega opentelemetry
+         process text typed-process
+       ];
+       testHaskellDepends = [
+         base bytestring generic-arbitrary ghc-events hashable opentelemetry
+         QuickCheck quickcheck-instances splitmix tasty tasty-discover
+         tasty-hunit tasty-quickcheck text text-show unordered-containers
+       ];
+       testToolDepends = [ tasty-discover ];
+       benchmarkHaskellDepends = [ base gauge opentelemetry ];
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "opentelemetry-http-client" = callPackage
     ({ mkDerivation, base, http-client, http-types, opentelemetry, text
      }:
@@ -183490,6 +187023,34 @@ self: {
        broken = true;
      }) {};
 
+  "opentelemetry-lightstep_0_6_1" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, clock, containers
+     , exceptions, filepath, ghc-events, http-client, http-client-tls
+     , http-types, network, opentelemetry, opentelemetry-extra
+     , scientific, splitmix, stm, text, typed-process
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "opentelemetry-lightstep";
+       version = "0.6.1";
+       sha256 = "1a7rrm5aahqh63j0rr7nvd4y3q64m8qr7is0r0a17fwkkpppmyln";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson async base bytestring exceptions http-client http-client-tls
+         http-types network opentelemetry opentelemetry-extra scientific stm
+         text unordered-containers
+       ];
+       executableHaskellDepends = [
+         async base bytestring clock containers exceptions filepath
+         ghc-events http-client http-types opentelemetry opentelemetry-extra
+         splitmix text typed-process unordered-containers
+       ];
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "opentelemetry-wai" = callPackage
     ({ mkDerivation, base, bytestring, http-types, opentelemetry, text
      , wai
@@ -183506,6 +187067,22 @@ self: {
        broken = true;
      }) {};
 
+  "opentelemetry-wai_0_6_1" = callPackage
+    ({ mkDerivation, base, bytestring, http-types, opentelemetry, text
+     , wai
+     }:
+     mkDerivation {
+       pname = "opentelemetry-wai";
+       version = "0.6.1";
+       sha256 = "0g1a044sphd35z9crc8wbxsk4hfh1gpfi4g8rr1k4f842hznj7nf";
+       libraryHaskellDepends = [
+         base bytestring http-types opentelemetry text wai
+       ];
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "opentheory" = callPackage
     ({ mkDerivation, base, opentheory-primitive, QuickCheck }:
      mkDerivation {
@@ -183761,20 +187338,22 @@ self: {
      }) {};
 
   "openweathermap" = callPackage
-    ({ mkDerivation, aeson, base, directory, http-client
-     , optparse-applicative, servant, servant-client, xdg-basedir
+    ({ mkDerivation, aeson, base, directory, http-api-data, http-client
+     , optparse-applicative, servant, servant-client
+     , servant-client-core, time, xdg-basedir
      }:
      mkDerivation {
        pname = "openweathermap";
-       version = "0.1.0";
-       sha256 = "140m5jlbcrz42m5fr7cmq0n7zbdb0gcxwcvlpl0cb6r1vg4xp9qj";
+       version = "0.2.0";
+       sha256 = "1sd8rflm3zakpgm5va9rwdw9si4cbqyvdmpysw55ly6mzgvfxad1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base http-client servant servant-client
+         aeson base http-api-data http-client servant servant-client
+         servant-client-core
        ];
        executableHaskellDepends = [
-         base directory optparse-applicative xdg-basedir
+         base directory optparse-applicative time xdg-basedir
        ];
        description = "Access data at OpenWeatherMap";
        license = stdenv.lib.licenses.publicDomain;
@@ -183875,8 +187454,8 @@ self: {
      }:
      mkDerivation {
        pname = "opml-conduit";
-       version = "0.8.0.0";
-       sha256 = "08j6hm605km4j3w9n8mbwlzhz8avy3m941wgr9rp5dfkasi3s9p3";
+       version = "0.9.0.0";
+       sha256 = "012cnq24dhsiz6dfm23i1kac2pya50x2gj42cvcdhr8navz7czcb";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base case-insensitive conduit conduit-combinators containers
@@ -183987,14 +187566,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "optics-core_0_3" = callPackage
+  "optics-core_0_3_0_1" = callPackage
     ({ mkDerivation, array, base, containers, indexed-profunctors
      , transformers
      }:
      mkDerivation {
        pname = "optics-core";
-       version = "0.3";
-       sha256 = "0gjxbrgp7c9k40782i2hm0pmb4fdrzcwbkq1xsj1835xszzxlp8n";
+       version = "0.3.0.1";
+       sha256 = "01z1rjrmj3jqh3fygqa1asr4azhdnqpix27sdw3ygi5dnbcmn49h";
        libraryHaskellDepends = [
          array base containers indexed-profunctors transformers
        ];
@@ -184055,14 +187634,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "optics-th_0_3" = callPackage
+  "optics-th_0_3_0_2" = callPackage
     ({ mkDerivation, base, containers, mtl, optics-core, tagged
      , template-haskell, th-abstraction, transformers
      }:
      mkDerivation {
        pname = "optics-th";
-       version = "0.3";
-       sha256 = "1k8kwii9jn1gjswkf7p5j5yvq7p9z8rs09ak78s5lmvxkh4c7035";
+       version = "0.3.0.2";
+       sha256 = "1mxi4bwgpl02g7clbs4m5p16i64s5lp13811yhg66i50rnqwpw40";
        libraryHaskellDepends = [
          base containers mtl optics-core template-haskell th-abstraction
          transformers
@@ -184110,8 +187689,8 @@ self: {
      }:
      mkDerivation {
        pname = "optima";
-       version = "0.4";
-       sha256 = "0ryrz9739g1zql9ldll2ilfiyazgz5xixk31wajdqz0xdzqg3bbl";
+       version = "0.4.0.1";
+       sha256 = "029bizcajhmvkgmr7yb95bbhi00bnvhnlx4crbx06wridhz2lp23";
        libraryHaskellDepends = [
          attoparsec attoparsec-data base optparse-applicative text
          text-builder
@@ -184291,6 +187870,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "optparse-applicative_0_16_0_0" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, base, bytestring, process
+     , QuickCheck, transformers, transformers-compat
+     }:
+     mkDerivation {
+       pname = "optparse-applicative";
+       version = "0.16.0.0";
+       sha256 = "0aybamakg9zjac0b78lhfa1bvilkb76yryis6h0pf5j1khrkri89";
+       libraryHaskellDepends = [
+         ansi-wl-pprint base process transformers transformers-compat
+       ];
+       testHaskellDepends = [ base bytestring QuickCheck ];
+       description = "Utilities and combinators for parsing command line options";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "optparse-applicative-simple" = callPackage
     ({ mkDerivation, attoparsec, attoparsec-data, base-prelude
      , optparse-applicative, rerebase, text
@@ -184313,8 +187909,8 @@ self: {
     ({ mkDerivation, base, mtl }:
      mkDerivation {
        pname = "optparse-declarative";
-       version = "0.3.0";
-       sha256 = "1avy0g6jk34jbfp1xzqcyhb4j53knsbzx1pssl4b5f6nn981mbj8";
+       version = "0.3.1";
+       sha256 = "1s3bkkn5a8bgkbqdsf5ir18r0j0r2r0agz04q2ccafd26d8xdx2s";
        libraryHaskellDepends = [ base mtl ];
        description = "Declarative command line option parser";
        license = stdenv.lib.licenses.mit;
@@ -184352,17 +187948,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "optparse-generic_1_4_0" = callPackage
+  "optparse-generic_1_4_3" = callPackage
     ({ mkDerivation, base, bytestring, Only, optparse-applicative
-     , semigroups, system-filepath, text, time, transformers, void
+     , system-filepath, text, time, transformers, void
      }:
      mkDerivation {
        pname = "optparse-generic";
-       version = "1.4.0";
-       sha256 = "1wbakc4lk0pyxij9pg95v4hi4k4l7jd4iai0ya6ncmy5bj21fyvd";
+       version = "1.4.3";
+       sha256 = "18ih1r28hlml9wysqrzljmgi6q90s3k6jaaa7a5i48vr9bl3prs8";
        libraryHaskellDepends = [
-         base bytestring Only optparse-applicative semigroups
-         system-filepath text time transformers void
+         base bytestring Only optparse-applicative system-filepath text time
+         transformers void
        ];
        description = "Auto-generate a command-line parser for your datatype";
        license = stdenv.lib.licenses.bsd3;
@@ -184390,8 +187986,8 @@ self: {
      }:
      mkDerivation {
        pname = "optparse-simple";
-       version = "0.1.1.2";
-       sha256 = "1r00hkri42vyx552l8hcd1779fxiyl9w4k0pql915zsprirn8w82";
+       version = "0.1.1.3";
+       sha256 = "1wymqhac2sngkka8w880gq6y1kk3xs0flbv4mrhfgzrplhax8r9k";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -184698,8 +188294,8 @@ self: {
      }:
      mkDerivation {
        pname = "org-mode-lucid";
-       version = "1.3.0";
-       sha256 = "0a6iy2x0k9r3072zx0sf4k27xnihwckyd1h2pcqd61sxkgf3qkn3";
+       version = "1.4.0";
+       sha256 = "01h8lf3cdkq5s4nx5iy2835sdbly4vrdn2ml34qgaby703drlci4";
        libraryHaskellDepends = [
          base containers hashable lucid org-mode text
        ];
@@ -184873,15 +188469,15 @@ self: {
        broken = true;
      }) {};
 
-  "ormolu" = callPackage
+  "ormolu_0_0_5_0" = callPackage
     ({ mkDerivation, base, bytestring, containers, dlist, exceptions
      , filepath, ghc-lib-parser, gitrev, hspec, hspec-discover, mtl
      , optparse-applicative, path, path-io, syb, text
      }:
      mkDerivation {
        pname = "ormolu";
-       version = "0.1.0.0";
-       sha256 = "1wpdj04hpnkk60swhx9d9cyazkgkjn2kkzmix7q1mil7hq23ynnp";
+       version = "0.0.5.0";
+       sha256 = "1sf22silpj89sldd7wanlr34nsv77bq0cf4i0q1x2r20pz7s4w4m";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -184898,9 +188494,10 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A formatter for Haskell source code";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "ormolu_0_1_2_0" = callPackage
+  "ormolu" = callPackage
     ({ mkDerivation, base, bytestring, containers, dlist, exceptions
      , filepath, ghc-lib-parser, gitrev, hspec, hspec-discover, mtl
      , optparse-applicative, path, path-io, syb, text
@@ -184909,6 +188506,8 @@ self: {
        pname = "ormolu";
        version = "0.1.2.0";
        sha256 = "14ndqfcbx0y71d3q5i7d0scbvg9nd5qr5pdn7qvylxlkgpbc77qp";
+       revision = "2";
+       editedCabalFile = "07p7342972b2ffi46ll8jgbnlx97g7imzpl819hzc0yd2pjn4jn9";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -184925,21 +188524,23 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A formatter for Haskell source code";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "os-release" = callPackage
-    ({ mkDerivation, base, containers, hlint, hspec, parsec, process
-     , regex-compat, temporary, transformers
+    ({ mkDerivation, aeson, base, bytestring, filepath, hspec
+     , hspec-megaparsec, megaparsec, pretty-simple, safe-exceptions
+     , tasty, tasty-golden, tasty-hspec, text, unordered-containers
      }:
      mkDerivation {
        pname = "os-release";
-       version = "0.2.2";
-       sha256 = "19rc9l7i1zq67r5i223pd9m6c1fyy98c29wdhsk5qsb1q7z5f4x9";
-       libraryHaskellDepends = [ base containers parsec transformers ];
+       version = "1.0.1";
+       sha256 = "05ajgnihm82ikxgvfnam0msn7id2apiyin9757jrc8wfsh3xvkmx";
+       libraryHaskellDepends = [
+         aeson base megaparsec safe-exceptions text unordered-containers
+       ];
        testHaskellDepends = [
-         base containers hlint hspec parsec process regex-compat temporary
-         transformers
+         base bytestring filepath hspec hspec-megaparsec megaparsec
+         pretty-simple tasty tasty-golden tasty-hspec text
        ];
        description = "/etc/os-release helpers";
        license = stdenv.lib.licenses.bsd3;
@@ -185366,8 +188967,10 @@ self: {
      }:
      mkDerivation {
        pname = "packdeps";
-       version = "0.4.5";
-       sha256 = "07nsnxxs5y77w0v5dxw9mqgq98s3riws5846qshlnhq4l5q73php";
+       version = "0.6.0.0";
+       sha256 = "10hrsshzljs6yjzgpw6kpdc4fx4xrbafwicpapcmmj1y66rj00dz";
+       revision = "1";
+       editedCabalFile = "02akm54nkfw8jzc8b1b49pkbn4h73s5f968gyafmnq9jla0rcsjg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -185375,7 +188978,7 @@ self: {
          time
        ];
        executableHaskellDepends = [
-         base Cabal containers optparse-applicative process semigroups
+         base Cabal containers optparse-applicative process semigroups text
        ];
        description = "Check your cabal packages for lagging dependencies";
        license = stdenv.lib.licenses.bsd3;
@@ -185792,8 +189395,8 @@ self: {
     ({ mkDerivation, base, c2hs, pam }:
      mkDerivation {
        pname = "pam";
-       version = "0.1";
-       sha256 = "1lmkq12p18qavx2c7xrnha56017y0f21ri4l3cqal4fb8zy0g5nj";
+       version = "0.2.0.0";
+       sha256 = "0j4hm7ph0iszf8wyqpy5jiplr14jj37z2yvgcgy7p5ab5p5r38gx";
        libraryHaskellDepends = [ base ];
        librarySystemDepends = [ pam ];
        libraryToolDepends = [ c2hs ];
@@ -185902,6 +189505,63 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
 
+  "pandoc_2_10_1" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, attoparsec, base
+     , base64-bytestring, binary, blaze-html, blaze-markup, bytestring
+     , case-insensitive, commonmark, commonmark-extensions
+     , commonmark-pandoc, connection, containers, criterion
+     , data-default, deepseq, Diff, directory, doclayout, doctemplates
+     , emojis, exceptions, executable-path, 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, QuickCheck, random, safe
+     , scientific, SHA, skylighting, skylighting-core, split, syb
+     , tagsoup, tasty, tasty-golden, tasty-hunit, tasty-lua
+     , tasty-quickcheck, temporary, texmath, text, text-conversions
+     , time, unicode-transforms, unix, unordered-containers, weigh, xml
+     , zip-archive, zlib
+     }:
+     mkDerivation {
+       pname = "pandoc";
+       version = "2.10.1";
+       sha256 = "16i2sc5nf2gx5aykbd0jmbjcj2ivj5941bvkdj4dxlvy1adlr2lk";
+       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 commonmark
+         commonmark-extensions commonmark-pandoc connection containers
+         data-default deepseq directory doclayout doctemplates emojis
+         exceptions 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
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base base64-bytestring bytestring containers Diff directory
+         doctemplates exceptions executable-path filepath Glob hslua mtl
+         pandoc-types process QuickCheck tasty tasty-golden tasty-hunit
+         tasty-lua tasty-quickcheck temporary text time xml zip-archive
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring containers criterion mtl text time weigh
+       ];
+       postInstall = ''
+         mkdir -p $out/share/man/man1
+         mv "man/"*.1 $out/share/man/man1/
+       '';
+       description = "Conversion between markup formats";
+       license = stdenv.lib.licenses.gpl2Plus;
+       maintainers = with stdenv.lib.maintainers; [ peti ];
+     }) {};
+
   "pandoc-citeproc" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring
      , Cabal, containers, data-default, directory, filepath, hs-bibutils
@@ -185912,8 +189572,10 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-citeproc";
-       version = "0.17";
-       sha256 = "1cgmv8zdiqcbls7c6rqdd154z5r90p9wxrdy6nwmxma8qfmfgaa7";
+       version = "0.17.0.1";
+       sha256 = "0hi31h4jxamnyw0jsbwnbzy9gkp3a03mhsgwy9w73hi13lywxrgk";
+       revision = "1";
+       editedCabalFile = "0z1gnaagylsjx8f1i49bp4zhcx2hlkc3w9wkwzsvvjq0qcfgzis0";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -185937,7 +189599,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "pandoc-citeproc_0_17_0_1" = callPackage
+  "pandoc-citeproc_0_17_0_2" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring
      , Cabal, containers, data-default, directory, filepath, hs-bibutils
      , HsYAML, HsYAML-aeson, libyaml, mtl, network, old-locale, pandoc
@@ -185947,8 +189609,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-citeproc";
-       version = "0.17.0.1";
-       sha256 = "0hi31h4jxamnyw0jsbwnbzy9gkp3a03mhsgwy9w73hi13lywxrgk";
+       version = "0.17.0.2";
+       sha256 = "1wp16zz740klyn5jr8qxn21zf1waym3pzzv5l6k08w2l6z54d20b";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -185979,8 +189641,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-citeproc-preamble";
-       version = "1.3";
-       sha256 = "1lnsklvqvi9569wxdkyk2qwc33mm5d3n28xj64847i8g9af2jqs9";
+       version = "1.6";
+       sha256 = "0xx2l0xjx0baaqmdnk29knxxhwfix1wrg7zysvgilf33zsvdc5a8";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -185999,8 +189661,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-crossref";
-       version = "0.3.6.3";
-       sha256 = "1528cn5phcsc2x3h69p64sm7jap34ca3dsdh5qw2jx1vmgn42mi5";
+       version = "0.3.8.1";
+       sha256 = "15h484xq015jy65mzaqjqyi4ppnqfrdvvj1llmp8k00vb2xcrzrr";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -186039,6 +189701,8 @@ self: {
        executableHaskellDepends = [ base csv pandoc pandoc-types ];
        description = "Convert CSV to Pandoc Table Markdown";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "pandoc-emphasize-code" = callPackage
@@ -186048,8 +189712,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-emphasize-code";
-       version = "0.2.4";
-       sha256 = "0fz0pkxx64d8bvrsg9s704mhhw9djq74x56dbv5w3y65nch8p3a5";
+       version = "0.3.0";
+       sha256 = "02bg6aippqbjzx1dqzq63qh4ggm6pyw6p8p5iay9ldxdgx4jicnc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -186149,6 +189813,8 @@ self: {
        ];
        description = "A Pandoc filter for including code from source files";
        license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "pandoc-japanese-filters" = callPackage
@@ -186272,6 +189938,8 @@ self: {
        pname = "pandoc-plot";
        version = "0.6.1.0";
        sha256 = "0jyhb1ab6h990r159a3gdw0cbxxvjrjsd35yyca5bd5rqxzlvnay";
+       revision = "1";
+       editedCabalFile = "1kn5k6xrjs1gh273hc8zrp85w8g72g3rz79v5n4qk33n0pg6ydvw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -186298,26 +189966,27 @@ self: {
        broken = true;
      }) {};
 
-  "pandoc-plot_0_7_1_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, criterion, directory
-     , filepath, githash, hashable, hspec, hspec-expectations
-     , lifted-async, mtl, open-browser, optparse-applicative, pandoc
-     , pandoc-types, shakespeare, tasty, tasty-hspec, tasty-hunit
-     , template-haskell, text, typed-process, yaml
+  "pandoc-plot_0_9_2_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, criterion
+     , data-default, directory, filepath, githash, hashable, hspec
+     , hspec-expectations, lifted-async, mtl, optparse-applicative
+     , pandoc, pandoc-types, shakespeare, tagsoup, tasty, tasty-hspec
+     , tasty-hunit, template-haskell, text, typed-process, yaml
      }:
      mkDerivation {
        pname = "pandoc-plot";
-       version = "0.7.1.0";
-       sha256 = "1pknimxwfprg6cqw9gh20ixzsh7lxs1a2jnmzahgnx203zyavd0w";
+       version = "0.9.2.0";
+       sha256 = "0fryriyqlmfc82nqbqw7a8n7325wwag29v3ag61s600jw66i9fsc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bytestring containers directory filepath hashable lifted-async
-         mtl pandoc pandoc-types shakespeare text typed-process yaml
+         base bytestring containers data-default directory filepath hashable
+         lifted-async mtl pandoc pandoc-types shakespeare tagsoup text
+         typed-process yaml
        ];
        executableHaskellDepends = [
-         base directory filepath githash open-browser optparse-applicative
-         pandoc pandoc-types template-haskell text
+         base containers directory filepath githash optparse-applicative
+         pandoc pandoc-types template-haskell text typed-process
        ];
        testHaskellDepends = [
          base containers directory filepath hspec hspec-expectations
@@ -186327,7 +189996,7 @@ self: {
          base criterion pandoc-types template-haskell text
        ];
        description = "A Pandoc filter to include figures generated from code blocks using your plotting toolkit of choice";
-       license = stdenv.lib.licenses.gpl2;
+       license = stdenv.lib.licenses.gpl2Plus;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -186407,6 +190076,8 @@ self: {
        pname = "pandoc-types";
        version = "1.20";
        sha256 = "0wz89ywyhvxz8daw4ia132kg6ynx5y4wva4g899wvq4kyjy1dixa";
+       revision = "1";
+       editedCabalFile = "16l4gy0v34nrb6z3pag6i3gl6m4af5j6wg6yzyiga124xpqzhql3";
        libraryHaskellDepends = [
          aeson base bytestring containers deepseq ghc-prim QuickCheck syb
          text transformers
@@ -186474,6 +190145,8 @@ self: {
        ];
        description = "Utility functions to work with Pandoc in Haskell applications";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "pandoc-vimhl" = callPackage
@@ -186498,8 +190171,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "pandora";
-       version = "0.2.9";
-       sha256 = "0gl5h4krn2aigxfqppa4fr8vir2s5xrh8s363frh82fgdxblhjgc";
+       version = "0.3.0";
+       sha256 = "1k9b714rb9cgapn0vgwymrq7ma1lmq6klmlv37c6gqmb1c5k7ijh";
        description = "A box of patterns and paradigms";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -186717,8 +190390,8 @@ self: {
      }:
      mkDerivation {
        pname = "pantry";
-       version = "0.4.0.1";
-       sha256 = "182aiwwgrsdj9f4x71q1grj674d91djp4q6bz2l51ly5dsjy5wbf";
+       version = "0.4.0.2";
+       sha256 = "13rrd64qn96r9w623lns4cngalc2c0p2z1xzc0wv35kr3psnxwb4";
        libraryHaskellDepends = [
          aeson ansi-terminal base bytestring Cabal casa-client casa-types
          conduit conduit-extra containers cryptonite cryptonite-conduit
@@ -186744,7 +190417,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "pantry_0_5_1_1" = callPackage
+  "pantry_0_5_1_2" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring, Cabal
      , casa-client, casa-types, conduit, conduit-extra, containers
      , cryptonite, cryptonite-conduit, digest, exceptions, filelock
@@ -186758,8 +190431,8 @@ self: {
      }:
      mkDerivation {
        pname = "pantry";
-       version = "0.5.1.1";
-       sha256 = "1q1q8jflhd5r70czsclkj27yqk4v8b1njdw8f4qb3xvf9c3gzl70";
+       version = "0.5.1.2";
+       sha256 = "1ix1y334l4a7zcqm8i849g67mgvkqzikbhcbkqc1d6hg1lhc7xzr";
        libraryHaskellDepends = [
          aeson ansi-terminal base bytestring Cabal casa-client casa-types
          conduit conduit-extra containers cryptonite cryptonite-conduit
@@ -187297,6 +190970,8 @@ self: {
        ];
        description = "ParDual class for Parallel <-> Sequential";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "par-traverse" = callPackage
@@ -187455,8 +191130,8 @@ self: {
      }:
      mkDerivation {
        pname = "parameterized-utils";
-       version = "2.1.0";
-       sha256 = "0jfl75a1282lb50v1jw3ghmnwp1fp0fmwgj46lw87rm6vc2qlzhb";
+       version = "2.1.1";
+       sha256 = "18z0ykpvr7m8ffqpqwnclnyifig61n9l41w3hn39f37455z1dy39";
        libraryHaskellDepends = [
          base base-orphans constraints containers deepseq ghc-prim hashable
          hashtables lens mtl template-haskell text th-abstraction vector
@@ -187711,6 +191386,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "parse-gcstats" = callPackage
+    ({ mkDerivation, attoparsec, base, conduit, conduit-extra, filepath
+     , tasty, tasty-golden, text, unordered-containers
+     }:
+     mkDerivation {
+       pname = "parse-gcstats";
+       version = "0.1.0.0";
+       sha256 = "07l2jy59grxqnn90kyj13zg7b5x8j21apcywf6m4yws41j8il0nc";
+       libraryHaskellDepends = [
+         attoparsec base text unordered-containers
+       ];
+       testHaskellDepends = [
+         attoparsec base conduit conduit-extra filepath tasty tasty-golden
+         text
+       ];
+       description = "Parse machine-readable GHC GC stats";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "parse-help" = callPackage
     ({ mkDerivation, attoparsec, base, cmdargs, containers
      , data-default, file-location, template-haskell, text, th-lift
@@ -188479,6 +192173,8 @@ self: {
        pname = "password";
        version = "2.0.1.1";
        sha256 = "1fi39w79p7jaw85i5r8f4flw7s1n2ljxj5ci9gda6a556015w1p8";
+       revision = "1";
+       editedCabalFile = "1r27scxmkmvw8nbcg4x3k10ibq4qhrmpwgnqbnz32g1fvw7mlxg3";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base base64 bytestring cryptonite memory text
@@ -188584,8 +192280,8 @@ self: {
      }:
      mkDerivation {
        pname = "patat";
-       version = "0.8.4.3";
-       sha256 = "1zz007l9ap9qlhgwr7jjavr6h5r1cnr9wflyxpvjmdzmn6ch74w4";
+       version = "0.8.5.0";
+       sha256 = "1b4g5m32dv7905q51p4f23c9d4sfy5jvwbq7wgwsa2mwl8hf5cds";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -188729,15 +192425,26 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "path-binary-instance" = callPackage
+    ({ mkDerivation, base, binary, path }:
+     mkDerivation {
+       pname = "path-binary-instance";
+       version = "0.1.0.1";
+       sha256 = "19ck3ja66vcgl90wyw6r9d2h50kdv9gjs7sxjgciam6v6867vb0y";
+       libraryHaskellDepends = [ base binary path ];
+       description = "Binary instance for Path";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "path-extensions" = callPackage
     ({ mkDerivation, base, exceptions, path }:
      mkDerivation {
        pname = "path-extensions";
-       version = "0.1.0.1";
-       sha256 = "1ywirszpmhbq45gbwfvzssy5z06lmlxdhxck7gbjaffyjbkil5va";
+       version = "0.1.1.0";
+       sha256 = "0pvjb26arsj892addi9x26v8naislh87x6av70k8fjnsish3pnj5";
        libraryHaskellDepends = [ base exceptions path ];
        description = "Enumeration of common filetype extensions for use with the path library";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.mit;
      }) {};
 
   "path-extra" = callPackage
@@ -188765,8 +192472,8 @@ self: {
        pname = "path-io";
        version = "1.6.0";
        sha256 = "0hcdxxwkhdhm59p6x74k1fsgsrqfa100c83cslm1h9ln0anj1r3k";
-       revision = "2";
-       editedCabalFile = "1x52j77g075k79c7fma0khhbcpja88wylgllnky6q7nccwazm2c2";
+       revision = "3";
+       editedCabalFile = "0rd7svl3jxzqnf8l2h4f7xwlv8av67y85bwmr40954disq714l74";
        libraryHaskellDepends = [
          base containers directory dlist exceptions filepath path temporary
          time transformers unix-compat
@@ -188779,6 +192486,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "path-like" = callPackage
+    ({ mkDerivation, base, path }:
+     mkDerivation {
+       pname = "path-like";
+       version = "0.2.0.2";
+       sha256 = "1hr58zcgcybd34zzas5kf0jgcm5z2wdlbhskwj9233503nnlwkq9";
+       libraryHaskellDepends = [ base path ];
+       description = "PathLike, FileLike and DirLike type classes for the Path library";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "path-pieces" = callPackage
     ({ mkDerivation, base, hspec, HUnit, QuickCheck, text, time }:
      mkDerivation {
@@ -188875,25 +192593,6 @@ self: {
      }:
      mkDerivation {
        pname = "pathtype";
-       version = "0.8.1";
-       sha256 = "03rlj8klzxqimjv44h07xbij0acr63pddxppq9yfjlyggmaxrrnm";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base deepseq directory old-time QuickCheck semigroups tagged time
-         transformers utility-ht
-       ];
-       testHaskellDepends = [ base random ];
-       description = "Type-safe replacement for System.FilePath etc";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "pathtype_0_8_1_1" = callPackage
-    ({ mkDerivation, base, deepseq, directory, old-time, QuickCheck
-     , random, semigroups, tagged, time, transformers, utility-ht
-     }:
-     mkDerivation {
-       pname = "pathtype";
        version = "0.8.1.1";
        sha256 = "0322q8wd4mbp7q0cgym6mf2dxg2srp76r38kprxl9ik53s3y3p67";
        isLibrary = true;
@@ -188905,7 +192604,6 @@ self: {
        testHaskellDepends = [ base random ];
        description = "Type-safe replacement for System.FilePath etc";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pathwalk" = callPackage
@@ -190044,6 +193742,25 @@ self: {
        broken = true;
      }) {};
 
+  "percent-encoder" = callPackage
+    ({ mkDerivation, array, base, bytestring, criterion, network-uri
+     , QuickCheck, quickcheck-instances
+     }:
+     mkDerivation {
+       pname = "percent-encoder";
+       version = "0.0.0.0";
+       sha256 = "1aqa25kydhvf9jiqk5a928fmgi9g94d2b44gkq8vqlzbq0azi126";
+       libraryHaskellDepends = [ array base bytestring ];
+       testHaskellDepends = [
+         base bytestring QuickCheck quickcheck-instances
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion network-uri
+       ];
+       description = "Percent encode/decode ByteStrings";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "percent-format" = callPackage
     ({ mkDerivation, base, leancheck }:
      mkDerivation {
@@ -190078,6 +193795,8 @@ self: {
        pname = "perceptual-hash";
        version = "0.1.3.5";
        sha256 = "0f36sy9ixwbx55m3634lr0hrhllj68wv5jilzq0xik2171g3rx2p";
+       revision = "1";
+       editedCabalFile = "0s67w3sc480vrmdjr67y6gjyhfik6v2lrh99abcgj6ikgiwx2lbf";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -190148,12 +193867,12 @@ self: {
      }:
      mkDerivation {
        pname = "perf";
-       version = "0.6.0";
-       sha256 = "1cn2f3hisw5r99m459zalcgfgdr54f8wsp1wlg48jjvgvsx5dj0k";
+       version = "0.7.0";
+       sha256 = "140fy74sq3b1k6px008yz2pr9ikikd68llzc411qs3nclwzasxgx";
        libraryHaskellDepends = [
          base containers deepseq foldl rdtsc text time transformers
        ];
-       testHaskellDepends = [ base doctest ];
+       testHaskellDepends = [ base deepseq doctest rdtsc ];
        description = "Low-level run time measurement";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -190321,6 +194040,63 @@ self: {
        broken = true;
      }) {};
 
+  "periodic-client" = callPackage
+    ({ mkDerivation, base, binary, byteable, bytestring, hslogger
+     , metro, metro-socket, mtl, periodic-common, resource-pool
+     , transformers, unliftio
+     }:
+     mkDerivation {
+       pname = "periodic-client";
+       version = "1.1.7.1";
+       sha256 = "0d9ngiq064fajiy2c4sddpgr93ia13iv83rdnvbk05x7agi0srjb";
+       libraryHaskellDepends = [
+         base binary byteable bytestring hslogger metro metro-socket mtl
+         periodic-common resource-pool transformers unliftio
+       ];
+       description = "Periodic task system haskell client";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "periodic-client-exe" = callPackage
+    ({ mkDerivation, base, binary, boxes, bytestring
+     , data-default-class, deepseq, http-types, metro, metro-socket
+     , metro-transport-tls, metro-transport-websockets
+     , metro-transport-xor, periodic-client, periodic-common, process
+     , scotty, streaming-commons, text, unix-time, unliftio, warp
+     , websockets
+     }:
+     mkDerivation {
+       pname = "periodic-client-exe";
+       version = "1.1.7.1";
+       sha256 = "0mgcvkc4sw7f1idjnhcj6qinnm3w47as6zjx2s8cxyfxn0ma73ll";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base binary boxes bytestring data-default-class deepseq http-types
+         metro metro-socket metro-transport-tls metro-transport-websockets
+         metro-transport-xor periodic-client periodic-common process scotty
+         streaming-commons text unix-time unliftio warp websockets
+       ];
+       description = "Periodic task system haskell client executables";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "periodic-common" = callPackage
+    ({ mkDerivation, base, binary, byteable, bytestring, entropy
+     , hashable, hslogger, metro, text, unliftio, vector
+     }:
+     mkDerivation {
+       pname = "periodic-common";
+       version = "1.1.7.0";
+       sha256 = "17rbzps7s4vwpf6390lz158hj1m5w6b791v8srg4mz9wd493iwbg";
+       libraryHaskellDepends = [
+         base binary byteable bytestring entropy hashable hslogger metro
+         text unliftio vector
+       ];
+       description = "Periodic task system common";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "periodic-polynomials" = callPackage
     ({ mkDerivation, base, vector }:
      mkDerivation {
@@ -190332,6 +194108,35 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "periodic-server" = callPackage
+    ({ mkDerivation, async, base, base64-bytestring, binary, byteable
+     , bytestring, direct-sqlite, entropy, filepath, hslogger, metro
+     , metro-socket, metro-transport-tls, metro-transport-websockets
+     , metro-transport-xor, mtl, network, periodic-common
+     , postgresql-simple, psqueues, resource-pool, stm, transformers
+     , unliftio, unordered-containers
+     }:
+     mkDerivation {
+       pname = "periodic-server";
+       version = "1.1.7.1";
+       sha256 = "1gvx5n86xm14yp07ag57mw5pfig0ldpnwmg1y4vrj003k046n29p";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         async base base64-bytestring binary byteable bytestring
+         direct-sqlite entropy filepath hslogger metro mtl network
+         periodic-common postgresql-simple psqueues resource-pool stm
+         transformers unliftio unordered-containers
+       ];
+       executableHaskellDepends = [
+         base bytestring hslogger metro metro-socket metro-transport-tls
+         metro-transport-websockets metro-transport-xor periodic-common
+         unliftio
+       ];
+       description = "Periodic task system haskell server";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "perm" = callPackage
     ({ mkDerivation, base, catch-fd, HUnit, mtl, test-framework
      , test-framework-hunit, transformers
@@ -190774,8 +194579,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent-mongoDB";
-       version = "2.10.0.0";
-       sha256 = "1z895y21raak3x9qw05hgif5qyvr6c7pkc59wzg7irk8mxijyf4n";
+       version = "2.10.0.1";
+       sha256 = "194cxlxyaxwzgm7a7q8530bh842s5s1vmq33pclldp78nfy1dczm";
        libraryHaskellDepends = [
          aeson base bson bytestring cereal conduit http-api-data mongoDB
          network path-pieces persistent resource-pool resourcet text time
@@ -190987,24 +194792,23 @@ self: {
      }) {};
 
   "persistent-redis" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, binary, bytestring, hedis
-     , http-api-data, monad-control, mtl, path-pieces, persistent
-     , persistent-template, scientific, template-haskell, text, time
-     , transformers, utf8-string
+    ({ mkDerivation, aeson, base, binary, bytestring, hedis
+     , http-api-data, mtl, path-pieces, persistent, persistent-template
+     , scientific, template-haskell, text, time, transformers
+     , utf8-string
      }:
      mkDerivation {
        pname = "persistent-redis";
-       version = "2.5.2.2";
-       sha256 = "1mkdc3s39h0zqzf86zzwyfxfpc4fasrhpfdypkj8mkljbh7v1i1l";
+       version = "2.5.2.5";
+       sha256 = "0h2bwr5svj36n3axnrgnrzkysg4ywf9d97x4fwwsjgn01gwr262k";
        libraryHaskellDepends = [
-         aeson attoparsec base binary bytestring hedis http-api-data
-         monad-control mtl path-pieces persistent scientific text time
-         transformers utf8-string
+         aeson base binary bytestring hedis http-api-data mtl path-pieces
+         persistent scientific text time transformers utf8-string
        ];
        testHaskellDepends = [
-         aeson attoparsec base binary bytestring hedis http-api-data
-         monad-control mtl path-pieces persistent persistent-template
-         scientific template-haskell text time transformers utf8-string
+         aeson base binary bytestring hedis http-api-data mtl path-pieces
+         persistent persistent-template scientific template-haskell text
+         time transformers utf8-string
        ];
        description = "Backend for persistent library using Redis";
        license = stdenv.lib.licenses.bsd3;
@@ -191161,7 +194965,7 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ psibi ];
      }) {};
 
-  "persistent-template_2_8_3_0" = callPackage
+  "persistent-template_2_8_3_1" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, criterion
      , deepseq, deepseq-generics, file-embed, hspec, http-api-data
      , monad-control, monad-logger, path-pieces, persistent, QuickCheck
@@ -191170,8 +194974,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent-template";
-       version = "2.8.3.0";
-       sha256 = "0ss6xa8lg6fg7ch9b2ps2s0nn87dp070xwm23z33mj2m5jd6n7kr";
+       version = "2.8.3.1";
+       sha256 = "1g42j4pqf40wj6b9zzyvimrfvrpvjfzigydsx2wkr5dld909izb0";
        libraryHaskellDepends = [
          aeson base bytestring containers http-api-data monad-control
          monad-logger path-pieces persistent template-haskell text
@@ -191235,6 +195039,30 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "persistent-test_2_0_3_2" = callPackage
+    ({ mkDerivation, aeson, base, blaze-html, bytestring, conduit
+     , containers, exceptions, hspec, hspec-expectations, HUnit
+     , monad-control, monad-logger, mtl, path-pieces, persistent
+     , persistent-template, QuickCheck, quickcheck-instances, random
+     , resourcet, text, time, transformers, transformers-base, unliftio
+     , unliftio-core, unordered-containers
+     }:
+     mkDerivation {
+       pname = "persistent-test";
+       version = "2.0.3.2";
+       sha256 = "0d7a6m4qm6xzyv7h2fqn9hgv7r7q6dwh7x04ddsrygjxdgpwgqf3";
+       libraryHaskellDepends = [
+         aeson base blaze-html bytestring conduit containers exceptions
+         hspec hspec-expectations HUnit monad-control monad-logger mtl
+         path-pieces persistent persistent-template QuickCheck
+         quickcheck-instances random resourcet text time transformers
+         transformers-base unliftio unliftio-core unordered-containers
+       ];
+       description = "Tests for Persistent";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "persistent-typed-db" = callPackage
     ({ mkDerivation, aeson, base, bytestring, conduit, esqueleto, hspec
      , http-api-data, monad-logger, path-pieces, persistent
@@ -191584,6 +195412,20 @@ self: {
        broken = true;
      }) {};
 
+  "pgf2" = callPackage
+    ({ mkDerivation, base, containers, gu, pgf, pretty }:
+     mkDerivation {
+       pname = "pgf2";
+       version = "1.2.0";
+       sha256 = "1lw9wdsvlasd5x323dficcmzqf48yz49wd3v64gsyx60sw93vn0y";
+       libraryHaskellDepends = [ base containers pretty ];
+       librarySystemDepends = [ gu pgf ];
+       description = "Bindings to the C version of the PGF runtime";
+       license = stdenv.lib.licenses.lgpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {gu = null; inherit (pkgs) pgf;};
+
   "pgm" = callPackage
     ({ mkDerivation, array, base, bytestring, parsec }:
      mkDerivation {
@@ -192105,10 +195947,8 @@ self: {
     ({ mkDerivation, base, containers, network, stm, text }:
      mkDerivation {
        pname = "pickle";
-       version = "1.0.0.0";
-       sha256 = "066vla7x4ls59rhx9adr4lqx9yi5d047vcy90wgqh3lmnm7nj77m";
-       revision = "1";
-       editedCabalFile = "10fbbygp1w79h8spmcdwz56vl0gw761rfvb731fhmsvm35390jd9";
+       version = "1.0.1.0";
+       sha256 = "13c1n06v6mh9lyplfg0y1gdijk2mhxg4ln59v7i2z4j1y65y8cz9";
        libraryHaskellDepends = [ base containers network stm text ];
        description = "Instant StatsD in Haskell";
        license = stdenv.lib.licenses.mit;
@@ -192601,15 +196441,15 @@ self: {
 
   "pipes" = callPackage
     ({ mkDerivation, base, criterion, exceptions, mmorph, mtl
-     , optparse-applicative, QuickCheck, semigroups, test-framework
+     , optparse-applicative, QuickCheck, test-framework
      , test-framework-quickcheck2, transformers, void
      }:
      mkDerivation {
        pname = "pipes";
-       version = "4.3.13";
-       sha256 = "1ch3xr5f5if0psd3lsyrpkwrgh36synnzqcpimghprys68l4zfkn";
+       version = "4.3.14";
+       sha256 = "11r8cqy98w1y0avgn53x1fzqxpdfg7wvwwkfppnk9yip0lkcp3yv";
        libraryHaskellDepends = [
-         base exceptions mmorph mtl semigroups transformers void
+         base exceptions mmorph mtl transformers void
        ];
        testHaskellDepends = [
          base mtl QuickCheck test-framework test-framework-quickcheck2
@@ -194315,6 +198155,8 @@ self: {
        ];
        description = "run a subprocess, combining stdout and stderr";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "plist" = callPackage
@@ -194397,8 +198239,8 @@ self: {
      }:
      mkDerivation {
        pname = "plot";
-       version = "0.2.3.10";
-       sha256 = "0dva2kvf3193qc7zb9ydmzpffaj9lm6qy79n5zv66jnbccyp36lf";
+       version = "0.2.3.11";
+       sha256 = "0img30argzgxcgwam3iqc3xasgizbbcrghd2vkmqahmv7g3l36di";
        libraryHaskellDepends = [
          array base cairo colour hmatrix mtl pango transformers
        ];
@@ -195258,6 +199100,17 @@ self: {
        broken = true;
      }) {};
 
+  "poly-rec" = callPackage
+    ({ mkDerivation, base, requirements }:
+     mkDerivation {
+       pname = "poly-rec";
+       version = "0.6.0.0";
+       sha256 = "1csi81i0j3hk2gsc3c0rx939i67b0mj2pi064giw20yspqqjrp27";
+       libraryHaskellDepends = [ base requirements ];
+       description = "Polykinded extensible records";
+       license = stdenv.lib.licenses.gpl3;
+     }) {};
+
   "polyToMonoid" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -195443,6 +199296,53 @@ self: {
        broken = true;
      }) {};
 
+  "polysemy-http" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, base-noprelude, bytestring
+     , case-insensitive, co-log-core, co-log-polysemy, composition
+     , containers, data-default, either, hedgehog, http-client
+     , http-client-tls, http-conduit, http-types, lens, network
+     , polysemy, polysemy-plugin, relude, servant, servant-client
+     , servant-server, string-interpolate, tasty, tasty-hedgehog
+     , template-haskell, text, warp
+     }:
+     mkDerivation {
+       pname = "polysemy-http";
+       version = "0.2.0.1";
+       sha256 = "0a8sq6pfwskviqkblz5i7c2f604xpkv7j07kfngci3xspbskk71v";
+       libraryHaskellDepends = [
+         aeson ansi-terminal base-noprelude bytestring case-insensitive
+         co-log-core co-log-polysemy composition containers data-default
+         either http-client http-client-tls http-conduit http-types lens
+         polysemy polysemy-plugin relude string-interpolate template-haskell
+         text
+       ];
+       testHaskellDepends = [
+         aeson ansi-terminal base-noprelude bytestring case-insensitive
+         co-log-core co-log-polysemy composition containers data-default
+         either hedgehog http-client http-client-tls http-conduit http-types
+         lens network polysemy polysemy-plugin relude servant servant-client
+         servant-server string-interpolate tasty tasty-hedgehog
+         template-haskell text warp
+       ];
+       description = "Polysemy effect for http-client";
+       license = "BSD-2-Clause-Patent";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "polysemy-optics" = callPackage
+    ({ mkDerivation, base, optics, polysemy, polysemy-zoo }:
+     mkDerivation {
+       pname = "polysemy-optics";
+       version = "0.1.0.0";
+       sha256 = "1ym2da08wy5pbdijrvn769w644dyma8hc010f8phqjnpkhq4j0z5";
+       libraryHaskellDepends = [ base optics polysemy polysemy-zoo ];
+       description = "Optics for Polysemy";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "polysemy-plugin" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, containers, doctest
      , ghc, ghc-tcplugins-extra, hspec, hspec-discover
@@ -195466,6 +199366,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "polysemy-test" = callPackage
+    ({ mkDerivation, base-noprelude, containers, either, hedgehog, path
+     , path-io, polysemy, polysemy-plugin, relude, string-interpolate
+     , tasty, tasty-hedgehog, text
+     }:
+     mkDerivation {
+       pname = "polysemy-test";
+       version = "0.2.0.0";
+       sha256 = "10kakaipasw1gbipjl4x23cma9f6iv3ma547a26b70ysap6c41ys";
+       libraryHaskellDepends = [
+         base-noprelude containers either hedgehog path path-io polysemy
+         polysemy-plugin relude string-interpolate tasty tasty-hedgehog text
+       ];
+       testHaskellDepends = [
+         base-noprelude containers either hedgehog path path-io polysemy
+         polysemy-plugin relude string-interpolate tasty tasty-hedgehog text
+       ];
+       description = "Polysemy effects for testing";
+       license = "BSD-2-Clause-Patent";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "polysemy-webserver" = callPackage
     ({ mkDerivation, base, bytestring, hspec, http-conduit, http-types
      , polysemy, polysemy-plugin, text, wai, wai-websockets, warp
@@ -195473,8 +199396,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-webserver";
-       version = "0.2.0.0";
-       sha256 = "0ld1ncal2isibzjbq72jk3dp8rgvz32zyvisjdd79wxwxg1z1nad";
+       version = "0.2.1.0";
+       sha256 = "1kzswc20c2a720r46krphwckp6bcgkinw59immjpwvixxdfd0bma";
        libraryHaskellDepends = [
          base bytestring http-types polysemy polysemy-plugin wai
          wai-websockets warp websockets
@@ -196329,10 +200252,8 @@ self: {
     ({ mkDerivation, base, bytestring, process, unix, util }:
      mkDerivation {
        pname = "posix-pty";
-       version = "0.2.1.1";
-       sha256 = "1fdvzmk7v7lasyhwinl9wqxq8c67balyyygyb1bzljj3hzn0rid2";
-       revision = "1";
-       editedCabalFile = "1dhxxwlv69bczi7mbhdd9f3s9nnjb4b3jf9mlgdjg7wxqh84zrgi";
+       version = "0.2.2";
+       sha256 = "1wwpvjnc252miyqmg5ffvf6ba60kj1i7iknyxrpkmh3zhz31vyws";
        libraryHaskellDepends = [ base bytestring process unix ];
        librarySystemDepends = [ util ];
        testHaskellDepends = [ base bytestring process ];
@@ -196401,8 +200322,8 @@ self: {
      }:
      mkDerivation {
        pname = "posplyu";
-       version = "0.1.0";
-       sha256 = "1whdihlfcgjy4na86qhhhixa0l494005shfxs5ns61qsdw7mwflk";
+       version = "0.1.0.1";
+       sha256 = "09yafx5d82h4vsx2pp2hccwy74b7nhbys971g86qcg6yf24ha621";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -196510,35 +200431,32 @@ self: {
      }) {};
 
   "postgres-websockets" = callPackage
-    ({ mkDerivation, aeson, alarmclock, auto-update, base
+    ({ mkDerivation, aeson, alarmclock, async, auto-update, base
      , base64-bytestring, bytestring, contravariant, either, envparse
      , hasql, hasql-notifications, hasql-pool, hspec, hspec-wai
-     , hspec-wai-json, http-types, jose, lens, postgresql-libpq
-     , protolude, retry, stm, stm-containers, stringsearch, text, time
-     , transformers, unordered-containers, wai, wai-app-static
-     , wai-extra, wai-websockets, warp, websockets
+     , hspec-wai-json, http-types, jose, lens, lens-aeson, network
+     , postgresql-libpq, protolude, retry, stm, stm-containers
+     , stringsearch, text, time, unordered-containers, wai
+     , wai-app-static, wai-extra, wai-websockets, warp, websockets
      }:
      mkDerivation {
        pname = "postgres-websockets";
-       version = "0.7.0.0";
-       sha256 = "0kjwj81ccn29iflx3sszb8sjap9zvi22sm1dm4vg7qv33n0jgfmp";
+       version = "0.8.0.1";
+       sha256 = "0a56dpj90nmrinjgxaipgbsfl5ligx3iydcnijxpwy6vwbjijnmi";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson alarmclock base bytestring contravariant either hasql
-         hasql-notifications hasql-pool http-types jose lens
-         postgresql-libpq protolude retry stm stm-containers stringsearch
-         text time unordered-containers wai wai-websockets websockets
-       ];
-       executableHaskellDepends = [
-         auto-update base base64-bytestring bytestring envparse hasql
-         hasql-pool http-types protolude text time transformers wai
-         wai-app-static wai-extra warp
+         aeson alarmclock async auto-update base base64-bytestring
+         bytestring contravariant either envparse hasql hasql-notifications
+         hasql-pool http-types jose lens postgresql-libpq protolude retry
+         stm stm-containers stringsearch text time unordered-containers wai
+         wai-app-static wai-extra wai-websockets warp websockets
        ];
+       executableHaskellDepends = [ base protolude ];
        testHaskellDepends = [
          aeson base hasql hasql-notifications hasql-pool hspec hspec-wai
-         hspec-wai-json http-types protolude stm time unordered-containers
-         wai-extra
+         hspec-wai-json http-types lens lens-aeson network protolude stm
+         time unordered-containers wai-extra websockets
        ];
        description = "Middleware to map LISTEN/NOTIFY messages to Websockets";
        license = stdenv.lib.licenses.bsd3;
@@ -196808,6 +200726,8 @@ self: {
        pname = "postgresql-placeholder-converter";
        version = "0.1.0.0";
        sha256 = "1dprqv0r00nrx6m0byqfzpb91h5kz3nxd0w0m21150l68sj2d8ys";
+       revision = "1";
+       editedCabalFile = "0mla1cibyc13bz7gvv5b31il8nyp0vjfi8xqgpynbjfq7d4fjnnc";
        libraryHaskellDepends = [
          attoparsec base bytestring mtl utf8-string
        ];
@@ -196821,42 +200741,46 @@ self: {
     ({ mkDerivation, attoparsec, base, base16-bytestring, bytestring
      , Cabal, cassava, clock, containers, convertible, cryptohash-md5
      , data-default-class, deepseq, directory, doctest
-     , double-conversion, HDBC, HDBC-postgresql, HDBC-session, homotuple
-     , hourglass, hspec, hspec-core, HUnit, list-tuple, memory, mtl
-     , network, old-time, Only, optparse-applicative, persistable-record
-     , postgresql-binary, postgresql-libpq, 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, 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
      }:
      mkDerivation {
        pname = "postgresql-pure";
-       version = "0.1.3.0";
-       sha256 = "1p6v7imz61svz03nh114qxl5fks6aibs78sgmi3my8zjdfb34ddk";
-       setupHaskellDepends = [ base Cabal directory ];
+       version = "0.2.2.0";
+       sha256 = "16k03m1yy8ca5rik4av76p883nvmk0w4ak9pva2i5l57vv8d8hc6";
+       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 Only postgresql-binary pretty-hex
-         safe-exceptions scientific single-tuple text time utf8-string
+         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 Only persistable-record
-         postgresql-binary pretty-hex QuickCheck relational-query
-         relational-query-HDBC relational-record safe-exceptions scientific
-         single-tuple text time utf8-string
+         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
        ];
        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 Only optparse-applicative postgresql-binary
-         postgresql-libpq postgresql-simple pretty-hex random-shuffle
-         safe-exceptions scientific single-tuple text time utf8-string
-         vector
+         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
        ];
        description = "pure Haskell PostgreSQL driver";
        license = stdenv.lib.licenses.bsd3;
@@ -197037,8 +200961,8 @@ self: {
      }:
      mkDerivation {
        pname = "postgresql-simple-opts";
-       version = "0.6.0.0";
-       sha256 = "0zsr0zgn5y1bpj98aq00v7xd0p3kmfk692djw0rp6ikw1390bbdb";
+       version = "0.6.0.1";
+       sha256 = "09b213lz0405c5x82g9vwpa7blrbi86m77r1wyd8m4hlviid3s7q";
        libraryHaskellDepends = [
          base bytestring data-default either envy generic-deriving
          optparse-applicative optparse-generic postgres-options
@@ -197141,8 +201065,8 @@ self: {
      }:
      mkDerivation {
        pname = "postgresql-syntax";
-       version = "0.3.0.2";
-       sha256 = "1gl0k3idcgpnahh8mv01mjzhc4yx6i3f7shfa7mqhcgs6r1ccdhz";
+       version = "0.3.0.3";
+       sha256 = "0zylrzd8dfks1jdx1yq1i2n2a7sxa8b04h6km9lx3bdpbpv84y7i";
        libraryHaskellDepends = [
          base bytestring case-insensitive fast-builder hashable
          headed-megaparsec megaparsec parser-combinators text text-builder
@@ -197171,6 +201095,80 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "postgresql-tx" = callPackage
+    ({ mkDerivation, base, transformers }:
+     mkDerivation {
+       pname = "postgresql-tx";
+       version = "0.1.0.0";
+       sha256 = "1jvrdyllmgd0v9w2wxqr1g70f6gza1wyb13j38ww2r2nvqzhp330";
+       libraryHaskellDepends = [ base transformers ];
+       description = "A safe transaction monad for use with various PostgreSQL Haskell libraries";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "postgresql-tx-monad-logger" = callPackage
+    ({ mkDerivation, base, monad-logger, postgresql-tx }:
+     mkDerivation {
+       pname = "postgresql-tx-monad-logger";
+       version = "0.1.0.0";
+       sha256 = "0y1x2d2r61ayhln0l2c5i3ivv97zpwyiaw1hymghpv4vwnlihv1y";
+       libraryHaskellDepends = [ base monad-logger postgresql-tx ];
+       description = "postgresql-tx interfacing for use with monad-logger";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "postgresql-tx-query" = callPackage
+    ({ mkDerivation, base, monad-logger, mtl, postgresql-query
+     , postgresql-simple, postgresql-tx, postgresql-tx-monad-logger
+     , transformers
+     }:
+     mkDerivation {
+       pname = "postgresql-tx-query";
+       version = "0.1.0.0";
+       sha256 = "0a7khw9ncc8k5cpi63kw598hvg3ycm1lchz46aw06pndcdzr54sv";
+       libraryHaskellDepends = [
+         base monad-logger mtl postgresql-query postgresql-simple
+         postgresql-tx postgresql-tx-monad-logger transformers
+       ];
+       description = "postgresql-tx interfacing for use with postgresql-query";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "postgresql-tx-simple" = callPackage
+    ({ mkDerivation, base, postgresql-simple, postgresql-tx
+     , transformers
+     }:
+     mkDerivation {
+       pname = "postgresql-tx-simple";
+       version = "0.1.0.0";
+       sha256 = "1k03wqqzsvmmd7wh9gnlg9h12v2xnzd1vc9396sl1krg29l8373p";
+       libraryHaskellDepends = [
+         base postgresql-simple postgresql-tx transformers
+       ];
+       description = "postgresql-tx interfacing for use with postgresql-simple";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "postgresql-tx-squeal" = callPackage
+    ({ mkDerivation, base, bytestring, generics-sop, postgresql-libpq
+     , postgresql-tx, records-sop, squeal-postgresql
+     }:
+     mkDerivation {
+       pname = "postgresql-tx-squeal";
+       version = "0.1.0.0";
+       sha256 = "08wfdy6hlpwkv3njh33igskv489kk8zbsd1nk24fvql1w215gsa4";
+       libraryHaskellDepends = [
+         base bytestring generics-sop postgresql-libpq postgresql-tx
+         records-sop squeal-postgresql
+       ];
+       description = "postgresql-tx interfacing for use with squeal-postgresql";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "postgresql-typed" = callPackage
     ({ mkDerivation, aeson, array, attoparsec, base, binary, bytestring
      , containers, convertible, criterion, cryptonite, data-default
@@ -197180,8 +201178,8 @@ self: {
      }:
      mkDerivation {
        pname = "postgresql-typed";
-       version = "0.6.1.0";
-       sha256 = "1p7bcwbjb0pi96d9zad8kmlb2w3g06g4xra33xmmskynmsdyc0r9";
+       version = "0.6.1.2";
+       sha256 = "0l2fkndiyb3yglgrj7mlmlsgg6qjgjzbh4przqk999c8cfr6bc66";
        libraryHaskellDepends = [
          aeson array attoparsec base binary bytestring containers cryptonite
          data-default haskell-src-meta HDBC memory network old-locale
@@ -197283,8 +201281,8 @@ self: {
        pname = "postgrest";
        version = "7.0.1";
        sha256 = "1cn69dinfv3y8ymsa364b9b0ly3dg80and902gamymb9v89jpsgf";
-       revision = "1";
-       editedCabalFile = "0s8zzv6vjs4mp6m6l6ahfpfrx551zzp3nh13qk5qxk992x3jxb8b";
+       revision = "2";
+       editedCabalFile = "061lr5hy3xf1nx7yqjpspxqdccmhvvfkyzd3qxzsg5s041hy4krs";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -197978,27 +201976,29 @@ self: {
      }) {};
 
   "predicate-typed" = callPackage
-    ({ mkDerivation, aeson, base, binary, bytestring, comonad
-     , containers, deepseq, directory, doctest, ghc-prim, hashable, lens
+    ({ mkDerivation, aeson, aeson-pretty, base, binary, bytestring
+     , comonad, containers, deepseq, directory, doctest, hashable, lens
      , mtl, pcre-heavy, pcre-light, pretty, pretty-terminal, QuickCheck
-     , safe, stm, tasty, tasty-hunit, tasty-quickcheck, template-haskell
-     , text, th-lift, these, time, tree-view
+     , safe, stm, string-conversions, tasty, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, th-lift, these, time
+     , tree-view
      }:
      mkDerivation {
        pname = "predicate-typed";
-       version = "0.6.2.1";
-       sha256 = "11gby9bjkh6bqznxxiz3ggdr0z13qihgh6pry014rap2iqzj71za";
+       version = "0.7.3.0";
+       sha256 = "124f9bdvq30xaadg6020q0pmfv56mpkw25ws306xp8mfs61g1src";
        libraryHaskellDepends = [
-         aeson base binary bytestring comonad containers deepseq directory
-         ghc-prim hashable lens mtl pcre-heavy pcre-light pretty
-         pretty-terminal QuickCheck safe template-haskell text th-lift these
-         time tree-view
+         aeson aeson-pretty base binary bytestring comonad containers
+         deepseq directory hashable lens mtl pcre-heavy pcre-light pretty
+         pretty-terminal QuickCheck safe string-conversions template-haskell
+         text th-lift these time tree-view
        ];
        testHaskellDepends = [
-         aeson base binary bytestring comonad containers deepseq directory
-         doctest ghc-prim hashable lens mtl pcre-heavy pcre-light pretty
-         pretty-terminal QuickCheck safe stm tasty tasty-hunit
-         tasty-quickcheck template-haskell text th-lift these time tree-view
+         aeson aeson-pretty base binary bytestring comonad containers
+         deepseq directory doctest hashable lens mtl pcre-heavy pcre-light
+         pretty pretty-terminal QuickCheck safe stm string-conversions tasty
+         tasty-hunit tasty-quickcheck template-haskell text th-lift these
+         time tree-view
        ];
        description = "Predicates, Refinement types and Dsl";
        license = stdenv.lib.licenses.bsd3;
@@ -198481,8 +202481,8 @@ self: {
        pname = "pretty-compact";
        version = "3.0";
        sha256 = "06m8n5rx1d62hwd017ss8nlxas5ia57lgxddm2hv2046938a5wm8";
-       revision = "2";
-       editedCabalFile = "04c309cdfrfwh031g8syyrwwn0lxdjj9f7d8szabscm19zwbi399";
+       revision = "3";
+       editedCabalFile = "08wmmcqsh7yv1h9g0kmg2w84w7b1ljw2wxz81gjg91z0ig3f3zs2";
        libraryHaskellDepends = [ base base-compat containers ];
        benchmarkHaskellDepends = [
          aeson base base-compat bytestring criterion deepseq pretty text
@@ -198830,15 +202830,46 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "prettyprinter_1_7_0" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, base, base-compat, bytestring
+     , containers, deepseq, doctest, gauge, mtl, pgp-wordlist
+     , QuickCheck, quickcheck-instances, random, tasty, tasty-hunit
+     , tasty-quickcheck, text, transformers
+     }:
+     mkDerivation {
+       pname = "prettyprinter";
+       version = "1.7.0";
+       sha256 = "19z04sn0kqxgwcyfn5igjmbxw13xsb3mdhdidkb3kzswib78f6sr";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base text ];
+       testHaskellDepends = [
+         base bytestring doctest pgp-wordlist QuickCheck
+         quickcheck-instances tasty tasty-hunit tasty-quickcheck text
+       ];
+       benchmarkHaskellDepends = [
+         ansi-wl-pprint base base-compat containers deepseq gauge mtl
+         QuickCheck random text transformers
+       ];
+       description = "A modern, easy to use, well-documented, extensible pretty-printer";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "prettyprinter-ansi-terminal" = callPackage
-    ({ mkDerivation, ansi-terminal, base, doctest, prettyprinter, text
+    ({ mkDerivation, ansi-terminal, base, base-compat, containers
+     , deepseq, doctest, gauge, prettyprinter, QuickCheck, text
      }:
      mkDerivation {
        pname = "prettyprinter-ansi-terminal";
-       version = "1.1.1.2";
-       sha256 = "0ha6vz707qzb5ky7kdsnw2zgphg2dnxrpbrxy8gaw119vwhb9q6k";
+       version = "1.1.2";
+       sha256 = "168p5b7fzqs0g8ld26d3k78afgdx4r21dv0hw8ka2c08p4w76sz2";
        libraryHaskellDepends = [ ansi-terminal base prettyprinter text ];
        testHaskellDepends = [ base doctest ];
+       benchmarkHaskellDepends = [
+         base base-compat containers deepseq gauge prettyprinter QuickCheck
+         text
+       ];
        description = "ANSI terminal backend for the »prettyprinter« package";
        license = stdenv.lib.licenses.bsd2;
      }) {};
@@ -198892,10 +202923,8 @@ self: {
      }:
      mkDerivation {
        pname = "prettyprinter-convert-ansi-wl-pprint";
-       version = "1.1";
-       sha256 = "03565w1qvqgdr1g2nwj3d2xpqbx04xm45pjfkb9d6jb2fww2v65q";
-       revision = "1";
-       editedCabalFile = "1c4zcscmvq0vbdgnp7n0avv8si5jshl4kw2qd1lqmhr28kj8x45f";
+       version = "1.1.1";
+       sha256 = "0bgf2np1ymy6zsd1qacndgyipcf0bamw1wkkikaq57npbb7psc41";
        libraryHaskellDepends = [
          ansi-terminal ansi-wl-pprint base prettyprinter
          prettyprinter-ansi-terminal text
@@ -198918,6 +202947,19 @@ self: {
        broken = true;
      }) {};
 
+  "prettyprinter-lucid" = callPackage
+    ({ mkDerivation, base, lucid, prettyprinter, text }:
+     mkDerivation {
+       pname = "prettyprinter-lucid";
+       version = "0.1.0.1";
+       sha256 = "0m8dbxzs22zbahpr6r1frlfqyw581wyg92vswm3gi2qqpj406djh";
+       libraryHaskellDepends = [ base lucid prettyprinter text ];
+       description = "A prettyprinter backend for lucid";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "prettyprinter-vty" = callPackage
     ({ mkDerivation, base, prettyprinter, vty }:
      mkDerivation {
@@ -199029,6 +203071,40 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
+  "primal" = callPackage
+    ({ mkDerivation, base, deepseq, doctest, template-haskell
+     , transformers
+     }:
+     mkDerivation {
+       pname = "primal";
+       version = "0.1.0.0";
+       sha256 = "0y60m1249n5mzglmbkhv98lzzmmkxs2k0mn882kqs89h04hfx546";
+       libraryHaskellDepends = [ base deepseq transformers ];
+       testHaskellDepends = [ base doctest template-haskell ];
+       description = "Primeval world of Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "primal-memory" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, deepseq, primal
+     , primitive, random
+     }:
+     mkDerivation {
+       pname = "primal-memory";
+       version = "0.1.0.0";
+       sha256 = "0lvz5kj6bvlgz1jykcv8dri77pjmy6fzppvk9vlvh4cx22zh9y5m";
+       libraryHaskellDepends = [ base bytestring deepseq primal ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq primal primitive random
+       ];
+       description = "Unified interface for memory managemenet";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "primes" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -199212,8 +203288,6 @@ self: {
        ];
        description = "Extras for the \"primitive\" library";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "primitive-foreign" = callPackage
@@ -199434,6 +203508,17 @@ self: {
        broken = true;
      }) {};
 
+  "print-info" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "print-info";
+       version = "0.1.3.0";
+       sha256 = "02wl9hq7jkz4yzkb744xwgnbss0w2sdpi02d3ms2q5rvc03ixnh6";
+       libraryHaskellDepends = [ base ];
+       description = "Can be used to coordinate the printing output";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "printcess" = callPackage
     ({ mkDerivation, base, containers, hspec, HUnit, lens, mtl
      , QuickCheck, transformers
@@ -199594,9 +203679,8 @@ self: {
      }:
      mkDerivation {
        pname = "probability";
-       version = "0.2.6";
-       sha256 = "12qzgn9jb9hvbpbkb75ad55yhmhai945rvdbamx6zspbrjlsb9sz";
-       enableSeparateDataOutput = true;
+       version = "0.2.7";
+       sha256 = "1m494ya9yv25jdi9wm90zz8c16vq1kv73sgc6w3950020hsbfqj9";
        libraryHaskellDepends = [
          base containers random transformers utility-ht
        ];
@@ -200016,6 +204100,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "product-profunctors_0_11_0_0" = callPackage
+    ({ mkDerivation, base, bifunctors, contravariant, criterion
+     , deepseq, profunctors, tagged, template-haskell
+     }:
+     mkDerivation {
+       pname = "product-profunctors";
+       version = "0.11.0.0";
+       sha256 = "1jx427xixykq9h353r7izd5nx1hpzc7g0hz4pcx6hnd0ql2d644a";
+       libraryHaskellDepends = [
+         base bifunctors contravariant profunctors tagged template-haskell
+       ];
+       testHaskellDepends = [ base profunctors ];
+       benchmarkHaskellDepends = [ base criterion deepseq ];
+       description = "product-profunctors";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "prof-flamegraph" = callPackage
     ({ mkDerivation, base, optparse-applicative }:
      mkDerivation {
@@ -200385,10 +204487,8 @@ self: {
      }:
      mkDerivation {
        pname = "project-template";
-       version = "0.2.0.1";
-       sha256 = "1p69ww4rhah2qxragl615wl4a6mk4x9w09am8knmz3s4lxpljlpb";
-       revision = "1";
-       editedCabalFile = "0lq3sqnq0nr0gbvgzp0lqdl3j3mqdmdlf8xsw0j3pjh581xj3k0a";
+       version = "0.2.1.0";
+       sha256 = "0ac43x36i6b595jhflif1qqhri1rrqw90ama5n7rsh0ffnzyb69d";
        libraryHaskellDepends = [
          base base64-bytestring bytestring conduit conduit-extra containers
          directory filepath mtl resourcet text transformers
@@ -200453,8 +204553,8 @@ self: {
      }:
      mkDerivation {
        pname = "prolog";
-       version = "0.3";
-       sha256 = "02i79irax13rny953k6fvswsgbif9nnvysnnbq3k4w37b3g5maiv";
+       version = "0.3.2";
+       sha256 = "1clh7gfqh2yf17jc453y8cc8qcga9h0j5a60nfr1sjd5byr8j8ab";
        libraryHaskellDepends = [
          base containers mtl parsec syb template-haskell th-lift
          transformers
@@ -200531,8 +204631,8 @@ self: {
      }:
      mkDerivation {
        pname = "prometheus";
-       version = "2.1.3";
-       sha256 = "1z8mar0l8kh8wd0hsv4ckgnr5ha1vsx83afg63z9pwmv5l3phj0q";
+       version = "2.2.2";
+       sha256 = "11r3ckkv4fzgc5lgfvhgkngjvikzmapahh162grzdj6j47nm3hsf";
        libraryHaskellDepends = [
          atomic-primops base bytestring containers http-client
          http-client-tls http-types network-uri text transformers wai warp
@@ -200549,8 +204649,8 @@ self: {
      }:
      mkDerivation {
        pname = "prometheus-client";
-       version = "1.0.0.1";
-       sha256 = "0jmxmq4f3p8jlg7h5wlq0kk6z749fr4gmac5x9gim0mjjga6q0r7";
+       version = "1.0.1";
+       sha256 = "1gyclzl16dkq7yw84x0ppgmyav7scl4jvwq9b5ihzxy45crcdhin";
        libraryHaskellDepends = [
          atomic-primops base bytestring clock containers deepseq exceptions
          mtl stm text transformers transformers-compat utf8-string
@@ -200602,8 +204702,8 @@ self: {
      }:
      mkDerivation {
        pname = "prometheus-metrics-ghc";
-       version = "1.0.1";
-       sha256 = "18816z271daza8yl6sqagv4y26f977d66s26kvjq680pykcflxwx";
+       version = "1.0.1.1";
+       sha256 = "0afa29ym9jvagm8n99axj2qy6m4ps6qd07k1wlyb64078yc2nqn9";
        libraryHaskellDepends = [
          base prometheus-client text utf8-string
        ];
@@ -200628,6 +204728,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "prometheus-wai-middleware" = callPackage
+    ({ mkDerivation, async, base, clock, containers, http-types
+     , prometheus, text, wai, warp
+     }:
+     mkDerivation {
+       pname = "prometheus-wai-middleware";
+       version = "1.0.1.0";
+       sha256 = "1srp4j7841wfc29x5x8wkykjdqzdln26s219zrq15f5vir14lpar";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base clock containers http-types prometheus text wai
+       ];
+       executableHaskellDepends = [
+         async base http-types prometheus wai warp
+       ];
+       description = "Instrument a wai application with various metrics";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "promise" = callPackage
     ({ mkDerivation, async, base }:
      mkDerivation {
@@ -200734,8 +204854,8 @@ self: {
      }:
      mkDerivation {
        pname = "propellor";
-       version = "5.10.2";
-       sha256 = "1yagzlpn6myj46ihcy8v43kxjf8kba42q5vahy22aanpwbp9lij8";
+       version = "5.11";
+       sha256 = "0jda99g9a818w1yisms40rlzx81dyvv16w2ms8iazs5b9h4fwb3a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -201039,8 +205159,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-jsonpb";
-       version = "0.2.0.0";
-       sha256 = "01m88qfi5lak15n14zlxb5yjyi67h5m47czkzirhi0a615v8bwbr";
+       version = "0.2.0.2";
+       sha256 = "1r98841byxkg5941yjrw15n56i0x68qr3gk29bimwcfifdf0idm2";
        libraryHaskellDepends = [
          aeson attoparsec base base64-bytestring bytestring
          proto-lens-runtime text vector
@@ -201143,14 +205263,13 @@ self: {
      , insert-ordered-containers, lens, mtl, neat-interpolation
      , optparse-applicative, optparse-generic, parsec, parsers, pretty
      , pretty-show, proto3-wire, QuickCheck, quickcheck-instances
-     , range-set-list, safe, semigroups, swagger2, system-filepath
-     , tasty, tasty-hunit, tasty-quickcheck, text, transformers, turtle
-     , vector
+     , range-set-list, safe, swagger2, system-filepath, tasty
+     , tasty-hunit, tasty-quickcheck, text, transformers, turtle, vector
      }:
      mkDerivation {
        pname = "proto3-suite";
-       version = "0.4.0.0";
-       sha256 = "0pmd7fhw4y90h1qffmgxkqijdscqw0qj7nhj0pvrvz1av6svhvr1";
+       version = "0.4.0.2";
+       sha256 = "0mk1yhpq2q6jv7z3ipdq5dw5sij39y7lv5gaslzxkbvs2kan7d4m";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -201159,8 +205278,8 @@ self: {
          bytestring cereal containers contravariant deepseq filepath foldl
          hashable haskell-src insert-ordered-containers lens mtl
          neat-interpolation parsec parsers pretty pretty-show proto3-wire
-         QuickCheck quickcheck-instances safe semigroups swagger2
-         system-filepath text transformers turtle vector
+         QuickCheck quickcheck-instances safe swagger2 system-filepath text
+         transformers turtle vector
        ];
        executableHaskellDepends = [
          base containers mtl optparse-applicative optparse-generic
@@ -201169,8 +205288,8 @@ self: {
        testHaskellDepends = [
          aeson attoparsec base base64-bytestring bytestring cereal
          containers deepseq doctest generic-arbitrary mtl pretty-show
-         proto3-wire QuickCheck semigroups swagger2 tasty tasty-hunit
-         tasty-quickcheck text transformers turtle vector
+         proto3-wire QuickCheck swagger2 tasty tasty-hunit tasty-quickcheck
+         text transformers turtle vector
        ];
        description = "A low level library for writing out data in the Protocol Buffers wire format";
        license = stdenv.lib.licenses.asl20;
@@ -201201,6 +205320,30 @@ self: {
        license = stdenv.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
+     }:
+     mkDerivation {
+       pname = "proto3-wire";
+       version = "1.2.0";
+       sha256 = "1xrnrh4njnw6af8xxg9xhcxrscg0g644jx4l9an4iqz6xmjp2nk2";
+       libraryHaskellDepends = [
+         base bytestring cereal containers deepseq ghc-prim hashable
+         parameterized primitive QuickCheck safe text transformers
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base bytestring cereal doctest QuickCheck tasty tasty-hunit
+         tasty-quickcheck text transformers vector
+       ];
+       description = "A low-level implementation of the Protocol Buffers (version 3) wire format";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "protobuf" = callPackage
     ({ mkDerivation, base, base-orphans, bytestring, cereal, containers
      , data-binary-ieee754, deepseq, hex, HUnit, mtl, QuickCheck, tagged
@@ -201272,6 +205415,17 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "protocol" = callPackage
+    ({ mkDerivation, base, freer-indexed, singletons }:
+     mkDerivation {
+       pname = "protocol";
+       version = "0.1.0.1";
+       sha256 = "16pbhfggw46jdjyljqr6dr0mlzmfhvwmw3lg1s5rp90zg4jgvha0";
+       libraryHaskellDepends = [ base freer-indexed singletons ];
+       description = "Model distributed system as type-level multi-party protocol";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "protocol-buffers" = callPackage
     ({ mkDerivation, aeson, array, base, base16-bytestring, binary
      , bytestring, containers, directory, filepath, mtl, parsec, syb
@@ -201490,8 +205644,8 @@ self: {
      }:
      mkDerivation {
        pname = "provenience";
-       version = "0.1.0.1";
-       sha256 = "0z2lsyx59wk663y4p0xwl5sjrl1h3aqlqwig2xhvv9a1cf2bzzd3";
+       version = "0.1.1.0";
+       sha256 = "020kfw1laishiqy8npg2f2llq7dv1djii0d0khjfw7f1scy4x10n";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -201659,6 +205813,21 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "psql-utils" = callPackage
+    ({ mkDerivation, aeson, base, hashable, postgresql-simple
+     , resource-pool, time
+     }:
+     mkDerivation {
+       pname = "psql-utils";
+       version = "0.2.0.0";
+       sha256 = "0y195pymiy31d8pyq71hjrh58s3hfzaa58l7qskbf3biyy159sxz";
+       libraryHaskellDepends = [
+         aeson base hashable postgresql-simple resource-pool time
+       ];
+       description = "PostgreSQL Simple util tools";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "psqueues" = callPackage
     ({ mkDerivation, array, base, containers, criterion, deepseq
      , fingertree-psqueue, ghc-prim, hashable, HUnit, mtl, PSQueue
@@ -201718,8 +205887,8 @@ self: {
      }:
      mkDerivation {
        pname = "ptr";
-       version = "0.16.7";
-       sha256 = "1mnwx657mcg0c0hg71z6kglxckjxc7xsypy00m7lsj37l6bpfnjr";
+       version = "0.16.7.2";
+       sha256 = "0d00albfv3zbbq54x9i8riwbpi61mpz7ymr8y1whag2lrw4diyna";
        libraryHaskellDepends = [
          base bytestring contravariant profunctors text time vector
        ];
@@ -201812,8 +205981,8 @@ self: {
      }:
      mkDerivation {
        pname = "publish";
-       version = "2.1.0";
-       sha256 = "03fwk0ami5xxqacqb8gikqzxdp7cavvni5bmxd5bi1lvavk49sh7";
+       version = "2.1.3";
+       sha256 = "1d16pz8nlqdvlp4d1129k71vzdyql1szhk158b446k988akmgaq8";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -202248,8 +206417,8 @@ self: {
      }:
      mkDerivation {
        pname = "purebred-email";
-       version = "0.4.1";
-       sha256 = "0fkdmd0glp8p2dyzfpm3ah6nbfw4jqfzx7ai6yl2f9yrssb0ckp9";
+       version = "0.4.2";
+       sha256 = "18cjifncnxi4c3xxkgvvvay56h2a0zs83505xf1a9fkz5n8iwqby";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -202310,6 +206479,8 @@ self: {
        pname = "purescript";
        version = "0.13.8";
        sha256 = "0sh9z3ir3jiwmi5h95v9p7j746xxidg1hrxha89c0zl6vr4sq7vh";
+       revision = "1";
+       editedCabalFile = "1ilnqfxscwkr0jl09y1dwi2aabwnghd0l22lm32jgfyq04njpc2a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -202467,6 +206638,8 @@ self: {
        executableHaskellDepends = [ base text ];
        description = "A cli client for pursuit";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "push-notifications" = callPackage
@@ -202641,30 +206814,6 @@ self: {
      }:
      mkDerivation {
        pname = "pusher-http-haskell";
-       version = "1.5.1.13";
-       sha256 = "0hdipa1i5l4d60i70c1li585jc4biq0af6l826rzfhlpwjgzlh7z";
-       libraryHaskellDepends = [
-         aeson base base16-bytestring bytestring cryptonite hashable
-         http-client http-types memory text time transformers
-         unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson base base16-bytestring bytestring cryptonite hspec
-         http-client http-types QuickCheck scientific text time transformers
-         unordered-containers vector
-       ];
-       description = "Haskell client library for the Pusher HTTP API";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "pusher-http-haskell_1_5_1_14" = callPackage
-    ({ mkDerivation, aeson, base, base16-bytestring, bytestring
-     , cryptonite, hashable, hspec, http-client, http-types, memory
-     , QuickCheck, scientific, text, time, transformers
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "pusher-http-haskell";
        version = "1.5.1.14";
        sha256 = "0gfn5rfyyhbrl6sq7b6qyg86afww60c9g8y65m0qci6c91jbrv3a";
        libraryHaskellDepends = [
@@ -202679,7 +206828,6 @@ self: {
        ];
        description = "Haskell client library for the Pusher Channels HTTP API";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pusher-ws" = callPackage
@@ -203140,6 +207288,26 @@ self: {
        broken = true;
      }) {};
 
+  "qlinear" = callPackage
+    ({ mkDerivation, base, haskell-src-exts, haskell-src-meta, hspec
+     , linear, parsec, split, template-haskell
+     }:
+     mkDerivation {
+       pname = "qlinear";
+       version = "0.1.2.0";
+       sha256 = "1q1xd3sh5b5kjp9wb24v2z9dbjk75dwk286f0gda4y460h4zkp8z";
+       libraryHaskellDepends = [
+         base haskell-src-exts haskell-src-meta linear parsec split
+         template-haskell
+       ];
+       testHaskellDepends = [
+         base haskell-src-exts haskell-src-meta hspec linear parsec split
+         template-haskell
+       ];
+       description = "Typesafe library for linear algebra";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "qm-interpolated-string" = callPackage
     ({ mkDerivation, base, bytestring, haskell-src-meta, hspec
      , template-haskell, text
@@ -203261,8 +207429,8 @@ self: {
      }:
      mkDerivation {
        pname = "qrcode-core";
-       version = "0.9.3";
-       sha256 = "08kp0qp7kvld99kk2iwr6cxpxji2w9vjydivqc3nwxbk5ay2mpjg";
+       version = "0.9.4";
+       sha256 = "1drjx73qslga81bhby0h000icrvnhhlv36n6i37j8524x9ir2gn0";
        libraryHaskellDepends = [
          base binary bytestring case-insensitive containers dlist primitive
          text vector
@@ -203277,8 +207445,8 @@ self: {
      }:
      mkDerivation {
        pname = "qrcode-juicypixels";
-       version = "0.8.1";
-       sha256 = "0yd22dygh2z8i0yhgdgr1m25ag9bdkpmd1ciq4iq42k0yhk6iqx9";
+       version = "0.8.2";
+       sha256 = "0kiyi084hmd2l50fd8miwgw0y94sd1lkf34jw7z3sb33bbp70f3g";
        libraryHaskellDepends = [
          base base64-bytestring bytestring JuicyPixels qrcode-core text
          vector
@@ -203554,6 +207722,8 @@ self: {
        ];
        description = "Coronavirus quarantine timer web app for your things";
        license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "qudb" = callPackage
@@ -203987,6 +208157,32 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "quickcheck-instances_0_3_24" = callPackage
+    ({ mkDerivation, array, base, bytestring, case-insensitive
+     , containers, data-fix, hashable, integer-logarithms, old-time
+     , QuickCheck, scientific, splitmix, strict, tagged, text, these
+     , time, time-compat, transformers, transformers-compat
+     , unordered-containers, uuid-types, vector
+     }:
+     mkDerivation {
+       pname = "quickcheck-instances";
+       version = "0.3.24";
+       sha256 = "0jvb3d43hc1sa8aal1gjpwmrh65mswi72yssb98bj5hca4z8grk5";
+       libraryHaskellDepends = [
+         array base bytestring case-insensitive containers data-fix hashable
+         integer-logarithms old-time QuickCheck scientific splitmix strict
+         tagged text these time time-compat transformers transformers-compat
+         unordered-containers uuid-types vector
+       ];
+       testHaskellDepends = [
+         base containers QuickCheck tagged uuid-types
+       ];
+       benchmarkHaskellDepends = [ base bytestring QuickCheck ];
+       description = "Common quickcheck instances";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "quickcheck-io" = callPackage
     ({ mkDerivation, base, HUnit, QuickCheck }:
      mkDerivation {
@@ -204251,23 +208447,11 @@ self: {
     ({ mkDerivation, base, QuickCheck, random, transformers }:
      mkDerivation {
        pname = "quickcheck-transformer";
-       version = "0.3.1";
-       sha256 = "1jbn17gp2f5ppm83vs2gd3fcbkv3km45qfjgr6qz532ks1a8k0fl";
-       libraryHaskellDepends = [ base QuickCheck random transformers ];
-       description = "A GenT monad transformer for QuickCheck library";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "quickcheck-transformer_0_3_1_1" = callPackage
-    ({ mkDerivation, base, QuickCheck, random, transformers }:
-     mkDerivation {
-       pname = "quickcheck-transformer";
        version = "0.3.1.1";
        sha256 = "0al0p44qi9j829zcnv43kqf4pxaxr6fb48vkq1an15hdk6svx11j";
        libraryHaskellDepends = [ base QuickCheck random transformers ];
        description = "A GenT monad transformer for QuickCheck library";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "quickcheck-unicode" = callPackage
@@ -204305,6 +208489,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "quickjs-hs" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, exceptions
+     , HUnit, inline-c, mtl, QuickCheck, scientific, string-conv, tasty
+     , tasty-hunit, tasty-quickcheck, text, time, transformers
+     , unliftio-core, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "quickjs-hs";
+       version = "0.1.2.1";
+       sha256 = "0dbypa7p3x5j2nmbw2qvs4aik74jfkfa9b0mmv2290p6sj9ag1hd";
+       revision = "1";
+       editedCabalFile = "0f18980s2sky2fnrdnadyhivjhbzxcq9m3isnji8q2gbzpbywca7";
+       libraryHaskellDepends = [
+         aeson base bytestring containers exceptions inline-c mtl scientific
+         string-conv text time transformers unliftio-core
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base exceptions HUnit QuickCheck tasty tasty-hunit
+         tasty-quickcheck text unordered-containers vector
+       ];
+       description = "Wrapper for the QuickJS Javascript Engine";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "quicklz" = callPackage
     ({ mkDerivation, base, bytestring, QuickCheck, test-framework
      , test-framework-quickcheck2
@@ -204384,10 +208593,8 @@ self: {
      }:
      mkDerivation {
        pname = "quickspec";
-       version = "2.1.2";
-       sha256 = "0igqwa195qgps5vla2a4f83rq4vdq739i94kbzzmbnniylx9wgdw";
-       revision = "1";
-       editedCabalFile = "0r1jmxcm08mhfxz6gggnnpgcwm4zd3zm76p5lj37h04cvq6kyaa5";
+       version = "2.1.5";
+       sha256 = "0j8mcn9616r40hdl0jy6mqac7i31mhlsgv421m1hc8pj1kabpc0i";
        libraryHaskellDepends = [
          base constraints containers data-lens-light dlist QuickCheck
          quickcheck-instances random spoon template-haskell transformers
@@ -205540,6 +209747,8 @@ self: {
        pname = "random";
        version = "1.2.0";
        sha256 = "1pmr7zbbqg58kihhhwj8figf5jdchhi7ik2apsyxbgsqq3vrqlg4";
+       revision = "2";
+       editedCabalFile = "1pjpv8rzbwhr881ayxbvz4filvx3qkdx13pa21407p5fiyf208a3";
        libraryHaskellDepends = [ base bytestring deepseq mtl splitmix ];
        testHaskellDepends = [
          base bytestring containers doctest mwc-random primitive smallcheck
@@ -205670,23 +209879,27 @@ self: {
        ];
        description = "Additional functions for random values";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "random-fu" = callPackage
     ({ mkDerivation, base, erf, math-functions, monad-loops, mtl
-     , random-shuffle, random-source, rvar, syb, template-haskell
-     , transformers, vector
+     , random, random-shuffle, random-source, rvar, syb
+     , template-haskell, transformers, vector
      }:
      mkDerivation {
        pname = "random-fu";
-       version = "0.2.7.4";
-       sha256 = "13dgx069lvdfxm7l2q2l6d7q0gd3wp41b8l4l6wmhlfbl5xici3m";
+       version = "0.2.7.7";
+       sha256 = "1jk5qv7iddbqcyciih9vfylrwhbcabmy348waw5c7gchabxvqrl4";
        libraryHaskellDepends = [
-         base erf math-functions monad-loops mtl random-shuffle
+         base erf math-functions monad-loops mtl random random-shuffle
          random-source rvar syb template-haskell transformers vector
        ];
        description = "Random number generation";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "random-fu-multivariate" = callPackage
@@ -205699,6 +209912,8 @@ self: {
        testHaskellDepends = [ base ];
        description = "Multivariate distributions for random-fu";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "random-hypergeometric" = callPackage
@@ -205749,14 +209964,16 @@ self: {
      }:
      mkDerivation {
        pname = "random-source";
-       version = "0.3.0.8";
-       sha256 = "0kjvpmxhff6id99hhgjp3vvb4vlhs3shkrh1n5cbfm7450lpmmn2";
+       version = "0.3.0.11";
+       sha256 = "0lwqbd0h495srgi2p8fsmsfk5hv5m3f6cxm12j61xx94fdyn98sv";
        libraryHaskellDepends = [
          base flexible-defaults mersenne-random-pure64 mtl mwc-random
          primitive random stateref syb template-haskell th-extras
        ];
        description = "Generic basis for random number generators";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "random-stream" = callPackage
@@ -205978,6 +210195,8 @@ self: {
        ];
        description = "Find the rank product of a data set";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "rank1dynamic" = callPackage
@@ -206813,10 +211032,8 @@ self: {
      }:
      mkDerivation {
        pname = "rdf";
-       version = "0.1.0.3";
-       sha256 = "0bypvzr4xj3nvq839slhjcl6lzs4zp34yg6q3hdkwa5vgall6x2s";
-       revision = "1";
-       editedCabalFile = "0x5zdjbyrpap5qs40yl0m96fcgy11f6s5r3v0n8n5904cxa5sqy3";
+       version = "0.1.0.4";
+       sha256 = "1ncvh2rkxmy3k3scrpf7zyambvr94s5hq6n2yb4h7f5yx6xzr0wk";
        libraryHaskellDepends = [
          attoparsec base bytestring deepseq dlist fgl text transformers
        ];
@@ -206830,22 +211047,22 @@ self: {
   "rdf4h" = callPackage
     ({ mkDerivation, algebraic-graphs, attoparsec, base, binary
      , bytestring, containers, criterion, deepseq, directory, exceptions
-     , filepath, hashable, hgal, html-entities, http-conduit, HUnit
+     , filepath, hashable, html-entities, http-conduit, HUnit
      , lifted-base, mmorph, mtl, network-uri, parsec, parsers
      , QuickCheck, safe, selective, tasty, tasty-hunit, tasty-quickcheck
      , text, unordered-containers, xeno
      }:
      mkDerivation {
        pname = "rdf4h";
-       version = "4.0.1";
-       sha256 = "1nnkgl8xsh7xp6wsfd295qxh3yay6v7isxkh0xx18sdpm7lwdydq";
+       version = "4.0.2";
+       sha256 = "1gkz1i1v2509aa5c9jp2lgmsnnsr7d1314gq3xmcs21dfgf7xibw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          algebraic-graphs attoparsec base binary bytestring containers
-         deepseq exceptions filepath hashable hgal html-entities
-         http-conduit lifted-base mmorph mtl network-uri parsec parsers
-         selective text unordered-containers xeno
+         deepseq exceptions filepath hashable html-entities http-conduit
+         lifted-base mmorph mtl network-uri parsec parsers selective text
+         unordered-containers xeno
        ];
        executableHaskellDepends = [ base containers text ];
        testHaskellDepends = [
@@ -207087,8 +211304,8 @@ self: {
      }:
      mkDerivation {
        pname = "reactive-banana-automation";
-       version = "0.5.3";
-       sha256 = "15jp5rawypxzbbyi9xi6jkds3mns7fpfkvzrzbqd7dvaj4mzzz0g";
+       version = "0.5.4";
+       sha256 = "1ir2m6d13hg8i4w4vfpnvjv6dvnjmrz2bwl7n6lsac95pm0hbjs3";
        libraryHaskellDepends = [
          base reactive-banana stm time transformers
        ];
@@ -207122,8 +211339,8 @@ self: {
      }:
      mkDerivation {
        pname = "reactive-banana-gi-gtk";
-       version = "0.4.0.2";
-       sha256 = "136wzp6v9g6k5aa6w5wh0n96qcq9lm7h0lc87pk170ypymadp6ak";
+       version = "0.4.1.0";
+       sha256 = "021fkmwgymmlf1ha03y9rdimbck7sglmg4cjpdf76z01r6hpzbrb";
        libraryHaskellDepends = [
          base gi-gtk haskell-gi-base reactive-banana text transformers
        ];
@@ -207432,20 +211649,20 @@ self: {
      }) {};
 
   "readability" = callPackage
-    ({ mkDerivation, base, bytestring, containers, html-conduit
+    ({ mkDerivation, aeson, base, bytestring, containers, html-conduit
      , http-conduit, optparse-applicative, text, xml-conduit
      }:
      mkDerivation {
        pname = "readability";
-       version = "0.0.1.0";
-       sha256 = "1g96fa6h2zayc3icys900sfhvk943gp991667miiv4lk0bdlpkrr";
+       version = "0.1.0.0";
+       sha256 = "1px8fjwglcrh6vp2j8jcbslc6izgaj8cnl0w7g997gps62jbqn34";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring containers html-conduit text xml-conduit
        ];
        executableHaskellDepends = [
-         base http-conduit optparse-applicative text xml-conduit
+         aeson base http-conduit optparse-applicative text xml-conduit
        ];
        description = "Extracts text of main article from HTML document";
        license = stdenv.lib.licenses.bsd3;
@@ -207521,19 +211738,20 @@ self: {
 
   "readme-lhs" = callPackage
     ({ mkDerivation, attoparsec, base, blaze-html, containers, doctest
-     , foldl, pandoc, pandoc-types, protolude, text, transformers
+     , foldl, numhask, pandoc, pandoc-types, scientific, tdigest, text
+     , transformers
      }:
      mkDerivation {
        pname = "readme-lhs";
-       version = "0.6.0";
-       sha256 = "0q47r8dbmvmpk8fa6s4lwv5i9g4fhbyhd6c350h9ic55nqg04svv";
+       version = "0.7.0";
+       sha256 = "0sgfqx34yzlvn2999wh2681gk6dan9nrlkzd3indybkmal9mc80b";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         attoparsec base blaze-html containers foldl pandoc pandoc-types
-         protolude text transformers
+         attoparsec base blaze-html containers foldl numhask pandoc
+         pandoc-types scientific tdigest text transformers
        ];
-       executableHaskellDepends = [ base protolude text ];
+       executableHaskellDepends = [ base numhask text ];
        testHaskellDepends = [ base containers doctest ];
        description = "See readme.md";
        license = stdenv.lib.licenses.bsd3;
@@ -207631,6 +211849,41 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
+  "reanimate_0_4_3_0" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, array, attoparsec, base
+     , base64-bytestring, bytestring, cassava, cereal, colour
+     , containers, cubicbezier, directory, filelock, filepath, fsnotify
+     , geojson, ghcid, hashable, hgeometry, hgeometry-combinatorial
+     , JuicyPixels, lens, linear, matrix, mtl, neat-interpolation
+     , open-browser, optparse-applicative, parallel, process, QuickCheck
+     , random, random-shuffle, reanimate-svg, split, tasty, tasty-golden
+     , tasty-hunit, tasty-quickcheck, tasty-rerun, temporary, text, time
+     , vector, vector-space, websockets, xml
+     }:
+     mkDerivation {
+       pname = "reanimate";
+       version = "0.4.3.0";
+       sha256 = "0rp9qfp8fhz6cxrw9gcva9crxpayrm7a49m1fmma1x9dw4x79b1q";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson ansi-terminal array attoparsec base base64-bytestring
+         bytestring cassava cereal colour containers cubicbezier directory
+         filelock filepath fsnotify geojson ghcid hashable hgeometry
+         hgeometry-combinatorial JuicyPixels lens linear matrix mtl
+         neat-interpolation open-browser optparse-applicative parallel
+         process random random-shuffle reanimate-svg split temporary text
+         time vector vector-space websockets xml
+       ];
+       testHaskellDepends = [
+         base bytestring directory filepath linear process QuickCheck tasty
+         tasty-golden tasty-hunit tasty-quickcheck tasty-rerun temporary
+         text vector
+       ];
+       description = "Animation library based on SVGs";
+       license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "reanimate-svg" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, containers
      , double-conversion, hspec, JuicyPixels, lens, linear, mtl
@@ -207651,6 +211904,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "reanimate-svg_0_10_2_0" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, containers
+     , double-conversion, hspec, JuicyPixels, lens, linear, mtl
+     , scientific, svg-tree, text, transformers, vector, xml
+     }:
+     mkDerivation {
+       pname = "reanimate-svg";
+       version = "0.10.2.0";
+       sha256 = "0czj7yii9h24823rl2jlf8pqc670azgbzhrkbizdr2bnrz6g981g";
+       libraryHaskellDepends = [
+         attoparsec base bytestring containers double-conversion JuicyPixels
+         lens linear mtl scientific text transformers vector xml
+       ];
+       testHaskellDepends = [
+         attoparsec base hspec linear scientific svg-tree
+       ];
+       description = "SVG file loader and serializer";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "reason-export" = callPackage
     ({ mkDerivation, base, bytestring, containers, Diff, directory
      , formatting, hashable, hspec, hspec-core, HUnit, mtl, QuickCheck
@@ -207719,6 +211993,28 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "rebase_1_7" = callPackage
+    ({ mkDerivation, base, bifunctors, bytestring, comonad, containers
+     , contravariant, contravariant-extras, deepseq, dlist, either
+     , hashable, mtl, profunctors, scientific, selective, semigroupoids
+     , semigroups, stm, text, time, transformers, unordered-containers
+     , uuid, vector, void
+     }:
+     mkDerivation {
+       pname = "rebase";
+       version = "1.7";
+       sha256 = "1gqdqx2sbm7hn6pyqqi65g8mwz2igsq1lz7y3qdplv2aic6myla7";
+       libraryHaskellDepends = [
+         base bifunctors bytestring comonad containers contravariant
+         contravariant-extras deepseq dlist either hashable mtl profunctors
+         scientific selective semigroupoids semigroups stm text time
+         transformers unordered-containers uuid vector void
+       ];
+       description = "A more progressive alternative to the \"base\" package";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "rebindable" = callPackage
     ({ mkDerivation, base, data-default-class, indexed }:
      mkDerivation {
@@ -207741,6 +212037,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "recommender-als" = callPackage
+    ({ mkDerivation, base, containers, data-default-class, hmatrix
+     , parallel, random, vector
+     }:
+     mkDerivation {
+       pname = "recommender-als";
+       version = "0.2.1.1";
+       sha256 = "0qc91hn42mc2pmljb836chdas1jzsrqbg44cjylx31y0y72dmhdq";
+       libraryHaskellDepends = [
+         base containers data-default-class hmatrix parallel random vector
+       ];
+       description = "Recommendations using alternating least squares algorithm";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "record" = callPackage
     ({ mkDerivation, base, base-prelude, basic-lens, template-haskell
      , transformers
@@ -207782,8 +212093,8 @@ self: {
      }:
      mkDerivation {
        pname = "record-dot-preprocessor";
-       version = "0.2.5";
-       sha256 = "10f054da8iz38mplgbq4j78r4jl4l07iridd89ivk9d366z1c0ly";
+       version = "0.2.6";
+       sha256 = "0xnlzs74nxcw6yms5zbd50wnzy3n0i91rf0ss9ywc9bw18d2lbmh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base extra ghc uniplate ];
@@ -207961,8 +212272,8 @@ self: {
     ({ mkDerivation, base, composition-prelude }:
      mkDerivation {
        pname = "recursion";
-       version = "2.2.4.1";
-       sha256 = "09r4a9h4rd48nqdn08v3mvibqvgb0ym05142jrk0qqq8f4la3dni";
+       version = "2.2.4.2";
+       sha256 = "15ahlgm0dilapk0y5jhwdvrims7nyzdsbdccq4x9jj0ddsszqr02";
        libraryHaskellDepends = [ base composition-prelude ];
        description = "A recursion schemes library for Haskell";
        license = stdenv.lib.licenses.bsd3;
@@ -207987,6 +212298,24 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "recursion-schemes_5_2" = callPackage
+    ({ mkDerivation, base, base-orphans, comonad, containers, data-fix
+     , free, HUnit, template-haskell, th-abstraction, transformers
+     }:
+     mkDerivation {
+       pname = "recursion-schemes";
+       version = "5.2";
+       sha256 = "093fndxfnl2x8d7pyg0749w5hk1bhsrgzwl8qgaxvih49xqjc35z";
+       libraryHaskellDepends = [
+         base base-orphans comonad containers data-fix free template-haskell
+         th-abstraction transformers
+       ];
+       testHaskellDepends = [ base HUnit template-haskell transformers ];
+       description = "Representing common recursion patterns as higher-order functions";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "recursion-schemes-ext" = callPackage
     ({ mkDerivation, base, composition-prelude, criterion, deepseq
      , hspec, lens, recursion-schemes
@@ -208132,8 +212461,8 @@ self: {
      }:
      mkDerivation {
        pname = "redis";
-       version = "0.14.1";
-       sha256 = "02r97k08n9gyrfmbm6qgb8dddivaiprp50hs79a5bnxvvl6vmq9b";
+       version = "0.14.2";
+       sha256 = "0l52adcr6wvdqixg9nd837pn8qqdx99zv74wmw63k5497p4mbw2y";
        libraryHaskellDepends = [
          base bytestring concurrent-extra containers exceptions mtl network
          old-time utf8-string
@@ -208228,6 +212557,23 @@ self: {
        broken = true;
      }) {};
 
+  "rediscaching-haxl" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, hashable, haxl
+     , hedis, network, time
+     }:
+     mkDerivation {
+       pname = "rediscaching-haxl";
+       version = "0.1.0.0";
+       sha256 = "0mgmrcw1p9q4njrmjal9ckxkli8wb2g12njqaj6xlkin2xz5ym8j";
+       libraryHaskellDepends = [
+         aeson async base bytestring hashable haxl hedis network time
+       ];
+       description = "Combine redis caching and haxl";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "redland" = callPackage
     ({ mkDerivation, base, deepseq, raptor2, redland }:
      mkDerivation {
@@ -208512,18 +212858,16 @@ self: {
      }) {};
 
   "refined" = callPackage
-    ({ mkDerivation, aeson, base, deepseq, doctest, exceptions, mtl
-     , prettyprinter, QuickCheck, template-haskell, transformers
+    ({ mkDerivation, aeson, base, bytestring, deepseq, doctest
+     , exceptions, mtl, QuickCheck, template-haskell, text, these-skinny
      }:
      mkDerivation {
        pname = "refined";
-       version = "0.4.4";
-       sha256 = "1xld5fc3nzsr43agvdlv0hbdbnrrsgy0n2a7mfrcc0n3s6rjbdcw";
-       revision = "1";
-       editedCabalFile = "184w9aj60hxm2bq9n29zakqzhi0kf4dqj7cwib31vilpwd0vgfvx";
+       version = "0.6.1";
+       sha256 = "124sqpcii62jh2n2vfskg9jc8ic4hhlwmwim40f6a0dmhdnsh8lx";
        libraryHaskellDepends = [
-         aeson base deepseq exceptions mtl prettyprinter QuickCheck
-         template-haskell transformers
+         aeson base bytestring deepseq exceptions mtl QuickCheck
+         template-haskell text these-skinny
        ];
        testHaskellDepends = [ base doctest QuickCheck ];
        description = "Refinement types with static and runtime checking";
@@ -208539,6 +212883,8 @@ self: {
        libraryHaskellDepends = [ base http-api-data refined text ];
        description = "http-api-data instances for refined types";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "refinery" = callPackage
@@ -208714,8 +213060,8 @@ self: {
        pname = "reflex-basic-host";
        version = "0.2.0.1";
        sha256 = "1bax3rcrwi3447wd7apramw0f248ddksl8lrdjgrph26bbh8vc1i";
-       revision = "1";
-       editedCabalFile = "11bzd169wpdn57d7krgx9bw4x5qzskp9d5abdn74x6ipy34cj5ml";
+       revision = "2";
+       editedCabalFile = "0nqr2nxrq1xplcapr6yy8fx4x85qiqz609f7rzz656zah7cfm8dl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -208859,6 +213205,25 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "reflex-dom-pandoc" = callPackage
+    ({ mkDerivation, aeson, base, binary, bytestring, clay, constraints
+     , containers, data-default, lens, lens-aeson, modern-uri, mtl
+     , pandoc-types, ref-tf, reflex, reflex-dom-core, safe, skylighting
+     , text, time
+     }:
+     mkDerivation {
+       pname = "reflex-dom-pandoc";
+       version = "0.2.0.0";
+       sha256 = "0kf46l2pf0n7p59nm57541pnjr86dzjwzp4cbxqdr6a757zcfyny";
+       libraryHaskellDepends = [
+         aeson base binary bytestring clay constraints containers
+         data-default lens lens-aeson modern-uri mtl pandoc-types ref-tf
+         reflex reflex-dom-core safe skylighting text time
+       ];
+       description = "Render Pandoc documents to HTML using reflex-dom";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "reflex-dom-retractable" = callPackage
     ({ mkDerivation, base, containers, jsaddle, mtl, ref-tf, reflex
      , reflex-dom
@@ -209435,6 +213800,30 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "regex-applicative_0_3_4" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, containers
+     , criterion, deepseq, filtrable, megaparsec, parsec, parsers
+     , parsers-megaparsec, smallcheck, tasty, tasty-hunit
+     , tasty-smallcheck, transformers
+     }:
+     mkDerivation {
+       pname = "regex-applicative";
+       version = "0.3.4";
+       sha256 = "0di66pi2kq5rrsn0k6pwakzwa0bgi9jfb2csm72kp5gzqdws8s8p";
+       libraryHaskellDepends = [ base containers filtrable transformers ];
+       testHaskellDepends = [
+         base containers filtrable smallcheck tasty tasty-hunit
+         tasty-smallcheck transformers
+       ];
+       benchmarkHaskellDepends = [
+         attoparsec base bytestring criterion deepseq megaparsec parsec
+         parsers parsers-megaparsec
+       ];
+       description = "Regex-based parsing with applicative interface";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "regex-applicative-text" = callPackage
     ({ mkDerivation, base, regex-applicative, text }:
      mkDerivation {
@@ -209967,8 +214356,8 @@ self: {
      }:
      mkDerivation {
        pname = "regexchar";
-       version = "0.9.0.17";
-       sha256 = "1vkljfqilk0sfwnww1b907lqsdqxd8fdy64kf4vg26r89rzcd5i9";
+       version = "0.9.0.18";
+       sha256 = "1xrv67w6pr3jc8rcmzsfr6ga1g3zcsq1qb327c9viqhj40s5rarm";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -209991,8 +214380,8 @@ self: {
      }:
      mkDerivation {
        pname = "regexdot";
-       version = "0.12.2.1";
-       sha256 = "0s8jbkhhlhhdadwf7d8hy1cjs05mlf1r3czc861llwqrshys3c8c";
+       version = "0.12.2.2";
+       sha256 = "0kaqinn8v6hc67rmj89sl6chagzycz61x5ng8cxxpap0zcxwx4ya";
        libraryHaskellDepends = [
          base data-default deepseq extra parallel parsec toolshed
        ];
@@ -210159,8 +214548,8 @@ self: {
      }:
      mkDerivation {
        pname = "registry";
-       version = "0.1.9.0";
-       sha256 = "0vblhmqjgx8h3jkqq1ch3iy2dg8xgqxj1jhnhsln3l0kzyh1d5wj";
+       version = "0.1.9.3";
+       sha256 = "1x418lv2nnw5ryrinciq1dg7wgmz0zsvv8v3mfrp38rx5x88hbic";
        libraryHaskellDepends = [
          base containers exceptions hashable mmorph mtl protolude resourcet
          semigroupoids semigroups template-haskell text transformers-base
@@ -210505,6 +214894,34 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "relational-query-postgresql-pure" = callPackage
+    ({ mkDerivation, base, containers, data-default-class, dlist
+     , HDBC-postgresql, HDBC-session, homotuple, hspec, list-tuple
+     , names-th, persistable-record, postgresql-placeholder-converter
+     , postgresql-pure, product-isomorphic, relational-query
+     , relational-query-HDBC, relational-schemas, sql-words
+     , template-haskell, transformers, utf8-string
+     }:
+     mkDerivation {
+       pname = "relational-query-postgresql-pure";
+       version = "0.1.1.0";
+       sha256 = "1fxr9sfmva9b24z2pxbg72wa1j682cdk63lilmsk4i0343skrnr7";
+       libraryHaskellDepends = [
+         base containers dlist homotuple list-tuple names-th
+         persistable-record postgresql-placeholder-converter postgresql-pure
+         product-isomorphic relational-query relational-schemas sql-words
+         template-haskell transformers utf8-string
+       ];
+       testHaskellDepends = [
+         base data-default-class HDBC-postgresql HDBC-session hspec
+         postgresql-pure relational-query relational-query-HDBC
+       ];
+       description = "The connector of relational-record and postgresql-pure";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "relational-record" = callPackage
     ({ mkDerivation, base, persistable-record
      , persistable-types-HDBC-pg, product-isomorphic, relational-query
@@ -210609,6 +215026,19 @@ self: {
        broken = true;
      }) {};
 
+  "reliable-io" = callPackage
+    ({ mkDerivation, base, bindings-DSL }:
+     mkDerivation {
+       pname = "reliable-io";
+       version = "0.0.1";
+       sha256 = "0dbp5s8acn6fzcvlplkn4dbcn06l6jsvwilcz45kchss7p4j3gvx";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base bindings-DSL ];
+       description = "Bindings to the low-level reliable.io library.";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "relit" = callPackage
     ({ mkDerivation, base, regex-base, template-haskell }:
      mkDerivation {
@@ -211132,8 +215562,8 @@ self: {
        pname = "repa-io";
        version = "3.4.1.1";
        sha256 = "1nm9kfin6fv016r02l74c9hf8pr1rz7s33i833cqpyw8m6bcmnxm";
-       revision = "4";
-       editedCabalFile = "1lswfxmfn31gm2ayqwns9q9kpbad69scxpq6ybyzxkb9jd0jx4bl";
+       revision = "5";
+       editedCabalFile = "1v9bza21a3h0pkaxs628jjfli157d44i757da250fxwwamk8sg88";
        libraryHaskellDepends = [
          base binary bmp bytestring old-time repa vector
        ];
@@ -211590,26 +216020,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "req_3_3_0" = callPackage
+  "req_3_5_0" = callPackage
     ({ mkDerivation, aeson, authenticate-oauth, base, blaze-builder
-     , bytestring, case-insensitive, connection, hspec, hspec-core
-     , hspec-discover, http-api-data, http-client, http-client-tls
-     , http-types, modern-uri, monad-control, mtl, QuickCheck, retry
-     , template-haskell, text, time, transformers, transformers-base
-     , unordered-containers
+     , bytestring, case-insensitive, connection, exceptions, hspec
+     , hspec-core, hspec-discover, http-api-data, http-client
+     , http-client-tls, http-types, modern-uri, monad-control, mtl
+     , QuickCheck, retry, template-haskell, text, time, transformers
+     , transformers-base, unliftio-core, unordered-containers
      }:
      mkDerivation {
        pname = "req";
-       version = "3.3.0";
-       sha256 = "1y6zw6j3sk2p3ch636w787zs36i8v3p94gdvbfqgjd16k3hlnaxc";
-       revision = "1";
-       editedCabalFile = "1lr6s11iyzxfz4ahdnlk54jzqx7z4bw4gf7d2asqkrlqzqr91fjk";
+       version = "3.5.0";
+       sha256 = "0ydz6m3d87apmkd8i55q4r57cqd65sssxz972p6vv77v3r471n26";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson authenticate-oauth base blaze-builder bytestring
-         case-insensitive connection http-api-data http-client
+         case-insensitive connection exceptions http-api-data http-client
          http-client-tls http-types modern-uri monad-control mtl retry
          template-haskell text time transformers transformers-base
+         unliftio-core
        ];
        testHaskellDepends = [
          aeson base blaze-builder bytestring case-insensitive hspec
@@ -211752,6 +216181,17 @@ self: {
        broken = true;
      }) {};
 
+  "requirements" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "requirements";
+       version = "0.6.0.0";
+       sha256 = "1s0s3p0dy07222ks83w3spfw9df33q5lggqv3dw4m9hd5x16a6zi";
+       libraryHaskellDepends = [ base ];
+       description = "Abstraction to manage user defined Type Errors";
+       license = stdenv.lib.licenses.gpl3;
+     }) {};
+
   "rere" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, clock
      , containers, criterion, derp, fin, parsec, QuickCheck
@@ -211789,6 +216229,18 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "rerebase_1_7" = callPackage
+    ({ mkDerivation, rebase }:
+     mkDerivation {
+       pname = "rerebase";
+       version = "1.7";
+       sha256 = "0primlvckzkz72pdm3c1y32wjbz5wmxkdwfzvxs3yg08v01hrwb7";
+       libraryHaskellDepends = [ rebase ];
+       description = "Reexports from \"base\" with a bunch of other standard libraries";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "reroute" = callPackage
     ({ mkDerivation, base, criterion, deepseq, graph-core, hashable
      , hspec, http-api-data, hvect, mtl, random, regex-compat, text
@@ -211815,6 +216267,36 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "rescue" = callPackage
+    ({ mkDerivation, base, criterion, directory, directory-tree
+     , doctest, exceptions, ghc, Glob, hlint, hspec, hspec-core
+     , hspec-expectations, lens-aeson, mtl, QuickCheck
+     , quickcheck-instances, rio, tasty, tasty-hspec, tasty-hunit
+     , tasty-rerun, tasty-smallcheck, text, transformers, world-peace
+     , yaml
+     }:
+     mkDerivation {
+       pname = "rescue";
+       version = "0.2.1";
+       sha256 = "1rb7apdlpm69695hcpimmyjn5ar8lld8q1hgag86jsww5dfn2mp7";
+       libraryHaskellDepends = [
+         base exceptions ghc mtl text transformers world-peace
+       ];
+       testHaskellDepends = [
+         base directory directory-tree doctest exceptions ghc Glob hlint
+         hspec hspec-core hspec-expectations lens-aeson mtl QuickCheck
+         quickcheck-instances rio tasty tasty-hspec tasty-hunit tasty-rerun
+         tasty-smallcheck text transformers world-peace yaml
+       ];
+       benchmarkHaskellDepends = [
+         base criterion exceptions ghc mtl text transformers world-peace
+       ];
+       description = "More understandable exceptions";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "reserve" = callPackage
     ({ mkDerivation, base, base-compat, bytestring, directory, hspec
      , http-conduit, http-kit, http-types, network, process, QuickCheck
@@ -212086,22 +216568,6 @@ self: {
      }:
      mkDerivation {
        pname = "resourcet";
-       version = "1.2.4.1";
-       sha256 = "0h67w4x5k4ykyks3ppwfc49n6qgwl3bzzpfcg02l6rmwqqc2zq12";
-       libraryHaskellDepends = [
-         base containers exceptions mtl primitive transformers unliftio-core
-       ];
-       testHaskellDepends = [ base exceptions hspec transformers ];
-       description = "Deterministic allocation and freeing of scarce resources";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "resourcet_1_2_4_2" = callPackage
-    ({ mkDerivation, base, containers, exceptions, hspec, mtl
-     , primitive, transformers, unliftio-core
-     }:
-     mkDerivation {
-       pname = "resourcet";
        version = "1.2.4.2";
        sha256 = "11zb4figcs22hjaq6zsknf70kf9k2bxnw6w03ab9kl9s0i10iwhp";
        libraryHaskellDepends = [
@@ -212110,7 +216576,6 @@ self: {
        testHaskellDepends = [ base exceptions hspec transformers ];
        description = "Deterministic allocation and freeing of scarce resources";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "respond" = callPackage
@@ -212564,8 +217029,6 @@ self: {
        ];
        description = "A powerful, easy-to-use codemodding tool for Haskell";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "retry" = callPackage
@@ -212983,6 +217446,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "rfc5051_0_2" = callPackage
+    ({ mkDerivation, base, containers, text }:
+     mkDerivation {
+       pname = "rfc5051";
+       version = "0.2";
+       sha256 = "0nri7js5ymywh2gi3li25wrkl1nf712qhbzw5hn46fib83qsq73k";
+       libraryHaskellDepends = [ base containers text ];
+       testHaskellDepends = [ base text ];
+       description = "Simple unicode collation as per RFC5051";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "rg" = callPackage
     ({ mkDerivation, array, base, fmt, possibly, tasty, tasty-hunit
      , text, unordered-containers, vector
@@ -213030,6 +217506,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "rhine_0_7_0" = callPackage
+    ({ mkDerivation, base, containers, deepseq, dunai, free
+     , MonadRandom, random, simple-affine-space, time, transformers
+     , vector-sized
+     }:
+     mkDerivation {
+       pname = "rhine";
+       version = "0.7.0";
+       sha256 = "1qnwz48ji3vsb9f44xvidhq6z1p7q06g3k8v7cnbxc54zav076p2";
+       libraryHaskellDepends = [
+         base containers deepseq dunai free MonadRandom random
+         simple-affine-space time transformers vector-sized
+       ];
+       description = "Functional Reactive Programming with type-level clocks";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "rhine-gloss" = callPackage
     ({ mkDerivation, base, dunai, gloss, rhine }:
      mkDerivation {
@@ -213044,6 +217538,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "rhine-gloss_0_7_0" = callPackage
+    ({ mkDerivation, base, dunai, gloss, rhine, transformers }:
+     mkDerivation {
+       pname = "rhine-gloss";
+       version = "0.7.0";
+       sha256 = "1ldaw9ijd9kcn1x5cd5ch9yz95sb671np4aaa6mqa4sf8w4yjl0m";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base dunai gloss rhine transformers ];
+       executableHaskellDepends = [ base ];
+       description = "Gloss backend for Rhine";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "rhythm-game-tutorial" = callPackage
     ({ mkDerivation, base, call, containers, lens, mtl, objective
      , split
@@ -213138,28 +217647,28 @@ self: {
   "rib" = callPackage
     ({ mkDerivation, aeson, async, base-noprelude, binary, clay
      , cmdargs, containers, dhall, directory, exceptions, filepath
-     , foldl, fsnotify, hspec, lucid, megaparsec, mmark, mmark-ext
-     , modern-uri, mtl, optparse-applicative, pandoc
-     , pandoc-include-code, pandoc-types, QuickCheck, relude
-     , safe-exceptions, shake, text, time, wai, wai-app-static, warp
+     , foldl, fsnotify, hspec, iso8601-time, lucid, megaparsec, mmark
+     , mmark-ext, modern-uri, mtl, optparse-applicative, pandoc
+     , pandoc-types, QuickCheck, relude, safe-exceptions, shake, text
+     , time, wai, wai-app-static, warp
      }:
      mkDerivation {
        pname = "rib";
-       version = "0.10.0.0";
-       sha256 = "129riz7843x9h2c9iz9wdcngj74x3rrvlbmd9y7ymmrh5d2kq1qv";
+       version = "0.12.0.0";
+       sha256 = "1fx8jxghzhs5knpvvj6gzm8pv36g4xa928pgsbwkbnmw9j406myn";
        libraryHaskellDepends = [
          aeson async base-noprelude binary clay cmdargs containers dhall
-         directory exceptions filepath foldl fsnotify lucid megaparsec mmark
-         mmark-ext modern-uri mtl optparse-applicative pandoc
-         pandoc-include-code pandoc-types relude safe-exceptions shake text
-         time wai wai-app-static warp
+         directory exceptions filepath foldl fsnotify iso8601-time lucid
+         megaparsec mmark mmark-ext modern-uri mtl optparse-applicative
+         pandoc pandoc-types relude safe-exceptions shake text time wai
+         wai-app-static warp
        ];
        testHaskellDepends = [
          aeson async base-noprelude binary clay cmdargs containers dhall
-         directory exceptions filepath foldl fsnotify hspec lucid megaparsec
-         mmark mmark-ext modern-uri mtl optparse-applicative pandoc
-         pandoc-include-code pandoc-types QuickCheck relude safe-exceptions
-         shake text time wai wai-app-static warp
+         directory exceptions filepath foldl fsnotify hspec iso8601-time
+         lucid megaparsec mmark mmark-ext modern-uri mtl
+         optparse-applicative pandoc pandoc-types QuickCheck relude
+         safe-exceptions shake text time wai wai-app-static warp
        ];
        description = "Static site generator based on Shake";
        license = stdenv.lib.licenses.bsd3;
@@ -213410,12 +217919,17 @@ self: {
      }) {};
 
   "ring-buffers" = callPackage
-    ({ mkDerivation, base, contiguous, primitive, semirings }:
+    ({ mkDerivation, base, contiguous, HUnit, primitive
+     , primitive-unlifted, QuickCheck, semirings
+     }:
      mkDerivation {
        pname = "ring-buffers";
-       version = "0.1.0.1";
-       sha256 = "1k67nsphmk6x3lvym5n6i1vbv1rfzwgrcxszivjjsy6nxsl00m52";
-       libraryHaskellDepends = [ base contiguous primitive semirings ];
+       version = "0.1.1";
+       sha256 = "1xzvbygwp4zqz1nsbmb70062grzqw3jdwgbaaxn7hgirinims64h";
+       libraryHaskellDepends = [
+         base contiguous primitive primitive-unlifted semirings
+       ];
+       testHaskellDepends = [ base HUnit primitive QuickCheck ];
        description = "mutable ring buffers with atomic updates in GHC Haskell";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -213446,8 +217960,8 @@ self: {
      }:
      mkDerivation {
        pname = "rio";
-       version = "0.1.17.0";
-       sha256 = "0zs7s67fk1g1hckxk2iii2ad2hhsl9l1j3dkcdb7imzdha13q9rd";
+       version = "0.1.18.0";
+       sha256 = "11f1cxa9c90d7hgqn9bl08l499n2dzdj31f9pw9acb1nrlx5hik8";
        libraryHaskellDepends = [
          base bytestring containers deepseq directory exceptions filepath
          hashable microlens microlens-mtl mtl primitive process text time
@@ -213490,10 +218004,8 @@ self: {
      }:
      mkDerivation {
        pname = "rio-prettyprint";
-       version = "0.1.0.0";
-       sha256 = "0n8ldc73i0954c6s8jh0hibxrisp84yh5pcxv3x3q0wg4v2xvr0m";
-       revision = "2";
-       editedCabalFile = "1hvhjqy7kfk7fglx1rw8axscy0dfzqwd1564awnwdhvmf8silkkn";
+       version = "0.1.1.0";
+       sha256 = "1h092l46pfm6k3n0vb6c67gb64kahzc97qv45rhvp0cq2y5bqykf";
        libraryHaskellDepends = [
          aeson annotated-wl-pprint ansi-terminal array base Cabal colour mtl
          path rio text
@@ -214014,18 +218526,25 @@ self: {
      }) {};
 
   "rock" = callPackage
-    ({ mkDerivation, base, containers, dependent-map, dependent-sum
-     , deriving-compat, mtl, protolude, transformers
+    ({ mkDerivation, base, constraints, constraints-extras
+     , dependent-hashmap, dependent-sum, deriving-compat, hashable
+     , hedgehog, lifted-base, monad-control, mtl, transformers
+     , transformers-base, unordered-containers
      }:
      mkDerivation {
        pname = "rock";
-       version = "0.2.0.0";
-       sha256 = "0h4z2ss4g9zshxpfallmbqw121jk1dv7q5s3ww39rhglw3j4dj9k";
+       version = "0.3.0.0";
+       sha256 = "1hssz23kifpmcv0vjnrymr4cj1f3m8z7kvvkyzsfh3ysc493514i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base containers dependent-map dependent-sum deriving-compat mtl
-         protolude transformers
+         base constraints-extras dependent-hashmap dependent-sum
+         deriving-compat hashable lifted-base monad-control mtl transformers
+         transformers-base unordered-containers
+       ];
+       testHaskellDepends = [
+         base constraints constraints-extras dependent-hashmap dependent-sum
+         hashable hedgehog mtl unordered-containers
        ];
        description = "A build system for incremental, parallel, and demand-driven computations";
        license = stdenv.lib.licenses.bsd3;
@@ -214055,6 +218574,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {inherit (pkgs) rocksdb;};
 
+  "rocksdb-haskell-jprupp" = callPackage
+    ({ mkDerivation, base, bytestring, data-default, directory, hspec
+     , QuickCheck, rocksdb, string-conversions, unliftio
+     }:
+     mkDerivation {
+       pname = "rocksdb-haskell-jprupp";
+       version = "2.1.3";
+       sha256 = "01hn77v6qjj6dx2g3ddff5q1b3wj0yqplhmxs1c8hndbn5alk0pv";
+       libraryHaskellDepends = [
+         base bytestring data-default directory unliftio
+       ];
+       librarySystemDepends = [ rocksdb ];
+       testHaskellDepends = [
+         base bytestring data-default directory hspec QuickCheck
+         string-conversions unliftio
+       ];
+       description = "Haskell bindings for RocksDB";
+       license = stdenv.lib.licenses.bsd3;
+     }) {inherit (pkgs) rocksdb;};
+
   "rocksdb-query" = callPackage
     ({ mkDerivation, base, bytestring, cereal, conduit, data-default
      , hspec, resourcet, rocksdb-haskell, unliftio
@@ -214075,6 +218614,27 @@ self: {
        broken = true;
      }) {};
 
+  "rocksdb-query_0_4_2" = callPackage
+    ({ mkDerivation, base, bytestring, cereal, conduit, data-default
+     , hspec, resourcet, rocksdb-haskell-jprupp, unliftio
+     }:
+     mkDerivation {
+       pname = "rocksdb-query";
+       version = "0.4.2";
+       sha256 = "1sh88q0vq0b13ig6vmwi8wa73d45qxdkbbc29zphch6p2z4n81wq";
+       libraryHaskellDepends = [
+         base bytestring cereal conduit resourcet rocksdb-haskell-jprupp
+         unliftio
+       ];
+       testHaskellDepends = [
+         base cereal data-default hspec rocksdb-haskell-jprupp unliftio
+       ];
+       description = "RocksDB database querying library for Haskell";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "roguestar" = callPackage
     ({ mkDerivation, base, bytestring, directory, filepath, old-time
      , process
@@ -214948,8 +219508,8 @@ self: {
      }:
      mkDerivation {
        pname = "rpmbuild-order";
-       version = "0.3";
-       sha256 = "1w5c1nd1w75bk39payczbh4kwn5rizpv9dzgdwssa8d9f0na10lr";
+       version = "0.3.1";
+       sha256 = "1xa4crcqm4avkpdcksj610gpzk7crfkwa2pk2nn1qsmjsrixfc2b";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -214960,6 +219520,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "rpmbuild-order_0_4_2" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, case-insensitive
+     , containers, directory, extra, fgl, filepath, hspec
+     , optparse-applicative, process, simple-cmd-args, unix
+     }:
+     mkDerivation {
+       pname = "rpmbuild-order";
+       version = "0.4.2";
+       sha256 = "18ay3wga9s3whky49c8v0x7drpv1sf536p4n3h1549zd5w3vjms7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base Cabal case-insensitive containers directory extra fgl filepath
+         process
+       ];
+       executableHaskellDepends = [
+         base bytestring directory extra fgl optparse-applicative
+         simple-cmd-args
+       ];
+       testHaskellDepends = [ base extra hspec unix ];
+       description = "Order RPM packages by dependencies";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "rrule" = callPackage
     ({ mkDerivation, base, hspec, megaparsec, parser-combinators, text
      , time
@@ -215465,6 +220050,27 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "runhs" = callPackage
+    ({ mkDerivation, base, bytestring, directory, file-embed, hspec
+     , process, terminal-size, text, word-wrap, yaml
+     }:
+     mkDerivation {
+       pname = "runhs";
+       version = "1.0.0.8";
+       sha256 = "177xak0p91xn827cnpa374l94lmmym2yrrcsxzjd9752hdzyw7k3";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring file-embed process terminal-size text word-wrap
+         yaml
+       ];
+       testHaskellDepends = [ base directory hspec process ];
+       description = "Stack wrapper for single-file Haskell programs";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "runmany" = callPackage
     ({ mkDerivation, async, base, bytestring, optparse-applicative
      , process, stm
@@ -215531,13 +220137,15 @@ self: {
      }:
      mkDerivation {
        pname = "rvar";
-       version = "0.2.0.4";
-       sha256 = "0p67lbzcbbm5bkhv0x380bdald6kaqlf968ay2q8qj69izpvk181";
+       version = "0.2.0.6";
+       sha256 = "1lwcmv3x3v7sjxkil7754sh085y5r5h9zkca39czjhyyzxsqiq81";
        libraryHaskellDepends = [
          base MonadPrompt mtl random-source transformers
        ];
        description = "Random Variables";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "rwlock" = callPackage
@@ -215715,10 +220323,8 @@ self: {
      }:
      mkDerivation {
        pname = "safe-exceptions";
-       version = "0.1.7.0";
-       sha256 = "0sd0zfsm9pcll5bzzj523rbn45adjrnavdkz52hgmdjjgdcdrk8q";
-       revision = "6";
-       editedCabalFile = "0x82m44qwf3fls3ypbdca958l9hhfqyfip6rzzxi7648f0sasv21";
+       version = "0.1.7.1";
+       sha256 = "0gkxacfiqp55xzbmpz5i5c4kqma8jal49q7c8gl9n9qq5c5dvxjb";
        libraryHaskellDepends = [ base deepseq exceptions transformers ];
        testHaskellDepends = [ base hspec void ];
        description = "Safe, consistent, and easy exception handling";
@@ -215814,10 +220420,8 @@ self: {
      }:
      mkDerivation {
        pname = "safe-json";
-       version = "1.1.0";
-       sha256 = "18zsf2dccgf755a8g4ar3zc7ilmampsrvqa6f9p27zrayl7j87hw";
-       revision = "2";
-       editedCabalFile = "0qaqvczy8v4ghx6d0hjc2hk29z02l8ya5y3ii3rr7bp47b1z8z0i";
+       version = "1.1.1";
+       sha256 = "1307fm7kmls0sd2gb5zcl75rcxxy550ksaf145s54c06qjcihhjg";
        libraryHaskellDepends = [
          aeson base bytestring containers dlist hashable scientific tasty
          tasty-hunit tasty-quickcheck text time unordered-containers
@@ -216011,6 +220615,21 @@ self: {
        broken = true;
      }) {};
 
+  "safe-tensor" = callPackage
+    ({ mkDerivation, base, constraints, containers, hmatrix, mtl
+     , singletons
+     }:
+     mkDerivation {
+       pname = "safe-tensor";
+       version = "0.2.0.0";
+       sha256 = "04fafmypwcw88qqb9v9lalfyyqna68b3brx2rmry7i4898gwasp8";
+       libraryHaskellDepends = [
+         base constraints containers hmatrix mtl singletons
+       ];
+       description = "Dependently typed tensor algebra";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "safecopy" = callPackage
     ({ mkDerivation, array, base, bytestring, cereal, containers
      , generic-data, HUnit, lens, lens-action, old-time, QuickCheck
@@ -216241,20 +220860,20 @@ self: {
      }) {};
 
   "sak" = callPackage
-    ({ mkDerivation, base, brotli, bytestring, bz2, cpphs, directory
-     , filepath, lz4-hs, lzlib, lzma, lzo, optparse-applicative
-     , parallel-io, snappy-lazy, zlib, zstd
+    ({ mkDerivation, base, bytestring, bz2, cpphs, directory, filepath
+     , lz4-hs, lzlib, lzma, lzo, optparse-applicative, parallel-io
+     , unix-compat, zlib, zstd
      }:
      mkDerivation {
        pname = "sak";
-       version = "0.1.2.5";
-       sha256 = "1xz3g7ksq1v8239xq2cddprlq4g8imid002w7wak15kv8aqvil1l";
+       version = "0.1.3.0";
+       sha256 = "1khws0z9v91vz722k6y0b99ffy2vd04myvpww4p1i32396dhczln";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
        executableHaskellDepends = [
-         base brotli bytestring bz2 directory filepath lz4-hs lzlib lzma lzo
-         optparse-applicative parallel-io snappy-lazy zlib zstd
+         base bytestring bz2 directory filepath lz4-hs lzlib lzma lzo
+         optparse-applicative parallel-io unix-compat zlib zstd
        ];
        executableToolDepends = [ cpphs ];
        description = "Compression command-line tool";
@@ -216293,8 +220912,8 @@ self: {
        pname = "salak";
        version = "0.3.6";
        sha256 = "00qyd09az0ldfidfgcki8z3r9gcpxmss3iyr99as5bky29rlz9n3";
-       revision = "1";
-       editedCabalFile = "1ra0bbk3xkfsy5p78q57abjwmn95kmfjpvsldm4s1455bg2yhi26";
+       revision = "2";
+       editedCabalFile = "0azqzfw8ynbj1fzgwksx30m88zsz71vwhdlxw8fkcwbgz49vc7zb";
        libraryHaskellDepends = [
          base bytestring containers data-default directory dlist exceptions
          filepath hashable heaps megaparsec mtl scientific text time
@@ -216562,8 +221181,8 @@ self: {
      }:
      mkDerivation {
        pname = "sampling";
-       version = "0.3.4";
-       sha256 = "1cwx64llg6x6dnsld6lx6bmb4cljz8abqp0d6vmh4wk11vzjsly0";
+       version = "0.3.5";
+       sha256 = "13xkq8p656xybbpvkxp42qkkgc1majp18w384ap7l4sbxrxif7kv";
        libraryHaskellDepends = [
          base containers foldl mwc-random primitive vector
        ];
@@ -217003,31 +221622,31 @@ self: {
      }) {};
 
   "sbv" = callPackage
-    ({ mkDerivation, array, async, base, bytestring, containers
-     , crackNum, criterion, deepseq, directory, doctest, filepath
-     , generic-deriving, ghc, Glob, hlint, mtl, pretty, process
-     , QuickCheck, random, syb, tasty, tasty-golden, tasty-hunit
-     , tasty-quickcheck, template-haskell, time, transformers, z3
+    ({ 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, z3
      }:
      mkDerivation {
        pname = "sbv";
-       version = "8.6";
-       sha256 = "01y3dg8gprddn2477cw8k5a9a2gn0330qbpqyc3l2zbnwf3a2yga";
+       version = "8.8";
+       sha256 = "0xm05g9kxh38jjbssnhyw6c8q4rsyjndm2b8r36cqwx0n607zvgy";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         array async base containers crackNum deepseq directory filepath
-         generic-deriving ghc mtl pretty process QuickCheck random syb
-         template-haskell time transformers
+         array async base containers crackNum deepseq directory filepath mtl
+         pretty process QuickCheck random syb template-haskell time
+         transformers
        ];
        testHaskellDepends = [
          base bytestring containers crackNum directory doctest filepath Glob
-         hlint mtl QuickCheck random syb tasty tasty-golden tasty-hunit
-         tasty-quickcheck template-haskell
+         hlint mtl QuickCheck random tasty tasty-golden tasty-hunit
+         tasty-quickcheck
        ];
        testSystemDepends = [ z3 ];
        benchmarkHaskellDepends = [
-         base containers crackNum criterion deepseq directory filepath mtl
-         process random syb
+         base bench-show containers crackNum deepseq directory filepath
+         gauge mtl process random silently syb time
        ];
        description = "SMT Based Verification: Symbolic Haskell theorem prover using SMT solving";
        license = stdenv.lib.licenses.bsd3;
@@ -217271,6 +221890,24 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "scalpel-search" = callPackage
+    ({ mkDerivation, base, hspec, scalpel, scalpel-core, tagsoup, text
+     , uri
+     }:
+     mkDerivation {
+       pname = "scalpel-search";
+       version = "0.1.0.0";
+       sha256 = "0qq8q9z3s37wcc6iwygn2hfh72k5kak93vmsvl3wn0k04lrivg60";
+       libraryHaskellDepends = [ base scalpel-core tagsoup text uri ];
+       testHaskellDepends = [
+         base hspec scalpel scalpel-core tagsoup text uri
+       ];
+       description = "scalpel scrapers for search engines";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "scan" = callPackage
     ({ mkDerivation, base, parsec }:
      mkDerivation {
@@ -217512,35 +222149,6 @@ self: {
      }) {};
 
   "scheduler" = callPackage
-    ({ mkDerivation, async, atomic-primops, base, Cabal, cabal-doctest
-     , criterion, deepseq, doctest, exceptions, genvalidity-hspec, hspec
-     , monad-par, mwc-random, parallel, primitive, QuickCheck, streamly
-     , template-haskell, unliftio, unliftio-core, vector
-     }:
-     mkDerivation {
-       pname = "scheduler";
-       version = "1.4.2.2";
-       sha256 = "0mzwm7lr089hbv08c58l3ahiid8w1cysvjl9q6vb46x3wpa3fwia";
-       revision = "2";
-       editedCabalFile = "1rjh1c8m2mmjsxgpqsi1b7y27jpvvwjrlvaa1fsc0lqnrkgmarl3";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [
-         atomic-primops base deepseq exceptions primitive unliftio-core
-       ];
-       testHaskellDepends = [
-         base deepseq doctest genvalidity-hspec hspec mwc-random QuickCheck
-         template-haskell unliftio vector
-       ];
-       benchmarkHaskellDepends = [
-         async base criterion deepseq monad-par parallel streamly unliftio
-       ];
-       description = "Work stealing scheduler";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "scheduler_1_4_2_3" = callPackage
     ({ mkDerivation, atomic-primops, base, deepseq, doctest, exceptions
      , genvalidity-hspec, hspec, mwc-random, primitive, QuickCheck
      , template-haskell, unliftio, unliftio-core, vector
@@ -218237,6 +222845,19 @@ self: {
        broken = true;
      }) {};
 
+  "scotty-haxl" = callPackage
+    ({ mkDerivation, base, haxl, scotty, text }:
+     mkDerivation {
+       pname = "scotty-haxl";
+       version = "0.1.0.0";
+       sha256 = "06wcvjpaar8zd2y6p9j4pxs4l7rkw84s1kmcvacafkw43h1d2bx2";
+       libraryHaskellDepends = [ base haxl scotty text ];
+       description = "Combine scotty and haxl";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "scotty-params-parser" = callPackage
     ({ mkDerivation, base-prelude, matcher, scotty, success, text
      , transformers, unordered-containers
@@ -218342,6 +222963,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "scotty-utils" = callPackage
+    ({ mkDerivation, aeson, aeson-result, base, http-types, scotty
+     , text
+     }:
+     mkDerivation {
+       pname = "scotty-utils";
+       version = "0.1.0.0";
+       sha256 = "0f77b5xmr5gwswz15i5833karfr1qvyaaiy58khd75n9awfx5jqv";
+       libraryHaskellDepends = [
+         aeson aeson-result base http-types scotty text
+       ];
+       description = "Scotty utils library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "scotty-view" = callPackage
     ({ mkDerivation, base, scotty, text, transformers }:
      mkDerivation {
@@ -219171,23 +223807,24 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {inherit (pkgs) secp256k1;};
 
-  "secp256k1-haskell_0_3_0" = callPackage
+  "secp256k1-haskell_0_4_0" = callPackage
     ({ mkDerivation, base, base16-bytestring, bytestring, cereal
      , deepseq, entropy, hashable, hspec, hspec-discover, HUnit
      , monad-par, mtl, QuickCheck, secp256k1, string-conversions
+     , unliftio
      }:
      mkDerivation {
        pname = "secp256k1-haskell";
-       version = "0.3.0";
-       sha256 = "1zkcacmjhbmgi06qwhva37z1piacl51gxkn4b1wy70y5b8cm0y24";
+       version = "0.4.0";
+       sha256 = "07hgfrr98g42sia5bssch7lrajx7y6fz98f13ly5rjkm5brw0zba";
        libraryHaskellDepends = [
          base base16-bytestring bytestring cereal deepseq entropy hashable
-         QuickCheck string-conversions
+         QuickCheck string-conversions unliftio
        ];
        libraryPkgconfigDepends = [ secp256k1 ];
        testHaskellDepends = [
          base base16-bytestring bytestring cereal deepseq entropy hashable
-         hspec HUnit monad-par mtl QuickCheck string-conversions
+         hspec HUnit monad-par mtl QuickCheck string-conversions unliftio
        ];
        testToolDepends = [ hspec-discover ];
        description = "Bindings for secp256k1";
@@ -219339,6 +223976,27 @@ self: {
        broken = true;
      }) {sedna = null;};
 
+  "seitz-symbol" = callPackage
+    ({ mkDerivation, base, doctest, hspec, matrix, matrix-as-xyz
+     , parsec, symmetry-operations-symbols
+     }:
+     mkDerivation {
+       pname = "seitz-symbol";
+       version = "0.1.0.0";
+       sha256 = "1x6374xaqgrf9ygjb9rffhpn1y5fla2gf0b0xj93r3bj6pf1w0qh";
+       libraryHaskellDepends = [
+         base matrix matrix-as-xyz parsec symmetry-operations-symbols
+       ];
+       testHaskellDepends = [
+         base doctest hspec matrix matrix-as-xyz parsec
+         symmetry-operations-symbols
+       ];
+       description = "Read and Display Seitz Symbol";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "selda" = callPackage
     ({ mkDerivation, base, bytestring, containers, exceptions, mtl
      , random, text, time, uuid-types
@@ -219347,6 +224005,8 @@ self: {
        pname = "selda";
        version = "0.5.1.0";
        sha256 = "1gd7fdgqw6q507wn7h1pln9wb7kh65vd7iv0s1ydg54r36qdlrgl";
+       revision = "1";
+       editedCabalFile = "0sdzfgsmgw20idxnvvf4sbp8bkl3n7qa7qkphv63pfmqvzyplkwg";
        libraryHaskellDepends = [
          base bytestring containers exceptions mtl random text time
          uuid-types
@@ -219376,6 +224036,8 @@ self: {
        pname = "selda-postgresql";
        version = "0.1.8.1";
        sha256 = "0dxycilvxjbi1cy9c0rzq9ywh48i2lh37j77a5i1x6v1625h51mk";
+       revision = "1";
+       editedCabalFile = "10qlb9yswjsvpj1f7dmm0amkq52g00f1kc2xqh1d7vfkvkb2bhk6";
        libraryHaskellDepends = [
          base bytestring exceptions postgresql-binary postgresql-libpq selda
          selda-json text time uuid-types
@@ -219392,6 +224054,8 @@ self: {
        pname = "selda-sqlite";
        version = "0.1.7.1";
        sha256 = "1a1rik32h8ijd98v98db1il10ap76rqdwmjwhj0hc0h77mm6qdfb";
+       revision = "1";
+       editedCabalFile = "05zdf07fizf97yby0ld4qkd5padxg9fhmpfiiii4jl7xklccnl6p";
        libraryHaskellDepends = [
          base bytestring direct-sqlite directory exceptions selda text time
          uuid-types
@@ -219428,8 +224092,8 @@ self: {
      }:
      mkDerivation {
        pname = "selective";
-       version = "0.4.1";
-       sha256 = "1pwbfayh4s6afhkgyvyq187m4vcnyvy3frb1zxjs7xjb2sxp9r80";
+       version = "0.4.1.1";
+       sha256 = "1ix9080g4qcs3w89bmilr6f84kg6vw9hyx5cs5hiw9xnp7dh4sdc";
        libraryHaskellDepends = [ base containers transformers ];
        testHaskellDepends = [
          base containers mtl QuickCheck tasty tasty-expected-failure
@@ -219550,21 +224214,19 @@ self: {
 
   "semantic-source" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, deepseq
-     , doctest, generic-monoid, hashable, hedgehog, lingo, pathtype
-     , QuickCheck, semilattices, tasty, tasty-hedgehog, tasty-hunit
-     , text
+     , hashable, hedgehog, lingo, pathtype, semilattices, tasty
+     , tasty-hedgehog, tasty-hunit, text
      }:
      mkDerivation {
        pname = "semantic-source";
-       version = "0.1.0.0";
-       sha256 = "179rxsn1cyh77yn7vzmii38ipgcjpavlyf5xbx4j8zzgh1jklmc5";
+       version = "0.1.0.1";
+       sha256 = "1v4q9yc91lrx02wdhxp1njzm8g9qlwr40593lwcn6bxlad5sk6yd";
        libraryHaskellDepends = [
-         aeson base bytestring containers deepseq generic-monoid hashable
-         lingo pathtype semilattices text
+         aeson base bytestring containers deepseq hashable lingo pathtype
+         semilattices text
        ];
        testHaskellDepends = [
-         base doctest hedgehog QuickCheck tasty tasty-hedgehog tasty-hunit
-         text
+         base hedgehog tasty tasty-hedgehog tasty-hunit text
        ];
        description = "Types and functionality for working with source code";
        license = stdenv.lib.licenses.mit;
@@ -219623,19 +224285,16 @@ self: {
      }) {};
 
   "semialign" = callPackage
-    ({ mkDerivation, base, base-compat, containers, hashable
-     , semigroupoids, tagged, these, transformers, unordered-containers
-     , vector
+    ({ mkDerivation, base, containers, hashable, semigroupoids, tagged
+     , these, transformers, unordered-containers, vector
      }:
      mkDerivation {
        pname = "semialign";
-       version = "1.1";
-       sha256 = "1n47w9c6i6azb4w65rzhci00v6p9c0s1w1givd2q3smkgyziiqpk";
-       revision = "2";
-       editedCabalFile = "1s0gja9kig4j550kjgrknf6kyw8qns9fksrdm0rvv7bmf30dwh8n";
+       version = "1.1.0.1";
+       sha256 = "11qs4imy3cq4cx9mm6g30r6qk3rngqrmz7lkl5379gs1yvgvs44q";
        libraryHaskellDepends = [
-         base base-compat containers hashable semigroupoids tagged these
-         transformers unordered-containers vector
+         base containers hashable semigroupoids tagged these transformers
+         unordered-containers vector
        ];
        description = "Align and Zip type-classes from the common Semialign ancestor";
        license = stdenv.lib.licenses.bsd3;
@@ -219863,15 +224522,16 @@ self: {
      }) {};
 
   "semirings" = callPackage
-    ({ mkDerivation, base, containers, hashable, integer-gmp
-     , unordered-containers
+    ({ mkDerivation, base, base-compat-batteries, containers, hashable
+     , integer-gmp, unordered-containers
      }:
      mkDerivation {
        pname = "semirings";
-       version = "0.5.3";
-       sha256 = "16qdh0d5mazxkzpa0xsiv635771zspzbiqmy5qy2rcsxb79p36lc";
+       version = "0.5.4";
+       sha256 = "16lsxg0nzi7d4kr5xibgy9q46fxrga10yzh0jy4jzpyy5axwwysw";
        libraryHaskellDepends = [
-         base containers hashable integer-gmp unordered-containers
+         base base-compat-batteries containers hashable integer-gmp
+         unordered-containers
        ];
        description = "two monoids as one, in holy haskimony";
        license = stdenv.lib.licenses.bsd3;
@@ -220205,8 +224865,8 @@ self: {
     ({ mkDerivation, base, mtl, transformers }:
      mkDerivation {
        pname = "seqid";
-       version = "0.6.1";
-       sha256 = "0gqmnckrrs85cwz2jvp2ip7a5c5qfbav4nb9d8bxax093jziz301";
+       version = "0.6.2";
+       sha256 = "07xxpdrr3lqqnzcxbync46c0kz3d2i7k4day630a6x6zmzpyay0i";
        libraryHaskellDepends = [ base mtl transformers ];
        description = "Sequence ID production and consumption";
        license = stdenv.lib.licenses.bsd3;
@@ -220228,8 +224888,8 @@ self: {
     ({ mkDerivation, base, io-streams, seqid }:
      mkDerivation {
        pname = "seqid-streams";
-       version = "0.7.1";
-       sha256 = "0yasm87kjhdq13zacpd4qa3kssalwvkipf3rz2cq1dgdgps5mxf7";
+       version = "0.7.2";
+       sha256 = "0dd0vxs216ri0hdkz49hzzrryil7hhqb55cc9z6ca8f337imanm8";
        libraryHaskellDepends = [ base io-streams seqid ];
        description = "Sequence ID IO-Streams";
        license = stdenv.lib.licenses.bsd3;
@@ -220327,6 +224987,30 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "sequence-formats_1_5_1_1" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, containers, errors
+     , exceptions, foldl, hspec, lens-family, pipes, pipes-attoparsec
+     , pipes-bytestring, pipes-safe, tasty, tasty-hunit, transformers
+     , vector
+     }:
+     mkDerivation {
+       pname = "sequence-formats";
+       version = "1.5.1.1";
+       sha256 = "1gfss5fnv16xg6qxsazh1r7jd9qv5klpnjl6fbmk8p4n7cy5rsxx";
+       libraryHaskellDepends = [
+         attoparsec base bytestring containers errors exceptions foldl
+         lens-family pipes pipes-attoparsec pipes-bytestring pipes-safe
+         transformers vector
+       ];
+       testHaskellDepends = [
+         base bytestring containers foldl hspec pipes pipes-safe tasty
+         tasty-hunit transformers vector
+       ];
+       description = "A package with basic parsing utilities for several Bioinformatic data formats";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "sequenceTools" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, bytestring, foldl, hspec
      , lens-family, optparse-applicative, pipes, pipes-group
@@ -220660,7 +225344,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant_0_17" = callPackage
+  "servant_0_18" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base-compat, bifunctors
      , bytestring, case-insensitive, deepseq, hspec, hspec-discover
      , http-api-data, http-media, http-types, mmorph, mtl, network-uri
@@ -220669,8 +225353,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant";
-       version = "0.17";
-       sha256 = "0hrqwb9cin6wbwwqaw68i84ai46897ir4gy4issc6ya2qqmfq1ks";
+       version = "0.18";
+       sha256 = "1dcb92q8w2fim087plspf1hs2gq2hdfiaggp71jqbljhnznlf5vj";
        libraryHaskellDepends = [
          aeson attoparsec base base-compat bifunctors bytestring
          case-insensitive deepseq http-api-data http-media http-types mmorph
@@ -221219,7 +225903,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-client_0_17" = callPackage
+  "servant-client_0_18" = callPackage
     ({ mkDerivation, aeson, base, base-compat, bytestring, containers
      , deepseq, entropy, exceptions, hspec, hspec-discover
      , http-api-data, http-client, http-media, http-types, HUnit
@@ -221230,8 +225914,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-client";
-       version = "0.17";
-       sha256 = "0161v6kfj4mm5rixw5lbm8sc2dng300xbwgdhi4d0fqxrx12kij7";
+       version = "0.18";
+       sha256 = "17m0cakf4apdrpq7wic9mbxcn2hd9cwh9xrcbxshabfffgkq791i";
        libraryHaskellDepends = [
          base base-compat bytestring containers deepseq exceptions
          http-client http-media http-types kan-extensions monad-control mtl
@@ -221273,7 +225957,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-client-core_0_17" = callPackage
+  "servant-client-core_0_18" = callPackage
     ({ mkDerivation, aeson, base, base-compat, base64-bytestring
      , bytestring, containers, deepseq, exceptions, free, hspec
      , hspec-discover, http-media, http-types, network-uri, QuickCheck
@@ -221281,8 +225965,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-client-core";
-       version = "0.17";
-       sha256 = "1xskvmdr4998hj19wvhyb5rs5x193792f1b6ia7r21qdzp9garff";
+       version = "0.18";
+       sha256 = "198kixjiy34z05vavs18wb2kp62pk5bzr5cl7dvhkl73alvj3rhn";
        libraryHaskellDepends = [
          aeson base base-compat base64-bytestring bytestring containers
          deepseq exceptions free http-media http-types network-uri safe
@@ -221340,6 +226024,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "servant-conduit_0_15_1" = callPackage
+    ({ mkDerivation, base, base-compat, bytestring, conduit
+     , http-client, http-media, mtl, resourcet, servant, servant-client
+     , servant-server, unliftio-core, wai, warp
+     }:
+     mkDerivation {
+       pname = "servant-conduit";
+       version = "0.15.1";
+       sha256 = "1vy3ihypb0zm2yd16rq120qw3898i3c0mahh2jysssv65g0avdwp";
+       libraryHaskellDepends = [
+         base bytestring conduit mtl resourcet servant unliftio-core
+       ];
+       testHaskellDepends = [
+         base base-compat bytestring conduit http-client http-media
+         resourcet servant servant-client servant-server wai warp
+       ];
+       description = "Servant Stream support for conduit";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "servant-csharp" = callPackage
     ({ mkDerivation, aeson, base, bytestring, directory, filepath
      , heredocs, http-types, lens, mtl, servant, servant-foreign
@@ -221452,7 +226157,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-docs_0_11_5" = callPackage
+  "servant-docs_0_11_6" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, base-compat, bytestring
      , case-insensitive, hashable, http-media, http-types, lens, servant
      , string-conversions, tasty, tasty-golden, tasty-hunit, text
@@ -221460,8 +226165,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-docs";
-       version = "0.11.5";
-       sha256 = "0i51f33w5bz8j6jj9j5ivg7kll510nc0hmkhdrh3q0qagbpwryfx";
+       version = "0.11.6";
+       sha256 = "07qabs5xi6dw8anmrnl2135fps901k4y1s2xywgdxhqyg01rljhq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -221690,14 +226395,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-foreign_0_15_1" = callPackage
+  "servant-foreign_0_15_2" = callPackage
     ({ mkDerivation, base, base-compat, hspec, hspec-discover
      , http-types, lens, servant, text
      }:
      mkDerivation {
        pname = "servant-foreign";
-       version = "0.15.1";
-       sha256 = "024pd3a5pf4gqx5y2is7n38a7qyfanw13w5jy4j5a81zjmfxnwk7";
+       version = "0.15.2";
+       sha256 = "0vxm80cnd4w8zpyq7brnnjmcarb0vj7xgikwpc0il1w6hjgis7vl";
        libraryHaskellDepends = [
          base base-compat http-types lens servant text
        ];
@@ -221859,8 +226564,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-http-streams";
-       version = "0.17";
-       sha256 = "1nyp6ijb8219yfbxrq2mz59m1vfpr56rbfn9j9zmx4pcvnb903xc";
+       version = "0.18";
+       sha256 = "1krpmmzjc1vagcy8rdgcl3zm8zlfjf8ikicaqrqp6d95f8bz4kaz";
        libraryHaskellDepends = [
          base base-compat bytestring case-insensitive containers deepseq
          exceptions http-common http-media http-streams http-types
@@ -221953,8 +226658,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-js";
-       version = "0.9.4.1";
-       sha256 = "004snd07q29g08smvrwmpypg75g9rxdvk5bfyfyxxmj47wh4734d";
+       version = "0.9.4.2";
+       sha256 = "15n5s3i491cxjxj70wa8yhpipaz47q46s04l4ysc64wgijlnm8xy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -221973,8 +226678,8 @@ self: {
     ({ mkDerivation, aeson, base, servant }:
      mkDerivation {
        pname = "servant-jsonrpc";
-       version = "1.0.1";
-       sha256 = "0hizazwng0pcxd8p0n04xlgrx3vbr7nwc2k9s143q6yc6hp0dlj4";
+       version = "1.1.0";
+       sha256 = "0qy2al8waycarh5973c43bdd9g4a9032waknjsbykhflwglvwmv5";
        libraryHaskellDepends = [ aeson base servant ];
        description = "JSON-RPC messages and endpoints";
        license = stdenv.lib.licenses.bsd3;
@@ -221988,8 +226693,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-jsonrpc-client";
-       version = "1.0.1";
-       sha256 = "0s9ii02mfgyissyq4dbs9cqm3shrgiysjkhwgs6c0s30qqakjald";
+       version = "1.1.0";
+       sha256 = "0d18qajwpq6np0a61i5qm1z7iwvqrmgixg627diwr1xh4ws1ij8d";
        libraryHaskellDepends = [
          aeson base servant servant-client-core servant-jsonrpc
        ];
@@ -222005,8 +226710,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-jsonrpc-server";
-       version = "2.0.0";
-       sha256 = "0svnbsxzwfxdbyjhgq1hxxpjv96dzqkwg44bnq24lc5jk7j244sk";
+       version = "2.1.0";
+       sha256 = "09byg58qm4r9kbcxzr6jbyg5ziih58p0za8ihq4y8w60mznpb055";
        libraryHaskellDepends = [
          aeson base containers mtl servant servant-jsonrpc servant-server
        ];
@@ -222059,14 +226764,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-lucid_0_9_0_1" = callPackage
+  "servant-lucid_0_9_0_2" = callPackage
     ({ mkDerivation, base, http-media, lucid, servant, servant-server
      , text, wai, warp
      }:
      mkDerivation {
        pname = "servant-lucid";
-       version = "0.9.0.1";
-       sha256 = "1jhs9qy36vccy90s24cd9bmhqs604xqd9m8a4fbkjxrcpgdzfjgq";
+       version = "0.9.0.2";
+       sha256 = "0l68dffx746j3p2l5x59cj5cdng2dw6vjq5x5h44m0ccbsmlckpz";
        libraryHaskellDepends = [ base http-media lucid servant text ];
        testHaskellDepends = [ base lucid servant-server wai warp ];
        description = "Servant support for lucid";
@@ -222094,6 +226799,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "servant-machines_0_15_1" = callPackage
+    ({ mkDerivation, base, base-compat, bytestring, http-client
+     , http-media, machines, mtl, servant, servant-client
+     , servant-server, wai, warp
+     }:
+     mkDerivation {
+       pname = "servant-machines";
+       version = "0.15.1";
+       sha256 = "0k8abcc72s5bzcf2vmjkxxjnhk45rww6hr3l93msm2510hi6gda4";
+       libraryHaskellDepends = [ base bytestring machines mtl servant ];
+       testHaskellDepends = [
+         base base-compat bytestring http-client http-media machines servant
+         servant-client servant-server wai warp
+       ];
+       description = "Servant Stream support for machines";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "servant-match" = callPackage
     ({ mkDerivation, base, bytestring, hspec, http-types, network-uri
      , servant, text, utf8-string
@@ -222162,7 +226886,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-mock_0_8_6" = callPackage
+  "servant-mock_0_8_7" = callPackage
     ({ mkDerivation, aeson, base, base-compat, bytestring
      , bytestring-conversion, hspec, hspec-discover, hspec-wai
      , http-types, QuickCheck, servant, servant-server, transformers
@@ -222170,8 +226894,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-mock";
-       version = "0.8.6";
-       sha256 = "1cr5davd7ldcm2a4f33mi74rk6qlgdqg7vzzfpf8kgxrc97syrrd";
+       version = "0.8.7";
+       sha256 = "0j8c9wb1njrl77hp94frlnjpbk2axlkcgbcyax6s4pmf9v3c8j6x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -222193,24 +226917,30 @@ self: {
 
   "servant-multipart" = callPackage
     ({ mkDerivation, array, base, bytestring, directory, http-client
-     , http-media, lens, network, random, resourcet, servant
+     , http-media, http-types, lens, network, random, resourcet, servant
      , servant-client, servant-client-core, servant-docs
-     , servant-foreign, servant-server, text, transformers, wai
-     , wai-extra, warp
+     , servant-foreign, servant-server, string-conversions, tasty
+     , tasty-wai, text, transformers, wai, wai-extra, warp
      }:
      mkDerivation {
        pname = "servant-multipart";
-       version = "0.11.5";
-       sha256 = "19bz03y1fv0px30zw5q8394573d482lgchclihbnyg26w7xhmzha";
+       version = "0.11.6";
+       sha256 = "0yzr5hv2ki9ig4g6735bjnzv6mkpgj5l68g9hlvp9g9i0ryxqahn";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
          array base bytestring directory http-media lens random resourcet
          servant servant-client-core servant-docs servant-foreign
-         servant-server text transformers wai wai-extra
+         servant-server string-conversions text transformers wai wai-extra
        ];
-       testHaskellDepends = [
+       executableHaskellDepends = [
          base bytestring http-client network servant servant-client
          servant-client-core servant-server text transformers wai warp
        ];
+       testHaskellDepends = [
+         base bytestring http-types servant-server string-conversions tasty
+         tasty-wai text
+       ];
        description = "multipart/form-data (e.g file upload) support for servant";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -222345,6 +227075,28 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "servant-pipes_0_15_2" = callPackage
+    ({ mkDerivation, base, base-compat, bytestring, http-client
+     , http-media, monad-control, mtl, pipes, pipes-bytestring
+     , pipes-safe, servant, servant-client, servant-server, wai, warp
+     }:
+     mkDerivation {
+       pname = "servant-pipes";
+       version = "0.15.2";
+       sha256 = "1r5irq09j64iapi5n9mzsph984r5f7cyr6zz4sw3xqh648dmf75h";
+       libraryHaskellDepends = [
+         base bytestring monad-control mtl pipes pipes-safe servant
+       ];
+       testHaskellDepends = [
+         base base-compat bytestring http-client http-media pipes
+         pipes-bytestring pipes-safe servant servant-client servant-server
+         wai warp
+       ];
+       description = "Servant Stream support for pipes";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "servant-pool" = callPackage
     ({ mkDerivation, base, resource-pool, servant, time }:
      mkDerivation {
@@ -222479,8 +227231,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-quickcheck";
-       version = "0.0.8.0";
-       sha256 = "0zzbl8qp6pi5a59zbnaq3bfzxldfcb5xykkzp5czzgaj09ypxpgw";
+       version = "0.0.10.0";
+       sha256 = "072q2nxapx9p1fkcs862a9irjhlg0sfpbr72a1m9a5lrfhf9ahmc";
        libraryHaskellDepends = [
          aeson base base-compat-batteries bytestring case-insensitive clock
          data-default-class hspec http-client http-media http-types mtl
@@ -222527,6 +227279,66 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "servant-rawm_1_0_0_0" = callPackage
+    ({ mkDerivation, base, servant }:
+     mkDerivation {
+       pname = "servant-rawm";
+       version = "1.0.0.0";
+       sha256 = "05gv21y7vzw7gdbsk0nax47rnn4isjmx7hbbwilsv0cj7l8qm1bk";
+       libraryHaskellDepends = [ base servant ];
+       description = "Embed a raw 'Application' in a Servant API";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "servant-rawm-client" = callPackage
+    ({ mkDerivation, base, servant-client-core, servant-rawm }:
+     mkDerivation {
+       pname = "servant-rawm-client";
+       version = "1.0.0.1";
+       sha256 = "0ldjhmmfdh0jpfaz4sg1b9n5l23wza3w0m8bvvf80gvl7p6fk0fj";
+       libraryHaskellDepends = [ base servant-client-core servant-rawm ];
+       description = "The client implementation of servant-rawm";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "servant-rawm-docs" = callPackage
+    ({ mkDerivation, base, http-media, http-types, lens, servant-docs
+     , servant-rawm
+     }:
+     mkDerivation {
+       pname = "servant-rawm-docs";
+       version = "1.0.0.1";
+       sha256 = "1s11qzgl4lgc1xg2znski1d20a4hdnm1b2wxswm140fxm82p6gad";
+       libraryHaskellDepends = [
+         base http-media http-types lens servant-docs servant-rawm
+       ];
+       description = "Documentation generator for 'RawM' endpoints";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "servant-rawm-server" = callPackage
+    ({ mkDerivation, base, bytestring, filepath, resourcet
+     , servant-rawm, servant-server, wai, wai-app-static
+     }:
+     mkDerivation {
+       pname = "servant-rawm-server";
+       version = "1.0.0.1";
+       sha256 = "06ivhd132cp98s2kcwg2mcmh6gj01hpw2kyp5azywrzhcr1nspq9";
+       libraryHaskellDepends = [
+         base bytestring filepath resourcet servant-rawm servant-server wai
+         wai-app-static
+       ];
+       description = "The server implementation of servant-rawm";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "servant-reason" = callPackage
     ({ mkDerivation, aeson, base, Diff, directory, hspec, HUnit
      , interpolate, lens, mockery, process, reason-export, servant
@@ -222557,8 +227369,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-reflex";
-       version = "0.3.4";
-       sha256 = "1k7dkzs2lsdjj94ai7p225zm09l9sgbxpb4av14xgy9m54rih5kk";
+       version = "0.3.5";
+       sha256 = "0b4ppjnfas6pwypd16vkq98q1fs0l7cw32hhliv582xfvc0v3k8l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -222641,6 +227453,28 @@ self: {
        broken = true;
      }) {};
 
+  "servant-seo" = callPackage
+    ({ mkDerivation, aeson, base, binary, blaze-markup, bytestring
+     , Cabal, cabal-doctest, containers, directory, doctest, filepath
+     , http-media, lens, QuickCheck, servant, servant-blaze
+     , servant-server, text, warp, xml-conduit
+     }:
+     mkDerivation {
+       pname = "servant-seo";
+       version = "0.1.2";
+       sha256 = "0jia9wmwj3lyxygl1vj082bqgmk8bpccmaza5hr2qh4yq9rhrm1f";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         aeson base binary blaze-markup bytestring containers http-media
+         lens servant servant-blaze servant-server text warp xml-conduit
+       ];
+       testHaskellDepends = [
+         base directory doctest filepath QuickCheck
+       ];
+       description = "Generate Robots.txt and Sitemap.xml specification for your servant API.";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "servant-server" = callPackage
     ({ mkDerivation, aeson, base, base-compat, base64-bytestring
      , bytestring, Cabal, cabal-doctest, containers, directory, doctest
@@ -222680,7 +227514,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-server_0_17" = callPackage
+  "servant-server_0_18" = callPackage
     ({ mkDerivation, aeson, base, base-compat, base64-bytestring
      , bytestring, containers, directory, exceptions, filepath, hspec
      , hspec-discover, hspec-wai, http-api-data, http-media, http-types
@@ -222691,10 +227525,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-server";
-       version = "0.17";
-       sha256 = "11y7cb8r8bzkx3fb2cd5cbazxy87n0f4wm14qdxsz2g81k262k5l";
-       revision = "1";
-       editedCabalFile = "1kbdga7bi7slgcskqc3sb1xwmwif52dj8gvkxcskaw0b9xbdynhs";
+       version = "0.18";
+       sha256 = "0knbzr6ls9p2wjn3kfggy99gxavl817xw48m53plhf2r4s4vjrw8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -222828,8 +227660,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-static-th";
-       version = "0.2.3.0";
-       sha256 = "0gyfjrrq7anhn4b613gnaa0r2xm8rkminx1nrrbpn6bw47axadj4";
+       version = "0.2.4.0";
+       sha256 = "1xmikym19kq912apmh6zcdjzbz23mhn580pvsy5ll35ylqziaflk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -222992,7 +227824,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-swagger_1_1_8" = callPackage
+  "servant-swagger_1_1_10" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, base-compat, bytestring
      , Cabal, cabal-doctest, directory, doctest, filepath, hspec
      , hspec-discover, http-media, insert-ordered-containers, lens
@@ -223002,8 +227834,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-swagger";
-       version = "1.1.8";
-       sha256 = "16zmrakgiwf9rb9bvw3mjbmkqixyms42ymh7g1vyvz399plfn0c7";
+       version = "1.1.10";
+       sha256 = "0y6zylhs4z0nfz75d4i2azcq0yh2bd4inanwblx4035dgkk1q78a";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson aeson-pretty base base-compat bytestring hspec http-media
@@ -223022,16 +227854,16 @@ self: {
      }) {};
 
   "servant-swagger-tags" = callPackage
-    ({ mkDerivation, base, containers, lens, servant, servant-mock
-     , servant-server, servant-swagger, swagger2, text
+    ({ mkDerivation, base, insert-ordered-containers, lens, servant
+     , servant-mock, servant-server, servant-swagger, swagger2, text
      }:
      mkDerivation {
        pname = "servant-swagger-tags";
-       version = "0.1.0.0";
-       sha256 = "1938kr3jcpwy8imias0bk7xqp0v3ijajpdfdpgibyphklfqnck64";
+       version = "0.1.0.1";
+       sha256 = "1hl0baa739a5kdg274b8cwyd5h5iam9bxj3ql96ljwdp9j2cnv2v";
        libraryHaskellDepends = [
-         base containers lens servant servant-mock servant-server
-         servant-swagger swagger2 text
+         base insert-ordered-containers lens servant servant-mock
+         servant-server servant-swagger swagger2 text
        ];
        description = "Swagger Tags for Servant";
        license = stdenv.lib.licenses.bsd3;
@@ -223133,6 +227965,8 @@ self: {
        ];
        description = "Automatically generate Elm clients for Servant APIs";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "servant-tracing" = callPackage
@@ -223434,6 +228268,8 @@ self: {
        pname = "serversession";
        version = "1.0.1";
        sha256 = "08j8v6a2018bmvwsb7crdg0ajak74jggb073pdpx9s0pf3cfzyrz";
+       revision = "2";
+       editedCabalFile = "0i5faxzxgvpfylmrr175f8l4asyh4phncc90jkfag53gnspcv028";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring data-default hashable nonce
          path-pieces text time transformers unordered-containers
@@ -224032,8 +228868,35 @@ self: {
        ];
        description = "Invertible grammar combinators for S-expressions";
        license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "sexp-grammar_2_2_1" = callPackage
+    ({ mkDerivation, alex, array, base, bytestring, containers
+     , criterion, deepseq, happy, invertible-grammar, prettyprinter
+     , QuickCheck, recursion-schemes, scientific, semigroups, tasty
+     , tasty-hunit, tasty-quickcheck, text, utf8-string
+     }:
+     mkDerivation {
+       pname = "sexp-grammar";
+       version = "2.2.1";
+       sha256 = "0nf3b3cibqi2jv9jg742jknqpfgwvc7iwjw7a2jgpf55nrgs6lvz";
+       libraryHaskellDepends = [
+         array base bytestring containers deepseq invertible-grammar
+         prettyprinter recursion-schemes scientific semigroups text
+         utf8-string
+       ];
+       libraryToolDepends = [ alex happy ];
+       testHaskellDepends = [
+         base containers invertible-grammar prettyprinter QuickCheck
+         scientific semigroups tasty tasty-hunit tasty-quickcheck text
+         utf8-string
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion deepseq text
+       ];
+       description = "Invertible grammar combinators for S-expressions";
+       license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "sexp-show" = callPackage
@@ -224441,8 +229304,8 @@ self: {
      }:
      mkDerivation {
        pname = "shake-ats";
-       version = "1.10.4.1";
-       sha256 = "14b1yiw0bhj81pj1dhax7pdf9c68iwlndqg5c3n3c2p6qlcbbd8f";
+       version = "1.10.4.2";
+       sha256 = "0j230aijhnz1r07yx7ya452jz72926m93pdhfdrq5613mgy7l22n";
        libraryHaskellDepends = [
          base binary cdeps dependency directory hs2ats language-ats
          microlens shake shake-c shake-cabal shake-ext text
@@ -224472,8 +229335,8 @@ self: {
     ({ mkDerivation, base, cdeps, composition-prelude, shake }:
      mkDerivation {
        pname = "shake-c";
-       version = "0.4.3.0";
-       sha256 = "1cnmwn63kx43khgy3n00sqla8pw11h7almir31zm0dzgld11znix";
+       version = "0.4.5.0";
+       sha256 = "1bhi4rfvhin16c4xhx50dxjhr2gfpngasv7fps9fhm6is372ln9v";
        libraryHaskellDepends = [ base cdeps composition-prelude shake ];
        description = "Library for building C code with shake";
        license = stdenv.lib.licenses.bsd3;
@@ -224524,16 +229387,21 @@ self: {
      }) {};
 
   "shake-dhall" = callPackage
-    ({ mkDerivation, base, containers, dhall, filepath, shake, text }:
+    ({ mkDerivation, base, containers, dhall, directory, filepath
+     , shake, tasty, tasty-hunit, text
+     }:
      mkDerivation {
        pname = "shake-dhall";
-       version = "0.1.0.0";
-       sha256 = "1nhc6sfzsr7adv6xh8r2fyp64gzkiv563xqwmvhmk3pi3zxnlcll";
+       version = "0.1.1.3";
+       sha256 = "1crakjnib9hvqph8f0wn0ii0y4hp9vix40kd8fpz85mdqfsynf5q";
        libraryHaskellDepends = [
-         base containers dhall filepath shake text
+         base containers dhall directory filepath shake text
        ];
+       testHaskellDepends = [ base tasty tasty-hunit ];
        description = "Dhall dependencies";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "shake-elm" = callPackage
@@ -224580,8 +229448,8 @@ self: {
      }:
      mkDerivation {
        pname = "shake-futhark";
-       version = "0.1.0.0";
-       sha256 = "1wxp025dmlal1nm7f7s16pzgx42sawfcnz3lv6krilhr7ynb92ss";
+       version = "0.1.0.1";
+       sha256 = "110kvha6makrirdpc3x2r2lnazy4nn2xc8s5ydaz64fx9838mlra";
        libraryHaskellDepends = [
          base containers filepath futhark shake text
        ];
@@ -224703,40 +229571,84 @@ self: {
      }) {};
 
   "shake-plus" = callPackage
-    ({ mkDerivation, base, comonad, extra, hashable, path, rio, shake
+    ({ mkDerivation, aeson, base, comonad, extra, path, rio, shake
      , within
      }:
      mkDerivation {
        pname = "shake-plus";
-       version = "0.1.7.0";
-       sha256 = "0gmvmzi9mnbrd3xblqimx6rpdrv45cd80yglrj8f84rb6c61aiiq";
+       version = "0.1.10.0";
+       sha256 = "0jp0b593162y2m9mxrh4fhgvjiwyxx4zk5spmr46aby5hhrgdwcr";
        libraryHaskellDepends = [
-         base comonad extra hashable path rio shake within
+         aeson base comonad extra path rio shake within
        ];
        description = "Re-export of Shake using well-typed paths and ReaderT";
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "shake-plus_0_3_3_0" = callPackage
+    ({ mkDerivation, base, extra, path, rio, shake }:
+     mkDerivation {
+       pname = "shake-plus";
+       version = "0.3.3.0";
+       sha256 = "13a5n6gh1msrygi671lk5y83shcd75yz64x3r2smxif5hsfazwqv";
+       libraryHaskellDepends = [ base extra path rio shake ];
+       description = "Re-export of Shake using well-typed paths and ReaderT";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "shake-plus-extended" = callPackage
+    ({ mkDerivation, aeson, base, binary-instances, comonad, extra
+     , http-conduit, ixset-typed, ixset-typed-binary-instance
+     , ixset-typed-hashable-instance, path, path-binary-instance, rio
+     , shake, shake-plus, within
+     }:
+     mkDerivation {
+       pname = "shake-plus-extended";
+       version = "0.4.0.0";
+       sha256 = "1y12hcsyp8slzacjz8dim64m9sr09z7ppv3s4l30wyha9r395x8i";
+       libraryHaskellDepends = [
+         aeson base binary-instances comonad extra http-conduit ixset-typed
+         ixset-typed-binary-instance ixset-typed-hashable-instance path
+         path-binary-instance rio shake shake-plus within
+       ];
+       description = "Experimental extensions to shake-plus";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "shakebook" = callPackage
-    ({ mkDerivation, aeson, aeson-with, base, comonad, comonad-extras
-     , doctemplates, feed, free, ixset-typed, lens, lens-aeson, mustache
-     , pandoc, pandoc-types, path-extensions, rio, shake-plus, slick
-     , split, tasty, tasty-golden, text-time, zipper-extra
+    ({ mkDerivation, aeson, aeson-better-errors, aeson-with, base
+     , binary, binary-instances, comonad, comonad-extras
+     , composite-aeson, composite-base, doctemplates, feed, free
+     , hashable-time, http-conduit, ixset-typed, ixset-typed-conversions
+     , lens, lens-aeson, lucid, lucid-cdn, mtl, mustache, pandoc
+     , pandoc-types, path, path-extensions, rio, shake-plus
+     , shake-plus-extended, sitemap-gen, slick, split, tasty
+     , tasty-golden, text-time, vinyl, zipper-extra
      }:
      mkDerivation {
        pname = "shakebook";
-       version = "0.7.0.0";
-       sha256 = "09149j3fjsg3904v90dp1kgdhh52czzrxz2bd90mh2jaf5v59c2h";
+       version = "0.11.0.0";
+       sha256 = "0h6pq3y7ll5l83a682mwk60zipsm91w0srgrigdgi7l4wdhn7qzb";
        libraryHaskellDepends = [
-         aeson aeson-with base comonad comonad-extras doctemplates feed free
-         ixset-typed lens lens-aeson mustache pandoc pandoc-types
-         path-extensions rio shake-plus slick split text-time zipper-extra
+         aeson aeson-better-errors aeson-with base binary binary-instances
+         comonad comonad-extras composite-aeson composite-base doctemplates
+         feed free hashable-time http-conduit ixset-typed
+         ixset-typed-conversions lens lens-aeson lucid lucid-cdn mtl
+         mustache pandoc pandoc-types path path-extensions rio shake-plus
+         shake-plus-extended sitemap-gen slick split text-time vinyl
+         zipper-extra
        ];
        testHaskellDepends = [
-         aeson aeson-with base comonad comonad-extras doctemplates feed free
-         ixset-typed lens lens-aeson mustache pandoc pandoc-types
-         path-extensions rio shake-plus slick split tasty tasty-golden
-         text-time zipper-extra
+         aeson aeson-better-errors aeson-with base binary binary-instances
+         comonad comonad-extras composite-aeson composite-base doctemplates
+         feed free hashable-time http-conduit ixset-typed
+         ixset-typed-conversions lens lens-aeson lucid lucid-cdn mtl
+         mustache pandoc pandoc-types path path-extensions rio shake-plus
+         shake-plus-extended sitemap-gen slick split tasty tasty-golden
+         text-time vinyl zipper-extra
        ];
        description = "Shake-based technical documentation generator; HTML & PDF";
        license = stdenv.lib.licenses.mit;
@@ -224796,8 +229708,8 @@ self: {
      }:
      mkDerivation {
        pname = "shakespeare";
-       version = "2.0.24.1";
-       sha256 = "0r9msld629fh9h98iclhd30h1rbg1xqzjqxj64k0n1p39fkx4ndm";
+       version = "2.0.25";
+       sha256 = "1fjv3yg425d87d3dih0l3ff95g5a5yp9w85m58sjara6xqivj9s4";
        libraryHaskellDepends = [
          aeson base blaze-html blaze-markup bytestring containers directory
          exceptions ghc-prim parsec process scientific template-haskell text
@@ -225367,6 +230279,38 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "shelly_1_8_1" = callPackage
+    ({ mkDerivation, async, base, bytestring, containers, directory
+     , enclosed-exceptions, exceptions, filepath, hspec, hspec-contrib
+     , HUnit, lifted-async, lifted-base, monad-control, mtl, process
+     , system-fileio, system-filepath, text, time, transformers
+     , transformers-base, unix, unix-compat
+     }:
+     mkDerivation {
+       pname = "shelly";
+       version = "1.8.1";
+       sha256 = "023fbvbqs5gdwm30j5517gbdcc7fvz0md70dgwgpypkskj3i926y";
+       revision = "1";
+       editedCabalFile = "0crf0m077wky76f5nav2p9q4fa5q4yhv5l4bq9hd073dzdaywhz0";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         async base bytestring containers directory enclosed-exceptions
+         exceptions lifted-async lifted-base monad-control mtl process
+         system-fileio system-filepath text time transformers
+         transformers-base unix unix-compat
+       ];
+       testHaskellDepends = [
+         async base bytestring containers directory enclosed-exceptions
+         exceptions filepath hspec hspec-contrib HUnit lifted-async
+         lifted-base monad-control mtl process system-fileio system-filepath
+         text time transformers transformers-base unix unix-compat
+       ];
+       description = "shell-like (systems) programming in Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "shelly" = callPackage
     ({ mkDerivation, async, base, bytestring, containers, directory
      , enclosed-exceptions, exceptions, filepath, hspec, hspec-contrib
@@ -225440,6 +230384,8 @@ self: {
        pname = "shh";
        version = "0.7.0.8";
        sha256 = "1f8r8wymdbv8j2m3apdw75xqq2c1s4wr694qhxljvwa9r0s326wf";
+       revision = "1";
+       editedCabalFile = "03gvwv2hxrp8ncfmwhp7hn8xah5mx9fgm298s83l78grqjlzdbil";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -225479,8 +230425,8 @@ self: {
      }:
      mkDerivation {
        pname = "shift";
-       version = "0.2.1.2";
-       sha256 = "1g3qvk3b6qiawrjvzxv6nbr71zxb8c5rsi4agjhq8d1d6g9m9f42";
+       version = "0.2.1.3";
+       sha256 = "1b0587db6qk3hrr9sfxxcwi86wqzwr2qy035q9vvcxfr8sh0i3xg";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -226110,6 +231056,23 @@ self: {
        broken = true;
      }) {};
 
+  "signature" = callPackage
+    ({ mkDerivation, aeson, base, byteable, bytestring
+     , case-insensitive, cryptohash, hexstring, scientific, text
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "signature";
+       version = "0.1.1.0";
+       sha256 = "0ciwxpmcdw5zn6005qpafx2q005bbyalr7zw22kj7grm95ffp5xq";
+       libraryHaskellDepends = [
+         aeson base byteable bytestring case-insensitive cryptohash
+         hexstring scientific text unordered-containers vector
+       ];
+       description = "Hmac sha256 signature json and http payload";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "signed-multiset" = callPackage
     ({ mkDerivation, base, containers }:
      mkDerivation {
@@ -226875,10 +231838,8 @@ self: {
     ({ mkDerivation, base, process }:
      mkDerivation {
        pname = "simple-smt";
-       version = "0.9.4";
-       sha256 = "0sbwgyw2a5p85yddvmvzk85709qjqny3xgps7zg9k17m9d5bwdm0";
-       revision = "1";
-       editedCabalFile = "13y564gh7qndkdxnrdx5zbqnkcb5bgg074al92c9rqxd9c66wx4k";
+       version = "0.9.5";
+       sha256 = "0bwb3r2gqm81nmf0hc0mgj8vp2a48kmzx0h7h42lprp4d4irwmy2";
        libraryHaskellDepends = [ base process ];
        description = "A simple way to interact with an SMT solver process";
        license = stdenv.lib.licenses.bsd3;
@@ -227476,23 +232437,6 @@ self: {
      }:
      mkDerivation {
        pname = "singletons-presburger";
-       version = "0.3.0.0";
-       sha256 = "06djkc6y5clv0q903i04gaq0vri3nkk307znb418y0rfdh6czzwx";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base ghc ghc-typelits-presburger reflection singletons
-       ];
-       description = "Presburger Arithmetic Solver for GHC Type-level natural numbers with Singletons package";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "singletons-presburger_0_3_0_1" = callPackage
-    ({ mkDerivation, base, ghc, ghc-typelits-presburger, reflection
-     , singletons
-     }:
-     mkDerivation {
-       pname = "singletons-presburger";
        version = "0.3.0.1";
        sha256 = "1j7azll9cjg5gcvpw8aq1hia1njg4bm8llwms1v941gwi7gk481m";
        isLibrary = true;
@@ -227502,7 +232446,6 @@ self: {
        ];
        description = "Presburger Arithmetic Solver for GHC Type-level natural numbers with Singletons package";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "singnal" = callPackage
@@ -227690,6 +232633,8 @@ self: {
        ];
        description = "A simple to understand static site generator";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "sixel" = callPackage
@@ -227776,15 +232721,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "sized_0_5_0_0" = callPackage
+  "sized_0_6_0_0" = callPackage
     ({ mkDerivation, base, constraints, containers, deepseq
      , equational-reasoning, ghc-typelits-presburger, hashable, lens
      , ListLike, mono-traversable, singletons, type-natural, vector
      }:
      mkDerivation {
        pname = "sized";
-       version = "0.5.0.0";
-       sha256 = "0g47mn1j4a0p7w01pjr2fxcass6lwl460a0rs4rq001kj38zxrcx";
+       version = "0.6.0.0";
+       sha256 = "0441ip04gmnyd6wxs1kkmwgz0v936bw95gxc9x00c7z0byd3q6hg";
        libraryHaskellDepends = [
          base constraints containers deepseq equational-reasoning
          ghc-typelits-presburger hashable lens ListLike mono-traversable
@@ -228101,20 +233046,48 @@ self: {
      }) {};
 
   "skylighting" = callPackage
-    ({ mkDerivation, base, binary, bytestring, containers
-     , skylighting-core
+    ({ mkDerivation, base, binary, blaze-html, bytestring, containers
+     , directory, filepath, pretty-show, skylighting-core, text
      }:
      mkDerivation {
        pname = "skylighting";
        version = "0.8.5";
        sha256 = "1b8m0spspp060p5hkl2qxarh3cwji0shq5kdwz2w93kiyl8hk8sv";
+       configureFlags = [ "-fexecutable" ];
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base binary bytestring containers skylighting-core
+       ];
+       executableHaskellDepends = [
+         base blaze-html bytestring containers directory filepath
+         pretty-show text
+       ];
+       description = "syntax highlighting library";
+       license = stdenv.lib.licenses.gpl2;
+     }) {};
+
+  "skylighting_0_10" = callPackage
+    ({ mkDerivation, base, binary, blaze-html, bytestring, containers
+     , directory, filepath, pretty-show, skylighting-core, text
+     }:
+     mkDerivation {
+       pname = "skylighting";
+       version = "0.10";
+       sha256 = "1gi6pfi5rcmql0gdcjyb114phkc0xnkrhk6y2h6yvx4jflzpw4lj";
+       configureFlags = [ "-fexecutable" ];
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base binary bytestring containers skylighting-core
        ];
+       executableHaskellDepends = [
+         base blaze-html bytestring containers directory filepath
+         pretty-show text
+       ];
        description = "syntax highlighting library";
        license = stdenv.lib.licenses.gpl2;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "skylighting-core" = callPackage
@@ -228149,6 +233122,38 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "skylighting-core_0_10" = 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
+     }:
+     mkDerivation {
+       pname = "skylighting-core";
+       version = "0.10";
+       sha256 = "1b2ldgdgq0a1wg7nlfpzm1rag8hbmm7gnirrm78cd72kycrmly60";
+       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
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers Diff directory filepath HUnit
+         pretty-show QuickCheck random tasty tasty-golden tasty-hunit
+         tasty-quickcheck text utf8-string
+       ];
+       benchmarkHaskellDepends = [
+         base containers criterion directory filepath text
+       ];
+       description = "syntax highlighting library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "skylighting-extensions" = callPackage
     ({ mkDerivation, base, containers, skylighting, skylighting-modding
      , text
@@ -228298,8 +233303,8 @@ self: {
      }:
      mkDerivation {
        pname = "slack-progressbar";
-       version = "0.1.0.0";
-       sha256 = "0jdjl8cs29jlk7likvvci4l435rgngj2a4fnj258rq2ws3c5zxgn";
+       version = "0.1.0.1";
+       sha256 = "12iy8d0mvk0gcs65pb797qm9kx7d9wpa5gdkg4mvb4r13vqb5x9d";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -228662,29 +233667,25 @@ self: {
      }) {};
 
   "slynx" = callPackage
-    ({ mkDerivation, async, base, bytestring, containers, elynx-markov
-     , elynx-seq, elynx-tools, elynx-tree, hmatrix, megaparsec
-     , monad-logger, mwc-random, optparse-applicative, scientific, text
+    ({ mkDerivation, async, 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.2.2";
-       sha256 = "0jja57dcalxd1qp7fj338jwbpaxm1l3ika2zyd9rv3dk2k1xn6rj";
+       version = "0.4.0";
+       sha256 = "10a6nqpr422c80vmzjx1r2wgbhkc2kjn7kvmavc0cx1752wn79kc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async base bytestring containers elynx-markov elynx-seq elynx-tools
-         elynx-tree hmatrix megaparsec monad-logger mwc-random
-         optparse-applicative scientific text transformers vector
-       ];
-       executableHaskellDepends = [
-         async base bytestring containers elynx-seq elynx-tools hmatrix
-         megaparsec monad-logger mwc-random optparse-applicative scientific
-         text transformers vector
+         async attoparsec base bytestring containers elynx-markov elynx-seq
+         elynx-tools elynx-tree hmatrix monad-logger mwc-random
+         optparse-applicative statistics text transformers vector
        ];
+       executableHaskellDepends = [ base ];
        description = "Handle molecular sequences";
-       license = stdenv.lib.licenses.gpl3;
+       license = stdenv.lib.licenses.gpl3Plus;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -229054,6 +234055,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "smash-optics" = callPackage
+    ({ mkDerivation, base, optics-core, smash }:
+     mkDerivation {
+       pname = "smash-optics";
+       version = "0.1.0.0";
+       sha256 = "0h8khdm2lgklmf73bshfrjqfmkmhrbr6cq2r11vsm0lqfkzlyndh";
+       revision = "1";
+       editedCabalFile = "1kzkznb0167krv5pcia2vsj0gy9zgykjhqg5d3pfnwz3152197ql";
+       libraryHaskellDepends = [ base optics-core smash ];
+       description = "Optics for the `smash` library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "smcdel" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, containers, criterion
      , cudd, directory, file-embed, filepath, graphviz, HasCacBDD, hspec
@@ -229354,8 +234370,8 @@ self: {
      }:
      mkDerivation {
        pname = "smtp-mail";
-       version = "0.2.0.1";
-       sha256 = "16qwcwzgzlmfx1f5h6977nkka7x6jlm6kxpkbdsacizh0z96v1kw";
+       version = "0.3.0.0";
+       sha256 = "0q81m4mi43cd0f1azm6984xw3qw2s6ygszdn86j5z3g5sjj5dax4";
        libraryHaskellDepends = [
          array base base16-bytestring base64-bytestring bytestring
          connection cryptonite filepath memory mime-mail network network-bsd
@@ -229632,10 +234648,8 @@ self: {
      }:
      mkDerivation {
        pname = "snap-core";
-       version = "1.0.4.1";
-       sha256 = "19dmfqbsfyk1rkjnnrnajpjfam2xjxgmpfmx10yr5qffgza7gcf0";
-       revision = "1";
-       editedCabalFile = "0m8vsgrj96a0y9h09szg7gxv9f26yizh4k181ri2sp7ki8p5p7lg";
+       version = "1.0.4.2";
+       sha256 = "0zxdhx4wk70bkn71574lyz3zhq79yy98rv05r4564rd100xw3fqs";
        libraryHaskellDepends = [
          attoparsec base bytestring bytestring-builder case-insensitive
          containers directory filepath hashable HUnit io-streams lifted-base
@@ -229904,8 +234918,6 @@ self: {
        ];
        description = "Scaffolding CLI for the Snap Framework";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "snap-testing" = callPackage
@@ -231229,8 +236241,8 @@ self: {
      }:
      mkDerivation {
        pname = "socket";
-       version = "0.8.2.0";
-       sha256 = "176px9n2f8mnxi3r2sqshrpbp7i11fskch1nkjhgqzq917sz0zgb";
+       version = "0.8.3.0";
+       sha256 = "0gd0rw6mpzlimvcn3jiw7l0q9h4l3rhfr2n5hhg6k0bkklqp6rbr";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [
          async base bytestring QuickCheck tasty tasty-hunit tasty-quickcheck
@@ -231258,10 +236270,10 @@ self: {
     ({ mkDerivation, base, socket }:
      mkDerivation {
        pname = "socket-icmp";
-       version = "0.1.0.0";
-       sha256 = "14lfvbhcq1ri9bfc0qiymh8qv8b7q78lzfbr5qsarh8rb85ii2vj";
+       version = "0.1.0.1";
+       sha256 = "1wvrdgz0ybacbzg91vi8jiswr02lj7hz61cksmcfii2qsmzpfgb7";
        libraryHaskellDepends = [ base socket ];
-       description = "Definitions for ICMP with the `socket` library";
+       description = "Definitions for using ICMP with the `socket` library";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -231743,20 +236755,29 @@ self: {
      }) {};
 
   "souffle-haskell" = callPackage
-    ({ mkDerivation, base, deepseq, directory, filepath, hspec, mtl
-     , process, template-haskell, temporary, text, type-errors-pretty
-     , vector
+    ({ mkDerivation, array, base, containers, deepseq, directory, extra
+     , filepath, hedgehog, hspec, hspec-hedgehog, megaparsec, mtl
+     , neat-interpolation, process, template-haskell, temporary, text
+     , type-errors-pretty, vector
      }:
      mkDerivation {
        pname = "souffle-haskell";
-       version = "0.2.3";
-       sha256 = "10yl690vbznsa2z9lk2ix6jd8xkx5kriqqblbdr8mlkdzxxv5z6q";
+       version = "2.0.0";
+       sha256 = "0x6v1g5in762w1hhwcg5ipa0c491wp0mflqljjpl99da6kr1l93f";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
-         base deepseq directory filepath mtl process template-haskell
-         temporary text type-errors-pretty vector
+         array base containers deepseq directory filepath mtl process
+         template-haskell temporary text type-errors-pretty vector
+       ];
+       executableHaskellDepends = [
+         array base containers deepseq directory extra filepath megaparsec
+         mtl process template-haskell temporary text type-errors-pretty
+         vector
        ];
        testHaskellDepends = [
-         base deepseq directory filepath hspec mtl process template-haskell
+         array base containers deepseq directory filepath hedgehog hspec
+         hspec-hedgehog mtl neat-interpolation process template-haskell
          temporary text type-errors-pretty vector
        ];
        description = "Souffle Datalog bindings for Haskell";
@@ -232169,6 +237190,19 @@ self: {
        broken = true;
      }) {};
 
+  "spars" = callPackage
+    ({ mkDerivation, base, containers }:
+     mkDerivation {
+       pname = "spars";
+       version = "0.1.0.0";
+       sha256 = "1q1vpwrr96k41p9zj5x7mjd3817iq9a762q3jfqkwd0cb41iyka6";
+       libraryHaskellDepends = [ base containers ];
+       description = "A sparse set-based parsing library for Haskell";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "sparse" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, contravariant
      , criterion, deepseq, directory, doctest, filepath, hlint
@@ -233002,7 +238036,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "splitmix_0_1" = callPackage
+  "splitmix_0_1_0_1" = callPackage
     ({ mkDerivation, async, base, base-compat, base-compat-batteries
      , bytestring, clock, containers, criterion, deepseq, HUnit
      , math-functions, process, random, test-framework
@@ -233010,8 +238044,8 @@ self: {
      }:
      mkDerivation {
        pname = "splitmix";
-       version = "0.1";
-       sha256 = "1yhbh6zsklz5fbas2v69xd2qi3xvk4zidzl0acv17fyxa9rwh48w";
+       version = "0.1.0.1";
+       sha256 = "0ahr3zxx0n9pjxpldrphqx5rhanar6alq3km7qvszipa8r46jjsd";
        libraryHaskellDepends = [ base deepseq time ];
        testHaskellDepends = [
          async base base-compat base-compat-batteries bytestring containers
@@ -233060,8 +238094,6 @@ self: {
        ];
        description = "A tool for visualizing the lifecycle of many concurrent multi-staged processes";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "spool" = callPackage
@@ -233107,6 +238139,17 @@ self: {
        broken = true;
      }) {};
 
+  "spork" = callPackage
+    ({ mkDerivation, base, deepseq }:
+     mkDerivation {
+       pname = "spork";
+       version = "0.4.0";
+       sha256 = "1mkcb9qi9d3izf3nhn0bmiiwfhvak6ky71wq7qnrq3imsarrni6s";
+       libraryHaskellDepends = [ base deepseq ];
+       description = "Catch errors from pure computations in a Maybe/Either";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "spoty" = callPackage
     ({ mkDerivation, aeson, base, bytestring, lens, lens-aeson, pipes
      , text, unordered-containers, wreq
@@ -233645,8 +238688,8 @@ self: {
      }:
      mkDerivation {
        pname = "squeeze";
-       version = "1.0.4.17";
-       sha256 = "10nm5jim5cw7qmkdr1j7665g646kay53w8n5rcsp1jz3lglpymdw";
+       version = "1.0.4.19";
+       sha256 = "0zb4nbgwlifzaw28g09qhvvjk8a795zww0b746bj98wgzyxp6a50";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -233660,30 +238703,32 @@ self: {
        ];
        description = "A file-packing application";
        license = "GPL";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "sr-extra" = callPackage
-    ({ mkDerivation, base, bytestring, bzlib, Cabal, cereal, containers
-     , Diff, directory, exceptions, fgl, filemanip, filepath
-     , generic-data, hslogger, HUnit, lens, ListLike, mmorph, mtl
-     , network-uri, pretty, process, process-extras, pureMD5, QuickCheck
-     , random, safecopy, show-combinators, show-please, syb
+    ({ mkDerivation, base, base64-bytestring, bytestring, bzlib, Cabal
+     , cereal, containers, Diff, directory, exceptions, fgl, filemanip
+     , filepath, generic-data, hslogger, HUnit, lens, ListLike, mmorph
+     , mtl, network-uri, pretty, process, process-extras, pureMD5
+     , QuickCheck, random, safecopy, show-combinators, show-please, syb
      , template-haskell, text, th-lift, th-lift-instances, th-orphans
      , time, transformers, unexceptionalio-trans, unix, Unixutils
      , userid, uuid, uuid-orphans, uuid-types, zlib
      }:
      mkDerivation {
        pname = "sr-extra";
-       version = "1.72.3";
-       sha256 = "0jm7r0lxcwppc85rpyasq6grqqkcwhxs0clwyasicqklkcx2l5xw";
+       version = "1.80";
+       sha256 = "03xm9km8wzvz8g1czj320k00xf2dzdi8rm74l7xdr9h7bxcwyh84";
        libraryHaskellDepends = [
-         base bytestring bzlib Cabal cereal containers Diff directory
-         exceptions fgl filemanip filepath generic-data hslogger HUnit lens
-         ListLike mmorph mtl network-uri pretty process process-extras
-         pureMD5 QuickCheck random safecopy show-combinators show-please syb
-         template-haskell text th-lift th-lift-instances th-orphans time
-         transformers unexceptionalio-trans unix Unixutils userid uuid
-         uuid-orphans uuid-types zlib
+         base base64-bytestring bytestring bzlib Cabal cereal containers
+         Diff directory exceptions fgl filemanip filepath generic-data
+         hslogger HUnit lens ListLike mmorph mtl network-uri pretty process
+         process-extras pureMD5 QuickCheck random safecopy show-combinators
+         show-please syb template-haskell text th-lift th-lift-instances
+         th-orphans time transformers unexceptionalio-trans unix Unixutils
+         userid uuid uuid-orphans uuid-types zlib
        ];
        description = "Module limbo";
        license = stdenv.lib.licenses.bsd3;
@@ -233797,6 +238842,8 @@ self: {
        pname = "ssh";
        version = "0.3.2";
        sha256 = "1gr64sv802n9l72lp608xxi9nbh165dzn22m52s0yc35vf717rq1";
+       revision = "1";
+       editedCabalFile = "1y5c3z86mi7fc0awlvmq85y40nhws4591njjs85xj0grxrizx5bg";
        libraryHaskellDepends = [
          asn1-encoding asn1-types base base64-string binary bytestring
          cereal containers crypto-api crypto-pubkey-types
@@ -234007,9 +239054,10 @@ self: {
     ({ mkDerivation, base, ghc-prim }:
      mkDerivation {
        pname = "stable-marriage";
-       version = "0.1.3.0";
-       sha256 = "04nd7c34gsx6njiwqzzx14ff745naam1cxc0cr4s7yyr9h7ikdai";
+       version = "0.2.0.0";
+       sha256 = "1qxns33mmr1nxw6gabi5s1i70ksp0ls54q7cf95fy7vs1nwngz0n";
        libraryHaskellDepends = [ base ghc-prim ];
+       testHaskellDepends = [ base ghc-prim ];
        description = "algorithms around stable marriage";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -234086,6 +239134,43 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "stache_2_2_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, criterion
+     , deepseq, directory, file-embed, filepath, gitrev, hspec
+     , hspec-discover, hspec-megaparsec, megaparsec, mtl
+     , optparse-applicative, template-haskell, text
+     , unordered-containers, vector, yaml
+     }:
+     mkDerivation {
+       pname = "stache";
+       version = "2.2.0";
+       sha256 = "09cfj8hs2249gqf0nrlv9b8vg8gmxabs7ndxasphxdd0rb1y3z3g";
+       revision = "1";
+       editedCabalFile = "12cjs085pmf52ykh24mn538wc9dvjydam6vn1rjxz03wc6mx2vf5";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers deepseq directory filepath
+         megaparsec mtl template-haskell text unordered-containers vector
+       ];
+       executableHaskellDepends = [
+         aeson base filepath gitrev optparse-applicative text
+         unordered-containers yaml
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers file-embed hspec hspec-megaparsec
+         megaparsec template-haskell text yaml
+       ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [
+         aeson base criterion deepseq megaparsec text
+       ];
+       description = "Mustache templates for Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "stack" = callPackage
     ({ mkDerivation, aeson, annotated-wl-pprint, ansi-terminal, array
      , async, attoparsec, base, base64-bytestring, bytestring, Cabal
@@ -234108,8 +239193,8 @@ self: {
      }:
      mkDerivation {
        pname = "stack";
-       version = "2.3.1";
-       sha256 = "1l17jdkr6ca3hwm4v8bshq2zbadqhb35hk2gfjy2dri1mdibcsdr";
+       version = "2.3.3";
+       sha256 = "1j2z8cgb9c56g39dh5ff2sri3r3vxddy6ymznkywn6d7c1z4j7qs";
        configureFlags = [
          "-fdisable-git-info" "-fhide-dependency-versions"
          "-fsupported-build"
@@ -234896,8 +239981,8 @@ self: {
      }:
      mkDerivation {
        pname = "stackcollapse-ghc";
-       version = "0.0.1";
-       sha256 = "0skpikc7yvdqcdaxqiyav4dk6k0sqng9160dgi4yfx54f5za1a64";
+       version = "0.0.1.2";
+       sha256 = "17ypxfscz9y7w6jh06133j779837dhdiq2a378mc73ji2m5fia1s";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -234912,15 +239997,15 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
-  "stackcollapse-ghc_0_0_1_1" = callPackage
+  "stackcollapse-ghc_0_0_1_3" = callPackage
     ({ mkDerivation, base, bytestring, containers, extra, foldl, hspec
      , hspec-golden, recursion-schemes, rosezipper, safe, text
      , transformers, utf8-string
      }:
      mkDerivation {
        pname = "stackcollapse-ghc";
-       version = "0.0.1.1";
-       sha256 = "18glq0hkfr02iw8p842hmk4rv5d8sb565lyccklxdmfn708ick23";
+       version = "0.0.1.3";
+       sha256 = "05271x47b2aik2msfm9f6jsazb174p667acwyd84vs73nygpbmdk";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -234994,22 +240079,22 @@ self: {
     ({ mkDerivation, array, base, base64, blaze-html, bytestring, clay
      , colourista, containers, cryptohash-sha1, dir-traverse, directory
      , extensions, filepath, ghc, ghc-boot-th, gitrev, hedgehog, hspec
-     , hspec-hedgehog, optparse-applicative, pretty-simple, relude
-     , slist, text, tomland, trial, trial-optparse-applicative
-     , trial-tomland, unordered-containers
+     , hspec-hedgehog, microaeson, optparse-applicative, pretty-simple
+     , process, relude, slist, text, tomland, trial
+     , trial-optparse-applicative, trial-tomland, unordered-containers
      }:
      mkDerivation {
        pname = "stan";
-       version = "0.0.0.0";
-       sha256 = "0x4avzclyx41kncwzaky70ky3mz4pcfcgzg17jnza8gpm7bfacxg";
+       version = "0.0.1.0";
+       sha256 = "13q0pf0vjh19w9sshxa45gbfmhv707sizx6mf5s35003654a0bxm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          array base base64 blaze-html bytestring clay colourista containers
          cryptohash-sha1 dir-traverse directory extensions filepath ghc
-         ghc-boot-th gitrev optparse-applicative pretty-simple relude slist
-         text tomland trial trial-optparse-applicative trial-tomland
-         unordered-containers
+         ghc-boot-th gitrev microaeson optparse-applicative pretty-simple
+         process relude slist text tomland trial trial-optparse-applicative
+         trial-tomland unordered-containers
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
@@ -235019,6 +240104,8 @@ self: {
        doHaddock = false;
        description = "Haskell STatic ANalyser";
        license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "standalone-derive-topdown" = callPackage
@@ -235228,10 +240315,8 @@ self: {
      }:
      mkDerivation {
        pname = "stateWriter";
-       version = "0.2.10";
-       sha256 = "0g1r7zn1ahky9wmqbimjryca3hkylx15xpqwhc42gkyf7h7kq2b8";
-       revision = "1";
-       editedCabalFile = "19zp7wy2k6f5dqw0wfj9wzarjgfr20nvw5rmqiv79h66qssjl9i6";
+       version = "0.3.0";
+       sha256 = "0l8x758ywgz3c6fhyw1ajaqnq98l2ra39cj4yl2873z89q2cxdlp";
        libraryHaskellDepends = [ base mtl transformers ];
        testHaskellDepends = [ base free hspec mtl QuickCheck ];
        benchmarkHaskellDepends = [
@@ -236164,8 +241249,6 @@ self: {
        ];
        description = "Containers for STM";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "stm-delay" = callPackage
@@ -236235,8 +241318,6 @@ self: {
        ];
        description = "STM-specialised Hash Array Mapped Trie";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "stm-io-hooks" = callPackage
@@ -236590,29 +241671,6 @@ self: {
      }:
      mkDerivation {
        pname = "storablevector";
-       version = "0.2.13";
-       sha256 = "1zmr738vwnhnyxbikayqnaz31ilv2qlmscp6iqgl7adcfbal4dzq";
-       libraryHaskellDepends = [
-         base deepseq non-negative QuickCheck semigroups syb transformers
-         unsafe utility-ht
-       ];
-       testHaskellDepends = [
-         base bytestring QuickCheck random utility-ht
-       ];
-       benchmarkHaskellDepends = [
-         base deepseq sample-frame unsafe utility-ht
-       ];
-       description = "Fast, packed, strict storable arrays with a list interface like ByteString";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "storablevector_0_2_13_1" = callPackage
-    ({ mkDerivation, base, bytestring, deepseq, non-negative
-     , QuickCheck, random, sample-frame, semigroups, syb, transformers
-     , unsafe, utility-ht
-     }:
-     mkDerivation {
-       pname = "storablevector";
        version = "0.2.13.1";
        sha256 = "06fgxbnc5vwmiv7dxywj7ncjhmxv0wjs0bys5hza6mrwn3sw5r2w";
        libraryHaskellDepends = [
@@ -236627,7 +241685,6 @@ self: {
        ];
        description = "Fast, packed, strict storable arrays with a list interface like ByteString";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "storablevector-carray" = callPackage
@@ -236662,63 +241719,60 @@ self: {
     ({ mkDerivation, array, async, base, base-orphans
      , base64-bytestring, bifunctors, bytestring, cereal, cereal-vector
      , clock, containers, contravariant, criterion, cryptohash, deepseq
-     , directory, fail, filepath, free, ghc-prim, hashable, hspec
+     , directory, filepath, free, ghc-prim, hashable, hspec
      , hspec-smallcheck, integer-gmp, lifted-base, monad-control
-     , mono-traversable, network, primitive, resourcet, safe, semigroups
-     , smallcheck, store-core, syb, template-haskell, text, th-lift
+     , mono-traversable, network, primitive, resourcet, safe, smallcheck
+     , store-core, syb, template-haskell, text, th-lift
      , th-lift-instances, th-orphans, th-reify-many, th-utilities, time
      , transformers, unordered-containers, vector
      , vector-binary-instances, void, weigh
      }:
      mkDerivation {
        pname = "store";
-       version = "0.7.4";
-       sha256 = "1lipkzhdr6m5555r2p3s5g5i2am9kg34dznfakcsxv5z20vzd31z";
+       version = "0.7.7";
+       sha256 = "152blmvnp8k0bh9bw6ddzmb2rhs0a36v1k0fza39n88sldx504s3";
        libraryHaskellDepends = [
          array async base base-orphans base64-bytestring bifunctors
          bytestring containers contravariant cryptohash deepseq directory
-         fail filepath free ghc-prim hashable hspec hspec-smallcheck
-         integer-gmp lifted-base monad-control mono-traversable network
-         primitive resourcet safe semigroups smallcheck store-core syb
-         template-haskell text th-lift th-lift-instances th-orphans
-         th-reify-many th-utilities time transformers unordered-containers
-         vector void
+         filepath free ghc-prim hashable hspec hspec-smallcheck integer-gmp
+         lifted-base monad-control mono-traversable network primitive
+         resourcet safe smallcheck store-core syb template-haskell text
+         th-lift th-lift-instances th-orphans th-reify-many th-utilities
+         time transformers unordered-containers vector void
        ];
        testHaskellDepends = [
          array async base base-orphans base64-bytestring bifunctors
          bytestring clock containers contravariant cryptohash deepseq
-         directory fail filepath free ghc-prim hashable hspec
-         hspec-smallcheck integer-gmp lifted-base monad-control
-         mono-traversable network primitive resourcet safe semigroups
-         smallcheck store-core syb template-haskell text th-lift
-         th-lift-instances th-orphans th-reify-many th-utilities time
-         transformers unordered-containers vector void
+         directory filepath free ghc-prim hashable hspec hspec-smallcheck
+         integer-gmp lifted-base monad-control mono-traversable network
+         primitive resourcet safe smallcheck store-core syb template-haskell
+         text th-lift th-lift-instances th-orphans th-reify-many
+         th-utilities time transformers unordered-containers vector void
        ];
        benchmarkHaskellDepends = [
          array async base base-orphans base64-bytestring bifunctors
          bytestring cereal cereal-vector containers contravariant criterion
-         cryptohash deepseq directory fail filepath free ghc-prim hashable
-         hspec hspec-smallcheck integer-gmp lifted-base monad-control
-         mono-traversable network primitive resourcet safe semigroups
-         smallcheck store-core syb template-haskell text th-lift
-         th-lift-instances th-orphans th-reify-many th-utilities time
-         transformers unordered-containers vector vector-binary-instances
-         void weigh
+         cryptohash deepseq directory filepath free ghc-prim hashable hspec
+         hspec-smallcheck integer-gmp lifted-base monad-control
+         mono-traversable network primitive resourcet safe smallcheck
+         store-core syb template-haskell text th-lift th-lift-instances
+         th-orphans th-reify-many th-utilities time transformers
+         unordered-containers vector vector-binary-instances void weigh
        ];
        description = "Fast binary serialization";
        license = stdenv.lib.licenses.mit;
      }) {};
 
   "store-core" = callPackage
-    ({ mkDerivation, base, bytestring, fail, ghc-prim, primitive, text
+    ({ mkDerivation, base, bytestring, ghc-prim, primitive, text
      , transformers
      }:
      mkDerivation {
        pname = "store-core";
-       version = "0.4.4.2";
-       sha256 = "184f3whh7kzc2fkm1mgllg06f002z8shayz1b8cvhal3qg1qahf9";
+       version = "0.4.4.3";
+       sha256 = "1b0fpv8wdp9lcvqplls548xrh336cb1m617fzd0ysbzqhhg5r3fv";
        libraryHaskellDepends = [
-         base bytestring fail ghc-prim primitive text transformers
+         base bytestring ghc-prim primitive text transformers
        ];
        description = "Fast and lightweight binary serialization";
        license = stdenv.lib.licenses.mit;
@@ -236731,8 +241785,8 @@ self: {
      }:
      mkDerivation {
        pname = "store-streaming";
-       version = "0.2.0.0";
-       sha256 = "0fhcv0lvmhdc53fx9y2dvvykvap7dz4asnajy95kpwhaz6z1xc2k";
+       version = "0.2.0.3";
+       sha256 = "0b164ixsqgrar4riqlm3ip5rfbinapk6md7hnz32gzcmrgav283q";
        libraryHaskellDepends = [
          async base bytestring conduit free resourcet store store-core
          streaming-commons text transformers
@@ -236806,15 +241860,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "stratosphere_0_55_0" = callPackage
+  "stratosphere_0_58_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
      , hashable, hspec, hspec-discover, lens, template-haskell, text
      , unordered-containers
      }:
      mkDerivation {
        pname = "stratosphere";
-       version = "0.55.0";
-       sha256 = "0fs0npxspfg3yj03dzjq1a02z3ca3s82z6v92f3cb1bkn0dsqhq2";
+       version = "0.58.0";
+       sha256 = "17yi1h5rcnhvwzpd27hz5pw1dznmdhg58jwsp37bfxns0hx35ywn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -237214,8 +242268,8 @@ self: {
      }:
      mkDerivation {
        pname = "streaming-commons";
-       version = "0.2.1.2";
-       sha256 = "05pwziz8cybp6zh70jsmsdchy5qlkgdjj2jf7ggqrgps5m5nsapa";
+       version = "0.2.2.1";
+       sha256 = "1pc13vz4n0a8lrvc2ck3r3ph10819n9pysklwqabg83q92zl0s9h";
        libraryHaskellDepends = [
          array async base bytestring directory network process random stm
          text transformers unix zlib
@@ -237369,8 +242423,8 @@ self: {
      }:
      mkDerivation {
        pname = "streaming-osm";
-       version = "1.0.1";
-       sha256 = "0rsyp7lzsj254i7r6gak48fwlpkbq9i7aw4mjdmym4y55mhj1d64";
+       version = "1.0.2";
+       sha256 = "0szw191ixqdm1cbmz0i987mm3ipr0aydjw3vq4q0yky4q7wkimc6";
        libraryHaskellDepends = [
          attoparsec base bytestring containers resourcet streaming
          streaming-attoparsec streaming-bytestring text transformers vector
@@ -237572,6 +242626,45 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "streamly-archive" = callPackage
+    ({ mkDerivation, archive, base, bytestring, cryptonite, directory
+     , filepath, QuickCheck, streamly, tar, tasty, tasty-hunit
+     , tasty-quickcheck, temporary, zlib
+     }:
+     mkDerivation {
+       pname = "streamly-archive";
+       version = "0.0.1";
+       sha256 = "055jcqndkzg14c2fvkncn9034bw60n8s8yjkkjx7kqrj9p0kp01a";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [ base bytestring streamly ];
+       librarySystemDepends = [ archive ];
+       testHaskellDepends = [
+         base bytestring cryptonite directory filepath QuickCheck streamly
+         tar tasty tasty-hunit tasty-quickcheck temporary zlib
+       ];
+       testSystemDepends = [ archive ];
+       description = "Stream data from archives using the streamly library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {archive = null;};
+
+  "streamly-binary" = callPackage
+    ({ mkDerivation, base, binary, bytestring, hspec, QuickCheck
+     , streamly
+     }:
+     mkDerivation {
+       pname = "streamly-binary";
+       version = "1.0.0.1";
+       sha256 = "16pl68dhhknda7ag1mjhwa14d3rdns70rzwvm947p8n3bv8yxsar";
+       libraryHaskellDepends = [ base binary bytestring streamly ];
+       testHaskellDepends = [
+         base binary bytestring hspec QuickCheck streamly
+       ];
+       description = "Integration of streamly and binary";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "streamly-bytestring" = callPackage
     ({ mkDerivation, base, bytestring, deepseq, directory, filepath
      , gauge, hspec, hspec-discover, quickcheck-instances, random
@@ -237635,6 +242728,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "streamly-lmdb" = callPackage
+    ({ mkDerivation, async, base, bytestring, directory, lmdb
+     , QuickCheck, streamly, tasty, tasty-quickcheck, temporary
+     }:
+     mkDerivation {
+       pname = "streamly-lmdb";
+       version = "0.0.1.1";
+       sha256 = "080w7c9dgw4dixnxhvpjnii53c5sk00h18vwps973q51qhl9qa18";
+       libraryHaskellDepends = [ async base bytestring streamly ];
+       librarySystemDepends = [ lmdb ];
+       testHaskellDepends = [
+         async base bytestring directory QuickCheck streamly tasty
+         tasty-quickcheck temporary
+       ];
+       testSystemDepends = [ lmdb ];
+       description = "Stream data to or from LMDB databases using the streamly library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) lmdb;};
+
   "streamly-posix" = callPackage
     ({ mkDerivation, base, bytestring, filepath, hpath-posix, hspec
      , hspec-discover, safe-exceptions, streamly, streamly-bytestring
@@ -237752,6 +242866,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "strict_0_4" = callPackage
+    ({ mkDerivation, assoc, base, binary, bytestring, deepseq, ghc-prim
+     , hashable, text, these, transformers
+     }:
+     mkDerivation {
+       pname = "strict";
+       version = "0.4";
+       sha256 = "0gs5fqsrwsc3y5w6fp91p9frgh7h42kd9smyg04cw284d5wfx7r7";
+       libraryHaskellDepends = [
+         assoc base binary bytestring deepseq ghc-prim hashable text these
+         transformers
+       ];
+       description = "Strict data types and String IO";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "strict-base" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -237781,6 +242912,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "strict-base-types_0_7" = callPackage
+    ({ mkDerivation, aeson, base, quickcheck-instances, strict
+     , strict-lens
+     }:
+     mkDerivation {
+       pname = "strict-base-types";
+       version = "0.7";
+       sha256 = "079pa6w3f5i5kv1v6mwhp2k0siyywnk3igm93y2kaz37f352x5jn";
+       libraryHaskellDepends = [
+         aeson base quickcheck-instances strict strict-lens
+       ];
+       description = "Strict variants of the types provided in base";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "strict-concurrency" = callPackage
     ({ mkDerivation, base, deepseq }:
      mkDerivation {
@@ -237853,6 +243000,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "strict-lens" = callPackage
+    ({ mkDerivation, base, lens, strict }:
+     mkDerivation {
+       pname = "strict-lens";
+       version = "0.4";
+       sha256 = "16sqk7kvg8322f0aflnsb7v76p1c1xfvn3h0hxgvmkb5ll1ak92y";
+       libraryHaskellDepends = [ base lens strict ];
+       description = "Lenses for types in strict package";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "strict-list" = callPackage
     ({ mkDerivation, base, hashable, QuickCheck, quickcheck-instances
      , rerebase, semigroupoids, tasty, tasty-hunit, tasty-quickcheck
@@ -237870,6 +243030,19 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "strict-optics" = callPackage
+    ({ mkDerivation, base, optics-core, strict }:
+     mkDerivation {
+       pname = "strict-optics";
+       version = "0.4";
+       sha256 = "1xy5yziq37h37irbg3win7risxc46s143iqqh95lqv08fybk5b09";
+       libraryHaskellDepends = [ base optics-core strict ];
+       description = "Optics for types in strict package";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "strict-tuple" = callPackage
     ({ mkDerivation, base, bifunctors, deepseq, hashable }:
      mkDerivation {
@@ -238054,8 +243227,8 @@ self: {
        pname = "string-interpolate";
        version = "0.2.1.0";
        sha256 = "0wply8lqfhc1xnqxq88xwygwqxbq86gjrwphygbn7nz66g2abgda";
-       revision = "1";
-       editedCabalFile = "1xp470mrm3srvmvk6xznx9wim8xwsz93pskpv4hnk2ra3a7lr2lr";
+       revision = "2";
+       editedCabalFile = "00dsrl53aggn0d45cv3c7w6x82qhz3a059w957s9i3qdqfphbvx9";
        libraryHaskellDepends = [
          base bytestring haskell-src-exts haskell-src-meta split
          template-haskell text text-conversions utf8-string
@@ -238073,6 +243246,37 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "string-interpolate_0_3_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, deepseq, formatting
+     , haskell-src-exts, haskell-src-meta, hspec, hspec-core
+     , interpolate, neat-interpolation, QuickCheck, quickcheck-instances
+     , quickcheck-text, quickcheck-unicode, split, template-haskell
+     , text, text-conversions, unordered-containers, utf8-string
+     }:
+     mkDerivation {
+       pname = "string-interpolate";
+       version = "0.3.0.0";
+       sha256 = "0h7lqr5g11pr9ikzg7j26fgj9m8659j1vpcwggvndv6k71sh281a";
+       revision = "1";
+       editedCabalFile = "0id31zpxvmgs63acy3lx8myms5i8w70cfr1dx5yryzy5l66vaq0w";
+       libraryHaskellDepends = [
+         base bytestring haskell-src-exts haskell-src-meta split
+         template-haskell text text-conversions utf8-string
+       ];
+       testHaskellDepends = [
+         base bytestring hspec hspec-core QuickCheck quickcheck-instances
+         quickcheck-text quickcheck-unicode template-haskell text
+         unordered-containers
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion deepseq formatting interpolate
+         neat-interpolation QuickCheck text
+       ];
+       description = "Haskell string/text/bytestring interpolation that just works";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "string-isos" = callPackage
     ({ mkDerivation, base, bytestring, mono-traversable, safe, text
      , type-iso
@@ -238134,8 +243338,8 @@ self: {
      }:
      mkDerivation {
        pname = "string-random";
-       version = "0.1.2.0";
-       sha256 = "1jw05cvzzmma28xvak517y8gb7gjsdmr5iafgz5snxikcjzav0l2";
+       version = "0.1.3.0";
+       sha256 = "18yni8zm51x65i5h1c4sr9msd5fqa3fnh3zm0dck2wk364xz7dsy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -238358,8 +243562,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-core";
-       version = "2.5.0";
-       sha256 = "06b5qx20zkvaqvn98jqmq0vqrpkgfvab5wjq7lwlcdm9nn7nrsgi";
+       version = "2.6.2";
+       sha256 = "00bjr71lawn1ar18vm3p849ffr6r6fmgwn2ksg4vas5rmmy2vwib";
        libraryHaskellDepends = [
          aeson base bytestring mtl text time transformers
          unordered-containers
@@ -238374,8 +243578,8 @@ self: {
     ({ mkDerivation, base, stripe-core, stripe-http-client }:
      mkDerivation {
        pname = "stripe-haskell";
-       version = "2.5.0";
-       sha256 = "0qazqygkg6hlfvz6wg3gk2am7qnxzsfqjqh6mgyandz9l141pyx5";
+       version = "2.6.2";
+       sha256 = "02ydf9i632r2clhvf1f9v0yx7vmpmh37mch1jshazrw3my6sq1vl";
        libraryHaskellDepends = [ base stripe-core stripe-http-client ];
        description = "Stripe API for Haskell";
        license = stdenv.lib.licenses.mit;
@@ -238389,8 +243593,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-http-client";
-       version = "2.5.0";
-       sha256 = "1386d2bhql56kazxx89icl1j5ikhhza2cv934x19s5lqsl8089yi";
+       version = "2.6.2";
+       sha256 = "0xz8dc2mh5mscc3mp5n4h2sch1winpaf7sy1w4s87vv68304jfg3";
        libraryHaskellDepends = [
          aeson base bytestring http-client http-client-tls http-types
          stripe-core text
@@ -238440,6 +243644,8 @@ self: {
        ];
        description = "Listen for Stripe webhook events with Scotty";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "stripe-signature" = callPackage
@@ -238457,6 +243663,27 @@ self: {
        testHaskellDepends = [ base bytestring text ];
        description = "Verification of Stripe webhook signatures";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "stripe-signature_1_0_0_6" = callPackage
+    ({ mkDerivation, base, base16-bytestring, bytestring, cryptonite
+     , memory, stripe-concepts, text
+     }:
+     mkDerivation {
+       pname = "stripe-signature";
+       version = "1.0.0.6";
+       sha256 = "0lp3fli9g5yvlxy8f0md2d3wv6z45mw0929b8c0y2xkcsdjvpp5l";
+       libraryHaskellDepends = [
+         base base16-bytestring bytestring cryptonite memory stripe-concepts
+         text
+       ];
+       testHaskellDepends = [ base bytestring text ];
+       description = "Verification of Stripe webhook signatures";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "stripe-tests" = callPackage
@@ -238466,8 +243693,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-tests";
-       version = "2.5.0";
-       sha256 = "0jqxzdriaysf2lya8p9lc1ind2m4b4nz15dn7vb3sx74vw6lp4s3";
+       version = "2.6.2";
+       sha256 = "06r1jyf6rjmnd6p2grfs0s0f5x6sswsxw9ip7x81rh9cz5qdshdg";
        libraryHaskellDepends = [
          aeson base bytestring free hspec hspec-core mtl random stripe-core
          text time transformers unordered-containers
@@ -238909,8 +244136,8 @@ self: {
      }:
      mkDerivation {
        pname = "stylish-haskell";
-       version = "0.11.0.0";
-       sha256 = "124dn46ddxfcjyrmwjwijqan0dd55zzx9nwckg1df8b6al6k0x3j";
+       version = "0.11.0.3";
+       sha256 = "10svl5q95n9i76rqvlxibi784qzvdyg8qfl1xwk7c32y84nyfibn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -239317,6 +244544,18 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "summer" = callPackage
+    ({ mkDerivation, base, vector }:
+     mkDerivation {
+       pname = "summer";
+       version = "0.1.2.0";
+       sha256 = "1xcfw3f4y53a9jdj2a7jy32pp5pcvqsv78gblkjj1bxvsijwa4ab";
+       libraryHaskellDepends = [ base vector ];
+       testHaskellDepends = [ base ];
+       description = "An implementation of extensible products and sums";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "summoner" = callPackage
     ({ mkDerivation, aeson, base, colourista, containers, directory
      , filepath, generic-data, gitrev, hedgehog, hspec, hspec-hedgehog
@@ -239542,8 +244781,6 @@ self: {
        ];
        description = "Efficiently build a bytestring from smaller chunks";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "supercollider-ht" = callPackage
@@ -239666,6 +244903,26 @@ self: {
        broken = true;
      }) {};
 
+  "supernova" = callPackage
+    ({ mkDerivation, aeson, async, base, bifunctor, binary, bytestring
+     , crc32c, exceptions, lens-family-core, logging, managed, network
+     , proto-lens, proto-lens-runtime, streamly, text, unliftio
+     }:
+     mkDerivation {
+       pname = "supernova";
+       version = "0.0.2";
+       sha256 = "0nqylb2qqqyxqw2f9smdl3hiv4kbi8hphxndp4v1yx3hq3zhdbjj";
+       libraryHaskellDepends = [
+         base bifunctor binary bytestring crc32c exceptions lens-family-core
+         logging managed network proto-lens proto-lens-runtime text unliftio
+       ];
+       testHaskellDepends = [ aeson async base bytestring streamly text ];
+       description = "Apache Pulsar client for Haskell";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "supero" = callPackage
     ({ mkDerivation, base, containers, cpphs, directory, filepath
      , haskell-src-exts, mtl, process, time, uniplate
@@ -240260,6 +245517,28 @@ self: {
        broken = true;
      }) {};
 
+  "sweet-egison" = callPackage
+    ({ mkDerivation, backtracking, base, criterion, egison-pattern-src
+     , egison-pattern-src-th-mode, haskell-src-exts, haskell-src-meta
+     , logict, primes, tasty, tasty-discover, tasty-hunit
+     , template-haskell, transformers
+     }:
+     mkDerivation {
+       pname = "sweet-egison";
+       version = "0.1.1.0";
+       sha256 = "1zd1l2gbg7dp53d4jzki6k8jqxdvqgy5gl6jdy325hx1fycrixql";
+       libraryHaskellDepends = [
+         backtracking base egison-pattern-src egison-pattern-src-th-mode
+         haskell-src-exts haskell-src-meta logict template-haskell
+         transformers
+       ];
+       testHaskellDepends = [ base primes tasty tasty-hunit ];
+       testToolDepends = [ tasty-discover ];
+       benchmarkHaskellDepends = [ base criterion ];
+       description = "Shallow embedding implementation of non-linear pattern matching";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "swf" = callPackage
     ({ mkDerivation, base, mtl, pretty }:
      mkDerivation {
@@ -240297,8 +245576,8 @@ self: {
      }:
      mkDerivation {
        pname = "swish";
-       version = "0.10.0.3";
-       sha256 = "0cl34mqbda1k4spv86y8v5x0d89lv80b8dxymc7iw5hpjks1cdx3";
+       version = "0.10.0.4";
+       sha256 = "0rad5rx8hxh0ay4q0lfbn4jggvl3wf3chhjf34rpppzdd6b7r75m";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -240315,6 +245594,22 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {};
 
+  "swiss-ephemeris" = callPackage
+    ({ mkDerivation, base, directory, hspec, hspec-discover, QuickCheck
+     }:
+     mkDerivation {
+       pname = "swiss-ephemeris";
+       version = "0.2.0.0";
+       sha256 = "12va8a5brad7jqafvp1d4m3kvc0a00w2961jl0kyn4iq7kbgapdb";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base directory hspec QuickCheck ];
+       testToolDepends = [ hspec-discover ];
+       description = "Haskell bindings for the Swiss Ephemeris C library";
+       license = stdenv.lib.licenses.gpl2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "sws" = callPackage
     ({ mkDerivation, asn1-encoding, asn1-types, base, bytestring
      , containers, cryptonite, directory, filepath, hourglass
@@ -240503,6 +245798,40 @@ self: {
        broken = true;
      }) {};
 
+  "symantic-atom" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, hashable
+     , megaparsec, symantic-xml, tasty, tasty-golden, text, time
+     , transformers, treeseq
+     }:
+     mkDerivation {
+       pname = "symantic-atom";
+       version = "0.0.0.20200523";
+       sha256 = "05lw93cx4zpwy7mq4ad6ly2wl51japczxcpss64svklwl78awcz2";
+       libraryHaskellDepends = [
+         base containers megaparsec symantic-xml text time transformers
+         treeseq
+       ];
+       testHaskellDepends = [
+         base bytestring containers deepseq hashable megaparsec symantic-xml
+         tasty tasty-golden text time transformers treeseq
+       ];
+       description = "Library for reading and writing Atom";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "symantic-base" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "symantic-base";
+       version = "0.0.2.20200708";
+       sha256 = "1yvlvsr38b1ydplpz1jldy816sngmic273iajcmhr73rlyzk5y3d";
+       libraryHaskellDepends = [ base ];
+       description = "Basic symantics for writing Embedded Domain-Specific Languages (EDSL)";
+       license = stdenv.lib.licenses.gpl3;
+     }) {};
+
   "symantic-cli" = callPackage
     ({ mkDerivation, base, bytestring, containers, megaparsec
      , symantic-document, text, transformers
@@ -240704,25 +246033,25 @@ self: {
      }) {};
 
   "symantic-xml" = callPackage
-    ({ mkDerivation, base, bytestring, containers, data-default-class
-     , deepseq, filepath, hashable, hxt-charproperties, megaparsec, safe
-     , tasty, tasty-golden, text, transformers, treeseq
-     , unordered-containers
+    ({ mkDerivation, base, bytestring, containers, deepseq, hashable
+     , hxt-charproperties, megaparsec, symantic-base, tasty
+     , tasty-golden, text, transformers, treeseq, unordered-containers
      }:
      mkDerivation {
        pname = "symantic-xml";
-       version = "1.0.0.20190223";
-       sha256 = "0mqx0ysp9c4zzljjgl0w68k5r8qgv2h35cfq0mqvijcjq5dgiflp";
+       version = "2.0.0.20200523";
+       sha256 = "1fz68n63i32rkyvmz99wyg20xhdniqqm1fds0xn320gi2z35092b";
+       revision = "1";
+       editedCabalFile = "1dvfglys9jza910wr7r7kda1jisbk9gj3d6rfccaip78hyra1z8l";
        libraryHaskellDepends = [
-         base bytestring containers data-default-class filepath hashable
-         hxt-charproperties megaparsec safe text transformers treeseq
-         unordered-containers
+         base bytestring containers hashable hxt-charproperties megaparsec
+         symantic-base text transformers treeseq unordered-containers
        ];
        testHaskellDepends = [
-         base bytestring containers data-default-class deepseq filepath
-         hashable megaparsec tasty tasty-golden text transformers treeseq
+         base bytestring containers deepseq hashable megaparsec
+         symantic-base tasty tasty-golden text transformers treeseq
        ];
-       description = "Library for reading, validating and writing a subset of the XML format";
+       description = "Library for reading, validating and writing XML";
        license = stdenv.lib.licenses.gpl3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -240849,6 +246178,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "symmetry-operations-symbols" = callPackage
+    ({ mkDerivation, base, doctest, hspec, matrix, matrix-as-xyz
+     , parsec, QuickCheck
+     }:
+     mkDerivation {
+       pname = "symmetry-operations-symbols";
+       version = "0.0.2.1";
+       sha256 = "0y9m1z72kh8lhmig0lpp67p3s74s706y6lbzlr5hk47mpcw7fymh";
+       libraryHaskellDepends = [ base matrix matrix-as-xyz parsec ];
+       testHaskellDepends = [
+         base doctest hspec matrix matrix-as-xyz parsec QuickCheck
+       ];
+       description = "Derivation of symbols and coordinate triplets Library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "symon" = callPackage
     ({ mkDerivation, ansi-terminal, base, monad-loops, random }:
      mkDerivation {
@@ -242069,6 +247416,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "tabular_0_2_2_8" = callPackage
+    ({ mkDerivation, base, csv, html, mtl }:
+     mkDerivation {
+       pname = "tabular";
+       version = "0.2.2.8";
+       sha256 = "0z936gh8n8i8qdkagyxwd9gqq13skd5fv013vdvwsibrxkm0czfb";
+       libraryHaskellDepends = [ base csv html mtl ];
+       description = "Two-dimensional data tables with rendering functions";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "taffybar" = callPackage
     ({ mkDerivation, ansi-terminal, base, broadcast-chan, bytestring
      , ConfigFile, containers, dbus, dbus-hslogger, directory, dyre
@@ -242113,6 +247472,8 @@ self: {
        executablePkgconfigDepends = [ gtk3 ];
        description = "A desktop bar similar to xmobar, but with more GUI";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) gtk3;};
 
   "tag-bits" = callPackage
@@ -242883,6 +248244,8 @@ self: {
        pname = "tar-bytestring";
        version = "0.6.3.2";
        sha256 = "10jmxjs808n3vcp997d42dy6256j67rk729awiviv2i76r7anzlv";
+       revision = "1";
+       editedCabalFile = "04m7im7k9f0qqs5bin9zdgvn1cv45m08cffbli1wb25navnrpwl8";
        libraryHaskellDepends = [
          array base bytestring containers deepseq hpath-directory
          hpath-filepath hpath-posix safe-exceptions these time unix word8
@@ -243072,8 +248435,8 @@ self: {
      }:
      mkDerivation {
        pname = "taskell";
-       version = "1.9.3.0";
-       sha256 = "06pdfi5bw2ga0pizq01x35gp8f90c8gr4ivbm5k4a7xv6pwr8mf0";
+       version = "1.10.0";
+       sha256 = "14syiis60fds1r295d6nlvw0mn1d1d6ly0j69r9srbcbrbb2j7yw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -243090,8 +248453,6 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "A command-line kanban board/task manager";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "taskpool" = callPackage
@@ -243211,27 +248572,42 @@ self: {
        broken = true;
      }) {};
 
-  "tasty-dejafu" = callPackage
-    ({ mkDerivation, base, dejafu, random, tagged, tasty }:
+  "tasty-bdd" = callPackage
+    ({ mkDerivation, aeson, aeson-qq, base, exceptions, free, HUnit
+     , microlens, microlens-th, mtl, pretty, pretty-show
+     , qm-interpolated-string, regex-posix, tagged, tasty
+     , tasty-expected-failure, tasty-fail-fast, tasty-hunit, temporary
+     , text, transformers, tree-diff
+     }:
      mkDerivation {
-       pname = "tasty-dejafu";
-       version = "2.0.0.4";
-       sha256 = "0jryp6kndaaxfjd4vsws18igx9ivd36iqyqdbjpxmxbx34d1h6kn";
-       libraryHaskellDepends = [ base dejafu random tagged tasty ];
-       description = "Deja Fu support for the Tasty test framework";
-       license = stdenv.lib.licenses.mit;
+       pname = "tasty-bdd";
+       version = "0.1.0.1";
+       sha256 = "1da1983hampnkkm6kwxp8w1bkhzic27qbnkckkmsziaz8kbkhcpi";
+       libraryHaskellDepends = [
+         base exceptions free HUnit microlens microlens-th mtl pretty
+         pretty-show tagged tasty tasty-fail-fast tasty-hunit temporary text
+         transformers tree-diff
+       ];
+       testHaskellDepends = [
+         aeson aeson-qq base exceptions HUnit mtl qm-interpolated-string
+         regex-posix tasty tasty-expected-failure tasty-fail-fast
+         tasty-hunit temporary text transformers
+       ];
+       description = "BDD tests language and tasty provider";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
-  "tasty-dejafu_2_0_0_5" = callPackage
+  "tasty-dejafu" = callPackage
     ({ mkDerivation, base, dejafu, random, tagged, tasty }:
      mkDerivation {
        pname = "tasty-dejafu";
-       version = "2.0.0.5";
-       sha256 = "0yw4dsy6vcichr76da5rlw6y6g62kiagr9rqxlsxndgckb6bmyzf";
+       version = "2.0.0.6";
+       sha256 = "0iw7yqb52cxw3fgp9did73wk41c1jxvdxx4vg0rna32bc0d7rwyh";
        libraryHaskellDepends = [ base dejafu random tagged tasty ];
        description = "Deja Fu support for the Tasty test framework";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "tasty-discover" = callPackage
@@ -243273,6 +248649,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "tasty-expected-failure_0_12_1" = callPackage
+    ({ mkDerivation, base, hedgehog, tagged, tasty, tasty-golden
+     , tasty-hedgehog, tasty-hunit, unbounded-delays
+     }:
+     mkDerivation {
+       pname = "tasty-expected-failure";
+       version = "0.12.1";
+       sha256 = "1r4xljml8w55q6qpjj94ig2yic398624fld3dwjfcbaldgbacpmm";
+       libraryHaskellDepends = [ base tagged tasty unbounded-delays ];
+       testHaskellDepends = [
+         base hedgehog tasty tasty-golden tasty-hedgehog tasty-hunit
+       ];
+       description = "Mark tasty tests as failure expected";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "tasty-fail-fast" = callPackage
     ({ mkDerivation, base, containers, directory, stm, tagged, tasty
      , tasty-golden, tasty-hunit, tasty-tap
@@ -243365,8 +248758,8 @@ self: {
        pname = "tasty-hedgehog";
        version = "1.0.0.2";
        sha256 = "1vsv3m6brhshpqm8qixz97m7h0nx67cj6ira4cngbk7mf5rqylv5";
-       revision = "2";
-       editedCabalFile = "1v4jp3xk5ikik638vkyf2jxkhaf2n6fsw8zxqxxjv65x60082kl7";
+       revision = "4";
+       editedCabalFile = "0z47ssv9030px81sxivhw5jp7yfpr6r6anlf03slks31jkzvx4gl";
        libraryHaskellDepends = [ base hedgehog tagged tasty ];
        testHaskellDepends = [
          base hedgehog tasty tasty-expected-failure
@@ -243607,8 +249000,8 @@ self: {
      }:
      mkDerivation {
        pname = "tasty-lua";
-       version = "0.2.2";
-       sha256 = "0m75dffrj6ziaalrch91kzj76ki0chbf33pi7mrx0c1gzmpvn8gv";
+       version = "0.2.3";
+       sha256 = "0kpmp51wyqbjv3nsrnybpms7flsl2bznqp8gf27zv2f5kraa77vk";
        libraryHaskellDepends = [
          base bytestring file-embed hslua tasty text
        ];
@@ -244389,22 +249782,23 @@ self: {
 
   "telegram-bot-simple" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, cron
-     , hashable, http-api-data, http-client, http-client-tls
+     , filepath, hashable, http-api-data, http-client, http-client-tls
      , monad-control, mtl, pretty-show, profunctors, servant
-     , servant-client, split, stm, template-haskell, text, time
-     , transformers, unordered-containers
+     , servant-client, servant-multipart, split, stm, template-haskell
+     , text, time, transformers, unordered-containers
      }:
      mkDerivation {
        pname = "telegram-bot-simple";
-       version = "0.3.0";
-       sha256 = "196zb03nj37qfmxgn5lagjdl759bgmnr1vsh26dbbv1zsmlp0pva";
+       version = "0.3.1";
+       sha256 = "09r64kgvgc5xx4wa5mxlc6fi4cf5qa81j7334wr7niv88fs659yb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson aeson-pretty base bytestring cron hashable http-api-data
-         http-client http-client-tls monad-control mtl pretty-show
-         profunctors servant servant-client split stm template-haskell text
-         time transformers unordered-containers
+         aeson aeson-pretty base bytestring cron filepath hashable
+         http-api-data http-client http-client-tls monad-control mtl
+         pretty-show profunctors servant servant-client servant-multipart
+         split stm template-haskell text time transformers
+         unordered-containers
        ];
        executableHaskellDepends = [
          aeson aeson-pretty base bytestring cron hashable http-api-data
@@ -244608,11 +250002,38 @@ self: {
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "template-haskell-compat-v0208";
-       version = "0.1.2.1";
-       sha256 = "1c8m1z46j6azvxd6hrr76rb7gq6bxfwg3j8m25p260hrss595c06";
+       version = "0.1.4";
+       sha256 = "0byc81m07v5a765vs4jpwgmgkf54c2n5yaqz8ava1sspmmf2p9fh";
+       libraryHaskellDepends = [ base template-haskell ];
+       description = "A backwards compatibility layer for Template Haskell newer than 2.8";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "template-haskell-compat-v0208_0_1_5" = callPackage
+    ({ mkDerivation, base, template-haskell }:
+     mkDerivation {
+       pname = "template-haskell-compat-v0208";
+       version = "0.1.5";
+       sha256 = "1s1ynp568i7y5v062kliia46c3cmaijslf2hlmdkkqfdvf8fmzp1";
        libraryHaskellDepends = [ base template-haskell ];
        description = "A backwards compatibility layer for Template Haskell newer than 2.8";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "template-haskell-optics" = callPackage
+    ({ mkDerivation, base, containers, optics-core, template-haskell }:
+     mkDerivation {
+       pname = "template-haskell-optics";
+       version = "0.1";
+       sha256 = "019njh3w321dsyx892snxl16arypf04mw415s8f1771wcd3l4q8n";
+       libraryHaskellDepends = [
+         base containers optics-core template-haskell
+       ];
+       description = "Optics for template-haskell types";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "template-haskell-util" = callPackage
@@ -245237,13 +250658,12 @@ self: {
     ({ mkDerivation, array, base, c2hs }:
      mkDerivation {
        pname = "termbox";
-       version = "0.2.0";
-       sha256 = "04y1wj65c6nhv08jd83ihvph45fs5279px4ivm5cinnz5m721jqg";
+       version = "0.2.0.1";
+       sha256 = "0rqlhinc1vmxnmwxrcv5rb78j3jmp6iwfcabzf95nhclvjhdadr8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ array base ];
        libraryToolDepends = [ c2hs ];
-       executableHaskellDepends = [ base ];
        description = "termbox bindings";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -245430,14 +250850,13 @@ self: {
      , focuslist, genvalidity-containers, genvalidity-hspec, gi-gdk
      , gi-gio, gi-glib, gi-gtk, gi-pango, gi-vte, gtk3, haskell-gi-base
      , hedgehog, inline-c, lens, mono-traversable, pcre2, pretty-simple
-     , QuickCheck, singletons, tasty, tasty-hedgehog, tasty-hspec
-     , template-haskell, text, transformers, vte_291, xml-conduit
-     , xml-html-qq, yaml
+     , QuickCheck, tasty, tasty-hedgehog, tasty-hspec, template-haskell
+     , text, transformers, vte_291, xml-conduit, xml-html-qq, yaml
      }:
      mkDerivation {
        pname = "termonad";
-       version = "3.1.0.1";
-       sha256 = "0arh308hyv6jxj6sjscfdi5n35n4mcxc8kqrjlk6054lm4b9yhxx";
+       version = "4.0.0.1";
+       sha256 = "0axsmlly8qa5rpakkp1iryypgzswpqjphcl0mgvwa34dsh2hqmyn";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -245447,8 +250866,7 @@ self: {
          data-default directory distributive dyre file-embed filepath
          focuslist gi-gdk gi-gio gi-glib gi-gtk gi-pango gi-vte
          haskell-gi-base inline-c lens mono-traversable pretty-simple
-         QuickCheck singletons text transformers xml-conduit xml-html-qq
-         yaml
+         QuickCheck text transformers xml-conduit xml-html-qq yaml
        ];
        libraryPkgconfigDepends = [ gtk3 pcre2 vte_291 ];
        executableHaskellDepends = [ base ];
@@ -245458,7 +250876,6 @@ self: {
        ];
        description = "Terminal emulator configurable in Haskell";
        license = stdenv.lib.licenses.bsd3;
-       maintainers = with stdenv.lib.maintainers; [ cdepillabout ];
      }) {inherit (pkgs) gtk3; inherit (pkgs) pcre2; 
          vte_291 = pkgs.vte;};
 
@@ -246082,6 +251499,30 @@ self: {
        broken = true;
      }) {};
 
+  "testcontainers" = callPackage
+    ({ mkDerivation, aeson, aeson-optics, base, bytestring, exceptions
+     , hspec, hspec-discover, mtl, network, optics-core, process
+     , resourcet, tasty, tasty-discover, tasty-hspec, tasty-hunit, text
+     , unliftio-core
+     }:
+     mkDerivation {
+       pname = "testcontainers";
+       version = "0.2.0.0";
+       sha256 = "0drdi2qqgiw499lwvkdc5yn8x7mys6l4p47jcz0af62fczpa5dnh";
+       libraryHaskellDepends = [
+         aeson aeson-optics base bytestring exceptions mtl network
+         optics-core process resourcet tasty text unliftio-core
+       ];
+       testHaskellDepends = [
+         base hspec tasty tasty-discover tasty-hspec tasty-hunit text
+       ];
+       testToolDepends = [ hspec-discover tasty-discover ];
+       description = "Docker containers for your integration tests";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "testing-feat" = callPackage
     ({ mkDerivation, base, QuickCheck, size-based
      , testing-type-modifiers
@@ -247043,8 +252484,8 @@ self: {
      }:
      mkDerivation {
        pname = "text-time";
-       version = "0.2.0";
-       sha256 = "14pk5h7mswdr6dpiw7m4z64dadgrdpw77inyq6kmwaskqc1whqng";
+       version = "0.3.1";
+       sha256 = "1p0vdhvpcz07wiam3hsi7fixknb6shxlhvg624vksacg06qkck41";
        libraryHaskellDepends = [ attoparsec base formatting text time ];
        testHaskellDepends = [
          attoparsec base Cabal formatting hspec QuickCheck text time
@@ -248004,25 +253445,26 @@ self: {
      }) {};
 
   "themoviedb" = callPackage
-    ({ mkDerivation, aeson, base, binary, bytestring, http-client
-     , http-client-tls, http-types, mtl, tasty, tasty-hunit, text
-     , text-binary, time, time-locale-compat, transformers
+    ({ mkDerivation, aeson, base, http-client, http-client-tls
+     , http-types, mtl, relude, tasty, tasty-hunit, text, time
      }:
      mkDerivation {
        pname = "themoviedb";
-       version = "1.1.5.2";
-       sha256 = "0pp603wvq03m56w0y12abjqbfv712aj3k6ki69jq60l9pxj4nni4";
+       version = "1.2.0.0";
+       sha256 = "1dchnsk9mx2v01apj5ilnsl3w9vj6f5pkqrm9701zw7rcp7xds0w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base binary bytestring http-client http-client-tls http-types
-         mtl text text-binary time time-locale-compat transformers
+         aeson base http-client http-client-tls http-types mtl relude text
+         time
        ];
        executableHaskellDepends = [
-         base text time time-locale-compat transformers
+         aeson base http-client http-client-tls http-types mtl relude text
+         time
        ];
        testHaskellDepends = [
-         base bytestring tasty tasty-hunit text time
+         aeson base http-client http-client-tls http-types mtl relude tasty
+         tasty-hunit text time
        ];
        description = "Haskell API bindings for http://themoviedb.org";
        license = stdenv.lib.licenses.mit;
@@ -248105,29 +253547,23 @@ self: {
      }) {};
 
   "these" = callPackage
-    ({ mkDerivation, assoc, base, base-compat, binary, deepseq
-     , hashable
-     }:
+    ({ mkDerivation, assoc, base, binary, deepseq, hashable }:
      mkDerivation {
        pname = "these";
-       version = "1.1";
-       sha256 = "0dxi9jwahibn2sgnqsr5kgm91i2nqibzc4r4s04jwwpjwhcyn2xv";
-       libraryHaskellDepends = [
-         assoc base base-compat binary deepseq hashable
-       ];
+       version = "1.1.1.1";
+       sha256 = "027m1gd7i6jf2ppfkld9qrv3xnxg276587pmx10z9phpdvswk66p";
+       libraryHaskellDepends = [ assoc base binary deepseq hashable ];
        description = "An either-or-both data type";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
   "these-lens" = callPackage
-    ({ mkDerivation, base, base-compat, lens, these }:
+    ({ mkDerivation, base, lens, these }:
      mkDerivation {
        pname = "these-lens";
-       version = "1";
-       sha256 = "144ly13qng95mwnfis8dm7n3843z3w2vp4212qawbpw8hw921c7y";
-       revision = "3";
-       editedCabalFile = "0nb0irhnj9xvhnyl13bmp86my0idhhqslmszi3jvggr5sk3jzi8a";
-       libraryHaskellDepends = [ base base-compat lens these ];
+       version = "1.0.0.1";
+       sha256 = "15c05lgmlfm1pijsa3gfvmrsgmbfl5f7mpzzqasm72ip7y8la696";
+       libraryHaskellDepends = [ base lens these ];
        description = "Lenses for These";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -248237,14 +253673,15 @@ self: {
      }) {};
 
   "thread-hierarchy" = callPackage
-    ({ mkDerivation, base, containers, hspec, stm }:
+    ({ mkDerivation, base, containers, hspec, hspec-discover, stm }:
      mkDerivation {
        pname = "thread-hierarchy";
-       version = "0.3.0.1";
-       sha256 = "0d2wbm75f59vj1h18afdhb1wqyclv5gpgj6pyrhbcnf7aa2490c1";
+       version = "0.3.0.2";
+       sha256 = "1bhx1s7xwf4gb8qjbbifwl5cq3gfc1girrmzm4vr0fj05myk9xph";
        libraryHaskellDepends = [ base containers stm ];
        testHaskellDepends = [ base containers hspec stm ];
-       description = "Simple Haskel thread management in hierarchical manner";
+       testToolDepends = [ hspec-discover ];
+       description = "Simple Haskell thread management in hierarchical manner";
        license = stdenv.lib.licenses.mit;
      }) {};
 
@@ -248263,20 +253700,41 @@ self: {
 
   "thread-supervisor" = callPackage
     ({ mkDerivation, base, clock, containers, data-default, hspec
-     , QuickCheck, unliftio
+     , hspec-discover, QuickCheck, unliftio
      }:
      mkDerivation {
        pname = "thread-supervisor";
-       version = "0.1.0.0";
-       sha256 = "1gn2h4c84fdhppwjzkj9sr2rggc5q7193lf1n8c6ggzz6k2cj2rs";
+       version = "0.1.0.1";
+       sha256 = "0x10i81cvp5m5rx48mdhrxcs5rpcmbr2xrv3aq9s3lqdchy2vqzy";
+       libraryHaskellDepends = [
+         base clock containers data-default unliftio
+       ];
+       testHaskellDepends = [
+         base clock data-default hspec QuickCheck unliftio
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "A simplified implementation of Erlang/OTP like supervisor over thread";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "thread-supervisor_0_2_0_0" = callPackage
+    ({ mkDerivation, base, clock, containers, data-default, hspec
+     , hspec-discover, QuickCheck, unliftio
+     }:
+     mkDerivation {
+       pname = "thread-supervisor";
+       version = "0.2.0.0";
+       sha256 = "1k42k6c2h0xs7h4gcfsjghr5jp1q2w7ay1drlfw2ghl8zmfh2pnv";
        libraryHaskellDepends = [
          base clock containers data-default unliftio
        ];
        testHaskellDepends = [
          base clock data-default hspec QuickCheck unliftio
        ];
+       testToolDepends = [ hspec-discover ];
        description = "A simplified implementation of Erlang/OTP like supervisor over thread";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "threadPool" = callPackage
@@ -249728,8 +255186,8 @@ self: {
      }:
      mkDerivation {
        pname = "timers";
-       version = "0.2.0.3";
-       sha256 = "0q4w41jdhf5ildcdl94lgfn06fg275hf04dpah3l6vva24d8alj5";
+       version = "0.2.0.4";
+       sha256 = "031jladbn54gr5jcljpw5r1hr82403gd6g9vszcv2pj8z82p21ab";
        libraryHaskellDepends = [
          base lifted-base monad-control suspend transformers-base
        ];
@@ -249856,6 +255314,27 @@ self: {
        broken = true;
      }) {};
 
+  "timezone-detect" = callPackage
+    ({ mkDerivation, base, directory, hspec, hspec-discover, time
+     , timezone-olson, timezone-series
+     }:
+     mkDerivation {
+       pname = "timezone-detect";
+       version = "0.3.0.0";
+       sha256 = "10pv88wmz8zqr1h3zh66skbkma2zz3gvwjaalnpfz5ii2dgl27yy";
+       libraryHaskellDepends = [
+         base time timezone-olson timezone-series
+       ];
+       testHaskellDepends = [
+         base directory hspec time timezone-olson timezone-series
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Haskell bindings for the zone-detect C library; plus tz-aware utils";
+       license = stdenv.lib.licenses.gpl2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "timezone-olson" = callPackage
     ({ mkDerivation, base, binary, bytestring, extensible-exceptions
      , time, timezone-series
@@ -249932,6 +255411,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "tini" = callPackage
+    ({ mkDerivation, base, QuickCheck }:
+     mkDerivation {
+       pname = "tini";
+       version = "0.1.0.0";
+       sha256 = "0y0z2jqgkvfp1sk9ba5v46acdfa7q8kyhlwavknmjpmx3h82yjv6";
+       revision = "1";
+       editedCabalFile = "1s9drf14xkvrjdm7bd8k9swy0bvxxwfirmjzdwj96qmmrfjsrm83";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base QuickCheck ];
+       description = "Tiny INI file and configuration library with a minimal dependency footprint";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "tintin" = callPackage
     ({ mkDerivation, base, clay, containers, data-has, directory
      , frontmatter, inflections, inliterate, lucid, optparse-generic
@@ -250288,6 +255783,29 @@ self: {
        broken = true;
      }) {};
 
+  "tldr_0_8_0" = callPackage
+    ({ mkDerivation, ansi-terminal, base, bytestring, cmark, containers
+     , directory, filepath, optparse-applicative, semigroups, tasty
+     , tasty-golden, text, typed-process
+     }:
+     mkDerivation {
+       pname = "tldr";
+       version = "0.8.0";
+       sha256 = "02by0mj2mk2k8xwcn92zd0cns8fj6fibi0wx5h2zlnm5aj53nffv";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-terminal base bytestring cmark containers directory filepath
+         optparse-applicative semigroups text typed-process
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [ base tasty tasty-golden ];
+       description = "Haskell tldr client";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "tls" = callPackage
     ({ mkDerivation, asn1-encoding, asn1-types, async, base, bytestring
      , cereal, cryptonite, data-default-class, gauge, hourglass, memory
@@ -250371,32 +255889,25 @@ self: {
      }) {};
 
   "tlynx" = callPackage
-    ({ mkDerivation, aeson, array, base, bytestring, comonad
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, comonad
      , containers, elynx-tools, elynx-tree, gnuplot, lifted-async
-     , megaparsec, monad-logger, mwc-random, optparse-applicative
-     , parallel, primitive, scientific, statistics, text, transformers
-     , vector
+     , monad-logger, mwc-random, optparse-applicative, parallel
+     , statistics, text, transformers, vector
      }:
      mkDerivation {
        pname = "tlynx";
-       version = "0.2.2";
-       sha256 = "0hf70zvcndjmlwbd2n2ncbl89xi2xmkr7ymq48hmdlg3vp0bdz62";
+       version = "0.4.0";
+       sha256 = "1gsyyw8bvlc15z6hy7cd9w6v6wgjg9ra19w9vp6kajlyzyw5j1kw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson array base bytestring comonad containers elynx-tools
-         elynx-tree gnuplot lifted-async megaparsec monad-logger mwc-random
-         optparse-applicative parallel primitive scientific statistics text
-         transformers vector
-       ];
-       executableHaskellDepends = [
-         aeson array base bytestring comonad containers elynx-tools gnuplot
-         lifted-async megaparsec monad-logger mwc-random
-         optparse-applicative parallel primitive scientific statistics text
-         transformers vector
+         aeson attoparsec base bytestring comonad containers elynx-tools
+         elynx-tree gnuplot lifted-async monad-logger mwc-random
+         optparse-applicative parallel statistics text transformers vector
        ];
+       executableHaskellDepends = [ base ];
        description = "Handle phylogenetic trees";
-       license = stdenv.lib.licenses.gpl3;
+       license = stdenv.lib.licenses.gpl3Plus;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -250692,8 +256203,8 @@ self: {
        pname = "token-bucket";
        version = "0.1.0.1";
        sha256 = "1l3axqdkrjf28pxhrvdvlpf9wi79czsfvhi33w4v2wbj0g00j9ii";
-       revision = "5";
-       editedCabalFile = "049d9bk5f8qa6d7gjgg4nqd56xz1mrxr1rxcwxsrk4vkqcpmzs6q";
+       revision = "6";
+       editedCabalFile = "15p4iycphz4q58kgq00kmz0ik0hzv3vx47k2dkp93xavb0dny46v";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base time ];
        description = "Rate limiter using lazy bucket algorithm";
@@ -251203,8 +256714,8 @@ self: {
      }:
      mkDerivation {
        pname = "toolshed";
-       version = "0.18.0.1";
-       sha256 = "0sw7fxcqr1pfb7kjzvra56ji6nl02175rscb1s4bvw6rrq7xjb6v";
+       version = "0.18.0.2";
+       sha256 = "0iaq3fgx67w7jf3qc5rvxsnbc0y159psqd44klhm8lyvdb6rd4kh";
        libraryHaskellDepends = [
          array base containers data-default deepseq directory filepath
          QuickCheck random
@@ -251764,6 +257275,29 @@ self: {
        broken = true;
      }) {};
 
+  "tracing-control" = callPackage
+    ({ mkDerivation, aeson, base, base16-bytestring, bytestring
+     , case-insensitive, containers, hspec, http-client, lifted-base
+     , monad-control, mtl, network, random, stm, stm-lifted, text, time
+     , transformers, transformers-base
+     }:
+     mkDerivation {
+       pname = "tracing-control";
+       version = "0.0.6";
+       sha256 = "06hw4199yggvqlg3f1qhf67x8ij3v4kj5l79rhnngsqkpgl1yaww";
+       libraryHaskellDepends = [
+         aeson base base16-bytestring bytestring case-insensitive containers
+         http-client lifted-base monad-control mtl network random stm
+         stm-lifted text time transformers transformers-base
+       ];
+       testHaskellDepends = [
+         base containers hspec lifted-base monad-control mtl stm stm-lifted
+         text
+       ];
+       description = "Distributed tracing";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "tracked-files" = callPackage
     ({ mkDerivation, base, directory, hspec, process, text }:
      mkDerivation {
@@ -251850,6 +257384,40 @@ self: {
        broken = true;
      }) {};
 
+  "trade-journal" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cassava, containers
+     , data-default, gmp, hedgehog, here, HUnit, lens, megaparsec, mpfr
+     , mtl, optparse-applicative, pretty, pretty-show, profunctors
+     , split, tasty, tasty-hedgehog, tasty-hunit, text, time
+     , transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "trade-journal";
+       version = "0.0.1";
+       sha256 = "1zmpqwrgwf26l9gwcavhgq8d9w0bc9c5sjqkr0i7d1rbiqiqf94j";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring cassava containers data-default lens
+         megaparsec mtl pretty pretty-show profunctors split text time
+         transformers unordered-containers vector
+       ];
+       librarySystemDepends = [ gmp mpfr ];
+       executableHaskellDepends = [
+         aeson base bytestring cassava containers lens megaparsec mtl
+         optparse-applicative pretty-show text time transformers
+         unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring cassava containers hedgehog here HUnit lens
+         megaparsec mtl pretty-show tasty tasty-hedgehog tasty-hunit text
+         time transformers unordered-containers
+       ];
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) gmp; inherit (pkgs) mpfr;};
+
   "traildb" = callPackage
     ({ mkDerivation, base, bytestring, cereal, containers, criterion
      , deepseq, directory, exceptions, Judy, primitive, profunctors
@@ -252068,8 +257636,8 @@ self: {
      }:
      mkDerivation {
        pname = "transformers-abort";
-       version = "0.6.0.1";
-       sha256 = "0qd4nzrmp03mbikwmvabbygx3dv9c2v7lpp2cvrz96y9gj0a3k2a";
+       version = "0.6.0.3";
+       sha256 = "0svqpgwkg06k2hnhxxlx4nwn45r52azqa2gnrz8j538k75kzlglq";
        libraryHaskellDepends = [
          base monad-control pointed semigroupoids transformers
          transformers-base
@@ -252271,20 +257839,20 @@ self: {
      }) {};
 
   "transient" = callPackage
-    ({ mkDerivation, atomic-primops, base, bytestring, containers
-     , directory, mtl, primitive, random, stm, time, transformers
+    ({ mkDerivation, base, bytestring, containers, directory, mtl
+     , random, stm, time, transformers
      }:
      mkDerivation {
        pname = "transient";
-       version = "0.6.3";
-       sha256 = "02zy60hilgagxa08j7bvd35wkpap5dzffc5af258hxiy0gdpdw0a";
+       version = "0.7.0.0";
+       sha256 = "11hiywgfv73bf128dd7h48790d356hl39fx3s54x3cri3gymwkkd";
        libraryHaskellDepends = [
-         atomic-primops base bytestring containers directory mtl primitive
-         random stm time transformers
+         base bytestring containers directory mtl random stm time
+         transformers
        ];
        testHaskellDepends = [
-         atomic-primops base bytestring containers directory mtl random stm
-         time transformers
+         base bytestring containers directory mtl random stm time
+         transformers
        ];
        description = "composing programs with multithreading, events and distributed computing";
        license = stdenv.lib.licenses.mit;
@@ -252293,34 +257861,37 @@ self: {
      }) {};
 
   "transient-universe" = callPackage
-    ({ mkDerivation, base, bytestring, case-insensitive, containers
-     , directory, filepath, hashable, HTTP, iproute, mtl, network
-     , network-info, network-uri, process, random, stm, TCache, text
-     , time, transformers, transient, vector, websockets
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
+     , case-insensitive, containers, directory, filepath, hashable, HTTP
+     , iproute, mtl, network, network-info, network-uri, old-time
+     , process, random, stm, TCache, text, time, transformers, transient
+     , vector, websockets
      }:
      mkDerivation {
        pname = "transient-universe";
-       version = "0.5.0.0";
-       sha256 = "1d3bp4xjpi28ph7fa9wm49ssg53jfvlq77ka0zvrkilw1j6f8v3l";
+       version = "0.6.0.1";
+       sha256 = "1dhgp2z0q90pnz13s88pbg6ppwl9ic7g04ikla3hg2jh019lgb1r";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bytestring case-insensitive containers directory filepath
-         hashable HTTP iproute mtl network network-info network-uri process
-         random stm TCache text time transformers transient vector
-         websockets
+         aeson base base64-bytestring bytestring case-insensitive containers
+         directory filepath hashable HTTP iproute mtl network network-info
+         network-uri old-time process random stm TCache text time
+         transformers transient vector websockets
        ];
        executableHaskellDepends = [
-         base bytestring case-insensitive containers directory filepath
-         hashable HTTP mtl network network-info network-uri process random
-         stm TCache text time transformers transient vector websockets
+         aeson base base64-bytestring bytestring case-insensitive containers
+         directory filepath hashable HTTP mtl network network-info
+         network-uri old-time process random stm TCache text time
+         transformers transient vector websockets
        ];
        testHaskellDepends = [
-         base bytestring case-insensitive containers directory filepath
-         hashable HTTP mtl network network-info network-uri process random
-         stm TCache text time transformers transient vector websockets
+         aeson base base64-bytestring bytestring case-insensitive containers
+         directory filepath hashable HTTP mtl network network-info
+         network-uri old-time process random stm TCache text time
+         transformers transient vector websockets
        ];
-       description = "Remote execution and map-reduce: distributed computing for Transient";
+       description = "fully composable remote execution for the creation of distributed systems";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -252678,8 +258249,8 @@ self: {
        pname = "tree-diff";
        version = "0.1";
        sha256 = "1156nbqn0pn9lp4zjsy4vv5g5wmy4zxwmbqdgvq349rydynh3ng3";
-       revision = "4";
-       editedCabalFile = "0zl94ppd94szvmqa7vnpbcr2zfppbqm4k6isidzks2mz2ji9dc1i";
+       revision = "5";
+       editedCabalFile = "1b60x9cgp7hn42hc97q866ybhg5hx3sp45j6gngpbwryg29r2p4h";
        libraryHaskellDepends = [
          aeson ansi-terminal ansi-wl-pprint base base-compat bytestring
          bytestring-builder containers hashable parsec parsers pretty
@@ -252732,17 +258303,16 @@ self: {
      }) {};
 
   "tree-sitter" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, directory
-     , filepath, fused-effects, hedgehog, split, template-haskell, text
-     , unordered-containers
+    ({ mkDerivation, base, bytestring, containers, directory, filepath
+     , hedgehog, split, template-haskell, unordered-containers
      }:
      mkDerivation {
        pname = "tree-sitter";
-       version = "0.9.0.1";
-       sha256 = "1khkc2v87i9vgbakc3gh1rmrakz43n4lglx50vvckp192in4svzm";
+       version = "0.9.0.2";
+       sha256 = "1jw70m7z7yj4d2ivgynh8z7n5ndd978r21012hxj93sy87axz7mf";
        libraryHaskellDepends = [
-         aeson base bytestring containers directory filepath fused-effects
-         split template-haskell text unordered-containers
+         base bytestring containers directory filepath split
+         template-haskell unordered-containers
        ];
        testHaskellDepends = [ base hedgehog ];
        description = "Unstable bindings for the tree-sitter parsing library";
@@ -252753,8 +258323,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-go";
-       version = "0.5.0.1";
-       sha256 = "0v6vk0nqalk01xl0nmjmy4m14wmdij1cd1gs93is3gc3wvj0ljin";
+       version = "0.5.0.2";
+       sha256 = "0zl8q96xffi4cqd3yl44x64q9440qragg8735lzwwfl8nayx78bj";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for Go";
@@ -252765,8 +258335,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-haskell";
-       version = "0.3.0.0";
-       sha256 = "1hkxlhx3bm78p133cvimqjr8gl0arxdch0j33pz4dfg6fs8wbx1z";
+       version = "0.3.0.1";
+       sha256 = "194rws181v8pv3w9zxx9h8fqnilivwrdw27hwlps30kmmk26rraq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base tree-sitter ];
@@ -252778,8 +258348,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-java";
-       version = "0.7.0.1";
-       sha256 = "1z2x6nyl57xrnyf2jbkypg5zf8cw3rv9788piil6c30cyimbay4r";
+       version = "0.7.0.2";
+       sha256 = "1im1cwf20f02i244ggb5xl1cblkxr4rjk5h1c91vhzfv1hja37sn";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for Java";
@@ -252790,8 +258360,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-json";
-       version = "0.7.0.1";
-       sha256 = "1rb5g43z318pkwj4g4zqknxad3gwjpadr20vr3x6pif8zn5fc5ib";
+       version = "0.7.0.2";
+       sha256 = "02ly1dj4l8l1cvi5ymwqv85l0jdq9dixcpgqgyy1d744d214gg4g";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for JSON";
@@ -252802,8 +258372,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-php";
-       version = "0.5.0.0";
-       sha256 = "18qjr4hm8v3kg9933y7g96cj76qfw38ca825j90bg8yfiya5186p";
+       version = "0.5.0.1";
+       sha256 = "05nfsw1mk27xiqr9ca8bky437xqin4zqb1mammcjpyi9qif9zzbh";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for PHP";
@@ -252814,8 +258384,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-python";
-       version = "0.9.0.2";
-       sha256 = "08k54r62hgdb2gpn8gv4nnr8sflcrkpfd1hmmzb552wzkaca9b1n";
+       version = "0.9.0.3";
+       sha256 = "1bjiddhm0zj01s7785xr7yldsbd1agbj4nc9cyxvkadxmf7cha7h";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for Python";
@@ -252826,8 +258396,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-ql";
-       version = "0.1.0.3";
-       sha256 = "0sxfjkdbajk3q5qpy0y51q1srvp3lnch1jvypppcz3ria59svhzx";
+       version = "0.1.0.4";
+       sha256 = "0pawzp1q160h6ccl2dkngrgkyxjs1szsyxjn55clbv4jla3zypni";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for QL";
@@ -252838,8 +258408,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-ruby";
-       version = "0.5.0.2";
-       sha256 = "143nh0c34gdhs9jz9vwmh6alds5n1771jzqaa2zf6pkvsc3cpsfp";
+       version = "0.5.0.3";
+       sha256 = "097wrscdjlr5nqyx2d3076gppfv3xm299b6iya5g50z24g5izfxn";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for Ruby";
@@ -252850,8 +258420,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-rust";
-       version = "0.1.0.0";
-       sha256 = "1ba8b19nq48fvfn5gcc15mbr65n9fxz4hx1b04h9fbmd4bx6haaj";
+       version = "0.1.0.1";
+       sha256 = "0h8dbr4pn1qnqlg0fs1f6jxasjpfjs4j6x4h86dhz6sw3fih9g00";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for Rust";
@@ -252862,8 +258432,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-tsx";
-       version = "0.5.0.1";
-       sha256 = "1pihhq3m8fhkrbqv8fl6l09hlzmwp10w119irhc05nmc2a6hq1jn";
+       version = "0.5.0.2";
+       sha256 = "0ir4n732wd5i6m8jkkrwah7091i147pxbaa2mpl56zg8nya52490";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for TSX";
@@ -252874,8 +258444,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-typescript";
-       version = "0.5.0.1";
-       sha256 = "069xal3kgbsw8swsw0q697c7h0n32fj2cf7wx1nsd79w87nkd80r";
+       version = "0.5.0.2";
+       sha256 = "0qlwiks80861f9prps4x5ag6ivi9ihp8rq416jmmgmc3bj72bkfi";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for TypeScript";
@@ -253029,6 +258599,66 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "trek-app" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, async, base
+     , base64-bytestring, bytestring, cryptohash-sha256, directory
+     , filepath, hspec, hspec-discover, optparse-applicative
+     , optparse-generic, pg-transact, postgres-options
+     , postgresql-simple, postgresql-simple-opts, process, resource-pool
+     , semigroups, split, temporary, time, time-qq, tmp-postgres
+     , trek-db
+     }:
+     mkDerivation {
+       pname = "trek-app";
+       version = "0.1.0.0";
+       sha256 = "0ilnzmxxjaza1nbvp51j17s29a70m5n92vnbrz3ys1k41hw5qpby";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty base base64-bytestring bytestring
+         cryptohash-sha256 directory filepath optparse-applicative
+         optparse-generic pg-transact postgres-options postgresql-simple
+         postgresql-simple-opts process semigroups split time trek-db
+       ];
+       executableHaskellDepends = [ base optparse-generic ];
+       testHaskellDepends = [
+         async base directory filepath hspec hspec-discover optparse-generic
+         postgres-options postgresql-simple postgresql-simple-opts
+         resource-pool split temporary time time-qq tmp-postgres trek-db
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "A PostgreSQL Database Migrator";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "trek-db" = callPackage
+    ({ mkDerivation, async, base, bytestring, containers
+     , cryptohash-sha1, hspec, hspec-discover, hspec-expectations-lifted
+     , pg-transact, postgresql-simple, resource-pool, semigroups, text
+     , time, time-qq, tmp-postgres
+     }:
+     mkDerivation {
+       pname = "trek-db";
+       version = "0.1.0.0";
+       sha256 = "13yc7d3a641nhfam9r05qqbfcmh61z27gsj3v3ldhli6ar3i1p92";
+       libraryHaskellDepends = [
+         base bytestring containers cryptohash-sha1 pg-transact
+         postgresql-simple semigroups text time
+       ];
+       testHaskellDepends = [
+         async base hspec hspec-discover hspec-expectations-lifted
+         pg-transact postgresql-simple resource-pool time-qq tmp-postgres
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "A PostgreSQL Database Migrator";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "trek-lens" = callPackage
     ({ mkDerivation, base, lens, logict, mtl, trek }:
      mkDerivation {
@@ -253186,8 +258816,8 @@ self: {
        pname = "trifecta";
        version = "2.1";
        sha256 = "0fr326lzf38m20h2g4189nsyml9w3128924zbd3cd93cgfqcc9bs";
-       revision = "1";
-       editedCabalFile = "17s7wrc7zmvh1lf0ky96j7797rdgxrc10man8kf1nr24907pxw91";
+       revision = "2";
+       editedCabalFile = "17b0wxwgf52xdm597x0ybq1g2yrvfihl32jpd989xsm6n7s7y21a";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          ansi-terminal array base blaze-builder blaze-html blaze-markup
@@ -253361,8 +258991,8 @@ self: {
        pname = "true-name";
        version = "0.1.0.3";
        sha256 = "0s74fi3zfzk3apvwjz1c0k0ij24kdvlrn8lply9c04kyd20fyc66";
-       revision = "1";
-       editedCabalFile = "0x56r3wyrrsckx6kdvr4v9janrby5qa21fjqwg9k211765c9ddj6";
+       revision = "2";
+       editedCabalFile = "0rb9wbkbz6hsm9cz0j954a9hdyyw80r55vr99pp70ljf0ysgk9w2";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base containers template-haskell time ];
        description = "Template Haskell hack to violate module abstractions";
@@ -254131,31 +259761,49 @@ self: {
 
   "turtle" = callPackage
     ({ mkDerivation, ansi-wl-pprint, async, base, bytestring, clock
-     , containers, criterion, directory, doctest, exceptions, fail
-     , foldl, hostname, managed, optional-args, optparse-applicative
-     , process, semigroups, stm, streaming-commons, system-fileio
-     , system-filepath, temporary, text, time, transformers, unix
-     , unix-compat
+     , containers, criterion, directory, doctest, exceptions, foldl
+     , hostname, managed, optional-args, optparse-applicative, process
+     , stm, streaming-commons, system-fileio, system-filepath, temporary
+     , text, time, transformers, unix, unix-compat
      }:
      mkDerivation {
        pname = "turtle";
-       version = "1.5.19";
-       sha256 = "06hxmhz1i6f5r8k3bf5h54g4ahjsvxhv44sa4xiy52rz6qp0211g";
-       revision = "1";
-       editedCabalFile = "1z0wjrd25k7zc0bvsy1cxicfml0sdchs7sfr6fz5jlnlggpbn0fq";
+       version = "1.5.20";
+       sha256 = "1dk8ddp1p77l7gbg81ryqrkaxhrj3an24mx572b5wmhmjmbjfk9l";
        libraryHaskellDepends = [
          ansi-wl-pprint async base bytestring clock containers directory
          exceptions foldl hostname managed optional-args
-         optparse-applicative process semigroups stm streaming-commons
-         system-fileio system-filepath temporary text time transformers unix
-         unix-compat
+         optparse-applicative process stm streaming-commons system-fileio
+         system-filepath temporary text time transformers unix unix-compat
        ];
-       testHaskellDepends = [
-         base doctest fail system-filepath temporary
+       testHaskellDepends = [ base doctest system-filepath temporary ];
+       benchmarkHaskellDepends = [ base criterion text ];
+       description = "Shell programming, Haskell-style";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "turtle_1_5_21" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, async, base, bytestring, clock
+     , containers, criterion, directory, doctest, exceptions, foldl
+     , hostname, managed, optional-args, optparse-applicative, process
+     , stm, streaming-commons, system-fileio, system-filepath, temporary
+     , text, time, transformers, unix, unix-compat
+     }:
+     mkDerivation {
+       pname = "turtle";
+       version = "1.5.21";
+       sha256 = "0sb1xnmvqby1lcg3p92v0nkpxnm2qk0gcn41mxxgp3xdm24vkz36";
+       libraryHaskellDepends = [
+         ansi-wl-pprint async base bytestring clock containers directory
+         exceptions foldl hostname managed optional-args
+         optparse-applicative process stm streaming-commons system-fileio
+         system-filepath temporary text time transformers unix unix-compat
        ];
+       testHaskellDepends = [ base doctest system-filepath temporary ];
        benchmarkHaskellDepends = [ base criterion text ];
        description = "Shell programming, Haskell-style";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "turtle-options" = callPackage
@@ -254216,6 +259864,8 @@ self: {
        ];
        description = "An equational theorem prover";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "twee-lib" = callPackage
@@ -254594,8 +260244,8 @@ self: {
      }:
      mkDerivation {
        pname = "twirp";
-       version = "0.2.0.0";
-       sha256 = "00dc6bil998fdvb5p0r2782cy3nknw6s8k5a0cv4yqmha4iyn32m";
+       version = "0.2.0.1";
+       sha256 = "05np0zvnvy8wrm9lirrkwhd0n8f44j4xwr6lrywxxy9r00mx8bbl";
        libraryHaskellDepends = [
          aeson base bytestring http-media http-types proto-lens
          proto-lens-jsonpb proto-lens-runtime servant text wai
@@ -255720,8 +261370,8 @@ self: {
      }:
      mkDerivation {
        pname = "typed-encoding";
-       version = "0.4.2.0";
-       sha256 = "19ng2cf68v2j6csw39zxh756amq195479v883y5lgkvjzsx37dbn";
+       version = "0.5.0.0";
+       sha256 = "05hzcyp1lsf3dakdv3kqdl0hw6pz5mzh644d3k8lasrhrmx8l583";
        libraryHaskellDepends = [
          base base64-bytestring bytestring symbols text
        ];
@@ -256118,8 +261768,8 @@ self: {
      }:
      mkDerivation {
        pname = "typesafe-precure";
-       version = "0.7.7.1";
-       sha256 = "0yjw4fm7n7qdb9rib7q5nirnw0cdvqy2g05lidxw5pkgdbi9np3m";
+       version = "0.7.8.1";
+       sha256 = "060fg6s7yjasimhx7nz4cxymlsxdv9pshs4sv83vwj31nw33kr7b";
        libraryHaskellDepends = [
          aeson aeson-pretty autoexporter base bytestring dlist
          monad-skeleton template-haskell text th-data-compat
@@ -256449,14 +262099,14 @@ self: {
      }:
      mkDerivation {
        pname = "ucd";
-       version = "0.0.1.3";
-       sha256 = "1za494jgm3zml4ik203863kwni6pz5dsw6ssn06bjbyk7l7pbg33";
+       version = "0.0.1.4";
+       sha256 = "0a4zzfz4dz8zxn8idnbd4zbhia5b8qf7pgdc9vrffwrx57nlin4a";
        setupHaskellDepends = [
          base Cabal containers directory regex-applicative util
        ];
-       libraryHaskellDepends = [ base util ];
-       testHaskellDepends = [ base util ];
-       benchmarkHaskellDepends = [ base gauge util ];
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       benchmarkHaskellDepends = [ base gauge ];
        description = "Unicode Character Database — Predicates on characters specified by Unicode";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -256782,8 +262432,8 @@ self: {
     ({ mkDerivation, base, io-streams, unagi-chan }:
      mkDerivation {
        pname = "unagi-streams";
-       version = "0.2.6";
-       sha256 = "1mw5h7dizrh4bg1avah201chfl96lapaj3141czfs9w8hyq4lp9h";
+       version = "0.2.7";
+       sha256 = "11vr8zxyksqb2np6f77d9ai6xrb7fpfjbgv191h3pppcanysm4w3";
        libraryHaskellDepends = [ base io-streams unagi-chan ];
        description = "Unagi Chan IO-Streams";
        license = stdenv.lib.licenses.bsd3;
@@ -256818,26 +262468,18 @@ self: {
      }) {};
 
   "unbeliever" = callPackage
-    ({ mkDerivation, async, base, bytestring, chronologique, containers
-     , core-data, core-program, core-text, deepseq, directory
-     , exceptions, filepath, fingertree, fsnotify, gauge, hashable
-     , hourglass, hspec, megaparsec, mtl, prettyprinter
-     , prettyprinter-ansi-terminal, safe-exceptions, scientific, stm
-     , template-haskell, terminal-size, text, text-short, transformers
-     , unix, unordered-containers
+    ({ mkDerivation, base, bytestring, core-data, core-program
+     , core-text, fingertree, gauge, hashable, hspec, safe-exceptions
+     , text, text-short
      }:
      mkDerivation {
        pname = "unbeliever";
-       version = "0.10.0.5";
-       sha256 = "1h0zy19vfhg1x671yhfsr1rbpr7c9jhbr0lxhj7cb25jm94hjajw";
+       version = "0.10.0.6";
+       sha256 = "08rw2krphvs2z0ic19mfwlz3fcmpnbwbpvp7ks22pasi2zy45sb2";
        libraryHaskellDepends = [ base core-data core-program core-text ];
        testHaskellDepends = [
-         async base bytestring chronologique containers core-data
-         core-program core-text deepseq directory exceptions filepath
-         fingertree fsnotify hashable hourglass hspec megaparsec mtl
-         prettyprinter prettyprinter-ansi-terminal safe-exceptions
-         scientific stm template-haskell terminal-size text text-short
-         transformers unix unordered-containers
+         base bytestring core-data core-program core-text fingertree
+         hashable hspec safe-exceptions text text-short
        ];
        benchmarkHaskellDepends = [
          base bytestring core-data core-program core-text gauge text
@@ -256845,6 +262487,8 @@ self: {
        doHaddock = false;
        description = "Opinionated Haskell Interoperability";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "unbound" = callPackage
@@ -257371,22 +263015,22 @@ self: {
      }) {};
 
   "unicode-transforms" = callPackage
-    ({ mkDerivation, base, bitarray, bytestring, deepseq, filepath
-     , gauge, getopt-generics, optparse-applicative, path, path-io
-     , QuickCheck, split, text
+    ({ mkDerivation, base, bytestring, deepseq, filepath, gauge
+     , getopt-generics, ghc-prim, hspec, path, path-io, QuickCheck
+     , split, text
      }:
      mkDerivation {
        pname = "unicode-transforms";
-       version = "0.3.6";
-       sha256 = "1akscvyssif4hki3g6hy0jmjyr8cqly1whzvzj0km2b3qh0x09l3";
+       version = "0.3.7";
+       sha256 = "0pgxb4znvr39n0f7y5q0bdajc4l96zsih0a43n90qjlhj9084rp8";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base bitarray bytestring text ];
+       libraryHaskellDepends = [ base bytestring ghc-prim text ];
        testHaskellDepends = [
-         base deepseq getopt-generics QuickCheck split text
+         base deepseq getopt-generics hspec QuickCheck split text
        ];
        benchmarkHaskellDepends = [
-         base deepseq filepath gauge optparse-applicative path path-io text
+         base deepseq filepath gauge path path-io text
        ];
        description = "Unicode normalization";
        license = stdenv.lib.licenses.bsd3;
@@ -257687,6 +263331,76 @@ self: {
        broken = true;
      }) {};
 
+  "uniqueness-periods" = callPackage
+    ({ mkDerivation, base, mmsyn6ukr, vector }:
+     mkDerivation {
+       pname = "uniqueness-periods";
+       version = "0.2.0.0";
+       sha256 = "1r5wnc9gdinxigqf9sb58k8rvbkbqmn71d2gxpg1xz3fgxs35cqq";
+       libraryHaskellDepends = [ base mmsyn6ukr vector ];
+       description = "Can be used to produce the 'uniquenessPeriods' function and related functionality";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "uniqueness-periods-general" = callPackage
+    ({ mkDerivation, base, vector }:
+     mkDerivation {
+       pname = "uniqueness-periods-general";
+       version = "0.2.0.0";
+       sha256 = "117svylwp76rgygc1fa871qz0ghv5hsfj7lr63zy1r3zcakak45q";
+       libraryHaskellDepends = [ base vector ];
+       description = "Can be used to produce the similar to 'String.Ukrainian.UniquenessPeriods' functions.";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "uniqueness-periods-vector" = callPackage
+    ({ mkDerivation, base, vector }:
+     mkDerivation {
+       pname = "uniqueness-periods-vector";
+       version = "0.1.0.0";
+       sha256 = "0c5ywfpcy71dqxsvsxk1xkmnhaa9fsnaypr6rnv1igiv1qc8fqkc";
+       libraryHaskellDepends = [ base vector ];
+       description = "Generalization of the uniqueness-periods and uniqueness-periods-general packages functionality";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "uniqueness-periods-vector-common" = callPackage
+    ({ mkDerivation, base, vector }:
+     mkDerivation {
+       pname = "uniqueness-periods-vector-common";
+       version = "0.1.0.0";
+       sha256 = "0lkkanqi2l2c6fmf1nasb6kigdp0gfi9qncsl07i8jmbk6wxppss";
+       libraryHaskellDepends = [ base vector ];
+       description = "Generalization of the dobutokO-poetry-general package functionality";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "uniqueness-periods-vector-general" = callPackage
+    ({ mkDerivation, base, print-info, uniqueness-periods-vector-common
+     , vector
+     }:
+     mkDerivation {
+       pname = "uniqueness-periods-vector-general";
+       version = "0.2.0.0";
+       sha256 = "0aqjj08y6jf03dcwcvshxm9vzqyk6i05758c994d0xz23pzwi2lx";
+       libraryHaskellDepends = [
+         base print-info uniqueness-periods-vector-common vector
+       ];
+       description = "Generalization of the functionality of the dobutokO-poetry-general-languages package";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "uniqueness-periods-vector-properties" = callPackage
+    ({ mkDerivation, base, uniqueness-periods-vector, vector }:
+     mkDerivation {
+       pname = "uniqueness-periods-vector-properties";
+       version = "0.1.1.1";
+       sha256 = "17bwchd6acnr457rhkrqsanl67nps2d6722ap781havnsvqlff0x";
+       libraryHaskellDepends = [ base uniqueness-periods-vector vector ];
+       description = "Metrics for the maximum element for the uniqueness-periods-vector packages family";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "unit" = callPackage
     ({ mkDerivation, base, hspec }:
      mkDerivation {
@@ -258056,6 +263770,32 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "universum_1_7_1" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, doctest
+     , gauge, ghc-prim, Glob, hashable, hedgehog, microlens
+     , microlens-mtl, mtl, safe-exceptions, stm, tasty, tasty-hedgehog
+     , text, transformers, unordered-containers, utf8-string, vector
+     }:
+     mkDerivation {
+       pname = "universum";
+       version = "1.7.1";
+       sha256 = "0jsdzhy0h5d6znnrdgzr29b6qkriidck5s6yp52pci30rfv1d29z";
+       libraryHaskellDepends = [
+         base bytestring containers deepseq ghc-prim hashable microlens
+         microlens-mtl mtl safe-exceptions stm text transformers
+         unordered-containers utf8-string vector
+       ];
+       testHaskellDepends = [
+         base bytestring doctest Glob hedgehog tasty tasty-hedgehog text
+       ];
+       benchmarkHaskellDepends = [
+         base containers gauge text unordered-containers
+       ];
+       description = "Custom prelude used in Serokell";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "unix_2_7_2_2" = callPackage
     ({ mkDerivation, base, bytestring, time }:
      mkDerivation {
@@ -258403,24 +264143,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "unordered-containers_0_2_11_0" = callPackage
+  "unordered-containers_0_2_12_0" = callPackage
     ({ mkDerivation, base, bytestring, ChasingBottoms, containers
-     , deepseq, deepseq-generics, gauge, hashable, hashmap, HUnit, mtl
-     , QuickCheck, random, test-framework, test-framework-hunit
-     , test-framework-quickcheck2
+     , deepseq, gauge, hashable, hashmap, HUnit, mtl, QuickCheck, random
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
      }:
      mkDerivation {
        pname = "unordered-containers";
-       version = "0.2.11.0";
-       sha256 = "0z58qi781n1znjw35s1pq0k7fqn0995jqmrsznp1773gg66qqfib";
+       version = "0.2.12.0";
+       sha256 = "085x73b2cfab85nkbwmcvc5i6v8kbnpbiv35gnmgw44zlm7an7a8";
        libraryHaskellDepends = [ base deepseq hashable ];
        testHaskellDepends = [
          base ChasingBottoms containers hashable HUnit QuickCheck random
          test-framework test-framework-hunit test-framework-quickcheck2
        ];
        benchmarkHaskellDepends = [
-         base bytestring containers deepseq deepseq-generics gauge hashable
-         hashmap mtl random
+         base bytestring containers deepseq gauge hashable hashmap mtl
+         random
        ];
        description = "Efficient hashing-based container types";
        license = stdenv.lib.licenses.bsd3;
@@ -258867,8 +264606,7 @@ self: {
        executableHaskellDepends = [ base text ];
        description = "A program to update fetchgit values in Nix expressions";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
+       maintainers = with stdenv.lib.maintainers; [ sorki ];
      }) {};
 
   "update-repos" = callPackage
@@ -259075,8 +264813,8 @@ self: {
      }:
      mkDerivation {
        pname = "uri-encode";
-       version = "1.5.0.5";
-       sha256 = "11miwb5vvnn17m92ykz1pzg9x6s8fbpz3mmsyqs2s4b3mn55haz8";
+       version = "1.5.0.6";
+       sha256 = "1w74dqvcl0s26p1s7rszmfj3zphv4bcflpp54iq1kxsrqpd1bbv8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -259086,6 +264824,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "uri-encoder" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, network-uri
+     , QuickCheck, quickcheck-instances, vector
+     }:
+     mkDerivation {
+       pname = "uri-encoder";
+       version = "0.0.0.0";
+       sha256 = "0nrvk039k0pr79nbp78rhav46q2hsns23zzlfgzn878w6shzhyxs";
+       libraryHaskellDepends = [ base bytestring vector ];
+       testHaskellDepends = [
+         base bytestring QuickCheck quickcheck-instances vector
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion network-uri
+       ];
+       description = "A uri encoder to make your strings less readable";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "uri-enumerator" = callPackage
     ({ mkDerivation, base, bytestring, containers, enumerator, failure
      , network, text, transformers
@@ -259194,6 +264953,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "url-bytes" = callPackage
+    ({ mkDerivation, base, byteslice, bytesmith, bytestring, deepseq
+     , gauge, HUnit, primitive, tasty, tasty-hunit, template-haskell
+     , uri-bytestring, weigh
+     }:
+     mkDerivation {
+       pname = "url-bytes";
+       version = "0.1.0.0";
+       sha256 = "0nbxnmz1m2icg3vvdndr4zydwr8nbgxhb70ak2jzc6d92c3vhvqi";
+       libraryHaskellDepends = [
+         base byteslice bytesmith primitive template-haskell
+       ];
+       testHaskellDepends = [
+         base byteslice HUnit primitive tasty tasty-hunit
+       ];
+       benchmarkHaskellDepends = [
+         base byteslice bytestring deepseq gauge primitive uri-bytestring
+         weigh
+       ];
+       description = "Memory efficient url type and parser";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "url-decoders" = callPackage
     ({ mkDerivation, base, base-prelude, binary-parser, bytestring
      , criterion, http-types, QuickCheck, quickcheck-instances, rerebase
@@ -259499,6 +265283,8 @@ self: {
        executableHaskellDepends = [ base random-fu text ];
        description = "A collection of user agents";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "userid" = callPackage
@@ -260089,17 +265875,16 @@ self: {
      }) {};
 
   "uuid-bytes" = callPackage
-    ({ mkDerivation, base, byteslice, bytesmith, HUnit
-     , natural-arithmetic, primitive, small-bytearray-builder, tasty
-     , tasty-hunit, wide-word
+    ({ mkDerivation, base, bytebuild, byteslice, bytesmith, HUnit
+     , natural-arithmetic, primitive, tasty, tasty-hunit, wide-word
      }:
      mkDerivation {
        pname = "uuid-bytes";
-       version = "0.1.1.0";
-       sha256 = "13kskg9j847w3f01pf0r24kf1nnfz5srfp268ip5n55ji26h5cmr";
+       version = "0.1.2.0";
+       sha256 = "08sfxj0900pgpbvasi2n2x93qwglir2ijc43fpn5xf0gq7z2b25r";
        libraryHaskellDepends = [
-         base byteslice bytesmith natural-arithmetic primitive
-         small-bytearray-builder wide-word
+         base bytebuild byteslice bytesmith natural-arithmetic primitive
+         wide-word
        ];
        testHaskellDepends = [
          base byteslice HUnit natural-arithmetic primitive tasty tasty-hunit
@@ -260127,6 +265912,8 @@ self: {
        ];
        description = "Reversable and secure encoding of object ids as uuids";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "uuid-le" = callPackage
@@ -260175,8 +265962,8 @@ self: {
        pname = "uuid-types";
        version = "1.0.3";
        sha256 = "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj";
-       revision = "2";
-       editedCabalFile = "1lmlmng4lph57cljga3r9jy2axdls5mllsb2xzcwy2a34wgidarc";
+       revision = "3";
+       editedCabalFile = "0znx08r25sgs5j7ix8i9aikhgad0kc9i6vgkg0g3jzxk5haal9sf";
        libraryHaskellDepends = [
          base binary bytestring deepseq hashable random text
        ];
@@ -260412,8 +266199,8 @@ self: {
      }:
      mkDerivation {
        pname = "vado";
-       version = "0.0.12";
-       sha256 = "0qirhdzbcx5mqlbgh24ckcmivi38hqr53im9g6cydzslnk7ys41w";
+       version = "0.0.13";
+       sha256 = "04cdzlbcx95r7x3nz0r676c376j0lfiidp0160maw651in2a3b5f";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -260719,6 +266506,18 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "validity-time_0_4_0_0" = callPackage
+    ({ mkDerivation, base, time, validity }:
+     mkDerivation {
+       pname = "validity-time";
+       version = "0.4.0.0";
+       sha256 = "02lwa2w84m4mm2lpg5dhg5p0ndba5r152bjm4iy76y2qsfkva0ap";
+       libraryHaskellDepends = [ base time validity ];
+       description = "Validity instances for time";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "validity-unordered-containers" = callPackage
     ({ mkDerivation, base, hashable, unordered-containers, validity }:
      mkDerivation {
@@ -261530,15 +267329,19 @@ self: {
      }) {};
 
   "vector-fftw" = callPackage
-    ({ mkDerivation, base, fftw, primitive, storable-complex, vector }:
+    ({ mkDerivation, base, fftw, primitive, QuickCheck
+     , storable-complex, test-framework, test-framework-quickcheck2
+     , vector
+     }:
      mkDerivation {
        pname = "vector-fftw";
-       version = "0.1.3.8";
-       sha256 = "0xlr4566hh6lnpinzrk623a96jnb8mp8mq6cymlsl8y38qx36jp6";
-       revision = "3";
-       editedCabalFile = "0wh7sa71gl1ssqqd4axyvwxlmkfb0n3hm90imjvg0vsp7g2y7zs0";
+       version = "0.1.4.0";
+       sha256 = "1ns5jhdx585s3jmcslscibf7ryaya3ca1shc4ysrikrp1mzx1jky";
        libraryHaskellDepends = [ base primitive storable-complex vector ];
        librarySystemDepends = [ fftw ];
+       testHaskellDepends = [
+         base QuickCheck test-framework test-framework-quickcheck2 vector
+       ];
        description = "A binding to the fftw library for one-dimensional vectors";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -261676,8 +267479,8 @@ self: {
      }:
      mkDerivation {
        pname = "vector-sized";
-       version = "1.4.1.0";
-       sha256 = "14l6c8l8l29f6kdffknd70kkccfjcf105i1zd0kchgsgjnr9p6l1";
+       version = "1.4.2";
+       sha256 = "02a7jzik6a6w1xb6bwpvl6hmii6jgi9wr0q7p48bfbq0mlqjv42h";
        libraryHaskellDepends = [
          adjunctions base binary comonad deepseq distributive
          finite-typelits hashable indexed-list-literals primitive vector
@@ -262372,29 +268175,31 @@ self: {
      }) {};
 
   "vimeta" = callPackage
-    ({ mkDerivation, aeson, base, byline, bytestring, containers
-     , directory, either, filepath, http-client, http-client-tls
-     , http-types, mtl, old-locale, optparse-applicative, parsec
-     , process, temporary, text, themoviedb, time, time-locale-compat
-     , transformers, xdg-basedir, yaml
+    ({ mkDerivation, aeson, base, byline, bytestring, directory
+     , exceptions, filepath, http-client, http-client-tls, http-types
+     , mtl, optparse-applicative, parsec, process, relude, temporary
+     , text, themoviedb, time, yaml
      }:
      mkDerivation {
        pname = "vimeta";
-       version = "0.2.5.1";
-       sha256 = "1v46b0215mcyhxma3ascg3paz683j8xqsf4czs8syx4amyls36qg";
-       revision = "1";
-       editedCabalFile = "1na8qghd918ck1pg058anbh9iy3w4x7hf72ygfwfy23hw00wn5j4";
+       version = "0.3.0.0";
+       sha256 = "0npz5mx9w6srz5p0is3yzgfwssakdycv8h0h38ff7q0sivq3pfnv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base byline bytestring containers directory either filepath
-         http-client http-client-tls http-types mtl old-locale
-         optparse-applicative parsec process temporary text themoviedb time
-         time-locale-compat transformers xdg-basedir yaml
+         aeson base byline bytestring directory exceptions filepath
+         http-client http-client-tls http-types mtl optparse-applicative
+         parsec process relude temporary text themoviedb time yaml
+       ];
+       executableHaskellDepends = [
+         aeson base byline bytestring directory exceptions filepath
+         http-client http-client-tls http-types mtl optparse-applicative
+         parsec process relude temporary text themoviedb time yaml
        ];
-       executableHaskellDepends = [ base ];
        description = "Frontend for video metadata tagging tools";
        license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "vimus" = callPackage
@@ -262458,8 +268263,8 @@ self: {
      }:
      mkDerivation {
        pname = "vinyl";
-       version = "0.12.2";
-       sha256 = "1h5q5y3ni7vx48rmammf66nzjmbclwh5n1c41gln8fm98n6n96yn";
+       version = "0.13.0";
+       sha256 = "1ks5rzv3b5fjgcy4g54wxnfqa450ifyap18pq2sb2c8a6bkh3qlh";
        libraryHaskellDepends = [ array base ghc-prim ];
        testHaskellDepends = [
          aeson base doctest hspec lens lens-aeson microlens mtl
@@ -263065,6 +268870,42 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "vty_5_30" = callPackage
+    ({ mkDerivation, ansi-terminal, base, binary, blaze-builder
+     , bytestring, Cabal, containers, deepseq, directory, filepath
+     , hashable, HUnit, microlens, microlens-mtl, microlens-th, mtl
+     , parallel, parsec, QuickCheck, quickcheck-assertions, random
+     , smallcheck, stm, string-qq, terminfo, test-framework
+     , test-framework-hunit, test-framework-smallcheck, text
+     , transformers, unix, utf8-string, vector
+     }:
+     mkDerivation {
+       pname = "vty";
+       version = "5.30";
+       sha256 = "1c2azy8pp39hn098dbssl6z8xf63hf52drdqgw7wl856ka2dsakj";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-terminal base binary blaze-builder bytestring containers
+         deepseq directory filepath hashable microlens microlens-mtl
+         microlens-th mtl parallel parsec stm terminfo text transformers
+         unix utf8-string vector
+       ];
+       executableHaskellDepends = [
+         base containers directory filepath microlens microlens-mtl mtl
+       ];
+       testHaskellDepends = [
+         base blaze-builder bytestring Cabal containers deepseq HUnit
+         microlens microlens-mtl mtl QuickCheck quickcheck-assertions random
+         smallcheck stm string-qq terminfo test-framework
+         test-framework-hunit test-framework-smallcheck text unix
+         utf8-string vector
+       ];
+       description = "A simple terminal UI library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "vty-examples" = callPackage
     ({ mkDerivation, array, base, bytestring, Cabal, containers
      , data-default, deepseq, lens, mtl, parallel, parsec, QuickCheck
@@ -263142,8 +268983,8 @@ self: {
     ({ mkDerivation, base, bytestring, transformers, vector, vulkan }:
      mkDerivation {
        pname = "vulkan";
-       version = "3.5";
-       sha256 = "1jly8hwfr11aczyrrx2yf64dlq2xgyp51jxrms2kz8izgbdh0h1h";
+       version = "3.6.6";
+       sha256 = "09mq11jqrd9sgx4xcy3xxji21yfhzl9a49mh5fp80y2mxsxdl0v9";
        libraryHaskellDepends = [ base bytestring transformers vector ];
        librarySystemDepends = [ vulkan ];
        description = "Bindings to the Vulkan graphics API";
@@ -263346,10 +269187,8 @@ self: {
      }:
      mkDerivation {
        pname = "wai-app-static";
-       version = "3.1.7.1";
-       sha256 = "10k6jb450p89r6dgpnwh428gg0wfw2qbx9n126jkvbchcjr1f4v8";
-       revision = "1";
-       editedCabalFile = "0bkmml30rzifvb7nxddj3pxczk0kniahra19mjn0qrkzy1n5752p";
+       version = "3.1.7.2";
+       sha256 = "138gd5482psq0wbm8s1az672lksi7vbavq6ayiyjkliivf6xpry8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -263408,6 +269247,22 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "wai-control" = callPackage
+    ({ mkDerivation, base, monad-control-identity, transformers-base
+     , wai, wai-websockets, websockets
+     }:
+     mkDerivation {
+       pname = "wai-control";
+       version = "0.1.0.2";
+       sha256 = "0ygcqxyp8mmw81rrlk20ziyghi6snrzyyqgfllbh5b6jhx6z017h";
+       libraryHaskellDepends = [
+         base monad-control-identity transformers-base wai wai-websockets
+         websockets
+       ];
+       description = "Run wai Applications in IO based monads";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "wai-cors" = callPackage
     ({ mkDerivation, attoparsec, base, base-unicode-symbols, bytestring
      , case-insensitive, directory, filepath, http-types, mtl, network
@@ -264729,6 +270584,24 @@ self: {
        broken = true;
      }) {};
 
+  "wai-saml2" = callPackage
+    ({ mkDerivation, base, base64-bytestring, bytestring, c14n
+     , cryptonite, data-default-class, http-types, mtl, text, time
+     , vault, wai, wai-extra, x509, x509-store, xml-conduit
+     }:
+     mkDerivation {
+       pname = "wai-saml2";
+       version = "0.2.1.0";
+       sha256 = "0yljqfrrp426pn17fq28arw3ygrb3i84fr28r0hns0cv4a4sz4gx";
+       libraryHaskellDepends = [
+         base base64-bytestring bytestring c14n cryptonite
+         data-default-class http-types mtl text time vault wai wai-extra
+         x509 x509-store xml-conduit
+       ];
+       description = "SAML2 assertion validation as WAI middleware";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "wai-secure-cookies" = callPackage
     ({ mkDerivation, base, bytestring, cryptonite, hspec
      , hspec-expectations, hspec-wai, http-types, memory, protolude
@@ -264736,8 +270609,8 @@ self: {
      }:
      mkDerivation {
        pname = "wai-secure-cookies";
-       version = "0.1.0.4";
-       sha256 = "0m77h2xnm3h3axchvmbylrhm4s7d31zxsv0bgqvmh9zhydr90d2v";
+       version = "0.1.0.5";
+       sha256 = "0v3gz70z968yk563g9n72v8l7mhqhkbjb9gy15s5zpf3apv1cf00";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -265071,6 +270944,24 @@ self: {
        broken = true;
      }) {};
 
+  "wakame" = callPackage
+    ({ mkDerivation, base, doctest, QuickCheck, sop-core, tasty
+     , tasty-discover, tasty-hspec, tasty-quickcheck, text, time
+     }:
+     mkDerivation {
+       pname = "wakame";
+       version = "0.1.0.0";
+       sha256 = "1wm87z7ag1xzvf4lxqg3xz62ac8i5b9ljzlg85vphcfadsj9khh7";
+       libraryHaskellDepends = [ base sop-core ];
+       testHaskellDepends = [
+         base doctest QuickCheck sop-core tasty tasty-discover tasty-hspec
+         tasty-quickcheck text time
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Functions to manipulate records";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "waldo" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, base
      , blaze-builder, browscap, bytestring, case-insensitive, conduit
@@ -265168,39 +271059,6 @@ self: {
      }:
      mkDerivation {
        pname = "warp";
-       version = "3.3.12";
-       sha256 = "0fgglpgg2m3nfngymwgzvn467nsg2r0ff36v3xi8jdqwy9x9ia49";
-       libraryHaskellDepends = [
-         array async auto-update base bsb-http-chunked bytestring
-         case-insensitive containers ghc-prim hashable http-date http-types
-         http2 iproute network simple-sendfile stm streaming-commons text
-         time-manager unix unix-compat vault wai word8 x509
-       ];
-       testHaskellDepends = [
-         array async auto-update base bsb-http-chunked bytestring
-         case-insensitive containers directory ghc-prim hashable hspec
-         http-client http-date http-types http2 HUnit iproute lifted-base
-         network process QuickCheck simple-sendfile stm streaming-commons
-         text time time-manager unix unix-compat vault wai word8 x509
-       ];
-       benchmarkHaskellDepends = [
-         auto-update base bytestring containers gauge hashable http-date
-         http-types network time-manager unix unix-compat x509
-       ];
-       description = "A fast, light-weight web server for WAI applications";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "warp_3_3_13" = callPackage
-    ({ mkDerivation, array, async, auto-update, base, bsb-http-chunked
-     , bytestring, case-insensitive, containers, directory, gauge
-     , ghc-prim, hashable, hspec, http-client, http-date, http-types
-     , http2, HUnit, iproute, lifted-base, network, process, QuickCheck
-     , simple-sendfile, stm, streaming-commons, text, time, time-manager
-     , unix, unix-compat, vault, wai, word8, x509
-     }:
-     mkDerivation {
-       pname = "warp";
        version = "3.3.13";
        sha256 = "1yqgfx7bsjk97dxcrqwddfhi8mdw0q6cbgs5abaxqjlxh3rhihdx";
        libraryHaskellDepends = [
@@ -265222,7 +271080,6 @@ self: {
        ];
        description = "A fast, light-weight web server for WAI applications";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "warp-dynamic" = callPackage
@@ -265286,8 +271143,8 @@ self: {
     ({ mkDerivation, base, network, systemd, unix, wai, warp }:
      mkDerivation {
        pname = "warp-systemd";
-       version = "0.1.0.0";
-       sha256 = "1cfm70dapcxd7ddxs7x0qqlv5w5kr3hasspvg292ik5f5bn40m91";
+       version = "0.1.1.0";
+       sha256 = "1gi9xkaa3wi5n2vhmlc7s4zm48l2fakwnd7bw007hzfqi17zz13x";
        libraryHaskellDepends = [ base network systemd unix wai warp ];
        description = "Socket activation and other systemd integration for the Warp web server (WAI)";
        license = stdenv.lib.licenses.bsd3;
@@ -265679,8 +271536,8 @@ self: {
      }:
      mkDerivation {
        pname = "web-inv-route";
-       version = "0.1.2.2";
-       sha256 = "0cbf46d1a55y7j2d84crhfdsgy0c2x0rfmvhhwxxh5pigg846cd2";
+       version = "0.1.2.3";
+       sha256 = "1xk6f3z7pcn5bmr2259yvv9l9wbfyycb7990dffz4b802ahxf1xv";
        libraryHaskellDepends = [
          base bytestring case-insensitive containers happstack-server
          hashable http-types invertible network-uri snap-core text
@@ -265767,18 +271624,17 @@ self: {
 
   "web-push" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, binary, bytestring
-     , cryptonite, exceptions, hspec, http-client, http-types, jose
-     , memory, mtl, random, text, time, transformers
-     , unordered-containers
+     , cryptonite, hspec, http-client, http-types, lens, memory, random
+     , safe-exceptions, text, time, transformers
      }:
      mkDerivation {
        pname = "web-push";
-       version = "0.1.2.0";
-       sha256 = "1c9l6fl8fpz4jd9p1m8w42hknnklak8j4gjakcm4qdbw86c4w3kk";
+       version = "0.3";
+       sha256 = "1l03apm5l0a8p8ir418jzfvgsbrpzbh8ks6rbgjxkyz2wj0if2mi";
        libraryHaskellDepends = [
          aeson base base64-bytestring binary bytestring cryptonite
-         exceptions http-client http-types jose memory mtl random text time
-         transformers unordered-containers
+         http-client http-types lens memory random safe-exceptions text time
+         transformers
        ];
        testHaskellDepends = [
          base base64-bytestring binary bytestring hspec
@@ -265790,31 +271646,28 @@ self: {
      }) {};
 
   "web-rep" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bifunctors, box, clay
-     , doctest, foldl, generic-lens, interpolatedstring-perl6
-     , javascript-bridge, language-javascript, lens, lucid, lucid-svg
-     , mmorph, mtl, optparse-generic, scotty, streaming, tasty
-     , tasty-hspec, text, text-format, transformers
-     , unordered-containers, wai, wai-extra, wai-middleware-static
+    ({ mkDerivation, attoparsec, base, box, box-socket, clay
+     , concurrency, doctest, generic-lens, interpolatedstring-perl6
+     , language-javascript, lens, lucid, mtl, numhask, optparse-generic
+     , scotty, tasty, tasty-hspec, text, transformers
+     , unordered-containers, wai-middleware-static, wai-websockets
+     , websockets
      }:
      mkDerivation {
        pname = "web-rep";
-       version = "0.5.0";
-       sha256 = "0av64gnh4gq8vxqclzn91776g5xpkvlix1v61wbk065lwc5znv26";
+       version = "0.7.0";
+       sha256 = "1045b19rjs1hgw92kq8z6wzm7jmx8k73ad9z4m2vzv1jwjhbgin4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson attoparsec base bifunctors box clay foldl generic-lens
-         interpolatedstring-perl6 javascript-bridge language-javascript lens
-         lucid lucid-svg mmorph mtl scotty streaming text text-format
-         transformers unordered-containers wai-middleware-static
-       ];
-       executableHaskellDepends = [
-         attoparsec base box lens lucid optparse-generic scotty text wai
-         wai-extra wai-middleware-static
+         attoparsec base box box-socket clay concurrency generic-lens
+         interpolatedstring-perl6 language-javascript lens lucid mtl numhask
+         scotty text transformers unordered-containers wai-middleware-static
+         wai-websockets websockets
        ];
+       executableHaskellDepends = [ base numhask optparse-generic ];
        testHaskellDepends = [
-         base doctest lens lucid tasty tasty-hspec text
+         base doctest lens lucid numhask tasty tasty-hspec text
        ];
        description = "representations of a web page";
        license = stdenv.lib.licenses.mit;
@@ -266306,14 +272159,14 @@ self: {
 
   "webex-teams-api" = callPackage
     ({ mkDerivation, aeson, async, attoparsec, base, bitset-word8
-     , bytestring, conduit, data-default, hspec, http-conduit
-     , http-types, network-uri, optparse-applicative, text, utf8-string
-     , wai, warp
+     , bytestring, conduit, data-default, hspec, hspec-discover
+     , http-conduit, http-types, network-uri, optparse-applicative, text
+     , utf8-string, wai, warp
      }:
      mkDerivation {
        pname = "webex-teams-api";
-       version = "0.2.0.0";
-       sha256 = "02x4g10r0rl1g4fbqkj8zxcbz64g8dck4d77f0gswkadsn5y6mkp";
+       version = "0.2.0.1";
+       sha256 = "11qivxmp0cx3jsrpbp2zdfjhjrcd960ycbr08li3d327ff2qhdsh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -266328,20 +272181,21 @@ self: {
          aeson async attoparsec base bytestring data-default hspec
          http-conduit http-types network-uri text wai warp
        ];
+       testToolDepends = [ hspec-discover ];
        description = "A Haskell bindings for Webex Teams API";
        license = stdenv.lib.licenses.mit;
      }) {};
 
   "webex-teams-conduit" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, conduit
-     , data-default, hspec, http-client, http-conduit, http-types
-     , network-uri, optparse-applicative, text, utf8-string, wai, warp
-     , webex-teams-api
+     , data-default, hspec, hspec-discover, http-client, http-conduit
+     , http-types, network-uri, optparse-applicative, text, utf8-string
+     , wai, warp, webex-teams-api
      }:
      mkDerivation {
        pname = "webex-teams-conduit";
-       version = "0.2.0.0";
-       sha256 = "0p9ffj3qm84c7m4w5bfpn53vcs96p7gdlyk87mjmc9h9i6v7sz0d";
+       version = "0.2.0.1";
+       sha256 = "0ig4krcvc256lyrqvj6g4kjklln5m7sm44c4bvbgkgr3lmrpfkr7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base conduit webex-teams-api ];
@@ -266353,20 +272207,21 @@ self: {
          aeson async base bytestring conduit data-default hspec http-conduit
          http-types network-uri text wai warp webex-teams-api
        ];
+       testToolDepends = [ hspec-discover ];
        description = "Conduit wrapper of Webex Teams List API";
        license = stdenv.lib.licenses.mit;
      }) {};
 
   "webex-teams-pipes" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, data-default
-     , hspec, http-client, http-conduit, http-types, network-uri
-     , optparse-applicative, pipes, text, utf8-string, wai, warp
-     , webex-teams-api
+     , hspec, hspec-discover, http-client, http-conduit, http-types
+     , network-uri, optparse-applicative, pipes, text, utf8-string, wai
+     , warp, webex-teams-api
      }:
      mkDerivation {
        pname = "webex-teams-pipes";
-       version = "0.2.0.0";
-       sha256 = "001ilf2yj6q8rqcagjlh28rad191jyjjr1cpk6cf84v66isdbykp";
+       version = "0.2.0.1";
+       sha256 = "094wvrnv0609gp0iya34pciw2hc5wi7fax5wjwr3n1lmwdgf7i4g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base pipes webex-teams-api ];
@@ -266378,6 +272233,7 @@ self: {
          aeson async base bytestring data-default hspec http-conduit
          http-types network-uri pipes text wai warp webex-teams-api
        ];
+       testToolDepends = [ hspec-discover ];
        description = "Pipes wrapper of Webex Teams List API";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -266402,6 +272258,29 @@ self: {
        broken = true;
      }) {};
 
+  "webgear-server" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, http-api-data, http-types
+     , mtl, QuickCheck, quickcheck-instances, tagged, tasty, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, unordered-containers
+     , wai
+     }:
+     mkDerivation {
+       pname = "webgear-server";
+       version = "0.1.0";
+       sha256 = "03733kxh1r3yd0hicln64mgfr41zbz7bjvddc1j8h45ppxif8xfm";
+       libraryHaskellDepends = [
+         aeson base bytestring http-api-data http-types mtl tagged
+         template-haskell text unordered-containers wai
+       ];
+       testHaskellDepends = [
+         aeson base bytestring http-api-data http-types mtl QuickCheck
+         quickcheck-instances tagged tasty tasty-hunit tasty-quickcheck
+         template-haskell text unordered-containers wai
+       ];
+       description = "Composable, type-safe library to build HTTP API servers";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
   "webidl" = callPackage
     ({ mkDerivation, base, bytestring, HSFFIG, LEXER, parsec, pretty
      , utf8-env, utf8-string
@@ -266482,8 +272361,8 @@ self: {
     ({ mkDerivation, base, Cabal, gtk2hs-buildtools, webkitgtk }:
      mkDerivation {
        pname = "webkit2gtk3-javascriptcore";
-       version = "0.14.4.0";
-       sha256 = "0njp5m8m9qz7ra9z8ni103bnicfshiixxy44na8m3mzjqrchczww";
+       version = "0.14.4.1";
+       sha256 = "0bi42gpw0cf5ymnwlffnfdq68jfvk0j4qcnqv8lvwz2vp1ngs23j";
        setupHaskellDepends = [ base Cabal gtk2hs-buildtools ];
        libraryHaskellDepends = [ base ];
        libraryPkgconfigDepends = [ webkitgtk ];
@@ -266775,18 +272654,18 @@ self: {
   "weeder" = callPackage
     ({ mkDerivation, algebraic-graphs, base, bytestring, containers
      , dhall, directory, filepath, generic-lens, ghc, lens, mtl
-     , optparse-applicative, regex-tdfa, transformers
+     , optparse-applicative, regex-tdfa, text, transformers
      }:
      mkDerivation {
        pname = "weeder";
-       version = "2.0.1";
-       sha256 = "1x5hgyp3zcwz63wcwh8bqalckcb7baakj39zwymifirxvhkws1xz";
+       version = "2.1.0";
+       sha256 = "0pplr61bf9b6s5wgji8s5dwpp69164zhh6skpsminf6fcpvwqwcl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          algebraic-graphs base bytestring containers dhall directory
          filepath generic-lens ghc lens mtl optparse-applicative regex-tdfa
-         transformers
+         text transformers
        ];
        executableHaskellDepends = [
          base bytestring containers directory filepath ghc
@@ -266804,8 +272683,8 @@ self: {
      }:
      mkDerivation {
        pname = "weekdaze";
-       version = "0.0.0.1";
-       sha256 = "13nxi6gqm4by2y6wd3vwj0rqjircpfng0nz5h2spci2jrbmv52d3";
+       version = "0.0.0.3";
+       sha256 = "1khnizhk45qbjrxq24bfs183wbmrdxax7k09mjm9717wb350v6k6";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -266823,6 +272702,8 @@ self: {
        ];
        description = "A school-timetable problem-solver";
        license = "GPL";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "weigh" = callPackage
@@ -266965,6 +272846,42 @@ self: {
        broken = true;
      }) {};
 
+  "what4" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, attoparsec, base, bifunctors
+     , bimap, bv-sized, bytestring, containers, data-binary-ieee754
+     , deepseq, deriving-compat, directory, exceptions, extra, filepath
+     , fingertree, ghc-prim, hashable, hashtables, hedgehog, io-streams
+     , lens, mtl, panic, parameterized-utils, process, QuickCheck
+     , scientific, tasty, tasty-hedgehog, tasty-hunit, tasty-quickcheck
+     , template-haskell, temporary, text, th-abstraction, transformers
+     , unordered-containers, utf8-string, vector, versions, zenc
+     }:
+     mkDerivation {
+       pname = "what4";
+       version = "1.0";
+       sha256 = "0yyyq2gzl7srjq6inj1dqdhpxd58r1rhjajwxi0gr5pmxfzv7k8w";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-wl-pprint attoparsec base bifunctors bimap bv-sized bytestring
+         containers data-binary-ieee754 deepseq deriving-compat directory
+         exceptions extra filepath fingertree ghc-prim hashable hashtables
+         io-streams lens mtl panic parameterized-utils process scientific
+         template-haskell temporary text th-abstraction transformers
+         unordered-containers utf8-string vector versions zenc
+       ];
+       executableHaskellDepends = [ base parameterized-utils ];
+       testHaskellDepends = [
+         base bv-sized bytestring containers data-binary-ieee754 hedgehog
+         parameterized-utils QuickCheck tasty tasty-hedgehog tasty-hunit
+         tasty-quickcheck text transformers versions
+       ];
+       description = "Solver-agnostic symbolic values support for issuing queries";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "wheb-mongo" = callPackage
     ({ mkDerivation, base, bson, mongoDB, mtl, text, Wheb }:
      mkDerivation {
@@ -267106,6 +273023,8 @@ self: {
          random-fu random-shuffle random-source relude temporary time
        ];
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "why3" = callPackage
@@ -267221,24 +273140,6 @@ self: {
      }:
      mkDerivation {
        pname = "wild-bind";
-       version = "0.1.2.5";
-       sha256 = "14k1y5klxjvkdh0r041sd6a3jzmylb718azfmz45403lrnh96nq9";
-       libraryHaskellDepends = [
-         base containers semigroups text transformers
-       ];
-       testHaskellDepends = [
-         base hspec microlens QuickCheck stm transformers
-       ];
-       description = "Dynamic key binding framework";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "wild-bind_0_1_2_6" = callPackage
-    ({ mkDerivation, base, containers, hspec, microlens, QuickCheck
-     , semigroups, stm, text, transformers
-     }:
-     mkDerivation {
-       pname = "wild-bind";
        version = "0.1.2.6";
        sha256 = "1sfwz7qwlfhvdkw8f0xmywi7m3b3yd7p5hlrjndlqs8h2k8c7809";
        libraryHaskellDepends = [
@@ -267249,7 +273150,6 @@ self: {
        ];
        description = "Dynamic key binding framework";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "wild-bind-indicator" = callPackage
@@ -267294,25 +273194,6 @@ self: {
      }:
      mkDerivation {
        pname = "wild-bind-x11";
-       version = "0.2.0.9";
-       sha256 = "1x3qqnampyxi6bg6279xsw38324fs5gndy1mylp6dndlcf6pw30z";
-       libraryHaskellDepends = [
-         base containers fold-debounce mtl semigroups stm text transformers
-         wild-bind X11
-       ];
-       testHaskellDepends = [
-         async base hspec text time transformers wild-bind X11
-       ];
-       description = "X11-specific implementation for WildBind";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "wild-bind-x11_0_2_0_10" = callPackage
-    ({ mkDerivation, async, base, containers, fold-debounce, hspec, mtl
-     , semigroups, stm, text, time, transformers, wild-bind, X11
-     }:
-     mkDerivation {
-       pname = "wild-bind-x11";
        version = "0.2.0.10";
        sha256 = "0wq6jhaq2mh476mwjqc6ianqvvrywlvrkcwh7acdxznz2djkgjm5";
        libraryHaskellDepends = [
@@ -267324,7 +273205,6 @@ self: {
        ];
        description = "X11-specific implementation for WildBind";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "wilton-ffi" = callPackage
@@ -267594,6 +273474,26 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "witherable_0_3_2" = callPackage
+    ({ mkDerivation, base, base-orphans, containers, hashable
+     , monoidal-containers, transformers, transformers-compat
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "witherable";
+       version = "0.3.2";
+       sha256 = "1iqf3kc9h599lbiym8rf9b4fhj31lqwm1cxqz6x02q9dxyrcprmi";
+       revision = "1";
+       editedCabalFile = "01mprffm41km3pm5nlpsp2ig2izgl6ll9ylrym3dg01f9609aa0z";
+       libraryHaskellDepends = [
+         base base-orphans containers hashable monoidal-containers
+         transformers transformers-compat unordered-containers vector
+       ];
+       description = "filterable traversable";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "witherable" = callPackage
     ({ mkDerivation, base, base-orphans, containers, hashable, lens
      , monoidal-containers, transformers, transformers-compat
@@ -267641,6 +273541,22 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "within_0_2_0_1" = callPackage
+    ({ mkDerivation, base, comonad, exceptions, free, hashable, path
+     , path-like
+     }:
+     mkDerivation {
+       pname = "within";
+       version = "0.2.0.1";
+       sha256 = "1yzfzizx45ngvvbshgw9z8hxl8z7vcr1gann6wnxq4b9669h29ic";
+       libraryHaskellDepends = [
+         base comonad exceptions free hashable path path-like
+       ];
+       description = "A value within another path";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "witness" = callPackage
     ({ mkDerivation, base, constraints, semigroupoids, transformers }:
      mkDerivation {
@@ -268436,22 +274352,6 @@ self: {
      }:
      mkDerivation {
        pname = "world-peace";
-       version = "1.0.1.0";
-       sha256 = "1fx7y9h1yyjc5xn1mpbkwas6p6h06rivzndb545z1qnnp583vzwp";
-       libraryHaskellDepends = [ aeson base deepseq profunctors tagged ];
-       testHaskellDepends = [
-         base doctest Glob should-not-typecheck tasty tasty-hunit text
-       ];
-       description = "Open Union and Open Product Types";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "world-peace_1_0_2_0" = callPackage
-    ({ mkDerivation, aeson, base, deepseq, doctest, Glob, profunctors
-     , should-not-typecheck, tagged, tasty, tasty-hunit, text
-     }:
-     mkDerivation {
-       pname = "world-peace";
        version = "1.0.2.0";
        sha256 = "05r4ils0imcv31sx6h82mwcwcrasrfs6kkip3frdsbf0aizgzcdb";
        libraryHaskellDepends = [ aeson base deepseq profunctors tagged ];
@@ -268460,7 +274360,6 @@ self: {
        ];
        description = "Open Union and Open Product Types";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "worldturtle" = callPackage
@@ -268649,6 +274548,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "wreq-helper" = callPackage
+    ({ mkDerivation, aeson, aeson-result, base, bytestring, http-client
+     , lens, text, wreq
+     }:
+     mkDerivation {
+       pname = "wreq-helper";
+       version = "0.1.0.0";
+       sha256 = "18kmh3swa3bbrkfj1dldi7iy6brdvyhfrbdn8gsz2kcarvhnv5f2";
+       libraryHaskellDepends = [
+         aeson aeson-result base bytestring http-client lens text wreq
+       ];
+       description = "Wreq response process";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "wreq-patchable" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec
      , authenticate-oauth, base, base16-bytestring, base64-bytestring
@@ -269639,8 +275553,8 @@ self: {
      }:
      mkDerivation {
        pname = "xcffib";
-       version = "0.9.0";
-       sha256 = "0nxy4dfwz1wgj6dvg1jp3k4zblwpgiydmv7p20s5scyzgii8jsfk";
+       version = "0.10.0";
+       sha256 = "163fiyppb40xd4wibvjkya86630hlhn1ij0i5xlc547gazawhz4a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -269814,6 +275728,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "xeno_0_4_2" = callPackage
+    ({ mkDerivation, array, base, bytestring, bytestring-mmap, bzlib
+     , criterion, deepseq, filepath, ghc-prim, hexml, hexpat, hspec, mtl
+     , mutable-containers, time, vector, weigh, xml
+     }:
+     mkDerivation {
+       pname = "xeno";
+       version = "0.4.2";
+       sha256 = "0dvjzh7yyijwy2d6215wlxlln9h0ng6bnqasfh38prp6sllxk25j";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         array base bytestring deepseq mtl mutable-containers vector
+       ];
+       testHaskellDepends = [ base bytestring hexml hspec ];
+       benchmarkHaskellDepends = [
+         base bytestring bytestring-mmap bzlib criterion deepseq filepath
+         ghc-prim hexml hexpat time weigh xml
+       ];
+       description = "A fast event-based XML parser in pure Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "xenstore" = callPackage
     ({ mkDerivation, base, bytestring, cereal, mtl, network }:
      mkDerivation {
@@ -270172,8 +276109,8 @@ self: {
      }:
      mkDerivation {
        pname = "xlsx";
-       version = "0.8.0";
-       sha256 = "1wp2ybkf5z4x87a73yygi3g1nqjy6pfb1wdwyvmjqk64ibjz0p7d";
+       version = "0.8.1";
+       sha256 = "1prb6369af2w0rni2ha32yzd9r17yi0xnyn1dzwdzq03maxikgy9";
        libraryHaskellDepends = [
          attoparsec base base64-bytestring binary-search bytestring conduit
          containers data-default deepseq errors extra filepath lens mtl
@@ -270846,8 +276783,8 @@ self: {
     ({ mkDerivation, base, deepseq, text }:
      mkDerivation {
        pname = "xml-types";
-       version = "0.3.7";
-       sha256 = "0x0fdwx6gyhwbx4wfah6ssnpfq5bkybrh0f75wr0gvw4hrnx81k3";
+       version = "0.3.8";
+       sha256 = "102cm0nvfmf9gn8hvn5z8qvmg931laczs33wwd5iyz9bc37f9mfs";
        libraryHaskellDepends = [ base deepseq text ];
        description = "Basic types for representing XML";
        license = stdenv.lib.licenses.mit;
@@ -271083,16 +277020,16 @@ self: {
   "xmobar" = callPackage
     ({ mkDerivation, alsa-core, alsa-mixer, async, base, bytestring
      , containers, dbus, directory, extensible-exceptions, filepath
-     , hinotify, hspec, http-client-tls, http-conduit, http-types, iwlib
-     , libmpd, libXpm, libXrandr, libXrender, mtl, old-locale, parsec
-     , parsec-numbers, process, regex-compat, stm, temporary, time
-     , timezone-olson, timezone-series, transformers, unix, utf8-string
-     , wirelesstools, X11, X11-xft
+     , gauge, hinotify, hspec, http-client-tls, http-conduit, http-types
+     , iwlib, libmpd, libXpm, libXrandr, libXrender, mtl, old-locale
+     , parsec, parsec-numbers, process, regex-compat, stm, temporary
+     , time, timezone-olson, timezone-series, transformers, unix
+     , utf8-string, wirelesstools, X11, X11-xft
      }:
      mkDerivation {
        pname = "xmobar";
-       version = "0.34";
-       sha256 = "0x09xbz7y9ay0046j1xpr9jjk5jqivqi06vm3q6mhcrgc4y922rx";
+       version = "0.36";
+       sha256 = "0kqnadgsqn7m3zw2vk22ssf4aw67rij9l1lpjfsnv2qw0m5apsdl";
        configureFlags = [
          "-fwith_alsa" "-fwith_conduit" "-fwith_datezone" "-fwith_dbus"
          "-fwith_inotify" "-fwith_iwlib" "-fwith_mpd" "-fwith_mpris"
@@ -271119,6 +277056,7 @@ self: {
          filepath hspec mtl old-locale parsec parsec-numbers process
          regex-compat stm temporary time transformers unix X11
        ];
+       benchmarkHaskellDepends = [ base gauge mtl ];
        description = "A Minimalistic Text Based Status Bar";
        license = stdenv.lib.licenses.bsd3;
        platforms = [ "i686-linux" "x86_64-linux" ];
@@ -271591,45 +277529,43 @@ self: {
     ({ mkDerivation, aeson, aeson-options, async, base, bytestring
      , cmark-gfm, containers, data-default, deepseq, directory
      , directory-tree, filepath, fmt, Glob, hspec, hspec-discover
-     , http-client, http-types, lens, 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
+     , 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
      }:
      mkDerivation {
        pname = "xrefcheck";
-       version = "0.1.1.2";
-       sha256 = "177pxga1jylm5kgnx0bj6sf2vsspgy24inpx7sk49hf297fnykll";
+       version = "0.1.2";
+       sha256 = "0m3cya6rfx7ypq4sp172z9fnnl6n11v98f6bj003phrapl6s0vnn";
        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 mtl o-clock optparse-applicative
-         pretty-terminal req roman-numerals template-haskell text
-         text-metrics th-lift-instances th-utilities universum with-utf8
-         yaml
+         http-client http-types lens modern-uri mtl o-clock
+         optparse-applicative pretty-terminal req roman-numerals
+         template-haskell text text-metrics th-lift-instances th-utilities
+         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 mtl o-clock optparse-applicative
-         pretty-terminal req roman-numerals template-haskell text
-         text-metrics th-lift-instances th-utilities universum with-utf8
-         yaml
+         http-client http-types lens modern-uri mtl o-clock
+         optparse-applicative pretty-terminal req roman-numerals
+         template-haskell text text-metrics th-lift-instances th-utilities
+         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 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
+         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
        ];
        testToolDepends = [ hspec-discover ];
        license = stdenv.lib.licenses.mpl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "xsact" = callPackage
@@ -272248,8 +278184,8 @@ self: {
      }:
      mkDerivation {
        pname = "yaml";
-       version = "0.11.4.0";
-       sha256 = "0v69d10ni6ydj4g63ajcmnx6a2j3kbl91vpz678l7k5mkd3chkns";
+       version = "0.11.5.0";
+       sha256 = "1bfdsqckzql50j6ni4fa1470cvkmfiy4skb98cdwnj4rss5p93mj";
        configureFlags = [ "-fsystem-libyaml" ];
        isLibrary = true;
        isExecutable = true;
@@ -272667,23 +278603,19 @@ self: {
      }) {};
 
   "yapb" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
-     , directory, hashable, json, network, pretty, prettyprinter
+    ({ mkDerivation, base, bytestring, directory, hashable, network
      , process, regex-tdfa
      }:
      mkDerivation {
        pname = "yapb";
-       version = "0.1.0";
-       sha256 = "184jrkyijlp644r4zgvicy9xlrx29xmbn7jszpwp3jk5yfavm5w2";
+       version = "0.1.1";
+       sha256 = "1zbk2whfi09wzx9ql4dhkbg50s7v45y309avxljypg7z9i9pvx3x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base directory hashable process regex-tdfa
-       ];
-       executableHaskellDepends = [
-         aeson aeson-pretty base bytestring containers json network pretty
-         prettyprinter regex-tdfa
+         base bytestring directory hashable network process regex-tdfa
        ];
+       executableHaskellDepends = [ base regex-tdfa ];
        testHaskellDepends = [ base ];
        description = "Yet Another Parser Builder (YAPB)";
        license = stdenv.lib.licenses.bsd3;
@@ -273124,18 +279056,18 @@ self: {
 
   "yesod" = callPackage
     ({ mkDerivation, aeson, base, bytestring, conduit
-     , data-default-class, directory, fast-logger, monad-logger
-     , semigroups, shakespeare, streaming-commons, template-haskell
+     , data-default-class, directory, fast-logger, file-embed
+     , monad-logger, shakespeare, streaming-commons, template-haskell
      , text, unix, unordered-containers, wai, wai-extra, wai-logger
      , warp, yaml, yesod-core, yesod-form, yesod-persistent
      }:
      mkDerivation {
        pname = "yesod";
-       version = "1.6.0.1";
-       sha256 = "113qm6x4q2s08l5423j1ksc3bdlbf9pxj4y9p8nf36gbz6dy6xqh";
+       version = "1.6.1.0";
+       sha256 = "1jk55fm58ywp69khacw8n3qk2aybsrlh4bkinjgrah3w01kflmyw";
        libraryHaskellDepends = [
          aeson base bytestring conduit data-default-class directory
-         fast-logger monad-logger semigroups shakespeare streaming-commons
+         fast-logger file-embed monad-logger shakespeare streaming-commons
          template-haskell text unix unordered-containers wai wai-extra
          wai-logger warp yaml yesod-core yesod-form yesod-persistent
        ];
@@ -273143,28 +279075,6 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "yesod_1_6_0_2" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, conduit
-     , data-default-class, directory, fast-logger, monad-logger
-     , semigroups, shakespeare, streaming-commons, template-haskell
-     , text, unix, unordered-containers, wai, wai-extra, wai-logger
-     , warp, yaml, yesod-core, yesod-form, yesod-persistent
-     }:
-     mkDerivation {
-       pname = "yesod";
-       version = "1.6.0.2";
-       sha256 = "0dkaa7kzhdnqryfn8sbcbw5i1plkfckz1664gb1734fqadia32gq";
-       libraryHaskellDepends = [
-         aeson base bytestring conduit data-default-class directory
-         fast-logger monad-logger semigroups shakespeare streaming-commons
-         template-haskell text unix unordered-containers wai wai-extra
-         wai-logger warp yaml yesod-core yesod-form yesod-persistent
-       ];
-       description = "Creation of type-safe, RESTful web applications";
-       license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
   "yesod-alerts" = callPackage
     ({ mkDerivation, alerts, base, blaze-html, blaze-markup, safe, text
      , yesod-core
@@ -273323,16 +279233,17 @@ self: {
 
   "yesod-auth-basic" = callPackage
     ({ mkDerivation, base, base64-bytestring, bytestring, exceptions
-     , hlint, hspec, text, wai, word8, yesod, yesod-test
+     , hspec, monad-control, text, wai, word8, yesod, yesod-test
      }:
      mkDerivation {
        pname = "yesod-auth-basic";
-       version = "0.1.0.2";
-       sha256 = "0b4vyf731wb7idmbqz7n8zm4p7i7y66x94ph7kaxv1jvq05k7bxa";
+       version = "0.1.0.3";
+       sha256 = "0qm65ml82waxapq3v19k6x33cghgg6wg72p5h2j1ii329dv6293b";
        libraryHaskellDepends = [
-         base base64-bytestring bytestring exceptions text wai word8 yesod
+         base base64-bytestring bytestring exceptions monad-control text wai
+         word8 yesod
        ];
-       testHaskellDepends = [ base hlint hspec text yesod yesod-test ];
+       testHaskellDepends = [ base hspec text yesod yesod-test ];
        description = "Yesod Middleware for HTTP Basic Authentication";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -273570,20 +279481,21 @@ self: {
      }) {};
 
   "yesod-auth-oauth2" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, errors, hoauth2, hspec
-     , http-client, http-conduit, http-types, microlens, random
-     , safe-exceptions, text, uri-bytestring, yesod-auth, yesod-core
+    ({ 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.1.2";
-       sha256 = "07jm60q1fbdk53ncirbi8clsimg28k9j12kaq0vx2apn2rlmdy2w";
+       version = "0.6.1.3";
+       sha256 = "0vgxc5xsdhxws8jasngd66pmy4nmz5768fibfzn5m4dc0f5sw4mr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base bytestring errors hoauth2 http-client http-conduit
-         http-types microlens random safe-exceptions text uri-bytestring
-         yesod-auth yesod-core
+         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";
@@ -273658,8 +279570,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-bin";
-       version = "1.6.0.4";
-       sha256 = "0wz44w4c86513ss81a18rknkrkalxyj2g4rlq324ykqwwkihlr1a";
+       version = "1.6.0.6";
+       sha256 = "044xk75pymw6limz08zicxp4lw8jqf6f2ilj8i2qw2h419w3ry9f";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -274440,6 +280352,30 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "yesod-page-cursor" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, hspec
+     , hspec-expectations-lifted, http-link-header, http-types, lens
+     , lens-aeson, monad-logger, mtl, network-uri, persistent
+     , persistent-sqlite, persistent-template, scientific, text, time
+     , unliftio, unliftio-core, wai-extra, yesod, yesod-core, yesod-test
+     }:
+     mkDerivation {
+       pname = "yesod-page-cursor";
+       version = "1.0.0.1";
+       sha256 = "0grh7pnzhxicanf2ipnb0ivq5lal9h42jd2kbbypgxp7qhvp69g3";
+       libraryHaskellDepends = [
+         aeson base bytestring containers http-link-header network-uri text
+         unliftio yesod-core
+       ];
+       testHaskellDepends = [
+         aeson base bytestring hspec hspec-expectations-lifted
+         http-link-header http-types lens lens-aeson monad-logger mtl
+         persistent persistent-sqlite persistent-template scientific text
+         time unliftio unliftio-core wai-extra yesod yesod-core yesod-test
+       ];
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "yesod-paginate" = callPackage
     ({ mkDerivation, base, template-haskell, yesod }:
      mkDerivation {
@@ -274997,14 +280933,14 @@ self: {
      , blaze-builder, bytestring, conduit, containers, cryptonite
      , cryptonite-conduit, css-text, data-default, directory, file-embed
      , filepath, hashable, hjsmin, hspec, http-types, HUnit, memory
-     , mime-types, process, template-haskell, text, transformers
+     , mime-types, process, rio, template-haskell, text, transformers
      , unix-compat, unordered-containers, wai, wai-app-static, wai-extra
      , yesod-core, yesod-test
      }:
      mkDerivation {
        pname = "yesod-static";
-       version = "1.6.0.1";
-       sha256 = "1jd0ryfr2vyrwasyvbqmc6j4ngv1lgz78w427f169l7gyl1firxb";
+       version = "1.6.1.0";
+       sha256 = "18f5hm9ncvkzl8bkn39cg841z0k5iqs5w45afsyk9y6k98pjd54p";
        libraryHaskellDepends = [
          async attoparsec base base64-bytestring blaze-builder bytestring
          conduit containers cryptonite cryptonite-conduit css-text
@@ -275017,8 +280953,9 @@ self: {
          async base base64-bytestring bytestring conduit containers
          cryptonite cryptonite-conduit data-default directory file-embed
          filepath hjsmin hspec http-types HUnit memory mime-types process
-         template-haskell text transformers unix-compat unordered-containers
-         wai wai-app-static wai-extra yesod-core yesod-test
+         rio template-haskell text transformers unix-compat
+         unordered-containers wai wai-app-static wai-extra yesod-core
+         yesod-test
        ];
        description = "Static file serving subsite for Yesod Web Framework";
        license = stdenv.lib.licenses.mit;
@@ -275134,33 +281071,6 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-test";
-       version = "1.6.9.1";
-       sha256 = "01dr3p51nxxj8ihhivi3sdrg1xhjj7pvkzgz59ph823hhh9yd3cx";
-       libraryHaskellDepends = [
-         aeson attoparsec base blaze-builder blaze-html bytestring
-         case-insensitive conduit containers cookie hspec-core html-conduit
-         http-types HUnit memory network pretty-show semigroups text time
-         transformers wai wai-extra xml-conduit xml-types yesod-core
-       ];
-       testHaskellDepends = [
-         base bytestring containers cookie hspec html-conduit http-types
-         HUnit text unliftio unliftio-core wai wai-extra xml-conduit
-         yesod-core yesod-form
-       ];
-       description = "integration testing for WAI/Yesod Applications";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "yesod-test_1_6_10" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, blaze-builder, blaze-html
-     , bytestring, case-insensitive, conduit, containers, cookie, hspec
-     , hspec-core, html-conduit, http-types, HUnit, memory, network
-     , pretty-show, semigroups, text, time, transformers, unliftio
-     , unliftio-core, wai, wai-extra, xml-conduit, xml-types, yesod-core
-     , yesod-form
-     }:
-     mkDerivation {
-       pname = "yesod-test";
        version = "1.6.10";
        sha256 = "0vw6yg5b22a6flbl822z23k0l23as5mmxjcdnj2zgjjv5i713yfx";
        libraryHaskellDepends = [
@@ -275176,7 +281086,6 @@ self: {
        ];
        description = "integration testing for WAI/Yesod Applications";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "yesod-test-json" = callPackage
@@ -275391,15 +281300,20 @@ self: {
      }) {};
 
   "yhseq" = callPackage
-    ({ mkDerivation, base, hspec, hspec-discover }:
+    ({ mkDerivation, base, containers, hspec, hspec-discover, vector }:
      mkDerivation {
        pname = "yhseq";
-       version = "0.2.1.2";
-       sha256 = "1mxjfbnic6pn4jnyc83afpmgq4wnb09f72d359pwx693mfi6vbiy";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base hspec hspec-discover ];
+       version = "0.3.0.1";
+       sha256 = "1daipppqia4ig7xa9wxy2g3gcxrcwhxm1g6j5l81v56vfh0smg9r";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base containers vector ];
+       executableHaskellDepends = [ base containers vector ];
+       testHaskellDepends = [
+         base containers hspec hspec-discover vector
+       ];
        testToolDepends = [ hspec-discover ];
-       description = "Calculation of Y-sequence Hexirp edition";
+       description = "Calculation of YH sequence system";
        license = stdenv.lib.licenses.asl20;
      }) {};
 
@@ -276307,8 +282221,8 @@ self: {
      }:
      mkDerivation {
        pname = "z3";
-       version = "408.1";
-       sha256 = "1r54d289rdfvxqk0774hhh0x2kj8zsh7graahqwwp76r911jb8bp";
+       version = "408.2";
+       sha256 = "1fjf9pfj3fhhcd0ak8rm6m5im2il8n5d21z8yv5c32xnsgj7z89a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers transformers ];
@@ -276441,6 +282355,55 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "zenacy-html" = 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.2";
+       sha256 = "12m953skm4ms6y211ahjrr6gkmrh4p3h2snpcpg1fc039nxgkc9p";
+       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 = stdenv.lib.licenses.mit;
+     }) {};
+
+  "zenacy-unicode" = callPackage
+    ({ mkDerivation, base, bytestring, HUnit, test-framework
+     , test-framework-hunit, text, vector, word8
+     }:
+     mkDerivation {
+       pname = "zenacy-unicode";
+       version = "1.0.0";
+       sha256 = "03sksmmmn380nvh0f139g63b4yx42ziimv79xjja7yx6mhaa0pqf";
+       libraryHaskellDepends = [ base bytestring vector word8 ];
+       testHaskellDepends = [
+         base bytestring HUnit test-framework test-framework-hunit text
+       ];
+       description = "Unicode utilities for Haskell";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "zenc" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -276517,8 +282480,8 @@ self: {
      }:
      mkDerivation {
        pname = "zeolite-lang";
-       version = "0.7.0.2";
-       sha256 = "0n51sbivvzjnspwp2j4mxsm552b0ay7hgmlvj16xy5w17z8r9pg2";
+       version = "0.8.0.0";
+       sha256 = "1ahr69w65hd70jc0jrc3dfz1gnjqxlg9w24djzm6826wskg31fa9";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -276544,8 +282507,8 @@ self: {
      }:
      mkDerivation {
        pname = "zephyr";
-       version = "0.3.1";
-       sha256 = "1bzairza82vp7yydw5f4am0nsc1pldqrz6j4fz1c4lmrp045a87h";
+       version = "0.3.2";
+       sha256 = "0p0n4p4792jdivgqdwf2brbkrw6b5rxfzfq9ph0sjw7h3gkj1was";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -277011,6 +282974,23 @@ self: {
        license = stdenv.lib.licenses.gpl2Plus;
      }) {};
 
+  "zio" = callPackage
+    ({ mkDerivation, base, mtl, transformers, unexceptionalio
+     , unexceptionalio-trans
+     }:
+     mkDerivation {
+       pname = "zio";
+       version = "0.1.0.0";
+       sha256 = "001bkysr4n5azly7cmn7xbgw0bg00ib4yg83klz0k0b5217wg982";
+       libraryHaskellDepends = [
+         base mtl transformers unexceptionalio unexceptionalio-trans
+       ];
+       testHaskellDepends = [
+         base mtl transformers unexceptionalio unexceptionalio-trans
+       ];
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
   "zip" = callPackage
     ({ mkDerivation, base, bytestring, bzlib-conduit, case-insensitive
      , cereal, conduit, conduit-extra, containers, digest, directory
@@ -277022,6 +283002,8 @@ self: {
        pname = "zip";
        version = "1.5.0";
        sha256 = "00lqf0bw6abxdj9rs658blbhabzr1fd1w9dh0qflyxqkd8fqj7h5";
+       revision = "1";
+       editedCabalFile = "08r12h84zp55lfqh53srmivf4xzyq2yyyiw12ja73ipnb0y2ag7i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -277169,8 +283151,8 @@ self: {
      }:
      mkDerivation {
        pname = "zipper-extra";
-       version = "0.1.2.1";
-       sha256 = "1ngdhh2g7gjs8fvzk356qzip3g8bpr6sximpijpx3zc9nalnn2jf";
+       version = "0.1.3.2";
+       sha256 = "0cq21hf40qp025ir9kihsp6b09bsrlgiqd5cfq688w57c2vhcmci";
        libraryHaskellDepends = [
          base comonad comonad-extras exceptions split
        ];
@@ -277261,10 +283243,8 @@ self: {
      }:
      mkDerivation {
        pname = "zlib";
-       version = "0.6.2.1";
-       sha256 = "1l11jraslcrp9d4wnhwfyhwk4fsiq1aq8i6vj81vcq1m2zzi1y7h";
-       revision = "1";
-       editedCabalFile = "0i9g71jvdw22bi9bi8dm5khwzcsv6cv8yadmf7afklg4xigxykfk";
+       version = "0.6.2.2";
+       sha256 = "1fii0qfc60lfp93vwb78p2fv3jjyklgdhw4ms262z6cysq6qkd84";
        libraryHaskellDepends = [ base bytestring ];
        librarySystemDepends = [ zlib ];
        testHaskellDepends = [
@@ -277555,23 +283535,24 @@ self: {
   "zre" = callPackage
     ({ mkDerivation, async, attoparsec, base, binary, bytestring
      , cereal, containers, data-default, directory, filepath
-     , lifted-async, monad-control, mtl, network, network-bsd
-     , network-info, network-multicast, optparse-applicative, process
-     , QuickCheck, quickcheck-instances, random, repline, sockaddr, stm
-     , text, time, transformers-base, uuid, zeromq4-haskell
+     , lifted-async, lifted-base, monad-control, mtl, network
+     , network-bsd, network-info, network-multicast
+     , optparse-applicative, process, QuickCheck, quickcheck-instances
+     , random, repline, sockaddr, stm, text, time, transformers-base
+     , uuid, zeromq4-haskell
      }:
      mkDerivation {
        pname = "zre";
-       version = "0.1.1.0";
-       sha256 = "0xq37fiqy82xvk4bz3ia4gykhm1vr3jlv9p8b1bdmsqsmn8kxd2x";
+       version = "0.1.4.0";
+       sha256 = "1877q8qshp88sghnys6a52c6sjc9qxxg062j473fjyv0vc4cpy4d";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          async attoparsec base binary bytestring cereal containers
-         data-default directory filepath lifted-async monad-control mtl
-         network network-bsd network-info network-multicast
-         optparse-applicative process random sockaddr stm text time
-         transformers-base uuid zeromq4-haskell
+         data-default directory filepath lifted-async lifted-base
+         monad-control mtl network network-bsd network-info
+         network-multicast optparse-applicative process random sockaddr stm
+         text time transformers-base uuid zeromq4-haskell
        ];
        executableHaskellDepends = [
          async base bytestring lifted-async monad-control mtl
@@ -277659,8 +283640,8 @@ self: {
        pname = "ztail";
        version = "1.2.0.2";
        sha256 = "05vpq3kiv1xrby2k1qn41s42cxxxblcgxpnw1sgyznx63pal2hx1";
-       revision = "1";
-       editedCabalFile = "0d0cpgb0v849zxl12c2gkm3x4nmyfycka1pcfix43lawx62rky8s";
+       revision = "2";
+       editedCabalFile = "16w0hgjvj45azdgkzvykiznds5sa38mq9xf5022r7qfhpvps65y0";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
diff --git a/pkgs/development/haskell-modules/non-hackage-packages.nix b/pkgs/development/haskell-modules/non-hackage-packages.nix
index 9a2ff6f4a2a..dc6dbe65061 100644
--- a/pkgs/development/haskell-modules/non-hackage-packages.nix
+++ b/pkgs/development/haskell-modules/non-hackage-packages.nix
@@ -10,10 +10,26 @@ self: super: {
   multi-ghc-travis = throw ("haskellPackages.multi-ghc-travis has been renamed"
     + " to haskell-ci, which is now on hackage");
 
+  dconf2nix = self.callPackage ../tools/haskell/dconf2nix/dconf2nix.nix { };
+
   # https://github.com/channable/vaultenv/issues/1
   vaultenv = self.callPackage ../tools/haskell/vaultenv { };
 
   # spago is not released to Hackage.
   # https://github.com/spacchetti/spago/issues/512
   spago = self.callPackage ../tools/purescript/spago/spago.nix { };
+
+  # HLS and its fork of ghcide that it uses
+  # both are auto-generated by pkgs/development/tools/haskell/haskell-language-server/update.sh
+  haskell-language-server = self.callPackage ../tools/haskell/haskell-language-server { };
+  hls-ghcide = self.callPackage ../tools/haskell/haskell-language-server/hls-ghcide.nix { };
+
+  # cabal2nix --revision <rev> https://github.com/hasura/ci-info-hs.git
+  ci-info = self.callPackage ../misc/haskell/hasura/ci-info {};
+  # cabal2nix --revision <rev> https://github.com/hasura/pg-client-hs.git
+  pg-client = self.callPackage ../misc/haskell/hasura/pg-client {};
+  # cabal2nix --revision <rev> https://github.com/hasura/graphql-parser-hs.git
+  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 {};
 }
diff --git a/pkgs/development/haskell-modules/patches/hasura-884-compat.patch b/pkgs/development/haskell-modules/patches/hasura-884-compat.patch
new file mode 100644
index 00000000000..bc000ba9cca
--- /dev/null
+++ b/pkgs/development/haskell-modules/patches/hasura-884-compat.patch
@@ -0,0 +1,26 @@
+diff --git server/src-lib/Hasura/GraphQL/Transport/WebSocket/Server.hs server/src-lib/Hasura/GraphQL/Transport/WebSocket/Server.hs
+index 6cb70cf0..0c3789cd 100644
+--- server/src-lib/Hasura/GraphQL/Transport/WebSocket/Server.hs
++++ server/src-lib/Hasura/GraphQL/Transport/WebSocket/Server.hs
+@@ -45,7 +45,7 @@ import           GHC.AssertNF
+ import qualified ListT
+ import qualified Network.WebSockets                   as WS
+ import qualified StmContainers.Map                    as STMMap
+-import qualified System.IO.Error                      as E
++--import qualified System.IO.Error                      as E
+ 
+ import qualified Hasura.Logging                       as L
+ 
+@@ -287,12 +287,6 @@ createServerApp (WSServer logger@(L.Logger writeLog) serverStatus) wsHandlers !p
+           let rcv = forever $ do
+                 -- Process all messages serially (important!), in a separate thread:
+                 msg <- liftIO $ 
+-                  -- Re-throw "receiveloop: resource vanished (Connection reset by peer)" :
+-                  --   https://github.com/yesodweb/wai/blob/master/warp/Network/Wai/Handler/Warp/Recv.hs#L112 
+-                  -- as WS exception signaling cleanup below. It's not clear why exactly this gets 
+-                  -- raised occasionally; I suspect an equivalent handler is missing from WS itself.
+-                  -- Regardless this should be safe:
+-                  handleJust (guard . E.isResourceVanishedError) (\()-> throw WS.ConnectionClosed) $
+                     WS.receiveData conn
+                 writeLog $ WSLog wsId (EMessageReceived $ TBS.fromLBS msg) Nothing
+                 _hOnMessage wsHandlers wsConn msg
diff --git a/pkgs/development/haskell-modules/with-packages-wrapper.nix b/pkgs/development/haskell-modules/with-packages-wrapper.nix
index 3b8d906cece..dc105c845d7 100644
--- a/pkgs/development/haskell-modules/with-packages-wrapper.nix
+++ b/pkgs/development/haskell-modules/with-packages-wrapper.nix
@@ -105,14 +105,17 @@ symlinkJoin {
         --set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
     fi
 
-    # ghcide does package discovery without calling our ghc wrapper.
-    if [[ -x "$out/bin/ghcide" ]]; then
-      wrapProgram $out/bin/ghcide  \
+    # ghcide 0.2.0 does package discovery without calling our ghc wrapper.
+    # 2020-08-16 We can most likely remove this workaround as soon as we build ghcide with a newer hie-bios (currently we use 0.5.1 from stack)
+    for prg in ghcide; do
+      if [[ -x "$out/bin/$prg" ]]; then
+        wrapProgram $out/bin/$prg  \
           --set "NIX_${ghcCommandCaps}"        "$out/bin/${ghcCommand}"     \
           --set "NIX_${ghcCommandCaps}PKG"     "$out/bin/${ghcCommand}-pkg" \
           --set "NIX_${ghcCommandCaps}_DOCDIR" "${docDir}"                  \
           --set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
-    fi
+      fi
+    done
 
   '' + (lib.optionalString (stdenv.targetPlatform.isDarwin && !isGhcjs && !stdenv.targetPlatform.isiOS) ''
     # Work around a linker limit in macOS Sierra (see generic-builder.nix):
diff --git a/pkgs/development/interpreters/acl2/0001-Fix-some-paths-for-Nix-build.patch b/pkgs/development/interpreters/acl2/0001-Fix-some-paths-for-Nix-build.patch
new file mode 100644
index 00000000000..2b7f8b6a53b
--- /dev/null
+++ b/pkgs/development/interpreters/acl2/0001-Fix-some-paths-for-Nix-build.patch
@@ -0,0 +1,190 @@
+From 43d23211dd7d22b5264ed06d446f89d632125da8 Mon Sep 17 00:00:00 2001
+From: Keshav Kini <keshav.kini@gmail.com>
+Date: Sat, 30 May 2020 21:27:47 -0700
+Subject: [PATCH 1/2] Fix some paths for Nix build
+
+---
+ books/build/features.sh                       |  1 +
+ .../ipasir/load-ipasir-sharedlib-raw.lsp      | 16 +++----
+ books/projects/smtlink/config.lisp            |  2 +-
+ books/projects/smtlink/examples/examples.lisp |  4 +-
+ books/projects/smtlink/smtlink-config         |  2 +-
+ .../cl+ssl-20181018-git/src/reload.lisp       | 48 ++-----------------
+ .../shellpool-20150505-git/src/main.lisp      | 20 +-------
+ 7 files changed, 15 insertions(+), 78 deletions(-)
+
+diff --git a/books/build/features.sh b/books/build/features.sh
+index c8493d51a..def853f53 100755
+--- a/books/build/features.sh
++++ b/books/build/features.sh
+@@ -84,6 +84,7 @@ fi
+ 
+ 
+ echo "Determining whether an ipasir shared library is installed" 1>&2
++IPASIR_SHARED_LIBRARY=${IPASIR_SHARED_LIBRARY:-@libipasirglucose4@/lib/libipasirglucose4.so}
+ if [[ $IPASIR_SHARED_LIBRARY != '' ]];
+ then
+     if [[ -e $IPASIR_SHARED_LIBRARY ]];
+diff --git a/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp b/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp
+index c6b0b3185..5ac5c675a 100644
+--- a/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp
++++ b/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp
+@@ -28,13 +28,9 @@
+ ;
+ ; Original authors: Sol Swords <sswords@centtech.com>
+ 
+-(er-let* ((libname (acl2::getenv$ "IPASIR_SHARED_LIBRARY" acl2::*the-live-state*)))
+-         (if libname
+-             (handler-case 
+-               (cffi::load-foreign-library libname)
+-               (error () (er hard? 'load-ipasir-shardlib-raw
+-                             "Couldn't load the specified ipasir shared library, ~s0."
+-                             libname)))
+-           (er hard? 'load-ipasir-shardlib-raw
+-               "Couldn't load an ipasir library because the ~
+-                IPASIR_SHARED_LIBRARY environment variable was unset.")))
++(let ((libname "@libipasirglucose4@/lib/libipasirglucose4.so"))
++  (handler-case
++      (cffi::load-foreign-library libname)
++    (error () (er hard? 'load-ipasir-shardlib-raw
++                  "Couldn't load the specified ipasir shared library, ~s0."
++                  libname))))
+diff --git a/books/projects/smtlink/config.lisp b/books/projects/smtlink/config.lisp
+index c74073174..8d92355f7 100644
+--- a/books/projects/smtlink/config.lisp
++++ b/books/projects/smtlink/config.lisp
+@@ -51,7 +51,7 @@ where the system books are."))
+     (make-smtlink-config :interface-dir interface-dir
+                          :smt-module "ACL2_to_Z3"
+                          :smt-class "ACL22SMT"
+-                         :smt-cmd "/usr/bin/env python"
++                         :smt-cmd "python"
+                          :pythonpath "")))
+ 
+ ;; -----------------------------------------------------------------
+diff --git a/books/projects/smtlink/examples/examples.lisp b/books/projects/smtlink/examples/examples.lisp
+index bc66e0165..24f0d639c 100644
+--- a/books/projects/smtlink/examples/examples.lisp
++++ b/books/projects/smtlink/examples/examples.lisp
+@@ -75,7 +75,7 @@ Subgoal 2
+ Subgoal 2.2
+ Subgoal 2.2'
+ Using default SMT-trusted-cp...
+-; SMT solver: `/usr/bin/env python /tmp/py_file/smtlink.w59zR`: 0.52 sec, 7,904 bytes
++; SMT solver: `python /tmp/py_file/smtlink.w59zR`: 0.52 sec, 7,904 bytes
+ Proved!
+ Subgoal 2.2''
+ Subgoal 2.1
+@@ -139,7 +139,7 @@ read back into ACL2.  Below are the outputs from this clause processor called
+ 
+ @({
+ Using default SMT-trusted-cp...
+-; SMT solver: `/usr/bin/env python /tmp/py_file/smtlink.w59zR`: 0.52 sec, 7,904 bytes
++; SMT solver: `python /tmp/py_file/smtlink.w59zR`: 0.52 sec, 7,904 bytes
+ Proved!
+ })
+ 
+diff --git a/books/projects/smtlink/smtlink-config b/books/projects/smtlink/smtlink-config
+index 0d2703545..0f58904ea 100644
+--- a/books/projects/smtlink/smtlink-config
++++ b/books/projects/smtlink/smtlink-config
+@@ -1 +1 @@
+-smt-cmd=/usr/bin/env python
++smt-cmd=python
+diff --git a/books/quicklisp/bundle/software/cl+ssl-20181018-git/src/reload.lisp b/books/quicklisp/bundle/software/cl+ssl-20181018-git/src/reload.lisp
+index 3f6aa35d0..ac4012363 100644
+--- a/books/quicklisp/bundle/software/cl+ssl-20181018-git/src/reload.lisp
++++ b/books/quicklisp/bundle/software/cl+ssl-20181018-git/src/reload.lisp
+@@ -20,54 +20,12 @@
+ (in-package :cl+ssl)
+ 
+ (cffi:define-foreign-library libcrypto
+-  (:openbsd "libcrypto.so")
+-  (:darwin (:or "/opt/local/lib/libcrypto.dylib" ;; MacPorts
+-                "/sw/lib/libcrypto.dylib"        ;; Fink
+-                "/usr/local/opt/openssl/lib/libcrypto.dylib" ;; Homebrew
+-                "/usr/local/lib/libcrypto.dylib" ;; personalized install
+-                "libcrypto.dylib"                ;; default system libcrypto, which may have insufficient crypto
+-                "/usr/lib/libcrypto.dylib")))
++  (t "@openssl@/lib/libcrypto.so"))
+ 
+ (cffi:define-foreign-library libssl
+-  (:windows (:or "libssl32.dll" "ssleay32.dll"))
+-  ;; The default OS-X libssl seems have had insufficient crypto algos
+-  ;; (missing TLSv1_[1,2]_XXX methods,
+-  ;; see https://github.com/cl-plus-ssl/cl-plus-ssl/issues/56)
+-  ;; so first try to load possible custom installations of libssl
+-  (:darwin (:or "/opt/local/lib/libssl.dylib" ;; MacPorts
+-                "/sw/lib/libssl.dylib"        ;; Fink
+-                "/usr/local/opt/openssl/lib/libssl.dylib" ;; Homebrew
+-                "/usr/local/lib/libssl.dylib" ;; personalized install
+-                "libssl.dylib"                ;; default system libssl, which may have insufficient crypto
+-                "/usr/lib/libssl.dylib"))
+-  (:solaris (:or "/lib/64/libssl.so"
+-                 "libssl.so.0.9.8" "libssl.so" "libssl.so.4"))
+-  ;; Unlike some other systems, OpenBSD linker,
+-  ;; when passed library name without versions at the end,
+-  ;; will locate the library with highest macro.minor version,
+-  ;; so we can just use just "libssl.so".
+-  ;; More info at https://github.com/cl-plus-ssl/cl-plus-ssl/pull/2.
+-  (:openbsd "libssl.so")
+-  ((and :unix (not :cygwin)) (:or "libssl.so.1.0.2m"
+-                                  "libssl.so.1.0.2k"
+-                                  "libssl.so.1.0.2"
+-                                  "libssl.so.1.0.1l"
+-                                  "libssl.so.1.0.1j"
+-                                  "libssl.so.1.0.1e"
+-                                  "libssl.so.1.0.1"
+-                                  "libssl.so.1.0.0q"
+-                                  "libssl.so.1.0.0"
+-                                  "libssl.so.0.9.8ze"
+-                                  "libssl.so.0.9.8"
+-                                  "libssl.so.10"
+-                                  "libssl.so.4"
+-                                  "libssl.so"))
+-  (:cygwin "cygssl-1.0.0.dll")
+-  (t (:default "libssl3")))
+-
+-(cffi:define-foreign-library libeay32
+-  (:windows "libeay32.dll"))
++  (t "@openssl@/lib/libssl.so"))
+ 
++(cffi:define-foreign-library libeay32)
+ 
+ (unless (member :cl+ssl-foreign-libs-already-loaded
+                 *features*)
+diff --git a/books/quicklisp/bundle/software/shellpool-20150505-git/src/main.lisp b/books/quicklisp/bundle/software/shellpool-20150505-git/src/main.lisp
+index cda8dc94c..11035ea09 100644
+--- a/books/quicklisp/bundle/software/shellpool-20150505-git/src/main.lisp
++++ b/books/quicklisp/bundle/software/shellpool-20150505-git/src/main.lisp
+@@ -106,26 +106,8 @@
+ ; Glue
+ 
+ 
+-#-sbcl
+ (defun find-bash ()
+-  #+windows "bash.exe"
+-  #-windows "bash")
+-
+-#+sbcl
+-;; SBCL (on Linux, at least) won't successfully run "bash" all by itself.  So,
+-;; on SBCL, try to find a likely bash.  BOZO this probably isn't great.  It
+-;; would be better to search the user's PATH for which bash to use.
+-(let ((found-bash))
+-  (defun find-bash ()
+-    (or found-bash
+-        (let ((paths-to-try '("/bin/bash"
+-                              "/usr/bin/bash"
+-                              "/usr/local/bin/bash")))
+-          (loop for path in paths-to-try do
+-                (when (cl-fad::file-exists-p path)
+-                  (setq found-bash path)
+-                  (return-from find-bash path)))
+-          (error "Bash not found among ~s" paths-to-try)))))
++  "@bash@/bin/bash")
+ 
+ #+(or allegro lispworks)
+ (defstruct bashprocess
+-- 
+2.25.4
+
diff --git a/pkgs/development/interpreters/acl2/0002-Restrict-RDTSC-to-x86.patch b/pkgs/development/interpreters/acl2/0002-Restrict-RDTSC-to-x86.patch
new file mode 100644
index 00000000000..74af5adef64
--- /dev/null
+++ b/pkgs/development/interpreters/acl2/0002-Restrict-RDTSC-to-x86.patch
@@ -0,0 +1,29 @@
+From b0ccf68f277d0bd5e6fc9d41742f31ddda99a955 Mon Sep 17 00:00:00 2001
+From: Keshav Kini <keshav.kini@gmail.com>
+Date: Mon, 1 Jun 2020 21:42:24 -0700
+Subject: [PATCH 2/2] Restrict RDTSC to x86
+
+Backported from [1].  According to Curtis Dunham, this should fix the ACL2 base
+system build on ARM.
+
+[1]: https://github.com/acl2/acl2/commit/292fa2ccc6217e6307d7bb8373eb90f5d258ea5e
+---
+ memoize-raw.lisp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/memoize-raw.lisp b/memoize-raw.lisp
+index 205e78653..478198dee 100644
+--- a/memoize-raw.lisp
++++ b/memoize-raw.lisp
+@@ -189,7 +189,7 @@
+ ;; RDTSC nonsense, but we still can report mysterious results since we have no
+ ;; clue about which core we are running on in CCL (or, presumably, SBCL).
+ 
+-#+(or ccl sbcl)
++#+(and (or ccl sbcl) x86-64)
+ (eval-when
+  (:execute :compile-toplevel :load-toplevel)
+  (when #+ccl (fboundp 'ccl::rdtsc)
+-- 
+2.25.4
+
diff --git a/pkgs/development/interpreters/acl2/default.nix b/pkgs/development/interpreters/acl2/default.nix
index 39b243a0ce6..e3c62aae983 100644
--- a/pkgs/development/interpreters/acl2/default.nix
+++ b/pkgs/development/interpreters/acl2/default.nix
@@ -1,15 +1,19 @@
-{ stdenv, fetchFromGitHub,
-  # perl, which, nettools,
-  sbcl }:
-
-let hashes = {
-  "8.0" = "1x1giy2c1y6krg3kf8pf9wrmvk981shv0pxcwi483yjqm90xng4r";
-  "8.3" = "0c0wimaf16nrr3d6cxq6p7nr7rxffvpmn66hkpwc1m6zpcipf0y5";
-};
-revs = {
-  "8.0" = "8.0";
-  "8.3" = "8.3";
-};
+{ stdenv, callPackage, fetchFromGitHub, writeShellScriptBin, substituteAll
+, sbcl, bash, which, perl, nettools
+, openssl, glucose, minisat, abc-verifier, z3, python2
+, certifyBooks ? true
+} @ args:
+
+let
+  # Disable immobile space so we don't run out of memory on large books; see
+  # http://www.cs.utexas.edu/users/moore/acl2/current/HTML/installation/requirements.html#Obtaining-SBCL
+  sbcl = args.sbcl.override { disableImmobileSpace = true; };
+
+  # Wrap to add `-model` argument because some of the books in 8.3 need this.
+  # Fixed upstream (https://github.com/acl2/acl2/commit/0359538a), so this can
+  # be removed in ACL2 8.4.
+  glucose = writeShellScriptBin "glucose" ''exec ${args.glucose}/bin/glucose -model "$@"'';
+
 in stdenv.mkDerivation rec {
   pname = "acl2";
   version = "8.3";
@@ -17,62 +21,117 @@ in stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "acl2-devel";
     repo = "acl2-devel";
-    rev = revs.${version};
-    sha256 = hashes.${version};
+    rev = "${version}";
+    sha256 = "0c0wimaf16nrr3d6cxq6p7nr7rxffvpmn66hkpwc1m6zpcipf0y5";
   };
 
-  buildInputs = [ sbcl
-    # which perl nettools
+  libipasirglucose4 = callPackage ./libipasirglucose4 { };
+
+  patches = [
+    (substituteAll {
+      src = ./0001-Fix-some-paths-for-Nix-build.patch;
+      inherit bash libipasirglucose4;
+      openssl = openssl.out;
+    })
+    ./0002-Restrict-RDTSC-to-x86.patch
   ];
 
+  buildInputs = [
+    # ACL2 itself only needs a Common Lisp compiler/interpreter:
+    sbcl
+  ] ++ stdenv.lib.optionals certifyBooks [
+    # To build community books, we need Perl and a couple of utilities:
+    which perl nettools
+    # Some of the books require one or more of these external tools:
+    openssl.out glucose minisat abc-verifier libipasirglucose4
+    z3 (python2.withPackages (ps: [ ps.z3 ]))
+  ];
+
+  # NOTE: Parallel building can be memory-intensive depending on the number of
+  # concurrent jobs.  For example, this build has been seen to use >120GB of
+  # RAM on an 85 core machine.
   enableParallelBuilding = true;
 
-  phases = "unpackPhase installPhase";
+  preConfigure = ''
+    # When certifying books, ACL2 doesn't like $HOME not existing.
+    export HOME=$(pwd)/fake-home
+  '' + stdenv.lib.optionalString certifyBooks ''
+    # Some books also care about $USER being nonempty.
+    export USER=nobody
+  '';
 
-  installSuffix = "acl2";
+  postConfigure = ''
+    # ACL2 and its books need to be built in place in the out directory because
+    # the proof artifacts are not relocatable. Since ACL2 mostly expects
+    # everything to exist in the original source tree layout, we put it in
+    # $out/share/${pname} and create symlinks in $out/bin as necessary.
+    mkdir -p $out/share/${pname}
+    cp -pR . $out/share/${pname}
+    cd $out/share/${pname}
+  '';
+
+  preBuild = "mkdir -p $HOME";
+  makeFlags="LISP=${sbcl}/bin/sbcl";
+
+  doCheck = true;
+  checkTarget = "mini-proveall";
 
   installPhase = ''
-    mkdir -p $out/share/${installSuffix}
     mkdir -p $out/bin
-    cp -R . $out/share/${installSuffix}
-    cd $out/share/${installSuffix}
+    ln -s $out/share/${pname}/saved_acl2           $out/bin/${pname}
+  '' + stdenv.lib.optionalString certifyBooks ''
+    ln -s $out/share/${pname}/books/build/cert.pl  $out/bin/${pname}-cert
+    ln -s $out/share/${pname}/books/build/clean.pl $out/bin/${pname}-clean
+  '';
 
-    # make ACL2 image
-    make LISP=${sbcl}/bin/sbcl
+  preDistPhases = [ (if certifyBooks then "certifyBooksPhase" else "removeBooksPhase") ];
 
-    # The community books don't build properly under Nix yet.
-    rm -rf books
-    #make ACL2=$out/share/saved_acl2 USE_QUICKLISP=1 regression-everything
+  certifyBooksPhase = ''
+    # Certify the community books
+    pushd $out/share/${pname}/books
+    makeFlags="ACL2=$out/share/${pname}/saved_acl2"
+    buildFlags="everything"
+    buildPhase
+    popd
+  '';
 
-    cp saved_acl2 $out/bin/acl2
+  removeBooksPhase = ''
+    # Delete the community books
+    rm -rf $out/share/${pname}/books
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "An interpreter and a prover for a Lisp dialect";
     longDescription = ''
-      ACL2 is a logic and programming language in which you can model
-      computer systems, together with a tool to help you prove
-      properties of those models. "ACL2" denotes "A Computational
-      Logic for Applicative Common Lisp".
-
-      ACL2 is part of the Boyer-Moore family of provers, for which its
-      authors have received the 2005 ACM Software System Award.
-
-      NOTE: In nixpkgs, the community books that usually ship with
-      ACL2 have been removed because it is not currently possible to
-      build them with Nix.
-    '';
+      ACL2 is a logic and programming language in which you can model computer
+      systems, together with a tool to help you prove properties of those
+      models. "ACL2" denotes "A Computational Logic for Applicative Common
+      Lisp".
+
+      ACL2 is part of the Boyer-Moore family of provers, for which its authors
+      have received the 2005 ACM Software System Award.
+
+      This package installs the main ACL2 executable ${pname}, as well as the
+      build tools cert.pl and clean.pl, renamed to ${pname}-cert and
+      ${pname}-clean.
+
+    '' + (if certifyBooks then ''
+      The community books are also included and certified with the `make
+      everything` target.
+    '' else ''
+      The community books are not included in this package.
+    '');
     homepage = "http://www.cs.utexas.edu/users/moore/acl2/";
     downloadPage = "https://github.com/acl2-devel/acl2-devel/releases";
-    # There are a bunch of licenses in the community books, but since
-    # they currently get deleted during the build, we don't mention
-    # their licenses here.  ACL2 proper is released under a BSD
-    # 3-clause license.
-    #license = with stdenv.lib.licenses;
-    #[ free bsd3 mit gpl2 llgpl21 cc0 publicDomain ];
-    license = stdenv.lib.licenses.bsd3;
-    maintainers = with stdenv.lib.maintainers; [ kini raskin ];
-    platforms = stdenv.lib.platforms.all;
-    broken = stdenv.isAarch64 && stdenv.isLinux;
+    license = with licenses; [
+      # ACL2 itself is bsd3
+      bsd3
+    ] ++ optionals certifyBooks [
+      # The community books are mostly bsd3 or mit but with a few
+      # other things thrown in.
+      mit gpl2 llgpl21 cc0 publicDomain unfreeRedistributable
+    ];
+    maintainers = with maintainers; [ kini raskin ];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/interpreters/acl2/libipasirglucose4/0001-Support-shared-library-build.patch b/pkgs/development/interpreters/acl2/libipasirglucose4/0001-Support-shared-library-build.patch
new file mode 100644
index 00000000000..c78fa1ab925
--- /dev/null
+++ b/pkgs/development/interpreters/acl2/libipasirglucose4/0001-Support-shared-library-build.patch
@@ -0,0 +1,46 @@
+From 0f48e046f44624f4d4d8255ac5bd26397a38f16c Mon Sep 17 00:00:00 2001
+From: Keshav Kini <keshav.kini@gmail.com>
+Date: Sun, 23 Feb 2020 14:09:30 -0800
+Subject: [PATCH] Support shared library build
+
+Patch taken from [the ACL2 Books documentation][1].
+
+- Add " -fPIC" to the CXXFLAGS to build position-independent code,
+  required for shared libraries.
+
+- Add the line "export CXXFLAGS" below the setting of CXXFLAGS, so that
+  those flags apply to the recursive make of the core solver library.
+
+- Fix a typo: replace the occurrence of "CXXLAGS" with "CXXFLAGS".
+
+[1]: http://www.cs.utexas.edu/users/moore/acl2/v8-2/combined-manual/index.html?topic=IPASIR____BUILDING-AN-IPASIR-SOLVER-LIBRARY
+---
+ makefile | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/makefile b/makefile
+index 07121de..4e85c4b 100755
+--- a/makefile
++++ b/makefile
+@@ -29,7 +29,8 @@ TARGET=libipasir$(SIG).a
+ 
+ CXX=g++  
+ 
+-CXXFLAGS= -g -std=c++11 -Wall -DNDEBUG -O3
++CXXFLAGS= -g -std=c++11 -Wall -DNDEBUG -O3 -fPIC
++export CXXFLAGS
+ 
+ #-----------------------------------------------------------------------#
+ #- REQUIRED TOP RULES --------------------------------------------------#
+@@ -67,7 +68,7 @@ libipasir$(SIG).a: .FORCE
+ #-----------------------------------------------------------------------#
+ 
+ ipasir$(NAME)glue.o: ipasir$(NAME)glue.cc ipasir.h makefile
+-	$(CXX) -g  -std=c++11 $(CXXLAGS) \
++	$(CXX) -g  -std=c++11 $(CXXFLAGS) \
+ 	  -DVERSION=\"$(VERSION)\" \
+ 	  -I$(DIR) -I$(DIR)/core -c ipasir$(NAME)glue.cc
+ 
+-- 
+2.23.1
+
diff --git a/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix b/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix
new file mode 100644
index 00000000000..5186cd69584
--- /dev/null
+++ b/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, zlib, unzip }:
+
+stdenv.mkDerivation rec {
+  pname = "libipasirglucose4";
+  # This library has no version number AFAICT (beyond generally being based on
+  # Glucose 4.x), but it was submitted to the 2017 SAT competition so let's use
+  # that as the version number, I guess.
+  version = "2017";
+
+  src = fetchurl {
+    url = "https://baldur.iti.kit.edu/sat-competition-2017/solvers/incremental/glucose-ipasir.zip";
+    sha256 = "0xchgady9vwdh8frmc8swz6va53igp2wj1y9sshd0g7549n87wdj";
+  };
+  nativeBuildInputs = [ unzip ];
+
+  buildInputs = [ zlib ];
+
+  sourceRoot = "sat/glucose4";
+  patches = [ ./0001-Support-shared-library-build.patch ];
+
+  postBuild = ''
+    g++ -shared -Wl,-soname,libipasirglucose4.so -o libipasirglucose4.so \
+        ipasirglucoseglue.o libipasirglucose4.a
+  '';
+
+  installPhase = ''
+    install -D libipasirglucose4.so $out/lib/libipasirglucose4.so
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Shared library providing IPASIR interface to the Glucose SAT solver";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ kini ];
+  };
+}
diff --git a/pkgs/development/interpreters/alda/default.nix b/pkgs/development/interpreters/alda/default.nix
new file mode 100644
index 00000000000..3e5273d6329
--- /dev/null
+++ b/pkgs/development/interpreters/alda/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, jre }:
+
+stdenv.mkDerivation rec {
+  pname = "alda";
+  version = "1.4.2";
+
+  src = fetchurl {
+    url = "https://github.com/alda-lang/alda/releases/download/${version}/alda";
+    sha256 = "1d0412jw37gh1y7i8cmaml8r4sn516i6pxmm8m16yprqmz6glx28";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    install -Dm755 $src $out/bin/alda
+    sed -i -e '1 s!java!${jre}/bin/java!' $out/bin/alda
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A music programming language for musicians.";
+    homepage = "https://alda.io";
+    license = licenses.epl10;
+    maintainers = [ maintainers.ericdallo ];
+    platforms = jre.meta.platforms;
+  };
+
+}
diff --git a/pkgs/development/interpreters/chibi/default.nix b/pkgs/development/interpreters/chibi/default.nix
index f0de3f64091..7bf4c0fd52d 100644
--- a/pkgs/development/interpreters/chibi/default.nix
+++ b/pkgs/development/interpreters/chibi/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, makeWrapper }:
 let
-  version = "0.8";
+  version = "0.9.1";
   name = "chibi-scheme-${version}";
 in
 stdenv.mkDerivation {
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
     owner = "ashinn";
     repo = "chibi-scheme";
     rev = version;
-    sha256 = "0269d5fhaz7nqjb41vh7yz63mp5s4z08fn4sspwc06z32xksigw9";
+    sha256 = "0nd63i924ifh39cba1hd4sbi6vh1cb73v97nrn4bf8rrjh3k8pdi";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/development/interpreters/clojure/default.nix b/pkgs/development/interpreters/clojure/default.nix
index 814af36811c..53cef387ae4 100644
--- a/pkgs/development/interpreters/clojure/default.nix
+++ b/pkgs/development/interpreters/clojure/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "clojure";
-  version = "1.10.1.547";
+  version = "1.10.1.645";
 
   src = fetchurl {
     url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz";
-    sha256 = "06lg4z3q0fzxlbmx92g5qb0w3nw83dbwkzh3zjdy9ixrpm7b84i0";
+    sha256 = "1z6a9an8ls992y4japmzdxay7c5d2z9s2q1xl4g615r23jwpcsf9";
   };
 
   nativeBuildInputs = [
@@ -18,20 +18,21 @@ stdenv.mkDerivation rec {
     let
       binPath = stdenv.lib.makeBinPath [ rlwrap jdk11 ];
     in
-      ''
-        mkdir -p $out/libexec
-        cp clojure-tools-${version}.jar $out/libexec
-        cp example-deps.edn $out
-        cp deps.edn $out
+    ''
+      mkdir -p $out/libexec
+      cp clojure-tools-${version}.jar $out/libexec
+      cp example-deps.edn $out
+      cp deps.edn $out
+      cp clj_exec.clj $out
 
-        substituteInPlace clojure --replace PREFIX $out
+      substituteInPlace clojure --replace PREFIX $out
 
-        install -Dt $out/bin clj clojure
-        wrapProgram $out/bin/clj --prefix PATH : $out/bin:${binPath}
-        wrapProgram $out/bin/clojure --prefix PATH : $out/bin:${binPath}
+      install -Dt $out/bin clj clojure
+      wrapProgram $out/bin/clj --prefix PATH : $out/bin:${binPath}
+      wrapProgram $out/bin/clojure --prefix PATH : $out/bin:${binPath}
 
-        installManPage clj.1 clojure.1
-      '';
+      installManPage clj.1 clojure.1
+    '';
 
   doInstallCheck = true;
   installCheckPhase = ''
diff --git a/pkgs/development/interpreters/elixir/1.10.nix b/pkgs/development/interpreters/elixir/1.10.nix
index d63a94d98d6..04f4b5af240 100644
--- a/pkgs/development/interpreters/elixir/1.10.nix
+++ b/pkgs/development/interpreters/elixir/1.10.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.10.3";
-  sha256 = "18bqqqzvhr1zj491wc3d36a310mg1wcs12npp70zfmgqrc60q65a";
+  version = "1.10.4";
+  sha256 = "16j4rmm3ix088fvxhvyjqf1hnfg7wiwa87gml3b2mrwirdycbinv";
   minimumOTPVersion = "21";
 }
diff --git a/pkgs/development/interpreters/erlang/R23.nix b/pkgs/development/interpreters/erlang/R23.nix
new file mode 100644
index 00000000000..d42508c2ef9
--- /dev/null
+++ b/pkgs/development/interpreters/erlang/R23.nix
@@ -0,0 +1,13 @@
+{ mkDerivation }:
+
+# How to obtain `sha256`:
+# nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
+mkDerivation {
+  version = "23.0.3";
+  sha256 = "133aw1ffkxdf38na3smmvn5qwwlalh4r4a51793h1wkhdzkyl6mv";
+
+  prePatch = ''
+    substituteInPlace make/configure.in --replace '`sw_vers -productVersion`' "''${MACOSX_DEPLOYMENT_TARGET:-10.12}"
+    substituteInPlace erts/configure.in --replace '-Wl,-no_weak_imports' ""
+  '';
+}
diff --git a/pkgs/development/interpreters/erlang/generic-builder.nix b/pkgs/development/interpreters/erlang/generic-builder.nix
index f80e1f344f7..af944e6fd14 100644
--- a/pkgs/development/interpreters/erlang/generic-builder.nix
+++ b/pkgs/development/interpreters/erlang/generic-builder.nix
@@ -3,6 +3,7 @@
 , openjdk ? null # javacSupport
 , unixODBC ? null # odbcSupport
 , libGL ? null, libGLU ? null, wxGTK ? null, wxmac ? null, xorg ? null # wxSupport
+, parallelBuild ? false
 , withSystemd ? stdenv.isLinux, systemd # systemd support in epmd
 }:
 
@@ -60,7 +61,7 @@ in stdenv.mkDerivation ({
   debugInfo = enableDebugInfo;
 
   # On some machines, parallel build reliably crashes on `GEN    asn1ct_eval_ext.erl` step
-  enableParallelBuilding = false;
+  enableParallelBuilding = parallelBuild;
 
   # Clang 4 (rightfully) thinks signed comparisons of pointers with NULL are nonsense
   prePatch = ''
diff --git a/pkgs/development/interpreters/evcxr/default.nix b/pkgs/development/interpreters/evcxr/default.nix
index 4430298beb5..11b9cd1ba50 100644
--- a/pkgs/development/interpreters/evcxr/default.nix
+++ b/pkgs/development/interpreters/evcxr/default.nix
@@ -2,21 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "evcxr";
-  version = "0.5.1";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "evcxr";
-    rev = "582ce09f216d4812f7d152f6eedf0b034fc4dbbd";
-    sha256 = "12hlqgh74z8vmd7fkxh4vk3dqp8hlhzkxnbyywk6nphi562n6w5w";
+    rev = "v${version}";
+    sha256 = "144xqi19d2nj9qgmhpx6d1kfhx9vfkmk7rnq6nzybpx4mbbl3ki2";
   };
 
-  cargoSha256 = "0yr8vwlpfsg47sg0032yrsdcgxyky0hy4963zkh0pmjykbyqkb3h";
+  cargoSha256 = "07lzxh0wh6azrlzfaacg29zmkn8jdnkdqbwgd5ajy79y8nii3c7z";
 
   nativeBuildInputs = [ pkgconfig makeWrapper cmake ];
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
   postInstall = ''
     wrapProgram $out/bin/evcxr --prefix PATH : ${stdenv.lib.makeBinPath [ cargo gcc ]}
+    wrapProgram $out/bin/evcxr_jupyter --prefix PATH : ${stdenv.lib.makeBinPath [ cargo gcc ]}
     rm $out/bin/testing_runtime
   '';
 
@@ -25,6 +26,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/google/evcxr";
     license = licenses.asl20;
     maintainers = with maintainers; [ protoben ma27 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/interpreters/groovy/default.nix b/pkgs/development/interpreters/groovy/default.nix
index 1572f5e4be2..97e997bdd69 100644
--- a/pkgs/development/interpreters/groovy/default.nix
+++ b/pkgs/development/interpreters/groovy/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "groovy";
-  version = "3.0.2";
+  version = "3.0.3";
 
   src = fetchurl {
     url = "http://dl.bintray.com/groovy/maven/apache-groovy-binary-${version}.zip";
-    sha256 = "1ddw3fqrmwh4w6z6xgck4jhmq33rwgbmpjw07g12ri1vgw4xks9w";
+    sha256 = "0xdm70b61pdj8z3g08az16y9b6cpz5hv7iwvwfyfyxrjdi47h419";
   };
 
   buildInputs = [ unzip makeWrapper ];
diff --git a/pkgs/development/interpreters/guile/2.0.nix b/pkgs/development/interpreters/guile/2.0.nix
index b5b83e18025..5b26b38dbd4 100644
--- a/pkgs/development/interpreters/guile/2.0.nix
+++ b/pkgs/development/interpreters/guile/2.0.nix
@@ -59,7 +59,7 @@
   # "libgcc_s.so.1 must be installed for pthread_cancel to work".
 
   # don't have "libgcc_s.so.1" on darwin
-  LDFLAGS = stdenv.lib.optionalString (!stdenv.isDarwin) "-lgcc_s";
+  LDFLAGS = stdenv.lib.optionalString (!stdenv.isDarwin && !stdenv.hostPlatform.isMusl) "-lgcc_s";
 
   configureFlags = [ "--with-libreadline-prefix" ]
     ++ stdenv.lib.optionals stdenv.isSunOS [
diff --git a/pkgs/development/interpreters/hy/default.nix b/pkgs/development/interpreters/hy/default.nix
index a3aca532b0f..a8890b048fb 100644
--- a/pkgs/development/interpreters/hy/default.nix
+++ b/pkgs/development/interpreters/hy/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "hy";
-  version = "0.18.0";
+  version = "0.19.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "04dfwm336gw61fmgwikvh0cnxk682p19b4w555wl5d7mlym4rwj2";
+    sha256 = "05k05qmiiysiwdc05sxmanwhv1crfwbb3l8swxfisbzbvmv1snis";
   };
 
   checkInputs = with python3Packages; [ flake8 pytest ];
diff --git a/pkgs/development/interpreters/j/default.nix b/pkgs/development/interpreters/j/default.nix
index 8e6b434281e..c612135cd18 100644
--- a/pkgs/development/interpreters/j/default.nix
+++ b/pkgs/development/interpreters/j/default.nix
@@ -1,16 +1,16 @@
 { stdenv, fetchFromGitHub, readline, libedit, bc
-, avxSupport ? false
+, avxSupport ? stdenv.hostPlatform.avxSupport
 }:
 
 stdenv.mkDerivation rec {
   pname = "j";
   version = "901";
-  jtype = "release-e";
+  jtype = "release-f";
   src = fetchFromGitHub {
     owner = "jsoftware";
     repo = "jsource";
     rev = "j${version}-${jtype}";
-    sha256 = "13ky37rrl6mc66fckrdnrw64gmvq1qlv6skzd513lab4d0wigshw";
+    sha256 = "1776021m0j1aanzwg60by83n53pw7i6afd5wplfzczwk8bywax4p";
     name = "jsource";
   };
 
diff --git a/pkgs/development/interpreters/joker/default.nix b/pkgs/development/interpreters/joker/default.nix
index 823ab6d1099..7f773882d8f 100644
--- a/pkgs/development/interpreters/joker/default.nix
+++ b/pkgs/development/interpreters/joker/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "joker";
-  version = "0.15.4";
+  version = "0.15.6";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "candid82";
     repo = "joker";
-    sha256 = "1ad6cdqadd1zs9zh85zyhdiiv6ir28k28w034vzsx5zaipvy4kml";
+    sha256 = "1yi9q8ibia6gz6s30i3bjrbmlhj6knrb3d73113dxrs8abi1mkbh";
   };
 
   vendorSha256 = "031ban30kx84r54fj9aq96pwkz9nqh4p9yzs4l8i1wqmy52rldvl";
 
+  doCheck = false;
+
   preBuild = ''
     go generate ./...
   '';
@@ -23,7 +25,6 @@ buildGoModule rec {
     homepage = "https://github.com/candid82/joker";
     description = "A small Clojure interpreter and linter written in Go";
     license = licenses.epl10;
-    platforms = platforms.all;
     maintainers = with maintainers; [ andrestylianos ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/interpreters/jruby/default.nix b/pkgs/development/interpreters/jruby/default.nix
index 79cb1c7154b..e4511da498c 100644
--- a/pkgs/development/interpreters/jruby/default.nix
+++ b/pkgs/development/interpreters/jruby/default.nix
@@ -2,15 +2,15 @@
 
 let
 # The version number here is whatever is reported by the RUBY_VERSION string
-rubyVersion = callPackage ../ruby/ruby-version.nix {} "2" "3" "3" "";
+rubyVersion = callPackage ../ruby/ruby-version.nix {} "2" "5" "7" "";
 jruby = stdenv.mkDerivation rec {
   pname = "jruby";
 
-  version = "9.2.11.1";
+  version = "9.2.13.0";
 
   src = fetchurl {
     url = "https://s3.amazonaws.com/jruby.org/downloads/${version}/jruby-bin-${version}.tar.gz";
-    sha256 = "1p4ml5rqidqllc7z85zn2q4pyyih71j0gb71wl43j4v74p44j17i";
+    sha256 = "0n5glz6xm3skrfihzn3g5awdxpjsqn2k8k46gv449rk2l50w5a3k";
   };
 
   buildInputs = [ makeWrapper ];
@@ -46,11 +46,12 @@ jruby = stdenv.mkDerivation rec {
     libPath = "lib/${rubyEngine}/${rubyVersion.libDir}";
   };
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Ruby interpreter written in Java";
     homepage = "http://jruby.org/";
-    license = with stdenv.lib.licenses; [ cpl10 gpl2 lgpl21 ];
-    platforms = stdenv.lib.platforms.unix;
+    license = with licenses; [ cpl10 gpl2 lgpl21 ];
+    platforms = platforms.unix;
+    maintainers = [ maintainers.fzakaria ];
   };
 };
 in jruby.overrideAttrs (oldAttrs: {
diff --git a/pkgs/development/interpreters/luajit/2.0.nix b/pkgs/development/interpreters/luajit/2.0.nix
index 3f0fa7303eb..afb5dd9c5b6 100644
--- a/pkgs/development/interpreters/luajit/2.0.nix
+++ b/pkgs/development/interpreters/luajit/2.0.nix
@@ -1,10 +1,10 @@
 { self, callPackage, lib }:
 callPackage ./default.nix {
   inherit self;
-  version = "2.0.5-2020-03-20";
-  rev = "e613105";
+  version = "2.0.5-2020-08-09";
+  rev = "e296f56";
   isStable = true;
-  sha256 = "0k843z90s4hi0qhri6ixy8sv21nig8jwbznpqgqg845ji530kqj7";
+  sha256 = "0g4wvpmmrxj8ir6yi86gg93khy8ri7x4w091jihpxsmn670da21f";
   extraMeta = { # this isn't precise but it at least stops the useless Hydra build
     platforms = with lib; filter (p: p != "aarch64-linux")
       (platforms.linux ++ platforms.darwin);
diff --git a/pkgs/development/interpreters/luajit/2.1.nix b/pkgs/development/interpreters/luajit/2.1.nix
index b5a7894e98d..cb0320c7c7c 100644
--- a/pkgs/development/interpreters/luajit/2.1.nix
+++ b/pkgs/development/interpreters/luajit/2.1.nix
@@ -1,8 +1,8 @@
 { self, callPackage }:
 callPackage ./default.nix {
   inherit self;
-  version = "2.1.0-2020-03-20";
-  rev = "9143e86";
+  version = "2.1.0-2020-08-27";
+  rev = "ff1e72a";
   isStable = false;
-  sha256 = "1zw1yr0375d6jr5x20zvkvk76hkaqamjynbswpl604w6r6id070b";
+  sha256 = "0rlh5y48jbxnamr3a5i3szzh7y9ycvq052rw6m82gdhrb1jlamdz";
 }
diff --git a/pkgs/development/interpreters/luajit/default.nix b/pkgs/development/interpreters/luajit/default.nix
index 9bc76c44937..9658186b9c0 100644
--- a/pkgs/development/interpreters/luajit/default.nix
+++ b/pkgs/development/interpreters/luajit/default.nix
@@ -104,6 +104,6 @@ stdenv.mkDerivation rec {
     homepage    = "http://luajit.org";
     license     = licenses.mit;
     platforms   = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ thoughtpolice smironov vcunat andir ];
+    maintainers = with maintainers; [ thoughtpolice smironov vcunat andir lblasc ];
   } // extraMeta;
 }
diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix
index 9690dfac2f2..7fad936260c 100644
--- a/pkgs/development/interpreters/perl/default.nix
+++ b/pkgs/development/interpreters/perl/default.nix
@@ -2,6 +2,11 @@
 , enableThreading ? true, coreutils, makeWrapper
 }:
 
+# 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
+# files.
+
 with lib;
 
 let
@@ -23,7 +28,7 @@ let
 
     # TODO: Add a "dev" output containing the header files.
     outputs = [ "out" "man" "devdoc" ] ++
-      optional crossCompiling "dev";
+      optional crossCompiling "mini";
     setOutputFlags = false;
 
     disallowedReferences = [ stdenv.cc ];
@@ -139,13 +144,13 @@ let
           --replace "$man" /no-such-path
       '' + optionalString crossCompiling
       ''
-        mkdir -p $dev/lib/perl5/cross_perl/${version}
+        mkdir -p $mini/lib/perl5/cross_perl/${version}
         for dir in cnf/{stub,cpan}; do
-          cp -r $dir/* $dev/lib/perl5/cross_perl/${version}
+          cp -r $dir/* $mini/lib/perl5/cross_perl/${version}
         done
 
-        mkdir -p $dev/bin
-        install -m755 miniperl $dev/bin/perl
+        mkdir -p $mini/bin
+        install -m755 miniperl $mini/bin/perl
 
         export runtimeArch="$(ls $out/lib/perl5/site_perl/${version})"
         # wrapProgram should use a runtime-native SHELL by default, but
@@ -156,9 +161,9 @@ let
         # miniperl can't load the native modules there. However, it can
         # (and sometimes needs to) load and run some of the pure perl
         # code there, so we add it anyway. When needed, stubs can be put
-        # into $dev/lib/perl5/cross_perl/${version}.
-        wrapProgram $dev/bin/perl --prefix PERL5LIB : \
-          "$dev/lib/perl5/cross_perl/${version}:$out/lib/perl5/${version}:$out/lib/perl5/${version}/$runtimeArch"
+        # into $mini/lib/perl5/cross_perl/${version}.
+        wrapProgram $mini/bin/perl --prefix PERL5LIB : \
+          "$mini/lib/perl5/cross_perl/${version}:$out/lib/perl5/${version}:$out/lib/perl5/${version}/$runtimeArch"
       ''; # */
 
     meta = {
@@ -170,11 +175,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 = "1.3.4"; # Jun 2, 2020
+    crossVersion = "15ca5359f99698ef0a199bc307b7956c08907abc"; # Aug 27, 2020
 
     perl-cross-src = fetchurl {
       url = "https://github.com/arsv/perl-cross/archive/${crossVersion}.tar.gz";
-      sha256 = "15wvlafhpsh9h66s3vazhx46hf8ik75473acrvf6722ijd1wpz45";
+      sha256 = "0pcwv2ac02i2l0fjc8drdw70q6gwbypj2c5a53x2449m919v37h9";
     };
 
     depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ];
@@ -191,14 +196,6 @@ let
   });
 in {
   # Maint version
-  perl528 = common {
-    perl = pkgs.perl528;
-    buildPerl = buildPackages.perl528;
-    version = "5.28.3";
-    sha256 = "052if351m81yhaab429i1kv77v9b15qm0g48kr6y2yjrc7bc3jdg";
-  };
-
-  # Maint version
   perl530 = common {
     perl = pkgs.perl530;
     buildPerl = buildPackages.perl530;
@@ -206,11 +203,19 @@ in {
     sha256 = "0vs0wwwlw47sswxaflkk4hw0y45cmc7arxx788kwpbminy5lrq1j";
   };
 
+  # Maint version
+  perl532 = common {
+    perl = pkgs.perl532;
+    buildPerl = buildPackages.perl532;
+    version = "5.32.0";
+    sha256 = "1d6001cjnpxfv79000bx00vmv2nvdz7wrnyas451j908y7hirszg";
+  };
+
   # the latest Devel version
   perldevel = common {
     perl = pkgs.perldevel;
     buildPerl = buildPackages.perldevel;
-    version = "5.32.0-RC0";
-    sha256 = "02i6n1xa4j0ksp014yy8q0j7scjcy5mr0yd4iash2ryrrfv5yw5k";
+    version = "5.33.1";
+    sha256 = "1rlnqqqzyhal79ys5dv7fwm3mg81s43dwks28b74x2gcmsngjnw9";
   };
 }
diff --git a/pkgs/development/interpreters/perl/setup-hook-cross.sh b/pkgs/development/interpreters/perl/setup-hook-cross.sh
index 95aae0b2670..a7aad6f2453 100644
--- a/pkgs/development/interpreters/perl/setup-hook-cross.sh
+++ b/pkgs/development/interpreters/perl/setup-hook-cross.sh
@@ -9,4 +9,4 @@ addPerlLibPath () {
     addToSearchPath PERL5LIB $1/lib/perl5/site_perl/@version@/@runtimeArch@
 }
 
-addEnvHooks "$targetOffset" addPerlLibPath
+addEnvHooks "$hostOffset" addPerlLibPath
diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix
index b930e54fa4c..8921cf78aa8 100644
--- a/pkgs/development/interpreters/php/default.nix
+++ b/pkgs/development/interpreters/php/default.nix
@@ -8,7 +8,7 @@ let
     { callPackage, lib, stdenv, nixosTests, config, fetchurl, makeWrapper
     , symlinkJoin, writeText, autoconf, automake, bison, flex, libtool
     , pkgconfig, re2c, apacheHttpd, libargon2, libxml2, pcre, pcre2
-    , systemd, valgrind, xcbuild
+    , systemd, system-sendmail, valgrind, xcbuild
 
     , version
     , sha256
@@ -195,6 +195,10 @@ let
             ++ lib.optional systemdSupport "--with-fpm-systemd"
             ++ lib.optional valgrindSupport "--with-valgrind=${valgrind.dev}"
             ++ lib.optional ztsSupport "--enable-maintainer-zts"
+
+
+            # Sendmail
+            ++ [ "PROG_SENDMAIL=${system-sendmail}/bin/sendmail" ]
           ;
 
           hardeningDisable = [ "bindnow" ];
@@ -267,25 +271,17 @@ let
           };
         };
 
-  php72base = callPackage generic (_args // {
-    version = "7.2.31";
-    sha256 = "0057x1s43f9jidmrl8daka6wpxclxc1b1pm5cjbz616p8nbmb9qv";
-
-    # https://bugs.php.net/bug.php?id=76826
-    extraPatches = lib.optional stdenv.isDarwin ./php72-darwin-isfinite.patch;
-  });
-
   php73base = callPackage generic (_args // {
-    version = "7.3.19";
-    sha256 = "199l1lr7ima92icic7b1bqlb036md78m305lc3v6zd4zw8qix70d";
+    version = "7.3.20";
+    sha256 = "1pl9bjwvdva2yx4sh465z9cr4bnr8mvv008w71sy1kqsj6a7ivf6";
 
     # https://bugs.php.net/bug.php?id=76826
     extraPatches = lib.optional stdenv.isDarwin ./php73-darwin-isfinite.patch;
   });
 
   php74base = callPackage generic (_args // {
-    version = "7.4.7";
-    sha256 = "0ynq4fz54jpzh9nxvbgn3vrdad2clbac0989ai0yrj2ryc0hs3l0";
+    version = "7.4.8";
+    sha256 = "0ql01sfg8l7y2bfwmnjxnfw9irpibnz57ssck24b00y00nkd6j3a";
   });
 
   defaultPhpExtensions = { all, ... }: with all; ([
@@ -301,8 +297,7 @@ let
 
   php74 = php74base.withExtensions defaultPhpExtensions;
   php73 = php73base.withExtensions defaultPhpExtensionsWithHash;
-  php72 = php72base.withExtensions defaultPhpExtensionsWithHash;
 
 in {
-  inherit php72 php73 php74;
+  inherit php73 php74;
 }
diff --git a/pkgs/development/interpreters/php/php72-darwin-isfinite.patch b/pkgs/development/interpreters/php/php72-darwin-isfinite.patch
deleted file mode 100644
index ea2e3e28f2c..00000000000
--- a/pkgs/development/interpreters/php/php72-darwin-isfinite.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-diff --git a/Zend/configure.ac b/Zend/configure.ac
-index b95c1360b8..fe16c86007 100644
---- a/Zend/configure.ac
-+++ b/Zend/configure.ac
-@@ -60,7 +60,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
- #include <math.h>
- 
- #ifndef zend_isnan
--#if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISNAN && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_isnan(a) isnan(a)
- #elif defined(HAVE_FPCLASS)
- #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
-@@ -69,7 +69,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
- #endif
- #endif
- 
--#if HAVE_DECL_ISINF && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISINF && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_isinf(a) isinf(a)
- #elif defined(INFINITY)
- /* Might not work, but is required by ISO C99 */
-@@ -80,7 +80,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
- #define zend_isinf(a) 0
- #endif
- 
--#if HAVE_DECL_ISFINITE && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISFINITE && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_finite(a) isfinite(a)
- #elif defined(HAVE_FINITE)
- #define zend_finite(a) finite(a)
-diff --git a/configure.ac b/configure.ac
-index d3f3cacd07..ddbf712ba2 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -68,7 +68,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
- #include <math.h>
- 
- #ifndef zend_isnan
--#if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISNAN && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_isnan(a) isnan(a)
- #elif defined(HAVE_FPCLASS)
- #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
-@@ -77,7 +77,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
- #endif
- #endif
- 
--#if HAVE_DECL_ISINF && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISINF && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_isinf(a) isinf(a)
- #elif defined(INFINITY)
- /* Might not work, but is required by ISO C99 */
-@@ -88,7 +88,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
- #define zend_isinf(a) 0
- #endif
- 
--#if HAVE_DECL_ISFINITE && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISFINITE && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_finite(a) isfinite(a)
- #elif defined(HAVE_FINITE)
- #define zend_finite(a) finite(a)
diff --git a/pkgs/development/interpreters/picolisp/default.nix b/pkgs/development/interpreters/picolisp/default.nix
index c49437717c1..1511698c921 100644
--- a/pkgs/development/interpreters/picolisp/default.nix
+++ b/pkgs/development/interpreters/picolisp/default.nix
@@ -3,10 +3,10 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "picoLisp";
-  version = "19.12";
+  version = "20.6";
   src = fetchurl {
     url = "https://www.software-lab.de/${pname}-${version}.tgz";
-    sha256 = "10np0mhihr47r3201617zccrvzpkhdl1jwvz7zimk8kxpriydq2j";
+    sha256 = "0l51x98bn1hh6kv40sdgp0x09pzg5i8yxbcjvm9n5bxsd6bbk5w2";
   };
   buildInputs = [makeWrapper openssl] ++ optional stdenv.is64bit jdk;
   patchPhase = ''
diff --git a/pkgs/development/interpreters/python/cpython/2.7/CVE-2019-20907.patch b/pkgs/development/interpreters/python/cpython/2.7/CVE-2019-20907.patch
new file mode 100644
index 00000000000..cf67ae2b51b
--- /dev/null
+++ b/pkgs/development/interpreters/python/cpython/2.7/CVE-2019-20907.patch
@@ -0,0 +1,24 @@
+From 5a8d121a1f3ef5ad7c105ee378cc79a3eac0c7d4 Mon Sep 17 00:00:00 2001
+From: Rishi <rishi_devan@mail.com>
+Date: Wed, 15 Jul 2020 13:51:00 +0200
+Subject: [PATCH] bpo-39017: Avoid infinite loop in the tarfile module
+ (GH-21454)
+
+Avoid infinite loop when reading specially crafted TAR files using the tarfile module
+(CVE-2019-20907).
+---
+ Lib/tarfile.py                                    |   2 ++
+
+diff --git a/Lib/tarfile.py b/Lib/tarfile.py
+index e2b60532f6..6769066cab 100755
+--- a/Lib/tarfile.py
++++ b/Lib/tarfile.py
+@@ -1249,6 +1249,8 @@ class TarInfo(object):
+ 
+             length, keyword = match.groups()
+             length = int(length)
++            if length == 0:
++                raise InvalidHeaderError("invalid header")
+             value = buf[match.end(2) + 1:match.start(1) + length - 1]
+ 
+             # Normally, we could just use "utf-8" as the encoding and "strict"
diff --git a/pkgs/development/interpreters/python/cpython/2.7/default.nix b/pkgs/development/interpreters/python/cpython/2.7/default.nix
index 62aae7b2212..2cfaa69a4c8 100644
--- a/pkgs/development/interpreters/python/cpython/2.7/default.nix
+++ b/pkgs/development/interpreters/python/cpython/2.7/default.nix
@@ -90,6 +90,9 @@ let
 
       # Backport from CPython 3.8 of a good list of tests to run for PGO.
       ./profile-task.patch
+
+      # Patch is likely to go away in the next release (if there is any)
+      ./CVE-2019-20907.patch
     ] ++ optionals (x11Support && stdenv.isDarwin) [
       ./use-correct-tcl-tk-on-darwin.patch
     ] ++ optionals stdenv.isLinux [
diff --git a/pkgs/development/interpreters/python/cpython/3.8/0001-On-all-posix-systems-not-just-Darwin-set-LDSHARED-if.patch b/pkgs/development/interpreters/python/cpython/3.8/0001-On-all-posix-systems-not-just-Darwin-set-LDSHARED-if.patch
new file mode 100644
index 00000000000..0c26300d9c0
--- /dev/null
+++ b/pkgs/development/interpreters/python/cpython/3.8/0001-On-all-posix-systems-not-just-Darwin-set-LDSHARED-if.patch
@@ -0,0 +1,33 @@
+From 1911995b1a1252d80bf2b9651840e185a1a6baf5 Mon Sep 17 00:00:00 2001
+From: Hong Xu <hong@topbug.net>
+Date: Thu, 25 Jul 2019 10:25:55 -0700
+Subject: [PATCH] On all posix systems, not just Darwin, set LDSHARED (if not
+ set) according to CC
+
+This patch is slightly different from https://bugs.python.org/issue24935
+, except that we now handle LDSHARED according to CC on all posix
+systems, not just Darwin or Linux.
+---
+ Lib/distutils/sysconfig.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
+index 37feae5df7..9fdce6896d 100644
+--- a/Lib/distutils/sysconfig.py
++++ b/Lib/distutils/sysconfig.py
+@@ -199,10 +199,10 @@ def customize_compiler(compiler):
+ 
+         if 'CC' in os.environ:
+             newcc = os.environ['CC']
+-            if (sys.platform == 'darwin'
++            if (os.name == 'posix'
+                     and 'LDSHARED' not in os.environ
+                     and ldshared.startswith(cc)):
+-                # On OS X, if CC is overridden, use that as the default
++                # On POSIX systems, if CC is overridden, use that as the default
+                 #       command for LDSHARED as well
+                 ldshared = newcc + ldshared[len(cc):]
+             cc = newcc
+-- 
+2.25.1
+
diff --git a/pkgs/development/interpreters/python/cpython/default.nix b/pkgs/development/interpreters/python/cpython/default.nix
index 694f661a966..b25d613eb7f 100644
--- a/pkgs/development/interpreters/python/cpython/default.nix
+++ b/pkgs/development/interpreters/python/cpython/default.nix
@@ -9,6 +9,7 @@
 , readline
 , sqlite
 , tcl ? null, tk ? null, tix ? null, libX11 ? null, xorgproto ? null, x11Support ? false
+, bluez ? null, bluezSupport ? false
 , zlib
 , self
 , configd
@@ -36,10 +37,18 @@
 , enableOptimizations ? (!stdenv.isDarwin)
 }:
 
+# 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
+# files.
+
 assert x11Support -> tcl != null
                   && tk != null
                   && xorgproto != null
                   && libX11 != null;
+
+assert bluezSupport -> bluez != null;
+
 with stdenv.lib;
 
 let
@@ -68,6 +77,7 @@ let
   buildInputs = filter (p: p != null) ([
     zlib bzip2 expat lzma libffi gdbm sqlite readline ncurses openssl ]
     ++ optionals x11Support [ tcl tk libX11 xorgproto ]
+    ++ optionals (bluezSupport && stdenv.isLinux) [ bluez ]
     ++ optionals stdenv.isDarwin [ configd ]);
 
   hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
@@ -140,9 +150,14 @@ in with passthru; stdenv.mkDerivation {
           sha256 = "1h18lnpx539h5lfxyk379dxwr8m2raigcjixkf133l4xy3f4bzi2";
         }
     )
+  ] ++ [
+    # LDSHARED now uses $CC instead of gcc. Fixes cross-compilation of extension modules.
+    ./3.8/0001-On-all-posix-systems-not-just-Darwin-set-LDSHARED-if.patch
   ];
 
   postPatch = ''
+    substituteInPlace Lib/subprocess.py \
+      --replace "'/bin/sh'" "'${bash}/bin/sh'"
   '' + optionalString (x11Support && (tix != null)) ''
     substituteInPlace "Lib/tkinter/tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'"
   '';
@@ -276,6 +291,13 @@ in with passthru; stdenv.mkDerivation {
     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 "{}"
+    '' + ''
+    # *strip* shebang from libpython gdb script - it should be dual-syntax and
+    # interpretable by whatever python the gdb in question is using, which may
+    # not even match the major version of this python. doing this after the
+    # bytecode compilations for the same reason.
+    mkdir -p $out/share/gdb
+    sed '/^#!/d' Tools/gdb/libpython.py > $out/share/gdb/libpython.py
   '';
 
   preFixup = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
@@ -293,6 +315,8 @@ in with passthru; stdenv.mkDerivation {
     pythonForBuild buildPackages.bash
   ];
 
+  separateDebugInfo = true;
+
   inherit passthru;
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix
index b05f989714a..e4230093e9c 100644
--- a/pkgs/development/interpreters/python/default.nix
+++ b/pkgs/development/interpreters/python/default.nix
@@ -63,28 +63,15 @@ in {
     inherit passthruFun;
   };
 
-  python35 = callPackage ./cpython {
-    self = python35;
-    sourceVersion = {
-      major = "3";
-      minor = "5";
-      patch = "9";
-      suffix = "";
-    };
-    sha256 = "0jdh9pvx6m6lfz2liwvvhn7vks7qrysqgwn517fkpxb77b33fjn2";
-    inherit (darwin) configd;
-    inherit passthruFun;
-  };
-
   python36 = callPackage ./cpython {
     self = python36;
     sourceVersion = {
       major = "3";
       minor = "6";
-      patch = "10";
+      patch = "12";
       suffix = "";
     };
-    sha256 = "1pj0mz1xl27khi250p29c0y99vxg662js8zp71aprkf8i8wkr0qa";
+    sha256 = "cJU6m11okdkuZdGEw1EhJqFYFL7hXh7/LdzOBDNOmpk=";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -94,10 +81,10 @@ in {
     sourceVersion = {
       major = "3";
       minor = "7";
-      patch = "7";
+      patch = "9";
       suffix = "";
     };
-    sha256 = "0di1y2cna823qgk6sd2lvpjdm3g2qikdd50i2bjd330dpzqsk806";
+    sha256 = "008v6g1jkrjrdmiqlgjlq6msbbj848bvkws6ppwva1ahn03k14li";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -107,10 +94,10 @@ in {
     sourceVersion = {
       major = "3";
       minor = "8";
-      patch = "3";
+      patch = "5";
       suffix = "";
     };
-    sha256 = "0r2qg4pdvv52ld5dd95fl6lzzsxxxhbsxmymwcphh6624g3mxayz";
+    sha256 = "1c43dbv9lvlp3ynqmgdi4rh8q94swanhqarqrdx62zmigpakw073";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -121,9 +108,9 @@ in {
       major = "3";
       minor = "9";
       patch = "0";
-      suffix = "a4";
+      suffix = "rc1";
     };
-    sha256 = "0qzy0wlq0izxk8ii28gy70v138g6xnz9sgsxpyayls2j04l6b5vz";
+    sha256 = "0w6wvyy9fbvfvrmhvmlb5gq18haagywk9hjkp1knjdarfczag9zv";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -158,10 +145,10 @@ in {
     self = pypy27;
     sourceVersion = {
       major = "7";
-      minor = "1";
+      minor = "3";
       patch = "1";
     };
-    sha256 = "0yq6ln1ic476sasp8zs4mg5i9524l1p96qwanp486rr1yza1grlg";
+    sha256 = "08ckkhd0ix6j9873a7gr507c72d4cmnv5lwvprlljdca9i8p2dzs";
     pythonVersion = "2.7";
     db = db.override { dbmSupport = !stdenv.isDarwin; };
     python = python27;
@@ -174,10 +161,10 @@ in {
     self = pypy36;
     sourceVersion = {
       major = "7";
-      minor = "1";
+      minor = "3";
       patch = "1";
     };
-    sha256 = "1hqvnran7d2dzj5555n7q680dyzhmbklz04pvkxgb5j604v7kkx1";
+    sha256 = "10zsk8jby8j6visk5mzikpb1cidvz27qq4pfpa26jv53klic6b0c";
     pythonVersion = "3.6";
     db = db.override { dbmSupport = !stdenv.isDarwin; };
     python = python27;
@@ -191,13 +178,12 @@ in {
     self = pythonInterpreters.pypy27_prebuilt;
     sourceVersion = {
       major = "7";
-      minor = "1";
+      minor = "3";
       patch = "1";
     };
-    sha256 = "0rlx4x9xy9h989w6sy4h7lknm00956r30c5gjxwsvf8fhvq9xc3k"; # linux64
+    sha256 = "18xc5kwidj5hjwbr0w8v1nfpg5l4lk01z8cn804zfyyz8xjqhx5y"; # linux64
     pythonVersion = "2.7";
     inherit passthruFun;
-    ncurses = ncurses5;
   };
 
   pypy36_prebuilt = callPackage ./pypy/prebuilt.nix {
@@ -205,13 +191,12 @@ in {
     self = pythonInterpreters.pypy36_prebuilt;
     sourceVersion = {
       major = "7";
-      minor = "1";
+      minor = "3";
       patch = "1";
     };
-    sha256 = "1c1xx6dm1n4xvh1vd3rcvyyixm5jm9rvzisji1a5bc9l38xzc540"; # linux64
+    sha256 = "04nv0mkalaliphbjw7y0pmb372bxwjzwmcsqkf9kwsik99kg2z7n"; # linux64
     pythonVersion = "3.6";
     inherit passthruFun;
-    ncurses = ncurses5;
   };
 
   graalpython37 = callPackage ./graalpython/default.nix {
diff --git a/pkgs/development/interpreters/python/hooks/pip-install-hook.sh b/pkgs/development/interpreters/python/hooks/pip-install-hook.sh
index 4eefe22d3f2..770739b36bd 100644
--- a/pkgs/development/interpreters/python/hooks/pip-install-hook.sh
+++ b/pkgs/development/interpreters/python/hooks/pip-install-hook.sh
@@ -11,7 +11,9 @@ pipInstallPhase() {
     export PYTHONPATH="$out/@pythonSitePackages@:$PYTHONPATH"
 
     pushd dist || return 1
-    @pythonInterpreter@ -m pip install ./*.whl --no-index --prefix="$out" --no-cache $pipInstallFlags --build tmpbuild
+    mkdir tmpbuild
+    NIX_PIP_INSTALL_TMPDIR=tmpbuild @pythonInterpreter@ -m pip install ./*.whl --no-index --prefix="$out" --no-cache $pipInstallFlags
+    rm -rf tmpbuild
     popd || return 1
 
     runHook postInstall
diff --git a/pkgs/development/interpreters/python/mk-python-derivation.nix b/pkgs/development/interpreters/python/mk-python-derivation.nix
index a632efa416e..df945c645a8 100644
--- a/pkgs/development/interpreters/python/mk-python-derivation.nix
+++ b/pkgs/development/interpreters/python/mk-python-derivation.nix
@@ -105,81 +105,81 @@ let
     "disabled" "checkPhase" "checkInputs" "doCheck" "doInstallCheck" "dontWrapPythonPrograms" "catchConflicts" "format"
   ]) // {
 
-  name = namePrefix + name;
-
-  nativeBuildInputs = [
-    python
-    wrapPython
-    ensureNewerSourcesForZipFilesHook  # move to wheel installer (pip) or builder (setuptools, flit, ...)?
-    pythonRecompileBytecodeHook  # Remove when solved https://github.com/NixOS/nixpkgs/issues/81441
-    pythonRemoveTestsDirHook
-  ] ++ lib.optionals catchConflicts [
-    setuptools pythonCatchConflictsHook
-  ] ++ lib.optionals removeBinBytecode [
-    pythonRemoveBinBytecodeHook
-  ] ++ lib.optionals (lib.hasSuffix "zip" (attrs.src.name or "")) [
-    unzip
-  ] ++ lib.optionals (format == "setuptools") [
-    setuptoolsBuildHook
-  ] ++ lib.optionals (format == "flit") [
-    flitBuildHook
-  ] ++ lib.optionals (format == "pyproject") [
-    pipBuildHook
-  ] ++ lib.optionals (format == "wheel") [
-    wheelUnpackHook
-  ] ++ lib.optionals (format == "egg") [
-    eggUnpackHook eggBuildHook eggInstallHook
-  ] ++ lib.optionals (!(format == "other") || dontUsePipInstall) [
-    pipInstallHook
-  ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [
-    # This is a test, however, it should be ran independent of the checkPhase and checkInputs
-    pythonImportsCheckHook
-  ] ++ lib.optionals (python.pythonAtLeast "3.3") [
-    # Optionally enforce PEP420 for python3
-    pythonNamespacesHook
-  ] ++ nativeBuildInputs;
-
-  buildInputs = buildInputs ++ pythonPath;
-
-  propagatedBuildInputs = propagatedBuildInputs ++ [ python ];
-
-  inherit strictDeps;
-
-  LANG = "${if python.stdenv.isDarwin then "en_US" else "C"}.UTF-8";
-
-  # Python packages don't have a checkPhase, only an installCheckPhase
-  doCheck = false;
-  doInstallCheck = attrs.doCheck or true;
-  installCheckInputs = [
-  ] ++ lib.optionals (format == "setuptools") [
-    # Longer-term we should get rid of this and require
-    # users of this function to set the `installCheckPhase` or
-    # pass in a hook that sets it.
-    setuptoolsCheckHook
-  ] ++ checkInputs;
-
-  postFixup = lib.optionalString (!dontWrapPythonPrograms) ''
-    wrapPythonPrograms
-  '' + attrs.postFixup or '''';
-
-  # Python packages built through cross-compilation are always for the host platform.
-  disallowedReferences = lib.optionals (python.stdenv.hostPlatform != python.stdenv.buildPlatform) [ python.pythonForBuild ];
-
-  # For now, revert recompilation of bytecode.
-  dontUsePythonRecompileBytecode = true;
-
-  meta = {
-    # default to python's platforms
-    platforms = python.meta.platforms;
-    isBuildPythonPackage = python.meta.platforms;
-  } // meta;
-} // lib.optionalAttrs (attrs?checkPhase) {
-  # If given use the specified checkPhase, otherwise use the setup hook.
-  # Longer-term we should get rid of `checkPhase` and use `installCheckPhase`.
-  installCheckPhase = attrs.checkPhase;
-}));
-
-passthru.updateScript = let
-    filename = builtins.head (lib.splitString ":" self.meta.position);
-  in attrs.passthru.updateScript or [ update-python-libraries filename ];
+    name = namePrefix + name;
+
+    nativeBuildInputs = [
+      python
+      wrapPython
+      ensureNewerSourcesForZipFilesHook  # move to wheel installer (pip) or builder (setuptools, flit, ...)?
+      pythonRecompileBytecodeHook  # Remove when solved https://github.com/NixOS/nixpkgs/issues/81441
+      pythonRemoveTestsDirHook
+    ] ++ lib.optionals catchConflicts [
+      setuptools pythonCatchConflictsHook
+    ] ++ lib.optionals removeBinBytecode [
+      pythonRemoveBinBytecodeHook
+    ] ++ lib.optionals (lib.hasSuffix "zip" (attrs.src.name or "")) [
+      unzip
+    ] ++ lib.optionals (format == "setuptools") [
+      setuptoolsBuildHook
+    ] ++ lib.optionals (format == "flit") [
+      flitBuildHook
+    ] ++ lib.optionals (format == "pyproject") [
+      pipBuildHook
+    ] ++ lib.optionals (format == "wheel") [
+      wheelUnpackHook
+    ] ++ lib.optionals (format == "egg") [
+      eggUnpackHook eggBuildHook eggInstallHook
+    ] ++ lib.optionals (!(format == "other") || dontUsePipInstall) [
+      pipInstallHook
+    ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [
+      # This is a test, however, it should be ran independent of the checkPhase and checkInputs
+      pythonImportsCheckHook
+    ] ++ lib.optionals (python.pythonAtLeast "3.3") [
+      # Optionally enforce PEP420 for python3
+      pythonNamespacesHook
+    ] ++ nativeBuildInputs;
+
+    buildInputs = buildInputs ++ pythonPath;
+
+    propagatedBuildInputs = propagatedBuildInputs ++ [ python ];
+
+    inherit strictDeps;
+
+    LANG = "${if python.stdenv.isDarwin then "en_US" else "C"}.UTF-8";
+
+    # Python packages don't have a checkPhase, only an installCheckPhase
+    doCheck = false;
+    doInstallCheck = attrs.doCheck or true;
+    installCheckInputs = [
+    ] ++ lib.optionals (format == "setuptools") [
+      # Longer-term we should get rid of this and require
+      # users of this function to set the `installCheckPhase` or
+      # pass in a hook that sets it.
+      setuptoolsCheckHook
+    ] ++ checkInputs;
+
+    postFixup = lib.optionalString (!dontWrapPythonPrograms) ''
+      wrapPythonPrograms
+    '' + attrs.postFixup or '''';
+
+    # Python packages built through cross-compilation are always for the host platform.
+    disallowedReferences = lib.optionals (python.stdenv.hostPlatform != python.stdenv.buildPlatform) [ python.pythonForBuild ];
+
+    # For now, revert recompilation of bytecode.
+    dontUsePythonRecompileBytecode = true;
+
+    meta = {
+      # default to python's platforms
+      platforms = python.meta.platforms;
+      isBuildPythonPackage = python.meta.platforms;
+    } // meta;
+  } // lib.optionalAttrs (attrs?checkPhase) {
+    # If given use the specified checkPhase, otherwise use the setup hook.
+    # Longer-term we should get rid of `checkPhase` and use `installCheckPhase`.
+    installCheckPhase = attrs.checkPhase;
+  }));
+
+  passthru.updateScript = let
+      filename = builtins.head (lib.splitString ":" self.meta.position);
+    in attrs.passthru.updateScript or [ update-python-libraries filename ];
 in lib.extendDerivation true passthru self
diff --git a/pkgs/development/interpreters/python/pypy/default.nix b/pkgs/development/interpreters/python/pypy/default.nix
index e5828fdd374..10073602071 100644
--- a/pkgs/development/interpreters/python/pypy/default.nix
+++ b/pkgs/development/interpreters/python/pypy/default.nix
@@ -34,7 +34,7 @@ in with passthru; stdenv.mkDerivation rec {
   inherit pname version;
 
   src = fetchurl {
-    url = "https://bitbucket.org/pypy/pypy/get/release-pypy${pythonVersion}-v${version}.tar.bz2";
+    url = "https://bitbucket.org/pypy/pypy/downloads/pypy${pythonVersion}-v${version}-src.tar.bz2";
     inherit sha256;
   };
 
@@ -75,13 +75,6 @@ in with passthru; stdenv.mkDerivation rec {
   postPatch = ''
     substituteInPlace "lib-python/${if isPy3k then "3/tkinter/tix.py" else "2.7/lib-tk/Tix.py"}" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'"
 
-    # hint pypy to find nix ncurses
-    substituteInPlace pypy/module/_minimal_curses/fficurses.py \
-      --replace "/usr/include/ncurses/curses.h" "${ncurses.dev}/include/curses.h" \
-      --replace "ncurses/curses.h" "${ncurses.dev}/include/curses.h" \
-      --replace "ncurses/term.h" "${ncurses.dev}/include/term.h" \
-      --replace "libraries=['curses']" "libraries=['ncurses']"
-
     sed -i "s@libraries=\['sqlite3'\]\$@libraries=['sqlite3'], include_dirs=['${sqlite.dev}/include'], library_dirs=['${sqlite.out}/lib']@" lib_pypy/_sqlite3_build.py
   '';
 
@@ -137,7 +130,7 @@ in with passthru; stdenv.mkDerivation rec {
     ln -s $out/${executable}-c/${executable}-c $out/bin/${executable}
 
     # other packages expect to find stuff according to libPrefix
-    ln -s $out/${executable}/include $out/include/${libPrefix}
+    ln -s $out/${executable}-c/include $out/include/${libPrefix}
     ln -s $out/${executable}-c/lib-python/${if isPy3k then "3" else pythonVersion} $out/lib/${libPrefix}
 
     ${stdenv.lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/interpreters/python/pypy/prebuilt.nix b/pkgs/development/interpreters/python/pypy/prebuilt.nix
index 0ebd3364834..1522047a380 100644
--- a/pkgs/development/interpreters/python/pypy/prebuilt.nix
+++ b/pkgs/development/interpreters/python/pypy/prebuilt.nix
@@ -8,10 +8,9 @@
 , zlib
 , openssl_1_0_2
 , expat
-, libffi
-, ncurses
-, tcl
-, tk
+, ncurses6
+, tcl-8_5
+, tk-8_5
 # For the Python package set
 , packageOverrides ? (self: super: {})
 , sourceVersion
@@ -46,10 +45,9 @@ let
     zlib
     openssl_1_0_2
     expat
-    libffi
-    ncurses
-    tcl
-    tk
+    ncurses6
+    tcl-8_5
+    tk-8_5
   ];
 
 in with passthru; stdenv.mkDerivation {
@@ -66,6 +64,7 @@ in with passthru; stdenv.mkDerivation {
     mkdir -p $out/lib
     echo "Moving files to $out"
     mv -t $out bin include lib-python lib_pypy site-packages
+    mv lib/libffi.so.6* $out/lib/
 
     mv $out/bin/libpypy*-c.so $out/lib/
 
@@ -78,8 +77,8 @@ in with passthru; stdenv.mkDerivation {
              $out/bin/pypy*
 
     pushd $out
-    find {lib,lib_pypy*} -name "*.so" -exec patchelf --replace-needed "libbz2.so.1.0" "libbz2.so.1" {} \;
-    find {lib,lib_pypy*} -name "*.so" -exec patchelf --set-rpath ${stdenv.lib.makeLibraryPath deps} {} \;
+    find {lib,lib_pypy*} -name "*.so" -exec patchelf --remove-needed libncursesw.so.6 --replace-needed libtinfow.so.6 libncursesw.so.6 {} \;
+    find {lib,lib_pypy*} -name "*.so" -exec patchelf --set-rpath ${stdenv.lib.makeLibraryPath deps}:$out/lib {} \;
 
     echo "Removing bytecode"
     find . -name "__pycache__" -type d -depth -exec rm -rf {} \;
diff --git a/pkgs/development/interpreters/python/tests.nix b/pkgs/development/interpreters/python/tests.nix
index 03a3b953709..dcfa41cc308 100644
--- a/pkgs/development/interpreters/python/tests.nix
+++ b/pkgs/development/interpreters/python/tests.nix
@@ -6,67 +6,81 @@
 }:
 
 let
-  envs = let
-    inherit python;
-    pythonEnv = python.withPackages(ps: with ps; [ ]);
-    pythonVirtualEnv = python.withPackages(ps: with ps; [ virtualenv ]);
-  in {
-    # Plain Python interpreter
-    plain = rec {
-      env = python;
-      interpreter = env.interpreter;
-      is_venv = "False";
-      is_nixenv = "False";
-      is_virtualenv = "False";
-    };
-  } // lib.optionalAttrs (!python.isPyPy) {
-    # Use virtualenv from a Nix env.
-    nixenv-virtualenv = rec {
-      env = runCommand "${python.name}-virtualenv" {} ''
-        ${pythonVirtualEnv.interpreter} -m virtualenv $out
-      '';
-      interpreter = "${env}/bin/${python.executable}";
-      is_venv = "False";
-      is_nixenv = "True";
-      is_virtualenv = "True";
-    };
-  } // lib.optionalAttrs (python.implementation != "graal") {
-    # Python Nix environment (python.buildEnv)
-    nixenv = rec {
-      env = pythonEnv;
-      interpreter = env.interpreter;
-      is_venv = "False";
-      is_nixenv = "True";
-      is_virtualenv = "False";
-    };
-  } // lib.optionalAttrs (python.isPy3k && (!python.isPyPy)) rec {
-    # Venv built using plain Python
-    # Python 2 does not support venv
-    # TODO: PyPy executable name is incorrect, it should be pypy-c or pypy-3c instead of pypy and pypy3.
-    plain-venv = rec {
-      env = runCommand "${python.name}-venv" {} ''
-        ${python.interpreter} -m venv $out
-      '';
-      interpreter = "${env}/bin/${python.executable}";
-      is_venv = "True";
-      is_nixenv = "False";
-      is_virtualenv = "False";
-    };
+  environmentTests = let
+    envs = let
+      inherit python;
+      pythonEnv = python.withPackages(ps: with ps; [ ]);
+      pythonVirtualEnv = python.withPackages(ps: with ps; [ virtualenv ]);
+    in {
+      # Plain Python interpreter
+      plain = rec {
+        env = python;
+        interpreter = env.interpreter;
+        is_venv = "False";
+        is_nixenv = "False";
+        is_virtualenv = "False";
+      };
+    } // lib.optionalAttrs (!python.isPyPy) {
+      # Use virtualenv from a Nix env.
+      nixenv-virtualenv = rec {
+        env = runCommand "${python.name}-virtualenv" {} ''
+          ${pythonVirtualEnv.interpreter} -m virtualenv $out
+        '';
+        interpreter = "${env}/bin/${python.executable}";
+        is_venv = "False";
+        is_nixenv = "True";
+        is_virtualenv = "True";
+      };
+    } // lib.optionalAttrs (python.implementation != "graal") {
+      # Python Nix environment (python.buildEnv)
+      nixenv = rec {
+        env = pythonEnv;
+        interpreter = env.interpreter;
+        is_venv = "False";
+        is_nixenv = "True";
+        is_virtualenv = "False";
+      };
+    } // lib.optionalAttrs (python.isPy3k && (!python.isPyPy)) rec {
+      # Venv built using plain Python
+      # Python 2 does not support venv
+      # TODO: PyPy executable name is incorrect, it should be pypy-c or pypy-3c instead of pypy and pypy3.
+      plain-venv = rec {
+        env = runCommand "${python.name}-venv" {} ''
+          ${python.interpreter} -m venv $out
+        '';
+        interpreter = "${env}/bin/${python.executable}";
+        is_venv = "True";
+        is_nixenv = "False";
+        is_virtualenv = "False";
+      };
 
-  } // lib.optionalAttrs (python.pythonAtLeast "3.8") {
-    # Venv built using Python Nix environment (python.buildEnv)
-    # TODO: Cannot create venv from a  nix env
-    # Error: Command '['/nix/store/ddc8nqx73pda86ibvhzdmvdsqmwnbjf7-python3-3.7.6-venv/bin/python3.7', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
-    nixenv-venv = rec {
-      env = runCommand "${python.name}-venv" {} ''
-        ${pythonEnv.interpreter} -m venv $out
-      '';
-      interpreter = "${env}/bin/${pythonEnv.executable}";
-      is_venv = "True";
-      is_nixenv = "True";
-      is_virtualenv = "False";
+    } // lib.optionalAttrs (python.pythonAtLeast "3.8") {
+      # Venv built using Python Nix environment (python.buildEnv)
+      # TODO: Cannot create venv from a  nix env
+      # Error: Command '['/nix/store/ddc8nqx73pda86ibvhzdmvdsqmwnbjf7-python3-3.7.6-venv/bin/python3.7', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
+      nixenv-venv = rec {
+        env = runCommand "${python.name}-venv" {} ''
+          ${pythonEnv.interpreter} -m venv $out
+        '';
+        interpreter = "${env}/bin/${pythonEnv.executable}";
+        is_venv = "True";
+        is_nixenv = "True";
+        is_virtualenv = "False";
+      };
     };
-  };
+
+    testfun = name: attrs: runCommand "${python.name}-tests-${name}" ({
+      inherit (python) pythonVersion;
+    } // attrs) ''
+      cp -r ${./tests/test_environments} tests
+      chmod -R +w tests
+      substituteAllInPlace tests/test_python.py
+      ${attrs.interpreter} -m unittest discover --verbose tests #/test_python.py
+      mkdir $out
+      touch $out/success
+    '';
+
+  in lib.mapAttrs testfun envs;
 
   # All PyPy package builds are broken at the moment
   integrationTests = lib.optionalAttrs (python.pythonAtLeast "3.7"  && (!python.isPyPy)) rec {
@@ -76,15 +90,6 @@ let
     };
   };
 
-  testfun = name: attrs: runCommand "${python.name}-tests-${name}" ({
-    inherit (python) pythonVersion;
-  } // attrs) ''
-    cp -r ${./tests} tests
-    chmod -R +w tests
-    substituteAllInPlace tests/test_python.py
-    ${attrs.interpreter} -m unittest discover --verbose tests #/test_python.py
-    mkdir $out
-    touch $out/success
-  '';
 
-in lib.mapAttrs testfun envs // integrationTests
+
+in environmentTests // integrationTests
diff --git a/pkgs/development/interpreters/python/tests/test_python.py b/pkgs/development/interpreters/python/tests/test_environments/test_python.py
index 0fc4b8a9e91..0fc4b8a9e91 100644
--- a/pkgs/development/interpreters/python/tests/test_python.py
+++ b/pkgs/development/interpreters/python/tests/test_environments/test_python.py
diff --git a/pkgs/development/interpreters/racket/default.nix b/pkgs/development/interpreters/racket/default.nix
index 1db01c0d775..b62df6e837b 100644
--- a/pkgs/development/interpreters/racket/default.nix
+++ b/pkgs/development/interpreters/racket/default.nix
@@ -46,7 +46,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "racket";
-  version = "7.7"; # always change at once with ./minimal.nix
+  version = "7.8"; # always change at once with ./minimal.nix
 
   src = (stdenv.lib.makeOverridable ({ name, sha256 }:
     fetchurl {
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
     }
   )) {
     name = "${pname}-${version}";
-    sha256 = "0cx5h3k0n58cb442qzp3jlc7n1b9dbaxv9blg2rjil2rn119yrb2";
+    sha256 = "19z3dayybcra277s4gk2mppalwawd93f2b16xyrb6d7rbbfz7j9j";
   };
 
   FONTCONFIG_FILE = fontsConf;
diff --git a/pkgs/development/interpreters/racket/minimal.nix b/pkgs/development/interpreters/racket/minimal.nix
index a4a7a5c12cd..02aed6e8929 100644
--- a/pkgs/development/interpreters/racket/minimal.nix
+++ b/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 = "1lxcd4ix8q3089xql48hwccxvcpkinfxwxnc6fhcjdgzqcyxh3ln";
+    sha256 = "0bbglf9vfacpm2hn3lskhvc8cpg6z088fbnzpqsn17z8qdk8yvb3";
   };
 
   meta = oldAttrs.meta // {
diff --git a/pkgs/development/interpreters/rakudo/default.nix b/pkgs/development/interpreters/rakudo/default.nix
index 4ad5bc14c35..0c708cd3171 100644
--- a/pkgs/development/interpreters/rakudo/default.nix
+++ b/pkgs/development/interpreters/rakudo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rakudo";
-  version = "2020.06";
+  version = "2020.08.2";
 
   src = fetchurl {
     url    = "https://www.rakudo.org/dl/rakudo/rakudo-${version}.tar.gz";
-    sha256 = "06kj8vfkkspmcdyd3zf2pyxwmijbbfnhv3jcaihvb8p3za5gxn2c";
+    sha256 = "16qsq6alvk2x44x39j2fzxigvm5cvmz85i0nkjcw0wz29yyf8lch";
   };
 
   buildInputs = [ icu zlib gmp perl ];
diff --git a/pkgs/development/interpreters/rakudo/moarvm.nix b/pkgs/development/interpreters/rakudo/moarvm.nix
index 1cee0eaef63..702fccd7b6b 100644
--- a/pkgs/development/interpreters/rakudo/moarvm.nix
+++ b/pkgs/development/interpreters/rakudo/moarvm.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "moarvm";
-  version = "2020.06";
+  version = "2020.08";
 
   src = fetchurl {
     url = "https://www.moarvm.org/releases/MoarVM-${version}.tar.gz";
-    sha256 = "1hlxm5p1n9fclma2z9kynkxrknsxdihzkbsb3wxnvjvndzqmk5yv";
+    sha256 = "1gq7z4z5lnkai01721waawkkal82sdmyra05nnbfb1986mq5xpiy";
    };
 
   buildInputs = [ perl ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices ApplicationServices ];
diff --git a/pkgs/development/interpreters/rakudo/nqp.nix b/pkgs/development/interpreters/rakudo/nqp.nix
index 15f0e0f9f58..3f5f7afcfed 100644
--- a/pkgs/development/interpreters/rakudo/nqp.nix
+++ b/pkgs/development/interpreters/rakudo/nqp.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nqp";
-  version = "2020.06";
+  version = "2020.08.2";
 
   src = fetchurl {
-    url    = "https://github.com/perl6/nqp/releases/download/${version}/nqp-${version}.tar.gz";
-    sha256 = "13wkhdxxs86wl6ahfzhyp45dy6hk6qnij3dm8d8893b2rxs377m4";
+    url    = "https://github.com/raku/nqp/releases/download/${version}/nqp-${version}.tar.gz";
+    sha256 = "14zr1swprxl284k0h1w72pcypj24sga15170ylaqjb8wxy8h1mqw";
   };
 
   buildInputs = [ perl ];
diff --git a/pkgs/development/interpreters/red/default.nix b/pkgs/development/interpreters/red/default.nix
index e1460ec51a2..554dc81bffb 100644
--- a/pkgs/development/interpreters/red/default.nix
+++ b/pkgs/development/interpreters/red/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "red";
-  version = "0.6.3";
+  version = "0.6.4";
   src = fetchFromGitHub {
-    rev = "6a43c767fa2e85d668b83f749158a18e62c30f70";
+    rev = "755eb943ccea9e78c2cab0f20b313a52404355cb";
     owner = "red";
     repo = "red";
-    sha256 = "1zh6xc728bs7r4v5jz1jjrdk0xd838xsxmvy9gfg75a3zffm0slr";
+    sha256 = "sha256:045rrg9666zczgrwyyyglivzdzja103s52b0fzj7hqmr1fz68q37";
   };
 
   rebol = fetchurl {
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     ${r2} -qw red.r tests/hello.red
 
     # Compiling the Red console...
-    ${r2} -qw red.r -r environment/console/console.red
+    ${r2} -qw red.r -r environment/console/CLI/console.red
 
     # Generating docs...
     cd docs
diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix
index 1756c13b53d..dbfea17437d 100644
--- a/pkgs/development/interpreters/ruby/default.nix
+++ b/pkgs/development/interpreters/ruby/default.nix
@@ -116,7 +116,7 @@ let
         # https://github.com/ruby/ruby/commit/97a5af62a318fcd93a4e5e4428d576c0280ddbae
         buildFlags = lib.optionals atLeast27 [ "REVISION_LATEST=0" ];
 
-        configureFlags = ["--enable-shared" "--enable-pthread" "--with-soname=ruby_${tag}"]
+        configureFlags = ["--enable-shared" "--enable-pthread" "--with-soname=ruby-${version}"]
           ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby"
           ++ op (!docSupport) "--disable-install-doc"
           ++ ops stdenv.isDarwin [
diff --git a/pkgs/development/interpreters/spidermonkey/68.nix b/pkgs/development/interpreters/spidermonkey/68.nix
index 7100a730a61..36d28f62e2e 100644
--- a/pkgs/development/interpreters/spidermonkey/68.nix
+++ b/pkgs/development/interpreters/spidermonkey/68.nix
@@ -7,11 +7,11 @@ let
   python3Env = buildPackages.python3.withPackages (p: [p.six]);
 in stdenv.mkDerivation rec {
   pname = "spidermonkey";
-  version = "68.7.0";
+  version = "68.10.0";
 
   src = fetchurl {
     url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
-    sha256 = "0w3mad0r4khcd7hfmm3xix9x6mp5yp8g8kyh18vanfnjqdls0gmd";
+    sha256 = "0azdinwqjfv2q37gqpxmfvzsk86pvsi6cjaq1310zs26gric5j1f";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/interpreters/wasmer/default.nix b/pkgs/development/interpreters/wasmer/default.nix
index 404c0731c34..c620b1686ea 100644
--- a/pkgs/development/interpreters/wasmer/default.nix
+++ b/pkgs/development/interpreters/wasmer/default.nix
@@ -35,6 +35,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://wasmer.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/interpreters/wasmtime/default.nix b/pkgs/development/interpreters/wasmtime/default.nix
index 5e8cba94e1a..f7ef111bc66 100644
--- a/pkgs/development/interpreters/wasmtime/default.nix
+++ b/pkgs/development/interpreters/wasmtime/default.nix
@@ -2,17 +2,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasmtime";
-  version = "0.17.0";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = "${pname}";
     rev = "v${version}";
-    sha256 = "18kmxc53jz1rlbmgdvffpvvsr8m399lgv62kwhciv5pif857qbb4";
+    sha256 = "0gb8xk27ych553b7knflbbks9q64m39v40sdirycm6prqfnfrnm8";
     fetchSubmodules = true;
   };
 
-  cargoSha256 = "149nav392wf4sr50dpdlnvfq3vfrrl9lqgr98g5dyzfjrf5jbzm3";
+  cargoSha256 = "1dqaxpwfm234yjwrhglzvsqhh2fr5nsx7bpk7bmycyk6lml8vxy7";
 
   nativeBuildInputs = [ python cmake clang ];
   buildInputs = [ llvmPackages.libclang ] ++
diff --git a/pkgs/development/libraries/CGAL/cgal_path.patch b/pkgs/development/libraries/CGAL/cgal_path.patch
new file mode 100644
index 00000000000..68eec5fbb21
--- /dev/null
+++ b/pkgs/development/libraries/CGAL/cgal_path.patch
@@ -0,0 +1,15 @@
+--- Installation/cmake/modules/CGALConfig_install.cmake.in.original	2019-07-10 10:39:12.377022659 -0700
++++ Installation/cmake/modules/CGALConfig_install.cmake.in	2019-07-10 10:47:24.310154928 -0700
+@@ -45,9 +45,9 @@
+ set(CGAL_SHARED_LINKER_FLAGS_DEBUG_INIT   "@CMAKE_SHARED_LINKER_FLAGS_DEBUG@" )
+ set(CGAL_BUILD_TYPE_INIT                  "@CMAKE_BUILD_TYPE@" )
+
+-set(CGAL_INCLUDE_DIRS  "${CGAL_INSTALL_PREFIX}/@CGAL_INSTALL_INC_DIR@" )
+-set(CGAL_MODULES_DIR   "${CGAL_INSTALL_PREFIX}/@CGAL_INSTALL_CMAKE_DIR@" )
+-set(CGAL_LIBRARIES_DIR "${CGAL_INSTALL_PREFIX}/@CGAL_INSTALL_LIB_DIR@" )
++set(CGAL_INCLUDE_DIRS  "@CGAL_INSTALL_INC_DIR@" )
++set(CGAL_MODULES_DIR   "@CGAL_INSTALL_CMAKE_DIR@" )
++set(CGAL_LIBRARIES_DIR "@CGAL_INSTALL_LIB_DIR@" )
+
+ # If CGAL_ImageIO is built, tell if it was linked with Zlib.
+ set(CGAL_ImageIO_USE_ZLIB                 "@CGAL_ImageIO_USE_ZLIB@" )
diff --git a/pkgs/development/libraries/CGAL/default.nix b/pkgs/development/libraries/CGAL/default.nix
index 16a643e2a7f..97ddab1a32e 100644
--- a/pkgs/development/libraries/CGAL/default.nix
+++ b/pkgs/development/libraries/CGAL/default.nix
@@ -1,14 +1,20 @@
-{ stdenv, fetchFromGitHub, cmake, boost, gmp, mpfr }:
+{ stdenv
+, fetchFromGitHub
+, cmake
+, boost
+, gmp
+, mpfr
+}:
 
 stdenv.mkDerivation rec {
-  version = "5.0.2";
-  name = "cgal-" + version;
+  pname = "cgal";
+  version = "5.0.3";
 
   src = fetchFromGitHub {
     owner = "CGAL";
     repo = "releases";
     rev = "CGAL-${version}";
-    sha256 = "0w97knzw85mljrmns8fxjqinx0fqwls9g91mk434ryf6ciy6yign";
+    sha256 = "1p22dwrzzvbmrfjr6m3dac55nq8pp0b9afp3vz6239yp3gf2fcws";
   };
 
   # note: optional component libCGAL_ImageIO would need zlib and opengl;
@@ -16,6 +22,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ boost gmp mpfr ];
   nativeBuildInputs = [ cmake ];
 
+  patches = [ ./cgal_path.patch ];
+
   doCheck = false;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/SDL2/default.nix b/pkgs/development/libraries/SDL2/default.nix
index 5f3d42b4da3..31624bee2fb 100644
--- a/pkgs/development/libraries/SDL2/default.nix
+++ b/pkgs/development/libraries/SDL2/default.nix
@@ -42,9 +42,14 @@ stdenv.mkDerivation rec {
     substituteInPlace include/SDL_opengl_glext.h \
       --replace "typedef ptrdiff_t GLsizeiptr;" "typedef signed long int khronos_ssize_t; typedef khronos_ssize_t GLsizeiptr;" \
       --replace "typedef ptrdiff_t GLintptr;" "typedef signed long int khronos_intptr_t; typedef khronos_intptr_t GLintptr;"
+
+    substituteInPlace configure \
+      --replace 'WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`' 'WAYLAND_SCANNER=`pkg-config --variable=wayland_scanner wayland-scanner`'
   '';
 
-  nativeBuildInputs = [ pkgconfig ];
+  depsBuildBuild = [ pkgconfig ];
+
+  nativeBuildInputs = [ pkgconfig ] ++ optionals waylandSupport [ wayland ];
 
   propagatedBuildInputs = dlopenPropagatedBuildInputs;
 
diff --git a/pkgs/development/libraries/acl/default.nix b/pkgs/development/libraries/acl/default.nix
index 4b280cc1862..6e863e4eeba 100644
--- a/pkgs/development/libraries/acl/default.nix
+++ b/pkgs/development/libraries/acl/default.nix
@@ -1,5 +1,10 @@
 { stdenv, fetchurl, gettext, attr }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   name = "acl-2.2.53";
 
diff --git a/pkgs/development/libraries/adns/default.nix b/pkgs/development/libraries/adns/default.nix
index 2f468c7f4c1..db5284e9127 100644
--- a/pkgs/development/libraries/adns/default.nix
+++ b/pkgs/development/libraries/adns/default.nix
@@ -1,11 +1,8 @@
-{ stdenv, fetchurl }:
+{ stdenv, lib, fetchurl, gnum4 }:
 
-let
-  version = "1.5.1";
-in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "adns";
-  inherit version;
+  version = "1.6.0";
 
   src = fetchurl {
     urls = [
@@ -13,25 +10,38 @@ stdenv.mkDerivation {
       "ftp://ftp.chiark.greenend.org.uk/users/ian/adns/adns-${version}.tar.gz"
       "mirror://gnu/adns/adns-${version}.tar.gz"
     ];
-    sha256 = "1ssfh94ck6kn98nf2yy6743srpgqgd167va5ja3bwx42igqjc42v";
+    sha256 = "1pi0xl07pav4zm2jrbrfpv43s1r1q1y12awgak8k7q41m5jp4hpv";
   };
 
+  nativeBuildInputs = [ gnum4 ];
+
   preConfigure =
-    stdenv.lib.optionalString stdenv.isDarwin "sed -i -e 's|-Wl,-soname=$(SHLIBSONAME)||' configure";
+    lib.optionalString stdenv.isDarwin "sed -i -e 's|-Wl,-soname=$(SHLIBSONAME)||' configure";
 
   # https://www.mail-archive.com/nix-dev@cs.uu.nl/msg01347.html for details.
   doCheck = false;
 
-  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
-    install_name_tool -id $out/lib/libadns.so.1.5 $out/lib/libadns.so.1.5
+  postInstall = let suffix = lib.versions.majorMinor version;
+  in lib.optionalString stdenv.isDarwin ''
+    install_name_tool -id $out/lib/libadns.so.${suffix} $out/lib/libadns.so.${suffix}
+  '';
+
+  # darwin executables fail, but I don't want to fail the 100-500 packages depending on this lib
+  doInstallCheck = !stdenv.isDarwin;
+  installCheckPhase = ''
+    set -eo pipefail
+
+    for prog in $out/bin/*; do
+      $prog --help > /dev/null && echo $(basename $prog) shows usage
+    done
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "http://www.chiark.greenend.org.uk/~ian/adns/";
     description = "Asynchronous DNS Resolver Library";
-    license = stdenv.lib.licenses.lgpl2;
+    license = licenses.lgpl2;
 
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.peti ];
+    platforms = platforms.unix;
+    maintainers = [ maintainers.peti ];
   };
 }
diff --git a/pkgs/development/libraries/afflib/default.nix b/pkgs/development/libraries/afflib/default.nix
index 71651726261..030ff73f97f 100644
--- a/pkgs/development/libraries/afflib/default.nix
+++ b/pkgs/development/libraries/afflib/default.nix
@@ -3,23 +3,24 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.7.18";
+  version = "3.7.19";
   pname = "afflib";
 
   src = fetchFromGitHub {
     owner = "sshock";
     repo = "AFFLIBv3";
     rev = "v${version}";
-    sha256 = "0963gw316p4nyxa9zxmgif29p8i99k898av2g78g28dxafqj3w8c";
+    sha256 = "1qs843yi33yqbp0scqirn753lxzg762rz6xy2h3f8f77fijqj2qb";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ zlib curl expat fuse openssl python3 ];
+  buildInputs = [ zlib curl expat openssl python3 ]
+    ++ stdenv.lib.optionals stdenv.isLinux [ fuse ];
 
   meta = {
     homepage = "http://afflib.sourceforge.net/";
     description = "Advanced forensic format library";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
     license = stdenv.lib.licenses.bsdOriginal;
     maintainers = [ stdenv.lib.maintainers.raskin ];
     inherit version;
diff --git a/pkgs/development/libraries/agda/agda-categories/default.nix b/pkgs/development/libraries/agda/agda-categories/default.nix
index 9eb68b5a64a..13ca6c52d71 100644
--- a/pkgs/development/libraries/agda/agda-categories/default.nix
+++ b/pkgs/development/libraries/agda/agda-categories/default.nix
@@ -1,14 +1,14 @@
 { lib, mkDerivation, fetchFromGitHub, standard-library }:
 
 mkDerivation rec {
-  version = "0.1";
+  version = "0.1.3.1";
   pname = "agda-categories";
 
   src = fetchFromGitHub {
     owner = "agda";
     repo = "agda-categories";
-    rev = "release/v${version}";
-    sha256 = "0m4pjy92jg6zfziyv0bxv5if03g8k4413ld8c3ii2xa8bzfn04m2";
+    rev = "v${version}";
+    sha256 = "08mc20qaz9vp5rhi60rh8wvjkg5aby3bgwwdhfnxha1663qf1q24";
   };
 
   buildInputs = [ standard-library ];
@@ -18,11 +18,6 @@ mkDerivation rec {
     description = "A new Categories library";
     license = licenses.bsd3;
     platforms = platforms.unix;
-    # agda categories takes a lot of memory to build.
-    # This can be removed if this is eventually fixed upstream.
-    hydraPlatforms = [];
-    # Waiting for release 0.2 for this to work
-    broken = true;
     maintainers = with maintainers; [ alexarice turion ];
   };
 }
diff --git a/pkgs/development/libraries/agda/agda-prelude/default.nix b/pkgs/development/libraries/agda/agda-prelude/default.nix
index 2bec10c02dd..f13cc698236 100644
--- a/pkgs/development/libraries/agda/agda-prelude/default.nix
+++ b/pkgs/development/libraries/agda/agda-prelude/default.nix
@@ -1,14 +1,14 @@
 { stdenv, mkDerivation, fetchFromGitHub }:
 
 mkDerivation rec {
-  version = "compat-2.6.0";
+  version = "compat-2.6.1";
   pname = "agda-prelude";
 
   src = fetchFromGitHub {
     owner = "UlfNorell";
     repo = "agda-prelude";
     rev = version;
-    sha256 = "0brg61qrf8izqav80qpx77dbdxvlnsxyy0v7hmlrmhg68b5lp38y";
+    sha256 = "128rbhd32qlq2nq3wgqni4ih58zzwvs9pkn9j8236ycxxp6x81sl";
   };
 
   preConfigure = ''
@@ -18,15 +18,11 @@ mkDerivation rec {
     cd ..
   '';
 
-  everythingFile = "./Everything.agda";
-
   meta = with stdenv.lib; {
     homepage = "https://github.com/UlfNorell/agda-prelude";
     description = "Programming library for Agda";
     license = stdenv.lib.licenses.mit;
     platforms = stdenv.lib.platforms.unix;
-    # broken since Agda 2.6.1
-    broken = true;
     maintainers = with maintainers; [ mudri alexarice turion ];
   };
 }
diff --git a/pkgs/development/libraries/agda/generic/default.nix b/pkgs/development/libraries/agda/generic/default.nix
new file mode 100644
index 00000000000..1287e08bda1
--- /dev/null
+++ b/pkgs/development/libraries/agda/generic/default.nix
@@ -0,0 +1,31 @@
+{ lib, mkDerivation, fetchFromGitHub, standard-library }:
+
+mkDerivation rec {
+  pname = "generic";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    repo = "Generic";
+    owner = "effectfully";
+    rev = "v${version}";
+    sha256 = "121121rg3daaqp91845fbyws6g28hyj1ywmh12n54r3nicb35g5q";
+  };
+
+  buildInputs = [
+    standard-library
+  ];
+
+  preBuild = ''
+    echo "module Everything where" > Everything.agda
+	  find src -name '*.agda' | sed -e 's/src\///;s/\//./g;s/\.agda$//;s/^/import /' >> Everything.agda
+  '';
+
+  meta = with lib; {
+    description =
+      "A library for doing generic programming in Agda";
+    homepage = src.meta.homepage;
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ alexarice turion ];
+  };
+}
diff --git a/pkgs/development/libraries/alembic/default.nix b/pkgs/development/libraries/alembic/default.nix
index 0c3ba0abaa9..1bb79a64ba1 100644
--- a/pkgs/development/libraries/alembic/default.nix
+++ b/pkgs/development/libraries/alembic/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec
 {
   pname = "alembic";
-  version = "1.7.12";
+  version = "1.7.14";
 
   src = fetchFromGitHub {
     owner = "alembic";
     repo = "alembic";
     rev = version;
-    sha256 = "0a9icrv6pwh2b73lywq1aj7i19pmzpg59iy3ngal8vq4zdciylqc";
+    sha256 = "0yri063v7j5jsvqbmlwr0hf2d1a55dgc1nj85rf10sxqhijwzk55";
   };
 
   outputs = [ "bin" "dev" "out" "lib" ];
diff --git a/pkgs/development/libraries/amdvlk/default.nix b/pkgs/development/libraries/amdvlk/default.nix
index 893f09809d8..73983dba050 100644
--- a/pkgs/development/libraries/amdvlk/default.nix
+++ b/pkgs/development/libraries/amdvlk/default.nix
@@ -1,6 +1,5 @@
 { stdenv
 , lib
-, fetchpatch
 , fetchRepoProject
 , cmake
 , ninja
@@ -19,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "amdvlk";
-  version = "2020.Q2.6";
+  version = "2020.Q3.4";
 
   src = fetchRepoProject {
     name = "${pname}-src";
     manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
     rev = "refs/tags/v-${version}";
-    sha256 = "1h5j4qaqm4kg5jybkkk6v1mdy0jx0k06mrb8n8jl415z08f0pjgj";
+    sha256 = "13yy1v43wyw2dbanl39sk1798344smmycgvl3gla61ipqls0qfgd";
   };
 
   buildInputs = [
@@ -54,6 +53,7 @@ stdenv.mkDerivation rec {
 
   rpath = lib.makeLibraryPath [
     libdrm
+    openssl
     stdenv.cc.cc.lib
     xorg.libX11
     xorg.libxcb
@@ -78,8 +78,9 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "AMD Open Source Driver For Vulkan";
     homepage = "https://github.com/GPUOpen-Drivers/AMDVLK";
+    changelog = "https://github.com/GPUOpen-Drivers/AMDVLK/releases/tag/v-${version}";
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ Flakebi ];
+    maintainers = with maintainers; [ danieldk Flakebi ];
   };
 }
diff --git a/pkgs/development/libraries/aml/default.nix b/pkgs/development/libraries/aml/default.nix
new file mode 100644
index 00000000000..0b753618ba6
--- /dev/null
+++ b/pkgs/development/libraries/aml/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, meson, pkg-config, ninja }:
+
+stdenv.mkDerivation rec {
+  pname = "aml";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "any1";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1pmiflkd9idnf6p0rnmccqqlj87k8crz9ixpx6rix671vnpk0xzi";
+  };
+
+  nativeBuildInputs = [ meson pkg-config ninja ];
+
+  meta = with stdenv.lib; {
+    description = "Another main loop";
+    inherit (src.meta) homepage;
+    license = licenses.isc;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/pkgs/development/libraries/appindicator-sharp/default.nix b/pkgs/development/libraries/appindicator-sharp/default.nix
new file mode 100644
index 00000000000..9eff4e3895b
--- /dev/null
+++ b/pkgs/development/libraries/appindicator-sharp/default.nix
@@ -0,0 +1,43 @@
+{
+  autoreconfHook,
+  fetchFromGitHub,
+  lib,
+  libappindicator,
+  mono,
+  gtk-sharp-3_0,
+  pkg-config,
+  stdenv,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "appindicator-sharp";
+  version = "5a79cde93da6d68a4b1373f1ce5796c3c5fe1b37";
+
+  src = fetchFromGitHub {
+    owner = "stsundermann";
+    repo = "appindicator-sharp";
+    rev = version;
+    sha256 = "sha256:1i0vqbp05l29f5v9ygp7flm4s05pcnn5ivl578mxmhb51s7ncw6l";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    mono
+    pkg-config
+  ];
+
+  buildInputs = [
+    gtk-sharp-3_0
+    libappindicator
+  ];
+
+  ac_cv_path_MDOC = "no";
+  installFlagsArray = ["GAPIXMLDIR=/tmp/gapixml"];
+
+  meta = {
+    description = "Bindings for appindicator using gobject-introspection";
+    homepage = "https://github.com/stsundermann/appindicator-sharp";
+    license = lib.licenses.lgpl3Only;
+    maintainers = with lib.maintainers; [ kevincox ];
+  };
+}
diff --git a/pkgs/development/libraries/appstream/default.nix b/pkgs/development/libraries/appstream/default.nix
index bffd281d0de..45f27b38a63 100644
--- a/pkgs/development/libraries/appstream/default.nix
+++ b/pkgs/development/libraries/appstream/default.nix
@@ -1,18 +1,20 @@
 { stdenv, fetchFromGitHub, meson, ninja, pkgconfig, gettext
 , xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt
 , libstemmer, glib, xapian, libxml2, libyaml, gobject-introspection
-, pcre, itstool, gperf, vala
+, pcre, itstool, gperf, vala, lmdb, libsoup
 }:
 
 stdenv.mkDerivation rec {
   pname = "appstream";
-  version = "0.12.6";
+  version = "0.12.11";
+
+  outputs = [ "out" "dev" ];
 
   src = fetchFromGitHub {
     owner  = "ximion";
     repo   = "appstream";
-    rev    = "APPSTREAM_${stdenv.lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "0hbl26aw3g2hag7z4di9z59qz057qcywrxpnnmp86z7rngvjbqpx";
+    rev    = "v${version}";
+    sha256 = "sha256-bCDyMwQdn9Csxs2hy4dm+LjtxK4+YBK6yDkAdhu1QVU=";
   };
 
   nativeBuildInputs = [
@@ -21,7 +23,7 @@ stdenv.mkDerivation rec {
     gobject-introspection itstool vala
   ];
 
-  buildInputs = [ libstemmer pcre glib xapian libxml2 libyaml gperf ];
+  buildInputs = [ libstemmer pcre glib xapian libxml2 libyaml gperf lmdb libsoup ];
 
   prePatch = ''
     substituteInPlace meson.build \
@@ -47,6 +49,6 @@ stdenv.mkDerivation rec {
       can be consumed by other software.
     '';
     license     = licenses.lgpl21Plus;
-    platforms   = platforms.linux;
+    platforms   = platforms.unix;
  };
 }
diff --git a/pkgs/development/libraries/argp-standalone/default.nix b/pkgs/development/libraries/argp-standalone/default.nix
index 6544c481187..f961c577aa7 100644
--- a/pkgs/development/libraries/argp-standalone/default.nix
+++ b/pkgs/development/libraries/argp-standalone/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation {
   meta = with stdenv.lib; {
     homepage = "https://www.lysator.liu.se/~nisse/misc/";
     description = "Standalone version of arguments parsing functions from GLIBC";
-    platforms = with platforms; darwin ++ [ "x86_64-linux" ];
+    platforms = with platforms; darwin ++ linux;
     maintainers = with maintainers; [ amar1729 ];
     license = licenses.gpl2;
   };
diff --git a/pkgs/development/libraries/armadillo/default.nix b/pkgs/development/libraries/armadillo/default.nix
index ecf337fc375..90a17b6ad8d 100644
--- a/pkgs/development/libraries/armadillo/default.nix
+++ b/pkgs/development/libraries/armadillo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "armadillo";
-  version = "9.900.1";
+  version = "9.900.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
-    sha256 = "0dfn6wbr7mrh1nzg2rj642p4sycwchf0k743ipgdwvyh4ihsvmsk";
+    sha256 = "01bdw8y2nhj296px6vfh0ibc4gpfa08qh1gb33vzgp9a8k4mi1np";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/arrow-cpp/default.nix b/pkgs/development/libraries/arrow-cpp/default.nix
index b559ef96f43..2c9bced4192 100644
--- a/pkgs/development/libraries/arrow-cpp/default.nix
+++ b/pkgs/development/libraries/arrow-cpp/default.nix
@@ -1,9 +1,16 @@
-{ stdenv, lib, fetchurl, fetchFromGitHub, fetchpatch, fixDarwinDylibNames, autoconf, boost
-, brotli, cmake, flatbuffers, gflags, glog, gtest, lz4, perl
-, python3, rapidjson, snappy, thrift, which, zlib, zstd
+{ stdenv, lib, fetchurl, fetchFromGitHub, fetchpatch, fixDarwinDylibNames
+, autoconf, boost, brotli, cmake, flatbuffers, gflags, glog, gtest, lz4
+, perl, python3, rapidjson, snappy, thrift, utf8proc, which, zlib, zstd
 , enableShared ? true }:
 
 let
+  arrow-testing = fetchFromGitHub {
+    owner = "apache";
+    repo = "arrow-testing";
+    rev = "f552c4dcd2ae3d14048abd20919748cce5276ade";
+    sha256 = "1smaidk5k2q6xdav7qp74ak34vvwv5qyfqw0szi573awsrsrahr8";
+  };
+
   parquet-testing = fetchFromGitHub {
     owner = "apache";
     repo = "parquet-testing";
@@ -13,14 +20,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "arrow-cpp";
-  version = "0.17.1";
+  version = "1.0.0";
 
   src = fetchurl {
     url =
       "mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz";
-    sha256 = "18lyvbibfdw3w77cy5whbq7c6mshn5fg2bhvgw7v226a7cs1rifb";
+    sha256 = "0hzjrhr4brqpmy9f8fbj9p5a482ya8kjhkycz6maa0w2nkzbkpc6";
   };
-
   sourceRoot = "apache-arrow-${version}/cpp";
 
   ARROW_JEMALLOC_URL = fetchurl {
@@ -32,19 +38,31 @@ in stdenv.mkDerivation rec {
     sha256 = "1xl7z0vwbn5iycg7amka9jd6hxd8nmfk7nahi4p9w2bnw9f0wcrl";
   };
 
+  ARROW_MIMALLOC_URL = fetchurl {
+    # From
+    # ./cpp/cmake_modules/ThirdpartyToolchain.cmake
+    # ./cpp/thirdparty/versions.txt
+    url =
+      "https://github.com/microsoft/mimalloc/archive/v1.6.3.tar.gz";
+    sha256 = "0pia8b4acv1w8qzcpc9i1a2fasnn3rmp996k0l87p2di0lbls0w5";
+  };
+
   patches = [
     # patch to fix python-test
     ./darwin.patch
-
-    # fix musl build
+    # Properly exported static targets. Remove at the next version bump.
     (fetchpatch {
-      url = "https://github.com/apache/arrow/commit/de4168786dfd8ab932f48801e0a7a6b8a370c19d.diff";
-      sha256 = "1nl4y1rwdl0gn67v7l05ibc4lwkn6x7fhwbmslmm08cqmwfjsx3y";
+      url = "https://github.com/apache/arrow/commit/b040600b39a4f803b704934252665f9440dd1276.patch";
+      sha256 = "1mvw29ybcsz77zprmsk41blxmrj8ywayg7ghf6xkkf98907ws8m8";
+      includes = [ "*.cmake" ];
+      stripLen = 1;
+    })
+    (fetchpatch {
+      url = "https://github.com/apache/arrow/commit/81d3f2657b17436d6d5a6af9aaf6f36c3f5e4ac9.patch";
+      sha256 = "18fmzr5f79hvx2qpyfgvvl98p4zgzfxrmrd1d2basp0w0da1ciqs";
+      includes = [ "*CMakeLists.txt" "*.cmake" "*.cmake.in" ];
       stripLen = 1;
     })
-  ] ++ lib.optionals (!enableShared) [
-    # The shared jemalloc lib is unused and breaks in static mode due to missing -fpic.
-    ./jemalloc-disable-shared.patch
   ];
 
   nativeBuildInputs = [
@@ -63,6 +81,7 @@ in stdenv.mkDerivation rec {
     rapidjson
     snappy
     thrift
+    utf8proc
     zlib
     zstd
   ] ++ lib.optionals enableShared [
@@ -71,15 +90,17 @@ in stdenv.mkDerivation rec {
   ];
 
   preConfigure = ''
-    substituteInPlace cmake_modules/FindLz4.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY
-
     patchShebangs build-support/
   '';
 
   cmakeFlags = [
     "-DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON"
+    "-DARROW_BUILD_SHARED=${if enableShared then "ON" else "OFF"}"
+    "-DARROW_BUILD_STATIC=${if enableShared then "OFF" else "ON"}"
     "-DARROW_BUILD_TESTS=ON"
+    "-DARROW_VERBOSE_THIRDPARTY_BUILD=ON"
     "-DARROW_DEPENDENCY_SOURCE=SYSTEM"
+    "-DARROW_DEPENDENCY_USE_SHARED=${if enableShared then "ON" else "OFF"}"
     "-DARROW_PLASMA=ON"
     # Disable Python for static mode because openblas is currently broken there.
     "-DARROW_PYTHON=${if enableShared then "ON" else "OFF"}"
@@ -87,24 +108,23 @@ in stdenv.mkDerivation rec {
     "-DARROW_WITH_BROTLI=ON"
     "-DARROW_WITH_LZ4=ON"
     "-DARROW_WITH_SNAPPY=ON"
+    "-DARROW_WITH_UTF8PROC=ON"
     "-DARROW_WITH_ZLIB=ON"
     "-DARROW_WITH_ZSTD=ON"
+    "-DARROW_MIMALLOC=ON"
     # Parquet options:
     "-DARROW_PARQUET=ON"
     "-DPARQUET_BUILD_EXECUTABLES=ON"
   ] ++ lib.optionals (!enableShared) [
-    "-DARROW_BUILD_SHARED=OFF"
-    "-DARROW_BOOST_USE_SHARED=OFF"
-    "-DARROW_GFLAGS_USE_SHARED=OFF"
-    "-DARROW_PROTOBUF_USE_SHARED=OFF"
     "-DARROW_TEST_LINKAGE=static"
-    "-DOPENSSL_USE_STATIC_LIBS=ON"
   ] ++ lib.optionals stdenv.isDarwin [
     "-DCMAKE_SKIP_BUILD_RPATH=OFF" # needed for tests
     "-DCMAKE_INSTALL_RPATH=@loader_path/../lib" # needed for tools executables
   ] ++ lib.optional (!stdenv.isx86_64) "-DARROW_USE_SIMD=OFF";
 
   doInstallCheck = true;
+  ARROW_TEST_DATA =
+    if doInstallCheck then "${arrow-testing}/data" else null;
   PARQUET_TEST_DATA =
     if doInstallCheck then "${parquet-testing}/data" else null;
   installCheckInputs = [ perl which ];
diff --git a/pkgs/development/libraries/arrow-cpp/jemalloc-disable-shared.patch b/pkgs/development/libraries/arrow-cpp/jemalloc-disable-shared.patch
deleted file mode 100644
index 564f6727388..00000000000
--- a/pkgs/development/libraries/arrow-cpp/jemalloc-disable-shared.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake
---- a/cmake_modules/ThirdpartyToolchain.cmake
-+++ b/cmake_modules/ThirdpartyToolchain.cmake
-@@ -1317,6 +1317,7 @@ if(ARROW_JEMALLOC)
-               "--with-jemalloc-prefix=je_arrow_"
-               "--with-private-namespace=je_arrow_private_"
-               "--without-export"
-+              "--disable-shared"
-               # Don't override operator new()
-               "--disable-cxx" "--disable-libdl"
-               # See https://github.com/jemalloc/jemalloc/issues/1237
diff --git a/pkgs/development/libraries/aspell/dictionaries.nix b/pkgs/development/libraries/aspell/dictionaries.nix
index 1d7b7a6f98b..32405d6a525 100644
--- a/pkgs/development/libraries/aspell/dictionaries.nix
+++ b/pkgs/development/libraries/aspell/dictionaries.nix
@@ -274,10 +274,10 @@ in rec {
 
   de = buildOfficialDict {
     language = "de";
-    version = "20030222-1";
+    version = "20161207-7-0";
     fullName = "German";
     filename = "aspell6";
-    sha256 = "01p92qj66cqb346gk7hjfynaap5sbcn85xz07kjfdq623ghr8v5s";
+    sha256 = "0wamclvp66xfmv5wff96v6gdlnfv4y8lx3f8wvxyzm5imwgms4n2";
   };
 
   de-alt = buildOfficialDict {
@@ -694,18 +694,18 @@ in rec {
 
   pt_BR = buildOfficialDict {
     language = "pt_BR";
-    version = "20090702-0";
+    version = "20131030-12-0";
     fullName = "Brazilian Portuguese";
     filename = "aspell6";
-    sha256 = "1y09lx9zf2rnp55r16b2vgj953l3538z1vaqgflg9mdvm555bz3p";
+    sha256 = "1xqlpk21s93c6blkdnpk7l62q9fxjvzdv2x86chl8p2x1gdrj3gb";
   };
 
   pt_PT = buildOfficialDict {
     language = "pt_PT";
-    version = "20070510-0";
+    version = "20190329-1-0";
     fullName = "Portuguese";
     filename = "aspell6";
-    sha256 = "1mnr994cwlag6shy8865ky99lymysiln07mbldcncahg90dagdxq";
+    sha256 = "0ld0d0ily4jqifjfsxfv4shbicz6ymm2gk56fq9gbzra1j4qnw75";
   };
 
   qu = buildOfficialDict {
diff --git a/pkgs/development/libraries/assimp/default.nix b/pkgs/development/libraries/assimp/default.nix
index a6f27f4476b..c1972aa1ca8 100644
--- a/pkgs/development/libraries/assimp/default.nix
+++ b/pkgs/development/libraries/assimp/default.nix
@@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
     homepage = "http://assimp.sourceforge.net/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ehmry ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/libraries/at-spi2-core/default.nix b/pkgs/development/libraries/at-spi2-core/default.nix
index 32667bf66e0..2c959434f01 100644
--- a/pkgs/development/libraries/at-spi2-core/default.nix
+++ b/pkgs/development/libraries/at-spi2-core/default.nix
@@ -20,11 +20,11 @@
 
 stdenv.mkDerivation rec {
   pname = "at-spi2-core";
-  version = "2.36.0";
+  version = "2.36.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0nn0lnf07ayysq8c8irmvc91c2dszn04m5qs6jy60g3y1bg5gnl8";
+    sha256 = "0m3crrdbc9vdn9dr4lssdwrjmm8z5wxs2qhhnbkh1w5vkn87nhcp";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/attr/default.nix b/pkgs/development/libraries/attr/default.nix
index 497262c04d7..d69d475f737 100644
--- a/pkgs/development/libraries/attr/default.nix
+++ b/pkgs/development/libraries/attr/default.nix
@@ -1,5 +1,10 @@
 { stdenv, fetchurl, gettext }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   name = "attr-2.4.48";
 
@@ -14,10 +19,7 @@ stdenv.mkDerivation rec {
 
   patches = [
     # fix fakechroot: https://github.com/dex4er/fakechroot/issues/57
-    (fetchurl {
-      url = "https://git.savannah.nongnu.org/cgit/attr.git/patch/?id=14adc898a36948267bfe5c63b399996879e94c98";
-      sha256 = "0gja54fz79a9ma6b4mprnjxq77l5yg2z9xknlwhmkcrfnam02qxp";
-    })
+    ./syscall.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/development/libraries/attr/syscall.patch b/pkgs/development/libraries/attr/syscall.patch
new file mode 100644
index 00000000000..be2cfb3928b
--- /dev/null
+++ b/pkgs/development/libraries/attr/syscall.patch
@@ -0,0 +1,120 @@
+From 14adc898a36948267bfe5c63b399996879e94c98 Mon Sep 17 00:00:00 2001
+From: Andreas Gruenbacher <agruenba@redhat.com>
+Date: Fri, 17 Aug 2018 14:07:31 +0200
+Subject: Switch back to syscall()
+
+Switch back to syscall() for the *xattr system calls.  The current
+mechanism of forwarding those calls to glibc breaks libraries like
+libfakeroot (fakeroot) and libasan (the gcc address sanitizer; gcc
+-fsanitize=address).
+
+Those libraries provide wrappers for functions defined in other shared
+libraries, usually glibc, do their own processing, and forward calls to
+the original symbols looke dup via dlsym(RTLD_NEXT, "symbol_name").  In
+our case, dlsym returns the libattr_*xattr wrappers.  However, when our
+wrappers try calling glibc, they end up calling the libfakeroot /
+libasan wrappers instead because those override the original symbols =>
+recursion.
+
+The libattr_*xattr wrappers will only be used when symbols are looked up
+at runtime (dlopen / dlsym).  Programs linking against libattr will
+directly use the glibc provided symbols.  Therefore, the slightly worse
+performance of syscall() won't affect any of the "normal" users of
+libattr.
+---
+ libattr/syscalls.c | 26 ++++++++++++++------------
+ 1 file changed, 14 insertions(+), 12 deletions(-)
+
+diff --git a/libattr/syscalls.c b/libattr/syscalls.c
+index 3013aa0..721ad7f 100644
+--- a/libattr/syscalls.c
++++ b/libattr/syscalls.c
+@@ -22,6 +22,8 @@
+ 
+ #include "config.h"
+ 
++#include <unistd.h>
++#include <sys/syscall.h>
+ #include <sys/xattr.h>
+ 
+ #ifdef HAVE_VISIBILITY_ATTRIBUTE
+@@ -31,67 +33,67 @@
+ int libattr_setxattr(const char *path, const char *name,
+ 		     void *value, size_t size, int flags)
+ {
+-	return setxattr(path, name, value, size, flags);
++	return syscall(__NR_setxattr, path, name, value, size, flags);
+ }
+ 
+ int libattr_lsetxattr(const char *path, const char *name,
+ 		      void *value, size_t size, int flags)
+ {
+-	return lsetxattr(path, name, value, size, flags);
++	return syscall(__NR_lsetxattr, path, name, value, size, flags);
+ }
+ 
+ int libattr_fsetxattr(int filedes, const char *name,
+ 		      void *value, size_t size, int flags)
+ {
+-	return fsetxattr(filedes, name, value, size, flags);
++	return syscall(__NR_fsetxattr, filedes, name, value, size, flags);
+ }
+ 
+ ssize_t libattr_getxattr(const char *path, const char *name,
+ 			 void *value, size_t size)
+ {
+-	return getxattr(path, name, value, size);
++	return syscall(__NR_getxattr, path, name, value, size);
+ }
+ 
+ ssize_t libattr_lgetxattr(const char *path, const char *name,
+ 			  void *value, size_t size)
+ {
+-	return lgetxattr(path, name, value, size);
++	return syscall(__NR_lgetxattr, path, name, value, size);
+ }
+ 
+ ssize_t libattr_fgetxattr(int filedes, const char *name,
+ 			  void *value, size_t size)
+ {
+-	return fgetxattr(filedes, name, value, size);
++	return syscall(__NR_fgetxattr, filedes, name, value, size);
+ }
+ 
+ ssize_t libattr_listxattr(const char *path, char *list, size_t size)
+ {
+-	return listxattr(path, list, size);
++	return syscall(__NR_listxattr, path, list, size);
+ }
+ 
+ ssize_t libattr_llistxattr(const char *path, char *list, size_t size)
+ {
+-	return llistxattr(path, list, size);
++	return syscall(__NR_llistxattr, path, list, size);
+ }
+ 
+ ssize_t libattr_flistxattr(int filedes, char *list, size_t size)
+ {
+-	return flistxattr(filedes, list, size);
++	return syscall(__NR_flistxattr, filedes, list, size);
+ }
+ 
+ int libattr_removexattr(const char *path, const char *name)
+ {
+-	return removexattr(path, name);
++	return syscall(__NR_removexattr, path, name);
+ }
+ 
+ int libattr_lremovexattr(const char *path, const char *name)
+ {
+-	return lremovexattr(path, name);
++	return syscall(__NR_lremovexattr, path, name);
+ }
+ 
+ int libattr_fremovexattr(int filedes, const char *name)
+ {
+-	return fremovexattr(filedes, name);
++	return syscall(__NR_fremovexattr, filedes, name);
+ }
+ 
+ #ifdef HAVE_VISIBILITY_ATTRIBUTE
diff --git a/pkgs/development/libraries/audio/libmysofa/default.nix b/pkgs/development/libraries/audio/libmysofa/default.nix
index 5324fe0685d..c2b2725c19c 100644
--- a/pkgs/development/libraries/audio/libmysofa/default.nix
+++ b/pkgs/development/libraries/audio/libmysofa/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
   buildInputs = [ zlib ];
 
-  cmakeFlags = [ "-DBUILD_TESTS=OFF" ];
+  cmakeFlags = [ "-DBUILD_TESTS=OFF" "-DCODE_COVERAGE=OFF" ];
 
   meta = with stdenv.lib; {
     description = "Reader for AES SOFA files to get better HRTFs";
diff --git a/pkgs/development/libraries/audio/lv2/default.nix b/pkgs/development/libraries/audio/lv2/default.nix
index bb2645beda7..dac98584646 100644
--- a/pkgs/development/libraries/audio/lv2/default.nix
+++ b/pkgs/development/libraries/audio/lv2/default.nix
@@ -12,11 +12,13 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig wafHook ];
   buildInputs = [ gtk2 libsndfile python3 ];
 
+  wafConfigureFlags = stdenv.lib.optionals stdenv.isDarwin [ "--lv2dir=${placeholder "out"}/lib/lv2" ];
+
   meta = with stdenv.lib; {
     homepage = "https://lv2plug.in";
     description = "A plugin standard for audio systems";
     license = licenses.mit;
     maintainers = [ maintainers.goibhniu ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/audio/mbelib/default.nix b/pkgs/development/libraries/audio/mbelib/default.nix
new file mode 100644
index 00000000000..1fda3a91926
--- /dev/null
+++ b/pkgs/development/libraries/audio/mbelib/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "mbelib";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "szechyjs";
+    repo = "mbelib";
+    rev = "v${version}";
+    sha256 = "0v6b7nf8fgxy7vzgcwffqyql5zhldrz30c88k1ylbjp78hwh4rif";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+  preCheck = ''
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD
+    export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}$PWD
+  '';
+
+  meta = with stdenv.lib; {
+    description = "P25 Phase 1 and ProVoice vocoder";
+    homepage = https://github.com/szechyjs/mbelib;
+    license = licenses.isc;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ andrew-d ];
+  };
+}
diff --git a/pkgs/development/libraries/avahi/default.nix b/pkgs/development/libraries/avahi/default.nix
index 4c7e5321f55..3f36b87af70 100644
--- a/pkgs/development/libraries/avahi/default.nix
+++ b/pkgs/development/libraries/avahi/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, fetchpatch, stdenv, pkgconfig, libdaemon, dbus, perlPackages
-, expat, gettext, intltool, glib, libiconv
+, expat, gettext, intltool, glib, libiconv, writeShellScriptBin
 , gtk3Support ? false, gtk3 ? null
 , qt4 ? null
 , qt4Support ? false
@@ -9,6 +9,11 @@
 
 assert qt4Support -> qt4 != null;
 
+let
+  # despite the configure script claiming it supports $PKG_CONFIG, it doesnt respect it
+  pkgconfig-helper = writeShellScriptBin "pkg-config" ''exec $PKG_CONFIG "$@"'';
+in
+
 stdenv.mkDerivation rec {
   name = "avahi${stdenv.lib.optionalString withLibdnssdCompat "-compat"}-${version}";
   version = "0.7";
@@ -18,6 +23,11 @@ stdenv.mkDerivation rec {
     sha256 = "0128n7jlshw4bpx0vg8lwj8qwdisjxi7mvniwfafgnkzzrfrpaap";
   };
 
+  prePatch = ''
+    substituteInPlace configure \
+      --replace pkg-config "$PKG_CONFIG"
+  '';
+
   patches = [
     ./no-mkdir-localstatedir.patch
     (fetchpatch {
@@ -35,7 +45,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs =
     stdenv.lib.optionals withPython (with python.pkgs; [ python pygobject3 dbus-python ]);
 
-  nativeBuildInputs = [ pkgconfig gettext intltool glib ];
+  nativeBuildInputs = [ pkgconfig pkgconfig-helper gettext intltool glib ];
 
   configureFlags =
     [ "--disable-qt3" "--disable-gdbm" "--disable-mono"
diff --git a/pkgs/development/libraries/ayatana-ido/default.nix b/pkgs/development/libraries/ayatana-ido/default.nix
new file mode 100644
index 00000000000..66ead87daa0
--- /dev/null
+++ b/pkgs/development/libraries/ayatana-ido/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub
+, pkgconfig, autoreconfHook
+, gtk3, gobject-introspection, gtk-doc, vala
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ayatana-ido";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    owner = "AyatanaIndicators";
+    repo = pname;
+    rev = version;
+    sha256 = "1jmdvvgrgicpnpnygc24qcisqb9y026541gb6lw6fwapvc9aj73p";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook gtk-doc vala ];
+
+  buildInputs = [ gtk3 gobject-introspection ];
+
+  meta = with stdenv.lib; {
+    description = "Ayatana Display Indicator Objects";
+    homepage = "https://github.com/AyatanaIndicators/ayatana-ido";
+    changelog = "https://github.com/AyatanaIndicators/ayatana-ido/blob/${version}/ChangeLog";
+    license = [ licenses.gpl3 licenses.lgpl21 ];
+    maintainers = [ maintainers.nickhu ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/pkgs/development/libraries/babl/default.nix b/pkgs/development/libraries/babl/default.nix
index 12547bcb4c7..0b6c2ce064a 100644
--- a/pkgs/development/libraries/babl/default.nix
+++ b/pkgs/development/libraries/babl/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "babl";
-  version = "0.1.78";
+  version = "0.1.80";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://download.gimp.org/pub/babl/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "F9VJNjO/9VhdnzdbxN9ZJRV80ccMzXwipjW+dcFyUjo=";
+    sha256 = "13jgq2i1xkbqw9ijy8sy5iabf5jkviqi0wxlpjcm0n22mwwwqp7p";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/c-ares/default.nix b/pkgs/development/libraries/c-ares/default.nix
index 02f0872cee3..2751565670a 100644
--- a/pkgs/development/libraries/c-ares/default.nix
+++ b/pkgs/development/libraries/c-ares/default.nix
@@ -1,5 +1,10 @@
 { stdenv, fetchurl, writeTextDir }:
 
+# 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
+# files.
+
 let self =
 stdenv.mkDerivation rec {
   name = "c-ares-1.15.0";
diff --git a/pkgs/development/libraries/c-blosc/default.nix b/pkgs/development/libraries/c-blosc/default.nix
index 85905778e80..59daf15d416 100644
--- a/pkgs/development/libraries/c-blosc/default.nix
+++ b/pkgs/development/libraries/c-blosc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "c-blosc";
-  version = "1.18.1";
+  version = "1.20.0";
 
   src = fetchFromGitHub {
     owner = "Blosc";
     repo = "c-blosc";
     rev = "v${version}";
-    sha256 = "1ywq8j70149859vvs19wgjq89d6xsvvmvm2n1dmkzpchxgrvnw70";
+    sha256 = "1rhv9na9cdp2j81a981s2y69c7m9apdiylf9j51dij0lm1m0ljdr";
   };
 
   buildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/caf/default.nix b/pkgs/development/libraries/caf/default.nix
index 605df238101..74ca27f2e3c 100644
--- a/pkgs/development/libraries/caf/default.nix
+++ b/pkgs/development/libraries/caf/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "actor-framework";
-  version = "0.17.5";
+  version = "0.17.6";
 
   src = fetchFromGitHub {
     owner = "actor-framework";
     repo = "actor-framework";
     rev = version;
-    sha256 = "1w7sanxhh4sv4ap3ildqzlziazcy7ydx2pbjjrf3k60lcwq0lzn6";
+    sha256 = "03pi2jcdvdxncvv3hmzlamask0db1fc5l79k9rgq9agl0swd0mnz";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/cairo/default.nix b/pkgs/development/libraries/cairo/default.nix
index 628046a5741..a414191ac0d 100644
--- a/pkgs/development/libraries/cairo/default.nix
+++ b/pkgs/development/libraries/cairo/default.nix
@@ -4,13 +4,13 @@
 , gobjectSupport ? true, glib
 , xcbSupport ? x11Support, libxcb, xcbutil # no longer experimental since 1.12
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
-, glSupport ? config.cairo.gl or (libGLSupported && stdenv.isLinux)
+, glSupport ? x11Support && config.cairo.gl or (libGLSupported && stdenv.isLinux)
 , libGL ? null # libGLU libGL is no longer a big dependency
 , pdfSupport ? true
 , darwin
 }:
 
-assert glSupport -> libGL != null;
+assert glSupport -> x11Support && libGL != null;
 
 let
   version = "1.16.0";
diff --git a/pkgs/development/libraries/capnproto/default.nix b/pkgs/development/libraries/capnproto/default.nix
index 9020ccf08b5..ad2517f2589 100644
--- a/pkgs/development/libraries/capnproto/default.nix
+++ b/pkgs/development/libraries/capnproto/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "capnproto";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchurl {
     url = "https://capnproto.org/capnproto-c++-${version}.tar.gz";
-    sha256 = "0hfdnhlbskagzgvby8wy6lrxj53zfzpfqimbhga68c0ji2yw1969";
+    sha256 = "03f1862ljdshg7d0rg3j7jzgm3ip55kzd2y91q7p0racax3hxx6i";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/catch2/default.nix b/pkgs/development/libraries/catch2/default.nix
index ec3c04856fe..49b2e9be02c 100644
--- a/pkgs/development/libraries/catch2/default.nix
+++ b/pkgs/development/libraries/catch2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "catch2";
-  version = "2.12.2";
+  version = "2.12.3";
 
   src = fetchFromGitHub {
     owner = "catchorg";
     repo = "Catch2";
     rev = "v${version}";
-    sha256="17fr2k0jhdcrmmvvb9d8igmjbyads3hkdrakvmrpgc82srm78jcc";
+    sha256="0rp30754frp88wbl17ksr40mmffw5xibq73blgx9jj42d7nl891x";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/check/default.nix b/pkgs/development/libraries/check/default.nix
index 0a51e7e592b..be000e457c4 100644
--- a/pkgs/development/libraries/check/default.nix
+++ b/pkgs/development/libraries/check/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "check";
-  version = "0.14.0";
+  version = "0.15.2";
 
   src = fetchurl {
     url = "https://github.com/libcheck/check/releases/download/${version}/check-${version}.tar.gz";
-    sha256 = "02zkfiyklckmivrfvdsrlzvzphkdsgjrz3igncw05dv5pshhq3xx";
+    sha256 = "02m25y9m46pb6n46s51av62kpd936lkfv3b13kfpckgvmh5lxpm8";
   };
 
   # Test can randomly fail: https://hydra.nixos.org/build/7243912
diff --git a/pkgs/development/libraries/chromaprint/default.nix b/pkgs/development/libraries/chromaprint/default.nix
index 9da5a80f620..4702d67a01f 100644
--- a/pkgs/development/libraries/chromaprint/default.nix
+++ b/pkgs/development/libraries/chromaprint/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, boost, ffmpeg_3 }:
+{ stdenv, fetchurl, cmake, boost, ffmpeg }:
 
 stdenv.mkDerivation rec {
   pname = "chromaprint";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ boost ffmpeg_3 ];
+  buildInputs = [ boost ffmpeg ];
 
   cmakeFlags = [ "-DBUILD_EXAMPLES=ON" "-DBUILD_TOOLS=ON" ];
 
diff --git a/pkgs/development/libraries/cimg/default.nix b/pkgs/development/libraries/cimg/default.nix
index 312f927767d..c50838bc0d5 100644
--- a/pkgs/development/libraries/cimg/default.nix
+++ b/pkgs/development/libraries/cimg/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cimg";
-  version = "2.9.1";
+  version = "2.9.2";
 
   src = fetchFromGitHub {
     owner = "dtschump";
     repo = "CImg";
     rev = "v.${version}";
-    sha256 = "0vl7dscbms4834gm1000sp17pr714pbqwicn40pbl85mxr3pnjp3";
+    sha256 = "01hvjlxclbmrzqb8qz1h2sdkpybpg14q81na8kfi94w3bkkkmzzf";
   };
 
   installPhase = ''
diff --git a/pkgs/development/libraries/console-bridge/default.nix b/pkgs/development/libraries/console-bridge/default.nix
new file mode 100644
index 00000000000..e2370ecce64
--- /dev/null
+++ b/pkgs/development/libraries/console-bridge/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub, cmake, validatePkgConfig }:
+
+stdenv.mkDerivation rec {
+  pname = "console-bridge";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "ros";
+    repo = "console_bridge";
+    rev = version;
+    sha256 = "18qycrjnf7v8n5bipij91jsv7ap98z5dsp93w2gz9rah4lfjb80q";
+  };
+
+  nativeBuildInputs = [ cmake validatePkgConfig ];
+
+  meta = with lib; {
+    description = "A ROS-independent package for logging that seamlessly pipes into rosconsole/rosout for ROS-dependent packages";
+    homepage = "https://github.com/ros/console_bridge";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ lopsided98 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/cpp-hocon/default.nix b/pkgs/development/libraries/cpp-hocon/default.nix
index 01da4753b0e..47ec7a1a6eb 100644
--- a/pkgs/development/libraries/cpp-hocon/default.nix
+++ b/pkgs/development/libraries/cpp-hocon/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "cpp-hocon";
-  version = "0.2.2";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
-    sha256 = "1c8zy4hi0182k0vfx5l8bjq1iv7lvvw1zi4vy3429s898rx7z3d3";
+    sha256 = "0b24anpwkmvbsn5klnr58vxksw00ci9pjhwzx7a61kplyhsaiydw";
     rev = version;
     repo = "cpp-hocon";
     owner = "puppetlabs";
   };
 
-  NIX_CFLAGS_COMPILE = "-Wno-error=catch-value";
+  NIX_CFLAGS_COMPILE = "-Wno-error";
 
   nativeBuildInputs = [ cmake ];
 
@@ -21,10 +21,10 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     inherit (src.meta) homepage;
-    description = " A C++ port of the Typesafe Config library";
+    description = "A C++ port of the Typesafe Config library";
     license = licenses.asl20;
     maintainers = [ maintainers.womfoo ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 
 }
diff --git a/pkgs/development/libraries/cpp-utilities/default.nix b/pkgs/development/libraries/cpp-utilities/default.nix
index 4b2520d714b..cbe628aaf4e 100644
--- a/pkgs/development/libraries/cpp-utilities/default.nix
+++ b/pkgs/development/libraries/cpp-utilities/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cpp-utilities";
-  version = "5.4.0";
+  version = "5.6.0";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = pname;
     rev = "v${version}";
-    sha256 = "18sy1jrz5adzy7c8k42kqlpicc4h0igimjqwaa6m9swwkhwiqqjz";
+    sha256 = "0998pyrxicpalm2w1wmv7qrfhzgr45kl6xh9gv0zxhx2a4xjqq5v";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index 049623d3d91..3598d8d938e 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -20,11 +20,11 @@ assert enableSystemd -> systemd != null;
 
 stdenv.mkDerivation rec {
   pname = "dbus";
-  version = "1.12.18";
+  version = "1.12.20";
 
   src = fetchurl {
     url = "https://dbus.freedesktop.org/releases/dbus/dbus-${version}.tar.gz";
-    sha256 = "01jkm6shm76bl3cflmnn37dv6nkph0w1akbqpklyac02hiq4vkv4";
+    sha256 = "1zp5gpx61v1cpqf2zwb1cidhp9xylvw49d3zydkxqk6b1qa20xpp";
   };
 
   patches = lib.optional stdenv.isSunOS ./implement-getgrouplist.patch;
diff --git a/pkgs/development/libraries/dbxml/default.nix b/pkgs/development/libraries/dbxml/default.nix
index 4913cfe2847..a0005f1bf72 100644
--- a/pkgs/development/libraries/dbxml/default.nix
+++ b/pkgs/development/libraries/dbxml/default.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "a8fc8f5e0c3b6e42741fa4dfc3b878c982ff8f5e5f14843f6a7e20d22e64251a";
   };
 
+  outputs = [ "bin" "dev" "out" ];
+
   patches = [
     ./cxx11.patch
     ./incorrect-optimization.patch
diff --git a/pkgs/development/libraries/dlib/default.nix b/pkgs/development/libraries/dlib/default.nix
index a7d68d62f2a..43ac2530cc1 100644
--- a/pkgs/development/libraries/dlib/default.nix
+++ b/pkgs/development/libraries/dlib/default.nix
@@ -2,26 +2,26 @@
 , guiSupport ? false, libX11
 
   # see http://dlib.net/compile.html
-, avxSupport ? true
+, avxSupport ? stdenv.hostPlatform.avxSupport
 , cudaSupport ? true
 }:
 
 stdenv.mkDerivation rec {
   pname = "dlib";
-  version = "19.20";
+  version = "19.21";
 
   src = fetchFromGitHub {
     owner = "davisking";
     repo = "dlib";
     rev ="v${version}";
-    sha256 = "10b5hrprlls0nhljx18ys8cms7bgqirvhxlx6gbvbprbi6q16f9r";
+    sha256 = "00jwklnl21l3hlvb0bjc6rl3hgi88vxb41dsn4m0kh436c9v0rl3";
   };
 
   postPatch = ''
     rm -rf dlib/external
   '';
 
-  cmakeFlags = [ 
+  cmakeFlags = [
     "-DUSE_DLIB_USE_CUDA=${if cudaSupport then "1" else "0"}"
     "-DUSE_AVX_INSTRUCTIONS=${if avxSupport then "yes" else "no"}" ];
 
diff --git a/pkgs/development/libraries/docopt_cpp/default.nix b/pkgs/development/libraries/docopt_cpp/default.nix
index 5c4e71a4f87..36b791ccc98 100644
--- a/pkgs/development/libraries/docopt_cpp/default.nix
+++ b/pkgs/development/libraries/docopt_cpp/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, cmake, python }:
 
 stdenv.mkDerivation rec {
-  version = "0.6.2";
+  version = "0.6.3";
   pname = "docopt.cpp";
 
   src = fetchFromGitHub {
     owner = "docopt";
     repo = "docopt.cpp";
     rev = "v${version}";
-    sha256 = "1rgkc8nsc2zz2lkyai0y68vrd6i6kbq63hm3vdza7ab6ghq0n1dd";
+    sha256 = "0cz3vv7g5snfbsqcf3q8bmd6kv5qp84gj3avwkn4vl00krw13bl7";
   };
 
   nativeBuildInputs = [ cmake python ];
@@ -17,6 +17,12 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  postPatch = ''
+    substituteInPlace docopt.pc.in \
+      --replace "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@" \
+                "@CMAKE_INSTALL_LIBDIR@"
+  '';
+
   checkPhase = "LD_LIBRARY_PATH=$(pwd) python ./run_tests";
 
   meta = with stdenv.lib; {
@@ -27,4 +33,3 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ knedlsepp ];
   };
 }
-
diff --git a/pkgs/development/libraries/dqlite/default.nix b/pkgs/development/libraries/dqlite/default.nix
index aed7dc59bcb..49435ec6718 100644
--- a/pkgs/development/libraries/dqlite/default.nix
+++ b/pkgs/development/libraries/dqlite/default.nix
@@ -1,17 +1,15 @@
 { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, file, libco-canonical
 , libuv, raft-canonical, sqlite-replication }:
 
-with stdenv.lib;
-
 stdenv.mkDerivation rec {
   pname = "dqlite";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = pname;
     rev = "v${version}";
-    sha256 = "04h3wbfv6bkzzmcwaja33x2qkj3czn0p6fgbdgqd1xli8sx2c2k4";
+    sha256 = "0h7ypigj1b6xbspzc35y89jkp84v8rqiv9qgkyqlqylr7mcw952a";
   };
 
   nativeBuildInputs = [ autoreconfHook file pkgconfig ];
@@ -22,17 +20,17 @@ stdenv.mkDerivation rec {
     sqlite-replication
   ];
 
-  # tests hang for ever on x86_64-linux
+  # tests fail
   doCheck = false;
 
   outputs = [ "dev" "out" ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = ''
       Expose a SQLite database over the network and replicate it across a
       cluster of peers
     '';
-    homepage = "https://github.com/CanonicalLtd/dqlite/";
+    homepage = "https://dqlite.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ joko wucke13 ];
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/draco/default.nix b/pkgs/development/libraries/draco/default.nix
new file mode 100644
index 00000000000..f8b806482ac
--- /dev/null
+++ b/pkgs/development/libraries/draco/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, cmake
+}:
+
+stdenv.mkDerivation rec {
+  version = "1.3.6";
+  pname = "draco";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "draco";
+    rev = version;
+    sha256 = "06adhz8gsnns6q98yzjm64xs04qp2fhm9bv0wxny68rkw0bh95a0";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = [
+    # Fake these since we are building from a tarball
+    "-Ddraco_git_hash=${version}"
+    "-Ddraco_git_desc=${version}"
+
+    "-DBUILD_UNITY_PLUGIN=1"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Library for compressing and decompressing 3D geometric meshes and point clouds";
+    homepage = "https://google.github.io/draco/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jansol ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/duckdb/default.nix b/pkgs/development/libraries/duckdb/default.nix
index e37856abe2b..05961bce89c 100644
--- a/pkgs/development/libraries/duckdb/default.nix
+++ b/pkgs/development/libraries/duckdb/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "duckdb";
-  version = "0.1.7";
+  version = "0.1.8";
 
   src = fetchFromGitHub {
     owner = "cwida";
     repo = "duckdb";
     rev = "v${version}";
-    sha256 = "1pz2q9c3803w8vbqiz9lag4g1kgl4ff9xca0kpcz72ap39pbp5jk";
+    sha256 = "15qn967q9v23l0sgb2jqb77z4qdkyn1zwdpj4b0rd9zk5h3fzj55";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/dxflib/default.nix b/pkgs/development/libraries/dxflib/default.nix
index 8d8b41e0609..e1cb8d2d9e2 100644
--- a/pkgs/development/libraries/dxflib/default.nix
+++ b/pkgs/development/libraries/dxflib/default.nix
@@ -1,12 +1,40 @@
-{stdenv, fetchurl}:
+{ stdenv
+, fetchurl
+, qt5
+}:
 
 stdenv.mkDerivation rec {
-  version = "3.12.2";
+  version = "3.17.0";
   pname = "dxflib";
   src = fetchurl {
-    url = "http://www.qcad.org/archives/dxflib/${pname}-${version}.src.tar.gz";
-    sha256 = "20ad9991eec6b0f7a3cc7c500c044481a32110cdc01b65efa7b20d5ff9caefa9";
+    url = "http://www.qcad.org/archives/dxflib/${pname}-${version}-src.tar.gz";
+    sha256 = "09yjgzh8677pzkkr7a59pql5d11451c22pxksk2my30mapxsri96";
   };
+  nativeBuildInputs = [
+    qt5.qmake
+  ];
+  preConfigure = ''
+    sed -i 's/CONFIG += staticlib/CONFIG += shared/' dxflib.pro
+  '';
+  installPhase = ''
+    install -d -m 0755 $out/lib
+    cp -pr *.so* $out/lib
+    install -d -m 0755 $out/include/dxflib
+    cp -pr src/*.h $out/include/dxflib
+    # Generate pkgconfig file
+    install -d -m 0755 $out/lib/pkgconfig
+    cat << 'EOF' > $out/lib/pkgconfig/dxflib.pc
+    prefix=${placeholder "out"}
+    libdir=${placeholder "out"}/lib
+    includedir=${placeholder "out"}/include
+    Name: dxflib
+    Description: A C++ library for reading and writing DXF files
+    Version: %{version}
+    Libs: -L${placeholder "out"}/lib -ldxflib
+    Cflags: -I${placeholder "out"}/include/dxflib
+    EOF
+  '';
+  doCheck = true;
 
   meta = {
     maintainers = with stdenv.lib.maintainers; [raskin];
diff --git a/pkgs/development/libraries/enchant/2.x.nix b/pkgs/development/libraries/enchant/2.x.nix
index 65d85eddbe4..5788bbe9c17 100644
--- a/pkgs/development/libraries/enchant/2.x.nix
+++ b/pkgs/development/libraries/enchant/2.x.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "enchant";
-  version = "2.2.8";
+  version = "2.2.10";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://github.com/AbiWord/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "0m9m564qqwbssvvf7y3dlz1yxzqsjiqy1yd2zsmb3l0d7y2y5df7";
+    sha256 = "1hxx5kb015a5rvjimrpcb5050xb3988dgc52fd5m5n270v238nva";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/ethash/default.nix b/pkgs/development/libraries/ethash/default.nix
index 3522ff231ab..749005e09a9 100644
--- a/pkgs/development/libraries/ethash/default.nix
+++ b/pkgs/development/libraries/ethash/default.nix
@@ -3,14 +3,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ethash";
-  version = "0.4.4";
+  version = "0.5.2";
 
   src =
     fetchFromGitHub {
       owner = "chfast";
       repo = "ethash";
       rev = "v${version}";
-      sha256 = "1gfs8s4nv2ikkn3rhzifr0dx5m0c1kpnhmzf8x6zlwhw3qwlc98w";
+      sha256 = "0shr3m33raxy9j2mpm3q9mdbchs3nhgfaywidyxgmwqaiw1xpyif";
     };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/exiv2/default.nix b/pkgs/development/libraries/exiv2/default.nix
index 8a6dfd1983e..e7c41bcedc5 100644
--- a/pkgs/development/libraries/exiv2/default.nix
+++ b/pkgs/development/libraries/exiv2/default.nix
@@ -15,22 +15,21 @@
 
 stdenv.mkDerivation rec {
   pname = "exiv2";
-  version = "0.27.2";
+  version = "0.27.3";
 
   src = fetchFromGitHub {
     owner = "exiv2";
     repo  = "exiv2";
     rev = "v${version}";
-    sha256 = "0n8il52yzbmvbkryrl8waz7hd9a2fdkw8zsrmhyh63jlvmmc31gf";
+    sha256 = "0d294yhcdw8ziybyd4rp5hzwknzik2sm0cz60ff7fljacv75bjpy";
   };
 
   patches = [
-    # included in next release
+    # Fix aarch64 build https://github.com/Exiv2/exiv2/pull/1271
     (fetchpatch {
-      name = "cve-2019-20421.patch";
-      url = "https://github.com/Exiv2/exiv2/commit/a82098f4f90cd86297131b5663c3dec6a34470e8.patch";
-      sha256 = "16r19qb9l5j43ixm5jqid9sdv5brlkk1wq0w79rm5agxq4kblfyc";
-      excludes = [ "tests/bugfixes/github/test_issue_1011.py" "test/data/Jp2Image_readMetadata_loop.poc" ];
+      name = "cmake-fix-aarch64.patch";
+      url = "https://github.com/Exiv2/exiv2/commit/bbe0b70840cf28b7dd8c0b7e9bb1b741aeda2efd.patch";
+      sha256 = "13zw1mn0ag0jrz73hqjhdsh1img7jvj5yddip2k2sb5phy04rzfx";
     })
   ];
 
@@ -40,6 +39,7 @@ stdenv.mkDerivation rec {
     # the cmake package does not handle absolute CMAKE_INSTALL_INCLUDEDIR correctly
     # (setting it to an absolute path causes include files to go to $out/$out/include,
     #  because the absolute path is interpreted with root at $out).
+    # Can probably be removed once https://github.com/Exiv2/exiv2/pull/1263 is merged.
     "-DCMAKE_INSTALL_INCLUDEDIR=include"
     "-DCMAKE_INSTALL_LIBDIR=lib"
   ];
@@ -77,7 +77,6 @@ stdenv.mkDerivation rec {
   preCheck = ''
     patchShebangs ../test/
     mkdir ../test/tmp
-    export LD_LIBRARY_PATH="$(realpath ../build/lib)"
 
     ${stdenv.lib.optionalString (stdenv.isAarch64 || stdenv.isAarch32) ''
       # Fix tests on arm
@@ -86,7 +85,6 @@ stdenv.mkDerivation rec {
     ''}
 
     ${stdenv.lib.optionalString stdenv.isDarwin ''
-      export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}`pwd`/lib
       # Removing tests depending on charset conversion
       substituteInPlace ../test/Makefile --replace "conversions.sh" ""
       rm -f ../tests/bugfixes/redmine/test_issue_460.py
@@ -94,11 +92,7 @@ stdenv.mkDerivation rec {
      ''}
   '';
 
-  postCheck = ''
-    (cd ../tests/ && python3 runner.py)
-  '';
-
-  # With cmake we have to enable samples or there won't be
+  # With CMake we have to enable samples or there won't be
   # a tests target. This removes them.
   postInstall = ''
     ( cd "$out/bin"
@@ -108,6 +102,14 @@ stdenv.mkDerivation rec {
     )
   '';
 
+  # Fix CMake export paths. Can be removed once https://github.com/Exiv2/exiv2/pull/1263 is merged.
+  postFixup = ''
+    sed -i "$dev/lib/cmake/exiv2/exiv2Config.cmake" \
+        -e "/INTERFACE_INCLUDE_DIRECTORIES/ s@\''${_IMPORT_PREFIX}@$dev@" \
+        -e "/Compute the installation prefix/ a set(_IMPORT_PREFIX \"$out\")" \
+        -e "/^get_filename_component(_IMPORT_PREFIX/ d"
+  '';
+
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/expat/default.nix b/pkgs/development/libraries/expat/default.nix
index 94aee7749ce..a356d7be1a9 100644
--- a/pkgs/development/libraries/expat/default.nix
+++ b/pkgs/development/libraries/expat/default.nix
@@ -1,5 +1,10 @@
 { stdenv, fetchurl }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   name = "expat-2.2.8";
 
diff --git a/pkgs/development/libraries/faac/default.nix b/pkgs/development/libraries/faac/default.nix
index 0f3cb9b27b9..c8ec81f79e5 100644
--- a/pkgs/development/libraries/faac/default.nix
+++ b/pkgs/development/libraries/faac/default.nix
@@ -30,7 +30,6 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Open source MPEG-4 and MPEG-2 AAC encoder";
-    homepage    = "https://www.audiocoding.com/faac.html";
     license     = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ codyopel ];
     platforms   = platforms.all;
diff --git a/pkgs/development/libraries/faad2/default.nix b/pkgs/development/libraries/faad2/default.nix
index 1a6d67ba805..6842f191abe 100644
--- a/pkgs/development/libraries/faad2/default.nix
+++ b/pkgs/development/libraries/faad2/default.nix
@@ -1,47 +1,26 @@
-{stdenv, fetchurl
+{stdenv, fetchFromGitHub, autoreconfHook
 , drmSupport ? false # Digital Radio Mondiale
 }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "faad2";
-  version = "2.8.8";
+  version = "2.9.2";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/faac/${pname}-${version}.tar.gz";
-    sha256 = "1db37ydb6mxhshbayvirm5vz6j361bjim4nkpwjyhmy4ddfinmhl";
+  src = fetchFromGitHub {
+    owner = "knik0";
+    repo = "faad2";
+    rev = builtins.replaceStrings [ "." ] [ "_" ] version;
+    sha256 = "0rdi6bmyryhkwf4mpprrsp78m6lv1nppav2f0lf1ywifm92ng59c";
   };
 
-  patches = let
-    fp = { ver ? "2.8.8-3", pname, name ? (pname + ".patch"), sha256 }: fetchurl {
-      url = "https://salsa.debian.org/multimedia-team/faad2/raw/debian/${ver}"
-          + "/debian/patches/${pname}.patch?inline=false";
-      inherit name sha256;
-    };
-  in [
-    (fp {
-      # critical bug addressed in vlc 3.0.7 (but we use system-provided faad)
-      pname = "0004-Fix-a-couple-buffer-overflows";
-      sha256 = "1mwycdfagz6wpda9j3cp7lf93crgacpa8rwr58p3x0i5cirnnmwq";
-    })
-    (fp {
-      name = "CVE-2018-20362.patch";
-      pname = "0009-syntax.c-check-for-syntax-element-inconsistencies";
-      sha256 = "1z849l5qyvhyn5pvm6r07fa50nrn8nsqnrka2nnzgkhxlhvzpa81";
-    })
-    (fp {
-      name = "CVE-2018-20194.patch";
-      pname = "0010-sbr_hfadj-sanitize-frequency-band-borders";
-      sha256 = "1b1kbz4mv0zhpq8h3djnvqafh1gn12nikk9v3jrxyryywacirah4";
-    })
-  ];
-
   configureFlags = []
     ++ optional drmSupport "--with-drm";
 
+  nativeBuildInputs = [ autoreconfHook ];
+
   meta = {
     description = "An open source MPEG-4 and MPEG-2 AAC decoder";
-    homepage    = "https://www.audiocoding.com/faad2.html";
     license     = licenses.gpl2;
     maintainers = with maintainers; [ codyopel ];
     platforms   = platforms.all;
diff --git a/pkgs/development/libraries/farstream/default.nix b/pkgs/development/libraries/farstream/default.nix
index 763caa811e3..0ce0f56d710 100644
--- a/pkgs/development/libraries/farstream/default.nix
+++ b/pkgs/development/libraries/farstream/default.nix
@@ -29,6 +29,11 @@ stdenv.mkDerivation rec {
       url = "https://gitlab.freedesktop.org/farstream/farstream/commit/73891c28fa27d5e65a71762e826f13747d743588.patch";
       sha256 = "19pw1m8xhxyf5yhl6k898w240ra2k0m28gfv858x70c4wl786lrn";
     })
+    # Fix build with newer gnumake.
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/farstream/farstream/-/commit/54987d44.diff";
+      sha256 = "02pka68p2j1wg7768rq7afa5wl9xv82wp86q7izrmwwnxdmz4zyg";
+    })
   ];
 
   buildInputs = [
diff --git a/pkgs/development/libraries/faudio/default.nix b/pkgs/development/libraries/faudio/default.nix
index 7bc0790f049..eb6ed5e2101 100644
--- a/pkgs/development/libraries/faudio/default.nix
+++ b/pkgs/development/libraries/faudio/default.nix
@@ -3,14 +3,14 @@
 #TODO: tests
 
 stdenv.mkDerivation rec {
-	pname = "faudio";
-  version = "20.06";
+  pname = "faudio";
+  version = "20.08";
 
   src = fetchFromGitHub {
     owner = "FNA-XNA";
     repo = "FAudio";
     rev = version;
-    sha256 = "1dyx9l7ldhlbb77ca3wk0l218589blvh78mdfyzpk9k1izk2yih1";
+    sha256 = "1fs0h5wl0ndix61mz7h59c15kpqikrk7nn1rc7m2a44jiw8mzdnx";
   };
 
 	nativeBuildInputs = [cmake];
diff --git a/pkgs/development/libraries/fcft/default.nix b/pkgs/development/libraries/fcft/default.nix
new file mode 100644
index 00000000000..0c5d2b334ac
--- /dev/null
+++ b/pkgs/development/libraries/fcft/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, fetchgit, pkg-config, meson, ninja, scdoc
+,freetype, fontconfig, pixman, tllist, check }:
+
+stdenv.mkDerivation rec {
+  pname = "fcft";
+  version = "2.2.6";
+
+  src = fetchgit {
+    url = "https://codeberg.org/dnkl/fcft.git";
+    rev = "${version}";
+    sha256 = "06zywvvgrch9k4d07bir2sxddwsli2gzpvlvjfcwbrj3bw5x6j1b";
+  };
+
+  nativeBuildInputs = [ pkg-config meson ninja scdoc ];
+  buildInputs = [ freetype fontconfig pixman tllist ];
+  checkInputs = [ check ];
+
+  mesonFlags = [ "--buildtype=release" ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://codeberg.org/dnkl/fcft";
+    description = "Simple library for font loading and glyph rasterization";
+    maintainers = with maintainers; [ fionera ];
+    license = licenses.mit;
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/development/libraries/fflas-ffpack/default.nix b/pkgs/development/libraries/fflas-ffpack/default.nix
index bc84039a9aa..23b31fe439f 100644
--- a/pkgs/development/libraries/fflas-ffpack/default.nix
+++ b/pkgs/development/libraries/fflas-ffpack/default.nix
@@ -31,19 +31,21 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--with-blas-libs=-lcblas"
     "--with-lapack-libs=-llapacke"
-  ] ++ stdenv.lib.optionals stdenv.isx86_64 {
+  ] ++ stdenv.lib.optionals stdenv.isx86_64 [
     # disable SIMD instructions (which are enabled *when available* by default)
     # for now we need to be careful to disable *all* relevant versions of an instruction set explicitly (https://github.com/linbox-team/fflas-ffpack/issues/284)
-    default        = [ "--disable-sse3" "--disable-ssse3" "--disable-sse41" "--disable-sse42" "--disable-avx" "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
-    westmere       = [                                                                        "--disable-avx" "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
-    sandybridge    = [                                                                                        "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
-    ivybridge      = [                                                                                        "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
-    haswell        = [                                                                                                                                                                       "--disable-fma4" ];
-    broadwell      = [                                                                                                                                                                       "--disable-fma4" ];
-    skylake        = [                                                                                                                                                                       "--disable-fma4" ];
-    skylake-avx512 = [                                                                                                                                                                       "--disable-fma4" ];
-  }.${stdenv.hostPlatform.platform.gcc.arch or "default"};
-
+    "--${if stdenv.hostPlatform.sse3Support   then "enable" else "disable"}-sse3"
+    "--${if stdenv.hostPlatform.ssse3Support  then "enable" else "disable"}-ssse3"
+    "--${if stdenv.hostPlatform.sse4_1Support then "enable" else "disable"}-sse41"
+    "--${if stdenv.hostPlatform.sse4_2Support then "enable" else "disable"}-sse42"
+    "--${if stdenv.hostPlatform.avxSupport    then "enable" else "disable"}-avx"
+    "--${if stdenv.hostPlatform.avx2Support   then "enable" else "disable"}-avx2"
+    "--${if stdenv.hostPlatform.avx512Support then "enable" else "disable"}-avx512f"
+    "--${if stdenv.hostPlatform.avx512Support then "enable" else "disable"}-avx512dq"
+    "--${if stdenv.hostPlatform.avx512Support then "enable" else "disable"}-avx512vl"
+    "--${if stdenv.hostPlatform.fmaSupport    then "enable" else "disable"}-fma"
+    "--${if stdenv.hostPlatform.fma4Support   then "enable" else "disable"}-fma4"
+  ];
   doCheck = true;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/ffmpeg/2.8.nix b/pkgs/development/libraries/ffmpeg/2.8.nix
index 5d1f93a9e04..309cd2b3b35 100644
--- a/pkgs/development/libraries/ffmpeg/2.8.nix
+++ b/pkgs/development/libraries/ffmpeg/2.8.nix
@@ -1,7 +1,7 @@
 { callPackage, ... } @ args:
 
 callPackage ./generic.nix (rec {
-  version = "${branch}.16";
+  version = "${branch}.17";
   branch = "2.8";
-  sha256 = "0lfmfd6rhywis9rblkxv33rpwfga9xv261fq4cn3pkx1izih7ybk";
+  sha256 = "05bnhvs2f82aq95z1wd3wr42sljdfq4kiyzqwhpji983mndx14vl";
 } // args)
diff --git a/pkgs/development/libraries/ffmpeg/3.4.nix b/pkgs/development/libraries/ffmpeg/3.4.nix
index 6c16b55dfe8..629fdba5673 100644
--- a/pkgs/development/libraries/ffmpeg/3.4.nix
+++ b/pkgs/development/libraries/ffmpeg/3.4.nix
@@ -6,7 +6,7 @@
 
 callPackage ./generic.nix (rec {
   version = branch;
-  branch = "3.4.7";
-  sha256 = "0hj91gjps92f4w3yyqss89yrs6s75574hbj5gz9g5affd6294yhc";
+  branch = "3.4.8";
+  sha256 = "1d0r4yja2dkkyhdwx1migq46gsrcbajiv66263a5sq5bfr9dqkch";
   darwinFrameworks = [ Cocoa CoreMedia ];
 } // args)
diff --git a/pkgs/development/libraries/ffmpeg/4.nix b/pkgs/development/libraries/ffmpeg/4.nix
index de1bfff6f91..7e3941d3f37 100644
--- a/pkgs/development/libraries/ffmpeg/4.nix
+++ b/pkgs/development/libraries/ffmpeg/4.nix
@@ -5,8 +5,8 @@
 }@args:
 
 callPackage ./generic.nix (rec {
-  version = "4.3";
+  version = "4.3.1";
   branch = "4.3";
-  sha256 = "1qnnhd2b0g5sg72pclxs3i8sxzz0raky69k7w9cmpba9zh973s57";
+  sha256 = "1nghcpm2r9ir2h6xpqfn9381jq6aiwlkwlnyplxywvkbjiisr97l";
   darwinFrameworks = [ Cocoa CoreMedia VideoToolbox ];
 } // args)
diff --git a/pkgs/development/libraries/ffmpeg/generic.nix b/pkgs/development/libraries/ffmpeg/generic.nix
index 5b98884c1fc..d763fb51354 100644
--- a/pkgs/development/libraries/ffmpeg/generic.nix
+++ b/pkgs/development/libraries/ffmpeg/generic.nix
@@ -126,6 +126,7 @@ stdenv.mkDerivation rec {
     # Docs
       (ifMinVer "0.6" "--disable-doc")
     # External Libraries
+      "--enable-libass"
       "--enable-bzlib"
       "--enable-gnutls"
       (ifMinVer "1.0" "--enable-fontconfig")
diff --git a/pkgs/development/libraries/flatbuffers/default.nix b/pkgs/development/libraries/flatbuffers/default.nix
index 825e052ad87..0b0e0fd9e22 100644
--- a/pkgs/development/libraries/flatbuffers/default.nix
+++ b/pkgs/development/libraries/flatbuffers/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, fetchpatch, cmake }:
 
-stdenv.mkDerivation (rec {
+stdenv.mkDerivation rec {
   pname = "flatbuffers";
-  version = "1.11.0";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "flatbuffers";
     rev = "v${version}";
-    sha256 = "1gl8pnykzifh7pnnvl80f5prmj5ga60dp44inpv9az2k9zaqx3qr";
+    sha256 = "0f7xd66vc1lzjbn7jzd5kyqrgxpsfxi4zc7iymhb5xrwyxipjl1g";
   };
 
   preConfigure = stdenv.lib.optional stdenv.buildPlatform.isDarwin ''
@@ -36,12 +36,4 @@ stdenv.mkDerivation (rec {
     platforms = stdenv.lib.platforms.unix;
     homepage = "https://google.github.io/flatbuffers/";
   };
-} // stdenv.lib.optionalAttrs stdenv.hostPlatform.isMusl {
-  # Remove when updating to the next version.
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/google/flatbuffers/commit/2b52494047fb6e97af03e1801b42adc7ed3fd78a.diff";
-      sha256 = "01k07ws0f4w7nnl8nli795wgjm4p94lxd3kva4yf7nf3pg4p8arx";
-    })
-  ];
-})
+}
diff --git a/pkgs/development/libraries/flatpak/default.nix b/pkgs/development/libraries/flatpak/default.nix
index ceca7e24fb6..40cea4f730e 100644
--- a/pkgs/development/libraries/flatpak/default.nix
+++ b/pkgs/development/libraries/flatpak/default.nix
@@ -1,21 +1,23 @@
 { stdenv
 , fetchurl
-, autoreconfHook
+, fetchpatch
+, autoconf
+, automake
+, libtool
 , docbook_xml_dtd_412
 , docbook_xml_dtd_42
 , docbook_xml_dtd_43
-, docbook_xsl
+, docbook-xsl-nons
 , which
 , libxml2
 , gobject-introspection
 , gtk-doc
 , intltool
 , libxslt
-, pkgconfig
+, pkg-config
 , xmlto
 , appstream-glib
 , substituteAll
-, glibcLocales
 , yacc
 , xdg-dbus-proxy
 , p11-kit
@@ -39,6 +41,7 @@
 , nixosTests
 , libsoup
 , lzma
+, zstd
 , ostree
 , polkit
 , python3
@@ -54,14 +57,14 @@
 
 stdenv.mkDerivation rec {
   pname = "flatpak";
-  version = "1.6.3";
+  version = "1.8.1";
 
   # TODO: split out lib once we figure out what to do with triggerdir
-  outputs = [ "out" "dev" "man" "doc" "installedTests" ];
+  outputs = [ "out" "dev" "man" "doc" "devdoc" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/flatpak/flatpak/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "17s8nqdxd4xdy7ag9bw06adxccha78jmlsa3zpqnl3qh92pg0hji";
+    sha256 = "ZpFLZvmmQHk4bMCXpAoZ+oQZVo33+0VvLkB/D3asnq0=";
   };
 
   patches = [
@@ -69,7 +72,7 @@ stdenv.mkDerivation rec {
     # https://github.com/flatpak/flatpak/issues/1460
     (substituteAll {
       src = ./fix-test-paths.patch;
-      inherit coreutils gettext glibcLocales socat gtk3;
+      inherit coreutils gettext socat gtk3;
       smi = shared-mime-info;
       dfu = desktop-file-utils;
       hicolorIconTheme = hicolor-icon-theme;
@@ -101,21 +104,31 @@ stdenv.mkDerivation rec {
 
     # But we want the GDK_PIXBUF_MODULE_FILE from the wrapper affect the icon validator.
     ./validate-icon-pixbuf.patch
+
+    # Fix `flatpak/test-oci-registry@{user,system}.wrap.test` installed tests.
+    # https://github.com/flatpak/flatpak/pull/3762
+    (fetchpatch {
+      url = "https://github.com/flatpak/flatpak/commit/c1447dadecd50f384b6d11dac18b014245267d00.patch";
+      sha256 = "UAA/wGr8/aMbx5MV+8Ilro2kgKkx2QOn88lDUjCgeDA=";
+    })
   ];
 
   nativeBuildInputs = [
-    autoreconfHook
+    autoconf
+    automake
+    libtool
     libxml2
+    # TODO: replace with docbook_xml_dtd_45 https://github.com/flatpak/flatpak/pull/3760
     docbook_xml_dtd_412
     docbook_xml_dtd_42
     docbook_xml_dtd_43
-    docbook_xsl
+    docbook-xsl-nons
     which
     gobject-introspection
     gtk-doc
     intltool
     libxslt
-    pkgconfig
+    pkg-config
     xmlto
     appstream-glib
     yacc
@@ -134,6 +147,7 @@ stdenv.mkDerivation rec {
     libseccomp
     libsoup
     lzma
+    # zstd # TODO: broken paths in .pc file
     polkit
     python3
     systemd
@@ -166,6 +180,7 @@ stdenv.mkDerivation rec {
     "--with-system-dbus-proxy=${xdg-dbus-proxy}/bin/xdg-dbus-proxy"
     "--with-dbus-config-dir=${placeholder "out"}/share/dbus-1/system.d"
     "--localstatedir=/var"
+    "--enable-gtk-doc"
     "--enable-installed-tests"
   ];
 
@@ -174,9 +189,24 @@ stdenv.mkDerivation rec {
     "installed_test_metadir=${placeholder "installedTests"}/share/installed-tests/flatpak"
   ];
 
-  postPatch = ''
+  postPatch = let
+    vsc-py = python3.withPackages (pp: [
+      pp.pyparsing
+    ]);
+  in ''
     patchShebangs buildutil
     patchShebangs tests
+    PATH=${stdenv.lib.makeBinPath [vsc-py]}:$PATH patchShebangs --build variant-schema-compiler/variant-schema-compiler
+  '';
+
+  preConfigure = ''
+    # TODO: remove the condition once autogen.sh is shipped in the tarball
+    # https://github.com/flatpak/flatpak/pull/3761
+    if [[ -f autogen.sh ]]; then
+        NOCONFIGURE=1 ./autogen.sh
+    else
+        autoreconf --install --force --verbose
+    fi
   '';
 
   passthru = {
diff --git a/pkgs/development/libraries/flatpak/fix-test-paths.patch b/pkgs/development/libraries/flatpak/fix-test-paths.patch
index 8ea2f0159a3..dcba6668185 100644
--- a/pkgs/development/libraries/flatpak/fix-test-paths.patch
+++ b/pkgs/development/libraries/flatpak/fix-test-paths.patch
@@ -1,5 +1,5 @@
 diff --git a/app/flatpak-builtins-build-export.c b/app/flatpak-builtins-build-export.c
-index 5de89d62..bf6bdb52 100644
+index 43fd0563..4067bd36 100644
 --- a/app/flatpak-builtins-build-export.c
 +++ b/app/flatpak-builtins-build-export.c
 @@ -458,7 +458,7 @@ validate_desktop_file (GFile      *desktop_file,
@@ -12,10 +12,10 @@ index 5de89d62..bf6bdb52 100644
      {
        if (!g_error_matches (local_error, G_SPAWN_ERROR, G_SPAWN_ERROR_NOENT))
 diff --git a/tests/libtest.sh b/tests/libtest.sh
-index e64be49f..a9a53e12 100644
+index acb2095b..b361da16 100644
 --- a/tests/libtest.sh
 +++ b/tests/libtest.sh
-@@ -367,7 +367,7 @@ if [ -z "${FLATPAK_BWRAP:-}" ]; then
+@@ -431,7 +431,7 @@ if [ -z "${FLATPAK_BWRAP:-}" ]; then
      # running installed-tests: assume we know what we're doing
      _flatpak_bwrap_works=true
  elif ! "$FLATPAK_BWRAP" --unshare-ipc --unshare-net --unshare-pid \
@@ -24,7 +24,7 @@ index e64be49f..a9a53e12 100644
      _flatpak_bwrap_works=false
  else
      _flatpak_bwrap_works=true
-@@ -440,7 +440,7 @@ dbus-daemon --fork --config-file=session.conf --print-address=3 --print-pid=4 \
+@@ -504,7 +504,7 @@ dbus-daemon --fork --config-file=session.conf --print-address=3 --print-pid=4 \
  export DBUS_SESSION_BUS_ADDRESS="$(cat dbus-session-bus-address)"
  DBUS_SESSION_BUS_PID="$(cat dbus-session-bus-pid)"
  
@@ -33,7 +33,7 @@ index e64be49f..a9a53e12 100644
      assert_not_reached "Failed to start dbus-daemon"
  fi
  
-@@ -449,7 +449,7 @@ gdb_bt () {
+@@ -519,7 +519,7 @@ commit_to_path () {
  }
  
  cleanup () {
@@ -43,10 +43,10 @@ index e64be49f..a9a53e12 100644
      fusermount -u $XDG_RUNTIME_DIR/doc || :
      kill $(jobs -p) &> /dev/null || true
 diff --git a/tests/make-test-app.sh b/tests/make-test-app.sh
-index e51e21a6..7d39efb5 100755
+index 612f914f..4b890da2 100755
 --- a/tests/make-test-app.sh
 +++ b/tests/make-test-app.sh
-@@ -149,13 +149,13 @@ msgid "Hello world"
+@@ -151,13 +151,13 @@ msgid "Hello world"
  msgstr "Hallo Welt"
  EOF
  mkdir -p ${DIR}/files/de/share/de/LC_MESSAGES
@@ -63,10 +63,10 @@ index e51e21a6..7d39efb5 100755
  flatpak build-finish ${DIR}
  mkdir -p repos
 diff --git a/tests/make-test-runtime.sh b/tests/make-test-runtime.sh
-index 5d2c309b..cf61a3cf 100755
+index af289625..7db51c17 100755
 --- a/tests/make-test-runtime.sh
 +++ b/tests/make-test-runtime.sh
-@@ -25,9 +25,10 @@ EOF
+@@ -28,9 +28,10 @@ EOF
  
  # On Debian derivatives, /usr/sbin and /sbin aren't in ordinary users'
  # PATHs, but ldconfig is kept in /sbin
@@ -78,7 +78,7 @@ index 5d2c309b..cf61a3cf 100755
  mkdir -p ${DIR}/usr/bin
  mkdir -p ${DIR}/usr/lib
  ln -s ../lib ${DIR}/usr/lib64
-@@ -37,48 +38,24 @@ if test -f /sbin/ldconfig.real; then
+@@ -40,40 +41,17 @@ if test -f /sbin/ldconfig.real; then
  else
      cp `which ldconfig` ${DIR}/usr/bin
  fi
@@ -129,11 +129,18 @@ index 5d2c309b..cf61a3cf 100755
  done
  ln -s bash ${DIR}/usr/bin/sh
  
+@@ -84,11 +62,13 @@ echo "Hello world, from a runtime$EXTRA"
+ EOF
+ chmod a+x ${DIR}/usr/bin/runtime_hello.sh
+ 
 -# We copy the C.UTF8 locale and call it en_US. Its a bit of a lie, but
 -# the real en_US locale is often not available, because its in the
 -# local archive.
 -mkdir -p ${DIR}/usr/lib/locale/
 -cp -r /usr/lib/locale/C.* ${DIR}/usr/lib/locale/en_US
++# We do not copy C.UTF8 locale because it is in locale archive and
++# that is already copied with glibc.
++
 +mv ${DIR}/nix/store ${DIR}/usr/store # files outside /usr are not permitted, we will have to replace /nix/store with /usr/store
 +chmod -R u+w ${DIR} # nix store has read-only directories which would cause problems during clean-up, files need to be writable for sed
 +find ${DIR} -type f -print0 | xargs -0 sed -i 's~/nix/store/~/usr/store/~g' # replace hardcoded paths
@@ -142,10 +149,10 @@ index 5d2c309b..cf61a3cf 100755
  if [ x$COLLECTION_ID != x ]; then
      collection_args=--collection-id=${COLLECTION_ID}
 diff --git a/tests/testlibrary.c b/tests/testlibrary.c
-index 44ae28e3..76bf619f 100644
+index 509ce6cc..6a333c9c 100644
 --- a/tests/testlibrary.c
 +++ b/tests/testlibrary.c
-@@ -1343,7 +1343,7 @@ check_bwrap_support (void)
+@@ -1399,7 +1399,7 @@ check_bwrap_support (void)
      {
        gint exit_code = 0;
        char *argv[] = { (char *) bwrap, "--unshare-ipc", "--unshare-net",
diff --git a/pkgs/development/libraries/fontconfig/2.10.nix b/pkgs/development/libraries/fontconfig/2.10.nix
deleted file mode 100644
index f4cc2989245..00000000000
--- a/pkgs/development/libraries/fontconfig/2.10.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, freetype, expat
-}:
-
-stdenv.mkDerivation rec {
-  name = "fontconfig-2.10.2";
-
-  src = fetchurl {
-    url = "http://fontconfig.org/release/${name}.tar.bz2";
-    sha256 = "0llraqw86jmw4vzv7inskp3xxm2gc64my08iwq5mzncgfdbfza4f";
-  };
-
-  outputs = [ "bin" "dev" "lib" "out" ]; # $out contains all the config
-
-  propagatedBuildInputs = [ freetype ];
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ expat ];
-
-  configureFlags = [
-    "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}"
-    "--sysconfdir=/etc"
-    "--with-cache-dir=/var/cache/fontconfig"
-    "--disable-docs"
-    "--with-default-fonts="
-  ] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-    "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}"
-  ];
-
-  enableParallelBuilding = true;
-
-  doCheck = true;
-
-  # Don't try to write to /var/cache/fontconfig at install time.
-  installFlags = [ "sysconfdir=$(out)/etc" "fc_cachedir=$(TMPDIR)/dummy" "RUN_FC_CACHE_TEST=false" ];
-
-  passthru = {
-    # Empty for backward compatibility, there was no versioning before 2.11
-    configVersion = "";
-  };
-
-  meta = with stdenv.lib; {
-    description = "A library for font customization and configuration";
-    homepage = "http://fontconfig.org/";
-    license = licenses.bsd2; # custom but very bsd-like
-    platforms = platforms.all;
-    maintainers = [ maintainers.vcunat ];
-  };
-}
diff --git a/pkgs/development/libraries/fontconfig/config-compat.patch b/pkgs/development/libraries/fontconfig/config-compat.patch
deleted file mode 100644
index e86f08fb553..00000000000
--- a/pkgs/development/libraries/fontconfig/config-compat.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-commit 05c6adf8104b4321d3a3716a7b9feb6bf223ed0c (HEAD, nixpkgs)
-Author: Vladimír Čunát <vcunat@gmail.com>
-Date:   Tue Nov 4 12:24:25 2014 +0100
-
-    add check for /etc/fonts/@configVersion@/fonts.conf
-    
-    It's checked between FONTCONFIG_FILE and the usual /etc/fonts/fonts.conf.
-    Also, hardcode /etc/fonts/fonts.conf to prevent accidental override.
-
-diff --git a/src/fccfg.c b/src/fccfg.c
-index 6377fd7..e9eb10a 100644
---- a/src/fccfg.c
-+++ b/src/fccfg.c
-@@ -2070,8 +2070,13 @@ FcConfigFilename (const FcChar8 *url)
-     if (!url || !*url)
-     {
- 	url = (FcChar8 *) getenv ("FONTCONFIG_FILE");
-+	if (!url) {
-+	    static const FcChar8 *cfPath = "/etc/fonts/@configVersion@/fonts.conf";
-+	    if (access (cfPath, R_OK) == 0)
-+		url = cfPath;
-+	}
- 	if (!url)
--	    url = (FcChar8 *) FONTCONFIG_FILE;
-+	    url = (FcChar8 *) "/etc/fonts/fonts.conf";
-     }
-     file = 0;
- 
diff --git a/pkgs/development/libraries/fontconfig/default.nix b/pkgs/development/libraries/fontconfig/default.nix
index 0518cb257ab..72df121200e 100644
--- a/pkgs/development/libraries/fontconfig/default.nix
+++ b/pkgs/development/libraries/fontconfig/default.nix
@@ -1,47 +1,86 @@
-{ stdenv, substituteAll, fetchurl
-, pkgconfig, freetype, expat, libxslt, gperf, dejavu_fonts
+{ stdenv
+, fetchpatch
+, substituteAll
+, fetchurl
+, pkg-config
+, freetype
+, expat
+, libxslt
+, gperf
+, dejavu_fonts
+, autoreconfHook
 }:
 
-/** Font configuration scheme
- - ./config-compat.patch makes fontconfig try the following root configs, in order:
-    $FONTCONFIG_FILE, /etc/fonts/${configVersion}/fonts.conf, /etc/fonts/fonts.conf
-    This is done not to override config of pre-2.11 versions (which just blow up)
-    and still use *global* font configuration at both NixOS or non-NixOS.
- - NixOS creates /etc/fonts/${configVersion}/fonts.conf link to $out/etc/fonts/fonts.conf,
-    and other modifications should go to /etc/fonts/${configVersion}/conf.d
- - See ./make-fonts-conf.xsl for config details.
-
-*/
-
-let
-  configVersion = "2.11"; # bump whenever fontconfig breaks compatibility with older configurations
-in
 stdenv.mkDerivation rec {
   pname = "fontconfig";
-  version = "2.12.6";
+  version = "2.13.92";
 
   src = fetchurl {
-    url = "http://fontconfig.org/release/${pname}-${version}.tar.bz2";
-    sha256 = "05zh65zni11kgnhg726gjbrd55swspdvhqbcnj5a5xh8gn03036g";
+    url = "http://fontconfig.org/release/${pname}-${version}.tar.xz";
+    sha256 = "0kkfsvxcvcphm9zcgsh646gix3qn4spz555wa1jp5hbq70l62vjh";
   };
 
   patches = [
-    (substituteAll {
-      src = ./config-compat.patch;
-      inherit configVersion;
+    # Fix fonts not being loaded when missing included configs that have ignore_missing="yes".
+    # https://bugzilla.redhat.com/show_bug.cgi?id=1744377
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/fcada522913e5e07efa6367eff87ace9f06d24c8.patch";
+      sha256 = "1jbm3vw45b3qjnqrh2545v1k8vmb29c09v2wj07jnrq3lnchbvmn";
     })
 
+    # Register JoyPixels as an emoji font.
     # https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/67
-    ./fix-joypixels.patch
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/65087ac7ce4cc5f2109967c1380b474955dcb590.patch";
+      sha256 = "1dkrbqx1c1d8yfnx0igvv516wanw2ksrpm3fbpm2h9nw0hccwqvm";
+    })
+
+    # Fix invalid DTD in reset-dirs.
+    # https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/78
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/a4aa66a858f1ecd375c5efe5916398281f73f794.patch";
+      sha256 = "1j4ky8jhpllfm1lh2if34xglh2hl79nsa0xxgzxpj9sx6h4v99j5";
+    })
+
+    # Do not include its tags, they are external now and only cause warnings with old fontconfig clients.
+    # https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/97
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/528b17b2837c3b102acd90cc7548d07bacaccb1f.patch";
+      sha256 = "1zf4wcd2xlprh805jalfy8ja5c2qzgkh4fwd1m9d638nl9gx932m";
+    })
+    # https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/100
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/37c7c748740bf6f2468d59e67951902710240b34.patch";
+      sha256 = "1rz5zrfwhpn9g49wrzzrmdglj78pbvpnw8ksgsw6bxq8l5d84jfr";
+    })
+
+    # Show warning instead of error when encountering unknown attribute in config.
+    # https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/111
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/409b37c62780728755c908991c912a6b16f2389c.patch";
+      sha256 = "zJFh37QErSAINPGFkFVJyhYRP27BuIN7PIgoDl/PIwI=";
+    })
   ];
 
   outputs = [ "bin" "dev" "lib" "out" ]; # $out contains all the config
 
-  propagatedBuildInputs = [ freetype ];
-  nativeBuildInputs = [ pkgconfig gperf libxslt ];
-  buildInputs = [ expat ];
+  nativeBuildInputs = [
+    gperf
+    libxslt
+    pkg-config
+    autoreconfHook
+  ];
+
+  buildInputs = [
+    expat
+  ];
+
+  propagatedBuildInputs = [
+    freetype
+  ];
 
   configureFlags = [
+    "--sysconfdir=/etc"
     "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}"
     "--with-cache-dir=/var/cache/fontconfig" # otherwise the fallback is in $out/
     "--disable-docs"
@@ -55,23 +94,22 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  # Don't try to write to /var/cache/fontconfig at install time.
-  installFlags = [ "fc_cachedir=$(TMPDIR)/dummy" "RUN_FC_CACHE_TEST=false" ];
+  installFlags = [
+    # Don't try to write to /var/cache/fontconfig at install time.
+    "fc_cachedir=$(TMPDIR)/dummy"
+    "RUN_FC_CACHE_TEST=false"
+    "sysconfdir=${placeholder "out"}/etc"
+  ];
 
   postInstall = ''
     cd "$out/etc/fonts"
     xsltproc --stringparam fontDirectories "${dejavu_fonts.minimal}" \
-      --stringparam fontconfigConfigVersion "${configVersion}" \
       --path $out/share/xml/fontconfig \
       ${./make-fonts-conf.xsl} $out/etc/fonts/fonts.conf \
       > fonts.conf.tmp
     mv fonts.conf.tmp $out/etc/fonts/fonts.conf
   '';
 
-  passthru = {
-    inherit configVersion;
-  };
-
   meta = with stdenv.lib; {
     description = "A library for font customization and configuration";
     homepage = "http://fontconfig.org/";
diff --git a/pkgs/development/libraries/fontconfig/fix-joypixels.patch b/pkgs/development/libraries/fontconfig/fix-joypixels.patch
deleted file mode 100644
index d5654063fe8..00000000000
--- a/pkgs/development/libraries/fontconfig/fix-joypixels.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- a/conf.d/45-generic.conf
-+++ b/conf.d/45-generic.conf
-@@ -5,6 +5,10 @@
- 
- <!-- Emoji -->
- 
-+	<alias binding="same">
-+		<family>JoyPixels</family>
-+		<default><family>emoji</family></default>
-+	</alias>
- 	<alias binding="same">
- 		<family>Emoji Two</family>
- 		<default><family>emoji</family></default>
---- a/conf.d/60-generic.conf
-+++ b/conf.d/60-generic.conf
-@@ -29,6 +29,7 @@
- 	<alias binding="same">
- 		<family>emoji</family>
- 		<prefer>
-+			<family>JoyPixels</family>
- 			<family>Emoji Two</family>
- 			<family>Emoji One</family>
- 			<!-- System fonts -->
diff --git a/pkgs/development/libraries/fontconfig/make-fonts-cache.nix b/pkgs/development/libraries/fontconfig/make-fonts-cache.nix
index f1a2e865bb7..47884b9c3b9 100644
--- a/pkgs/development/libraries/fontconfig/make-fonts-cache.nix
+++ b/pkgs/development/libraries/fontconfig/make-fonts-cache.nix
@@ -16,7 +16,7 @@ runCommand "fc-cache"
 
     cat > fonts.conf << EOF
     <?xml version='1.0'?>
-    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
+    <!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
     <fontconfig>
       <include>${fontconfig.out}/etc/fonts/fonts.conf</include>
       <cachedir>$out</cachedir>
diff --git a/pkgs/development/libraries/fontconfig/make-fonts-conf.nix b/pkgs/development/libraries/fontconfig/make-fonts-conf.nix
index b18d72e0a22..493f662d0ce 100644
--- a/pkgs/development/libraries/fontconfig/make-fonts-conf.nix
+++ b/pkgs/development/libraries/fontconfig/make-fonts-conf.nix
@@ -9,8 +9,6 @@ runCommand "fonts.conf"
   }
   ''
     xsltproc --stringparam fontDirectories "$fontDirectories" \
-      --stringparam fontconfig "${fontconfig.out}" \
-      --stringparam fontconfigConfigVersion "${fontconfig.configVersion}" \
       --path ${fontconfig.out}/share/xml/fontconfig \
       ${./make-fonts-conf.xsl} ${fontconfig.out}/etc/fonts/fonts.conf \
       > $out
diff --git a/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl b/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl
index dddbbe9e516..ed51b62a1d0 100644
--- a/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl
+++ b/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl
@@ -12,11 +12,9 @@
                 extension-element-prefixes="str"
                 >
 
-  <xsl:output method='xml' encoding="UTF-8" doctype-system="fonts.dtd" />
+  <xsl:output method='xml' encoding="UTF-8" doctype-system="urn:fontconfig:fonts.dtd" />
 
   <xsl:param name="fontDirectories" />
-  <xsl:param name="fontconfig" />
-  <xsl:param name="fontconfigConfigVersion" />
 
   <xsl:template match="/fontconfig">
 
@@ -28,8 +26,8 @@
       <!-- /var/cache/fontconfig is useful for non-nixos systems -->
       <cachedir>/var/cache/fontconfig</cachedir>
 
-      <!-- versioned system-wide config -->
-      <include ignore_missing="yes">/etc/fonts/<xsl:value-of select="$fontconfigConfigVersion" />/conf.d</include>
+      <!-- system-wide config -->
+      <include ignore_missing="yes">/etc/fonts/conf.d</include>
 
       <dir prefix="xdg">fonts</dir>
       <xsl:for-each select="str:tokenize($fontDirectories)">
@@ -40,6 +38,11 @@
       <!-- nix user profile -->
       <dir>~/.nix-profile/lib/X11/fonts</dir>
       <dir>~/.nix-profile/share/fonts</dir>
+
+      <!-- FHS paths for non-NixOS platforms -->
+      <dir>/usr/share/fonts</dir>
+      <dir>/usr/local/share/fonts</dir>
+
       <!-- nix default profile -->
       <dir>/nix/var/nix/profiles/default/lib/X11/fonts</dir>
       <dir>/nix/var/nix/profiles/default/share/fonts</dir>
diff --git a/pkgs/development/libraries/g2o/default.nix b/pkgs/development/libraries/g2o/default.nix
index 7167112b6bd..675d994cf0e 100644
--- a/pkgs/development/libraries/g2o/default.nix
+++ b/pkgs/development/libraries/g2o/default.nix
@@ -27,16 +27,13 @@ mkDerivation rec {
     # Detection script is broken
     "-DQGLVIEWER_INCLUDE_DIR=${libqglviewer}/include/QGLViewer"
     "-DG2O_BUILD_EXAMPLES=OFF"
-  ] ++ lib.optionals stdenv.isx86_64 ([ "-DDO_SSE_AUTODETECT=OFF" ] ++ {
-    default        = [ "-DDISABLE_SSE3=ON" "-DDISABLE_SSE4_1=ON" "-DDISABLE_SSE4_2=ON" "-DDISABLE_SSE4_A=ON" ];
-    westmere       = [                                                                 "-DDISABLE_SSE4_A=ON" ];
-    sandybridge    = [                                                                 "-DDISABLE_SSE4_A=ON" ];
-    ivybridge      = [                                                                 "-DDISABLE_SSE4_A=ON" ];
-    haswell        = [                                                                 "-DDISABLE_SSE4_A=ON" ];
-    broadwell      = [                                                                 "-DDISABLE_SSE4_A=ON" ];
-    skylake        = [                                                                 "-DDISABLE_SSE4_A=ON" ];
-    skylake-avx512 = [                                                                 "-DDISABLE_SSE4_A=ON" ];
-  }.${stdenv.hostPlatform.platform.gcc.arch or "default"});
+  ] ++ lib.optionals stdenv.isx86_64 [
+    "-DDO_SSE_AUTODETECT=OFF"
+    "-DDISABLE_SSE3=${  if stdenv.hostPlatform.sse3Support   then "OFF" else "ON"}"
+    "-DDISABLE_SSE4_1=${if stdenv.hostPlatform.sse4_1Support then "OFF" else "ON"}"
+    "-DDISABLE_SSE4_2=${if stdenv.hostPlatform.sse4_2Support then "OFF" else "ON"}"
+    "-DDISABLE_SSE4_A=${if stdenv.hostPlatform.sse4_aSupport then "OFF" else "ON"}"
+  ];
 
   meta = with lib; {
     description = "A General Framework for Graph Optimization";
diff --git a/pkgs/development/libraries/gcc/libstdc++/5.nix b/pkgs/development/libraries/gcc/libstdc++/5.nix
index 2a11d835a6b..486a24defd1 100644
--- a/pkgs/development/libraries/gcc/libstdc++/5.nix
+++ b/pkgs/development/libraries/gcc/libstdc++/5.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
 
     # Figure out what extra flags to pass to the gcc compilers
     # being generated to make sure that they use our glibc.
-    EXTRA_FLAGS="-I$NIX_FIXINC_DUMMY $(cat $NIX_CC/nix-support/libc-cflags) -O2"
+    EXTRA_FLAGS="-I$NIX_FIXINC_DUMMY $(cat $NIX_CC/nix-support/libc-crt1-cflags) $(cat $NIX_CC/nix-support/libc-cflags) -O2"
 
     extraLDFlags="-L$glibc_libdir -rpath $glibc_libdir $(cat $NIX_BINTOOLS/nix-support/libc-ldflags) $(cat $NIX_BINTOOLS/nix-support/libc-ldflags-before)"
     for i in $extraLDFlags; do
diff --git a/pkgs/development/libraries/gd/default.nix b/pkgs/development/libraries/gd/default.nix
index 4a0d918cabe..3b4533890a7 100644
--- a/pkgs/development/libraries/gd/default.nix
+++ b/pkgs/development/libraries/gd/default.nix
@@ -1,5 +1,7 @@
-{ stdenv, fetchurl
-, pkgconfig
+{ stdenv, fetchurl, fetchpatch
+, autoconf
+, automake
+, pkg-config
 , zlib
 , libpng
 , libjpeg ? null
@@ -20,11 +22,24 @@ stdenv.mkDerivation rec {
   };
 
   hardeningDisable = [ "format" ];
+  patches = [
+    # Fixes an issue where some other packages would fail to build
+    # their documentation with an error like:
+    # "Error: Problem doing text layout"
+    #
+    # Can be removed if Wayland can still be built successfully with
+    # documentation.
+    (fetchpatch {
+      url = "https://github.com/libgd/libgd/commit/3dd0e308cbd2c24fde2fc9e9b707181252a2de95.patch";
+      excludes = [ "tests/gdimagestringft/.gitignore" ];
+      sha256 = "12iqlanl9czig9d7c3rvizrigw2iacimnmimfcny392dv9iazhl1";
+    })
+  ];
 
   # -pthread gets passed to clang, causing warnings
   configureFlags = stdenv.lib.optional stdenv.isDarwin "--enable-werror=no";
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ autoconf automake pkg-config ];
 
   buildInputs = [ zlib fontconfig freetype ];
   propagatedBuildInputs = [ libpng libjpeg libwebp libtiff libXpm ];
diff --git a/pkgs/development/libraries/gdal/default.nix b/pkgs/development/libraries/gdal/default.nix
index 7f3e796bbf1..72135f1a62d 100644
--- a/pkgs/development/libraries/gdal/default.nix
+++ b/pkgs/development/libraries/gdal/default.nix
@@ -7,13 +7,14 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "gdal";
-  version = "3.0.4";
+  # broken with poppler 20.08, however, can't fetch patches cleanly
+  version = "3.1.2.post2020-08-26";
 
   src = fetchFromGitHub {
     owner = "OSGeo";
     repo = "gdal";
-    rev = "v${version}";
-    sha256 = "00a7q9wv8s1bmdhqxvixkq2afr8aibg3pkc76gg50r8lavf6j84c";
+    rev = "9a8df672204a8b3b33c36e09a32f747e21166fe9";
+    sha256 = "1n25jma4x1l7slwxk702q77r84vxr90fyn4c3zpkr07q1b8wqql9";
   };
 
   sourceRoot = "source/gdal";
@@ -57,7 +58,7 @@ stdenv.mkDerivation rec {
     "--with-proj=${proj.dev}" # optional
     "--with-geos=${geos}/bin/geos-config" # optional
     "--with-hdf4=${hdf4.dev}" # optional
-    "--with-xml2=${libxml2.dev}/bin/xml2-config" # optional
+    "--with-xml2=yes" # optional
     (if netcdfSupport then "--with-netcdf=${netcdf}" else "")
   ];
 
diff --git a/pkgs/development/libraries/gdcm/default.nix b/pkgs/development/libraries/gdcm/default.nix
index 745c96f5794..a4b5752e887 100644
--- a/pkgs/development/libraries/gdcm/default.nix
+++ b/pkgs/development/libraries/gdcm/default.nix
@@ -1,29 +1,39 @@
-{ stdenv, fetchurl, cmake, vtk_7, darwin }:
+{ stdenv, fetchurl, cmake, vtk_7, darwin
+, enablePython ? false, python ? null,  swig ? null}:
 
 stdenv.mkDerivation rec {
-  version = "3.0.6";
+  version = "3.0.7";
   pname = "gdcm";
 
   src = fetchurl {
     url = "mirror://sourceforge/gdcm/${pname}-${version}.tar.bz2";
-    sha256 = "048ycvhk143cvsf09r7vwmp4sm9ah9bh5pbbrl366m5a4sp7fr89";
+    sha256 = "1mm1190fv059k2vrilh3znm8z1ilygwld1iazdgh5s04mi1qljni";
   };
 
   dontUseCmakeBuildDir = true;
-  preConfigure = ''
-    cmakeDir=$PWD
-    mkdir ../build
-    cd ../build
-  '';
 
   cmakeFlags = [
     "-DGDCM_BUILD_APPLICATIONS=ON"
     "-DGDCM_BUILD_SHARED_LIBS=ON"
     "-DGDCM_USE_VTK=ON"
+  ]
+  ++ stdenv.lib.optional enablePython [
+    "-DGDCM_WRAP_PYTHON:BOOL=ON"
+    "-DGDCM_INSTALL_PYTHONMODULE_DIR=${placeholder "out"}/${python.sitePackages}"
   ];
 
+  preConfigure = ''
+    cmakeDir=$PWD
+    mkdir ../build
+    cd ../build
+  '';
+
   enableParallelBuilding = true;
-  buildInputs = [ cmake vtk_7 ] ++ stdenv.lib.optional stdenv.isDarwin [ darwin.apple_sdk.frameworks.ApplicationServices darwin.apple_sdk.frameworks.Cocoa ];
+  buildInputs = [ cmake vtk_7 ]
+    ++ stdenv.lib.optional stdenv.isDarwin [
+      darwin.apple_sdk.frameworks.ApplicationServices
+      darwin.apple_sdk.frameworks.Cocoa
+    ] ++ stdenv.lib.optional enablePython [ swig python ];
   propagatedBuildInputs = [ ];
 
   meta = with stdenv.lib; {
@@ -37,4 +47,3 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
   };
 }
-
diff --git a/pkgs/development/libraries/gdk-pixbuf/xlib.nix b/pkgs/development/libraries/gdk-pixbuf/xlib.nix
index 53414d92128..edc5ce52563 100644
--- a/pkgs/development/libraries/gdk-pixbuf/xlib.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/xlib.nix
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   pname = "gdk-pixbuf-xlib";
-  version = "2019-10-19-unstable";
+  version = "2020-06-11-unstable";
 
   outputs = [ "out" "dev" "devdoc" ];
 
@@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
     domain = "gitlab.gnome.org";
     owner = "Archive";
     repo = "gdk-pixbuf-xlib";
-    rev = "19482794a621d542b223219940e836257d4ae2c9";
-    sha256 = "7Qv6tyjR0/iFXYHx5jPhvLLLt0Ms2nzpyWw02oXTkZc=";
+    rev = "3116b8ae55501cf48d16970aa2b50a5530e15223";
+    sha256 = "15wisf2xld3cr7lprnic8fvwpcmww4rydwc1bn2zilyi52vzl2zd";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gdl/default.nix b/pkgs/development/libraries/gdl/default.nix
index 32cf4ac2a7b..338d0b6b91b 100644
--- a/pkgs/development/libraries/gdl/default.nix
+++ b/pkgs/development/libraries/gdl/default.nix
@@ -23,6 +23,6 @@ stdenv.mkDerivation rec {
     homepage = "https://developer.gnome.org/gdl/";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/gegl/4.0.nix b/pkgs/development/libraries/gegl/4.0.nix
index 85699a8828b..66bbd55ec45 100644
--- a/pkgs/development/libraries/gegl/4.0.nix
+++ b/pkgs/development/libraries/gegl/4.0.nix
@@ -35,14 +35,14 @@
 
 stdenv.mkDerivation rec {
   pname = "gegl";
-  version = "0.4.24";
+  version = "0.4.26";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "dev";
 
   src = fetchurl {
     url = "https://download.gimp.org/pub/gegl/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "d2VJnyc0Gw0WAy5mUxnLwSh2SD/2qUT83ySpxY4+JUo=";
+    sha256 = "097427icgpgvcx40019b3dm8m84cchz79pixzpz648drs8p1wdqg";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gensio/default.nix b/pkgs/development/libraries/gensio/default.nix
index 684bad14dda..daca5fc0bdb 100644
--- a/pkgs/development/libraries/gensio/default.nix
+++ b/pkgs/development/libraries/gensio/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gensio";
-  version = "2.0.5";
+  version = "2.1.4";
 
   src = fetchFromGitHub {
     owner = "cminyard";
     repo = "${pname}";
     rev = "v${version}";
-    sha256 = "1j6c6vmnip24pxafk29y312vif1xlryymv7aaxgqp9ca3s91nlrf";
+    sha256 = "0c44qhhrknjl7sp94q34z7nv7bvnlqs8wzm385661liy4mnfn4dc";
   };
 
   configureFlags = [
diff --git a/pkgs/development/libraries/geos/default.nix b/pkgs/development/libraries/geos/default.nix
index 4e7ce1d5ac8..60fc4067c0c 100644
--- a/pkgs/development/libraries/geos/default.nix
+++ b/pkgs/development/libraries/geos/default.nix
@@ -12,6 +12,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ python ];
 
+  # https://trac.osgeo.org/geos/ticket/993
+  configureFlags = stdenv.lib.optional stdenv.isAarch32 "--disable-inline";
+
   meta = with stdenv.lib; {
     description = "C++ port of the Java Topology Suite (JTS)";
     homepage = "https://trac.osgeo.org/geos";
diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix
index 6adc147c6ac..0dcc42dc526 100644
--- a/pkgs/development/libraries/gettext/default.nix
+++ b/pkgs/development/libraries/gettext/default.nix
@@ -1,22 +1,21 @@
-{ stdenv, lib, fetchurl, libiconv, xz, fetchpatch }:
+{ stdenv, lib, fetchurl, libiconv, xz }:
+
+# 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
+# files.
 
 stdenv.mkDerivation rec {
   pname = "gettext";
-  version = "0.20.1";
+  version = "0.21";
 
   src = fetchurl {
     url = "mirror://gnu/gettext/${pname}-${version}.tar.gz";
-    sha256 = "0p3zwkk27wm2m2ccfqm57nj7vqkmfpn7ja1nf65zmhz8qqs5chb6";
+    sha256 = "04kbg1sx0ncfrsbr85ggjslqkzzb243fcw9nyh3rrv1a22ihszf7";
   };
   patches = [
     ./absolute-paths.diff
-    ./gettext.git-2336451ed68d91ff4b5ae1acbc1eca30e47a86a9.patch
-  ]
-  ++ lib.optional stdenv.isDarwin
-      (fetchpatch {
-        url = "https://git.savannah.gnu.org/cgit/gettext.git/patch?id=ec0e6b307456ceab352669ae6bccca9702108753";
-        sha256 = "0xqs01c7xl7vmw6bqvsmrzxxjxk2a4spcdpmlwm3b4hi2wc2lxnf";
-      });
+  ];
 
   outputs = [ "out" "man" "doc" "info" ];
 
diff --git a/pkgs/development/libraries/gettext/gettext.git-2336451ed68d91ff4b5ae1acbc1eca30e47a86a9.patch b/pkgs/development/libraries/gettext/gettext.git-2336451ed68d91ff4b5ae1acbc1eca30e47a86a9.patch
deleted file mode 100644
index 4a19b11507a..00000000000
--- a/pkgs/development/libraries/gettext/gettext.git-2336451ed68d91ff4b5ae1acbc1eca30e47a86a9.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 2336451ed68d91ff4b5ae1acbc1eca30e47a86a9 Mon Sep 17 00:00:00 2001
-From: Bruno Haible <bruno@clisp.org>
-Date: Sun, 19 May 2019 13:10:06 +0200
-Subject: [PATCH] msgmerge: Fix behaviour of --for-msgfmt on PO files with no
- translations.
-
-Reported by Don Lawrence <dlawrence@iecok.com>
-in <https://lists.freedesktop.org/archives/p11-glue/2019-May/000700.html>
-via Daiki Ueno
-in <https://lists.gnu.org/archive/html/bug-gettext/2019-05/msg00124.html>.
-
-* gettext-tools/src/msgmerge.c (main): Treat force_po like true if for_msgfmt
-is true.
-* gettext-tools/tests/msgmerge-26: Add test of PO file with no translations.
----
- gettext-tools/src/msgmerge.c    |  4 ++--
- gettext-tools/tests/msgmerge-26 | 36 +++++++++++++++++++++++++++++++++---
- 2 files changed, 35 insertions(+), 5 deletions(-)
-
-diff --git a/gettext-tools/src/msgmerge.c b/gettext-tools/src/msgmerge.c
-index cd762c0..92c9b7a 100644
---- a/gettext-tools/src/msgmerge.c
-+++ b/gettext-tools/src/msgmerge.c
-@@ -520,8 +520,8 @@ There is NO WARRANTY, to the extent permitted by law.\n\
-   else
-     {
-       /* Write the merged message list out.  */
--      msgdomain_list_print (result, output_file, output_syntax, force_po,
--                            false);
-+      msgdomain_list_print (result, output_file, output_syntax,
-+                            for_msgfmt || force_po, false);
-     }
- 
-   exit (EXIT_SUCCESS);
-diff --git a/gettext-tools/tests/msgmerge-26 b/gettext-tools/tests/msgmerge-26
-index cd3862e..b86f7a0 100755
---- a/gettext-tools/tests/msgmerge-26
-+++ b/gettext-tools/tests/msgmerge-26
-@@ -73,7 +73,37 @@ msgstr "Papaya"
- EOF
- 
- : ${DIFF=diff}
--${DIFF} mm-test26.ok mm-test26.out
--result=$?
-+${DIFF} mm-test26.ok mm-test26.out || Exit 1
- 
--exit $result
-+# Test with a PO file that has no translated messages.
-+
-+cat <<\EOF > mm-test26a.in1
-+msgid ""
-+msgstr ""
-+"Content-Type: text/plain; charset=UTF-8\n"
-+
-+msgid "Hello world"
-+msgstr "Hallo Welt"
-+EOF
-+
-+cat <<\EOF > mm-test26a.in2
-+msgid ""
-+msgstr ""
-+"Content-Type: text/plain; charset=ASCII\n"
-+
-+msgid "Hello, world!"
-+msgstr ""
-+EOF
-+
-+: ${MSGMERGE=msgmerge}
-+${MSGMERGE} --for-msgfmt -o mm-test26a.tmp mm-test26a.in1 mm-test26a.in2 \
-+    || Exit 1
-+LC_ALL=C tr -d '\r' < mm-test26a.tmp > mm-test26a.out || Exit 1
-+
-+cat <<\EOF > mm-test26a.ok
-+msgid ""
-+msgstr "Content-Type: text/plain; charset=UTF-8\n"
-+EOF
-+
-+: ${DIFF=diff}
-+${DIFF} mm-test26a.ok mm-test26a.out || Exit 1
--- 
-1.9.1
-
diff --git a/pkgs/development/libraries/gfbgraph/default.nix b/pkgs/development/libraries/gfbgraph/default.nix
index 9fd26b1dfe8..4718e6ac015 100644
--- a/pkgs/development/libraries/gfbgraph/default.nix
+++ b/pkgs/development/libraries/gfbgraph/default.nix
@@ -1,22 +1,36 @@
 { stdenv, fetchurl, pkgconfig, glib, librest, gnome-online-accounts
-, gnome3, libsoup, json-glib, gobject-introspection }:
+, gnome3, libsoup, json-glib, gobject-introspection
+, gtk-doc, pkgs, docbook-xsl-nons, autoconf, automake, libtool }:
 
 stdenv.mkDerivation rec {
   pname = "gfbgraph";
-  version = "0.2.3";
+  version = "0.2.4";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs";
+    sha256 = "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0";
   };
 
-  nativeBuildInputs = [ pkgconfig gobject-introspection ];
+  nativeBuildInputs = [
+    pkgconfig gobject-introspection gtk-doc
+    docbook-xsl-nons autoconf automake libtool
+  ];
   buildInputs = [ glib gnome-online-accounts ];
   propagatedBuildInputs = [ libsoup json-glib librest ];
 
-  configureFlags = [ "--enable-introspection" ];
+  configureFlags = [ "--enable-introspection" "--enable-gtk-doc" ];
+
+  prePatch = ''
+    patchShebangs autogen.sh
+    substituteInPlace autogen.sh \
+      --replace "which" "${pkgs.which}/bin/which"
+  '';
+
+  preConfigure = ''
+    NOCONFIGURE=1 ./autogen.sh
+  '';
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/givaro/default.nix b/pkgs/development/libraries/givaro/default.nix
index fdaf518c611..78b6b088270 100644
--- a/pkgs/development/libraries/givaro/default.nix
+++ b/pkgs/development/libraries/givaro/default.nix
@@ -17,17 +17,17 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--disable-optimization"
-  ] ++ stdenv.lib.optionals stdenv.isx86_64 {
+  ] ++ stdenv.lib.optionals stdenv.isx86_64 [
     # disable SIMD instructions (which are enabled *when available* by default)
-    default        = [ "--disable-sse3" "--disable-ssse3" "--disable-sse41" "--disable-sse42" "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ];
-    westmere       = [                                                                        "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ];
-    sandybridge    = [                                                                                        "--disable-avx2" "--disable-fma" "--disable-fma4" ];
-    ivybridge      = [                                                                                        "--disable-avx2" "--disable-fma" "--disable-fma4" ];
-    haswell        = [                                                                                                                         "--disable-fma4" ];
-    broadwell      = [                                                                                                                         "--disable-fma4" ];
-    skylake        = [                                                                                                                         "--disable-fma4" ];
-    skylake-avx512 = [                                                                                                                         "--disable-fma4" ];
-  }.${stdenv.hostPlatform.platform.gcc.arch or "default"};
+    "--${if stdenv.hostPlatform.sse3Support   then "enable" else "disable"}-sse3"
+    "--${if stdenv.hostPlatform.ssse3Support  then "enable" else "disable"}-ssse3"
+    "--${if stdenv.hostPlatform.sse4_1Support then "enable" else "disable"}-sse41"
+    "--${if stdenv.hostPlatform.sse4_2Support then "enable" else "disable"}-sse42"
+    "--${if stdenv.hostPlatform.avxSupport    then "enable" else "disable"}-avx"
+    "--${if stdenv.hostPlatform.avx2Support   then "enable" else "disable"}-avx2"
+    "--${if stdenv.hostPlatform.fmaSupport    then "enable" else "disable"}-fma"
+    "--${if stdenv.hostPlatform.fma4Support   then "enable" else "disable"}-fma4"
+  ];
 
   # On darwin, tests are linked to dylib in the nix store, so we need to make
   # sure tests run after installPhase.
diff --git a/pkgs/development/libraries/gjs/default.nix b/pkgs/development/libraries/gjs/default.nix
index 357bf076459..1cad5c0deb9 100644
--- a/pkgs/development/libraries/gjs/default.nix
+++ b/pkgs/development/libraries/gjs/default.nix
@@ -29,11 +29,11 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "gjs";
-  version = "1.64.3";
+  version = "1.64.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gjs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1rl524rmdbpmp5xdkm8dx3znq47l7dgvh192x80zjf8wc1af35lx";
+    sha256 = "0k6l2qc2vkws34zrgdhl57qxf0jjkar2iziz6qn4n1w7va73mk53";
   };
 
   outputs = [ "out" "dev" "installedTests" ];
diff --git a/pkgs/development/libraries/gl2ps/default.nix b/pkgs/development/libraries/gl2ps/default.nix
index 85a9944fcf7..172531f9dc7 100644
--- a/pkgs/development/libraries/gl2ps/default.nix
+++ b/pkgs/development/libraries/gl2ps/default.nix
@@ -1,17 +1,27 @@
-{ stdenv, fetchurl, cmake
-, zlib, libGL, libGLU, libpng, freeglut }:
+{ stdenv
+, fetchurl
+, cmake
+, zlib
+, libGL
+, libGLU
+, libpng
+, freeglut
+}:
 
 stdenv.mkDerivation rec {
-  version = "1.4.2";
   pname = "gl2ps";
+  version = "1.4.2";
 
   src = fetchurl {
     url = "http://geuz.org/gl2ps/src/${pname}-${version}.tgz";
     sha256 = "1sgzv547h7hrskb9qd0x5yp45kmhvibjwj2mfswv95lg070h074d";
   };
 
-  buildInputs = [
+  nativeBuildInputs = [
     cmake
+  ];
+
+  buildInputs = [
     zlib
     libGL
     libGLU
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index 47e372cf9a3..88848deec41 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -16,9 +16,6 @@ with stdenv.lib;
 assert stdenv.isLinux -> utillinuxMinimal != null;
 
 # TODO:
-# * Add gio-module-fam
-#     Problem: cyclic dependency on gamin
-#     Possible solution: build as a standalone module, set env. vars
 # * Make it build without python
 #     Problem: an example (test?) program needs it.
 #     Possible solution: disable compilation of this example somehow
@@ -48,11 +45,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "glib";
-  version = "2.64.3";
+  version = "2.64.5";
 
   src = fetchurl {
     url = "mirror://gnome/sources/glib/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "08pbgiv5m3rica4ydvwvpq5mrxbyswx7l1jzjc2ch52xjabvr77y";
+    sha256 = "04fczq693wivkqd2qxvvi3sncqgznsvzfiiwsll1rbayf795pgcw";
   };
 
   patches = optionals stdenv.isDarwin [
diff --git a/pkgs/development/libraries/glibc/2.27-CVE-2019-19126.patch b/pkgs/development/libraries/glibc/2.27-CVE-2019-19126.patch
deleted file mode 100644
index 2c558f53b73..00000000000
--- a/pkgs/development/libraries/glibc/2.27-CVE-2019-19126.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Adapted from https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=patch;h=4d5cfeb510125345cb41431afc9022492994cffa, omitting changes to NEWS
-diff --git a/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h b/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h
-index 1943691..ac694c0 100644
---- a/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h
-+++ b/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h
-@@ -31,7 +31,8 @@
-    environment variable, LD_PREFER_MAP_32BIT_EXEC.  */
- #define EXTRA_LD_ENVVARS \
-   case 21:								  \
--    if (memcmp (envline, "PREFER_MAP_32BIT_EXEC", 21) == 0)		  \
-+    if (!__libc_enable_secure						  \
-+	&& memcmp (envline, "PREFER_MAP_32BIT_EXEC", 21) == 0)		  \
-       GLRO(dl_x86_cpu_features).feature[index_arch_Prefer_MAP_32BIT_EXEC] \
- 	|= bit_arch_Prefer_MAP_32BIT_EXEC;				  \
-     break;
--- 
-2.9.3
-
diff --git a/pkgs/development/libraries/glibc/2.31-cve-2020-10029.patch b/pkgs/development/libraries/glibc/2.31-cve-2020-10029.patch
new file mode 100644
index 00000000000..8334398e891
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.31-cve-2020-10029.patch
@@ -0,0 +1,79 @@
+diff --git a/sysdeps/ieee754/ldbl-96/Makefile b/sysdeps/ieee754/ldbl-96/Makefile
+index 995e90d6da..318628aed6 100644
+--- a/sysdeps/ieee754/ldbl-96/Makefile
++++ b/sysdeps/ieee754/ldbl-96/Makefile
+@@ -17,5 +17,6 @@
+ # <https://www.gnu.org/licenses/>.
+ 
+ ifeq ($(subdir),math)
+-tests += test-canonical-ldbl-96 test-totalorderl-ldbl-96
++tests += test-canonical-ldbl-96 test-totalorderl-ldbl-96 test-sinl-pseudo
++CFLAGS-test-sinl-pseudo.c += -fstack-protector-all
+ endif
+diff --git a/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c b/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c
+index 5f742321ae..bcdf20179f 100644
+--- a/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c
++++ b/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c
+@@ -210,6 +210,18 @@ __ieee754_rem_pio2l (long double x, long double *y)
+       return 0;
+     }
+ 
++  if ((i0 & 0x80000000) == 0)
++    {
++      /* Pseudo-zero and unnormal representations are not valid
++	 representations of long double.  We need to avoid stack
++	 corruption in __kernel_rem_pio2, which expects input in a
++	 particular normal form, but those representations do not need
++	 to be consistently handled like any particular floating-point
++	 value.  */
++      y[1] = y[0] = __builtin_nanl ("");
++      return 0;
++    }
++
+   /* Split the 64 bits of the mantissa into three 24-bit integers
+      stored in a double array.  */
+   exp = j0 - 23;
+--- /dev/null
++++ b/sysdeps/ieee754/ldbl-96/test-sinl-pseudo.c
+@@ -0,0 +1,41 @@
++/* Test sinl for pseudo-zeros and unnormals for ldbl-96 (bug 25487).
++   Copyright (C) 2020 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <math.h>
++#include <math_ldbl.h>
++#include <stdint.h>
++
++static int
++do_test (void)
++{
++  for (int i = 0; i < 64; i++)
++    {
++      uint64_t sig = i == 63 ? 0 : 1ULL << i;
++      long double ld;
++      SET_LDOUBLE_WORDS (ld, 0x4141,
++			 sig >> 32, sig & 0xffffffffULL);
++      /* The requirement is that no stack overflow occurs when the
++	 pseudo-zero or unnormal goes through range reduction.  */
++      volatile long double ldr;
++      ldr = sinl (ld);
++      (void) ldr;
++    }
++  return 0;
++}
++
++#include <support/test-driver.c>
diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix
index 36b6bea61cd..0b2f34c7b76 100644
--- a/pkgs/development/libraries/glibc/common.nix
+++ b/pkgs/development/libraries/glibc/common.nix
@@ -17,6 +17,11 @@
   but the exact set depends on the library version and the configuration.
 */
 
+# 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
+# files.
+
 { stdenv, lib
 , buildPackages
 , fetchurl
@@ -36,9 +41,9 @@
 } @ args:
 
 let
-  version = "2.30";
+  version = "2.31";
   patchSuffix = "";
-  sha256 = "1bxqpg91d02qnaz837a5kamm0f43pr1il4r9pknygywsar713i72";
+  sha256 = "05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj";
 in
 
 assert withLinuxHeaders -> linuxHeaders != null;
@@ -108,8 +113,8 @@ stdenv.mkDerivation ({
       })
 
       ./fix-x64-abi.patch
-      ./2.27-CVE-2019-19126.patch
       ./2.30-cve-2020-1752.patch
+      ./2.31-cve-2020-10029.patch
     ]
     ++ lib.optional stdenv.hostPlatform.isMusl ./fix-rpc-types-musl-conflicts.patch
     ++ lib.optional stdenv.buildPlatform.isDarwin ./darwin-cross-build.patch;
diff --git a/pkgs/development/libraries/glibmm/default.nix b/pkgs/development/libraries/glibmm/default.nix
index dff122d38d1..53e924b1325 100644
--- a/pkgs/development/libraries/glibmm/default.nix
+++ b/pkgs/development/libraries/glibmm/default.nix
@@ -11,7 +11,12 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ pkgconfig gnum4 ];
+  nativeBuildInputs = [
+    pkgconfig
+    gnum4
+    glib # for glib-compile-schemas
+  ];
+
   buildInputs = stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
     Cocoa
   ]);
diff --git a/pkgs/development/libraries/gloox/default.nix b/pkgs/development/libraries/gloox/default.nix
index 7e5d7e9fa9a..ef731b3c35a 100644
--- a/pkgs/development/libraries/gloox/default.nix
+++ b/pkgs/development/libraries/gloox/default.nix
@@ -11,7 +11,7 @@ assert idnSupport -> libidn != null;
 with stdenv.lib;
 
 let
-  version = "1.0.23";
+  version = "1.0.24";
 in
 stdenv.mkDerivation {
   pname = "gloox";
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://camaya.net/download/gloox-${version}.tar.bz2";
-    sha256 = "12jz8glg9zmyk0iyv1ywf5i0hq93dfq8lvn6lyjgy8730w66mjwp";
+    sha256 = "1jgrd07qr9jvbb5hcmhrqz4w4lvwc51m30jls1fgxf1f5az6455f";
   };
 
   buildInputs = [ ]
diff --git a/pkgs/development/libraries/gmp/6.x.nix b/pkgs/development/libraries/gmp/6.x.nix
index c5fffa09bf0..f4432cfc5b8 100644
--- a/pkgs/development/libraries/gmp/6.x.nix
+++ b/pkgs/development/libraries/gmp/6.x.nix
@@ -3,6 +3,11 @@
 , buildPackages
 , withStatic ? false }:
 
+# 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
+# files.
+
 let inherit (stdenv.lib) optional; in
 
 let self = stdenv.mkDerivation rec {
diff --git a/pkgs/development/libraries/gnu-config/default.nix b/pkgs/development/libraries/gnu-config/default.nix
index e45ec957eb9..5acab2a70e0 100644
--- a/pkgs/development/libraries/gnu-config/default.nix
+++ b/pkgs/development/libraries/gnu-config/default.nix
@@ -1,21 +1,20 @@
 { stdenv, fetchurl }:
 
 let
-  rev = "a8d79c3130da83c7cacd6fee31b9acc53799c406";
+  rev = "e78c96e5288993aaea3ec44e5c6ee755c668da79";
 
   # 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 = "0qbq49gr2cmf4gzrjvrmpwxxgzl3vap1xm902xa8pkcqdvriq0qw";
+    sha256 = "sha256-TSLpYIDGSp1flqCBi2Sgg9IWDV5bcO+Hn2Menv3R6KU=";
   };
   configSub = fetchurl {
     url = "https://git.savannah.gnu.org/cgit/config.git/plain/config.sub?id=${rev}";
-    sha256 = "0i699axqfkxk9mgv1hlms5r44pf0s642yz75ajjjpwzhw4d5pnv4";
+    sha256 = "sha256-DkCGDN/DE3phQ1GO/Ua5ZPPtp0Ya93PnW3yfSK8EV9s=";
   };
-in
-stdenv.mkDerivation {
+in stdenv.mkDerivation {
   pname = "gnu-config";
-  version = "2019-04-15";
+  version = "2020-05-04";
 
   buildCommand = ''
     mkdir -p $out
diff --git a/pkgs/development/libraries/goffice/default.nix b/pkgs/development/libraries/goffice/default.nix
index 308a4db2800..46b40d00d78 100644
--- a/pkgs/development/libraries/goffice/default.nix
+++ b/pkgs/development/libraries/goffice/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "goffice";
-  version = "0.10.47";
+  version = "0.10.48";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0xmigfdzvmlpa0fw79mf3xwchmxc8rlidryn5syv8bz7msmrb215";
+    sha256 = "1z6f3q8fxkd1ysqrwdxdi0844zqa00vjpf07gq8mh3kal8picfd4";
   };
 
   nativeBuildInputs = [ pkgconfig intltool ];
diff --git a/pkgs/development/libraries/gperftools/default.nix b/pkgs/development/libraries/gperftools/default.nix
index 039231c0142..91b2c2929a4 100644
--- a/pkgs/development/libraries/gperftools/default.nix
+++ b/pkgs/development/libraries/gperftools/default.nix
@@ -1,14 +1,31 @@
-{ stdenv, fetchurl, libunwind }:
+{ stdenv, fetchurl, fetchpatch, autoreconfHook, libunwind }:
 
 stdenv.mkDerivation rec {
-  name = "gperftools-2.7";
+  name = "gperftools-2.8";
 
   src = fetchurl {
     url = "https://github.com/gperftools/gperftools/releases/download/${name}/${name}.tar.gz";
-    sha256 = "1jb30zxmw7h9qxa8yi76rfxj4ssk60rv8n9y41m6pzqfk9lwis0y";
+    sha256 = "0gjiplvday50x695pwjrysnvm5wfvg2b0gmqf6b4bdi8sv6yl394";
   };
 
-  buildInputs = stdenv.lib.optional stdenv.isLinux libunwind;
+  patches = [
+    # Add the --disable-general-dynamic-tls configure option:
+    # https://bugzilla.redhat.com/show_bug.cgi?id=1483558
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/gperftools/raw/f62d87a34f56f64fb8eb86727e34fbc2d3f5294a/f/gperftools-2.7.90-disable-generic-dynamic-tls.patch";
+      sha256 = "02falhpaqkl27hl1dib4yvmhwsddmgbw0krb46w31fyf3awb2ydv";
+    })
+  ];
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  # tcmalloc uses libunwind in a way that works correctly only on non-ARM linux
+  buildInputs = stdenv.lib.optional (stdenv.isLinux && !(stdenv.isAarch64 || stdenv.isAarch32)) libunwind;
+
+  # Disable general dynamic TLS on AArch to support dlopen()'ing the library:
+  # https://bugzilla.redhat.com/show_bug.cgi?id=1483558
+  configureFlags = stdenv.lib.optional (stdenv.isAarch32 || stdenv.isAarch64)
+    "--disable-general-dynamic-tls";
 
   prePatch = stdenv.lib.optionalString stdenv.isDarwin ''
     substituteInPlace Makefile.am --replace stdc++ c++
diff --git a/pkgs/development/libraries/gpgme/default.nix b/pkgs/development/libraries/gpgme/default.nix
index 1c4f63142a9..ed07d8ba058 100644
--- a/pkgs/development/libraries/gpgme/default.nix
+++ b/pkgs/development/libraries/gpgme/default.nix
@@ -14,22 +14,15 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gpgme";
-  version = "1.13.1";
+  version = "1.14.0";
 
   src = fetchurl {
     url = "mirror://gnupg/gpgme/${pname}-${version}.tar.bz2";
-    sha256 = "0imyjfryvvjdbai454p70zcr95m94j9xnzywrlilqdw2fqi0pqy4";
+    sha256 = "01s3rlspykbm9vmi5rfbdm3d20ip6yni69r48idqzlmhlq8ggwff";
   };
 
   patches = [
-    # Fix tests with gnupg > 2.2.19
-    # https://dev.gnupg.org/T4820
-    (fetchpatch {
-      name = "cff600f1f65a2164ab25ff2b039cba008776ce62.patch";
-      url = "http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=patch;h=cff600f1f65a2164ab25ff2b039cba008776ce62";
-      sha256 = "0ds3pvcws37q4hr4g5iwg2b98fj6whvhhcbm9c8f1kgp7dlpdw7n";
-    })
-    (fetchpatch {
+    (fetchpatch { # gpg: Send --with-keygrip when listing keys
       name = "c4cf527ea227edb468a84bf9b8ce996807bd6992.patch";
       url = "http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=patch;h=c4cf527ea227edb468a84bf9b8ce996807bd6992";
       sha256 = "0y0b0lb2nq5p9kx13b59b2jaz157mvflliw1qdvg1v1hynvgb8m4";
@@ -79,6 +72,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = "https://gnupg.org/software/gpgme/index.html";
+    changelog = "https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=blob;f=NEWS;hb=refs/tags/gpgme-${version}";
     description = "Library for making GnuPG easier to use";
     longDescription = ''
       GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG
diff --git a/pkgs/development/libraries/grantlee/5/default.nix b/pkgs/development/libraries/grantlee/5/default.nix
index 09bf9222485..4eef2d407d8 100644
--- a/pkgs/development/libraries/grantlee/5/default.nix
+++ b/pkgs/development/libraries/grantlee/5/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, copyPathsToStore, fetchurl, qtbase, qtscript, cmake }:
+{ mkDerivation, lib, fetchurl, qtbase, qtscript, cmake }:
 
 mkDerivation rec {
   pname = "grantlee";
@@ -14,7 +14,10 @@ mkDerivation rec {
   buildInputs = [ qtbase qtscript ];
   nativeBuildInputs = [ cmake ];
 
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./grantlee-nix-profiles.patch
+    ./grantlee-no-canonicalize-filepath.patch
+  ];
 
   outputs = [ "out" "dev" ];
   postFixup =
diff --git a/pkgs/development/libraries/grantlee/5/series b/pkgs/development/libraries/grantlee/5/series
deleted file mode 100644
index 9c4015a1c19..00000000000
--- a/pkgs/development/libraries/grantlee/5/series
+++ /dev/null
@@ -1,2 +0,0 @@
-grantlee-nix-profiles.patch
-grantlee-no-canonicalize-filepath.patch
diff --git a/pkgs/development/libraries/graphene/default.nix b/pkgs/development/libraries/graphene/default.nix
index e540604c9cb..ee147d82afd 100644
--- a/pkgs/development/libraries/graphene/default.nix
+++ b/pkgs/development/libraries/graphene/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pkgconfig
 , meson
 , ninja
@@ -15,7 +16,7 @@
 
 stdenv.mkDerivation rec {
   pname = "graphene";
-  version = "1.10.0";
+  version = "1.10.2";
 
   outputs = [ "out" "devdoc" "installedTests" ];
 
@@ -23,7 +24,7 @@ stdenv.mkDerivation rec {
     owner = "ebassi";
     repo = pname;
     rev = version;
-    sha256 = "16vqwih5bfxv7r3mm7iiha804rpsxzxjfrs4kx76d9q5yg2hayxr";
+    sha256 = "1ljhhjafi1nlndjswx7mg0d01zci90wz77yvz5w8bd9mm8ssw38s";
   };
 
   patches = [
@@ -62,6 +63,10 @@ stdenv.mkDerivation rec {
     tests = {
       installedTests = nixosTests.installed-tests.graphene;
     };
+
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/grpc/default.nix b/pkgs/development/libraries/grpc/default.nix
index ab497eadb6d..b0fe149b6f0 100644
--- a/pkgs/development/libraries/grpc/default.nix
+++ b/pkgs/development/libraries/grpc/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub, fetchpatch, cmake, zlib, c-ares, pkgconfig, openssl, protobuf, gflags, abseil-cpp }:
 
 stdenv.mkDerivation rec {
-  version = "1.29.0"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too
+  version = "1.31.0"; # 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 = "1n604grkf2amzrmwcz6am0rpbp3yfb062lpgmhv943hj8wk7xw27";
+    sha256 = "1h7gmhkjijfkpqhz8vswhkz2gkphs638g10dlkayic8xg9xdl4gj";
     fetchSubmodules = true;
   };
   patches = [
diff --git a/pkgs/development/libraries/gssdp/default.nix b/pkgs/development/libraries/gssdp/default.nix
index 8ad92eb833a..0a808b71a71 100644
--- a/pkgs/development/libraries/gssdp/default.nix
+++ b/pkgs/development/libraries/gssdp/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gssdp";
-  version = "1.2.2";
+  version = "1.2.3";
 
   outputs = [ "out" "bin" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gssdp/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya";
+    sha256 = "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/default.nix
index 94d71760a7f..e7e11db6129 100644
--- a/pkgs/development/libraries/gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/default.nix
@@ -23,7 +23,7 @@ rec {
     inherit gst-plugins-base gstreamer gst-plugins-bad;
   };
 
-  gst-validate = callPackage ./validate { inherit gst-plugins-base; };
+  gst-validate = callPackage ./validate { inherit gstreamer gst-plugins-base; };
 
   # note: gst-python is in ./python/default.nix - called under pythonPackages
 }
diff --git a/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix b/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix
deleted file mode 100644
index 804d80b8e1d..00000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gst-plugins-base, gstreamer }:
-
-stdenv.mkDerivation rec {
-  name = "gnonlin-0.10.17";
-
-  src = fetchurl {
-    urls = [
-      "https://gstreamer.freedesktop.org/src/gnonlin/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
-      ];
-    sha256 = "0dc9kvr6i7sh91cyhzlbx2bchwg84rfa4679ccppzjf0y65dv8p4";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gst-plugins-base gstreamer ];
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org/modules/gnonlin.html";
-    description = "Gstreamer Non-Linear Multimedia Editing Plugins";
-    license = stdenv.lib.licenses.gpl2Plus;
-    platforms = stdenv.lib.platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix
deleted file mode 100644
index cd37a513184..00000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ fetchurl, stdenv, pkgconfig, glib, gstreamer, gst-plugins-base
-, libdvdnav, libdvdread, orc }:
-
-stdenv.mkDerivation rec {
-  name = "gst-plugins-bad-0.10.23";
-
-  src = fetchurl {
-    urls = [
-      "${meta.homepage}/src/gst-plugins-bad/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
-      ];
-    sha256 = "148lw51dm6pgw8vc6v0fpvm7p233wr11nspdzmvq7bjp2cd7vbhf";
-  };
-
-  postInstall = ''
-    # Fixes CVE-2016-9447
-    # Does not actually impact NSF playback
-    rm -v $out/lib/gstreamer-0.10/libgstnsf.so
-  '';
-
-  buildInputs =
-    [ pkgconfig glib gstreamer gst-plugins-base libdvdnav libdvdread orc ];
-
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org";
-
-    description = "‘Bad’ (potentially low quality) plug-ins for GStreamer";
-
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.linux;
-
-    license = stdenv.lib.licenses.lgpl2Plus;
-  };
-}
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix
deleted file mode 100644
index ad978e903f8..00000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ fetchurl, fetchpatch, stdenv, pkgconfig, gstreamer, xorg, alsaLib, cdparanoia
-, libogg, libtheora, libvorbis, freetype, pango, liboil, glib, cairo, orc
-, libintl
-, ApplicationServices
-, # Whether to build no plugins that have external dependencies
-  # (except the ALSA plugin).
-  minimalDeps ? false
-}:
-
-stdenv.mkDerivation rec {
-  name = "gst-plugins-base-0.10.36";
-
-  src = fetchurl {
-    urls = [
-      "${meta.homepage}/src/gst-plugins-base/${name}.tar.xz"
-      "mirror://gentoo/distfiles/${name}.tar.xz"
-      ];
-    sha256 = "0jp6hjlra98cnkal4n6bdmr577q8mcyp3c08s3a02c4hjhw5rr0z";
-  };
-
-  patches = [
-    ./gcc-4.9.patch
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/commit/f672277509705c4034bc92a141eefee4524d15aa.patch";
-      name = "CVE-2019-9928.patch";
-      sha256 = "1dlamsmyr7chrb6vqqmwikqvvqcx5l7k72p98448qm6k59ndnimc";
-    })
-  ];
-
-  postPatch = ''
-    sed -i 's@/bin/echo@echo@g' configure
-    sed -i -e 's/^   /\t/' docs/{libs,plugins}/Makefile.in
-  '';
-
-  outputs = [ "out" "dev" ];
-
-  # TODO : v4l, libvisual
-  buildInputs =
-    [ pkgconfig glib cairo orc libintl ]
-    # can't build alsaLib on darwin
-    ++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib
-    ++ stdenv.lib.optionals (!minimalDeps)
-      [ xorg.xlibsWrapper xorg.libXv libogg libtheora libvorbis freetype pango
-        liboil ]
-    # can't build cdparanoia on darwin
-    ++ stdenv.lib.optional (!minimalDeps && !stdenv.isDarwin) cdparanoia
-    ++ stdenv.lib.optional stdenv.isDarwin ApplicationServices;
-
-  propagatedBuildInputs = [ gstreamer ];
-
-  postInstall = "rm -rf $out/share/gtk-doc";
-
-  meta = with stdenv.lib; {
-    homepage    = "https://gstreamer.freedesktop.org";
-    description = "Base plug-ins for GStreamer";
-    license     = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ lovek323 ];
-    platforms   = platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch
deleted file mode 100644
index fd9f6ea240d..00000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-https://bugzilla.gnome.org/show_bug.cgi?id=670690
-
-From 9bd5a7ae5435469c3557a3d70e762791cb3dc5c7 Mon Sep 17 00:00:00 2001
-From: Antoine Jacoutot <ajacoutot@gnome.org>
-Date: Mon, 20 Jan 2014 15:44:09 +0100
-Subject: [PATCH] audioresample: fix build on BSD
-
-On i386, EMMINTRIN is defined but not usable without sse so check for
-__SSE__ and __SSE2__ as well.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=670690
----
- gst/audioresample/resample.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gst/audioresample/resample.c b/gst/audioresample/resample.c
-index 98d006c..481fa01 100644
---- a/gst/audioresample/resample.c
-+++ b/gst/audioresample/resample.c
-@@ -77,13 +77,13 @@
- #define EXPORT G_GNUC_INTERNAL
- 
- #ifdef _USE_SSE
--#ifndef HAVE_XMMINTRIN_H
-+#if !defined(__SSE__) || !defined(HAVE_XMMINTRIN_H)
- #undef _USE_SSE
- #endif
- #endif
- 
- #ifdef _USE_SSE2
--#ifndef HAVE_EMMINTRIN_H
-+#if !defined(__SSE2__) || !defined(HAVE_XMMINTRIN_H)
- #undef _USE_SSE2
- #endif
- #endif
--- 
-1.8.5.3
-
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix
deleted file mode 100644
index 225bcc7e263..00000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ fetchurl, stdenv, lib, pkgconfig, gst-plugins-base, aalib, cairo
-, flac, libjpeg, speex, libpng, libdv, libcaca, libvpx
-, taglib, libpulseaudio, gdk-pixbuf, orc
-, glib, gstreamer, bzip2, libsoup, libshout, ncurses, libintl
-, # Whether to build no plugins that have external dependencies
-  # (except the PulseAudio plugin).
-  minimalDeps ? false
-}:
-
-stdenv.mkDerivation rec {
-  name = "gst-plugins-good-0.10.31";
-
-  src = fetchurl {
-    urls = [
-      "${meta.homepage}/src/gst-plugins-good/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
-      ];
-    sha256 = "1ijswgcrdp243mfsyza31fpzq6plz40p4b83vkr2x4x7807889vy";
-  };
-
-  patches = [ ./v4l.patch ./linux-headers-3.9.patch ];
-
-  configureFlags = [ "--enable-experimental" "--disable-oss" ];
-
-  buildInputs =
-    [ pkgconfig glib gstreamer gst-plugins-base libintl ]
-    ++ lib.optional stdenv.isLinux libpulseaudio
-    ++ lib.optionals (!minimalDeps)
-      [ aalib libcaca cairo libdv flac libjpeg libpng speex
-        taglib bzip2 libvpx gdk-pixbuf orc libsoup libshout ];
-
-  enableParallelBuilding = true;
-
-  postInstall = lib.optionalString (!minimalDeps) ''
-    substituteInPlace $out/lib/gstreamer-0.10/libgstaasink.la \
-      --replace "${ncurses.dev}/lib" "${ncurses.out}/lib"
-  '';
-
-  # fails 1 out of 65 tests with "Could not read TLS certificate from '../../tests/files/test-cert.pem': TLS support is not available"
-  doCheck = false;
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org";
-
-    description = "`Good' plug-ins for GStreamer";
-
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.unix;
-
-    license = stdenv.lib.licenses.lgpl2Plus;
-  };
-}
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/linux-headers-3.9.patch b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/linux-headers-3.9.patch
deleted file mode 100644
index f13d3a16671..00000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/linux-headers-3.9.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-plugins/gst-plugins-v4l2/files/gst-plugins-v4l2-0.10.31-linux-headers-3.9.patch
-
-From 8e633d2059cb835448021cf79becb487aff10975 Mon Sep 17 00:00:00 2001
-From: Bastien Nocera <hadess@hadess.net>
-Date: Mon, 18 Mar 2013 14:59:35 +0000
-Subject: v4l2: fix compilation against newer kernel headers as on FC19
-
----
-diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c
-index 07d390a..4c10f4f 100644
---- a/sys/v4l2/v4l2_calls.c
-+++ b/sys/v4l2/v4l2_calls.c
-@@ -291,8 +291,12 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
-         break;
-       case V4L2_CID_HFLIP:
-       case V4L2_CID_VFLIP:
-+#ifndef V4L2_CID_PAN_RESET
-       case V4L2_CID_HCENTER:
-+#endif
-+#ifndef V4L2_CID_TILT_RESET
-       case V4L2_CID_VCENTER:
-+#endif
- #ifdef V4L2_CID_PAN_RESET
-       case V4L2_CID_PAN_RESET:
- #endif
---
-cgit v0.9.0.2-2-gbebe
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch
deleted file mode 100644
index 22cff574134..00000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ru -x '*~' gst-plugins-good-0.10.31-orig/sys/v4l2/gstv4l2bufferpool.c gst-plugins-good-0.10.31/sys/v4l2/gstv4l2bufferpool.c
---- gst-plugins-good-0.10.31-orig/sys/v4l2/gstv4l2bufferpool.c	2011-12-30 14:59:13.000000000 +0100
-+++ gst-plugins-good-0.10.31/sys/v4l2/gstv4l2bufferpool.c	2013-01-28 17:41:25.549523708 +0100
-@@ -181,7 +181,6 @@
-     GST_LOG_OBJECT (pool->v4l2elem, "  MMAP offset:  %u",
-         ret->vbuffer.m.offset);
-   GST_LOG_OBJECT (pool->v4l2elem, "  length:    %u", ret->vbuffer.length);
--  GST_LOG_OBJECT (pool->v4l2elem, "  input:     %u", ret->vbuffer.input);
- 
-   data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length,
-       PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd,
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix
deleted file mode 100644
index 5321fc379cc..00000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ fetchurl, stdenv, pkgconfig, glib, gstreamer, gst-plugins-base
-, libmad, libdvdread, a52dec, x264, orc, lame, libintl }:
-
-stdenv.mkDerivation rec {
-  name = "gst-plugins-ugly-0.10.19";
-
-  src = fetchurl {
-    urls = [
-      "${meta.homepage}/src/gst-plugins-ugly/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
-      ];
-    sha256 = "1w4d5iz9ffvh43l261zdp997i6s2iwd61lflf755s3sw4xch1a8w";
-  };
-
-  buildInputs =
-    [ pkgconfig glib gstreamer gst-plugins-base libmad libdvdread a52dec x264 orc lame libintl ];
-
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org";
-
-    description = "‘Ugly’ (potentially patent-encumbered) plug-ins for GStreamer";
-
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.unix;
-
-    license = stdenv.lib.licenses.lgpl2Plus;
-  };
-}
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix
deleted file mode 100644
index 4c56039bd0a..00000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ fetchurl, stdenv, pkgconfig, python2Packages, gstreamer, gst-plugins-base
-}:
-
-let
-  inherit (python2Packages) python pygobject2;
-in stdenv.mkDerivation rec {
-  name = "gst-python-0.10.22";
-
-  src = fetchurl {
-    urls = [
-      "${meta.homepage}/src/gst-python/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
-      ];
-    sha256 = "0y1i4n5m1diljqr9dsq12anwazrhbs70jziich47gkdwllcza9lg";
-  };
-
-  hardeningDisable = [ "bindnow" ];
-
-  # Need to disable the testFake test case due to bug in pygobject.
-  # See https://bugzilla.gnome.org/show_bug.cgi?id=692479
-  patches = [ ./disable-testFake.patch ];
-
-  buildInputs =
-    [ pkgconfig gst-plugins-base pygobject2 ]
-    ;
-
-  propagatedBuildInputs = [ gstreamer python ];
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org";
-
-    description = "Python bindings for GStreamer";
-
-    license = stdenv.lib.licenses.lgpl2Plus;
-    platforms = stdenv.lib.platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-python/disable-testFake.patch b/pkgs/development/libraries/gstreamer/legacy/gst-python/disable-testFake.patch
deleted file mode 100644
index d0c9960e5d2..00000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gst-python/disable-testFake.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-diff -Nurp gst-python-0.10.22.orig/testsuite/test_bin.py gst-python-0.10.22/testsuite/test_bin.py
---- gst-python-0.10.22.orig/testsuite/test_bin.py	2014-10-29 18:58:00.921827721 +0100
-+++ gst-python-0.10.22/testsuite/test_bin.py	2014-10-29 19:00:32.019353092 +0100
-@@ -131,52 +131,6 @@ class BinAddRemove(TestCase):
-         self.assertRaises(gst.AddError, self.bin.add, src, sink)
-         self.bin.remove(src, sink)
-         self.assertRaises(gst.RemoveError, self.bin.remove, src, sink)
--
--class Preroll(TestCase):
--    def setUp(self):
--        TestCase.setUp(self)
--        self.bin = gst.Bin('bin')
--
--    def tearDown(self):
--        # FIXME: wait for state change thread to settle down
--        while self.bin.__gstrefcount__ > 1:
--            time.sleep(0.1)
--        self.assertEquals(self.bin.__gstrefcount__, 1)
--        del self.bin
--        TestCase.tearDown(self)
--
--    def testFake(self):
--        src = gst.element_factory_make('fakesrc')
--        sink = gst.element_factory_make('fakesink')
--        self.bin.add(src)
--
--        # bin will go to paused, src pad task will start and error out
--        self.bin.set_state(gst.STATE_PAUSED)
--        ret = self.bin.get_state()
--        self.assertEquals(ret[0], gst.STATE_CHANGE_SUCCESS)
--        self.assertEquals(ret[1], gst.STATE_PAUSED)
--        self.assertEquals(ret[2], gst.STATE_VOID_PENDING)
--
--        # adding the sink will cause the bin to go in preroll mode
--        gst.debug('adding sink and setting to PAUSED, should cause preroll')
--        self.bin.add(sink)
--        sink.set_state(gst.STATE_PAUSED)
--        ret = self.bin.get_state(timeout=0)
--        self.assertEquals(ret[0], gst.STATE_CHANGE_ASYNC)
--        self.assertEquals(ret[1], gst.STATE_PAUSED)
--        self.assertEquals(ret[2], gst.STATE_PAUSED)
--
--        # to actually complete preroll, we need to link and re-enable fakesrc
--        src.set_state(gst.STATE_READY)
--        src.link(sink)
--        src.set_state(gst.STATE_PAUSED)
--        ret = self.bin.get_state()
--        self.assertEquals(ret[0], gst.STATE_CHANGE_SUCCESS)
--        self.assertEquals(ret[1], gst.STATE_PAUSED)
--        self.assertEquals(ret[2], gst.STATE_VOID_PENDING)
--
--        self.bin.set_state(gst.STATE_NULL)
--        self.bin.get_state()
-  
- class ConstructorTest(TestCase):
-     def testGood(self):
diff --git a/pkgs/development/libraries/gstreamer/legacy/gstreamer/darwin.patch b/pkgs/development/libraries/gstreamer/legacy/gstreamer/darwin.patch
deleted file mode 100644
index 67dfc34434d..00000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gstreamer/darwin.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/gst/gstdatetime.c b/gst/gstdatetime.c
-index 60f709f..cdc7e75 100644
---- a/gst/gstdatetime.c
-+++ b/gst/gstdatetime.c
-@@ -21,8 +21,8 @@
- #include "config.h"
- #endif
- 
--#include "glib-compat-private.h"
- #include "gst_private.h"
-+#include "glib-compat-private.h"
- #include "gstdatetime.h"
- #include <glib.h>
- #include <math.h>
diff --git a/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix
deleted file mode 100644
index b78f6148e48..00000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix
+++ /dev/null
@@ -1,89 +0,0 @@
-{ fetchurl, fetchpatch, stdenv, autoreconfHook
-, perl, bison, flex, pkgconfig, glib, libxml2, libintl, libunwind
-}:
-
-stdenv.mkDerivation rec {
-  name = "gstreamer-0.10.36";
-
-  src = fetchurl {
-    urls =
-      [ "${meta.homepage}/src/gstreamer/${name}.tar.xz"
-        "mirror://gentoo/distfiles/${name}.tar.xz"
-      ];
-    sha256 = "1nkid1n2l3rrlmq5qrf5yy06grrkwjh3yxl5g0w58w0pih8allci";
-  };
-
-  outputs = [ "out" "dev" ];
-
-  nativeBuildInputs = [ autoreconfHook flex perl pkgconfig libintl bison glib ];
-  buildInputs = stdenv.lib.optional stdenv.isDarwin libunwind;
-  propagatedBuildInputs = [ glib libxml2 ];
-
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/flathub/com.xnview.XnRetro/raw/fec03bbe240f45aa10d7d4eea9d6f066d9b6ac9c/gstreamer-0.10.36-bison3.patch";
-      sha256 = "05aarg3yzl5jx3z5838ixv392g0r3kbsi2vfqniaxmidhnfzij2y";
-    })
-    (fetchpatch {
-      url = "https://github.com/GStreamer/common/commit/03a0e5736761a72d4ed880e8c485bbf9e4a8ea47.patch";
-      sha256 = "0rin3x01yy78ky3smmhbwlph18hhym18q4x9w6ddiqajg5lk4xhm";
-      extraPrefix = "common/";
-      stripLen = 1;
-    })
-    (fetchpatch {
-      url = "https://github.com/GStreamer/common/commit/8aadeaaa8a948d7ce62008789ab03e9aa514c2b9.patch";
-      sha256 = "0n2mqvq2al7jr2hflhz4l781i3jya5a9i725jvy508ambpgycz3x";
-      extraPrefix = "common/";
-      stripLen = 1;
-    })
-    (fetchpatch {
-      url = "https://github.com/GStreamer/common/commit/7bb2bcecda471a0d514a964365a78150f3ee5747.patch";
-      sha256 = "0famdj70m7wjvr1dpy7iywhrkqxmrshxz0rizz1bixgp42dvkhbq";
-      extraPrefix = "common/";
-      stripLen = 1;
-    })
-  ] ++
-    # See https://trac.macports.org/ticket/40783 for explanation of patch
-    stdenv.lib.optional stdenv.isDarwin ./darwin.patch;
-
-  postPatch = ''
-    sed -i -e 's/^   /\t/' docs/gst/Makefile.in docs/libs/Makefile.in docs/plugins/Makefile.in
-  '';
-
-  configureFlags = [
-    "--disable-examples"
-    "--localstatedir=/var"
-    "--disable-gtk-doc"
-    "--disable-docbook"
-  ];
-
-  doCheck = false; # fails. 2 tests crash
-
-  postInstall = ''
-    # Hm, apparently --disable-gtk-doc is ignored...
-    rm -rf $out/share/gtk-doc
-  '';
-
-  setupHook = ./setup-hook.sh;
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org";
-
-    description = "Library for constructing graphs of media-handling components";
-
-    longDescription = ''
-      GStreamer is a library for constructing graphs of media-handling
-      components.  The applications it supports range from simple
-      Ogg/Vorbis playback, audio/video streaming to complex audio
-      (mixing) and video (non-linear editing) processing.
-
-      Applications can take advantage of advances in codec and filter
-      technology transparently.  Developers can add new codecs and
-      filters by writing a simple plugin with a clean, generic
-      interface.
-    '';
-
-    license = stdenv.lib.licenses.lgpl2Plus;
-    platforms = stdenv.lib.platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh b/pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh
deleted file mode 100644
index 636e20b732b..00000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-addGstreamerLibPath () {
-    if test -d "$1/lib/gstreamer-0.10"
-    then
-        export GST_PLUGIN_SYSTEM_PATH="${GST_PLUGIN_SYSTEM_PATH-}${GST_PLUGIN_SYSTEM_PATH:+:}$1/lib/gstreamer-0.10"
-    fi
-}
-
-addEnvHooks "$hostOffset" addGstreamerLibPath
diff --git a/pkgs/development/libraries/gstreamer/legacy/gstreamermm/default.nix b/pkgs/development/libraries/gstreamer/legacy/gstreamermm/default.nix
deleted file mode 100644
index 24197b04b73..00000000000
--- a/pkgs/development/libraries/gstreamer/legacy/gstreamermm/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ stdenv, fetchurl, glibmm, gstreamer, gst-plugins-base, libsigcxx, libxmlxx, pkgconfig }:
-
-let
-  ver_maj = "0.10";
-  ver_min = "11";
-in
-stdenv.mkDerivation {
-  name = "gstreamermm-${ver_maj}.${ver_min}";
-
-  src = fetchurl {
-    url    = "mirror://gnome/sources/gstreamermm/${ver_maj}/gstreamermm-${ver_maj}.${ver_min}.tar.xz";
-    sha256 = "12b5f377363594a69cb79f2f5cd0a8b1813ca6553680c3216e6354cfd682ebc6";
-  };
- 
-  doCheck = false; # Tests require pulseaudio in /homeless-shelter
-
-  propagatedBuildInputs = [
-    glibmm gstreamer gst-plugins-base libsigcxx libxmlxx
-  ];
-
-  nativeBuildInputs = [ pkgconfig ];
-
-  meta = with stdenv.lib; {
-    description = "C++ bindings for the GStreamer streaming multimedia library";
-    homepage = "https://www.gtkmm.org/";
-    license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ plcplc ];
-    platforms = platforms.unix;
-  };
-
-}
diff --git a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
index dfb18754c83..92e8a45a4f6 100644
--- a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
+++ b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
@@ -20,6 +20,15 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
+  patches = [
+    # To use split outputs, we need this so double prefix won't be used in the
+    # pkg-config files. Hopefully, this won't be needed on the next release,
+    # _if_
+    # https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/merge_requests/1
+    # will be merged. For the current release, this merge request won't apply.
+    ./fix_pkgconfig_includedir.patch
+  ];
+
   nativeBuildInputs = [
     meson
     ninja
diff --git a/pkgs/development/libraries/gstreamer/rtsp-server/fix_pkgconfig_includedir.patch b/pkgs/development/libraries/gstreamer/rtsp-server/fix_pkgconfig_includedir.patch
new file mode 100644
index 00000000000..d31fe19fb0f
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/rtsp-server/fix_pkgconfig_includedir.patch
@@ -0,0 +1,15 @@
+diff --git i/pkgconfig/meson.build w/pkgconfig/meson.build
+index 8ed8299..594cbfe 100644
+--- i/pkgconfig/meson.build
++++ w/pkgconfig/meson.build
+@@ -2,8 +2,8 @@ pkgconf = configuration_data()
+ 
+ pkgconf.set('prefix', get_option('prefix'))
+ pkgconf.set('exec_prefix', '${prefix}')
+-pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir')))
+-pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir')))
++pkgconf.set('libdir', join_paths(get_option('prefix'), get_option('libdir')))
++pkgconf.set('includedir', join_paths(get_option('prefix'), get_option('includedir')))
+ pkgconf.set('GST_API_VERSION', api_version)
+ pkgconf.set('VERSION', gst_version)
+ 
diff --git a/pkgs/development/libraries/gthree/default.nix b/pkgs/development/libraries/gthree/default.nix
index 04d7c8d8f4d..2da9847f3cb 100644
--- a/pkgs/development/libraries/gthree/default.nix
+++ b/pkgs/development/libraries/gthree/default.nix
@@ -3,10 +3,10 @@
 , fetchpatch
 , ninja
 , meson
-, pkgconfig
+, pkg-config
 , gobject-introspection
 , gtk-doc
-, docbook_xsl
+, docbook-xsl-nons
 , docbook_xml_dtd_43
 , glib
 , gtk3
@@ -17,7 +17,7 @@
 
 stdenv.mkDerivation rec {
   pname = "gthree";
-  version = "0.2.0";
+  version = "0.9.0";
 
   outputs = [ "out" "dev" "devdoc" ];
 
@@ -25,32 +25,42 @@ stdenv.mkDerivation rec {
     owner = "alexlarsson";
     repo = "gthree";
     rev = version;
-    sha256 = "16ap1ampnzsyhrs84b168d6889lh8sjr2j5sqv9mdbnnhy72p5cd";
+    sha256 = "09fcnjc3j21lh5fjf067wm35sb4qni4vgzing61kixnn2shy79iy";
   };
 
+  patches = [
+    # Add option for disabling examples
+    (fetchpatch {
+      url = "https://github.com/alexlarsson/gthree/commit/75f05c40aba9d5f603d8a3c490c3406c1fe06776.patch";
+      sha256 = "PBwLz4DLhC+7BtypVTFMFiF3hKAJeskU3XBKFHa3a84=";
+    })
+  ];
+
   nativeBuildInputs = [
     ninja
     meson
-    pkgconfig
+    pkg-config
     gtk-doc
-    docbook_xsl
+    docbook-xsl-nons
     docbook_xml_dtd_43
     gobject-introspection
   ];
 
   buildInputs = [
     epoxy
+    json-glib
   ];
 
   propagatedBuildInputs = [
     glib
     gtk3
     graphene
-    json-glib
   ];
 
   mesonFlags = [
     "-Dgtk_doc=${if stdenv.isDarwin then "false" else "true"}"
+    # Data for examples is useless when the example programs are not installed.
+    "-Dexamples=false"
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/gtk-layer-shell/default.nix b/pkgs/development/libraries/gtk-layer-shell/default.nix
index c00e8035f18..14f822432ee 100644
--- a/pkgs/development/libraries/gtk-layer-shell/default.nix
+++ b/pkgs/development/libraries/gtk-layer-shell/default.nix
@@ -2,7 +2,10 @@
 , fetchFromGitHub
 , meson
 , ninja
-, pkgconfig
+, pkg-config
+, gtk-doc
+, docbook-xsl-nons
+, docbook_xml_dtd_43
 , wayland
 , gtk3
 , gobject-introspection
@@ -10,30 +13,39 @@
 
 stdenv.mkDerivation rec {
   pname = "gtk-layer-shell";
-  version = "0.1.0";
+  version = "0.2.0";
+
+  outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchFromGitHub {
     owner = "wmww";
     repo = "gtk-layer-shell";
     rev = "v${version}";
-    sha256 = "1fwvlbwp5w1zly6mksvlzbx18ikq4bh7pdj9q0k94qlj6x2zdwg8";
+    sha256 = "0kas84z44p3vz92sljbnahh43wfj69knqsy1za729j8phrlwqdmg";
   };
 
   nativeBuildInputs = [
-    meson ninja pkgconfig
+    meson
+    ninja
+    pkg-config
+    gobject-introspection
+    gtk-doc
+    docbook-xsl-nons
+    docbook_xml_dtd_43
   ];
 
   buildInputs = [
-    wayland gtk3 gobject-introspection
+    wayland
+    gtk3
   ];
 
   mesonFlags = [
-    "-Dout=${placeholder "out"}"
+    "-Ddocs=true"
   ];
 
   meta = with stdenv.lib; {
     description = "A library to create panels and other desktop components for Wayland using the Layer Shell protocol";
-    license = licenses.mit;
+    license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ eonpatapon ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/libraries/gtk-sharp/3.0.nix b/pkgs/development/libraries/gtk-sharp/3.0.nix
index f8f1f20cc2f..49405c655e1 100644
--- a/pkgs/development/libraries/gtk-sharp/3.0.nix
+++ b/pkgs/development/libraries/gtk-sharp/3.0.nix
@@ -1,4 +1,8 @@
-{ stdenv, fetchurl, pkgconfig, mono
+{ stdenv
+, fetchurl
+, fetchpatch
+, pkgconfig
+, mono
 , glib
 , pango
 , gtk3
@@ -14,29 +18,32 @@
 , monoDLLFixer
 }:
 
-stdenv.mkDerivation {
-  name = "gtk-sharp-2.99.3";
+stdenv.mkDerivation rec {
+  pname = "gtk-sharp";
+  version = "2.99.3";
 
   builder = ./builder.sh;
   src = fetchurl {
-    #"mirror://gnome/sources/gtk-sharp/2.99/gtk-sharp-2.99.3.tar.xz";
-    url = "http://ftp.gnome.org/pub/GNOME/sources/gtk-sharp/2.99/gtk-sharp-2.99.3.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "18n3l9zcldyvn4lwi8izd62307mkhz873039nl6awrv285qzah34";
   };
 
-  # patch bad usage of glib, which wasn't tolerated anymore
-  # prePatch = ''
-  #   for f in glib/glue/{thread,list,slist}.c; do
-  #     sed -i 's,#include <glib/.*\.h>,#include <glib.h>,g' "$f"
-  #   done
-  # '';
-
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
     mono glib pango gtk3 GConf libglade libgnomecanvas
     libgtkhtml libgnomeui libgnomeprint libgnomeprintui gtkhtml libxml2
   ];
 
+  patches = [
+    # Fixes MONO_PROFILE_ENTER_LEAVE undeclared when compiling against newer versions of mono.
+    # @see https://github.com/mono/gtk-sharp/pull/266
+    (fetchpatch {
+      name = "MONO_PROFILE_ENTER_LEAVE.patch";
+      url = "https://github.com/mono/gtk-sharp/commit/401df51bc461de93c1a78b6a7a0d5adc63cf186c.patch";
+      sha256 = "0hrkcr5a7wkixnyp60v4d6j3arsb63h54rd30lc5ajfjb3p92kcf";
+    })
+  ];
+
   dontStrip = true;
 
   inherit monoDLLFixer;
@@ -47,6 +54,5 @@ stdenv.mkDerivation {
 
   meta = {
     platforms = stdenv.lib.platforms.linux;
-    broken = true; # 2018-09-21, build has failed since 2018-04-28
   };
 }
diff --git a/pkgs/development/libraries/gtk/3.x.nix b/pkgs/development/libraries/gtk/3.x.nix
index aec5c4d2ded..bf78d15d39c 100644
--- a/pkgs/development/libraries/gtk/3.x.nix
+++ b/pkgs/development/libraries/gtk/3.x.nix
@@ -48,7 +48,7 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "gtk+3";
-  version = "3.24.20";
+  version = "3.24.21";
 
   outputs = [ "out" "dev" ] ++ optional withGtkDoc "devdoc";
   outputBin = "dev";
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/gtk+/${stdenv.lib.versions.majorMinor version}/gtk+-${version}.tar.xz";
-    sha256 = "1wqxkd3xnqwihcawncp9mkf9bv5a5fg5i4ahm6klpl782vvnkb1d";
+    sha256 = "0llgq2adzn9p3bfq9rv2dhscmvzs35jp3glrfvy3vs1mrpknmsmf";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/gtksourceview/4.x.nix b/pkgs/development/libraries/gtksourceview/4.x.nix
index 1a80a1b6fac..565b7f782d5 100644
--- a/pkgs/development/libraries/gtksourceview/4.x.nix
+++ b/pkgs/development/libraries/gtksourceview/4.x.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gtksourceview";
-  version = "4.6.0";
+  version = "4.6.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtksourceview/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "11csdnb5xj1gkn1shynp3jdsfhhi7ks3apgmavfan0p6n85f64sc";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0x7q9lwgrc4kkciy7vgwd80v2ji7plyqiqbvkvx2yqarmfkqgx33";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix
index 823c123d52a..8110f13d14c 100644
--- a/pkgs/development/libraries/harfbuzz/default.nix
+++ b/pkgs/development/libraries/harfbuzz/default.nix
@@ -1,27 +1,34 @@
-{ stdenv, fetchurl, pkgconfig, glib, freetype, cairo, libintl
+{ stdenv, fetchFromGitHub, pkgconfig, glib, freetype, cairo, libintl
+, meson, ninja
+, gobject-introspection
 , icu, graphite2, harfbuzz # The icu variant uses and propagates the non-icu one.
 , ApplicationServices, CoreText
 , withCoreText ? false
 , withIcu ? false # recommended by upstream as default, but most don't needed and it's big
 , withGraphite2 ? true # it is small and major distros do include it
-, python
+, python3
+, gtk-doc, docbook-xsl-nons, docbook_xml_dtd_43
 }:
 
 let
-  version = "2.6.7";
+  version = "2.7.1";
   inherit (stdenv.lib) optional optionals optionalString;
+  mesonFeatureFlag = opt: b:
+    "-D${opt}=${if b then "enabled" else "disabled"}";
 in
 
 stdenv.mkDerivation {
   name = "harfbuzz${optionalString withIcu "-icu"}-${version}";
 
-  src = fetchurl {
-    url = "https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${version}.tar.xz";
-    sha256 = "065jg6s8xix45s4msj0l2r0iycw5yyyjdylripv7pyfzdk883r29";
+  src = fetchFromGitHub {
+    owner  = "harfbuzz";
+    repo   = "harfbuzz";
+    rev    = version;
+    sha256 = "172jmwp666xbs6yy1pc2495gnkz8xw11b8zkz3j19jxlvvp4mxcs";
   };
 
   postPatch = ''
-    patchShebangs src/gen-def.py
+    patchShebangs src/*.py
     patchShebangs test
   '' + stdenv.lib.optionalString stdenv.isDarwin ''
     # ApplicationServices.framework headers have cast-align warnings.
@@ -29,17 +36,26 @@ stdenv.mkDerivation {
       --replace '#pragma GCC diagnostic error   "-Wcast-align"' ""
   '';
 
-  outputs = [ "out" "dev" ];
+  outputs = [ "out" "dev" "devdoc" ];
   outputBin = "dev";
 
-  configureFlags = [
-    # not auto-detected by default
-    "--with-graphite2=${if withGraphite2 then "yes" else "no"}"
-    "--with-icu=${if withIcu then "yes" else "no"}"
-  ]
-    ++ stdenv.lib.optional withCoreText "--with-coretext=yes";
+  mesonFlags = [
+    (mesonFeatureFlag "graphite" withGraphite2)
+    (mesonFeatureFlag "icu" withIcu)
+    (mesonFeatureFlag "coretext" withCoreText)
+  ];
 
-  nativeBuildInputs = [ pkgconfig libintl ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    gobject-introspection
+    libintl
+    pkgconfig
+    python3
+    gtk-doc
+    docbook-xsl-nons
+    docbook_xml_dtd_43
+  ];
 
   buildInputs = [ glib freetype cairo ] # recommended by upstream
     ++ stdenv.lib.optionals withCoreText [ ApplicationServices CoreText ];
@@ -48,11 +64,10 @@ stdenv.mkDerivation {
     ++ optional withGraphite2 graphite2
     ++ optionals withIcu [ icu harfbuzz ];
 
-  checkInputs = [ python ];
-  doInstallCheck = false; # fails, probably a bug
+  doCheck = true;
 
   # Slightly hacky; some pkgs expect them in a single directory.
-  postInstall = optionalString withIcu ''
+  postFixup = optionalString withIcu ''
     rm "$out"/lib/libharfbuzz.* "$dev/lib/pkgconfig/harfbuzz.pc"
     ln -s {'${harfbuzz.out}',"$out"}/lib/libharfbuzz.la
     ln -s {'${harfbuzz.dev}',"$dev"}/lib/pkgconfig/harfbuzz.pc
@@ -64,12 +79,9 @@ stdenv.mkDerivation {
 
   meta = with stdenv.lib; {
     description = "An OpenType text shaping engine";
-    homepage = "http://www.freedesktop.org/wiki/Software/HarfBuzz";
-    downloadPage = "https://www.freedesktop.org/software/harfbuzz/release/";
+    homepage = "https://harfbuzz.github.io/";
     maintainers = [ maintainers.eelco ];
     license = licenses.mit;
     platforms = with platforms; linux ++ darwin;
-    inherit version;
-    updateWalker = true;
   };
 }
diff --git a/pkgs/development/libraries/hivex/default.nix b/pkgs/development/libraries/hivex/default.nix
index 113a49138e1..d0afea119df 100644
--- a/pkgs/development/libraries/hivex/default.nix
+++ b/pkgs/development/libraries/hivex/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "hivex";
-  version = "1.3.18";
+  version = "1.3.19";
 
   src = fetchurl {
     url = "http://libguestfs.org/download/hivex/${pname}-${version}.tar.gz";
-    sha256 = "0ibl186l6rd9qj4rqccfwbg1nnx6z07vspkhk656x6zav67ph7la";
+    sha256 = "0qppahpf7jq950nf8ial47h90nyqgnsffsj3zgdjjwkn958wq0ji";
   };
 
   patches = [ ./hivex-syms.patch ];
diff --git a/pkgs/development/libraries/hpx/default.nix b/pkgs/development/libraries/hpx/default.nix
index 3ced1c121c6..b6d6b688752 100644
--- a/pkgs/development/libraries/hpx/default.nix
+++ b/pkgs/development/libraries/hpx/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hpx";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "STEllAR-GROUP";
     repo = "hpx";
     rev = version;
-    sha256 = "0yjsrb11hlfwbiw0xi71ami9nrvz6jwj160h9qgl50icd79ngn46";
+    sha256 = "10hgjavhvn33y3k5j3l1326x13bxffghg2arxjrh7i7zd3qprfv5";
   };
 
   buildInputs = [ boost hwloc gperftools ];
diff --git a/pkgs/development/libraries/hunspell/dictionaries.nix b/pkgs/development/libraries/hunspell/dictionaries.nix
index a330691c6a5..2cdc30109d9 100644
--- a/pkgs/development/libraries/hunspell/dictionaries.nix
+++ b/pkgs/development/libraries/hunspell/dictionaries.nix
@@ -754,4 +754,33 @@ in rec {
     readmeFile = "README_sk.txt";
     license = with stdenv.lib.licenses; [ gpl2 lgpl21 mpl11 ];
   };
+
+  /* DANISH */
+
+  da_DK = da-dk;
+  da-dk = mkDict rec {
+    name = "hunspell-dict-da-dk-${version}";
+    version = "2.5.137";
+
+    src = fetchurl {
+      url = "https://stavekontrolden.dk/dictionaries/da_DK/da_DK-${version}.oxt";
+      sha256 = "16y0smkg1mq0133r1fbw5ak6s2xw39281knk5ivhanakayq789qx";
+    };
+
+    shortName = "da-dk";
+    shortDescription = "Danish (Danmark)";
+    dictFileName = "da_DK";
+    readmeFile = "README_da_DK.txt";
+    nativeBuildInputs = [ unzip ];
+    unpackCmd = ''
+      unzip $src ${dictFileName}.dic ${dictFileName}.aff ${readmeFile} -d ${dictFileName}
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Hunspell dictionary for Danish (Denmark) from Stavekontrolden";
+      homepage = "https://github.com/jeppebundsgaard/stavekontrolden";
+      license = with stdenv.lib.licenses; [ gpl2Only lgpl21Only mpl11 ];
+      maintainers = with maintainers; [ louisdk1 ];
+    };
+  };
 }
diff --git a/pkgs/development/libraries/igraph/default.nix b/pkgs/development/libraries/igraph/default.nix
index 7f494e8bddc..6a55359e168 100644
--- a/pkgs/development/libraries/igraph/default.nix
+++ b/pkgs/development/libraries/igraph/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     homepage = "https://igraph.org/";
     license = lib.licenses.gpl2;
     # NB: Known to fail tests on aarch64.
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" ] ++ lib.platforms.darwin;
     maintainers = [ lib.maintainers.MostAwesomeDude ];
   };
 }
diff --git a/pkgs/development/libraries/ilmbase/cross.patch b/pkgs/development/libraries/ilmbase/cross.patch
deleted file mode 100644
index 207a440a0d8..00000000000
--- a/pkgs/development/libraries/ilmbase/cross.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From: Helmut Grohne <>
-Subject: compile build tools with the build architecture compiler
-
-Patch-Source: https://github.com/openexr/openexr/issues/221
-
-Index: ilmbase-2.2.0/configure.ac
-===================================================================
---- ilmbase-2.2.0.orig/configure.ac
-+++ ilmbase-2.2.0/configure.ac
-@@ -28,6 +28,7 @@
- AC_PROG_LN_S
- AC_PROG_LIBTOOL
- AC_PROG_MAKE_SET
-+AX_PROG_CXX_FOR_BUILD
- 
- dnl
- dnl PKGCONFIG preparations
-Index: ilmbase-2.2.0/Half/Makefile.am
-===================================================================
---- ilmbase-2.2.0.orig/Half/Makefile.am
-+++ ilmbase-2.2.0/Half/Makefile.am
-@@ -17,9 +17,11 @@
- 
- CLEANFILES = eLut eLut.h toFloat toFloat.h
- 
--eLut_SOURCES = eLut.cpp
-+eLut$(EXEEXT): eLut.cpp
-+	$(CXX_FOR_BUILD) $(CXXFLAGS_FOR_BUILD) $< -o $@
- 
--toFloat_SOURCES = toFloat.cpp
-+toFloat$(EXEEXT): toFloat.cpp
-+	$(CXX_FOR_BUILD) $(CXXFLAGS_FOR_BUILD) $< -o $@
- 
- eLut.h:	eLut
- 	./eLut > eLut.h
diff --git a/pkgs/development/libraries/ilmbase/default.nix b/pkgs/development/libraries/ilmbase/default.nix
index 9d2479c2e0b..68bd677cf77 100644
--- a/pkgs/development/libraries/ilmbase/default.nix
+++ b/pkgs/development/libraries/ilmbase/default.nix
@@ -1,7 +1,7 @@
 { stdenv
+, lib
 , buildPackages
 , cmake
-, libtool
 , openexr
 }:
 
@@ -11,22 +11,23 @@ stdenv.mkDerivation rec {
 
   # the project no longer provides separate tarballs. We may even want to merge
   # the ilmbase package into openexr in the future.
-  src = openexr.src;
-
-  sourceRoot = "source/IlmBase";
+  inherit (openexr) src patches;
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ cmake libtool ];
+  nativeBuildInputs = [ cmake ];
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
-  patches = [ ./cross.patch ];
-
   # fails 1 out of 1 tests with
   # "lt-ImathTest: testBoxAlgo.cpp:892: void {anonymous}::boxMatrixTransform(): Assertion `b21 == b2' failed"
   # at least on i686. spooky!
   doCheck = stdenv.isx86_64;
 
+  preConfigure = ''
+    # Need to cd after patches for openexr patches to apply.
+    cd IlmBase
+  '';
+
   meta = with stdenv.lib; {
     description = " A library for 2D/3D vectors and matrices and other mathematical objects, functions and data types for computer graphics";
     homepage = "https://www.openexr.com/";
diff --git a/pkgs/development/libraries/imlib2/default.nix b/pkgs/development/libraries/imlib2/default.nix
index 36b1063531e..458b3d29d52 100644
--- a/pkgs/development/libraries/imlib2/default.nix
+++ b/pkgs/development/libraries/imlib2/default.nix
@@ -12,11 +12,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "imlib2";
-  version = "1.6.1";
+  version = "1.7.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/enlightenment/${pname}-${version}.tar.bz2";
-    sha256 = "0v8n3dswx7rxqfd0q03xwc7j2w1mv8lv18rdxv487a1xw5vklfad";
+    sha256 = "0zdk4afdrrr1539f2q15zja19j4wwfmpswzws2ffgflcnhywlxhr";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/intel-gmmlib/default.nix b/pkgs/development/libraries/intel-gmmlib/default.nix
index 23b26c9a890..89305baaee8 100644
--- a/pkgs/development/libraries/intel-gmmlib/default.nix
+++ b/pkgs/development/libraries/intel-gmmlib/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-gmmlib";
-  version = "20.1.1";
+  version = "20.2.5";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "gmmlib";
     rev    = "${pname}-${version}";
-    sha256 = "0k130yiq8n34ppddpgl7kwq5w2y7n49jxiyk7x52y773m97xd6y1";
+    sha256 = "0jg3kc74iqmbclx77a6dp4h85va8wi210x4zf5jypiq35c57r8hh";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -20,6 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     description = "Intel Graphics Memory Management Library";
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ jfrankenau ];
+    maintainers = with maintainers; [ danieldk ];
   };
 }
diff --git a/pkgs/development/libraries/intel-media-driver/default.nix b/pkgs/development/libraries/intel-media-driver/default.nix
index 366e34ddf4d..c43787c29dd 100644
--- a/pkgs/development/libraries/intel-media-driver/default.nix
+++ b/pkgs/development/libraries/intel-media-driver/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-media-driver";
-  version = "20.1.1";
+  version = "20.2.0";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "media-driver";
     rev    = "intel-media-${version}";
-    sha256 = "1mww20c9r7a57njqa2835ayjvk46lrv2yks9a2y8i0s5qzdi8m1i";
+    sha256 = "02a9wm7cz0nkpyfwic4a0dfm9bx1d2sybgh5rv0c618pl41mla33";
   };
 
   cmakeFlags = [
diff --git a/pkgs/development/libraries/intel-media-sdk/default.nix b/pkgs/development/libraries/intel-media-sdk/default.nix
index a49320fef49..83d901780c5 100644
--- a/pkgs/development/libraries/intel-media-sdk/default.nix
+++ b/pkgs/development/libraries/intel-media-sdk/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-media-sdk";
-  version = "20.1.1";
+  version = "20.2.1";
 
   src = fetchurl {
     url = "https://github.com/Intel-Media-SDK/MediaSDK/archive/intel-mediasdk-${version}.tar.gz";
-    sha256 = "1p13b4abslq31pbgqf0bzs2ixns85yfdsm94326h2vcg0q7hqc24";
+    sha256 = "0m3ipfdknpgrdwiywlinl4sfkfrvyv7wmq1j83pmbr54z067sgg1";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/development/libraries/itk/4.x.nix b/pkgs/development/libraries/itk/4.x.nix
index cd8e70a9976..112b77650d2 100644
--- a/pkgs/development/libraries/itk/4.x.nix
+++ b/pkgs/development/libraries/itk/4.x.nix
@@ -1,11 +1,14 @@
-{ stdenv, fetchurl, cmake, libX11, libuuid, xz, vtk_7 }:
+{ stdenv, fetchFromGitHub, cmake, libX11, libuuid, xz, vtk_7, Cocoa }:
 
 stdenv.mkDerivation rec {
-  name = "itk-4.13.2";
+  pname = "itk";
+  version = "4.13.3";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/itk/InsightToolkit-4.13.2.tar.xz";
-    sha256 = "19cgfpd63gqrvc3m27m394gy2d7w79g5y6lvznb5qqr49lihbgns";
+  src = fetchFromGitHub {
+    owner = "InsightSoftwareConsortium";
+    repo = "ITK";
+    rev = "v${version}";
+    sha256 = "067vkh39jxcvyvn69qjh4vi3wa7vdvm9m6qsg3jmnmm7gzw0kjlm";
   };
 
   cmakeFlags = [
@@ -22,11 +25,11 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   nativeBuildInputs = [ cmake xz ];
-  buildInputs = [ libX11 libuuid vtk_7 ];
+  buildInputs = [ libX11 libuuid vtk_7 ] ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa ];
 
   meta = {
     description = "Insight Segmentation and Registration Toolkit";
-    homepage = "http://www.itk.org/";
+    homepage = "https://www.itk.org/";
     license = stdenv.lib.licenses.asl20;
     maintainers = with stdenv.lib.maintainers; [viric];
     platforms = with stdenv.lib.platforms; linux ++ darwin;
diff --git a/pkgs/development/libraries/itk/default.nix b/pkgs/development/libraries/itk/default.nix
index 84dedfa0b3b..1288242faf2 100644
--- a/pkgs/development/libraries/itk/default.nix
+++ b/pkgs/development/libraries/itk/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "itk";
-  version = "5.1.0";
+  version = "5.1.1";
 
   src = fetchFromGitHub {
     owner = "InsightSoftwareConsortium";
     repo = "ITK";
     rev = "v${version}";
-    sha256 = "0rvkp00xj1js60021jv2ydyl74wvbyb205gm9d7hf8gy2q456hgl";
+    sha256 = "1z7rmqrhgl7hfb3d0077kvp8vpi05r2zk3qyqzmv7bzbal5sqqhv";
   };
 
   cmakeFlags = [
diff --git a/pkgs/development/libraries/jabcode/default.nix b/pkgs/development/libraries/jabcode/default.nix
new file mode 100644
index 00000000000..c875e4a3943
--- /dev/null
+++ b/pkgs/development/libraries/jabcode/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, fetchFromGitHub
+, lib
+, subproject ? "library" # one of "library", "reader" or  "writer"
+, zlib, libpng, libtiff
+, jabcode 
+}:
+let
+  subdir = lib.getAttr subproject {
+    "library" = "jabcode";
+    "reader" = "jabcodeReader";
+    "writer" = "jabcodeWriter";
+  };
+in stdenv.mkDerivation rec {
+  pname = "jabcode-${subproject}";
+  version = "git-2020-05-13";
+  src = fetchFromGitHub {
+    repo = "jabcode";
+    owner = "jabcode";
+    rev = "a7c25d4f248078f257b014e31c791bfcfcd083e1";
+    sha256 = "1c4cv9b0d7r4bxzkwzdv9h651ziq822iya6fbyizm57n1nzdkk4s";
+  };
+
+  nativeBuildInputs =
+    [ zlib libpng libtiff ]
+    ++ lib.optionals (subproject != "library") [ jabcode ];
+
+  preConfigure = "cd src/${subdir}";
+
+  installPhase = if subproject == "library" then ''
+    mkdir -p $out/lib
+    cp build/* $out/lib
+  '' else ''
+    mkdir -p $out/bin
+    cp -RT bin $out/bin
+  '';
+
+  meta = with lib; {
+    description = "A high-capacity 2D color bar code (${subproject})";
+    longDescription = "JAB Code (Just Another Bar Code) is a high-capacity 2D color bar code, which can encode more data than traditional black/white (QR) codes. This is the ${subproject} part.";
+    homepage = "https://jabcode.org/";
+    license = licenses.lgpl21;
+    maintainers = [ maintainers.xaverdh ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/java/commons/lang/default.nix b/pkgs/development/libraries/java/commons/lang/default.nix
index 96d2a76df01..bd0f7c273e7 100644
--- a/pkgs/development/libraries/java/commons/lang/default.nix
+++ b/pkgs/development/libraries/java/commons/lang/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "3.10";
+  version = "3.11";
   pname = "commons-lang";
 
   src = fetchurl {
     url    = "mirror://apache/commons/lang/binaries/commons-lang3-${version}-bin.tar.gz";
-    sha256 = "144057jrx1jral6dnnb039h3k8rnrx0nj3ii428s725jfhazg68f";
+    sha256 = "08w7zg9v48rlaq0n17dnph8jydz9srh1pl3ffs3xdfsg9a7axjm4";
   };
 
   installPhase = ''
diff --git a/pkgs/development/libraries/java/hsqldb/default.nix b/pkgs/development/libraries/java/hsqldb/default.nix
index d9139ec1d82..88f32866b0d 100644
--- a/pkgs/development/libraries/java/hsqldb/default.nix
+++ b/pkgs/development/libraries/java/hsqldb/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "hsqldb";
-  version = "2.5.0";
+  version = "2.5.1";
   underscoreMajMin = stdenv.lib.strings.replaceChars ["."] ["_"] (stdenv.lib.versions.majorMinor version);
 
   src = fetchurl {
     url = "mirror://sourceforge/project/hsqldb/hsqldb/hsqldb_${underscoreMajMin}/hsqldb-${version}.zip";
-    sha256 = "0s64w7qq5vayrzcmdhrdfmd6iqqv6x6fpiq9lpy2gva3dckv3q6j";
+    sha256 = "0yd9px85y036bp3q1assj3fgaykxrwnhnc7cbjgic39cykfy5hrg";
   };
 
   nativeBuildInputs = [ unzip makeWrapper ];
diff --git a/pkgs/development/libraries/java/jzmq/default.nix b/pkgs/development/libraries/java/jzmq/default.nix
deleted file mode 100644
index 5bc0f15b205..00000000000
--- a/pkgs/development/libraries/java/jzmq/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, zeromq3, jdk }:
-
-stdenv.mkDerivation rec {
-  pname = "jzmq";
-  version = "3.1.0";
-
-  src = fetchFromGitHub {
-    owner = "zeromq";
-    repo = "jzmq";
-    rev = "v${version}";
-    sha256 = "1wlzs604mgmqmrgpk4pljx2nrlxzdfi3r8k59qlm90fx8qkqkc63";
-  };
-
-  nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ zeromq3 jdk ];
-
-  preConfigure = ''
-    ${if stdenv.hostPlatform.system == "x86_64-darwin" then
-      '' sed -i -e 's~/Headers~/include~' -e 's~_JNI_INC_SUBDIRS=\".*\"~_JNI_INC_SUBDIRS=\"darwin\"~' configure
-      '' else ""}
-  '';
-
-  meta = {
-    homepage = "http://www.zeromq.org";
-    description = "Java bindings for ZeroMQ";
-    platforms = stdenv.lib.platforms.unix;
-    license = stdenv.lib.licenses.lgpl3;
-    maintainers = [ stdenv.lib.maintainers.vizanto ];
-  };
-}
diff --git a/pkgs/development/libraries/java/lombok/default.nix b/pkgs/development/libraries/java/lombok/default.nix
index f48c4821d92..5928d99b6c2 100644
--- a/pkgs/development/libraries/java/lombok/default.nix
+++ b/pkgs/development/libraries/java/lombok/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "lombok-1.18.10";
+  name = "lombok-1.18.12";
 
   src = fetchurl {
     url = "https://projectlombok.org/downloads/${name}.jar";
-    sha256 = "1ymjwxg01dq8qq89hx23yvk5h46hwfb8ihbqbvabmz1vh9afjdi8";
+    sha256 = "01jl6i5wzjxyk36fcq6ji90x9h143gvnwhv86cbkqaxhxh41af29";
   };
 
   buildCommand = ''
diff --git a/pkgs/development/libraries/jbig2dec/default.nix b/pkgs/development/libraries/jbig2dec/default.nix
index 22d38a080ca..a6eb5642395 100644
--- a/pkgs/development/libraries/jbig2dec/default.nix
+++ b/pkgs/development/libraries/jbig2dec/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     patchShebangs test_jbig2dec.py
   '';
 
-  buildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook ];
 
   checkInputs = [ python3 ];
   doCheck = true;
diff --git a/pkgs/development/libraries/json-c/default.nix b/pkgs/development/libraries/json-c/default.nix
index c7a9b3c4a12..164f7c44ba9 100644
--- a/pkgs/development/libraries/json-c/default.nix
+++ b/pkgs/development/libraries/json-c/default.nix
@@ -1,24 +1,24 @@
-{ stdenv, fetchurl, fetchpatch, autoconf }:
+{ stdenv, fetchurl, fetchpatch, cmake }:
 
 stdenv.mkDerivation rec {
-  name = "json-c-0.13.1";
+  name = "json-c-0.14";
   src = fetchurl {
     url    = "https://s3.amazonaws.com/json-c_releases/releases/${name}-nodoc.tar.gz";
-    sha256 = "0ch1v18wk703bpbyzj7h1mkwvsw4rw4qdwvgykscypvqq10678ll";
+    sha256 = "1yia8417qljmczs9w3rn4c4i2p2iywq098pgrj11s81599j4x4cr";
   };
 
   patches = [
     # https://nvd.nist.gov/vuln/detail/CVE-2020-12762
     (fetchpatch {
       name = "CVE-2020-12762.patch";
-      url = "https://github.com/json-c/json-c/commit/865b5a65199973bb63dff8e47a2f57e04fec9736.patch";
-      sha256 = "1g5afk4khhm1sb70xrva1pyznshcw3ipzp1g5z60dpzxy303pp6h";
+      url = "https://github.com/json-c/json-c/commit/5d6fa331418d49f1bd488553fd1cfa9ab023fabb.patch";
+      sha256 = "0aar7kgbycqxnhh0lrr61adfbb903nbapalhs5i6h8anxwy1ylcm";
     })
   ];
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ autoconf ];  # for autoheader
+  nativeBuildInputs = [ cmake ];
 
   meta = with stdenv.lib; {
     description = "A JSON implementation in C";
diff --git a/pkgs/development/libraries/jsoncpp/default.nix b/pkgs/development/libraries/jsoncpp/default.nix
index 155103af3c4..8635c1fb40d 100644
--- a/pkgs/development/libraries/jsoncpp/default.nix
+++ b/pkgs/development/libraries/jsoncpp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, python, fetchpatch }:
+{ stdenv, fetchFromGitHub, cmake, python, validatePkgConfig, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "jsoncpp";
@@ -28,10 +28,16 @@ stdenv.mkDerivation rec {
     export LD_LIBRARY_PATH="`pwd`/src/lib_json''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
   '';
 
-  nativeBuildInputs = [ cmake python ];
+  nativeBuildInputs = [ cmake python validatePkgConfig ];
 
-  # fix inverted sense in isAnyCharRequiredQuoting on arm. See: https://github.com/open-source-parsers/jsoncpp/pull/1120
-  patches = stdenv.lib.optionals (stdenv.isAarch64 || stdenv.isAarch32) [
+  patches = [
+    # Fix generation of pkg-config file (https://github.com/open-source-parsers/jsoncpp/pull/1199)
+    (fetchpatch {
+      url = "https://github.com/open-source-parsers/jsoncpp/commit/b05a21342a646a986b11c28ba6b19665756d21d2.patch";
+      sha256 = "0dn4cvvkcp9mnxbzyaqb49z6bv5yqsx1wlf1lyki1n2rni2hn63p";
+    })
+  ] ++ stdenv.lib.optionals (stdenv.isAarch64 || stdenv.isAarch32) [
+    # fix inverted sense in isAnyCharRequiredQuoting on arm. See: https://github.com/open-source-parsers/jsoncpp/pull/1120
     (fetchpatch {
       url = "https://github.com/open-source-parsers/jsoncpp/commit/9093358efae9e5981aa60013487fc7215f040a59.patch";
       sha256 = "1wiqp70sck2md14sfc0zdkblqk9750cl55ykf9d6b9vs1ifzzzq5";
diff --git a/pkgs/development/libraries/jxrlib/default.nix b/pkgs/development/libraries/jxrlib/default.nix
index e119c75ff8d..f0f5b9d7793 100644
--- a/pkgs/development/libraries/jxrlib/default.nix
+++ b/pkgs/development/libraries/jxrlib/default.nix
@@ -13,6 +13,12 @@ stdenv.mkDerivation rec {
     sha256 = "0rk3hbh00nw0wgbfbqk1szrlfg3yq7w6ar16napww3nrlm9cj65w";
   };
 
+  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+    substituteInPlace Makefile \
+      --replace '-shared' '-dynamiclib -undefined dynamic_lookup' \
+      --replace '.so' '.dylib'
+  '';
+
   nativeBuildInputs = [ python ];
 
   makeFlags = [ "DIR_INSTALL=$(out)" "SHARED=1" ];
@@ -21,7 +27,7 @@ stdenv.mkDerivation rec {
     description = "Implementation of the JPEG XR image codec standard";
     homepage = "https://jxrlib.codeplex.com";
     license = licenses.bsd2;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ romildo ];
   };
 }
diff --git a/pkgs/development/libraries/kde-frameworks/default.nix b/pkgs/development/libraries/kde-frameworks/default.nix
index 1db37bc7879..02e25692ef1 100644
--- a/pkgs/development/libraries/kde-frameworks/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/default.nix
@@ -83,7 +83,7 @@ let
 
           in mkDerivation (args // {
             name = "${name}-${version}";
-            inherit meta outputs setupHook src;
+            inherit meta outputs setupHook src version;
           });
 
       };
@@ -112,6 +112,7 @@ let
       kitemmodels = callPackage ./kitemmodels.nix {};
       kitemviews = callPackage ./kitemviews.nix {};
       kplotting = callPackage ./kplotting.nix {};
+      kquickcharts = callPackage ./kquickcharts.nix {};
       kwayland = callPackage ./kwayland.nix {};
       kwidgetsaddons = callPackage ./kwidgetsaddons.nix {};
       kwindowsystem = callPackage ./kwindowsystem {};
@@ -146,10 +147,11 @@ let
       kbookmarks = callPackage ./kbookmarks.nix {};
       kcmutils = callPackage ./kcmutils {};
       kconfigwidgets = callPackage ./kconfigwidgets {};
+      kdav = callPackage ./kdav.nix {};
       kdeclarative = callPackage ./kdeclarative.nix {};
       kded = callPackage ./kded.nix {};
       kdesignerplugin = callPackage ./kdesignerplugin.nix {};
-      kdesu = callPackage ./kdesu.nix {};
+      kdesu = callPackage ./kdesu {};
       kdewebkit = callPackage ./kdewebkit.nix {};
       kemoticons = callPackage ./kemoticons.nix {};
       kglobalaccel = callPackage ./kglobalaccel.nix {};
diff --git a/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix
index 3a3f066ad33..645d05afc2b 100644
--- a/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix
@@ -1,9 +1,11 @@
-{ mkDerivation, lib, copyPathsToStore, cmake, pkgconfig }:
+{ mkDerivation, lib, cmake, pkgconfig }:
 
 mkDerivation {
   name = "extra-cmake-modules";
 
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./nix-lib-path.patch
+  ];
 
   outputs = [ "out" ];  # this package has no runtime components
 
diff --git a/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/series b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/series
deleted file mode 100644
index b4569e50a5f..00000000000
--- a/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/series
+++ /dev/null
@@ -1 +0,0 @@
-nix-lib-path.patch
diff --git a/pkgs/development/libraries/kde-frameworks/fetch.sh b/pkgs/development/libraries/kde-frameworks/fetch.sh
index b7e6d781471..839b2eb466d 100644
--- a/pkgs/development/libraries/kde-frameworks/fetch.sh
+++ b/pkgs/development/libraries/kde-frameworks/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/frameworks/5.68/ )
+WGET_ARGS=(https://download.kde.org/stable/frameworks/5.73/)
diff --git a/pkgs/development/libraries/kde-frameworks/kauth/default.nix b/pkgs/development/libraries/kde-frameworks/kauth/default.nix
index c94c8b91ecd..0a513d6eed9 100644
--- a/pkgs/development/libraries/kde-frameworks/kauth/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kauth/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore, propagate,
+  mkDerivation, lib, propagate,
   extra-cmake-modules, kcoreaddons, polkit-qt, qttools
 }:
 
@@ -9,7 +9,9 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ polkit-qt qttools ];
   propagatedBuildInputs = [ kcoreaddons ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./cmake-install-paths.patch
+  ];
   # library stores reference to plugin path,
   # separating $out from $bin would create a reference cycle
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/kauth/series b/pkgs/development/libraries/kde-frameworks/kauth/series
deleted file mode 100644
index d2689425c38..00000000000
--- a/pkgs/development/libraries/kde-frameworks/kauth/series
+++ /dev/null
@@ -1 +0,0 @@
-cmake-install-paths.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kcmutils/kcmutils-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks/kcmutils/0001-kcmutils-follow-symlinks.patch
index cc041b9aa3b..32adca6d2e0 100644
--- a/pkgs/development/libraries/kde-frameworks/kcmutils/kcmutils-follow-symlinks.patch
+++ b/pkgs/development/libraries/kde-frameworks/kcmutils/0001-kcmutils-follow-symlinks.patch
@@ -1,8 +1,17 @@
+From 4d5dcc309fba688aa1db8dd915a0abdf07f61e81 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Mon, 13 Jul 2020 11:23:36 -0500
+Subject: [PATCH] kcmutils follow symlinks
+
+---
+ src/kpluginselector.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
 diff --git a/src/kpluginselector.cpp b/src/kpluginselector.cpp
-index 137c865..097ab75 100644
+index 46deef5..2eacb9f 100644
 --- a/src/kpluginselector.cpp
 +++ b/src/kpluginselector.cpp
-@@ -303,7 +303,7 @@ void KPluginSelector::addPlugins(const QString &componentName,
+@@ -309,7 +309,7 @@ void KPluginSelector::addPlugins(const QString &componentName,
      QStringList desktopFileNames;
      const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, componentName + QStringLiteral("/kpartplugins"), QStandardPaths::LocateDirectory);
      for (const QString &dir : dirs) {
@@ -11,3 +20,6 @@ index 137c865..097ab75 100644
          while (it.hasNext()) {
              desktopFileNames.append(it.next());
          }
+-- 
+2.25.4
+
diff --git a/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix b/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
index 0c661dcdd48..ab14529be01 100644
--- a/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules,
   kconfigwidgets, kcoreaddons, kdeclarative, ki18n, kiconthemes, kitemviews,
   kpackage, kservice, kxmlgui, qtdeclarative,
@@ -14,5 +14,7 @@ mkDerivation {
     qtdeclarative
   ];
   propagatedBuildInputs = [ kconfigwidgets kservice ];
-  patches = (copyPathsToStore (lib.readPathsFromFile ./. ./series));
+  patches = [
+    ./0001-kcmutils-follow-symlinks.patch
+  ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kcmutils/kcmutils-debug-module-loader.patch b/pkgs/development/libraries/kde-frameworks/kcmutils/kcmutils-debug-module-loader.patch
deleted file mode 100644
index f966064f929..00000000000
--- a/pkgs/development/libraries/kde-frameworks/kcmutils/kcmutils-debug-module-loader.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: kcmutils-5.33.0/src/kcmoduleloader.cpp
-===================================================================
---- kcmutils-5.33.0.orig/src/kcmoduleloader.cpp
-+++ kcmutils-5.33.0/src/kcmoduleloader.cpp
-@@ -95,7 +95,7 @@ KCModule *KCModuleLoader::loadModule(const KCModuleInfo &mod, ErrorReporting rep
-         KPluginLoader loader(KPluginLoader::findPlugin(QLatin1String("kcms/") + mod.service()->library()));
-         KPluginFactory* factory = loader.factory();
-         if (!factory) {
--            qWarning() << "Couldn't load plugin:" << loader.errorString();
-+            qWarning() << "Error loading KCM plugin" << mod.service()->library() << loader.errorString();
-         } else {
-             std::unique_ptr<KQuickAddons::ConfigModule> cm(factory->create<KQuickAddons::ConfigModule>(nullptr, args2));
-             if (!cm) {
diff --git a/pkgs/development/libraries/kde-frameworks/kcmutils/series b/pkgs/development/libraries/kde-frameworks/kcmutils/series
deleted file mode 100644
index f2c22554a45..00000000000
--- a/pkgs/development/libraries/kde-frameworks/kcmutils/series
+++ /dev/null
@@ -1,2 +0,0 @@
-kcmutils-follow-symlinks.patch
-kcmutils-debug-module-loader.patch
diff --git a/pkgs/applications/kde/kdav.nix b/pkgs/development/libraries/kde-frameworks/kdav.nix
index 800c92511de..a03cca3fdf2 100644
--- a/pkgs/applications/kde/kdav.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdav.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, kdepimTeam,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kcoreaddons, kio, qtxmlpatterns,
 }:
@@ -8,7 +8,6 @@ mkDerivation {
   name = "kdav";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
-    maintainers = kdepimTeam;
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ kcoreaddons kio qtxmlpatterns ];
diff --git a/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix b/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
index 7e3de9d4d14..5eced883287 100644
--- a/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   docbook_xml_dtd_45, extra-cmake-modules, kdoctools,
   kauth, karchive, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kcrash,
   kdbusaddons, kded, kdesignerplugin, kemoticons, kglobalaccel, kguiaddons,
@@ -11,7 +11,9 @@
 mkDerivation {
   name = "kdelibs4support";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./nix-kde-include-dir.patch
+  ];
   setupHook = ./setup-hook.sh;
   nativeBuildInputs = [ extra-cmake-modules qttools ];
   propagatedNativeBuildInputs = [ kdoctools ];
diff --git a/pkgs/development/libraries/kde-frameworks/kdelibs4support/series b/pkgs/development/libraries/kde-frameworks/kdelibs4support/series
deleted file mode 100644
index 9b08ab20877..00000000000
--- a/pkgs/development/libraries/kde-frameworks/kdelibs4support/series
+++ /dev/null
@@ -1 +0,0 @@
-nix-kde-include-dir.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kdesu.nix b/pkgs/development/libraries/kde-frameworks/kdesu/default.nix
index df60511b511..cd7055c4ea8 100644
--- a/pkgs/development/libraries/kde-frameworks/kdesu.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdesu/default.nix
@@ -11,4 +11,5 @@ mkDerivation {
   buildInputs = [ kcoreaddons ki18n kpty kservice qtbase ];
   propagatedBuildInputs = [ kpty ];
   outputs = [ "out" "dev" ];
+  patches = [ ./kdesu-search-for-wrapped-daemon-first.patch ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kdesu/kdesu-search-for-wrapped-daemon-first.patch b/pkgs/development/libraries/kde-frameworks/kdesu/kdesu-search-for-wrapped-daemon-first.patch
new file mode 100644
index 00000000000..f82bf828e8e
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kdesu/kdesu-search-for-wrapped-daemon-first.patch
@@ -0,0 +1,38 @@
+From 01af4d2a098e5819c09bca37568941dcd4b89d0b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
+Date: Thu, 16 Jul 2020 13:21:42 -0300
+Subject: [PATCH] Search for the daemon first in /run/wrappers/bin
+
+If looking first in libexec, the eventually wrapped one in
+/run/wrappers/bin can not be found.
+---
+ src/client.cpp | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/src/client.cpp b/src/client.cpp
+index 44fbacd..6b5abf5 100644
+--- a/src/client.cpp
++++ b/src/client.cpp
+@@ -378,11 +378,14 @@ int KDEsuClient::stopServer()
+ 
+ static QString findDaemon()
+ {
+-    QString daemon = QFile::decodeName(CMAKE_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");
++        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.";
++            }
+         }
+     }
+     return daemon;
+-- 
+2.27.0
+
diff --git a/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix b/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
index 90a7116f42a..47831f0f5d9 100644
--- a/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules,
   attr, ebook_tools, exiv2, ffmpeg_3, karchive, kcoreaddons, ki18n, poppler, qtbase, qtmultimedia, taglib
 }:
@@ -12,5 +12,7 @@ mkDerivation {
     attr ebook_tools exiv2 ffmpeg_3 karchive kcoreaddons ki18n poppler qtbase qtmultimedia
     taglib
   ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./cmake-install-paths.patch
+  ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kfilemetadata/series b/pkgs/development/libraries/kde-frameworks/kfilemetadata/series
deleted file mode 100644
index d2689425c38..00000000000
--- a/pkgs/development/libraries/kde-frameworks/kfilemetadata/series
+++ /dev/null
@@ -1 +0,0 @@
-cmake-install-paths.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix b/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
index 8faac005f2a..76bf0fd0537 100644
--- a/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules,
   breeze-icons, karchive, kcoreaddons, kconfigwidgets, ki18n, kitemviews,
   qtbase, qtsvg, qttools,
@@ -8,7 +8,9 @@
 mkDerivation {
   name = "kiconthemes";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./default-theme-breeze.patch
+  ];
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     breeze-icons karchive kcoreaddons kconfigwidgets ki18n kitemviews
diff --git a/pkgs/development/libraries/kde-frameworks/kiconthemes/series b/pkgs/development/libraries/kde-frameworks/kiconthemes/series
deleted file mode 100644
index ab5cc8a3edb..00000000000
--- a/pkgs/development/libraries/kde-frameworks/kiconthemes/series
+++ /dev/null
@@ -1 +0,0 @@
-default-theme-breeze.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kinit/default.nix b/pkgs/development/libraries/kde-frameworks/kinit/default.nix
index 116f475e2f8..654f6e20604 100644
--- a/pkgs/development/libraries/kde-frameworks/kinit/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kinit/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore, writeScript,
+  mkDerivation, lib, writeScript,
   extra-cmake-modules, kdoctools,
   kconfig, kcrash, ki18n, kio, kparts, kservice, kwindowsystem, plasma-framework
 }:
diff --git a/pkgs/development/libraries/kde-frameworks/kinit/series b/pkgs/development/libraries/kde-frameworks/kinit/series
deleted file mode 100644
index 9195a4e8e6b..00000000000
--- a/pkgs/development/libraries/kde-frameworks/kinit/series
+++ /dev/null
@@ -1,3 +0,0 @@
-kinit-libpath.patch
-start_kdeinit-path.patch
-kdeinit-extra_libs.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kio/default.nix b/pkgs/development/libraries/kde-frameworks/kio/default.nix
index fee21a6a923..434496c7b9a 100644
--- a/pkgs/development/libraries/kde-frameworks/kio/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kio/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools, qttools,
   karchive, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons,
   kdbusaddons, ki18n, kiconthemes, kitemviews, kjobwidgets, knotifications,
@@ -21,5 +21,8 @@ mkDerivation {
     kxmlgui qtbase qttools solid
   ];
   outputs = [ "out" "dev" ];
-  patches = (copyPathsToStore (lib.readPathsFromFile ./. ./series));
+  patches = [
+    ./samba-search-path.patch
+    ./kio-debug-module-loader.patch
+  ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch b/pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch
index 3e18d304c30..d39ffbfde64 100644
--- a/pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch
+++ b/pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch
@@ -1,28 +1,14 @@
-Index: kio-5.17.0/src/core/ksambashare.cpp
-===================================================================
---- kio-5.17.0.orig/src/core/ksambashare.cpp
-+++ kio-5.17.0/src/core/ksambashare.cpp
-@@ -67,13 +67,18 @@ KSambaSharePrivate::~KSambaSharePrivate(
- 
+diff --git a/src/core/ksambashare.cpp b/src/core/ksambashare.cpp
+index 1895783..9fe7286 100644
+--- a/src/core/ksambashare.cpp
++++ b/src/core/ksambashare.cpp
+@@ -73,8 +73,7 @@ KSambaSharePrivate::~KSambaSharePrivate()
  bool KSambaSharePrivate::isSambaInstalled()
  {
--    if (QFile::exists(QStringLiteral("/usr/sbin/smbd"))
--            || QFile::exists(QStringLiteral("/usr/local/sbin/smbd"))) {
--        return true;
-+    const QByteArray pathEnv = qgetenv("PATH");
-+    if (!pathEnv.isEmpty()) {
-+        QLatin1Char pathSep(':');
-+        QStringList paths = QFile::decodeName(pathEnv).split(pathSep, QString::SkipEmptyParts);
-+        for (QStringList::iterator it = paths.begin(); it != paths.end(); ++it) {
-+            it->append(QStringLiteral("/smbd"));
-+            if (QFile::exists(*it)) {
-+                return true;
-+            }
-+        }
+     const bool daemonExists =
+-        !QStandardPaths::findExecutable(QStringLiteral("smbd"),
+-                                       {QStringLiteral("/usr/sbin/"), QStringLiteral("/usr/local/sbin/")}).isEmpty();
++        !QStandardPaths::findExecutable(QStringLiteral("smbd")).isEmpty();
+     if (!daemonExists) {
+         qCDebug(KIO_CORE_SAMBASHARE) << "KSambaShare: Could not find smbd";
      }
- 
--    //qDebug() << "Samba is not installed!";
--
-     return false;
- }
- 
diff --git a/pkgs/development/libraries/kde-frameworks/kio/series b/pkgs/development/libraries/kde-frameworks/kio/series
deleted file mode 100644
index 5330c40a330..00000000000
--- a/pkgs/development/libraries/kde-frameworks/kio/series
+++ /dev/null
@@ -1,2 +0,0 @@
-samba-search-path.patch
-kio-debug-module-loader.patch
diff --git a/pkgs/development/libraries/kde-frameworks/knewstuff.nix b/pkgs/development/libraries/kde-frameworks/knewstuff.nix
index df384648e6a..a6b811c0ad6 100644
--- a/pkgs/development/libraries/kde-frameworks/knewstuff.nix
+++ b/pkgs/development/libraries/kde-frameworks/knewstuff.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib, fetchpatch,
   extra-cmake-modules,
   attica, karchive, kcompletion, kconfig, kcoreaddons, ki18n, kiconthemes,
-  kio, kitemviews, kservice, ktextwidgets, kwidgetsaddons, kxmlgui, qtbase,
+  kio, kitemviews, kpackage, kservice, ktextwidgets, kwidgetsaddons, kxmlgui, qtbase,
   qtdeclarative, kirigami2,
 }:
 
@@ -12,6 +12,7 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     karchive kcompletion kconfig kcoreaddons ki18n kiconthemes kio kitemviews
+    kpackage
     ktextwidgets kwidgetsaddons qtbase qtdeclarative kirigami2
   ];
   propagatedBuildInputs = [ attica kservice kxmlgui ];
diff --git a/pkgs/development/libraries/kde-frameworks/kpackage/default.nix b/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
index 6779faa50cd..6bd42420b85 100644
--- a/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   karchive, kconfig, kcoreaddons, ki18n, qtbase,
 }:
@@ -9,5 +9,8 @@ mkDerivation {
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ karchive kconfig kcoreaddons ki18n qtbase ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./allow-external-paths.patch
+    ./qdiriterator-follow-symlinks.patch
+  ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kpackage/series b/pkgs/development/libraries/kde-frameworks/kpackage/series
deleted file mode 100644
index 9b7f076efc7..00000000000
--- a/pkgs/development/libraries/kde-frameworks/kpackage/series
+++ /dev/null
@@ -1,2 +0,0 @@
-allow-external-paths.patch
-qdiriterator-follow-symlinks.patch
diff --git a/pkgs/development/libraries/kde-frameworks/kquickcharts.nix b/pkgs/development/libraries/kde-frameworks/kquickcharts.nix
new file mode 100644
index 00000000000..5a06d4c1cad
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kquickcharts.nix
@@ -0,0 +1,15 @@
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  qtquickcontrols2,
+}:
+
+mkDerivation {
+  name = "kquickcharts";
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ qtquickcontrols2 ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/pkgs/development/libraries/kde-frameworks/krunner.nix b/pkgs/development/libraries/kde-frameworks/krunner.nix
index 826999f2f9b..990c3c4fdf9 100644
--- a/pkgs/development/libraries/kde-frameworks/krunner.nix
+++ b/pkgs/development/libraries/kde-frameworks/krunner.nix
@@ -1,17 +1,19 @@
 {
-  mkDerivation, lib,
+  mkDerivation, lib, fetchpatch,
   extra-cmake-modules,
   kconfig, kcoreaddons, ki18n, kio, kservice, plasma-framework, qtbase,
   qtdeclarative, solid, threadweaver, kwindowsystem
 }:
 
-mkDerivation {
-  name = "krunner";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [
-    kconfig kcoreaddons ki18n kio kservice qtdeclarative solid
-    threadweaver
-  ];
-  propagatedBuildInputs = [ plasma-framework qtbase kwindowsystem ];
-}
+let
+  self = mkDerivation {
+    name = "krunner";
+    meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+    nativeBuildInputs = [ extra-cmake-modules ];
+    buildInputs = [
+      kconfig kcoreaddons ki18n kio kservice qtdeclarative solid
+      threadweaver
+    ];
+    propagatedBuildInputs = [ plasma-framework qtbase kwindowsystem ];
+  };
+in self
diff --git a/pkgs/development/libraries/kde-frameworks/kservice/default.nix b/pkgs/development/libraries/kde-frameworks/kservice/default.nix
index 356e6537a4f..630582ecf76 100644
--- a/pkgs/development/libraries/kde-frameworks/kservice/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kservice/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   bison, extra-cmake-modules, flex,
   kconfig, kcoreaddons, kcrash, kdbusaddons, kdoctools, ki18n, kwindowsystem,
   qtbase, shared-mime-info,
@@ -15,5 +15,8 @@ mkDerivation {
   ];
   propagatedBuildInputs = [ kconfig kcoreaddons ];
   propagatedUserEnvPkgs = [ shared-mime-info ]; # for kbuildsycoca5
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./qdiriterator-follow-symlinks.patch
+    ./no-canonicalize-path.patch
+  ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kservice/series b/pkgs/development/libraries/kde-frameworks/kservice/series
deleted file mode 100644
index 3ce22dbd35a..00000000000
--- a/pkgs/development/libraries/kde-frameworks/kservice/series
+++ /dev/null
@@ -1,2 +0,0 @@
-qdiriterator-follow-symlinks.patch
-no-canonicalize-path.patch
\ No newline at end of file
diff --git a/pkgs/development/libraries/kde-frameworks/kwayland.nix b/pkgs/development/libraries/kde-frameworks/kwayland.nix
index c19836ed7a7..36e0ddc3f94 100644
--- a/pkgs/development/libraries/kde-frameworks/kwayland.nix
+++ b/pkgs/development/libraries/kde-frameworks/kwayland.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib, propagateBin,
   extra-cmake-modules,
-  qtbase, wayland, wayland-protocols
+  plasma-wayland-protocols, qtbase, wayland, wayland-protocols
 }:
 
 mkDerivation {
@@ -11,7 +11,7 @@ mkDerivation {
     broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ wayland wayland-protocols ];
+  buildInputs = [ plasma-wayland-protocols wayland wayland-protocols ];
   propagatedBuildInputs = [ qtbase ];
   setupHook = propagateBin; # XDG_CONFIG_DIRS
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix b/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
index c075adf0294..1e77b63f7c9 100644
--- a/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules,
   libpthreadstubs, libXdmcp,
   qtbase, qttools, qtx11extras
@@ -14,7 +14,9 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ libpthreadstubs libXdmcp qttools qtx11extras ];
   propagatedBuildInputs = [ qtbase ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./platform-plugins-path.patch
+  ];
   preConfigure = ''
     NIX_CFLAGS_COMPILE+=" -DNIXPKGS_QT_PLUGIN_PATH=\"''${!outputBin}/$qtPluginPrefix\""
   '';
diff --git a/pkgs/development/libraries/kde-frameworks/kwindowsystem/series b/pkgs/development/libraries/kde-frameworks/kwindowsystem/series
deleted file mode 100644
index 2cd02056ff8..00000000000
--- a/pkgs/development/libraries/kde-frameworks/kwindowsystem/series
+++ /dev/null
@@ -1 +0,0 @@
-platform-plugins-path.patch
diff --git a/pkgs/development/libraries/kde-frameworks/srcs.nix b/pkgs/development/libraries/kde-frameworks/srcs.nix
index ffea42c130f..070b11f6bfb 100644
--- a/pkgs/development/libraries/kde-frameworks/srcs.nix
+++ b/pkgs/development/libraries/kde-frameworks/srcs.nix
@@ -4,659 +4,667 @@
 
 {
   attica = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/attica-5.68.0.tar.xz";
-      sha256 = "9b4001a32831c9bae1d44161247acd5e6d3048ca2ece98c2c756c72a1464b9e9";
-      name = "attica-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/attica-5.73.0.tar.xz";
+      sha256 = "011240a6ff59e2b39bcf6d4ba6128e6e60c6318c185e7316a71cfec28e69c69a";
+      name = "attica-5.73.0.tar.xz";
     };
   };
   baloo = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/baloo-5.68.0.tar.xz";
-      sha256 = "4b599fb279ef92dc4f575847767c370f2633b27e884e372c3f7b92f08917865e";
-      name = "baloo-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/baloo-5.73.0.tar.xz";
+      sha256 = "887077ae3e090d673d2ffe7eb869a0ab6f5d14e9dae2dccd619e4689699a2dfe";
+      name = "baloo-5.73.0.tar.xz";
     };
   };
   bluez-qt = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/bluez-qt-5.68.0.tar.xz";
-      sha256 = "99889cac874820e83a32bee938b6cc8e25dca6a3013d4a589ac7b8f5d32b4224";
-      name = "bluez-qt-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/bluez-qt-5.73.0.tar.xz";
+      sha256 = "70264edb82b2627c0ec3740374b90b8402e0f432fe4a10650fa3d22191d8cfd4";
+      name = "bluez-qt-5.73.0.tar.xz";
     };
   };
   breeze-icons = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/breeze-icons-5.68.0.tar.xz";
-      sha256 = "750fff6560abfa85a2243187d14f1b8f1d3d1c4097d84cbf8c58d2f48102fe8d";
-      name = "breeze-icons-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/breeze-icons-5.73.0.tar.xz";
+      sha256 = "b6caff26f69008a3e0d53ae5fcfcf070b70ad1b17d407daecbbabeb6a606a08b";
+      name = "breeze-icons-5.73.0.tar.xz";
     };
   };
   extra-cmake-modules = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/extra-cmake-modules-5.68.0.tar.xz";
-      sha256 = "4d60869ca96a323b56f00b40c4728a70dfebe2132bbae040442a6a2ef90e2d6e";
-      name = "extra-cmake-modules-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/extra-cmake-modules-5.73.0.tar.xz";
+      sha256 = "c5e3ef0253f7d5ab3adf9185950e34fd620a3d5baaf3bcc15892f971fc3274c4";
+      name = "extra-cmake-modules-5.73.0.tar.xz";
     };
   };
   frameworkintegration = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/frameworkintegration-5.68.0.tar.xz";
-      sha256 = "5bb3c2e56b2c4c41d8a472363f80445fd3fc28656e6a3163d48ed826a133985a";
-      name = "frameworkintegration-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/frameworkintegration-5.73.0.tar.xz";
+      sha256 = "21ef7f1a6d48f9fb14ccac9bc37e803c92cf83c9e235a5ca8bd7eb08fd0a6fb3";
+      name = "frameworkintegration-5.73.0.tar.xz";
     };
   };
   kactivities = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kactivities-5.68.0.tar.xz";
-      sha256 = "1853135feb6adfec252e6fab0b1472450422afd5998a9a31d942e8672fbe7111";
-      name = "kactivities-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kactivities-5.73.0.tar.xz";
+      sha256 = "5098f2535175ac12da91568ca554e3f5d970ae05415da1a8ba17305cb8ac3a1a";
+      name = "kactivities-5.73.0.tar.xz";
     };
   };
   kactivities-stats = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kactivities-stats-5.68.0.tar.xz";
-      sha256 = "fb645db4685113dfd98834f48d8941529fee53d5e26ec5e36cfee8a9bfae97ae";
-      name = "kactivities-stats-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kactivities-stats-5.73.0.tar.xz";
+      sha256 = "df4b00c52e83608b2dd7345cd220143e07b65cb431cead5e9abb1e4ffd6ecd5a";
+      name = "kactivities-stats-5.73.0.tar.xz";
     };
   };
   kapidox = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kapidox-5.68.0.tar.xz";
-      sha256 = "4f60582cb0771c38733989f192694636b1c93ecae290bfbe551030dd397e976e";
-      name = "kapidox-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kapidox-5.73.0.tar.xz";
+      sha256 = "b49ff6673906817ed95a3de56535594de02a9f95bcb2726abe52d0c0e0161be5";
+      name = "kapidox-5.73.0.tar.xz";
     };
   };
   karchive = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/karchive-5.68.0.tar.xz";
-      sha256 = "518f07629d87e5778e1d8ce066f5590941472d9fffa7bd74819759be5c6edf0d";
-      name = "karchive-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/karchive-5.73.0.tar.xz";
+      sha256 = "25481ebbba8f58d9ab45bde804ab0d873c45550b482e27e7856b362cd9aa434f";
+      name = "karchive-5.73.0.tar.xz";
     };
   };
   kauth = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kauth-5.68.0.tar.xz";
-      sha256 = "b9a7cd724709ea188852f7656fbeda2dc3cc40cc5d09573049c2680c0edbd41f";
-      name = "kauth-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kauth-5.73.0.tar.xz";
+      sha256 = "e334705bfc3f81c5e2f66315d40badd26d88426128432788f790ebefce1694d9";
+      name = "kauth-5.73.0.tar.xz";
     };
   };
   kbookmarks = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kbookmarks-5.68.0.tar.xz";
-      sha256 = "80dc06188a5e1d960d46f527bd82d9b79df75a785164fa29a088a7b705abbf84";
-      name = "kbookmarks-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kbookmarks-5.73.0.tar.xz";
+      sha256 = "b925ec1b8a1b4a2b7f2526fdbc7761de065b3c9573e41ac274773ed1b576aa51";
+      name = "kbookmarks-5.73.0.tar.xz";
     };
   };
   kcalendarcore = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kcalendarcore-5.68.0.tar.xz";
-      sha256 = "50ffbe4feb9a602c09e130d6f10f0f260fa7625bc266003697895e1d716d6ba9";
-      name = "kcalendarcore-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kcalendarcore-5.73.0.tar.xz";
+      sha256 = "e3486b41b833c0ba72f839d8a61bdffaf9b3ece3da20f478c2981b3296e7b713";
+      name = "kcalendarcore-5.73.0.tar.xz";
     };
   };
   kcmutils = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kcmutils-5.68.0.tar.xz";
-      sha256 = "a688d54286fe11b23e11e2100536a513a332d2a7d784fcbebeaccbfb980d83d1";
-      name = "kcmutils-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kcmutils-5.73.0.tar.xz";
+      sha256 = "b28bf672bbe21e8d1b4e6ea924c1bb318c81c43dcbb86bebb3f5775e18945ca9";
+      name = "kcmutils-5.73.0.tar.xz";
     };
   };
   kcodecs = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kcodecs-5.68.0.tar.xz";
-      sha256 = "5f1e6ae3a51ca817aa0a5082ce4ce5490cb527388ef1888a642fb374c5e2bb48";
-      name = "kcodecs-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kcodecs-5.73.0.tar.xz";
+      sha256 = "3bcb22b4f3b2f164759ab912d117c3b4b50695ae38d524f2cfb79a29488cce67";
+      name = "kcodecs-5.73.0.tar.xz";
     };
   };
   kcompletion = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kcompletion-5.68.0.tar.xz";
-      sha256 = "642d68b4c472e11a8861a61238297633be288bfd72c13547707754f1ae2be33a";
-      name = "kcompletion-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kcompletion-5.73.0.tar.xz";
+      sha256 = "72b0650e5ae9f30ad4ec30b55e660c826d93edfda0ef4f9436f226cbb8a9705a";
+      name = "kcompletion-5.73.0.tar.xz";
     };
   };
   kconfig = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kconfig-5.68.0.tar.xz";
-      sha256 = "c3bf138a7a4d002475f2483987baf40a61cda7d491c3cc292dd2c6da726ee898";
-      name = "kconfig-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kconfig-5.73.0.tar.xz";
+      sha256 = "6046bbb8da5f3261aac7f868bfa8a8ce1015a3a8257fe0b2d37dce9e2bc3952e";
+      name = "kconfig-5.73.0.tar.xz";
     };
   };
   kconfigwidgets = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kconfigwidgets-5.68.0.tar.xz";
-      sha256 = "f50421e9dbb6669e8d7c10605f7779ad03f30ea7c9c4451a70a7be66cd9df995";
-      name = "kconfigwidgets-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kconfigwidgets-5.73.0.tar.xz";
+      sha256 = "ed8a0a8158f895aebd46c4a725f77178d942cd9476a864a615a9df343da51f8e";
+      name = "kconfigwidgets-5.73.0.tar.xz";
     };
   };
   kcontacts = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kcontacts-5.68.0.tar.xz";
-      sha256 = "532f1e89c7412e971db8c431d627d38144470ddf5c978a7fa9348e418b6cd3c3";
-      name = "kcontacts-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kcontacts-5.73.0.tar.xz";
+      sha256 = "4351bf80f5a5417ba7e99fe557a851d1c7173fd7511fc1426375c66692e748bb";
+      name = "kcontacts-5.73.0.tar.xz";
     };
   };
   kcoreaddons = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kcoreaddons-5.68.0.tar.xz";
-      sha256 = "c578ae30b4161e45e672d613d2d9c5575a849d21909d9817f90a441044df65d7";
-      name = "kcoreaddons-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kcoreaddons-5.73.0.tar.xz";
+      sha256 = "24a7713eaef2f40e648a586e22b030192321f9fecdbae77013b00446fa0d6d51";
+      name = "kcoreaddons-5.73.0.tar.xz";
     };
   };
   kcrash = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kcrash-5.68.0.tar.xz";
-      sha256 = "60daf2cee87c652619b098b688edce6f993c7960783159cd8be9d9145df29f7f";
-      name = "kcrash-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kcrash-5.73.0.tar.xz";
+      sha256 = "49b6f4d6109ddf3a6b93f833f59483e5a1a748e4b829c4739fdaaaef59c9b583";
+      name = "kcrash-5.73.0.tar.xz";
+    };
+  };
+  kdav = {
+    version = "5.73.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.73/kdav-5.73.0.tar.xz";
+      sha256 = "03c8af96e7bb1b1d2d633e54c6362c7c2de078b8aba5654042b7a11d968efa31";
+      name = "kdav-5.73.0.tar.xz";
     };
   };
   kdbusaddons = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kdbusaddons-5.68.0.tar.xz";
-      sha256 = "839fe42f9ac8df353f87245110fd7b515a8eb29f0840f54481bd89e5175bf1af";
-      name = "kdbusaddons-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kdbusaddons-5.73.0.tar.xz";
+      sha256 = "f7f7e57b4d4650cf90a191b08b1fe874d0005c34163b9177dcc787415841e8ba";
+      name = "kdbusaddons-5.73.0.tar.xz";
     };
   };
   kdeclarative = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kdeclarative-5.68.0.tar.xz";
-      sha256 = "96a032bcb360e0ffcfe51d4d2f6153786682c2f967592bffcf15b9e6cd4cd3ae";
-      name = "kdeclarative-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kdeclarative-5.73.0.tar.xz";
+      sha256 = "713ae2ea41e1bac8f6d47cffa376d62c7805eb3e4cc41c3168c1f1b2ca70a598";
+      name = "kdeclarative-5.73.0.tar.xz";
     };
   };
   kded = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kded-5.68.0.tar.xz";
-      sha256 = "b03afe48fbdbd7d92c46b3b60bdb4b825f77e1a9d00c16a5f236b24a0135e4b7";
-      name = "kded-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kded-5.73.0.tar.xz";
+      sha256 = "f21647a5f35eebaa9bf12b5d5da25c24611c1971f94f27c510d22a48c79b0895";
+      name = "kded-5.73.0.tar.xz";
     };
   };
   kdelibs4support = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/portingAids/kdelibs4support-5.68.0.tar.xz";
-      sha256 = "2fca7bf9d31b081e7568631b6b6d2f7847068217261e47ef0dea106470c22df1";
-      name = "kdelibs4support-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/kdelibs4support-5.73.0.tar.xz";
+      sha256 = "ca6f58c97b331d130a555b950c36cd7f625ca923fd185b0f73e20ac5b98c5d9b";
+      name = "kdelibs4support-5.73.0.tar.xz";
     };
   };
   kdesignerplugin = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/portingAids/kdesignerplugin-5.68.0.tar.xz";
-      sha256 = "ae433e0eeaf0007312b1f32fc4349cf26c34617a5a9951ae4155c5c4e4009b72";
-      name = "kdesignerplugin-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/kdesignerplugin-5.73.0.tar.xz";
+      sha256 = "379db9fd0ec135706630dbd54e1b446e51dd3b64189754c281993d761c1d20b2";
+      name = "kdesignerplugin-5.73.0.tar.xz";
     };
   };
   kdesu = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kdesu-5.68.0.tar.xz";
-      sha256 = "427ba50bcd14308980cbdfdc77a6b7419277942a42d83da72ff3afbc1ec78903";
-      name = "kdesu-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kdesu-5.73.0.tar.xz";
+      sha256 = "4dd07697decad6a544025178732bd279ef64766e1929a2135f6de58b1092944d";
+      name = "kdesu-5.73.0.tar.xz";
     };
   };
   kdewebkit = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/portingAids/kdewebkit-5.68.0.tar.xz";
-      sha256 = "181b14bd80e9f34aa2f896d39aca5be91f65d65bfaaf47660e91fdd98b7f36a2";
-      name = "kdewebkit-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/kdewebkit-5.73.0.tar.xz";
+      sha256 = "d8208c4f7a98b6749c793649e2e5fbe3939e253289a9f6b74b559f6546b34b0b";
+      name = "kdewebkit-5.73.0.tar.xz";
     };
   };
   kdnssd = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kdnssd-5.68.0.tar.xz";
-      sha256 = "3369da85c0088c375f2123a82132fb84490c46ebc8e9cd1253c795ef45fd4403";
-      name = "kdnssd-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kdnssd-5.73.0.tar.xz";
+      sha256 = "bee7f654f704d928b1219b75a289042474c1450e9f8acb02a905a4a177bc5b7d";
+      name = "kdnssd-5.73.0.tar.xz";
     };
   };
   kdoctools = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kdoctools-5.68.0.tar.xz";
-      sha256 = "93f5bee9dfaacacacfbeb3e915b192b5e645c1d01057b0cea4081c9ae5285670";
-      name = "kdoctools-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kdoctools-5.73.0.tar.xz";
+      sha256 = "d8dd74776d47e009d4a204d69a78428603ca99317095d7b7edca49c3d93b1b5d";
+      name = "kdoctools-5.73.0.tar.xz";
     };
   };
   kemoticons = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kemoticons-5.68.0.tar.xz";
-      sha256 = "e03fe81ad34e107dc5fe61f9bf424ecef7716bf8a62f8abb78fd3f6bd6806f56";
-      name = "kemoticons-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kemoticons-5.73.0.tar.xz";
+      sha256 = "0c0a26b029a8fd3d8db97bac931feb7834912aa2f7680660e98d91e868d10778";
+      name = "kemoticons-5.73.0.tar.xz";
     };
   };
   kfilemetadata = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kfilemetadata-5.68.0.tar.xz";
-      sha256 = "c2a8aee8243efa30fc921b7f50b390b47ee2cf83aa83b125a530a25de6d6fe21";
-      name = "kfilemetadata-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kfilemetadata-5.73.0.tar.xz";
+      sha256 = "1ae217aab920741e445211e20b1b60dfcf80f4a6d1864aa63321dac7c3802894";
+      name = "kfilemetadata-5.73.0.tar.xz";
     };
   };
   kglobalaccel = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kglobalaccel-5.68.0.tar.xz";
-      sha256 = "2eb710a3f29cbc8b7875fb3e8315d7c8e3b5bb93867e0a34cd5cdbac690bcbbf";
-      name = "kglobalaccel-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kglobalaccel-5.73.0.tar.xz";
+      sha256 = "0062db9adde4dab0be6b64430010c0a5653355d0d1680abc9ec8e71988ff871f";
+      name = "kglobalaccel-5.73.0.tar.xz";
     };
   };
   kguiaddons = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kguiaddons-5.68.0.tar.xz";
-      sha256 = "cdbf694e92b47358c2e2c31917bf5f01382042c2cb99b65faf3bc00a0eb52c64";
-      name = "kguiaddons-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kguiaddons-5.73.0.tar.xz";
+      sha256 = "45b4c5e0195abd79930635bbf20886b15b1b68b13fe4c56068579b91ef147350";
+      name = "kguiaddons-5.73.0.tar.xz";
     };
   };
   kholidays = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kholidays-5.68.0.tar.xz";
-      sha256 = "067a544c22f5988cf959a475b66ed62e419b975b3ee22810667a076f3d50dbba";
-      name = "kholidays-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kholidays-5.73.0.tar.xz";
+      sha256 = "b0ae4b77aa7c183959bc18baa09a1a4f7208fcad2a238c1590377bf6cf8b68ab";
+      name = "kholidays-5.73.0.tar.xz";
     };
   };
   khtml = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/portingAids/khtml-5.68.0.tar.xz";
-      sha256 = "af97da0a5d877c928d98690c3629a8f9788b29b27f583c9e3e26144a6abb9dcc";
-      name = "khtml-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/khtml-5.73.0.tar.xz";
+      sha256 = "378a5aaa6c796d313a63b4cf1365cdd980f2bc21e9033354f2f1317d1db9c262";
+      name = "khtml-5.73.0.tar.xz";
     };
   };
   ki18n = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/ki18n-5.68.0.tar.xz";
-      sha256 = "2c59dd55d032c95710e338e376a31bf11d799bceba8ebfdb148c8b77067a1e92";
-      name = "ki18n-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/ki18n-5.73.0.tar.xz";
+      sha256 = "97eef22d6cdd65c57edfe54fa9760a69005e15b7d8f4270f6185916c33e14689";
+      name = "ki18n-5.73.0.tar.xz";
     };
   };
   kiconthemes = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kiconthemes-5.68.0.tar.xz";
-      sha256 = "ac3f322f2644dd0468cd2b07cc0c7f853f1ac4bc714fe532bbe92e88141f6729";
-      name = "kiconthemes-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kiconthemes-5.73.0.tar.xz";
+      sha256 = "4490109a0a42675e4cd3497433e10fd4be24ef644a283edf46b308314d130356";
+      name = "kiconthemes-5.73.0.tar.xz";
     };
   };
   kidletime = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kidletime-5.68.0.tar.xz";
-      sha256 = "cd6309d403ea36553abc99af4fa7e4ed3f8b3b2c55d14887ef09d68e5627b3e7";
-      name = "kidletime-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kidletime-5.73.0.tar.xz";
+      sha256 = "52a8af3f061101c406a592ec277a2c84846e3910af1d3dbfc3e15beb9cfd24a2";
+      name = "kidletime-5.73.0.tar.xz";
     };
   };
   kimageformats = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kimageformats-5.68.0.tar.xz";
-      sha256 = "498fab29d19f10f2c91c796134f959b2cf3ce8372087b5eeb62f07e62af85949";
-      name = "kimageformats-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kimageformats-5.73.0.tar.xz";
+      sha256 = "473d0f67d5357bbf08aa4f4504ceaceabc720b1f5433b456ddc5f8ad0d7e3b8b";
+      name = "kimageformats-5.73.0.tar.xz";
     };
   };
   kinit = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kinit-5.68.0.tar.xz";
-      sha256 = "fa136996eaaa7d2adb5a341c2b7a1abe86d8139c6f18999e0b0dc0220e512559";
-      name = "kinit-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kinit-5.73.0.tar.xz";
+      sha256 = "0c61e90f3db83b4dc5f2438cf7880a02b600a5739cb05e5ee372aeff98b8b770";
+      name = "kinit-5.73.0.tar.xz";
     };
   };
   kio = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kio-5.68.0.tar.xz";
-      sha256 = "9cc2fb2da84d6661a90eac81eb12c2e37921a5c34cbc1975f48d613e5a9d9eef";
-      name = "kio-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kio-5.73.0.tar.xz";
+      sha256 = "05da159e6cf5ef9aa4dd7ede86ce28a5581624a1b3f0b4718c5b7e30c4aa2a66";
+      name = "kio-5.73.0.tar.xz";
     };
   };
   kirigami2 = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kirigami2-5.68.0.tar.xz";
-      sha256 = "ad5f78afc916e9cb26f23918a6eb1983d4a57aa7e4f7314a8c23fb81e0fcaf4b";
-      name = "kirigami2-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kirigami2-5.73.0.tar.xz";
+      sha256 = "9b2a097071f77804f6f2f2a478e5db602c8b5fee00de34fc44842f31223401bb";
+      name = "kirigami2-5.73.0.tar.xz";
     };
   };
   kitemmodels = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kitemmodels-5.68.0.tar.xz";
-      sha256 = "4f435db4362832cf63e49896229affd07f125567931fc499751d37ac3bafb149";
-      name = "kitemmodels-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kitemmodels-5.73.0.tar.xz";
+      sha256 = "6569e289ac9263d87ef6641fe2f3914b9ace6814832ac9c61825b1c6805ae371";
+      name = "kitemmodels-5.73.0.tar.xz";
     };
   };
   kitemviews = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kitemviews-5.68.0.tar.xz";
-      sha256 = "5196885ac42347d67779df61a03d7f9c54f38053ff91348ef6fdc08439b4742f";
-      name = "kitemviews-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kitemviews-5.73.0.tar.xz";
+      sha256 = "ec29707d789bee58c47ee538319560a168642f69e96cacb78818825e47177727";
+      name = "kitemviews-5.73.0.tar.xz";
     };
   };
   kjobwidgets = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kjobwidgets-5.68.0.tar.xz";
-      sha256 = "a11ba51ed0ab330f9a921cf0a61e604c27d88c1c2ea477a875bc0a0cd228a292";
-      name = "kjobwidgets-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kjobwidgets-5.73.0.tar.xz";
+      sha256 = "61d105c8f17dcfb85ad6c1e3bd2423ebeb430b9c290d193229bc953ac174f2bf";
+      name = "kjobwidgets-5.73.0.tar.xz";
     };
   };
   kjs = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/portingAids/kjs-5.68.0.tar.xz";
-      sha256 = "18e3d7c667aec21e9e4d0d4730ad32a10475b7db5a574a674a8b90a6f9e0cd0e";
-      name = "kjs-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/kjs-5.73.0.tar.xz";
+      sha256 = "97b52557212a33d59a4b3a8c34ea8a94cd5f840fb0798e770164d3cb1e755be5";
+      name = "kjs-5.73.0.tar.xz";
     };
   };
   kjsembed = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/portingAids/kjsembed-5.68.0.tar.xz";
-      sha256 = "e9b9ac63f06447ffc6870806eb1507f0281281bae907fdbae42ee87a2b926db2";
-      name = "kjsembed-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/kjsembed-5.73.0.tar.xz";
+      sha256 = "cc9896930c01a6bdbfaddada9516380c9a54e5d719836f1788d8e3a74108e1d3";
+      name = "kjsembed-5.73.0.tar.xz";
     };
   };
   kmediaplayer = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/portingAids/kmediaplayer-5.68.0.tar.xz";
-      sha256 = "aa07466ea27b2e042e03d76fe3a23c570ba6521f57a2a51dc0ddf32fc8276db0";
-      name = "kmediaplayer-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/kmediaplayer-5.73.0.tar.xz";
+      sha256 = "69aa3bbedfc8b9a0dd9f4ac260cded9d7b5894477bf4b5b09065d0aae8e44ab2";
+      name = "kmediaplayer-5.73.0.tar.xz";
     };
   };
   knewstuff = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/knewstuff-5.68.0.tar.xz";
-      sha256 = "f7c13b133f8b87ceece2d33d3f69215912b3b8c1dbb92ac39a1a6a0a42b7c93a";
-      name = "knewstuff-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/knewstuff-5.73.0.tar.xz";
+      sha256 = "7669e62973f7e228975a07f15bb1c7f716edd81ce82d5f578a80b1f501abda1e";
+      name = "knewstuff-5.73.0.tar.xz";
     };
   };
   knotifications = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/knotifications-5.68.0.tar.xz";
-      sha256 = "646bd3bac073fbf4f19f9047360325c933751d605cf1311f4c922d7457fbda51";
-      name = "knotifications-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/knotifications-5.73.0.tar.xz";
+      sha256 = "c8e9f36716db33baca93a0386d3bb6426408eee3843eb5854bdd8ad7579f372c";
+      name = "knotifications-5.73.0.tar.xz";
     };
   };
   knotifyconfig = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/knotifyconfig-5.68.0.tar.xz";
-      sha256 = "36c7c93964f2b9b584d73de1757f75d6ee8bb29ebe860e8fd6905354d2f10145";
-      name = "knotifyconfig-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/knotifyconfig-5.73.0.tar.xz";
+      sha256 = "641a167a58856e99036d44b3e7472b44cdfbbf68e5d75b9af988d0b71dc10af4";
+      name = "knotifyconfig-5.73.0.tar.xz";
     };
   };
   kpackage = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kpackage-5.68.0.tar.xz";
-      sha256 = "49727d89f1ca7ee504397d6e8b5cd25c26cd0061596b26d8ab2b64e3987d2d16";
-      name = "kpackage-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kpackage-5.73.0.tar.xz";
+      sha256 = "480b1e11733fe272d1a5680afea39bcc940f01bd3d1267be0981e3c92e098c4f";
+      name = "kpackage-5.73.0.tar.xz";
     };
   };
   kparts = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kparts-5.68.0.tar.xz";
-      sha256 = "fd17d0b0ff41d66c122530bbd8d1187f3271382207f63237ce72147865bf6d29";
-      name = "kparts-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kparts-5.73.0.tar.xz";
+      sha256 = "5546d2a474c80a601ba013642775682b087d086bd26d0b0d025b68d680c98bf2";
+      name = "kparts-5.73.0.tar.xz";
     };
   };
   kpeople = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kpeople-5.68.0.tar.xz";
-      sha256 = "1cae86d527d650d9fa311f6007cc33b5dcd858bcfe4eb7cae65b5402205c4675";
-      name = "kpeople-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kpeople-5.73.0.tar.xz";
+      sha256 = "9e0d3119c168f7843251c808cc149de15c1fd692062f431972023fdaa84d21c4";
+      name = "kpeople-5.73.0.tar.xz";
     };
   };
   kplotting = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kplotting-5.68.0.tar.xz";
-      sha256 = "ccae7f90c016a1c517db820f352bb962f600678efdc4ac6b12e33d2c48f5c268";
-      name = "kplotting-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kplotting-5.73.0.tar.xz";
+      sha256 = "b5055ed9a3149c059623d88875816e9fac8d6d25d29fdfd48e0d8a16dfe01b14";
+      name = "kplotting-5.73.0.tar.xz";
     };
   };
   kpty = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kpty-5.68.0.tar.xz";
-      sha256 = "35b838cff80311db52d83e1f61bc365277d54929742ee34265f36a12ce7689e3";
-      name = "kpty-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kpty-5.73.0.tar.xz";
+      sha256 = "d3bf99062589dbd1dbe302c8ed2528845f245e7f0f17ca865cdd100f7589ce9c";
+      name = "kpty-5.73.0.tar.xz";
     };
   };
   kquickcharts = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kquickcharts-5.68.0.tar.xz";
-      sha256 = "2cfb78bc2a7659a8c4ca6b072ff586c44e6da64e10b84a0fb0c5e3f03c944628";
-      name = "kquickcharts-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kquickcharts-5.73.0.tar.xz";
+      sha256 = "e37e13a5d907d872679eab38ba8e983b2fb98a11e07a3c15d32cfaad09075cfe";
+      name = "kquickcharts-5.73.0.tar.xz";
     };
   };
   kross = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/portingAids/kross-5.68.0.tar.xz";
-      sha256 = "2f5a79a2097f84bfd2033ca183abdbf6626f6e5dc2c6f781c312f15c97dace33";
-      name = "kross-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/kross-5.73.0.tar.xz";
+      sha256 = "aa27b434da981f64c40985a61ee041417667844c6077c9fb52456635be67546e";
+      name = "kross-5.73.0.tar.xz";
     };
   };
   krunner = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/krunner-5.68.0.tar.xz";
-      sha256 = "4575ae1d658d32c15f9d57dc30616073e9d143d1a7f9632556906ef10e82e3b8";
-      name = "krunner-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/krunner-5.73.0.tar.xz";
+      sha256 = "b4e8427083b6546327eeb36b05a7e438e58f922d4cc5ae0c24cd8241924e9e09";
+      name = "krunner-5.73.0.tar.xz";
     };
   };
   kservice = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kservice-5.68.0.tar.xz";
-      sha256 = "c774ce1738081c17e6e105e506aa89c22a9db07e73972d4b18ce733ec8ad0a8a";
-      name = "kservice-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kservice-5.73.0.tar.xz";
+      sha256 = "a64bf7543870240f0d8f8c2bcf43759d98962ba94a4ed34bd23232df25bb408b";
+      name = "kservice-5.73.0.tar.xz";
     };
   };
   ktexteditor = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/ktexteditor-5.68.0.tar.xz";
-      sha256 = "dad373d4c136d113cca1ee6d700753563b7348813ff3229db670eedc63980cd6";
-      name = "ktexteditor-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/ktexteditor-5.73.0.tar.xz";
+      sha256 = "032b3ac31aa099ed67471f78401d13cf318646b0b9b5e20bb94796ac3ed6cf18";
+      name = "ktexteditor-5.73.0.tar.xz";
     };
   };
   ktextwidgets = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/ktextwidgets-5.68.0.tar.xz";
-      sha256 = "23b354469afed21c840ca36e2bb5b2b383ed5c4ec3690bb009e273c39fbe00c0";
-      name = "ktextwidgets-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/ktextwidgets-5.73.0.tar.xz";
+      sha256 = "2a8b086fce8136b5b4af4a28b417343fb66148c1961e5d65bf40ccae2d4386e5";
+      name = "ktextwidgets-5.73.0.tar.xz";
     };
   };
   kunitconversion = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kunitconversion-5.68.0.tar.xz";
-      sha256 = "39ec06e2439306ce5b5efe5fe972d201e8c8e5fda634652cdc01c58427574adb";
-      name = "kunitconversion-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kunitconversion-5.73.0.tar.xz";
+      sha256 = "97d008e8bdb2d1f89d2093294a8be0b13b0e0160658fa7d3de6c99a5fd5e2935";
+      name = "kunitconversion-5.73.0.tar.xz";
     };
   };
   kwallet = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kwallet-5.68.0.tar.xz";
-      sha256 = "7524eeffdde3166df182f0dbf0f3f461905547bfd7a06387c7c503cd1ab75ecf";
-      name = "kwallet-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kwallet-5.73.0.tar.xz";
+      sha256 = "4a9c8a538054fc51b30679d5180d09bb6d12a833f595a8d6875b6d4c29074de1";
+      name = "kwallet-5.73.0.tar.xz";
     };
   };
   kwayland = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kwayland-5.68.0.tar.xz";
-      sha256 = "7c99bfac8f4bff457a5384c846be776c385649ced76be0f48699c6e12de24e7c";
-      name = "kwayland-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kwayland-5.73.0.tar.xz";
+      sha256 = "ee34a490a7bbc5e83eb36a6ac70492a76cb054d3077d0a8db216fd8b07f27bfe";
+      name = "kwayland-5.73.0.tar.xz";
     };
   };
   kwidgetsaddons = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kwidgetsaddons-5.68.0.tar.xz";
-      sha256 = "b4ff96b4ec6365e5f9e4da5e651da99be491799a4e6cfd982d0838dda39844ac";
-      name = "kwidgetsaddons-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kwidgetsaddons-5.73.0.tar.xz";
+      sha256 = "0722d853747b85ca7d46f278dc99c28b872185406b97b811523c1aa9b5e75eb6";
+      name = "kwidgetsaddons-5.73.0.tar.xz";
     };
   };
   kwindowsystem = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kwindowsystem-5.68.0.tar.xz";
-      sha256 = "859c930a04c2588f792bfb9a28ed40b226db632b15c2851b186301b70d4c825a";
-      name = "kwindowsystem-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kwindowsystem-5.73.0.tar.xz";
+      sha256 = "0e27ad2cd5e4699efdc02daec181b4ffb0b9e31ec4c96f0f67899804aebbcde8";
+      name = "kwindowsystem-5.73.0.tar.xz";
     };
   };
   kxmlgui = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kxmlgui-5.68.0.tar.xz";
-      sha256 = "6310e9a725a982d3b70672367c5858727437fe08c8e409458e48b6015c7bf10e";
-      name = "kxmlgui-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kxmlgui-5.73.0.tar.xz";
+      sha256 = "093131f5f51497ec61e99bd3e19de9421643d3f6ddf0099a823a3d624596ebcb";
+      name = "kxmlgui-5.73.0.tar.xz";
     };
   };
   kxmlrpcclient = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kxmlrpcclient-5.68.0.tar.xz";
-      sha256 = "e49f2ab649aafb292e01dacefb7b6f28fc596606764bef61e7ce622b67241324";
-      name = "kxmlrpcclient-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/kxmlrpcclient-5.73.0.tar.xz";
+      sha256 = "c0d089c389f59bb7cb6fba629f3e122e70fda19a69f419ff8bd1d9fcee95a047";
+      name = "kxmlrpcclient-5.73.0.tar.xz";
     };
   };
   modemmanager-qt = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/modemmanager-qt-5.68.0.tar.xz";
-      sha256 = "9c0febf18a04b69e47cffdb4563390a79a4a673da856502cbf50d5c7707670ec";
-      name = "modemmanager-qt-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/modemmanager-qt-5.73.0.tar.xz";
+      sha256 = "87f3864b2b53b4e309bca1feefa613455f60e4699969a569694f6813447e1fcd";
+      name = "modemmanager-qt-5.73.0.tar.xz";
     };
   };
   networkmanager-qt = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/networkmanager-qt-5.68.0.tar.xz";
-      sha256 = "6a9bea5e6d58f5322848114e4e827edadee6b5a890a3549446ff23a568325e2c";
-      name = "networkmanager-qt-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/networkmanager-qt-5.73.0.tar.xz";
+      sha256 = "b909feafc0a9a18b59744e0f1973c5357f67bbd50b59afa82cf55955dae7d41f";
+      name = "networkmanager-qt-5.73.0.tar.xz";
     };
   };
   oxygen-icons5 = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/oxygen-icons5-5.68.0.tar.xz";
-      sha256 = "75a8113e567d8cbba57bda3c8829d116d58ebf6bc5ace88aed7700b28a00c463";
-      name = "oxygen-icons5-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/oxygen-icons5-5.73.0.tar.xz";
+      sha256 = "662cd9644e393c69dccb538cdd4280253be812f80704c992ada228c0c32c2bbc";
+      name = "oxygen-icons5-5.73.0.tar.xz";
     };
   };
   plasma-framework = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/plasma-framework-5.68.0.tar.xz";
-      sha256 = "d27c7a62231784ecad1246f8a81b02fd6db2e9818244a06650fd6c972a69ea74";
-      name = "plasma-framework-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/plasma-framework-5.73.0.tar.xz";
+      sha256 = "e5415143f0a08cd75cf758b0692021d2a2febdcb1364e2aa1e5c8fbeee148c93";
+      name = "plasma-framework-5.73.0.tar.xz";
     };
   };
   prison = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/prison-5.68.0.tar.xz";
-      sha256 = "22e2b8e9ca06e4fb7ab91afeddbaebe6e2b6792bbcd5ba6c440c6fad0df176b7";
-      name = "prison-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/prison-5.73.0.tar.xz";
+      sha256 = "a2b135ffdf1af240366f3fb077c02c02094fb1706c6e84fab5186802544a5b87";
+      name = "prison-5.73.0.tar.xz";
     };
   };
   purpose = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/purpose-5.68.0.tar.xz";
-      sha256 = "c8c8f8244b568e52b4c02b89b71611bb8ba7cd07173645caa022b4bd90b41ab0";
-      name = "purpose-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/purpose-5.73.0.tar.xz";
+      sha256 = "6f4d440cb708b636430e3206f879ca5c2e6cdfcf62f92ce173d43e291fbeed32";
+      name = "purpose-5.73.0.tar.xz";
     };
   };
   qqc2-desktop-style = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/qqc2-desktop-style-5.68.0.tar.xz";
-      sha256 = "0f522861e5757de6a1205c86a2e5f8d2a7375c96eac1ece95d03a35858dc7b03";
-      name = "qqc2-desktop-style-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/qqc2-desktop-style-5.73.0.tar.xz";
+      sha256 = "290b3637be0c3740e92cdbb1421aef8bf1a8df36218f9d7d120e8422d14c3fdd";
+      name = "qqc2-desktop-style-5.73.0.tar.xz";
     };
   };
   solid = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/solid-5.68.0.tar.xz";
-      sha256 = "472c1934b3c9cf917f28ac0e5b0864de442b96852744c301d88d8ab7269d74c3";
-      name = "solid-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/solid-5.73.0.tar.xz";
+      sha256 = "7366b64438a1ca7a42126e67d352e371227b46418ce961321d358f2eb90c0933";
+      name = "solid-5.73.0.tar.xz";
     };
   };
   sonnet = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/sonnet-5.68.0.tar.xz";
-      sha256 = "079c4f5fcb9fe670e1242b18648e178aaa01eb81dbdfc881805eea1ec585bd67";
-      name = "sonnet-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/sonnet-5.73.0.tar.xz";
+      sha256 = "009f76fc4317e407d30c4e162a807d620a95217f5db271a14b1f9fc4339d232c";
+      name = "sonnet-5.73.0.tar.xz";
     };
   };
   syndication = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/syndication-5.68.0.tar.xz";
-      sha256 = "0715fc1b7312b5081521b781d0878d88cc70dcb77272ee173cecca03cc221fd3";
-      name = "syndication-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/syndication-5.73.0.tar.xz";
+      sha256 = "2a65972ef5183edb0bd8b3804dae129ae8f4a4469287711e77fc636e90b8a954";
+      name = "syndication-5.73.0.tar.xz";
     };
   };
   syntax-highlighting = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/syntax-highlighting-5.68.0.tar.xz";
-      sha256 = "a857c743aa60b21eea7e4b986e8b195882aa2c18358412e767e68d93ce35e134";
-      name = "syntax-highlighting-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/syntax-highlighting-5.73.0.tar.xz";
+      sha256 = "51ed4a68ba42d0dc88d91a0c11ac55ada199b7e93b0ff74b80b5e9304fe8901b";
+      name = "syntax-highlighting-5.73.0.tar.xz";
     };
   };
   threadweaver = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/threadweaver-5.68.0.tar.xz";
-      sha256 = "e28c0bfff375b3e1e9e4eec72f0a804f3f41c4ec5fd59af9b951708d229eff64";
-      name = "threadweaver-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/threadweaver-5.73.0.tar.xz";
+      sha256 = "7e1152a1cf73f841c3be5d73cb0d5e6e29ec700be859c94275c5c00e49488d38";
+      name = "threadweaver-5.73.0.tar.xz";
     };
   };
 }
diff --git a/pkgs/development/libraries/kdsoap/default.nix b/pkgs/development/libraries/kdsoap/default.nix
new file mode 100644
index 00000000000..dde2e5cb1a7
--- /dev/null
+++ b/pkgs/development/libraries/kdsoap/default.nix
@@ -0,0 +1,39 @@
+{ mkDerivation, lib, fetchurl
+, cmake
+, qtbase
+}:
+
+let
+  version = "1.9.0";
+in
+
+mkDerivation {
+  pname = "kdsoap";
+  inherit version;
+  meta = {
+    description = "A Qt-based client-side and server-side SOAP component";
+    longDescription = ''
+      KD Soap is a Qt-based client-side and server-side SOAP component.
+
+      It can be used to create client applications for web services and also
+      provides the means to create web services without the need for any further
+      component such as a dedicated web server.
+    '';
+    license = with lib.licenses; [ gpl2 gpl3 lgpl21 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  src = fetchurl {
+    url = "https://github.com/KDAB/KDSoap/releases/download/kdsoap-${version}/kdsoap-${version}.tar.gz";
+    sha256 = "0a28k48cmagqxhaayyrqnxsx1zbvw4f06dgs16kl33xhbinn5fg3";
+  };
+  outputs = [ "out" "dev" ];
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ qtbase ];
+  postInstall = ''
+    moveToOutput bin/kdwsdl2cpp "$dev"
+    sed -i "$out/lib/cmake/KDSoap/KDSoapTargets.cmake" \
+        -e "/^  INTERFACE_INCLUDE_DIRECTORIES/ c   INTERFACE_INCLUDE_DIRECTORIES \"$dev/include\""
+    sed -i "$out/lib/cmake/KDSoap/KDSoapTargets-release.cmake" \
+        -e "s@$out/bin@$dev/bin@"
+  '';
+}
diff --git a/pkgs/development/libraries/kerberos/krb5.nix b/pkgs/development/libraries/kerberos/krb5.nix
index e5a593a7ff4..004d7d2227c 100644
--- a/pkgs/development/libraries/kerberos/krb5.nix
+++ b/pkgs/development/libraries/kerberos/krb5.nix
@@ -8,6 +8,11 @@
 , staticOnly ? false
 }:
 
+# 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
+# files.
+
 let
   libOnly = type == "lib";
 in
diff --git a/pkgs/development/libraries/kmsxx/default.nix b/pkgs/development/libraries/kmsxx/default.nix
index 740248a7ae8..5bd311af2d8 100644
--- a/pkgs/development/libraries/kmsxx/default.nix
+++ b/pkgs/development/libraries/kmsxx/default.nix
@@ -3,14 +3,14 @@
 
 stdenv.mkDerivation {
   pname = "kmsxx";
-  version = "2020-02-14";
+  version = "2020-08-04";
 
   src = fetchFromGitHub {
     owner = "tomba";
     repo = "kmsxx";
     fetchSubmodules = true;
-    rev = "7c5e645112a899ad018219365c3898b0e896353f";
-    sha256 = "1hj4gk4gwlvpjprjbrmrbrzqjhdgszsndrb1i4f9z7mjvdv8gij2";
+    rev = "38bee3092f2d477f1baebfcae464f888d3d04bbe";
+    sha256 = "0xz4m9bk0naawxwpx5cy1j3cm6c8c9m5y551csk88y88x1g0z0xh";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/kpmcore/default.nix b/pkgs/development/libraries/kpmcore/default.nix
index 52e6264843b..7903fc74639 100644
--- a/pkgs/development/libraries/kpmcore/default.nix
+++ b/pkgs/development/libraries/kpmcore/default.nix
@@ -3,15 +3,12 @@
 , libatasmart, parted
 , utillinux }:
 
-let
+stdenv.mkDerivation rec {
   pname = "kpmcore";
-
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
   version = "3.3.0";
 
   src = fetchurl {
-    url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+    url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz";
     sha256 = "0s6v0jfrhjg31ri5p6h9n4w29jvasf5dj954j3vfpzl91lygmmmq";
   };
 
@@ -24,12 +21,14 @@ in stdenv.mkDerivation rec {
 
     utillinux # needs blkid (note that this is not provided by utillinux-compat)
   ];
+
   nativeBuildInputs = [ extra-cmake-modules ];
+
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
     maintainers = with lib.maintainers; [ peterhoeg ];
-    # The build requires at least Qt 5.12:
-    broken = lib.versionOlder qtbase.version "5.12.0";
+    # The build requires at least Qt 5.14:
+    broken = lib.versionOlder qtbase.version "5.14";
   };
 }
diff --git a/pkgs/development/libraries/lcms2/default.nix b/pkgs/development/libraries/lcms2/default.nix
index 2584e26b3c0..0cf62285890 100644
--- a/pkgs/development/libraries/lcms2/default.nix
+++ b/pkgs/development/libraries/lcms2/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libtiff, libjpeg, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "lcms2-2.10";
+  name = "lcms2-2.11";
 
   src = fetchurl {
     url = "mirror://sourceforge/lcms/${name}.tar.gz";
-    sha256 = "0ipkw2r8h3yhm4vn5nx04dz5s943x9fw023fhrrnjz2c97yi3m2h";
+    sha256 = "0bkpf315925lhmd9i4mzjnkq5dh255r1lms0c0vzzkfpwk4bjjfw";
   };
 
   outputs = [ "bin" "dev" "out" ];
diff --git a/pkgs/development/libraries/ldb/default.nix b/pkgs/development/libraries/ldb/default.nix
index 33a9974211f..9810234eefa 100644
--- a/pkgs/development/libraries/ldb/default.nix
+++ b/pkgs/development/libraries/ldb/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ldb";
-  version = "2.1.3";
+  version = "2.2.0";
 
   src = fetchurl {
     url = "mirror://samba/ldb/${pname}-${version}.tar.gz";
-    sha256 = "0xkps414ndb87abla7dlv44ndnfg5r5vwgmkm3ngcq9knbv1x6w7";
+    sha256 = "0pxxb3sn9lignkf80kndd84shxqk9m2qwimz62gzb6khd4bvajqk";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/leatherman/default.nix b/pkgs/development/libraries/leatherman/default.nix
index 8a34f05f6cf..4623e5ca70e 100644
--- a/pkgs/development/libraries/leatherman/default.nix
+++ b/pkgs/development/libraries/leatherman/default.nix
@@ -2,21 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "leatherman";
-  version = "1.12.0";
+  version = "1.12.1";
 
   src = fetchFromGitHub {
-    sha256 = "00qigglp67a14ki4dhjxd3j540a80rkmzhysx7hra8v2rgbsqgj8";
+    sha256 = "1mgd7jqfg6f0y2yrh2m1njlwrpd15kas88776jdd5fsl7gvb5khn";
     rev = version;
     repo = "leatherman";
     owner = "puppetlabs";
   };
 
-  NIX_CFLAGS_COMPILE = builtins.toString [
-    "-Wno-error=ignored-qualifiers"
-    "-Wno-error=class-memaccess"
-    "-Wno-error=catch-value"
-    "-Wno-error=deprecated-copy"
-  ];
+  NIX_CFLAGS_COMPILE = "-Wno-error";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ boost curl ruby ];
@@ -28,7 +23,7 @@ stdenv.mkDerivation rec {
     description = "A collection of C++ and CMake utility libraries";
     license = licenses.asl20;
     maintainers = [ maintainers.womfoo ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 
 }
diff --git a/pkgs/development/libraries/leptonica/default.nix b/pkgs/development/libraries/leptonica/default.nix
index 456a14f72b1..a0f0814fec5 100644
--- a/pkgs/development/libraries/leptonica/default.nix
+++ b/pkgs/development/libraries/leptonica/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "leptonica";
-  version = "1.79.0";
+  version = "1.80.0";
 
   src = fetchurl {
     url = "http://www.leptonica.org/source/${pname}-${version}.tar.gz";
-    sha256 = "1n004gv1dj3pq1fcnfdclvvx5nang80336aa67nvs3nnqp4ncn84";
+    sha256 = "192bs676ind8627f0v3v8d1q7r4xwc7q0zvbdbxn1fgvmv14d77c";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/development/libraries/libaacs/default.nix b/pkgs/development/libraries/libaacs/default.nix
index 2b3ef8c99c8..d6c90ee172b 100644
--- a/pkgs/development/libraries/libaacs/default.nix
+++ b/pkgs/development/libraries/libaacs/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libaacs";
-  version  = "0.10.0";
+  version  = "0.11.0";
 
   src = fetchurl {
     url = "http://get.videolan.org/libaacs/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "1zhjdcph8sqx7ak35s22kc736icwq135jlypggkp6vqyyygb3xlk";
+    sha256 = "11skjqjlldmbjkyxdcz4fmcn6y4p95r1xagbcnjy4ndnzf0l723d";
   };
 
   buildInputs = [ libgcrypt libgpgerror ];
diff --git a/pkgs/development/libraries/libappindicator/default.nix b/pkgs/development/libraries/libappindicator/default.nix
index dc0542c2126..7a7ad22756c 100644
--- a/pkgs/development/libraries/libappindicator/default.nix
+++ b/pkgs/development/libraries/libappindicator/default.nix
@@ -1,11 +1,11 @@
 # TODO: Resolve the issues with the Mono bindings.
 
-{ stdenv, fetchurl, fetchpatch, lib
+{ stdenv, fetchgit, lib
 , pkgconfig, autoreconfHook
 , glib, dbus-glib, gtkVersion ? "3"
 , gtk2 ? null, libindicator-gtk2 ? null, libdbusmenu-gtk2 ? null
 , gtk3 ? null, libindicator-gtk3 ? null, libdbusmenu-gtk3 ? null
-, vala, gobject-introspection
+, gtk-doc, vala, gobject-introspection
 , monoSupport ? false, mono ? null, gtk-sharp-2_0 ? null
  }:
 
@@ -15,18 +15,17 @@ with lib;
 stdenv.mkDerivation rec {
   name = let postfix = if gtkVersion == "2" && monoSupport then "sharp" else "gtk${gtkVersion}";
           in "libappindicator-${postfix}-${version}";
-  version = "${versionMajor}.${versionMinor}";
-  versionMajor = "12.10";
-  versionMinor = "0";
+  version = "12.10.1+20.10.20200706.1";
 
   outputs = [ "out" "dev" ];
 
-  src = fetchurl {
-    url = "${meta.homepage}/${versionMajor}/${version}/+download/libappindicator-${version}.tar.gz";
-    sha256 = "17xlqd60v0zllrxp8bgq3k5a1jkj0svkqn8rzllcyjh8k0gpr46m";
+  src = fetchgit {
+    url = "https://git.launchpad.net/ubuntu/+source/libappindicator";
+    rev = "fe25e53bc7e39cd59ad6b3270cd7a6a9c78c4f44";
+    sha256 = "0xjvbl4gn7ra2fs6gn2g9s787kzb5cg9hv79iqsz949rxh4iw32d";
   };
 
-  nativeBuildInputs = [ pkgconfig autoreconfHook vala gobject-introspection ];
+  nativeBuildInputs = [ pkgconfig autoreconfHook vala gobject-introspection gtk-doc ];
 
   propagatedBuildInputs =
     if gtkVersion == "2"
@@ -39,14 +38,9 @@ stdenv.mkDerivation rec {
     then [ libindicator-gtk2 ] ++ optionals monoSupport [ mono gtk-sharp-2_0 ]
     else [ libindicator-gtk3 ]);
 
-  patches = [
-    # Remove python2 from libappindicator.
-    (fetchpatch {
-      name = "no-python.patch";
-      url = "https://src.fedoraproject.org/rpms/libappindicator/raw/8508f7a52437679fd95a79b4630373f08315f189/f/nopython.patch";
-      sha256 = "18b1xzvwsbhhfpbzf5zragij4g79pa04y1dk6v5ci1wsjvii725s";
-    })
-  ];
+  preAutoreconf = ''
+    gtkdocize
+  '';
 
   configureFlags = [
     "CFLAGS=-Wno-error"
diff --git a/pkgs/development/libraries/libayatana-appindicator/default.nix b/pkgs/development/libraries/libayatana-appindicator/default.nix
new file mode 100644
index 00000000000..84ecbc81ca5
--- /dev/null
+++ b/pkgs/development/libraries/libayatana-appindicator/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, lib
+, pkgconfig, autoreconfHook , gtk-doc
+, gtkVersion ? "3"
+, gtk2, libayatana-indicator-gtk2, libdbusmenu-gtk2
+, gtk3, libayatana-indicator-gtk3, libdbusmenu-gtk3
+, dbus-glib, python2, python2Packages
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libayatana-appindicator-gtk${gtkVersion}";
+  version = "0.5.4";
+
+  src = fetchFromGitHub {
+    owner = "AyatanaIndicators";
+    repo = "libayatana-appindicator";
+    rev = version;
+    sha256 = "0bqjqb7gabdk7mifk8azi630qw39z978f973fx2ylgdgr4a66j1v";
+  };
+
+  patchPhase = ''
+    substituteInPlace configure.ac \
+      --replace "codegendir pygtk-2.0" "codegendir pygobject-2.0"
+  '';
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook gtk-doc ];
+
+  buildInputs = [ dbus-glib python2 python2Packages.pygtk ]
+    ++ lib.lists.optional (gtkVersion == "2") libayatana-indicator-gtk2
+    ++ lib.lists.optional (gtkVersion == "3") libayatana-indicator-gtk3;
+
+  propagatedBuildInputs =
+    lib.lists.optionals (gtkVersion == "2") [ gtk2 libdbusmenu-gtk2 ]
+    ++ lib.lists.optionals (gtkVersion == "3") [ gtk3 libdbusmenu-gtk3 ];
+
+  preAutoreconf = ''
+    gtkdocize
+  '';
+
+  configureFlags = [ "--with-gtk=${gtkVersion}" ];
+
+  meta = with stdenv.lib; {
+    description = "Ayatana Application Indicators Shared Library";
+    homepage = "https://github.com/AyatanaIndicators/libayatana-appindicator";
+    changelog = "https://github.com/AyatanaIndicators/libayatana-appindicator/blob/${version}/ChangeLog";
+    license = [ licenses.gpl3 licenses.lgpl21 ];
+    maintainers = [ maintainers.nickhu ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/pkgs/development/libraries/libayatana-indicator/default.nix b/pkgs/development/libraries/libayatana-indicator/default.nix
new file mode 100644
index 00000000000..778e06aa95c
--- /dev/null
+++ b/pkgs/development/libraries/libayatana-indicator/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, lib
+, pkgconfig, autoreconfHook
+, gtkVersion ? "3"
+, gtk2
+, gtk3
+, ayatana-ido
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libayatana-indicator-gtk${gtkVersion}";
+  version = "0.6.3";
+
+  src = fetchFromGitHub {
+    owner = "AyatanaIndicators";
+    repo = "libayatana-indicator";
+    rev = version;
+    sha256 = "1q9wmaw6pckwyrv0s7wkqzm1yrk031pbz4xbr8cwn75ixqyfcb28";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+
+  buildInputs = [ ayatana-ido ]
+    ++ lib.lists.optionals (gtkVersion == "2") [ gtk2 ]
+    ++ lib.lists.optionals (gtkVersion == "3") [ gtk3 ];
+
+  configureFlags = [ "--with-gtk=${gtkVersion}" ];
+
+  meta = with stdenv.lib; {
+    description = "Ayatana Indicators Shared Library";
+    homepage = "https://github.com/AyatanaIndicators/libayatana-indicator";
+    changelog = "https://github.com/AyatanaIndicators/libayatana-indicator/blob/${version}/ChangeLog";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.nickhu ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/pkgs/development/libraries/libbap/default.nix b/pkgs/development/libraries/libbap/default.nix
index 09cbafa17bf..411c3ae740f 100644
--- a/pkgs/development/libraries/libbap/default.nix
+++ b/pkgs/development/libraries/libbap/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation {
   pname = "libbap";
-  version = "master-2019-04-05";
+  version = "master-2019-11-15";
 
   src = fetchFromGitHub {
     owner = "BinaryAnalysisPlatform";
     repo = "bap-bindings";
-    rev = "1a89db62f1239a15d310b400f74e151c0a64f37f";
-    sha256 = "0mln9adjgxzhjmjayq06ahgiay4vj5kmnzdxqz3nsik9h3npycd6";
+    rev = "1a30dd3e1df18c432a83a7038b555662d6982ae3";
+    sha256 = "140gmak2kymh3r0fagb6ms66lmvwhhqj8pcd3qxc1p4ar330fwrh";
   };
 
   nativeBuildInputs = [ autoreconfHook which ];
diff --git a/pkgs/development/libraries/libbytesize/default.nix b/pkgs/development/libraries/libbytesize/default.nix
index ec14b2a6091..c93a59d462f 100644
--- a/pkgs/development/libraries/libbytesize/default.nix
+++ b/pkgs/development/libraries/libbytesize/default.nix
@@ -4,7 +4,7 @@
 }:
 
 let
-  version = "2.3";
+  version = "2.4";
 in stdenv.mkDerivation rec {
   pname = "libbytesize";
   inherit version;
@@ -13,7 +13,7 @@ in stdenv.mkDerivation rec {
     owner = "storaged-project";
     repo = "libbytesize";
     rev = version;
-    sha256 = "1nrlmn63k0ix1yzn8v4lni5n5b4c0b6w9f33p1ig113ymmdvcc0h";
+    sha256 = "1kq0hnw2yxjdmcrwvgp0x4j1arkka23k8vp2l6nqcw9lc15x18fp";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
diff --git a/pkgs/development/libraries/libcint/default.nix b/pkgs/development/libraries/libcint/default.nix
index 4a83175f66b..55ba8d7b301 100644
--- a/pkgs/development/libraries/libcint/default.nix
+++ b/pkgs/development/libraries/libcint/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libcint";
-  version = "3.0.20";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "sunqm";
     repo = "libcint";
     rev = "v${version}";
-    sha256 = "0iqqq568q9sxppr08rvmpyjq0n82pm04x9rxhh3mf20x1ds7ngj5";
+    sha256 = "0z1gavi7aacx68fmyzy90vzv5kff844lnxc6habs6y377dr3rwwy";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libcrafter/default.nix b/pkgs/development/libraries/libcrafter/default.nix
index d91032126eb..20bcc9183ec 100644
--- a/pkgs/development/libraries/libcrafter/default.nix
+++ b/pkgs/development/libraries/libcrafter/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libcrafter";
-  version = "0.3";
+  version = "1.0";
 
   src = fetchzip {
     url = "https://github.com/pellegre/libcrafter/archive/version-${version}.zip";
-    sha256 = "04lpmshh4wb1dav03p6rnskpd1zmmvhv80xwn8v7l8faps5gvjp4";
+    sha256 = "1d2vgxawdwk2zg3scxclxdby1rhghmivly8azdjja89kw7gls9xl";
   };
 
   preConfigure = "cd libcrafter";
diff --git a/pkgs/development/libraries/libcryptui/default.nix b/pkgs/development/libraries/libcryptui/default.nix
index e3db41c73e1..829d16e59d0 100644
--- a/pkgs/development/libraries/libcryptui/default.nix
+++ b/pkgs/development/libraries/libcryptui/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, gnome3, gtk3, gnupg20, gpgme, dbus-glib, libgnome-keyring }:
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, intltool, glib, gnome3, gtk3, gnupg22, gpgme, dbus-glib, libgnome-keyring }:
 
 stdenv.mkDerivation rec {
   pname = "libcryptui";
@@ -9,8 +9,12 @@ stdenv.mkDerivation rec {
     sha256 = "0rh8wa5k2iwbwppyvij2jdxmnlfjbna7kbh2a5n7zw4nnjkx3ski";
   };
 
-  nativeBuildInputs = [ pkgconfig intltool ];
-  buildInputs = [ glib gtk3 gnupg20 gpgme dbus-glib libgnome-keyring ];
+  patches = [
+    ./fix-gnupg-2.2.patch # based on https://gitlab.gnome.org/GNOME/libcryptui/-/commit/b05e301d1b264a5d8f07cb96e5edc243d99bff79.patch
+  ];
+
+  nativeBuildInputs = [ pkgconfig intltool autoreconfHook ];
+  buildInputs = [ glib gtk3 gnupg22 gpgme dbus-glib libgnome-keyring ];
   propagatedBuildInputs = [ dbus-glib ];
 
   passthru = {
diff --git a/pkgs/development/libraries/libcryptui/fix-gnupg-2.2.patch b/pkgs/development/libraries/libcryptui/fix-gnupg-2.2.patch
new file mode 100644
index 00000000000..50d5e0c82c1
--- /dev/null
+++ b/pkgs/development/libraries/libcryptui/fix-gnupg-2.2.patch
@@ -0,0 +1,26 @@
+From b05e301d1b264a5d8f07cb96e5edc243d99bff79 Mon Sep 17 00:00:00 2001
+From: Antoine Jacoutot <ajacoutot@gnome.org>
+Date: Fri, 10 Nov 2017 08:55:55 +0100
+Subject: [PATCH] Accept GnuPG 2.2.x as supported version
+
+https://bugzilla.gnome.org/show_bug.cgi?id=790152
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4486e7b2..be5b28b4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -95,7 +95,7 @@ AC_ARG_ENABLE(gpg-check,
+ 	DO_CHECK=$enableval, DO_CHECK=yes)
+ 
+ if test	"$DO_CHECK" = "yes"; then
+-	accepted_versions="1.2 1.4 2.0"
++	accepted_versions="1.2 1.4 2.0 2.2"
+ 	AC_PATH_PROGS(GNUPG, [gpg gpg2], no)
+ 	AC_DEFINE_UNQUOTED(GNUPG, "$GNUPG", [Path to gpg executable.])
+ 	ok="no"
+-- 
+GitLab
+
diff --git a/pkgs/development/libraries/libde265/default.nix b/pkgs/development/libraries/libde265/default.nix
index c9f45280bda..7c136dd7805 100644
--- a/pkgs/development/libraries/libde265/default.nix
+++ b/pkgs/development/libraries/libde265/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.5";
+  version = "1.0.6";
   pname = "libde265";
 
   src = fetchFromGitHub {
     owner = "strukturag";
     repo = "libde265";
     rev = "v${version}";
-    sha256 = "1qisj8ryzbknam3hk81rq70fsd9mcpxm898bqygvbsmbwyvmz3pg";
+    sha256 = "0ipccyavlgf7hfzx1g8bvzg62xq10vcxvwgq70r3z3j6mdvmrzjp";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/development/libraries/libdigidoc/default.nix b/pkgs/development/libraries/libdigidoc/default.nix
index 0acab602331..5936853dcbc 100644
--- a/pkgs/development/libraries/libdigidoc/default.nix
+++ b/pkgs/development/libraries/libdigidoc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, openssl, pcsclite, opensc, libxml2 }:
+{ stdenv, fetchurl, cmake, openssl, pcsclite, opensc, libxml2, Security }:
 
 stdenv.mkDerivation rec {
 
@@ -12,13 +12,16 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ openssl pcsclite opensc libxml2 ];
+  buildInputs = [ openssl pcsclite opensc libxml2 ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+  cmakeFlags = stdenv.lib.optionals stdenv.isDarwin [ "-DFRAMEWORK=OFF" ];
 
   meta = with stdenv.lib; {
     description = "Library for creating DigiDoc signature files";
-    homepage = "http://www.id.ee/";
+    homepage = "https://github.com/open-eid/libdigidoc";
     license = licenses.lgpl2;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.jagajaga ];
   };
 }
diff --git a/pkgs/development/libraries/libdrm/cross-build-nm-path.patch b/pkgs/development/libraries/libdrm/cross-build-nm-path.patch
index 478534e65e5..547ef0d0969 100644
--- a/pkgs/development/libraries/libdrm/cross-build-nm-path.patch
+++ b/pkgs/development/libraries/libdrm/cross-build-nm-path.patch
@@ -17,18 +17,17 @@ Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
  2 files changed, 7 insertions(+), 1 deletion(-)
 
 diff --git a/meson.build b/meson.build
-index e292554a..64607139 100644
---- a/meson.build
-+++ b/meson.build
-@@ -327,7 +327,7 @@ pkg.generate(
- )
- 
- env_test = environment()
--env_test.set('NM', find_program('nm').path())
-+env_test.set('NM', find_program(get_option('nm-path')).path())
- 
- if with_libkms
-   subdir('libkms')
+--- meson.build.orig	2020-06-18 11:13:57.716321962 +0200
++++ meson.build	2020-06-18 11:19:50.456861311 +0200
+@@ -45,7 +45,7 @@
+ cc = meson.get_compiler('c')
+
+ symbols_check = find_program('symbols-check.py')
+-prog_nm = find_program('nm')
++prog_nm = find_program(get_option('nm-path'))
+
+ # Check for atomics
+ intel_atomics = false
 diff --git a/meson_options.txt b/meson_options.txt
 index 8af33f1c..b4f46a52 100644
 --- a/meson_options.txt
diff --git a/pkgs/development/libraries/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix
index 0d6ff189765..328c85830fb 100644
--- a/pkgs/development/libraries/libdrm/default.nix
+++ b/pkgs/development/libraries/libdrm/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libdrm";
-  version = "2.4.100";
+  version = "2.4.102";
 
   src = fetchurl {
-    url = "https://dri.freedesktop.org/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0p8a1l3a3s40i81mawm8nhrbk7p97ss05qkawp1yx73c30lchz67";
+    url = "https://dri.freedesktop.org/${pname}/${pname}-${version}.tar.xz";
+    sha256 = "0nx0bd9dhymdsd99v4ifib77yjirkvkxf5hzdkbr7qr8dhrzkjwb";
   };
 
   outputs = [ "out" "dev" "bin" ];
@@ -17,15 +17,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libpthreadstubs libpciaccess ]
     ++ lib.optional withValgrind valgrind-light;
 
-  patches = [ ./cross-build-nm-path.patch ] ++
-    lib.optionals stdenv.hostPlatform.isMusl [
-      # Fix tests not building on musl because they use the glibc-specific
-      # (non-POSIX) `ioctl()` type signature. See #66441.
-      (fetchpatch {
-        url = "https://raw.githubusercontent.com/openembedded/openembedded-core/30a2af80f5f8c8ddf0f619e4f50451b02baa22dd/meta/recipes-graphics/drm/libdrm/musl-ioctl.patch";
-        sha256 = "0rdmh4k5kb80hhk1sdhlil30yf0s8d8w0fnq0hzyvw3ir1mki3by";
-      })
-    ];
+  patches = [ ./cross-build-nm-path.patch ];
 
   postPatch = ''
     for a in */*-symbol-check ; do
diff --git a/pkgs/development/libraries/libebml/default.nix b/pkgs/development/libraries/libebml/default.nix
index cbfcf5af042..29c4b4c3b09 100644
--- a/pkgs/development/libraries/libebml/default.nix
+++ b/pkgs/development/libraries/libebml/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libebml";
-  version = "1.3.10";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner  = "Matroska-Org";
     repo   = "libebml";
     rev    = "release-${version}";
-    sha256 = "1vn0g4hsygrm29qvnzhrblpwjcy2x6swf799ibxv3bzpi1j0gris";
+    sha256 = "052v4mjynndj9xgfl4lmlsnx9ai0pah0kjyr5fm34l7gj8vhc5s7";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/development/libraries/libelf/default.nix b/pkgs/development/libraries/libelf/default.nix
index 4e4afe96d54..2b56f973b5d 100644
--- a/pkgs/development/libraries/libelf/default.nix
+++ b/pkgs/development/libraries/libelf/default.nix
@@ -2,6 +2,11 @@
 , fetchurl, autoreconfHook, gettext
 }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   name = "libelf-0.8.13";
 
diff --git a/pkgs/development/libraries/libev/default.nix b/pkgs/development/libraries/libev/default.nix
index 74aa8133a99..1ea0615dc23 100644
--- a/pkgs/development/libraries/libev/default.nix
+++ b/pkgs/development/libraries/libev/default.nix
@@ -1,5 +1,10 @@
 { stdenv, fetchurl, static ? false }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   pname = "libev";
   version="4.33";
diff --git a/pkgs/development/libraries/libevdev/default.nix b/pkgs/development/libraries/libevdev/default.nix
index 9b1184f1c0b..fdd5e20640a 100644
--- a/pkgs/development/libraries/libevdev/default.nix
+++ b/pkgs/development/libraries/libevdev/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, python3 }:
+{ stdenv, fetchurl, fetchpatch, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "libevdev";
-  version = "1.9.0";
+  version = "1.9.1";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "17pb5375njb1r05xmk0r57a2j986ihglh2n5nqcylbag4rj8mqg7";
+    sha256 = "1jvsphdrs1i54ccjcn6ll26jy42am7h28lbsvwa6pmxgqm43qq7m";
   };
 
   nativeBuildInputs = [ python3 ];
diff --git a/pkgs/development/libraries/libevent/default.nix b/pkgs/development/libraries/libevent/default.nix
index eaa2933505c..880ba746bb9 100644
--- a/pkgs/development/libraries/libevent/default.nix
+++ b/pkgs/development/libraries/libevent/default.nix
@@ -6,11 +6,11 @@ assert sslSupport -> openssl != null;
 
 stdenv.mkDerivation rec {
   pname = "libevent";
-  version = "2.1.11";
+  version = "2.1.12";
 
   src = fetchurl {
     url = "https://github.com/libevent/libevent/releases/download/release-${version}-stable/libevent-${version}-stable.tar.gz";
-    sha256 = "0g988zqm45sj1hlhhz4il5z4dpi5dl74hzjwzl4md37a09iaqnx6";
+    sha256 = "1fq30imk8zd26x8066di3kpc5zyfc5z6frr3zll685zcx4dxxrlj";
   };
 
   # libevent_openssl is moved into its own output, so that openssl isn't present
diff --git a/pkgs/development/libraries/libffi/default.nix b/pkgs/development/libraries/libffi/default.nix
index eecffeba23d..d7dad6d956d 100644
--- a/pkgs/development/libraries/libffi/default.nix
+++ b/pkgs/development/libraries/libffi/default.nix
@@ -3,6 +3,11 @@
 
 }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   name = "libffi-3.3";
 
diff --git a/pkgs/development/libraries/libfido2/default.nix b/pkgs/development/libraries/libfido2/default.nix
index b062b10732e..48b457b09de 100644
--- a/pkgs/development/libraries/libfido2/default.nix
+++ b/pkgs/development/libraries/libfido2/default.nix
@@ -11,10 +11,10 @@
 
 stdenv.mkDerivation rec {
   pname = "libfido2";
-  version = "1.4.0";
+  version = "1.5.0";
   src = fetchurl {
     url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
-    sha256 = "0v1a3n0qljmrp8y9pmnmbsdsy79l3z84qmhyjx50xdsbgnz1z4md";
+    sha256 = "08iizxq3w8mpkwfrfpl59csffc20yz8x398bl3kf23rrr4izk42r";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
@@ -22,14 +22,6 @@ stdenv.mkDerivation rec {
   buildInputs = [ hidapi libcbor openssl ]
     ++ stdenv.lib.optionals stdenv.isLinux [ udev ];
 
-  patches = [
-    # make build reproducible
-    (fetchpatch {
-      url = "https://github.com/Yubico/libfido2/commit/e79f7d7996e70d6b2ae9826fce81d61659cab4f6.patch";
-      sha256 = "0jwg69f95qqf0ym24q1ka50d3d3338cyw4fdfzpw4sab0shiaq9v";
-    })
-  ];
-
   cmakeFlags = [
     "-DUDEV_RULES_DIR=${placeholder "out"}/etc/udev/rules.d"
     "-DUSE_HIDAPI=1"
diff --git a/pkgs/development/libraries/libfilezilla/default.nix b/pkgs/development/libraries/libfilezilla/default.nix
index 3bd54951994..5edcb7e410f 100644
--- a/pkgs/development/libraries/libfilezilla/default.nix
+++ b/pkgs/development/libraries/libfilezilla/default.nix
@@ -5,20 +5,23 @@
 , gnutls
 , nettle
 , pkgconfig
+, libiconv
+, ApplicationServices
 }:
 
 stdenv.mkDerivation rec {
   pname = "libfilezilla";
-  version = "0.22.0";
+  version = "0.24.0";
 
   src = fetchurl {
     url = "https://download.filezilla-project.org/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0ylgxw1lxdqvayy5285mlfrkr9cvsgasy2zci6g6mv9rng261xn5";
+    sha256 = "1372i9f501kn8p1vkqdydaqvvi6lzxsnw2yzyxx5j4syqd4p0qa5";
   };
 
   nativeBuildInputs = [ pkgconfig ];
 
-  buildInputs = [ gettext gnutls nettle ];
+  buildInputs = [ gettext gnutls nettle ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv ApplicationServices ];
 
   enableParallelBuilding = true;
 
@@ -27,6 +30,6 @@ stdenv.mkDerivation rec {
     description = "A modern C++ library, offering some basic functionality to build high-performing, platform-independent programs";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ pSub ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libgaminggear/default.nix b/pkgs/development/libraries/libgaminggear/default.nix
index 1b528b98e85..c0aa67238bf 100644
--- a/pkgs/development/libraries/libgaminggear/default.nix
+++ b/pkgs/development/libraries/libgaminggear/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, cmake, pkgconfig, gettext
 , gtk2, libcanberra, libnotify, pcre, sqlite, xorg
+, harfbuzz
 }:
 
 stdenv.mkDerivation rec {
@@ -27,6 +28,9 @@ stdenv.mkDerivation rec {
     "-DINSTALL_LIBDIR=lib"
   ];
 
+  # https://sourceforge.net/p/libgaminggear/discussion/general/thread/b43a776b3a/
+  NIX_CFLAGS_COMPILE = [ "-I${harfbuzz.dev}/include/harfbuzz" ];
+
   postFixup = ''
     moveToOutput bin "$bin"
   '';
diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix
index 49aaec66c29..d49fa37325a 100644
--- a/pkgs/development/libraries/libgcrypt/default.nix
+++ b/pkgs/development/libraries/libgcrypt/default.nix
@@ -6,11 +6,11 @@ assert enableCapabilities -> stdenv.isLinux;
 
 stdenv.mkDerivation rec {
   pname = "libgcrypt";
-  version = "1.8.5";
+  version = "1.8.6";
 
   src = fetchurl {
     url = "mirror://gnupg/libgcrypt/${pname}-${version}.tar.bz2";
-    sha256 = "1hvsazms1bfd769q0ngl0r9g5i4m9mpz9jmvvrdzyzk3rfa2ljiv";
+    sha256 = "0xdrsxgqw5v7szshjdgdv60rgpvzzaqic32ahqrzr6bvc402gfhc";
   };
 
   outputs = [ "out" "dev" "info" ];
diff --git a/pkgs/development/libraries/libgdiplus/default.nix b/pkgs/development/libraries/libgdiplus/default.nix
index 1ff02a8709d..70043d1132d 100644
--- a/pkgs/development/libraries/libgdiplus/default.nix
+++ b/pkgs/development/libraries/libgdiplus/default.nix
@@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
 
   configureFlags = stdenv.lib.optional stdenv.cc.isClang "--host=${stdenv.hostPlatform.system}";
 
+  enableParallelBuilding = true;
+
   buildInputs =
     [ glib cairo fontconfig libtiff giflib
       libjpeg libpng libXrender libexif
diff --git a/pkgs/development/libraries/libglvnd/default.nix b/pkgs/development/libraries/libglvnd/default.nix
index 92cde8aef4c..3a4737d483b 100644
--- a/pkgs/development/libraries/libglvnd/default.nix
+++ b/pkgs/development/libraries/libglvnd/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libglvnd";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "NVIDIA";
     repo = "libglvnd";
     rev = "v${version}";
-    sha256 = "0mkzdzdxjxjl794rblq4mq33wmb8ikqmfswbqdbr8gw2kw4wlhdl";
+    sha256 = "10x7fgb114r4gikdg6flszl3kwzcb9y5qa7sj9936mk0zxhjaylz";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig python3 addOpenGLRunpath ];
diff --git a/pkgs/development/libraries/libguestfs/default.nix b/pkgs/development/libraries/libguestfs/default.nix
index 411ae0a3316..234e1164893 100644
--- a/pkgs/development/libraries/libguestfs/default.nix
+++ b/pkgs/development/libraries/libguestfs/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig, autoreconfHook, makeWrapper
 , ncurses, cpio, gperf, cdrkit, flex, bison, qemu, pcre, augeas, libxml2
-, acl, libcap, libcap_ng, libconfig, systemd, fuse, yajl, libvirt, hivex
+, acl, libcap, libcap_ng, libconfig, systemd, fuse, yajl, libvirt, hivex, db
 , gmp, readline, file, numactl, xen, libapparmor, jansson
 , getopt, perlPackages, ocamlPackages
 , appliance ? null
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     ncurses cpio gperf jansson
     cdrkit flex bison qemu pcre augeas libxml2 acl libcap libcap_ng libconfig
-    systemd fuse yajl libvirt gmp readline file hivex
+    systemd fuse yajl libvirt gmp readline file hivex db
     numactl xen libapparmor getopt perlPackages.ModuleBuild
   ] ++ (with perlPackages; [ perl libintl_perl GetoptLong SysVirt ])
     ++ (with ocamlPackages; [ ocaml findlib ocamlbuild ocaml_libvirt gettext-stub ounit ])
diff --git a/pkgs/development/libraries/libgweather/default.nix b/pkgs/development/libraries/libgweather/default.nix
index 51ee70f070c..5493343fc23 100644
--- a/pkgs/development/libraries/libgweather/default.nix
+++ b/pkgs/development/libraries/libgweather/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libgweather";
-  version = "3.36.0";
+  version = "3.36.1";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0bd30g3facfcgf18y2110xhc7ijly313y49mpwdkvl482z0fxzyj";
+    sha256 = "0l74hc02rvzm4p530y539a67jwb080fqdaazdl8j0fr3xvq0j9yy";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig gettext vala gtk-doc docbook_xsl docbook_xml_dtd_43 gobject-introspection python3 ];
diff --git a/pkgs/development/libraries/libhdhomerun/default.nix b/pkgs/development/libraries/libhdhomerun/default.nix
index bcab7faa412..73d53bdccd7 100644
--- a/pkgs/development/libraries/libhdhomerun/default.nix
+++ b/pkgs/development/libraries/libhdhomerun/default.nix
@@ -1,12 +1,16 @@
-{ stdenv, fetchgit }:
+{ stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "libhdhomerun-1efbcb";
+# libhdhomerun requires UDP port 65001 to be open in order to detect and communicate with tuners.
+# If your firewall is enabled, make sure to have something like:
+#   networking.firewall.allowedUDPPorts = [ 65001 ];
 
-  src = fetchgit {
-    url = "git://github.com/Silicondust/libhdhomerun.git";
-    rev = "1efbcb2b87b17a82f2b3d873d1c9cc1c6a3a9b77";
-    sha256 = "11iyrfs98xb50n9iqnwfphmmnn5w3mq2l9cjjpf8qp29cvs33cgy";
+stdenv.mkDerivation rec {
+  pname = "libhdhomerun";
+  version = "20200521";
+
+  src = fetchurl {
+    url = "https://download.silicondust.com/hdhomerun/libhdhomerun_${version}.tgz";
+    sha256 = "0s0683bwyd10n3r2sanlyd07ii3fmi3vl9w9a2rwlpcclzq3h456";
   };
 
   patchPhase = stdenv.lib.optionalString stdenv.isDarwin ''
@@ -23,10 +27,9 @@ stdenv.mkDerivation {
 
   meta = with stdenv.lib; {
     description = "Implements the libhdhomerun protocol for use with Silicondust HDHomeRun TV tuners";
-    homepage = "https://github.com/Silicondust/libhdhomerun";
-    repositories.git = "https://github.com/Silicondust/libhdhomerun.git";
-    license = stdenv.lib.licenses.lgpl2;
-    platforms = stdenv.lib.platforms.unix;
+    homepage = "https://www.silicondust.com/support/linux";
+    license = licenses.lgpl21Only;
+    platforms = platforms.unix;
     maintainers = [ maintainers.titanous ];
   };
 }
diff --git a/pkgs/development/libraries/libheif/default.nix b/pkgs/development/libraries/libheif/default.nix
index d147820cff1..fd527eb415b 100644
--- a/pkgs/development/libraries/libheif/default.nix
+++ b/pkgs/development/libraries/libheif/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libheif";
-  version = "1.7.0";
+  version = "1.8.0";
 
   outputs = [ "bin" "out" "dev" "man" ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "strukturag";
     repo = "libheif";
     rev = "v${version}";
-    sha256 = "0alri5h486ck9b5z6wwrmlpzydhz58l223z3zxkizqrzxlllhr6p";
+    sha256 = "15az44qdqp2vncdfv1bzdl30977kvqxcb2bhx4x3q6vcxnm1xfgg";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/development/libraries/libhugetlbfs/default.nix b/pkgs/development/libraries/libhugetlbfs/default.nix
new file mode 100644
index 00000000000..ed5f67d4370
--- /dev/null
+++ b/pkgs/development/libraries/libhugetlbfs/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, lib, fetchurl, fetchpatch }:
+
+stdenv.mkDerivation rec {
+  pname = "libhugetlbfs";
+  version = "2.22";
+
+  src = fetchurl {
+    url = "https://github.com/libhugetlbfs/libhugetlbfs/releases/download/${version}/libhugetlbfs-${version}.tar.gz";
+    sha256 = "11b7k8xvgx68rjzidm12a6l6b23hwi7hj149y9xxfz2j5kmakp4l";
+  };
+
+  outputs = [ "bin" "dev" "man" "doc" "lib" "out" ];
+
+  patches = [
+    # Don't check that 32-bit and 64-bit libraries don't get installed
+    # to the same place if only one platform is being built for.
+    # Can be removed if build succeeds without it.
+    (fetchpatch {
+      url = "https://groups.google.com/forum/message/raw?msg=libhugetlbfs/IswjDAygfwA/PKy7MZbVAAAJ";
+      sha256 = "00fyrhn380d6swil8pcf4x0krl1113ghswrvjn3m9czc3h4p385a";
+    })
+  ];
+
+  postConfigure = ''
+    patchShebangs ld.hugetlbfs
+  '';
+
+  enableParallelBuilding = true;
+  makeFlags = [
+    "BUILDTYPE=NATIVEONLY"
+    "PREFIX=$(out)"
+    "HEADERDIR=$(dev)/include"
+    "LIBDIR32=$(lib)/$(LIB32)"
+    "LIBDIR64=$(lib)/$(LIB64)"
+    "EXEDIR=$(bin)/bin"
+    "DOCDIR=$(doc)/share/doc/libhugetlbfs"
+  ] ++ map (n: "MANDIR${n}=$(man)/share/man/man${n}")
+    (lib.genList (n: toString (n + 1)) 8);
+
+  # Default target builds tests as well, and the tests want a static
+  # libc.
+  buildFlags = [ "libs" "tools" ];
+  installTargets = [ "install" "install-docs" ];
+
+  meta = with lib; {
+    description = "library and utilities for Linux hugepages";
+    maintainers = with maintainers; [ qyliss ];
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/libidn/default.nix b/pkgs/development/libraries/libidn/default.nix
index a0df28a6699..e936f3fd92a 100644
--- a/pkgs/development/libraries/libidn/default.nix
+++ b/pkgs/development/libraries/libidn/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, libiconv }:
 
 stdenv.mkDerivation rec {
-  name = "libidn-1.35";
+  name = "libidn-1.36";
 
   src = fetchurl {
     url = "mirror://gnu/libidn/${name}.tar.gz";
-    sha256 = "07pyy0afqikfq51z5kbzbj9ldbd12mri0zvx0mfv3ds6bc0g26pi";
+    sha256 = "0f20n634whpmdwr81c2r0vxxjwchgkvhsr1i8s2bm0ad6h473dhl";
   };
 
   outputs = [ "bin" "dev" "out" "info" "devdoc" ];
diff --git a/pkgs/development/libraries/libidn2/default.nix b/pkgs/development/libraries/libidn2/default.nix
index 1fc0bd9b399..c5af2d16bb2 100644
--- a/pkgs/development/libraries/libidn2/default.nix
+++ b/pkgs/development/libraries/libidn2/default.nix
@@ -1,5 +1,10 @@
 { fetchurl, stdenv, libiconv, libunistring, help2man, buildPackages }:
 
+# 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
+# files.
+
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/development/libraries/libiio/default.nix b/pkgs/development/libraries/libiio/default.nix
index 03324c15d8f..c4136428035 100644
--- a/pkgs/development/libraries/libiio/default.nix
+++ b/pkgs/development/libraries/libiio/default.nix
@@ -1,49 +1,62 @@
-{ stdenv, fetchFromGitHub
-, cmake, flex, bison
-, libxml2, python
-, libusb1, runtimeShell
+{ stdenv
+, fetchFromGitHub
+, cmake
+, flex
+, bison
+, libxml2
+, python
+, libusb1
+, runtimeShell
 }:
 
 stdenv.mkDerivation rec {
   pname = "libiio";
-  version = "0.20";
+  version = "0.21";
+
+  outputs = [ "out" "lib" "dev" "python" ];
 
   src = fetchFromGitHub {
-    owner  = "analogdevicesinc";
-    repo   = "libiio";
-    rev    = "refs/tags/v${version}";
-    sha256 = "1929gvizkqmm9cwh3vihxxszfxvgcp5saq9q6chdk3fpdhzajc00";
+    owner = "analogdevicesinc";
+    repo = "libiio";
+    rev = "v${version}";
+    sha256 = "0psw67mzysdb8fkh8xpcwicm7z94k8plkcc8ymxyvl6inshq0mc7";
   };
 
-  outputs = [ "out" "lib" "dev" "python" ];
+  nativeBuildInputs = [
+    cmake
+    flex
+    bison
+  ];
+
+  buildInputs = [
+    python
+    libxml2
+    libusb1
+  ];
 
-  nativeBuildInputs = [ cmake flex bison ];
-  buildInputs = [ libxml2 libusb1 ];
+  cmakeFlags = [
+    "-DUDEV_RULES_INSTALL_DIR=${placeholder "out"}/lib/udev/rules.d"
+    "-DPYTHON_BINDINGS=on"
+  ];
 
   postPatch = ''
+    # Hardcode path to the shared library into the bindings.
+    sed "s#@libiio@#$lib/lib/libiio${stdenv.hostPlatform.extensions.sharedLibrary}#g" ${./hardcode-library-path.patch} | patch -p1
+
     substituteInPlace libiio.rules.cmakein \
       --replace /bin/sh ${runtimeShell}
   '';
 
-  # since we can't expand $out in cmakeFlags
-  preConfigure = ''
-    cmakeFlags="$cmakeFlags -DUDEV_RULES_INSTALL_DIR=$out/etc/udev/rules.d"
-  '';
-
   postInstall = ''
-    mkdir -p $python/lib/${python.libPrefix}/site-packages/
-    touch $python/lib/${python.libPrefix}/site-packages/
-    cp ../bindings/python/iio.py $python/lib/${python.libPrefix}/site-packages/
-
-    substitute ../bindings/python/iio.py $python/lib/${python.libPrefix}/site-packages/iio.py \
-      --replace 'libiio.so.0' $lib/lib/libiio.so.0
+    # Move Python bindings into a separate output.
+    moveToOutput ${python.sitePackages} "$python"
   '';
 
   meta = with stdenv.lib; {
     description = "API for interfacing with the Linux Industrial I/O Subsystem";
-    homepage    = "https://github.com/analogdevicesinc/libiio";
-    license     = licenses.lgpl21;
-    platforms   = platforms.linux;
+    homepage = "https://github.com/analogdevicesinc/libiio";
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ thoughtpolice ];
   };
 }
diff --git a/pkgs/development/libraries/libiio/hardcode-library-path.patch b/pkgs/development/libraries/libiio/hardcode-library-path.patch
new file mode 100644
index 00000000000..dad35851cdc
--- /dev/null
+++ b/pkgs/development/libraries/libiio/hardcode-library-path.patch
@@ -0,0 +1,38 @@
+diff --git a/bindings/python/iio.py b/bindings/python/iio.py
+index 5306daa..f8962ee 100644
+--- a/bindings/python/iio.py
++++ b/bindings/python/iio.py
+@@ -229,9 +229,9 @@ if "Windows" in _system():
+     _iiolib = "libiio.dll"
+ else:
+     # Non-windows, possibly Posix system
+-    _iiolib = "iio"
++    _iiolib = "@libiio@"
+ 
+-_lib = _cdll(find_library(_iiolib), use_errno=True, use_last_error=True)
++_lib = _cdll(_iiolib, use_errno=True, use_last_error=True)
+ 
+ _get_backends_count = _lib.iio_get_backends_count
+ _get_backends_count.restype = c_uint
+diff --git a/bindings/python/setup.py.cmakein b/bindings/python/setup.py.cmakein
+index cd14e2e..516c409 100644
+--- a/bindings/python/setup.py.cmakein
++++ b/bindings/python/setup.py.cmakein
+@@ -62,7 +62,7 @@ class InstallWrapper(install):
+             _iiolib = "libiio.dll"
+         else:
+             # Non-windows, possibly Posix system
+-            _iiolib = "iio"
++            _iiolib = "@libiio@"
+         try:
+             import os
+ 
+@@ -72,7 +72,7 @@ class InstallWrapper(install):
+                 fulllibpath = find_recursive(destdir, "libiio.so")
+                 _lib = _cdll(fulllibpath, use_errno=True, use_last_error=True)
+             else:
+-                _lib = _cdll(find_library(_iiolib), use_errno=True, use_last_error=True)
++                _lib = _cdll(_iiolib, use_errno=True, use_last_error=True)
+             if not _lib._name:
+                 raise OSError
+         except OSError:
diff --git a/pkgs/development/libraries/libinput/default.nix b/pkgs/development/libraries/libinput/default.nix
index f490dfbd23a..576a2fec921 100644
--- a/pkgs/development/libraries/libinput/default.nix
+++ b/pkgs/development/libraries/libinput/default.nix
@@ -27,11 +27,11 @@ in
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "libinput";
-  version = "1.15.5";
+  version = "1.16.1";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/libinput/${pname}-${version}.tar.xz";
-    sha256 = "15ww4jl3lcxyi8m8idg8canklbqv729gnwpkz7r98c1w8a7zq3m9";
+    sha256 = "e6fRru3RUWi7IdF+nmKKocJ5V5Y6Qjo/6jk4pQF1hTk=";
   };
 
   outputs = [ "bin" "out" "dev" ];
@@ -47,10 +47,23 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig meson ninja ]
     ++ optionals documentationSupport [ doxygen graphviz sphinx-build ];
 
-  buildInputs = [ libevdev mtdev libwacom ]
+  buildInputs = [
+    libevdev
+    mtdev
+    libwacom
+    (python3.withPackages (pp: with pp; [
+      pp.libevdev # already in scope
+      pyudev
+      pyyaml
+      setuptools
+    ]))
+  ]
     ++ optionals eventGUISupport [ cairo glib gtk3 ];
 
-  checkInputs = [ (python3.withPackages (pkgs: with pkgs; [ evdev ])) check valgrind ];
+  checkInputs = [
+    check
+    valgrind
+  ];
 
   propagatedBuildInputs = [ udev ];
 
@@ -60,6 +73,7 @@ stdenv.mkDerivation rec {
     patchShebangs tools/helper-copy-and-exec-from-tmp.sh
     patchShebangs test/symbols-leak-test
     patchShebangs test/check-leftover-udev-rules.sh
+    patchShebangs test/helper-copy-and-exec-from-tmp.sh
   '';
 
   doCheck = testsSupport && stdenv.hostPlatform == stdenv.buildPlatform;
diff --git a/pkgs/development/libraries/libipt/default.nix b/pkgs/development/libraries/libipt/default.nix
index cb4db488dc4..79ae927fc24 100644
--- a/pkgs/development/libraries/libipt/default.nix
+++ b/pkgs/development/libraries/libipt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libipt";
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "libipt";
     rev = "v${version}";
-    sha256 = "19y1lk5z1rf8xmr08m8zrpjkgr5as83b96xyaxwn67m2wz58mpmh";
+    sha256 = "095agnk7r2sq5yas6c1ri8fmsl55n4l5hkl6j5l397p9nxvxvrkc";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libjpeg-turbo/default.nix b/pkgs/development/libraries/libjpeg-turbo/default.nix
index 9bd909d3f6e..36838341fe2 100644
--- a/pkgs/development/libraries/libjpeg-turbo/default.nix
+++ b/pkgs/development/libraries/libjpeg-turbo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, cmake, nasm, enableStatic ? false }:
+{ stdenv, fetchurl, fetchpatch, cmake, nasm, enableStatic ? false, enableShared ? true }:
 
 stdenv.mkDerivation rec {
 
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DENABLE_STATIC=${if enableStatic then "1" else "0"}"
+    "-DENABLE_SHARED=${if enableShared then "1" else "0"}"
   ];
 
   doInstallCheck = true;
diff --git a/pkgs/development/libraries/liblinear/default.nix b/pkgs/development/libraries/liblinear/default.nix
index af09b1241de..86d306d0a07 100644
--- a/pkgs/development/libraries/liblinear/default.nix
+++ b/pkgs/development/libraries/liblinear/default.nix
@@ -1,35 +1,37 @@
-{ stdenv, fetchurl, fixDarwinDylibNames }:
+{ stdenv, fetchFromGitHub, fixDarwinDylibNames }:
 
-stdenv.mkDerivation rec {
+let
+  soVersion = "4";
+in stdenv.mkDerivation rec {
   pname = "liblinear";
-  version = "2.30";
+  version = "2.41";
 
-  src = fetchurl {
-    url = "https://www.csie.ntu.edu.tw/~cjlin/liblinear/liblinear-${version}.tar.gz";
-    sha256 = "1b66jpg9fdwsq7r52fccr8z7nqcivrin5d8zg2f134ygqqwp0748";
+  src = fetchFromGitHub {
+    owner = "cjlin1";
+    repo = "liblinear";
+    rev = "v${builtins.replaceStrings ["."] [""] version}";
+    sha256 = "1mykrzka2wxnvvjh21hisabs5fsxqzdhkxw9m08h24c58vfiwsd8";
   };
 
-  buildPhase = ''
-    make
-    make lib
-  '';
+  outputs = [ "bin" "dev" "out" ];
+
+  nativeBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ fixDarwinDylibNames ];
+
+  buildFlags = [ "lib" "predict" "train" ];
 
   installPhase = ''
-    mkdir -p $out/lib $out/bin $out/include
     ${if stdenv.isDarwin then ''
-      cp liblinear.so.3 $out/lib/liblinear.3.dylib
-      ln -s $out/lib/liblinear.3.dylib $out/lib/liblinear.dylib
+      install -D liblinear.so.${soVersion} $out/lib/liblinear.${soVersion}.dylib
+      ln -s $out/lib/liblinear.${soVersion}.dylib $out/lib/liblinear.dylib
     '' else ''
-      cp liblinear.so.3 $out/lib/liblinear.so.3
-      ln -s $out/lib/liblinear.so.3 $out/lib/liblinear.so
+      install -Dt $out/lib liblinear.so.${soVersion}
+      ln -s $out/lib/liblinear.so.${soVersion} $out/lib/liblinear.so
     ''}
-    cp train $out/bin/liblinear-train
-    cp predict $out/bin/liblinear-predict
-    cp linear.h $out/include
+    install -D train $bin/bin/liblinear-train
+    install -D predict $bin/bin/liblinear-predict
+    install -Dm444 -t $dev/include linear.h
   '';
 
-  nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin [ fixDarwinDylibNames ];
-
   meta = with stdenv.lib; {
     description = "A library for large linear classification";
     homepage = "https://www.csie.ntu.edu.tw/~cjlin/liblinear/";
diff --git a/pkgs/development/libraries/liblouis/default.nix b/pkgs/development/libraries/liblouis/default.nix
index 5d0459b4f30..c394e3dc4d5 100644
--- a/pkgs/development/libraries/liblouis/default.nix
+++ b/pkgs/development/libraries/liblouis/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "liblouis";
-  version = "3.14.0";
+  version = "3.15.0";
 
   src = fetchFromGitHub {
     owner = "liblouis";
     repo = "liblouis";
     rev = "v${version}";
-    sha256 = "0v6w8b9r994mkkbm2gqgd7k5yfmdhgbabh0j1gmn375nyvhy4qqh";
+    sha256 = "1ljy5xsy7vf2r0ix0d7bqcr6qvr6897f8madsx9zlm1mrj31n5px";
   };
 
   outputs = [ "out" "dev" "man" "info" "doc" ];
diff --git a/pkgs/development/libraries/libmatroska/default.nix b/pkgs/development/libraries/libmatroska/default.nix
index 2d56a6db766..5d065636a92 100644
--- a/pkgs/development/libraries/libmatroska/default.nix
+++ b/pkgs/development/libraries/libmatroska/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libmatroska";
-  version = "1.5.2";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner  = "Matroska-Org";
     repo   = "libmatroska";
     rev    = "release-${version}";
-    sha256 = "057iib6p62x31g1ikdjsjzmqzjlajqx6p74h7y4r524pzgb27fzy";
+    sha256 = "0yhr9hhgljva1fx3b0r4s3wkkypdfgsysbl35a4g3krkbhaa9rsd";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/development/libraries/libmaxminddb/default.nix b/pkgs/development/libraries/libmaxminddb/default.nix
index 493f1b5ce61..94a4b9ec57c 100644
--- a/pkgs/development/libraries/libmaxminddb/default.nix
+++ b/pkgs/development/libraries/libmaxminddb/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmaxminddb";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchurl {
     url = meta.homepage + "/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0mnimbaxnnarlw7g1rh8lpxsyf7xnmzwcczcc3lxw8xyf6ljln6x";
+    sha256 = "0fd4a4sxiiwzbd5h74wl1ijnb7xybjyybb7q41vdq3w8nk3zdzd5";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libmbim/default.nix b/pkgs/development/libraries/libmbim/default.nix
index 8750ee599ce..0e9a3784f38 100644
--- a/pkgs/development/libraries/libmbim/default.nix
+++ b/pkgs/development/libraries/libmbim/default.nix
@@ -1,23 +1,33 @@
-{ stdenv, fetchurl, pkgconfig, glib, python3, systemd, libgudev }:
+{ stdenv
+, fetchurl
+, pkg-config
+, gobject-introspection
+, glib
+, python3
+, systemd
+, libgudev
+}:
 
 stdenv.mkDerivation rec {
   pname = "libmbim";
-  version = "1.23.900";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/libmbim/${pname}-${version}.tar.xz";
-    sha256 = "0ikzjs44q44cj4m786gvm575a7x61rgmav6b60n2y74pgqvj3791";
+    sha256 = "1r41d4yddp8rgccxrkz9vg5lbrj3dr5vy71d8igrr147k44qq69j";
   };
 
   outputs = [ "out" "dev" "man" ];
 
   configureFlags = [
     "--with-udev-base-dir=${placeholder "out"}/lib/udev"
+    "--enable-introspection"
   ];
 
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
     python3
+    gobject-introspection
   ];
 
   buildInputs = [
diff --git a/pkgs/development/libraries/libmediainfo/default.nix b/pkgs/development/libraries/libmediainfo/default.nix
index ab7bb7e6cb9..e6650db85cc 100644
--- a/pkgs/development/libraries/libmediainfo/default.nix
+++ b/pkgs/development/libraries/libmediainfo/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "20.03";
+  version = "20.08";
   pname = "libmediainfo";
   src = fetchurl {
     url = "https://mediaarea.net/download/source/libmediainfo/${version}/libmediainfo_${version}.tar.xz";
-    sha256 = "0wkzj5s34m8dvy7hif4h8f90q8ncrzd930gij1zzw3h5nw732j38";
+    sha256 = "19n8h9jq42b6r3dbag77fzwfksfywszmzpi636w87fvc1nqldlqj";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/development/libraries/libmicrohttpd/default.nix b/pkgs/development/libraries/libmicrohttpd/default.nix
index c160b678be7..4a7a228150c 100644
--- a/pkgs/development/libraries/libmicrohttpd/default.nix
+++ b/pkgs/development/libraries/libmicrohttpd/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmicrohttpd";
-  version = "0.9.70";
+  version = "0.9.71";
 
   src = fetchurl {
     url = "mirror://gnu/libmicrohttpd/${pname}-${version}.tar.gz";
-    sha256 = "01vkjy89b1ylmh22dy5yza2r414nfwcfixxh3v29nvzrjv9s7l4h";
+    sha256 = "10mii4mifmfs3v7kgciqml7f0fj7ljp0sngrx64pnwmgbzl4bx78";
   };
 
   outputs = [ "out" "dev" "devdoc" "info" ];
diff --git a/pkgs/development/libraries/libmpc/default.nix b/pkgs/development/libraries/libmpc/default.nix
index 235474c0ca1..79fa1743781 100644
--- a/pkgs/development/libraries/libmpc/default.nix
+++ b/pkgs/development/libraries/libmpc/default.nix
@@ -2,8 +2,13 @@
 , gmp, mpfr
 }:
 
+# 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
+# files.
+
 let
-  version = "1.1.0";
+  version = "1.2.0";
 in
 stdenv.mkDerivation {
   pname = "libmpc";
@@ -11,7 +16,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://gnu/mpc/mpc-${version}.tar.gz";
-    sha256 = "0biwnhjm3rx3hc0rfpvyniky4lpzsvdcwhmcn7f0h4iw2hwcb1b9";
+    sha256 = "19pxx3gwhwl588v496g3aylhcw91z1dk1d5x3a8ik71sancjs3z9";
   };
 
   buildInputs = [ gmp mpfr ];
diff --git a/pkgs/development/libraries/libmysqlconnectorcpp/default.nix b/pkgs/development/libraries/libmysqlconnectorcpp/default.nix
index 71fbda7b471..ecec1e79492 100644
--- a/pkgs/development/libraries/libmysqlconnectorcpp/default.nix
+++ b/pkgs/development/libraries/libmysqlconnectorcpp/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmysqlconnectorcpp";
-  version = "8.0.20";
+  version = "8.0.21";
 
   src = fetchurl {
     url = "https://cdn.mysql.com/Downloads/Connector-C++/mysql-connector-c++-${version}-src.tar.gz";
-    sha256 = "1jrrbfy6sw4pni72c1hgvchx1zzfpnamp34sjnv82mlvsp8ypsjh";
+    sha256 = "08z40419aip26z6ss30g59mvnddb8dfam82l556jyj3gxs0irqbh";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libndctl/default.nix b/pkgs/development/libraries/libndctl/default.nix
index 7a8d1877bc7..7c4c49baffa 100644
--- a/pkgs/development/libraries/libndctl/default.nix
+++ b/pkgs/development/libraries/libndctl/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libndctl";
-  version = "68";
+  version = "69";
 
   src = fetchFromGitHub {
     owner  = "pmem";
     repo   = "ndctl";
     rev    = "v${version}";
-    sha256 = "0xmim7z4qp6x2ggndnbwd940c73pa1qlf3hxyn3qh5pyr69nh9y8";
+    sha256 = "1l7p0ycj27d4z07gf9qp796xpg16kfsg3rwx6plhilbhip1as4w7";
   };
 
   outputs = [ "out" "lib" "man" "dev" ];
diff --git a/pkgs/development/libraries/libngspice/default.nix b/pkgs/development/libraries/libngspice/default.nix
index 3f5ba26d5a4..e1b9e4f0bdc 100644
--- a/pkgs/development/libraries/libngspice/default.nix
+++ b/pkgs/development/libraries/libngspice/default.nix
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "http://ngspice.sourceforge.net";
     license = with licenses; [ bsd3 gpl2Plus lgpl2Plus ]; # See https://sourceforge.net/p/ngspice/ngspice/ci/master/tree/COPYING
     maintainers = with maintainers; [ bgamari ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libnsl/default.nix b/pkgs/development/libraries/libnsl/default.nix
index 1e925eb7b47..76aa3c99e33 100644
--- a/pkgs/development/libraries/libnsl/default.nix
+++ b/pkgs/development/libraries/libnsl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libnsl";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "thkukuk";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1chzqhcgh0yia9js8mh92cmhyka7rh32ql6b3mgdk26n94dqzs8b";
+    sha256 = "1dayj5i4bh65gn7zkciacnwv2a0ghm6nn58d78rsi4zby4lyj5w5";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/development/libraries/libpcap/default.nix b/pkgs/development/libraries/libpcap/default.nix
index d9cb91e4fb3..604fd3ee446 100644
--- a/pkgs/development/libraries/libpcap/default.nix
+++ b/pkgs/development/libraries/libpcap/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     ++ optionals withBluez [ bluez.dev pkgconfig ];
 
   # We need to force the autodetection because detection doesn't
-  # work in pure build enviroments.
+  # work in pure build environments.
   configureFlags = [
     ("--with-pcap=" + {
       linux = "linux";
@@ -29,7 +29,9 @@ stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    rm -f $out/lib/libpcap.a
+    if [ "$dontDisableStatic" -ne "1" ]; then
+      rm -f $out/lib/libpcap.a
+    fi
   '';
 
   meta = {
diff --git a/pkgs/development/libraries/libpfm/default.nix b/pkgs/development/libraries/libpfm/default.nix
index 3398d3feb94..b29aeb2930a 100644
--- a/pkgs/development/libraries/libpfm/default.nix
+++ b/pkgs/development/libraries/libpfm/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, enableShared ? true }:
 
 stdenv.mkDerivation (rec {
-  version = "4.10.1";
+  version = "4.11.0";
   pname = "libpfm";
 
   src = fetchurl {
     url = "mirror://sourceforge/perfmon2/libpfm4/${pname}-${version}.tar.gz";
-    sha256 = "0jabhjx77yppr7x38bkfww6n2a480gj62rw0qp7prhdmg19mf766";
+    sha256 = "1k7yp6xfsglp2b6271r622sjinlbys0dk24n9iiv656y5f3zi9ax";
   };
 
   makeFlags = [
diff --git a/pkgs/development/libraries/libpipeline/default.nix b/pkgs/development/libraries/libpipeline/default.nix
index bf80562a0b1..be3ab953c0a 100644
--- a/pkgs/development/libraries/libpipeline/default.nix
+++ b/pkgs/development/libraries/libpipeline/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "libpipeline-1.5.1";
+  name = "libpipeline-1.5.3";
 
   src = fetchurl {
     url = "mirror://savannah/libpipeline/${name}.tar.gz";
-    sha256 = "0bwh5xz5f2czwb7f564jz1mp4znm8pldnvf65fs0hpw4gmmp0cyn";
+    sha256 = "1c5dl017xil2ssb6a5vg927bnsbc9vymfgi9ahvqbb8gypx0igsx";
   };
 
   patches = stdenv.lib.optionals stdenv.isDarwin [ ./fix-on-osx.patch ];
diff --git a/pkgs/development/libraries/libplacebo/default.nix b/pkgs/development/libraries/libplacebo/default.nix
index cee6d3f1845..dc3e5e30c74 100644
--- a/pkgs/development/libraries/libplacebo/default.nix
+++ b/pkgs/development/libraries/libplacebo/default.nix
@@ -1,33 +1,47 @@
 { stdenv
 , fetchFromGitLab
+, fetchpatch
 , meson
 , ninja
-, pkgconfig
+, pkg-config
+, python3Packages
 , vulkan-headers
 , vulkan-loader
 , shaderc
 , glslang
 , lcms2
+, epoxy
 }:
 
 stdenv.mkDerivation rec {
   pname = "libplacebo";
-  version = "1.29.1";
+  version = "2.72.0";
 
   src = fetchFromGitLab {
     domain = "code.videolan.org";
     owner = "videolan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ly5bwy0pwgvqigpaak8hnig5hksjwf0pzvj3mdv3j2f6f7ya2zz";
+    sha256 = "1yhf9xyxdawbihsx89dpjlac800wrmpwx63rphad2nj225y9q40f";
   };
 
-  postPatch = "substituteInPlace meson.build --replace 1.29.0 1.29.1";
+  patches = [
+    # to work with latest glslang, remove on release >2.72.0
+    (fetchpatch {
+      url = "https://code.videolan.org/videolan/libplacebo/-/commit/523056828ab86c2f17ea65f432424d48b6fdd389.patch";
+      sha256 = "051vhd0l3yad1fzn5zayi08kqs9an9j8p7m63kgqyfv1ksnydpcs";
+    })
+    (fetchpatch {
+      url = "https://code.videolan.org/videolan/libplacebo/-/commit/82e3be1839379791b58e98eb049415b42888d5b0.patch";
+      sha256 = "0nklj9gfiwkbbj6wfm1ck33hphaxrvzb84c4h2nfj88bapnlm90l";
+    })
+  ];
 
   nativeBuildInputs = [
     meson
     ninja
-    pkgconfig
+    pkg-config
+    python3Packages.Mako
   ];
 
   buildInputs = [
@@ -36,13 +50,25 @@ stdenv.mkDerivation rec {
     shaderc
     glslang
     lcms2
+    epoxy
+  ];
+
+  mesonFlags = [
+    "-Dvulkan-registry=${vulkan-headers}/share/vulkan/registry/vk.xml"
   ];
 
   meta = with stdenv.lib; {
     description = "Reusable library for GPU-accelerated video/image rendering primitives";
+    longDescription = ''
+      Reusable library for GPU-accelerated image/view processing primitives and
+      shaders, as well a batteries-included, extensible, high-quality rendering
+      pipeline (similar to mpv's vo_gpu). Supports Vulkan, OpenGL and Metal (via
+      MoltenVK).
+    '';
     homepage = "https://code.videolan.org/videolan/libplacebo";
+    changelog = "https://code.videolan.org/videolan/libplacebo/-/tags/v${version}";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ tadeokondrak ];
+    maintainers = with maintainers; [ primeos tadeokondrak ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/libpqxx/default.nix b/pkgs/development/libraries/libpqxx/default.nix
index a710e09a454..feb9c7e6514 100644
--- a/pkgs/development/libraries/libpqxx/default.nix
+++ b/pkgs/development/libraries/libpqxx/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     description = "A C++ library to access PostgreSQL databases";
     homepage = "http://pqxx.org/development/libpqxx/";
     license = lib.licenses.bsd3;
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.eelco ];
   };
 }
diff --git a/pkgs/development/libraries/libprom/default.nix b/pkgs/development/libraries/libprom/default.nix
deleted file mode 100644
index b0c982fbf6a..00000000000
--- a/pkgs/development/libraries/libprom/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ gccStdenv
-, fetchFromGitHub
-, fetchpatch
-, cmake
-}:
-let
-  stdenv = gccStdenv; # Darwin is clang by default and it doesn't work for this.
-in
-stdenv.mkDerivation rec {
-  pname = "libprom";
-  version = "0.1.1";
-
-  src = fetchFromGitHub {
-    owner = "digitalocean";
-    repo = "prometheus-client-c";
-    rev = "v${version}";
-    sha256 = "0g69s24xwrv5974acshrhnp6i8rpby8c6bhz15m3d8kpgjw3cm8f";
-  };
-
-  nativeBuildInputs = [ cmake ];
-  doCheck = false;
-
-  patches = [
-     # Required so CMAKE_INSTALL_PREFIX is honored, otherwise it
-     # installs headers in /usr/include (absolute)
-    (fetchpatch {
-      url = "https://github.com/digitalocean/prometheus-client-c/commit/5fcedeb506b7d47dd7bab35797f2c3f23db6fe10.patch";
-      sha256 = "10hzg8v5jcgxz224kdq0nha9vs78wz098b0ys7gig2iwgrg018fy";
-    }) 
-    (fetchpatch {
-      url = "https://github.com/digitalocean/prometheus-client-c/commit/0c15e7e45ad0c3726593591fdd7d8f2fde845fe3.patch";
-      sha256 = "06899v1xz3lpsdxww4p3q7pv8nrymnibncdc472056znr5fidlp0";
-    }) 
-  ];
-
-  preConfigure = ''
-    cd prom
-  '';
-
-  meta = {
-    homepage = "https://github.com/digitalocean/prometheus-client-c/";
-    description = "A Prometheus Client in C";
-    platforms = stdenv.lib.platforms.unix;
-    license = stdenv.lib.licenses.asl20;
-    maintainers = [ stdenv.lib.maintainers.cfsmp3 ];
-  };
-
-}
diff --git a/pkgs/development/libraries/libpwquality/default.nix b/pkgs/development/libraries/libpwquality/default.nix
index bd45cb529f1..5d83b137b8e 100644
--- a/pkgs/development/libraries/libpwquality/default.nix
+++ b/pkgs/development/libraries/libpwquality/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, autoreconfHook, perl, cracklib, python3 }:
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, perl, cracklib, python3, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "libpwquality";
@@ -11,8 +11,21 @@ stdenv.mkDerivation rec {
     sha256 = "0n4pjhm7wfivk0wizggaxq4y4mcxic876wcarjabkp5z9k14y36h";
   };
 
-  nativeBuildInputs = [ autoreconfHook perl ];
-  buildInputs = [ cracklib python3 ];
+  nativeBuildInputs = [ autoreconfHook perl python3 ];
+  buildInputs = [ cracklib ];
+
+  patches = lib.optional stdenv.hostPlatform.isStatic [
+    (fetchpatch {
+      name = "static-build.patch";
+      url = "https://github.com/libpwquality/libpwquality/pull/40.patch";
+      sha256 = "1ypccq437wxwgddd98cvd330jfm7jscdlzlyxgy05g6yzrr68xyk";
+    })
+  ];
+
+  configureFlags = lib.optional stdenv.hostPlatform.isStatic [
+    # Python binding generates a shared library which are unavailable with musl build
+    "--disable-python-bindings"
+  ];
 
   meta = with lib; {
     description = "Password quality checking and random password generation library";
diff --git a/pkgs/development/libraries/libqalculate/default.nix b/pkgs/development/libraries/libqalculate/default.nix
index 8acfcb4b751..5c520e1c9dd 100644
--- a/pkgs/development/libraries/libqalculate/default.nix
+++ b/pkgs/development/libraries/libqalculate/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libqalculate";
-  version = "3.8.0";
+  version = "3.12.1";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "libqalculate";
     rev = "v${version}";
-    sha256 = "1vbaza9c7159xf2ym90l0xkyj2mp6c3hbghhsqn29yvz08fda9df";
+    sha256 = "0g3ipl6ynhclmwny54zgdh721v0fs9dzj6j7r8dz91s86jva3chb";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/pkgs/development/libraries/libqmi/default.nix b/pkgs/development/libraries/libqmi/default.nix
index 15a2a1db18f..e8db7501534 100644
--- a/pkgs/development/libraries/libqmi/default.nix
+++ b/pkgs/development/libraries/libqmi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libqmi";
-  version = "1.25.900";
+  version = "1.26.2";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/libqmi/${pname}-${version}.tar.xz";
-    sha256 = "0a96f4ab7qy4szwzqs8ir2mvsnpqzk7zsiv6zahlhpf0jhp1vxf7";
+    sha256 = "00vvvfq74awg6mk0si1cdv79f6z6wqx11h47nl78a1h7zsr6fd0k";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
diff --git a/pkgs/development/libraries/libqtav/default.nix b/pkgs/development/libraries/libqtav/default.nix
index 00a87402fa3..43489e8e850 100644
--- a/pkgs/development/libraries/libqtav/default.nix
+++ b/pkgs/development/libraries/libqtav/default.nix
@@ -46,6 +46,6 @@ mkDerivation rec {
     homepage = "http://www.qtav.org/";
     maintainers = [ maintainers.jraygauthier ];
     platforms = platforms.linux;
+    broken = !(lib.versionOlder qtbase.version "5.13");
   };
 }
-
diff --git a/pkgs/development/libraries/libraw/default.nix b/pkgs/development/libraries/libraw/default.nix
index 69169c7e9af..f20810801d9 100644
--- a/pkgs/development/libraries/libraw/default.nix
+++ b/pkgs/development/libraries/libraw/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libraw";
-  version = "0.19.5";
+  version = "0.20.0";
 
   src = fetchurl {
     url = "https://www.libraw.org/data/LibRaw-${version}.tar.gz";
-    sha256 = "1x827sh6vl8j3ll2ihkcr234y07f31hi1v7sl08jfw3irkbn58j0";
+    sha256 = "18wlsvj6c1rv036ph3695kknpgzc3lk2ikgshy8417yfl8ykh2hz";
   };
 
   outputs = [ "out" "lib" "dev" "doc" ];
diff --git a/pkgs/development/libraries/librealsense/default.nix b/pkgs/development/libraries/librealsense/default.nix
index 21f80f80efa..55171cd3de4 100644
--- a/pkgs/development/libraries/librealsense/default.nix
+++ b/pkgs/development/libraries/librealsense/default.nix
@@ -1,8 +1,13 @@
-{ stdenv, fetchFromGitHub, cmake, libusb1, ninja, pkgconfig }:
+{ stdenv, config, lib, fetchFromGitHub, cmake, libusb1, ninja, pkgconfig, gcc
+, cudaSupport ? config.cudaSupport or false, cudatoolkit
+, enablePython ? false, pythonPackages ? null }:
+
+assert cudaSupport -> cudatoolkit != null;
+assert enablePython -> pythonPackages != null;
 
 stdenv.mkDerivation rec {
   pname = "librealsense";
-  version = "2.35.2";
+  version = "2.38.0";
 
   outputs = [ "out" "dev" ];
 
@@ -10,11 +15,17 @@ stdenv.mkDerivation rec {
     owner = "IntelRealSense";
     repo = pname;
     rev = "v${version}";
-    sha256 = "14vf76vlyhh7b4yjzsnqpg1x3wdhwxrf1syvgf8wyxbjwb9plw82";
+    sha256 = "12rs0gklgzn8bplqjmaxixk04pr870i333mmcp9i5bhkn8x86zbx";
   };
 
   buildInputs = [
     libusb1
+    gcc.cc.lib
+  ] ++ lib.optional cudaSupport cudatoolkit
+    ++ lib.optional enablePython pythonPackages.python;
+
+  patches = lib.optionals enablePython [
+    ./py_sitepackage_dir.patch
   ];
 
   nativeBuildInputs = [
@@ -23,7 +34,22 @@ stdenv.mkDerivation rec {
     pkgconfig
   ];
 
-  cmakeFlags = [ "-DBUILD_EXAMPLES=false" ];
+  cmakeFlags = [
+    "-DBUILD_EXAMPLES=ON"
+    "-DBUILD_GRAPHICAL_EXAMPLES=OFF"
+    "-DBUILD_GLSL_EXTENSIONS=OFF"
+  ] ++ lib.optionals enablePython [
+    "-DBUILD_PYTHON_BINDINGS:bool=true"
+    "-DXXNIX_PYTHON_SITEPACKAGES=${placeholder "out"}/${pythonPackages.python.sitePackages}"
+  ] ++ lib.optional cudaSupport "-DBUILD_WITH_CUDA:bool=true";
+
+  # ensure python package contains its __init__.py. for some reason the install
+  # script does not do this, and it's questionable if intel knows it should be
+  # done
+  # ( https://github.com/IntelRealSense/meta-intel-realsense/issues/20 )
+  postInstall = lib.optionalString enablePython  ''
+    cp ../wrappers/python/pyrealsense2/__init__.py $out/${pythonPackages.python.sitePackages}/pyrealsense2
+  '';
 
   meta = with stdenv.lib; {
     description = "A cross-platform library for Intel® RealSense™ depth cameras (D400 series and the SR300)";
diff --git a/pkgs/development/libraries/librealsense/py_sitepackage_dir.patch b/pkgs/development/libraries/librealsense/py_sitepackage_dir.patch
new file mode 100644
index 00000000000..99b567a429e
--- /dev/null
+++ b/pkgs/development/libraries/librealsense/py_sitepackage_dir.patch
@@ -0,0 +1,15 @@
+--- a/wrappers/python/CMakeLists.txt
++++ b/wrappers/python/CMakeLists.txt
+@@ -10,11 +10,11 @@
+ if (CMAKE_VERSION VERSION_LESS 3.12)
+   find_package(PythonInterp REQUIRED)
+   find_package(PythonLibs REQUIRED)
+-  set(PYTHON_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/pyrealsense2" CACHE PATH "Installation directory for Python bindings")
++  set(PYTHON_INSTALL_DIR "${XXNIX_PYTHON_SITEPACKAGES}/pyrealsense2" CACHE PATH "Installation directory for Python bindings")
+   set(CMAKECONFIG_PY_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/pyrealsense2")
+ else()
+   find_package(Python REQUIRED COMPONENTS Interpreter Development)
+-  set(PYTHON_INSTALL_DIR "${Python_SITEARCH}/pyrealsense2" CACHE PATH "Installation directory for Python bindings")
++  set(PYTHON_INSTALL_DIR "${XXNIX_PYTHON_SITEPACKAGES}/pyrealsense2" CACHE PATH "Installation directory for Python bindings")
+   set(CMAKECONFIG_PY_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/pyrealsense2")
+ endif()
diff --git a/pkgs/development/libraries/libredwg/default.nix b/pkgs/development/libraries/libredwg/default.nix
new file mode 100644
index 00000000000..71667460e23
--- /dev/null
+++ b/pkgs/development/libraries/libredwg/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, texinfo, pcre2
+, enablePython ? false, python, swig, libxml2, ncurses
+}:
+let
+  isPython3 = enablePython && python.pythonAtLeast "3";
+in
+stdenv.mkDerivation rec {
+  pname = "libredwg";
+  version = "0.10.1.3707";
+
+  src = fetchFromGitHub {
+    owner = "LibreDWG";
+    repo = pname;
+    rev = version;
+    sha256 = "009n96lx4ahf05ryvm09z0l9956vz94r8pliyb88j0jficl0pxkf";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config texinfo ] 
+    ++ lib.optional enablePython swig;
+
+  buildInputs = [ pcre2 ]
+    ++ lib.optionals enablePython [ python ]
+    # configurePhase fails with python 3 when ncurses is missing
+    ++ lib.optional isPython3 ncurses
+  ;
+
+  # prevent python tests from running when not building with python
+  configureFlags = lib.optional (!enablePython) "--disable-python";
+
+  doCheck = true;
+
+  # the "xmlsuite" test requires the libxml2 c library as well as the python module
+  checkInputs = lib.optionals enablePython [ libxml2 libxml2.dev ];
+
+  meta = with lib; {
+    description = "Free implementation of the DWG file format";
+    homepage = "https://savannah.gnu.org/projects/libredwg/";
+    maintainers = with maintainers; [ tweber ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/librseq/default.nix b/pkgs/development/libraries/librseq/default.nix
index d4619ba4320..4fd8bb7e33a 100644
--- a/pkgs/development/libraries/librseq/default.nix
+++ b/pkgs/development/libraries/librseq/default.nix
@@ -4,22 +4,29 @@
 
 stdenv.mkDerivation rec {
   pname = "librseq";
-  version = "0.1.0pre54_${builtins.substring 0 7 src.rev}";
+  version = "0.1.0pre70_${builtins.substring 0 7 src.rev}";
 
   src = fetchFromGitHub {
     owner  = "compudj";
     repo   = "librseq";
-    rev    = "152600188dd214a0b2c6a8c66380e50c6ad27154";
-    sha256 = "0mivjmgdkgrr6z2gz3k6q6wgnvyvw9xzy65f6ipvqva68sxhk0mx";
+    rev    = "d1cdec98d476b16ca5e2d9d7eabcf9f1c97e6111";
+    sha256 = "0vgillrxc1knq591gjj99x2ws6q1xpm5dmfrhsxisngfpcnjr10v";
   };
 
-  outputs = [ "out" "dev" ];
+  outputs = [ "out" "dev" "man" ];
   nativeBuildInputs = [ autoreconfHook ];
   buildInputs = [ linuxHeaders ];
 
+  installTargets = [ "install" "install-man" ];
+
+  doCheck = true;
   separateDebugInfo = true;
   enableParallelBuilding = true;
 
+  patchPhase = ''
+    patchShebangs tests
+  '';
+
   # The share/ subdir only contains a doc/ with a README.md that just describes
   # how to compile the library, which clearly isn't very useful! So just get
   # rid of it anyway.
diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix
index 2c68d27323f..fb61b50346d 100644
--- a/pkgs/development/libraries/librsvg/default.nix
+++ b/pkgs/development/libraries/librsvg/default.nix
@@ -4,14 +4,14 @@
 
 let
   pname = "librsvg";
-  version = "2.48.7";
+  version = "2.48.8";
 in
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1h7yw9bszsi174lkq8ig15p1rll7fqafx72jligxiz32wa9mvpim";
+    sha256 = "14i6xzghcidv64cyd3g0wdjbl82rph737yxn9s3x29nzpcjs707l";
   };
 
   outputs = [ "out" "dev" "installedTests" ];
diff --git a/pkgs/development/libraries/libseccomp/default.nix b/pkgs/development/libraries/libseccomp/default.nix
index f3816c2ef0c..6ea0e6be465 100644
--- a/pkgs/development/libraries/libseccomp/default.nix
+++ b/pkgs/development/libraries/libseccomp/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, fetchurl, getopt, makeWrapper, utillinux }:
+{ stdenv, fetchurl, getopt, utillinux, gperf }:
 
 stdenv.mkDerivation rec {
   pname = "libseccomp";
-  version = "2.4.3";
+  version = "2.5.0";
 
   src = fetchurl {
     url = "https://github.com/seccomp/libseccomp/releases/download/v${version}/libseccomp-${version}.tar.gz";
-    sha256 = "07crwxqzvl5k2b90a47ii9wgvi09s9hsy5b5jddw9ylp351d25fg";
+    sha256 = "1wql62cg8f95cwpy057cl764nni9g4sdn5lqj68x22kjs8w71yhz";
   };
 
   outputs = [ "out" "lib" "dev" "man" ];
 
-  buildInputs = [ getopt makeWrapper ];
+  nativeBuildInputs = [ gperf ];
+  buildInputs = [ getopt ];
 
   patchPhase = ''
     patchShebangs .
@@ -25,13 +26,14 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "High level library for the Linux Kernel seccomp filter";
-    homepage    = "https://github.com/seccomp/libseccomp";
-    license     = licenses.lgpl21;
-    platforms   = platforms.linux;
+    homepage = "https://github.com/seccomp/libseccomp";
+    license = licenses.lgpl21;
+    platforms = platforms.linux;
     badPlatforms = [
       "alpha-linux"
-      "riscv64-linux" "riscv32-linux"
-      "sparc-linux" "sparc64-linux"
+      "riscv32-linux"
+      "sparc-linux"
+      "sparc64-linux"
     ];
     maintainers = with maintainers; [ thoughtpolice ];
   };
diff --git a/pkgs/development/libraries/libsidplayfp/default.nix b/pkgs/development/libraries/libsidplayfp/default.nix
index 7acda3c0a8f..95f7beff88a 100644
--- a/pkgs/development/libraries/libsidplayfp/default.nix
+++ b/pkgs/development/libraries/libsidplayfp/default.nix
@@ -1,34 +1,41 @@
-{ stdenv, fetchurl, pkgconfig
-, docSupport ? true, doxygen ? null, graphviz ? null }:
+{ stdenv
+, lib
+, fetchurl
+, pkgconfig
+, docSupport ? true
+, doxygen ? null
+, graphviz ? null
+}:
 
 assert docSupport -> doxygen != null && graphviz != null;
-
+let
+  inherit (lib) optionals optionalString;
+  inherit (lib.versions) majorMinor;
+in
 stdenv.mkDerivation rec {
   pname = "libsidplayfp";
-  major = "1";
-  minor = "8";
-  level = "7";
-  version = "${major}.${minor}.${level}";
+  version = "2.0.4";
 
   src = fetchurl {
-    url = "mirror://sourceforge/sidplay-residfp/${pname}/${major}.${minor}/${pname}-${version}.tar.gz";
-    sha256 = "14k1sbdcbhykwfcadq5lbpnm9xp2r7vs7fyi84h72g89y8pjg0da";
+    url = "mirror://sourceforge/sidplay-residfp/${pname}/${majorMinor version}/${pname}-${version}.tar.gz";
+    sha256 = "0d866czmnmhnhb2j37rlrdphjdi2b75kak9barm9xqwg2z0nmmhz";
   };
 
   nativeBuildInputs = [ pkgconfig ]
-    ++ stdenv.lib.optionals docSupport [ doxygen graphviz ];
+    ++ optionals docSupport [ doxygen graphviz ];
 
   installTargets = [ "install" ]
-    ++ stdenv.lib.optionals docSupport [ "doc" ];
+    ++ optionals docSupport [ "doc" ];
 
-  outputs = [ "out" ] ++ stdenv.lib.optionals docSupport [ "doc" ];
+  outputs = [ "out" ]
+    ++ optionals docSupport [ "doc" ];
 
-  postInstall = stdenv.lib.optionalString docSupport ''
+  postInstall = optionalString docSupport ''
     mkdir -p $doc/share/doc/libsidplayfp
     mv docs/html $doc/share/doc/libsidplayfp/
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library to play Commodore 64 music derived from libsidplay2";
     homepage = "https://sourceforge.net/projects/sidplay-residfp/";
     license = with licenses; [ gpl2Plus ];
diff --git a/pkgs/development/libraries/libsignon-glib/default.nix b/pkgs/development/libraries/libsignon-glib/default.nix
index 77a43872d4e..1f453dc291e 100644
--- a/pkgs/development/libraries/libsignon-glib/default.nix
+++ b/pkgs/development/libraries/libsignon-glib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, pkgconfig, meson, ninja, vala, python3, gtk-doc, docbook_xsl, docbook_xml_dtd_43, docbook_xml_dtd_412, glib, check, gobject-introspection }:
+{ stdenv, fetchgit, nix-update-script, pkgconfig, meson, ninja, vala, python3, gtk-doc, docbook_xsl, docbook_xml_dtd_43, docbook_xml_dtd_412, glib, check, gobject-introspection }:
 
 stdenv.mkDerivation rec {
   pname = "libsignon-glib";
@@ -42,6 +42,12 @@ stdenv.mkDerivation rec {
     patchShebangs build-aux/gen-error-map.py
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "A library for managing single signon credentials which can be used from GLib applications";
     homepage = "https://gitlab.com/accounts-sso/libsignon-glib";
diff --git a/pkgs/development/libraries/libslirp/default.nix b/pkgs/development/libraries/libslirp/default.nix
index ee31e22628c..0413d8a8abc 100644
--- a/pkgs/development/libraries/libslirp/default.nix
+++ b/pkgs/development/libraries/libslirp/default.nix
@@ -8,14 +8,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libslirp";
-  version = "4.3.0";
+  version = "4.3.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "slirp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1hajbdwx20a48hp8kv6jqbjvnzjvcdqmbjfsymzy2xa80idqkfab";
+    sha256 = "0pzgjj2x2vrjshrzrl2x39xp5lgwg4b4y9vs8xvadh1ycl10v3fv";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
diff --git a/pkgs/development/libraries/libsvm/default.nix b/pkgs/development/libraries/libsvm/default.nix
index 0709f3867e4..5dc4deb30be 100644
--- a/pkgs/development/libraries/libsvm/default.nix
+++ b/pkgs/development/libraries/libsvm/default.nix
@@ -10,18 +10,19 @@ stdenv.mkDerivation rec {
   };
 
   buildPhase = ''
-  make
-  make lib
+    make
+    make lib
   '';
 
   installPhase = let
     libSuff = stdenv.hostPlatform.extensions.sharedLibrary;
   in ''
-    mkdir -p $out/lib $out/bin $out/include;
-    cp libsvm.so.2 $out/lib/libsvm.2${libSuff};
-    ln -s $out/lib/libsvm.2${libSuff} $out/lib/libsvm${libSuff};
-    cp svm-scale svm-train svm-predict $out/bin;
-    cp svm.h $out/include;
+    install -D libsvm.so.2 $out/lib/libsvm.2${libSuff}
+    ln -s $out/lib/libsvm.2${libSuff} $out/lib/libsvm${libSuff}
+    install -Dt $out/bin/ svm-scale svm-train svm-predict
+    install -Dm644 -t $out/include svm.h
+    mkdir $out/include/libsvm
+    ln -s $out/include/svm.h $out/include/libsvm/svm.h
   '';
 
   postFixup = stdenv.lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/libraries/libthreadar/default.nix b/pkgs/development/libraries/libthreadar/default.nix
new file mode 100644
index 00000000000..ed19fab6d99
--- /dev/null
+++ b/pkgs/development/libraries/libthreadar/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  version = "1.3.0";
+  pname = "libthreadar";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/libthreadar/${pname}-${version}.tar.gz";
+    sha256 = "0g2wxykawlsj6ma9slbbk0bxynqvmkwhaln2fiwc21x7nhjvpn9z";
+  };
+
+  outputs = [ "out" "dev" ];
+
+  configureFlags = [
+    "--disable-build-html"
+  ];
+
+  postInstall = ''
+    # Disable html help
+    rm -r "$out"/share
+  '';
+
+  meta = {
+    homepage = "http://libthreadar.sourceforge.net/";
+    description = ''
+      Libthreadar is a C++ library providing a small set of C++ classes to manipulate
+      threads in a very simple and efficient way from your C++ code.
+    '';
+    maintainers = with maintainers; [ izorkin ];
+    license = licenses.lgpl3;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/libtsm/darwin.patch b/pkgs/development/libraries/libtsm/darwin.patch
deleted file mode 100644
index d447be456e0..00000000000
--- a/pkgs/development/libraries/libtsm/darwin.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 4e7b7b1124bfbccb43820997164b00720bf5ca31 Mon Sep 17 00:00:00 2001
-From: Florian Gilcher <florian.gilcher@asquera.de>
-Date: Sun, 23 Mar 2014 23:05:44 +0100
-Subject: [PATCH] Remove GCC specific flags
-
----
- Makefile.am | 10 ++--------
- 1 file changed, 2 insertions(+), 8 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index f1e872b..c011f02 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -69,11 +69,7 @@ AM_CFLAGS = \
- AM_CPPFLAGS = \
- 	-include $(top_builddir)/config.h \
- 	-I $(srcdir)/src
--AM_LDFLAGS = \
--	-Wl,--as-needed \
--	-Wl,--gc-sections \
--	-Wl,-z,relro \
--	-Wl,-z,now
-+AM_LDFLAGS =
- 
- if BUILD_ENABLE_DEBUG
- AM_CFLAGS += -g
-@@ -134,9 +130,7 @@ libtsm_la_CPPFLAGS = $(AM_CPPFLAGS)
- libtsm_la_LIBADD = libshl.la
- EXTRA_libtsm_la_DEPENDENCIES = $(top_srcdir)/docs/libtsm.sym
- libtsm_la_LDFLAGS = \
--	$(AM_LDFLAGS) \
--	-version-info $(LIBTSM_CURRENT):$(LIBTSM_REVISION):$(LIBTSM_AGE) \
--	-Wl,--version-script="$(top_srcdir)/docs/libtsm.sym"
-+	$(AM_LDFLAGS)
- 
- if BUILD_HAVE_XKBCOMMON
- libtsm_la_CPPFLAGS += $(XKBCOMMON_CFLAGS)
diff --git a/pkgs/development/libraries/libtsm/default.nix b/pkgs/development/libraries/libtsm/default.nix
index ebeb927aaa4..21108fa108e 100644
--- a/pkgs/development/libraries/libtsm/default.nix
+++ b/pkgs/development/libraries/libtsm/default.nix
@@ -1,23 +1,21 @@
-{ stdenv, lib, fetchurl, libxkbcommon, pkgconfig, autoreconfHook }:
+{ stdenv, fetchFromGitHub, libxkbcommon, pkgconfig, cmake }:
 
 stdenv.mkDerivation rec {
-  name = "libtsm-3";
+  pname = "libtsm";
+  version = "4.0.1";
 
-  src = fetchurl {
-    url = "https://freedesktop.org/software/kmscon/releases/${name}.tar.xz";
-    sha256 = "01ygwrsxfii0pngfikgqsb4fxp8n1bbs47l7hck81h9b9bc1ah8i";
+  src = fetchFromGitHub {
+    owner = "Aetf";
+    repo = "libtsm";
+    rev = "v${version}";
+    sha256 = "0mwn91i5h5d518i1s05y7hzv6bc13vzcvxszpfh77473iwg4wprx";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libxkbcommon ] ++ lib.optionals stdenv.isDarwin [
-    autoreconfHook
-  ];
+  buildInputs = [ libxkbcommon ];
 
-  configureFlags = [ "--disable-debug" ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
-  patches = lib.optional stdenv.isDarwin ./darwin.patch;
-
-  meta = with lib; {
+  meta = with stdenv.lib; {
     description = "Terminal-emulator State Machine";
     homepage = "http://www.freedesktop.org/wiki/Software/kmscon/libtsm/";
     license = licenses.mit;
diff --git a/pkgs/development/libraries/libu2f-host/default.nix b/pkgs/development/libraries/libu2f-host/default.nix
index f033aa9f610..a9c62673115 100644
--- a/pkgs/development/libraries/libu2f-host/default.nix
+++ b/pkgs/development/libraries/libu2f-host/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, json_c, hidapi }:
+{ stdenv, fetchurl, fetchpatch, pkgconfig, json_c, hidapi }:
 
 stdenv.mkDerivation rec {
   pname = "libu2f-host";
@@ -9,6 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "0vrivl1dwql6nfi48z6dy56fwy2z13d7abgahgrs2mcmqng7hra2";
   };
 
+  patches = [
+    # remove after updating to next release
+    (fetchpatch {
+      name = "json-c-0.14-support.patch";
+      url = "https://github.com/Yubico/libu2f-host/commit/840f01135d2892f45e71b9e90405de587991bd03.patch";
+      sha256 = "0xplx394ppsbsb4h4l8b9m4dv9shbl0zyck3y26vbm9i1g981ki7";
+    })
+  ];
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ json_c hidapi ];
 
diff --git a/pkgs/development/libraries/libu2f-server/default.nix b/pkgs/development/libraries/libu2f-server/default.nix
index be5658914d1..cd961cde1d2 100644
--- a/pkgs/development/libraries/libu2f-server/default.nix
+++ b/pkgs/development/libraries/libu2f-server/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, json_c, openssl, check, file, help2man, which, gengetopt }:
+{ stdenv, fetchurl, fetchpatch, pkgconfig, json_c, openssl, check, file, help2man, which, gengetopt }:
 
 stdenv.mkDerivation rec {
   name = "libu2f-server-1.1.0";
@@ -7,6 +7,15 @@ stdenv.mkDerivation rec {
     sha256 = "0xx296nmmqa57w0v5p2kasl5zr1ms2gh6qi4lhv6xvzbmjp3rkcd";
   };
 
+  patches = [
+    # remove after updating to next release
+    (fetchpatch {
+      name = "json-c-0.14-support.patch";
+      url = "https://github.com/Yubico/libu2f-server/commit/f7c4983b31909299c47bf9b2627c84b6bfe225de.patch";
+      sha256 = "10q66w3paii1yhfdmjskpip078fk9p3sjllbqx1yx71qbjki55b0";
+    })
+  ];
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ json_c openssl check file help2man which gengetopt ];
 
diff --git a/pkgs/development/libraries/libunibreak/default.nix b/pkgs/development/libraries/libunibreak/default.nix
index 5b549176889..d30c84b52a2 100644
--- a/pkgs/development/libraries/libunibreak/default.nix
+++ b/pkgs/development/libraries/libunibreak/default.nix
@@ -1,17 +1,23 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchFromGitHub, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "libunibreak";
-  version = "1.1";
+  version = "4.3";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/vimgadgets/libunibreak/${version}/${pname}-${version}.tar.gz";
-    sha256 = "02657l426bk5d8h42b9ixxy1clc50mx4bzwg02nkdhs09wqw32wn";
+  src = let
+      rev_version = stdenv.lib.replaceStrings ["."] ["_"] version;
+  in fetchFromGitHub {
+    owner = "adah1972";
+    repo = pname;
+    rev = "libunibreak_${rev_version}";
+    sha256 = "19g3ixs1ycisfdnzd8v7j5r49h0x0hshchk9qwlz4i0mjv825plx";
   };
 
+  nativeBuildInputs = [ autoreconfHook ];
+
   meta = with stdenv.lib; {
-    homepage = "http://vimgadgets.sourceforge.net/libunibreak/";
-    description = "A library implementing a line breaking algorithm as described in Unicode 6.0.0 Standard";
+    homepage = "https://github.com/adah1972/libunibreak";
+    description = "Implementation of line breaking and word breaking algorithms as in the Unicode standard";
     license = licenses.zlib;
     platforms = platforms.unix;
     maintainers = [ maintainers.coroa ];
diff --git a/pkgs/development/libraries/libunistring/default.nix b/pkgs/development/libraries/libunistring/default.nix
index f0cc73ba4e9..5f300ef5199 100644
--- a/pkgs/development/libraries/libunistring/default.nix
+++ b/pkgs/development/libraries/libunistring/default.nix
@@ -1,5 +1,10 @@
 { fetchurl, stdenv, libiconv }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   pname = "libunistring";
   version = "0.9.10";
diff --git a/pkgs/development/libraries/liburing/default.nix b/pkgs/development/libraries/liburing/default.nix
index 519023bb27e..e0297812209 100644
--- a/pkgs/development/libraries/liburing/default.nix
+++ b/pkgs/development/libraries/liburing/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   pname = "liburing";
-  version = "0.6pre600_${builtins.substring 0 8 src.rev}";
+  version = "0.7";
 
   src = fetchgit {
     url    = "http://git.kernel.dk/${pname}";
-    rev    = "f2e1f3590f7bed3040bd1691676b50839f7d5c39";
-    sha256 = "0wg0pgcbilbb2wg08hsvd18q1m8vdk46b3piz7qb1pvgyq01idj2";
+    rev    = "liburing-${version}";
+    sha256 = "15z44l7y4c6s6dlf7v8lq4znlsjbja2r4ifbni0l8cdcnq0w3zh3";
   };
 
   separateDebugInfo = true;
diff --git a/pkgs/development/libraries/libusb/fix-headers.patch b/pkgs/development/libraries/libusb-compat/fix-headers.patch
index ea9cbc34978..ea9cbc34978 100644
--- a/pkgs/development/libraries/libusb/fix-headers.patch
+++ b/pkgs/development/libraries/libusb-compat/fix-headers.patch
diff --git a/pkgs/development/libraries/libusb1/default.nix b/pkgs/development/libraries/libusb1/default.nix
index 5d6a20b13a4..a3323c8e026 100644
--- a/pkgs/development/libraries/libusb1/default.nix
+++ b/pkgs/development/libraries/libusb1/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     sha256 = "0mxbpg01kgbk5nh6524b0m4xk7ywkyzmc3yhi5asqcsd3rbhjj98";
   };
 
-  outputs = [ "out" "dev" ]; # get rid of propagating systemd closure
+  outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
   propagatedBuildInputs =
@@ -31,8 +31,6 @@ stdenv.mkDerivation rec {
 
   dontDisableStatic = withStatic;
 
-  NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
-
   configureFlags = stdenv.lib.optional (!enableSystemd) "--disable-udev";
 
   preFixup = stdenv.lib.optionalString enableSystemd ''
diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix
index e22bcdd86b4..1314eab1642 100644
--- a/pkgs/development/libraries/libuv/default.nix
+++ b/pkgs/development/libraries/libuv/default.nix
@@ -1,14 +1,14 @@
 { stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, pkgconfig, ApplicationServices, CoreServices }:
 
 stdenv.mkDerivation rec {
-  version = "1.38.0";
+  version = "1.39.0";
   pname = "libuv";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "04598jglikma5plfiprnw4pcxwp7b6aqxphxs65pdd5xira6dz0s";
+    sha256 = "1r9xs9is5rgid5ylbprvf88lqjrmvky86q9h8iqlq7rcrv24x6kl";
   };
 
   postPatch = let
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
       "getaddrinfo_fail" "getaddrinfo_fail_sync"
       "threadpool_multiple_event_loops" # times out on slow machines
       "get_passwd" # passed on NixOS but failed on other Linuxes
-      "tcp_writealot" # times out sometimes
+      "tcp_writealot" "udp_multicast_join" "udp_multicast_join6" # times out sometimes
     ] ++ stdenv.lib.optionals stdenv.isDarwin [
         # Sometimes: timeout (no output), failed uv_listen. Someone
         # should report these failures to libuv team. There tests should
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
         "tcp_open" "tcp_write_queue_order" "tcp_try_write" "tcp_writealot"
         "multiple_listen" "delayed_accept"
         "shutdown_close_tcp" "shutdown_eof" "shutdown_twice" "callback_stack"
-        "tty_pty" "condvar_5" "hrtime"
+        "tty_pty" "condvar_5" "hrtime" "udp_multicast_join"
         # Tests that fail when sandboxing is enabled.
         "fs_event_close_in_callback" "fs_event_watch_dir" "fs_event_error_reporting"
         "fs_event_watch_dir_recursive" "fs_event_watch_file"
@@ -66,7 +66,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A multi-platform support library with a focus on asynchronous I/O";
-    homepage    = "https://github.com/libuv/libuv";
+    homepage    = "https://libuv.org/";
+    changelog   = "https://github.com/libuv/libuv/blob/v${version}/ChangeLog";
     maintainers = with maintainers; [ cstrahan ];
     platforms   = with platforms; linux ++ darwin;
     license     = with licenses; [ mit isc bsd2 bsd3 cc-by-40 ];
diff --git a/pkgs/development/libraries/libva/default.nix b/pkgs/development/libraries/libva/default.nix
index d0bd2ecc009..7f690f0997b 100644
--- a/pkgs/development/libraries/libva/default.nix
+++ b/pkgs/development/libraries/libva/default.nix
@@ -7,29 +7,16 @@
 
 stdenv.mkDerivation rec {
   name = "libva-${lib.optionalString minimal "minimal-"}${version}";
-  version = "2.7.1"; # Also update the hash for libva-utils!
+  version = "2.8.0"; # Also update the hash for libva-utils!
 
   # update libva-utils and vaapiIntel as well
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "libva";
     rev    = version;
-    sha256 = "0ywasac7z3hwggj8szp83sbxi2naa0a3amblx64y7i1hyyrn0csq";
+    sha256 = "190cq173jzp5rkrczi8gzbwa0y3xk253v4wd205a5ilfngm7srns";
   };
 
-  patches = [
-    (fetchpatch { # meson: Allow for libdir and includedir to be absolute paths
-      url = "https://github.com/intel/libva/commit/de902e2905abff635f3bb151718cc52caa3f669c.patch";
-      sha256 = "1lpc8qzvsxnlsh9g0ab5lja204zxz8rr2p973pfihcw7dcxc3gia";
-    })
-  ];
-
-  postPatch = ''
-    # Remove the execute bit from all source code files
-    # https://github.com/intel/libva/commit/dbd2cd635f33af1422cbc2079af0a7e68671c102
-    chmod -x va/va{,_dec_av1,_trace,_vpp}.h
-  '';
-
   outputs = [ "dev" "out" ];
 
   nativeBuildInputs = [ meson pkg-config ninja wayland ];
diff --git a/pkgs/development/libraries/libva-utils/default.nix b/pkgs/development/libraries/libva/utils.nix
index 90f1849aee0..5b9f4cdd8aa 100644
--- a/pkgs/development/libraries/libva-utils/default.nix
+++ b/pkgs/development/libraries/libva/utils.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner  = "intel";
     repo   = "libva-utils";
     rev    = version;
-    sha256 = "13a0dccphi4cpr2cx45kg4djxsssi3d1fcjrkx27b16xiayp5lx9";
+    sha256 = "081hw2jnj64bpqwh9p41n5caqzm6dnj1ggnvvc5wrf4m2z1h2bjb";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index 3c0cc9751e3..27f345a9c83 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -17,19 +17,19 @@ let
   buildFromTarball = stdenv.isDarwin;
 in stdenv.mkDerivation rec {
   pname = "libvirt";
-  version = "6.2.0";
+  version = "6.3.0";
 
   src =
     if buildFromTarball then
       fetchurl {
         url = "http://libvirt.org/sources/${pname}-${version}.tar.xz";
-        sha256 = "1c8grqf751blsgs15wx2p05wvankdrady6290vwc85v94cgqij5f";
+        sha256 = "1xcng497hs1gary3pz3fp590a4r1kqs4d0d8k5p370j0scw981kl";
       }
     else
       fetchgit {
         url = "git://libvirt.org/libvirt.git";
         rev = "v${version}";
-        sha256 = "1wyihi8bhwsck9b7f3b8yhlz145sjdyyj3ykjiszrqnp0y99xxy2";
+        sha256 = "129b3p72jlb40dsidak3nvpssv75xx2v99y63gzp5k074fp8y8x4";
         fetchSubmodules = true;
       };
 
@@ -65,6 +65,7 @@ in stdenv.mkDerivation rec {
   dontAddDisableDepTrack = true;
 
   configureFlags = [
+    "--with-runstatedir=/run" # TODO: remove when autoconf 1.70 is released
     "--localstatedir=/var"
     "--sysconfdir=/var/lib"
     "--with-libpcap"
@@ -97,6 +98,7 @@ in stdenv.mkDerivation rec {
   ];
 
   installFlags = [
+    "runstatedir=${placeholder "out"}/run"
     "localstatedir=$(TMPDIR)/var"
     "sysconfdir=$(out)/var/lib"
   ];
diff --git a/pkgs/development/libraries/libvmaf/default.nix b/pkgs/development/libraries/libvmaf/default.nix
index 6c2b61cf113..9f7e84558f7 100644
--- a/pkgs/development/libraries/libvmaf/default.nix
+++ b/pkgs/development/libraries/libvmaf/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, fetchFromGitHub, meson, ninja }:
+{ stdenv, fetchFromGitHub, meson, ninja, nasm }:
 
 stdenv.mkDerivation rec {
   pname = "libvmaf";
-  version = "1.5.2";
+  version = "1.5.3";
 
   src = fetchFromGitHub {
     owner = "netflix";
     repo = "vmaf";
     rev = "v${version}";
-    sha256 = "18w0z3w90fdbzsqaa4diwvq0xmvg0aiw4hi3aaa4pq0zgnb8g3mk";
+    sha256 = "0x3l3g0hgrrjh3ygmxr1pd3rd5589s07c7id35nvj76ch5b7gy63";
   };
 
   sourceRoot = "source/libvmaf";
 
-  nativeBuildInputs = [ meson ninja ];
+  nativeBuildInputs = [ meson ninja nasm ];
   outputs = [ "out" "dev" ];
   doCheck = true;
 
diff --git a/pkgs/development/libraries/libwacom/default.nix b/pkgs/development/libraries/libwacom/default.nix
index c33317550b5..7c71dc4388b 100644
--- a/pkgs/development/libraries/libwacom/default.nix
+++ b/pkgs/development/libraries/libwacom/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libwacom";
-  version = "1.3";
+  version = "1.5";
 
   outputs = [ "out" "dev" ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "linuxwacom";
     repo = "libwacom";
     rev = "libwacom-${version}";
-    sha256 = "12g8jb67wj6sgg9ar2w8kkw1m1431rn9nd0j64qkrd3vy9g4l0hk";
+    sha256 = "1a3qkzpkag1vqd2xl7b7f2b8kbg1y1g6gg5ydzb1ppyqw3zdjf9x";
   };
 
   nativeBuildInputs = [ pkgconfig meson ninja doxygen ];
diff --git a/pkgs/development/libraries/libwebsockets/default.nix b/pkgs/development/libraries/libwebsockets/default.nix
index ddafc9bc659..c56781931f3 100644
--- a/pkgs/development/libraries/libwebsockets/default.nix
+++ b/pkgs/development/libraries/libwebsockets/default.nix
@@ -16,8 +16,13 @@ let
 
     nativeBuildInputs = [ cmake ];
 
-    cmakeFlags = [ "-DLWS_WITH_PLUGINS=ON" ];
-    NIX_CFLAGS_COMPILE = "-Wno-error=unused-but-set-variable";
+    cmakeFlags = [
+      "-DLWS_WITH_PLUGINS=ON"
+      "-DLWS_WITH_IPV6=ON"
+      "-DLWS_WITH_SOCKS5=ON"
+    ];
+
+    NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isGNU "-Wno-error=unused-but-set-variable";
 
     meta = with stdenv.lib; {
       description = "Light, portable C library for websockets";
diff --git a/pkgs/development/libraries/libwhereami/default.nix b/pkgs/development/libraries/libwhereami/default.nix
index 8e190f998d5..59e349b4e6a 100644
--- a/pkgs/development/libraries/libwhereami/default.nix
+++ b/pkgs/development/libraries/libwhereami/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "libwhereami";
-  version = "0.3.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
-    sha256 = "16xjb6zp60ma76aa3kq3q8i8zn0n61gf39fny12cny8nggwjpbww";
+    sha256 = "05fc28dri2h858kxbvldk5b6wd5is3fjcdsiqj3nxf95i66bb3xp";
     rev = version;
     repo = "libwhereami";
     owner = "puppetlabs";
   };
 
-  NIX_CFLAGS_COMPILE = "-Wno-error=catch-value";
+  NIX_CFLAGS_COMPILE = "-Wno-error";
 
   nativeBuildInputs = [ cmake ];
 
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     description = "Library to report hypervisor information from inside a VM";
     license = licenses.asl20;
     maintainers = [ maintainers.womfoo ];
-    platforms = with platforms; [ "i686-linux" "x86_64-linux" ]; # fails on aarch64
+    platforms = with platforms; [ "i686-linux" "x86_64-linux" "x86_64-darwin" ]; # fails on aarch64
   };
 
 }
diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix
index 7c39d803906..5e290b25832 100644
--- a/pkgs/development/libraries/libxml2/default.nix
+++ b/pkgs/development/libraries/libxml2/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, fetchpatch
-, zlib, xz, python, ncurses, findXMLCatalogs
+, zlib, xz, libintl, python, gettext, ncurses, findXMLCatalogs
 , pythonSupport ? stdenv.buildPlatform == stdenv.hostPlatform
 , icuSupport ? false, icu ? null
 , enableShared ? stdenv.hostPlatform.libc != "msvcrt"
@@ -44,7 +44,10 @@ stdenv.mkDerivation rec {
     ++ lib.optional (enableStatic && enableShared) "static";
 
   buildInputs = lib.optional pythonSupport python
+    ++ lib.optional (pythonSupport && python?isPy2 && python.isPy2) gettext
     ++ lib.optional (pythonSupport && python?isPy3 && python.isPy3) ncurses
+    ++ lib.optional (stdenv.isDarwin &&
+                     pythonSupport && python?isPy2 && python.isPy2) libintl
     # Libxml2 has an optional dependency on liblzma.  However, on impure
     # platforms, it may end up using that from /usr/lib, and thus lack a
     # RUNPATH for that, leading to undefined references for its users.
diff --git a/pkgs/development/libraries/libxmlb/default.nix b/pkgs/development/libraries/libxmlb/default.nix
index f559a4e5050..0b0524e163c 100644
--- a/pkgs/development/libraries/libxmlb/default.nix
+++ b/pkgs/development/libraries/libxmlb/default.nix
@@ -15,7 +15,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libxmlb";
-  version = "0.1.15";
+  version = "0.2.0";
 
   outputs = [ "out" "lib" "dev" "devdoc" "installedTests" ];
 
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     owner = "hughsie";
     repo = "libxmlb";
     rev = version;
-    sha256 = "1mb73pnfwqc4mm0lm16yfn0lj495h8hcciprb2v6wgy3ifnnjxib";
+    sha256 = "VBIQo+6WqJUbkBZnG6eihx3eJFFWF68A7RpZ7gPVbEI=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/lime/default.nix b/pkgs/development/libraries/lime/default.nix
index 3ebcc7ad78a..aa34ff2e927 100644
--- a/pkgs/development/libraries/lime/default.nix
+++ b/pkgs/development/libraries/lime/default.nix
@@ -9,7 +9,7 @@
 
 stdenv.mkDerivation rec {
   pname = "lime";
-  version = "4.3.1";
+  version = "4.4.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "1ilpp9ai4sah23ngnxisvmwhrv5jkk5f831yp7smpl225z5nv83g";
+    sha256 = "14jg1zisjbzflw3scfqdbwy48wq3cp93l867vigb8l40lkc6n26z";
   };
 
   buildInputs = [ bctoolbox soci belle-sip sqlite ];
diff --git a/pkgs/development/libraries/linbox/default.nix b/pkgs/development/libraries/linbox/default.nix
index 2217996acdb..09bd7e12091 100644
--- a/pkgs/development/libraries/linbox/default.nix
+++ b/pkgs/development/libraries/linbox/default.nix
@@ -39,18 +39,17 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--with-blas-libs=-lblas"
     "--disable-optimization"
-  ] ++ stdenv.lib.optionals stdenv.isx86_64 {
+  ] ++ stdenv.lib.optionals stdenv.isx86_64 [
     # disable SIMD instructions (which are enabled *when available* by default)
-    default        = [ "--disable-sse3" "--disable-ssse3" "--disable-sse41" "--disable-sse42" "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ];
-    westmere       = [                                                                        "--disable-avx" "--disable-avx2" "--disable-fma" "--disable-fma4" ];
-    sandybridge    = [                                                                                        "--disable-avx2" "--disable-fma" "--disable-fma4" ];
-    ivybridge      = [                                                                                        "--disable-avx2" "--disable-fma" "--disable-fma4" ];
-    haswell        = [                                                                                                                         "--disable-fma4" ];
-    broadwell      = [                                                                                                                         "--disable-fma4" ];
-    skylake        = [                                                                                                                         "--disable-fma4" ];
-    skylake-avx512 = [                                                                                                                         "--disable-fma4" ];
-  }.${stdenv.hostPlatform.platform.gcc.arch or "default"}
-  ++ stdenv.lib.optionals withSage [
+    "--${if stdenv.hostPlatform.sse3Support   then "enable" else "disable"}-sse3"
+    "--${if stdenv.hostPlatform.ssse3Support  then "enable" else "disable"}-ssse3"
+    "--${if stdenv.hostPlatform.sse4_1Support then "enable" else "disable"}-sse41"
+    "--${if stdenv.hostPlatform.sse4_2Support then "enable" else "disable"}-sse42"
+    "--${if stdenv.hostPlatform.avxSupport    then "enable" else "disable"}-avx"
+    "--${if stdenv.hostPlatform.avx2Support   then "enable" else "disable"}-avx2"
+    "--${if stdenv.hostPlatform.fmaSupport    then "enable" else "disable"}-fma"
+    "--${if stdenv.hostPlatform.fma4Support   then "enable" else "disable"}-fma4"
+  ] ++ stdenv.lib.optionals withSage [
     "--enable-sage"
   ];
 
diff --git a/pkgs/development/libraries/lyra/default.nix b/pkgs/development/libraries/lyra/default.nix
index c0220e6e21d..8d5d083d82b 100644
--- a/pkgs/development/libraries/lyra/default.nix
+++ b/pkgs/development/libraries/lyra/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lyra";
-  version = "1.4";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "bfgroup";
     repo = "lyra";
     rev = version;
-    sha256 = "08g6kqaj079aq7i6c1pwj778lrr3yk188wn1byxdd6zqpwrsv71q";
+    sha256 = "0xil6b055csnrvxxmby5x9njf166bri472jxwzshc49cz7svhhpk";
   };
 
   nativeBuildInputs = [ meson ninja ];
diff --git a/pkgs/development/libraries/mailcore2/default.nix b/pkgs/development/libraries/mailcore2/default.nix
index 75e3439db81..d5f20f6761c 100644
--- a/pkgs/development/libraries/mailcore2/default.nix
+++ b/pkgs/development/libraries/mailcore2/default.nix
@@ -5,13 +5,13 @@
 stdenv.mkDerivation rec {
   pname = "mailcore2";
 
-  version = "0.6.3";
+  version = "0.6.4";
 
   src = fetchFromGitHub {
     owner  = "MailCore";
     repo   = "mailcore2";
     rev    = version;
-    sha256 = "0yxynvfmifpw9hdhv499a813hb2ynan74r353lhcdajkkm7w8br5";
+    sha256 = "0a69q11z194fdfwyazjyyylx57sqs9j4lz7jwh5qcws8syqgb23z";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/malcontent/better-separation.patch b/pkgs/development/libraries/malcontent/better-separation.patch
index cd91760bff5..ef42650e249 100644
--- a/pkgs/development/libraries/malcontent/better-separation.patch
+++ b/pkgs/development/libraries/malcontent/better-separation.patch
@@ -1,18 +1,42 @@
+commit 363c5be465dd6dde35c3d31abd7b5cca9b1f3a9f
+Author: Jan Tojnar <jtojnar@gmail.com>
+Date:   Thu Jul 23 18:49:03 2020 +0200
+
+    Improve separation between malcontent and malcontent-ui packages
+    
+    These artefacts go into both packages by default:
+    
+    * malcontent-control – a CLI tool
+    * PAM module
+    * gettext locale data
+    * help pages ✨
+    * AccountService/D-Bus interfaces
+    * Polkit com.endlessm.ParentalControls rules and policy
+    
+    Items marked with ✨ will go to ui package, while the rest is installed with the base library.
+    
+    See also the packaging done by upstream in Endless:
+    https://github.com/endlessm/malcontent/tree/5482b7eb99aee9b8c344629bc078e193d3c26ffc/debian
+    
+    Cannot upstream this since they are worried about maintainability:
+    https://gitlab.freedesktop.org/pwithnall/malcontent/merge_requests/38#note_437946
+
 diff --git a/meson.build b/meson.build
-index a6c477d..f7b2f0a 100644
+index 6e1dfa5..196350b 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -125,8 +125,8 @@ test_env = [
+@@ -123,9 +123,8 @@ test_env = [
    'LC_ALL=C.UTF-8',
  ]
  
 -subdir('accounts-service')
+-subdir('help')
  if not get_option('use_system_libmalcontent')
 +  subdir('accounts-service')
    subdir('libmalcontent')
  else
    libmalcontent_api_version = '0'
-@@ -137,11 +137,17 @@ endif
+@@ -136,11 +135,16 @@ endif
  if get_option('ui').enabled()
    subdir('libmalcontent-ui')
  endif
@@ -22,14 +46,13 @@ index a6c477d..f7b2f0a 100644
 +endif
  if get_option('ui').enabled()
    subdir('malcontent-control')
- endif
--subdir('pam')
++  subdir('help')
++endif
 +if not get_option('use_system_libmalcontent')
 +  subdir('pam')
-+endif
- subdir('po')
++  subdir('po')
+ endif
+-subdir('pam')
+-subdir('po')
  
--meson.add_install_script('build-aux/meson_post_install.py')
-+if get_option('ui').enabled()
-+  meson.add_install_script('build-aux/meson_post_install.py')
-+endif
+ meson.add_install_script('build-aux/meson_post_install.py')
diff --git a/pkgs/development/libraries/malcontent/default.nix b/pkgs/development/libraries/malcontent/default.nix
index f574ab19693..3371bd45e71 100644
--- a/pkgs/development/libraries/malcontent/default.nix
+++ b/pkgs/development/libraries/malcontent/default.nix
@@ -3,7 +3,7 @@
 , fetchpatch
 , meson
 , ninja
-, pkgconfig
+, pkg-config
 , gobject-introspection
 , wrapGAppsHook
 , glib
@@ -19,16 +19,16 @@
 
 stdenv.mkDerivation rec {
   pname = "malcontent";
-  version = "0.7.0";
+  version = "0.8.0";
 
-  outputs = [ "bin" "out" "dev" "man" "installedTests" ];
+  outputs = [ "bin" "out" "lib" "pam" "dev" "man" "installedTests" ];
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "pwithnall";
     repo = pname;
     rev = version;
-    sha256 = "0lxakzj75pvpgwbjfyfkg0gyzvry00zhc9h9cd8f0wksg7mabzbh";
+    sha256 = "Y9HzysChzzmKW5PuCLm9AZ4oaBLMpB0I5NyZUOYFzm4=";
   };
 
   patches = [
@@ -37,19 +37,12 @@ stdenv.mkDerivation rec {
 
     # Do not build things that are part of malcontent-ui package
     ./better-separation.patch
-
-    # Fix pam installed test
-    # https://gitlab.freedesktop.org/pwithnall/malcontent/merge_requests/50
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/pwithnall/malcontent/commit/5d102eeb0604e65fc977ca77d4b249e986e634cc.patch";
-      sha256 = "1vs35zfp2sa2rps5h1240h73kvlspmv7mfr6f8mcbzvhj1wgzw74";
-    })
   ];
 
   nativeBuildInputs = [
     meson
     ninja
-    pkgconfig
+    pkg-config
     gobject-introspection
     wrapGAppsHook
   ];
@@ -72,6 +65,7 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dinstalled_tests=true"
     "-Dinstalled_test_prefix=${placeholder "installedTests"}"
+    "-Dpamlibdir=${placeholder "pam"}/lib/security"
     "-Dui=disabled"
   ];
 
@@ -83,6 +77,13 @@ stdenv.mkDerivation rec {
       --replace "/bin/false" "${coreutils}/bin/false"
   '';
 
+  postInstall = ''
+    # `giDiscoverSelf` only picks up paths in `out` output.
+    # This needs to be in `postInstall` so that it runs before
+    # `gappsWrapperArgsHook` that runs as one of `preFixupPhases`.
+    addToSearchPath GI_TYPELIB_PATH "$lib/lib/girepository-1.0"
+  '';
+
   passthru = {
     tests = {
       installedTests = nixosTests.installed-tests.malcontent;
@@ -90,6 +91,10 @@ stdenv.mkDerivation rec {
   };
 
   meta = with stdenv.lib; {
+    # We need to install Polkit & AccountsService data files in `out`
+    # but `buildEnv` only uses `bin` when both `bin` and `out` are present.
+    outputsToInstall = [ "bin" "out" "man" ];
+
     description = "Parental controls library";
     homepage = "https://gitlab.freedesktop.org/pwithnall/malcontent";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/malcontent/ui.nix b/pkgs/development/libraries/malcontent/ui.nix
index af1fa6b4138..c69f987c70e 100644
--- a/pkgs/development/libraries/malcontent/ui.nix
+++ b/pkgs/development/libraries/malcontent/ui.nix
@@ -3,6 +3,7 @@
 , ninja
 , pkg-config
 , gobject-introspection
+, itstool
 , wrapGAppsHook
 , glib
 , accountsservice
@@ -20,7 +21,7 @@ stdenv.mkDerivation rec {
 
   inherit (malcontent) version src;
 
-  outputs = [ "bin" "out" "dev" ];
+  outputs = [ "out" "lib" "dev" ];
 
   patches = [
     # Allow installing installed tests to a separate output.
@@ -35,6 +36,7 @@ stdenv.mkDerivation rec {
     ninja
     pkg-config
     gobject-introspection
+    itstool
     desktop-file-utils
     wrapGAppsHook
   ];
diff --git a/pkgs/development/libraries/medfile/default.nix b/pkgs/development/libraries/medfile/default.nix
index 7a5688a1b71..246bdb1480c 100644
--- a/pkgs/development/libraries/medfile/default.nix
+++ b/pkgs/development/libraries/medfile/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "medfile";
-  version = "4.0.0";
+  version = "4.1.0";
 
   src = fetchurl {
     url = "http://files.salome-platform.org/Salome/other/med-${version}.tar.gz";
-    sha256 = "017h9p0x533fm4gn6pwc8kmp72rvqmcn6vznx72nkkl2b05yjx54";
+    sha256 = "1khzclkrd1yn9mz3g14ndgpsbj8j50v8dsjarcj6kkn9zgbbazc4";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 7ae59c119a0..cf452fded14 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -31,7 +31,7 @@ with stdenv.lib;
 let
   # Release calendar: https://www.mesa3d.org/release-calendar.html
   # Release frequency: https://www.mesa3d.org/releasing.html#schedule
-  version = "20.0.8"; # Update only to the final (last planned) release (i.e. X.Y.MAX)?
+  version = "20.1.7";
   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 = "6cf0c010df89680f9b2bc6432ff01400031795e39bceda7535fa00af06740b6c";
+    sha256 = "1252mgwiy05nz8mm4gjkzmnjfvdz5yv1shnsr837cdnan86dvsad";
   };
 
   prePatch = "patchShebangs .";
@@ -58,7 +58,22 @@ stdenv.mkDerivation {
     ./missing-includes.patch # dev_t needs sys/stat.h, time_t needs time.h, etc.-- fixes build w/musl
     ./opencl-install-dir.patch
     ./disk_cache-include-dri-driver-path-in-cache-key.patch
-  ] # do not prefix user provided dri-drivers-path
+    ./link-radv-with-ld_args_build_id.patch
+  ]
+    ++ lib.optionals stdenv.hostPlatform.isMusl [
+      # Fix `-Werror=int-conversion` pthread warnings on musl.
+      # TODO: Remove when https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6121 is merged and available
+      (fetchpatch {
+        name = "nine_debug-Make-tid-more-type-correct";
+        # Patch adjusted for version `20.1`, before the big mesa dirs change
+        # `gallium: rename 'state tracker' to 'frontend'`.
+        # Patch for versions after that change is at
+        #     https://gitlab.freedesktop.org/mesa/mesa/commit/aebbf819df6d1e3b4745ef16d0e833300ad67044.patch
+        url = "https://gitlab.freedesktop.org/nh2/mesa/commit/3385c49684375f1153a52ed7ccda3f5135268a41.patch";
+        sha256 = "1ci694sqjll44c9g2md4krhk6qlvq51r7ad5rnnfdnf3l8ys0i50";
+      })
+    ]
+    # do not prefix user provided dri-drivers-path
     ++ lib.optional (lib.versionOlder version "19.0.0") (fetchpatch {
       url = "https://gitlab.freedesktop.org/mesa/mesa/commit/f6556ec7d126b31da37c08d7cb657250505e01a0.patch";
       sha256 = "0z6phi8hbrbb32kkp1js7ggzviq7faz1ria36wi4jbc4in2392d9";
@@ -81,6 +96,12 @@ stdenv.mkDerivation {
     substituteInPlace meson.build --replace \
       "find_program('pkg-config')" \
       "find_program('${buildPackages.pkg-config.targetPrefix}pkg-config')"
+
+    # The drirc.d directory cannot be installed to $drivers as that would cause a cyclic dependency:
+    substituteInPlace src/util/xmlconfig.c --replace \
+      'DATADIR "/drirc.d"' '"${placeholder "out"}/drirc.d"'
+    substituteInPlace src/util/meson.build --replace \
+      "get_option('datadir')" "'${placeholder "out"}'"
   '';
 
   outputs = [ "out" "dev" "drivers" ] ++ lib.optional enableOSMesa "osmesa";
@@ -88,6 +109,7 @@ stdenv.mkDerivation {
   # TODO: Figure out how to enable opencl without having a runtime dependency on clang
   mesonFlags = [
     "--sysconfdir=/etc"
+    "--datadir=${placeholder "drivers"}/share" # Vendor files
 
     # Don't build in debug mode
     # https://gitlab.freedesktop.org/mesa/mesa/blob/master/docs/meson.html#L327
@@ -158,9 +180,6 @@ stdenv.mkDerivation {
       mv $out/lib/lib*_mesa* $drivers/lib
     fi
 
-    # move vendor files
-    mv $out/share/ $drivers/
-
     # Update search path used by glvnd
     for js in $drivers/share/glvnd/egl_vendor.d/*.json; do
       substituteInPlace "$js" --replace '"libEGL_' '"'"$drivers/lib/libEGL_"
diff --git a/pkgs/development/libraries/mesa/link-radv-with-ld_args_build_id.patch b/pkgs/development/libraries/mesa/link-radv-with-ld_args_build_id.patch
new file mode 100644
index 00000000000..0a660332392
--- /dev/null
+++ b/pkgs/development/libraries/mesa/link-radv-with-ld_args_build_id.patch
@@ -0,0 +1,25 @@
+From b49bcb6eece322b70fc2e8b0c8498f5a38ea7b82 Mon Sep 17 00:00:00 2001
+From: David McFarland <corngood@gmail.com>
+Date: Sun, 26 Jul 2020 17:29:49 -0300
+Subject: [PATCH] link radv with ld_args_build_id
+
+This is needed for radv_device_get_cache_uuid to work correctly.
+---
+ src/amd/vulkan/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/amd/vulkan/meson.build b/src/amd/vulkan/meson.build
+index eec026e8f60..a07a0821938 100644
+--- a/src/amd/vulkan/meson.build
++++ b/src/amd/vulkan/meson.build
+@@ -183,7 +183,7 @@ libvulkan_radeon = shared_library(
+   ],
+   c_args : [c_vis_args, no_override_init_args, radv_flags],
+   cpp_args : [cpp_vis_args, radv_flags],
+-  link_args : [ld_args_bsymbolic, ld_args_gc_sections, libvulkan_radeon_ld_args],
++  link_args : [ld_args_build_id, ld_args_bsymbolic, ld_args_gc_sections, libvulkan_radeon_ld_args],
+   link_depends : [libvulkan_radeon_link_depends,],
+   install : true,
+ )
+--
+2.28.0
diff --git a/pkgs/development/libraries/mimalloc/default.nix b/pkgs/development/libraries/mimalloc/default.nix
index bf6c5b1baf3..997fd2ab634 100644
--- a/pkgs/development/libraries/mimalloc/default.nix
+++ b/pkgs/development/libraries/mimalloc/default.nix
@@ -7,13 +7,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname   = "mimalloc";
-  version = "1.6.3";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner  = "microsoft";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "0hk30adrm0s1g5flfaqfr3lc72y3hlmhqnyrqd7p0y91rsaw86b9";
+    sha256 = "0b6ymi2a9is2q6n49dvlnjxknikj0rfff5ygbc4n7894h5mllvvr";
   };
 
   nativeBuildInputs = [ cmake ninja ];
diff --git a/pkgs/development/libraries/mimetic/default.nix b/pkgs/development/libraries/mimetic/default.nix
index 06b6653f4e7..0147a297305 100644
--- a/pkgs/development/libraries/mimetic/default.nix
+++ b/pkgs/development/libraries/mimetic/default.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ cutee ];
 
+  patches = stdenv.lib.optional stdenv.isAarch64 ./narrowing.patch;
+
   meta = with stdenv.lib; {
     description = "MIME handling library";
     homepage    = "http://www.codesink.org/mimetic_mime_library.html";
diff --git a/pkgs/development/libraries/mimetic/narrowing.patch b/pkgs/development/libraries/mimetic/narrowing.patch
new file mode 100644
index 00000000000..676e29376c7
--- /dev/null
+++ b/pkgs/development/libraries/mimetic/narrowing.patch
@@ -0,0 +1,32 @@
+diff -ru a/mimetic/codec/base64.cxx b/mimetic/codec/base64.cxx
+--- a/mimetic/codec/base64.cxx	2014-06-17 10:12:00.000000000 +0200
++++ b/mimetic/codec/base64.cxx	2020-07-30 20:54:10.212742011 +0200
+@@ -14,19 +14,19 @@
+     "0123456789+/=";
+ 
+ const char Base64::sDecTable[] = {
+-        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
+-        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
+-        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
+-        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
+-        -1,-1,-1,62,-1,-1,-1,63,52,53,
+-        54,55,56,57,58,59,60,61,-1,-1,
+-        -1, eq_sign, -1,-1,-1, 0, 1, 2, 3, 4, 
++        255,255,255,255,255,255,255,255,255,255,
++        255,255,255,255,255,255,255,255,255,255,
++        255,255,255,255,255,255,255,255,255,255,
++        255,255,255,255,255,255,255,255,255,255,
++        255,255,255,62,255,255,255,63,52,53,
++        54,55,56,57,58,59,60,61,255,255,
++        255, eq_sign, 255,255,255, 0, 1, 2, 3, 4, 
+          5, 6, 7, 8, 9,10,11,12,13,14,
+         15,16,17,18,19,20,21,22,23,24,
+-        25,-1,-1,-1,-1,-1,-1,26,27,28,
++        25,255,255,255,255,255,255,26,27,28,
+         29,30,31,32,33,34,35,36,37,38,
+         39,40,41,42,43,44,45,46,47,48,
+-        49,50,51,-1
++        49,50,51,255
+ };
+ 
+ const int Base64::sDecTableSz = sizeof(Base64::sDecTable) / sizeof(char);
diff --git a/pkgs/development/libraries/mpfr/default.nix b/pkgs/development/libraries/mpfr/default.nix
index ceba71ae06a..4a744b7483e 100644
--- a/pkgs/development/libraries/mpfr/default.nix
+++ b/pkgs/development/libraries/mpfr/default.nix
@@ -1,7 +1,12 @@
 { stdenv, fetchurl, gmp }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
-  version = "4.0.2";
+  version = "4.1.0";
   pname = "mpfr";
 
   src = fetchurl {
@@ -9,7 +14,7 @@ stdenv.mkDerivation rec {
       #"https://www.mpfr.org/${name}/${name}.tar.xz"
       "mirror://gnu/mpfr/${pname}-${version}.tar.xz"
     ];
-    sha256 = "12m3amcavhpqygc499s3fzqlb8f2j2rr7fkqsm10xbjfc04fffqx";
+    sha256 = "0zwaanakrqjf84lfr5hfsdr7hncwv9wj0mchlr7cmxigfgqs760c";
   };
 
   outputs = [ "out" "dev" "doc" "info" ];
diff --git a/pkgs/development/libraries/muparserx/default.nix b/pkgs/development/libraries/muparserx/default.nix
new file mode 100644
index 00000000000..2c5bde316b4
--- /dev/null
+++ b/pkgs/development/libraries/muparserx/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "muparserx";
+  version = "4.0.8";
+
+  src = fetchFromGitHub {
+    owner = "beltoforion";
+    repo = "muparserx";
+    rev = "v${version}";
+    sha256 = "097pkdffv0phr0345hy06mjm5pfy259z13plsvbxvcmds80wl48v";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Release"
+  ];
+
+  doCheck = true;
+  checkPhase = ''
+    echo "***Muparserx self-test***"
+    echo "quit" | ./example > test_result.log
+    cat test_result.log
+    if grep -Fqi "failed" test_result.log; then
+      echo ">=1 muparserx tests failed"
+      exit 1
+    else
+      echo -e "\nmuparserx tests succeeded"
+    fi
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A C++ Library for Parsing Expressions with Strings, Complex Numbers, Vectors, Matrices and more.";
+    homepage = "https://beltoforion.de/en/muparserx/";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ drewrisinger ];
+  };
+}
diff --git a/pkgs/development/libraries/nanomsg/default.nix b/pkgs/development/libraries/nanomsg/default.nix
index 7e96d60840d..5772581d5ec 100644
--- a/pkgs/development/libraries/nanomsg/default.nix
+++ b/pkgs/development/libraries/nanomsg/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "01ddfzjlkf2dgijrmm3j3j8irccsnbgfvjcnwslsfaxnrmrq5s64";
   };
 
-  buildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   meta = with stdenv.lib; {
     description= "Socket library that provides several common communication patterns";
diff --git a/pkgs/development/libraries/ndi/default.nix b/pkgs/development/libraries/ndi/default.nix
index ec39bbd6593..c0e1816c0e1 100644
--- a/pkgs/development/libraries/ndi/default.nix
+++ b/pkgs/development/libraries/ndi/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "ndi";
-  fullVersion = "4.5.1";
+  fullVersion = "4.5.3";
   version = builtins.head (builtins.splitVersion fullVersion);
 
   src = requireFile rec {
     name    = "InstallNDISDK_v${version}_Linux.tar.gz";
-    sha256  = "04l57cfc88cdqa9015h5g1csr7xfjxp75x8qz8bsqk1dizp9ir6r";
+    sha256  = "0w9f4a4a3xzg0nvmvrlda1wwkyi0m5aqvk07immmwgg7f1z1sqj5";
     message = ''
       In order to use NDI SDK version ${fullVersion}, you need to comply with
       NewTek's license and download the appropriate Linux tarball from:
diff --git a/pkgs/development/libraries/neatvnc/default.nix b/pkgs/development/libraries/neatvnc/default.nix
index 127f25a50be..2c4357e1e93 100644
--- a/pkgs/development/libraries/neatvnc/default.nix
+++ b/pkgs/development/libraries/neatvnc/default.nix
@@ -1,24 +1,20 @@
 { stdenv, fetchFromGitHub, meson, pkg-config, ninja
-, pixman, libuv, gnutls, libdrm
-# libjpeg_turbo: Optional, for tight encoding (disabled because experimental)
-, enableCpuAcceleration ? false # Whether to use CPU extensions (e.g. AVX)
+, pixman, gnutls, libdrm, libjpeg_turbo, zlib, aml
 }:
 
 stdenv.mkDerivation rec {
   pname = "neatvnc";
-  version = "0.1.0";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "any1";
     repo = pname;
     rev = "v${version}";
-    sha256 = "04wcpwxlcf0bczcs97j21346mn6finfj7xgc2dsrwrw9xq8qa7wc";
+    sha256 = "036kzhbabbwc3gvsw8kqf6rs0gh8kgn6i0by9pxski38mi0qs1qs";
   };
 
   nativeBuildInputs = [ meson pkg-config ninja ];
-  buildInputs = [ pixman libuv gnutls libdrm ];
-
-  patches = stdenv.lib.optional (!enableCpuAcceleration) ./disable-cpu-acceleration.patch;
+  buildInputs = [ pixman gnutls libdrm libjpeg_turbo zlib aml ];
 
   meta = with stdenv.lib; {
     description = "A VNC server library";
@@ -30,6 +26,7 @@ stdenv.mkDerivation rec {
       - Interoperability with the Freedesktop.org ecosystem
     '';
     inherit (src.meta) homepage;
+    changelog = "https://github.com/any1/neatvnc/releases/tag/v${version}";
     license = licenses.isc;
     platforms = platforms.linux;
     maintainers = with maintainers; [ primeos ];
diff --git a/pkgs/development/libraries/neatvnc/disable-cpu-acceleration.patch b/pkgs/development/libraries/neatvnc/disable-cpu-acceleration.patch
deleted file mode 100644
index 97b77c02df4..00000000000
--- a/pkgs/development/libraries/neatvnc/disable-cpu-acceleration.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/meson.build b/meson.build
-index 31dd8b8..8761087 100644
---- a/meson.build
-+++ b/meson.build
-@@ -21,12 +21,6 @@ endif
- 
- cpu = host_machine.cpu_family()
- 
--if cpu == 'x86_64'
--	c_args += '-mavx'
--elif cpu == 'arm'
--	c_args += '-mfpu=neon'
--endif
--
- add_project_arguments(c_args, language: 'c')
- 
- cc = meson.get_compiler('c')
diff --git a/pkgs/development/libraries/netcdf/default.nix b/pkgs/development/libraries/netcdf/default.nix
index 2e16f58d9fb..fecc4100f5e 100644
--- a/pkgs/development/libraries/netcdf/default.nix
+++ b/pkgs/development/libraries/netcdf/default.nix
@@ -3,6 +3,7 @@
 , hdf5
 , m4
 , curl # for DAP
+, removeReferencesTo
 }:
 
 let
@@ -26,7 +27,7 @@ in stdenv.mkDerivation rec {
     done
   '';
 
-  nativeBuildInputs = [ m4 ];
+  nativeBuildInputs = [ m4 removeReferencesTo ];
   buildInputs = [ hdf5 curl mpi ];
 
   passthru = {
@@ -42,6 +43,12 @@ in stdenv.mkDerivation rec {
   ]
   ++ (stdenv.lib.optionals mpiSupport [ "--enable-parallel-tests" "CC=${mpi}/bin/mpicc" ]);
 
+  disallowedReferences = [ stdenv.cc ];
+
+  postFixup = ''
+    remove-references-to -t ${stdenv.cc} "$(readlink -f $out/lib/libnetcdf.settings)"
+  '';
+
   doCheck = !mpiSupport;
 
   meta = {
diff --git a/pkgs/development/libraries/nghttp2/default.nix b/pkgs/development/libraries/nghttp2/default.nix
index 939f137ac3e..c9ccf63f889 100644
--- a/pkgs/development/libraries/nghttp2/default.nix
+++ b/pkgs/development/libraries/nghttp2/default.nix
@@ -12,6 +12,11 @@
 , enablePython ? false, python ? null, cython ? null, ncurses ? null, setuptools ? null
 }:
 
+# 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
+# files.
+
 assert enableHpack -> jansson != null;
 assert enableAsioLib -> boost != null;
 assert enableGetAssets -> libxml2 != null;
@@ -22,11 +27,11 @@ let inherit (stdenv.lib) optional optionals optionalString; in
 
 stdenv.mkDerivation rec {
   pname = "nghttp2";
-  version = "1.40.0";
+  version = "1.41.0";
 
   src = fetchurl {
     url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2";
-    sha256 = "0kyrgd4s2pq51ps5z385kw1hn62m8qp7c4h6im0g4ibrf89qwxc2";
+    sha256 = "0h12wz72paxnj8l9vv2qfgfbmj20c6pz6xbilb7ns9zcwxwa0p34";
   };
 
   outputs = [ "bin" "out" "dev" "lib" ]
diff --git a/pkgs/development/libraries/notify-sharp/default.nix b/pkgs/development/libraries/notify-sharp/default.nix
index 403b0326bb5..58d35767d1e 100644
--- a/pkgs/development/libraries/notify-sharp/default.nix
+++ b/pkgs/development/libraries/notify-sharp/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook
+{ stdenv, fetchFromGitLab, pkgconfig, autoreconfHook
 , mono, gtk-sharp-3_0, dbus-sharp-1_0, dbus-sharp-glib-1_0 }:
 
 stdenv.mkDerivation rec {
   pname = "notify-sharp";
   version = "3.0.3";
 
-  src = fetchFromGitHub {
-    owner = "GNOME";
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "Archive";
     repo = "notify-sharp";
 
     rev = version;
diff --git a/pkgs/development/libraries/nspr/default.nix b/pkgs/development/libraries/nspr/default.nix
index 31a9f7f20d1..d9b7ff13d1a 100644
--- a/pkgs/development/libraries/nspr/default.nix
+++ b/pkgs/development/libraries/nspr/default.nix
@@ -2,7 +2,7 @@
 , CoreServices ? null
 , buildPackages }:
 
-let version = "4.25"; in
+let version = "4.28"; in
 
 stdenv.mkDerivation {
   pname = "nspr";
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://mozilla/nspr/releases/v${version}/src/nspr-${version}.tar.gz";
-    sha256 = "0mjjk2b7ika3v4y99cnaqz3z1iq1a50r1psn9i3s87gr46z0khqb";
+    sha256 = "0miv8ggil1xdywxw2sxaa05kqw7ahjgaimf7zjc6y2x8367grpk3";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/nss/3.44.nix b/pkgs/development/libraries/nss/3.44.nix
new file mode 100644
index 00000000000..ad58bfccaee
--- /dev/null
+++ b/pkgs/development/libraries/nss/3.44.nix
@@ -0,0 +1,144 @@
+{ stdenv, fetchurl, nspr, perl, zlib, sqlite, fixDarwinDylibNames, buildPackages }:
+
+let
+  nssPEM = fetchurl {
+    url = "http://dev.gentoo.org/~polynomial-c/mozilla/nss-3.15.4-pem-support-20140109.patch.xz";
+    sha256 = "10ibz6y0hknac15zr6dw4gv9nb5r5z9ym6gq18j3xqx7v7n3vpdw";
+  };
+  version = "3.44.4";
+  underscoreVersion = builtins.replaceStrings ["."] ["_"] version;
+
+in stdenv.mkDerivation rec {
+  pname = "nss";
+  inherit version;
+
+  src = fetchurl {
+    url = "mirror://mozilla/security/nss/releases/NSS_${underscoreVersion}_RTM/src/${pname}-${version}.tar.gz";
+    sha256 = "7ec1a52e20fd9a23e1907eeba8f4f2ecd619dac5d20fa023ec5b4faa1843e847";
+  };
+
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+
+  nativeBuildInputs = [ perl ];
+
+  buildInputs = [ zlib sqlite ]
+    ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+  propagatedBuildInputs = [ nspr ];
+
+  prePatch = ''
+    xz -d < ${nssPEM} | patch -p1
+  '';
+
+  patches =
+    [
+      # Based on http://patch-tracker.debian.org/patch/series/dl/nss/2:3.15.4-1/85_security_load.patch
+      ./85_security_load-3.44.patch
+      ./ckpem.patch
+    ];
+
+  patchFlags = [ "-p0" ];
+
+  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+    substituteInPlace nss/coreconf/Darwin.mk --replace '@executable_path/$(notdir $@)' "$out/lib/\$(notdir \$@)"
+  '';
+
+  outputs = [ "out" "dev" "tools" ];
+
+  preConfigure = "cd nss";
+
+  makeFlags = let
+    # NSS's build systems expects aarch32 to be called arm; if we pass in armv6l/armv7l, it
+    # fails with a linker error
+    cpu = if stdenv.hostPlatform.isAarch32 then "arm" else stdenv.hostPlatform.parsed.cpu.name;
+  in [
+    "NSPR_INCLUDE_DIR=${nspr.dev}/include"
+    "NSPR_LIB_DIR=${nspr.out}/lib"
+    "NSDISTMODE=copy"
+    "BUILD_OPT=1"
+    "SOURCE_PREFIX=\$(out)"
+    "NSS_ENABLE_ECC=1"
+    "USE_SYSTEM_ZLIB=1"
+    "NSS_USE_SYSTEM_SQLITE=1"
+    "NATIVE_CC=${buildPackages.stdenv.cc}/bin/cc"
+  ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [
+    # Pass in CPU even if we're not cross compiling, because otherwise it tries to guess with
+    # uname, which can be wrong if e.g. we're compiling for aarch32 on aarch64
+    "OS_TEST=${cpu}"
+    "CPU_ARCH=${cpu}"
+  ] ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "CROSS_COMPILE=1"
+    "NSS_DISABLE_GTESTS=1" # don't want to build tests when cross-compiling
+  ] ++ stdenv.lib.optional stdenv.is64bit "USE_64=1"
+    ++ stdenv.lib.optional stdenv.isDarwin "CCC=clang++";
+
+  NIX_CFLAGS_COMPILE = "-Wno-error";
+
+  # TODO(@oxij): investigate this: `make -n check` works but `make
+  # check` fails with "no rule", same for "installcheck".
+  doCheck = false;
+  doInstallCheck = false;
+
+  postInstall = ''
+    rm -rf $out/private
+    mv $out/public $out/include
+    mv $out/*.OBJ/* $out/
+    rmdir $out/*.OBJ
+
+    ln -s lib $out/lib64
+
+    # Upstream issue: https://bugzilla.mozilla.org/show_bug.cgi?id=530672
+    # https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/nss/files/nss-3.32-gentoo-fixups.patch?id=af1acce6c6d2c3adb17689261dfe2c2b6771ab8a
+    NSS_MAJOR_VERSION=`grep "NSS_VMAJOR" lib/nss/nss.h | awk '{print $3}'`
+    NSS_MINOR_VERSION=`grep "NSS_VMINOR" lib/nss/nss.h | awk '{print $3}'`
+    NSS_PATCH_VERSION=`grep "NSS_VPATCH" lib/nss/nss.h | awk '{print $3}'`
+    PREFIX="$out"
+
+    mkdir -p $out/lib/pkgconfig
+    sed -e "s,%prefix%,$PREFIX," \
+        -e "s,%exec_prefix%,$PREFIX," \
+        -e "s,%libdir%,$PREFIX/lib64," \
+        -e "s,%includedir%,$dev/include/nss," \
+        -e "s,%NSS_VERSION%,$NSS_MAJOR_VERSION.$NSS_MINOR_VERSION.$NSS_PATCH_VERSION,g" \
+        -e "s,%NSPR_VERSION%,4.16,g" \
+        pkg/pkg-config/nss.pc.in > $out/lib/pkgconfig/nss.pc
+    chmod 0644 $out/lib/pkgconfig/nss.pc
+
+    sed -e "s,@prefix@,$PREFIX," \
+        -e "s,@MOD_MAJOR_VERSION@,$NSS_MAJOR_VERSION," \
+        -e "s,@MOD_MINOR_VERSION@,$NSS_MINOR_VERSION," \
+        -e "s,@MOD_PATCH_VERSION@,$NSS_PATCH_VERSION," \
+        pkg/pkg-config/nss-config.in > $out/bin/nss-config
+    chmod 0755 $out/bin/nss-config
+  '';
+
+  postFixup = let
+    isCross = stdenv.hostPlatform != stdenv.buildPlatform;
+    nss = if isCross then buildPackages.nss.tools else "$out";
+  in ''
+    for libname in freebl3 nssdbm3 softokn3
+    do '' +
+    (if stdenv.isDarwin
+     then ''
+       libfile="$out/lib/lib$libname.dylib"
+       DYLD_LIBRARY_PATH=$out/lib:${nspr.out}/lib \
+     '' else ''
+       libfile="$out/lib/lib$libname.so"
+       LD_LIBRARY_PATH=$out/lib:${nspr.out}/lib \
+     '') + ''
+        ${nss}/bin/shlibsign -v -i "$libfile"
+    done
+
+    moveToOutput bin "$tools"
+    moveToOutput bin/nss-config "$dev"
+    moveToOutput lib/libcrmf.a "$dev" # needed by firefox, for example
+    rm -f "$out"/lib/*.a
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://developer.mozilla.org/en-US/docs/NSS";
+    description = "A set of libraries for development of security-enabled client and server applications";
+    license = licenses.mpl20;
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/nss/85_security_load-3.44.patch b/pkgs/development/libraries/nss/85_security_load-3.44.patch
new file mode 100644
index 00000000000..132d5a96b29
--- /dev/null
+++ b/pkgs/development/libraries/nss/85_security_load-3.44.patch
@@ -0,0 +1,81 @@
+diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/cmd/shlibsign/shlibsign.c nss/cmd/shlibsign/shlibsign.c
+--- nss/cmd/shlibsign/shlibsign.c	2017-01-04 15:24:24.000000000 +0100
++++ nss/cmd/shlibsign/shlibsign.c	2017-01-24 14:43:31.030420852 +0100
+@@ -875,6 +875,8 @@
+         goto cleanup;
+     }
+     lib = PR_LoadLibrary(libname);
++    if (!lib)
++        lib = PR_LoadLibrary(NIX_NSS_LIBDIR"libsoftokn3.so");
+     assert(lib != NULL);
+     if (!lib) {
+         PR_fprintf(PR_STDERR, "loading softokn3 failed");
+diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/coreconf/config.mk nss/coreconf/config.mk
+--- nss/coreconf/config.mk	2017-01-04 15:24:24.000000000 +0100
++++ nss/coreconf/config.mk	2017-01-24 14:43:47.989432372 +0100
+@@ -202,3 +202,6 @@
+ 
+ # Hide old, deprecated, TLS cipher suite names when building NSS
+ DEFINES += -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES
++
++# Nix specific stuff.
++DEFINES += -DNIX_NSS_LIBDIR=\"$(out)/lib/\"
+diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/lib/pk11wrap/pk11load.c nss/lib/pk11wrap/pk11load.c
+--- nss/lib/pk11wrap/pk11load.c	2017-01-04 15:24:24.000000000 +0100
++++ nss/lib/pk11wrap/pk11load.c	2017-01-24 14:45:06.883485652 +0100
+@@ -440,6 +440,13 @@
+          * unload the library if anything goes wrong from here on out...
+          */
+         library = PR_LoadLibrary(mod->dllName);
++        if ((library == NULL) &&
++            !rindex(mod->dllName, PR_GetDirectorySeparator())) {
++            library = PORT_LoadLibraryFromOrigin(my_shlib_name,
++                (PRFuncPtr) &softoken_LoadDSO,
++                mod->dllName);
++        }
++
+         mod->library = (void *)library;
+ 
+         if (library == NULL) {
+diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/lib/util/secload.c nss/lib/util/secload.c
+--- nss/lib/util/secload.c	2017-01-04 15:24:24.000000000 +0100
++++ nss/lib/util/secload.c	2017-01-24 14:43:31.030420852 +0100
+@@ -70,9 +70,14 @@
+ 
+     /* Remove the trailing filename from referencePath and add the new one */
+     c = strrchr(referencePath, PR_GetDirectorySeparator());
++    if (!c) { /* referencePath doesn't contain a / means that dladdr gave us argv[0]
++               * and program was called from $PATH. Hack to get libs from NIX_NSS_LIBDIR */
++        referencePath = NIX_NSS_LIBDIR;
++        c = (char*) &referencePath[sizeof(NIX_NSS_LIBDIR) - 1]; /* last / */
++    }
+     if (c) {
+         size_t referencePathSize = 1 + c - referencePath;
+-        fullName = (char*)PORT_Alloc(strlen(name) + referencePathSize + 1);
++        fullName = (char*) PORT_Alloc(strlen(name) + referencePathSize + 5);
+         if (fullName) {
+             memcpy(fullName, referencePath, referencePathSize);
+             strcpy(fullName + referencePathSize, name);
+@@ -82,6 +87,11 @@
+ #endif
+             libSpec.type = PR_LibSpec_Pathname;
+             libSpec.value.pathname = fullName;
++            if ((referencePathSize >= 4) &&
++                (strncmp(fullName + referencePathSize - 4, "bin", 3) == 0)) {
++                memcpy(fullName + referencePathSize -4, "lib", 3);
++            }
++            strcpy(fullName + referencePathSize, name);
+             dlh = PR_LoadLibraryWithFlags(libSpec, PR_LD_NOW | PR_LD_LOCAL
+ #ifdef PR_LD_ALT_SEARCH_PATH
+                                                        /* allow library's dependencies to be found in the same directory
+@@ -89,6 +99,10 @@
+                                                        | PR_LD_ALT_SEARCH_PATH
+ #endif
+                                           );
++            if (! dlh) {
++                strcpy(fullName + referencePathSize, name);
++                dlh = PR_LoadLibraryWithFlags(libSpec, PR_LD_NOW | PR_LD_LOCAL);
++            }
+             PORT_Free(fullName);
+         }
+     }
diff --git a/pkgs/development/libraries/nss/85_security_load.patch b/pkgs/development/libraries/nss/85_security_load.patch
index 132d5a96b29..2b2cce465ba 100644
--- a/pkgs/development/libraries/nss/85_security_load.patch
+++ b/pkgs/development/libraries/nss/85_security_load.patch
@@ -1,7 +1,8 @@
-diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/cmd/shlibsign/shlibsign.c nss/cmd/shlibsign/shlibsign.c
---- nss/cmd/shlibsign/shlibsign.c	2017-01-04 15:24:24.000000000 +0100
-+++ nss/cmd/shlibsign/shlibsign.c	2017-01-24 14:43:31.030420852 +0100
-@@ -875,6 +875,8 @@
+diff --git nss/cmd/shlibsign/shlibsign.c nss/cmd/shlibsign/shlibsign.c
+index ad8f3b84e..74676d039 100644
+--- nss/cmd/shlibsign/shlibsign.c
++++ nss/cmd/shlibsign/shlibsign.c
+@@ -875,6 +875,8 @@ main(int argc, char **argv)
          goto cleanup;
      }
      lib = PR_LoadLibrary(libname);
@@ -10,37 +11,31 @@ diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/cmd/shlibsign/shlibsign.c nss/cmd/sh
      assert(lib != NULL);
      if (!lib) {
          PR_fprintf(PR_STDERR, "loading softokn3 failed");
-diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/coreconf/config.mk nss/coreconf/config.mk
---- nss/coreconf/config.mk	2017-01-04 15:24:24.000000000 +0100
-+++ nss/coreconf/config.mk	2017-01-24 14:43:47.989432372 +0100
-@@ -202,3 +202,6 @@
- 
- # Hide old, deprecated, TLS cipher suite names when building NSS
- DEFINES += -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES
-+
-+# Nix specific stuff.
-+DEFINES += -DNIX_NSS_LIBDIR=\"$(out)/lib/\"
-diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/lib/pk11wrap/pk11load.c nss/lib/pk11wrap/pk11load.c
---- nss/lib/pk11wrap/pk11load.c	2017-01-04 15:24:24.000000000 +0100
-+++ nss/lib/pk11wrap/pk11load.c	2017-01-24 14:45:06.883485652 +0100
-@@ -440,6 +440,13 @@
+diff --git nss/lib/pk11wrap/pk11load.c nss/lib/pk11wrap/pk11load.c
+index 9e7a0a546..a0a23a1a4 100644
+--- nss/lib/pk11wrap/pk11load.c
++++ nss/lib/pk11wrap/pk11load.c
+@@ -466,6 +466,15 @@ secmod_LoadPKCS11Module(SECMODModule *mod, SECMODModule **oldModule)
           * unload the library if anything goes wrong from here on out...
           */
          library = PR_LoadLibrary(mod->dllName);
++#ifndef NSS_STATIC_SOFTOKEN
 +        if ((library == NULL) &&
 +            !rindex(mod->dllName, PR_GetDirectorySeparator())) {
 +            library = PORT_LoadLibraryFromOrigin(my_shlib_name,
 +                (PRFuncPtr) &softoken_LoadDSO,
 +                mod->dllName);
 +        }
++#endif
 +
          mod->library = (void *)library;
  
          if (library == NULL) {
-diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/lib/util/secload.c nss/lib/util/secload.c
---- nss/lib/util/secload.c	2017-01-04 15:24:24.000000000 +0100
-+++ nss/lib/util/secload.c	2017-01-24 14:43:31.030420852 +0100
-@@ -70,9 +70,14 @@
+diff --git nss/lib/util/secload.c nss/lib/util/secload.c
+index 12efd2f75..8b74478f6 100644
+--- nss/lib/util/secload.c
++++ nss/lib/util/secload.c
+@@ -70,9 +70,14 @@ loader_LoadLibInReferenceDir(const char* referencePath, const char* name)
  
      /* Remove the trailing filename from referencePath and add the new one */
      c = strrchr(referencePath, PR_GetDirectorySeparator());
@@ -56,7 +51,7 @@ diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/lib/util/secload.c nss/lib/util/secl
          if (fullName) {
              memcpy(fullName, referencePath, referencePathSize);
              strcpy(fullName + referencePathSize, name);
-@@ -82,6 +87,11 @@
+@@ -82,6 +87,11 @@ loader_LoadLibInReferenceDir(const char* referencePath, const char* name)
  #endif
              libSpec.type = PR_LibSpec_Pathname;
              libSpec.value.pathname = fullName;
@@ -68,7 +63,7 @@ diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/lib/util/secload.c nss/lib/util/secl
              dlh = PR_LoadLibraryWithFlags(libSpec, PR_LD_NOW | PR_LD_LOCAL
  #ifdef PR_LD_ALT_SEARCH_PATH
                                                         /* allow library's dependencies to be found in the same directory
-@@ -89,6 +99,10 @@
+@@ -89,6 +99,10 @@ loader_LoadLibInReferenceDir(const char* referencePath, const char* name)
                                                         | PR_LD_ALT_SEARCH_PATH
  #endif
                                            );
diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/default.nix
index 4ec5518008a..e378cd5554c 100644
--- a/pkgs/development/libraries/nss/default.nix
+++ b/pkgs/development/libraries/nss/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, nspr, perl, zlib, sqlite, fixDarwinDylibNames, buildPackages }:
+{ stdenv, fetchurl, nspr, perl, zlib, sqlite, darwin, fixDarwinDylibNames, buildPackages, ninja }:
 
 let
   nssPEM = fetchurl {
     url = "http://dev.gentoo.org/~polynomial-c/mozilla/nss-3.15.4-pem-support-20140109.patch.xz";
     sha256 = "10ibz6y0hknac15zr6dw4gv9nb5r5z9ym6gq18j3xqx7v7n3vpdw";
   };
-  version = "3.52.1";
+  version = "3.56";
   underscoreVersion = builtins.replaceStrings ["."] ["_"] version;
 
 in stdenv.mkDerivation rec {
@@ -14,12 +14,13 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://mozilla/security/nss/releases/NSS_${underscoreVersion}_RTM/src/${pname}-${version}.tar.gz";
-    sha256 = "0y4jb9095f7bbgw7d7kvzm4c3g4p5i6y68fwhb8wlkpb7b1imj5w";
+    sha256 = "174f0ki2f8szkgv02jlsg2ci332sl9dabr2vcwnyjp1vxplf0xgq";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
-  nativeBuildInputs = [ perl ];
+  nativeBuildInputs = [ perl ninja (buildPackages.python3.withPackages (ps: with ps; [ gyp ])) ]
+    ++ stdenv.lib.optional stdenv.isDarwin darwin.cctools;
 
   buildInputs = [ zlib sqlite ]
     ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
@@ -29,10 +30,18 @@ in stdenv.mkDerivation rec {
   prePatch = ''
     # strip the trailing whitespace from the patch line and the renamed CKO_NETSCAPE_ enum to CKO_NSS_
     xz -d < ${nssPEM} | sed \
-       -e '/^-DIRS = builtins $/ s/ $//' \
+       -e 's/-DIRS = builtins $/-DIRS = . builtins/g' \
        -e 's/CKO_NETSCAPE_/CKO_NSS_/g' \
        -e 's/CKT_NETSCAPE_/CKT_NSS_/g' \
        | patch -p1
+
+    patchShebangs nss
+
+    for f in nss/coreconf/config.gypi nss/build.sh nss/coreconf/config.gypi; do
+      substituteInPlace "$f" --replace "/usr/bin/env" "${buildPackages.coreutils}/bin/env"
+    done
+
+    substituteInPlace nss/coreconf/config.gypi --replace "/usr/bin/grep" "${buildPackages.coreutils}/bin/env grep"
   '';
 
   patches =
@@ -40,55 +49,55 @@ in stdenv.mkDerivation rec {
       # Based on http://patch-tracker.debian.org/patch/series/dl/nss/2:3.15.4-1/85_security_load.patch
       ./85_security_load.patch
       ./ckpem.patch
+      ./fix-cross-compilation.patch
     ];
 
   patchFlags = [ "-p0" ];
 
-  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
-    substituteInPlace nss/coreconf/Darwin.mk --replace '@executable_path/$(notdir $@)' "$out/lib/\$(notdir \$@)"
-  '';
+  postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
+     substituteInPlace nss/coreconf/Darwin.mk --replace '@executable_path/$(notdir $@)' "$out/lib/\$(notdir \$@)"
+     substituteInPlace nss/coreconf/config.gypi --replace "'DYLIB_INSTALL_NAME_BASE': '@executable_path'" "'DYLIB_INSTALL_NAME_BASE': '$out/lib'"
+   '';
 
   outputs = [ "out" "dev" "tools" ];
 
   preConfigure = "cd nss";
 
-  makeFlags = let
-    # NSS's build systems expects aarch32 to be called arm; if we pass in armv6l/armv7l, it
-    # fails with a linker error
-    cpu = if stdenv.hostPlatform.isAarch32 then "arm" else stdenv.hostPlatform.parsed.cpu.name;
-  in [
-    "NSPR_INCLUDE_DIR=${nspr.dev}/include"
-    "NSPR_LIB_DIR=${nspr.out}/lib"
-    "NSDISTMODE=copy"
-    "BUILD_OPT=1"
-    "SOURCE_PREFIX=\$(out)"
-    "NSS_ENABLE_ECC=1"
-    "USE_SYSTEM_ZLIB=1"
-    "NSS_USE_SYSTEM_SQLITE=1"
-    "NATIVE_CC=${buildPackages.stdenv.cc}/bin/cc"
-  ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [
-    # Pass in CPU even if we're not cross compiling, because otherwise it tries to guess with
-    # uname, which can be wrong if e.g. we're compiling for aarch32 on aarch64
-    "OS_TEST=${cpu}"
-    "CPU_ARCH=${cpu}"
-  ] ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) [
-    "CROSS_COMPILE=1"
-    "NSS_DISABLE_GTESTS=1" # don't want to build tests when cross-compiling
-  ] ++ stdenv.lib.optional stdenv.is64bit "USE_64=1"
-    ++ stdenv.lib.optional stdenv.isDarwin "CCC=clang++";
-
-  NIX_CFLAGS_COMPILE = "-Wno-error";
-
-  # TODO(@oxij): investigate this: `make -n check` works but `make
-  # check` fails with "no rule", same for "installcheck".
-  doCheck = false;
-  doInstallCheck = false;
-
-  postInstall = ''
+  buildPhase = let
+    getArch = platform: if platform.isx86_64 then "x64"
+          else if platform.isx86_32 then "ia32"
+          else if platform.isAarch32 then "arm"
+          else if platform.isAarch64 then "arm64"
+          else platform.parsed.cpu.name;
+    # yes, this is correct. nixpkgs uses "host" for the platform the binary will run on whereas nss uses "host" for the platform that the build is running on
+    target = getArch stdenv.hostPlatform;
+    host = getArch stdenv.buildPlatform;
+  in ''
+    runHook preBuild
+
+    sed -i 's|nss_dist_dir="$dist_dir"|nss_dist_dir="'$out'"|;s|nss_dist_obj_dir="$obj_dir"|nss_dist_obj_dir="'$out'"|' build.sh
+    ./build.sh -v --opt \
+      --with-nspr=${nspr.dev}/include:${nspr.out}/lib \
+      --system-sqlite \
+      --enable-legacy-db \
+      --target ${target} \
+      -Dhost_arch=${host} \
+      -Duse_system_zlib=1 \
+      --enable-libpkix \
+      ${stdenv.lib.optionalString stdenv.isDarwin "--clang"} \
+      ${stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "--disable-tests"}
+
+    runHook postBuild
+  '';
+
+  NIX_CFLAGS_COMPILE = "-Wno-error -DNIX_NSS_LIBDIR=\"${placeholder "out"}/lib/\"";
+
+  installPhase = ''
+    runHook preInstall
+
     rm -rf $out/private
+    find $out -name "*.TOC" -delete
     mv $out/public $out/include
-    mv $out/*.OBJ/* $out/
-    rmdir $out/*.OBJ
 
     ln -s lib $out/lib64
 
@@ -138,6 +147,8 @@ in stdenv.mkDerivation rec {
     moveToOutput bin/nss-config "$dev"
     moveToOutput lib/libcrmf.a "$dev" # needed by firefox, for example
     rm -f "$out"/lib/*.a
+
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/nss/fix-cross-compilation.patch b/pkgs/development/libraries/nss/fix-cross-compilation.patch
new file mode 100644
index 00000000000..42b0620f48d
--- /dev/null
+++ b/pkgs/development/libraries/nss/fix-cross-compilation.patch
@@ -0,0 +1,11 @@
+--- nss/nss.gyp
++++ nss/nss.gyp
+@@ -280,7 +280,7 @@
+                   'outputs/': [['exclude', 'nssdbm3']]
+                 }],
+               ],
+-              'action': ['<(python)', '<(DEPTH)/coreconf/shlibsign.py', '<@(_inputs)']
++              'action': ['true']
+             }
+           ],
+         },
diff --git a/pkgs/development/libraries/ntirpc/default.nix b/pkgs/development/libraries/ntirpc/default.nix
new file mode 100644
index 00000000000..40f8d55462d
--- /dev/null
+++ b/pkgs/development/libraries/ntirpc/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, cmake
+, krb5, liburcu , libtirpc
+} :
+
+stdenv.mkDerivation rec {
+  pname = "ntirpc";
+  version = "3.3";
+
+  src = fetchFromGitHub {
+    owner = "nfs-ganesha";
+    repo = "ntirpc";
+    rev = "v${version}";
+    sha256 = "08vc2z9sl1p9mk1mx0zn4xv7dw12gamhciy41fbavm90iavf3vqm";
+  };
+
+  postPatch = ''
+    substituteInPlace ntirpc/netconfig.h --replace "/etc/netconfig" "$out/etc/netconfig"
+  '';
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ krb5 liburcu ];
+
+  postInstall = ''
+    mkdir -p $out/etc
+
+    # Library needs a netconfig to run.
+    # Steal the file from libtirpc
+    cp ${libtirpc}/etc/netconfig $out/etc/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Transport-independent RPC (TI-RPC)";
+    homepage = "https://github.com/nfs-ganesha/ntirpc";
+    maintainers = [ maintainers.markuskowa ];
+    platforms = platforms.linux;
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/libraries/oneDNN/default.nix b/pkgs/development/libraries/oneDNN/default.nix
index 01ce51be18d..1fb0f03d305 100644
--- a/pkgs/development/libraries/oneDNN/default.nix
+++ b/pkgs/development/libraries/oneDNN/default.nix
@@ -5,24 +5,26 @@
 # https://github.com/oneapi-src/oneDNN#oneapi-deep-neural-network-library-onednn
 stdenv.mkDerivation rec {
   pname = "oneDNN";
-  version = "1.5";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "oneapi-src";
     repo = "oneDNN";
     rev = "v${version}";
-    sha256 = "0diiy3g4wz5lnz5mdvka5p2nwmrpfldsz83sssr5yiir29m4lqap";
+    sha256 = "1rdq2rb4f9xbk2a07fpqgvd9mx1r5gwpm0jr8rra815bzddam8zh";
   };
 
   outputs = [ "out" "dev" "doc" ];
 
   nativeBuildInputs = [ cmake ];
 
-  doCheck = true;
+  # Tests fail on some Hydra builders, because they do not support SSE4.2.
+  doCheck = false;
 
   # The test driver doesn't add an RPath to the build libdir
   preCheck = ''
-    export LD_LIBRARY_PATH=$PWD/src
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/src
+    export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}$PWD/src
   '';
 
   # The cmake install gets tripped up and installs a nix tree into $out, in
@@ -33,10 +35,10 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "oneAPI Deep Neural Network Library (oneDNN)";
-    homepage = "https://01.org/dnnl";
+    homepage = "https://01.org/oneDNN";
     changelog = "https://github.com/oneapi-src/oneDNN/releases/tag/v${version}";
     license = licenses.asl20;
-    platforms = [ "aarch64-linux" "x86_64-linux" ];
+    platforms = platforms.all;
     maintainers = with maintainers; [ alexarice bhipple ];
   };
 }
diff --git a/pkgs/development/libraries/onnxruntime/default.nix b/pkgs/development/libraries/onnxruntime/default.nix
index 1794d55daaa..06d0d194cd5 100644
--- a/pkgs/development/libraries/onnxruntime/default.nix
+++ b/pkgs/development/libraries/onnxruntime/default.nix
@@ -41,8 +41,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [
     "-Donnxruntime_USE_OPENMP=ON"
     "-Donnxruntime_BUILD_SHARED_LIB=ON"
-    # flip back to ON next release
-    "-Donnxruntime_ENABLE_LTO=OFF" # https://github.com/microsoft/onnxruntime/issues/2828
+    "-Donnxruntime_ENABLE_LTO=ON"
   ];
 
   # ContribOpTest.StringNormalizerTest sets locale to en_US.UTF-8"
diff --git a/pkgs/development/libraries/opencl-clhpp/default.nix b/pkgs/development/libraries/opencl-clhpp/default.nix
index bf45bc90f19..1486ea93175 100644
--- a/pkgs/development/libraries/opencl-clhpp/default.nix
+++ b/pkgs/development/libraries/opencl-clhpp/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opencl-clhpp";
-  version = "2.0.11";
+  version = "2.0.12";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenCL-CLHPP";
     rev = "v${version}";
-    sha256 = "0a0n0f1lb86cwfm0ndzykcn965vz1v0n9n3rfmkiwrzkdhc9iy2y";
+    sha256 = "04g3mg2cpbi048fxxkghra81bpxzqr4r3gspx5mvqipx1lzypsci";
   };
 
   nativeBuildInputs = [ cmake python ];
diff --git a/pkgs/development/libraries/opencl-headers/default.nix b/pkgs/development/libraries/opencl-headers/default.nix
index 682a547d8f3..aaf6390d00a 100644
--- a/pkgs/development/libraries/opencl-headers/default.nix
+++ b/pkgs/development/libraries/opencl-headers/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "opencl-headers-${version}";
-  version = "2020.03.13";
+  version = "2020.06.16";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenCL-Headers";
     rev = "v${version}";
-    sha256 = "1d9ibiwicaj17757h9yyjc9i2hny8d8npn4spbjscins8972z3hw";
+    sha256 = "0viiwhfqccw90r3mr45ab3wyhabpdrihplj5842brn5ny0ayh73z";
   };
 
   installPhase = ''
diff --git a/pkgs/development/libraries/opendmarc/default.nix b/pkgs/development/libraries/opendmarc/default.nix
new file mode 100644
index 00000000000..9b45cc244f2
--- /dev/null
+++ b/pkgs/development/libraries/opendmarc/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, libmilter, perl, perlPackages, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "opendmarc";
+  version = "1.3.3";
+
+  src = fetchFromGitHub {
+    owner = "trusteddomainproject";
+    repo = "opendmarc";
+    rev = "rel-opendmarc-${builtins.replaceStrings [ "." ] [ "-" ] version}";
+    sha256 = "sha256-SQH85FLfVEEtYhR1+A1XxCDMiTjDgLQX6zifbLxCa5c=";
+  };
+
+  outputs = [ "bin" "dev" "out" "doc" ];
+
+  buildInputs = [ perl ];
+  nativeBuildInputs = [ autoreconfHook makeWrapper ];
+
+  postPatch = ''
+    substituteInPlace configure.ac --replace '	docs/Makefile' ""
+    patchShebangs contrib reports
+  '';
+
+  configureFlags = [
+    "--with-milter=${libmilter}"
+  ];
+
+  postFixup = ''
+    for b in $bin/bin/opendmarc-{expire,import,params,reports}; do
+      wrapProgram $b --set PERL5LIB ${perlPackages.makeFullPerlPath (with perlPackages; [ Switch DBI DBDmysql HTTPMessage ])}
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A free open source software implementation of the DMARC specification";
+    homepage = "http://www.trusteddomain.org/opendmarc/";
+    license = with licenses; [ bsd3 sendmail ];
+    maintainers = with maintainers; [ ajs124 das_j ];
+  };
+}
diff --git a/pkgs/development/libraries/openexr/default.nix b/pkgs/development/libraries/openexr/default.nix
index 425afc70f37..b33b284f45c 100644
--- a/pkgs/development/libraries/openexr/default.nix
+++ b/pkgs/development/libraries/openexr/default.nix
@@ -4,26 +4,33 @@
 , fetchFromGitHub
 , zlib
 , ilmbase
-, fetchpatch 
+, fetchpatch
 , cmake
-, libtool
 }:
+
 stdenv.mkDerivation rec {
   pname = "openexr";
-  version = "2.4.1";
+  version = "2.5.3";
+
+  outputs = [ "bin" "dev" "out" "doc" ];
 
   src = fetchFromGitHub {
     owner = "AcademySoftwareFoundation";
     repo = "openexr";
     rev = "v${version}";
-    sha256 = "020gyl8zv83ag6gbcchmqiyx9rh2jca7j8n52zx1gk4rck7kwc01";
+    sha256 = "xyYdRrwAYdnRZmErIK0tZspguqtrXvixO5+6nMDoOh8=";
   };
 
-  outputs = [ "bin" "dev" "out" "doc" ];
-  nativeBuildInputs = [ cmake libtool ];
-  propagatedBuildInputs = [ ilmbase zlib ];
+  patches = [
+    # Fix pkg-config paths
+    (fetchpatch {
+      url = "https://github.com/AcademySoftwareFoundation/openexr/commit/6442fb71a86c09fb0a8118b6dbd93bcec4883a3c.patch";
+      sha256 = "bwD5WTKPT4DjOJDnPXIvT5hJJkH0b71Vo7qupWO9nPA=";
+    })
+  ];
 
-  enableParallelBuilding = true;
+  nativeBuildInputs = [ cmake ];
+  propagatedBuildInputs = [ ilmbase zlib ];
 
   meta = with stdenv.lib; {
     description = "A high dynamic-range (HDR) image file format";
diff --git a/pkgs/development/libraries/openfst/default.nix b/pkgs/development/libraries/openfst/default.nix
index db644287d2e..f652c5ee7b7 100644
--- a/pkgs/development/libraries/openfst/default.nix
+++ b/pkgs/development/libraries/openfst/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "openfst";
-  version = "1.7.7";
+  version = "1.7.9";
 
   src = fetchurl {
     url = "http://www.openfst.org/twiki/pub/FST/FstDownload/${pname}-${version}.tar.gz";
-    sha256 = "1gpkpkls78xlidqq241scdz9vagxl8c4ksc4lqj4ycwx6vzyliij";
+    sha256 = "1pmx1yhn2gknj0an0zwqmzgwjaycapi896244np50a8y3nrsw6ck";
   };
 
   configureFlags = [
diff --git a/pkgs/development/libraries/opengrm-ngram/default.nix b/pkgs/development/libraries/opengrm-ngram/default.nix
new file mode 100644
index 00000000000..ab546c6d0d4
--- /dev/null
+++ b/pkgs/development/libraries/opengrm-ngram/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, autoreconfHook, fetchurl, openfst }:
+
+stdenv.mkDerivation rec {
+  pname = "opengrm-ngram";
+  version = "1.3.11";
+
+  src = fetchurl {
+    url = "http://www.openfst.org/twiki/pub/GRM/NGramDownload/ngram-${version}.tar.gz";
+    sha256 = "0wwpcj8qncdr9f2pmi0vhlw277dyxr85ygdi8g57xp2ifysigm05";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  buildInputs = [ openfst ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Library to make and modify n-gram language models encoded as weighted finite-state transducers";
+    homepage = "http://www.openfst.org/twiki/bin/view/GRM/NGramLibrary";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mic92 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/openimagedenoise/default.nix b/pkgs/development/libraries/openimagedenoise/default.nix
index a7098fe9305..2ac74c6c240 100644
--- a/pkgs/development/libraries/openimagedenoise/default.nix
+++ b/pkgs/development/libraries/openimagedenoise/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "openimagedenoise";
-  version = "1.2.1";
+  version = "1.2.2";
 
   # The release tarballs include pretrained weights, which would otherwise need to be fetched with git-lfs
   src = fetchzip {
     url = "https://github.com/OpenImageDenoise/oidn/releases/download/v${version}/oidn-${version}.src.tar.gz";
-    sha256 = "1f8s69ixv7nsdap9hc2njli2x75zmlrfq8cy79772gz83kph8s25";
+    sha256 = "0wyaarjxkzlvljmpnr7qm06ma2wl1aik3z664gwpzhizswygk6yp";
   };
 
   nativeBuildInputs = [ cmake python ispc ];
diff --git a/pkgs/development/libraries/openldap/default.nix b/pkgs/development/libraries/openldap/default.nix
index a4274f064e5..7f9c2dbf3ee 100644
--- a/pkgs/development/libraries/openldap/default.nix
+++ b/pkgs/development/libraries/openldap/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl, cyrus_sasl, db, groff, libtool }:
 
 stdenv.mkDerivation rec {
-  name = "openldap-2.4.50";
+  name = "openldap-2.4.51";
 
   src = fetchurl {
     url = "https://www.openldap.org/software/download/OpenLDAP/openldap-release/${name}.tgz";
-    sha256 = "1f46nlfwmys110j36sifm7ah8m8f3s10c3vaiikmmigmifapvdaw";
+    sha256 = "0qmy2jkk6v9iqwrsdsn8s7lwzaplr01a2mgf21r6nl66lig7g47l";
   };
 
   # TODO: separate "out" and "bin"
@@ -23,7 +23,8 @@ stdenv.mkDerivation rec {
     "STRIP="
     "prefix=$(out)"
     "moduledir=$(out)/lib/modules"
-  ] ++ stdenv.lib.optionals stdenv.isDarwin [ "CC=cc" ];
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
 
   configureFlags = [
     "--enable-overlays"
@@ -40,8 +41,8 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional stdenv.isFreeBSD "--with-pic";
 
   postBuild = ''
-    make $makeFlags -C contrib/slapd-modules/passwd/sha2
-    make $makeFlags -C contrib/slapd-modules/passwd/pbkdf2
+    make $makeFlags CC=$CC -C contrib/slapd-modules/passwd/sha2
+    make $makeFlags CC=$CC -C contrib/slapd-modules/passwd/pbkdf2
   '';
 
   doCheck = false; # needs a running LDAP server
diff --git a/pkgs/development/libraries/openmpi/default.nix b/pkgs/development/libraries/openmpi/default.nix
index 5c185f630d9..95c2a9c3fcf 100644
--- a/pkgs/development/libraries/openmpi/default.nix
+++ b/pkgs/development/libraries/openmpi/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, fetchpatch, gfortran, perl, libnl
 , rdma-core, zlib, numactl, libevent, hwloc, targetPackages, symlinkJoin
-, libpsm2, libfabric
+, libpsm2, libfabric, pmix, ucx
 
 # Enable CUDA support
 , cudaSupport ? false, cudatoolkit ? null
@@ -13,13 +13,12 @@
 
 # Enable libfabric support (necessary for Omnipath networks) on x86_64 linux
 , fabricSupport ? stdenv.isLinux && stdenv.isx86_64
-
 }:
 
 assert !cudaSupport || cudatoolkit != null;
 
 let
-  version = "4.0.4";
+  version = "4.0.5";
 
   cudatoolkit_joined = symlinkJoin {
     name = "${cudatoolkit.name}-unsplit";
@@ -31,7 +30,7 @@ in stdenv.mkDerivation rec {
 
   src = with stdenv.lib.versions; fetchurl {
     url = "https://www.open-mpi.org/software/ompi/v${major version}.${minor version}/downloads/${pname}-${version}.tar.bz2";
-    sha256 = "1i0slg2dxjdgw513aml1n9dsbdxn2fimi2b5712d5r9z4ar4xqj7";
+    sha256 = "02f0r9d3xgs08svkmj8v7lzviyxqnkk4yd3z0wql550xnriki3y5";
   };
 
   postPatch = ''
@@ -46,7 +45,7 @@ in stdenv.mkDerivation rec {
   '';
 
   buildInputs = with stdenv; [ gfortran zlib ]
-    ++ lib.optionals isLinux [ libnl numactl ]
+    ++ lib.optionals isLinux [ libnl numactl pmix ucx ]
     ++ lib.optionals cudaSupport [ cudatoolkit ]
     ++ [ libevent hwloc ]
     ++ lib.optional (isLinux || isFreeBSD) rdma-core
@@ -55,8 +54,12 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ perl ];
 
   configureFlags = with stdenv; lib.optional (!cudaSupport) "--disable-mca-dso"
-    ++ lib.optional isLinux  "--with-libnl=${libnl.dev}"
-    ++ lib.optional enableSGE "--with-sge"
+    ++ lib.optionals isLinux  [
+      "--with-libnl=${libnl.dev}"
+      "--with-pmix=${pmix}"
+      "--with-pmix-libdir=${pmix}/lib"
+      "--enable-mpi-cxx"
+    ] ++ lib.optional enableSGE "--with-sge"
     ++ lib.optional enablePrefix "--enable-mpirun-prefix-by-default"
     # TODO: add UCX support, which is recommended to use with cuda for the most robust OpenMPI build
     # https://github.com/openucx/ucx
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 43170f25d38..1fc38dd8aaa 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -5,6 +5,11 @@
 , static ? false
 }:
 
+# 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
+# files.
+
 with stdenv.lib;
 
 let
diff --git a/pkgs/development/libraries/openxr-loader/default.nix b/pkgs/development/libraries/openxr-loader/default.nix
index 47f9afe1861..e03752872f9 100644
--- a/pkgs/development/libraries/openxr-loader/default.nix
+++ b/pkgs/development/libraries/openxr-loader/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openxr-loader";
-  version = "1.0.9";
+  version = "1.0.11";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenXR-SDK-Source";
     rev = "release-${version}";
-    sha256 = "0xm5bwbsv2qlx1mg9zr98q7rm5hginrff4z0ahv7jrqrzv24acp7";
+    sha256 = "0f3x5h0hdjiqgjf5mzzlprbhrbyabxllrjmlzgc9fv5rgqyyphj5";
   };
 
   nativeBuildInputs = [ cmake python3 ];
diff --git a/pkgs/development/libraries/orcania/default.nix b/pkgs/development/libraries/orcania/default.nix
index 2f8765f9a72..4a01de54a6d 100644
--- a/pkgs/development/libraries/orcania/default.nix
+++ b/pkgs/development/libraries/orcania/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub, cmake, check, subunit }:
 stdenv.mkDerivation rec {
   pname = "orcania";
-  version = "2.1.0";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "babelouest";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zp2rk267dfmfap6qsyn7maivrpid8s3rkicwk1q5v6j20cgh1f8";
+    sha256 = "0l035zbzyv623h5186rk6iq1097rxx64iwnk4s2c7l9gzv9wyapp";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/p11-kit/default.nix b/pkgs/development/libraries/p11-kit/default.nix
index 204de957f3d..46f520e41e4 100644
--- a/pkgs/development/libraries/p11-kit/default.nix
+++ b/pkgs/development/libraries/p11-kit/default.nix
@@ -4,19 +4,24 @@
 
 stdenv.mkDerivation rec {
   pname = "p11-kit";
-  version = "0.23.20";
+  version = "0.23.21";
 
   src = fetchFromGitHub {
     owner = "p11-glue";
     repo = pname;
     rev = version;
-    sha256 = "00xxhzgd7cpin9nzwrrzykvhjwqg5l45p0cq2gv68y3sxq2p9q6y";
+    sha256 = "1w24brn8j3vwfp07p2hldw2ci06pk1cx1dvjk8jjxkccp20fk958";
   };
 
   outputs = [ "out" "dev"];
   outputBin = "dev";
 
-  nativeBuildInputs = [ autoreconfHook pkgconfig which ];
+  # for cross platform builds of p11-kit, libtasn1 in nativeBuildInputs
+  # provides the asn1Parser binary on the hostPlatform needed for building.
+  # at the same time, libtasn1 in buildInputs provides the libasn1 library
+  # to link against for the target platform.
+  # hence, libtasn1 is required in both native and build inputs.
+  nativeBuildInputs = [ autoreconfHook pkgconfig which libtasn1 ];
   buildInputs = [ gettext libffi libiconv libtasn1 ];
 
   autoreconfPhase = ''
diff --git a/pkgs/development/libraries/packr/default.nix b/pkgs/development/libraries/packr/default.nix
index ec2de274ccb..017cb25a9d1 100644
--- a/pkgs/development/libraries/packr/default.nix
+++ b/pkgs/development/libraries/packr/default.nix
@@ -20,6 +20,8 @@ let p2 = buildGoModule rec {
 
   vendorSha256 = "12yq121b0bn8z12091fyqhhz421kgx4z1nskrkvbxlhyc47bwyrp";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "The simple and easy way to embed static files into Go binaries";
     homepage = "https://github.com/gobuffalo/packr";
@@ -42,6 +44,8 @@ p1 = buildGoModule rec {
 
   vendorSha256 = "0m3yj8ww4a16j56p8d8w0sdnyx0g2bkd8zg0l4d8vb72mvg5asga";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "The simple and easy way to embed static files into Go binaries";
     homepage = "https://github.com/gobuffalo/packr";
@@ -53,4 +57,4 @@ in
 symlinkJoin{
     name = "packr";
     paths = [p1 p2];
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/libraries/pango/default.nix b/pkgs/development/libraries/pango/default.nix
index 358ae3df991..e3bdba9b3b1 100644
--- a/pkgs/development/libraries/pango/default.nix
+++ b/pkgs/development/libraries/pango/default.nix
@@ -9,15 +9,26 @@ with stdenv.lib;
 
 let
   pname = "pango";
-  version = "1.44.7";
+  version = "1.45.3";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "07qvxa2sk90chp1l12han6vxvy098mc37sdqcznyywyv2g6bd9b6";
+    sha256 = "0zg6gvzk227q997jf1c9p7j5ra87nm008hlgq6q8na9xmgmw2x8z";
   };
 
+  patches = [
+    # Fix issue with Pango loading unsupported formats that
+    # breaks mixed x11/opentype font packages.
+    # See https://gitlab.gnome.org/GNOME/pango/issues/457
+    # Remove on next release.
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/pango/commit/fe1ee773310bac83d8e5d3c062b13a51fb5fb4ad.patch";
+      sha256 = "1px66g31l2jx4baaqi4md59wlmvw0ywgspn6zr919fxl4h1kkh0h";
+    })
+  ];
+
   # FIXME: docs fail on darwin
   outputs = [ "bin" "dev" "out" ] ++ optional (!stdenv.isDarwin) "devdoc";
 
diff --git a/pkgs/development/libraries/pc-ble-driver/default.nix b/pkgs/development/libraries/pc-ble-driver/default.nix
new file mode 100644
index 00000000000..7d7dbd53383
--- /dev/null
+++ b/pkgs/development/libraries/pc-ble-driver/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, git, cmake, catch2, asio, udev, IOKit }:
+
+stdenv.mkDerivation rec {
+  pname = "pc-ble-driver";
+  version = "4.1.1";
+
+  src = fetchFromGitHub {
+    owner = "NordicSemiconductor";
+    repo = "pc-ble-driver";
+    rev = "v${version}";
+    sha256 = "1llhkpbdbsq9d91m873vc96bprkgpb5wsm5fgs1qhzdikdhg077q";
+  };
+
+  cmakeFlags = [
+    "-DNRF_BLE_DRIVER_VERSION=${version}"
+  ];
+
+  nativeBuildInputs = [ cmake git ];
+  buildInputs = [ catch2 asio ];
+
+  propagatedBuildInputs = [
+
+  ] ++ stdenv.lib.optionals stdenv.isDarwin [
+    IOKit
+  ] ++ stdenv.lib.optionals stdenv.isLinux [
+    udev
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Desktop library for Bluetooth low energy development";
+    homepage = "https://github.com/NordicSemiconductor/pc-ble-driver";
+    license = licenses.unfreeRedistributable;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ jschievink ];
+  };
+}
diff --git a/pkgs/development/libraries/pcl/default.nix b/pkgs/development/libraries/pcl/default.nix
index 506c78aca8a..d1c39b42a9d 100644
--- a/pkgs/development/libraries/pcl/default.nix
+++ b/pkgs/development/libraries/pcl/default.nix
@@ -4,13 +4,13 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "pcl-1.11.0";
+  name = "pcl-1.11.1";
 
   src = fetchFromGitHub {
     owner = "PointCloudLibrary";
     repo = "pcl";
     rev = name;
-    sha256 = "0nr3j71gh1v8x6wjr7a7xyr0438sw7vf621a5kbw4lmsxbj55k8g";
+    sha256 = "1cli2rxqsk6nxp36p5mgvvahjz8hm4fb68yi8cf9nw4ygbcvcwb1";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/pcre2/default.nix b/pkgs/development/libraries/pcre2/default.nix
index d39b91355b9..b127eb0a31e 100644
--- a/pkgs/development/libraries/pcre2/default.nix
+++ b/pkgs/development/libraries/pcre2/default.nix
@@ -11,8 +11,7 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--enable-pcre2-16"
     "--enable-pcre2-32"
-    "--enable-jit"
-  ];
+  ] ++ stdenv.lib.optional (!stdenv.hostPlatform.isRiscV) "--enable-jit";
 
   outputs = [ "bin" "dev" "out" "doc" "man" "devdoc" ];
 
diff --git a/pkgs/development/libraries/phonetisaurus/default.nix b/pkgs/development/libraries/phonetisaurus/default.nix
new file mode 100644
index 00000000000..126a91fe290
--- /dev/null
+++ b/pkgs/development/libraries/phonetisaurus/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, fetchFromGitHub
+, openfst
+, pkg-config
+, python3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "phonetisaurus";
+  version = "2020-07-31";
+
+  src = fetchFromGitHub {
+    owner = "AdolfVonKleist";
+    repo = pname;
+    rev = "2831870697de5b4fbcb56a6e1b975e0e1ea10deb";
+    sha256 = "1b18s5zz0l0fhqh9n9jnmgjz2hzprwzf6hx5a12zibmmam3qyriv";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ python3 openfst ];
+
+  meta = with stdenv.lib; {
+    description = "Framework for Grapheme-to-phoneme models for speech recognition using the OpenFst framework";
+    inherit (src.meta) homepage;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ mic92 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/physics/hepmc3/default.nix b/pkgs/development/libraries/physics/hepmc3/default.nix
index a07c3c19a1b..10b789f514f 100644
--- a/pkgs/development/libraries/physics/hepmc3/default.nix
+++ b/pkgs/development/libraries/physics/hepmc3/default.nix
@@ -3,19 +3,21 @@
 let
   pythonVersion = with stdenv.lib.versions; "${major python.version}${minor python.version}";
   withPython = python != null;
+  # ensure that root is built with the same python interpreter, as it links against numpy
+  root_py = if withPython then root.override { inherit python; } else root;
 in
 
 stdenv.mkDerivation rec {
   pname = "hepmc3";
-  version = "3.2.0";
+  version = "3.2.2";
 
   src = fetchurl {
     url = "http://hepmc.web.cern.ch/hepmc/releases/HepMC3-${version}.tar.gz";
-    sha256 = "1z491x3blqs0a2jxmhzhmh4kqdw3ddcbvw69gidg4w6icdvkhcpi";
+    sha256 = "0h9dbsbbf3y7iia27ms9cy4pfk2yyrkdnxcqsbvkhkl0izvv930f";
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ root ]
+  buildInputs = [ root_py ]
     ++ stdenv.lib.optional withPython python;
 
   cmakeFlags = [
@@ -31,6 +33,12 @@ stdenv.mkDerivation rec {
       --replace 'readlink' '${coreutils}/bin/readlink'
   '';
 
+  doInstallCheck = withPython;
+  # prevent nix from trying to dereference a null python
+  installCheckPhase = stdenv.lib.optionalString withPython ''
+    PYTHONPATH=${placeholder "out"}/${python.sitePackages} python -c 'import pyHepMC3'
+  '';
+
   meta = with stdenv.lib; {
     description = "The HepMC package is an object oriented, C++ event record for High Energy Physics Monte Carlo generators and simulation";
     license = licenses.gpl3;
diff --git a/pkgs/development/libraries/physics/lhapdf/default.nix b/pkgs/development/libraries/physics/lhapdf/default.nix
index 8d4e91265f5..7d412f86596 100644
--- a/pkgs/development/libraries/physics/lhapdf/default.nix
+++ b/pkgs/development/libraries/physics/lhapdf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lhapdf";
-  version = "6.2.3";
+  version = "6.3.0";
 
   src = fetchurl {
     url = "https://www.hepforge.org/archive/lhapdf/LHAPDF-${version}.tar.gz";
-    sha256 = "1l9dv37k4jz18wahyfm9g53nyl81v5bgqgy4dllbcmvcqpfkmrnn";
+    sha256 = "0pcvigpjqzfng06n98bshhhpimiqfg416ak8lz8jdgp6nxr8fkgd";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix
index 21dcf5af315..cb5073f50c1 100644
--- a/pkgs/development/libraries/pipewire/default.nix
+++ b/pkgs/development/libraries/pipewire/default.nix
@@ -33,7 +33,7 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "pipewire";
-  version = "0.3.6";
+  version = "0.3.7";
 
   outputs = [ "out" "lib" "dev" "doc" ];
 
@@ -42,16 +42,9 @@ stdenv.mkDerivation rec {
     owner = "pipewire";
     repo = "pipewire";
     rev = version;
-    sha256 = "0g149vyaigf4gzm764fcgxxci9niw19z0af9afs4diwq5xzr1qd3";
+    sha256 = "04l66p0wj553gp2zf3vwwh6jbr1vkf6wrq4za9zlm9dn144am4j2";
   };
 
-  patches = [ (fetchpatch {
-    # Brought by https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/263,
-    # should be part of > 0.3.6
-    url = "https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/d1162f28efd502fcb973e172867970f5cc8d7a6b.patch";
-    sha256 = "0ng34yin5726cvv0nll1b2xigyq6mj6j516l3xi0ys1i2g2fyby9";
-  })];
-
   nativeBuildInputs = [
     doxygen
     graphviz
diff --git a/pkgs/development/libraries/pkger/default.nix b/pkgs/development/libraries/pkger/default.nix
index 09c48ff8b0a..564efa31b60 100644
--- a/pkgs/development/libraries/pkger/default.nix
+++ b/pkgs/development/libraries/pkger/default.nix
@@ -17,6 +17,8 @@ buildGoModule rec {
 
   vendorSha256 = "1b9gpym6kb4hpdbrixphfh1qylmqr265jrmcd4vxb87ahvrsrvgp";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Embed static files in Go binaries (replacement for gobuffalo/packr) ";
     homepage = "https://github.com/markbates/pkger";
diff --git a/pkgs/development/libraries/plasma-wayland-protocols/default.nix b/pkgs/development/libraries/plasma-wayland-protocols/default.nix
new file mode 100644
index 00000000000..a84c3518c4a
--- /dev/null
+++ b/pkgs/development/libraries/plasma-wayland-protocols/default.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, fetchurl, lib
+, extra-cmake-modules
+, qtbase
+}:
+
+mkDerivation rec {
+  pname = "plasma-wayland-protocols";
+  version = "1.1.1";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-xUkzg9EVFxw0NeqaIbOWaGBjKoRFRP+sj1SJBDalHTg=";
+  };
+
+  nativeBuildInputs = [ extra-cmake-modules ];
+
+  buildInputs = [ qtbase ];
+
+  meta = {
+    description = "Plasma Wayland Protocols";
+    license = lib.licenses.lgpl21Plus;
+    platforms = qtbase.meta.platforms;
+  };
+}
diff --git a/pkgs/development/libraries/pmix/default.nix b/pkgs/development/libraries/pmix/default.nix
new file mode 100644
index 00000000000..c8d8be4e8cb
--- /dev/null
+++ b/pkgs/development/libraries/pmix/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, perl, autoconf, automake
+, libtool, flex, libevent, hwloc, munge, zlib
+} :
+
+let
+  version = "3.1.5";
+
+in stdenv.mkDerivation {
+  pname = "pmix";
+  inherit version;
+
+  src = fetchFromGitHub {
+    repo = "openpmix";
+    owner = "openpmix";
+    rev = "v${version}";
+    sha256 = "0fvfsig20amcigyn4v3gcdxc0jif44vqg37b8zzh0s8jqqj7jz5w";
+  };
+
+  postPatch = ''
+    patchShebangs ./autogen.pl
+    patchShebangs ./config
+  '';
+
+  nativeBuildInputs = [ perl autoconf automake libtool flex ];
+
+  buildInputs = [ libevent hwloc munge zlib ];
+
+  configureFlags = [
+    "--with-libevent=${libevent.dev}"
+    "--with-munge=${munge}"
+    "--with-hwloc=${hwloc.dev}"
+  ];
+
+  preConfigure = ''
+    ./autogen.pl
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Process Management Interface for HPC environments";
+    homepage = "https://openpmix.github.io/";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.markuskowa ];
+    platforms = platforms.linux;
+  };
+}
+
diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix
index 71ff58eaebe..074868251d0 100644
--- a/pkgs/development/libraries/poppler/default.nix
+++ b/pkgs/development/libraries/poppler/default.nix
@@ -12,11 +12,11 @@ let
 in
 stdenv.mkDerivation rec {
   name = "poppler-${suffix}-${version}";
-  version = "0.89.0"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too!
+  version = "20.08.0"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too!
 
   src = fetchurl {
     url = "${meta.homepage}/poppler-${version}.tar.xz";
-    sha256 = "0p4vxyl5cw8jgcy6hjb35236bhv9xy9xc21vsk2jqy1p8lv318pv";
+    sha256 = "19gchq6fpa00ic5rn1zmjzxx85cif4hbdrsjcfd2aqxz9gqgwrdf";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/prometheus-client-c/default.nix b/pkgs/development/libraries/prometheus-client-c/default.nix
new file mode 100644
index 00000000000..57f4ef5956f
--- /dev/null
+++ b/pkgs/development/libraries/prometheus-client-c/default.nix
@@ -0,0 +1,71 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, libmicrohttpd
+}:
+let
+  build =
+    { pname
+    , subdir
+    , buildInputs ? [ ]
+    , description
+    }:
+    stdenv.mkDerivation rec {
+      inherit pname;
+      version = "0.1.1";
+
+      src = fetchFromGitHub {
+        owner = "digitalocean";
+        repo = "prometheus-client-c";
+        rev = "v${version}";
+        sha256 = "0g69s24xwrv5974acshrhnp6i8rpby8c6bhz15m3d8kpgjw3cm8f";
+      };
+
+      nativeBuildInputs = [ cmake ];
+      inherit buildInputs;
+
+      # These patches will be in 0.1.2
+      patches = [
+        # Required so CMAKE_INSTALL_PREFIX is honored, otherwise it
+        # installs headers in /usr/include (absolute)
+        (
+          fetchpatch {
+            url = "https://github.com/digitalocean/prometheus-client-c/commit/5fcedeb506b7d47dd7bab35797f2c3f23db6fe10.patch";
+            sha256 = "10hzg8v5jcgxz224kdq0nha9vs78wz098b0ys7gig2iwgrg018fy";
+          }
+        )
+        (
+          fetchpatch {
+            url = "https://github.com/digitalocean/prometheus-client-c/commit/0c15e7e45ad0c3726593591fdd7d8f2fde845fe3.patch";
+            sha256 = "06899v1xz3lpsdxww4p3q7pv8nrymnibncdc472056znr5fidlp0";
+          }
+        )
+      ];
+
+      preConfigure = ''
+        cd ${subdir}
+      '';
+
+      meta = {
+        homepage = "https://github.com/digitalocean/prometheus-client-c/";
+        inherit description;
+        platforms = stdenv.lib.platforms.unix;
+        license = stdenv.lib.licenses.asl20;
+        maintainers = [ stdenv.lib.maintainers.cfsmp3 ];
+      };
+    };
+in
+rec {
+  libprom = build {
+    pname = "libprom";
+    subdir = "prom";
+    description = "A Prometheus Client in C";
+  };
+  libpromhttp = build {
+    pname = "libpromhttp";
+    subdir = "promhttp";
+    buildInputs = [ libmicrohttpd libprom ];
+    description = "A Prometheus HTTP Endpoint in C";
+  };
+}
diff --git a/pkgs/development/libraries/protobuf/3.12.nix b/pkgs/development/libraries/protobuf/3.12.nix
index 6f9add8adc2..6ea64a02380 100644
--- a/pkgs/development/libraries/protobuf/3.12.nix
+++ b/pkgs/development/libraries/protobuf/3.12.nix
@@ -1,6 +1,6 @@
 { callPackage, ... }:
 
 callPackage ./generic-v3.nix {
-  version = "3.12.3";
-  sha256 = "0q4sn9d6x8w0zgzydfx9f7b2zdk0kiplk8h9jxyxhw6m9qn276ax";
+  version = "3.12.4";
+  sha256 = "1gzvnd0g5hmx5ln39w7p4z4qphw87ksgsa1fgbpvi8d0asmwab2p";
 }
diff --git a/pkgs/development/libraries/protobuf/3.13.nix b/pkgs/development/libraries/protobuf/3.13.nix
new file mode 100644
index 00000000000..3e3740a7c50
--- /dev/null
+++ b/pkgs/development/libraries/protobuf/3.13.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... }:
+
+callPackage ./generic-v3.nix {
+  version = "3.13.0";
+  sha256 = "1nqsvi2yfr93kiwlinz8z7c68ilg1j75b2vcpzxzvripxx5h6xhd";
+}
diff --git a/pkgs/development/libraries/protolock/default.nix b/pkgs/development/libraries/protolock/default.nix
index 2bdaa3ab7b6..b923898cc99 100644
--- a/pkgs/development/libraries/protolock/default.nix
+++ b/pkgs/development/libraries/protolock/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0ap1iwcapvvvmwgdc4zbsp8mglrhbswkdgm4dw8baw8qk0nlci6y";
 
+  doCheck = false;
+
   postInstall = ''
     rm $out/bin/plugin*
   '';
@@ -23,4 +25,4 @@ buildGoModule rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ groodt ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/libraries/qca-qt5/default.nix b/pkgs/development/libraries/qca-qt5/default.nix
index 77f4e1b9053..06de3f7c569 100644
--- a/pkgs/development/libraries/qca-qt5/default.nix
+++ b/pkgs/development/libraries/qca-qt5/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "qca-qt5";
-  version = "2.2.1";
+  version = "2.3.1";
 
   src = fetchurl {
     url = "http://download.kde.org/stable/qca/${version}/qca-${version}.tar.xz";
-    sha256 = "00kv1vsrc8fp556hm8s6yw3240vx3l4067q6vfxrb3gdwgcd45np";
+    sha256 = "sha256-wThREJq+/EYjNwmJ+uOnRb9rGss8KhOolYU5gj6XTks=";
   };
 
   buildInputs = [ openssl qtbase ];
diff --git a/pkgs/development/libraries/qgnomeplatform/default.nix b/pkgs/development/libraries/qgnomeplatform/default.nix
index a82d048b32b..3ff642bbfb9 100644
--- a/pkgs/development/libraries/qgnomeplatform/default.nix
+++ b/pkgs/development/libraries/qgnomeplatform/default.nix
@@ -1,6 +1,7 @@
 { mkDerivation
 , lib
 , fetchFromGitHub
+, nix-update-script
 , pkgconfig
 , gtk3
 , glib
@@ -52,7 +53,7 @@ mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix
index 1c972e5440c..3deea882bb6 100644
--- a/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -3,8 +3,7 @@
 , libXfixes, libXrandr, libSM, freetype, fontconfig, zlib, libjpeg, libpng
 , libmng, which, libGLU, openssl, dbus, cups, pkgconfig
 , libtiff, glib, icu, libmysqlclient, postgresql, sqlite, perl, coreutils, libXi
-, buildMultimedia ? stdenv.isLinux, alsaLib, gstreamer, gst-plugins-base
-, buildWebkit ? (stdenv.isLinux || stdenv.isDarwin)
+, alsaLib
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , flashplayerFix ? false, gdk-pixbuf
 , gtkStyle ? stdenv.hostPlatform == stdenv.buildPlatform, gtk2
@@ -177,7 +176,7 @@ stdenv.mkDerivation rec {
     "-exceptions" "-xmlpatterns"
 
     "-make" "libs" "-make" "tools" "-make" "translations"
-    "-no-phonon" (mk buildWebkit "webkit") (mk buildMultimedia "multimedia") "-audio-backend"
+    "-no-phonon" "-no-webkit" "-no-multimedia" "-audio-backend"
   ]) ++ [
     "-${if demos then "" else "no"}make" "demos"
     "-${if examples then "" else "no"}make" "examples"
@@ -190,9 +189,7 @@ stdenv.mkDerivation rec {
     [ libXrender libXrandr libXinerama libXcursor libXext libXfixes libXv libXi
       libSM zlib libpng openssl dbus freetype fontconfig glib ]
         # Qt doesn't directly need GLU (just GL), but many apps use, it's small and doesn't remain a runtime-dep if not used
-    ++ lib.optional libGLSupported libGLU
-    ++ lib.optional ((buildWebkit || buildMultimedia) && stdenv.isLinux ) alsaLib
-    ++ lib.optionals (buildWebkit || buildMultimedia) [ gstreamer gst-plugins-base ];
+    ++ lib.optional libGLSupported libGLU;
 
   # The following libraries are only used in plugins
   buildInputs =
diff --git a/pkgs/development/libraries/qt-5/5.12/default.nix b/pkgs/development/libraries/qt-5/5.12/default.nix
index bdefca45a9a..fcceb6d6cf2 100644
--- a/pkgs/development/libraries/qt-5/5.12/default.nix
+++ b/pkgs/development/libraries/qt-5/5.12/default.nix
@@ -38,14 +38,14 @@ let
   mirror = "https://download.qt.io";
   srcs = import ./srcs.nix { inherit fetchurl; inherit mirror; } // {
     # Community port of the now unmaintained upstream qtwebkit.
-    qtwebkit = {
+    qtwebkit = rec {
       src = fetchFromGitHub {
-        owner = "annulen";
-        repo = "webkit";
-        rev = "4ce8ebc4094512b9916bfa5984065e95ac97c9d8";
-        sha256 = "05h1xnxzbf7sp3plw5dndsvpf6iigh0bi4vlj4svx0hkf1giakjf";
+        owner = "qtwebkit";
+        repo = "qtwebkit";
+        rev = "qtwebkit-${version}";
+        sha256 = "11lc5sk10d9cyg8jqkbgkqiap72b9rax7hy61nm90zw9749y2yfg";
       };
-      version = "5.212-alpha-01-26-2018";
+      version = "5.212.0-alpha4";
     };
   };
 
@@ -97,13 +97,21 @@ let
         url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/qtbug-77037-workaround.patch?h=packages/qt5-webengine&id=fc77d6b3d5ec74e421b58f199efceb2593cbf951";
         sha256 = "1gv733qfdn9746nbqqxzyjx4ijjqkkb7zb71nxax49nna5bri3am";
       })
-    ]
-      ++ optional stdenv.isDarwin ./qtwebengine-darwin-no-platform-check.patch;
-    qtwebkit = [ ./qtwebkit.patch ]
-      ++ optionals stdenv.isDarwin [
-        ./qtwebkit-darwin-no-readline.patch
-        ./qtwebkit-darwin-no-qos-classes.patch
-      ];
+    ] ++ optionals stdenv.isDarwin [
+      ./qtwebengine-darwin-no-platform-check.patch
+      ./qtwebengine-darwin-fix-failed-static-assertion.patch
+    ];
+    qtwebkit = [
+      (fetchpatch {
+        name = "qtwebkit-bison-3.7-build.patch";
+        url = "https://github.com/qtwebkit/qtwebkit/commit/d92b11fea65364fefa700249bd3340e0cd4c5b31.patch";
+        sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n";
+      })
+      ./qtwebkit.patch
+    ] ++ optionals stdenv.isDarwin [
+      ./qtwebkit-darwin-no-readline.patch
+      ./qtwebkit-darwin-no-qos-classes.patch
+    ];
     qttools = [ ./qttools.patch ];
   };
 
@@ -158,6 +166,7 @@ let
       qtquickcontrols2 = callPackage ../modules/qtquickcontrols2.nix {};
       qtscript = callPackage ../modules/qtscript.nix {};
       qtsensors = callPackage ../modules/qtsensors.nix {};
+      qtserialbus = callPackage ../modules/qtserialbus.nix {};
       qtserialport = callPackage ../modules/qtserialport.nix {};
       qtspeech = callPackage ../modules/qtspeech.nix {};
       qtsvg = callPackage ../modules/qtsvg.nix {};
diff --git a/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-fix-failed-static-assertion.patch b/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-fix-failed-static-assertion.patch
new file mode 100644
index 00000000000..510e25f56a4
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-fix-failed-static-assertion.patch
@@ -0,0 +1,31 @@
+Fix a following build error:
+
+In file included from ../../3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm:7:
+../../3rdparty/chromium/base/bind.h:59:3: error: static_assert failed "Bound argument |i| of type |Arg| cannot be forwarded as |Unwrapped| to the bound functor, which declares it as |Param|."
+  static_assert(
+  ^
+../../3rdparty/chromium/base/bind.h:91:7: note: in instantiation of template class 'base::internal::AssertConstructible<1, long, long, const long &, NSError *>' requested here
+    : AssertConstructible<Ns, Args, std::decay_t<Args>, Unwrapped, Params>... {
+      ^
+../../3rdparty/chromium/base/bind.h:213:27: note: in instantiation of template class 'base::internal::AssertBindArgsValidity<std::__1::integer_sequence<unsigned long, 0, 1>, base::internal::TypeList<base::WeakPtr<device::BluetoothRemoteGattCharacteristicMac>, long>, base::internal::TypeList<device::BluetoothRemoteGattCharacteristicMac *, const long &>, base::internal::TypeList<device::BluetoothRemoteGattCharacteristicMac *, NSError *> >' requested here
+  static_assert(internal::AssertBindArgsValidity<
+                          ^
+../../3rdparty/chromium/base/bind.h:242:16: note: in instantiation of function template specialization 'base::BindRepeating<void (device::BluetoothRemoteGattCharacteristicMac::*)(NSError *), base::WeakPtr<device::BluetoothRemoteGattCharacteristicMac>, long>' requested here
+  return base::BindRepeating(std::forward<Functor>(functor),
+               ^
+../../3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm:211:15: note: in instantiation of function template specialization 'base::Bind<void (device::BluetoothRemoteGattCharacteristicMac::*)(NSError *), base::WeakPtr<device::BluetoothRemoteGattCharacteristicMac>, long>' requested here
+        base::Bind(&BluetoothRemoteGattCharacteristicMac::DidWriteValue,
+              ^
+
+Resurrected from https://github.com/NixOS/nixpkgs/blob/ddcf01bca6c7a7a7f096bec836a1e6a707ad473d/pkgs/development/libraries/qt-5/5.11/qtwebengine-clang-fix.patch because the same problem is present in 5.12 when compiling on macOS.
+
+--- a/src/3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm
++++ b/src/3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm
+@@ -209,7 +209,7 @@ void BluetoothRemoteGattCharacteristicMac::WriteRemoteCharacteristic(
+     base::ThreadTaskRunnerHandle::Get()->PostTask(
+         FROM_HERE,
+         base::Bind(&BluetoothRemoteGattCharacteristicMac::DidWriteValue,
+-                   weak_ptr_factory_.GetWeakPtr(), nil));
++                   weak_ptr_factory_.GetWeakPtr(), nullptr));
+   }
+ }
diff --git a/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch b/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch
index 546e753144d..8ed3fe59a5a 100644
--- a/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch
+++ b/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch
@@ -1,4 +1,18 @@
+diff --git a/configure.pri b/configure.pri
+index 897bea54..6f834c20 100644
+--- a/configure.pri
++++ b/configure.pri
+@@ -269,7 +269,7 @@ defineReplace(webEngineGetMacOSVersion) {
+ }
+ 
+ defineReplace(webEngineGetMacOSSDKVersion) {
+-    value = $$system("/usr/bin/xcodebuild -sdk $$QMAKE_MAC_SDK -version ProductVersion 2>/dev/null")
++    value = $$system("xcrun --show-sdk-version")
+     return($$value)
+ }
+ 
 diff --git a/mkspecs/features/platform.prf b/mkspecs/features/platform.prf
+index 35eb6b89..7eed640a 100644
 --- a/mkspecs/features/platform.prf
 +++ b/mkspecs/features/platform.prf
 @@ -40,8 +40,6 @@ defineTest(isPlatformSupported) {
@@ -19,15 +33,39 @@ diff --git a/mkspecs/features/platform.prf b/mkspecs/features/platform.prf
      }
    } else {
      skipBuild("Unknown platform. Qt WebEngine only supports Linux, Windows, and macOS.")
+@@ -111,7 +107,7 @@ defineTest(isMinOSXSDKVersion) {
+     requested_minor = $$2
+     requested_patch = $$3
+     isEmpty(requested_patch): requested_patch = 0
+-    WEBENGINE_OSX_SDK_PRODUCT_VERSION = $$system("/usr/bin/xcodebuild -sdk $$QMAKE_MAC_SDK -version ProductVersion 2>/dev/null")
++    WEBENGINE_OSX_SDK_PRODUCT_VERSION = $$system("xcrun --show-sdk-version")
+     export(WEBENGINE_OSX_SDK_PRODUCT_VERSION)
+     isEmpty(WEBENGINE_OSX_SDK_PRODUCT_VERSION) {
+         skipBuild("Could not resolve SDK product version for \'$$QMAKE_MAC_SDK\'.")
 diff --git a/src/core/config/mac_osx.pri b/src/core/config/mac_osx.pri
+index 4426901c..3aa6057e 100644
 --- a/src/core/config/mac_osx.pri
 +++ b/src/core/config/mac_osx.pri
-@@ -5,8 +5,6 @@ load(functions)
+@@ -5,16 +5,16 @@ load(functions)
  # otherwise query for it.
  QMAKE_MAC_SDK_VERSION = $$eval(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.SDKVersion)
  isEmpty(QMAKE_MAC_SDK_VERSION) {
 -     QMAKE_MAC_SDK_VERSION = $$system("/usr/bin/xcodebuild -sdk $${QMAKE_MAC_SDK} -version SDKVersion 2>/dev/null")
--     isEmpty(QMAKE_MAC_SDK_VERSION): error("Could not resolve SDK version for \'$${QMAKE_MAC_SDK}\'")
++     QMAKE_MAC_SDK_VERSION = $$system("xcrun --show-sdk-version")
+      isEmpty(QMAKE_MAC_SDK_VERSION): error("Could not resolve SDK version for \'$${QMAKE_MAC_SDK}\'")
  }
-
+ 
  QMAKE_CLANG_DIR = "/usr"
+-QMAKE_CLANG_PATH = $$eval(QMAKE_MAC_SDK.macx-clang.$${QMAKE_MAC_SDK}.QMAKE_CXX)
+-!isEmpty(QMAKE_CLANG_PATH) {
+-    clang_dir = $$clean_path("$$dirname(QMAKE_CLANG_PATH)/../")
+-    exists($$clang_dir): QMAKE_CLANG_DIR = $$clang_dir
+-}
++# QMAKE_CLANG_PATH = $$eval(QMAKE_MAC_SDK.macx-clang.$${QMAKE_MAC_SDK}.QMAKE_CXX)
++# !isEmpty(QMAKE_CLANG_PATH) {
++#     clang_dir = $$clean_path("$$dirname(QMAKE_CLANG_PATH)/../")
++#     exists($$clang_dir): QMAKE_CLANG_DIR = $$clang_dir
++# }
+ 
+ QMAKE_CLANG_PATH = "$${QMAKE_CLANG_DIR}/bin/clang++"
+ message("Using clang++ from $${QMAKE_CLANG_PATH}")
diff --git a/pkgs/development/libraries/qt-5/5.14/default.nix b/pkgs/development/libraries/qt-5/5.14/default.nix
new file mode 100644
index 00000000000..469157a5f72
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/default.nix
@@ -0,0 +1,182 @@
+/*
+
+# Updates
+
+Before a major version update, make a copy of this directory. (We like to
+keep the old version around for a short time after major updates.) Add a
+top-level attribute to `top-level/all-packages.nix`.
+
+1. Update the URL in `pkgs/development/libraries/qt-5/$VERSION/fetch.sh`.
+2. From the top of the Nixpkgs tree, run
+   `./maintainers/scripts/fetch-kde-qt.sh > pkgs/development/libraries/qt-5/$VERSION/srcs.nix`.
+3. Check that the new packages build correctly.
+4. Commit the changes and open a pull request.
+
+*/
+
+{
+  newScope,
+  stdenv, fetchurl, fetchpatch, fetchFromGitHub, makeSetupHook, makeWrapper,
+  bison, cups ? null, harfbuzz, libGL, perl,
+  gstreamer, gst-plugins-base, gtk3, dconf,
+  llvmPackages_5,
+
+  # options
+  developerBuild ? false,
+  decryptSslTraffic ? false,
+  debug ? false,
+}:
+
+with stdenv.lib;
+
+let
+
+  qtCompatVersion = srcs.qtbase.version;
+
+  stdenvActual = if stdenv.cc.isClang then llvmPackages_5.stdenv else stdenv;
+
+  mirror = "https://download.qt.io";
+  srcs = import ./srcs.nix { inherit fetchurl; inherit mirror; } // {
+    # qtwebkit does not have an official release tarball on the qt mirror and is
+    # mostly maintained by the community.
+    qtwebkit = rec {
+      src = fetchFromGitHub {
+        owner = "qt";
+        repo = "qtwebkit";
+        rev = "v${version}";
+        sha256 = "0x8rng96h19xirn7qkz3lydal6v4vn00bcl0s3brz36dfs0z8wpg";
+      };
+      version = "5.212.0-alpha4";
+    };
+  };
+
+  patches = {
+    qtbase =
+      optionals stdenv.isDarwin [
+        ./qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
+        ./qtbase.patch.d/0002-qtbase-mac.patch
+      ]
+      ++ [
+        ./qtbase.patch.d/0003-qtbase-mkspecs.patch
+        ./qtbase.patch.d/0004-qtbase-replace-libdir.patch
+        ./qtbase.patch.d/0005-qtbase-cmake.patch
+        ./qtbase.patch.d/0006-qtbase-gtk3.patch
+        ./qtbase.patch.d/0007-qtbase-xcursor.patch
+        ./qtbase.patch.d/0008-qtbase-tzdir.patch
+        ./qtbase.patch.d/0009-qtbase-qtpluginpath.patch
+        ./qtbase.patch.d/0010-qtbase-assert.patch
+        ./qtbase.patch.d/0011-fix-header_module.patch
+      ];
+    qtdeclarative = [ ./qtdeclarative.patch ];
+    qtscript = [ ./qtscript.patch ];
+    qtserialport = [ ./qtserialport.patch ];
+    qtwebengine = [ ]
+      ++ optional stdenv.isDarwin ./qtwebengine-darwin-no-platform-check.patch;
+    qtwebkit = [
+      (fetchpatch {
+        name = "qtwebkit-bison-3.7-build.patch";
+        url = "https://github.com/qtwebkit/qtwebkit/commit/d92b11fea65364fefa700249bd3340e0cd4c5b31.patch";
+        sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n";
+      })
+      ./qtwebkit.patch
+    ] ++ optionals stdenv.isDarwin [
+      ./qtwebkit-darwin-no-readline.patch
+      ./qtwebkit-darwin-no-qos-classes.patch
+    ];
+    qttools = [ ./qttools.patch ];
+  };
+
+  qtModule =
+    import ../qtModule.nix
+    {
+      inherit perl;
+      inherit (stdenv) lib;
+      # Use a variant of mkDerivation that does not include wrapQtApplications
+      # to avoid cyclic dependencies between Qt modules.
+      mkDerivation =
+        import ../mkDerivation.nix
+        { inherit (stdenv) lib; inherit debug; wrapQtAppsHook = null; }
+        stdenvActual.mkDerivation;
+    }
+    { inherit self srcs patches; };
+
+  addPackages = self: with self;
+    let
+      callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; };
+    in {
+
+      mkDerivationWith =
+        import ../mkDerivation.nix
+        { inherit (stdenv) lib; inherit debug; inherit (self) wrapQtAppsHook; };
+
+      mkDerivation = mkDerivationWith stdenvActual.mkDerivation;
+
+      qtbase = callPackage ../modules/qtbase.nix {
+        inherit (srcs.qtbase) src version;
+        patches = patches.qtbase;
+        inherit bison cups harfbuzz libGL;
+        withGtk3 = true; inherit dconf gtk3;
+        inherit developerBuild decryptSslTraffic;
+      };
+
+      qtcharts = callPackage ../modules/qtcharts.nix {};
+      qtconnectivity = callPackage ../modules/qtconnectivity.nix {};
+      qtdeclarative = callPackage ../modules/qtdeclarative.nix {};
+      qtdoc = callPackage ../modules/qtdoc.nix {};
+      qtgraphicaleffects = callPackage ../modules/qtgraphicaleffects.nix {};
+      qtimageformats = callPackage ../modules/qtimageformats.nix {};
+      qtlocation = callPackage ../modules/qtlocation.nix {};
+      qtmacextras = callPackage ../modules/qtmacextras.nix {};
+      qtmultimedia = callPackage ../modules/qtmultimedia.nix {
+        inherit gstreamer gst-plugins-base;
+      };
+      qtnetworkauth = callPackage ../modules/qtnetworkauth.nix {};
+      qtquick1 = null;
+      qtquickcontrols = callPackage ../modules/qtquickcontrols.nix {};
+      qtquickcontrols2 = callPackage ../modules/qtquickcontrols2.nix {};
+      qtscript = callPackage ../modules/qtscript.nix {};
+      qtsensors = callPackage ../modules/qtsensors.nix {};
+      qtserialport = callPackage ../modules/qtserialport.nix {};
+      qtspeech = callPackage ../modules/qtspeech.nix {};
+      qtsvg = callPackage ../modules/qtsvg.nix {};
+      qtscxml = callPackage ../modules/qtscxml.nix {};
+      qttools = callPackage ../modules/qttools.nix {};
+      qttranslations = callPackage ../modules/qttranslations.nix {};
+      qtvirtualkeyboard = callPackage ../modules/qtvirtualkeyboard.nix {};
+      qtwayland = callPackage ../modules/qtwayland.nix {};
+      qtwebchannel = callPackage ../modules/qtwebchannel.nix {};
+      qtwebengine = callPackage ../modules/qtwebengine.nix {};
+      qtwebglplugin = callPackage ../modules/qtwebglplugin.nix {};
+      qtwebkit = callPackage ../modules/qtwebkit.nix {};
+      qtwebsockets = callPackage ../modules/qtwebsockets.nix {};
+      qtwebview = callPackage ../modules/qtwebview.nix {};
+      qtx11extras = callPackage ../modules/qtx11extras.nix {};
+      qtxmlpatterns = callPackage ../modules/qtxmlpatterns.nix {};
+
+      env = callPackage ../qt-env.nix {};
+      full = env "qt-full-${qtbase.version}" ([
+        qtcharts qtconnectivity qtdeclarative qtdoc qtgraphicaleffects
+        qtimageformats qtlocation qtmultimedia qtquickcontrols qtquickcontrols2
+        qtscript qtsensors qtserialport qtsvg qttools qttranslations
+        qtvirtualkeyboard qtwebchannel qtwebengine qtwebkit qtwebsockets
+        qtwebview qtx11extras qtxmlpatterns
+      ] ++ optional (!stdenv.isDarwin) qtwayland
+        ++ optional (stdenv.isDarwin) qtmacextras);
+
+      qmake = makeSetupHook {
+        deps = [ self.qtbase.dev ];
+        substitutions = {
+          fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh;
+        };
+      } ../hooks/qmake-hook.sh;
+
+      wrapQtAppsHook = makeSetupHook {
+        deps =
+          [ self.qtbase.dev makeWrapper ]
+          ++ optional stdenv.isLinux self.qtwayland.dev;
+      } ../hooks/wrap-qt-apps-hook.sh;
+    };
+
+   self = makeScope newScope addPackages;
+
+in self
diff --git a/pkgs/development/libraries/qt-5/5.14/fetch.sh b/pkgs/development/libraries/qt-5/5.14/fetch.sh
new file mode 100644
index 00000000000..2d266b52977
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/fetch.sh
@@ -0,0 +1 @@
+WGET_ARGS=( http://download.qt.io/official_releases/qt/5.14/5.14.2/submodules/ )
diff --git a/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
new file mode 100644
index 00000000000..0951b6646ab
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
@@ -0,0 +1,411 @@
+From a5848991db270ffdd9f2fa05220475bb3194d12f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
+Date: Fri, 3 Apr 2020 21:07:58 +0200
+Subject: [PATCH 01/10] qtbase-mkspecs-mac
+
+---
+ mkspecs/common/mac.conf               |   2 +-
+ mkspecs/features/mac/default_post.prf | 206 --------------------------
+ mkspecs/features/mac/default_pre.prf  |  58 --------
+ mkspecs/features/mac/sdk.mk           |  25 ----
+ mkspecs/features/mac/sdk.prf          |  61 --------
+ 5 files changed, 1 insertion(+), 351 deletions(-)
+ delete mode 100644 mkspecs/features/mac/sdk.mk
+ delete mode 100644 mkspecs/features/mac/sdk.prf
+
+diff --git a/mkspecs/common/mac.conf b/mkspecs/common/mac.conf
+index 61bea952b2..9909dae726 100644
+--- a/mkspecs/common/mac.conf
++++ b/mkspecs/common/mac.conf
+@@ -23,7 +23,7 @@ QMAKE_INCDIR_OPENGL     = \
+ 
+ QMAKE_FIX_RPATH         = install_name_tool -id
+ 
+-QMAKE_LFLAGS_RPATH      = -Wl,-rpath,
++QMAKE_LFLAGS_RPATH      =
+ QMAKE_LFLAGS_GCSECTIONS = -Wl,-dead_strip
+ 
+ QMAKE_LFLAGS_REL_RPATH  =
+diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf
+index ba163efc18..b80ec1e801 100644
+--- a/mkspecs/features/mac/default_post.prf
++++ b/mkspecs/features/mac/default_post.prf
+@@ -68,212 +68,6 @@ qt {
+     }
+ }
+ 
+-# Add the same default rpaths as Xcode does for new projects.
+-# This is especially important for iOS/tvOS/watchOS where no other option is possible.
+-!no_default_rpath {
+-    uikit: QMAKE_RPATHDIR += @executable_path/Frameworks
+-    else: QMAKE_RPATHDIR += @executable_path/../Frameworks
+-    equals(TEMPLATE, lib):!plugin:lib_bundle: QMAKE_RPATHDIR += @loader_path/Frameworks
+-}
+-
+-# Don't pass -headerpad_max_install_names when using Bitcode.
+-# In that case the linker emits a warning stating that the flag is ignored when
+-# used with bitcode, for reasons that cannot be determined (rdar://problem/20748962).
+-# Using this flag is also unnecessary in practice on UIKit platforms since they
+-# are sandboxed, and only UIKit platforms support bitcode to begin with.
+-!bitcode: QMAKE_LFLAGS += $$QMAKE_LFLAGS_HEADERPAD
+-
+-app_extension_api_only {
+-    QMAKE_CFLAGS              += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
+-    QMAKE_CXXFLAGS            += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
+-    QMAKE_CXXFLAGS_PRECOMPILE += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
+-    QMAKE_LFLAGS              += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
+-}
+-
+-macx-xcode {
+-    qmake_pkginfo_typeinfo.name = QMAKE_PKGINFO_TYPEINFO
+-    !isEmpty(QMAKE_PKGINFO_TYPEINFO): \
+-        qmake_pkginfo_typeinfo.value = $$QMAKE_PKGINFO_TYPEINFO
+-    else: \
+-        qmake_pkginfo_typeinfo.value = "????"
+-    QMAKE_MAC_XCODE_SETTINGS += qmake_pkginfo_typeinfo
+-
+-    bundle_version = $$VERSION
+-    isEmpty(bundle_version): bundle_version = 1.0.0
+-
+-    l = $$split(bundle_version, '.') 0 0  # make sure there are at least three
+-    VER_MAJ = $$member(l, 0, 0)
+-    VER_MIN = $$member(l, 1, 1)
+-    VER_PAT = $$member(l, 2, 2)
+-    unset(l)
+-
+-    qmake_full_version.name = QMAKE_FULL_VERSION
+-    qmake_full_version.value = $${VER_MAJ}.$${VER_MIN}.$${VER_PAT}
+-    QMAKE_MAC_XCODE_SETTINGS += qmake_full_version
+-
+-    qmake_short_version.name = QMAKE_SHORT_VERSION
+-    qmake_short_version.value = $${VER_MAJ}.$${VER_MIN}
+-    QMAKE_MAC_XCODE_SETTINGS += qmake_short_version
+-
+-    !isEmpty(QMAKE_XCODE_DEBUG_INFORMATION_FORMAT) {
+-        debug_information_format.name = DEBUG_INFORMATION_FORMAT
+-        debug_information_format.value = $$QMAKE_XCODE_DEBUG_INFORMATION_FORMAT
+-        debug_information_format.build = debug
+-        QMAKE_MAC_XCODE_SETTINGS += debug_information_format
+-    }
+-
+-    QMAKE_XCODE_ARCHS =
+-
+-    arch_device.name = "ARCHS[sdk=$${device.sdk}*]"
+-    arch_device.value = $$QMAKE_APPLE_DEVICE_ARCHS
+-    QMAKE_XCODE_ARCHS += $$QMAKE_APPLE_DEVICE_ARCHS
+-    QMAKE_MAC_XCODE_SETTINGS += arch_device
+-
+-    simulator {
+-        arch_simulator.name = "ARCHS[sdk=$${simulator.sdk}*]"
+-        arch_simulator.value = $$QMAKE_APPLE_SIMULATOR_ARCHS
+-        QMAKE_XCODE_ARCHS += $$QMAKE_APPLE_SIMULATOR_ARCHS
+-        QMAKE_MAC_XCODE_SETTINGS += arch_simulator
+-    }
+-
+-    only_active_arch.name = ONLY_ACTIVE_ARCH
+-    only_active_arch.value = YES
+-    only_active_arch.build = debug
+-    QMAKE_MAC_XCODE_SETTINGS += only_active_arch
+-} else {
+-    device|!simulator: VALID_DEVICE_ARCHS = $$QMAKE_APPLE_DEVICE_ARCHS
+-    simulator: VALID_SIMULATOR_ARCHS = $$QMAKE_APPLE_SIMULATOR_ARCHS
+-    VALID_ARCHS = $$VALID_DEVICE_ARCHS $$VALID_SIMULATOR_ARCHS
+-
+-    isEmpty(VALID_ARCHS): \
+-        error("QMAKE_APPLE_DEVICE_ARCHS or QMAKE_APPLE_SIMULATOR_ARCHS must contain at least one architecture")
+-
+-    single_arch: VALID_ARCHS = $$first(VALID_ARCHS)
+-
+-    ACTIVE_ARCHS = $(filter $(EXPORT_VALID_ARCHS), $(ARCHS))
+-    ARCH_ARGS = $(foreach arch, $(if $(EXPORT_ACTIVE_ARCHS), $(EXPORT_ACTIVE_ARCHS), $(EXPORT_VALID_ARCHS)), -arch $(arch))
+-
+-    QMAKE_EXTRA_VARIABLES += VALID_ARCHS ACTIVE_ARCHS ARCH_ARGS
+-
+-    arch_flags = $(EXPORT_ARCH_ARGS)
+-
+-    QMAKE_CFLAGS += $$arch_flags
+-    QMAKE_CXXFLAGS += $$arch_flags
+-    QMAKE_LFLAGS += $$arch_flags
+-
+-    QMAKE_PCH_ARCHS = $$VALID_ARCHS
+-
+-    macos: deployment_target = $$QMAKE_MACOSX_DEPLOYMENT_TARGET
+-    ios: deployment_target = $$QMAKE_IOS_DEPLOYMENT_TARGET
+-    tvos: deployment_target = $$QMAKE_TVOS_DEPLOYMENT_TARGET
+-    watchos: deployment_target = $$QMAKE_WATCHOS_DEPLOYMENT_TARGET
+-
+-    # If we're doing a simulator and device build, device and simulator
+-    # architectures use different paths and flags for the sysroot and
+-    # deployment target switch, so we must multiplex them across multiple
+-    # architectures using -Xarch. Otherwise we fall back to the simple path.
+-    # This is not strictly necessary, but results in cleaner command lines
+-    # and makes it easier for people to override EXPORT_VALID_ARCHS to limit
+-    # individual rules to a different set of architecture(s) from the overall
+-    # build (such as machtest in QtCore).
+-    simulator:device {
+-        QMAKE_XARCH_CFLAGS =
+-        QMAKE_XARCH_LFLAGS =
+-        QMAKE_EXTRA_VARIABLES += QMAKE_XARCH_CFLAGS QMAKE_XARCH_LFLAGS
+-
+-        for (arch, VALID_ARCHS) {
+-            contains(VALID_SIMULATOR_ARCHS, $$arch) {
+-                sdk = $$simulator.sdk
+-                version_identifier = $$simulator.deployment_identifier
+-            } else {
+-                sdk = $$device.sdk
+-                version_identifier = $$device.deployment_identifier
+-            }
+-
+-            version_min_flags = \
+-                -Xarch_$${arch} \
+-                -m$${version_identifier}-version-min=$$deployment_target
+-            QMAKE_XARCH_CFLAGS_$${arch} = $$version_min_flags \
+-                -Xarch_$${arch} \
+-                -isysroot$$xcodeSDKInfo(Path, $$sdk)
+-            QMAKE_XARCH_LFLAGS_$${arch} = $$version_min_flags \
+-                -Xarch_$${arch} \
+-                -Wl,-syslibroot,$$xcodeSDKInfo(Path, $$sdk)
+-
+-            QMAKE_XARCH_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS_$${arch})
+-            QMAKE_XARCH_LFLAGS += $(EXPORT_QMAKE_XARCH_LFLAGS_$${arch})
+-
+-            QMAKE_EXTRA_VARIABLES += \
+-                QMAKE_XARCH_CFLAGS_$${arch} \
+-                QMAKE_XARCH_LFLAGS_$${arch}
+-        }
+-
+-        QMAKE_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS)
+-        QMAKE_CXXFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS)
+-        QMAKE_LFLAGS += $(EXPORT_QMAKE_XARCH_LFLAGS)
+-    } else {
+-        simulator {
+-            version_identifier = $$simulator.deployment_identifier
+-            sysroot_path  = $$xcodeSDKInfo(Path, $$simulator.sdk)
+-        } else {
+-            version_identifier = $$device.deployment_identifier
+-            sysroot_path  = $$xcodeSDKInfo(Path, $$device.sdk)
+-        }
+-        version_min_flag = -m$${version_identifier}-version-min=$$deployment_target
+-        QMAKE_CFLAGS += -isysroot $$sysroot_path $$version_min_flag
+-        QMAKE_CXXFLAGS += -isysroot $$sysroot_path $$version_min_flag
+-        QMAKE_LFLAGS += -Wl,-syslibroot,$$sysroot_path $$version_min_flag
+-    }
+-
+-    # Enable precompiled headers for multiple architectures
+-    QMAKE_CFLAGS_USE_PRECOMPILE =
+-    for (arch, VALID_ARCHS) {
+-        icc_pch_style: \
+-            use_flag = "-pch-use "
+-        else: \
+-            use_flag = -include
+-
+-        # Only use Xarch with multi-arch, as the option confuses ccache
+-        count(VALID_ARCHS, 1, greaterThan): \
+-            QMAKE_CFLAGS_USE_PRECOMPILE += \
+-                -Xarch_$${arch}
+-
+-        QMAKE_CFLAGS_USE_PRECOMPILE += \
+-            $${use_flag}${QMAKE_PCH_OUTPUT_$${arch}}
+-    }
+-    icc_pch_style {
+-        QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE -include ${QMAKE_PCH_INPUT}
+-        QMAKE_CFLAGS_USE_PRECOMPILE =
+-    } else {
+-        QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
+-        QMAKE_OBJCFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
+-        QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
+-    }
+-
+-    QMAKE_PCH_OUTPUT_EXT = _${QMAKE_PCH_ARCH}$${QMAKE_PCH_OUTPUT_EXT}
+-}
+-
+-!equals(sdk_version, $$QMAKE_MAC_SDK_VERSION) {
+-    # Explicit SDK version has been set, respect that
+-    QMAKE_LFLAGS += -Wl,-sdk_version -Wl,$$sdk_version
+-}
+-
+-cache(QMAKE_XCODE_DEVELOPER_PATH, stash)
+-!isEmpty(QMAKE_XCODE_VERSION): \
+-    cache(QMAKE_XCODE_VERSION, stash)
+-
+-QMAKE_XCODE_LIBRARY_SUFFIX = $$qtPlatformTargetSuffix()
+-
+-xcode_product_bundle_identifier_setting.name = PRODUCT_BUNDLE_IDENTIFIER
+-xcode_product_bundle_identifier_setting.value = $$QMAKE_TARGET_BUNDLE_PREFIX
+-isEmpty(xcode_product_bundle_identifier_setting.value): \
+-    xcode_product_bundle_identifier_setting.value = "com.yourcompany"
+-xcode_product_bundle_target = $$QMAKE_BUNDLE
+-isEmpty(xcode_product_bundle_target): \
+-    xcode_product_bundle_target = ${PRODUCT_NAME:rfc1034identifier}
+-xcode_product_bundle_identifier_setting.value = "$${xcode_product_bundle_identifier_setting.value}.$${xcode_product_bundle_target}"
+-QMAKE_MAC_XCODE_SETTINGS += xcode_product_bundle_identifier_setting
+-
+ !macx-xcode {
+     generate_xcode_project.commands = @$(QMAKE) -spec macx-xcode \"$(EXPORT__PRO_FILE_)\" $$QMAKE_ARGS
+     generate_xcode_project.target = xcodeproj
+diff --git a/mkspecs/features/mac/default_pre.prf b/mkspecs/features/mac/default_pre.prf
+index e3534561a5..3b01424e67 100644
+--- a/mkspecs/features/mac/default_pre.prf
++++ b/mkspecs/features/mac/default_pre.prf
+@@ -1,60 +1,2 @@
+ CONFIG = asset_catalogs rez $$CONFIG
+ load(default_pre)
+-
+-isEmpty(QMAKE_XCODE_DEVELOPER_PATH) {
+-    # Get path of Xcode's Developer directory
+-    QMAKE_XCODE_DEVELOPER_PATH = $$system("/usr/bin/xcode-select --print-path 2>/dev/null")
+-    isEmpty(QMAKE_XCODE_DEVELOPER_PATH): \
+-        error("Xcode path is not set. Please use xcode-select to choose Xcode installation path.")
+-
+-    # Make sure Xcode path is valid
+-    !exists($$QMAKE_XCODE_DEVELOPER_PATH): \
+-        error("Xcode is not installed in $${QMAKE_XCODE_DEVELOPER_PATH}. Please use xcode-select to choose Xcode installation path.")
+-}
+-
+-isEmpty(QMAKE_XCODEBUILD_PATH): \
+-    QMAKE_XCODEBUILD_PATH = $$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null")
+-
+-!isEmpty(QMAKE_XCODEBUILD_PATH) {
+-    # Make sure Xcode is set up properly
+-    !system("/usr/bin/xcrun xcodebuild -license check 2>/dev/null"): \
+-        error("Xcode not set up properly. You need to confirm the license agreement by running 'sudo xcrun xcodebuild -license accept'.")
+-
+-    isEmpty(QMAKE_XCODE_VERSION) {
+-        # Extract Xcode version using xcodebuild
+-        xcode_version = $$system("/usr/bin/xcrun xcodebuild -version")
+-        QMAKE_XCODE_VERSION = $$member(xcode_version, 1)
+-        isEmpty(QMAKE_XCODE_VERSION): error("Could not resolve Xcode version.")
+-        unset(xcode_version)
+-    }
+-}
+-
+-isEmpty(QMAKE_TARGET_BUNDLE_PREFIX) {
+-    QMAKE_XCODE_PREFERENCES_FILE = $$(HOME)/Library/Preferences/com.apple.dt.Xcode.plist
+-    exists($$QMAKE_XCODE_PREFERENCES_FILE): \
+-        QMAKE_TARGET_BUNDLE_PREFIX = $$system("/usr/libexec/PlistBuddy -c 'print IDETemplateOptions:bundleIdentifierPrefix' $$QMAKE_XCODE_PREFERENCES_FILE 2>/dev/null")
+-
+-    !isEmpty(_QMAKE_CACHE_):!isEmpty(QMAKE_TARGET_BUNDLE_PREFIX): \
+-        cache(QMAKE_TARGET_BUNDLE_PREFIX)
+-}
+-
+-QMAKE_ASSET_CATALOGS_APP_ICON = AppIcon
+-
+-# Make the default debug info format for static debug builds
+-# DWARF instead of DWARF with dSYM. This cuts down build times
+-# for application debug builds significantly, as Xcode doesn't
+-# have to pull out all the DWARF info from the Qt static libs
+-# and put it into a dSYM file. We don't need that dSYM file in
+-# the first place, since the information is available in the
+-# object files inside the archives (static libraries).
+-macx-xcode:qtConfig(static): \
+-    QMAKE_XCODE_DEBUG_INFORMATION_FORMAT = dwarf
+-
+-# This variable is used by the xcode_dynamic_library_suffix
+-# feature, which allows Xcode to choose the Qt libraries to link to
+-# at build time, depending on the current Xcode SDK and configuration.
+-QMAKE_XCODE_LIBRARY_SUFFIX_SETTING = QT_LIBRARY_SUFFIX
+-
+-xcode_copy_phase_strip_setting.name = COPY_PHASE_STRIP
+-xcode_copy_phase_strip_setting.value = NO
+-QMAKE_MAC_XCODE_SETTINGS += xcode_copy_phase_strip_setting
+diff --git a/mkspecs/features/mac/sdk.mk b/mkspecs/features/mac/sdk.mk
+deleted file mode 100644
+index c40f58c987..0000000000
+--- a/mkspecs/features/mac/sdk.mk
++++ /dev/null
+@@ -1,25 +0,0 @@
+-
+-ifeq ($(QT_MAC_SDK_NO_VERSION_CHECK),)
+-    CHECK_SDK_COMMAND = /usr/bin/xcrun --sdk $(EXPORT_QMAKE_MAC_SDK) -show-sdk-version 2>&1
+-    CURRENT_MAC_SDK_VERSION := $(shell DEVELOPER_DIR=$(EXPORT_QMAKE_XCODE_DEVELOPER_PATH) $(CHECK_SDK_COMMAND))
+-    ifneq ($(CURRENT_MAC_SDK_VERSION),$(EXPORT_QMAKE_MAC_SDK_VERSION))
+-        # We don't want to complain about out of date SDK unless the target needs to be remade.
+-        # This covers use-cases such as running 'make check' after moving the build to a
+-        # computer without Xcode or with a different Xcode version.
+-        TARGET_UP_TO_DATE := $(shell QT_MAC_SDK_NO_VERSION_CHECK=1 $(MAKE) --question $(QMAKE_TARGET) && echo 1 || echo 0)
+-        ifeq ($(TARGET_UP_TO_DATE),0)
+-            ifneq ($(findstring missing DEVELOPER_DIR path,$(CURRENT_MAC_SDK_VERSION)),)
+-                $(info The developer dir $(EXPORT_QMAKE_XCODE_DEVELOPER_PATH) is no longer valid.)
+-            else ifneq ($(findstring SDK "$(EXPORT_QMAKE_MAC_SDK)" cannot be located,$(CURRENT_MAC_SDK_VERSION)),)
+-                $(info The developer dir $(EXPORT_QMAKE_XCODE_DEVELOPER_PATH) no longer contains the $(EXPORT_QMAKE_MAC_SDK_VERSION) platform SDK.)
+-            else ifneq ($(CURRENT_MAC_SDK_VERSION),)
+-                $(info The platform SDK has been changed from version $(EXPORT_QMAKE_MAC_SDK_VERSION) to version $(CURRENT_MAC_SDK_VERSION).)
+-            else
+-                $(info Unknown error resolving current platform SDK version.)
+-            endif
+-            $(info This requires a fresh build. Please wipe the build directory completely,)
+-            $(info including any .qmake.stash and .qmake.cache files generated by qmake.)
+-            $(error ^)
+-        endif
+-    endif
+-endif
+diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf
+deleted file mode 100644
+index 3a9c2778bb..0000000000
+--- a/mkspecs/features/mac/sdk.prf
++++ /dev/null
+@@ -1,61 +0,0 @@
+-
+-isEmpty(QMAKE_MAC_SDK): \
+-    error("QMAKE_MAC_SDK must be set when using CONFIG += sdk.")
+-
+-contains(QMAKE_MAC_SDK, .*/.*): \
+-    error("QMAKE_MAC_SDK can only contain short-form SDK names (eg. macosx, iphoneos)")
+-
+-defineReplace(xcodeSDKInfo) {
+-    info = $$1
+-    equals(info, "Path"): \
+-        infoarg = --show-sdk-path
+-    equals(info, "PlatformPath"): \
+-        infoarg = --show-sdk-platform-path
+-    equals(info, "SDKVersion"): \
+-        infoarg = --show-sdk-version
+-    sdk = $$2
+-    isEmpty(sdk): \
+-        sdk = $$QMAKE_MAC_SDK
+-
+-    isEmpty(QMAKE_MAC_SDK.$${sdk}.$${info}) {
+-        QMAKE_MAC_SDK.$${sdk}.$${info} = $$system("/usr/bin/xcrun --sdk $$sdk $$infoarg 2>/dev/null")
+-        # --show-sdk-platform-path won't work for Command Line Tools; this is fine
+-        # only used by the XCTest backend to testlib
+-        isEmpty(QMAKE_MAC_SDK.$${sdk}.$${info}):if(!isEmpty(QMAKE_XCODEBUILD_PATH)|!equals(infoarg, "--show-sdk-platform-path")): \
+-            error("Could not resolve SDK $$info for \'$$sdk\' using $$infoarg")
+-        cache(QMAKE_MAC_SDK.$${sdk}.$${info}, set stash, QMAKE_MAC_SDK.$${sdk}.$${info})
+-    }
+-
+-    return($$eval(QMAKE_MAC_SDK.$${sdk}.$${info}))
+-}
+-
+-QMAKE_MAC_SDK_PATH = $$xcodeSDKInfo(Path)
+-QMAKE_MAC_SDK_PLATFORM_PATH = $$xcodeSDKInfo(PlatformPath)
+-QMAKE_MAC_SDK_VERSION = $$xcodeSDKInfo(SDKVersion)
+-
+-isEmpty(QMAKE_EXPORT_INCDIR_OPENGL) {
+-    QMAKE_EXPORT_INCDIR_OPENGL = $$QMAKE_INCDIR_OPENGL
+-    sysrootified =
+-    for(val, QMAKE_INCDIR_OPENGL): sysrootified += $${QMAKE_MAC_SDK_PATH}$$val
+-    QMAKE_INCDIR_OPENGL = $$sysrootified
+-}
+-
+-QMAKESPEC_NAME = $$basename(QMAKESPEC)
+-
+-# Resolve SDK version of various tools
+-for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_LINK QMAKE_LINK_SHLIB QMAKE_ACTOOL QMAKE_LINK_C QMAKE_LINK_C_SHLIB)) {
+-    tool_variable = QMAKE_MAC_SDK.$${QMAKESPEC_NAME}.$${QMAKE_MAC_SDK}.$${tool}
+-    !isEmpty($$tool_variable) {
+-        $$tool = $$eval($$tool_variable)
+-        next()
+-    }
+-
+-    value = $$eval($$tool)
+-    isEmpty(value): next()
+-
+-    sysrooted = $$system("/usr/bin/xcrun -sdk $$QMAKE_MAC_SDK -find $$first(value) 2>/dev/null")
+-    isEmpty(sysrooted): next()
+-
+-    $$tool = $$sysrooted $$member(value, 1, -1)
+-    cache($$tool_variable, set stash, $$tool)
+-}
+-- 
+2.25.1
+
diff --git a/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0002-qtbase-mac.patch b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0002-qtbase-mac.patch
new file mode 100644
index 00000000000..2e28466c503
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0002-qtbase-mac.patch
@@ -0,0 +1,116 @@
+From ccaa916eab33093704293bc911eedd85fbe5f160 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
+Date: Fri, 3 Apr 2020 21:15:27 +0200
+Subject: [PATCH 02/10] qtbase-mac
+
+---
+ src/corelib/kernel/qcore_mac_p.h | 16 ++++++++++++++--
+ src/testlib/qappletestlogger.cpp |  2 +-
+ src/testlib/qappletestlogger_p.h |  2 +-
+ src/testlib/qtestcase.cpp        |  2 +-
+ src/testlib/qtestlog.cpp         |  2 +-
+ src/testlib/qtestlog_p.h         |  2 +-
+ 6 files changed, 19 insertions(+), 7 deletions(-)
+
+diff --git a/src/corelib/kernel/qcore_mac_p.h b/src/corelib/kernel/qcore_mac_p.h
+index 535d3579b2..3d70bf39c1 100644
+--- a/src/corelib/kernel/qcore_mac_p.h
++++ b/src/corelib/kernel/qcore_mac_p.h
+@@ -225,7 +225,7 @@ private:
+ 
+ // --------------------------------------------------------------------------
+ 
+-#if !defined(QT_BOOTSTRAPPED)
++#if 0
+ 
+ QT_END_NAMESPACE
+ #include <os/activity.h>
+@@ -303,7 +303,19 @@ QT_MAC_WEAK_IMPORT(_os_activity_current);
+ 
+ #define QT_APPLE_SCOPED_LOG_ACTIVITY(...) QAppleLogActivity scopedLogActivity = QT_APPLE_LOG_ACTIVITY(__VA_ARGS__).enter();
+ 
+-#endif // !defined(QT_BOOTSTRAPPED)
++#else // !defined(QT_BOOTSTRAPPED)
++
++#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT3(...)
++#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT2(...)
++#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT(...)
++
++#define QT_APPLE_LOG_ACTIVITY2(...)
++#define QT_APPLE_LOG_ACTIVITY1(...)
++#define QT_APPLE_LOG_ACTIVITY(...)
++
++#define QT_APPLE_SCOPED_LOG_ACTIVITY(...)
++
++#endif
+ 
+ // -------------------------------------------------------------------------
+ 
+diff --git a/src/testlib/qappletestlogger.cpp b/src/testlib/qappletestlogger.cpp
+index dfeadebdef..2a74330c1d 100644
+--- a/src/testlib/qappletestlogger.cpp
++++ b/src/testlib/qappletestlogger.cpp
+@@ -43,7 +43,7 @@
+ 
+ QT_BEGIN_NAMESPACE
+ 
+-#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
++#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
+ 
+ using namespace QTestPrivate;
+ 
+diff --git a/src/testlib/qappletestlogger_p.h b/src/testlib/qappletestlogger_p.h
+index 62c6d95c5a..f8e0a3b767 100644
+--- a/src/testlib/qappletestlogger_p.h
++++ b/src/testlib/qappletestlogger_p.h
+@@ -57,7 +57,7 @@
+ 
+ QT_BEGIN_NAMESPACE
+ 
+-#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
++#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
+ class QAppleTestLogger : public QAbstractTestLogger
+ {
+ public:
+diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
+index 70733a692a..8bcda17858 100644
+--- a/src/testlib/qtestcase.cpp
++++ b/src/testlib/qtestcase.cpp
+@@ -852,7 +852,7 @@ Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, const char *const argv[], bool
+ 
+     bool addFallbackLogger = !explicitLoggerRequested;
+ 
+-#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
++#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
+     // Any explicitly requested loggers will be added by now, so we can check if they use stdout
+     const bool safeToAddAppleLogger = !AppleUnifiedLogger::willMirrorToStderr() || !QTestLog::loggerUsingStdout();
+     if (safeToAddAppleLogger && QAppleTestLogger::debugLoggingEnabled()) {
+diff --git a/src/testlib/qtestlog.cpp b/src/testlib/qtestlog.cpp
+index f3ebf343c5..9b4f526b2e 100644
+--- a/src/testlib/qtestlog.cpp
++++ b/src/testlib/qtestlog.cpp
+@@ -465,7 +465,7 @@ void QTestLog::addLogger(LogMode mode, const char *filename)
+     case QTestLog::TAP:
+         logger = new QTapTestLogger(filename);
+         break;
+-#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
++#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
+     case QTestLog::Apple:
+         logger = new QAppleTestLogger;
+         break;
+diff --git a/src/testlib/qtestlog_p.h b/src/testlib/qtestlog_p.h
+index fff36f290d..f737ccf064 100644
+--- a/src/testlib/qtestlog_p.h
++++ b/src/testlib/qtestlog_p.h
+@@ -72,7 +72,7 @@ public:
+ 
+     enum LogMode {
+         Plain = 0, XML, LightXML, XunitXML, CSV, TeamCity, TAP
+-#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
++#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
+         , Apple
+ #endif
+ #if defined(HAVE_XCTEST)
+-- 
+2.25.1
+
diff --git a/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0003-qtbase-mkspecs.patch b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0003-qtbase-mkspecs.patch
new file mode 100644
index 00000000000..b704d0dc872
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0003-qtbase-mkspecs.patch
@@ -0,0 +1,464 @@
+From 1cb5581d7f20bf87ac8d67a7295447a78a1d9645 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
+Date: Sat, 4 Apr 2020 00:25:52 +0200
+Subject: [PATCH 03/10] qtbase-mkspecs
+
+---
+ mkspecs/features/create_cmake.prf             | 51 +++---------
+ .../data/cmake/Qt5BasicConfig.cmake.in        | 80 +------------------
+ mkspecs/features/qml_module.prf               |  2 +-
+ mkspecs/features/qml_plugin.prf               |  2 +-
+ mkspecs/features/qt_app.prf                   |  2 +-
+ mkspecs/features/qt_build_paths.prf           |  4 +-
+ mkspecs/features/qt_docs.prf                  | 10 +--
+ mkspecs/features/qt_example_installs.prf      |  2 +-
+ mkspecs/features/qt_functions.prf             |  2 +-
+ mkspecs/features/qt_installs.prf              | 22 ++---
+ mkspecs/features/qt_plugin.prf                |  2 +-
+ 11 files changed, 38 insertions(+), 141 deletions(-)
+
+diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf
+index 0e71fd0015..ba071d9a70 100644
+--- a/mkspecs/features/create_cmake.prf
++++ b/mkspecs/features/create_cmake.prf
+@@ -21,7 +21,7 @@ load(cmake_functions)
+ # at cmake time whether package has been found via a symlink, and correct
+ # that to an absolute path. This is only done for installations to
+ # the /usr or / prefix.
+-CMAKE_INSTALL_LIBS_DIR = $$cmakeTargetPath($$[QT_INSTALL_LIBS])
++CMAKE_INSTALL_LIBS_DIR = $$cmakeTargetPath($$NIX_OUTPUT_OUT/lib/)
+ contains(CMAKE_INSTALL_LIBS_DIR, ^(/usr)?/lib(64)?.*): CMAKE_USR_MOVE_WORKAROUND = $$CMAKE_INSTALL_LIBS_DIR
+ 
+ CMAKE_OUT_DIR = $$MODULE_BASE_OUTDIR/lib/cmake
+@@ -77,45 +77,20 @@ split_incpath {
+         $$cmake_extra_source_includes.output
+ }
+ 
+-CMAKE_INCLUDE_DIR = $$cmakeRelativePath($$[QT_INSTALL_HEADERS], $$[QT_INSTALL_PREFIX])
+-contains(CMAKE_INCLUDE_DIR, "^\\.\\./.*") {
+-    CMAKE_INCLUDE_DIR = $$[QT_INSTALL_HEADERS]/
+-    CMAKE_INCLUDE_DIR_IS_ABSOLUTE = True
+-}
++CMAKE_INCLUDE_DIR = $$NIX_OUTPUT_DEV/include/
++CMAKE_INCLUDE_DIR_IS_ABSOLUTE = True
+ 
+-CMAKE_LIB_DIR = $$cmakeRelativePath($$[QT_INSTALL_LIBS], $$[QT_INSTALL_PREFIX])
+-contains(CMAKE_LIB_DIR,"^\\.\\./.*") {
+-    CMAKE_LIB_DIR = $$[QT_INSTALL_LIBS]/
+-    CMAKE_LIB_DIR_IS_ABSOLUTE = True
+-} else {
+-    CMAKE_RELATIVE_INSTALL_LIBS_DIR = $$cmakeRelativePath($$[QT_INSTALL_PREFIX], $$[QT_INSTALL_LIBS])
+-    # We need to go up another two levels because the CMake files are
+-    # installed in $${CMAKE_LIB_DIR}/cmake/Qt5$${CMAKE_MODULE_NAME}
+-    CMAKE_RELATIVE_INSTALL_DIR = "$${CMAKE_RELATIVE_INSTALL_LIBS_DIR}../../"
+-}
++CMAKE_BIN_DIR = $$NIX_OUTPUT_BIN/bin/
++CMAKE_BIN_DIR_IS_ABSOLUTE = True
+ 
+-CMAKE_BIN_DIR = $$cmakeRelativePath($$[QT_HOST_BINS], $$[QT_INSTALL_PREFIX])
+-contains(CMAKE_BIN_DIR, "^\\.\\./.*") {
+-    CMAKE_BIN_DIR = $$[QT_HOST_BINS]/
+-    CMAKE_BIN_DIR_IS_ABSOLUTE = True
+-}
++CMAKE_LIB_DIR = $$NIX_OUTPUT_OUT/lib/
++CMAKE_LIB_DIR_IS_ABSOLUTE = True
+ 
+-CMAKE_PLUGIN_DIR = $$cmakeRelativePath($$[QT_INSTALL_PLUGINS], $$[QT_INSTALL_PREFIX])
+-contains(CMAKE_PLUGIN_DIR, "^\\.\\./.*") {
+-    CMAKE_PLUGIN_DIR = $$[QT_INSTALL_PLUGINS]/
+-    CMAKE_PLUGIN_DIR_IS_ABSOLUTE = True
+-}
++CMAKE_PLUGIN_DIR = $$NIX_OUTPUT_PLUGIN/
++CMAKE_PLUGIN_DIR_IS_ABSOLUTE = True
+ 
+-win32:!static:!staticlib {
+-    CMAKE_DLL_DIR = $$cmakeRelativePath($$[QT_INSTALL_BINS], $$[QT_INSTALL_PREFIX])
+-    contains(CMAKE_DLL_DIR, "^\\.\\./.*") {
+-        CMAKE_DLL_DIR = $$[QT_INSTALL_BINS]/
+-        CMAKE_DLL_DIR_IS_ABSOLUTE = True
+-    }
+-} else {
+-    CMAKE_DLL_DIR = $$CMAKE_LIB_DIR
+-    CMAKE_DLL_DIR_IS_ABSOLUTE = $$CMAKE_LIB_DIR_IS_ABSOLUTE
+-}
++CMAKE_DLL_DIR = $$NIX_OUTPUT_OUT/lib/
++CMAKE_DLL_DIR_IS_ABSOLUTE = True
+ 
+ static|staticlib:CMAKE_STATIC_TYPE = true
+ 
+@@ -258,7 +233,7 @@ contains(CONFIG, plugin) {
+ 
+     cmake_qt5_plugin_file.files = $$cmake_target_file.output
+     static|staticlib: cmake_qt5_plugin_file.files += $$cmake_qt5_plugin_import_file.output
+-    cmake_qt5_plugin_file.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME}
++    cmake_qt5_plugin_file.path = $$NIX_OUTPUT_OUT/lib/cmake/Qt5$${CMAKE_MODULE_NAME}
+     INSTALLS += cmake_qt5_plugin_file
+ 
+     return()
+@@ -396,7 +371,7 @@ exists($$cmake_macros_file.input) {
+     cmake_qt5_module_files.files += $$cmake_macros_file.output
+ }
+ 
+-cmake_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME}
++cmake_qt5_module_files.path = $$NIX_OUTPUT_OUT/lib/cmake/Qt5$${CMAKE_MODULE_NAME}
+ 
+ # We are generating cmake files. Most developers of Qt are not aware of cmake,
+ # so we require automatic tests to be available. The only module which should
+diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+index 1099a761ce..87679b7e68 100644
+--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
++++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+@@ -3,30 +3,6 @@ if (CMAKE_VERSION VERSION_LESS 3.1.0)
+     message(FATAL_ERROR \"Qt 5 $${CMAKE_MODULE_NAME} module requires at least CMake version 3.1.0\")
+ endif()
+ 
+-!!IF !isEmpty(CMAKE_USR_MOVE_WORKAROUND)
+-!!IF !isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\")
+-!!ELSE
+-get_filename_component(_IMPORT_PREFIX \"${CMAKE_CURRENT_LIST_FILE}\" PATH)
+-# Use original install prefix when loaded through a
+-# cross-prefix symbolic link such as /lib -> /usr/lib.
+-get_filename_component(_realCurr \"${_IMPORT_PREFIX}\" REALPATH)
+-get_filename_component(_realOrig \"$$CMAKE_INSTALL_LIBS_DIR/cmake/Qt5$${CMAKE_MODULE_NAME}\" REALPATH)
+-if(_realCurr STREQUAL _realOrig)
+-    get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$CMAKE_INSTALL_LIBS_DIR/$${CMAKE_RELATIVE_INSTALL_LIBS_DIR}\" ABSOLUTE)
+-else()
+-    get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
+-endif()
+-unset(_realOrig)
+-unset(_realCurr)
+-unset(_IMPORT_PREFIX)
+-!!ENDIF
+-!!ELIF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
+-!!ELSE
+-set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\")
+-!!ENDIF
+-
+ !!IF !equals(TEMPLATE, aux)
+ # For backwards compatibility only. Use Qt5$${CMAKE_MODULE_NAME}_VERSION instead.
+ set(Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING "$$eval(QT.$${MODULE}.VERSION)")
+@@ -146,11 +122,7 @@ macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATI
+       IsDebugAndRelease)
+     set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+-!!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+-!!ELSE
+     set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+-!!ENDIF
+     _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location})
+     set(_deps
+         ${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}
+@@ -210,11 +182,7 @@ macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATI
+ !!ENDIF
+ 
+ !!IF !isEmpty(CMAKE_WINDOWS_BUILD)
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_implib \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+-!!ELSE
+     set(imported_implib \"IMPORTED_IMPLIB_${Configuration}\" \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+-!!ENDIF
+     _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_implib})
+     if(NOT \"${IMPLIB_LOCATION}\" STREQUAL \"\")
+         set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES
+@@ -230,24 +198,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+ !!IF !no_module_headers
+ !!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK)
+     set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS
+-      \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework\"
+-      \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Headers\"
++      \"$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework\"
++      \"$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Headers\"
+     )
+ !!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES)
+     set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/\"
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/$${MODULE_INCNAME}\"
+-    )
+-!!ELSE
+-    set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
+-!!ENDIF
+-!!ELSE
+-!!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE)
+-    set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}\")
+-!!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES)
+-    set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION\"
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION/$${MODULE_INCNAME}\"
++      \"$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Versions/$$section(VERSION, .,0, 0)/Headers/$$VERSION/\"
++      \"$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Versions/$$section(VERSION, .,0, 0)/Headers/$$VERSION/$${MODULE_INCNAME}\"
+     )
+ !!ELSE
+     set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
+@@ -263,7 +220,6 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+     set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
+ !!ENDIF
+ !!ENDIF
+-!!ENDIF
+ !!IF !isEmpty(CMAKE_ADD_SOURCE_INCLUDE_DIRS)
+     include(\"${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake\" OPTIONAL)
+ !!ENDIF
+@@ -465,25 +421,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+ !!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD)
+ !!IF isEmpty(CMAKE_DEBUG_TYPE)
+ !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE
+     if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE
+         _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ELSE // CMAKE_STATIC_WINDOWS_BUILD
+     if (EXISTS
+-!!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\"
+-!!ELSE
+         \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\"
+-!!ENDIF
+       AND EXISTS
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ELSE
+         \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ENDIF
+         _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
+     endif()
+@@ -502,25 +446,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+ !!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD)
+ !!IF isEmpty(CMAKE_RELEASE_TYPE)
+ !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE
+     if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE
+         _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ELSE // CMAKE_STATIC_WINDOWS_BUILD
+     if (EXISTS
+-!!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\"
+-!!ELSE
+         \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\"
+-!!ENDIF
+       AND EXISTS
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ELSE
+         \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ENDIF
+         _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
+     endif()
+@@ -542,11 +474,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+           IsDebugAndRelease)
+         set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+-!!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE)
+-        set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\")
+-!!ELSE
+         set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\")
+-!!ENDIF
+         _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location})
+         set_target_properties(Qt5::${Plugin} PROPERTIES
+             \"IMPORTED_LOCATION_${Configuration}\" ${imported_location}
+diff --git a/mkspecs/features/qml_module.prf b/mkspecs/features/qml_module.prf
+index c0b50416c9..cabe39b22e 100644
+--- a/mkspecs/features/qml_module.prf
++++ b/mkspecs/features/qml_module.prf
+@@ -51,7 +51,7 @@ builtin_resources {
+ # Install rules
+ qmldir.base = $$qmldir_path
+ qmldir.files = $$qmldir_file
+-qmldir.path = $$[QT_INSTALL_QML]/$$TARGETPATH
++qmldir.path = $$NIX_OUTPUT_QML/$$TARGETPATH
+ 
+ qmlfiles.base = $$_PRO_FILE_PWD_
+ qmlfiles.files = $$fq_aux_qml_files
+diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf
+index f1c5658b04..029595e721 100644
+--- a/mkspecs/features/qml_plugin.prf
++++ b/mkspecs/features/qml_plugin.prf
+@@ -50,7 +50,7 @@ load(qt_build_paths)
+ 
+ DESTDIR = $$MODULE_BASE_OUTDIR/qml/$$TARGETPATH
+ 
+-target.path = $$[QT_INSTALL_QML]/$$TARGETPATH
++target.path = $$NIX_OUTPUT_QML/$$TARGETPATH
+ INSTALLS += target
+ 
+ # Some final setup
+diff --git a/mkspecs/features/qt_app.prf b/mkspecs/features/qt_app.prf
+index 8354f30eea..62028fef8e 100644
+--- a/mkspecs/features/qt_app.prf
++++ b/mkspecs/features/qt_app.prf
+@@ -30,7 +30,7 @@ host_build:force_bootstrap {
+     target.path = $$[QT_HOST_BINS]
+ } else {
+     !build_pass:qtConfig(debug_and_release): CONFIG += release
+-    target.path = $$[QT_INSTALL_BINS]
++    target.path = $$NIX_OUTPUT_BIN/bin
+     CONFIG += relative_qt_rpath  # Qt's tools and apps should be relocatable
+ }
+ INSTALLS += target
+diff --git a/mkspecs/features/qt_build_paths.prf b/mkspecs/features/qt_build_paths.prf
+index 3bb3823a8e..655b7b7db8 100644
+--- a/mkspecs/features/qt_build_paths.prf
++++ b/mkspecs/features/qt_build_paths.prf
+@@ -24,6 +24,6 @@ exists($$MODULE_BASE_INDIR/.git): \
+ !force_independent {
+     # If the module is not built independently, everything ends up in qtbase.
+     # This is the case in non-prefix builds, except for selected modules.
+-    MODULE_BASE_OUTDIR = $$[QT_HOST_PREFIX]
+-    MODULE_QMAKE_OUTDIR = $$[QT_HOST_PREFIX]
++    MODULE_BASE_OUTDIR = $$NIX_OUTPUT_OUT
++    MODULE_QMAKE_OUTDIR = $$NIX_OUTPUT_OUT
+ }
+diff --git a/mkspecs/features/qt_docs.prf b/mkspecs/features/qt_docs.prf
+index 095bf15dac..4cc977bea5 100644
+--- a/mkspecs/features/qt_docs.prf
++++ b/mkspecs/features/qt_docs.prf
+@@ -65,7 +65,7 @@ QMAKE_DOCS_OUTPUTDIR = $$QMAKE_DOCS_BASE_OUTDIR/$$QMAKE_DOCS_TARGETDIR
+ 
+ QDOC += -outputdir $$shell_quote($$QMAKE_DOCS_OUTPUTDIR)
+ !build_online_docs: \
+-    QDOC += -installdir $$shell_quote($$[QT_INSTALL_DOCS])
++    QDOC += -installdir $$shell_quote($$NIX_OUTPUT_DOC)
+ PREP_DOC_INDEXES =
+ DOC_INDEXES =
+ !isEmpty(QTREPOS) {
+@@ -84,8 +84,8 @@ DOC_INDEXES =
+         DOC_INDEXES += -indexdir $$shell_quote($$qrep/doc)
+ } else {
+     prepare_docs: \
+-        PREP_DOC_INDEXES += -indexdir $$shell_quote($$[QT_INSTALL_DOCS/get])
+-    DOC_INDEXES += -indexdir $$shell_quote($$[QT_INSTALL_DOCS/get])
++        PREP_DOC_INDEXES += -indexdir $$shell_quote($$NIX_OUTPUT_DOC)
++    DOC_INDEXES += -indexdir $$shell_quote($$NIX_OUTPUT_DOC)
+ }
+ 
+ qtattributionsscanner.target = qtattributionsscanner
+@@ -108,12 +108,12 @@ prepare_docs {
+     qch_docs.commands = $$QHELPGENERATOR $$shell_quote($$QMAKE_DOCS_OUTPUTDIR/$${QMAKE_DOCS_TARGET}.qhp) -o $$shell_quote($$QMAKE_DOCS_BASE_OUTDIR/$${QMAKE_DOCS_TARGET}.qch)
+ 
+     inst_html_docs.files = $$QMAKE_DOCS_OUTPUTDIR
+-    inst_html_docs.path = $$[QT_INSTALL_DOCS]
++    inst_html_docs.path = $$NIX_OUTPUT_DOC
+     inst_html_docs.CONFIG += no_check_exist directory no_default_install no_build
+     INSTALLS += inst_html_docs
+ 
+     inst_qch_docs.files = $$QMAKE_DOCS_BASE_OUTDIR/$${QMAKE_DOCS_TARGET}.qch
+-    inst_qch_docs.path = $$[QT_INSTALL_DOCS]
++    inst_qch_docs.path = $$NIX_OUTPUT_DOC
+     inst_qch_docs.CONFIG += no_check_exist no_default_install no_build
+     INSTALLS += inst_qch_docs
+ 
+diff --git a/mkspecs/features/qt_example_installs.prf b/mkspecs/features/qt_example_installs.prf
+index 72b47bce27..d59e949e78 100644
+--- a/mkspecs/features/qt_example_installs.prf
++++ b/mkspecs/features/qt_example_installs.prf
+@@ -90,7 +90,7 @@ sourcefiles += \
+     $$SOURCES $$HEADERS $$FORMS $$RESOURCES $$TRANSLATIONS \
+     $$DBUS_ADAPTORS $$DBUS_INTERFACES
+ addInstallFiles(sources.files, $$sourcefiles)
+-sources.path = $$[QT_INSTALL_EXAMPLES]/$$probase
++sources.path = $$NIX_OUTPUT_DEV/share/examples/$$probase
+ INSTALLS += sources
+ 
+ check_examples {
+diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
+index 7777e615bd..abeb03a663 100644
+--- a/mkspecs/features/qt_functions.prf
++++ b/mkspecs/features/qt_functions.prf
+@@ -87,7 +87,7 @@ defineTest(qtHaveModule) {
+ defineTest(qtPrepareTool) {
+     cmd = $$eval(QT_TOOL.$${2}.binary)
+     isEmpty(cmd) {
+-        cmd = $$[QT_HOST_BINS]/$$2
++        cmd = $$system("command -v $$2")
+         exists($${cmd}.pl) {
+             $${1}_EXE = $${cmd}.pl
+             cmd = perl -w $$system_path($${cmd}.pl)
+diff --git a/mkspecs/features/qt_installs.prf b/mkspecs/features/qt_installs.prf
+index 1ebca17366..a8f958eae8 100644
+--- a/mkspecs/features/qt_installs.prf
++++ b/mkspecs/features/qt_installs.prf
+@@ -12,16 +12,10 @@
+ #library
+ !qt_no_install_library {
+     win32 {
+-       host_build: \
+-           dlltarget.path = $$[QT_HOST_BINS]
+-       else: \
+-           dlltarget.path = $$[QT_INSTALL_BINS]
++       dlltarget.path = $$NIX_OUTPUT_BIN/bin
+        INSTALLS += dlltarget
+     }
+-    host_build: \
+-        target.path = $$[QT_HOST_LIBS]
+-    else: \
+-        target.path = $$[QT_INSTALL_LIBS]
++    target.path = $$NIX_OUTPUT_OUT/lib
+     !static: target.CONFIG = no_dll
+     INSTALLS += target
+ }
+@@ -29,35 +23,35 @@
+ #headers
+ qt_install_headers {
+     gen_headers.files = $$SYNCQT.GENERATED_HEADER_FILES
+-    gen_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME
++    gen_headers.path = $$NIX_OUTPUT_DEV/include/$$MODULE_INCNAME
+     INSTALLS += gen_headers
+ 
+     targ_headers.files = $$SYNCQT.HEADER_FILES $$SYNCQT.INJECTED_HEADER_FILES
+-    targ_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME
++    targ_headers.path = $$NIX_OUTPUT_DEV/include/$$MODULE_INCNAME
+     INSTALLS += targ_headers
+ 
+     private_headers.files = $$SYNCQT.PRIVATE_HEADER_FILES $$SYNCQT.INJECTED_PRIVATE_HEADER_FILES
+-    private_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/private
++    private_headers.path = $$NIX_OUTPUT_DEV/include/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/private
+     generated_privates: \
+         private_headers.CONFIG += no_check_exist
+     INSTALLS += private_headers
+ 
+     qpa_headers.files = $$SYNCQT.QPA_HEADER_FILES
+-    qpa_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/qpa
++    qpa_headers.path = $$NIX_OUTPUT_DEV/include/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/qpa
+     INSTALLS += qpa_headers
+ }
+ 
+ #module
+ qt_install_module {
+     !isEmpty(MODULE_PRI) {
+-        pritarget.path = $$[QT_HOST_DATA]/mkspecs/modules
++        pritarget.path = $$NIX_OUTPUT_DEV/mkspecs/modules
+         pritarget.files = $$MODULE_PRI
+         INSTALLS += pritarget
+     } else: isEmpty(MODULE_PRIVATE_PRI) {
+         warning("Project $$basename(_PRO_FILE_) is a module, but has not defined MODULE_PRI, which is required for Qt to expose the module to other projects.")
+     }
+     !isEmpty(MODULE_PRIVATE_PRI) {
+-        privpritarget.path = $$[QT_HOST_DATA]/mkspecs/modules
++        privpritarget.path = $$NIX_OUTPUT_DEV/mkspecs/modules
+         privpritarget.files = $$MODULE_PRIVATE_PRI
+         INSTALLS += privpritarget
+     }
+diff --git a/mkspecs/features/qt_plugin.prf b/mkspecs/features/qt_plugin.prf
+index 573d717eea..024c624cb6 100644
+--- a/mkspecs/features/qt_plugin.prf
++++ b/mkspecs/features/qt_plugin.prf
+@@ -88,7 +88,7 @@ CONFIG(static, static|shared)|prefix_build {
+     }
+ }
+ 
+-target.path = $$[QT_INSTALL_PLUGINS]/$$PLUGIN_TYPE
++target.path = $$NIX_OUTPUT_PLUGIN/$$PLUGIN_TYPE
+ INSTALLS += target
+ 
+ qt_libinfix_plugins: TARGET = $$TARGET$$QT_LIBINFIX
+-- 
+2.25.1
+
diff --git a/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0004-qtbase-replace-libdir.patch b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0004-qtbase-replace-libdir.patch
new file mode 100644
index 00000000000..86ea2e75d9b
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0004-qtbase-replace-libdir.patch
@@ -0,0 +1,68 @@
+From 1cae0c31c9849615190ee175ebf929b3aca13fe0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
+Date: Sat, 4 Apr 2020 00:27:41 +0200
+Subject: [PATCH 04/10] qtbase-replace-libdir
+
+---
+ mkspecs/features/qt_common.prf | 20 ++------------------
+ mkspecs/features/qt_module.prf |  5 +----
+ 2 files changed, 3 insertions(+), 22 deletions(-)
+
+diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf
+index c24f2c6062..0d72ce7286 100644
+--- a/mkspecs/features/qt_common.prf
++++ b/mkspecs/features/qt_common.prf
+@@ -31,32 +31,16 @@ contains(TEMPLATE, .*lib) {
+         rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
+     else: \
+         rplbase = $$MODULE_BASE_OUTDIR
+-    host_build {
+-        qqt_libdir = \$\$\$\$[QT_HOST_LIBS]
+-        qt_libdir = $$[QT_HOST_LIBS]
+-    } else {
+-        qqt_libdir = \$\$\$\$[QT_INSTALL_LIBS]
+-        qt_libdir = $$[QT_INSTALL_LIBS]
+-    }
++    qt_libdir = $$NIX_OUTPUT_OUT/lib
+     contains(QMAKE_DEFAULT_LIBDIRS, $$qt_libdir) {
+-        lib_replace0.match = $$rplbase/lib/
+-        lib_replace0.replace = $$qqt_libdir/
+-        lib_replace0.CONFIG = path
+-        QMAKE_PRL_INSTALL_REPLACE += lib_replace0
+         lib_replace.match = "[^ ']*$$rplbase/lib"
+         lib_replace.replace =
+     } else {
+         lib_replace.match = $$rplbase/lib
+-        lib_replace.replace = $$qqt_libdir
++        lib_replace.replace = $$qt_libdir
+     }
+     lib_replace.CONFIG = path
+     QMAKE_PRL_INSTALL_REPLACE += lib_replace
+-    !equals(qt_libdir, $$rplbase/lib) {
+-        qtlibdir_replace.match = $$qt_libdir
+-        qtlibdir_replace.replace = $$qqt_libdir
+-        qtlibdir_replace.CONFIG = path
+-        QMAKE_PRL_INSTALL_REPLACE += qtlibdir_replace
+-    }
+ }
+ 
+ # The remainder of this file must not apply to host tools/libraries,
+diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
+index 828a9621b9..b9e5d35026 100644
+--- a/mkspecs/features/qt_module.prf
++++ b/mkspecs/features/qt_module.prf
+@@ -305,10 +305,7 @@ load(qt_targets)
+ }
+ !lib_bundle:unix {
+     CONFIG += create_libtool
+-    host_build: \
+-        QMAKE_LIBTOOL_LIBDIR = $$[QT_HOST_LIBS]
+-    else: \
+-        QMAKE_LIBTOOL_LIBDIR = "=$$[QT_INSTALL_LIBS/raw]"
++    QMAKE_LIBTOOL_LIBDIR = $$NIX_OUTPUT_OUT/lib
+     !isEmpty(lib_replace0.match) {
+         ltlib_replace0.match = $$lib_replace0.match
+         ltlib_replace0.replace = $$QMAKE_LIBTOOL_LIBDIR/
+-- 
+2.25.1
+
diff --git a/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0005-qtbase-cmake.patch b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0005-qtbase-cmake.patch
new file mode 100644
index 00000000000..85a72956341
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0005-qtbase-cmake.patch
@@ -0,0 +1,194 @@
+From 7e93d1330e1f8c8cd68334201ad100b8c05c9ab5 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Tue, 17 Sep 2019 05:34:28 -0500
+Subject: [PATCH 05/10] qtbase-cmake
+
+---
+ mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in  |  2 +-
+ mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in |  4 ++--
+ src/corelib/Qt5CoreConfigExtras.cmake.in             | 10 +++++-----
+ src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in    |  2 +-
+ .../Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in  |  2 +-
+ src/dbus/Qt5DBusConfigExtras.cmake.in                | 12 ++----------
+ src/gui/Qt5GuiConfigExtras.cmake.in                  |  6 +++---
+ src/widgets/Qt5WidgetsConfigExtras.cmake.in          |  2 +-
+ 8 files changed, 16 insertions(+), 24 deletions(-)
+
+diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+index 87679b7e68..57060e6470 100644
+--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
++++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+@@ -474,7 +474,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+           IsDebugAndRelease)
+         set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+-        set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\")
++        set(imported_location \"${PLUGIN_LOCATION}\")
+         _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location})
+         set_target_properties(Qt5::${Plugin} PROPERTIES
+             \"IMPORTED_LOCATION_${Configuration}\" ${imported_location}
+diff --git a/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in b/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in
+index 7b70cfed09..e700cfa539 100644
+--- a/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in
++++ b/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in
+@@ -53,10 +53,10 @@ set_property(TARGET Qt5::$$CMAKE_PLUGIN_NAME PROPERTY INTERFACE_SOURCES
+ !!ENDIF
+ 
+ !!IF !isEmpty(CMAKE_RELEASE_TYPE)
+-_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE})
++_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_DIR}$${CMAKE_PLUGIN_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ENDIF
+ !!IF !isEmpty(CMAKE_DEBUG_TYPE)
+-_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\" $${CMAKE_DEBUG_AND_RELEASE})
++_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_DIR}$${CMAKE_PLUGIN_LOCATION_DEBUG}\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ENDIF
+ 
+ list(APPEND Qt5$${CMAKE_MODULE_NAME}_PLUGINS Qt5::$$CMAKE_PLUGIN_NAME)
+diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in
+index 9b672327ef..319ba94d6d 100644
+--- a/src/corelib/Qt5CoreConfigExtras.cmake.in
++++ b/src/corelib/Qt5CoreConfigExtras.cmake.in
+@@ -3,7 +3,7 @@ if (NOT TARGET Qt5::qmake)
+     add_executable(Qt5::qmake IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+@@ -18,7 +18,7 @@ if (NOT TARGET Qt5::moc)
+     add_executable(Qt5::moc IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+@@ -35,7 +35,7 @@ if (NOT TARGET Qt5::rcc)
+     add_executable(Qt5::rcc IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+@@ -118,7 +118,7 @@ if (NOT TARGET Qt5::WinMain)
+ !!IF !isEmpty(CMAKE_RELEASE_TYPE)
+     set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
+ !!ENDIF
+@@ -132,7 +132,7 @@ if (NOT TARGET Qt5::WinMain)
+     set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
+ 
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
+ !!ENDIF
+diff --git a/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in b/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
+index c357237d0e..6f0c75de3c 100644
+--- a/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
++++ b/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
+@@ -1,6 +1,6 @@
+ 
+ !!IF isEmpty(CMAKE_HOST_DATA_DIR_IS_ABSOLUTE)
+-set(_qt5_corelib_extra_includes \"${_qt5Core_install_prefix}/$${CMAKE_HOST_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
++set(_qt5_corelib_extra_includes \"$$NIX_OUTPUT_DEV/$${CMAKE_HOST_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
+ !!ELSE
+ set(_qt5_corelib_extra_includes \"$${CMAKE_HOST_DATA_DIR}mkspecs/$${CMAKE_MKSPEC}\")
+ !!ENDIF
+diff --git a/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in b/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
+index 706304cf34..546420f6ad 100644
+--- a/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
++++ b/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
+@@ -1,6 +1,6 @@
+ 
+ !!IF isEmpty(CMAKE_INSTALL_DATA_DIR_IS_ABSOLUTE)
+-set(_qt5_corelib_extra_includes \"${_qt5Core_install_prefix}/$${CMAKE_INSTALL_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
++set(_qt5_corelib_extra_includes \"$$NIX_OUTPUT_DEV/$${CMAKE_INSTALL_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
+ !!ELSE
+ set(_qt5_corelib_extra_includes \"$${CMAKE_INSTALL_DATA_DIR}mkspecs/$${CMAKE_MKSPEC}\")
+ !!ENDIF
+diff --git a/src/dbus/Qt5DBusConfigExtras.cmake.in b/src/dbus/Qt5DBusConfigExtras.cmake.in
+index 1d947159e2..b36865fc48 100644
+--- a/src/dbus/Qt5DBusConfigExtras.cmake.in
++++ b/src/dbus/Qt5DBusConfigExtras.cmake.in
+@@ -2,11 +2,7 @@
+ if (NOT TARGET Qt5::qdbuscpp2xml)
+     add_executable(Qt5::qdbuscpp2xml IMPORTED)
+ 
+-!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
+-!!ELSE
+-    set(imported_location \"$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
+-!!ENDIF
++    set(imported_location \"$$NIX_OUTPUT_DEV/bin/qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
+     _qt5_DBus_check_file_exists(${imported_location})
+ 
+     set_target_properties(Qt5::qdbuscpp2xml PROPERTIES
+@@ -17,11 +13,7 @@ endif()
+ if (NOT TARGET Qt5::qdbusxml2cpp)
+     add_executable(Qt5::qdbusxml2cpp IMPORTED)
+ 
+-!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
+-!!ELSE
+-    set(imported_location \"$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
+-!!ENDIF
++    set(imported_location \"$$NIX_OUTPUT_DEV/bin/qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
+     _qt5_DBus_check_file_exists(${imported_location})
+ 
+     set_target_properties(Qt5::qdbusxml2cpp PROPERTIES
+diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in
+index 84dbbfebd4..8ad0720c5c 100644
+--- a/src/gui/Qt5GuiConfigExtras.cmake.in
++++ b/src/gui/Qt5GuiConfigExtras.cmake.in
+@@ -2,7 +2,7 @@
+ !!IF !isEmpty(CMAKE_ANGLE_EGL_DLL_RELEASE)
+ 
+ !!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE)
+-set(Qt5Gui_EGL_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR/QtANGLE\")
++set(Qt5Gui_EGL_INCLUDE_DIRS \"$$NIX_OUTPUT_DEV/$$CMAKE_INCLUDE_DIR/QtANGLE\")
+ !!ELSE
+ set(Qt5Gui_EGL_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR/QtANGLE\")
+ !!ENDIF
+@@ -17,13 +17,13 @@ macro(_populate_qt5gui_gl_target_properties TargetName Configuration LIB_LOCATIO
+     set_property(TARGET Qt5::${TargetName} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+ !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Gui_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
++    set(imported_location \"$$NIX_OUTPUT_OUT/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+ !!ENDIF
+ 
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_implib \"${_qt5Gui_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
++    set(imported_implib \"$$NIX_OUTPUT_OUT/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+ !!ELSE
+     set(imported_implib \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+ !!ENDIF
+diff --git a/src/widgets/Qt5WidgetsConfigExtras.cmake.in b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
+index 99d87e2e46..a4eab2aa72 100644
+--- a/src/widgets/Qt5WidgetsConfigExtras.cmake.in
++++ b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
+@@ -3,7 +3,7 @@ if (NOT TARGET Qt5::uic)
+     add_executable(Qt5::uic IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Widgets_install_prefix}/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+-- 
+2.25.1
+
diff --git a/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0006-qtbase-gtk3.patch b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0006-qtbase-gtk3.patch
new file mode 100644
index 00000000000..6ce0e5d0c43
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0006-qtbase-gtk3.patch
@@ -0,0 +1,48 @@
+From 1ad04525cdd342e3c8a750323fb3a61b93fee753 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Tue, 17 Sep 2019 05:35:33 -0500
+Subject: [PATCH 06/10] qtbase-gtk3
+
+---
+ src/plugins/platformthemes/gtk3/main.cpp | 17 ++++++++++++++++-
+ 1 file changed, 16 insertions(+), 1 deletion(-)
+
+diff --git a/src/plugins/platformthemes/gtk3/main.cpp b/src/plugins/platformthemes/gtk3/main.cpp
+index fb1c425d8e..bb8bab9795 100644
+--- a/src/plugins/platformthemes/gtk3/main.cpp
++++ b/src/plugins/platformthemes/gtk3/main.cpp
+@@ -39,6 +39,7 @@
+ 
+ #include <qpa/qplatformthemeplugin.h>
+ #include "qgtk3theme.h"
++#include <QFile>
+ 
+ QT_BEGIN_NAMESPACE
+ 
+@@ -54,8 +55,22 @@ public:
+ QPlatformTheme *QGtk3ThemePlugin::create(const QString &key, const QStringList &params)
+ {
+     Q_UNUSED(params);
+-    if (!key.compare(QLatin1String(QGtk3Theme::name), Qt::CaseInsensitive))
++    if (!key.compare(QLatin1String(QGtk3Theme::name), Qt::CaseInsensitive)) {
++
++#ifdef NIXPKGS_QGTK3_XDG_DATA_DIRS
++        QStringList XDG_DATA_DIRS = QFile::decodeName(qgetenv("XDG_DATA_DIRS")).split(':');
++        XDG_DATA_DIRS << QLatin1String(NIXPKGS_QGTK3_XDG_DATA_DIRS);
++        qputenv("XDG_DATA_DIRS", QFile::encodeName(XDG_DATA_DIRS.join(':')));
++#endif
++
++#ifdef NIXPKGS_QGTK3_GIO_EXTRA_MODULES
++        QStringList GIO_EXTRA_MODULES = QFile::decodeName(qgetenv("GIO_EXTRA_MODULES")).split(':');
++        GIO_EXTRA_MODULES << QLatin1String(NIXPKGS_QGTK3_GIO_EXTRA_MODULES);
++        qputenv("GIO_EXTRA_MODULES", QFile::encodeName(GIO_EXTRA_MODULES.join(':')));
++#endif
++
+         return new QGtk3Theme;
++    }
+ 
+     return 0;
+ }
+-- 
+2.25.1
+
diff --git a/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0007-qtbase-xcursor.patch b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0007-qtbase-xcursor.patch
new file mode 100644
index 00000000000..6a92a952830
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0007-qtbase-xcursor.patch
@@ -0,0 +1,29 @@
+From cc953cc3f736fabef1f5c211964f30be719fb35e Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Tue, 17 Sep 2019 05:35:58 -0500
+Subject: [PATCH 07/10] qtbase-xcursor
+
+---
+ src/plugins/platforms/xcb/qxcbcursor.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/plugins/platforms/xcb/qxcbcursor.cpp b/src/plugins/platforms/xcb/qxcbcursor.cpp
+index fbadab4d50..c83ce0af5b 100644
+--- a/src/plugins/platforms/xcb/qxcbcursor.cpp
++++ b/src/plugins/platforms/xcb/qxcbcursor.cpp
+@@ -317,10 +317,10 @@ QXcbCursor::QXcbCursor(QXcbConnection *conn, QXcbScreen *screen)
+ #if QT_CONFIG(xcb_xlib) && QT_CONFIG(library)
+     static bool function_ptrs_not_initialized = true;
+     if (function_ptrs_not_initialized) {
+-        QLibrary xcursorLib(QLatin1String("Xcursor"), 1);
++        QLibrary xcursorLib(QLatin1String(NIXPKGS_LIBXCURSOR), 1);
+         bool xcursorFound = xcursorLib.load();
+         if (!xcursorFound) { // try without the version number
+-            xcursorLib.setFileName(QLatin1String("Xcursor"));
++            xcursorLib.setFileName(QLatin1String(NIXPKGS_LIBXCURSOR));
+             xcursorFound = xcursorLib.load();
+         }
+         if (xcursorFound) {
+-- 
+2.25.1
+
diff --git a/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0008-qtbase-tzdir.patch b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0008-qtbase-tzdir.patch
new file mode 100644
index 00000000000..71653a0e36e
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0008-qtbase-tzdir.patch
@@ -0,0 +1,64 @@
+From 882343ea200fe28810bf217a820816affe885a39 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Tue, 17 Sep 2019 05:36:25 -0500
+Subject: [PATCH 08/10] qtbase-tzdir
+
+---
+ src/corelib/time/qtimezoneprivate_tz.cpp | 31 +++++++++++++++---------
+ 1 file changed, 19 insertions(+), 12 deletions(-)
+
+diff --git a/src/corelib/time/qtimezoneprivate_tz.cpp b/src/corelib/time/qtimezoneprivate_tz.cpp
+index 3c2695a789..e75735f88f 100644
+--- a/src/corelib/time/qtimezoneprivate_tz.cpp
++++ b/src/corelib/time/qtimezoneprivate_tz.cpp
+@@ -75,7 +75,11 @@ typedef QHash<QByteArray, QTzTimeZone> QTzTimeZoneHash;
+ // Parse zone.tab table, assume lists all installed zones, if not will need to read directories
+ static QTzTimeZoneHash loadTzTimeZones()
+ {
+-    QString path = QStringLiteral("/usr/share/zoneinfo/zone.tab");
++    // Try TZDIR first, in case we're running on NixOS.
++    QString path = QFile::decodeName(qgetenv("TZDIR")) + QStringLiteral("/zone.tab");
++    // Fallback to traditional paths in case we are not on NixOS.
++    if (!QFile::exists(path))
++        path = QStringLiteral("/usr/share/zoneinfo/zone.tab");
+     if (!QFile::exists(path))
+         path = QStringLiteral("/usr/lib/zoneinfo/zone.tab");
+ 
+@@ -658,20 +662,23 @@ void QTzTimeZonePrivate::init(const QByteArray &ianaId)
+         if (!tzif.open(QIODevice::ReadOnly))
+             return;
+     } else {
+-        // Open named tz, try modern path first, if fails try legacy path
+-        tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId));
++        // Try TZDIR first, in case we're running on NixOS
++        tzif.setFileName(QFile::decodeName(qgetenv("TZDIR")) + QStringLiteral("/") + QString::fromLocal8Bit(ianaId));
+         if (!tzif.open(QIODevice::ReadOnly)) {
+-            tzif.setFileName(QLatin1String("/usr/lib/zoneinfo/") + QString::fromLocal8Bit(ianaId));
++            tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId));
+             if (!tzif.open(QIODevice::ReadOnly)) {
+-                // ianaId may be a POSIX rule, taken from $TZ or /etc/TZ
+-                const QByteArray zoneInfo = ianaId.split(',').at(0);
+-                const char *begin = zoneInfo.constBegin();
+-                if (PosixZone::parse(begin, zoneInfo.constEnd()).hasValidOffset()
+-                    && (begin == zoneInfo.constEnd()
+-                        || PosixZone::parse(begin, zoneInfo.constEnd()).hasValidOffset())) {
+-                    m_id = m_posixRule = ianaId;
++                tzif.setFileName(QLatin1String("/usr/lib/zoneinfo/") + QString::fromLocal8Bit(ianaId));
++                if (!tzif.open(QIODevice::ReadOnly)) {
++                    // ianaId may be a POSIX rule, taken from $TZ or /etc/TZ
++                    const QByteArray zoneInfo = ianaId.split(',').at(0);
++                    const char *begin = zoneInfo.constBegin();
++                    if (PosixZone::parse(begin, zoneInfo.constEnd()).hasValidOffset()
++                        && (begin == zoneInfo.constEnd()
++                            || PosixZone::parse(begin, zoneInfo.constEnd()).hasValidOffset())) {
++                        m_id = m_posixRule = ianaId;
++                    }
++                    return;
+                 }
+-                return;
+             }
+         }
+     }
+-- 
+2.25.1
+
diff --git a/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0009-qtbase-qtpluginpath.patch b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0009-qtbase-qtpluginpath.patch
new file mode 100644
index 00000000000..009fe14838e
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0009-qtbase-qtpluginpath.patch
@@ -0,0 +1,19 @@
+--- qtbase-everywhere-src-5.14.2/src/corelib/kernel/qcoreapplication.cpp	2020-03-27 10:49:31.000000000 +0100
++++ qtbase-everywhere-src-5.14.2/src/corelib/kernel/qcoreapplication.cpp.patched	2020-05-09 15:03:03.968084088 +0200
+@@ -2691,6 +2691,16 @@
+         QStringList *app_libpaths = new QStringList;
+         coreappdata()->app_libpaths.reset(app_libpaths);
+
++        // Add library paths derived from PATH
++        const QStringList paths = QFile::decodeName(qgetenv("PATH")).split(':');
++        const QString plugindir = QStringLiteral("../" NIXPKGS_QT_PLUGIN_PREFIX);
++        for (const QString &path: paths) {
++            if (!path.isEmpty()) {
++                app_libpaths->append(QDir::cleanPath(path + QDir::separator() + plugindir));
++            }
++        }
++
++
+         auto setPathsFromEnv = [&](QString libPathEnv) {
+             if (!libPathEnv.isEmpty()) {
+                 QStringList paths = libPathEnv.split(QDir::listSeparator(), QString::SkipEmptyParts);
diff --git a/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0010-qtbase-assert.patch b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0010-qtbase-assert.patch
new file mode 100644
index 00000000000..e10f9760732
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0010-qtbase-assert.patch
@@ -0,0 +1,32 @@
+From c8893a4e0a1b46796e39b4a338358fdb45685cba Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Tue, 17 Sep 2019 05:37:04 -0500
+Subject: [PATCH 09/10] qtbase-assert
+
+---
+ src/testlib/qtestassert.h | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/src/testlib/qtestassert.h b/src/testlib/qtestassert.h
+index 6498ea84ef..d821ced7fc 100644
+--- a/src/testlib/qtestassert.h
++++ b/src/testlib/qtestassert.h
+@@ -44,10 +44,13 @@
+ 
+ QT_BEGIN_NAMESPACE
+ 
+-
++#if defined(QT_NO_DEBUG) && !defined(QT_FORCE_ASSERTS)
++#define QTEST_ASSERT(cond) do { } while ((false) && (cond))
++#define QTEST_ASSERT_X(cond, where, what) do { } while ((false) && (cond))
++#else
+ #define QTEST_ASSERT(cond) do { if (!(cond)) qt_assert(#cond,__FILE__,__LINE__); } while (false)
+-
+ #define QTEST_ASSERT_X(cond, where, what) do { if (!(cond)) qt_assert_x(where, what,__FILE__,__LINE__); } while (false)
++#endif
+ 
+ QT_END_NAMESPACE
+ 
+-- 
+2.25.1
+
diff --git a/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0011-fix-header_module.patch b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0011-fix-header_module.patch
new file mode 100644
index 00000000000..4358097dddf
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0011-fix-header_module.patch
@@ -0,0 +1,25 @@
+From 4c488fdb457e63924383fb7f8ad45bed3df49480 Mon Sep 17 00:00:00 2001
+From: Will Dietz <w@wdtz.org>
+Date: Mon, 30 Sep 2019 20:15:40 -0500
+Subject: [PATCH 10/10] fix header_module
+
+---
+ mkspecs/features/qt_module.prf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
+index 16b39031bc..1ac3d6fe59 100644
+--- a/mkspecs/features/qt_module.prf
++++ b/mkspecs/features/qt_module.prf
+@@ -84,7 +84,7 @@ header_module {
+         CONFIG  += qt_no_install_library
+ 
+     # Allow creation of .prl, .la and .pc files.
+-    target.path = $$[QT_INSTALL_LIBS]
++    target.path = $$NIX_OUTPUT_OUT/lib
+     target.CONFIG += dummy_install
+     INSTALLS    += target
+ } else {
+-- 
+2.25.1
+
diff --git a/pkgs/development/libraries/qt-5/5.14/qtdeclarative.patch b/pkgs/development/libraries/qt-5/5.14/qtdeclarative.patch
new file mode 100644
index 00000000000..8f5b5d4790f
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtdeclarative.patch
@@ -0,0 +1,33 @@
+diff --git a/src/qml/qml/qqmlimport.cpp b/src/qml/qml/qqmlimport.cpp
+index 005db4248..685c5b1b2 100644
+--- a/src/qml/qml/qqmlimport.cpp
++++ b/src/qml/qml/qqmlimport.cpp
+@@ -1760,6 +1760,15 @@ QQmlImportDatabase::QQmlImportDatabase(QQmlEngine *e)
+     QString installImportsPath =  QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath);
+     addImportPath(installImportsPath);
+ 
++    // Add import paths derived from PATH
++    const QStringList paths = QFile::decodeName(qgetenv("PATH")).split(':');
++    const QString qmldir = QStringLiteral("../" NIXPKGS_QML2_IMPORT_PREFIX);
++    for (const QString &path: paths) {
++        if (!path.isEmpty()) {
++            addImportPath(QDir::cleanPath(path + QDir::separator() + qmldir));
++        }
++    }
++
+     // env import paths
+     if (Q_UNLIKELY(!qEnvironmentVariableIsEmpty("QML2_IMPORT_PATH"))) {
+         const QString envImportPath = qEnvironmentVariable("QML2_IMPORT_PATH");
+diff --git a/tools/qmlcachegen/qmlcache.prf b/tools/qmlcachegen/qmlcache.prf
+index 537eaf62e..e21de58f6 100644
+--- a/tools/qmlcachegen/qmlcache.prf
++++ b/tools/qmlcachegen/qmlcache.prf
+@@ -26,7 +26,7 @@ defineReplace(qmlCacheOutputFileName) {
+ }
+ 
+ qmlcacheinst.base = $$QMLCACHE_DESTDIR
+-qmlcacheinst.path = $$[QT_INSTALL_QML]/$$TARGETPATH
++qmlcacheinst.path = $$NIX_OUTPUT_QML/$$TARGETPATH
+ qmlcacheinst.CONFIG = no_check_exist
+ 
+ qmlcachegen.input = CACHEGEN_FILES
diff --git a/pkgs/development/libraries/qt-5/5.14/qtscript.patch b/pkgs/development/libraries/qt-5/5.14/qtscript.patch
new file mode 100644
index 00000000000..5508dec1280
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtscript.patch
@@ -0,0 +1,13 @@
+diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
+index 1f6d25e..087c3fb 100644
+--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
++++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
+@@ -81,7 +81,7 @@
+ #include <pthread.h>
+ #elif PLATFORM(GTK)
+ #include <wtf/gtk/GOwnPtr.h>
+-typedef struct _GMutex GMutex;
++typedef union _GMutex GMutex;
+ typedef struct _GCond GCond;
+ #endif
+ 
diff --git a/pkgs/development/libraries/qt-5/5.14/qtserialport.patch b/pkgs/development/libraries/qt-5/5.14/qtserialport.patch
new file mode 100644
index 00000000000..f25524e80bc
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtserialport.patch
@@ -0,0 +1,22 @@
+diff --git a/src/serialport/qtudev_p.h b/src/serialport/qtudev_p.h
+index af2dab2..8e17f64 100644
+--- a/src/serialport/qtudev_p.h
++++ b/src/serialport/qtudev_p.h
+@@ -111,9 +111,17 @@ inline QFunctionPointer resolveSymbol(QLibrary *udevLibrary, const char *symbolN
+ inline bool resolveSymbols(QLibrary *udevLibrary)
+ {
+     if (!udevLibrary->isLoaded()) {
++#ifdef NIXPKGS_LIBUDEV
++        udevLibrary->setFileNameAndVersion(QLatin1String(NIXPKGS_LIBUDEV), 1);
++#else
+         udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 1);
++#endif
+         if (!udevLibrary->load()) {
++#ifdef NIXPKGS_LIBUDEV
++            udevLibrary->setFileNameAndVersion(QLatin1String(NIXPKGS_LIBUDEV), 0);
++#else
+             udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 0);
++#endif
+             if (!udevLibrary->load()) {
+                 qWarning("Failed to load the library: %s, supported version(s): %i and %i", qPrintable(udevLibrary->fileName()), 1, 0);
+                 return false;
diff --git a/pkgs/development/libraries/qt-5/5.14/qttools.patch b/pkgs/development/libraries/qt-5/5.14/qttools.patch
new file mode 100644
index 00000000000..8ae12198ca2
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qttools.patch
@@ -0,0 +1,15 @@
+--- a/src/macdeployqt/shared/shared.cpp
++++ b/src/macdeployqt/shared/shared.cpp
+@@ -1241,6 +1241,12 @@ bool deployQmlImports(const QString &appBundlePath, DeploymentInfo deploymentInf
+     if (!QFile(qmlImportScannerPath).exists())
+         qmlImportScannerPath = QCoreApplication::applicationDirPath() + "/qmlimportscanner";
+ 
++#ifdef NIXPKGS_QMLIMPORTSCANNER
++    // Fallback: Nixpkgs hardcoded path
++    if (!QFile(qmlImportScannerPath).exists())
++        qmlImportScannerPath = NIXPKGS_QMLIMPORTSCANNER;
++#endif
++
+     // Verify that we found a qmlimportscanner binary
+     if (!QFile(qmlImportScannerPath).exists()) {
+         LogError() << "qmlimportscanner not found at" << qmlImportScannerPath;
diff --git a/pkgs/development/libraries/qt-5/5.14/qtwebengine-darwin-no-platform-check.patch b/pkgs/development/libraries/qt-5/5.14/qtwebengine-darwin-no-platform-check.patch
new file mode 100644
index 00000000000..546e753144d
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtwebengine-darwin-no-platform-check.patch
@@ -0,0 +1,33 @@
+diff --git a/mkspecs/features/platform.prf b/mkspecs/features/platform.prf
+--- a/mkspecs/features/platform.prf
++++ b/mkspecs/features/platform.prf
+@@ -40,8 +40,6 @@ defineTest(isPlatformSupported) {
+   } else:osx {
+     # FIXME: Try to get it back down to 8.2 for building on OS X 10.11
+     !isMinXcodeVersion(8, 3, 3) {
+-      skipBuild("Using Xcode version $$QMAKE_XCODE_VERSION, but at least version 8.3.3 is required to build Qt WebEngine.")
+-      return(false)
+     }
+     !clang|intel_icc {
+         skipBuild("Qt WebEngine on macOS requires Clang.")
+@@ -54,8 +52,6 @@ defineTest(isPlatformSupported) {
+       return(false)
+     }
+     !isMinOSXSDKVersion(10, 12): {
+-      skipBuild("Building Qt WebEngine requires a macOS SDK version of 10.12 or newer. Current version is $${WEBENGINE_OSX_SDK_PRODUCT_VERSION}.")
+-      return(false)
+     }
+   } else {
+     skipBuild("Unknown platform. Qt WebEngine only supports Linux, Windows, and macOS.")
+diff --git a/src/core/config/mac_osx.pri b/src/core/config/mac_osx.pri
+--- a/src/core/config/mac_osx.pri
++++ b/src/core/config/mac_osx.pri
+@@ -5,8 +5,6 @@ load(functions)
+ # otherwise query for it.
+ QMAKE_MAC_SDK_VERSION = $$eval(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.SDKVersion)
+ isEmpty(QMAKE_MAC_SDK_VERSION) {
+-     QMAKE_MAC_SDK_VERSION = $$system("/usr/bin/xcodebuild -sdk $${QMAKE_MAC_SDK} -version SDKVersion 2>/dev/null")
+-     isEmpty(QMAKE_MAC_SDK_VERSION): error("Could not resolve SDK version for \'$${QMAKE_MAC_SDK}\'")
+ }
+
+ QMAKE_CLANG_DIR = "/usr"
diff --git a/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-qos-classes.patch b/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-qos-classes.patch
new file mode 100644
index 00000000000..a7087f51762
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-qos-classes.patch
@@ -0,0 +1,11 @@
+diff --git a/Source/cmake/OptionsQt.cmake b/Source/cmake/OptionsQt.cmake
+--- a/Source/cmake/OptionsQt.cmake
++++ b/Source/cmake/OptionsQt.cmake
+@@ -683,7 +683,6 @@ if (WIN32 AND COMPILER_IS_GCC_OR_CLANG)
+ endif ()
+ 
+ if (APPLE)
+-    SET_AND_EXPOSE_TO_BUILD(HAVE_QOS_CLASSES 1)
+ endif ()
+ 
+ if (ENABLE_MATHML)
diff --git a/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch b/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch
new file mode 100644
index 00000000000..26d189d8601
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch
@@ -0,0 +1,45 @@
+diff --git a/Source/JavaScriptCore/shell/CMakeLists.txt b/Source/JavaScriptCore/shell/CMakeLists.txt
+--- a/Source/JavaScriptCore/shell/CMakeLists.txt
++++ b/Source/JavaScriptCore/shell/CMakeLists.txt
+@@ -9,7 +9,6 @@ set(JSC_LIBRARIES
+ )
+ 
+ if (WTF_OS_MAC_OS_X)
+-    list(APPEND JSC_LIBRARIES edit)
+ endif ()
+ 
+ if ("${JavaScriptCore_LIBRARY_TYPE}" MATCHES "STATIC")
+diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
+--- a/Source/WTF/wtf/Platform.h
++++ b/Source/WTF/wtf/Platform.h
+@@ -563,7 +563,6 @@
+ #if PLATFORM(IOS)
+ 
+ #define HAVE_NETWORK_EXTENSION 1
+-#define HAVE_READLINE 1
+ #if USE(APPLE_INTERNAL_SDK)
+ #define USE_CFNETWORK 1
+ #endif
+@@ -650,7 +649,6 @@
+ #define HAVE_MADV_DONTNEED 1
+ #define HAVE_MERGESORT 1
+ #define HAVE_PTHREAD_SETNAME_NP 1
+-#define HAVE_READLINE 1
+ #define HAVE_SYS_TIMEB_H 1
+ 
+ #if !PLATFORM(GTK) && !PLATFORM(QT)
+diff --git a/Source/WTF/wtf/PlatformMac.cmake b/Source/WTF/wtf/PlatformMac.cmake
+--- a/Source/WTF/wtf/PlatformMac.cmake
++++ b/Source/WTF/wtf/PlatformMac.cmake
+@@ -2,11 +2,9 @@ set(WTF_LIBRARY_TYPE SHARED)
+ 
+ find_library(COCOA_LIBRARY Cocoa)
+ find_library(COREFOUNDATION_LIBRARY CoreFoundation)
+-find_library(READLINE_LIBRARY Readline)
+ list(APPEND WTF_LIBRARIES
+     ${COREFOUNDATION_LIBRARY}
+     ${COCOA_LIBRARY}
+-    ${READLINE_LIBRARY}
+     libicucore.dylib
+ )
+ 
diff --git a/pkgs/development/libraries/qt-5/5.14/qtwebkit.patch b/pkgs/development/libraries/qt-5/5.14/qtwebkit.patch
new file mode 100644
index 00000000000..b94a4b76cba
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtwebkit.patch
@@ -0,0 +1,12 @@
+diff --git a/Source/WebKit2/PlatformQt.cmake b/Source/WebKit2/PlatformQt.cmake
+--- a/Source/WebKit2/PlatformQt.cmake
++++ b/Source/WebKit2/PlatformQt.cmake
+@@ -261,6 +261,7 @@
+ list(APPEND WebKit2_SYSTEM_INCLUDE_DIRECTORIES
+     ${GLIB_INCLUDE_DIRS}
+     ${GSTREAMER_INCLUDE_DIRS}
++    ${GSTREAMER_PBUTILS_INCLUDE_DIRS}
+     ${Qt5Quick_INCLUDE_DIRS}
+     ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
+     ${SQLITE_INCLUDE_DIR}
+
diff --git a/pkgs/development/libraries/qt-5/5.14/srcs.nix b/pkgs/development/libraries/qt-5/5.14/srcs.nix
new file mode 100644
index 00000000000..6ac958442f4
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/srcs.nix
@@ -0,0 +1,342 @@
+# DO NOT EDIT! This file is generated automatically.
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/5.14
+{ fetchurl, mirror }:
+
+{
+  qt3d = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qt3d-everywhere-src-5.14.2.tar.xz";
+      sha256 = "9da82f1cc4b7d416d31ec96224c59d221473a48f6e579eef978f7d2e3932c674";
+      name = "qt3d-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtactiveqt = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtactiveqt-everywhere-src-5.14.2.tar.xz";
+      sha256 = "b53517d5d128719773a2941ba52da10acd7aa3149948862bc08c98f5b64152a9";
+      name = "qtactiveqt-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtandroidextras = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtandroidextras-everywhere-src-5.14.2.tar.xz";
+      sha256 = "4a8fd92b5c49a663cf0bd492804eaf1574d11137e2cbdd41d6bf5fad0c3c4d76";
+      name = "qtandroidextras-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtbase = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtbase-everywhere-src-5.14.2.tar.xz";
+      sha256 = "48b9e79220941665a9dd827548c6428f7aa3052ccba8f4f7e039a94aa1d2b28a";
+      name = "qtbase-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtcharts = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtcharts-everywhere-src-5.14.2.tar.xz";
+      sha256 = "adb25203ea748d886cc3d8993c20def702115eccea311594592058134ba83bb7";
+      name = "qtcharts-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtconnectivity = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtconnectivity-everywhere-src-5.14.2.tar.xz";
+      sha256 = "abe67b3e3a775e2a2e27c62a5391f37007ffbe72bce58b96116995616cfcbc28";
+      name = "qtconnectivity-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtdatavis3d = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtdatavis3d-everywhere-src-5.14.2.tar.xz";
+      sha256 = "723c03db2d2805b1be4ca534ac7bc867a1a21894d33a7e9261a382f3fa9d0e20";
+      name = "qtdatavis3d-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtdeclarative = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtdeclarative-everywhere-src-5.14.2.tar.xz";
+      sha256 = "a3c4617adc9760347c93d2eb6c25d22f620cd22f44afa0494eb499a805831650";
+      name = "qtdeclarative-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtdoc = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtdoc-everywhere-src-5.14.2.tar.xz";
+      sha256 = "5a55cdb55af35eb222d06179567851c175f24a3732f7dee5be073df4a893172b";
+      name = "qtdoc-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtgamepad = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtgamepad-everywhere-src-5.14.2.tar.xz";
+      sha256 = "f77daadb4755cf760e11812264259fb103396fd1b06df1e06b5df162081c8d03";
+      name = "qtgamepad-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtgraphicaleffects = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtgraphicaleffects-everywhere-src-5.14.2.tar.xz";
+      sha256 = "487a7f858244a08264363733055a8cf8b00e77c658c5608cc462817d15e4b50f";
+      name = "qtgraphicaleffects-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtimageformats = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtimageformats-everywhere-src-5.14.2.tar.xz";
+      sha256 = "733eca0165c15e046b106039c989dac7f6bc2ecf215396d965ed065369264f8c";
+      name = "qtimageformats-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtlocation = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtlocation-everywhere-src-5.14.2.tar.xz";
+      sha256 = "c37708bc396f6dac397b49a6a268d5edb39e1c8296ca2337ce9e80bde04775cc";
+      name = "qtlocation-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtlottie = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtlottie-everywhere-src-5.14.2.tar.xz";
+      sha256 = "55d1392dc92cbec11263084360075dc5fc3fdc25c1969adfbdec84299b285978";
+      name = "qtlottie-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtmacextras = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtmacextras-everywhere-src-5.14.2.tar.xz";
+      sha256 = "d12587b46c84a7822194fc3ccf46f7c18ff3b31566d3dde4f5fe772f1d8776e5";
+      name = "qtmacextras-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtmultimedia = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtmultimedia-everywhere-src-5.14.2.tar.xz";
+      sha256 = "7acd8ede6835314206e407b35b668f0add67544577fb51fe67afb03137fb9fe9";
+      name = "qtmultimedia-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtnetworkauth = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtnetworkauth-everywhere-src-5.14.2.tar.xz";
+      sha256 = "4f00513dd18598487d02187b80b54c669662cf8a8f2573858c7f9282d7b9265e";
+      name = "qtnetworkauth-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtpurchasing = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtpurchasing-everywhere-src-5.14.2.tar.xz";
+      sha256 = "69b087001e8fcec5bb49ca333d5f44e6b7eb09f76421dc792fc9cd76dee9e851";
+      name = "qtpurchasing-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtquick3d = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtquick3d-everywhere-src-5.14.2.tar.xz";
+      sha256 = "0640696d501f2b0bf57f64e98f30bfa3e1cc19c11c0e05e43d4fdb0d20488b2e";
+      name = "qtquick3d-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtquickcontrols = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtquickcontrols-everywhere-src-5.14.2.tar.xz";
+      sha256 = "d55def1dd4ee1250bd6a4e76849f4e362368b6411c2216d5f669c761216d4461";
+      name = "qtquickcontrols-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtquickcontrols2 = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtquickcontrols2-everywhere-src-5.14.2.tar.xz";
+      sha256 = "faf7d349d8f4a8db36cd3c62a5724bcf689300f2fdb7dc1ea034392aab981560";
+      name = "qtquickcontrols2-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtquicktimeline = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtquicktimeline-everywhere-src-5.14.2.tar.xz";
+      sha256 = "83a45d0998cbc77f8094854a477ab1ac0838ae7fd822563d995df40149893a9e";
+      name = "qtquicktimeline-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtremoteobjects = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtremoteobjects-everywhere-src-5.14.2.tar.xz";
+      sha256 = "a6a601c4f4aab6fe41a462dae57033819f697e3317240a382cee45c08be614d6";
+      name = "qtremoteobjects-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtscript = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtscript-everywhere-src-5.14.2.tar.xz";
+      sha256 = "e9fd487ccb3cbf00e86b0b803aa79e9f6bbe7a337b8e97d069e040c3e0789bfe";
+      name = "qtscript-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtscxml = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtscxml-everywhere-src-5.14.2.tar.xz";
+      sha256 = "030cea352a56074f577200f967ef37c959b2767127de61f766f59b0d99763790";
+      name = "qtscxml-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtsensors = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtsensors-everywhere-src-5.14.2.tar.xz";
+      sha256 = "bccfca6910b0383d8f65823496ff5011abed2fa8fd446b4b27333d0fd7bb8c61";
+      name = "qtsensors-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtserialbus = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtserialbus-everywhere-src-5.14.2.tar.xz";
+      sha256 = "0b7762175a649a40c4dd619c5de61d772235dc86099343278e2c3229d0836a91";
+      name = "qtserialbus-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtserialport = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtserialport-everywhere-src-5.14.2.tar.xz";
+      sha256 = "a6d977dd723ad4d3368b5163691405b8852f809974a96ec54103494e834aea21";
+      name = "qtserialport-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtspeech = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtspeech-everywhere-src-5.14.2.tar.xz";
+      sha256 = "5e9e8ea62f0207ba894df1e136df0af9fc5443c7817d28c39f0ea2bbae9ec6da";
+      name = "qtspeech-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtsvg = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtsvg-everywhere-src-5.14.2.tar.xz";
+      sha256 = "c7d7faa01a3e7a6e4d38fafcec5529a488258218749779e6fa0e09a21173b5a1";
+      name = "qtsvg-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qttools = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qttools-everywhere-src-5.14.2.tar.xz";
+      sha256 = "5bb0cf7832b88eb6bc9d4289f98307eb14b16a453ad6cf42cca13c4fe1a053c5";
+      name = "qttools-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qttranslations = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qttranslations-everywhere-src-5.14.2.tar.xz";
+      sha256 = "2088ebee9f5dd0336c9fd11436899a95b7ce0141ce072290de1e8f315d82d1a6";
+      name = "qttranslations-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtvirtualkeyboard = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtvirtualkeyboard-everywhere-src-5.14.2.tar.xz";
+      sha256 = "364f3338563e617e7c964a37170b415b546c5f82965e781271f9dada3e3868d7";
+      name = "qtvirtualkeyboard-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtwayland = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtwayland-everywhere-src-5.14.2.tar.xz";
+      sha256 = "d31633ca718fb407cf70870613d45d0ed80aa04c058586ac3036bae1aff7832a";
+      name = "qtwayland-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtwebchannel = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtwebchannel-everywhere-src-5.14.2.tar.xz";
+      sha256 = "7d1dc8441523638c3d455c7d408ec65aebc073acab80e24063865f929231f874";
+      name = "qtwebchannel-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtwebengine = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtwebengine-everywhere-src-5.14.2.tar.xz";
+      sha256 = "e169d6a75d8c397e04f843bc1b9585950fb9a001255cd18d6293f66fa8a6c947";
+      name = "qtwebengine-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtwebglplugin = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtwebglplugin-everywhere-src-5.14.2.tar.xz";
+      sha256 = "eb4118910b65d03d8448658ac1646e860d337e59b82d6575beda21824e313417";
+      name = "qtwebglplugin-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtwebsockets = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtwebsockets-everywhere-src-5.14.2.tar.xz";
+      sha256 = "f06e62b18313fe1b40a35566e79645de4a8e7ac9f7717d1d98a06c5b49afca84";
+      name = "qtwebsockets-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtwebview = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtwebview-everywhere-src-5.14.2.tar.xz";
+      sha256 = "c61f9213ee84fd7408898c0194468208ffb51af9d257e87e6b53daf24f65ff4b";
+      name = "qtwebview-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtwinextras = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtwinextras-everywhere-src-5.14.2.tar.xz";
+      sha256 = "980f1bc31b37c8597c0bac55f69ecf00d1677218ce82f7bc3933236cb6d907f2";
+      name = "qtwinextras-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtx11extras = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtx11extras-everywhere-src-5.14.2.tar.xz";
+      sha256 = "be9a84a03a2ee81771215264e5dff7a996d04be6192b8cdaa1d41e319a81545a";
+      name = "qtx11extras-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtxmlpatterns = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtxmlpatterns-everywhere-src-5.14.2.tar.xz";
+      sha256 = "219a876665345e3801baff71f31f30f5495c1cb9ab23fbbd27602632c80fcfb7";
+      name = "qtxmlpatterns-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+}
diff --git a/pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh b/pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh
index 5acaeb82446..6aaeda052d7 100644
--- a/pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh
+++ b/pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh
@@ -5,8 +5,19 @@
 fixQmakeLibtool() {
     if [ -d "$1" ]; then
         find "$1" -name '*.la' | while read la; do
+            set +e
+            framework_libs=$(grep '^dependency_libs' "$la" | grep -Eo -- '-framework +\w+' | tr '\n' ' ')
+            set -e
             sed -i "$la" \
-                -e '/^dependency_libs/ s,\(/[^ ]\+\)/lib\([^/ ]\+\)\.so,-L\1 -l\2,g'
+                -e '/^dependency_libs/ s,\(/[^ ]\+\)/lib\([^/ ]\+\)\.so,-L\1 -l\2,g' \
+                -e '/^dependency_libs/ s,-framework \+\w\+,,g'
+            if [ ! -z "$framework_libs" ]; then
+                if grep '^inherited_linker_flags=' $la >/dev/null; then
+                    sed -i "$la" -e "s/^\(inherited_linker_flags='[^']*\)/\1 $framework_libs/"
+                else
+                    echo "inherited_linker_flags='$framework_libs'" >> "$la"
+                fi
+            fi
         done
     fi
 }
diff --git a/pkgs/development/libraries/qt-5/modules/qtbase.nix b/pkgs/development/libraries/qt-5/modules/qtbase.nix
index a4c12793abb..3cbcaaacefb 100644
--- a/pkgs/development/libraries/qt-5/modules/qtbase.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtbase.nix
@@ -8,7 +8,7 @@
   darwin, libiconv,
 
   dbus, fontconfig, freetype, glib, harfbuzz, icu, libX11, libXcomposite,
-  libXcursor, libXext, libXi, libXrender, libinput, libjpeg, libpng, libtiff,
+  libXcursor, libXext, libXi, libXrender, libinput, libjpeg, libpng,
   libxcb, libxkbcommon, libxml2, libxslt, openssl, pcre16, pcre2, sqlite, udev,
   xcbutil, xcbutilimage, xcbutilkeysyms, xcbutilrenderutil, xcbutilwm,
   zlib,
@@ -48,7 +48,7 @@ stdenv.mkDerivation {
       harfbuzz icu
 
       # Image formats
-      libjpeg libpng libtiff
+      libjpeg libpng
       (if compareVersion "5.9.0" < 0 then pcre16 else pcre2)
     ]
     ++ (
@@ -255,18 +255,18 @@ stdenv.mkDerivation {
       "-no-warnings-are-errors"
     ]
     ++ (
-      if (!stdenv.hostPlatform.isx86_64)
-      then [ "-no-sse2" ]
-      else lib.optionals (compareVersion "5.9.0" >= 0) {
-        default        = [ "-sse2" "-no-sse3" "-no-ssse3" "-no-sse4.1" "-no-sse4.2" "-no-avx" "-no-avx2" ];
-        westmere       = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2" "-no-avx" "-no-avx2" ];
-        sandybridge    = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx" "-no-avx2" ];
-        ivybridge      = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx" "-no-avx2" ];
-        haswell        = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx"    "-avx2" ];
-        broadwell      = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx"    "-avx2" ];
-        skylake        = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx"    "-avx2" ];
-        skylake-avx512 = [ "-sse2"    "-sse3"    "-ssse3"    "-sse4.1"    "-sse4.2"    "-avx"    "-avx2" ];
-      }.${stdenv.hostPlatform.platform.gcc.arch or "default"}
+      if (!stdenv.hostPlatform.isx86_64) then [
+        "-no-sse2"
+      ] else if (compareVersion "5.9.0" >= 0) then [
+        "-sse2"
+        "${if stdenv.hostPlatform.sse3Support   then "" else "-no"}-sse3"
+        "${if stdenv.hostPlatform.ssse3Support  then "" else "-no"}-ssse3"
+        "${if stdenv.hostPlatform.sse4_1Support then "" else "-no"}-sse4.1"
+        "${if stdenv.hostPlatform.sse4_2Support then "" else "-no"}-sse4.2"
+        "${if stdenv.hostPlatform.avxSupport    then "" else "-no"}-avx"
+        "${if stdenv.hostPlatform.avx2Support   then "" else "-no"}-avx2"
+      ] else [
+      ]
     )
     ++ [
       "-no-mips_dsp"
diff --git a/pkgs/development/libraries/qt-5/modules/qtimageformats.nix b/pkgs/development/libraries/qt-5/modules/qtimageformats.nix
index 1a7726070be..9c80507b7c7 100644
--- a/pkgs/development/libraries/qt-5/modules/qtimageformats.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtimageformats.nix
@@ -1,6 +1,7 @@
-{ qtModule, qtbase }:
+{ qtModule, qtbase, libtiff }:
 
 qtModule {
   name = "qtimageformats";
   qtInputs = [ qtbase ];
+  propagatedBuildInputs = [ libtiff ];
 }
diff --git a/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix b/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix
index d0bab88b2f2..42ed23bb6dc 100644
--- a/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix
@@ -1,5 +1,5 @@
 { qtModule, stdenv, qtbase, qtdeclarative, pkgconfig
-, alsaLib, gstreamer, gst-plugins-base, libpulseaudio
+, alsaLib, gstreamer, gst-plugins-base, libpulseaudio, wayland
 }:
 
 with stdenv.lib;
@@ -8,8 +8,9 @@ qtModule {
   name = "qtmultimedia";
   qtInputs = [ qtbase qtdeclarative ];
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gstreamer gst-plugins-base libpulseaudio]
-    ++ optional (stdenv.isLinux) alsaLib;
+  buildInputs = [ gstreamer gst-plugins-base libpulseaudio ]
+    ++ optional (stdenv.isLinux) alsaLib
+    ++ optional (versionAtLeast qtbase.version "5.14.0" && stdenv.isLinux) wayland;
   outputs = [ "bin" "dev" "out" ];
   qmakeFlags = [ "GST_VERSION=1.0" ];
   NIX_LDFLAGS = optionalString (stdenv.isDarwin) "-lobjc";
diff --git a/pkgs/development/libraries/qt-5/modules/qtserialbus.nix b/pkgs/development/libraries/qt-5/modules/qtserialbus.nix
new file mode 100644
index 00000000000..48968a254c6
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/modules/qtserialbus.nix
@@ -0,0 +1,6 @@
+{ qtModule, qtbase, qtserialport }:
+
+qtModule {
+  name = "qtserialbus";
+  qtInputs = [ qtbase qtserialport ];
+}
diff --git a/pkgs/development/libraries/qt-5/modules/qttools.nix b/pkgs/development/libraries/qt-5/modules/qttools.nix
index c38eb0105e1..fae90972978 100644
--- a/pkgs/development/libraries/qt-5/modules/qttools.nix
+++ b/pkgs/development/libraries/qt-5/modules/qttools.nix
@@ -11,6 +11,8 @@ qtModule {
   postPatch = ''
     sed -i "src/linguist/linguist.pro" \
         -e '/^cmake_linguist_config_version_file.input =/ s|$$\[QT_HOST_DATA.*\]|${getDev qtbase}|'
+    sed -i "src/qtattributionsscanner/qtattributionsscanner.pro" \
+        -e '/^cmake_qattributionsscanner_config_version_file.input =/ s|$$\[QT_HOST_DATA.*\]|${getDev qtbase}|'
   '';
 
   devTools = [
@@ -20,14 +22,18 @@ qtModule {
     "bin/qdoc"
     "bin/lconvert"
     "bin/designer"
-    "bin/qtattributesscanner"
+    "bin/qtattributionsscanner"
     "bin/lrelease"
+    "bin/lrelease-pro"
     "bin/pixeltool"
     "bin/lupdate"
+    "bin/lupdate-pro"
     "bin/qtdiag"
     "bin/qhelpgenerator"
     "bin/qtplugininfo"
     "bin/qthelpconverter"
+    "bin/lprodump"
+    "bin/qdistancefieldgenerator"
   ] ++ optionals stdenv.isDarwin [
     "bin/macdeployqt"
   ];
diff --git a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
index 512060701e2..049b0349a4f 100644
--- a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
@@ -13,9 +13,9 @@
 , systemd
 , enableProprietaryCodecs ? true
 , gn
-, cups, darwin, openbsm, runCommand, xcbuild
+, cups, darwin, openbsm, runCommand, xcbuild, writeScriptBin
 , ffmpeg_3 ? null
-, lib, stdenv
+, lib, stdenv, fetchpatch
 }:
 
 with stdenv.lib;
@@ -38,6 +38,17 @@ qtModule {
   # which cannot be set at the same time as -Wformat-security
   hardeningDisable = [ "format" ];
 
+  patches = [
+    # Fix build with bison-3.7: https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?id=1a53f599
+    (fetchpatch {
+      name = "qtwebengine-bison-3.7-build.patch";
+      url = "https://code.qt.io/cgit/qt/qtwebengine-chromium.git/patch/?id=1a53f599";
+      sha256 = "1nqpyn5fq37q7i9nasag6i14lnz0d7sld5ikqhlm8qwq9d7gbmjy";
+      stripLen = 1;
+      extraPrefix = "src/3rdparty/";
+    })
+  ];
+
   postPatch =
     # Patch Chromium build tools
     ''
@@ -51,6 +62,13 @@ qtModule {
       substituteInPlace ./src/3rdparty/chromium/v8/gypfiles/standalone.gypi \
         --replace /bin/echo ${coreutils}/bin/echo
     ''
+    # 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`
+    # from `src/core/config/mac_osx.pri`.
+    + optionalString stdenv.isDarwin ''
+      substituteInPlace ./src/3rdparty/chromium/build/toolchain/mac/BUILD.gn \
+        --replace 'prefix = rebase_path("$clang_base_path/bin/", root_build_dir)' 'prefix = "$clang_base_path/bin/"'
+    ''
     # Patch library paths in Qt sources
     + ''
       sed -i \
@@ -61,7 +79,7 @@ qtModule {
     ''
     # Patch library paths in Chromium sources
     + optionalString (!stdenv.isDarwin) ''
-      sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${systemd.lib}/lib/\1!' \
+      sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \
         src/3rdparty/chromium/device/udev_linux/udev?_loader.cc
 
       sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
@@ -69,32 +87,15 @@ qtModule {
     ''
     + optionalString stdenv.isDarwin (''
       substituteInPlace src/core/config/mac_osx.pri \
-        --replace /usr ${stdenv.cc}
+        --replace 'QMAKE_CLANG_DIR = "/usr"' 'QMAKE_CLANG_DIR = "${stdenv.cc}"'
     ''
+     # Following is required to prevent a build error:
+     # ninja: error: '/nix/store/z8z04p0ph48w22rqzx7ql67gy8cyvidi-SDKs/MacOSX10.12.sdk/usr/include/mach/exc.defs', needed by 'gen/third_party/crashpad/crashpad/util/mach/excUser.c', missing and no known rule to make it
     + (optionalString (lib.versionAtLeast qtCompatVersion "5.11") ''
       substituteInPlace src/3rdparty/chromium/third_party/crashpad/crashpad/util/BUILD.gn \
         --replace '$sysroot/usr' "${darwin.xnu}"
     '')
     + ''
-
-    cat <<EOF > src/3rdparty/chromium/build/mac/find_sdk.py
-#!/usr/bin/env python
-print("${darwin.apple_sdk.sdk}")
-print("10.12.0")
-EOF
-
-    cat <<EOF > src/3rdparty/chromium/build/config/mac/sdk_info.py
-#!/usr/bin/env python
-print('xcode_version="0910"')
-print('xcode_version_int=910')
-print('xcode_build="9B55"')
-print('machine_os_build="17E199"')
-print('sdk_path=""')
-print('sdk_version="10.10"')
-print('sdk_platform_path=""')
-print('sdk_build="17B41"')
-EOF
-
     # Apple has some secret stuff they don't share with OpenBSM
     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]"
@@ -111,8 +112,8 @@ EOF
     # TODO: investigate and fix properly
     "-march=westmere"
   ] ++ lib.optionals stdenv.isDarwin [
-    "-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_10"
-    "-DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_10"
+    "-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_12"
+    "-DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_12"
 
     #
     # Prevent errors like
@@ -189,6 +190,7 @@ EOF
     CoreWLAN
     Quartz
     Cocoa
+    LocalAuthentication
 
     openbsm
     libunwind
@@ -197,6 +199,21 @@ EOF
   buildInputs = optionals stdenv.isDarwin (with darwin; [
     cups
 
+    # `sw_vers` is used by `src/3rdparty/chromium/build/config/mac/sdk_info.py`
+    # to get some information about the host platform.
+    (writeScriptBin "sw_vers" ''
+      #!${stdenv.shell}
+
+      while [ $# -gt 0 ]; do
+        case "$1" in
+          -buildVersion) echo "17E199";;
+        *) break ;;
+
+        esac
+        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
diff --git a/pkgs/development/libraries/quazip/default.nix b/pkgs/development/libraries/quazip/default.nix
index 4ca3be7fe79..c399298b8f8 100644
--- a/pkgs/development/libraries/quazip/default.nix
+++ b/pkgs/development/libraries/quazip/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "quazip";
-  version = "0.9";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "stachenov";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0psvf3d9akyyx3bckc9325nmbp97xiagf8la4vhca5xn2f430fbn";
+    sha256 = "11icgwv2xyxhd1hm1add51xv54zwkcqkg85d1xqlgiigvbm196iq";
   };
 
   buildInputs = [ zlib qtbase ];
diff --git a/pkgs/development/libraries/qwt/6.nix b/pkgs/development/libraries/qwt/6.nix
index 54af3f3084a..1a29bb90fbb 100644
--- a/pkgs/development/libraries/qwt/6.nix
+++ b/pkgs/development/libraries/qwt/6.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, qtbase, qtsvg, qttools, qmake }:
 
 stdenv.mkDerivation rec {
-  name = "qwt-6.1.4";
+  name = "qwt-6.1.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/qwt/${name}.tar.bz2";
-    sha256 = "1navkcnmn0qz8kzsyqmk32d929zl72l0b580w1ica7z5559j2a8m";
+    sha256 = "0hf0mpca248xlqn7xnzkfj8drf19gdyg5syzklvq8pibxiixwxj0";
   };
 
   propagatedBuildInputs = [ qtbase qtsvg qttools ];
diff --git a/pkgs/development/libraries/qwt/6_qt4.nix b/pkgs/development/libraries/qwt/6_qt4.nix
index 04bc0d7ed22..4b7aa9cf7f9 100644
--- a/pkgs/development/libraries/qwt/6_qt4.nix
+++ b/pkgs/development/libraries/qwt/6_qt4.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, qt4, qmake4Hook, AGL }:
 
 stdenv.mkDerivation rec {
-  name = "qwt-6.1.4";
+  name = "qwt-6.1.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/qwt/${name}.tar.bz2";
-    sha256 = "1navkcnmn0qz8kzsyqmk32d929zl72l0b580w1ica7z5559j2a8m";
+    sha256 = "0hf0mpca248xlqn7xnzkfj8drf19gdyg5syzklvq8pibxiixwxj0";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/raft-canonical/default.nix b/pkgs/development/libraries/raft-canonical/default.nix
index ed3d7ae9e70..68c4a95d0b6 100644
--- a/pkgs/development/libraries/raft-canonical/default.nix
+++ b/pkgs/development/libraries/raft-canonical/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "raft-canonical";
-  version = "0.9.18";
+  version = "0.9.23";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = "raft";
     rev = "v${version}";
-    sha256 = "0f613aiyxqskz9d10f7r37ar9ngqsf9qsyk3jjf7s5l14wh6vl5k";
+    sha256 = "0swn95cf11fqczllmxr0nj3ig532rw4n3w6g3ckdnqka8520xjyr";
   };
 
   nativeBuildInputs = [ autoreconfHook file pkgconfig ];
@@ -18,13 +18,7 @@ stdenv.mkDerivation rec {
     substituteInPlace configure --replace /usr/bin/ " "
   '';
 
-  # test fails
-  #
-  #append/finalizeSegment                                      [ ERROR ]
-  #Error: test/integration/test_uv_append.c:264: assertion failed: test_dir_has_file(f->dir, "0000000000000001-0000000000000004") is not true
-  #Error: child killed by signal 6 (Aborted)
-
-  doCheck = false;
+  doCheck = true;
 
   outputs = [ "dev" "out" ];
 
diff --git a/pkgs/development/libraries/randomx/default.nix b/pkgs/development/libraries/randomx/default.nix
index 5b0c2b8a657..6de7ecdfef3 100644
--- a/pkgs/development/libraries/randomx/default.nix
+++ b/pkgs/development/libraries/randomx/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "randomX";
-  version = "1.1.7";
+  version = "1.1.8";
 
   nativeBuildInputs = [ cmake ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "tevador";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1d42dw4zrd7mzfqs6gwk27jj6lsh6pwv85p1ckx9dxy8mw3m52ah";
+    sha256 = "13h2cw8drq7xn3v8fbpxrlsl8zq3fs8gd2pc1pv28ahr9qqjz1gc";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/rang/default.nix b/pkgs/development/libraries/rang/default.nix
new file mode 100644
index 00000000000..b3d300baca2
--- /dev/null
+++ b/pkgs/development/libraries/rang/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchFromGitHub, cmake }:
+stdenv.mkDerivation rec {
+  pname = "rang";
+  version = "v3.1.0";
+  src = fetchFromGitHub {
+    "owner" = "agauniyal";
+    repo = "rang";
+    "rev" = "cabe04d6d6b05356fa8f9741704924788f0dd762";
+    "sha256" = "0v2pz0l2smagr3j4abjccshg4agaccfz79m5ayvrvqq5d4rlds0s";
+  };
+  nativeBuildInputs = [ cmake ];
+  meta = with stdenv.lib; {
+    description =
+      "A Minimal, Header only Modern c++ library for terminal goodies";
+    homepage = "https://agauniyal.github.io/rang/";
+    license = licenses.unlicense;
+    maintainers = [ maintainers.HaoZeke ];
+  };
+}
diff --git a/pkgs/development/libraries/range-v3/default.nix b/pkgs/development/libraries/range-v3/default.nix
index 024b67721ca..a583239b52e 100644
--- a/pkgs/development/libraries/range-v3/default.nix
+++ b/pkgs/development/libraries/range-v3/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "range-v3";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "ericniebler";
     repo = "range-v3";
     rev = version;
-    sha256 = "1h9h5j7pdi0afpip9ncq76h1xjhvb8bnm585q17afz2l4fydy8qj";
+    sha256 = "18230bg4rq9pmm5f8f65j444jpq56rld4fhmpham8q3vr1c1bdjh";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Experimental range library for C++11/14/17";
     homepage = "https://github.com/ericniebler/range-v3";
+    changelog = "https://github.com/ericniebler/range-v3/releases/tag/${version}";
     license = licenses.boost;
     platforms = platforms.all;
     maintainers = with maintainers; [ primeos xwvvvvwx ];
diff --git a/pkgs/development/libraries/rdkafka/default.nix b/pkgs/development/libraries/rdkafka/default.nix
index 7539d45627f..308fadbdfd8 100644
--- a/pkgs/development/libraries/rdkafka/default.nix
+++ b/pkgs/development/libraries/rdkafka/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rdkafka";
-  version = "1.4.2";
+  version = "1.4.4";
 
   src = fetchFromGitHub {
     owner = "edenhill";
     repo = "librdkafka";
     rev = "v${version}";
-    sha256 = "05mgrdzacn9kdpr68r5j0cvsvl54s52glnsc1ww9rcxx6p7hq1ly";
+    sha256 = "0y4m29wyvhhxb7fap9z07zwgcqlr4ifwynf8a7yp5ldjpzfzxpix";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/readosm/default.nix b/pkgs/development/libraries/readosm/default.nix
index 8bf3200e295..6aed49d65e3 100644
--- a/pkgs/development/libraries/readosm/default.nix
+++ b/pkgs/development/libraries/readosm/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, expat, zlib, geos, libspatialite }:
 
 stdenv.mkDerivation rec {
-  name = "readosm-1.1.0";
+  name = "readosm-1.1.0a";
 
   src = fetchurl {
     url = "https://www.gaia-gis.it/gaia-sins/readosm-sources/${name}.tar.gz";
-    sha256 = "1v20pnda67imjd70fn0zw30aar525xicy3d3v49md5cvqklws265";
+    sha256 = "0igif2bxf4dr82glxz9gyx5mmni0r2dsnx9p9k6pxv3c4lfhaz6v";
   };
 
   buildInputs = [ expat zlib geos libspatialite ];
diff --git a/pkgs/development/libraries/redkite/default.nix b/pkgs/development/libraries/redkite/default.nix
new file mode 100644
index 00000000000..be6bf0d7fa0
--- /dev/null
+++ b/pkgs/development/libraries/redkite/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitLab, cmake, cairo }:
+
+stdenv.mkDerivation rec {
+  pname = "redkite";
+  version = "1.0.3";
+
+  src = fetchFromGitLab {
+    owner = "iurie-sw";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1m2db7c791fi33snkjwnvlxapmf879g5r8azlkx7sr6vp2s0jq2k";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ cairo ];
+
+  meta = {
+    homepage = "https://gitlab.com/iurie-sw/redkite";
+    description = "A small GUI toolkit";
+    license = stdenv.lib.licenses.gpl3Plus;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+  };
+}
diff --git a/pkgs/development/libraries/relibc/default.nix b/pkgs/development/libraries/relibc/default.nix
new file mode 100644
index 00000000000..43e02fc8758
--- /dev/null
+++ b/pkgs/development/libraries/relibc/default.nix
@@ -0,0 +1,77 @@
+{ stdenvNoCC, buildPackages, makeRustPlatform }:
+
+let
+  rpath = stdenvNoCC.lib.makeLibraryPath [
+    buildPackages.stdenv.cc.libc
+    "$out"
+  ];
+  bootstrapCrossRust = stdenvNoCC.mkDerivation {
+    name = "binary-redox-rust";
+    
+    src = fetchTarball {
+      name = "redox-rust-toolchain-bin.tar.gz";
+      url = "https://www.dropbox.com/s/33r92en0t47l1ei/redox-rust-toolchain-bin.tar.gz?dl=1";
+      sha256 = "1g17qp2q6b88p04yclkw6amm374pqlakrmw9kd86vw8z4g70jkxm";
+    };
+
+    dontBuild = true;
+    dontPatchELF = true;
+    dontStrip = true;
+    installPhase = ''
+      mkdir $out/
+      cp -r * $out/
+
+      find $out/ -executable -type f -exec patchelf \
+          --set-interpreter "${buildPackages.stdenv.cc.libc}/lib/ld-linux-x86-64.so.2" \
+          --set-rpath "${rpath}" \
+          "{}" \;
+      find $out/ -name "*.so" -type f -exec patchelf \
+          --set-rpath "${rpath}" \
+          "{}" \;
+    '';
+
+    meta.platforms = with stdenvNoCC.lib; platforms.redox ++ platforms.linux;
+  };
+
+  redoxRustPlatform = buildPackages.makeRustPlatform {
+    rustc = bootstrapCrossRust;
+    cargo = bootstrapCrossRust;
+  };
+
+in
+redoxRustPlatform.buildRustPackage rec {
+  pname = "relibc";
+  version = "latest";
+
+  LD_LIBRARY_PATH = "${buildPackages.zlib}/lib";
+
+  src = buildPackages.fetchgit {
+    url = "https://gitlab.redox-os.org/redox-os/relibc/";
+    rev = "5af8e3ca35ad401014a867ac1a0cc3b08dee682b";
+    sha256 = "1j4wsga9psl453031izkl3clkvm31d1wg4y8f3yqqvhml2aliws5";
+    fetchSubmodules = true;
+  };
+
+  RUSTC_BOOTSTRAP = 1;
+
+  dontInstall = true;
+  dontFixup = true;
+  doCheck = false;
+
+  postBuild = ''
+    mkdir -p $out
+    DESTDIR=$out make install
+  '';
+
+  TARGET = buildPackages.rust.toRustTarget stdenvNoCC.targetPlatform;
+
+  cargoSha256 = "1fzz7ba3ga57x1cbdrcfrdwwjr70nh4skrpxp4j2gak2c3scj6rz";
+
+  meta = with stdenvNoCC.lib; {
+    homepage = "https://gitlab.redox-os.org/redox-os/relibc";
+    description = "C Library in Rust for Redox and Linux";
+    license = licenses.mit;
+    maintainers = [ maintainers.aaronjanse ];
+    platforms = platforms.redox;
+  };
+}
diff --git a/pkgs/development/libraries/rlottie/default.nix b/pkgs/development/libraries/rlottie/default.nix
new file mode 100644
index 00000000000..a77c851ebca
--- /dev/null
+++ b/pkgs/development/libraries/rlottie/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, meson, ninja, pkg-config }:
+
+stdenv.mkDerivation rec {
+  pname = "rlottie";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "Samsung";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-8KQ0ZnVg5rTb44IYnn02WBSe2SA5UGUOSLEdmmscUDs=";
+  };
+
+  nativeBuildInputs = [ meson ninja pkg-config ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/Samsung/rlottie";
+    description = "A platform independent standalone c++ library for rendering vector based animations and art in realtime.";
+    license = licenses.unfree; # Mixed, see https://github.com/Samsung/rlottie/blob/master/COPYING
+    platforms = platforms.all;
+    maintainers = with maintainers; [ CRTified ];
+  };
+}
diff --git a/pkgs/development/libraries/rnnoise-plugin/default.nix b/pkgs/development/libraries/rnnoise-plugin/default.nix
new file mode 100644
index 00000000000..efc8857e235
--- /dev/null
+++ b/pkgs/development/libraries/rnnoise-plugin/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, SDL2, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "rnnoise-plugin";
+  version = "0.9";
+
+  src = fetchFromGitHub {
+    owner = "werman";
+    repo = "noise-suppression-for-voice";
+    rev = "v${version}";
+    sha256 = "18bq5b50xw3d4r1ildinafpg3isb9y216430h4mm9wr3ir7h76a7";
+  };
+
+  buildInputs = [ cmake ];
+
+  cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ];
+
+  meta = with stdenv.lib; {
+    description = "A real-time noise suppression plugin for voice based on Xiph's RNNoise";
+    homepage = "https://github.com/werman/noise-suppression-for-voice";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ panaeon ];
+  };
+}
diff --git a/pkgs/development/libraries/rocclr/default.nix b/pkgs/development/libraries/rocclr/default.nix
new file mode 100644
index 00000000000..4e0836946c1
--- /dev/null
+++ b/pkgs/development/libraries/rocclr/default.nix
@@ -0,0 +1,64 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, rocm-cmake
+, clang
+, rocm-comgr
+, rocm-opencl-runtime
+, rocm-runtime
+, rocm-thunk
+, libelf
+, libglvnd
+, libX11
+, numactl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rocclr";
+  version = "3.7.0";
+
+  src = fetchFromGitHub {
+    owner = "ROCm-Developer-Tools";
+    repo = "ROCclr";
+    rev = "rocm-${version}";
+    sha256 = "0sx4irbmjgs5bm8dc8jc9fl1jmfdnrp3ar14hdhrsmbani7gqah3";
+  };
+
+  nativeBuildInputs = [ cmake rocm-cmake ];
+
+  buildInputs = [ clang rocm-comgr rocm-runtime rocm-thunk ];
+
+  propagatedBuildInputs = [ libelf libglvnd libX11 numactl ];
+
+  prePatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace 'set(ROCCLR_EXPORTS_FILE "''${CMAKE_CURRENT_BINARY_DIR}/amdrocclr_staticTargets.cmake")' \
+        'set(ROCCLR_EXPORTS_FILE "''${CMAKE_INSTALL_LIBDIR}/cmake/amdrocclr_staticTargets.cmake")' \
+      --replace 'set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ''${CMAKE_CURRENT_BINARY_DIR}/lib)' \
+        'set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ''${CMAKE_INSTALL_LIBDIR})' \
+      --replace 'find_library( OpenCL REQUIRED' 'find_library( OpenCL'
+    substituteInPlace device/comgrctx.cpp \
+      --replace "libamd_comgr.so" "${rocm-comgr}/lib/libamd_comgr.so"
+  '';
+
+  cmakeFlags = [
+    "-DOPENCL_DIR=${rocm-opencl-runtime.src}"
+  ];
+
+  preFixup = ''
+    ln -s $out/include/compiler/lib/include/* $out/include
+    substituteInPlace $out/lib/cmake/rocclr/ROCclrConfig.cmake \
+      --replace "/build/source/build" "$out"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Radeon Open Compute common language runtime";
+    homepage = "https://github.com/ROCm-Developer-Tools/ROCclr";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danieldk ];
+    # rocclr seems to have some AArch64 ifdefs, but does not seem
+    # to be supported yet by the build infrastructure. Recheck in
+    # the future.
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/libraries/rocksdb/default.nix b/pkgs/development/libraries/rocksdb/default.nix
index 6606f57bc4b..9bc3770f21e 100644
--- a/pkgs/development/libraries/rocksdb/default.nix
+++ b/pkgs/development/libraries/rocksdb/default.nix
@@ -1,42 +1,49 @@
-{ stdenv, fetchFromGitHub, fetchpatch
-, cmake, ninja
-, bzip2, lz4, snappy, zlib, zstd
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, ninja
+, bzip2
+, lz4
+, snappy
+, zlib
+, zstd
 , enableLite ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "rocksdb";
-  version = "6.4.6";
+  version = "6.10.2";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0s0n4p1b4jzmslz9d2xd4ajra0m6l9x26mjwlbgw0klxjggmy8qn";
+    sha256 = "1f2wqb6px812ijcivq3rsknqgkv01wblc6sd8wavhrw8qljgr3s1";
   };
 
   nativeBuildInputs = [ cmake ninja ];
+
   buildInputs = [ bzip2 lz4 snappy zlib zstd ];
 
   patches = [
-    # https://github.com/facebook/rocksdb/pull/6076
+    # Without this change private dependencies are exported.
+    # Can be removed after the next release.
+    # https://github.com/facebook/rocksdb/pull/6790
     (fetchpatch {
-      url = "https://github.com/facebook/rocksdb/commit/c0be4b2ff1a5393419673fab961cb9b09ba38752.diff";
-      sha256 = "1f2wg9kqlmf2hiiihmbp8m5fr2wnn7896g6i9yg9hdgi40pw30w6";
+      url = "https://github.com/facebook/rocksdb/commit/07204837ce8d66e1e6e4893178f3fd040f9c1044.patch";
+      sha256 = "17097ybkhy0i089zzkpvcj65c7g5skvjvdzi1k09x4i1d719wm39";
     })
   ];
 
-  postPatch = ''
-    substituteInPlace CMakeLists.txt --replace "find_package(zlib " "find_package(ZLIB "
-  '';
-
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isGNU "-Wno-error=deprecated-copy -Wno-error=pessimizing-move";
 
   cmakeFlags = [
     "-DPORTABLE=1"
     "-DWITH_JEMALLOC=0"
     "-DWITH_JNI=0"
-    "-DWITH_TESTS=0"
+    "-DWITH_BENCHMARK_TOOLS=0"
+    "-DWITH_TESTS=1"
     "-DWITH_TOOLS=0"
     "-DWITH_BZ2=1"
     "-DWITH_LZ4=1"
diff --git a/pkgs/development/libraries/rocm-comgr/default.nix b/pkgs/development/libraries/rocm-comgr/default.nix
new file mode 100644
index 00000000000..22fbc0e998a
--- /dev/null
+++ b/pkgs/development/libraries/rocm-comgr/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, cmake, clang, device-libs, lld, llvm }:
+
+stdenv.mkDerivation rec {
+  pname = "rocm-comgr";
+  version = "3.7.0";
+
+  src = fetchFromGitHub {
+    owner = "RadeonOpenCompute";
+    repo = "ROCm-CompilerSupport";
+    rev = "rocm-${version}";
+    sha256 = "1r7arfdqfh6pfvjza6x2dzd5gjmkndngrp688d3n2ab92n5ijiqf";
+  };
+
+  sourceRoot = "source/lib/comgr";
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ clang device-libs lld llvm ];
+
+  cmakeFlags = [
+    "-DCLANG=${clang}/bin/clang"
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DCMAKE_C_COMPILER=${clang}/bin/clang"
+    "-DCMAKE_CXX_COMPILER=${clang}/bin/clang++"
+    "-DCMAKE_PREFIX_PATH=${llvm}/lib/cmake/llvm"
+    "-DLLD_INCLUDE_DIRS=${lld.src}/include"
+    "-DLLVM_TARGETS_TO_BUILD=\"AMDGPU;X86\""
+  ];
+
+  # The comgr build tends to link against the static LLVM libraries
+  # *and* the dynamic library. Linking against both causes errors
+  # about command line options being registered twice. This patch
+  # removes the static library linking.
+  patchPhase = ''
+    sed -e '/^llvm_map_components_to_libnames/,/[[:space:]]*Symbolize)/d' \
+        -i CMakeLists.txt
+  '';
+
+  meta = with stdenv.lib; {
+    description = "APIs for compiling and inspecting AMDGPU code objects";
+    homepage = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/tree/amd-stg-open/lib/comgr";
+    license = licenses.ncsa;
+    maintainers = with maintainers; [ danieldk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/rocm-device-libs/default.nix b/pkgs/development/libraries/rocm-device-libs/default.nix
new file mode 100644
index 00000000000..c1878700aaa
--- /dev/null
+++ b/pkgs/development/libraries/rocm-device-libs/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, clang
+, clang-unwrapped
+, lld
+, llvm
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rocm-device-libs";
+  version = "3.7.0";
+
+  src = fetchFromGitHub {
+    owner = "RadeonOpenCompute";
+    repo = "ROCm-Device-Libs";
+    rev = "rocm-${version}";
+    sha256 = "1sg7wzj2mi5vhba53cp52gnya7c799f0p325ig262vi70r7mr7n2";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ clang lld llvm ];
+
+  cmakeBuildType = "Release";
+
+  cmakeFlags = [
+    "-DCMAKE_PREFIX_PATH=${llvm}/lib/cmake/llvm;${clang-unwrapped}/lib/cmake/clang"
+    "-DLLVM_TARGETS_TO_BUILD='AMDGPU;X86'"
+    "-DCLANG=${clang}/bin/clang"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Set of AMD-specific device-side language runtime libraries";
+    homepage = "https://github.com/RadeonOpenCompute/ROCm-Device-Libs";
+    license = licenses.ncsa;
+    maintainers = with maintainers; [ danieldk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/rocm-opencl-icd/default.nix b/pkgs/development/libraries/rocm-opencl-icd/default.nix
new file mode 100644
index 00000000000..5f2188f6e7e
--- /dev/null
+++ b/pkgs/development/libraries/rocm-opencl-icd/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, rocm-opencl-runtime }:
+
+stdenv.mkDerivation rec {
+  pname = "rocm-opencl-icd";
+  version = rocm-opencl-runtime.version;
+
+  dontUnpack = true;
+
+  installPhase = ''
+    mkdir -p $out/etc/OpenCL/vendors
+    echo "${rocm-opencl-runtime}/lib/libamdocl64.so" > $out/etc/OpenCL/vendors/amdocl64.icd
+  '';
+
+  meta = with stdenv.lib; {
+    description = "OpenCL ICD definition for AMD GPUs using the ROCm stack";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danieldk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/rocm-opencl-runtime/default.nix b/pkgs/development/libraries/rocm-opencl-runtime/default.nix
new file mode 100644
index 00000000000..90bc206a7bc
--- /dev/null
+++ b/pkgs/development/libraries/rocm-opencl-runtime/default.nix
@@ -0,0 +1,83 @@
+{ stdenv
+, fetchFromGitHub
+, addOpenGLRunpath
+, cmake
+, rocm-cmake
+, clang
+, clang-unwrapped
+, glew
+, libglvnd
+, libX11
+, lld
+, llvm
+, mesa
+, python2
+, rocclr
+, rocm-comgr
+, rocm-device-libs
+, rocm-runtime
+, rocm-thunk
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rocm-opencl-runtime";
+  version = "3.7.0";
+
+  src = fetchFromGitHub {
+    owner = "RadeonOpenCompute";
+    repo = "ROCm-OpenCL-Runtime";
+    rev = "rocm-${version}";
+    sha256 = "15rz11a8qwvxmd0kkaikj04q1glfg9sgqqblcqp3iahr3by8z0wd";
+  };
+
+  nativeBuildInputs = [ cmake rocm-cmake ];
+
+  buildInputs = [
+    clang
+    clang-unwrapped
+    glew
+    libglvnd
+    libX11
+    lld
+    llvm
+    mesa
+    python2
+    rocclr
+    rocm-comgr
+    rocm-device-libs
+    rocm-runtime
+    rocm-thunk
+  ];
+
+  cmakeFlags = [
+    "-DAMDGPU_TARGET_TRIPLE='amdgcn-amd-amdhsa'"
+    "-DCLANG_OPTIONS_APPEND=-Wno-bitwise-conditional-parentheses"
+    "-DClang_DIR=${clang-unwrapped}/lib/cmake/clang"
+    "-DLIBROCclr_STATIC_DIR=${rocclr}/lib/cmake"
+    "-DLLVM_DIR=${llvm.out}/lib/cmake/llvm"
+    "-DUSE_COMGR_LIBRARY='yes'"
+  ];
+
+  dontStrip = true;
+
+  # Remove clinfo, which is already provided through the
+  # `clinfo` package.
+  postInstall = ''
+    rm -rf $out/bin
+  '';
+
+  # Fix the ICD installation path for NixOS
+  postPatch = ''
+    substituteInPlace khronos/icd/loader/linux/icd_linux.c \
+      --replace 'ICD_VENDOR_PATH' '"${addOpenGLRunpath.driverLink}/etc/OpenCL/vendors/"'
+    echo 'add_dependencies(amdocl64 OpenCL)' >> amdocl/CMakeLists.txt
+  '';
+
+  meta = with stdenv.lib; {
+    description = "OpenCL runtime for AMD GPUs, part of the ROCm stack";
+    homepage = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime";
+    license = with licenses; [ asl20 mit ];
+    maintainers = with maintainers; [ danieldk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/rocm-runtime/default.nix b/pkgs/development/libraries/rocm-runtime/default.nix
new file mode 100644
index 00000000000..6f573adabe1
--- /dev/null
+++ b/pkgs/development/libraries/rocm-runtime/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, fetchFromGitHub
+, addOpenGLRunpath
+, clang-unwrapped
+, cmake
+, xxd
+, elfutils
+, llvm
+, rocm-device-libs
+, rocm-thunk }:
+
+stdenv.mkDerivation rec {
+  pname = "rocm-runtime";
+  version = "3.7.0";
+
+  src = fetchFromGitHub {
+    owner = "RadeonOpenCompute";
+    repo = "ROCR-Runtime";
+    rev = "rocm-${version}";
+    sha256 = "1lm4cbx1d727zll85vjc1kykc72mk82nfhyyhjljv82gd4mnz00c";
+  };
+
+  sourceRoot = "source/src";
+
+  nativeBuildInputs = [ cmake xxd ];
+
+  buildInputs = [ clang-unwrapped elfutils llvm ];
+
+  cmakeFlags = [
+   "-DBITCODE_DIR=${rocm-device-libs}/lib"
+   "-DCMAKE_PREFIX_PATH=${rocm-thunk}"
+  ];
+
+  postPatch = ''
+    patchShebangs image/blit_src/create_hsaco_ascii_file.sh
+  '';
+
+  fixupPhase = ''
+    rm -rf $out/hsa
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Platform runtime for ROCm";
+    homepage = "https://github.com/RadeonOpenCompute/ROCR-Runtime";
+    license = with licenses; [ ncsa ];
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/pkgs/development/libraries/rocm-thunk/default.nix b/pkgs/development/libraries/rocm-thunk/default.nix
new file mode 100644
index 00000000000..c43f9b04b93
--- /dev/null
+++ b/pkgs/development/libraries/rocm-thunk/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, numactl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rocm-thunk";
+  version = "3.7.0";
+
+  src = fetchFromGitHub {
+    owner = "RadeonOpenCompute";
+    repo = "ROCT-Thunk-Interface";
+    rev = "rocm-${version}";
+    sha256 = "05963lxip3175g4b7k45r94yayp9gcwl3fpma9g5mdkbrlbvwlvz";
+  };
+
+  preConfigure = ''
+    export cmakeFlags="$cmakeFlags "
+  '';
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ numactl ];
+
+  postInstall = ''
+    cp -r $src/include $out
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Radeon open compute thunk interface";
+    homepage = "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface";
+    license = with licenses; [ bsd2 mit ];
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/pkgs/development/libraries/science/math/amd-blis/default.nix b/pkgs/development/libraries/science/math/amd-blis/default.nix
new file mode 100644
index 00000000000..9bddba0261f
--- /dev/null
+++ b/pkgs/development/libraries/science/math/amd-blis/default.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, fetchFromGitHub
+, perl
+, python3
+
+# 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"
+
+# Enable OpenMP-based threading.
+, withOpenMP ? true
+}:
+
+let
+  threadingSuffix = if withOpenMP then "-mt" else "";
+  blasIntSize = if blas64 then "64" else "32";
+in stdenv.mkDerivation rec {
+  pname = "amd-blis";
+  version = "2.2";
+
+  src = fetchFromGitHub {
+    owner = "amd";
+    repo = "blis";
+    rev = version;
+    sha256 = "1b2f5bwi0gkw2ih2rb7wfzn3m9hgg7k270kg43rmzpr2acpy86xa";
+  };
+
+  inherit blas64;
+
+  nativeBuildInputs = [
+    perl
+    python3
+  ];
+
+  doCheck = true;
+
+  enableParallelBuilding = true;
+
+  configureFlags = [
+    "--enable-cblas"
+    "--blas-int-size=${blasIntSize}"
+  ] ++ stdenv.lib.optionals withOpenMP [ "--enable-threading=openmp" ]
+    ++ [ withArchitecture ];
+
+  postPatch = ''
+    patchShebangs configure build/flatten-headers.py
+  '';
+
+  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/libblas.so.3 $out/lib/libblas.so
+    ln -s $out/lib/libcblas.so.3 $out/lib/libcblas.so
+  '';
+
+  meta = with stdenv.lib; {
+    description = "BLAS-compatible library optimized for AMD CPUs";
+    homepage = "https://developer.amd.com/amd-aocl/blas-library/";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.danieldk ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/libraries/science/math/amd-libflame/add-lapacke.diff b/pkgs/development/libraries/science/math/amd-libflame/add-lapacke.diff
new file mode 100644
index 00000000000..3e3ef1e60ff
--- /dev/null
+++ b/pkgs/development/libraries/science/math/amd-libflame/add-lapacke.diff
@@ -0,0 +1,34 @@
+diff --git a/Makefile b/Makefile
+index 5549ce30..ac2ee51e 100644
+--- a/Makefile
++++ b/Makefile
+@@ -583,14 +583,14 @@ endif
+ 
+ # --- Shared library linker rules ---
+ 
+-$(LIBFLAME_SO_PATH): $(MK_ALL_FLAMEC_OBJS)
++$(LIBFLAME_SO_PATH): $(MK_ALL_FLAMEC_OBJS) $(LAPACKE_A_PATH)
+ ifeq ($(ENABLE_VERBOSE),yes)
+ ifeq ($(FLA_ENABLE_MAX_ARG_LIST_HACK),yes)
+ 	$(CAT) $(AR_OBJ_LIST_FILE) | xargs -n$(AR_CHUNK_SIZE) $(AR) $(ARFLAGS) $(LIBFLAME_A)
+ ifeq ($(OS_NAME),Darwin)
+-	$(LINKER) $(SOFLAGS) -o $@ -Wl,-force_load,$(LIBFLAME_A) $(LDFLAGS)
++	$(LINKER) $(SOFLAGS) -o $@ -Wl,-force_load,$(LIBFLAME_A),$(LAPACKE_A_PATH) $(LDFLAGS)
+ else
+-	$(LINKER) $(SOFLAGS) -o $@ -Wl,--whole-archive,$(LIBFLAME_A),--no-whole-archive $(LDFLAGS)
++	$(LINKER) $(SOFLAGS) -o $@ -Wl,--whole-archive,$(LIBFLAME_A),$(LAPACKE_A_PATH)--no-whole-archive $(LDFLAGS)
+ endif
+ else
+ #	NOTE: Can't use $^ automatic variable as long as $(AR_OBJ_LIST_FILE) is in
+@@ -602,9 +602,9 @@ else
+ ifeq ($(FLA_ENABLE_MAX_ARG_LIST_HACK),yes)
+ 	@$(CAT) $(AR_OBJ_LIST_FILE) | xargs -n$(AR_CHUNK_SIZE) $(AR) $(ARFLAGS) $(LIBFLAME_A)
+ ifeq ($(OS_NAME),Darwin)
+-	@$(LINKER) $(SOFLAGS) -o $@ -Wl,-force_load,$(LIBFLAME_A) $(LDFLAGS)
++	@$(LINKER) $(SOFLAGS) -o $@ -Wl,-force_load,$(LIBFLAME_A),$(LAPACKE_A_PATH) $(LDFLAGS)
+ else
+-	@$(LINKER) $(SOFLAGS) -o $@ -Wl,--whole-archive,$(LIBFLAME_A),--no-whole-archive $(LDFLAGS)
++	@$(LINKER) $(SOFLAGS) -o $@ -Wl,--whole-archive,$(LIBFLAME_A),$(LAPACKE_A_PATH),--no-whole-archive $(LDFLAGS)
+ endif
+ else
+ #	NOTE: Can't use $^ automatic variable as long as $(AR_OBJ_LIST_FILE) is in
diff --git a/pkgs/development/libraries/science/math/amd-libflame/default.nix b/pkgs/development/libraries/science/math/amd-libflame/default.nix
new file mode 100644
index 00000000000..1e331bca695
--- /dev/null
+++ b/pkgs/development/libraries/science/math/amd-libflame/default.nix
@@ -0,0 +1,72 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gfortran
+, python3
+, amd-blis
+
+, withOpenMP ? true
+}:
+
+stdenv.mkDerivation rec {
+  pname = "amd-libflame";
+  version = "2.2";
+
+  src = fetchFromGitHub {
+    owner = "amd";
+    repo = "libflame";
+    rev = version;
+    sha256 = "1s8zvq6p843jb52lrbxra7vv0wzmifs4j36z9bp7wf3xr20a0zi5";
+  };
+
+  patches = [
+    # The LAPACKE interface is compiled as a separate static library,
+    # we want the main dynamic library to provide LAPACKE symbols.
+    # This patch adds lapacke.a to the shared library as well.
+    ./add-lapacke.diff
+  ];
+
+  nativeBuildInputs = [ gfortran python3 ];
+
+  buildInputs = [ amd-blis ];
+
+  configureFlags = [
+    # Build a dynamic library with a LAPACK interface.
+    "--disable-static-build"
+    "--enable-dynamic-build"
+    "--enable-lapack2flame"
+
+    # Use C BLAS interface.
+    "--enable-cblas-interfaces"
+
+    # Avoid overloading maximum number of arguments.
+    "--enable-max-arg-list-hack"
+
+    # libflame by default leaves BLAS symbols unresolved and leaves it
+    # up to the application to explicitly link to a BLAS. This is
+    # problematic for us, since then the BLAS library becomes an
+    # implicit dependency. Moreover, since the point of the AMD forks
+    # is to optimized for recent AMD CPUs, link against AMD BLIS.
+    "LDFLAGS=-lcblas"
+  ]
+  ++ lib.optionals withOpenMP [ "--enable-multithreading=openmp" ];
+
+  enableParallelBuilding = true;
+
+  postPatch = ''
+    patchShebangs build
+  '';
+
+  postInstall = ''
+    ln -s $out/lib/libflame.so.${version} $out/lib/liblapack.so.3
+    ln -s $out/lib/libflame.so.${version} $out/lib/liblapacke.so.3
+  '';
+
+  meta = with stdenv.lib; {
+    description = "LAPACK-compatible linear algebra library optimized for AMD CPUs";
+    homepage = "https://developer.amd.com/amd-aocl/blas-library/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ danieldk ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/libraries/science/math/arpack/default.nix b/pkgs/development/libraries/science/math/arpack/default.nix
index 0829557d0f3..02d51f0c419 100644
--- a/pkgs/development/libraries/science/math/arpack/default.nix
+++ b/pkgs/development/libraries/science/math/arpack/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
   ];
 
   preCheck = if stdenv.isDarwin then ''
-    export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}`pwd`/lib
+    export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}`pwd`/lib:${blas}/lib:${lapack}/lib
   '' else ''
     export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}`pwd`/lib
   '' + ''
diff --git a/pkgs/development/libraries/science/math/cudnn/default.nix b/pkgs/development/libraries/science/math/cudnn/default.nix
index 765d634a91f..9495366eaaa 100644
--- a/pkgs/development/libraries/science/math/cudnn/default.nix
+++ b/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 }:
+{ 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 }:
 
 let
   generic = args: callPackage (import ./generic.nix (removeAttrs args ["cudatoolkit"])) {
@@ -80,4 +80,13 @@ in rec {
   };
 
   cudnn_cudatoolkit_10 = cudnn_cudatoolkit_10_1;
+
+  cudnn_cudatoolkit_11_0 = generic rec {
+    version = "8.0.2";
+    cudatoolkit = cudatoolkit_11_0;
+    srcName = "cudnn-${cudatoolkit.majorVersion}-linux-x64-v8.0.2.39.tgz";
+    sha256 = "0ib3v3bgcdxarqapkxngw1nwl0c2a7zz392ns7w9ipcficl4cbv7";
+  };
+
+  cudnn_cudatoolkit_11 = cudnn_cudatoolkit_11_0;
 }
diff --git a/pkgs/development/libraries/science/math/cudnn/generic.nix b/pkgs/development/libraries/science/math/cudnn/generic.nix
index 5a17e807bd4..e727218c055 100644
--- a/pkgs/development/libraries/science/math/cudnn/generic.nix
+++ b/pkgs/development/libraries/science/math/cudnn/generic.nix
@@ -37,7 +37,15 @@ stdenv.mkDerivation {
   # Set RUNPATH so that libcuda in /run/opengl-driver(-32)/lib can be found.
   # See the explanation in addOpenGLRunpath.
   postFixup = ''
-    addOpenGLRunpath $out/lib/lib*.so
+    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
+    done
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/libraries/science/math/itpp/default.nix b/pkgs/development/libraries/science/math/itpp/default.nix
new file mode 100644
index 00000000000..d7fae9ae479
--- /dev/null
+++ b/pkgs/development/libraries/science/math/itpp/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, fetchurl
+, cmake
+, gtest
+, blas
+, fftw
+, liblapack
+, gfortran
+}:
+
+stdenv.mkDerivation rec {
+  pname = "it++";
+  version = "4.3.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/itpp/itpp-${version}.tar.bz2";
+    sha256 = "0xxqag9wi0lg78xgw7b40rp6wxqp5grqlbs9z0ifvdfzqlhpcwah";
+  };
+
+  nativeBuildInputs = [ cmake gfortran ];
+  buildInputs = [
+    fftw
+    liblapack
+
+    # NOTE: OpenBLAS doesn't work here because IT++ doesn't pass aligned
+    # buffers, which causes segfaults in the optimized kernels :-(
+    blas
+  ];
+
+  cmakeFlags = [
+    "-DBLAS_FOUND:BOOL=TRUE"
+    "-DBLAS_LIBRARIES:STRING=${blas}/lib/libblas.so"
+    "-DLAPACK_FOUND:BOOL=TRUE"
+    "-DLAPACK_LIBRARIES:STRING=${liblapack}/lib/liblapack.so"
+    "-DGTEST_DIR:PATH=${gtest.src}/googletest"
+  ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+
+  checkPhase = ''
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/itpp
+    export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}$PWD/itpp
+    ./gtests/itpp_gtests
+  '';
+
+  meta = with stdenv.lib; {
+    description = "IT++ is a C++ library of mathematical, signal processing and communication classes and functions.";
+    homepage = http://itpp.sourceforge.net/;
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ andrew-d ];
+  };
+}
diff --git a/pkgs/development/libraries/science/math/libtorch/bin.nix b/pkgs/development/libraries/science/math/libtorch/bin.nix
new file mode 100644
index 00000000000..3ae46270586
--- /dev/null
+++ b/pkgs/development/libraries/science/math/libtorch/bin.nix
@@ -0,0 +1,111 @@
+{ callPackage
+, stdenv
+, fetchzip
+, lib
+
+, addOpenGLRunpath
+, patchelf
+, fixDarwinDylibNames
+
+, cudaSupport
+, nvidia_x11
+}:
+
+let
+  version = "1.6.0";
+  device = if cudaSupport then "cuda" else "cpu";
+  srcs = import ./binary-hashes.nix;
+  unavailable = throw "libtorch is not available for this platform";
+in stdenv.mkDerivation {
+  inherit version;
+  pname = "libtorch";
+
+  src = fetchzip srcs."${stdenv.targetPlatform.system}-${device}" or unavailable;
+
+  nativeBuildInputs =
+    if stdenv.isDarwin then [ fixDarwinDylibNames ]
+    else [ addOpenGLRunpath patchelf ]
+      ++ stdenv.lib.optionals cudaSupport [ addOpenGLRunpath ];
+
+  buildInputs = [
+    stdenv.cc.cc
+  ] ++ lib.optionals cudaSupport [ nvidia_x11 ];
+
+  dontBuild = true;
+  dontConfigure = true;
+  dontStrip = true;
+
+  installPhase = ''
+    # Copy headers and CMake files.
+    install -Dm755 -t $dev/lib lib/*.a
+    cp -r include $dev
+    cp -r share $dev
+
+    install -Dm755 -t $out/lib lib/*${stdenv.hostPlatform.extensions.sharedLibrary}*
+
+    # We do not care about Java support...
+    rm -f $out/lib/lib*jni* 2> /dev/null || true
+  '';
+
+  postFixup = let
+    libPaths = [ stdenv.cc.cc.lib ]
+      ++ stdenv.lib.optionals cudaSupport [ nvidia_x11 ];
+    rpath = stdenv.lib.makeLibraryPath libPaths;
+  in stdenv.lib.optionalString stdenv.isLinux ''
+    find $out/lib -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
+      echo "setting rpath for $lib..."
+      patchelf --set-rpath "${rpath}:$out/lib" "$lib"
+      ${lib.optionalString cudaSupport ''
+        addOpenGLRunpath "$lib"
+      ''}
+    done
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    install_name_tool -change @rpath/libshm.dylib $out/lib/libshm.dylib $out/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libtorch.dylib $out/lib/libtorch.dylib $out/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libtorch_python.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libtorch.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libtorch.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libtorch.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libtorch_cpu.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libtorch_cpu.dylib
+    install_name_tool -change @rpath/libtensorpipe.dylib $out/lib/libtensorpipe.dylib $out/lib/libtorch_cpu.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libcaffe2_observers.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libcaffe2_observers.dylib
+    install_name_tool -change @rpath/libtorch.dylib $out/lib/libtorch.dylib $out/lib/libcaffe2_observers.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libcaffe2_observers.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libcaffe2_module_test_dynamic.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libcaffe2_module_test_dynamic.dylib
+    install_name_tool -change @rpath/libtorch.dylib $out/lib/libtorch.dylib $out/lib/libcaffe2_module_test_dynamic.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libcaffe2_module_test_dynamic.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libcaffe2_detectron_ops.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libcaffe2_detectron_ops.dylib
+    install_name_tool -change @rpath/libtorch.dylib $out/lib/libtorch.dylib $out/lib/libcaffe2_detectron_ops.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libcaffe2_detectron_ops.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libshm.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libshm.dylib
+    install_name_tool -change @rpath/libtorch.dylib $out/lib/libtorch.dylib $out/lib/libshm.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libshm.dylib
+
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libtorch_global_deps.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libtorch_global_deps.dylib
+  '';
+
+  outputs = [ "out" "dev" ];
+
+  passthru.tests = callPackage ./test { };
+
+  meta = with stdenv.lib; {
+    description = "C++ API of the PyTorch machine learning framework";
+    homepage = "https://pytorch.org/";
+    license = licenses.unfree; # Includes CUDA and Intel MKL.
+    platforms = with platforms; linux ++ darwin;
+  };
+}
diff --git a/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix b/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
new file mode 100644
index 00000000000..92a2e05e0ba
--- /dev/null
+++ b/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
@@ -0,0 +1,14 @@
+{
+  x86_64-darwin-cpu = {
+    url = "https://download.pytorch.org/libtorch/cpu/libtorch-macos-1.6.0.zip";
+    sha256 = "0d4n7la31qzl4s9pwvm07la7q6lhcwiww0yjpfz3kw6nvx84p22r";
+  };
+  x86_64-linux-cpu = {
+    url = "https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-1.6.0%2Bcpu.zip";
+    sha256 = "1975b4zvyihzh89vnwspw0vf9qr05sxj8939vcrlmv3gzvdspcxz";
+  };
+  x86_64-linux-cuda = {
+    url = "https://download.pytorch.org/libtorch/cu102/libtorch-cxx11-abi-shared-with-deps-1.6.0.zip";
+    sha256 = "127qnfyi1faqbm40sbnsyqxjhrqj82bzwqyz7c1hs2bm0zgrrpya";
+  };
+}
diff --git a/pkgs/development/libraries/science/math/libtorch/test/CMakeLists.txt b/pkgs/development/libraries/science/math/libtorch/test/CMakeLists.txt
new file mode 100644
index 00000000000..b302449ef77
--- /dev/null
+++ b/pkgs/development/libraries/science/math/libtorch/test/CMakeLists.txt
@@ -0,0 +1,4 @@
+find_package(Torch REQUIRED)
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")
+add_executable(test test.cpp)
+target_link_libraries(test "${TORCH_LIBRARIES}")
diff --git a/pkgs/development/libraries/science/math/libtorch/test/default.nix b/pkgs/development/libraries/science/math/libtorch/test/default.nix
new file mode 100644
index 00000000000..d661ec28db9
--- /dev/null
+++ b/pkgs/development/libraries/science/math/libtorch/test/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, cmake, libtorch-bin, symlinkJoin }:
+
+stdenv.mkDerivation {
+  pname = "libtorch-test";
+  version = libtorch-bin.version;
+
+  src = ./.;
+
+  postPatch = ''
+    cat CMakeLists.txt
+  '';
+
+  makeFlags = [ "VERBOSE=1" ];
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ libtorch-bin ];
+
+  installPhase = ''
+    touch $out
+  '';
+
+  checkPhase = ''
+    ./test
+  '';
+}
diff --git a/pkgs/development/libraries/science/math/libtorch/test/test.cpp b/pkgs/development/libraries/science/math/libtorch/test/test.cpp
new file mode 100644
index 00000000000..5537724ce5f
--- /dev/null
+++ b/pkgs/development/libraries/science/math/libtorch/test/test.cpp
@@ -0,0 +1,7 @@
+#include <torch/torch.h>
+#include <iostream>
+
+int main() {
+  torch::Tensor tensor = torch::eye(3);
+  std::cout << tensor << std::endl;
+}
diff --git a/pkgs/development/libraries/science/math/magma/default.nix b/pkgs/development/libraries/science/math/magma/default.nix
index dbe162c60b3..38700c963bf 100644
--- a/pkgs/development/libraries/science/math/magma/default.nix
+++ b/pkgs/development/libraries/science/math/magma/default.nix
@@ -1,19 +1,21 @@
-{ stdenv, fetchurl, cmake, gfortran, cudatoolkit, libpthreadstubs, lapack, blas }:
+{ stdenv, fetchurl, cmake, gfortran, ninja, cudatoolkit, libpthreadstubs, lapack, blas }:
 
 with stdenv.lib;
 
-let version = "2.5.0";
+let version = "2.5.3";
 
 in stdenv.mkDerivation {
   pname = "magma";
   inherit version;
   src = fetchurl {
     url = "https://icl.cs.utk.edu/projectsfiles/magma/downloads/magma-${version}.tar.gz";
-    sha256 = "0czspk93cv1fy37zyrrc9k306q4yzfxkhy1y4lj937dx8rz5rm2g";
+    sha256 = "1xjy3irdx0w1zyhvn4x47zni5fwsh6z97xd4yqldz8zrm5lx40n6";
     name = "magma-${version}.tar.gz";
   };
 
-  buildInputs = [ gfortran cudatoolkit libpthreadstubs cmake lapack blas ];
+  nativeBuildInputs = [ gfortran cmake ninja ];
+
+  buildInputs = [ cudatoolkit libpthreadstubs lapack blas ];
 
   doCheck = false;
 
@@ -32,7 +34,7 @@ in stdenv.mkDerivation {
     mkdir -p $out/lib/pkgconfig
     cp -a ../include/*.h $out/include
     #cp -a sparse-iter/include/*.h $out/include
-    cp -a lib/*.a $out/lib
+    cp -a lib/*.so $out/lib
     cat ../lib/pkgconfig/magma.pc.in                   | \
     sed -e s:@INSTALL_PREFIX@:"$out":          | \
     sed -e s:@CFLAGS@:"-I$out/include":    | \
diff --git a/pkgs/development/libraries/science/math/mkl/default.nix b/pkgs/development/libraries/science/math/mkl/default.nix
index 19f988d965c..11c5e42335b 100644
--- a/pkgs/development/libraries/science/math/mkl/default.nix
+++ b/pkgs/development/libraries/science/math/mkl/default.nix
@@ -19,8 +19,8 @@ let
   # 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 "1";
-  rel = if stdenvNoCC.isDarwin then "199" else "217";
+  spot = if stdenvNoCC.isDarwin then "3" else "2";
+  rel = if stdenvNoCC.isDarwin then "199" else "254";
 
   rpm-ver = "${year}.${spot}-${rel}-${year}.${spot}-${rel}";
 
@@ -42,8 +42,8 @@ in stdenvNoCC.mkDerivation {
       })
     else
       (fetchurl {
-        url = "https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16533/l_mkl_${version}.tgz";
-        sha256 = "0v86hrqg15mbc78m9qk8dbkaaq3mlwashgbf9n79kxpl1gilnah8";
+        url = "https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16849/l_mkl_${version}.tgz";
+        sha256 = "08q2q5rary7fxlrk09kpw0vl7mkk2smmklib44a6qainmxks407d";
       });
 
   nativeBuildInputs = [ validatePkgConfig ] ++ (if stdenvNoCC.isDarwin
diff --git a/pkgs/development/libraries/science/math/nccl/default.nix b/pkgs/development/libraries/science/math/nccl/default.nix
index 5f38d45fc4d..eb194c0e9e4 100644
--- a/pkgs/development/libraries/science/math/nccl/default.nix
+++ b/pkgs/development/libraries/science/math/nccl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "nccl-${version}-cuda-${cudatoolkit.majorVersion}";
-  version = "2.4.8-1";
+  version = "2.7.8-1";
 
   src = fetchFromGitHub {
     owner = "NVIDIA";
     repo = "nccl";
     rev = "v${version}";
-    sha256 = "05m66y64rgsdyybvjybhy6clikwv438b1m484ikai78fb2b7mvyq";
+    sha256 = "0xxiwaw239dc9g015fka3k1nvm5zyl00dzgxnwzkang61dys9wln";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/science/math/openlibm/default.nix b/pkgs/development/libraries/science/math/openlibm/default.nix
index 7517ca9c6cb..560f39e4e99 100644
--- a/pkgs/development/libraries/science/math/openlibm/default.nix
+++ b/pkgs/development/libraries/science/math/openlibm/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "openlibm";
-  version = "0.7.0";
+  version = "0.7.1";
   src = fetchurl {
     url = "https://github.com/JuliaLang/openlibm/archive/v${version}.tar.gz";
-    sha256 = "18q6mrq4agvlpvhix2k13qcyvqqzh30vj7b329dva64035rzg68n";
+    sha256 = "0yg8sfibr38hpb4s5ri7i0ivp96c7khdwhlxngjiymvl3jvm5cnl";
   };
 
   makeFlags = [ "prefix=$(out)" ];
diff --git a/pkgs/development/libraries/science/math/or-tools/default.nix b/pkgs/development/libraries/science/math/or-tools/default.nix
index a69ae5af15f..926f7ba4789 100644
--- a/pkgs/development/libraries/science/math/or-tools/default.nix
+++ b/pkgs/development/libraries/science/math/or-tools/default.nix
@@ -1,20 +1,16 @@
 { stdenv, fetchFromGitHub, cmake, abseil-cpp, gflags, which
-, lsb-release, glog, protobuf3_11, cbc, zlib
+, lsb-release, glog, protobuf, cbc, zlib
 , ensureNewerSourcesForZipFilesHook, python, swig }:
 
-let
-  protobuf = protobuf3_11;
-  pythonProtobuf = python.pkgs.protobuf.override { inherit protobuf; };
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "or-tools";
-  version = "7.6";
+  version = "7.7";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "or-tools";
     rev = "v${version}";
-    sha256 = "0605q3y7vh7x7m9azrbkx44blq12zrab6v28b9wmpcn1lmykbw1b";
+    sha256 = "06ig9a1afmzgzcg817y0rdq49ahll0q9y7bhhg9d89x6zy959ypv";
   };
 
   # The original build system uses cmake which does things like pull
@@ -33,7 +29,7 @@ in stdenv.mkDerivation rec {
 
   makeFlags = [
     "prefix=${placeholder "out"}"
-    "PROTOBUF_PYTHON_DESC=${pythonProtobuf}/${python.sitePackages}/google/protobuf/descriptor_pb2.py"
+    "PROTOBUF_PYTHON_DESC=${python.pkgs.protobuf}/${python.sitePackages}/google/protobuf/descriptor_pb2.py"
   ];
   buildFlags = [ "cc" "pypi_archive" ];
 
@@ -54,7 +50,7 @@ in stdenv.mkDerivation rec {
   ];
   propagatedBuildInputs = [
     abseil-cpp gflags glog protobuf cbc
-    pythonProtobuf python.pkgs.six
+    python.pkgs.protobuf python.pkgs.six
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/science/math/osqp/default.nix b/pkgs/development/libraries/science/math/osqp/default.nix
new file mode 100644
index 00000000000..9cd062d21f2
--- /dev/null
+++ b/pkgs/development/libraries/science/math/osqp/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "osqp";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "oxfordcontrol";
+    repo = "osqp";
+    rev = "v${version}";
+    sha256 = "1gwk1bqsk0rd85zf7xplbwq822y5pnxjmqc14jj6knqbab9afvrs";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    description = "A quadratic programming solver using operator splitting";
+    homepage = "https://osqp.org";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ taktoa ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/science/math/petsc/default.nix b/pkgs/development/libraries/science/math/petsc/default.nix
index 6eeeda9e928..82a0d063570 100644
--- a/pkgs/development/libraries/science/math/petsc/default.nix
+++ b/pkgs/development/libraries/science/math/petsc/default.nix
@@ -1,28 +1,38 @@
-{ stdenv , fetchurl , blas , gfortran , lapack , python }:
+{ stdenv , darwin , fetchurl , blas , gfortran , lapack , python }:
 
 stdenv.mkDerivation rec {
   pname = "petsc";
-  version = "3.13.1";
+  version = "3.13.4";
 
   src = fetchurl {
     url = "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-${version}.tar.gz";
-    sha256 = "0pr604b9pnryl9q0q5arlhs0xdx7wslca0sbz0pzs9qylmz775qp";
+    sha256 = "1n2paqw5c0ja392s1qhp7q2ypwav8s5drxxz2w5m2cn31vbspy1c";
   };
 
-  nativeBuildInputs = [ blas gfortran.cc.lib lapack python ];
+  nativeBuildInputs = [ blas gfortran gfortran.cc.lib lapack python ];
 
-  prePatch = stdenv.lib.optionalString stdenv.isDarwin ''
+  # Upstream does some hot she-py-bang stuff, this change streamlines that
+  # process. The original script in upstream is both a shell script and a
+  # python script, where the shellscript just finds a suitable python
+  # interpreter to execute the python script. See
+  # https://github.com/NixOS/nixpkgs/pull/89299#discussion_r450203444
+  # for more details.
+  prePatch = ''
+    substituteInPlace configure \
+      --replace /bin/sh /usr/bin/python
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
     substituteInPlace config/install.py \
-      --replace /usr/bin/install_name_tool install_name_tool
+      --replace /usr/bin/install_name_tool ${darwin.cctools}/bin/install_name_tool
   '';
 
   preConfigure = ''
+    export FC="${gfortran}/bin/gfortran" F77="${gfortran}/bin/gfortran"
     patchShebangs .
     configureFlagsArray=(
       $configureFlagsArray
       "--CC=$CC"
       "--with-cxx=$CXX"
-      "--with-fc=0"
+      "--with-fc=$FC"
       "--with-mpi=0"
       "--with-blas-lib=[${blas}/lib/libblas.so,${gfortran.cc.lib}/lib/libgfortran.a]"
       "--with-lapack-lib=[${lapack}/lib/liblapack.so,${gfortran.cc.lib}/lib/libgfortran.a]"
diff --git a/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix b/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
index 5244ccdb281..1c910a4f75b 100644
--- a/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
+++ b/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "suitesparse-graphblas";
-  version = "3.3.0";
+  version = "3.3.3";
 
   outputs = [ "out" "dev" ];
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     owner = "DrTimothyAldenDavis";
     repo = "GraphBLAS";
     rev = "v${version}";
-    sha256 = "1fin9741ild3dv7c9gk07kpizsnnx17ar9cv9lny8vl47pms940h";
+    sha256 = "1nmygb2yny0mdqp0mc6760gbxklq1jjm0c6s39qkdwzf3n9f8j7p";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/seasocks/default.nix b/pkgs/development/libraries/seasocks/default.nix
index 144eb56c955..241046b09fe 100644
--- a/pkgs/development/libraries/seasocks/default.nix
+++ b/pkgs/development/libraries/seasocks/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "seasocks";
-  version = "1.4.3";
+  version = "1.4.4";
 
   src = fetchFromGitHub {
     owner = "mattgodbolt";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1c2gc0k9wgbgn7y7wmq2ylp0gvdbmagc1x8c4jwbsncl1gy6x4g2";
+    sha256 = "1f9a3mx3yjmr5qry4rc1c7mrx3348iifxm7d8sj8yd41kqnzmfv4";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/serd/default.nix b/pkgs/development/libraries/serd/default.nix
index 6829275e99e..88fd1ea82d3 100644
--- a/pkgs/development/libraries/serd/default.nix
+++ b/pkgs/development/libraries/serd/default.nix
@@ -16,6 +16,6 @@ stdenv.mkDerivation rec {
     description = "A lightweight C library for RDF syntax which supports reading and writing Turtle and NTriples";
     license = licenses.mit;
     maintainers = [ maintainers.goibhniu ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/serf/default.nix b/pkgs/development/libraries/serf/default.nix
index 2742ba1577b..92dde2111fc 100644
--- a/pkgs/development/libraries/serf/default.nix
+++ b/pkgs/development/libraries/serf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, apr, scons, openssl, aprutil, zlib, kerberos
+{ stdenv, fetchurl, apr, sconsPackages, openssl, aprutil, zlib, kerberos
 , pkgconfig, libiconv }:
 
 stdenv.mkDerivation rec {
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1k47gbgpp52049andr28y28nbwh9m36bbb0g8p0aka3pqlhjv72l";
   };
 
-  nativeBuildInputs = [ pkgconfig scons.py2 ];
+  nativeBuildInputs = [ pkgconfig sconsPackages.scons_3_1_2 ];
   buildInputs = [ apr openssl aprutil zlib libiconv ]
     ++ stdenv.lib.optional (!stdenv.isCygwin) kerberos;
 
diff --git a/pkgs/development/libraries/snap7/default.nix b/pkgs/development/libraries/snap7/default.nix
new file mode 100644
index 00000000000..3419c4c6c2a
--- /dev/null
+++ b/pkgs/development/libraries/snap7/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, lib, fetchFromGitHub, fetchzip, p7zip }:
+
+stdenv.mkDerivation rec {
+  pname = "snap7";
+  version = "1.4.2";
+
+  src = fetchzip {
+    url = "mirror://sourceforge/snap7/${version}/snap7-full-${version}.7z";
+    sha256 = "1n5gs8bwb6g9vfllf3x12r5yzqzapmlq1bmc6hl854b8vkg30y8c";
+    postFetch = ''
+      ${p7zip}/bin/7z x $downloadedFile
+      mkdir $out
+      cp -r snap7-full-${version}/* $out/
+    '';
+  };
+
+  outputs = [ "out" "dev" "doc" ];
+
+  makefile = "x86_64_linux.mk";
+  makeFlags = [ "LibInstall=$(out)/lib" ];
+
+  preBuild = "cd build/unix";
+  preInstall = ''
+    mkdir -p $out/lib
+    mkdir -p $dev/include
+    mkdir -p $doc/share
+    cp $src/examples/cpp/snap7.h $dev/include
+    cp -r $src/doc $doc/share/
+  '';
+
+  meta = with lib; {
+    homepage = "http://snap7.sourceforge.net/";
+    description = "Step7 Open Source Ethernet Communication Suite";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ freezeboy ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/soil/default.nix b/pkgs/development/libraries/soil/default.nix
index 10a60c36987..cf0896170c1 100644
--- a/pkgs/development/libraries/soil/default.nix
+++ b/pkgs/development/libraries/soil/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip, mesa, libX11 }:
+{ stdenv, fetchurl, unzip, mesa, libX11, libGL }:
 
 stdenv.mkDerivation {
   name = "soil";
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "00gpwp9dldzhsdhksjvmbhsd2ialraqbv6v6dpikdmpncj6mnc52";
   };
 
-  buildInputs = [ unzip mesa libX11 ];
+  buildInputs = [ unzip mesa libGL libX11 ];
 
   sourceRoot = "Simple OpenGL Image Library/projects/makefile";
   preBuild   = "mkdir obj";
diff --git a/pkgs/development/libraries/sope/default.nix b/pkgs/development/libraries/sope/default.nix
index 9d0b3bf76b3..2c73ff24df2 100644
--- a/pkgs/development/libraries/sope/default.nix
+++ b/pkgs/development/libraries/sope/default.nix
@@ -1,13 +1,13 @@
 { gnustep, lib, fetchFromGitHub , libxml2, openssl_1_1
 , openldap, mysql, libmysqlclient, postgresql }: with lib; gnustep.stdenv.mkDerivation rec {
   pname = "sope";
-  version = "4.3.2";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "inverse-inc";
     repo = pname;
     rev = "SOPE-${version}";
-    sha256 = "0ny1ihx38gd25w8f3dfybyswvyjfljvb2fhfmkajgg6hhjrkfar2";
+    sha256 = "sha256-7NM9wcyHDSVmjjqu489Ff3iJgl9VM+UBF3XYWoiHHTg=";
   };
 
   nativeBuildInputs = [ gnustep.make ];
diff --git a/pkgs/development/libraries/sord/default.nix b/pkgs/development/libraries/sord/default.nix
index 5258f4d408b..eb91ec2986a 100644
--- a/pkgs/development/libraries/sord/default.nix
+++ b/pkgs/development/libraries/sord/default.nix
@@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
     description = "A lightweight C library for storing RDF data in memory";
     license = licenses.mit;
     maintainers = [ maintainers.goibhniu ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/sparsehash/default.nix b/pkgs/development/libraries/sparsehash/default.nix
index 6845c616e9c..6007560a11f 100644
--- a/pkgs/development/libraries/sparsehash/default.nix
+++ b/pkgs/development/libraries/sparsehash/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  name = "sparsehash-2.0.3";
+  name = "sparsehash-2.0.4";
 
   src = fetchFromGitHub {
     owner = "sparsehash";
     repo = "sparsehash";
     rev = name;
-    sha256 = "0m3f0cnpnpf6aak52wn8xbrrdw8p0yhq8csgc8nlvf9zp8c402na";
+    sha256 = "1pf1cjvcjdmb9cd6gcazz64x0cd2ndpwh6ql2hqpypjv725xwxy7";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/spdlog/default.nix b/pkgs/development/libraries/spdlog/default.nix
index add1dcf10cb..22266bfd4b0 100644
--- a/pkgs/development/libraries/spdlog/default.nix
+++ b/pkgs/development/libraries/spdlog/default.nix
@@ -35,8 +35,8 @@ let
 in
 {
   spdlog_1 = generic {
-    version = "1.6.0";
-    sha256 = "15fn8nd9xj7wrxcg9n4fjffid790qg2m366rx2lq2fc9v9walrxs";
+    version = "1.7.0";
+    sha256 = "1ryaa22ppj60461hcdb8nk7jwj84arp4iw4lyw594py92g4vnx3j";
   };
 
   spdlog_0 = generic {
diff --git a/pkgs/development/libraries/speechd/default.nix b/pkgs/development/libraries/speechd/default.nix
index eab6c1d446c..fbf399cb246 100644
--- a/pkgs/development/libraries/speechd/default.nix
+++ b/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.9.1";
+  version = "0.10.1";
 
   src = fetchurl {
     url = "https://github.com/brailcom/speechd/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "16bg52hnkrsrs7kgbzanb34b9zb6fqxwj0a9bmsxmj1skkil1h1p";
+    sha256 = "0j2lfzkmbsxrrgjw6arzvnfd4jn5pxab28xsk2djssr2ydb9x309";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/sqlite/analyzer.nix b/pkgs/development/libraries/sqlite/analyzer.nix
index cf8a9aaa732..d0100edd345 100644
--- a/pkgs/development/libraries/sqlite/analyzer.nix
+++ b/pkgs/development/libraries/sqlite/analyzer.nix
@@ -6,11 +6,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "sqlite-analyzer";
-  version = "3.32.2";
+  version = "3.33.0";
 
   src = assert version == sqlite.version; fetchurl {
     url = "https://sqlite.org/2020/sqlite-src-${archiveVersion version}.zip";
-    sha256 = "1jqhs896cvp9l399mjpbv1x2qbfvq875l1vrgnl3zc4ffdjxs9z0";
+    sha256 = "1f09srlrmcab1sf8j2d89s2kvknlbxk7mbsiwpndw9mall27dgwh";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index 35d3d062ab7..3647516c803 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -10,12 +10,12 @@ in
 
 stdenv.mkDerivation rec {
   pname = "sqlite";
-  version = "3.32.2";
+  version = "3.33.0";
 
   # NB! Make sure to update analyzer.nix src (in the same directory).
   src = fetchurl {
     url = "https://sqlite.org/2020/sqlite-autoconf-${archiveVersion version}.tar.gz";
-    sha256 = "1130bcd70s2vlsq0d638pb5qrw9kwqvjswnp2dfypghx9hjz3gid";
+    sha256 = "05dvdfaxd552gj5p7k0i72sfam7lykaw1g2pfn52jnppqx42qshh";
   };
 
   outputs = [ "bin" "dev" "out" ];
diff --git a/pkgs/development/libraries/strigi/default.nix b/pkgs/development/libraries/strigi/default.nix
deleted file mode 100644
index 33a2ae25b12..00000000000
--- a/pkgs/development/libraries/strigi/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ stdenv, fetchurl, cmake, qt4, perl, bzip2, libxml2, exiv2
-, clucene_core, fam, zlib, dbus, pkgconfig
-}:
-
-stdenv.mkDerivation rec {
-  pname = "strigi";
-  version = "0.7.8";
-
-  src = fetchurl {
-    url = "https://www.vandenoever.info/software/strigi/${pname}-${version}.tar.bz2";
-    sha256 = "12grxzqwnvbyqw7q1gnz42lypadxmq89vk2qpxczmpmc4nk63r23";
-  };
-
-  includeAllQtDirs = true;
-
-  CLUCENE_HOME = clucene_core;
-
-  buildInputs =
-    [ zlib bzip2 libxml2 qt4 exiv2 clucene_core fam dbus.out ];
-
-  nativeBuildInputs = [ cmake pkgconfig perl ];
-
-  patches = [ ./export_bufferedstream.patch ./gcc6.patch ];
-
-  enableParallelBuilding = true;
-
-  # Strigi installs some libraries in an incorrect place
-  # ($out/$out/lib instead of $out/lib), so move them to the right
-  # place.
-  postInstall =
-    ''
-      mv $out/$out/lib/* $out/lib
-      rm -rf $out/nix
-    '';
-
-  meta = {
-    homepage = "http://strigi.sourceforge.net";
-    description = "A very fast and efficient crawler to index data on your harddrive";
-    license = "LGPL";
-    maintainers = with stdenv.lib.maintainers; [ sander ];
-    inherit (qt4.meta) platforms;
-  };
-}
diff --git a/pkgs/development/libraries/strigi/export_bufferedstream.patch b/pkgs/development/libraries/strigi/export_bufferedstream.patch
deleted file mode 100644
index 4c6b34fe1be..00000000000
--- a/pkgs/development/libraries/strigi/export_bufferedstream.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -u -r strigi-0.7.8/libstreams/include/strigi/bufferedstream.h strigi-0.7.8_new/libstreams/include/strigi/bufferedstream.h
---- strigi-0.7.8/libstreams/include/strigi/bufferedstream.h	2013-02-05 13:34:57.000000000 -0800
-+++ strigi-0.7.8_new/libstreams/include/strigi/bufferedstream.h	2013-07-14 17:01:54.000000000 -0700
-@@ -34,7 +34,7 @@
-  * BufferedStream will do the rest.
-  */
- template <class T>
--class BufferedStream : public StreamBase<T> {
-+class STRIGI_EXPORT BufferedStream : public StreamBase<T> {
- private:
-     StreamBuffer<T> buffer;
-     bool finishedWritingToBuffer;
diff --git a/pkgs/development/libraries/strigi/gcc6.patch b/pkgs/development/libraries/strigi/gcc6.patch
deleted file mode 100644
index b46f6c52b82..00000000000
--- a/pkgs/development/libraries/strigi/gcc6.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-https://sourceforge.net/p/strigi/patches/4/
-
-and a fix for
-
-/tmp/nix-build-strigi-0.7.8.drv-0/strigi-0.7.8/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp:325:37: error: no matching function for call to 'make_pair(std::__cxx11::string, std::__cxx11::string&)'
-             wchartoutf8(name), value));
-
-diff -Naur strigi-0.7.8.old/libstreamanalyzer/cmake/MacroCheckGccVisibility.cmake strigi-0.7.8/libstreamanalyzer/cmake/MacroCheckGccVisibility.cmake
---- strigi-0.7.8.old/libstreamanalyzer/cmake/MacroCheckGccVisibility.cmake	2013-02-05 16:34:52.000000000 -0500
-+++ strigi-0.7.8/libstreamanalyzer/cmake/MacroCheckGccVisibility.cmake	2016-05-14 11:39:54.586260564 -0400
-@@ -15,7 +15,7 @@
-    # get the gcc version
-    exec_program(${CMAKE_C_COMPILER} ARGS ${CMAKE_C_COMPILER_ARG1} --version OUTPUT_VARIABLE _gcc_version_info)
- 
--   string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}")
-+   string (REGEX MATCH "[3456789]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}")
-    # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the patch level, handle this here:
-    if (NOT _gcc_version)
-       string (REGEX REPLACE ".*\\(GCC\\).* ([34]\\.[0-9]) .*" "\\1.0" _gcc_version "${_gcc_version_info}")
-diff -Naur strigi-0.7.8.old/libstreams/cmake/MacroCheckGccVisibility.cmake strigi-0.7.8/libstreams/cmake/MacroCheckGccVisibility.cmake
---- strigi-0.7.8.old/libstreams/cmake/MacroCheckGccVisibility.cmake	2013-02-05 16:34:57.000000000 -0500
-+++ strigi-0.7.8/libstreams/cmake/MacroCheckGccVisibility.cmake	2016-05-14 11:40:11.340134414 -0400
-@@ -15,7 +15,7 @@
-    # get the gcc version
-    exec_program(${CMAKE_C_COMPILER} ARGS ${CMAKE_C_COMPILER_ARG1} --version OUTPUT_VARIABLE _gcc_version_info)
- 
--   string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}")
-+   string (REGEX MATCH "[3456789]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}")
-    # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the patch level, handle this here:
-    if (NOT _gcc_version)
-       string (REGEX REPLACE ".*\\(GCC\\).* ([34]\\.[0-9]) .*" "\\1.0" _gcc_version "${_gcc_version_info}")
-
-diff -ru strigi-0.7.8-orig/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp strigi-0.7.8/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp
---- strigi-0.7.8-orig/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp	2013-02-05 22:34:52.000000000 +0100
-+++ strigi-0.7.8/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp	2017-07-31 10:56:27.067902643 +0200
-@@ -321,8 +321,7 @@
-         string size = value;
-         doc.size = atoi(size.c_str());
-     } else {
--        doc.properties.insert(make_pair<const string, string>(
--            wchartoutf8(name), value));
-+        doc.properties.emplace(wchartoutf8(name), value);
-     }
- }
- Variant
diff --git a/pkgs/development/libraries/swiften/default.nix b/pkgs/development/libraries/swiften/default.nix
index 19bacdd2a61..2fe20cc9e88 100644
--- a/pkgs/development/libraries/swiften/default.nix
+++ b/pkgs/development/libraries/swiften/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, python, fetchurl, openssl, boost, scons }:
+{ stdenv, python, fetchurl, openssl, boost, sconsPackages }:
 stdenv.mkDerivation rec {
   pname = "swiften";
   version = "4.0.2";
 
-  nativeBuildInputs = [ scons.py2 ];
+  nativeBuildInputs = [ sconsPackages.scons_3_1_2 ];
   buildInputs           = [ python ];
   propagatedBuildInputs = [ openssl boost ];
 
diff --git a/pkgs/development/libraries/tbb/default.nix b/pkgs/development/libraries/tbb/default.nix
index 18f9e541acd..8f045802d3a 100644
--- a/pkgs/development/libraries/tbb/default.nix
+++ b/pkgs/development/libraries/tbb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, compiler ? if stdenv.cc.isClang then "clang" else null, stdver ? null }:
+{ stdenv, fetchFromGitHub, fixDarwinDylibNames, compiler ? if stdenv.cc.isClang then "clang" else null, stdver ? null }:
 
 with stdenv.lib; stdenv.mkDerivation rec {
   pname = "tbb";
@@ -11,6 +11,8 @@ with stdenv.lib; stdenv.mkDerivation rec {
     sha256 = "1a39nflw7b2n51jfp3fdprnkpgzaspzww1dckfvaigflfli9s8rj";
   };
 
+  nativeBuildInputs = optional stdenv.isDarwin fixDarwinDylibNames;
+
   makeFlags = optional (compiler != null) "compiler=${compiler}"
     ++ optional (stdver != null) "stdver=${stdver}";
 
diff --git a/pkgs/development/libraries/tiledb/default.nix b/pkgs/development/libraries/tiledb/default.nix
index 3ebfd4ea919..2726ed7f237 100644
--- a/pkgs/development/libraries/tiledb/default.nix
+++ b/pkgs/development/libraries/tiledb/default.nix
@@ -16,19 +16,26 @@
 , python
 , gtest
 , doxygen
+, fixDarwinDylibNames
 }:
 
 stdenv.mkDerivation rec {
   pname = "tiledb";
-  version = "1.7.7";
+  version = "2.0.7";
 
   src = fetchFromGitHub {
     owner = "TileDB-Inc";
     repo = "TileDB";
     rev = version;
-    sha256 = "0vpbyxi8k29c7sjpk86y5w3yyp5fn62q5xvbw061wgp7vrprf8bm";
+    sha256 = "00g8ibsbnl4wjfx3qg4qy6s7z6dsj898j0yqfhw1gjr1pb5dsapb";
   };
 
+  # (bundled) blosc headers have a warning on some archs that it will be using
+  # unaccelerated routines.
+  cmakeFlags = [
+    "-DTILEDB_WERROR=0"
+  ];
+
   nativeBuildInputs = [
     clang-tools
     cmake
@@ -53,7 +60,7 @@ stdenv.mkDerivation rec {
     openssl
     boost
     libpqxx
-  ];
+  ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
 
   # emulate the process of pulling catch down
   postPatch = ''
@@ -65,11 +72,15 @@ stdenv.mkDerivation rec {
 
   installTargets = [ "install-tiledb" "doc" ];
 
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    install_name_tool -add_rpath ${tbb}/lib $out/lib/libtiledb.dylib
+  '';
+
   meta = with lib; {
     description = "TileDB allows you to manage the massive dense and sparse multi-dimensional array data";
     homepage = "https://github.com/TileDB-Inc/TileDB";
     license = licenses.mit;
-    platforms = [ "x86_64-linux"];
+    platforms = platforms.unix;
     maintainers = with maintainers; [ rakesh4g ];
   };
 
diff --git a/pkgs/development/libraries/timezonemap/default.nix b/pkgs/development/libraries/timezonemap/default.nix
new file mode 100644
index 00000000000..131d66e45cc
--- /dev/null
+++ b/pkgs/development/libraries/timezonemap/default.nix
@@ -0,0 +1,65 @@
+{ stdenv
+, autoreconfHook
+, fetchbzr
+, pkgconfig
+, gtk3
+, glib
+, file
+, gobject-introspection
+, json-glib
+, libsoup
+}:
+
+stdenv.mkDerivation rec {
+  pname = "timezonemap";
+  version = "0.4.5";
+
+  src = fetchbzr {
+    url = "lp:timezonemap";
+    rev = "58";
+    sha256 = "1qdp5f9zd8c02bf0mq4w15rlhz2g51phml5qg9asdyfd1715f8n0";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    autoreconfHook
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    gtk3
+    glib
+    json-glib
+    libsoup
+  ];
+
+  configureFlags = [
+    "CFLAGS=-Wno-error"
+    "--sysconfdir=/etc"
+    "--localstatedir=/var"
+  ];
+
+  installFlags = [
+    "sysconfdir=${placeholder "out"}/etc"
+    "localstatedir=\${TMPDIR}"
+  ];
+
+  preConfigure = ''
+    for f in {configure,m4/libtool.m4}; do
+      substituteInPlace $f\
+        --replace /usr/bin/file ${file}/bin/file
+    done
+  '';
+
+  postPatch = ''
+    sed "s|/usr/share/libtimezonemap|$out/share/libtimezonemap|g" -i ./src/tz.h
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://launchpad.net/timezonemap";
+    description = "A GTK+3 Timezone Map Widget";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/pkgs/development/libraries/tinycbor/default.nix b/pkgs/development/libraries/tinycbor/default.nix
new file mode 100644
index 00000000000..62f2a807185
--- /dev/null
+++ b/pkgs/development/libraries/tinycbor/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "tinycbor";
+  version = "0.5.3";
+
+  src = fetchFromGitHub {
+    owner = "intel";
+    repo = "tinycbor";
+    rev = "v${version}";
+    sha256 = "11y6liyd3fvc28d3dinii16sxgwgg2p29p41snc4h82dvvx5bb2b";
+  };
+
+  makeFlags = [ "prefix=$(out)" ];
+
+  meta = with stdenv.lib; {
+    description = "Concise Binary Object Representation (CBOR) Library";
+    homepage = "https://github.com/intel/tinycbor";
+    license = licenses.mit;
+    maintainers = with maintainers; [ oxzi ];
+  };
+}
diff --git a/pkgs/development/libraries/tk/generic.nix b/pkgs/development/libraries/tk/generic.nix
index 745be0be922..1cbf4026cb8 100644
--- a/pkgs/development/libraries/tk/generic.nix
+++ b/pkgs/development/libraries/tk/generic.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   postInstall = ''
     ln -s $out/bin/wish* $out/bin/wish
     cp ../{unix,generic}/*.h $out/include
-    ln -s $out/lib/libtk${tcl.release}.so $out/lib/libtk.so
+    ln -s $out/lib/libtk${tcl.release}${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libtk${stdenv.hostPlatform.extensions.sharedLibrary}
   ''
   + stdenv.lib.optionalString (stdenv.isDarwin) ''
     cp ../macosx/*.h $out/include
diff --git a/pkgs/development/libraries/tllist/default.nix b/pkgs/development/libraries/tllist/default.nix
new file mode 100644
index 00000000000..a17b3e415d5
--- /dev/null
+++ b/pkgs/development/libraries/tllist/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, fetchgit, meson, ninja }:
+
+stdenv.mkDerivation rec {
+  pname = "tllist";
+  version = "1.0.2";
+
+  src = fetchgit {
+    url = "https://codeberg.org/dnkl/tllist.git";
+    rev = "${version}";
+    sha256 = "095wly66z9n2r6h318rackgl4g1w9l1vj96367ngcw7rpva9yppl";
+  };
+
+  nativeBuildInputs = [
+    meson ninja
+  ];
+
+  meta = with lib; {
+    homepage = "https://codeberg.org/dnkl/tllist";
+    description = "C header file only implementation of a typed linked list";
+    maintainers = with maintainers; [ fionera ];
+    license = licenses.mit;
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/development/libraries/tweeny/default.nix b/pkgs/development/libraries/tweeny/default.nix
index d3c30028ba4..f2de470288d 100644
--- a/pkgs/development/libraries/tweeny/default.nix
+++ b/pkgs/development/libraries/tweeny/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tweeny";
-  version = "3.1.0";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "mobius3";
     repo = "tweeny";
     rev = "v${version}";
-    sha256 = "0qvby57g9a2m4afd1mgard3k7nm4ynbvali7nzm1qn3ygdmqid7n";
+    sha256 = "0zk7p21i54hfz0l50617i3gxhxh0n9yy86n2fxg8m26cvf4yhsj7";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/uci/default.nix b/pkgs/development/libraries/uci/default.nix
index e3bdea8c889..aa2a88653bb 100644
--- a/pkgs/development/libraries/uci/default.nix
+++ b/pkgs/development/libraries/uci/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation {
   pname = "uci";
-  version = "unstable-2020-01-27";
+  version = "unstable-2020-04-27";
 
   src = fetchgit {
     url = "https://git.openwrt.org/project/uci.git";
-    rev = "e8d83732f9eb571dce71aa915ff38a072579610b";
-    sha256 = "1si8dh8zzw4j6m7387qciw2akfvl7c4779s8q5ns2ys6dn4sz6by";
+    rev = "ec8d3233948603485e1b97384113fac9f1bab5d6";
+    sha256 = "0p765l8znvwhzhgkq7dp36w62k5rmzav59vgdqmqq1bjmlz1yyi6";
   };
 
   hardeningDisable = [ "all" ];
diff --git a/pkgs/development/libraries/ucx/default.nix b/pkgs/development/libraries/ucx/default.nix
index 9ec8ca660cf..1961e8aef68 100644
--- a/pkgs/development/libraries/ucx/default.nix
+++ b/pkgs/development/libraries/ucx/default.nix
@@ -3,7 +3,7 @@
 }:
 
 let
-  version = "1.7.0";
+  version = "1.8.1";
 
 in stdenv.mkDerivation {
   name = "ucx-${version}";
@@ -12,7 +12,7 @@ in stdenv.mkDerivation {
     owner = "openucx";
     repo = "ucx";
     rev = "v${version}";
-    sha256 = "149p8s7jrg7pbbq0hw0qm8va119bsl19q4scgk94vjqliyc1s33h";
+    sha256 = "0yfnx4shgydkp447kipavjzgl6z58jan6l7znhdi8ry4zbgk568a";
   };
 
   nativeBuildInputs = [ autoreconfHook doxygen ];
diff --git a/pkgs/development/libraries/unicorn-emu/default.nix b/pkgs/development/libraries/unicorn-emu/default.nix
index 7917b695406..3e10f492eb9 100644
--- a/pkgs/development/libraries/unicorn-emu/default.nix
+++ b/pkgs/development/libraries/unicorn-emu/default.nix
@@ -1,17 +1,25 @@
-{ stdenv, fetchurl, pkgconfig, python }:
+{ stdenv, fetchurl, pkgconfig, python, cmocka, hexdump, writeScriptBin, binutils-unwrapped }:
 
 stdenv.mkDerivation rec {
   pname = "unicorn-emulator";
-  version = "1.0.1";
+  version = "1.0.2-rc4";
 
   src = fetchurl {
     url    = "https://github.com/unicorn-engine/unicorn/archive/${version}.tar.gz";
-    sha256 = "0z01apwmvhvdldm372ww9pjfn45awkw3m90c0h4v0nj0ihmlysis";
+    sha256 = "05w43jq3r97l3c8ggc745ai8m5l93p1b6q6cfp1zwzz6hl5kifiv";
   };
 
-  configurePhase = '' patchShebangs make.sh '';
-  buildPhase = '' ./make.sh '' + stdenv.lib.optionalString stdenv.isDarwin "macos-universal-no";
-  installPhase = '' env PREFIX=$out ./make.sh install '';
+  PREFIX = placeholder "out";
+  MACOS_UNIVERSAL = stdenv.lib.optionalString stdenv.isDarwin "no";
+  NIX_CFLAGS_COMPILE = "-Wno-error";
+
+  doCheck = !stdenv.isDarwin;
+
+  checkInputs = [
+    cmocka
+    hexdump
+    python.pkgs.setuptools
+  ];
 
   nativeBuildInputs = [ pkgconfig python ];
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/urdfdom-headers/default.nix b/pkgs/development/libraries/urdfdom-headers/default.nix
new file mode 100644
index 00000000000..91fc747b84a
--- /dev/null
+++ b/pkgs/development/libraries/urdfdom-headers/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, validatePkgConfig }:
+
+stdenv.mkDerivation rec {
+  pname = "urdfdom-headers";
+  version = "1.0.5";
+
+  src = fetchFromGitHub {
+    owner = "ros";
+    repo = "urdfdom_headers";
+    rev = version;
+    sha256 = "1abzhcyv2vad8l36vy0fcz9kpgns834la7hf9zal962bwycqnkmg";
+  };
+
+  patches = [
+    # Fix CMake relative install dir assumptions (https://github.com/ros/urdfdom_headers/pull/66)
+    (fetchpatch {
+      url = "https://github.com/ros/urdfdom_headers/commit/990fd233b1a3ff68872a3552f3ea5ccbe105848c.patch";
+      sha256 = "1hxf2kw3mkll3fzvsby104b2m854bdpiy9gr3r9ysmw2r537gqdy";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake validatePkgConfig ];
+
+  meta = with lib; {
+    description = "URDF (U-Robot Description Format) headers provides core data structure headers for URDF";
+    homepage = "https://github.com/ros/urdfdom_headers";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ lopsided98 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/urdfdom/default.nix b/pkgs/development/libraries/urdfdom/default.nix
new file mode 100644
index 00000000000..1b75851c93d
--- /dev/null
+++ b/pkgs/development/libraries/urdfdom/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, pkg-config, validatePkgConfig
+, tinyxml, boost, urdfdom-headers, console-bridge }:
+
+stdenv.mkDerivation rec {
+  pname = "urdfdom";
+  version = "1.0.4";
+
+  src = fetchFromGitHub {
+    owner = "ros";
+    repo = pname;
+    rev = version;
+    sha256 = "0wambq06d7dvja25zcv4agc055q9rmf3xkrnxy8lsf4nic7ra2rr";
+  };
+
+  patches = [
+    # Fix CMake saying console-bridge 1.0 is incompatible
+    (fetchpatch {
+      url = "https://github.com/ros/urdfdom/commit/6faba176d41cf39114785a3e029013f941ed5a0e.patch";
+      sha256 = "1pn9hcg5wkkc7y28sbkxvffqxgvazzsp3g1xmz6h055v4f9ikjbs";
+    })
+    # Fix CMake relative install dir assumptions (https://github.com/ros/urdfdom/pull/142)
+    (fetchpatch {
+      url = "https://github.com/ros/urdfdom/commit/707c97c3d1f739ba0ab6e93e1bf7cd01d68a8c07.patch";
+      sha256 = "10bv7sv7gfy6lj8z5bkw7v291y12fbrrxsiqxqjxg4i65rfg92ng";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake pkg-config validatePkgConfig ];
+  buildInputs = [ tinyxml boost ];
+  propagatedBuildInputs = [ urdfdom-headers console-bridge ];
+
+  meta = with lib; {
+    description = "Provides core data structures and a simple XML parser for populating the class data structures from an URDF file";
+    homepage = "https://github.com/ros/urdfdom";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ lopsided98 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/utf8proc/default.nix b/pkgs/development/libraries/utf8proc/default.nix
index 13a9855b62e..e08aea2e1ee 100644
--- a/pkgs/development/libraries/utf8proc/default.nix
+++ b/pkgs/development/libraries/utf8proc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "utf8proc";
@@ -11,7 +11,17 @@ stdenv.mkDerivation rec {
     sha256 = "1xlkazhdnja4lksn5c9nf4bln5gjqa35a8gwlam5r0728w0h83qq";
   };
 
-  makeFlags = [ "prefix=$(out)" ];
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=ON"
+  ];
+
+  # the pkg-config file is not created in the cmake installation
+  # process, so we use the Makefile and install it manually
+  # see https://github.com/JuliaStrings/utf8proc/issues/198
+  preConfigure = "make libutf8proc.pc prefix=$out";
+  postInstall = "install -Dm644 ../libutf8proc.pc -t $out/lib/pkgconfig/";
 
   meta = with stdenv.lib; {
     description = "A clean C library for processing UTF-8 Unicode data";
diff --git a/pkgs/development/libraries/vaapi-intel/default.nix b/pkgs/development/libraries/vaapi-intel/default.nix
index c61429324ed..81edb9caea0 100644
--- a/pkgs/development/libraries/vaapi-intel/default.nix
+++ b/pkgs/development/libraries/vaapi-intel/default.nix
@@ -1,38 +1,32 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, gnum4, pkgconfig, python2
+{ stdenv, fetchFromGitHub, autoreconfHook, gnum4, pkg-config, python3
 , intel-gpu-tools, libdrm, libva, libX11, libGL, wayland, libXext
 , enableHybridCodec ? false, vaapi-intel-hybrid
 }:
 
 stdenv.mkDerivation rec {
   pname = "intel-vaapi-driver";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "intel-vaapi-driver";
     rev    = version;
-    sha256 = "019w0hvjc9l85yqhy01z2bvvljq208nkb43ai2v377l02krgcrbl";
+    sha256 = "1cidki3av9wnkgwi7fklxbg3bh6kysf8w3fk2qadjr05a92mx3zp";
   };
 
-  patchPhase = ''
-    patchShebangs ./src/shaders/gpp.py
-  '';
-
-  preConfigure = ''
-    sed -i -e "s,LIBVA_DRIVERS_PATH=.*,LIBVA_DRIVERS_PATH=$out/lib/dri," configure
-  '';
+  # Set the correct install path:
+  LIBVA_DRIVERS_PATH = "${placeholder "out"}/lib/dri";
 
   postInstall = stdenv.lib.optionalString enableHybridCodec ''
     ln -s ${vaapi-intel-hybrid}/lib/dri/* $out/lib/dri/
   '';
 
   configureFlags = [
-    "--enable-drm"
     "--enable-x11"
     "--enable-wayland"
   ] ++ stdenv.lib.optional enableHybridCodec "--enable-hybrid-codec";
 
-  nativeBuildInputs = [ autoreconfHook gnum4 pkgconfig python2 ];
+  nativeBuildInputs = [ autoreconfHook gnum4 pkg-config python3 ];
 
   buildInputs = [ intel-gpu-tools libdrm libva libX11 libXext libGL wayland ]
     ++ stdenv.lib.optional enableHybridCodec vaapi-intel-hybrid;
@@ -42,8 +36,18 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     homepage = "https://01.org/linuxmedia";
     license = licenses.mit;
-    description = "Intel driver for the VAAPI library";
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ ];
+    description = "VA-API user mode driver for Intel GEN Graphics family";
+    longDescription = ''
+      This VA-API video driver backend provides a bridge to the GEN GPUs through
+      the packaging of buffers and commands to be sent to the i915 driver for
+      exercising both hardware and shader functionality for video decode,
+      encode, and processing.
+      VA-API is an open-source library and API specification, which provides
+      access to graphics hardware acceleration capabilities for video
+      processing. It consists of a main library and driver-specific acceleration
+      backends for each supported hardware vendor.
+    '';
+    platforms = [ "x86_64-linux" "i686-linux" ];
+    maintainers = with maintainers; [ primeos ];
   };
 }
diff --git a/pkgs/development/libraries/vid-stab/default.nix b/pkgs/development/libraries/vid-stab/default.nix
index e22396f8aa3..2921719e755 100644
--- a/pkgs/development/libraries/vid-stab/default.nix
+++ b/pkgs/development/libraries/vid-stab/default.nix
@@ -1,22 +1,25 @@
-{ stdenv, fetchurl, cmake }:
+{ stdenv, fetchFromGitHub, cmake, openmp }:
 
 stdenv.mkDerivation rec {
-  pname = "vid-stab";
-  version = "0.98b";
-  
-  src = fetchurl {
-    url = "https://github.com/georgmartius/vid.stab/archive/release-${version}.tar.gz";
-    sha256 = "09fh6xbd1f5xp3il3dpvr87skmnp2mm2hfmg4s9rvj4y8zvhn3sk";
+  pname = "vid.stab";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "georgmartius";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0a3frpm2kdbx7vszhg64p3alisag73bcspl7fp3a2f1kgq7rbh38";
   };
 
   nativeBuildInputs = [ cmake ];
-  
+
+  buildInputs = stdenv.lib.optionals stdenv.cc.isClang [ openmp ];
+
   meta = with stdenv.lib; {
     description = "Video stabilization library";
-    homepage    = "http://public.hronopik.de/vid.stab/";
-    license     = licenses.gpl2;
+    homepage = "http://public.hronopik.de/vid.stab/";
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ codyopel ];
-    platforms   = platforms.all;
+    platforms = platforms.all;
   };
 }
-
diff --git a/pkgs/development/libraries/vtk/9.x.nix b/pkgs/development/libraries/vtk/9.x.nix
new file mode 100644
index 00000000000..455431ec341
--- /dev/null
+++ b/pkgs/development/libraries/vtk/9.x.nix
@@ -0,0 +1,95 @@
+{ stdenv, mkDerivation, fetchurl, cmake, libGLU, libGL, libX11, xorgproto, libXt, libtiff
+, fetchpatch
+, enableQt ? false, qtbase, qtx11extras, qttools
+, enablePython ? false, python ? null
+# Darwin support
+, Cocoa, CoreServices, DiskArbitration, IOKit, CFNetwork, Security, GLUT, OpenGL
+, ApplicationServices, CoreText, IOSurface, ImageIO, xpc, libobjc }:
+
+with stdenv.lib;
+
+let
+  os = stdenv.lib.optionalString;
+  majorVersion = "9.0";
+  minorVersion = "1";
+  version = "${majorVersion}.${minorVersion}";
+in
+
+mkDerivation rec {
+  name = "vtk-${os enableQt "qvtk-"}${version}";
+  src = fetchurl {
+    url = "${meta.homepage}files/release/${majorVersion}/VTK-${version}.tar.gz";
+    sha256 = "1ir2lq9i45ls374lcmjzw0nrm5l5hnm1w47lg8g8d0n2j7hsaf8v";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ libtiff ]
+    ++ optionals enableQt [ qtbase qtx11extras qttools ]
+    ++ optionals stdenv.isLinux [
+      libGLU
+      libGL
+      libX11
+      xorgproto
+      libXt
+    ] ++ optionals stdenv.isDarwin [
+      xpc
+      Cocoa
+      CoreServices
+      DiskArbitration
+      IOKit
+      CFNetwork
+      Security
+      ApplicationServices
+      CoreText
+      IOSurface
+      ImageIO
+      OpenGL
+      GLUT
+    ]
+    ++ optional enablePython [
+      python
+    ];
+  propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ libobjc ];
+
+  preBuild = ''
+    export LD_LIBRARY_PATH="$(pwd)/lib";
+  '';
+
+  # 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.
+  # At least, we use -fPIC for other packages to be able to use this in shared
+  # objects.
+  cmakeFlags = [
+    "-DCMAKE_C_FLAGS=-fPIC"
+    "-DCMAKE_CXX_FLAGS=-fPIC"
+    "-DVTK_USE_SYSTEM_TIFF=1"
+    "-DOPENGL_INCLUDE_DIR=${libGL}/include"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-DCMAKE_INSTALL_BINDIR=bin"
+  ]
+    ++ optionals enableQt [ "-DVTK_Group_Qt:BOOL=ON" ]
+    ++ optionals stdenv.isDarwin [ "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks" ]
+    ++ optionals enablePython [
+      "-DVTK_WRAP_PYTHON:BOOL=ON"
+      "-DVTK_PYTHON_VERSION:STRING=3"
+    ];
+
+  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+    sed -i 's|COMMAND vtkHashSource|COMMAND "DYLD_LIBRARY_PATH=''${VTK_BINARY_DIR}/lib" ''${VTK_BINARY_DIR}/bin/vtkHashSource-${majorVersion}|' ./Parallel/Core/CMakeLists.txt
+    sed -i 's/fprintf(output, shift)/fprintf(output, "%s", shift)/' ./ThirdParty/libxml2/vtklibxml2/xmlschemas.c
+    sed -i 's/fprintf(output, shift)/fprintf(output, "%s", shift)/g' ./ThirdParty/libxml2/vtklibxml2/xpath.c
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Open source libraries for 3D computer graphics, image processing and visualization";
+    homepage = "https://www.vtk.org/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ tfmoraes ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/pkgs/development/libraries/wayland/default.nix b/pkgs/development/libraries/wayland/default.nix
index 402177b899c..1821d7a7237 100644
--- a/pkgs/development/libraries/wayland/default.nix
+++ b/pkgs/development/libraries/wayland/default.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, fetchurl, meson, pkgconfig, ninja
 , libffi, libxml2, wayland
 , expat ? null # Build wayland-scanner (currently cannot be disabled as of 1.7.0)
-, withDocumentation ? false, graphviz-nox, doxygen, libxslt, xmlto, python3
+, withDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform
+, graphviz-nox, doxygen, libxslt, xmlto, python3
 , docbook_xsl, docbook_xml_dtd_45, docbook_xml_dtd_42
 }:
 
@@ -19,6 +20,7 @@ in stdenv.mkDerivation rec {
     sha256 = "0k995rn96xkplrapz5k648j651wc43kq817xk1x8280h16gsfxa6";
   };
 
+  outputs = [ "out" ] ++ lib.optionals withDocumentation [ "doc" "man" ];
   separateDebugInfo = true;
 
   mesonFlags = [ "-Ddocumentation=${lib.boolToString withDocumentation}" ];
diff --git a/pkgs/development/libraries/wcslib/default.nix b/pkgs/development/libraries/wcslib/default.nix
index 0b57d099319..2b3414df1a4 100644
--- a/pkgs/development/libraries/wcslib/default.nix
+++ b/pkgs/development/libraries/wcslib/default.nix
@@ -1,14 +1,14 @@
 { fetchurl,  stdenv, flex }:
 
 stdenv.mkDerivation rec {
-  version = "7.2";
+  version = "7.3.1";
   pname = "wcslib";
 
   buildInputs = [ flex ];
 
   src = fetchurl {
     url = "ftp://ftp.atnf.csiro.au/pub/software/wcslib/${pname}-${version}.tar.bz2";
-    sha256 ="0fbf6ypq7ag9dmjn65ja5vbfxswb6511bja8rbna25wmhns9x5b3";
+    sha256 ="0p0bp3jll9v2094a8908vk82m7j7qkjqzkngm1r9qj1v6l6j5z6c";
   };
 
   prePatch = ''
diff --git a/pkgs/development/libraries/webkit2-sharp/default.nix b/pkgs/development/libraries/webkit2-sharp/default.nix
new file mode 100644
index 00000000000..b8a476b3b33
--- /dev/null
+++ b/pkgs/development/libraries/webkit2-sharp/default.nix
@@ -0,0 +1,49 @@
+{
+  stdenv,
+  autoreconfHook,
+  fetchFromGitHub,
+  gtk-sharp-3_0,
+  lib,
+  libxslt,
+  mono,
+  pkg-config,
+  webkitgtk,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "webkit2-sharp";
+  version = "a59fd76dd730432c76b12ee6347ea66567107ab9";
+
+  src = fetchFromGitHub {
+    owner = "hbons";
+    repo = "webkit2-sharp";
+    rev = version;
+    sha256 = "sha256:0a7vx81zvzn2wq4q2mqrxvlps1mqk28lm1gpfndqryxm4iiw28vc";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    libxslt
+    mono
+    pkg-config
+  ];
+
+  buildInputs = [
+    gtk-sharp-3_0
+    webkitgtk
+  ];
+
+  ac_cv_path_MONODOCER = "no";
+  installFlagsArray = ["GAPIXMLDIR=/tmp/gapixml"];
+
+  passthru = {
+    inherit webkitgtk;
+  };
+
+  meta = {
+    description = "C# bindings for WebKit 2 with GTK+ 3";
+    homepage = "https://github.com/hbons/webkit2-sharp";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ kevincox ];
+  };
+}
diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix
index 53d0ae966b2..d60e56763a1 100644
--- a/pkgs/development/libraries/webkitgtk/default.nix
+++ b/pkgs/development/libraries/webkitgtk/default.nix
@@ -43,6 +43,7 @@
 , sqlite
 , enableGtk2Plugins ? false
 , gtk2 ? null
+, enableGLES ? true
 , gst-plugins-base
 , gst-plugins-bad
 , woff2
@@ -61,13 +62,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "webkitgtk";
-  version = "2.28.2";
+  version = "2.28.4";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://webkitgtk.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "1g9hik3bprki5s9d7y5288q5irwckbzajr6rnlvjrlnqrwjkblmr";
+    sha256 = "0r4lkk21pny2g4mmsw0ds14m5hhjys1l47gvy59dfgihr7l546c2";
   };
 
   patches = optionals stdenv.isLinux [
@@ -167,7 +168,7 @@ stdenv.mkDerivation rec {
     "-DUSE_ACCELERATE=0"
     "-DUSE_SYSTEM_MALLOC=ON"
   ] ++ optional (!enableGtk2Plugins) "-DENABLE_PLUGIN_PROCESS_GTK2=OFF"
-    ++ optional stdenv.isLinux "-DENABLE_GLES2=ON";
+    ++ optional (stdenv.isLinux && enableGLES) "-DENABLE_GLES2=ON";
 
   postPatch = ''
     patchShebangs .
diff --git a/pkgs/development/libraries/wlroots/default.nix b/pkgs/development/libraries/wlroots/default.nix
index 33db6e9d75b..67faad8cd74 100644
--- a/pkgs/development/libraries/wlroots/default.nix
+++ b/pkgs/development/libraries/wlroots/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wlroots";
-  version = "0.10.1";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "swaywm";
     repo = "wlroots";
     rev = version;
-    sha256 = "0j2lh9vc92zhn44rjbia5aw3y1rpgfng1x1h17lcvj5m4i6vj0pc";
+    sha256 = "08d5d52m8wy3imfc6mdxpx8swhh2k4s1gmfaykg02j59z84awc6p";
   };
 
   # $out for the library and $examples for the example programs (in examples):
@@ -21,16 +21,12 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ meson ninja pkg-config wayland ];
 
   buildInputs = [
-    libGL wayland-protocols libinput libxkbcommon pixman
+    libGL wayland wayland-protocols libinput libxkbcommon pixman
     xcbutilwm libX11 libcap xcbutilimage xcbutilerrors mesa
     libpng ffmpeg
   ];
 
-  postInstall = ''
-    # Copy the library to $examples
-    mkdir -p $examples/lib
-    cp -P libwlroots* $examples/lib/
-  '';
+  mesonFlags = [ "-Dlogind-provider=systemd" ];
 
   postFixup = ''
     # Install ALL example programs to $examples:
diff --git a/pkgs/development/libraries/wolfssl/default.nix b/pkgs/development/libraries/wolfssl/default.nix
index 2815520f517..30fc90ec8c0 100644
--- a/pkgs/development/libraries/wolfssl/default.nix
+++ b/pkgs/development/libraries/wolfssl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wolfssl";
-  version = "4.4.0";
+  version = "4.5.0";
 
   src = fetchFromGitHub {
     owner = "wolfSSL";
     repo = "wolfssl";
     rev = "v${version}-stable";
-    sha256 = "1bgkxqgxwa5dvi7fkna64wpcs552f3yxvs6fh6d32v7vg88vpfx9";
+    sha256 = "138ppnwkqkfi7nnqpd0b93dqaph72ma65m9286bz2qzlis1x8r0v";
   };
 
   configureFlags = [ "--enable-all" ];
diff --git a/pkgs/development/libraries/wxsqlite3/default.nix b/pkgs/development/libraries/wxsqlite3/default.nix
index 9bea7f5e848..9d80e5de449 100644
--- a/pkgs/development/libraries/wxsqlite3/default.nix
+++ b/pkgs/development/libraries/wxsqlite3/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wxsqlite3";
-  version = "4.5.1";
+  version = "4.6.0";
 
   src = fetchFromGitHub {
     owner = "utelle";
     repo = "wxsqlite3";
     rev = "v${version}";
-    sha256 = "0090f7r3blks18vifkna4l890fwaya58ajh9qblbw9065zj5hrm3";
+    sha256 = "0snsysfrr5h66mybls8r8k781v732dlfn4jdnmk348jgvny275fj";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/development/libraries/wxwidgets/2.8/default.nix b/pkgs/development/libraries/wxwidgets/2.8/default.nix
index 98cf0d58479..deb7d19c0de 100644
--- a/pkgs/development/libraries/wxwidgets/2.8/default.nix
+++ b/pkgs/development/libraries/wxwidgets/2.8/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, gtk2, libXinerama, libSM, libXxf86vm, xorgproto
-, gstreamer, gst-plugins-base, GConf, libX11, cairo
+, libX11, cairo
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , withMesa ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , libGLU ? null, libGL ? null
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     sha256 = "1l1w4i113csv3bd5r8ybyj0qpxdq83lj6jrc5p7cc10mkwyiagqz";
   };
 
-  buildInputs = [ gtk2 libXinerama libSM libXxf86vm xorgproto gstreamer gst-plugins-base GConf libX11 cairo ]
+  buildInputs = [ gtk2 libXinerama libSM libXxf86vm xorgproto libX11 cairo ]
     ++ optional withMesa libGLU;
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/wxwidgets/2.9/default.nix b/pkgs/development/libraries/wxwidgets/2.9/default.nix
index 3812c81a519..5db7cfc26ba 100644
--- a/pkgs/development/libraries/wxwidgets/2.9/default.nix
+++ b/pkgs/development/libraries/wxwidgets/2.9/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, gtk2, libXinerama, libSM, libXxf86vm, xorgproto
-, gstreamer, gst-plugins-base, GConf, setfile
+, setfile
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , withMesa ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , libGLU ? null, libGL ? null
@@ -32,8 +32,7 @@ stdenv.mkDerivation {
   ];
 
   buildInputs =
-    [ gtk2 libXinerama libSM libXxf86vm xorgproto gstreamer
-      gst-plugins-base GConf ]
+    [ gtk2 libXinerama libSM libXxf86vm xorgproto ]
     ++ optional withMesa libGLU
     ++ optionals stdenv.isDarwin [ setfile Carbon Cocoa Kernel QuickTime ];
 
@@ -42,7 +41,7 @@ stdenv.mkDerivation {
   propagatedBuildInputs = optional stdenv.isDarwin AGL;
 
   configureFlags =
-    [ "--enable-gtk2" "--disable-precomp-headers" "--enable-mediactrl"
+    [ "--enable-gtk2" "--disable-precomp-headers"
       (if compat24 then "--enable-compat24" else "--disable-compat24")
       (if compat26 then "--enable-compat26" else "--disable-compat26") ]
     ++ optional unicode "--enable-unicode"
diff --git a/pkgs/development/libraries/wxwidgets/3.0/default.nix b/pkgs/development/libraries/wxwidgets/3.0/default.nix
index da29eacdc0e..df90342a972 100644
--- a/pkgs/development/libraries/wxwidgets/3.0/default.nix
+++ b/pkgs/development/libraries/wxwidgets/3.0/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, fetchurl, pkgconfig
 , libXinerama, libSM, libXxf86vm
-, gtk2, GConf ? null, gtk3
-, xorgproto, gstreamer, gst-plugins-base, setfile
+, gtk2, gtk3
+, xorgproto, gst_all_1, setfile
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , withMesa ? libGLSupported
 , libGLU ? null, libGL ? null
@@ -30,8 +30,8 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    libXinerama libSM libXxf86vm xorgproto gstreamer gst-plugins-base
-  ] ++ optionals withGtk2 [ gtk2 GConf ]
+    libXinerama libSM libXxf86vm xorgproto gst_all_1.gstreamer gst_all_1.gst-plugins-base
+  ] ++ optionals withGtk2 [ gtk2 ]
     ++ optional (!withGtk2) gtk3
     ++ optional withMesa libGLU
     ++ optional withWebKit webkitgtk
diff --git a/pkgs/development/libraries/wxwidgets/3.1/default.nix b/pkgs/development/libraries/wxwidgets/3.1/default.nix
index 790968a88f7..44e6fe49b48 100644
--- a/pkgs/development/libraries/wxwidgets/3.1/default.nix
+++ b/pkgs/development/libraries/wxwidgets/3.1/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, fetchurl, pkgconfig
 , libXinerama, libSM, libXxf86vm
-, gtk2, GConf ? null, gtk3
-, xorgproto, gstreamer, gst-plugins-base, setfile
+, gtk2, gtk3
+, xorgproto, gst_all_1, setfile
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , withMesa ? libGLSupported, libGLU ? null, libGL ? null
 , compat28 ? false, compat30 ? true, unicode ? true
@@ -18,19 +18,19 @@ assert withWebKit -> webkitgtk != null;
 assert assertMsg (withGtk2 -> withWebKit == false) "wxGTK31: You cannot enable withWebKit when using withGtk2.";
 
 stdenv.mkDerivation rec {
-  version = "3.1.2";
+  version = "3.1.3";
   pname = "wxwidgets";
 
   src = fetchFromGitHub {
     owner = "wxWidgets";
     repo = "wxWidgets";
     rev = "v${version}";
-    sha256 = "0gfdhb7xq5vzasm7s1di39nchv42zsp0dmn4v6knzb7mgsb107wb";
+    sha256 = "022mby78q7n0bhd4mph04hz93c9qamnvzv3h1s26r839k28760f4";
   };
 
   buildInputs = [
-    libXinerama libSM libXxf86vm xorgproto gstreamer gst-plugins-base
-  ] ++ optionals withGtk2 [ gtk2 GConf ]
+    libXinerama libSM libXxf86vm xorgproto gst_all_1.gstreamer gst_all_1.gst-plugins-base
+  ] ++ optionals withGtk2 [ gtk2 ]
     ++ optional (!withGtk2) gtk3
     ++ optional withMesa libGLU
     ++ optional withWebKit webkitgtk
diff --git a/pkgs/development/libraries/x265/default.nix b/pkgs/development/libraries/x265/default.nix
index cfa19e5419f..48ed6cf4680 100644
--- a/pkgs/development/libraries/x265/default.nix
+++ b/pkgs/development/libraries/x265/default.nix
@@ -1,7 +1,6 @@
 { stdenv, fetchurl, fetchpatch, cmake, nasm, numactl
 , numaSupport ? stdenv.hostPlatform.isLinux && (stdenv.hostPlatform.isx86 || stdenv.hostPlatform.isAarch64)  # Enabled by default on NUMA platforms
 , debugSupport ? false # Run-time sanity checks (debugging)
-, highbitdepthSupport ? false # false=8bits per channel, true=10/12bits per channel
 , werrorSupport ? false # Warnings as errors
 , ppaSupport ? false # PPA profiling instrumentation
 , vtuneSupport ? false # Vtune profiling instrumentation
@@ -13,10 +12,17 @@
 let
   mkFlag = optSet: flag: if optSet then "-D${flag}=ON" else "-D${flag}=OFF";
   inherit (stdenv) is64bit;
-in
 
-stdenv.mkDerivation rec {
-  pname = "x265";
+  cmakeFlagsAll = [
+    "-DSTATIC_LINK_CRT=OFF"
+    (mkFlag debugSupport "CHECKED_BUILD")
+    (mkFlag ppaSupport "ENABLE_PPA")
+    (mkFlag vtuneSupport "ENABLE_VTUNE")
+    (mkFlag custatsSupport "DETAILED_CU_STATS")
+    (mkFlag unittestsSupport "ENABLE_TESTS")
+    (mkFlag werrorSupport "WARNINGS_AS_ERRORS")
+  ];
+
   version = "3.2";
 
   src = fetchurl {
@@ -27,8 +33,6 @@ stdenv.mkDerivation rec {
     sha256 = "0fqkhfhr22gzavxn60cpnj3agwdf5afivszxf3haj5k1sny7jk9n";
   };
 
-  enableParallelBuilding = true;
-
   patches = [
     # Fix build on ARM (#406)
     (fetchpatch {
@@ -37,22 +41,56 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  buildLib = has12Bit: stdenv.mkDerivation rec {
+    name = "libx265-${if has12Bit then "12" else "10"}-${version}";
+    inherit src patches;
+    enableParallelBuilding = true;
+
+    postPatch = ''
+      sed -i 's/unknown/${version}/g' source/cmake/version.cmake
+    '';
+
+    cmakeLibFlags = [
+      "-DENABLE_CLI=OFF"
+      "-DENABLE_SHARED=OFF"
+      "-DENABLE_HDR10_PLUS=ON"
+      "-DEXPORT_C_API=OFF"
+      "-DHIGH_BIT_DEPTH=ON"
+    ];
+    cmakeFlags = [(mkFlag has12Bit "MAIN12")] ++ cmakeLibFlags ++ cmakeFlagsAll;
+
+    preConfigure = ''
+      cd source
+    '';
+
+    nativeBuildInputs = [cmake nasm] ++ stdenv.lib.optional numaSupport numactl;
+  };
+
+  libx265-10 = buildLib false;
+  libx265-12 = buildLib true;
+in
+
+stdenv.mkDerivation rec {
+  pname = "x265";
+  inherit version src patches;
+
+  enableParallelBuilding = true;
+
   postPatch = ''
     sed -i 's/unknown/${version}/g' source/cmake/version.cmake
   '';
 
   cmakeFlags = [
-    (mkFlag debugSupport "CHECKED_BUILD")
-    "-DSTATIC_LINK_CRT=OFF"
-    (mkFlag (highbitdepthSupport && is64bit) "HIGH_BIT_DEPTH")
-    (mkFlag werrorSupport "WARNINGS_AS_ERRORS")
-    (mkFlag ppaSupport "ENABLE_PPA")
-    (mkFlag vtuneSupport "ENABLE_VTUNE")
-    (mkFlag custatsSupport "DETAILED_CU_STATS")
     "-DENABLE_SHARED=ON"
+    "-DHIGH_BIT_DEPTH=OFF"
+    "-DENABLE_HDR10_PLUS=OFF"
+  ] ++ stdenv.lib.optionals is64bit [
+    "-DEXTRA_LIB=${libx265-10}/lib/libx265.a;${libx265-12}/lib/libx265.a"
+    "-DLINKED_10BIT=ON"
+    "-DLINKED_12BIT=ON"
+  ] ++ [
     (mkFlag cliSupport "ENABLE_CLI")
-    (mkFlag unittestsSupport "ENABLE_TESTS")
-  ];
+  ] ++ cmakeFlagsAll;
 
   preConfigure = ''
     cd source
diff --git a/pkgs/development/libraries/xapian/default.nix b/pkgs/development/libraries/xapian/default.nix
index ef50bf31a36..195aea5c2f1 100644
--- a/pkgs/development/libraries/xapian/default.nix
+++ b/pkgs/development/libraries/xapian/default.nix
@@ -18,6 +18,7 @@ let
     nativeBuildInputs = [ autoreconfHook ];
 
     doCheck = true;
+    AUTOMATED_TESTING = true; # https://trac.xapian.org/changeset/8be35f5e1/git
 
     patches = stdenv.lib.optionals stdenv.isDarwin [ ./skip-flaky-darwin-test.patch ];
 
@@ -37,5 +38,5 @@ let
     };
   };
 in {
-  xapian_1_4 = generic "1.4.15" "1sjhz6vgql801rdgl6vrsjj0vy1mwlkcxjx6nr7h27m031cyjs5i";
+  xapian_1_4 = generic "1.4.17" "0bjpaavdckl4viznr8gbq476fvg648sj4rks2vacmc51vrb8bsxm";
 }
diff --git a/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix b/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
index 14cfeefe428..90265d61c83 100644
--- a/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
+++ b/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
     gsettings-desktop-schemas
     gtk3
     gnome3.gnome-desktop
+    gnome3.gnome-settings-daemon # schemas needed for settings api (fonts, etc)
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/xmlsec/default.nix b/pkgs/development/libraries/xmlsec/default.nix
index 1a18dfce85d..a1e6afd48b9 100644
--- a/pkgs/development/libraries/xmlsec/default.nix
+++ b/pkgs/development/libraries/xmlsec/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchurl, libxml2, gnutls, libxslt, pkgconfig, libgcrypt, libtool
-, openssl, nss, makeWrapper }:
+, openssl, nss, lib, runCommandCC, writeText }:
 
+lib.fix (self:
 let
   version = "1.2.28";
 in
@@ -13,9 +14,16 @@ stdenv.mkDerivation {
     sha256 = "1m12caglhyx08g8lh2sl3nkldlpryzdx2d572q73y3m33s0w9vhk";
   };
 
+  patches = [
+    ./lt_dladdsearchdir.patch
+  ];
+  postPatch = ''
+    substituteAllInPlace src/dl.c
+  '';
+
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ makeWrapper pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   buildInputs = [ libxml2 gnutls libxslt libgcrypt libtool openssl nss ];
 
@@ -34,8 +42,26 @@ stdenv.mkDerivation {
     moveToOutput "lib/xmlsec1Conf.sh" "$dev"
   '';
 
-  postFixup = ''
-    wrapProgram "$out/bin/xmlsec1" --prefix LD_LIBRARY_PATH ":" "$out/lib"
+  passthru.tests.libxmlsec1-crypto = runCommandCC "libxmlsec1-crypto-test"
+    {
+      nativeBuildInputs = [ pkgconfig ];
+      buildInputs = [ self libxml2 libxslt libtool ];
+    } ''
+    $CC $(pkg-config --cflags --libs xmlsec1) -o crypto-test ${writeText "crypto-test.c" ''
+      #include <xmlsec/xmlsec.h>
+      #include <xmlsec/crypto.h>
+
+      int main(int argc, char **argv) {
+        return xmlSecInit() ||
+          xmlSecCryptoDLLoadLibrary(argc > 1 ? argv[1] : 0) ||
+          xmlSecCryptoInit();
+      }
+    ''}
+
+    for crypto in "" gcrypt gnutls nss openssl; do
+      ./crypto-test $crypto
+    done
+    touch $out
   '';
 
   meta = {
@@ -47,3 +73,4 @@ stdenv.mkDerivation {
     updateWalker = true;
   };
 }
+)
diff --git a/pkgs/development/libraries/xmlsec/lt_dladdsearchdir.patch b/pkgs/development/libraries/xmlsec/lt_dladdsearchdir.patch
new file mode 100644
index 00000000000..17dedb0d6c8
--- /dev/null
+++ b/pkgs/development/libraries/xmlsec/lt_dladdsearchdir.patch
@@ -0,0 +1,16 @@
+diff --git a/src/dl.c b/src/dl.c
+index b13f9d46..d761855b 100644
+--- a/src/dl.c
++++ b/src/dl.c
+@@ -346,6 +346,11 @@ xmlSecCryptoDLInit(void) {
+         xmlSecIOError("lt_dlinit", NULL, NULL);
+         return(-1);
+     }
++    ret = lt_dladdsearchdir("@out@/lib");
++    if(ret != 0) {
++      xmlSecIOError("lt_dladdsearchdir", NULL, NULL);
++      return(-1);
++    }
+ #endif /* XMLSEC_DL_LIBLTDL */
+ 
+     return(0);
diff --git a/pkgs/development/libraries/xxHash/default.nix b/pkgs/development/libraries/xxHash/default.nix
index 58bf562b080..e572e8bb31f 100644
--- a/pkgs/development/libraries/xxHash/default.nix
+++ b/pkgs/development/libraries/xxHash/default.nix
@@ -2,18 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "xxHash";
-  version = "0.7.4";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "Cyan4973";
     repo = "xxHash";
     rev = "v${version}";
-    sha256 = "08j7wxshhzpyrnyilfnvhyv5ycm0yv5m7jf6q4kxcd7j4dcbhmpb";
+    sha256 = "0hpbzdd6kfki5f61g103vp7pfczqkdj0js63avl0ss552jfb8h96";
   };
 
   outputs = [ "out" "dev" ];
 
-  makeFlags = [ "PREFIX=$(out)" "INCLUDEDIR=$(dev)/include" ];
+  makeFlags = [ "PREFIX=$(dev)" "EXEC_PREFIX=$(out)" ];
 
   meta = with stdenv.lib; {
     description = "Extremely fast hash algorithm";
diff --git a/pkgs/development/libraries/yder/default.nix b/pkgs/development/libraries/yder/default.nix
index 11eda01a76a..b6f60ede98c 100644
--- a/pkgs/development/libraries/yder/default.nix
+++ b/pkgs/development/libraries/yder/default.nix
@@ -4,13 +4,13 @@
 assert withSystemd -> systemd != null;
 stdenv.mkDerivation rec {
   pname = "yder";
-  version = "1.4.10";
+  version = "1.4.11";
 
   src = fetchFromGitHub {
     owner = "babelouest";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1m1aw4im1vvddkl7mknq0h0nj0x2zpql3r17lxhw4mmib05zbdgj";
+    sha256 = "0gm6l9y4jkxbq6vskdv1ivlq795ic28nhiyq21mzk3mx6j8klwip";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/zeromq/3.x.nix b/pkgs/development/libraries/zeromq/3.x.nix
deleted file mode 100644
index 29981f358a5..00000000000
--- a/pkgs/development/libraries/zeromq/3.x.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, libuuid }:
-
-stdenv.mkDerivation rec {
-  name = "zeromq-3.2.5";
-
-  src = fetchurl {
-    url = "http://download.zeromq.org/${name}.tar.gz";
-    sha256 = "0911r7q4i1x9gnfinj39vx08fnz59mf05vl75zdkws36lib3wr89";
-  };
-
-  buildInputs = [ libuuid ];
-
-  doCheck = false; # fails all the tests (ctest)
-
-  meta = with stdenv.lib; {
-    branch = "3";
-    homepage = "http://www.zeromq.org";
-    description = "The Intelligent Transport Layer";
-    license = licenses.gpl3;
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/libraries/zimg/default.nix b/pkgs/development/libraries/zimg/default.nix
index f5913137e1c..0deec273881 100644
--- a/pkgs/development/libraries/zimg/default.nix
+++ b/pkgs/development/libraries/zimg/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zimg";
-  version = "2.9.3";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner  = "sekrit-twc";
     repo   = "zimg";
     rev    = "release-${version}";
-    sha256 = "1dqyrq3p8bkgvj4ci50ac342hjnhyz6xxvhiwp7wpi3v3nbj7s02";
+    sha256 = "157lqfgz4lqa782iij7lkajgjbxv3vqf6y5hpdz36i6dg06paqqa";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/default.nix
index c4a4c497ced..98746968146 100644
--- a/pkgs/development/libraries/zlib/default.nix
+++ b/pkgs/development/libraries/zlib/default.nix
@@ -12,6 +12,11 @@
 , splitStaticOutput ? static
 }:
 
+# 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
+# files.
+
 assert splitStaticOutput -> static;
 
 stdenv.mkDerivation (rec {
diff --git a/pkgs/development/lisp-modules/asdf/3.1.nix b/pkgs/development/lisp-modules/asdf/3.1.nix
index 0e5c6a40087..445295830b2 100644
--- a/pkgs/development/lisp-modules/asdf/3.1.nix
+++ b/pkgs/development/lisp-modules/asdf/3.1.nix
@@ -35,6 +35,6 @@ stdenv.mkDerivation {
     description = ''Standard software-system definition library for Common Lisp'';
     license = stdenv.lib.licenses.mit ;
     maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/lisp-modules/asdf/default.nix b/pkgs/development/lisp-modules/asdf/default.nix
index 25d179fe968..2b1b846d319 100644
--- a/pkgs/development/lisp-modules/asdf/default.nix
+++ b/pkgs/development/lisp-modules/asdf/default.nix
@@ -36,6 +36,6 @@ stdenv.mkDerivation {
     description = ''Standard software-system definition library for Common Lisp'';
     license = stdenv.lib.licenses.mit ;
     maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/lisp-modules/iterate.darcs-context b/pkgs/development/lisp-modules/iterate.darcs-context
deleted file mode 100644
index 533faaec8e7..00000000000
--- a/pkgs/development/lisp-modules/iterate.darcs-context
+++ /dev/null
@@ -1,116 +0,0 @@
-
-Context:
-
-[make the #L reader macro standard conformant by not assuming anything about the representation of quasiquoted forms.
-Douglas Katzman <dougk@google.com>**20140423044759
- Ignore-this: ccdda48acdf7b2033ac0f51ed48582fc
-] 
-
-[fix for test for.previous.var-with-type-declaration
-Jan Moringen <jmoringe@techfak.uni-bielefeld.de>**20140129144214
- Ignore-this: a617d046d90816827d370d3bbf38d2df
-] 
-
-[housekeeping
-attila.lendvai@gmail.com**20140129143709
- Ignore-this: a05c5fbace98b282a464b829711e064f
-] 
-
-[added test for.previous.var-with-type-declaration
-attila.lendvai@gmail.com**20140129143435
- Ignore-this: 6e9f419e118724c660d519c3fa9f8dd2
-] 
-
-[added a restart to remove conflicting clauses
-Russ Tyndall <russ@acceleration.net>**20120508185107
- Ignore-this: b7c4c6eec565dd435b8e9e5403fcb0a8
-] 
-
-[added new failing test bug/collect-at-beginning, as reported by Paul Sexton
-attila.lendvai@gmail.com**20121218144220
- Ignore-this: d55e7c22deeaf89b90d03d7ef01179d6
-] 
-
-[Fix: If both AT BEGINNING and RESULT-TYPE are specified, RESULT-TYPE was ignored.
-attila.lendvai@gmail.com**20120509225435
- Ignore-this: 20cf116df585ffedfbe63ce7a4092249
- 
- Patched by Ilya Perminov
-] 
-
-[fix package nickname in case sensitive mode
-attila.lendvai@gmail.com**20110927152614
- Ignore-this: fb1ba1d418b4a20a0cd4e697d943a0e6
-] 
-
-[move list-of-forms? out of the #L eval-when, because it's also used by other parts of iterate
-attila.lendvai@gmail.com**20110119161133
- Ignore-this: 97545988c4a3eab02434f222120b1a1
-] 
-
-[added bug/walk.2
-attila.lendvai@gmail.com**20100603093335
- Ignore-this: faa1bd48d0450e76652552bb47bcff02
-] 
-
-[first-time-p bugfix: return-code :body must return list of forms
-Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070525141533
- if-first-time not declared obsolete
- documentation strings for (iter:display-iterate-clauses) complete
-] 
-
-[fix defmacro-driver example in manual
-Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070525081443] 
-
-[Use @:, @. and two spaces between sentences
-Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070525080932
- Move section on predicate (first-time-p) outside of gathering clauses
- Various typos and some clarifications
-] 
-
-[document *list-end-test* removal in FOR...IN+ON
-Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070525074338] 
-
-[Renamed back to sharpL-reader
-attila.lendvai@gmail.com**20070506100744] 
-
-[Fix sharpL reader, add :execute to the eval-when to make (load "iterate" :compiling t) work on clisp
-attila.lendvai@gmail.com**20070506100704] 
-
-[Convert manual to Texinfo.
-Luis Oliveira <loliveira@common-lisp.net>**20060713142915] 
-
-[make FOR...IN/ON with dotted lists work like LOOP
-hoehle@users.sourceforge.net**20070503130604
- More precisely, FOR ON accepts dotted lists, FOR IN errors out.
- As a result, iterate::*list-end-test* was eliminated.
- Behaviour is now constant and does not depend on some special variable.
- Note: Documentation not yet updated, pending move to Texinfo.
-] 
-
-[walk-tagbody: more testcases
-Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070503095309] 
-
-[walk-tagbody must not macroexpand symbol/tags among its statements
-Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070404124132] 
-
-[add ELSE test cases, remove GNU Arch tag
-Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070503093008] 
-
-[Clean up #L stuff, do not leave #L enabled after loading iterate
-attila.lendvai@gmail.com**20070426153431] 
-
-[Set *list-end-test* to 'endp instead of 'atom, so (iter (for foo :in something-non-list)) fails instead of silently exists
-attila.lendvai@gmail.com**20070215151652] 
-
-[wrap code in progns, to avoid possiblity of multiple nil tags in tagbody
- Henrik Hjelte <henrik@evahjelte.com>**20061025145324] 
-
-[test to detect bug, more than one nil tag in tagbody
- Henrik Hjelte <henrik@evahjelte.com>**20061025145128] 
-
-[Added release.sh
-attila.lendvai@gmail.com**20060506155953] 
-
-[TAG 1.4.3
-attila.lendvai@gmail.com**20060505134701] 
diff --git a/pkgs/development/lua-modules/generated-packages.nix b/pkgs/development/lua-modules/generated-packages.nix
index 06d917b74c8..f9c91c3a8a6 100644
--- a/pkgs/development/lua-modules/generated-packages.nix
+++ b/pkgs/development/lua-modules/generated-packages.nix
@@ -155,9 +155,9 @@ cassowary = buildLuarocksPackage {
   propagatedBuildInputs = [ lua penlight ];
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/simoncozens/cassowary.lua";
-    description = "The cassowary constraint solver.";
-    maintainers = with maintainers; [ marsam ];
+    homepage = "https://github.com/sile-typesetter/cassowary.lua";
+    description = "The cassowary constraint solver";
+    maintainers = with maintainers; [ marsam alerque ];
     license.fullName = "Apache 2";
   };
 };
@@ -691,6 +691,74 @@ lua-messagepack = buildLuarocksPackage {
     license.fullName = "MIT/X11";
   };
 };
+lua-resty-http = buildLuarocksPackage {
+  pname = "lua-resty-http";
+  version = "0.15-0";
+
+  src = fetchurl {
+    url    = mirror://luarocks/lua-resty-http-0.15-0.src.rock;
+    sha256 = "1121abcz9y8kis2wdg7i1m75y8lplk3k49v02y804bywbl2km4fz";
+  };
+  disabled = (luaOlder "5.1");
+  propagatedBuildInputs = [ lua ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/ledgetech/lua-resty-http";
+    description = "Lua HTTP client cosocket driver for OpenResty / ngx_lua.";
+    license.fullName = "2-clause BSD";
+  };
+};
+lua-resty-jwt = buildLuarocksPackage {
+  pname = "lua-resty-jwt";
+  version = "0.2.2-0";
+
+  src = fetchurl {
+    url    = mirror://luarocks/lua-resty-jwt-0.2.2-0.src.rock;
+    sha256 = "1a4wwiwcjwgr59g2940a2h0i6n1c7xjy2px5bls3x5br4shwhswa";
+  };
+  disabled = (luaOlder "5.1");
+  propagatedBuildInputs = [ lua ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/cdbattags/lua-resty-jwt";
+    description = "JWT for ngx_lua and LuaJIT.";
+    license.fullName = "Apache License Version 2";
+  };
+};
+lua-resty-openidc = buildLuarocksPackage {
+  pname = "lua-resty-openidc";
+  version = "1.7.2-1";
+
+  src = fetchurl {
+    url    = mirror://luarocks/lua-resty-openidc-1.7.2-1.src.rock;
+    sha256 = "01mya69r4fncfrpqh5pn2acg18q3slds8zm976qgkjby0pzwzzw7";
+  };
+  disabled = (luaOlder "5.1");
+  propagatedBuildInputs = [ lua lua-resty-http lua-resty-session lua-resty-jwt ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/zmartzone/lua-resty-openidc";
+    description = "A library for NGINX implementing the OpenID Connect Relying Party (RP) and the OAuth 2.0 Resource Server (RS) functionality";
+    license.fullName = "Apache 2.0";
+  };
+};
+lua-resty-session = buildLuarocksPackage {
+  pname = "lua-resty-session";
+  version = "3.6-1";
+
+  src = fetchurl {
+    url    = mirror://luarocks/lua-resty-session-3.6-1.src.rock;
+    sha256 = "1r5626x247d1vi5bzqfk11bl4d5c39h1iqj6mgndnwpnz43cag5i";
+  };
+  disabled = (luaOlder "5.1");
+  propagatedBuildInputs = [ lua ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/bungle/lua-resty-session";
+    description = "Session Library for OpenResty – Flexible and Secure";
+    license.fullName = "BSD";
+  };
+};
 lua-term = buildLuarocksPackage {
   pname = "lua-term";
   version = "0.7-1";
@@ -1376,17 +1444,18 @@ nvim-client = buildLuarocksPackage {
 };
 penlight = buildLuarocksPackage {
   pname = "penlight";
-  version = "1.7.0-1";
+  version = "1.8.0-1";
 
   src = fetchurl {
-    url    = "mirror://luarocks/penlight-1.7.0-1.src.rock";
-    sha256 = "0rr56vc33b2knr5qmfdjrb1wk98lyp3zmlyzz6m15v2s1s5yxgah";
+    url    = "mirror://luarocks/penlight-1.8.0-1.src.rock";
+    sha256 = "05x00dgsa79wzq187ww6i8j0s74nh2c852awni7xfshxgihwhc42";
   };
   propagatedBuildInputs = [ luafilesystem ];
 
   meta = with stdenv.lib; {
     homepage = "http://tieske.github.io/Penlight";
     description = "Lua utility libraries loosely based on the Python standard libraries";
+    maintainers = with maintainers; [ alerque ];
     license.fullName = "MIT/X11";
   };
 };
@@ -1499,24 +1568,6 @@ stdlib = buildLuarocksPackage {
     license.fullName = "MIT/X11";
   };
 };
-pulseaudio = buildLuarocksPackage {
-  pname = "pulseaudio";
-  version = "0.2-1";
-
-  src = fetchurl {
-    url    = "mirror://luarocks/pulseaudio-0.2-1.src.rock";
-    sha256 = "06w8fmwddrpm02yam818yi30gghw4ckb18zljjncy3x0zfijyhz7";
-  };
-  disabled = (luaOlder "5.1");
-  propagatedBuildInputs = [ lua ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/doronbehar/lua-pulseaudio";
-    description = "Bindings to libpulse";
-    maintainers = with maintainers; [ doronbehar ];
-    license.fullName = "Apache v2.0";
-  };
-};
 vstruct = buildLuarocksPackage {
   pname = "vstruct";
   version = "2.0.2-1";
diff --git a/pkgs/development/lua-modules/luaexpat.patch b/pkgs/development/lua-modules/luaexpat.patch
new file mode 100644
index 00000000000..3dd60910842
--- /dev/null
+++ b/pkgs/development/lua-modules/luaexpat.patch
@@ -0,0 +1,36 @@
+diff --git a/src/lxplib.c b/src/lxplib.c
+index 1c972db..5712611 100644
+--- a/src/lxplib.c
++++ b/src/lxplib.c
+@@ -590,7 +590,7 @@ static void set_info (lua_State *L) {
+ /*
+ ** Adapted from Lua 5.2.0
+ */
+-static void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup) {
++static void compat_luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup) {
+   luaL_checkstack(L, nup, "too many upvalues");
+   for (; l->name != NULL; l++) {  /* fill the table with given functions */
+     int i;
+@@ -602,6 +602,8 @@ static void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup) {
+   }
+   lua_pop(L, nup);  /* remove upvalues */
+ }
++#else
++#define compat_luaL_setfuncs(L, reg, nup) luaL_setfuncs(L, reg, nup)
+ #endif
+ 
+ 
+@@ -612,11 +614,11 @@ int luaopen_lxp (lua_State *L) {
+ 	lua_pushvalue(L, -2);
+ 	lua_rawset(L, -3);
+ 
+-	luaL_setfuncs (L, lxp_meths, 0);
++	compat_luaL_setfuncs (L, lxp_meths, 0);
+ 	lua_pop (L, 1); /* remove metatable */
+ 
+ 	lua_newtable (L);
+-	luaL_setfuncs (L, lxp_funcs, 0);
++	compat_luaL_setfuncs (L, lxp_funcs, 0);
+ 	set_info (L);
+ 	return 1;
+ }
diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix
index 26260872e18..6416d59a71e 100644
--- a/pkgs/development/lua-modules/overrides.nix
+++ b/pkgs/development/lua-modules/overrides.nix
@@ -204,6 +204,9 @@ with super;
     externalDeps = [
       { name = "EXPAT"; dep = pkgs.expat; }
     ];
+    patches = [
+      ./luaexpat.patch
+    ];
   });
 
   # TODO Somehow automatically amend buildInputs for things that need luaffi
@@ -344,13 +347,4 @@ with super;
       sourceRoot=./readline-2.6
     '';
   });
-
-  pulseaudio = super.pulseaudio.override({
-    buildInputs = [
-      pkgs.libpulseaudio
-    ];
-    nativeBuildInputs = [
-      pkgs.pulseaudio pkgs.pkgconfig
-    ];
-  });
 }
diff --git a/pkgs/servers/hasura/ci-info.nix b/pkgs/development/misc/haskell/hasura/ci-info/default.nix
index 53c85a2e5ba..53c85a2e5ba 100644
--- a/pkgs/servers/hasura/ci-info.nix
+++ b/pkgs/development/misc/haskell/hasura/ci-info/default.nix
diff --git a/pkgs/servers/hasura/graphql-engine.nix b/pkgs/development/misc/haskell/hasura/graphql-engine/default.nix
index 05ba895be08..0bd68afae4b 100644
--- a/pkgs/servers/hasura/graphql-engine.nix
+++ b/pkgs/development/misc/haskell/hasura/graphql-engine/default.nix
@@ -17,18 +17,18 @@
 , text-builder, text-conversions, th-lift-instances, these, time
 , transformers, transformers-base, unix, unordered-containers
 , uri-encode, uuid, vector, wai, wai-websockets, warp, websockets
-, wreq, x509, yaml, zlib
+, wreq, x509, yaml, zlib, witherable, semialign, validation, cron
 }:
 mkDerivation {
   pname = "graphql-engine";
   version = "1.0.0";
   src = fetchgit {
     url = "https://github.com/hasura/graphql-engine.git";
-    sha256 = "0hg44zl3gqa8lq7kggwgmgbsgdc7zrv5cxs507vilg11xklsbz4l";
-    rev = "27b0b59361cebecd074bd59123f602e7b013bac1";
+    sha256 = "sha256-tNKoi3dtoXj0nn4qBgLBroo7SgX7SdVaHtBqjs1S3hQ=";
+    rev = "1e3eb035d3c915032ba23e502bcb0132b4d54202";
     fetchSubmodules = true;
   };
-  postUnpack = "sourceRoot+=/server; echo source root reset to $sourceRoot";
+ postUnpack = "sourceRoot+=/server; echo source root reset to $sourceRoot";
   isLibrary = true;
   isExecutable = true;
   libraryHaskellDepends = [
@@ -48,6 +48,8 @@ mkDerivation {
     th-lift-instances these time transformers transformers-base unix
     unordered-containers uri-encode uuid vector wai wai-websockets warp
     websockets wreq x509 yaml zlib
+    witherable semialign validation
+    cron
   ];
   executableHaskellDepends = [
     base bytestring pg-client text text-conversions
diff --git a/pkgs/servers/hasura/graphql-parser.nix b/pkgs/development/misc/haskell/hasura/graphql-parser/default.nix
index 8066bb83dd0..991b5384d5c 100644
--- a/pkgs/servers/hasura/graphql-parser.nix
+++ b/pkgs/development/misc/haskell/hasura/graphql-parser/default.nix
@@ -5,11 +5,11 @@
 }:
 mkDerivation {
   pname = "graphql-parser";
-  version = "0.1.0.0";
+  version = "0.1.0.1";
   src = fetchgit {
     url = "https://github.com/hasura/graphql-parser-hs.git";
-    sha256 = "0vz0sqqmr1l02d3f1pc5k7rm7vpxmg5d5ijvdcwdm34yw6x5lz1v";
-    rev = "623ad78aa46e7ba2ef1aa58134ad6136b0a85071";
+    sha256 = "sha256-oem/h0AQPk7eSM/P6wMoWV9KirxutE4hnQWwrpQ6TGk=";
+    rev = "ba8e26fef1488cf3c8c08e86f02730f56ec84e1f";
     fetchSubmodules = true;
   };
   libraryHaskellDepends = [
@@ -29,6 +29,7 @@ mkDerivation {
     template-haskell text text-builder th-lift-instances
     unordered-containers vector
   ];
+  doCheck = false;
   prePatch = "hpack";
   homepage = "https://github.com/hasura/graphql-parser-hs#readme";
   license = stdenv.lib.licenses.bsd3;
diff --git a/pkgs/servers/hasura/pg-client.nix b/pkgs/development/misc/haskell/hasura/pg-client/default.nix
index 725e5e7f640..725e5e7f640 100644
--- a/pkgs/servers/hasura/pg-client.nix
+++ b/pkgs/development/misc/haskell/hasura/pg-client/default.nix
diff --git a/pkgs/development/mobile/androidenv/build-tools.nix b/pkgs/development/mobile/androidenv/build-tools.nix
index e648c83fa17..536a025d15b 100644
--- a/pkgs/development/mobile/androidenv/build-tools.nix
+++ b/pkgs/development/mobile/androidenv/build-tools.nix
@@ -3,7 +3,7 @@
 deployAndroidPackage {
   inherit package os;
   buildInputs = [ autoPatchelfHook makeWrapper ] ++
-    lib.optionals (os == "linux") [ pkgs.glibc pkgs.zlib pkgs.ncurses5 pkgs_i686.glibc pkgs_i686.zlib pkgs_i686.ncurses5 ];
+    lib.optionals (os == "linux") [ pkgs.glibc pkgs.zlib pkgs.ncurses5 pkgs_i686.glibc pkgs_i686.zlib pkgs_i686.ncurses5 pkgs.libcxx ];
   patchInstructions = ''
     ${lib.optionalString (os == "linux") ''
       addAutoPatchelfSearchPath $packageBaseDir/lib
diff --git a/pkgs/development/mobile/androidenv/compose-android-packages.nix b/pkgs/development/mobile/androidenv/compose-android-packages.nix
index f98547011bd..1786aebae83 100644
--- a/pkgs/development/mobile/androidenv/compose-android-packages.nix
+++ b/pkgs/development/mobile/androidenv/compose-android-packages.nix
@@ -14,7 +14,7 @@
 , lldbVersions ? [ ]
 , cmakeVersions ? [ ]
 , includeNDK ? false
-, ndkVersion ? "18.1.5063045"
+, ndkVersion ? "21.0.6113669"
 , useGoogleAPIs ? false
 , useGoogleTVAddOns ? false
 , includeExtras ? []
diff --git a/pkgs/development/mobile/androidenv/convertaddons.xsl b/pkgs/development/mobile/androidenv/convertaddons.xsl
index 73f58ff5cde..20f007eca04 100644
--- a/pkgs/development/mobile/androidenv/convertaddons.xsl
+++ b/pkgs/development/mobile/androidenv/convertaddons.xsl
@@ -36,13 +36,13 @@
       archives = {
       <xsl:for-each select="archives/archive[not(host-os)]">
         all = fetchurl {
-          url = <xsl:call-template name="repository-url"/>;
+          url = "<xsl:call-template name="repository-url"/>";
           sha1 = "<xsl:value-of select="complete/checksum" />";
         };
       </xsl:for-each>
       <xsl:for-each select="archives/archive[host-os and not(host-os = 'windows')]">
         <xsl:value-of select="host-os" /> = fetchurl {
-          url = <xsl:call-template name="repository-url"/>;
+          url = "<xsl:call-template name="repository-url"/>";
           sha1 = "<xsl:value-of select="complete/checksum" />";
         };
       </xsl:for-each>
@@ -60,13 +60,13 @@
       archives = {
       <xsl:for-each select="archives/archive[not(host-os)]">
         all = fetchurl {
-          url = <xsl:call-template name="repository-url"/>;
+          url = "<xsl:call-template name="repository-url"/>";
           sha1 = "<xsl:value-of select="complete/checksum" />";
         };
       </xsl:for-each>
       <xsl:for-each select="archives/archive[host-os and not(host-os = 'windows')]">
         <xsl:value-of select="host-os" /> = fetchurl {
-          url = <xsl:call-template name="repository-url"/>;
+          url = "<xsl:call-template name="repository-url"/>";
           sha1 = "<xsl:value-of select="complete/checksum" />";
         };
       </xsl:for-each>
@@ -108,13 +108,13 @@
       archives = {
       <xsl:for-each select="archives/archive[not(host-os)]">
         all = fetchurl {
-          url = <xsl:call-template name="repository-url"/>;
+          url = "<xsl:call-template name="repository-url"/>";
           sha1 = "<xsl:value-of select="complete/checksum" />";
         };
       </xsl:for-each>
       <xsl:for-each select="archives/archive[host-os and not(host-os = 'windows')]">
         <xsl:value-of select="host-os" /> = fetchurl {
-          url = <xsl:call-template name="repository-url"/>;
+          url = "<xsl:call-template name="repository-url"/>";
           sha1 = "<xsl:value-of select="complete/checksum" />";
         };
       </xsl:for-each>
diff --git a/pkgs/development/mobile/androidenv/convertpackages.xsl b/pkgs/development/mobile/androidenv/convertpackages.xsl
index 5c36deb73c0..edc9074a898 100644
--- a/pkgs/development/mobile/androidenv/convertpackages.xsl
+++ b/pkgs/development/mobile/androidenv/convertpackages.xsl
@@ -98,13 +98,13 @@
     archives = {
       <xsl:for-each select="archives/archive[not(host-os)]">
         all = fetchurl {
-          url = <xsl:call-template name="repository-url"/>;
+          url = !<xsl:call-template name="repository-url"/>";
           sha1 = "<xsl:value-of select="complete/checksum" />";
         };
       </xsl:for-each>
       <xsl:for-each select="archives/archive[host-os and not(host-os = 'windows')]">
         <xsl:value-of select="host-os" /> = fetchurl {
-        url = <xsl:call-template name="repository-url"/>;
+        url = "<xsl:call-template name="repository-url"/>";
         sha1 = "<xsl:value-of select="complete/checksum" />";
       };
       </xsl:for-each>
diff --git a/pkgs/development/mobile/androidenv/convertsystemimages.xsl b/pkgs/development/mobile/androidenv/convertsystemimages.xsl
index de57041f192..947950badb4 100644
--- a/pkgs/development/mobile/androidenv/convertsystemimages.xsl
+++ b/pkgs/development/mobile/androidenv/convertsystemimages.xsl
@@ -64,7 +64,7 @@
     displayName = "</xsl:text><xsl:value-of select="display-name" /><xsl:text>";
     archives.all = fetchurl {</xsl:text>
     <xsl:for-each select="archives/archive"><xsl:text>
-      url = </xsl:text><xsl:call-template name="repository-url"/><xsl:text>;
+      url = "</xsl:text><xsl:call-template name="repository-url"/><xsl:text>";
       sha1 = "</xsl:text><xsl:value-of select="complete/checksum" /><xsl:text>";</xsl:text>
     </xsl:for-each><xsl:text>
     };
diff --git a/pkgs/development/mobile/androidenv/default.nix b/pkgs/development/mobile/androidenv/default.nix
index 14882bc2243..0228cd83924 100644
--- a/pkgs/development/mobile/androidenv/default.nix
+++ b/pkgs/development/mobile/androidenv/default.nix
@@ -15,7 +15,7 @@ rec {
   };
 
   emulateApp = import ./emulate-app.nix {
-    inherit (pkgs) stdenv lib;
+    inherit (pkgs) stdenv lib runtimeShell;
     inherit composeAndroidPackages;
   };
 
diff --git a/pkgs/development/mobile/androidenv/emulate-app.nix b/pkgs/development/mobile/androidenv/emulate-app.nix
index 6273d75cc38..83be06a3141 100644
--- a/pkgs/development/mobile/androidenv/emulate-app.nix
+++ b/pkgs/development/mobile/androidenv/emulate-app.nix
@@ -1,4 +1,4 @@
-{ composeAndroidPackages, stdenv, lib }:
+{ composeAndroidPackages, stdenv, lib, runtimeShell }:
 { name, app ? null
 , platformVersion ? "16", abiVersion ? "armeabi-v7a", systemImageType ? "default"
 , enableGPU ? false, extraAVDFiles ? []
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
     mkdir -p $out/bin
 
     cat > $out/bin/run-test-emulator << "EOF"
-    #! ${stdenv.shell} -e
+    #!${runtimeShell} -e
 
     # We need a TMPDIR
     if [ "$TMPDIR" = "" ]
diff --git a/pkgs/development/mobile/androidenv/generated/addons.nix b/pkgs/development/mobile/androidenv/generated/addons.nix
index 23a55595cce..231e5b8ea22 100644
--- a/pkgs/development/mobile/androidenv/generated/addons.nix
+++ b/pkgs/development/mobile/androidenv/generated/addons.nix
@@ -672,70 +672,6 @@
     };
     
 
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout-solver:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-alpha4.zip";
-          sha1 = "2aa2aceecc6ba172742d0af0b43f11d03924eeb8";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout-solver:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-alpha4.zip";
-          sha1 = "2aa2aceecc6ba172742d0af0b43f11d03924eeb8";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout-solver:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-alpha4.zip";
-          sha1 = "2aa2aceecc6ba172742d0af0b43f11d03924eeb8";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha8" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha8";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha8";
-      revision = "1";
-      displayName = "Solver for ConstraintLayout 1.0.0-alpha8";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-alpha8.zip";
-          sha1 = "cd13d16a8f0198c1d6040ec8b1d0d4e5bb7feb6a";
-        };
-      
-      };
-    };
-    
-
     "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha8" = {
       name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha8";
       path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha8";
@@ -896,70 +832,6 @@
     };
     
 
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-alpha4.zip";
-          sha1 = "645a9be1f0c1177301e71cd0ddccf1dd67c554fe";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-alpha4.zip";
-          sha1 = "645a9be1f0c1177301e71cd0ddccf1dd67c554fe";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-alpha4.zip";
-          sha1 = "645a9be1f0c1177301e71cd0ddccf1dd67c554fe";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha8" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha8";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha8";
-      revision = "1";
-      displayName = "ConstraintLayout for Android 1.0.0-alpha8";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-alpha8.zip";
-          sha1 = "7912ba03b04831f918f523648f118c4ee4da7604";
-        };
-      
-      };
-    };
-    
-
     "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha8" = {
       name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha8";
       path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha8";
diff --git a/pkgs/development/mobile/androidenv/ndk-bundle/default.nix b/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
index b81fab1ed76..6bdb7181590 100644
--- a/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
+++ b/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
@@ -7,12 +7,14 @@ deployAndroidPackage {
   inherit package os;
   buildInputs = [ autoPatchelfHook makeWrapper pkgs.python2 ]
     ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.stdenv.cc.cc pkgs.ncurses5 pkgs.zlib pkgs.libcxx.out ];
-  patchInstructions = lib.optionalString (os == "linux") ''
+  patchInstructions = lib.optionalString (os == "linux") (''
     patchShebangs .
 
+  '' + lib.optionalString (builtins.compareVersions (lib.getVersion package) "21" > 0) ''
     patch -p1 \
       --no-backup-if-mismatch < ${./make_standalone_toolchain.py_18.patch}
     wrapProgram $(pwd)/build/tools/make_standalone_toolchain.py --prefix PATH : "${runtime_paths}"
+  '' + ''
 
     # TODO: allow this stuff
     rm -rf docs tests
@@ -46,6 +48,6 @@ deployAndroidPackage {
     do
         ln -sf ../libexec/android-sdk/ndk-bundle/$i $out/bin/$i
     done
-  '';
+  '');
   noAuditTmpdir = true; # Audit script gets invoked by the build/ component in the path for the make standalone script
 }
diff --git a/pkgs/development/mobile/cocoapods/Gemfile-beta.lock b/pkgs/development/mobile/cocoapods/Gemfile-beta.lock
index 933331b635b..98963ba4128 100644
--- a/pkgs/development/mobile/cocoapods/Gemfile-beta.lock
+++ b/pkgs/development/mobile/cocoapods/Gemfile-beta.lock
@@ -2,25 +2,26 @@ GEM
   remote: https://rubygems.org/
   specs:
     CFPropertyList (3.0.2)
-    activesupport (4.2.11.3)
-      i18n (~> 0.7)
+    activesupport (5.2.4.3)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 0.7, < 2)
       minitest (~> 5.1)
-      thread_safe (~> 0.3, >= 0.3.4)
       tzinfo (~> 1.1)
-    algoliasearch (1.27.2)
+    addressable (2.7.0)
+      public_suffix (>= 2.0.2, < 5.0)
+    algoliasearch (1.27.3)
       httpclient (~> 2.8, >= 2.8.3)
       json (>= 1.5.1)
     atomos (0.1.3)
     claide (1.0.3)
-    cocoapods (1.9.3)
-      activesupport (>= 4.0.2, < 5)
+    cocoapods (1.10.0.beta.2)
+      addressable (~> 2.6)
       claide (>= 1.0.2, < 2.0)
-      cocoapods-core (= 1.9.3)
+      cocoapods-core (= 1.10.0.beta.2)
       cocoapods-deintegrate (>= 1.0.3, < 2.0)
-      cocoapods-downloader (>= 1.2.2, < 2.0)
+      cocoapods-downloader (>= 1.4.0, < 2.0)
       cocoapods-plugins (>= 1.0.0, < 2.0)
       cocoapods-search (>= 1.0.0, < 2.0)
-      cocoapods-stats (>= 1.0.0, < 2.0)
       cocoapods-trunk (>= 1.4.0, < 2.0)
       cocoapods-try (>= 1.1.0, < 2.0)
       colored2 (~> 3.1)
@@ -30,55 +31,57 @@ GEM
       molinillo (~> 0.6.6)
       nap (~> 1.0)
       ruby-macho (~> 1.4)
-      xcodeproj (>= 1.14.0, < 2.0)
-    cocoapods-core (1.9.3)
-      activesupport (>= 4.0.2, < 6)
+      xcodeproj (>= 1.17.0, < 2.0)
+    cocoapods-core (1.10.0.beta.2)
+      activesupport (> 5.0, < 6)
+      addressable (~> 2.6)
       algoliasearch (~> 1.0)
       concurrent-ruby (~> 1.1)
       fuzzy_match (~> 2.0.4)
       nap (~> 1.0)
       netrc (~> 0.11)
+      public_suffix
       typhoeus (~> 1.0)
     cocoapods-deintegrate (1.0.4)
-    cocoapods-downloader (1.3.0)
+    cocoapods-downloader (1.4.0)
     cocoapods-plugins (1.0.0)
       nap
     cocoapods-search (1.0.0)
-    cocoapods-stats (1.1.0)
     cocoapods-trunk (1.5.0)
       nap (>= 0.8, < 2.0)
       netrc (~> 0.11)
     cocoapods-try (1.2.0)
     colored2 (3.1.2)
-    concurrent-ruby (1.1.6)
+    concurrent-ruby (1.1.7)
     escape (0.0.4)
     ethon (0.12.0)
       ffi (>= 1.3.0)
-    ffi (1.12.2)
+    ffi (1.13.1)
     fourflusher (2.3.1)
     fuzzy_match (2.0.4)
     gh_inspector (1.1.3)
     httpclient (2.8.3)
-    i18n (0.9.5)
+    i18n (1.8.5)
       concurrent-ruby (~> 1.0)
-    json (2.3.0)
+    json (2.3.1)
     minitest (5.14.1)
     molinillo (0.6.6)
-    nanaimo (0.2.6)
+    nanaimo (0.3.0)
     nap (1.1.0)
     netrc (0.11.0)
+    public_suffix (4.0.5)
     ruby-macho (1.4.0)
     thread_safe (0.3.6)
     typhoeus (1.4.0)
       ethon (>= 0.9.0)
     tzinfo (1.2.7)
       thread_safe (~> 0.1)
-    xcodeproj (1.16.0)
+    xcodeproj (1.18.0)
       CFPropertyList (>= 2.3.3, < 4.0)
       atomos (~> 0.1.3)
       claide (>= 1.0.2, < 2.0)
       colored2 (~> 3.1)
-      nanaimo (~> 0.2.6)
+      nanaimo (~> 0.3.0)
 
 PLATFORMS
   ruby
diff --git a/pkgs/development/mobile/cocoapods/gemset-beta.nix b/pkgs/development/mobile/cocoapods/gemset-beta.nix
index 375d2899ac6..b456f728b4c 100644
--- a/pkgs/development/mobile/cocoapods/gemset-beta.nix
+++ b/pkgs/development/mobile/cocoapods/gemset-beta.nix
@@ -1,14 +1,25 @@
 {
   activesupport = {
-    dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"];
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wp36wi3r3dscmcr0q6sbz13hr5h911c24ar7zrmmcy7p32ial2i";
+      sha256 = "02fdawr3wyvpzpja3r7mvb8lmn2mm5jdw502bx3ncr2sy2nw1kx6";
       type = "gem";
     };
-    version = "4.2.11.3";
+    version = "5.2.4.3";
+  };
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+      type = "gem";
+    };
+    version = "2.7.0";
   };
   algoliasearch = {
     dependencies = ["httpclient" "json"];
@@ -16,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b3xk42ry6dlsqn379p884zdi4iyra67xh45rwl6vcrwmrnbq7f0";
+      sha256 = "1z94dnx0rljsfa3k24i1nc0vf1nfk3bbk89nqc6n1ax25h4fs5sw";
       type = "gem";
     };
-    version = "1.27.2";
+    version = "1.27.3";
   };
   atomos = {
     groups = ["default"];
@@ -52,26 +63,26 @@
     version = "1.0.3";
   };
   cocoapods = {
-    dependencies = ["activesupport" "claide" "cocoapods-core" "cocoapods-deintegrate" "cocoapods-downloader" "cocoapods-plugins" "cocoapods-search" "cocoapods-stats" "cocoapods-trunk" "cocoapods-try" "colored2" "escape" "fourflusher" "gh_inspector" "molinillo" "nap" "ruby-macho" "xcodeproj"];
+    dependencies = ["addressable" "claide" "cocoapods-core" "cocoapods-deintegrate" "cocoapods-downloader" "cocoapods-plugins" "cocoapods-search" "cocoapods-trunk" "cocoapods-try" "colored2" "escape" "fourflusher" "gh_inspector" "molinillo" "nap" "ruby-macho" "xcodeproj"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zqj1878izp34cn7552q2djs3zd4a5ylyv0af3yxbz34z0qllk60";
+      sha256 = "0jf5q75h410b6gymy86j4zy9yhb6n28wa7hrk8p7y2dsafdzbric";
       type = "gem";
     };
-    version = "1.9.3";
+    version = "1.10.0.beta.2";
   };
   cocoapods-core = {
-    dependencies = ["activesupport" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "typhoeus"];
+    dependencies = ["activesupport" "addressable" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "public_suffix" "typhoeus"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sn1561sdhq2bh35pmi9nhq1adjcgdkhxybd9pxcjs75zmqzpz13";
+      sha256 = "0vrw6v5fp0m903ghvfwaw3mbxrr68x7hz9bj34rj4icirwp4ifyl";
       type = "gem";
     };
-    version = "1.9.3";
+    version = "1.10.0.beta.2";
   };
   cocoapods-deintegrate = {
     groups = ["default"];
@@ -88,10 +99,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08vn0pgcyn6w6fq5xjd7szv2h9s5rzl17kyidnd7fl5qdmzc9c54";
+      sha256 = "1j03hxvz3m82fwgx3jayw0y2iqm7zpacn88r6nfj2arkbjxmvjwz";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.4.0";
   };
   cocoapods-plugins = {
     dependencies = ["nap"];
@@ -114,16 +125,6 @@
     };
     version = "1.0.0";
   };
-  cocoapods-stats = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1xhdh5v94p6l612rwrk290nd2hdfx8lbaqfbkmj34md218kilqww";
-      type = "gem";
-    };
-    version = "1.1.0";
-  };
   cocoapods-trunk = {
     dependencies = ["nap" "netrc"];
     groups = ["default"];
@@ -160,10 +161,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
       type = "gem";
     };
-    version = "1.1.6";
+    version = "1.1.7";
   };
   escape = {
     groups = ["default"];
@@ -191,10 +192,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.13.1";
   };
   fourflusher = {
     groups = ["default"];
@@ -242,20 +243,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3";
+      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
       type = "gem";
     };
-    version = "0.9.5";
+    version = "1.8.5";
   };
   json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.3.1";
   };
   minitest = {
     groups = ["default"];
@@ -282,10 +283,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ajfyaqjw3dzykk612yw8sm21savfqy292hgps8h8l4lvxww1lz6";
+      sha256 = "0xi36h3f7nm8bc2k0b6svpda1lyank2gf872lxjbhw3h95hdrbma";
       type = "gem";
     };
-    version = "0.2.6";
+    version = "0.3.0";
   };
   nap = {
     groups = ["default"];
@@ -307,6 +308,16 @@
     };
     version = "0.11.0";
   };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g";
+      type = "gem";
+    };
+    version = "4.0.5";
+  };
   ruby-macho = {
     groups = ["default"];
     platforms = [];
@@ -355,9 +366,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bkk8y6lzd86w9yx72hd1nil3fkk5f0v3il9vm554gzpl6dhc2bi";
+      sha256 = "18idiqfbvyrcyflccwy4qw125psckrnqy7ggci33m8f3zs8h7hnm";
       type = "gem";
     };
-    version = "1.16.0";
+    version = "1.18.0";
   };
 }
\ No newline at end of file
diff --git a/pkgs/development/node-packages/default.nix b/pkgs/development/node-packages/default.nix
index 2ceef0f477f..61581e1a430 100644
--- a/pkgs/development/node-packages/default.nix
+++ b/pkgs/development/node-packages/default.nix
@@ -43,17 +43,6 @@ let
       name = "bitwarden-cli-${drv.version}";
     });
 
-    ios-deploy = super.ios-deploy.override (drv: {
-      nativeBuildInputs = drv.nativeBuildInputs or [] ++ [ pkgs.buildPackages.rsync ];
-      preRebuild = ''
-        LD=$CC
-        tmp=$(mktemp -d)
-        ln -s /usr/bin/xcodebuild $tmp
-        export PATH="$PATH:$tmp"
-      '';
-      meta.platforms = [ pkgs.lib.platforms.darwin ];
-    });
-
     fast-cli = super."fast-cli-1.x".override {
       preRebuild = ''
         # Simply ignore the phantomjs --version check. It seems to need a display but it is safe to ignore
@@ -71,6 +60,36 @@ let
       nativeBuildInputs = drv.nativeBuildInputs or [] ++ [ pkgs.psc-package self.pulp ];
     });
 
+    mirakurun = super.mirakurun.override rec {
+      nativeBuildInputs = with pkgs; [ makeWrapper ];
+      postInstall = let
+        runtimeDeps = [ nodejs ] ++ (with pkgs; [ bash which v4l_utils ]);
+      in
+      ''
+        substituteInPlace $out/lib/node_modules/mirakurun/processes.json \
+          --replace "/usr/local" ""
+
+        # XXX: Files copied from the Nix store are non-writable, so they need
+        # to be given explicit write permissions
+        substituteInPlace $out/lib/node_modules/mirakurun/lib/Mirakurun/config.js \
+          --replace 'fs.copyFileSync("config/server.yml", path);' \
+                    'fs.copyFileSync("config/server.yml", path); fs.chmodSync(path, 0o644);' \
+          --replace 'fs.copyFileSync("config/tuners.yml", path);' \
+                    'fs.copyFileSync("config/tuners.yml", path); fs.chmodSync(path, 0o644);' \
+          --replace 'fs.copyFileSync("config/channels.yml", path);' \
+                    'fs.copyFileSync("config/channels.yml", path); fs.chmodSync(path, 0o644);'
+
+        # XXX: The original mirakurun command uses PM2 to manage the Mirakurun
+        # server.  However, we invoke the server directly and let systemd
+        # manage it to avoid complication. This is okay since no features
+        # unique to PM2 is currently being used.
+        makeWrapper ${nodejs}/bin/npm $out/bin/mirakurun \
+          --add-flags "start" \
+          --run "cd $out/lib/node_modules/mirakurun" \
+          --prefix PATH : ${pkgs.lib.makeBinPath runtimeDeps}
+      '';
+    };
+
     node-inspector = super.node-inspector.override {
       buildInputs = [ self.node-pre-gyp ];
       meta.broken = since "10";
@@ -131,6 +150,14 @@ let
       '';
     };
 
+    tsun = super.tsun.overrideAttrs (oldAttrs: {
+      buildInputs = oldAttrs.buildInputs ++ [ pkgs.makeWrapper ];
+      postInstall = ''
+        wrapProgram "$out/bin/tsun" \
+        --prefix NODE_PATH : ${self.typescript}/lib/node_modules
+      '';
+    });
+
     stf = super.stf.override {
       meta.broken = since "10";
     };
diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json
index 29dc8755edf..df5d4e68a54 100644
--- a/pkgs/development/node-packages/node-packages.json
+++ b/pkgs/development/node-packages/node-packages.json
@@ -72,6 +72,7 @@
 , {"fast-cli": "1.x"}
 , "fkill-cli"
 , "forever"
+, "get-graphql-schema"
 , "git-run"
 , "git-ssb"
 , "git-standup"
@@ -90,7 +91,6 @@
 , "indium"
 , "insect"
 , "ionic"
-, "ios-deploy"
 , { "iosevka-build-deps": "../../data/fonts/iosevka" }
 , "jake"
 , "javascript-typescript-langserver"
@@ -115,12 +115,14 @@
 , {"lumo-build-deps": "../interpreters/clojurescript/lumo" }
 , "madoko"
 , "markdown-link-check"
+, "mastodon-bot"
 , "mathjax"
 , "meat"
-, "meguca"
+, "mirakurun"
 , "mocha"
 , "multi-file-swagger"
 , "neovim"
+, "netlify-cli"
 , "nijs"
 , "node-gyp"
 , "node-gyp-build"
@@ -145,8 +147,10 @@
 , "purescript-language-server"
 , "purescript-psa"
 , "purty"
+, "pyright"
 , "react-native-cli"
 , "react-tools"
+, "redoc-cli"
 , "reveal.js"
 , "rollup"
 , { "rust-analyzer-build-deps": "../../misc/vscode-extensions/rust-analyzer/build-deps" }
@@ -192,8 +196,10 @@
 , "typescript-language-server"
 , "uglify-js"
 , "ungit"
+, "vim-language-server"
 , "vscode-css-languageserver-bin"
 , "vscode-html-languageserver-bin"
+, "vscode-json-languageserver-bin"
 , "vue-cli"
 , "vue-language-server"
 , "web-ext"
diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix
index 2b30811e84c..db00f42aa05 100644
--- a/pkgs/development/node-packages/node-packages.nix
+++ b/pkgs/development/node-packages/node-packages.nix
@@ -22,76 +22,103 @@ let
         sha512 = "t4WmWoGV9gyzypwG3y3JlcK2t8fKLtvzBA7xEoFTj9SMPvOuLsf13uh4ikK0RRaaa9RPPWLgFUdOyIRaQvCpwQ==";
       };
     };
-    "@angular-devkit/architect-0.1000.0" = {
+    "@analytics/cookie-utils-0.2.3" = {
+      name = "_at_analytics_slash_cookie-utils";
+      packageName = "@analytics/cookie-utils";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@analytics/cookie-utils/-/cookie-utils-0.2.3.tgz";
+        sha512 = "RiMAVpSluRbWb2hlT9wMJ0r2l+MUZzScYjY+w2iWRzjOr9Zzzs4tYzJT6Sd94PDz3LzCuf4aGOwS6pkKXTEBLw==";
+      };
+    };
+    "@analytics/core-0.6.2" = {
+      name = "_at_analytics_slash_core";
+      packageName = "@analytics/core";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@analytics/core/-/core-0.6.2.tgz";
+        sha512 = "qXBfef5/HK5RZkGlkVqRKnjFQuPZejU6NLqnzx/DH3EU28w7a7IgUN+qZ2VSWFr3aMtNJ0qVybfHDxcJBtrLtQ==";
+      };
+    };
+    "@analytics/storage-utils-0.2.4" = {
+      name = "_at_analytics_slash_storage-utils";
+      packageName = "@analytics/storage-utils";
+      version = "0.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@analytics/storage-utils/-/storage-utils-0.2.4.tgz";
+        sha512 = "VHRggJbRY8vHIADWVwbq9cZux0L9LdmlN31XA3daVAI4gMkKdQEocxB7KqGDt6SfIJ3NYi/qh1nRJGooYmTBiA==";
+      };
+    };
+    "@angular-devkit/architect-0.1001.0" = {
       name = "_at_angular-devkit_slash_architect";
       packageName = "@angular-devkit/architect";
-      version = "0.1000.0";
+      version = "0.1001.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1000.0.tgz";
-        sha512 = "luzBYe7t994ebq6xIfYJudxOkMBO0bywafk6sQqb+bOaBQAran4orF1R/zEx6f8TJzEoXELjUvxm/ePSqZdpKg==";
+        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1001.0.tgz";
+        sha512 = "mJYy9tqy7ZfqAJYlQPgcHVUiaAxWnxEEpiTAftsKz/yqdO45YFkzehYXJfCqbAXYr4r7hYY3KqKMgj41ixkS8Q==";
       };
     };
-    "@angular-devkit/core-10.0.0" = {
+    "@angular-devkit/core-10.0.7" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "10.0.0";
+      version = "10.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-10.0.0.tgz";
-        sha512 = "IvX9IMaCjDkN9vDVnYcgWbSBinlUUb7jdFhDGeTtK6rGSnjX1GoLvWneVI2hoccS07fPbnfMoYXBoZLwVxiIxw==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-10.0.7.tgz";
+        sha512 = "pXaZgsQ8LHpRx4QGAUYDE8GwBQLAtoqPh6oUCwRJwBExm5rl13OGPTBWewHiq0ysV/SnFXvOjxwAaHQvC1AgZw==";
       };
     };
-    "@angular-devkit/core-9.1.7" = {
+    "@angular-devkit/core-10.1.0" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "9.1.7";
+      version = "10.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.7.tgz";
-        sha512 = "guvolu9Cl+qYMTtedLZD9wCqustJjdqzJ2psD2C1Sr1LrX9T0mprmDldR/YnhsitThveJEb6sM/0EvqWxoSvKw==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-10.1.0.tgz";
+        sha512 = "oNRwAX+5uEwgheS3UUc1W+AerbimqGojCOTdWWcq5XtSviZnBCp1FeMZV+eB6XgUWfbmbWBu39S3sCYmXVHLwg==";
       };
     };
-    "@angular-devkit/core-9.1.9" = {
+    "@angular-devkit/core-9.1.12" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "9.1.9";
+      version = "9.1.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.9.tgz";
-        sha512 = "SWgBh4an/Vezjw2BZ5S+bKvuK5lH6gOtR8d5YjN9vxpJSZ0GimrGjfnLlWOkwWAsU8jfn4JzofECUHwX/7EW6Q==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.12.tgz";
+        sha512 = "D/GnBeSlmdgGn7EhuE32HuPuRAjvUuxi7Q6WywBI8PSsXKAGnrypghBwMATNnOA24//CgbW2533Y9VWHaeXdeA==";
       };
     };
-    "@angular-devkit/schematics-10.0.0" = {
+    "@angular-devkit/schematics-10.0.7" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "10.0.0";
+      version = "10.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.0.0.tgz";
-        sha512 = "FJ/dY18M+cnAT9RkVjVRJ0PMFZci3ok0WoOosW25Fk68jwNSbGCeF8k8NcD6YE60+CfF4/0LxQWgFagr/wdEhw==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.0.7.tgz";
+        sha512 = "eyyYPgpjtr3h7WbnNbkDubJ/p+8TgKU6abWd+NmBfTvyeHrpVFUYZabNRcdXwUDSVzfTQKdmLynIkESj/KROrg==";
       };
     };
-    "@angular-devkit/schematics-9.1.7" = {
+    "@angular-devkit/schematics-10.1.0" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "9.1.7";
+      version = "10.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.7.tgz";
-        sha512 = "oeHPJePBcPp/bd94jHQeFUnft93PGF5iJiKV9szxqS8WWC5OMZ5eK7icRY0PwvLyfenspAZxdZcNaqJqPMul5A==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.1.0.tgz";
+        sha512 = "5Vl32bHpcB/oj0oNR8nPLXF7DwPVuzrJjosch8G+sPG2gAG6OpwjUhQjY1U6E4xJGDR6j7fX8jw+TwC2cMgUbQ==";
       };
     };
-    "@angular-devkit/schematics-9.1.9" = {
+    "@angular-devkit/schematics-9.1.12" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "9.1.9";
+      version = "9.1.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.9.tgz";
-        sha512 = "aKuMmS3wshOTl9+01jiB50ml09fRN1WfOOtoNqwvKTEi87DrT6Mn3l0eVQo8PJK/bIq/FBmPgsIl2nsETiBSxg==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.12.tgz";
+        sha512 = "+GYnUzmIy1/QpYitCC8mI7jcrViGHTtOKvvDPEFjU2nggjNEQaMmsHcdIsjrqggEc23ZZyebNAIewT8CMkJyrQ==";
       };
     };
-    "@angular-devkit/schematics-cli-0.901.9" = {
+    "@angular-devkit/schematics-cli-0.1000.7" = {
       name = "_at_angular-devkit_slash_schematics-cli";
       packageName = "@angular-devkit/schematics-cli";
-      version = "0.901.9";
+      version = "0.1000.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-0.901.9.tgz";
-        sha512 = "mkbN30u7/GvFOIOjj20w5OWi+vEOc/mdnpSrm3AxXvmha4AG56VL6uzF/kKHw9vyhfv8wLMt11OK/iSms9hSWw==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-0.1000.7.tgz";
+        sha512 = "5zXO0WfyRySZudv2/EEC/UVfG75y7TGrdMfVZNc1WP0SB54psA0U3Z3jT+6Y9VjdjmXdxjVfybhuOzZ4I1fs0Q==";
       };
     };
     "@antora/asciidoc-loader-2.3.3" = {
@@ -202,22 +229,22 @@ let
         sha512 = "bQVb6PE34iDmZj6wZZzYm3rLjguxoSqHZj4QReVQsOle/LdIwl48hV9Iz/Pivy9NtVCui9LL/lmSQzMt0G0jkw==";
       };
     };
-    "@apollo/federation-0.16.2" = {
+    "@apollo/federation-0.20.0" = {
       name = "_at_apollo_slash_federation";
       packageName = "@apollo/federation";
-      version = "0.16.2";
+      version = "0.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollo/federation/-/federation-0.16.2.tgz";
-        sha512 = "pjTkcl1KGxLZOPpVyTygZNuLxZJCCMvGVonPJMoFzQYt63/o0DwpwbcNlbvpdryWjjFgvi5diqJxRFGuxndEPA==";
+        url = "https://registry.npmjs.org/@apollo/federation/-/federation-0.20.0.tgz";
+        sha512 = "Q2eGSjrArtY04FSVIxUK3/JaVDDw4aJZBRl0+UZ1dwrpk6YtBpydW2u4X6dPTnBqRDpKVGVmc9gkQr8d3LpcKA==";
       };
     };
-    "@apollo/protobufjs-1.0.4" = {
+    "@apollo/protobufjs-1.0.5" = {
       name = "_at_apollo_slash_protobufjs";
       packageName = "@apollo/protobufjs";
-      version = "1.0.4";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.0.4.tgz";
-        sha512 = "EE3zx+/D/wur/JiLp6VCiw1iYdyy1lCJMf8CGPkLeDt5QJrN4N8tKFx33Ah4V30AUQzMk7Uz4IXKZ1LOj124gA==";
+        url = "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.0.5.tgz";
+        sha512 = "ZtyaBH1icCgqwIGb3zrtopV2D5Q8yxibkJzlaViM08eOhTQc7rACdYu0pfORFfhllvdMZ3aq69vifYHszY4gNA==";
       };
     };
     "@apollographql/apollo-tools-0.4.8" = {
@@ -274,6 +301,15 @@ let
         sha512 = "XAwXOIab51QyhBxnxySdK3nuMEUohhDsHQ5Rbco/V1vjlP75zZ0ZLHD9dTpXTN8uxKxopb2lUvJTq+M4g2Q0HQ==";
       };
     };
+    "@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/@arcanis/slice-ansi/-/slice-ansi-1.0.2.tgz";
+        sha512 = "lDL63z0W/L/WTgqrwVOuNyMAsTv+pvjybd21z9SWdStmQoXT59E/iVWwat3gYjcdTNBf6oHAMoyFm8dtjpXEYw==";
+      };
+    };
     "@ardatan/aggregate-error-0.0.1" = {
       name = "_at_ardatan_slash_aggregate-error";
       packageName = "@ardatan/aggregate-error";
@@ -301,292 +337,301 @@ let
         sha1 = "e70187f8a862e191b1bce6c0268f13acd3a56b20";
       };
     };
-    "@babel/code-frame-7.10.3" = {
+    "@babel/code-frame-7.10.4" = {
       name = "_at_babel_slash_code-frame";
       packageName = "@babel/code-frame";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz";
-        sha512 = "fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==";
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz";
+        sha512 = "vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==";
       };
     };
-    "@babel/compat-data-7.10.3" = {
+    "@babel/compat-data-7.11.0" = {
       name = "_at_babel_slash_compat-data";
       packageName = "@babel/compat-data";
-      version = "7.10.3";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.3.tgz";
-        sha512 = "BDIfJ9uNZuI0LajPfoYV28lX8kyCPMHY6uY4WH1lJdcicmAfxCK5ASzaeV0D/wsUaRH/cLk+amuxtC37sZ8TUg==";
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz";
+        sha512 = "TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==";
       };
     };
-    "@babel/core-7.10.3" = {
+    "@babel/core-7.11.5" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.10.3";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.10.3.tgz";
-        sha512 = "5YqWxYE3pyhIi84L84YcwjeEgS+fa7ZjK6IBVGTjDVfm64njkR2lfDhVR5OudLk8x2GK59YoSyVv+L/03k1q9w==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.11.5.tgz";
+        sha512 = "fsEANVOcZHzrsV6dMVWqpSeXClq3lNbYrfFGme6DE25FQWe7pyeYpXyx9guqUnpy466JLzZ8z4uwSr2iv60V5Q==";
       };
     };
-    "@babel/generator-7.10.2" = {
+    "@babel/generator-7.11.4" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.10.2";
+      version = "7.11.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz";
-        sha512 = "AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.11.4.tgz";
+        sha512 = "Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g==";
       };
     };
-    "@babel/generator-7.10.3" = {
+    "@babel/generator-7.11.5" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.10.3";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.10.3.tgz";
-        sha512 = "drt8MUHbEqRzNR0xnF8nMehbY11b1SDkRw03PSNH/3Rb2Z35oxkddVSi3rcaak0YJQ86PCuE7Qx1jSFhbLNBMA==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.11.5.tgz";
+        sha512 = "9UqHWJ4IwRTy4l0o8gq2ef8ws8UPzvtMkVKjTLAiRmza9p9V6Z+OfuNd9fB1j5Q67F+dVJtPC2sZXI8NM9br4g==";
       };
     };
-    "@babel/helper-annotate-as-pure-7.10.1" = {
+    "@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.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz";
-        sha512 = "ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw==";
+        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.3" = {
+    "@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.3";
+      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.3.tgz";
-        sha512 = "lo4XXRnBlU6eRM92FkiZxpo1xFLmv3VsPFk61zJKMm7XYJfwqXHsYJTY6agoc4a3L8QPw1HqWehO18coZgbT6A==";
+        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-builder-react-jsx-7.10.3" = {
+    "@babel/helper-builder-react-jsx-7.10.4" = {
       name = "_at_babel_slash_helper-builder-react-jsx";
       packageName = "@babel/helper-builder-react-jsx";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.3.tgz";
-        sha512 = "vkxmuFvmovtqTZknyMGj9+uQAZzz5Z9mrbnkJnPkaYGfKTaSsYcjQdXP0lgrWLVh8wU6bCjOmXOpx+kqUi+S5Q==";
+        url = "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz";
+        sha512 = "5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==";
       };
     };
-    "@babel/helper-builder-react-jsx-experimental-7.10.1" = {
+    "@babel/helper-builder-react-jsx-experimental-7.11.5" = {
       name = "_at_babel_slash_helper-builder-react-jsx-experimental";
       packageName = "@babel/helper-builder-react-jsx-experimental";
-      version = "7.10.1";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.1.tgz";
-        sha512 = "irQJ8kpQUV3JasXPSFQ+LCCtJSc5ceZrPFVj6TElR6XCHssi3jV8ch3odIrNtjJFRZZVbrOEfJMI79TPU/h1pQ==";
+        url = "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.11.5.tgz";
+        sha512 = "Vc4aPJnRZKWfzeCBsqTBnzulVNjABVdahSPhtdMD3Vs80ykx4a87jTHtF/VR+alSrDmNvat7l13yrRHauGcHVw==";
       };
     };
-    "@babel/helper-compilation-targets-7.10.2" = {
+    "@babel/helper-compilation-targets-7.10.4" = {
       name = "_at_babel_slash_helper-compilation-targets";
       packageName = "@babel/helper-compilation-targets";
-      version = "7.10.2";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz";
-        sha512 = "hYgOhF4To2UTB4LTaZepN/4Pl9LD4gfbJx8A34mqoluT8TLbof1mhUlYuNWTEebONa8+UlCC4X0TEXu7AOUyGA==";
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz";
+        sha512 = "a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==";
       };
     };
-    "@babel/helper-create-class-features-plugin-7.10.3" = {
+    "@babel/helper-create-class-features-plugin-7.10.5" = {
       name = "_at_babel_slash_helper-create-class-features-plugin";
       packageName = "@babel/helper-create-class-features-plugin";
-      version = "7.10.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.3.tgz";
-        sha512 = "iRT9VwqtdFmv7UheJWthGc/h2s7MqoweBF9RUj77NFZsg9VfISvBTum3k6coAhJ8RWv2tj3yUjA03HxPd0vfpQ==";
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz";
+        sha512 = "0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==";
       };
     };
-    "@babel/helper-create-regexp-features-plugin-7.10.1" = {
+    "@babel/helper-create-regexp-features-plugin-7.10.4" = {
       name = "_at_babel_slash_helper-create-regexp-features-plugin";
       packageName = "@babel/helper-create-regexp-features-plugin";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz";
-        sha512 = "Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA==";
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz";
+        sha512 = "2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==";
       };
     };
-    "@babel/helper-define-map-7.10.3" = {
+    "@babel/helper-define-map-7.10.5" = {
       name = "_at_babel_slash_helper-define-map";
       packageName = "@babel/helper-define-map";
-      version = "7.10.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.3.tgz";
-        sha512 = "bxRzDi4Sin/k0drWCczppOhov1sBSdBvXJObM1NLHQzjhXhwRtn7aRWGvLJWCYbuu2qUk3EKs6Ci9C9ps8XokQ==";
+        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.10.3" = {
+    "@babel/helper-explode-assignable-expression-7.11.4" = {
       name = "_at_babel_slash_helper-explode-assignable-expression";
       packageName = "@babel/helper-explode-assignable-expression";
-      version = "7.10.3";
+      version = "7.11.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.3.tgz";
-        sha512 = "0nKcR64XrOC3lsl+uhD15cwxPvaB6QKUDlD84OT9C3myRbhJqTMYir69/RWItUvHpharv0eJ/wk7fl34ONSwZw==";
+        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz";
+        sha512 = "ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==";
       };
     };
-    "@babel/helper-function-name-7.10.3" = {
+    "@babel/helper-function-name-7.10.4" = {
       name = "_at_babel_slash_helper-function-name";
       packageName = "@babel/helper-function-name";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.3.tgz";
-        sha512 = "FvSj2aiOd8zbeqijjgqdMDSyxsGHaMt5Tr0XjQsGKHD3/1FP3wksjnLAWzxw7lvXiej8W1Jt47SKTZ6upQNiRw==";
+        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.3" = {
+    "@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.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.3.tgz";
-        sha512 = "iUD/gFsR+M6uiy69JA6fzM5seno8oE85IYZdbVVEuQaZlEzMO2MXblh+KSPJgsZAUx0EEbWXU0yJaW7C9CdAVg==";
+        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.3" = {
+    "@babel/helper-hoist-variables-7.10.4" = {
       name = "_at_babel_slash_helper-hoist-variables";
       packageName = "@babel/helper-hoist-variables";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.3.tgz";
-        sha512 = "9JyafKoBt5h20Yv1+BXQMdcXXavozI1vt401KBiRc2qzUepbVnd7ogVNymY1xkQN9fekGwfxtotH2Yf5xsGzgg==";
+        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.10.3" = {
+    "@babel/helper-member-expression-to-functions-7.11.0" = {
       name = "_at_babel_slash_helper-member-expression-to-functions";
       packageName = "@babel/helper-member-expression-to-functions";
-      version = "7.10.3";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.3.tgz";
-        sha512 = "q7+37c4EPLSjNb2NmWOjNwj0+BOyYlssuQ58kHEWk1Z78K5i8vTUsteq78HMieRPQSl/NtpQyJfdjt3qZ5V2vw==";
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz";
+        sha512 = "JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==";
       };
     };
-    "@babel/helper-module-imports-7.10.3" = {
+    "@babel/helper-module-imports-7.10.4" = {
       name = "_at_babel_slash_helper-module-imports";
       packageName = "@babel/helper-module-imports";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.3.tgz";
-        sha512 = "Jtqw5M9pahLSUWA+76nhK9OG8nwYXzhQzVIGFoNaHnXF/r4l7kz4Fl0UAW7B6mqC5myoJiBP5/YQlXQTMfHI9w==";
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz";
+        sha512 = "nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==";
       };
     };
-    "@babel/helper-module-transforms-7.10.1" = {
+    "@babel/helper-module-transforms-7.11.0" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.10.1";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz";
-        sha512 = "RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg==";
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz";
+        sha512 = "02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==";
       };
     };
-    "@babel/helper-optimise-call-expression-7.10.3" = {
+    "@babel/helper-optimise-call-expression-7.10.4" = {
       name = "_at_babel_slash_helper-optimise-call-expression";
       packageName = "@babel/helper-optimise-call-expression";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.3.tgz";
-        sha512 = "kT2R3VBH/cnSz+yChKpaKRJQJWxdGoc6SjioRId2wkeV3bK0wLLioFpJROrX0U4xr/NmxSSAWT/9Ih5snwIIzg==";
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz";
+        sha512 = "n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==";
       };
     };
-    "@babel/helper-plugin-utils-7.10.3" = {
+    "@babel/helper-plugin-utils-7.10.4" = {
       name = "_at_babel_slash_helper-plugin-utils";
       packageName = "@babel/helper-plugin-utils";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.3.tgz";
-        sha512 = "j/+j8NAWUTxOtx4LKHybpSClxHoq6I91DQ/mKgAXn5oNUPIUiGppjPIX3TDtJWPrdfP9Kfl7e4fgVMiQR9VE/g==";
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
+        sha512 = "O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==";
       };
     };
-    "@babel/helper-regex-7.10.1" = {
+    "@babel/helper-regex-7.10.5" = {
       name = "_at_babel_slash_helper-regex";
       packageName = "@babel/helper-regex";
-      version = "7.10.1";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.1.tgz";
-        sha512 = "7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g==";
+        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz";
+        sha512 = "68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==";
       };
     };
-    "@babel/helper-remap-async-to-generator-7.10.3" = {
+    "@babel/helper-remap-async-to-generator-7.11.4" = {
       name = "_at_babel_slash_helper-remap-async-to-generator";
       packageName = "@babel/helper-remap-async-to-generator";
-      version = "7.10.3";
+      version = "7.11.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.3.tgz";
-        sha512 = "sLB7666ARbJUGDO60ZormmhQOyqMX/shKBXZ7fy937s+3ID8gSrneMvKSSb+8xIM5V7Vn6uNVtOY1vIm26XLtA==";
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz";
+        sha512 = "tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==";
       };
     };
-    "@babel/helper-replace-supers-7.10.1" = {
+    "@babel/helper-replace-supers-7.10.4" = {
       name = "_at_babel_slash_helper-replace-supers";
       packageName = "@babel/helper-replace-supers";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz";
-        sha512 = "SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A==";
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz";
+        sha512 = "sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==";
       };
     };
-    "@babel/helper-simple-access-7.10.1" = {
+    "@babel/helper-simple-access-7.10.4" = {
       name = "_at_babel_slash_helper-simple-access";
       packageName = "@babel/helper-simple-access";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz";
-        sha512 = "VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw==";
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz";
+        sha512 = "0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==";
       };
     };
-    "@babel/helper-split-export-declaration-7.10.1" = {
+    "@babel/helper-skip-transparent-expression-wrappers-7.11.0" = {
+      name = "_at_babel_slash_helper-skip-transparent-expression-wrappers";
+      packageName = "@babel/helper-skip-transparent-expression-wrappers";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz";
+        sha512 = "0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==";
+      };
+    };
+    "@babel/helper-split-export-declaration-7.11.0" = {
       name = "_at_babel_slash_helper-split-export-declaration";
       packageName = "@babel/helper-split-export-declaration";
-      version = "7.10.1";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz";
-        sha512 = "UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==";
+        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.3" = {
+    "@babel/helper-validator-identifier-7.10.4" = {
       name = "_at_babel_slash_helper-validator-identifier";
       packageName = "@babel/helper-validator-identifier";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz";
-        sha512 = "bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw==";
+        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-wrap-function-7.10.1" = {
+    "@babel/helper-wrap-function-7.10.4" = {
       name = "_at_babel_slash_helper-wrap-function";
       packageName = "@babel/helper-wrap-function";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz";
-        sha512 = "C0MzRGteVDn+H32/ZgbAv5r56f2o1fZSA/rj/TYo8JEJNHg+9BdSmKBUND0shxWRztWhjlT2cvHYuynpPsVJwQ==";
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz";
+        sha512 = "6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==";
       };
     };
-    "@babel/helpers-7.10.1" = {
+    "@babel/helpers-7.10.4" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.1.tgz";
-        sha512 = "muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz";
+        sha512 = "L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==";
       };
     };
-    "@babel/highlight-7.10.3" = {
+    "@babel/highlight-7.10.4" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz";
-        sha512 = "Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz";
+        sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==";
       };
     };
-    "@babel/parser-7.10.3" = {
+    "@babel/parser-7.11.5" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.10.3";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.10.3.tgz";
-        sha512 = "oJtNJCMFdIMwXGmx+KxuaD7i3b8uS7TTFYW/FNG2BT8m+fmGHoiPYoH0Pe3gya07WuFmM5FCDIr1x0irkD/hyA==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz";
+        sha512 = "X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==";
       };
     };
     "@babel/plugin-external-helpers-7.8.3" = {
@@ -598,103 +643,121 @@ let
         sha512 = "mx0WXDDiIl5DwzMtzWGRSPugXi9BxROS05GQrhLNbEamhBiicgn994ibwkyiBH+6png7bm/yA7AUsvHyCXi4Vw==";
       };
     };
-    "@babel/plugin-proposal-async-generator-functions-7.10.3" = {
+    "@babel/plugin-proposal-async-generator-functions-7.10.5" = {
       name = "_at_babel_slash_plugin-proposal-async-generator-functions";
       packageName = "@babel/plugin-proposal-async-generator-functions";
-      version = "7.10.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.3.tgz";
-        sha512 = "WUUWM7YTOudF4jZBAJIW9D7aViYC/Fn0Pln4RIHlQALyno3sXSjqmTA4Zy1TKC2D49RCR8Y/Pn4OIUtEypK3CA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz";
+        sha512 = "cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==";
       };
     };
-    "@babel/plugin-proposal-class-properties-7.10.1" = {
+    "@babel/plugin-proposal-class-properties-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-class-properties";
       packageName = "@babel/plugin-proposal-class-properties";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.1.tgz";
-        sha512 = "sqdGWgoXlnOdgMXU+9MbhzwFRgxVLeiGBqTrnuS7LC2IBU31wSsESbTUreT2O418obpfPdGUR2GbEufZF1bpqw==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz";
+        sha512 = "vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==";
       };
     };
-    "@babel/plugin-proposal-dynamic-import-7.10.1" = {
+    "@babel/plugin-proposal-dynamic-import-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-dynamic-import";
       packageName = "@babel/plugin-proposal-dynamic-import";
-      version = "7.10.1";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz";
+        sha512 = "up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==";
+      };
+    };
+    "@babel/plugin-proposal-export-namespace-from-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-export-namespace-from";
+      packageName = "@babel/plugin-proposal-export-namespace-from";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz";
-        sha512 = "Cpc2yUVHTEGPlmiQzXj026kqwjEQAD9I4ZC16uzdbgWgitg/UHKHLffKNCQZ5+y8jpIZPJcKcwsr2HwPh+w3XA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz";
+        sha512 = "aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==";
       };
     };
-    "@babel/plugin-proposal-json-strings-7.10.1" = {
+    "@babel/plugin-proposal-json-strings-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-json-strings";
       packageName = "@babel/plugin-proposal-json-strings";
-      version = "7.10.1";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz";
+        sha512 = "fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==";
+      };
+    };
+    "@babel/plugin-proposal-logical-assignment-operators-7.11.0" = {
+      name = "_at_babel_slash_plugin-proposal-logical-assignment-operators";
+      packageName = "@babel/plugin-proposal-logical-assignment-operators";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz";
-        sha512 = "m8r5BmV+ZLpWPtMY2mOKN7wre6HIO4gfIiV+eOmsnZABNenrt/kzYBwrh+KOfgumSWpnlGs5F70J8afYMSJMBg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz";
+        sha512 = "/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==";
       };
     };
-    "@babel/plugin-proposal-nullish-coalescing-operator-7.10.1" = {
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
       packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz";
-        sha512 = "56cI/uHYgL2C8HVuHOuvVowihhX0sxb3nnfVRzUeVHTWmRHTZrKuAh/OBIMggGU/S1g/1D2CRCXqP+3u7vX7iA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz";
+        sha512 = "wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==";
       };
     };
-    "@babel/plugin-proposal-numeric-separator-7.10.1" = {
+    "@babel/plugin-proposal-numeric-separator-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-numeric-separator";
       packageName = "@babel/plugin-proposal-numeric-separator";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz";
-        sha512 = "jjfym4N9HtCiNfyyLAVD8WqPYeHUrw4ihxuAynWj6zzp2gf9Ey2f7ImhFm6ikB3CLf5Z/zmcJDri6B4+9j9RsA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz";
+        sha512 = "73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==";
       };
     };
-    "@babel/plugin-proposal-object-rest-spread-7.10.3" = {
+    "@babel/plugin-proposal-object-rest-spread-7.11.0" = {
       name = "_at_babel_slash_plugin-proposal-object-rest-spread";
       packageName = "@babel/plugin-proposal-object-rest-spread";
-      version = "7.10.3";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.3.tgz";
-        sha512 = "ZZh5leCIlH9lni5bU/wB/UcjtcVLgR8gc+FAgW2OOY+m9h1II3ItTO1/cewNUcsIDZSYcSaz/rYVls+Fb0ExVQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz";
+        sha512 = "wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==";
       };
     };
-    "@babel/plugin-proposal-optional-catch-binding-7.10.1" = {
+    "@babel/plugin-proposal-optional-catch-binding-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
       packageName = "@babel/plugin-proposal-optional-catch-binding";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz";
-        sha512 = "VqExgeE62YBqI3ogkGoOJp1R6u12DFZjqwJhqtKc2o5m1YTUuUWnos7bZQFBhwkxIFpWYJ7uB75U7VAPPiKETA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz";
+        sha512 = "LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==";
       };
     };
-    "@babel/plugin-proposal-optional-chaining-7.10.3" = {
+    "@babel/plugin-proposal-optional-chaining-7.11.0" = {
       name = "_at_babel_slash_plugin-proposal-optional-chaining";
       packageName = "@babel/plugin-proposal-optional-chaining";
-      version = "7.10.3";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.3.tgz";
-        sha512 = "yyG3n9dJ1vZ6v5sfmIlMMZ8azQoqx/5/nZTSWX1td6L1H1bsjzA8TInDChpafCZiJkeOFzp/PtrfigAQXxI1Ng==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz";
+        sha512 = "v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==";
       };
     };
-    "@babel/plugin-proposal-private-methods-7.10.1" = {
+    "@babel/plugin-proposal-private-methods-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-private-methods";
       packageName = "@babel/plugin-proposal-private-methods";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.1.tgz";
-        sha512 = "RZecFFJjDiQ2z6maFprLgrdnm0OzoC23Mx89xf1CcEsxmHuzuXOdniEuI+S3v7vjQG4F5sa6YtUp+19sZuSxHg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz";
+        sha512 = "wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==";
       };
     };
-    "@babel/plugin-proposal-unicode-property-regex-7.10.1" = {
+    "@babel/plugin-proposal-unicode-property-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
       packageName = "@babel/plugin-proposal-unicode-property-regex";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz";
-        sha512 = "JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz";
+        sha512 = "H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==";
       };
     };
     "@babel/plugin-syntax-async-generators-7.8.4" = {
@@ -715,13 +778,13 @@ let
         sha512 = "wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==";
       };
     };
-    "@babel/plugin-syntax-class-properties-7.10.1" = {
+    "@babel/plugin-syntax-class-properties-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-class-properties";
       packageName = "@babel/plugin-syntax-class-properties";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.1.tgz";
-        sha512 = "Gf2Yx/iRs1JREDtVZ56OrjjgFHCaldpTnuy9BHla10qyVT3YkIIGEtoDWhyop0ksu1GvNjHIoYRBqm3zoR1jyQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz";
+        sha512 = "GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==";
       };
     };
     "@babel/plugin-syntax-dynamic-import-7.8.3" = {
@@ -733,22 +796,31 @@ let
         sha512 = "5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==";
       };
     };
-    "@babel/plugin-syntax-flow-7.10.1" = {
+    "@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-flow-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-flow";
       packageName = "@babel/plugin-syntax-flow";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.1.tgz";
-        sha512 = "b3pWVncLBYoPP60UOTc7NMlbtsHQ6ITim78KQejNHK6WJ2mzV5kCcg4mIWpasAfJEgwVTibwo2e+FU7UEIKQUg==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz";
+        sha512 = "yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ==";
       };
     };
-    "@babel/plugin-syntax-import-meta-7.10.1" = {
+    "@babel/plugin-syntax-import-meta-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-import-meta";
       packageName = "@babel/plugin-syntax-import-meta";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.1.tgz";
-        sha512 = "ypC4jwfIVF72og0dgvEcFRdOM2V9Qm1tu7RGmdZOlhsccyK0wisXmMObGuWEOd5jQ+K9wcIgSNftCpk2vkjUfQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz";
+        sha512 = "Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==";
       };
     };
     "@babel/plugin-syntax-json-strings-7.8.3" = {
@@ -760,22 +832,22 @@ let
         sha512 = "lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==";
       };
     };
-    "@babel/plugin-syntax-jsx-7.10.1" = {
+    "@babel/plugin-syntax-jsx-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-jsx";
       packageName = "@babel/plugin-syntax-jsx";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.1.tgz";
-        sha512 = "+OxyOArpVFXQeXKLO9o+r2I4dIoVoy6+Uu0vKELrlweDM3QJADZj+Z+5ERansZqIZBcLj42vHnDI8Rz9BnRIuQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz";
+        sha512 = "KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==";
       };
     };
-    "@babel/plugin-syntax-logical-assignment-operators-7.10.1" = {
+    "@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.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.1.tgz";
-        sha512 = "XyHIFa9kdrgJS91CUH+ccPVTnJShr8nLGc5bG2IhGXv5p1Rd+8BleGE5yzIg2Nc1QZAdHDa0Qp4m6066OL96Iw==";
+        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" = {
@@ -787,13 +859,13 @@ let
         sha512 = "aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==";
       };
     };
-    "@babel/plugin-syntax-numeric-separator-7.10.1" = {
+    "@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.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz";
-        sha512 = "uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg==";
+        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" = {
@@ -823,382 +895,382 @@ let
         sha512 = "KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==";
       };
     };
-    "@babel/plugin-syntax-top-level-await-7.10.1" = {
+    "@babel/plugin-syntax-top-level-await-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-top-level-await";
       packageName = "@babel/plugin-syntax-top-level-await";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz";
-        sha512 = "hgA5RYkmZm8FTFT3yu2N9Bx7yVVOKYT6yEdXXo6j2JTm0wNxgqaGeQVaSHRjhfnQbX91DtjFB6McRFSlcJH3xQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz";
+        sha512 = "ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==";
       };
     };
-    "@babel/plugin-syntax-typescript-7.10.1" = {
+    "@babel/plugin-syntax-typescript-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-typescript";
       packageName = "@babel/plugin-syntax-typescript";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.1.tgz";
-        sha512 = "X/d8glkrAtra7CaQGMiGs/OGa6XgUzqPcBXCIGFCpCqnfGlT0Wfbzo/B89xHhnInTaItPK8LALblVXcUOEh95Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz";
+        sha512 = "oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ==";
       };
     };
-    "@babel/plugin-transform-arrow-functions-7.10.1" = {
+    "@babel/plugin-transform-arrow-functions-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-arrow-functions";
       packageName = "@babel/plugin-transform-arrow-functions";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz";
-        sha512 = "6AZHgFJKP3DJX0eCNJj01RpytUa3SOGawIxweHkNX2L6PYikOZmoh5B0d7hIHaIgveMjX990IAa/xK7jRTN8OA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz";
+        sha512 = "9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==";
       };
     };
-    "@babel/plugin-transform-async-to-generator-7.10.1" = {
+    "@babel/plugin-transform-async-to-generator-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-async-to-generator";
       packageName = "@babel/plugin-transform-async-to-generator";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz";
-        sha512 = "XCgYjJ8TY2slj6SReBUyamJn3k2JLUIiiR5b6t1mNCMSvv7yx+jJpaewakikp0uWFQSF7ChPPoe3dHmXLpISkg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz";
+        sha512 = "F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==";
       };
     };
-    "@babel/plugin-transform-block-scoped-functions-7.10.1" = {
+    "@babel/plugin-transform-block-scoped-functions-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-block-scoped-functions";
       packageName = "@babel/plugin-transform-block-scoped-functions";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz";
-        sha512 = "B7K15Xp8lv0sOJrdVAoukKlxP9N59HS48V1J3U/JGj+Ad+MHq+am6xJVs85AgXrQn4LV8vaYFOB+pr/yIuzW8Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz";
+        sha512 = "WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==";
       };
     };
-    "@babel/plugin-transform-block-scoping-7.10.1" = {
+    "@babel/plugin-transform-block-scoping-7.11.1" = {
       name = "_at_babel_slash_plugin-transform-block-scoping";
       packageName = "@babel/plugin-transform-block-scoping";
-      version = "7.10.1";
+      version = "7.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz";
-        sha512 = "8bpWG6TtF5akdhIm/uWTyjHqENpy13Fx8chg7pFH875aNLwX8JxIxqm08gmAT+Whe6AOmaTeLPe7dpLbXt+xUw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz";
+        sha512 = "00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==";
       };
     };
-    "@babel/plugin-transform-classes-7.10.3" = {
+    "@babel/plugin-transform-classes-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-classes";
       packageName = "@babel/plugin-transform-classes";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.3.tgz";
-        sha512 = "irEX0ChJLaZVC7FvvRoSIxJlmk0IczFLcwaRXUArBKYHCHbOhe57aG8q3uw/fJsoSXvZhjRX960hyeAGlVBXZw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz";
+        sha512 = "2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==";
       };
     };
-    "@babel/plugin-transform-computed-properties-7.10.3" = {
+    "@babel/plugin-transform-computed-properties-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-computed-properties";
       packageName = "@babel/plugin-transform-computed-properties";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.3.tgz";
-        sha512 = "GWzhaBOsdbjVFav96drOz7FzrcEW6AP5nax0gLIpstiFaI3LOb2tAg06TimaWU6YKOfUACK3FVrxPJ4GSc5TgA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz";
+        sha512 = "JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==";
       };
     };
-    "@babel/plugin-transform-destructuring-7.10.1" = {
+    "@babel/plugin-transform-destructuring-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-destructuring";
       packageName = "@babel/plugin-transform-destructuring";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz";
-        sha512 = "V/nUc4yGWG71OhaTH705pU8ZSdM6c1KmmLP8ys59oOYbT7RpMYAR3MsVOt6OHL0WzG7BlTU076va9fjJyYzJMA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz";
+        sha512 = "+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==";
       };
     };
-    "@babel/plugin-transform-dotall-regex-7.10.1" = {
+    "@babel/plugin-transform-dotall-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-dotall-regex";
       packageName = "@babel/plugin-transform-dotall-regex";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz";
-        sha512 = "19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz";
+        sha512 = "ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==";
       };
     };
-    "@babel/plugin-transform-duplicate-keys-7.10.1" = {
+    "@babel/plugin-transform-duplicate-keys-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-duplicate-keys";
       packageName = "@babel/plugin-transform-duplicate-keys";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz";
-        sha512 = "wIEpkX4QvX8Mo9W6XF3EdGttrIPZWozHfEaDTU0WJD/TDnXMvdDh30mzUl/9qWhnf7naicYartcEfUghTCSNpA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz";
+        sha512 = "GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==";
       };
     };
-    "@babel/plugin-transform-exponentiation-operator-7.10.1" = {
+    "@babel/plugin-transform-exponentiation-operator-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-exponentiation-operator";
       packageName = "@babel/plugin-transform-exponentiation-operator";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz";
-        sha512 = "lr/przdAbpEA2BUzRvjXdEDLrArGRRPwbaF9rvayuHRvdQ7lUTTkZnhZrJ4LE2jvgMRFF4f0YuPQ20vhiPYxtA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz";
+        sha512 = "S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==";
       };
     };
-    "@babel/plugin-transform-flow-strip-types-7.10.1" = {
+    "@babel/plugin-transform-flow-strip-types-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-flow-strip-types";
       packageName = "@babel/plugin-transform-flow-strip-types";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.1.tgz";
-        sha512 = "i4o0YwiJBIsIx7/liVCZ3Q2WkWr1/Yu39PksBOnh/khW2SwIFsGa5Ze+MSon5KbDfrEHP9NeyefAgvUSXzaEkw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz";
+        sha512 = "XTadyuqNst88UWBTdLjM+wEY7BFnY2sYtPyAidfC7M/QaZnSuIZpMvLxqGT7phAcnGyWh/XQFLKcGf04CnvxSQ==";
       };
     };
-    "@babel/plugin-transform-for-of-7.10.1" = {
+    "@babel/plugin-transform-for-of-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-for-of";
       packageName = "@babel/plugin-transform-for-of";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz";
-        sha512 = "US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz";
+        sha512 = "ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==";
       };
     };
-    "@babel/plugin-transform-function-name-7.10.1" = {
+    "@babel/plugin-transform-function-name-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-function-name";
       packageName = "@babel/plugin-transform-function-name";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz";
-        sha512 = "//bsKsKFBJfGd65qSNNh1exBy5Y9gD9ZN+DvrJ8f7HXr4avE5POW6zB7Rj6VnqHV33+0vXWUwJT0wSHubiAQkw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz";
+        sha512 = "OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==";
       };
     };
-    "@babel/plugin-transform-literals-7.10.1" = {
+    "@babel/plugin-transform-literals-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-literals";
       packageName = "@babel/plugin-transform-literals";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz";
-        sha512 = "qi0+5qgevz1NHLZroObRm5A+8JJtibb7vdcPQF1KQE12+Y/xxl8coJ+TpPW9iRq+Mhw/NKLjm+5SHtAHCC7lAw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz";
+        sha512 = "Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==";
       };
     };
-    "@babel/plugin-transform-member-expression-literals-7.10.1" = {
+    "@babel/plugin-transform-member-expression-literals-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-member-expression-literals";
       packageName = "@babel/plugin-transform-member-expression-literals";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz";
-        sha512 = "UmaWhDokOFT2GcgU6MkHC11i0NQcL63iqeufXWfRy6pUOGYeCGEKhvfFO6Vz70UfYJYHwveg62GS83Rvpxn+NA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz";
+        sha512 = "0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==";
       };
     };
-    "@babel/plugin-transform-modules-amd-7.10.1" = {
+    "@babel/plugin-transform-modules-amd-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-modules-amd";
       packageName = "@babel/plugin-transform-modules-amd";
-      version = "7.10.1";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz";
-        sha512 = "31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz";
+        sha512 = "elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==";
       };
     };
-    "@babel/plugin-transform-modules-commonjs-7.10.1" = {
+    "@babel/plugin-transform-modules-commonjs-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-modules-commonjs";
       packageName = "@babel/plugin-transform-modules-commonjs";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz";
-        sha512 = "AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz";
+        sha512 = "Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==";
       };
     };
-    "@babel/plugin-transform-modules-systemjs-7.10.3" = {
+    "@babel/plugin-transform-modules-systemjs-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-modules-systemjs";
       packageName = "@babel/plugin-transform-modules-systemjs";
-      version = "7.10.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.3.tgz";
-        sha512 = "GWXWQMmE1GH4ALc7YXW56BTh/AlzvDWhUNn9ArFF0+Cz5G8esYlVbXfdyHa1xaD1j+GnBoCeoQNlwtZTVdiG/A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz";
+        sha512 = "f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==";
       };
     };
-    "@babel/plugin-transform-modules-umd-7.10.1" = {
+    "@babel/plugin-transform-modules-umd-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-modules-umd";
       packageName = "@babel/plugin-transform-modules-umd";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz";
-        sha512 = "EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz";
+        sha512 = "mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==";
       };
     };
-    "@babel/plugin-transform-named-capturing-groups-regex-7.10.3" = {
+    "@babel/plugin-transform-named-capturing-groups-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
       packageName = "@babel/plugin-transform-named-capturing-groups-regex";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.3.tgz";
-        sha512 = "I3EH+RMFyVi8Iy/LekQm948Z4Lz4yKT7rK+vuCAeRm0kTa6Z5W7xuhRxDNJv0FPya/her6AUgrDITb70YHtTvA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz";
+        sha512 = "V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==";
       };
     };
-    "@babel/plugin-transform-new-target-7.10.1" = {
+    "@babel/plugin-transform-new-target-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-new-target";
       packageName = "@babel/plugin-transform-new-target";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz";
-        sha512 = "MBlzPc1nJvbmO9rPr1fQwXOM2iGut+JC92ku6PbiJMMK7SnQc1rytgpopveE3Evn47gzvGYeCdgfCDbZo0ecUw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz";
+        sha512 = "YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==";
       };
     };
-    "@babel/plugin-transform-object-super-7.10.1" = {
+    "@babel/plugin-transform-object-super-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-object-super";
       packageName = "@babel/plugin-transform-object-super";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz";
-        sha512 = "WnnStUDN5GL+wGQrJylrnnVlFhFmeArINIR9gjhSeYyvroGhBrSAXYg/RHsnfzmsa+onJrTJrEClPzgNmmQ4Gw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz";
+        sha512 = "5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==";
       };
     };
-    "@babel/plugin-transform-parameters-7.10.1" = {
+    "@babel/plugin-transform-parameters-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-parameters";
       packageName = "@babel/plugin-transform-parameters";
-      version = "7.10.1";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz";
-        sha512 = "tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz";
+        sha512 = "xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==";
       };
     };
-    "@babel/plugin-transform-property-literals-7.10.1" = {
+    "@babel/plugin-transform-property-literals-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-property-literals";
       packageName = "@babel/plugin-transform-property-literals";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz";
-        sha512 = "Kr6+mgag8auNrgEpbfIWzdXYOvqDHZOF0+Bx2xh4H2EDNwcbRb9lY6nkZg8oSjsX+DH9Ebxm9hOqtKW+gRDeNA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz";
+        sha512 = "ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==";
       };
     };
-    "@babel/plugin-transform-react-jsx-7.10.3" = {
+    "@babel/plugin-transform-react-jsx-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-react-jsx";
       packageName = "@babel/plugin-transform-react-jsx";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.3.tgz";
-        sha512 = "Y21E3rZmWICRJnvbGVmDLDZ8HfNDIwjGF3DXYHx1le0v0mIHCs0Gv5SavyW5Z/jgAHLaAoJPiwt+Dr7/zZKcOQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz";
+        sha512 = "L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==";
       };
     };
-    "@babel/plugin-transform-regenerator-7.10.3" = {
+    "@babel/plugin-transform-regenerator-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-regenerator";
       packageName = "@babel/plugin-transform-regenerator";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.3.tgz";
-        sha512 = "H5kNeW0u8mbk0qa1jVIVTeJJL6/TJ81ltD4oyPx0P499DhMJrTmmIFCmJ3QloGpQG8K9symccB7S7SJpCKLwtw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz";
+        sha512 = "3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==";
       };
     };
-    "@babel/plugin-transform-reserved-words-7.10.1" = {
+    "@babel/plugin-transform-reserved-words-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-reserved-words";
       packageName = "@babel/plugin-transform-reserved-words";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz";
-        sha512 = "qN1OMoE2nuqSPmpTqEM7OvJ1FkMEV+BjVeZZm9V9mq/x1JLKQ4pcv8riZJMNN3u2AUGl0ouOMjRr2siecvHqUQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz";
+        sha512 = "hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==";
       };
     };
-    "@babel/plugin-transform-runtime-7.10.3" = {
+    "@babel/plugin-transform-runtime-7.11.5" = {
       name = "_at_babel_slash_plugin-transform-runtime";
       packageName = "@babel/plugin-transform-runtime";
-      version = "7.10.3";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.10.3.tgz";
-        sha512 = "b5OzMD1Hi8BBzgQdRHyVVaYrk9zG0wset1it2o3BgonkPadXfOv0aXRqd7864DeOIu3FGKP/h6lr15FE5mahVw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.5.tgz";
+        sha512 = "9aIoee+EhjySZ6vY5hnLjigHzunBlscx9ANKutkeWTJTx6m5Rbq6Ic01tLvO54lSusR+BxV7u4UDdCmXv5aagg==";
       };
     };
-    "@babel/plugin-transform-shorthand-properties-7.10.1" = {
+    "@babel/plugin-transform-shorthand-properties-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-shorthand-properties";
       packageName = "@babel/plugin-transform-shorthand-properties";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz";
-        sha512 = "AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz";
+        sha512 = "AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==";
       };
     };
-    "@babel/plugin-transform-spread-7.10.1" = {
+    "@babel/plugin-transform-spread-7.11.0" = {
       name = "_at_babel_slash_plugin-transform-spread";
       packageName = "@babel/plugin-transform-spread";
-      version = "7.10.1";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz";
-        sha512 = "8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz";
+        sha512 = "UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==";
       };
     };
-    "@babel/plugin-transform-sticky-regex-7.10.1" = {
+    "@babel/plugin-transform-sticky-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-sticky-regex";
       packageName = "@babel/plugin-transform-sticky-regex";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz";
-        sha512 = "j17ojftKjrL7ufX8ajKvwRilwqTok4q+BjkknmQw9VNHnItTyMP5anPFzxFJdCQs7clLcWpCV3ma+6qZWLnGMA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz";
+        sha512 = "Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==";
       };
     };
-    "@babel/plugin-transform-template-literals-7.10.3" = {
+    "@babel/plugin-transform-template-literals-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-template-literals";
       packageName = "@babel/plugin-transform-template-literals";
-      version = "7.10.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.3.tgz";
-        sha512 = "yaBn9OpxQra/bk0/CaA4wr41O0/Whkg6nqjqApcinxM7pro51ojhX6fv1pimAnVjVfDy14K0ULoRL70CA9jWWA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz";
+        sha512 = "V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==";
       };
     };
-    "@babel/plugin-transform-typeof-symbol-7.10.1" = {
+    "@babel/plugin-transform-typeof-symbol-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-typeof-symbol";
       packageName = "@babel/plugin-transform-typeof-symbol";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz";
-        sha512 = "qX8KZcmbvA23zDi+lk9s6hC1FM7jgLHYIjuLgULgc8QtYnmB3tAVIYkNoKRQ75qWBeyzcoMoK8ZQmogGtC/w0g==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz";
+        sha512 = "QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==";
       };
     };
-    "@babel/plugin-transform-typescript-7.10.3" = {
+    "@babel/plugin-transform-typescript-7.11.0" = {
       name = "_at_babel_slash_plugin-transform-typescript";
       packageName = "@babel/plugin-transform-typescript";
-      version = "7.10.3";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.10.3.tgz";
-        sha512 = "qU9Lu7oQyh3PGMQncNjQm8RWkzw6LqsWZQlZPQMgrGt6s3YiBIaQ+3CQV/FA/icGS5XlSWZGwo/l8ErTyelS0Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz";
+        sha512 = "edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w==";
       };
     };
-    "@babel/plugin-transform-unicode-escapes-7.10.1" = {
+    "@babel/plugin-transform-unicode-escapes-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-unicode-escapes";
       packageName = "@babel/plugin-transform-unicode-escapes";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.1.tgz";
-        sha512 = "zZ0Poh/yy1d4jeDWpx/mNwbKJVwUYJX73q+gyh4bwtG0/iUlzdEu0sLMda8yuDFS6LBQlT/ST1SJAR6zYwXWgw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz";
+        sha512 = "y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==";
       };
     };
-    "@babel/plugin-transform-unicode-regex-7.10.1" = {
+    "@babel/plugin-transform-unicode-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-unicode-regex";
       packageName = "@babel/plugin-transform-unicode-regex";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz";
-        sha512 = "Y/2a2W299k0VIUdbqYm9X2qS6fE0CUBhhiPpimK6byy7OJ/kORLlIX+J6UrjgNu5awvs62k+6RSslxhcvVw2Tw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz";
+        sha512 = "wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==";
       };
     };
-    "@babel/polyfill-7.7.0" = {
+    "@babel/polyfill-7.10.4" = {
       name = "_at_babel_slash_polyfill";
       packageName = "@babel/polyfill";
-      version = "7.7.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.7.0.tgz";
-        sha512 = "/TS23MVvo34dFmf8mwCisCbWGrfhbiWZSwBo6HkADTBhUa2Q/jWltyY/tpofz/b6/RIhqaqQcquptCirqIhOaQ==";
+        url = "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.10.4.tgz";
+        sha512 = "8BYcnVqQ5kMD2HXoHInBH7H1b/uP3KdnwCYXOqFnXqguOyuu443WXusbIUbWEfY3Z0Txk0M1uG/8YuAMhNl6zg==";
       };
     };
-    "@babel/preset-env-7.10.3" = {
+    "@babel/preset-env-7.11.5" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.10.3";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.3.tgz";
-        sha512 = "jHaSUgiewTmly88bJtMHbOd1bJf2ocYxb5BWKSDQIP5tmgFuS/n0gl+nhSrYDhT33m0vPxp+rP8oYYgPgMNQlg==";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.5.tgz";
+        sha512 = "kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA==";
       };
     };
-    "@babel/preset-flow-7.10.1" = {
+    "@babel/preset-flow-7.10.4" = {
       name = "_at_babel_slash_preset-flow";
       packageName = "@babel/preset-flow";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.10.1.tgz";
-        sha512 = "FuQsibb5PaX07fF1XUO5gjjxdEZbcJv8+ugPDaeFEsBIvUTib8hCtEJow/c2F0jq9ZUjpHCQ8IQKNHRvKE1kJQ==";
+        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.10.4.tgz";
+        sha512 = "XI6l1CptQCOBv+ZKYwynyswhtOKwpZZp5n0LG1QKCo8erRhqjoQV6nvx61Eg30JHpysWQSBwA2AWRU3pBbSY5g==";
       };
     };
-    "@babel/preset-modules-0.1.3" = {
+    "@babel/preset-modules-0.1.4" = {
       name = "_at_babel_slash_preset-modules";
       packageName = "@babel/preset-modules";
-      version = "0.1.3";
+      version = "0.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz";
-        sha512 = "Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==";
+        url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz";
+        sha512 = "J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==";
       };
     };
     "@babel/preset-stage-2-7.8.3" = {
@@ -1210,94 +1282,130 @@ let
         sha512 = "dStnEQgejNYIHFNACdDCigK4BF7wgW6Zahv9Dc2un7rGjbeVtZhBfR3sy0I7ZJOhBexkFxVdMZ5hqmll7BFShw==";
       };
     };
-    "@babel/preset-typescript-7.10.1" = {
+    "@babel/preset-typescript-7.10.4" = {
       name = "_at_babel_slash_preset-typescript";
       packageName = "@babel/preset-typescript";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.10.1.tgz";
-        sha512 = "m6GV3y1ShiqxnyQj10600ZVOFrSSAa8HQ3qIUk2r+gcGtHTIRw0dJnFLt1WNXpKjtVw7yw1DAPU/6ma2ZvgJuA==";
+        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.10.4.tgz";
+        sha512 = "SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ==";
       };
     };
-    "@babel/register-7.10.3" = {
+    "@babel/register-7.11.5" = {
       name = "_at_babel_slash_register";
       packageName = "@babel/register";
-      version = "7.10.3";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/register/-/register-7.10.3.tgz";
-        sha512 = "s1il0vdd02HCGwV1iocGJEzcbTNouZqMolSXKXFAiTNJSudPas9jdLQwyPPyAJxdNL6KGJ8pwWIOpKmgO/JWqg==";
+        url = "https://registry.npmjs.org/@babel/register/-/register-7.11.5.tgz";
+        sha512 = "CAml0ioKX+kOAvBQDHa/+t1fgOt3qkTIz0TrRtRAT6XY0m5qYZXR85k6/sLCNPMGhYDlCFHCYuU0ybTJbvlC6w==";
       };
     };
-    "@babel/runtime-7.10.2" = {
+    "@babel/runtime-7.10.5" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.10.2";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.2.tgz";
-        sha512 = "6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz";
+        sha512 = "otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==";
       };
     };
-    "@babel/runtime-7.10.3" = {
+    "@babel/runtime-7.11.2" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.10.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.3.tgz";
-        sha512 = "RzGO0RLSdokm9Ipe/YD+7ww8X2Ro79qiXZF3HU9ljrM+qnJmH1Vqth+hbiQZy761LnMJTMitHDuKVYTk3k4dLw==";
-      };
-    };
-    "@babel/runtime-7.7.7" = {
-      name = "_at_babel_slash_runtime";
-      packageName = "@babel/runtime";
-      version = "7.7.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.7.tgz";
-        sha512 = "uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA==";
-      };
-    };
-    "@babel/runtime-corejs3-7.10.3" = {
-      name = "_at_babel_slash_runtime-corejs3";
-      packageName = "@babel/runtime-corejs3";
-      version = "7.10.3";
+      version = "7.11.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.3.tgz";
-        sha512 = "HA7RPj5xvJxQl429r5Cxr2trJwOfPjKiqhCXcdQPSqO2G0RHPZpXu4fkYmBaTKCp2c/jRaMK9GB/lN+7zvvFPw==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz";
+        sha512 = "TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==";
       };
     };
-    "@babel/template-7.10.3" = {
+    "@babel/template-7.10.4" = {
       name = "_at_babel_slash_template";
       packageName = "@babel/template";
-      version = "7.10.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/template/-/template-7.10.3.tgz";
-        sha512 = "5BjI4gdtD+9fHZUsaxPHPNpwa+xRkDO7c7JbhYn2afvrkDu5SfAAbi9AIMXw2xEhO/BR35TqiW97IqNvCo/GqA==";
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz";
+        sha512 = "ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==";
       };
     };
-    "@babel/traverse-7.10.3" = {
+    "@babel/traverse-7.11.5" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.10.3";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.3.tgz";
-        sha512 = "qO6623eBFhuPm0TmmrUFMT1FulCmsSeJuVGhiLodk2raUDFhhTECLd9E9jC4LBIWziqt4wgF6KuXE4d+Jz9yug==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz";
+        sha512 = "EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==";
       };
     };
-    "@babel/types-7.10.2" = {
+    "@babel/types-7.10.4" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.10.2";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz";
-        sha512 = "AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz";
+        sha512 = "UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==";
       };
     };
-    "@babel/types-7.10.3" = {
+    "@babel/types-7.11.5" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.10.3";
+      version = "7.11.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz";
+        sha512 = "bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==";
+      };
+    };
+    "@bugsnag/browser-7.3.3" = {
+      name = "_at_bugsnag_slash_browser";
+      packageName = "@bugsnag/browser";
+      version = "7.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.10.3.tgz";
-        sha512 = "nZxaJhBXBQ8HVoIcGsf9qWep3Oh3jCENK54V4mRF7qaJabVsAYdbTtmSD8WmAp1R6ytPiu5apMwSXyxB1WlaBA==";
+        url = "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.3.3.tgz";
+        sha512 = "P3oQU/abDsDqSuuxVFDBp3XNIYeGLsbtGWwCM+iEg1ZGAUk/yP7NfRLqotMheZ0uC8a+4PSIS+U3+slZF7LCJw==";
+      };
+    };
+    "@bugsnag/core-7.3.3" = {
+      name = "_at_bugsnag_slash_core";
+      packageName = "@bugsnag/core";
+      version = "7.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@bugsnag/core/-/core-7.3.3.tgz";
+        sha512 = "DjAwzxQtyKgQxPGLmM+cZZZVkVsecUDowliguvcGojHHmdeIEDIBpu5LrZBQtLNk83SjM1RIyAEPdzaiHGWbzg==";
+      };
+    };
+    "@bugsnag/cuid-3.0.0" = {
+      name = "_at_bugsnag_slash_cuid";
+      packageName = "@bugsnag/cuid";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@bugsnag/cuid/-/cuid-3.0.0.tgz";
+        sha512 = "LOt8aaBI+KvOQGneBtpuCz3YqzyEAehd1f3nC5yr9TIYW1+IzYKa2xWS4EiMz5pPOnRPHkyyS5t/wmSmN51Gjg==";
+      };
+    };
+    "@bugsnag/js-7.3.3" = {
+      name = "_at_bugsnag_slash_js";
+      packageName = "@bugsnag/js";
+      version = "7.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@bugsnag/js/-/js-7.3.3.tgz";
+        sha512 = "4++QE1cebYVI87smjc9IsyIJWtNjL5WG4jp7htd+HEtT0QkhbokIbRH2b4MpN6+l4Y7GzyzMBNDOr1qDdBluBw==";
+      };
+    };
+    "@bugsnag/node-7.3.3" = {
+      name = "_at_bugsnag_slash_node";
+      packageName = "@bugsnag/node";
+      version = "7.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@bugsnag/node/-/node-7.3.3.tgz";
+        sha512 = "quyJXiqcMDVMdDqO0kW1277K3osdI/XgHKtY0K/4EcN2u4Qlg0crBNw5dQo+DCL4yllDQcWRfeuFv718QW4xlQ==";
+      };
+    };
+    "@bugsnag/safe-json-stringify-6.0.0" = {
+      name = "_at_bugsnag_slash_safe-json-stringify";
+      packageName = "@bugsnag/safe-json-stringify";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz";
+        sha512 = "htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==";
       };
     };
     "@chemzqm/neovim-5.1.9" = {
@@ -1345,13 +1453,13 @@ let
         sha512 = "sR9Go0U6puXoXyW9UgIiIQhRcJ8jVOvGl4BptUiXAtheMs72WcakZ1udh6J0ZOivr3o8jAM+MTCHLP8FZMbVpQ==";
       };
     };
-    "@cronvel/get-pixels-3.3.1" = {
+    "@cronvel/get-pixels-3.4.0" = {
       name = "_at_cronvel_slash_get-pixels";
       packageName = "@cronvel/get-pixels";
-      version = "3.3.1";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cronvel/get-pixels/-/get-pixels-3.3.1.tgz";
-        sha512 = "jgDb8vGPkpjRDbiYyHTI2Bna4HJysjPNSiERzBnRJjCR/YqC3u0idTae0tmNECsaZLOpAWmlK9wiIwnLGIT9Bg==";
+        url = "https://registry.npmjs.org/@cronvel/get-pixels/-/get-pixels-3.4.0.tgz";
+        sha512 = "do5jDoX9oCR/dGHE4POVQ3PYDCmQ2Fow4CA72UL4WoE8zUImA/0lChczjfl+ucNjE4sXFWUnzoO6j4WzrUvLnw==";
       };
     };
     "@cycle/dom-18.3.0" = {
@@ -1408,6 +1516,15 @@ let
         sha1 = "cbc4b9a68981bf0b501ccd06a9058acd65309bf7";
       };
     };
+    "@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==";
+      };
+    };
     "@emmetio/extract-abbreviation-0.1.6" = {
       name = "_at_emmetio_slash_extract-abbreviation";
       packageName = "@emmetio/extract-abbreviation";
@@ -1417,6 +1534,42 @@ let
         sha512 = "Ce3xE2JvTSEbASFbRbA1gAIcMcZWdS2yUYRaQbeM0nbOzaZrUYfa3ePtcriYRZOZmr+CkKA+zbjhvTpIOAYVcw==";
       };
     };
+    "@emotion/is-prop-valid-0.8.8" = {
+      name = "_at_emotion_slash_is-prop-valid";
+      packageName = "@emotion/is-prop-valid";
+      version = "0.8.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz";
+        sha512 = "u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==";
+      };
+    };
+    "@emotion/memoize-0.7.4" = {
+      name = "_at_emotion_slash_memoize";
+      packageName = "@emotion/memoize";
+      version = "0.7.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz";
+        sha512 = "Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==";
+      };
+    };
+    "@emotion/stylis-0.8.5" = {
+      name = "_at_emotion_slash_stylis";
+      packageName = "@emotion/stylis";
+      version = "0.8.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz";
+        sha512 = "h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==";
+      };
+    };
+    "@emotion/unitless-0.7.5" = {
+      name = "_at_emotion_slash_unitless";
+      packageName = "@emotion/unitless";
+      version = "0.7.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz";
+        sha512 = "OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==";
+      };
+    };
     "@endemolshinegroup/cosmiconfig-typescript-loader-1.0.2" = {
       name = "_at_endemolshinegroup_slash_cosmiconfig-typescript-loader";
       packageName = "@endemolshinegroup/cosmiconfig-typescript-loader";
@@ -1426,6 +1579,15 @@ let
         sha512 = "ZHkXKq2XFFmAUdmSZrmqUSIrRM4O9gtkdpxMmV+LQl7kScUnbo6pMnXu6+FTDgZ12aW6SDoZoOJfS56WD+Eu6A==";
       };
     };
+    "@eslint/eslintrc-0.1.3" = {
+      name = "_at_eslint_slash_eslintrc";
+      packageName = "@eslint/eslintrc";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.1.3.tgz";
+        sha512 = "4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==";
+      };
+    };
     "@evocateur/libnpmaccess-3.1.2" = {
       name = "_at_evocateur_slash_libnpmaccess";
       packageName = "@evocateur/libnpmaccess";
@@ -1462,6 +1624,78 @@ let
         sha512 = "EI552lf0aG2nOV8NnZpTxNo2PcXKPmDbF9K8eCBFQdIZwHNGN/mi815fxtmUMa2wTa1yndotICIDt/V0vpEx2w==";
       };
     };
+    "@exodus/schemasafe-1.0.0-rc.2" = {
+      name = "_at_exodus_slash_schemasafe";
+      packageName = "@exodus/schemasafe";
+      version = "1.0.0-rc.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.0.0-rc.2.tgz";
+        sha512 = "W98NvvOe/Med3o66xTO03pd7a2omZebH79PV64gSE+ceDdU8uxQhFTa7ISiD1kseyqyOrMyW5/MNdsGEU02i3Q==";
+      };
+    };
+    "@fluentui/date-time-utilities-7.7.0" = {
+      name = "_at_fluentui_slash_date-time-utilities";
+      packageName = "@fluentui/date-time-utilities";
+      version = "7.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-7.7.0.tgz";
+        sha512 = "rgtGX5x1AeYUfilfkgP6ag+ZKx41BJcUs16k6iSxXxd/mt00DAPOGY8ODGikKFpjGKcUwjKfYBssyKkVHDucfA==";
+      };
+    };
+    "@fluentui/keyboard-key-0.2.11" = {
+      name = "_at_fluentui_slash_keyboard-key";
+      packageName = "@fluentui/keyboard-key";
+      version = "0.2.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.2.11.tgz";
+        sha512 = "4iG5vNlRD3PrLaMfDTimHNOP1x6V3Dad0fXOwtvBBMsfdySPE9zlY+G+0aqCFcgjymOriFOk0ANZVBpK7XrnTg==";
+      };
+    };
+    "@fluentui/react-7.134.1" = {
+      name = "_at_fluentui_slash_react";
+      packageName = "@fluentui/react";
+      version = "7.134.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.134.1.tgz";
+        sha512 = "UMnf1pfTwuphU3lJAfwVsWZULu7MoJmxg/vJyirOvXa/+lQqGQr/SfXthqlkE0DPRMRr2qqtc9iNCfZxi7dfCg==";
+      };
+    };
+    "@fluentui/react-focus-7.15.0" = {
+      name = "_at_fluentui_slash_react-focus";
+      packageName = "@fluentui/react-focus";
+      version = "7.15.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-7.15.0.tgz";
+        sha512 = "xbxB0cbyEoUfQZ19pAqBeWCYJ/4IOu1FG4bhVjDimqSD7qKwJbLlJSDNwmHr05SWprdhmqJe23KOwsHMgyvnrw==";
+      };
+    };
+    "@fluentui/react-icons-0.3.0" = {
+      name = "_at_fluentui_slash_react-icons";
+      packageName = "@fluentui/react-icons";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/react-icons/-/react-icons-0.3.0.tgz";
+        sha512 = "QDrIhLUpkxM5q5bFE4pkweJJsfaNswdfDoc+X6cmr22Dii+anDFTpOcePEJiTtILxdlEmH0968OcZ4BGZF/joQ==";
+      };
+    };
+    "@fluentui/react-window-provider-0.3.0" = {
+      name = "_at_fluentui_slash_react-window-provider";
+      packageName = "@fluentui/react-window-provider";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-0.3.0.tgz";
+        sha512 = "zHeH1PAmoFB3OkgU8f51E3oGHrL/CjuvdPBlb1SGpByUGNihAgH/CwvJohV9z0yPDkq+chfNUmxWA/oDVpbh6Q==";
+      };
+    };
+    "@fluentui/theme-0.2.0" = {
+      name = "_at_fluentui_slash_theme";
+      packageName = "@fluentui/theme";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/theme/-/theme-0.2.0.tgz";
+        sha512 = "L5OwqymTdxTVwBa3ifkQLF1A3YU6WMkMTk6PFIMfOonjt8LJ3yMMqZgz+KQR3sF/tzgy4wzW4oBmrxtTfJS2EQ==";
+      };
+    };
     "@graphql-cli/common-4.0.0" = {
       name = "_at_graphql-cli_slash_common";
       packageName = "@graphql-cli/common";
@@ -1480,112 +1714,94 @@ let
         sha512 = "oJZb4PScX25ZGObpw9n7/bJBE7R0oF6hJ4ABe+WvMqSCI3kxaReMTgJJNIrxpmbXscxWM8U1ndLefP5IjPcU7Q==";
       };
     };
-    "@graphql-toolkit/common-0.10.7" = {
-      name = "_at_graphql-toolkit_slash_common";
-      packageName = "@graphql-toolkit/common";
-      version = "0.10.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-toolkit/common/-/common-0.10.7.tgz";
-        sha512 = "epcJvmIAo+vSEY76F0Dj1Ef6oeewT5pdMe1obHj7LHXN9V22O86aQzwdEEm1iG91qROqSw/apcDnSCMjuVeQVA==";
-      };
-    };
-    "@graphql-toolkit/core-0.10.7" = {
-      name = "_at_graphql-toolkit_slash_core";
-      packageName = "@graphql-toolkit/core";
-      version = "0.10.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-toolkit/core/-/core-0.10.7.tgz";
-        sha512 = "LXcFLG7XcRJrPz/xD+0cExzLx/ptVynDM20650/FbmHbKOU50d9mSbcsrzAOq/3f4q3HrRDssvn0f6pPm0EHMg==";
-      };
-    };
-    "@graphql-toolkit/graphql-file-loader-0.10.7" = {
-      name = "_at_graphql-toolkit_slash_graphql-file-loader";
-      packageName = "@graphql-toolkit/graphql-file-loader";
-      version = "0.10.7";
+    "@graphql-tools/delegate-6.2.0" = {
+      name = "_at_graphql-tools_slash_delegate";
+      packageName = "@graphql-tools/delegate";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-toolkit/graphql-file-loader/-/graphql-file-loader-0.10.7.tgz";
-        sha512 = "6tUIuw/YBlm0VyVgXgMrOXsEQ+WpXVgr2NQwHNzmZo82kPGqImveq7A2D3gBWLyVTcinDScRcKJMxM4kCF5T0A==";
+        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-6.2.0.tgz";
+        sha512 = "jYwg6MuErovAHXhyReTSgRTzdvPB60VEO02KGZskaD5WPqCQy6oqYBetXOp1yG6PBwJvxCTpMKuZvyPVLRM9ww==";
       };
     };
-    "@graphql-toolkit/json-file-loader-0.10.7" = {
-      name = "_at_graphql-toolkit_slash_json-file-loader";
-      packageName = "@graphql-toolkit/json-file-loader";
-      version = "0.10.7";
+    "@graphql-tools/graphql-file-loader-6.2.0" = {
+      name = "_at_graphql-tools_slash_graphql-file-loader";
+      packageName = "@graphql-tools/graphql-file-loader";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-toolkit/json-file-loader/-/json-file-loader-0.10.7.tgz";
-        sha512 = "nVISrODqvn5LiQ4nKL5pz1Let/W1tuj2viEwrNyTS+9mcjaCE2nhV5MOK/7ZY0cR+XeA4N2u65EH1lQd63U3Cw==";
+        url = "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.2.0.tgz";
+        sha512 = "anl/fc2KTLF2Eu5Fd9fRYy+N22QBZskP2uKAqyiaJFPiIAOXWAUjK/WJ4uWAAjkGhEnseK0M8hUudgW36w8Smg==";
       };
     };
-    "@graphql-toolkit/schema-merging-0.10.7" = {
-      name = "_at_graphql-toolkit_slash_schema-merging";
-      packageName = "@graphql-toolkit/schema-merging";
-      version = "0.10.7";
+    "@graphql-tools/import-6.2.0" = {
+      name = "_at_graphql-tools_slash_import";
+      packageName = "@graphql-tools/import";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-toolkit/schema-merging/-/schema-merging-0.10.7.tgz";
-        sha512 = "VngxJbVdRfXYhdMLhL90pqN+hD/2XTZwhHPGvpWqmGQhT6roc98yN3xyDyrWFYYsuiY4gTexdmrHQ3d7mzitwA==";
+        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-6.2.0.tgz";
+        sha512 = "fYLyzAW3RKKfyPO+0nEA86yUP2V2uctdsZVZEamJ9MtjW+UhZf9kbR+NBuX/FbFAQR+F7UMe5GSPjUTKC13CEg==";
       };
     };
-    "@graphql-toolkit/url-loader-0.10.7" = {
-      name = "_at_graphql-toolkit_slash_url-loader";
-      packageName = "@graphql-toolkit/url-loader";
-      version = "0.10.7";
+    "@graphql-tools/json-file-loader-6.2.0" = {
+      name = "_at_graphql-tools_slash_json-file-loader";
+      packageName = "@graphql-tools/json-file-loader";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-toolkit/url-loader/-/url-loader-0.10.7.tgz";
-        sha512 = "Ec3T4Zuo63LwG+RfK2ryz8ChPfncBf8fiSJ1xr68FtLDVznDNulvlNKFbfREE5koWejwsnJrjLCv6IX5IbhExg==";
+        url = "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-6.2.0.tgz";
+        sha512 = "kpvYLGuxcq3V9cr996YOCAkw7F/4pC1JY1KxvI3360G0mYVVZcA8Q/XcxcwPwPZrBHDJMHhXvTRZD+svQ49Rxw==";
       };
     };
-    "@graphql-tools/load-6.0.11" = {
+    "@graphql-tools/load-6.2.0" = {
       name = "_at_graphql-tools_slash_load";
       packageName = "@graphql-tools/load";
-      version = "6.0.11";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-6.0.11.tgz";
-        sha512 = "1e7B+dtubEwu9aGZiakOneXnS5y7dyx9ewceZ1MNE7osS6QU8XnDUVm2qtNGHhoyeJJbn66qsRSjwCort2pSeQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-6.2.0.tgz";
+        sha512 = "ZsxPXMpLOjNh88Q2XtDmMTP65tQfknZjCgWm9vq+FxlUh//7Z8q6WiChogIEJ9g8G0+XKmLEcA+Vi4L45QX9GA==";
       };
     };
-    "@graphql-tools/merge-6.0.11" = {
+    "@graphql-tools/merge-6.2.0" = {
       name = "_at_graphql-tools_slash_merge";
       packageName = "@graphql-tools/merge";
-      version = "6.0.11";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.0.11.tgz";
-        sha512 = "jNXl5pOdjfTRm+JKMpD47hsafM44Ojt7oi25Cflydw9VaWlQ5twFUSXk2rydP0mx1Twdxozk9ZCj4qiTdzw9ag==";
+        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.0.tgz";
+        sha512 = "q2bnFhdw6ssBzIlTkyUGPzBThLHgwuTVCRvjjCepegQCKGzwDypve0n+EMBUnoaOcJ3JRgQHR3eStP2x/S0AYw==";
       };
     };
-    "@graphql-tools/schema-6.0.11" = {
+    "@graphql-tools/schema-6.2.0" = {
       name = "_at_graphql-tools_slash_schema";
       packageName = "@graphql-tools/schema";
-      version = "6.0.11";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-6.0.11.tgz";
-        sha512 = "Zl9LTwOnkMaNtgs1+LJEYtklywtn602kRbxkRFeA7nFGaDmFPFHZnfQqcLsfhaPA8S0jNCQnbucHERCz8pRUYA==";
+        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-6.2.0.tgz";
+        sha512 = "wlAIgN6pMgRaruiJqlZLIe+FM834ZYif/P7evCbG71sm7Ou8t0n+dkpf8+qZAa7D+PWO9G96BF1l2NPUlM+KvA==";
       };
     };
-    "@graphql-tools/utils-6.0.11" = {
-      name = "_at_graphql-tools_slash_utils";
-      packageName = "@graphql-tools/utils";
-      version = "6.0.11";
+    "@graphql-tools/url-loader-6.2.0" = {
+      name = "_at_graphql-tools_slash_url-loader";
+      packageName = "@graphql-tools/url-loader";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.0.11.tgz";
-        sha512 = "BK6HO73FbB/Ufac6XX5H0O2q4tEZi//HaQ7DgmHFoda53GZSZ/ZckJ59wh/tUvHykEaSFUSmMBVQxKbXBhGhyg==";
+        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.2.0.tgz";
+        sha512 = "bPktwMT42tvsPIlJYQ4bwjnQKhOSwCsV/R81T0tsoh+UbKR2/QxccSQCoNJAUIxP6hXfR+Sc1wMXUw7m8/akrg==";
       };
     };
-    "@gulp-sourcemaps/identity-map-1.0.2" = {
-      name = "_at_gulp-sourcemaps_slash_identity-map";
-      packageName = "@gulp-sourcemaps/identity-map";
-      version = "1.0.2";
+    "@graphql-tools/utils-6.2.0" = {
+      name = "_at_graphql-tools_slash_utils";
+      packageName = "@graphql-tools/utils";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz";
-        sha512 = "ciiioYMLdo16ShmfHBXJBOFm3xPC4AuwO4xeRpFeHz7WK9PYsWCmigagG2XyzZpubK4a3qNKoUBDhbzHfa50LQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.2.0.tgz";
+        sha512 = "Z5ONje6tGNvBzGwo/8eIafr98mwuvWpi3IwPp8CKHKjTBAKlUxY8hlwSn+bEMPyuA9uH/7nHWz4lamRQQEHAhg==";
       };
     };
-    "@gulp-sourcemaps/map-sources-1.0.0" = {
-      name = "_at_gulp-sourcemaps_slash_map-sources";
-      packageName = "@gulp-sourcemaps/map-sources";
-      version = "1.0.0";
+    "@graphql-tools/wrap-6.2.0" = {
+      name = "_at_graphql-tools_slash_wrap";
+      packageName = "@graphql-tools/wrap";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz";
-        sha1 = "890ae7c5d8c877f6d384860215ace9d7ec945bda";
+        url = "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-6.2.0.tgz";
+        sha512 = "I7EAvY6x6cBB92j+IrZLE3meYUdmHNK8r/TvHXJ8SmgMJGlt4z8bjOr7WmYdMPufyVdHBSGwECqjWcxOhSxLsA==";
       };
     };
     "@hapi/address-2.1.4" = {
@@ -1768,6 +1984,15 @@ let
         sha512 = "Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==";
       };
     };
+    "@jest/types-24.9.0" = {
+      name = "_at_jest_slash_types";
+      packageName = "@jest/types";
+      version = "24.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz";
+        sha512 = "XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==";
+      };
+    };
     "@jest/types-25.5.0" = {
       name = "_at_jest_slash_types";
       packageName = "@jest/types";
@@ -1777,6 +2002,15 @@ let
         sha512 = "OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==";
       };
     };
+    "@josh-brown/vector-3.4.0" = {
+      name = "_at_josh-brown_slash_vector";
+      packageName = "@josh-brown/vector";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@josh-brown/vector/-/vector-3.4.0.tgz";
+        sha512 = "E2FcWwiAMXwr4MUv+SkxmtKsgwgaEaCNK7IlyCfQ1Rz1QzeaV36SooA8/GNkLh0WnlIda59WmDDSL7S1S73lUg==";
+      };
+    };
     "@kwsites/exec-p-0.4.0" = {
       name = "_at_kwsites_slash_exec-p";
       packageName = "@kwsites/exec-p";
@@ -2317,6 +2551,15 @@ let
         sha512 = "RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A==";
       };
     };
+    "@microsoft/load-themed-styles-1.10.82" = {
+      name = "_at_microsoft_slash_load-themed-styles";
+      packageName = "@microsoft/load-themed-styles";
+      version = "1.10.82";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.82.tgz";
+        sha512 = "p92TRErd5xpYkSy7TjNDs+0LmxDBSusmLSgnWCv7xZf9DGXZCW08ZiUVlbsaj3e49kGskOaWQvarMDejm2b+FQ==";
+      };
+    };
     "@mrmlnc/readdir-enhanced-2.2.1" = {
       name = "_at_mrmlnc_slash_readdir-enhanced";
       packageName = "@mrmlnc/readdir-enhanced";
@@ -2335,67 +2578,157 @@ let
         sha512 = "Vwhc3ObxmDZmA5hY8mfsau2rJ4vGPvzbj20QSZ2/E1GDPF61QVyjLfNHak9xmel6pW4heRt3v1fHa6np9Ehfeg==";
       };
     };
-    "@nestjs/schematics-7.0.1" = {
+    "@nestjs/schematics-7.1.1" = {
       name = "_at_nestjs_slash_schematics";
       packageName = "@nestjs/schematics";
-      version = "7.0.1";
+      version = "7.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nestjs/schematics/-/schematics-7.1.1.tgz";
+        sha512 = "W7FW8GwIwh3bI1BCmr3jF15zEPPd7noHlOWZ9PlSOJMydGynKA3UG1SFohCkeik447N0ZvLEGHJFLRg7SUXfmg==";
+      };
+    };
+    "@netflix/nerror-1.1.3" = {
+      name = "_at_netflix_slash_nerror";
+      packageName = "@netflix/nerror";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netflix/nerror/-/nerror-1.1.3.tgz";
+        sha512 = "b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==";
+      };
+    };
+    "@netlify/build-3.3.5" = {
+      name = "_at_netlify_slash_build";
+      packageName = "@netlify/build";
+      version = "3.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/build/-/build-3.3.5.tgz";
+        sha512 = "QhPsiexwv2pKJTCvxiOKYaR5LmQS1H9hlF+8PzZBqk/rUUQAt9y6L6gQQJ1hnXEdsFIQGUqBG0aPolKgWQ3H7A==";
+      };
+    };
+    "@netlify/cache-utils-1.0.2" = {
+      name = "_at_netlify_slash_cache-utils";
+      packageName = "@netlify/cache-utils";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nestjs/schematics/-/schematics-7.0.1.tgz";
-        sha512 = "MOnJPqKPpuwBHDdw96gHoshd/QEYrUlLPF92xQFXm6uIOo1EGISg8OOSoji2isEtp2gHpO+bL8p/h4oPG10Fqw==";
+        url = "https://registry.npmjs.org/@netlify/cache-utils/-/cache-utils-1.0.2.tgz";
+        sha512 = "5eB8PpX4UaJsgVWwV+TSuGyzi/rysCqTSZzVVJVDSVr0sQa574N6LmLWuYl0WJluSTWeYtUUlATLeP838FaZfQ==";
       };
     };
-    "@node-red/editor-api-1.0.6" = {
+    "@netlify/config-0.11.11" = {
+      name = "_at_netlify_slash_config";
+      packageName = "@netlify/config";
+      version = "0.11.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/config/-/config-0.11.11.tgz";
+        sha512 = "Z7yzbx5qCX2I5RLlNyo0MMQ6GKJc8o5Nej9yspCavjqgYlUS7VJfbeE67WNxC26FXwDUqq00zJ0MrCS0Un1YOw==";
+      };
+    };
+    "@netlify/config-2.1.3" = {
+      name = "_at_netlify_slash_config";
+      packageName = "@netlify/config";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/config/-/config-2.1.3.tgz";
+        sha512 = "rasNRIFI/U6j293k46capM+b9yc+NT/wfnqtSjd+WGsXuj6O4iMXuN5gpNteKg5RYGFP4mAkP4BjM+//OBFtvg==";
+      };
+    };
+    "@netlify/functions-utils-1.2.8" = {
+      name = "_at_netlify_slash_functions-utils";
+      packageName = "@netlify/functions-utils";
+      version = "1.2.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.2.8.tgz";
+        sha512 = "Pi0IJ4REgr7AWu6dbOjlTMHB3v5s5ZXQboyCrgf9eYe7lVZRKtNrMjYtk3XMGAyL0MFmJFGeO8vIbp5ToQppsQ==";
+      };
+    };
+    "@netlify/git-utils-1.0.1" = {
+      name = "_at_netlify_slash_git-utils";
+      packageName = "@netlify/git-utils";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/git-utils/-/git-utils-1.0.1.tgz";
+        sha512 = "HiKpGyEHOW5ajkU/sQ8mSRIZvznC8GK1AAZWIeBmVRwZIzTykgmZM+HVjPUhfeFH+RK5bWQB4vg7dod2UttI8A==";
+      };
+    };
+    "@netlify/open-api-0.16.0" = {
+      name = "_at_netlify_slash_open-api";
+      packageName = "@netlify/open-api";
+      version = "0.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/open-api/-/open-api-0.16.0.tgz";
+        sha512 = "o3QI9hAe6lspQysWrB8CygMO4h+7B4qtPDkacitZ4VPBR26rX2TASq0/x1TNa4TnFG2lNgzkuBWhtXAmd/9tdw==";
+      };
+    };
+    "@netlify/run-utils-1.0.0" = {
+      name = "_at_netlify_slash_run-utils";
+      packageName = "@netlify/run-utils";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/run-utils/-/run-utils-1.0.0.tgz";
+        sha512 = "TcdVJZ3J4iu+WYV9sLMBOr1jW2+XgLtIt1LfGYqsH+yqfkWoWavV27y5ttznM1BODFYQb9fMJG/xO2wAeXCzMw==";
+      };
+    };
+    "@netlify/zip-it-and-ship-it-1.3.12" = {
+      name = "_at_netlify_slash_zip-it-and-ship-it";
+      packageName = "@netlify/zip-it-and-ship-it";
+      version = "1.3.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-1.3.12.tgz";
+        sha512 = "FQM/59HXMAKp9k4z6rXDA/FBKFSUaU3n5SFpF2/jScmpCmHBpF+pYIWZmVB4fY17cvq3KIcuSfzf9PqD1B73XQ==";
+      };
+    };
+    "@node-red/editor-api-1.1.3" = {
       name = "_at_node-red_slash_editor-api";
       packageName = "@node-red/editor-api";
-      version = "1.0.6";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-1.0.6.tgz";
-        sha512 = "9LieY6LSDtvj43IbpmCs9MmSGdPjOEmtsi+T13dXxxmil4ngedvJ7uMP1d96eKLW/b6Viuk7kx2olSGtUqgqLg==";
+        url = "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-1.1.3.tgz";
+        sha512 = "NejrCeQSPwvIaxxEiwOnU25Ylnu4ZEtumIIy2mWLd0IojE6HXDBGhAqfxtksIyg6TnrqKsID/JxK0mLgTs/npQ==";
       };
     };
-    "@node-red/editor-client-1.0.6" = {
+    "@node-red/editor-client-1.1.3" = {
       name = "_at_node-red_slash_editor-client";
       packageName = "@node-red/editor-client";
-      version = "1.0.6";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-1.0.6.tgz";
-        sha512 = "V8zsj+wKY6RzOX92ePdgJtJdmOT9Whfz6CTN34/H2pZlzFA/+KE/sippkInRrx+ujTp4uI2ycAGJ7i1Qkt8ztw==";
+        url = "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-1.1.3.tgz";
+        sha512 = "oMVij+p/+RyRVOBSfvv2nt4pmurOOGH+KQglWVN3jiWs2D4mUXgsBfg/mbHn4wtvEBYtKFOQacXL7N22WES02g==";
       };
     };
-    "@node-red/nodes-1.0.6" = {
+    "@node-red/nodes-1.1.3" = {
       name = "_at_node-red_slash_nodes";
       packageName = "@node-red/nodes";
-      version = "1.0.6";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/nodes/-/nodes-1.0.6.tgz";
-        sha512 = "4+wTiwhJlhLL6HV3YBLOGHSIcfygf4YxP/fJDkG+vy09pRyux/NqZ06NiqhYs+d+Ndf13LIc20KTEzN3pLW2Rw==";
+        url = "https://registry.npmjs.org/@node-red/nodes/-/nodes-1.1.3.tgz";
+        sha512 = "XAMSiQrBPqpG7/XZqquZ5V1F/ibaDr/e96BrforFfkVGdzeb/5I+/MI2bSl3s/pJiuj4CuKSkQ7gWKbNwa4mvQ==";
       };
     };
-    "@node-red/registry-1.0.6" = {
+    "@node-red/registry-1.1.3" = {
       name = "_at_node-red_slash_registry";
       packageName = "@node-red/registry";
-      version = "1.0.6";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/registry/-/registry-1.0.6.tgz";
-        sha512 = "jDNfcNyphjpywHmXfNuZhM593ox9qHMYmL6ZQQiyERwiJwSkGp2zzNicNBe10ysk5ENr36xdP46BryWu/j9xIA==";
+        url = "https://registry.npmjs.org/@node-red/registry/-/registry-1.1.3.tgz";
+        sha512 = "ULvrgC7fpClTHluiQcc4EptaYRPEoKdqfozSxL6XJW5x1BRNU9Iv7+5txhKoumcy7a54bavol32VA7/JRyewjg==";
       };
     };
-    "@node-red/runtime-1.0.6" = {
+    "@node-red/runtime-1.1.3" = {
       name = "_at_node-red_slash_runtime";
       packageName = "@node-red/runtime";
-      version = "1.0.6";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/runtime/-/runtime-1.0.6.tgz";
-        sha512 = "6eat9FZlIcydm0+VoUjlbxf9TyyLu0zTCWWANqGhu5Ab8o366WSOAxyIzJ5QL56FLQ+V6040YWmurBl+bGRGjg==";
+        url = "https://registry.npmjs.org/@node-red/runtime/-/runtime-1.1.3.tgz";
+        sha512 = "tJWPDPCFmp2sB+YZaLtPHOuuwNXQdQ15tizz1vL9i0S+0VVXE8SX2WhBzbsBxSitpNxQ6zTfq8bK28Zh75HCVg==";
       };
     };
-    "@node-red/util-1.0.6" = {
+    "@node-red/util-1.1.3" = {
       name = "_at_node-red_slash_util";
       packageName = "@node-red/util";
-      version = "1.0.6";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/util/-/util-1.0.6.tgz";
-        sha512 = "uncyHShA6strCJr1puqrpxsKcb7We2bmo/8xHk91pAQw4dr3jm4S+v/m9tYqVqtXkkW2cfJ6n3bRHJHbOZNW0Q==";
+        url = "https://registry.npmjs.org/@node-red/util/-/util-1.1.3.tgz";
+        sha512 = "Wa/L2bFRK9dR8K1zGlhp3Z9tqZgHsKaSK329YQGRIvAApbH5G//58V1oJdj3+9Gg8xza5YXx4Cw9hHs2m1du6A==";
       };
     };
     "@nodelib/fs.scandir-2.1.3" = {
@@ -2434,22 +2767,22 @@ let
         sha512 = "1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==";
       };
     };
-    "@npmcli/ci-detect-1.2.0" = {
+    "@npmcli/ci-detect-1.3.0" = {
       name = "_at_npmcli_slash_ci-detect";
       packageName = "@npmcli/ci-detect";
-      version = "1.2.0";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.2.0.tgz";
-        sha512 = "JtktVH7ASBVIWsQTFlFpeOzhBJskvoBCTfeeRhhZy7ybATcUvwiwotZ8j5rkqUUyB69lIy/AvboiiiGBjYBKBA==";
+        url = "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz";
+        sha512 = "oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==";
       };
     };
-    "@npmcli/git-2.0.2" = {
+    "@npmcli/git-2.0.4" = {
       name = "_at_npmcli_slash_git";
       packageName = "@npmcli/git";
-      version = "2.0.2";
+      version = "2.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/git/-/git-2.0.2.tgz";
-        sha512 = "uv9+EuP5YWluNPgkEOL+iyB/+MVt4U5PMBCfl+I8korKluFdiSp7RxjXYzpWM/wU4wXaROAUFiOiCMmBftonjw==";
+        url = "https://registry.npmjs.org/@npmcli/git/-/git-2.0.4.tgz";
+        sha512 = "OJZCmJ9DNn1cz9HPXXsPmUBnqaArot3CGYo63CyajHQk+g87rPXVOJByGsskQJhPsUUEXJcsZ2Q6bWd2jSwnBA==";
       };
     };
     "@npmcli/installed-package-contents-1.0.5" = {
@@ -2479,22 +2812,13 @@ let
         sha512 = "nFtqjVETliApiRdjbYwKwhlSHx2ZMagyj5b9YbNt0BWeeOVxJd47ZVE2u16vxDHyTOZvk+YLV7INwfAE9a2uow==";
       };
     };
-    "@npmcli/run-script-1.3.1" = {
+    "@npmcli/run-script-1.5.0" = {
       name = "_at_npmcli_slash_run-script";
       packageName = "@npmcli/run-script";
-      version = "1.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.3.1.tgz";
-        sha512 = "9Ea57XJjNLtBFRAaiKqqdoqRrL2QkM0vvCbMjPecljhog5IHupStPtZULbl0CoGN00N3lhLWJ4PaIEC0MGjqJw==";
-      };
-    };
-    "@oclif/color-0.0.0" = {
-      name = "_at_oclif_slash_color";
-      packageName = "@oclif/color";
-      version = "0.0.0";
+      version = "1.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/color/-/color-0.0.0.tgz";
-        sha512 = "KKd3W7eNwfNF061tr663oUNdt8EMnfuyf5Xv55SGWA1a0rjhWqS/32P7OeB7CbXcJUBdfVrPyR//1afaW12AWw==";
+        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.5.0.tgz";
+        sha512 = "z7AzLmsMtVntMRJt35M5VAjb/jH6yH37Q8Ku011JVR7rEoy+p2a6/NkwqChCRZORlJaS9rwjXmZKM6UmwXLkqA==";
       };
     };
     "@oclif/color-0.1.2" = {
@@ -2506,31 +2830,31 @@ let
         sha512 = "M9o+DOrb8l603qvgz1FogJBUGLqcMFL1aFg2ZEL0FbXJofiNTLOWIeB4faeZTLwE6dt0xH9GpCVpzksMMzGbmA==";
       };
     };
-    "@oclif/command-1.6.1" = {
+    "@oclif/command-1.8.0" = {
       name = "_at_oclif_slash_command";
       packageName = "@oclif/command";
-      version = "1.6.1";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/command/-/command-1.6.1.tgz";
-        sha512 = "pvmMmfGn+zm4e4RwVw63mg9sIaqKqmVsFbImQoUrCO/43UmWzoSHWNXKdgEGigOezWrkZfFucaeZcSbp149OWg==";
+        url = "https://registry.npmjs.org/@oclif/command/-/command-1.8.0.tgz";
+        sha512 = "5vwpq6kbvwkQwKqAoOU3L72GZ3Ta8RRrewKj9OJRolx28KLJJ8Dg9Rf7obRwt5jQA9bkYd8gqzMTrI7H3xLfaw==";
       };
     };
-    "@oclif/config-1.15.1" = {
+    "@oclif/config-1.17.0" = {
       name = "_at_oclif_slash_config";
       packageName = "@oclif/config";
-      version = "1.15.1";
+      version = "1.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/config/-/config-1.15.1.tgz";
-        sha512 = "GdyHpEZuWlfU8GSaZoiywtfVBsPcfYn1KuSLT1JTfvZGpPG6vShcGr24YZ3HG2jXUFlIuAqDcYlTzOrqOdTPNQ==";
+        url = "https://registry.npmjs.org/@oclif/config/-/config-1.17.0.tgz";
+        sha512 = "Lmfuf6ubjQ4ifC/9bz1fSCHc6F6E653oyaRXxg+lgT4+bYf9bk+nqrUpAbrXyABkCqgIBiFr3J4zR/kiFdE1PA==";
       };
     };
-    "@oclif/errors-1.2.2" = {
+    "@oclif/errors-1.3.3" = {
       name = "_at_oclif_slash_errors";
       packageName = "@oclif/errors";
-      version = "1.2.2";
+      version = "1.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/errors/-/errors-1.2.2.tgz";
-        sha512 = "Eq8BFuJUQcbAPVofDxwdE0bL14inIiwt5EaKRVY9ZDIG11jwdXZqiQEECJx0VfnLyUZdYfRd/znDI/MytdJoKg==";
+        url = "https://registry.npmjs.org/@oclif/errors/-/errors-1.3.3.tgz";
+        sha512 = "EJR6AIOEkt/NnARNIVAskPDVtdhtO5TTNXmhDrGqMoWVsr0R6DkkLrMyq95BmHvlVWM1nduoq4fQPuCyuF2jaA==";
       };
     };
     "@oclif/linewrap-1.0.0" = {
@@ -2569,13 +2893,13 @@ let
         sha512 = "bGHUdo5e7DjPJ0vTeRBMIrfqTRDBfyR5w0MP41u0n3r7YG5p14lvMmiCXxi6WDaP2Hw5nqx3PnkAIntCKZZN7g==";
       };
     };
-    "@oclif/plugin-help-3.1.0" = {
+    "@oclif/plugin-help-3.2.0" = {
       name = "_at_oclif_slash_plugin-help";
       packageName = "@oclif/plugin-help";
-      version = "3.1.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.1.0.tgz";
-        sha512 = "orSWpXGlJaX16eSjAtI8scA8QhrjQOaCSHodEx52t18JKbIVzG8jcngugyWAOB/V4jhPl0rdiVk9XFsaIIiG2g==";
+        url = "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.2.0.tgz";
+        sha512 = "7jxtpwVWAVbp1r46ZnTK/uF+FeZc6y4p1XcGaIUuPAp7wx6NJhIRN/iMT9UfNFX/Cz7mq+OyJz+E+i0zrik86g==";
       };
     };
     "@oclif/plugin-not-found-1.2.4" = {
@@ -2587,13 +2911,13 @@ let
         sha512 = "G440PCuMi/OT8b71aWkR+kCWikngGtyRjOR24sPMDbpUFV4+B3r51fz1fcqeUiiEOYqUpr0Uy/sneUe1O/NfBg==";
       };
     };
-    "@oclif/plugin-plugins-1.7.9" = {
+    "@oclif/plugin-plugins-1.9.0" = {
       name = "_at_oclif_slash_plugin-plugins";
       packageName = "@oclif/plugin-plugins";
-      version = "1.7.9";
+      version = "1.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-1.7.9.tgz";
-        sha512 = "o7qfmiUGl+NUyA2lM18/Ch5sasGGYPIINR3cZ/AjwtdQ3ooINnF00pUDcUOtbjW97gRmk6/j79tcyTo8i7rHZg==";
+        url = "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-1.9.0.tgz";
+        sha512 = "sq31nJk/n5pH5qGDioj2Z9x6MlRUrc/kkQrfCYKRPbQM80qewSP4RcPK3/gDvDSOAWD3wLAK9oMbDQO9lqImMA==";
       };
     };
     "@oclif/plugin-warn-if-update-available-1.7.0" = {
@@ -2623,13 +2947,13 @@ let
         sha512 = "jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ==";
       };
     };
-    "@octokit/endpoint-6.0.3" = {
+    "@octokit/endpoint-6.0.5" = {
       name = "_at_octokit_slash_endpoint";
       packageName = "@octokit/endpoint";
-      version = "6.0.3";
+      version = "6.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.3.tgz";
-        sha512 = "Y900+r0gIz+cWp6ytnkibbD95ucEzDSKzlEnaWS52hbCDNcCJYO5mRmWW7HRAnDc7am+N/5Lnd8MppSaTYx1Yg==";
+        url = "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.5.tgz";
+        sha512 = "70K5u6zd45ItOny6aHQAsea8HHQjlQq85yqOMe+Aj8dkhN2qSJ9T+Q3YjUjEYfPRBcuUWNgMn62DQnP/4LAIiQ==";
       };
     };
     "@octokit/plugin-enterprise-rest-6.0.1" = {
@@ -2668,13 +2992,13 @@ let
         sha512 = "EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==";
       };
     };
-    "@octokit/request-5.4.5" = {
+    "@octokit/request-5.4.7" = {
       name = "_at_octokit_slash_request";
       packageName = "@octokit/request";
-      version = "5.4.5";
+      version = "5.4.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/request/-/request-5.4.5.tgz";
-        sha512 = "atAs5GAGbZedvJXXdjtKljin+e2SltEs48B3naJjqWupYl2IUBbB/CJisyjbNHcKpHzb3E+OYEZ46G8eakXgQg==";
+        url = "https://registry.npmjs.org/@octokit/request/-/request-5.4.7.tgz";
+        sha512 = "FN22xUDP0i0uF38YMbOfx6TotpcENP5W8yJM1e/LieGXn6IoRxDMnBf7tx5RKSW4xuUZ/1P04NFZy5iY3Rax1A==";
       };
     };
     "@octokit/request-error-1.2.1" = {
@@ -2713,13 +3037,13 @@ let
         sha512 = "O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==";
       };
     };
-    "@octokit/types-5.0.1" = {
+    "@octokit/types-5.4.1" = {
       name = "_at_octokit_slash_types";
       packageName = "@octokit/types";
-      version = "5.0.1";
+      version = "5.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/types/-/types-5.0.1.tgz";
-        sha512 = "GorvORVwp244fGKEt3cgt/P+M0MGy4xEDbckw+K5ojEezxyMDgCaYPKVct+/eWQfZXOT7uq0xRpmrl/+hliabA==";
+        url = "https://registry.npmjs.org/@octokit/types/-/types-5.4.1.tgz";
+        sha512 = "OlMlSySBJoJ6uozkr/i03nO5dlYQyE05vmQNZhAh9MyO4DPBP88QlwsDVLmVjIMFssvIZB6WO0ctIGMRG+xsJQ==";
       };
     };
     "@parcel/fs-1.11.0" = {
@@ -2767,13 +3091,22 @@ let
         sha512 = "USSjRAAQYsZFlv43FUPdD+jEGML5/8oLF0rUzPQTtK4q9kvaXr49F5ZplyLz5lox78cLZ0TxN2bIDQ1xhOkulQ==";
       };
     };
-    "@primer/octicons-9.6.0" = {
+    "@prettier/plugin-pug-1.5.1" = {
+      name = "_at_prettier_slash_plugin-pug";
+      packageName = "@prettier/plugin-pug";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@prettier/plugin-pug/-/plugin-pug-1.5.1.tgz";
+        sha512 = "LUuXiILPURVCF8u4gnE6SWQZ/+1kVnRatXK6SmQyk+ed8F4uDyNCGuIu3/W7jYQB+k7kD6eQZqINuPWvbPTzYQ==";
+      };
+    };
+    "@primer/octicons-10.1.0" = {
       name = "_at_primer_slash_octicons";
       packageName = "@primer/octicons";
-      version = "9.6.0";
+      version = "10.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@primer/octicons/-/octicons-9.6.0.tgz";
-        sha512 = "B5Wzk5izRXXz0JqEXJkVUtqhCXSpUKgqYkVwegMkp5sziBW+ksd9LPbONlCWyyLODwf9GsI2sBXekR7m+JJDBw==";
+        url = "https://registry.npmjs.org/@primer/octicons/-/octicons-10.1.0.tgz";
+        sha512 = "oXfV0uIe7I4cb3vUzBPlPZGL5SQ3+joyyRcmk28aJiGFySl8brzL0MJC63RahiNEnIFrL3D5BRVgz5ZGGuHCOg==";
       };
     };
     "@protobufjs/aspromise-1.1.2" = {
@@ -2866,22 +3199,22 @@ let
         sha1 = "a777360b5b39a1a2e5106f8e858f2fd2d060c570";
       };
     };
-    "@rollup/plugin-commonjs-12.0.0" = {
+    "@rollup/plugin-commonjs-13.0.2" = {
       name = "_at_rollup_slash_plugin-commonjs";
       packageName = "@rollup/plugin-commonjs";
-      version = "12.0.0";
+      version = "13.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-12.0.0.tgz";
-        sha512 = "8+mDQt1QUmN+4Y9D3yCG8AJNewuTSLYPJVzKKUZ+lGeQrI+bV12Tc5HCyt2WdlnG6ihIL/DPbKRJlB40DX40mw==";
+        url = "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-13.0.2.tgz";
+        sha512 = "9JXf2k8xqvMYfqmhgtB6eCgMN9fbxwF1XDF3mGKJc6pkAmt0jnsqurxQ0tC1akQKNSXCm7c3unQxa3zuxtZ7mQ==";
       };
     };
-    "@rollup/plugin-node-resolve-8.1.0" = {
+    "@rollup/plugin-node-resolve-8.4.0" = {
       name = "_at_rollup_slash_plugin-node-resolve";
       packageName = "@rollup/plugin-node-resolve";
-      version = "8.1.0";
+      version = "8.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.1.0.tgz";
-        sha512 = "ovq7ZM3JJYUUmEjjO+H8tnUdmQmdQudJB7xruX8LFZ1W2q8jXdPUS6SsIYip8ByOApu4RR7729Am9WhCeCMiHA==";
+        url = "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz";
+        sha512 = "LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ==";
       };
     };
     "@rollup/pluginutils-3.1.0" = {
@@ -2902,49 +3235,49 @@ let
         sha512 = "YXJqp9gdHcZKAmBY/WnwFpPtNQp2huD/ME2YMurH2YHJvxrVzYsmpKw/pb7yINArRpp8E++fwbQd3ajYXGA45Q==";
       };
     };
-    "@samverschueren/stream-to-observable-0.3.0" = {
+    "@samverschueren/stream-to-observable-0.3.1" = {
       name = "_at_samverschueren_slash_stream-to-observable";
       packageName = "@samverschueren/stream-to-observable";
-      version = "0.3.0";
+      version = "0.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz";
-        sha512 = "MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==";
+        url = "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz";
+        sha512 = "c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==";
       };
     };
-    "@schematics/angular-10.0.0" = {
+    "@schematics/angular-10.1.0" = {
       name = "_at_schematics_slash_angular";
       packageName = "@schematics/angular";
-      version = "10.0.0";
+      version = "10.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/angular/-/angular-10.0.0.tgz";
-        sha512 = "m7Pxz4guAMbe7NASKCPUNxvUX/LeieDjGsXwIt09tVE4dEi9yqJP5zq8kOnZEiLKKflP7GoB65RNex4dTxsydw==";
+        url = "https://registry.npmjs.org/@schematics/angular/-/angular-10.1.0.tgz";
+        sha512 = "kQ925yMmOwiSITY+FhuTvrl3HuEIEUrdByBNB0NlvY+DyJwPlngEOo6Iu0cYWaJcoxM1JscOWL59ZR6W7YCFIg==";
       };
     };
-    "@schematics/schematics-0.901.9" = {
+    "@schematics/schematics-0.1000.7" = {
       name = "_at_schematics_slash_schematics";
       packageName = "@schematics/schematics";
-      version = "0.901.9";
+      version = "0.1000.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/schematics/-/schematics-0.901.9.tgz";
-        sha512 = "Nca8Ig/mFFnhLmosbdWysX4N2HiwVOzA4gQj2TZnMCJ98Cftdebs388LstjsJwGtJyvAa2v4yoaPaUMIGVgQ9w==";
+        url = "https://registry.npmjs.org/@schematics/schematics/-/schematics-0.1000.7.tgz";
+        sha512 = "mucBf5EkhME9O0TvxPeiUTEuudRvEOSjhF/YFHEp/9NZB1JH9lXtBQ60IN6xtCLEbxJmAzhZSns9QPPrHaZRrw==";
       };
     };
-    "@schematics/update-0.1000.0" = {
+    "@schematics/update-0.1001.0" = {
       name = "_at_schematics_slash_update";
       packageName = "@schematics/update";
-      version = "0.1000.0";
+      version = "0.1001.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/update/-/update-0.1000.0.tgz";
-        sha512 = "snjz7sQCOn4Xi66XQREXZx9K6R/vAnUfdyO5nXekls8+E+MIowlP+gqHM0whi8qJDwCLd9maYmeVsD6XZaGImQ==";
+        url = "https://registry.npmjs.org/@schematics/update/-/update-0.1001.0.tgz";
+        sha512 = "LRGwo37akHe/BUl5FHj74mJ/xhM0Z7W8pWMWJ6zGihs+HNXjTgfYVgGA1TgN0amqQODa3AxxLL6aLj+hVYZi+g==";
       };
     };
-    "@serverless/cli-1.5.1" = {
+    "@serverless/cli-1.5.2" = {
       name = "_at_serverless_slash_cli";
       packageName = "@serverless/cli";
-      version = "1.5.1";
+      version = "1.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/cli/-/cli-1.5.1.tgz";
-        sha512 = "YUVPGutE8VEbIPCb6aHfePec5kKA1iaiMyLb8snXWYDLy/EWW1Dkff/DiLgeNEy6jqV4n+9lng92re+tMi+U6g==";
+        url = "https://registry.npmjs.org/@serverless/cli/-/cli-1.5.2.tgz";
+        sha512 = "FMACx0qPD6Uj8U+7jDmAxEe1tdF9DsuY5VsG45nvZ3olC9xYJe/PMwxWsjXfK3tg1HUNywYAGCsy7p5fdXhNzw==";
       };
     };
     "@serverless/component-metrics-1.0.8" = {
@@ -2956,13 +3289,13 @@ let
         sha512 = "lOUyRopNTKJYVEU9T6stp2irwlTDsYMmUKBOUjnMcwGveuUfIJqrCOtFLtIPPj3XJlbZy5F68l4KP9rZ8Ipang==";
       };
     };
-    "@serverless/components-2.31.4" = {
+    "@serverless/components-2.34.9" = {
       name = "_at_serverless_slash_components";
       packageName = "@serverless/components";
-      version = "2.31.4";
+      version = "2.34.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/components/-/components-2.31.4.tgz";
-        sha512 = "aXdEK6dF3AuLmwNwTepmPW0o41QIPUmEG3P4ZNj0x0wixJuREhGZarwHlWsqgqjakZ2oRXraQ2RhuVmRijky3g==";
+        url = "https://registry.npmjs.org/@serverless/components/-/components-2.34.9.tgz";
+        sha512 = "qFjIeGgR4SjS32Tbl4BvoxOtLpv3Vx4s/81HdmmpdIrMPe7ePGUfkBVBu3axxAXHf4ajlb4WC1HmhTmZAHHSLQ==";
       };
     };
     "@serverless/core-1.1.2" = {
@@ -2974,13 +3307,13 @@ let
         sha512 = "PY7gH+7aQ+MltcUD7SRDuQODJ9Sav9HhFJsgOiyf8IVo7XVD6FxZIsSnpMI6paSkptOB7n+0Jz03gNlEkKetQQ==";
       };
     };
-    "@serverless/enterprise-plugin-3.6.13" = {
+    "@serverless/enterprise-plugin-3.8.2" = {
       name = "_at_serverless_slash_enterprise-plugin";
       packageName = "@serverless/enterprise-plugin";
-      version = "3.6.13";
+      version = "3.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/enterprise-plugin/-/enterprise-plugin-3.6.13.tgz";
-        sha512 = "L7DOqo7LviAbYIySV5n+sURwyI5rf6IfVKRzFF3CK/EtbHUBJn7gEdHNo86Xmsm4I251ZggGSsorQvSIzT2VUQ==";
+        url = "https://registry.npmjs.org/@serverless/enterprise-plugin/-/enterprise-plugin-3.8.2.tgz";
+        sha512 = "tJqvVBHOQk110UXEO/RVeZIUh/tyBlxalaNnGRiTsbT2kRsq0s/OfznfMufANmlKaKPcoOXxHEW8oaAV4N1XyA==";
       };
     };
     "@serverless/event-mocks-1.1.1" = {
@@ -3001,31 +3334,22 @@ let
         sha512 = "2c5A6HSWwXluknPNJ2s+Z4WfBwP7Kn6kgsEKD+5xlXpDpBFsRku/xJyO9eqRCwxTM41stgHNC6TRsZ03+wH/rw==";
       };
     };
-    "@serverless/platform-client-0.25.14" = {
+    "@serverless/platform-client-1.1.8" = {
       name = "_at_serverless_slash_platform-client";
       packageName = "@serverless/platform-client";
-      version = "0.25.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-client/-/platform-client-0.25.14.tgz";
-        sha512 = "ww5GBt5QEHYppLH8X+gEFiuMoFu9xdXK0bEROYbuxUliiB0IfXTXLzWR5whhi/S94R7pTnJ4O+WUiFj0PcV/tQ==";
-      };
-    };
-    "@serverless/platform-client-1.0.3" = {
-      name = "_at_serverless_slash_platform-client";
-      packageName = "@serverless/platform-client";
-      version = "1.0.3";
+      version = "1.1.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-client/-/platform-client-1.0.3.tgz";
-        sha512 = "c+KJQLmzGqEK52S98cTZsltvyoNVYMxtYF40KVBWCWTEK9hPO7bNIV79WdB90pBKYTh0sIlHmSlf2dUuOiOxlw==";
+        url = "https://registry.npmjs.org/@serverless/platform-client/-/platform-client-1.1.8.tgz";
+        sha512 = "DmU71Lh0ALOMumGD7k2HfO6WwaFpJCA4ech1S9Kd8AQvpKZrT8fyUl9Ymc/E6GJLRC4s3a5wzcsLbu5AiDNyHA==";
       };
     };
-    "@serverless/platform-client-china-1.0.20" = {
+    "@serverless/platform-client-china-1.0.37" = {
       name = "_at_serverless_slash_platform-client-china";
       packageName = "@serverless/platform-client-china";
-      version = "1.0.20";
+      version = "1.0.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-client-china/-/platform-client-china-1.0.20.tgz";
-        sha512 = "KJisy1IKzE4CG86WFzhN5b0tHv6FI9/K9BxvqLZktIeGRf8tr4CqPbU+UE/DnCpDADuBBrFAXbbIv1RZonwhsQ==";
+        url = "https://registry.npmjs.org/@serverless/platform-client-china/-/platform-client-china-1.0.37.tgz";
+        sha512 = "eN2UBK51Z9RkRY5Im0j2wCl3XuHBKiuY3kpQIxtGs52yuQx8PA0I/HBsYwyRgoTpvATK3MM/SsyeKpvNs90+uw==";
       };
     };
     "@serverless/platform-sdk-2.3.1" = {
@@ -3055,13 +3379,13 @@ let
         sha512 = "aI/cpGVUhWbJUR8QDMtPue28EU4ViG/L4/XKuZDfAN2uNQv3NRjwEFIBi/cxyfQnMTYVtMLe9wDjuwzOT4ENzA==";
       };
     };
-    "@serverless/utils-china-0.1.17" = {
+    "@serverless/utils-china-0.1.27" = {
       name = "_at_serverless_slash_utils-china";
       packageName = "@serverless/utils-china";
-      version = "0.1.17";
+      version = "0.1.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/utils-china/-/utils-china-0.1.17.tgz";
-        sha512 = "GhveUbvj32whixPOztLhHJdLZUP5L3Ni+giOyM2vOl00Dnf1oklau2QCiDxvSWj5+ZlBGxyDMRJUXAfO1F6SPA==";
+        url = "https://registry.npmjs.org/@serverless/utils-china/-/utils-china-0.1.27.tgz";
+        sha512 = "ZQDTtmFBD2xl23YFFMVOTmqsgqtcxk9WKBGdixZ3ZY2MxAjrNJvBE0vPCRsYrQCs0I+TzdPDRIPSrOUJh7cpiw==";
       };
     };
     "@sindresorhus/is-0.14.0" = {
@@ -3091,6 +3415,33 @@ let
         sha512 = "/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==";
       };
     };
+    "@sindresorhus/is-3.1.2" = {
+      name = "_at_sindresorhus_slash_is";
+      packageName = "@sindresorhus/is";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz";
+        sha512 = "JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==";
+      };
+    };
+    "@sindresorhus/slugify-1.1.0" = {
+      name = "_at_sindresorhus_slash_slugify";
+      packageName = "@sindresorhus/slugify";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.0.tgz";
+        sha512 = "ujZRbmmizX26yS/HnB3P9QNlNa4+UvHh+rIse3RbOXLp8yl6n1TxB4t7NHggtVgS8QmmOtzXo48kCxZGACpkPw==";
+      };
+    };
+    "@sindresorhus/transliterate-0.1.1" = {
+      name = "_at_sindresorhus_slash_transliterate";
+      packageName = "@sindresorhus/transliterate";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.1.tgz";
+        sha512 = "QSdIQ5keUFAZ3KLbfbsntW39ox0Ym8183RqTwBq/ZEFoN3NQAtGV+qWaNdzKpIDHgj9J2CQ2iNDRVU11Zyr7MQ==";
+      };
+    };
     "@slack/client-3.16.0" = {
       name = "_at_slack_slash_client";
       packageName = "@slack/client";
@@ -3100,49 +3451,49 @@ let
         sha512 = "CWr7a3rTVrN5Vs8GYReRAvTourbXHOqB1zglcskj05ICH4GZL5BOAza2ARai+qc3Nz0nY08Bozi1x0014KOqlg==";
       };
     };
-    "@snyk/cli-interface-1.5.0" = {
+    "@snyk/cli-interface-2.3.2" = {
       name = "_at_snyk_slash_cli-interface";
       packageName = "@snyk/cli-interface";
-      version = "1.5.0";
+      version = "2.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-1.5.0.tgz";
-        sha512 = "+Qo+IO3YOXWgazlo+CKxOuWFLQQdaNCJ9cSfhFQd687/FuesaIxWdInaAdfpsLScq0c6M1ieZslXgiZELSzxbg==";
+        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.3.2.tgz";
+        sha512 = "jmZyxVHqzYU1GfdnWCGdd68WY/lAzpPVyqalHazPj4tFJehrSfEFc82RMTYAMgXEJuvFRFIwhsvXh3sWUhIQmg==";
       };
     };
-    "@snyk/cli-interface-2.3.2" = {
+    "@snyk/cli-interface-2.6.1" = {
       name = "_at_snyk_slash_cli-interface";
       packageName = "@snyk/cli-interface";
-      version = "2.3.2";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.3.2.tgz";
-        sha512 = "jmZyxVHqzYU1GfdnWCGdd68WY/lAzpPVyqalHazPj4tFJehrSfEFc82RMTYAMgXEJuvFRFIwhsvXh3sWUhIQmg==";
+        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.6.1.tgz";
+        sha512 = "3X+OwwwT9j0r2ObqxYIiAgdaHsTW71b92PN3wawGAxl4YgPRrRVw8Fouhe41I4WJsn7OlKUNedylZguvpYg9qw==";
       };
     };
-    "@snyk/cli-interface-2.5.0" = {
+    "@snyk/cli-interface-2.8.1" = {
       name = "_at_snyk_slash_cli-interface";
       packageName = "@snyk/cli-interface";
-      version = "2.5.0";
+      version = "2.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.5.0.tgz";
-        sha512 = "XMc2SCFH4RBSncZgoPb+BBlNq0NYpEpCzptKi69qyMpBy0VsRqIQqddedaazMCU1xEpXTytq6KMYpzUafZzp5Q==";
+        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.8.1.tgz";
+        sha512 = "pALcfgoY0hAavy/pBlDIqEu+FFC5m+D4bMnCwlQ26mObL/zzxp2+Ohx+HykCIom62u2J94SzAtRLFdm/2TgoOw==";
       };
     };
-    "@snyk/cli-interface-2.8.0" = {
+    "@snyk/cli-interface-2.9.0" = {
       name = "_at_snyk_slash_cli-interface";
       packageName = "@snyk/cli-interface";
-      version = "2.8.0";
+      version = "2.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.8.0.tgz";
-        sha512 = "St/G39iJG1zQK15L24kcVYM2gmFc/ylBCcBqU2DMZKJKwOPccKLUO6s+dWIUXMccQ+DFS6TuHPvuAKQNi9C4Yg==";
+        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.9.0.tgz";
+        sha512 = "KDVHsU71apUPHK1PiIUXVW7stGZilbwKIoi0ffz1Qa0Er03fm3aV602scnOinbTtVy5UTm3L4WmdCdQrRoBYOQ==";
       };
     };
-    "@snyk/cocoapods-lockfile-parser-3.4.0" = {
+    "@snyk/cocoapods-lockfile-parser-3.5.1" = {
       name = "_at_snyk_slash_cocoapods-lockfile-parser";
       packageName = "@snyk/cocoapods-lockfile-parser";
-      version = "3.4.0";
+      version = "3.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cocoapods-lockfile-parser/-/cocoapods-lockfile-parser-3.4.0.tgz";
-        sha512 = "mAWgKIHFv0QEGpRvocVMxLAdJx7BmXtVOyQN/VtsGBoGFKqhO0jbtKUUVJC4b0jyKfVmEF2puo94i+1Uqz5q6A==";
+        url = "https://registry.npmjs.org/@snyk/cocoapods-lockfile-parser/-/cocoapods-lockfile-parser-3.5.1.tgz";
+        sha512 = "0bzajH/HdP3k5cOZKUmT/xqmHZFuWN124c/lrqh+U6Q1Z9Bt7TLOB2ifLKL+1I4rq+IgOesGWJYG1KhxBy3RLw==";
       };
     };
     "@snyk/composer-lockfile-parser-1.4.0" = {
@@ -3154,31 +3505,31 @@ let
         sha512 = "ga4YTRjJUuP0Ufr+t1IucwVjEFAv66JSBB/zVHP2zy/jmfA3l3ZjlGQSjsRC6Me9P2Z0esQ83AYNZvmIf9pq2w==";
       };
     };
-    "@snyk/dep-graph-1.18.3" = {
+    "@snyk/dep-graph-1.19.0" = {
       name = "_at_snyk_slash_dep-graph";
       packageName = "@snyk/dep-graph";
-      version = "1.18.3";
+      version = "1.19.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.18.3.tgz";
-        sha512 = "7qWRTIJdZuc5VzDjdV2+03AHElyAZmhq7eV9BRu+jqrYjo9ohWBGEZgYslrTdvfqfJ8rkdrG3j0/0Aa25IxJcg==";
+        url = "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.19.0.tgz";
+        sha512 = "/0phOICMk4hkX2KtZgi+4KNd5G9oYDIlxQDQk+ui2xl4gonPvK6Q5MFzHP7Xet1YY/XoU33ox41i+IO48qZ+zQ==";
       };
     };
-    "@snyk/dep-graph-1.18.4" = {
+    "@snyk/dep-graph-1.19.3" = {
       name = "_at_snyk_slash_dep-graph";
       packageName = "@snyk/dep-graph";
-      version = "1.18.4";
+      version = "1.19.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.18.4.tgz";
-        sha512 = "SePWsDyD7qrLxFifIieEl4GqyOODfOnP0hmUweTG5YcMroAV5nARGAUcjxREGzbXMcUpPfZhAaqFjYgzUDH8dQ==";
+        url = "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.19.3.tgz";
+        sha512 = "WJLUFKBokoFK5imi0t8Dkyj+uqtS/5Ziuf4oE/OOFX30UqP1ffMDkv9/3sqBJQVQ9FjdgsX3Cm8JZMtMlYRc6w==";
       };
     };
-    "@snyk/dep-graph-1.19.0" = {
-      name = "_at_snyk_slash_dep-graph";
-      packageName = "@snyk/dep-graph";
-      version = "1.19.0";
+    "@snyk/docker-registry-v2-client-1.13.5" = {
+      name = "_at_snyk_slash_docker-registry-v2-client";
+      packageName = "@snyk/docker-registry-v2-client";
+      version = "1.13.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.19.0.tgz";
-        sha512 = "/0phOICMk4hkX2KtZgi+4KNd5G9oYDIlxQDQk+ui2xl4gonPvK6Q5MFzHP7Xet1YY/XoU33ox41i+IO48qZ+zQ==";
+        url = "https://registry.npmjs.org/@snyk/docker-registry-v2-client/-/docker-registry-v2-client-1.13.5.tgz";
+        sha512 = "lgJiC071abCpFVLp47OnykU8MMrhdQe386Wt6QaDmjI0s2DQn/S58NfdLrPU7s6l4zoGT7UwRW9+7paozRgFTA==";
       };
     };
     "@snyk/gemfile-1.2.0" = {
@@ -3199,6 +3550,15 @@ let
         sha512 = "uFO/pNMm3pN15QB+hVMU7uaQXhsBNwEA8lOET/VDcdOzLptODhXzkJqSHqt0tZlpdAz6/6Uaj8jY00UvPFgFMA==";
       };
     };
+    "@snyk/graphlib-2.1.9-patch.2" = {
+      name = "_at_snyk_slash_graphlib";
+      packageName = "@snyk/graphlib";
+      version = "2.1.9-patch.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/graphlib/-/graphlib-2.1.9-patch.2.tgz";
+        sha512 = "BjJzOXDNzoEMBOjSks7vadu5f0c39SeorJMi9vUvvWM5dcE22CZqcN9VMRW5DYTifUJiCWszkm5TOyfYfB0bfg==";
+      };
+    };
     "@snyk/inquirer-6.2.2-patch" = {
       name = "_at_snyk_slash_inquirer";
       packageName = "@snyk/inquirer";
@@ -3208,13 +3568,13 @@ let
         sha512 = "IUq5bHRL0vtVKtfvd4GOccAIaLYHbcertug2UVZzk5+yY6R/CxfYsnFUTho1h4BdkfNdin2tPjE/5jRF4SKSrw==";
       };
     };
-    "@snyk/java-call-graph-builder-1.10.0" = {
+    "@snyk/java-call-graph-builder-1.13.1" = {
       name = "_at_snyk_slash_java-call-graph-builder";
       packageName = "@snyk/java-call-graph-builder";
-      version = "1.10.0";
+      version = "1.13.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.10.0.tgz";
-        sha512 = "x3vKElHJRsPjlMBRACeD6kHtki54ffahYeAm4ny5epVpxm16/OT6f6AjNjPuX8DbxcauaD7wqirtc62OPH3YqA==";
+        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.13.1.tgz";
+        sha512 = "oOCSIyOMplV73a1agcXKXlFYQftK5esUUaFRTf90GOxQwKy8R9tZtKdP+CdutlgvjRP286DQ+7GlvKYsGGZbWg==";
       };
     };
     "@snyk/lodash-4.17.15-patch" = {
@@ -3244,22 +3604,40 @@ let
         sha512 = "FqUayoVjcyCsQFYPm3DcaCKdFR4xmapUkCGY+bcNBs3jqCUw687PoP9CPQ1Jvtaw5YpfBNl/62jyntsWCeciuA==";
       };
     };
-    "@snyk/snyk-cocoapods-plugin-2.3.0" = {
+    "@snyk/ruby-semver-3.0.0" = {
+      name = "_at_snyk_slash_ruby-semver";
+      packageName = "@snyk/ruby-semver";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/ruby-semver/-/ruby-semver-3.0.0.tgz";
+        sha512 = "GoSRcwNuJ/mK3Q+tqelRJlylPh8K3RZRWh3ZpkOKm1gQPdG+z0wt+LipSIHxGR8yBDl5bQjwTrPLkL49/N1V6Q==";
+      };
+    };
+    "@snyk/snyk-cocoapods-plugin-2.5.0" = {
       name = "_at_snyk_slash_snyk-cocoapods-plugin";
       packageName = "@snyk/snyk-cocoapods-plugin";
-      version = "2.3.0";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/snyk-cocoapods-plugin/-/snyk-cocoapods-plugin-2.5.0.tgz";
+        sha512 = "arK4VHzNh/D9vCFQFeAiSP+rMRXwLbzaRoIKucodf8Q/3KftIo/byeDmoc2Cc7awR1HPo5E391bwBNH5ra8UqA==";
+      };
+    };
+    "@snyk/snyk-docker-pull-3.2.0" = {
+      name = "_at_snyk_slash_snyk-docker-pull";
+      packageName = "@snyk/snyk-docker-pull";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/snyk-cocoapods-plugin/-/snyk-cocoapods-plugin-2.3.0.tgz";
-        sha512 = "4V1xJMqsK6J3jHu9UufKySorzA8O1vNLRIK1JgJf5KcXQCP44SJI5dk9Xr9iFGXXtGo8iI9gmokQcHlGpkPSJg==";
+        url = "https://registry.npmjs.org/@snyk/snyk-docker-pull/-/snyk-docker-pull-3.2.0.tgz";
+        sha512 = "uWKtjh29I/d0mfmfBN7w6RwwNBQxQVKrauF5ND/gqb0PVsKV22GIpkI+viWjI7KNKso6/B0tMmsv7TX2tsNcLQ==";
       };
     };
-    "@sorg/log-2.1.0" = {
+    "@sorg/log-2.2.0" = {
       name = "_at_sorg_slash_log";
       packageName = "@sorg/log";
-      version = "2.1.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sorg/log/-/log-2.1.0.tgz";
-        sha512 = "weyuceH7eLZGlQLwA9+c2vxCWtWLe0vt4ma9qHzvB7aIbEZkAUXsONytEza6vNq2hIeL3/lRFRoGeiuBbnFfaA==";
+        url = "https://registry.npmjs.org/@sorg/log/-/log-2.2.0.tgz";
+        sha512 = "w5aH2k4caUWxO3dzJ0+GUJJGSqsg0gT6myhypQumlJXsKzYqzsZGZRWA2s/0zQIx6+B2wDvdweVogiWMAAbaKw==";
       };
     };
     "@starptech/expression-parser-0.10.0" = {
@@ -3379,130 +3757,130 @@ let
         sha512 = "DIenMFJXrd4yb35BbW/7LiikCQotbm9HEBG9S4HKV47tcKt6e4nZrNPO3R2hHgQ2jdo0xfqmlUlCP0O4Q3b9pw==";
       };
     };
-    "@textlint/ast-node-types-4.2.5" = {
+    "@textlint/ast-node-types-4.3.4" = {
       name = "_at_textlint_slash_ast-node-types";
       packageName = "@textlint/ast-node-types";
-      version = "4.2.5";
+      version = "4.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.2.5.tgz";
-        sha512 = "+rEx4jLOeZpUcdvll7jEg/7hNbwYvHWFy4IGW/tk2JdbyB3SJVyIP6arAwzTH/sp/pO9jftfyZnRj4//sLbLvQ==";
+        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.3.4.tgz";
+        sha512 = "Grq+vJuNH7HCa278eFeiqJvowrD+onMCoG2ctLyoN+fXYIQGIr1/8fo8AcIg+VM16Kga+N6Y1UWNOWPd8j1nFg==";
       };
     };
-    "@textlint/ast-tester-2.1.6" = {
+    "@textlint/ast-tester-2.2.4" = {
       name = "_at_textlint_slash_ast-tester";
       packageName = "@textlint/ast-tester";
-      version = "2.1.6";
+      version = "2.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-2.1.6.tgz";
-        sha512 = "i+UrSKZXs561g8LXsCBkgpNYkgBS3T3Pif2/+DraZmSKpQ2r2D1yCOdH82IGPWWpQ/GMSg6Z0qpLJpjnYz+bpg==";
+        url = "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-2.2.4.tgz";
+        sha512 = "676xpY3/+Xa+tPaiUPaD4sl//+p3xsnSPYLrQjSmHWXX78F3MwAWd/Lek+SCn4wwvf1tCIx0SPtjfOCa6ru8qw==";
       };
     };
-    "@textlint/ast-traverse-2.1.7" = {
+    "@textlint/ast-traverse-2.2.5" = {
       name = "_at_textlint_slash_ast-traverse";
       packageName = "@textlint/ast-traverse";
-      version = "2.1.7";
+      version = "2.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-2.1.7.tgz";
-        sha512 = "73Nw0R4TaskPmF36Hop1DZ8AbH339WrGiLQjzbOLaXHaBHQ4hdNw28UMlw4glfPZb7/zvxPcJRtg9AB8F3ZW0g==";
+        url = "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-2.2.5.tgz";
+        sha512 = "YduGVn7iaUYOfo7TwHO4b0K/qQpj61Ol/M884ck3vetNd0zBxpHO3GpQKW87SZGGtlsBa9v5Suz/yypnlPo3Og==";
       };
     };
-    "@textlint/feature-flag-3.1.6" = {
+    "@textlint/feature-flag-3.2.4" = {
       name = "_at_textlint_slash_feature-flag";
       packageName = "@textlint/feature-flag";
-      version = "3.1.6";
+      version = "3.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-3.1.6.tgz";
-        sha512 = "R2s027/WG3zhCMHZG79OhRFmkSL2ghwvFYg/W+2VUva5aYC8i9yeuwRyWt7m83tP1qlI+bq7j3S04fyn6yNheg==";
+        url = "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-3.2.4.tgz";
+        sha512 = "ABhbZ5rfkwa/kTBFxVmeMzE1flcnUjLJ5LTZvOaxH/pElfLLN1J4FEmAZTRCvXGAB498II6nkM2CqcikbKzh6A==";
       };
     };
-    "@textlint/fixer-formatter-3.1.13" = {
+    "@textlint/fixer-formatter-3.2.5" = {
       name = "_at_textlint_slash_fixer-formatter";
       packageName = "@textlint/fixer-formatter";
-      version = "3.1.13";
+      version = "3.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-3.1.13.tgz";
-        sha512 = "FXqAJZ+5fLsOZjvFmn1JhCer8gQI4ZQk3R45bXizRJm6DASByPAGGh/MAQxxHSGeR5wR8miO/koxA2BrS8OhAw==";
+        url = "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-3.2.5.tgz";
+        sha512 = "fh6XiLbX9WF8+79g20qb1I85k/Yc9+h7LRccmaLzTBjVQDNYxX5BtfvGsY0Vf5tBZKT2xFZH4eSLH/EWoL3weg==";
       };
     };
-    "@textlint/kernel-3.2.1" = {
+    "@textlint/kernel-3.3.6" = {
       name = "_at_textlint_slash_kernel";
       packageName = "@textlint/kernel";
-      version = "3.2.1";
+      version = "3.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/kernel/-/kernel-3.2.1.tgz";
-        sha512 = "gMCgP/tAjCX8dGqgu7nhUwaDC/TzDKeRZb9qa50nqbnILRasKplj3lOWn2osZdkScVZPLQp+al1pDh9pU4D+Dw==";
+        url = "https://registry.npmjs.org/@textlint/kernel/-/kernel-3.3.6.tgz";
+        sha512 = "M2ciQDAo5W6rpRADzGnMXyxhvJ+lnqYG9iHrqmfDQ2MA0VcolWuA37H67/UstqTs3NYaGC7RZkq9FAV//pl30w==";
       };
     };
-    "@textlint/linter-formatter-3.1.12" = {
+    "@textlint/linter-formatter-3.2.5" = {
       name = "_at_textlint_slash_linter-formatter";
       packageName = "@textlint/linter-formatter";
-      version = "3.1.12";
+      version = "3.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-3.1.12.tgz";
-        sha512 = "OEP4pklu01MEgBJrftD9vwe3HFx+jhiEe1JFIgf7GZ4a0fSer5vQWXBo5wHW6WtZtSa+iLBsLC3mI5VMeshzdA==";
+        url = "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-3.2.5.tgz";
+        sha512 = "oy5RcBWrC2d7r0Mjw/FBH8cvQuOaCB5PeOPG0Pp44Yr5JbIGLXfh84umHQOTCmxfRxw3ccnUfA9wjbxuL8rWOQ==";
       };
     };
-    "@textlint/markdown-to-ast-6.1.7" = {
+    "@textlint/markdown-to-ast-6.2.5" = {
       name = "_at_textlint_slash_markdown-to-ast";
       packageName = "@textlint/markdown-to-ast";
-      version = "6.1.7";
+      version = "6.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.1.7.tgz";
-        sha512 = "B0QtokeQR4a9+4q0NQr8T9l7A1fFihTN5Ze57tVgqW+3ymzXEouh8DvPHeNQ4T6jEkAThvdjk95mxAMpGRJ79w==";
+        url = "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.2.5.tgz";
+        sha512 = "9vlQbylGjnnRGev3yt9ntNy6I9FQH3p+MkbijybKnwobK/msoAX9sThDHOMbGM24PsUHxcDjktDlj2vHN/pwDA==";
       };
     };
-    "@textlint/module-interop-1.0.2" = {
+    "@textlint/module-interop-1.1.4" = {
       name = "_at_textlint_slash_module-interop";
       packageName = "@textlint/module-interop";
-      version = "1.0.2";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-1.0.2.tgz";
-        sha512 = "qQ6dqlg4SYywCywimIbkveQZu1MG6ugf6fcJuWDi3D51FbdkSRsMrPusJ1YoW6Y3XBp0ww9fJjXWtlUStGeQsw==";
+        url = "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-1.1.4.tgz";
+        sha512 = "9M3kYG5nBoD2lhp05sqi6fieNU6rBcf+A8Trp+4d8o5uJ4RRsWeRtAQMWM7Tv15onqIITRq7fm3la7xovVB9KA==";
       };
     };
-    "@textlint/text-to-ast-3.1.7" = {
+    "@textlint/text-to-ast-3.2.4" = {
       name = "_at_textlint_slash_text-to-ast";
       packageName = "@textlint/text-to-ast";
-      version = "3.1.7";
+      version = "3.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-3.1.7.tgz";
-        sha512 = "CBAEQmiEa2G/wonlLr1HgUtXfTSas6OGGvYGRIRMJweNh5Ilhbz2nM2/9XQMfLQbdn5pGYrAAAQRB2+/9fZ31A==";
+        url = "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-3.2.4.tgz";
+        sha512 = "uIiNg52OdQ3Fn8aOYaV7BLW2QakNsmf4doypIwrW4q+gHYQ3jxdPHHkq6RxuYoO112vO40M3zmAoEZmM1qmPhw==";
       };
     };
-    "@textlint/textlint-plugin-markdown-5.1.12" = {
+    "@textlint/textlint-plugin-markdown-5.2.6" = {
       name = "_at_textlint_slash_textlint-plugin-markdown";
       packageName = "@textlint/textlint-plugin-markdown";
-      version = "5.1.12";
+      version = "5.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-5.1.12.tgz";
-        sha512 = "CJWWTaomR22hQD3ogrZujMH1pNN7DqZadmx9CJXxgKwpI/cuD5d2kClwXO3MeLFckJr5HRso7SFN5ebqKu1ycw==";
+        url = "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-5.2.6.tgz";
+        sha512 = "S65wy2npaBLT7pwPPlrN9Pw40hOJsxiW+T6peMJOFEMLRem5qlCIlT+02Wlf0Rrtr6/gKDckpphTUiZT1+xRnQ==";
       };
     };
-    "@textlint/textlint-plugin-text-4.1.13" = {
+    "@textlint/textlint-plugin-text-4.2.6" = {
       name = "_at_textlint_slash_textlint-plugin-text";
       packageName = "@textlint/textlint-plugin-text";
-      version = "4.1.13";
+      version = "4.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-4.1.13.tgz";
-        sha512 = "KQfSYNDt8HSX8ZL/r86N8OrAuQ9LEuevAtGomtfkw0h7Ed/pUfmuYXjht8wYRdysYBa4JyjrXcmqzRAUdkWrag==";
+        url = "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-4.2.6.tgz";
+        sha512 = "KCgb5GVjoEDIi37UpQN6kFciiouyATNYrj/JufCeLNJEcVcxSm12EoFRKjpXpXmTOVqZUyGnIDU797z1usAZDw==";
       };
     };
-    "@textlint/types-1.3.1" = {
+    "@textlint/types-1.4.5" = {
       name = "_at_textlint_slash_types";
       packageName = "@textlint/types";
-      version = "1.3.1";
+      version = "1.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/types/-/types-1.3.1.tgz";
-        sha512 = "9MJ6PRPYWiFs2lfvp/Qhq72WrkZLL5ncBUXAVoj1Ug17ug8d7psmr/KJstMMocW3EWHSOuIDj7unh413c3jPqQ==";
+        url = "https://registry.npmjs.org/@textlint/types/-/types-1.4.5.tgz";
+        sha512 = "7pA1rdiw1jsDNGwxupMC6fPlRNAHY6fKZ3s+jAY53o6RroOSR+5qO0sAjJ26lsSOhveH8imZzyyD08dk58IVJQ==";
       };
     };
-    "@textlint/utils-1.0.3" = {
+    "@textlint/utils-1.1.4" = {
       name = "_at_textlint_slash_utils";
       packageName = "@textlint/utils";
-      version = "1.0.3";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/utils/-/utils-1.0.3.tgz";
-        sha512 = "6oGaBKXYpg5Ooph5p32OFdp1dXDUC1z5mpHg2gmQbx6QZjmP4QX+ygBQdNoCq15d1w88+We6koJl0n0WXjItYw==";
+        url = "https://registry.npmjs.org/@textlint/utils/-/utils-1.1.4.tgz";
+        sha512 = "KmU+kGi7vG5toUhNdLHHPxyVN1mNGcjMVe1tNDEXT1wU/3oqA96bunElrROWHYw5iNt1QVRaIAtNeMVyzyAdVA==";
       };
     };
     "@tokenizer/token-0.1.1" = {
@@ -3541,13 +3919,13 @@ let
         sha512 = "/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==";
       };
     };
-    "@types/babel-types-7.0.7" = {
+    "@types/babel-types-7.0.9" = {
       name = "_at_types_slash_babel-types";
       packageName = "@types/babel-types";
-      version = "7.0.7";
+      version = "7.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz";
-        sha512 = "dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ==";
+        url = "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.9.tgz";
+        sha512 = "qZLoYeXSTgQuK1h7QQS16hqLGdmqtRmN8w/rl3Au/l5x/zkHx+a4VHrHyBsi1I1vtK2oBHxSzKIu0R5p6spdOA==";
       };
     };
     "@types/babel__core-7.1.9" = {
@@ -3577,13 +3955,13 @@ let
         sha512 = "/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==";
       };
     };
-    "@types/babel__traverse-7.0.12" = {
+    "@types/babel__traverse-7.0.13" = {
       name = "_at_types_slash_babel__traverse";
       packageName = "@types/babel__traverse";
-      version = "7.0.12";
+      version = "7.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.12.tgz";
-        sha512 = "t4CoEokHTfcyfb4hUaF9oOHu9RmmNWnm1CP0YmMqOOfClKascOmvlEM736vlqeScuGvBDsHkf8R2INd4DWreQA==";
+        url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.13.tgz";
+        sha512 = "i+zS7t6/s9cdQvbqKDARrcbrPvtJGlbYsMkazo03nTAK3RX9FNrLllXys22uiTGJapPOTZTQ35nHh4ISph4SLQ==";
       };
     };
     "@types/babylon-6.16.5" = {
@@ -3676,13 +4054,13 @@ let
         sha512 = "oTGtMzZZAVuEjTwCjIh8T8FrC8n/uwy+PG0yTvQcdZ7etoel7C7/3MSd7qrukENTgQtotG7gvBlBojuVs7X5rw==";
       };
     };
-    "@types/cors-2.8.6" = {
+    "@types/cors-2.8.7" = {
       name = "_at_types_slash_cors";
       packageName = "@types/cors";
-      version = "2.8.6";
+      version = "2.8.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/cors/-/cors-2.8.6.tgz";
-        sha512 = "invOmosX0DqbpA+cE2yoHGUlF/blyf7nB0OGYBBiH27crcVm5NmFaZkLP4Ta1hGaesckCi5lVLlydNJCxkTOSg==";
+        url = "https://registry.npmjs.org/@types/cors/-/cors-2.8.7.tgz";
+        sha512 = "sOdDRU3oRS7LBNTIqwDkPJyq0lpHYcbMTt0TrjzsXbk/e37hcLTH6eZX7CdbDeN0yJJvzw9hFBZkbtCSbk/jAQ==";
       };
     };
     "@types/debug-4.1.5" = {
@@ -3694,6 +4072,42 @@ let
         sha512 = "Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==";
       };
     };
+    "@types/decompress-4.2.3" = {
+      name = "_at_types_slash_decompress";
+      packageName = "@types/decompress";
+      version = "4.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/decompress/-/decompress-4.2.3.tgz";
+        sha512 = "W24e3Ycz1UZPgr1ZEDHlK4XnvOr+CpJH3qNsFeqXwwlW/9END9gxn3oJSsp7gYdiQxrXUHwUUd3xuzVz37MrZQ==";
+      };
+    };
+    "@types/download-6.2.4" = {
+      name = "_at_types_slash_download";
+      packageName = "@types/download";
+      version = "6.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/download/-/download-6.2.4.tgz";
+        sha512 = "Lo5dy3ai6LNnbL663sgdzqL1eib11u1yKH6w3v3IXEOO4kRfQpMn1qWUTaumcHLACjFp1RcBx9tUXEvJoR3vcA==";
+      };
+    };
+    "@types/ejs-2.7.0" = {
+      name = "_at_types_slash_ejs";
+      packageName = "@types/ejs";
+      version = "2.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/ejs/-/ejs-2.7.0.tgz";
+        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/eslint-visitor-keys-1.0.0" = {
       name = "_at_types_slash_eslint-visitor-keys";
       packageName = "@types/eslint-visitor-keys";
@@ -3721,22 +4135,22 @@ let
         sha512 = "jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==";
       };
     };
-    "@types/express-4.17.4" = {
+    "@types/express-4.17.7" = {
       name = "_at_types_slash_express";
       packageName = "@types/express";
-      version = "4.17.4";
+      version = "4.17.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express/-/express-4.17.4.tgz";
-        sha512 = "DO1L53rGqIDUEvOjJKmbMEQ5Z+BM2cIEPy/eV3En+s166Gz+FeuzRerxcab757u/U4v4XF4RYrZPmqKa+aY/2w==";
+        url = "https://registry.npmjs.org/@types/express/-/express-4.17.7.tgz";
+        sha512 = "dCOT5lcmV/uC2J9k0rPafATeeyz+99xTt54ReX11/LObZgfzJqZNcW27zGhYyX+9iSEGXGt5qLPwRSvBZcLvtQ==";
       };
     };
-    "@types/express-serve-static-core-4.17.8" = {
+    "@types/express-serve-static-core-4.17.12" = {
       name = "_at_types_slash_express-serve-static-core";
       packageName = "@types/express-serve-static-core";
-      version = "4.17.8";
+      version = "4.17.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.8.tgz";
-        sha512 = "1SJZ+R3Q/7mLkOD9ewCBDYD2k0WyZQtWYqF/2VvoNN2/uhI49J9CDN4OAm+wGMA0DbArA4ef27xl4+JwMtGggw==";
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.12.tgz";
+        sha512 = "EaEdY+Dty1jEU7U6J4CUWwxL+hyEGMkO5jan5gplfegUgCUsIUWqXxqw47uGjimeT4Qgkz/XUfwoau08+fgvKA==";
       };
     };
     "@types/fs-capacitor-2.0.0" = {
@@ -3748,13 +4162,22 @@ let
         sha512 = "FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==";
       };
     };
-    "@types/glob-7.1.2" = {
+    "@types/glob-7.1.3" = {
       name = "_at_types_slash_glob";
       packageName = "@types/glob";
-      version = "7.1.2";
+      version = "7.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.2.tgz";
-        sha512 = "VgNIkxK+j7Nz5P7jvUZlRvhuPSmsEfS03b0alKcq5V/STUKAa3Plemsn5mrQUO7am6OErJ4rhGEGJbACclrtRA==";
+        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz";
+        sha512 = "SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==";
+      };
+    };
+    "@types/got-8.3.5" = {
+      name = "_at_types_slash_got";
+      packageName = "@types/got";
+      version = "8.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/got/-/got-8.3.5.tgz";
+        sha512 = "AaXSrIF99SjjtPVNmCmYb388HML+PKEJb/xmj4SbL2ZO0hHuETZZzyDIKfOqaEoAHZEuX4sC+FRFrHYJoIby6A==";
       };
     };
     "@types/graceful-fs-4.1.3" = {
@@ -3802,6 +4225,33 @@ let
         sha512 = "c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==";
       };
     };
+    "@types/http-errors-1.8.0" = {
+      name = "_at_types_slash_http-errors";
+      packageName = "@types/http-errors";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.0.tgz";
+        sha512 = "2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==";
+      };
+    };
+    "@types/http-proxy-1.17.4" = {
+      name = "_at_types_slash_http-proxy";
+      packageName = "@types/http-proxy";
+      version = "1.17.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.4.tgz";
+        sha512 = "IrSHl2u6AWXduUaDLqYpt45tLVCtYv7o4Z0s1KghBCDgIIS9oW5K1H8mZG/A2CfeLdEa7rTd1ACOiHBc1EMT2Q==";
+      };
+    };
+    "@types/inquirer-6.5.0" = {
+      name = "_at_types_slash_inquirer";
+      packageName = "@types/inquirer";
+      version = "6.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz";
+        sha512 = "rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==";
+      };
+    };
     "@types/istanbul-lib-coverage-2.0.3" = {
       name = "_at_types_slash_istanbul-lib-coverage";
       packageName = "@types/istanbul-lib-coverage";
@@ -3829,13 +4279,13 @@ let
         sha512 = "P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==";
       };
     };
-    "@types/jquery-3.5.0" = {
+    "@types/jquery-3.5.1" = {
       name = "_at_types_slash_jquery";
       packageName = "@types/jquery";
-      version = "3.5.0";
+      version = "3.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.0.tgz";
-        sha512 = "C7qQUjpMWDUNYQRTXsP5nbYYwCwwgy84yPgoTT7fPN69NH92wLeCtFaMsWeolJD1AF/6uQw3pYt62rzv83sMmw==";
+        url = "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.1.tgz";
+        sha512 = "Tyctjh56U7eX2b9udu3wG853ASYP0uagChJcQJXLUXEU6C/JiW5qt5dl8ao01VRj1i5pgXPAf8f1mq4+FDLRQg==";
       };
     };
     "@types/js-yaml-3.12.5" = {
@@ -3847,13 +4297,22 @@ let
         sha512 = "JCcp6J0GV66Y4ZMDAQCXot4xprYB+Zfd3meK9+INSJeVZwJmHAW30BBEEkPzXswMXuiyReUGOP3GxrADc9wPww==";
       };
     };
-    "@types/json-schema-7.0.5" = {
+    "@types/jscodeshift-0.7.1" = {
+      name = "_at_types_slash_jscodeshift";
+      packageName = "@types/jscodeshift";
+      version = "0.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/jscodeshift/-/jscodeshift-0.7.1.tgz";
+        sha512 = "4jkASx74qGl2OUK8NNFEq10QP0MXriOIqeBeNb1IdevHP8k8VDqS5Uv6nIixAA6ZUjjF6/SwOvecrjXkbcaFzw==";
+      };
+    };
+    "@types/json-schema-7.0.6" = {
       name = "_at_types_slash_json-schema";
       packageName = "@types/json-schema";
-      version = "7.0.5";
+      version = "7.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz";
-        sha512 = "7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==";
+        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" = {
@@ -3883,13 +4342,13 @@ let
         sha512 = "MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==";
       };
     };
-    "@types/koa-2.11.3" = {
+    "@types/koa-2.11.4" = {
       name = "_at_types_slash_koa";
       packageName = "@types/koa";
-      version = "2.11.3";
+      version = "2.11.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/koa/-/koa-2.11.3.tgz";
-        sha512 = "ABxVkrNWa4O/Jp24EYI/hRNqEVRlhB9g09p48neQp4m3xL1TJtdWk2NyNQSMCU45ejeELMQZBYyfstyVvO2H3Q==";
+        url = "https://registry.npmjs.org/@types/koa/-/koa-2.11.4.tgz";
+        sha512 = "Etqs0kdqbuAsNr5k6mlZQelpZKVwMu9WPRHVVTLnceZlhr0pYmblRNJbCgoCMzKWWePldydU0AYEOX4Q9fnGUQ==";
       };
     };
     "@types/koa-compose-3.2.5" = {
@@ -3901,13 +4360,13 @@ let
         sha512 = "B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==";
       };
     };
-    "@types/lodash-4.14.157" = {
+    "@types/lodash-4.14.161" = {
       name = "_at_types_slash_lodash";
       packageName = "@types/lodash";
-      version = "4.14.157";
+      version = "4.14.161";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.157.tgz";
-        sha512 = "Ft5BNFmv2pHDgxV5JDsndOWTRJ+56zte0ZpYLowp03tW+K+t8u8YMOzAnpuqPgzX6WO1XpDIUm7u04M8vdDiVQ==";
+        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.161.tgz";
+        sha512 = "EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA==";
       };
     };
     "@types/long-4.0.1" = {
@@ -3919,13 +4378,13 @@ let
         sha512 = "5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==";
       };
     };
-    "@types/mime-2.0.2" = {
+    "@types/mime-2.0.3" = {
       name = "_at_types_slash_mime";
       packageName = "@types/mime";
-      version = "2.0.2";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.2.tgz";
-        sha512 = "4kPlzbljFcsttWEq6aBW0OZe6BDajAmyvr2xknBG92tejQnvdGtT9+kXSZ580DqpxY9qG2xeQVF9Dq0ymUTo5Q==";
+        url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz";
+        sha512 = "Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==";
       };
     };
     "@types/minimatch-3.0.3" = {
@@ -3946,6 +4405,15 @@ let
         sha1 = "69a23a3ad29caf0097f06eda59b361ee2f0639f6";
       };
     };
+    "@types/mkdirp-0.5.2" = {
+      name = "_at_types_slash_mkdirp";
+      packageName = "@types/mkdirp";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz";
+        sha512 = "U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==";
+      };
+    };
     "@types/mocha-7.0.2" = {
       name = "_at_types_slash_mocha";
       packageName = "@types/mocha";
@@ -3955,40 +4423,49 @@ let
         sha512 = "ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==";
       };
     };
-    "@types/node-10.17.26" = {
+    "@types/node-10.17.29" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "10.17.29";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-10.17.29.tgz";
+        sha512 = "zLo9rjUeQ5+QVhOufDwrb3XKyso31fJBJnk9wUUQIBDExF/O4LryvpOfozfUaxgqifTnlt7FyqsAPXUq5yFZSA==";
+      };
+    };
+    "@types/node-12.7.12" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "10.17.26";
+      version = "12.7.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-10.17.26.tgz";
-        sha512 = "myMwkO2Cr82kirHY8uknNRHEVtn0wV3DTQfkrjx17jmkstDRZ24gNUdl8AHXVyVclTYI/bNjgTPTAWvWLqXqkw==";
+        url = "https://registry.npmjs.org/@types/node/-/node-12.7.12.tgz";
+        sha512 = "KPYGmfD0/b1eXurQ59fXD1GBzhSQfz6/lKBxkaHX9dKTzjXbK68Zt7yGUxUsCS1jeTy/8aL+d9JEr+S54mpkWQ==";
       };
     };
-    "@types/node-13.13.12" = {
+    "@types/node-13.13.16" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "13.13.12";
+      version = "13.13.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-13.13.12.tgz";
-        sha512 = "zWz/8NEPxoXNT9YyF2osqyA9WjssZukYpgI4UYZpOjcyqwIUqWGkcCionaEb9Ki+FULyPyvNFpg/329Kd2/pbw==";
+        url = "https://registry.npmjs.org/@types/node/-/node-13.13.16.tgz";
+        sha512 = "dJ9vXxJ8MEwzNn4GkoAGauejhXoKuJyYKegsA6Af25ZpEDXomeVXt5HUWUNVHk5UN7+U0f6ghC6otwt+7PdSDg==";
       };
     };
-    "@types/node-14.0.14" = {
+    "@types/node-14.6.3" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "14.0.14";
+      version = "14.6.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.0.14.tgz";
-        sha512 = "syUgf67ZQpaJj01/tRTknkMNoBBLWJOBODF0Zm4NrXmiSuxjymFrxnTu1QVYRubhVkRcZLYZG8STTwJRdVm/WQ==";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.6.3.tgz";
+        sha512 = "pC/hkcREG6YfDfui1FBmj8e20jFU5Exjw4NYDm8kEdrW+mOh0T1Zve8DWKnS7ZIZvgncrctcNCXF4Q2I+loyww==";
       };
     };
-    "@types/node-6.14.10" = {
+    "@types/node-6.14.11" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "6.14.10";
+      version = "6.14.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-6.14.10.tgz";
-        sha512 = "pF4HjZGSog75kGq7B1InK/wt/N08BuPATo+7HRfv7gZUzccebwv/fmWVGs/j6LvSiLWpCuGGhql51M/wcQsNzA==";
+        url = "https://registry.npmjs.org/@types/node/-/node-6.14.11.tgz";
+        sha512 = "htzPk08CmbGFjgIWaJut1oW2roZAAQxxOhkhsehCVLE7Uocx9wkcHfIQYdBWO7KqbuRvYrdBQtl5h5Mz/GxehA==";
       };
     };
     "@types/node-fetch-2.5.7" = {
@@ -4027,6 +4504,15 @@ let
         sha512 = "//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==";
       };
     };
+    "@types/parse5-5.0.3" = {
+      name = "_at_types_slash_parse5";
+      packageName = "@types/parse5";
+      version = "5.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz";
+        sha512 = "kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==";
+      };
+    };
     "@types/q-1.5.4" = {
       name = "_at_types_slash_q";
       packageName = "@types/q";
@@ -4036,13 +4522,13 @@ let
         sha512 = "1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==";
       };
     };
-    "@types/qs-6.9.3" = {
+    "@types/qs-6.9.4" = {
       name = "_at_types_slash_qs";
       packageName = "@types/qs";
-      version = "6.9.3";
+      version = "6.9.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.3.tgz";
-        sha512 = "7s9EQWupR1fTc2pSMtXRQ9w9gLOcrJn+h7HOXw4evxyvVqMi4f+q7d2tnFe3ng3SNHjtK+0EzGMGFUQX4/AQRA==";
+        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.4.tgz";
+        sha512 = "+wYo+L6ZF6BMoEjtf8zB2esQsqdV6WsjRK/GP9WOgLPrq87PbNWgIxS76dS5uvl/QXtHGakZmwTznIfcPXcKlQ==";
       };
     };
     "@types/range-parser-1.2.3" = {
@@ -4081,6 +4567,15 @@ let
         sha512 = "auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==";
       };
     };
+    "@types/resolve-1.17.1" = {
+      name = "_at_types_slash_resolve";
+      packageName = "@types/resolve";
+      version = "1.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz";
+        sha512 = "yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==";
+      };
+    };
     "@types/responselike-1.0.0" = {
       name = "_at_types_slash_responselike";
       packageName = "@types/responselike";
@@ -4099,13 +4594,13 @@ let
         sha512 = "41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==";
       };
     };
-    "@types/serve-static-1.13.4" = {
+    "@types/serve-static-1.13.5" = {
       name = "_at_types_slash_serve-static";
       packageName = "@types/serve-static";
-      version = "1.13.4";
+      version = "1.13.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.4.tgz";
-        sha512 = "jTDt0o/YbpNwZbQmE/+2e+lfjJEJJR0I3OFaKQKPWkASkCoW3i6fsUnqudSMcNAfbtmADGu8f4MV4q+GqULmug==";
+        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.5.tgz";
+        sha512 = "6M64P58N+OXjU432WoLLBQxbA0LRGBCRm7aAGQJ+SMC1IMl0dgRVi9EFfoDcS2a7Xogygk/eGN94CfwU9UF7UQ==";
       };
     };
     "@types/sizzle-2.3.2" = {
@@ -4144,6 +4639,15 @@ let
         sha512 = "W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==";
       };
     };
+    "@types/through-0.0.30" = {
+      name = "_at_types_slash_through";
+      packageName = "@types/through";
+      version = "0.0.30";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz";
+        sha512 = "FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==";
+      };
+    };
     "@types/tough-cookie-4.0.0" = {
       name = "_at_types_slash_tough-cookie";
       packageName = "@types/tough-cookie";
@@ -4153,13 +4657,13 @@ let
         sha512 = "I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A==";
       };
     };
-    "@types/uglify-js-3.9.2" = {
+    "@types/uglify-js-3.9.3" = {
       name = "_at_types_slash_uglify-js";
       packageName = "@types/uglify-js";
-      version = "3.9.2";
+      version = "3.9.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.2.tgz";
-        sha512 = "d6dIfpPbF+8B7WiCi2ELY7m0w1joD8cRW4ms88Emdb2w062NeEpbNCeWwVCgzLRpVG+5e74VFSg4rgJ2xXjEiQ==";
+        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.3.tgz";
+        sha512 = "KswB5C7Kwduwjj04Ykz+AjvPcfgv/37Za24O2EDzYNbwyzOo8+ydtvzUfZ5UMguiVu29Gx44l1A6VsPPcmYu9w==";
       };
     };
     "@types/unist-2.0.3" = {
@@ -4189,40 +4693,49 @@ let
         sha512 = "GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==";
       };
     };
-    "@types/vscode-1.45.0" = {
+    "@types/vscode-1.48.0" = {
       name = "_at_types_slash_vscode";
       packageName = "@types/vscode";
-      version = "1.45.0";
+      version = "1.48.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.45.0.tgz";
-        sha512 = "b0Gyir7sPBCqiKLygAhn/AYVfzWD+SMPkWltBrIuPEyTOxSU1wVApWY/FcxYO2EWTRacoubTl4+gvZf86RkecA==";
+        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.48.0.tgz";
+        sha512 = "sZJKzsJz1gSoFXcOJWw3fnKl2sseUgZmvB4AJZS+Fea+bC/jfGPVhmFL/FfQHld/TKtukVONsmoD3Pkyx9iadg==";
       };
     };
-    "@types/webpack-4.41.17" = {
+    "@types/webpack-4.41.21" = {
       name = "_at_types_slash_webpack";
       packageName = "@types/webpack";
-      version = "4.41.17";
+      version = "4.41.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.17.tgz";
-        sha512 = "6FfeCidTSHozwKI67gIVQQ5Mp0g4X96c2IXxX75hYEQJwST/i6NyZexP//zzMOBb+wG9jJ7oO8fk9yObP2HWAw==";
+        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.21.tgz";
+        sha512 = "2j9WVnNrr/8PLAB5csW44xzQSJwS26aOnICsP3pSGCEdsu6KYtfQ6QJsVUKHWRnm1bL7HziJsfh5fHqth87yKA==";
       };
     };
-    "@types/webpack-sources-1.4.0" = {
+    "@types/webpack-sources-1.4.2" = {
       name = "_at_types_slash_webpack-sources";
       packageName = "@types/webpack-sources";
-      version = "1.4.0";
+      version = "1.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-1.4.2.tgz";
+        sha512 = "77T++JyKow4BQB/m9O96n9d/UUHWLQHlcqXb9Vsf4F1+wKNrrlWNFPDLKNT92RJnCSL6CieTc+NDXtCVZswdTw==";
+      };
+    };
+    "@types/websocket-1.0.1" = {
+      name = "_at_types_slash_websocket";
+      packageName = "@types/websocket";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-1.4.0.tgz";
-        sha512 = "c88dKrpSle9BtTqR6ifdaxu1Lvjsl3C5OsfvuUbUwdXymshv1TkufUAXBajCCUM/f/TmnkZC/Esb03MinzSiXQ==";
+        url = "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.1.tgz";
+        sha512 = "f5WLMpezwVxCLm1xQe/kdPpQIOmL0TXYx2O15VYfYzc7hTIdxiOoOvez+McSIw3b7z/1zGovew9YSL7+h4h7/Q==";
       };
     };
-    "@types/ws-7.2.5" = {
+    "@types/ws-7.2.6" = {
       name = "_at_types_slash_ws";
       packageName = "@types/ws";
-      version = "7.2.5";
+      version = "7.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/ws/-/ws-7.2.5.tgz";
-        sha512 = "4UEih9BI1nBKii385G9id1oFrSkLcClbwtDfcYj8HJLQqZVAtb/42vXVrYvRWCcufNF/a+rZD3MxNwghA7UmCg==";
+        url = "https://registry.npmjs.org/@types/ws/-/ws-7.2.6.tgz";
+        sha512 = "Q07IrQUSNpr+cXU4E4LtkSIBPie5GLZyyMC1QtQYRLWz701+XcoVygGUZgvLqElq1nU4ICldMYPnexlBsg3dqQ==";
       };
     };
     "@types/xml2js-0.4.5" = {
@@ -4234,6 +4747,15 @@ let
         sha512 = "yohU3zMn0fkhlape1nxXG2bLEGZRc1FeqF80RoHaYXJN7uibaauXfhzhOJr1Xh36sn+/tx21QAOf07b/xYVk1w==";
       };
     };
+    "@types/yargs-13.0.10" = {
+      name = "_at_types_slash_yargs";
+      packageName = "@types/yargs";
+      version = "13.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.10.tgz";
+        sha512 = "MU10TSgzNABgdzKvQVW1nuuT+sgBMWeXNc3XOs5YXV5SDAK+PPja2eUuBNB9iqElu03xyEDqlnGw0jgl4nbqGQ==";
+      };
+    };
     "@types/yargs-15.0.5" = {
       name = "_at_types_slash_yargs";
       packageName = "@types/yargs";
@@ -4270,58 +4792,40 @@ let
         sha512 = "te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg==";
       };
     };
-    "@typescript-eslint/eslint-plugin-3.4.0" = {
+    "@typescript-eslint/eslint-plugin-3.10.1" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
-      version = "3.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.4.0.tgz";
-        sha512 = "wfkpiqaEVhZIuQRmudDszc01jC/YR7gMSxa6ulhggAe/Hs0KVIuo9wzvFiDbG3JD5pRFQoqnf4m7REDsUvBnMQ==";
-      };
-    };
-    "@typescript-eslint/experimental-utils-1.13.0" = {
-      name = "_at_typescript-eslint_slash_experimental-utils";
-      packageName = "@typescript-eslint/experimental-utils";
-      version = "1.13.0";
+      version = "3.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz";
-        sha512 = "zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.10.1.tgz";
+        sha512 = "PQg0emRtzZFWq6PxBcdxRH3QIQiyFO3WCVpRL3fgj5oQS3CDs3AeAKfv4DxNhzn8ITdNJGJ4D3Qw8eAJf3lXeQ==";
       };
     };
-    "@typescript-eslint/experimental-utils-3.4.0" = {
+    "@typescript-eslint/experimental-utils-3.10.1" = {
       name = "_at_typescript-eslint_slash_experimental-utils";
       packageName = "@typescript-eslint/experimental-utils";
-      version = "3.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.4.0.tgz";
-        sha512 = "rHPOjL43lOH1Opte4+dhC0a/+ks+8gOBwxXnyrZ/K4OTAChpSjP76fbI8Cglj7V5GouwVAGaK+xVwzqTyE/TPw==";
-      };
-    };
-    "@typescript-eslint/parser-1.13.0" = {
-      name = "_at_typescript-eslint_slash_parser";
-      packageName = "@typescript-eslint/parser";
-      version = "1.13.0";
+      version = "3.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-1.13.0.tgz";
-        sha512 = "ITMBs52PCPgLb2nGPoeT4iU3HdQZHcPaZVw+7CsFagRJHUhyeTgorEwHXhFf3e7Evzi8oujKNpHc8TONth8AdQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz";
+        sha512 = "DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==";
       };
     };
-    "@typescript-eslint/parser-3.4.0" = {
+    "@typescript-eslint/parser-3.10.1" = {
       name = "_at_typescript-eslint_slash_parser";
       packageName = "@typescript-eslint/parser";
-      version = "3.4.0";
+      version = "3.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.4.0.tgz";
-        sha512 = "ZUGI/de44L5x87uX5zM14UYcbn79HSXUR+kzcqU42gH0AgpdB/TjuJy3m4ezI7Q/jk3wTQd755mxSDLhQP79KA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.10.1.tgz";
+        sha512 = "Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw==";
       };
     };
-    "@typescript-eslint/typescript-estree-1.13.0" = {
-      name = "_at_typescript-eslint_slash_typescript-estree";
-      packageName = "@typescript-eslint/typescript-estree";
-      version = "1.13.0";
+    "@typescript-eslint/types-3.10.1" = {
+      name = "_at_typescript-eslint_slash_types";
+      packageName = "@typescript-eslint/types";
+      version = "3.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz";
-        sha512 = "b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz";
+        sha512 = "+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==";
       };
     };
     "@typescript-eslint/typescript-estree-2.34.0" = {
@@ -4333,49 +4837,193 @@ let
         sha512 = "OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==";
       };
     };
-    "@typescript-eslint/typescript-estree-3.4.0" = {
+    "@typescript-eslint/typescript-estree-3.10.1" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "3.4.0";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz";
+        sha512 = "QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==";
+      };
+    };
+    "@typescript-eslint/visitor-keys-3.10.1" = {
+      name = "_at_typescript-eslint_slash_visitor-keys";
+      packageName = "@typescript-eslint/visitor-keys";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz";
+        sha512 = "9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==";
+      };
+    };
+    "@uifabric/foundation-7.9.0" = {
+      name = "_at_uifabric_slash_foundation";
+      packageName = "@uifabric/foundation";
+      version = "7.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/foundation/-/foundation-7.9.0.tgz";
+        sha512 = "4gdPwx0HV59aWvPKIw6yIje60CYwJZmTJsdLRXqh8Np1tWp2EsbA8U/IHQL1V91rEN0DlQhASqCDFhfQoD1jUw==";
+      };
+    };
+    "@uifabric/icons-7.5.0" = {
+      name = "_at_uifabric_slash_icons";
+      packageName = "@uifabric/icons";
+      version = "7.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.4.0.tgz";
-        sha512 = "zKwLiybtt4uJb4mkG5q2t6+W7BuYx2IISiDNV+IY68VfoGwErDx/RfVI7SWL4gnZ2t1A1ytQQwZ+YOJbHHJ2rw==";
+        url = "https://registry.npmjs.org/@uifabric/icons/-/icons-7.5.0.tgz";
+        sha512 = "RINA9VkajlCnlwEBbqiwLBaaGn38Bf9UvjOuwrrja4B9lclLeQzZuGrG/kp7CnDtIO+LC19OYl/7E3jW7yIihA==";
       };
     };
-    "@vue/cli-shared-utils-4.4.6" = {
+    "@uifabric/merge-styles-7.18.0" = {
+      name = "_at_uifabric_slash_merge-styles";
+      packageName = "@uifabric/merge-styles";
+      version = "7.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/merge-styles/-/merge-styles-7.18.0.tgz";
+        sha512 = "805WIbN7lAJATXKxZjjRbIgN7raRMwWYWeDkJJ52PCPuCesOvbpdr0GkH8rC6GQ7EB0MB7YM2i6Fiye7SFewbw==";
+      };
+    };
+    "@uifabric/react-hooks-7.11.0" = {
+      name = "_at_uifabric_slash_react-hooks";
+      packageName = "@uifabric/react-hooks";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/react-hooks/-/react-hooks-7.11.0.tgz";
+        sha512 = "iU7c+JR+rY5kBTPmrF8F6iJBQw309MX/MvOx6ElhmNceBaa8BqDuqR9+TVfkH+Bxp37bmZnCaQF5w4+QWHZ81g==";
+      };
+    };
+    "@uifabric/set-version-7.0.22" = {
+      name = "_at_uifabric_slash_set-version";
+      packageName = "@uifabric/set-version";
+      version = "7.0.22";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/set-version/-/set-version-7.0.22.tgz";
+        sha512 = "IG35UNJNxqI7NC2eYuobGTD+v4W0VHQcC3bYd5Na9EgoC9jVgguS8n6EXUtP/lC1vJEYEyPEZdVwhPxKw4F4Sw==";
+      };
+    };
+    "@uifabric/styling-7.16.0" = {
+      name = "_at_uifabric_slash_styling";
+      packageName = "@uifabric/styling";
+      version = "7.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/styling/-/styling-7.16.0.tgz";
+        sha512 = "yO404ws8Wl4fjBwG4T58TFJjeU/K+SpWJ4w+WeNMDlJcYe4zXaWn2lbOJtKtQiMl324RAEjFSOuNkXzPb0uOGQ==";
+      };
+    };
+    "@uifabric/utilities-7.31.0" = {
+      name = "_at_uifabric_slash_utilities";
+      packageName = "@uifabric/utilities";
+      version = "7.31.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/utilities/-/utilities-7.31.0.tgz";
+        sha512 = "m4Yeyn4gyW7xS8LvOnCesokPModYS2YuE9GQmO++MDZ/vC5RRNlvlyktUZDuxCZ84cNCiXyTQ8nImBaPGnxHVQ==";
+      };
+    };
+    "@vue/cli-shared-utils-4.5.4" = {
       name = "_at_vue_slash_cli-shared-utils";
       packageName = "@vue/cli-shared-utils";
-      version = "4.4.6";
+      version = "4.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.4.6.tgz";
-        sha512 = "ba+FZZCjiTSu2otnLjY4qXqASe7ZIQ/QBljk5oRPgqrR0p1NUkDPUcZhqa041aOaSW1yAfSfhOD7Q84nMnWhzQ==";
+        url = "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.4.tgz";
+        sha512 = "7ZwAvGxl5szGuaJCc4jdPy/2Lb7oJvG847MDF+7pZ7FVl6bURwbUJjiUwL6DTxvpC4vch6B4tXfVvZFjzVP/bw==";
       };
     };
-    "@vue/cli-ui-4.4.6" = {
+    "@vue/cli-ui-4.5.4" = {
       name = "_at_vue_slash_cli-ui";
       packageName = "@vue/cli-ui";
-      version = "4.4.6";
+      version = "4.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui/-/cli-ui-4.4.6.tgz";
-        sha512 = "9l67vb0J9iubf14Lj6aI8Fg9DPIgB9gCLbwQWVrFtoaDTapdbo0X6cf0zK1RNeN/5CrGa5baIntqsWwC1Iqlcw==";
+        url = "https://registry.npmjs.org/@vue/cli-ui/-/cli-ui-4.5.4.tgz";
+        sha512 = "1FXRes+Xl/018OdF8pSZKxQzT+NwUpBm5/DbKkNxcxJOSgEE/sIUGmQjyQPWyYyFs6hugbIsNpEJgdYumUUjbQ==";
       };
     };
-    "@vue/cli-ui-addon-webpack-4.4.6" = {
+    "@vue/cli-ui-addon-webpack-4.5.4" = {
       name = "_at_vue_slash_cli-ui-addon-webpack";
       packageName = "@vue/cli-ui-addon-webpack";
-      version = "4.4.6";
+      version = "4.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui-addon-webpack/-/cli-ui-addon-webpack-4.4.6.tgz";
-        sha512 = "odDx8lo+MNFCnhOB6fsjWJnoWP/YhDhDuCUQC8YQHCtsGRHI8/mJQk1tLI8cPVrY37aAH8Z0loitg4q3klItlQ==";
+        url = "https://registry.npmjs.org/@vue/cli-ui-addon-webpack/-/cli-ui-addon-webpack-4.5.4.tgz";
+        sha512 = "J5yYNdrcBvDboYwX+I9KEpv2QdV39X+YoZl2x+mYAgc4d+Forf2mmGipBarnAOgR58d/yapFRrtQLK1dUNpk9A==";
       };
     };
-    "@vue/cli-ui-addon-widgets-4.4.6" = {
+    "@vue/cli-ui-addon-widgets-4.5.4" = {
       name = "_at_vue_slash_cli-ui-addon-widgets";
       packageName = "@vue/cli-ui-addon-widgets";
-      version = "4.4.6";
+      version = "4.5.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/cli-ui-addon-widgets/-/cli-ui-addon-widgets-4.5.4.tgz";
+        sha512 = "/7R3dMrv/tEP4AM22hBDPfXPF24OE/2ddR3cTF1c1fSoHT/LcUvqrlHIb8SlVgl3S7WvF9Prrunp+KzkHW9bSA==";
+      };
+    };
+    "@vue/compiler-core-3.0.0-rc.10" = {
+      name = "_at_vue_slash_compiler-core";
+      packageName = "@vue/compiler-core";
+      version = "3.0.0-rc.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui-addon-widgets/-/cli-ui-addon-widgets-4.4.6.tgz";
-        sha512 = "GqtqxFR30LCxiQ+y/8b+XmAaZ983ojYT/6xOeqD0V0bZ3sNrthTxRcTXKJHbw7xdeE7bWHikHKYQ7Jn3J/Dyjw==";
+        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.0-rc.10.tgz";
+        sha512 = "kQzHzRsM0NPAWHeqSTb2J4VsHhjRkGeLTsGzeMnW+sojgTnS3T94KacwvYgVS4qeZAKiDq0bMNZoJWrHVQ3T8g==";
+      };
+    };
+    "@vue/compiler-dom-3.0.0-rc.10" = {
+      name = "_at_vue_slash_compiler-dom";
+      packageName = "@vue/compiler-dom";
+      version = "3.0.0-rc.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.0-rc.10.tgz";
+        sha512 = "pqIUf5leZm0P9379utrRSVBMxhV8XaqJTEFFp5etCtbEa/H5ALs29EjFMtMcm9sQaVkZlKLu86mgIacbYB9Q3w==";
+      };
+    };
+    "@vue/compiler-sfc-3.0.0-rc.10" = {
+      name = "_at_vue_slash_compiler-sfc";
+      packageName = "@vue/compiler-sfc";
+      version = "3.0.0-rc.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.0-rc.10.tgz";
+        sha512 = "VIJ+VXqeM7WoRNgD9uYSARVb6CYq+JS2NNHfeerfNc7Uk3pjYHRv1MwEicAvN6zWFm5GLC1ZYTVD+WFg3xGAkQ==";
+      };
+    };
+    "@vue/compiler-ssr-3.0.0-rc.10" = {
+      name = "_at_vue_slash_compiler-ssr";
+      packageName = "@vue/compiler-ssr";
+      version = "3.0.0-rc.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.0-rc.10.tgz";
+        sha512 = "JBPil8sO5j7puB8acX2CQMRXEYB/EP8PoEur7RcF/+aqATI7C4yqWcSLC5TRJpigj6xE6ku6sx8om+j7ZHvgBw==";
+      };
+    };
+    "@vue/reactivity-3.0.0-rc.10" = {
+      name = "_at_vue_slash_reactivity";
+      packageName = "@vue/reactivity";
+      version = "3.0.0-rc.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.0.0-rc.10.tgz";
+        sha512 = "mkUZfOJlbqGZx2cARmhCs5r2+xLJPL7VFNagmlA3Fd66ZXBc3ZvTQdYsY4VUbYJFe5ByIzqu9TZiAkzXY+JVaA==";
+      };
+    };
+    "@vue/runtime-core-3.0.0-rc.10" = {
+      name = "_at_vue_slash_runtime-core";
+      packageName = "@vue/runtime-core";
+      version = "3.0.0-rc.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.0-rc.10.tgz";
+        sha512 = "VK/kq4gDDoqZ45CVwdbLLpikXLYLCt6YLhdgXX3fhf20gvPqrbEZv1ZNLruNnhhTpf9cLyU4tZ18DHeaUYPziw==";
+      };
+    };
+    "@vue/runtime-dom-3.0.0-rc.10" = {
+      name = "_at_vue_slash_runtime-dom";
+      packageName = "@vue/runtime-dom";
+      version = "3.0.0-rc.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.0-rc.10.tgz";
+        sha512 = "bH4GuneHt3FQ+/21jba5orM/CO9N1cnT7J3wtrxopFJ4/4H5cvHXyG6v+ZVTu1d733Ij/6yMRA7xbtfi9a4zJw==";
+      };
+    };
+    "@vue/shared-3.0.0-rc.10" = {
+      name = "_at_vue_slash_shared";
+      packageName = "@vue/shared";
+      version = "3.0.0-rc.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.0.0-rc.10.tgz";
+        sha512 = "fI6gVhhgb3cAmEkY4oeVVA2hWZ2xvkgogHdBI5PL7gSvZnOB6XZ2eQGsYjC4W+7BegvEkoMBuZsFXVa4ZQ07XQ==";
       };
     };
     "@webassemblyjs/ast-1.8.1" = {
@@ -4756,6 +5404,42 @@ let
         sha512 = "NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==";
       };
     };
+    "@yarnpkg/core-2.2.2" = {
+      name = "_at_yarnpkg_slash_core";
+      packageName = "@yarnpkg/core";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/core/-/core-2.2.2.tgz";
+        sha512 = "TQ0wqQjbZQDrf31N5v4NtE4Juw1c16hYu9QwNloUxRgY/Z+AQIuqa6Jgv9BbAghchZkSIXDWp6bFGD7C+q7cuA==";
+      };
+    };
+    "@yarnpkg/fslib-2.2.1" = {
+      name = "_at_yarnpkg_slash_fslib";
+      packageName = "@yarnpkg/fslib";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/fslib/-/fslib-2.2.1.tgz";
+        sha512 = "7SzLP/RHt8lEOaCTg6hMMrnxc2/Osbu3+UPwLZiZiGtLpYqwtTgtWTlAqddS3+MESXOZhc+3gKLX0lfqm6oWuw==";
+      };
+    };
+    "@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.0" = {
+      name = "_at_yarnpkg_slash_libzip";
+      packageName = "@yarnpkg/libzip";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/libzip/-/libzip-2.2.0.tgz";
+        sha512 = "/YRSPJbPAvHeCJxcXJrUV4eRP9hER6YB6LyZxsFlpyF++eqdOzNu0WsuXRRJxfqYt3hl7SiGFkL23qB9jqC6cw==";
+      };
+    };
     "@yarnpkg/lockfile-1.1.0" = {
       name = "_at_yarnpkg_slash_lockfile";
       packageName = "@yarnpkg/lockfile";
@@ -4765,6 +5449,33 @@ let
         sha512 = "GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==";
       };
     };
+    "@yarnpkg/parsers-2.2.0" = {
+      name = "_at_yarnpkg_slash_parsers";
+      packageName = "@yarnpkg/parsers";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-2.2.0.tgz";
+        sha512 = "k1XZaWYRHl7wCj04hcbtzKfPAZbKbsEi7xsB1Ka8obdS6DRnAw7n0gZPvvGjOoqkH95IqWf+Vi7vV5RhlGz63Q==";
+      };
+    };
+    "@yarnpkg/pnp-2.2.1" = {
+      name = "_at_yarnpkg_slash_pnp";
+      packageName = "@yarnpkg/pnp";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/pnp/-/pnp-2.2.1.tgz";
+        sha512 = "jrwJ3Q6M+nMs4n0O/GgxayU1Bq9mpLoZW2Mb8Nt2fs5whB0CeCr1/pGl9+yiCSjirv9jjp51TVFqF7OPvXy+gA==";
+      };
+    };
+    "@yarnpkg/shell-2.2.0" = {
+      name = "_at_yarnpkg_slash_shell";
+      packageName = "@yarnpkg/shell";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/shell/-/shell-2.2.0.tgz";
+        sha512 = "IuOZhYxTydNySqP2HlKkfm1QjgCAgVBUZz5O5rXXxpS4vTNSa0q6fwqvNUSrHSWGKH/jAmJS23YbJqislj5wjg==";
+      };
+    };
     "@zeit/schemas-2.6.0" = {
       name = "_at_zeit_slash_schemas";
       packageName = "@zeit/schemas";
@@ -4855,13 +5566,13 @@ let
         sha1 = "5faad9c2c07f60dd76770f71cf025b62a63cfd4e";
       };
     };
-    "abab-2.0.3" = {
+    "abab-2.0.4" = {
       name = "abab";
       packageName = "abab";
-      version = "2.0.3";
+      version = "2.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz";
-        sha512 = "tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==";
+        url = "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz";
+        sha512 = "Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==";
       };
     };
     "abbrev-1.1.1" = {
@@ -4882,15 +5593,6 @@ let
         sha1 = "c22822f87e1c939f579887504d9c109c4173829d";
       };
     };
-    "abstract-leveldown-0.12.4" = {
-      name = "abstract-leveldown";
-      packageName = "abstract-leveldown";
-      version = "0.12.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz";
-        sha1 = "29e18e632e60e4e221d5810247852a63d7b2e410";
-      };
-    };
     "abstract-leveldown-6.0.3" = {
       name = "abstract-leveldown";
       packageName = "abstract-leveldown";
@@ -4918,13 +5620,13 @@ let
         sha512 = "TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==";
       };
     };
-    "abstract-logging-1.0.0" = {
+    "abstract-logging-2.0.0" = {
       name = "abstract-logging";
       packageName = "abstract-logging";
-      version = "1.0.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/abstract-logging/-/abstract-logging-1.0.0.tgz";
-        sha1 = "8b7deafd310559bc28f77724dd1bb30177278c1b";
+        url = "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.0.tgz";
+        sha512 = "/oA9z7JszpIioo6J6dB79LVUgJ3eD3cxkAmdCkvWWS+Y9tPtALs1rLqOekLUXUbYqM2fB9TTK0ibAyZJJOP/CA==";
       };
     };
     "abstract-random-access-1.1.2" = {
@@ -4945,15 +5647,6 @@ let
         sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
       };
     };
-    "accord-0.28.0" = {
-      name = "accord";
-      packageName = "accord";
-      version = "0.28.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/accord/-/accord-0.28.0.tgz";
-        sha512 = "sPF34gqHegaCSryKf5wHJ8wREK1dTZnHmC9hsB7D8xjntRdd30DXDPKf0YVIcSvnXJmcYu5SCvZRz28H++kFhQ==";
-      };
-    };
     "ace.improved-0.2.1" = {
       name = "ace.improved";
       packageName = "ace.improved";
@@ -5008,13 +5701,13 @@ let
         sha512 = "ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==";
       };
     };
-    "acorn-7.3.1" = {
+    "acorn-7.4.0" = {
       name = "acorn";
       packageName = "acorn";
-      version = "7.3.1";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz";
-        sha512 = "tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==";
+        url = "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz";
+        sha512 = "+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==";
       };
     };
     "acorn-globals-1.0.9" = {
@@ -5134,13 +5827,13 @@ let
         sha1 = "f291be701a2efc567a63fc7aa6afcded31430be1";
       };
     };
-    "addons-linter-1.26.0" = {
+    "addons-linter-2.1.0" = {
       name = "addons-linter";
       packageName = "addons-linter";
-      version = "1.26.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-1.26.0.tgz";
-        sha512 = "PKytX6qxbZapc076auO0LBhAGuw2z7eyPnYusMgNBPbY72MAXzUCt3AhSbwGhZ43d5Tn/3At5H0xPi31VXG2Mg==";
+        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-2.1.0.tgz";
+        sha512 = "ISCPobK6VdQ+5btMf1abkuD/9V+6RjnpJAVmEzjxDitk7HY03mLXVhA8SoD0XgngrI6cFlM2/i4OxfY4dHokpw==";
       };
     };
     "addr-to-ip-port-1.5.1" = {
@@ -5242,13 +5935,13 @@ let
         sha512 = "TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==";
       };
     };
-    "agent-base-6.0.0" = {
+    "agent-base-6.0.1" = {
       name = "agent-base";
       packageName = "agent-base";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz";
-        sha512 = "j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==";
+        url = "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz";
+        sha512 = "01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==";
       };
     };
     "agentkeepalive-3.5.2" = {
@@ -5269,13 +5962,13 @@ let
         sha512 = "wn8fw19xKZwdGPO47jivonaHRTd+nGOMP1z11sgGeQzDy2xd5FG0R67dIMcKHDE2cJ5y+YXV30XVGUBPRSY7Hg==";
       };
     };
-    "aggregate-error-3.0.1" = {
+    "aggregate-error-3.1.0" = {
       name = "aggregate-error";
       packageName = "aggregate-error";
-      version = "3.0.1";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz";
-        sha512 = "quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==";
+        url = "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz";
+        sha512 = "4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==";
       };
     };
     "airplay-js-0.2.16" = {
@@ -5332,22 +6025,22 @@ let
         sha1 = "73b5eeca3fab653e3d3f9422b341ad42205dc965";
       };
     };
-    "ajv-6.12.0" = {
+    "ajv-6.12.3" = {
       name = "ajv";
       packageName = "ajv";
-      version = "6.12.0";
+      version = "6.12.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz";
-        sha512 = "D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==";
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz";
+        sha512 = "4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==";
       };
     };
-    "ajv-6.12.2" = {
+    "ajv-6.12.4" = {
       name = "ajv";
       packageName = "ajv";
-      version = "6.12.2";
+      version = "6.12.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz";
-        sha512 = "k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==";
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz";
+        sha512 = "eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==";
       };
     };
     "ajv-6.5.3" = {
@@ -5386,13 +6079,13 @@ let
         sha1 = "617997fc5f60576894c435f940d819e135b80762";
       };
     };
-    "ajv-keywords-3.5.0" = {
+    "ajv-keywords-3.5.2" = {
       name = "ajv-keywords";
       packageName = "ajv-keywords";
-      version = "3.5.0";
+      version = "3.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.0.tgz";
-        sha512 = "eyoaac3btgU8eJlvh01En8OCKzRqlLe2G5jDsCr3RiE2uLGMEEB1aaGwVVpwR8M95956tGH6R+9edC++OvzaVw==";
+        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz";
+        sha512 = "5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==";
       };
     };
     "ajv-merge-patch-4.1.0" = {
@@ -5404,13 +6097,13 @@ let
         sha512 = "0mAYXMSauA8RZ7r+B4+EAOYcZEcO9OK5EiQCR7W7Cv4E44pJj56ZnkKLJ9/PAcOc0dT+LlV9fdDcq2TxVJfOYw==";
       };
     };
-    "alex-5.1.0" = {
+    "alex-9.0.1" = {
       name = "alex";
       packageName = "alex";
-      version = "5.1.0";
+      version = "9.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/alex/-/alex-5.1.0.tgz";
-        sha512 = "ouNJOHx7KKNwFsmX3WWXo8c2RTrsyhcX5QlFb6IM/cHCy9IkHr1k833jiIhcbwkUeGgACI2BJtp9LLvnFjbhbA==";
+        url = "https://registry.npmjs.org/alex/-/alex-9.0.1.tgz";
+        sha512 = "q560b+fVMXvu3WVkvoYBUGRHRXo9K9P/Fnt6Xcq1VhZow9MNqoQ5x7OJTYzSStAElaGxaJ7djTef9pJrM3GBXg==";
       };
     };
     "align-text-0.1.4" = {
@@ -5431,15 +6124,6 @@ let
         sha512 = "2Sy0hWhifVb8ycNFJgicL8fDPL2Ct1r62XOVxXnykn36z22MPZwnQlCmB2viQlY/lwfuO67GaQjUZ0rJgdVP7Q==";
       };
     };
-    "almond-0.3.3" = {
-      name = "almond";
-      packageName = "almond";
-      version = "0.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/almond/-/almond-0.3.3.tgz";
-        sha1 = "a0e7c95ac7624d6417b4494b1e68bff693168a20";
-      };
-    };
     "alphanum-sort-1.0.2" = {
       name = "alphanum-sort";
       packageName = "alphanum-sort";
@@ -5458,6 +6142,24 @@ let
         sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5";
       };
     };
+    "analytics-0.5.5" = {
+      name = "analytics";
+      packageName = "analytics";
+      version = "0.5.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/analytics/-/analytics-0.5.5.tgz";
+        sha512 = "43JBzud8n1OoN5TUehHpsp38rDyDteFgS9ZPWLyuj5JGc7JgjLAQNN1BCwyM9js4U7LIRxhEyWXPkifndMsOeA==";
+      };
+    };
+    "analytics-utils-0.2.2" = {
+      name = "analytics-utils";
+      packageName = "analytics-utils";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/analytics-utils/-/analytics-utils-0.2.2.tgz";
+        sha512 = "fdbc+MeoNrkwCAbGD/qgedyvRbPnImmWiInAgZ51KpINmKITpdtWV+6riHVA1YBSrb8IyYlfxn98IeWyN9a0+Q==";
+      };
+    };
     "ansi-0.3.1" = {
       name = "ansi";
       packageName = "ansi";
@@ -5503,15 +6205,6 @@ let
         sha512 = "SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==";
       };
     };
-    "ansi-colors-3.2.3" = {
-      name = "ansi-colors";
-      packageName = "ansi-colors";
-      version = "3.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz";
-        sha512 = "LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==";
-      };
-    };
     "ansi-colors-3.2.4" = {
       name = "ansi-colors";
       packageName = "ansi-colors";
@@ -5530,15 +6223,6 @@ let
         sha512 = "JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==";
       };
     };
-    "ansi-cyan-0.1.1" = {
-      name = "ansi-cyan";
-      packageName = "ansi-cyan";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz";
-        sha1 = "538ae528af8982f28ae30d86f2f17456d2609873";
-      };
-    };
     "ansi-diff-1.1.1" = {
       name = "ansi-diff";
       packageName = "ansi-diff";
@@ -5827,13 +6511,13 @@ let
         sha512 = "sbLEIMQrkV7RkIruqTPXxeCMkAAycv4yzTkBzRgOR1BrR5UB7qZtupqxkersTJSf0HZ3sbaNRrNV80TnnM7cUw==";
       };
     };
-    "apollo-2.28.3" = {
+    "apollo-2.30.3" = {
       name = "apollo";
       packageName = "apollo";
-      version = "2.28.3";
+      version = "2.30.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo/-/apollo-2.28.3.tgz";
-        sha512 = "+X1RqODYOz1VPO0a/6tZpZiFQr7K6z0ZSm7H9oT9PmuZ9TMC27mwOh2N0i1p+OP+6JORKh8lHmjMvle+doZ82A==";
+        url = "https://registry.npmjs.org/apollo/-/apollo-2.30.3.tgz";
+        sha512 = "5X0a2PaMOYUWhk0DIRzzwu18j6WiVWIvgmciQHY++QV+aKngspXWeqAn+mugSkwkC/GVycl/0Jv/OCdnemE7Og==";
       };
     };
     "apollo-cache-1.3.5" = {
@@ -5845,13 +6529,13 @@ let
         sha512 = "1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA==";
       };
     };
-    "apollo-cache-control-0.11.0" = {
+    "apollo-cache-control-0.11.1" = {
       name = "apollo-cache-control";
       packageName = "apollo-cache-control";
-      version = "0.11.0";
+      version = "0.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.0.tgz";
-        sha512 = "dmRnQ9AXGw2SHahVGLzB/p4UW/taFBAJxifxubp8hqY5p9qdlSu4MPRq8zvV2ULMYf50rBtZyC4C+dZLqmHuHQ==";
+        url = "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.1.tgz";
+        sha512 = "6iHa8TkcKt4rx5SKRzDNjUIpCQX+7/FlZwD7vRh9JDnM4VH8SWhpj8fUR3CiEY8Kuc4ChXnOY8bCcMju5KPnIQ==";
       };
     };
     "apollo-cache-inmemory-1.6.6" = {
@@ -5872,76 +6556,76 @@ let
         sha512 = "jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA==";
       };
     };
-    "apollo-codegen-core-0.37.3" = {
+    "apollo-codegen-core-0.37.9" = {
       name = "apollo-codegen-core";
       packageName = "apollo-codegen-core";
-      version = "0.37.3";
+      version = "0.37.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-core/-/apollo-codegen-core-0.37.3.tgz";
-        sha512 = "/DwAhOOFzl57GdBfRGNnqIAcfZAXpsgFIeWYqlu3I/eIucGBCFWo9CEW1TcNwkZzYGAmSE8tURwPgt7dtnhFpg==";
+        url = "https://registry.npmjs.org/apollo-codegen-core/-/apollo-codegen-core-0.37.9.tgz";
+        sha512 = "FfsLh/DZkwH1fb5mNaVonBVk9JdJp3D/Bj1AGthw9ldZmd/3s79YfsYXqOsCNJM1TZt6K/du08NMHSLS86YQBA==";
       };
     };
-    "apollo-codegen-flow-0.35.3" = {
+    "apollo-codegen-flow-0.35.9" = {
       name = "apollo-codegen-flow";
       packageName = "apollo-codegen-flow";
-      version = "0.35.3";
+      version = "0.35.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-flow/-/apollo-codegen-flow-0.35.3.tgz";
-        sha512 = "npDt9PEJiw/ygKUsKxaDGHCnjQUANPlg/F9piIbQ71jwBjNNoNSXrRaRiD5632MfcTvEuBvanElEX3AO2sA1gw==";
+        url = "https://registry.npmjs.org/apollo-codegen-flow/-/apollo-codegen-flow-0.35.9.tgz";
+        sha512 = "+9gJLQfSy04Y4DwPpicGLpKQ1GORo07sxQWKqJWMtVRj4exKMFXieNawDUKErvxqiwDKXcBO9B1q5MF8BcwWlA==";
       };
     };
-    "apollo-codegen-scala-0.36.3" = {
+    "apollo-codegen-scala-0.36.9" = {
       name = "apollo-codegen-scala";
       packageName = "apollo-codegen-scala";
-      version = "0.36.3";
+      version = "0.36.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-scala/-/apollo-codegen-scala-0.36.3.tgz";
-        sha512 = "KOmcP/0RiqSGY03fXdF87IzQ1RSsApbno3/M8KRVF2yhf+4X3GQXQRpXejHMt4DxnnfPBOn7MqwtP/cDMJIiyw==";
+        url = "https://registry.npmjs.org/apollo-codegen-scala/-/apollo-codegen-scala-0.36.9.tgz";
+        sha512 = "t1ew6IXsFL+sNvyy/kS0VWv8t1WjxC46lt1ISt5v5bgDVyGo2g+cH93SSeEFUjtv+hK3TyqSO1fM0SLHAy8oJA==";
       };
     };
-    "apollo-codegen-swift-0.37.3" = {
+    "apollo-codegen-swift-0.37.9" = {
       name = "apollo-codegen-swift";
       packageName = "apollo-codegen-swift";
-      version = "0.37.3";
+      version = "0.37.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-swift/-/apollo-codegen-swift-0.37.3.tgz";
-        sha512 = "0BpwtSE+IP12C7OdoScsOWUgxbcuThgwVRsxybBNugUcmddF5sCdGiRbdm+oKvX1vErsG+XimwmIuZnBPWv6ew==";
+        url = "https://registry.npmjs.org/apollo-codegen-swift/-/apollo-codegen-swift-0.37.9.tgz";
+        sha512 = "4N8s2yni41/jjbfsyoJ4yxbW8XbL6HbUbxRgvbmckGtoOjQS06PYUD56IibQWbsaBs8gEpu5Z/rE/dL2Y6hZug==";
       };
     };
-    "apollo-codegen-typescript-0.37.3" = {
+    "apollo-codegen-typescript-0.37.9" = {
       name = "apollo-codegen-typescript";
       packageName = "apollo-codegen-typescript";
-      version = "0.37.3";
+      version = "0.37.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-typescript/-/apollo-codegen-typescript-0.37.3.tgz";
-        sha512 = "tuf/AQTFcNrngQrT4q4WKRdiuPbglyR1m3L58g/nNevoO0cRmF6koIix4NB5sO05LgF8XJmd2zHvInUI5v33Ig==";
+        url = "https://registry.npmjs.org/apollo-codegen-typescript/-/apollo-codegen-typescript-0.37.9.tgz";
+        sha512 = "DFBa8vUbiVmd/kGG/mjq6umwWxFRYtzllmt2fwHIVCi9z4vDD8Y+6p9acwOxqjqKCVaJshRQCh94zGuW0gY6vA==";
       };
     };
-    "apollo-datasource-0.7.1" = {
+    "apollo-datasource-0.7.2" = {
       name = "apollo-datasource";
       packageName = "apollo-datasource";
-      version = "0.7.1";
+      version = "0.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.1.tgz";
-        sha512 = "h++/jQAY7GA+4TBM+7ezvctFmmGNLrAPf51KsagZj+NkT9qvxp585rdsuatynVbSl59toPK2EuVmc6ilmQHf+g==";
+        url = "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.2.tgz";
+        sha512 = "ibnW+s4BMp4K2AgzLEtvzkjg7dJgCaw9M5b5N0YKNmeRZRnl/I/qBTQae648FsRKgMwTbRQIvBhQ0URUFAqFOw==";
       };
     };
-    "apollo-engine-reporting-2.2.0" = {
+    "apollo-engine-reporting-2.3.0" = {
       name = "apollo-engine-reporting";
       packageName = "apollo-engine-reporting";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-2.2.0.tgz";
-        sha512 = "FmfWTpyEATO392QHcot3PNMrxNhEJ4Kq+QiYY263vN/OBLZQ5zpkFY25iB6gVuiJoz3NUkByhxq5f/XjarJVvA==";
+        url = "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-2.3.0.tgz";
+        sha512 = "SbcPLFuUZcRqDEZ6mSs8uHM9Ftr8yyt2IEu0JA8c3LNBmYXSLM7MHqFe80SVcosYSTBgtMz8mLJO8orhYoSYZw==";
       };
     };
-    "apollo-engine-reporting-protobuf-0.5.1" = {
+    "apollo-engine-reporting-protobuf-0.5.2" = {
       name = "apollo-engine-reporting-protobuf";
       packageName = "apollo-engine-reporting-protobuf";
-      version = "0.5.1";
+      version = "0.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.5.1.tgz";
-        sha512 = "TSfr9iAaInV8dhXkesdcmqsthRkVcJkzznmiM+1Ob/GScK7r6hBYCjVDt2613EHAg9SUzTOltIKlGD+N+GJRUw==";
+        url = "https://registry.npmjs.org/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.5.2.tgz";
+        sha512 = "4wm9FR3B7UvJxcK/69rOiS5CAJPEYKufeRWb257ZLfX7NGFTMqvbc1hu4q8Ch7swB26rTpkzfsftLED9DqH9qg==";
       };
     };
     "apollo-env-0.6.5" = {
@@ -5953,22 +6637,31 @@ let
         sha512 = "jeBUVsGymeTHYWp3me0R2CZRZrFeuSZeICZHCeRflHTfnQtlmbSXdy5E0pOyRM9CU4JfQkKDC98S1YglQj7Bzg==";
       };
     };
-    "apollo-graphql-0.4.5" = {
+    "apollo-graphql-0.5.0" = {
       name = "apollo-graphql";
       packageName = "apollo-graphql";
-      version = "0.4.5";
+      version = "0.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.4.5.tgz";
-        sha512 = "0qa7UOoq7E71kBYE7idi6mNQhHLVdMEDInWk6TNw3KsSWZE2/I68gARP84Mj+paFTO5NYuw1Dht66PVX76Cc2w==";
+        url = "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.5.0.tgz";
+        sha512 = "YSdF/BKPbsnQpxWpmCE53pBJX44aaoif31Y22I/qKpB6ZSGzYijV5YBoCL5Q15H2oA/v/02Oazh9lbp4ek3eig==";
       };
     };
-    "apollo-language-server-1.22.3" = {
+    "apollo-graphql-0.6.0" = {
+      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.23.4" = {
       name = "apollo-language-server";
       packageName = "apollo-language-server";
-      version = "1.22.3";
+      version = "1.23.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-language-server/-/apollo-language-server-1.22.3.tgz";
-        sha512 = "RurKlBUNE1RrvY4m93b5WS/DXInUEI47MlzuvholRqZSQovt2rQi81R0RvmS/l3d6y5TBfxbPFpT5RyHbdAntw==";
+        url = "https://registry.npmjs.org/apollo-language-server/-/apollo-language-server-1.23.4.tgz";
+        sha512 = "PaA25SsAQ30iXfR0noESlNYDNb4RH5S7tjVxBTj53VRArp/gQDWJM6eDvFbH5RH3vXXpfHRVna6YfymDfTPdqg==";
       };
     };
     "apollo-link-1.2.14" = {
@@ -6043,76 +6736,76 @@ let
         sha512 = "mjSFPlQxmoLArpHBeUb2Xj+2HDYeTaJqFGOqQ+I8NVJxgL9lJe84PDWcPah/yMLv3rB7QgBDSuZ0xoRFBPlySw==";
       };
     };
-    "apollo-server-caching-0.5.1" = {
+    "apollo-server-caching-0.5.2" = {
       name = "apollo-server-caching";
       packageName = "apollo-server-caching";
-      version = "0.5.1";
+      version = "0.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.1.tgz";
-        sha512 = "L7LHZ3k9Ao5OSf2WStvQhxdsNVplRQi7kCAPfqf9Z3GBEnQ2uaL0EgO0hSmtVHfXTbk5CTRziMT1Pe87bXrFIw==";
+        url = "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.2.tgz";
+        sha512 = "HUcP3TlgRsuGgeTOn8QMbkdx0hLPXyEJehZIPrcof0ATz7j7aTPA4at7gaiFHCo8gk07DaWYGB3PFgjboXRcWQ==";
       };
     };
-    "apollo-server-core-2.15.0" = {
+    "apollo-server-core-2.17.0" = {
       name = "apollo-server-core";
       packageName = "apollo-server-core";
-      version = "2.15.0";
+      version = "2.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.15.0.tgz";
-        sha512 = "PwNm/G5IXReev7E0ZaRAekQ7pN9BTuXH8c2QVgfMGMno3XiN5Dj+1DXYQthpwNJch0y5zhhLcb/JbClijgSEsA==";
+        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.17.0.tgz";
+        sha512 = "rjAkBbKSrGLDfg/g5bohnPlQahmkAxgEBuMDVsoF3aa+RaEPXPUMYrLbOxntl0LWeLbPiMa/IyFF43dvlGqV7w==";
       };
     };
-    "apollo-server-env-2.4.4" = {
+    "apollo-server-env-2.4.5" = {
       name = "apollo-server-env";
       packageName = "apollo-server-env";
-      version = "2.4.4";
+      version = "2.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.4.tgz";
-        sha512 = "c2oddDS3lwAl6QNCIKCLEzt/dF9M3/tjjYRVdxOVN20TidybI7rAbnT4QOzf4tORnGXtiznEAvr/Kc9ahhKADg==";
+        url = "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.5.tgz";
+        sha512 = "nfNhmGPzbq3xCEWT8eRpoHXIPNcNy3QcEoBlzVMjeglrBGryLG2LXwBSPnVmTRRrzUYugX0ULBtgE3rBFNoUgA==";
       };
     };
-    "apollo-server-errors-2.4.1" = {
+    "apollo-server-errors-2.4.2" = {
       name = "apollo-server-errors";
       packageName = "apollo-server-errors";
-      version = "2.4.1";
+      version = "2.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.4.1.tgz";
-        sha512 = "7oEd6pUxqyWYUbQ9TA8tM0NU/3aGtXSEibo6+txUkuHe7QaxfZ2wHRp+pfT1LC1K3RXYjKj61/C2xEO19s3Kdg==";
+        url = "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.4.2.tgz";
+        sha512 = "FeGxW3Batn6sUtX3OVVUm7o56EgjxDlmgpTLNyWcLb0j6P8mw9oLNyAm3B+deHA4KNdNHO5BmHS2g1SJYjqPCQ==";
       };
     };
-    "apollo-server-express-2.15.0" = {
+    "apollo-server-express-2.17.0" = {
       name = "apollo-server-express";
       packageName = "apollo-server-express";
-      version = "2.15.0";
+      version = "2.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.15.0.tgz";
-        sha512 = "ECptVIrOVW2cmMWvqtpkZfyZrQL8yTSgbVvP4M8qcPV/3XxDJa6444zy7vxqN7lyYl8IJAsg/IwC0vodoXe//A==";
+        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.17.0.tgz";
+        sha512 = "PonpWOuM1DH3Cz0bu56Tusr3GXOnectC6AD/gy2GXK0v84E7tKTuxEY3SgsgxhvfvvhfwJbXTyIogL/wezqnCw==";
       };
     };
-    "apollo-server-plugin-base-0.9.0" = {
+    "apollo-server-plugin-base-0.9.1" = {
       name = "apollo-server-plugin-base";
       packageName = "apollo-server-plugin-base";
-      version = "0.9.0";
+      version = "0.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.9.0.tgz";
-        sha512 = "LWcPrsy2+xqwlNseh/QaGa/MPNopS8c4qGgh0g0cAn0lZBRrJ9Yab7dq+iQ6vdUBwIhUWYN6s9dwUWCZw2SL8g==";
+        url = "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.9.1.tgz";
+        sha512 = "kvrX4Z3FdpjrZdHkyl5iY2A1Wvp4b6KQp00DeZqss7GyyKNUBKr80/7RQgBLEw7EWM7WB19j459xM/TjvW0FKQ==";
       };
     };
-    "apollo-server-types-0.5.0" = {
+    "apollo-server-types-0.5.1" = {
       name = "apollo-server-types";
       packageName = "apollo-server-types";
-      version = "0.5.0";
+      version = "0.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.5.0.tgz";
-        sha512 = "zhtsqqqfdeoJQAfc41Sy6WnnBVxKNgZ34BKXf/Q+kXmw7rbZ/B5SG3SJMvj1iFsbzZxILmWdUsE9aD20lEr0bg==";
+        url = "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.5.1.tgz";
+        sha512 = "my2cPw+DAb2qVnIuBcsRKGyS28uIc2vjFxa1NpRoJZe9gK0BWUBk7wzXnIzWy3HZ5Er11e/40MPTUesNfMYNVA==";
       };
     };
-    "apollo-tracing-0.11.0" = {
+    "apollo-tracing-0.11.2" = {
       name = "apollo-tracing";
       packageName = "apollo-tracing";
-      version = "0.11.0";
+      version = "0.11.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.11.0.tgz";
-        sha512 = "I9IFb/8lkBW8ZwOAi4LEojfT7dMfUSkpnV8LHQI8Rcj0HtzL9HObQ3woBmzyGHdGHLFuD/6/VHyFD67SesSrJg==";
+        url = "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.11.2.tgz";
+        sha512 = "QjmRd2ozGD+PfmF6U9w/w6jrclYSBNczN6Bzppr8qA5somEGl5pqdprIZYL28H0IapZiutA3x6p6ZVF/cVX8wA==";
       };
     };
     "apollo-upload-client-11.0.0" = {
@@ -6124,15 +6817,6 @@ let
         sha512 = "JChTrBi1VSF8u6OPrkWUApJlyUvzwhw98kqRB3fSi7/CU6z0OUD42Mee9s5h8mfjKEfOanK6GNZhF4t2tIPXSw==";
       };
     };
-    "apollo-upload-client-13.0.0" = {
-      name = "apollo-upload-client";
-      packageName = "apollo-upload-client";
-      version = "13.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-upload-client/-/apollo-upload-client-13.0.0.tgz";
-        sha512 = "lJ9/bk1BH1lD15WhWRha2J3+LrXrPIX5LP5EwiOUHv8PCORp4EUrcujrA3rI5hZeZygrTX8bshcuMdpqpSrvtA==";
-      };
-    };
     "apollo-utilities-1.3.4" = {
       name = "apollo-utilities";
       packageName = "apollo-utilities";
@@ -6259,13 +6943,13 @@ let
         sha512 = "5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==";
       };
     };
-    "archiver-4.0.1" = {
+    "archiver-4.0.2" = {
       name = "archiver";
       packageName = "archiver";
-      version = "4.0.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/archiver/-/archiver-4.0.1.tgz";
-        sha512 = "/YV1pU4Nhpf/rJArM23W6GTUjT0l++VbjykrCRua1TSXrn+yM8Qs7XvtwSiRse0iCe49EPNf7ktXnPsWuSb91Q==";
+        url = "https://registry.npmjs.org/archiver/-/archiver-4.0.2.tgz";
+        sha512 = "B9IZjlGwaxF33UN4oPbfBkyA4V1SxNLeIhR1qY8sRXSsbdUkEHrrOvwlYFPx+8uQeCe9M+FG6KgO+imDmQ79CQ==";
       };
     };
     "archiver-utils-1.3.0" = {
@@ -6349,13 +7033,13 @@ let
         sha1 = "2b12247b933001971addcbfe4e67d20fd395bbf4";
       };
     };
-    "arr-diff-1.1.0" = {
-      name = "arr-diff";
-      packageName = "arr-diff";
-      version = "1.1.0";
+    "aribts-1.3.5" = {
+      name = "aribts";
+      packageName = "aribts";
+      version = "1.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz";
-        sha1 = "687c32758163588fef7de7b36fabe495eb1a399a";
+        url = "https://registry.npmjs.org/aribts/-/aribts-1.3.5.tgz";
+        sha512 = "fvDR4iYpZkbMqMbTfKynPGfpXDhFTxzZWSS7C3c70xQ8ElmFkjwVrg/NLcEA+R3s4Jz6mVrz/1vOLEAI+ycrSQ==";
       };
     };
     "arr-diff-2.0.0" = {
@@ -6403,15 +7087,6 @@ let
         sha1 = "3a77345ffc1cf35e2a91825601f9e58f2e24cac4";
       };
     };
-    "arr-union-2.1.0" = {
-      name = "arr-union";
-      packageName = "arr-union";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz";
-        sha1 = "20f9eab5ec70f5c7d215b1077b1c39161d292c7d";
-      };
-    };
     "arr-union-3.1.0" = {
       name = "arr-union";
       packageName = "arr-union";
@@ -6520,6 +7195,15 @@ let
         sha1 = "df010aa1287e164bbda6f9723b0a96a1ec4187a1";
       };
     };
+    "array-flat-polyfill-1.0.1" = {
+      name = "array-flat-polyfill";
+      packageName = "array-flat-polyfill";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-flat-polyfill/-/array-flat-polyfill-1.0.1.tgz";
+        sha512 = "hfJmKupmQN0lwi0xG6FQ5U8Rd97RnIERplymOv/qpq8AoNKPPAnxJadjFA23FNWm88wykh9HmpLJUUwUtNU/iw==";
+      };
+    };
     "array-flatten-1.1.1" = {
       name = "array-flatten";
       packageName = "array-flatten";
@@ -6646,15 +7330,6 @@ let
         sha1 = "7ea4882a356b4bca5f545e0b6e52eaf6d971557a";
       };
     };
-    "array-slice-0.2.3" = {
-      name = "array-slice";
-      packageName = "array-slice";
-      version = "0.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz";
-        sha1 = "dd3cfb80ed7973a75117cdac69b0b99ec86186f5";
-      };
-    };
     "array-slice-1.1.0" = {
       name = "array-slice";
       packageName = "array-slice";
@@ -6808,6 +7483,15 @@ let
         sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
       };
     };
+    "ascii-table-0.0.9" = {
+      name = "ascii-table";
+      packageName = "ascii-table";
+      version = "0.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ascii-table/-/ascii-table-0.0.9.tgz";
+        sha1 = "06a6604d6a55d4bf41a9a47d9872d7a78da31e73";
+      };
+    };
     "asciidoctor.js-1.5.9" = {
       name = "asciidoctor.js";
       packageName = "asciidoctor.js";
@@ -6853,15 +7537,6 @@ let
         sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
       };
     };
-    "asn1.js-4.10.1" = {
-      name = "asn1.js";
-      packageName = "asn1.js";
-      version = "4.10.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz";
-        sha512 = "p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==";
-      };
-    };
     "asn1.js-5.4.1" = {
       name = "asn1.js";
       packageName = "asn1.js";
@@ -6943,6 +7618,15 @@ let
         sha512 = "zXSoVaMrf2R+r+ISid5/9a8SXm1LLdkhHzh6pSRhj9jklzruOOl1hva1YmFT33wAstg/f9ZndJAlq1BSrFLSGA==";
       };
     };
+    "ast-types-0.12.1" = {
+      name = "ast-types";
+      packageName = "ast-types";
+      version = "0.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ast-types/-/ast-types-0.12.1.tgz";
+        sha512 = "H2izJAyT2xwew4TxShpmxe6f9R5hHgJQy1QloLiUC2yrJMtyraBWNJL7903rpeCY9keNUipORR/zIUC2XcYKng==";
+      };
+    };
     "ast-types-0.13.3" = {
       name = "ast-types";
       packageName = "ast-types";
@@ -6952,6 +7636,15 @@ let
         sha512 = "XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==";
       };
     };
+    "ast-types-0.14.1" = {
+      name = "ast-types";
+      packageName = "ast-types";
+      version = "0.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ast-types/-/ast-types-0.14.1.tgz";
+        sha512 = "pfSiukbt23P1qMhNnsozLzhMLBs7EEeXqPyvPmnuZM+RMfwfqwDbSVKYflgGuVI7/VehR4oMks0igzdNAg4VeQ==";
+      };
+    };
     "ast-types-0.9.6" = {
       name = "ast-types";
       packageName = "ast-types";
@@ -7150,15 +7843,6 @@ let
         sha1 = "125dd09de95d3ea30a378adbed021092179b03c9";
       };
     };
-    "async-write-2.1.0" = {
-      name = "async-write";
-      packageName = "async-write";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/async-write/-/async-write-2.1.0.tgz";
-        sha1 = "1e762817d849ce44bfac07925a42036787061b15";
-      };
-    };
     "asynckit-0.4.0" = {
       name = "asynckit";
       packageName = "asynckit";
@@ -7222,13 +7906,13 @@ let
         sha512 = "TG+5YFiaKQ6CZiSQsosGMJ/IJzwMZ4V/rSdEXlD6+DwKyv8OyeUcprq34kp4yuS6bfQYXhxBC2Vm8PWo+iKBGQ==";
       };
     };
-    "atomic-file-2.0.1" = {
+    "atomic-file-2.1.1" = {
       name = "atomic-file";
       packageName = "atomic-file";
-      version = "2.0.1";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/atomic-file/-/atomic-file-2.0.1.tgz";
-        sha512 = "9JCWojeLDF8UhEv2UJlLlPGsLEs+EBnfB+kOhsvmFI2QilVrnIsAwr7YnF8lLEVuxB+HxFhvGK+ax0Y8Eh/BKA==";
+        url = "https://registry.npmjs.org/atomic-file/-/atomic-file-2.1.1.tgz";
+        sha512 = "Eh6pW+fRC2/1RxPq3hO8+PkZKv+wujzKky2MP/n69eC8yMkbNFfuEb/riZHqf13M7gr6Hvglpk/kISgBSBb6bQ==";
       };
     };
     "atomic-sleep-1.0.0" = {
@@ -7240,6 +7924,15 @@ let
         sha512 = "kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==";
       };
     };
+    "atomically-1.3.2" = {
+      name = "atomically";
+      packageName = "atomically";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/atomically/-/atomically-1.3.2.tgz";
+        sha512 = "MAiqx5ir1nOoMeG2vLXJnj4oFROJYB1hMqa2aAo6GQVIkPdkIcrq9W9SR0OaRtvEowO7Y2bsXqKFuDMTO4iOAQ==";
+      };
+    };
     "attach-ware-1.1.1" = {
       name = "attach-ware";
       packageName = "attach-ware";
@@ -7276,13 +7969,13 @@ let
         sha512 = "Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==";
       };
     };
-    "autoprefixer-9.8.4" = {
+    "autoprefixer-9.8.6" = {
       name = "autoprefixer";
       packageName = "autoprefixer";
-      version = "9.8.4";
+      version = "9.8.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.4.tgz";
-        sha512 = "84aYfXlpUe45lvmS+HoAWKCkirI/sw4JK0/bTeeqgHYco3dcsOn0NqdejISjptsYwNji/21dnkDri9PsYKk89A==";
+        url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz";
+        sha512 = "XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==";
       };
     };
     "available-typed-arrays-1.0.2" = {
@@ -7321,13 +8014,13 @@ let
         sha1 = "00f35b2d27ac91b1f0d3ef2084c98cf1d1f0adc3";
       };
     };
-    "aws-sdk-2.706.0" = {
+    "aws-sdk-2.745.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.706.0";
+      version = "2.745.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.706.0.tgz";
-        sha512 = "7GT+yrB5Wb/zOReRdv/Pzkb2Qt+hz6B/8FGMVaoysX3NryHvQUdz7EQWi5yhg9CxOjKxdw5lFwYSs69YlSp1KA==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.745.0.tgz";
+        sha512 = "YTmDvxb0foJC/iZOSsn+MdO4g9nPnlyRdhIpFqvPUkrFzWn5rP4mPtDJan2Eu0j4R02pdwfDhmvr82ckH2w7OQ==";
       };
     };
     "aws-sign2-0.6.0" = {
@@ -7348,13 +8041,13 @@ let
         sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
       };
     };
-    "aws4-1.10.0" = {
+    "aws4-1.10.1" = {
       name = "aws4";
       packageName = "aws4";
-      version = "1.10.0";
+      version = "1.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz";
-        sha512 = "3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==";
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz";
+        sha512 = "zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==";
       };
     };
     "axios-0.18.1" = {
@@ -7618,6 +8311,15 @@ let
         sha1 = "1bc6f15b87f7ab1085d42b330b717657a2156500";
       };
     };
+    "babel-plugin-styled-components-1.11.1" = {
+      name = "babel-plugin-styled-components";
+      packageName = "babel-plugin-styled-components";
+      version = "1.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.11.1.tgz";
+        sha512 = "YwrInHyKUk1PU3avIRdiLyCpM++18Rs1NgyMXEAQC33rIXs/vro0A+stf4sT0Gf22Got+xRWB8Cm0tw+qkRzBA==";
+      };
+    };
     "babel-plugin-syntax-flow-6.18.0" = {
       name = "babel-plugin-syntax-flow";
       packageName = "babel-plugin-syntax-flow";
@@ -7627,6 +8329,15 @@ let
         sha1 = "4c3ab20a2af26aa20cd25995c398c4eb70310c8d";
       };
     };
+    "babel-plugin-syntax-jsx-6.18.0" = {
+      name = "babel-plugin-syntax-jsx";
+      packageName = "babel-plugin-syntax-jsx";
+      version = "6.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz";
+        sha1 = "0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946";
+      };
+    };
     "babel-plugin-transform-flow-strip-types-6.22.0" = {
       name = "babel-plugin-transform-flow-strip-types";
       packageName = "babel-plugin-transform-flow-strip-types";
@@ -7735,6 +8446,15 @@ let
         sha1 = "be241ca81404030678b748717322b89d0c8fe280";
       };
     };
+    "babel-polyfill-6.23.0" = {
+      name = "babel-polyfill";
+      packageName = "babel-polyfill";
+      version = "6.23.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz";
+        sha1 = "8364ca62df8eafb830499f699177466c3b03499d";
+      };
+    };
     "babel-preset-current-node-syntax-0.1.3" = {
       name = "babel-preset-current-node-syntax";
       packageName = "babel-preset-current-node-syntax";
@@ -8032,6 +8752,15 @@ let
         sha512 = "taA5bCTfXe7FUjKroKky9EXpdhkVvhE5owfxfLYodbrAR1Ul3juLmIQmIQBK4L9a5BuUcE6cqmwT+Da20lF9tg==";
       };
     };
+    "bcrypt-3.0.8" = {
+      name = "bcrypt";
+      packageName = "bcrypt";
+      version = "3.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bcrypt/-/bcrypt-3.0.8.tgz";
+        sha512 = "jKV6RvLhI36TQnPDvUFqBEnGX9c8dRRygKxCZu7E+MgLfKZbmmXL8a7/SFFOyHoPNX9nV81cKRC5tbQfvEQtpw==";
+      };
+    };
     "bcrypt-nodejs-0.0.3" = {
       name = "bcrypt-nodejs";
       packageName = "bcrypt-nodejs";
@@ -8131,15 +8860,6 @@ let
         sha1 = "40866b9e1b9e0b55b481894311e68faffaebc522";
       };
     };
-    "bezier-js-2.6.1" = {
-      name = "bezier-js";
-      packageName = "bezier-js";
-      version = "2.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bezier-js/-/bezier-js-2.6.1.tgz";
-        sha512 = "jelZM33eNzcZ9snJ/5HqJLw3IzXvA8RFcBjkdOB8SDYyOvW8Y2tTosojAiBTnD1MhbHoWUYNbxUXxBl61TxbRg==";
-      };
-    };
     "biased-opener-0.2.8" = {
       name = "biased-opener";
       packageName = "biased-opener";
@@ -8311,13 +9031,13 @@ let
         sha512 = "fvb6M58Ceiv/S94nu6zeaiMoJvUYOeIqRbgaClm+kJTzCAqJPtAR/31pXNYB5iEReOoKqQB5zY33gY0W6ZRWQQ==";
       };
     };
-    "bittorrent-peerid-1.3.2" = {
+    "bittorrent-peerid-1.3.3" = {
       name = "bittorrent-peerid";
       packageName = "bittorrent-peerid";
-      version = "1.3.2";
+      version = "1.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bittorrent-peerid/-/bittorrent-peerid-1.3.2.tgz";
-        sha512 = "3xPhNfklf4xzxFVw9Y7W5dnGNhubVF0r8BK3imIsB6E3aDA4d6WhsceK1Yusos0TiiB9QZrdCsVXVqs26sFMxw==";
+        url = "https://registry.npmjs.org/bittorrent-peerid/-/bittorrent-peerid-1.3.3.tgz";
+        sha512 = "tSh9HdQgwyEAfo1jzoGEis6o/zs4CcdRTchG93XVl5jct+DCAN90M5MVUV76k2vJ9Xg3GAzLB5NLsY/vnVTh6w==";
       };
     };
     "bittorrent-protocol-3.1.1" = {
@@ -8347,31 +9067,22 @@ let
         sha512 = "5LhLQeGxdVFumJTbveJS16Rc+Vzh/nbC6o80UMj6ZRvSkiVkk+4L782OMYI0VG1JTfUxiRFP4f+CZBFyuclLBg==";
       };
     };
-    "bl-0.8.2" = {
+    "bl-1.2.3" = {
       name = "bl";
       packageName = "bl";
-      version = "0.8.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz";
-        sha1 = "c9b6bca08d1bc2ea00fc8afb4f1a5fd1e1c66e4e";
-      };
-    };
-    "bl-1.2.2" = {
-      name = "bl";
-      packageName = "bl";
-      version = "1.2.2";
+      version = "1.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz";
-        sha512 = "e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==";
+        url = "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz";
+        sha512 = "pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==";
       };
     };
-    "bl-4.0.2" = {
+    "bl-4.0.3" = {
       name = "bl";
       packageName = "bl";
-      version = "4.0.2";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz";
-        sha512 = "j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==";
+        url = "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz";
+        sha512 = "fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==";
       };
     };
     "blake2b-2.1.3" = {
@@ -8509,13 +9220,13 @@ let
         sha512 = "XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==";
       };
     };
-    "blueimp-md5-2.14.0" = {
+    "blueimp-md5-2.17.0" = {
       name = "blueimp-md5";
       packageName = "blueimp-md5";
-      version = "2.14.0";
+      version = "2.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.14.0.tgz";
-        sha512 = "fhX8JsIgugJ39g9MUJ4Y0S+WYd/1HATNVzW4nEVknP5uJU1mA7LZCV3OuVH9OvxpuYQXu6ttst0IYIlAyVfBQg==";
+        url = "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.17.0.tgz";
+        sha512 = "x5PKJHY5rHQYaADj6NwPUR2QRCUVSggPzrUKkeENpj871o9l9IefJbO2jkT5UvYykeOK9dx0VmkIo6dZ+vThYw==";
       };
     };
     "bn.js-4.11.9" = {
@@ -8527,13 +9238,13 @@ let
         sha512 = "E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==";
       };
     };
-    "bn.js-5.1.2" = {
+    "bn.js-5.1.3" = {
       name = "bn.js";
       packageName = "bn.js";
-      version = "5.1.2";
+      version = "5.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz";
-        sha512 = "40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==";
+        url = "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz";
+        sha512 = "GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==";
       };
     };
     "bncode-0.2.3" = {
@@ -8617,6 +9328,15 @@ let
         sha1 = "39c8918ceff5799f83f9492a848f625add0c766f";
       };
     };
+    "bootstrap-3.4.1" = {
+      name = "bootstrap";
+      packageName = "bootstrap";
+      version = "3.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz";
+        sha512 = "yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==";
+      };
+    };
     "bootstrap-vue-helper-json-1.1.1" = {
       name = "bootstrap-vue-helper-json";
       packageName = "bootstrap-vue-helper-json";
@@ -8725,6 +9445,15 @@ let
         sha1 = "d60d5dcc20cba6dc7e1f299b35d3e1f95dafbae6";
       };
     };
+    "bplist-parser-0.2.0" = {
+      name = "bplist-parser";
+      packageName = "bplist-parser";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz";
+        sha512 = "z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==";
+      };
+    };
     "brace-expansion-1.1.11" = {
       name = "brace-expansion";
       packageName = "brace-expansion";
@@ -8833,13 +9562,13 @@ let
         sha512 = "9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==";
       };
     };
-    "browser-resolve-1.11.3" = {
+    "browser-resolve-2.0.0" = {
       name = "browser-resolve";
       packageName = "browser-resolve";
-      version = "1.11.3";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz";
-        sha512 = "exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==";
+        url = "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz";
+        sha512 = "7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==";
       };
     };
     "browser-stdout-1.3.1" = {
@@ -8851,13 +9580,13 @@ let
         sha512 = "qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==";
       };
     };
-    "browserify-16.5.1" = {
+    "browserify-16.5.2" = {
       name = "browserify";
       packageName = "browserify";
-      version = "16.5.1";
+      version = "16.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserify/-/browserify-16.5.1.tgz";
-        sha512 = "EQX0h59Pp+0GtSRb5rL6OTfrttlzv+uyaUVlK6GX3w11SQ0jKPKyjC/54RhPR2ib2KmfcELM06e8FxcI5XNU2A==";
+        url = "https://registry.npmjs.org/browserify/-/browserify-16.5.2.tgz";
+        sha512 = "TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g==";
       };
     };
     "browserify-aes-1.2.0" = {
@@ -8923,13 +9652,13 @@ let
         sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
       };
     };
-    "browserify-sign-4.2.0" = {
+    "browserify-sign-4.2.1" = {
       name = "browserify-sign";
       packageName = "browserify-sign";
-      version = "4.2.0";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz";
-        sha512 = "hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==";
+        url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz";
+        sha512 = "/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==";
       };
     };
     "browserify-zlib-0.1.4" = {
@@ -8959,13 +9688,13 @@ let
         sha512 = "yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==";
       };
     };
-    "browserslist-4.12.2" = {
+    "browserslist-4.14.0" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.12.2";
+      version = "4.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.12.2.tgz";
-        sha512 = "MfZaeYqR8StRZdstAK9hCKDd2StvePCYp5rHzQCPicUjfFliDgmuaBNPHYUTpAywBN8+Wc/d7NYVFkO0aqaBUw==";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.14.0.tgz";
+        sha512 = "pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ==";
       };
     };
     "bser-2.1.1" = {
@@ -9184,6 +9913,15 @@ let
         sha512 = "HaJnVuslRF4g2kSDeyl++AaVizoitCpL9PglzCYwy0uHHyvWerfvEb8jWmYbF1z4kiVFolGomnxSGl+GUQp2jg==";
       };
     };
+    "bufferstreams-2.0.1" = {
+      name = "bufferstreams";
+      packageName = "bufferstreams";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bufferstreams/-/bufferstreams-2.0.1.tgz";
+        sha512 = "ZswyIoBfFb3cVDsnZLLj2IDJ/0ppYdil/v2EGlZXvoefO689FokEmFEldhN5dV7R2QBxFneqTJOMIpfqhj+n0g==";
+      };
+    };
     "bufferutil-1.3.0" = {
       name = "bufferutil";
       packageName = "bufferutil";
@@ -9283,13 +10021,13 @@ let
         sha1 = "f150f0f6748abdd72aeae84f04403be2ef113797";
       };
     };
-    "bunyan-1.8.13" = {
+    "bunyan-1.8.14" = {
       name = "bunyan";
       packageName = "bunyan";
-      version = "1.8.13";
+      version = "1.8.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bunyan/-/bunyan-1.8.13.tgz";
-        sha512 = "4zO4iMxZeCpf+95ERsr83nwQr11o1KY2FLhX4wZ6kPXieIVYL3k9eX+N6vbHhFEK5h5O/qCQpfXt7N9VBAIvCA==";
+        url = "https://registry.npmjs.org/bunyan/-/bunyan-1.8.14.tgz";
+        sha512 = "LlahJUxXzZLuw/hetUQJmRgZ1LF6+cr5TPpRj6jf327AsiIq2jhYEH4oqUUkVKTor+9w2BT3oxVwhzE5lw9tcg==";
       };
     };
     "bunyan-syslog-udp-0.2.0" = {
@@ -9400,24 +10138,6 @@ let
         sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
       };
     };
-    "bytewise-1.1.0" = {
-      name = "bytewise";
-      packageName = "bytewise";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz";
-        sha1 = "1d13cbff717ae7158094aa881b35d081b387253e";
-      };
-    };
-    "bytewise-core-1.2.3" = {
-      name = "bytewise-core";
-      packageName = "bytewise-core";
-      version = "1.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz";
-        sha1 = "3fb410c7e91558eb1ab22a82834577aa6bd61d42";
-      };
-    };
     "cacache-12.0.4" = {
       name = "cacache";
       packageName = "cacache";
@@ -9427,13 +10147,13 @@ let
         sha512 = "a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==";
       };
     };
-    "cacache-15.0.4" = {
+    "cacache-15.0.5" = {
       name = "cacache";
       packageName = "cacache";
-      version = "15.0.4";
+      version = "15.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cacache/-/cacache-15.0.4.tgz";
-        sha512 = "YlnKQqTbD/6iyoJvEY3KJftjrdBYroCbxxYXzhOzsFLWlp6KX4BOlEf4mTx0cMUfVaTS3ENL2QtDWeRYoGLkkw==";
+        url = "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz";
+        sha512 = "lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==";
       };
     };
     "cache-base-1.0.1" = {
@@ -9454,13 +10174,13 @@ let
         sha512 = "7YKEapH+2Uikde8hySyfobXBqPKULDyHNl/lhKm7cKf/GJFdG/tU/WpLrOg2y9aUrQrWUilYqawFIiGJPS6gDA==";
       };
     };
-    "cacheable-lookup-2.0.1" = {
+    "cacheable-lookup-5.0.3" = {
       name = "cacheable-lookup";
       packageName = "cacheable-lookup";
-      version = "2.0.1";
+      version = "5.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz";
-        sha512 = "EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==";
+        url = "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz";
+        sha512 = "W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w==";
       };
     };
     "cacheable-request-2.1.4" = {
@@ -9697,6 +10417,15 @@ let
         sha512 = "YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==";
       };
     };
+    "camelize-1.0.0" = {
+      name = "camelize";
+      packageName = "camelize";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz";
+        sha1 = "164a5483e630fa4321e5af07020e531831b2609b";
+      };
+    };
     "caniuse-api-3.0.0" = {
       name = "caniuse-api";
       packageName = "caniuse-api";
@@ -9706,13 +10435,22 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001089" = {
+    "caniuse-lite-1.0.30001123" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001089";
+      version = "1.0.30001123";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001123.tgz";
+        sha512 = "03dJDoa4YC4332jq0rqwiM+Hw6tA5RJtrnZKvOQy7ASoIUv8CinkcmGhYpCvCjedvkBQrrKnkcELxrUSW/XwNQ==";
+      };
+    };
+    "capital-case-1.0.3" = {
+      name = "capital-case";
+      packageName = "capital-case";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001089.tgz";
-        sha512 = "RnL5dbdqAfQ5oxHjFUU8uiyJMvTKoXfRn0Asp2R5cpRsyiY5+kLl0fcocQijb0V9XAWFEG/2A/vSswRmpYarmA==";
+        url = "https://registry.npmjs.org/capital-case/-/capital-case-1.0.3.tgz";
+        sha512 = "OlUSJpUr7SY0uZFOxcwnDOU7/MpHlKTZx2mqnDYQFrDudXLFm0JJ9wr/l4csB+rh2Ug0OPuoSO53PqiZBqno9A==";
       };
     };
     "capture-exit-2.0.0" = {
@@ -9742,15 +10480,6 @@ let
         sha1 = "7cc1055d822d212954d07b085dea251cc7bc5505";
       };
     };
-    "caryll-shapeops-0.3.1" = {
-      name = "caryll-shapeops";
-      packageName = "caryll-shapeops";
-      version = "0.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/caryll-shapeops/-/caryll-shapeops-0.3.1.tgz";
-        sha512 = "3TdH6DZGL08S6qEvCZLNaOHyFvmzQts8m+TyYEvc6/PiI+XgX5mIag1/CKczIM8e2QtDr8JKW8foo4VNOM8/Og==";
-      };
-    };
     "caseless-0.11.0" = {
       name = "caseless";
       packageName = "caseless";
@@ -9841,6 +10570,15 @@ let
         sha512 = "azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==";
       };
     };
+    "chainsaw-0.0.9" = {
+      name = "chainsaw";
+      packageName = "chainsaw";
+      version = "0.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chainsaw/-/chainsaw-0.0.9.tgz";
+        sha1 = "11a05102d1c4c785b6d0415d336d5a3a1612913e";
+      };
+    };
     "chalk-0.4.0" = {
       name = "chalk";
       packageName = "chalk";
@@ -9931,13 +10669,13 @@ let
         sha512 = "g9YLQVHVZS/3F+zIicfB58vjcxopvYQRp7xHzvyDFDhXH1aRZI/JhwSAO0X5qYiQluoGnaNAU6wByD2KTxJN1A==";
       };
     };
-    "change-case-3.1.0" = {
+    "change-case-4.1.1" = {
       name = "change-case";
       packageName = "change-case";
-      version = "3.1.0";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz";
-        sha512 = "2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==";
+        url = "https://registry.npmjs.org/change-case/-/change-case-4.1.1.tgz";
+        sha512 = "qRlUWn/hXnX1R1LBDF/RelJLiqNjKjUqlmuBVSEIyye8kq49CXqkZWKmi8XeUAdDXWFOcGLUMZ+aHn3Q5lzUXw==";
       };
     };
     "character-entities-1.2.4" = {
@@ -10093,6 +10831,15 @@ let
         sha512 = "0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==";
       };
     };
+    "child-process-1.0.2" = {
+      name = "child-process";
+      packageName = "child-process";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/child-process/-/child-process-1.0.2.tgz";
+        sha1 = "98974dc7ed1ee4c6229f8e305fa7313a6885a7f2";
+      };
+    };
     "child-process-ext-2.1.1" = {
       name = "child-process-ext";
       packageName = "child-process-ext";
@@ -10111,13 +10858,13 @@ let
         sha1 = "4730a11ef610fad450b8f223c79d31d7bdad8074";
       };
     };
-    "chloride-2.2.14" = {
+    "chloride-2.3.0" = {
       name = "chloride";
       packageName = "chloride";
-      version = "2.2.14";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chloride/-/chloride-2.2.14.tgz";
-        sha512 = "Jp3kpDIO4MlcJCFi4jER9P7k3sAVvIwbe4QJtM9Nkp43e/GQ/98HU1wJS6NdU6cbzfGrKWmMdRB+VNRrCynzfw==";
+        url = "https://registry.npmjs.org/chloride/-/chloride-2.3.0.tgz";
+        sha512 = "9jcavUx9ZNW9hxkG24rS9QddHpOqLAZqcb5SRbABRa8NKcplBKKcZfNM5LMa3DQ/VfXBQzcLDjgSo3uHA1ibZg==";
       };
     };
     "chloride-test-1.2.4" = {
@@ -10165,31 +10912,13 @@ let
         sha512 = "c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA==";
       };
     };
-    "chokidar-3.3.0" = {
-      name = "chokidar";
-      packageName = "chokidar";
-      version = "3.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz";
-        sha512 = "dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==";
-      };
-    };
-    "chokidar-3.3.1" = {
-      name = "chokidar";
-      packageName = "chokidar";
-      version = "3.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz";
-        sha512 = "4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==";
-      };
-    };
-    "chokidar-3.4.0" = {
+    "chokidar-3.4.2" = {
       name = "chokidar";
       packageName = "chokidar";
-      version = "3.4.0";
+      version = "3.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz";
-        sha512 = "aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==";
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz";
+        sha512 = "IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==";
       };
     };
     "chownr-0.0.2" = {
@@ -10246,13 +10975,13 @@ let
         sha512 = "HqsYJgIc8ljJJOqOzLphjAs79EUuWSX3nzZi2LNkzlw3GIzAeZbaSektC8iT/tKvLqZq8yl1GJu5o6doA4TRbg==";
       };
     };
-    "chrome-launcher-0.13.3" = {
+    "chrome-launcher-0.13.4" = {
       name = "chrome-launcher";
       packageName = "chrome-launcher";
-      version = "0.13.3";
+      version = "0.13.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.13.3.tgz";
-        sha512 = "ovrDuFXgXS96lzeDqFPQRsczkxla+6QMvzsF+1u0mKlD1KE8EuhjdLwiDfIFedb0FSLz18RK3y6IbKu8oqA0qw==";
+        url = "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.13.4.tgz";
+        sha512 = "nnzXiDbGKjDSK6t2I+35OAPBy5Pw/39bgkb/ZAFwMhwJbdYBp6aH+vW28ZgtjdU890Q7D+3wN/tB8N66q5Gi2A==";
       };
     };
     "chrome-net-3.3.4" = {
@@ -10318,13 +11047,13 @@ let
         sha1 = "04a106672c18b085ab774d983dfa3ea138f22205";
       };
     };
-    "chunk-store-stream-4.1.0" = {
+    "chunk-store-stream-4.1.1" = {
       name = "chunk-store-stream";
       packageName = "chunk-store-stream";
-      version = "4.1.0";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chunk-store-stream/-/chunk-store-stream-4.1.0.tgz";
-        sha512 = "GjkZ16bFKMFnb8LrGZXAPeRoLXZTLu9ges6LCErJe28bMp6zKLxjWuJ7TYzR0jWq9nwo58hXG3BXZYy66Vze0Q==";
+        url = "https://registry.npmjs.org/chunk-store-stream/-/chunk-store-stream-4.1.1.tgz";
+        sha512 = "2nVS+VLMCHNW+S1Y3bOlCtUL4ABPA4zeAcP8E/m15AAc+8fw1elEKIhs/Wg5EZNSfqIk24kUd9rvewmGNPehGQ==";
       };
     };
     "ci-info-1.6.0" = {
@@ -10399,6 +11128,24 @@ let
         sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==";
       };
     };
+    "classnames-2.2.6" = {
+      name = "classnames";
+      packageName = "classnames";
+      version = "2.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz";
+        sha512 = "JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==";
+      };
+    };
+    "cldr-5.7.0" = {
+      name = "cldr";
+      packageName = "cldr";
+      version = "5.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cldr/-/cldr-5.7.0.tgz";
+        sha512 = "Pyoh0kwXJIUvbAvQoQqKIr0pKWwWfkcYCIDKWmVIxJ9HftSsg57AqyfW1EzWRcP4nJj40WX4vB/lXQ+Uw4NbNA==";
+      };
+    };
     "clean-css-3.4.28" = {
       name = "clean-css";
       packageName = "clean-css";
@@ -10408,15 +11155,6 @@ let
         sha1 = "bf1945e82fc808f55695e6ddeaec01400efd03ff";
       };
     };
-    "clean-css-4.2.1" = {
-      name = "clean-css";
-      packageName = "clean-css";
-      version = "4.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz";
-        sha512 = "4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==";
-      };
-    };
     "clean-css-4.2.3" = {
       name = "clean-css";
       packageName = "clean-css";
@@ -10426,6 +11164,15 @@ let
         sha512 = "VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==";
       };
     };
+    "clean-deep-3.4.0" = {
+      name = "clean-deep";
+      packageName = "clean-deep";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clean-deep/-/clean-deep-3.4.0.tgz";
+        sha512 = "Lo78NV5ItJL/jl+B5w0BycAisaieJGXK1qYi/9m4SjR8zbqmrUtO7Yhro40wEShGmmxs/aJLI/A+jNhdkXK8mw==";
+      };
+    };
     "clean-git-ref-2.0.1" = {
       name = "clean-git-ref";
       packageName = "clean-git-ref";
@@ -10444,22 +11191,22 @@ let
         sha512 = "eDu0vN44ZBvoEU0oRIKwWPIccGWXtdnUNmKJuTukZ1de00Uoqavb5pfIMKiC7/r+knQ5RbvAjGuVZiN3JwJL4Q==";
       };
     };
-    "clean-stack-1.3.0" = {
+    "clean-stack-2.2.0" = {
       name = "clean-stack";
       packageName = "clean-stack";
-      version = "1.3.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/clean-stack/-/clean-stack-1.3.0.tgz";
-        sha1 = "9e821501ae979986c46b1d66d2d432db2fd4ae31";
+        url = "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz";
+        sha512 = "4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==";
       };
     };
-    "clean-stack-2.2.0" = {
+    "clean-stack-3.0.0" = {
       name = "clean-stack";
       packageName = "clean-stack";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz";
-        sha512 = "4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==";
+        url = "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.0.tgz";
+        sha512 = "RHxtgFvXsRQ+1AM7dlozLDY7ssmvUUh0XEnfnyhYgJTO6beNZHBogiaCwGM9Q3rFrUkYxOtsZRC0zAturg5bjg==";
       };
     };
     "cli-1.0.1" = {
@@ -10480,13 +11227,13 @@ let
         sha1 = "4fa917c3e59c94a004cd61f8ee509da651687143";
       };
     };
-    "cli-boxes-2.2.0" = {
+    "cli-boxes-2.2.1" = {
       name = "cli-boxes";
       packageName = "cli-boxes";
-      version = "2.2.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz";
-        sha512 = "gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==";
+        url = "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz";
+        sha512 = "y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==";
       };
     };
     "cli-color-0.1.7" = {
@@ -10570,13 +11317,13 @@ let
         sha512 = "1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==";
       };
     };
-    "cli-spinners-2.3.0" = {
+    "cli-spinners-2.4.0" = {
       name = "cli-spinners";
       packageName = "cli-spinners";
-      version = "2.3.0";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.3.0.tgz";
-        sha512 = "Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w==";
+        url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.4.0.tgz";
+        sha512 = "sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA==";
       };
     };
     "cli-table-0.3.1" = {
@@ -10633,13 +11380,22 @@ let
         sha512 = "/1owvF0SZ5Gn54cgrikJ0QskgTzeg30HGjkmjFoaHDJzAqFpuX1DBpFR8aLvsE1J5s9MgeYRENQK4BFwOag5VA==";
       };
     };
-    "cli-ux-5.4.6" = {
+    "cli-ux-5.4.10" = {
       name = "cli-ux";
       packageName = "cli-ux";
-      version = "5.4.6";
+      version = "5.4.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-ux/-/cli-ux-5.4.6.tgz";
-        sha512 = "EeiS2TzEndRVknCqE+8Ri8g0bsP617a1nq6n+3Trwft1JCDzyUNlX2J1fl7fwTgRPWtmBmiF6xIyueL5YGs65g==";
+        url = "https://registry.npmjs.org/cli-ux/-/cli-ux-5.4.10.tgz";
+        sha512 = "s48Efw04VtGyQEwXDrERobMc2DF2DyYQ+2nmNsM7clxOVDtbRI9OjbXRwPeS6G2aFuHy0bB8GUq5MzkmkYt7yw==";
+      };
+    };
+    "cli-ux-5.5.0" = {
+      name = "cli-ux";
+      packageName = "cli-ux";
+      version = "5.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-ux/-/cli-ux-5.5.0.tgz";
+        sha512 = "aXoHgEOtkem8sJmQrU/jXsojCq8uOp8++9lybCbt9mFDyPouSNawSdoPjuM00PPaSPCJThvY0VNYOQNd6gGQCA==";
       };
     };
     "cli-width-1.1.1" = {
@@ -10660,6 +11416,15 @@ let
         sha512 = "GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==";
       };
     };
+    "cli-width-3.0.0" = {
+      name = "cli-width";
+      packageName = "cli-width";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz";
+        sha512 = "FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==";
+      };
+    };
     "cliclopts-1.1.1" = {
       name = "cliclopts";
       packageName = "cliclopts";
@@ -10687,6 +11452,15 @@ let
         sha1 = "a211e09c6a3de3ba1af27d049d301250d18812bc";
       };
     };
+    "clipanion-2.5.0" = {
+      name = "clipanion";
+      packageName = "clipanion";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clipanion/-/clipanion-2.5.0.tgz";
+        sha512 = "VYOMl0h/mZXQC2BWq7oBto1zY1SkPWUaJjt+cuIred1HrmrcX1I2N+LNyNoRy8Iwu9r6vUxJwS/tWLwhQW4tPw==";
+      };
+    };
     "clipboard-2.0.6" = {
       name = "clipboard";
       packageName = "clipboard";
@@ -10714,13 +11488,13 @@ let
         sha512 = "mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==";
       };
     };
-    "clipper-lib-1.0.0" = {
+    "clipper-lib-6.4.2" = {
       name = "clipper-lib";
       packageName = "clipper-lib";
-      version = "1.0.0";
+      version = "6.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/clipper-lib/-/clipper-lib-1.0.0.tgz";
-        sha1 = "e902ceb26e28ee5cfa6014abdf790a51efff4ecb";
+        url = "https://registry.npmjs.org/clipper-lib/-/clipper-lib-6.4.2.tgz";
+        sha512 = "knglhjQX5ihNj/XCIs6zCHrTemdvHY3LPZP9XB2nq2/3igyYMFueFXtfp84baJvEE+f8pO1ZS4UVeEgmLnAprQ==";
       };
     };
     "cliss-0.0.2" = {
@@ -10813,15 +11587,6 @@ let
         sha1 = "4af2296d4a23a64168c2f5fb0a2aa65e80517000";
       };
     };
-    "clone-0.2.0" = {
-      name = "clone";
-      packageName = "clone";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz";
-        sha1 = "c6126a90ad4f72dbf5acdb243cc37724fe93fc1f";
-      };
-    };
     "clone-1.0.4" = {
       name = "clone";
       packageName = "clone";
@@ -10912,6 +11677,15 @@ let
         sha512 = "2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==";
       };
     };
+    "clsx-1.1.1" = {
+      name = "clsx";
+      packageName = "clsx";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz";
+        sha512 = "6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==";
+      };
+    };
     "cmd-shim-3.0.3" = {
       name = "cmd-shim";
       packageName = "cmd-shim";
@@ -11020,6 +11794,15 @@ let
         sha512 = "cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==";
       };
     };
+    "code-excerpt-3.0.0" = {
+      name = "code-excerpt";
+      packageName = "code-excerpt";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/code-excerpt/-/code-excerpt-3.0.0.tgz";
+        sha512 = "VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw==";
+      };
+    };
     "code-point-at-1.1.0" = {
       name = "code-point-at";
       packageName = "code-point-at";
@@ -11173,13 +11956,13 @@ let
         sha512 = "qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==";
       };
     };
-    "colorette-1.2.0" = {
+    "colorette-1.2.1" = {
       name = "colorette";
       packageName = "colorette";
-      version = "1.2.0";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/colorette/-/colorette-1.2.0.tgz";
-        sha512 = "soRSroY+OF/8OdA3PTQXwaDJeMc7TfknKKrxeSCencL2a4+Tx5zhxmmv7hdpCjhKBjehzp8+bwe/T68K0hpIjw==";
+        url = "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz";
+        sha512 = "puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==";
       };
     };
     "colornames-1.1.1" = {
@@ -11443,6 +12226,15 @@ let
         sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
       };
     };
+    "commander-3.0.2" = {
+      name = "commander";
+      packageName = "commander";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz";
+        sha512 = "Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==";
+      };
+    };
     "commander-4.1.0" = {
       name = "commander";
       packageName = "commander";
@@ -11470,6 +12262,24 @@ let
         sha512 = "P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==";
       };
     };
+    "commander-6.0.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-6.0.0.tgz";
+        sha512 = "s7EA+hDtTYNhuXkTlhqew4txMZVdszBmKWSPEMxGr8ru8JXR7bLUFIAtPhcSuFdJQ0ILMxnJi8GkQL0yvDy/YA==";
+      };
+    };
+    "commander-6.1.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-6.1.0.tgz";
+        sha512 = "wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA==";
+      };
+    };
     "commandpost-1.4.0" = {
       name = "commandpost";
       packageName = "commandpost";
@@ -11488,6 +12298,15 @@ let
         sha512 = "rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==";
       };
     };
+    "common-path-prefix-2.0.0" = {
+      name = "common-path-prefix";
+      packageName = "common-path-prefix";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-2.0.0.tgz";
+        sha512 = "Lb9qbwwyQdRDmyib0qur7BC9/GHIbviTaQebayFsGC/n77AwFhZINCcJkQx2qVv9LJsA8F5ex65F2qrOfWGUyw==";
+      };
+    };
     "common-tags-1.8.0" = {
       name = "common-tags";
       packageName = "common-tags";
@@ -11551,15 +12370,6 @@ let
         sha1 = "0162ec2d9351f5ddd59a9202cba935366a725080";
       };
     };
-    "complex.js-2.0.11" = {
-      name = "complex.js";
-      packageName = "complex.js";
-      version = "2.0.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/complex.js/-/complex.js-2.0.11.tgz";
-        sha512 = "6IArJLApNtdg1P1dFtn3dnyzoZBEF0MwMnrfF1exSBRpZYoy4yieMkpZhQDC0uwctw48vii0CFVyHfpgZ/DfGw==";
-      };
-    };
     "component-bind-1.0.0" = {
       name = "component-bind";
       packageName = "component-bind";
@@ -11686,6 +12496,15 @@ let
         sha512 = "MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==";
       };
     };
+    "concordance-4.0.0" = {
+      name = "concordance";
+      packageName = "concordance";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concordance/-/concordance-4.0.0.tgz";
+        sha512 = "l0RFuB8RLfCS0Pt2Id39/oCPykE01pyxgAFypWTlaGRgvLkZrtczZ8atEHpTeEIW+zYWXTBuA9cCSeEOScxReQ==";
+      };
+    };
     "conf-1.4.0" = {
       name = "conf";
       packageName = "conf";
@@ -11695,13 +12514,13 @@ let
         sha512 = "bzlVWS2THbMetHqXKB8ypsXN4DQ/1qopGwNJi1eYbpwesJcd86FBjFciCQX/YwAhp9bM7NVnPFqZ5LpV7gP0Dg==";
       };
     };
-    "conf-6.2.4" = {
+    "conf-7.1.2" = {
       name = "conf";
       packageName = "conf";
-      version = "6.2.4";
+      version = "7.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conf/-/conf-6.2.4.tgz";
-        sha512 = "GjgyPRLo1qK1LR9RWAdUagqo+DP18f5HWCFk4va7GS+wpxQTOzfuKTwKOvGW2c01/YXNicAyyoyuSddmdkBzZQ==";
+        url = "https://registry.npmjs.org/conf/-/conf-7.1.2.tgz";
+        sha512 = "r8/HEoWPFn4CztjhMJaWNAe5n+gPUCSaJ0oufbqDLFKsA1V8JjAG7G+p0pgoDFAws9Bpk2VtVLLXqOBA7WxLeg==";
       };
     };
     "config-1.31.0" = {
@@ -11722,13 +12541,13 @@ let
         sha512 = "a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==";
       };
     };
-    "configstore-3.1.2" = {
+    "configstore-3.1.5" = {
       name = "configstore";
       packageName = "configstore";
-      version = "3.1.2";
+      version = "3.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz";
-        sha512 = "vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==";
+        url = "https://registry.npmjs.org/configstore/-/configstore-3.1.5.tgz";
+        sha512 = "nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA==";
       };
     };
     "configstore-4.0.0" = {
@@ -11866,13 +12685,22 @@ let
         sha1 = "5a25047bc76f73072667c8cb52c989888f494c63";
       };
     };
-    "constant-case-2.0.0" = {
+    "consolidate-0.15.1" = {
+      name = "consolidate";
+      packageName = "consolidate";
+      version = "0.15.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz";
+        sha512 = "DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==";
+      };
+    };
+    "constant-case-3.0.3" = {
       name = "constant-case";
       packageName = "constant-case";
-      version = "2.0.0";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz";
-        sha1 = "4175764d389d3fa9c8ecd29186ed6005243b6a46";
+        url = "https://registry.npmjs.org/constant-case/-/constant-case-3.0.3.tgz";
+        sha512 = "FXtsSnnrFYpzDmvwDGQW+l8XK3GV1coLyBN0eBz16ZUzGaZcT2ANVCJmLeuw2GQgxKHQIe9e0w2dzkSfaRlUmA==";
       };
     };
     "constantinople-3.1.2" = {
@@ -12110,6 +12938,15 @@ let
         sha1 = "f67a4938c5233443564250479c67014bac878499";
       };
     };
+    "convert-to-spaces-1.0.2" = {
+      name = "convert-to-spaces";
+      packageName = "convert-to-spaces";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz";
+        sha1 = "7e3e48bbe6d997b1417ddca2868204b4d3d85715";
+      };
+    };
     "convict-6.0.0" = {
       name = "convict";
       packageName = "convict";
@@ -12155,6 +12992,15 @@ let
         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-parser-1.4.5" = {
       name = "cookie-parser";
       packageName = "cookie-parser";
@@ -12245,58 +13091,67 @@ let
         sha512 = "7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==";
       };
     };
-    "cordova-app-hello-world-4.0.0" = {
+    "copy-template-dir-1.4.0" = {
+      name = "copy-template-dir";
+      packageName = "copy-template-dir";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/copy-template-dir/-/copy-template-dir-1.4.0.tgz";
+        sha512 = "xkXSJhvKz4MfLbVkZ7GyCaFo4ciB3uKI/HHzkGwj1eyTH5+7RTFxW5CE0irWAZgV5oFcO9hd6+NVXAtY9hlo7Q==";
+      };
+    };
+    "cordova-app-hello-world-5.0.0" = {
       name = "cordova-app-hello-world";
       packageName = "cordova-app-hello-world";
-      version = "4.0.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cordova-app-hello-world/-/cordova-app-hello-world-4.0.0.tgz";
-        sha512 = "hTNYHUJT5YyMa1cQQE1naGyU6Eh5D5Jl33sMnCh3+q15ZwWTL/TOy3k8+mUvjTp8bwhO5eECGKULYoVO+fp9ZA==";
+        url = "https://registry.npmjs.org/cordova-app-hello-world/-/cordova-app-hello-world-5.0.0.tgz";
+        sha512 = "5My01wsYoeYwS0f/t5Ck52xPm0+2zYJ0SlvxG9vUsndDGtgiP6t/G8upPgWcyDRRz7Rs/50yZuOntmHqmJxccQ==";
       };
     };
-    "cordova-common-3.2.1" = {
+    "cordova-common-4.0.2" = {
       name = "cordova-common";
       packageName = "cordova-common";
-      version = "3.2.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cordova-common/-/cordova-common-3.2.1.tgz";
-        sha512 = "xg0EnjnA6EipxXG8cupdlYQYeDA6+ghbN+Pjq88xN1LInwP6Bo7IyGBdSV5QnfjOvzShF9BBwSxBAv0FOO0C2Q==";
+        url = "https://registry.npmjs.org/cordova-common/-/cordova-common-4.0.2.tgz";
+        sha512 = "od7aNShyuBajzPY83mUEO8tERwwWdFklXETHiXP5Ft87CWeo/tSuwNPFztyTy8XYc74yXdogXKPTJeUHuVzB8Q==";
       };
     };
-    "cordova-create-2.0.0" = {
+    "cordova-create-3.0.0" = {
       name = "cordova-create";
       packageName = "cordova-create";
-      version = "2.0.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cordova-create/-/cordova-create-2.0.0.tgz";
-        sha512 = "72CaGg/7x+tiZlzeXKQXLTc8Jh4tbwLdu4Ib97kJ6+R3bcew/Yv/l2cVA2E0CaCuOCtouTqwi+YLcA2I4dPFTQ==";
+        url = "https://registry.npmjs.org/cordova-create/-/cordova-create-3.0.0.tgz";
+        sha512 = "WxZRTnt5RHxSAB9urnHFUtVBcIe1YjR4sfwHLsxakNoKkFhcie3HrV5QmNBgRQ5DkxmanRN3VSx4OrPVsNmAaQ==";
       };
     };
-    "cordova-fetch-2.0.1" = {
+    "cordova-fetch-3.0.0" = {
       name = "cordova-fetch";
       packageName = "cordova-fetch";
-      version = "2.0.1";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-2.0.1.tgz";
-        sha512 = "q21PeobERzE3Drli5htcl5X9Mtfvodih5VkqIwdRUsjDBCPv+I6ZonRjYGbNnXhYrYx7dm0m0j/7/Smf6Av3hg==";
+        url = "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-3.0.0.tgz";
+        sha512 = "N6mB/1GD8BNclxnfO85E4/s46nEJjIxYeJYHRGi6MjofhigJ3NlGwTCslbTcq8IOYEh0RdoA0mS4W2jA5UcWeQ==";
       };
     };
-    "cordova-lib-9.0.1" = {
+    "cordova-lib-10.0.0" = {
       name = "cordova-lib";
       packageName = "cordova-lib";
-      version = "9.0.1";
+      version = "10.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cordova-lib/-/cordova-lib-9.0.1.tgz";
-        sha512 = "P9nQhq91gLOyKZkamvKNzzK89gLDpq8rKue/Vu7NUSgNzhPkiWW0w+6VRTbj/9QGVM9w2uDVhB9c9f6rrTXzCw==";
+        url = "https://registry.npmjs.org/cordova-lib/-/cordova-lib-10.0.0.tgz";
+        sha512 = "azU/WH0x/3fQg33tU5bKCtj+Weh/bHelz9FWCVdXqVOHXmjzbi3p6p61z5Si967Tfh3TkmHRrodNxS0ovZ7iFQ==";
       };
     };
-    "cordova-serve-3.0.0" = {
+    "cordova-serve-4.0.0" = {
       name = "cordova-serve";
       packageName = "cordova-serve";
-      version = "3.0.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cordova-serve/-/cordova-serve-3.0.0.tgz";
-        sha512 = "h479g/5a0PXn//yiFuMrD5MDEbB+mtihNkWcE6uD/aCh/6z0FRZ9sWH3NfZbHDB+Bp1yGLYsjbH8LZBL8KOQ0w==";
+        url = "https://registry.npmjs.org/cordova-serve/-/cordova-serve-4.0.0.tgz";
+        sha512 = "gzTLeBQzNP8aM/nG0/7sSfICfNazUgwvEU2kiDaybbYXmxwioo2v96h4tzE0XOyA64beyYwAyRYEEqWA4AMZjw==";
       };
     };
     "core-js-2.6.11" = {
@@ -12308,15 +13163,6 @@ let
         sha512 = "5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==";
       };
     };
-    "core-js-3.6.4" = {
-      name = "core-js";
-      packageName = "core-js";
-      version = "3.6.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz";
-        sha512 = "4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==";
-      };
-    };
     "core-js-3.6.5" = {
       name = "core-js";
       packageName = "core-js";
@@ -12335,15 +13181,6 @@ let
         sha512 = "7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==";
       };
     };
-    "core-js-pure-3.6.5" = {
-      name = "core-js-pure";
-      packageName = "core-js-pure";
-      version = "3.6.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz";
-        sha512 = "lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==";
-      };
-    };
     "core-util-is-1.0.2" = {
       name = "core-util-is";
       packageName = "core-util-is";
@@ -12434,6 +13271,15 @@ let
         sha1 = "aba6c5833be410d45b1eca3e6d583844ce682c77";
       };
     };
+    "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==";
+      };
+    };
     "cp-file-7.0.0" = {
       name = "cp-file";
       packageName = "cp-file";
@@ -12443,13 +13289,13 @@ let
         sha512 = "0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==";
       };
     };
-    "cpy-8.1.0" = {
+    "cpy-8.1.1" = {
       name = "cpy";
       packageName = "cpy";
-      version = "8.1.0";
+      version = "8.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cpy/-/cpy-8.1.0.tgz";
-        sha512 = "XwlImkjPxMr01qXqC564VD4rfcDQ2eKtYmFlCy0ixsLRJ1cwYVUBh+v47jsQTO1IrmvdjqO813VpDQ0JiTuOdA==";
+        url = "https://registry.npmjs.org/cpy/-/cpy-8.1.1.tgz";
+        sha512 = "vqHT+9o67sMwJ5hUd/BAOYeemkU+MuFRsK2c36Xc3eefQpAsp1kAsyDxEDcc5JS1+y9l/XHPrIsVTcyGGmkUUQ==";
       };
     };
     "crc-0.2.0" = {
@@ -12497,13 +13343,13 @@ let
         sha512 = "mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==";
       };
     };
-    "create-ecdh-4.0.3" = {
+    "create-ecdh-4.0.4" = {
       name = "create-ecdh";
       packageName = "create-ecdh";
-      version = "4.0.3";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz";
-        sha512 = "GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==";
+        url = "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz";
+        sha512 = "mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==";
       };
     };
     "create-error-class-3.0.2" = {
@@ -12578,6 +13424,15 @@ let
         sha512 = "MSHgpjQqgbT/94D4CyADeNoYh52zMkCX4pcJvPP5WqPsLFMKjr2TCMg381ox5qI0ii2dPwaLx/00477knXqXVw==";
       };
     };
+    "cross-fetch-3.0.5" = {
+      name = "cross-fetch";
+      packageName = "cross-fetch";
+      version = "3.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.5.tgz";
+        sha512 = "FFLcLtraisj5eteosnX1gf01qYDCOc4fDy0+euOt8Kn9YBY2NtXL/pCoYPavw24NIQkQqm5ZOLsGD5Zzj0gyew==";
+      };
+    };
     "cross-spawn-4.0.2" = {
       name = "cross-spawn";
       packageName = "cross-spawn";
@@ -12713,6 +13568,15 @@ let
         sha512 = "oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==";
       };
     };
+    "css-color-keywords-1.0.0" = {
+      name = "css-color-keywords";
+      packageName = "css-color-keywords";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz";
+        sha1 = "fea2616dc676b2962686b3af8dbdbe180b244e05";
+      };
+    };
     "css-color-names-0.0.4" = {
       name = "css-color-names";
       packageName = "css-color-names";
@@ -12785,13 +13649,22 @@ let
         sha512 = "jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==";
       };
     };
-    "css-selector-tokenizer-0.7.2" = {
+    "css-selector-tokenizer-0.7.3" = {
       name = "css-selector-tokenizer";
       packageName = "css-selector-tokenizer";
-      version = "0.7.2";
+      version = "0.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz";
+        sha512 = "jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==";
+      };
+    };
+    "css-to-react-native-3.0.0" = {
+      name = "css-to-react-native";
+      packageName = "css-to-react-native";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz";
-        sha512 = "yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw==";
+        url = "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz";
+        sha512 = "Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==";
       };
     };
     "css-tree-1.0.0-alpha.37" = {
@@ -12965,13 +13838,13 @@ let
         sha512 = "AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==";
       };
     };
-    "csstype-2.6.10" = {
+    "csstype-2.6.13" = {
       name = "csstype";
       packageName = "csstype";
-      version = "2.6.10";
+      version = "2.6.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/csstype/-/csstype-2.6.10.tgz";
-        sha512 = "D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==";
+        url = "https://registry.npmjs.org/csstype/-/csstype-2.6.13.tgz";
+        sha512 = "ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A==";
       };
     };
     "csurf-1.11.0" = {
@@ -13037,15 +13910,6 @@ let
         sha1 = "82c18c2461f74114ef16c135224ad0b9144ca12f";
       };
     };
-    "cubic2quad-1.1.1" = {
-      name = "cubic2quad";
-      packageName = "cubic2quad";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cubic2quad/-/cubic2quad-1.1.1.tgz";
-        sha1 = "69b19c61a3f5b41ecf2f1d5fae8fb03415aa8b15";
-      };
-    };
     "currently-unhandled-0.4.1" = {
       name = "currently-unhandled";
       packageName = "currently-unhandled";
@@ -13055,13 +13919,13 @@ let
         sha1 = "988df33feab191ef799a61369dd76c17adf957ea";
       };
     };
-    "cuss-1.20.0" = {
+    "cuss-1.21.0" = {
       name = "cuss";
       packageName = "cuss";
-      version = "1.20.0";
+      version = "1.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cuss/-/cuss-1.20.0.tgz";
-        sha512 = "ca6Z5roeWhHgXeDLn0g3SLrG68Cb9922MvHme7Q/dz4XfwuxcBLalW4RqFUyZOiczzAqKc2XVtR2Kof+sIfinQ==";
+        url = "https://registry.npmjs.org/cuss/-/cuss-1.21.0.tgz";
+        sha512 = "X3VvImImJ5q6w0wOgJtxAX+RC06d26egp/A/vdSxqOrsRtAA9biXAkc4PZGj/3gx0+z+gDFri6BpcpwuG1/UEw==";
       };
     };
     "custom-error-instance-2.1.1" = {
@@ -13325,6 +14189,15 @@ let
         sha512 = "YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==";
       };
     };
+    "dataloader-2.0.0" = {
+      name = "dataloader";
+      packageName = "dataloader";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dataloader/-/dataloader-2.0.0.tgz";
+        sha512 = "YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==";
+      };
+    };
     "date-fns-1.30.1" = {
       name = "date-fns";
       packageName = "date-fns";
@@ -13361,6 +14234,15 @@ let
         sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b";
       };
     };
+    "date-time-2.1.0" = {
+      name = "date-time";
+      packageName = "date-time";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/date-time/-/date-time-2.1.0.tgz";
+        sha512 = "/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==";
+      };
+    };
     "dateformat-2.2.0" = {
       name = "dateformat";
       packageName = "dateformat";
@@ -13379,22 +14261,22 @@ let
         sha512 = "jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==";
       };
     };
-    "dayjs-1.8.28" = {
+    "dayjs-1.8.35" = {
       name = "dayjs";
       packageName = "dayjs";
-      version = "1.8.28";
+      version = "1.8.35";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.8.28.tgz";
-        sha512 = "ccnYgKC0/hPSGXxj7Ju6AV/BP4HUkXC2u15mikXT5mX9YorEaoi1bEKOmAqdkJHN4EEkmAf97SpH66Try5Mbeg==";
+        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.8.35.tgz";
+        sha512 = "isAbIEenO4ilm6f8cpqvgjZCsuerDAz2Kb7ri201AiNn58aqXuaLJEnCtfIMdCvERZHNGRY5lDMTr/jdAnKSWQ==";
       };
     };
-    "de-indent-1.0.2" = {
-      name = "de-indent";
-      packageName = "de-indent";
-      version = "1.0.2";
+    "deasync-0.1.15" = {
+      name = "deasync";
+      packageName = "deasync";
+      version = "0.1.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz";
-        sha1 = "b2038e846dc33baa5796128d0804b455b8c1e21d";
+        url = "https://registry.npmjs.org/deasync/-/deasync-0.1.15.tgz";
+        sha512 = "pxMaCYu8cQIbGkA4Y1R0PLSooPIpH1WgFBLeJ+zLxQgHfkZG86ViJSmZmONSjZJ/R3NjwkMcIWZAzpLB2G9/CA==";
       };
     };
     "deasync-0.1.20" = {
@@ -13424,13 +14306,13 @@ let
         sha512 = "mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==";
       };
     };
-    "debounce-fn-3.0.1" = {
+    "debounce-fn-4.0.0" = {
       name = "debounce-fn";
       packageName = "debounce-fn";
-      version = "3.0.1";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/debounce-fn/-/debounce-fn-3.0.1.tgz";
-        sha512 = "aBoJh5AhpqlRoHZjHmOzZlRx+wz2xVwGL9rjs+Kj0EWUrL4/h4K7OD176thl2Tdoqui/AaA4xhHrNArGLAaI3Q==";
+        url = "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz";
+        sha512 = "8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==";
       };
     };
     "debounced-seeker-1.0.0" = {
@@ -13523,15 +14405,6 @@ let
         sha512 = "IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==";
       };
     };
-    "debug-fabulous-1.1.0" = {
-      name = "debug-fabulous";
-      packageName = "debug-fabulous";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz";
-        sha512 = "GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==";
-      };
-    };
     "debuglog-1.0.1" = {
       name = "debuglog";
       packageName = "debuglog";
@@ -13550,13 +14423,13 @@ let
         sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
       };
     };
-    "decamelize-3.2.0" = {
+    "decamelize-4.0.0" = {
       name = "decamelize";
       packageName = "decamelize";
-      version = "3.2.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/decamelize/-/decamelize-3.2.0.tgz";
-        sha512 = "4TgkVUsmmu7oCSyGBm5FvfMoACuoh9EOidm7V5/J2X2djAwwt57qb3F2KMP2ITqODTCSwb+YRV+0Zqrv18k/hw==";
+        url = "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz";
+        sha512 = "9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==";
       };
     };
     "decamelize-keys-1.1.0" = {
@@ -13568,15 +14441,6 @@ let
         sha1 = "d171a87933252807eb3cb61dc1c1445d078df2d9";
       };
     };
-    "decimal.js-10.2.0" = {
-      name = "decimal.js";
-      packageName = "decimal.js";
-      version = "10.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz";
-        sha512 = "vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==";
-      };
-    };
     "decimal.js-7.5.1" = {
       name = "decimal.js";
       packageName = "decimal.js";
@@ -13586,6 +14450,15 @@ let
         sha512 = "1K5Y6MykxQYfHBcFfAj2uBaLmwreq4MsjsvrlgcEOvg+X82IeeXlIVIVkBMiypksu+yo9vcYP6lfU3qTedofSQ==";
       };
     };
+    "decko-1.2.0" = {
+      name = "decko";
+      packageName = "decko";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decko/-/decko-1.2.0.tgz";
+        sha1 = "fd43c735e967b8013306884a56fbe665996b6817";
+      };
+    };
     "decode-uri-component-0.2.0" = {
       name = "decode-uri-component";
       packageName = "decode-uri-component";
@@ -13595,15 +14468,6 @@ let
         sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
       };
     };
-    "decomment-0.9.2" = {
-      name = "decomment";
-      packageName = "decomment";
-      version = "0.9.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/decomment/-/decomment-0.9.2.tgz";
-        sha512 = "sblyUmOJZxiL7oJ2ogJS6jtl/67+CTOW87SrYE/96u3PhDYikYoLCdLzcnceToiQejOLlqNnLCkaxx/+nE/ehg==";
-      };
-    };
     "decompress-4.2.1" = {
       name = "decompress";
       packageName = "decompress";
@@ -13631,15 +14495,6 @@ let
         sha512 = "jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==";
       };
     };
-    "decompress-response-5.0.0" = {
-      name = "decompress-response";
-      packageName = "decompress-response";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz";
-        sha512 = "TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==";
-      };
-    };
     "decompress-response-6.0.0" = {
       name = "decompress-response";
       packageName = "decompress-response";
@@ -13757,6 +14612,15 @@ let
         sha1 = "48b699c27e334bf89f10892be432f6e4c7d34a7f";
       };
     };
+    "deep-extend-0.5.1" = {
+      name = "deep-extend";
+      packageName = "deep-extend";
+      version = "0.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz";
+        sha512 = "N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==";
+      };
+    };
     "deep-extend-0.6.0" = {
       name = "deep-extend";
       packageName = "deep-extend";
@@ -13919,15 +14783,6 @@ let
         sha512 = "8eluCl/Blx4YOGwMapBvXRKxHXhA8ejDXYzEaK8+/gtcm8hRMhSLmXSqDmNUKNc/C8HNSmuyyp/hflhqDAvK2A==";
       };
     };
-    "deferred-leveldown-0.2.0" = {
-      name = "deferred-leveldown";
-      packageName = "deferred-leveldown";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz";
-        sha1 = "2cef1f111e1c57870d8bbb8af2650e587cd2f5b4";
-      };
-    };
     "deferred-leveldown-5.3.0" = {
       name = "deferred-leveldown";
       packageName = "deferred-leveldown";
@@ -14027,13 +14882,13 @@ let
         sha512 = "BLHItGr82rUbHhjMu41d+vw9Md49i81jmZSV00HdTq4t+RTHywmEht/23mNFpUl2YeLYJZJyGz4rdlMAyOxNeg==";
       };
     };
-    "delay-4.3.0" = {
+    "delay-4.4.0" = {
       name = "delay";
       packageName = "delay";
-      version = "4.3.0";
+      version = "4.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/delay/-/delay-4.3.0.tgz";
-        sha512 = "Lwaf3zVFDMBop1yDuFZ19F9WyGcZcGacsbdlZtWjQmM50tOcMntm1njF/Nb/Vjij3KaSvCF+sEYGKrrjObu2NA==";
+        url = "https://registry.npmjs.org/delay/-/delay-4.4.0.tgz";
+        sha512 = "txgOrJu3OdtOfTiEOT2e76dJVfG/1dz2NZ4F0Pyt4UGZJryssMRp5vdM5wQoLwSOBNdrJv3F9PAhp/heqd7vrA==";
       };
     };
     "delayed-stream-1.0.0" = {
@@ -14126,24 +14981,6 @@ let
         sha512 = "9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w==";
       };
     };
-    "dependency-tree-7.2.1" = {
-      name = "dependency-tree";
-      packageName = "dependency-tree";
-      version = "7.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dependency-tree/-/dependency-tree-7.2.1.tgz";
-        sha512 = "nBxnjkqDW4LqAzBazy60V4lE0mAtIQ+oers/GIIvVvGYVdCD9+RNNd4G9jjstyz7ZFVg/j/OiYCvK5MjoVqA2w==";
-      };
-    };
-    "deprecated-0.0.1" = {
-      name = "deprecated";
-      packageName = "deprecated";
-      version = "0.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz";
-        sha1 = "f9c9af5464afa1e7a971458a8bdef2aa94d5bb19";
-      };
-    };
     "deprecated-decorator-0.1.6" = {
       name = "deprecated-decorator";
       packageName = "deprecated-decorator";
@@ -14243,13 +15080,13 @@ let
         sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
       };
     };
-    "detect-newline-2.1.0" = {
+    "detect-newline-3.1.0" = {
       name = "detect-newline";
       packageName = "detect-newline";
-      version = "2.1.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz";
-        sha1 = "f41f1c10be4b00e87b5f13da680759f2c5bfd3e2";
+        url = "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz";
+        sha512 = "TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==";
       };
     };
     "detect-node-2.0.4" = {
@@ -14459,13 +15296,13 @@ let
         sha512 = "IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==";
       };
     };
-    "diff2html-3.1.8" = {
+    "diff2html-3.1.12" = {
       name = "diff2html";
       packageName = "diff2html";
-      version = "3.1.8";
+      version = "3.1.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.1.8.tgz";
-        sha512 = "Irnht4VZ/Nd15H2jhC/TV3YPAmILbDutiwJWn1V94J6/mY6JY/iJ4FCh/QmENL1CWqGvckKWgCQnNg5Unez3UA==";
+        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.1.12.tgz";
+        sha512 = "iUFPcwhsb2e6ng7ct9VGntOomhCb5qRy1tuSCz2RpTk/3Y0fRjfySHEeL95rYvWqawfGrj/7OjPR/kGOTIT/9w==";
       };
     };
     "diff3-0.0.3" = {
@@ -14504,6 +15341,15 @@ let
         sha512 = "BIo2fEAv3U0YmyuM1XTijwZ/OJjmXnlSvsguQy3LOaz5C2R/vrMy8SCRdQn1iz3KhBJYJzy+918xS/PKY/47lw==";
       };
     };
+    "difunc-0.0.4" = {
+      name = "difunc";
+      packageName = "difunc";
+      version = "0.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/difunc/-/difunc-0.0.4.tgz";
+        sha512 = "zBiL4ALDmviHdoLC0g0G6wVme5bwAow9WfhcZLLopXCAWgg3AEf7RYTs2xugszIGulRHzEVDF/SHl9oyQU07Pw==";
+      };
+    };
     "dijkstrajs-1.0.1" = {
       name = "dijkstrajs";
       packageName = "dijkstrajs";
@@ -14594,13 +15440,13 @@ let
         sha512 = "vkg0bv+FUwSuPxBWzdNPQVNmXQlIbvz1Ygi+A1XefNUhEzfmM+RNndjtjlDgxD/ZUhFir9PX7Hw9iIDVujsOoA==";
       };
     };
-    "dispensary-0.51.2" = {
+    "dispensary-0.52.0" = {
       name = "dispensary";
       packageName = "dispensary";
-      version = "0.51.2";
+      version = "0.52.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dispensary/-/dispensary-0.51.2.tgz";
-        sha512 = "liUDx/g1xFEBFoOL6308Vr0aYAZlGAyXGcOvuXVa/6qVBZT4QZrv4pVNeb5QOeD5C/Flta+A+qTnLkLnhgs40g==";
+        url = "https://registry.npmjs.org/dispensary/-/dispensary-0.52.0.tgz";
+        sha512 = "A13TTo/2yaK/Z3So4OdzodBTbyTMpqVOH15cbmUuKvl+T1cOLn0VGQjibrG9cELa9mkLfhjFodqYQWkOGkG9Ig==";
       };
     };
     "diveSync-0.3.0" = {
@@ -14720,58 +15566,49 @@ let
         sha512 = "cwaRptBmYZwu/FyhGcqBm2MzXA77W2/E6eVkpOZVDk6PkI9Bjj84xPrXiHMA+OWjzNy+DFjgKh8Q+1hMR7/OHg==";
       };
     };
-    "dockerfile-ast-0.0.12" = {
+    "dockerfile-ast-0.0.27" = {
       name = "dockerfile-ast";
       packageName = "dockerfile-ast";
-      version = "0.0.12";
+      version = "0.0.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.12.tgz";
-        sha512 = "cIV8oXkAxpIuN5XgG0TGg07nLDgrj4olkfrdT77OTA3VypscsYHBUg/FjHxW9K3oA+CyH4Th/qtoMgTVpzSobw==";
+        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.27.tgz";
+        sha512 = "U+1B6aA7qJw9hswL6rCg4/dHnXy+zmt1bwU6ONi+f+0w0AOSmrz4IcrZQu62g1RD+NoTO4dvJce3FjoXUHd9Dw==";
       };
     };
-    "dockerfile-ast-0.0.19" = {
+    "dockerfile-ast-0.0.28" = {
       name = "dockerfile-ast";
       packageName = "dockerfile-ast";
-      version = "0.0.19";
+      version = "0.0.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.19.tgz";
-        sha512 = "iDRNFeAB2j4rh/Ecc2gh3fjciVifCMsszfCfHlYF5Wv8yybjZLiRDZUBt/pS3xrAz8uWT8fCHLq4pOQMmwCDwA==";
+        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.28.tgz";
+        sha512 = "221P0R4+tx5C1ra99alQxmdRvtfKMbBE7MkESN4VEBN5CX90wijrcIg+EiRaGTCCT5OPk5KBeKy+EIOnmEu4xA==";
       };
     };
-    "dockerfile-ast-0.0.25" = {
+    "dockerfile-ast-0.0.30" = {
       name = "dockerfile-ast";
       packageName = "dockerfile-ast";
-      version = "0.0.25";
+      version = "0.0.30";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.25.tgz";
-        sha512 = "Yiolk/ktLUjThacBuIEqyoRYzDdGrp8rjKjcdZA/hhtIUHrU5iVrS1MIm3p3PWKpnD7va4Jlp/FV0ywP3AdKrg==";
+        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.30.tgz";
+        sha512 = "QOeP5NjbjoSLtnMz6jzBLsrKtywLEVPoCOAwA54cQpulyKb1gBnZ63tr6Amq8oVDvu5PXa3aifBVw+wcoCGHKg==";
       };
     };
-    "dockerfile-language-service-0.0.12" = {
+    "dockerfile-language-service-0.1.0" = {
       name = "dockerfile-language-service";
       packageName = "dockerfile-language-service";
-      version = "0.0.12";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-language-service/-/dockerfile-language-service-0.0.12.tgz";
-        sha512 = "73ZEQW8LCL/SIWzWekqqLdH41pZ8+N2BYD5K16cBQCQfsZPjFoJC04tv7jlTnEPypJZs3zV0hpBLVTi7zhRFfw==";
-      };
-    };
-    "dockerfile-utils-0.0.11" = {
-      name = "dockerfile-utils";
-      packageName = "dockerfile-utils";
-      version = "0.0.11";
+      version = "0.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-utils/-/dockerfile-utils-0.0.11.tgz";
-        sha512 = "LNdPIgcl58343dF4KNCHvFzUScUhgLI9BRAR+Vln6D1tVBGvv1k5/qHuxWRCAM2uyFbj73QVkKMScXPhY7TqfQ==";
+        url = "https://registry.npmjs.org/dockerfile-language-service/-/dockerfile-language-service-0.1.0.tgz";
+        sha512 = "vvFBLvQ/4RE5JyPzI1EynvT5h6Mg/jJ8HUcMs53uyfjy3RbaGeUL5c0eN6mk39WVF2Y8fsH1FKo4L29Z/W4N6g==";
       };
     };
-    "dockerfile-utils-0.0.16" = {
+    "dockerfile-utils-0.1.0" = {
       name = "dockerfile-utils";
       packageName = "dockerfile-utils";
-      version = "0.0.16";
+      version = "0.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-utils/-/dockerfile-utils-0.0.16.tgz";
-        sha512 = "d/XlyVUEs+oGqoffvgYYItbGLNNSz3I2vIwzXxT9Xbx5YHH8WA8dFvTQU21k5j2Z8MoU6OYfyEZpbUqRC9N2fA==";
+        url = "https://registry.npmjs.org/dockerfile-utils/-/dockerfile-utils-0.1.0.tgz";
+        sha512 = "eHDiSOSXzXaFTwp7UX+bMVKUDQd2E2x8IF/3xdSvNkGhBliRhjwLIL+ALLDmi8GqSlm+7xwc4mGLcvtCI668PQ==";
       };
     };
     "doctrine-2.1.0" = {
@@ -14837,6 +15674,15 @@ let
         sha512 = "2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==";
       };
     };
+    "dom-serializer-1.0.1" = {
+      name = "dom-serializer";
+      packageName = "dom-serializer";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.0.1.tgz";
+        sha512 = "1Aj1Qy3YLbdslkI75QEOfdp9TkQ3o8LRISAzxOibjBs/xWwr1WxZFOQphFkZuepHFGo+kB8e5FVJSS0faAJ4Rw==";
+      };
+    };
     "dom-storage-2.1.0" = {
       name = "dom-storage";
       packageName = "dom-storage";
@@ -14936,13 +15782,22 @@ let
         sha512 = "eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw==";
       };
     };
-    "domino-2.1.5" = {
+    "domino-2.1.6" = {
       name = "domino";
       packageName = "domino";
-      version = "2.1.5";
+      version = "2.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domino/-/domino-2.1.5.tgz";
-        sha512 = "vMDo7f6ogUV9PkzmxXLiXzJkJZqU09Le4C40mj+HmAGS/2FPmdetoNOQZXpu2kekn0GJKvtwKMAVoruTj60Xww==";
+        url = "https://registry.npmjs.org/domino/-/domino-2.1.6.tgz";
+        sha512 = "3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==";
+      };
+    };
+    "dompurify-1.0.11" = {
+      name = "dompurify";
+      packageName = "dompurify";
+      version = "1.0.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dompurify/-/dompurify-1.0.11.tgz";
+        sha512 = "XywCTXZtc/qCX3iprD1pIklRVk/uhl8BKpkTxr+ZyMVUzSUg7wkQXRBp/euJ5J5moa1QvfpvaPQVP71z1O59dQ==";
       };
     };
     "domutils-1.4.3" = {
@@ -14972,31 +15827,31 @@ let
         sha512 = "Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==";
       };
     };
-    "domutils-2.1.0" = {
+    "domutils-2.2.0" = {
       name = "domutils";
       packageName = "domutils";
-      version = "2.1.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domutils/-/domutils-2.1.0.tgz";
-        sha512 = "CD9M0Dm1iaHfQ1R/TI+z3/JWp/pgub0j4jIQKH89ARR4ATAV2nbaOQS5XxU9maJP5jHaPdDDQSEHuE2UmpUTKg==";
+        url = "https://registry.npmjs.org/domutils/-/domutils-2.2.0.tgz";
+        sha512 = "0haAxVr1PR0SqYwCH7mxMpHZUwjih9oPPedqpR/KufsnxPyZ9dyVw1R5093qnJF3WXSbjBkdzRWLw/knJV/fAg==";
       };
     };
-    "dot-case-2.1.1" = {
+    "dot-case-3.0.3" = {
       name = "dot-case";
       packageName = "dot-case";
-      version = "2.1.1";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz";
-        sha1 = "34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee";
+        url = "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz";
+        sha512 = "7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==";
       };
     };
-    "dot-prop-4.2.0" = {
+    "dot-prop-4.2.1" = {
       name = "dot-prop";
       packageName = "dot-prop";
-      version = "4.2.0";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz";
-        sha512 = "tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==";
+        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz";
+        sha512 = "l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==";
       };
     };
     "dot-prop-5.2.0" = {
@@ -15179,13 +16034,13 @@ let
         sha512 = "b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==";
       };
     };
-    "duplexer-0.1.1" = {
+    "duplexer-0.1.2" = {
       name = "duplexer";
       packageName = "duplexer";
-      version = "0.1.1";
+      version = "0.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz";
-        sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1";
+        url = "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz";
+        sha512 = "jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==";
       };
     };
     "duplexer2-0.0.2" = {
@@ -15395,22 +16250,22 @@ let
         sha512 = "7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==";
       };
     };
-    "ejs-3.1.3" = {
+    "ejs-3.1.5" = {
       name = "ejs";
       packageName = "ejs";
-      version = "3.1.3";
+      version = "3.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ejs/-/ejs-3.1.3.tgz";
-        sha512 = "wmtrUGyfSC23GC/B1SMv2ogAUgbQEtDmTIhfqielrG5ExIM9TP4UoYdi90jLF1aTcsWCJNEO0UrgKzP0y3nTSg==";
+        url = "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz";
+        sha512 = "dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==";
       };
     };
-    "electron-to-chromium-1.3.483" = {
+    "electron-to-chromium-1.3.560" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.483";
+      version = "1.3.560";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.483.tgz";
-        sha512 = "+05RF8S9rk8S0G8eBCqBRBaRq7+UN3lDs2DAvnG8SBSgQO3hjy0+qt4CmRk5eiuGbTcaicgXfPmBi31a+BD3lg==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.560.tgz";
+        sha512 = "0cEFfOA3sNXfSxo0FIClBhrLVSe/QO9LBiqmmYPm3N/IYyt41NRTa2EhvOMWAOKpjd91t/rq062yhnJzfVMKkQ==";
       };
     };
     "elegant-spinner-1.0.1" = {
@@ -15440,6 +16295,15 @@ let
         sha1 = "9ac91be6e52fb6e6244c4e54a4ac3ed8ae8e29c0";
       };
     };
+    "elf-tools-1.1.2" = {
+      name = "elf-tools";
+      packageName = "elf-tools";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/elf-tools/-/elf-tools-1.1.2.tgz";
+        sha512 = "x+p+XNxLk8ittsYN7294mCnQ2i48udu3UGdHBv2gw1u1MVigXctcfbp5H9ebqTJnDxkbs6PdOSBOAdYGGDN7uA==";
+      };
+    };
     "elliptic-6.5.3" = {
       name = "elliptic";
       packageName = "elliptic";
@@ -15567,6 +16431,15 @@ let
         sha1 = "965f6513d2c2d1c5f4652b64a2e3396467fc2f93";
       };
     };
+    "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";
@@ -15576,13 +16449,13 @@ let
         sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
       };
     };
-    "encoding-0.1.12" = {
+    "encoding-0.1.13" = {
       name = "encoding";
       packageName = "encoding";
-      version = "0.1.12";
+      version = "0.1.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz";
-        sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb";
+        url = "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz";
+        sha512 = "ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==";
       };
     };
     "encoding-down-6.3.0" = {
@@ -15729,22 +16602,22 @@ let
         sha1 = "a115c32504b6302e85a76269d7a57ccdd962e359";
       };
     };
-    "enhanced-resolve-4.2.0" = {
+    "enhanced-resolve-4.3.0" = {
       name = "enhanced-resolve";
       packageName = "enhanced-resolve";
-      version = "4.2.0";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.2.0.tgz";
-        sha512 = "S7eiFb/erugyd1rLb6mQ3Vuq+EXHv5cpCkNqqIkYkBgN2QdFnyCZzFBleqwGEx4lgNGYij81BWnCrFNK7vxvjQ==";
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz";
+        sha512 = "3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==";
       };
     };
-    "enquirer-2.3.5" = {
+    "enquirer-2.3.6" = {
       name = "enquirer";
       packageName = "enquirer";
-      version = "2.3.5";
+      version = "2.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enquirer/-/enquirer-2.3.5.tgz";
-        sha512 = "BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA==";
+        url = "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz";
+        sha512 = "yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==";
       };
     };
     "ensure-posix-path-1.1.1" = {
@@ -15837,13 +16710,13 @@ let
         sha512 = "jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ==";
       };
     };
-    "envinfo-7.5.1" = {
+    "envinfo-7.7.3" = {
       name = "envinfo";
       packageName = "envinfo";
-      version = "7.5.1";
+      version = "7.7.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/envinfo/-/envinfo-7.5.1.tgz";
-        sha512 = "hQBkDf2iO4Nv0CNHpCuSBeaSrveU6nThVxFGTrq/eDlV716UQk09zChaJae4mZRsos1x4YLY2TaH3LHUae3ZmQ==";
+        url = "https://registry.npmjs.org/envinfo/-/envinfo-7.7.3.tgz";
+        sha512 = "46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA==";
       };
     };
     "epidemic-broadcast-trees-7.0.0" = {
@@ -15909,6 +16782,15 @@ let
         sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
       };
     };
+    "error-stack-parser-2.0.6" = {
+      name = "error-stack-parser";
+      packageName = "error-stack-parser";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz";
+        sha512 = "d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==";
+      };
+    };
     "errorhandler-1.5.1" = {
       name = "errorhandler";
       packageName = "errorhandler";
@@ -15927,6 +16809,15 @@ let
         sha512 = "Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==";
       };
     };
+    "es-abstract-1.18.0-next.0" = {
+      name = "es-abstract";
+      packageName = "es-abstract";
+      version = "1.18.0-next.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.0.tgz";
+        sha512 = "elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ==";
+      };
+    };
     "es-array-method-boxes-properly-1.0.0" = {
       name = "es-array-method-boxes-properly";
       packageName = "es-array-method-boxes-properly";
@@ -16044,15 +16935,6 @@ let
         sha1 = "5109d62f3e56ea967c4b63505aef08291c8a5203";
       };
     };
-    "es6-promisify-6.0.2" = {
-      name = "es6-promisify";
-      packageName = "es6-promisify";
-      version = "6.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.0.2.tgz";
-        sha512 = "eO6vFm0JvqGzjWIQA6QVKjxpmELfhWbDUWHm1rPfIbn55mhKPiAa5xpLmQWJrNa629ZIeQ8ZvMAi13kvrjK6Mg==";
-      };
-    };
     "es6-promisify-6.1.1" = {
       name = "es6-promisify";
       packageName = "es6-promisify";
@@ -16107,13 +16989,13 @@ let
         sha512 = "VHDcDg9AwFoeQU9ULPCJCw6P95gr9Er65M+bccefEVD/OOb+WMyQIYw58rpm0F+zcfRJNf394I+BMH8JeU97Hw==";
       };
     };
-    "escalade-3.0.1" = {
+    "escalade-3.0.2" = {
       name = "escalade";
       packageName = "escalade";
-      version = "3.0.1";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/escalade/-/escalade-3.0.1.tgz";
-        sha512 = "DR6NO3h9niOT+MZs7bjxlj2a1k+POu5RN8CLTPX2+i78bRi9eLe7+0zXgUHMnGXWybYcL61E9hGhPKqedy8tQA==";
+        url = "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz";
+        sha512 = "gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==";
       };
     };
     "escape-goat-2.1.1" = {
@@ -16134,15 +17016,6 @@ let
         sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
       };
     };
-    "escape-latex-1.2.0" = {
-      name = "escape-latex";
-      packageName = "escape-latex";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz";
-        sha512 = "nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==";
-      };
-    };
     "escape-regexp-component-1.0.2" = {
       name = "escape-regexp-component";
       packageName = "escape-regexp-component";
@@ -16224,6 +17097,24 @@ let
         sha1 = "759dce8496c4248fec2d0caaf4108bcf3f1a7f5d";
       };
     };
+    "escope-3.6.0" = {
+      name = "escope";
+      packageName = "escope";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz";
+        sha1 = "e01975e812781a163a6dadfdd80398dc64c889c3";
+      };
+    };
+    "eslint-3.19.0" = {
+      name = "eslint";
+      packageName = "eslint";
+      version = "3.19.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz";
+        sha1 = "c8fc6201c7f40dd08941b87c085767386a679acc";
+      };
+    };
     "eslint-4.19.1" = {
       name = "eslint";
       packageName = "eslint";
@@ -16251,13 +17142,22 @@ let
         sha512 = "K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==";
       };
     };
-    "eslint-7.3.1" = {
+    "eslint-7.5.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "7.3.1";
+      version = "7.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.3.1.tgz";
-        sha512 = "cQC/xj9bhWUcyi/RuMbRtC3I0eW8MH0jhRELSvpKYkWep3C6YZ2OkvcvJVUeO6gcunABmzptbXBuDoXsjHmfTA==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.5.0.tgz";
+        sha512 = "vlUP10xse9sWt9SGRtcr1LAC67BENcQMFeV+w5EvLEoFe3xJ8cF1Skd0msziRx/VMC+72B4DxreCE+OR12OA6Q==";
+      };
+    };
+    "eslint-7.8.1" = {
+      name = "eslint";
+      packageName = "eslint";
+      version = "7.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.8.1.tgz";
+        sha512 = "/2rX2pfhyUG0y+A123d0ccXtMm7DV7sH1m3lk9nk2DZ2LReq39FXHueR9xZwshE5MdfSf0xunSaMWRqyIA6M1w==";
       };
     };
     "eslint-plugin-no-unsanitized-3.1.2" = {
@@ -16278,6 +17178,15 @@ let
         sha512 = "Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==";
       };
     };
+    "eslint-plugin-vue-7.0.0-beta.3" = {
+      name = "eslint-plugin-vue";
+      packageName = "eslint-plugin-vue";
+      version = "7.0.0-beta.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.0.0-beta.3.tgz";
+        sha512 = "/p23IRPN9gFNN7dzesrctt06Kvs9E3VRB8BGIAPSEaQNk5yhlKUzntPARjUpsTWW+DQg0mqglZptfkUJK4+4EQ==";
+      };
+    };
     "eslint-scope-3.7.3" = {
       name = "eslint-scope";
       packageName = "eslint-scope";
@@ -16323,15 +17232,6 @@ let
         sha512 = "w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==";
       };
     };
-    "eslint-visitor-keys-1.2.0" = {
-      name = "eslint-visitor-keys";
-      packageName = "eslint-visitor-keys";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz";
-        sha512 = "WFb4ihckKil6hu3Dp798xdzSfddwKKU3+nGniKF6HfeW6OLd2OUDEPP7TcHtB5+QXOKg2s6B2DaMPE1Nn/kxKQ==";
-      };
-    };
     "eslint-visitor-keys-1.3.0" = {
       name = "eslint-visitor-keys";
       packageName = "eslint-visitor-keys";
@@ -16395,13 +17295,22 @@ let
         sha512 = "ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==";
       };
     };
-    "espree-7.1.0" = {
+    "espree-7.2.0" = {
       name = "espree";
       packageName = "espree";
-      version = "7.1.0";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/espree/-/espree-7.2.0.tgz";
+        sha512 = "H+cQ3+3JYRMEIOl87e7QdHX70ocly5iW4+dttuR8iYSPr/hXKFb+7dBsZ7+u1adC4VrnPlTkv0+OwuPnDop19g==";
+      };
+    };
+    "espree-7.3.0" = {
+      name = "espree";
+      packageName = "espree";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/espree/-/espree-7.1.0.tgz";
-        sha512 = "dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw==";
+        url = "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz";
+        sha512 = "dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==";
       };
     };
     "esprima-1.1.1" = {
@@ -16458,13 +17367,13 @@ let
         sha512 = "olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==";
       };
     };
-    "esrecurse-4.2.1" = {
+    "esrecurse-4.3.0" = {
       name = "esrecurse";
       packageName = "esrecurse";
-      version = "4.2.1";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz";
-        sha512 = "64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==";
+        url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz";
+        sha512 = "KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==";
       };
     };
     "essentials-1.1.1" = {
@@ -16521,13 +17430,13 @@ let
         sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
       };
     };
-    "estraverse-5.1.0" = {
+    "estraverse-5.2.0" = {
       name = "estraverse";
       packageName = "estraverse";
-      version = "5.1.0";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz";
-        sha512 = "FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==";
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz";
+        sha512 = "BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==";
       };
     };
     "estree-walker-0.6.1" = {
@@ -16548,6 +17457,15 @@ let
         sha512 = "1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==";
       };
     };
+    "estree-walker-2.0.1" = {
+      name = "estree-walker";
+      packageName = "estree-walker";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.1.tgz";
+        sha512 = "tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==";
+      };
+    };
     "esutils-1.0.0" = {
       name = "esutils";
       packageName = "esutils";
@@ -16629,15 +17547,6 @@ let
         sha512 = "z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==";
       };
     };
-    "event-stream-0.5.3" = {
-      name = "event-stream";
-      packageName = "event-stream";
-      version = "0.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/event-stream/-/event-stream-0.5.3.tgz";
-        sha1 = "b77b9309f7107addfeab63f0c0eafd8db0bd8c1c";
-      };
-    };
     "event-stream-0.9.8" = {
       name = "event-stream";
       packageName = "event-stream";
@@ -16701,15 +17610,6 @@ let
         sha1 = "1c86991d816ad1e504750e73874224ecf3bec508";
       };
     };
-    "eventemitter3-2.0.3" = {
-      name = "eventemitter3";
-      packageName = "eventemitter3";
-      version = "2.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz";
-        sha1 = "b5e1079b59fb5e1ba2771c0a993be060a58c99ba";
-      };
-    };
     "eventemitter3-3.1.2" = {
       name = "eventemitter3";
       packageName = "eventemitter3";
@@ -16719,13 +17619,13 @@ let
         sha512 = "tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==";
       };
     };
-    "eventemitter3-4.0.4" = {
+    "eventemitter3-4.0.7" = {
       name = "eventemitter3";
       packageName = "eventemitter3";
-      version = "4.0.4";
+      version = "4.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz";
-        sha512 = "rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==";
+        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz";
+        sha512 = "8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==";
       };
     };
     "events-1.1.1" = {
@@ -16746,13 +17646,13 @@ let
         sha512 = "3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==";
       };
     };
-    "events-3.1.0" = {
+    "events-3.2.0" = {
       name = "events";
       packageName = "events";
-      version = "3.1.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/events/-/events-3.1.0.tgz";
-        sha512 = "Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==";
+        url = "https://registry.npmjs.org/events/-/events-3.2.0.tgz";
+        sha512 = "/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==";
       };
     };
     "events.node-0.4.9" = {
@@ -16863,13 +17763,13 @@ let
         sha512 = "r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==";
       };
     };
-    "execa-4.0.2" = {
+    "execa-4.0.3" = {
       name = "execa";
       packageName = "execa";
-      version = "4.0.2";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/execa/-/execa-4.0.2.tgz";
-        sha512 = "QI2zLa6CjGWdiQsmSkZoGtDx2N+cQIGb3yNolGTdjSQzydzLgYYf8LRuagp7S7fPimjcrzUDSUFd/MgzELMi4Q==";
+        url = "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz";
+        sha512 = "WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==";
       };
     };
     "execall-1.0.0" = {
@@ -17025,13 +17925,31 @@ let
         sha1 = "3a2ad27f7bebc90fc533d110d7c6d83097bcd057";
       };
     };
-    "express-session-1.17.0" = {
-      name = "express-session";
-      packageName = "express-session";
-      version = "1.17.0";
+    "express-logging-1.1.1" = {
+      name = "express-logging";
+      packageName = "express-logging";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express-logging/-/express-logging-1.1.1.tgz";
+        sha1 = "62839618cbab5bb3610f1a1c1485352fe9d26c2a";
+      };
+    };
+    "express-normalize-query-params-middleware-0.5.1" = {
+      name = "express-normalize-query-params-middleware";
+      packageName = "express-normalize-query-params-middleware";
+      version = "0.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/express-session/-/express-session-1.17.0.tgz";
-        sha512 = "t4oX2z7uoSqATbMfsxWMbNjAL0T5zpvcJCk3Z9wnPPN7ibddhnmDZXHfEcoBMG2ojKXZoCyPMc5FbtK+G7SoDg==";
+        url = "https://registry.npmjs.org/express-normalize-query-params-middleware/-/express-normalize-query-params-middleware-0.5.1.tgz";
+        sha1 = "dbe1e8139aecb234fb6adb5c0059c75db9733d2a";
+      };
+    };
+    "express-openapi-6.0.0" = {
+      name = "express-openapi";
+      packageName = "express-openapi";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express-openapi/-/express-openapi-6.0.0.tgz";
+        sha512 = "WQGmghzn+loQsIQUEnLZ0HVKCLhIBVcURvrAhyt6mOqsFsG2tBYhaNKX728EOz2aMXRhEQhkQ+RXQsIFpbS6IA==";
       };
     };
     "express-session-1.17.1" = {
@@ -17115,15 +18033,6 @@ let
         sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
       };
     };
-    "extend-shallow-1.1.4" = {
-      name = "extend-shallow";
-      packageName = "extend-shallow";
-      version = "1.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz";
-        sha1 = "19d6bf94dfc09d76ba711f39b872d21ff4dd9071";
-      };
-    };
     "extend-shallow-2.0.1" = {
       name = "extend-shallow";
       packageName = "extend-shallow";
@@ -17205,15 +18114,6 @@ let
         sha512 = "qRW6y9eKF0VbCyOoOEtFhzJ3uykAw8GKwQVXyAIqwocyEWW4m+v+evec34RwtUkkxxHh7NKBLJ6AnXM8W4dH5w==";
       };
     };
-    "extract-files-8.1.0" = {
-      name = "extract-files";
-      packageName = "extract-files";
-      version = "8.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/extract-files/-/extract-files-8.1.0.tgz";
-        sha512 = "PTGtfthZK79WUMk+avLmwx3NGdU8+iVFXC2NMGxKsn0MnihOG2lvumj+AZo8CTwTrwjXDgZ5tztbRlEdRjBonQ==";
-      };
-    };
     "extract-stack-1.0.0" = {
       name = "extract-stack";
       packageName = "extract-stack";
@@ -17223,6 +18123,15 @@ let
         sha1 = "b97acaf9441eea2332529624b732fc5a1c8165fa";
       };
     };
+    "extract-stack-2.0.0" = {
+      name = "extract-stack";
+      packageName = "extract-stack";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extract-stack/-/extract-stack-2.0.0.tgz";
+        sha512 = "AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ==";
+      };
+    };
     "extract-zip-1.7.0" = {
       name = "extract-zip";
       packageName = "extract-zip";
@@ -17358,6 +18267,15 @@ let
         sha512 = "xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==";
       };
     };
+    "fast-equals-1.6.3" = {
+      name = "fast-equals";
+      packageName = "fast-equals";
+      version = "1.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-equals/-/fast-equals-1.6.3.tgz";
+        sha512 = "4WKW0AL5+WEqO0zWavAfYGY1qwLsBgE//DN4TTcVEN2UlINgkv9b3vm2iHicoenWKSX9mKWmGOsU/iI5IST7pQ==";
+      };
+    };
     "fast-glob-2.2.7" = {
       name = "fast-glob";
       packageName = "fast-glob";
@@ -17412,6 +18330,15 @@ let
         sha1 = "0178dcdee023b92905193af0959e8a7639cfdcb9";
       };
     };
+    "fast-levenshtein-1.1.4" = {
+      name = "fast-levenshtein";
+      packageName = "fast-levenshtein";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz";
+        sha1 = "e6a754cc8f15e58987aa9cbd27af66fd6f4e5af9";
+      };
+    };
     "fast-levenshtein-2.0.6" = {
       name = "fast-levenshtein";
       packageName = "fast-levenshtein";
@@ -17448,6 +18375,15 @@ let
         sha512 = "Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==";
       };
     };
+    "fast-stringify-1.1.2" = {
+      name = "fast-stringify";
+      packageName = "fast-stringify";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-stringify/-/fast-stringify-1.1.2.tgz";
+        sha512 = "SfslXjiH8km0WnRiuPfpUKwlZjW5I878qsOm+2x8x3TgqmElOOLh1rgJFb+PolNdNRK3r8urEefqx0wt7vx1dA==";
+      };
+    };
     "fast-text-encoding-1.0.3" = {
       name = "fast-text-encoding";
       packageName = "fast-text-encoding";
@@ -17520,13 +18456,13 @@ let
         sha512 = "DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==";
       };
     };
-    "fd-lock-1.1.0" = {
+    "fd-lock-1.1.1" = {
       name = "fd-lock";
       packageName = "fd-lock";
-      version = "1.1.0";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fd-lock/-/fd-lock-1.1.0.tgz";
-        sha512 = "efuHbyOAfahrNtc91KUz+hpptp+HoFHj9aoUuffW8/5/iBua+pAv9se01VppWVAzCqj7D93KpQEoYyqTq2tYZQ==";
+        url = "https://registry.npmjs.org/fd-lock/-/fd-lock-1.1.1.tgz";
+        sha512 = "Ng+IXbq6LPMDvvVb0Vr325NjqhPwqlLIvmf43ii7t3WQvo2sHU6V6jQY1cclflxPaPfvNUAuD5VdPuIO1sp50g==";
       };
     };
     "fd-read-stream-1.1.0" = {
@@ -17628,13 +18564,13 @@ let
         sha512 = "bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==";
       };
     };
-    "file-exists-dazinatorfork-1.0.2" = {
-      name = "file-exists-dazinatorfork";
-      packageName = "file-exists-dazinatorfork";
-      version = "1.0.2";
+    "file-size-0.0.5" = {
+      name = "file-size";
+      packageName = "file-size";
+      version = "0.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/file-exists-dazinatorfork/-/file-exists-dazinatorfork-1.0.2.tgz";
-        sha512 = "r70c72ln2YHzQINNfxDp02hAhbGkt1HffZ+Du8oetWDLjDtFja/Lm10lUaSh9e+wD+7VDvPee0b0C9SAy8pWZg==";
+        url = "https://registry.npmjs.org/file-size/-/file-size-0.0.5.tgz";
+        sha1 = "057d43c3a3ed735da3f90d6052ab380f1e6d5e3b";
       };
     };
     "file-type-10.11.0" = {
@@ -17646,13 +18582,13 @@ let
         sha512 = "uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==";
       };
     };
-    "file-type-14.1.3" = {
+    "file-type-14.7.1" = {
       name = "file-type";
       packageName = "file-type";
-      version = "14.1.3";
+      version = "14.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/file-type/-/file-type-14.1.3.tgz";
-        sha512 = "fTTNfpY1QxlpKCrA5bRxZL/6f7+6jUCJkOCCzFkAI+tmLu5lfX+4Zo22GG1orRhVH7Dx0fHtMFXq0++NDjKn/w==";
+        url = "https://registry.npmjs.org/file-type/-/file-type-14.7.1.tgz";
+        sha512 = "sXAMgFk67fQLcetXustxfKX+PZgHIUFn96Xld9uH8aXPdX3xOp0/jg9OdouVTvQrf7mrn+wAa4jN/y9fUOOiRA==";
       };
     };
     "file-type-3.9.0" = {
@@ -17772,15 +18708,6 @@ let
         sha512 = "5H3RqSaJp12THfZiNWodYM7TiKfQvrpX+EIOrB1XvCceTys4yvfEIl8wDp+/yI8qj6Bxym8m0NYWwVXDAet/+A==";
       };
     };
-    "filing-cabinet-2.5.1" = {
-      name = "filing-cabinet";
-      packageName = "filing-cabinet";
-      version = "2.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/filing-cabinet/-/filing-cabinet-2.5.1.tgz";
-        sha512 = "GWOdObzou2L0HrJUk8MpJa01q0ZOwuTwTssM2+P+ABJWEGlVWd6ueEatANFdin94/3rdkVSdqpH14VqCNqp3RA==";
-      };
-    };
     "fill-range-2.2.4" = {
       name = "fill-range";
       packageName = "fill-range";
@@ -17826,15 +18753,6 @@ let
         sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
       };
     };
-    "find-0.3.0" = {
-      name = "find";
-      packageName = "find";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/find/-/find-0.3.0.tgz";
-        sha512 = "iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw==";
-      };
-    };
     "find-cache-dir-2.1.0" = {
       name = "find-cache-dir";
       packageName = "find-cache-dir";
@@ -17853,15 +18771,6 @@ let
         sha512 = "t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==";
       };
     };
-    "find-index-0.1.1" = {
-      name = "find-index";
-      packageName = "find-index";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz";
-        sha1 = "675d358b2ca3892d795a1ab47232f8b6e2e0dde4";
-      };
-    };
     "find-process-1.4.3" = {
       name = "find-process";
       packageName = "find-process";
@@ -17916,6 +18825,15 @@ let
         sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==";
       };
     };
+    "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==";
+      };
+    };
     "find-versions-2.0.0" = {
       name = "find-versions";
       packageName = "find-versions";
@@ -17979,22 +18897,13 @@ let
         sha512 = "ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==";
       };
     };
-    "firefox-profile-1.3.1" = {
+    "firefox-profile-2.0.0" = {
       name = "firefox-profile";
       packageName = "firefox-profile";
-      version = "1.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/firefox-profile/-/firefox-profile-1.3.1.tgz";
-        sha512 = "8q7DnwVIXvuJuBm1shr5ivRh0Ih2ytWwOIMwHInDSlVyrjQVXy7Ik0frItDdWb/P5CIpQFcMk9fPsUwNqi2lyQ==";
-      };
-    };
-    "first-chunk-stream-1.0.0" = {
-      name = "first-chunk-stream";
-      packageName = "first-chunk-stream";
-      version = "1.0.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz";
-        sha1 = "59bfb50cd905f60d7c394cd3d9acaab4e6ad934e";
+        url = "https://registry.npmjs.org/firefox-profile/-/firefox-profile-2.0.0.tgz";
+        sha512 = "BPfcUISOV6+UwF6uqo5QS8iuFL6XZvHCm+1iuynIJ7fe1zea69Is77/n/098fp0a9sZ94lvT8rpYB15S/riSaA==";
       };
     };
     "first-chunk-stream-2.0.0" = {
@@ -18015,6 +18924,15 @@ let
         sha512 = "LNRvR4hr/S8cXXkIY5pTgVP7L3tq6LlYWcg9nWBuW7o1NMxKZo6oOVa/6GIekMGI0Iw7uC+HWimMe9u/VAeKqw==";
       };
     };
+    "first-chunk-stream-4.0.0" = {
+      name = "first-chunk-stream";
+      packageName = "first-chunk-stream";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-4.0.0.tgz";
+        sha512 = "8TOz/mJp7+zc2HN63vnJHotwceq4gQI1+/gdJVnJcG4dEB96oUxw7wV9We4QKjSFWUc/V0ADDfaGba5cDoG6EA==";
+      };
+    };
     "fkill-6.2.0" = {
       name = "fkill";
       packageName = "fkill";
@@ -18051,13 +18969,13 @@ let
         sha512 = "Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==";
       };
     };
-    "flat-5.0.0" = {
+    "flat-5.0.2" = {
       name = "flat";
       packageName = "flat";
-      version = "5.0.0";
+      version = "5.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flat/-/flat-5.0.0.tgz";
-        sha512 = "6KSMM+cHHzXC/hpldXApL2S8Uz+QZv+tq5o/L0KQYleoG+GcwrnIJhTWC7tCOiKQp8D/fIvryINU1OZCCwevjA==";
+        url = "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz";
+        sha512 = "b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==";
       };
     };
     "flat-cache-1.3.4" = {
@@ -18150,13 +19068,13 @@ let
         sha512 = "jlbUu0XkbpXeXhan5xyTqVK1jmEKNxE8hpzznI3TThHTr76GiFwK0iRzhDo4KNy+S9h/KxHaqVhTP86vA6wHCg==";
       };
     };
-    "flow-parser-0.128.0" = {
+    "flow-parser-0.133.0" = {
       name = "flow-parser";
       packageName = "flow-parser";
-      version = "0.128.0";
+      version = "0.133.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.128.0.tgz";
-        sha512 = "BOqwccrxdGQjR09H9/YvmgrY6xCyhfRqqZ6HOiDuPBYkSVd5rKamCLs2S4D7Yd0ltwBtnP3rp7vzaBTIJK1+Iw==";
+        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.133.0.tgz";
+        sha512 = "ONvDDUcQVY7bMQG4ht7Ti+2IYjBBPphkc7fGmHXZHrrNNjGG4tykLZjIrIx710/k77x2djaY9VKlHC342Luy3A==";
       };
     };
     "fluent-ffmpeg-2.1.2" = {
@@ -18276,6 +19194,15 @@ let
         sha512 = "3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==";
       };
     };
+    "flush-write-stream-2.0.0" = {
+      name = "flush-write-stream";
+      packageName = "flush-write-stream";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-2.0.0.tgz";
+        sha512 = "uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g==";
+      };
+    };
     "fn-name-2.0.1" = {
       name = "fn-name";
       packageName = "fn-name";
@@ -18285,13 +19212,31 @@ let
         sha1 = "5214d7537a4d06a4a301c0cc262feb84188002e7";
       };
     };
-    "follow-redirects-1.12.1" = {
+    "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==";
+      };
+    };
+    "folder-walker-3.2.0" = {
+      name = "folder-walker";
+      packageName = "folder-walker";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/folder-walker/-/folder-walker-3.2.0.tgz";
+        sha512 = "VjAQdSLsl6AkpZNyrQJfO7BXLo4chnStqb055bumZMbRUPpVuPN3a4ktsnRCmrFZjtMlYLkyXiR5rAs4WOpC4Q==";
+      };
+    };
+    "follow-redirects-1.13.0" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.12.1";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.12.1.tgz";
-        sha512 = "tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz";
+        sha512 = "aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==";
       };
     };
     "follow-redirects-1.5.10" = {
@@ -18393,22 +19338,22 @@ let
         sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
       };
     };
-    "forever-monitor-3.0.0" = {
+    "forever-monitor-3.0.1" = {
       name = "forever-monitor";
       packageName = "forever-monitor";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/forever-monitor/-/forever-monitor-3.0.0.tgz";
-        sha512 = "F3E8C9CTPK+uRGdVTMBHGo7mHX+KRtClLzkegR6ux1yy+ByxOziumpTzxajzfhICHfYdnGWY4Bokl8dirYsDeA==";
+        url = "https://registry.npmjs.org/forever-monitor/-/forever-monitor-3.0.1.tgz";
+        sha512 = "47VfT5AYpxn1bnsnH6UfpBWKpMVnSz42MZwH+hwz/wACd9THyUu/fRoCRIT758fzCAbRoHIlkVUAL+WmlxSKeg==";
       };
     };
-    "fork-ts-checker-webpack-plugin-5.0.4" = {
+    "fork-ts-checker-webpack-plugin-5.1.0" = {
       name = "fork-ts-checker-webpack-plugin";
       packageName = "fork-ts-checker-webpack-plugin";
-      version = "5.0.4";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-5.0.4.tgz";
-        sha512 = "nSEqM3KhAjTf8VmuZym2k6WadIasvXybJExFegqMJDkTrOBOY8yGjsXG2FGFJls3DOHtXKzrr3Bv0ZD1LaM7cA==";
+        url = "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-5.1.0.tgz";
+        sha512 = "vuKyEjSLGbhQbEr5bifXXOkr9iV73L6n72mHoHIv7okvrf7O7z6RKeplM6C6ATPsukoQivij+Ba1vcptL60Z2g==";
       };
     };
     "form-data-1.0.0-rc3" = {
@@ -18465,13 +19410,13 @@ let
         sha512 = "CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==";
       };
     };
-    "form-urlencoded-4.1.4" = {
+    "form-urlencoded-4.2.1" = {
       name = "form-urlencoded";
       packageName = "form-urlencoded";
-      version = "4.1.4";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-4.1.4.tgz";
-        sha512 = "R7Vytos0gMYuPQTMwnNzvK9PBItNV+Qkm/pvghEZI3j2kMrzZmJlczAgHFmt12VV+IRYQXgTlSGP1PKAsMCIUA==";
+        url = "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-4.2.1.tgz";
+        sha512 = "0eFJroOH2qaqc/630d4YZpmsyKmh6sfq/1z3YMXvFab0O6teGnf8640C7gufikwbQJFaC6nPlG4d/GiYVN+Dcw==";
       };
     };
     "format-0.2.2" = {
@@ -18483,6 +19428,15 @@ let
         sha1 = "d6170107e9efdc4ed30c9dc39016df942b5cb58b";
       };
     };
+    "format-util-1.0.5" = {
+      name = "format-util";
+      packageName = "format-util";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/format-util/-/format-util-1.0.5.tgz";
+        sha512 = "varLbTj0e0yVyRpqQhuWV+8hlePAgaoFRhNFj50BNjEIrw1/DphHSObtqwskVCPWNgzwPoQrZAbfa/SBiicNeg==";
+      };
+    };
     "formidable-1.0.11" = {
       name = "formidable";
       packageName = "formidable";
@@ -18519,22 +19473,13 @@ let
         sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
       };
     };
-    "fp-ts-2.6.6" = {
+    "fp-ts-2.8.2" = {
       name = "fp-ts";
       packageName = "fp-ts";
-      version = "2.6.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.6.6.tgz";
-        sha512 = "zYfhPNb2fwpkrJ5RpgEMsrvMv8r9x+guJptnaEBF295YtoVr3+jbGDXZqSqPcfEWas5Trj3FpbDkzmXbx0YYzQ==";
-      };
-    };
-    "fraction.js-4.0.12" = {
-      name = "fraction.js";
-      packageName = "fraction.js";
-      version = "4.0.12";
+      version = "2.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.12.tgz";
-        sha512 = "8Z1K0VTG4hzYY7kA/1sj4/r1/RWLBD3xwReT/RCrUCbzPszjNQCCsy3ktkU/eaEqX3MYa4pY37a52eiBlPMlhA==";
+        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.8.2.tgz";
+        sha512 = "YKLBW75Rp+L9DuY1jr7QO6mZLTmJjy7tOqSAMcB2q2kBomqLjBMyV7dotpcnZmUYY6khMsfgYWtPbUDOFcNmkA==";
       };
     };
     "fragment-cache-0.2.1" = {
@@ -18600,6 +19545,15 @@ let
         sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af";
       };
     };
+    "from2-array-0.0.4" = {
+      name = "from2-array";
+      packageName = "from2-array";
+      version = "0.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz";
+        sha1 = "eafc16b65f6e2719bcd57fdc1869005ac1332cd6";
+      };
+    };
     "fs-capacitor-2.0.4" = {
       name = "fs-capacitor";
       packageName = "fs-capacitor";
@@ -18681,15 +19635,6 @@ let
         sha1 = "cd3ce5f7e7cb6145883fcae3191e9877f8587950";
       };
     };
-    "fs-extra-3.0.1" = {
-      name = "fs-extra";
-      packageName = "fs-extra";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz";
-        sha1 = "3794f378c58b342ea7dbbb23095109c4b3b62291";
-      };
-    };
     "fs-extra-4.0.3" = {
       name = "fs-extra";
       packageName = "fs-extra";
@@ -18780,6 +19725,15 @@ let
         sha512 = "fcSa+wyTqZa46iWweI7/ZiUfegOZl0SG8+dltIwFXo7+zYU9J9kpS3NB6pZcSlJdhvIwp81Adx2XhZorncxiaA==";
       };
     };
+    "fs-routes-2.0.0" = {
+      name = "fs-routes";
+      packageName = "fs-routes";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-routes/-/fs-routes-2.0.0.tgz";
+        sha512 = "oITW9GoYFZwYWR2aMDdUvr6W9O5mtzSizIVEUdeCQaFD6+BylwPSEP2+ZFWv1UYpE9kiPS3Hb0knh2PmFJcj6A==";
+      };
+    };
     "fs-write-stream-atomic-1.0.10" = {
       name = "fs-write-stream-atomic";
       packageName = "fs-write-stream-atomic";
@@ -18915,13 +19869,22 @@ let
         sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
       };
     };
-    "fuse.js-3.6.1" = {
+    "fuse.js-6.4.1" = {
       name = "fuse.js";
       packageName = "fuse.js";
-      version = "3.6.1";
+      version = "6.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz";
-        sha512 = "hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==";
+        url = "https://registry.npmjs.org/fuse.js/-/fuse.js-6.4.1.tgz";
+        sha512 = "+hAS7KYgLXontDh/vqffs7wIBw0ceb9Sx8ywZQhOsiQGcSO5zInGhttWOUYQYlvV/yYMJOacQ129Xs3mP3+oZQ==";
+      };
+    };
+    "fuzzy-0.1.3" = {
+      name = "fuzzy";
+      packageName = "fuzzy";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz";
+        sha1 = "4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8";
       };
     };
     "fuzzy-search-3.2.1" = {
@@ -18942,13 +19905,13 @@ let
         sha1 = "979e22f9451b4b38f051f7937c919dbacc692958";
       };
     };
-    "fx-runner-1.0.12" = {
+    "fx-runner-1.0.13" = {
       name = "fx-runner";
       packageName = "fx-runner";
-      version = "1.0.12";
+      version = "1.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fx-runner/-/fx-runner-1.0.12.tgz";
-        sha512 = "SLATlfKI2lyIcQsU8Sgfcwrni6PpC1VMTgp3aRomK/6azrzSQ3r63HqoTRliE/6JP8WjqVkIdCOGWk1ZqhfceA==";
+        url = "https://registry.npmjs.org/fx-runner/-/fx-runner-1.0.13.tgz";
+        sha512 = "Ces2bm+LNuXehkvmN1/Z+oEDkI/jHBp9xdyBtBy7hcgvF18/pv/D8F6A6kQgNkMZsnBgLEv+VvdDxyqkfkYycw==";
       };
     };
     "gauge-1.2.7" = {
@@ -18969,15 +19932,6 @@ let
         sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
       };
     };
-    "gaze-0.5.2" = {
-      name = "gaze";
-      packageName = "gaze";
-      version = "0.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz";
-        sha1 = "40b709537d24d1d45767db5a908689dfe69ac44f";
-      };
-    };
     "gaze-1.1.3" = {
       name = "gaze";
       packageName = "gaze";
@@ -19041,6 +19995,15 @@ 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";
@@ -19113,15 +20076,6 @@ let
         sha1 = "ead774abee72e20409433a066366023dd6887a41";
       };
     };
-    "get-own-enumerable-property-symbols-3.0.2" = {
-      name = "get-own-enumerable-property-symbols";
-      packageName = "get-own-enumerable-property-symbols";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz";
-        sha512 = "I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==";
-      };
-    };
     "get-package-type-0.1.0" = {
       name = "get-package-type";
       packageName = "get-package-type";
@@ -19158,6 +20112,15 @@ let
         sha512 = "/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==";
       };
     };
+    "get-port-5.1.1" = {
+      name = "get-port";
+      packageName = "get-port";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz";
+        sha512 = "g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==";
+      };
+    };
     "get-prototype-chain-1.0.1" = {
       name = "get-prototype-chain";
       packageName = "get-prototype-chain";
@@ -19248,13 +20211,13 @@ let
         sha512 = "GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==";
       };
     };
-    "get-stream-5.1.0" = {
+    "get-stream-5.2.0" = {
       name = "get-stream";
       packageName = "get-stream";
-      version = "5.1.0";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz";
-        sha512 = "EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==";
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz";
+        sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==";
       };
     };
     "get-uri-2.0.4" = {
@@ -19275,13 +20238,13 @@ let
         sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
       };
     };
-    "getmac-5.2.0" = {
+    "getmac-5.15.0" = {
       name = "getmac";
       packageName = "getmac";
-      version = "5.2.0";
+      version = "5.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/getmac/-/getmac-5.2.0.tgz";
-        sha512 = "FBQqEBO4hFlv//gtN8+x4tINgfb4noOGl3WCSGd9xaPRMkMK3Lt/FF1/dwiD3p7i2F0u3uL6oV61MQyHqYqVlw==";
+        url = "https://registry.npmjs.org/getmac/-/getmac-5.15.0.tgz";
+        sha512 = "+XN9PwRDWkZ1xFaQR5GOAPDqlK+eNi5M0QBfqeeJvFJaDrwZzplYg1N8uoOZSB9RtDoPcG58Xq2dOYnbZ23N2Q==";
       };
     };
     "getpass-0.1.6" = {
@@ -19311,6 +20274,15 @@ let
         sha1 = "ee95be37106fd8748a96f8d1db4baea89e1bfa8a";
       };
     };
+    "gh-release-fetch-1.0.3" = {
+      name = "gh-release-fetch";
+      packageName = "gh-release-fetch";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gh-release-fetch/-/gh-release-fetch-1.0.3.tgz";
+        sha512 = "Av+27/G9dJT5iPjFGZcHbjKJcTO1FrGIFQ3e8//9PJtNbK1QKbtm++R/rn8+OXH5ebtMGtXcVdyZrQLyf16i7g==";
+      };
+    };
     "git-apply-delta-0.0.7" = {
       name = "git-apply-delta";
       packageName = "git-apply-delta";
@@ -19392,6 +20364,15 @@ let
         sha1 = "7f51b804924d6c603fc142e3302998d4e0b4d906";
       };
     };
+    "git-repo-info-2.1.1" = {
+      name = "git-repo-info";
+      packageName = "git-repo-info";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/git-repo-info/-/git-repo-info-2.1.1.tgz";
+        sha512 = "8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==";
+      };
+    };
     "git-rev-sync-2.0.0" = {
       name = "git-rev-sync";
       packageName = "git-rev-sync";
@@ -19428,22 +20409,22 @@ let
         sha512 = "8mqO63M60lCiNR+6ROvXuX4VI6pVAru4wMn3uUfxq0xmpNwrZYC4Rkrt5rSGUPumJ43ZUJyeMXXq60v03PUY/g==";
       };
     };
-    "git-up-4.0.1" = {
+    "git-up-4.0.2" = {
       name = "git-up";
       packageName = "git-up";
-      version = "4.0.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/git-up/-/git-up-4.0.1.tgz";
-        sha512 = "LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw==";
+        url = "https://registry.npmjs.org/git-up/-/git-up-4.0.2.tgz";
+        sha512 = "kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ==";
       };
     };
-    "git-url-parse-11.1.2" = {
+    "git-url-parse-11.1.3" = {
       name = "git-url-parse";
       packageName = "git-url-parse";
-      version = "11.1.2";
+      version = "11.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.1.2.tgz";
-        sha512 = "gZeLVGY8QVKMIkckncX+iCq2/L8PlwncvDFKiWkBn9EtCfYDbliRTTp6qzyQ1VMdITUfq7293zDzfpjdiGASSQ==";
+        url = "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.1.3.tgz";
+        sha512 = "GPsfwticcu52WQ+eHp0IYkAyaOASgYdtsQDIt4rUp6GbiNt1P9ddrh3O0kQB0eD4UJZszVqNT3+9Zwcg40fywA==";
       };
     };
     "gitconfiglocal-1.0.0" = {
@@ -19455,6 +20436,15 @@ let
         sha1 = "41d045f3851a5ea88f03f24ca1c6178114464b9b";
       };
     };
+    "gitconfiglocal-2.1.0" = {
+      name = "gitconfiglocal";
+      packageName = "gitconfiglocal";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-2.1.0.tgz";
+        sha512 = "qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg==";
+      };
+    };
     "github-from-package-0.0.0" = {
       name = "github-from-package";
       packageName = "github-from-package";
@@ -19491,15 +20481,6 @@ let
         sha512 = "0YCjVpE3pS5XWlN3J4X7AiAx65+nqAI54LndtVFnQZB6G/FVLkZH8y8V6R3cIoOQR4pUdfwQGd1iwyoXHJ4Qfw==";
       };
     };
-    "glob-3.1.21" = {
-      name = "glob";
-      packageName = "glob";
-      version = "3.1.21";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz";
-        sha1 = "d29e0a055dea5138f4d07ed40e8982e83c2066cd";
-      };
-    };
     "glob-3.2.11" = {
       name = "glob";
       packageName = "glob";
@@ -19509,15 +20490,6 @@ let
         sha1 = "4a973f635b9190f715d10987d5c00fd2815ebe3d";
       };
     };
-    "glob-4.5.3" = {
-      name = "glob";
-      packageName = "glob";
-      version = "4.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz";
-        sha1 = "c6cb73d3226c1efef04de3c56d012f03377ee15f";
-      };
-    };
     "glob-5.0.15" = {
       name = "glob";
       packageName = "glob";
@@ -19554,15 +20526,6 @@ let
         sha512 = "MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==";
       };
     };
-    "glob-7.1.3" = {
-      name = "glob";
-      packageName = "glob";
-      version = "7.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz";
-        sha512 = "vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==";
-      };
-    };
     "glob-7.1.5" = {
       name = "glob";
       packageName = "glob";
@@ -19617,15 +20580,6 @@ let
         sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
       };
     };
-    "glob-stream-3.1.18" = {
-      name = "glob-stream";
-      packageName = "glob-stream";
-      version = "3.1.18";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz";
-        sha1 = "9170a5f12b790306fdfe598f313f8f7954fd143b";
-      };
-    };
     "glob-stream-6.1.0" = {
       name = "glob-stream";
       packageName = "glob-stream";
@@ -19644,31 +20598,13 @@ let
         sha1 = "8c5a1494d2066c570cc3bfe4496175acc4d502ab";
       };
     };
-    "glob-watcher-0.0.6" = {
-      name = "glob-watcher";
-      packageName = "glob-watcher";
-      version = "0.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz";
-        sha1 = "b95b4a8df74b39c83298b0c05c978b4d9a3b710b";
-      };
-    };
-    "glob-watcher-5.0.3" = {
+    "glob-watcher-5.0.5" = {
       name = "glob-watcher";
       packageName = "glob-watcher";
-      version = "5.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz";
-        sha512 = "8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==";
-      };
-    };
-    "glob2base-0.0.12" = {
-      name = "glob2base";
-      packageName = "glob2base";
-      version = "0.0.12";
+      version = "5.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz";
-        sha1 = "9d419b3e28f12e83a362164a277055922c9c0d56";
+        url = "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz";
+        sha512 = "zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==";
       };
     };
     "global-4.3.2" = {
@@ -19680,6 +20616,15 @@ let
         sha1 = "e76989268a6c74c38908b1305b10fc0e394e9d0f";
       };
     };
+    "global-4.4.0" = {
+      name = "global";
+      packageName = "global";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/global/-/global-4.4.0.tgz";
+        sha512 = "wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==";
+      };
+    };
     "global-agent-2.1.12" = {
       name = "global-agent";
       packageName = "global-agent";
@@ -19689,6 +20634,15 @@ let
         sha512 = "caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==";
       };
     };
+    "global-cache-dir-1.0.1" = {
+      name = "global-cache-dir";
+      packageName = "global-cache-dir";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/global-cache-dir/-/global-cache-dir-1.0.1.tgz";
+        sha512 = "wYGh6O3Xkx1LsMXQpObr/uu3PsFpbWhpbslgn9Xq52rbDZ6YOwJcQtU5R4lSEQgCDtXLItV9EH5X1F/VnBTAlw==";
+      };
+    };
     "global-dirs-0.1.1" = {
       name = "global-dirs";
       packageName = "global-dirs";
@@ -19807,6 +20761,15 @@ let
         sha512 = "BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==";
       };
     };
+    "globals-9.18.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "9.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz";
+        sha512 = "S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==";
+      };
+    };
     "globalthis-1.0.1" = {
       name = "globalthis";
       packageName = "globalthis";
@@ -19834,15 +20797,6 @@ let
         sha512 = "7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==";
       };
     };
-    "globby-11.0.0" = {
-      name = "globby";
-      packageName = "globby";
-      version = "11.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/globby/-/globby-11.0.0.tgz";
-        sha512 = "iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg==";
-      };
-    };
     "globby-11.0.1" = {
       name = "globby";
       packageName = "globby";
@@ -19915,15 +20869,6 @@ let
         sha512 = "uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==";
       };
     };
-    "globule-0.1.0" = {
-      name = "globule";
-      packageName = "globule";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz";
-        sha1 = "d9c8edde1da79d125a151b79533b978676346ae5";
-      };
-    };
     "globule-1.3.2" = {
       name = "globule";
       packageName = "globule";
@@ -19996,22 +20941,31 @@ let
         sha1 = "d9430ba32f6a30218243884418767340aafc0400";
       };
     };
-    "got-10.6.0" = {
+    "got-11.4.0" = {
       name = "got";
       packageName = "got";
-      version = "10.6.0";
+      version = "11.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/got/-/got-10.6.0.tgz";
-        sha512 = "3LIdJNTdCFbbJc+h/EH0V5lpNpbJ6Bfwykk21lcQvQsEcrzdi/ltCyQehFHLzJ/ka0UMH4Slg0hkYvAZN9qUDg==";
+        url = "https://registry.npmjs.org/got/-/got-11.4.0.tgz";
+        sha512 = "XysJZuZNVpaQ37Oo2LV90MIkPeYITehyy1A0QzO1JwOXm8EWuEf9eeGk2XuHePvLEGnm9AVOI37bHwD6KYyBtg==";
       };
     };
-    "got-10.7.0" = {
+    "got-11.5.2" = {
       name = "got";
       packageName = "got";
-      version = "10.7.0";
+      version = "11.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/got/-/got-10.7.0.tgz";
-        sha512 = "aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==";
+        url = "https://registry.npmjs.org/got/-/got-11.5.2.tgz";
+        sha512 = "yUhpEDLeuGiGJjRSzEq3kvt4zJtAcjKmhIiwNp/eUs75tRlXfWcHo5tcBaMQtnjHWC7nQYT5HkY/l0QOQTkVww==";
+      };
+    };
+    "got-11.6.0" = {
+      name = "got";
+      packageName = "got";
+      version = "11.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/got/-/got-11.6.0.tgz";
+        sha512 = "ErhWb4IUjQzJ3vGs3+RR12NWlBDDkRciFpAkQ1LPUxi6OnwhGj07gQxjPsyIk69s7qMihwKrKquV6VQq7JNYLA==";
       };
     };
     "got-6.7.1" = {
@@ -20131,22 +21085,22 @@ let
         sha512 = "jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==";
       };
     };
-    "graphql-14.6.0" = {
+    "graphql-14.7.0" = {
       name = "graphql";
       packageName = "graphql";
-      version = "14.6.0";
+      version = "14.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql/-/graphql-14.6.0.tgz";
-        sha512 = "VKzfvHEKybTKjQVpTFrA5yUq2S9ihcZvfJAtsDBBCuV6wauPu1xl/f9ehgVf0FcEJJs4vz6ysb/ZMkGigQZseg==";
+        url = "https://registry.npmjs.org/graphql/-/graphql-14.7.0.tgz";
+        sha512 = "l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA==";
       };
     };
-    "graphql-15.1.0" = {
+    "graphql-15.3.0" = {
       name = "graphql";
       packageName = "graphql";
-      version = "15.1.0";
+      version = "15.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql/-/graphql-15.1.0.tgz";
-        sha512 = "0TVyfOlCGhv/DBczQkJmwXOK6fjWkjzY3Pt7wY8i0gcYXq8aogG3weCsg48m72lywKSeOqedEHvVPOvZvSD51Q==";
+        url = "https://registry.npmjs.org/graphql/-/graphql-15.3.0.tgz";
+        sha512 = "GTCJtzJmkFLWRfFJuoo9RWWa/FfamUHgiFosxi/X1Ani4AVWbeyBenZTNX6dM+7WSbbFfTo/25eh0LLkwHMw2w==";
       };
     };
     "graphql-anywhere-4.2.7" = {
@@ -20158,22 +21112,22 @@ let
         sha512 = "fJHvVywWVWjiHuPIMs16Nfjf4zdQUwSO1LKycwBJCWIPeoeQ8LqXK2BgYoZAHkhKEFktZZeYyzS4o/uIUG0z5A==";
       };
     };
-    "graphql-config-3.0.2" = {
+    "graphql-config-3.0.3" = {
       name = "graphql-config";
       packageName = "graphql-config";
-      version = "3.0.2";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-config/-/graphql-config-3.0.2.tgz";
-        sha512 = "efoimZ4F2wF2OwZJzPq2KdPjQs1K+UgJSfsHoHBBA0TwveGyQ/0kS3lUphhJg/JXIrZociuRkfjrk8JC4iPPJQ==";
+        url = "https://registry.npmjs.org/graphql-config/-/graphql-config-3.0.3.tgz";
+        sha512 = "MBY0wEjvcgJtZUyoqpPvOE1e5qPI0hJaa1gKTqjonSFiCsNHX2lykNjpOPcodmAgH1V06ELxhGnm9kcVzqvi/g==";
       };
     };
-    "graphql-extensions-0.12.3" = {
+    "graphql-extensions-0.12.4" = {
       name = "graphql-extensions";
       packageName = "graphql-extensions";
-      version = "0.12.3";
+      version = "0.12.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.3.tgz";
-        sha512 = "W7iT0kzlwTiZU7fXfw9IgWnsqVj7EFLd0/wVcZZRAbR8L3f4+YsGls0oxKdsrvYBnbG347BXKQmIyo6GTEk4XA==";
+        url = "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.4.tgz";
+        sha512 = "GnR4LiWk3s2bGOqIh6V1JgnSXw2RCH4NOgbCFEWvB6JqWHXTlXnLZ8bRSkCiD4pltv7RHUPWqN/sGh8R6Ae/ag==";
       };
     };
     "graphql-subscriptions-1.1.0" = {
@@ -20185,13 +21139,13 @@ let
         sha512 = "6WzlBFC0lWmXJbIVE8OgFgXIP4RJi3OQgTPa0DVMsDXdpRDjTsM1K9wfl5HSYX7R87QAGlvcv2Y4BIZa/ItonA==";
       };
     };
-    "graphql-tag-2.10.3" = {
+    "graphql-tag-2.11.0" = {
       name = "graphql-tag";
       packageName = "graphql-tag";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.10.3.tgz";
-        sha512 = "4FOv3ZKfA4WdOKJeHdz6B3F/vxBLSgmBcGeAFPf4n1F64ltJUvOOerNj0rsJxONQGdhUMynQIvd6LzB+1J5oKA==";
+        url = "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.11.0.tgz";
+        sha512 = "VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA==";
       };
     };
     "graphql-tools-4.0.8" = {
@@ -20203,15 +21157,6 @@ let
         sha512 = "MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==";
       };
     };
-    "graphql-tools-5.0.0" = {
-      name = "graphql-tools";
-      packageName = "graphql-tools";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-tools/-/graphql-tools-5.0.0.tgz";
-        sha512 = "5zn3vtn//382b7G3Wzz3d5q/sh+f7tVrnxeuhTMTJ7pWJijNqLxH7VEzv8VwXCq19zAzHYEosFHfXiK7qzvk7w==";
-      };
-    };
     "graphql-type-json-0.2.4" = {
       name = "graphql-type-json";
       packageName = "graphql-type-json";
@@ -20302,24 +21247,6 @@ let
         sha512 = "cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==";
       };
     };
-    "gulp-3.9.1" = {
-      name = "gulp";
-      packageName = "gulp";
-      version = "3.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz";
-        sha1 = "571ce45928dd40af6514fc4011866016c13845b4";
-      };
-    };
-    "gulp-clean-css-3.10.0" = {
-      name = "gulp-clean-css";
-      packageName = "gulp-clean-css";
-      version = "3.10.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-3.10.0.tgz";
-        sha512 = "7Isf9Y690o/Q5MVjEylH1H7L8WeZ89woW7DnhD5unTintOdZb67KdOayRgp9trUFo+f9UyJtuatV42e/+kghPg==";
-      };
-    };
     "gulp-cli-2.3.0" = {
       name = "gulp-cli";
       packageName = "gulp-cli";
@@ -20329,40 +21256,13 @@ let
         sha512 = "zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==";
       };
     };
-    "gulp-less-3.5.0" = {
-      name = "gulp-less";
-      packageName = "gulp-less";
-      version = "3.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/gulp-less/-/gulp-less-3.5.0.tgz";
-        sha512 = "FQLY7unaHdTOXG0jlwxeBQcWoPPrTMQZRA7HfYwSNi9IPVx5l7GJEN72mG4ri2yigp/f/VNGUAJnFMJHBmH3iw==";
-      };
-    };
-    "gulp-sourcemaps-2.6.5" = {
-      name = "gulp-sourcemaps";
-      packageName = "gulp-sourcemaps";
-      version = "2.6.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.5.tgz";
-        sha512 = "SYLBRzPTew8T5Suh2U8jCSDKY+4NARua4aqjj8HOysBh2tSgT9u4jc1FYirAdPx1akUxxDeK++fqw6Jg0LkQRg==";
-      };
-    };
-    "gulp-typescript-4.0.2" = {
-      name = "gulp-typescript";
-      packageName = "gulp-typescript";
-      version = "4.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-4.0.2.tgz";
-        sha512 = "Hhbn5Aa2l3T+tnn0KqsG6RRJmcYEsr3byTL2nBpNBeAK8pqug9Od4AwddU4JEI+hRw7mzZyjRbB8DDWR6paGVA==";
-      };
-    };
-    "gulp-uglify-3.0.2" = {
-      name = "gulp-uglify";
-      packageName = "gulp-uglify";
-      version = "3.0.2";
+    "gulp-eslint-3.0.1" = {
+      name = "gulp-eslint";
+      packageName = "gulp-eslint";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.2.tgz";
-        sha512 = "gk1dhB74AkV2kzqPMQBLA3jPoIAPd/nlNzP2XMDSG8XZrqnlCiDGAqC+rZOumzFvB5zOphlFh6yr3lgcAb/OOg==";
+        url = "https://registry.npmjs.org/gulp-eslint/-/gulp-eslint-3.0.1.tgz";
+        sha1 = "04e57e3e18c6974267c12cf6855dc717d4a313bd";
       };
     };
     "gulp-util-3.0.8" = {
@@ -20455,13 +21355,13 @@ let
         sha1 = "33481d0f1bbff600dd203d75812a6a5fba002e2a";
       };
     };
-    "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==";
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz";
+        sha512 = "nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==";
       };
     };
     "hard-rejection-2.1.0" = {
@@ -20743,6 +21643,15 @@ let
         sha1 = "78d7cbfc1e6d66303fe79837365984517b2f6ee1";
       };
     };
+    "hasha-5.2.0" = {
+      name = "hasha";
+      packageName = "hasha";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz";
+        sha512 = "2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==";
+      };
+    };
     "hasher-1.2.0" = {
       name = "hasher";
       packageName = "hasher";
@@ -20752,6 +21661,15 @@ let
         sha1 = "8b5341c3496124b0724ac8555fbb8ca363ebbb73";
       };
     };
+    "hashish-0.0.4" = {
+      name = "hashish";
+      packageName = "hashish";
+      version = "0.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz";
+        sha1 = "6d60bc6ffaf711b6afd60e426d077988014e6554";
+      };
+    };
     "hashlru-2.3.0" = {
       name = "hashlru";
       packageName = "hashlru";
@@ -20770,6 +21688,15 @@ let
         sha512 = "0FfLHmfArWOizbdwjL+Rc9QIBzqP80juicNl4S4NEPq5OYWBCgYrtYDPUDoSyQQ9IQlBn9W7++fpYQNzZSq/wQ==";
       };
     };
+    "hast-util-from-parse5-6.0.0" = {
+      name = "hast-util-from-parse5";
+      packageName = "hast-util-from-parse5";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.0.tgz";
+        sha512 = "3ZYnfKenbbkhhNdmOQqgH10vnvPivTdsOJCri+APn0Kty+nRkDHArnaX9Hiaf8H+Ig+vkNptL+SRY/6RwWJk1Q==";
+      };
+    };
     "hast-util-has-property-1.0.4" = {
       name = "hast-util-has-property";
       packageName = "hast-util-has-property";
@@ -20779,22 +21706,22 @@ let
         sha512 = "ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==";
       };
     };
-    "hast-util-is-body-ok-link-1.0.3" = {
+    "hast-util-is-body-ok-link-1.0.4" = {
       name = "hast-util-is-body-ok-link";
       packageName = "hast-util-is-body-ok-link";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-1.0.3.tgz";
-        sha512 = "NB8jW4iqT+iVld2oCjSk0T2S2FyR86rDZ7nKHx3WNf/WX16fjjdfoog6T+YeJFsPzszVKsNlVJL+k5c4asAHog==";
+        url = "https://registry.npmjs.org/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-1.0.4.tgz";
+        sha512 = "mFblNpLvFbD8dG2Nw5dJBYZkxIHeph1JAh5yr4huI7T5m8cV0zaXNiqzKPX/JdjA+tIDF7c33u9cxK132KRjyQ==";
       };
     };
-    "hast-util-is-element-1.0.4" = {
+    "hast-util-is-element-1.1.0" = {
       name = "hast-util-is-element";
       packageName = "hast-util-is-element";
-      version = "1.0.4";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.0.4.tgz";
-        sha512 = "NFR6ljJRvDcyPP5SbV7MyPBgF47X3BsskLnmw1U34yL+X6YC0MoBx9EyMg8Jtx4FzGH95jw8+c1VPLHaRA0wDQ==";
+        url = "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz";
+        sha512 = "oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==";
       };
     };
     "hast-util-parse-selector-2.2.4" = {
@@ -20806,13 +21733,31 @@ let
         sha512 = "gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA==";
       };
     };
-    "hast-util-to-string-1.0.3" = {
+    "hast-util-phrasing-1.0.5" = {
+      name = "hast-util-phrasing";
+      packageName = "hast-util-phrasing";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hast-util-phrasing/-/hast-util-phrasing-1.0.5.tgz";
+        sha512 = "P3uxm+8bnwcfAS/XpGie9wMmQXAQqsYhgQQKRwmWH/V6chiq0lmTy8KjQRJmYjusdMtNKGCUksdILSZy1suSpQ==";
+      };
+    };
+    "hast-util-to-nlcst-1.2.7" = {
+      name = "hast-util-to-nlcst";
+      packageName = "hast-util-to-nlcst";
+      version = "1.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hast-util-to-nlcst/-/hast-util-to-nlcst-1.2.7.tgz";
+        sha512 = "IeHm2Ndwu9G7xtLswt51k3zpprLMckg7ahsvvJAG6hTPXfg+pwIu4FS30lrcxyWVMzNt35ZEoW78z4QCFTp0qw==";
+      };
+    };
+    "hast-util-to-string-1.0.4" = {
       name = "hast-util-to-string";
       packageName = "hast-util-to-string";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-1.0.3.tgz";
-        sha512 = "3lDgDE5OdpTfP3aFeKRWEwdIZ4vprztvp+AoD+RhF7uGOBs1yBDWZFadxnjcUV4KCoI3vB9A7gdFO98hEXA90w==";
+        url = "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-1.0.4.tgz";
+        sha512 = "eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w==";
       };
     };
     "hast-util-whitespace-1.0.4" = {
@@ -20824,6 +21769,15 @@ let
         sha512 = "I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==";
       };
     };
+    "hastscript-5.1.2" = {
+      name = "hastscript";
+      packageName = "hastscript";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz";
+        sha512 = "WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==";
+      };
+    };
     "hat-0.0.3" = {
       name = "hat";
       packageName = "hat";
@@ -20860,13 +21814,13 @@ let
         sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
       };
     };
-    "header-case-1.0.1" = {
+    "header-case-2.0.3" = {
       name = "header-case";
       packageName = "header-case";
-      version = "1.0.1";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz";
-        sha1 = "9535973197c144b09613cd65d317ef19963bd02d";
+        url = "https://registry.npmjs.org/header-case/-/header-case-2.0.3.tgz";
+        sha512 = "LChe/V32mnUQnTwTxd3aAlNMk8ia9tjCDb/LjYtoMrdAPApxLB+azejUk5ERZIZdIqvinwv6BAUuFXH/tQPdZA==";
       };
     };
     "headless-0.1.7" = {
@@ -20932,6 +21886,15 @@ let
         sha1 = "b86ce808598e8a9d1892c571f3cedd86fc9f0653";
       };
     };
+    "highlight.js-10.1.1" = {
+      name = "highlight.js";
+      packageName = "highlight.js";
+      version = "10.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.1.1.tgz";
+        sha512 = "b4L09127uVa+9vkMgPpdUQP78ickGbHEQTWeBrQFTJZ4/n2aihWOGS0ZoUqAwjVmfjhq/C76HRzkqwZhK4sBbg==";
+      };
+    };
     "highlight.js-8.2.0" = {
       name = "highlight.js";
       packageName = "highlight.js";
@@ -20950,13 +21913,13 @@ let
         sha1 = "e6d9dbe57cbefe60751f02af336195870c90c01e";
       };
     };
-    "highlight.js-9.18.1" = {
+    "highlight.js-9.18.3" = {
       name = "highlight.js";
       packageName = "highlight.js";
-      version = "9.18.1";
+      version = "9.18.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.1.tgz";
-        sha512 = "OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg==";
+        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.3.tgz";
+        sha512 = "zBZAmhSupHIl5sITeMqIJnYCDfAEc3Gdkqj65wC1lpI468MMQeeQkhcIAvk+RylAkxrCcI9xy9piHiXeQ1BdzQ==";
       };
     };
     "hipchatter-0.3.2" = {
@@ -21004,6 +21967,15 @@ let
         sha1 = "4cd9e1abd4294146e7679e41d7898732b02c7bfd";
       };
     };
+    "hoist-non-react-statics-3.3.2" = {
+      name = "hoist-non-react-statics";
+      packageName = "hoist-non-react-statics";
+      version = "3.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz";
+        sha512 = "/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==";
+      };
+    };
     "homedir-polyfill-1.0.3" = {
       name = "homedir-polyfill";
       packageName = "homedir-polyfill";
@@ -21031,13 +22003,13 @@ let
         sha512 = "f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==";
       };
     };
-    "hosted-git-info-3.0.4" = {
+    "hosted-git-info-3.0.5" = {
       name = "hosted-git-info";
       packageName = "hosted-git-info";
-      version = "3.0.4";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz";
-        sha512 = "4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==";
+        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.5.tgz";
+        sha512 = "i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ==";
       };
     };
     "hot-shots-6.8.7" = {
@@ -21148,13 +22120,13 @@ let
         sha512 = "uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==";
       };
     };
-    "html-whitespace-sensitive-tag-names-1.0.2" = {
+    "html-whitespace-sensitive-tag-names-1.0.3" = {
       name = "html-whitespace-sensitive-tag-names";
       packageName = "html-whitespace-sensitive-tag-names";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/html-whitespace-sensitive-tag-names/-/html-whitespace-sensitive-tag-names-1.0.2.tgz";
-        sha512 = "9jCcAq9ZsjUkZjNFDvxalDPhktOijpfzLyzBcqMLOFSbtcDNrPlKDvZeH7KdEbP7C6OjPpIdDMMPm0oq2Dpk0A==";
+        url = "https://registry.npmjs.org/html-whitespace-sensitive-tag-names/-/html-whitespace-sensitive-tag-names-1.0.3.tgz";
+        sha512 = "GX1UguduCBEAEo1hjFxc2Bz04/sDq0ACNyT7LsuoDcPfXYI3nS0NRPp3dyazLJyVUMp3GPBB56i/0Zr6CqD2PQ==";
       };
     };
     "htmlescape-1.1.1" = {
@@ -21166,13 +22138,13 @@ let
         sha1 = "3a03edc2214bca3b66424a3e7959349509cb0351";
       };
     };
-    "htmlnano-0.2.5" = {
+    "htmlnano-0.2.6" = {
       name = "htmlnano";
       packageName = "htmlnano";
-      version = "0.2.5";
+      version = "0.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/htmlnano/-/htmlnano-0.2.5.tgz";
-        sha512 = "X1iPSwXG/iF9bVs+/obt2n6F64uH0ETkA8zp7qFDmLW9/+A6ueHGeb/+qD67T21qUY22owZPMdawljN50ajkqA==";
+        url = "https://registry.npmjs.org/htmlnano/-/htmlnano-0.2.6.tgz";
+        sha512 = "HUY/99maFsWX2LRoGJpZ/8QRLCkyY0UU1El3wgLLFAHQlD3mCxCJJNcWJk5SBqaU49MLhIWVDW6cGBeuemvaPQ==";
       };
     };
     "htmlparser2-3.10.1" = {
@@ -21292,6 +22264,15 @@ let
         sha512 = "ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==";
       };
     };
+    "http-errors-1.8.0" = {
+      name = "http-errors";
+      packageName = "http-errors";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz";
+        sha512 = "4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==";
+      };
+    };
     "http-headers-3.0.2" = {
       name = "http-headers";
       packageName = "http-headers";
@@ -21374,6 +22355,15 @@ let
         sha512 = "yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==";
       };
     };
+    "http-proxy-middleware-1.0.5" = {
+      name = "http-proxy-middleware";
+      packageName = "http-proxy-middleware";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.0.5.tgz";
+        sha512 = "CKzML7u4RdGob8wuKI//H8Ein6wNTEQR7yjVEzPbhBLGdOfkfvgTnp2HLnniKBDP9QW4eG10/724iTWLBeER3g==";
+      };
+    };
     "http-signature-0.11.0" = {
       name = "http-signature";
       packageName = "http-signature";
@@ -21428,6 +22418,15 @@ let
         sha512 = "nUxLymWQ9pzkzTmir24p2RtsgruLmhje7lH3hLX1IpwvyTg77fW+1brenPPP3USAR+rQ36p5sTA/x7sjCJVkAA==";
       };
     };
+    "http2-wrapper-1.0.0-beta.5.2" = {
+      name = "http2-wrapper";
+      packageName = "http2-wrapper";
+      version = "1.0.0-beta.5.2";
+      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==";
+      };
+    };
     "http_ece-1.1.0" = {
       name = "http_ece";
       packageName = "http_ece";
@@ -21644,13 +22643,13 @@ let
         sha1 = "c6019a7595f2cefca702eab694a010bcd9298d20";
       };
     };
-    "iconv-lite-0.5.1" = {
+    "iconv-lite-0.6.2" = {
       name = "iconv-lite";
       packageName = "iconv-lite";
-      version = "0.5.1";
+      version = "0.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.1.tgz";
-        sha512 = "ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q==";
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz";
+        sha512 = "2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==";
       };
     };
     "icss-replace-symbols-1.1.0" = {
@@ -21662,13 +22661,22 @@ let
         sha1 = "06ea6f83679a7749e386cfe1fe812ae5db223ded";
       };
     };
-    "idb-kv-store-4.4.0" = {
+    "icss-utils-4.1.1" = {
+      name = "icss-utils";
+      packageName = "icss-utils";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz";
+        sha512 = "4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==";
+      };
+    };
+    "idb-kv-store-4.5.0" = {
       name = "idb-kv-store";
       packageName = "idb-kv-store";
-      version = "4.4.0";
+      version = "4.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/idb-kv-store/-/idb-kv-store-4.4.0.tgz";
-        sha1 = "22c56a8d5f90bd88f818a859db9c58627de278be";
+        url = "https://registry.npmjs.org/idb-kv-store/-/idb-kv-store-4.5.0.tgz";
+        sha512 = "snvtAQRforYUI+C2+45L2LBJy/0/uQUffxv8/uwiS98fSUoXHVrFPClgzWZWxT0drwkLHJRm9inZcYzTR42GLA==";
       };
     };
     "ieee754-1.1.13" = {
@@ -21860,13 +22868,13 @@ let
         sha1 = "97b38fd444114eec16824a935f8da575b57aa1ce";
       };
     };
-    "import-jsx-3.1.0" = {
+    "import-jsx-4.0.0" = {
       name = "import-jsx";
       packageName = "import-jsx";
-      version = "3.1.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/import-jsx/-/import-jsx-3.1.0.tgz";
-        sha512 = "lTuMdQ/mRXC+xQSGPDvAg1VkODlX78j5hZv2tneJ+zuo7GH/XhUF/YVKoeF382a4jO4GYw9jgganbMhEcxwb0g==";
+        url = "https://registry.npmjs.org/import-jsx/-/import-jsx-4.0.0.tgz";
+        sha512 = "CnjJ2BZFJzbFDmYG5S47xPQjMlSbZLyLJuG4znzL4TdPtJBxHtFP1xVmR+EYX4synFSldiY3B6m00XkPM3zVnA==";
       };
     };
     "import-lazy-2.1.0" = {
@@ -21977,15 +22985,6 @@ let
         sha1 = "82dc336d232b9062179d05ab3293a66059fd435d";
       };
     };
-    "indx-0.2.3" = {
-      name = "indx";
-      packageName = "indx";
-      version = "0.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/indx/-/indx-0.2.3.tgz";
-        sha1 = "15dcf56ee9cf65c0234c513c27fbd580e70fbc50";
-      };
-    };
     "infer-owner-1.0.4" = {
       name = "infer-owner";
       packageName = "infer-owner";
@@ -22076,22 +23075,22 @@ let
         sha512 = "zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==";
       };
     };
-    "ink-2.7.1" = {
+    "ink-3.0.5" = {
       name = "ink";
       packageName = "ink";
-      version = "2.7.1";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ink/-/ink-2.7.1.tgz";
-        sha512 = "s7lJuQDJEdjqtaIWhp3KYHl6WV3J04U9zoQ6wVc+Xoa06XM27SXUY57qC5DO46xkF0CfgXMKkKNcgvSu/SAEpA==";
+        url = "https://registry.npmjs.org/ink/-/ink-3.0.5.tgz";
+        sha512 = "Zc/Yoi3P0cY0DC9ryb3HTwmi4Qgke9332ebOhDRaK9Cw6D+ABAOQPeHG8IdmI1GOkMKRMZwTP/1jRs/b1D1n9Q==";
       };
     };
-    "ink-text-input-3.3.0" = {
+    "ink-text-input-4.0.0" = {
       name = "ink-text-input";
       packageName = "ink-text-input";
-      version = "3.3.0";
+      version = "4.0.0";
       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-text-input/-/ink-text-input-4.0.0.tgz";
+        sha512 = "mzftl3MRUYEi4/lQQzjUGgmPtPIQgGbeedp6G9cDIGTQPMOiaklrCX8zWi9aY5n0OKoJpjmi3TR6eRBNNhCP8Q==";
       };
     };
     "inline-source-map-0.6.2" = {
@@ -22121,6 +23120,15 @@ let
         sha1 = "ea25e4ce69ca145e05c99e46dcfec05e4012594a";
       };
     };
+    "inquirer-0.12.0" = {
+      name = "inquirer";
+      packageName = "inquirer";
+      version = "0.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz";
+        sha1 = "1ef2bfd63504df0bc75785fff8c2c41df12f077e";
+      };
+    };
     "inquirer-0.8.5" = {
       name = "inquirer";
       packageName = "inquirer";
@@ -22139,6 +23147,15 @@ let
         sha1 = "4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918";
       };
     };
+    "inquirer-3.0.6" = {
+      name = "inquirer";
+      packageName = "inquirer";
+      version = "3.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz";
+        sha1 = "e04aaa9d05b7a3cb9b0f407d04375f0447190347";
+      };
+    };
     "inquirer-3.3.0" = {
       name = "inquirer";
       packageName = "inquirer";
@@ -22193,22 +23210,22 @@ let
         sha512 = "5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==";
       };
     };
-    "inquirer-7.2.0" = {
+    "inquirer-7.3.3" = {
       name = "inquirer";
       packageName = "inquirer";
-      version = "7.2.0";
+      version = "7.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/inquirer/-/inquirer-7.2.0.tgz";
-        sha512 = "E0c4rPwr9ByePfNlTIB8z51kK1s2n6jrHuJeEHENl/sbq2G/S1auvibgEwNR4uSyiU+PiYHqSwsgGiXjG8p5ZQ==";
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz";
+        sha512 = "JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==";
       };
     };
-    "inquirer-autocomplete-prompt-1.0.2" = {
+    "inquirer-autocomplete-prompt-1.1.0" = {
       name = "inquirer-autocomplete-prompt";
       packageName = "inquirer-autocomplete-prompt";
-      version = "1.0.2";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.0.2.tgz";
-        sha512 = "vNmAhhrOQwPnUm4B9kz1UB7P98rVF1z8txnjp53r40N0PBCuqoRWqjg3Tl0yz0UkDg7rEUtZ2OZpNc7jnOU9Zw==";
+        url = "https://registry.npmjs.org/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.1.0.tgz";
+        sha512 = "mrSeUSFGnTSid/DCKG+E+IcN4MaOnT2bW7NuSagZAguD4k3hZ0UladdYNP4EstZOwgeqv0C3M1zYa1QIIf0Oyg==";
       };
     };
     "insert-module-globals-7.2.0" = {
@@ -22490,13 +23507,22 @@ let
         sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
       };
     };
-    "irc-framework-4.7.0" = {
+    "ipaddr.js-2.0.0" = {
+      name = "ipaddr.js";
+      packageName = "ipaddr.js";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.0.tgz";
+        sha512 = "S54H9mIj0rbxRIyrDMEuuER86LdlgUg9FSeZ8duQb6CUG2iRrA36MYVQBSprTF/ZeAwvyQ5mDGuNvIPM0BIl3w==";
+      };
+    };
+    "irc-framework-4.9.0" = {
       name = "irc-framework";
       packageName = "irc-framework";
-      version = "4.7.0";
+      version = "4.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/irc-framework/-/irc-framework-4.7.0.tgz";
-        sha512 = "XKXQ8RDr6BpJb4xGIUxzkaeOApkaJCLfAuawAieBg4skD7EP2Ag2C1P/hPAJgLrIAVRKZqTpiWnQDx9gIzdLsA==";
+        url = "https://registry.npmjs.org/irc-framework/-/irc-framework-4.9.0.tgz";
+        sha512 = "cUYMnnKwcNpXtEw/CXnEwUtglmaWZbfu0E/0iI7bENC3bASPNfcvcyTsFQcdknpnoFLyh5kXpQCjPBWKTbOQAQ==";
       };
     };
     "irc-replies-2.0.1" = {
@@ -22823,6 +23849,15 @@ let
         sha512 = "2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==";
       };
     };
+    "is-dir-1.0.0" = {
+      name = "is-dir";
+      packageName = "is-dir";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-dir/-/is-dir-1.0.0.tgz";
+        sha1 = "41d37f495fccacc05a4778d66e83024c292ba3ff";
+      };
+    };
     "is-directory-0.3.1" = {
       name = "is-directory";
       packageName = "is-directory";
@@ -22841,13 +23876,13 @@ let
         sha1 = "f04374d4eee5310e9a8e113bf1495411e46176a1";
       };
     };
-    "is-docker-2.0.0" = {
+    "is-docker-2.1.1" = {
       name = "is-docker";
       packageName = "is-docker";
-      version = "2.0.0";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz";
-        sha512 = "pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==";
+        url = "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz";
+        sha512 = "ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==";
       };
     };
     "is-dotfile-1.0.3" = {
@@ -22895,6 +23930,15 @@ let
         sha1 = "39acaa6be7fd1f3471dc42c7416e61c24317ac9f";
       };
     };
+    "is-expression-4.0.0" = {
+      name = "is-expression";
+      packageName = "is-expression";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz";
+        sha512 = "zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==";
+      };
+    };
     "is-extendable-0.1.1" = {
       name = "is-extendable";
       packageName = "is-extendable";
@@ -23093,15 +24137,6 @@ let
         sha1 = "3d9877899e6a53efc0160504cde15f82e6f061d5";
       };
     };
-    "is-lower-case-1.1.3" = {
-      name = "is-lower-case";
-      packageName = "is-lower-case";
-      version = "1.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz";
-        sha1 = "7e147be4768dc466db3bfb21cc60b31e6ad69393";
-      };
-    };
     "is-map-2.0.1" = {
       name = "is-map";
       packageName = "is-map";
@@ -23138,13 +24173,13 @@ let
         sha512 = "gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==";
       };
     };
-    "is-my-json-valid-2.20.1" = {
+    "is-my-json-valid-2.20.5" = {
       name = "is-my-json-valid";
       packageName = "is-my-json-valid";
-      version = "2.20.1";
+      version = "2.20.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.1.tgz";
-        sha512 = "KWo8x7CYK5goqyYFJM4ZmapN2DvIGKkx5C1WLHyo2Dcr4R9u4Y9ofpZxn5+LF/d0FHR3AeFcYxVlqIA2OOwuJA==";
+        url = "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.5.tgz";
+        sha512 = "VTPuvvGQtxvCeghwspQu1rBgjYUT6FGxPlvFKbYuFtgc4ADsX3U5ihZOYN0qyU6u+d4X9xXb0IT5O6QpXKt87A==";
       };
     };
     "is-natural-number-4.0.1" = {
@@ -23165,6 +24200,15 @@ let
         sha1 = "6910bca5da8c95e784b5751b976cf5a10fee36d2";
       };
     };
+    "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-npm-1.0.0" = {
       name = "is-npm";
       packageName = "is-npm";
@@ -23336,6 +24380,15 @@ let
         sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
       };
     };
+    "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-plain-object-2.0.4" = {
       name = "is-plain-object";
       packageName = "is-plain-object";
@@ -23345,13 +24398,13 @@ let
         sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==";
       };
     };
-    "is-plain-object-3.0.1" = {
+    "is-plain-object-4.1.1" = {
       name = "is-plain-object";
       packageName = "is-plain-object";
-      version = "3.0.1";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz";
-        sha512 = "Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==";
+        url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-4.1.1.tgz";
+        sha512 = "5Aw8LLVsDlZsETVMhoMXzqsXwQqr/0vlnBYzIXJbYo2F4yYlhLHs+Ez7Bod7IIQKWkJbJfxrWD7pA1Dw1TKrwA==";
       };
     };
     "is-posix-bracket-0.1.1" = {
@@ -23381,6 +24434,15 @@ let
         sha512 = "+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==";
       };
     };
+    "is-promise-4.0.0" = {
+      name = "is-promise";
+      packageName = "is-promise";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz";
+        sha512 = "hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==";
+      };
+    };
     "is-property-1.0.2" = {
       name = "is-property";
       packageName = "is-property";
@@ -23417,13 +24479,13 @@ let
         sha512 = "vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==";
       };
     };
-    "is-regex-1.1.0" = {
+    "is-regex-1.1.1" = {
       name = "is-regex";
       packageName = "is-regex";
-      version = "1.1.0";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz";
-        sha512 = "iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==";
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz";
+        sha512 = "1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==";
       };
     };
     "is-regexp-1.0.0" = {
@@ -23471,15 +24533,6 @@ let
         sha512 = "Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==";
       };
     };
-    "is-relative-path-1.0.2" = {
-      name = "is-relative-path";
-      packageName = "is-relative-path";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-relative-path/-/is-relative-path-1.0.2.tgz";
-        sha1 = "091b46a0d67c1ed0fe85f1f8cfdde006bb251d46";
-      };
-    };
     "is-relative-url-3.0.0" = {
       name = "is-relative-url";
       packageName = "is-relative-url";
@@ -23534,13 +24587,13 @@ let
         sha512 = "eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==";
       };
     };
-    "is-ssh-1.3.1" = {
+    "is-ssh-1.3.2" = {
       name = "is-ssh";
       packageName = "is-ssh";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.1.tgz";
-        sha512 = "0eRIASHZt1E68/ixClI8bp2YK2wmBPVWEismTs6M+M099jKgrzl/3E976zIbImSIob48N2/XGe9y7ZiYdImSlg==";
+        url = "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.2.tgz";
+        sha512 = "elEw0/0c2UscLrNG+OAorbP539E3rhliKPg+hDMWN9VwrDXfYK+4PBEykDPfxlYYtQvl84TascnQyobfQLHEhQ==";
       };
     };
     "is-stream-1.1.0" = {
@@ -23642,15 +24695,6 @@ let
         sha512 = "mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==";
       };
     };
-    "is-upper-case-1.1.2" = {
-      name = "is-upper-case";
-      packageName = "is-upper-case";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz";
-        sha1 = "8d0b1fa7e7933a1e58483600ec7d9661cbaf756f";
-      };
-    };
     "is-url-1.2.4" = {
       name = "is-url";
       packageName = "is-url";
@@ -23669,13 +24713,13 @@ let
         sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72";
       };
     };
-    "is-valid-domain-0.0.14" = {
+    "is-valid-domain-0.0.15" = {
       name = "is-valid-domain";
       packageName = "is-valid-domain";
-      version = "0.0.14";
+      version = "0.0.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.0.14.tgz";
-        sha512 = "MTUz/3y25zTtutAfwrLyFK+1l2IL4bcq2iHVdYHIPQbvBJLunlYu9dsQdtLwD9HKPDyxCDlKnSbGcRwvjVeCxA==";
+        url = "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.0.15.tgz";
+        sha512 = "Mcq4a6oLR+ugNyUlZ8WbuJBCm6hB50B6bgZcr0z7qm4mjbmw+WuqLAxR0eV+jnmtRcSSd++21wD4aQJZb7YZZg==";
       };
     };
     "is-valid-glob-1.0.0" = {
@@ -23840,6 +24884,15 @@ let
         sha512 = "zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==";
       };
     };
+    "iserror-0.0.2" = {
+      name = "iserror";
+      packageName = "iserror";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iserror/-/iserror-0.0.2.tgz";
+        sha1 = "bd53451fe2f668b9f2402c1966787aaa2c7c0bf5";
+      };
+    };
     "isexe-1.1.2" = {
       name = "isexe";
       packageName = "isexe";
@@ -23885,6 +24938,15 @@ let
         sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
       };
     };
+    "isobject-4.0.0" = {
+      name = "isobject";
+      packageName = "isobject";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz";
+        sha512 = "S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==";
+      };
+    };
     "isomorphic-fetch-2.2.1" = {
       name = "isomorphic-fetch";
       packageName = "isomorphic-fetch";
@@ -24038,13 +25100,13 @@ let
         sha1 = "dc5ebed10d04a5e0eaf49ef0009bec473d1a6b31";
       };
     };
-    "jaeger-client-3.18.0" = {
+    "jaeger-client-3.18.1" = {
       name = "jaeger-client";
       packageName = "jaeger-client";
-      version = "3.18.0";
+      version = "3.18.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.18.0.tgz";
-        sha512 = "xZ9WvZDWLkZFq7SObpLwu1asMCKCgBRNcDxxGSvK+ZQ7OZyJC5xPlU+rJa4+s/P6autPBVwHpqMGbOERFxWuuA==";
+        url = "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.18.1.tgz";
+        sha512 = "eZLM2U6rJvYo0XbzQYFeMYfp29gQix7SKlmDReorp9hJkUwXZtTyxW81AcKdmFCjLHO5tFysTX+394BnjEnUZg==";
       };
     };
     "jake-10.8.2" = {
@@ -24065,15 +25127,6 @@ let
         sha512 = "qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==";
       };
     };
-    "javascript-natural-sort-0.7.1" = {
-      name = "javascript-natural-sort";
-      packageName = "javascript-natural-sort";
-      version = "0.7.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz";
-        sha1 = "f9e2303d4507f6d74355a73664d1440fb5a0ef59";
-      };
-    };
     "javascript-stringify-1.6.0" = {
       name = "javascript-stringify";
       packageName = "javascript-stringify";
@@ -24092,6 +25145,15 @@ let
         sha1 = "7a549bbd9ffe1585b0cd0a191e203055bee574b4";
       };
     };
+    "jest-get-type-24.9.0" = {
+      name = "jest-get-type";
+      packageName = "jest-get-type";
+      version = "24.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz";
+        sha512 = "lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==";
+      };
+    };
     "jest-haste-map-25.5.1" = {
       name = "jest-haste-map";
       packageName = "jest-haste-map";
@@ -24128,6 +25190,15 @@ let
         sha512 = "KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==";
       };
     };
+    "jest-validate-24.9.0" = {
+      name = "jest-validate";
+      packageName = "jest-validate";
+      version = "24.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz";
+        sha512 = "HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==";
+      };
+    };
     "jest-worker-25.5.0" = {
       name = "jest-worker";
       packageName = "jest-worker";
@@ -24173,13 +25244,13 @@ let
         sha1 = "06d4912255093419477d425633606e0e90782967";
       };
     };
-    "joplin-turndown-4.0.28" = {
+    "joplin-turndown-4.0.29" = {
       name = "joplin-turndown";
       packageName = "joplin-turndown";
-      version = "4.0.28";
+      version = "4.0.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.28.tgz";
-        sha512 = "wQP9OUBAkWq/VPPCJcY1EI6tSXWlGs/BJ7Ce8BZYRF/1vEk/TRHOdKmCObQrXz/0nRoLiP5xeqNvHE1nK4XbRQ==";
+        url = "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.29.tgz";
+        sha512 = "rVGu8u4TpSRETo59/jiVW9iaXnpdxxpBHjb7nyCflkDfWhg1Kska4uagBQGw7cD2yxw7mB2YUIB/fAgtlIzcDQ==";
       };
     };
     "joplin-turndown-plugin-gfm-1.0.12" = {
@@ -24191,13 +25262,13 @@ let
         sha512 = "qL4+1iycQjZ1fs8zk3jSRk7cg3ROBUHk7GKtiLAQLFzLPKErnILUvz5DLszSQvz3s1sTjPbywLDISVUtBY6HaA==";
       };
     };
-    "jpeg-js-0.1.2" = {
+    "jpeg-js-0.4.2" = {
       name = "jpeg-js";
       packageName = "jpeg-js";
-      version = "0.1.2";
+      version = "0.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.1.2.tgz";
-        sha1 = "135b992c0575c985cfa0f494a3227ed238583ece";
+        url = "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.2.tgz";
+        sha512 = "+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==";
       };
     };
     "jpeg-turbo-0.4.0" = {
@@ -24227,31 +25298,31 @@ let
         sha1 = "bcb4045c8dd0539c134bc1488cdd3e768a7a9e51";
       };
     };
-    "jquery.terminal-2.17.2" = {
+    "jquery.terminal-2.18.3" = {
       name = "jquery.terminal";
       packageName = "jquery.terminal";
-      version = "2.17.2";
+      version = "2.18.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.17.2.tgz";
-        sha512 = "FHs9cS0phsXFXI1waqK/kY9TnyiWmQp65NFu/vMZky1Tef4zIYD3D5qZcBhBkXhAbIFA+fPfmMUUgGKBQWtKlQ==";
+        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.18.3.tgz";
+        sha512 = "zzMVGYlAC+luF7Omm9UY1/nuvp00mozSgcGImObWSS3uDRtcxnxlwxQLC8tvlTT+koyfOvCBaWgB6AD4DvWVpQ==";
       };
     };
-    "js-base64-2.6.2" = {
+    "js-base64-2.6.4" = {
       name = "js-base64";
       packageName = "js-base64";
-      version = "2.6.2";
+      version = "2.6.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/js-base64/-/js-base64-2.6.2.tgz";
-        sha512 = "1hgLrLIrmCgZG+ID3VoLNLOSwjGnoZa8tyrUdEteMeIzsT6PH7PMLyUvbDwzNE56P3PNxyvuIOx4Uh2E5rzQIw==";
+        url = "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz";
+        sha512 = "pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==";
       };
     };
-    "js-beautify-1.11.0" = {
+    "js-beautify-1.13.0" = {
       name = "js-beautify";
       packageName = "js-beautify";
-      version = "1.11.0";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.11.0.tgz";
-        sha512 = "a26B+Cx7USQGSWnz9YxgJNMmML/QG2nqIaL7VVYPCXbqiKz8PN0waSNvroMtvAK6tY7g/wPdNWGEP+JTNIBr6A==";
+        url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.13.0.tgz";
+        sha512 = "/Tbp1OVzZjbwzwJQFIlYLm9eWQ+3aYbBXLSaqb1mEJzhcQAfrqMMQYtjb6io+U6KpD0ID4F+Id3/xcjH3l/sqA==";
       };
     };
     "js-message-1.0.5" = {
@@ -24317,15 +25388,6 @@ let
         sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
       };
     };
-    "js-yaml-3.13.1" = {
-      name = "js-yaml";
-      packageName = "js-yaml";
-      version = "3.13.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz";
-        sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==";
-      };
-    };
     "js-yaml-3.14.0" = {
       name = "js-yaml";
       packageName = "js-yaml";
@@ -24479,6 +25541,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";
@@ -24497,13 +25568,13 @@ let
         sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==";
       };
     };
-    "json-parse-even-better-errors-2.2.0" = {
+    "json-parse-even-better-errors-2.3.1" = {
       name = "json-parse-even-better-errors";
       packageName = "json-parse-even-better-errors";
-      version = "2.2.0";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.2.0.tgz";
-        sha512 = "2tLgY7LRNZ9Hd6gmCuBG5/OjRHQpSgJQqJoYyLLOhUgn8LdOYrjaZLcxkWnDads+AD/haWWioPNziXQcgvQJ/g==";
+        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-parse-helpfulerror-1.0.3" = {
@@ -24515,6 +25586,15 @@ let
         sha1 = "13f14ce02eed4e981297b64eb9e3b932e2dd13dc";
       };
     };
+    "json-pointer-0.6.0" = {
+      name = "json-pointer";
+      packageName = "json-pointer";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.0.tgz";
+        sha1 = "8e500550a6aac5464a473377da57aa6cc22828d7";
+      };
+    };
     "json-refs-2.1.7" = {
       name = "json-refs";
       packageName = "json-refs";
@@ -24569,6 +25649,15 @@ let
         sha1 = "51d3ca48955d8fe734f591d747b72453be5a78f2";
       };
     };
+    "json-schema-ref-parser-6.1.0" = {
+      name = "json-schema-ref-parser";
+      packageName = "json-schema-ref-parser";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-6.1.0.tgz";
+        sha512 = "pXe9H1m6IgIpXmE5JSb8epilNTGsmTb2iPohAXpOdhqGFbQjNeHHsZxU+C8w6T81GZxSPFLeUoqDJmzxx5IGuw==";
+      };
+    };
     "json-schema-traverse-0.3.1" = {
       name = "json-schema-traverse";
       packageName = "json-schema-traverse";
@@ -24695,13 +25784,13 @@ let
         sha512 = "hk/69oAeaIzchq/v3lS50PXuzn5O2ynldopMC+SWBql7J2WtdptfB9dy8Y7+Og5rPkTCpn83zTiO8FMcqlXJ/g==";
       };
     };
-    "jsonc-parser-2.2.1" = {
+    "jsonc-parser-2.3.0" = {
       name = "jsonc-parser";
       packageName = "jsonc-parser";
-      version = "2.2.1";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.1.tgz";
-        sha512 = "o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==";
+        url = "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.0.tgz";
+        sha512 = "b0EBt8SWFNnixVdvoR2ZtEGa9ZqLhbJnOjezn+WP+8kspFm+PFYDN8Z4Bc7pRlDjvuVcADSUkroIuTWWn/YiIA==";
       };
     };
     "jsonfile-1.0.1" = {
@@ -24722,15 +25811,6 @@ let
         sha1 = "3736a2b428b87bbda0cc83b53fa3d633a35c2ae8";
       };
     };
-    "jsonfile-3.0.1" = {
-      name = "jsonfile";
-      packageName = "jsonfile";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz";
-        sha1 = "a5ecc6f65f53f662c4415c7675a0331d0992ec66";
-      };
-    };
     "jsonfile-4.0.0" = {
       name = "jsonfile";
       packageName = "jsonfile";
@@ -24758,6 +25838,15 @@ let
         sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
       };
     };
+    "jsonlines-0.1.1" = {
+      name = "jsonlines";
+      packageName = "jsonlines";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonlines/-/jsonlines-0.1.1.tgz";
+        sha1 = "4fcd246dc5d0e38691907c44ab002f782d1d94cc";
+      };
+    };
     "jsonlint-1.6.2" = {
       name = "jsonlint";
       packageName = "jsonlint";
@@ -24794,13 +25883,13 @@ let
         sha512 = "WQwgWEBgn+SJU1tlDa/GiY5/ngRpa9yrSj8n4BYPHcwoxTDaMEaYCHMOn42hIHHDd3CrUoRr3+HpsK0hCKoxzA==";
       };
     };
-    "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==";
       };
     };
     "jsonwebtoken-8.5.1" = {
@@ -24938,6 +26027,15 @@ let
         sha512 = "qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==";
       };
     };
+    "jwa-2.0.0" = {
+      name = "jwa";
+      packageName = "jwa";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz";
+        sha512 = "jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==";
+      };
+    };
     "jws-3.2.2" = {
       name = "jws";
       packageName = "jws";
@@ -24947,6 +26045,15 @@ let
         sha512 = "YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==";
       };
     };
+    "jws-4.0.0" = {
+      name = "jws";
+      packageName = "jws";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz";
+        sha512 = "KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==";
+      };
+    };
     "jwt-decode-2.2.0" = {
       name = "jwt-decode";
       packageName = "jwt-decode";
@@ -25074,13 +26181,13 @@ let
         sha1 = "83cb748496ac491c7135104cbe56b88ca7392477";
       };
     };
-    "katex-0.11.1" = {
+    "katex-0.12.0" = {
       name = "katex";
       packageName = "katex";
-      version = "0.11.1";
+      version = "0.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/katex/-/katex-0.11.1.tgz";
-        sha512 = "5oANDICCTX0NqYIyAiFCCwjQ7ERu3DQG2JFHLbYOf+fXaMoH8eg/zOq5WSYJsKMi/QebW+Eh3gSM+oss1H/bww==";
+        url = "https://registry.npmjs.org/katex/-/katex-0.12.0.tgz";
+        sha512 = "y+8btoc/CK70XqcHqjxiGWBOeIL8upbS0peTPXTvgrh21n1RiWWcIpSWM+4uXq+IAgNh9YYQWdc7LVDPDAEEAg==";
       };
     };
     "keep-alive-agent-0.0.1" = {
@@ -25092,6 +26199,15 @@ let
         sha1 = "44847ca394ce8d6b521ae85816bd64509942b385";
       };
     };
+    "keep-func-props-3.0.1" = {
+      name = "keep-func-props";
+      packageName = "keep-func-props";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/keep-func-props/-/keep-func-props-3.0.1.tgz";
+        sha512 = "5AsrYCiCHIUxuw/G2r7xcoTW/NTf5IFwAe1fkwf2ifM/KZzEojaTylh1Pppu60oEixww1rfcWJaRGLi3eAJsrQ==";
+      };
+    };
     "kew-0.7.0" = {
       name = "kew";
       packageName = "kew";
@@ -25137,6 +26253,15 @@ let
         sha1 = "1e80454250018dbad4c3fe94497d6e67b6269c77";
       };
     };
+    "keytar-5.6.0" = {
+      name = "keytar";
+      packageName = "keytar";
+      version = "5.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/keytar/-/keytar-5.6.0.tgz";
+        sha512 = "ueulhshHSGoryfRXaIvTj0BV1yB0KddBGhGoqCxSN9LR1Ks1GKuuCdVhF+2/YOs5fMl6MlTI9On1a4DHDXoTow==";
+      };
+    };
     "keyv-3.0.0" = {
       name = "keyv";
       packageName = "keyv";
@@ -25173,15 +26298,6 @@ let
         sha512 = "LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==";
       };
     };
-    "kind-of-1.1.0" = {
-      name = "kind-of";
-      packageName = "kind-of";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz";
-        sha1 = "140a3d2d41a36d2efcfa9377b62c24f8495a5c44";
-      };
-    };
     "kind-of-3.2.2" = {
       name = "kind-of";
       packageName = "kind-of";
@@ -25290,6 +26406,15 @@ let
         sha512 = "J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==";
       };
     };
+    "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==";
+      };
+    };
     "kvgraph-0.1.0" = {
       name = "kvgraph";
       packageName = "kvgraph";
@@ -25317,6 +26442,15 @@ let
         sha512 = "Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==";
       };
     };
+    "lambda-local-1.7.3" = {
+      name = "lambda-local";
+      packageName = "lambda-local";
+      version = "1.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lambda-local/-/lambda-local-1.7.3.tgz";
+        sha512 = "T+iwIkuQT0JvTQhvNBTikLhpEJk3ovNoC33niE4QNmYOUrCOdo86PcPkgppOZl+NJXXHebdPHDJ40zqBJ9VMzg==";
+      };
+    };
     "last-one-wins-1.0.4" = {
       name = "last-one-wins";
       packageName = "last-one-wins";
@@ -25479,13 +26613,13 @@ let
         sha1 = "544ff7032b7b83c68f0701328d9297aa694340f9";
       };
     };
-    "ldapjs-2.0.0-pre.5" = {
+    "ldapjs-2.1.1" = {
       name = "ldapjs";
       packageName = "ldapjs";
-      version = "2.0.0-pre.5";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ldapjs/-/ldapjs-2.0.0-pre.5.tgz";
-        sha512 = "nmcSqdUjS7dzloToGCrSX3/TCdKJqLKUD+mMeo2K+NAkRkyn2iDZJRVusUFwFykXcaAr8hPX2qOKzc9PeTA4MQ==";
+        url = "https://registry.npmjs.org/ldapjs/-/ldapjs-2.1.1.tgz";
+        sha512 = "XzF2BEGeM/nenYDAJvkDMYovZ07fIGalrYD+suprSqUWPCWpoa+a4vWl5g8o/En85m6NHWBpirDFNClWLAd77w==";
       };
     };
     "lead-1.0.0" = {
@@ -25524,15 +26658,6 @@ let
         sha512 = "Tqyx4nggb9nkLD6p4hyIz7UiVNg5u3OnCP2h0hS/HXpheH88rsoNEgNB8xTnpPMw6zWXGZ7Cpg1zhWPlsJ0/TQ==";
       };
     };
-    "less-2.7.3" = {
-      name = "less";
-      packageName = "less";
-      version = "2.7.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/less/-/less-2.7.3.tgz";
-        sha512 = "KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==";
-      };
-    };
     "level-5.0.1" = {
       name = "level";
       packageName = "level";
@@ -25632,15 +26757,6 @@ let
         sha512 = "PWYqG4Q00asOrLhX7BejSajByB4EmG2GaKHfj3h5UmmZ2duciXLPGYWIjBzLECFWUGOZWlm5B20h/n3Gs3HKew==";
       };
     };
-    "level-sublevel-6.6.5" = {
-      name = "level-sublevel";
-      packageName = "level-sublevel";
-      version = "6.6.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/level-sublevel/-/level-sublevel-6.6.5.tgz";
-        sha512 = "SBSR60x+dghhwGUxPKS+BvV1xNqnwsEUBKmnFepPaHJ6VkBXyPK9SImGc3K2BkwBfpxlt7GKkBNlCnrdufsejA==";
-      };
-    };
     "level-supports-1.0.1" = {
       name = "level-supports";
       packageName = "level-supports";
@@ -25659,15 +26775,6 @@ let
         sha512 = "iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==";
       };
     };
-    "levelup-0.19.1" = {
-      name = "levelup";
-      packageName = "levelup";
-      version = "0.19.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/levelup/-/levelup-0.19.1.tgz";
-        sha1 = "f3a6a7205272c4b5f35e412ff004a03a0aedf50b";
-      };
-    };
     "levelup-4.4.0" = {
       name = "levelup";
       packageName = "levelup";
@@ -25758,31 +26865,22 @@ let
         sha512 = "9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA==";
       };
     };
-    "libsodium-0.7.6" = {
+    "libsodium-0.7.8" = {
       name = "libsodium";
       packageName = "libsodium";
-      version = "0.7.6";
+      version = "0.7.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/libsodium/-/libsodium-0.7.6.tgz";
-        sha512 = "hPb/04sEuLcTRdWDtd+xH3RXBihpmbPCsKW/Jtf4PsvdyKh+D6z2D2gvp/5BfoxseP+0FCOg66kE+0oGUE/loQ==";
+        url = "https://registry.npmjs.org/libsodium/-/libsodium-0.7.8.tgz";
+        sha512 = "/Qc+APf0jbeWSaeEruH0L1/tbbT+sbf884ZL0/zV/0JXaDPBzYkKbyb/wmxMHgAHzm3t6gqe7bOOXAVwfqVikQ==";
       };
     };
-    "libsodium-wrappers-0.7.6" = {
+    "libsodium-wrappers-0.7.8" = {
       name = "libsodium-wrappers";
       packageName = "libsodium-wrappers";
-      version = "0.7.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.6.tgz";
-        sha512 = "OUO2CWW5bHdLr6hkKLHIKI4raEkZrf3QHkhXsJ1yCh6MZ3JDA7jFD3kCATNquuGSG6MjjPHQIQms0y0gBDzjQg==";
-      };
-    };
-    "libspiro-js-0.3.1" = {
-      name = "libspiro-js";
-      packageName = "libspiro-js";
-      version = "0.3.1";
+      version = "0.7.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/libspiro-js/-/libspiro-js-0.3.1.tgz";
-        sha1 = "86652b0009a6d84ea79a5320bdca5f00612ee439";
+        url = "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz";
+        sha512 = "PDhPWXBqd/SaqAFUBgH2Ux7b3VEEJgyD6BQB+VdNFJb9PbExGr/T/myc/MBoSvl8qLzfm0W0IVByOQS5L1MrCg==";
       };
     };
     "lie-3.3.0" = {
@@ -25884,6 +26982,15 @@ let
         sha512 = "GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==";
       };
     };
+    "linkify-it-3.0.2" = {
+      name = "linkify-it";
+      packageName = "linkify-it";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.2.tgz";
+        sha512 = "gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ==";
+      };
+    };
     "listr-0.14.3" = {
       name = "listr";
       packageName = "listr";
@@ -25938,15 +27045,6 @@ 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";
@@ -25974,6 +27072,15 @@ let
         sha512 = "dYB1lbwqHgPTrruy9glukCu8Ya9vzj6TMfouCtj2H/GuJ+8syioisgKTBPxnCi6m8K8jINKfTOxOHngFkUYqHw==";
       };
     };
+    "load-plugin-3.0.0" = {
+      name = "load-plugin";
+      packageName = "load-plugin";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/load-plugin/-/load-plugin-3.0.0.tgz";
+        sha512 = "od7eKCCZ62ITvFf8nHHrIiYmgOHb4xVNDRDqxBWSaao5FZyyZVX8OmRCbwjDGPrSrgIulwPNyBsWCGnhiDC0oQ==";
+      };
+    };
     "loader-runner-2.4.0" = {
       name = "loader-runner";
       packageName = "loader-runner";
@@ -26037,6 +27144,15 @@ let
         sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==";
       };
     };
+    "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==";
+      };
+    };
     "locks-0.2.2" = {
       name = "locks";
       packageName = "locks";
@@ -26046,22 +27162,13 @@ let
         sha1 = "259933d1327cbaf0fd3662f8fffde36809d84ced";
       };
     };
-    "locutus-2.0.11" = {
+    "locutus-2.0.12" = {
       name = "locutus";
       packageName = "locutus";
-      version = "2.0.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/locutus/-/locutus-2.0.11.tgz";
-        sha512 = "C0q1L38lK5q1t+wE0KY21/9szrBHxye6o2z5EJzU+5B79tubNOC+nLAEzTTn1vPUGoUuehKh8kYKqiVUTWRyaQ==";
-      };
-    };
-    "lodash-1.0.2" = {
-      name = "lodash";
-      packageName = "lodash";
-      version = "1.0.2";
+      version = "2.0.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz";
-        sha1 = "8f57560c83b59fc270bd3d561b690043430e2551";
+        url = "https://registry.npmjs.org/locutus/-/locutus-2.0.12.tgz";
+        sha512 = "wnzhY9xOdDb2djr17kQhTh9oZgEfp78zI27KRRiiV1GnPXWA2xfVODbpH3QgpIuUMLupM02+6X/rJXvktTpnoA==";
       };
     };
     "lodash-2.4.2" = {
@@ -26100,13 +27207,13 @@ let
         sha1 = "d22c9ac660288f3843e16ba7d2b5d06cca27d777";
       };
     };
-    "lodash-4.17.15" = {
+    "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-4.17.5" = {
@@ -26496,6 +27603,15 @@ let
         sha1 = "7ae3017e939622ac31b7d7d7dcb1b34db1690d35";
       };
     };
+    "lodash.camelcase-4.3.0" = {
+      name = "lodash.camelcase";
+      packageName = "lodash.camelcase";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz";
+        sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
+      };
+    };
     "lodash.clone-4.5.0" = {
       name = "lodash.clone";
       packageName = "lodash.clone";
@@ -26523,6 +27639,15 @@ let
         sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
       };
     };
+    "lodash.constant-3.0.0" = {
+      name = "lodash.constant";
+      packageName = "lodash.constant";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.constant/-/lodash.constant-3.0.0.tgz";
+        sha1 = "bfe05cce7e515b3128925d6362138420bd624910";
+      };
+    };
     "lodash.debounce-4.0.8" = {
       name = "lodash.debounce";
       packageName = "lodash.debounce";
@@ -26532,6 +27657,15 @@ let
         sha1 = "82d79bff30a67c4005ffd5e2515300ad9ca4d7af";
       };
     };
+    "lodash.deburr-4.1.0" = {
+      name = "lodash.deburr";
+      packageName = "lodash.deburr";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz";
+        sha1 = "ddb1bbb3ef07458c0177ba07de14422cb033ff9b";
+      };
+    };
     "lodash.defaults-4.2.0" = {
       name = "lodash.defaults";
       packageName = "lodash.defaults";
@@ -26559,6 +27693,15 @@ let
         sha1 = "995ee0dc18c1b48cc92effae71a10aab5b487698";
       };
     };
+    "lodash.escaperegexp-4.1.2" = {
+      name = "lodash.escaperegexp";
+      packageName = "lodash.escaperegexp";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz";
+        sha1 = "64762c48618082518ac3df4ccf5d5886dae20347";
+      };
+    };
     "lodash.filter-4.6.0" = {
       name = "lodash.filter";
       packageName = "lodash.filter";
@@ -26568,6 +27711,15 @@ let
         sha1 = "668b1d4981603ae1cc5a6fa760143e480b4c4ace";
       };
     };
+    "lodash.flatmap-4.5.0" = {
+      name = "lodash.flatmap";
+      packageName = "lodash.flatmap";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz";
+        sha1 = "ef8cbf408f6e48268663345305c6acc0b778702e";
+      };
+    };
     "lodash.flatten-4.4.0" = {
       name = "lodash.flatten";
       packageName = "lodash.flatten";
@@ -26577,6 +27729,15 @@ let
         sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f";
       };
     };
+    "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";
+      };
+    };
     "lodash.foreach-2.4.1" = {
       name = "lodash.foreach";
       packageName = "lodash.foreach";
@@ -26622,6 +27783,15 @@ let
         sha1 = "0b08a1dcf68397c397855c3239783832df7403d1";
       };
     };
+    "lodash.has-4.5.2" = {
+      name = "lodash.has";
+      packageName = "lodash.has";
+      version = "4.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz";
+        sha1 = "d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862";
+      };
+    };
     "lodash.identity-2.4.1" = {
       name = "lodash.identity";
       packageName = "lodash.identity";
@@ -26685,6 +27855,15 @@ let
         sha1 = "79e4eb88c36a8122af86f844aa9bcd851b5fbb55";
       };
     };
+    "lodash.isarray-4.0.0" = {
+      name = "lodash.isarray";
+      packageName = "lodash.isarray";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-4.0.0.tgz";
+        sha1 = "2aca496b28c4ca6d726715313590c02e6ea34403";
+      };
+    };
     "lodash.isboolean-3.0.3" = {
       name = "lodash.isboolean";
       packageName = "lodash.isboolean";
@@ -26694,6 +27873,15 @@ let
         sha1 = "6c2e171db2a257cd96802fd43b01b20d5f5870f6";
       };
     };
+    "lodash.isempty-4.4.0" = {
+      name = "lodash.isempty";
+      packageName = "lodash.isempty";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz";
+        sha1 = "6f86cbedd8be4ec987be9aaf33c9684db1b31e7e";
+      };
+    };
     "lodash.isequal-4.5.0" = {
       name = "lodash.isequal";
       packageName = "lodash.isequal";
@@ -26712,6 +27900,15 @@ let
         sha1 = "2cfd575c73e498ab57e319b77fa02adef13a94d1";
       };
     };
+    "lodash.isfunction-3.0.9" = {
+      name = "lodash.isfunction";
+      packageName = "lodash.isfunction";
+      version = "3.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz";
+        sha512 = "AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==";
+      };
+    };
     "lodash.isinteger-4.0.4" = {
       name = "lodash.isinteger";
       packageName = "lodash.isinteger";
@@ -26721,6 +27918,15 @@ let
         sha1 = "619c0af3d03f8b04c31f5882840b77b11cd68343";
       };
     };
+    "lodash.islength-4.0.1" = {
+      name = "lodash.islength";
+      packageName = "lodash.islength";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.islength/-/lodash.islength-4.0.1.tgz";
+        sha1 = "4e9868d452575d750affd358c979543dc20ed577";
+      };
+    };
     "lodash.ismatch-4.4.0" = {
       name = "lodash.ismatch";
       packageName = "lodash.ismatch";
@@ -26748,6 +27954,15 @@ let
         sha1 = "5a2e47fe69953f1ee631a7eba1fe64d2d06558f5";
       };
     };
+    "lodash.isobject-3.0.2" = {
+      name = "lodash.isobject";
+      packageName = "lodash.isobject";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz";
+        sha1 = "3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d";
+      };
+    };
     "lodash.isplainobject-4.0.6" = {
       name = "lodash.isplainobject";
       packageName = "lodash.isplainobject";
@@ -26766,6 +27981,15 @@ let
         sha1 = "d527dfb5456eca7cc9bb95d5daeaf88ba54a5451";
       };
     };
+    "lodash.isundefined-3.0.1" = {
+      name = "lodash.isundefined";
+      packageName = "lodash.isundefined";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz";
+        sha1 = "23ef3d9535565203a66cefd5b830f848911afb48";
+      };
+    };
     "lodash.iteratee-4.7.0" = {
       name = "lodash.iteratee";
       packageName = "lodash.iteratee";
@@ -26793,6 +28017,15 @@ let
         sha1 = "4dbc0472b156be50a0b286855d1bd0b0c656098a";
       };
     };
+    "lodash.keys-4.2.0" = {
+      name = "lodash.keys";
+      packageName = "lodash.keys";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.keys/-/lodash.keys-4.2.0.tgz";
+        sha1 = "a08602ac12e4fb83f91fc1fb7a360a4d9ba35205";
+      };
+    };
     "lodash.map-4.6.0" = {
       name = "lodash.map";
       packageName = "lodash.map";
@@ -26883,15 +28116,6 @@ let
         sha1 = "d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b";
       };
     };
-    "lodash.partialright-4.2.1" = {
-      name = "lodash.partialright";
-      packageName = "lodash.partialright";
-      version = "4.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.partialright/-/lodash.partialright-4.2.1.tgz";
-        sha1 = "0130d80e83363264d40074f329b8a3e7a8a1cc4b";
-      };
-    };
     "lodash.pick-4.4.0" = {
       name = "lodash.pick";
       packageName = "lodash.pick";
@@ -26946,6 +28170,15 @@ let
         sha1 = "936a4e309ef330a7645ed4145986c85ae5b20805";
       };
     };
+    "lodash.sample-4.2.1" = {
+      name = "lodash.sample";
+      packageName = "lodash.sample";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.sample/-/lodash.sample-4.2.1.tgz";
+        sha1 = "5e4291b0c753fa1abeb0aab8fb29df1b66f07f6d";
+      };
+    };
     "lodash.set-4.3.2" = {
       name = "lodash.set";
       packageName = "lodash.set";
@@ -26955,6 +28188,24 @@ let
         sha1 = "d8757b1da807dde24816b0d6a84bea1a76230b23";
       };
     };
+    "lodash.size-4.2.0" = {
+      name = "lodash.size";
+      packageName = "lodash.size";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.size/-/lodash.size-4.2.0.tgz";
+        sha1 = "71fe75ed3eabdb2bcb73a1b0b4f51c392ee27b86";
+      };
+    };
+    "lodash.snakecase-4.1.1" = {
+      name = "lodash.snakecase";
+      packageName = "lodash.snakecase";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz";
+        sha1 = "39d714a35357147837aefd64b5dcbb16becd8f8d";
+      };
+    };
     "lodash.some-4.6.0" = {
       name = "lodash.some";
       packageName = "lodash.some";
@@ -27036,6 +28287,24 @@ let
         sha1 = "24c4bfcd6b2fba38bfd0594db1179d8e9b656561";
       };
     };
+    "lodash.topairs-4.3.0" = {
+      name = "lodash.topairs";
+      packageName = "lodash.topairs";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.topairs/-/lodash.topairs-4.3.0.tgz";
+        sha1 = "3b6deaa37d60fb116713c46c5f17ea190ec48d64";
+      };
+    };
+    "lodash.transform-4.6.0" = {
+      name = "lodash.transform";
+      packageName = "lodash.transform";
+      version = "4.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz";
+        sha1 = "12306422f63324aed8483d3f38332b5f670547a0";
+      };
+    };
     "lodash.unescape-4.0.1" = {
       name = "lodash.unescape";
       packageName = "lodash.unescape";
@@ -27072,6 +28341,15 @@ let
         sha1 = "a3a17bbf62eeb6240f491846e97c1c4e2a5e1e21";
       };
     };
+    "lodash.values-4.3.0" = {
+      name = "lodash.values";
+      packageName = "lodash.values";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz";
+        sha1 = "a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347";
+      };
+    };
     "lodash.xorby-4.7.0" = {
       name = "lodash.xorby";
       packageName = "lodash.xorby";
@@ -27090,6 +28368,15 @@ let
         sha512 = "sxChESNYJ/EcQv8C7xpmxhtTOngoXuMEqGDAkhXBEmt3MAzM3SM/TmIBOqnMEVdrOv1+VgZoYbo6U2GemQiU4g==";
       };
     };
+    "log-process-errors-5.1.2" = {
+      name = "log-process-errors";
+      packageName = "log-process-errors";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/log-process-errors/-/log-process-errors-5.1.2.tgz";
+        sha512 = "s4kmYHrzj543xUAIxc/cpmoiGZcbFwKRqqwO49DbgH+hFoSTswi0sYZuJKjUUc73b49MRPQGl0CNl8cx98/Wtg==";
+      };
+    };
     "log-symbols-1.0.2" = {
       name = "log-symbols";
       packageName = "log-symbols";
@@ -27117,6 +28404,15 @@ let
         sha512 = "dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==";
       };
     };
+    "log-symbols-4.0.0" = {
+      name = "log-symbols";
+      packageName = "log-symbols";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz";
+        sha512 = "FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==";
+      };
+    };
     "log-update-1.0.2" = {
       name = "log-update";
       packageName = "log-update";
@@ -27171,13 +28467,22 @@ let
         sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==";
       };
     };
-    "loglevel-1.6.8" = {
+    "logic-solver-2.0.1" = {
+      name = "logic-solver";
+      packageName = "logic-solver";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/logic-solver/-/logic-solver-2.0.1.tgz";
+        sha1 = "e9fa47002eb5d8cda7616d41639b97552eb674be";
+      };
+    };
+    "loglevel-1.7.0" = {
       name = "loglevel";
       packageName = "loglevel";
-      version = "1.6.8";
+      version = "1.7.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/loglevel/-/loglevel-1.7.0.tgz";
+        sha512 = "i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==";
       };
     };
     "loglevel-colored-level-prefix-1.0.0" = {
@@ -27351,15 +28656,6 @@ let
         sha512 = "LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==";
       };
     };
-    "lower-case-first-1.0.2" = {
-      name = "lower-case-first";
-      packageName = "lower-case-first";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz";
-        sha1 = "e5da7c26f29a7073be02d52bac9980e5922adfa1";
-      };
-    };
     "lowercase-keys-1.0.0" = {
       name = "lowercase-keys";
       packageName = "lowercase-keys";
@@ -27423,6 +28719,15 @@ let
         sha1 = "ec2bba603f4c5bb3e7a1bf62ce1c1dbc1d474e08";
       };
     };
+    "lru-cache-2.5.0" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz";
+        sha1 = "d82388ae9c960becbea0c73bb9eb79b6c6ce9aeb";
+      };
+    };
     "lru-cache-2.7.3" = {
       name = "lru-cache";
       packageName = "lru-cache";
@@ -27450,6 +28755,15 @@ let
         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-queue-0.1.0" = {
       name = "lru-queue";
       packageName = "lru-queue";
@@ -27477,15 +28791,6 @@ let
         sha1 = "d637764ea33a929bd00f34d2a23c2256d0d5fb5b";
       };
     };
-    "ltgt-2.1.3" = {
-      name = "ltgt";
-      packageName = "ltgt";
-      version = "2.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ltgt/-/ltgt-2.1.3.tgz";
-        sha1 = "10851a06d9964b971178441c23c9e52698eece34";
-      };
-    };
     "ltgt-2.2.1" = {
       name = "ltgt";
       packageName = "ltgt";
@@ -27504,6 +28809,15 @@ let
         sha512 = "rlAEsgU9Bnavca2w1WJ6+6cdeHMXNyadcersyk3ZpuhgWb5HBNj8l4WwJz9PjksAhYDlpQffCVXPctOn+wCIVA==";
       };
     };
+    "lunr-2.3.6" = {
+      name = "lunr";
+      packageName = "lunr";
+      version = "2.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lunr/-/lunr-2.3.6.tgz";
+        sha512 = "swStvEyDqQ85MGpABCMBclZcLI/pBIlu8FFDtmX197+oEgKloJ67QnB+Tidh0340HmLMs39c4GrkPY3cmkXp6Q==";
+      };
+    };
     "lynx-0.2.0" = {
       name = "lynx";
       packageName = "lynx";
@@ -27549,13 +28863,13 @@ let
         sha1 = "d25e32e97c3c2cb89568ba8c98d229d5c305e391";
       };
     };
-    "macos-release-2.3.0" = {
+    "macos-release-2.4.1" = {
       name = "macos-release";
       packageName = "macos-release";
-      version = "2.3.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz";
-        sha512 = "OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==";
+        url = "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz";
+        sha512 = "H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==";
       };
     };
     "magic-string-0.22.5" = {
@@ -27612,13 +28926,13 @@ let
         sha1 = "79cc6d65a00bb5b7ef5c25ae60ebbb5d9a7681a8";
       };
     };
-    "magnet-uri-5.2.4" = {
+    "magnet-uri-5.3.0" = {
       name = "magnet-uri";
       packageName = "magnet-uri";
-      version = "5.2.4";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/magnet-uri/-/magnet-uri-5.2.4.tgz";
-        sha512 = "VYaJMxhr8B9BrCiNINUsuhaEe40YnG+AQBwcqUKO66lSVaI9I3A1iH/6EmEwRI8OYUg5Gt+4lLE7achg676lrg==";
+        url = "https://registry.npmjs.org/magnet-uri/-/magnet-uri-5.3.0.tgz";
+        sha512 = "8GuTc9mXYfaKrXz687kzx2YTEhMR/X1Qgt6tkTNwPlb2fUy3QfU+O9zuoB5DKAa/IyVdLGxe9xSFUtaA+ZG5tQ==";
       };
     };
     "make-dir-1.3.0" = {
@@ -27657,15 +28971,6 @@ let
         sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==";
       };
     };
-    "make-error-cause-1.2.2" = {
-      name = "make-error-cause";
-      packageName = "make-error-cause";
-      version = "1.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz";
-        sha1 = "df0388fcd0b37816dff0a5fb8108939777dcbc9d";
-      };
-    };
     "make-fetch-happen-5.0.2" = {
       name = "make-fetch-happen";
       packageName = "make-fetch-happen";
@@ -27675,13 +28980,13 @@ let
         sha512 = "07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==";
       };
     };
-    "make-fetch-happen-8.0.7" = {
+    "make-fetch-happen-8.0.9" = {
       name = "make-fetch-happen";
       packageName = "make-fetch-happen";
-      version = "8.0.7";
+      version = "8.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.7.tgz";
-        sha512 = "rkDA4c1nMXVqLkfOaM5RK2dxkUndjLOCrPycTDZgbkFDzhmaCO3P1dmCW//yt1I/G1EcedJqMsSjWkV79Hh4hQ==";
+        url = "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.9.tgz";
+        sha512 = "uHa4gv/NIdm9cUvfOhYb57nxrCY08iyMRXru0jbpaH57Q3NCge/ypY7fOvgCr8tPyucKrGbVndKhjXE0IX0VfQ==";
       };
     };
     "make-iterator-1.0.1" = {
@@ -27819,6 +29124,15 @@ let
         sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
       };
     };
+    "mark.js-8.11.1" = {
+      name = "mark.js";
+      packageName = "mark.js";
+      version = "8.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz";
+        sha1 = "180f1f9ebef8b0e638e4166ad52db879beb2ffc5";
+      };
+    };
     "markdown-escapes-1.0.4" = {
       name = "markdown-escapes";
       packageName = "markdown-escapes";
@@ -27837,6 +29151,15 @@ let
         sha512 = "YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==";
       };
     };
+    "markdown-it-11.0.0" = {
+      name = "markdown-it";
+      packageName = "markdown-it";
+      version = "11.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/markdown-it/-/markdown-it-11.0.0.tgz";
+        sha512 = "+CvOnmbSubmQFSA9dKz1BRiaSMV7rhexl3sngKqFyXSagoA3fBdJQ8oZWtRy2knXdpDXaBw44euz37DeJQ9asg==";
+      };
+    };
     "markdown-it-8.4.2" = {
       name = "markdown-it";
       packageName = "markdown-it";
@@ -27927,13 +29250,13 @@ let
         sha512 = "HqMWeKfMMOu4zBO0emmxsoMWmbf2cPKZY1wP6FsTbKmicFfp5y4L3KXAsNeO1rM6NTJVOrNlLKMPjWzriBGspw==";
       };
     };
-    "markdown-it-multimd-table-4.0.2" = {
+    "markdown-it-multimd-table-4.0.3" = {
       name = "markdown-it-multimd-table";
       packageName = "markdown-it-multimd-table";
-      version = "4.0.2";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-it-multimd-table/-/markdown-it-multimd-table-4.0.2.tgz";
-        sha512 = "SlcssTj7FoYstVQ7MsM8A46/lhbN1K6/q0e9v56o/5kaWmTheXZXQX3nuZgw7WQocn+3nyQGcoO7ovcqeFxaAw==";
+        url = "https://registry.npmjs.org/markdown-it-multimd-table/-/markdown-it-multimd-table-4.0.3.tgz";
+        sha512 = "uVLriNj6doq1dGyJppQdwbaGcK6uSzbrk7osxRHjOmZBeShgMtPS6/d+pnIKkohOjaRyP9e5kwTAlAIe/lEaIQ==";
       };
     };
     "markdown-it-sub-1.0.0" = {
@@ -28008,6 +29331,15 @@ let
         sha512 = "1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==";
       };
     };
+    "markdown-table-2.0.0" = {
+      name = "markdown-table";
+      packageName = "markdown-table";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz";
+        sha512 = "Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==";
+      };
+    };
     "marked-0.3.19" = {
       name = "marked";
       packageName = "marked";
@@ -28017,6 +29349,15 @@ let
         sha512 = "ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==";
       };
     };
+    "marked-0.6.3" = {
+      name = "marked";
+      packageName = "marked";
+      version = "0.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/marked/-/marked-0.6.3.tgz";
+        sha512 = "Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ==";
+      };
+    };
     "marked-0.7.0" = {
       name = "marked";
       packageName = "marked";
@@ -28053,6 +29394,15 @@ let
         sha512 = "md9k+Gxa3qLH6sUKpeC2CNkJK/Ld+bEz5X96nYwloqphQE0CKCVEKco/6jxEZixinqNdz5RFi/KaCyfbMDMAXQ==";
       };
     };
+    "mastodon-api-1.3.0" = {
+      name = "mastodon-api";
+      packageName = "mastodon-api";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mastodon-api/-/mastodon-api-1.3.0.tgz";
+        sha1 = "b3bcffcf51e005f754b7e86e44c2023d8e2c63d1";
+      };
+    };
     "match-casing-1.0.3" = {
       name = "match-casing";
       packageName = "match-casing";
@@ -28116,15 +29466,6 @@ let
         sha512 = "rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==";
       };
     };
-    "mathjs-5.10.3" = {
-      name = "mathjs";
-      packageName = "mathjs";
-      version = "5.10.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mathjs/-/mathjs-5.10.3.tgz";
-        sha512 = "ySjg30BC3dYjQm73ILZtwcWzFJde0VU6otkXW/57IjjuYRa3Qaf0Kb8pydEuBZYtqW2OxreAtsricrAmOj3jIw==";
-      };
-    };
     "mathml-tag-names-2.1.3" = {
       name = "mathml-tag-names";
       packageName = "mathml-tag-names";
@@ -28134,6 +29475,24 @@ let
         sha512 = "APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==";
       };
     };
+    "maxstache-1.0.7" = {
+      name = "maxstache";
+      packageName = "maxstache";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/maxstache/-/maxstache-1.0.7.tgz";
+        sha1 = "2231d5180ba783d5ecfc31c45fedac7ae4276984";
+      };
+    };
+    "maxstache-stream-1.0.4" = {
+      name = "maxstache-stream";
+      packageName = "maxstache-stream";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/maxstache-stream/-/maxstache-stream-1.0.4.tgz";
+        sha1 = "9c7f5cab7e5fdd2d90da86143b4e9631ea328040";
+      };
+    };
     "md5-2.2.1" = {
       name = "md5";
       packageName = "md5";
@@ -28143,6 +29502,15 @@ let
         sha1 = "53ab38d5fe3c8891ba465329ea23fac0540126f9";
       };
     };
+    "md5-2.3.0" = {
+      name = "md5";
+      packageName = "md5";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz";
+        sha512 = "T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==";
+      };
+    };
     "md5-file-4.0.0" = {
       name = "md5-file";
       packageName = "md5-file";
@@ -28152,6 +29520,33 @@ let
         sha512 = "UC0qFwyAjn4YdPpKaDNw6gNxRf7Mcx7jC1UGCY4boCzgvU2Aoc1mOGzTtrjjLKhM5ivsnhoKpQVxKPp+1j1qwg==";
       };
     };
+    "md5-file-5.0.0" = {
+      name = "md5-file";
+      packageName = "md5-file";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/md5-file/-/md5-file-5.0.0.tgz";
+        sha512 = "xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw==";
+      };
+    };
+    "md5-hex-2.0.0" = {
+      name = "md5-hex";
+      packageName = "md5-hex";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/md5-hex/-/md5-hex-2.0.0.tgz";
+        sha1 = "d0588e9f1c74954492ecd24ac0ac6ce997d92e33";
+      };
+    };
+    "md5-o-matic-0.1.1" = {
+      name = "md5-o-matic";
+      packageName = "md5-o-matic";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz";
+        sha1 = "822bccd65e117c514fab176b25945d54100a03c3";
+      };
+    };
     "md5.js-1.3.5" = {
       name = "md5.js";
       packageName = "md5.js";
@@ -28179,13 +29574,22 @@ let
         sha512 = "3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==";
       };
     };
-    "mdast-util-to-nlcst-3.2.3" = {
+    "mdast-util-compact-2.0.1" = {
+      name = "mdast-util-compact";
+      packageName = "mdast-util-compact";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz";
+        sha512 = "7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==";
+      };
+    };
+    "mdast-util-to-nlcst-4.0.0" = {
       name = "mdast-util-to-nlcst";
       packageName = "mdast-util-to-nlcst";
-      version = "3.2.3";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mdast-util-to-nlcst/-/mdast-util-to-nlcst-3.2.3.tgz";
-        sha512 = "hPIsgEg7zCvdU6/qvjcR6lCmJeRuIEpZGY5xBV+pqzuMOvQajyyF8b6f24f8k3Rw8u40GwkI3aAxUXr3bB2xag==";
+        url = "https://registry.npmjs.org/mdast-util-to-nlcst/-/mdast-util-to-nlcst-4.0.0.tgz";
+        sha512 = "CPDf82bVAVImJTZgZ9S1yxGczDyoYi1R+edzz8EVFUPvT3RN0RZnnSnMikawLf6ukAKj6pyhsG0exSO7UEA3DA==";
       };
     };
     "mdmanifest-1.0.8" = {
@@ -28197,13 +29601,13 @@ let
         sha1 = "c04891883c28c83602e1d06b05a11037e359b4c8";
       };
     };
-    "mdn-browser-compat-data-1.0.25" = {
+    "mdn-browser-compat-data-1.0.31" = {
       name = "mdn-browser-compat-data";
       packageName = "mdn-browser-compat-data";
-      version = "1.0.25";
+      version = "1.0.31";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mdn-browser-compat-data/-/mdn-browser-compat-data-1.0.25.tgz";
-        sha512 = "4klqILpitRnmWRai5Ols/GXP1eGDYMluAcBRoNZnGNkV2OnkDmpA9hUlM+9pTFym5FGDO5TAm3HweVSVc7ziiQ==";
+        url = "https://registry.npmjs.org/mdn-browser-compat-data/-/mdn-browser-compat-data-1.0.31.tgz";
+        sha512 = "GVQQYWgoH3jbBaIy8M4hrg34qaNpPedtZvwAjUmkpHq4FXKKCea8Ji5rlS32YJSU9dt7TPvuWWX7Cce5mZyFPA==";
       };
     };
     "mdn-data-2.0.4" = {
@@ -28296,33 +29700,6 @@ let
         sha512 = "fPcI4r2yH02UUgMo308CVzIuXUaRUrBzMvjXX8J4XfcHgX9Y73iB0/VLp+S3TnxnTgIGrQ3BFb7kWGR7kkyS8g==";
       };
     };
-    "megaminx-0.3.3" = {
-      name = "megaminx";
-      packageName = "megaminx";
-      version = "0.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/megaminx/-/megaminx-0.3.3.tgz";
-        sha512 = "lZBSLMro+XYJIix9zCZ8N6nZgixpjUPkX6CKuh+Y9Wl9bir/2Fp27NWapA0cNQCPrzOOI9sAwxc4BI14aIdumw==";
-      };
-    };
-    "megaminx-0.9.0" = {
-      name = "megaminx";
-      packageName = "megaminx";
-      version = "0.9.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/megaminx/-/megaminx-0.9.0.tgz";
-        sha512 = "1UcxrUXXYboLWS3AJ2NuLckLi3YR7eJiO5LsYAWHZjYE0mmSqJ2ogSt6JrG8YINyogW9/TUWpL1ojwbRsSbyXw==";
-      };
-    };
-    "mem-1.1.0" = {
-      name = "mem";
-      packageName = "mem";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz";
-        sha1 = "5edd52b485ca1d900fe64895505399a0dfa45f76";
-      };
-    };
     "mem-4.3.0" = {
       name = "mem";
       packageName = "mem";
@@ -28341,13 +29718,13 @@ let
         sha512 = "qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==";
       };
     };
-    "mem-6.1.0" = {
+    "mem-6.1.1" = {
       name = "mem";
       packageName = "mem";
-      version = "6.1.0";
+      version = "6.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mem/-/mem-6.1.0.tgz";
-        sha512 = "RlbnLQgRHk5lwqTtpEkBTQ2ll/CG/iB+J4Hy2Wh97PjgZgXgWJWrFF+XXujh3UUVLvR4OOTgZzcWMMwnehlEUg==";
+        url = "https://registry.npmjs.org/mem/-/mem-6.1.1.tgz";
+        sha512 = "Ci6bIfq/UgcxPTYa8dQQ5FY3BzKkT894bwXWXxC/zqs0XgMO2cT20CGkOqda7gZNkmK5VP4x89IGZ6K7hfbn3Q==";
       };
     };
     "mem-fs-1.2.0" = {
@@ -28386,6 +29763,24 @@ let
         sha512 = "f/xxz2TpdKv6uDn6GtHee8ivFyxwxmPuXatBb1FBwxYNuVpbM3k/Y1Z+vC0mH/dIXXrukYfe3qe5J32Dfjg93A==";
       };
     };
+    "memoize-one-5.1.1" = {
+      name = "memoize-one";
+      packageName = "memoize-one";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz";
+        sha512 = "HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==";
+      };
+    };
+    "memoizeasync-1.1.0" = {
+      name = "memoizeasync";
+      packageName = "memoizeasync";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/memoizeasync/-/memoizeasync-1.1.0.tgz";
+        sha1 = "9d7028a6f266deb733510bb7dbba5f51878c561e";
+      };
+    };
     "memoizee-0.4.14" = {
       name = "memoizee";
       packageName = "memoizee";
@@ -28521,13 +29916,13 @@ let
         sha512 = "3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==";
       };
     };
-    "meow-7.0.1" = {
+    "meow-7.1.1" = {
       name = "meow";
       packageName = "meow";
-      version = "7.0.1";
+      version = "7.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/meow/-/meow-7.0.1.tgz";
-        sha512 = "tBKIQqVrAHqwit0vfuFPY3LlzJYkEOFyKa3bPgxzNl6q/RtN8KQ+ALYEASYuFayzSAsjlhXj/JZ10rH85Q6TUw==";
+        url = "https://registry.npmjs.org/meow/-/meow-7.1.1.tgz";
+        sha512 = "GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==";
       };
     };
     "merge-1.2.1" = {
@@ -28557,6 +29952,15 @@ 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";
@@ -28593,13 +29997,13 @@ let
         sha1 = "401fdec7ec21cdb9e03cd3d3021398da21b27085";
       };
     };
-    "metals-languageclient-0.2.2" = {
+    "metals-languageclient-0.3.0" = {
       name = "metals-languageclient";
       packageName = "metals-languageclient";
-      version = "0.2.2";
+      version = "0.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/metals-languageclient/-/metals-languageclient-0.2.2.tgz";
-        sha512 = "ib0Wjxa6EOqHuamtrN8GwobTc08Q4MLuT57hDsGyfQBClJOxyvgg4Q1ZwMDNB9DDyZzewQu4OTUpPbG57DXHZw==";
+        url = "https://registry.npmjs.org/metals-languageclient/-/metals-languageclient-0.3.0.tgz";
+        sha512 = "Uh3jj6+b/vWdR3k1BqC8QZK3a/5Z9mVdI+OhVbFGMq6slJ6odFLTDaDZ25zpon4MaLEs+IIC4R91pJcmFdU6og==";
       };
     };
     "metalsmith-2.3.0" = {
@@ -28647,6 +30051,24 @@ let
         sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
       };
     };
+    "micro-api-client-3.3.0" = {
+      name = "micro-api-client";
+      packageName = "micro-api-client";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micro-api-client/-/micro-api-client-3.3.0.tgz";
+        sha512 = "y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg==";
+      };
+    };
+    "micro-memoize-2.1.2" = {
+      name = "micro-memoize";
+      packageName = "micro-memoize";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micro-memoize/-/micro-memoize-2.1.2.tgz";
+        sha512 = "COjNutiFgnDHXZEIM/jYuZPwq2h8zMUeScf6Sh6so98a+REqdlpaNS7Cb2ffGfK5I+xfgoA3Rx49NGuNJTJq3w==";
+      };
+    };
     "microbuffer-1.0.0" = {
       name = "microbuffer";
       packageName = "microbuffer";
@@ -28755,15 +30177,6 @@ let
         sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
       };
     };
-    "mime-2.4.4" = {
-      name = "mime";
-      packageName = "mime";
-      version = "2.4.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz";
-        sha512 = "LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==";
-      };
-    };
     "mime-2.4.6" = {
       name = "mime";
       packageName = "mime";
@@ -28782,15 +30195,6 @@ 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";
@@ -28809,15 +30213,6 @@ 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";
@@ -28845,13 +30240,13 @@ let
         sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==";
       };
     };
-    "mimic-fn-3.0.0" = {
+    "mimic-fn-3.1.0" = {
       name = "mimic-fn";
       packageName = "mimic-fn";
-      version = "3.0.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.0.0.tgz";
-        sha512 = "PiVO95TKvhiwgSwg1IdLYlCTdul38yZxZMIcnDSFIBUm4BNZha2qpQ4GpJ++15bHoKDtrW2D69lMfFwdFYtNZQ==";
+        url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz";
+        sha512 = "Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==";
       };
     };
     "mimic-response-1.0.1" = {
@@ -28935,15 +30330,6 @@ let
         sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a";
       };
     };
-    "minimatch-0.2.14" = {
-      name = "minimatch";
-      packageName = "minimatch";
-      version = "0.2.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz";
-        sha1 = "c74e780574f63c6f9a090e90efbe6ef53a6a756a";
-      };
-    };
     "minimatch-0.3.0" = {
       name = "minimatch";
       packageName = "minimatch";
@@ -28953,15 +30339,6 @@ let
         sha1 = "275d8edaac4f1bb3326472089e7949c8394699dd";
       };
     };
-    "minimatch-2.0.10" = {
-      name = "minimatch";
-      packageName = "minimatch";
-      version = "2.0.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz";
-        sha1 = "8d087c39c6b38c001b97fca7ce6d0e1e80afbac7";
-      };
-    };
     "minimatch-3.0.4" = {
       name = "minimatch";
       packageName = "minimatch";
@@ -28998,6 +30375,15 @@ let
         sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
       };
     };
+    "minimist-1.2.0" = {
+      name = "minimist";
+      packageName = "minimist";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz";
+        sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+      };
+    };
     "minimist-1.2.5" = {
       name = "minimist";
       packageName = "minimist";
@@ -29025,13 +30411,13 @@ let
         sha512 = "Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==";
       };
     };
-    "minimisted-2.0.0" = {
+    "minimisted-2.0.1" = {
       name = "minimisted";
       packageName = "minimisted";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minimisted/-/minimisted-2.0.0.tgz";
-        sha512 = "oP88Dw3LK/pdrKyMdlbmg3W50969UNr4ctISzJfPl+YPYHTAOrS+dihXnsgRNKSRIzDsrnV3eE2CCVlZbpOKdQ==";
+        url = "https://registry.npmjs.org/minimisted/-/minimisted-2.0.1.tgz";
+        sha512 = "1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==";
       };
     };
     "minipass-2.9.0" = {
@@ -29061,13 +30447,13 @@ let
         sha512 = "6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==";
       };
     };
-    "minipass-fetch-1.2.1" = {
+    "minipass-fetch-1.3.1" = {
       name = "minipass-fetch";
       packageName = "minipass-fetch";
-      version = "1.2.1";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.2.1.tgz";
-        sha512 = "ssHt0dkljEDaKmTgQ04DQgx2ag6G2gMPxA5hpcsoeTbfDgRf2fC2gNSRc6kISjD7ckCpHwwQvXxuTBK8402fXg==";
+        url = "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.1.tgz";
+        sha512 = "N0ddPAD8OZnoAHUYj1ZH4ZJVna+ucy7if777LrdeIV1ko8f46af4jbyM5EC1gN4xc9Wq5c3C38GnxRJ2gneXRA==";
       };
     };
     "minipass-flush-1.0.5" = {
@@ -29088,13 +30474,13 @@ let
         sha512 = "ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==";
       };
     };
-    "minipass-pipeline-1.2.3" = {
+    "minipass-pipeline-1.2.4" = {
       name = "minipass-pipeline";
       packageName = "minipass-pipeline";
-      version = "1.2.3";
+      version = "1.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz";
-        sha512 = "cFOknTvng5vqnwOpDsZTWhNll6Jf8o2x+/diplafmxpuIymAjzoOolZG0VvQf3V2HgqzJNhnuKHYp2BqDgz8IQ==";
+        url = "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz";
+        sha512 = "xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==";
       };
     };
     "minipass-sized-1.0.3" = {
@@ -29124,13 +30510,13 @@ let
         sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==";
       };
     };
-    "minizlib-2.1.0" = {
+    "minizlib-2.1.2" = {
       name = "minizlib";
       packageName = "minizlib";
-      version = "2.1.0";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz";
-        sha512 = "EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==";
+        url = "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz";
+        sha512 = "bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==";
       };
     };
     "mired-0.0.0" = {
@@ -29250,6 +30636,24 @@ let
         sha1 = "ebb3a977e7af1c683ae6fda12b545a6ba6c5853d";
       };
     };
+    "mobx-4.15.6" = {
+      name = "mobx";
+      packageName = "mobx";
+      version = "4.15.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mobx/-/mobx-4.15.6.tgz";
+        sha512 = "eZVEHZLi/Fe+V4qurBBQoFHCqaGrfMuYK1Vy4t5MHYfy90f52ptAKsemHsJcYl+R5/sA3oeT3rMLiVsbB7bllA==";
+      };
+    };
+    "mobx-react-5.4.4" = {
+      name = "mobx-react";
+      packageName = "mobx-react";
+      version = "5.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mobx-react/-/mobx-react-5.4.4.tgz";
+        sha512 = "2mTzpyEjVB/RGk2i6KbcmP4HWcAUFox5ZRCrGvSyz49w20I4C4qql63grPpYrS9E9GKwgydBHQlA4y665LuRCQ==";
+      };
+    };
     "mocha-2.5.3" = {
       name = "mocha";
       packageName = "mocha";
@@ -29259,13 +30663,13 @@ let
         sha1 = "161be5bdeb496771eb9b35745050b622b5aefc58";
       };
     };
-    "mocha-7.2.0" = {
+    "mocha-8.1.3" = {
       name = "mocha";
       packageName = "mocha";
-      version = "7.2.0";
+      version = "8.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz";
-        sha512 = "O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==";
+        url = "https://registry.npmjs.org/mocha/-/mocha-8.1.3.tgz";
+        sha512 = "ZbaYib4hT4PpF4bdSO2DohooKXIn4lDeiYqB+vTmCdr6l2woW0b6H3pf5x4sM5nwQMru9RvjjHYWVGltR50ZBw==";
       };
     };
     "mock-require-3.0.3" = {
@@ -29304,22 +30708,22 @@ let
         sha512 = "HTplA9xwDzH67XJFC1YvZMUElWJD28DV0dUq7lhTs+JKJamUOWA/CcYWSlhW5amJO66uWtY7XdltT+LfX0wIVg==";
       };
     };
-    "module-deps-6.2.2" = {
+    "module-deps-6.2.3" = {
       name = "module-deps";
       packageName = "module-deps";
-      version = "6.2.2";
+      version = "6.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/module-deps/-/module-deps-6.2.2.tgz";
-        sha512 = "a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w==";
+        url = "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz";
+        sha512 = "fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==";
       };
     };
-    "module-lookup-amd-6.2.0" = {
-      name = "module-lookup-amd";
-      packageName = "module-lookup-amd";
-      version = "6.2.0";
+    "moize-5.4.7" = {
+      name = "moize";
+      packageName = "moize";
+      version = "5.4.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-6.2.0.tgz";
-        sha512 = "uxHCj5Pw9psZiC1znjU2qPsubt6haCSsN9m7xmIdoTciEgfxUkE1vhtDvjHPuOXEZrVJhjKgkmkP+w73rRuelQ==";
+        url = "https://registry.npmjs.org/moize/-/moize-5.4.7.tgz";
+        sha512 = "7PZH8QFJ51cIVtDv7wfUREBd3gL59JB0v/ARA3RI9zkSRa9LyGjS1Bdldii2J1/NQXRQ/3OOVOSdnZrCcVaZlw==";
       };
     };
     "mold-source-map-0.4.0" = {
@@ -29340,24 +30744,6 @@ let
         sha512 = "Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==";
       };
     };
-    "moment-2.25.3" = {
-      name = "moment";
-      packageName = "moment";
-      version = "2.25.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/moment/-/moment-2.25.3.tgz";
-        sha512 = "PuYv0PHxZvzc15Sp8ybUCoQ+xpyPWvjOuK72a5ovzp2LI32rJXOiIfyoFoYvG3s6EwwrdkMyWuRiEHSZRLJNdg==";
-      };
-    };
-    "moment-2.26.0" = {
-      name = "moment";
-      packageName = "moment";
-      version = "2.26.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/moment/-/moment-2.26.0.tgz";
-        sha512 = "oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw==";
-      };
-    };
     "moment-2.27.0" = {
       name = "moment";
       packageName = "moment";
@@ -29439,6 +30825,15 @@ let
         sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92";
       };
     };
+    "move-file-1.2.0" = {
+      name = "move-file";
+      packageName = "move-file";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/move-file/-/move-file-1.2.0.tgz";
+        sha512 = "USHrRmxzGowUWAGBbJPdFjHzEqtxDU03pLHY0Rfqgtnq+q8FOIs8wvkkf+Udmg77SJKs47y9sI0jJvQeYsmiCA==";
+      };
+    };
     "mp4-box-encoding-1.4.1" = {
       name = "mp4-box-encoding";
       packageName = "mp4-box-encoding";
@@ -29673,13 +31068,13 @@ let
         sha1 = "a567c2af000ad22dc8f2a653d91978ae1f5316f4";
       };
     };
-    "multiparty-4.2.1" = {
+    "multiparty-4.2.2" = {
       name = "multiparty";
       packageName = "multiparty";
-      version = "4.2.1";
+      version = "4.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/multiparty/-/multiparty-4.2.1.tgz";
-        sha512 = "AvESCnNoQlZiOfP9R4mxN8M9csy2L16EIbWIkt3l4FuGti9kXBS8QVzlfyg4HEnarJhrzZilgNFlZtqmoiAIIA==";
+        url = "https://registry.npmjs.org/multiparty/-/multiparty-4.2.2.tgz";
+        sha512 = "NtZLjlvsjcoGrzojtwQwn/Tm90aWJ6XXtPppYF4WmOk/6ncdwMMKggFY2NlRRN9yiCEIVxpOfPWahVEG2HAG8Q==";
       };
     };
     "multipipe-0.1.2" = {
@@ -29736,6 +31131,15 @@ let
         sha512 = "t0C8MAtH/d3Y+5nooEtUMWli92lVw9Jhx4uOhRl5GAwS5vc+YTmp/VXNJNsCBAMeEyK/6zhbk6x9JE3AiCvo4g==";
       };
     };
+    "munin-plugin-0.0.9" = {
+      name = "munin-plugin";
+      packageName = "munin-plugin";
+      version = "0.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/munin-plugin/-/munin-plugin-0.0.9.tgz";
+        sha1 = "ca17e1eafb3b9155b5e4c21062210e348a9dbe91";
+      };
+    };
     "mustache-2.3.2" = {
       name = "mustache";
       packageName = "mustache";
@@ -29817,13 +31221,13 @@ let
         sha512 = "nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==";
       };
     };
-    "mutexify-1.3.0" = {
+    "mutexify-1.3.1" = {
       name = "mutexify";
       packageName = "mutexify";
-      version = "1.3.0";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mutexify/-/mutexify-1.3.0.tgz";
-        sha512 = "WNPlgZ3AHETGSa4jeRP4aW6BPQ/a++MwoMFFIgrDg80+m70mbxuNOrevANfBDmur82zxTFAY3OwvMAvqrkV2sA==";
+        url = "https://registry.npmjs.org/mutexify/-/mutexify-1.3.1.tgz";
+        sha512 = "nU7mOEuaXiQIB/EgTIjYZJ7g8KqMm2D8l4qp+DqA4jxWOb/tnb1KEoqp+tlbdQIDIAiC1i7j7X/3yHDFXLxr9g==";
       };
     };
     "muxrpc-6.5.0" = {
@@ -29907,6 +31311,15 @@ let
         sha512 = "TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==";
       };
     };
+    "nan-2.14.0" = {
+      name = "nan";
+      packageName = "nan";
+      version = "2.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz";
+        sha512 = "INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==";
+      };
+    };
     "nan-2.14.1" = {
       name = "nan";
       packageName = "nan";
@@ -30033,6 +31446,15 @@ let
         sha1 = "20a318c30cb45f71fe7adfbf7b21c99c1472ef11";
       };
     };
+    "native-request-1.0.7" = {
+      name = "native-request";
+      packageName = "native-request";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/native-request/-/native-request-1.0.7.tgz";
+        sha512 = "9nRjinI9bmz+S7dgNtf4A70+/vPhnd+2krGpy4SUlADuOuSa24IDkNaZ+R/QT1wQ6S8jBdi6wE7fLekFZNfUpQ==";
+      };
+    };
     "natives-1.1.6" = {
       name = "natives";
       packageName = "natives";
@@ -30069,13 +31491,13 @@ let
         sha512 = "p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==";
       };
     };
-    "ncjsm-4.0.1" = {
+    "ncjsm-4.1.0" = {
       name = "ncjsm";
       packageName = "ncjsm";
-      version = "4.0.1";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ncjsm/-/ncjsm-4.0.1.tgz";
-        sha512 = "gxh5Sgait8HyclaulfhgetHQGyhFm00ZQqISIfqtwFVnyWJ20rk+55SUamo9n3KhM6Vk63gemKPxIDYiSV/xZw==";
+        url = "https://registry.npmjs.org/ncjsm/-/ncjsm-4.1.0.tgz";
+        sha512 = "YElRGtbz5iIartetOI3we+XAkcGE29F0SdNC0qRy500/u4WceQd2z9Nhlx24OHmIDIKz9MHdJwf/fkSG0hdWcQ==";
       };
     };
     "nconf-0.10.0" = {
@@ -30150,13 +31572,13 @@ let
         sha1 = "ae603b36b134bcec347b452422b0bf98d5832ec8";
       };
     };
-    "nearley-2.19.4" = {
+    "nearley-2.19.6" = {
       name = "nearley";
       packageName = "nearley";
-      version = "2.19.4";
+      version = "2.19.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nearley/-/nearley-2.19.4.tgz";
-        sha512 = "oqj3m4oqwKsN77pETa9IPvxHHHLW68KrDc2KYoWMUOhDlrNUo7finubwffQMBRnwNCOXc4kRxCZO0Rvx4L6Zrw==";
+        url = "https://registry.npmjs.org/nearley/-/nearley-2.19.6.tgz";
+        sha512 = "OV3Lx+o5iIGWVY38zs+7aiSnBqaHTFAOQiz83VHJje/wOOaSgzE3H0S/xfISxJhFSoPcX611OEDV9sCT8F283g==";
       };
     };
     "neat-csv-2.1.0" = {
@@ -30231,6 +31653,15 @@ let
         sha512 = "o/qITSDR0JCyCKEQ1/1bnUXMmznxabbwi/Y4WwJElf+evwJNFNwIDMCCt5IigFVxgeGBJESLohGtIS9gEzo1fA==";
       };
     };
+    "needle-2.5.2" = {
+      name = "needle";
+      packageName = "needle";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/needle/-/needle-2.5.2.tgz";
+        sha512 = "LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==";
+      };
+    };
     "negotiator-0.3.0" = {
       name = "negotiator";
       packageName = "negotiator";
@@ -30268,22 +31699,13 @@ let
         sha256 = "243e90fbf6616ef39f3c71bbcd027799e35cbf2ef3f25203676f65b20f7f7394";
       };
     };
-    "neo-async-2.6.1" = {
+    "neo-async-2.6.2" = {
       name = "neo-async";
       packageName = "neo-async";
-      version = "2.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz";
-        sha512 = "iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==";
-      };
-    };
-    "nested-error-stacks-2.0.1" = {
-      name = "nested-error-stacks";
-      packageName = "nested-error-stacks";
-      version = "2.0.1";
+      version = "2.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz";
-        sha512 = "SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==";
+        url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz";
+        sha512 = "Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==";
       };
     };
     "nested-error-stacks-2.1.0" = {
@@ -30295,6 +31717,33 @@ let
         sha512 = "AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==";
       };
     };
+    "netlify-4.3.13" = {
+      name = "netlify";
+      packageName = "netlify";
+      version = "4.3.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/netlify/-/netlify-4.3.13.tgz";
+        sha512 = "nXiqUm89HOEGOzYiLtxGOUCZ+iJB01zxCMeolaQXaIia6UnFCw/jHMARGXMLpntxkgjclaMgMVzKO3aetbHAvQ==";
+      };
+    };
+    "netlify-redirect-parser-2.5.0" = {
+      name = "netlify-redirect-parser";
+      packageName = "netlify-redirect-parser";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-2.5.0.tgz";
+        sha512 = "pF8BiOr3Pa4kQLLiOu53I0d30EIUDM0DYqYvCQmKD96cMX2qLh/QsxT0Zh18IrL5a0IWQ236/o76lTe0yEEw6w==";
+      };
+    };
+    "netlify-redirector-0.2.0" = {
+      name = "netlify-redirector";
+      packageName = "netlify-redirector";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/netlify-redirector/-/netlify-redirector-0.2.0.tgz";
+        sha512 = "5SSUu++MXvE/tik90Hx7lzISBHCl5k4TqpVeTuBEoHp5K7uWitY7c3MjPNiY3kB83GSZiTNLbuIY7bo6mpyU3Q==";
+      };
+    };
     "netmask-1.0.6" = {
       name = "netmask";
       packageName = "netmask";
@@ -30412,13 +31861,13 @@ let
         sha512 = "dWJ3XUoAoWoau24xOM59Y1FPozv7DyYWy+rdUaXj9Ow0hBCVuwqDQbXzTF7H+HskyTVpTkRPXYPu4YsMEScmRw==";
       };
     };
-    "nlcst-search-1.5.1" = {
+    "nlcst-search-2.0.0" = {
       name = "nlcst-search";
       packageName = "nlcst-search";
-      version = "1.5.1";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nlcst-search/-/nlcst-search-1.5.1.tgz";
-        sha512 = "G3ws0fgNlVsUvHvA2G1PTjyxzGOJ0caI0+WOvlZzev5iSUTX+R1q4lnlL4Y7E+he4ZMUW/0FMn9rYwdYon/13g==";
+        url = "https://registry.npmjs.org/nlcst-search/-/nlcst-search-2.0.0.tgz";
+        sha512 = "+3xdctMFTcG+76vKAa0wObNg1EYq7IIQlZcL+HxSFXkHO1DgSPRjsPJrmelVIvMg7rk+wmBcdPEoScv/CTT1Zw==";
       };
     };
     "nlcst-to-string-2.0.4" = {
@@ -30466,13 +31915,13 @@ let
         sha512 = "iEOqDAOFl6uN5jZGRj39Jdo8qALzf2HPXtpFso8+BMaDylDrUMYMwhFbfYGgxdnMlsRnxYTwv68kaXEpsHIapg==";
       };
     };
-    "node-abi-2.18.0" = {
+    "node-abi-2.19.1" = {
       name = "node-abi";
       packageName = "node-abi";
-      version = "2.18.0";
+      version = "2.19.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.18.0.tgz";
-        sha512 = "yi05ZoiuNNEbyT/xXfSySZE+yVnQW6fxPZuFbLyS1s6b5Kw3HzV2PHOM4XR+nsjzkHxByK+2Wg+yCQbe35l8dw==";
+        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.19.1.tgz";
+        sha512 = "HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A==";
       };
     };
     "node-addon-api-1.7.2" = {
@@ -30484,6 +31933,15 @@ let
         sha512 = "ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==";
       };
     };
+    "node-addon-api-2.0.0" = {
+      name = "node-addon-api";
+      packageName = "node-addon-api";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.0.tgz";
+        sha512 = "ASCL5U13as7HhOExbT6OlWJJUV/lLzL2voOSP1UVehpRD8FbSrSDjfScK/KwAvVTI5AS6r4VwbOMlIqtvRidnA==";
+      };
+    };
     "node-appc-0.2.49" = {
       name = "node-appc";
       packageName = "node-appc";
@@ -30502,13 +31960,13 @@ let
         sha1 = "180eac7003e0c707618ef31368f62f84b2a69091";
       };
     };
-    "node-cache-5.1.1" = {
+    "node-cache-5.1.2" = {
       name = "node-cache";
       packageName = "node-cache";
-      version = "5.1.1";
+      version = "5.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-cache/-/node-cache-5.1.1.tgz";
-        sha512 = "bJ9nH25Z51HG2QIu66K4dMVyMs6o8bNQpviDnXzG+O/gfNxPU9IpIig0j4pzlO707GcGZ6QA4rWhlRxjJsjnZw==";
+        url = "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz";
+        sha512 = "t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==";
       };
     };
     "node-color-readline-1.0.1" = {
@@ -30548,13 +32006,13 @@ let
         sha256 = "224950cc405150c37dbd3c4aa65dc0cfb799b1a57f674e9bb76f993268106406";
       };
     };
-    "node-environment-flags-1.0.6" = {
-      name = "node-environment-flags";
-      packageName = "node-environment-flags";
-      version = "1.0.6";
+    "node-fetch-1.6.3" = {
+      name = "node-fetch";
+      packageName = "node-fetch";
+      version = "1.6.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz";
-        sha512 = "5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==";
+        url = "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz";
+        sha1 = "dc234edd6489982d58e8f0db4f695029abcd8c04";
       };
     };
     "node-fetch-1.7.3" = {
@@ -30629,6 +32087,15 @@ let
         sha512 = "7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==";
       };
     };
+    "node-forge-0.9.1" = {
+      name = "node-forge";
+      packageName = "node-forge";
+      version = "0.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-forge/-/node-forge-0.9.1.tgz";
+        sha512 = "G6RlQt5Sb4GMBzXvhfkeFmbqR6MzhtnT7VTHuLadjkii3rdYHNdw0m8zA4BTxVIh68FicCQ2NSUANpsqkr9jvQ==";
+      };
+    };
     "node-gyp-3.8.0" = {
       name = "node-gyp";
       packageName = "node-gyp";
@@ -30638,6 +32105,15 @@ let
         sha512 = "3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==";
       };
     };
+    "node-gyp-4.0.0" = {
+      name = "node-gyp";
+      packageName = "node-gyp";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz";
+        sha512 = "2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA==";
+      };
+    };
     "node-gyp-5.1.1" = {
       name = "node-gyp";
       packageName = "node-gyp";
@@ -30683,13 +32159,13 @@ let
         sha512 = "dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==";
       };
     };
-    "node-gyp-build-4.2.2" = {
+    "node-gyp-build-4.2.3" = {
       name = "node-gyp-build";
       packageName = "node-gyp-build";
-      version = "4.2.2";
+      version = "4.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.2.tgz";
-        sha512 = "Lqh7mrByWCM8Cf9UPqpeoVBBo5Ugx+RKu885GAzmLBVYjeywScxHXPGLa4JfYNZmcNGwzR0Glu5/9GaQZMFqyA==";
+        url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz";
+        sha512 = "MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==";
       };
     };
     "node-int64-0.4.0" = {
@@ -30737,6 +32213,15 @@ let
         sha512 = "SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==";
       };
     };
+    "node-notifier-7.0.2" = {
+      name = "node-notifier";
+      packageName = "node-notifier";
+      version = "7.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-notifier/-/node-notifier-7.0.2.tgz";
+        sha512 = "ux+n4hPVETuTL8+daJXTOC6uKLgMsl1RYfFv7DKRzyvzBapqco0rZZ9g72ZN8VS6V+gvNYHYa/ofcCY8fkJWsA==";
+      };
+    };
     "node-persist-2.1.0" = {
       name = "node-persist";
       packageName = "node-persist";
@@ -30782,6 +32267,15 @@ let
         sha512 = "4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==";
       };
     };
+    "node-pre-gyp-0.14.0" = {
+      name = "node-pre-gyp";
+      packageName = "node-pre-gyp";
+      version = "0.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz";
+        sha512 = "+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==";
+      };
+    };
     "node-pre-gyp-0.6.39" = {
       name = "node-pre-gyp";
       packageName = "node-pre-gyp";
@@ -30800,6 +32294,15 @@ let
         sha1 = "dbbd4af12134e2e635c245ef93ffcf6f60673a5d";
       };
     };
+    "node-red-admin-0.2.6" = {
+      name = "node-red-admin";
+      packageName = "node-red-admin";
+      version = "0.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-red-admin/-/node-red-admin-0.2.6.tgz";
+        sha512 = "s3TlPwl9VbhsCTg9w2nUCdyBwqyRGqnaohy9iPJPmHPnvT+YudVt9VCoJVol5lPlWbDC9QlBQMyHQDdXIxoLkw==";
+      };
+    };
     "node-red-node-rbe-0.2.9" = {
       name = "node-red-node-rbe";
       packageName = "node-red-node-rbe";
@@ -30818,13 +32321,13 @@ let
         sha512 = "j1g/VtSCI2tBrBnCD+u8iSo9tH0nvn70k1O1SxkHk3+qx7tHUyOKQc7wNc4rUs9J1PkGngUC3qEDd5cL7Z/klg==";
       };
     };
-    "node-releases-1.1.58" = {
+    "node-releases-1.1.60" = {
       name = "node-releases";
       packageName = "node-releases";
-      version = "1.1.58";
+      version = "1.1.60";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz";
-        sha512 = "NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==";
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz";
+        sha512 = "gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==";
       };
     };
     "node-source-walk-4.2.0" = {
@@ -30962,6 +32465,15 @@ let
         sha1 = "94a2b1633c4f1317553007d8966fd0e841b6a4c2";
       };
     };
+    "noop2-2.0.0" = {
+      name = "noop2";
+      packageName = "noop2";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/noop2/-/noop2-2.0.0.tgz";
+        sha1 = "4b636015e9882b54783c02b412f699d8c5cd0a5b";
+      };
+    };
     "nopt-1.0.10" = {
       name = "nopt";
       packageName = "nopt";
@@ -31016,6 +32528,15 @@ let
         sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==";
       };
     };
+    "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-html-whitespace-1.0.0" = {
       name = "normalize-html-whitespace";
       packageName = "normalize-html-whitespace";
@@ -31268,22 +32789,22 @@ let
         sha512 = "Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==";
       };
     };
-    "npm-registry-fetch-4.0.4" = {
+    "npm-registry-fetch-4.0.7" = {
       name = "npm-registry-fetch";
       packageName = "npm-registry-fetch";
-      version = "4.0.4";
+      version = "4.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.4.tgz";
-        sha512 = "6jb34hX/iYNQebqWUHtU8YF6Cjb1H6ouTFPClYsyiW6lpFkljTpdeftm53rRojtja1rKAvKNIIiTS5Sjpw4wsA==";
+        url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz";
+        sha512 = "cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==";
       };
     };
-    "npm-registry-fetch-8.1.0" = {
+    "npm-registry-fetch-8.1.4" = {
       name = "npm-registry-fetch";
       packageName = "npm-registry-fetch";
-      version = "8.1.0";
+      version = "8.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-8.1.0.tgz";
-        sha512 = "RkcugRDye2j6yEiHGMyAdKQoipgp8VToSIjm+TFLhVraXOkC/WU2kjE2URcYBpcJ4hs++VFBKo6+Zg4wmrS+Qw==";
+        url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-8.1.4.tgz";
+        sha512 = "UaLGFQP7VCuyBsb7S5P5od3av/Zy9JW6K5gbMigjZCYnEpIkWWRiLQTKVpxM4QocfPcsjm+xtyrDNm4jdqwNEg==";
       };
     };
     "npm-run-path-2.0.2" = {
@@ -31457,31 +32978,31 @@ let
         sha512 = "pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==";
       };
     };
-    "oas-linter-3.1.2" = {
+    "oas-linter-3.2.0" = {
       name = "oas-linter";
       packageName = "oas-linter";
-      version = "3.1.2";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oas-linter/-/oas-linter-3.1.2.tgz";
-        sha512 = "mv3HBG9aQz8PLGvonewIN9Y2Ra8QL6jvotRvf7NCdZ20n5vg4dO4y61UZh6s+KRDfJaU1PO+9Oxrn3EUN4Xygw==";
+        url = "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.0.tgz";
+        sha512 = "LP5F1dhjULEJV5oGRg6ROztH2FddzttrrUEwq5J2GB2Zy938mg0vwt1+Rthn/qqDHtj4Qgq21duNGHh+Ew1wUg==";
       };
     };
-    "oas-resolver-2.3.2" = {
+    "oas-resolver-2.4.4" = {
       name = "oas-resolver";
       packageName = "oas-resolver";
-      version = "2.3.2";
+      version = "2.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.3.2.tgz";
-        sha512 = "toGCUv8wyZZmUAAsw4jn+511xNpUFW2ZLp4sAZ7xpERIeosrbxBxtkVxot9kXvdUHtPjRafi5+bkJ56TwQeYSQ==";
+        url = "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.4.4.tgz";
+        sha512 = "670+SM5CXYrjI547cgUeQTdB1wJb2gyrJ7bnGywQMrmciKXhXj/EFbE/8c8wed+j1WmGAh7xS+QdQxiuIlNqlw==";
       };
     };
-    "oas-schema-walker-1.1.4" = {
+    "oas-schema-walker-1.1.5" = {
       name = "oas-schema-walker";
       packageName = "oas-schema-walker";
-      version = "1.1.4";
+      version = "1.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.4.tgz";
-        sha512 = "foVDDS0RJYMfhQEDh/WdBuCzydTcsCnGo9EeD8SpWq1uW10JXiz+8SfYVDA7LO87kjmlnTRZle/2gr5qxabaEA==";
+        url = "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz";
+        sha512 = "2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==";
       };
     };
     "oas-validator-3.4.0" = {
@@ -31683,13 +33204,13 @@ let
         sha512 = "BfWfuAwuhdH1bhMG5EG90WE/eckkBhBvnke8eSEkCDXoLE9Jk5JwYGTbCx1ehGwV48HvBkn62VukPBdlMUOY9w==";
       };
     };
-    "object-treeify-1.1.25" = {
+    "object-treeify-1.1.26" = {
       name = "object-treeify";
       packageName = "object-treeify";
-      version = "1.1.25";
+      version = "1.1.26";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.25.tgz";
-        sha512 = "6Abx0xlXDnYd50JkQefvoIly3jWOu8/PqH4lh8p2/aMFEx5TjsUGHt0H9NHfzt+pCwOhpPgNYofD8e2YywIXig==";
+        url = "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.26.tgz";
+        sha512 = "0WTfU7SGM8umY4YPpOg+oHXL66E6dPVCr+sMR6KitPmvg8CkVrHUUZYEFtx0+5Wb0HjFEsBwBYXyGRNeX7c/oQ==";
       };
     };
     "object-visit-1.0.1" = {
@@ -31836,6 +33357,15 @@ let
         sha512 = "fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==";
       };
     };
+    "office-ui-fabric-react-7.134.1" = {
+      name = "office-ui-fabric-react";
+      packageName = "office-ui-fabric-react";
+      version = "7.134.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.134.1.tgz";
+        sha512 = "yQhPdt5kQfzI/MQnqQMu9lf2mgdHSogEfVIYgfOjbvfMJoUzqA/hH3X2Z7RbncdJ/ca2H+GXVp5GvSgahCOs6g==";
+      };
+    };
     "omggif-1.0.10" = {
       name = "omggif";
       packageName = "omggif";
@@ -31845,6 +33375,15 @@ let
         sha512 = "LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==";
       };
     };
+    "omit.js-2.0.2" = {
+      name = "omit.js";
+      packageName = "omit.js";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/omit.js/-/omit.js-2.0.2.tgz";
+        sha512 = "hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg==";
+      };
+    };
     "on-change-network-0.0.2" = {
       name = "on-change-network";
       packageName = "on-change-network";
@@ -31953,6 +33492,15 @@ let
         sha1 = "f8cdf77884826fe4dff93e3a9cc37b1e4480742e";
       };
     };
+    "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==";
+      };
+    };
     "onetime-1.1.0" = {
       name = "onetime";
       packageName = "onetime";
@@ -31971,13 +33519,22 @@ let
         sha1 = "067428230fd67443b2794b22bba528b6867962d4";
       };
     };
-    "onetime-5.1.0" = {
+    "onetime-5.1.2" = {
       name = "onetime";
       packageName = "onetime";
-      version = "5.1.0";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz";
+        sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==";
+      };
+    };
+    "ono-4.0.11" = {
+      name = "ono";
+      packageName = "ono";
+      version = "4.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz";
-        sha512 = "5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==";
+        url = "https://registry.npmjs.org/ono/-/ono-4.0.11.tgz";
+        sha512 = "jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g==";
       };
     };
     "opal-runtime-1.0.11" = {
@@ -32016,22 +33573,121 @@ let
         sha512 = "IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==";
       };
     };
-    "open-7.0.0" = {
+    "open-7.0.4" = {
       name = "open";
       packageName = "open";
-      version = "7.0.0";
+      version = "7.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/open/-/open-7.0.0.tgz";
-        sha512 = "K6EKzYqnwQzk+/dzJAQSBORub3xlBTxMz+ntpZpH/LyCa1o6KjXhuN+2npAaI9jaSmU3R1Q8NWf4KUWcyytGsQ==";
+        url = "https://registry.npmjs.org/open/-/open-7.0.4.tgz";
+        sha512 = "brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ==";
       };
     };
-    "open-7.0.4" = {
+    "open-7.1.0" = {
       name = "open";
       packageName = "open";
-      version = "7.0.4";
+      version = "7.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/open/-/open-7.0.4.tgz";
-        sha512 = "brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ==";
+        url = "https://registry.npmjs.org/open/-/open-7.1.0.tgz";
+        sha512 = "lLPI5KgOwEYCDKXf4np7y1PBEkj7HYIyP2DY8mVDRnx0VIIu6bNrRB0R66TuO7Mack6EnTNLm4uvcl1UoklTpA==";
+      };
+    };
+    "open-7.2.0" = {
+      name = "open";
+      packageName = "open";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/open/-/open-7.2.0.tgz";
+        sha512 = "4HeyhxCvBTI5uBePsAdi55C5fmqnWZ2e2MlmvWi5KW5tdH5rxoiv/aMtbeVxKZc3eWkT1GymMnLG8XC4Rq4TDQ==";
+      };
+    };
+    "open-7.2.1" = {
+      name = "open";
+      packageName = "open";
+      version = "7.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/open/-/open-7.2.1.tgz";
+        sha512 = "xbYCJib4spUdmcs0g/2mK1nKo/jO2T7INClWd/beL7PFkXRWgr8B23ssDHX/USPn2M2IjDR5UdpYs6I67SnTSA==";
+      };
+    };
+    "openapi-default-setter-2.1.0" = {
+      name = "openapi-default-setter";
+      packageName = "openapi-default-setter";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-default-setter/-/openapi-default-setter-2.1.0.tgz";
+        sha512 = "2ZNlX1B/J9Q/bsM/vZKh8alC0Pn04KtDGbMN30qLRu3GkaOJH3dDMKxqJzCpYj8BOAa8G3BEsQq6kqWzkEsM7A==";
+      };
+    };
+    "openapi-framework-0.26.0" = {
+      name = "openapi-framework";
+      packageName = "openapi-framework";
+      version = "0.26.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-framework/-/openapi-framework-0.26.0.tgz";
+        sha512 = "TbgwwOnlatb+xSYh/XALQjrVO3dirVNXuONR6CLQHVI/i1e+nq/ubW8I5i6rlGpnFLZNZKXZ0gF7RMvjLBk8ow==";
+      };
+    };
+    "openapi-jsonschema-parameters-1.2.0" = {
+      name = "openapi-jsonschema-parameters";
+      packageName = "openapi-jsonschema-parameters";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-jsonschema-parameters/-/openapi-jsonschema-parameters-1.2.0.tgz";
+        sha512 = "i2vBBFiRbOwYSvt5OG9hayJ7WUe/nl9Y151Ki1QtHb8M0zdYs2wkDhywVJnapq4/gPlrD1vmSVsYDrAjcBRJTQ==";
+      };
+    };
+    "openapi-request-coercer-2.4.0" = {
+      name = "openapi-request-coercer";
+      packageName = "openapi-request-coercer";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-request-coercer/-/openapi-request-coercer-2.4.0.tgz";
+        sha512 = "UFRzW7C7Q31FUOFHEMYNeSuEmETH7KGlsMgMJanv0RxXkACyzKpKANPfM3oiMubQENPya3Ie9ZIq5HLvZEy/eQ==";
+      };
+    };
+    "openapi-request-validator-4.2.0" = {
+      name = "openapi-request-validator";
+      packageName = "openapi-request-validator";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-request-validator/-/openapi-request-validator-4.2.0.tgz";
+        sha512 = "ukdX4T8heEI2GudiqDkk8hwfZhZP7zAz8zwngTyHtI0ZRUuU76+Zix8LVfrvSTZ2RpsPClKmYU2kDU4YZqdRHg==";
+      };
+    };
+    "openapi-response-validator-4.0.0" = {
+      name = "openapi-response-validator";
+      packageName = "openapi-response-validator";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-response-validator/-/openapi-response-validator-4.0.0.tgz";
+        sha512 = "bIG8bpHT/vE+Dtz4aVyfQnweXtUdvxvJf5/D6Uu98UGf3T42Ez940ctwnlmDCQxTPqdu0yLFbMoiNf/A3jYCIg==";
+      };
+    };
+    "openapi-sampler-1.0.0-beta.14" = {
+      name = "openapi-sampler";
+      packageName = "openapi-sampler";
+      version = "1.0.0-beta.14";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.0.0-beta.14.tgz";
+        sha512 = "NNmH9YAN5AaCE4w6MQXdCrmsOJJQTswHVSp075+h+iiG+OTonpZE8HzwocozovD2imx4lamkuxGLs4E4bO4Z+g==";
+      };
+    };
+    "openapi-schema-validator-3.0.3" = {
+      name = "openapi-schema-validator";
+      packageName = "openapi-schema-validator";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-schema-validator/-/openapi-schema-validator-3.0.3.tgz";
+        sha512 = "KKpeNEvAmpy6B2JCfyrM4yWjL6vggDCVbBoR8Yfkj0Jltc6PCW+dBbcg+1yrTCuDv80qBQJ6w0ejA71DlOFegA==";
+      };
+    };
+    "openapi-security-handler-2.0.4" = {
+      name = "openapi-security-handler";
+      packageName = "openapi-security-handler";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-security-handler/-/openapi-security-handler-2.0.4.tgz";
+        sha512 = "blz/UftEqYQLAByuEVITePUI9hV5Rd91CEK8yrsKDUaf3zk6cmIMafJ2qvagHqjXRRtL7fOqvsSKIeFrai+HfQ==";
       };
     };
     "openapi-to-graphql-2.1.0" = {
@@ -32043,6 +33699,33 @@ let
         sha512 = "Su7/ckttN192x/XTJfaXlzpYK2m+6UEobGS2E0fXK5iLjIwreEZol2uIwjctkFz6oSuKvBgMGCjkBeXGuvPl2A==";
       };
     };
+    "openapi-types-1.3.4" = {
+      name = "openapi-types";
+      packageName = "openapi-types";
+      version = "1.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-types/-/openapi-types-1.3.4.tgz";
+        sha512 = "h8rADpW3k/wepLdERKF0VKMAPdoFYNQCLGPmc/f8sgQ2dxUy+7sY4WAX2XDUDjhKTjbJVbxxofLkzy7f1/tE4g==";
+      };
+    };
+    "openapi-types-1.3.5" = {
+      name = "openapi-types";
+      packageName = "openapi-types";
+      version = "1.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-types/-/openapi-types-1.3.5.tgz";
+        sha512 = "11oi4zYorsgvg5yBarZplAqbpev5HkuVNPlZaPTknPDzAynq+lnJdXAmruGWP0s+dNYZS7bjM+xrTpJw7184Fg==";
+      };
+    };
+    "opencollective-1.0.3" = {
+      name = "opencollective";
+      packageName = "opencollective";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/opencollective/-/opencollective-1.0.3.tgz";
+        sha1 = "aee6372bc28144583690c3ca8daecfc120dd0ef1";
+      };
+    };
     "opencollective-postinstall-2.0.3" = {
       name = "opencollective-postinstall";
       packageName = "opencollective-postinstall";
@@ -32052,22 +33735,22 @@ let
         sha512 = "8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==";
       };
     };
-    "opener-1.5.1" = {
+    "opener-1.5.2" = {
       name = "opener";
       packageName = "opener";
-      version = "1.5.1";
+      version = "1.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz";
-        sha512 = "goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==";
+        url = "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz";
+        sha512 = "ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==";
       };
     };
-    "openid-2.0.6" = {
+    "openid-2.0.7" = {
       name = "openid";
       packageName = "openid";
-      version = "2.0.6";
+      version = "2.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/openid/-/openid-2.0.6.tgz";
-        sha1 = "707375e59ab9f73025899727679b20328171c9aa";
+        url = "https://registry.npmjs.org/openid/-/openid-2.0.7.tgz";
+        sha512 = "xH6qaz/hS55rEX8xURz4HRUO96cpj821WY6UEG9rgcusZ8Jsq54jGWP1EMCjGvgngonw8vgSljM1i2OESv16Gw==";
       };
     };
     "opentracing-0.14.4" = {
@@ -32079,6 +33762,15 @@ let
         sha512 = "nNnZDkUNExBwEpb7LZaeMeQgvrlO8l4bgY/LvGNZCR0xG/dGWqHqjKrAmR5GUoYo0FIz38kxasvA1aevxWs2CA==";
       };
     };
+    "opn-4.0.2" = {
+      name = "opn";
+      packageName = "opn";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz";
+        sha1 = "7abc22e644dff63b0a96d5ab7f2790c0f01abc95";
+      };
+    };
     "opn-5.5.0" = {
       name = "opn";
       packageName = "opn";
@@ -32250,22 +33942,22 @@ let
         sha512 = "77iGeVU1cIdRhgFzCK8aw1fbtT1B/iZAvWjS+l/o1x0RShMgxHUZaD2yDpWsNCPwXg9z1ZA78Kbdvr8kBmG/Ww==";
       };
     };
-    "orchestrator-0.3.8" = {
-      name = "orchestrator";
-      packageName = "orchestrator";
-      version = "0.3.8";
+    "ora-4.1.1" = {
+      name = "ora";
+      packageName = "ora";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz";
-        sha1 = "14e7e9e2764f7315fbac184e506c7aa6df94ad7e";
+        url = "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz";
+        sha512 = "sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==";
       };
     };
-    "ordered-read-streams-0.1.0" = {
-      name = "ordered-read-streams";
-      packageName = "ordered-read-streams";
-      version = "0.1.0";
+    "ora-5.0.0" = {
+      name = "ora";
+      packageName = "ora";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz";
-        sha1 = "fd565a9af8eb4473ba69b6ed8a34352cb552f126";
+        url = "https://registry.npmjs.org/ora/-/ora-5.0.0.tgz";
+        sha512 = "s26qdWqke2kjN/wC4dy+IQPBIMWBJlSU/0JZhk30ZDBLelW25rv66yutUWARMigpGPzcXHb+Nac5pNhN/WsARw==";
       };
     };
     "ordered-read-streams-1.0.1" = {
@@ -32322,15 +34014,6 @@ let
         sha1 = "20f9f17ae29ed345e8bde583b13d2009803c14d9";
       };
     };
-    "os-locale-2.1.0" = {
-      name = "os-locale";
-      packageName = "os-locale";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz";
-        sha512 = "3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==";
-      };
-    };
     "os-locale-3.1.0" = {
       name = "os-locale";
       packageName = "os-locale";
@@ -32394,13 +34077,13 @@ let
         sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
       };
     };
-    "otfcc-ttcize-0.8.0" = {
+    "otfcc-ttcize-0.10.2" = {
       name = "otfcc-ttcize";
       packageName = "otfcc-ttcize";
-      version = "0.8.0";
+      version = "0.10.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/otfcc-ttcize/-/otfcc-ttcize-0.8.0.tgz";
-        sha512 = "0RFgy9TDsgTF/1UJ8bSQ4heTYRatDz3HOXXh8d3WyXReqeOU+edgkbG4ERMFPdzFnA+SgqKTnPRg+2pduZsmSQ==";
+        url = "https://registry.npmjs.org/otfcc-ttcize/-/otfcc-ttcize-0.10.2.tgz";
+        sha512 = "CLMMw6r97AvmK5nOIGpnG4xHVU40gyTzpvn55RPyxZQ3E/UMXG4HnykyTYHlVL7Y46ISr1isPiSN0CvjYpZtgg==";
       };
     };
     "p-all-2.1.0" = {
@@ -32556,13 +34239,13 @@ let
         sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
       };
     };
-    "p-limit-3.0.1" = {
+    "p-limit-3.0.2" = {
       name = "p-limit";
       packageName = "p-limit";
-      version = "3.0.1";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-limit/-/p-limit-3.0.1.tgz";
-        sha512 = "mw/p92EyOzl2MhauKodw54Rx5ZK4624rNfgNaBguFZkHzyUG9WsDzFF5/yQVEJinbJDdP4jEfMN+uBquiGnaLg==";
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz";
+        sha512 = "iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==";
       };
     };
     "p-locate-2.0.0" = {
@@ -32592,6 +34275,15 @@ let
         sha512 = "R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==";
       };
     };
+    "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-map-2.1.0" = {
       name = "p-map";
       packageName = "p-map";
@@ -32646,13 +34338,13 @@ let
         sha512 = "3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg==";
       };
     };
-    "p-queue-6.4.0" = {
+    "p-queue-6.6.1" = {
       name = "p-queue";
       packageName = "p-queue";
-      version = "6.4.0";
+      version = "6.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-queue/-/p-queue-6.4.0.tgz";
-        sha512 = "X7ddxxiQ+bLR/CUt3/BVKrGcJDNxBr0pEEFKHHB6vTPWNUhgDv36GpIH18RmGM3YGPpBT+JWGjDDqsVGuF0ERw==";
+        url = "https://registry.npmjs.org/p-queue/-/p-queue-6.6.1.tgz";
+        sha512 = "miQiSxLYPYBxGkrldecZC18OTLjdUqnlRebGzPRiVxB8mco7usCmm7hFuxiTvp93K18JnLtE4KMMycjAu/cQQg==";
       };
     };
     "p-reduce-1.0.0" = {
@@ -32664,6 +34356,15 @@ let
         sha1 = "18c2b0dd936a4690a529f8231f58a0fdb6a47dfa";
       };
     };
+    "p-reduce-2.1.0" = {
+      name = "p-reduce";
+      packageName = "p-reduce";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz";
+        sha512 = "2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==";
+      };
+    };
     "p-retry-3.0.1" = {
       name = "p-retry";
       packageName = "p-retry";
@@ -32727,6 +34428,15 @@ let
         sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
       };
     };
+    "p-wait-for-3.1.0" = {
+      name = "p-wait-for";
+      packageName = "p-wait-for";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-wait-for/-/p-wait-for-3.1.0.tgz";
+        sha512 = "0Uy19uhxbssHelu9ynDMcON6BmMk6pH8551CvxROhiz3Vx+yC4RqxjyIDk2V4ll0g9177RKT++PK4zcV58uJ7A==";
+      };
+    };
     "p-waterfall-1.0.0" = {
       name = "p-waterfall";
       packageName = "p-waterfall";
@@ -32790,13 +34500,13 @@ let
         sha1 = "5860587a944873a6b7e6d26e8e51ffb22315bf17";
       };
     };
-    "packet-stream-2.0.4" = {
+    "packet-stream-2.0.5" = {
       name = "packet-stream";
       packageName = "packet-stream";
-      version = "2.0.4";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/packet-stream/-/packet-stream-2.0.4.tgz";
-        sha512 = "7+oxHdMMs6VhLvvbrDUc8QNuelE9fPKLDdToXBIKLPKOlnoBeMim+/35edp+AnFTLzk3xcogVvQ/jrZyyGsEiw==";
+        url = "https://registry.npmjs.org/packet-stream/-/packet-stream-2.0.5.tgz";
+        sha512 = "+4S+qBUdqD57ka5MDd6nAYGBPril5eyLpbga2y0kPyYhrKvjb8CYTP9r40WLbSxgT/qEGmvgWOrvQe+FYtCI7w==";
       };
     };
     "packet-stream-codec-1.1.2" = {
@@ -32808,13 +34518,13 @@ let
         sha1 = "79b302fc144cdfbb4ab6feba7040e6a5d99c79c7";
       };
     };
-    "pacote-11.1.10" = {
+    "pacote-11.1.11" = {
       name = "pacote";
       packageName = "pacote";
-      version = "11.1.10";
+      version = "11.1.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pacote/-/pacote-11.1.10.tgz";
-        sha512 = "xJSSSxcHLo1CZJESvIZ2hbC5/5WP2oDHeUeTV2FvVDPOZG7+ixbxnV0n3TkdaUqlbC0RwnwMQ3wkJ/YywYM0Cg==";
+        url = "https://registry.npmjs.org/pacote/-/pacote-11.1.11.tgz";
+        sha512 = "r6PHtCEhkaGv+QPx1JdE/xRdkSkZUG7dE2oloNk/CGTPGNOtaJyYqZPFeN6d6UcUrTPRvZXFo3IBzJIBopPuSA==";
       };
     };
     "pacote-9.5.12" = {
@@ -32898,6 +34608,15 @@ let
         sha1 = "df94fd8cf6531ecf75e6bef9a0858fbc72be2247";
       };
     };
+    "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==";
+      };
+    };
     "paredit.js-0.3.6" = {
       name = "paredit.js";
       packageName = "paredit.js";
@@ -32925,13 +34644,13 @@ let
         sha1 = "fedd4d2bf193a77745fe71e371d73c3307d9c751";
       };
     };
-    "parse-asn1-5.1.5" = {
+    "parse-asn1-5.1.6" = {
       name = "parse-asn1";
       packageName = "parse-asn1";
-      version = "5.1.5";
+      version = "5.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz";
-        sha512 = "jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==";
+        url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz";
+        sha512 = "RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==";
       };
     };
     "parse-english-4.1.3" = {
@@ -32952,6 +34671,15 @@ let
         sha512 = "NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==";
       };
     };
+    "parse-entities-2.0.0" = {
+      name = "parse-entities";
+      packageName = "parse-entities";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz";
+        sha512 = "kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==";
+      };
+    };
     "parse-filepath-1.0.2" = {
       name = "parse-filepath";
       packageName = "parse-filepath";
@@ -32979,6 +34707,15 @@ let
         sha1 = "9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50";
       };
     };
+    "parse-github-url-1.0.2" = {
+      name = "parse-github-url";
+      packageName = "parse-github-url";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz";
+        sha512 = "kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==";
+      };
+    };
     "parse-gitignore-1.0.1" = {
       name = "parse-gitignore";
       packageName = "parse-gitignore";
@@ -33042,13 +34779,22 @@ let
         sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
       };
     };
-    "parse-json-5.0.0" = {
+    "parse-json-5.0.1" = {
       name = "parse-json";
       packageName = "parse-json";
-      version = "5.0.0";
+      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.1.0" = {
+      name = "parse-json";
+      packageName = "parse-json";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz";
-        sha512 = "OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==";
+        url = "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz";
+        sha512 = "+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==";
       };
     };
     "parse-latin-4.2.1" = {
@@ -33060,6 +34806,24 @@ let
         sha512 = "7T9g6mIsFFpLlo0Zzb2jLWdCt+H9Qtf/hRmMYFi/Mq6Ovi+YKo+AyDFX3OhFfu0vXX5Nid9FKJGKSSzNcTkWiA==";
       };
     };
+    "parse-link-header-1.0.1" = {
+      name = "parse-link-header";
+      packageName = "parse-link-header";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-link-header/-/parse-link-header-1.0.1.tgz";
+        sha1 = "bedfe0d2118aeb84be75e7b025419ec8a61140a7";
+      };
+    };
+    "parse-ms-2.1.0" = {
+      name = "parse-ms";
+      packageName = "parse-ms";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz";
+        sha512 = "kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==";
+      };
+    };
     "parse-node-version-1.0.1" = {
       name = "parse-node-version";
       packageName = "parse-node-version";
@@ -33087,13 +34851,13 @@ let
         sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6";
       };
     };
-    "parse-path-4.0.1" = {
+    "parse-path-4.0.2" = {
       name = "parse-path";
       packageName = "parse-path";
-      version = "4.0.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parse-path/-/parse-path-4.0.1.tgz";
-        sha512 = "d7yhga0Oc+PwNXDvQ0Jv1BuWkLVPXcAoQ/WREgd6vNNoKYaW52KI+RdOFjI63wjkmps9yUE8VS4veP+AgpQ/hA==";
+        url = "https://registry.npmjs.org/parse-path/-/parse-path-4.0.2.tgz";
+        sha512 = "HSqVz6iuXSiL8C1ku5Gl1Z5cwDd9Wo0q8CoffdAghP6bz8pJa1tcMC+m4N+z6VAS8QdksnIGq1TB6EgR4vPR6w==";
       };
     };
     "parse-semver-1.1.1" = {
@@ -33141,13 +34905,13 @@ let
         sha1 = "32d4b6afde631420e5f415919a222b774b575707";
       };
     };
-    "parse-url-5.0.1" = {
+    "parse-url-5.0.2" = {
       name = "parse-url";
       packageName = "parse-url";
-      version = "5.0.1";
+      version = "5.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parse-url/-/parse-url-5.0.1.tgz";
-        sha512 = "flNUPP27r3vJpROi0/R3/2efgKkyXqnXwyP1KQ2U0SfFRgdizOdWfvrrvJg1LuOoxs7GQhmxJlq23IpQ/BkByg==";
+        url = "https://registry.npmjs.org/parse-url/-/parse-url-5.0.2.tgz";
+        sha512 = "Czj+GIit4cdWtxo3ISZCvLiUjErSo0iI3wJ+q9Oi3QuMYTI6OZu+7cewMWZ+C1YAnKhYTk6/TLuhIgCypLthPA==";
       };
     };
     "parse5-1.5.1" = {
@@ -33186,6 +34950,15 @@ let
         sha512 = "fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==";
       };
     };
+    "parse5-6.0.1" = {
+      name = "parse5";
+      packageName = "parse5";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz";
+        sha512 = "Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==";
+      };
+    };
     "parsejson-0.0.1" = {
       name = "parsejson";
       packageName = "parsejson";
@@ -33249,15 +35022,6 @@ let
         sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
       };
     };
-    "pascal-case-2.0.1" = {
-      name = "pascal-case";
-      packageName = "pascal-case";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz";
-        sha1 = "2d578d3455f660da65eca18ef95b4e0de912761e";
-      };
-    };
     "pascal-case-3.1.1" = {
       name = "pascal-case";
       packageName = "pascal-case";
@@ -33276,6 +35040,15 @@ let
         sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
       };
     };
+    "passerror-1.1.1" = {
+      name = "passerror";
+      packageName = "passerror";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/passerror/-/passerror-1.1.1.tgz";
+        sha1 = "a25b88dbdd910a29603aec7dcb96e9a7a97687b4";
+      };
+    };
     "passive-voice-0.1.0" = {
       name = "passive-voice";
       packageName = "passive-voice";
@@ -33375,6 +35148,15 @@ let
         sha512 = "bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==";
       };
     };
+    "patch-console-1.0.0" = {
+      name = "patch-console";
+      packageName = "patch-console";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/patch-console/-/patch-console-1.0.0.tgz";
+        sha512 = "nxl9nrnLQmh64iTzMfyylSlRozL7kAXIaxw1fVcLYdyhNkJCRUzirRZTikXGJsg+hc4fqpneTK6iU2H1Q8THSA==";
+      };
+    };
     "patch-package-6.2.2" = {
       name = "patch-package";
       packageName = "patch-package";
@@ -33402,13 +35184,13 @@ let
         sha512 = "BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==";
       };
     };
-    "path-case-2.1.1" = {
+    "path-case-3.0.3" = {
       name = "path-case";
       packageName = "path-case";
-      version = "2.1.1";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz";
-        sha1 = "94b8037c372d3fe2906e465bb45e25d226e8eea5";
+        url = "https://registry.npmjs.org/path-case/-/path-case-3.0.3.tgz";
+        sha512 = "UMFU6UETFpCNWbIWNczshPrnK/7JAXBP2NYw80ojElbQ2+JYxdqWDBkvvqM93u4u6oLmuJ/tPOf2tM8KtXv4eg==";
       };
     };
     "path-dirname-1.0.2" = {
@@ -33573,15 +35355,6 @@ 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";
@@ -33717,6 +35490,15 @@ let
         sha1 = "7a57eb550a6783f9115331fcf4663d5c8e007a50";
       };
     };
+    "perfect-scrollbar-1.5.0" = {
+      name = "perfect-scrollbar";
+      packageName = "perfect-scrollbar";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.0.tgz";
+        sha512 = "NrNHJn5mUGupSiheBTy6x+6SXCFbLlm8fVZh9moIzw/LgqElN5q4ncR4pbCBCYuCJ8Kcl9mYM0NgDxvW+b4LxA==";
+      };
+    };
     "performance-now-0.2.0" = {
       name = "performance-now";
       packageName = "performance-now";
@@ -33861,31 +35643,22 @@ let
         sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
       };
     };
-    "pino-6.0.0" = {
+    "pino-6.4.0" = {
       name = "pino";
       packageName = "pino";
-      version = "6.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pino/-/pino-6.0.0.tgz";
-        sha512 = "3RfX2L76o7v230FP1fZ3Fo/WX7Su+P1Ld+pvBm2j+MyUjtA/KqDYxMkzBqzcX3R00zbC7Gf/HqIzyuu3tgvi9Q==";
-      };
-    };
-    "pino-6.3.2" = {
-      name = "pino";
-      packageName = "pino";
-      version = "6.3.2";
+      version = "6.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pino/-/pino-6.3.2.tgz";
-        sha512 = "EiP3L1hoFw19KPocWimjnfXeysld0ne89ZRQ+bf8nAeA2TyuLoggNlibAi+Kla67GvQBopLdIZOsh1z/Lruo5Q==";
+        url = "https://registry.npmjs.org/pino/-/pino-6.4.0.tgz";
+        sha512 = "TRDp5fJKRBtVlxd4CTox3rJL+TzwQztB/VNmT5n87zFgKVU7ztnmZkcX1zypPP+3ZZcveOTYKJy74UXdVBaXFQ==";
       };
     };
-    "pino-std-serializers-2.4.2" = {
+    "pino-std-serializers-2.5.0" = {
       name = "pino-std-serializers";
       packageName = "pino-std-serializers";
-      version = "2.4.2";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-2.4.2.tgz";
-        sha512 = "WaL504dO8eGs+vrK+j4BuQQq6GLKeCCcHaMB2ItygzVURcL1CycwNEUHTD/lHFHs/NL5qAz2UKrjYWXKSf4aMQ==";
+        url = "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-2.5.0.tgz";
+        sha512 = "wXqbqSrIhE58TdrxxlfLwU9eDhrzppQDvGhBEr1gYbzzM4KKo3Y63gSjiDXRKLVS2UOXdPNR2v+KnQgNrs+xUg==";
       };
     };
     "pipe-functions-1.3.0" = {
@@ -34050,24 +35823,6 @@ let
         sha1 = "868aae2e0df8989b026562b35cbc19cfd8bb780d";
       };
     };
-    "plugin-error-0.1.2" = {
-      name = "plugin-error";
-      packageName = "plugin-error";
-      version = "0.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz";
-        sha1 = "3b9bb3335ccf00f425e07437e19276967da47ace";
-      };
-    };
-    "plugin-error-1.0.1" = {
-      name = "plugin-error";
-      packageName = "plugin-error";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz";
-        sha512 = "L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==";
-      };
-    };
     "plur-2.1.2" = {
       name = "plur";
       packageName = "plur";
@@ -34077,6 +35832,15 @@ let
         sha1 = "7482452c1a0f508e3e344eaec312c91c29dc655a";
       };
     };
+    "pluralize-1.2.1" = {
+      name = "pluralize";
+      packageName = "pluralize";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz";
+        sha1 = "d1a21483fd22bb41e58a12fa3421823140897c45";
+      };
+    };
     "pluralize-2.0.0" = {
       name = "pluralize";
       packageName = "pluralize";
@@ -34122,22 +35886,31 @@ let
         sha1 = "1cc7c212303acabe74263ec3ac78009580242d93";
       };
     };
-    "pngjs-2.3.1" = {
+    "pngjs-5.0.0" = {
       name = "pngjs";
       packageName = "pngjs";
-      version = "2.3.1";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pngjs/-/pngjs-2.3.1.tgz";
-        sha1 = "11d1e12b9cb64d63e30c143a330f4c1f567da85f";
+        url = "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz";
+        sha512 = "40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==";
       };
     };
-    "portfinder-1.0.26" = {
+    "polished-3.6.6" = {
+      name = "polished";
+      packageName = "polished";
+      version = "3.6.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/polished/-/polished-3.6.6.tgz";
+        sha512 = "yiB2ims2DZPem0kCD6V0wnhcVGFEhNh0Iw0axNpKU+oSAgFt6yx6HxIT23Qg0WWvgS379cS35zT4AOyZZRzpQQ==";
+      };
+    };
+    "portfinder-1.0.28" = {
       name = "portfinder";
       packageName = "portfinder";
-      version = "1.0.26";
+      version = "1.0.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz";
-        sha512 = "Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ==";
+        url = "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz";
+        sha512 = "Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==";
       };
     };
     "posix-character-classes-0.1.1" = {
@@ -34195,13 +35968,13 @@ let
         sha512 = "03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==";
       };
     };
-    "postcss-calc-7.0.2" = {
+    "postcss-calc-7.0.4" = {
       name = "postcss-calc";
       packageName = "postcss-calc";
-      version = "7.0.2";
+      version = "7.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz";
-        sha512 = "rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==";
+        url = "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.4.tgz";
+        sha512 = "0I79VRAd1UTkaHzY9w83P39YGO/M3bG7/tNLrHGEunBolfoGM0hSjrGvjoeaj0JE/zIw5GsI2KZ0UwDJqv5hjw==";
       };
     };
     "postcss-colormin-4.0.3" = {
@@ -34384,6 +36157,15 @@ 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";
@@ -34393,6 +36175,15 @@ let
         sha1 = "b614c9720be6816eaee35fb3a5faa1dba6a05ddb";
       };
     };
+    "postcss-modules-extract-imports-2.0.0" = {
+      name = "postcss-modules-extract-imports";
+      packageName = "postcss-modules-extract-imports";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz";
+        sha512 = "LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==";
+      };
+    };
     "postcss-modules-local-by-default-1.2.0" = {
       name = "postcss-modules-local-by-default";
       packageName = "postcss-modules-local-by-default";
@@ -34402,6 +36193,15 @@ let
         sha1 = "f7d80c398c5a393fa7964466bd19500a7d61c069";
       };
     };
+    "postcss-modules-local-by-default-3.0.3" = {
+      name = "postcss-modules-local-by-default";
+      packageName = "postcss-modules-local-by-default";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz";
+        sha512 = "e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==";
+      };
+    };
     "postcss-modules-scope-1.1.0" = {
       name = "postcss-modules-scope";
       packageName = "postcss-modules-scope";
@@ -34411,6 +36211,15 @@ let
         sha1 = "d6ea64994c79f97b62a72b426fbe6056a194bb90";
       };
     };
+    "postcss-modules-scope-2.2.0" = {
+      name = "postcss-modules-scope";
+      packageName = "postcss-modules-scope";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz";
+        sha512 = "YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==";
+      };
+    };
     "postcss-modules-values-1.3.0" = {
       name = "postcss-modules-values";
       packageName = "postcss-modules-values";
@@ -34420,6 +36229,15 @@ let
         sha1 = "ecffa9d7e192518389f42ad0e83f72aec456ea20";
       };
     };
+    "postcss-modules-values-3.0.0" = {
+      name = "postcss-modules-values";
+      packageName = "postcss-modules-values";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz";
+        sha512 = "1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==";
+      };
+    };
     "postcss-normalize-charset-4.0.1" = {
       name = "postcss-normalize-charset";
       packageName = "postcss-normalize-charset";
@@ -34690,13 +36508,13 @@ let
         sha512 = "C2hrAPzmRdpuL3iH0TDdQ6XCc9M7Dcc3zEW5BLerY65G4tWWszwv6nG/ksi6ul5i2mx22ubdljgktXCtNkydkw==";
       };
     };
-    "posthtml-0.12.3" = {
+    "posthtml-0.13.3" = {
       name = "posthtml";
       packageName = "posthtml";
-      version = "0.12.3";
+      version = "0.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/posthtml/-/posthtml-0.12.3.tgz";
-        sha512 = "Fbpi95+JJyR0tqU7pUy1zTSQFjAsluuwB9pJ1h0jtnGk7n/O2TBtP5nDl9rV0JVACjQ1Lm5wSp4ppChr8u3MhA==";
+        url = "https://registry.npmjs.org/posthtml/-/posthtml-0.13.3.tgz";
+        sha512 = "5NL2bBc4ihAyoYnY0EAQrFQbJNE1UdvgC1wjYts0hph7jYeU2fa5ki3/9U45ce9V6M1vLMEgUX2NXe/bYL+bCQ==";
       };
     };
     "posthtml-parser-0.4.2" = {
@@ -34708,22 +36526,31 @@ let
         sha512 = "BUIorsYJTvS9UhXxPTzupIztOMVNPa/HtAm9KHni9z6qEfiJ1bpOBL5DfUOL9XAc3XkLIEzBzpph+Zbm4AdRAg==";
       };
     };
-    "posthtml-render-1.2.2" = {
+    "posthtml-parser-0.5.0" = {
+      name = "posthtml-parser";
+      packageName = "posthtml-parser";
+      version = "0.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.5.0.tgz";
+        sha512 = "BsZFAqOeX9lkJJPKG2JmGgtm6t++WibU7FeS40FNNGZ1KS2szRSRQ8Wr2JLvikDgAecrQ/9V4sjugTAin2+KVw==";
+      };
+    };
+    "posthtml-render-1.2.3" = {
       name = "posthtml-render";
       packageName = "posthtml-render";
-      version = "1.2.2";
+      version = "1.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.2.2.tgz";
-        sha512 = "MbIXTWwAfJ9qET6Zl29UNwJcDJEEz9Zkr5oDhiujitJa7YBJwEpbkX2cmuklCDxubTMoRWpid3q8DrSyGnUUzQ==";
+        url = "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.2.3.tgz";
+        sha512 = "rGGayND//VwTlsYKNqdILsA7U/XP0WJa6SMcdAEoqc2WRM5QExplGg/h9qbTuHz7mc2PvaXU+6iNxItvr5aHMg==";
       };
     };
-    "prebuild-install-5.3.5" = {
+    "prebuild-install-5.3.3" = {
       name = "prebuild-install";
       packageName = "prebuild-install";
-      version = "5.3.5";
+      version = "5.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.5.tgz";
-        sha512 = "YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw==";
+        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.3.tgz";
+        sha512 = "GV+nsUXuPW2p8Zy7SarF/2W/oiK8bFQgJcncoJ0d7kRpekEA0ftChjfEaF9/Y+QJEc/wFR7RAEa8lYByuUIe2g==";
       };
     };
     "precinct-6.3.1" = {
@@ -34807,6 +36634,15 @@ let
         sha512 = "7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==";
       };
     };
+    "prettier-2.1.1" = {
+      name = "prettier";
+      packageName = "prettier";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prettier/-/prettier-2.1.1.tgz";
+        sha512 = "9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw==";
+      };
+    };
     "prettier-bytes-1.0.4" = {
       name = "prettier-bytes";
       packageName = "prettier-bytes";
@@ -34834,15 +36670,6 @@ let
         sha512 = "2UzApPuxi2yRoyMlXMazgR6UcH9DKJhNgCviIwY3ixZ9THWSSrUww5vkiZ3C48WvpFl1M1y/oU63deSy1puWEA==";
       };
     };
-    "prettier-eslint-9.0.2" = {
-      name = "prettier-eslint";
-      packageName = "prettier-eslint";
-      version = "9.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-9.0.2.tgz";
-        sha512 = "u6EQqxUhaGfra9gy9shcR7MT7r/2twwEfRGy1tfzyaJvLQwSg34M9IU5HuF7FsLW2QUgr5VIUc56EPWibw1pdw==";
-      };
-    };
     "prettier-stylelint-0.4.2" = {
       name = "prettier-stylelint";
       packageName = "prettier-stylelint";
@@ -34861,13 +36688,13 @@ let
         sha512 = "urhX7U/F+fu8sztEs/Z7CxNS8PdEytEwGKhQaH5fxxCdRmHGT45FoClyDlcZrMk9cK/8JpX/asFmTOHtSGJfLg==";
       };
     };
-    "pretty-bytes-5.3.0" = {
+    "pretty-bytes-5.4.1" = {
       name = "pretty-bytes";
       packageName = "pretty-bytes";
-      version = "5.3.0";
+      version = "5.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz";
-        sha512 = "hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==";
+        url = "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.4.1.tgz";
+        sha512 = "s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA==";
       };
     };
     "pretty-format-23.6.0" = {
@@ -34879,6 +36706,15 @@ let
         sha512 = "zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==";
       };
     };
+    "pretty-format-24.9.0" = {
+      name = "pretty-format";
+      packageName = "pretty-format";
+      version = "24.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz";
+        sha512 = "00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==";
+      };
+    };
     "pretty-hash-1.0.1" = {
       name = "pretty-hash";
       packageName = "pretty-hash";
@@ -34897,6 +36733,15 @@ let
         sha1 = "b7e3ea42435a4c9b2759d99e0f201eb195802ee1";
       };
     };
+    "pretty-ms-5.1.0" = {
+      name = "pretty-ms";
+      packageName = "pretty-ms";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pretty-ms/-/pretty-ms-5.1.0.tgz";
+        sha512 = "4gaK1skD2gwscCfkswYQRmddUb2GJZtzDGRjHWadVHtK/DIKFufa12MvES6/xu1tVbUYeia5bmLcwJtZJQUqnw==";
+      };
+    };
     "prettyjson-1.2.1" = {
       name = "prettyjson";
       packageName = "prettyjson";
@@ -34924,15 +36769,6 @@ let
         sha512 = "UCDQscAfQ1HArwvSUobJWbc3sTGLqGpYkRqXUpBZgf+zOWpOjz2dxnpRsOu+qxIj1K0n5UT1wgbCCgetsIwiug==";
       };
     };
-    "primitive-quadify-off-curves-0.4.1" = {
-      name = "primitive-quadify-off-curves";
-      packageName = "primitive-quadify-off-curves";
-      version = "0.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/primitive-quadify-off-curves/-/primitive-quadify-off-curves-0.4.1.tgz";
-        sha512 = "Kmn+IfF+hcARb1NX+XtoSQIxHS+WeOqqQ3YDihRe3KkvGkFxMrDQFFsDTXxwUOt9KmvD7FgWG6cO2ajZp4lEQg==";
-      };
-    };
     "printf-0.2.5" = {
       name = "printf";
       packageName = "printf";
@@ -34960,13 +36796,13 @@ let
         sha512 = "dG2w7WtovUa4SiYTdWn9H8Bd4JNdei2djtkP/Bk9fXq81j5Q15ZPHYSwhUVvBRbp5zMkGtu0Yk62HuMcly0pRw==";
       };
     };
-    "prismjs-1.20.0" = {
+    "prismjs-1.21.0" = {
       name = "prismjs";
       packageName = "prismjs";
-      version = "1.20.0";
+      version = "1.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prismjs/-/prismjs-1.20.0.tgz";
-        sha512 = "AEDjSrVNkynnw6A+B1DsFkd6AVdTnp+/WoUixFRULlCLZVRZlVQMVWio/16jv7G1FscUxQxOQhWwApgbnxr6kQ==";
+        url = "https://registry.npmjs.org/prismjs/-/prismjs-1.21.0.tgz";
+        sha512 = "uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw==";
       };
     };
     "private-0.1.8" = {
@@ -35113,6 +36949,15 @@ let
         sha512 = "W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==";
       };
     };
+    "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-inflight-1.0.1" = {
       name = "promise-inflight";
       packageName = "promise-inflight";
@@ -35167,6 +37012,15 @@ let
         sha512 = "UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==";
       };
     };
+    "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";
@@ -35176,13 +37030,13 @@ let
         sha1 = "5f8a704ccdf5f2ac23996fcafe2b301bc2a8d0eb";
       };
     };
-    "promisify-child-process-3.1.4" = {
+    "promisify-child-process-4.1.1" = {
       name = "promisify-child-process";
       packageName = "promisify-child-process";
-      version = "3.1.4";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/promisify-child-process/-/promisify-child-process-3.1.4.tgz";
-        sha512 = "tLifJs99E4oOXUz/dKQjRgdchfiepmYQzBVrcVX9BtUWi9aGJeGSf2KgXOWBW1JFsSYgLkl1Z9HRm8i0sf4cTg==";
+        url = "https://registry.npmjs.org/promisify-child-process/-/promisify-child-process-4.1.1.tgz";
+        sha512 = "/sRjHZwoXf1rJ+8s4oWjYjGRVKNK1DUnqfRC1Zek18pl0cN6k3yJ1cCbqd0tWNe4h0Gr+SY4vR42N33+T82WkA==";
       };
     };
     "promisize-1.1.2" = {
@@ -35275,13 +37129,13 @@ let
         sha1 = "bc826e34c3af4697e8d0af7a669e4d612aedcd17";
       };
     };
-    "protobufjs-6.9.0" = {
+    "protobufjs-6.10.1" = {
       name = "protobufjs";
       packageName = "protobufjs";
-      version = "6.9.0";
+      version = "6.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/protobufjs/-/protobufjs-6.9.0.tgz";
-        sha512 = "LlGVfEWDXoI/STstRDdZZKb/qusoAWUnmLg9R8OLSO473mBLWHowx8clbX5/+mKDEI+v7GzjoK9tRPZMMcoTrg==";
+        url = "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.1.tgz";
+        sha512 = "pb8kTchL+1Ceg4lFd5XUpK8PdWacbvV5SK2ULH2ebrYtl4GjJmS24m6CKME67jzV53tbJxHlnNOSqQHbTsR9JQ==";
       };
     };
     "protocol-buffers-encodings-1.1.0" = {
@@ -35293,13 +37147,13 @@ let
         sha512 = "SmjEuAf3hc3h3rWZ6V1YaaQw2MNJWK848gLJgzx/sefOJdNLujKinJVXIS0q2cBQpQn2Q32TinawZyDZPzm4kQ==";
       };
     };
-    "protocols-1.4.7" = {
+    "protocols-1.4.8" = {
       name = "protocols";
       packageName = "protocols";
-      version = "1.4.7";
+      version = "1.4.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/protocols/-/protocols-1.4.7.tgz";
-        sha512 = "Fx65lf9/YDn3hUX08XUc0J8rSux36rEsyiv21ZGUC1mOyeM3lTRpZLcrm8aAolzS4itwVfm7TAPyxC2E5zd6xg==";
+        url = "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz";
+        sha512 = "IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==";
       };
     };
     "protoduck-5.0.1" = {
@@ -35356,15 +37210,6 @@ let
         sha1 = "a3fdf1befb730f951965872ac2f6074c61477a56";
       };
     };
-    "prr-0.0.0" = {
-      name = "prr";
-      packageName = "prr";
-      version = "0.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz";
-        sha1 = "1a84b85908325501411853d0081ee3fa86e2926a";
-      };
-    };
     "prr-1.0.1" = {
       name = "prr";
       packageName = "prr";
@@ -35401,13 +37246,13 @@ let
         sha512 = "v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ==";
       };
     };
-    "ps-tree-0.0.3" = {
+    "ps-tree-1.2.0" = {
       name = "ps-tree";
       packageName = "ps-tree";
-      version = "0.0.3";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ps-tree/-/ps-tree-0.0.3.tgz";
-        sha1 = "dbf8d752a7fe22fa7d58635689499610e9276ddc";
+        url = "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz";
+        sha512 = "0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==";
       };
     };
     "pseudomap-1.0.2" = {
@@ -35482,6 +37327,15 @@ let
         sha512 = "qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ==";
       };
     };
+    "pug-error-2.0.0" = {
+      name = "pug-error";
+      packageName = "pug-error";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz";
+        sha512 = "sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==";
+      };
+    };
     "pug-filters-3.1.1" = {
       name = "pug-filters";
       packageName = "pug-filters";
@@ -35500,6 +37354,15 @@ let
         sha512 = "i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==";
       };
     };
+    "pug-lexer-5.0.0" = {
+      name = "pug-lexer";
+      packageName = "pug-lexer";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.0.tgz";
+        sha512 = "52xMk8nNpuyQ/M2wjZBN5gXQLIylaGkAoTk5Y1pBhVqaopaoj8Z0iVzpbFZAqitL4RHNVDZRnJDsqEYe99Ti0A==";
+      };
+    };
     "pug-linker-3.0.6" = {
       name = "pug-linker";
       packageName = "pug-linker";
@@ -36148,13 +38011,13 @@ let
         sha512 = "hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==";
       };
     };
-    "purgecss-1.4.2" = {
+    "purgecss-2.3.0" = {
       name = "purgecss";
       packageName = "purgecss";
-      version = "1.4.2";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/purgecss/-/purgecss-1.4.2.tgz";
-        sha512 = "hkOreFTgiyMHMmC2BxzdIw5DuC6kxAbP/gGOGd3MEsF3+5m69rIvUEPaxrnoUtfODTFKe9hcXjGwC6jcjoyhOw==";
+        url = "https://registry.npmjs.org/purgecss/-/purgecss-2.3.0.tgz";
+        sha512 = "BE5CROfVGsx2XIhxGuZAT7rTH9lLeQx/6M0P7DTXQH4IUc3BBzs9JUzt4yzGf3JrH9enkeq6YJBe9CTtkm1WmQ==";
       };
     };
     "push-stream-10.1.2" = {
@@ -36364,13 +38227,13 @@ let
         sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
       };
     };
-    "querystringify-2.1.1" = {
+    "querystringify-2.2.0" = {
       name = "querystringify";
       packageName = "querystringify";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz";
-        sha512 = "w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==";
+        url = "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz";
+        sha512 = "FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==";
       };
     };
     "queue-4.5.1" = {
@@ -36382,13 +38245,13 @@ let
         sha512 = "AMD7w5hRXcFSb8s9u38acBZ+309u6GsiibP4/0YacJeaurRshogB7v/ZcVPxP5gD5+zIw6ixRHdutiYUJfwKHw==";
       };
     };
-    "queue-microtask-1.1.3" = {
+    "queue-microtask-1.1.4" = {
       name = "queue-microtask";
       packageName = "queue-microtask";
-      version = "1.1.3";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.1.3.tgz";
-        sha512 = "zC1ZDLKFhZSa8vAdFbkOGouHcOUMgUAI/2/3on/KktpY+BaVqABkzDSsCSvJfmLbICOnrEuF9VIMezZf+T0mBA==";
+        url = "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.1.4.tgz";
+        sha512 = "eY/4Obve9cE5FK8YvC1cJsm5cr7XvAurul8UtBDJ2PR1p5NmAwHtvAt5ftcLtwYRCUKNhxCneZZlxmUDFoSeKA==";
       };
     };
     "quick-format-unescaped-4.0.1" = {
@@ -36418,6 +38281,15 @@ let
         sha512 = "ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==";
       };
     };
+    "quick-lru-5.1.1" = {
+      name = "quick-lru";
+      packageName = "quick-lru";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz";
+        sha512 = "WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==";
+      };
+    };
     "quicktask-1.1.0" = {
       name = "quicktask";
       packageName = "quicktask";
@@ -36535,6 +38407,15 @@ let
         sha1 = "4f68a1dc0ae58bd3fb95848c30324db75d64360b";
       };
     };
+    "random-item-3.0.0" = {
+      name = "random-item";
+      packageName = "random-item";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/random-item/-/random-item-3.0.0.tgz";
+        sha512 = "IpO3Jk9/Dt79R7iS/Fn2d2asGXahMNnXLNRsgSmjTTtiS0tZ972BWEEm9uUgm3YAon5YFUt8126FA9wJAjmeZw==";
+      };
+    };
     "random-iterate-1.0.1" = {
       name = "random-iterate";
       packageName = "random-iterate";
@@ -36697,6 +38578,42 @@ let
         sha512 = "YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==";
       };
     };
+    "react-devtools-core-4.8.2" = {
+      name = "react-devtools-core";
+      packageName = "react-devtools-core";
+      version = "4.8.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.8.2.tgz";
+        sha512 = "3Lv3nI8FPAwKqUco35oOlgf+4j8mgYNnIcDv2QTfxEqg2G69q17ZJ8ScU9aBnymS28YC1OW+kTxLmdIQeTN8yg==";
+      };
+    };
+    "react-dom-16.13.1" = {
+      name = "react-dom";
+      packageName = "react-dom";
+      version = "16.13.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz";
+        sha512 = "81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==";
+      };
+    };
+    "react-dropdown-1.8.0" = {
+      name = "react-dropdown";
+      packageName = "react-dropdown";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-dropdown/-/react-dropdown-1.8.0.tgz";
+        sha512 = "B1vkFk2vkUOf5JFd+Gk8yJdZkSoE4F689Lb93vc0pLcu6cabqlGMYgIzLJuzT+BMy7guk+OXbLDs0pMX8BvEbw==";
+      };
+    };
+    "react-hot-loader-4.12.21" = {
+      name = "react-hot-loader";
+      packageName = "react-hot-loader";
+      version = "4.12.21";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.21.tgz";
+        sha512 = "Ynxa6ROfWUeKWsTHxsrL2KMzujxJVPjs385lmB2t5cHUxdoRPGind9F00tOkdc1l5WBleOF4XEAMILY1KPIIDA==";
+      };
+    };
     "react-is-16.13.1" = {
       name = "react-is";
       packageName = "react-is";
@@ -36706,6 +38623,15 @@ let
         sha512 = "24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==";
       };
     };
+    "react-lifecycles-compat-3.0.4" = {
+      name = "react-lifecycles-compat";
+      packageName = "react-lifecycles-compat";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz";
+        sha512 = "fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==";
+      };
+    };
     "react-reconciler-0.24.0" = {
       name = "react-reconciler";
       packageName = "react-reconciler";
@@ -36715,6 +38641,15 @@ let
         sha512 = "gAGnwWkf+NOTig9oOowqid9O0HjTDC+XVGBCAmJYYJ2A2cN/O4gDdIuuUQjv8A4v6GDwVfJkagpBBLW5OW9HSw==";
       };
     };
+    "react-tabs-3.1.1" = {
+      name = "react-tabs";
+      packageName = "react-tabs";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-tabs/-/react-tabs-3.1.1.tgz";
+        sha512 = "HpySC29NN1BkzBAnOC+ajfzPbTaVZcSWzMSjk56uAhPC/rBGtli8lTysR4CfPAyEE/hfweIzagOIoJ7nu80yng==";
+      };
+    };
     "read-1.0.7" = {
       name = "read";
       packageName = "read";
@@ -36778,22 +38713,22 @@ let
         sha1 = "2724fd6a8113d73764ac288d4386270c1dbf17f0";
       };
     };
-    "read-package-json-2.1.1" = {
+    "read-package-json-2.1.2" = {
       name = "read-package-json";
       packageName = "read-package-json";
-      version = "2.1.1";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.1.tgz";
-        sha512 = "dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A==";
+        url = "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz";
+        sha512 = "D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==";
       };
     };
-    "read-package-json-fast-1.1.3" = {
+    "read-package-json-fast-1.2.1" = {
       name = "read-package-json-fast";
       packageName = "read-package-json-fast";
-      version = "1.1.3";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-1.1.3.tgz";
-        sha512 = "MmFqiyfCXV2Dmm4jH24DEGhxdkUDFivJQj4oPZQPOKywxR7HWBE6WnMWDAapfFHi3wm1b+mhR+XHlUH0CL8axg==";
+        url = "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-1.2.1.tgz";
+        sha512 = "OFbpwnHcv74Oa5YN5WvbOBfLw6yPmPcwvyJJw/tj9cWFBF7juQUDLDSZiOjEcgzfweWeeROOmbPpNN1qm4hcRg==";
       };
     };
     "read-package-tree-5.3.1" = {
@@ -36814,15 +38749,6 @@ 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";
@@ -36850,15 +38776,6 @@ 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";
@@ -36994,24 +38911,6 @@ let
         sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==";
       };
     };
-    "readdirp-3.2.0" = {
-      name = "readdirp";
-      packageName = "readdirp";
-      version = "3.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz";
-        sha512 = "crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==";
-      };
-    };
-    "readdirp-3.3.0" = {
-      name = "readdirp";
-      packageName = "readdirp";
-      version = "3.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz";
-        sha512 = "zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==";
-      };
-    };
     "readdirp-3.4.0" = {
       name = "readdirp";
       packageName = "readdirp";
@@ -37021,6 +38920,15 @@ let
         sha512 = "0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==";
       };
     };
+    "readline-1.3.0" = {
+      name = "readline";
+      packageName = "readline";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz";
+        sha1 = "c580d77ef2cfc8752b132498060dc9793a7ac01c";
+      };
+    };
     "readline2-0.1.1" = {
       name = "readline2";
       packageName = "readline2";
@@ -37057,6 +38965,15 @@ let
         sha1 = "451fd3004ab1e4df9b4e4b66376b2a21912462d3";
       };
     };
+    "recast-0.17.2" = {
+      name = "recast";
+      packageName = "recast";
+      version = "0.17.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/recast/-/recast-0.17.2.tgz";
+        sha512 = "YHFvn4rBXl8eIjALjUiOV/AP3xFpyGNGNHDw9mAncAWuIdgnBKjbZQ9+P3VlsKcNaNapRVFlTEX1dvDRlYwyxg==";
+      };
+    };
     "recast-0.18.10" = {
       name = "recast";
       packageName = "recast";
@@ -37066,13 +38983,13 @@ let
         sha512 = "XNvYvkfdAN9QewbrxeTOjgINkdY/odTgTS56ZNEWL9Ml0weT4T3sFtvnTuF+Gxyu46ANcRm1ntrF6F5LAJPAaQ==";
       };
     };
-    "recast-0.19.1" = {
+    "recast-0.20.3" = {
       name = "recast";
       packageName = "recast";
-      version = "0.19.1";
+      version = "0.20.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/recast/-/recast-0.19.1.tgz";
-        sha512 = "8FCjrBxjeEU2O6I+2hyHyBFH1siJbMBLwIRvVr1T3FD2cL754sOaJDsJ/8h3xYltasbJ8jqWRIhMuDGBSiSbjw==";
+        url = "https://registry.npmjs.org/recast/-/recast-0.20.3.tgz";
+        sha512 = "jrEPzRV5B7wfRiN0UYMtjgIx1Hp8MRHdLcMYqMNd0DoOe1CB5JmPL/04I7WPuuApCs7LCSisYK/FfKnPEaJrzw==";
       };
     };
     "rechoir-0.6.2" = {
@@ -37147,6 +39064,15 @@ let
         sha1 = "8984b5815d99cb220469c99eeeffe38913e6cc0b";
       };
     };
+    "redoc-2.0.0-rc.8-1" = {
+      name = "redoc";
+      packageName = "redoc";
+      version = "2.0.0-rc.8-1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.8-1.tgz";
+        sha512 = "/YoCdcl2QtveKz4CTXaqtOfCIaVgZZgcnfUNC5xK7xBl/LxTiNj3tUbgFmrYMLTZGzNdQ9TUJpsa7lXDKcr8Pw==";
+      };
+    };
     "reduce-component-1.0.1" = {
       name = "reduce-component";
       packageName = "reduce-component";
@@ -37174,13 +39100,13 @@ let
         sha512 = "pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==";
       };
     };
-    "reftools-1.1.1" = {
+    "reftools-1.1.6" = {
       name = "reftools";
       packageName = "reftools";
-      version = "1.1.1";
+      version = "1.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/reftools/-/reftools-1.1.1.tgz";
-        sha512 = "7ySkzK7YpUeJP16rzJqEXTZ7IrAq/AL/p+wWejD9wdKQOe+mYYVAOB3w5ZTs2eoHfmAidwr/6PcC+q+LzPF/DQ==";
+        url = "https://registry.npmjs.org/reftools/-/reftools-1.1.6.tgz";
+        sha512 = "rQfJ025lvPjw9qyQuNPqE+cRs5qVs7BMrZwgRJnmuMcX/8r/eJE8f5/RCunJWViXKHmN5K2DFafYzglLOHE/tw==";
       };
     };
     "regenerate-1.4.1" = {
@@ -37201,6 +39127,15 @@ let
         sha512 = "F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==";
       };
     };
+    "regenerator-runtime-0.10.5" = {
+      name = "regenerator-runtime";
+      packageName = "regenerator-runtime";
+      version = "0.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz";
+        sha1 = "336c3efc1220adcedda2c9fab67b5a7955a33658";
+      };
+    };
     "regenerator-runtime-0.11.1" = {
       name = "regenerator-runtime";
       packageName = "regenerator-runtime";
@@ -37210,22 +39145,22 @@ let
         sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==";
       };
     };
-    "regenerator-runtime-0.13.5" = {
+    "regenerator-runtime-0.13.7" = {
       name = "regenerator-runtime";
       packageName = "regenerator-runtime";
-      version = "0.13.5";
+      version = "0.13.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz";
-        sha512 = "ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==";
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz";
+        sha512 = "a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==";
       };
     };
-    "regenerator-transform-0.14.4" = {
+    "regenerator-transform-0.14.5" = {
       name = "regenerator-transform";
       packageName = "regenerator-transform";
-      version = "0.14.4";
+      version = "0.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz";
-        sha512 = "EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==";
+        url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz";
+        sha512 = "eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==";
       };
     };
     "regex-cache-0.4.4" = {
@@ -37309,13 +39244,13 @@ let
         sha512 = "4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==";
       };
     };
-    "registry-auth-token-4.1.1" = {
+    "registry-auth-token-4.2.0" = {
       name = "registry-auth-token";
       packageName = "registry-auth-token";
-      version = "4.1.1";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz";
-        sha512 = "9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==";
+        url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz";
+        sha512 = "P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==";
       };
     };
     "registry-url-3.1.0" = {
@@ -37354,6 +39289,24 @@ let
         sha512 = "64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==";
       };
     };
+    "rehype-parse-7.0.1" = {
+      name = "rehype-parse";
+      packageName = "rehype-parse";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rehype-parse/-/rehype-parse-7.0.1.tgz";
+        sha512 = "fOiR9a9xH+Le19i4fGzIEowAbwG7idy2Jzs4mOrFWBSJ0sNUgy0ev871dwWnbOo371SjgjG4pwzrbgSVrKxecw==";
+      };
+    };
+    "rehype-retext-2.0.4" = {
+      name = "rehype-retext";
+      packageName = "rehype-retext";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rehype-retext/-/rehype-retext-2.0.4.tgz";
+        sha512 = "OnGX5RE8WyEs/Snz+Bs8DM9uGdrNUXMhCC7CW3S1cIZVOC90VdewdE+71kpG6LOzS0xwgZyItwrhjGv+oQgwkQ==";
+      };
+    };
     "rehype-sort-attribute-values-2.0.1" = {
       name = "rehype-sort-attribute-values";
       packageName = "rehype-sort-attribute-values";
@@ -37453,6 +39406,15 @@ let
         sha512 = "fM5eZPBvu2pVNoq3ZPW22q+5Ativ1oLozq2qYt9I2oNyxiUd/tDl0iLLntEVAegpZIslPWg1brhcP1VsaSVUag==";
       };
     };
+    "remark-frontmatter-2.0.0" = {
+      name = "remark-frontmatter";
+      packageName = "remark-frontmatter";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-2.0.0.tgz";
+        sha512 = "uNOQt4tO14qBFWXenF0MLC4cqo3dv8qiHPGyjCl1rwOT0LomSHpcElbjjVh5CwzElInB38HD8aSRVugKQjeyHA==";
+      };
+    };
     "remark-html-2.0.2" = {
       name = "remark-html";
       packageName = "remark-html";
@@ -37462,13 +39424,22 @@ let
         sha1 = "592a347bdd3d5881f4f080c98b5b152fb1407a92";
       };
     };
-    "remark-message-control-4.2.0" = {
+    "remark-mdx-2.0.0-next.7" = {
+      name = "remark-mdx";
+      packageName = "remark-mdx";
+      version = "2.0.0-next.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-mdx/-/remark-mdx-2.0.0-next.7.tgz";
+        sha512 = "JHYCfxJzvjTw8h5y10f+mCvbfIt5klAkWlULqPu1nM/r6ghF3tzJl0AFQFj5b/m/7U553+yYb/y4n0julMERYA==";
+      };
+    };
+    "remark-message-control-6.0.0" = {
       name = "remark-message-control";
       packageName = "remark-message-control";
-      version = "4.2.0";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/remark-message-control/-/remark-message-control-4.2.0.tgz";
-        sha512 = "WXH2t5ljTyhsXlK1zPBLF3iPHbXl58R94phPMreS1xcHWBZJt6Oiu8RtNjy1poZFb3PqKnbYLJeR/CWcZ1bTFw==";
+        url = "https://registry.npmjs.org/remark-message-control/-/remark-message-control-6.0.0.tgz";
+        sha512 = "k9bt7BYc3G7YBdmeAhvd3VavrPa/XlKWR3CyHjr4sLO9xJyly8WHHT3Sp+8HPR8lEUv+/sZaffL7IjMLV0f6BA==";
       };
     };
     "remark-parse-1.1.0" = {
@@ -37507,13 +39478,22 @@ let
         sha512 = "QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==";
       };
     };
-    "remark-retext-3.1.3" = {
+    "remark-parse-8.0.3" = {
+      name = "remark-parse";
+      packageName = "remark-parse";
+      version = "8.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz";
+        sha512 = "E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==";
+      };
+    };
+    "remark-retext-4.0.0" = {
       name = "remark-retext";
       packageName = "remark-retext";
-      version = "3.1.3";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/remark-retext/-/remark-retext-3.1.3.tgz";
-        sha512 = "UujXAm28u4lnUvtOZQFYfRIhxX+auKI9PuA2QpQVTT7gYk1OgX6o0OUrSo1KOa6GNrFX+OODOtS5PWIHPxM7qw==";
+        url = "https://registry.npmjs.org/remark-retext/-/remark-retext-4.0.0.tgz";
+        sha512 = "cYCchalpf25bTtfXF24ribYvqytPKq0TiEhqQDBHvVEEsApebwruPWP1cTcvTFBidmpXyqzycm+y8ng7Kmvc8Q==";
       };
     };
     "remark-stringify-1.1.0" = {
@@ -37543,6 +39523,24 @@ let
         sha512 = "eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==";
       };
     };
+    "remark-stringify-8.1.1" = {
+      name = "remark-stringify";
+      packageName = "remark-stringify";
+      version = "8.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.1.tgz";
+        sha512 = "q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==";
+      };
+    };
+    "remote-git-tags-3.0.0" = {
+      name = "remote-git-tags";
+      packageName = "remote-git-tags";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remote-git-tags/-/remote-git-tags-3.0.0.tgz";
+        sha512 = "C9hAO4eoEsX+OXA4rla66pXZQ+TLQ8T9dttgQj18yuKlPMTVkIkdYXvlMC55IuUsIkV6DpmQYi10JKFLaU+l7w==";
+      };
+    };
     "remove-array-items-1.1.1" = {
       name = "remove-array-items";
       packageName = "remove-array-items";
@@ -37732,22 +39730,22 @@ let
         sha1 = "5d36bb57961c673aa5b788dbc8141fdf23b44e08";
       };
     };
-    "request-promise-core-1.1.3" = {
+    "request-promise-core-1.1.4" = {
       name = "request-promise-core";
       packageName = "request-promise-core";
-      version = "1.1.3";
+      version = "1.1.4";
       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/request-promise-core/-/request-promise-core-1.1.4.tgz";
+        sha512 = "TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==";
       };
     };
-    "request-promise-native-1.0.8" = {
+    "request-promise-native-1.0.9" = {
       name = "request-promise-native";
       packageName = "request-promise-native";
-      version = "1.0.8";
+      version = "1.0.9";
       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-promise-native/-/request-promise-native-1.0.9.tgz";
+        sha512 = "wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==";
       };
     };
     "requestretry-4.1.1" = {
@@ -37795,6 +39793,15 @@ let
         sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
       };
     };
+    "require-package-name-2.0.1" = {
+      name = "require-package-name";
+      packageName = "require-package-name";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz";
+        sha1 = "c11e97276b65b8e2923f75dabf5fb2ef0c3841b9";
+      };
+    };
     "require-relative-0.8.7" = {
       name = "require-relative";
       packageName = "require-relative";
@@ -37813,15 +39820,6 @@ let
         sha1 = "4e0d56d6c9662fd31e43011c4b95aa49955421d3";
       };
     };
-    "requireg-0.2.2" = {
-      name = "requireg";
-      packageName = "requireg";
-      version = "0.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz";
-        sha512 = "nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==";
-      };
-    };
     "requirejs-2.3.6" = {
       name = "requirejs";
       packageName = "requirejs";
@@ -37831,15 +39829,6 @@ let
         sha512 = "ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==";
       };
     };
-    "requirejs-config-file-3.1.2" = {
-      name = "requirejs-config-file";
-      packageName = "requirejs-config-file";
-      version = "3.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/requirejs-config-file/-/requirejs-config-file-3.1.2.tgz";
-        sha512 = "sdLWywcDuNz7EIOhenSbRfT4YF84nItDv90coN2htbokjmU2QeyQuSBZILQUKNksepl8UPVU+hgYySFaDxbJPQ==";
-      };
-    };
     "requires-port-1.0.0" = {
       name = "requires-port";
       packageName = "requires-port";
@@ -37858,15 +39847,6 @@ let
         sha512 = "YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==";
       };
     };
-    "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.17.0" = {
       name = "resolve";
       packageName = "resolve";
@@ -37876,13 +39856,22 @@ let
         sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
       };
     };
-    "resolve-1.7.1" = {
+    "resolve-2.0.0-next.1" = {
       name = "resolve";
       packageName = "resolve";
-      version = "1.7.1";
+      version = "2.0.0-next.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz";
-        sha512 = "c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==";
+        url = "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.1.tgz";
+        sha512 = "ZGTmuLZAW++TDjgslfUMRZcv7kXHv8z0zwxvuRWOPjnqc56HVsn1lVaqsWOZeQ8MwiilPVJLrcPVKG909QsAfA==";
+      };
+    };
+    "resolve-alpn-1.0.0" = {
+      name = "resolve-alpn";
+      packageName = "resolve-alpn";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz";
+        sha512 = "rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==";
       };
     };
     "resolve-cwd-2.0.0" = {
@@ -37894,15 +39883,6 @@ let
         sha1 = "00a9f7387556e27038eae232caa372a6a59b665a";
       };
     };
-    "resolve-dependency-path-2.0.0" = {
-      name = "resolve-dependency-path";
-      packageName = "resolve-dependency-path";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz";
-        sha512 = "DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w==";
-      };
-    };
     "resolve-dir-1.0.1" = {
       name = "resolve-dir";
       packageName = "resolve-dir";
@@ -38092,22 +40072,22 @@ let
         sha512 = "yr1PgaBDde+25aJXrnt3p1jvT8FVLVat2Bx8XeAWX13KXo8OT+3nWGU3HWxM4YFJvmfqvJYJZG2d7xxaO774gw==";
       };
     };
-    "retext-equality-3.2.0" = {
+    "retext-equality-5.2.0" = {
       name = "retext-equality";
       packageName = "retext-equality";
-      version = "3.2.0";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/retext-equality/-/retext-equality-3.2.0.tgz";
-        sha512 = "dzcpZmEQ99ECZs1Y8WhfvJ4kEq+zfrI3ONMUFlSu8DmRJJY3p97v/2ZfVrufhrKlDr/wa902NJiIwupRnZy3/w==";
+        url = "https://registry.npmjs.org/retext-equality/-/retext-equality-5.2.0.tgz";
+        sha512 = "qfyDsVvwI6RsbyBi5GDRnutDbRMQj5zzK5oVg6ddKhONle2ZmQ/DBg9mz9QLKdnGhp8aW5xoVskXgwHufSQa3g==";
       };
     };
-    "retext-profanities-4.4.0" = {
+    "retext-profanities-6.1.0" = {
       name = "retext-profanities";
       packageName = "retext-profanities";
-      version = "4.4.0";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/retext-profanities/-/retext-profanities-4.4.0.tgz";
-        sha512 = "Gesb0Act9oeJ5N0KztREitP2E0zo7euzgTu2X4HLP6IJmcrRbRnqNwV11tzNy5JFJzKB1JTJFc7KseojTeGwOA==";
+        url = "https://registry.npmjs.org/retext-profanities/-/retext-profanities-6.1.0.tgz";
+        sha512 = "40Ym0WOgy7rRY4tR2iL01g3Y5Ql+9NBV21hycIhNX3uv+6vjaWB30NWN+tTcxNIWBJEwXHoTDMiVdAMm6ZpHVA==";
       };
     };
     "rethinkdb-2.4.2" = {
@@ -38353,13 +40333,13 @@ let
         sha512 = "/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==";
       };
     };
-    "rollup-2.18.1" = {
+    "rollup-2.26.9" = {
       name = "rollup";
       packageName = "rollup";
-      version = "2.18.1";
+      version = "2.26.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rollup/-/rollup-2.18.1.tgz";
-        sha512 = "w4X77ADA+WTGlapC8Z6yggdJtODw3SBl6R2LSkA7ZW5MtdkgcB7sfaSD1UWyx8diXbMcGIb0eI9gCx/dyqOgNQ==";
+        url = "https://registry.npmjs.org/rollup/-/rollup-2.26.9.tgz";
+        sha512 = "XIiWYLayLqV+oY4S2Lub/shJq4uk/QQLwWToYCL4LjZbYHbFK3czea4UDVRUJu+zNmKmxq5Zb/OG7c5HSvH2TQ==";
       };
     };
     "rollup-plugin-babel-4.4.0" = {
@@ -38443,13 +40423,22 @@ let
         sha1 = "6f04063a2d04eba3303a1bbc6765eef63037cf3d";
       };
     };
-    "rss-parser-3.8.0" = {
+    "rss-parser-3.7.1" = {
       name = "rss-parser";
       packageName = "rss-parser";
-      version = "3.8.0";
+      version = "3.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rss-parser/-/rss-parser-3.7.1.tgz";
+        sha512 = "1JKFzLHeteNandmlVBUWgLPmipFEllhdUQlmNvkXd6ju4VFOlGr0VmtlQaxzZoVysG2nbGb8eAtzNqQTxzQ+AQ==";
+      };
+    };
+    "rss-parser-3.9.0" = {
+      name = "rss-parser";
+      packageName = "rss-parser";
+      version = "3.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rss-parser/-/rss-parser-3.8.0.tgz";
-        sha512 = "EvjM0r3IymXnk+SCUawLhdH36D2WQCwpEfIyvu4hpPswYuMSk/jlCLOcg24OvXwVdcJcEocAlTZVjGNjOOSJXg==";
+        url = "https://registry.npmjs.org/rss-parser/-/rss-parser-3.9.0.tgz";
+        sha512 = "wlRSfGrotOXuWo19Dtl2KmQt7o9i5zzCExUrxpechE0O54BAx7JD+xhWyGumPPqiJj771ndflV3sE3bTHen0HQ==";
       };
     };
     "rsvp-3.6.2" = {
@@ -38632,6 +40621,15 @@ let
         sha512 = "WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==";
       };
     };
+    "rxjs-6.6.2" = {
+      name = "rxjs";
+      packageName = "rxjs";
+      version = "6.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz";
+        sha512 = "BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==";
+      };
+    };
     "s.color-0.0.13" = {
       name = "s.color";
       packageName = "s.color";
@@ -38713,6 +40711,15 @@ let
         sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
       };
     };
+    "safe-join-0.1.3" = {
+      name = "safe-join";
+      packageName = "safe-join";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-join/-/safe-join-0.1.3.tgz";
+        sha512 = "Ylh1EWn4pmL57HRV/oi4Ye7ws5AxKkdGpyDdWsvZob5VLH8xnQpG8tqmHD5v4SdKlN7hyrBjYt7Jm3faeC+uJg==";
+      };
+    };
     "safe-json-stringify-1.2.0" = {
       name = "safe-json-stringify";
       packageName = "safe-json-stringify";
@@ -38776,22 +40783,13 @@ let
         sha512 = "y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==";
       };
     };
-    "sass-formatter-0.4.10" = {
+    "sass-formatter-0.4.13" = {
       name = "sass-formatter";
       packageName = "sass-formatter";
-      version = "0.4.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sass-formatter/-/sass-formatter-0.4.10.tgz";
-        sha512 = "PGLPkmVH5D88rglknE+safJvtOG4uYhcNVD4opSDX4Ho5l5fkKmEMU526TPOXgfmpOGxi54lb42gzXfRiT6sZw==";
-      };
-    };
-    "sass-lookup-3.0.0" = {
-      name = "sass-lookup";
-      packageName = "sass-lookup";
-      version = "3.0.0";
+      version = "0.4.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sass-lookup/-/sass-lookup-3.0.0.tgz";
-        sha512 = "TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg==";
+        url = "https://registry.npmjs.org/sass-formatter/-/sass-formatter-0.4.13.tgz";
+        sha512 = "EhNMkRZSZHcHrg/w0XgBoW96pcY11SBJ69mCI2S3Eo2sce2CSd66AqxAS05eC8yoc4BVg/Fr2KZty5B3gt6xGw==";
       };
     };
     "sax-0.5.8" = {
@@ -38848,6 +40846,15 @@ let
         sha512 = "agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==";
       };
     };
+    "scheduler-0.19.1" = {
+      name = "scheduler";
+      packageName = "scheduler";
+      version = "0.19.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz";
+        sha512 = "n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==";
+      };
+    };
     "schema-utils-1.0.0" = {
       name = "schema-utils";
       packageName = "schema-utils";
@@ -38866,6 +40873,15 @@ let
         sha512 = "0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==";
       };
     };
+    "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==";
+      };
+    };
     "scoped-regex-1.0.0" = {
       name = "scoped-regex";
       packageName = "scoped-regex";
@@ -38920,22 +40936,13 @@ let
         sha1 = "f0c82d98a3b139a8776a8808050b824431087fca";
       };
     };
-    "seed-random-2.2.0" = {
-      name = "seed-random";
-      packageName = "seed-random";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz";
-        sha1 = "2a9b19e250a817099231a5b99a4daf80b7fbed54";
-      };
-    };
-    "seek-bzip-1.0.5" = {
+    "seek-bzip-1.0.6" = {
       name = "seek-bzip";
       packageName = "seek-bzip";
-      version = "1.0.5";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz";
-        sha1 = "cfe917cb3d274bcffac792758af53173eb1fabdc";
+        url = "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz";
+        sha512 = "e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==";
       };
     };
     "select-1.1.2" = {
@@ -39217,13 +41224,13 @@ let
         sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
       };
     };
-    "sentence-case-2.1.1" = {
+    "sentence-case-3.0.3" = {
       name = "sentence-case";
       packageName = "sentence-case";
-      version = "2.1.1";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz";
-        sha1 = "1f6e2dda39c168bf92d13f86d4a918933f667ed4";
+        url = "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.3.tgz";
+        sha512 = "ZPr4dgTcNkEfcGOMFQyDdJrTU9uQO1nb1cjf+nuzb6FxgMDgKddZOM29qEsB7jvsZSMruLRcL2KfM4ypKpa0LA==";
       };
     };
     "sentence-splitter-2.3.2" = {
@@ -39253,13 +41260,13 @@ let
         sha1 = "e433676932020454e3c14870c517ea1de56c2fa4";
       };
     };
-    "sequencify-0.0.7" = {
-      name = "sequencify";
-      packageName = "sequencify";
-      version = "0.0.7";
+    "seq-0.3.5" = {
+      name = "seq";
+      packageName = "seq";
+      version = "0.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz";
-        sha1 = "90cff19d02e07027fd767f5ead3e7b95d1e7380c";
+        url = "https://registry.npmjs.org/seq/-/seq-0.3.5.tgz";
+        sha1 = "ae02af3a424793d8ccbf212d69174e0c54dffe38";
       };
     };
     "serialize-error-7.0.1" = {
@@ -39271,22 +41278,13 @@ let
         sha512 = "8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==";
       };
     };
-    "serialize-javascript-3.0.0" = {
-      name = "serialize-javascript";
-      packageName = "serialize-javascript";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.0.0.tgz";
-        sha512 = "skZcHYw2vEX4bw90nAr2iTTsz6x2SrHEnfxgKYmZlvJYBEZrvbKtobJWlQ20zczKb3bsHHXXTYt48zBA7ni9cw==";
-      };
-    };
-    "serialize-javascript-3.1.0" = {
+    "serialize-javascript-4.0.0" = {
       name = "serialize-javascript";
       packageName = "serialize-javascript";
-      version = "3.1.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz";
-        sha512 = "JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==";
+        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz";
+        sha512 = "GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==";
       };
     };
     "serialize-to-js-3.1.1" = {
@@ -39424,6 +41422,15 @@ let
         sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
       };
     };
+    "setprototypeof-1.2.0" = {
+      name = "setprototypeof";
+      packageName = "setprototypeof";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz";
+        sha512 = "E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==";
+      };
+    };
     "seventh-0.7.35" = {
       name = "seventh";
       packageName = "seventh";
@@ -39469,6 +41476,15 @@ let
         sha1 = "415f42702d73d810330292cc5ee86eae1a11a170";
       };
     };
+    "shallowequal-1.1.0" = {
+      name = "shallowequal";
+      packageName = "shallowequal";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz";
+        sha512 = "y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==";
+      };
+    };
     "sharp-0.23.4" = {
       name = "sharp";
       packageName = "sharp";
@@ -39568,6 +41584,15 @@ let
         sha1 = "b2f5c77ef97148f4b4f6e22682e10bba8667cff1";
       };
     };
+    "shelljs-0.7.8" = {
+      name = "shelljs";
+      packageName = "shelljs";
+      version = "0.7.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz";
+        sha1 = "decbcf874b0d1e5fb72e14b164a9683048e9acb3";
+      };
+    };
     "shelljs-0.8.4" = {
       name = "shelljs";
       packageName = "shelljs";
@@ -39667,13 +41692,22 @@ let
         sha1 = "c27415a9e458f2fed39b27cf8eb37c003782b431";
       };
     };
-    "side-channel-1.0.2" = {
+    "side-channel-1.0.3" = {
       name = "side-channel";
       packageName = "side-channel";
-      version = "1.0.2";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz";
+        sha512 = "A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g==";
+      };
+    };
+    "sift-7.0.1" = {
+      name = "sift";
+      packageName = "sift";
+      version = "7.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz";
-        sha512 = "7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==";
+        url = "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz";
+        sha512 = "oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==";
       };
     };
     "sigmund-1.0.1" = {
@@ -39685,13 +41719,13 @@ let
         sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590";
       };
     };
-    "sign-addon-2.0.5" = {
+    "sign-addon-2.0.6" = {
       name = "sign-addon";
       packageName = "sign-addon";
-      version = "2.0.5";
+      version = "2.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sign-addon/-/sign-addon-2.0.5.tgz";
-        sha512 = "dVjIWe1VJ2VQCdScREWXWECmJhgjpJMqwPKkW+L78PPx2Jyr/t+//kNHqG1hYrmIsvQN7vGjAjv9s7ix0vw0zA==";
+        url = "https://registry.npmjs.org/sign-addon/-/sign-addon-2.0.6.tgz";
+        sha512 = "/8SQPNCrrZKMthdDf1IfI4XMbq8k9YsiiMyVeQL8xhhQSsZho6ZvEUBFSA70N0eznLZyab3k1d2CNOchYRYA6Q==";
       };
     };
     "signal-exit-3.0.3" = {
@@ -39721,13 +41755,13 @@ let
         sha1 = "50a9989da7c98c2c61dad119bc97470ef8528129";
       };
     };
-    "simple-concat-1.0.0" = {
+    "simple-concat-1.0.1" = {
       name = "simple-concat";
       packageName = "simple-concat";
-      version = "1.0.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz";
-        sha1 = "7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6";
+        url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz";
+        sha512 = "cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==";
       };
     };
     "simple-get-2.8.1" = {
@@ -40009,6 +42043,15 @@ let
         sha1 = "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707";
       };
     };
+    "slugify-1.4.5" = {
+      name = "slugify";
+      packageName = "slugify";
+      version = "1.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slugify/-/slugify-1.4.5.tgz";
+        sha512 = "WpECLAgYaxHoEAJ8Q1Lo8HOs1ngn7LN7QjXgOLbmmfkcWvosyk4ZTXkTzKyhngK640USTZUlgoQJfED1kz5fnQ==";
+      };
+    };
     "smart-buffer-4.1.0" = {
       name = "smart-buffer";
       packageName = "smart-buffer";
@@ -40054,13 +42097,13 @@ let
         sha512 = "g0w2Ft4RJl+F/1/tQvA4BUsH09s+RNd0RRa+So24Inv5yzce5xUnPzxlEWNUBG5TwQjfKDZSFWrf2rXz+e1Q2g==";
       };
     };
-    "snake-case-2.1.0" = {
+    "snake-case-3.0.3" = {
       name = "snake-case";
       packageName = "snake-case";
-      version = "2.1.0";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz";
-        sha1 = "41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f";
+        url = "https://registry.npmjs.org/snake-case/-/snake-case-3.0.3.tgz";
+        sha512 = "WM1sIXEO+rsAHBKjGf/6R1HBBcgbncKS08d2Aqec/mrDSpU80SiOU41hO7ny6DToHSyrlwTYzQBIK1FPSx4Y3Q==";
       };
     };
     "snapdragon-0.8.2" = {
@@ -40126,13 +42169,22 @@ let
         sha512 = "3UlyogA67/9WOssJ7s4d7gqWQRWyO/LbgdBBNMhhmFDKa7eTUSW+A782CVHgyDSJZ2kNANcMWwMiOL+h3p6zQg==";
       };
     };
-    "snyk-docker-plugin-3.12.3" = {
+    "snyk-cpp-plugin-1.4.1" = {
+      name = "snyk-cpp-plugin";
+      packageName = "snyk-cpp-plugin";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snyk-cpp-plugin/-/snyk-cpp-plugin-1.4.1.tgz";
+        sha512 = "akhVFsuGBD5yyQtTNoItzG8M6k7dd6A16cHBSoTsP8TgnQdm0QIJMrE2zj0Ak1wgyTCiZeGkI6NE9TDwvvfKLw==";
+      };
+    };
+    "snyk-docker-plugin-3.18.1" = {
       name = "snyk-docker-plugin";
       packageName = "snyk-docker-plugin";
-      version = "3.12.3";
+      version = "3.18.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-docker-plugin/-/snyk-docker-plugin-3.12.3.tgz";
-        sha512 = "Ysv7ZDvXFt6K11f1m6wJaqYS3yM7c8YhzOIPoEmrYZW+4tL+Al5DiyKaAQBudbfYEA7xa6S6qGqE3QRitHZ5nQ==";
+        url = "https://registry.npmjs.org/snyk-docker-plugin/-/snyk-docker-plugin-3.18.1.tgz";
+        sha512 = "cuFv5nfVpnbUy9dCMJ2YDh7gnKMUUMGF665BUHcx2UyJASvnYt5GFf/fyrm652Va/qb3dIYaugg+Hv9EMeZTVw==";
       };
     };
     "snyk-go-parser-1.4.1" = {
@@ -40144,22 +42196,22 @@ let
         sha512 = "StU3uHB85VMEkcgXta63M0Fgd+9cs5sMCjQXTBoYTdE4dxarPn7U67yCuwkRRdZdny1ZXtzfY8LKns9i0+dy9w==";
       };
     };
-    "snyk-go-plugin-1.14.2" = {
+    "snyk-go-plugin-1.16.0" = {
       name = "snyk-go-plugin";
       packageName = "snyk-go-plugin";
-      version = "1.14.2";
+      version = "1.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-go-plugin/-/snyk-go-plugin-1.14.2.tgz";
-        sha512 = "r/uaM3gk/RF7m/VGYswxlnA6I+kMgK3eVPsPyf7400BhqF8noh8K7v10CEg67mHA4JM0l7dZASqejr/5kKw9ZQ==";
+        url = "https://registry.npmjs.org/snyk-go-plugin/-/snyk-go-plugin-1.16.0.tgz";
+        sha512 = "XNGHEFyP+pCzcqmXnj5T/1Oy6AZzm2WkTSuUpohWQ/09ecMRCCv2yrr/kwMQemrKN4+7CoJS/9xfm3GnNlzVHA==";
       };
     };
-    "snyk-gradle-plugin-3.5.0" = {
+    "snyk-gradle-plugin-3.6.2" = {
       name = "snyk-gradle-plugin";
       packageName = "snyk-gradle-plugin";
-      version = "3.5.0";
+      version = "3.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.5.0.tgz";
-        sha512 = "zOHr3802bDKCcSAFfoEvt/wGSaOSGRm6yQjikdo1RTz7jTeQnSMJxCFYTOhfpu9Tka4d5q0TsdI/2VLFAvPKhA==";
+        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.6.2.tgz";
+        sha512 = "JJmVOoLCCN58Wjcxdg93KeMjecnypP6+TfnCPuD4NbCNnKSn93c22VKpx6h1/AS1u6EK9dDTelwlYQOopBFA+w==";
       };
     };
     "snyk-module-1.9.1" = {
@@ -40189,13 +42241,13 @@ let
         sha512 = "HHuOYEAACpUpkFgU8HT57mmxmonaJ4O3YADoSkVhnhkmJ+AowqZyJOau703dYHNrq2DvQ7qYw81H7yyxS1Nfjw==";
       };
     };
-    "snyk-mvn-plugin-2.17.1" = {
+    "snyk-mvn-plugin-2.19.1" = {
       name = "snyk-mvn-plugin";
       packageName = "snyk-mvn-plugin";
-      version = "2.17.1";
+      version = "2.19.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-2.17.1.tgz";
-        sha512 = "U7ZKrKVnUW2gcyYIzvc0w9nRYh4NXv+wShTIcs++ARCAJOG9A4nxh+ZRmINQ7Sy7EB2qLIRwN4Ssr17+y2mhuA==";
+        url = "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-2.19.1.tgz";
+        sha512 = "VXYJSdhUmOQAyxdsv5frAKbi3UOcHPabWEQxQ9wxhVBEEmx2lP5ajv1a+ntxwWwL7u3jdc+rnCIKHpLlQJ5nyw==";
       };
     };
     "snyk-nodejs-lockfile-parser-1.22.0" = {
@@ -40207,6 +42259,15 @@ let
         sha512 = "l6jLoJxqcIIkQopSdQuAstXdMw5AIgLu+uGc5CYpHyw8fYqOwna8rawwofNeGuwJAAv4nEiNiexeYaR88OCq6Q==";
       };
     };
+    "snyk-nodejs-lockfile-parser-1.27.0" = {
+      name = "snyk-nodejs-lockfile-parser";
+      packageName = "snyk-nodejs-lockfile-parser";
+      version = "1.27.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.27.0.tgz";
+        sha512 = "s1yEqEC8uxELzEXqXmnWKpoOIn0rM8StMjuy0X5U+FmxGvO3jRtFDU5hcVw9cAULLfrQYBHRowrO/5FaR79fxA==";
+      };
+    };
     "snyk-nuget-plugin-1.18.1" = {
       name = "snyk-nuget-plugin";
       packageName = "snyk-nuget-plugin";
@@ -40414,13 +42475,13 @@ let
         sha512 = "o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==";
       };
     };
-    "socks-2.4.1" = {
+    "socks-2.4.2" = {
       name = "socks";
       packageName = "socks";
-      version = "2.4.1";
+      version = "2.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socks/-/socks-2.4.1.tgz";
-        sha512 = "8mWHeYC1OA0500qzb+sqwm0Hzi8oBpeuI1JugoBVMEJtJvxSgco8xFSK+NRnZcHeeWjTbF82KUDo5sXH22TY5A==";
+        url = "https://registry.npmjs.org/socks/-/socks-2.4.2.tgz";
+        sha512 = "cE6P9R+/CET9XhIMvqhRgaNT1GXKIahioMjwwhgYOd+8UQWP50rrFm+faqG/4xkZsjTdVeBYr0Tb246BSC9/fg==";
       };
     };
     "socks-proxy-agent-4.0.2" = {
@@ -40522,6 +42583,15 @@ let
         sha512 = "mbkiyA2clyfwAyOFIzMvsV6ny2KrKEIhFVASJxWfsmgfUEymgLIS2MLHHcGIQMkrcKhPErRaMR5Dzv0EEn+BWg==";
       };
     };
+    "sodium-native-3.2.0" = {
+      name = "sodium-native";
+      packageName = "sodium-native";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sodium-native/-/sodium-native-3.2.0.tgz";
+        sha512 = "8aq/vQSegLwsRch8Sb/Bpf9aAqlNe5dp0+NVhb9UjHv42zDZ0D5zX3wBRUbXK9Ejum9uZE6DUgT4vVLlUFRBWg==";
+      };
+    };
     "sodium-universal-2.0.0" = {
       name = "sodium-universal";
       packageName = "sodium-universal";
@@ -40531,13 +42601,13 @@ let
         sha512 = "csdVyakzHJRyCevY4aZC2Eacda8paf+4nmRGF2N7KxCLKY2Ajn72JsExaQlJQ2BiXJncp44p3T+b80cU+2TTsg==";
       };
     };
-    "sonic-boom-1.0.1" = {
+    "sonic-boom-1.1.0" = {
       name = "sonic-boom";
       packageName = "sonic-boom";
-      version = "1.0.1";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.0.1.tgz";
-        sha512 = "o9tx+bonVEXSaPtptyXQXpP8l6UV9Bi3im2geZskvWw2a/o/hrbWI7EBbbv+rOx6Hubnzun9GgH4WfbgEA3MFQ==";
+        url = "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.1.0.tgz";
+        sha512 = "JyOf+Xt7GBN4tAic/DD1Bitw6OMgSHAnswhPeOiLpfRoSjPNjEIi73UF3OxHzhSNn9WavxGuCZzprFCGFSNwog==";
       };
     };
     "sorcery-0.10.0" = {
@@ -40585,13 +42655,13 @@ let
         sha512 = "e2RHeY1iM6dT9od3RoqeJSyz3O7naNFsGy34+EFEcwghjAncuOXC2/Xwq87S4FbypqLVp6PcizYEsGEGsGIDXA==";
       };
     };
-    "sorted-array-functions-1.2.0" = {
+    "sorted-array-functions-1.3.0" = {
       name = "sorted-array-functions";
       packageName = "sorted-array-functions";
-      version = "1.2.0";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.2.0.tgz";
-        sha512 = "sWpjPhIZJtqO77GN+LD8dDsDKcWZ9GCOJNqKzi1tvtjGIzwfoyuRH8S0psunmc6Z5P+qfDqztSbwYR5X/e1UTg==";
+        url = "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz";
+        sha512 = "2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==";
       };
     };
     "sorted-immutable-list-1.1.0" = {
@@ -40693,15 +42763,6 @@ let
         sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==";
       };
     };
-    "source-map-support-0.5.16" = {
-      name = "source-map-support";
-      packageName = "source-map-support";
-      version = "0.5.16";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz";
-        sha512 = "efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==";
-      };
-    };
     "source-map-support-0.5.19" = {
       name = "source-map-support";
       packageName = "source-map-support";
@@ -40774,13 +42835,13 @@ let
         sha1 = "ff4ae6e68656056ba4b3e792ab3334d38273ca11";
       };
     };
-    "spawn-please-0.3.0" = {
+    "spawn-please-0.4.1" = {
       name = "spawn-please";
       packageName = "spawn-please";
-      version = "0.3.0";
+      version = "0.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spawn-please/-/spawn-please-0.3.0.tgz";
-        sha1 = "db338ec4cff63abc69f1d0e08cee9eb8bebd9d11";
+        url = "https://registry.npmjs.org/spawn-please/-/spawn-please-0.4.1.tgz";
+        sha512 = "YJwFL/shPyY5fddOU1XXkShCDNVkMDGKsGlpB91FKOkRGa+pVAe+A5/CUUwLrZ3e89prqbTXaGapCzTlmc3HaA==";
       };
     };
     "spawn-sync-1.0.15" = {
@@ -40909,6 +42970,15 @@ let
         sha512 = "0rfBDPVLzvDbMUKrFWvF6kvtXxllXGZRkFL0aCWJ5y8uXlEfZDo6IEPACZwJbKt/fGqFjJLJRHnG62vJmLLpRA==";
       };
     };
+    "spiro-2.0.0" = {
+      name = "spiro";
+      packageName = "spiro";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spiro/-/spiro-2.0.0.tgz";
+        sha512 = "KPWXN+OmQdjZPCMGRkE2hsbcY4Y4UJxjn+qTw4rsJ49n8VN6EqPk0UOOkNihXEl3JEqPQxcrDQebu9YPn9Ad4w==";
+      };
+    };
     "split-0.2.10" = {
       name = "split";
       packageName = "split";
@@ -40999,6 +43069,15 @@ let
         sha1 = "825236a78d52a18ff912a631ad3034c15ded5fe3";
       };
     };
+    "split2-1.1.1" = {
+      name = "split2";
+      packageName = "split2";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split2/-/split2-1.1.1.tgz";
+        sha1 = "162d9b18865f02ab2f2ad9585522db9b54c481f9";
+      };
+    };
     "split2-2.2.0" = {
       name = "split2";
       packageName = "split2";
@@ -41008,13 +43087,13 @@ let
         sha512 = "RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==";
       };
     };
-    "split2-3.1.1" = {
+    "split2-3.2.2" = {
       name = "split2";
       packageName = "split2";
-      version = "3.1.1";
+      version = "3.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/split2/-/split2-3.1.1.tgz";
-        sha512 = "emNzr1s7ruq4N+1993yht631/JH+jaj0NYBosuKmLcq+JkGQ9MmTw1RB1fGaTCzUuseRIClrlSLHRNYGwWQ58Q==";
+        url = "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz";
+        sha512 = "9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==";
       };
     };
     "sprintf-0.1.5" = {
@@ -41053,22 +43132,22 @@ let
         sha512 = "/0d2YTn8ZFVpIPAU230S9ZLF8WDkSSRWvh/UOLM7zzvkCchum1TtouRgyV8OfgOaYilSGU4lSSqzwBXJVlAwUw==";
       };
     };
-    "sqlite3-4.1.1" = {
+    "sqlite3-4.2.0" = {
       name = "sqlite3";
       packageName = "sqlite3";
-      version = "4.1.1";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sqlite3/-/sqlite3-4.1.1.tgz";
-        sha512 = "CvT5XY+MWnn0HkbwVKJAyWEMfzpAPwnTiB3TobA5Mri44SrTovmmh499NPQP+gatkeOipqPlBLel7rn4E/PCQg==";
+        url = "https://registry.npmjs.org/sqlite3/-/sqlite3-4.2.0.tgz";
+        sha512 = "roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg==";
       };
     };
-    "sqlite3-4.2.0" = {
+    "sqlite3-5.0.0" = {
       name = "sqlite3";
       packageName = "sqlite3";
-      version = "4.2.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sqlite3/-/sqlite3-4.2.0.tgz";
-        sha512 = "roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg==";
+        url = "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.0.tgz";
+        sha512 = "rjvqHFUaSGnzxDy2AHCwhHy6Zp6MNJzCPGYju4kD8yi6bze4d1/zMTg6C7JI49b7/EM7jKMTvyfN/4ylBKdwfw==";
       };
     };
     "srt2vtt-1.3.1" = {
@@ -41134,13 +43213,13 @@ let
         sha512 = "J3fsWb5nS6PqObZLW2tclEz/bkRQ5pcF9goXanYGVsoH71F6W4f5sOnck9szeubI8srNaiL9pa0kPRv/lojHiw==";
       };
     };
-    "ssb-db-20.2.0" = {
+    "ssb-db-20.3.0" = {
       name = "ssb-db";
       packageName = "ssb-db";
-      version = "20.2.0";
+      version = "20.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-db/-/ssb-db-20.2.0.tgz";
-        sha512 = "1JMUGGmxfoDNuFG56dfAZnzxtzKDtME/SITE3nlVX684n7zHih46NTFAF721PttQVkS1wcXJXmb3fbY2Rpvy1g==";
+        url = "https://registry.npmjs.org/ssb-db/-/ssb-db-20.3.0.tgz";
+        sha512 = "JOXCrS6k3+/kuOcFmZwc9vxPN55Czb7McFs5KEYA+/phykPwQ6e3hwjMT5YrVzSirCf8ptPS/mpOsCDog5Z2dg==";
       };
     };
     "ssb-ebt-5.6.7" = {
@@ -41152,13 +43231,13 @@ let
         sha512 = "ifPgPNmDE8EKuuoqtXibwgYNtDZNry7sJL1epSUb3XgQr62bUV31N9R5LHKDsI2kx96OgWRwWY2PfZ7vf/hU8Q==";
       };
     };
-    "ssb-friends-4.2.0" = {
+    "ssb-friends-4.2.1" = {
       name = "ssb-friends";
       packageName = "ssb-friends";
-      version = "4.2.0";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-friends/-/ssb-friends-4.2.0.tgz";
-        sha512 = "X8UewxMCZImUoYX9eNHdym6oFcfEA610iuyn2cGcHtYZre1J2WiKtCLBB2KIjwWZqlOs1mARE+mkVPYnduZy4Q==";
+        url = "https://registry.npmjs.org/ssb-friends/-/ssb-friends-4.2.1.tgz";
+        sha512 = "DgArf97p2MQxOKn9jWmyxA/6HUiyZkk5QFYohS/qo7CAFJzBJobgoJuvEGjzCgszJAZ/WmGwjYTrKTqFHwMEuQ==";
       };
     };
     "ssb-git-0.5.0" = {
@@ -41188,13 +43267,13 @@ let
         sha512 = "lbizlDBCtOOnbnz7zS81NOtnAyHnXu9E3gxrAJHZe7oyxINRI7IpQ8J79to9aXzkb8+2M32R8K4whmsAHGvJAg==";
       };
     };
-    "ssb-invite-2.1.4" = {
+    "ssb-invite-2.1.6" = {
       name = "ssb-invite";
       packageName = "ssb-invite";
-      version = "2.1.4";
+      version = "2.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-invite/-/ssb-invite-2.1.4.tgz";
-        sha512 = "bq4Iow4DOfsfWKE6otgD2+sWd59PcLW/WUbwZdJlukaT2m0nazPu2s8k9xX/95p+pJS7xkLyywHxMzytiKRqTg==";
+        url = "https://registry.npmjs.org/ssb-invite/-/ssb-invite-2.1.6.tgz";
+        sha512 = "cR2sMFu27K7JNAiHCJ5qsp5kihlxi0/KftJ58gFzQbC8kLQ9iLLFUVDvQMi/Qxubf6Xs37Qh49FH3RzPLGt9ag==";
       };
     };
     "ssb-issues-1.0.0" = {
@@ -41386,13 +43465,13 @@ let
         sha512 = "Z4jBj917W+dKAiDglwxCpWm8vINOMtkpHQIgk50NQTb5jHqHI5Rcyiy7EO0uRcWwRWqXi1ZwOTEFVyLyyuittA==";
       };
     };
-    "ssb-validate-4.1.1" = {
+    "ssb-validate-4.1.2" = {
       name = "ssb-validate";
       packageName = "ssb-validate";
-      version = "4.1.1";
+      version = "4.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-validate/-/ssb-validate-4.1.1.tgz";
-        sha512 = "3OsB6qTYlOMUqy4S1i0NuBtiqRW0s9z1Uf+Yqhjcqt7Zu8LTZk59HyhB1gfYmC3xzR/UnHeI7LkJZOt2+r//gA==";
+        url = "https://registry.npmjs.org/ssb-validate/-/ssb-validate-4.1.2.tgz";
+        sha512 = "dDINHOWMpKfMr/o0OlqCQouKKeqYsODHn9VDUPOpWa82vSW6bnEXmfSNXjFc7Sf7pzCDrUsYlJ81+UUr27CvsA==";
       };
     };
     "ssb-ws-6.2.3" = {
@@ -41521,6 +43600,15 @@ let
         sha1 = "e923598a9be51e617682cb21cf1b2818a449ada2";
       };
     };
+    "stack-generator-2.0.5" = {
+      name = "stack-generator";
+      packageName = "stack-generator";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.5.tgz";
+        sha512 = "/t1ebrbHkrLrDuNMdeAcsvynWgoH/i4o8EGGfX7dEYDoTXOYVAkEpFdtshlvabzc6JlJ8Kf9YdFEoz7JkzGN9Q==";
+      };
+    };
     "stack-trace-0.0.10" = {
       name = "stack-trace";
       packageName = "stack-trace";
@@ -41539,6 +43627,24 @@ let
         sha1 = "a8f6eaeca90674c333e7c43953f275b451510695";
       };
     };
+    "stack-utils-2.0.2" = {
+      name = "stack-utils";
+      packageName = "stack-utils";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.2.tgz";
+        sha512 = "0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg==";
+      };
+    };
+    "stackframe-1.2.0" = {
+      name = "stackframe";
+      packageName = "stackframe";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz";
+        sha512 = "GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==";
+      };
+    };
     "stampit-1.2.0" = {
       name = "stampit";
       packageName = "stampit";
@@ -41593,6 +43699,15 @@ let
         sha512 = "D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==";
       };
     };
+    "static-server-2.2.1" = {
+      name = "static-server";
+      packageName = "static-server";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/static-server/-/static-server-2.2.1.tgz";
+        sha512 = "j5eeW6higxYNmXMIT8iHjsdiViTpQDthg7o+SHsRtqdbxscdHqBHXwrXjHC8hL3F0Tsu34ApUpDkwzMBPBsrLw==";
+      };
+    };
     "statistics-3.3.0" = {
       name = "statistics";
       packageName = "statistics";
@@ -41602,6 +43717,15 @@ let
         sha1 = "ec7b4750ff03ab24a64dd9b357a78316bead78aa";
       };
     };
+    "statsd-client-0.4.5" = {
+      name = "statsd-client";
+      packageName = "statsd-client";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/statsd-client/-/statsd-client-0.4.5.tgz";
+        sha512 = "tmTpFMxpBcq92CTMq81d1W47GEazy76Hi+aNKvKJloMplQZe+L1jekSg95YG8ieq6j2Q9MboCaLIMdsF20+eGg==";
+      };
+    };
     "statsd-parser-0.0.4" = {
       name = "statsd-parser";
       packageName = "statsd-parser";
@@ -41683,6 +43807,15 @@ let
         sha1 = "ac8382de415d0c99a5a2b5fa0c404b174a8ed59b";
       };
     };
+    "stickyfill-1.1.1" = {
+      name = "stickyfill";
+      packageName = "stickyfill";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stickyfill/-/stickyfill-1.1.1.tgz";
+        sha1 = "39413fee9d025c74a7e59ceecb23784cc0f17f02";
+      };
+    };
     "stream-browserify-2.0.2" = {
       name = "stream-browserify";
       packageName = "stream-browserify";
@@ -41701,6 +43834,15 @@ let
         sha1 = "91d5f5130d1cef96dcfa7f726945188741d09ee4";
       };
     };
+    "stream-buffers-3.0.2" = {
+      name = "stream-buffers";
+      packageName = "stream-buffers";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz";
+        sha512 = "DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==";
+      };
+    };
     "stream-collector-1.0.1" = {
       name = "stream-collector";
       packageName = "stream-collector";
@@ -41737,15 +43879,6 @@ let
         sha1 = "fb4d8a1420ea362764e21ad4780397bebcb41cbe";
       };
     };
-    "stream-consume-0.1.1" = {
-      name = "stream-consume";
-      packageName = "stream-consume";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz";
-        sha512 = "tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==";
-      };
-    };
     "stream-counter-0.2.0" = {
       name = "stream-counter";
       packageName = "stream-counter";
@@ -41863,6 +43996,15 @@ let
         sha1 = "b1edb2e1c8cb11289d1b503c08d3f2aef51e650f";
       };
     };
+    "stream-to-promise-3.0.0" = {
+      name = "stream-to-promise";
+      packageName = "stream-to-promise";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-to-promise/-/stream-to-promise-3.0.0.tgz";
+        sha512 = "h+7wLeFiYegOdgTfTxjRsrT7/Op7grnKEIHWgaO1RTHwcwk7xRreMr3S8XpDfDMesSxzgM2V4CxNCFAGo6ssnA==";
+      };
+    };
     "stream-to-pull-stream-1.7.3" = {
       name = "stream-to-pull-stream";
       packageName = "stream-to-pull-stream";
@@ -41890,13 +44032,13 @@ let
         sha1 = "7d8e6b4e03ac4781778f8c79517501bfb0762a9f";
       };
     };
-    "stream-with-known-length-to-buffer-1.0.3" = {
+    "stream-with-known-length-to-buffer-1.0.4" = {
       name = "stream-with-known-length-to-buffer";
       packageName = "stream-with-known-length-to-buffer";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stream-with-known-length-to-buffer/-/stream-with-known-length-to-buffer-1.0.3.tgz";
-        sha512 = "4Wi2v47HMkNdRWrlFJNlIsrhV6z6nCyVKVAIiq14MAnc7wILEAINmn96IiPWTcXzT8y2S6yfBoX++MUxqiovag==";
+        url = "https://registry.npmjs.org/stream-with-known-length-to-buffer/-/stream-with-known-length-to-buffer-1.0.4.tgz";
+        sha512 = "ztP79ug6S+I7td0Nd2GBeIKCm+vA54c+e60FY87metz5n/l6ydPELd2lxsljz8OpIhsRM9HkIiAwz85+S5G5/A==";
       };
     };
     "stream.finished-1.2.0" = {
@@ -41980,13 +44122,22 @@ let
         sha512 = "78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==";
       };
     };
-    "string-kit-0.11.7" = {
+    "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.8" = {
       name = "string-kit";
       packageName = "string-kit";
-      version = "0.11.7";
+      version = "0.11.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string-kit/-/string-kit-0.11.7.tgz";
-        sha512 = "YELCRaRSTnwupnKqxqsm6xQ9EJjE23dpqg9ca6uBebfA2s601sm2dj42KPH7I50rvGf93Fz+o0mKKw81mK6Lrw==";
+        url = "https://registry.npmjs.org/string-kit/-/string-kit-0.11.8.tgz";
+        sha512 = "lJyXXoptFpgOXL9cWZXtf45jxdbP5qYtaGZsmtFm4CZy9q6wwzvRzQcJiFeLx8I/0RpzBao9WCOGpbyfW2CMWA==";
       };
     };
     "string-length-2.0.0" = {
@@ -42079,15 +44230,6 @@ let
         sha512 = "zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==";
       };
     };
-    "string.prototype.padstart-3.1.0" = {
-      name = "string.prototype.padstart";
-      packageName = "string.prototype.padstart";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.0.tgz";
-        sha512 = "envqZvUp2JItI+OeQ5UAh1ihbAV5G/2bixTojvlIa090GGqF+NQRxbWb2nv9fTGrZABv6+pE6jXoAZhhS2k4Hw==";
-      };
-    };
     "string.prototype.trim-1.2.1" = {
       name = "string.prototype.trim";
       packageName = "string.prototype.trim";
@@ -42169,13 +44311,22 @@ let
         sha512 = "fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A==";
       };
     };
-    "stringify-object-3.3.0" = {
-      name = "stringify-object";
-      packageName = "stringify-object";
-      version = "3.3.0";
+    "stringify-entities-3.0.1" = {
+      name = "stringify-entities";
+      packageName = "stringify-entities";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz";
-        sha512 = "rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==";
+        url = "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.0.1.tgz";
+        sha512 = "Lsk3ISA2++eJYqBMPKcr/8eby1I6L0gP0NlxF8Zja6c05yr/yCYyb2c9PwXjd08Ib3If1vn1rbs1H5ZtVuOfvQ==";
+      };
+    };
+    "stringify-package-1.0.1" = {
+      name = "stringify-package";
+      packageName = "stringify-package";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz";
+        sha512 = "sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==";
       };
     };
     "stringify-parameters-0.0.4" = {
@@ -42259,13 +44410,13 @@ let
         sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
       };
     };
-    "strip-bom-1.0.0" = {
-      name = "strip-bom";
-      packageName = "strip-bom";
-      version = "1.0.0";
+    "strip-ansi-control-characters-2.0.0" = {
+      name = "strip-ansi-control-characters";
+      packageName = "strip-ansi-control-characters";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz";
-        sha1 = "85b8862f3844b5a6d5ec8467a93598173a36f794";
+        url = "https://registry.npmjs.org/strip-ansi-control-characters/-/strip-ansi-control-characters-2.0.0.tgz";
+        sha512 = "Q0/k5orrVGeaOlIOUn1gybGU0IcAbgHQT1faLo5hik4DqClKVSaka5xOhNNoRgtfztHVxCYxi7j71mrWom0bIw==";
       };
     };
     "strip-bom-2.0.0" = {
@@ -42322,15 +44473,6 @@ let
         sha1 = "f87db5ef2613f6968aa545abfe1ec728b6a829ca";
       };
     };
-    "strip-bom-stream-3.0.0" = {
-      name = "strip-bom-stream";
-      packageName = "strip-bom-stream";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-3.0.0.tgz";
-        sha1 = "956bcc5d84430f69256a90ed823765cd858e159c";
-      };
-    };
     "strip-bom-stream-4.0.0" = {
       name = "strip-bom-stream";
       packageName = "strip-bom-stream";
@@ -42340,15 +44482,6 @@ let
         sha512 = "0ApK3iAkHv6WbgLICw/J4nhwHeDZsBxIIsOD+gHgZICL6SeJ0S9f/WZqemka9cjkTyMN5geId6e8U5WGFAn3cQ==";
       };
     };
-    "strip-bom-string-1.0.0" = {
-      name = "strip-bom-string";
-      packageName = "strip-bom-string";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz";
-        sha1 = "e5211e9224369fbb81d633a2f00044dc8cedad92";
-      };
-    };
     "strip-dirs-2.1.0" = {
       name = "strip-dirs";
       packageName = "strip-dirs";
@@ -42448,6 +44581,15 @@ let
         sha512 = "e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==";
       };
     };
+    "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==";
+      };
+    };
     "strip-outer-1.0.1" = {
       name = "strip-outer";
       packageName = "strip-outer";
@@ -42484,13 +44626,13 @@ let
         sha1 = "0fdedc68e91addcfcb2e6be9c262581a6e8c28aa";
       };
     };
-    "strtok3-6.0.3" = {
+    "strtok3-6.0.4" = {
       name = "strtok3";
       packageName = "strtok3";
-      version = "6.0.3";
+      version = "6.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/strtok3/-/strtok3-6.0.3.tgz";
-        sha512 = "/3RaYN9rW5WEYNHSvn081CgL4HziT027hfi5tsksbPfeWxi3BSLb8tolZDzpYU3I78/0ZqRiFpMDAqN2t4YShA==";
+        url = "https://registry.npmjs.org/strtok3/-/strtok3-6.0.4.tgz";
+        sha512 = "rqWMKwsbN9APU47bQTMEYTPcwdpKDtmf1jVhHzNW2cL1WqAxaM9iBb9t5P2fj+RV2YsErUWgQzHD5JwV0uCTEQ==";
       };
     };
     "structured-source-3.0.2" = {
@@ -42511,6 +44653,15 @@ let
         sha1 = "7958c793e47e32e07d2b5cafe5c0bf8e12e77902";
       };
     };
+    "styled-components-5.1.1" = {
+      name = "styled-components";
+      packageName = "styled-components";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/styled-components/-/styled-components-5.1.1.tgz";
+        sha512 = "1ps8ZAYu2Husx+Vz8D+MvXwEwvMwFv+hqqUwhNlDN5ybg6A+3xyW1ECrAgywhvXapNfXiz79jJyU0x22z0FFTg==";
+      };
+    };
     "stylehacks-4.0.3" = {
       name = "stylehacks";
       packageName = "stylehacks";
@@ -42565,22 +44716,13 @@ let
         sha512 = "luHn2OAMGJouOnadm6Fim6WXodQ2AWDkWjYq0rMdyEwzO5PdE4LzoXAEn9LL2snmBAlwUp1URVOTF7lZR3KU+Q==";
       };
     };
-    "stylus-0.54.7" = {
+    "stylus-0.54.8" = {
       name = "stylus";
       packageName = "stylus";
-      version = "0.54.7";
+      version = "0.54.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylus/-/stylus-0.54.7.tgz";
-        sha512 = "Yw3WMTzVwevT6ZTrLCYNHAFmanMxdylelL3hkWNgPMeTCpMwpV3nXjpOHuBXtFv7aiO2xRuQS6OoAdgkNcSNug==";
-      };
-    };
-    "stylus-lookup-3.0.2" = {
-      name = "stylus-lookup";
-      packageName = "stylus-lookup";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-3.0.2.tgz";
-        sha512 = "oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg==";
+        url = "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz";
+        sha512 = "vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==";
       };
     };
     "stylus-supremacy-2.14.5" = {
@@ -42610,13 +44752,13 @@ let
         sha512 = "cm7TQq9I8dA5LKUr+r8W7RzQlLsmTdCr6wXmjYueOoh/bQu55ODEw7GFhT42pUyoaLtO2rgmx1+8cSIjY9lR9g==";
       };
     };
-    "subscriptions-transport-ws-0.9.16" = {
+    "subscriptions-transport-ws-0.9.18" = {
       name = "subscriptions-transport-ws";
       packageName = "subscriptions-transport-ws";
-      version = "0.9.16";
+      version = "0.9.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.16.tgz";
-        sha512 = "pQdoU7nC+EpStXnCfh/+ho0zE0Z+ma+i7xvj7bkXKb1dvYHSZxgRPaU6spRP+Bjzow67c/rRDoix5RT0uU9omw==";
+        url = "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz";
+        sha512 = "tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==";
       };
     };
     "sudo-block-1.2.0" = {
@@ -42637,13 +44779,13 @@ let
         sha512 = "0znmYibLknX0bWsnqW9rzM8IvKux3rTSnW52l5teIC+QAgS/StUl5f4WyLPBw+posfbOgoX+03xHPV4sMxY64Q==";
       };
     };
-    "suf-node-1.1.1" = {
+    "suf-node-1.2.1" = {
       name = "suf-node";
       packageName = "suf-node";
-      version = "1.1.1";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/suf-node/-/suf-node-1.1.1.tgz";
-        sha512 = "XiyPqLdiHJ3CMphADCJg/JVQYcj3JfO8NomlLubSdGYgppfzE+g/7Fyusza/Kr7lC919BdwbfIqFxK8VO7+l4w==";
+        url = "https://registry.npmjs.org/suf-node/-/suf-node-1.2.1.tgz";
+        sha512 = "LFLshqEwm1bXd3fEl0STYXZzEHbAz8HwsyItA8vvxhMZrIo+CpB7RrtLvor6mk+7SdfgJhmV3RdIdDIcPAJTTg==";
       };
     };
     "suf-regex-0.0.22" = {
@@ -42754,15 +44896,6 @@ let
         sha1 = "65ac0504b3954171d8a64946b2ae3cbb8a5f54f6";
       };
     };
-    "supports-color-4.5.0" = {
-      name = "supports-color";
-      packageName = "supports-color";
-      version = "4.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz";
-        sha1 = "be7a0de484dec5c5cddf8b3d59125044912f635b";
-      };
-    };
     "supports-color-5.5.0" = {
       name = "supports-color";
       packageName = "supports-color";
@@ -42772,15 +44905,6 @@ let
         sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
       };
     };
-    "supports-color-6.0.0" = {
-      name = "supports-color";
-      packageName = "supports-color";
-      version = "6.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz";
-        sha512 = "on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==";
-      };
-    };
     "supports-color-6.1.0" = {
       name = "supports-color";
       packageName = "supports-color";
@@ -42799,6 +44923,15 @@ let
         sha512 = "oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==";
       };
     };
+    "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==";
+      };
+    };
     "supports-hyperlinks-1.0.1" = {
       name = "supports-hyperlinks";
       packageName = "supports-hyperlinks";
@@ -42925,6 +45058,15 @@ let
         sha1 = "e39fae3d581d713682491e1926cd87bf2c209bfb";
       };
     };
+    "swagger-ui-dist-3.32.5" = {
+      name = "swagger-ui-dist";
+      packageName = "swagger-ui-dist";
+      version = "3.32.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.32.5.tgz";
+        sha512 = "3SKHv8UVqsKKknivtACHbFDGcn297jkoZN2h6zAZ7b2yoaJNMaRadQpC3qFw3GobZTGzqHCgHph4ZH9NkaCjrQ==";
+      };
+    };
     "swagger2openapi-5.4.0" = {
       name = "swagger2openapi";
       packageName = "swagger2openapi";
@@ -42934,15 +45076,6 @@ let
         sha512 = "f5QqfXawiVijhjMtYqWZ55ESHPZFqrPC8L9idhIiuSX8O2qsa1i4MVGtCM3TQF+Smzr/6WfT/7zBuzG3aTgPAA==";
       };
     };
-    "swap-case-1.1.2" = {
-      name = "swap-case";
-      packageName = "swap-case";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz";
-        sha1 = "c39203a4587385fad3c850a0bd1bcafa081974e3";
-      };
-    };
     "sway-1.0.0" = {
       name = "sway";
       packageName = "sway";
@@ -43015,13 +45148,13 @@ let
         sha512 = "YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==";
       };
     };
-    "systeminformation-4.26.9" = {
+    "systeminformation-4.27.3" = {
       name = "systeminformation";
       packageName = "systeminformation";
-      version = "4.26.9";
+      version = "4.27.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-4.26.9.tgz";
-        sha512 = "69MTIX9j//wnteJzQWuGL6FiMxlfS3wTWyhROI6pNUaQALYqJb3W9VtLVcEcKFOjO1vrGRgilJVFzJeRRi//Pg==";
+        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-4.27.3.tgz";
+        sha512 = "0Nc8AYEK818h7FI+bbe/kj7xXsMD5zOHvO9alUqQH/G4MHXu5tHQfWqC/bzWOk4JtoQPhnyLgxMYncDA2eeSBw==";
       };
     };
     "syswide-cas-5.3.0" = {
@@ -43214,13 +45347,13 @@ let
         sha512 = "MNIgJddrV2TkuwChwcSNds/5E9VijOiw7kAc1y5hTNJoLDSuIyid2QtLYiCYNnICebpuvjhPQZsXwUL0O3l7OQ==";
       };
     };
-    "tar-6.0.2" = {
+    "tar-6.0.5" = {
       name = "tar";
       packageName = "tar";
-      version = "6.0.2";
+      version = "6.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz";
-        sha512 = "Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==";
+        url = "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz";
+        sha512 = "0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==";
       };
     };
     "tar-fs-2.1.0" = {
@@ -43250,13 +45383,13 @@ let
         sha512 = "rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==";
       };
     };
-    "tar-stream-2.1.2" = {
+    "tar-stream-2.1.3" = {
       name = "tar-stream";
       packageName = "tar-stream";
-      version = "2.1.2";
+      version = "2.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz";
-        sha512 = "UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==";
+        url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.3.tgz";
+        sha512 = "Z9yri56Dih8IaK8gncVPx4Wqt86NDmQTSh49XLZgjWpGZL9GK9HKParS2scqHCC4w6X9Gh2jwaU45V47XTKwVA==";
       };
     };
     "taskkill-3.1.0" = {
@@ -43394,6 +45527,15 @@ let
         sha512 = "LB83o9bfZGrntdqPuRdanIVCPReam9SOZKW0fOy5I9X3A854GGWi0tjCqoXEk84XIEYBc/x9Hq3EFop/H5wJaw==";
       };
     };
+    "tempy-0.3.0" = {
+      name = "tempy";
+      packageName = "tempy";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz";
+        sha512 = "WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==";
+      };
+    };
     "term-canvas-0.0.5" = {
       name = "term-canvas";
       packageName = "term-canvas";
@@ -43421,13 +45563,13 @@ let
         sha512 = "a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==";
       };
     };
-    "terminal-kit-1.35.8" = {
+    "terminal-kit-1.43.0" = {
       name = "terminal-kit";
       packageName = "terminal-kit";
-      version = "1.35.8";
+      version = "1.43.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terminal-kit/-/terminal-kit-1.35.8.tgz";
-        sha512 = "/IGjDgbStqJWgbYhNwgmollwYqGNkDmamYLVnoWwaFYnpyEg3tKHRt3XMKuOAJy5k82q9r18dqngsQqL3g/zRw==";
+        url = "https://registry.npmjs.org/terminal-kit/-/terminal-kit-1.43.0.tgz";
+        sha512 = "OuPvQzx6oxr3oE2Y78NgRy0TetmurGa/vshYV02Kd6XDWctHO/sHpjnLe3Jhi8FrUkL0XAZMGlxjLeDtRFL4wg==";
       };
     };
     "terser-3.17.0" = {
@@ -43448,13 +45590,13 @@ let
         sha512 = "EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==";
       };
     };
-    "terser-webpack-plugin-1.4.4" = {
+    "terser-webpack-plugin-1.4.5" = {
       name = "terser-webpack-plugin";
       packageName = "terser-webpack-plugin";
-      version = "1.4.4";
+      version = "1.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz";
-        sha512 = "U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==";
+        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz";
+        sha512 = "04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==";
       };
     };
     "test-exclude-6.0.0" = {
@@ -43646,15 +45788,6 @@ let
         sha1 = "f41a1c31df5e129e4314446f66eca05cd6a30480";
       };
     };
-    "through2-2.0.3" = {
-      name = "through2";
-      packageName = "through2";
-      version = "2.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz";
-        sha1 = "0004569b37c7c74ba39c43f3ced78d1ad94140be";
-      };
-    };
     "through2-2.0.5" = {
       name = "through2";
       packageName = "through2";
@@ -43682,6 +45815,15 @@ let
         sha512 = "jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==";
       };
     };
+    "through2-map-3.0.0" = {
+      name = "through2-map";
+      packageName = "through2-map";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through2-map/-/through2-map-3.0.0.tgz";
+        sha1 = "a6c3026ce63b4898a997d540506b66ffd970f271";
+      };
+    };
     "thunkify-2.1.2" = {
       name = "thunkify";
       packageName = "thunkify";
@@ -43745,6 +45887,15 @@ let
         sha1 = "764a5a11af50561921b133f3b44e618687e0f5c3";
       };
     };
+    "time-zone-1.0.0" = {
+      name = "time-zone";
+      packageName = "time-zone";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz";
+        sha1 = "99c5bf55958966af6d06d83bdf3800dc82faec5d";
+      };
+    };
     "timed-out-4.0.1" = {
       name = "timed-out";
       packageName = "timed-out";
@@ -43826,15 +45977,6 @@ let
         sha1 = "320b5a52d83abb5978d81a3e887d4aefb15a6164";
       };
     };
-    "title-case-2.1.1" = {
-      name = "title-case";
-      packageName = "title-case";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz";
-        sha1 = "3e127216da58d2bc5becf137ab91dae3a7cd8faa";
-      };
-    };
     "titleize-1.0.1" = {
       name = "titleize";
       packageName = "titleize";
@@ -43862,13 +46004,13 @@ let
         sha512 = "W/YVH/QczLUxVjnQhFC61Iq232NWu3TqDdO0S/MtXVz4xybejBov4ud+CIwN9aYqjOecEqIy0PscGkwpG9ZyTw==";
       };
     };
-    "tlds-1.207.0" = {
+    "tlds-1.208.0" = {
       name = "tlds";
       packageName = "tlds";
-      version = "1.207.0";
+      version = "1.208.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tlds/-/tlds-1.207.0.tgz";
-        sha512 = "k7d7Q1LqjtAvhtEOs3yN14EabsNO8ZCoY6RESSJDB9lst3bTx3as/m1UuAeCKzYxiyhR1qq72ZPhpSf+qlqiwg==";
+        url = "https://registry.npmjs.org/tlds/-/tlds-1.208.0.tgz";
+        sha512 = "6kbY7GJpRQXwBddSOAbVUZXjObbCGFXliWWN+kOSEoRWIOyRWLB6zdeKC/Tguwwenl/KsUx016XR50EdHYsxZw==";
       };
     };
     "tmp-0.0.29" = {
@@ -43907,6 +46049,15 @@ let
         sha512 = "J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==";
       };
     };
+    "tmp-0.2.0" = {
+      name = "tmp";
+      packageName = "tmp";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tmp/-/tmp-0.2.0.tgz";
+        sha512 = "spsb5g6EiPmteS5TcOAECU3rltCMDMp4VMU2Sb0+WttN4qGobEkMAd+dkr1cubscN08JGNDX765dPbGImbG7MQ==";
+      };
+    };
     "tmp-0.2.1" = {
       name = "tmp";
       packageName = "tmp";
@@ -44105,15 +46256,6 @@ let
         sha1 = "88defecd43adb2ef598625f0e3d59f7f342941ba";
       };
     };
-    "to-vfile-2.2.0" = {
-      name = "to-vfile";
-      packageName = "to-vfile";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/to-vfile/-/to-vfile-2.2.0.tgz";
-        sha512 = "saGC8/lWdGrEoBMLUtgzhRHWAkQMP8gdldA3MOAUhBwTGEb1RSMVcflHGSx4ZJsdEZ9o1qDBCPp47LCPrbZWow==";
-      };
-    };
     "to-vfile-4.0.0" = {
       name = "to-vfile";
       packageName = "to-vfile";
@@ -44186,6 +46328,15 @@ let
         sha512 = "y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==";
       };
     };
+    "tomlify-j0.4-3.0.0" = {
+      name = "tomlify-j0.4";
+      packageName = "tomlify-j0.4";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tomlify-j0.4/-/tomlify-j0.4-3.0.0.tgz";
+        sha512 = "2Ulkc8T7mXJ2l0W476YC/A209PR38Nw8PuaCNtk9uI3t1zzFdGQeWYGQvmj2PZkVvRC/Yoi4xQKMRnWc/N29tQ==";
+      };
+    };
     "too-wordy-0.1.6" = {
       name = "too-wordy";
       packageName = "too-wordy";
@@ -44357,6 +46508,15 @@ let
         sha1 = "8a7e8ab3044ad19f233f50c15894cbf69e5d205e";
       };
     };
+    "traverse-0.3.9" = {
+      name = "traverse";
+      packageName = "traverse";
+      version = "0.3.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz";
+        sha1 = "717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9";
+      };
+    };
     "traverse-0.4.6" = {
       name = "traverse";
       packageName = "traverse";
@@ -44375,15 +46535,6 @@ let
         sha1 = "cbdf560fd7b9af632502fed40f918c157ea97137";
       };
     };
-    "traverse-chain-0.1.0" = {
-      name = "traverse-chain";
-      packageName = "traverse-chain";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/traverse-chain/-/traverse-chain-0.1.0.tgz";
-        sha1 = "61dbc2d53b69ff6091a12a168fd7d433107e40f1";
-      };
-    };
     "tree-kill-1.2.2" = {
       name = "tree-kill";
       packageName = "tree-kill";
@@ -44546,6 +46697,15 @@ let
         sha512 = "uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==";
       };
     };
+    "ts-log-2.1.4" = {
+      name = "ts-log";
+      packageName = "ts-log";
+      version = "2.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ts-log/-/ts-log-2.1.4.tgz";
+        sha512 = "P1EJSoyV+N3bR/IWFeAqXzKPZwHpnLY6j7j58mAvewHRipo+BQM2Y1f9Y9BjEQznKwgqqZm7H8iuixmssU7tYQ==";
+      };
+    };
     "ts-node-8.10.2" = {
       name = "ts-node";
       packageName = "ts-node";
@@ -44573,13 +46733,13 @@ let
         sha512 = "dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==";
       };
     };
-    "tsconfig-paths-webpack-plugin-3.2.0" = {
+    "tsconfig-paths-webpack-plugin-3.3.0" = {
       name = "tsconfig-paths-webpack-plugin";
       packageName = "tsconfig-paths-webpack-plugin";
-      version = "3.2.0";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.2.0.tgz";
-        sha512 = "S/gOOPOkV8rIL4LurZ1vUdYCVgo15iX9ZMJ6wx6w2OgcpT/G4wMyHB6WM+xheSqGMrWKuxFul+aXpCju3wmj/g==";
+        url = "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.3.0.tgz";
+        sha512 = "MpQeZpwPY4gYASCUjY4yt2Zj8yv86O8f++3Ai4o0yI0fUC6G1syvnL9VuY71PBgimRYDQU47f12BEmJq9wRaSw==";
       };
     };
     "tslib-1.11.1" = {
@@ -44591,15 +46751,6 @@ let
         sha512 = "aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==";
       };
     };
-    "tslib-1.11.2" = {
-      name = "tslib";
-      packageName = "tslib";
-      version = "1.11.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz";
-        sha512 = "tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==";
-      };
-    };
     "tslib-1.13.0" = {
       name = "tslib";
       packageName = "tslib";
@@ -44609,22 +46760,13 @@ let
         sha512 = "i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==";
       };
     };
-    "tslib-1.9.3" = {
-      name = "tslib";
-      packageName = "tslib";
-      version = "1.9.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz";
-        sha512 = "4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==";
-      };
-    };
-    "tslib-2.0.0" = {
+    "tslib-2.0.1" = {
       name = "tslib";
       packageName = "tslib";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz";
-        sha512 = "lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==";
+        url = "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz";
+        sha512 = "SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==";
       };
     };
     "tslint-5.20.1" = {
@@ -44672,13 +46814,13 @@ let
         sha512 = "X68badwBjAy/+itU49scLjXUL094up+rHuYk+YAOTTBYSUMOmLZ7VyhZJuqQESj1gnyLAC2/5V8Euv+mExmyPA==";
       };
     };
-    "ttf2woff2-2.0.3" = {
+    "ttf2woff2-3.0.0" = {
       name = "ttf2woff2";
       packageName = "ttf2woff2";
-      version = "2.0.3";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ttf2woff2/-/ttf2woff2-2.0.3.tgz";
-        sha1 = "5e020afe6e643287f3ad7687abed20fe654eb329";
+        url = "https://registry.npmjs.org/ttf2woff2/-/ttf2woff2-3.0.0.tgz";
+        sha512 = "5/Web6B0lF/STNAQ0d5vAlRRquuWsNj8wOmKQ9ql9Bsgbx8MsLnNzaBG9vBcSE4s4Ry1QOr/MyUrDUIVgVPEfw==";
       };
     };
     "ttl-1.3.1" = {
@@ -44717,6 +46859,15 @@ let
         sha512 = "C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==";
       };
     };
+    "tumblr-0.4.1" = {
+      name = "tumblr";
+      packageName = "tumblr";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tumblr/-/tumblr-0.4.1.tgz";
+        sha1 = "ac9f4ba7bd04525d6bd8b087f85553c8ef19dc9e";
+      };
+    };
     "tunnel-0.0.4" = {
       name = "tunnel";
       packageName = "tunnel";
@@ -44789,13 +46940,22 @@ let
         sha1 = "b75bc2df15649bb84e8b9aa3c0669c6c4bce0d25";
       };
     };
-    "twig-1.15.1" = {
+    "twig-1.15.2" = {
       name = "twig";
       packageName = "twig";
-      version = "1.15.1";
+      version = "1.15.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/twig/-/twig-1.15.2.tgz";
+        sha512 = "n7w76E8gzguhcLyKcjlT3sYWGdBTgZY2DO/frcbZ5Fk7LwMRoTathvWMFxZyJ2HYRJ+rEzccw6nu3fsy7ceGGQ==";
+      };
+    };
+    "twitter-1.7.1" = {
+      name = "twitter";
+      packageName = "twitter";
+      version = "1.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/twig/-/twig-1.15.1.tgz";
-        sha512 = "SPGkUM0p7hjgo+y5Dlm/XCSuZe0G3kfcgRPrxkMFln5e8bvQbxDOsia8QEo8xqXfjLR1Emp9FGkVYHya2b8qdA==";
+        url = "https://registry.npmjs.org/twitter/-/twitter-1.7.1.tgz";
+        sha1 = "0762378f1dc1c050e48f666aca904e24b1a962f4";
       };
     };
     "txt-to-ast-3.0.3" = {
@@ -44816,13 +46976,13 @@ let
         sha512 = "+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==";
       };
     };
-    "type-2.0.0" = {
+    "type-2.1.0" = {
       name = "type";
       packageName = "type";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/type/-/type-2.0.0.tgz";
-        sha512 = "KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==";
+        url = "https://registry.npmjs.org/type/-/type-2.1.0.tgz";
+        sha512 = "G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==";
       };
     };
     "type-check-0.3.2" = {
@@ -44852,22 +47012,22 @@ let
         sha512 = "0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==";
       };
     };
-    "type-fest-0.10.0" = {
+    "type-fest-0.11.0" = {
       name = "type-fest";
       packageName = "type-fest";
-      version = "0.10.0";
+      version = "0.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz";
-        sha512 = "EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==";
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz";
+        sha512 = "OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==";
       };
     };
-    "type-fest-0.11.0" = {
+    "type-fest-0.12.0" = {
       name = "type-fest";
       packageName = "type-fest";
-      version = "0.11.0";
+      version = "0.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz";
-        sha512 = "OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==";
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz";
+        sha512 = "53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==";
       };
     };
     "type-fest-0.13.1" = {
@@ -44879,6 +47039,15 @@ let
         sha512 = "34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==";
       };
     };
+    "type-fest-0.15.1" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.15.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.15.1.tgz";
+        sha512 = "n+UXrN8i5ioo7kqT/nF8xsEzLaqFra7k32SEsSPwvXVGyAcRgV/FUQN/sgfptJTR1oRmmq7z4IXMFSM7im7C9A==";
+      };
+    };
     "type-fest-0.3.1" = {
       name = "type-fest";
       packageName = "type-fest";
@@ -44915,15 +47084,6 @@ let
         sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
       };
     };
-    "typed-function-1.1.0" = {
-      name = "typed-function";
-      packageName = "typed-function";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/typed-function/-/typed-function-1.1.0.tgz";
-        sha512 = "TuQzwiT4DDg19beHam3E66oRXhyqlyfgjHB/5fcvsRXbfmWPJfto9B4a0TBdTrQAPGlGmXh/k7iUI+WsObgORA==";
-      };
-    };
     "typed-rest-client-1.2.0" = {
       name = "typed-rest-client";
       packageName = "typed-rest-client";
@@ -44969,13 +47129,13 @@ let
         sha512 = "kk80vLW9iGtjMnIv11qyxLqZm20UklzuR2tL0QAnDIygIUIemcZMxlMWudl9OOt76H3ntVzcTiddQ1/pAAJMYg==";
       };
     };
-    "typescript-3.9.5" = {
+    "typescript-3.9.7" = {
       name = "typescript";
       packageName = "typescript";
-      version = "3.9.5";
+      version = "3.9.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz";
-        sha512 = "hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz";
+        sha512 = "BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==";
       };
     };
     "typescript-eslint-parser-16.0.1" = {
@@ -45005,24 +47165,6 @@ let
         sha512 = "CQEfGC+p0SoBARI4N2LrGsWJsp4/OE+uKZ68xsWYKHWqMFq4DFQHqOVlK0deEricSN01NmDTqjap63Pw/DHieg==";
       };
     };
-    "typewise-1.0.3" = {
-      name = "typewise";
-      packageName = "typewise";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz";
-        sha1 = "1067936540af97937cc5dcf9922486e9fa284651";
-      };
-    };
-    "typewise-core-1.2.0" = {
-      name = "typewise-core";
-      packageName = "typewise-core";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz";
-        sha1 = "97eb91805c7f55d2f941748fa50d315d991ef195";
-      };
-    };
     "typewiselite-1.0.0" = {
       name = "typewiselite";
       packageName = "typewiselite";
@@ -45041,13 +47183,13 @@ let
         sha1 = "5c080e5d661cbbe38259d2e70a3c7253e873881d";
       };
     };
-    "typo-geom-0.5.1" = {
+    "typo-geom-0.8.4" = {
       name = "typo-geom";
       packageName = "typo-geom";
-      version = "0.5.1";
+      version = "0.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typo-geom/-/typo-geom-0.5.1.tgz";
-        sha512 = "nj81m0eqRMpK6NcwkGlT9r3CbwjCQhsFU6SBUuYW9TDveqIdi/QUFGkikoImtE1C6OzY2LvuVMSG8rx/ZTCGtQ==";
+        url = "https://registry.npmjs.org/typo-geom/-/typo-geom-0.8.4.tgz";
+        sha512 = "n0P1RQidLnjLI2iSUDENiugkABaR+tr/kSIpl040XLKmrfsBZ/weS1OvQ9Mq98CsJlcJDemKdPqldoyYSsVgmQ==";
       };
     };
     "ua-parser-js-0.7.21" = {
@@ -45086,22 +47228,22 @@ let
         sha512 = "Esj5HG5WAyrLIdYU74Z3JdG2PxdIusvj6IWHMtlyESxc7kcDz7zYlYjpnSokn1UbpV0d/QX9fan7gkCNd/9BQA==";
       };
     };
-    "uglify-js-3.4.10" = {
+    "uglify-js-3.10.3" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.4.10";
+      version = "3.10.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz";
-        sha512 = "Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.3.tgz";
+        sha512 = "Lh00i69Uf6G74mvYpHCI9KVVXLcHW/xu79YTvH7Mkc9zyKUeSPz0owW0dguj0Scavns3ZOh3wY63J0Zb97Za2g==";
       };
     };
-    "uglify-js-3.8.1" = {
+    "uglify-js-3.4.10" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.8.1";
+      version = "3.4.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.8.1.tgz";
-        sha512 = "W7KxyzeaQmZvUFbGj4+YFshhVrMBGSg2IbcYAjGWGvx8DHvJMclbTDMpffdxFUGPBHjIytk7KJUR/KUXstUGDw==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz";
+        sha512 = "Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==";
       };
     };
     "uglify-to-browserify-1.0.2" = {
@@ -45266,6 +47408,15 @@ let
         sha512 = "N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==";
       };
     };
+    "underscore-1.11.0" = {
+      name = "underscore";
+      packageName = "underscore";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/underscore/-/underscore-1.11.0.tgz";
+        sha512 = "xY96SsN3NA461qIRKZ/+qox37YXPtSBswMGfiNptr+wrt6ds4HaMw23TP612fEyGekRE6LNRiLYr/aqbHXNedw==";
+      };
+    };
     "underscore-1.2.1" = {
       name = "underscore";
       packageName = "underscore";
@@ -45320,13 +47471,13 @@ let
         sha1 = "71c08bf6b428b1133f37e78fa3a21c82f7329b0d";
       };
     };
-    "undertaker-1.2.1" = {
+    "undertaker-1.3.0" = {
       name = "undertaker";
       packageName = "undertaker";
-      version = "1.2.1";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz";
-        sha512 = "71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==";
+        url = "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz";
+        sha512 = "/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==";
       };
     };
     "undertaker-registry-1.0.1" = {
@@ -45347,6 +47498,15 @@ let
         sha512 = "Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==";
       };
     };
+    "unicode-13.0.0-0.8.0" = {
+      name = "unicode-13.0.0";
+      packageName = "unicode-13.0.0";
+      version = "0.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-13.0.0/-/unicode-13.0.0-0.8.0.tgz";
+        sha512 = "Ekct2eo5hBIp/29ERCj1ABIBNnrFOAisNHFv8l2KksHJg4PurIN/nGPFItaIpBJHVzlBYuJaVx/bAvmJnFFL/w==";
+      };
+    };
     "unicode-canonical-property-names-ecmascript-1.0.4" = {
       name = "unicode-canonical-property-names-ecmascript";
       packageName = "unicode-canonical-property-names-ecmascript";
@@ -45401,6 +47561,15 @@ let
         sha1 = "d671dddd89101a08bac37b6a5161010602052085";
       };
     };
+    "unicoderegexp-0.4.1" = {
+      name = "unicoderegexp";
+      packageName = "unicoderegexp";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicoderegexp/-/unicoderegexp-0.4.1.tgz";
+        sha1 = "afb10e4ef1eeddc711417bbb652bc885da9d4171";
+      };
+    };
     "unified-2.1.4" = {
       name = "unified";
       packageName = "unified";
@@ -45437,22 +47606,22 @@ let
         sha512 = "lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==";
       };
     };
-    "unified-diff-1.0.2" = {
-      name = "unified-diff";
-      packageName = "unified-diff";
-      version = "1.0.2";
+    "unified-9.2.0" = {
+      name = "unified";
+      packageName = "unified";
+      version = "9.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unified-diff/-/unified-diff-1.0.2.tgz";
-        sha1 = "920b33da9abae087dd444904372e7c3fbd367d85";
+        url = "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz";
+        sha512 = "vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==";
       };
     };
-    "unified-engine-4.0.1" = {
-      name = "unified-engine";
-      packageName = "unified-engine";
-      version = "4.0.1";
+    "unified-diff-3.0.1" = {
+      name = "unified-diff";
+      packageName = "unified-diff";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unified-engine/-/unified-engine-4.0.1.tgz";
-        sha1 = "9692aa97fd5c4ec36889779e12514bef8e863fc3";
+        url = "https://registry.npmjs.org/unified-diff/-/unified-diff-3.0.1.tgz";
+        sha512 = "oDngdkrYYNRUYi19GqyvWNZmOGGsdu1GEOKYy+6iXGphvaoDDidVj3frOC7SumQ2SCWixaHELiXQe7fwcLrMAA==";
       };
     };
     "unified-engine-6.0.1" = {
@@ -45464,13 +47633,22 @@ let
         sha512 = "iDJYH82TgcezQA4IZzhCNJQx7vBsGk4h9s4Q7Fscrb3qcPsxBqVrVNYez2W3sBVTxuU1bFAhyRpA6ba/R4j93A==";
       };
     };
-    "unified-message-control-1.0.4" = {
+    "unified-engine-8.0.0" = {
+      name = "unified-engine";
+      packageName = "unified-engine";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unified-engine/-/unified-engine-8.0.0.tgz";
+        sha512 = "vLUezxCnjzz+ya4pYouRQVMT8k82Rk4fIj406UidRnSFJdGXFaQyQklAnalsQHJrLqAlaYPkXPUa1upfVSHGCA==";
+      };
+    };
+    "unified-message-control-3.0.1" = {
       name = "unified-message-control";
       packageName = "unified-message-control";
-      version = "1.0.4";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unified-message-control/-/unified-message-control-1.0.4.tgz";
-        sha512 = "e1dEtN4Z/TvLn/qHm+xeZpzqhJTtfZusFErk336kkZVpqrJYiV9ptxq+SbRPFMlN0OkjDYHmVJ929KYjsMTo3g==";
+        url = "https://registry.npmjs.org/unified-message-control/-/unified-message-control-3.0.1.tgz";
+        sha512 = "K2Kvvp1DBzeuxYLLsumZh/gDWUTl4e2z/P3VReFirC78cfHKtQifbhnfRrSBtKtd1Uc6cvYTW0/SZIUaMAEcTg==";
       };
     };
     "union-0.5.0" = {
@@ -45536,15 +47714,6 @@ let
         sha512 = "zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==";
       };
     };
-    "unique-stream-1.0.0" = {
-      name = "unique-stream";
-      packageName = "unique-stream";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz";
-        sha1 = "d59a4a75427447d9aa6c91e70263f8d26a4b104b";
-      };
-    };
     "unique-stream-2.3.1" = {
       name = "unique-stream";
       packageName = "unique-stream";
@@ -45608,6 +47777,15 @@ let
         sha512 = "7xxyvKiZ1SC9vL5qrMqKub1T31gRHfau4242F69CcaOrXt//5PmRVOmDZ36UAEgiT+tZWzmQmbNZn+mVtnR9HQ==";
       };
     };
+    "unist-util-inspect-5.0.1" = {
+      name = "unist-util-inspect";
+      packageName = "unist-util-inspect";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-5.0.1.tgz";
+        sha512 = "fPNWewS593JSmg49HbnE86BJKuBi1/nMWhDSccBvbARfxezEuJV85EaARR9/VplveiwCoLm2kWq+DhP8TBaDpw==";
+      };
+    };
     "unist-util-is-1.0.0" = {
       name = "unist-util-is";
       packageName = "unist-util-is";
@@ -45635,6 +47813,15 @@ let
         sha512 = "sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==";
       };
     };
+    "unist-util-is-4.0.2" = {
+      name = "unist-util-is";
+      packageName = "unist-util-is";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz";
+        sha512 = "Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==";
+      };
+    };
     "unist-util-map-1.0.5" = {
       name = "unist-util-map";
       packageName = "unist-util-map";
@@ -45671,6 +47858,15 @@ let
         sha512 = "tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==";
       };
     };
+    "unist-util-remove-position-2.0.1" = {
+      name = "unist-util-remove-position";
+      packageName = "unist-util-remove-position";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz";
+        sha512 = "fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==";
+      };
+    };
     "unist-util-stringify-position-1.1.2" = {
       name = "unist-util-stringify-position";
       packageName = "unist-util-stringify-position";
@@ -45698,6 +47894,15 @@ let
         sha512 = "AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==";
       };
     };
+    "unist-util-visit-2.0.3" = {
+      name = "unist-util-visit";
+      packageName = "unist-util-visit";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz";
+        sha512 = "iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==";
+      };
+    };
     "unist-util-visit-children-1.1.4" = {
       name = "unist-util-visit-children";
       packageName = "unist-util-visit-children";
@@ -45716,13 +47921,22 @@ let
         sha512 = "DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==";
       };
     };
-    "universal-analytics-0.4.20" = {
+    "unist-util-visit-parents-3.1.0" = {
+      name = "unist-util-visit-parents";
+      packageName = "unist-util-visit-parents";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz";
+        sha512 = "0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw==";
+      };
+    };
+    "universal-analytics-0.4.23" = {
       name = "universal-analytics";
       packageName = "universal-analytics";
-      version = "0.4.20";
+      version = "0.4.23";
       src = fetchurl {
-        url = "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.20.tgz";
-        sha512 = "gE91dtMvNkjO+kWsPstHRtSwHXz0l2axqptGYp5ceg4MsuurloM0PU3pdOfpb5zBXUvyjT4PwhWK2m39uczZuw==";
+        url = "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz";
+        sha512 = "lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==";
       };
     };
     "universal-user-agent-4.0.1" = {
@@ -45734,13 +47948,13 @@ let
         sha512 = "LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg==";
       };
     };
-    "universal-user-agent-5.0.0" = {
+    "universal-user-agent-6.0.0" = {
       name = "universal-user-agent";
       packageName = "universal-user-agent";
-      version = "5.0.0";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-5.0.0.tgz";
-        sha512 = "B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q==";
+        url = "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz";
+        sha512 = "isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==";
       };
     };
     "universalify-0.1.2" = {
@@ -45941,22 +48155,22 @@ let
         sha512 = "grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==";
       };
     };
-    "update-notifier-4.0.0" = {
+    "update-notifier-4.1.0" = {
       name = "update-notifier";
       packageName = "update-notifier";
-      version = "4.0.0";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/update-notifier/-/update-notifier-4.0.0.tgz";
-        sha512 = "p9zf71hWt5GVXM4iEBujpUgx8mK9AWiCCapEJm/O1z5ntCim83Z1ATqzZFBHFYqx03laMqv8LiDgs/7ikXjf/g==";
+        url = "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz";
+        sha512 = "w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==";
       };
     };
-    "update-notifier-4.1.0" = {
+    "update-notifier-4.1.1" = {
       name = "update-notifier";
       packageName = "update-notifier";
-      version = "4.1.0";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz";
-        sha512 = "w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==";
+        url = "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.1.tgz";
+        sha512 = "9y+Kds0+LoLG6yN802wVXoIfxYEwh3FlZwzMwpCZp62S2i1/Jzeqb9Eeeju3NSHccGGasfGlK5/vEHbAifYRDg==";
       };
     };
     "upnp-device-client-1.0.2" = {
@@ -45986,13 +48200,22 @@ let
         sha1 = "f6b4501c2ec4cdd26ba78be7222961de77621598";
       };
     };
-    "upper-case-first-1.1.2" = {
+    "upper-case-2.0.1" = {
+      name = "upper-case";
+      packageName = "upper-case";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/upper-case/-/upper-case-2.0.1.tgz";
+        sha512 = "laAsbea9SY5osxrv7S99vH9xAaJKrw5Qpdh4ENRLcaxipjKsiaBwiAsxfa8X5mObKNTQPsupSq0J/VIxsSJe3A==";
+      };
+    };
+    "upper-case-first-2.0.1" = {
       name = "upper-case-first";
       packageName = "upper-case-first";
-      version = "1.1.2";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz";
-        sha1 = "5d79bedcff14419518fd2edb0a0507c9b6859115";
+        url = "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.1.tgz";
+        sha512 = "105J8XqQ+9RxW3l9gHZtgve5oaiR9TIwvmZAMAIZWRHe00T21cdvewKORTlOJf/zXW6VukuTshM+HXZNWz7N5w==";
       };
     };
     "uri-js-3.0.2" = {
@@ -46004,13 +48227,13 @@ let
         sha1 = "f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa";
       };
     };
-    "uri-js-4.2.2" = {
+    "uri-js-4.4.0" = {
       name = "uri-js";
       packageName = "uri-js";
-      version = "4.2.2";
+      version = "4.4.0";
       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.0.tgz";
+        sha512 = "B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==";
       };
     };
     "urijs-1.19.2" = {
@@ -46148,15 +48371,6 @@ let
         sha512 = "cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==";
       };
     };
-    "user-home-1.1.1" = {
-      name = "user-home";
-      packageName = "user-home";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz";
-        sha1 = "2b5be23a32b63a7c9deb8d0f28d485724a3df190";
-      };
-    };
     "user-home-2.0.0" = {
       name = "user-home";
       packageName = "user-home";
@@ -46175,13 +48389,13 @@ let
         sha1 = "b9a22f0914e0a86140633dacc302e5f4fa450677";
       };
     };
-    "ut_metadata-3.5.0" = {
+    "ut_metadata-3.5.1" = {
       name = "ut_metadata";
       packageName = "ut_metadata";
-      version = "3.5.0";
+      version = "3.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ut_metadata/-/ut_metadata-3.5.0.tgz";
-        sha512 = "eqiRaDYiDl94uVB9oR8Yor+xl0rSKUovsqDxMt+hXzJt1yLYAo0HksVLlSiPPwkXBGFpERQADPanCi0EGhixnw==";
+        url = "https://registry.npmjs.org/ut_metadata/-/ut_metadata-3.5.1.tgz";
+        sha512 = "D98YM9dKGHzNFUuqLHLV1vXqbHNfyvTx/rADtvF9P6D1HYV/0JuArlpnQIHhOuWXQGUVyR5XJGRVLKbeNu0o5A==";
       };
     };
     "ut_pex-2.0.0" = {
@@ -46355,13 +48569,13 @@ let
         sha512 = "vRAKaS8WcYNgzbxyH2LdheqgL4sQLis8LXl7r/mN+O4mpWlUpoCsTtietxepLrft2q0TFA2gaIvSWN1iRkzW/w==";
       };
     };
-    "utp-native-2.2.0" = {
+    "utp-native-2.2.1" = {
       name = "utp-native";
       packageName = "utp-native";
-      version = "2.2.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/utp-native/-/utp-native-2.2.0.tgz";
-        sha512 = "Yx7O/vbgBNnsqEdIrVzST/cF8Tj/JaLUeQEdRbCSKDpSnHEf+kioD0Xspau2OAI/jkZaAxc67/HqLc03Ykf4mQ==";
+        url = "https://registry.npmjs.org/utp-native/-/utp-native-2.2.1.tgz";
+        sha512 = "7GvD4gjGyL1GaNtZAaBVHn8SeWgx9/xIVE1LufMR0m2pWUs1EVx5WiOCXrCHyt7e15+5SquBMoQfj888pJySxA==";
       };
     };
     "uuid-3.3.2" = {
@@ -46391,40 +48605,13 @@ let
         sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
       };
     };
-    "uuid-7.0.1" = {
-      name = "uuid";
-      packageName = "uuid";
-      version = "7.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-7.0.1.tgz";
-        sha512 = "yqjRXZzSJm9Dbl84H2VDHpM3zMjzSJQ+hn6C4zqd5ilW+7P4ZmLEEqwho9LjP+tGuZlF4xrHQXT0h9QZUS/pWA==";
-      };
-    };
-    "uuid-7.0.3" = {
-      name = "uuid";
-      packageName = "uuid";
-      version = "7.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz";
-        sha512 = "DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==";
-      };
-    };
-    "uuid-8.1.0" = {
-      name = "uuid";
-      packageName = "uuid";
-      version = "8.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz";
-        sha512 = "CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==";
-      };
-    };
-    "uuid-8.2.0" = {
+    "uuid-8.3.0" = {
       name = "uuid";
       packageName = "uuid";
-      version = "8.2.0";
+      version = "8.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-8.2.0.tgz";
-        sha512 = "CYpGiFTUrmI6OBMkAdjSDM0k5h8SkkiTP4WAjQgDgNB1S3Ou9VBEvr6q0Kv2H1mMk7IWfxYGpMH5sd5AvcIV2Q==";
+        url = "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz";
+        sha512 = "fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==";
       };
     };
     "v8-compile-cache-2.1.1" = {
@@ -46454,15 +48641,6 @@ let
         sha1 = "e8381cbebb5b5fd0ca8d2b09f6a0181a158db34d";
       };
     };
-    "v8flags-2.1.1" = {
-      name = "v8flags";
-      packageName = "v8flags";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz";
-        sha1 = "aab1a1fa30d45f88dd321148875ac02c0b55e5b4";
-      };
-    };
     "v8flags-3.1.3" = {
       name = "v8flags";
       packageName = "v8flags";
@@ -46652,13 +48830,13 @@ let
         sha512 = "/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==";
       };
     };
-    "verda-1.1.0" = {
+    "verda-1.1.1" = {
       name = "verda";
       packageName = "verda";
-      version = "1.1.0";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/verda/-/verda-1.1.0.tgz";
-        sha512 = "6f3bwfXNkjDivAsPFIfCXtCstEh08Q15C6aGnF9wRNfaYhJCXuHRLh39V3b+vjCvvLOeFZ/MeBDZVx81f6dktg==";
+        url = "https://registry.npmjs.org/verda/-/verda-1.1.1.tgz";
+        sha512 = "8nki9HjTh39EFuIYY2snCCdIDU0z4LmFN7tQ9oZByW2AQpPYpWDHwRqewWgUt9PVcDsXDSZbJWSuJwGnyAj8gg==";
       };
     };
     "verror-1.1.0" = {
@@ -46733,13 +48911,13 @@ let
         sha512 = "y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==";
       };
     };
-    "vfile-4.1.1" = {
+    "vfile-4.2.0" = {
       name = "vfile";
       packageName = "vfile";
-      version = "4.1.1";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vfile/-/vfile-4.1.1.tgz";
-        sha512 = "lRjkpyDGjVlBA7cDQhQ+gNcvB1BGaTHYuSOcY3S7OhDmBtnzX95FhtZZDecSTDm6aajFymyve6S5DN4ZHGezdQ==";
+        url = "https://registry.npmjs.org/vfile/-/vfile-4.2.0.tgz";
+        sha512 = "a/alcwCvtuc8OX92rqqo7PflxiCgXRFjdyoGVuYV+qbgCb0GgZJRvIgCD4+U/Kl1yhaRsaTwksF88xbPyGsgpw==";
       };
     };
     "vfile-find-down-1.0.0" = {
@@ -46760,13 +48938,13 @@ let
         sha1 = "5604da6fe453b34350637984eb5fe4909e280390";
       };
     };
-    "vfile-find-up-2.0.2" = {
+    "vfile-find-up-5.0.1" = {
       name = "vfile-find-up";
       packageName = "vfile-find-up";
-      version = "2.0.2";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vfile-find-up/-/vfile-find-up-2.0.2.tgz";
-        sha512 = "kYGgsSNpYjPxcEoud1aHNFfchsV0Z6Pyc8M5LfD1wX/tV0/bn32MKHDfv4fqV9DBLVuw2YSGOs31nRY/42DfUA==";
+        url = "https://registry.npmjs.org/vfile-find-up/-/vfile-find-up-5.0.1.tgz";
+        sha512 = "YWx8fhWQNYpHxFkR5fDO4lCdvPcY4jfCG7qUMHVvSp14vRfkEYxFG/vUEV0eJuXoKFfiAmMkAS8dekOYnpAJ+A==";
       };
     };
     "vfile-location-2.0.6" = {
@@ -46778,6 +48956,15 @@ let
         sha512 = "sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==";
       };
     };
+    "vfile-location-3.1.0" = {
+      name = "vfile-location";
+      packageName = "vfile-location";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vfile-location/-/vfile-location-3.1.0.tgz";
+        sha512 = "FCZ4AN9xMcjFIG1oGmZKo61PjwJHRVA+0/tPUP2ul4uIwjGGndIxavEMRpWn5p4xwm/ZsdXp9YNygf1ZyE4x8g==";
+      };
+    };
     "vfile-message-1.1.1" = {
       name = "vfile-message";
       packageName = "vfile-message";
@@ -46805,15 +48992,6 @@ let
         sha1 = "21a7009bfe55e24df8ff432aa5bf6f6efa74e418";
       };
     };
-    "vfile-reporter-4.0.0" = {
-      name = "vfile-reporter";
-      packageName = "vfile-reporter";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-4.0.0.tgz";
-        sha1 = "ea6f0ae1342f4841573985e05f941736f27de9da";
-      };
-    };
     "vfile-reporter-5.1.2" = {
       name = "vfile-reporter";
       packageName = "vfile-reporter";
@@ -46868,15 +49046,6 @@ let
         sha512 = "Z4EcsX9aYNJZD1M+0jCeQ0t+5ETlHE88B2SF1fCuVxfn+XxHGJVec6tbHGqpULk4esOOLJEipAScOCDGHk+teQ==";
       };
     };
-    "vinyl-0.4.6" = {
-      name = "vinyl";
-      packageName = "vinyl";
-      version = "0.4.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz";
-        sha1 = "2f356c87a550a255461f36bbeb2a5ba8bf784847";
-      };
-    };
     "vinyl-0.5.3" = {
       name = "vinyl";
       packageName = "vinyl";
@@ -46904,15 +49073,6 @@ let
         sha1 = "b104d9e4409ffa325faadd520642d0a3b488b365";
       };
     };
-    "vinyl-fs-0.3.14" = {
-      name = "vinyl-fs";
-      packageName = "vinyl-fs";
-      version = "0.3.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz";
-        sha1 = "9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6";
-      };
-    };
     "vinyl-fs-3.0.3" = {
       name = "vinyl-fs";
       packageName = "vinyl-fs";
@@ -46931,15 +49091,6 @@ let
         sha1 = "92a800593a38703a8cdb11d8b300ad4be63b3e16";
       };
     };
-    "vinyl-sourcemaps-apply-0.2.1" = {
-      name = "vinyl-sourcemaps-apply";
-      packageName = "vinyl-sourcemaps-apply";
-      version = "0.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz";
-        sha1 = "ab6549d61d172c2b1b87be5c508d239c8ef87705";
-      };
-    };
     "vlc-command-1.2.0" = {
       name = "vlc-command";
       packageName = "vlc-command";
@@ -46958,13 +49109,13 @@ let
         sha512 = "DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==";
       };
     };
-    "vls-0.2.0" = {
+    "vls-0.4.2" = {
       name = "vls";
       packageName = "vls";
-      version = "0.2.0";
+      version = "0.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vls/-/vls-0.2.0.tgz";
-        sha512 = "B6xMWi3sOVSitcLx4zKWB5vh1DLL0Okkqy5Fa7rHSmqvPhDDn7idU+vwjWZW8IzHQO1T+brxvDjbKuSnEXNPRw==";
+        url = "https://registry.npmjs.org/vls/-/vls-0.4.2.tgz";
+        sha512 = "iH1MUOMaLwv5Lewkt/mYppy/UdBLh8MonL4CSiKh4GNj0GfEJHQfk2s8d0WixVooD++UGCa/dzpGB8CRzGnBtA==";
       };
     };
     "vm-browserify-1.1.2" = {
@@ -46994,13 +49145,13 @@ let
         sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec";
       };
     };
-    "vsce-1.77.0" = {
+    "vsce-1.79.5" = {
       name = "vsce";
       packageName = "vsce";
-      version = "1.77.0";
+      version = "1.79.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vsce/-/vsce-1.77.0.tgz";
-        sha512 = "8vOTCI3jGmOm0JJFu/BMAbqxpaSuka4S3hV9E6K5aWBUsDM1SGFExkIxHblnsI8sls43xP61DHorYT+K0F+GFA==";
+        url = "https://registry.npmjs.org/vsce/-/vsce-1.79.5.tgz";
+        sha512 = "KZFOthGwxWFwoGqwrkzfTfyCZGuniTofnJ1a/dCzQ2HP93u1UuCKrTQyGT+SuGHu8sNqdBYNe0hb9GC3qCN7fg==";
       };
     };
     "vscode-css-languageservice-3.0.13" = {
@@ -47012,13 +49163,13 @@ let
         sha512 = "RWkO/c/A7iXhHEy3OuEqkCqavDjpD4NF2Ca8vjai+ZtEYNeHrm1ybTnBYLP4Ft1uXvvaaVtYA9HrDjD6+CUONg==";
       };
     };
-    "vscode-css-languageservice-4.2.0" = {
+    "vscode-css-languageservice-4.3.3" = {
       name = "vscode-css-languageservice";
       packageName = "vscode-css-languageservice";
-      version = "4.2.0";
+      version = "4.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-4.2.0.tgz";
-        sha512 = "HIjl5bofrrxMMF05K/nq83270EdvteuAIio44FWd6tDdfhgg4vbofiAuXRSpXFi335f5+ekKdrzvPZm9ahqzsg==";
+        url = "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-4.3.3.tgz";
+        sha512 = "b2b+0oHvPmBHygDtOXX3xBvpQCa6eIQSvXnGDNSDmIC1894ZTJ2yX10vjplOO/PvV7mwhyvGPwHyY4X2HGxtKw==";
       };
     };
     "vscode-emmet-helper-1.2.17" = {
@@ -47039,13 +49190,22 @@ let
         sha512 = "mIb5VMXM5jI97HzCk2eadI1K//rCEZXte0wBqA7PGXsyJH4KTyJUaYk9MR+mbfpUl2vMi3HZw9GUOLGYLc6l5w==";
       };
     };
-    "vscode-json-languageservice-3.7.0" = {
+    "vscode-json-languageservice-3.8.3" = {
       name = "vscode-json-languageservice";
       packageName = "vscode-json-languageservice";
-      version = "3.7.0";
+      version = "3.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.7.0.tgz";
-        sha512 = "nGLqcBhTjdfkl8Dz9sYGK/ZCTjscYFoIjYw+qqkWB+vyNfM0k/AyIoT73DQvB/PArteCKjEVfQUF72GRZEDSbQ==";
+        url = "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.8.3.tgz";
+        sha512 = "8yPag/NQHCuTthahyaTtzK0DHT0FKM/xBU0mFBQ8nMo8C1i2P+FCyIVqICoNoHkRI2BTGlXKomPUpsqjSz0TnQ==";
+      };
+    };
+    "vscode-jsonrpc-3.5.0" = {
+      name = "vscode-jsonrpc";
+      packageName = "vscode-jsonrpc";
+      version = "3.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-3.5.0.tgz";
+        sha1 = "87239d9e166b2d7352245b8a813597804c1d63aa";
       };
     };
     "vscode-jsonrpc-3.6.0" = {
@@ -47102,6 +49262,15 @@ let
         sha512 = "JrjCUhLpQZxQ5VpWpilOHDMhVsn0fdN5jBh1uFNhSr5c2loJvRdr9Km2EuSQOFfOQsBKx0+xvY8PbsypNEcJ6w==";
       };
     };
+    "vscode-languageserver-3.5.1" = {
+      name = "vscode-languageserver";
+      packageName = "vscode-languageserver";
+      version = "3.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-3.5.1.tgz";
+        sha512 = "RYUKn0DgHTFcS8kS4VaNCjNMaQXYqiXdN9bKrFjXzu5RPKfjIYcoh47oVWwZj4L3R/DPB0Se7HPaDatvYY2XgQ==";
+      };
+    };
     "vscode-languageserver-4.0.0" = {
       name = "vscode-languageserver";
       packageName = "vscode-languageserver";
@@ -47174,6 +49343,15 @@ let
         sha512 = "atmkGT/W6tF0cx4SaWFYtFs2UeSeC28RPiap9myv2YZTaTCFvTBEPNWrU5QRKfkyM0tbgtGo6T3UCQ8tkDpjzA==";
       };
     };
+    "vscode-languageserver-protocol-3.5.1" = {
+      name = "vscode-languageserver-protocol";
+      packageName = "vscode-languageserver-protocol";
+      version = "3.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.5.1.tgz";
+        sha512 = "1fPDIwsAv1difCV+8daOrJEGunClNJWqnUHq/ncWrjhitKWXgGmRCjlwZ3gDUTt54yRcvXz1PXJDaRNvNH6pYA==";
+      };
+    };
     "vscode-languageserver-protocol-3.6.0" = {
       name = "vscode-languageserver-protocol";
       packageName = "vscode-languageserver-protocol";
@@ -47228,13 +49406,31 @@ let
         sha512 = "tZFUSbyjUcrh+qQf13ALX4QDdOfDX0cVaBFgy7ktJ0VwS7AW/yRKgGPSxVqqP9OCMNPdqP57O5q47w2pEwfaUg==";
       };
     };
-    "vscode-languageserver-types-3.6.0" = {
+    "vscode-languageserver-types-3.16.0-next.2" = {
       name = "vscode-languageserver-types";
       packageName = "vscode-languageserver-types";
-      version = "3.6.0";
+      version = "3.16.0-next.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz";
+        sha512 = "QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==";
+      };
+    };
+    "vscode-languageserver-types-3.5.0" = {
+      name = "vscode-languageserver-types";
+      packageName = "vscode-languageserver-types";
+      version = "3.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.6.0.tgz";
-        sha512 = "GSgQtGmtza4PoNH0+iHWylWg/1sw2DODezqYWRxbN910dPchI3CQaSJN76csKcQGv55wsWgX82T6n74q8mFSpw==";
+        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.5.0.tgz";
+        sha1 = "e48d79962f0b8e02de955e3f524908e2b19c0374";
+      };
+    };
+    "vscode-nls-2.0.2" = {
+      name = "vscode-nls";
+      packageName = "vscode-nls";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-nls/-/vscode-nls-2.0.2.tgz";
+        sha1 = "808522380844b8ad153499af5c3b03921aea02da";
       };
     };
     "vscode-nls-3.2.5" = {
@@ -47309,13 +49505,13 @@ let
         sha512 = "8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==";
       };
     };
-    "vscode-web-custom-data-0.1.4" = {
+    "vscode-web-custom-data-0.3.1" = {
       name = "vscode-web-custom-data";
       packageName = "vscode-web-custom-data";
-      version = "0.1.4";
+      version = "0.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-web-custom-data/-/vscode-web-custom-data-0.1.4.tgz";
-        sha512 = "EFS8t2g3gMjvYY3sTknzHaURQ5AnemMcnKriZx43w97bsmEfEPaBJwJpuj/Zx9k4SwK+97dRtkKb2lvWQ2v0rw==";
+        url = "https://registry.npmjs.org/vscode-web-custom-data/-/vscode-web-custom-data-0.3.1.tgz";
+        sha512 = "pFWfUyoJoROfzk7l8+QK1aHsAcfb8fJP8iaEghMbASbYieaGOOnfovNjPIrJmhNf84RGn36R6r2030i9Eld7vA==";
       };
     };
     "vstream-0.1.0" = {
@@ -47327,13 +49523,22 @@ let
         sha1 = "13587190f34e72ba7a07ebbaa7e70ac147b1fb7d";
       };
     };
-    "vue-2.6.11" = {
+    "vue-2.6.12" = {
       name = "vue";
       packageName = "vue";
-      version = "2.6.11";
+      version = "2.6.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz";
-        sha512 = "VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==";
+        url = "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz";
+        sha512 = "uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==";
+      };
+    };
+    "vue-3.0.0-rc.10" = {
+      name = "vue";
+      packageName = "vue";
+      version = "3.0.0-rc.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue/-/vue-3.0.0-rc.10.tgz";
+        sha512 = "nRsyIQtOWLDMBb5dsPwg/WdIqznCMVWN6O6wJSzhseKC768wHlZKcJ7SPHhWPid9wi3Ykhtl9vtgvxTK/qICkw==";
       };
     };
     "vue-cli-plugin-apollo-0.21.3" = {
@@ -47345,6 +49550,15 @@ let
         sha512 = "8CzRVrAsFkB9lpl600cRCNR9OUnrSYYAIVF9/qW4pP0TMXbhrd1F1wEAAN6E0CPimjTLB+qSt6zWS4vb2wC8Wg==";
       };
     };
+    "vue-codemod-0.0.4" = {
+      name = "vue-codemod";
+      packageName = "vue-codemod";
+      version = "0.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue-codemod/-/vue-codemod-0.0.4.tgz";
+        sha512 = "mAI9g4CcY3GJOOt/fTOC8Cz9lYtBEuSiDizQHgvcX0HpoKw1bNZBPaNUqFoNxnk6+nGZVgt0/CXYnq80rRK9vg==";
+      };
+    };
     "vue-eslint-parser-2.0.3" = {
       name = "vue-eslint-parser";
       packageName = "vue-eslint-parser";
@@ -47372,15 +49586,6 @@ let
         sha512 = "Kr21uPfthDc63nDl27AGQEhtt9VrZ9nkYk/NTftJ2ws9XiJwzJJCnCr3AITQ2jpRMA0XPGDECxYH8E027qMK9Q==";
       };
     };
-    "vue-jscodeshift-adapter-2.1.0" = {
-      name = "vue-jscodeshift-adapter";
-      packageName = "vue-jscodeshift-adapter";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vue-jscodeshift-adapter/-/vue-jscodeshift-adapter-2.1.0.tgz";
-        sha512 = "xDn8kpZ0/yG9Z1Z+osrfnd1k1y5AJIdUtqHWNJY2eRz37Gs1tftiZ8BUK89Pab0ddnwhZqh5eNFfOT0SFlZnWQ==";
-      };
-    };
     "vue-onsenui-helper-json-1.0.2" = {
       name = "vue-onsenui-helper-json";
       packageName = "vue-onsenui-helper-json";
@@ -47390,24 +49595,6 @@ let
         sha512 = "ikg8ruE17tIXF9mrVvKoOR3oyM9nk0TcmUHyeBWod5ILEH9DRN0+seX4gwsSbjdxMYlIIvmnCFPQeMdlcJqPJQ==";
       };
     };
-    "vue-sfc-descriptor-to-string-1.0.0" = {
-      name = "vue-sfc-descriptor-to-string";
-      packageName = "vue-sfc-descriptor-to-string";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vue-sfc-descriptor-to-string/-/vue-sfc-descriptor-to-string-1.0.0.tgz";
-        sha512 = "VYNMsrIPZQZau5Gk8IVtgonN1quOznP9/pLIF5m2c4R30KCDDe3NwthrsM7lSUY2K4lezcb8j3Wu8cQhBuZEMQ==";
-      };
-    };
-    "vue-template-compiler-2.6.11" = {
-      name = "vue-template-compiler";
-      packageName = "vue-template-compiler";
-      version = "2.6.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz";
-        sha512 = "KIq15bvQDrcCjpGjrAhx4mUlyyHfdmTaoNfeoATHLAiWB+MU3cx4lOzMwrnUh9cCxy0Lt1T11hAFY6TQgroUAA==";
-      };
-    };
     "w3c-hr-time-1.0.2" = {
       name = "w3c-hr-time";
       packageName = "w3c-hr-time";
@@ -47426,6 +49613,15 @@ let
         sha512 = "p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==";
       };
     };
+    "wait-port-0.2.9" = {
+      name = "wait-port";
+      packageName = "wait-port";
+      version = "0.2.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wait-port/-/wait-port-0.2.9.tgz";
+        sha512 = "hQ/cVKsNqGZ/UbZB/oakOGFqic00YAMM5/PEj3Bt4vKarv2jWIWzDbqlwT94qMs/exAQAsvMOq99sZblV92zxQ==";
+      };
+    };
     "walk-2.3.14" = {
       name = "walk";
       packageName = "walk";
@@ -47471,22 +49667,13 @@ let
         sha1 = "340a717bde765726fa0aa07d721e0147a551df0c";
       };
     };
-    "watchpack-1.6.1" = {
-      name = "watchpack";
-      packageName = "watchpack";
-      version = "1.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz";
-        sha512 = "+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==";
-      };
-    };
-    "watchpack-1.7.2" = {
+    "watchpack-1.7.4" = {
       name = "watchpack";
       packageName = "watchpack";
-      version = "1.7.2";
+      version = "1.7.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz";
-        sha512 = "ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==";
+        url = "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz";
+        sha512 = "aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==";
       };
     };
     "watchpack-chokidar2-2.0.0" = {
@@ -47534,13 +49721,22 @@ let
         sha1 = "7137946585c73fe44882013853bd000c5d687a4e";
       };
     };
-    "web-push-3.4.3" = {
+    "web-namespaces-1.1.4" = {
+      name = "web-namespaces";
+      packageName = "web-namespaces";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz";
+        sha512 = "wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==";
+      };
+    };
+    "web-push-3.4.4" = {
       name = "web-push";
       packageName = "web-push";
-      version = "3.4.3";
+      version = "3.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/web-push/-/web-push-3.4.3.tgz";
-        sha512 = "nt/hRSlfRDTwvem//7jle1+cy62lBoxFshad8ai2Q4SlHZS00oHnrw5Dul3jSWXR+bOcnZkwnRs3tW+daNTuyA==";
+        url = "https://registry.npmjs.org/web-push/-/web-push-3.4.4.tgz";
+        sha512 = "tB0F+ccobsfw5jTWBinWJKyd/YdCdRbKj+CFSnsJeEgFYysOULvWFYyeCxn9KuQvG/3UF1t3cTAcJzBec5LCWA==";
       };
     };
     "web-tree-sitter-0.16.4" = {
@@ -47588,13 +49784,13 @@ let
         sha512 = "VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==";
       };
     };
-    "webpack-4.43.0" = {
+    "webpack-4.44.1" = {
       name = "webpack";
       packageName = "webpack";
-      version = "4.43.0";
+      version = "4.44.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz";
-        sha512 = "GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==";
+        url = "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz";
+        sha512 = "4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==";
       };
     };
     "webpack-cli-3.3.12" = {
@@ -47633,13 +49829,13 @@ let
         sha512 = "cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==";
       };
     };
-    "webpack-node-externals-1.7.2" = {
+    "webpack-node-externals-2.5.1" = {
       name = "webpack-node-externals";
       packageName = "webpack-node-externals";
-      version = "1.7.2";
+      version = "2.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz";
-        sha512 = "ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg==";
+        url = "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-2.5.1.tgz";
+        sha512 = "RWxKGibUU5kuJT6JDYmXGa3QsZskqIaiBvZ2wBxHlJzWVJPOyBMnroXf23uxEHnj1rYS8jNdyUfrNAXJ2bANNw==";
       };
     };
     "webpack-sources-1.4.3" = {
@@ -47651,6 +49847,15 @@ let
         sha512 = "lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==";
       };
     };
+    "websocket-1.0.32" = {
+      name = "websocket";
+      packageName = "websocket";
+      version = "1.0.32";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/websocket/-/websocket-1.0.32.tgz";
+        sha512 = "i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q==";
+      };
+    };
     "websocket-driver-0.6.5" = {
       name = "websocket-driver";
       packageName = "websocket-driver";
@@ -47696,6 +49901,15 @@ let
         sha512 = "hkwjMQTbBiwdJn3vEVjOyNwKZISp6r4GEl/J0N6Ukw2oeaETIylvAlf7G0o+a9FcFMThBIle0iCPYLTwumCOaQ==";
       };
     };
+    "well-known-symbols-2.0.0" = {
+      name = "well-known-symbols";
+      packageName = "well-known-symbols";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz";
+        sha512 = "ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==";
+      };
+    };
     "whatwg-encoding-1.0.5" = {
       name = "whatwg-encoding";
       packageName = "whatwg-encoding";
@@ -47714,6 +49928,15 @@ let
         sha512 = "9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==";
       };
     };
+    "whatwg-fetch-3.4.0" = {
+      name = "whatwg-fetch";
+      packageName = "whatwg-fetch";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz";
+        sha512 = "rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ==";
+      };
+    };
     "whatwg-mimetype-2.3.0" = {
       name = "whatwg-mimetype";
       packageName = "whatwg-mimetype";
@@ -47966,13 +50189,13 @@ let
         sha1 = "91e5129088330a0fe248520cee12d1ad6bb4ddfb";
       };
     };
-    "windows-release-3.3.1" = {
+    "windows-release-3.3.3" = {
       name = "windows-release";
       packageName = "windows-release";
-      version = "3.3.1";
+      version = "3.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/windows-release/-/windows-release-3.3.1.tgz";
-        sha512 = "Pngk/RDCaI/DkuHPlGTdIkDiTAnAkyMjoQMZqRsxydNl1qGXNIoZrB7RK8g53F2tEgQBMqQJHQdYZuQEEAu54A==";
+        url = "https://registry.npmjs.org/windows-release/-/windows-release-3.3.3.tgz";
+        sha512 = "OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg==";
       };
     };
     "winreg-0.0.12" = {
@@ -48056,6 +50279,15 @@ let
         sha512 = "zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==";
       };
     };
+    "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-transport-4.4.0" = {
       name = "winston-transport";
       packageName = "winston-transport";
@@ -48191,6 +50423,15 @@ let
         sha512 = "r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==";
       };
     };
+    "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==";
+      };
+    };
     "wrap-fn-0.1.5" = {
       name = "wrap-fn";
       packageName = "wrap-fn";
@@ -48344,22 +50585,13 @@ let
         sha512 = "GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==";
       };
     };
-    "ws-7.2.3" = {
-      name = "ws";
-      packageName = "ws";
-      version = "7.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz";
-        sha512 = "HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==";
-      };
-    };
-    "ws-7.3.0" = {
+    "ws-7.3.1" = {
       name = "ws";
       packageName = "ws";
-      version = "7.3.0";
+      version = "7.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.3.0.tgz";
-        sha512 = "iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==";
+        url = "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz";
+        sha512 = "D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==";
       };
     };
     "x-default-browser-0.3.1" = {
@@ -48380,15 +50612,6 @@ let
         sha1 = "de520171d47b3f416f5587d629b89d26b12dc29d";
       };
     };
-    "x-is-function-1.0.4" = {
-      name = "x-is-function";
-      packageName = "x-is-function";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/x-is-function/-/x-is-function-1.0.4.tgz";
-        sha1 = "5d294dc3d268cbdd062580e0c5df77a391d1fa1e";
-      };
-    };
     "x-is-string-0.1.0" = {
       name = "x-is-string";
       packageName = "x-is-string";
@@ -48641,6 +50864,15 @@ let
         sha512 = "yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==";
       };
     };
+    "xmldom-0.3.0" = {
+      name = "xmldom";
+      packageName = "xmldom";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xmldom/-/xmldom-0.3.0.tgz";
+        sha512 = "z9s6k3wxE+aZHgXYxSTpGDo7BYOUfJsIRyoZiX6HTjwpwfS2wpQBQKa2fD+ShLyPkqDYo5ud7KitmLZ2Cd6r0g==";
+      };
+    };
     "xmlhttprequest-1.8.0" = {
       name = "xmlhttprequest";
       packageName = "xmlhttprequest";
@@ -48678,6 +50910,15 @@ let
         sha1 = "fcd82267e9351c13f0fb9c73307f25331d29c63a";
       };
     };
+    "xpath-0.0.27" = {
+      name = "xpath";
+      packageName = "xpath";
+      version = "0.0.27";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz";
+        sha512 = "fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ==";
+      };
+    };
     "xpath-0.0.5" = {
       name = "xpath";
       packageName = "xpath";
@@ -48705,15 +50946,6 @@ let
         sha1 = "52a63e56ca0b84a7f3a5f3d61872f126ad7a5943";
       };
     };
-    "xregexp-4.3.0" = {
-      name = "xregexp";
-      packageName = "xregexp";
-      version = "4.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz";
-        sha512 = "7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==";
-      };
-    };
     "xsalsa20-1.1.0" = {
       name = "xsalsa20";
       packageName = "xsalsa20";
@@ -48732,13 +50964,13 @@ let
         sha1 = "f164263325ae671f53836fb210c7ddbcfda46598";
       };
     };
-    "xss-1.0.7" = {
+    "xss-1.0.8" = {
       name = "xss";
       packageName = "xss";
-      version = "1.0.7";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xss/-/xss-1.0.7.tgz";
-        sha512 = "A9v7tblGvxu8TWXQC9rlpW96a+LN1lyw6wyhpTmmGW+FwRMactchBR3ROKSi33UPCUcUHSu8s9YP6F+K3Mw//w==";
+        url = "https://registry.npmjs.org/xss/-/xss-1.0.8.tgz";
+        sha512 = "3MgPdaXV8rfQ/pNn16Eio6VXYPTkqwa0vc7GkiymmY/DqR1SE/7VPAAVZz1GJsJFrllMYO3RHfEaiUGjab6TNw==";
       };
     };
     "xstream-11.12.0" = {
@@ -48759,15 +50991,6 @@ let
         sha1 = "6efecc2a4dad8e6962c4901b337ce7ba87b5d28b";
       };
     };
-    "xtend-3.0.0" = {
-      name = "xtend";
-      packageName = "xtend";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz";
-        sha1 = "5cce7407baf642cba7becda568111c493f59665a";
-      };
-    };
     "xtend-4.0.2" = {
       name = "xtend";
       packageName = "xtend";
@@ -48795,6 +51018,15 @@ let
         sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==";
       };
     };
+    "yaeti-0.0.6" = {
+      name = "yaeti";
+      packageName = "yaeti";
+      version = "0.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz";
+        sha1 = "f26f484d72684cf42bedfb76970aa1608fbf9577";
+      };
+    };
     "yallist-2.1.2" = {
       name = "yallist";
       packageName = "yallist";
@@ -48867,13 +51099,13 @@ let
         sha1 = "87cfa5a9613f48e26005420d6a8ee0da6fe8daec";
       };
     };
-    "yaml-language-server-0.7.2" = {
+    "yaml-language-server-0.10.1" = {
       name = "yaml-language-server";
       packageName = "yaml-language-server";
-      version = "0.7.2";
+      version = "0.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.7.2.tgz";
-        sha512 = "3jBsYrtnlaI5H6psW+0qzVh9LoQ21fuvC8KIupjPbQURb6cAMUGH5aElKREAevSSpgs7VIoqU1ZMCglIHm32OA==";
+        url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.10.1.tgz";
+        sha512 = "R9SEt/nWTuZ8weB040L7yyaIVARlZ0ian1Kv6ptu4+xyVlIMobTZXaBTtgyhlMWqcQ3BpsAZu4q/2plRVG3tLQ==";
       };
     };
     "yamljs-0.3.0" = {
@@ -48939,13 +51171,13 @@ let
         sha512 = "ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==";
       };
     };
-    "yargs-15.3.1" = {
+    "yargs-15.4.1" = {
       name = "yargs";
       packageName = "yargs";
-      version = "15.3.1";
+      version = "15.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz";
-        sha512 = "92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==";
+        url = "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz";
+        sha512 = "aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==";
       };
     };
     "yargs-3.10.0" = {
@@ -48993,15 +51225,6 @@ let
         sha512 = "huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==";
       };
     };
-    "yargs-8.0.2" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "8.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz";
-        sha1 = "6299a9055b1cefc969ff7e79c1d918dceb22c360";
-      };
-    };
     "yargs-parser-10.1.0" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
@@ -49092,31 +51315,31 @@ let
         sha1 = "9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077";
       };
     };
-    "yargs-unparser-1.6.0" = {
+    "yargs-unparser-1.6.1" = {
       name = "yargs-unparser";
       packageName = "yargs-unparser";
-      version = "1.6.0";
+      version = "1.6.1";
       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-1.6.1.tgz";
+        sha512 = "qZV14lK9MWsGCmcr7u5oXGH0dbGqZAIxTDrWXZDo5zUr6b6iUmelNKO6x6R1dQT24AH3LgRxJpr8meWy2unolA==";
       };
     };
-    "yarn-1.22.0" = {
+    "yarn-1.22.4" = {
       name = "yarn";
       packageName = "yarn";
-      version = "1.22.0";
+      version = "1.22.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yarn/-/yarn-1.22.0.tgz";
-        sha512 = "KMHP/Jq53jZKTY9iTUt3dIVl/be6UPs2INo96+BnZHLKxYNTfwMmlgHTaMWyGZoO74RI4AIFvnWhYrXq2USJkg==";
+        url = "https://registry.npmjs.org/yarn/-/yarn-1.22.4.tgz";
+        sha512 = "oYM7hi/lIWm9bCoDMEWgffW8aiNZXCWeZ1/tGy0DWrN6vmzjCXIKu2Y21o8DYVBUtiktwKcNoxyGl/2iKLUNGA==";
       };
     };
-    "yarn-1.22.4" = {
+    "yarn-1.22.5" = {
       name = "yarn";
       packageName = "yarn";
-      version = "1.22.4";
+      version = "1.22.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yarn/-/yarn-1.22.4.tgz";
-        sha512 = "oYM7hi/lIWm9bCoDMEWgffW8aiNZXCWeZ1/tGy0DWrN6vmzjCXIKu2Y21o8DYVBUtiktwKcNoxyGl/2iKLUNGA==";
+        url = "https://registry.npmjs.org/yarn/-/yarn-1.22.5.tgz";
+        sha512 = "5uzKXwdMc++mYktXqkfpNYT9tY8ViWegU58Hgbo+KXzrzzhEyP1Ip+BTtXloLrXNcNlxFJbLiFKGaS9vK9ym6Q==";
       };
     };
     "yauzl-2.10.0" = {
@@ -49173,13 +51396,13 @@ let
         sha512 = "pLIhhU9z/G+kjOXmJ2bPFm3nejfbH+f1fjYRSOteEXDBrv1EoJE/e+kuHixSXfCYfTkxjYsvRaDX+1QykLCnpQ==";
       };
     };
-    "yeoman-generator-4.11.0" = {
+    "yeoman-generator-4.12.0" = {
       name = "yeoman-generator";
       packageName = "yeoman-generator";
-      version = "4.11.0";
+      version = "4.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.11.0.tgz";
-        sha512 = "++t6t2Z6HjL5F1/UM7+uNvGknKmQdF8tstJx8WKzsUSEpB+19kLVtapSfQIh9uWqm0L59fLWDzUui//WXoynPw==";
+        url = "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.12.0.tgz";
+        sha512 = "lozwklVQHwUXMM1o8BgxEB8F5BB7vkHW4pjAo1Zt5sJ7FOlWhd6DJ4ZxJ2OK0w+gNYkY/ocPMkUV7DTz/uqEEg==";
       };
     };
     "yn-3.1.1" = {
@@ -49314,23 +51537,23 @@ in
   "@angular/cli" = nodeEnv.buildNodePackage {
     name = "_at_angular_slash_cli";
     packageName = "@angular/cli";
-    version = "10.0.0";
+    version = "10.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@angular/cli/-/cli-10.0.0.tgz";
-      sha512 = "I+2cltQCmThgrnHwsG5AX0hQ9z6rK/8ysRWWeiJXHtEtqupW9eNzXX1QfXWxWB3o6oIKgijvnLlp04BUlWCyXA==";
+      url = "https://registry.npmjs.org/@angular/cli/-/cli-10.1.0.tgz";
+      sha512 = "sWGEVeQQ5PXKuu517fRFEQQ5qopzoWeW+8qBUTrmJt8FztiL2ASyu412iJse56wyGxZvqwUmtzpti5kWHR9XIw==";
     };
     dependencies = [
-      sources."@angular-devkit/architect-0.1000.0"
-      sources."@angular-devkit/core-10.0.0"
-      sources."@angular-devkit/schematics-10.0.0"
-      sources."@schematics/angular-10.0.0"
-      sources."@schematics/update-0.1000.0"
+      sources."@angular-devkit/architect-0.1001.0"
+      sources."@angular-devkit/core-10.1.0"
+      sources."@angular-devkit/schematics-10.1.0"
+      sources."@schematics/angular-10.1.0"
+      sources."@schematics/update-0.1001.0"
       sources."@types/color-name-1.1.1"
       sources."@yarnpkg/lockfile-1.1.0"
       sources."JSONStream-1.3.5"
       sources."agent-base-4.3.0"
       sources."agentkeepalive-3.5.2"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ansi-colors-4.1.1"
       sources."ansi-escapes-4.3.1"
       sources."ansi-regex-5.0.0"
@@ -49341,7 +51564,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bluebird-3.7.2"
@@ -49350,16 +51573,18 @@ in
       sources."builtins-1.0.3"
       (sources."cacache-12.0.4" // {
         dependencies = [
+          sources."lru-cache-5.1.1"
           sources."rimraf-2.7.1"
+          sources."yallist-3.1.1"
         ];
       })
       sources."caseless-0.12.0"
-      sources."chalk-3.0.0"
+      sources."chalk-4.1.0"
       sources."chardet-0.7.0"
       sources."chownr-1.1.4"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.3.0"
-      sources."cli-width-2.2.1"
+      sources."cli-spinners-2.4.0"
+      sources."cli-width-3.0.0"
       sources."clone-1.0.4"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
@@ -49383,7 +51608,11 @@ in
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
       sources."emoji-regex-8.0.0"
-      sources."encoding-0.1.12"
+      (sources."encoding-0.1.13" // {
+        dependencies = [
+          sources."iconv-lite-0.6.2"
+        ];
+      })
       sources."end-of-stream-1.4.4"
       sources."err-code-1.1.2"
       sources."es-abstract-1.17.6"
@@ -49412,11 +51641,11 @@ in
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."has-symbols-1.0.1"
-      sources."hosted-git-info-3.0.4"
+      sources."hosted-git-info-3.0.5"
       sources."http-cache-semantics-3.8.1"
       (sources."http-proxy-agent-2.1.0" // {
         dependencies = [
@@ -49439,14 +51668,14 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      sources."inquirer-7.1.0"
+      sources."inquirer-7.3.3"
       sources."ip-1.1.5"
       sources."is-callable-1.2.0"
       sources."is-date-object-1.0.2"
-      sources."is-docker-2.0.0"
+      sources."is-docker-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-interactive-1.0.0"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
       sources."is-wsl-2.2.0"
@@ -49455,31 +51684,33 @@ in
       sources."isstream-0.1.2"
       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."jsonc-parser-2.3.0"
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
-      sources."lodash-4.17.15"
-      (sources."log-symbols-3.0.0" // {
+      sources."lodash-4.17.20"
+      sources."log-symbols-4.0.0"
+      sources."lru-cache-6.0.0"
+      sources."magic-string-0.25.7"
+      (sources."make-fetch-happen-5.0.2" // {
         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."lru-cache-5.1.1"
+          sources."yallist-3.1.1"
         ];
       })
-      sources."lru-cache-5.1.1"
-      sources."magic-string-0.25.7"
-      sources."make-fetch-happen-5.0.2"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-2.9.0"
+      (sources."minipass-2.9.0" // {
+        dependencies = [
+          sources."yallist-3.1.1"
+        ];
+      })
       sources."minizlib-1.3.3"
       sources."mississippi-3.0.0"
       sources."mkdirp-0.5.5"
@@ -49503,11 +51734,13 @@ in
       sources."npm-package-arg-8.0.1"
       sources."npm-packlist-1.4.8"
       sources."npm-pick-manifest-6.1.0"
-      (sources."npm-registry-fetch-4.0.4" // {
+      (sources."npm-registry-fetch-4.0.7" // {
         dependencies = [
           sources."hosted-git-info-2.8.8"
+          sources."lru-cache-5.1.1"
           sources."npm-package-arg-6.1.1"
           sources."semver-5.7.1"
+          sources."yallist-3.1.1"
         ];
       })
       sources."oauth-sign-0.9.0"
@@ -49516,19 +51749,21 @@ in
       sources."object.assign-4.1.0"
       sources."object.getownpropertydescriptors-2.1.0"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
-      sources."open-7.0.4"
-      sources."ora-4.0.4"
+      sources."onetime-5.1.2"
+      sources."open-7.2.0"
+      sources."ora-5.0.0"
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
       (sources."pacote-9.5.12" // {
         dependencies = [
           sources."hosted-git-info-2.8.8"
+          sources."lru-cache-5.1.1"
           sources."npm-package-arg-6.1.1"
           sources."npm-pick-manifest-3.0.2"
           sources."rimraf-2.7.1"
           sources."semver-5.7.1"
+          sources."yallist-3.1.1"
         ];
       })
       sources."parallel-transform-1.2.0"
@@ -49548,7 +51783,7 @@ in
       })
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
-      sources."read-package-json-2.1.1"
+      sources."read-package-json-2.1.2"
       sources."read-package-tree-5.3.1"
       (sources."readable-stream-2.3.7" // {
         dependencies = [
@@ -49567,7 +51802,7 @@ in
       sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
       sources."run-queue-1.0.3"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.2"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-7.3.2"
@@ -49603,9 +51838,13 @@ in
         ];
       })
       sources."strip-ansi-6.0.0"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."symbol-observable-1.2.0"
-      sources."tar-4.4.13"
+      (sources."tar-4.4.13" // {
+        dependencies = [
+          sources."yallist-3.1.1"
+        ];
+      })
       sources."through-2.3.8"
       sources."through2-2.0.5"
       sources."tmp-0.0.33"
@@ -49617,16 +51856,15 @@ in
       sources."typedarray-0.0.6"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
-      (sources."universal-analytics-0.4.20" // {
+      (sources."universal-analytics-0.4.23" // {
         dependencies = [
-          sources."debug-3.2.6"
           sources."uuid-3.4.0"
         ];
       })
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."util-promisify-2.1.0"
-      sources."uuid-8.1.0"
+      sources."uuid-8.3.0"
       sources."validate-npm-package-license-3.0.4"
       sources."validate-npm-package-name-3.0.0"
       sources."verror-1.10.0"
@@ -49635,7 +51873,7 @@ in
       sources."wrappy-1.0.2"
       sources."xtend-4.0.2"
       sources."y18n-4.0.0"
-      sources."yallist-3.1.1"
+      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -49714,7 +51952,7 @@ in
       sources."async-lock-1.2.4"
       sources."balanced-match-1.0.0"
       sources."base64-js-0.0.2"
-      sources."bl-4.0.2"
+      sources."bl-4.0.3"
       sources."bops-0.0.7"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
@@ -49728,7 +51966,7 @@ in
       sources."cache-directory-2.0.0"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
           sources."pump-3.0.0"
         ];
@@ -49876,9 +52114,9 @@ in
       sources."minimatch-3.0.4"
       sources."minimatch-all-1.1.0"
       sources."minimist-1.2.5"
-      sources."minimisted-2.0.0"
+      sources."minimisted-2.0.1"
       sources."multi-progress-2.0.0"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       sources."normalize-path-2.1.1"
       sources."normalize-url-4.5.0"
       sources."now-and-later-2.0.1"
@@ -49932,7 +52170,7 @@ in
       sources."responselike-1.0.2"
       sources."safe-buffer-5.2.1"
       sources."sha.js-2.4.11"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."simple-get-3.1.0"
       sources."source-map-0.6.1"
       sources."sprintf-js-1.0.3"
@@ -49960,7 +52198,7 @@ in
         ];
       })
       sources."to-utf8-0.0.1"
-      sources."uglify-js-3.10.0"
+      sources."uglify-js-3.10.3"
       sources."unc-path-regex-0.1.2"
       sources."unique-stream-2.3.1"
       sources."universalify-0.1.2"
@@ -50000,18 +52238,18 @@ in
   "@bitwarden/cli" = nodeEnv.buildNodePackage {
     name = "_at_bitwarden_slash_cli";
     packageName = "@bitwarden/cli";
-    version = "1.10.0";
+    version = "1.11.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@bitwarden/cli/-/cli-1.10.0.tgz";
-      sha512 = "EXO0Uvng3jrTDe/EtqjemKIH2vj8gc4Pe1+xi2L9gPWEM5Pi1o9YsqCu6SqlCzLCWqfY7LLILwhFuXnU0Acb8g==";
+      url = "https://registry.npmjs.org/@bitwarden/cli/-/cli-1.11.0.tgz";
+      sha512 = "H/i+fpbf/W9c446Ud+bDSeoUv5pW03orTm3hwVs9TtCt6332He8PK/CHydFnY/uvMKAmWPG5m2DruWIe7f1XMg==";
     };
     dependencies = [
-      sources."abab-2.0.3"
+      sources."abab-2.0.4"
       sources."acorn-6.4.1"
       sources."acorn-globals-4.3.4"
       sources."acorn-walk-6.2.0"
       sources."agent-base-5.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
@@ -50021,7 +52259,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."big-integer-1.6.36"
       sources."browser-process-hrtime-1.0.0"
@@ -50061,7 +52299,7 @@ in
       sources."getpass-0.1.7"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-3.0.0"
       sources."html-encoding-sniffer-1.0.2"
       sources."http-signature-1.2.0"
@@ -50079,7 +52317,7 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsprim-1.4.1"
       sources."levn-0.3.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.sortby-4.7.0"
       sources."lowdb-1.0.0"
       sources."lunr-2.3.3"
@@ -50105,11 +52343,11 @@ in
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
       sources."request-2.88.2"
-      sources."request-promise-core-1.1.3"
-      sources."request-promise-native-1.0.8"
+      sources."request-promise-core-1.1.4"
+      sources."request-promise-native-1.0.9"
       sources."restore-cursor-2.0.0"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.2"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."saxes-3.1.11"
@@ -50135,7 +52373,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
       sources."w3c-hr-time-1.0.2"
@@ -50163,56 +52401,58 @@ in
   "@nestjs/cli" = nodeEnv.buildNodePackage {
     name = "_at_nestjs_slash_cli";
     packageName = "@nestjs/cli";
-    version = "7.4.1";
+    version = "7.5.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@nestjs/cli/-/cli-7.4.1.tgz";
-      sha512 = "90IWWqDIPX3M0vwkmnZ0Ct/EY2b75DYbsw2ZbVxaj57ASdbajhS7Pxhc7MC/L+07nBge+xMRHvQRoKdcfWHd0w==";
+      url = "https://registry.npmjs.org/@nestjs/cli/-/cli-7.5.1.tgz";
+      sha512 = "18EfBO48ojVm7YzwyPc8PRjas9KcIVjdlD+v7tIImKzrf5THcpAYxvzUvZUspSbLIIIqwTgKj/loqamkwOk/XA==";
     };
     dependencies = [
-      sources."@angular-devkit/core-9.1.9"
-      (sources."@angular-devkit/schematics-9.1.9" // {
+      sources."@angular-devkit/core-10.0.7"
+      (sources."@angular-devkit/schematics-10.0.7" // {
         dependencies = [
-          sources."ora-4.0.3"
+          sources."ora-4.0.4"
         ];
       })
-      (sources."@angular-devkit/schematics-cli-0.901.9" // {
+      (sources."@angular-devkit/schematics-cli-0.1000.7" // {
         dependencies = [
           sources."inquirer-7.1.0"
         ];
       })
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      (sources."@babel/highlight-7.10.3" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      (sources."@nestjs/schematics-7.0.1" // {
+      (sources."@nestjs/schematics-7.1.1" // {
         dependencies = [
-          sources."@angular-devkit/core-9.1.7"
-          sources."@angular-devkit/schematics-9.1.7"
+          sources."@angular-devkit/core-9.1.12"
+          sources."@angular-devkit/schematics-9.1.12"
           sources."ora-4.0.3"
+          sources."rxjs-6.5.4"
         ];
       })
-      sources."@schematics/schematics-0.901.9"
+      sources."@schematics/schematics-0.1000.7"
       sources."@types/anymatch-1.3.1"
       sources."@types/color-name-1.1.1"
+      sources."@types/json-schema-7.0.6"
       sources."@types/json5-0.0.29"
-      sources."@types/node-14.0.14"
+      sources."@types/node-14.6.3"
       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.9.2" // {
+      (sources."@types/uglify-js-3.9.3" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      (sources."@types/webpack-4.41.17" // {
+      (sources."@types/webpack-4.41.21" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      sources."@types/webpack-sources-1.4.0"
+      sources."@types/webpack-sources-1.4.2"
       sources."@webassemblyjs/ast-1.9.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
       sources."@webassemblyjs/helper-api-error-1.9.0"
@@ -50234,9 +52474,9 @@ in
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
       sources."acorn-6.4.1"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.3"
       sources."ajv-errors-1.0.1"
-      sources."ajv-keywords-3.5.0"
+      sources."ajv-keywords-3.5.2"
       sources."ansi-escapes-4.3.1"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
@@ -50246,7 +52486,7 @@ in
       sources."arr-flatten-1.1.0"
       sources."arr-union-3.1.0"
       sources."array-unique-0.3.2"
-      (sources."asn1.js-4.10.1" // {
+      (sources."asn1.js-5.4.1" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -50272,7 +52512,7 @@ in
       sources."binary-extensions-2.1.0"
       sources."bindings-1.5.0"
       sources."bluebird-3.7.2"
-      sources."bn.js-5.1.2"
+      sources."bn.js-5.1.3"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."brorand-1.1.0"
@@ -50284,7 +52524,7 @@ in
           sources."bn.js-4.11.9"
         ];
       })
-      (sources."browserify-sign-4.2.0" // {
+      (sources."browserify-sign-4.2.1" // {
         dependencies = [
           sources."readable-stream-3.6.0"
           sources."safe-buffer-5.2.1"
@@ -50308,11 +52548,11 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."chardet-0.7.0"
-      sources."chokidar-3.4.0"
+      sources."chokidar-3.4.2"
       sources."chownr-1.1.4"
       sources."chrome-trace-event-1.0.2"
       sources."cipher-base-1.0.4"
@@ -50334,7 +52574,7 @@ in
         ];
       })
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.3.0"
+      sources."cli-spinners-2.4.0"
       (sources."cli-table3-0.5.1" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
@@ -50364,14 +52604,18 @@ in
       sources."copy-descriptor-0.1.1"
       sources."core-util-is-1.0.2"
       sources."cosmiconfig-6.0.0"
-      (sources."create-ecdh-4.0.3" // {
+      (sources."create-ecdh-4.0.4" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
       })
       sources."create-hash-1.2.0"
       sources."create-hmac-1.1.7"
-      sources."cross-spawn-6.0.5"
+      (sources."cross-spawn-6.0.5" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
       sources."crypto-browserify-3.12.0"
       sources."cyclist-1.0.1"
       sources."debug-2.6.9"
@@ -50395,14 +52639,18 @@ in
       sources."emoji-regex-8.0.0"
       sources."emojis-list-3.0.0"
       sources."end-of-stream-1.4.4"
-      sources."enhanced-resolve-4.2.0"
+      sources."enhanced-resolve-4.3.0"
       sources."errno-0.1.7"
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
       sources."eslint-scope-4.0.3"
-      sources."esrecurse-4.2.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
       sources."estraverse-4.3.0"
-      sources."events-3.1.0"
+      sources."events-3.2.0"
       sources."evp_bytestokey-1.0.3"
       sources."execa-1.0.0"
       (sources."expand-brackets-2.1.4" // {
@@ -50445,14 +52693,19 @@ in
       sources."find-up-3.0.0"
       sources."flush-write-stream-1.1.1"
       sources."for-in-1.0.2"
-      (sources."fork-ts-checker-webpack-plugin-5.0.4" // {
+      (sources."fork-ts-checker-webpack-plugin-5.1.0" // {
         dependencies = [
-          sources."chalk-2.4.2"
+          sources."ansi-styles-4.2.1"
+          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."fragment-cache-0.2.1"
       sources."from2-2.3.0"
-      sources."fs-extra-9.0.0"
+      sources."fs-extra-9.0.1"
       sources."fs-monkey-1.0.1"
       sources."fs-write-stream-atomic-1.0.10"
       sources."fs.realpath-1.0.0"
@@ -50491,7 +52744,18 @@ in
       sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."inquirer-7.2.0"
+      (sources."inquirer-7.3.3" // {
+        dependencies = [
+          sources."ansi-styles-4.2.1"
+          sources."chalk-4.1.0"
+          sources."cli-width-3.0.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."rxjs-6.6.2"
+          sources."supports-color-7.2.0"
+        ];
+      })
       sources."interpret-1.4.0"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arrayish-0.2.1"
@@ -50514,6 +52778,7 @@ in
       sources."isobject-3.0.1"
       sources."js-tokens-4.0.0"
       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."json5-1.0.1"
       sources."jsonfile-6.0.1"
@@ -50522,7 +52787,7 @@ in
       sources."loader-runner-2.4.0"
       sources."loader-utils-1.4.0"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.toarray-4.4.0"
       (sources."log-symbols-3.0.0" // {
         dependencies = [
@@ -50530,9 +52795,13 @@ in
         ];
       })
       sources."lru-cache-5.1.1"
-      sources."macos-release-2.3.0"
+      sources."macos-release-2.4.1"
       sources."magic-string-0.25.7"
-      sources."make-dir-2.1.0"
+      (sources."make-dir-2.1.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."md5.js-1.3.5"
@@ -50584,7 +52853,7 @@ in
       sources."mute-stream-0.0.8"
       sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       sources."nice-try-1.0.5"
       sources."node-emoji-1.10.0"
       (sources."node-libs-browser-2.2.1" // {
@@ -50611,8 +52880,18 @@ in
       sources."object-visit-1.0.1"
       sources."object.pick-1.3.0"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
-      sources."ora-4.0.4"
+      sources."onetime-5.1.2"
+      (sources."ora-5.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.2.1"
+          sources."chalk-4.1.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."log-symbols-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
       sources."os-browserify-0.3.0"
       sources."os-name-3.1.0"
       sources."os-tmpdir-1.0.2"
@@ -50623,8 +52902,8 @@ in
       sources."pako-1.0.11"
       sources."parallel-transform-1.2.0"
       sources."parent-module-1.0.1"
-      sources."parse-asn1-5.1.5"
-      sources."parse-json-5.0.0"
+      sources."parse-asn1-5.1.6"
+      sources."parse-json-5.1.0"
       sources."pascalcase-0.1.1"
       sources."path-browserify-0.0.1"
       sources."path-dirname-1.0.2"
@@ -50637,6 +52916,7 @@ in
       sources."picomatch-2.2.2"
       sources."pify-4.0.1"
       sources."pkg-dir-3.0.0"
+      sources."pluralize-8.0.0"
       sources."posix-character-classes-0.1.1"
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
@@ -50674,13 +52954,13 @@ in
       sources."ripemd160-2.0.2"
       sources."run-async-2.4.1"
       sources."run-queue-1.0.3"
-      sources."rxjs-6.5.4"
+      sources."rxjs-6.5.5"
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."schema-utils-1.0.0"
-      sources."semver-5.7.1"
-      sources."serialize-javascript-3.1.0"
+      sources."schema-utils-2.7.0"
+      sources."semver-7.3.2"
+      sources."serialize-javascript-4.0.0"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
@@ -50768,8 +53048,9 @@ in
           sources."source-map-0.6.1"
         ];
       })
-      (sources."terser-webpack-plugin-1.4.4" // {
+      (sources."terser-webpack-plugin-1.4.5" // {
         dependencies = [
+          sources."schema-utils-1.0.0"
           sources."source-map-0.6.1"
         ];
       })
@@ -50787,7 +53068,7 @@ 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.2.0" // {
+      (sources."tsconfig-paths-webpack-plugin-3.3.0" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
@@ -50796,7 +53077,7 @@ in
       sources."tty-browserify-0.0.0"
       sources."type-fest-0.11.0"
       sources."typedarray-0.0.6"
-      sources."typescript-3.9.5"
+      sources."typescript-3.9.7"
       sources."union-value-1.0.1"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
@@ -50812,7 +53093,7 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       (sources."url-0.11.0" // {
         dependencies = [
@@ -50827,7 +53108,7 @@ in
       })
       sources."util-deprecate-1.0.2"
       sources."vm-browserify-1.1.2"
-      sources."watchpack-1.7.2"
+      sources."watchpack-1.7.4"
       (sources."watchpack-chokidar2-2.0.0" // {
         dependencies = [
           sources."anymatch-2.0.0"
@@ -50848,19 +53129,20 @@ in
         ];
       })
       sources."wcwidth-1.0.1"
-      (sources."webpack-4.43.0" // {
+      (sources."webpack-4.44.1" // {
         dependencies = [
           sources."memory-fs-0.4.1"
+          sources."schema-utils-1.0.0"
         ];
       })
-      sources."webpack-node-externals-1.7.2"
+      sources."webpack-node-externals-2.5.1"
       (sources."webpack-sources-1.4.3" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
       sources."which-1.3.1"
-      sources."windows-release-3.3.1"
+      sources."windows-release-3.3.3"
       sources."worker-farm-1.7.0"
       sources."wrappy-1.0.2"
       sources."xtend-4.0.2"
@@ -50881,17 +53163,17 @@ in
   "@vue/cli" = nodeEnv.buildNodePackage {
     name = "_at_vue_slash_cli";
     packageName = "@vue/cli";
-    version = "4.4.6";
+    version = "4.5.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@vue/cli/-/cli-4.4.6.tgz";
-      sha512 = "IaLrnZ80BrBLPAkBup8bn363S1NHfNf8jfCJLWoXad598cUm6byMqntWtDFeTq0c3KohXcsIbT+nqLc5S9vz0w==";
+      url = "https://registry.npmjs.org/@vue/cli/-/cli-4.5.4.tgz";
+      sha512 = "UFhxsmiKtXxZwvuW0HB+35bEIovAjYg9oiA9uyOMkDh3ZTf90FmyPre09xKviLn0B+0WnzD35P+ZB/bgJZ/HOA==";
     };
     dependencies = [
       sources."@akryum/winattr-3.0.0"
-      sources."@apollo/federation-0.16.2"
-      (sources."@apollo/protobufjs-1.0.4" // {
+      sources."@apollo/federation-0.20.0"
+      (sources."@apollo/protobufjs-1.0.5" // {
         dependencies = [
-          sources."@types/node-10.17.26"
+          sources."@types/node-10.17.29"
         ];
       })
       sources."@apollographql/apollo-tools-0.4.8"
@@ -50900,106 +53182,162 @@ in
       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."@babel/code-frame-7.10.3"
-      sources."@babel/compat-data-7.10.3"
-      sources."@babel/core-7.10.3"
-      sources."@babel/generator-7.10.3"
-      sources."@babel/helper-annotate-as-pure-7.10.1"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.3"
-      sources."@babel/helper-compilation-targets-7.10.2"
-      sources."@babel/helper-create-class-features-plugin-7.10.3"
-      sources."@babel/helper-create-regexp-features-plugin-7.10.1"
-      sources."@babel/helper-define-map-7.10.3"
-      sources."@babel/helper-explode-assignable-expression-7.10.3"
-      sources."@babel/helper-function-name-7.10.3"
-      sources."@babel/helper-get-function-arity-7.10.3"
-      sources."@babel/helper-hoist-variables-7.10.3"
-      sources."@babel/helper-member-expression-to-functions-7.10.3"
-      sources."@babel/helper-module-imports-7.10.3"
-      sources."@babel/helper-module-transforms-7.10.1"
-      sources."@babel/helper-optimise-call-expression-7.10.3"
-      sources."@babel/helper-plugin-utils-7.10.3"
-      sources."@babel/helper-regex-7.10.1"
-      sources."@babel/helper-remap-async-to-generator-7.10.3"
-      sources."@babel/helper-replace-supers-7.10.1"
-      sources."@babel/helper-simple-access-7.10.1"
-      sources."@babel/helper-split-export-declaration-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      sources."@babel/helper-wrap-function-7.10.1"
-      sources."@babel/helpers-7.10.1"
-      sources."@babel/highlight-7.10.3"
-      sources."@babel/parser-7.10.3"
-      sources."@babel/plugin-proposal-async-generator-functions-7.10.3"
-      sources."@babel/plugin-proposal-class-properties-7.10.1"
-      sources."@babel/plugin-proposal-dynamic-import-7.10.1"
-      sources."@babel/plugin-proposal-json-strings-7.10.1"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.1"
-      sources."@babel/plugin-proposal-numeric-separator-7.10.1"
-      sources."@babel/plugin-proposal-object-rest-spread-7.10.3"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.10.1"
-      sources."@babel/plugin-proposal-optional-chaining-7.10.3"
-      sources."@babel/plugin-proposal-private-methods-7.10.1"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.10.1"
+      sources."@babel/code-frame-7.10.4"
+      (sources."@babel/compat-data-7.11.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      (sources."@babel/core-7.11.5" // {
+        dependencies = [
+          sources."@babel/generator-7.11.5"
+          sources."@babel/types-7.11.5"
+          sources."semver-5.7.1"
+          sources."source-map-0.6.1"
+        ];
+      })
+      (sources."@babel/generator-7.11.4" // {
+        dependencies = [
+          sources."@babel/types-7.11.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.10.4" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."@babel/helper-create-class-features-plugin-7.10.5"
+      sources."@babel/helper-create-regexp-features-plugin-7.10.4"
+      (sources."@babel/helper-define-map-7.10.5" // {
+        dependencies = [
+          sources."@babel/types-7.11.5"
+        ];
+      })
+      sources."@babel/helper-explode-assignable-expression-7.11.4"
+      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.11.0" // {
+        dependencies = [
+          sources."@babel/types-7.11.5"
+        ];
+      })
+      sources."@babel/helper-module-imports-7.10.4"
+      (sources."@babel/helper-module-transforms-7.11.0" // {
+        dependencies = [
+          sources."@babel/types-7.11.5"
+        ];
+      })
+      sources."@babel/helper-optimise-call-expression-7.10.4"
+      sources."@babel/helper-plugin-utils-7.10.4"
+      sources."@babel/helper-regex-7.10.5"
+      sources."@babel/helper-remap-async-to-generator-7.11.4"
+      sources."@babel/helper-replace-supers-7.10.4"
+      sources."@babel/helper-simple-access-7.10.4"
+      (sources."@babel/helper-skip-transparent-expression-wrappers-7.11.0" // {
+        dependencies = [
+          sources."@babel/types-7.11.5"
+        ];
+      })
+      (sources."@babel/helper-split-export-declaration-7.11.0" // {
+        dependencies = [
+          sources."@babel/types-7.11.5"
+        ];
+      })
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helper-wrap-function-7.10.4"
+      sources."@babel/helpers-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@babel/plugin-proposal-async-generator-functions-7.10.5"
+      sources."@babel/plugin-proposal-class-properties-7.10.4"
+      sources."@babel/plugin-proposal-dynamic-import-7.10.4"
+      sources."@babel/plugin-proposal-export-namespace-from-7.10.4"
+      sources."@babel/plugin-proposal-json-strings-7.10.4"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.11.0"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.4"
+      sources."@babel/plugin-proposal-numeric-separator-7.10.4"
+      sources."@babel/plugin-proposal-object-rest-spread-7.11.0"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.10.4"
+      sources."@babel/plugin-proposal-optional-chaining-7.11.0"
+      sources."@babel/plugin-proposal-private-methods-7.10.4"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.10.4"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
-      sources."@babel/plugin-syntax-class-properties-7.10.1"
+      sources."@babel/plugin-syntax-class-properties-7.10.4"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
-      sources."@babel/plugin-syntax-flow-7.10.1"
+      sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
+      sources."@babel/plugin-syntax-flow-7.10.4"
       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.1"
+      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.10.1"
-      sources."@babel/plugin-syntax-typescript-7.10.1"
-      sources."@babel/plugin-transform-arrow-functions-7.10.1"
-      sources."@babel/plugin-transform-async-to-generator-7.10.1"
-      sources."@babel/plugin-transform-block-scoped-functions-7.10.1"
-      sources."@babel/plugin-transform-block-scoping-7.10.1"
-      sources."@babel/plugin-transform-classes-7.10.3"
-      sources."@babel/plugin-transform-computed-properties-7.10.3"
-      sources."@babel/plugin-transform-destructuring-7.10.1"
-      sources."@babel/plugin-transform-dotall-regex-7.10.1"
-      sources."@babel/plugin-transform-duplicate-keys-7.10.1"
-      sources."@babel/plugin-transform-exponentiation-operator-7.10.1"
-      sources."@babel/plugin-transform-flow-strip-types-7.10.1"
-      sources."@babel/plugin-transform-for-of-7.10.1"
-      sources."@babel/plugin-transform-function-name-7.10.1"
-      sources."@babel/plugin-transform-literals-7.10.1"
-      sources."@babel/plugin-transform-member-expression-literals-7.10.1"
-      sources."@babel/plugin-transform-modules-amd-7.10.1"
-      sources."@babel/plugin-transform-modules-commonjs-7.10.1"
-      sources."@babel/plugin-transform-modules-systemjs-7.10.3"
-      sources."@babel/plugin-transform-modules-umd-7.10.1"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.3"
-      sources."@babel/plugin-transform-new-target-7.10.1"
-      sources."@babel/plugin-transform-object-super-7.10.1"
-      sources."@babel/plugin-transform-parameters-7.10.1"
-      sources."@babel/plugin-transform-property-literals-7.10.1"
-      sources."@babel/plugin-transform-regenerator-7.10.3"
-      sources."@babel/plugin-transform-reserved-words-7.10.1"
-      sources."@babel/plugin-transform-shorthand-properties-7.10.1"
-      sources."@babel/plugin-transform-spread-7.10.1"
-      sources."@babel/plugin-transform-sticky-regex-7.10.1"
-      sources."@babel/plugin-transform-template-literals-7.10.3"
-      sources."@babel/plugin-transform-typeof-symbol-7.10.1"
-      sources."@babel/plugin-transform-typescript-7.10.3"
-      sources."@babel/plugin-transform-unicode-escapes-7.10.1"
-      sources."@babel/plugin-transform-unicode-regex-7.10.1"
-      sources."@babel/preset-env-7.10.3"
-      sources."@babel/preset-flow-7.10.1"
-      sources."@babel/preset-modules-0.1.3"
-      sources."@babel/preset-typescript-7.10.1"
-      (sources."@babel/register-7.10.3" // {
+      sources."@babel/plugin-syntax-top-level-await-7.10.4"
+      sources."@babel/plugin-syntax-typescript-7.10.4"
+      sources."@babel/plugin-transform-arrow-functions-7.10.4"
+      sources."@babel/plugin-transform-async-to-generator-7.10.4"
+      sources."@babel/plugin-transform-block-scoped-functions-7.10.4"
+      sources."@babel/plugin-transform-block-scoping-7.11.1"
+      sources."@babel/plugin-transform-classes-7.10.4"
+      sources."@babel/plugin-transform-computed-properties-7.10.4"
+      sources."@babel/plugin-transform-destructuring-7.10.4"
+      sources."@babel/plugin-transform-dotall-regex-7.10.4"
+      sources."@babel/plugin-transform-duplicate-keys-7.10.4"
+      sources."@babel/plugin-transform-exponentiation-operator-7.10.4"
+      sources."@babel/plugin-transform-flow-strip-types-7.10.4"
+      sources."@babel/plugin-transform-for-of-7.10.4"
+      sources."@babel/plugin-transform-function-name-7.10.4"
+      sources."@babel/plugin-transform-literals-7.10.4"
+      sources."@babel/plugin-transform-member-expression-literals-7.10.4"
+      sources."@babel/plugin-transform-modules-amd-7.10.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.10.4"
+      sources."@babel/plugin-transform-modules-systemjs-7.10.5"
+      sources."@babel/plugin-transform-modules-umd-7.10.4"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.4"
+      sources."@babel/plugin-transform-new-target-7.10.4"
+      sources."@babel/plugin-transform-object-super-7.10.4"
+      sources."@babel/plugin-transform-parameters-7.10.5"
+      sources."@babel/plugin-transform-property-literals-7.10.4"
+      sources."@babel/plugin-transform-regenerator-7.10.4"
+      sources."@babel/plugin-transform-reserved-words-7.10.4"
+      sources."@babel/plugin-transform-shorthand-properties-7.10.4"
+      sources."@babel/plugin-transform-spread-7.11.0"
+      sources."@babel/plugin-transform-sticky-regex-7.10.4"
+      sources."@babel/plugin-transform-template-literals-7.10.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.10.4"
+      sources."@babel/plugin-transform-typescript-7.11.0"
+      sources."@babel/plugin-transform-unicode-escapes-7.10.4"
+      sources."@babel/plugin-transform-unicode-regex-7.10.4"
+      (sources."@babel/preset-env-7.11.5" // {
+        dependencies = [
+          sources."@babel/types-7.11.5"
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."@babel/preset-flow-7.10.4"
+      sources."@babel/preset-modules-0.1.4"
+      sources."@babel/preset-typescript-7.10.4"
+      (sources."@babel/register-7.11.5" // {
         dependencies = [
           sources."make-dir-2.1.0"
           sources."pify-4.0.1"
+          sources."semver-5.7.1"
         ];
       })
-      sources."@babel/runtime-7.10.3"
-      sources."@babel/template-7.10.3"
-      sources."@babel/traverse-7.10.3"
-      sources."@babel/types-7.10.3"
+      sources."@babel/runtime-7.11.2"
+      sources."@babel/template-7.10.4"
+      (sources."@babel/traverse-7.11.5" // {
+        dependencies = [
+          sources."@babel/generator-7.11.5"
+          sources."@babel/types-7.11.5"
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."@babel/types-7.10.4"
       sources."@endemolshinegroup/cosmiconfig-typescript-loader-1.0.2"
       sources."@hapi/address-2.1.4"
       sources."@hapi/bourne-1.3.2"
@@ -51007,13 +53345,15 @@ in
       sources."@hapi/joi-15.1.1"
       sources."@hapi/topo-3.1.6"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
-      sources."@nodelib/fs.stat-1.1.3"
+      sources."@nodelib/fs.scandir-2.1.3"
+      sources."@nodelib/fs.stat-2.0.3"
+      sources."@nodelib/fs.walk-1.2.4"
       (sources."@oclif/color-0.1.2" // {
         dependencies = [
           (sources."chalk-3.0.0" // {
             dependencies = [
               sources."ansi-styles-4.2.1"
-              sources."supports-color-7.1.0"
+              sources."supports-color-7.2.0"
             ];
           })
           sources."color-convert-2.0.1"
@@ -51022,18 +53362,28 @@ in
           sources."strip-ansi-5.2.0"
         ];
       })
-      (sources."@oclif/command-1.6.1" // {
+      (sources."@oclif/command-1.8.0" // {
         dependencies = [
-          sources."@oclif/plugin-help-3.1.0"
-          sources."strip-ansi-5.2.0"
+          sources."@oclif/plugin-help-3.2.0"
+          sources."semver-7.3.2"
         ];
       })
-      sources."@oclif/config-1.15.1"
-      (sources."@oclif/errors-1.2.2" // {
+      (sources."@oclif/config-1.17.0" // {
         dependencies = [
-          sources."clean-stack-1.3.0"
-          sources."indent-string-3.2.0"
-          sources."strip-ansi-5.2.0"
+          sources."globby-11.0.1"
+          sources."is-wsl-2.2.0"
+          sources."tslib-2.0.1"
+        ];
+      })
+      (sources."@oclif/errors-1.3.3" // {
+        dependencies = [
+          sources."ansi-styles-4.2.1"
+          sources."clean-stack-3.0.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."escape-string-regexp-4.0.0"
+          sources."fs-extra-9.0.1"
+          sources."wrap-ansi-7.0.0"
         ];
       })
       sources."@oclif/linewrap-1.0.0"
@@ -51041,24 +53391,40 @@ in
       sources."@oclif/plugin-autocomplete-0.2.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.7.9" // {
+      (sources."@oclif/plugin-plugins-1.9.0" // {
         dependencies = [
-          sources."@oclif/color-0.0.0"
           sources."npm-run-path-3.1.0"
           sources."path-key-3.1.1"
+          sources."semver-7.3.2"
+          sources."tslib-2.0.1"
+        ];
+      })
+      (sources."@oclif/plugin-warn-if-update-available-1.7.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
         ];
       })
-      sources."@oclif/plugin-warn-if-update-available-1.7.0"
       sources."@oclif/screen-1.0.4"
       sources."@protobufjs/aspromise-1.1.2"
       sources."@protobufjs/base64-1.1.2"
@@ -51070,7 +53436,7 @@ 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.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"
@@ -51078,52 +53444,76 @@ in
       sources."@types/connect-3.4.33"
       sources."@types/content-disposition-0.5.3"
       sources."@types/cookies-0.7.4"
-      sources."@types/cors-2.8.6"
-      sources."@types/express-4.17.4"
-      sources."@types/express-serve-static-core-4.17.8"
+      sources."@types/cors-2.8.7"
+      sources."@types/ejs-2.7.0"
+      sources."@types/express-4.17.7"
+      sources."@types/express-serve-static-core-4.17.12"
       sources."@types/fs-capacitor-2.0.0"
-      sources."@types/glob-7.1.2"
+      sources."@types/glob-7.1.3"
       sources."@types/graphql-upload-8.0.3"
       sources."@types/http-assert-1.5.1"
+      sources."@types/http-errors-1.8.0"
+      sources."@types/inquirer-6.5.0"
+      (sources."@types/jscodeshift-0.7.1" // {
+        dependencies = [
+          sources."ast-types-0.12.1"
+          sources."recast-0.17.2"
+          sources."source-map-0.6.1"
+        ];
+      })
       sources."@types/keygrip-1.0.2"
-      sources."@types/koa-2.11.3"
+      sources."@types/koa-2.11.4"
       sources."@types/koa-compose-3.2.5"
       sources."@types/long-4.0.1"
-      sources."@types/mime-2.0.2"
+      sources."@types/mime-2.0.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.0.14"
+      sources."@types/node-14.6.3"
       (sources."@types/node-fetch-2.5.7" // {
         dependencies = [
           sources."form-data-3.0.0"
         ];
       })
       sources."@types/normalize-package-data-2.4.0"
-      sources."@types/qs-6.9.3"
+      sources."@types/qs-6.9.4"
       sources."@types/range-parser-1.2.3"
-      sources."@types/serve-static-1.13.4"
-      sources."@types/ws-7.2.5"
+      sources."@types/serve-static-1.13.5"
+      sources."@types/through-0.0.30"
+      sources."@types/ws-7.2.6"
       sources."@types/zen-observable-0.8.0"
-      (sources."@vue/cli-shared-utils-4.4.6" // {
+      sources."@vue/cli-shared-utils-4.5.4"
+      (sources."@vue/cli-ui-4.5.4" // {
         dependencies = [
-          sources."semver-6.3.0"
+          sources."clone-2.1.2"
         ];
       })
-      (sources."@vue/cli-ui-4.4.6" // {
+      sources."@vue/cli-ui-addon-webpack-4.5.4"
+      sources."@vue/cli-ui-addon-widgets-4.5.4"
+      (sources."@vue/compiler-core-3.0.0-rc.10" // {
         dependencies = [
-          sources."clone-2.1.2"
+          sources."source-map-0.6.1"
         ];
       })
-      sources."@vue/cli-ui-addon-webpack-4.4.6"
-      sources."@vue/cli-ui-addon-widgets-4.4.6"
+      sources."@vue/compiler-dom-3.0.0-rc.10"
+      (sources."@vue/compiler-sfc-3.0.0-rc.10" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."@vue/compiler-ssr-3.0.0-rc.10"
+      sources."@vue/reactivity-3.0.0-rc.10"
+      sources."@vue/runtime-core-3.0.0-rc.10"
+      sources."@vue/runtime-dom-3.0.0-rc.10"
+      sources."@vue/shared-3.0.0-rc.10"
       sources."@wry/context-0.4.4"
       sources."@wry/equality-0.1.11"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
-      sources."aggregate-error-3.0.1"
-      sources."ajv-6.12.2"
+      sources."aggregate-error-3.1.0"
+      sources."ajv-6.12.4"
       (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"
         ];
@@ -51135,50 +53525,64 @@ in
       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.28.3" // {
+      (sources."apollo-2.30.3" // {
         dependencies = [
+          sources."apollo-graphql-0.6.0"
+          sources."mkdirp-1.0.4"
           sources."strip-ansi-5.2.0"
         ];
       })
       sources."apollo-cache-1.3.5"
-      sources."apollo-cache-control-0.11.0"
+      sources."apollo-cache-control-0.11.1"
       sources."apollo-cache-inmemory-1.6.6"
       sources."apollo-client-2.6.10"
-      (sources."apollo-codegen-core-0.37.3" // {
+      (sources."apollo-codegen-core-0.37.9" // {
         dependencies = [
-          sources."@babel/generator-7.10.2"
-          sources."@babel/types-7.10.2"
-          sources."recast-0.19.1"
+          sources."recast-0.20.3"
           sources."source-map-0.6.1"
+          sources."tslib-2.0.1"
         ];
       })
-      (sources."apollo-codegen-flow-0.35.3" // {
+      sources."apollo-codegen-flow-0.35.9"
+      sources."apollo-codegen-scala-0.36.9"
+      sources."apollo-codegen-swift-0.37.9"
+      sources."apollo-codegen-typescript-0.37.9"
+      sources."apollo-datasource-0.7.2"
+      (sources."apollo-engine-reporting-2.3.0" // {
         dependencies = [
-          sources."@babel/generator-7.10.2"
-          sources."@babel/types-7.10.2"
+          sources."uuid-8.3.0"
         ];
       })
-      sources."apollo-codegen-scala-0.36.3"
-      sources."apollo-codegen-swift-0.37.3"
-      (sources."apollo-codegen-typescript-0.37.3" // {
-        dependencies = [
-          sources."@babel/generator-7.10.2"
-          sources."@babel/types-7.10.2"
-        ];
-      })
-      sources."apollo-datasource-0.7.1"
-      (sources."apollo-engine-reporting-2.2.0" // {
+      sources."apollo-engine-reporting-protobuf-0.5.2"
+      sources."apollo-env-0.6.5"
+      sources."apollo-graphql-0.5.0"
+      (sources."apollo-language-server-1.23.4" // {
         dependencies = [
-          sources."uuid-8.2.0"
+          sources."apollo-graphql-0.6.0"
         ];
       })
-      sources."apollo-engine-reporting-protobuf-0.5.1"
-      sources."apollo-env-0.6.5"
-      sources."apollo-graphql-0.4.5"
-      sources."apollo-language-server-1.22.3"
       sources."apollo-link-1.2.14"
       sources."apollo-link-context-1.0.20"
       sources."apollo-link-error-1.1.13"
@@ -51187,14 +53591,14 @@ in
       sources."apollo-link-persisted-queries-0.2.2"
       sources."apollo-link-state-0.4.2"
       sources."apollo-link-ws-1.0.20"
-      sources."apollo-server-caching-0.5.1"
-      sources."apollo-server-core-2.15.0"
-      sources."apollo-server-env-2.4.4"
-      sources."apollo-server-errors-2.4.1"
-      sources."apollo-server-express-2.15.0"
-      sources."apollo-server-plugin-base-0.9.0"
-      sources."apollo-server-types-0.5.0"
-      sources."apollo-tracing-0.11.0"
+      sources."apollo-server-caching-0.5.2"
+      sources."apollo-server-core-2.17.0"
+      sources."apollo-server-env-2.4.5"
+      sources."apollo-server-errors-2.4.2"
+      sources."apollo-server-express-2.17.0"
+      sources."apollo-server-plugin-base-0.9.1"
+      sources."apollo-server-types-0.5.1"
+      sources."apollo-tracing-0.11.2"
       sources."apollo-upload-client-11.0.0"
       sources."apollo-utilities-1.3.4"
       (sources."archive-type-4.0.0" // {
@@ -51208,24 +53612,29 @@ in
       sources."arr-flatten-1.1.0"
       sources."arr-union-3.1.0"
       sources."array-flatten-1.1.1"
-      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."assert-plus-1.0.0"
       sources."assign-symbols-1.0.0"
-      sources."ast-types-0.13.3"
+      (sources."ast-types-0.14.1" // {
+        dependencies = [
+          sources."tslib-2.0.1"
+        ];
+      })
       sources."astral-regex-1.0.0"
       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.10.0"
+      sources."aws4-1.10.1"
       sources."babel-core-7.0.0-bridge.0"
       sources."babel-plugin-dynamic-import-node-2.3.3"
       sources."backo2-1.0.2"
@@ -51237,18 +53646,20 @@ in
       })
       sources."base64-js-1.3.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.2"
+      sources."bl-1.2.3"
+      sources."bluebird-3.7.2"
       (sources."body-parser-1.19.0" // {
         dependencies = [
           sources."debug-2.6.9"
           sources."http-errors-1.7.2"
           sources."inherits-2.0.3"
           sources."qs-6.7.0"
+          sources."setprototypeof-1.1.1"
         ];
       })
-      sources."boolbase-1.0.0"
       (sources."boxen-4.2.0" // {
         dependencies = [
           (sources."ansi-align-3.0.0" // {
@@ -51256,31 +53667,24 @@ in
               sources."string-width-3.1.0"
             ];
           })
-          sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.2.1"
           sources."camelcase-5.3.1"
           sources."chalk-3.0.0"
-          sources."cli-boxes-2.2.0"
+          sources."cli-boxes-2.2.1"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
-          sources."emoji-regex-8.0.0"
+          sources."emoji-regex-7.0.3"
           sources."has-flag-4.0.0"
-          sources."is-fullwidth-code-point-3.0.0"
-          (sources."string-width-4.2.0" // {
-            dependencies = [
-              sources."strip-ansi-6.0.0"
-            ];
-          })
+          sources."is-fullwidth-code-point-2.0.0"
           sources."strip-ansi-5.2.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
           sources."term-size-2.2.0"
           sources."type-fest-0.8.1"
-          sources."widest-line-3.1.0"
         ];
       })
       sources."brace-expansion-1.1.11"
-      sources."braces-2.3.2"
-      sources."browserslist-4.12.2"
+      sources."braces-3.0.2"
+      sources."browserslist-4.14.0"
       sources."buffer-5.6.0"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -51305,18 +53709,31 @@ in
       sources."caller-callsite-2.0.0"
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
-      sources."camel-case-3.0.0"
+      sources."camel-case-4.1.1"
       sources."camelcase-4.1.0"
-      sources."caniuse-lite-1.0.30001089"
+      sources."caniuse-lite-1.0.30001123"
+      sources."capital-case-1.0.3"
       sources."capture-stack-trace-1.0.1"
       sources."cardinal-2.1.1"
       sources."caseless-0.12.0"
       sources."caw-2.0.1"
       sources."chalk-2.4.2"
-      sources."change-case-3.1.0"
+      sources."change-case-4.1.1"
       sources."chardet-0.7.0"
-      sources."cheerio-1.0.0-rc.3"
-      sources."chokidar-2.1.8"
+      (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 = [
@@ -51338,14 +53755,8 @@ in
       sources."clean-stack-2.2.0"
       sources."cli-boxes-1.0.0"
       sources."cli-cursor-2.1.0"
-      (sources."cli-progress-3.8.2" // {
-        dependencies = [
-          sources."emoji-regex-8.0.0"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
-        ];
-      })
-      sources."cli-spinners-2.3.0"
+      sources."cli-progress-3.8.2"
+      sources."cli-spinners-2.4.0"
       (sources."cli-truncate-0.2.1" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -51354,18 +53765,36 @@ in
           sources."strip-ansi-3.0.1"
         ];
       })
-      (sources."cli-ux-5.4.6" // {
+      (sources."cli-ux-5.4.10" // {
         dependencies = [
           sources."ansi-escapes-4.3.1"
           sources."ansi-styles-4.2.1"
+          sources."chalk-4.1.0"
+          sources."clean-stack-3.0.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
-          sources."strip-ansi-5.2.0"
+          sources."escape-string-regexp-4.0.0"
+          sources."extract-stack-2.0.0"
+          sources."fs-extra-9.0.1"
+          sources."has-flag-4.0.0"
+          sources."is-wsl-2.2.0"
+          sources."semver-7.3.2"
+          sources."supports-color-7.2.0"
+          sources."supports-hyperlinks-2.1.0"
+          sources."tslib-2.0.1"
           sources."type-fest-0.11.0"
         ];
       })
-      sources."cli-width-2.2.1"
+      sources."cli-width-3.0.0"
       sources."clipboard-2.0.6"
+      (sources."cliui-6.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.2.1"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."wrap-ansi-6.2.0"
+        ];
+      })
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
       sources."cmd-shim-3.0.3"
@@ -51381,8 +53810,9 @@ in
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       sources."config-chain-1.1.12"
-      sources."configstore-3.1.2"
-      sources."constant-case-2.0.0"
+      sources."configstore-3.1.5"
+      sources."consolidate-0.15.1"
+      sources."constant-case-3.0.3"
       (sources."content-disposition-0.5.3" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
@@ -51411,20 +53841,24 @@ in
         ];
       })
       sources."create-error-class-3.0.2"
-      sources."cross-spawn-6.0.5"
+      (sources."cross-spawn-6.0.5" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
       sources."crypto-random-string-1.0.0"
-      sources."css-select-1.2.0"
-      sources."css-what-2.1.3"
+      sources."cssesc-3.0.0"
       sources."cssfilter-0.0.10"
+      sources."csstype-2.6.13"
       sources."csv-parser-1.12.1"
       sources."dashdash-1.14.1"
       sources."date-fns-1.30.1"
-      sources."de-indent-1.0.2"
       (sources."debug-4.2.0" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
       })
+      sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       (sources."decompress-4.2.1" // {
         dependencies = [
@@ -51464,16 +53898,11 @@ in
       sources."depd-1.1.2"
       sources."deprecated-decorator-0.1.6"
       sources."destroy-1.0.4"
-      sources."detect-indent-6.0.0"
       sources."dicer-0.3.0"
       sources."diff-4.0.2"
-      sources."dir-glob-2.2.2"
-      sources."dom-serializer-0.1.1"
-      sources."domelementtype-1.3.1"
-      sources."domhandler-2.4.2"
-      sources."domutils-1.5.1"
-      sources."dot-case-2.1.1"
-      sources."dot-prop-4.2.0"
+      sources."dir-glob-3.0.1"
+      sources."dot-case-3.0.3"
+      sources."dot-prop-4.2.1"
       sources."dotenv-8.2.0"
       (sources."download-7.1.0" // {
         dependencies = [
@@ -51490,22 +53919,24 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.3.483"
+      sources."electron-to-chromium-1.3.560"
       sources."elegant-spinner-1.0.1"
-      sources."emoji-regex-7.0.3"
+      sources."emoji-regex-8.0.0"
+      sources."emojis-list-3.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      sources."entities-1.1.2"
+      sources."entities-2.0.3"
       sources."env-ci-3.2.2"
-      sources."envinfo-7.5.1"
+      sources."envinfo-7.7.3"
       sources."error-ex-1.3.2"
       sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
-      sources."escalade-3.0.1"
+      sources."escalade-3.0.2"
       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.1"
       sources."esutils-2.0.3"
       sources."etag-1.8.1"
       sources."event-pubsub-4.3.0"
@@ -51536,6 +53967,7 @@ in
           sources."debug-2.6.9"
           sources."qs-6.7.0"
           sources."safe-buffer-5.1.2"
+          sources."setprototypeof-1.1.1"
         ];
       })
       sources."express-history-api-fallback-2.2.1"
@@ -51553,16 +53985,17 @@ in
       sources."extract-stack-1.0.0"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
-      sources."fast-glob-2.2.7"
+      sources."fast-glob-3.2.4"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
+      sources."fastq-1.8.0"
       sources."fd-slicer-1.1.0"
       sources."figures-1.7.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-4.0.0"
+      sources."fill-range-7.0.1"
       (sources."finalhandler-1.1.2" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -51572,11 +54005,12 @@ in
         dependencies = [
           sources."make-dir-2.1.0"
           sources."pify-4.0.1"
+          sources."semver-5.7.1"
         ];
       })
       sources."find-up-3.0.0"
       sources."fkill-6.2.0"
-      sources."flow-parser-0.128.0"
+      sources."flow-parser-0.133.0"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
@@ -51587,7 +54021,12 @@ in
       sources."fs-capacitor-2.0.4"
       sources."fs-constants-1.0.0"
       sources."fs-exists-sync-0.1.0"
-      sources."fs-extra-7.0.1"
+      (sources."fs-extra-7.0.1" // {
+        dependencies = [
+          sources."jsonfile-4.0.0"
+          sources."universalify-0.1.2"
+        ];
+      })
       sources."fs.realpath-1.0.0"
       sources."fsevents-1.2.13"
       sources."fswin-2.17.1227"
@@ -51595,7 +54034,9 @@ in
       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.1"
+      sources."get-caller-file-2.0.5"
       sources."get-proxy-2.1.0"
       sources."get-stream-4.1.0"
       sources."get-value-2.0.6"
@@ -51608,21 +54049,45 @@ in
           sources."graceful-fs-4.1.15"
         ];
       })
-      sources."git-up-4.0.1"
-      sources."git-url-parse-11.1.2"
+      sources."git-up-4.0.2"
+      sources."git-url-parse-11.1.3"
       sources."glob-7.1.5"
-      (sources."glob-parent-3.1.0" // {
-        dependencies = [
-          sources."is-glob-3.1.0"
-        ];
-      })
+      sources."glob-parent-5.1.1"
       sources."glob-to-regexp-0.3.0"
       sources."global-dirs-0.1.1"
       sources."globals-11.12.0"
       (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"
@@ -51633,22 +54098,21 @@ in
         ];
       })
       sources."graceful-fs-4.2.4"
-      sources."graceful-readlink-1.0.1"
-      sources."graphql-14.6.0"
+      sources."graphql-14.7.0"
       (sources."graphql-anywhere-4.2.7" // {
         dependencies = [
           sources."ts-invariant-0.3.3"
         ];
       })
-      sources."graphql-extensions-0.12.3"
+      sources."graphql-extensions-0.12.4"
       sources."graphql-subscriptions-1.1.0"
-      sources."graphql-tag-2.10.3"
+      sources."graphql-tag-2.11.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.3"
+      sources."har-validator-5.1.5"
       sources."has-1.0.3"
       (sources."has-ansi-2.0.0" // {
         dependencies = [
@@ -51662,19 +54126,19 @@ in
       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."he-1.2.0"
-      sources."header-case-1.0.1"
+      sources."header-case-2.0.3"
       sources."homedir-polyfill-1.0.3"
       sources."hosted-git-info-2.8.8"
-      (sources."htmlparser2-3.10.1" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-        ];
-      })
       sources."http-cache-semantics-3.8.1"
       (sources."http-call-5.3.0" // {
         dependencies = [
@@ -51682,40 +54146,40 @@ in
           sources."parse-json-4.0.0"
         ];
       })
-      sources."http-errors-1.7.3"
+      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.1.13"
-      sources."ignore-4.0.6"
+      sources."ignore-5.1.8"
       sources."ignore-by-default-1.0.1"
       sources."import-fresh-2.0.0"
       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.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      (sources."inquirer-7.2.0" // {
+      (sources."inquirer-7.3.3" // {
         dependencies = [
           sources."ansi-escapes-4.3.1"
           sources."ansi-styles-4.2.1"
-          sources."chalk-3.0.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."emoji-regex-8.0.0"
           sources."figures-3.2.0"
           sources."has-flag-4.0.0"
-          sources."is-fullwidth-code-point-3.0.0"
           sources."mimic-fn-2.1.0"
-          sources."onetime-5.1.0"
+          sources."onetime-5.1.2"
           sources."restore-cursor-3.1.0"
-          sources."string-width-4.2.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
           sources."type-fest-0.11.0"
         ];
       })
@@ -51733,20 +54197,15 @@ in
       sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
       sources."is-directory-0.3.1"
-      sources."is-docker-2.0.0"
+      sources."is-docker-2.1.1"
       sources."is-extendable-0.1.1"
       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-installed-globally-0.1.0"
-      sources."is-lower-case-1.1.3"
       sources."is-natural-number-4.0.1"
       sources."is-npm-1.0.0"
-      (sources."is-number-3.0.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
+      sources."is-number-7.0.0"
       sources."is-obj-1.0.1"
       sources."is-object-1.0.1"
       sources."is-observable-1.1.0"
@@ -51756,13 +54215,12 @@ in
       sources."is-promise-2.2.2"
       sources."is-property-1.0.2"
       sources."is-redirect-1.0.0"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-retry-allowed-1.2.0"
-      sources."is-ssh-1.3.1"
+      sources."is-ssh-1.3.2"
       sources."is-stream-1.1.0"
       sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
-      sources."is-upper-case-1.1.2"
       sources."is-windows-1.0.2"
       sources."is-wsl-1.1.0"
       sources."isarray-1.0.0"
@@ -51779,15 +54237,35 @@ in
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
-      sources."jscodeshift-0.10.0"
+      (sources."jscodeshift-0.10.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."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"
       sources."json-stringify-safe-5.0.1"
       sources."json5-2.1.3"
-      sources."jsonfile-4.0.0"
+      sources."jsonfile-6.0.1"
       sources."jsprim-1.4.1"
       sources."keyv-3.0.0"
       sources."kind-of-6.0.3"
@@ -51821,9 +54299,15 @@ in
           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.15"
+      sources."lodash-4.17.20"
       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.get-4.4.2"
@@ -51838,23 +54322,24 @@ in
       (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.6.8"
+      sources."loglevel-1.7.0"
       sources."long-4.0.0"
       sources."loose-envify-1.4.0"
       sources."lowdb-1.0.0"
-      sources."lower-case-1.1.4"
-      sources."lower-case-first-1.0.2"
+      sources."lower-case-2.0.1"
       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"
@@ -51862,15 +54347,15 @@ in
       sources."media-typer-0.3.0"
       sources."merge-1.2.1"
       sources."merge-descriptors-1.0.1"
-      sources."merge-stream-2.0.0"
-      sources."merge2-1.4.1"
-      sources."methods-1.1.2"
-      (sources."micromatch-3.1.10" // {
+      (sources."merge-source-map-1.1.0" // {
         dependencies = [
-          sources."extend-shallow-3.0.2"
-          sources."is-extendable-1.0.1"
+          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."mime-1.6.0"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
@@ -51885,7 +54370,7 @@ in
         ];
       })
       sources."mkdirp-0.5.5"
-      sources."moment-2.26.0"
+      sources."moment-2.27.0"
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
       sources."nan-2.14.1"
@@ -51904,9 +54389,9 @@ in
         ];
       })
       sources."negotiator-0.6.2"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       sources."nice-try-1.0.5"
-      sources."no-case-2.3.2"
+      sources."no-case-3.0.3"
       sources."node-dir-0.1.17"
       sources."node-fetch-2.6.0"
       sources."node-ipc-9.1.1"
@@ -51914,23 +54399,26 @@ in
       (sources."node-notifier-6.0.0" // {
         dependencies = [
           sources."is-wsl-2.2.0"
-          sources."semver-6.3.0"
         ];
       })
-      sources."node-releases-1.1.58"
+      sources."node-releases-1.1.60"
       (sources."nodemon-1.19.4" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."ms-2.1.2"
+          sources."semver-5.7.1"
         ];
       })
       sources."nopt-1.0.10"
-      sources."normalize-package-data-2.5.0"
+      (sources."normalize-package-data-2.5.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
       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."nth-check-1.0.2"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
@@ -51950,7 +54438,7 @@ in
       sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
       sources."object-path-0.11.4"
-      sources."object-treeify-1.1.25"
+      sources."object-treeify-1.1.26"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.0"
       sources."object.getownpropertydescriptors-2.1.0"
@@ -51975,19 +54463,22 @@ in
       sources."p-map-2.1.0"
       sources."p-timeout-2.0.1"
       sources."p-try-2.2.0"
-      sources."package-json-4.0.1"
-      sources."param-case-2.1.1"
+      (sources."package-json-4.0.1" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."param-case-3.0.3"
       sources."parse-git-config-2.0.3"
-      sources."parse-json-5.0.0"
+      sources."parse-json-5.1.0"
       sources."parse-passwd-1.0.0"
-      sources."parse-path-4.0.1"
-      sources."parse-url-5.0.1"
-      sources."parse5-3.0.3"
+      sources."parse-path-4.0.2"
+      sources."parse-url-5.0.2"
       sources."parseurl-1.3.3"
-      sources."pascal-case-2.0.1"
+      sources."pascal-case-3.1.1"
       sources."pascalcase-0.1.1"
       sources."password-prompt-1.1.2"
-      sources."path-case-2.1.1"
+      sources."path-case-3.0.3"
       sources."path-dirname-1.0.2"
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
@@ -51995,9 +54486,10 @@ in
       sources."path-key-2.0.1"
       sources."path-parse-1.0.6"
       sources."path-to-regexp-0.1.7"
-      sources."path-type-3.0.0"
+      sources."path-type-4.0.0"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
+      sources."picomatch-2.2.2"
       (sources."pid-from-port-1.1.3" // {
         dependencies = [
           sources."cross-spawn-5.1.0"
@@ -52011,20 +54503,33 @@ in
       sources."pinkie-promise-2.0.1"
       sources."pirates-4.0.1"
       sources."pkg-dir-3.0.0"
-      (sources."portfinder-1.0.26" // {
+      (sources."portfinder-1.0.28" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."ms-2.1.2"
         ];
       })
       sources."posix-character-classes-0.1.1"
+      (sources."postcss-7.0.32" // {
+        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.2"
+      sources."postcss-value-parser-4.1.0"
       sources."prepend-http-1.0.4"
-      sources."prismjs-1.20.0"
+      sources."prismjs-1.21.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.7"
+      sources."protocols-1.4.8"
       sources."proxy-addr-2.0.6"
       sources."ps-list-4.1.0"
       sources."pseudomap-1.0.2"
@@ -52039,6 +54544,7 @@ in
         dependencies = [
           sources."http-errors-1.7.2"
           sources."inherits-2.0.3"
+          sources."setprototypeof-1.1.1"
         ];
       })
       sources."rc-1.2.8"
@@ -52048,9 +54554,29 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      sources."readdirp-2.2.1"
+      (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"
         ];
       })
@@ -52058,8 +54584,8 @@ in
       sources."redeyed-2.1.1"
       sources."regenerate-1.4.1"
       sources."regenerate-unicode-properties-8.2.0"
-      sources."regenerator-runtime-0.13.5"
-      sources."regenerator-transform-0.14.4"
+      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-transform-0.14.5"
       (sources."regex-not-1.0.2" // {
         dependencies = [
           sources."extend-shallow-3.0.2"
@@ -52079,6 +54605,8 @@ in
       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.17.0"
       sources."resolve-from-3.0.0"
       sources."resolve-url-0.2.1"
@@ -52086,23 +54614,25 @@ in
       sources."restore-cursor-2.0.0"
       sources."ret-0.1.15"
       sources."retry-0.12.0"
+      sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
-      sources."rss-parser-3.8.0"
+      sources."rss-parser-3.9.0"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."run-parallel-1.1.9"
+      sources."rxjs-6.6.2"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
       sources."sec-1.0.0"
-      (sources."seek-bzip-1.0.5" // {
+      sources."seek-bzip-1.0.6"
+      sources."select-1.1.2"
+      sources."semver-6.3.0"
+      (sources."semver-diff-2.1.0" // {
         dependencies = [
-          sources."commander-2.8.1"
+          sources."semver-5.7.1"
         ];
       })
-      sources."select-1.1.2"
-      sources."semver-5.7.1"
-      sources."semver-diff-2.1.0"
       (sources."send-0.17.1" // {
         dependencies = [
           (sources."debug-2.6.9" // {
@@ -52110,13 +54640,16 @@ in
               sources."ms-2.0.0"
             ];
           })
+          sources."http-errors-1.7.3"
           sources."ms-2.1.1"
+          sources."setprototypeof-1.1.1"
         ];
       })
-      sources."sentence-case-2.1.1"
+      sources."sentence-case-3.0.3"
       sources."serve-static-1.14.1"
+      sources."set-blocking-2.0.0"
       sources."set-value-2.0.1"
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."sha.js-2.4.11"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
@@ -52127,7 +54660,7 @@ in
       sources."signal-exit-3.0.3"
       sources."slash-3.0.0"
       sources."slice-ansi-0.0.4"
-      sources."snake-case-2.1.0"
+      sources."snake-case-3.0.3"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -52166,6 +54699,7 @@ in
         ];
       })
       sources."source-map-url-0.4.0"
+      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"
@@ -52200,11 +54734,8 @@ in
       sources."steno-0.4.4"
       sources."streamsearch-0.1.2"
       sources."strict-uri-encode-1.1.0"
-      (sources."string-width-3.1.0" // {
-        dependencies = [
-          sources."strip-ansi-5.2.0"
-        ];
-      })
+      sources."string-hash-1.1.3"
+      sources."string-width-4.2.0"
       sources."string.prototype.trimend-1.0.1"
       sources."string.prototype.trimstart-1.0.1"
       (sources."string_decoder-1.1.1" // {
@@ -52223,7 +54754,7 @@ in
       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.16" // {
+      (sources."subscriptions-transport-ws-0.9.18" // {
         dependencies = [
           sources."ws-5.2.2"
         ];
@@ -52234,11 +54765,14 @@ in
           sources."has-flag-2.0.0"
         ];
       })
-      sources."swap-case-1.1.2"
       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"
@@ -52246,11 +54780,11 @@ in
         dependencies = [
           sources."cross-spawn-7.0.3"
           sources."execa-3.4.0"
-          sources."get-stream-5.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.0"
+          sources."onetime-5.1.2"
           sources."p-finally-2.0.1"
           sources."path-key-3.1.1"
           sources."shebang-command-2.0.0"
@@ -52280,7 +54814,6 @@ in
       sources."through2-2.0.5"
       sources."timed-out-4.0.1"
       sources."tiny-emitter-2.1.0"
-      sources."title-case-2.1.1"
       sources."tmp-0.0.33"
       sources."to-buffer-1.1.1"
       sources."to-fast-properties-2.0.0"
@@ -52295,7 +54828,7 @@ in
           sources."is-extendable-1.0.1"
         ];
       })
-      sources."to-regex-range-2.1.1"
+      sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
       sources."touch-3.1.0"
       sources."tough-cookie-2.5.0"
@@ -52309,7 +54842,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-fest-0.6.0"
       sources."type-is-1.6.18"
-      sources."typescript-3.9.5"
+      sources."typescript-3.9.7"
       sources."unbzip2-stream-1.4.3"
       (sources."undefsafe-2.0.3" // {
         dependencies = [
@@ -52321,8 +54854,9 @@ in
       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."universalify-1.0.0"
       sources."unpipe-1.0.0"
       (sources."unset-value-1.0.0" // {
         dependencies = [
@@ -52340,13 +54874,15 @@ in
         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-1.1.3"
-      sources."upper-case-first-1.1.2"
-      sources."uri-js-4.2.2"
+      sources."upper-case-2.0.1"
+      sources."upper-case-first-2.0.1"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."url-parse-lax-1.0.0"
       sources."url-to-options-1.0.1"
@@ -52364,44 +54900,41 @@ in
       sources."vscode-languageserver-protocol-3.14.1"
       sources."vscode-languageserver-types-3.14.0"
       sources."vscode-uri-1.0.6"
-      sources."vue-2.6.11"
+      sources."vue-2.6.12"
       (sources."vue-cli-plugin-apollo-0.21.3" // {
         dependencies = [
           sources."cross-spawn-7.0.3"
           sources."execa-3.4.0"
           sources."fs-extra-8.1.0"
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."is-stream-2.0.0"
+          sources."jsonfile-4.0.0"
           sources."mimic-fn-2.1.0"
           sources."npm-run-path-4.0.1"
-          sources."onetime-5.1.0"
+          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."universalify-0.1.2"
           sources."which-2.0.2"
         ];
       })
-      sources."vue-jscodeshift-adapter-2.1.0"
-      (sources."vue-sfc-descriptor-to-string-1.0.0" // {
+      (sources."vue-codemod-0.0.4" // {
         dependencies = [
-          sources."indent-string-3.2.0"
+          sources."globby-10.0.2"
+          sources."vue-3.0.0-rc.10"
         ];
       })
-      sources."vue-template-compiler-2.6.11"
       sources."watch-1.0.2"
       sources."wcwidth-1.0.1"
       sources."which-1.3.1"
-      (sources."widest-line-2.0.1" // {
-        dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."string-width-2.1.1"
-          sources."strip-ansi-4.0.0"
-        ];
-      })
+      sources."which-module-2.0.0"
+      sources."widest-line-3.1.0"
       (sources."wrap-ansi-4.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"
         ];
@@ -52412,15 +54945,29 @@ in
       sources."xdg-basedir-3.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
-      sources."xss-1.0.7"
+      sources."xss-1.0.8"
       sources."xtend-4.0.2"
+      sources."y18n-4.0.0"
       sources."yallist-2.1.2"
       (sources."yaml-front-matter-3.4.1" // {
         dependencies = [
           sources."commander-1.0.0"
         ];
       })
-      sources."yarn-1.22.4"
+      (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.5"
       sources."yauzl-2.10.0"
       sources."yn-3.1.1"
       sources."zen-observable-0.8.15"
@@ -52560,13 +55107,13 @@ in
       sha512 = "O+nGHNGmkxo6g0X8BgsN5pSTi+iaYJ0noo28Vwwqgugdelcy6FNZmGWXR68KDQdnMXSjwD3eQVJTz21PCN9Qng==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/generator-7.10.3"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      sources."@babel/highlight-7.10.3"
-      sources."@babel/parser-7.10.3"
-      sources."@babel/template-7.10.3"
-      sources."@babel/types-7.10.3"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/generator-7.11.5"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@babel/template-7.10.4"
+      sources."@babel/types-7.11.5"
       sources."@webassemblyjs/ast-1.9.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
       sources."@webassemblyjs/helper-api-error-1.9.0"
@@ -52591,8 +55138,8 @@ in
       sources."has-flag-3.0.0"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
-      sources."lodash-4.17.15"
-      sources."source-map-0.5.7"
+      sources."lodash-4.17.20"
+      sources."source-map-0.6.1"
       sources."supports-color-5.5.0"
       sources."to-fast-properties-2.0.0"
     ];
@@ -52639,39 +55186,31 @@ in
   alloy = nodeEnv.buildNodePackage {
     name = "alloy";
     packageName = "alloy";
-    version = "1.14.6";
+    version = "1.15.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/alloy/-/alloy-1.14.6.tgz";
-      sha512 = "M+DxWKG35yfUrJj58i6ohTrf8EaRkk9mFj/QSXxUvmqsyYrBmpQT1RnITzk7HY0QVxW1Oiw9zjxGVrQeozJL/w==";
+      url = "https://registry.npmjs.org/alloy/-/alloy-1.15.1.tgz";
+      sha512 = "exbloxT1pbivXVDOKYG9sG6mu7dv1ppn6pgkqYsKRtwBEqgNFKi9AlR7Gr8DL2wZOxQNExv4MoGYdPvoc6sGpg==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      (sources."@babel/core-7.10.3" // {
-        dependencies = [
-          sources."source-map-0.5.7"
-        ];
-      })
-      (sources."@babel/generator-7.10.3" // {
-        dependencies = [
-          sources."source-map-0.5.7"
-        ];
-      })
-      sources."@babel/helper-function-name-7.10.3"
-      sources."@babel/helper-get-function-arity-7.10.3"
-      sources."@babel/helper-member-expression-to-functions-7.10.3"
-      sources."@babel/helper-module-imports-7.10.3"
-      sources."@babel/helper-module-transforms-7.10.1"
-      sources."@babel/helper-optimise-call-expression-7.10.3"
-      sources."@babel/helper-replace-supers-7.10.1"
-      sources."@babel/helper-simple-access-7.10.1"
-      sources."@babel/helper-split-export-declaration-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      sources."@babel/helpers-7.10.1"
-      sources."@babel/highlight-7.10.3"
-      sources."@babel/parser-7.10.3"
-      sources."@babel/template-7.10.3"
-      sources."@babel/traverse-7.10.3"
-      sources."@babel/types-7.10.3"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/core-7.11.5"
+      sources."@babel/generator-7.11.5"
+      sources."@babel/helper-function-name-7.10.4"
+      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-member-expression-to-functions-7.11.0"
+      sources."@babel/helper-module-imports-7.10.4"
+      sources."@babel/helper-module-transforms-7.11.0"
+      sources."@babel/helper-optimise-call-expression-7.10.4"
+      sources."@babel/helper-replace-supers-7.10.4"
+      sources."@babel/helper-simple-access-7.10.4"
+      sources."@babel/helper-split-export-declaration-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helpers-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.5"
+      sources."@babel/types-7.11.5"
       sources."JSV-4.0.2"
       sources."ansi-styles-3.2.1"
       sources."array-unique-0.3.2"
@@ -52719,7 +55258,7 @@ in
       sources."json5-2.1.3"
       sources."jsonfile-4.0.0"
       sources."jsonlint-1.6.2"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."matcher-collection-1.1.2"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -52770,9 +55309,9 @@ in
       sha512 = "k7zd+KoR+n8pl71PvgElcoKHrVNiSXtw7odKbyNpmgKe7EGRF9Pnu3uLOukD37EvavKwVFxOUpqXTIZC5B5Pmw==";
     };
     dependencies = [
-      sources."@types/glob-7.1.2"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.0.14"
+      sources."@types/node-14.6.3"
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."chromium-pickle-js-0.2.0"
@@ -52800,13 +55339,13 @@ in
   bash-language-server = nodeEnv.buildNodePackage {
     name = "bash-language-server";
     packageName = "bash-language-server";
-    version = "1.16.1";
+    version = "1.17.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-1.16.1.tgz";
-      sha512 = "IS1Ix7qyRq7GTMXqhHUF44yY89i/1Ucn5KFLimEfDpwU1f3GvbV9VnDpqpG6kedJsl2LigEthSnoVlzaOwgt0g==";
+      url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-1.17.0.tgz";
+      sha512 = "t80ktUFL9DPaTO7yydoNYXIDKINweWbFvvUXesltmWj7UaIyepIVRAWUp4+62udJtor1VxVFEAXnsVDA640flw==";
     };
     dependencies = [
-      sources."abab-2.0.3"
+      sources."abab-2.0.4"
       sources."acorn-5.7.4"
       (sources."acorn-globals-4.3.4" // {
         dependencies = [
@@ -52814,14 +55353,14 @@ in
         ];
       })
       sources."acorn-walk-6.2.0"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."array-equal-1.0.0"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
@@ -52858,7 +55397,7 @@ in
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."html-encoding-sniffer-1.0.2"
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
@@ -52874,7 +55413,7 @@ in
       sources."jsprim-1.4.1"
       sources."left-pad-1.3.0"
       sources."levn-0.3.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.sortby-4.7.0"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
@@ -52892,8 +55431,8 @@ in
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
       sources."request-2.88.2"
-      sources."request-promise-core-1.1.3"
-      sources."request-promise-native-1.0.8"
+      sources."request-promise-core-1.1.4"
+      sources."request-promise-native-1.0.9"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
@@ -52907,7 +55446,7 @@ in
       sources."turndown-4.0.2"
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urijs-1.19.2"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
@@ -53088,17 +55627,17 @@ in
   browserify = nodeEnv.buildNodePackage {
     name = "browserify";
     packageName = "browserify";
-    version = "16.5.1";
+    version = "16.5.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/browserify/-/browserify-16.5.1.tgz";
-      sha512 = "EQX0h59Pp+0GtSRb5rL6OTfrttlzv+uyaUVlK6GX3w11SQ0jKPKyjC/54RhPR2ib2KmfcELM06e8FxcI5XNU2A==";
+      url = "https://registry.npmjs.org/browserify/-/browserify-16.5.2.tgz";
+      sha512 = "TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g==";
     };
     dependencies = [
       sources."JSONStream-1.3.5"
-      sources."acorn-7.3.1"
+      sources."acorn-7.4.0"
       sources."acorn-node-1.8.2"
       sources."acorn-walk-7.2.0"
-      (sources."asn1.js-4.10.1" // {
+      (sources."asn1.js-5.4.1" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -53111,15 +55650,11 @@ in
       })
       sources."balanced-match-1.0.0"
       sources."base64-js-1.3.1"
-      sources."bn.js-5.1.2"
+      sources."bn.js-5.1.3"
       sources."brace-expansion-1.1.11"
       sources."brorand-1.1.0"
       sources."browser-pack-6.1.0"
-      (sources."browser-resolve-1.11.3" // {
-        dependencies = [
-          sources."resolve-1.1.7"
-        ];
-      })
+      sources."browser-resolve-2.0.0"
       sources."browserify-aes-1.2.0"
       sources."browserify-cipher-1.0.1"
       sources."browserify-des-1.0.2"
@@ -53128,7 +55663,7 @@ in
           sources."bn.js-4.11.9"
         ];
       })
-      (sources."browserify-sign-4.2.0" // {
+      (sources."browserify-sign-4.2.1" // {
         dependencies = [
           sources."readable-stream-3.6.0"
         ];
@@ -53147,7 +55682,7 @@ in
       sources."constants-browserify-1.0.0"
       sources."convert-source-map-1.1.3"
       sources."core-util-is-1.0.2"
-      (sources."create-ecdh-4.0.3" // {
+      (sources."create-ecdh-4.0.4" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -53212,13 +55747,13 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-classic-0.5.3"
-      sources."module-deps-6.2.2"
+      sources."module-deps-6.2.3"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
       sources."os-browserify-0.3.0"
       sources."pako-1.0.11"
       sources."parents-1.0.1"
-      sources."parse-asn1-5.1.5"
+      sources."parse-asn1-5.1.6"
       sources."path-browserify-0.0.1"
       sources."path-is-absolute-1.0.1"
       sources."path-parse-1.0.6"
@@ -53246,11 +55781,12 @@ in
       sources."resolve-1.17.0"
       sources."ripemd160-2.0.2"
       sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
       sources."sha.js-2.4.11"
       sources."shasum-1.0.2"
       sources."shasum-object-1.0.0"
       sources."shell-quote-1.7.2"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."source-map-0.5.7"
       sources."stream-browserify-2.0.2"
       sources."stream-combiner2-1.1.1"
@@ -53315,10 +55851,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.12"
+      sources."@types/node-13.13.16"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.2.16"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ansi-regex-1.1.1"
       sources."ansi-styles-2.2.1"
       sources."append-0.1.1"
@@ -53330,7 +55866,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
@@ -53376,7 +55912,7 @@ in
       sources."co-3.1.0"
       sources."codepage-1.4.0"
       sources."combined-stream-1.0.8"
-      sources."commander-5.1.0"
+      sources."commander-6.1.0"
       sources."compact2string-1.4.1"
       sources."concat-map-0.0.1"
       (sources."concat-stream-2.0.0" // {
@@ -53438,7 +55974,7 @@ in
       sources."got-1.2.2"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-ansi-1.0.3"
       sources."hat-0.0.3"
       sources."hosted-git-info-2.8.8"
@@ -53452,7 +55988,7 @@ in
       sources."internal-ip-1.2.0"
       sources."ip-1.1.5"
       sources."ip-set-1.0.2"
-      sources."ipaddr.js-1.9.1"
+      sources."ipaddr.js-2.0.0"
       sources."is-arrayish-0.2.1"
       sources."is-finite-1.1.0"
       sources."is-typedarray-1.0.0"
@@ -53477,7 +56013,7 @@ in
       sources."long-4.0.0"
       sources."loud-rejection-1.6.0"
       sources."lru-2.0.1"
-      sources."magnet-uri-5.2.4"
+      sources."magnet-uri-5.3.0"
       sources."map-obj-1.0.1"
       (sources."mdns-js-1.0.3" // {
         dependencies = [
@@ -53556,7 +56092,7 @@ in
       sources."plist-3.0.1"
       sources."process-nextick-args-2.0.1"
       sources."promiscuous-0.6.0"
-      sources."protobufjs-6.9.0"
+      sources."protobufjs-6.10.1"
       sources."psl-1.8.0"
       (sources."pump-0.3.5" // {
         dependencies = [
@@ -53608,7 +56144,7 @@ in
       sources."sax-1.2.4"
       sources."semver-5.7.1"
       sources."signal-exit-3.0.3"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
       (sources."simple-peer-6.4.4" // {
         dependencies = [
@@ -53641,7 +56177,11 @@ in
       sources."srt2vtt-1.3.1"
       sources."sshpk-1.16.1"
       sources."stream-transcoder-0.0.5"
-      sources."string2compact-1.3.0"
+      (sources."string2compact-1.3.0" // {
+        dependencies = [
+          sources."ipaddr.js-1.9.1"
+        ];
+      })
       sources."string_decoder-0.10.31"
       sources."strip-ansi-2.0.1"
       sources."strip-bom-2.0.0"
@@ -53671,7 +56211,7 @@ in
       sources."ultron-1.1.1"
       sources."underscore-1.6.0"
       sources."uniq-1.0.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."utfx-1.0.1"
       sources."util-deprecate-1.0.2"
       sources."utp-0.0.7"
@@ -53746,10 +56286,10 @@ in
   coc-css = nodeEnv.buildNodePackage {
     name = "coc-css";
     packageName = "coc-css";
-    version = "1.2.3";
+    version = "1.2.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-css/-/coc-css-1.2.3.tgz";
-      sha512 = "6/JhWv31agvUvcUVKewpJ0z+A8ZMrRXPNNy+YohNausiw7nqKnBSnLIO0II0hXgjdAryoSGnBC/NjH7Q5P0IDw==";
+      url = "https://registry.npmjs.org/coc-css/-/coc-css-1.2.4.tgz";
+      sha512 = "SvYsSjLJHHESTORGLsPI/QPiA5zB2z+cC9eaJ638yhh6qTZIwFHM0p5v1ZfflK+FUdJgiDz87oyWnUKVP1wZ7Q==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53763,10 +56303,10 @@ in
   coc-emmet = nodeEnv.buildNodePackage {
     name = "coc-emmet";
     packageName = "coc-emmet";
-    version = "1.1.4";
+    version = "1.1.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-emmet/-/coc-emmet-1.1.4.tgz";
-      sha512 = "hxpldh4WYgq7JOQeAynEy+uM2M12RnxTlmY3cCDpZrkCJGZwz4BRYseXhuwieaFiut0OzqBEtWIcZLLrzROKMA==";
+      url = "https://registry.npmjs.org/coc-emmet/-/coc-emmet-1.1.6.tgz";
+      sha512 = "lvHA9iSgU/46Iw7E14tSP+Hh1e6STYUegqTBGDPQ/9L9JOicE2USqwuo2y5cbslc2RQqv3EdUIr9nQf0T725mQ==";
     };
     dependencies = [
       sources."@emmetio/extract-abbreviation-0.1.6"
@@ -53803,10 +56343,10 @@ in
   coc-git = nodeEnv.buildNodePackage {
     name = "coc-git";
     packageName = "coc-git";
-    version = "1.7.15";
+    version = "1.8.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-git/-/coc-git-1.7.15.tgz";
-      sha512 = "R2h5x0j9FLlGZLEMlEnvoIors0b10yC2eBYkyYlwEFavWZn9DXwpnL3r2p6VUKNY02pwEyTGY0L5ffnPFZsUWA==";
+      url = "https://registry.npmjs.org/coc-git/-/coc-git-1.8.3.tgz";
+      sha512 = "wXUzr9EvZ4booUhGSXbuvwiRivQ8CJd/TtEpff/XHQTxGrst6t7Kevs1PAf8q7tKioH2Nu+T0FWw30tN9PTXuQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53821,15 +56361,15 @@ in
   coc-go = nodeEnv.buildNodePackage {
     name = "coc-go";
     packageName = "coc-go";
-    version = "0.8.0";
+    version = "0.10.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-go/-/coc-go-0.8.0.tgz";
-      sha512 = "PMMybjPvAT+gGZDRaTmq1rIe59JsG9WRWWzVlT3gRo/Zp5Xwg2ho424m65ubGgre/UU23D9LVH9FLZDU4NH2Gg==";
+      url = "https://registry.npmjs.org/coc-go/-/coc-go-0.10.0.tgz";
+      sha512 = "BBx3JsU9SLXnRrNy+2a5gFKNu0g8r2uKHlfKLmcFpc7x4PW0RS7gTgW3DGL2ye2tXUcFfcOvXkkTQd5urY+M4Q==";
     };
     dependencies = [
       sources."isexe-2.0.0"
       sources."node-fetch-2.6.0"
-      sources."tslib-2.0.0"
+      sources."tslib-2.0.1"
       sources."which-2.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -53867,7 +56407,7 @@ in
       sha512 = "gr0GBKeew88n8hcn4fkzIcBruhih7YAqBd7ldsYjoG2qZhjPEj/arYESFOYgooX1jYuxCpQYH526EXXzs4BGRQ==";
     };
     dependencies = [
-      sources."typescript-3.9.5"
+      sources."typescript-3.9.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -53899,10 +56439,10 @@ in
   coc-java = nodeEnv.buildNodePackage {
     name = "coc-java";
     packageName = "coc-java";
-    version = "1.4.11";
+    version = "1.4.12";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-java/-/coc-java-1.4.11.tgz";
-      sha512 = "Dh6q45+NKNqFxWXWOMD5eq74Egr0iuWq9nO6T/+L3yd4FL+b+whFFSdWiehifJQwx83lAGQ3TjdEjLnUT29+/Q==";
+      url = "https://registry.npmjs.org/coc-java/-/coc-java-1.4.12.tgz";
+      sha512 = "kKvT5ESFDOVPZ2iO4MQ2FkWj88kZqcczpQDqYD1tBgrLAGD0YnEzSzK6paI+kJYqk945X/k66Kcq5YbercvmqA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53952,10 +56492,10 @@ in
   coc-lists = nodeEnv.buildNodePackage {
     name = "coc-lists";
     packageName = "coc-lists";
-    version = "1.3.8";
+    version = "1.3.10";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-lists/-/coc-lists-1.3.8.tgz";
-      sha512 = "fQUlrvZ06EacKHDQDNEgO6wW/5u6oY/0dm3JsdqRVfBcK3+hyGf9rfsDom1qxpjBt4CgPiLTRwbDqmvpwaI0Zg==";
+      url = "https://registry.npmjs.org/coc-lists/-/coc-lists-1.3.10.tgz";
+      sha512 = "XbwltkjxhzzfN5In3w43TBKFbR1b8+3OgIldwYQOUYHlUxF1KO2mJj8ngkzKsaglIPeMYuWtWizOS02L74fKkA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53970,13 +56510,12 @@ in
   coc-metals = nodeEnv.buildNodePackage {
     name = "coc-metals";
     packageName = "coc-metals";
-    version = "0.8.3";
+    version = "0.9.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-metals/-/coc-metals-0.8.3.tgz";
-      sha512 = "DfDQbgbnau8CvTa1uEkYuZnMSaOqnQDvNxbwRi24q3t8z/DwMwEubon/lITGM02CkQH5PnfhE5fJYxt6/Q1wvA==";
+      url = "https://registry.npmjs.org/coc-metals/-/coc-metals-0.9.2.tgz";
+      sha512 = "zfDFLxwOI6MSR/DIXWRUBtdcllVCduQPnCL7J5PIZX8y+TALshGwsSJCv2TY1wrRB9gxuVhaoBwr0kb2WRS8JA==";
     };
     dependencies = [
-      sources."@babel/runtime-7.10.3"
       sources."@chemzqm/neovim-5.1.9"
       sources."async-2.6.3"
       sources."await-semaphore-0.1.3"
@@ -53994,8 +56533,8 @@ in
       sources."fast-diff-1.2.0"
       sources."fb-watchman-2.0.1"
       sources."flatted-2.0.2"
-      sources."follow-redirects-1.12.1"
-      sources."fp-ts-2.6.6"
+      sources."follow-redirects-1.13.0"
+      sources."fp-ts-2.8.2"
       sources."fs-extra-8.1.0"
       sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
@@ -54009,16 +56548,16 @@ in
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isuri-2.0.3"
-      sources."jsonc-parser-2.2.1"
+      sources."jsonc-parser-2.3.0"
       sources."jsonfile-4.0.0"
       (sources."locate-java-home-1.1.2" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."log4js-5.3.0"
-      (sources."metals-languageclient-0.2.2" // {
+      (sources."metals-languageclient-0.3.0" // {
         dependencies = [
           sources."mkdirp-1.0.4"
           sources."semver-7.3.2"
@@ -54042,9 +56581,8 @@ in
       sources."node-int64-0.4.0"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
-      sources."promisify-child-process-3.1.4"
+      sources."promisify-child-process-4.1.1"
       sources."rc-1.2.8"
-      sources."regenerator-runtime-0.13.5"
       sources."rfc-3986-1.0.1"
       sources."rfdc-1.1.4"
       sources."rimraf-3.0.2"
@@ -54096,27 +56634,29 @@ in
   coc-prettier = nodeEnv.buildNodePackage {
     name = "coc-prettier";
     packageName = "coc-prettier";
-    version = "1.1.14";
+    version = "1.1.17";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-prettier/-/coc-prettier-1.1.14.tgz";
-      sha512 = "NMc/nWUPigKq4rLAvgEOKxTDFkLbp6waK0K3M2V+oZfsJxUrJ4LPEA6yP/DY1RO7trnVCHsTtjYWT+1PauGqkQ==";
+      url = "https://registry.npmjs.org/coc-prettier/-/coc-prettier-1.1.17.tgz";
+      sha512 = "KwHA9HvRs4W6OKd+aVa7/R2YzyVSogWpPUVX8wJ8vBEp5U2VHqfjwhyvN9BFEo1FEkyigXG6DI44jtq47eE5YQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      sources."@babel/highlight-7.10.3"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
       sources."@types/color-name-1.1.1"
       sources."@types/eslint-visitor-keys-1.0.0"
-      sources."@types/json-schema-7.0.5"
-      sources."@typescript-eslint/experimental-utils-3.4.0"
-      sources."@typescript-eslint/parser-3.4.0"
-      sources."@typescript-eslint/typescript-estree-3.4.0"
-      sources."acorn-7.3.1"
+      sources."@types/json-schema-7.0.6"
+      sources."@typescript-eslint/experimental-utils-3.10.1"
+      sources."@typescript-eslint/parser-3.10.1"
+      sources."@typescript-eslint/types-3.10.1"
+      sources."@typescript-eslint/typescript-estree-3.10.1"
+      sources."@typescript-eslint/visitor-keys-3.10.1"
+      sources."acorn-7.4.0"
       sources."acorn-jsx-5.2.0"
-      sources."ajv-6.12.2"
-      sources."ajv-keywords-3.5.0"
+      sources."ajv-6.12.4"
+      sources."ajv-keywords-3.5.2"
       (sources."ansi-align-2.0.0" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
@@ -54175,7 +56715,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-2.1.1"
       sources."camelcase-keys-2.1.0"
-      sources."caniuse-lite-1.0.30001089"
+      sources."caniuse-lite-1.0.30001123"
       sources."capture-stack-trace-1.0.1"
       sources."ccount-1.0.5"
       sources."chalk-2.4.2"
@@ -54206,7 +56746,7 @@ in
       })
       sources."cli-boxes-1.0.0"
       sources."cli-cursor-3.1.0"
-      sources."cli-width-2.2.1"
+      sources."cli-width-3.0.0"
       (sources."cliui-4.1.0" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
@@ -54225,13 +56765,14 @@ in
       sources."common-tags-1.8.0"
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
-      (sources."configstore-3.1.2" // {
+      (sources."configstore-3.1.5" // {
         dependencies = [
-          sources."dot-prop-4.2.0"
+          sources."dot-prop-4.2.1"
           sources."is-obj-1.0.1"
         ];
       })
       sources."copy-descriptor-0.1.1"
+      sources."core-js-3.6.5"
       sources."cosmiconfig-3.1.0"
       sources."create-error-class-3.0.2"
       (sources."cross-spawn-6.0.5" // {
@@ -54271,7 +56812,7 @@ in
       sources."domutils-1.7.0"
       sources."dot-prop-5.2.0"
       sources."duplexer3-0.1.4"
-      sources."electron-to-chromium-1.3.483"
+      sources."electron-to-chromium-1.3.560"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."entities-1.1.2"
@@ -54290,10 +56831,14 @@ in
       sources."esprima-4.0.1"
       (sources."esquery-1.3.1" // {
         dependencies = [
-          sources."estraverse-5.1.0"
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       (sources."execa-0.7.0" // {
@@ -54449,15 +56994,15 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      (sources."inquirer-7.2.0" // {
+      (sources."inquirer-7.3.3" // {
         dependencies = [
           sources."ansi-styles-4.2.1"
-          sources."chalk-3.0.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.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."invert-kv-2.0.0"
@@ -54517,7 +57062,7 @@ in
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-2.1.0"
-      sources."js-base64-2.6.2"
+      sources."js-base64-2.6.4"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.0"
       sources."json-parse-better-errors-1.0.2"
@@ -54535,10 +57080,10 @@ in
         ];
       })
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.merge-4.6.2"
       sources."log-symbols-2.2.0"
-      sources."loglevel-1.6.8"
+      sources."loglevel-1.7.0"
       (sources."loglevel-colored-level-prefix-1.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -54628,7 +57173,7 @@ in
         ];
       })
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
+      sources."onetime-5.1.2"
       sources."optionator-0.8.3"
       (sources."os-locale-3.1.0" // {
         dependencies = [
@@ -54703,7 +57248,7 @@ in
       sources."prelude-ls-1.1.2"
       sources."prepend-http-1.0.4"
       sources."preserve-0.2.0"
-      sources."prettier-2.0.5"
+      sources."prettier-2.1.1"
       (sources."prettier-eslint-10.1.1" // {
         dependencies = [
           sources."prettier-1.19.1"
@@ -54787,7 +57332,7 @@ in
       sources."ret-0.1.15"
       sources."rimraf-2.6.3"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.2"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
@@ -54887,7 +57432,7 @@ in
           sources."get-stdin-4.0.1"
         ];
       })
-      sources."strip-json-comments-3.1.0"
+      sources."strip-json-comments-3.1.1"
       sources."style-search-0.1.0"
       (sources."stylelint-8.4.0" // {
         dependencies = [
@@ -54958,7 +57503,7 @@ in
       sources."tsutils-3.17.1"
       sources."type-check-0.3.2"
       sources."type-fest-0.8.1"
-      sources."typescript-3.9.5"
+      sources."typescript-3.9.7"
       sources."unherit-1.1.3"
       sources."unified-6.2.0"
       sources."union-value-1.0.1"
@@ -54983,7 +57528,7 @@ in
       })
       sources."unzip-response-2.0.1"
       sources."update-notifier-2.5.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."url-parse-lax-1.0.0"
       sources."use-3.1.1"
@@ -55101,10 +57646,10 @@ in
   coc-rust-analyzer = nodeEnv.buildNodePackage {
     name = "coc-rust-analyzer";
     packageName = "coc-rust-analyzer";
-    version = "0.7.8";
+    version = "0.7.16";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.7.8.tgz";
-      sha512 = "u+ts1qfvbVASsgC8DMrF6ba1llKrTwMfRd0otwJUG+LT8D452EdJE29w4ECtvB/T0fr766GdGV8n0JffUgFE9g==";
+      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.7.16.tgz";
+      sha512 = "nYF/RznvKMwVXrW5z4k6Wrw13T6ogdF4TraAMp0P4upAHKhJkkA2aWwzCPiyq9wdadsp9/njWvmMTt5klfAI+g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -55177,34 +57722,42 @@ in
       sha512 = "+dVV5p9OBXyBGKFPQAS5a1SFvikSbYtYXyzPCkvYqYAqDiJlmFVEyi1aP+FI17Y/094u7mFeDQJlSd7IXVgO7w==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/core-7.10.3"
-      sources."@babel/generator-7.10.3"
-      sources."@babel/helper-function-name-7.10.3"
-      sources."@babel/helper-get-function-arity-7.10.3"
-      sources."@babel/helper-member-expression-to-functions-7.10.3"
-      sources."@babel/helper-module-imports-7.10.3"
-      sources."@babel/helper-module-transforms-7.10.1"
-      sources."@babel/helper-optimise-call-expression-7.10.3"
-      sources."@babel/helper-replace-supers-7.10.1"
-      sources."@babel/helper-simple-access-7.10.1"
-      sources."@babel/helper-split-export-declaration-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      sources."@babel/helpers-7.10.1"
-      sources."@babel/highlight-7.10.3"
-      sources."@babel/parser-7.10.3"
-      sources."@babel/template-7.10.3"
-      sources."@babel/traverse-7.10.3"
-      sources."@babel/types-7.10.3"
+      sources."@babel/code-frame-7.10.4"
+      (sources."@babel/core-7.11.5" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      (sources."@babel/generator-7.11.5" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."@babel/helper-function-name-7.10.4"
+      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-member-expression-to-functions-7.11.0"
+      sources."@babel/helper-module-imports-7.10.4"
+      sources."@babel/helper-module-transforms-7.11.0"
+      sources."@babel/helper-optimise-call-expression-7.10.4"
+      sources."@babel/helper-replace-supers-7.10.4"
+      sources."@babel/helper-simple-access-7.10.4"
+      sources."@babel/helper-split-export-declaration-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helpers-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.5"
+      sources."@babel/types-7.11.5"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
-      sources."@types/glob-7.1.2"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.0.14"
+      sources."@types/node-14.6.3"
       sources."@types/unist-2.0.3"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -55225,7 +57778,7 @@ in
       sources."assign-symbols-1.0.0"
       sources."astral-regex-1.0.0"
       sources."atob-2.1.2"
-      (sources."autoprefixer-9.8.4" // {
+      (sources."autoprefixer-9.8.6" // {
         dependencies = [
           sources."postcss-value-parser-4.1.0"
         ];
@@ -55243,7 +57796,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."browserslist-4.12.2"
+      sources."browserslist-4.14.0"
       sources."cache-base-1.0.1"
       sources."call-me-maybe-1.0.1"
       sources."caller-callsite-2.0.0"
@@ -55251,7 +57804,7 @@ in
       sources."callsites-2.0.0"
       sources."camelcase-4.1.0"
       sources."camelcase-keys-4.2.0"
-      sources."caniuse-lite-1.0.30001089"
+      sources."caniuse-lite-1.0.30001123"
       sources."ccount-1.0.5"
       sources."chalk-2.4.2"
       sources."character-entities-1.2.4"
@@ -55280,7 +57833,7 @@ in
       sources."collection-visit-1.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."colorette-1.2.0"
+      sources."colorette-1.2.1"
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       (sources."convert-source-map-1.7.0" // {
@@ -55311,11 +57864,11 @@ in
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
       sources."dot-prop-5.2.0"
-      sources."electron-to-chromium-1.3.483"
+      sources."electron-to-chromium-1.3.560"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
-      sources."escalade-3.0.1"
+      sources."escalade-3.0.2"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
       sources."execall-2.0.0"
@@ -55461,7 +58014,7 @@ in
         ];
       })
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."log-symbols-3.0.0"
       sources."longest-streak-2.0.4"
       sources."loud-rejection-1.6.0"
@@ -55493,7 +58046,7 @@ in
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
       sources."nanomatch-1.2.13"
-      sources."node-releases-1.1.58"
+      sources."node-releases-1.1.60"
       sources."normalize-package-data-2.5.0"
       sources."normalize-range-0.1.2"
       sources."normalize-selector-0.2.0"
@@ -55706,7 +58259,7 @@ in
           sources."has-values-0.1.4"
         ];
       })
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
@@ -55771,9 +58324,9 @@ in
       sha512 = "5Zxv2Adtb6Mlpv2YdKErhf8ntxiBl1UyrbEqo7gR9nFIAfi3o0Ue6TJTpZfOhQViFQxLjJAS65IQVRaNlbhkxw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      sources."@babel/highlight-7.10.3"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
       sources."balanced-match-1.0.0"
@@ -55807,7 +58360,7 @@ in
       sources."tslib-1.13.0"
       sources."tslint-5.20.1"
       sources."tsutils-2.29.0"
-      sources."typescript-3.9.5"
+      sources."typescript-3.9.7"
       sources."wrappy-1.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -55856,13 +58409,13 @@ in
   coc-tsserver = nodeEnv.buildNodePackage {
     name = "coc-tsserver";
     packageName = "coc-tsserver";
-    version = "1.5.2";
+    version = "1.5.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-1.5.2.tgz";
-      sha512 = "jDmG/yzx5MMCk57o8fyV3G3AHHj274pI2mJMiq5pQWEAvKRa2XNrdav/JgAtvfhD0lYZTELgw9juqiyybSHk9g==";
+      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-1.5.5.tgz";
+      sha512 = "pfRHS22Ves4wmooLo92b57iHHVPdITQwPStx0IKe2Ld69MlrnqJbx/YuU9wsKoHhwnjt09CIzXgs+4mLKFQrsg==";
     };
     dependencies = [
-      sources."typescript-3.9.5"
+      sources."typescript-3.9.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -55877,16 +58430,23 @@ in
   coc-vetur = nodeEnv.buildNodePackage {
     name = "coc-vetur";
     packageName = "coc-vetur";
-    version = "1.1.10";
+    version = "1.1.12";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-vetur/-/coc-vetur-1.1.10.tgz";
-      sha512 = "dMTBF4NbJ2Rqnh2Lj2Jafi9Fl6gJjHH20fNyztA6DvJ9qEOZgpiXIE2yGznszAHBvJyvoVDE4+qE6Qz5sm3FpA==";
+      url = "https://registry.npmjs.org/coc-vetur/-/coc-vetur-1.1.12.tgz";
+      sha512 = "QKMD9vPxzTfP1CxSZW3lWxb6ABL06eoYRGs9bq3uwXn1qIAfOOp7JkmsdehD6H8hVP5dbFsudjahb27bvw/OpA==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      sources."@babel/highlight-7.10.3"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
       sources."@emmetio/extract-abbreviation-0.1.6"
+      (sources."@eslint/eslintrc-0.1.3" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."ignore-4.0.6"
+          sources."strip-json-comments-3.1.1"
+        ];
+      })
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       (sources."@nodelib/fs.scandir-2.1.3" // {
         dependencies = [
@@ -55895,12 +58455,21 @@ in
       })
       sources."@nodelib/fs.stat-1.1.3"
       sources."@nodelib/fs.walk-1.2.4"
+      sources."@prettier/plugin-pug-1.5.1"
       sources."@sindresorhus/is-0.14.0"
-      sources."@sorg/log-2.1.0"
+      sources."@sorg/log-2.2.0"
       sources."@starptech/expression-parser-0.10.0"
       sources."@starptech/hast-util-from-webparser-0.10.0"
-      sources."@starptech/prettyhtml-0.10.0"
-      sources."@starptech/prettyhtml-formatter-0.10.0"
+      (sources."@starptech/prettyhtml-0.10.0" // {
+        dependencies = [
+          sources."prettier-1.19.1"
+        ];
+      })
+      (sources."@starptech/prettyhtml-formatter-0.10.0" // {
+        dependencies = [
+          sources."prettier-1.19.1"
+        ];
+      })
       sources."@starptech/prettyhtml-hast-to-html-0.10.0"
       sources."@starptech/prettyhtml-hastscript-0.10.0"
       sources."@starptech/prettyhtml-sort-attributes-0.10.0"
@@ -55910,35 +58479,34 @@ in
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/color-name-1.1.1"
       sources."@types/eslint-visitor-keys-1.0.0"
-      sources."@types/glob-7.1.2"
-      sources."@types/json-schema-7.0.5"
+      sources."@types/glob-7.1.3"
+      sources."@types/json-schema-7.0.6"
       sources."@types/minimatch-3.0.3"
       sources."@types/minimist-1.2.0"
-      sources."@types/node-14.0.14"
+      sources."@types/node-14.6.3"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/unist-2.0.3"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
-      (sources."@typescript-eslint/experimental-utils-1.13.0" // {
-        dependencies = [
-          sources."eslint-scope-4.0.3"
-        ];
-      })
-      sources."@typescript-eslint/parser-1.13.0"
-      (sources."@typescript-eslint/typescript-estree-1.13.0" // {
+      sources."@typescript-eslint/experimental-utils-3.10.1"
+      sources."@typescript-eslint/parser-3.10.1"
+      sources."@typescript-eslint/types-3.10.1"
+      (sources."@typescript-eslint/typescript-estree-3.10.1" // {
         dependencies = [
-          sources."semver-5.5.0"
+          sources."debug-4.2.0"
+          sources."semver-7.3.2"
         ];
       })
+      sources."@typescript-eslint/visitor-keys-3.10.1"
       sources."abbrev-1.1.1"
-      sources."acorn-7.3.1"
+      sources."acorn-7.4.0"
       sources."acorn-jsx-5.2.0"
-      (sources."aggregate-error-3.0.1" // {
+      (sources."aggregate-error-3.1.0" // {
         dependencies = [
           sources."indent-string-4.0.0"
         ];
       })
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -55946,6 +58514,7 @@ in
           sources."strip-ansi-5.2.0"
         ];
       })
+      sources."ansi-colors-4.1.1"
       (sources."ansi-escapes-4.3.1" // {
         dependencies = [
           sources."type-fest-0.11.0"
@@ -55991,13 +58560,12 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."buefy-helper-json-1.0.3"
       sources."buffer-from-1.1.1"
       sources."builtin-modules-1.1.1"
       sources."cache-base-1.0.1"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
@@ -56010,6 +58578,7 @@ in
       sources."character-entities-1.2.4"
       sources."character-entities-html4-1.1.4"
       sources."character-entities-legacy-1.1.4"
+      sources."character-parser-2.2.0"
       sources."character-reference-invalid-1.1.4"
       sources."chardet-0.7.0"
       (sources."chokidar-3.0.2" // {
@@ -56040,9 +58609,9 @@ in
         ];
       })
       sources."clean-stack-2.2.0"
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
-      sources."cli-width-2.2.1"
+      sources."cli-width-3.0.0"
       sources."cliui-4.1.0"
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
@@ -56066,7 +58635,6 @@ in
       sources."config-chain-1.1.12"
       sources."configstore-4.0.0"
       sources."copy-descriptor-0.1.1"
-      sources."core-js-3.6.5"
       sources."core-util-is-1.0.2"
       sources."cross-spawn-5.1.0"
       sources."crypto-random-string-1.0.0"
@@ -56076,9 +58644,9 @@ in
         ];
       })
       sources."css-parse-2.0.0"
-      sources."csstype-2.6.10"
+      sources."csstype-2.6.13"
       sources."currently-unhandled-0.4.1"
-      sources."debug-4.2.0"
+      sources."debug-3.2.6"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -56131,40 +58699,56 @@ in
       sources."dir-glob-2.0.0"
       sources."dlv-1.1.3"
       sources."doctrine-3.0.0"
-      sources."dot-prop-4.2.0"
+      sources."dot-prop-4.2.1"
       sources."duplexer3-0.1.4"
       sources."editorconfig-0.15.3"
       sources."element-helper-json-2.0.6"
       sources."emoji-regex-7.0.3"
       sources."end-of-stream-1.4.4"
+      sources."enquirer-2.3.6"
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-6.8.0" // {
+      (sources."eslint-7.8.1" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          (sources."cross-spawn-6.0.5" // {
-            dependencies = [
-              sources."semver-5.7.1"
-            ];
-          })
+          sources."ansi-regex-5.0.0"
+          sources."ansi-styles-4.2.1"
+          sources."chalk-4.1.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."cross-spawn-7.0.3"
+          sources."debug-4.2.0"
+          sources."has-flag-4.0.0"
           sources."ignore-4.0.6"
-          sources."semver-6.3.0"
-          sources."strip-ansi-5.2.0"
-          sources."strip-json-comments-3.1.0"
+          sources."path-key-3.1.1"
+          sources."semver-7.3.2"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."strip-ansi-6.0.0"
+          sources."strip-json-comments-3.1.1"
+          sources."supports-color-7.2.0"
+          sources."which-2.0.2"
+        ];
+      })
+      (sources."eslint-plugin-vue-7.0.0-beta.3" // {
+        dependencies = [
+          sources."semver-7.3.2"
         ];
       })
-      sources."eslint-plugin-vue-6.2.2"
       sources."eslint-scope-5.1.0"
-      sources."eslint-utils-1.4.3"
+      sources."eslint-utils-2.1.0"
       sources."eslint-visitor-keys-1.3.0"
-      sources."espree-6.2.1"
+      sources."espree-7.3.0"
       sources."esprima-4.0.1"
       (sources."esquery-1.3.1" // {
         dependencies = [
-          sources."estraverse-5.1.0"
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."execa-0.7.0"
@@ -56262,6 +58846,7 @@ in
         ];
       })
       sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.1"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
@@ -56272,14 +58857,14 @@ in
       sources."has-yarn-2.1.0"
       sources."hast-util-embedded-1.0.5"
       sources."hast-util-has-property-1.0.4"
-      sources."hast-util-is-body-ok-link-1.0.3"
-      sources."hast-util-is-element-1.0.4"
+      sources."hast-util-is-body-ok-link-1.0.4"
+      sources."hast-util-is-element-1.1.0"
       sources."hast-util-parse-selector-2.2.4"
-      sources."hast-util-to-string-1.0.3"
+      sources."hast-util-to-string-1.0.4"
       sources."hast-util-whitespace-1.0.4"
       sources."hosted-git-info-2.8.8"
       sources."html-void-elements-1.0.5"
-      sources."html-whitespace-sensitive-tag-names-1.0.2"
+      sources."html-whitespace-sensitive-tag-names-1.0.3"
       sources."http-cache-semantics-4.1.0"
       sources."iconv-lite-0.4.24"
       sources."ignore-3.3.10"
@@ -56294,11 +58879,11 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      (sources."inquirer-7.2.0" // {
+      (sources."inquirer-7.3.3" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.2.1"
-          sources."chalk-3.0.0"
+          sources."chalk-4.1.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."emoji-regex-8.0.0"
@@ -56306,7 +58891,7 @@ in
           sources."is-fullwidth-code-point-3.0.0"
           sources."string-width-4.2.0"
           sources."strip-ansi-6.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."invert-kv-2.0.0"
@@ -56321,6 +58906,7 @@ in
       sources."is-decimal-1.0.4"
       sources."is-descriptor-1.0.2"
       sources."is-empty-1.2.0"
+      sources."is-expression-4.0.0"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
@@ -56341,6 +58927,7 @@ in
       sources."is-path-inside-1.0.1"
       sources."is-plain-obj-1.1.0"
       sources."is-plain-object-2.0.4"
+      sources."is-regex-1.1.1"
       sources."is-stream-1.1.0"
       sources."is-utf8-0.2.1"
       sources."is-windows-1.0.2"
@@ -56348,7 +58935,7 @@ in
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
-      (sources."js-beautify-1.11.0" // {
+      (sources."js-beautify-1.13.0" // {
         dependencies = [
           sources."mkdirp-1.0.4"
         ];
@@ -56357,6 +58944,7 @@ in
       sources."js-yaml-3.14.0"
       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-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."json5-2.1.3"
@@ -56365,18 +58953,17 @@ in
       sources."kind-of-6.0.3"
       sources."latest-version-5.1.0"
       sources."lcid-2.0.0"
-      sources."levn-0.3.0"
+      sources."levn-0.4.1"
       sources."lines-and-columns-1.1.6"
       sources."load-json-file-4.0.0"
       sources."load-plugin-2.3.1"
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.assign-4.2.0"
       sources."lodash.defaults-4.2.0"
       sources."lodash.iteratee-4.7.0"
       sources."lodash.merge-4.6.2"
-      sources."lodash.unescape-4.0.1"
-      sources."loglevel-1.6.8"
+      sources."loglevel-1.7.0"
       (sources."loglevel-colored-level-prefix-1.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -56423,7 +59010,7 @@ in
       sources."natural-compare-1.4.0"
       sources."nice-try-1.0.5"
       sources."node-fetch-2.6.0"
-      sources."nopt-4.0.3"
+      sources."nopt-5.0.0"
       sources."normalize-package-data-2.5.0"
       sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.0"
@@ -56449,8 +59036,8 @@ in
       sources."object-visit-1.0.1"
       sources."object.pick-1.3.0"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
-      sources."optionator-0.8.3"
+      sources."onetime-5.1.2"
+      sources."optionator-0.9.1"
       sources."os-homedir-1.0.2"
       (sources."os-locale-3.1.0" // {
         dependencies = [
@@ -56460,7 +59047,6 @@ in
         ];
       })
       sources."os-tmpdir-1.0.2"
-      sources."osenv-0.1.5"
       sources."p-cancelable-1.1.0"
       sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
@@ -56501,42 +59087,32 @@ in
         ];
       })
       sources."posix-character-classes-0.1.1"
-      sources."prelude-ls-1.1.2"
+      sources."prelude-ls-1.2.1"
       sources."prepend-http-2.0.0"
-      sources."prettier-1.19.1"
-      (sources."prettier-eslint-9.0.2" // {
+      sources."prettier-2.1.1"
+      (sources."prettier-eslint-10.1.1" // {
         dependencies = [
-          sources."acorn-6.4.1"
-          (sources."acorn-jsx-3.0.1" // {
+          sources."ansi-regex-4.1.0"
+          (sources."cross-spawn-6.0.5" // {
             dependencies = [
-              sources."acorn-3.3.0"
+              sources."semver-5.7.1"
             ];
           })
-          sources."ansi-escapes-3.2.0"
-          sources."ansi-regex-4.1.0"
-          sources."cli-cursor-2.1.0"
-          sources."cross-spawn-6.0.5"
-          sources."debug-3.2.6"
-          sources."eslint-5.16.0"
-          sources."eslint-scope-4.0.3"
-          sources."espree-5.0.1"
-          sources."figures-2.0.0"
-          sources."globals-11.12.0"
+          sources."debug-4.2.0"
+          sources."eslint-6.8.0"
+          sources."eslint-utils-1.4.3"
+          sources."espree-6.2.1"
           sources."ignore-4.0.6"
           sources."indent-string-4.0.0"
-          sources."inquirer-6.5.2"
-          sources."mimic-fn-1.2.0"
-          sources."mute-stream-0.0.7"
-          sources."onetime-2.0.1"
-          sources."restore-cursor-2.0.0"
+          sources."levn-0.3.0"
+          sources."optionator-0.8.3"
+          sources."prelude-ls-1.1.2"
+          sources."prettier-1.19.1"
+          sources."regexpp-2.0.1"
+          sources."semver-6.3.0"
           sources."strip-ansi-5.2.0"
-          (sources."vue-eslint-parser-2.0.3" // {
-            dependencies = [
-              sources."acorn-5.7.4"
-              sources."eslint-scope-3.7.3"
-              sources."espree-3.5.4"
-            ];
-          })
+          sources."strip-json-comments-3.1.1"
+          sources."type-check-0.3.2"
         ];
       })
       sources."prettier-tslint-0.4.2"
@@ -56546,6 +59122,8 @@ in
       sources."property-information-5.5.0"
       sources."proto-list-1.2.4"
       sources."pseudomap-1.0.2"
+      sources."pug-error-2.0.0"
+      sources."pug-lexer-5.0.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."quick-lru-1.1.0"
@@ -56558,7 +59136,7 @@ in
           sources."p-limit-2.3.0"
           sources."p-locate-4.1.0"
           sources."p-try-2.2.0"
-          sources."parse-json-5.0.0"
+          sources."parse-json-5.1.0"
           sources."path-exists-4.0.0"
           (sources."read-pkg-5.2.0" // {
             dependencies = [
@@ -56572,8 +59150,8 @@ in
       sources."readdirp-3.4.0"
       sources."redent-2.0.0"
       sources."regex-not-1.0.2"
-      sources."regexpp-2.0.1"
-      sources."registry-auth-token-4.1.1"
+      sources."regexpp-3.1.0"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       sources."rehype-sort-attribute-values-2.0.1"
       (sources."remark-5.1.0" // {
@@ -56604,12 +59182,12 @@ in
       sources."rimraf-2.6.3"
       sources."run-async-2.4.1"
       sources."run-parallel-1.1.9"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.2"
       sources."s.color-0.0.13"
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."sass-formatter-0.4.10"
+      sources."sass-formatter-0.4.13"
       sources."sax-1.2.4"
       sources."semver-5.7.1"
       sources."semver-diff-2.1.0"
@@ -56724,9 +59302,10 @@ in
           sources."yargs-parser-2.4.1"
         ];
       })
-      (sources."stylus-0.54.7" // {
+      (sources."stylus-0.54.8" // {
         dependencies = [
           sources."debug-3.1.0"
+          sources."mkdirp-1.0.4"
           sources."ms-2.0.0"
           sources."semver-6.3.0"
           sources."source-map-0.7.3"
@@ -56734,7 +59313,7 @@ in
       })
       sources."stylus-supremacy-2.14.5"
       sources."suf-cli-0.1.1"
-      sources."suf-node-1.1.1"
+      sources."suf-node-1.2.1"
       sources."suf-regex-0.0.22"
       sources."supports-color-5.5.0"
       sources."symbol-0.2.3"
@@ -56764,12 +59343,16 @@ in
       sources."trim-trailing-lines-1.1.3"
       sources."trough-1.0.5"
       sources."tslib-1.13.0"
-      sources."tslint-5.20.1"
-      sources."tsutils-2.29.0"
-      sources."type-check-0.3.2"
+      (sources."tslint-5.20.1" // {
+        dependencies = [
+          sources."tsutils-2.29.0"
+        ];
+      })
+      sources."tsutils-3.17.1"
+      sources."type-check-0.4.0"
       sources."type-fest-0.3.1"
       sources."typedarray-0.0.6"
-      sources."typescript-3.9.5"
+      sources."typescript-3.9.7"
       sources."unherit-1.1.3"
       (sources."unified-7.1.0" // {
         dependencies = [
@@ -56780,7 +59363,6 @@ in
       })
       (sources."unified-engine-6.0.1" // {
         dependencies = [
-          sources."debug-3.2.6"
           sources."to-vfile-4.0.0"
           sources."unist-util-stringify-position-1.1.2"
           sources."vfile-3.0.1"
@@ -56818,7 +59400,7 @@ in
       })
       sources."untildify-2.1.0"
       sources."update-notifier-3.0.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."url-parse-lax-3.0.0"
       sources."use-3.1.1"
@@ -56826,7 +59408,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-2.1.1"
       sources."validate-npm-package-license-3.0.4"
-      sources."vfile-4.1.1"
+      sources."vfile-4.2.0"
       sources."vfile-location-2.0.6"
       sources."vfile-message-2.0.4"
       (sources."vfile-reporter-6.0.1" // {
@@ -56841,10 +59423,10 @@ in
       })
       sources."vfile-sort-2.2.2"
       sources."vfile-statistics-1.1.4"
-      sources."vls-0.2.0"
-      (sources."vscode-css-languageservice-4.2.0" // {
+      sources."vls-0.4.2"
+      (sources."vscode-css-languageservice-4.3.3" // {
         dependencies = [
-          sources."vscode-uri-2.1.2"
+          sources."vscode-languageserver-types-3.16.0-next.2"
         ];
       })
       sources."vscode-emmet-helper-1.2.17"
@@ -56854,9 +59436,14 @@ in
       sources."vscode-languageserver-textdocument-1.0.1"
       sources."vscode-languageserver-types-3.15.1"
       sources."vscode-nls-4.1.2"
-      sources."vscode-uri-1.0.8"
-      sources."vscode-web-custom-data-0.1.4"
-      sources."vue-eslint-parser-7.1.0"
+      sources."vscode-uri-2.1.2"
+      sources."vscode-web-custom-data-0.3.1"
+      (sources."vue-eslint-parser-7.1.0" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."espree-6.2.1"
+        ];
+      })
       sources."vue-onsenui-helper-json-1.0.2"
       sources."wcwidth-1.0.1"
       sources."which-1.3.1"
@@ -56900,10 +59487,10 @@ in
   coc-vimtex = nodeEnv.buildNodePackage {
     name = "coc-vimtex";
     packageName = "coc-vimtex";
-    version = "1.0.3";
+    version = "1.0.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-vimtex/-/coc-vimtex-1.0.3.tgz";
-      sha512 = "zDliD5/CMHMdKm2aOu5lMW2z7Anbkl8cb7JnyQoeG5y6x4huZ1WtNVdkWVJkeyctOot/Js5YGt3imud0e5hLZQ==";
+      url = "https://registry.npmjs.org/coc-vimtex/-/coc-vimtex-1.0.4.tgz";
+      sha512 = "gE04Ruk/7Of+jhVlWUT3M5xW5LEN24335rpSPHu7u1uzasuv9SsNehXbZpkj1SEYM4K7+5bw8NC+EFshuZm6Vw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -56935,10 +59522,10 @@ in
   coc-yaml = nodeEnv.buildNodePackage {
     name = "coc-yaml";
     packageName = "coc-yaml";
-    version = "1.0.4";
+    version = "1.0.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-yaml/-/coc-yaml-1.0.4.tgz";
-      sha512 = "ChwFqLSF0C/c/LIhJR6ycOc7JZreFkGeNOol/+oPw+OFvY5Zgz8vjdDzmwXZlKwQMIuZAnDUFZOJaYUyCRJzsw==";
+      url = "https://registry.npmjs.org/coc-yaml/-/coc-yaml-1.0.5.tgz";
+      sha512 = "BMtE+UB9mmChn9bD6Nd7fuWVgEPwaa48QQLyE0nxQK2PXozLsPpRx7micYNpMB/LUh786oe/Gn1NPVwzNE2iEw==";
     };
     dependencies = [
       sources."agent-base-4.3.0"
@@ -56950,12 +59537,12 @@ in
       sources."http-proxy-agent-2.1.0"
       sources."https-proxy-agent-2.2.4"
       sources."js-yaml-3.14.0"
-      sources."jsonc-parser-2.2.1"
+      sources."jsonc-parser-2.3.0"
       sources."ms-2.0.0"
-      sources."prettier-1.19.1"
+      sources."prettier-2.0.5"
       sources."request-light-0.2.5"
       sources."sprintf-js-1.0.3"
-      sources."vscode-json-languageservice-3.7.0"
+      sources."vscode-json-languageservice-3.8.3"
       sources."vscode-jsonrpc-4.0.0"
       (sources."vscode-languageserver-5.2.1" // {
         dependencies = [
@@ -56972,7 +59559,7 @@ in
       sources."vscode-nls-4.1.2"
       sources."vscode-uri-2.1.2"
       sources."yaml-ast-parser-custom-tags-0.0.43"
-      sources."yaml-language-server-0.7.2"
+      sources."yaml-language-server-0.10.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -57088,17 +59675,17 @@ in
       sources."diagnostics-1.1.1"
       sources."enabled-1.0.2"
       sources."env-variable-0.0.6"
-      sources."eventemitter3-4.0.4"
+      sources."eventemitter3-4.0.7"
       sources."fast-safe-stringify-2.0.7"
       sources."fecha-4.2.0"
-      sources."follow-redirects-1.12.1"
+      sources."follow-redirects-1.13.0"
       sources."http-proxy-1.18.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.15"
+      sources."lodash-4.17.20"
       sources."logform-2.2.0"
       sources."lynx-0.2.0"
       sources."mersenne-0.0.4"
@@ -57138,47 +59725,42 @@ in
   cordova = nodeEnv.buildNodePackage {
     name = "cordova";
     packageName = "cordova";
-    version = "9.0.0";
+    version = "10.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cordova/-/cordova-9.0.0.tgz";
-      sha512 = "zWEPo9uGj9KNcEhU2Lpo3r4HYK21tL+at496N2LLnuCWuWVndv6QWed8+EYl/08rrcNshrEtfzXj9Ux6vQm2PQ==";
+      url = "https://registry.npmjs.org/cordova/-/cordova-10.0.0.tgz";
+      sha512 = "00wMcj3X9ILhKtvRG2iEwO2qly4B+vgXFhH4WhVepWg2UVbD1opl1q9jSZ+j2AaI/vsBWW8e6M2M5FAHasnuWw==";
     };
     dependencies = [
-      sources."@mrmlnc/readdir-enhanced-2.2.1"
-      sources."@nodelib/fs.stat-1.1.3"
-      sources."@types/glob-7.1.2"
-      sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.0.14"
+      sources."@netflix/nerror-1.1.3"
+      sources."@nodelib/fs.scandir-2.1.3"
+      sources."@nodelib/fs.stat-2.0.3"
+      sources."@nodelib/fs.walk-1.2.4"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@types/color-name-1.1.1"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ansi-0.3.1"
-      sources."ansi-align-2.0.0"
+      (sources."ansi-align-3.0.0" // {
+        dependencies = [
+          sources."string-width-3.1.0"
+        ];
+      })
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-3.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"
+      sources."ansi-styles-4.2.1"
       sources."array-find-index-1.0.2"
       sources."array-flatten-1.1.1"
-      sources."array-union-1.0.2"
-      sources."array-uniq-1.0.3"
-      sources."array-unique-0.3.2"
+      sources."array-union-2.1.0"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
-      sources."assign-symbols-1.0.0"
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
-      sources."atob-2.1.2"
+      sources."at-least-node-1.0.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
-      (sources."base-0.11.2" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."big-integer-1.6.48"
@@ -57187,90 +59769,79 @@ in
           sources."bytes-3.1.0"
         ];
       })
-      sources."boxen-1.3.0"
-      sources."bplist-parser-0.1.1"
-      sources."brace-expansion-1.1.11"
-      (sources."braces-2.3.2" // {
+      (sources."boxen-4.2.0" // {
         dependencies = [
-          sources."extend-shallow-2.0.1"
+          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."strip-ansi-6.0.0"
         ];
       })
+      sources."bplist-parser-0.2.0"
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
       sources."builtins-1.0.3"
       sources."bytes-3.0.0"
-      sources."cache-base-1.0.1"
-      sources."call-me-maybe-1.0.1"
-      sources."callsites-3.1.0"
-      sources."camelcase-4.1.0"
-      sources."capture-stack-trace-1.0.1"
-      sources."caseless-0.12.0"
-      sources."chalk-2.4.2"
-      sources."chardet-0.7.0"
-      sources."ci-info-1.6.0"
-      (sources."class-utils-0.3.6" // {
+      (sources."cacheable-request-6.1.0" // {
         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."lowercase-keys-2.0.0"
         ];
       })
-      sources."cli-boxes-1.0.0"
+      sources."callsites-3.1.0"
+      sources."camelcase-5.3.1"
+      sources."caseless-0.12.0"
+      sources."chalk-3.0.0"
+      sources."chardet-0.7.0"
+      sources."ci-info-2.0.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-cursor-2.1.0"
       sources."cli-width-2.2.1"
-      sources."collection-visit-1.0.0"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
+      sources."clone-response-1.0.2"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
       sources."combined-stream-1.0.8"
-      sources."component-emitter-1.3.0"
       sources."compressible-2.0.18"
       sources."compression-1.7.4"
       sources."concat-map-0.0.1"
-      sources."conf-1.4.0"
-      sources."configstore-4.0.0"
+      (sources."conf-1.4.0" // {
+        dependencies = [
+          sources."dot-prop-4.2.1"
+          sources."is-obj-1.0.1"
+          sources."make-dir-1.3.0"
+          sources."pify-3.0.0"
+          sources."write-file-atomic-2.4.3"
+        ];
+      })
+      sources."configstore-5.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."copy-descriptor-0.1.1"
-      sources."cordova-app-hello-world-4.0.0"
-      sources."cordova-common-3.2.1"
-      (sources."cordova-create-2.0.0" // {
-        dependencies = [
-          sources."fs-extra-7.0.1"
-        ];
-      })
-      (sources."cordova-fetch-2.0.1" // {
+      sources."cordova-app-hello-world-5.0.0"
+      sources."cordova-common-4.0.2"
+      sources."cordova-create-3.0.0"
+      (sources."cordova-fetch-3.0.0" // {
         dependencies = [
-          sources."fs-extra-7.0.1"
-          sources."pify-4.0.1"
+          sources."pify-5.0.0"
         ];
       })
-      (sources."cordova-lib-9.0.1" // {
+      (sources."cordova-lib-10.0.0" // {
         dependencies = [
-          sources."fs-extra-7.0.1"
+          sources."pify-5.0.0"
         ];
       })
-      sources."cordova-serve-3.0.0"
+      sources."cordova-serve-4.0.0"
       sources."core-util-is-1.0.2"
-      sources."create-error-class-3.0.2"
-      sources."cross-spawn-6.0.5"
-      sources."crypto-random-string-1.0.0"
+      sources."cross-spawn-7.0.3"
+      sources."crypto-random-string-2.0.0"
       sources."currently-unhandled-0.4.1"
       sources."dashdash-1.14.1"
       sources."debug-2.6.9"
-      sources."decode-uri-component-0.2.0"
+      sources."decompress-response-3.3.0"
       sources."dedent-0.7.0"
       sources."deep-extend-0.6.0"
-      sources."define-property-2.0.2"
+      sources."defer-to-connect-1.1.3"
       sources."delayed-stream-1.0.0"
       (sources."dep-graph-1.1.0" // {
         dependencies = [
@@ -57279,233 +59850,195 @@ in
       })
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."detect-indent-5.0.0"
-      sources."dir-glob-2.2.2"
-      sources."dot-prop-4.2.0"
+      sources."detect-indent-6.0.0"
+      sources."detect-newline-3.1.0"
+      sources."dir-glob-3.0.1"
+      sources."dot-prop-5.2.0"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."editor-1.0.0"
       sources."ee-first-1.1.1"
       sources."elementtree-0.1.7"
+      sources."emoji-regex-7.0.3"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."endent-1.4.1"
       sources."env-paths-1.0.0"
+      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."execa-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."execa-4.0.3"
       sources."express-4.17.1"
       sources."extend-3.0.2"
-      (sources."extend-shallow-3.0.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
-      sources."external-editor-3.1.0"
-      (sources."extglob-2.0.4" // {
+      (sources."external-editor-3.1.0" // {
         dependencies = [
-          sources."define-property-1.0.0"
-          sources."extend-shallow-2.0.1"
+          sources."tmp-0.0.33"
         ];
       })
-      sources."extsprintf-1.3.0"
+      sources."extsprintf-1.4.0"
       sources."fast-deep-equal-3.1.3"
-      sources."fast-glob-2.2.7"
+      sources."fast-glob-3.2.4"
       sources."fast-json-parse-1.0.3"
       sources."fast-json-stable-stringify-2.1.0"
+      sources."fastq-1.8.0"
       sources."figures-2.0.0"
-      (sources."fill-range-4.0.0" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
+      sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
       sources."find-up-2.1.0"
-      sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."forwarded-0.1.2"
-      sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
-      sources."fs-extra-8.1.0"
+      sources."fs-extra-9.0.1"
       sources."fs.realpath-1.0.0"
-      sources."get-stream-4.1.0"
-      sources."get-value-2.0.6"
+      sources."get-stream-5.2.0"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
-      (sources."glob-parent-3.1.0" // {
-        dependencies = [
-          sources."is-glob-3.1.0"
-        ];
-      })
-      sources."glob-to-regexp-0.3.0"
-      sources."global-dirs-0.1.1"
-      (sources."globby-9.2.0" // {
-        dependencies = [
-          sources."pify-4.0.1"
-        ];
-      })
-      (sources."got-6.7.1" // {
+      sources."glob-parent-5.1.1"
+      sources."global-dirs-2.0.1"
+      sources."globby-11.0.1"
+      (sources."got-9.6.0" // {
         dependencies = [
-          sources."get-stream-3.0.0"
+          sources."get-stream-4.1.0"
         ];
       })
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
-      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."hosted-git-info-2.8.8"
+      sources."har-validator-5.1.5"
+      sources."has-flag-4.0.0"
+      sources."has-yarn-2.1.0"
+      sources."hosted-git-info-3.0.5"
+      sources."http-cache-semantics-4.1.0"
       (sources."http-errors-1.7.2" // {
         dependencies = [
           sources."inherits-2.0.3"
         ];
       })
       sources."http-signature-1.2.0"
+      sources."human-signals-1.1.1"
       sources."iconv-lite-0.4.24"
-      sources."ignore-4.0.6"
+      sources."ignore-5.1.8"
       sources."import-fresh-3.2.1"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
-      sources."indent-string-3.2.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      sources."init-package-json-1.10.3"
+      (sources."init-package-json-1.10.3" // {
+        dependencies = [
+          sources."hosted-git-info-2.8.8"
+          sources."npm-package-arg-6.1.1"
+          sources."semver-5.7.1"
+        ];
+      })
       (sources."inquirer-6.5.2" // {
         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."mute-stream-0.0.7"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      (sources."insight-0.10.3" // {
+        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."insight-0.10.3"
       sources."ip-regex-2.1.0"
       sources."ipaddr.js-1.9.1"
-      sources."is-accessor-descriptor-1.0.0"
-      sources."is-buffer-1.1.6"
-      sources."is-ci-1.2.1"
-      sources."is-data-descriptor-1.0.0"
-      sources."is-descriptor-1.0.2"
-      sources."is-extendable-0.1.1"
+      sources."is-ci-2.0.0"
+      sources."is-docker-2.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
-      sources."is-installed-globally-0.1.0"
-      sources."is-npm-1.0.0"
-      (sources."is-number-3.0.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."is-obj-1.0.1"
-      sources."is-path-inside-1.0.1"
-      sources."is-plain-object-2.0.4"
-      sources."is-redirect-1.0.0"
-      sources."is-retry-allowed-1.2.0"
-      sources."is-stream-1.1.0"
+      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-stream-2.0.0"
       sources."is-typedarray-1.0.0"
-      sources."is-url-1.2.4"
-      sources."is-windows-1.0.2"
-      sources."is-wsl-1.1.0"
-      sources."isarray-1.0.0"
+      sources."is-wsl-2.2.0"
+      sources."is-yarn-global-0.3.0"
       sources."isexe-2.0.0"
-      sources."isobject-3.0.1"
+      sources."isobject-4.0.0"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      sources."json-parse-better-errors-1.0.2"
+      sources."json-buffer-3.0.0"
+      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."jsprim-1.4.1"
-      sources."kind-of-6.0.3"
-      sources."latest-version-3.1.0"
+      sources."jsonfile-6.0.1"
+      (sources."jsprim-1.4.1" // {
+        dependencies = [
+          sources."extsprintf-1.3.0"
+        ];
+      })
+      sources."keyv-3.1.0"
+      sources."latest-version-5.1.0"
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.debounce-4.0.8"
       sources."loud-rejection-2.2.0"
       sources."lowercase-keys-1.0.1"
-      sources."lru-cache-4.1.5"
-      sources."macos-release-2.3.0"
-      sources."make-dir-1.3.0"
-      sources."map-cache-0.2.2"
-      sources."map-visit-1.0.0"
-      sources."md5-file-4.0.0"
+      sources."lru-cache-6.0.0"
+      sources."macos-release-2.4.1"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."md5-file-5.0.0"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
+      sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
-      sources."micromatch-3.1.10"
+      sources."micromatch-4.0.2"
       sources."mime-1.6.0"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
-      sources."mimic-fn-1.2.0"
+      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."ms-2.0.0"
       sources."mute-stream-0.0.8"
-      sources."nanomatch-1.2.13"
       sources."negotiator-0.6.2"
       sources."nice-try-1.0.5"
       sources."nopt-4.0.3"
-      sources."normalize-package-data-2.5.0"
-      sources."npm-normalize-package-bin-1.0.1"
-      sources."npm-package-arg-6.1.1"
-      sources."npm-run-path-2.0.2"
-      sources."oauth-sign-0.9.0"
-      (sources."object-copy-0.1.0" // {
+      (sources."normalize-package-data-2.5.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."hosted-git-info-2.8.8"
+          sources."semver-5.7.1"
         ];
       })
-      sources."object-visit-1.0.1"
-      sources."object.pick-1.3.0"
+      sources."normalize-url-4.5.0"
+      sources."npm-normalize-package-bin-1.0.1"
+      sources."npm-package-arg-8.0.1"
+      sources."npm-run-path-4.0.1"
+      sources."oauth-sign-0.9.0"
       sources."objectorarray-1.0.4"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
-      sources."onetime-2.0.1"
-      sources."opn-5.5.0"
+      sources."onetime-5.1.2"
+      sources."open-7.2.1"
       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-cancelable-1.1.0"
       sources."p-finally-1.0.0"
       (sources."p-limit-1.3.0" // {
         dependencies = [
@@ -57514,30 +60047,32 @@ in
       })
       sources."p-locate-2.0.0"
       sources."p-try-2.2.0"
-      sources."package-json-4.0.1"
+      (sources."package-json-6.5.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."parent-module-1.0.1"
       sources."parseurl-1.3.3"
-      sources."pascalcase-0.1.1"
-      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-key-3.1.1"
       sources."path-parse-1.0.6"
       sources."path-to-regexp-0.1.7"
-      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."pkg-up-2.0.0"
       sources."plist-3.0.1"
-      sources."posix-character-classes-0.1.1"
-      sources."prepend-http-1.0.4"
+      sources."prepend-http-2.0.0"
       sources."promzard-0.3.0"
       sources."proxy-addr-2.0.6"
-      sources."pseudomap-1.0.2"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
+      sources."pupa-2.0.1"
       sources."q-1.5.1"
       sources."qs-6.7.0"
       sources."range-parser-1.2.1"
@@ -57548,17 +60083,10 @@ in
       })
       sources."rc-1.2.8"
       sources."read-1.0.7"
-      (sources."read-chunk-3.2.0" // {
-        dependencies = [
-          sources."pify-4.0.1"
-        ];
-      })
-      sources."read-package-json-2.1.1"
-      sources."regex-not-1.0.2"
-      sources."registry-auth-token-3.4.0"
-      sources."registry-url-3.1.0"
-      sources."repeat-element-1.1.3"
-      sources."repeat-string-1.6.1"
+      sources."read-chunk-3.2.0"
+      sources."read-package-json-2.1.2"
+      sources."registry-auth-token-4.2.0"
+      sources."registry-url-5.1.0"
       (sources."request-2.88.2" // {
         dependencies = [
           sources."qs-6.5.2"
@@ -57567,150 +60095,81 @@ in
       })
       sources."resolve-1.17.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."responselike-1.0.2"
+      (sources."restore-cursor-2.0.0" // {
+        dependencies = [
+          sources."mimic-fn-1.2.0"
+          sources."onetime-2.0.1"
+        ];
+      })
+      sources."reusify-1.0.4"
+      sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."run-parallel-1.1.9"
+      sources."rxjs-6.6.2"
       sources."safe-buffer-5.1.2"
-      sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
       sources."sax-1.1.4"
-      sources."semver-5.7.1"
-      sources."semver-diff-2.1.0"
-      (sources."send-0.17.1" // {
+      sources."semver-7.3.2"
+      (sources."semver-diff-3.1.1" // {
         dependencies = [
-          sources."ms-2.1.1"
+          sources."semver-6.3.0"
         ];
       })
-      sources."serve-static-1.14.1"
-      (sources."set-value-2.0.1" // {
+      (sources."send-0.17.1" // {
         dependencies = [
-          sources."extend-shallow-2.0.1"
+          sources."ms-2.1.1"
         ];
       })
+      sources."serve-static-1.14.1"
       sources."setprototypeof-1.1.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-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.0"
+      sources."slash-3.0.0"
       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.5"
-      sources."split-string-3.1.0"
       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."statuses-1.5.0"
       (sources."string-width-2.1.1" // {
         dependencies = [
           sources."strip-ansi-4.0.0"
         ];
       })
+      sources."stringify-package-1.0.1"
       (sources."strip-ansi-5.2.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
         ];
       })
-      sources."strip-bom-3.0.0"
+      sources."strip-bom-4.0.0"
       sources."strip-eof-1.0.0"
+      sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-5.5.0"
-      (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."supports-color-7.2.0"
+      sources."systeminformation-4.27.3"
+      sources."term-size-2.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" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."to-regex-3.0.2"
-      sources."to-regex-range-2.1.1"
+      sources."tmp-0.2.1"
+      sources."to-readable-stream-1.0.0"
+      sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
       sources."tough-cookie-3.0.1"
       sources."tslib-1.13.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
+      sources."type-fest-0.8.1"
       sources."type-is-1.6.18"
-      sources."underscore-1.10.2"
-      sources."union-value-1.0.1"
-      sources."unique-string-1.0.0"
-      sources."universalify-0.1.2"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."underscore-1.11.0"
+      sources."unique-string-2.0.0"
+      sources."universalify-1.0.0"
       sources."unpipe-1.0.0"
-      (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."unzip-response-2.0.1"
-      (sources."update-notifier-2.5.0" // {
-        dependencies = [
-          sources."configstore-3.1.2"
-        ];
-      })
-      sources."uri-js-4.2.2"
-      sources."urix-0.1.0"
-      sources."url-parse-lax-1.0.0"
-      sources."use-3.1.1"
+      sources."update-notifier-4.1.1"
+      sources."uri-js-4.4.0"
+      sources."url-parse-lax-3.0.0"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
       sources."valid-identifier-0.0.2"
@@ -57718,20 +60177,37 @@ in
       sources."validate-npm-package-name-3.0.0"
       sources."vary-1.1.2"
       sources."verror-1.10.0"
-      sources."which-1.3.1"
-      sources."widest-line-2.0.1"
-      sources."windows-release-3.3.1"
-      (sources."with-open-file-0.1.7" // {
+      sources."which-2.0.2"
+      (sources."widest-line-3.1.0" // {
         dependencies = [
-          sources."pify-4.0.1"
+          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."strip-ansi-6.0.0"
         ];
       })
+      (sources."windows-release-3.3.3" // {
+        dependencies = [
+          sources."cross-spawn-6.0.5"
+          sources."execa-1.0.0"
+          sources."get-stream-4.1.0"
+          sources."is-stream-1.1.0"
+          sources."npm-run-path-2.0.2"
+          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."with-open-file-0.1.7"
       sources."wrappy-1.0.2"
-      sources."write-file-atomic-2.4.3"
-      sources."xdg-basedir-3.0.0"
+      sources."write-file-atomic-3.0.3"
+      sources."xdg-basedir-4.0.0"
       sources."xmlbuilder-9.0.7"
       sources."xmldom-0.1.31"
-      sources."yallist-2.1.2"
+      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -57752,17 +60228,17 @@ in
       sha512 = "HCpNdBkQy3rw+uARLuIf0YurqsMXYzBa9ihhSAuxYJcNIrqrSq3BstPfr0cQN38AdMrQiO9Dp4hYy7GtGJsLPg==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      sources."@babel/highlight-7.10.3"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
-      sources."@types/glob-7.1.2"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
       sources."@types/minimist-1.2.0"
-      sources."@types/node-14.0.14"
+      sources."@types/node-14.6.3"
       sources."@types/normalize-package-data-2.4.0"
-      sources."aggregate-error-3.0.1"
+      sources."aggregate-error-3.1.0"
       sources."ansi-styles-3.2.1"
       sources."arr-diff-4.0.0"
       sources."arr-flatten-1.1.0"
@@ -57815,7 +60291,7 @@ in
       sources."concat-map-0.0.1"
       sources."copy-descriptor-0.1.1"
       sources."cp-file-7.0.0"
-      sources."cpy-8.1.0"
+      sources."cpy-8.1.1"
       sources."debug-2.6.9"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
@@ -57914,7 +60390,7 @@ in
       sources."isarray-1.0.0"
       sources."isobject-3.0.1"
       sources."js-tokens-4.0.0"
-      sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."junk-3.1.0"
       sources."kind-of-6.0.3"
       sources."lines-and-columns-1.1.6"
@@ -57979,7 +60455,7 @@ in
       sources."p-map-3.0.0"
       sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
-      sources."parse-json-5.0.0"
+      sources."parse-json-5.1.0"
       sources."pascalcase-0.1.1"
       sources."path-dirname-1.0.2"
       sources."path-exists-4.0.0"
@@ -58128,7 +60604,7 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.1"
-      sources."@types/node-14.0.14"
+      sources."@types/node-14.6.3"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
@@ -58170,7 +60646,7 @@ in
       sources."event-emitter-0.3.5"
       (sources."ext-1.4.0" // {
         dependencies = [
-          sources."type-2.0.0"
+          sources."type-2.1.0"
         ];
       })
       sources."extend-3.0.2"
@@ -58191,7 +60667,7 @@ in
       sources."is-fullwidth-code-point-2.0.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash._baseiteratee-4.7.0"
       sources."lodash._basetostring-4.12.0"
       sources."lodash._baseuniq-4.6.0"
@@ -58330,7 +60806,7 @@ in
       sources."isarray-0.0.1"
       sources."isexe-2.0.0"
       sources."jsonfile-4.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -58338,7 +60814,7 @@ in
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
+      sources."onetime-5.1.2"
       sources."os-tmpdir-1.0.2"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
@@ -58347,7 +60823,7 @@ in
       sources."restore-cursor-3.1.0"
       sources."rimraf-2.7.1"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.2"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."semver-6.3.0"
@@ -58365,7 +60841,7 @@ in
           sources."ansi-regex-4.1.0"
         ];
       })
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."tar-2.2.2"
       (sources."tar-pack-3.4.1" // {
         dependencies = [
@@ -58451,7 +60927,7 @@ in
     };
     dependencies = [
       sources."abstract-random-access-1.1.2"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ansi-align-2.0.0"
       sources."ansi-diff-1.1.1"
       sources."ansi-regex-3.0.0"
@@ -58478,7 +60954,7 @@ in
       sources."atob-2.1.2"
       sources."atomic-batcher-1.0.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -58555,7 +61031,7 @@ in
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       sources."concat-stream-1.6.2"
-      sources."configstore-3.1.2"
+      sources."configstore-3.1.5"
       sources."connections-1.4.2"
       sources."content-types-0.1.0"
       sources."copy-descriptor-0.1.1"
@@ -58614,7 +61090,7 @@ in
       sources."dns-packet-4.2.0"
       sources."dns-socket-3.0.0"
       sources."dom-walk-0.1.2"
-      sources."dot-prop-4.2.0"
+      sources."dot-prop-4.2.1"
       sources."duplexer3-0.1.4"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
@@ -58658,9 +61134,9 @@ in
       sources."fast-bitfield-1.2.2"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
-      (sources."fd-lock-1.1.0" // {
+      (sources."fd-lock-1.1.1" // {
         dependencies = [
-          sources."node-gyp-build-4.2.2"
+          sources."node-gyp-build-4.2.3"
         ];
       })
       sources."fd-read-stream-1.1.0"
@@ -58686,7 +61162,7 @@ in
       sources."got-6.7.1"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-3.0.0"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
@@ -58805,7 +61281,7 @@ in
       sources."multicast-dns-7.2.2"
       sources."multistream-2.1.1"
       sources."mute-stream-0.0.8"
-      sources."mutexify-1.3.0"
+      sources."mutexify-1.3.1"
       sources."nan-2.14.1"
       sources."nanoassert-1.1.0"
       sources."nanobus-4.4.0"
@@ -58915,7 +61391,7 @@ in
           sources."varint-5.0.0"
         ];
       })
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."simple-get-3.1.0"
       sources."simple-sha1-2.1.2"
       sources."siphash24-1.1.1"
@@ -58953,11 +61429,11 @@ in
       sources."sodium-javascript-0.5.6"
       (sources."sodium-native-2.4.9" // {
         dependencies = [
-          sources."node-gyp-build-4.2.2"
+          sources."node-gyp-build-4.2.3"
         ];
       })
       sources."sodium-universal-2.0.0"
-      sources."sorted-array-functions-1.2.0"
+      sources."sorted-array-functions-1.3.0"
       sources."sorted-indexof-1.0.0"
       sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
@@ -59053,15 +61529,15 @@ in
       sources."untildify-3.0.3"
       sources."unzip-response-2.0.1"
       sources."update-notifier-2.5.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."url-parse-lax-1.0.0"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
       sources."utile-0.3.0"
-      (sources."utp-native-2.2.0" // {
+      (sources."utp-native-2.2.1" // {
         dependencies = [
-          sources."node-gyp-build-4.2.2"
+          sources."node-gyp-build-4.2.3"
           sources."readable-stream-3.6.0"
           sources."unordered-set-2.0.1"
         ];
@@ -59099,10 +61575,10 @@ in
   dhcp = nodeEnv.buildNodePackage {
     name = "dhcp";
     packageName = "dhcp";
-    version = "0.2.18";
+    version = "0.2.19";
     src = fetchurl {
-      url = "https://registry.npmjs.org/dhcp/-/dhcp-0.2.18.tgz";
-      sha512 = "VqsWI0zHgX+i4rDmqXqqDv3T++z21osaOencXrMVwlF8P75tKlEnZ72WlONNE1UAxtAvlPIG2zmGMoa7guqDyw==";
+      url = "https://registry.npmjs.org/dhcp/-/dhcp-0.2.19.tgz";
+      sha512 = "RQhzFYjO955zR6YUqP2NbaE6owt9sq33ACWydyKS0v7Tec71Gf2+ewNLyE91UqCtw3wmQhTAYDsWdrqzsxVNig==";
     };
     dependencies = [
       sources."minimist-1.2.5"
@@ -59120,26 +61596,17 @@ in
   dockerfile-language-server-nodejs = nodeEnv.buildNodePackage {
     name = "dockerfile-language-server-nodejs";
     packageName = "dockerfile-language-server-nodejs";
-    version = "0.0.24";
+    version = "0.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/dockerfile-language-server-nodejs/-/dockerfile-language-server-nodejs-0.0.24.tgz";
-      sha512 = "tG0cE6yIyj80eKHMbDBMNPHc1l40GW8v7b8jeDRs0Jv42boG0s6DEsM/eDFQw92mwAtBry07mB1tM+jSwqGzJw==";
+      url = "https://registry.npmjs.org/dockerfile-language-server-nodejs/-/dockerfile-language-server-nodejs-0.1.1.tgz";
+      sha512 = "oGWWKH7UzTulQDqvbONC4cGw8Zw43PnBXN2r3msXacV61n9YnrnbnqIJavl5zCrKEPLcu30rogMkNmrRBNNfJQ==";
     };
     dependencies = [
-      sources."dockerfile-ast-0.0.25"
-      (sources."dockerfile-language-service-0.0.12" // {
-        dependencies = [
-          (sources."dockerfile-utils-0.0.16" // {
-            dependencies = [
-              sources."vscode-languageserver-types-3.6.0"
-            ];
-          })
-        ];
-      })
-      (sources."dockerfile-utils-0.0.11" // {
+      sources."dockerfile-ast-0.0.27"
+      sources."dockerfile-language-service-0.1.0"
+      (sources."dockerfile-utils-0.1.0" // {
         dependencies = [
-          sources."dockerfile-ast-0.0.12"
-          sources."vscode-languageserver-types-3.6.0"
+          sources."dockerfile-ast-0.0.28"
         ];
       })
       sources."vscode-jsonrpc-5.0.1"
@@ -59160,21 +61627,21 @@ in
   elasticdump = nodeEnv.buildNodePackage {
     name = "elasticdump";
     packageName = "elasticdump";
-    version = "6.31.4";
+    version = "6.33.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.31.4.tgz";
-      sha512 = "hEndfeU/OBabQMVqexOU/1vwYM5gYu5U0FyEe17WgQdcOMQMcVHQIVEwm73BD9eB6fPPZt/7cQdaqm7fOSHzdA==";
+      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.33.3.tgz";
+      sha512 = "m/zeWqH/JXZvR/7D2j0TjK2jyDf8SFeAi0IWW92+elx28krC66lvzhVgoNiG8PpCLuT6rZk1yLhYAjMVEB4YyA==";
     };
     dependencies = [
       sources."JSONStream-1.3.5"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
-      sources."aws-sdk-2.706.0"
+      sources."aws-sdk-2.745.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."big.js-5.2.2"
@@ -59185,11 +61652,10 @@ in
       sources."combined-stream-1.0.8"
       sources."core-util-is-1.0.2"
       sources."dashdash-1.14.1"
-      sources."delay-4.3.0"
+      sources."delay-4.4.0"
       sources."delayed-stream-1.0.0"
       sources."ecc-jsbn-0.1.2"
-      sources."end-of-stream-1.4.4"
-      sources."eventemitter3-4.0.4"
+      sources."eventemitter3-4.0.7"
       sources."events-1.1.1"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
@@ -59199,7 +61665,7 @@ in
       sources."form-data-2.3.3"
       sources."getpass-0.1.7"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."http-signature-1.2.0"
       sources."http-status-1.4.2"
       sources."ieee754-1.1.13"
@@ -59220,20 +61686,18 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lossless-json-1.0.4"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."minimist-1.2.5"
       sources."oauth-sign-0.9.0"
-      sources."once-1.4.0"
       sources."p-finally-1.0.0"
-      sources."p-queue-6.4.0"
+      sources."p-queue-6.6.1"
       sources."p-timeout-3.2.0"
       sources."performance-now-2.1.0"
       sources."process-nextick-args-2.0.1"
       sources."psl-1.8.0"
-      sources."pump-3.0.0"
       sources."punycode-1.3.2"
       sources."qs-6.5.2"
       sources."querystring-0.2.0"
@@ -59268,7 +61732,7 @@ in
       })
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      (sources."uri-js-4.2.2" // {
+      (sources."uri-js-4.4.0" // {
         dependencies = [
           sources."punycode-2.1.1"
         ];
@@ -59278,7 +61742,6 @@ in
       sources."uuid-3.3.2"
       sources."verror-1.10.0"
       sources."when-3.7.8"
-      sources."wrappy-1.0.2"
       sources."xml2js-0.4.19"
       sources."xmlbuilder-9.0.7"
     ];
@@ -59313,53 +61776,53 @@ in
   emoj = nodeEnv.buildNodePackage {
     name = "emoj";
     packageName = "emoj";
-    version = "3.0.1";
+    version = "3.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/emoj/-/emoj-3.0.1.tgz";
-      sha512 = "ZZfCT5/+XXomHI7O+frUJfKeqEnxXYq8SL45s0uR6KMRZpFlckzMlLpyBFKVUNd+VWjgVwmc9d/fe/YhU1N5Ng==";
+      url = "https://registry.npmjs.org/emoj/-/emoj-3.1.0.tgz";
+      sha512 = "ohjlUXM2v39rDqGIrlyxdcn9ql+4b+X1u90CXNWjYw5wX6C3wTHRfqFfeV8jajYD6Xc+ufn2X1QeZZWhRBXTlA==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/core-7.10.3"
-      sources."@babel/generator-7.10.3"
-      sources."@babel/helper-annotate-as-pure-7.10.1"
-      sources."@babel/helper-builder-react-jsx-7.10.3"
-      sources."@babel/helper-builder-react-jsx-experimental-7.10.1"
-      sources."@babel/helper-function-name-7.10.3"
-      sources."@babel/helper-get-function-arity-7.10.3"
-      sources."@babel/helper-member-expression-to-functions-7.10.3"
-      sources."@babel/helper-module-imports-7.10.3"
-      sources."@babel/helper-module-transforms-7.10.1"
-      sources."@babel/helper-optimise-call-expression-7.10.3"
-      sources."@babel/helper-plugin-utils-7.10.3"
-      sources."@babel/helper-replace-supers-7.10.1"
-      sources."@babel/helper-simple-access-7.10.1"
-      sources."@babel/helper-split-export-declaration-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      sources."@babel/helpers-7.10.1"
-      sources."@babel/highlight-7.10.3"
-      sources."@babel/parser-7.10.3"
-      sources."@babel/plugin-proposal-object-rest-spread-7.10.3"
-      sources."@babel/plugin-syntax-jsx-7.10.1"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/core-7.11.5"
+      sources."@babel/generator-7.11.5"
+      sources."@babel/helper-annotate-as-pure-7.10.4"
+      sources."@babel/helper-builder-react-jsx-7.10.4"
+      sources."@babel/helper-builder-react-jsx-experimental-7.11.5"
+      sources."@babel/helper-function-name-7.10.4"
+      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-member-expression-to-functions-7.11.0"
+      sources."@babel/helper-module-imports-7.10.4"
+      sources."@babel/helper-module-transforms-7.11.0"
+      sources."@babel/helper-optimise-call-expression-7.10.4"
+      sources."@babel/helper-plugin-utils-7.10.4"
+      sources."@babel/helper-replace-supers-7.10.4"
+      sources."@babel/helper-simple-access-7.10.4"
+      sources."@babel/helper-split-export-declaration-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helpers-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@babel/plugin-proposal-object-rest-spread-7.11.0"
+      sources."@babel/plugin-syntax-jsx-7.10.4"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
-      sources."@babel/plugin-transform-destructuring-7.10.1"
-      sources."@babel/plugin-transform-parameters-7.10.1"
-      sources."@babel/plugin-transform-react-jsx-7.10.3"
-      sources."@babel/template-7.10.3"
-      sources."@babel/traverse-7.10.3"
-      sources."@babel/types-7.10.3"
-      sources."@sindresorhus/is-2.1.1"
+      sources."@babel/plugin-transform-destructuring-7.10.4"
+      sources."@babel/plugin-transform-parameters-7.10.5"
+      sources."@babel/plugin-transform-react-jsx-7.10.4"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.5"
+      sources."@babel/types-7.11.5"
+      sources."@sindresorhus/is-3.1.2"
       sources."@szmarczak/http-timer-4.0.5"
       sources."@types/cacheable-request-6.0.1"
       sources."@types/color-name-1.1.1"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
       sources."@types/minimist-1.2.0"
-      sources."@types/node-14.0.14"
+      sources."@types/node-14.6.3"
       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.2"
+      sources."ajv-6.12.4"
       (sources."ansi-escapes-4.3.1" // {
         dependencies = [
           sources."type-fest-0.11.0"
@@ -59368,40 +61831,48 @@ in
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."arch-2.1.2"
-      sources."arrify-2.0.1"
+      sources."arrify-1.0.1"
       sources."astral-regex-2.0.0"
+      sources."atomically-1.3.2"
       sources."auto-bind-4.0.0"
-      sources."cacheable-lookup-2.0.1"
+      sources."balanced-match-1.0.0"
+      sources."brace-expansion-1.1.11"
+      sources."cacheable-lookup-5.0.3"
       (sources."cacheable-request-7.0.1" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
         ];
       })
       sources."caller-callsite-2.0.0"
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."camelcase-5.3.1"
-      sources."camelcase-keys-6.2.2"
+      (sources."camelcase-keys-6.2.2" // {
+        dependencies = [
+          sources."quick-lru-4.0.1"
+        ];
+      })
       sources."chalk-2.4.2"
       sources."ci-info-2.0.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
       sources."cli-truncate-2.1.0"
       sources."clipboardy-2.3.0"
-      (sources."clone-response-1.0.2" // {
-        dependencies = [
-          sources."mimic-response-1.0.1"
-        ];
-      })
+      sources."clone-response-1.0.2"
+      sources."code-excerpt-3.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      (sources."conf-6.2.4" // {
+      sources."commondir-1.0.1"
+      sources."concat-map-0.0.1"
+      (sources."conf-7.1.2" // {
         dependencies = [
-          sources."semver-6.3.0"
+          sources."semver-7.3.2"
         ];
       })
       sources."convert-source-map-1.7.0"
+      sources."convert-to-spaces-1.0.2"
       sources."cross-spawn-6.0.5"
-      sources."debounce-fn-3.0.1"
+      sources."debounce-fn-4.0.0"
       sources."debug-4.2.0"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
@@ -59409,10 +61880,13 @@ in
           sources."map-obj-1.0.1"
         ];
       })
-      sources."decompress-response-5.0.0"
+      (sources."decompress-response-6.0.0" // {
+        dependencies = [
+          sources."mimic-response-3.1.0"
+        ];
+      })
       sources."defer-to-connect-2.0.0"
       sources."dot-prop-5.2.0"
-      sources."duplexer3-0.1.4"
       sources."emoji-regex-8.0.0"
       sources."emojilib-2.4.0"
       sources."end-of-stream-1.4.4"
@@ -59422,56 +61896,57 @@ in
       sources."execa-1.0.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
+      sources."find-cache-dir-3.3.1"
       sources."find-up-3.0.0"
+      sources."fs.realpath-1.0.0"
       sources."gensync-1.0.0-beta.1"
       sources."get-stream-4.1.0"
+      sources."glob-7.1.6"
       sources."globals-11.12.0"
-      (sources."got-10.7.0" // {
-        dependencies = [
-          sources."get-stream-5.1.0"
-        ];
-      })
+      sources."got-11.6.0"
       sources."hard-rejection-2.1.0"
       sources."has-flag-3.0.0"
       sources."hosted-git-info-2.8.8"
       sources."http-cache-semantics-4.1.0"
-      sources."import-jsx-3.1.0"
-      sources."imurmurhash-0.1.4"
+      sources."http2-wrapper-1.0.0-beta.5.2"
+      sources."import-jsx-4.0.0"
       sources."indent-string-4.0.0"
-      (sources."ink-2.7.1" // {
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      (sources."ink-3.0.5" // {
         dependencies = [
           sources."ansi-styles-4.2.1"
-          sources."chalk-3.0.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.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
-      (sources."ink-text-input-3.3.0" // {
+      (sources."ink-text-input-4.0.0" // {
         dependencies = [
           sources."ansi-styles-4.2.1"
-          sources."chalk-3.0.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.1.0"
+          sources."supports-color-7.2.0"
+          sources."type-fest-0.15.1"
         ];
       })
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
-      sources."is-docker-2.0.0"
+      sources."is-docker-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-obj-2.0.0"
       sources."is-plain-obj-1.1.0"
       sources."is-stream-1.1.0"
-      sources."is-typedarray-1.0.0"
       sources."is-wsl-2.2.0"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
       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-traverse-0.4.1"
       sources."json-schema-typed-7.0.3"
       sources."json5-2.1.3"
@@ -59479,24 +61954,8 @@ in
       sources."kind-of-6.0.3"
       sources."lines-and-columns-1.1.6"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
-      sources."lodash.debounce-4.0.8"
+      sources."lodash-4.17.20"
       sources."lodash.throttle-4.1.1"
-      (sources."log-update-3.4.0" // {
-        dependencies = [
-          sources."ansi-escapes-3.2.0"
-          sources."ansi-regex-4.1.0"
-          sources."cli-cursor-2.1.0"
-          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."loose-envify-1.4.0"
       sources."lowercase-keys-2.0.0"
       (sources."make-dir-3.1.0" // {
@@ -59506,25 +61965,18 @@ in
       })
       sources."map-age-cleaner-0.1.3"
       sources."map-obj-4.1.0"
-      (sources."mem-6.1.0" // {
-        dependencies = [
-          sources."mimic-fn-3.0.0"
-        ];
-      })
-      (sources."meow-6.1.1" // {
+      sources."mem-6.1.1"
+      (sources."meow-7.1.1" // {
         dependencies = [
           sources."type-fest-0.13.1"
         ];
       })
-      sources."mimic-fn-2.1.0"
-      sources."mimic-response-2.1.0"
+      sources."mimic-fn-3.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."minimist-options-4.1.0" // {
-        dependencies = [
-          sources."arrify-1.0.1"
-        ];
-      })
+      sources."minimist-options-4.1.0"
       sources."ms-2.1.2"
       sources."nice-try-1.0.5"
       sources."normalize-package-data-2.5.0"
@@ -59532,25 +61984,38 @@ in
       sources."npm-run-path-2.0.2"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
+      (sources."onetime-5.1.2" // {
+        dependencies = [
+          sources."mimic-fn-2.1.0"
+        ];
+      })
       sources."p-cancelable-2.0.0"
       sources."p-defer-1.0.0"
-      sources."p-event-4.2.0"
       sources."p-finally-1.0.0"
       sources."p-limit-2.3.0"
       sources."p-locate-3.0.0"
-      sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
-      sources."parse-json-5.0.0"
+      sources."parse-json-5.1.0"
+      sources."patch-console-1.0.0"
       sources."path-exists-3.0.0"
+      sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
       sources."path-parse-1.0.6"
+      (sources."pkg-dir-4.2.0" // {
+        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."pkg-up-3.1.0"
       sources."prop-types-15.7.2"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
-      sources."quick-lru-4.0.1"
+      sources."quick-lru-5.1.1"
       sources."react-16.13.1"
+      sources."react-devtools-core-4.8.2"
       sources."react-is-16.13.1"
       sources."react-reconciler-0.24.0"
       (sources."read-pkg-5.2.0" // {
@@ -59569,14 +62034,17 @@ in
       })
       sources."redent-3.0.0"
       sources."resolve-1.17.0"
+      sources."resolve-alpn-1.0.0"
       sources."resolve-from-3.0.0"
       sources."responselike-2.0.0"
       sources."restore-cursor-3.1.0"
+      sources."rimraf-3.0.2"
       sources."safe-buffer-5.1.2"
       sources."scheduler-0.18.0"
       sources."semver-5.7.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
+      sources."shell-quote-1.7.2"
       sources."signal-exit-3.0.3"
       sources."skin-tone-1.0.0"
       (sources."slice-ansi-3.0.0" // {
@@ -59586,11 +62054,16 @@ in
           sources."color-name-1.1.4"
         ];
       })
-      sources."source-map-0.5.7"
+      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.5"
+      (sources."stack-utils-2.0.2" // {
+        dependencies = [
+          sources."escape-string-regexp-2.0.0"
+        ];
+      })
       (sources."string-length-3.1.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -59604,12 +62077,10 @@ in
       sources."strip-indent-3.0.0"
       sources."supports-color-5.5.0"
       sources."to-fast-properties-2.0.0"
-      sources."to-readable-stream-2.1.0"
       sources."trim-newlines-3.0.0"
-      sources."type-fest-0.10.0"
-      sources."typedarray-to-buffer-3.1.5"
+      sources."type-fest-0.12.0"
       sources."unicode-emoji-modifier-base-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."validate-npm-package-license-3.0.4"
       sources."which-1.3.1"
       sources."widest-line-3.1.0"
@@ -59621,7 +62092,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."write-file-atomic-3.0.3"
+      sources."ws-7.3.1"
       sources."yargs-parser-18.1.3"
       sources."yoga-layout-prebuilt-1.9.6"
     ];
@@ -59673,24 +62144,25 @@ in
   eslint = nodeEnv.buildNodePackage {
     name = "eslint";
     packageName = "eslint";
-    version = "7.3.1";
+    version = "7.8.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint/-/eslint-7.3.1.tgz";
-      sha512 = "cQC/xj9bhWUcyi/RuMbRtC3I0eW8MH0jhRELSvpKYkWep3C6YZ2OkvcvJVUeO6gcunABmzptbXBuDoXsjHmfTA==";
+      url = "https://registry.npmjs.org/eslint/-/eslint-7.8.1.tgz";
+      sha512 = "/2rX2pfhyUG0y+A123d0ccXtMm7DV7sH1m3lk9nk2DZ2LReq39FXHueR9xZwshE5MdfSf0xunSaMWRqyIA6M1w==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      (sources."@babel/highlight-7.10.3" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
+      sources."@eslint/eslintrc-0.1.3"
       sources."@types/color-name-1.1.1"
-      sources."acorn-7.3.1"
+      sources."acorn-7.4.0"
       sources."acorn-jsx-5.2.0"
-      sources."ajv-6.12.2"
-      sources."ansi-colors-3.2.4"
+      sources."ajv-6.12.4"
+      sources."ansi-colors-4.1.1"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -59704,7 +62176,7 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."color-convert-1.9.3"
@@ -59715,19 +62187,23 @@ in
       sources."deep-is-0.1.3"
       sources."doctrine-3.0.0"
       sources."emoji-regex-7.0.3"
-      sources."enquirer-2.3.5"
+      sources."enquirer-2.3.6"
       sources."escape-string-regexp-1.0.5"
       sources."eslint-scope-5.1.0"
       sources."eslint-utils-2.1.0"
       sources."eslint-visitor-keys-1.3.0"
-      sources."espree-7.1.0"
+      sources."espree-7.3.0"
       sources."esprima-4.0.1"
       (sources."esquery-1.3.1" // {
         dependencies = [
-          sources."estraverse-5.1.0"
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."fast-deep-equal-3.1.3"
@@ -59756,7 +62232,7 @@ in
       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.15"
+      sources."lodash-4.17.20"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -59785,13 +62261,13 @@ in
         ];
       })
       sources."strip-ansi-6.0.0"
-      sources."strip-json-comments-3.1.0"
+      sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
       sources."table-5.4.6"
       sources."text-table-0.2.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."v8-compile-cache-2.1.1"
       sources."which-2.0.2"
       sources."word-wrap-1.2.3"
@@ -59817,18 +62293,19 @@ in
       sha512 = "+y3ULQemuvoxWgfV/VGzlYJS84V9GmvyzIxZFGUA3kgUpaJkuqXn/nm21Z/nYYNmfiySXy6RU1ery0A8cztZRw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      (sources."@babel/highlight-7.10.3" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
+      sources."@eslint/eslintrc-0.1.3"
       sources."@types/color-name-1.1.1"
-      sources."acorn-7.3.1"
+      sources."acorn-7.4.0"
       sources."acorn-jsx-5.2.0"
-      sources."ajv-6.12.2"
-      sources."ansi-colors-3.2.4"
+      sources."ajv-6.12.4"
+      sources."ansi-colors-4.1.1"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -59842,7 +62319,7 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."color-convert-1.9.3"
@@ -59854,20 +62331,24 @@ in
       sources."deep-is-0.1.3"
       sources."doctrine-3.0.0"
       sources."emoji-regex-7.0.3"
-      sources."enquirer-2.3.5"
+      sources."enquirer-2.3.6"
       sources."escape-string-regexp-1.0.5"
-      sources."eslint-7.3.1"
+      sources."eslint-7.8.1"
       sources."eslint-scope-5.1.0"
       sources."eslint-utils-2.1.0"
       sources."eslint-visitor-keys-1.3.0"
-      sources."espree-7.1.0"
+      sources."espree-7.3.0"
       sources."esprima-4.0.1"
       (sources."esquery-1.3.1" // {
         dependencies = [
-          sources."estraverse-5.1.0"
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."fast-deep-equal-3.1.3"
@@ -59896,7 +62377,7 @@ in
       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.15"
+      sources."lodash-4.17.20"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -59926,13 +62407,13 @@ in
         ];
       })
       sources."strip-ansi-6.0.0"
-      sources."strip-json-comments-3.1.0"
+      sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
       sources."table-5.4.6"
       sources."text-table-0.2.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."v8-compile-cache-2.1.1"
       sources."which-2.0.2"
       sources."word-wrap-1.2.3"
@@ -59958,7 +62439,7 @@ in
       sha1 = "81f5f98043cc2517053f96ba5d61ef5db430c010";
     };
     dependencies = [
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ansi-escapes-1.4.0"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
@@ -59967,7 +62448,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."buffer-crc32-0.2.13"
       sources."buffer-from-1.1.1"
@@ -60007,7 +62488,7 @@ in
       sources."getpass-0.1.7"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-ansi-2.0.0"
       sources."has-flag-3.0.0"
       sources."hasha-2.2.0"
@@ -60112,7 +62593,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."typedarray-0.0.6"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."validate-npm-package-license-3.0.4"
@@ -60140,9 +62621,9 @@ in
       sha512 = "eJdNdyHofekXmSGI76E2A4GBJ7FAvuAgLV7rAgL6uZXV9+ZKwNoBjt/2hxHWmDZZ9x0EEWM3wHb2b0J7UNGbBw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      (sources."@babel/highlight-7.10.3" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -60155,7 +62636,7 @@ in
       sources."@types/color-name-1.1.1"
       sources."@types/minimist-1.2.0"
       sources."@types/normalize-package-data-2.4.0"
-      sources."aggregate-error-3.0.1"
+      sources."aggregate-error-3.1.0"
       sources."ansi-escapes-4.3.1"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.2.1"
@@ -60168,7 +62649,7 @@ in
       sources."clean-stack-2.2.0"
       sources."cli-cursor-3.1.0"
       sources."cli-truncate-2.1.0"
-      sources."cli-width-2.2.1"
+      sources."cli-width-3.0.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."cross-spawn-7.0.3"
@@ -60183,7 +62664,7 @@ in
       sources."error-ex-1.3.2"
       sources."esc-exit-2.0.2"
       sources."escape-string-regexp-1.0.5"
-      sources."execa-4.0.2"
+      sources."execa-4.0.3"
       sources."external-editor-3.1.0"
       sources."figures-3.2.0"
       sources."find-up-4.1.0"
@@ -60192,24 +62673,21 @@ in
           sources."ps-list-7.2.0"
         ];
       })
-      sources."get-stream-5.1.0"
+      sources."get-stream-5.2.0"
       sources."hard-rejection-2.1.0"
       sources."has-flag-4.0.0"
       sources."hosted-git-info-2.8.8"
       sources."human-signals-1.1.1"
       sources."iconv-lite-0.4.24"
       sources."indent-string-4.0.0"
-      sources."inquirer-7.2.0"
-      (sources."inquirer-autocomplete-prompt-1.0.2" // {
+      (sources."inquirer-7.3.3" // {
         dependencies = [
-          sources."ansi-escapes-3.2.0"
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."figures-2.0.0"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
+          sources."chalk-4.1.0"
+        ];
+      })
+      (sources."inquirer-autocomplete-prompt-1.1.0" // {
+        dependencies = [
+          sources."chalk-4.1.0"
         ];
       })
       sources."is-arrayish-0.2.1"
@@ -60218,11 +62696,11 @@ in
       sources."is-stream-2.0.0"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
-      sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."kind-of-6.0.3"
       sources."lines-and-columns-1.1.6"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lru-cache-4.1.5"
       sources."map-obj-4.1.0"
       (sources."meow-6.1.1" // {
@@ -60243,13 +62721,13 @@ in
       sources."npm-run-path-4.0.1"
       sources."num-sort-2.1.0"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
+      sources."onetime-5.1.2"
       sources."os-tmpdir-1.0.2"
       sources."p-finally-2.0.1"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
-      sources."parse-json-5.0.0"
+      sources."parse-json-5.1.0"
       sources."path-exists-4.0.0"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.6"
@@ -60286,7 +62764,7 @@ in
       sources."resolve-1.17.0"
       sources."restore-cursor-3.1.0"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.2"
       sources."safer-buffer-2.1.2"
       sources."semver-5.7.1"
       sources."shebang-command-2.0.0"
@@ -60302,7 +62780,7 @@ in
       sources."strip-eof-1.0.0"
       sources."strip-final-newline-2.0.0"
       sources."strip-indent-3.0.0"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       (sources."taskkill-3.1.0" // {
         dependencies = [
           sources."execa-3.4.0"
@@ -60332,10 +62810,10 @@ in
   forever = nodeEnv.buildNodePackage {
     name = "forever";
     packageName = "forever";
-    version = "3.0.0";
+    version = "3.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/forever/-/forever-3.0.0.tgz";
-      sha512 = "jA3zD1pl57cwBlhF6V6lZIOk6//77nQyQ3UGkxxYr4X9+F8nI6SGGan69hdohtmsPZCG3vMlqdtBhwlqEn4thA==";
+      url = "https://registry.npmjs.org/forever/-/forever-3.0.2.tgz";
+      sha512 = "GKZLVs3RQh52kF3kuCrlR1e5npaOqomQzTQryZOFJZ9GKNqLya75LSn1rdjFQ8XixwX3jT76pIJmtGN4XXv1aw==";
     };
     dependencies = [
       sources."ansi-regex-2.1.1"
@@ -60372,7 +62850,6 @@ in
           sources."async-0.2.9"
           sources."cliff-0.1.9"
           sources."nconf-0.6.9"
-          sources."optimist-0.6.0"
           sources."utile-0.2.1"
           sources."winston-0.8.0"
         ];
@@ -60421,13 +62898,10 @@ in
       sources."define-property-2.0.2"
       sources."defined-0.0.0"
       sources."director-1.2.7"
+      sources."duplexer-0.1.2"
       sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
-      (sources."event-stream-0.5.3" // {
-        dependencies = [
-          sources."optimist-0.2.8"
-        ];
-      })
+      sources."event-stream-3.3.4"
       sources."eventemitter2-0.4.14"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
@@ -60464,14 +62938,11 @@ in
           sources."is-extendable-0.1.1"
         ];
       })
-      (sources."flatiron-0.4.3" // {
-        dependencies = [
-          sources."optimist-0.6.0"
-        ];
-      })
+      sources."flatiron-0.4.3"
       sources."for-in-1.0.2"
-      sources."forever-monitor-3.0.0"
+      sources."forever-monitor-3.0.1"
       sources."fragment-cache-0.2.1"
+      sources."from-0.1.7"
       sources."fs.realpath-1.0.0"
       sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
@@ -60514,7 +62985,7 @@ in
         ];
       })
       sources."is-plain-object-2.0.4"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."is-windows-1.0.2"
       sources."isarray-1.0.0"
@@ -60525,6 +62996,7 @@ in
       sources."lazy-1.0.11"
       sources."lcid-1.0.0"
       sources."map-cache-0.2.2"
+      sources."map-stream-0.1.0"
       sources."map-visit-1.0.0"
       sources."micromatch-3.1.10"
       sources."minimatch-3.0.4"
@@ -60565,11 +63037,12 @@ in
       sources."object.assign-4.1.0"
       sources."object.pick-1.3.0"
       sources."once-1.4.0"
-      sources."optimist-0.6.1"
+      sources."optimist-0.6.0"
       sources."os-locale-1.4.0"
       sources."pascalcase-0.1.1"
       sources."path-dirname-1.0.2"
       sources."path-is-absolute-1.0.1"
+      sources."pause-stream-0.0.11"
       sources."pkginfo-0.3.1"
       sources."posix-character-classes-0.1.1"
       (sources."prettyjson-1.2.1" // {
@@ -60585,7 +63058,7 @@ in
           sources."utile-0.2.1"
         ];
       })
-      sources."ps-tree-0.0.3"
+      sources."ps-tree-1.2.0"
       sources."read-1.0.7"
       sources."readable-stream-2.3.7"
       sources."readdirp-2.2.1"
@@ -60641,6 +63114,7 @@ in
       sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
+      sources."split-0.3.3"
       sources."split-string-3.1.0"
       sources."stack-trace-0.0.10"
       (sources."static-extend-0.1.2" // {
@@ -60660,6 +63134,7 @@ in
           sources."kind-of-5.1.0"
         ];
       })
+      sources."stream-combiner-0.0.4"
       sources."string-width-1.0.2"
       sources."string.prototype.trimend-1.0.1"
       sources."string.prototype.trimstart-1.0.1"
@@ -60727,6 +63202,37 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  get-graphql-schema = nodeEnv.buildNodePackage {
+    name = "get-graphql-schema";
+    packageName = "get-graphql-schema";
+    version = "2.1.2";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/get-graphql-schema/-/get-graphql-schema-2.1.2.tgz";
+      sha512 = "1z5Hw91VrE3GrpCZE6lE8Dy+jz4kXWesLS7rCSjwOxf5BOcIedAZeTUJRIeIzmmR+PA9CKOkPTYFRJbdgUtrxA==";
+    };
+    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."graphql-14.7.0"
+      sources."has-flag-3.0.0"
+      sources."iterall-1.3.0"
+      sources."minimist-1.2.5"
+      sources."node-fetch-2.6.0"
+      sources."supports-color-5.5.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Downloads the GraphQL Schema of an GraphQL endpoint URL";
+      homepage = "https://github.com/graphcool/get-graphql-schema#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   git-run = nodeEnv.buildNodePackage {
     name = "git-run";
     packageName = "git-run";
@@ -60738,7 +63244,7 @@ in
     dependencies = [
       sources."async-2.6.3"
       sources."debug-4.2.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.groupby-4.6.0"
       sources."microee-0.0.6"
       sources."minilog-3.1.0"
@@ -60766,7 +63272,7 @@ in
     };
     dependencies = [
       sources."asyncmemo-1.0.0"
-      sources."chloride-2.2.14"
+      sources."chloride-2.3.0"
       sources."chloride-test-1.2.4"
       sources."commander-2.20.3"
       sources."debug-4.2.0"
@@ -60782,7 +63288,7 @@ in
       sources."git-remote-ssb-2.0.4"
       sources."git-ssb-web-2.8.0"
       sources."hashlru-2.3.0"
-      sources."highlight.js-9.18.1"
+      sources."highlight.js-9.18.3"
       sources."increment-buffer-1.0.1"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
@@ -60790,15 +63296,15 @@ in
       sources."is-canonical-base64-1.1.1"
       sources."is-electron-2.2.0"
       sources."is-my-ip-valid-1.0.0"
-      sources."is-my-json-valid-2.20.1"
+      sources."is-my-json-valid-2.20.5"
       sources."is-property-1.0.2"
-      sources."is-valid-domain-0.0.14"
+      sources."is-valid-domain-0.0.15"
       sources."json-buffer-2.0.11"
-      sources."jsonpointer-4.0.1"
+      sources."jsonpointer-4.1.0"
       sources."kvgraph-0.1.0"
       sources."kvset-1.0.0"
-      sources."libsodium-0.7.6"
-      sources."libsodium-wrappers-0.7.6"
+      sources."libsodium-0.7.8"
+      sources."libsodium-wrappers-0.7.8"
       sources."lodash.get-4.4.2"
       sources."looper-4.0.0"
       sources."lrucache-1.0.3"
@@ -60814,14 +63320,13 @@ in
       sources."multiserver-address-1.0.1"
       sources."multiserver-scopes-1.0.0"
       sources."muxrpc-6.5.0"
-      sources."nan-2.14.1"
-      sources."nearley-2.19.4"
-      sources."node-gyp-build-4.2.2"
+      sources."nearley-2.19.6"
+      sources."node-gyp-build-4.2.3"
       sources."node-polyglot-1.0.0"
       sources."non-private-ip-1.4.4"
       sources."options-0.0.6"
       sources."os-homedir-1.0.2"
-      sources."packet-stream-2.0.4"
+      sources."packet-stream-2.0.5"
       sources."packet-stream-codec-1.1.2"
       sources."pako-1.0.11"
       sources."private-box-0.3.1"
@@ -60882,7 +63387,7 @@ in
       sources."separator-escape-0.0.0"
       sources."sha.js-2.4.5"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.4.1"
+      sources."socks-2.4.2"
       sources."sodium-browserify-1.3.0"
       (sources."sodium-browserify-tweetnacl-0.2.6" // {
         dependencies = [
@@ -60891,7 +63396,7 @@ in
         ];
       })
       sources."sodium-chloride-1.1.2"
-      sources."sodium-native-2.4.9"
+      sources."sodium-native-3.2.0"
       sources."split-buffer-1.0.0"
       sources."ssb-avatar-0.2.0"
       sources."ssb-caps-1.1.0"
@@ -60963,15 +63468,15 @@ in
   gitmoji-cli = nodeEnv.buildNodePackage {
     name = "gitmoji-cli";
     packageName = "gitmoji-cli";
-    version = "3.2.6";
+    version = "3.2.10";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-3.2.6.tgz";
-      sha512 = "Mzb3SGlcrFSwVu4R8Y2sGxK+d7VP6CRC6rw3S4mOPbxfW3qNrOLYEPDJM7h1GNUjOL22JQHx1qsn8sRODqAygQ==";
+      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-3.2.10.tgz";
+      sha512 = "IVwhdySPQyHTfImCGllphBqHZtDWGnphjZG4EhkKtJY98b69sbaRU8PRO+XEC0rutbb5Gf0oCHvM3QswtAVCeQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      (sources."@babel/highlight-7.10.3" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -60986,7 +63491,7 @@ in
       sources."@types/color-name-1.1.1"
       sources."@types/minimist-1.2.0"
       sources."@types/normalize-package-data-2.4.0"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -61000,6 +63505,7 @@ in
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.2.1"
       sources."arrify-1.0.1"
+      sources."atomically-1.3.2"
       (sources."boxen-4.2.0" // {
         dependencies = [
           sources."chalk-3.0.0"
@@ -61016,19 +63522,19 @@ in
       sources."chalk-4.1.0"
       sources."chardet-0.7.0"
       sources."ci-info-2.0.0"
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.3.0"
-      sources."cli-width-2.2.1"
+      sources."cli-spinners-2.4.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-6.2.4"
+      sources."conf-7.1.2"
       sources."configstore-5.0.1"
       sources."cross-spawn-7.0.3"
       sources."crypto-random-string-2.0.0"
-      sources."debounce-fn-3.0.1"
+      sources."debounce-fn-4.0.0"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -61047,14 +63553,14 @@ in
       sources."error-ex-1.3.2"
       sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
-      sources."execa-4.0.2"
+      sources."execa-4.0.3"
       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."fuse.js-3.6.1"
-      sources."get-stream-5.1.0"
+      sources."fuse.js-6.4.1"
+      sources."get-stream-5.2.0"
       sources."global-dirs-2.0.1"
       (sources."got-9.6.0" // {
         dependencies = [
@@ -61073,23 +63579,8 @@ in
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
       sources."ini-1.3.5"
-      (sources."inquirer-7.2.0" // {
-        dependencies = [
-          sources."chalk-3.0.0"
-        ];
-      })
-      (sources."inquirer-autocomplete-prompt-1.0.2" // {
-        dependencies = [
-          sources."ansi-escapes-3.2.0"
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."figures-2.0.0"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
-        ];
-      })
+      sources."inquirer-7.3.3"
+      sources."inquirer-autocomplete-prompt-1.1.0"
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
       sources."is-fullwidth-code-point-3.0.0"
@@ -61105,35 +63596,34 @@ in
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       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-traverse-0.4.1"
       sources."json-schema-typed-7.0.3"
       sources."keyv-3.1.0"
       sources."kind-of-6.0.3"
       sources."latest-version-5.1.0"
       sources."lines-and-columns-1.1.6"
-      sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
-      (sources."log-symbols-3.0.0" // {
+      (sources."locate-path-3.0.0" // {
         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."path-exists-3.0.0"
         ];
       })
+      sources."lodash-4.17.20"
+      sources."log-symbols-4.0.0"
       sources."lowercase-keys-1.0.1"
-      sources."make-dir-3.1.0"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."map-obj-4.1.0"
-      (sources."meow-6.1.1" // {
+      (sources."meow-7.1.1" // {
         dependencies = [
           sources."type-fest-0.13.1"
         ];
       })
       sources."merge-stream-2.0.0"
-      sources."mimic-fn-2.1.0"
+      sources."mimic-fn-3.1.0"
       sources."mimic-response-1.0.1"
       sources."min-indent-1.0.1"
       sources."minimist-1.2.5"
@@ -61148,20 +63638,24 @@ in
       sources."normalize-url-4.5.0"
       sources."npm-run-path-4.0.1"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
-      (sources."ora-4.0.4" // {
+      (sources."onetime-5.1.2" // {
         dependencies = [
-          sources."chalk-3.0.0"
+          sources."mimic-fn-2.1.0"
         ];
       })
+      sources."ora-5.0.0"
       sources."os-tmpdir-1.0.2"
       sources."p-cancelable-1.1.0"
       sources."p-limit-2.3.0"
       sources."p-locate-3.0.0"
       sources."p-try-2.2.0"
-      sources."package-json-6.5.0"
-      sources."parse-json-5.0.0"
-      sources."path-exists-3.0.0"
+      (sources."package-json-6.5.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."parse-json-5.1.0"
+      sources."path-exists-4.0.0"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.6"
       sources."pkg-up-3.1.0"
@@ -61181,21 +63675,24 @@ in
           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."type-fest-0.8.1"
         ];
       })
       sources."redent-3.0.0"
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       sources."resolve-1.17.0"
       sources."responselike-1.0.2"
       sources."restore-cursor-3.1.0"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.2"
       sources."safer-buffer-2.1.2"
-      sources."semver-6.3.0"
-      sources."semver-diff-3.1.1"
+      sources."semver-7.3.2"
+      (sources."semver-diff-3.1.1" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.3"
@@ -61208,7 +63705,7 @@ in
       sources."strip-final-newline-2.0.0"
       sources."strip-indent-3.0.0"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."term-size-2.2.0"
       sources."through-2.3.8"
       sources."tmp-0.0.33"
@@ -61218,12 +63715,12 @@ in
       sources."type-fest-0.11.0"
       sources."typedarray-to-buffer-3.1.5"
       sources."unique-string-2.0.0"
-      (sources."update-notifier-4.1.0" // {
+      (sources."update-notifier-4.1.1" // {
         dependencies = [
           sources."chalk-3.0.0"
         ];
       })
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."url-parse-lax-3.0.0"
       sources."validate-npm-package-license-3.0.4"
       sources."wcwidth-1.0.1"
@@ -61254,9 +63751,9 @@ in
     };
     dependencies = [
       sources."@ardatan/aggregate-error-0.0.1"
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      (sources."@babel/highlight-7.10.3" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -61266,41 +63763,36 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@babel/runtime-7.10.3"
+      sources."@babel/runtime-7.11.2"
+      sources."@exodus/schemasafe-1.0.0-rc.2"
       sources."@graphql-cli/common-4.0.0"
       sources."@graphql-cli/init-4.0.0"
-      sources."@graphql-toolkit/common-0.10.7"
-      (sources."@graphql-toolkit/core-0.10.7" // {
-        dependencies = [
-          sources."globby-11.0.0"
-          sources."p-limit-2.3.0"
-          sources."tslib-1.11.2"
-        ];
-      })
-      (sources."@graphql-toolkit/graphql-file-loader-0.10.7" // {
+      sources."@graphql-tools/delegate-6.2.0"
+      (sources."@graphql-tools/graphql-file-loader-6.2.0" // {
         dependencies = [
-          sources."tslib-1.11.2"
+          sources."fs-extra-9.0.1"
         ];
       })
-      (sources."@graphql-toolkit/json-file-loader-0.10.7" // {
+      (sources."@graphql-tools/import-6.2.0" // {
         dependencies = [
-          sources."tslib-1.11.2"
+          sources."fs-extra-9.0.1"
         ];
       })
-      (sources."@graphql-toolkit/schema-merging-0.10.7" // {
+      (sources."@graphql-tools/json-file-loader-6.2.0" // {
         dependencies = [
-          sources."tslib-1.11.2"
+          sources."fs-extra-9.0.1"
         ];
       })
-      (sources."@graphql-toolkit/url-loader-0.10.7" // {
+      sources."@graphql-tools/load-6.2.0"
+      sources."@graphql-tools/merge-6.2.0"
+      sources."@graphql-tools/schema-6.2.0"
+      (sources."@graphql-tools/url-loader-6.2.0" // {
         dependencies = [
-          sources."tslib-1.11.2"
+          sources."cross-fetch-3.0.5"
         ];
       })
-      sources."@graphql-tools/load-6.0.11"
-      sources."@graphql-tools/merge-6.0.11"
-      sources."@graphql-tools/schema-6.0.11"
-      sources."@graphql-tools/utils-6.0.11"
+      sources."@graphql-tools/utils-6.2.0"
+      sources."@graphql-tools/wrap-6.2.0"
       sources."@kwsites/exec-p-0.4.0"
       sources."@nodelib/fs.scandir-2.1.3"
       sources."@nodelib/fs.stat-2.0.3"
@@ -61308,13 +63800,10 @@ in
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/color-name-1.1.1"
+      sources."@types/node-14.6.3"
       sources."@types/parse-json-4.0.0"
-      (sources."@wry/equality-0.1.11" // {
-        dependencies = [
-          sources."tslib-1.13.0"
-        ];
-      })
-      sources."aggregate-error-3.0.1"
+      sources."@types/websocket-1.0.1"
+      sources."aggregate-error-3.1.0"
       sources."ajv-5.5.2"
       (sources."ansi-escapes-4.3.1" // {
         dependencies = [
@@ -61323,32 +63812,18 @@ in
       })
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.2.1"
-      (sources."apollo-link-1.2.14" // {
-        dependencies = [
-          sources."tslib-1.13.0"
-        ];
-      })
-      (sources."apollo-link-http-common-0.2.16" // {
-        dependencies = [
-          sources."tslib-1.13.0"
-        ];
-      })
-      sources."apollo-upload-client-13.0.0"
-      (sources."apollo-utilities-1.3.4" // {
-        dependencies = [
-          sources."tslib-1.13.0"
-        ];
-      })
       sources."argparse-1.0.10"
       sources."array-filter-1.0.0"
       sources."array-union-2.1.0"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
+      sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
       sources."available-typed-arrays-1.0.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
+      sources."backo2-1.0.2"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       (sources."better-ajv-errors-0.6.7" // {
@@ -61363,9 +63838,10 @@ in
       })
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
+      sources."bufferutil-4.0.1"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
@@ -61382,7 +63858,7 @@ in
       sources."chardet-0.7.0"
       sources."clean-stack-2.2.0"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.3.0"
+      sources."cli-spinners-2.4.0"
       sources."cli-width-2.2.1"
       (sources."cliui-4.1.0" // {
         dependencies = [
@@ -61406,18 +63882,18 @@ in
       sources."cosmiconfig-6.0.0"
       sources."cross-fetch-3.0.4"
       sources."cross-spawn-6.0.5"
+      sources."d-1.0.1"
       sources."dashdash-1.14.1"
+      sources."dataloader-2.0.0"
       sources."debug-4.2.0"
       sources."decamelize-1.2.0"
       sources."decompress-response-3.3.0"
       sources."deep-equal-2.0.3"
       sources."deep-extend-0.6.0"
-      sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
       sources."defer-to-connect-1.1.3"
       sources."define-properties-1.1.3"
       sources."delayed-stream-1.0.0"
-      sources."deprecated-decorator-0.1.6"
       sources."dir-glob-3.0.1"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
@@ -61427,17 +63903,25 @@ in
       sources."es-abstract-1.17.6"
       sources."es-get-iterator-1.1.0"
       sources."es-to-primitive-1.2.1"
+      sources."es5-ext-0.10.53"
+      sources."es6-iterator-2.0.3"
       sources."es6-promise-3.3.1"
+      sources."es6-symbol-3.1.3"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
+      sources."eventemitter3-3.1.2"
       sources."execa-1.0.0"
+      (sources."ext-1.4.0" // {
+        dependencies = [
+          sources."type-2.1.0"
+        ];
+      })
       sources."extend-3.0.2"
       (sources."external-editor-3.1.0" // {
         dependencies = [
           sources."tmp-0.0.33"
         ];
       })
-      sources."extract-files-8.1.0"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-1.1.0"
       sources."fast-glob-3.2.4"
@@ -61451,7 +63935,7 @@ in
       sources."foreach-2.0.5"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."form-urlencoded-4.1.4"
+      sources."form-urlencoded-4.2.1"
       sources."fs-extra-9.0.0"
       sources."fs.realpath-1.0.0"
       sources."fullname-4.0.1"
@@ -61469,25 +63953,14 @@ in
       })
       sources."graceful-fs-4.2.4"
       sources."grapheme-splitter-1.0.4"
-      sources."graphql-15.1.0"
-      (sources."graphql-config-3.0.2" // {
-        dependencies = [
-          sources."tslib-1.13.0"
-        ];
-      })
+      sources."graphql-15.3.0"
+      sources."graphql-config-3.0.3"
       sources."graphql-subscriptions-1.1.0"
-      (sources."graphql-tools-5.0.0" // {
-        dependencies = [
-          sources."form-data-3.0.0"
-          sources."tslib-1.13.0"
-          sources."uuid-7.0.3"
-        ];
-      })
       sources."graphql-type-json-0.2.4"
       sources."har-schema-2.0.0"
-      (sources."har-validator-5.1.3" // {
+      (sources."har-validator-5.1.5" // {
         dependencies = [
-          sources."ajv-6.12.2"
+          sources."ajv-6.12.4"
           sources."fast-deep-equal-3.1.3"
           sources."json-schema-traverse-0.4.1"
         ];
@@ -61522,15 +63995,17 @@ in
       sources."is-boolean-object-1.0.1"
       sources."is-callable-1.2.0"
       sources."is-date-object-1.0.2"
-      sources."is-docker-2.0.0"
+      sources."is-docker-2.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-interactive-1.0.0"
       sources."is-map-2.0.1"
+      sources."is-negative-zero-2.0.0"
       sources."is-number-7.0.0"
       sources."is-number-object-1.0.4"
-      sources."is-regex-1.1.0"
+      sources."is-promise-4.0.0"
+      sources."is-regex-1.1.1"
       sources."is-set-2.0.1"
       sources."is-stream-1.1.0"
       sources."is-string-1.0.5"
@@ -61548,14 +64023,14 @@ in
       sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
       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.3.1"
       sources."json-stringify-safe-5.0.1"
       sources."json-to-ast-2.1.0"
       sources."jsonfile-6.0.1"
       sources."jsonpath-plus-3.0.0"
-      sources."jsonpointer-4.0.1"
+      sources."jsonpointer-4.1.0"
       sources."jsprim-1.4.1"
       sources."keyv-3.1.0"
       sources."latest-version-5.1.0"
@@ -61563,7 +64038,7 @@ in
       sources."leven-3.1.0"
       sources."lines-and-columns-1.1.6"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       (sources."log-symbols-3.0.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -61592,6 +64067,7 @@ in
       sources."minimist-1.2.5"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
+      sources."next-tick-1.0.0"
       sources."nice-try-1.0.5"
       (sources."no-case-3.0.3" // {
         dependencies = [
@@ -61600,15 +64076,16 @@ in
       })
       sources."node-fetch-2.6.0"
       sources."node-fetch-h2-2.3.0"
+      sources."node-gyp-build-3.7.0"
       sources."node-readfiles-0.2.0"
       sources."normalize-path-2.1.1"
       sources."normalize-url-4.5.0"
       sources."npm-run-path-2.0.2"
       sources."number-is-nan-1.0.1"
       sources."oas-kit-common-1.0.8"
-      sources."oas-linter-3.1.2"
-      sources."oas-resolver-2.3.2"
-      sources."oas-schema-walker-1.1.4"
+      sources."oas-linter-3.2.0"
+      sources."oas-resolver-2.4.4"
+      sources."oas-schema-walker-1.1.5"
       sources."oas-validator-3.4.0"
       sources."oauth-sign-0.9.0"
       sources."object-inspect-1.8.0"
@@ -61616,7 +64093,7 @@ in
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.0"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
+      sources."onetime-5.1.2"
       sources."open-7.0.4"
       sources."openapi-to-graphql-2.1.0"
       (sources."ora-4.0.4" // {
@@ -61635,7 +64112,7 @@ in
       sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
       sources."p-is-promise-2.1.0"
-      sources."p-limit-3.0.1"
+      sources."p-limit-3.0.2"
       (sources."p-locate-3.0.0" // {
         dependencies = [
           sources."p-limit-2.3.0"
@@ -61649,7 +64126,7 @@ in
         ];
       })
       sources."parent-module-1.0.1"
-      sources."parse-json-5.0.0"
+      sources."parse-json-5.1.0"
       (sources."pascal-case-3.1.1" // {
         dependencies = [
           sources."tslib-1.13.0"
@@ -61669,10 +64146,10 @@ in
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
       sources."rc-1.2.8"
-      sources."reftools-1.1.1"
-      sources."regenerator-runtime-0.13.5"
+      sources."reftools-1.1.6"
+      sources."regenerator-runtime-0.13.7"
       sources."regexp.prototype.flags-1.3.0"
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       sources."remove-trailing-separator-1.1.0"
       sources."request-2.88.2"
@@ -61685,7 +64162,7 @@ in
       sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
       sources."run-parallel-1.1.9"
-      (sources."rxjs-6.5.5" // {
+      (sources."rxjs-6.6.2" // {
         dependencies = [
           sources."tslib-1.13.0"
         ];
@@ -61702,7 +64179,11 @@ in
       sources."should-type-1.4.0"
       sources."should-type-adaptors-1.1.0"
       sources."should-util-1.0.1"
-      sources."side-channel-1.0.2"
+      (sources."side-channel-1.0.3" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."signal-exit-3.0.3"
       sources."simple-git-2.5.0"
       sources."slash-3.0.0"
@@ -61715,7 +64196,8 @@ in
       sources."strip-ansi-6.0.0"
       sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-7.1.0"
+      sources."subscriptions-transport-ws-0.9.18"
+      sources."supports-color-7.2.0"
       (sources."swagger2openapi-5.4.0" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
@@ -61725,28 +64207,33 @@ in
           sources."yargs-12.0.5"
         ];
       })
+      sources."symbol-observable-1.2.0"
       sources."through-2.3.8"
       sources."tmp-0.2.1"
       sources."to-readable-stream-1.0.0"
       sources."to-regex-range-5.0.1"
       sources."tough-cookie-2.5.0"
-      (sources."ts-invariant-0.4.4" // {
-        dependencies = [
-          sources."tslib-1.13.0"
-        ];
-      })
-      sources."tslib-2.0.0"
+      sources."tslib-2.0.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
+      sources."type-1.2.0"
       sources."type-fest-0.3.1"
+      sources."typedarray-to-buffer-3.1.5"
       sources."universalify-1.0.0"
       sources."unixify-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."url-parse-lax-3.0.0"
+      sources."utf-8-validate-5.0.2"
       sources."uuid-3.4.0"
       sources."valid-url-1.0.9"
       sources."verror-1.10.0"
       sources."wcwidth-1.0.1"
+      (sources."websocket-1.0.32" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
       sources."whatwg-fetch-3.0.0"
       sources."which-1.3.1"
       sources."which-boxed-primitive-1.0.1"
@@ -61762,9 +64249,11 @@ in
         ];
       })
       sources."wrappy-1.0.2"
+      sources."ws-5.2.2"
       sources."y18n-4.0.0"
+      sources."yaeti-0.0.6"
       sources."yaml-1.10.0"
-      (sources."yargs-15.3.1" // {
+      (sources."yargs-15.4.1" // {
         dependencies = [
           sources."cliui-6.0.0"
           sources."find-up-4.1.0"
@@ -61779,12 +64268,6 @@ in
         ];
       })
       sources."yargs-parser-11.1.1"
-      sources."zen-observable-0.8.15"
-      (sources."zen-observable-ts-0.8.21" // {
-        dependencies = [
-          sources."tslib-1.13.0"
-        ];
-      })
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -62105,7 +64588,7 @@ in
       sources."here-0.0.2"
       sources."inherits-2.0.4"
       sources."isarray-0.0.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.toarray-4.4.0"
       sources."map-canvas-0.1.5"
       sources."marked-0.7.0"
@@ -62113,7 +64596,7 @@ in
         dependencies = [
           sources."ansi-styles-4.2.1"
           sources."chalk-4.1.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."memory-streams-0.1.3"
@@ -62132,10 +64615,10 @@ in
       sources."supports-color-2.0.0"
       (sources."supports-hyperlinks-2.1.0" // {
         dependencies = [
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
-      sources."systeminformation-4.26.9"
+      sources."systeminformation-4.27.3"
       sources."term-canvas-0.0.5"
       sources."type-fest-0.11.0"
       sources."wordwrap-0.0.3"
@@ -62166,7 +64649,11 @@ in
       sources."ansi-gray-0.1.1"
       sources."ansi-regex-2.1.1"
       sources."ansi-wrap-0.1.0"
-      sources."anymatch-2.0.0"
+      (sources."anymatch-2.0.0" // {
+        dependencies = [
+          sources."normalize-path-2.1.1"
+        ];
+      })
       sources."append-buffer-1.0.2"
       sources."archy-1.0.0"
       sources."arr-diff-4.0.0"
@@ -62216,11 +64703,7 @@ in
       sources."buffer-from-1.1.1"
       sources."cache-base-1.0.1"
       sources."camelcase-3.0.0"
-      (sources."chokidar-2.1.8" // {
-        dependencies = [
-          sources."normalize-path-3.0.0"
-        ];
-      })
+      sources."chokidar-2.1.8"
       (sources."class-utils-0.3.6" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -62296,7 +64779,7 @@ in
       sources."expand-tilde-2.0.2"
       (sources."ext-1.4.0" // {
         dependencies = [
-          sources."type-2.0.0"
+          sources."type-2.1.0"
         ];
       })
       sources."extend-3.0.2"
@@ -62312,6 +64795,7 @@ in
         ];
       })
       sources."fancy-log-1.3.3"
+      sources."fast-levenshtein-1.1.4"
       sources."file-uri-to-path-1.0.0"
       (sources."fill-range-4.0.0" // {
         dependencies = [
@@ -62339,7 +64823,7 @@ in
         ];
       })
       sources."glob-stream-6.1.0"
-      sources."glob-watcher-5.0.3"
+      sources."glob-watcher-5.0.5"
       sources."global-modules-1.0.0"
       sources."global-prefix-1.0.2"
       sources."glogg-1.0.2"
@@ -62417,7 +64901,7 @@ in
       sources."nanomatch-1.2.13"
       sources."next-tick-1.0.0"
       sources."normalize-package-data-2.5.0"
-      sources."normalize-path-2.1.1"
+      sources."normalize-path-3.0.0"
       sources."now-and-later-2.0.1"
       sources."number-is-nan-1.0.1"
       (sources."object-copy-0.1.0" // {
@@ -62570,7 +65054,7 @@ in
       sources."type-1.2.0"
       sources."typedarray-0.0.6"
       sources."unc-path-regex-0.1.2"
-      sources."undertaker-1.2.1"
+      sources."undertaker-1.3.0"
       sources."undertaker-registry-1.0.1"
       sources."union-value-1.0.1"
       sources."unique-stream-2.3.1"
@@ -62593,7 +65077,11 @@ in
       sources."value-or-function-3.0.0"
       sources."vinyl-2.2.0"
       sources."vinyl-fs-3.0.3"
-      sources."vinyl-sourcemap-1.1.0"
+      (sources."vinyl-sourcemap-1.1.0" // {
+        dependencies = [
+          sources."normalize-path-2.1.1"
+        ];
+      })
       sources."which-1.3.1"
       sources."which-module-1.0.0"
       sources."wrap-ansi-2.1.0"
@@ -62693,7 +65181,7 @@ in
       sources."expand-tilde-2.0.2"
       (sources."ext-1.4.0" // {
         dependencies = [
-          sources."type-2.0.0"
+          sources."type-2.1.0"
         ];
       })
       sources."extend-3.0.2"
@@ -62999,7 +65487,7 @@ in
       sources."param-case-2.1.1"
       sources."relateurl-0.2.7"
       sources."source-map-0.6.1"
-      sources."uglify-js-3.10.0"
+      sources."uglify-js-3.10.3"
       sources."upper-case-1.1.3"
     ];
     buildInputs = globalBuildInputs;
@@ -63022,14 +65510,14 @@ in
     };
     dependencies = [
       sources."@types/color-name-1.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ansi-styles-4.2.1"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."async-3.2.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
@@ -63056,7 +65544,7 @@ in
       sources."glob-base-0.3.0"
       sources."glob-parent-2.0.0"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-4.0.0"
       sources."http-signature-1.2.0"
       sources."inflight-1.0.6"
@@ -63087,11 +65575,11 @@ in
       sources."safer-buffer-2.1.2"
       sources."sshpk-1.16.1"
       sources."strip-json-comments-3.1.0"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
       sources."wrappy-1.0.2"
@@ -63122,17 +65610,17 @@ in
       sources."corser-2.0.1"
       sources."debug-3.2.6"
       sources."ecstatic-3.3.2"
-      sources."eventemitter3-4.0.4"
-      sources."follow-redirects-1.12.1"
+      sources."eventemitter3-4.0.7"
+      sources."follow-redirects-1.13.0"
       sources."he-1.2.0"
       sources."http-proxy-1.18.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."mime-1.6.0"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
-      sources."opener-1.5.1"
-      sources."portfinder-1.0.26"
+      sources."opener-1.5.2"
+      sources."portfinder-1.0.28"
       sources."qs-6.9.4"
       sources."requires-port-1.0.0"
       sources."secure-compare-3.0.1"
@@ -63217,7 +65705,7 @@ in
       sources."async-0.2.10"
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
-      sources."bunyan-1.8.13"
+      sources."bunyan-1.8.14"
       sources."colors-0.6.2"
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.2"
@@ -63304,7 +65792,7 @@ in
       sha512 = "l4g7U75E+WgrgNGH774djfTyp5Aw+2jJokYe9iCunSAbi/w+nRGHqTJfwbODLwiJQTnbXkM42FxgPRA29Ce7Bg==";
     };
     dependencies = [
-      sources."@types/jquery-3.5.0"
+      sources."@types/jquery-3.5.1"
       sources."@types/sizzle-2.3.2"
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
@@ -63323,7 +65811,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."jquery-3.5.1"
-      sources."jquery.terminal-2.17.2"
+      sources."jquery.terminal-2.18.3"
       sources."jsonfile-2.4.0"
       sources."keyboardevent-key-polyfill-1.1.0"
       sources."line-reader-0.4.0"
@@ -63331,7 +65819,7 @@ in
       sources."once-1.4.0"
       sources."os-homedir-1.0.2"
       sources."path-is-absolute-1.0.1"
-      sources."prismjs-1.20.0"
+      sources."prismjs-1.21.0"
       sources."rimraf-2.7.1"
       sources."select-1.1.2"
       sources."tiny-emitter-2.1.0"
@@ -63374,7 +65862,11 @@ in
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
-      sources."ast-types-0.13.3"
+      (sources."ast-types-0.14.1" // {
+        dependencies = [
+          sources."tslib-2.0.1"
+        ];
+      })
       sources."astral-regex-2.0.0"
       sources."asynckit-0.4.0"
       sources."balanced-match-1.0.0"
@@ -63390,7 +65882,7 @@ in
       sources."chardet-0.7.0"
       sources."chownr-1.1.4"
       sources."cli-cursor-2.1.0"
-      sources."cli-width-2.2.1"
+      sources."cli-width-3.0.0"
       sources."co-4.6.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -63484,17 +65976,21 @@ in
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      (sources."inquirer-7.2.0" // {
+      (sources."inquirer-7.3.3" // {
         dependencies = [
           sources."ansi-escapes-4.3.1"
+          sources."ansi-styles-4.2.1"
+          sources."chalk-4.1.0"
           sources."cli-cursor-3.1.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
           sources."mimic-fn-2.1.0"
-          sources."onetime-5.1.0"
+          sources."onetime-5.1.2"
           sources."restore-cursor-3.1.0"
         ];
       })
       sources."ip-1.1.5"
-      sources."is-docker-2.0.0"
+      sources."is-docker-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-stream-1.1.0"
       sources."is-typedarray-1.0.0"
@@ -63509,7 +66005,7 @@ in
         ];
       })
       sources."levn-0.3.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash._baseassign-3.2.0"
       sources."lodash._basecopy-3.0.1"
       sources."lodash._bindcallback-3.0.1"
@@ -63529,7 +66025,7 @@ in
         ];
       })
       sources."lru-cache-5.1.1"
-      sources."macos-release-2.3.0"
+      sources."macos-release-2.4.1"
       sources."methods-1.1.2"
       sources."mime-2.4.6"
       sources."mime-db-1.44.0"
@@ -63551,7 +66047,7 @@ in
       })
       sources."once-1.4.0"
       sources."onetime-2.0.1"
-      sources."open-7.0.4"
+      sources."open-7.2.1"
       sources."optionator-0.8.3"
       sources."os-name-3.1.0"
       sources."os-tmpdir-1.0.2"
@@ -63572,7 +66068,7 @@ in
       sources."rimraf-3.0.2"
       sources."rsvp-3.6.2"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.2"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.1.4"
@@ -63597,7 +66093,7 @@ in
         ];
       })
       sources."source-map-0.6.1"
-      sources."split2-3.1.1"
+      sources."split2-3.2.2"
       sources."ssh-config-1.1.6"
       sources."statuses-1.5.0"
       (sources."stream-combiner2-1.1.1" // {
@@ -63626,7 +66122,7 @@ in
           sources."debug-3.2.6"
         ];
       })
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."tar-4.4.13"
       sources."through-2.3.8"
       sources."through2-3.0.2"
@@ -63644,7 +66140,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."which-2.0.2"
-      sources."windows-release-3.3.1"
+      sources."windows-release-3.3.3"
       sources."word-wrap-1.2.3"
       (sources."wrap-ansi-6.2.0" // {
         dependencies = [
@@ -63655,7 +66151,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xregexp-2.0.0"
       sources."yallist-3.1.1"
     ];
@@ -63669,93 +66165,75 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  ios-deploy = nodeEnv.buildNodePackage {
-    name = "ios-deploy";
-    packageName = "ios-deploy";
-    version = "1.10.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ios-deploy/-/ios-deploy-1.10.0.tgz";
-      sha512 = "sklB6PkJkWrHDublkZJeY4z9i7hl0nS2aRVse+/idGnb4eZddMQRfPVB4YzkEoyJ4FyW1I3sdLP6/cg/Imu/sw==";
-    };
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "launch iOS apps iOS devices from the command line (Xcode 7)";
-      homepage = "https://github.com/ios-control/ios-deploy#readme";
-      license = "GPLv3";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
   "iosevka-build-deps-../../data/fonts/iosevka" = nodeEnv.buildNodePackage {
     name = "iosevka-build-deps";
     packageName = "iosevka-build-deps";
-    version = "2.3.3";
+    version = "3.2.2";
     src = ../../data/fonts/iosevka;
     dependencies = [
+      sources."@iarna/toml-2.2.5"
+      sources."@josh-brown/vector-3.4.0"
       sources."@types/color-name-1.1.1"
       sources."JSONStream-1.3.5"
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."amdefine-1.0.1"
-      sources."ansi-regex-2.1.1"
-      sources."ansi-styles-4.2.1"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-3.2.1"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
       sources."argparse-1.0.10"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
+      sources."async-0.9.2"
       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.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."bezier-js-2.6.1"
       sources."bindings-1.5.0"
-      sources."block-stream-0.0.9"
       sources."bluebird-3.7.2"
       sources."brace-expansion-1.1.11"
-      sources."bufferstreams-1.1.3"
-      sources."camelcase-4.1.0"
-      sources."caryll-shapeops-0.3.1"
+      sources."bufferstreams-2.0.1"
+      sources."camelcase-5.3.1"
       sources."caseless-0.12.0"
-      sources."chalk-4.1.0"
+      sources."chainsaw-0.0.9"
+      sources."chalk-2.4.2"
       sources."child-process-promise-2.2.1"
+      sources."chownr-1.1.4"
+      sources."cldr-5.7.0"
       sources."cli-cursor-3.1.0"
-      sources."clipper-lib-1.0.0"
-      (sources."cliui-3.2.0" // {
-        dependencies = [
-          sources."string-width-1.0.2"
-        ];
-      })
-      sources."clone-2.1.2"
+      sources."clipper-lib-6.4.2"
+      sources."cliui-6.0.0"
       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."color-convert-1.9.3"
+      sources."color-name-1.1.3"
       sources."combined-stream-1.0.8"
-      sources."complex.js-2.0.11"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
       sources."core-util-is-1.0.2"
-      sources."cross-spawn-4.0.2"
+      (sources."cross-spawn-4.0.2" // {
+        dependencies = [
+          sources."lru-cache-4.1.5"
+          sources."which-1.3.1"
+        ];
+      })
       sources."css-2.2.4"
       sources."css-parse-2.0.0"
-      sources."cubic2quad-1.1.1"
       sources."dashdash-1.14.1"
       sources."debug-3.1.0"
       sources."decamelize-1.2.0"
-      sources."decimal.js-10.2.0"
       sources."decode-uri-component-0.2.0"
       sources."deep-is-0.1.3"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
       sources."ecc-jsbn-0.1.2"
+      sources."ejs-3.1.5"
       sources."emoji-regex-8.0.0"
       sources."error-ex-1.3.2"
-      sources."escape-latex-1.2.0"
+      sources."escape-string-regexp-1.0.5"
       sources."escodegen-1.14.3"
       (sources."escope-1.0.3" // {
         dependencies = [
@@ -63782,163 +66260,157 @@ in
       })
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
-      (sources."execa-0.7.0" // {
-        dependencies = [
-          sources."cross-spawn-5.1.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."fast-levenshtein-2.0.6"
       sources."file-uri-to-path-1.0.0"
-      sources."find-up-2.1.0"
-      sources."first-chunk-stream-2.0.0"
+      sources."filelist-1.0.1"
+      sources."find-up-4.1.0"
+      sources."first-chunk-stream-3.0.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."fraction.js-4.0.12"
-      sources."fs-extra-3.0.1"
+      sources."fs-extra-9.0.1"
+      sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
-      sources."fstream-1.0.12"
       (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."get-caller-file-1.0.3"
-      sources."get-stream-3.0.0"
+      sources."get-caller-file-2.0.5"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
-      sources."has-flag-4.0.0"
+      sources."har-validator-5.1.5"
+      sources."has-flag-3.0.0"
       sources."has-unicode-2.0.1"
+      sources."hashish-0.0.4"
       sources."hosted-git-info-2.8.8"
       sources."http-signature-1.2.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."invert-kv-1.0.0"
       sources."is-arrayish-0.2.1"
-      sources."is-fullwidth-code-point-1.0.0"
-      sources."is-stream-1.1.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
-      sources."javascript-natural-sort-0.7.1"
+      sources."jake-10.8.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."jsonfile-3.0.1"
+      sources."jsonfile-6.0.1"
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
       sources."lcid-1.0.0"
       sources."levn-0.3.0"
-      sources."libspiro-js-0.3.1"
-      sources."load-json-file-2.0.0"
-      sources."locate-path-2.0.0"
-      sources."lru-cache-4.1.5"
-      sources."mathjs-5.10.3"
-      sources."megaminx-0.9.0"
-      sources."mem-1.1.0"
+      sources."load-json-file-1.1.0"
+      sources."locate-path-5.0.0"
+      sources."lru-cache-2.5.0"
+      sources."memoizeasync-1.1.0"
       sources."microbuffer-1.0.0"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
-      sources."mimic-fn-1.2.0"
+      sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."mkdirp-0.5.5"
+      (sources."minipass-2.9.0" // {
+        dependencies = [
+          sources."yallist-3.1.1"
+        ];
+      })
+      sources."minizlib-1.3.3"
+      sources."mkdirp-1.0.4"
       sources."ms-2.0.0"
       sources."nan-2.14.1"
-      (sources."node-gyp-3.8.0" // {
+      (sources."node-gyp-4.0.0" // {
         dependencies = [
+          sources."mkdirp-0.5.5"
           sources."semver-5.3.0"
+          sources."which-1.3.1"
         ];
       })
       sources."node-version-1.2.0"
       sources."nopt-3.0.6"
-      sources."normalize-package-data-2.5.0"
-      sources."npm-run-path-2.0.2"
+      (sources."normalize-package-data-2.5.0" // {
+        dependencies = [
+          sources."semver-5.7.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."once-1.4.0"
-      (sources."onetime-5.1.0" // {
-        dependencies = [
-          sources."mimic-fn-2.1.0"
-        ];
-      })
+      sources."onetime-5.1.2"
       sources."optionator-0.8.3"
       sources."os-homedir-1.0.2"
-      sources."os-locale-2.1.0"
+      sources."os-locale-1.4.0"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
-      (sources."otfcc-ttcize-0.8.0" // {
-        dependencies = [
-          sources."fs-extra-4.0.3"
-          sources."jsonfile-4.0.0"
-          (sources."megaminx-0.3.3" // {
-            dependencies = [
-              sources."fs-extra-3.0.1"
-              sources."jsonfile-3.0.1"
-            ];
-          })
-          sources."yargs-8.0.2"
-        ];
-      })
-      sources."p-finally-1.0.0"
-      sources."p-limit-1.3.0"
-      sources."p-locate-2.0.0"
-      sources."p-try-1.0.0"
+      sources."otfcc-ttcize-0.10.2"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-try-2.2.0"
       sources."pako-1.0.11"
       sources."parse-json-2.2.0"
+      sources."passerror-1.1.1"
       (sources."patel-0.33.1" // {
         dependencies = [
+          sources."ansi-regex-2.1.1"
           sources."camelcase-3.0.0"
-          sources."find-up-1.1.2"
-          sources."load-json-file-1.1.0"
-          sources."os-locale-1.4.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."cliui-3.2.0"
+          sources."get-caller-file-1.0.3"
+          sources."is-fullwidth-code-point-1.0.0"
+          sources."require-main-filename-1.0.1"
           sources."string-width-1.0.2"
-          sources."strip-bom-2.0.0"
+          sources."strip-ansi-3.0.1"
           sources."which-module-1.0.0"
+          sources."wrap-ansi-2.1.0"
+          sources."y18n-3.2.1"
           sources."yargs-6.6.0"
           sources."yargs-parser-4.2.1"
         ];
       })
-      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-type-2.0.0"
+      sources."path-type-1.1.0"
       sources."patrisika-0.21.0"
       sources."patrisika-scopes-0.11.1"
+      sources."pegjs-0.10.0"
       sources."performance-now-2.1.0"
       sources."pify-2.3.0"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
       sources."prelude-ls-1.1.2"
-      sources."primitive-quadify-off-curves-0.4.1"
+      sources."prettier-2.1.1"
       sources."process-nextick-args-2.0.1"
       sources."promise-polyfill-6.1.0"
       sources."pseudomap-1.0.2"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
-      sources."read-pkg-2.0.0"
-      sources."read-pkg-up-2.0.0"
+      sources."read-pkg-1.1.0"
+      (sources."read-pkg-up-1.0.1" // {
+        dependencies = [
+          sources."find-up-1.1.2"
+          sources."path-exists-2.1.0"
+        ];
+      })
       sources."readable-stream-2.3.7"
       sources."request-2.88.2"
       sources."require-directory-2.1.1"
-      sources."require-main-filename-1.0.1"
+      sources."require-main-filename-2.0.0"
       sources."resolve-1.17.0"
       sources."resolve-url-0.2.1"
       sources."restore-cursor-3.1.0"
@@ -63947,12 +66419,10 @@ in
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      sources."seed-random-2.2.0"
       sources."semaphore-async-await-1.5.1"
-      sources."semver-5.7.1"
+      sources."semver-7.3.2"
+      sources."seq-0.3.5"
       sources."set-blocking-2.0.0"
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.0"
       sources."signal-exit-3.0.3"
       sources."source-map-0.6.1"
       sources."source-map-resolve-0.5.3"
@@ -63961,119 +66431,90 @@ in
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
+      sources."spiro-2.0.0"
       sources."split-1.0.1"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
       sources."stack-trace-0.0.9"
-      (sources."string-width-2.1.1" // {
-        dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."strip-ansi-4.0.0"
-        ];
-      })
+      sources."string-width-4.2.0"
       sources."string_decoder-1.1.1"
-      sources."strip-ansi-3.0.1"
-      sources."strip-bom-3.0.0"
-      sources."strip-bom-buf-1.0.0"
-      sources."strip-bom-stream-3.0.0"
-      sources."strip-eof-1.0.0"
-      (sources."stylus-0.54.7" // {
+      sources."strip-ansi-6.0.0"
+      sources."strip-bom-2.0.0"
+      sources."strip-bom-buf-2.0.0"
+      sources."strip-bom-stream-4.0.0"
+      (sources."stylus-0.54.8" // {
         dependencies = [
           sources."semver-6.3.0"
           sources."source-map-0.7.3"
         ];
       })
-      sources."supports-color-7.1.0"
-      sources."tar-2.2.2"
-      sources."temp-0.8.4"
+      sources."supports-color-5.5.0"
+      (sources."tar-4.4.13" // {
+        dependencies = [
+          sources."mkdirp-0.5.5"
+          sources."yallist-3.1.1"
+        ];
+      })
+      sources."temp-0.9.1"
       sources."through-2.3.8"
-      sources."tiny-emitter-2.1.0"
-      sources."toml-3.0.0"
       sources."topsort-0.0.2"
       sources."tough-cookie-2.5.0"
+      sources."traverse-0.3.9"
       sources."ts-process-promises-1.0.2"
-      sources."tslib-1.9.3"
+      sources."tslib-1.13.0"
       sources."ttf2woff-2.0.2"
-      sources."ttf2woff2-2.0.3"
+      sources."ttf2woff2-3.0.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
-      sources."typed-function-1.1.0"
-      sources."typo-geom-0.5.1"
-      sources."universalify-0.1.2"
+      sources."typo-geom-0.8.4"
+      sources."unicode-13.0.0-0.8.0"
+      sources."unicoderegexp-0.4.1"
+      sources."universalify-1.0.0"
       sources."unorm-1.6.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."validate-npm-package-license-3.0.4"
-      (sources."verda-1.1.0" // {
+      (sources."verda-1.1.1" // {
         dependencies = [
-          sources."ansi-regex-5.0.0"
-          sources."camelcase-5.3.1"
-          sources."cliui-6.0.0"
-          sources."find-up-4.1.0"
-          sources."fs-extra-9.0.1"
-          sources."get-caller-file-2.0.5"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."jsonfile-6.0.1"
-          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."require-main-filename-2.0.0"
-          sources."string-width-4.2.0"
-          sources."strip-ansi-6.0.0"
-          sources."tslib-1.13.0"
-          sources."universalify-1.0.0"
-          sources."which-2.0.2"
-          sources."wrap-ansi-6.2.0"
-          sources."y18n-4.0.0"
-          sources."yargs-15.3.1"
-          sources."yargs-parser-18.1.3"
+          sources."ansi-styles-4.2.1"
+          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.0.1"
         ];
       })
       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"
+      (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."word-wrap-1.2.3"
       sources."wordwrap-0.0.3"
-      (sources."wrap-ansi-2.1.0" // {
+      (sources."wrap-ansi-6.2.0" // {
         dependencies = [
-          sources."string-width-1.0.2"
+          sources."ansi-styles-4.2.1"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
         ];
       })
       sources."wrappy-1.0.2"
-      sources."y18n-3.2.1"
+      sources."xmldom-0.3.0"
+      sources."xpath-0.0.27"
+      sources."y18n-4.0.0"
       sources."yallist-2.1.2"
-      (sources."yargs-14.2.3" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."ansi-styles-3.2.1"
-          sources."camelcase-5.3.1"
-          sources."cliui-5.0.0"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."emoji-regex-7.0.3"
-          sources."find-up-3.0.0"
-          sources."get-caller-file-2.0.5"
-          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"
-          sources."p-try-2.2.0"
-          sources."require-main-filename-2.0.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
-          sources."wrap-ansi-5.1.0"
-          sources."y18n-4.0.0"
-          sources."yargs-parser-15.0.1"
-        ];
-      })
-      sources."yargs-parser-7.0.0"
+      sources."yargs-15.4.1"
+      sources."yargs-parser-18.1.3"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -64152,8 +66593,8 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."iterare-1.2.1"
-      sources."jaeger-client-3.18.0"
-      sources."lodash-4.17.15"
+      sources."jaeger-client-3.18.1"
+      sources."lodash-4.17.20"
       sources."long-2.4.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -64204,24 +66645,24 @@ in
   joplin = nodeEnv.buildNodePackage {
     name = "joplin";
     packageName = "joplin";
-    version = "1.0.164";
+    version = "1.0.166";
     src = fetchurl {
-      url = "https://registry.npmjs.org/joplin/-/joplin-1.0.164.tgz";
-      sha512 = "MoTbd8p03e/TKLz6EAlkMQY4g2gfVDoTarePwKXslGbSP/ppgnO7MJ7jy1B7lTlr5ryhhyPhOpz2z//zTcG0Aw==";
+      url = "https://registry.npmjs.org/joplin/-/joplin-1.0.166.tgz";
+      sha512 = "+wZT9vcD+fIFL3E4kkSKHhaphKq6sDrrFbVoiCyZRoY9+3sGvBedzYOPEoZpiF83YbbPR+WUSM54naB5q8xOYw==";
     };
     dependencies = [
-      sources."@cronvel/get-pixels-3.3.1"
+      sources."@cronvel/get-pixels-3.4.0"
       sources."@yarnpkg/lockfile-1.1.0"
-      sources."abab-2.0.3"
+      sources."abab-2.0.4"
       sources."abbrev-1.1.1"
-      sources."acorn-7.3.1"
+      sources."acorn-7.4.0"
       (sources."acorn-globals-4.3.4" // {
         dependencies = [
           sources."acorn-6.4.1"
         ];
       })
       sources."acorn-walk-6.2.0"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       (sources."ansi-escape-sequences-4.1.0" // {
         dependencies = [
           sources."array-back-3.1.0"
@@ -64256,8 +66697,15 @@ in
       sources."async-mutex-0.1.4"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
+      (sources."aws-sdk-2.745.0" // {
+        dependencies = [
+          sources."sax-1.2.1"
+          sources."uuid-3.3.2"
+          sources."xml2js-0.4.19"
+        ];
+      })
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -64268,7 +66716,11 @@ in
       sources."base64-js-1.3.1"
       sources."base64-stream-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."bl-4.0.2"
+      (sources."bl-4.0.3" // {
+        dependencies = [
+          sources."buffer-5.6.0"
+        ];
+      })
       sources."brace-expansion-1.1.11"
       (sources."braces-2.3.2" // {
         dependencies = [
@@ -64276,7 +66728,7 @@ in
         ];
       })
       sources."browser-process-hrtime-1.0.0"
-      sources."buffer-5.6.0"
+      sources."buffer-4.9.2"
       sources."cache-base-1.0.1"
       sources."camel-case-3.0.0"
       sources."camelcase-4.1.0"
@@ -64379,7 +66831,11 @@ in
           sources."supports-color-2.0.0"
         ];
       })
-      sources."encoding-0.1.12"
+      (sources."encoding-0.1.13" // {
+        dependencies = [
+          sources."iconv-lite-0.6.2"
+        ];
+      })
       sources."end-of-stream-1.4.4"
       sources."entities-1.1.2"
       sources."es6-promise-pool-2.5.0"
@@ -64388,6 +66844,7 @@ in
       sources."esprima-4.0.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
+      sources."events-1.1.1"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -64424,7 +66881,6 @@ in
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."fault-1.0.4"
-      sources."fd-slicer-1.1.0"
       sources."file-type-10.11.0"
       sources."file-uri-to-path-1.0.0"
       (sources."fill-range-4.0.0" // {
@@ -64438,7 +66894,7 @@ in
           sources."fs-extra-4.0.3"
         ];
       })
-      sources."follow-redirects-1.12.1"
+      sources."follow-redirects-1.13.0"
       sources."font-awesome-filetypes-2.1.0"
       sources."for-each-property-0.0.4"
       sources."for-each-property-deep-0.0.3"
@@ -64464,7 +66920,7 @@ in
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-ansi-2.0.0"
       sources."has-flag-3.0.0"
       sources."has-unicode-2.0.1"
@@ -64475,19 +66931,20 @@ in
         ];
       })
       sources."he-1.2.0"
-      sources."highlight.js-9.18.1"
+      sources."highlight.js-10.1.1"
       sources."html-encoding-sniffer-1.0.2"
       sources."html-entities-1.3.1"
       sources."html-minifier-3.5.21"
       (sources."htmlparser2-4.1.0" // {
         dependencies = [
+          sources."dom-serializer-1.0.1"
           sources."domelementtype-2.0.1"
           sources."domhandler-3.0.0"
-          sources."domutils-2.1.0"
+          sources."domutils-2.2.0"
           sources."entities-2.0.3"
         ];
       })
-      sources."http-errors-1.7.3"
+      sources."http-errors-1.8.0"
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.1.13"
@@ -64559,9 +67016,10 @@ in
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
       sources."isstream-0.1.2"
-      sources."joplin-turndown-4.0.28"
+      sources."jmespath-0.15.0"
+      sources."joplin-turndown-4.0.29"
       sources."joplin-turndown-plugin-gfm-1.0.12"
-      sources."jpeg-js-0.1.2"
+      sources."jpeg-js-0.4.2"
       sources."js-tokens-4.0.0"
       sources."jsbn-0.1.1"
       sources."jsdom-15.2.1"
@@ -64571,11 +67029,12 @@ in
       sources."jsonfile-4.0.0"
       sources."jsprim-1.4.1"
       sources."jssha-2.4.2"
-      (sources."katex-0.11.1" // {
+      (sources."katex-0.12.0" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
       })
+      sources."keytar-5.6.0"
       sources."kind-of-6.0.3"
       sources."klaw-1.3.1"
       sources."klaw-sync-6.0.0"
@@ -64584,7 +67043,7 @@ in
       sources."levn-0.3.0"
       sources."linkify-it-2.2.0"
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash-es-4.17.15"
       sources."lodash.padend-4.6.1"
       sources."lodash.repeat-4.1.0"
@@ -64613,15 +67072,17 @@ in
       sources."markdown-it-footnote-3.0.2"
       sources."markdown-it-ins-3.0.0"
       sources."markdown-it-mark-3.0.0"
-      (sources."markdown-it-multimd-table-4.0.2" // {
+      (sources."markdown-it-multimd-table-4.0.3" // {
         dependencies = [
-          sources."markdown-it-8.4.2"
+          sources."entities-2.0.3"
+          sources."linkify-it-3.0.2"
+          sources."markdown-it-11.0.0"
         ];
       })
       sources."markdown-it-sub-1.0.0"
       sources."markdown-it-sup-1.0.0"
       sources."markdown-it-toc-done-right-4.1.0"
-      sources."md5-2.2.1"
+      sources."md5-2.3.0"
       sources."md5-file-4.0.0"
       sources."mdurl-1.0.1"
       sources."memory-cache-0.2.0"
@@ -64633,7 +67094,7 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-3.1.3"
-      sources."minizlib-2.1.0"
+      sources."minizlib-2.1.2"
       (sources."mixin-deep-1.3.2" // {
         dependencies = [
           sources."is-extendable-1.0.1"
@@ -64643,11 +67104,7 @@ in
       sources."mkdirp-classic-0.5.3"
       sources."moment-2.27.0"
       sources."ms-2.0.0"
-      (sources."multiparty-4.2.1" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."multiparty-4.2.2"
       sources."nan-2.14.1"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
@@ -64657,7 +67114,7 @@ in
       sources."napi-build-utils-1.0.2"
       sources."ndarray-1.0.19"
       sources."ndarray-pack-1.2.1"
-      (sources."needle-2.5.0" // {
+      (sources."needle-2.5.2" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."ms-2.1.2"
@@ -64666,7 +67123,7 @@ in
       sources."nextgen-events-1.3.0"
       sources."nice-try-1.0.5"
       sources."no-case-2.3.2"
-      sources."node-abi-2.18.0"
+      sources."node-abi-2.19.1"
       sources."node-bitmap-0.0.1"
       sources."node-emoji-1.10.0"
       sources."node-fetch-1.7.3"
@@ -64723,25 +67180,25 @@ in
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
-      sources."pend-1.2.0"
       sources."performance-now-2.1.0"
       sources."pify-3.0.0"
       sources."pipe-functions-1.3.0"
       sources."pn-1.1.0"
-      sources."pngjs-2.3.1"
+      sources."pngjs-5.0.0"
       sources."posix-character-classes-0.1.1"
-      sources."prebuild-install-5.3.5"
+      sources."prebuild-install-5.3.3"
       sources."prelude-ls-1.1.2"
       sources."process-nextick-args-2.0.1"
       sources."promise-7.3.1"
       sources."proper-lockfile-2.0.1"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
-      sources."punycode-2.1.1"
+      sources."punycode-1.3.2"
       sources."q-1.1.2"
       sources."qs-6.5.2"
       sources."query-string-4.3.4"
-      sources."querystringify-2.1.1"
+      sources."querystring-0.2.0"
+      sources."querystringify-2.2.0"
       sources."random-bytes-1.0.0"
       sources."rc-1.2.8"
       sources."read-chunk-2.1.0"
@@ -64760,12 +67217,14 @@ in
       (sources."request-2.88.2" // {
         dependencies = [
           sources."form-data-2.3.3"
+          sources."punycode-2.1.1"
           sources."tough-cookie-2.5.0"
         ];
       })
-      sources."request-promise-core-1.1.3"
-      (sources."request-promise-native-1.0.8" // {
+      sources."request-promise-core-1.1.4"
+      (sources."request-promise-native-1.0.9" // {
         dependencies = [
+          sources."punycode-2.1.1"
           sources."tough-cookie-2.5.0"
         ];
       })
@@ -64788,7 +67247,7 @@ in
         ];
       })
       sources."setimmediate-1.0.5"
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."seventh-0.7.35"
       (sources."sharp-0.23.4" // {
         dependencies = [
@@ -64799,7 +67258,7 @@ in
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."signal-exit-3.0.3"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."simple-get-3.1.0"
       sources."simple-swizzle-0.2.2"
       sources."slash-2.0.0"
@@ -64865,7 +67324,7 @@ in
       sources."statuses-1.5.0"
       sources."stealthy-require-1.1.1"
       sources."strict-uri-encode-1.1.0"
-      sources."string-kit-0.11.7"
+      sources."string-kit-0.11.8"
       sources."string-padding-1.0.2"
       (sources."string-to-stream-1.1.1" // {
         dependencies = [
@@ -64905,14 +67364,14 @@ in
         ];
       })
       sources."tar-fs-2.1.0"
-      sources."tar-stream-2.1.2"
+      sources."tar-stream-2.1.3"
       (sources."tcp-port-used-0.1.2" // {
         dependencies = [
           sources."debug-0.7.4"
           sources."q-0.9.7"
         ];
       })
-      sources."terminal-kit-1.35.8"
+      sources."terminal-kit-1.43.0"
       (sources."tkwidgets-0.5.26" // {
         dependencies = [
           sources."is-fullwidth-code-point-2.0.0"
@@ -64929,8 +67388,16 @@ in
       sources."to-regex-3.0.2"
       sources."to-regex-range-2.1.1"
       sources."toidentifier-1.0.0"
-      sources."tough-cookie-3.0.1"
-      sources."tr46-1.0.1"
+      (sources."tough-cookie-3.0.1" // {
+        dependencies = [
+          sources."punycode-2.1.1"
+        ];
+      })
+      (sources."tr46-1.0.1" // {
+        dependencies = [
+          sources."punycode-2.1.1"
+        ];
+      })
       sources."tree-kit-0.6.2"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
@@ -64960,8 +67427,13 @@ in
         ];
       })
       sources."upper-case-1.1.3"
-      sources."uri-js-4.2.2"
+      (sources."uri-js-4.4.0" // {
+        dependencies = [
+          sources."punycode-2.1.1"
+        ];
+      })
       sources."urix-0.1.0"
+      sources."url-0.10.3"
       sources."url-parse-1.4.7"
       sources."use-3.1.1"
       sources."uslug-1.0.4"
@@ -64987,10 +67459,14 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xml-name-validator-3.0.0"
-      sources."xml2js-0.4.23"
-      sources."xmlbuilder-11.0.1"
+      (sources."xml2js-0.4.23" // {
+        dependencies = [
+          sources."xmlbuilder-11.0.1"
+        ];
+      })
+      sources."xmlbuilder-9.0.7"
       sources."xmlchars-2.2.0"
       sources."yallist-4.0.0"
       sources."yargs-parser-7.0.0"
@@ -65008,10 +67484,10 @@ in
   js-beautify = nodeEnv.buildNodePackage {
     name = "js-beautify";
     packageName = "js-beautify";
-    version = "1.11.0";
+    version = "1.13.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.11.0.tgz";
-      sha512 = "a26B+Cx7USQGSWnz9YxgJNMmML/QG2nqIaL7VVYPCXbqiKz8PN0waSNvroMtvAK6tY7g/wPdNWGEP+JTNIBr6A==";
+      url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.13.0.tgz";
+      sha512 = "/Tbp1OVzZjbwzwJQFIlYLm9eWQ+3aYbBXLSaqb1mEJzhcQAfrqMMQYtjb6io+U6KpD0ID4F+Id3/xcjH3l/sqA==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
@@ -65029,11 +67505,8 @@ in
       sources."lru-cache-4.1.5"
       sources."minimatch-3.0.4"
       sources."mkdirp-1.0.4"
-      sources."nopt-4.0.3"
+      sources."nopt-5.0.0"
       sources."once-1.4.0"
-      sources."os-homedir-1.0.2"
-      sources."os-tmpdir-1.0.2"
-      sources."osenv-0.1.5"
       sources."path-is-absolute-1.0.1"
       sources."proto-list-1.2.4"
       sources."pseudomap-1.0.2"
@@ -65078,13 +67551,13 @@ in
   jsdoc = nodeEnv.buildNodePackage {
     name = "jsdoc";
     packageName = "jsdoc";
-    version = "3.6.4";
+    version = "3.6.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.4.tgz";
-      sha512 = "3G9d37VHv7MFdheviDCjUfQoIjdv4TC5zTTf5G9VODLtOnVS6La1eoYBDlbWfsRT3/Xo+j2MIqki2EV12BZfwA==";
+      url = "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.5.tgz";
+      sha512 = "SbY+i9ONuxSK35cgVHaI8O9senTE4CDYAmGSDJ5l3+sfe62Ff4gy96osy6OW84t4K4A8iGnMrlRrsSItSNp3RQ==";
     };
     dependencies = [
-      sources."@babel/parser-7.10.3"
+      sources."@babel/parser-7.11.5"
       sources."argparse-1.0.10"
       sources."bluebird-3.7.2"
       sources."catharsis-0.8.11"
@@ -65094,7 +67567,7 @@ in
       sources."js2xmlparser-4.0.1"
       sources."klaw-3.0.0"
       sources."linkify-it-2.2.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."markdown-it-10.0.0"
       sources."markdown-it-anchor-5.3.0"
       sources."marked-0.8.2"
@@ -65102,7 +67575,7 @@ in
       sources."mkdirp-1.0.4"
       sources."requizzle-0.2.3"
       sources."sprintf-js-1.0.3"
-      sources."strip-json-comments-3.1.0"
+      sources."strip-json-comments-3.1.1"
       sources."taffydb-2.6.2"
       sources."uc.micro-1.0.6"
       sources."underscore-1.10.2"
@@ -65121,10 +67594,10 @@ in
   jshint = nodeEnv.buildNodePackage {
     name = "jshint";
     packageName = "jshint";
-    version = "2.11.1";
+    version = "2.12.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/jshint/-/jshint-2.11.1.tgz";
-      sha512 = "WXWePB8ssAH3DlD05IoqolsY6arhbll/1+i2JkRPpihQAuiNaR/gSt8VKIcxpV5m6XChP0hCwESQUqpuQMA8Tg==";
+      url = "https://registry.npmjs.org/jshint/-/jshint-2.12.0.tgz";
+      sha512 = "TwuuaUDmra0JMkuqvqy+WGo2xGHSNjv1BA1nTIgtH2K5z1jHuAEeAgp7laaR+hLRmajRjcrM71+vByBDanCyYA==";
     };
     dependencies = [
       sources."balanced-match-1.0.0"
@@ -65151,7 +67624,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."isarray-0.0.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."minimatch-3.0.4"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
@@ -65165,7 +67638,7 @@ in
     meta = {
       description = "Static analysis tool for JavaScript";
       homepage = http://jshint.com/;
-      license = "(MIT AND JSON)";
+      license = "MIT";
     };
     production = true;
     bypassCache = true;
@@ -65174,10 +67647,10 @@ in
   json = nodeEnv.buildNodePackage {
     name = "json";
     packageName = "json";
-    version = "9.0.6";
+    version = "10.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/json/-/json-9.0.6.tgz";
-      sha1 = "7972c2a5a48a42678db2730c7c2c4ee6e4e24585";
+      url = "https://registry.npmjs.org/json/-/json-10.0.0.tgz";
+      sha512 = "iK7tAZtpoghibjdB1ncCWykeBMmke3JThUe+rnkD4qkZaglOIQ70Pw7r5UJ4lyUT+7gnw7ehmmLUHDuhqzQD+g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -65239,7 +67712,7 @@ in
       sources."inherits-2.0.4"
       sources."isarray-1.0.0"
       sources."js-yaml-3.14.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
       sources."mime-db-1.44.0"
@@ -65256,7 +67729,7 @@ in
       sources."sprintf-js-1.0.3"
       sources."string_decoder-1.1.1"
       sources."superagent-3.8.3"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -65282,7 +67755,7 @@ in
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/color-name-1.1.1"
       sources."accepts-1.3.7"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."string-width-3.1.0"
@@ -65295,7 +67768,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."basic-auth-2.0.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."body-parser-1.19.0"
@@ -65303,7 +67776,7 @@ in
       sources."bytes-3.1.0"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
@@ -65311,7 +67784,7 @@ in
       sources."caseless-0.12.0"
       sources."chalk-3.0.0"
       sources."ci-info-2.0.0"
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       (sources."cliui-6.0.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
@@ -65380,7 +67853,7 @@ in
       sources."got-9.6.0"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-4.0.0"
       sources."has-yarn-2.1.0"
       sources."http-cache-semantics-4.1.0"
@@ -65414,7 +67887,7 @@ in
       sources."keyv-3.1.0"
       sources."latest-version-5.1.0"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash-id-0.14.0"
       sources."lowdb-1.0.0"
       sources."lowercase-keys-1.0.1"
@@ -65468,7 +67941,7 @@ in
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
       sources."rc-1.2.8"
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       (sources."request-2.88.2" // {
         dependencies = [
@@ -65506,7 +67979,7 @@ in
       })
       sources."strip-ansi-5.2.0"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."term-size-2.2.0"
       sources."to-readable-stream-1.0.0"
       sources."toidentifier-1.0.0"
@@ -65518,8 +67991,8 @@ in
       sources."typedarray-to-buffer-3.1.5"
       sources."unique-string-2.0.0"
       sources."unpipe-1.0.0"
-      sources."update-notifier-4.1.0"
-      sources."uri-js-4.2.2"
+      sources."update-notifier-4.1.1"
+      sources."uri-js-4.4.0"
       sources."url-parse-lax-3.0.0"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
@@ -65537,7 +68010,7 @@ in
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-4.0.0"
       sources."y18n-4.0.0"
-      sources."yargs-15.3.1"
+      sources."yargs-15.4.1"
       sources."yargs-parser-18.1.3"
     ];
     buildInputs = globalBuildInputs;
@@ -65579,10 +68052,10 @@ in
   karma = nodeEnv.buildNodePackage {
     name = "karma";
     packageName = "karma";
-    version = "5.1.0";
+    version = "5.2.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/karma/-/karma-5.1.0.tgz";
-      sha512 = "I3aPbkuIbwuBo6wSog97P5WnnhCgUTsWTu/bEw1vZVQFbXmKO3PK+cfFhZioOgVtJAuQxoyauGNjnwXNHMCxbw==";
+      url = "https://registry.npmjs.org/karma/-/karma-5.2.1.tgz";
+      sha512 = "+/AO2fWL7kC3aWTx/lHjtKXfOqh0O+KLtTy4BLQ/b/eciHR4VTHHdPhdrn9sDBQskgDieaBZ+sAKzlldc4GW/Q==";
     };
     dependencies = [
       sources."@types/color-name-1.1.1"
@@ -65606,7 +68079,7 @@ in
       sources."bytes-3.1.0"
       sources."callsite-1.0.0"
       sources."camelcase-5.3.1"
-      sources."chokidar-3.4.0"
+      sources."chokidar-3.4.2"
       sources."cliui-6.0.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
@@ -65645,13 +68118,13 @@ in
       sources."engine.io-parser-2.2.0"
       sources."ent-2.2.0"
       sources."escape-html-1.0.3"
-      sources."eventemitter3-4.0.4"
+      sources."eventemitter3-4.0.7"
       sources."extend-3.0.2"
       sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
       sources."find-up-4.1.0"
       sources."flatted-2.0.2"
-      sources."follow-redirects-1.12.1"
+      sources."follow-redirects-1.13.0"
       sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.1.3"
@@ -65676,7 +68149,7 @@ in
       sources."isbinaryfile-4.0.6"
       sources."jsonfile-4.0.0"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       (sources."log4js-6.3.0" // {
         dependencies = [
           sources."debug-4.2.0"
@@ -65741,7 +68214,7 @@ in
           sources."ms-2.1.2"
         ];
       })
-      sources."source-map-0.6.1"
+      sources."source-map-0.7.3"
       sources."statuses-1.5.0"
       (sources."streamroller-2.2.4" // {
         dependencies = [
@@ -65765,10 +68238,10 @@ in
       sources."which-module-2.0.0"
       sources."wrap-ansi-6.2.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."y18n-4.0.0"
-      sources."yargs-15.3.1"
+      sources."yargs-15.4.1"
       sources."yargs-parser-18.1.3"
       sources."yeast-0.1.2"
     ];
@@ -65888,7 +68361,7 @@ in
       sources."abab-1.0.4"
       sources."acorn-2.7.0"
       sources."acorn-globals-1.0.9"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-3.2.1"
       sources."asn1-0.2.4"
@@ -65896,7 +68369,7 @@ in
       sources."async-1.5.2"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."boolbase-1.0.0"
@@ -65956,7 +68429,7 @@ in
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-3.0.0"
       sources."he-1.2.0"
       (sources."htmlparser2-3.8.3" // {
@@ -65985,7 +68458,7 @@ in
       sources."lcid-1.0.0"
       sources."levn-0.3.0"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."log-symbols-2.2.0"
       sources."map-age-cleaner-0.1.3"
       (sources."mem-4.3.0" // {
@@ -66078,7 +68551,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
       sources."underscore-1.9.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       (sources."utile-0.3.0" // {
         dependencies = [
           sources."async-0.9.2"
@@ -66142,9 +68615,9 @@ in
       sha512 = "vk1lfVRFm+UuEFA7wkLKeSF7Iz13W+N/vFd48aW2yuS7Kv0RbNm2/qcDPV863056LMfkRlsEe+QYOw3palj5Lg==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      sources."@babel/highlight-7.10.3"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
       (sources."@evocateur/libnpmaccess-3.1.2" // {
         dependencies = [
           sources."aproba-2.0.0"
@@ -66240,10 +68713,10 @@ in
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
       sources."@octokit/auth-token-2.4.2"
-      (sources."@octokit/endpoint-6.0.3" // {
+      (sources."@octokit/endpoint-6.0.5" // {
         dependencies = [
-          sources."is-plain-object-3.0.1"
-          sources."universal-user-agent-5.0.0"
+          sources."is-plain-object-4.1.1"
+          sources."universal-user-agent-6.0.0"
         ];
       })
       sources."@octokit/plugin-enterprise-rest-6.0.1"
@@ -66258,11 +68731,11 @@ in
           sources."@octokit/types-2.16.2"
         ];
       })
-      (sources."@octokit/request-5.4.5" // {
+      (sources."@octokit/request-5.4.7" // {
         dependencies = [
           sources."@octokit/request-error-2.0.2"
-          sources."is-plain-object-3.0.1"
-          sources."universal-user-agent-5.0.0"
+          sources."is-plain-object-4.1.1"
+          sources."universal-user-agent-6.0.0"
         ];
       })
       (sources."@octokit/request-error-1.2.1" // {
@@ -66271,18 +68744,18 @@ in
         ];
       })
       sources."@octokit/rest-16.43.2"
-      sources."@octokit/types-5.0.1"
-      sources."@types/glob-7.1.2"
+      sources."@octokit/types-5.4.1"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
       sources."@types/minimist-1.2.0"
-      sources."@types/node-14.0.14"
+      sources."@types/node-14.6.3"
       sources."@types/normalize-package-data-2.4.0"
       sources."@zkochan/cmd-shim-3.1.0"
       sources."JSONStream-1.3.5"
       sources."abbrev-1.1.1"
       sources."agent-base-4.3.0"
       sources."agentkeepalive-3.5.2"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-3.2.1"
@@ -66308,7 +68781,7 @@ in
       sources."atob-2.1.2"
       sources."atob-lite-2.0.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -66458,15 +68931,15 @@ in
       sources."detect-indent-5.0.0"
       sources."dezalgo-1.0.3"
       sources."dir-glob-2.2.2"
-      sources."dot-prop-4.2.0"
-      sources."duplexer-0.1.1"
+      sources."dot-prop-4.2.1"
+      sources."duplexer-0.1.2"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
       sources."emoji-regex-7.0.3"
-      sources."encoding-0.1.12"
+      sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
       sources."env-paths-2.2.0"
-      sources."envinfo-7.5.1"
+      sources."envinfo-7.7.3"
       sources."err-code-1.1.2"
       sources."error-ex-1.3.2"
       sources."es-abstract-1.17.6"
@@ -66503,7 +68976,11 @@ in
           sources."is-extendable-1.0.1"
         ];
       })
-      sources."external-editor-3.1.0"
+      (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"
@@ -66608,8 +69085,8 @@ in
           sources."trim-newlines-2.0.0"
         ];
       })
-      sources."git-up-4.0.1"
-      sources."git-url-parse-11.1.2"
+      sources."git-up-4.0.2"
+      sources."git-url-parse-11.1.3"
       sources."gitconfiglocal-1.0.0"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.1"
@@ -66626,7 +69103,7 @@ in
         ];
       })
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
@@ -66644,7 +69121,7 @@ in
       sources."http-signature-1.2.0"
       sources."https-proxy-agent-2.2.4"
       sources."humanize-ms-1.2.1"
-      sources."iconv-lite-0.4.24"
+      sources."iconv-lite-0.6.2"
       sources."iferr-0.1.5"
       sources."ignore-4.0.6"
       sources."ignore-walk-3.0.3"
@@ -66694,8 +69171,8 @@ in
       sources."is-obj-1.0.1"
       sources."is-plain-obj-1.1.0"
       sources."is-plain-object-2.0.4"
-      sources."is-regex-1.1.0"
-      sources."is-ssh-1.3.1"
+      sources."is-regex-1.1.1"
+      sources."is-ssh-1.3.2"
       sources."is-stream-1.1.0"
       sources."is-symbol-1.0.3"
       sources."is-text-path-1.0.1"
@@ -66710,6 +69187,7 @@ in
       sources."js-yaml-3.14.0"
       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"
@@ -66724,7 +69202,7 @@ in
         ];
       })
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash._reinterpolate-3.0.0"
       sources."lodash.clonedeep-4.5.0"
       sources."lodash.get-4.4.2"
@@ -66736,20 +69214,18 @@ in
       sources."lodash.uniq-4.5.0"
       sources."loud-rejection-1.6.0"
       sources."lru-cache-5.1.1"
-      sources."macos-release-2.3.0"
+      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."meow-7.0.1" // {
+      (sources."meow-7.1.1" // {
         dependencies = [
-          sources."arrify-2.0.1"
-          sources."camelcase-6.0.0"
           sources."find-up-4.1.0"
           sources."locate-path-5.0.0"
           sources."p-locate-4.1.0"
-          sources."parse-json-5.0.0"
+          sources."parse-json-5.1.0"
           sources."path-exists-4.0.0"
           (sources."read-pkg-5.2.0" // {
             dependencies = [
@@ -66762,11 +69238,7 @@ in
             ];
           })
           sources."type-fest-0.13.1"
-          (sources."yargs-parser-18.1.3" // {
-            dependencies = [
-              sources."camelcase-5.3.1"
-            ];
-          })
+          sources."yargs-parser-18.1.3"
         ];
       })
       sources."merge2-1.4.1"
@@ -66795,7 +69267,7 @@ in
       sources."mute-stream-0.0.7"
       sources."mz-2.7.0"
       sources."nanomatch-1.2.13"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       sources."nice-try-1.0.5"
       sources."node-fetch-2.6.0"
       sources."node-fetch-npm-2.0.4"
@@ -66869,8 +69341,8 @@ in
       sources."parallel-transform-1.2.0"
       sources."parse-github-repo-url-1.4.1"
       sources."parse-json-4.0.0"
-      sources."parse-path-4.0.1"
-      sources."parse-url-5.0.1"
+      sources."parse-path-4.0.2"
+      sources."parse-url-5.0.2"
       sources."pascalcase-0.1.1"
       sources."path-dirname-1.0.2"
       sources."path-exists-3.0.0"
@@ -66889,7 +69361,7 @@ in
       sources."promise-retry-1.1.1"
       sources."promzard-0.3.0"
       sources."proto-list-1.2.4"
-      sources."protocols-1.4.7"
+      sources."protocols-1.4.8"
       sources."protoduck-5.0.1"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
@@ -66904,7 +69376,7 @@ in
       sources."quick-lru-4.0.1"
       sources."read-1.0.7"
       sources."read-cmd-shim-1.0.5"
-      sources."read-package-json-2.1.1"
+      sources."read-package-json-2.1.2"
       sources."read-package-tree-5.3.1"
       (sources."read-pkg-3.0.0" // {
         dependencies = [
@@ -66948,7 +69420,7 @@ in
       sources."rimraf-2.7.1"
       sources."run-async-2.4.1"
       sources."run-queue-1.0.3"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.2"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
@@ -67079,7 +69551,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-fest-0.3.1"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.10.0"
+      sources."uglify-js-3.10.3"
       sources."uid-number-0.0.6"
       sources."umask-1.1.0"
       sources."union-value-1.0.1"
@@ -67098,7 +69570,7 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
@@ -67113,7 +69585,7 @@ in
       sources."which-1.3.1"
       sources."which-module-2.0.0"
       sources."wide-align-1.1.3"
-      sources."windows-release-3.3.1"
+      sources."windows-release-3.3.3"
       sources."wordwrap-1.0.0"
       (sources."wrap-ansi-5.1.0" // {
         dependencies = [
@@ -67161,72 +69633,23 @@ in
   less = nodeEnv.buildNodePackage {
     name = "less";
     packageName = "less";
-    version = "3.11.3";
+    version = "3.12.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/less/-/less-3.11.3.tgz";
-      sha512 = "VkZiTDdtNEzXA3LgjQiC3D7/ejleBPFVvq+aRI9mIj+Zhmif5TvFPM244bT4rzkvOCvJ9q4zAztok1M7Nygagw==";
+      url = "https://registry.npmjs.org/less/-/less-3.12.2.tgz";
+      sha512 = "+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==";
     };
     dependencies = [
-      sources."ajv-6.12.2"
-      sources."asap-2.0.6"
-      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.10.0"
-      sources."bcrypt-pbkdf-1.0.2"
-      sources."caseless-0.12.0"
-      sources."clone-2.1.2"
-      sources."combined-stream-1.0.8"
-      sources."core-util-is-1.0.2"
-      sources."dashdash-1.14.1"
-      sources."delayed-stream-1.0.0"
-      sources."ecc-jsbn-0.1.2"
       sources."errno-0.1.7"
-      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."getpass-0.1.7"
       sources."graceful-fs-4.2.4"
-      sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
-      sources."http-signature-1.2.0"
       sources."image-size-0.5.5"
-      sources."is-typedarray-1.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."make-dir-2.1.0"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
-      sources."oauth-sign-0.9.0"
-      sources."performance-now-2.1.0"
+      sources."native-request-1.0.7"
       sources."pify-4.0.1"
-      sources."promise-7.3.1"
       sources."prr-1.0.1"
-      sources."psl-1.8.0"
-      sources."punycode-2.1.1"
-      sources."qs-6.5.2"
-      sources."request-2.88.2"
-      sources."safe-buffer-5.2.1"
-      sources."safer-buffer-2.1.2"
       sources."semver-5.7.1"
       sources."source-map-0.6.1"
-      sources."sshpk-1.16.1"
-      sources."tough-cookie-2.5.0"
       sources."tslib-1.13.0"
-      sources."tunnel-agent-0.6.0"
-      sources."tweetnacl-0.14.5"
-      sources."uri-js-4.2.2"
-      sources."uuid-3.4.0"
-      sources."verror-1.10.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -67333,7 +69756,7 @@ in
       sources."define-property-2.0.2"
       sources."depd-2.0.0"
       sources."destroy-1.0.4"
-      sources."duplexer-0.1.1"
+      sources."duplexer-0.1.2"
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
       sources."escape-html-1.0.3"
@@ -67604,7 +70027,7 @@ in
     dependencies = [
       sources."accepts-1.3.7"
       sources."after-0.8.2"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."anymatch-1.3.2"
       sources."argparse-1.0.10"
       sources."arr-diff-2.0.0"
@@ -67621,7 +70044,7 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."backo2-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -67741,7 +70164,7 @@ in
       sources."glob-parent-2.0.0"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       (sources."has-binary2-1.0.3" // {
         dependencies = [
           sources."isarray-2.0.1"
@@ -68081,7 +70504,7 @@ in
           sources."isobject-3.0.1"
         ];
       })
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
@@ -68089,7 +70512,7 @@ in
       sources."uuid-3.4.0"
       sources."vary-1.1.2"
       sources."verror-1.10.0"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."yeast-0.1.2"
     ];
@@ -68109,126 +70532,126 @@ in
     version = "1.10.1";
     src = ../interpreters/clojurescript/lumo;
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/compat-data-7.10.3"
-      sources."@babel/core-7.10.3"
-      sources."@babel/generator-7.10.3"
-      sources."@babel/helper-annotate-as-pure-7.10.1"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.3"
-      sources."@babel/helper-compilation-targets-7.10.2"
-      sources."@babel/helper-create-class-features-plugin-7.10.3"
-      sources."@babel/helper-create-regexp-features-plugin-7.10.1"
-      sources."@babel/helper-define-map-7.10.3"
-      sources."@babel/helper-explode-assignable-expression-7.10.3"
-      sources."@babel/helper-function-name-7.10.3"
-      sources."@babel/helper-get-function-arity-7.10.3"
-      sources."@babel/helper-hoist-variables-7.10.3"
-      sources."@babel/helper-member-expression-to-functions-7.10.3"
-      sources."@babel/helper-module-imports-7.10.3"
-      sources."@babel/helper-module-transforms-7.10.1"
-      sources."@babel/helper-optimise-call-expression-7.10.3"
-      sources."@babel/helper-plugin-utils-7.10.3"
-      sources."@babel/helper-regex-7.10.1"
-      sources."@babel/helper-remap-async-to-generator-7.10.3"
-      sources."@babel/helper-replace-supers-7.10.1"
-      sources."@babel/helper-simple-access-7.10.1"
-      sources."@babel/helper-split-export-declaration-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      sources."@babel/helper-wrap-function-7.10.1"
-      sources."@babel/helpers-7.10.1"
-      (sources."@babel/highlight-7.10.3" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/compat-data-7.11.0"
+      sources."@babel/core-7.11.5"
+      sources."@babel/generator-7.11.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.10.4"
+      sources."@babel/helper-create-class-features-plugin-7.10.5"
+      sources."@babel/helper-create-regexp-features-plugin-7.10.4"
+      sources."@babel/helper-define-map-7.10.5"
+      sources."@babel/helper-explode-assignable-expression-7.11.4"
+      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.11.0"
+      sources."@babel/helper-module-imports-7.10.4"
+      sources."@babel/helper-module-transforms-7.11.0"
+      sources."@babel/helper-optimise-call-expression-7.10.4"
+      sources."@babel/helper-plugin-utils-7.10.4"
+      sources."@babel/helper-regex-7.10.5"
+      sources."@babel/helper-remap-async-to-generator-7.11.4"
+      sources."@babel/helper-replace-supers-7.10.4"
+      sources."@babel/helper-simple-access-7.10.4"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.11.0"
+      sources."@babel/helper-split-export-declaration-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helper-wrap-function-7.10.4"
+      sources."@babel/helpers-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.10.3"
+      sources."@babel/parser-7.11.5"
       sources."@babel/plugin-external-helpers-7.8.3"
-      sources."@babel/plugin-proposal-async-generator-functions-7.10.3"
-      sources."@babel/plugin-proposal-class-properties-7.10.1"
-      sources."@babel/plugin-proposal-dynamic-import-7.10.1"
-      sources."@babel/plugin-proposal-json-strings-7.10.1"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.1"
-      sources."@babel/plugin-proposal-numeric-separator-7.10.1"
-      sources."@babel/plugin-proposal-object-rest-spread-7.10.3"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.10.1"
-      sources."@babel/plugin-proposal-optional-chaining-7.10.3"
-      sources."@babel/plugin-proposal-private-methods-7.10.1"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.10.1"
+      sources."@babel/plugin-proposal-async-generator-functions-7.10.5"
+      sources."@babel/plugin-proposal-class-properties-7.10.4"
+      sources."@babel/plugin-proposal-dynamic-import-7.10.4"
+      sources."@babel/plugin-proposal-export-namespace-from-7.10.4"
+      sources."@babel/plugin-proposal-json-strings-7.10.4"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.11.0"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.4"
+      sources."@babel/plugin-proposal-numeric-separator-7.10.4"
+      sources."@babel/plugin-proposal-object-rest-spread-7.11.0"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.10.4"
+      sources."@babel/plugin-proposal-optional-chaining-7.11.0"
+      sources."@babel/plugin-proposal-private-methods-7.10.4"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.10.4"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-bigint-7.8.3"
-      sources."@babel/plugin-syntax-class-properties-7.10.1"
+      sources."@babel/plugin-syntax-class-properties-7.10.4"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
-      sources."@babel/plugin-syntax-import-meta-7.10.1"
+      sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
+      sources."@babel/plugin-syntax-import-meta-7.10.4"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
-      sources."@babel/plugin-syntax-logical-assignment-operators-7.10.1"
+      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.1"
+      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.10.1"
-      sources."@babel/plugin-transform-arrow-functions-7.10.1"
-      sources."@babel/plugin-transform-async-to-generator-7.10.1"
-      sources."@babel/plugin-transform-block-scoped-functions-7.10.1"
-      sources."@babel/plugin-transform-block-scoping-7.10.1"
-      sources."@babel/plugin-transform-classes-7.10.3"
-      sources."@babel/plugin-transform-computed-properties-7.10.3"
-      sources."@babel/plugin-transform-destructuring-7.10.1"
-      sources."@babel/plugin-transform-dotall-regex-7.10.1"
-      sources."@babel/plugin-transform-duplicate-keys-7.10.1"
-      sources."@babel/plugin-transform-exponentiation-operator-7.10.1"
-      sources."@babel/plugin-transform-for-of-7.10.1"
-      sources."@babel/plugin-transform-function-name-7.10.1"
-      sources."@babel/plugin-transform-literals-7.10.1"
-      sources."@babel/plugin-transform-member-expression-literals-7.10.1"
-      sources."@babel/plugin-transform-modules-amd-7.10.1"
-      sources."@babel/plugin-transform-modules-commonjs-7.10.1"
-      sources."@babel/plugin-transform-modules-systemjs-7.10.3"
-      sources."@babel/plugin-transform-modules-umd-7.10.1"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.3"
-      sources."@babel/plugin-transform-new-target-7.10.1"
-      sources."@babel/plugin-transform-object-super-7.10.1"
-      sources."@babel/plugin-transform-parameters-7.10.1"
-      sources."@babel/plugin-transform-property-literals-7.10.1"
-      sources."@babel/plugin-transform-regenerator-7.10.3"
-      sources."@babel/plugin-transform-reserved-words-7.10.1"
-      sources."@babel/plugin-transform-runtime-7.10.3"
-      sources."@babel/plugin-transform-shorthand-properties-7.10.1"
-      sources."@babel/plugin-transform-spread-7.10.1"
-      sources."@babel/plugin-transform-sticky-regex-7.10.1"
-      sources."@babel/plugin-transform-template-literals-7.10.3"
-      sources."@babel/plugin-transform-typeof-symbol-7.10.1"
-      sources."@babel/plugin-transform-unicode-escapes-7.10.1"
-      sources."@babel/plugin-transform-unicode-regex-7.10.1"
-      sources."@babel/preset-env-7.10.3"
-      sources."@babel/preset-modules-0.1.3"
+      sources."@babel/plugin-syntax-top-level-await-7.10.4"
+      sources."@babel/plugin-transform-arrow-functions-7.10.4"
+      sources."@babel/plugin-transform-async-to-generator-7.10.4"
+      sources."@babel/plugin-transform-block-scoped-functions-7.10.4"
+      sources."@babel/plugin-transform-block-scoping-7.11.1"
+      sources."@babel/plugin-transform-classes-7.10.4"
+      sources."@babel/plugin-transform-computed-properties-7.10.4"
+      sources."@babel/plugin-transform-destructuring-7.10.4"
+      sources."@babel/plugin-transform-dotall-regex-7.10.4"
+      sources."@babel/plugin-transform-duplicate-keys-7.10.4"
+      sources."@babel/plugin-transform-exponentiation-operator-7.10.4"
+      sources."@babel/plugin-transform-for-of-7.10.4"
+      sources."@babel/plugin-transform-function-name-7.10.4"
+      sources."@babel/plugin-transform-literals-7.10.4"
+      sources."@babel/plugin-transform-member-expression-literals-7.10.4"
+      sources."@babel/plugin-transform-modules-amd-7.10.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.10.4"
+      sources."@babel/plugin-transform-modules-systemjs-7.10.5"
+      sources."@babel/plugin-transform-modules-umd-7.10.4"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.4"
+      sources."@babel/plugin-transform-new-target-7.10.4"
+      sources."@babel/plugin-transform-object-super-7.10.4"
+      sources."@babel/plugin-transform-parameters-7.10.5"
+      sources."@babel/plugin-transform-property-literals-7.10.4"
+      sources."@babel/plugin-transform-regenerator-7.10.4"
+      sources."@babel/plugin-transform-reserved-words-7.10.4"
+      sources."@babel/plugin-transform-runtime-7.11.5"
+      sources."@babel/plugin-transform-shorthand-properties-7.10.4"
+      sources."@babel/plugin-transform-spread-7.11.0"
+      sources."@babel/plugin-transform-sticky-regex-7.10.4"
+      sources."@babel/plugin-transform-template-literals-7.10.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.10.4"
+      sources."@babel/plugin-transform-unicode-escapes-7.10.4"
+      sources."@babel/plugin-transform-unicode-regex-7.10.4"
+      sources."@babel/preset-env-7.11.5"
+      sources."@babel/preset-modules-0.1.4"
       sources."@babel/preset-stage-2-7.8.3"
-      sources."@babel/runtime-7.10.3"
-      sources."@babel/template-7.10.3"
-      sources."@babel/traverse-7.10.3"
-      sources."@babel/types-7.10.3"
+      sources."@babel/runtime-7.11.2"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.5"
+      sources."@babel/types-7.11.5"
       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."@jest/transform-25.5.1" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
+      sources."@jest/transform-25.5.1"
       sources."@jest/types-25.5.0"
       sources."@types/babel__core-7.1.9"
       sources."@types/babel__generator-7.6.1"
       sources."@types/babel__template-7.0.2"
-      sources."@types/babel__traverse-7.0.12"
+      sources."@types/babel__traverse-7.0.13"
       sources."@types/color-name-1.1.1"
       sources."@types/estree-0.0.45"
       sources."@types/graceful-fs-4.1.3"
       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.5"
-      sources."@types/node-14.0.14"
+      sources."@types/json-schema-7.0.6"
+      sources."@types/node-14.6.3"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/resolve-0.0.8"
       sources."@types/yargs-15.0.5"
@@ -68255,12 +70678,12 @@ in
       sources."@xtuc/long-4.2.2"
       sources."JSONStream-1.3.5"
       sources."ace.improved-0.2.1"
-      sources."acorn-7.3.1"
+      sources."acorn-7.4.0"
       sources."acorn-node-1.8.2"
       sources."acorn-walk-7.2.0"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ajv-errors-1.0.1"
-      sources."ajv-keywords-3.5.0"
+      sources."ajv-keywords-3.5.2"
       sources."amdefine-1.0.1"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
@@ -68272,7 +70695,7 @@ in
       sources."arr-union-3.1.0"
       sources."array-unique-0.3.2"
       sources."asn1-0.2.4"
-      (sources."asn1.js-4.10.1" // {
+      (sources."asn1.js-5.4.1" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -68291,7 +70714,7 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."babel-core-7.0.0-bridge.0"
       sources."babel-eslint-10.0.3"
       sources."babel-helper-evaluate-path-0.5.0"
@@ -68353,14 +70776,14 @@ in
       sources."big.js-5.2.2"
       sources."binary-extensions-2.1.0"
       sources."bindings-1.5.0"
-      (sources."bl-4.0.2" // {
+      (sources."bl-4.0.3" // {
         dependencies = [
           sources."buffer-5.6.0"
           sources."readable-stream-3.6.0"
         ];
       })
       sources."bluebird-3.7.2"
-      sources."bn.js-5.1.2"
+      sources."bn.js-5.1.3"
       sources."brace-expansion-1.1.11"
       (sources."braces-2.3.2" // {
         dependencies = [
@@ -68369,12 +70792,8 @@ in
       })
       sources."brorand-1.1.0"
       sources."browser-pack-6.1.0"
-      (sources."browser-resolve-1.11.3" // {
-        dependencies = [
-          sources."resolve-1.1.7"
-        ];
-      })
-      (sources."browserify-16.5.1" // {
+      sources."browser-resolve-2.0.0"
+      (sources."browserify-16.5.2" // {
         dependencies = [
           sources."punycode-1.4.1"
         ];
@@ -68387,14 +70806,14 @@ in
           sources."bn.js-4.11.9"
         ];
       })
-      (sources."browserify-sign-4.2.0" // {
+      (sources."browserify-sign-4.2.1" // {
         dependencies = [
           sources."readable-stream-3.6.0"
           sources."safe-buffer-5.2.1"
         ];
       })
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.12.2"
+      sources."browserslist-4.14.0"
       sources."bser-2.1.1"
       sources."buffer-5.2.1"
       sources."buffer-from-1.1.1"
@@ -68409,7 +70828,7 @@ in
       sources."cache-base-1.0.1"
       sources."cached-path-relative-1.0.2"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001089"
+      sources."caniuse-lite-1.0.30001123"
       sources."capture-exit-2.0.0"
       sources."caseless-0.12.0"
       (sources."chalk-3.0.0" // {
@@ -68418,10 +70837,10 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
-      (sources."chokidar-3.4.0" // {
+      (sources."chokidar-3.4.2" // {
         dependencies = [
           sources."braces-3.0.2"
           sources."fill-range-7.0.1"
@@ -68462,6 +70881,7 @@ in
       (sources."combine-source-map-0.8.0" // {
         dependencies = [
           sources."convert-source-map-1.1.3"
+          sources."source-map-0.5.7"
         ];
       })
       sources."combined-stream-1.0.8"
@@ -68486,7 +70906,7 @@ in
         ];
       })
       sources."core-util-is-1.0.2"
-      (sources."create-ecdh-4.0.3" // {
+      (sources."create-ecdh-4.0.4" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -68531,7 +70951,7 @@ in
       sources."duplexer2-0.1.4"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-to-chromium-1.3.483"
+      sources."electron-to-chromium-1.3.560"
       (sources."elliptic-6.5.3" // {
         dependencies = [
           sources."bn.js-4.11.9"
@@ -68540,19 +70960,23 @@ in
       sources."emoji-regex-7.0.3"
       sources."emojis-list-3.0.0"
       sources."end-of-stream-1.4.4"
-      (sources."enhanced-resolve-4.2.0" // {
+      (sources."enhanced-resolve-4.3.0" // {
         dependencies = [
           sources."memory-fs-0.5.0"
         ];
       })
       sources."errno-0.1.7"
       sources."error-ex-1.3.2"
-      sources."escalade-3.0.1"
+      sources."escalade-3.0.2"
       sources."escape-string-regexp-1.0.5"
       sources."eslint-scope-4.0.3"
       sources."eslint-visitor-keys-1.3.0"
       sources."esprima-4.0.1"
-      sources."esrecurse-4.2.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
       sources."estraverse-4.3.0"
       sources."estree-walker-0.6.1"
       sources."esutils-2.0.3"
@@ -68658,7 +71082,7 @@ in
         ];
       })
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."has-symbols-1.0.1"
@@ -68689,7 +71113,11 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      sources."inline-source-map-0.6.2"
+      (sources."inline-source-map-0.6.2" // {
+        dependencies = [
+          sources."source-map-0.5.7"
+        ];
+      })
       sources."insert-module-globals-7.2.0"
       sources."interpret-1.4.0"
       sources."invariant-2.2.4"
@@ -68735,7 +71163,7 @@ in
       (sources."jest-worker-25.5.0" // {
         dependencies = [
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."js-tokens-4.0.0"
@@ -68743,6 +71171,7 @@ in
       sources."jsbn-0.1.1"
       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-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-0.0.1"
@@ -68764,7 +71193,7 @@ in
         ];
       })
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.memoize-3.0.4"
       sources."loose-envify-1.4.0"
       sources."lru-cache-5.1.1"
@@ -68807,7 +71236,7 @@ in
       })
       sources."mkdirp-1.0.4"
       sources."mkdirp-classic-0.5.3"
-      sources."module-deps-6.2.2"
+      sources."module-deps-6.2.3"
       (sources."move-concurrently-1.0.1" // {
         dependencies = [
           sources."mkdirp-0.5.5"
@@ -68817,14 +71246,14 @@ in
       sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
       sources."ncp-2.0.0"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       sources."nice-try-1.0.5"
       sources."node-fetch-2.6.0"
       sources."node-int64-0.4.0"
       (sources."node-libs-browser-2.2.1" // {
         dependencies = [
           sources."buffer-4.9.2"
-          sources."events-3.1.0"
+          sources."events-3.2.0"
           sources."inherits-2.0.3"
           sources."punycode-1.4.1"
           sources."stream-http-2.8.3"
@@ -68834,7 +71263,7 @@ in
         ];
       })
       sources."node-modules-regexp-1.0.0"
-      sources."node-releases-1.1.58"
+      sources."node-releases-1.1.60"
       sources."normalize-package-data-2.5.0"
       sources."normalize-path-3.0.0"
       sources."npm-run-path-2.0.2"
@@ -68867,8 +71296,8 @@ in
       sources."parallel-transform-1.2.0"
       sources."paredit.js-0.3.6"
       sources."parents-1.0.1"
-      sources."parse-asn1-5.1.5"
-      sources."parse-json-5.0.0"
+      sources."parse-asn1-5.1.6"
+      sources."parse-json-5.1.0"
       sources."parse-passwd-1.0.0"
       sources."pascalcase-0.1.1"
       sources."path-browserify-0.0.1"
@@ -68897,7 +71326,6 @@ in
       sources."posix-character-classes-0.1.1"
       sources."posix-getopt-git://github.com/anmonteiro/node-getopt#master"
       sources."prettier-1.19.1"
-      sources."private-0.1.8"
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
@@ -68932,8 +71360,8 @@ in
       sources."realpath-native-2.0.0"
       sources."regenerate-1.4.1"
       sources."regenerate-unicode-properties-8.2.0"
-      sources."regenerator-runtime-0.13.5"
-      sources."regenerator-transform-0.14.4"
+      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-transform-0.14.5"
       sources."regex-not-1.0.2"
       sources."regexpu-core-4.7.0"
       sources."regjsgen-0.5.2"
@@ -68985,9 +71413,9 @@ in
           sources."normalize-path-2.1.1"
         ];
       })
-      sources."schema-utils-2.7.0"
+      sources."schema-utils-2.7.1"
       sources."semver-5.7.1"
-      sources."serialize-javascript-3.1.0"
+      sources."serialize-javascript-4.0.0"
       sources."set-blocking-2.0.0"
       (sources."set-value-2.0.1" // {
         dependencies = [
@@ -69002,7 +71430,7 @@ in
       sources."shebang-regex-1.0.0"
       sources."shell-quote-1.7.2"
       sources."signal-exit-3.0.3"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."slash-3.0.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
@@ -69022,6 +71450,7 @@ in
           sources."is-descriptor-0.1.6"
           sources."kind-of-5.1.0"
           sources."ms-2.0.0"
+          sources."source-map-0.5.7"
         ];
       })
       (sources."snapdragon-node-2.1.1" // {
@@ -69035,13 +71464,9 @@ in
         ];
       })
       sources."source-list-map-0.1.8"
-      sources."source-map-0.5.7"
+      sources."source-map-0.6.1"
       sources."source-map-resolve-0.5.3"
-      (sources."source-map-support-0.5.19" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
+      sources."source-map-support-0.5.19"
       sources."source-map-url-0.4.0"
       sources."sourcemap-codec-1.4.8"
       sources."spdx-correct-3.1.1"
@@ -69091,20 +71516,15 @@ in
       sources."supports-color-5.5.0"
       sources."syntax-error-1.4.0"
       sources."tapable-1.1.3"
-      (sources."tar-stream-2.1.2" // {
+      (sources."tar-stream-2.1.3" // {
         dependencies = [
           sources."readable-stream-3.6.0"
         ];
       })
-      (sources."terser-4.8.0" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
-      (sources."terser-webpack-plugin-1.4.4" // {
+      sources."terser-4.8.0"
+      (sources."terser-webpack-plugin-1.4.5" // {
         dependencies = [
           sources."schema-utils-1.0.0"
-          sources."source-map-0.6.1"
         ];
       })
       sources."test-exclude-6.0.0"
@@ -69149,7 +71569,7 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       (sources."url-0.11.0" // {
         dependencies = [
@@ -69170,7 +71590,7 @@ in
       sources."vinyl-2.2.0"
       sources."vm-browserify-1.1.2"
       sources."walker-1.0.7"
-      sources."watchpack-1.7.2"
+      sources."watchpack-1.7.4"
       (sources."watchpack-chokidar2-2.0.0" // {
         dependencies = [
           sources."anymatch-2.0.0"
@@ -69185,7 +71605,7 @@ in
           sources."readdirp-2.2.1"
         ];
       })
-      (sources."webpack-4.43.0" // {
+      (sources."webpack-4.44.1" // {
         dependencies = [
           sources."acorn-6.4.1"
           sources."micromatch-3.1.10"
@@ -69211,7 +71631,6 @@ in
       (sources."webpack-sources-1.4.3" // {
         dependencies = [
           sources."source-list-map-2.0.1"
-          sources."source-map-0.6.1"
         ];
       })
       sources."which-2.0.2"
@@ -69290,14 +71709,14 @@ in
     };
     dependencies = [
       sources."@types/color-name-1.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ansi-styles-4.2.1"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."async-3.2.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."caseless-0.12.0"
       sources."chalk-4.1.0"
@@ -69317,7 +71736,7 @@ in
       sources."form-data-2.3.3"
       sources."getpass-0.1.7"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-4.0.0"
       sources."http-signature-1.2.0"
       sources."is-absolute-url-3.0.3"
@@ -69331,7 +71750,7 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsprim-1.4.1"
       sources."link-check-4.5.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."markdown-link-extractor-1.2.3"
       sources."marked-0.8.2"
       sources."mime-db-1.44.0"
@@ -69347,11 +71766,11 @@ in
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sshpk-1.16.1"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
     ];
@@ -69365,17 +71784,308 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  mastodon-bot = nodeEnv.buildNodePackage {
+    name = "mastodon-bot";
+    packageName = "mastodon-bot";
+    version = "1.0.4";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/mastodon-bot/-/mastodon-bot-1.0.4.tgz";
+      sha512 = "gErqy0H3MtARqamwEvhTYfefesjgvDMohmrfF4PrOhh9iFa/LxKRoDJtpCEGWgcMnb+C1GlFRBzNkDJtwgUmyA==";
+    };
+    dependencies = [
+      sources."acorn-5.7.4"
+      (sources."acorn-jsx-3.0.1" // {
+        dependencies = [
+          sources."acorn-3.3.0"
+        ];
+      })
+      sources."ajv-4.11.8"
+      sources."ajv-keywords-1.5.1"
+      sources."ansi-escapes-1.4.0"
+      sources."ansi-gray-0.1.1"
+      sources."ansi-regex-2.1.1"
+      sources."ansi-styles-2.2.1"
+      sources."ansi-wrap-0.1.0"
+      sources."argparse-1.0.10"
+      sources."array-differ-1.0.0"
+      sources."array-uniq-1.0.3"
+      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.10.1"
+      sources."babel-code-frame-6.26.0"
+      sources."balanced-match-1.0.0"
+      sources."bcrypt-pbkdf-1.0.2"
+      sources."beeper-1.1.1"
+      sources."bindings-1.2.1"
+      sources."brace-expansion-1.1.11"
+      sources."buffer-from-1.1.1"
+      sources."bufferstreams-1.1.3"
+      sources."caller-path-0.1.0"
+      sources."callsites-0.2.0"
+      sources."caseless-0.12.0"
+      sources."chalk-1.1.3"
+      sources."circular-json-0.3.3"
+      sources."cli-cursor-1.0.2"
+      sources."cli-width-2.2.1"
+      sources."clone-1.0.4"
+      sources."clone-stats-0.0.1"
+      sources."co-4.6.0"
+      sources."code-point-at-1.1.0"
+      sources."color-support-1.1.3"
+      sources."combined-stream-1.0.8"
+      sources."concat-map-0.0.1"
+      sources."concat-stream-1.6.2"
+      sources."core-util-is-1.0.2"
+      sources."d-1.0.1"
+      sources."dashdash-1.14.1"
+      sources."dateformat-2.2.0"
+      sources."deasync-0.1.15"
+      sources."debug-2.6.9"
+      sources."deep-extend-0.5.1"
+      sources."deep-is-0.1.3"
+      sources."delayed-stream-1.0.0"
+      sources."doctrine-2.1.0"
+      (sources."duplexer2-0.0.2" // {
+        dependencies = [
+          sources."isarray-0.0.1"
+          sources."readable-stream-1.1.14"
+          sources."string_decoder-0.10.31"
+        ];
+      })
+      sources."ecc-jsbn-0.1.2"
+      sources."entities-1.1.2"
+      sources."es5-ext-0.10.53"
+      sources."es6-iterator-2.0.3"
+      sources."es6-map-0.1.5"
+      (sources."es6-set-0.1.5" // {
+        dependencies = [
+          sources."es6-symbol-3.1.1"
+        ];
+      })
+      sources."es6-symbol-3.1.3"
+      sources."es6-weak-map-2.0.3"
+      sources."escape-string-regexp-1.0.5"
+      sources."escope-3.6.0"
+      sources."eslint-3.19.0"
+      sources."espree-3.5.4"
+      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."event-emitter-0.3.5"
+      sources."exit-hook-1.1.1"
+      (sources."ext-1.4.0" // {
+        dependencies = [
+          sources."type-2.1.0"
+        ];
+      })
+      sources."extend-3.0.2"
+      sources."extsprintf-1.3.0"
+      sources."fancy-log-1.3.3"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-levenshtein-2.0.6"
+      sources."figures-1.7.0"
+      sources."file-entry-cache-2.0.0"
+      sources."flat-cache-1.3.4"
+      sources."forever-agent-0.6.1"
+      sources."form-data-2.3.3"
+      sources."fs.realpath-1.0.0"
+      sources."generate-function-2.3.1"
+      sources."generate-object-property-1.2.0"
+      sources."getpass-0.1.7"
+      sources."glob-7.1.6"
+      sources."globals-9.18.0"
+      sources."glogg-1.0.2"
+      sources."graceful-fs-4.2.4"
+      sources."gulp-eslint-3.0.1"
+      (sources."gulp-util-3.0.8" // {
+        dependencies = [
+          sources."object-assign-3.0.0"
+        ];
+      })
+      sources."gulplog-1.0.0"
+      sources."har-schema-2.0.0"
+      (sources."har-validator-5.1.5" // {
+        dependencies = [
+          sources."ajv-6.12.4"
+        ];
+      })
+      sources."has-ansi-2.0.0"
+      sources."has-gulplog-0.1.0"
+      sources."http-signature-1.2.0"
+      sources."ignore-3.3.10"
+      sources."imurmurhash-0.1.4"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."inquirer-0.12.0"
+      sources."interpret-1.4.0"
+      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-my-ip-valid-1.0.0"
+      sources."is-my-json-valid-2.20.5"
+      sources."is-property-1.0.2"
+      sources."is-resolvable-1.1.0"
+      sources."is-typedarray-1.0.0"
+      sources."isarray-1.0.0"
+      sources."isstream-0.1.2"
+      sources."js-tokens-3.0.2"
+      sources."js-yaml-3.14.0"
+      sources."jsbn-0.1.1"
+      sources."json-schema-0.2.3"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stable-stringify-1.0.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."jsonify-0.0.0"
+      sources."jsonpointer-4.1.0"
+      sources."jsprim-1.4.1"
+      sources."levn-0.3.0"
+      sources."lodash-4.17.20"
+      sources."lodash._basecopy-3.0.1"
+      sources."lodash._basetostring-3.0.1"
+      sources."lodash._basevalues-3.0.0"
+      sources."lodash._getnative-3.9.1"
+      sources."lodash._isiterateecall-3.0.9"
+      sources."lodash._reescape-3.0.0"
+      sources."lodash._reevaluate-3.0.0"
+      sources."lodash._reinterpolate-3.0.0"
+      sources."lodash._root-3.0.1"
+      sources."lodash.escape-3.2.0"
+      sources."lodash.isarguments-3.1.0"
+      sources."lodash.isarray-3.0.4"
+      sources."lodash.keys-3.1.2"
+      sources."lodash.restparam-3.6.1"
+      sources."lodash.template-3.6.2"
+      sources."lodash.templatesettings-3.1.1"
+      sources."mastodon-api-1.3.0"
+      sources."mime-1.6.0"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."mkdirp-0.5.5"
+      sources."ms-2.0.0"
+      sources."multipipe-0.1.2"
+      sources."mute-stream-0.0.5"
+      sources."natural-compare-1.4.0"
+      sources."next-tick-1.0.0"
+      sources."node-addon-api-1.7.2"
+      sources."number-is-nan-1.0.1"
+      sources."oauth-0.9.15"
+      sources."oauth-sign-0.9.0"
+      sources."object-assign-4.1.1"
+      sources."once-1.4.0"
+      sources."onetime-1.1.0"
+      sources."optionator-0.8.3"
+      sources."os-homedir-1.0.2"
+      sources."parse-node-version-1.0.1"
+      sources."path-is-absolute-1.0.1"
+      sources."path-is-inside-1.0.2"
+      sources."path-parse-1.0.6"
+      sources."performance-now-2.1.0"
+      sources."pluralize-1.2.1"
+      sources."prelude-ls-1.1.2"
+      sources."process-nextick-args-2.0.1"
+      sources."progress-1.1.8"
+      sources."psl-1.8.0"
+      sources."punycode-2.1.1"
+      sources."qs-6.5.2"
+      sources."readable-stream-2.3.7"
+      sources."readline-1.3.0"
+      sources."readline2-1.0.1"
+      sources."rechoir-0.6.2"
+      sources."replace-ext-0.0.1"
+      sources."request-2.88.0"
+      sources."require-uncached-1.0.3"
+      sources."resolve-1.17.0"
+      sources."resolve-from-1.0.1"
+      sources."restore-cursor-1.0.1"
+      sources."rimraf-2.6.3"
+      sources."rss-parser-3.7.1"
+      sources."run-async-0.1.0"
+      sources."rx-lite-3.1.2"
+      sources."safe-buffer-5.1.2"
+      sources."safer-buffer-2.1.2"
+      sources."sax-1.2.4"
+      sources."shelljs-0.7.8"
+      sources."slice-ansi-0.0.4"
+      sources."sparkles-1.0.1"
+      sources."sprintf-js-1.0.3"
+      sources."sshpk-1.16.1"
+      sources."string-width-1.0.2"
+      sources."string_decoder-1.1.1"
+      sources."strip-ansi-3.0.1"
+      sources."strip-bom-3.0.0"
+      sources."strip-json-comments-2.0.1"
+      sources."supports-color-2.0.0"
+      (sources."table-3.8.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."text-table-0.2.0"
+      sources."through-2.3.8"
+      sources."through2-2.0.5"
+      sources."time-stamp-1.1.0"
+      (sources."tough-cookie-2.4.3" // {
+        dependencies = [
+          sources."punycode-1.4.1"
+        ];
+      })
+      sources."tumblr-0.4.1"
+      sources."tunnel-agent-0.6.0"
+      sources."tweetnacl-0.14.5"
+      sources."twitter-1.7.1"
+      sources."type-1.2.0"
+      sources."type-check-0.3.2"
+      sources."typedarray-0.0.6"
+      sources."uri-js-4.4.0"
+      sources."user-home-2.0.0"
+      sources."util-deprecate-1.0.2"
+      sources."uuid-3.4.0"
+      sources."verror-1.10.0"
+      sources."vinyl-0.5.3"
+      sources."word-wrap-1.2.3"
+      sources."wrappy-1.0.2"
+      sources."write-0.2.1"
+      sources."xml2js-0.4.23"
+      sources."xmlbuilder-11.0.1"
+      sources."xtend-4.0.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Bot to publish twitter, tumblr or rss posts to an mastodon account.";
+      homepage = https://github.com/yogthos/mastodon-bot;
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   mathjax = nodeEnv.buildNodePackage {
     name = "mathjax";
     packageName = "mathjax";
-    version = "3.0.5";
+    version = "3.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/mathjax/-/mathjax-3.0.5.tgz";
-      sha512 = "9M7VulhltkD8sIebWutK/VfAD+m+6BIFqfpjDh9Pz/etoKUtjO6UMnOhUcDmNl6iApE8C9xrUmaMyNZkZAlrMw==";
+      url = "https://registry.npmjs.org/mathjax/-/mathjax-3.1.0.tgz";
+      sha512 = "W71QY6DBDAhKhsIRbqzB38VV6Mk1IVAx23IjNc00oAPa4jyoeDQOwMIBPnG5ATqOAYevrBrwaNbycERGoYBBhA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
-      description = "Beautiful math in all browsers. MathJax is an open-source JavaScript display engine for LaTeX, MathML, and AsciiMath notation that works in all browsers. This package includes the packaged components (install mathjax-full to get the source code).";
+      description = "Beautiful and accessible math in all browsers. MathJax is an open-source JavaScript display engine for LaTeX, MathML, and AsciiMath notation that works in all browsers. This package includes the packaged components (install mathjax-full to get the source ";
       homepage = "https://github.com/mathjax/MathJax#readme";
       license = "Apache-2.0";
     };
@@ -69420,92 +72130,920 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  meguca = nodeEnv.buildNodePackage {
-    name = "meguca";
-    packageName = "meguca";
-    version = "1.1.8";
+  mirakurun = nodeEnv.buildNodePackage {
+    name = "mirakurun";
+    packageName = "mirakurun";
+    version = "3.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/meguca/-/meguca-1.1.8.tgz";
-      sha512 = "BrbjYMq6FeZYMKx9mw7aHGUtLCyGPX4kSoCqZiRBFw5ESTgJcmmr+DbLCC29k8hRpBVRqdq3OapSEbAGXZ6z/g==";
+      url = "https://registry.npmjs.org/mirakurun/-/mirakurun-3.3.1.tgz";
+      sha512 = "uCsn3t7bV3jmy8mcgl19wowBq69Xz/Z/WUkazOC9PXvzzb9j5wvfr+qrwB5GtHkLBFIaBVI59HIX+JJ637jVmA==";
     };
     dependencies = [
-      (sources."@gulp-sourcemaps/identity-map-1.0.2" // {
+      sources."@fluentui/date-time-utilities-7.7.0"
+      sources."@fluentui/keyboard-key-0.2.11"
+      sources."@fluentui/react-7.134.1"
+      sources."@fluentui/react-focus-7.15.0"
+      sources."@fluentui/react-icons-0.3.0"
+      sources."@fluentui/react-window-provider-0.3.0"
+      sources."@fluentui/theme-0.2.0"
+      sources."@microsoft/load-themed-styles-1.10.82"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@uifabric/foundation-7.9.0"
+      sources."@uifabric/icons-7.5.0"
+      sources."@uifabric/merge-styles-7.18.0"
+      sources."@uifabric/react-hooks-7.11.0"
+      sources."@uifabric/set-version-7.0.22"
+      sources."@uifabric/styling-7.16.0"
+      sources."@uifabric/utilities-7.31.0"
+      sources."accepts-1.3.7"
+      sources."ajv-6.12.4"
+      sources."ansi-escapes-1.4.0"
+      sources."ansi-regex-2.1.1"
+      sources."ansi-styles-2.2.1"
+      sources."argparse-1.0.10"
+      sources."aribts-1.3.5"
+      sources."array-flatten-1.1.1"
+      sources."babel-polyfill-6.23.0"
+      (sources."babel-runtime-6.26.0" // {
         dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."source-map-0.6.1"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
+          sources."regenerator-runtime-0.11.1"
+        ];
+      })
+      sources."balanced-match-1.0.0"
+      sources."base64-js-1.3.1"
+      sources."basic-auth-2.0.1"
+      sources."body-parser-1.19.0"
+      sources."brace-expansion-1.1.11"
+      sources."buffer-5.6.0"
+      sources."buffer-from-1.1.1"
+      sources."builtin-status-codes-3.0.0"
+      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."chalk-1.1.3"
+      sources."chardet-0.4.2"
+      sources."cli-cursor-2.1.0"
+      sources."cli-width-2.2.1"
+      sources."clone-response-1.0.2"
+      sources."colors-1.4.0"
+      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."crc-3.8.0"
+      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."depd-1.1.2"
+      sources."destroy-1.0.4"
+      sources."difunc-0.0.4"
+      sources."dotenv-8.2.0"
+      sources."duplexer3-0.1.4"
+      sources."ee-first-1.1.1"
+      sources."encodeurl-1.0.2"
+      (sources."encoding-0.1.13" // {
+        dependencies = [
+          sources."iconv-lite-0.6.2"
+        ];
+      })
+      sources."end-of-stream-1.4.4"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-1.0.5"
+      sources."esprima-4.0.1"
+      sources."etag-1.8.1"
+      sources."eventemitter3-4.0.7"
+      sources."express-4.17.1"
+      sources."express-normalize-query-params-middleware-0.5.1"
+      sources."express-openapi-6.0.0"
+      sources."external-editor-2.2.0"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."figures-2.0.0"
+      sources."finalhandler-1.1.2"
+      sources."forwarded-0.1.2"
+      sources."fresh-0.5.2"
+      sources."fs-routes-2.0.0"
+      sources."fs.realpath-1.0.0"
+      sources."get-stream-4.1.0"
+      sources."glob-7.1.6"
+      sources."got-9.6.0"
+      sources."has-ansi-2.0.0"
+      sources."http-cache-semantics-4.1.0"
+      sources."http-errors-1.7.2"
+      sources."iconv-lite-0.4.24"
+      sources."ieee754-1.1.13"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.3"
+      sources."ini-1.3.5"
+      sources."inquirer-3.0.6"
+      sources."ip-1.1.5"
+      sources."ipaddr.js-1.9.1"
+      sources."is-dir-1.0.0"
+      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-stream-1.1.0"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.0"
+      sources."json-buffer-3.0.0"
+      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.merge-4.6.2"
+      sources."loose-envify-1.4.0"
+      sources."lowercase-keys-1.0.1"
+      sources."media-typer-0.3.0"
+      sources."merge-descriptors-1.0.1"
+      sources."methods-1.1.2"
+      sources."mime-1.6.0"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
+      sources."mimic-fn-1.2.0"
+      sources."mimic-response-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      (sources."morgan-1.10.0" // {
+        dependencies = [
+          sources."depd-2.0.0"
+        ];
+      })
+      sources."ms-2.0.0"
+      sources."munin-plugin-0.0.9"
+      sources."mute-stream-0.0.7"
+      sources."negotiator-0.6.2"
+      sources."node-fetch-1.6.3"
+      sources."normalize-url-4.5.0"
+      sources."object-assign-4.1.1"
+      sources."office-ui-fabric-react-7.134.1"
+      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-2.1.0"
+      sources."openapi-framework-0.26.0"
+      sources."openapi-jsonschema-parameters-1.2.0"
+      sources."openapi-request-coercer-2.4.0"
+      sources."openapi-request-validator-4.2.0"
+      sources."openapi-response-validator-4.0.0"
+      (sources."openapi-schema-validator-3.0.3" // {
+        dependencies = [
+          sources."openapi-types-1.3.4"
+        ];
+      })
+      (sources."openapi-security-handler-2.0.4" // {
+        dependencies = [
+          sources."openapi-types-1.3.4"
+        ];
+      })
+      sources."openapi-types-1.3.5"
+      (sources."opencollective-1.0.3" // {
+        dependencies = [
+          sources."minimist-1.2.0"
+        ];
+      })
+      sources."opencollective-postinstall-2.0.3"
+      sources."opn-4.0.2"
+      sources."os-tmpdir-1.0.2"
+      sources."p-cancelable-1.1.0"
+      (sources."package-json-6.5.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."parseurl-1.3.3"
+      sources."path-is-absolute-1.0.1"
+      sources."path-to-regexp-0.1.7"
+      sources."pinkie-2.0.4"
+      sources."pinkie-promise-2.0.1"
+      sources."prepend-http-2.0.0"
+      sources."promise-queue-2.2.5"
+      sources."prop-types-15.7.2"
+      sources."proxy-addr-2.0.6"
+      sources."pump-3.0.0"
+      sources."punycode-2.1.1"
+      sources."qs-6.7.0"
+      sources."range-parser-1.2.1"
+      sources."raw-body-2.4.0"
+      sources."rc-1.2.8"
+      sources."react-16.13.1"
+      sources."react-dom-16.13.1"
+      sources."react-is-16.13.1"
+      sources."readable-stream-3.6.0"
+      sources."regenerator-runtime-0.10.5"
+      sources."registry-auth-token-4.2.0"
+      sources."registry-url-5.1.0"
+      sources."responselike-1.0.2"
+      sources."restore-cursor-2.0.0"
+      sources."run-async-2.4.1"
+      sources."rx-4.1.0"
+      sources."safe-buffer-5.1.2"
+      sources."safer-buffer-2.1.2"
+      sources."scheduler-0.19.1"
+      sources."semver-7.3.2"
+      (sources."send-0.17.1" // {
+        dependencies = [
+          sources."ms-2.1.1"
+        ];
+      })
+      sources."serve-static-1.14.1"
+      sources."setprototypeof-1.1.1"
+      sources."sift-7.0.1"
+      sources."signal-exit-3.0.3"
+      sources."source-map-0.6.1"
+      sources."source-map-support-0.5.19"
+      sources."sprintf-js-1.0.3"
+      sources."statuses-1.5.0"
+      (sources."stream-http-3.1.1" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+        ];
+      })
+      (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" // {
+        dependencies = [
+          sources."safe-buffer-5.2.1"
+        ];
+      })
+      sources."strip-ansi-3.0.1"
+      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.32.5"
+      sources."tail-2.0.4"
+      sources."through-2.3.8"
+      sources."tmp-0.0.33"
+      sources."to-readable-stream-1.0.0"
+      sources."toidentifier-1.0.0"
+      sources."ts-log-2.1.4"
+      sources."tslib-1.13.0"
+      sources."type-is-1.6.18"
+      sources."unpipe-1.0.0"
+      sources."uri-js-4.4.0"
+      sources."url-parse-lax-3.0.0"
+      sources."util-deprecate-1.0.2"
+      sources."utils-merge-1.0.1"
+      sources."vary-1.1.2"
+      sources."wrappy-1.0.2"
+      sources."xtend-4.0.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Japanese DTV Tuner Server Service.";
+      homepage = https://github.com/Chinachu/Mirakurun;
+      license = "Apache-2.0";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  mocha = nodeEnv.buildNodePackage {
+    name = "mocha";
+    packageName = "mocha";
+    version = "8.1.3";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/mocha/-/mocha-8.1.3.tgz";
+      sha512 = "ZbaYib4hT4PpF4bdSO2DohooKXIn4lDeiYqB+vTmCdr6l2woW0b6H3pf5x4sM5nwQMru9RvjjHYWVGltR50ZBw==";
+    };
+    dependencies = [
+      sources."@types/color-name-1.1.1"
+      sources."ansi-colors-4.1.1"
+      sources."ansi-regex-3.0.0"
+      sources."ansi-styles-4.2.1"
+      sources."anymatch-3.1.1"
+      sources."argparse-1.0.10"
+      sources."array.prototype.map-1.0.2"
+      sources."balanced-match-1.0.0"
+      sources."binary-extensions-2.1.0"
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."browser-stdout-1.3.1"
+      sources."camelcase-5.3.1"
+      sources."chalk-4.1.0"
+      sources."chokidar-3.4.2"
+      (sources."cliui-5.0.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."concat-map-0.0.1"
+      sources."debug-4.1.1"
+      sources."decamelize-1.2.0"
+      sources."define-properties-1.1.3"
+      sources."diff-4.0.2"
+      sources."emoji-regex-7.0.3"
+      sources."es-abstract-1.17.6"
+      sources."es-array-method-boxes-properly-1.0.0"
+      sources."es-get-iterator-1.1.0"
+      sources."es-to-primitive-1.2.1"
+      sources."escape-string-regexp-4.0.0"
+      sources."esprima-4.0.1"
+      sources."fill-range-7.0.1"
+      sources."find-up-5.0.0"
+      sources."flat-4.1.0"
+      sources."fs.realpath-1.0.0"
+      sources."fsevents-2.1.3"
+      sources."function-bind-1.1.1"
+      sources."get-caller-file-2.0.5"
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.1"
+      sources."growl-1.10.5"
+      sources."has-1.0.3"
+      sources."has-flag-4.0.0"
+      sources."has-symbols-1.0.1"
+      sources."he-1.2.0"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."is-arguments-1.0.4"
+      sources."is-binary-path-2.1.0"
+      sources."is-buffer-2.0.4"
+      sources."is-callable-1.2.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-map-2.0.1"
+      sources."is-number-7.0.0"
+      sources."is-plain-obj-1.1.0"
+      sources."is-regex-1.1.1"
+      sources."is-set-2.0.1"
+      sources."is-string-1.0.5"
+      sources."is-symbol-1.0.3"
+      sources."isarray-2.0.5"
+      sources."isexe-2.0.0"
+      sources."iterate-iterator-1.0.1"
+      sources."iterate-value-1.0.2"
+      sources."js-yaml-3.14.0"
+      sources."locate-path-6.0.0"
+      sources."log-symbols-4.0.0"
+      sources."minimatch-3.0.4"
+      sources."ms-2.1.2"
+      sources."normalize-path-3.0.0"
+      sources."object-inspect-1.8.0"
+      sources."object-keys-1.1.1"
+      sources."object.assign-4.1.0"
+      sources."once-1.4.0"
+      sources."p-limit-3.0.2"
+      sources."p-locate-5.0.0"
+      sources."p-try-2.2.0"
+      sources."path-exists-4.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."picomatch-2.2.2"
+      sources."promise.allsettled-1.0.2"
+      sources."randombytes-2.1.0"
+      sources."readdirp-3.4.0"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."safe-buffer-5.2.1"
+      sources."serialize-javascript-4.0.0"
+      sources."set-blocking-2.0.0"
+      sources."sprintf-js-1.0.3"
+      sources."string-width-2.1.1"
+      sources."string.prototype.trimend-1.0.1"
+      sources."string.prototype.trimstart-1.0.1"
+      sources."strip-ansi-4.0.0"
+      sources."strip-json-comments-3.0.1"
+      sources."supports-color-7.1.0"
+      sources."to-regex-range-5.0.1"
+      sources."which-2.0.2"
+      sources."which-module-2.0.0"
+      sources."wide-align-1.1.3"
+      sources."workerpool-6.0.0"
+      (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."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."y18n-4.0.0"
+      (sources."yargs-13.3.2" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          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."path-exists-3.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."yargs-parser-13.1.2"
+      (sources."yargs-unparser-1.6.1" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          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."path-exists-3.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+          sources."yargs-14.2.3"
+          sources."yargs-parser-15.0.1"
         ];
       })
-      (sources."@gulp-sourcemaps/map-sources-1.0.0" // {
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "simple, flexible, fun test framework";
+      homepage = https://mochajs.org/;
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  multi-file-swagger = nodeEnv.buildNodePackage {
+    name = "multi-file-swagger";
+    packageName = "multi-file-swagger";
+    version = "2.3.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/multi-file-swagger/-/multi-file-swagger-2.3.0.tgz";
+      sha512 = "kiGLOSzovuYddOePdYicu/jkIjvlNgvq/bP/0C0+oiPBIuiJWLS1vXPvnU2OowRQPi/Hxnp0HuRI5/7s7qu8Qg==";
+    };
+    dependencies = [
+      sources."argparse-1.0.10"
+      sources."asynckit-0.4.0"
+      sources."combined-stream-1.0.8"
+      sources."commander-2.20.3"
+      sources."component-emitter-1.3.0"
+      sources."cookiejar-2.1.2"
+      sources."core-util-is-1.0.2"
+      sources."debug-3.2.6"
+      sources."delayed-stream-1.0.0"
+      sources."esprima-4.0.1"
+      sources."extend-3.0.2"
+      sources."form-data-2.5.1"
+      sources."formidable-1.2.2"
+      sources."graphlib-2.1.8"
+      sources."inherits-2.0.4"
+      sources."isarray-1.0.0"
+      sources."js-yaml-3.14.0"
+      (sources."json-refs-3.0.15" // {
+        dependencies = [
+          sources."commander-4.1.1"
+        ];
+      })
+      sources."lodash-4.17.20"
+      sources."methods-1.1.2"
+      sources."mime-1.6.0"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
+      sources."ms-2.1.2"
+      sources."native-promise-only-0.8.1"
+      sources."path-loader-1.0.10"
+      sources."process-nextick-args-2.0.1"
+      sources."punycode-2.1.1"
+      sources."qs-6.9.4"
+      sources."readable-stream-2.3.7"
+      sources."safe-buffer-5.1.2"
+      sources."slash-3.0.0"
+      sources."sprintf-js-1.0.3"
+      sources."string_decoder-1.1.1"
+      sources."superagent-3.8.3"
+      sources."uri-js-4.4.0"
+      sources."util-deprecate-1.0.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Multi-file Swagger example";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  neovim = nodeEnv.buildNodePackage {
+    name = "neovim";
+    packageName = "neovim";
+    version = "4.9.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/neovim/-/neovim-4.9.0.tgz";
+      sha512 = "48hDy0Dheo5qFF+cwhj7qaWoXfbiKOQ0CLNE0/aiA41rhn/Z1m0OKQqlp9SqbSMr/PnY5QdiLdbs0xh2UudEfA==";
+    };
+    dependencies = [
+      sources."@msgpack/msgpack-1.12.2"
+      sources."async-2.6.3"
+      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.4.0"
+      sources."colorspace-1.1.2"
+      sources."core-util-is-1.0.2"
+      sources."diagnostics-1.1.1"
+      sources."enabled-1.0.2"
+      sources."env-variable-0.0.6"
+      sources."fast-safe-stringify-2.0.7"
+      sources."fecha-4.2.0"
+      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.defaults-4.2.0"
+      sources."lodash.omit-4.5.0"
+      sources."logform-2.2.0"
+      sources."ms-2.1.2"
+      sources."one-time-0.0.4"
+      sources."process-nextick-args-2.0.1"
+      sources."readable-stream-3.6.0"
+      sources."safe-buffer-5.2.1"
+      sources."semver-7.3.2"
+      sources."simple-swizzle-0.2.2"
+      sources."stack-trace-0.0.10"
+      sources."string_decoder-1.3.0"
+      sources."text-hex-1.0.0"
+      sources."triple-beam-1.3.0"
+      sources."util-deprecate-1.0.2"
+      sources."winston-3.2.1"
+      (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
           sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
         ];
       })
-      (sources."accord-0.28.0" // {
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Neovim client API and neovim remote plugin provider";
+      homepage = https://github.com/neovim/node-client;
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  netlify-cli = nodeEnv.buildNodePackage {
+    name = "netlify-cli";
+    packageName = "netlify-cli";
+    version = "2.61.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/netlify-cli/-/netlify-cli-2.61.0.tgz";
+      sha512 = "IGB8m/Cb0LB84K9wXSv3KbGJ29RzPTRt8CfHdH6mBMW5hWk3TfCGIIXl1xjqVR7am4ZxbGlKUcDDiMGGwF+/JQ==";
+    };
+    dependencies = [
+      sources."@analytics/cookie-utils-0.2.3"
+      sources."@analytics/core-0.6.2"
+      sources."@analytics/storage-utils-0.2.4"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@bugsnag/browser-7.3.3"
+      sources."@bugsnag/core-7.3.3"
+      sources."@bugsnag/cuid-3.0.0"
+      sources."@bugsnag/js-7.3.3"
+      sources."@bugsnag/node-7.3.3"
+      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-3.3.5" // {
         dependencies = [
-          sources."glob-7.1.6"
-          sources."minimatch-3.0.4"
+          sources."chalk-3.0.0"
+          sources."resolve-2.0.0-next.1"
+        ];
+      })
+      sources."@netlify/cache-utils-1.0.2"
+      (sources."@netlify/config-2.1.3" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+        ];
+      })
+      sources."@netlify/functions-utils-1.2.8"
+      (sources."@netlify/git-utils-1.0.1" // {
+        dependencies = [
+          sources."braces-3.0.2"
+          sources."fill-range-7.0.1"
+          sources."is-number-7.0.0"
+          sources."micromatch-4.0.2"
+          sources."to-regex-range-5.0.1"
+        ];
+      })
+      sources."@netlify/open-api-0.16.0"
+      sources."@netlify/run-utils-1.0.0"
+      (sources."@netlify/zip-it-and-ship-it-1.3.12" // {
+        dependencies = [
+          sources."resolve-2.0.0-next.1"
+        ];
+      })
+      (sources."@nodelib/fs.scandir-2.1.3" // {
+        dependencies = [
+          sources."@nodelib/fs.stat-2.0.3"
+        ];
+      })
+      sources."@nodelib/fs.stat-1.1.3"
+      sources."@nodelib/fs.walk-1.2.4"
+      (sources."@oclif/color-0.1.2" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          (sources."chalk-3.0.0" // {
+            dependencies = [
+              sources."ansi-styles-4.2.1"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-3.0.0"
+          sources."strip-ansi-5.2.0"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      (sources."@oclif/command-1.8.0" // {
+        dependencies = [
+          sources."@oclif/plugin-help-3.2.0"
+          sources."ansi-regex-3.0.0"
+          sources."ansi-styles-3.2.1"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
+          sources."wrap-ansi-4.0.0"
+        ];
+      })
+      (sources."@oclif/config-1.17.0" // {
+        dependencies = [
+          sources."@nodelib/fs.stat-2.0.3"
+          sources."array-union-2.1.0"
+          sources."braces-3.0.2"
+          sources."dir-glob-3.0.1"
+          sources."fast-glob-3.2.4"
+          sources."fill-range-7.0.1"
+          sources."glob-parent-5.1.1"
+          sources."globby-11.0.1"
+          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.0.1"
+        ];
+      })
+      (sources."@oclif/errors-1.3.3" // {
+        dependencies = [
+          sources."clean-stack-3.0.0"
+          sources."fs-extra-9.0.1"
+          sources."wrap-ansi-7.0.0"
+        ];
+      })
+      sources."@oclif/linewrap-1.0.0"
+      sources."@oclif/parser-3.8.5"
+      (sources."@oclif/plugin-help-2.2.3" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."ansi-styles-3.2.1"
+          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."wrap-ansi-4.0.0" // {
+            dependencies = [
+              sources."string-width-2.1.1"
+              sources."strip-ansi-4.0.0"
+            ];
+          })
+        ];
+      })
+      (sources."@oclif/plugin-not-found-1.2.4" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."cli-ux-4.9.3"
+          sources."fs-extra-7.0.1"
+          sources."has-flag-3.0.0"
+          sources."indent-string-3.2.0"
+          sources."is-wsl-1.1.0"
+          sources."jsonfile-4.0.0"
           sources."semver-5.7.1"
-          sources."uglify-js-2.8.29"
+          sources."strip-ansi-5.2.0"
+          sources."supports-color-5.5.0"
+          sources."universalify-0.1.2"
         ];
       })
-      sources."acorn-5.7.4"
-      sources."ajv-4.11.8"
-      (sources."align-text-0.1.4" // {
+      (sources."@oclif/plugin-plugins-1.9.0" // {
         dependencies = [
-          sources."kind-of-3.2.2"
+          sources."fs-extra-7.0.1"
+          sources."jsonfile-4.0.0"
+          sources."npm-run-path-3.1.0"
+          sources."path-key-3.1.1"
+          sources."tslib-2.0.1"
+          sources."universalify-0.1.2"
         ];
       })
-      sources."almond-0.3.3"
-      sources."ansi-colors-1.1.0"
-      sources."ansi-cyan-0.1.1"
-      sources."ansi-gray-0.1.1"
-      sources."ansi-red-0.1.1"
-      sources."ansi-regex-2.1.1"
-      sources."ansi-styles-2.2.1"
-      sources."ansi-wrap-0.1.0"
-      sources."append-buffer-1.0.2"
-      sources."archy-1.0.0"
+      sources."@oclif/screen-1.0.4"
+      sources."@octokit/auth-token-2.4.2"
+      (sources."@octokit/endpoint-6.0.5" // {
+        dependencies = [
+          sources."is-plain-object-4.1.1"
+          sources."universal-user-agent-6.0.0"
+        ];
+      })
+      (sources."@octokit/plugin-paginate-rest-1.1.2" // {
+        dependencies = [
+          sources."@octokit/types-2.16.2"
+        ];
+      })
+      sources."@octokit/plugin-request-log-1.0.0"
+      (sources."@octokit/plugin-rest-endpoint-methods-2.4.0" // {
+        dependencies = [
+          sources."@octokit/types-2.16.2"
+        ];
+      })
+      (sources."@octokit/request-5.4.7" // {
+        dependencies = [
+          sources."@octokit/request-error-2.0.2"
+          sources."is-plain-object-4.1.1"
+          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-5.4.1"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@sindresorhus/slugify-1.1.0"
+      (sources."@sindresorhus/transliterate-0.1.1" // {
+        dependencies = [
+          sources."escape-string-regexp-2.0.0"
+        ];
+      })
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@types/color-name-1.1.1"
+      sources."@types/decompress-4.2.3"
+      sources."@types/download-6.2.4"
+      sources."@types/glob-7.1.3"
+      sources."@types/got-8.3.5"
+      sources."@types/http-proxy-1.17.4"
+      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/mkdirp-0.5.2"
+      sources."@types/node-14.6.3"
+      sources."@types/node-fetch-2.5.7"
+      sources."@types/normalize-package-data-2.4.0"
+      sources."@types/semver-5.5.0"
+      sources."@types/yargs-13.0.10"
+      sources."@types/yargs-parser-15.0.0"
+      sources."@typescript-eslint/typescript-estree-2.34.0"
+      sources."accepts-1.3.7"
+      sources."aggregate-error-3.1.0"
+      sources."analytics-0.5.5"
+      sources."analytics-utils-0.2.2"
+      (sources."ansi-align-3.0.0" // {
+        dependencies = [
+          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"
+      sources."ansi-regex-4.1.0"
+      (sources."ansi-styles-4.2.1" // {
+        dependencies = [
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+        ];
+      })
+      sources."ansicolors-0.3.2"
+      sources."anymatch-3.1.1"
+      (sources."archive-type-4.0.0" // {
+        dependencies = [
+          sources."file-type-4.4.0"
+        ];
+      })
+      sources."archiver-4.0.2"
+      (sources."archiver-utils-2.1.0" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      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-1.0.0"
-      sources."array-each-1.0.1"
-      sources."array-slice-1.1.0"
+      sources."array-flat-polyfill-1.0.1"
+      sources."array-flatten-1.1.1"
+      sources."array-union-1.0.2"
       sources."array-uniq-1.0.3"
       sources."array-unique-0.3.2"
-      sources."asap-2.0.6"
-      sources."asn1-0.2.4"
-      sources."assert-plus-0.2.0"
+      sources."arrify-2.0.1"
+      sources."ascii-table-0.0.9"
       sources."assign-symbols-1.0.0"
+      sources."ast-module-types-2.6.0"
+      sources."async-3.2.0"
       sources."asynckit-0.4.0"
+      sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
-      sources."aws-sign2-0.6.0"
-      sources."aws4-1.10.0"
+      sources."atob-lite-2.0.0"
+      (sources."aws-sdk-2.745.0" // {
+        dependencies = [
+          sources."buffer-4.9.2"
+          sources."uuid-3.3.2"
+        ];
+      })
+      sources."backoff-2.5.0"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
         ];
       })
-      sources."bcrypt-pbkdf-1.0.2"
-      sources."beeper-1.1.1"
-      sources."boom-2.10.1"
+      sources."base64-js-1.3.1"
+      sources."before-after-hook-2.1.0"
+      sources."binary-extensions-2.1.0"
+      sources."bl-4.0.3"
+      (sources."body-parser-1.19.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."raw-body-2.4.0"
+        ];
+      })
+      (sources."boxen-4.2.0" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+        ];
+      })
       sources."brace-expansion-1.1.11"
       (sources."braces-2.3.2" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."buffer-equal-1.0.0"
+      sources."btoa-lite-1.0.0"
+      sources."buffer-5.6.0"
+      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."builtins-1.0.3"
+      sources."byline-5.0.0"
+      sources."bytes-3.1.0"
       sources."cache-base-1.0.1"
-      sources."camelcase-1.2.1"
-      sources."caseless-0.12.0"
-      sources."center-align-0.1.3"
-      sources."chalk-1.1.3"
+      (sources."cacheable-request-6.1.0" // {
+        dependencies = [
+          sources."lowercase-keys-2.0.0"
+        ];
+      })
+      sources."cachedir-2.3.0"
+      sources."call-me-maybe-1.0.1"
+      sources."camelcase-5.3.1"
+      sources."cardinal-2.1.1"
+      sources."caw-2.0.1"
+      (sources."chalk-2.4.2" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."escape-string-regexp-1.0.5"
+          sources."has-flag-3.0.0"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      sources."chardet-0.7.0"
+      (sources."chokidar-3.4.2" // {
+        dependencies = [
+          sources."braces-3.0.2"
+          sources."fill-range-7.0.1"
+          sources."glob-parent-5.1.1"
+          sources."is-number-7.0.0"
+          sources."to-regex-range-5.0.1"
+        ];
+      })
+      sources."ci-info-2.0.0"
       (sources."class-utils-0.3.6" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -69523,88 +73061,226 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      (sources."clean-css-4.2.1" // {
+      sources."clean-deep-3.4.0"
+      sources."clean-stack-2.2.0"
+      sources."cli-boxes-2.2.1"
+      sources."cli-cursor-2.1.0"
+      sources."cli-progress-3.8.2"
+      sources."cli-spinners-2.4.0"
+      (sources."cli-ux-5.5.0" // {
         dependencies = [
-          sources."source-map-0.6.1"
+          sources."ansi-escapes-4.3.1"
+          sources."chalk-4.1.0"
+          sources."clean-stack-3.0.0"
+          sources."extract-stack-2.0.0"
+          sources."fs-extra-9.0.1"
+          sources."supports-hyperlinks-2.1.0"
+          sources."tslib-2.0.1"
+          sources."type-fest-0.11.0"
         ];
       })
-      sources."cliui-2.1.0"
+      sources."cli-width-2.2.1"
+      sources."cliui-6.0.0"
       sources."clone-1.0.4"
-      sources."clone-buffer-1.0.0"
-      sources."clone-stats-0.0.1"
-      (sources."cloneable-readable-1.1.3" // {
+      sources."clone-response-1.0.2"
+      sources."collection-visit-1.0.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."colors-1.4.0"
+      sources."colorspace-1.1.2"
+      sources."combined-stream-1.0.8"
+      sources."commander-2.20.3"
+      sources."common-path-prefix-2.0.0"
+      sources."component-emitter-1.3.0"
+      (sources."compress-commons-3.0.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
+          sources."safe-buffer-5.1.2"
         ];
       })
-      sources."co-4.6.0"
-      sources."collection-visit-1.0.0"
-      sources."color-support-1.1.3"
-      sources."combined-stream-1.0.8"
-      sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
-      sources."convert-source-map-1.7.0"
+      (sources."concordance-4.0.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."config-chain-1.1.12"
+      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.1"
+      sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
+      (sources."copy-template-dir-1.4.0" // {
+        dependencies = [
+          sources."pump-1.0.3"
+          sources."readable-stream-2.3.7"
+          sources."readdirp-2.2.1"
+          sources."safe-buffer-5.1.2"
+        ];
+      })
       sources."core-util-is-1.0.2"
-      sources."cryptiles-2.0.5"
-      (sources."css-2.2.4" // {
+      sources."cp-file-7.0.0"
+      (sources."cpy-8.1.1" // {
         dependencies = [
-          sources."source-map-0.6.1"
+          sources."globby-9.2.0"
         ];
       })
-      sources."d-1.0.1"
-      (sources."dashdash-1.14.1" // {
+      sources."crc-3.8.0"
+      sources."crc32-stream-3.0.1"
+      (sources."cross-spawn-6.0.5" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."semver-5.7.1"
+          sources."which-1.3.1"
         ];
       })
-      sources."dateformat-2.2.0"
-      sources."debug-2.6.9"
-      (sources."debug-fabulous-1.1.0" // {
+      sources."crypto-random-string-2.0.0"
+      sources."cyclist-1.0.1"
+      sources."date-time-2.1.0"
+      (sources."debug-4.2.0" // {
         dependencies = [
-          sources."debug-3.2.6"
           sources."ms-2.1.2"
         ];
       })
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
+      (sources."decompress-4.2.1" // {
+        dependencies = [
+          (sources."make-dir-1.3.0" // {
+            dependencies = [
+              sources."pify-3.0.0"
+            ];
+          })
+          sources."pify-2.3.0"
+        ];
+      })
+      sources."decompress-response-3.3.0"
+      (sources."decompress-tar-4.1.1" // {
+        dependencies = [
+          sources."bl-1.2.3"
+          sources."file-type-5.2.0"
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."tar-stream-1.6.2"
+        ];
+      })
+      (sources."decompress-tarbz2-4.1.1" // {
+        dependencies = [
+          sources."file-type-6.2.0"
+        ];
+      })
+      (sources."decompress-targz-4.1.1" // {
+        dependencies = [
+          sources."file-type-5.2.0"
+        ];
+      })
+      (sources."decompress-unzip-4.0.1" // {
+        dependencies = [
+          sources."file-type-3.9.0"
+          sources."get-stream-2.3.1"
+          sources."pify-2.3.0"
+        ];
+      })
+      sources."deep-extend-0.6.0"
+      sources."deep-is-0.1.3"
+      sources."deepmerge-4.2.2"
       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."del-5.1.0" // {
+        dependencies = [
+          sources."slash-3.0.0"
+        ];
+      })
       sources."delayed-stream-1.0.0"
-      sources."deprecated-0.0.1"
-      sources."detect-file-1.0.0"
-      sources."detect-newline-2.1.0"
-      (sources."duplexer2-0.0.2" // {
+      sources."depd-1.1.2"
+      sources."deprecation-2.3.1"
+      sources."destroy-1.0.4"
+      sources."detective-amd-3.0.0"
+      sources."detective-cjs-3.1.1"
+      sources."detective-es6-2.2.0"
+      sources."detective-less-1.0.2"
+      sources."detective-postcss-3.0.1"
+      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."dir-glob-2.2.2" // {
         dependencies = [
-          sources."isarray-0.0.1"
-          sources."readable-stream-1.1.14"
+          sources."path-type-3.0.0"
+          sources."pify-3.0.0"
         ];
       })
-      (sources."duplexify-3.7.1" // {
+      sources."dlv-1.1.3"
+      sources."dot-prop-5.2.0"
+      sources."dotenv-8.2.0"
+      (sources."download-7.1.0" // {
         dependencies = [
-          sources."end-of-stream-1.4.4"
-          sources."once-1.4.0"
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
+          sources."@sindresorhus/is-0.7.0"
+          sources."cacheable-request-2.1.4"
+          sources."get-stream-3.0.0"
+          sources."got-8.3.2"
+          sources."http-cache-semantics-3.8.1"
+          sources."is-plain-obj-1.1.0"
+          sources."keyv-3.0.0"
+          sources."lowercase-keys-1.0.0"
+          sources."make-dir-1.3.0"
+          sources."normalize-url-2.0.1"
+          sources."p-cancelable-0.4.1"
+          sources."p-event-2.3.1"
+          sources."p-timeout-2.0.1"
+          sources."pify-3.0.0"
+          sources."sort-keys-2.0.0"
         ];
       })
-      sources."ecc-jsbn-0.1.2"
-      sources."end-of-stream-0.1.5"
-      sources."errno-0.1.7"
-      (sources."es5-ext-0.10.53" // {
+      sources."duplexer3-0.1.4"
+      sources."ee-first-1.1.1"
+      sources."elf-tools-1.1.2"
+      sources."emoji-regex-8.0.0"
+      sources."enabled-2.0.0"
+      sources."encodeurl-1.0.2"
+      sources."end-of-stream-1.4.4"
+      sources."envinfo-7.7.3"
+      sources."error-ex-1.3.2"
+      sources."error-stack-parser-2.0.6"
+      sources."es-abstract-1.17.6"
+      sources."es-to-primitive-1.2.1"
+      sources."escape-goat-2.1.1"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-4.0.0"
+      (sources."escodegen-1.14.3" // {
         dependencies = [
-          sources."next-tick-1.0.0"
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."eslint-visitor-keys-1.3.0"
+      sources."esprima-4.0.1"
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
+      sources."etag-1.8.1"
+      sources."eventemitter3-4.0.7"
+      sources."events-1.1.1"
+      (sources."execa-3.4.0" // {
+        dependencies = [
+          sources."cross-spawn-7.0.3"
+          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."es6-iterator-2.0.3"
-      sources."es6-symbol-3.1.3"
-      sources."es6-weak-map-2.0.3"
-      sources."escape-string-regexp-1.0.5"
-      sources."event-emitter-0.3.5"
       (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" // {
@@ -69621,264 +73297,373 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."expand-tilde-2.0.2"
-      (sources."ext-1.4.0" // {
+      (sources."express-4.17.1" // {
         dependencies = [
-          sources."type-2.0.0"
+          sources."cookie-0.4.0"
+          sources."debug-2.6.9"
+          sources."safe-buffer-5.1.2"
         ];
       })
-      sources."extend-3.0.2"
+      sources."express-logging-1.1.1"
+      sources."ext-list-2.2.2"
+      sources."ext-name-5.0.0"
       (sources."extend-shallow-3.0.2" // {
         dependencies = [
           sources."is-extendable-1.0.1"
         ];
       })
+      sources."external-editor-3.1.0"
       (sources."extglob-2.0.4" // {
         dependencies = [
           sources."define-property-1.0.0"
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."extsprintf-1.3.0"
-      sources."fancy-log-1.3.3"
+      sources."extract-stack-1.0.0"
+      sources."fast-diff-1.2.0"
+      sources."fast-equals-1.6.3"
+      sources."fast-glob-2.2.7"
+      sources."fast-levenshtein-2.0.6"
+      sources."fast-safe-stringify-2.0.7"
+      sources."fast-stringify-1.1.2"
+      sources."fastq-1.8.0"
+      sources."fd-slicer-1.1.0"
+      sources."fecha-4.2.0"
+      (sources."figures-3.2.0" // {
+        dependencies = [
+          sources."escape-string-regexp-1.0.5"
+        ];
+      })
+      sources."file-size-0.0.5"
+      sources."file-type-8.1.0"
+      sources."filename-reserved-regex-2.0.0"
+      sources."filenamify-2.1.0"
       (sources."fill-range-4.0.0" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."find-index-0.1.1"
-      sources."findup-sync-2.0.0"
-      sources."fined-1.2.0"
-      sources."first-chunk-stream-1.0.0"
-      sources."flagged-respawn-1.0.1"
-      (sources."flush-write-stream-1.1.1" // {
+      sources."filter-obj-2.0.1"
+      (sources."finalhandler-1.1.2" // {
         dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
+          sources."debug-2.6.9"
         ];
       })
+      sources."find-up-4.1.0"
+      sources."flatten-1.0.3"
+      sources."flush-write-stream-2.0.0"
+      sources."fn.name-1.1.0"
+      sources."folder-walker-3.2.0"
+      sources."follow-redirects-1.13.0"
       sources."for-in-1.0.2"
-      sources."for-own-1.0.0"
-      sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
+      sources."form-data-3.0.0"
+      sources."forwarded-0.1.2"
       sources."fragment-cache-0.2.1"
-      (sources."fs-mkdirp-stream-1.0.0" // {
+      sources."fresh-0.5.2"
+      (sources."from2-2.3.0" // {
         dependencies = [
-          sources."graceful-fs-4.2.4"
           sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."from2-array-0.0.4"
+      sources."fs-constants-1.0.0"
+      (sources."fs-extra-8.1.0" // {
+        dependencies = [
+          sources."jsonfile-4.0.0"
+          sources."universalify-0.1.2"
         ];
       })
       sources."fs.realpath-1.0.0"
+      sources."fsevents-2.1.3"
       sources."function-bind-1.1.1"
-      sources."gaze-0.5.2"
+      sources."fuzzy-0.1.3"
+      sources."get-amd-module-type-3.0.0"
+      sources."get-caller-file-2.0.5"
+      sources."get-port-5.1.1"
+      sources."get-proxy-2.1.0"
+      sources."get-stream-5.2.0"
       sources."get-value-2.0.6"
-      (sources."getpass-0.1.7" // {
+      (sources."gh-release-fetch-1.0.3" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."semver-5.7.1"
         ];
       })
-      sources."glob-4.5.3"
-      sources."glob-parent-3.1.0"
-      sources."glob-stream-3.1.18"
-      sources."glob-watcher-0.0.6"
-      sources."glob2base-0.0.12"
-      sources."global-modules-1.0.0"
-      sources."global-prefix-1.0.2"
-      (sources."globule-0.1.0" // {
+      sources."git-repo-info-2.1.1"
+      sources."gitconfiglocal-2.1.0"
+      sources."glob-7.1.6"
+      (sources."glob-parent-3.1.0" // {
         dependencies = [
-          sources."glob-3.1.21"
-          sources."graceful-fs-1.2.3"
-          sources."inherits-1.0.2"
-          sources."minimatch-0.2.14"
+          sources."is-glob-3.1.0"
         ];
       })
-      sources."glogg-1.0.2"
-      sources."graceful-fs-3.0.12"
-      sources."gulp-3.9.1"
-      (sources."gulp-clean-css-3.10.0" // {
+      sources."glob-to-regexp-0.3.0"
+      sources."global-cache-dir-1.0.1"
+      sources."global-dirs-2.0.1"
+      (sources."globby-10.0.2" // {
         dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.3"
+          sources."@nodelib/fs.stat-2.0.3"
+          sources."array-union-2.1.0"
+          sources."braces-3.0.2"
+          sources."dir-glob-3.0.1"
+          sources."fast-glob-3.2.4"
+          sources."fill-range-7.0.1"
+          sources."glob-parent-5.1.1"
+          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."gulp-less-3.5.0" // {
+      sources."gonzales-pe-4.3.0"
+      (sources."got-9.6.0" // {
         dependencies = [
-          sources."arr-diff-1.1.0"
-          sources."arr-union-2.1.0"
-          sources."array-slice-0.2.3"
-          sources."extend-shallow-1.1.4"
-          sources."kind-of-1.1.0"
-          sources."plugin-error-0.1.2"
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
+          sources."get-stream-4.1.0"
+          sources."to-readable-stream-1.0.0"
         ];
       })
-      (sources."gulp-sourcemaps-2.6.5" // {
+      sources."graceful-fs-4.2.4"
+      sources."has-1.0.3"
+      (sources."has-ansi-0.1.0" // {
         dependencies = [
-          sources."graceful-fs-4.2.4"
-          sources."readable-stream-2.3.7"
-          sources."source-map-0.6.1"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
+          sources."ansi-regex-0.2.1"
         ];
       })
-      (sources."gulp-typescript-4.0.2" // {
+      sources."has-flag-4.0.0"
+      (sources."has-glob-1.0.0" // {
         dependencies = [
-          sources."arr-diff-1.1.0"
-          sources."arr-union-2.1.0"
-          sources."array-slice-0.2.3"
-          sources."clone-2.1.2"
-          sources."clone-stats-1.0.0"
-          sources."extend-shallow-1.1.4"
-          sources."glob-7.1.6"
-          sources."glob-stream-6.1.0"
-          sources."graceful-fs-4.2.4"
-          sources."kind-of-1.1.0"
-          sources."minimatch-3.0.4"
-          sources."ordered-read-streams-1.0.1"
-          sources."plugin-error-0.1.2"
-          sources."readable-stream-2.3.7"
-          sources."source-map-0.6.1"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
-          sources."unique-stream-2.3.1"
-          sources."vinyl-2.2.0"
-          sources."vinyl-fs-3.0.3"
+          sources."is-glob-3.1.0"
         ];
       })
-      (sources."gulp-uglify-3.0.2" // {
+      sources."has-symbol-support-x-1.4.2"
+      sources."has-symbols-1.0.1"
+      sources."has-to-string-tag-x-1.4.1"
+      sources."has-value-1.0.0"
+      (sources."has-values-1.0.0" // {
         dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
+          sources."kind-of-4.0.0"
         ];
       })
-      (sources."gulp-util-3.0.8" // {
+      sources."has-yarn-2.1.0"
+      (sources."hasha-5.2.0" // {
         dependencies = [
-          sources."object-assign-3.0.0"
-          sources."readable-stream-2.3.7"
-          sources."replace-ext-0.0.1"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
-          sources."vinyl-0.5.3"
+          sources."is-stream-2.0.0"
         ];
       })
-      sources."gulplog-1.0.0"
-      sources."har-schema-1.0.5"
-      sources."har-validator-4.2.1"
-      sources."has-ansi-2.0.0"
-      sources."has-gulplog-0.1.0"
-      sources."has-symbols-1.0.1"
-      sources."has-value-1.0.0"
-      (sources."has-values-1.0.0" // {
+      sources."hosted-git-info-2.8.8"
+      sources."http-cache-semantics-4.1.0"
+      (sources."http-call-5.3.0" // {
         dependencies = [
-          sources."kind-of-4.0.0"
+          sources."is-stream-2.0.0"
+          sources."parse-json-4.0.0"
         ];
       })
-      sources."hawk-3.1.3"
-      sources."hoek-2.16.3"
-      sources."homedir-polyfill-1.0.3"
-      sources."http-signature-1.1.1"
-      sources."image-size-0.5.5"
-      sources."indx-0.2.3"
+      (sources."http-errors-1.7.2" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."http-proxy-1.18.1"
+      (sources."http-proxy-middleware-1.0.5" // {
+        dependencies = [
+          sources."braces-3.0.2"
+          sources."fill-range-7.0.1"
+          sources."is-number-7.0.0"
+          sources."micromatch-4.0.2"
+          sources."to-regex-range-5.0.1"
+        ];
+      })
+      sources."human-signals-1.1.1"
+      sources."hyperlinker-1.0.0"
+      sources."iconv-lite-0.4.24"
+      sources."ieee754-1.1.13"
+      sources."ignore-4.0.6"
+      sources."import-lazy-2.1.0"
+      sources."imurmurhash-0.1.4"
+      sources."indent-string-4.0.0"
+      sources."indexes-of-1.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      sources."interpret-1.4.0"
-      sources."is-absolute-1.0.0"
+      (sources."inquirer-6.5.2" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."escape-string-regexp-1.0.5"
+          sources."figures-2.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-autocomplete-prompt-1.1.0" // {
+        dependencies = [
+          sources."ansi-escapes-4.3.1"
+          sources."chalk-4.1.0"
+          sources."type-fest-0.11.0"
+        ];
+      })
+      sources."into-stream-3.1.0"
+      sources."ipaddr.js-1.9.1"
       sources."is-accessor-descriptor-1.0.0"
+      sources."is-arrayish-0.2.1"
+      sources."is-binary-path-2.1.0"
       sources."is-buffer-1.1.6"
+      sources."is-callable-1.2.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-extglob-2.1.1"
-      sources."is-glob-3.1.0"
-      sources."is-negated-glob-1.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-installed-globally-0.3.2"
+      sources."is-interactive-1.0.0"
+      sources."is-natural-number-4.0.1"
+      sources."is-npm-4.0.0"
       (sources."is-number-3.0.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
         ];
       })
+      sources."is-obj-2.0.0"
+      sources."is-object-1.0.1"
+      sources."is-path-cwd-2.2.0"
+      sources."is-path-inside-3.0.2"
+      sources."is-plain-obj-2.1.0"
       sources."is-plain-object-2.0.4"
-      sources."is-promise-2.2.2"
-      sources."is-relative-1.0.0"
+      sources."is-regex-1.1.1"
+      sources."is-retry-allowed-1.2.0"
+      sources."is-stream-1.1.0"
+      sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
-      sources."is-unc-path-1.0.0"
-      sources."is-utf8-0.2.1"
-      sources."is-valid-glob-1.0.0"
+      sources."is-url-1.2.4"
       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."iserror-0.0.2"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
-      sources."isstream-0.1.2"
-      sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
-      sources."json-stable-stringify-1.0.1"
-      sources."json-stable-stringify-without-jsonify-1.0.1"
-      sources."json-stringify-safe-5.0.1"
-      sources."jsonify-0.0.0"
-      (sources."jsprim-1.4.1" // {
+      sources."isurl-1.0.0"
+      sources."jest-get-type-24.9.0"
+      sources."jest-validate-24.9.0"
+      sources."jmespath-0.15.0"
+      sources."js-string-escape-1.0.1"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.0"
+      sources."json-buffer-3.0.0"
+      sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
+      sources."jsonfile-6.0.1"
+      sources."junk-3.1.0"
+      sources."jwt-decode-2.2.0"
+      sources."keep-func-props-3.0.1"
+      sources."keyv-3.1.0"
+      sources."kind-of-6.0.3"
+      sources."kuler-2.0.0"
+      (sources."lambda-local-1.7.3" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."commander-5.1.0"
         ];
       })
-      sources."kind-of-6.0.3"
-      sources."lazy-cache-1.0.4"
+      sources."latest-version-5.1.0"
       (sources."lazystream-1.0.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
+          sources."safe-buffer-5.1.2"
         ];
       })
-      sources."lead-1.0.0"
-      (sources."less-2.7.3" // {
+      sources."leven-3.1.0"
+      sources."levn-0.3.0"
+      sources."lines-and-columns-1.1.6"
+      (sources."load-json-file-5.3.0" // {
         dependencies = [
-          sources."graceful-fs-4.2.4"
+          sources."parse-json-4.0.0"
+          sources."type-fest-0.3.1"
         ];
       })
-      sources."liftoff-2.5.0"
-      sources."lodash-1.0.2"
-      sources."lodash._basecopy-3.0.1"
-      sources."lodash._basetostring-3.0.1"
-      sources."lodash._basevalues-3.0.0"
-      sources."lodash._getnative-3.9.1"
-      sources."lodash._isiterateecall-3.0.9"
-      sources."lodash._reescape-3.0.0"
-      sources."lodash._reevaluate-3.0.0"
+      sources."locate-path-5.0.0"
+      sources."lodash-4.17.20"
       sources."lodash._reinterpolate-3.0.0"
-      sources."lodash._root-3.0.1"
-      sources."lodash.clone-4.5.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.escape-3.2.0"
+      sources."lodash.difference-4.5.0"
       sources."lodash.flatten-4.4.0"
-      sources."lodash.isarguments-3.1.0"
-      sources."lodash.isarray-3.0.4"
-      sources."lodash.keys-3.1.2"
+      sources."lodash.flattendeep-4.4.0"
+      sources."lodash.get-4.4.2"
+      sources."lodash.isempty-4.4.0"
+      sources."lodash.isequal-4.5.0"
+      sources."lodash.islength-4.0.1"
+      sources."lodash.isobject-3.0.2"
+      sources."lodash.isplainobject-4.0.6"
       sources."lodash.merge-4.6.2"
-      sources."lodash.partialright-4.2.1"
       sources."lodash.pick-4.4.0"
-      sources."lodash.restparam-3.6.1"
-      sources."lodash.template-3.6.2"
-      sources."lodash.templatesettings-3.1.1"
+      sources."lodash.sample-4.2.1"
+      sources."lodash.set-4.3.2"
+      sources."lodash.snakecase-4.1.1"
+      sources."lodash.template-4.5.0"
+      sources."lodash.templatesettings-4.2.0"
+      sources."lodash.transform-4.6.0"
+      sources."lodash.union-4.6.0"
       sources."lodash.uniq-4.5.0"
-      sources."longest-1.0.1"
-      sources."lru-cache-2.7.3"
-      sources."lru-queue-0.1.0"
-      sources."make-error-1.3.6"
-      sources."make-error-cause-1.2.2"
-      sources."make-iterator-1.0.1"
+      (sources."log-process-errors-5.1.2" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+        ];
+      })
+      sources."log-symbols-3.0.0"
+      (sources."logform-2.2.0" // {
+        dependencies = [
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."lowercase-keys-1.0.1"
+      sources."macos-release-2.4.1"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."map-cache-0.2.2"
+      sources."map-obj-4.1.0"
       sources."map-visit-1.0.0"
-      sources."memoizee-0.4.14"
+      sources."maxstache-1.0.7"
+      (sources."maxstache-stream-1.0.4" // {
+        dependencies = [
+          sources."pump-1.0.3"
+        ];
+      })
+      sources."md5-hex-2.0.0"
+      sources."md5-o-matic-0.1.1"
+      sources."media-typer-0.3.0"
+      sources."memoize-one-5.1.1"
+      sources."merge-descriptors-1.0.1"
+      sources."merge-stream-2.0.0"
+      sources."merge2-1.4.1"
+      sources."methods-1.1.2"
+      sources."micro-api-client-3.3.0"
+      sources."micro-memoize-2.1.2"
       sources."micromatch-3.1.10"
       sources."mime-1.6.0"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
-      sources."minimatch-2.0.10"
+      sources."mimic-fn-3.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 = [
@@ -69886,14 +73671,60 @@ in
         ];
       })
       sources."mkdirp-0.5.5"
+      sources."module-definition-3.3.0"
+      sources."moize-5.4.7"
+      (sources."move-file-1.2.0" // {
+        dependencies = [
+          (sources."cp-file-6.2.0" // {
+            dependencies = [
+              sources."make-dir-2.1.0"
+            ];
+          })
+          sources."path-exists-3.0.0"
+          sources."semver-5.7.1"
+        ];
+      })
       sources."ms-2.0.0"
-      sources."multipipe-0.1.2"
+      (sources."multiparty-4.2.2" // {
+        dependencies = [
+          sources."http-errors-1.8.0"
+          sources."setprototypeof-1.2.0"
+        ];
+      })
+      sources."mute-stream-0.0.7"
       sources."nanomatch-1.2.13"
-      sources."natives-1.1.6"
-      sources."next-tick-1.1.0"
-      sources."normalize-path-2.1.1"
-      sources."now-and-later-2.0.1"
-      sources."oauth-sign-0.8.2"
+      sources."natural-orderby-2.0.3"
+      sources."negotiator-0.6.2"
+      sources."nested-error-stacks-2.1.0"
+      (sources."netlify-4.3.13" // {
+        dependencies = [
+          sources."qs-6.9.4"
+        ];
+      })
+      (sources."netlify-redirect-parser-2.5.0" // {
+        dependencies = [
+          sources."@netlify/config-0.11.11"
+          sources."chalk-3.0.0"
+        ];
+      })
+      sources."netlify-redirector-0.2.0"
+      sources."nice-try-1.0.5"
+      sources."node-fetch-2.6.0"
+      sources."node-source-walk-4.2.0"
+      sources."noop2-2.0.0"
+      (sources."normalize-package-data-2.5.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."normalize-path-3.0.0"
+      sources."normalize-url-4.5.0"
+      (sources."npm-conf-1.1.3" // {
+        dependencies = [
+          sources."pify-3.0.0"
+        ];
+      })
+      sources."npm-run-path-2.0.2"
       sources."object-assign-4.1.1"
       (sources."object-copy-0.1.0" // {
         dependencies = [
@@ -69908,83 +73739,213 @@ in
           sources."kind-of-3.2.2"
         ];
       })
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
+      sources."object-treeify-1.1.26"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.0"
-      sources."object.defaults-1.1.0"
-      sources."object.map-1.0.1"
+      sources."object.getownpropertydescriptors-2.1.0"
       sources."object.pick-1.3.0"
-      sources."once-1.3.3"
-      sources."orchestrator-0.3.8"
-      sources."ordered-read-streams-0.1.0"
-      sources."os-homedir-1.0.2"
-      sources."parse-filepath-1.0.2"
-      sources."parse-node-version-1.0.1"
-      sources."parse-passwd-1.0.0"
+      sources."octokit-pagination-methods-1.1.0"
+      sources."omit.js-2.0.2"
+      sources."on-finished-2.3.0"
+      sources."on-headers-1.0.2"
+      sources."once-1.4.0"
+      sources."one-time-1.0.0"
+      (sources."onetime-5.1.2" // {
+        dependencies = [
+          sources."mimic-fn-2.1.0"
+        ];
+      })
+      (sources."open-6.4.0" // {
+        dependencies = [
+          sources."is-wsl-1.1.0"
+        ];
+      })
+      (sources."opn-5.5.0" // {
+        dependencies = [
+          sources."is-wsl-1.1.0"
+        ];
+      })
+      sources."optionator-0.8.3"
+      (sources."ora-4.1.1" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+          sources."cli-cursor-3.1.0"
+          sources."mute-stream-0.0.8"
+          sources."restore-cursor-3.1.0"
+        ];
+      })
+      sources."os-name-3.1.0"
+      sources."os-tmpdir-1.0.2"
+      (sources."p-all-2.1.0" // {
+        dependencies = [
+          sources."p-map-2.1.0"
+        ];
+      })
+      sources."p-cancelable-1.1.0"
+      sources."p-event-4.2.0"
+      (sources."p-filter-2.1.0" // {
+        dependencies = [
+          sources."p-map-2.1.0"
+        ];
+      })
+      sources."p-finally-1.0.0"
+      sources."p-is-promise-1.1.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-map-3.0.0"
+      sources."p-reduce-2.1.0"
+      sources."p-timeout-3.2.0"
+      sources."p-try-2.2.0"
+      sources."p-wait-for-3.1.0"
+      (sources."package-json-6.5.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      (sources."parallel-transform-1.2.0" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."parse-github-url-1.0.2"
+      sources."parse-gitignore-1.0.1"
+      sources."parse-json-5.1.0"
+      sources."parse-ms-2.1.0"
+      sources."parseurl-1.3.3"
       sources."pascalcase-0.1.1"
+      sources."password-prompt-1.1.2"
       sources."path-dirname-1.0.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-root-0.1.1"
-      sources."path-root-regex-0.1.2"
-      sources."performance-now-0.2.0"
-      sources."plugin-error-1.0.1"
+      sources."path-to-regexp-0.1.7"
+      sources."path-type-4.0.0"
+      sources."pend-1.2.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-4.2.0"
       sources."posix-character-classes-0.1.1"
-      sources."pretty-hrtime-1.0.3"
-      sources."process-nextick-args-2.0.1"
-      sources."promise-7.3.1"
-      sources."prr-1.0.1"
-      (sources."pump-2.0.1" // {
+      (sources."postcss-7.0.32" // {
         dependencies = [
-          (sources."end-of-stream-1.4.4" // {
-            dependencies = [
-              sources."once-1.4.0"
-            ];
-          })
+          sources."has-flag-3.0.0"
+          sources."source-map-0.6.1"
+          sources."supports-color-6.1.0"
         ];
       })
-      sources."pumpify-1.5.1"
-      sources."punycode-1.4.1"
-      sources."qs-6.4.0"
-      (sources."readable-stream-1.0.34" // {
+      sources."postcss-values-parser-1.5.0"
+      sources."precinct-6.3.1"
+      sources."precond-0.2.3"
+      sources."prelude-ls-1.1.2"
+      sources."prepend-http-2.0.0"
+      (sources."pretty-format-24.9.0" // {
         dependencies = [
-          sources."isarray-0.0.1"
+          sources."ansi-styles-3.2.1"
         ];
       })
-      sources."rechoir-0.6.2"
-      sources."regex-not-1.0.2"
-      sources."remove-bom-buffer-3.0.0"
-      (sources."remove-bom-stream-1.2.0" // {
+      sources."pretty-ms-5.1.0"
+      sources."prettyjson-1.2.1"
+      sources."process-nextick-args-2.0.1"
+      sources."proto-list-1.2.4"
+      sources."proxy-addr-2.0.6"
+      sources."pump-3.0.0"
+      sources."punycode-1.3.2"
+      sources."pupa-2.0.1"
+      sources."qs-6.7.0"
+      sources."query-string-5.1.1"
+      sources."querystring-0.2.0"
+      sources."random-bytes-1.0.0"
+      sources."random-item-3.0.0"
+      sources."range-parser-1.2.1"
+      (sources."raw-body-2.4.1" // {
         dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
+          sources."http-errors-1.7.3"
+        ];
+      })
+      sources."rc-1.2.8"
+      sources."react-is-16.13.1"
+      (sources."read-pkg-5.2.0" // {
+        dependencies = [
+          sources."type-fest-0.6.0"
         ];
       })
+      sources."read-pkg-up-7.0.1"
+      sources."readable-stream-3.6.0"
+      sources."readdirp-3.4.0"
+      sources."redeyed-2.1.1"
+      sources."regex-not-1.0.2"
+      sources."registry-auth-token-4.2.0"
+      sources."registry-url-5.1.0"
       sources."remove-trailing-separator-1.1.0"
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
-      sources."replace-ext-1.0.1"
-      sources."request-2.81.0"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."require-package-name-2.0.1"
+      sources."requires-port-1.0.0"
       sources."resolve-1.17.0"
-      sources."resolve-dir-1.0.1"
-      sources."resolve-options-1.1.0"
       sources."resolve-url-0.2.1"
+      sources."responselike-1.0.2"
+      (sources."restore-cursor-2.0.0" // {
+        dependencies = [
+          sources."mimic-fn-1.2.0"
+          sources."onetime-2.0.1"
+        ];
+      })
       sources."ret-0.1.15"
-      sources."right-align-0.1.3"
-      sources."safe-buffer-5.1.2"
+      sources."reusify-1.0.4"
+      sources."rimraf-3.0.2"
+      sources."run-async-2.4.1"
+      sources."run-parallel-1.1.9"
+      sources."rxjs-6.6.2"
+      sources."safe-buffer-5.2.1"
+      sources."safe-join-0.1.3"
+      sources."safe-json-stringify-1.2.0"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."semver-4.3.6"
-      sources."sequencify-0.0.7"
+      sources."sax-1.2.1"
+      sources."seek-bzip-1.0.6"
+      sources."semver-7.3.2"
+      (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."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."sigmund-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."simple-swizzle-0.2.2" // {
+        dependencies = [
+          sources."is-arrayish-0.3.2"
+        ];
+      })
+      sources."slash-2.0.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" // {
@@ -70011,17 +73972,25 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."sntp-1.0.9"
+      (sources."sort-keys-1.1.2" // {
+        dependencies = [
+          sources."is-plain-obj-1.1.0"
+        ];
+      })
+      sources."sort-keys-length-1.0.1"
       sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
-      sources."sparkles-1.0.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.5"
       sources."split-string-3.1.0"
-      (sources."sshpk-1.16.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."split2-1.1.1"
+      sources."sprintf-js-1.0.3"
+      sources."stack-generator-2.0.5"
+      sources."stack-trace-0.0.10"
+      sources."stackframe-1.2.0"
       (sources."static-extend-0.1.2" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -70039,377 +74008,190 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."stream-consume-0.1.1"
-      sources."stream-shift-1.0.1"
-      sources."string_decoder-0.10.31"
-      sources."stringstream-0.0.6"
-      sources."strip-ansi-3.0.1"
-      sources."strip-bom-1.0.0"
-      sources."strip-bom-string-1.0.0"
-      sources."supports-color-2.0.0"
-      sources."through2-0.6.5"
-      (sources."through2-filter-3.0.0" // {
+      (sources."static-server-2.2.1" // {
         dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
+          sources."ansi-regex-0.2.1"
+          sources."ansi-styles-1.1.0"
+          sources."chalk-0.5.1"
+          sources."escape-string-regexp-1.0.5"
+          sources."strip-ansi-0.3.0"
+          sources."supports-color-0.2.0"
         ];
       })
-      sources."tildify-1.2.0"
-      sources."time-stamp-1.1.0"
-      sources."timers-ext-0.1.7"
-      sources."to-absolute-glob-2.0.2"
-      (sources."to-object-path-0.3.0" // {
+      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.prototype.trimend-1.0.1"
+      sources."string.prototype.trimstart-1.0.1"
+      (sources."string_decoder-1.1.1" // {
         dependencies = [
-          sources."kind-of-3.2.2"
+          sources."safe-buffer-5.1.2"
         ];
       })
-      sources."to-regex-3.0.2"
-      sources."to-regex-range-2.1.1"
-      (sources."to-through-2.0.0" // {
+      (sources."strip-ansi-6.0.0" // {
         dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
+          sources."ansi-regex-5.0.0"
         ];
       })
-      sources."tough-cookie-2.3.4"
-      sources."tunnel-agent-0.6.0"
-      sources."tweetnacl-0.14.5"
-      sources."type-1.2.0"
-      sources."typescript-3.9.5"
-      sources."uglify-js-3.10.0"
-      sources."uglify-to-browserify-1.0.2"
-      sources."unc-path-regex-0.1.2"
-      sources."union-value-1.0.1"
-      sources."unique-stream-1.0.0"
-      (sources."unset-value-1.0.0" // {
+      sources."strip-ansi-control-characters-2.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" // {
         dependencies = [
-          (sources."has-value-0.3.1" // {
+          sources."escape-string-regexp-1.0.5"
+        ];
+      })
+      sources."supports-color-7.2.0"
+      (sources."supports-hyperlinks-1.0.1" // {
+        dependencies = [
+          sources."has-flag-2.0.0"
+          (sources."supports-color-5.5.0" // {
             dependencies = [
-              sources."isobject-2.1.0"
+              sources."has-flag-3.0.0"
             ];
           })
-          sources."has-values-0.1.4"
         ];
       })
-      sources."urix-0.1.0"
-      sources."use-3.1.1"
-      sources."user-home-1.1.1"
-      sources."util-deprecate-1.0.2"
-      sources."uuid-3.4.0"
-      sources."v8flags-2.1.1"
-      sources."value-or-function-3.0.0"
-      (sources."verror-1.10.0" // {
+      sources."tar-stream-2.1.3"
+      sources."temp-dir-1.0.0"
+      (sources."tempy-0.3.0" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."crypto-random-string-1.0.0"
+          sources."type-fest-0.3.1"
+          sources."unique-string-1.0.0"
         ];
       })
-      (sources."vinyl-0.4.6" // {
+      sources."term-size-2.2.0"
+      sources."text-hex-1.0.0"
+      sources."through-2.3.8"
+      (sources."through2-2.0.5" // {
         dependencies = [
-          sources."clone-0.2.0"
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
         ];
       })
-      sources."vinyl-fs-0.3.14"
-      (sources."vinyl-sourcemap-1.1.0" // {
+      sources."through2-filter-3.0.0"
+      sources."through2-map-3.0.0"
+      sources."time-zone-1.0.0"
+      sources."timed-out-4.0.1"
+      sources."tmp-0.0.33"
+      sources."to-buffer-1.1.1"
+      (sources."to-object-path-0.3.0" // {
         dependencies = [
-          sources."clone-2.1.2"
-          sources."clone-stats-1.0.0"
-          sources."graceful-fs-4.2.4"
-          sources."vinyl-2.2.0"
+          sources."kind-of-3.2.2"
         ];
       })
-      sources."vinyl-sourcemaps-apply-0.2.1"
-      sources."when-3.7.8"
-      sources."which-1.3.1"
-      sources."window-size-0.1.0"
-      sources."wordwrap-0.0.2"
-      sources."wrappy-1.0.2"
-      sources."xtend-4.0.2"
-      sources."yargs-3.10.0"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "[![GoDoc](https://godoc.org/github.com/bakape/meguca?status.svg)](https://godoc.org/github.com/bakape/meguca) [![Build Status](https://travis-ci.org/bakape/meguca.svg?branch=master)](https://travis-ci.org/bakape/meguca)";
-      homepage = "https://github.com/bakape/meguca#readme";
-      license = "AGPL-3.0";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  mocha = nodeEnv.buildNodePackage {
-    name = "mocha";
-    packageName = "mocha";
-    version = "8.0.1";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mocha/-/mocha-8.0.1.tgz";
-      sha512 = "vefaXfdYI8+Yo8nPZQQi0QO2o+5q9UIMX1jZ1XMmK3+4+CQjc7+B0hPdUeglXiTlr8IHMVRo63IhO9Mzt6fxOg==";
-    };
-    dependencies = [
-      sources."ansi-colors-4.1.1"
-      sources."ansi-regex-3.0.0"
-      sources."ansi-styles-3.2.1"
-      sources."anymatch-3.1.1"
-      sources."argparse-1.0.10"
-      sources."array.prototype.map-1.0.2"
-      sources."balanced-match-1.0.0"
-      sources."binary-extensions-2.1.0"
-      sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
-      sources."browser-stdout-1.3.1"
-      sources."camelcase-5.3.1"
-      (sources."chalk-2.4.2" // {
+      sources."to-readable-stream-2.1.0"
+      sources."to-regex-3.0.2"
+      sources."to-regex-range-2.1.1"
+      sources."toidentifier-1.0.0"
+      sources."toml-3.0.0"
+      sources."tomlify-j0.4-3.0.0"
+      sources."treeify-1.1.0"
+      (sources."trim-repeated-1.0.0" // {
         dependencies = [
-          sources."supports-color-5.5.0"
+          sources."escape-string-regexp-1.0.5"
         ];
       })
-      sources."chokidar-3.3.1"
-      (sources."cliui-5.0.0" // {
+      sources."triple-beam-1.3.0"
+      sources."tslib-1.13.0"
+      sources."tsutils-3.17.1"
+      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.7"
+      sources."uid-safe-2.1.5"
+      sources."unbzip2-stream-1.4.3"
+      sources."union-value-1.0.1"
+      sources."uniq-1.0.1"
+      sources."unique-string-2.0.0"
+      sources."universal-user-agent-4.0.1"
+      sources."universalify-1.0.0"
+      (sources."unixify-1.0.0" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
+          sources."normalize-path-2.1.1"
         ];
       })
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
-      sources."concat-map-0.0.1"
-      sources."debug-3.2.6"
-      sources."decamelize-1.2.0"
-      sources."define-properties-1.1.3"
-      sources."diff-4.0.2"
-      sources."emoji-regex-7.0.3"
-      sources."es-abstract-1.17.6"
-      sources."es-array-method-boxes-properly-1.0.0"
-      sources."es-get-iterator-1.1.0"
-      sources."es-to-primitive-1.2.1"
-      sources."escape-string-regexp-1.0.5"
-      sources."esprima-4.0.1"
-      sources."fill-range-7.0.1"
-      sources."find-up-4.1.0"
-      sources."flat-4.1.0"
-      sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.3"
-      sources."function-bind-1.1.1"
-      sources."get-caller-file-2.0.5"
-      sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
-      sources."growl-1.10.5"
-      sources."has-1.0.3"
-      sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.1"
-      sources."he-1.2.0"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      sources."is-arguments-1.0.4"
-      sources."is-binary-path-2.1.0"
-      sources."is-buffer-2.0.4"
-      sources."is-callable-1.2.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-map-2.0.1"
-      sources."is-number-7.0.0"
-      sources."is-regex-1.1.0"
-      sources."is-set-2.0.1"
-      sources."is-string-1.0.5"
-      sources."is-symbol-1.0.3"
-      sources."isarray-2.0.5"
-      sources."isexe-2.0.0"
-      sources."iterate-iterator-1.0.1"
-      sources."iterate-value-1.0.2"
-      sources."js-yaml-3.13.1"
-      sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
-      sources."log-symbols-3.0.0"
-      sources."minimatch-3.0.4"
-      sources."ms-2.1.2"
-      sources."normalize-path-3.0.0"
-      sources."object-inspect-1.8.0"
-      sources."object-keys-1.1.1"
-      sources."object.assign-4.1.0"
-      sources."once-1.4.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."path-is-absolute-1.0.1"
-      sources."picomatch-2.2.2"
-      sources."promise.allsettled-1.0.2"
-      sources."readdirp-3.3.0"
-      sources."require-directory-2.1.1"
-      sources."require-main-filename-2.0.0"
-      sources."serialize-javascript-3.0.0"
-      sources."set-blocking-2.0.0"
-      sources."sprintf-js-1.0.3"
-      sources."string-width-2.1.1"
-      sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimstart-1.0.1"
-      sources."strip-ansi-4.0.0"
-      sources."strip-json-comments-3.0.1"
-      (sources."supports-color-7.1.0" // {
+      sources."unpipe-1.0.0"
+      (sources."unset-value-1.0.0" // {
         dependencies = [
-          sources."has-flag-4.0.0"
+          (sources."has-value-0.3.1" // {
+            dependencies = [
+              sources."isobject-2.1.0"
+            ];
+          })
+          sources."has-values-0.1.4"
         ];
       })
-      sources."to-regex-range-5.0.1"
-      sources."which-2.0.2"
-      sources."which-module-2.0.0"
-      sources."wide-align-1.1.3"
-      sources."workerpool-6.0.0"
-      (sources."wrap-ansi-5.1.0" // {
+      (sources."update-notifier-4.1.1" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
+          sources."chalk-3.0.0"
         ];
       })
-      sources."wrappy-1.0.2"
-      sources."y18n-4.0.0"
-      (sources."yargs-13.3.2" // {
+      sources."urix-0.1.0"
+      sources."url-0.10.3"
+      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"
+      sources."util.promisify-1.0.1"
+      sources."utils-merge-1.0.1"
+      sources."uuid-8.3.0"
+      sources."validate-npm-package-license-3.0.4"
+      sources."validate-npm-package-name-3.0.0"
+      sources."vary-1.1.2"
+      (sources."wait-port-0.2.9" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."find-up-3.0.0"
-          sources."locate-path-3.0.0"
-          sources."p-locate-3.0.0"
-          sources."path-exists-3.0.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
+          sources."commander-3.0.2"
         ];
       })
-      sources."yargs-parser-13.1.2"
-      sources."yargs-unparser-1.6.0"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "simple, flexible, fun test framework";
-      homepage = https://mochajs.org/;
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  multi-file-swagger = nodeEnv.buildNodePackage {
-    name = "multi-file-swagger";
-    packageName = "multi-file-swagger";
-    version = "2.3.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/multi-file-swagger/-/multi-file-swagger-2.3.0.tgz";
-      sha512 = "kiGLOSzovuYddOePdYicu/jkIjvlNgvq/bP/0C0+oiPBIuiJWLS1vXPvnU2OowRQPi/Hxnp0HuRI5/7s7qu8Qg==";
-    };
-    dependencies = [
-      sources."argparse-1.0.10"
-      sources."asynckit-0.4.0"
-      sources."combined-stream-1.0.8"
-      sources."commander-2.20.3"
-      sources."component-emitter-1.3.0"
-      sources."cookiejar-2.1.2"
-      sources."core-util-is-1.0.2"
-      sources."debug-3.2.6"
-      sources."delayed-stream-1.0.0"
-      sources."esprima-4.0.1"
-      sources."extend-3.0.2"
-      sources."form-data-2.5.1"
-      sources."formidable-1.2.2"
-      sources."graphlib-2.1.8"
-      sources."inherits-2.0.4"
-      sources."isarray-1.0.0"
-      sources."js-yaml-3.14.0"
-      (sources."json-refs-3.0.15" // {
+      sources."wcwidth-1.0.1"
+      sources."well-known-symbols-2.0.0"
+      sources."which-2.0.2"
+      sources."which-module-2.0.0"
+      sources."widest-line-3.1.0"
+      (sources."windows-release-3.3.3" // {
         dependencies = [
-          sources."commander-4.1.1"
+          sources."execa-1.0.0"
+          sources."get-stream-4.1.0"
+        ];
+      })
+      (sources."winston-3.3.3" // {
+        dependencies = [
+          sources."is-stream-2.0.0"
         ];
       })
-      sources."lodash-4.17.15"
-      sources."methods-1.1.2"
-      sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
-      sources."ms-2.1.2"
-      sources."native-promise-only-0.8.1"
-      sources."path-loader-1.0.10"
-      sources."process-nextick-args-2.0.1"
-      sources."punycode-2.1.1"
-      sources."qs-6.9.4"
-      sources."readable-stream-2.3.7"
-      sources."safe-buffer-5.1.2"
-      sources."slash-3.0.0"
-      sources."sprintf-js-1.0.3"
-      sources."string_decoder-1.1.1"
-      sources."superagent-3.8.3"
-      sources."uri-js-4.2.2"
-      sources."util-deprecate-1.0.2"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "Multi-file Swagger example";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  neovim = nodeEnv.buildNodePackage {
-    name = "neovim";
-    packageName = "neovim";
-    version = "4.9.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/neovim/-/neovim-4.9.0.tgz";
-      sha512 = "48hDy0Dheo5qFF+cwhj7qaWoXfbiKOQ0CLNE0/aiA41rhn/Z1m0OKQqlp9SqbSMr/PnY5QdiLdbs0xh2UudEfA==";
-    };
-    dependencies = [
-      sources."@msgpack/msgpack-1.12.2"
-      sources."async-2.6.3"
-      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.4.0"
-      sources."colorspace-1.1.2"
-      sources."core-util-is-1.0.2"
-      sources."diagnostics-1.1.1"
-      sources."enabled-1.0.2"
-      sources."env-variable-0.0.6"
-      sources."fast-safe-stringify-2.0.7"
-      sources."fecha-4.2.0"
-      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.15"
-      sources."lodash.defaults-4.2.0"
-      sources."lodash.omit-4.5.0"
-      sources."logform-2.2.0"
-      sources."ms-2.1.2"
-      sources."one-time-0.0.4"
-      sources."process-nextick-args-2.0.1"
-      sources."readable-stream-3.6.0"
-      sources."safe-buffer-5.2.1"
-      sources."semver-7.3.2"
-      sources."simple-swizzle-0.2.2"
-      sources."stack-trace-0.0.10"
-      sources."string_decoder-1.3.0"
-      sources."text-hex-1.0.0"
-      sources."triple-beam-1.3.0"
-      sources."util-deprecate-1.0.2"
-      sources."winston-3.2.1"
       (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
         ];
       })
+      sources."word-wrap-1.2.3"
+      sources."wrap-ansi-6.2.0"
+      sources."wrappy-1.0.2"
+      sources."write-file-atomic-3.0.3"
+      sources."xdg-basedir-4.0.0"
+      sources."xml2js-0.4.19"
+      sources."xmlbuilder-9.0.7"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.0"
+      sources."yargs-15.4.1"
+      sources."yargs-parser-18.1.3"
+      sources."yarn-1.22.5"
+      sources."yauzl-2.10.0"
+      sources."zip-stream-3.0.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
-      description = "Neovim client API and neovim remote plugin provider";
-      homepage = https://github.com/neovim/node-client;
+      description = "Netlify command line tool";
+      homepage = https://github.com/netlify/cli;
       license = "MIT";
     };
     production = true;
@@ -70441,14 +74223,14 @@ in
   node-gyp = nodeEnv.buildNodePackage {
     name = "node-gyp";
     packageName = "node-gyp";
-    version = "7.0.0";
+    version = "7.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-7.0.0.tgz";
-      sha512 = "ZW34qA3CJSPKDz2SJBHKRvyNQN0yWO5EGKKksJc+jElu9VA468gwJTyTArC1iOXU7rN3Wtfg/CMt/dBAOFIjvg==";
+      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.0.tgz";
+      sha512 = "rjlHQlnl1dqiDZxZYiKqQdrjias7V+81OVR5PTzZioCBtWkNdrKy06M05HLKxy/pcKikKRCabeDRoZaEc6nIjw==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ansi-regex-2.1.1"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
@@ -70456,7 +74238,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
@@ -70485,7 +74267,7 @@ in
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-unicode-2.0.1"
       sources."http-signature-1.2.0"
       sources."inflight-1.0.6"
@@ -70504,7 +74286,7 @@ in
       sources."mime-types-2.1.27"
       sources."minimatch-3.0.4"
       sources."minipass-3.1.3"
-      sources."minizlib-2.1.0"
+      sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."nopt-4.0.3"
       sources."npmlog-4.1.2"
@@ -70533,11 +74315,11 @@ in
       sources."string-width-1.0.2"
       sources."string_decoder-1.1.1"
       sources."strip-ansi-3.0.1"
-      sources."tar-6.0.2"
+      sources."tar-6.0.5"
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
@@ -70559,10 +74341,10 @@ in
   node-gyp-build = nodeEnv.buildNodePackage {
     name = "node-gyp-build";
     packageName = "node-gyp-build";
-    version = "4.2.2";
+    version = "4.2.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.2.tgz";
-      sha512 = "Lqh7mrByWCM8Cf9UPqpeoVBBo5Ugx+RKu885GAzmLBVYjeywScxHXPGLa4JfYNZmcNGwzR0Glu5/9GaQZMFqyA==";
+      url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz";
+      sha512 = "MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -70597,7 +74379,7 @@ in
       sources."async-0.9.2"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.6.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."base64-js-0.0.8"
       sources."bcrypt-pbkdf-1.0.2"
@@ -70911,7 +74693,7 @@ in
       sources."minizlib-1.3.3"
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
-      sources."needle-2.5.0"
+      sources."needle-2.5.2"
       sources."nopt-4.0.3"
       sources."npm-bundled-1.1.1"
       sources."npm-normalize-package-bin-1.0.1"
@@ -70957,19 +74739,20 @@ in
   node-red = nodeEnv.buildNodePackage {
     name = "node-red";
     packageName = "node-red";
-    version = "1.0.6";
+    version = "1.1.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-red/-/node-red-1.0.6.tgz";
-      sha512 = "5K7LKdy232xLSHMo3ZprAEHbLilszSD/qQkt+9PxByJnEMACeHJ7SH4Gpt/1FX+K75gHHNtlnHsWwpQ53lggEA==";
+      url = "https://registry.npmjs.org/node-red/-/node-red-1.1.3.tgz";
+      sha512 = "U+bxzyjB66dwIm0DZwvCqy34A6CJICro8xNNbMqA8GWnNrY6/ZGuUrmNuApsH3n8stkOPB4CozdR9JpEXTqbtw==";
     };
     dependencies = [
-      sources."@babel/runtime-7.10.3"
-      sources."@node-red/editor-api-1.0.6"
-      sources."@node-red/editor-client-1.0.6"
-      (sources."@node-red/nodes-1.0.6" // {
+      sources."@babel/runtime-7.11.2"
+      sources."@node-red/editor-api-1.1.3"
+      sources."@node-red/editor-client-1.1.3"
+      (sources."@node-red/nodes-1.1.3" // {
         dependencies = [
+          sources."cookie-0.4.1"
           sources."http-errors-1.7.3"
-          sources."iconv-lite-0.5.1"
+          sources."iconv-lite-0.6.2"
           sources."inherits-2.0.4"
           sources."media-typer-1.1.0"
           (sources."raw-body-2.4.1" // {
@@ -70979,18 +74762,18 @@ in
           })
         ];
       })
-      sources."@node-red/registry-1.0.6"
-      sources."@node-red/runtime-1.0.6"
-      sources."@node-red/util-1.0.6"
+      sources."@node-red/registry-1.1.3"
+      sources."@node-red/runtime-1.1.3"
+      sources."@node-red/util-1.1.3"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
-      (sources."agent-base-6.0.0" // {
+      (sources."agent-base-6.0.1" // {
         dependencies = [
           sources."debug-4.2.0"
           sources."ms-2.1.2"
         ];
       })
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.3"
       sources."ansi-regex-2.1.1"
       sources."append-field-1.0.0"
       sources."aproba-1.2.0"
@@ -71009,17 +74792,24 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
+      sources."axios-0.19.2"
       sources."balanced-match-1.0.0"
       (sources."basic-auth-2.0.1" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
         ];
       })
-      sources."bcrypt-3.0.6"
+      (sources."bcrypt-3.0.6" // {
+        dependencies = [
+          sources."nan-2.13.2"
+          sources."node-pre-gyp-0.12.0"
+          sources."semver-5.7.1"
+        ];
+      })
       sources."bcrypt-pbkdf-1.0.2"
       sources."bcryptjs-2.4.3"
-      (sources."bl-1.2.2" // {
+      (sources."bl-1.2.3" // {
         dependencies = [
           (sources."readable-stream-2.3.7" // {
             dependencies = [
@@ -71055,10 +74845,11 @@ in
       sources."caseless-0.12.0"
       sources."cheerio-0.22.0"
       sources."chownr-1.1.4"
+      sources."cli-table-0.3.1"
       sources."clone-2.1.2"
       sources."code-point-at-1.1.0"
+      sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
-      sources."commander-2.20.3"
       sources."commist-1.1.0"
       sources."concat-map-0.0.1"
       (sources."concat-stream-1.6.2" // {
@@ -71134,14 +74925,14 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      (sources."express-session-1.17.0" // {
+      (sources."express-session-1.17.1" // {
         dependencies = [
           sources."depd-2.0.0"
         ];
       })
       (sources."ext-1.4.0" // {
         dependencies = [
-          sources."type-2.0.0"
+          sources."type-2.1.0"
         ];
       })
       sources."extend-3.0.2"
@@ -71149,6 +74940,11 @@ 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.5.10" // {
+        dependencies = [
+          sources."debug-3.1.0"
+        ];
+      })
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."forwarded-0.1.2"
@@ -71170,7 +74966,7 @@ in
       })
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-unicode-2.0.1"
       sources."hash-sum-2.0.0"
       sources."help-me-1.1.0"
@@ -71202,7 +74998,7 @@ in
       sources."is-windows-1.0.2"
       sources."isarray-1.0.0"
       sources."isstream-0.1.2"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
@@ -71214,6 +75010,7 @@ in
       sources."leven-2.1.0"
       sources."lodash.assignin-4.2.0"
       sources."lodash.bind-4.2.1"
+      sources."lodash.clonedeep-4.5.0"
       sources."lodash.defaults-4.2.0"
       sources."lodash.filter-4.6.0"
       sources."lodash.flatten-4.4.0"
@@ -71233,7 +75030,7 @@ in
       })
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
-      sources."mime-2.4.4"
+      sources."mime-2.4.6"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."minimatch-3.0.4"
@@ -71258,8 +75055,9 @@ in
       sources."ms-2.0.0"
       sources."multer-1.4.2"
       sources."mustache-4.0.1"
-      sources."nan-2.13.2"
-      (sources."needle-2.5.0" // {
+      sources."mute-stream-0.0.8"
+      sources."nan-2.14.0"
+      (sources."needle-2.5.2" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."ms-2.1.2"
@@ -71267,11 +75065,16 @@ in
       })
       sources."negotiator-0.6.2"
       sources."next-tick-1.0.0"
-      (sources."node-pre-gyp-0.12.0" // {
+      (sources."node-pre-gyp-0.14.0" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
+      (sources."node-red-admin-0.2.6" // {
+        dependencies = [
+          sources."bcrypt-3.0.8"
+        ];
+      })
       sources."node-red-node-rbe-0.2.9"
       sources."node-red-node-tail-0.1.1"
       sources."nopt-4.0.3"
@@ -71323,8 +75126,9 @@ in
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
       sources."rc-1.2.8"
+      sources."read-1.0.7"
       sources."readable-stream-3.6.0"
-      sources."regenerator-runtime-0.13.5"
+      sources."regenerator-runtime-0.13.7"
       sources."reinterval-1.1.0"
       sources."remove-trailing-separator-1.1.0"
       (sources."request-2.88.0" // {
@@ -71348,7 +75152,6 @@ in
       sources."set-blocking-2.0.0"
       sources."setprototypeof-1.1.1"
       sources."signal-exit-3.0.3"
-      sources."source-map-0.6.1"
       sources."split2-2.2.0"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
@@ -71385,7 +75188,7 @@ in
       sources."type-1.2.0"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.8.1"
+      sources."uglify-js-3.10.0"
       sources."uid-safe-2.1.5"
       sources."uid2-0.0.3"
       sources."ultron-1.1.1"
@@ -71393,7 +75196,7 @@ in
       sources."unique-stream-2.3.1"
       sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
@@ -71447,7 +75250,7 @@ in
     };
     dependencies = [
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ansi-regex-2.1.1"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
@@ -71455,7 +75258,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
@@ -71501,7 +75304,7 @@ in
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-unicode-2.0.1"
       sources."hosted-git-info-2.8.8"
       sources."http-signature-1.2.0"
@@ -71523,7 +75326,7 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-3.1.3"
-      sources."minizlib-2.1.0"
+      sources."minizlib-2.1.2"
       sources."mkdirp-0.5.5"
       sources."ncp-0.4.2"
       sources."nijs-0.0.25"
@@ -71595,7 +75398,7 @@ in
         ];
       })
       sources."strip-ansi-3.0.1"
-      (sources."tar-6.0.2" // {
+      (sources."tar-6.0.5" // {
         dependencies = [
           sources."mkdirp-1.0.4"
         ];
@@ -71606,7 +75409,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."typedarray-0.0.6"
       sources."uid-number-0.0.5"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."validate-npm-package-license-3.0.4"
@@ -71655,7 +75458,7 @@ in
       sources."braces-3.0.2"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
@@ -71663,12 +75466,12 @@ in
       (sources."chalk-3.0.0" // {
         dependencies = [
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
-      sources."chokidar-3.4.0"
+      sources."chokidar-3.4.2"
       sources."ci-info-2.0.0"
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       sources."clone-response-1.0.2"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
@@ -71740,7 +75543,7 @@ in
       sources."pupa-2.0.1"
       sources."rc-1.2.8"
       sources."readdirp-3.4.0"
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       sources."responselike-1.0.2"
       sources."semver-5.7.1"
@@ -71774,7 +75577,7 @@ in
         ];
       })
       sources."unique-string-2.0.0"
-      sources."update-notifier-4.1.0"
+      sources."update-notifier-4.1.1"
       sources."url-parse-lax-3.0.0"
       sources."widest-line-3.1.0"
       sources."wrappy-1.0.2"
@@ -71794,10 +75597,10 @@ in
   npm = nodeEnv.buildNodePackage {
     name = "npm";
     packageName = "npm";
-    version = "6.14.5";
+    version = "6.14.8";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm/-/npm-6.14.5.tgz";
-      sha512 = "CDwa3FJd0XJpKDbWCST484H+mCNjF26dPrU+xnREW+upR0UODjMEfXPl3bxWuAwZIX6c2ASg1plLO7jP8ehWeA==";
+      url = "https://registry.npmjs.org/npm/-/npm-6.14.8.tgz";
+      sha512 = "HBZVBMYs5blsj94GTeQZel7s9odVuuSUHy1+AlZh7rPVux1os2ashvEGLy/STNK7vUjbrCg5Kq9/GXisJgdf6A==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -71812,27 +75615,27 @@ in
   npm-check-updates = nodeEnv.buildNodePackage {
     name = "npm-check-updates";
     packageName = "npm-check-updates";
-    version = "7.0.1";
+    version = "8.0.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-7.0.1.tgz";
-      sha512 = "z/i1nhxW1OJ2a8wZtm92PS+4vCZ5Y5d86pLDPJScWf8G3vTYJlxd11UqUymnaZWK2nYPMmgxnneAKnFGODDxjw==";
+      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-8.0.5.tgz";
+      sha512 = "EZ3DIFvKFNZzwV9OdEYITTAY6fmuD7evItEmf9XyntG4p29n8JpFaGrf9uCQIR0Hx3G5RFNsdCeURHzF6YXIAw==";
     };
     dependencies = [
-      sources."@npmcli/ci-detect-1.2.0"
-      sources."@npmcli/git-2.0.2"
+      sources."@npmcli/ci-detect-1.3.0"
+      sources."@npmcli/git-2.0.4"
       sources."@npmcli/installed-package-contents-1.0.5"
       sources."@npmcli/move-file-1.0.1"
       sources."@npmcli/promise-spawn-1.2.0"
-      sources."@npmcli/run-script-1.3.1"
+      sources."@npmcli/run-script-1.5.0"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@tootallnate/once-1.1.2"
       sources."@types/color-name-1.1.1"
       sources."abbrev-1.1.1"
-      sources."agent-base-6.0.0"
+      sources."agent-base-6.0.1"
       sources."agentkeepalive-4.1.3"
-      sources."aggregate-error-3.0.1"
-      sources."ajv-6.12.2"
+      sources."aggregate-error-3.1.0"
+      sources."ajv-6.12.4"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -71851,7 +75654,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       (sources."boxen-4.2.0" // {
@@ -71866,10 +75669,10 @@ in
       })
       sources."brace-expansion-1.1.11"
       sources."builtins-1.0.3"
-      sources."cacache-15.0.4"
+      sources."cacache-15.0.5"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
@@ -71880,7 +75683,7 @@ in
       sources."ci-info-2.0.0"
       sources."cint-8.2.1"
       sources."clean-stack-2.2.0"
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-table-0.3.1"
       sources."clone-response-1.0.2"
       sources."code-point-at-1.1.0"
@@ -71888,7 +75691,7 @@ in
       sources."color-name-1.1.4"
       sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
-      sources."commander-5.1.0"
+      sources."commander-6.1.0"
       sources."concat-map-0.0.1"
       sources."configstore-5.0.1"
       sources."console-control-strings-1.1.0"
@@ -71908,7 +75711,7 @@ in
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."emoji-regex-7.0.3"
-      sources."encoding-0.1.12"
+      sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
       sources."env-paths-2.2.0"
       sources."err-code-1.1.2"
@@ -71919,7 +75722,7 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."figgy-pudding-3.5.2"
-      sources."find-up-4.1.0"
+      sources."find-up-5.0.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."fs-minipass-2.1.0"
@@ -71933,17 +75736,17 @@ in
       sources."got-9.6.0"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-4.0.0"
       sources."has-unicode-2.0.1"
       sources."has-yarn-2.1.0"
-      sources."hosted-git-info-3.0.4"
+      sources."hosted-git-info-3.0.5"
       sources."http-cache-semantics-4.1.0"
       sources."http-proxy-agent-4.0.1"
       sources."http-signature-1.2.0"
       sources."https-proxy-agent-5.0.0"
       sources."humanize-ms-1.2.1"
-      sources."iconv-lite-0.4.24"
+      sources."iconv-lite-0.6.2"
       sources."ignore-walk-3.0.3"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
@@ -71969,12 +75772,13 @@ in
       sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
-      sources."json-parse-even-better-errors-2.2.0"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."json-parse-helpfulerror-1.0.3"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."json5-2.1.3"
+      sources."jsonlines-0.1.1"
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
       sources."keyv-3.1.0"
@@ -71984,49 +75788,45 @@ in
         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."path-exists-3.0.0"
         ];
       })
-      sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
+      sources."locate-path-6.0.0"
+      sources."lodash-4.17.20"
       sources."lowercase-keys-1.0.1"
-      sources."lru-cache-5.1.1"
+      sources."lru-cache-6.0.0"
       (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."make-fetch-happen-8.0.7"
+      sources."make-fetch-happen-8.0.9"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      (sources."minipass-3.1.3" // {
-        dependencies = [
-          sources."yallist-4.0.0"
-        ];
-      })
+      sources."minipass-3.1.3"
       sources."minipass-collect-1.0.2"
-      (sources."minipass-fetch-1.2.1" // {
+      (sources."minipass-fetch-1.3.1" // {
         dependencies = [
-          sources."minizlib-2.1.0"
-          sources."yallist-4.0.0"
+          sources."minizlib-2.1.2"
         ];
       })
       sources."minipass-flush-1.0.5"
       sources."minipass-json-stream-1.0.1"
-      sources."minipass-pipeline-1.2.3"
+      sources."minipass-pipeline-1.2.4"
       sources."minipass-sized-1.0.3"
       (sources."minizlib-1.3.3" // {
         dependencies = [
           sources."minipass-2.9.0"
+          sources."yallist-3.1.1"
         ];
       })
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
-      sources."nested-error-stacks-2.0.1"
       (sources."node-gyp-6.1.0" // {
         dependencies = [
           sources."chownr-1.1.4"
@@ -72037,6 +75837,7 @@ in
           sources."semver-5.7.1"
           sources."tar-4.4.13"
           sources."which-1.3.1"
+          sources."yallist-3.1.1"
         ];
       })
       sources."nopt-4.0.3"
@@ -72047,10 +75848,9 @@ in
       sources."npm-package-arg-8.0.1"
       sources."npm-packlist-2.1.2"
       sources."npm-pick-manifest-6.1.0"
-      (sources."npm-registry-fetch-8.1.0" // {
+      (sources."npm-registry-fetch-8.1.4" // {
         dependencies = [
-          sources."minizlib-2.1.0"
-          sources."yallist-4.0.0"
+          sources."minizlib-2.1.2"
         ];
       })
       sources."npmlog-4.1.2"
@@ -72062,8 +75862,8 @@ in
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
       sources."p-cancelable-1.1.0"
-      sources."p-limit-2.3.0"
-      sources."p-locate-4.1.0"
+      sources."p-limit-3.0.2"
+      sources."p-locate-5.0.0"
       sources."p-map-4.0.0"
       sources."p-try-2.2.0"
       (sources."package-json-6.5.0" // {
@@ -72071,10 +75871,10 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."pacote-11.1.10"
+      sources."pacote-11.1.11"
+      sources."parse-github-url-1.0.2"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
       sources."performance-now-2.1.0"
       sources."prepend-http-2.0.0"
       sources."process-nextick-args-2.0.1"
@@ -72089,15 +75889,14 @@ in
       sources."qs-6.5.2"
       sources."rc-1.2.8"
       sources."rc-config-loader-3.0.0"
-      sources."read-package-json-fast-1.1.3"
+      sources."read-package-json-fast-1.2.1"
       sources."readable-stream-2.3.7"
       sources."readdir-scoped-modules-1.1.0"
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
+      sources."remote-git-tags-3.0.0"
       sources."request-2.88.2"
       sources."require-from-string-2.0.2"
-      sources."requireg-0.2.2"
-      sources."resolve-1.7.1"
       sources."responselike-1.0.2"
       sources."retry-0.10.1"
       sources."rimraf-3.0.2"
@@ -72114,9 +75913,9 @@ in
       sources."signal-exit-3.0.3"
       sources."sisteransi-1.0.5"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.4.1"
+      sources."socks-2.4.2"
       sources."socks-proxy-agent-5.0.0"
-      sources."spawn-please-0.3.0"
+      sources."spawn-please-0.4.1"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
       sources."ssri-8.0.0"
@@ -72124,11 +75923,10 @@ in
       sources."string_decoder-1.1.1"
       sources."strip-ansi-3.0.1"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-7.1.0"
-      (sources."tar-6.0.2" // {
+      sources."supports-color-7.2.0"
+      (sources."tar-6.0.5" // {
         dependencies = [
-          sources."minizlib-2.1.0"
-          sources."yallist-4.0.0"
+          sources."minizlib-2.1.2"
         ];
       })
       sources."term-size-2.2.0"
@@ -72141,12 +75939,12 @@ in
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
       sources."unique-string-2.0.0"
-      (sources."update-notifier-4.1.0" // {
+      (sources."update-notifier-4.1.1" // {
         dependencies = [
           sources."chalk-3.0.0"
         ];
       })
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."url-parse-lax-3.0.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
@@ -72166,7 +75964,7 @@ in
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-4.0.0"
-      sources."yallist-3.1.1"
+      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -72189,7 +75987,7 @@ in
     };
     dependencies = [
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ansi-regex-2.1.1"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
@@ -72198,7 +75996,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."block-stream-0.0.9"
@@ -72247,7 +76045,7 @@ in
       sources."glob-7.1.6"
       sources."graceful-fs-2.0.3"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-unicode-2.0.1"
       sources."http-signature-1.2.0"
       sources."inflight-1.0.6"
@@ -72334,7 +76132,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."underscore-1.4.4"
       sources."underscore.string-2.3.3"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
@@ -72402,109 +76200,109 @@ in
       sha512 = "G+iZGGiPEXcRzw0fiRxWYCKxdt/F7l9a0xkiU4XbcVRJCSlBnioWEwJMutOCCpoQmaQtjB4RBHDGIHN85AIhLQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/compat-data-7.10.3"
-      (sources."@babel/core-7.10.3" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/compat-data-7.11.0"
+      (sources."@babel/core-7.11.5" // {
         dependencies = [
           sources."json5-2.1.3"
-          sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.10.3" // {
-        dependencies = [
-          sources."source-map-0.5.7"
-        ];
-      })
-      sources."@babel/helper-annotate-as-pure-7.10.1"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.3"
-      sources."@babel/helper-builder-react-jsx-7.10.3"
-      sources."@babel/helper-builder-react-jsx-experimental-7.10.1"
-      sources."@babel/helper-compilation-targets-7.10.2"
-      sources."@babel/helper-create-class-features-plugin-7.10.3"
-      sources."@babel/helper-create-regexp-features-plugin-7.10.1"
-      sources."@babel/helper-define-map-7.10.3"
-      sources."@babel/helper-explode-assignable-expression-7.10.3"
-      sources."@babel/helper-function-name-7.10.3"
-      sources."@babel/helper-get-function-arity-7.10.3"
-      sources."@babel/helper-hoist-variables-7.10.3"
-      sources."@babel/helper-member-expression-to-functions-7.10.3"
-      sources."@babel/helper-module-imports-7.10.3"
-      sources."@babel/helper-module-transforms-7.10.1"
-      sources."@babel/helper-optimise-call-expression-7.10.3"
-      sources."@babel/helper-plugin-utils-7.10.3"
-      sources."@babel/helper-regex-7.10.1"
-      sources."@babel/helper-remap-async-to-generator-7.10.3"
-      sources."@babel/helper-replace-supers-7.10.1"
-      sources."@babel/helper-simple-access-7.10.1"
-      sources."@babel/helper-split-export-declaration-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      sources."@babel/helper-wrap-function-7.10.1"
-      sources."@babel/helpers-7.10.1"
-      sources."@babel/highlight-7.10.3"
-      sources."@babel/parser-7.10.3"
-      sources."@babel/plugin-proposal-async-generator-functions-7.10.3"
-      sources."@babel/plugin-proposal-class-properties-7.10.1"
-      sources."@babel/plugin-proposal-dynamic-import-7.10.1"
-      sources."@babel/plugin-proposal-json-strings-7.10.1"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.1"
-      sources."@babel/plugin-proposal-numeric-separator-7.10.1"
-      sources."@babel/plugin-proposal-object-rest-spread-7.10.3"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.10.1"
-      sources."@babel/plugin-proposal-optional-chaining-7.10.3"
-      sources."@babel/plugin-proposal-private-methods-7.10.1"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.10.1"
+      sources."@babel/generator-7.11.5"
+      sources."@babel/helper-annotate-as-pure-7.10.4"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
+      sources."@babel/helper-builder-react-jsx-7.10.4"
+      sources."@babel/helper-builder-react-jsx-experimental-7.11.5"
+      sources."@babel/helper-compilation-targets-7.10.4"
+      sources."@babel/helper-create-class-features-plugin-7.10.5"
+      sources."@babel/helper-create-regexp-features-plugin-7.10.4"
+      sources."@babel/helper-define-map-7.10.5"
+      sources."@babel/helper-explode-assignable-expression-7.11.4"
+      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.11.0"
+      sources."@babel/helper-module-imports-7.10.4"
+      sources."@babel/helper-module-transforms-7.11.0"
+      sources."@babel/helper-optimise-call-expression-7.10.4"
+      sources."@babel/helper-plugin-utils-7.10.4"
+      sources."@babel/helper-regex-7.10.5"
+      sources."@babel/helper-remap-async-to-generator-7.11.4"
+      sources."@babel/helper-replace-supers-7.10.4"
+      sources."@babel/helper-simple-access-7.10.4"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.11.0"
+      sources."@babel/helper-split-export-declaration-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helper-wrap-function-7.10.4"
+      sources."@babel/helpers-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@babel/plugin-proposal-async-generator-functions-7.10.5"
+      sources."@babel/plugin-proposal-class-properties-7.10.4"
+      sources."@babel/plugin-proposal-dynamic-import-7.10.4"
+      sources."@babel/plugin-proposal-export-namespace-from-7.10.4"
+      sources."@babel/plugin-proposal-json-strings-7.10.4"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.11.0"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.4"
+      sources."@babel/plugin-proposal-numeric-separator-7.10.4"
+      sources."@babel/plugin-proposal-object-rest-spread-7.11.0"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.10.4"
+      sources."@babel/plugin-proposal-optional-chaining-7.11.0"
+      sources."@babel/plugin-proposal-private-methods-7.10.4"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.10.4"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
-      sources."@babel/plugin-syntax-class-properties-7.10.1"
+      sources."@babel/plugin-syntax-class-properties-7.10.4"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
-      sources."@babel/plugin-syntax-flow-7.10.1"
+      sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
+      sources."@babel/plugin-syntax-flow-7.10.4"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
-      sources."@babel/plugin-syntax-jsx-7.10.1"
+      sources."@babel/plugin-syntax-jsx-7.10.4"
+      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.1"
+      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.10.1"
-      sources."@babel/plugin-transform-arrow-functions-7.10.1"
-      sources."@babel/plugin-transform-async-to-generator-7.10.1"
-      sources."@babel/plugin-transform-block-scoped-functions-7.10.1"
-      sources."@babel/plugin-transform-block-scoping-7.10.1"
-      sources."@babel/plugin-transform-classes-7.10.3"
-      sources."@babel/plugin-transform-computed-properties-7.10.3"
-      sources."@babel/plugin-transform-destructuring-7.10.1"
-      sources."@babel/plugin-transform-dotall-regex-7.10.1"
-      sources."@babel/plugin-transform-duplicate-keys-7.10.1"
-      sources."@babel/plugin-transform-exponentiation-operator-7.10.1"
-      sources."@babel/plugin-transform-flow-strip-types-7.10.1"
-      sources."@babel/plugin-transform-for-of-7.10.1"
-      sources."@babel/plugin-transform-function-name-7.10.1"
-      sources."@babel/plugin-transform-literals-7.10.1"
-      sources."@babel/plugin-transform-member-expression-literals-7.10.1"
-      sources."@babel/plugin-transform-modules-amd-7.10.1"
-      sources."@babel/plugin-transform-modules-commonjs-7.10.1"
-      sources."@babel/plugin-transform-modules-systemjs-7.10.3"
-      sources."@babel/plugin-transform-modules-umd-7.10.1"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.3"
-      sources."@babel/plugin-transform-new-target-7.10.1"
-      sources."@babel/plugin-transform-object-super-7.10.1"
-      sources."@babel/plugin-transform-parameters-7.10.1"
-      sources."@babel/plugin-transform-property-literals-7.10.1"
-      sources."@babel/plugin-transform-react-jsx-7.10.3"
-      sources."@babel/plugin-transform-regenerator-7.10.3"
-      sources."@babel/plugin-transform-reserved-words-7.10.1"
-      sources."@babel/plugin-transform-shorthand-properties-7.10.1"
-      sources."@babel/plugin-transform-spread-7.10.1"
-      sources."@babel/plugin-transform-sticky-regex-7.10.1"
-      sources."@babel/plugin-transform-template-literals-7.10.3"
-      sources."@babel/plugin-transform-typeof-symbol-7.10.1"
-      sources."@babel/plugin-transform-unicode-escapes-7.10.1"
-      sources."@babel/plugin-transform-unicode-regex-7.10.1"
-      sources."@babel/preset-env-7.10.3"
-      sources."@babel/preset-modules-0.1.3"
-      sources."@babel/runtime-7.10.3"
-      sources."@babel/template-7.10.3"
-      sources."@babel/traverse-7.10.3"
-      sources."@babel/types-7.10.3"
+      sources."@babel/plugin-syntax-top-level-await-7.10.4"
+      sources."@babel/plugin-transform-arrow-functions-7.10.4"
+      sources."@babel/plugin-transform-async-to-generator-7.10.4"
+      sources."@babel/plugin-transform-block-scoped-functions-7.10.4"
+      sources."@babel/plugin-transform-block-scoping-7.11.1"
+      sources."@babel/plugin-transform-classes-7.10.4"
+      sources."@babel/plugin-transform-computed-properties-7.10.4"
+      sources."@babel/plugin-transform-destructuring-7.10.4"
+      sources."@babel/plugin-transform-dotall-regex-7.10.4"
+      sources."@babel/plugin-transform-duplicate-keys-7.10.4"
+      sources."@babel/plugin-transform-exponentiation-operator-7.10.4"
+      sources."@babel/plugin-transform-flow-strip-types-7.10.4"
+      sources."@babel/plugin-transform-for-of-7.10.4"
+      sources."@babel/plugin-transform-function-name-7.10.4"
+      sources."@babel/plugin-transform-literals-7.10.4"
+      sources."@babel/plugin-transform-member-expression-literals-7.10.4"
+      sources."@babel/plugin-transform-modules-amd-7.10.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.10.4"
+      sources."@babel/plugin-transform-modules-systemjs-7.10.5"
+      sources."@babel/plugin-transform-modules-umd-7.10.4"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.4"
+      sources."@babel/plugin-transform-new-target-7.10.4"
+      sources."@babel/plugin-transform-object-super-7.10.4"
+      sources."@babel/plugin-transform-parameters-7.10.5"
+      sources."@babel/plugin-transform-property-literals-7.10.4"
+      sources."@babel/plugin-transform-react-jsx-7.10.4"
+      sources."@babel/plugin-transform-regenerator-7.10.4"
+      sources."@babel/plugin-transform-reserved-words-7.10.4"
+      sources."@babel/plugin-transform-shorthand-properties-7.10.4"
+      sources."@babel/plugin-transform-spread-7.11.0"
+      sources."@babel/plugin-transform-sticky-regex-7.10.4"
+      sources."@babel/plugin-transform-template-literals-7.10.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.10.4"
+      sources."@babel/plugin-transform-unicode-escapes-7.10.4"
+      sources."@babel/plugin-transform-unicode-regex-7.10.4"
+      sources."@babel/preset-env-7.11.5"
+      sources."@babel/preset-modules-0.1.4"
+      sources."@babel/runtime-7.11.2"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.5"
+      sources."@babel/types-7.11.5"
       sources."@iarna/toml-2.2.5"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
@@ -72514,15 +76312,15 @@ in
       sources."@parcel/watcher-1.12.1"
       sources."@parcel/workers-1.11.0"
       sources."@types/q-1.5.4"
-      sources."abab-2.0.3"
-      sources."acorn-7.3.1"
+      sources."abab-2.0.4"
+      sources."acorn-7.4.0"
       (sources."acorn-globals-4.3.4" // {
         dependencies = [
           sources."acorn-6.4.1"
         ];
       })
       sources."acorn-walk-6.2.0"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."alphanum-sort-1.0.2"
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
@@ -72539,7 +76337,7 @@ in
       sources."array-equal-1.0.0"
       sources."array-unique-0.3.2"
       sources."asn1-0.2.4"
-      (sources."asn1.js-4.10.1" // {
+      (sources."asn1.js-5.4.1" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -72557,7 +76355,7 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."babel-plugin-dynamic-import-node-2.3.3"
       (sources."babel-runtime-6.26.0" // {
         dependencies = [
@@ -72580,7 +76378,7 @@ in
       sources."bcrypt-pbkdf-1.0.2"
       sources."binary-extensions-1.13.1"
       sources."bindings-1.5.0"
-      sources."bn.js-5.1.2"
+      sources."bn.js-5.1.3"
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."braces-2.3.2"
@@ -72595,7 +76393,7 @@ in
           sources."bn.js-4.11.9"
         ];
       })
-      (sources."browserify-sign-4.2.0" // {
+      (sources."browserify-sign-4.2.1" // {
         dependencies = [
           sources."readable-stream-3.6.0"
           sources."safe-buffer-5.2.1"
@@ -72606,7 +76404,7 @@ in
           sources."pako-1.0.11"
         ];
       })
-      sources."browserslist-4.12.2"
+      sources."browserslist-4.14.0"
       (sources."buffer-4.9.2" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -72621,9 +76419,8 @@ in
       sources."caller-callsite-2.0.0"
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
-      sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001089"
+      sources."caniuse-lite-1.0.30001123"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
@@ -72631,12 +76428,6 @@ in
       sources."class-utils-0.3.6"
       sources."cli-cursor-2.1.0"
       sources."cli-spinners-1.3.1"
-      (sources."cliui-5.0.0" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."strip-ansi-5.2.0"
-        ];
-      })
       sources."clone-2.1.2"
       sources."coa-2.0.2"
       sources."collection-visit-1.0.0"
@@ -72662,7 +76453,7 @@ in
       })
       sources."core-util-is-1.0.2"
       sources."cosmiconfig-5.2.1"
-      (sources."create-ecdh-4.0.3" // {
+      (sources."create-ecdh-4.0.4" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -72691,7 +76482,7 @@ in
       })
       sources."css-select-2.1.0"
       sources."css-select-base-adapter-0.1.1"
-      sources."css-selector-tokenizer-0.7.2"
+      sources."css-selector-tokenizer-0.7.3"
       sources."css-tree-1.0.0-alpha.37"
       sources."css-what-3.3.0"
       sources."cssesc-3.0.0"
@@ -72713,7 +76504,6 @@ in
       sources."data-urls-1.1.0"
       sources."deasync-0.1.20"
       sources."debug-4.2.0"
-      sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       sources."deep-is-0.1.3"
       (sources."defaults-1.0.3" // {
@@ -72764,16 +76554,15 @@ in
       sources."duplexer2-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.483"
+      sources."electron-to-chromium-1.3.560"
       (sources."elliptic-6.5.3" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
       })
-      sources."emoji-regex-7.0.3"
       sources."encodeurl-1.0.2"
       sources."entities-1.1.2"
-      sources."envinfo-7.5.1"
+      sources."envinfo-7.7.3"
       sources."error-ex-1.3.2"
       (sources."es-abstract-1.17.6" // {
         dependencies = [
@@ -72781,7 +76570,7 @@ in
         ];
       })
       sources."es-to-primitive-1.2.1"
-      sources."escalade-3.0.1"
+      sources."escalade-3.0.2"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
       sources."escodegen-1.9.1"
@@ -72789,7 +76578,7 @@ in
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."etag-1.8.1"
-      sources."events-3.1.0"
+      sources."events-3.2.0"
       sources."evp_bytestokey-1.0.3"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
@@ -72814,7 +76603,6 @@ in
       sources."file-uri-to-path-1.0.0"
       sources."filesize-3.6.1"
       sources."fill-range-4.0.0"
-      sources."find-up-3.0.0"
       sources."for-in-1.0.2"
       sources."foreach-2.0.5"
       sources."forever-agent-0.6.1"
@@ -72825,7 +76613,6 @@ in
       sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
       sources."gensync-1.0.0-beta.1"
-      sources."get-caller-file-2.0.5"
       sources."get-port-3.2.0"
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
@@ -72840,7 +76627,7 @@ in
       sources."graceful-fs-4.2.4"
       sources."grapheme-breaker-0.3.2"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-1.0.3"
       (sources."has-ansi-2.0.0" // {
         dependencies = [
@@ -72869,9 +76656,10 @@ in
       sources."html-comment-regex-1.1.2"
       sources."html-encoding-sniffer-1.0.2"
       sources."html-tags-1.2.0"
-      (sources."htmlnano-0.2.5" // {
+      (sources."htmlnano-0.2.6" // {
         dependencies = [
-          sources."posthtml-0.12.3"
+          sources."posthtml-0.13.3"
+          sources."posthtml-parser-0.5.0"
           sources."terser-4.8.0"
         ];
       })
@@ -72916,13 +76704,12 @@ in
       sources."is-directory-0.3.1"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
       sources."is-html-1.1.0"
       sources."is-number-3.0.0"
       sources."is-obj-2.0.0"
       sources."is-plain-object-2.0.4"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-resolvable-1.1.0"
       sources."is-svg-3.0.0"
       sources."is-symbol-1.0.3"
@@ -72960,8 +76747,7 @@ in
       sources."leven-3.1.0"
       sources."levenary-1.1.1"
       sources."levn-0.3.0"
-      sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.clone-4.5.0"
       sources."lodash.memoize-4.1.2"
       sources."lodash.sortby-4.7.0"
@@ -73024,7 +76810,7 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-releases-1.1.58"
+      sources."node-releases-1.1.60"
       sources."normalize-html-whitespace-1.0.0"
       sources."normalize-path-3.0.0"
       sources."normalize-url-3.3.0"
@@ -73047,18 +76833,14 @@ in
       sources."optionator-0.8.3"
       sources."ora-2.1.0"
       sources."os-browserify-0.3.0"
-      sources."p-limit-2.3.0"
-      sources."p-locate-3.0.0"
-      sources."p-try-2.2.0"
       sources."pako-0.2.9"
-      sources."parse-asn1-5.1.5"
+      sources."parse-asn1-5.1.6"
       sources."parse-json-4.0.0"
       sources."parse5-5.1.0"
       sources."parseurl-1.3.3"
       sources."pascalcase-0.1.1"
       sources."path-browserify-0.0.1"
       sources."path-dirname-1.0.2"
-      sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
       sources."path-parse-1.0.6"
@@ -73072,7 +76854,7 @@ in
           sources."supports-color-6.1.0"
         ];
       })
-      (sources."postcss-calc-7.0.2" // {
+      (sources."postcss-calc-7.0.4" // {
         dependencies = [
           sources."postcss-value-parser-4.1.0"
         ];
@@ -73135,9 +76917,8 @@ in
       sources."postcss-value-parser-3.3.1"
       sources."posthtml-0.11.6"
       sources."posthtml-parser-0.4.2"
-      sources."posthtml-render-1.2.2"
+      sources."posthtml-render-1.2.3"
       sources."prelude-ls-1.1.2"
-      sources."private-0.1.8"
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
       sources."psl-1.8.0"
@@ -73147,7 +76928,11 @@ in
         ];
       })
       sources."punycode-2.1.1"
-      sources."purgecss-1.4.2"
+      (sources."purgecss-2.3.0" // {
+        dependencies = [
+          sources."commander-5.1.0"
+        ];
+      })
       sources."q-1.5.1"
       sources."qs-6.5.2"
       sources."querystring-0.2.0"
@@ -73164,8 +76949,8 @@ in
       sources."readdirp-2.2.1"
       sources."regenerate-1.4.1"
       sources."regenerate-unicode-properties-8.2.0"
-      sources."regenerator-runtime-0.13.5"
-      sources."regenerator-transform-0.14.4"
+      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-transform-0.14.5"
       (sources."regex-not-1.0.2" // {
         dependencies = [
           sources."extend-shallow-3.0.2"
@@ -73183,10 +76968,8 @@ in
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
       sources."request-2.88.2"
-      sources."request-promise-core-1.1.3"
-      sources."request-promise-native-1.0.8"
-      sources."require-directory-2.1.1"
-      sources."require-main-filename-2.0.0"
+      sources."request-promise-core-1.1.4"
+      sources."request-promise-native-1.0.9"
       sources."resolve-1.17.0"
       sources."resolve-from-3.0.0"
       sources."resolve-url-0.2.1"
@@ -73214,7 +76997,6 @@ in
       })
       sources."serialize-to-js-3.1.1"
       sources."serve-static-1.14.1"
-      sources."set-blocking-2.0.0"
       sources."set-value-2.0.1"
       sources."setimmediate-1.0.5"
       sources."setprototypeof-1.1.1"
@@ -73266,12 +77048,6 @@ in
       sources."stealthy-require-1.1.1"
       sources."stream-browserify-2.0.2"
       sources."stream-http-2.8.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.1"
       sources."string.prototype.trimstart-1.0.1"
       sources."string_decoder-1.1.1"
@@ -73334,7 +77110,7 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       (sources."url-0.11.0" // {
         dependencies = [
@@ -73363,22 +77139,12 @@ in
       sources."whatwg-mimetype-2.3.0"
       sources."whatwg-url-7.1.0"
       sources."which-1.3.1"
-      sources."which-module-2.0.0"
       sources."word-wrap-1.2.3"
-      (sources."wrap-ansi-5.1.0" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."strip-ansi-5.2.0"
-        ];
-      })
       sources."wrappy-1.0.2"
       sources."ws-5.2.2"
       sources."xml-name-validator-3.0.0"
       sources."xmlchars-2.2.0"
       sources."xtend-4.0.2"
-      sources."y18n-4.0.0"
-      sources."yargs-14.2.3"
-      sources."yargs-parser-15.0.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -73404,7 +77170,7 @@ in
           sources."negotiator-0.6.2"
         ];
       })
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -73415,12 +77181,12 @@ in
       sources."async-0.9.2"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."babybird-0.0.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bindings-1.5.0"
-      sources."bl-1.2.2"
+      sources."bl-1.2.3"
       sources."bluebird-3.7.2"
       (sources."body-parser-1.19.0" // {
         dependencies = [
@@ -73429,7 +77195,7 @@ in
         ];
       })
       sources."brace-expansion-1.1.11"
-      sources."bunyan-1.8.13"
+      sources."bunyan-1.8.14"
       sources."bunyan-syslog-udp-0.2.0"
       sources."busboy-0.3.1"
       sources."bytes-3.0.0"
@@ -73461,7 +77227,7 @@ in
       sources."dicer-0.3.0"
       sources."dnscache-1.0.2"
       sources."dom-storage-2.1.0"
-      sources."domino-2.1.5"
+      sources."domino-2.1.6"
       sources."dtrace-provider-0.8.8"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
@@ -73500,7 +77266,7 @@ in
       sources."graceful-fs-4.2.4"
       sources."handlebars-4.7.6"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-symbols-1.0.1"
       sources."hat-0.0.3"
       sources."heapdump-0.3.15"
@@ -73532,7 +77298,7 @@ in
       sources."kad-memstore-0.0.1"
       sources."limitation-0.2.1"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.clone-4.5.0"
       sources."media-typer-0.3.0"
       sources."mediawiki-title-0.6.5"
@@ -73552,7 +77318,7 @@ in
       sources."nan-2.14.1"
       sources."ncp-2.0.0"
       sources."negotiator-git+https://github.com/arlolra/negotiator.git#full-parse-access"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       sources."oauth-sign-0.9.0"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.0"
@@ -73633,10 +77399,10 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
-      sources."uglify-js-3.10.0"
+      sources."uglify-js-3.10.3"
       sources."unix-dgram-2.0.4"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
@@ -73788,7 +77554,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.15"
+          sources."lodash-4.17.20"
           sources."string-width-2.1.1"
           sources."strip-ansi-4.0.0"
           sources."supports-color-5.5.0"
@@ -73797,14 +77563,14 @@ in
       sources."internal-ip-1.2.0"
       sources."ip-1.1.5"
       sources."ip-set-1.0.2"
-      sources."ipaddr.js-1.9.1"
+      sources."ipaddr.js-2.0.0"
       sources."is-arguments-1.0.4"
       sources."is-arrayish-0.2.1"
       sources."is-callable-1.2.0"
       sources."is-date-object-1.0.2"
       sources."is-finite-1.1.0"
       sources."is-fullwidth-code-point-1.0.0"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."is-utf8-0.2.1"
       sources."isarray-1.0.0"
@@ -73820,7 +77586,7 @@ in
       sources."lodash-3.10.1"
       sources."loud-rejection-1.6.0"
       sources."lru-2.0.1"
-      sources."magnet-uri-5.2.4"
+      sources."magnet-uri-5.3.0"
       sources."map-obj-1.0.1"
       sources."meow-3.7.0"
       sources."mime-2.4.6"
@@ -73911,7 +77677,7 @@ in
       sources."semver-5.7.1"
       sources."server-destroy-1.0.1"
       sources."signal-exit-3.0.3"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
       sources."simple-peer-6.4.4"
       sources."simple-sha1-2.1.2"
@@ -73931,7 +77697,11 @@ in
       sources."string-width-1.0.2"
       sources."string.prototype.trimend-1.0.1"
       sources."string.prototype.trimstart-1.0.1"
-      sources."string2compact-1.3.0"
+      (sources."string2compact-1.3.0" // {
+        dependencies = [
+          sources."ipaddr.js-1.9.1"
+        ];
+      })
       sources."string_decoder-1.1.1"
       sources."strip-ansi-3.0.1"
       sources."strip-bom-2.0.0"
@@ -73995,7 +77765,7 @@ in
       sources."accepts-1.3.7"
       sources."addr-to-ip-port-1.5.1"
       sources."after-0.8.2"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."archiver-3.1.1"
       (sources."archiver-utils-2.1.0" // {
         dependencies = [
@@ -74010,7 +77780,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."backo2-1.0.2"
       sources."balanced-match-1.0.0"
       sources."base64-arraybuffer-0.1.5"
@@ -74029,7 +77799,7 @@ in
           sources."ws-1.1.5"
         ];
       })
-      sources."bl-4.0.2"
+      sources."bl-4.0.3"
       sources."blob-0.0.5"
       sources."bn.js-4.11.9"
       sources."bncode-0.5.3"
@@ -74106,7 +77876,6 @@ in
       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."fifo-0.1.4"
       sources."finalhandler-1.1.2"
       sources."flatten-0.0.1"
@@ -74123,7 +77892,7 @@ in
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       (sources."has-binary2-1.0.3" // {
         dependencies = [
           sources."isarray-2.0.1"
@@ -74171,7 +77940,7 @@ in
           sources."readable-stream-2.3.7"
         ];
       })
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.defaults-4.2.0"
       sources."lodash.difference-4.5.0"
       sources."lodash.flatten-4.4.0"
@@ -74196,7 +77965,13 @@ in
         ];
       })
       sources."ms-2.0.0"
-      sources."multiparty-4.2.1"
+      (sources."multiparty-4.2.2" // {
+        dependencies = [
+          sources."http-errors-1.8.0"
+          sources."safe-buffer-5.2.1"
+          sources."setprototypeof-1.2.0"
+        ];
+      })
       sources."negotiator-0.6.2"
       sources."normalize-path-3.0.0"
       sources."oauth-sign-0.9.0"
@@ -74225,7 +78000,6 @@ in
         ];
       })
       sources."peer-wire-swarm-0.12.2"
-      sources."pend-1.2.0"
       sources."performance-now-2.1.0"
       sources."process-nextick-args-2.0.1"
       sources."proxy-addr-2.0.6"
@@ -74261,7 +78035,7 @@ in
       })
       sources."serve-static-1.14.1"
       sources."setprototypeof-1.1.1"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
       (sources."simple-peer-6.4.4" // {
         dependencies = [
@@ -74308,7 +78082,7 @@ in
       sources."statuses-1.5.0"
       sources."string2compact-1.3.0"
       sources."string_decoder-1.1.1"
-      sources."tar-stream-2.1.2"
+      sources."tar-stream-2.1.3"
       sources."thirty-two-0.0.2"
       sources."thunky-1.1.0"
       sources."to-array-0.1.4"
@@ -74330,7 +78104,7 @@ in
       sources."ultron-1.1.1"
       sources."uniq-1.0.1"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
       sources."utp-0.0.7"
@@ -74339,7 +78113,7 @@ in
       sources."verror-1.10.0"
       sources."which-1.3.1"
       sources."wrappy-1.0.2"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."xtend-4.0.2"
       sources."yeast-0.1.2"
@@ -74358,10 +78132,10 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "5.2.6";
+    version = "5.5.10";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-5.2.6.tgz";
-      sha512 = "7PFzPm0l14hzio59fufxpGgWRcMmtC2JZmYbRdkrJmm/f4iExXFhGklB/IrdQidhTi5helNZrBY48/9Ows4naA==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-5.5.10.tgz";
+      sha512 = "lHaae4Xiiz2I6+1czn/3AvvM+O7sHDoiEiBW4UK0NPuWJdCBGuu6qcuneuo02cmo5Hur3KuqgGmUdkMKq7gMnw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -74376,10 +78150,10 @@ in
   postcss-cli = nodeEnv.buildNodePackage {
     name = "postcss-cli";
     packageName = "postcss-cli";
-    version = "7.1.1";
+    version = "7.1.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/postcss-cli/-/postcss-cli-7.1.1.tgz";
-      sha512 = "bYQy5ydAQJKCMSpvaMg0ThPBeGYqhQXumjbFOmWnL4u65CYXQ16RfS6afGQpit0dGv/fNzxbdDtx8dkqOhhIbg==";
+      url = "https://registry.npmjs.org/postcss-cli/-/postcss-cli-7.1.2.tgz";
+      sha512 = "3mlEmN1v2NVuosMWZM2tP8bgZn7rO5PYxRRrXtdSyL5KipcgBDjJ9ct8/LKxImMCJJi3x5nYhCGFJOkGyEqXBQ==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.3"
@@ -74399,7 +78173,7 @@ in
       sources."callsites-2.0.0"
       sources."camelcase-5.3.1"
       sources."chalk-4.1.0"
-      sources."chokidar-3.4.0"
+      sources."chokidar-3.4.2"
       sources."cliui-6.0.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
@@ -74418,7 +78192,7 @@ in
       sources."fs-extra-9.0.1"
       sources."fsevents-2.1.3"
       sources."get-caller-file-2.0.5"
-      sources."get-stdin-7.0.0"
+      sources."get-stdin-8.0.0"
       sources."glob-parent-5.1.1"
       sources."globby-11.0.1"
       sources."graceful-fs-4.2.4"
@@ -74438,7 +78212,7 @@ in
       sources."json-parse-better-errors-1.0.2"
       sources."jsonfile-6.0.1"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       (sources."log-symbols-2.2.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -74499,13 +78273,13 @@ in
       sources."sprintf-js-1.0.3"
       sources."string-width-4.2.0"
       sources."strip-ansi-6.0.0"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."to-regex-range-5.0.1"
       sources."universalify-1.0.0"
       sources."which-module-2.0.0"
       sources."wrap-ansi-6.2.0"
       sources."y18n-4.0.0"
-      sources."yargs-15.3.1"
+      sources."yargs-15.4.1"
       sources."yargs-parser-18.1.3"
     ];
     buildInputs = globalBuildInputs;
@@ -74521,10 +78295,10 @@ in
   prettier = nodeEnv.buildNodePackage {
     name = "prettier";
     packageName = "prettier";
-    version = "2.0.5";
+    version = "2.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz";
-      sha512 = "7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==";
+      url = "https://registry.npmjs.org/prettier/-/prettier-2.1.1.tgz";
+      sha512 = "9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -74556,7 +78330,7 @@ in
       sources."inherits-2.0.4"
       sources."isexe-2.0.0"
       sources."keypress-0.2.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."minimatch-3.0.4"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
@@ -74583,10 +78357,10 @@ in
     };
     dependencies = [
       sources."JSONStream-1.3.5"
-      sources."acorn-7.3.1"
+      sources."acorn-7.4.0"
       sources."acorn-node-1.8.2"
       sources."acorn-walk-7.2.0"
-      (sources."asn1.js-4.10.1" // {
+      (sources."asn1.js-5.4.1" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -74600,16 +78374,12 @@ in
       sources."async-1.5.2"
       sources."balanced-match-1.0.0"
       sources."base64-js-1.3.1"
-      sources."bn.js-5.1.2"
+      sources."bn.js-5.1.3"
       sources."brace-expansion-1.1.11"
       sources."brorand-1.1.0"
       sources."browser-pack-6.1.0"
-      (sources."browser-resolve-1.11.3" // {
-        dependencies = [
-          sources."resolve-1.1.7"
-        ];
-      })
-      (sources."browserify-16.5.1" // {
+      sources."browser-resolve-2.0.0"
+      (sources."browserify-16.5.2" // {
         dependencies = [
           sources."concat-stream-1.6.2"
         ];
@@ -74629,7 +78399,7 @@ in
           sources."bn.js-4.11.9"
         ];
       })
-      (sources."browserify-sign-4.2.0" // {
+      (sources."browserify-sign-4.2.1" // {
         dependencies = [
           sources."readable-stream-3.6.0"
         ];
@@ -74654,7 +78424,7 @@ in
       sources."constants-browserify-1.0.0"
       sources."convert-source-map-1.1.3"
       sources."core-util-is-1.0.2"
-      (sources."create-ecdh-4.0.3" // {
+      (sources."create-ecdh-4.0.4" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -74716,7 +78486,7 @@ in
       sources."jsonify-0.0.0"
       sources."jsonparse-1.3.1"
       sources."labeled-stream-splicer-2.0.2"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.memoize-3.0.4"
       sources."md5.js-1.3.5"
       (sources."miller-rabin-4.0.1" // {
@@ -74731,7 +78501,7 @@ in
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."mkdirp-classic-0.5.3"
-      (sources."module-deps-6.2.2" // {
+      (sources."module-deps-6.2.3" // {
         dependencies = [
           sources."concat-stream-1.6.2"
         ];
@@ -74754,7 +78524,7 @@ in
       sources."os-browserify-0.3.0"
       sources."pako-1.0.11"
       sources."parents-1.0.1"
-      sources."parse-asn1-5.1.5"
+      sources."parse-asn1-5.1.6"
       sources."path-browserify-0.0.1"
       sources."path-is-absolute-1.0.1"
       sources."path-parse-1.0.6"
@@ -74784,12 +78554,13 @@ in
       sources."rimraf-2.7.1"
       sources."ripemd160-2.0.2"
       sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
       sources."sander-0.5.1"
       sources."sha.js-2.4.11"
       sources."shasum-1.0.2"
       sources."shasum-object-1.0.0"
       sources."shell-quote-1.7.2"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."sorcery-0.10.0"
       sources."source-map-0.5.7"
       sources."sourcemap-codec-1.4.8"
@@ -74847,21 +78618,18 @@ in
   purescript-language-server = nodeEnv.buildNodePackage {
     name = "purescript-language-server";
     packageName = "purescript-language-server";
-    version = "0.12.9";
+    version = "0.13.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/purescript-language-server/-/purescript-language-server-0.12.9.tgz";
-      sha512 = "ZbpfltBmRQYx69Gtpx1FnMhvR7Gl0wJFyMmyvuC6nMJC+ysXFdE/eNqGncODPhQUdMoYwCRFGETAY7UC6qxyTQ==";
+      url = "https://registry.npmjs.org/purescript-language-server/-/purescript-language-server-0.13.7.tgz";
+      sha512 = "TFOuSw0boZkT8q96QJyY/LJfEZ0DWD86xKdwOe2td04TAzBZVUvwu7143XCzKnewf38qv4tHzCLlVPe4a+HXdA==";
     };
     dependencies = [
       sources."isexe-2.0.0"
-      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"
-      sources."vscode-languageserver-types-3.14.0"
+      sources."vscode-jsonrpc-5.0.1"
+      sources."vscode-languageserver-6.1.1"
+      sources."vscode-languageserver-protocol-3.15.3"
+      sources."vscode-languageserver-textdocument-1.0.1"
+      sources."vscode-languageserver-types-3.15.1"
       sources."vscode-uri-2.1.2"
       sources."which-2.0.2"
     ];
@@ -74911,6 +78679,24 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  pyright = nodeEnv.buildNodePackage {
+    name = "pyright";
+    packageName = "pyright";
+    version = "1.1.66";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.66.tgz";
+      sha512 = "DbtdoFKrg3JrGAEG9bUjN4dNQQeoj7a/vy61Ppi/6KeA1sEclA/sUFFH8Yyb56UDUEXYg2U1dw78zr6mRw+Cog==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Type checker for the Python language";
+      homepage = "https://github.com/Microsoft/pyright#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   react-native-cli = nodeEnv.buildNodePackage {
     name = "react-native-cli";
     packageName = "react-native-cli";
@@ -74954,8 +78740,9 @@ in
       sources."is-callable-1.2.0"
       sources."is-date-object-1.0.2"
       sources."is-map-2.0.1"
+      sources."is-negative-zero-2.0.0"
       sources."is-number-object-1.0.4"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-set-2.0.1"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
@@ -74982,7 +78769,11 @@ in
       sources."revalidator-0.1.8"
       sources."rimraf-2.7.1"
       sources."semver-5.7.1"
-      sources."side-channel-1.0.2"
+      (sources."side-channel-1.0.3" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."stack-trace-0.0.10"
       sources."string.prototype.trimend-1.0.1"
       sources."string.prototype.trimstart-1.0.1"
@@ -75063,6 +78854,404 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  redoc-cli = nodeEnv.buildNodePackage {
+    name = "redoc-cli";
+    packageName = "redoc-cli";
+    version = "0.9.12";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.9.12.tgz";
+      sha512 = "9Ap7WfEsYtAoVZNyA8lryWAsU2Wq0lHXaNiFgdVZb4zltHNTYEqKmRi06WhileeuqVTNkd1CF2S5CCS5Xg9+aQ==";
+    };
+    dependencies = [
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/generator-7.11.5"
+      sources."@babel/helper-annotate-as-pure-7.10.4"
+      sources."@babel/helper-function-name-7.10.4"
+      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-module-imports-7.10.4"
+      sources."@babel/helper-split-export-declaration-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@babel/runtime-7.11.2"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.5"
+      sources."@babel/types-7.11.5"
+      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.2"
+      sources."@types/color-name-1.1.1"
+      sources."ajv-5.5.2"
+      sources."ansi-regex-3.0.0"
+      sources."ansi-styles-3.2.1"
+      sources."anymatch-3.1.1"
+      sources."argparse-1.0.10"
+      (sources."asn1.js-5.4.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (sources."assert-1.5.0" // {
+        dependencies = [
+          sources."util-0.10.3"
+        ];
+      })
+      sources."babel-plugin-styled-components-1.11.1"
+      sources."babel-plugin-syntax-jsx-6.18.0"
+      sources."base64-js-1.3.1"
+      sources."better-ajv-errors-0.6.7"
+      sources."big.js-5.2.2"
+      sources."binary-extensions-2.1.0"
+      sources."bn.js-5.1.3"
+      sources."braces-3.0.2"
+      sources."brorand-1.1.0"
+      sources."browserify-aes-1.2.0"
+      sources."browserify-cipher-1.0.1"
+      sources."browserify-des-1.0.2"
+      (sources."browserify-rsa-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (sources."browserify-sign-4.2.1" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."browserify-zlib-0.2.0"
+      (sources."buffer-4.9.2" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+        ];
+      })
+      sources."buffer-xor-1.0.3"
+      sources."builtin-status-codes-3.0.0"
+      sources."call-me-maybe-1.0.1"
+      sources."camelcase-5.3.1"
+      sources."camelize-1.0.0"
+      sources."chalk-2.4.2"
+      sources."chokidar-3.4.2"
+      sources."cipher-base-1.0.4"
+      sources."classnames-2.2.6"
+      sources."clipboard-2.0.6"
+      sources."cliui-4.1.0"
+      sources."clsx-1.1.1"
+      sources."co-4.6.0"
+      sources."code-error-fragment-0.0.230"
+      sources."code-point-at-1.1.0"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."console-browserify-1.2.0"
+      sources."constants-browserify-1.0.0"
+      sources."core-js-3.6.5"
+      sources."core-util-is-1.0.2"
+      (sources."create-ecdh-4.0.4" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."create-hash-1.2.0"
+      sources."create-hmac-1.1.7"
+      sources."cross-spawn-6.0.5"
+      sources."crypto-browserify-3.12.0"
+      sources."css-color-keywords-1.0.0"
+      sources."css-to-react-native-3.0.0"
+      sources."debug-4.2.0"
+      sources."decamelize-1.2.0"
+      sources."decko-1.2.0"
+      sources."delegate-3.2.0"
+      sources."des.js-1.0.1"
+      (sources."diffie-hellman-5.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."dom-walk-0.1.2"
+      sources."domain-browser-1.2.0"
+      sources."dompurify-1.0.11"
+      (sources."elliptic-6.5.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."emoji-regex-8.0.0"
+      sources."emojis-list-3.0.0"
+      sources."end-of-stream-1.4.4"
+      sources."es6-promise-3.3.1"
+      sources."escape-string-regexp-1.0.5"
+      sources."esprima-4.0.1"
+      sources."eventemitter3-3.1.2"
+      sources."events-3.2.0"
+      sources."evp_bytestokey-1.0.3"
+      sources."execa-1.0.0"
+      sources."fast-deep-equal-1.1.0"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-levenshtein-2.0.6"
+      sources."fast-safe-stringify-2.0.7"
+      sources."fill-range-7.0.1"
+      sources."find-up-3.0.0"
+      sources."foreach-2.0.5"
+      sources."format-util-1.0.5"
+      sources."fsevents-2.1.3"
+      sources."get-caller-file-1.0.3"
+      sources."get-stream-4.1.0"
+      sources."glob-parent-5.1.1"
+      sources."global-4.4.0"
+      sources."globals-11.12.0"
+      sources."good-listener-1.2.2"
+      sources."grapheme-splitter-1.0.4"
+      sources."handlebars-4.7.6"
+      sources."has-flag-3.0.0"
+      (sources."hash-base-3.1.0" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      (sources."hash.js-1.1.7" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+        ];
+      })
+      sources."hmac-drbg-1.0.1"
+      sources."hoist-non-react-statics-3.3.2"
+      sources."http2-client-1.3.3"
+      sources."https-browserify-1.0.0"
+      sources."ieee754-1.1.13"
+      sources."inherits-2.0.1"
+      sources."invert-kv-2.0.0"
+      sources."is-binary-path-2.1.0"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-number-7.0.0"
+      sources."is-stream-1.1.0"
+      sources."isarray-2.0.5"
+      sources."isexe-2.0.0"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.0"
+      sources."jsesc-2.5.2"
+      sources."json-pointer-0.6.0"
+      sources."json-schema-ref-parser-6.1.0"
+      sources."json-schema-traverse-0.3.1"
+      sources."json-to-ast-2.1.0"
+      sources."json5-1.0.1"
+      sources."jsonpointer-4.1.0"
+      sources."lcid-2.0.0"
+      sources."leven-3.1.0"
+      sources."loader-utils-1.4.0"
+      sources."locate-path-3.0.0"
+      sources."lodash-4.17.20"
+      sources."loose-envify-1.4.0"
+      sources."lunr-2.3.6"
+      sources."map-age-cleaner-0.1.3"
+      sources."mark.js-8.11.1"
+      sources."marked-0.6.3"
+      sources."md5.js-1.3.5"
+      sources."mem-4.3.0"
+      sources."memoize-one-5.1.1"
+      (sources."miller-rabin-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."mimic-fn-2.1.0"
+      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-1.0.4"
+      sources."mobx-4.15.6"
+      sources."mobx-react-5.4.4"
+      sources."ms-2.1.2"
+      sources."neo-async-2.6.2"
+      sources."nice-try-1.0.5"
+      sources."node-fetch-h2-2.3.0"
+      sources."node-libs-browser-2.2.1"
+      sources."node-readfiles-0.2.0"
+      sources."normalize-path-3.0.0"
+      sources."npm-run-path-2.0.2"
+      sources."number-is-nan-1.0.1"
+      sources."oas-kit-common-1.0.8"
+      sources."oas-linter-3.2.0"
+      sources."oas-resolver-2.4.4"
+      sources."oas-schema-walker-1.1.5"
+      sources."oas-validator-3.4.0"
+      sources."object-assign-4.1.1"
+      sources."once-1.4.0"
+      sources."ono-4.0.11"
+      sources."openapi-sampler-1.0.0-beta.14"
+      sources."os-browserify-0.3.0"
+      sources."os-locale-3.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.3.0"
+      sources."p-locate-3.0.0"
+      sources."p-try-2.2.0"
+      sources."pako-1.0.11"
+      sources."parse-asn1-5.1.6"
+      sources."path-browserify-0.0.1"
+      sources."path-exists-3.0.0"
+      sources."path-key-2.0.1"
+      sources."pbkdf2-3.1.1"
+      sources."perfect-scrollbar-1.5.0"
+      sources."picomatch-2.2.2"
+      sources."polished-3.6.6"
+      sources."postcss-value-parser-4.1.0"
+      sources."prismjs-1.21.0"
+      sources."process-0.11.10"
+      sources."process-nextick-args-2.0.1"
+      sources."prop-types-15.7.2"
+      (sources."public-encrypt-4.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."pump-3.0.0"
+      sources."punycode-1.4.1"
+      sources."querystring-0.2.0"
+      sources."querystring-es3-0.2.1"
+      sources."randombytes-2.1.0"
+      sources."randomfill-1.0.4"
+      sources."react-16.13.1"
+      sources."react-dom-16.13.1"
+      sources."react-dropdown-1.8.0"
+      (sources."react-hot-loader-4.12.21" // {
+        dependencies = [
+          sources."source-map-0.7.3"
+        ];
+      })
+      sources."react-is-16.13.1"
+      sources."react-lifecycles-compat-3.0.4"
+      sources."react-tabs-3.1.1"
+      (sources."readable-stream-2.3.7" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+          sources."isarray-1.0.0"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."readdirp-3.4.0"
+      (sources."redoc-2.0.0-rc.8-1" // {
+        dependencies = [
+          sources."tslib-1.13.0"
+        ];
+      })
+      sources."reftools-1.1.6"
+      sources."regenerator-runtime-0.13.7"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-1.0.1"
+      sources."ripemd160-2.0.2"
+      sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
+      sources."scheduler-0.19.1"
+      sources."select-1.1.2"
+      sources."semver-5.7.1"
+      sources."set-blocking-2.0.0"
+      sources."setimmediate-1.0.5"
+      sources."sha.js-2.4.11"
+      sources."shallowequal-1.1.0"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      sources."should-13.2.3"
+      sources."should-equal-2.0.0"
+      sources."should-format-3.0.3"
+      sources."should-type-1.4.0"
+      sources."should-type-adaptors-1.1.0"
+      sources."should-util-1.0.1"
+      sources."signal-exit-3.0.3"
+      sources."slugify-1.4.5"
+      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-2.1.1" // {
+        dependencies = [
+          sources."is-fullwidth-code-point-2.0.0"
+        ];
+      })
+      sources."string_decoder-1.3.0"
+      sources."strip-ansi-4.0.0"
+      sources."strip-eof-1.0.0"
+      sources."styled-components-5.1.1"
+      sources."supports-color-5.5.0"
+      (sources."swagger2openapi-5.4.0" // {
+        dependencies = [
+          sources."yargs-12.0.5"
+        ];
+      })
+      sources."timers-browserify-2.0.11"
+      sources."tiny-emitter-2.1.0"
+      sources."to-arraybuffer-1.0.1"
+      sources."to-fast-properties-2.0.0"
+      sources."to-regex-range-5.0.1"
+      sources."tslib-2.0.1"
+      sources."tty-browserify-0.0.0"
+      sources."uglify-js-3.10.3"
+      (sources."url-0.11.0" // {
+        dependencies = [
+          sources."punycode-1.3.2"
+        ];
+      })
+      (sources."util-0.11.1" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."util-deprecate-1.0.2"
+      sources."vm-browserify-1.1.2"
+      sources."which-1.3.1"
+      sources."which-module-2.0.0"
+      sources."wordwrap-1.0.0"
+      (sources."wrap-ansi-2.1.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."string-width-1.0.2"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.0"
+      sources."yaml-1.10.0"
+      (sources."yargs-15.4.1" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."ansi-styles-4.2.1"
+          sources."cliui-6.0.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."find-up-4.1.0"
+          sources."get-caller-file-2.0.5"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."locate-path-5.0.0"
+          sources."p-locate-4.1.0"
+          sources."path-exists-4.0.0"
+          sources."require-main-filename-2.0.0"
+          sources."string-width-4.2.0"
+          sources."strip-ansi-6.0.0"
+          sources."wrap-ansi-6.2.0"
+          sources."yargs-parser-18.1.3"
+        ];
+      })
+      sources."yargs-parser-11.1.1"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "ReDoc's Command Line Interface";
+      homepage = "https://github.com/Redocly/redoc#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   "reveal.js" = nodeEnv.buildNodePackage {
     name = "reveal.js";
     packageName = "reveal.js";
@@ -75084,10 +79273,10 @@ in
   rollup = nodeEnv.buildNodePackage {
     name = "rollup";
     packageName = "rollup";
-    version = "2.18.1";
+    version = "2.26.9";
     src = fetchurl {
-      url = "https://registry.npmjs.org/rollup/-/rollup-2.18.1.tgz";
-      sha512 = "w4X77ADA+WTGlapC8Z6yggdJtODw3SBl6R2LSkA7ZW5MtdkgcB7sfaSD1UWyx8diXbMcGIb0eI9gCx/dyqOgNQ==";
+      url = "https://registry.npmjs.org/rollup/-/rollup-2.26.9.tgz";
+      sha512 = "XIiWYLayLqV+oY4S2Lub/shJq4uk/QQLwWToYCL4LjZbYHbFK3czea4UDVRUJu+zNmKmxq5Zb/OG7c5HSvH2TQ==";
     };
     dependencies = [
       sources."fsevents-2.1.3"
@@ -75108,48 +79297,52 @@ in
     version = "0.4.0-dev";
     src = ../../misc/vscode-extensions/rust-analyzer/build-deps;
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      (sources."@babel/highlight-7.10.3" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@rollup/plugin-commonjs-12.0.0"
-      sources."@rollup/plugin-node-resolve-8.1.0"
+      sources."@eslint/eslintrc-0.1.3"
+      sources."@rollup/plugin-commonjs-13.0.2"
+      sources."@rollup/plugin-node-resolve-8.4.0"
       sources."@rollup/pluginutils-3.1.0"
       sources."@types/color-name-1.1.1"
       sources."@types/eslint-visitor-keys-1.0.0"
       sources."@types/estree-0.0.39"
-      sources."@types/glob-7.1.2"
-      sources."@types/json-schema-7.0.5"
+      sources."@types/glob-7.1.3"
+      sources."@types/json-schema-7.0.6"
       sources."@types/minimatch-3.0.3"
       sources."@types/mocha-7.0.2"
-      sources."@types/node-14.0.14"
+      sources."@types/node-12.7.12"
       sources."@types/node-fetch-2.5.7"
-      sources."@types/resolve-0.0.8"
-      sources."@types/vscode-1.45.0"
-      (sources."@typescript-eslint/eslint-plugin-3.4.0" // {
+      sources."@types/resolve-1.17.1"
+      sources."@types/vscode-1.48.0"
+      (sources."@typescript-eslint/eslint-plugin-3.10.1" // {
         dependencies = [
           sources."semver-7.3.2"
         ];
       })
-      sources."@typescript-eslint/experimental-utils-3.4.0"
-      sources."@typescript-eslint/parser-3.4.0"
-      (sources."@typescript-eslint/typescript-estree-3.4.0" // {
+      sources."@typescript-eslint/experimental-utils-3.10.1"
+      sources."@typescript-eslint/parser-3.10.1"
+      sources."@typescript-eslint/types-3.10.1"
+      (sources."@typescript-eslint/typescript-estree-3.10.1" // {
         dependencies = [
           sources."semver-7.3.2"
         ];
       })
-      sources."acorn-7.3.1"
+      sources."@typescript-eslint/visitor-keys-3.10.1"
+      sources."acorn-7.4.0"
       sources."acorn-jsx-5.2.0"
       sources."agent-base-4.3.0"
-      sources."ajv-6.12.2"
-      sources."ansi-colors-3.2.4"
+      sources."ajv-6.12.4"
+      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.prototype.map-1.0.2"
       sources."astral-regex-1.0.0"
       sources."asynckit-0.4.0"
       sources."azure-devops-node-api-7.2.0"
@@ -75169,11 +79362,11 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."cheerio-1.0.0-rc.3"
-      sources."chokidar-3.3.0"
+      sources."chokidar-3.4.2"
       (sources."cliui-5.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -75198,7 +79391,7 @@ in
       sources."define-properties-1.1.3"
       sources."delayed-stream-1.0.0"
       sources."denodeify-1.2.1"
-      sources."diff-3.5.0"
+      sources."diff-4.0.2"
       sources."doctrine-3.0.0"
       sources."dom-serializer-0.1.1"
       sources."domelementtype-1.3.1"
@@ -75210,14 +79403,16 @@ in
         ];
       })
       sources."emoji-regex-7.0.3"
-      sources."enquirer-2.3.5"
+      sources."enquirer-2.3.6"
       sources."entities-1.1.2"
       sources."es-abstract-1.17.6"
+      sources."es-array-method-boxes-properly-1.0.0"
+      sources."es-get-iterator-1.1.0"
       sources."es-to-primitive-1.2.1"
       sources."es6-promise-4.2.8"
       sources."es6-promisify-5.0.0"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-7.3.1" // {
+      (sources."eslint-7.8.1" // {
         dependencies = [
           sources."semver-7.3.2"
         ];
@@ -75225,14 +79420,18 @@ in
       sources."eslint-scope-5.1.0"
       sources."eslint-utils-2.1.0"
       sources."eslint-visitor-keys-1.3.0"
-      sources."espree-7.1.0"
+      sources."espree-7.3.0"
       sources."esprima-4.0.1"
       (sources."esquery-1.3.1" // {
         dependencies = [
-          sources."estraverse-5.1.0"
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
       sources."estree-walker-1.0.1"
       sources."esutils-2.0.3"
@@ -75242,7 +79441,7 @@ in
       sources."fd-slicer-1.1.0"
       sources."file-entry-cache-5.0.1"
       sources."fill-range-7.0.1"
-      sources."find-up-3.0.0"
+      sources."find-up-5.0.0"
       sources."flat-4.1.0"
       sources."flat-cache-2.0.1"
       sources."flatted-2.0.2"
@@ -75277,6 +79476,7 @@ in
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
+      sources."is-arguments-1.0.4"
       sources."is-binary-path-2.1.0"
       sources."is-buffer-2.0.4"
       sources."is-callable-1.2.0"
@@ -75284,12 +79484,19 @@ in
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
+      sources."is-map-2.0.1"
       sources."is-module-1.0.0"
       sources."is-number-7.0.0"
+      sources."is-plain-obj-1.1.0"
       sources."is-reference-1.2.1"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
+      sources."is-set-2.0.1"
+      sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
+      sources."isarray-2.0.5"
       sources."isexe-2.0.0"
+      sources."iterate-iterator-1.0.1"
+      sources."iterate-value-1.0.2"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.0"
       sources."json-schema-traverse-0.4.1"
@@ -75297,13 +79504,9 @@ in
       sources."leven-3.1.0"
       sources."levn-0.4.1"
       sources."linkify-it-2.2.0"
-      sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
-      (sources."log-symbols-3.0.0" // {
-        dependencies = [
-          sources."chalk-2.4.2"
-        ];
-      })
+      sources."locate-path-6.0.0"
+      sources."lodash-4.17.20"
+      sources."log-symbols-4.0.0"
       sources."lru-cache-4.1.5"
       sources."magic-string-0.25.7"
       (sources."markdown-it-10.0.0" // {
@@ -75318,41 +79521,32 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
-      (sources."mocha-7.2.0" // {
+      (sources."mocha-8.1.3" // {
         dependencies = [
-          sources."ansi-colors-3.2.3"
-          sources."debug-3.2.6"
-          sources."glob-7.1.3"
-          sources."js-yaml-3.13.1"
-          sources."ms-2.1.1"
-          sources."strip-json-comments-2.0.1"
-          sources."supports-color-6.0.0"
-          sources."which-1.3.1"
+          sources."debug-4.1.1"
+          sources."escape-string-regexp-4.0.0"
+          sources."has-flag-4.0.0"
+          sources."strip-json-comments-3.0.1"
+          sources."supports-color-7.1.0"
         ];
       })
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
       sources."natural-compare-1.4.0"
-      (sources."node-environment-flags-1.0.6" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
       sources."node-fetch-2.6.0"
       sources."normalize-path-3.0.0"
       sources."nth-check-1.0.2"
       sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.0"
-      sources."object.getownpropertydescriptors-2.1.0"
       sources."once-1.4.0"
       sources."optionator-0.9.1"
       sources."os-0.1.1"
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
-      sources."p-limit-2.3.0"
-      sources."p-locate-3.0.0"
+      sources."p-limit-3.0.2"
+      sources."p-locate-5.0.0"
       sources."p-try-2.2.0"
       sources."parent-module-1.0.1"
       (sources."parse-semver-1.1.1" // {
@@ -75361,7 +79555,7 @@ in
         ];
       })
       sources."parse5-3.0.3"
-      sources."path-exists-3.0.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"
@@ -75369,20 +79563,23 @@ in
       sources."picomatch-2.2.2"
       sources."prelude-ls-1.2.1"
       sources."progress-2.0.3"
+      sources."promise.allsettled-1.0.2"
       sources."pseudomap-1.0.2"
       sources."punycode-2.1.1"
+      sources."randombytes-2.1.0"
       sources."read-1.0.7"
       sources."readable-stream-3.6.0"
-      sources."readdirp-3.2.0"
+      sources."readdirp-3.4.0"
       sources."regexpp-3.1.0"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
       sources."resolve-1.17.0"
       sources."resolve-from-4.0.0"
       sources."rimraf-2.6.3"
-      sources."rollup-2.18.1"
+      sources."rollup-2.26.9"
       sources."safe-buffer-5.2.1"
       sources."semver-6.3.0"
+      sources."serialize-javascript-4.0.0"
       sources."set-blocking-2.0.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
@@ -75400,13 +79597,13 @@ in
       sources."string.prototype.trimstart-1.0.1"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.0"
-      sources."strip-json-comments-3.1.0"
+      sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
       sources."table-5.4.6"
       sources."text-table-0.2.0"
       sources."tmp-0.0.29"
       sources."to-regex-range-5.0.1"
-      sources."tslib-2.0.0"
+      sources."tslib-2.0.1"
       (sources."tsutils-3.17.1" // {
         dependencies = [
           sources."tslib-1.13.0"
@@ -75416,15 +79613,15 @@ in
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
       sources."typed-rest-client-1.2.0"
-      sources."typescript-3.9.5"
+      sources."typescript-3.9.7"
       sources."typescript-formatter-7.2.2"
       sources."uc.micro-1.0.6"
       sources."underscore-1.8.3"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."url-join-1.1.0"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-2.1.1"
-      (sources."vsce-1.77.0" // {
+      (sources."vsce-1.79.5" // {
         dependencies = [
           sources."chalk-2.4.2"
           sources."semver-5.7.1"
@@ -75445,6 +79642,7 @@ in
         ];
       })
       sources."word-wrap-1.2.3"
+      sources."workerpool-6.0.0"
       (sources."wrap-ansi-5.1.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -75455,9 +79653,27 @@ in
       sources."write-1.0.3"
       sources."y18n-4.0.0"
       sources."yallist-2.1.2"
-      sources."yargs-13.3.2"
+      (sources."yargs-13.3.2" // {
+        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."path-exists-3.0.0"
+        ];
+      })
       sources."yargs-parser-13.1.2"
-      sources."yargs-unparser-1.6.0"
+      (sources."yargs-unparser-1.6.1" // {
+        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."path-exists-3.0.0"
+          sources."yargs-14.2.3"
+          sources."yargs-parser-15.0.1"
+        ];
+      })
       sources."yauzl-2.10.0"
       sources."yazl-2.5.1"
     ];
@@ -75477,13 +79693,13 @@ in
       sha1 = "c8fa1fffb8258ce68adf75df73f90fbb6f23d198";
     };
     dependencies = [
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sdk-1.18.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."buffer-crc32-0.2.1"
       sources."bytes-0.2.1"
@@ -75533,7 +79749,7 @@ in
       sources."fresh-0.2.0"
       sources."getpass-0.1.7"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."http-auth-2.0.7"
       sources."http-signature-1.2.0"
       sources."inherits-2.0.4"
@@ -75559,7 +79775,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.6" // {
+      (sources."openid-2.0.7" // {
         dependencies = [
           sources."qs-6.5.2"
           sources."request-2.88.2"
@@ -75586,7 +79802,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."uid2-0.0.3"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-0.4.9"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
@@ -75708,7 +79924,7 @@ in
       sources."supports-color-5.5.0"
       sources."term-size-1.2.0"
       sources."update-check-1.5.2"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."vary-1.1.2"
       sources."which-1.3.1"
       sources."widest-line-2.0.1"
@@ -75727,14 +79943,13 @@ in
   serverless = nodeEnv.buildNodePackage {
     name = "serverless";
     packageName = "serverless";
-    version = "1.74.0";
+    version = "1.81.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/serverless/-/serverless-1.74.0.tgz";
-      sha512 = "aTnGVxGJ3J5hMFlHFUorhqOkshN933ZclRcJe7C9JGJ8ot7KDAmudRgvOB2/jzHL2t6LoutpTmCuyNllxy8ESA==";
+      url = "https://registry.npmjs.org/serverless/-/serverless-1.81.1.tgz";
+      sha512 = "CaNAEFDc1V7egtIcJcF5A7ba6ipD9FG0ZPbHr0M4m8IMsmfWAewdhhj1BdlcpaD16mNZH9bjXYT28z+mHKZ4/w==";
     };
     dependencies = [
       sources."2-thenable-1.0.0"
-      sources."@babel/parser-7.10.3"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.scandir-2.1.3"
       sources."@nodelib/fs.stat-2.0.3"
@@ -75749,9 +79964,9 @@ in
       sources."@protobufjs/path-1.1.2"
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
-      sources."@serverless/cli-1.5.1"
+      sources."@serverless/cli-1.5.2"
       sources."@serverless/component-metrics-1.0.8"
-      (sources."@serverless/components-2.31.4" // {
+      (sources."@serverless/components-2.34.9" // {
         dependencies = [
           sources."globby-10.0.2"
           sources."semver-7.3.2"
@@ -75762,53 +79977,48 @@ in
           sources."fs-extra-7.0.1"
         ];
       })
-      (sources."@serverless/enterprise-plugin-3.6.13" // {
-        dependencies = [
-          sources."@serverless/platform-client-0.25.14"
-        ];
-      })
+      sources."@serverless/enterprise-plugin-3.8.2"
       sources."@serverless/event-mocks-1.1.1"
       sources."@serverless/inquirer-1.1.2"
-      sources."@serverless/platform-client-1.0.3"
-      (sources."@serverless/platform-client-china-1.0.20" // {
+      sources."@serverless/platform-client-1.1.8"
+      (sources."@serverless/platform-client-china-1.0.37" // {
         dependencies = [
-          sources."archiver-4.0.1"
-          sources."async-2.6.3"
+          sources."archiver-4.0.2"
+          sources."async-3.2.0"
         ];
       })
       (sources."@serverless/platform-sdk-2.3.1" // {
         dependencies = [
+          sources."debug-4.2.0"
           sources."https-proxy-agent-4.0.0"
+          sources."ms-2.1.2"
           sources."ramda-0.25.0"
           sources."ws-6.2.1"
         ];
       })
       sources."@serverless/template-1.1.3"
       sources."@serverless/utils-1.2.0"
-      sources."@serverless/utils-china-0.1.17"
+      sources."@serverless/utils-china-0.1.27"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@tencent-sdk/capi-0.2.17"
       sources."@types/caseless-0.12.2"
       sources."@types/chalk-2.2.0"
-      sources."@types/glob-7.1.2"
-      sources."@types/lodash-4.14.157"
+      sources."@types/color-name-1.1.1"
+      sources."@types/glob-7.1.3"
+      sources."@types/lodash-4.14.161"
       sources."@types/long-4.0.1"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.0.14"
+      sources."@types/node-14.6.3"
       sources."@types/object-assign-4.0.30"
       sources."@types/request-2.48.5"
       sources."@types/request-promise-native-1.0.17"
       sources."@types/tough-cookie-4.0.0"
-      (sources."@typescript-eslint/typescript-estree-2.34.0" // {
-        dependencies = [
-          sources."semver-7.3.2"
-        ];
-      })
       sources."adm-zip-0.4.16"
       sources."after-0.8.2"
       sources."agent-base-5.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
+      sources."ajv-keywords-3.5.2"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."string-width-3.1.0"
@@ -75816,9 +80026,13 @@ in
       })
       sources."ansi-escapes-4.3.1"
       sources."ansi-regex-4.1.0"
-      sources."ansi-styles-3.2.1"
+      (sources."ansi-styles-4.2.1" // {
+        dependencies = [
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+        ];
+      })
       sources."anymatch-3.1.1"
-      sources."app-module-path-2.2.0"
       (sources."archive-type-4.0.0" // {
         dependencies = [
           sources."file-type-4.4.0"
@@ -75826,7 +80040,6 @@ in
       })
       (sources."archiver-3.1.1" // {
         dependencies = [
-          sources."async-2.6.3"
           (sources."compress-commons-2.1.1" // {
             dependencies = [
               sources."readable-stream-2.3.7"
@@ -75857,12 +80070,11 @@ in
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."assign-symbols-1.0.0"
-      sources."ast-module-types-2.6.0"
-      sources."async-1.5.2"
+      sources."async-2.6.3"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.706.0" // {
+      (sources."aws-sdk-2.745.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."isarray-1.0.0"
@@ -75870,7 +80082,7 @@ in
         ];
       })
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."axios-0.19.2"
       sources."backo2-1.0.2"
       sources."balanced-match-1.0.0"
@@ -75884,7 +80096,7 @@ in
       sources."bcrypt-pbkdf-1.0.2"
       sources."better-assert-1.0.2"
       sources."binary-extensions-2.1.0"
-      sources."bl-4.0.2"
+      sources."bl-4.0.3"
       sources."blob-0.0.5"
       sources."bluebird-3.7.2"
       (sources."boxen-3.2.0" // {
@@ -75905,7 +80117,7 @@ in
       sources."cache-base-1.0.1"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
@@ -75918,6 +80130,8 @@ in
       sources."caw-2.0.1"
       (sources."chalk-2.4.2" // {
         dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."has-flag-3.0.0"
           sources."supports-color-5.5.0"
         ];
       })
@@ -75928,7 +80142,7 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."chokidar-3.4.0"
+      sources."chokidar-3.4.2"
       sources."ci-info-1.6.0"
       (sources."class-utils-0.3.6" // {
         dependencies = [
@@ -75938,7 +80152,6 @@ in
               sources."kind-of-3.2.2"
             ];
           })
-          sources."is-buffer-1.1.6"
           (sources."is-data-descriptor-0.1.4" // {
             dependencies = [
               sources."kind-of-3.2.2"
@@ -75948,7 +80161,7 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       (sources."cli-color-2.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -75980,12 +80193,7 @@ in
       })
       sources."concat-map-0.0.1"
       sources."config-chain-1.1.12"
-      (sources."configstore-3.1.2" // {
-        dependencies = [
-          sources."make-dir-1.3.0"
-          sources."pify-3.0.0"
-        ];
-      })
+      sources."configstore-3.1.5"
       (sources."content-disposition-0.5.3" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
@@ -76005,25 +80213,19 @@ in
         ];
       })
       sources."dashdash-1.14.1"
-      sources."dayjs-1.8.28"
-      sources."debug-4.1.1"
+      sources."dayjs-1.8.35"
+      sources."debug-3.1.0"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
-      sources."decomment-0.9.2"
       (sources."decompress-4.2.1" // {
         dependencies = [
-          (sources."make-dir-1.3.0" // {
-            dependencies = [
-              sources."pify-3.0.0"
-            ];
-          })
           sources."pify-2.3.0"
         ];
       })
       sources."decompress-response-3.3.0"
       (sources."decompress-tar-4.1.1" // {
         dependencies = [
-          sources."bl-1.2.2"
+          sources."bl-1.2.3"
           sources."isarray-1.0.0"
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
@@ -76045,26 +80247,15 @@ in
         ];
       })
       sources."deep-extend-0.6.0"
-      sources."deep-is-0.1.3"
       sources."defer-to-connect-1.1.3"
       sources."deferred-0.7.11"
       sources."define-properties-1.1.3"
       sources."define-property-2.0.2"
       sources."delayed-stream-1.0.0"
-      sources."dependency-tree-7.2.1"
-      sources."detective-amd-3.0.0"
-      sources."detective-cjs-3.1.1"
-      sources."detective-es6-2.2.0"
-      sources."detective-less-1.0.2"
-      sources."detective-postcss-3.0.1"
-      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."diagnostics-1.1.1"
       sources."dijkstrajs-1.0.1"
       sources."dir-glob-3.0.1"
-      sources."dot-prop-4.2.0"
+      sources."dot-prop-4.2.1"
       sources."dot-qs-0.2.0"
       sources."dotenv-8.2.0"
       (sources."download-7.1.0" // {
@@ -76077,7 +80268,6 @@ in
           sources."http-cache-semantics-3.8.1"
           sources."keyv-3.0.0"
           sources."lowercase-keys-1.0.0"
-          sources."make-dir-1.3.0"
           sources."normalize-url-2.0.1"
           sources."p-cancelable-0.4.1"
           sources."pify-3.0.0"
@@ -76090,18 +80280,22 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."emoji-regex-7.0.3"
       sources."enabled-1.0.2"
-      sources."encoding-0.1.12"
+      (sources."encoding-0.1.13" // {
+        dependencies = [
+          sources."iconv-lite-0.6.2"
+        ];
+      })
       sources."end-of-stream-1.4.4"
       (sources."engine.io-client-3.4.3" // {
         dependencies = [
           sources."component-emitter-1.3.0"
+          sources."debug-4.1.1"
+          sources."ms-2.1.2"
           sources."ws-6.1.4"
         ];
       })
       sources."engine.io-parser-2.2.0"
-      sources."enhanced-resolve-4.2.0"
       sources."env-variable-0.0.6"
-      sources."errno-0.1.7"
       sources."es5-ext-0.10.53"
       sources."es6-iterator-2.0.3"
       sources."es6-promisify-6.1.1"
@@ -76113,13 +80307,9 @@ in
       sources."es6-symbol-3.1.3"
       sources."es6-weak-map-2.0.3"
       sources."escape-string-regexp-1.0.5"
-      sources."escodegen-1.14.3"
-      sources."eslint-visitor-keys-1.3.0"
       sources."esniff-1.1.0"
       sources."esprima-4.0.1"
       sources."essentials-1.1.1"
-      sources."estraverse-4.3.0"
-      sources."esutils-2.0.3"
       sources."event-emitter-0.3.5"
       sources."events-1.1.1"
       (sources."execa-0.7.0" // {
@@ -76137,7 +80327,6 @@ in
               sources."kind-of-3.2.2"
             ];
           })
-          sources."is-buffer-1.1.6"
           (sources."is-data-descriptor-0.1.4" // {
             dependencies = [
               sources."kind-of-3.2.2"
@@ -76145,7 +80334,6 @@ in
           })
           sources."is-descriptor-0.1.6"
           sources."kind-of-5.1.0"
-          sources."ms-2.0.0"
         ];
       })
       sources."ext-1.4.0"
@@ -76174,29 +80362,19 @@ in
       sources."fd-slicer-1.1.0"
       sources."fecha-4.2.0"
       sources."figures-3.2.0"
-      sources."file-exists-dazinatorfork-1.0.2"
       sources."file-type-5.2.0"
       sources."filename-reserved-regex-2.0.0"
       sources."filenamify-2.1.0"
       sources."filesize-3.6.1"
-      sources."filing-cabinet-2.5.1"
       sources."fill-range-7.0.1"
-      sources."find-0.3.0"
       (sources."find-process-1.4.3" // {
         dependencies = [
           sources."debug-2.6.9"
-          sources."ms-2.0.0"
         ];
       })
       sources."find-requires-1.0.0"
-      sources."flat-5.0.0"
-      sources."flatten-1.0.3"
-      (sources."follow-redirects-1.5.10" // {
-        dependencies = [
-          sources."debug-3.1.0"
-          sources."ms-2.0.0"
-        ];
-      })
+      sources."flat-5.0.2"
+      sources."follow-redirects-1.5.10"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.5.1"
@@ -76216,8 +80394,6 @@ in
       sources."fs2-0.3.8"
       sources."fsevents-2.1.3"
       sources."function-bind-1.1.1"
-      sources."get-amd-module-type-3.0.0"
-      sources."get-own-enumerable-property-symbols-3.0.2"
       sources."get-proxy-2.1.0"
       sources."get-stdin-6.0.0"
       sources."get-stream-4.1.0"
@@ -76245,7 +80421,6 @@ in
           })
           sources."glob-parent-3.1.0"
           sources."ignore-4.0.6"
-          sources."is-buffer-1.1.6"
           sources."is-glob-3.1.0"
           (sources."is-number-3.0.0" // {
             dependencies = [
@@ -76263,22 +80438,19 @@ in
           sources."to-regex-range-2.1.1"
         ];
       })
-      sources."gonzales-pe-4.3.0"
       sources."got-9.6.0"
       sources."graceful-fs-4.2.4"
-      sources."graceful-readlink-1.0.1"
       sources."graphlib-2.1.8"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-binary2-1.0.3"
       sources."has-cors-1.1.0"
-      sources."has-flag-3.0.0"
+      sources."has-flag-4.0.0"
       sources."has-symbol-support-x-1.4.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-buffer-1.1.6"
           (sources."is-number-3.0.0" // {
             dependencies = [
               sources."kind-of-3.2.2"
@@ -76291,7 +80463,9 @@ in
       sources."http-signature-1.2.0"
       (sources."https-proxy-agent-5.0.0" // {
         dependencies = [
-          sources."agent-base-6.0.0"
+          sources."agent-base-6.0.1"
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
         ];
       })
       sources."iconv-lite-0.4.24"
@@ -76300,7 +80474,6 @@ in
       sources."immediate-3.0.6"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
-      sources."indexes-of-1.0.1"
       sources."indexof-0.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -76311,11 +80484,16 @@ in
           sources."figures-2.0.0"
         ];
       })
+      (sources."inquirer-autocomplete-prompt-1.1.0" // {
+        dependencies = [
+          sources."chalk-4.1.0"
+        ];
+      })
       sources."into-stream-3.1.0"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arrayish-0.3.2"
       sources."is-binary-path-2.1.0"
-      sources."is-buffer-2.0.4"
+      sources."is-buffer-1.1.6"
       sources."is-ci-1.2.1"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
@@ -76335,16 +80513,13 @@ in
       sources."is-plain-object-2.0.4"
       sources."is-promise-2.2.2"
       sources."is-redirect-1.0.0"
-      sources."is-regexp-1.0.0"
-      sources."is-relative-path-1.0.2"
       sources."is-retry-allowed-1.2.0"
       sources."is-stream-1.1.0"
       sources."is-typedarray-1.0.0"
-      sources."is-url-1.2.4"
       sources."is-windows-1.0.2"
       (sources."is-wsl-2.2.0" // {
         dependencies = [
-          sources."is-docker-2.0.0"
+          sources."is-docker-2.1.1"
         ];
       })
       sources."isarray-2.0.1"
@@ -76407,9 +80582,8 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      sources."levn-0.3.0"
       sources."lie-3.3.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.defaults-4.2.0"
       sources."lodash.difference-4.5.0"
       sources."lodash.flatten-4.4.0"
@@ -76420,28 +80594,23 @@ in
           sources."type-1.2.0"
         ];
       })
-      sources."logform-2.2.0"
+      (sources."logform-2.2.0" // {
+        dependencies = [
+          sources."ms-2.1.2"
+        ];
+      })
       sources."long-4.0.0"
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-4.1.5"
       sources."lru-queue-0.1.0"
-      (sources."make-dir-2.1.0" // {
+      (sources."make-dir-1.3.0" // {
         dependencies = [
-          sources."pify-4.0.1"
-          sources."semver-5.7.1"
+          sources."pify-3.0.0"
         ];
       })
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."memoizee-0.4.14"
-      (sources."memory-fs-0.5.0" // {
-        dependencies = [
-          sources."isarray-1.0.0"
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
       sources."micromatch-4.0.2"
@@ -76458,20 +80627,17 @@ in
         ];
       })
       sources."mkdirp-0.5.5"
-      sources."module-definition-3.3.0"
-      sources."module-lookup-amd-6.2.0"
       sources."moment-2.27.0"
-      sources."ms-2.1.2"
+      sources."ms-2.0.0"
       sources."mute-stream-0.0.7"
       sources."nanoid-2.1.11"
       sources."nanomatch-1.2.13"
       sources."native-promise-only-0.8.1"
-      sources."ncjsm-4.0.1"
+      sources."ncjsm-4.1.0"
       sources."next-tick-1.0.0"
       sources."nice-try-1.0.5"
       sources."node-dir-0.1.17"
       sources."node-fetch-2.6.0"
-      sources."node-source-walk-4.2.0"
       sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.0"
       (sources."npm-conf-1.1.3" // {
@@ -76487,7 +80653,6 @@ in
         dependencies = [
           sources."define-property-0.2.5"
           sources."is-accessor-descriptor-0.1.6"
-          sources."is-buffer-1.1.6"
           sources."is-data-descriptor-0.1.4"
           (sources."is-descriptor-0.1.6" // {
             dependencies = [
@@ -76504,9 +80669,9 @@ in
       sources."once-1.4.0"
       sources."one-time-0.0.4"
       sources."onetime-2.0.1"
-      (sources."open-7.0.4" // {
+      (sources."open-7.2.1" // {
         dependencies = [
-          sources."is-docker-2.0.0"
+          sources."is-docker-2.1.1"
         ];
       })
       (sources."opn-5.5.0" // {
@@ -76514,7 +80679,6 @@ in
           sources."is-wsl-1.1.0"
         ];
       })
-      sources."optionator-0.8.3"
       sources."os-tmpdir-1.0.2"
       sources."p-cancelable-1.1.0"
       sources."p-event-2.3.1"
@@ -76533,7 +80697,6 @@ in
       sources."path-is-inside-1.0.2"
       sources."path-key-2.0.1"
       sources."path-loader-1.0.10"
-      sources."path-parse-1.0.6"
       sources."path-type-4.0.0"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
@@ -76542,25 +80705,16 @@ in
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
       sources."posix-character-classes-0.1.1"
-      sources."postcss-7.0.32"
-      sources."postcss-values-parser-1.5.0"
-      (sources."precinct-6.3.1" // {
-        dependencies = [
-          sources."commander-2.20.3"
-        ];
-      })
-      sources."prelude-ls-1.1.2"
       sources."prepend-http-2.0.0"
       sources."prettyoutput-1.2.0"
       sources."process-nextick-args-2.0.1"
       sources."promise-queue-2.2.5"
       sources."proto-list-1.2.4"
-      (sources."protobufjs-6.9.0" // {
+      (sources."protobufjs-6.10.1" // {
         dependencies = [
-          sources."@types/node-13.13.12"
+          sources."@types/node-13.13.16"
         ];
       })
-      sources."prr-1.0.1"
       sources."pseudomap-1.0.2"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
@@ -76572,9 +80726,9 @@ in
       sources."rc-1.2.8"
       sources."readable-stream-3.6.0"
       sources."readdirp-3.4.0"
-      sources."regenerator-runtime-0.13.5"
+      sources."regenerator-runtime-0.13.7"
       sources."regex-not-1.0.2"
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
@@ -76584,12 +80738,8 @@ in
           sources."form-data-2.3.3"
         ];
       })
-      sources."request-promise-core-1.1.3"
-      sources."request-promise-native-1.0.8"
-      sources."requirejs-2.3.6"
-      sources."requirejs-config-file-3.1.2"
-      sources."resolve-1.17.0"
-      sources."resolve-dependency-path-2.0.0"
+      sources."request-promise-core-1.1.4"
+      sources."request-promise-native-1.0.9"
       sources."resolve-url-0.2.1"
       sources."responselike-1.0.2"
       sources."restore-cursor-2.0.0"
@@ -76597,17 +80747,12 @@ in
       sources."reusify-1.0.4"
       sources."run-async-2.4.1"
       sources."run-parallel-1.1.9"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.2"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."sass-lookup-3.0.0"
       sources."sax-1.2.1"
-      (sources."seek-bzip-1.0.5" // {
-        dependencies = [
-          sources."commander-2.8.1"
-        ];
-      })
+      sources."seek-bzip-1.0.6"
       sources."semver-6.3.0"
       (sources."semver-diff-2.1.0" // {
         dependencies = [
@@ -76625,7 +80770,12 @@ in
       sources."shebang-regex-1.0.0"
       sources."shortid-2.2.15"
       sources."signal-exit-3.0.3"
-      sources."simple-git-1.132.0"
+      (sources."simple-git-1.132.0" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
+        ];
+      })
       sources."simple-swizzle-0.2.2"
       sources."slash-3.0.0"
       (sources."snapdragon-0.8.2" // {
@@ -76638,7 +80788,6 @@ in
               sources."kind-of-3.2.2"
             ];
           })
-          sources."is-buffer-1.1.6"
           (sources."is-data-descriptor-0.1.4" // {
             dependencies = [
               sources."kind-of-3.2.2"
@@ -76646,7 +80795,6 @@ in
           })
           sources."is-descriptor-0.1.6"
           sources."kind-of-5.1.0"
-          sources."ms-2.0.0"
           sources."source-map-0.5.7"
         ];
       })
@@ -76657,17 +80805,16 @@ in
       })
       (sources."snapdragon-util-3.0.1" // {
         dependencies = [
-          sources."is-buffer-1.1.6"
           sources."kind-of-3.2.2"
         ];
       })
-      sources."socket.io-client-2.3.0"
-      (sources."socket.io-parser-3.3.0" // {
+      (sources."socket.io-client-2.3.0" // {
         dependencies = [
-          sources."debug-3.1.0"
-          sources."ms-2.0.0"
+          sources."debug-4.1.1"
+          sources."ms-2.1.2"
         ];
       })
+      sources."socket.io-parser-3.3.0"
       sources."sort-keys-1.1.2"
       sources."sort-keys-length-1.0.1"
       sources."source-map-0.6.1"
@@ -76675,7 +80822,7 @@ in
       sources."source-map-support-0.5.19"
       sources."source-map-url-0.4.0"
       sources."split-string-3.1.0"
-      sources."split2-3.1.1"
+      sources."split2-3.2.2"
       sources."sprintf-js-1.0.3"
       sources."sprintf-kit-2.0.0"
       sources."sshpk-1.16.1"
@@ -76688,7 +80835,6 @@ in
               sources."kind-of-3.2.2"
             ];
           })
-          sources."is-buffer-1.1.6"
           (sources."is-data-descriptor-0.1.4" // {
             dependencies = [
               sources."kind-of-3.2.2"
@@ -76711,26 +80857,27 @@ in
         ];
       })
       sources."string_decoder-1.3.0"
-      sources."stringify-object-3.3.0"
       sources."strip-ansi-5.2.0"
       sources."strip-dirs-2.1.0"
       sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
       sources."strip-outer-1.0.1"
-      sources."stylus-lookup-3.0.2"
       (sources."superagent-3.8.3" // {
         dependencies = [
-          sources."debug-3.2.6"
           sources."isarray-1.0.0"
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
           sources."string_decoder-1.1.1"
         ];
       })
-      sources."supports-color-6.1.0"
-      sources."tabtab-3.0.2"
-      sources."tapable-1.1.3"
-      sources."tar-stream-2.1.2"
+      sources."supports-color-7.2.0"
+      (sources."tabtab-3.0.2" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."tar-stream-2.1.3"
       sources."term-size-1.2.0"
       sources."text-hex-1.0.0"
       sources."through-2.3.8"
@@ -76741,7 +80888,6 @@ in
       sources."to-buffer-1.1.1"
       (sources."to-object-path-0.3.0" // {
         dependencies = [
-          sources."is-buffer-1.1.6"
           sources."kind-of-3.2.2"
         ];
       })
@@ -76750,20 +80896,15 @@ in
       sources."to-regex-range-5.0.1"
       sources."tough-cookie-2.5.0"
       sources."traverse-0.6.6"
-      sources."traverse-chain-0.1.0"
       sources."trim-repeated-1.0.0"
       sources."triple-beam-1.3.0"
       sources."tslib-1.13.0"
-      sources."tsutils-3.17.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."type-2.0.0"
-      sources."type-check-0.3.2"
+      sources."type-2.1.0"
       sources."type-fest-0.11.0"
-      sources."typescript-3.9.5"
       sources."unbzip2-stream-1.4.3"
       sources."union-value-1.0.1"
-      sources."uniq-1.0.1"
       sources."unique-string-1.0.0"
       sources."universalify-0.1.2"
       (sources."unset-value-1.0.0" // {
@@ -76787,7 +80928,7 @@ in
           sources."cli-boxes-1.0.0"
         ];
       })
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       (sources."url-0.10.3" // {
         dependencies = [
@@ -76801,14 +80942,10 @@ in
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
-      sources."whatwg-fetch-3.0.0"
+      sources."whatwg-fetch-3.4.0"
       sources."which-1.3.1"
       sources."widest-line-2.0.1"
-      (sources."winston-3.2.1" // {
-        dependencies = [
-          sources."async-2.6.3"
-        ];
-      })
+      sources."winston-3.2.1"
       (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -76817,10 +80954,9 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      sources."word-wrap-1.2.3"
       sources."wrappy-1.0.2"
       sources."write-file-atomic-2.4.3"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xdg-basedir-3.0.0"
       sources."xml2js-0.4.19"
       sources."xmlbuilder-9.0.7"
@@ -76857,14 +80993,14 @@ in
       sources."CSSwhat-0.4.7"
       sources."accepts-1.3.7"
       sources."after-0.8.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."array-flatten-1.1.1"
       sources."arraybuffer.slice-0.0.6"
       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.10.0"
+      sources."aws4-1.10.1"
       sources."base64-arraybuffer-0.1.2"
       sources."base64id-0.1.0"
       sources."bcrypt-nodejs-0.0.3"
@@ -76899,7 +81035,7 @@ in
       sources."domelementtype-1.3.1"
       sources."domhandler-2.2.1"
       sources."domutils-1.4.3"
-      sources."duplexer-0.1.1"
+      sources."duplexer-0.1.2"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."emitter-http://github.com/component/emitter/archive/1.0.1.tar.gz"
@@ -76933,7 +81069,7 @@ in
       sources."getpass-0.1.7"
       sources."global-https://github.com/component/global/archive/v2.0.1.tar.gz"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-binary-data-0.1.1"
       sources."has-cors-1.0.3"
       (sources."htmlparser2-3.7.3" // {
@@ -77053,7 +81189,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."utf8-2.0.0"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
@@ -77191,7 +81327,7 @@ in
       sources."isarray-1.0.0"
       sources."isobject-3.0.1"
       sources."kind-of-6.0.3"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."micromatch-3.1.10"
@@ -77471,64 +81607,106 @@ in
   snyk = nodeEnv.buildNodePackage {
     name = "snyk";
     packageName = "snyk";
-    version = "1.349.0";
+    version = "1.388.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/snyk/-/snyk-1.349.0.tgz";
-      sha512 = "2gE31HJ42H2gYDci9WB+f1GOTNLQXIcO5jm7i8sw+Xpfce3FYYH3s0oCecnrDHV3qOXbr6Qa5MtL0bwWmOA3fg==";
+      url = "https://registry.npmjs.org/snyk/-/snyk-1.388.0.tgz";
+      sha512 = "Oe4aDzp3iyBNpZCYxAxNWaN7l5aAB7dAVd3MLuJ3jdbJXcucMwc3MAfoZ91dmVb4SMO2qsOpiq6+qO6W8nuASA==";
     };
     dependencies = [
-      sources."@sindresorhus/is-0.14.0"
-      (sources."@snyk/cli-interface-2.8.0" // {
+      sources."@arcanis/slice-ansi-1.0.2"
+      sources."@nodelib/fs.scandir-2.1.3"
+      sources."@nodelib/fs.stat-2.0.3"
+      sources."@nodelib/fs.walk-1.2.4"
+      sources."@sindresorhus/is-2.1.1"
+      (sources."@snyk/cli-interface-2.9.0" // {
         dependencies = [
           (sources."@snyk/dep-graph-1.19.0" // {
             dependencies = [
-              sources."tslib-2.0.0"
+              sources."tslib-2.0.1"
             ];
           })
         ];
       })
-      (sources."@snyk/cocoapods-lockfile-parser-3.4.0" // {
+      (sources."@snyk/cocoapods-lockfile-parser-3.5.1" // {
         dependencies = [
-          sources."@snyk/dep-graph-1.18.4"
-          sources."semver-7.3.2"
+          sources."@snyk/ruby-semver-3.0.0"
         ];
       })
       sources."@snyk/composer-lockfile-parser-1.4.0"
-      (sources."@snyk/dep-graph-1.18.3" // {
+      (sources."@snyk/dep-graph-1.19.3" // {
         dependencies = [
-          sources."semver-7.3.2"
+          sources."@snyk/graphlib-2.1.9-patch.2"
         ];
       })
+      sources."@snyk/docker-registry-v2-client-1.13.5"
       sources."@snyk/gemfile-1.2.0"
       sources."@snyk/graphlib-2.1.9-patch"
       sources."@snyk/inquirer-6.2.2-patch"
-      sources."@snyk/java-call-graph-builder-1.10.0"
+      sources."@snyk/java-call-graph-builder-1.13.1"
       sources."@snyk/lodash-4.17.15-patch"
-      (sources."@snyk/rpm-parser-2.0.0" // {
-        dependencies = [
-          sources."event-loop-spinner-2.0.0"
-        ];
-      })
+      sources."@snyk/rpm-parser-2.0.0"
       sources."@snyk/ruby-semver-2.2.0"
-      (sources."@snyk/snyk-cocoapods-plugin-2.3.0" // {
+      (sources."@snyk/snyk-cocoapods-plugin-2.5.0" // {
         dependencies = [
-          (sources."@snyk/cli-interface-1.5.0" // {
+          (sources."@snyk/cli-interface-2.6.1" // {
             dependencies = [
               sources."tslib-1.13.0"
             ];
           })
-          sources."tslib-2.0.0"
+          sources."tslib-2.0.1"
         ];
       })
-      sources."@szmarczak/http-timer-1.1.2"
+      (sources."@snyk/snyk-docker-pull-3.2.0" // {
+        dependencies = [
+          sources."tmp-0.1.0"
+        ];
+      })
+      sources."@szmarczak/http-timer-4.0.5"
+      sources."@types/cacheable-request-6.0.1"
       sources."@types/color-name-1.1.1"
       sources."@types/debug-4.1.5"
+      sources."@types/emscripten-1.39.4"
       sources."@types/hosted-git-info-2.7.0"
+      sources."@types/http-cache-semantics-4.0.0"
       sources."@types/js-yaml-3.12.5"
-      sources."@types/node-14.0.14"
+      sources."@types/keyv-3.1.1"
+      sources."@types/node-13.13.16"
+      sources."@types/responselike-1.0.0"
       sources."@types/semver-5.5.0"
       sources."@types/xml2js-0.4.5"
+      (sources."@yarnpkg/core-2.2.2" // {
+        dependencies = [
+          sources."ansi-styles-4.2.1"
+          sources."camelcase-5.3.1"
+          sources."chalk-3.0.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."cross-spawn-7.0.3"
+          sources."has-flag-4.0.0"
+          sources."mkdirp-0.5.5"
+          sources."path-key-3.1.1"
+          sources."semver-7.3.2"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."supports-color-7.2.0"
+          sources."which-2.0.2"
+        ];
+      })
+      sources."@yarnpkg/fslib-2.2.1"
+      sources."@yarnpkg/json-proxy-2.1.0"
+      sources."@yarnpkg/libzip-2.2.0"
       sources."@yarnpkg/lockfile-1.1.0"
+      sources."@yarnpkg/parsers-2.2.0"
+      sources."@yarnpkg/pnp-2.2.1"
+      (sources."@yarnpkg/shell-2.2.0" // {
+        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."ansi-align-3.0.0" // {
@@ -77540,16 +81718,22 @@ in
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
       sources."ansicolors-0.3.2"
+      sources."any-promise-1.3.0"
       sources."archy-1.0.0"
       sources."argparse-1.0.10"
+      sources."array-union-2.1.0"
       sources."asap-2.0.6"
       sources."asn1-0.2.4"
-      sources."ast-types-0.13.3"
+      (sources."ast-types-0.14.1" // {
+        dependencies = [
+          sources."tslib-2.0.1"
+        ];
+      })
       sources."async-1.5.2"
       sources."balanced-match-1.0.0"
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
-      (sources."bl-4.0.2" // {
+      (sources."bl-4.0.3" // {
         dependencies = [
           sources."readable-stream-3.6.0"
           sources."safe-buffer-5.2.1"
@@ -77569,28 +81753,31 @@ in
           sources."is-fullwidth-code-point-3.0.0"
           sources."string-width-4.2.0"
           sources."strip-ansi-6.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
       sources."browserify-zlib-0.1.4"
       sources."buffer-5.6.0"
       sources."buffer-from-1.1.1"
       sources."bytes-3.1.0"
-      (sources."cacheable-request-6.1.0" // {
+      sources."cacheable-lookup-5.0.3"
+      (sources."cacheable-request-7.0.1" // {
         dependencies = [
-          sources."get-stream-5.1.0"
-          sources."lowercase-keys-2.0.0"
+          sources."get-stream-5.2.0"
         ];
       })
       sources."camelcase-2.1.1"
       sources."chalk-2.4.2"
       sources."chardet-0.7.0"
+      sources."child-process-1.0.2"
       sources."ci-info-2.0.0"
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-cursor-2.1.0"
       sources."cli-spinner-0.2.10"
       sources."cli-width-2.2.1"
+      sources."clipanion-2.5.0"
       (sources."cliui-3.2.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -77617,10 +81804,15 @@ in
       sources."data-uri-to-buffer-1.2.0"
       sources."debug-4.2.0"
       sources."decamelize-1.2.0"
-      sources."decompress-response-3.3.0"
+      (sources."decompress-response-6.0.0" // {
+        dependencies = [
+          sources."mimic-response-3.1.0"
+        ];
+      })
       sources."deep-extend-0.6.0"
       sources."deep-is-0.1.3"
-      sources."defer-to-connect-1.1.3"
+      sources."defer-to-connect-2.0.0"
+      sources."define-properties-1.1.3"
       (sources."degenerator-1.0.4" // {
         dependencies = [
           sources."esprima-3.1.3"
@@ -77628,6 +81820,7 @@ in
       })
       sources."depd-1.1.2"
       sources."diff-4.0.2"
+      sources."dir-glob-3.0.1"
       (sources."docker-modem-2.1.3" // {
         dependencies = [
           sources."readable-stream-3.6.0"
@@ -77635,7 +81828,7 @@ in
           sources."string_decoder-1.3.0"
         ];
       })
-      sources."dockerfile-ast-0.0.19"
+      sources."dockerfile-ast-0.0.30"
       sources."dot-prop-5.2.0"
       sources."dotnet-deps-parser-4.10.0"
       sources."duplexer3-0.1.4"
@@ -77651,13 +81844,16 @@ in
       sources."esprima-4.0.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
-      sources."event-loop-spinner-1.1.0"
+      sources."event-loop-spinner-2.0.0"
       sources."execa-1.0.0"
       sources."extend-3.0.2"
       sources."external-editor-3.1.0"
+      sources."fast-glob-3.2.4"
       sources."fast-levenshtein-2.0.6"
+      sources."fastq-1.8.0"
       sources."figures-2.0.0"
       sources."file-uri-to-path-1.0.0"
+      sources."fill-range-7.0.1"
       sources."fs-constants-1.0.0"
       sources."fs.realpath-1.0.0"
       (sources."ftp-0.3.10" // {
@@ -77665,6 +81861,7 @@ in
           sources."readable-stream-1.1.14"
         ];
       })
+      sources."function-bind-1.1.1"
       sources."get-stream-4.1.0"
       (sources."get-uri-2.0.4" // {
         dependencies = [
@@ -77673,13 +81870,23 @@ in
         ];
       })
       sources."glob-7.1.6"
+      sources."glob-parent-5.1.1"
       sources."global-dirs-2.0.1"
-      sources."got-9.6.0"
+      sources."globby-11.0.1"
+      sources."got-11.4.0"
       sources."graceful-fs-4.2.4"
+      sources."grapheme-splitter-1.0.4"
       sources."gunzip-maybe-1.4.2"
+      sources."has-1.0.3"
       sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.1"
       sources."has-yarn-2.1.0"
-      sources."hosted-git-info-3.0.4"
+      (sources."hosted-git-info-3.0.5" // {
+        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" // {
@@ -77688,6 +81895,7 @@ in
           sources."ms-2.0.0"
         ];
       })
+      sources."http2-wrapper-1.0.0-beta.5.2"
       (sources."https-proxy-agent-3.0.1" // {
         dependencies = [
           sources."debug-3.2.6"
@@ -77695,6 +81903,7 @@ in
       })
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.1.13"
+      sources."ignore-5.1.8"
       sources."immediate-3.0.6"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
@@ -77703,14 +81912,18 @@ in
       sources."ini-1.3.5"
       sources."invert-kv-1.0.0"
       sources."ip-1.1.5"
-      sources."ipaddr.js-1.9.1"
+      sources."is-3.3.0"
+      sources."is-callable-1.2.0"
       sources."is-ci-2.0.0"
       sources."is-deflate-1.0.0"
-      sources."is-docker-2.0.0"
+      sources."is-docker-2.1.1"
+      sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
+      sources."is-glob-4.0.1"
       sources."is-gzip-1.0.0"
       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-stream-1.1.0"
@@ -77720,33 +81933,58 @@ in
       sources."isarray-0.0.1"
       sources."isexe-2.0.0"
       sources."js-yaml-3.14.0"
-      sources."json-buffer-3.0.0"
+      sources."json-buffer-3.0.1"
+      sources."json-file-plus-3.3.1"
       (sources."jszip-3.5.0" // {
         dependencies = [
           sources."pako-1.0.11"
         ];
       })
-      sources."keyv-3.1.0"
+      sources."keyv-4.0.1"
       sources."latest-version-5.1.0"
       sources."lcid-1.0.0"
       sources."levn-0.3.0"
       sources."lie-3.3.0"
+      sources."lodash-4.17.20"
       sources."lodash.assign-4.2.0"
       sources."lodash.assignin-4.2.0"
       sources."lodash.clone-4.5.0"
       sources."lodash.clonedeep-4.5.0"
+      sources."lodash.constant-3.0.0"
+      sources."lodash.escaperegexp-4.1.2"
+      sources."lodash.filter-4.6.0"
+      sources."lodash.flatmap-4.5.0"
       sources."lodash.flatten-4.4.0"
+      sources."lodash.foreach-4.5.0"
       sources."lodash.get-4.4.2"
+      sources."lodash.has-4.5.2"
+      sources."lodash.isarray-4.0.0"
+      sources."lodash.isempty-4.4.0"
       sources."lodash.isequal-4.5.0"
+      sources."lodash.isfunction-3.0.9"
+      sources."lodash.isundefined-3.0.1"
+      sources."lodash.keys-4.2.0"
+      sources."lodash.map-4.6.0"
+      sources."lodash.reduce-4.6.0"
       sources."lodash.set-4.3.2"
-      sources."lowercase-keys-1.0.1"
+      sources."lodash.size-4.2.0"
+      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.values-4.3.0"
+      sources."logic-solver-2.0.1"
+      sources."lowercase-keys-2.0.0"
       sources."lru-cache-5.1.1"
-      sources."macos-release-2.3.0"
+      sources."macos-release-2.4.1"
       sources."make-dir-3.1.0"
+      sources."merge2-1.4.1"
+      sources."micromatch-4.0.2"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
+      sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.7"
       sources."nconf-0.10.0"
@@ -77757,32 +81995,63 @@ in
       })
       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."number-is-nan-1.0.1"
       sources."object-hash-2.0.3"
+      sources."object-keys-1.1.1"
+      sources."object.assign-4.1.0"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
-      sources."open-7.0.4"
+      sources."open-7.2.1"
       sources."optionator-0.8.3"
       sources."os-locale-1.4.0"
       sources."os-name-3.1.0"
       sources."os-tmpdir-1.0.2"
-      sources."p-cancelable-1.1.0"
+      sources."p-cancelable-2.0.0"
       sources."p-finally-1.0.0"
+      sources."p-limit-2.3.0"
       sources."p-map-2.1.0"
+      sources."p-try-2.2.0"
       sources."pac-proxy-agent-3.0.1"
       sources."pac-resolver-3.0.0"
-      sources."package-json-6.5.0"
+      (sources."package-json-6.5.0" // {
+        dependencies = [
+          sources."@sindresorhus/is-0.14.0"
+          sources."@szmarczak/http-timer-1.1.2"
+          (sources."cacheable-request-6.1.0" // {
+            dependencies = [
+              sources."lowercase-keys-2.0.0"
+            ];
+          })
+          sources."decompress-response-3.3.0"
+          sources."defer-to-connect-1.1.3"
+          sources."get-stream-5.2.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."pako-0.2.9"
+      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."pluralize-7.0.0"
       sources."prelude-ls-1.1.2"
       sources."prepend-http-2.0.0"
+      sources."pretty-bytes-5.4.1"
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
       sources."promise-7.3.1"
+      sources."promise-deferred-2.0.3"
+      sources."promiseback-2.0.3"
       sources."proxy-agent-3.1.1"
       sources."proxy-from-env-1.1.0"
       sources."pseudomap-1.0.2"
@@ -77793,6 +82062,7 @@ in
         ];
       })
       sources."pupa-2.0.1"
+      sources."quick-lru-5.1.1"
       sources."raw-body-2.4.1"
       sources."rc-1.2.8"
       (sources."readable-stream-2.3.7" // {
@@ -77801,13 +82071,16 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
-      sources."responselike-1.0.2"
+      sources."resolve-alpn-1.0.0"
+      sources."responselike-2.0.0"
       sources."restore-cursor-2.0.0"
+      sources."reusify-1.0.4"
       sources."rimraf-2.7.1"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."run-parallel-1.1.9"
+      sources."rxjs-6.6.2"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
@@ -77819,16 +82092,35 @@ in
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."signal-exit-3.0.3"
+      sources."slash-3.0.0"
       sources."smart-buffer-4.1.0"
       sources."snyk-config-3.1.0"
-      sources."snyk-docker-plugin-3.12.3"
+      (sources."snyk-cpp-plugin-1.4.1" // {
+        dependencies = [
+          sources."tslib-2.0.1"
+        ];
+      })
+      (sources."snyk-docker-plugin-3.18.1" // {
+        dependencies = [
+          sources."rimraf-3.0.2"
+          (sources."snyk-nodejs-lockfile-parser-1.22.0" // {
+            dependencies = [
+              sources."event-loop-spinner-1.1.0"
+              sources."uuid-3.4.0"
+            ];
+          })
+          sources."tmp-0.2.1"
+          sources."uuid-8.3.0"
+        ];
+      })
       sources."snyk-go-parser-1.4.1"
-      (sources."snyk-go-plugin-1.14.2" // {
+      (sources."snyk-go-plugin-1.16.0" // {
         dependencies = [
-          sources."tmp-0.1.0"
+          sources."rimraf-3.0.2"
+          sources."tmp-0.2.0"
         ];
       })
-      (sources."snyk-gradle-plugin-3.5.0" // {
+      (sources."snyk-gradle-plugin-3.6.2" // {
         dependencies = [
           sources."ansi-styles-4.2.1"
           sources."chalk-3.0.0"
@@ -77836,20 +82128,25 @@ in
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
           sources."rimraf-3.0.2"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
           sources."tmp-0.2.1"
-          sources."tslib-2.0.0"
+          sources."tslib-2.0.1"
         ];
       })
       sources."snyk-module-3.1.0"
-      (sources."snyk-mvn-plugin-2.17.1" // {
+      (sources."snyk-mvn-plugin-2.19.1" // {
         dependencies = [
-          sources."@snyk/cli-interface-2.5.0"
+          sources."@snyk/cli-interface-2.8.1"
+          (sources."@snyk/dep-graph-1.19.0" // {
+            dependencies = [
+              sources."tslib-2.0.1"
+            ];
+          })
           sources."tmp-0.1.0"
           sources."tslib-1.11.1"
         ];
       })
-      sources."snyk-nodejs-lockfile-parser-1.22.0"
+      sources."snyk-nodejs-lockfile-parser-1.27.0"
       (sources."snyk-nuget-plugin-1.18.1" // {
         dependencies = [
           sources."jszip-3.3.0"
@@ -77865,7 +82162,7 @@ in
       })
       (sources."snyk-policy-1.14.1" // {
         dependencies = [
-          sources."@types/node-6.14.10"
+          sources."@types/node-6.14.11"
           sources."hosted-git-info-2.8.8"
           (sources."snyk-module-2.1.0" // {
             dependencies = [
@@ -77882,7 +82179,7 @@ in
       })
       (sources."snyk-resolve-deps-4.4.0" // {
         dependencies = [
-          sources."@types/node-6.14.10"
+          sources."@types/node-6.14.11"
           sources."debug-3.2.6"
           sources."hosted-git-info-2.8.8"
           sources."lru-cache-4.1.5"
@@ -77917,7 +82214,15 @@ in
       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-2.1.1" // {
         dependencies = [
@@ -77933,7 +82238,7 @@ in
       sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
       sources."supports-color-5.5.0"
-      (sources."tar-stream-2.1.2" // {
+      (sources."tar-stream-2.1.3" // {
         dependencies = [
           sources."readable-stream-3.6.0"
           sources."safe-buffer-5.2.1"
@@ -77953,24 +82258,27 @@ in
       sources."thunkify-2.1.2"
       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."tslib-1.13.0"
+      sources."tunnel-0.0.6"
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
       sources."type-fest-0.8.1"
       sources."typedarray-to-buffer-3.1.5"
+      sources."underscore-1.11.0"
       sources."unique-string-2.0.0"
       sources."unpipe-1.0.0"
-      (sources."update-notifier-4.1.0" // {
+      (sources."update-notifier-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.2.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."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."url-parse-lax-3.0.0"
@@ -77988,7 +82296,7 @@ in
         ];
       })
       sources."window-size-0.1.4"
-      sources."windows-release-3.3.1"
+      sources."windows-release-3.3.3"
       sources."word-wrap-1.2.3"
       (sources."wrap-ansi-5.1.0" // {
         dependencies = [
@@ -78004,6 +82312,7 @@ in
       sources."xtend-4.0.2"
       sources."y18n-3.2.1"
       sources."yallist-3.1.1"
+      sources."yaml-1.10.0"
       (sources."yargs-3.32.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -78079,7 +82388,7 @@ in
       })
       sources."socket.io-parser-3.4.1"
       sources."to-array-0.1.4"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."yeast-0.1.2"
     ];
@@ -78117,11 +82426,11 @@ in
       sources."ci-info-1.6.0"
       sources."cli-boxes-1.0.0"
       sources."cli-cursor-2.1.0"
-      sources."cli-spinners-2.3.0"
+      sources."cli-spinners-2.4.0"
       sources."clone-1.0.4"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."configstore-3.1.2"
+      sources."configstore-3.1.5"
       sources."create-error-class-3.0.2"
       sources."cross-spawn-5.1.0"
       sources."crypto-random-string-1.0.0"
@@ -78135,7 +82444,7 @@ in
       })
       sources."deep-extend-0.6.0"
       sources."defaults-1.0.3"
-      sources."dot-prop-4.2.0"
+      sources."dot-prop-4.2.1"
       sources."draftlog-1.0.12"
       sources."duplexer3-0.1.4"
       sources."error-ex-1.3.2"
@@ -78292,9 +82601,8 @@ in
       sources."assign-symbols-1.0.0"
       sources."async-each-1.0.3"
       sources."async-single-1.0.5"
-      sources."async-write-2.1.0"
       sources."atob-2.1.2"
-      (sources."atomic-file-2.0.1" // {
+      (sources."atomic-file-2.1.1" // {
         dependencies = [
           sources."flumecodec-0.0.1"
           sources."level-codec-6.2.0"
@@ -78316,21 +82624,12 @@ in
       sources."binary-extensions-1.13.1"
       sources."binary-search-1.3.6"
       sources."bindings-1.5.0"
-      (sources."bl-0.8.2" // {
-        dependencies = [
-          sources."isarray-0.0.1"
-          sources."readable-stream-1.0.34"
-          sources."string_decoder-0.10.31"
-        ];
-      })
       sources."blake2s-1.1.0"
       sources."brace-expansion-1.1.11"
       sources."braces-1.8.5"
       sources."broadcast-stream-0.2.2"
       sources."buffer-5.6.0"
       sources."buffer-from-1.1.1"
-      sources."bytewise-1.1.0"
-      sources."bytewise-core-1.2.3"
       (sources."cache-base-1.0.1" // {
         dependencies = [
           sources."isobject-3.0.1"
@@ -78344,7 +82643,7 @@ in
       sources."character-entities-legacy-1.1.4"
       sources."character-reference-invalid-1.1.4"
       sources."charwise-3.0.1"
-      sources."chloride-2.2.14"
+      sources."chloride-2.3.0"
       sources."chloride-test-1.2.4"
       sources."chokidar-1.7.0"
       (sources."class-utils-0.3.6" // {
@@ -78522,7 +82821,7 @@ in
       sources."he-0.5.0"
       sources."heap-0.2.6"
       sources."hoox-0.0.1"
-      sources."idb-kv-store-4.4.0"
+      sources."idb-kv-store-4.5.0"
       sources."ieee754-1.1.13"
       sources."immediate-3.2.3"
       sources."increment-buffer-1.0.1"
@@ -78567,6 +82866,7 @@ in
       sources."is-glob-2.0.1"
       sources."is-hexadecimal-1.0.4"
       sources."is-map-2.0.1"
+      sources."is-negative-zero-2.0.0"
       sources."is-number-2.1.0"
       sources."is-number-object-1.0.4"
       (sources."is-plain-object-2.0.4" // {
@@ -78576,13 +82876,13 @@ in
       })
       sources."is-posix-bracket-0.1.1"
       sources."is-primitive-2.0.0"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-set-2.0.1"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
       sources."is-typed-array-1.1.3"
       sources."is-typedarray-1.0.0"
-      sources."is-valid-domain-0.0.14"
+      sources."is-valid-domain-0.0.15"
       sources."is-weakmap-2.0.1"
       sources."is-weakset-2.0.1"
       sources."is-windows-1.0.2"
@@ -78604,27 +82904,6 @@ in
       sources."level-js-4.0.2"
       sources."level-packager-5.1.1"
       sources."level-post-1.0.7"
-      (sources."level-sublevel-6.6.5" // {
-        dependencies = [
-          (sources."abstract-leveldown-0.12.4" // {
-            dependencies = [
-              sources."xtend-3.0.0"
-            ];
-          })
-          sources."deferred-leveldown-0.2.0"
-          sources."isarray-0.0.1"
-          (sources."levelup-0.19.1" // {
-            dependencies = [
-              sources."xtend-3.0.0"
-            ];
-          })
-          sources."ltgt-2.1.3"
-          sources."prr-0.0.0"
-          sources."readable-stream-1.0.34"
-          sources."semver-5.1.1"
-          sources."string_decoder-0.10.31"
-        ];
-      })
       sources."level-supports-1.0.1"
       (sources."leveldown-5.6.0" // {
         dependencies = [
@@ -78634,8 +82913,9 @@ in
       })
       sources."levelup-4.4.0"
       sources."libnested-1.5.0"
-      sources."libsodium-0.7.6"
-      sources."libsodium-wrappers-0.7.6"
+      sources."libsodium-0.7.8"
+      sources."libsodium-wrappers-0.7.8"
+      sources."lodash.clonedeep-4.5.0"
       sources."lodash.get-4.4.2"
       sources."log-symbols-1.0.2"
       sources."log-update-1.0.2"
@@ -78668,6 +82948,7 @@ in
       sources."multiserver-3.6.0"
       sources."multiserver-address-1.0.1"
       sources."multiserver-scopes-1.0.0"
+      sources."mutexify-1.3.1"
       sources."muxrpc-6.5.0"
       sources."muxrpc-usage-2.1.0"
       sources."muxrpc-validation-3.0.2"
@@ -78687,9 +82968,9 @@ in
       })
       sources."napi-macros-2.0.0"
       sources."ncp-2.0.0"
-      sources."nearley-2.19.4"
+      sources."nearley-2.19.6"
       sources."nice-try-1.0.5"
-      sources."node-gyp-build-4.2.2"
+      sources."node-gyp-build-4.2.3"
       sources."non-private-ip-1.4.4"
       sources."normalize-path-2.1.1"
       sources."normalize-uri-1.1.3"
@@ -78736,7 +83017,7 @@ in
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
-      sources."packet-stream-2.0.4"
+      sources."packet-stream-2.0.5"
       sources."packet-stream-codec-1.1.2"
       sources."parse-entities-1.2.2"
       sources."parse-glob-3.0.4"
@@ -78915,7 +83196,11 @@ in
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."shellsubstitute-1.2.0"
-      sources."side-channel-1.0.2"
+      (sources."side-channel-1.0.3" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."smart-buffer-4.1.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
@@ -78944,7 +83229,7 @@ in
         ];
       })
       sources."snapdragon-util-3.0.1"
-      sources."socks-2.4.1"
+      sources."socks-2.4.2"
       sources."sodium-browserify-1.3.0"
       (sources."sodium-browserify-tweetnacl-0.2.6" // {
         dependencies = [
@@ -78953,7 +83238,7 @@ in
         ];
       })
       sources."sodium-chloride-1.1.2"
-      sources."sodium-native-2.4.9"
+      sources."sodium-native-3.2.0"
       sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
@@ -78963,7 +83248,7 @@ in
       sources."ssb-caps-1.1.0"
       sources."ssb-client-4.9.0"
       sources."ssb-config-3.4.4"
-      (sources."ssb-db-20.2.0" // {
+      (sources."ssb-db-20.3.0" // {
         dependencies = [
           sources."glob-7.1.6"
           sources."mkdirp-1.0.4"
@@ -78971,13 +83256,19 @@ in
         ];
       })
       sources."ssb-ebt-5.6.7"
-      sources."ssb-friends-4.2.0"
+      sources."ssb-friends-4.2.1"
       (sources."ssb-gossip-1.1.1" // {
         dependencies = [
           sources."atomic-file-1.1.5"
         ];
       })
-      sources."ssb-invite-2.1.4"
+      (sources."ssb-invite-2.1.6" // {
+        dependencies = [
+          sources."abstract-leveldown-6.2.3"
+          sources."level-6.0.1"
+          sources."level-js-5.0.2"
+        ];
+      })
       sources."ssb-keys-7.2.2"
       sources."ssb-links-3.0.9"
       sources."ssb-local-1.0.0"
@@ -78998,7 +83289,7 @@ in
       sources."ssb-ref-2.14.0"
       sources."ssb-replicate-1.3.2"
       sources."ssb-unix-socket-1.0.0"
-      sources."ssb-validate-4.1.1"
+      sources."ssb-validate-4.1.2"
       sources."ssb-ws-6.2.3"
       sources."stack-0.1.0"
       (sources."static-extend-0.1.2" // {
@@ -79060,8 +83351,6 @@ in
       sources."tweetnacl-auth-0.3.1"
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
-      sources."typewise-1.0.3"
-      sources."typewise-core-1.2.0"
       sources."typewiselite-1.0.0"
       sources."uint48be-2.0.1"
       sources."ultron-1.0.2"
@@ -79150,7 +83439,7 @@ in
           sources."ws-1.1.5"
         ];
       })
-      sources."@types/babel-types-7.0.7"
+      sources."@types/babel-types-7.0.9"
       sources."@types/babylon-6.16.5"
       sources."accepts-1.3.7"
       sources."acorn-3.3.0"
@@ -79183,7 +83472,7 @@ in
           sources."semver-5.0.3"
         ];
       })
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."align-text-0.1.4"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
@@ -79200,13 +83489,13 @@ in
       sources."async-1.5.2"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
-      (sources."aws-sdk-2.706.0" // {
+      (sources."aws-sdk-2.745.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
       })
       sources."aws-sign2-0.6.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."babel-runtime-6.26.0"
       sources."babel-types-6.26.0"
       sources."babylon-6.18.0"
@@ -79241,7 +83530,7 @@ in
       sources."buffer-from-1.1.1"
       sources."bufferutil-1.3.0"
       sources."bufferview-1.0.1"
-      sources."bunyan-1.8.13"
+      sources."bunyan-1.8.14"
       sources."busboy-0.2.14"
       sources."bytebuffer-3.5.5"
       sources."bytes-3.1.0"
@@ -79340,7 +83629,7 @@ in
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
-          sources."ws-7.3.0"
+          sources."ws-7.3.1"
         ];
       })
       (sources."engine.io-client-3.4.3" // {
@@ -79385,7 +83674,7 @@ in
       sources."fd-slicer-1.1.0"
       sources."finalhandler-1.1.2"
       sources."find-up-3.0.0"
-      sources."follow-redirects-1.12.1"
+      sources."follow-redirects-1.13.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.1.4"
       sources."formidable-1.2.2"
@@ -79435,7 +83724,7 @@ in
       })
       (sources."http-proxy-1.18.1" // {
         dependencies = [
-          sources."eventemitter3-4.0.4"
+          sources."eventemitter3-4.0.7"
         ];
       })
       sources."http-signature-1.1.1"
@@ -79457,10 +83746,10 @@ in
       })
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-my-ip-valid-1.0.0"
-      sources."is-my-json-valid-2.20.1"
+      sources."is-my-json-valid-2.20.5"
       sources."is-promise-2.2.2"
       sources."is-property-1.0.2"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-stream-1.1.0"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
@@ -79469,7 +83758,7 @@ in
       sources."isstream-0.1.2"
       sources."jmespath-0.15.0"
       sources."jpeg-turbo-0.4.0"
-      sources."js-base64-2.6.2"
+      sources."js-base64-2.6.4"
       sources."js-stringify-1.0.2"
       sources."js-yaml-3.2.7"
       sources."jsbn-0.1.1"
@@ -79486,7 +83775,7 @@ in
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."json5-1.0.1"
-      sources."jsonpointer-4.0.1"
+      sources."jsonpointer-4.1.0"
       sources."jspath-0.3.4"
       (sources."jsprim-1.4.1" // {
         dependencies = [
@@ -79513,7 +83802,7 @@ in
       })
       sources."load-json-file-1.1.0"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.get-4.4.2"
       sources."lodash.isequal-4.5.0"
       sources."long-2.4.0"
@@ -79586,7 +83875,7 @@ in
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
-      sources."openid-2.0.6"
+      sources."openid-2.0.7"
       sources."options-0.0.6"
       sources."optjs-3.2.2"
       sources."os-locale-3.1.0"
@@ -79677,7 +83966,7 @@ in
           sources."aws-sign2-0.7.0"
           sources."caseless-0.12.0"
           sources."form-data-2.3.3"
-          sources."har-validator-5.1.3"
+          sources."har-validator-5.1.5"
           sources."http-signature-1.2.0"
           sources."oauth-sign-0.9.0"
           sources."punycode-2.1.1"
@@ -79854,7 +84143,7 @@ in
       sources."uid2-0.0.3"
       sources."ultron-1.0.2"
       sources."unpipe-1.0.0"
-      (sources."uri-js-4.2.2" // {
+      (sources."uri-js-4.4.0" // {
         dependencies = [
           sources."punycode-2.1.1"
         ];
@@ -80012,7 +84301,7 @@ in
       sources."has-symbols-1.0.1"
       sources."is-callable-1.2.0"
       sources."is-date-object-1.0.2"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."js-yaml-3.14.0"
       sources."mdn-data-2.0.4"
@@ -80154,7 +84443,7 @@ in
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       sources."concat-stream-1.6.2"
-      sources."configstore-3.1.2"
+      sources."configstore-3.1.5"
       sources."connect-3.7.0"
       sources."content-type-1.0.4"
       sources."cookiejar-2.1.2"
@@ -80185,7 +84474,7 @@ in
         ];
       })
       sources."diff-1.4.0"
-      sources."dot-prop-4.2.0"
+      sources."dot-prop-4.2.1"
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
@@ -80253,7 +84542,7 @@ in
       sources."graceful-fs-4.2.4"
       (sources."graphlib-2.1.8" // {
         dependencies = [
-          sources."lodash-4.17.15"
+          sources."lodash-4.17.20"
         ];
       })
       sources."growl-1.9.2"
@@ -80325,7 +84614,7 @@ in
       sources."json-refs-2.1.7"
       (sources."json-schema-deref-sync-0.6.0" // {
         dependencies = [
-          sources."lodash-4.17.15"
+          sources."lodash-4.17.20"
         ];
       })
       sources."jsonfile-2.4.0"
@@ -80397,7 +84686,7 @@ in
       sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
       sources."native-promise-only-0.8.1"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       (sources."nodemon-1.19.4" // {
         dependencies = [
           sources."debug-3.2.6"
@@ -80592,7 +84881,7 @@ in
       sources."swagger-editor-2.10.5"
       (sources."swagger-test-templates-1.6.0" // {
         dependencies = [
-          sources."lodash-4.17.15"
+          sources."lodash-4.17.20"
         ];
       })
       (sources."swagger-tools-0.9.16" // {
@@ -80617,7 +84906,7 @@ in
       sources."truncate-utf8-bytes-1.0.2"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.10.0"
+      sources."uglify-js-3.10.3"
       sources."undefsafe-2.0.3"
       (sources."union-value-1.0.1" // {
         dependencies = [
@@ -80684,7 +84973,7 @@ in
       sha256 = "886069ecc5eedf0371b948e8ff66e7f2943c85fe7cfdaa7183e1a3572d55852b";
     };
     dependencies = [
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -80693,7 +84982,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       (sources."bcrypt-pbkdf-1.0.2" // {
         dependencies = [
           sources."tweetnacl-0.14.5"
@@ -80724,7 +85013,7 @@ in
       sources."get-caller-file-2.0.5"
       sources."getpass-0.1.7"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."http-signature-1.2.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-typedarray-1.0.0"
@@ -80778,7 +85067,7 @@ in
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-1.0.3"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
       sources."which-module-2.0.0"
@@ -80849,28 +85138,28 @@ in
   textlint = nodeEnv.buildNodePackage {
     name = "textlint";
     packageName = "textlint";
-    version = "11.6.3";
+    version = "11.7.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint/-/textlint-11.6.3.tgz";
-      sha512 = "tTLLgB49zkJgq6GYDJOT6F31kHLulFjzovCHpN6ycv8d/aPcYl9vv7f/luR33YBQZdnGLtn+j8+G4GJAZ6Uz6w==";
+      url = "https://registry.npmjs.org/textlint/-/textlint-11.7.6.tgz";
+      sha512 = "o9nhbylWjOErba1gq2bMoJzughp9JK2VbENR+NCiMsNNEiaJ1P8jbnrL3ES86D6e0QMxziR79w5l7VmmdmLjCw==";
     };
     dependencies = [
       sources."@azu/format-text-1.0.1"
       sources."@azu/style-format-1.0.0"
-      sources."@textlint/ast-node-types-4.2.5"
-      sources."@textlint/ast-tester-2.1.6"
-      sources."@textlint/ast-traverse-2.1.7"
-      sources."@textlint/feature-flag-3.1.6"
-      sources."@textlint/fixer-formatter-3.1.13"
-      sources."@textlint/kernel-3.2.1"
-      sources."@textlint/linter-formatter-3.1.12"
-      sources."@textlint/markdown-to-ast-6.1.7"
-      sources."@textlint/module-interop-1.0.2"
-      sources."@textlint/text-to-ast-3.1.7"
-      sources."@textlint/textlint-plugin-markdown-5.1.12"
-      sources."@textlint/textlint-plugin-text-4.1.13"
-      sources."@textlint/types-1.3.1"
-      sources."@textlint/utils-1.0.3"
+      sources."@textlint/ast-node-types-4.3.4"
+      sources."@textlint/ast-tester-2.2.4"
+      sources."@textlint/ast-traverse-2.2.5"
+      sources."@textlint/feature-flag-3.2.4"
+      sources."@textlint/fixer-formatter-3.2.5"
+      sources."@textlint/kernel-3.3.6"
+      sources."@textlint/linter-formatter-3.2.5"
+      sources."@textlint/markdown-to-ast-6.2.5"
+      sources."@textlint/module-interop-1.1.4"
+      sources."@textlint/text-to-ast-3.2.4"
+      sources."@textlint/textlint-plugin-markdown-5.2.6"
+      sources."@textlint/textlint-plugin-text-4.2.6"
+      sources."@textlint/types-1.4.5"
+      sources."@textlint/utils-1.1.4"
       sources."ajv-4.11.8"
       sources."ajv-keywords-1.5.1"
       sources."ansi-regex-2.1.1"
@@ -80938,7 +85227,7 @@ in
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-hexadecimal-1.0.4"
       sources."is-plain-obj-1.1.0"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."is-utf8-0.2.1"
       sources."is-whitespace-character-1.0.4"
@@ -80952,11 +85241,11 @@ in
       sources."levn-0.3.0"
       sources."load-json-file-1.1.0"
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."log-symbols-1.0.2"
       sources."map-like-2.0.0"
       sources."markdown-escapes-1.0.4"
-      sources."md5-2.2.1"
+      sources."md5-2.3.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -81020,7 +85309,6 @@ in
           sources."strip-ansi-3.0.1"
         ];
       })
-      sources."string.prototype.padstart-3.1.0"
       sources."string.prototype.trimend-1.0.1"
       sources."string.prototype.trimstart-1.0.1"
       sources."string_decoder-1.1.1"
@@ -81087,7 +85375,7 @@ in
       sha1 = "9139c65b8da891c983b368a50a286338cd76777a";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.2.5"
+      sources."@textlint/ast-node-types-4.3.4"
       sources."txt-to-ast-3.0.3"
     ];
     buildInputs = globalBuildInputs;
@@ -81117,7 +85405,7 @@ in
       sources."has-symbols-1.0.1"
       sources."is-callable-1.2.0"
       sources."is-date-object-1.0.2"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."match-index-1.0.3"
       sources."object-inspect-1.8.0"
@@ -81140,208 +85428,293 @@ in
   textlint-rule-alex = nodeEnv.buildNodePackage {
     name = "textlint-rule-alex";
     packageName = "textlint-rule-alex";
-    version = "1.3.1";
+    version = "3.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-alex/-/textlint-rule-alex-1.3.1.tgz";
-      sha512 = "TP+dtJcCe0+ZR7Gp1E3iJdf3XtOImrEIcUdaQnok4QJJEutZ1dTiP4rCfnyOxz70NZ+2RdBJgZeZZWGhuJzSwA==";
+      url = "https://registry.npmjs.org/textlint-rule-alex/-/textlint-rule-alex-3.0.0.tgz";
+      sha512 = "z/Xo1WHxAn7eueUbRLXoMNew+R3dzGENPG/yiCt/KT2WgAfRuQ7GeF855kLcnCCqdTnl6W7sYq8TKy+/DLpiqQ==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.2.5"
-      sources."@textlint/types-1.3.1"
-      sources."alex-5.1.0"
-      sources."ansi-align-2.0.0"
-      sources."ansi-regex-3.0.0"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@textlint/ast-node-types-4.3.4"
+      sources."@textlint/types-1.4.5"
+      sources."@types/color-name-1.1.1"
+      sources."@types/minimist-1.2.0"
+      sources."@types/normalize-package-data-2.4.0"
+      sources."@types/parse5-5.0.3"
+      sources."@types/unist-2.0.3"
+      sources."alex-9.0.1"
+      (sources."ansi-align-3.0.0" // {
+        dependencies = [
+          sources."string-width-3.1.0"
+        ];
+      })
+      sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
-      sources."array-find-index-1.0.2"
       sources."array-iterate-1.1.4"
+      sources."arrify-1.0.1"
       sources."bail-1.0.5"
       sources."balanced-match-1.0.0"
       sources."boundary-1.0.1"
-      (sources."boxen-1.3.0" // {
+      (sources."boxen-4.2.0" // {
         dependencies = [
-          sources."camelcase-4.1.0"
+          sources."ansi-styles-4.2.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."supports-color-7.2.0"
+          sources."type-fest-0.8.1"
         ];
       })
       sources."brace-expansion-1.1.11"
       sources."bubble-stream-error-1.0.0"
       sources."buffer-from-1.1.1"
-      sources."camelcase-2.1.1"
-      sources."camelcase-keys-2.1.0"
-      sources."capture-stack-trace-1.0.1"
+      (sources."cacheable-request-6.1.0" // {
+        dependencies = [
+          sources."get-stream-5.2.0"
+          sources."lowercase-keys-2.0.0"
+          sources."pump-3.0.0"
+        ];
+      })
+      sources."camelcase-5.3.1"
+      sources."camelcase-keys-6.2.2"
+      sources."ccount-1.0.5"
       sources."chalk-2.4.2"
       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."ci-info-1.6.0"
-      sources."cli-boxes-1.0.0"
-      sources."code-point-at-1.1.0"
+      sources."ci-info-2.0.0"
+      sources."cli-boxes-2.2.1"
+      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."comma-separated-tokens-1.0.8"
       sources."concat-map-0.0.1"
-      (sources."concat-stream-1.6.2" // {
+      (sources."concat-stream-2.0.0" // {
         dependencies = [
-          sources."isarray-1.0.0"
-          sources."process-nextick-args-2.0.1"
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
+          sources."readable-stream-3.6.0"
+          sources."string_decoder-1.3.0"
         ];
       })
-      sources."configstore-3.1.2"
+      sources."configstore-5.0.1"
       sources."core-util-is-1.0.2"
-      sources."create-error-class-3.0.2"
-      sources."cross-spawn-5.1.0"
-      sources."crypto-random-string-1.0.0"
-      sources."currently-unhandled-0.4.1"
-      sources."cuss-1.20.0"
+      sources."crypto-random-string-2.0.0"
+      sources."cuss-1.21.0"
       sources."debug-4.2.0"
       sources."decamelize-1.2.0"
+      (sources."decamelize-keys-1.1.0" // {
+        dependencies = [
+          sources."map-obj-1.0.1"
+        ];
+      })
+      sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
-      sources."dot-prop-4.2.0"
-      sources."duplexer-0.1.1"
+      sources."defer-to-connect-1.1.3"
+      sources."dot-prop-5.2.0"
+      sources."duplexer-0.1.2"
       sources."duplexer3-0.1.4"
+      sources."emoji-regex-7.0.3"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
+      sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
       sources."event-stream-3.1.7"
-      sources."execa-0.7.0"
       sources."extend-3.0.2"
       sources."fault-1.0.4"
-      sources."find-up-1.1.2"
-      sources."fn-name-2.0.1"
+      sources."figgy-pudding-3.5.2"
+      sources."figures-3.2.0"
+      sources."find-up-4.1.0"
       sources."format-0.2.2"
       sources."from-0.1.7"
       sources."fs.realpath-1.0.0"
-      sources."get-stdin-4.0.1"
-      sources."get-stream-3.0.0"
+      (sources."get-stream-4.1.0" // {
+        dependencies = [
+          sources."pump-3.0.0"
+        ];
+      })
       sources."git-diff-tree-1.1.0"
       sources."git-spawned-stream-1.0.1"
       sources."glob-7.1.6"
-      sources."global-dirs-0.1.1"
-      sources."got-6.7.1"
+      sources."global-dirs-2.0.1"
+      sources."got-9.6.0"
       sources."graceful-fs-4.2.4"
+      sources."hard-rejection-2.1.0"
       sources."has-flag-3.0.0"
+      sources."has-yarn-2.1.0"
+      sources."hast-util-embedded-1.0.5"
+      sources."hast-util-from-parse5-6.0.0"
+      sources."hast-util-has-property-1.0.4"
+      sources."hast-util-is-body-ok-link-1.0.4"
+      sources."hast-util-is-element-1.1.0"
+      sources."hast-util-parse-selector-2.2.4"
+      sources."hast-util-phrasing-1.0.5"
+      sources."hast-util-to-nlcst-1.2.7"
+      sources."hast-util-to-string-1.0.4"
+      sources."hast-util-whitespace-1.0.4"
+      sources."hastscript-5.1.2"
       sources."hosted-git-info-2.8.8"
-      sources."ignore-3.3.10"
+      sources."http-cache-semantics-4.1.0"
+      sources."ignore-5.1.8"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
-      sources."indent-string-2.1.0"
+      sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
       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-1.1.6"
-      sources."is-ci-1.2.1"
+      sources."is-buffer-2.0.4"
+      sources."is-ci-2.0.0"
       sources."is-decimal-1.0.4"
       sources."is-empty-1.2.0"
-      sources."is-finite-1.1.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-hexadecimal-1.0.4"
-      sources."is-hidden-1.1.3"
-      sources."is-installed-globally-0.1.0"
-      sources."is-npm-1.0.0"
-      sources."is-obj-1.0.1"
-      sources."is-object-1.0.1"
-      sources."is-path-inside-1.0.1"
+      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-plain-obj-1.1.0"
-      sources."is-redirect-1.0.0"
-      sources."is-retry-allowed-1.2.0"
-      sources."is-stream-1.1.0"
-      sources."is-utf8-0.2.1"
+      sources."is-typedarray-1.0.0"
       sources."is-whitespace-character-1.0.4"
       sources."is-word-character-1.0.4"
+      sources."is-yarn-global-0.3.0"
       sources."isarray-0.0.1"
-      sources."isexe-2.0.0"
+      sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.0"
-      sources."latest-version-3.1.0"
+      sources."json-buffer-3.0.0"
+      sources."json-parse-even-better-errors-2.3.1"
+      sources."keyv-3.1.0"
+      sources."kind-of-6.0.3"
+      sources."latest-version-5.1.0"
+      (sources."libnpmconfig-1.2.1" // {
+        dependencies = [
+          sources."find-up-3.0.0"
+          sources."locate-path-3.0.0"
+          sources."p-locate-3.0.0"
+          sources."path-exists-3.0.0"
+        ];
+      })
       sources."limit-spawn-0.0.3"
-      sources."load-json-file-1.1.0"
-      sources."load-plugin-2.3.1"
+      sources."lines-and-columns-1.1.6"
+      sources."load-plugin-3.0.0"
+      sources."locate-path-5.0.0"
       sources."lodash.difference-4.5.0"
       sources."lodash.intersection-4.4.0"
-      sources."loud-rejection-1.6.0"
+      sources."longest-streak-2.0.4"
       sources."lowercase-keys-1.0.1"
-      sources."lru-cache-4.1.5"
-      (sources."make-dir-1.3.0" // {
+      (sources."make-dir-3.1.0" // {
         dependencies = [
-          sources."pify-3.0.0"
+          sources."semver-6.3.0"
         ];
       })
-      sources."map-obj-1.0.1"
+      sources."map-obj-4.1.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-to-nlcst-3.2.3"
-      sources."meow-3.7.0"
+      sources."mdast-util-compact-2.0.1"
+      (sources."mdast-util-to-nlcst-4.0.0" // {
+        dependencies = [
+          sources."vfile-location-3.1.0"
+        ];
+      })
+      sources."meow-7.1.1"
+      sources."mimic-response-1.0.1"
+      sources."min-indent-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
+      sources."minimist-options-4.1.0"
       sources."ms-2.1.2"
       sources."nlcst-is-literal-1.2.1"
       sources."nlcst-normalize-2.1.4"
-      sources."nlcst-search-1.5.1"
+      sources."nlcst-search-2.0.0"
       sources."nlcst-to-string-2.0.4"
       sources."normalize-package-data-2.5.0"
-      sources."npm-prefix-1.2.0"
-      sources."npm-run-path-2.0.2"
-      sources."number-is-nan-1.0.1"
-      sources."object-assign-4.1.1"
+      sources."normalize-url-4.5.0"
       sources."object-keys-1.1.1"
       sources."once-1.4.0"
-      sources."os-homedir-1.0.2"
-      sources."p-finally-1.0.0"
-      sources."package-json-4.0.1"
+      sources."p-cancelable-1.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"
+        ];
+      })
       sources."parse-english-4.1.3"
-      sources."parse-entities-1.2.2"
-      sources."parse-json-2.2.0"
+      sources."parse-entities-2.0.0"
+      sources."parse-json-5.1.0"
       sources."parse-latin-4.2.1"
-      sources."path-exists-2.1.0"
+      sources."parse5-6.0.1"
+      sources."path-exists-4.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-type-1.1.0"
       sources."pause-stream-0.0.11"
-      sources."pify-2.3.0"
-      sources."pinkie-2.0.4"
-      sources."pinkie-promise-2.0.1"
-      sources."pluralize-7.0.0"
-      sources."prepend-http-1.0.4"
+      sources."pluralize-8.0.0"
+      sources."prepend-http-2.0.0"
       sources."process-nextick-args-1.0.7"
-      sources."pseudomap-1.0.2"
+      sources."property-information-5.5.0"
       sources."pump-1.0.3"
       sources."pump-chain-1.0.0"
+      sources."pupa-2.0.1"
+      sources."quick-lru-4.0.1"
       sources."quotation-1.1.3"
       sources."rc-1.2.8"
-      sources."read-pkg-1.1.0"
-      sources."read-pkg-up-1.0.1"
+      (sources."read-pkg-5.2.0" // {
+        dependencies = [
+          sources."type-fest-0.6.0"
+        ];
+      })
+      (sources."read-pkg-up-7.0.1" // {
+        dependencies = [
+          sources."type-fest-0.8.1"
+        ];
+      })
       sources."readable-stream-1.0.34"
-      sources."redent-1.0.0"
-      sources."registry-auth-token-3.4.0"
-      sources."registry-url-3.1.0"
-      sources."remark-frontmatter-1.3.3"
-      sources."remark-message-control-4.2.0"
-      sources."remark-parse-4.0.0"
-      sources."remark-retext-3.1.3"
+      sources."redent-3.0.0"
+      sources."registry-auth-token-4.2.0"
+      sources."registry-url-5.1.0"
+      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.7"
+      sources."remark-message-control-6.0.0"
+      (sources."remark-parse-8.0.3" // {
+        dependencies = [
+          sources."vfile-location-3.1.0"
+        ];
+      })
+      sources."remark-retext-4.0.0"
+      sources."remark-stringify-8.1.1"
       sources."repeat-string-1.6.1"
-      sources."repeating-2.0.1"
       sources."replace-ext-1.0.0"
       sources."resolve-1.17.0"
       sources."resolve-from-5.0.0"
+      sources."responselike-1.0.2"
       sources."retext-english-3.0.4"
-      sources."retext-equality-3.2.0"
-      sources."retext-profanities-4.4.0"
-      sources."safe-buffer-5.1.2"
+      sources."retext-equality-5.2.0"
+      sources."retext-profanities-6.1.0"
+      sources."safe-buffer-5.2.1"
       sources."semver-5.7.1"
-      sources."semver-diff-2.1.0"
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.0"
-      sources."shellsubstitute-1.2.0"
+      (sources."semver-diff-3.1.1" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."signal-exit-3.0.3"
       sources."sliced-1.0.1"
+      sources."space-separated-tokens-1.1.5"
       (sources."spawn-to-readstream-0.1.3" // {
         dependencies = [
           sources."object-keys-0.4.0"
@@ -81365,17 +85738,29 @@ in
       sources."sprintf-js-1.0.3"
       sources."state-toggle-1.0.3"
       sources."stream-combiner-0.0.4"
-      sources."string-width-2.1.1"
+      (sources."string-width-4.2.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
       sources."string_decoder-0.10.31"
-      sources."strip-ansi-4.0.0"
-      sources."strip-bom-2.0.0"
-      sources."strip-eof-1.0.0"
-      sources."strip-indent-1.0.1"
+      sources."stringify-entities-3.0.1"
+      sources."strip-ansi-5.2.0"
+      sources."strip-indent-3.0.0"
       sources."strip-json-comments-2.0.1"
       sources."structured-source-3.0.2"
       sources."supports-color-5.5.0"
-      sources."term-size-1.2.0"
-      sources."textlint-rule-helper-2.1.1"
+      sources."term-size-2.2.0"
+      (sources."textlint-rule-helper-2.1.1" // {
+        dependencies = [
+          sources."unist-util-is-3.0.0"
+          sources."unist-util-visit-1.4.1"
+          sources."unist-util-visit-parents-2.1.2"
+        ];
+      })
       sources."through-2.3.8"
       (sources."through2-2.0.0" // {
         dependencies = [
@@ -81383,63 +85768,73 @@ in
           sources."readable-stream-2.0.6"
         ];
       })
-      sources."timed-out-4.0.1"
-      sources."to-vfile-2.2.0"
+      sources."to-readable-stream-1.0.0"
+      sources."to-vfile-6.1.0"
       sources."trim-0.0.1"
-      sources."trim-newlines-1.0.0"
+      sources."trim-newlines-3.0.0"
       sources."trim-trailing-lines-1.1.3"
       sources."trough-1.0.5"
+      sources."type-fest-0.13.1"
       sources."typedarray-0.0.6"
+      sources."typedarray-to-buffer-3.1.5"
       sources."unherit-1.1.3"
-      sources."unified-6.2.0"
-      sources."unified-diff-1.0.2"
-      (sources."unified-engine-4.0.1" // {
+      (sources."unified-9.2.0" // {
         dependencies = [
-          sources."debug-2.6.9"
-          sources."ms-2.0.0"
+          sources."is-plain-obj-2.1.0"
         ];
       })
-      sources."unified-message-control-1.0.4"
-      sources."unique-string-1.0.0"
-      sources."unist-util-is-3.0.0"
+      sources."unified-diff-3.0.1"
+      (sources."unified-engine-8.0.0" // {
+        dependencies = [
+          sources."is-plain-obj-2.1.0"
+        ];
+      })
+      (sources."unified-message-control-3.0.1" // {
+        dependencies = [
+          sources."vfile-location-3.1.0"
+        ];
+      })
+      sources."unique-string-2.0.0"
+      sources."unist-util-inspect-5.0.1"
+      sources."unist-util-is-4.0.2"
       sources."unist-util-modify-children-1.1.6"
       sources."unist-util-position-3.1.0"
-      sources."unist-util-remove-position-1.1.4"
-      sources."unist-util-stringify-position-1.1.2"
-      sources."unist-util-visit-1.4.1"
+      sources."unist-util-remove-position-2.0.1"
+      sources."unist-util-stringify-position-2.0.3"
+      sources."unist-util-visit-2.0.3"
       sources."unist-util-visit-children-1.1.4"
-      sources."unist-util-visit-parents-2.1.2"
-      sources."untildify-2.1.0"
-      sources."unzip-response-2.0.1"
-      sources."update-notifier-2.5.0"
-      sources."url-parse-lax-1.0.0"
+      sources."unist-util-visit-parents-3.1.0"
+      (sources."update-notifier-4.1.1" // {
+        dependencies = [
+          sources."ansi-styles-4.2.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."supports-color-7.2.0"
+        ];
+      })
+      sources."url-parse-lax-3.0.0"
       sources."util-deprecate-1.0.2"
       sources."validate-npm-package-license-3.0.4"
-      sources."vfile-2.3.0"
-      sources."vfile-find-up-2.0.2"
+      sources."vfile-4.2.0"
+      sources."vfile-find-up-5.0.1"
       sources."vfile-location-2.0.6"
-      sources."vfile-message-1.1.1"
-      (sources."vfile-reporter-4.0.0" // {
+      sources."vfile-message-2.0.4"
+      (sources."vfile-reporter-6.0.1" // {
         dependencies = [
-          sources."ansi-regex-2.1.1"
-          sources."has-flag-2.0.0"
-          sources."is-fullwidth-code-point-1.0.0"
-          sources."string-width-1.0.2"
-          sources."strip-ansi-3.0.1"
-          sources."supports-color-4.5.0"
+          sources."supports-color-6.1.0"
         ];
       })
       sources."vfile-sort-2.2.2"
       sources."vfile-statistics-1.1.4"
-      sources."which-1.3.1"
-      sources."widest-line-2.0.1"
+      sources."web-namespaces-1.1.4"
+      sources."widest-line-3.1.0"
       sources."wrappy-1.0.2"
-      sources."write-file-atomic-2.4.3"
-      sources."x-is-function-1.0.4"
-      sources."x-is-string-0.1.0"
-      sources."xdg-basedir-3.0.0"
+      sources."write-file-atomic-3.0.3"
+      sources."xdg-basedir-4.0.0"
       sources."xtend-4.0.2"
-      sources."yallist-2.1.2"
+      sources."yargs-parser-18.1.3"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -81486,7 +85881,7 @@ in
     };
     dependencies = [
       sources."match-casing-1.0.3"
-      sources."strip-json-comments-3.1.0"
+      sources."strip-json-comments-3.1.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -81581,8 +85976,8 @@ in
       sha512 = "HydBbkWjnMn4KrnlpnusY1BGjIG+64UySxRCvRphUAIiuJL2nbkdrIIiOjwfQhllKUa7Sf33bs6RAcbEWjZVfg==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.2.5"
-      sources."@textlint/types-1.3.1"
+      sources."@textlint/ast-node-types-4.3.4"
+      sources."@textlint/types-1.4.5"
       sources."boundary-1.0.1"
       sources."buffer-from-1.1.1"
       sources."concat-stream-2.0.0"
@@ -81595,7 +85990,7 @@ in
       sources."inherits-2.0.4"
       sources."is-callable-1.2.0"
       sources."is-date-object-1.0.2"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."object-assign-4.1.1"
       sources."object-inspect-1.8.0"
@@ -81647,7 +86042,7 @@ in
       sources."has-symbols-1.0.1"
       sources."is-callable-1.2.0"
       sources."is-date-object-1.0.2"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
@@ -81668,16 +86063,16 @@ in
   textlint-rule-stop-words = nodeEnv.buildNodePackage {
     name = "textlint-rule-stop-words";
     packageName = "textlint-rule-stop-words";
-    version = "2.0.5";
+    version = "2.0.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-stop-words/-/textlint-rule-stop-words-2.0.5.tgz";
-      sha512 = "2oEtKX3xLpV+/K3vYiqMVeoCa5XcIylBRVV9swAXz2xTC9sg4qcJTbn4Ts0P1wZ0TZ4GPnaDj4Eb9PLFx7Ypyw==";
+      url = "https://registry.npmjs.org/textlint-rule-stop-words/-/textlint-rule-stop-words-2.0.6.tgz";
+      sha512 = "9xvmzSaye+7MJBkuq7+oVskCiSXQc/TaCeGoSV4+6n2JYMBOFu8OiDKKE3HDtnLlg9K7H0mbhNEySLGF9kPntQ==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.2.5"
-      sources."@textlint/types-1.3.1"
+      sources."@textlint/ast-node-types-4.3.4"
+      sources."@textlint/types-1.4.5"
       sources."boundary-1.0.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."split-lines-2.0.0"
       sources."structured-source-3.0.2"
       sources."textlint-rule-helper-2.1.1"
@@ -81704,11 +86099,11 @@ in
       sha512 = "kLw4qL8RwY2lCNqgKveHc5sjCDlS5Tdw2TXWOrHvSvQxqaVOwsv3+51oMIQLGfJzQrhFSMlSlw5MvfaOerBvPQ==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.2.5"
-      sources."@textlint/types-1.3.1"
+      sources."@textlint/ast-node-types-4.3.4"
+      sources."@textlint/types-1.4.5"
       sources."boundary-1.0.1"
-      sources."lodash-4.17.15"
-      sources."strip-json-comments-3.1.0"
+      sources."lodash-4.17.20"
+      sources."strip-json-comments-3.1.1"
       sources."structured-source-3.0.2"
       sources."textlint-rule-helper-2.1.1"
       sources."unist-util-is-3.0.0"
@@ -81744,7 +86139,7 @@ in
       sources."is-callable-1.2.0"
       sources."is-capitalized-1.0.0"
       sources."is-date-object-1.0.2"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
       sources."object-inspect-1.8.0"
@@ -81772,8 +86167,8 @@ in
       sha1 = "3c79b04091319d4e8be5fb442c596bf500e8493e";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.2.5"
-      sources."@textlint/types-1.3.1"
+      sources."@textlint/ast-node-types-4.3.4"
+      sources."@textlint/types-1.4.5"
       sources."adverb-where-0.0.9"
       sources."boundary-1.0.1"
       sources."define-properties-1.1.3"
@@ -81806,13 +86201,13 @@ in
   thelounge = nodeEnv.buildNodePackage {
     name = "thelounge";
     packageName = "thelounge";
-    version = "4.1.0";
+    version = "4.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/thelounge/-/thelounge-4.1.0.tgz";
-      sha512 = "ozjuU9/DaxT5r7ivckvdrzTLRoMCOiUlNbEAxldoHD3jzbbCEm561rHkEw0Caek31tOL4y0yqHiFuRBRoGbmiQ==";
+      url = "https://registry.npmjs.org/thelounge/-/thelounge-4.2.0.tgz";
+      sha512 = "5hijX1V/4CrgrkqCqtwP32LSbLPSF/10nneI+2doPHKx7AdCgR52HqWZo0AQEPv4fvOqEOMLJ0c9pL6t/jUDwg==";
     };
     dependencies = [
-      sources."@sindresorhus/is-2.1.1"
+      sources."@sindresorhus/is-3.1.2"
       sources."@szmarczak/http-timer-4.0.5"
       sources."@tokenizer/token-0.1.1"
       sources."@types/cacheable-request-6.0.1"
@@ -81820,14 +86215,19 @@ 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.0.14"
+      sources."@types/node-14.6.3"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
-      sources."abstract-logging-1.0.0"
+      sources."abstract-logging-2.0.0"
       sources."accepts-1.3.7"
       sources."after-0.8.2"
-      sources."agent-base-4.3.0"
-      sources."ajv-6.12.2"
+      (sources."agent-base-6.0.1" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."ajv-6.12.4"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-4.2.1"
       sources."aproba-1.2.0"
@@ -81847,7 +86247,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."backo2-1.0.2"
       sources."backoff-2.5.0"
       sources."balanced-match-1.0.0"
@@ -81857,6 +86257,7 @@ in
       sources."bcryptjs-2.4.3"
       sources."better-assert-1.0.2"
       sources."blob-0.0.5"
+      sources."block-stream-0.0.9"
       sources."bn.js-4.11.9"
       sources."body-parser-1.19.0"
       sources."boolbase-1.0.0"
@@ -81864,23 +86265,19 @@ in
       sources."buffer-equal-constant-time-1.0.1"
       sources."busboy-0.3.1"
       sources."bytes-3.1.0"
-      sources."cacheable-lookup-2.0.1"
+      sources."cacheable-lookup-5.0.3"
       sources."cacheable-request-7.0.1"
       sources."callsite-1.0.0"
       sources."caseless-0.12.0"
-      sources."chalk-3.0.0"
+      sources."chalk-4.1.0"
       sources."cheerio-1.0.0-rc.3"
       sources."chownr-1.1.4"
-      (sources."clone-response-1.0.2" // {
-        dependencies = [
-          sources."mimic-response-1.0.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."combined-stream-1.0.8"
-      sources."commander-4.1.0"
+      sources."commander-6.0.0"
       sources."component-bind-1.0.0"
       sources."component-emitter-1.2.1"
       sources."component-inherit-0.0.3"
@@ -81900,7 +86297,11 @@ in
       sources."css-what-2.1.3"
       sources."dashdash-1.14.1"
       sources."debug-2.6.9"
-      sources."decompress-response-5.0.0"
+      (sources."decompress-response-6.0.0" // {
+        dependencies = [
+          sources."mimic-response-3.1.0"
+        ];
+      })
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-2.0.0"
       sources."delayed-stream-1.0.0"
@@ -81936,12 +86337,10 @@ in
       })
       sources."engine.io-parser-2.2.0"
       sources."entities-1.1.2"
-      sources."es6-promise-4.2.8"
-      sources."es6-promisify-5.0.0"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
       sources."etag-1.8.1"
-      sources."eventemitter3-2.0.3"
+      sources."eventemitter3-4.0.7"
       (sources."express-4.17.1" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
@@ -81952,7 +86351,7 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-text-encoding-1.0.3"
-      sources."file-type-14.1.3"
+      sources."file-type-14.7.1"
       sources."filename-reserved-regex-2.0.0"
       sources."filenamify-4.1.0"
       sources."finalhandler-1.1.2"
@@ -81960,18 +86359,18 @@ in
       sources."form-data-2.3.3"
       sources."forwarded-0.1.2"
       sources."fresh-0.5.2"
-      sources."fs-extra-8.1.0"
       sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
+      sources."fstream-1.0.12"
       sources."gauge-2.7.4"
-      sources."get-stream-5.1.0"
+      sources."get-stream-5.2.0"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
-      sources."got-10.6.0"
+      sources."got-11.5.2"
       sources."graceful-fs-4.2.4"
       sources."grapheme-splitter-1.0.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-binary2-1.0.3"
       sources."has-cors-1.1.0"
       sources."has-flag-4.0.0"
@@ -81984,10 +86383,11 @@ in
         ];
       })
       sources."http-signature-1.2.0"
+      sources."http2-wrapper-1.0.0-beta.5.2"
       sources."http_ece-1.1.0"
-      (sources."https-proxy-agent-3.0.1" // {
+      (sources."https-proxy-agent-5.0.0" // {
         dependencies = [
-          sources."debug-3.2.6"
+          sources."debug-4.2.0"
           sources."ms-2.1.2"
         ];
       })
@@ -81999,11 +86399,16 @@ in
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
       sources."ipaddr.js-1.9.1"
-      sources."irc-framework-4.7.0"
+      (sources."irc-framework-4.9.0" // {
+        dependencies = [
+          sources."iconv-lite-0.6.2"
+        ];
+      })
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
       sources."isarray-2.0.1"
+      sources."isexe-2.0.0"
       sources."isomorphic-textencoder-1.0.1"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
@@ -82011,28 +86416,27 @@ in
       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" // {
         dependencies = [
           sources."extsprintf-1.3.0"
         ];
       })
-      sources."jwa-1.4.1"
-      sources."jws-3.2.2"
+      sources."jwa-2.0.0"
+      sources."jws-4.0.0"
       sources."keyv-4.0.1"
       sources."ldap-filter-0.3.3"
-      sources."ldapjs-2.0.0-pre.5"
-      sources."linkify-it-2.2.0"
-      sources."lodash-4.17.15"
+      sources."ldapjs-2.1.1"
+      sources."linkify-it-3.0.2"
+      sources."lodash-4.17.20"
       sources."lowercase-keys-2.0.0"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."middleware-handler-0.2.0"
       sources."mime-1.6.0"
-      sources."mime-db-1.43.0"
-      sources."mime-types-2.1.26"
-      sources."mimic-response-2.1.0"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
+      sources."mimic-response-1.0.1"
       sources."minimalistic-assert-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -82041,14 +86445,22 @@ in
       sources."mkdirp-0.5.5"
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
-      sources."nan-2.14.1"
-      (sources."needle-2.5.0" // {
+      (sources."needle-2.5.2" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."ms-2.1.2"
         ];
       })
       sources."negotiator-0.6.2"
+      sources."node-addon-api-2.0.0"
+      sources."node-forge-0.9.1"
+      (sources."node-gyp-3.8.0" // {
+        dependencies = [
+          sources."nopt-3.0.6"
+          sources."semver-5.3.0"
+          sources."tar-2.2.2"
+        ];
+      })
       (sources."node-pre-gyp-0.11.0" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -82071,9 +86483,7 @@ in
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
       sources."p-cancelable-2.0.0"
-      sources."p-event-4.2.0"
       sources."p-finally-1.0.0"
-      sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
       (sources."package-json-6.5.0" // {
         dependencies = [
@@ -82081,7 +86491,7 @@ in
           sources."@szmarczak/http-timer-1.1.2"
           (sources."cacheable-request-6.1.0" // {
             dependencies = [
-              sources."get-stream-5.1.0"
+              sources."get-stream-5.2.0"
               sources."lowercase-keys-2.0.0"
             ];
           })
@@ -82092,11 +86502,9 @@ in
           sources."json-buffer-3.0.0"
           sources."keyv-3.1.0"
           sources."lowercase-keys-1.0.1"
-          sources."mimic-response-1.0.1"
           sources."p-cancelable-1.1.0"
           sources."responselike-1.0.2"
           sources."semver-6.3.0"
-          sources."to-readable-stream-1.0.0"
         ];
       })
       sources."parse5-3.0.3"
@@ -82116,6 +86524,7 @@ in
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."qs-6.7.0"
+      sources."quick-lru-5.1.1"
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
       sources."rc-1.2.8"
@@ -82123,8 +86532,8 @@ 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.5"
-      sources."registry-auth-token-4.1.1"
+      sources."regenerator-runtime-0.13.7"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       (sources."request-2.88.2" // {
         dependencies = [
@@ -82132,12 +86541,13 @@ in
           sources."uuid-3.4.0"
         ];
       })
+      sources."resolve-alpn-1.0.0"
       sources."responselike-2.0.0"
       sources."rimraf-2.7.1"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      sources."semver-7.1.3"
+      sources."semver-7.3.2"
       (sources."send-0.17.1" // {
         dependencies = [
           sources."ms-2.1.1"
@@ -82177,7 +86587,7 @@ in
           sources."ipaddr.js-0.1.3"
         ];
       })
-      sources."sqlite3-4.1.1"
+      sources."sqlite3-5.0.0"
       sources."sshpk-1.16.1"
       sources."statuses-1.5.0"
       sources."streamsearch-0.1.2"
@@ -82186,47 +86596,41 @@ in
       sources."strip-ansi-3.0.1"
       sources."strip-json-comments-2.0.1"
       sources."strip-outer-1.0.1"
-      (sources."strtok3-6.0.3" // {
-        dependencies = [
-          sources."debug-4.2.0"
-          sources."ms-2.1.2"
-        ];
-      })
-      sources."supports-color-7.1.0"
+      sources."strtok3-6.0.4"
+      sources."supports-color-7.2.0"
       sources."tar-4.4.13"
-      sources."tlds-1.207.0"
+      sources."tlds-1.208.0"
       sources."to-array-0.1.4"
-      sources."to-readable-stream-2.1.0"
+      sources."to-readable-stream-1.0.0"
       sources."toidentifier-1.0.0"
       sources."token-types-2.0.0"
       sources."tough-cookie-2.5.0"
       sources."trim-repeated-1.0.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."type-fest-0.10.0"
       sources."type-is-1.6.18"
       sources."typedarray-to-buffer-3.1.5"
       sources."ua-parser-js-0.7.21"
       sources."uc.micro-1.0.6"
-      sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."url-parse-lax-3.0.0"
       sources."urlsafe-base64-1.0.0"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
-      sources."uuid-7.0.1"
+      sources."uuid-8.3.0"
       sources."vary-1.1.2"
       sources."vasync-2.2.0"
       sources."verror-1.10.0"
-      sources."web-push-3.4.3"
+      sources."web-push-3.4.4"
+      sources."which-1.3.1"
       sources."wide-align-1.1.3"
       sources."with-open-file-0.1.7"
       sources."wrappy-1.0.2"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."yallist-3.1.1"
-      sources."yarn-1.22.0"
+      sources."yarn-1.22.4"
       sources."yeast-0.1.2"
     ];
     buildInputs = globalBuildInputs;
@@ -82242,10 +86646,10 @@ in
   three = nodeEnv.buildNodePackage {
     name = "three";
     packageName = "three";
-    version = "0.118.3";
+    version = "0.120.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/three/-/three-0.118.3.tgz";
-      sha512 = "ijECXrNzDkHieoeh2H69kgawTGH8DiamhR4uBN8jEM7VHSKvfTdEvOoHsA8Aq7dh7PHAxhlqBsN5arBI3KixSw==";
+      url = "https://registry.npmjs.org/three/-/three-0.120.1.tgz";
+      sha512 = "ktaCRFUR7JUZcKec+cBRz+oBex5pOVaJhrtxvFF2T7on53o9UkEux+/Nh1g/4zeb4t/pbxIFcADbn/ACu3LC1g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -82285,13 +86689,13 @@ in
     };
     dependencies = [
       sources."adm-zip-0.4.13"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
@@ -82324,7 +86728,7 @@ in
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."http-signature-1.2.0"
       sources."humanize-0.0.9"
       sources."inflight-1.0.6"
@@ -82338,7 +86742,7 @@ in
       sources."jsonfile-4.0.0"
       sources."jsprim-1.4.1"
       sources."keypress-0.2.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."minimatch-3.0.4"
@@ -82377,7 +86781,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."uglify-js-3.4.10"
       sources."universalify-0.1.2"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."uuid-3.3.3"
       sources."verror-1.10.0"
       (sources."winston-1.1.2" // {
@@ -82403,10 +86807,10 @@ in
   triton = nodeEnv.buildNodePackage {
     name = "triton";
     packageName = "triton";
-    version = "7.9.0";
+    version = "7.11.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/triton/-/triton-7.9.0.tgz";
-      sha512 = "PCZVVbdI90e07avgNyBJiw32Q0YIFwqgIW/HFbU5g3Hh/+P5VBJP8TBlkXM27VCM7L3hyCC3z9K8uq9mI8aIVQ==";
+      url = "https://registry.npmjs.org/triton/-/triton-7.11.0.tgz";
+      sha512 = "NycwGp9drvi9uJUo7PCmET470f+ZWzvzJ7d06hcI+Y0LZSLtZN+gxFz+YjLpt14Zifqs/751IcEhp7cCGThBxA==";
     };
     dependencies = [
       sources."asn1-0.2.4"
@@ -82462,7 +86866,7 @@ in
         ];
       })
       sources."keep-alive-agent-0.0.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       (sources."lomstream-1.1.0" // {
         dependencies = [
           sources."assert-plus-0.1.5"
@@ -82607,7 +87011,7 @@ in
       sha512 = "N8E1X543CWEjg0/A70ZnA/kfAfAY/uogILsIuWBhHGxzv9kaJaj7/JCSwDiBH86CPEy37chSgW86KxVeYKsswQ==";
     };
     dependencies = [
-      sources."@types/node-6.14.10"
+      sources."@types/node-6.14.11"
       sources."ansi-0.3.1"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
@@ -82673,10 +87077,10 @@ in
   typescript = nodeEnv.buildNodePackage {
     name = "typescript";
     packageName = "typescript";
-    version = "3.9.5";
+    version = "4.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz";
-      sha512 = "hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==";
+      url = "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz";
+      sha512 = "e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -82727,10 +87131,10 @@ in
   uglify-js = nodeEnv.buildNodePackage {
     name = "uglify-js";
     packageName = "uglify-js";
-    version = "3.10.0";
+    version = "3.10.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.0.tgz";
-      sha512 = "Esj5HG5WAyrLIdYU74Z3JdG2PxdIusvj6IWHMtlyESxc7kcDz7zYlYjpnSokn1UbpV0d/QX9fan7gkCNd/9BQA==";
+      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.3.tgz";
+      sha512 = "Lh00i69Uf6G74mvYpHCI9KVVXLcHW/xu79YTvH7Mkc9zyKUeSPz0owW0dguj0Scavns3ZOh3wY63J0Zb97Za2g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -82745,17 +87149,18 @@ in
   ungit = nodeEnv.buildNodePackage {
     name = "ungit";
     packageName = "ungit";
-    version = "1.5.7";
+    version = "1.5.10";
     src = fetchurl {
-      url = "https://registry.npmjs.org/ungit/-/ungit-1.5.7.tgz";
-      sha512 = "EQAeMXAuWZYpOsSZSEcqxqKShLcGWuCTVExcdyKNvwmw2GR8I/qKg6l8dQENeYB4DC+wzxKJTX054iun+RrvqQ==";
+      url = "https://registry.npmjs.org/ungit/-/ungit-1.5.10.tgz";
+      sha512 = "WLrNg3hngoQJc3Ka1NxbWQMYjFJx013Xd9hNiRvHU1NUFMy8H5/5dT83Wh64gr2CJz5zNQlrqTkrfaWbwS/jEQ==";
     };
     dependencies = [
-      sources."@primer/octicons-9.6.0"
+      sources."@dabh/diagnostics-2.0.2"
+      sources."@primer/octicons-10.1.0"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/color-name-1.1.1"
-      sources."@types/node-13.13.12"
+      sources."@types/node-14.6.3"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       sources."after-0.8.2"
@@ -82768,7 +87173,7 @@ in
       })
       sources."array-flatten-1.1.1"
       sources."arraybuffer.slice-0.0.7"
-      sources."async-2.6.3"
+      sources."async-3.2.0"
       sources."async-limiter-1.0.1"
       sources."backo2-1.0.2"
       sources."balanced-match-1.0.0"
@@ -82776,14 +87181,14 @@ in
       sources."base64id-2.0.0"
       sources."better-assert-1.0.2"
       sources."blob-0.0.5"
-      sources."bluebird-3.7.2"
-      sources."blueimp-md5-2.14.0"
+      sources."blueimp-md5-2.17.0"
       sources."body-parser-1.19.0"
+      sources."bootstrap-3.4.1"
       sources."brace-expansion-1.1.11"
       sources."bytes-3.1.0"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
@@ -82796,7 +87201,6 @@ in
       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.4.0"
       sources."colorspace-1.1.2"
       sources."component-bind-1.0.0"
@@ -82817,14 +87221,13 @@ in
       sources."defer-to-connect-1.1.3"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."diagnostics-1.1.1"
       sources."diff-4.0.2"
-      sources."diff2html-3.1.8"
+      sources."diff2html-3.1.12"
       sources."dnd-page-scroll-0.0.4"
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
       sources."emoji-regex-8.0.0"
-      sources."enabled-1.0.2"
+      sources."enabled-2.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       (sources."engine.io-3.4.2" // {
@@ -82843,7 +87246,6 @@ in
         ];
       })
       sources."engine.io-parser-2.2.0"
-      sources."env-variable-0.0.6"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
       sources."eve-0.5.4"
@@ -82858,12 +87260,13 @@ in
       sources."fecha-4.2.0"
       sources."finalhandler-1.1.2"
       sources."find-up-4.1.0"
+      sources."fn.name-1.1.0"
       sources."forwarded-0.1.2"
       sources."fresh-0.5.2"
       sources."fs.realpath-1.0.0"
       sources."get-caller-file-2.0.5"
       sources."get-stream-4.1.0"
-      sources."getmac-5.2.0"
+      sources."getmac-5.15.0"
       sources."glob-7.1.6"
       sources."got-9.6.0"
       sources."has-binary2-1.0.3"
@@ -82884,9 +87287,9 @@ in
       sources."ini-1.3.5"
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.3.2"
-      sources."is-docker-2.0.0"
+      sources."is-docker-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
-      sources."is-stream-1.1.0"
+      sources."is-stream-2.0.0"
       sources."is-wsl-2.2.0"
       sources."isarray-2.0.1"
       sources."jquery-3.5.1"
@@ -82895,11 +87298,11 @@ in
       sources."just-detect-adblock-1.0.0"
       sources."keyv-3.1.0"
       sources."knockout-3.5.1"
-      sources."kuler-1.0.1"
+      sources."kuler-2.0.0"
       sources."latest-version-5.1.0"
       sources."locate-path-5.0.0"
       sources."locks-0.2.2"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       (sources."logform-2.2.0" // {
         dependencies = [
           sources."ms-2.1.2"
@@ -82922,10 +87325,10 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-1.0.4"
-      sources."moment-2.25.3"
+      sources."moment-2.27.0"
       sources."ms-2.0.0"
       sources."negotiator-0.6.2"
-      sources."node-cache-5.1.1"
+      sources."node-cache-5.1.2"
       sources."nopt-1.0.10"
       sources."normalize-url-4.5.0"
       sources."nprogress-0.2.0"
@@ -82934,8 +87337,8 @@ in
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
-      sources."one-time-0.0.4"
-      sources."open-7.0.4"
+      sources."one-time-1.0.0"
+      sources."open-7.2.1"
       sources."p-cancelable-1.1.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
@@ -82967,7 +87370,7 @@ in
       sources."raw-body-2.4.0"
       sources."rc-1.2.8"
       sources."readable-stream-3.6.0"
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
@@ -83040,7 +87443,7 @@ in
       sources."utils-merge-1.0.1"
       sources."vary-1.1.2"
       sources."which-module-2.0.0"
-      sources."winston-3.2.1"
+      sources."winston-3.3.3"
       (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -83050,11 +87453,11 @@ in
       })
       sources."wrap-ansi-6.2.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."y18n-4.0.0"
       sources."yallist-2.1.2"
-      sources."yargs-15.3.1"
+      sources."yargs-15.4.1"
       sources."yargs-parser-18.1.3"
       sources."yeast-0.1.2"
     ];
@@ -83068,6 +87471,24 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  vim-language-server = nodeEnv.buildNodePackage {
+    name = "vim-language-server";
+    packageName = "vim-language-server";
+    version = "2.1.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/vim-language-server/-/vim-language-server-2.1.0.tgz";
+      sha512 = "i0PTJh2XEPEUvRn78j1nxTlNVcTOKr4FLwIwhkjaC0ovGGViwnBgRd7StM0NS3UCvcVzLNy78Hu31S7RHkiHbw==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "vim language server";
+      homepage = "https://github.com/iamcco/vim-language-server#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   vscode-css-languageserver-bin = nodeEnv.buildNodePackage {
     name = "vscode-css-languageserver-bin";
     packageName = "vscode-css-languageserver-bin";
@@ -83134,6 +87555,57 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  vscode-json-languageserver-bin = nodeEnv.buildNodePackage {
+    name = "vscode-json-languageserver-bin";
+    packageName = "vscode-json-languageserver-bin";
+    version = "1.0.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/vscode-json-languageserver-bin/-/vscode-json-languageserver-bin-1.0.1.tgz";
+      sha512 = "WU+Ks0OEo1c4pgFUA4gIockhzlRqWqSRL2NXHOCtYhJnuIqfrNgSyECZC+nCMyn/CnzpPuQQjzC74GWlIRXnZQ==";
+    };
+    dependencies = [
+      sources."agent-base-4.3.0"
+      sources."debug-3.1.0"
+      sources."es6-promise-4.2.8"
+      sources."es6-promisify-5.0.0"
+      sources."http-proxy-agent-2.1.0"
+      sources."https-proxy-agent-2.2.4"
+      sources."jsonc-parser-1.0.3"
+      sources."ms-2.0.0"
+      (sources."request-light-0.2.5" // {
+        dependencies = [
+          sources."vscode-nls-4.1.2"
+        ];
+      })
+      (sources."vscode-json-languageservice-3.8.3" // {
+        dependencies = [
+          sources."jsonc-parser-2.3.0"
+          sources."vscode-nls-4.1.2"
+          sources."vscode-uri-2.1.2"
+        ];
+      })
+      sources."vscode-jsonrpc-3.5.0"
+      sources."vscode-languageserver-3.5.1"
+      (sources."vscode-languageserver-protocol-3.5.1" // {
+        dependencies = [
+          sources."vscode-languageserver-types-3.5.0"
+        ];
+      })
+      sources."vscode-languageserver-textdocument-1.0.1"
+      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-nls-2.0.2"
+      sources."vscode-uri-1.0.8"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "JSON language server";
+      homepage = "https://github.com/vscode-langservers/vscode-json-languageserver-bin#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   vue-cli = nodeEnv.buildNodePackage {
     name = "vue-cli";
     packageName = "vue-cli";
@@ -83144,7 +87616,7 @@ in
     };
     dependencies = [
       sources."absolute-0.0.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ansi-escapes-3.2.0"
       sources."ansi-red-0.1.1"
       sources."ansi-regex-3.0.0"
@@ -83160,11 +87632,11 @@ in
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."bl-1.2.2"
+      sources."bl-1.2.3"
       sources."bluebird-3.7.2"
       sources."brace-expansion-1.1.11"
       sources."buffer-5.6.0"
@@ -83243,11 +87715,10 @@ in
       sources."glob-7.1.6"
       sources."got-6.7.1"
       sources."graceful-fs-4.2.4"
-      sources."graceful-readlink-1.0.1"
       sources."gray-matter-2.1.1"
       sources."handlebars-4.7.6"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       (sources."has-ansi-2.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -83285,7 +87756,7 @@ in
       sources."jsonfile-2.4.0"
       sources."jsprim-1.4.1"
       sources."klaw-1.3.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."log-symbols-2.2.0"
       sources."lowercase-keys-1.0.1"
       (sources."make-dir-1.3.0" // {
@@ -83310,7 +87781,7 @@ in
       sources."mkdirp-0.5.5"
       sources."multimatch-2.1.0"
       sources."mute-stream-0.0.7"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       (sources."npm-conf-1.1.3" // {
         dependencies = [
           sources."pify-3.0.0"
@@ -83346,14 +87817,10 @@ in
       sources."restore-cursor-2.0.0"
       sources."rimraf-2.7.1"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.2"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      (sources."seek-bzip-1.0.5" // {
-        dependencies = [
-          sources."commander-2.8.1"
-        ];
-      })
+      sources."seek-bzip-1.0.6"
       sources."semver-5.7.1"
       sources."signal-exit-3.0.3"
       sources."source-map-0.6.1"
@@ -83392,12 +87859,12 @@ in
       sources."tslib-1.13.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uglify-js-3.10.0"
+      sources."uglify-js-3.10.3"
       sources."uid-0.0.2"
       sources."unbzip2-stream-1.4.3"
       sources."unyield-0.0.1"
       sources."unzip-response-2.0.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."url-parse-lax-1.0.0"
       sources."url-to-options-1.0.1"
       sources."user-home-2.0.0"
@@ -83433,9 +87900,9 @@ in
       sha512 = "/dd2bJLxOmX8Ie0EPTlmU+F8cxAekn/1m8K9OAFoijm4fc8SdHznFUUEKuz2RMMhsaL5+rccj8xLFAJELYNbaA==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      sources."@babel/highlight-7.10.3"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
       sources."@emmetio/extract-abbreviation-0.1.6"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
@@ -83451,14 +87918,14 @@ 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.0.14"
+      sources."@types/node-14.6.3"
       sources."@types/unist-2.0.3"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
       sources."abbrev-1.1.1"
       sources."acorn-6.4.1"
       sources."acorn-jsx-5.2.0"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ajv-keywords-2.1.1"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
@@ -83525,7 +87992,7 @@ in
       sources."cache-base-1.0.1"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
@@ -83574,7 +88041,7 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-cursor-2.1.0"
       sources."cli-width-2.2.1"
       sources."cliui-4.1.0"
@@ -83630,7 +88097,7 @@ in
       sources."dir-glob-2.0.0"
       sources."dlv-1.1.3"
       sources."doctrine-3.0.0"
-      sources."dot-prop-4.2.0"
+      sources."dot-prop-4.2.1"
       sources."duplexer3-0.1.4"
       sources."editorconfig-0.15.3"
       sources."element-helper-json-2.0.6"
@@ -83647,7 +88114,7 @@ in
       })
       (sources."eslint-plugin-vue-6.2.2" // {
         dependencies = [
-          sources."acorn-7.3.1"
+          sources."acorn-7.4.0"
           sources."debug-4.2.0"
           sources."eslint-scope-5.1.0"
           sources."espree-6.2.1"
@@ -83661,10 +88128,14 @@ in
       sources."esprima-4.0.1"
       (sources."esquery-1.3.1" // {
         dependencies = [
-          sources."estraverse-5.1.0"
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."execa-0.7.0"
@@ -83762,14 +88233,14 @@ in
       sources."has-yarn-2.1.0"
       sources."hast-util-embedded-1.0.5"
       sources."hast-util-has-property-1.0.4"
-      sources."hast-util-is-body-ok-link-1.0.3"
-      sources."hast-util-is-element-1.0.4"
+      sources."hast-util-is-body-ok-link-1.0.4"
+      sources."hast-util-is-element-1.1.0"
       sources."hast-util-parse-selector-2.2.4"
-      sources."hast-util-to-string-1.0.3"
+      sources."hast-util-to-string-1.0.4"
       sources."hast-util-whitespace-1.0.4"
       sources."hosted-git-info-2.8.8"
       sources."html-void-elements-1.0.5"
-      sources."html-whitespace-sensitive-tag-names-1.0.2"
+      sources."html-whitespace-sensitive-tag-names-1.0.3"
       sources."http-cache-semantics-4.1.0"
       sources."iconv-lite-0.4.24"
       sources."ignore-3.3.10"
@@ -83829,7 +88300,7 @@ in
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
-      (sources."js-beautify-1.11.0" // {
+      (sources."js-beautify-1.13.0" // {
         dependencies = [
           sources."mkdirp-1.0.4"
         ];
@@ -83850,13 +88321,13 @@ in
       sources."load-json-file-4.0.0"
       sources."load-plugin-2.3.1"
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.assign-4.2.0"
       sources."lodash.defaults-4.2.0"
       sources."lodash.iteratee-4.7.0"
       sources."lodash.merge-4.6.2"
       sources."lodash.unescape-4.0.1"
-      sources."loglevel-1.6.8"
+      sources."loglevel-1.7.0"
       (sources."loglevel-colored-level-prefix-1.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -83905,7 +88376,7 @@ in
       sources."nanomatch-1.2.13"
       sources."natural-compare-1.4.0"
       sources."nice-try-1.0.5"
-      sources."nopt-4.0.3"
+      sources."nopt-5.0.0"
       sources."normalize-package-data-2.5.0"
       sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.0"
@@ -83942,7 +88413,6 @@ in
         ];
       })
       sources."os-tmpdir-1.0.2"
-      sources."osenv-0.1.5"
       sources."p-cancelable-1.1.0"
       sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
@@ -84041,7 +88511,7 @@ in
       sources."regenerator-runtime-0.11.1"
       sources."regex-not-1.0.2"
       sources."regexpp-2.0.1"
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       sources."rehype-sort-attribute-values-2.0.1"
       (sources."remark-5.1.0" // {
@@ -84077,7 +88547,7 @@ in
       sources."run-async-2.4.1"
       sources."rx-lite-4.0.8"
       sources."rx-lite-aggregates-4.0.8"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.2"
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
@@ -84195,9 +88665,10 @@ in
           sources."yargs-parser-2.4.1"
         ];
       })
-      (sources."stylus-0.54.7" // {
+      (sources."stylus-0.54.8" // {
         dependencies = [
           sources."debug-3.1.0"
+          sources."mkdirp-1.0.4"
           sources."ms-2.0.0"
           sources."semver-6.3.0"
           sources."source-map-0.7.3"
@@ -84237,7 +88708,7 @@ in
       sources."type-check-0.3.2"
       sources."type-fest-0.3.1"
       sources."typedarray-0.0.6"
-      sources."typescript-3.9.5"
+      sources."typescript-3.9.7"
       (sources."typescript-eslint-parser-16.0.1" // {
         dependencies = [
           sources."semver-5.5.0"
@@ -84290,14 +88761,14 @@ in
       })
       sources."untildify-2.1.0"
       sources."update-notifier-3.0.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."url-parse-lax-3.0.0"
       sources."use-3.1.1"
       sources."user-home-2.0.0"
       sources."util-deprecate-1.0.2"
       sources."validate-npm-package-license-3.0.4"
-      sources."vfile-4.1.1"
+      sources."vfile-4.2.0"
       sources."vfile-location-2.0.6"
       sources."vfile-message-2.0.4"
       (sources."vfile-reporter-6.0.1" // {
@@ -84312,8 +88783,9 @@ in
       })
       sources."vfile-sort-2.2.2"
       sources."vfile-statistics-1.1.4"
-      (sources."vscode-css-languageservice-4.2.0" // {
+      (sources."vscode-css-languageservice-4.3.3" // {
         dependencies = [
+          sources."vscode-languageserver-types-3.16.0-next.2"
           sources."vscode-uri-2.1.2"
         ];
       })
@@ -84375,15 +88847,15 @@ in
   web-ext = nodeEnv.buildNodePackage {
     name = "web-ext";
     packageName = "web-ext";
-    version = "4.3.0";
+    version = "5.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/web-ext/-/web-ext-4.3.0.tgz";
-      sha512 = "1BCFeXuMY3QHnlkiUqgCV4ODNN84X3mX4GJk+Gb8tFv0Z8Grj4LneYa4A/0txoxpsz5E05THnKtb31t0XPJ8EQ==";
+      url = "https://registry.npmjs.org/web-ext/-/web-ext-5.0.0.tgz";
+      sha512 = "K5rzVijxNbOjxv+au1Sj7J82s1/CCyBQ9bhJE9TWdOD3OLELhC3bWJHyNJ1u2sT+kf8guaJjFvPnd6WG67PHtw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      (sources."@babel/highlight-7.10.3" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -84393,42 +88865,35 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@babel/polyfill-7.7.0"
-      sources."@babel/runtime-7.7.7"
-      sources."@babel/runtime-corejs3-7.10.3"
+      sources."@babel/polyfill-7.10.4"
+      sources."@babel/runtime-7.10.5"
       sources."@cliqz-oss/firefox-client-0.3.1"
       sources."@cliqz-oss/node-firefox-connect-1.2.1"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/color-name-1.1.1"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.0.14"
+      sources."@types/node-14.6.3"
       sources."JSONSelect-0.2.1"
-      sources."acorn-6.4.1"
+      sources."acorn-7.4.0"
       sources."acorn-jsx-5.2.0"
       sources."adbkit-2.11.1"
       sources."adbkit-logcat-1.1.0"
       sources."adbkit-monkey-1.0.1"
-      (sources."addons-linter-1.26.0" // {
-        dependencies = [
-          sources."@babel/runtime-7.10.2"
-        ];
-      })
+      sources."addons-linter-2.1.0"
       sources."adm-zip-0.4.16"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.3"
       sources."ajv-merge-patch-4.1.0"
-      (sources."ansi-align-3.0.0" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
-        ];
-      })
-      sources."ansi-escapes-3.2.0"
+      sources."ansi-align-3.0.0"
+      sources."ansi-colors-4.1.1"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-4.2.1"
       sources."any-promise-1.3.0"
-      sources."anymatch-2.0.0"
+      (sources."anymatch-3.1.1" // {
+        dependencies = [
+          sources."normalize-path-3.0.0"
+        ];
+      })
       (sources."archiver-2.1.1" // {
         dependencies = [
           sources."async-2.6.3"
@@ -84462,10 +88927,11 @@ in
       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.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -84474,9 +88940,9 @@ in
       })
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."binary-extensions-1.13.1"
+      sources."binary-extensions-2.1.0"
       sources."bindings-1.5.0"
-      (sources."bl-1.2.2" // {
+      (sources."bl-1.2.3" // {
         dependencies = [
           (sources."readable-stream-2.3.7" // {
             dependencies = [
@@ -84495,6 +88961,7 @@ in
       (sources."boxen-4.2.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
+          sources."camelcase-5.3.1"
           sources."chalk-3.0.0"
           sources."emoji-regex-8.0.0"
           sources."is-fullwidth-code-point-3.0.0"
@@ -84503,12 +88970,7 @@ in
         ];
       })
       sources."brace-expansion-1.1.11"
-      (sources."braces-2.3.2" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-          sources."is-extendable-0.1.1"
-        ];
-      })
+      sources."braces-3.0.2"
       sources."buffer-5.6.0"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -84516,7 +88978,7 @@ in
       sources."buffer-equal-constant-time-1.0.1"
       sources."buffer-fill-1.0.0"
       sources."buffer-from-1.1.1"
-      sources."bunyan-1.8.12"
+      sources."bunyan-1.8.14"
       sources."cache-base-1.0.1"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
@@ -84524,18 +88986,16 @@ in
         ];
       })
       sources."callsites-3.1.0"
-      sources."camelcase-5.3.1"
+      sources."camelcase-6.0.0"
       sources."caseless-0.12.0"
       sources."chalk-4.1.0"
-      sources."chardet-0.7.0"
       sources."cheerio-1.0.0-rc.3"
-      (sources."chokidar-2.1.8" // {
+      (sources."chokidar-3.4.2" // {
         dependencies = [
-          sources."fsevents-1.2.13"
           sources."normalize-path-3.0.0"
         ];
       })
-      (sources."chrome-launcher-0.13.3" // {
+      (sources."chrome-launcher-0.13.4" // {
         dependencies = [
           sources."mkdirp-0.5.5"
           sources."rimraf-3.0.2"
@@ -84559,9 +89019,7 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."cli-boxes-2.2.0"
-      sources."cli-cursor-2.1.0"
-      sources."cli-width-2.2.1"
+      sources."cli-boxes-2.2.1"
       (sources."cliui-6.0.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
@@ -84600,7 +89058,6 @@ in
       sources."configstore-5.0.1"
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.11"
-      sources."core-js-pure-3.6.5"
       sources."core-util-is-1.0.2"
       sources."crc-3.8.0"
       (sources."crc32-stream-2.0.0" // {
@@ -84610,18 +89067,14 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      (sources."cross-spawn-6.0.5" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
+      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."dashdash-1.14.1"
       sources."debounce-1.2.0"
       sources."debug-2.6.9"
-      sources."decamelize-3.2.0"
+      sources."decamelize-4.0.0"
       sources."decode-uri-component-0.2.0"
       sources."decompress-response-3.3.0"
       sources."deep-equal-1.1.1"
@@ -84634,10 +89087,9 @@ in
       sources."define-properties-1.1.3"
       sources."define-property-2.0.2"
       sources."delayed-stream-1.0.0"
-      (sources."dispensary-0.51.2" // {
+      (sources."dispensary-0.52.0" // {
         dependencies = [
           sources."async-3.2.0"
-          sources."pino-6.0.0"
         ];
       })
       sources."doctrine-3.0.0"
@@ -84652,6 +89104,7 @@ in
       sources."ecdsa-sig-formatter-1.0.11"
       sources."emoji-regex-7.0.3"
       sources."end-of-stream-1.4.4"
+      sources."enquirer-2.3.6"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
       sources."es-abstract-1.17.6"
@@ -84659,55 +89112,36 @@ in
       sources."es6-error-4.1.1"
       sources."es6-promise-2.3.0"
       sources."es6-promisify-6.1.1"
+      sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-5.16.0" // {
+      (sources."eslint-7.5.0" // {
         dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
+          sources."ansi-regex-5.0.0"
           sources."debug-4.2.0"
-          sources."espree-5.0.1"
-          sources."has-flag-3.0.0"
-          sources."mkdirp-0.5.5"
           sources."ms-2.1.2"
-          sources."semver-5.7.1"
-          sources."strip-ansi-4.0.0"
-          sources."strip-json-comments-2.0.1"
-          sources."supports-color-5.5.0"
+          sources."strip-ansi-6.0.0"
         ];
       })
       sources."eslint-plugin-no-unsanitized-3.1.2"
-      sources."eslint-scope-4.0.3"
-      sources."eslint-utils-1.4.3"
-      sources."eslint-visitor-keys-1.2.0"
-      (sources."espree-6.2.1" // {
+      sources."eslint-scope-5.1.0"
+      sources."eslint-utils-2.1.0"
+      sources."eslint-visitor-keys-1.3.0"
+      sources."espree-7.2.0"
+      sources."esprima-4.0.1"
+      (sources."esquery-1.3.1" // {
         dependencies = [
-          sources."acorn-7.3.1"
+          sources."estraverse-5.2.0"
         ];
       })
-      sources."esprima-4.0.1"
-      (sources."esquery-1.3.1" // {
+      (sources."esrecurse-4.3.0" // {
         dependencies = [
-          sources."estraverse-5.1.0"
+          sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."event-to-promise-0.8.0"
-      (sources."execa-4.0.2" // {
-        dependencies = [
-          sources."cross-spawn-7.0.3"
-          sources."mimic-fn-2.1.0"
-          sources."onetime-5.1.0"
-          sources."path-key-3.1.1"
-          sources."shebang-command-2.0.0"
-          sources."shebang-regex-3.0.0"
-          sources."which-2.0.2"
-        ];
-      })
+      sources."execa-4.0.3"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -84723,22 +89157,19 @@ in
             ];
           })
           sources."is-descriptor-0.1.6"
-          sources."is-extendable-0.1.1"
           sources."kind-of-5.1.0"
         ];
       })
       sources."extend-3.0.2"
-      sources."extend-shallow-3.0.2"
-      (sources."external-editor-3.1.0" // {
+      (sources."extend-shallow-3.0.2" // {
         dependencies = [
-          sources."tmp-0.0.33"
+          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."is-extendable-0.1.1"
         ];
       })
       sources."extsprintf-1.3.0"
@@ -84753,22 +89184,17 @@ in
       sources."fast-redact-2.0.0"
       sources."fast-safe-stringify-2.0.7"
       sources."fd-slicer-1.1.0"
-      sources."figures-2.0.0"
       sources."file-entry-cache-5.0.1"
       sources."file-uri-to-path-1.0.0"
-      (sources."fill-range-4.0.0" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-          sources."is-extendable-0.1.1"
-        ];
-      })
+      sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
-      (sources."firefox-profile-1.3.1" // {
+      (sources."firefox-profile-2.0.0" // {
         dependencies = [
           sources."async-2.5.0"
+          sources."fs-extra-4.0.3"
         ];
       })
-      sources."first-chunk-stream-3.0.0"
+      sources."first-chunk-stream-4.0.0"
       sources."flat-cache-2.0.1"
       sources."flatstr-1.0.12"
       sources."flatted-2.0.2"
@@ -84778,12 +89204,17 @@ in
       sources."form-data-2.3.3"
       sources."fragment-cache-0.2.1"
       sources."fs-constants-1.0.0"
-      sources."fs-extra-4.0.3"
+      (sources."fs-extra-9.0.1" // {
+        dependencies = [
+          sources."jsonfile-6.0.1"
+          sources."universalify-1.0.0"
+        ];
+      })
       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."fx-runner-1.0.12" // {
+      (sources."fx-runner-1.0.13" // {
         dependencies = [
           sources."commander-2.9.0"
           sources."isexe-1.1.2"
@@ -84791,22 +89222,13 @@ in
         ];
       })
       sources."get-caller-file-2.0.5"
-      sources."get-stream-5.1.0"
+      sources."get-stream-5.2.0"
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
-      (sources."git-rev-sync-2.0.0" // {
-        dependencies = [
-          sources."graceful-fs-4.1.15"
-        ];
-      })
       sources."glob-7.1.6"
-      (sources."glob-parent-3.1.0" // {
-        dependencies = [
-          sources."is-glob-3.1.0"
-        ];
-      })
+      sources."glob-parent-5.1.1"
       sources."global-dirs-2.0.1"
-      sources."globals-11.12.0"
+      sources."globals-12.4.0"
       (sources."got-9.6.0" // {
         dependencies = [
           sources."get-stream-4.1.0"
@@ -84816,13 +89238,18 @@ in
       sources."graceful-readlink-1.0.1"
       sources."growly-1.3.0"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      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"
         ];
       })
@@ -84831,7 +89258,6 @@ in
       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.1.13"
       sources."ignore-4.0.6"
       sources."import-fresh-3.2.1"
@@ -84840,48 +89266,31 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      (sources."inquirer-6.5.2" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          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."strip-ansi-5.2.0"
-          sources."supports-color-5.5.0"
-        ];
-      })
-      sources."interpret-1.4.0"
       sources."invert-kv-3.0.1"
       sources."is-absolute-0.1.7"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arguments-1.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-binary-path-1.0.1"
+      sources."is-binary-path-2.1.0"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.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.0.0"
-      sources."is-extendable-1.0.1"
+      sources."is-docker-2.1.1"
+      sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
       sources."is-installed-globally-0.3.2"
       sources."is-mergeable-object-1.1.1"
       sources."is-npm-4.0.0"
-      (sources."is-number-3.0.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
+      sources."is-number-7.0.0"
       sources."is-obj-2.0.0"
       sources."is-path-inside-3.0.2"
       sources."is-plain-object-2.0.4"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-relative-0.1.3"
       sources."is-stream-2.0.0"
       sources."is-symbol-1.0.3"
@@ -84930,11 +89339,11 @@ in
         ];
       })
       sources."lcid-3.1.1"
-      sources."levn-0.3.0"
+      sources."levn-0.4.1"
       sources."lighthouse-logger-1.2.0"
       sources."lines-and-columns-1.1.6"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.includes-4.3.0"
       sources."lodash.isboolean-3.0.3"
       sources."lodash.isinteger-4.0.4"
@@ -84953,26 +89362,44 @@ in
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."marky-1.2.1"
-      sources."mdn-browser-compat-data-1.0.25"
-      (sources."mem-5.1.1" // {
+      sources."mdn-browser-compat-data-1.0.31"
+      sources."mem-5.1.1"
+      sources."merge-stream-2.0.0"
+      (sources."micromatch-3.1.10" // {
         dependencies = [
-          sources."mimic-fn-2.1.0"
+          (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."merge-stream-2.0.0"
-      sources."micromatch-3.1.10"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
-      sources."mimic-fn-1.2.0"
+      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"
+      (sources."mixin-deep-1.3.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
       sources."mkdirp-1.0.4"
       sources."moment-2.27.0"
       sources."ms-2.0.0"
       sources."multimatch-4.0.0"
-      sources."mute-stream-0.0.7"
       (sources."mv-2.1.1" // {
         dependencies = [
           sources."glob-6.0.4"
@@ -84986,22 +89413,17 @@ in
       sources."natural-compare-1.4.0"
       sources."natural-compare-lite-1.4.0"
       sources."ncp-2.0.0"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       sources."next-tick-1.1.0"
-      sources."nice-try-1.0.5"
       sources."node-forge-0.7.6"
-      (sources."node-notifier-6.0.0" // {
+      (sources."node-notifier-7.0.2" // {
         dependencies = [
-          sources."semver-6.3.0"
+          sources."uuid-8.3.0"
         ];
       })
       sources."normalize-path-2.1.1"
       sources."normalize-url-4.5.0"
-      (sources."npm-run-path-4.0.1" // {
-        dependencies = [
-          sources."path-key-3.1.1"
-        ];
-      })
+      sources."npm-run-path-4.0.1"
       sources."nth-check-1.0.2"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
@@ -85025,12 +89447,11 @@ in
       sources."object.assign-4.1.0"
       sources."object.pick-1.3.0"
       sources."once-1.4.0"
-      sources."onetime-2.0.1"
-      sources."open-7.0.0"
-      sources."optionator-0.8.3"
+      sources."onetime-5.1.2"
+      sources."open-7.1.0"
+      sources."optionator-0.9.1"
       sources."os-locale-5.0.0"
       sources."os-shim-0.1.3"
-      sources."os-tmpdir-1.0.2"
       sources."p-cancelable-1.1.0"
       sources."p-defer-1.0.0"
       sources."p-is-promise-2.1.0"
@@ -85044,19 +89465,18 @@ in
       })
       sources."pako-1.0.11"
       sources."parent-module-1.0.1"
-      sources."parse-json-5.0.0"
+      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."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-key-3.1.1"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
-      sources."pino-6.3.2"
-      sources."pino-std-serializers-2.4.2"
+      sources."picomatch-2.2.2"
+      sources."pino-6.4.0"
+      sources."pino-std-serializers-2.5.0"
       sources."posix-character-classes-0.1.1"
       (sources."postcss-7.0.32" // {
         dependencies = [
@@ -85072,7 +89492,7 @@ in
           sources."supports-color-6.1.0"
         ];
       })
-      sources."prelude-ls-1.1.2"
+      sources."prelude-ls-1.2.1"
       sources."prepend-http-2.0.0"
       sources."probe-image-size-5.0.0"
       sources."process-nextick-args-2.0.1"
@@ -85080,6 +89500,7 @@ in
       sources."psl-1.8.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
+      sources."pupa-2.0.1"
       sources."qs-6.5.2"
       sources."quick-format-unescaped-4.0.1"
       (sources."rc-1.2.8" // {
@@ -85088,19 +89509,12 @@ in
         ];
       })
       sources."readable-stream-3.6.0"
-      (sources."readdirp-2.2.1" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
-      sources."rechoir-0.6.2"
-      sources."regenerator-runtime-0.13.5"
+      sources."readdirp-3.4.0"
+      sources."regenerator-runtime-0.13.7"
       sources."regex-not-1.0.2"
       sources."regexp.prototype.flags-1.3.0"
-      sources."regexpp-2.0.1"
-      sources."registry-auth-token-4.1.1"
+      sources."regexpp-3.1.0"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       (sources."relaxed-json-1.0.3" // {
         dependencies = [
@@ -85118,15 +89532,11 @@ in
       sources."request-2.88.2"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
-      sources."resolve-1.17.0"
       sources."resolve-from-4.0.0"
       sources."resolve-url-0.2.1"
       sources."responselike-1.0.2"
-      sources."restore-cursor-2.0.0"
       sources."ret-0.1.15"
       sources."rimraf-2.6.3"
-      sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
       sources."safe-buffer-5.2.1"
       sources."safe-json-stringify-1.2.0"
       sources."safe-regex-1.1.0"
@@ -85142,23 +89552,16 @@ in
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
-          sources."is-extendable-0.1.1"
         ];
       })
       sources."sha.js-2.4.11"
-      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."shell-quote-1.6.1"
-      sources."shelljs-0.7.7"
       sources."shellwords-0.1.1"
-      (sources."sign-addon-2.0.5" // {
+      (sources."sign-addon-2.0.6" // {
         dependencies = [
-          sources."core-js-3.6.4"
-          sources."es6-promisify-6.0.2"
-          sources."punycode-1.4.1"
-          sources."request-2.88.0"
-          sources."source-map-support-0.5.16"
-          sources."tough-cookie-2.4.3"
+          sources."core-js-3.6.5"
         ];
       })
       sources."signal-exit-3.0.3"
@@ -85184,7 +89587,6 @@ in
             ];
           })
           sources."is-descriptor-0.1.6"
-          sources."is-extendable-0.1.1"
           sources."kind-of-5.1.0"
           sources."source-map-0.5.7"
         ];
@@ -85199,7 +89601,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."sonic-boom-1.0.1"
+      sources."sonic-boom-1.1.0"
       sources."source-map-0.6.1"
       sources."source-map-resolve-0.5.3"
       sources."source-map-support-0.5.19"
@@ -85228,16 +89630,11 @@ in
       })
       sources."stream-parser-0.3.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."string-width-2.1.1" // {
+      sources."stream-to-promise-3.0.0"
+      (sources."string-width-3.1.0" // {
         dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."strip-ansi-4.0.0"
+          sources."ansi-regex-4.1.0"
+          sources."strip-ansi-5.2.0"
         ];
       })
       sources."string.prototype.trimend-1.0.1"
@@ -85246,17 +89643,15 @@ in
       sources."strip-ansi-3.0.1"
       sources."strip-bom-4.0.0"
       sources."strip-bom-buf-2.0.0"
-      sources."strip-bom-stream-4.0.0"
-      sources."strip-final-newline-2.0.0"
-      sources."strip-json-comments-3.0.1"
-      sources."supports-color-7.1.0"
-      (sources."table-5.4.6" // {
+      (sources."strip-bom-stream-4.0.0" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
+          sources."first-chunk-stream-3.0.0"
         ];
       })
+      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."tar-stream-1.6.2" // {
         dependencies = [
           sources."readable-stream-2.3.7"
@@ -85269,7 +89664,11 @@ in
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
       sources."through-2.3.8"
-      sources."tmp-0.1.0"
+      (sources."tmp-0.2.1" // {
+        dependencies = [
+          sources."rimraf-3.0.2"
+        ];
+      })
       sources."to-buffer-1.1.1"
       (sources."to-object-path-0.3.0" // {
         dependencies = [
@@ -85278,24 +89677,19 @@ in
       })
       sources."to-readable-stream-1.0.0"
       sources."to-regex-3.0.2"
-      sources."to-regex-range-2.1.1"
+      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."tslib-1.13.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."type-check-0.3.2"
+      sources."type-check-0.4.0"
       sources."type-detect-4.0.8"
       sources."type-fest-0.8.1"
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
-      (sources."union-value-1.0.1" // {
-        dependencies = [
-          sources."is-extendable-0.1.1"
-        ];
-      })
+      sources."union-value-1.0.1"
       sources."unique-string-2.0.0"
       sources."universalify-0.1.2"
       (sources."unset-value-1.0.0" // {
@@ -85309,24 +89703,51 @@ in
         ];
       })
       sources."upath-1.2.0"
-      (sources."update-notifier-4.0.0" // {
+      (sources."update-notifier-4.1.0" // {
         dependencies = [
           sources."chalk-3.0.0"
         ];
       })
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       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.1.1"
       sources."verror-1.10.0"
-      sources."watchpack-1.6.1"
+      sources."watchpack-1.7.4"
+      (sources."watchpack-chokidar2-2.0.0" // {
+        dependencies = [
+          (sources."anymatch-2.0.0" // {
+            dependencies = [
+              sources."normalize-path-2.1.1"
+            ];
+          })
+          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-3.0.0"
+          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."wcwidth-1.0.1"
       sources."webidl-conversions-5.0.0"
       sources."whatwg-url-8.1.0"
       sources."when-3.7.7"
-      sources."which-1.3.1"
+      sources."which-2.0.2"
       sources."which-module-2.0.0"
       (sources."widest-line-3.1.0" // {
         dependencies = [
@@ -85355,14 +89776,13 @@ in
         ];
       })
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.2.3"
+      sources."ws-7.3.1"
       sources."xdg-basedir-4.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
-      sources."xregexp-4.3.0"
       sources."xtend-4.0.2"
       sources."y18n-4.0.0"
-      (sources."yargs-15.3.1" // {
+      (sources."yargs-15.4.1" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."decamelize-1.2.0"
@@ -85374,6 +89794,7 @@ in
       })
       (sources."yargs-parser-18.1.3" // {
         dependencies = [
+          sources."camelcase-5.3.1"
           sources."decamelize-1.2.0"
         ];
       })
@@ -85404,10 +89825,10 @@ in
   webpack = nodeEnv.buildNodePackage {
     name = "webpack";
     packageName = "webpack";
-    version = "4.43.0";
+    version = "4.44.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz";
-      sha512 = "GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==";
+      url = "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz";
+      sha512 = "4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==";
     };
     dependencies = [
       sources."@webassemblyjs/ast-1.9.0"
@@ -85431,16 +89852,16 @@ in
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
       sources."acorn-6.4.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ajv-errors-1.0.1"
-      sources."ajv-keywords-3.5.0"
+      sources."ajv-keywords-3.5.2"
       sources."anymatch-3.1.1"
       sources."aproba-1.2.0"
       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."asn1.js-4.10.1" // {
+      (sources."asn1.js-5.4.1" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -85465,7 +89886,7 @@ in
       sources."binary-extensions-2.1.0"
       sources."bindings-1.5.0"
       sources."bluebird-3.7.2"
-      sources."bn.js-5.1.2"
+      sources."bn.js-5.1.3"
       sources."brace-expansion-1.1.11"
       (sources."braces-2.3.2" // {
         dependencies = [
@@ -85481,7 +89902,7 @@ in
           sources."bn.js-4.11.9"
         ];
       })
-      (sources."browserify-sign-4.2.0" // {
+      (sources."browserify-sign-4.2.1" // {
         dependencies = [
           sources."readable-stream-3.6.0"
           sources."safe-buffer-5.2.1"
@@ -85494,7 +89915,7 @@ in
       sources."builtin-status-codes-3.0.0"
       sources."cacache-12.0.4"
       sources."cache-base-1.0.1"
-      (sources."chokidar-3.4.0" // {
+      (sources."chokidar-3.4.2" // {
         dependencies = [
           sources."braces-3.0.2"
           sources."fill-range-7.0.1"
@@ -85533,7 +89954,7 @@ in
       sources."copy-concurrently-1.0.5"
       sources."copy-descriptor-0.1.1"
       sources."core-util-is-1.0.2"
-      (sources."create-ecdh-4.0.3" // {
+      (sources."create-ecdh-4.0.4" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -85560,16 +89981,20 @@ in
       })
       sources."emojis-list-3.0.0"
       sources."end-of-stream-1.4.4"
-      (sources."enhanced-resolve-4.2.0" // {
+      (sources."enhanced-resolve-4.3.0" // {
         dependencies = [
           sources."memory-fs-0.5.0"
         ];
       })
       sources."errno-0.1.7"
       sources."eslint-scope-4.0.3"
-      sources."esrecurse-4.2.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
       sources."estraverse-4.3.0"
-      sources."events-3.1.0"
+      sources."events-3.2.0"
       sources."evp_bytestokey-1.0.3"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
@@ -85695,7 +90120,7 @@ in
       sources."ms-2.0.0"
       sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       (sources."node-libs-browser-2.2.1" // {
         dependencies = [
           sources."punycode-1.4.1"
@@ -85725,7 +90150,7 @@ in
       sources."p-try-2.2.0"
       sources."pako-1.0.11"
       sources."parallel-transform-1.2.0"
-      sources."parse-asn1-5.1.5"
+      sources."parse-asn1-5.1.6"
       sources."pascalcase-0.1.1"
       sources."path-browserify-0.0.1"
       sources."path-dirname-1.0.2"
@@ -85769,9 +90194,10 @@ in
       sources."run-queue-1.0.3"
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
+      sources."safer-buffer-2.1.2"
       sources."schema-utils-1.0.0"
       sources."semver-5.7.1"
-      sources."serialize-javascript-3.1.0"
+      sources."serialize-javascript-4.0.0"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
@@ -85846,7 +90272,7 @@ in
           sources."source-map-0.6.1"
         ];
       })
-      (sources."terser-webpack-plugin-1.4.4" // {
+      (sources."terser-webpack-plugin-1.4.5" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -85878,7 +90304,7 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       (sources."url-0.11.0" // {
         dependencies = [
@@ -85893,7 +90319,7 @@ in
       })
       sources."util-deprecate-1.0.2"
       sources."vm-browserify-1.1.2"
-      sources."watchpack-1.7.2"
+      sources."watchpack-1.7.4"
       (sources."watchpack-chokidar2-2.0.0" // {
         dependencies = [
           sources."anymatch-2.0.0"
@@ -85995,7 +90421,7 @@ in
       sources."detect-file-1.0.0"
       sources."emoji-regex-7.0.3"
       sources."emojis-list-3.0.0"
-      sources."enhanced-resolve-4.2.0"
+      sources."enhanced-resolve-4.3.0"
       sources."errno-0.1.7"
       sources."escape-string-regexp-1.0.5"
       (sources."expand-brackets-2.1.4" // {
@@ -86247,13 +90673,13 @@ in
       sha512 = "PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==";
     };
     dependencies = [
-      sources."@types/glob-7.1.2"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.0.14"
+      sources."@types/node-14.6.3"
       sources."accepts-1.3.7"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.4"
       sources."ajv-errors-1.0.1"
-      sources."ajv-keywords-3.5.0"
+      sources."ajv-keywords-3.5.2"
       sources."ansi-colors-3.2.4"
       sources."ansi-html-0.0.7"
       sources."ansi-regex-2.1.1"
@@ -86381,7 +90807,7 @@ in
       sources."es-to-primitive-1.2.1"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      sources."eventemitter3-4.0.4"
+      sources."eventemitter3-4.0.7"
       sources."eventsource-1.0.7"
       sources."execa-1.0.0"
       (sources."expand-brackets-2.1.4" // {
@@ -86435,7 +90861,7 @@ in
         ];
       })
       sources."find-up-3.0.0"
-      sources."follow-redirects-1.12.1"
+      sources."follow-redirects-1.13.0"
       sources."for-in-1.0.2"
       sources."forwarded-0.1.2"
       sources."fragment-cache-0.2.1"
@@ -86508,7 +90934,7 @@ in
       sources."is-path-in-cwd-2.1.0"
       sources."is-path-inside-2.1.0"
       sources."is-plain-object-2.0.4"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-stream-1.1.0"
       sources."is-symbol-1.0.3"
       sources."is-windows-1.0.2"
@@ -86521,8 +90947,8 @@ in
       sources."killable-1.0.1"
       sources."kind-of-6.0.3"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
-      sources."loglevel-1.6.8"
+      sources."lodash-4.17.20"
+      sources."loglevel-1.7.0"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."media-typer-0.3.0"
@@ -86592,7 +91018,7 @@ in
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
       sources."pkg-dir-3.0.0"
-      (sources."portfinder-1.0.26" // {
+      (sources."portfinder-1.0.28" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."ms-2.1.2"
@@ -86606,7 +91032,7 @@ in
       sources."punycode-2.1.1"
       sources."qs-6.7.0"
       sources."querystring-0.2.0"
-      sources."querystringify-2.1.1"
+      sources."querystringify-2.2.0"
       sources."range-parser-1.2.1"
       (sources."raw-body-2.4.0" // {
         dependencies = [
@@ -86779,7 +91205,7 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       (sources."url-0.11.0" // {
         dependencies = [
@@ -86828,26 +91254,26 @@ in
   copy-webpack-plugin = nodeEnv.buildNodePackage {
     name = "copy-webpack-plugin";
     packageName = "copy-webpack-plugin";
-    version = "6.0.2";
+    version = "6.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.2.tgz";
-      sha512 = "9Gm8X0c6eXlKnmltMPFCBeGOKjtcRIyTt4VaO3k1TkNgVTe5Ov2lYsYVuyLp0kp8DItO3apewflM+1GYgh6V2Q==";
+      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.1.0.tgz";
+      sha512 = "aWjIuLt1OVQxaDVffnt3bnGmLA8zGgAJaFwPA+a+QYVPh1vhIKjVfh3SbOFLV0kRPvGBITbw17n5CsmiBS4LQQ==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.3"
       sources."@nodelib/fs.stat-2.0.3"
       sources."@nodelib/fs.walk-1.2.4"
       sources."@npmcli/move-file-1.0.1"
-      sources."@types/json-schema-7.0.5"
-      sources."aggregate-error-3.0.1"
-      sources."ajv-6.12.2"
-      sources."ajv-keywords-3.5.0"
+      sources."@types/json-schema-7.0.6"
+      sources."aggregate-error-3.1.0"
+      sources."ajv-6.12.4"
+      sources."ajv-keywords-3.5.2"
       sources."array-union-2.1.0"
       sources."balanced-match-1.0.0"
       sources."big.js-5.2.2"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."cacache-15.0.4"
+      sources."cacache-15.0.5"
       sources."chownr-2.0.0"
       sources."clean-stack-2.2.0"
       sources."commondir-1.0.1"
@@ -86879,30 +91305,26 @@ in
       sources."json5-2.1.3"
       sources."loader-utils-2.0.0"
       sources."locate-path-5.0.0"
-      sources."lru-cache-5.1.1"
+      sources."lru-cache-6.0.0"
       sources."make-dir-3.1.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      (sources."minipass-3.1.3" // {
-        dependencies = [
-          sources."yallist-4.0.0"
-        ];
-      })
+      sources."minipass-3.1.3"
       sources."minipass-collect-1.0.2"
       sources."minipass-flush-1.0.5"
-      sources."minipass-pipeline-1.2.3"
-      (sources."minizlib-2.1.0" // {
-        dependencies = [
-          sources."yallist-4.0.0"
-        ];
-      })
+      sources."minipass-pipeline-1.2.4"
+      sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."normalize-path-3.0.0"
       sources."once-1.4.0"
-      sources."p-limit-2.3.0"
-      sources."p-locate-4.1.0"
+      sources."p-limit-3.0.2"
+      (sources."p-locate-4.1.0" // {
+        dependencies = [
+          sources."p-limit-2.3.0"
+        ];
+      })
       sources."p-map-4.0.0"
       sources."p-try-2.2.0"
       sources."path-exists-4.0.0"
@@ -86917,25 +91339,21 @@ in
       sources."rimraf-3.0.2"
       sources."run-parallel-1.1.9"
       sources."safe-buffer-5.2.1"
-      sources."schema-utils-2.7.0"
+      sources."schema-utils-2.7.1"
       sources."semver-6.3.0"
-      sources."serialize-javascript-3.1.0"
+      sources."serialize-javascript-4.0.0"
       sources."slash-3.0.0"
       sources."source-list-map-2.0.1"
       sources."source-map-0.6.1"
       sources."ssri-8.0.0"
-      (sources."tar-6.0.2" // {
-        dependencies = [
-          sources."yallist-4.0.0"
-        ];
-      })
+      sources."tar-6.0.5"
       sources."to-regex-range-5.0.1"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."webpack-sources-1.4.3"
       sources."wrappy-1.0.2"
-      sources."yallist-3.1.1"
+      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -86950,10 +91368,10 @@ in
   webtorrent-cli = nodeEnv.buildNodePackage {
     name = "webtorrent-cli";
     packageName = "webtorrent-cli";
-    version = "3.0.6";
+    version = "3.0.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webtorrent-cli/-/webtorrent-cli-3.0.6.tgz";
-      sha512 = "+rvs1eWn20qTdfIxnT+BwddHNxyR6n1re3+PSmWzwc8jj1ikfJ4Pk+ecTsYmVjZ2I67YPdX/iXkuVAqkoogR6g==";
+      url = "https://registry.npmjs.org/webtorrent-cli/-/webtorrent-cli-3.0.7.tgz";
+      sha512 = "7psSgPvy+nL4hQ8zIv1RW1pdFZVrxB6jHnIEwmDU6xP6zst/t5pgerrdnZerzgQBzlGjpRQQ9fQtZoHxK7zgtw==";
     };
     dependencies = [
       sources."@protobufjs/aspromise-1.1.2"
@@ -86967,7 +91385,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.12"
+      sources."@types/node-13.13.16"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.3.0"
       sources."balanced-match-1.0.0"
@@ -86980,7 +91398,7 @@ in
           sources."ms-2.1.2"
         ];
       })
-      sources."bittorrent-peerid-1.3.2"
+      sources."bittorrent-peerid-1.3.3"
       (sources."bittorrent-protocol-3.1.1" // {
         dependencies = [
           sources."debug-4.2.0"
@@ -86998,7 +91416,7 @@ in
       })
       sources."blob-to-buffer-1.2.8"
       sources."block-stream2-2.0.0"
-      sources."bn.js-5.1.2"
+      sources."bn.js-5.1.3"
       sources."brace-expansion-1.1.11"
       sources."browserify-package-json-1.0.1"
       sources."buffer-alloc-1.2.0"
@@ -87023,7 +91441,7 @@ in
           sources."mime-1.6.0"
         ];
       })
-      sources."chunk-store-stream-4.1.0"
+      sources."chunk-store-stream-4.1.1"
       sources."clivas-0.2.0"
       sources."common-tags-1.8.0"
       sources."compact2string-1.4.1"
@@ -87071,9 +91489,9 @@ in
       sources."inherits-2.0.4"
       sources."ip-1.1.5"
       sources."ip-set-1.0.2"
-      sources."ipaddr.js-1.9.1"
+      sources."ipaddr.js-2.0.0"
       sources."is-ascii-1.0.0"
-      sources."is-docker-2.0.0"
+      sources."is-docker-2.1.1"
       sources."is-file-1.0.0"
       sources."is-typedarray-1.0.0"
       sources."is-wsl-2.2.0"
@@ -87092,7 +91510,7 @@ in
       })
       sources."long-4.0.0"
       sources."lru-3.1.0"
-      sources."magnet-uri-5.2.4"
+      sources."magnet-uri-5.3.0"
       sources."mdns-js-0.5.0"
       sources."mdns-js-packet-0.2.0"
       sources."mediasource-2.3.0"
@@ -87120,7 +91538,7 @@ in
       sources."nodebmc-0.0.7"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
-      sources."open-7.0.4"
+      sources."open-7.2.1"
       sources."package-json-versionify-1.0.4"
       sources."parse-numeric-range-1.2.0"
       (sources."parse-torrent-7.1.3" // {
@@ -87140,10 +91558,10 @@ in
       })
       sources."prettier-bytes-1.0.4"
       sources."process-nextick-args-2.0.1"
-      sources."protobufjs-6.9.0"
+      sources."protobufjs-6.10.1"
       sources."pump-3.0.0"
       sources."qap-3.3.1"
-      sources."queue-microtask-1.1.3"
+      sources."queue-microtask-1.1.4"
       sources."random-access-file-2.1.4"
       sources."random-access-storage-1.4.1"
       sources."random-iterate-1.0.1"
@@ -87166,7 +91584,7 @@ in
       sources."safe-buffer-5.2.1"
       sources."sax-1.1.4"
       sources."semver-5.1.1"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
       (sources."simple-peer-9.7.2" // {
         dependencies = [
@@ -87185,8 +91603,12 @@ in
       sources."split-1.0.1"
       sources."stream-to-blob-2.0.1"
       sources."stream-to-blob-url-3.0.2"
-      sources."stream-with-known-length-to-buffer-1.0.3"
-      sources."string2compact-1.3.0"
+      sources."stream-with-known-length-to-buffer-1.0.4"
+      (sources."string2compact-1.3.0" // {
+        dependencies = [
+          sources."ipaddr.js-1.9.1"
+        ];
+      })
       sources."string_decoder-1.3.0"
       sources."thirty-two-1.0.2"
       sources."through-2.3.8"
@@ -87202,12 +91624,11 @@ in
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
       sources."uint64be-2.0.2"
-      sources."uniq-1.0.1"
       sources."unordered-array-remove-1.0.2"
       sources."upnp-device-client-1.0.2"
       sources."upnp-mediarenderer-client-1.4.0"
       sources."url-join-4.0.1"
-      (sources."ut_metadata-3.5.0" // {
+      (sources."ut_metadata-3.5.1" // {
         dependencies = [
           sources."debug-4.2.0"
           sources."ms-2.1.2"
@@ -87229,7 +91650,7 @@ in
       })
       sources."winreg-1.2.4"
       sources."wrappy-1.0.2"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
       sources."xmldom-0.1.31"
@@ -87265,10 +91686,10 @@ in
   write-good = nodeEnv.buildNodePackage {
     name = "write-good";
     packageName = "write-good";
-    version = "1.0.2";
+    version = "1.0.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/write-good/-/write-good-1.0.2.tgz";
-      sha512 = "1gm9Ouz7mBROF7aC8vvSm/3JtPfTiZ+fegPGCKdxsYhf6VYeStHfVFx2Hnj2kJviHPx5zZkiQ8DytzZMP0Zqwg==";
+      url = "https://registry.npmjs.org/write-good/-/write-good-1.0.3.tgz";
+      sha512 = "8n5k4h00o91iYlzudpO8VqmeEjJ2qfMtVA+rhYUVYmibEOEoOXN+YGxB7CY7BZbN2Pv8aDK4oiLSN0a3pAwwOQ==";
     };
     dependencies = [
       sources."adverb-where-0.2.1"
@@ -87292,10 +91713,10 @@ in
   yaml-language-server = nodeEnv.buildNodePackage {
     name = "yaml-language-server";
     packageName = "yaml-language-server";
-    version = "0.8.0";
+    version = "0.10.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.8.0.tgz";
-      sha512 = "+mvpHHPyQo/cNnEdrydH7h13FC393FQ9Uj88W/BbTdAANDy7eTHlmqPDzvv6X5HKl5fi5RLWCWsO4SdAx0WEMw==";
+      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.10.1.tgz";
+      sha512 = "R9SEt/nWTuZ8weB040L7yyaIVARlZ0ian1Kv6ptu4+xyVlIMobTZXaBTtgyhlMWqcQ3BpsAZu4q/2plRVG3tLQ==";
     };
     dependencies = [
       sources."agent-base-4.3.0"
@@ -87307,12 +91728,12 @@ in
       sources."http-proxy-agent-2.1.0"
       sources."https-proxy-agent-2.2.4"
       sources."js-yaml-3.14.0"
-      sources."jsonc-parser-2.2.1"
+      sources."jsonc-parser-2.3.0"
       sources."ms-2.0.0"
-      sources."prettier-1.19.1"
+      sources."prettier-2.0.5"
       sources."request-light-0.2.5"
       sources."sprintf-js-1.0.3"
-      sources."vscode-json-languageservice-3.7.0"
+      sources."vscode-json-languageservice-3.8.3"
       sources."vscode-jsonrpc-4.0.0"
       (sources."vscode-languageserver-5.2.1" // {
         dependencies = [
@@ -87343,15 +91764,14 @@ in
   yarn = nodeEnv.buildNodePackage {
     name = "yarn";
     packageName = "yarn";
-    version = "1.22.4";
+    version = "1.22.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/yarn/-/yarn-1.22.4.tgz";
-      sha512 = "oYM7hi/lIWm9bCoDMEWgffW8aiNZXCWeZ1/tGy0DWrN6vmzjCXIKu2Y21o8DYVBUtiktwKcNoxyGl/2iKLUNGA==";
+      url = "https://registry.npmjs.org/yarn/-/yarn-1.22.5.tgz";
+      sha512 = "5uzKXwdMc++mYktXqkfpNYT9tY8ViWegU58Hgbo+KXzrzzhEyP1Ip+BTtXloLrXNcNlxFJbLiFKGaS9vK9ym6Q==";
     };
     buildInputs = globalBuildInputs;
     meta = {
       description = "📦🐈 Fast, reliable, and secure dependency management.";
-      homepage = "https://github.com/yarnpkg/yarn#readme";
       license = "BSD-2-Clause";
     };
     production = true;
@@ -87367,21 +91787,21 @@ in
       sha512 = "GFg4QC1xi3gkbHGGUFme8/8XPg3kDISu/qJfx56X207yuv1FSevGY/eKuym7kh0bniCB4n3rseWW+QZXPH8LIw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.3"
-      sources."@babel/helper-validator-identifier-7.10.3"
-      sources."@babel/highlight-7.10.3"
-      sources."@babel/runtime-7.10.3"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/runtime-7.11.2"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
       sources."@sindresorhus/is-0.7.0"
       sources."@types/color-name-1.1.1"
-      sources."@types/glob-7.1.2"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.0.14"
+      sources."@types/node-14.6.3"
       sources."@types/normalize-package-data-2.4.0"
       sources."JSONStream-1.3.5"
-      sources."aggregate-error-3.0.1"
-      sources."ajv-6.12.2"
+      sources."aggregate-error-3.1.0"
+      sources."ajv-6.12.4"
       sources."ansi-0.3.1"
       sources."ansi-align-2.0.0"
       sources."ansi-escapes-3.2.0"
@@ -87405,7 +91825,7 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       (sources."axios-0.18.1" // {
         dependencies = [
           sources."is-buffer-2.0.4"
@@ -87495,7 +91915,7 @@ in
       sources."concat-stream-1.6.2"
       sources."conf-1.4.0"
       sources."config-chain-1.1.12"
-      sources."configstore-3.1.2"
+      sources."configstore-3.1.5"
       sources."copy-descriptor-0.1.1"
       sources."core-js-3.6.5"
       sources."core-util-is-1.0.2"
@@ -87524,7 +91944,7 @@ in
           sources."path-type-3.0.0"
         ];
       })
-      sources."dot-prop-4.2.0"
+      sources."dot-prop-4.2.1"
       sources."downgrade-root-1.2.2"
       sources."download-stats-0.3.4"
       sources."duplexer3-0.1.4"
@@ -87646,7 +92066,7 @@ in
       sources."graceful-fs-4.2.4"
       sources."grouped-queue-1.1.0"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       (sources."has-ansi-2.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -87735,6 +92155,7 @@ in
       sources."jsbn-0.1.1"
       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"
       sources."json-stringify-safe-5.0.1"
@@ -87759,8 +92180,8 @@ in
         ];
       })
       sources."locate-path-2.0.0"
-      sources."locutus-2.0.11"
-      sources."lodash-4.17.15"
+      sources."locutus-2.0.12"
+      sources."lodash-4.17.20"
       sources."lodash.debounce-4.0.8"
       sources."lodash.pad-4.5.1"
       sources."lodash.padend-4.6.1"
@@ -87769,7 +92190,7 @@ in
       sources."loud-rejection-1.6.0"
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-4.1.5"
-      sources."macos-release-2.3.0"
+      sources."macos-release-2.4.1"
       sources."make-dir-1.3.0"
       sources."map-age-cleaner-0.1.3"
       sources."map-cache-0.2.2"
@@ -87910,7 +92331,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.3.0"
+      sources."pretty-bytes-5.4.1"
       sources."process-nextick-args-2.0.1"
       sources."proto-list-1.2.4"
       sources."pseudomap-1.0.2"
@@ -87951,7 +92372,7 @@ in
           sources."indent-string-2.1.0"
         ];
       })
-      sources."regenerator-runtime-0.13.5"
+      sources."regenerator-runtime-0.13.7"
       sources."regex-not-1.0.2"
       sources."registry-auth-token-3.4.0"
       sources."registry-url-3.1.0"
@@ -87975,7 +92396,7 @@ in
       sources."root-check-1.0.0"
       sources."run-async-2.4.1"
       sources."rx-4.1.0"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.2"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
@@ -88147,7 +92568,7 @@ in
       sources."tunnel-0.0.6"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."twig-1.15.1"
+      sources."twig-1.15.2"
       sources."type-fest-0.3.1"
       sources."typedarray-0.0.6"
       sources."union-value-1.0.1"
@@ -88165,7 +92586,7 @@ in
       sources."untildify-3.0.3"
       sources."unzip-response-2.0.1"
       sources."update-notifier-2.5.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."url-parse-lax-3.0.0"
       sources."url-to-options-1.0.1"
@@ -88184,7 +92605,7 @@ in
       sources."walk-2.3.14"
       sources."which-1.3.1"
       sources."widest-line-2.0.1"
-      sources."windows-release-3.3.1"
+      sources."windows-release-3.3.3"
       (sources."with-open-file-0.1.7" // {
         dependencies = [
           sources."p-try-2.2.0"
@@ -88216,17 +92637,18 @@ in
           sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.2.1"
           sources."cli-cursor-3.1.0"
+          sources."cli-width-3.0.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."cross-spawn-7.0.3"
           sources."debug-3.2.6"
-          sources."execa-4.0.2"
+          sources."execa-4.0.3"
           sources."figures-3.2.0"
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."has-flag-4.0.0"
-          (sources."inquirer-7.2.0" // {
+          (sources."inquirer-7.3.3" // {
             dependencies = [
-              sources."chalk-3.0.0"
+              sources."chalk-4.1.0"
               sources."strip-ansi-6.0.0"
             ];
           })
@@ -88235,7 +92657,7 @@ in
           sources."ms-2.1.2"
           sources."mute-stream-0.0.8"
           sources."npm-run-path-4.0.1"
-          sources."onetime-5.1.0"
+          sources."onetime-5.1.2"
           sources."path-key-3.1.1"
           sources."restore-cursor-3.1.0"
           sources."semver-7.3.2"
@@ -88251,17 +92673,17 @@ in
               sources."ansi-regex-3.0.0"
             ];
           })
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
           sources."type-fest-0.11.0"
           sources."which-2.0.2"
         ];
       })
-      (sources."yeoman-generator-4.11.0" // {
+      (sources."yeoman-generator-4.12.0" // {
         dependencies = [
           sources."debug-4.2.0"
           sources."diff-4.0.2"
           sources."dir-glob-2.2.2"
-          sources."ejs-3.1.3"
+          sources."ejs-3.1.5"
           sources."find-up-3.0.0"
           sources."globby-9.2.0"
           sources."ignore-4.0.6"
@@ -88281,7 +92703,7 @@ in
           sources."p-limit-2.3.0"
           sources."p-locate-3.0.0"
           sources."p-try-2.2.0"
-          sources."parse-json-5.0.0"
+          sources."parse-json-5.1.0"
           (sources."path-type-3.0.0" // {
             dependencies = [
               sources."pify-3.0.0"
diff --git a/pkgs/development/ocaml-modules/bap/default.nix b/pkgs/development/ocaml-modules/bap/default.nix
index 46fd75f9887..8fa74b931ef 100644
--- a/pkgs/development/ocaml-modules/bap/default.nix
+++ b/pkgs/development/ocaml-modules/bap/default.nix
@@ -12,12 +12,12 @@ else
 
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-bap-${version}";
-  version = "1.6.0";
+  version = "2.0.0";
   src = fetchFromGitHub {
     owner = "BinaryAnalysisPlatform";
     repo = "bap";
     rev = "v${version}";
-    sha256 = "0ryf2xb37pj2f9mc3p5prqgqrylph9qgq7q9jnbx8b03nzzpa6h6";
+    sha256 = "0lb9xkfp67wjjqr75p6krivmjra7l5673236v9ny4gp0xi0755bk";
   };
 
   sigs = fetchurl {
@@ -53,7 +53,9 @@ stdenv.mkDerivation rec {
     ln -s $sigs $out/share/bap/sigs.zip
   '';
 
-  disableIda = "--disable-ida --disable-fsi-benchmark";
+  disableIda = "--disable-ida";
+
+  patches = [ ./dont-add-curses.patch ];
 
   configureFlags = [ "--enable-everything ${disableIda}" "--with-llvm-config=${llvm}/bin/llvm-config" ];
 
diff --git a/pkgs/development/ocaml-modules/bap/dont-add-curses.patch b/pkgs/development/ocaml-modules/bap/dont-add-curses.patch
new file mode 100644
index 00000000000..438a1bfc6dc
--- /dev/null
+++ b/pkgs/development/ocaml-modules/bap/dont-add-curses.patch
@@ -0,0 +1,32 @@
+From e6f6d1529d1725e8c1ed3c96eecc4aea43417aea Mon Sep 17 00:00:00 2001
+From: Matthew Maurer <matthew.r.maurer@gmail.com>
+Date: Sun, 19 Apr 2020 15:50:01 -0700
+Subject: [PATCH] Remove attempt to work around libcurses dependency issues.
+
+BAP doesn't actually link against libcurses, LLVM does. By adding
+-lcurses to this file, we accidentally broke linking on any systems
+where LLVM got linked against libncurses (not libcurses) without a
+libcurses compatibility shim.
+
+Overall, we should get -l flags from llvm-config, not attempt to
+shoehorn them in later, as this is fragile.
+---
+ oasis/llvm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/oasis/llvm b/oasis/llvm
+index 966c407..fba3fb4 100644
+--- a/oasis/llvm
++++ b/oasis/llvm
+@@ -31,7 +31,7 @@ Library bap_llvm
+                  Bap_llvm_ogre_samples,
+                  Bap_llvm_ogre_types
+   CCOpt:         $cc_optimization
+-  CCLib:         $llvm_lib $cxxlibs $llvm_ldflags -lcurses
++  CCLib:         $llvm_lib $cxxlibs $llvm_ldflags
+   CSources:      llvm_disasm.h,
+                  llvm_disasm.c,
+                  llvm_stubs.c,
+-- 
+2.22.0
+
diff --git a/pkgs/development/ocaml-modules/camlpdf/default.nix b/pkgs/development/ocaml-modules/camlpdf/default.nix
index fa5ffabedad..7e231001f24 100644
--- a/pkgs/development/ocaml-modules/camlpdf/default.nix
+++ b/pkgs/development/ocaml-modules/camlpdf/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, fetchFromGitHub, ocaml, findlib }:
+{ stdenv, fetchFromGitHub, which, ocaml, findlib }:
 
 if !stdenv.lib.versionAtLeast ocaml.version "4.02"
 then throw "camlpdf is not available for OCaml ${ocaml.version}"
 else
 
 stdenv.mkDerivation rec {
-  version = "2.3";
+  version = "2.3.1";
   name = "ocaml${ocaml.version}-camlpdf-${version}";
   src = fetchFromGitHub {
     owner = "johnwhitington";
     repo = "camlpdf";
     rev = "v${version}";
-    sha256 = "1z8h6bjzmlscr6h6kdvzj8kspifb4n9dg7zi54z1cv2qi03kr8dk";
+    sha256 = "1q69hhk63z836jbkv4wsng27w35w0qpz01c7ax0mqm8d8kmnr0v4";
   };
 
-  buildInputs = [ ocaml findlib ];
+  buildInputs = [ which ocaml findlib ];
 
   # Version number in META file is wrong
   patchPhase = ''
@@ -26,7 +26,9 @@ stdenv.mkDerivation rec {
     EOF
   '';
 
-  createFindlibDestdir = true;
+  preInstall = ''
+    mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/stublibs
+  '';
 
   meta = with stdenv.lib; {
     description = "An OCaml library for reading, writing and modifying PDF files";
diff --git a/pkgs/development/ocaml-modules/cohttp/async.nix b/pkgs/development/ocaml-modules/cohttp/async.nix
new file mode 100644
index 00000000000..246397b6081
--- /dev/null
+++ b/pkgs/development/ocaml-modules/cohttp/async.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildDunePackage, async, cohttp, conduit-async, uri, ppx_sexp_conv
+, logs, magic-mime }:
+
+if !stdenv.lib.versionAtLeast cohttp.version "0.99" then
+	cohttp
+else if !stdenv.lib.versionAtLeast async.version "0.13" then
+	throw "cohttp-async needs async-0.13 (hence OCaml >= 4.08)"
+else
+
+	buildDunePackage {
+		pname = "cohttp-async";
+		useDune2 = true;
+		inherit (cohttp) version src;
+
+		buildInputs = [ ppx_sexp_conv ];
+
+		propagatedBuildInputs = [ async cohttp conduit-async logs magic-mime uri ];
+
+		meta = cohttp.meta // {
+			description = "CoHTTP implementation for the Async concurrency library";
+		};
+	}
diff --git a/pkgs/development/ocaml-modules/cohttp/default.nix b/pkgs/development/ocaml-modules/cohttp/default.nix
index 386afe33d7b..6cb802e437d 100644
--- a/pkgs/development/ocaml-modules/cohttp/default.nix
+++ b/pkgs/development/ocaml-modules/cohttp/default.nix
@@ -5,11 +5,13 @@
 
 buildDunePackage rec {
 	pname = "cohttp";
-	version = "2.5.1";
+	version = "2.5.4";
+
+	minimumOCamlVersion = "4.04.1";
 
 	src = fetchurl {
 		url = "https://github.com/mirage/ocaml-cohttp/releases/download/v${version}/cohttp-v${version}.tbz";
-		sha256 = "0im91mi3nxzqfd7fs5r0zg5gsparfnf5zaz13mpw247hkd3y3396";
+		sha256 = "1q04spmki5zis5p5m1vs77i3k7ijm134j62g61071vblwx25z17a";
 	};
 
 	buildInputs = [ jsonm ppx_fields_conv ppx_sexp_conv ];
diff --git a/pkgs/development/ocaml-modules/conduit/async.nix b/pkgs/development/ocaml-modules/conduit/async.nix
new file mode 100644
index 00000000000..f16819ed8ae
--- /dev/null
+++ b/pkgs/development/ocaml-modules/conduit/async.nix
@@ -0,0 +1,19 @@
+{ stdenv, buildDunePackage, async, async_ssl, ppx_sexp_conv, conduit }:
+
+if !stdenv.lib.versionAtLeast conduit.version "1.0"
+then conduit
+else
+
+buildDunePackage {
+	pname = "conduit-async";
+	useDune2 = true;
+	inherit (conduit) version src;
+
+	buildInputs = [ ppx_sexp_conv ];
+
+	propagatedBuildInputs = [ async async_ssl conduit ];
+
+	meta = conduit.meta // {
+		description = "A network connection establishment library for Async";
+	};
+}
diff --git a/pkgs/development/ocaml-modules/conduit/default.nix b/pkgs/development/ocaml-modules/conduit/default.nix
index 7fbeefb3926..27b2a329b26 100644
--- a/pkgs/development/ocaml-modules/conduit/default.nix
+++ b/pkgs/development/ocaml-modules/conduit/default.nix
@@ -18,7 +18,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ astring ipaddr ipaddr-sexp sexplib uri ];
 
   meta = {
-    description = "Network connection library for TCP and SSL";
+    description = "A network connection establishment library";
     license = stdenv.lib.licenses.isc;
     maintainers = with stdenv.lib.maintainers; [ alexfmpe vbgl ];
     homepage = "https://github.com/mirage/ocaml-conduit";
diff --git a/pkgs/development/ocaml-modules/containers/data.nix b/pkgs/development/ocaml-modules/containers/data.nix
new file mode 100644
index 00000000000..7d15d7d3c64
--- /dev/null
+++ b/pkgs/development/ocaml-modules/containers/data.nix
@@ -0,0 +1,18 @@
+{ buildDunePackage, containers
+, gen, iter, mdx, ounit, qcheck
+}:
+
+buildDunePackage {
+  pname = "containers-data";
+
+  inherit (containers) src version;
+
+  doCheck = true;
+  checkInputs = [ gen iter mdx.bin ounit qcheck ];
+
+  propagatedBuildInputs = [ containers ];
+
+  meta = containers.meta // {
+    description = "A set of advanced datatypes for containers";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/containers/default.nix b/pkgs/development/ocaml-modules/containers/default.nix
index 16bad5a5ec4..970122dd79f 100644
--- a/pkgs/development/ocaml-modules/containers/default.nix
+++ b/pkgs/development/ocaml-modules/containers/default.nix
@@ -1,24 +1,22 @@
 { lib, fetchFromGitHub, buildDunePackage, ocaml
-, iter, result, uchar
-, gen, mdx, ounit, qcheck, uutf
+, seq
+, gen, iter, ounit, qcheck, uutf
 }:
 
 buildDunePackage rec {
-  version = "2.7";
+  version = "3.0";
   pname = "containers";
 
   src = fetchFromGitHub {
     owner = "c-cube";
     repo = "ocaml-containers";
     rev = "v${version}";
-    sha256 = "1nsxfgn1g1vpqihb9gd6gsab0bcm70nf9z84cp441c8wsc57hi6a";
+    sha256 = "0c75d5csgc68qqbsdz4279nlin111zrjbg4d47k32ska28myvpqn";
   };
 
-  buildInputs = [ iter ];
+  propagatedBuildInputs = [ seq ];
 
-  checkInputs = lib.optionals doCheck [ gen mdx.bin ounit qcheck uutf ];
-
-  propagatedBuildInputs = [ result uchar ];
+  checkInputs = [ gen iter ounit qcheck uutf ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/cpdf/default.nix b/pkgs/development/ocaml-modules/cpdf/default.nix
index 3b68acaee71..e40f6531e1f 100644
--- a/pkgs/development/ocaml-modules/cpdf/default.nix
+++ b/pkgs/development/ocaml-modules/cpdf/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, ocaml, findlib, camlpdf, ncurses }:
 
-let version = "2.3"; in
+let version = "2.3.1"; in
 
 stdenv.mkDerivation {
   name = "ocaml${ocaml.version}-cpdf-${version}";
@@ -9,9 +9,13 @@ stdenv.mkDerivation {
     owner = "johnwhitington";
     repo = "cpdf-source";
     rev = "v${version}";
-    sha256 = "0i976y1v0l7x7k2n8k6v0h4bw9zlxsv04y4fdxss6dzpsfz49w23";
+    sha256 = "1gwz0iy28f67kbqap2q10nf98dalwbi03vv5j893z2an7pb4w68z";
   };
 
+  prePatch = ''
+    substituteInPlace META --replace 'version="1.7"' 'version="${version}"'
+  '';
+
   buildInputs = [ ocaml findlib ncurses ];
   propagatedBuildInputs = [ camlpdf ];
 
diff --git a/pkgs/development/ocaml-modules/csexp/default.nix b/pkgs/development/ocaml-modules/csexp/default.nix
new file mode 100644
index 00000000000..51274890700
--- /dev/null
+++ b/pkgs/development/ocaml-modules/csexp/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchurl, buildDunePackage }:
+
+buildDunePackage rec {
+  pname = "csexp";
+  version = "1.3.1";
+
+  useDune2 = true;
+
+  minimumOCamlVersion = "4.08";
+
+  src = fetchurl {
+    url = "https://github.com/ocaml-dune/csexp/releases/download/${version}/csexp-${version}.tbz";
+    sha256 = "0maihbqbqq9bwr0r1cv51r3m4hrkx9cf5wnxcz7rjgn13lcc9s49";
+  };
+
+  postPatch = ''
+    substituteInPlace src/csexp.ml --replace Result.result Result.t
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/ocaml-dune/csexp";
+    description = "Minimal support for Canonical S-expressions";
+    license = licenses.mit;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/dns/default.nix b/pkgs/development/ocaml-modules/dns/default.nix
index 6075f4e7fb6..09753c14b35 100644
--- a/pkgs/development/ocaml-modules/dns/default.nix
+++ b/pkgs/development/ocaml-modules/dns/default.nix
@@ -4,13 +4,13 @@
 
 buildDunePackage rec {
   pname = "dns";
-  version = "4.6.1";
+  version = "4.6.2";
 
   minimumOCamlVersion = "4.07";
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-dns/releases/download/v${version}/dns-v${version}.tbz";
-    sha256 = "0nsx98r2i1siz0yghnh87f2sq8w79if7ih9259yay1bp39crd6gd";
+    sha256 = "0prypr5c589vay4alri78g0sarh06z35did26wn3s3di17d5761q";
   };
 
   propagatedBuildInputs = [ rresult astring fmt logs ptime domain-name gmap cstruct ipaddr lru duration metrics ];
diff --git a/pkgs/development/ocaml-modules/dune-action-plugin/default.nix b/pkgs/development/ocaml-modules/dune-action-plugin/default.nix
new file mode 100644
index 00000000000..65c55da6e3b
--- /dev/null
+++ b/pkgs/development/ocaml-modules/dune-action-plugin/default.nix
@@ -0,0 +1,19 @@
+{ lib, buildDunePackage, dune_2, dune-glob, dune-private-libs }:
+
+buildDunePackage rec {
+  pname = "dune-action-plugin";
+  inherit (dune_2) src version patches;
+
+  useDune2 = true;
+
+  dontAddPrefix = true;
+
+  propagatedBuildInputs = [ dune-glob dune-private-libs ];
+
+  meta = with lib; {
+    inherit (dune_2.meta) homepage;
+    description = "API for writing dynamic Dune actions";
+    maintainers = [ maintainers.marsam ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/dune-build-info/default.nix b/pkgs/development/ocaml-modules/dune-build-info/default.nix
index 3c828ebdcdb..5d9f105782b 100644
--- a/pkgs/development/ocaml-modules/dune-build-info/default.nix
+++ b/pkgs/development/ocaml-modules/dune-build-info/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "dune-build-info";
-  inherit (dune_2) src version;
+  inherit (dune_2) src version patches;
 
   useDune2 = true;
 
diff --git a/pkgs/development/ocaml-modules/dune-configurator/default.nix b/pkgs/development/ocaml-modules/dune-configurator/default.nix
index aa12ebc8d79..16e365dd4f3 100644
--- a/pkgs/development/ocaml-modules/dune-configurator/default.nix
+++ b/pkgs/development/ocaml-modules/dune-configurator/default.nix
@@ -1,15 +1,15 @@
-{ lib, buildDunePackage, dune_2, dune-private-libs }:
+{ lib, buildDunePackage, dune_2, csexp, result }:
 
 buildDunePackage rec {
   pname = "dune-configurator";
 
   useDune2 = true;
 
-  inherit (dune_2) src version;
+  inherit (dune_2) src version patches;
 
   dontAddPrefix = true;
 
-  propagatedBuildInputs = [ dune-private-libs ];
+  propagatedBuildInputs = [ csexp result ];
 
   meta = with lib; {
     description = "Helper library for gathering system configuration";
diff --git a/pkgs/development/ocaml-modules/dune-glob/default.nix b/pkgs/development/ocaml-modules/dune-glob/default.nix
new file mode 100644
index 00000000000..c7c6f9be4ee
--- /dev/null
+++ b/pkgs/development/ocaml-modules/dune-glob/default.nix
@@ -0,0 +1,19 @@
+{ lib, buildDunePackage, dune_2, dune-private-libs }:
+
+buildDunePackage rec {
+  pname = "dune-glob";
+  inherit (dune_2) src version patches;
+
+  useDune2 = true;
+
+  dontAddPrefix = true;
+
+  propagatedBuildInputs = [ dune-private-libs ];
+
+  meta = with lib; {
+    inherit (dune_2.meta) homepage;
+    description = "Glob string matching language supported by dune";
+    maintainers = [ maintainers.marsam ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/dune-private-libs/default.nix b/pkgs/development/ocaml-modules/dune-private-libs/default.nix
index 6161bd1fe8e..8a635efa3a5 100644
--- a/pkgs/development/ocaml-modules/dune-private-libs/default.nix
+++ b/pkgs/development/ocaml-modules/dune-private-libs/default.nix
@@ -5,9 +5,9 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  inherit (dune_2) src version;
+  inherit (dune_2) src version patches;
 
-  minimumOCamlVersion = "4.07";
+  minimumOCamlVersion = "4.08";
 
   dontAddPrefix = true;
 
diff --git a/pkgs/development/ocaml-modules/eliom/default.nix b/pkgs/development/ocaml-modules/eliom/default.nix
index 4ce502af19f..4734d83d55f 100644
--- a/pkgs/development/ocaml-modules/eliom/default.nix
+++ b/pkgs/development/ocaml-modules/eliom/default.nix
@@ -14,11 +14,11 @@ else
 stdenv.mkDerivation rec
 {
   pname = "eliom";
-  version = "6.12.0";
+  version = "6.12.1";
 
   src = fetchzip {
     url = "https://github.com/ocsigen/eliom/archive/${version}.tar.gz";
-    sha256 = "015jh72v6ch9h9czd8sn5kjz3pv6lsnvvnhdjgrplwj443dn1xp8";
+    sha256 = "04c1sz113015gyhj3w7flw7l4bv0v50q6n04kk8dybcravzy2xgx";
   };
 
   buildInputs = [ ocaml which findlib js_of_ocaml-ocamlbuild js_of_ocaml-ppx_deriving_json opaline
diff --git a/pkgs/development/ocaml-modules/elpi/default.nix b/pkgs/development/ocaml-modules/elpi/default.nix
index 93e29d3d34a..865c5448c5b 100644
--- a/pkgs/development/ocaml-modules/elpi/default.nix
+++ b/pkgs/development/ocaml-modules/elpi/default.nix
@@ -1,19 +1,19 @@
 { lib, fetchzip, buildDunePackage, camlp5
-, ppx_tools_versioned, ppx_deriving, re
+, ppxlib, ppx_deriving, re, perl, ncurses
 }:
 
 buildDunePackage rec {
   pname = "elpi";
-  version = "1.11.2";
+  version = "1.11.4";
 
    src = fetchzip {
      url = "https://github.com/LPCIC/elpi/releases/download/v${version}/elpi-v${version}.tbz";
-     sha256 = "15hamy9ifr05kczadwh3yj2gmr12a9z1jwppmp5yrns0vykjbj76";
+     sha256 = "1hmjp2z52j17vwhhdkj45n9jx11jxkdg2dwa0n04yyw0qqy4m7c1";
    };
 
   minimumOCamlVersion = "4.04";
 
-  buildInputs = [ ppx_tools_versioned ];
+  buildInputs = [ perl ncurses ppxlib ];
 
   propagatedBuildInputs = [ camlp5 ppx_deriving re ];
 
@@ -24,5 +24,9 @@ buildDunePackage rec {
     homepage = "https://github.com/LPCIC/elpi";
   };
 
+  postPatch = ''
+    substituteInPlace elpi_REPL.ml --replace "tput cols" "${ncurses}/bin/tput cols"
+  '';
+
   useDune2 = true;
 }
diff --git a/pkgs/development/ocaml-modules/fdkaac/default.nix b/pkgs/development/ocaml-modules/fdkaac/default.nix
new file mode 100644
index 00000000000..d3915b65935
--- /dev/null
+++ b/pkgs/development/ocaml-modules/fdkaac/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchFromGitHub, buildDunePackage, dune-configurator
+, fdk_aac
+}:
+
+buildDunePackage rec {
+  pname = "fdkaac";
+  version = "0.3.2";
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-fdkaac";
+    rev = version;
+    sha256 = "10i6hsjkrpw7zgx99zvvka3sapd7zy53k7z4b6khj9rdrbrgznv8";
+  };
+
+  useDune2 = true;
+
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ fdk_aac ];
+
+  meta = {
+    description = "OCaml binding for the fdk-aac library";
+    inherit (src.meta) homepage;
+    license = lib.licenses.gpl2Only;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/genspio/default.nix b/pkgs/development/ocaml-modules/genspio/default.nix
new file mode 100644
index 00000000000..7e7b3a0b9ae
--- /dev/null
+++ b/pkgs/development/ocaml-modules/genspio/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchFromGitHub, buildDunePackage
+, nonstd, sosa
+}:
+
+buildDunePackage rec {
+  pname = "genspio";
+  version = "0.0.2";
+
+  src = fetchFromGitHub {
+    owner = "hammerlab";
+    repo = pname;
+    rev = "${pname}.${version}";
+    sha256 = "0cp6p1f713sfv4p2r03bzvjvakzn4ili7hf3a952b3w1k39hv37x";
+  };
+
+  minimumOCamlVersion = "4.03";
+
+  propagatedBuildInputs = [ nonstd sosa ];
+
+  configurePhase = ''
+    ocaml please.mlt configure
+  '';
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = https://smondet.gitlab.io/genspio-doc/;
+    description = "Typed EDSL to generate POSIX Shell scripts";
+    license = licenses.asl20;
+    maintainers = [ maintainers.alexfmpe ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/gmetadom/default.nix b/pkgs/development/ocaml-modules/gmetadom/default.nix
index d47ad8ce859..f01f3e8cad5 100644
--- a/pkgs/development/ocaml-modules/gmetadom/default.nix
+++ b/pkgs/development/ocaml-modules/gmetadom/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "0skmlv0pnqvg99wzzzi1h4zhwzd82xg7xpkj1kwpfy7bzinjh7ig";
   };
 
-  patches = [ ./gcc-4.3.dpatch ];
+  patches = [ ./gcc-4.3.patch ];
 
   dontDisableStatic = true;
 
diff --git a/pkgs/development/ocaml-modules/gmetadom/gcc-4.3.dpatch b/pkgs/development/ocaml-modules/gmetadom/gcc-4.3.patch
index d8d1d463163..d8d1d463163 100644
--- a/pkgs/development/ocaml-modules/gmetadom/gcc-4.3.dpatch
+++ b/pkgs/development/ocaml-modules/gmetadom/gcc-4.3.patch
diff --git a/pkgs/development/ocaml-modules/hacl_x25519/default.nix b/pkgs/development/ocaml-modules/hacl_x25519/default.nix
index a741f5b6681..46a04a51fca 100644
--- a/pkgs/development/ocaml-modules/hacl_x25519/default.nix
+++ b/pkgs/development/ocaml-modules/hacl_x25519/default.nix
@@ -1,17 +1,18 @@
 { lib, buildDunePackage, fetchurl, benchmark, cstruct
-, eqaf, hex, ppx_blob, ppx_deriving_yojson, stdlib-shims, yojson }:
+, alcotest , eqaf, hex, ppx_blob, ppx_deriving_yojson, stdlib-shims, yojson }:
 
 buildDunePackage rec {
   pname = "hacl_x25519";
-  version = "0.1.1";
+  version = "0.2.0";
 
   src = fetchurl {
     url = "https://github.com/mirage/hacl/releases/download/v${version}/${pname}-v${version}.tbz";
-    sha256 = "187khbx1myh942c2v5f7wbms2hmhmgn57ik25djhnryln32c0874";
+    sha256 = "0ppq56i2yhxzz38w120aynnkx10kncl86zvqip9zx0v4974k3k4x";
   };
 
+  useDune2 = true;
   propagatedBuildInputs = [ eqaf cstruct ];
-  checkInputs = [ benchmark hex ppx_blob ppx_deriving_yojson stdlib-shims yojson ];
+  checkInputs = [ alcotest benchmark hex ppx_blob ppx_deriving_yojson stdlib-shims yojson ];
   doCheck = true;
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/hidapi/default.nix b/pkgs/development/ocaml-modules/hidapi/default.nix
new file mode 100644
index 00000000000..cd95b34fa2b
--- /dev/null
+++ b/pkgs/development/ocaml-modules/hidapi/default.nix
@@ -0,0 +1,27 @@
+{ pkgs, lib, fetchurl, buildDunePackage, pkg-config
+, bigstring,
+}:
+
+buildDunePackage rec {
+  pname = "hidapi";
+  version = "1.1.1";
+
+  src = fetchurl {
+    url = "https://github.com/vbmithr/ocaml-hidapi/releases/download/${version}/${pname}-${version}.tbz";
+    sha256 = "1j7rd7ajrzla76r3sxljx6fb18f4f4s3jd7vhv59l2ilxyxycai2";
+  };
+
+  minimumOCamlVersion = "4.03";
+
+  buildInputs = [ pkgs.hidapi pkg-config ];
+  propagatedBuildInputs = [ bigstring ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = https://github.com/vbmithr/ocaml-hidapi;
+    description = "Bindings to Signal11's hidapi library";
+    license = licenses.isc;
+    maintainers = [ maintainers.alexfmpe ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/inotify/default.nix b/pkgs/development/ocaml-modules/inotify/default.nix
index e2993077521..44b34beb79d 100644
--- a/pkgs/development/ocaml-modules/inotify/default.nix
+++ b/pkgs/development/ocaml-modules/inotify/default.nix
@@ -1,6 +1,5 @@
-{ stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild
+{ stdenv, fetchFromGitHub, fetchpatch, ocaml, findlib, ocamlbuild
 , ocaml_lwt # optional lwt support
-, doCheck ? stdenv.lib.versionAtLeast ocaml.version "4.03"
 , ounit, fileutils # only for tests
 }:
 
@@ -15,13 +14,22 @@ stdenv.mkDerivation rec {
 		sha256 = "1s6vmqpx19hxzsi30jvp3h7p56rqnxfhfddpcls4nz8sqca1cz5y";
 	};
 
-	buildInputs = [ ocaml findlib ocamlbuild ocaml_lwt ]
-	++ stdenv.lib.optionals doCheck [ ounit fileutils ];
+	patches = [ (fetchpatch {
+		url = "https://github.com/whitequark/ocaml-inotify/commit/716c8002cc1652f58eb0c400ae92e04003cba8c9.patch";
+		sha256 = "04lfxrrsmk2mc704kaln8jqx93jc4bkxhijmfy2d4cmk1cim7r6k";
+	}) ];
+
+	buildInputs = [ ocaml findlib ocamlbuild ocaml_lwt ];
+	checkInputs = [ ounit fileutils ];
 
 	configureFlags = [ "--enable-lwt"
 	  (stdenv.lib.optionalString doCheck "--enable-tests") ];
 
-	inherit doCheck;
+	postConfigure = stdenv.lib.optionalString doCheck ''
+	  echo '<lib_test/test_inotify_lwt.*>: pkg_threads' | tee -a _tags
+	'';
+
+	doCheck = true;
 	checkTarget = "test";
 
 	createFindlibDestdir = true;
diff --git a/pkgs/development/ocaml-modules/janestreet/0.13.nix b/pkgs/development/ocaml-modules/janestreet/0.13.nix
index d16ceefd04c..b92027a65a0 100644
--- a/pkgs/development/ocaml-modules/janestreet/0.13.nix
+++ b/pkgs/development/ocaml-modules/janestreet/0.13.nix
@@ -1,5 +1,6 @@
 { janePackage
 , ctypes
+, dune-configurator
 , num
 , octavius
 , ppxlib
@@ -417,6 +418,15 @@ rec {
     propagatedBuildInputs = [ async shell ];
   };
 
+  async_ssl = janePackage {
+    pname = "async_ssl";
+    useDune2 = true;
+    hash = "0z5dbiam5k7ipx9ph4r8nqv0a1ldx1ymxw3xjxgrdjda90lmwf2k";
+    meta.description = "Async wrappers for SSL";
+    buildInputs = [ dune-configurator ];
+    propagatedBuildInputs = [ async ctypes openssl ];
+  };
+
   core_bench = janePackage {
     pname = "core_bench";
     hash = "1nk0i3z8rqrljbf4bc7ljp71g0a4361nh85s2ang0lgxri74zacm";
diff --git a/pkgs/development/ocaml-modules/jwto/default.nix b/pkgs/development/ocaml-modules/jwto/default.nix
new file mode 100644
index 00000000000..a4cf0aae691
--- /dev/null
+++ b/pkgs/development/ocaml-modules/jwto/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildDunePackage, fetchFromGitHub, alcotest, cryptokit, fmt, yojson
+, base64, re, ppx_deriving }:
+
+buildDunePackage rec {
+  pname = "jwto";
+  version = "0.3.0";
+
+  minimumOCamlVersion = "4.05";
+
+  src = fetchFromGitHub {
+    owner = "sporto";
+    repo = "jwto";
+    rev = version;
+    sha256 = "1p799zk8j9c0002xzi2x7ndj1bzqf14744ampcqndrjnsi7mq71s";
+  };
+
+  propagatedBuildInputs =
+    [ cryptokit fmt yojson base64 re ppx_deriving ];
+
+  checkInputs = [ alcotest ];
+
+  doCheck = true;
+
+  meta = {
+    homepage = "https://github.com/sporto/jwto";
+    description = "JSON Web Tokens (JWT) for OCaml";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ Zimmi48 jtcoolen ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/lablgtk3/default.nix b/pkgs/development/ocaml-modules/lablgtk3/default.nix
index 641f16f69b0..767e087a7f0 100644
--- a/pkgs/development/ocaml-modules/lablgtk3/default.nix
+++ b/pkgs/development/ocaml-modules/lablgtk3/default.nix
@@ -1,19 +1,18 @@
 { lib, fetchurl, pkgconfig, buildDunePackage, gtk3, cairo2 }:
 
 buildDunePackage rec {
-  version = "3.1.0";
+  version = "3.1.1";
   pname = "lablgtk3";
 
   minimumOCamlVersion = "4.05";
 
   src = fetchurl {
     url = "https://github.com/garrigue/lablgtk/releases/download/${version}/lablgtk3-${version}.tbz";
-    sha256 = "1fn04qwgkwc86jndlrnv4vxcmasjsp1mmcgfznahj1ccc7bv47sv";
+    sha256 = "1ygc1yh99gh44h958yffw1vxdlfpn799d4x1s36c2jfbi8f0dir2";
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gtk3 ];
-  propagatedBuildInputs = [ cairo2 ];
+  propagatedBuildInputs = [ gtk3 cairo2 ];
 
   meta = {
     description = "OCaml interface to GTK 3";
diff --git a/pkgs/development/ocaml-modules/labltk/default.nix b/pkgs/development/ocaml-modules/labltk/default.nix
index e7b68b90713..1c8edea66fb 100644
--- a/pkgs/development/ocaml-modules/labltk/default.nix
+++ b/pkgs/development/ocaml-modules/labltk/default.nix
@@ -52,6 +52,10 @@ let param =
     version = "8.06.8";
     sha256 = "0lfjc7lscq81ibqb3fcybdzs2r1i2xl7rsgi7linq46a0pcpkinw";
   };
+  "4.11" = mkNewParam {
+    version = "8.06.9";
+    sha256 = "1k42k3bjkf22gk39lwwzqzfhgjyhxnclslldrzpg5qy1829pbnc0";
+  };
 }.${builtins.substring 0 4 ocaml.version};
 in
 
diff --git a/pkgs/development/ocaml-modules/lambdasoup/default.nix b/pkgs/development/ocaml-modules/lambdasoup/default.nix
index b4980240c90..f535ee78fef 100644
--- a/pkgs/development/ocaml-modules/lambdasoup/default.nix
+++ b/pkgs/development/ocaml-modules/lambdasoup/default.nix
@@ -2,13 +2,13 @@
 
 buildDunePackage rec {
   pname = "lambdasoup";
-  version = "0.6.3"; # NB: double-check the license when updating
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "aantron";
     repo = pname;
     rev = version;
-    sha256 = "1w4zp3vswijzvrx0c3fv269ncqwnvvrzc46629nnwm9shwv07vmv";
+    sha256 = "14lndpsnzjjg58sdwxqpsv7kz77mnwn5658lya9jyaclj8azmaks";
   };
 
   propagatedBuildInputs = [ markup ];
@@ -16,7 +16,7 @@ buildDunePackage rec {
   meta = {
     description = "Functional HTML scraping and rewriting with CSS in OCaml";
     homepage = "https://aantron.github.io/lambdasoup/";
-    license = lib.licenses.bsd2;
+    license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
   };
 
diff --git a/pkgs/development/ocaml-modules/lua-ml/default.nix b/pkgs/development/ocaml-modules/lua-ml/default.nix
index a0db995827a..6e69bc1e5c5 100644
--- a/pkgs/development/ocaml-modules/lua-ml/default.nix
+++ b/pkgs/development/ocaml-modules/lua-ml/default.nix
@@ -7,13 +7,13 @@ else
 stdenv.mkDerivation rec {
   pname = "lua-ml";
   name = "ocaml${ocaml.version}-${pname}-${version}";
-  version = "0.9";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "lindig";
     repo = pname;
     rev = "${version}";
-    sha256 = "09lj6qykg15fdf65in7xdry0jcifcr8vqbvz85v12gwfckmmxjir";
+    sha256 = "04lv98nxmzanvyn4c0k6k0ax29f5xfdl8qzpf5hwadslq213a044";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild ];
diff --git a/pkgs/development/ocaml-modules/lwt/default.nix b/pkgs/development/ocaml-modules/lwt/default.nix
index a809e68000f..759f0deedf1 100644
--- a/pkgs/development/ocaml-modules/lwt/default.nix
+++ b/pkgs/development/ocaml-modules/lwt/default.nix
@@ -7,11 +7,11 @@ let inherit (lib) optional versionAtLeast; in
 
 buildDunePackage rec {
   pname = "lwt";
-  version = "4.5.0";
+  version = "5.3.0";
 
   src = fetchzip {
     url = "https://github.com/ocsigen/${pname}/archive/${version}.tar.gz";
-    sha256 = "0l836z5zr38969bi77aga7ismj4wb01i3ffxf5v59jsgd3g44r2w";
+    sha256 = "15hgy3220m2b8imipa514n7l65m1h5lc6l1hanqwwvs7ghh2aqp2";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/ocaml-modules/lwt/ppx.nix b/pkgs/development/ocaml-modules/lwt/ppx.nix
index 3cf4541aa01..f2707064f2a 100644
--- a/pkgs/development/ocaml-modules/lwt/ppx.nix
+++ b/pkgs/development/ocaml-modules/lwt/ppx.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage {
   pname = "lwt_ppx";
-  version = "1.2.4";
+  version = "2.0.1";
 
   src = fetchzip {
     # `lwt_ppx` has a different release cycle than Lwt, but it's included in
@@ -12,8 +12,8 @@ buildDunePackage {
     #
     # This is particularly useful for overriding Lwt without breaking `lwt_ppx`,
     # as new Lwt releases may contain broken `lwt_ppx` code.
-    url = "https://github.com/ocsigen/lwt/archive/4.4.0.tar.gz";
-    sha256 = "1l97zdcql7y13fhaq0m9n9xvxf712jg0w70r72fvv6j49xm4nlhi";
+    url = "https://github.com/ocsigen/lwt/archive/5.2.0.tar.gz";
+    sha256 = "1znw8ckwdmqsnrcgar4g33zgr659l4l904bllrz69bbwdnfmz2x3";
   };
 
 
diff --git a/pkgs/development/ocaml-modules/lwt_ssl/default.nix b/pkgs/development/ocaml-modules/lwt_ssl/default.nix
index 49c2b7de398..ade51b7da75 100644
--- a/pkgs/development/ocaml-modules/lwt_ssl/default.nix
+++ b/pkgs/development/ocaml-modules/lwt_ssl/default.nix
@@ -2,13 +2,13 @@
 
 buildDunePackage rec {
   pname = "lwt_ssl";
-  version = "1.1.2";
+  version = "1.1.3";
 
   minimumOCamlVersion = "4.02";
 
   src = fetchzip {
     url = "https://github.com/aantron/${pname}/archive/${version}.tar.gz";
-    sha256 = "1q0an3djqjxv83v3iswi7m81braqx93kcrcwrxwmf6jzhdm4pn15";
+    sha256 = "0v417ch5zn0yknj156awa5mrq3mal08pbrvsyribbn63ix6f9y3p";
   };
 
   propagatedBuildInputs = [ ssl lwt ];
diff --git a/pkgs/development/ocaml-modules/markup/default.nix b/pkgs/development/ocaml-modules/markup/default.nix
index 92daea1a4b6..8b3525d2634 100644
--- a/pkgs/development/ocaml-modules/markup/default.nix
+++ b/pkgs/development/ocaml-modules/markup/default.nix
@@ -1,28 +1,20 @@
-{ stdenv, fetchzip, ocaml, findlib, ocamlbuild, uutf, lwt }:
+{ lib, buildDunePackage, fetchzip, uutf }:
 
-stdenv.mkDerivation rec {
+buildDunePackage rec {
   pname = "markup";
-  version = "0.7.5";
-  name = "ocaml${ocaml.version}-${pname}-${version}";
+  version = "0.8.2";
 
   src = fetchzip {
     url = "https://github.com/aantron/markup.ml/archive/${version}.tar.gz";
-    sha256 = "09qm73m6c6wjh51w61vnfsnis37m28cf1r6hnkr3bbg903ahwbp5";
+    sha256 = "13zcrwzjmifniv3bvjbkd2ah8wwa3ld75bxh1d8hrzdvfxzh9szn";
     };
 
-  buildInputs = [ ocaml findlib ocamlbuild lwt ];
-
-  installPhase = "make ocamlfind-install";
-
   propagatedBuildInputs = [ uutf ];
 
-  createFindlibDestdir = true;
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/aantron/markup.ml/";
     description = "A pair of best-effort parsers implementing the HTML5 and XML specifications";
-    license = licenses.bsd2;
-    platforms = ocaml.meta.platforms or [];
+    license = licenses.mit;
     maintainers = with maintainers; [
       gal_bolle
       ];
diff --git a/pkgs/development/ocaml-modules/mdx/default.nix b/pkgs/development/ocaml-modules/mdx/default.nix
index 1331c10d426..f384704a1c4 100644
--- a/pkgs/development/ocaml-modules/mdx/default.nix
+++ b/pkgs/development/ocaml-modules/mdx/default.nix
@@ -1,25 +1,24 @@
 { lib, fetchurl, buildDunePackage, opaline, ocaml
 , alcotest
-, astring, cmdliner, cppo, fmt, logs, ocaml-migrate-parsetree, ocaml-version, ocaml_lwt, pandoc, re }:
+, astring, cmdliner, cppo, fmt, logs, ocaml-migrate-parsetree, ocaml-version, odoc, ocaml_lwt, pandoc, re }:
 
 buildDunePackage rec {
   pname = "mdx";
-  version = "1.6.0";
+  version = "1.7.0";
+  useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/realworldocaml/mdx/releases/download/${version}/mdx-${version}.tbz";
-    sha256 = "18m4ay226dwbgnwp3ia6bfcm033dvp9yby0lbddqn8ak374m2k3b";
+    sha256 = "0vpc30sngl3vpychrfvjwyi93mk311x3f2azlkxasgcj69fq03i7";
   };
 
   nativeBuildInputs = [ cppo ];
   buildInputs = [ cmdliner ];
-  propagatedBuildInputs = [ astring fmt logs ocaml-migrate-parsetree ocaml-version re ];
+  propagatedBuildInputs = [ astring fmt logs ocaml-migrate-parsetree ocaml-version odoc re ];
   checkInputs = [ alcotest ocaml_lwt pandoc ];
 
   doCheck = true;
 
-  dontStrip = lib.versions.majorMinor ocaml.version == "4.04";
-
   outputs = [ "bin" "lib" "out" ];
 
   installPhase = ''
diff --git a/pkgs/development/ocaml-modules/merlin-extend/default.nix b/pkgs/development/ocaml-modules/merlin-extend/default.nix
index ad3b1337977..752fbc039fa 100644
--- a/pkgs/development/ocaml-modules/merlin-extend/default.nix
+++ b/pkgs/development/ocaml-modules/merlin-extend/default.nix
@@ -1,20 +1,18 @@
-{ lib, buildDunePackage, fetchFromGitHub, cppo }:
+{ lib, buildDunePackage, fetchurl, cppo }:
 
 buildDunePackage rec {
   pname = "merlin-extend";
-  version = "0.4";
+  version = "0.6";
 
-  src = fetchFromGitHub {
-    owner = "let-def";
-    repo = pname;
-    sha256 = "1dxiqmm7ry24gvw6p9n4mrz37mnq4s6m8blrccsv3rb8yq82acx9";
-    rev = "v${version}";
+  src = fetchurl {
+    url = "https://github.com/let-def/merlin-extend/releases/download/v${version}/merlin-extend-v${version}.tbz";
+    sha256 = "0hvc4mz92x3rl2dxwrhvhzwl4gilnyvvwcqgr45vmdpyjyp3dwn2";
   };
 
   buildInputs = [ cppo ];
 
   meta = with lib; {
-    inherit (src.meta) homepage;
+    homepage = "https://github.com/let-def/merlin-extend";
     description = "SDK to extend Merlin";
     license = licenses.mit;
     maintainers = [ maintainers.volth ];
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/default.nix b/pkgs/development/ocaml-modules/mirage-crypto/default.nix
index d778a7eb487..e178e066a38 100644
--- a/pkgs/development/ocaml-modules/mirage-crypto/default.nix
+++ b/pkgs/development/ocaml-modules/mirage-crypto/default.nix
@@ -1,14 +1,14 @@
-{ lib, fetchurl, buildDunePackage, ounit, cstruct, dune-configurator, pkg-config }:
+{ lib, fetchurl, buildDunePackage, ounit, cstruct, dune-configurator, eqaf, pkg-config }:
 
 buildDunePackage rec {
   minimumOCamlVersion = "4.08";
 
   pname = "mirage-crypto";
-  version = "0.8.0";
+  version = "0.8.5";
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage-crypto/releases/download/v${version}/mirage-crypto-v${version}.tbz";
-    sha256 = "1wb2923v17z179v866ragil0r601w5b3kvpnbkmkwlijp4i5grih";
+    sha256 = "0l6q0z5ghhy0djfscb2i2xg4dpmxs4xkwh16kc473cmb4hsxsmyk";
   };
 
   useDune2 = true;
@@ -17,7 +17,7 @@ buildDunePackage rec {
   checkInputs = [ ounit ];
 
   nativeBuildInputs = [ dune-configurator pkg-config ];
-  propagatedBuildInputs = [ cstruct ];
+  propagatedBuildInputs = [ cstruct eqaf ];
 
   meta = with lib; {
     homepage = "https://github.com/mirage/mirage-crypto";
diff --git a/pkgs/development/ocaml-modules/mirage-stack/default.nix b/pkgs/development/ocaml-modules/mirage-stack/default.nix
index 64168716399..528ea68d985 100644
--- a/pkgs/development/ocaml-modules/mirage-stack/default.nix
+++ b/pkgs/development/ocaml-modules/mirage-stack/default.nix
@@ -2,11 +2,11 @@
 
 buildDunePackage rec {
   pname = "mirage-stack";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage-stack/releases/download/v${version}/mirage-stack-v${version}.tbz";
-    sha256 = "1xdy59bxnki1r0jwm3s8fwarhhbxr0lsqqiag5b1j41hciiqp9jq";
+    sha256 = "1y110i4kjr03b0ji3q5h0bi3n3q8mdkfflb3fyq5rvpi5l45vvdb";
   };
 
   propagatedBuildInputs = [ mirage-protocols ];
diff --git a/pkgs/development/ocaml-modules/mustache/default.nix b/pkgs/development/ocaml-modules/mustache/default.nix
new file mode 100644
index 00000000000..267aa17e9e4
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mustache/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildDunePackage, fetchFromGitHub, ezjsonm, menhir, ounit }:
+
+buildDunePackage rec {
+  pname = "mustache";
+  version = "3.1.0";
+  src = fetchFromGitHub {
+    owner = "rgrinberg";
+    repo = "ocaml-mustache";
+    rev = "v${version}";
+    sha256 = "19v8rk8d8lkfm2rmhdawfgadji6wa267ir5dprh4w9l1sfj8a1py";
+  };
+
+  buildInputs = [ ezjsonm ];
+  propagatedBuildInputs = [ menhir ];
+
+  doCheck = true;
+  checkInputs = [ ounit ];
+
+  meta = {
+    description = "Mustache logic-less templates in OCaml";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.vbgl ];
+    inherit (src.meta) homepage;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/nonstd/default.nix b/pkgs/development/ocaml-modules/nonstd/default.nix
new file mode 100644
index 00000000000..150edb3174c
--- /dev/null
+++ b/pkgs/development/ocaml-modules/nonstd/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromBitbucket, buildDunePackage }:
+
+buildDunePackage rec {
+  pname = "nonstd";
+  version = "0.0.3";
+
+  minimumOCamlVersion = "4.02";
+
+  src = fetchFromBitbucket {
+    owner = "smondet";
+    repo = pname;
+    rev = "${pname}.${version}";
+    sha256 = "0ccjwcriwm8fv29ij1cnbc9win054kb6pfga3ygzdbjpjb778j46";
+  };
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = https://bitbucket.org/smondet/nonstd;
+    description = "Non-standard mini-library";
+    license = licenses.isc;
+    maintainers = [ maintainers.alexfmpe ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ocamlgraph/default.nix b/pkgs/development/ocaml-modules/ocamlgraph/default.nix
index d2a94112eb3..df684f166e1 100644
--- a/pkgs/development/ocaml-modules/ocamlgraph/default.nix
+++ b/pkgs/development/ocaml-modules/ocamlgraph/default.nix
@@ -1,4 +1,7 @@
-{stdenv, fetchurl, ocaml, findlib, lablgtk ? null}:
+{ stdenv, fetchurl, ocaml, findlib
+, gtkSupport ? true
+, lablgtk
+}:
 
 stdenv.mkDerivation rec {
   pname = "ocamlgraph";
@@ -9,22 +12,19 @@ stdenv.mkDerivation rec {
     sha256 = "0m9g16wrrr86gw4fz2fazrh8nkqms0n863w7ndcvrmyafgxvxsnr";
   };
 
-  buildInputs = [ ocaml findlib lablgtk ];
-
-  patches = ./destdir.patch;
-
-  postPatch = ''
-    sed -i 's@$(DESTDIR)$(OCAMLLIB)/ocamlgraph@$(DESTDIR)/lib/ocaml/${ocaml.version}/site-lib/ocamlgraph@' Makefile.in
-    sed -i 's@OCAMLFINDDEST := -destdir $(DESTDIR)@@' Makefile.in
-    ${stdenv.lib.optionalString (lablgtk != null)
-      "sed -i 's@+lablgtk2@${lablgtk}/lib/ocaml/${ocaml.version}/site-lib/lablgtk2 -I ${lablgtk}/lib/ocaml/${ocaml.version}/site-lib/stublibs@' configure Makefile.in editor/Makefile"}
-  '';
+  buildInputs = [ ocaml findlib ]
+  ++ stdenv.lib.optional gtkSupport lablgtk
+  ;
 
   createFindlibDestdir = true;
 
-  buildPhase = ''
-    make all
-    make install-findlib
+  buildFlags =  [ "all" ];
+  installTargets = [ "install-findlib" ];
+
+  postInstall = stdenv.lib.optionalString gtkSupport ''
+    mkdir -p $out/bin
+    cp dgraph/dgraph.opt $out/bin/graph-viewer
+    cp editor/editor.opt $out/bin/graph-editor
   '';
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/ocamlgraph/destdir.patch b/pkgs/development/ocaml-modules/ocamlgraph/destdir.patch
deleted file mode 100644
index 38fca1c491f..00000000000
--- a/pkgs/development/ocaml-modules/ocamlgraph/destdir.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -Naur -x '*~' ocamlgraph-1.8.1/Makefile.in ocamlgraph-1.8.1-new//Makefile.in
---- ocamlgraph-1.8.1/Makefile.in	2011-10-17 09:57:03.000000000 -0430
-+++ ocamlgraph-1.8.1-new//Makefile.in	2011-11-24 13:01:22.626004819 -0430
-@@ -16,8 +16,8 @@
- ##########################################################################
- 
- # Where to install the binaries
--DESTDIR	=
- prefix	=@prefix@
-+DESTDIR=$(prefix)
- exec_prefix=@exec_prefix@
- datarootdir=@datarootdir@
- BINDIR	=$(DESTDIR)@bindir@
diff --git a/pkgs/development/ocaml-modules/ocamlnet/default.nix b/pkgs/development/ocaml-modules/ocamlnet/default.nix
index 7d9a0573db7..5b6e0dde8b7 100644
--- a/pkgs/development/ocaml-modules/ocamlnet/default.nix
+++ b/pkgs/development/ocaml-modules/ocamlnet/default.nix
@@ -8,11 +8,11 @@ else
 
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-ocamlnet-${version}";
-  version = "4.1.7";
+  version = "4.1.8";
 
   src = fetchurl {
     url = "http://download.camlcity.org/download/ocamlnet-${version}.tar.gz";
-    sha256 = "0r9gl0lsgxk2achixxqzm8bm5l9jwc4vwihf0rvxxa9v9q9vfdhi";
+    sha256 = "1x703mjqsv9nvffnkj5i36ij2s5zfvxxll2z1qj6a7p428b2yfnm";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/ocaml-modules/ocsigen-server/default.nix b/pkgs/development/ocaml-modules/ocsigen-server/default.nix
index 0d56f2c783f..30ddd005b79 100644
--- a/pkgs/development/ocaml-modules/ocsigen-server/default.nix
+++ b/pkgs/development/ocaml-modules/ocsigen-server/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchFromGitHub, which, ocaml, findlib, lwt_react, ssl, lwt_ssl
 , lwt_log, ocamlnet, ocaml_pcre, cryptokit, tyxml, xml-light, ipaddr
 , pgocaml, camlzip, ocaml_sqlite3
-, makeWrapper
+, makeWrapper, fetchpatch
 }:
 
-if !stdenv.lib.versionAtLeast ocaml.version "4.03"
+if !stdenv.lib.versionAtLeast ocaml.version "4.06.1"
 then throw "ocsigenserver is not available for OCaml ${ocaml.version}"
 else
 
@@ -13,16 +13,22 @@ let mkpath = p: n:
 in
 
 stdenv.mkDerivation rec {
-  version = "2.15.0";
+  version = "2.16.0";
   pname = "ocsigenserver";
 
   src = fetchFromGitHub {
     owner = "ocsigen";
     repo = "ocsigenserver";
     rev = version;
-    sha256 = "15qdkxcbl9c1bbn0fh9awjw0hjn7r6awcn288a9vyxln7icdbifw";
+    sha256 = "0dd7zfk8dlajv0297dswaaqh96hjk2ppy8zb67jbkd26nimahk9y";
   };
 
+  # unreleased fix for Makefile typos breaking compilation
+  patches = [ (fetchpatch {
+    url = "https://github.com/ocsigen/ocsigenserver/commit/014aefc4e460686a361b974f16ebb7e0c993b36b.patch";
+    sha256 = "0xda4fj8p5102lh9xmrn5mv3s0ps6yykqj3mpjf72gf4zd6fzcn7";
+  }) ];
+
   buildInputs = [ which makeWrapper ocaml findlib
     lwt_react pgocaml camlzip ocaml_sqlite3
   ];
diff --git a/pkgs/development/ocaml-modules/ounit2/default.nix b/pkgs/development/ocaml-modules/ounit2/default.nix
index aea38606193..708c9a6c19e 100644
--- a/pkgs/development/ocaml-modules/ounit2/default.nix
+++ b/pkgs/development/ocaml-modules/ounit2/default.nix
@@ -1,14 +1,14 @@
 { lib, buildDunePackage, fetchurl, stdlib-shims }:
 
 buildDunePackage rec {
-  minimumOCamlVersion = "4.02.3";
+  minimumOCamlVersion = "4.04";
 
   pname = "ounit2";
-  version = "2.2.2";
+  version = "2.2.3";
 
   src = fetchurl {
     url = "https://github.com/gildor478/ounit/releases/download/v${version}/ounit-v${version}.tbz";
-    sha256 = "1h4xdcyzwyhxg263w9b16x9n6cb11fzazmwnsnpich4djpl9lhsk";
+    sha256 = "1naahh24lbyxmrnzpfz8karniqbf1nknivf96mrvsr6zlx5ad072";
   };
 
   propagatedBuildInputs = [ stdlib-shims ];
diff --git a/pkgs/development/ocaml-modules/piqi-ocaml/default.nix b/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
index 731a5303ff5..39201d0570b 100644
--- a/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
+++ b/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
@@ -1,20 +1,18 @@
-{ stdenv, fetchurl, fetchpatch, ocaml, findlib, piqi, camlp4 }:
+{ stdenv, fetchFromGitHub, fetchpatch, ocaml, findlib, piqi, stdlib-shims }:
 
 stdenv.mkDerivation rec {
-  version = "0.7.5";
+  version = "0.7.7";
   pname = "piqi-ocaml";
+  name = "ocaml${ocaml.version}-${pname}-${version}";
 
-  src = fetchurl {
-    url = "https://github.com/alavrik/piqi-ocaml/archive/v${version}.tar.gz";
-    sha256 = "0ngz6y8i98i5v2ma8nk6mc83pdsmf2z0ks7m3xi6clfg3zqbddrv";
+  src = fetchFromGitHub {
+    owner = "alavrik";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1913jpsb8mvqi8609j4g4sm5jhg50dq0xqxgy8nmvknfryyc89nm";
   };
 
-  patches = [ (fetchpatch {
-    url = "https://github.com/alavrik/piqi-ocaml/commit/336e8fdb84e77f4105e9bbb5ab545b8729101308.patch";
-    sha256 = "071s4xjyr6xx95v6az2lbl2igc87n7z5jqnnbhfq2pidrxakd0la";
-  })];
-
-  buildInputs = [ ocaml findlib piqi camlp4 ];
+  buildInputs = [ ocaml findlib piqi stdlib-shims ];
 
   createFindlibDestdir = true;
 
diff --git a/pkgs/development/ocaml-modules/posix/base.nix b/pkgs/development/ocaml-modules/posix/base.nix
new file mode 100644
index 00000000000..a6fe690ebcc
--- /dev/null
+++ b/pkgs/development/ocaml-modules/posix/base.nix
@@ -0,0 +1,26 @@
+{ lib, buildDunePackage, fetchFromGitHub
+, ctypes, integers
+}:
+
+buildDunePackage rec {
+  pname = "posix-base";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-posix";
+    rev = "v${version}";
+    sha256 = "18px8hfqcfy2lk8105ki3hrxxigs44gs046ba0fqda6wzd0hr82b";
+  };
+
+  useDune2 = true;
+
+  propagatedBuildInputs = [ ctypes integers ];
+
+  meta = {
+    homepage = "https://www.liquidsoap.info/ocaml-posix/";
+    description = "Base module for the posix bindings";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/posix/socket.nix b/pkgs/development/ocaml-modules/posix/socket.nix
new file mode 100644
index 00000000000..69a469bbece
--- /dev/null
+++ b/pkgs/development/ocaml-modules/posix/socket.nix
@@ -0,0 +1,16 @@
+{ lib, buildDunePackage, posix-base }:
+
+buildDunePackage {
+  pname = "posix-socket";
+
+  inherit (posix-base) version src useDune2;
+
+  propagatedBuildInputs = [ posix-base ];
+
+  doCheck = true;
+
+  meta = posix-base.meta // {
+    description = "Bindings for posix sockets";
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/posix/types.nix b/pkgs/development/ocaml-modules/posix/types.nix
new file mode 100644
index 00000000000..2512fe892c1
--- /dev/null
+++ b/pkgs/development/ocaml-modules/posix/types.nix
@@ -0,0 +1,15 @@
+{ lib, buildDunePackage, posix-base }:
+
+buildDunePackage {
+  pname = "posix-types";
+
+  inherit (posix-base) version src useDune2;
+
+  minimumOCamlVersion = "4.03";
+
+  propagatedBuildInputs = [ posix-base ];
+
+  meta = posix-base.meta // {
+    description = "Bindings for the types defined in <sys/types.h>";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
index 5faaca81039..9af2c6edb32 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
@@ -4,7 +4,7 @@
 
 buildDunePackage rec {
   pname = "ppx_deriving_yojson";
-  version = "3.5.2";
+  version = "3.5.3";
 
   minimumOCamlVersion = "4.04";
 
@@ -12,7 +12,7 @@ buildDunePackage rec {
     owner = "ocaml-ppx";
     repo = "ppx_deriving_yojson";
     rev = "v${version}";
-    sha256 = "1vbhmnhnj1aa4jrp8xqi52nggwj7vrml83z2j0r0qzvl65v02mc0";
+    sha256 = "030638gp39mr4hkilrjhd98q4s8gjqxifm6fy6bwqrg74hmrl2y5";
   };
 
   buildInputs = [ ppxfind ounit ];
diff --git a/pkgs/development/ocaml-modules/ppx_tools/default.nix b/pkgs/development/ocaml-modules/ppx_tools/default.nix
index a8d438d3731..5f3f0916178 100644
--- a/pkgs/development/ocaml-modules/ppx_tools/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_tools/default.nix
@@ -1,6 +1,11 @@
 { stdenv, fetchFromGitHub, buildDunePackage, ocaml, findlib }:
 
-let param = {
+let param =
+  let v6_2 = {
+    version = "6.2";
+    sha256 = "0qf4fwnn4hhk52kjw9frv21v23azqnn4mjvwf1hs0nxf7q4kacb5";
+  }; in
+{
   "4.02" = {
     version = "5.0+4.02.0";
     sha256 = "16drjk0qafjls8blng69qiv35a84wlafpk16grrg2i3x19p8dlj8"; };
@@ -20,15 +25,10 @@ let param = {
   "4.07" = {
     version = "5.1+4.06.0";
     sha256 = "1ww4cspdpgjjsgiv71s0im5yjkr3544x96wsq1vpdacq7dr7zwiw"; };
-  "4.08" = {
-    version = "5.3+4.08.0";
-    sha256 = "0vdmhs3hpmh5iclx4lzgdpf362m4l35zprxs73r84z1yhr4jcr4m"; };
-  "4.09" = {
-    version = "6.0+4.08.0";
-    sha256 = "056cmdajap8mbb8k0raj0cq0y4jf7pf5x0hlivm92w2v7xxf59ns"; };
-  "4.10" = {
-    version = "6.1+4.10.0";
-    sha256 = "0ccx2g4zpwnv52bbzhgxji1nvzmn80jwiqalwwc4s60i9qg51llw"; };
+  "4.08" = v6_2;
+  "4.09" = v6_2;
+  "4.10" = v6_2;
+  "4.11" = v6_2;
 }.${ocaml.meta.branch};
 in
 
diff --git a/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix b/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix
new file mode 100644
index 00000000000..442a4126a89
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildDunePackage, fetchFromGitHub, yojson }:
+
+buildDunePackage rec {
+  pname = "ppx_yojson_conv_lib";
+  version = "0.14.0";
+
+  minimumOCamlVersion = "4.02.3";
+
+  src = fetchFromGitHub {
+    owner = "janestreet";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "12s3xshayy1f8cp9lk6zqwnw60n7cdap55gkksz5w65gdd8bfxmf";
+  };
+
+  propagatedBuildInputs = [ yojson ];
+
+  meta = with lib; {
+    description = "Runtime lib for ppx_yojson_conv";
+    homepage = "https://github.com/janestreet/ppx_yojson_conv_lib";
+    maintainers = [ maintainers.marsam ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/prof_spacetime/default.nix b/pkgs/development/ocaml-modules/prof_spacetime/default.nix
new file mode 100644
index 00000000000..91e30e155db
--- /dev/null
+++ b/pkgs/development/ocaml-modules/prof_spacetime/default.nix
@@ -0,0 +1,43 @@
+{ buildDunePackage
+, lib
+, fetchFromGitHub
+, cmdliner
+, spacetime_lib
+, yojson
+, cohttp
+, ocaml_lwt
+, cohttp-lwt-unix
+, lambdaTerm
+, stdlib-shims
+}:
+
+buildDunePackage rec {
+  pname = "prof_spacetime";
+  version = "0.3.0";
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "lpw25";
+    repo = pname;
+    rev = version;
+    sha256 = "1s88gf6x5almmyi58zx4q23w89mvahfjwhvyfg29ya5s1pjbc9hi";
+  };
+
+  buildInputs = [
+    cmdliner
+    spacetime_lib
+    yojson
+    cohttp
+    ocaml_lwt
+    cohttp-lwt-unix
+    lambdaTerm
+    stdlib-shims
+  ];
+
+  meta = {
+    description = "A viewer for OCaml spacetime profiles";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.symphorien ];
+    inherit (src.meta) homepage;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/re/default.nix b/pkgs/development/ocaml-modules/re/default.nix
index 2031c469b29..8881821490a 100644
--- a/pkgs/development/ocaml-modules/re/default.nix
+++ b/pkgs/development/ocaml-modules/re/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip, buildDunePackage, ounit, seq }:
+{ lib, fetchzip, buildDunePackage, ocaml, ounit, seq }:
 
 buildDunePackage rec {
   pname = "re";
@@ -11,14 +11,14 @@ buildDunePackage rec {
     sha256 = "07ycb103mr4mrkxfd63cwlsn023xvcjp0ra0k7n2gwrg0mwxmfss";
   };
 
-  buildInputs = [ ounit ];
+  buildInputs = lib.optional doCheck ounit;
   propagatedBuildInputs = [ seq ];
-  doCheck = true;
+  doCheck = lib.versionAtLeast ocaml.version "4.04";
 
   meta = {
     homepage = "https://github.com/ocaml/ocaml-re";
     description = "Pure OCaml regular expressions, with support for Perl and POSIX-style strings";
-    license = stdenv.lib.licenses.lgpl2;
-    maintainers = with stdenv.lib.maintainers; [ vbgl ];
+    license = lib.licenses.lgpl2;
+    maintainers = with lib.maintainers; [ vbgl ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/sosa/default.nix b/pkgs/development/ocaml-modules/sosa/default.nix
new file mode 100644
index 00000000000..4278989341f
--- /dev/null
+++ b/pkgs/development/ocaml-modules/sosa/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchFromGitHub, stdenv
+, findlib, nonstd, ocaml, ocamlbuild
+}:
+
+stdenv.mkDerivation rec {
+  name = "ocaml${ocaml.version}-sosa-${version}";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "hammerlab";
+    repo = "sosa";
+    rev = "sosa.${version}";
+    sha256 = "053hdv6ww0q4mivajj4iyp7krfvgq8zajq9d8x4mia4lid7j0dyk";
+  };
+
+  buildInputs = [ nonstd ocaml ocamlbuild findlib ];
+
+  buildPhase = "make build";
+
+  createFindlibDestdir = true;
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = http://www.hammerlab.org/docs/sosa/master/index.html;
+    description = "Sane OCaml String API";
+    license = licenses.isc;
+    maintainers = [ maintainers.alexfmpe ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/spacetime_lib/default.nix b/pkgs/development/ocaml-modules/spacetime_lib/default.nix
index 6b1b45cb2fb..db6d184655c 100644
--- a/pkgs/development/ocaml-modules/spacetime_lib/default.nix
+++ b/pkgs/development/ocaml-modules/spacetime_lib/default.nix
@@ -13,6 +13,10 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ owee ];
 
+  preConfigure = ''
+    bash ./configure.sh
+  '';
+
   meta = {
     description = "An OCaml library providing some simple operations for handling OCaml “spacetime” profiles";
     inherit (src.meta) homepage;
diff --git a/pkgs/development/ocaml-modules/srt/default.nix b/pkgs/development/ocaml-modules/srt/default.nix
new file mode 100644
index 00000000000..7f0897ae662
--- /dev/null
+++ b/pkgs/development/ocaml-modules/srt/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildDunePackage, fetchFromGitHub
+, dune-configurator
+, posix-socket
+, srt
+}:
+
+buildDunePackage rec {
+  pname = "srt";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-srt";
+    rev = "v${version}";
+    sha256 = "0xh89w4j7lljvpy2n08x6m9kw88f82snmzf23kp0gw637sjnrj6f";
+  };
+
+  useDune2 = true;
+
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ posix-socket srt ];
+
+  meta = {
+    description = "OCaml bindings for the libsrt library";
+    license = lib.licenses.gpl2Only;
+    inherit (src.meta) homepage;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/tls/default.nix b/pkgs/development/ocaml-modules/tls/default.nix
index 222496fc6d1..807fb022e97 100644
--- a/pkgs/development/ocaml-modules/tls/default.nix
+++ b/pkgs/development/ocaml-modules/tls/default.nix
@@ -6,12 +6,12 @@
 buildDunePackage rec {
   minimumOCamlVersion = "4.08";
 
-  version = "0.12.2";
+  version = "0.12.4";
   pname = "tls";
 
   src = fetchurl {
     url = "https://github.com/mirleft/ocaml-tls/releases/download/v${version}/tls-v${version}.tbz";
-    sha256 = "1wpgs0cd79wl4lnn1i44xjn8prha793nrbyv68zjiqpq3gmpyy3k";
+    sha256 = "1m6ci98xg8axk1swrjx0q33ixinyjg8vzr7vwr65k9wljfgy10s9";
   };
 
   useDune2 = true;
diff --git a/pkgs/development/ocaml-modules/torch/default.nix b/pkgs/development/ocaml-modules/torch/default.nix
index 3ae9b44eba9..0e2bdf7311c 100644
--- a/pkgs/development/ocaml-modules/torch/default.nix
+++ b/pkgs/development/ocaml-modules/torch/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildDunePackage
 , fetchFromGitHub
 , cmdliner
@@ -15,7 +16,7 @@
 
 buildDunePackage rec {
   pname = "torch";
-  version = "0.9b";
+  version = "0.10";
 
   minimumOCamlVersion = "4.07";
 
@@ -23,7 +24,7 @@ buildDunePackage rec {
     owner = "LaurentMazare";
     repo   = "ocaml-${pname}";
     rev    = version;
-    sha256 = "1xn8zfs3viz80agckcpl9a4vjbq6j5g280i95jyy5s0zbcnajpnm";
+    sha256 = "1rqrv6hbical8chk0bl2nf60q6m4b5d1gab9fc5q03vkz2987f9b";
   };
 
   propagatedBuildInputs = [
@@ -42,7 +43,7 @@ buildDunePackage rec {
 
   preBuild = ''export LIBTORCH=${pytorch.dev}/'';
 
-  doCheck = true;
+  doCheck = !stdenv.isAarch64;
   checkPhase = "dune runtest";
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/tsort/default.nix b/pkgs/development/ocaml-modules/tsort/default.nix
new file mode 100644
index 00000000000..d47236ba96b
--- /dev/null
+++ b/pkgs/development/ocaml-modules/tsort/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildDunePackage, fetchFromGitHub, containers }:
+
+buildDunePackage rec {
+  pname = "tsort";
+  version = "2.0.0";
+  src = fetchFromGitHub {
+    owner = "dmbaturin";
+    repo = "ocaml-tsort";
+    rev = version;
+    sha256 = "0i67ys5p5i8q9p0nhkq4pjg9jav8dy0fiy975a365j7m6bhrwgc1";
+  };
+
+  propagatedBuildInputs = [ containers ];
+
+  meta = {
+    description = "Easy to use and user-friendly topological sort";
+    inherit (src.meta) homepage;
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/uucd/default.nix b/pkgs/development/ocaml-modules/uucd/default.nix
index 097676e8abb..355b177b204 100644
--- a/pkgs/development/ocaml-modules/uucd/default.nix
+++ b/pkgs/development/ocaml-modules/uucd/default.nix
@@ -6,11 +6,11 @@ let
 in
 stdenv.mkDerivation rec {
   name = "ocaml-${pname}-${version}";
-  version = "10.0.0";
+  version = "13.0.0";
 
   src = fetchurl {
     url = "${webpage}/releases/${pname}-${version}.tbz";
-    sha256 = "0cdyg6vaic4n58w80qriwvaq1c40ng3fh74ilxrwajbq163k055q";
+    sha256 = "1fg77hg4ibidkv1x8hhzl8z3rzmyymn8m4i35jrdibb8adigi8v2";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild topkg ];
diff --git a/pkgs/development/ocaml-modules/uunf/default.nix b/pkgs/development/ocaml-modules/uunf/default.nix
index f9569f86086..1d0e5b2bcd9 100644
--- a/pkgs/development/ocaml-modules/uunf/default.nix
+++ b/pkgs/development/ocaml-modules/uunf/default.nix
@@ -1,21 +1,50 @@
-{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, uchar, uutf, cmdliner }:
+{ stdenv, fetchurl, unzip, ocaml, findlib, ocamlbuild, topkg, uchar, uutf, cmdliner, uucd }:
 let
   pname = "uunf";
   webpage = "https://erratique.ch/software/${pname}";
+  version = "13.0.0";
+  ucdxml = fetchurl {
+    url = "http://www.unicode.org/Public/${version}/ucdxml/ucd.all.grouped.zip";
+    sha256 = "04gpl09ggb6fb0kmk6298rd8184dv6vcscn28l1gpdv1yjlw1a8q";
+  };
+  gen = fetchurl {
+    url = "https://raw.githubusercontent.com/dbuenzli/uunf/v12.0.0/support/gen.ml";
+    sha256 = "08j2mpi7j6q3rqc6bcdwspqn1s7pkkphznxfdycqjv4h9yaqsymj";
+  };
+  gen_norm = fetchurl {
+    url = "https://raw.githubusercontent.com/dbuenzli/uunf/v12.0.0/support/gen_norm.ml";
+    sha256 = "11vx5l5bag6bja7qj8jv4s2x9fknj3557n0mj87k2apq5gs5f4m5";
+  };
+  gen_props = fetchurl {
+    url = "https://raw.githubusercontent.com/dbuenzli/uunf/v12.0.0/support/gen_props.ml";
+    sha256 = "0a6lhja498kp9lxql0pbfvkgvajs10wx88wkqc7y5m3lrvw46268";
+  };
 in
 
-assert stdenv.lib.versionAtLeast ocaml.version "4.01";
+assert stdenv.lib.versionAtLeast ocaml.version "4.03";
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   name = "ocaml-${pname}-${version}";
-  version = "12.0.0";
+  inherit version;
 
   src = fetchurl {
     url = "${webpage}/releases/${pname}-${version}.tbz";
-    sha256 = "031fxixp37hjv45mib87wxm865k82903w72x60hp6v36k7jn34a4";
+    sha256 = "1qci04nkp24kdls1z4s8kz5dzgky4nwd5r8345nwdrgwmxhw7ksm";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild topkg uutf cmdliner ];
+  postConfigure = ''
+    rm -f src/uunf_data.ml
+    mkdir -p support/
+    cp ${gen} support/gen.ml
+    cp ${gen_norm} support/gen_norm.ml
+    cp ${gen_props} support/gen_props.ml
+    funzip ${ucdxml} > support/ucd.xml
+    ocaml -I ${findlib}/lib/ocaml/${ocaml.version}/site-lib/ pkg/build_support.ml
+  '';
+
+  nativeBuildInputs = [ unzip ];
+
+  buildInputs = [ ocaml findlib ocamlbuild topkg uutf cmdliner uucd ];
 
   propagatedBuildInputs = [ uchar ];
 
@@ -27,6 +56,5 @@ stdenv.mkDerivation rec {
     platforms = ocaml.meta.platforms or [];
     license = licenses.bsd3;
     maintainers = [ maintainers.vbgl ];
-    broken = stdenv.isAarch64;
   };
 }
diff --git a/pkgs/development/ocaml-modules/webbrowser/default.nix b/pkgs/development/ocaml-modules/webbrowser/default.nix
new file mode 100644
index 00000000000..463bfbc79f9
--- /dev/null
+++ b/pkgs/development/ocaml-modules/webbrowser/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg
+, astring, bos, cmdliner, rresult
+}:
+
+stdenv.mkDerivation rec {
+	name = "ocaml${ocaml.version}-webbrowser-${version}";
+	version = "0.6.1";
+	src = fetchurl {
+		url = "https://erratique.ch/software/webbrowser/releases/webbrowser-${version}.tbz";
+		sha256 = "137a948bx7b71zfv4za3hhznrn5lzbbrgzjy0das83zms508isx3";
+	};
+
+	nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ];
+	buildInputs = [];
+	propagatedBuildInputs = [ astring bos cmdliner rresult ];
+
+	inherit (topkg) buildPhase installPhase;
+
+	meta = {
+		description = "Open and reload URIs in browsers from OCaml";
+		homepage = "https://erratique.ch/software/webbrowser";
+		license = stdenv.lib.licenses.isc;
+		maintainers = [ stdenv.lib.maintainers.vbgl ];
+		inherit (ocaml.meta) platforms;
+	};
+}
diff --git a/pkgs/development/perl-modules/Percona-Toolkit/default.nix b/pkgs/development/perl-modules/Percona-Toolkit/default.nix
index 85feee36b50..b2c5437e380 100644
--- a/pkgs/development/perl-modules/Percona-Toolkit/default.nix
+++ b/pkgs/development/perl-modules/Percona-Toolkit/default.nix
@@ -1,24 +1,32 @@
-{ lib, fetchFromGitHub, buildPerlPackage, DBDmysql, DBI, IOSocketSSL, TermReadKey, shortenPerlShebang }:
+{ stdenv, fetchFromGitHub, buildPerlPackage, shortenPerlShebang
+, DBDmysql, DBI, IOSocketSSL, TermReadKey
+}:
 
-buildPerlPackage {
+buildPerlPackage rec {
   pname = "Percona-Toolkit";
-  version = "3.0.12";
+  version = "3.2.0";
+
   src = fetchFromGitHub {
     owner = "percona";
     repo = "percona-toolkit";
-    rev = "3.0.12";
-    sha256 = "0xk4h4dzl80kf97lbx0nznx9ajrb6kkg7k3iwca3rj6f3rqggv9y";
+    rev = "v${version}";
+    sha256 = "084ldpskvlfm32lfss5qqzm5y9b8hf029aa4i5pcnzgb53xaxkqx";
   };
+
   outputs = [ "out" ];
+
   nativeBuildInputs = [ shortenPerlShebang ];
+
   buildInputs = [ DBDmysql DBI IOSocketSSL TermReadKey ];
+
   postInstall = ''
     shortenPerlShebang $(grep -l "/bin/env perl" $out/bin/*)
   '';
-  meta = {
+
+  meta = with stdenv.lib; {
     description = ''Collection of advanced command-line tools to perform a variety of MySQL and system tasks.'';
-    homepage = "http://www.percona.com/software/percona-toolkit";
-    license = with lib.licenses; [ gpl2 ];
-    maintainers = with lib.maintainers; [ izorkin ];
+    homepage = "https://www.percona.com/software/database-tools/percona-toolkit";
+    license = with licenses; [ gpl2 ];
+    maintainers = with maintainers; [ izorkin ];
   };
 }
diff --git a/pkgs/development/perl-modules/WWW-Curl-4.17-Skip-preprocessor-symbol-only-CURL_STRICTER.patch b/pkgs/development/perl-modules/WWW-Curl-4.17-Skip-preprocessor-symbol-only-CURL_STRICTER.patch
deleted file mode 100644
index 34221c0d20c..00000000000
--- a/pkgs/development/perl-modules/WWW-Curl-4.17-Skip-preprocessor-symbol-only-CURL_STRICTER.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 0be0223422e6e5f4091c6e4e058d213623eed105 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
-Date: Mon, 12 Sep 2016 14:40:44 +0200
-Subject: [PATCH] Skip preprocessor symbol only CURL_STRICTER
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-CURL_STRICTER leaked into curl-constants.c when building against
-curl-7.50.2. This is a preprocessor only macro without a value.
-
-CPAN RT#117793
-
-Signed-off-by: Petr Písař <ppisar@redhat.com>
----
- Makefile.PL | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.PL b/Makefile.PL
-index f9170bb..ad2bd3d 100644
---- a/Makefile.PL
-+++ b/Makefile.PL
-@@ -127,7 +127,7 @@ if (!defined($curl_h)) {
-     close H;
- 
-     for my $e (sort @syms) {
--       if($e =~ /(OBSOLETE|^CURL_EXTERN|_LAST\z|_LASTENTRY\z)/) {
-+       if($e =~ /(OBSOLETE|^CURL_EXTERN|^CURL_STRICTER\z|_LAST\z|_LASTENTRY\z)/) {
-           next;
-        }
-        my ($group) = $e =~ m/^([^_]+_)/;
--- 
-2.7.4
-
diff --git a/pkgs/development/perl-modules/crypt-openpgp-remove-impure-keygen-tests.patch b/pkgs/development/perl-modules/crypt-openpgp-remove-impure-keygen-tests.patch
new file mode 100644
index 00000000000..70dc0826276
--- /dev/null
+++ b/pkgs/development/perl-modules/crypt-openpgp-remove-impure-keygen-tests.patch
@@ -0,0 +1,30 @@
+diff --git a/t/13-keygen.t b/t/13-keygen.t
+index f430ffb..2050624 100644
+--- a/t/13-keygen.t
++++ b/t/13-keygen.t
+@@ -1,5 +1,5 @@
+ use strict;
+-use Test::More tests => 29;
++use Test::More tests => 25;
+ 
+ use Crypt::OpenPGP;
+ use Crypt::OpenPGP::Message;
+@@ -26,9 +26,6 @@ for my $type ( qw( RSA DSA ) ) {
+     isa_ok $pub->key, 'Crypt::OpenPGP::Certificate';
+     isa_ok $sec->key, 'Crypt::OpenPGP::Certificate';
+ 
+-    is $pub->key->key_id, $sec->key->key_id,
+-        'public key_id matches secret key_id';
+-
+     is $pub->primary_uid, $id, 'primary_uid matches';
+ 
+     is $pub->key->key->size, $bits, 'keysize (in bits) matches for pubkey';
+@@ -47,8 +44,6 @@ for my $type ( qw( RSA DSA ) ) {
+     isa_ok $pieces[1], 'Crypt::OpenPGP::UserID';
+     isa_ok $pieces[2], 'Crypt::OpenPGP::Signature';
+ 
+-    is $pieces[0]->key_id, $sec->key->key_id,
+-        'serialized public key_id matches secret key_id';
+ }
+ 
+ {
diff --git a/pkgs/development/perl-modules/generic/default.nix b/pkgs/development/perl-modules/generic/default.nix
index 79c7919a354..c7b57eae906 100644
--- a/pkgs/development/perl-modules/generic/default.nix
+++ b/pkgs/development/perl-modules/generic/default.nix
@@ -42,7 +42,7 @@ toPerlModule(stdenv.mkDerivation (
     version = lib.getVersion attrs;                     # TODO: phase-out `attrs.name`
     builder = ./builder.sh;
     buildInputs = buildInputs ++ [ perl ];
-    nativeBuildInputs = nativeBuildInputs ++ [ (perl.dev or perl) ];
+    nativeBuildInputs = nativeBuildInputs ++ [ (perl.mini or perl) ];
     fullperl = buildPerl;
   }
 ))
diff --git a/pkgs/development/perl-modules/perl-POE-1.367-pod_linkcheck.patch b/pkgs/development/perl-modules/perl-POE-1.367-pod_linkcheck.patch
deleted file mode 100644
index e2f604985be..00000000000
--- a/pkgs/development/perl-modules/perl-POE-1.367-pod_linkcheck.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-commit 6d985026
-Author: Michael Brantley <limeytexan@gmail.com>
-Date:   Tue Feb 20 07:12:06 2018 -0500
-
-    Update broken Pod links in lib/POE/Filter/HTTPD.pm
-    
-    Update Pod links to refer only to the utf8 module and not its methods,
-    fix a mis-capitalized internal reference, and convert the dangling
-    "MaxContent" link into a code reference.
-    
-    Resolves bug: https://rt.cpan.org/Public/Bug/Display.html?id=124496
-
-diff --git a/lib/POE/Filter/HTTPD.pm b/lib/POE/Filter/HTTPD.pm
-index 9d4898e3..517be691 100644
---- a/lib/POE/Filter/HTTPD.pm
-+++ b/lib/POE/Filter/HTTPD.pm
-@@ -621,10 +621,10 @@ how to use these objects.
- 
- HTTP headers are not allowed to have UTF-8 characters; they must be
- ISO-8859-1.  POE::Filter::HTTPD will convert all UTF-8 into the MIME encoded
--equivalent.  It uses L<utf8::is_utf8> for detection-8 and
-+equivalent.  It uses C<utf8::is_utf8> for detection-8 and
- L<Email::MIME::RFC2047::Encoder> for convertion.  If L<utf8> is not
- installed, no conversion happens.  If L<Email::MIME::RFC2047::Encoder> is
--not installed, L<utf8::downgrade> is used instead.  In this last case, you will
-+not installed, C<utf8::downgrade> is used instead.  In this last case, you will
- see a warning if you try to send UTF-8 headers.
- 
- 
-@@ -651,8 +651,8 @@ streaming mode this filter will return either an HTTP::Request object or a
- block of content.  The HTTP::Request object's content will return empty. 
- The blocks of content will be parts of the request's body, up to
- Content-Length in size.  You distinguish between request objects and content
--blocks using C<Scalar::Util/bless> (See L</Streaming request> below).  This
--option supersedes L</MaxContent>.
-+blocks using C<Scalar::Util/bless> (See L</Streaming Request> below).  This
-+option supersedes C<MaxContent>.
- 
- =head1 CAVEATS
- 
diff --git a/pkgs/development/perl-modules/perl-POE-1.367-pod_no404s.patch b/pkgs/development/perl-modules/perl-POE-1.367-pod_no404s.patch
deleted file mode 100644
index 097a7677e51..00000000000
--- a/pkgs/development/perl-modules/perl-POE-1.367-pod_no404s.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 32571a21
-Author: Michael Brantley <limeytexan@gmail.com>
-Date:   Tue Feb 20 07:07:22 2018 -0500
-
-    Update old URLs referenced in Pod
-    
-    Remove mention of old URLs, replace mention of canonical SVN repo with
-    the new git-based one at github.com.
-    
-    Resolves bug: https://rt.cpan.org/Public/Bug/Display.html?id=124495
-
-diff --git a/lib/POE.pm b/lib/POE.pm
-index 80e7feac..0554ff70 100644
---- a/lib/POE.pm
-+++ b/lib/POE.pm
-@@ -465,7 +465,7 @@ code snippets there as well.
- The following command will fetch the most current version of POE into
- the "poe" subdirectory:
- 
--  svn co https://poe.svn.sourceforge.net/svnroot/poe poe
-+  git clone https://github.com/rcaputo/poe.git
- 
- =head2 SourceForge
- 
-@@ -535,18 +535,9 @@ https://rt.cpan.org/Dist/Display.html?Status=Active&Queue=POE
- 
- =head2 Repositories and Changes
- 
--Thanks to the magic of distributed version control, POE is hosted at
--three locations for redundancy.  You can browse the source at any one
--of:
--
--https://github.com/rcaputo/poe
--
--https://gitorious.org/poe
--
--http://poe.git.sourceforge.net/git/gitweb-index.cgi
--
--Complete change logs can also be browsed at those sites.  They all
--provide RSS news feeds for those who want to follow development in
-+You can browse the POE source and complete change logs at
-+https://github.com/rcaputo/poe. It also provides an RSS
-+news feed for those who want to follow development in
- near-realtime.
- 
- =head2 Other Resources
diff --git a/pkgs/development/perl-modules/strip-nondeterminism/default.nix b/pkgs/development/perl-modules/strip-nondeterminism/default.nix
index 7ac0b82ed10..3557ed68cec 100644
--- a/pkgs/development/perl-modules/strip-nondeterminism/default.nix
+++ b/pkgs/development/perl-modules/strip-nondeterminism/default.nix
@@ -1,4 +1,4 @@
-{ lib, file, fetchFromGitLab, buildPerlPackage, ArchiveZip, ArchiveCpio }:
+{ stdenv, file, fetchFromGitLab, buildPerlPackage, ArchiveZip, ArchiveCpio, shortenPerlShebang }:
 
 buildPerlPackage rec {
   pname = "strip-nondeterminism";
@@ -17,6 +17,7 @@ buildPerlPackage rec {
   # stray test failure
   doCheck = false;
 
+  nativeBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ shortenPerlShebang ];
   buildInputs = [ ArchiveZip ArchiveCpio file ];
 
   perlPostHook = ''
@@ -25,7 +26,11 @@ buildPerlPackage rec {
     rm $out/share/man/man1/dh_strip_nondeterminism.1.gz
   '';
 
-  meta = with lib; {
+  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+    shortenPerlShebang $out/bin/strip-nondeterminism
+  '';
+
+  meta = with stdenv.lib; {
     description = "A Perl module for stripping bits of non-deterministic information";
     homepage = "https://reproducible-builds.org/";
     license = licenses.gpl3;
diff --git a/pkgs/development/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch b/pkgs/development/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch
index add6d9df3b7..f66ed0dfe01 100644
--- a/pkgs/development/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch
+++ b/pkgs/development/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch
@@ -16,28 +16,30 @@ diff --git a/Makefile.PL b/Makefile.PL
 index 505d1df..fc38b76 100644
 --- a/Makefile.PL
 +++ b/Makefile.PL
-@@ -29,12 +29,17 @@ foreach (@ARGV) {
+@@ -28,12 +28,18 @@ foreach (@ARGV) {
  @ARGV = @replacement_args;
  
  unless (
--    check_lib(    # fill in what you prompted the user for here
--        lib     => [qw(expat)],
--        header  => ['expat.h'],
--        incpath => $expat_incpath,
--        ( $expat_libpath ? ( libpath => $expat_libpath ) : () ),
--    )
-+    #check_lib(    # fill in what you prompted the user for here
-+    #    lib     => [qw(expat)],
-+    #    header  => ['expat.h'],
-+    #    incpath => $expat_incpath,
-+    #    ( $expat_libpath ? ( libpath => $expat_libpath ) : () ),
-+    #)
-+    # The check_lib implementation fails horribly with cross-compilation.
-+    # We are giving known good paths to expat.
-+    # And in all cases, the previous behaviour of not actually failing
-+    # seemed to work just fine :/.
-+    false
- ) {
+-  check_lib(     # fill in what you prompted the user for here
+-    lib => [qw(expat)],
+-    header => ['expat.h'],
+-    incpath => $expat_incpath,
+-    ($expat_libpath?
+-    (libpath => $expat_libpath):()),
+-  )) {
++  #check_lib(     # fill in what you prompted the user for here
++  #  lib => [qw(expat)],
++  #  header => ['expat.h'],
++  #  incpath => $expat_incpath,
++  #  ($expat_libpath?
++  #  (libpath => $expat_libpath):()),
++  #)
++  # The check_lib implementation fails horribly with cross-compilation.
++  # We are giving known good paths to expat.
++  # And in all cases, the previous behaviour of not actually failing
++  # seemed to work just fine :/.
++  false
++  ) {
      warn <<'Expat_Not_Installed;';
  
 -- 
diff --git a/pkgs/development/python-modules/Cython/default.nix b/pkgs/development/python-modules/Cython/default.nix
index 3d5afd52abd..84f54fd7af6 100644
--- a/pkgs/development/python-modules/Cython/default.nix
+++ b/pkgs/development/python-modules/Cython/default.nix
@@ -26,11 +26,11 @@ let
 
 in buildPythonPackage rec {
   pname = "Cython";
-  version = "0.29.19";
+  version = "0.29.21";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0n2j87nka8cs772qc60d0c7lrpvsw0y8p3qzvhrsi3nmq1yqmycp";
+    sha256 = "1bcwpra7c6k30yvic3sw2v3rq2dr40ypc4zqif6kr52mpn4wnyp5";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/Fabric/default.nix b/pkgs/development/python-modules/Fabric/default.nix
index c6fb898e070..1025ed6a05e 100644
--- a/pkgs/development/python-modules/Fabric/default.nix
+++ b/pkgs/development/python-modules/Fabric/default.nix
@@ -19,9 +19,13 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ invoke paramiko cryptography ];
   checkInputs = [ pytest mock pytest-relaxed ];
 
+  # requires pytest_relaxed, which doesnt have official support for pytest>=5
+  # https://github.com/bitprophet/pytest-relaxed/issues/12
+  doCheck = false;
   checkPhase = ''
     pytest tests
   '';
+  pythonImportsCheck = [ "fabric" ];
 
   meta = with lib; {
     description = "Pythonic remote execution";
diff --git a/pkgs/development/python-modules/GitPython/default.nix b/pkgs/development/python-modules/GitPython/default.nix
index 7b39ebb7a39..67ec5c2e4d1 100644
--- a/pkgs/development/python-modules/GitPython/default.nix
+++ b/pkgs/development/python-modules/GitPython/default.nix
@@ -1,13 +1,13 @@
 { lib, buildPythonPackage, fetchPypi, isPy27, substituteAll, git, gitdb, mock, nose, ddt }:
 
 buildPythonPackage rec {
-  version = "3.1.3";
+  version = "3.1.7";
   pname = "GitPython";
   disabled = isPy27; # no longer supported
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e107af4d873daed64648b4f4beb89f89f0cfbe3ef558fc7821ed2331c2f8da1a";
+    sha256 = "2db287d71a284e22e5c2846042d0602465c7434d910406990d5b74df4afb0858";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/HAP-python/default.nix b/pkgs/development/python-modules/HAP-python/default.nix
index 4986c99c5a6..7d273345b58 100644
--- a/pkgs/development/python-modules/HAP-python/default.nix
+++ b/pkgs/development/python-modules/HAP-python/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "HAP-python";
-  version = "2.8.1";
+  version = "2.9.2";
 
   # pypi package does not include tests
   src = fetchFromGitHub {
     owner = "ikalchev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "182s3dk7y29wql9bazlnw840xqgsbr44ad72m668qgxd82jl6y9c";
+    sha256 = "1d2ji2psla7jq3f9grb0l665nf8qsy2rlbkr2qg1d1a7mvf80x7k";
   };
 
   disabled = !isPy3k;
@@ -34,6 +34,7 @@ buildPythonPackage rec {
     and not test_send_events \
     and not test_not_standalone_aid \
     and not test_start_stop_async_acc \
+    and not test_external_zeroconf \
     and not test_start_stop_sync_acc'
   '';
 
diff --git a/pkgs/development/python-modules/JPype1/default.nix b/pkgs/development/python-modules/JPype1/default.nix
index ca30631a68e..68afbb525c9 100644
--- a/pkgs/development/python-modules/JPype1/default.nix
+++ b/pkgs/development/python-modules/JPype1/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "JPype1";
-  version = "0.7.5";
+  version = "1.0.2";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7bbd25453dc04704d77d854c80acb5537ecb18b9de8a5572e5f22649a2160aaf";
+    sha256 = "c751436350c105f403e382574d34a6ad73e4a677cb0ff5bc9a87581cc07094e1";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/JayDeBeApi/default.nix b/pkgs/development/python-modules/JayDeBeApi/default.nix
index 55b05d431e8..0263b4b752d 100644
--- a/pkgs/development/python-modules/JayDeBeApi/default.nix
+++ b/pkgs/development/python-modules/JayDeBeApi/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "JayDeBeApi";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e9847e437ad293ee3cc47767b74c387068cd21607842de8470d5d3f13d613083";
+    sha256 = "f25e9307fbb5960cb035394c26e37731b64cc465b197c4344cee85ec450ab92f";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/Nikola/default.nix b/pkgs/development/python-modules/Nikola/default.nix
index 31915383275..06a85a22033 100644
--- a/pkgs/development/python-modules/Nikola/default.nix
+++ b/pkgs/development/python-modules/Nikola/default.nix
@@ -35,7 +35,7 @@
 
 buildPythonPackage rec {
   pname = "Nikola";
-  version = "8.0.4";
+  version = "8.1.1";
 
   # 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 +54,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2e5c8305ec4423b56af2223336c3309e5c9b8c96df0d6fde46d26cff4c5d6f1a";
+    sha256 = "cee35b011667a965eca01b7d36b54649c9434ab004d8556d6563b7d899df61ed";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/PyRMVtransport/default.nix b/pkgs/development/python-modules/PyRMVtransport/default.nix
new file mode 100644
index 00000000000..1624a5fda2a
--- /dev/null
+++ b/pkgs/development/python-modules/PyRMVtransport/default.nix
@@ -0,0 +1,48 @@
+{ lib, buildPythonPackage, fetchFromGitHub
+, flit
+, lxml, aiohttp
+, pytest, pytestcov, pytest-asyncio, pytest-mock, pytest-aiohttp, aresponses
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "PyRMVtransport";
+  version = "0.2.9";
+  format = "pyproject";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "cgtobi";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1h3d0yxzrfi47zil5gr086v0780q768z8v5psvcikqw852f93vxb";
+  };
+
+  nativeBuildInputs = [
+    flit
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    lxml
+  ];
+
+  checkInputs = [
+    pytest
+    pytestcov
+    pytest-asyncio
+    pytest-mock
+    pytest-aiohttp
+    aresponses
+  ];
+  checkPhase = ''
+    pytest --cov=RMVtransport tests
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/cgtobi/PyRMVtransport";
+    description = "Get transport information from opendata.rmv.de";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/Theano/default.nix b/pkgs/development/python-modules/Theano/default.nix
index 88aee76fe5b..cc2b681e415 100644
--- a/pkgs/development/python-modules/Theano/default.nix
+++ b/pkgs/development/python-modules/Theano/default.nix
@@ -47,13 +47,13 @@ let
 
 in buildPythonPackage rec {
   pname = "Theano";
-  version = "1.0.4";
+  version = "1.0.5";
 
   disabled = isPyPy || pythonOlder "2.6" || (isPy3k && pythonOlder "3.3");
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "35c9bbef56b61ffa299265a42a4e8f8cb5a07b2997dabaef0f8830b397086913";
+    sha256 = "129f43ww2a6badfdr6b88kzjzz2b0wk0dwkvwb55z6dsagfkk53f";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/Wand/default.nix b/pkgs/development/python-modules/Wand/default.nix
index e71d0724287..535a21e5452 100644
--- a/pkgs/development/python-modules/Wand/default.nix
+++ b/pkgs/development/python-modules/Wand/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "Wand";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1wg7dlz6mhjp7mkqm5f8a2ak87p1zn46b6i754ys8f29nnqq01yz";
+    sha256 = "0jm1jdrlmm0gkvaxhbwwqic48vfgv8d0j99y90calnjrid3hwi35";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/XlsxWriter/default.nix b/pkgs/development/python-modules/XlsxWriter/default.nix
index e2828b1860d..15bd1ee35fe 100644
--- a/pkgs/development/python-modules/XlsxWriter/default.nix
+++ b/pkgs/development/python-modules/XlsxWriter/default.nix
@@ -3,7 +3,7 @@
 buildPythonPackage rec {
 
   pname = "XlsxWriter";
-  version = "1.2.8";
+  version = "1.2.9";
 
   # PyPI release tarball doesn't contain tests so let's use GitHub. See:
   # https://github.com/jmcnamara/XlsxWriter/issues/327
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     owner = "jmcnamara";
     repo = pname;
     rev = "RELEASE_${version}";
-    sha256 = "18q5sxm9jw5sfavdjy5z0yamknwj5fl359jziqllkbj5k2i16lnr";
+    sha256 = "08pdca5ssi50bx2xz52gkmjix2ybv5i4bjw7yd6yfiph0y0qsbsb";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/aadict/default.nix b/pkgs/development/python-modules/aadict/default.nix
new file mode 100644
index 00000000000..2587260748f
--- /dev/null
+++ b/pkgs/development/python-modules/aadict/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+, nose
+, coverage
+}:
+
+buildPythonPackage rec {
+  pname = "aadict";
+  version = "0.2.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "013pn9ii6mkql6khgdvsd1gi7zmya418fhclm5fp7dfvann2hwx7";
+  };
+
+  propagatedBuildInputs = [ six ];
+  checkInputs = [ nose coverage ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/metagriffin/aadict";
+    description = "An auto-attribute dict (and a couple of other useful dict functions).";
+    maintainers = with maintainers; [ glittershark ];
+    license = licenses.gpl3;
+  };
+}
diff --git a/pkgs/development/python-modules/accupy/default.nix b/pkgs/development/python-modules/accupy/default.nix
index 66edb53655e..f8d56159cc5 100644
--- a/pkgs/development/python-modules/accupy/default.nix
+++ b/pkgs/development/python-modules/accupy/default.nix
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "accupy";
-  version = "0.3.1";
+  version = "0.3.2";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b568de740e1cd137a96af1801b4d3d5f795e0f97be25c29957f39f004fbcdf9a";
+    sha256 = "be5c8c9ef2f83c9eeddac85463879957c87a93b257a6202a76ad6b43080b32f9";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/aenum/default.nix b/pkgs/development/python-modules/aenum/default.nix
index f688c394853..6f40e03c359 100644
--- a/pkgs/development/python-modules/aenum/default.nix
+++ b/pkgs/development/python-modules/aenum/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "aenum";
-  version = "2.2.3";
+  version = "2.2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a4334cabf47c167d44ab5a6198837b80deec5d5bad1b5cf70c966c3a330260e8";
+    sha256 = "0r1812bjm72x73pl7y4yhffr4zbdjgxa08avsy4b3di0pqgqv0l1";
   };
 
   # For Python 3, locale has to be set to en_US.UTF-8 for
diff --git a/pkgs/development/python-modules/afdko/default.nix b/pkgs/development/python-modules/afdko/default.nix
new file mode 100644
index 00000000000..5d960b5e92e
--- /dev/null
+++ b/pkgs/development/python-modules/afdko/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, python
+, fonttools, defcon, lxml, fs, unicodedata2, zopfli, brotlipy, fontpens
+, brotli, fontmath, mutatormath, booleanoperations
+, ufoprocessor, ufonormalizer, psautohint
+, setuptools_scm
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "afdko";
+  version = "3.5.0";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0wid4l70bxm297xgayyrgw5glhp6n92gh4sz1nd4rncgf1ziz8ck";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [
+    booleanoperations
+    fonttools
+    lxml           # fonttools[lxml], defcon[lxml] extra
+    fs             # fonttools[ufo] extra
+    unicodedata2   # fonttools[unicode] extra
+    brotlipy       # fonttools[woff] extra
+    zopfli         # fonttools[woff] extra
+    fontpens
+    brotli
+    defcon
+    fontmath
+    mutatormath
+    ufoprocessor
+    ufonormalizer
+    psautohint
+  ];
+
+  # tests are broken on non x86_64
+  # https://github.com/adobe-type-tools/afdko/issues/1163
+  # https://github.com/adobe-type-tools/afdko/issues/1216
+  doCheck = stdenv.isx86_64;
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    PATH="$PATH:$out/bin" py.test
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Adobe Font Development Kit for OpenType";
+    homepage = "https://adobe-type-tools.github.io/afdko/";
+    license = licenses.asl20;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/agate-dbf/default.nix b/pkgs/development/python-modules/agate-dbf/default.nix
index bfb5300a82b..09556ea891b 100644
--- a/pkgs/development/python-modules/agate-dbf/default.nix
+++ b/pkgs/development/python-modules/agate-dbf/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
     pname = "agate-dbf";
-    version = "0.2.1";
+    version = "0.2.2";
 
     propagatedBuildInputs = [ agate dbf dbfread ];
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0brprva3vjypb5r9lk6zy10jazp681rxsqxzhz2lr869ir4krj80";
+      sha256 = "589682b78c5c03f2dc8511e6e3edb659fb7336cd118e248896bb0b44c2f1917b";
     };
 
     meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/agate-sql/default.nix b/pkgs/development/python-modules/agate-sql/default.nix
index a458f78f262..cd7a9cd526b 100644
--- a/pkgs/development/python-modules/agate-sql/default.nix
+++ b/pkgs/development/python-modules/agate-sql/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
     pname = "agate-sql";
-    version = "0.5.4";
+    version = "0.5.5";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "9277490ba8b8e7c747a9ae3671f52fe486784b48d4a14e78ca197fb0e36f281b";
+      sha256 = "50a39754babef6cd0d1b1e75763324a49593394fe46ab1ea9546791b5e6b69a7";
     };
 
     propagatedBuildInputs = [ agate sqlalchemy ];
diff --git a/pkgs/development/python-modules/aioconsole/default.nix b/pkgs/development/python-modules/aioconsole/default.nix
index 6e867d0b0f6..5ee7b329512 100644
--- a/pkgs/development/python-modules/aioconsole/default.nix
+++ b/pkgs/development/python-modules/aioconsole/default.nix
@@ -10,11 +10,11 @@
 # wrapped to be able to find aioconsole and any other packages.
 buildPythonPackage rec {
   pname = "aioconsole";
-  version = "0.1.16";
+  version = "0.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0yk4ghvg47drfvdrrcw7nk14pg4shccmyhln9d8hy1lyafcqmnd5";
+    sha256 = "1l61zv6qq94ybqz7s8ag3h08dsh7jds6n2mgd43s7m8gbiy00ggn";
   };
 
   # hardcodes a test dependency on an old version of pytest-asyncio
diff --git a/pkgs/development/python-modules/aioesphomeapi/default.nix b/pkgs/development/python-modules/aioesphomeapi/default.nix
index dee85117406..6a128eb5239 100644
--- a/pkgs/development/python-modules/aioesphomeapi/default.nix
+++ b/pkgs/development/python-modules/aioesphomeapi/default.nix
@@ -1,14 +1,16 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, attrs, protobuf, zeroconf }:
+{ lib, buildPythonPackage, fetchFromGitHub, isPy3k, attrs, protobuf, zeroconf }:
 
 buildPythonPackage rec {
   pname = "aioesphomeapi";
-  version = "2.6.1";
+  version = "2.6.3";
 
   disabled = !isPy3k;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "139d1d348fcfe2f34926a210a32dff069935d17167c4e1cb66e8b039cbb4d6c1";
+  src = fetchFromGitHub {
+    owner = "esphome";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1lbjxqdx63fc7qxx7xwq4b9dafmdafj7p1ggs48hyhbqfwkrv9p7";
   };
 
   propagatedBuildInputs = [ attrs protobuf zeroconf ];
@@ -16,14 +18,12 @@ buildPythonPackage rec {
   # no tests implemented
   doCheck = false;
 
+  pythonImportsCheck = [ "aioesphomeapi" ];
+
   meta = with lib; {
     description = "Python Client for ESPHome native API";
     homepage = "https://github.com/esphome/aioesphomeapi";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
-
-    # Home Assistant should pin protobuf to the correct version. Can be tested using
-    #     nix-build -E "with import ./. {}; home-assistant.override { extraPackages = ps: [ ps.aioesphomeapi ]; }"
-    broken = !lib.hasPrefix "3.6.1" protobuf.version;
   };
 }
diff --git a/pkgs/development/python-modules/aioftp/default.nix b/pkgs/development/python-modules/aioftp/default.nix
index c8b0e8c1147..181c0be3706 100644
--- a/pkgs/development/python-modules/aioftp/default.nix
+++ b/pkgs/development/python-modules/aioftp/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "aioftp";
-  version = "0.16.0";
+  version = "0.17.2";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "94648d17dd3ca44614b59e8f795991b447258d82aa1b4cfecc0aceccf01b7495";
+    sha256 = "8433ff21317e71ef1f4d8cb8f7fe58365c04b5174142d9643e22343cfb35da1b";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/aioharmony/default.nix b/pkgs/development/python-modules/aioharmony/default.nix
index 09b6919495d..0b6c68de8b4 100644
--- a/pkgs/development/python-modules/aioharmony/default.nix
+++ b/pkgs/development/python-modules/aioharmony/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "aioharmony";
-  version = "0.2.3";
+  version = "0.2.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "445323810978454ba3b32be53ba6b43cf9948586de3f9734b8743b55858b3cc7";
+    sha256 = "90f4d1220d44b48b21a57e0273aa3c4a51599d0097af88e8be26df151e599344";
   };
 
   disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/aiohttp-jinja2/default.nix b/pkgs/development/python-modules/aiohttp-jinja2/default.nix
index 24804464fae..84195d5545e 100644
--- a/pkgs/development/python-modules/aiohttp-jinja2/default.nix
+++ b/pkgs/development/python-modules/aiohttp-jinja2/default.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest pytest-aiohttp ];
 
   checkPhase = ''
-    py.test
+    pytest -W ignore::DeprecationWarning
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/aiohttp/default.nix b/pkgs/development/python-modules/aiohttp/default.nix
index 9dcd34c1d1b..2e5191909bb 100644
--- a/pkgs/development/python-modules/aiohttp/default.nix
+++ b/pkgs/development/python-modules/aiohttp/default.nix
@@ -54,6 +54,8 @@ buildPythonPackage rec {
     "proxy_https_bad_response"
     "partially_applied_handler"
     "middleware"
+    # no longer compatible with pytest>=6
+    "aiohttp_plugin_async_fixture"
   ] ++ lib.optionals stdenv.is32bit [
     "test_cookiejar"
   ] ++ lib.optionals isPy38 [
diff --git a/pkgs/development/python-modules/aiohue/default.nix b/pkgs/development/python-modules/aiohue/default.nix
index 68354cee0b2..b495bf4df46 100644
--- a/pkgs/development/python-modules/aiohue/default.nix
+++ b/pkgs/development/python-modules/aiohue/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "aiohue";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bdd08ad65505057b9dc8fc1b5558250bd13aeba681a493080f710ffffc4260a3";
+    sha256 = "35696d04d6eb0328b7031ea3c0a3cfe5d83dfcf62f920522e4767d165c6bc529";
   };
 
   propagatedBuildInputs = [ aiohttp ];
diff --git a/pkgs/development/python-modules/aiojobs/default.nix b/pkgs/development/python-modules/aiojobs/default.nix
new file mode 100644
index 00000000000..68c34df1afb
--- /dev/null
+++ b/pkgs/development/python-modules/aiojobs/default.nix
@@ -0,0 +1,45 @@
+{ buildPythonPackage
+, fetchPypi
+, isPy27
+, aiohttp
+, pytest
+, pytest-aiohttp
+, pygments
+, lib
+}:
+
+buildPythonPackage rec {
+  pname = "aiojobs";
+  version = "0.2.2";
+  format = "flit";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01a0msjh4w58fd7jplmblh0hwgpzwjs5xkgqz3d0p5yv3cykwjwf";
+  };
+
+  nativeBuildInputs = [
+    pygments
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  checkInputs = [
+    pytest
+    pytest-aiohttp
+  ];
+
+  checkPhase = ''
+    pytest tests
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/aio-libs/aiojobs";
+    description = "Jobs scheduler for managing background task (asyncio)";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cmcdragonkai ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiorun/default.nix b/pkgs/development/python-modules/aiorun/default.nix
index 8eda59a9abf..a0a3d74e578 100644
--- a/pkgs/development/python-modules/aiorun/default.nix
+++ b/pkgs/development/python-modules/aiorun/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , isPy27
+, pygments
 , pytest
 , pytestcov
 , uvloop
@@ -9,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "aiorun";
-  version = "2020.2.1";
+  version = "2020.6.1";
   format = "flit";
 
   disabled = isPy27;
@@ -18,9 +19,13 @@ buildPythonPackage rec {
     owner = "cjrh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wcj8prkijb889ic8n6varms7xkwy028hhw0imgkd1i0p64lm3m4";
+    sha256 = "00mq5ylhhdfdqrh7zdqabf3wy85jrkqvgfb1421ll46fsjim2d14";
   };
 
+  propagatedBuildInputs = [
+    pygments
+  ];
+
   checkInputs = [
     pytest
     pytestcov
diff --git a/pkgs/development/python-modules/aiounifi/default.nix b/pkgs/development/python-modules/aiounifi/default.nix
index 589ebc08ef4..3b05d2c3811 100644
--- a/pkgs/development/python-modules/aiounifi/default.nix
+++ b/pkgs/development/python-modules/aiounifi/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "aiounifi";
-  version = "22";
+  version = "23";
 
   disabled = ! isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ad2625c8a62e28781d50644f4a4df5a97a32174b965cd3b329820ae85e2dfcc3";
+    sha256 = "0628058b644776132f2f893f1a2201a0142a38b6acf089c6b11a63ad5a752ba7";
   };
 
   propagatedBuildInputs = [ aiohttp ];
diff --git a/pkgs/development/python-modules/alerta-server/default.nix b/pkgs/development/python-modules/alerta-server/default.nix
index f603de71855..571b1fea2e3 100644
--- a/pkgs/development/python-modules/alerta-server/default.nix
+++ b/pkgs/development/python-modules/alerta-server/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "alerta-server";
-  version = "7.5.5";
+  version = "8.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f6d80654f063af45167c6b4f5f25a9015e728f3f600c5565ddb85964b8c9874b";
+    sha256 = "894d240c51428225264867a80094b9743d71272635a18ddfefa5832b61fed2c6";
   };
 
   propagatedBuildInputs = [ python-dateutil requests pymongo raven bcrypt flask pyjwt flask-cors psycopg2 pytz flask-compress jinja2 pyyaml];
diff --git a/pkgs/development/python-modules/alerta/default.nix b/pkgs/development/python-modules/alerta/default.nix
index ae984bbd38b..a024592b4ed 100644
--- a/pkgs/development/python-modules/alerta/default.nix
+++ b/pkgs/development/python-modules/alerta/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "alerta";
-  version = "7.5.1";
+  version = "8.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e903d4b097d4650983faecedc4e2dffd27a962b671643098f8425f9a19884d0f";
+    sha256 = "49e0862c756d644e9349f5040dd59d135cd871ffeaea5fc288eb3a2e818cf61a";
   };
 
   propagatedBuildInputs = [ six click requests pytz tabulate ];
diff --git a/pkgs/development/python-modules/alot/default.nix b/pkgs/development/python-modules/alot/default.nix
index 04b2d898e66..c3b624a7bce 100644
--- a/pkgs/development/python-modules/alot/default.nix
+++ b/pkgs/development/python-modules/alot/default.nix
@@ -19,6 +19,10 @@ buildPythonPackage rec {
     sha256 = "0s94m17yph1gq9f2svipb3bbwbw1s4j3zf2xkg5h91006v8286r6";
   };
 
+  postPatch = ''
+    substituteInPlace alot/settings/manager.py --replace /usr/share "$out/share"
+  '';
+
   nativeBuildInputs = lib.optional withManpage sphinx;
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/amqp/default.nix b/pkgs/development/python-modules/amqp/default.nix
index 20dc0d39712..5fa41412a7c 100644
--- a/pkgs/development/python-modules/amqp/default.nix
+++ b/pkgs/development/python-modules/amqp/default.nix
@@ -1,19 +1,20 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, case, vine, pytest-sugar }:
+{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook, case, vine }:
 
 buildPythonPackage rec {
   pname = "amqp";
-  version = "2.6.0";
+  version = "2.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "24dbaff8ce4f30566bb88976b398e8c4e77637171af3af6f1b9650f48890e60b";
+    sha256 = "70cdb10628468ff14e57ec2f751c7aa9e48e7e3651cfd62d431213c0c4e58f21";
   };
 
-  checkInputs = [ pytest case pytest-sugar ];
   propagatedBuildInputs = [ vine ];
 
-  # Disable because pytest-sugar requires an old version of pytest
-  doCheck = false;
+  checkInputs = [ pytestCheckHook case ];
+  disabledTests = [
+    "test_rmq.py" # requires network access
+  ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/celery/py-amqp";
diff --git a/pkgs/development/python-modules/ansible/default.nix b/pkgs/development/python-modules/ansible/default.nix
index 03bb1fcc389..245375c26be 100644
--- a/pkgs/development/python-modules/ansible/default.nix
+++ b/pkgs/development/python-modules/ansible/default.nix
@@ -18,13 +18,13 @@
 
 buildPythonPackage rec {
   pname = "ansible";
-  version = "2.9.10";
+  version = "2.9.12";
 
   src = fetchFromGitHub {
     owner = "ansible";
     repo = "ansible";
     rev = "v${version}";
-    sha256 = "1979522k57gafvq9vx3lbc3zah7jq3kiy98ji9x5bmxyddmgr9ch";
+    sha256 = "0c794k0cyl54807sh9in0l942ah6g6wlz5kf3qvy5lhd581zlgyb";
   };
 
   prePatch = ''
diff --git a/pkgs/development/python-modules/ansiconv/default.nix b/pkgs/development/python-modules/ansiconv/default.nix
index 7ad683b8c36..d2de4837e07 100644
--- a/pkgs/development/python-modules/ansiconv/default.nix
+++ b/pkgs/development/python-modules/ansiconv/default.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     repo = pname;
     rev = "v${version}";
     sha256 = "0ljfpl8x069arzginvpi1v6hlaq4x2qpjqj01qds2ylz33scq8r4";
-  };  
+  };
 
   checkInputs = [ pytest ];
 
@@ -21,4 +21,3 @@ buildPythonPackage rec {
   };
 
 }
-
diff --git a/pkgs/development/python-modules/apispec/default.nix b/pkgs/development/python-modules/apispec/default.nix
index 7128f9a96d0..222f2efdd62 100644
--- a/pkgs/development/python-modules/apispec/default.nix
+++ b/pkgs/development/python-modules/apispec/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "apispec";
-  version = "3.3.0";
+  version = "3.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "419d0564b899e182c2af50483ea074db8cb05fee60838be58bb4542095d5c08d";
+    sha256 = "f5244ccca33f7a81309f6b3c9d458e33e869050c2d861b9f8cee24b3ad739d2b";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/apprise/default.nix b/pkgs/development/python-modules/apprise/default.nix
index d6da2610f8c..1c140266b9e 100644
--- a/pkgs/development/python-modules/apprise/default.nix
+++ b/pkgs/development/python-modules/apprise/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "apprise";
-  version = "0.8.5";
+  version = "0.8.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aacdd54640a9c66d1c84c8f4390f63feb5a7a8741867a6b451f82ff74c8c792c";
+    sha256 = "18a65c5917bf7f2d48bb557bf0879e49c5293b4c0e9809328387ae09338ae37b";
   };
 
   nativeBuildInputs = [ Babel ];
diff --git a/pkgs/development/python-modules/apsw/default.nix b/pkgs/development/python-modules/apsw/default.nix
index 48aa68f3054..1f314dc7408 100644
--- a/pkgs/development/python-modules/apsw/default.nix
+++ b/pkgs/development/python-modules/apsw/default.nix
@@ -3,7 +3,7 @@
 
 buildPythonPackage rec {
   pname = "apsw";
-  version = "3.32.2-r1";
+  version = "3.33.0-r1";
 
   disabled = isPyPy;
 
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     owner = "rogerbinns";
     repo = "apsw";
     rev = version;
-    sha256 = "0gwhcvklrgng8gg6in42h0aj2bsq522bhhs2pp3cqdrmypkjdm59";
+    sha256 = "05mxcw1382xx22285fnv92xblqby3adfrvvalaw4dc6rzsn6kcan";
   };
 
   buildInputs = [ sqlite ];
diff --git a/pkgs/development/python-modules/argcomplete/default.nix b/pkgs/development/python-modules/argcomplete/default.nix
index b34b878a839..bd57b7b28a3 100644
--- a/pkgs/development/python-modules/argcomplete/default.nix
+++ b/pkgs/development/python-modules/argcomplete/default.nix
@@ -7,11 +7,11 @@
 }:
 buildPythonPackage rec {
   pname = "argcomplete";
-  version = "1.11.1";
+  version = "1.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0h1przxffrhqvi46k40pzjsvdrq4zc3sl1pc96kkigqppq0vdrss";
+    sha256 = "0p19rkvh28klkkd1c6y78h6vb9b9cnlyr7qrshkxghfjkz85xgig";
   };
 
   doCheck = false; # meant to be ran with interactive interpreter
diff --git a/pkgs/development/python-modules/aria2p/default.nix b/pkgs/development/python-modules/aria2p/default.nix
index 51b523c010a..9126969c22d 100644
--- a/pkgs/development/python-modules/aria2p/default.nix
+++ b/pkgs/development/python-modules/aria2p/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     rev = "v${version}";
     sha256 = "1inak3y2win58zbzykfzy6xp00f276sqsz69h2nfsd93mpr74wf6";
   };
-  
+
   nativeBuildInputs = [ poetry ];
 
   preBuild = ''
diff --git a/pkgs/development/python-modules/arrow/default.nix b/pkgs/development/python-modules/arrow/default.nix
index 60a9572f1c8..bc3de37526a 100644
--- a/pkgs/development/python-modules/arrow/default.nix
+++ b/pkgs/development/python-modules/arrow/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "arrow";
-  version = "0.15.6";
+  version = "0.15.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "eb5d339f00072cc297d7de252a2e75f272085d1231a3723f1026d1fa91367118";
+    sha256 = "edc31dc051db12c95da9bac0271cd1027b8e36912daf6d4580af53b23e62721a";
   };
 
   propagatedBuildInputs = [ python-dateutil ]
diff --git a/pkgs/development/python-modules/asdf/default.nix b/pkgs/development/python-modules/asdf/default.nix
index f3c3615d926..474329ed0b7 100644
--- a/pkgs/development/python-modules/asdf/default.nix
+++ b/pkgs/development/python-modules/asdf/default.nix
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "asdf";
-  version = "2.6.0";
+  version = "2.7.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ym9mmxjpnnlinly1rxfqj9rlyl2fv7dxc81f30n1b8n9pwc6jb5";
+    sha256 = "4ba2e31cb24b974a10dfae3edee23db2e6bea2d00608604d062366aa3af6e81a";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/ase/default.nix b/pkgs/development/python-modules/ase/default.nix
index 870f0598e5e..fcbeb1f1f4d 100644
--- a/pkgs/development/python-modules/ase/default.nix
+++ b/pkgs/development/python-modules/ase/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "ase";
-  version = "3.19.1";
+  version = "3.20.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03xzpmpask2q2609kkq0hfgzsfvkyjpbjws7qx00nnfrbbnjk443";
+    sha256 = "72c81f21b6adb907595fce8d883c0231301cbd8e9f6e5ce8e98bab927054daca";
   };
 
   propagatedBuildInputs = [ numpy scipy matplotlib flask pillow psycopg2 ];
diff --git a/pkgs/development/python-modules/asgi-csrf/default.nix b/pkgs/development/python-modules/asgi-csrf/default.nix
new file mode 100644
index 00000000000..12c94aee157
--- /dev/null
+++ b/pkgs/development/python-modules/asgi-csrf/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildPythonPackage, isPy27, fetchFromGitHub, itsdangerous, python-multipart
+, pytest, starlette, httpx, pytest-asyncio }:
+
+buildPythonPackage rec {
+  version = "0.7";
+  pname = "asgi-csrf";
+  disabled = isPy27;
+
+  # PyPI tarball doesn't include tests directory
+  src = fetchFromGitHub {
+    owner = "simonw";
+    repo = pname;
+    rev = version;
+    sha256 = "1vf4lh007790836cp3hd6wf8wsgj045dcg0w1cm335p08zz6j4k7";
+  };
+
+  propagatedBuildInputs = [ itsdangerous python-multipart ];
+
+  checkInputs = [ pytest starlette httpx pytest-asyncio ];
+  checkPhase = ''
+    pytest test_asgi_csrf.py
+  '';
+  pythonImportsCheck = [ "asgi_csrf" ];
+
+  meta = with stdenv.lib; {
+    description = "ASGI middleware for protecting against CSRF attacks";
+    license = licenses.asl20;
+    homepage = "https://github.com/simonw/asgi-csrf";
+    maintainers = [ maintainers.ris ];
+  };
+}
diff --git a/pkgs/development/python-modules/asgiref/default.nix b/pkgs/development/python-modules/asgiref/default.nix
index 56c69bb97ed..3537736f77f 100644
--- a/pkgs/development/python-modules/asgiref/default.nix
+++ b/pkgs/development/python-modules/asgiref/default.nix
@@ -1,6 +1,6 @@
 { stdenv, buildPythonPackage, pythonOlder, fetchFromGitHub, async-timeout, pytest, pytest-asyncio }:
 buildPythonPackage rec {
-  version = "3.2.7";
+  version = "3.2.10";
   pname = "asgiref";
 
   disabled = pythonOlder "3.5";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     owner = "django";
     repo = pname;
     rev = version;
-    sha256 = "1qf29blzhh6sljaj1adc0p8cnyxh9ar6hky9ccdfbgmrk4rw5kwc";
+    sha256 = "1sj4yy2injaskwfi5pkb542jl8s6ljijnyra81gpw0pgd3d0bgxv";
   };
 
   propagatedBuildInputs = [ async-timeout ];
diff --git a/pkgs/development/python-modules/asn1crypto/default.nix b/pkgs/development/python-modules/asn1crypto/default.nix
index 156f77b4c97..989b974c64a 100644
--- a/pkgs/development/python-modules/asn1crypto/default.nix
+++ b/pkgs/development/python-modules/asn1crypto/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "asn1crypto";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0bf4xxaig0b9dv6njynaqk2j7vlpagh3y49s9qj95y0jvjw5q8as";
+    sha256 = "f4f6e119474e58e04a2b1af817eb585b4fd72bdd89b998624712b5c99be7641c";
   };
 
   # No tests included
diff --git a/pkgs/development/python-modules/astor/default.nix b/pkgs/development/python-modules/astor/default.nix
index 02610d042ce..0d7aa387712 100644
--- a/pkgs/development/python-modules/astor/default.nix
+++ b/pkgs/development/python-modules/astor/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, pytest, fetchpatch }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, pytestCheckHook, fetchpatch }:
 
 buildPythonPackage rec {
   pname = "astor";
@@ -10,15 +10,15 @@ buildPythonPackage rec {
   };
 
   # disable tests broken with python3.6: https://github.com/berkerpeksag/astor/issues/89
-  checkInputs = [ pytest ];
-  checkPhase = ''
-    py.test -k 'not check_expressions \
-                and not check_astunparse \
-                and not test_convert_stdlib \
-                and not test_codegen_as_submodule \
-                and not test_positional_only_arguments \
-                and not test_codegen_from_root'
-  '';
+  checkInputs = [ pytestCheckHook ];
+  disabledTests = [
+    "check_expressions"
+    "check_astunparse"
+    "convert_stdlib"
+    "codegen_as_submodule"
+    "positional_only_arguments"
+    "codegen_from_root"
+  ];
 
   meta = with lib; {
     description = "Library for reading, writing and rewriting python AST";
diff --git a/pkgs/development/python-modules/astroid/default.nix b/pkgs/development/python-modules/astroid/default.nix
index c11de9c9419..927e6a6d5a6 100644
--- a/pkgs/development/python-modules/astroid/default.nix
+++ b/pkgs/development/python-modules/astroid/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonPackage rec {
   pname = "astroid";
-  version = "2.4.1";
+  version = "2.4.2";
 
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4c17cea3e592c21b6e222f673868961bad77e1f985cb1694ed077475a89229c1";
+    sha256 = "2f4078c2a41bf377eea06d71c9d2ba4eb8f6b1af2135bec27bbbb7d8f12bb703";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/astroquery/default.nix b/pkgs/development/python-modules/astroquery/default.nix
index c6620de3d0c..e82dca3e955 100644
--- a/pkgs/development/python-modules/astroquery/default.nix
+++ b/pkgs/development/python-modules/astroquery/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "astroquery";
-  version = "0.4";
+  version = "0.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ddwnj9vpvxkrfb45c4pwv5f5za9kn2q0040dpw2ymj2bwlpl61h";
+    sha256 = "0xpqrl9h7sg55mql38xsfpbz9rxsm3mxfha1biqyly1gmxpmd47a";
   };
 
   disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/async-upnp-client/default.nix b/pkgs/development/python-modules/async-upnp-client/default.nix
new file mode 100644
index 00000000000..b1ed1c45f85
--- /dev/null
+++ b/pkgs/development/python-modules/async-upnp-client/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, voluptuous, aiohttp, async-timeout, python-didl-lite, defusedxml
+, pytest, pytest-asyncio }:
+
+buildPythonPackage rec {
+  pname = "async-upnp-client";
+  version = "0.14.14";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "StevenLooman";
+    repo = "async_upnp_client";
+    rev = version;
+    sha256 = "1ysj72l4z78h427ar95x7af0jw0xq1cbca0k8b34vqyyhgs8wc6y";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+    defusedxml
+    python-didl-lite
+    voluptuous
+  ];
+
+  checkInputs = [
+    pytest
+    pytest-asyncio
+  ];
+
+  meta = with lib; {
+    description = "Asyncio UPnP Client library for Python/asyncio.";
+    homepage = "https://github.com/StevenLooman/async_upnp_client";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/asyncpg/default.nix b/pkgs/development/python-modules/asyncpg/default.nix
index 439702e8027..826ee6103fc 100644
--- a/pkgs/development/python-modules/asyncpg/default.nix
+++ b/pkgs/development/python-modules/asyncpg/default.nix
@@ -3,12 +3,12 @@
 
 buildPythonPackage rec {
   pname = "asyncpg";
-  version = "0.20.1";
+  version = "0.21.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1c4mcjrdbvvq5crrfc3b9m221qb6pxp55yynijihgfnvvndz2jrr";
+    sha256 = "53cb2a0eb326f61e34ef4da2db01d87ce9c0ebe396f65a295829df334e31863f";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/asyncssh/default.nix b/pkgs/development/python-modules/asyncssh/default.nix
index ad7612259df..e85de90b1f6 100644
--- a/pkgs/development/python-modules/asyncssh/default.nix
+++ b/pkgs/development/python-modules/asyncssh/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "asyncssh";
-  version = "2.2.1";
+  version = "2.3.0";
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "baf9f1aa397a104a0c3923bae927796ca57063ce62330767131b418cd833338e";
+    sha256 = "44bda34c7123f00c3df95d24e2dc8d43c4d17b456fbb8c434ef4f4a7ebb5265e";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/asynctest/default.nix b/pkgs/development/python-modules/asynctest/default.nix
index d36328d7225..dda3d35f6ad 100644
--- a/pkgs/development/python-modules/asynctest/default.nix
+++ b/pkgs/development/python-modules/asynctest/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   '';
 
   # https://github.com/Martiusweb/asynctest/issues/132
-  doCheck = pythonOlder "3.8";
+  doCheck = pythonOlder "3.7";
 
   checkPhase = ''
     ${python.interpreter} -m unittest test
diff --git a/pkgs/development/python-modules/atlassian-python-api/default.nix b/pkgs/development/python-modules/atlassian-python-api/default.nix
index 5f124cc0943..077a8558964 100755
--- a/pkgs/development/python-modules/atlassian-python-api/default.nix
+++ b/pkgs/development/python-modules/atlassian-python-api/default.nix
@@ -16,17 +16,17 @@
 
 buildPythonPackage rec {
   pname = "atlassian-python-api";
-  version = "1.15.9";
-  
+  version = "1.16.1";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6a3125ee68ecf4d11947497c1f891b6436df9d8453f8865cabf595813504cc1";
+    sha256 = "b672131be7cc5e239c465909454542623c0aeb0a4d3b05e6a25ee9459959c11d";
   };
-  
+
   checkInputs = [ pytestrunner pytest ];
-  
+
   propagatedBuildInputs = [ oauthlib requests requests_oauthlib six ];
-  
+
   meta = with lib; {
     description = "Python Atlassian REST API Wrapper";
     homepage = "https://github.com/atlassian-api/atlassian-python-api";
@@ -34,4 +34,3 @@ buildPythonPackage rec {
     maintainers = [ maintainers.arnoldfarkas ];
   };
 }
-
diff --git a/pkgs/development/python-modules/atom/default.nix b/pkgs/development/python-modules/atom/default.nix
index 91c14756f48..60fa12d4a66 100644
--- a/pkgs/development/python-modules/atom/default.nix
+++ b/pkgs/development/python-modules/atom/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "atom";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ce0c600e4b26b7553c926b3b8253df7ae19bbf2678bdc2d46eb29b5f9149f172";
+    sha256 = "99b4c94b833aafffc0b34ab8f98b697f575be3230bff38ebf863d065403333e0";
   };
 
   buildInputs = [ cppy ];
diff --git a/pkgs/development/python-modules/atpublic/default.nix b/pkgs/development/python-modules/atpublic/default.nix
index e2c3e8af6b0..021d8e8b307 100644
--- a/pkgs/development/python-modules/atpublic/default.nix
+++ b/pkgs/development/python-modules/atpublic/default.nix
@@ -1,18 +1,26 @@
-{ lib, isPy3k, fetchPypi, buildPythonPackage
-, pytest }:
+{ lib, isPy3k, pythonOlder, fetchPypi, buildPythonPackage
+, pytest
+, pytestcov
+, sybil
+, typing-extensions
+}:
 
 buildPythonPackage rec {
   pname = "atpublic";
-  version = "1.0";
+  version = "2.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0i3sbxkdlbb4560rrlmwwd5y4ps7k73lp4d8wnmd7ag9k426gjkx";
+    sha256 = "ebeb62b71a5c683a84c1b16bbf415708af5a46841b142b85ac3a22ec2d7613b0";
   };
 
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
+    typing-extensions
+  ];
+
   checkInputs = [
-    pytest
+    pytest pytestcov sybil
   ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/audiotools/default.nix b/pkgs/development/python-modules/audiotools/default.nix
index ee029726d1c..1ad21608274 100644
--- a/pkgs/development/python-modules/audiotools/default.nix
+++ b/pkgs/development/python-modules/audiotools/default.nix
@@ -25,4 +25,4 @@ buildPythonPackage rec {
     homepage = "http://audiotools.sourceforge.net/";
     license = lib.licenses.gpl2Plus;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/auth0-python/default.nix b/pkgs/development/python-modules/auth0-python/default.nix
index fed673453d1..1b50e70aaee 100644
--- a/pkgs/development/python-modules/auth0-python/default.nix
+++ b/pkgs/development/python-modules/auth0-python/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "auth0-python";
-  version = "3.10.0";
+  version = "3.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e02525fd60d4b1e7e08bdc539b536db635da28ee25cc882412be4296802d0281";
+    sha256 = "fbc54a231ca787ae0917223028269582abbd963cfa9d53ba822a601dd9cd2215";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/autobahn/default.nix b/pkgs/development/python-modules/autobahn/default.nix
index 4ad97ebc93f..909fb65996b 100644
--- a/pkgs/development/python-modules/autobahn/default.nix
+++ b/pkgs/development/python-modules/autobahn/default.nix
@@ -4,11 +4,11 @@
 }:
 buildPythonPackage rec {
   pname = "autobahn";
-  version = "20.4.3";
+  version = "20.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6fe745d52ba9f9eecf791cd31f558df42aebfc4f9ee558a8f1d18c707e1ae1f";
+    sha256 = "86bbce30cdd407137c57670993a8f9bfdfe3f8e994b889181d85e844d5aa8dfb";
   };
 
   propagatedBuildInputs = [ six txaio twisted zope_interface cffi cryptography pynacl ] ++
diff --git a/pkgs/development/python-modules/autopep8/default.nix b/pkgs/development/python-modules/autopep8/default.nix
index 2dabb70197b..1b40aa9c140 100644
--- a/pkgs/development/python-modules/autopep8/default.nix
+++ b/pkgs/development/python-modules/autopep8/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "autopep8";
-  version = "1.5.3";
+  version = "1.5.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "60fd8c4341bab59963dafd5d2a566e94f547e660b9b396f772afe67d8481dbf0";
+    sha256 = "d21d3901cb0da6ebd1e83fc9b0dfbde8b46afc2ede4fe32fbda0c7c6118ca094";
   };
 
   propagatedBuildInputs = [ pycodestyle toml ];
diff --git a/pkgs/development/python-modules/avro-python3/default.nix b/pkgs/development/python-modules/avro-python3/default.nix
index 1ec3d296222..e6bd5acbbb8 100644
--- a/pkgs/development/python-modules/avro-python3/default.nix
+++ b/pkgs/development/python-modules/avro-python3/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "avro-python3";
-  version = "1.9.2.1";
+  version = "1.10.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ca1e77a3da5ac98e8833588f71fb2e170b38e34787ee0e04920de0e9470b7d32";
+    sha256 = "a455c215540b1fceb1823e2a918e94959b54cb363307c97869aa46b5b55bde05";
   };
 
   doCheck = false;        # No such file or directory: './run_tests.py
diff --git a/pkgs/development/python-modules/avro/default.nix b/pkgs/development/python-modules/avro/default.nix
index 58c3b46cdba..d9f57686845 100644
--- a/pkgs/development/python-modules/avro/default.nix
+++ b/pkgs/development/python-modules/avro/default.nix
@@ -1,20 +1,30 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, pycodestyle, isort }:
+{ stdenv, buildPythonPackage, isPy3k, fetchPypi, pycodestyle, isort }:
 
 buildPythonPackage rec {
   pname = "avro";
-  version = "1.9.2";
-  disabled = isPy3k;
+  version = "1.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4487f0e91d0d44142bd08b3c6da57073b720c3effb02eeb4e2e822804964c56b";
+    sha256 = "bbf9f89fd20b4cf3156f10ec9fbce83579ece3e0403546c305957f9dac0d2f03";
   };
 
+  patchPhase = ''
+    # this test requires network access
+    sed -i 's/test_server_with_path/noop/' avro/test/test_ipc.py
+  '' + (stdenv.lib.optionalString isPy3k ''
+    # these files require twisted, which is not python3 compatible
+    rm avro/txipc.py
+    rm avro/test/txsample*
+  '');
+
   nativeBuildInputs = [ pycodestyle ];
   propagatedBuildInputs = [ isort ];
 
   meta = with stdenv.lib; {
     description = "A serialization and RPC framework";
     homepage = "https://pypi.python.org/pypi/avro/";
+    license = licenses.asl20;
+    maintainers = [ maintainers.zimbatm ];
   };
 }
diff --git a/pkgs/development/python-modules/awkward/default.nix b/pkgs/development/python-modules/awkward/default.nix
index 10e8355297c..65dfd462857 100644
--- a/pkgs/development/python-modules/awkward/default.nix
+++ b/pkgs/development/python-modules/awkward/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "awkward";
-  version = "0.12.21";
+  version = "0.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1253f1d85bda79a45d209ea467e4ba6fcaa5354c317c194945dc354a259f5aa8";
+    sha256 = "1a461ee084ea5e98333dacf2506e9b2619ee89cece14b9b99830b546b35c5922";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/pkgs/development/python-modules/awkward1/default.nix b/pkgs/development/python-modules/awkward1/default.nix
index e3549e0a4a8..927d620948c 100644
--- a/pkgs/development/python-modules/awkward1/default.nix
+++ b/pkgs/development/python-modules/awkward1/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "awkward1";
-  version = "0.2.23";
+  version = "0.2.35";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d7458b499959af66e0a640e29e6b676a39cc9614cd504e5a2e8f8d0c7f546597";
+    sha256 = "563868f0f2d0cb398ce3616ee3f9734cc68cee9a612d35cab830ec5c728f1474";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/python-modules/aws-adfs/default.nix b/pkgs/development/python-modules/aws-adfs/default.nix
index 20ed59f9e5b..cb014896d29 100644
--- a/pkgs/development/python-modules/aws-adfs/default.nix
+++ b/pkgs/development/python-modules/aws-adfs/default.nix
@@ -4,12 +4,12 @@
 
 buildPythonPackage rec {
   pname = "aws-adfs";
-  version = "1.24.3";
+  version = "1.24.4";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0bcjlf5dkg2q0db0ra1ssa3hy98spflkd3ykhmlyv65rkgx8w1wv";
+    sha256 = "601b056fa8ba4b615289def3b1aa49aa58f1f4aa6b89f3cf7cf1e0aee9f2291c";
   };
 
   # Relax version constraint
diff --git a/pkgs/development/python-modules/aws-lambda-builders/default.nix b/pkgs/development/python-modules/aws-lambda-builders/default.nix
index 9979ccdd3c0..fdce47b2594 100644
--- a/pkgs/development/python-modules/aws-lambda-builders/default.nix
+++ b/pkgs/development/python-modules/aws-lambda-builders/default.nix
@@ -2,22 +2,24 @@
 , buildPythonPackage
 , fetchFromGitHub
 , six
+, pathlib
 , pytest
 , mock
 , parameterized
+, isPy27
 , isPy35
 }:
 
 buildPythonPackage rec {
   pname = "aws-lambda-builders";
-  version = "0.8.0";
+  version = "0.9.0";
 
   # No tests available in PyPI tarball
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-lambda-builders";
     rev = "v${version}";
-    sha256 = "1akiv92cd7ciky0aay94lh9azr73jajn0x0x6ywaf3qm5c4hyvys";
+    sha256 = "0cgb0hwf4xg5dmm32wwlxqy7a77jw6gpnj7v8rq5948hsy2sfrcp";
   };
 
   # Package is not compatible with Python 3.5
@@ -25,7 +27,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     six
-  ];
+  ] ++ lib.optionals isPy27 [ pathlib ];
 
   checkInputs = [
     pytest
diff --git a/pkgs/development/python-modules/aws-sam-translator/default.nix b/pkgs/development/python-modules/aws-sam-translator/default.nix
index a9b8834be26..5245801bb09 100644
--- a/pkgs/development/python-modules/aws-sam-translator/default.nix
+++ b/pkgs/development/python-modules/aws-sam-translator/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "aws-sam-translator";
-  version = "1.24.0";
+  version = "1.26.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f6b67545a87ec1e276bd5bf06abcc84332c4eb9dfa2fd415113e07a908fe55bb";
+    sha256 = "1a3fd8e48a745967e8457b9cefdc3ad0f139ac4a25af4db9c13a9e1c19ea6910";
   };
 
   # Tests are not included in the PyPI package
diff --git a/pkgs/development/python-modules/aws-xray-sdk/default.nix b/pkgs/development/python-modules/aws-xray-sdk/default.nix
index 607118564c5..313dd4241d5 100644
--- a/pkgs/development/python-modules/aws-xray-sdk/default.nix
+++ b/pkgs/development/python-modules/aws-xray-sdk/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "aws-xray-sdk";
-  version = "2.5.0";
+  version = "2.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8dfa785305fc8dc720d8d4c2ec6a58e85e467ddc3a53b1506a2ed8b5801c8fc7";
+    sha256 = "abf5b90f740e1f402e23414c9670e59cb9772e235e271fef2bce62b9100cbc77";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-core/default.nix b/pkgs/development/python-modules/azure-core/default.nix
index 8e4fa9666e4..35640989b2f 100644
--- a/pkgs/development/python-modules/azure-core/default.nix
+++ b/pkgs/development/python-modules/azure-core/default.nix
@@ -4,6 +4,8 @@
 , mock
 , msrest
 , pytest
+, pytest-asyncio
+, pytest-trio
 , pytestCheckHook
 , requests
 , six
@@ -12,14 +14,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.6.0";
+  version = "1.8.0";
   pname = "azure-core";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "d10b74e783cff90d56360e61162afdd22276d62dc9467e657ae866449eae7648";
+    sha256 = "c89bbdcdc13ad45fe57d775ed87b15baf6d0b039a1ecd0a1bc91d2f713cb1f08";
   };
 
   propagatedBuildInputs = [
@@ -33,13 +35,16 @@ buildPythonPackage rec {
     mock
     msrest
     pytest
+    pytest-trio
+    pytest-asyncio
     pytestCheckHook
     trio
     typing-extensions
   ];
 
   pytestFlagsArray = [ "tests/" ];
-  disabledTests = [ "response" "request" "timeout" ];
+  # disable tests which touch network
+  disabledTests = [ "aiohttp" "multipart_send" "response" "request" "timeout" ];
 
   meta = with lib; {
     description = "Microsoft Azure Core Library for Python";
diff --git a/pkgs/development/python-modules/azure-datalake-store/default.nix b/pkgs/development/python-modules/azure-datalake-store/default.nix
index 5c45b843c76..e5a38cdaa44 100644
--- a/pkgs/development/python-modules/azure-datalake-store/default.nix
+++ b/pkgs/development/python-modules/azure-datalake-store/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "azure-datalake-store";
-  version = "0.0.48";
+  version = "0.0.49";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d27c335783d4add00b3a5f709341e4a8009857440209e15a739a9a96b52386f7";
+    sha256 = "3fcede6255cc9cd083d498c3a399b422f35f804c561bb369a7150ff1f2f07da9";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-identity/default.nix b/pkgs/development/python-modules/azure-identity/default.nix
index d1baeb38032..f607ab7a094 100644
--- a/pkgs/development/python-modules/azure-identity/default.nix
+++ b/pkgs/development/python-modules/azure-identity/default.nix
@@ -17,13 +17,13 @@
 
 buildPythonPackage rec {
   pname = "azure-identity";
-  version = "1.3.1";
+  version = "1.4.0";
   disabled = isPy38;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "5a59c36b4b05bdaec455c390feda71b6495fc828246593404351b9a41c2e877a";
+    sha256 = "820e1f3e21f90d36063239c6cb7ca9a6bb644cb120a6b1ead3081cafdf6ceaf8";
   };
 
   propagatedBuildInputs = [
@@ -38,6 +38,13 @@ buildPythonPackage rec {
     msrestazure
   ];
 
+  prePatch = ''
+    substituteInPlace setup.py \
+      --replace msal-extensions~=0.1.3 msal-extensions
+  '';
+
+  pythonImportsCheck = [ "azure.identity" ];
+
   # Requires checkout from mono-repo and a mock account:
   #   https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/identity/tests.yml
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-keyvault-certificates/default.nix b/pkgs/development/python-modules/azure-keyvault-certificates/default.nix
index 1e4b8f09c55..06752a4f8fc 100644
--- a/pkgs/development/python-modules/azure-keyvault-certificates/default.nix
+++ b/pkgs/development/python-modules/azure-keyvault-certificates/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , python
 , isPy3k
+, azure-common
 , azure-core
 , msrest
 , msrestazure
@@ -10,15 +11,16 @@
 
 buildPythonPackage rec {
   pname = "azure-keyvault-certificates";
-  version = "4.1.0";
+  version = "4.2.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "069l6m80rq4smyqbrmjb2w18wxxg49xi2yrf1wsxpq8r0r45cksl";
+    sha256 = "5e33881f3a9b3080c815fe6a7200c0c8670ec506eff45955432ddb84f3076902";
   };
 
   propagatedBuildInputs = [
+    azure-common
     azure-core
     msrest
     msrestazure
diff --git a/pkgs/development/python-modules/azure-keyvault-keys/default.nix b/pkgs/development/python-modules/azure-keyvault-keys/default.nix
index 7e03e7faa8e..25ce0fd67db 100644
--- a/pkgs/development/python-modules/azure-keyvault-keys/default.nix
+++ b/pkgs/development/python-modules/azure-keyvault-keys/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "azure-keyvault-keys";
-  version = "4.1.0";
+  version = "4.2.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "f9967b4deb48e619f6c40558f69e48978779cc09c8a7fad33d536cfc41cd68f9";
+    sha256 = "e47b76ca5d99b12436c64ce4431271cd6744fba017f282991b84ce303e0b9eaa";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-keyvault-secrets/default.nix b/pkgs/development/python-modules/azure-keyvault-secrets/default.nix
index 25d58513d31..704d2951cc9 100644
--- a/pkgs/development/python-modules/azure-keyvault-secrets/default.nix
+++ b/pkgs/development/python-modules/azure-keyvault-secrets/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "azure-keyvault-secrets";
-  version = "4.1.0";
+  version = "4.2.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "4f3bfac60e025e01dd1c1998b73649d45d706975356c0cf147174cf5a6ddf8be";
+    sha256 = "1083ab900da5ec63c518ffef49d9fdca02c81ddffdf80c52c03cd9da479e021f";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix b/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix
index 75c912dfe40..3c019cdf31e 100644
--- a/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.4.0";
+  version = "0.6.0";
   pname = "azure-mgmt-appconfiguration";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1dn5585nsizszjivx6lp677ka0mrg0ayqgag4yzfdz9ml8mj1xl5";
+    sha256 = "fe6e216ce7293219b7d8d1cbcca7cf2f4511f134c2bf0b3455078bf086436c5f";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-mgmt-authorization/default.nix b/pkgs/development/python-modules/azure-mgmt-authorization/default.nix
index 994886afc70..3a9d2e5de2e 100644
--- a/pkgs/development/python-modules/azure-mgmt-authorization/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-authorization/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-authorization";
-  version = "0.60.0";
+  version = "0.61.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "19yn2ar2y8j4idzf8mxrxplxnawbk83sid3pzvzddif29aipbs1i";
+    sha256 = "f5cceea3add04e9445ea88492f15eecf6c126f0406d967c95f6e48b79be8db75";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-cdn/default.nix b/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
index da6d1639a13..d6aa79c6915 100644
--- a/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cdn";
-  version = "4.0.0";
+  version = "5.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "a53e9e09e2711ce9109329538fe9a8a1a5d0809efb231d7df481e55d09c4f02a";
+    sha256 = "5af79f80e6c5f4766bcb5b8c62273445fb2beaeae85c5b9d2ab9aa369d60ede3";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-compute/default.nix b/pkgs/development/python-modules/azure-mgmt-compute/default.nix
index e78d93fb7bc..5d80bace33f 100644
--- a/pkgs/development/python-modules/azure-mgmt-compute/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-compute/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "12.0.0";
+  version = "13.0.0";
   pname = "azure-mgmt-compute";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0vzq93g2fpnij4rykkk3391xq2knhlbz87vhim4zvj8s45sx6z8q";
+    sha256 = "7f331bafcbedf25d65aa42038f7553747dab18d7f10a5af3297192d31c45339e";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix b/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
index 5bf67fc6787..2dfff00dfa6 100644
--- a/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerinstance";
-  version = "1.5.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1kd8lxm5kzk0wxbw1f3vin10hlhb4sygrxqd5c8k715s0ipkhmdh";
+    sha256 = "5ad247d186c3c040da7a1d40ad39c9881e99afc58271f673abb602abb0b6b85b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
index d77d28479a1..603bd81ad1c 100644
--- a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerservice";
-  version = "9.0.1";
+  version = "9.3.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "7e4459679bdba4aa67a4b5848e63d94e965a304a7418ef7607eb7a9ce295d886";
+    sha256 = "04ca071d1d6af854b6a5947c5aed803924ccbd2ea0d240285b6fa68dc4ab75a9";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-core/default.nix b/pkgs/development/python-modules/azure-mgmt-core/default.nix
index b2737826ae3..17e7796b98e 100644
--- a/pkgs/development/python-modules/azure-mgmt-core/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-core/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.1.0";
+  version = "1.2.0";
   pname = "azure-mgmt-core";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "049dfb0bcc7961d0d988fee493d1ec4f4480e109e4661e360bad054cc297d43c";
+    sha256 = "8fe3b59446438f27e34f7b24ea692a982034d9e734617ca1320eedeee1939998";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix b/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
index 61bc17df014..38b580df252 100644
--- a/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cosmosdb";
-  version = "0.14.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "692544dd2fa6276a7a4b4e094e2a5e0915d29b7829e266c6ade2b17a5fdcc2a9";
+    sha256 = "e08b37aea8e6b62596f55f9beb924e1759b2dc424c180ab2e752153a2b01b723";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix b/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
index e7da7541dd9..9e6fb57ba26 100644
--- a/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-datafactory";
-  version = "0.10.0";
+  version = "0.12.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "48b1ec81f30f4b5f38dd17f68f0dfc968db96e0a04fdcfc99f43f80ca041f14b";
+    sha256 = "cee5168c8b89cbc673744323cf98f7f22d710914c79d103f84f8f24b780e8214";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix b/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
index 1057322a8e6..78e30841c14 100644
--- a/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-eventhub";
-  version = "3.1.0";
+  version = "4.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "c823a0ed879230a3ec9f15c32c9788610af1db56e6aeae6b2725476ddbe0d138";
+    sha256 = "1qisnwn0gqfsa3h5x0fdbsgdjwn92hdbg71gdijrja0kryb328k5";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix b/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
index 8ca128dad87..b6f0dadf225 100644
--- a/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.5.0";
+  version = "1.7.0";
   pname = "azure-mgmt-hdinsight";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d13088bb506700a7aecf59faf042cb48dc82c423082482b2f50cc2403ac43e55";
+    sha256 = "9d1120bd9760687d87594ec5ce9257b7335504afbe55b3cda79462c1e07a095b";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix b/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix
index 5ba25e11a89..963d794d550 100644
--- a/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-iotcentral";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "f6dacf442ccae2f18f1082e80bcbdcaa8c0efa2ba92b48c5db6ee01d37240047";
+    sha256 = "c175f6642be514ad0efd3dc03d09e50d923596fd9e634381793dcc46bb8a57c7";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix b/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
index fd6cd26c7c6..a4b1679b250 100644
--- a/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
@@ -7,6 +7,7 @@
 , msrestazure
 , azure-common
 , azure-mgmt-nspkg
+, azure-mgmt-core
 }:
 
 buildPythonPackage rec {
@@ -23,6 +24,7 @@ buildPythonPackage rec {
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
     azure-mgmt-nspkg
   ];
 
diff --git a/pkgs/development/python-modules/azure-mgmt-kusto/default.nix b/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
index edcfde1d1ab..0cb180064ee 100644
--- a/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.8.0";
+  version = "0.9.0";
   pname = "azure-mgmt-kusto";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b12388df60982265c9f18e7382c5cc0e389c071227865cadc626b9ff9c6e3871";
+    sha256 = "9210db89fa18ee8ed53339cd63bbe6fe1d9624cd793b54b7451ddbda8ae92ef3";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix b/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
index 69c1aaffada..247e1ef3fed 100644
--- a/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-loganalytics";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "a1527fe8b1e8a47558bfa03bd6c587706d8fb9213142aea42da07397daa2d039";
+    sha256 = "18n2lqvrhq40gdqhlzzg8mc03571i02c7qq7jv771lc58rqpzysh";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-media/default.nix b/pkgs/development/python-modules/azure-mgmt-media/default.nix
index f3dfaba6d9c..018d7140a3d 100644
--- a/pkgs/development/python-modules/azure-mgmt-media/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-media/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-media";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1py0hch0wghzfxazdrrs7p0kln2zn9jh3fmkzwd2z8qggj38q6gm";
+    sha256 = "0adeee9e654a9011f5107def06fea6838864a3514a1e5a9ed495f3a56a687cc7";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-monitor/default.nix b/pkgs/development/python-modules/azure-mgmt-monitor/default.nix
index 36124ff6baa..038ed52d768 100644
--- a/pkgs/development/python-modules/azure-mgmt-monitor/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-monitor/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-monitor";
-  version = "0.9.0";
+  version = "0.11.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "170jyr1qzwhv5ihyrsg5d8qzjylqmg31dscd31jzi4i7bwqf3sb8";
+    sha256 = "c6e1fe83dd2ddffa7f6d90c7aa63b3128042396a3893c14dc4816ad28cb15016";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-netapp/default.nix b/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
index 42ebac80e67..03388c42767 100644
--- a/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.10.0";
+  version = "0.12.0";
   pname = "azure-mgmt-netapp";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "380b2153c52a861ae9069fcd601cbaeb9a6f91c49cba823443a9b5fe461c3998";
+    sha256 = "7d773119bc02e3d6f9d7cffb7effc17e85676d5c5b1f656d05abc4489e472c76";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-mgmt-network/default.nix b/pkgs/development/python-modules/azure-mgmt-network/default.nix
index 24f7165281d..a140c779fff 100644
--- a/pkgs/development/python-modules/azure-mgmt-network/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-network/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "10.2.0";
+  version = "11.0.0";
   pname = "azure-mgmt-network";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "d50c74cdc1c9be6861ddef9adffd3b05afc5a5092baf0209eea30f4439cba2d9";
+    sha256 = "7fdfc631c660cb173eee88abbb7b8be7742f91b522be6017867f217409cd69bc";
   };
 
   postInstall = if isPy3k then "" else ''
diff --git a/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix b/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
index ece93025b57..75781dab8ed 100644
--- a/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-recoveryservicesbackup";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "6355d9234d87422d57bf2ea8d1cc242463c203e4bb79b8930f22f29f4e025fa1";
+    sha256 = "a0ee89691b21945cc4b892a9194320f50c1cd242d98f00a82d7e3848c28517a5";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-reservations/default.nix b/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
index 3873f08e3ce..d5e4226b5cc 100644
--- a/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-reservations";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "f65c1985a47e0ac55e7d5d9cc1bd5e95335a111566edc289d460aa2bc8f80991";
+    sha256 = "b12318392e6f5100246c60de88879e24b15db104d00f9704a4ff51e7344594f1";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-resource/default.nix b/pkgs/development/python-modules/azure-mgmt-resource/default.nix
index 45fabcb88af..07427ff1ff1 100644
--- a/pkgs/development/python-modules/azure-mgmt-resource/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-resource/default.nix
@@ -8,13 +8,13 @@
 
 
 buildPythonPackage rec {
-  version = "10.0.0";
+  version = "10.2.0";
   pname = "azure-mgmt-resource";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "bd9a3938f5423741329436d2da09693845c2fad96c35fadbd7c5ae5213208345";
+    sha256 = "ddfe4c0c55f0e3fd1f66dd82c1d4a3d872ce124639b9a77fcd172daf464438a5";
   };
 
   postInstall = if isPy3k then "" else ''
diff --git a/pkgs/development/python-modules/azure-mgmt-security/default.nix b/pkgs/development/python-modules/azure-mgmt-security/default.nix
index ae50ee6d3eb..90a64ff098a 100644
--- a/pkgs/development/python-modules/azure-mgmt-security/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-security/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.4.0";
+  version = "0.4.1";
   pname = "azure-mgmt-security";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1gpkvvk4prx6khs6vrlbqlg6zarsmplg3k9zbymxfm6irriqildm";
+    sha256 = "08gf401d40bd1kn9wmpxcjxqdh84cd9hxm8rdjd0918483sqs71r";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix b/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
index 47df7f05ceb..60ffeae2b51 100644
--- a/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-servicefabric";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1x18grkjf2p2r1ihlwv607sna9yjvsr2jwnkjc55askrgrwx5jx2";
+    sha256 = "5771f24516c8d4a27f5569f23f3a606f6f106e4ad502eec7f38aedfcd3eadc74";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-sql/default.nix b/pkgs/development/python-modules/azure-mgmt-sql/default.nix
index 1b6649a36f2..16b37320ff5 100644
--- a/pkgs/development/python-modules/azure-mgmt-sql/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-sql/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-sql";
-  version = "0.18.0";
+  version = "0.20.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "99ca085eb523a5c27933060ccb04d7a6b60864f98d87bf5b63ac17d419b43445";
+    sha256 = "29dde5bb3234be6e4b2bc93ad1d37dc94b3d0536bbb21759e9b24250d2dfdab2";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-storage/default.nix b/pkgs/development/python-modules/azure-mgmt-storage/default.nix
index e3ac0961542..b6cd9ca5c8a 100644
--- a/pkgs/development/python-modules/azure-mgmt-storage/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-storage/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "10.0.0";
+  version = "11.2.0";
   pname = "azure-mgmt-storage";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "d1edead1ad36e957c9f9b605f547ad1ff7152f8f785fa03d3c7891bb428a68ef";
+    sha256 = "fc8e3cbf3c58cab98d9b2218c774dae2cc90b693f5ab5a24a7a959febe6c0528";
   };
 
   propagatedBuildInputs = [ azure-mgmt-common ];
diff --git a/pkgs/development/python-modules/azure-mgmt-subscription/default.nix b/pkgs/development/python-modules/azure-mgmt-subscription/default.nix
index 92dcc7cd952..6a429a056f4 100644
--- a/pkgs/development/python-modules/azure-mgmt-subscription/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-subscription/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-subscription";
-  version = "0.5.0";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1w91zqi2icld76mcrz0kwq0adb1nr83yqdq6qp1p1445p914qjsh";
+    sha256 = "7448a322eceed3d300e181fde0f626c0e37df773f6c7297df2b73d98cb0936cf";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-synapse/default.nix b/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
new file mode 100644
index 00000000000..ffdb6eb5378
--- /dev/null
+++ b/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
@@ -0,0 +1,32 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, azure-common
+, msrest
+, msrestazure
+}:
+
+buildPythonPackage rec {
+  pname = "azure-mgmt-synapse";
+  version = "0.3.0";
+  disabled = pythonOlder "3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0sa12s5af9xl1wnblilswxc6ydr2anm9an000iz3ks54pydby2vy";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    msrest
+    msrestazure
+  ];
+
+  pythonImportsCheck = [ "azure.mgmt.synapse" ];
+
+  meta = with lib; {
+    description = "Azure python SDK";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-multiapi-storage/default.nix b/pkgs/development/python-modules/azure-multiapi-storage/default.nix
index d10045b41d7..18e4a12d3b3 100644
--- a/pkgs/development/python-modules/azure-multiapi-storage/default.nix
+++ b/pkgs/development/python-modules/azure-multiapi-storage/default.nix
@@ -1,4 +1,5 @@
 { lib, python, buildPythonPackage, fetchPypi, isPy27
+, fetchpatch
 , azure-common
 , azure-core
 , msrest
@@ -7,13 +8,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.3.2";
+  version = "0.4.1";
   pname = "azure-multiapi-storage";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c403a47e40e4a80d9c42c854993f5c07f12c2a75bd9a85ba8225985493a9b792";
+    sha256 = "0h7bzaqwyl3j9xqzjbnwxp59kmg6shxk76pml9kvvqbwsq9w6fx3";
   };
 
   propagatedBuildInputs = [
@@ -24,6 +25,14 @@ 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/pkgs/development/python-modules/azure-storage-blob/default.nix b/pkgs/development/python-modules/azure-storage-blob/default.nix
index 5ec0dc9f6eb..964ec3c0d13 100644
--- a/pkgs/development/python-modules/azure-storage-blob/default.nix
+++ b/pkgs/development/python-modules/azure-storage-blob/default.nix
@@ -2,23 +2,28 @@
 , buildPythonPackage
 , fetchPypi
 , azure-common
+, azure-core
 , azure-storage-common
+, msrest
 , isPy3k
 , futures
 }:
 
 buildPythonPackage rec {
   pname = "azure-storage-blob";
-  version = "2.1.0";
+  version = "12.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b90323aad60f207f9f90a0c4cf94c10acc313c20b39403398dfba51f25f7b454";
+    extension = "zip";
+    sha256 = "1s03daq5mxh9acbv8qpa55c2wmjvdf8jq071cwv65mrly8prp84n";
   };
 
   propagatedBuildInputs = [
     azure-common
+    azure-core
     azure-storage-common
+    msrest
   ] ++ lib.optional (!isPy3k) futures;
 
   # has no tests
diff --git a/pkgs/development/python-modules/azure-storage-file-share/default.nix b/pkgs/development/python-modules/azure-storage-file-share/default.nix
index a4f8e161ba3..b8a642f665c 100644
--- a/pkgs/development/python-modules/azure-storage-file-share/default.nix
+++ b/pkgs/development/python-modules/azure-storage-file-share/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "azure-storage-file-share";
-  version = "12.1.1";
+  version = "12.2.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "661ed9669b9fbb3163899294d28f11f7c135336e1513aab6bd1ff9ef3c6febb3";
+    sha256 = "b649ed8afd67c10c9833f349a7c579d771a6425ad6b88027130a6b8cfa433ffb";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix b/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix
new file mode 100644
index 00000000000..d9d0941abde
--- /dev/null
+++ b/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi
+, azure-common
+, azure-core
+, msrest
+}:
+
+buildPythonPackage rec {
+  pname = "azure-synapse-accesscontrol";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rsdqrhrgy09kbw6c7krb4hlaxs1ldb6lilwrbxgp3zqybxxnh5b";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    azure-core
+    msrest
+  ];
+
+  pythonImportsCheck = [ "azure.synapse.accesscontrol" ];
+
+  meta = with lib; {
+    description = "Azure python SDK";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-synapse-spark/default.nix b/pkgs/development/python-modules/azure-synapse-spark/default.nix
new file mode 100644
index 00000000000..bf75e987bdc
--- /dev/null
+++ b/pkgs/development/python-modules/azure-synapse-spark/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi
+, azure-common
+, azure-core
+, msrest
+}:
+
+buildPythonPackage rec {
+  pname = "azure-synapse-spark";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1qijqp6llshqas422lnqvpv45iv99n7f13v86znql40y3jp5n3ir";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    azure-core
+    msrest
+  ];
+
+  pythonImportsCheck = [ "azure.synapse.spark" ];
+
+  meta = with lib; {
+    description = "Azure python SDK";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/backcall/default.nix b/pkgs/development/python-modules/backcall/default.nix
index f1951a13d78..b5a53b62132 100644
--- a/pkgs/development/python-modules/backcall/default.nix
+++ b/pkgs/development/python-modules/backcall/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "backcall";
-  version = "0.1.0";
+  version = "0.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "38ecd85be2c1e78f77fd91700c76e14667dc21e2713b63876c0eb901196e01e4";
+    sha256 = "5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/backoff/default.nix b/pkgs/development/python-modules/backoff/default.nix
new file mode 100644
index 00000000000..fd92351c4d8
--- /dev/null
+++ b/pkgs/development/python-modules/backoff/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook, poetry, pytest-asyncio, }:
+
+buildPythonPackage rec {
+  pname = "backoff";
+  version = "1.10.0";
+
+  src = fetchFromGitHub {
+    owner = "litl";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1jj0l6pjx747d2yyvnzd3qbm4qr73sq6cc56dhvd8wqfbp5279x0";
+  };
+
+  format = "pyproject";
+
+  nativeBuildInputs = [ poetry ];
+
+  checkInputs = [ pytestCheckHook pytest-asyncio ];
+
+  meta = with lib; {
+    description = "Function decoration for backoff and retry";
+    homepage = "https://github.com/litl/backoff";
+    license = licenses.mit;
+    maintainers = with maintainers; [ chkno ];
+  };
+}
diff --git a/pkgs/development/python-modules/base58/default.nix b/pkgs/development/python-modules/base58/default.nix
index 53f5f0599e8..42f848aa846 100644
--- a/pkgs/development/python-modules/base58/default.nix
+++ b/pkgs/development/python-modules/base58/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "base58";
-  version = "2.0.0";
+  version = "2.0.1";
   disabled = isPy27; # python 2 abandoned upstream
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c83584a8b917dc52dd634307137f2ad2721a9efb4f1de32fc7eaaaf87844177e";
+    sha256 = "365c9561d9babac1b5f18ee797508cd54937a724b6e419a130abad69cec5ca79";
   };
 
   checkInputs = [ pytest pyhamcrest ];
diff --git a/pkgs/development/python-modules/bash_kernel/default.nix b/pkgs/development/python-modules/bash_kernel/default.nix
index 191f0342674..9ac72a21fa7 100644
--- a/pkgs/development/python-modules/bash_kernel/default.nix
+++ b/pkgs/development/python-modules/bash_kernel/default.nix
@@ -6,6 +6,7 @@
 , isPy27
 , python
 , pexpect
+, bash
 }:
 
 buildPythonPackage rec {
@@ -26,6 +27,12 @@ buildPythonPackage rec {
     })
   ];
 
+  postPatch = ''
+    substituteInPlace bash_kernel/kernel.py \
+      --replace "'bash'" "'${bash}/bin/bash'" \
+      --replace "\"bash\"" "'${bash}/bin/bash'"
+  '';
+
   propagatedBuildInputs = [ ipykernel pexpect ];
 
   # no tests
diff --git a/pkgs/development/python-modules/batchgenerators/default.nix b/pkgs/development/python-modules/batchgenerators/default.nix
index bfc52c99ef5..b0f3cdb6e11 100644
--- a/pkgs/development/python-modules/batchgenerators/default.nix
+++ b/pkgs/development/python-modules/batchgenerators/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     repo = pname;
     rev = "v${version}";
     sha256 = "0cc3i4wznqb7lk8n6jkprvkpsby6r7khkxqwn75k8f01mxgjfpvf";
-    
+
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/batchspawner/default.nix b/pkgs/development/python-modules/batchspawner/default.nix
new file mode 100644
index 00000000000..ebf24fb9d7b
--- /dev/null
+++ b/pkgs/development/python-modules/batchspawner/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, jupyterhub
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "batchspawner";
+  version = "1.0.0";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "jupyterhub";
+    repo = "batchspawner";
+    rev = "v${version}";
+    sha256 = "0yn312sjfjpjjfciagbczfmqprk2fj4lbb3vsbzj17p948acq5w2";
+  };
+
+  propagatedBuildInputs = [
+    jupyterhub
+  ];
+
+  # tests require a job scheduler e.g. slurm, pbs, etc.
+  doCheck = false;
+
+  pythonImportCheck = [ "batchspawner" ];
+
+  meta = with lib; {
+    description = "A spawner for Jupyterhub to spawn notebooks using batch resource managers";
+    homepage = "https://jupyter.org";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/batinfo/default.nix b/pkgs/development/python-modules/batinfo/default.nix
index 57dfd5062c1..e8516aecdc6 100644
--- a/pkgs/development/python-modules/batinfo/default.nix
+++ b/pkgs/development/python-modules/batinfo/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/nicolargo/batinfo";
     description = "A simple Python lib to retrieve battery information";
     license = licenses.lgpl3;
-    platforms = platforms.all;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ koral ];
   };
 }
diff --git a/pkgs/development/python-modules/bayesian-optimization/default.nix b/pkgs/development/python-modules/bayesian-optimization/default.nix
index 990d471bc6b..69494a4fa1f 100644
--- a/pkgs/development/python-modules/bayesian-optimization/default.nix
+++ b/pkgs/development/python-modules/bayesian-optimization/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     scikitlearn
     scipy
   ];
-  
+
   checkInputs = [ pytest ];
   checkPhase = ''
     pytest tests
diff --git a/pkgs/development/python-modules/bcrypt/default.nix b/pkgs/development/python-modules/bcrypt/default.nix
index 2468eaccecd..dc50c56018e 100644
--- a/pkgs/development/python-modules/bcrypt/default.nix
+++ b/pkgs/development/python-modules/bcrypt/default.nix
@@ -1,15 +1,16 @@
-{ stdenv, buildPythonPackage, isPyPy, fetchPypi
+{ stdenv, buildPythonPackage, isPyPy, fetchPypi, pythonOlder
 , cffi, pycparser, mock, pytest, py, six }:
 
 with stdenv.lib;
 
 buildPythonPackage rec {
-  version = "3.1.7";
+  version = "3.2.0";
   pname = "bcrypt";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0b0069c752ec14172c5f78208f1863d7ad6755a6fae6fe76ec2c80d13be41e42";
+    sha256 = "5b93c1726e50a93a033c36e5ca7fdcd29a5c7395af50a6892f5d9e7c6cfbfb29";
   };
   buildInputs = [ pycparser mock pytest py ];
   propagatedBuildInputs = [ six ] ++ optional (!isPyPy) cffi;
diff --git a/pkgs/development/python-modules/beancount/default.nix b/pkgs/development/python-modules/beancount/default.nix
index 9709037792d..adbf9a46ab4 100644
--- a/pkgs/development/python-modules/beancount/default.nix
+++ b/pkgs/development/python-modules/beancount/default.nix
@@ -4,14 +4,14 @@
 , ply, python_magic, pytest, requests }:
 
 buildPythonPackage rec {
-  version = "2.3.0";
+  version = "2.3.1";
   pname = "beancount";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04i788glp2cslwi67dixy1pi5l0izcl078i9mrd1j1sh8f99cvcs";
+    sha256 = "e12abfe0a6b38ce3525adb471ca5b8e3fa4056ff712108de48da53405c518a11";
   };
 
   # Tests require files not included in the PyPI archive.
diff --git a/pkgs/development/python-modules/behave/default.nix b/pkgs/development/python-modules/behave/default.nix
index fbe108e2a02..ea7af2dfeaa 100644
--- a/pkgs/development/python-modules/behave/default.nix
+++ b/pkgs/development/python-modules/behave/default.nix
@@ -1,30 +1,24 @@
-{ stdenv, fetchPypi, fetchpatch
-, buildPythonApplication, python, pythonOlder
-, mock, nose, pathpy, pyhamcrest, pytest_4
-, glibcLocales, parse, parse-type, six
-, traceback2
+{ stdenv, fetchFromGitHub
+, buildPythonApplication, python
+, mock, pathpy, pyhamcrest, pytest, pytest-html
+, glibcLocales
+, colorama, cucumber-tag-expressions, parse, parse-type, six
 }:
 
 buildPythonApplication rec {
   pname = "behave";
-  version = "1.2.6";
+  version = "1.2.7.dev1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "11hsz365qglvpp1m1w16239c3kiw15lw7adha49lqaakm8kj6rmr";
+  src = fetchFromGitHub {
+    owner = "behave";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ssgixmqlg8sxsyalr83a1970njc2wg3zl8idsmxnsljwacv7qwv";
   };
 
-  patches = [
-    # Fix tests on Python 2.7
-    (fetchpatch {
-      url = "https://github.com/behave/behave/commit/0a9430a94881cd18437deb03d2ae23afea0f009c.patch";
-      sha256 = "1nrh9ii6ik6gw2kjh8a6jk4mg5yqw3jfjfllbyxardclsab62ydy";
-    })
-  ];
-
-  checkInputs = [ mock nose pathpy pyhamcrest pytest_4 ];
+  checkInputs = [ mock pathpy pyhamcrest pytest pytest-html ];
   buildInputs = [ glibcLocales ];
-  propagatedBuildInputs = [ parse parse-type six ] ++ stdenv.lib.optional (pythonOlder "3.0") traceback2;
+  propagatedBuildInputs = [ colorama cucumber-tag-expressions parse parse-type six ];
 
   postPatch = ''
     patchShebangs bin
@@ -36,7 +30,7 @@ buildPythonApplication rec {
     export LANG="en_US.UTF-8"
     export LC_ALL="en_US.UTF-8"
 
-    pytest test tests
+    pytest tests
 
     ${python.interpreter} bin/behave -f progress3 --stop --tags='~@xfail' features/
     ${python.interpreter} bin/behave -f progress3 --stop --tags='~@xfail' tools/test-features/
@@ -47,6 +41,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/behave/behave";
     description = "behaviour-driven development, Python style";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ alunduil ];
+    maintainers = with maintainers; [ alunduil maxxk ];
   };
 }
diff --git a/pkgs/development/python-modules/bellows/default.nix b/pkgs/development/python-modules/bellows/default.nix
new file mode 100644
index 00000000000..4b5cabbbde4
--- /dev/null
+++ b/pkgs/development/python-modules/bellows/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, click, click-log, pure-pcapy3
+, pyserial, pyserial-asyncio, voluptuous, zigpy
+, asynctest, pytest, pytest-asyncio }:
+
+let
+  pname = "bellows";
+  version = "0.18.1";
+
+in buildPythonPackage rec {
+  inherit pname version;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "6a2e323c2be6f10a8e99fffccb5670bc77bbddb7b5bd9253b69021120f2ab9d7";
+  };
+
+  propagatedBuildInputs = [
+    click click-log pure-pcapy3 pyserial pyserial-asyncio voluptuous zigpy
+  ];
+
+  checkInputs = [
+    asynctest pytest pytest-asyncio
+  ];
+
+  prePatch = ''
+    substituteInPlace setup.py \
+      --replace "click-log==0.2.0" "click-log>=0.2.0"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A Python 3 project to implement EZSP for EmberZNet devices";
+    homepage = "https://github.com/zigpy/bellows";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ etu mvnetbiz ];
+  };
+}
diff --git a/pkgs/development/python-modules/bespon/default.nix b/pkgs/development/python-modules/bespon/default.nix
index cb6dbcf0d9c..51e29e55d07 100644
--- a/pkgs/development/python-modules/bespon/default.nix
+++ b/pkgs/development/python-modules/bespon/default.nix
@@ -4,18 +4,18 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.4.0";
+  version = "0.5.0";
   pname = "BespON";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4acfa3f918d416654beccd4db69290f498edb78bf39941287dcbc068b9a7ce2f";
+    sha256 = "a75cd7e62746fb0fef9b98aa157a44f9ed2ef63e952f7ae4ec5b3c2892669187";
   };
 
   propagatedBuildInputs = [ ];
   # upstream doesn't contain tests
   doCheck = false;
-  
+
   pythonImportsCheck = [ "bespon" ];
   meta = with stdenv.lib; {
     description = "Encodes and decodes data in the BespON format.";
diff --git a/pkgs/development/python-modules/bidict/default.nix b/pkgs/development/python-modules/bidict/default.nix
index ec0440b9e44..8c7acc0a8ad 100644
--- a/pkgs/development/python-modules/bidict/default.nix
+++ b/pkgs/development/python-modules/bidict/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "bidict";
-  version = "0.19.0";
+  version = "0.20.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11wiis62kcw6g3n4gdj39fx1yrlq5vz3zx3kmb6g79mliyhn2x7g";
+    sha256 = "c1b1ce1c0f1e3457489672bc3a4db375a06f61ae7797a9eedf71ea788cea3870";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/bids-validator/default.nix b/pkgs/development/python-modules/bids-validator/default.nix
index 036f5434614..bcf45aff832 100644
--- a/pkgs/development/python-modules/bids-validator/default.nix
+++ b/pkgs/development/python-modules/bids-validator/default.nix
@@ -4,15 +4,18 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.5.2";
+  version = "1.5.4";
   pname = "bids-validator";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6f3bd0402d41ee9be03637d74f34a7db279d00cb9c6386b0597cbbac16ee8f4e";
+    sha256 = "b8292f4efb3617532f93c60acfec242150406bfd9e298d7f01187d67c311aa91";
   };
 
-  propagatedBuildInputs = [ ];
+  # needs packages which are not available in nixpkgs
+  doCheck = false;
+
+  pythonImportsCheck = [ "bids_validator" ];
 
   meta = with lib; {
     description = "Validator for the Brain Imaging Data Structure";
diff --git a/pkgs/development/python-modules/binwalk/default.nix b/pkgs/development/python-modules/binwalk/default.nix
index 97c6b957a43..0970cc18249 100644
--- a/pkgs/development/python-modules/binwalk/default.nix
+++ b/pkgs/development/python-modules/binwalk/default.nix
@@ -9,13 +9,16 @@
 , gnutar
 , p7zip
 , cabextract
+, cramfsprogs
+, cramfsswap
 , lzma
+, matplotlib
 , nose
 , pycrypto
 , pyqtgraph ? null }:
 
 let
-  visualizationSupport = (pyqtgraph != null);
+  visualizationSupport = (pyqtgraph != null) && (matplotlib != null);
   version = "2.2.0";
 in
 buildPythonPackage {
@@ -29,8 +32,8 @@ buildPythonPackage {
     sha256 = "1bxgj569fzwv6jhcbl864nmlsi9x1k1r20aywjxc8b9b1zgqrlvc";
   };
 
-  propagatedBuildInputs = [ zlib xz ncompress gzip bzip2 gnutar p7zip cabextract lzma pycrypto ]
-  ++ stdenv.lib.optional visualizationSupport pyqtgraph;
+  propagatedBuildInputs = [ zlib xz ncompress gzip bzip2 gnutar p7zip cabextract cramfsswap cramfsprogs lzma pycrypto ]
+  ++ stdenv.lib.optionals visualizationSupport [ matplotlib pyqtgraph ];
 
   # setup.py only installs version.py during install, not test
   postPatch = ''
diff --git a/pkgs/development/python-modules/bip_utils/default.nix b/pkgs/development/python-modules/bip_utils/default.nix
new file mode 100644
index 00000000000..490df40e93c
--- /dev/null
+++ b/pkgs/development/python-modules/bip_utils/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, ecdsa
+, pysha3
+}:
+
+buildPythonPackage rec {
+  pname = "bip_utils";
+  version = "1.4.0";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "582022ab5c1ff35d0179a22a39c90b7e4e71e4641d59b2a3e81d60df741d1e3c";
+  };
+
+  propagatedBuildInputs = [ ecdsa pysha3 ];
+
+  # tests are not packaged in the released tarball
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "bip_utils"
+  ];
+
+  meta = {
+    description = "Implementation of BIP39, BIP32, BIP44, BIP49 and BIP84 for wallet seeds, keys and addresses generation";
+    homepage = "https://github.com/ebellocchia/bip_utils";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/development/python-modules/biplist/default.nix b/pkgs/development/python-modules/biplist/default.nix
new file mode 100644
index 00000000000..b3e9f7b8374
--- /dev/null
+++ b/pkgs/development/python-modules/biplist/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonPackage, fetchPypi
+, pytest
+}:
+
+buildPythonPackage rec {
+  version = "1.0.3";
+  pname = "biplist";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1im45a9z7ryrfyp1v6i39qia5qagw6i1mhif0hl0praz9iv4j1ac";
+  };
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    homepage = "https://bitbucket.org/wooster/biplist/src/master/";
+    description = "Binary plist parser/generator for Python";
+    longDescription = ''
+      Binary Property List (plist) files provide a faster and smaller
+      serialization format for property lists on OS X.
+
+      This is a library for generating binary plists which can be read
+      by OS X, iOS, or other clients.
+    '';
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ siriobalmelli ];
+  };
+}
diff --git a/pkgs/development/python-modules/bitarray/default.nix b/pkgs/development/python-modules/bitarray/default.nix
index 2036d4dba4b..1e995af3920 100644
--- a/pkgs/development/python-modules/bitarray/default.nix
+++ b/pkgs/development/python-modules/bitarray/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "bitarray";
-  version = "1.2.2";
+  version = "1.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0m29k3lq37v53pczyr2d5mr3xdh2kv31g2yfnfx8m1ivxvy9z9i7";
+    sha256 = "567631fc922b1c2c528c376795f18dcc0604d18702e0b8b50e8e35f0474214a5";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/black-macchiato/default.nix b/pkgs/development/python-modules/black-macchiato/default.nix
new file mode 100644
index 00000000000..130d07d61ff
--- /dev/null
+++ b/pkgs/development/python-modules/black-macchiato/default.nix
@@ -0,0 +1,35 @@
+{ stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  black
+}:
+
+buildPythonPackage rec {
+  pname = "black-macchiato";
+  version = "1.3.0";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner  = "wbolster";
+    repo   = pname;
+    rev    = version;
+    sha256 = "0lc9w50nlbmlzj44krk7kxcia202fhybbnwfh77xixlc7vb4rayl";
+  };
+
+  propagatedBuildInputs = [ black ];
+
+  checkInputs = [ pytestCheckHook black ];
+
+  pythonImportsCheck = [ "black" ];
+
+  meta = with stdenv.lib; {
+    description = "This is a small utility built on top of the black Python code formatter to enable formatting of partial files";
+    homepage    = "https://github.com/wbolster/black-macchiato";
+    license     = licenses.bsd3;
+    maintainers = with maintainers; [ jperras ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/bleak/default.nix b/pkgs/development/python-modules/bleak/default.nix
index b7ebca9eb03..63371fc6eec 100644
--- a/pkgs/development/python-modules/bleak/default.nix
+++ b/pkgs/development/python-modules/bleak/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "bleak";
-  version = "0.6.4";
+  version = "0.7.1";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1dc32899d0700c5b5ed9abf642dfee28ac62b1fb5d7be5fa5a6db104dec9a03c";
+    sha256 = "25f630cf558efda5cbf620d921b85a80ae963c537feaa18cc934f7fa38dc482d";
   };
 
   postPatch = ''
@@ -29,6 +29,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/hbldh/bleak";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/pkgs/development/python-modules/blis/default.nix b/pkgs/development/python-modules/blis/default.nix
index 596545093a9..5d4b9bcb5e2 100644
--- a/pkgs/development/python-modules/blis/default.nix
+++ b/pkgs/development/python-modules/blis/default.nix
@@ -9,22 +9,24 @@
 
 buildPythonPackage rec {
   pname = "blis";
-  version = "0.4.1";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d69257d317e86f34a7f230a2fd1f021fd2a1b944137f40d8cdbb23bd334cd0c4";
+    sha256 = "014771a0f753a64ef5610c5b3d4a090b263073bdd59b8ad0d872ce1e06e7315a";
   };
 
   nativeBuildInputs = [
     cython
   ];
 
+  propagatedBuildInputs = [
+    numpy
+  ];
+
 
   checkInputs = [
-    cython
     hypothesis
-    numpy
     pytest
   ];
 
diff --git a/pkgs/development/python-modules/blivet/default.nix b/pkgs/development/python-modules/blivet/default.nix
index f3efba1f378..b8d1b4670ae 100644
--- a/pkgs/development/python-modules/blivet/default.nix
+++ b/pkgs/development/python-modules/blivet/default.nix
@@ -1,11 +1,8 @@
 { stdenv, fetchFromGitHub, buildPythonPackage, pykickstart, pyparted, pyblock
-, pyudev, six, libselinux, cryptsetup, multipath-tools, lsof, utillinux
+, pyudev, six, libselinux, multipath-tools, lsof, utillinux
 }:
 
-let
-  pyenable = { enablePython = true; };
-  cryptsetupWithPython = cryptsetup.override pyenable;
-in buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "blivet";
   version = "0.67";
 
@@ -30,7 +27,7 @@ in buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
-    pykickstart pyparted pyblock pyudev libselinux cryptsetupWithPython
+    pykickstart pyparted pyblock pyudev libselinux
     six
   ];
 
diff --git a/pkgs/development/python-modules/block-io/default.nix b/pkgs/development/python-modules/block-io/default.nix
index 505d3ffe149..ec1229965e0 100644
--- a/pkgs/development/python-modules/block-io/default.nix
+++ b/pkgs/development/python-modules/block-io/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "block-io";
-  version = "1.1.13";
+  version = "1.1.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a45e31361d17ce272a0d563a689d6b87b65cc16e9348f8cd3a6460c93359b1bd";
+    sha256 = "97ea037a67af72037cb08cec7e0a9f7866ecdfaa1a8c8ebcc0f4b9359a1516d7";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/bokeh/default.nix b/pkgs/development/python-modules/bokeh/default.nix
index a3ed2c6b8ae..850070b1c00 100644
--- a/pkgs/development/python-modules/bokeh/default.nix
+++ b/pkgs/development/python-modules/bokeh/default.nix
@@ -33,11 +33,11 @@
 
 buildPythonPackage rec {
   pname = "bokeh";
-  version = "2.0.2";
+  version = "2.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d9248bdb0156797abf6d04b5eac581dcb121f5d1db7acbc13282b0609314893a";
+    sha256 = "2dfabf228f55676b88acc464f416e2b13ee06470a8ad1dd3e609bb789425fbad";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/boltons/default.nix b/pkgs/development/python-modules/boltons/default.nix
index 36361ac0118..080165f7071 100644
--- a/pkgs/development/python-modules/boltons/default.nix
+++ b/pkgs/development/python-modules/boltons/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "boltons";
-  version = "20.1.0";
+  version = "20.2.0";
 
   # No tests in PyPi Tarball
   src = fetchFromGitHub {
     owner = "mahmoud";
     repo = "boltons";
     rev = version;
-    sha256 = "0mbxc2n10mlmpbwhg0byddl1i0s6rlrr6z9xm8zzmkv62136irqh";
+    sha256 = "08rd6av8dp5n1vz6nybmayl1mfsmj66cskiaybfshcgix29ca803";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/boltztrap2/default.nix b/pkgs/development/python-modules/boltztrap2/default.nix
index e1b9bc16521..48fc3bf6998 100644
--- a/pkgs/development/python-modules/boltztrap2/default.nix
+++ b/pkgs/development/python-modules/boltztrap2/default.nix
@@ -14,13 +14,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "20.2.1";
+  version = "20.7.1";
   pname = "BoltzTraP2";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1cbf17c5479eec82efd1e8a26202c3320b1986597a08706cafa46bfb80cc3001";
+    sha256 = "41caa32e5778323471d87033f23537f6178a7aea64fba894c7f2b2579b51f7ed";
   };
 
   dontUseCmakeConfigure = true;
diff --git a/pkgs/development/python-modules/boolean-py/default.nix b/pkgs/development/python-modules/boolean-py/default.nix
index 8f5ef73c7e2..dc1b1be0d81 100644
--- a/pkgs/development/python-modules/boolean-py/default.nix
+++ b/pkgs/development/python-modules/boolean-py/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "boolean.py";
-  version = "3.7";
+  version = "3.8";
 
   src = fetchFromGitHub {
     owner = "bastikr";
     repo = "boolean.py";
     rev = "v${version}";
-    sha256 = "1q9ji2jq07qr6vgp9yv6y8lx6h0zyi07fqjga3yi3vpfk46h2jn1";
+    sha256 = "02jznrfrihhk69ai1vnh26s3rshl4kfc2id7li6xccavc2ws5y3b";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/booleanoperations/default.nix b/pkgs/development/python-modules/booleanoperations/default.nix
new file mode 100644
index 00000000000..c747df90f5a
--- /dev/null
+++ b/pkgs/development/python-modules/booleanoperations/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildPythonPackage, fetchPypi
+, fonttools, fs, pyclipper, defcon, fontpens
+, setuptools_scm, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "booleanOperations";
+  version = "0.9.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1f41lb19m8azchl1aqz6j5ycbspb8jsf1cnn42hlydxd68f85ylc";
+    extension = "zip";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [
+    fonttools
+    fs
+    pyclipper
+    defcon
+    fontpens
+  ];
+
+  checkInputs = [ pytest ];
+
+  meta = with lib; {
+    description = "Boolean operations on paths";
+    homepage = "https://github.com/typemytype/booleanOperations";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/boto3/default.nix b/pkgs/development/python-modules/boto3/default.nix
index 53a2be0b8d1..ca3ffa98575 100644
--- a/pkgs/development/python-modules/boto3/default.nix
+++ b/pkgs/development/python-modules/boto3/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname =  "boto3";
-  version = "1.14.3"; # N.B: if you change this, change botocore too
+  version = "1.14.51"; # N.B: if you change this, change botocore too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1qapj3hbbj116x7yca3m9ivl44iisrk0cppri9sk3b1mpv371a0v";
+    sha256 = "a6bdb808e948bd264af135af50efb76253e85732c451fa605b7a287faf022432";
   };
 
   propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix
index 0e4870a4300..0ad2816f55c 100644
--- a/pkgs/development/python-modules/botocore/default.nix
+++ b/pkgs/development/python-modules/botocore/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.17.3"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.17.51"; # N.B: if you change this, change boto3 and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mrkkb7vc7jdxrr9gyg92i6ar801kpss53nfqp1di6xfi4jxkx0k";
+    sha256 = "198a62d387eb64b4c1dde33a9c41e96b07884c68c1442dd7c7d38123592aae7c";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/braintree/default.nix b/pkgs/development/python-modules/braintree/default.nix
index 8e8c89e7f59..1965d256fdf 100644
--- a/pkgs/development/python-modules/braintree/default.nix
+++ b/pkgs/development/python-modules/braintree/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "braintree";
-  version = "4.1.0";
+  version = "4.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1fqh1bdkk3g222vbrmw3ab4r4mmd1k4x2jayshnqpbspszcqzcdq";
+    sha256 = "d2b5ead45dbfe98b6099d387c7f12b7d2994ae0efb60679e6bb0929a06027e16";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/bravia-tv/default.nix b/pkgs/development/python-modules/bravia-tv/default.nix
index 8050f886db5..00d554ef14b 100644
--- a/pkgs/development/python-modules/bravia-tv/default.nix
+++ b/pkgs/development/python-modules/bravia-tv/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "bravia-tv";
-  version = "1.0.5";
+  version = "1.0.6";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "dcnielsen90";
     repo = "python-bravia-tv";
     rev = "v${version}";
-    sha256 = "17nd0v3pgmbfafi3vypls9jnpg4dk7wyh7fl7gpzcnkq1f8pf087";
+    sha256 = "07i1j3y04w2jwylff8w1aimmy4fj1g42wq8iz83an7dl4cz3rap9";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/breathe/default.nix b/pkgs/development/python-modules/breathe/default.nix
index 0f06e34a54d..5afb3bfffcf 100644
--- a/pkgs/development/python-modules/breathe/default.nix
+++ b/pkgs/development/python-modules/breathe/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchPypi, buildPythonPackage, docutils, six, sphinx, isPy3k, isPy27 }:
 
 buildPythonPackage rec {
-  version = "4.18.1";
+  version = "4.20.0";
   pname = "breathe";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03f56cc6dd0bf5ac3d8e8eb380d212257e16de79fce5e6186afd5c1835561e22";
+    sha256 = "d7e1e1ee9b0615423b7e9abc64f0afe12e7bcf32c817a8fd1d9c8c3c4b3d71c9";
   };
 
   propagatedBuildInputs = [ docutils six sphinx ];
diff --git a/pkgs/development/python-modules/broadlink/default.nix b/pkgs/development/python-modules/broadlink/default.nix
index 9efcd660c0d..685ca57b7ef 100644
--- a/pkgs/development/python-modules/broadlink/default.nix
+++ b/pkgs/development/python-modules/broadlink/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "broadlink";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f771456ed990187f170d1561e2fd3d490ef646a2570a0286fe709a7115abcb49";
+    sha256 = "5c443d4639b737069e5e27df451b6e89c5ed50be81899e4ea02adb355bf3d724";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/brother/default.nix b/pkgs/development/python-modules/brother/default.nix
new file mode 100644
index 00000000000..b560c9ec083
--- /dev/null
+++ b/pkgs/development/python-modules/brother/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, pysnmp
+, asynctest, pytestcov, pytestrunner, pytest-asyncio, pytest-trio, pytest-tornasync }:
+
+buildPythonPackage rec {
+  pname = "brother";
+  version = "0.1.14";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "bieniu";
+    repo = pname;
+    rev = version;
+    sha256 = "11pkr30bxrzgbz6bi42dyhav6qhr7rz9fb6a13297g7wa77jn4r4";
+  };
+
+  propagatedBuildInputs = [
+    pysnmp
+  ];
+
+  checkInputs = [
+    asynctest
+    pytestcov
+    pytestrunner
+    pytest-asyncio
+    pytest-trio
+    pytest-tornasync
+  ];
+
+  meta = with lib; {
+    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/pkgs/development/python-modules/brotlipy/default.nix b/pkgs/development/python-modules/brotlipy/default.nix
index 1dd2a070480..f914d2d6c97 100644
--- a/pkgs/development/python-modules/brotlipy/default.nix
+++ b/pkgs/development/python-modules/brotlipy/default.nix
@@ -33,4 +33,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/python-hyper/brotlipy/";
     license = lib.licenses.mit;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/bsdiff4/default.nix b/pkgs/development/python-modules/bsdiff4/default.nix
new file mode 100644
index 00000000000..aabcd4de934
--- /dev/null
+++ b/pkgs/development/python-modules/bsdiff4/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, aflplusplus
+}:
+
+buildPythonPackage rec {
+  pname = "bsdiff4";
+  version = "1.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17fc0dd4204x5gqapvbrc4kv83jdajs00jxm739586pl0iapybrw";
+  };
+
+  checkPhase = ''
+    mv bsdiff4 _bsdiff4
+    python -c 'import bsdiff4; bsdiff4.test()'
+  '';
+
+  meta = with stdenv.lib; {
+    description = "binary diff and patch using the BSDIFF4-format";
+    homepage = "https://github.com/ilanschnell/bsdiff4";
+    license = licenses.bsdProtection;
+    maintainers = with maintainers; [ ris ];
+  };
+}
diff --git a/pkgs/development/python-modules/btchip/default.nix b/pkgs/development/python-modules/btchip/default.nix
index 069358a4d6d..7370d3db7db 100644
--- a/pkgs/development/python-modules/btchip/default.nix
+++ b/pkgs/development/python-modules/btchip/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "btchip-python";
-  version = "0.1.28";
+  version = "0.1.30";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10yxwlsr99gby338rsnczkfigcy36fiajpkr6f44438qlvbx02fs";
+    sha256 = "1mraf2lmh70b038k934adxi7d40431j7yq93my3aws99f5xccsb8";
   };
 
   propagatedBuildInputs = [ hidapi pyscard ecdsa ];
diff --git a/pkgs/development/python-modules/btrfs/default.nix b/pkgs/development/python-modules/btrfs/default.nix
new file mode 100644
index 00000000000..225b26b4d65
--- /dev/null
+++ b/pkgs/development/python-modules/btrfs/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "btrfs";
+  version = "11";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1w92sj47wy53ygz725xr613k32pk5khi0g9lrpp6img871241hrx";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Inspect btrfs filesystems";
+    homepage = "https://github.com/knorrie/python-btrfs";
+    license = licenses.lgpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.evils ];
+  };
+}
diff --git a/pkgs/development/python-modules/bugsnag/default.nix b/pkgs/development/python-modules/bugsnag/default.nix
index 612ab13c193..adae7ff1c38 100644
--- a/pkgs/development/python-modules/bugsnag/default.nix
+++ b/pkgs/development/python-modules/bugsnag/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "bugsnag";
-  version = "3.6.1";
+  version = "3.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8878437aa44ec485cecb255742035b3b98a6c7e7d167a943b5fbe597b2f8f7f9";
+    sha256 = "32966bfe625ec6fc0dbc9d86d79a18f31b22b2fdec3ca070eeb3495304f7e18d";
   };
 
   propagatedBuildInputs = [ six webob ];
diff --git a/pkgs/development/python-modules/build/default.nix b/pkgs/development/python-modules/build/default.nix
index baf583c45e0..97a7f9a201b 100644
--- a/pkgs/development/python-modules/build/default.nix
+++ b/pkgs/development/python-modules/build/default.nix
@@ -43,4 +43,4 @@ buildPythonPackage rec {
     description = "A simple, correct PEP517 package builder";
     license = lib.licenses.mit;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/buildbot/default.nix b/pkgs/development/python-modules/buildbot/default.nix
index c5a12c997d9..9a49be777b0 100644
--- a/pkgs/development/python-modules/buildbot/default.nix
+++ b/pkgs/development/python-modules/buildbot/default.nix
@@ -73,6 +73,13 @@ let
       # This patch disables the test that tries to read /etc/os-release which
       # is not accessible in sandboxed builds.
       ./skip_test_linux_distro.patch
+
+      # fix compatibility with the latest SQLAlchemy
+      (fetchpatch {
+        url = "https://github.com/buildbot/buildbot/commit/96f3cd1c5f5c82b733baecb133576366ecf544fc.patch";
+        sha256 = "0n1jm13h08j7ksbs8ixayn3wziq5hzyp3kscz9fpgxd8gl885y5n";
+        stripLen = 1;
+      })
     ];
 
     postPatch = ''
diff --git a/pkgs/development/python-modules/bumps/default.nix b/pkgs/development/python-modules/bumps/default.nix
index c22b03f4fa1..af1d2cde1cd 100644
--- a/pkgs/development/python-modules/bumps/default.nix
+++ b/pkgs/development/python-modules/bumps/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "bumps";
-  version = "0.7.14";
+  version = "0.7.16";
 
   propagatedBuildInputs = [six];
 
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0l0ljm7n19522m6mb0jnbcwdyqya15vfj3li3mvfsyv4rkxvy18b";
+    sha256 = "3594452487b8404f1efaace9b70aefaeb345fa44dd74349f7829a61161d2f69a";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/bytecode/default.nix b/pkgs/development/python-modules/bytecode/default.nix
new file mode 100644
index 00000000000..24ff14f6255
--- /dev/null
+++ b/pkgs/development/python-modules/bytecode/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, aenum
+}:
+
+buildPythonPackage rec {
+  pname = "bytecode";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "vstinner";
+    repo = pname;
+    rev = version;
+    sha256 = "097k83zr0z71pha7bafzhs4ink174wk9ls2883bic274rihsnc5r";
+  };
+
+  disabled = pythonOlder "3.5";
+
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.6") [ aenum ];
+
+  meta = with lib; {
+    homepage = "https://github.com/vstinner/bytecode";
+    description = "Python module to generate and modify bytecode";
+    license = licenses.mit;
+    maintainers = with maintainers; [ raboof ];
+  };
+}
diff --git a/pkgs/development/python-modules/cachelib/default.nix b/pkgs/development/python-modules/cachelib/default.nix
index 703f3797d1b..e73bbaa28a6 100644
--- a/pkgs/development/python-modules/cachelib/default.nix
+++ b/pkgs/development/python-modules/cachelib/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "cachelib";
-  version = "0.1";
+  version = "0.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13dfv0a4ahgx0wmpqv8jqhshim4229p9c1c7gcsra81pkm89p24b";
+    sha256 = "47e95a67d68c729cbad63285a790a06f0e0d27d71624c6e44c1ec3456bb4476f";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/cachetools/default.nix b/pkgs/development/python-modules/cachetools/default.nix
index f22d4fc0885..6cc6c45137f 100644
--- a/pkgs/development/python-modules/cachetools/default.nix
+++ b/pkgs/development/python-modules/cachetools/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "cachetools";
-  version = "4.1.0";
+  version = "4.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1d057645db16ca7fe1f3bd953558897603d6f0b9c51ed9d11eb4d071ec4e2aab";
+    sha256 = "bbaa39c3dede00175df2dc2b03d0cf18dd2d32a7de7beb68072d13043c9edb20";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/caldav/default.nix b/pkgs/development/python-modules/caldav/default.nix
index 0d96372abfc..57dffe89fc3 100644
--- a/pkgs/development/python-modules/caldav/default.nix
+++ b/pkgs/development/python-modules/caldav/default.nix
@@ -4,6 +4,7 @@
 , pythonOlder
 , icalendar
 , lxml
+, mock
 , nose
 , pytz
 , requests
@@ -23,6 +24,7 @@ buildPythonPackage rec {
     sha256 = "0m64maiqp3k8fsgkkvdx1dlfhkc70pqig4dclq6w8ajz82czrq83";
   };
 
+  nativeBuildInputs = lib.optionals (pythonOlder "3.5") [ mock ];
   propagatedBuildInputs = [ six requests vobject lxml ]
     ++ lib.optionals (pythonOlder "3.6") [ pytz tzlocal ];
 
diff --git a/pkgs/development/python-modules/caldavclientlibrary-asynk/default.nix b/pkgs/development/python-modules/caldavclientlibrary-asynk/default.nix
deleted file mode 100644
index 2d882967493..00000000000
--- a/pkgs/development/python-modules/caldavclientlibrary-asynk/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchgit
-, isPy3k
-}:
-
-buildPythonPackage {
-  version = "asynkdev";
-  pname = "caldavclientlibrary-asynk";
-
-  src = fetchgit {
-    url = "https://github.com/skarra/CalDAVClientLibrary.git";
-    rev = "06699b08190d50cc2636b921a654d67db0a967d1";
-    sha256 = "157q32251ac9x3gdshgrjwsy48nq74vrzviswvph56h9wa8ksnnk";
-  };
-
-  disabled = isPy3k;
-
-  meta = with stdenv.lib; {
-    description = "A Python library and tool for CalDAV";
-
-    longDescription = ''
-      CalDAVCLientLibrary is a Python library and tool for CalDAV.
-
-      This package is the unofficial CalDAVCLientLibrary Python
-      library maintained by the author of Asynk and is needed for
-      that package.
-    '';
-
-    homepage = "https://github.com/skarra/CalDAVClientLibrary/tree/asynkdev/";
-    maintainers = with maintainers; [ pjones ];
-    broken = true; # 2018-04-11
-  };
-
-}
diff --git a/pkgs/development/python-modules/canonicaljson/default.nix b/pkgs/development/python-modules/canonicaljson/default.nix
index 24cccc3aa77..8edd8d05500 100644
--- a/pkgs/development/python-modules/canonicaljson/default.nix
+++ b/pkgs/development/python-modules/canonicaljson/default.nix
@@ -1,14 +1,15 @@
 { stdenv, buildPythonPackage, fetchPypi
-, frozendict, simplejson, six
+, frozendict, simplejson, six, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "canonicaljson";
-  version = "1.1.4";
+  version = "1.3.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "45bce530ff5fd0ca93703f71bfb66de740a894a3b5dd6122398c6d8f18539725";
+    sha256 = "b4763db06a2e8553293c5edaa4bda05605c3307179a7ddfb30273a24ac384b6c";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cassandra-driver/default.nix b/pkgs/development/python-modules/cassandra-driver/default.nix
index 7829afa83f9..ecb1edf5958 100644
--- a/pkgs/development/python-modules/cassandra-driver/default.nix
+++ b/pkgs/development/python-modules/cassandra-driver/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "cassandra-driver";
-  version = "3.23.0";
+  version = "3.24.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a3b075bfd36677024b1dcf55a561fac161fc4f4065f01557b21a0b02ebad05c2";
+    sha256 = "83ec8d9a5827ee44bb1c0601a63696a8a9086beaf0151c8255556299246081bd";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/catalogue/default.nix b/pkgs/development/python-modules/catalogue/default.nix
index eb1aec37c63..1624cbcf36c 100644
--- a/pkgs/development/python-modules/catalogue/default.nix
+++ b/pkgs/development/python-modules/catalogue/default.nix
@@ -3,25 +3,29 @@
 , fetchPypi
 , pythonOlder
 , importlib-metadata
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "catalogue";
-  version = "2.0.0";
+  version = "2.0.1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "34f8416ec5e7ed08e55c10414416e67c3f4d66edf83bc67320c3290775293816";
+    sha256 = "0d01077dbfca7aa53f3ef4adecccce636bce4f82e5b52237703ab2f56478e56e";
   };
 
   propagatedBuildInputs = [ importlib-metadata ];
 
+  checkInputs = [ pytestCheckHook ];
+
   meta = with stdenv.lib; {
     description = "Tiny library for adding function or object registries";
     homepage = "https://github.com/explosion/catalogue";
+    changelog = "https://github.com/explosion/catalogue/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ danieldk ];
-    };
+  };
 }
diff --git a/pkgs/development/python-modules/cbor/default.nix b/pkgs/development/python-modules/cbor/default.nix
index c6df7358ad7..3ebf5f26b82 100644
--- a/pkgs/development/python-modules/cbor/default.nix
+++ b/pkgs/development/python-modules/cbor/default.nix
@@ -17,6 +17,6 @@ buildPythonPackage rec {
     homepage = "https://bitbucket.org/bodhisnarkva/cbor";
     description = "Concise Binary Object Representation (CBOR) library";
     license = licenses.asl20;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/pkgs/development/python-modules/cbor2/default.nix b/pkgs/development/python-modules/cbor2/default.nix
index 3bf660bd098..4ee4b8ecb60 100644
--- a/pkgs/development/python-modules/cbor2/default.nix
+++ b/pkgs/development/python-modules/cbor2/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "cbor2";
-  version = "5.1.0";
+  version = "5.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ai1i0wydxfbdakqnrlpgdk4l2ps7gw0r9nihv9p2jgyqbl13kj3";
+    sha256 = "91759bd0ee5ef0d4fa24144dfa551670730baeca8cf2fff1cc59f734ecd21de6";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/celery/default.nix b/pkgs/development/python-modules/celery/default.nix
index 740023c1fdb..3fd1b51a466 100644
--- a/pkgs/development/python-modules/celery/default.nix
+++ b/pkgs/development/python-modules/celery/default.nix
@@ -1,14 +1,14 @@
 { lib, buildPythonPackage, fetchPypi, libredirect
-, case, pytest, boto3, moto, kombu, billiard, pytz, anyjson, amqp, eventlet
+, case, pytest, boto3, moto, kombu, billiard, pytz, future, vine
 }:
 
 buildPythonPackage rec {
   pname = "celery";
-  version = "4.4.4";
+  version = "4.4.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zk42fxznrhww0dxak9b6nkfqg02z49zr839k6ql7nk3him7n0y2";
+    sha256 = "d220b13a8ed57c78149acf82c006785356071844afe0b27012a4991d44026f9f";
   };
 
   postPatch = ''
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   '';
 
   checkInputs = [ case pytest boto3 moto ];
-  propagatedBuildInputs = [ kombu billiard pytz anyjson amqp eventlet ];
+  propagatedBuildInputs = [ kombu billiard pytz future vine ];
 
   meta = with lib; {
     homepage = "https://github.com/celery/celery/";
diff --git a/pkgs/development/python-modules/certbot-dns-cloudflare/default.nix b/pkgs/development/python-modules/certbot-dns-cloudflare/default.nix
new file mode 100644
index 00000000000..6c14f6c472f
--- /dev/null
+++ b/pkgs/development/python-modules/certbot-dns-cloudflare/default.nix
@@ -0,0 +1,35 @@
+{ buildPythonPackage
+, acme
+, certbot
+, cloudflare
+, isPy3k
+, pytest
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  inherit (certbot) src version;
+
+  pname = "certbot-dns-cloudflare";
+
+  propagatedBuildInputs = [
+    acme
+    certbot
+    cloudflare
+  ];
+
+  checkInputs = [
+    pytest
+    pytestCheckHook
+  ];
+
+  disabled = !isPy3k;
+
+  pytestFlagsArray = [ "-o cache_dir=$(mktemp -d)" ];
+
+  sourceRoot = "source/${pname}";
+
+  meta = certbot.meta // {
+    description = "Cloudflare DNS Authenticator plugin for Certbot";
+  };
+}
diff --git a/pkgs/development/python-modules/certbot-dns-rfc2136/default.nix b/pkgs/development/python-modules/certbot-dns-rfc2136/default.nix
new file mode 100644
index 00000000000..19e53aa20cc
--- /dev/null
+++ b/pkgs/development/python-modules/certbot-dns-rfc2136/default.nix
@@ -0,0 +1,35 @@
+{ buildPythonPackage
+, acme
+, certbot
+, dnspython
+, isPy3k
+, pytest
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  inherit (certbot) src version;
+
+  pname = "certbot-dns-rfc2136";
+
+  propagatedBuildInputs = [
+    acme
+    certbot
+    dnspython
+  ];
+
+  checkInputs = [
+    pytest
+    pytestCheckHook
+  ];
+
+  disabled = !isPy3k;
+
+  pytestFlagsArray = [ "-o cache_dir=$(mktemp -d)" ];
+
+  sourceRoot = "source/${pname}";
+
+  meta = certbot.meta // {
+    description = "RFC 2136 DNS Authenticator plugin for Certbot";
+  };
+}
diff --git a/pkgs/development/python-modules/certbot-dns-route53/default.nix b/pkgs/development/python-modules/certbot-dns-route53/default.nix
new file mode 100644
index 00000000000..6fba51ce92a
--- /dev/null
+++ b/pkgs/development/python-modules/certbot-dns-route53/default.nix
@@ -0,0 +1,35 @@
+{ buildPythonPackage
+, acme
+, boto3
+, certbot
+, isPy3k
+, pytest
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  inherit (certbot) src version;
+
+  pname = "certbot-dns-route53";
+
+  propagatedBuildInputs = [
+    acme
+    boto3
+    certbot
+  ];
+
+  checkInputs = [
+    pytest
+    pytestCheckHook
+  ];
+
+  disabled = !isPy3k;
+
+  pytestFlagsArray = [ "-o cache_dir=$(mktemp -d)" ];
+
+  sourceRoot = "source/${pname}";
+
+  meta = certbot.meta // {
+    description = "Route53 DNS Authenticator plugin for Certbot";
+  };
+}
diff --git a/pkgs/tools/admin/certbot/default.nix b/pkgs/development/python-modules/certbot/default.nix
index cabf335fb69..07ceea731b9 100644
--- a/pkgs/tools/admin/certbot/default.nix
+++ b/pkgs/development/python-modules/certbot/default.nix
@@ -1,25 +1,24 @@
 { lib
-, buildPythonApplication
+, buildPythonPackage
+, 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, dateutil
+, pytest_xdist, pytest, pytestCheckHook, dateutil
 }:
 
-buildPythonApplication rec {
+buildPythonPackage rec {
   pname = "certbot";
-  version = "1.3.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1nzp1l63f64qqp89y1vyd4lgfhykfp5dkr6iwfiyf273y7sjwpsa";
+    sha256 = "1fx29gsa3glwh0ik5k2gynwdz6i3ckq9aakf6ip92n3qyh6l08a8";
   };
 
-  patches = [
-    ./0001-Don-t-use-distutils.StrictVersion-that-cannot-handle.patch
-  ];
+  sourceRoot = "source/${pname}";
 
   propagatedBuildInputs = [
     ConfigArgParse
@@ -40,21 +39,32 @@ buildPythonApplication rec {
 
   buildInputs = [ dialog mock gnureadline ];
 
-  checkInputs = [ pytest_xdist pytest dateutil ];
-
-  preBuild = ''
-    cd certbot
-  '';
+  checkInputs = [
+    dateutil
+    pytest
+    pytestCheckHook
+    pytest_xdist
+  ];
 
-  postInstall = ''
-    for i in $out/bin/*; do
-      wrapProgram "$i" --prefix PYTHONPATH : "$PYTHONPATH" \
-                       --prefix PATH : "${dialog}/bin:$PATH"
-    done
-  '';
+  pytestFlagsArray = [ "-o cache_dir=$(mktemp -d)" ];
 
   doCheck = true;
 
+  makeWrapperArgs = [ "--prefix PATH : ${dialog}/bin" ];
+
+  # certbot.withPlugins has a similar calling convention as python*.withPackages
+  # it gets invoked with a lambda, and invokes that lambda with the python package set matching certbot's:
+  # certbot.withPlugins (cp: [ cp.certbot-dns-foo ])
+  passthru.withPlugins = f: let
+    pythonEnv = python.withPackages f;
+
+  in runCommand "certbot-with-plugins" {
+  } ''
+    mkdir -p $out/bin
+    cd $out/bin
+    ln -s ${pythonEnv}/bin/certbot
+  '';
+
   meta = with lib; {
     homepage = src.meta.homepage;
     description = "ACME client that can obtain certs and extensibly update server configurations";
diff --git a/pkgs/development/python-modules/certifi/default.nix b/pkgs/development/python-modules/certifi/default.nix
index 94619956cff..e5733e2e51a 100644
--- a/pkgs/development/python-modules/certifi/default.nix
+++ b/pkgs/development/python-modules/certifi/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "certifi";
-  version = "2020.4.5.1";
+  version = "2020.6.20";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06b5gfs7wmmipln8f3z928d2mmx2j4b3x7pnqmj6cvmyfh8v7z2i";
+    sha256 = "5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3";
   };
 
   pythonImportsCheck = [ "certifi" ];
diff --git a/pkgs/development/python-modules/certipy/default.nix b/pkgs/development/python-modules/certipy/default.nix
index 12706ab3d8a..5d34eede311 100644
--- a/pkgs/development/python-modules/certipy/default.nix
+++ b/pkgs/development/python-modules/certipy/default.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ pyopenssl ];
-  
+
   doCheck = false; #no tests were included
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/cffi/default.nix b/pkgs/development/python-modules/cffi/default.nix
index 85dcd72a934..c4e14c0e7fb 100644
--- a/pkgs/development/python-modules/cffi/default.nix
+++ b/pkgs/development/python-modules/cffi/default.nix
@@ -2,11 +2,11 @@
 
 if isPyPy then null else buildPythonPackage rec {
   pname = "cffi";
-  version = "1.14.0";
+  version = "1.14.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1dn279gw5ql8i5n3s5v4rnv96rhhjjfn7xq729qbl5bs2954yf1d";
+    sha256 = "ae8f34d50af2c2154035984b8b5fc5d9ed63f32fe615646ab435b05b132ca91b";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/python-modules/cfgv/default.nix b/pkgs/development/python-modules/cfgv/default.nix
index e1b3dfc8e2b..ab9a97729a1 100644
--- a/pkgs/development/python-modules/cfgv/default.nix
+++ b/pkgs/development/python-modules/cfgv/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "cfgv";
-  version = "3.1.0";
+  version = "3.2.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c8e8f552ffcc6194f4e18dd4f68d9aef0c0d58ae7e7be8c82bee3c5e9edfa513";
+    sha256 = "cf22deb93d4bcf92f345a5c3cd39d3d41d6340adc60c78bbbd6588c384fda6a1";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/cfn-lint/default.nix b/pkgs/development/python-modules/cfn-lint/default.nix
index 1b940fa2c4e..5a80f9253ba 100644
--- a/pkgs/development/python-modules/cfn-lint/default.nix
+++ b/pkgs/development/python-modules/cfn-lint/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "cfn-lint";
-  version = "0.33.0";
+  version = "0.35.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b74bb89a3d0da4a744179b07bc186b9fbc4800f929bf635bb6246e80fb91a953";
+    sha256 = "42023d89520e3a29891ec2eb4c326eef9d1f7516fe9abee8b6c97ce064187b45";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cftime/default.nix b/pkgs/development/python-modules/cftime/default.nix
index 7638695ff2d..1a29e51b35f 100644
--- a/pkgs/development/python-modules/cftime/default.nix
+++ b/pkgs/development/python-modules/cftime/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "cftime";
-  version = "1.1.3";
+  version = "1.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1w2iakkzxfhyrqrspn40am8x7bzdp5qqdqbm1asbj7fa3mivi17x";
+    sha256 = "ab5d5076f7d3e699758a244ada7c66da96bae36e22b9e351ce0ececc36f0a57f";
   };
 
   checkInputs = [ pytest coveralls pytestcov ];
@@ -28,4 +28,4 @@ buildPythonPackage rec {
     description = "Time-handling functionality from netcdf4-python";
   };
 
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/chalice/default.nix b/pkgs/development/python-modules/chalice/default.nix
index cb5fab46140..fb2af329ea7 100644
--- a/pkgs/development/python-modules/chalice/default.nix
+++ b/pkgs/development/python-modules/chalice/default.nix
@@ -1,29 +1,32 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , attrs
 , botocore
 , click
 , enum-compat
+, hypothesis
 , jmespath
+, mock
+, mypy-extensions
 , pip
+, pytest
+, pyyaml
 , setuptools
 , six
 , typing
-, wheel
 , watchdog
-, pytest
-, hypothesis
-, mock
+, wheel
 }:
 
 buildPythonPackage rec {
   pname = "chalice";
-  version = "1.14.1";
+  version = "1.18.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "457e71fd84951574ccbe72d1389d9c89aaf5e69a552b01d1f1585faa63459c26";
+    sha256 = "0zb4xk9b553pnfzh8s909cixfdplqnc3nda0fjwjrryi2nxjxd6a";
   };
 
   checkInputs = [ watchdog pytest hypothesis mock ];
@@ -33,10 +36,13 @@ buildPythonPackage rec {
     click
     enum-compat
     jmespath
+    mypy-extensions
     pip
+    pyyaml
     setuptools
     six
     wheel
+  ] ++ lib.optionals (pythonOlder "3.5") [
     typing
   ];
 
diff --git a/pkgs/development/python-modules/chameleon/default.nix b/pkgs/development/python-modules/chameleon/default.nix
index 56cbae2befa..d522764c799 100644
--- a/pkgs/development/python-modules/chameleon/default.nix
+++ b/pkgs/development/python-modules/chameleon/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "Chameleon";
-  version = "3.7.2";
+  version = "3.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7adc331eb039d5c458cd78e42a76f8e470953f004ddf297bd57aa1501392aec9";
+    sha256 = "adf9609a2fa4ad20deb390605495f9a5d617b737bfbd86e51a49bbac2acaf316";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/channels-redis/default.nix b/pkgs/development/python-modules/channels-redis/default.nix
index b8a95387571..fb0774478a0 100644
--- a/pkgs/development/python-modules/channels-redis/default.nix
+++ b/pkgs/development/python-modules/channels-redis/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   #   pytest
   #   pytest-asyncio
   # ];
-  # 
+  #
   # # Fails with : ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 6379)
   # # (even with a local redis instance running)
   # checkPhase = ''
diff --git a/pkgs/development/python-modules/chart-studio/default.nix b/pkgs/development/python-modules/chart-studio/default.nix
index 0eed42dc286..6679f13b119 100644
--- a/pkgs/development/python-modules/chart-studio/default.nix
+++ b/pkgs/development/python-modules/chart-studio/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "chart-studio";
-  version = "1.0.0";
+  version = "1.1.0";
 
   # chart-studio was split from plotly
   src = fetchFromGitHub {
     owner = "plotly";
     repo = "plotly.py";
     rev = "${pname}-v${version}";
-    sha256 = "14lyqbjdffnlnkzlfnn60k7yxjd99vx3hfcs23apsiyinzipjlbf";
+    sha256 = "1q3j3ih5k0jhr8ilwffkfxp1nifpnjnx7862bzhxfg4d386hfg4i";
   };
 
   sourceRoot = "source/packages/python/chart-studio";
diff --git a/pkgs/development/python-modules/check-manifest/default.nix b/pkgs/development/python-modules/check-manifest/default.nix
index ae5ee106f5c..5a3296d71c8 100644
--- a/pkgs/development/python-modules/check-manifest/default.nix
+++ b/pkgs/development/python-modules/check-manifest/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, toml }:
+{ stdenv, buildPythonPackage, fetchPypi, pep517, toml, mock, breezy, git }:
 
 buildPythonPackage rec {
   pname = "check-manifest";
@@ -9,15 +9,19 @@ buildPythonPackage rec {
     sha256 = "0d8e1b0944a667dd4a75274f6763e558f0d268fde2c725e894dfd152aae23300";
   };
 
-  propagatedBuildInputs = [ toml ];
+  # Test requires filesystem access
+  postPatch = ''
+    substituteInPlace tests.py --replace "test_build_sdist" "no_test_build_sdist"
+  '';
 
-  doCheck = false;
+  propagatedBuildInputs = [ pep517 toml ];
+
+  checkInputs = [ mock breezy git ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/mgedmin/check-manifest";
     description = "Check MANIFEST.in in a Python source package for completeness";
     license = licenses.mit;
     maintainers = with maintainers; [ lewo ];
-    broken = true; # pep517 package doesn't exist in nixpkgs
   };
 }
diff --git a/pkgs/development/python-modules/cheetah3/default.nix b/pkgs/development/python-modules/cheetah3/default.nix
new file mode 100644
index 00000000000..1c133917cb2
--- /dev/null
+++ b/pkgs/development/python-modules/cheetah3/default.nix
@@ -0,0 +1,20 @@
+{ lib, buildPythonPackage, fetchPypi, stdenv }:
+
+buildPythonPackage rec {
+  pname = "Cheetah3";
+  version = "3.2.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ececc9ca7c58b9a86ce71eb95594c4619949e2a058d2a1af74c7ae8222515eb1";
+  };
+
+  doCheck = false; # Circular dependency
+
+  meta = {
+    homepage = "http://www.cheetahtemplate.org/";
+    description = "A template engine and code generation tool";
+    license = lib.licenses.mit;
+    maintainers = with stdenv.lib.maintainers; [ pjjw ];
+  };
+}
diff --git a/pkgs/development/python-modules/cheroot/default.nix b/pkgs/development/python-modules/cheroot/default.nix
index 1ea6b87fa00..5795b55d91b 100644
--- a/pkgs/development/python-modules/cheroot/default.nix
+++ b/pkgs/development/python-modules/cheroot/default.nix
@@ -8,6 +8,7 @@
 , pytest-mock
 , pytest-testmon
 , requests
+, requests-toolbelt
 , requests-unixsocket
 , setuptools_scm
 , setuptools-scm-git-archive
@@ -17,13 +18,13 @@
 
 buildPythonPackage rec {
   pname = "cheroot";
-  version = "8.3.0";
+  version = "8.4.5";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a0577e1f28661727d472671a7cc4e0c12ea0cbc5220265e70f00a8b8cb628931";
+    sha256 = "b6c18caf5f79cdae668c35fc8309fc88ea4a964cce9e2ca8504fab13bcf57301";
   };
 
   nativeBuildInputs = [ setuptools_scm setuptools-scm-git-archive ];
@@ -39,10 +40,15 @@ buildPythonPackage rec {
     pytest-mock
     pytest-testmon
     requests
+    requests-toolbelt
     requests-unixsocket
     trustme
   ];
 
+  # avoid attempting to use 3 packages not available on nixpkgs
+  # (jaraco.apt, jaraco.context, yg.lockfile)
+  pytestFlagsArray = [ "--ignore=cheroot/test/test_wsgi.py" ];
+
   # Disable doctest plugin because times out
   # Disable xdist (-n arg) because it's incompatible with testmon
   # Deselect test_bind_addr_unix on darwin because times out
diff --git a/pkgs/development/python-modules/cherrypy/default.nix b/pkgs/development/python-modules/cherrypy/default.nix
index 778f57e0f9b..f23d0600192 100644
--- a/pkgs/development/python-modules/cherrypy/default.nix
+++ b/pkgs/development/python-modules/cherrypy/default.nix
@@ -1,36 +1,27 @@
 { stdenv, buildPythonPackage, fetchPypi, isPy3k
 , setuptools_scm
 , cheroot, portend, more-itertools, zc_lockfile, routes
+, jaraco_collections
 , objgraph, pytest, pytestcov, pathpy, requests_toolbelt, pytest-services
 , fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "cherrypy";
-  version = "18.3.0";
+  version = "18.6.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     pname = "CherryPy";
     inherit version;
-    sha256 = "0q6cs4vrv0rwim4byxfizrlp4h6hmwg3n4baz0ga66vvgiz6hgk8";
+    sha256 = "16f410izp2c4qhn4n3l5l3qirmkf43h2amjqms8hkl0shgfqwq2n";
   };
 
-  # Remove patches once 88d2163 and 713f672
-  # become part of a release - they're currently only present in master.
-  # ref: https://github.com/cherrypy/cherrypy/pull/1820
-  patches = [
-    (fetchpatch {
-      name = "test_HTTP11_Timeout.patch";
-      url = "https://github.com/cherrypy/cherrypy/commit/88d21630f68090c56d07000cabb6df4f1b612a71.patch";
-      sha256 = "1i6a3qs3ijyd9rgsxb8axigkzdlmr5sl3ljif9rvn0d90211bzwh";
-    })
-  ];
-
   propagatedBuildInputs = [
     # required
     cheroot portend more-itertools zc_lockfile
+    jaraco_collections
     # optional
     routes
   ];
@@ -41,10 +32,13 @@ buildPythonPackage rec {
     objgraph pytest pytestcov pathpy requests_toolbelt pytest-services
   ];
 
+  # Keyboard interrupt ends test suite run
+  # daemonize and autoreload tests have issue with sockets within sandbox
   # Disable doctest plugin because times out
   checkPhase = ''
     substituteInPlace pytest.ini --replace "--doctest-modules" ""
     pytest \
+      -k 'not KeyboardInterrupt and not daemonize and not Autoreload' \
       --deselect=cherrypy/test/test_static.py::StaticTest::test_null_bytes \
       --deselect=cherrypy/test/test_tools.py::ToolTests::testCombinedTools \
       ${stdenv.lib.optionalString stdenv.isDarwin
diff --git a/pkgs/development/python-modules/ci-info/default.nix b/pkgs/development/python-modules/ci-info/default.nix
new file mode 100644
index 00000000000..d27f7cf0a82
--- /dev/null
+++ b/pkgs/development/python-modules/ci-info/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, isPy27, fetchPypi, pytest, pytestCheckHook }:
+
+buildPythonPackage rec {
+  version = "0.2.0";
+  pname = "ci-info";
+
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05j6pamk8sd51qmvpkl3f7sxajmncrqm0cz6n6bqgsvzjwn66w6x";
+  };
+
+  checkInputs = [ pytest pytestCheckHook ];
+
+  doCheck = false;  # both tests access network
+
+  pythonImportsCheck = [ "ci_info" ];
+
+  meta = with lib; {
+    description = "Gather continuous integration information on the fly";
+    homepage = "https://github.com/mgxd/ci-info";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/ci-py/default.nix b/pkgs/development/python-modules/ci-py/default.nix
new file mode 100644
index 00000000000..30220b48b72
--- /dev/null
+++ b/pkgs/development/python-modules/ci-py/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, pytest, pytestrunner, pytestCheckHook }:
+
+buildPythonPackage rec {
+  version = "1.0.0";
+  pname = "ci-py";
+
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "12ax07n81vxbyayhwzi1q6x7gfmwmvrvwm1n4ii6qa6fqlp9pzj7";
+  };
+
+  nativeBuildInputs = [ pytestrunner ];  # pytest-runner included in setup-requires
+  checkInputs = [ pytest pytestCheckHook ];
+
+  pythonImportsCheck = [ "ci" ];
+
+  meta = with lib; {
+    description = "Library for working with Continuous Integration services";
+    homepage = "https://github.com/grantmcconnaughey/ci.py";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/cirq/default.nix b/pkgs/development/python-modules/cirq/default.nix
index 98fc3b9ff05..21f9c5446c3 100644
--- a/pkgs/development/python-modules/cirq/default.nix
+++ b/pkgs/development/python-modules/cirq/default.nix
@@ -10,7 +10,7 @@
 , networkx
 , numpy
 , pandas
-, pythonProtobuf  # pythonPackages.protobuf
+, protobuf
 , requests
 , scipy
 , sortedcontainers
@@ -28,15 +28,15 @@
 
 buildPythonPackage rec {
   pname = "cirq";
-  version = "0.8.0";
+  version = "0.8.2";
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "quantumlib";
     repo = "cirq";
     rev = "v${version}";
-    sha256 = "01nnv7r595sp60wvp7750lfdjwdsi4q0r4lmaj6li09zsdw0r4b3";
+    sha256 = "0xs46s19idh8smf80zhgraxwh3lphcdbljdrhxwhi5xcc41dfsmf";
   };
 
   patches = [
@@ -48,12 +48,13 @@ buildPythonPackage rec {
     })
   ];
 
-  # Cirq locks protobuf==3.8.0, but tested working with default pythonPackages.protobuf (3.7). This avoids overrides/pythonPackages.protobuf conflicts
   postPatch = ''
     substituteInPlace requirements.txt \
+      --replace "freezegun~=0.3.15" "freezegun" \
+      --replace "matplotlib~=3.0" "matplotlib" \
       --replace "networkx~=2.4" "networkx" \
-      --replace "protobuf==3.8.0" "protobuf" \
-      --replace "freezegun~=0.3.15" "freezegun"
+      --replace "numpy~=1.16, < 1.19" "numpy" \
+      --replace "protobuf~=3.12.0" "protobuf"
   '';
 
   propagatedBuildInputs = [
@@ -63,7 +64,7 @@ buildPythonPackage rec {
     matplotlib
     networkx
     pandas
-    pythonProtobuf
+    protobuf
     requests
     scipy
     sortedcontainers
@@ -72,7 +73,7 @@ buildPythonPackage rec {
   ];
 
   doCheck = true;
-  # pythonImportsCheck = [ "cirq" "cirq.Ciruit" ];  # cirq's importlib hook doesn't work here
+  # pythonImportsCheck = [ "cirq" "cirq.Circuit" ];  # cirq's importlib hook doesn't work here
   dontUseSetuptoolsCheck = true;
   checkInputs = [
     pytestCheckHook
@@ -86,16 +87,10 @@ buildPythonPackage rec {
 
   pytestFlagsArray = [
     "--ignore=dev_tools"  # Only needed when developing new code, which is out-of-scope
+    "--benchmark-disable" # Don't need to run benchmarks when packaging.
   ];
   disabledTests = [
-    "test_serialize_sympy_constants"  # fails due to small error in pi (~10e-7)
-    "test_convert_to_ion_gates" # fails due to rounding error, 0.75 != 0.750...2
-
-    # Newly disabled tests on cirq 0.8
-    # TODO: test & figure out why failing
-    "engine_job_test"
-    "test_health"
-    "test_run_delegation"
+    "test_convert_to_ion_gates" # fails on some systems due to rounding error, 0.75 != 0.750...2
   ] ++ lib.optionals stdenv.isAarch64 [
     # Seem to fail due to math issues on aarch64?
     "expectation_from_wavefunction"
@@ -105,6 +100,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.";
     homepage = "https://github.com/quantumlib/cirq";
+    changelog = "https://github.com/quantumlib/Cirq/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/pkgs/development/python-modules/ckcc-protocol/default.nix b/pkgs/development/python-modules/ckcc-protocol/default.nix
index 01e2955d08a..7f5311f45b0 100644
--- a/pkgs/development/python-modules/ckcc-protocol/default.nix
+++ b/pkgs/development/python-modules/ckcc-protocol/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "ckcc-protocol";
-  version = "1.0.1";
+  version = "1.0.2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13ihbhjgxyn1xvrbppjvnqm199q5fdwrljs0wm16iwyl56kf3wh3";
+    sha256 = "0zpn3miyapskw6s71v614pmga5zfain9j085axm9v50b8r71xh1i";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/cli-helpers/default.nix b/pkgs/development/python-modules/cli-helpers/default.nix
index 5fff93b5bc6..1dc04d70788 100644
--- a/pkgs/development/python-modules/cli-helpers/default.nix
+++ b/pkgs/development/python-modules/cli-helpers/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "cli_helpers";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "18f7d8c5a22d85fc685d56a9f301d8b9f7f0d7d4e9033a27563b066c2ab41833";
+    sha256 = "dd6f164310f7d86fa3da1f82043a9c784e44a02ad49be932a80624261e56979b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/click-datetime/default.nix b/pkgs/development/python-modules/click-datetime/default.nix
new file mode 100644
index 00000000000..ba710d74355
--- /dev/null
+++ b/pkgs/development/python-modules/click-datetime/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildPythonPackage, fetchFromGitHub
+, click }:
+
+buildPythonPackage rec {
+  pname = "click-datetime";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "click-contrib";
+    repo = pname;
+    rev = version;
+    sha256 = "1yxagk4wd2h77nxml19bn2y26fv2xw2n9g981ls8mjy0g51ms3gh";
+  };
+
+  propagatedBuildInputs = [ click ];
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "click_datetime" ];
+
+  meta = with lib; {
+    description = "Datetime type support for click.";
+    homepage = "https://github.com/click-contrib/click-datetime";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/cliff/default.nix b/pkgs/development/python-modules/cliff/default.nix
index 00da74929a4..220ff790e7c 100644
--- a/pkgs/development/python-modules/cliff/default.nix
+++ b/pkgs/development/python-modules/cliff/default.nix
@@ -17,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "cliff";
-  version = "3.1.0";
+  version = "3.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0j9q6725226hdhdyy9b0qfjngdj35d3y7fxbmfxpr36ksbh0x6sj";
+    sha256 = "49be854582ec4a74240cb72f287846f823cd8cbd2e25f924541d12f27104bda3";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/clifford/default.nix b/pkgs/development/python-modules/clifford/default.nix
index b7ed70f8460..99a2126ee98 100644
--- a/pkgs/development/python-modules/clifford/default.nix
+++ b/pkgs/development/python-modules/clifford/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , numpy
 , scipy
+, sparse
 , numba
 , future
 , h5py
@@ -23,6 +24,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     numpy
     scipy
+    sparse
     numba
     future
     h5py
diff --git a/pkgs/development/python-modules/clikit/default.nix b/pkgs/development/python-modules/clikit/default.nix
index da295806723..7b07b094591 100644
--- a/pkgs/development/python-modules/clikit/default.nix
+++ b/pkgs/development/python-modules/clikit/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi
-, isPy27
+, isPy27, pythonAtLeast
 , pylev, pastel, typing, enum34, crashtest }:
 
 buildPythonPackage rec {
@@ -12,8 +12,10 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    crashtest pylev pastel
-  ] ++ lib.optionals isPy27 [ typing enum34 ];
+    pylev pastel
+  ]
+    ++ lib.optionals (pythonAtLeast "3.6") [ crashtest ]
+    ++ lib.optionals isPy27 [ typing enum34 ];
 
   # The Pypi tarball doesn't include tests, and the GitHub source isn't
   # buildable until we bootstrap poetry, see
diff --git a/pkgs/development/python-modules/cloudflare/default.nix b/pkgs/development/python-modules/cloudflare/default.nix
index 802235d674b..7692bd1c9d6 100644
--- a/pkgs/development/python-modules/cloudflare/default.nix
+++ b/pkgs/development/python-modules/cloudflare/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, beautifulsoup4
 , requests
 , future
 , pyyaml
@@ -9,14 +10,15 @@
 
 buildPythonPackage rec {
   pname = "cloudflare";
-  version = "2.7.1";
+  version = "2.8.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0w8ihj9gram2d4wkbki8f6gr8hsd950b3wzfi1qqqm17lqfk8k7h";
+    sha256 = "a662990737d86984156a48f769e6528d947e90fd1561bb5e19d0036b59b9fd6f";
   };
 
   propagatedBuildInputs = [
+    beautifulsoup4
     requests
     future
     pyyaml
diff --git a/pkgs/development/python-modules/cloudpickle/default.nix b/pkgs/development/python-modules/cloudpickle/default.nix
index 551dd06f630..092a0f7c0b1 100644
--- a/pkgs/development/python-modules/cloudpickle/default.nix
+++ b/pkgs/development/python-modules/cloudpickle/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "cloudpickle";
-  version = "1.4.1";
+  version = "1.5.0";
   disabled = isPy27; # abandoned upstream
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0b6258a20a143603d53b037a20983016d4e978f554ec4f36b3d0895b947099ae";
+    sha256 = "820c9245cebdec7257211cbe88745101d5d6a042bca11336d78ebd4897ddbc82";
   };
 
   buildInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/cmd2/default.nix b/pkgs/development/python-modules/cmd2/default.nix
index 9d58c130582..f6055ae0144 100644
--- a/pkgs/development/python-modules/cmd2/default.nix
+++ b/pkgs/development/python-modules/cmd2/default.nix
@@ -6,11 +6,11 @@
 }:
 buildPythonPackage rec {
   pname = "cmd2";
-  version = "1.0.2";
+  version = "1.3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1f18plbc9yyvhn0js3d2bii9yld8zfl775gxsaw9jza5pmlg9ss2";
+    sha256 = "b6f6254def8ba479088702f97bca1b999c12e0c38ac5d82dc50a44db93c7108c";
   };
 
   LC_ALL="en_US.UTF-8";
diff --git a/pkgs/development/python-modules/cnvkit/default.nix b/pkgs/development/python-modules/cnvkit/default.nix
index f4f46f2dff0..6677ab06334 100644
--- a/pkgs/development/python-modules/cnvkit/default.nix
+++ b/pkgs/development/python-modules/cnvkit/default.nix
@@ -6,6 +6,7 @@
 , biopython
 , numpy
 , scipy
+, scikitlearn
 , pandas
 , matplotlib
 , reportlab
@@ -29,6 +30,7 @@ buildPythonPackage rec {
     biopython
     numpy
     scipy
+    scikitlearn
     pandas
     matplotlib
     reportlab
@@ -44,6 +46,8 @@ buildPythonPackage rec {
       --replace "pandas >= 0.20.1, < 0.25.0" "pandas"
   '';
 
+  pythonImportsCheck = [ "cnvlib" ];
+
   meta = with lib; {
     homepage = "https://cnvkit.readthedocs.io";
     description = "A Python library and command-line software toolkit to infer and visualize copy number from high-throughput DNA sequencing data";
diff --git a/pkgs/development/python-modules/codecov/default.nix b/pkgs/development/python-modules/codecov/default.nix
index 1151e395c69..8424a560d26 100644
--- a/pkgs/development/python-modules/codecov/default.nix
+++ b/pkgs/development/python-modules/codecov/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "codecov";
-  version = "2.1.4";
+  version = "2.1.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bf30a41f65e747b159e2a749d1f9c92042d358bba0905fd94d3def3a368e592c";
+    sha256 = "355fc7e0c0b8a133045f0d6089bde351c845e7b52b99fec5903b4ea3ab5f6aab";
   };
 
   checkInputs = [ unittest2 ]; # Tests only
diff --git a/pkgs/development/python-modules/colander/default.nix b/pkgs/development/python-modules/colander/default.nix
index 944a7818452..0492e271746 100644
--- a/pkgs/development/python-modules/colander/default.nix
+++ b/pkgs/development/python-modules/colander/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "colander";
-  version = "1.7.0";
+  version = "1.8.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d758163a22d22c39b9eaae049749a5cd503f341231a02ed95af480b1145e81f2";
+    sha256 = "54878d2ffd1afb020daca6cd5c6cfe6c0e44d0069fc825d57fe59aa6e4f6a499";
   };
 
   propagatedBuildInputs = [ translationstring iso8601 enum34 ];
diff --git a/pkgs/development/python-modules/coloredlogs/default.nix b/pkgs/development/python-modules/coloredlogs/default.nix
index 219e48ad664..c2a329e08f3 100644
--- a/pkgs/development/python-modules/coloredlogs/default.nix
+++ b/pkgs/development/python-modules/coloredlogs/default.nix
@@ -1,23 +1,25 @@
-{ lib, buildPythonPackage, fetchFromGitHub, stdenv, isPy3k, fetchpatch, humanfriendly, verboselogs, capturer, pytest, mock, utillinux }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, humanfriendly
+, verboselogs
+, capturer
+, pytest
+, mock
+, utillinux
+}:
 
 buildPythonPackage rec {
   pname = "coloredlogs";
-  version = "10.0";
+  version = "14.0";
 
   src = fetchFromGitHub {
     owner = "xolox";
     repo = "python-coloredlogs";
     rev = version;
-    sha256 = "0rdvp4dfvzhx7z7s2jdl3fv7x1hazgpy5gc7bcf05bnbv2iia54a";
+    sha256 = "0rnmxwrim4razlv4vi3krxk5lc5ksck6h5374j8avqwplika7q2x";
   };
 
-  # patch by risicle
-  patches = lib.optional (stdenv.isDarwin && isPy3k) (fetchpatch {
-    name = "darwin-py3-capture-fix.patch";
-    url = "https://github.com/xolox/python-coloredlogs/pull/74.patch";
-    sha256 = "0pk7k94iz0gdripw623vzdl4hd83vwhsfzshl8pbvh1n6swi0xx9";
-  });
-
   checkPhase = ''
     PATH=$PATH:$out/bin pytest . -k "not test_plain_text_output_format \
                                      and not test_auto_install"
diff --git a/pkgs/development/python-modules/colorful/default.nix b/pkgs/development/python-modules/colorful/default.nix
new file mode 100644
index 00000000000..c9378e329a3
--- /dev/null
+++ b/pkgs/development/python-modules/colorful/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "colorful";
+  version = "0.5.4";
+
+  # No tests in the Pypi package.
+  src = fetchFromGitHub {
+    owner = "timofurrer";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1fcz5v8b318a3dsdha4c874jsf3wmcw3f25bv2csixclyzacli98";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Terminal string styling done right, in Python.";
+    homepage = "http://github.com/timofurrer/colorful";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/pkgs/development/python-modules/colorlog/default.nix b/pkgs/development/python-modules/colorlog/default.nix
index aa39588f313..a7a04c1f605 100644
--- a/pkgs/development/python-modules/colorlog/default.nix
+++ b/pkgs/development/python-modules/colorlog/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "colorlog";
-  version = "4.1.0";
+  version = "4.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1lpk8zmfv8vz090h5d0hzb4n39wgasxdd3x3bpn3v1x1n9dfzaih";
+    sha256 = "066i7904vc7814gqnlprksf0ikz2dmviw93r2mr7sf53qci5irbm";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/configparser/4.nix b/pkgs/development/python-modules/configparser/4.nix
index 038ee49d2c6..9c6c631d9c2 100644
--- a/pkgs/development/python-modules/configparser/4.nix
+++ b/pkgs/development/python-modules/configparser/4.nix
@@ -23,4 +23,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     homepage = "https://github.com/jaraco/configparser";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/confluent-kafka/default.nix b/pkgs/development/python-modules/confluent-kafka/default.nix
index 6aab0f45b38..8048d6f78a2 100644
--- a/pkgs/development/python-modules/confluent-kafka/default.nix
+++ b/pkgs/development/python-modules/confluent-kafka/default.nix
@@ -1,12 +1,12 @@
 { stdenv, buildPythonPackage, fetchPypi, isPy3k, rdkafka, requests, avro3k, avro, futures, enum34 }:
 
 buildPythonPackage rec {
-  version = "1.4.2";
+  version = "1.5.0";
   pname = "confluent-kafka";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c2660807e5c1ecd723e280f76918794c3fd84595000c1e8de1f254f5d89a785c";
+    sha256 = "9ac812006000887f76c95b8a33a9f0b65845bf072fbc54a42a1acffd34e41120";
   };
 
   buildInputs = [ rdkafka requests ] ++ (if isPy3k then [ avro3k ] else [ enum34 avro futures ]) ;
diff --git a/pkgs/development/python-modules/construct/default.nix b/pkgs/development/python-modules/construct/default.nix
index 59b3eb38afd..cf9ab42f325 100644
--- a/pkgs/development/python-modules/construct/default.nix
+++ b/pkgs/development/python-modules/construct/default.nix
@@ -1,27 +1,26 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
-, six, pytest, arrow
+{ stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
+, six, pytestCheckHook, pytest-benchmark, numpy, arrow, ruamel_yaml
 }:
 
 buildPythonPackage rec {
   pname   = "construct";
-  version = "2.9.45";
+  version = "2.10.56";
 
+  disabled = pythonOlder "3.6";
+
+  # no tests in PyPI tarball
   src = fetchFromGitHub {
     owner  = pname;
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "0ig66xrzswpkhhmw123p2nvr15a9lxz54a1fmycfdh09327c1d3y";
+    sha256 = "1j4mqwyxkbdcsnnk5bbdcljv855w4fglaqc94q1xdzm8kgjxk4mr";
   };
 
-  propagatedBuildInputs = [ six ];
+  checkInputs = [ pytestCheckHook pytest-benchmark numpy arrow ruamel_yaml ];
 
-  checkInputs = [ pytest arrow ];
+  disabledTests = stdenv.lib.optionals stdenv.isDarwin [ "test_multiprocessing" ];
 
-  # TODO: figure out missing dependencies
-  doCheck = false;
-  checkPhase = ''
-    py.test -k 'not test_numpy and not test_gallery' tests
-  '';
+  pytestFlagsArray = [ "--benchmark-disable" ];
 
   meta = with stdenv.lib; {
     description = "Powerful declarative parser (and builder) for binary data";
diff --git a/pkgs/development/python-modules/cookiecutter/default.nix b/pkgs/development/python-modules/cookiecutter/default.nix
index 873cbe142d9..23bc8bcec52 100644
--- a/pkgs/development/python-modules/cookiecutter/default.nix
+++ b/pkgs/development/python-modules/cookiecutter/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     jinja2 future binaryornot click whichcraft poyo jinja2_time requests python-slugify
   ];
-  
+
   # requires network access for cloning git repos
   doCheck = false;
   checkPhase = ''
diff --git a/pkgs/development/python-modules/cornice/default.nix b/pkgs/development/python-modules/cornice/default.nix
index 442a06061ec..9897115353f 100644
--- a/pkgs/development/python-modules/cornice/default.nix
+++ b/pkgs/development/python-modules/cornice/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "cornice";
-  version = "5.0.1";
+  version = "5.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4efa77a0d0402f1b92481a53853d65936956a568d64a4f6a703b62feb5b8cf62";
+    sha256 = "4fcf3be295514e7e20fdd602fea8d204127bb02da2ff6bdbc8b6fba859ac9fd0";
   };
 
   propagatedBuildInputs = [ pyramid simplejson six venusian ];
diff --git a/pkgs/development/python-modules/cot/default.nix b/pkgs/development/python-modules/cot/default.nix
new file mode 100644
index 00000000000..8952d79634d
--- /dev/null
+++ b/pkgs/development/python-modules/cot/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, isPy3k
+, argcomplete, colorlog, pyvmomi, requests, verboselogs
+, psutil, pyopenssl, setuptools
+, mock, pytest, pytest-mock, pytestCheckHook, qemu
+}:
+
+buildPythonPackage rec {
+  pname = "cot";
+  version = "2.2.1";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "f4b3553415f90daac656f89d3e82e79b3d751793239bb173a683b4cc0ceb2635";
+  };
+
+  propagatedBuildInputs = [ colorlog pyvmomi requests verboselogs pyopenssl setuptools ]
+  ++ stdenv.lib.optional (pythonOlder "3.3") psutil;
+
+  checkInputs = [ mock pytestCheckHook pytest-mock qemu ];
+
+  # Many tests require network access and/or ovftool (https://code.vmware.com/web/tool/ovf)
+  # try enabling these tests with ovftool once/if it is added to nixpkgs
+  disabledTests = [
+    "HelperGenericTest"
+    "TestCOTAddDisk"
+    "TestCOTAddFile"
+    "TestCOTEditHardware"
+    "TestCOTEditProduct"
+    "TestCOTEditProperties"
+    "TestCOTInjectConfig"
+    "TestISO"
+    "TestOVFAPI"
+    "TestQCOW2"
+    "TestRAW"
+    "TestVMDKConversion"
+  ];
+
+
+  # argparse is part of the standardlib
+  prePatch = ''
+    substituteInPlace setup.py --replace "'argparse'," ""
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Common OVF Tool";
+    longDescription = ''
+      COT (the Common OVF Tool) is a tool for editing Open Virtualization Format (.ovf, .ova) virtual appliances,
+      with a focus on virtualized network appliances such as the Cisco CSR 1000V and Cisco IOS XRv platforms.
+    '';
+    homepage = "https://github.com/glennmatthews/cot";
+    license = licenses.mit;
+    maintainers = with maintainers; [ evanjs ];
+  };
+}
diff --git a/pkgs/development/python-modules/coverage/default.nix b/pkgs/development/python-modules/coverage/default.nix
index a22009ac9db..fa5f4bca8cd 100644
--- a/pkgs/development/python-modules/coverage/default.nix
+++ b/pkgs/development/python-modules/coverage/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "coverage";
-  version = "5.1";
+  version = "5.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ll0hr8g3szbxa4al6khhzi6l92a3vwyldj0085whl44s55gq2zr";
+    sha256 = "a34cb28e0747ea15e82d13e14de606747e9e484fb28d63c999483f5d5188e89b";
   };
 
   # No tests in archive
diff --git a/pkgs/development/python-modules/coveralls/default.nix b/pkgs/development/python-modules/coveralls/default.nix
index c81cd3c666a..64078693ac1 100644
--- a/pkgs/development/python-modules/coveralls/default.nix
+++ b/pkgs/development/python-modules/coveralls/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "coveralls";
-  version = "2.0.0";
+  version = "2.1.2";
   disabled = isPy27;
 
   # wanted by tests
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d213f5edd49053d03f0db316ccabfe17725f2758147afc9a37eaca9d8e8602b5";
+    sha256 = "4430b862baabb3cf090d36d84d331966615e4288d8a8c5957e0fd456d0dd8bd6";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/cppy/default.nix b/pkgs/development/python-modules/cppy/default.nix
index c6477c15533..fffa9174424 100644
--- a/pkgs/development/python-modules/cppy/default.nix
+++ b/pkgs/development/python-modules/cppy/default.nix
@@ -24,4 +24,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/nucleic/cppy";
     license = lib.licenses.bsd3;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/crashtest/default.nix b/pkgs/development/python-modules/crashtest/default.nix
index e4c7fb839f9..9981b56f2c0 100644
--- a/pkgs/development/python-modules/crashtest/default.nix
+++ b/pkgs/development/python-modules/crashtest/default.nix
@@ -1,13 +1,13 @@
-{ lib, buildPythonPackage, fetchFromGitHub, fetchPypi, isPy27, pytest }:
+{ lib, buildPythonPackage, fetchFromGitHub, fetchPypi, pythonAtLeast, pytest }:
 
 buildPythonPackage rec {
   pname = "crashtest";
-  version = "0.3.0";
-  disabled = isPy27;
+  version = "0.3.1";
+  disabled = !(pythonAtLeast "3.6");
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "056zzbznl3xfnbblfci8lvcam3h7k7va68vi6asrm4q0ck4nrh79";
+    sha256 = "42ca7b6ce88b6c7433e2ce47ea884e91ec93104a4b754998be498a8e6c3d37dd";
   };
 
   # has tests, but only on GitHub, however the pyproject build fails for me
diff --git a/pkgs/development/python-modules/crayons/default.nix b/pkgs/development/python-modules/crayons/default.nix
index 1810f790719..4cd9e90606b 100644
--- a/pkgs/development/python-modules/crayons/default.nix
+++ b/pkgs/development/python-modules/crayons/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "crayons";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "50e5fa729d313e2c607ae8bf7b53bb487652e10bd8e7a1e08c4bc8bf62755ffc";
+    sha256 = "dcb85b87aa03bb65bd3a073d012796b024cabeb086033e616759e2abb769440b";
   };
 
   propagatedBuildInputs = [ colorama ];
diff --git a/pkgs/development/python-modules/crc32c/default.nix b/pkgs/development/python-modules/crc32c/default.nix
index 6fd31d007f6..dd2c9059ed5 100644
--- a/pkgs/development/python-modules/crc32c/default.nix
+++ b/pkgs/development/python-modules/crc32c/default.nix
@@ -1,14 +1,14 @@
 { lib, buildPythonPackage, fetchFromGitHub }:
 
 buildPythonPackage rec {
-  version = "2.0";
+  version = "2.0.1";
   pname = "crc32c";
 
   src = fetchFromGitHub {
     owner = "ICRAR";
     repo = pname;
     rev = "v${version}";
-    sha256 = "15x1sj23n50qdjmi8mjq5wgf5jfn1yv78vjc59wplvl0s50w2dnk";
+    sha256 = "0vyac7pchh083h5qdjwhhacfq77frkrq1bjzsn51qv1vwcdrpnrf";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/credstash/default.nix b/pkgs/development/python-modules/credstash/default.nix
index 07547b280f5..1abd3f4ed20 100644
--- a/pkgs/development/python-modules/credstash/default.nix
+++ b/pkgs/development/python-modules/credstash/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, buildPythonPackage, fetchPypi, cryptography, boto3, pyyaml, docutils, nose }:
+{ stdenv, buildPythonPackage, fetchPypi, cryptography, boto3, pyyaml, docutils, nose
+, fetchpatch
+}:
 
 buildPythonPackage rec {
   pname = "credstash";
@@ -9,6 +11,12 @@ buildPythonPackage rec {
     sha256 = "6c04e8734ef556ab459018da142dd0b244093ef176b3be5583e582e9a797a120";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/fugue/credstash/commit/9c02ee43ed6e37596cafbca2fe80c532ec19d2d8.patch";
+      sha256 = "dlybrpfLK+PqwWWhH9iXgXHYysZGmcZAFGWNOwsG0xA=";
+    })
+  ];
   # The install phase puts an executable and a copy of the library it imports in
   # bin/credstash and bin/credstash.py, despite the fact that the library is also
   # installed to lib/python<version>/site-packages/credstash.py.
diff --git a/pkgs/development/python-modules/croniter/default.nix b/pkgs/development/python-modules/croniter/default.nix
index 42964fc797c..05e855b12dc 100644
--- a/pkgs/development/python-modules/croniter/default.nix
+++ b/pkgs/development/python-modules/croniter/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "croniter";
-  version = "0.3.32";
+  version = "0.3.34";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0d5bf45f12861c1b718c51bd6e2ab056da94e651bf22900658421cdde0ff7088";
+    sha256 = "7186b9b464f45cf3d3c83a18bc2344cc101d7b9fd35a05f2878437b14967e964";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cryptography/2.9.nix b/pkgs/development/python-modules/cryptography/2.9.nix
new file mode 100644
index 00000000000..6a6187e5693
--- /dev/null
+++ b/pkgs/development/python-modules/cryptography/2.9.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, isPy27
+, ipaddress
+, openssl
+, cryptography_vectors
+, darwin
+, packaging
+, six
+, pythonOlder
+, isPyPy
+, cffi
+, pytest
+, pretend
+, iso8601
+, pytz
+, hypothesis
+, enum34
+}:
+
+buildPythonPackage rec {
+  pname = "cryptography";
+  version = "2.9.2"; # Also update the hash in vectors.nix
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0af25w5mkd6vwns3r6ai1w5ip9xp0ms9s261zzssbpadzdr05hx0";
+  };
+
+  outputs = [ "out" "dev" ];
+
+  buildInputs = [ openssl ]
+             ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
+  propagatedBuildInputs = [
+    packaging
+    six
+  ] ++ stdenv.lib.optional (!isPyPy) cffi
+  ++ stdenv.lib.optionals isPy27 [ ipaddress enum34 ];
+
+  checkInputs = [
+    cryptography_vectors
+    hypothesis
+    iso8601
+    pretend
+    pytest
+    pytz
+  ];
+
+  checkPhase = ''
+    py.test --disable-pytest-warnings tests
+  '';
+
+  # IOKit's dependencies are inconsistent between OSX versions, so this is the best we
+  # can do until nix 1.11's release
+  __impureHostDeps = [ "/usr/lib" ];
+
+  meta = with stdenv.lib; {
+    description = "A package which provides cryptographic recipes and primitives";
+    longDescription = ''
+      Cryptography includes both high level recipes and low level interfaces to
+      common cryptographic algorithms such as symmetric ciphers, message
+      digests, and key derivation functions.
+      Our goal is for it to be your "cryptographic standard library". It
+      supports Python 2.7, Python 3.5+, and PyPy 5.4+.
+    '';
+    homepage = "https://github.com/pyca/cryptography";
+    changelog = "https://cryptography.io/en/latest/changelog/#v"
+      + replaceStrings [ "." ] [ "-" ] version;
+    license = with licenses; [ asl20 bsd3 psfl ];
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/pkgs/development/python-modules/cryptography/default.nix b/pkgs/development/python-modules/cryptography/default.nix
index 7219f48e6f9..d122c42e846 100644
--- a/pkgs/development/python-modules/cryptography/default.nix
+++ b/pkgs/development/python-modules/cryptography/default.nix
@@ -22,11 +22,11 @@
 
 buildPythonPackage rec {
   pname = "cryptography";
-  version = "2.9.2"; # Also update the hash in vectors.nix
+  version = "3.1"; # Also update the hash in vectors.nix
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a0c30272fb4ddda5f5ffc1089d7405b7a71b0b0f51993cb4e5dbb4590b2fc229";
+    sha256 = "021yccbqr446zh1c9l8yj79h9bgbd1cwv0ppj168w9y67i3rlh16";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/python-modules/cryptography/vectors-2.9.nix b/pkgs/development/python-modules/cryptography/vectors-2.9.nix
new file mode 100644
index 00000000000..096eab77bec
--- /dev/null
+++ b/pkgs/development/python-modules/cryptography/vectors-2.9.nix
@@ -0,0 +1,23 @@
+{ buildPythonPackage, fetchPypi, lib, cryptography }:
+
+buildPythonPackage rec {
+  pname = "cryptography_vectors";
+  # The test vectors must have the same version as the cryptography package:
+  version = cryptography.version;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1d4iykcv7cn9j399hczlxm5pzxmqy6d80h3j16dkjwlmv3293b4r";
+  };
+
+  # No tests included
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Test vectors for the cryptography package";
+    homepage = "https://cryptography.io/en/latest/development/test-vectors/";
+    # Source: https://github.com/pyca/cryptography/tree/master/vectors;
+    license = with licenses; [ asl20 bsd3 ];
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/pkgs/development/python-modules/cryptography/vectors.nix b/pkgs/development/python-modules/cryptography/vectors.nix
index 096eab77bec..99f3b6f8974 100644
--- a/pkgs/development/python-modules/cryptography/vectors.nix
+++ b/pkgs/development/python-modules/cryptography/vectors.nix
@@ -7,7 +7,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1d4iykcv7cn9j399hczlxm5pzxmqy6d80h3j16dkjwlmv3293b4r";
+    sha256 = "10hixzqf2ppw8j61f6p04rgnq8ra6pjml68330s5af8df8xbqq16";
   };
 
   # No tests included
diff --git a/pkgs/development/python-modules/cssselect2/default.nix b/pkgs/development/python-modules/cssselect2/default.nix
index b1969022d96..5eb65ce2fca 100644
--- a/pkgs/development/python-modules/cssselect2/default.nix
+++ b/pkgs/development/python-modules/cssselect2/default.nix
@@ -5,6 +5,9 @@
 , tinycss2
 , pytest
 , pytestrunner
+, pytestcov
+, pytest-flake8
+, pytest-isort
 }:
 
 buildPythonPackage rec {
@@ -17,19 +20,9 @@ buildPythonPackage rec {
     sha256 = "5c2716f06b5de93f701d5755a9666f2ee22cbcd8b4da8adddfc30095ffea3abc";
   };
 
-  # We're not interested in code quality tests
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace "pytest-cov" "" \
-      --replace "pytest-flake8" "" \
-      --replace "pytest-isort" "" \
-      --replace "--flake8" "" \
-      --replace "--isort" ""
-  '';
-
   propagatedBuildInputs = [ tinycss2 ];
 
-  checkInputs = [ pytest pytestrunner ];
+  checkInputs = [ pytest pytestrunner pytestcov pytest-flake8 pytest-isort ];
 
   meta = with lib; {
     description = "CSS selectors for Python ElementTree";
diff --git a/pkgs/development/python-modules/csvs-to-sqlite/default.nix b/pkgs/development/python-modules/csvs-to-sqlite/default.nix
index 3c4bfa0bff7..19d0fa4f7bb 100644
--- a/pkgs/development/python-modules/csvs-to-sqlite/default.nix
+++ b/pkgs/development/python-modules/csvs-to-sqlite/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "csvs-to-sqlite";
-  version = "1.0";
+  version = "1.1";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "simonw";
     repo = pname;
     rev = version;
-    sha256 = "0n80y9a6qhbhhbz64jdpscx0nha9jn9nygp9nkgszmw04ri5j5hm";
+    sha256 = "1xi9d8l1sf9vixzvqpz8lvhl6yqmz9x5659nvpsxinl317qzmc8m";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/cucumber-tag-expressions/default.nix b/pkgs/development/python-modules/cucumber-tag-expressions/default.nix
new file mode 100644
index 00000000000..789a58bb6a7
--- /dev/null
+++ b/pkgs/development/python-modules/cucumber-tag-expressions/default.nix
@@ -0,0 +1,21 @@
+{ lib, fetchPypi, buildPythonPackage, pytest, pytest-html }:
+
+buildPythonPackage rec {
+  pname = "cucumber-tag-expressions";
+  version = "3.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0kb8dq458sflwl2agb2v9hp04qwygslrhdps819vq27wc44jabxw";
+  };
+
+  checkInputs = [ pytest pytest-html ];
+  checkPhase = "pytest tests/*/*.py";
+
+  meta = with lib; {
+    homepage = "https://github.com/cucumber/tag-expressions-python";
+    description = "Provides tag-expression parser for cucumber/behave";
+    license = licenses.mit;
+    maintainers = with maintainers; [ maxxk ];
+  };
+}
diff --git a/pkgs/development/python-modules/cupy/default.nix b/pkgs/development/python-modules/cupy/default.nix
index 94ec349e038..2bbd20a16d7 100644
--- a/pkgs/development/python-modules/cupy/default.nix
+++ b/pkgs/development/python-modules/cupy/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "cupy";
-  version = "7.5.0";
+  version = "7.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "243254a1607e19ca55191c4cca4c0f2b143e1d5914e2a1bc9e3f715e7ccafc41";
+    sha256 = "b4032adf839f63bab7fc9f3e7066ef86abe0928e834aa5d132e4e7ce907951ed";
   };
 
   checkInputs = [
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   preConfigure = ''
       export CUDA_PATH=${cudatoolkit}
-  ''; 
+  '';
 
   propagatedBuildInputs = [
     cudatoolkit
diff --git a/pkgs/development/python-modules/cvxpy/default.nix b/pkgs/development/python-modules/cvxpy/default.nix
index 2d8fc384cc9..29b19414151 100644
--- a/pkgs/development/python-modules/cvxpy/default.nix
+++ b/pkgs/development/python-modules/cvxpy/default.nix
@@ -11,18 +11,19 @@
 , scs
 , six
   # Check inputs
+, pytestCheckHook
 , nose
 }:
 
 buildPythonPackage rec {
   pname = "cvxpy";
-  version = "1.1.1";
+  version = "1.1.5";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b8e90af9c0046394a73144ef1b93f1f69df1ba00779bb3d607add006179ba9d9";
+    sha256 = "7c826a874db2e4cefe54e63ebd3a3763d0d72e55a17c7d1cfec80008a87b8d81";
   };
 
   propagatedBuildInputs = [
@@ -36,15 +37,19 @@ buildPythonPackage rec {
     six
   ];
 
-  checkInputs = [ nose ];
-  checkPhase = ''
-    nosetests cvxpy
-  '';
+  checkInputs = [ pytestCheckHook nose ];
+  pytestFlagsArray = [ "./cvxpy" ];
+  # Disable the slowest benchmarking tests, cuts test time in half
+  disabledTests = [
+    "test_tv_inpainting"
+    "test_diffcp_sdp_example"
+  ];
 
   meta = with lib; {
     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}";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/pkgs/development/python-modules/cx_freeze/default.nix b/pkgs/development/python-modules/cx_freeze/default.nix
index 98d3460d757..e9292bfa737 100644
--- a/pkgs/development/python-modules/cx_freeze/default.nix
+++ b/pkgs/development/python-modules/cx_freeze/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "cx_Freeze";
-  version = "6.1";
+  version = "6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a0181bdb0ed16b292f4cfb8cd3afc84e956fc187431f25392bd981460dd73da0";
+    sha256 = "44bbbcea3196b79da77cc22637cb28a825b51182d32209e8a3f6cd4042edc247";
   };
 
   propagatedBuildInputs = [ ncurses ];
diff --git a/pkgs/development/python-modules/cx_oracle/default.nix b/pkgs/development/python-modules/cx_oracle/default.nix
index 6ba8f338638..cecb41c3d88 100644
--- a/pkgs/development/python-modules/cx_oracle/default.nix
+++ b/pkgs/development/python-modules/cx_oracle/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "cx_Oracle";
-  version = "7.3.0";
+  version = "8.0.0";
 
   buildInputs = [ odpic ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2e0da54e948b55e5c75fab14b391d58aa8b9be1eddfd9ec9a8a0e500bc8bfc7e";
+    sha256 = "cddc298301789c724de5817611f7bd38b4859b371928e2e85a9c37af222f73c8";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/python-modules/daphne/default.nix b/pkgs/development/python-modules/daphne/default.nix
index 49e6c3b3c47..80fa1c35d63 100644
--- a/pkgs/development/python-modules/daphne/default.nix
+++ b/pkgs/development/python-modules/daphne/default.nix
@@ -1,10 +1,10 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchFromGitHub, fetchpatch
+{ stdenv, buildPythonPackage, isPy3k, fetchFromGitHub
 , asgiref, autobahn, twisted, pytestrunner
-, hypothesis, pytest, pytest-asyncio
+, hypothesis, pytest, pytest-asyncio, service-identity, pyopenssl
 }:
 buildPythonPackage rec {
   pname = "daphne";
-  version = "2.3.0";
+  version = "2.5.0";
 
   disabled = !isPy3k;
 
@@ -12,20 +12,12 @@ buildPythonPackage rec {
     owner = "django";
     repo = pname;
     rev = version;
-    sha256 = "020afrvbnid13gkgjpqznl025zpynisa96kybmf8q7m3wp1iq1nl";
+    sha256 = "0qkhmblj3a5s3z65cgz46xsvq1b6x4m3kr6aljjnxnv7hcwib02n";
   };
 
-  patches = [
-    # Fix compatibility with Hypothesis 4. See: https://github.com/django/daphne/pull/261
-    (fetchpatch {
-      url = "https://github.com/django/daphne/commit/2df5096c5b63a791c209e12198ad89c998869efd.patch";
-      sha256 = "0046krzcn02mihqmsjd80kk5h5flv44nqxpapa17g6dvq3jnb97n";
-    })
-  ];
-
   nativeBuildInputs = [ pytestrunner ];
 
-  propagatedBuildInputs = [ asgiref autobahn twisted ];
+  propagatedBuildInputs = [ asgiref autobahn twisted service-identity pyopenssl ];
 
   checkInputs = [ hypothesis pytest pytest-asyncio ];
 
diff --git a/pkgs/development/python-modules/dash-core-components/default.nix b/pkgs/development/python-modules/dash-core-components/default.nix
index a0dec64906e..b3f2ed0629f 100644
--- a/pkgs/development/python-modules/dash-core-components/default.nix
+++ b/pkgs/development/python-modules/dash-core-components/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "dash_core_components";
-  version = "1.10.1";
+  version = "1.10.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02115plwhvyrmal01xp2964w8psysr2kf4ink8mh9z7kmda98l68";
+    sha256 = "6152346ff2ac8a7fcdb76c8b8acbf3ee4e72f3822cd2a02a9f3a963db66f94a3";
   };
 
   # No tests in archive
diff --git a/pkgs/development/python-modules/dash-renderer/default.nix b/pkgs/development/python-modules/dash-renderer/default.nix
index 8cb9250f34d..7221d47e375 100644
--- a/pkgs/development/python-modules/dash-renderer/default.nix
+++ b/pkgs/development/python-modules/dash-renderer/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "dash_renderer";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14fp66vasfag1bss09qyjnqa000g56q7vcap3ig57xycflks4c3y";
+    sha256 = "8e9c0c0c2efb8ea562489c37665417cd608c30bca20425ac4d847420b5bbc128";
   };
 
   # No tests in archive
diff --git a/pkgs/development/python-modules/dash-table/default.nix b/pkgs/development/python-modules/dash-table/default.nix
index 8cdf0408dee..bcf0a8f4e43 100644
--- a/pkgs/development/python-modules/dash-table/default.nix
+++ b/pkgs/development/python-modules/dash-table/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "dash_table";
-  version = "4.8.1";
+  version = "4.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16q0d9fidllxm7p51i5p4vzknnc09d114zqw3f4a2spr7llga7xj";
+    sha256 = "2f19000051730291100cd3a79b13fa62c478aea7908f2e4323c13b90f09e3320";
   };
 
   # No tests in archive
diff --git a/pkgs/development/python-modules/dash/default.nix b/pkgs/development/python-modules/dash/default.nix
index 3757ff47408..eed9864d5c8 100644
--- a/pkgs/development/python-modules/dash/default.nix
+++ b/pkgs/development/python-modules/dash/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "dash";
-  version = "1.13.3";
+  version = "1.14.0";
 
   src = fetchFromGitHub {
     owner = "plotly";
     repo = pname;
     rev = "v${version}";
-    sha256 = "131p725rc731ynksp12h9j1faq3vl51d5p64ln22r7zx4pvahss5";
+    sha256 = "1f7gal9x0bjsmwxlbvlkwfwz1cyyg5d0n6jh4399wkjilpd966d5";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dask-gateway-server/default.nix b/pkgs/development/python-modules/dask-gateway-server/default.nix
new file mode 100644
index 00000000000..9d28d267191
--- /dev/null
+++ b/pkgs/development/python-modules/dask-gateway-server/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, aiohttp
+, colorlog
+, cryptography
+, traitlets
+, go
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "dask-gateway-server";
+  # update dask-gateway-server lock step with dask-gateway
+  version = "0.8.0";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "272134933b7e2068cd89a17a5012c76a29fbd9e40a78164345a2b15353d4b40a";
+  };
+
+  nativeBuildInputs = [
+    go
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    colorlog
+    cryptography
+    traitlets
+  ];
+
+  preBuild = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  # tests requires cluster for testing
+  doCheck = false;
+
+  pythonImportsCheck = [ "dask_gateway_server" ];
+
+  meta = with lib; {
+    description = "A multi-tenant server for securely deploying and managing multiple Dask clusters";
+    homepage = "https://gateway.dask.org/";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/dask-gateway/default.nix b/pkgs/development/python-modules/dask-gateway/default.nix
new file mode 100644
index 00000000000..8a4fe9e263a
--- /dev/null
+++ b/pkgs/development/python-modules/dask-gateway/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, aiohttp
+, dask
+, distributed
+}:
+
+buildPythonPackage rec {
+  pname = "dask-gateway";
+  # update dask-gateway lock step with dask-gateway-server
+  version = "0.8.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "519818f3598ddd726882c5a6bf7053941613d8517b80e8a2c28467e30d57da9b";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    dask
+    distributed
+  ];
+
+  # tests requires cluster for testing
+  doCheck = false;
+
+  pythonImportsCheck = [ "dask_gateway" ];
+
+  meta = with lib; {
+    description = "A client library for interacting with a dask-gateway server";
+    homepage = "https://gateway.dask.org/";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/dask-image/default.nix b/pkgs/development/python-modules/dask-image/default.nix
index 48a6a73af67..f119cf2b0b8 100644
--- a/pkgs/development/python-modules/dask-image/default.nix
+++ b/pkgs/development/python-modules/dask-image/default.nix
@@ -1,25 +1,43 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , dask
 , numpy, toolz # dask[array]
 , scipy
 , pims
 , pytest
+, pytest-flake8
 , scikitimage
 }:
 
 buildPythonPackage rec {
-  version = "0.2.0";
+  version = "0.3.0";
   pname = "dask-image";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bece2ea347f963dc0168c7d5fdfd11e51b47d9c857d3bc56144d7c146964a23f";
+    sha256 = "15svy8y57i30878pijyd0pxn10bnk7ffmmgwva5rpip4b7grsgv0";
   };
 
-  checkInputs = [ pytest scikitimage ];
+  nativeBuildInputs = [ pytest-flake8 ];
   propagatedBuildInputs = [ dask numpy toolz scipy pims ];
+  checkInputs = [
+    pytest
+    scikitimage
+  ];
+
+  # ignore errors from newer versions of flake8
+  prePatch = ''
+    substituteInPlace setup.cfg \
+      --replace "docs/conf.py,versioneer.py" \
+        "docs/conf.py,versioneer.py,dask_image/ndfilters/_utils.py"
+  '';
+
+  # scikit.external is not exported
+  checkPhase = ''
+    pytest --ignore=tests/test_dask_image/
+  '';
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/dask/dask-image";
diff --git a/pkgs/development/python-modules/dask-ml/default.nix b/pkgs/development/python-modules/dask-ml/default.nix
index 7aca68b396c..d4a6663e7a5 100644
--- a/pkgs/development/python-modules/dask-ml/default.nix
+++ b/pkgs/development/python-modules/dask-ml/default.nix
@@ -20,13 +20,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.5.0";
+  version = "1.6.0";
   pname = "dask-ml";
   disabled = pythonOlder "3.6"; # >= 3.6
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8a9879b7d1642ed8cd48115d81f92a246eb7ffeadc42748053c5339a56f569b4";
+    sha256 = "ce686b7fd49b3f876d651c87e8468ad71bcd2707399140d6baf198184c45d970";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dask-mpi/default.nix b/pkgs/development/python-modules/dask-mpi/default.nix
index 741e39423a9..2794bcba7ae 100644
--- a/pkgs/development/python-modules/dask-mpi/default.nix
+++ b/pkgs/development/python-modules/dask-mpi/default.nix
@@ -9,12 +9,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.0.0";
+  version = "2.21.0";
   pname = "dask-mpi";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "774cd2d69e5f7154e1fa133c22498062edd31507ffa2ea19f4ab4d8975c27bc3";
+    sha256 = "76e153fc8c58047d898970b33ede0ab1990bd4e69cc130c6627a96f11b12a1a7";
   };
 
   checkInputs = [ pytest requests ];
diff --git a/pkgs/development/python-modules/dask-xgboost/default.nix b/pkgs/development/python-modules/dask-xgboost/default.nix
index 9b9388e56c7..9730ca8a2fe 100644
--- a/pkgs/development/python-modules/dask-xgboost/default.nix
+++ b/pkgs/development/python-modules/dask-xgboost/default.nix
@@ -9,12 +9,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.1.10";
+  version = "0.1.11";
   pname = "dask-xgboost";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "454c47ccf64315d35beeca32c7cedf20d8a8d42471d5e6ce0c51f4af0a6e021e";
+    sha256 = "3fbe1bf4344dc74edfbe9f928c7e3e6acc26dc57cefd8da8ae56a15469c6941c";
   };
 
   checkInputs = [ pytest scikitlearn ];
diff --git a/pkgs/development/python-modules/dask/default.nix b/pkgs/development/python-modules/dask/default.nix
index 1b3a08aa997..d69ae77e1a6 100644
--- a/pkgs/development/python-modules/dask/default.nix
+++ b/pkgs/development/python-modules/dask/default.nix
@@ -11,11 +11,12 @@
 , dill
 , pandas
 , partd
+, pytest_xdist
 }:
 
 buildPythonPackage rec {
   pname = "dask";
-  version = "2.14.0";
+  version = "2.22.0";
 
   disabled = pythonOlder "3.5";
 
@@ -23,13 +24,16 @@ buildPythonPackage rec {
     owner = "dask";
     repo = pname;
     rev = version;
-    sha256 = "0kj46pwzvdw8ii1h45y48wxvjid89yp4cfak2h4b8z8xic73fqgj";
+    sha256 = "08nvxj81cz9x92dh2gbmm4imkr8cfljfi2hxkballv2ygwcbzg8g";
   };
 
   checkInputs = [
     pytestCheckHook
+    pytest_xdist # takes >10mins to run single-threaded
   ];
 
+  pytestFlagsArray = [ "-n $NIX_BUILD_CORES" ];
+
   dontUseSetuptoolsCheck = true;
 
   propagatedBuildInputs = [
@@ -55,6 +59,8 @@ buildPythonPackage rec {
   disabledTests = [
     "test_argwhere_str"
     "test_count_nonzero_str"
+    "rolling_methods"  # floating percision error ~0.1*10^8 small
+    "num_workers_config" # flaky
   ];
 
   meta = {
diff --git a/pkgs/development/python-modules/databricks-connect/default.nix b/pkgs/development/python-modules/databricks-connect/default.nix
new file mode 100644
index 00000000000..59ebd4ef114
--- /dev/null
+++ b/pkgs/development/python-modules/databricks-connect/default.nix
@@ -0,0 +1,32 @@
+{ lib, jdk, buildPythonPackage, fetchPypi, six, py4j }:
+
+buildPythonPackage rec {
+  pname = "databricks-connect";
+  version = "7.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "996a9d0f271f6c7edbd2d85b2efb6ff4e58d15222e80f87ca17fdbf224e17056";
+  };
+
+  sourceRoot = ".";
+
+  propagatedBuildInputs = [ py4j six jdk ];
+
+  # requires network access
+  doCheck = false;
+
+  preFixup = ''
+      substituteInPlace "$out/bin/find-spark-home" \
+      --replace find_spark_home.py .find_spark_home.py-wrapped
+  '';
+
+  pythonImportsCheck = [ "pyspark" "six" "py4j" ];
+
+  meta = with lib; {
+    description = "Client for connecting to remote Databricks clusters";
+    homepage = "https://pypi.org/project/databricks-connect";
+    license = licenses.databricks;
+    maintainers = with maintainers; [ kfollesdal ];
+  };
+}
diff --git a/pkgs/development/python-modules/dataclasses-json/default.nix b/pkgs/development/python-modules/dataclasses-json/default.nix
new file mode 100644
index 00000000000..36430a29ef0
--- /dev/null
+++ b/pkgs/development/python-modules/dataclasses-json/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, stringcase
+, typing-inspect
+, marshmallow-enum
+}:
+
+buildPythonPackage rec {
+  pname = "dataclasses-json";
+  version = "0.5.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "56ec931959ede74b5dedf65cf20772e6a79764d20c404794cce0111c88c085ff";
+  };
+
+  propagatedBuildInputs = [
+    stringcase
+    typing-inspect
+    marshmallow-enum
+  ];
+
+  meta = with lib; {
+    description = "Simple API for encoding and decoding dataclasses to and from JSON";
+    homepage = "https://github.com/lidatong/dataclasses-json";
+    license = licenses.mit;
+    maintainers = with maintainers; [ albakham ];
+  };
+}
diff --git a/pkgs/development/python-modules/datadog/default.nix b/pkgs/development/python-modules/datadog/default.nix
index 807ed5f9a3d..748c0a53521 100644
--- a/pkgs/development/python-modules/datadog/default.nix
+++ b/pkgs/development/python-modules/datadog/default.nix
@@ -1,21 +1,22 @@
-{ lib, buildPythonPackage, fetchPypi
-, decorator, requests, simplejson, pillow
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, decorator, requests, simplejson, pillow, typing
 , nose, mock, pytest, freezegun }:
 
 buildPythonPackage rec {
   pname = "datadog";
-  version = "0.36.0";
+  version = "0.38.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1kkbsrzxc2a6k319lh98qkinn99dzcqz8h4fm25q17dlgmc9gq9z";
+    sha256 = "401cd1dcf2d5de05786016a1c790bff28d1428d12ae1dbe11485f9cb5502939b";
   };
 
   postPatch = ''
     find . -name '*.pyc' -exec rm {} \;
   '';
 
-  propagatedBuildInputs = [ decorator requests simplejson pillow ];
+  propagatedBuildInputs = [ decorator requests simplejson pillow ]
+    ++ lib.optionals (pythonOlder "3.5") [ typing ];
 
   checkInputs = [ nose mock pytest freezegun ];
   checkPhase = ''
diff --git a/pkgs/development/python-modules/datasette/default.nix b/pkgs/development/python-modules/datasette/default.nix
index b5d9c3dfad6..5fa42c861ed 100644
--- a/pkgs/development/python-modules/datasette/default.nix
+++ b/pkgs/development/python-modules/datasette/default.nix
@@ -2,19 +2,22 @@
 , buildPythonPackage
 , fetchFromGitHub
 , aiofiles
+, asgi-csrf
 , click
 , click-default-group
 , janus
 , jinja2
 , hupper
+, mergedeep
 , pint
 , pluggy
+, python-baseconv
+, pyyaml
 , uvicorn
 # Check Inputs
 , pytestCheckHook
 , pytestrunner
 , pytest-asyncio
-, black
 , aiohttp
 , beautifulsoup4
 , asgiref
@@ -23,26 +26,30 @@
 
 buildPythonPackage rec {
   pname = "datasette";
-  version = "0.39";
+  version = "0.46";
 
   src = fetchFromGitHub {
     owner = "simonw";
     repo = "datasette";
     rev = version;
-    sha256 = "07d46512bc9sdan9lv39sf1bwlf7vf1bfhcsm825vk7sv7g9kczd";
+    sha256 = "0g4dfq5ykifa9628cb4i7gvx98p8hvb99gzfxk3bkvq1v9p4kcqq";
   };
 
   nativeBuildInputs = [ pytestrunner ];
 
   propagatedBuildInputs = [
     aiofiles
+    asgi-csrf
     click
     click-default-group
     janus
     jinja2
     hupper
+    mergedeep
     pint
     pluggy
+    python-baseconv
+    pyyaml
     uvicorn
     setuptools
   ];
@@ -52,7 +59,6 @@ buildPythonPackage rec {
     pytest-asyncio
     aiohttp
     beautifulsoup4
-    black
     asgiref
   ];
 
@@ -60,22 +66,17 @@ buildPythonPackage rec {
     substituteInPlace setup.py \
       --replace "click~=7.1.1" "click" \
       --replace "click-default-group~=1.2.2" "click-default-group" \
-      --replace "Jinja2~=2.10.3" "Jinja2" \
       --replace "hupper~=1.9" "hupper" \
       --replace "pint~=0.9" "pint" \
-      --replace "pluggy~=0.13.0" "pint" \
+      --replace "pluggy~=0.13.0" "pluggy" \
       --replace "uvicorn~=0.11" "uvicorn" \
-      --replace "aiofiles~=0.4.0" "aiofiles" \
-      --replace "janus~=0.4.0" "janus" \
       --replace "PyYAML~=5.3" "PyYAML"
   '';
 
-  # many tests require network access
+  # test_html is very slow
   # test_black fails on darwin
   dontUseSetuptoolsCheck = true;
   pytestFlagsArray = [
-    "--ignore=tests/test_api.py"
-    "--ignore=tests/test_csv.py"
     "--ignore=tests/test_html.py"
     "--ignore=tests/test_docs.py"
     "--ignore=tests/test_black.py"
@@ -84,6 +85,7 @@ buildPythonPackage rec {
     "facet"
     "_invalid_database" # checks error message when connecting to invalid database
   ];
+  pythonImportsCheck = [ "datasette" ];
 
   meta = with lib; {
     description = "An instant JSON API for your SQLite databases";
diff --git a/pkgs/development/python-modules/datashader/default.nix b/pkgs/development/python-modules/datashader/default.nix
index b5ae4a4c437..d1e2eb3b24a 100644
--- a/pkgs/development/python-modules/datashader/default.nix
+++ b/pkgs/development/python-modules/datashader/default.nix
@@ -30,11 +30,11 @@
 
 buildPythonPackage rec {
   pname = "datashader";
-  version = "0.11.0";
+  version = "0.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05p81aff7x70yj8llclclgz6klvfzqixwxfng6awn3y5scv18w40";
+    sha256 = "b1f80415f72f92ccb660aaea7b2881ddd35d07254f7c44101709d42e819d6be6";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dateparser/default.nix b/pkgs/development/python-modules/dateparser/default.nix
index aa3d5b3e119..729827317c1 100644
--- a/pkgs/development/python-modules/dateparser/default.nix
+++ b/pkgs/development/python-modules/dateparser/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "dateparser";
-  version = "0.7.4";
+  version = "0.7.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fb5bfde4795fa4b179fe05c2c25b3981f785de26bec37e247dee1079c63d5689";
+    sha256 = "e875efd8c57c85c2d02b238239878db59ff1971f5a823457fcc69e493bf6ebfa";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/dbf/default.nix b/pkgs/development/python-modules/dbf/default.nix
index a2f7b603b84..9eb6e4f89a2 100644
--- a/pkgs/development/python-modules/dbf/default.nix
+++ b/pkgs/development/python-modules/dbf/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
     pname = "dbf";
-    version = "0.98.3";
+    version = "0.99.0";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "01d71vya2x87f3kl9x0s8xp0n7wixn6ksrd054y7idq3n1mjaxzh";
+      sha256 = "a4a7a8cdc113d840142d21a796c16c7d329ad35c48f17156446732c83ebc571a";
     };
 
     propagatedBuildInputs = [ aenum ] ++ stdenv.lib.optional (pythonOlder "3.4") enum34;
diff --git a/pkgs/development/python-modules/dbus/default.nix b/pkgs/development/python-modules/dbus/default.nix
index 855ee930b77..5d1fd9ef0be 100644
--- a/pkgs/development/python-modules/dbus/default.nix
+++ b/pkgs/development/python-modules/dbus/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "dbus-python";
-  version = "1.2.12";
+  version = "1.2.16";
   format = "other";
 
   outputs = [ "out" "dev" ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0q7jmldv0bxxqnbj63cd7i81vs6y85xys4r0n63z4n2y9wndxm6d";
+    sha256 = "196m5rk3qzw5nkmgzjl7wmq0v7vpwfhh8bz2sapdi5f9hqfqy8qi";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/debts/default.nix b/pkgs/development/python-modules/debts/default.nix
new file mode 100644
index 00000000000..cc571f05631
--- /dev/null
+++ b/pkgs/development/python-modules/debts/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, python
+, buildPythonPackage
+, fetchFromGitLab
+, isPy27
+, jinja2
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "debts";
+  version = "0.5";
+
+  # pypi does not ship tests
+  src = fetchFromGitLab {
+    domain = "framagit.org";
+    owner = "almet";
+    repo = "debts";
+    rev = "d887bd8b340172d1c9bbcca6426529b8d1c2a241"; # no tags
+    sha256 = "1d66nka81mv9c07mki78lp5hdajqv4cq6aq2k7bh3mhkc5hwnwlg";
+  };
+
+  disabled = isPy27;
+
+  propagatedBuildInputs = [ jinja2 ];
+
+  checkInputs = [ pytest ];
+
+  # for some reason tests only work if the module is properly installed
+  checkPhase = ''
+    rm -r debts
+    export PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
+    py.test tests
+  '';
+
+  meta = with lib; {
+    inherit (src.meta) homepage;
+    description = "A simple library and cli-tool to help you solve some debts settlement scenarios";
+    license = licenses.beerware;
+    maintainers = [ maintainers.symphorien ];
+  };
+}
diff --git a/pkgs/development/python-modules/debugpy/default.nix b/pkgs/development/python-modules/debugpy/default.nix
new file mode 100644
index 00000000000..2d11dee64a8
--- /dev/null
+++ b/pkgs/development/python-modules/debugpy/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub
+, substituteAll, gdb
+, colorama, django, flask, gevent, psutil, pytest
+, pytest-timeout, pytest_xdist, requests
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "debugpy";
+  version = "1.0.0b12";
+
+  src = fetchFromGitHub {
+    owner = "Microsoft";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0sz33aq5qldl7kh4qjf5w3d08l9s77ipcj4i9wfklj8f6vf9w1wh";
+  };
+
+  patches = [
+    # Hard code GDB path (used to attach to process)
+    (substituteAll {
+      src = ./hardcode-gdb.patch;
+      inherit gdb;
+    })
+
+    # Fix importing debugpy in:
+    # - test_nodebug[module-launch(externalTerminal)]
+    # - test_nodebug[module-launch(integratedTerminal)]
+    #
+    # NOTE: The import failures seen in these tests without the patch
+    # will be seen if a user "installs" debugpy by adding it to PYTHONPATH.
+    # To avoid this issue, debugpy should be installed using python.withPackages:
+    # python.withPackages (ps: with ps; [ debugpy ])
+    ./fix-test-pythonpath.patch
+  ];
+
+  # Remove pre-compiled "attach" libraries and recompile for host platform
+  # Compile flags taken from linux_and_mac/compile_linux.sh & linux_and_mac/compile_mac.sh
+  preBuild = ''(
+    set -x
+    cd src/debugpy/_vendored/pydevd/pydevd_attach_to_process
+    rm *.so *.dylib *.dll *.exe *.pdb
+    ${stdenv.cc}/bin/c++ linux_and_mac/attach.cpp -Ilinux_and_mac -fPIC -nostartfiles ${{
+      "x86_64-linux"  = "-shared -m64 -o attach_linux_amd64.so";
+      "i686-linux"    = "-shared -m32 -o attach_linux_x86.so";
+      "x86_64-darwin" = "-std=c++11 -lc -D_REENTRANT -dynamiclib -arch x86_64 -o attach_x86_64.dylib";
+      "i686-darwin"   = "-std=c++11 -lc -D_REENTRANT -dynamiclib -arch i386 -o attach_x86.dylib";
+    }.${stdenv.hostPlatform.system}}
+  )'';
+
+  checkInputs = [
+    colorama django flask gevent psutil pytest
+    pytest-timeout pytest_xdist requests
+  ];
+
+  # Override default arguments in pytest.ini
+  checkPhase = "pytest --timeout 0 -n $NIX_BUILD_CORES"
+               # gevent fails to import zope.interface with Python 2.7
+               + stdenv.lib.optionalString isPy27 " -k 'not test_gevent'";
+
+  meta = with stdenv.lib; {
+    description = "An implementation of the Debug Adapter Protocol for Python";
+    homepage = "https://github.com/microsoft/debugpy";
+    license = licenses.mit;
+    maintainers = with maintainers; [ metadark ];
+    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "i686-darwin" ];
+  };
+}
diff --git a/pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch b/pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch
new file mode 100644
index 00000000000..751351e03cd
--- /dev/null
+++ b/pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/debug/session.py b/tests/debug/session.py
+index 2b39106..6d45a10 100644
+--- a/tests/debug/session.py
++++ b/tests/debug/session.py
+@@ -625,6 +625,7 @@ class Session(object):
+         if "PYTHONPATH" in self.config.env:
+             # If specified, launcher will use it in lieu of PYTHONPATH it inherited
+             # from the adapter when spawning debuggee, so we need to adjust again.
++            self.config.env.prepend_to("PYTHONPATH", os.environ["PYTHONPATH"])
+             self.config.env.prepend_to("PYTHONPATH", DEBUGGEE_PYTHONPATH.strpath)
+         return self._request_start("launch")
+ 
diff --git a/pkgs/development/python-modules/debugpy/hardcode-gdb.patch b/pkgs/development/python-modules/debugpy/hardcode-gdb.patch
new file mode 100644
index 00000000000..780cb1aed1c
--- /dev/null
+++ b/pkgs/development/python-modules/debugpy/hardcode-gdb.patch
@@ -0,0 +1,13 @@
+diff --git a/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py b/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py
+index 6d031b4..ecf21f2 100644
+--- a/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py
++++ b/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py
+@@ -293,7 +293,7 @@ def run_python_code_linux(pid, python_code, connect_debugger_tracing=False, show
+     is_debug = 0
+     # Note that the space in the beginning of each line in the multi-line is important!
+     cmd = [
+-        'gdb',
++        '@gdb@/bin/gdb',
+         '--nw',  # no gui interface
+         '--nh',  # no ~/.gdbinit
+         '--nx',  # no .gdbinit
diff --git a/pkgs/development/python-modules/decorator/default.nix b/pkgs/development/python-modules/decorator/default.nix
index b9e8e25ac43..8e8fd28f0b5 100644
--- a/pkgs/development/python-modules/decorator/default.nix
+++ b/pkgs/development/python-modules/decorator/default.nix
@@ -1,25 +1,17 @@
 { lib
 , buildPythonPackage
-, fetchpatch
 , fetchPypi
 }:
 
 buildPythonPackage rec {
   pname = "decorator";
-  version = "4.4.1";
+  version = "4.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "54c38050039232e1db4ad7375cfce6748d7b41c29e95a081c8a6d2c30364a2ce";
+    sha256 = "1rxzhk5zwiggk45hl53zydvy70lk654kg0nc1p54090p402jz9p3";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/micheles/decorator/commit/3265f2755d16c0a3dfc9f1feee39722ddc11ee80.patch";
-      sha256 = "1q5nmff30vccqq5swf2ivm8cn7x3lhz8c9qpj0zddgs2y7fw8syz";
-    })
-  ];
-
   meta = with lib; {
     homepage = "https://pypi.python.org/pypi/decorator";
     description = "Better living through Python with decorators";
diff --git a/pkgs/development/python-modules/deepdiff/default.nix b/pkgs/development/python-modules/deepdiff/default.nix
index 228d5a78239..e8d2731eb55 100644
--- a/pkgs/development/python-modules/deepdiff/default.nix
+++ b/pkgs/development/python-modules/deepdiff/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , mock
 , jsonpickle
+, mmh3
 , ordered-set
 , numpy
 , pytestCheckHook
@@ -10,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "deepdiff";
-  version = "4.3.2";
+  version = "5.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "91360be1d9d93b1d9c13ae9c5048fa83d9cff17a88eb30afaa0d7ff2d0fee17d";
+    sha256 = "e2b74af4da0ef9cd338bb6e8c97242c1ec9d81fcb28298d7bb24acdc19ea79d7";
   };
 
   # # Extra packages (may not be necessary)
@@ -24,14 +25,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # skipped tests require murmur module
-    "test_prep_str_murmur3_64bit"
-    "test_prep_str_murmur3_128bit"
-  ];
-
   propagatedBuildInputs = [
     jsonpickle
+    mmh3
     ordered-set
   ];
 
diff --git a/pkgs/development/python-modules/deepmerge/default.nix b/pkgs/development/python-modules/deepmerge/default.nix
new file mode 100644
index 00000000000..1cdf0449c68
--- /dev/null
+++ b/pkgs/development/python-modules/deepmerge/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, vcver }:
+
+buildPythonPackage rec {
+  pname = "deepmerge";
+  version = "0.1.0";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0d1ab9lxwymqxxd58j50id1wib48xym3ss5xw172i2jfwwwzfdrx";
+  };
+
+  propagatedBuildInputs = [
+    vcver
+  ];
+
+  # depends on https://pypi.org/project/uranium/
+  doCheck = false;
+
+  pythonImportsCheck = [ "deepmerge" ];
+
+  meta = with lib; {
+    description = "A toolset to deeply merge python dictionaries.";
+    homepage = "http://deepmerge.readthedocs.io/en/latest/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/defcon/default.nix b/pkgs/development/python-modules/defcon/default.nix
new file mode 100644
index 00000000000..25c59029992
--- /dev/null
+++ b/pkgs/development/python-modules/defcon/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, fonttools
+, pytest, pytestrunner, lxml, fs, unicodedata2, fontpens
+}:
+
+buildPythonPackage rec {
+  pname = "defcon";
+  version = "0.7.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1lfqsvxmq1j0nvp26gidnqkj1dyxv7jalc6i7fz1r3nc7niflrqr";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [
+    fonttools
+  ];
+
+  checkInputs = [
+    pytest
+    pytestrunner
+    lxml
+    fs
+    unicodedata2
+    fontpens
+  ];
+
+  meta = with lib; {
+    description = "A set of UFO based objects for use in font editing applications";
+    homepage = "https://github.com/robotools/defcon";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/deform/default.nix b/pkgs/development/python-modules/deform/default.nix
index 8ede226d38b..a3fd0f2b8f5 100644
--- a/pkgs/development/python-modules/deform/default.nix
+++ b/pkgs/development/python-modules/deform/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "deform";
-  version = "2.0.8";
+  version = "2.0.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8936b70c622406eb8c8259c88841f19eb2996dffcf2bac123126ada851da7271";
+    sha256 = "2f4e98a5b5bdcdfff9a62f88bd17c7ee378b7c8be61738797442eed5b961d3d2";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/denonavr/default.nix b/pkgs/development/python-modules/denonavr/default.nix
index 643556d8793..58099a98bdc 100644
--- a/pkgs/development/python-modules/denonavr/default.nix
+++ b/pkgs/development/python-modules/denonavr/default.nix
@@ -1,18 +1,18 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy27, requests
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27, requests, netifaces
 , pytest, testtools, requests-mock }:
 
 buildPythonPackage rec {
   pname = "denonavr";
-  version = "0.8.1";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = "scarface-4711";
     repo = "denonavr";
     rev = version;
-    sha256 = "12g9w5674fmyf3f4plbhvpxpyhzw32pzwl0hvwswzrc2823xl6vx";
+    sha256 = "0s8v918n6xn44r2mrq5hqbf0znpz64clq7a1jakkgz9py8bi6vnn";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [ requests netifaces ];
 
   doCheck = !isPy27;
   checkInputs = [ pytest testtools requests-mock ];
diff --git a/pkgs/development/python-modules/dependency-injector/default.nix b/pkgs/development/python-modules/dependency-injector/default.nix
index 63fad6467c2..ea0ef783573 100644
--- a/pkgs/development/python-modules/dependency-injector/default.nix
+++ b/pkgs/development/python-modules/dependency-injector/default.nix
@@ -9,11 +9,11 @@ in
 
 buildPythonPackage rec {
   pname = "dependency-injector";
-  version = "3.15.6";
+  version = "3.30.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fcca1464f567d902983bff507b9e2e3fda0f932ee009e36f74ed5b8c348d17f4";
+    sha256 = "717388a9346883eb5def3e96def7275763f2a607cac48c272f352e3834e0bd0d";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/detox/default.nix b/pkgs/development/python-modules/detox/default.nix
deleted file mode 100644
index 5353d4361e3..00000000000
--- a/pkgs/development/python-modules/detox/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi
-, pytest, tox, py, eventlet }:
-
-buildPythonPackage rec {
-  pname = "detox";
-  version = "0.19";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "e650f95f0c7f5858578014b3b193e5dac76c89285c1bbe4bae598fd641bf9cd3";
-  };
-
-  buildInputs = [ pytest ];
-  propagatedBuildInputs = [ tox py eventlet ];
-
-  checkPhase = ''
-    py.test
-  '';
-
-  # eventlet timeout, and broken invokation 3.5
-  doCheck = false;
-
-  meta = with stdenv.lib; {
-    description = "What is detox?";
-    homepage = "https://bitbucket.org/hpk42/detox";
-    license = licenses.mit;
-    # detox is unmaintained and incompatible with tox > 3.6
-    broken = true;
-  };
-}
diff --git a/pkgs/development/python-modules/diff-match-patch/default.nix b/pkgs/development/python-modules/diff-match-patch/default.nix
index ba33eeda386..3e05deb5e2d 100644
--- a/pkgs/development/python-modules/diff-match-patch/default.nix
+++ b/pkgs/development/python-modules/diff-match-patch/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "diff-match-patch";
-  version = "20181111";
+  version = "20200713";
 
   meta = {
     homepage = "https://github.com/diff-match-patch-python/diff-match-patch";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a809a996d0f09b9bbd59e9bbd0b71eed8c807922512910e05cbd3f9480712ddb";
+    sha256 = "da6f5a01aa586df23dfc89f3827e1cafbb5420be9d87769eeb079ddfd9477a18";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/discordpy/default.nix b/pkgs/development/python-modules/discordpy/default.nix
index 47419ec559e..fd31bb40a92 100644
--- a/pkgs/development/python-modules/discordpy/default.nix
+++ b/pkgs/development/python-modules/discordpy/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "discord.py";
-  version = "1.3.3";
+  version = "1.3.4";
   disabled = pythonOlder "3.5.3";
 
   # only distributes wheels on pypi now
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "Rapptz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ld92vh7kjk3f02nbqyib68844yi4p2kmkyir6v9wi00y1l287l3";
+    sha256 = "1i4h6vq681x8s05wi0n3ykavsxjh9hxdxn6banwjcqzhxzkyhsxi";
   };
 
   propagatedBuildInputs = [ aiohttp websockets ];
diff --git a/pkgs/development/python-modules/distlib/default.nix b/pkgs/development/python-modules/distlib/default.nix
index b9a92fb2cdb..af9b82e42dc 100644
--- a/pkgs/development/python-modules/distlib/default.nix
+++ b/pkgs/development/python-modules/distlib/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "distlib";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "08fyi2r246733vharl2yckw20rilci28r91mzrnnvcr638inw5if";
+    sha256 = "edf6116872c863e1aa9d5bb7cb5e05a022c519a4594dc703843343a9ddd9bff1";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/distributed/default.nix b/pkgs/development/python-modules/distributed/default.nix
index ba115121441..fe4213d13f0 100644
--- a/pkgs/development/python-modules/distributed/default.nix
+++ b/pkgs/development/python-modules/distributed/default.nix
@@ -27,12 +27,12 @@
 
 buildPythonPackage rec {
   pname = "distributed";
-  version = "2.18.0";
+  version = "2.23.0";
 
   # get full repository need conftest.py to run tests
   src = fetchPypi {
     inherit pname version;
-    sha256 = "902f098fb7558f035333804a5aeba2fb26a2a715388808205a17cbb2e02e0558";
+    sha256 = "469e505fd7ce75f600188bdb69a95641899d5b372f74246c8f308376b6929e9c";
   };
 
   checkInputs = [ pytest pytest-repeat pytest-timeout mock joblib ];
diff --git a/pkgs/development/python-modules/django-auth-ldap/default.nix b/pkgs/development/python-modules/django-auth-ldap/default.nix
index c419fff7902..84b9df28bce 100644
--- a/pkgs/development/python-modules/django-auth-ldap/default.nix
+++ b/pkgs/development/python-modules/django-auth-ldap/default.nix
@@ -1,7 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi, isPy27
-, ldap , django 
+, ldap , django
 , mock
 }:
 
@@ -14,8 +14,8 @@ buildPythonPackage rec {
     sha256 = "11af1773b08613339d2c3a0cec1308a4d563518f17b1719c3759994d0b4d04bf";
   };
 
-  propagatedBuildInputs = [ ldap django ]; 
-  checkInputs = [ mock ]; 
+  propagatedBuildInputs = [ ldap django ];
+  checkInputs = [ mock ];
 
   # django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings
   doCheck = false;
diff --git a/pkgs/development/python-modules/django-cleanup/default.nix b/pkgs/development/python-modules/django-cleanup/default.nix
index 37b0959b6b7..bb933fd0343 100644
--- a/pkgs/development/python-modules/django-cleanup/default.nix
+++ b/pkgs/development/python-modules/django-cleanup/default.nix
@@ -4,10 +4,10 @@
 
 buildPythonPackage rec {
   pname = "django-cleanup";
-  version = "4.0.0";
+  version = "5.0.0";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "195hkany3iwg4wb4cbdrdmanxcahjl87n8v03dbamanx2ya3yb21";
+    sha256 = "84f0c0e0a74545adae4c944a76ccf8fb0c195dddccf3b7195c59267abb7763dd";
   };
 
   checkInputs = [ django ];
diff --git a/pkgs/development/python-modules/django-cors-headers/default.nix b/pkgs/development/python-modules/django-cors-headers/default.nix
index 11c935df996..3614114a3d4 100644
--- a/pkgs/development/python-modules/django-cors-headers/default.nix
+++ b/pkgs/development/python-modules/django-cors-headers/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "django-cors-headers";
-  version = "3.3.0";
+  version = "3.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "73d654950b5f5e7e4f67c05183d2169d4f7518ceb87734eb0d68f9e43be59f1c";
+    sha256 = "f5218f2f0bb1210563ff87687afbf10786e080d8494a248e705507ebd92d7153";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/pkgs/development/python-modules/django-dynamic-preferences/default.nix b/pkgs/development/python-modules/django-dynamic-preferences/default.nix
index d472a595568..de3424c9fec 100644
--- a/pkgs/development/python-modules/django-dynamic-preferences/default.nix
+++ b/pkgs/development/python-modules/django-dynamic-preferences/default.nix
@@ -4,14 +4,14 @@
 
 buildPythonPackage rec {
   pname = "django-dynamic-preferences";
-  version = "1.9";
+  version = "1.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "407db27bf55d391c4c8a4944e0521f35eff82c2f2fd5a2fc843fb1b4cc1a31f4";
+    sha256 = "e4b2bb7b2563c5064ba56dd76441c77e06b850ff1466a386a1cd308909a6c7de";
   };
 
-  propagatedBuildInputs = [ six django persisting-theory ]; 
+  propagatedBuildInputs = [ six django persisting-theory ];
 
   # django.core.exceptions.ImproperlyConfigured: Requested setting DYNAMIC_PREFERENCES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings
   doCheck = false;
diff --git a/pkgs/development/python-modules/django-ipware/default.nix b/pkgs/development/python-modules/django-ipware/default.nix
index 4049f8722fc..940bd1f1cb8 100644
--- a/pkgs/development/python-modules/django-ipware/default.nix
+++ b/pkgs/development/python-modules/django-ipware/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "django-ipware";
-  version = "2.1.0";
+  version = "3.0.1";
 
   meta = {
     description = "A Django application to retrieve user's IP address";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a7c7a8fd019dbdc9c357e6e582f65034e897572fc79a7e467674efa8aef9d00b";
+    sha256 = "73a640a5bff00aa7503a35e92e462001cfabb07d73d649c262f117423beee953";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/pkgs/development/python-modules/django-maintenance-mode/default.nix b/pkgs/development/python-modules/django-maintenance-mode/default.nix
new file mode 100644
index 00000000000..2e433aa5d45
--- /dev/null
+++ b/pkgs/development/python-modules/django-maintenance-mode/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, buildPythonPackage, pytest, django }:
+
+buildPythonPackage rec {
+  pname = "django-maintenance-mode";
+  version = "0.14.0";
+
+  src = fetchFromGitHub {
+    owner = "fabiocaccamo";
+    repo = pname;
+    rev = version;
+    sha256 = "1k06fhqd8wyrkp795x5j2r328l2phqgg1m1qm7fh4l2qrha43aw6";
+  };
+
+  checkInputs = [ pytest ];
+
+  propagatedBuildInputs = [ django ];
+
+  meta = with stdenv.lib; {
+    description = "Shows a 503 error page when maintenance-mode is on";
+    homepage = "https://github.com/fabiocaccamo/django-maintenance-mode";
+    maintainers = with maintainers; [ mrmebelman ];
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/django-multiselectfield/default.nix b/pkgs/development/python-modules/django-multiselectfield/default.nix
index 3561f1d8c1c..046c60989a7 100644
--- a/pkgs/development/python-modules/django-multiselectfield/default.nix
+++ b/pkgs/development/python-modules/django-multiselectfield/default.nix
@@ -23,4 +23,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/goinnn/django-multiselectfield";
     license = lib.licenses.lgpl3;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/django-q/default.nix b/pkgs/development/python-modules/django-q/default.nix
index cf5a518c6d0..a81aa2a63cd 100644
--- a/pkgs/development/python-modules/django-q/default.nix
+++ b/pkgs/development/python-modules/django-q/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "django-q";
-  version = "1.2.3";
+  version = "1.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aa17950a75dc1fe4636b24ddba37ad3a7b660ce279b2f70f2a301135364fbe58";
+    sha256 = "de7077660ede36bfdd89ab9405d6393b598bb3e0bfed61f59a0a9074cc4942bb";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/django-widget-tweaks/default.nix b/pkgs/development/python-modules/django-widget-tweaks/default.nix
new file mode 100644
index 00000000000..99e3abda890
--- /dev/null
+++ b/pkgs/development/python-modules/django-widget-tweaks/default.nix
@@ -0,0 +1,25 @@
+{ buildPythonPackage, fetchFromGitHub, python, stdenv, django }:
+
+buildPythonPackage rec {
+  pname = "django-widget-tweaks";
+  version = "1.4.8";
+
+  src = fetchFromGitHub { # package from Pypi missing runtests.py
+    owner = "jazzband";
+    repo = pname;
+    rev = version;
+    sha256 = "00w1ja56dc7cyw7a3mph69ax6mkch1lsh4p98ijdhzfpjdy36rbg";
+  };
+
+  checkPhase = "${python.interpreter} runtests.py";
+  propagatedBuildInputs = [ django ];
+
+  meta = with stdenv.lib; {
+      description = "Tweak the form field rendering in templates, not in python-level form definitions.";
+      homepage = "https://github.com/jazzband/django-widget-tweaks";
+      license = licenses.mit;
+      maintainers = with maintainers; [
+          maxxk
+      ];
+  };
+}
diff --git a/pkgs/development/python-modules/django/1_11.nix b/pkgs/development/python-modules/django/1_11.nix
deleted file mode 100644
index b38962f4efa..00000000000
--- a/pkgs/development/python-modules/django/1_11.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, buildPythonPackage, fetchurl, substituteAll,
-  geos, gdal, pytz,
-  withGdal ? false
-}:
-
-buildPythonPackage rec {
-  pname = "Django";
-  version = "1.11.28";
-
-  src = fetchurl {
-    url = "https://www.djangoproject.com/m/releases/1.11/${pname}-${version}.tar.gz";
-    sha256 = "1ss1jyip7mlbfjn27m0j6wx80s8h4ksg6g5annkgwigp8xgy6g5k";
-  };
-
-  patches = stdenv.lib.optionals withGdal [
-    (substituteAll {
-      src = ./1.10-gis-libs.template.patch;
-      geos = geos;
-      gdal = gdal;
-      extension = stdenv.hostPlatform.extensions.sharedLibrary;
-    })
-  ];
-
-  propagatedBuildInputs = [ pytz ];
-
-  # too complicated to setup
-  doCheck = false;
-
-  meta = with stdenv.lib; {
-    description = "A high-level Python Web framework";
-    homepage = "https://www.djangoproject.com/";
-    license = licenses.bsd3;
-  };
-}
diff --git a/pkgs/development/python-modules/django/2_2.nix b/pkgs/development/python-modules/django/2_2.nix
index 42af34659c0..99f71b9d862 100644
--- a/pkgs/development/python-modules/django/2_2.nix
+++ b/pkgs/development/python-modules/django/2_2.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "2.2.13";
+  version = "2.2.15";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "103db5gmny6bkq9jgr2m6gdfy1n29bj2v87184y1zgpdmkv71ww4";
+    sha256 = "3e2f5d172215862abf2bac3138d8a04229d34dbd2d0dab42c6bf33876cc22323";
   };
 
   patches = stdenv.lib.optional withGdal
diff --git a/pkgs/development/python-modules/django_evolution/default.nix b/pkgs/development/python-modules/django_evolution/default.nix
index 7d53d458043..eac119ef01e 100644
--- a/pkgs/development/python-modules/django_evolution/default.nix
+++ b/pkgs/development/python-modules/django_evolution/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "django_evolution";
-  version = "0.7.8";
+  version = "2.0";
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "493ff2adad760990ce8cf87c13955af85d4dcff097427bc3619ed01672fac4a8";
+    sha256 = "a0bc983657de1b0bc5c8d29ddcbf7b6fb113685bf306ccc266cf22b8a77bd862";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/pkgs/development/python-modules/django_guardian/default.nix b/pkgs/development/python-modules/django_guardian/default.nix
index b03524aa590..364a5e12f52 100644
--- a/pkgs/development/python-modules/django_guardian/default.nix
+++ b/pkgs/development/python-modules/django_guardian/default.nix
@@ -4,11 +4,11 @@
 }:
 buildPythonPackage rec {
   pname = "django-guardian";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8cacf49ebcc1e545f0a8997971eec0fe109f5ed31fc2a569a7bf5615453696e2";
+    sha256 = "ed2de26e4defb800919c5749fb1bbe370d72829fbd72895b6cf4f7f1a7607e1b";
   };
 
   checkInputs = [ pytest pytestrunner pytest-django django_environ mock ];
diff --git a/pkgs/development/python-modules/django_nose/default.nix b/pkgs/development/python-modules/django_nose/default.nix
index 5d3522c5b47..66a4ad7857b 100644
--- a/pkgs/development/python-modules/django_nose/default.nix
+++ b/pkgs/development/python-modules/django_nose/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "django-nose";
-  version = "1.4.6";
+  version = "1.4.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01wah0ci5xdpiikash68x6lprxlvnkxg72ly9kjrc9lklq34m4sq";
+    sha256 = "a4885cd002d65fd2de96e2bb2563ef477c3fbe207009360c015fca5c3b5561b7";
   };
 
   # vast dependency list
diff --git a/pkgs/development/python-modules/django_silk/default.nix b/pkgs/development/python-modules/django_silk/default.nix
index 95a991f3417..8efd62d7d18 100644
--- a/pkgs/development/python-modules/django_silk/default.nix
+++ b/pkgs/development/python-modules/django_silk/default.nix
@@ -23,14 +23,14 @@
 
 buildPythonPackage rec {
   pname = "django-silk";
-  version = "3.0.4";
+  version = "4.0.1";
 
   # pypi tarball doesn't include test project
   src = fetchFromGitHub {
     owner = "jazzband";
     repo = "django-silk";
     rev = version;
-    sha256 = "10542yvbchcy8hik2hw3jclb4ic89mxkw0sykag4bw9sv43xv7vx";
+    sha256 = "0yy9rzxvwlp2xvnw76r9hnqajlp417snam92xpb6ay0hxwslwqyb";
   };
   # "test_time_taken" tests aren't suitable for reproducible execution, but django's
   # test runner doesn't have an easy way to ignore tests - so instead prevent it from picking
@@ -38,6 +38,8 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace project/tests/test_silky_profiler.py \
       --replace "def test_time_taken" "def _test_time_taken"
+    substituteInPlace setup.py \
+      --replace 'use_scm_version=True' 'version="${version}"'
   '';
 
   buildInputs = [ mock ];
@@ -54,7 +56,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "Silky smooth profiling for the Django Framework";
-    homepage = "https://github.com/mtford90/silk";
+    homepage = "https://github.com/jazzband/django-silk";
     license = licenses.mit;
     maintainers = with maintainers; [ ris ];
   };
diff --git a/pkgs/development/python-modules/djangoql/default.nix b/pkgs/development/python-modules/djangoql/default.nix
index 28aa28c3b99..0d5190aba77 100644
--- a/pkgs/development/python-modules/djangoql/default.nix
+++ b/pkgs/development/python-modules/djangoql/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "djangoql";
-  version = "0.13.1";
+  version = "0.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "366293d7d4e416f9f7d6e2b98775c2129222fbb4dc660f3e6c7b9e35a3cf3fce";
+    sha256 = "1b1f80940bb15982e06208b97d7b3d08e1d5f8fb62aa07e5e33599c7ce4c0334";
   };
 
   propagatedBuildInputs = [ ply ];
diff --git a/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix b/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix
index 626d704f1d8..f4c50a71149 100644
--- a/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix
+++ b/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix
@@ -3,17 +3,17 @@
 buildPythonPackage rec {
   pname = "djangorestframework_simplejwt";
   version = "4.4.0";
-  
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "c315be70aa12a5f5790c0ab9acd426c3a58eebea65a77d0893248c5144a5080c";
   };
-  
+
   propagatedBuildInputs = [ django djangorestframework pyjwt ];
-  
+
   # Test raises django.core.exceptions.ImproperlyConfigured
   doCheck = false;
-  
+
   meta = with lib; {
     description = "A minimal JSON Web Token authentication plugin for Django REST Framework";
     homepage = "https://github.com/davesque/django-rest-framework-simplejwt";
diff --git a/pkgs/development/python-modules/djangorestframework/default.nix b/pkgs/development/python-modules/djangorestframework/default.nix
index ee67db3eab0..5a2d155644a 100644
--- a/pkgs/development/python-modules/djangorestframework/default.nix
+++ b/pkgs/development/python-modules/djangorestframework/default.nix
@@ -1,13 +1,13 @@
 { stdenv, buildPythonPackage, fetchPypi, django, isPy27 }:
 
 buildPythonPackage rec {
-  version = "3.11.0";
+  version = "3.11.1";
   pname = "djangorestframework";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e782087823c47a26826ee5b6fa0c542968219263fb3976ec3c31edab23a4001f";
+    sha256 = "6dd02d5a4bd2516fb93f80360673bf540c3b6641fec8766b1da2870a5aa00b32";
   };
 
   # Test settings are missing
diff --git a/pkgs/development/python-modules/dkimpy/default.nix b/pkgs/development/python-modules/dkimpy/default.nix
index 5d045e5108a..aaecda77780 100644
--- a/pkgs/development/python-modules/dkimpy/default.nix
+++ b/pkgs/development/python-modules/dkimpy/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "dkimpy";
-  version = "1.0.4";
+  version = "1.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14idcs0wiyc0iyi5bz3xqimxf3x6dizcjfn92s2ka5zxp95xdyvd";
+    sha256 = "9a2420bf09af686736773153fca32a02ae11ecbe24b540c26104628959f91121";
 };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/dlib/default.nix b/pkgs/development/python-modules/dlib/default.nix
index a57d8307551..027500ff2ab 100644
--- a/pkgs/development/python-modules/dlib/default.nix
+++ b/pkgs/development/python-modules/dlib/default.nix
@@ -1,4 +1,6 @@
-{ buildPythonPackage, dlib, python, pytest, more-itertools, avxSupport ? true, lib }:
+{ buildPythonPackage, stdenv, lib, dlib, python, pytest, more-itertools
+, avxSupport ? stdenv.hostPlatform.avxSupport
+}:
 
 buildPythonPackage {
   inherit (dlib) name src nativeBuildInputs buildInputs meta;
diff --git a/pkgs/development/python-modules/dnslib/default.nix b/pkgs/development/python-modules/dnslib/default.nix
index df984389323..25a2ffea2f0 100644
--- a/pkgs/development/python-modules/dnslib/default.nix
+++ b/pkgs/development/python-modules/dnslib/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "dnslib";
-  version = "0.9.13";
+  version = "0.9.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a0fed3e139c12ee4884b19bcde1d4a170745bcabb6026397876e3236ce38b9db";
+    sha256 = "1yz63cgiv910wkx90if09bql1n63lq6hy4wfpqink0q4sxy0mlpv";
   };
 
   checkPhase = "VERSIONS=${python.interpreter} ./run_tests.sh";
diff --git a/pkgs/development/python-modules/dnspython/1.nix b/pkgs/development/python-modules/dnspython/1.nix
new file mode 100644
index 00000000000..d4ebaf82b3d
--- /dev/null
+++ b/pkgs/development/python-modules/dnspython/1.nix
@@ -0,0 +1,22 @@
+{ buildPythonPackage, fetchPypi, lib, pythonOlder }:
+
+buildPythonPackage rec {
+  pname = "dnspython";
+  version = "1.16.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01";
+  };
+
+  # needs networking for some tests
+  doCheck = false;
+
+  meta = {
+    description = "A DNS toolkit for Python 3.x";
+    homepage = "http://www.dnspython.org";
+    # BSD-like, check http://www.dnspython.org/LICENSE for details
+    license = lib.licenses.free;
+  };
+}
diff --git a/pkgs/development/python-modules/dnspython/default.nix b/pkgs/development/python-modules/dnspython/default.nix
index 6a65dba767c..c699638083a 100644
--- a/pkgs/development/python-modules/dnspython/default.nix
+++ b/pkgs/development/python-modules/dnspython/default.nix
@@ -1,13 +1,14 @@
-{ buildPythonPackage, fetchPypi, lib }:
+{ buildPythonPackage, fetchPypi, lib, pythonOlder }:
 
 buildPythonPackage rec {
   pname = "dnspython";
-  version = "1.16.0";
+  version = "2.0.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01";
+    sha256 = "044af09374469c3a39eeea1a146e8cac27daec951f1f1f157b1962fc7cb9d1b7";
   };
 
   # needs networking for some tests
diff --git a/pkgs/development/python-modules/docker/default.nix b/pkgs/development/python-modules/docker/default.nix
index 9c788bde123..d46fbe991ae 100644
--- a/pkgs/development/python-modules/docker/default.nix
+++ b/pkgs/development/python-modules/docker/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "docker";
-  version = "4.2.1";
+  version = "4.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "380a20d38fbfaa872e96ee4d0d23ad9beb0f9ed57ff1c30653cbeb0c9c0964f2";
+    sha256 = "bad94b8dd001a8a4af19ce4becc17f41b09f228173ffe6a4e0355389eef142f2";
   };
 
   nativeBuildInputs = lib.optional isPy27 mock;
diff --git a/pkgs/development/python-modules/dockerfile-parse/default.nix b/pkgs/development/python-modules/dockerfile-parse/default.nix
index 580945656b4..c0b14bf88ca 100644
--- a/pkgs/development/python-modules/dockerfile-parse/default.nix
+++ b/pkgs/development/python-modules/dockerfile-parse/default.nix
@@ -1,12 +1,12 @@
 { stdenv, buildPythonPackage, fetchPypi, six, pytestcov, pytest }:
 
 buildPythonPackage rec {
-  version = "0.0.18";
+  version = "1.0.0";
   pname = "dockerfile-parse";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a09eae6871b7b314f8a8bddb67b6c5002708b22247511906cf2a9a45564b83db";
+    sha256 = "9ed92ede29a646094b52b8b302e477f08e63465b6ee524f5750810280143712e";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/dockerspawner/default.nix b/pkgs/development/python-modules/dockerspawner/default.nix
new file mode 100644
index 00000000000..6dba529ef99
--- /dev/null
+++ b/pkgs/development/python-modules/dockerspawner/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, jupyterhub
+, escapism
+, docker
+}:
+
+buildPythonPackage rec {
+  pname = "dockerspawner";
+  version = "0.11.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "83fd8ee012bb32432cb57bd408ff65534749aed8696648e6ac029a87fc474928";
+  };
+
+  propagatedBuildInputs = [
+    jupyterhub
+    escapism
+    docker
+  ];
+
+  # tests require docker
+  doCheck = false;
+
+  pythonImportCheck = [ "dockerspawner" ];
+
+  meta = with lib; {
+    description = "Dockerspawner: A custom spawner for Jupyterhub";
+    homepage = "https://jupyter.org";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/docplex/default.nix b/pkgs/development/python-modules/docplex/default.nix
index d79aec5b8d1..74ac3bbfdf3 100644
--- a/pkgs/development/python-modules/docplex/default.nix
+++ b/pkgs/development/python-modules/docplex/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "docplex";
-  version = "2.14.186";
+  version = "2.15.194";
 
   # No source available from official repo
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ba78897869e938c9ad1cb58e7d82bcf693f5e9a0dfa5e2dbfcee2ae5ea5e87f8";
+    sha256 = "976e9b4e18bccbabae04149c33247a795edb1f00110f1b511c5517ac6ac353bb";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dogpile.cache/default.nix b/pkgs/development/python-modules/dogpile.cache/default.nix
index cdc244bc1b4..32cb213af4f 100644
--- a/pkgs/development/python-modules/dogpile.cache/default.nix
+++ b/pkgs/development/python-modules/dogpile.cache/default.nix
@@ -1,14 +1,23 @@
-{ stdenv, buildPythonPackage, fetchPypi
-, pytest, pytestcov, mock, Mako, decorator
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, pytest
+, pytestcov
+, mock
+, Mako
+, decorator
+, stevedore
 }:
 
 buildPythonPackage rec {
   pname = "dogpile.cache";
-  version = "0.9.2";
+  version = "1.0.2";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bc9dde1ffa5de0179efbcdc73773ef0553921130ad01955422f2932be35c059e";
+    sha256 = "64fda39d25b46486a4876417ca03a4af06f35bfadba9f59613f9b3d748aa21ef";
   };
 
   # Disable concurrency tests that often fail,
@@ -26,7 +35,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest pytestcov mock Mako ];
 
-  propagatedBuildInputs = [ decorator ];
+  propagatedBuildInputs = [ decorator stevedore ];
 
   meta = with stdenv.lib; {
     description = "A caching front-end based on the Dogpile lock";
diff --git a/pkgs/development/python-modules/dogtail/default.nix b/pkgs/development/python-modules/dogtail/default.nix
index 44142ca9441..4981440c7cc 100644
--- a/pkgs/development/python-modules/dogtail/default.nix
+++ b/pkgs/development/python-modules/dogtail/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage {
   pname = "dogtail";
-  version = "0.9.10";
+  version = "0.9.11";
 
   # https://gitlab.com/dogtail/dogtail/issues/1
   # src = fetchPypi {
@@ -26,7 +26,7 @@ buildPythonPackage {
   # };
   src = fetchurl {
     url = "https://gitlab.com/dogtail/dogtail/raw/released/dogtail-0.9.10.tar.gz";
-    sha256 = "14sycidl8ahj3fwlhpwlpnyd43c302yqr7nqg2hj39pyj7kgk15b";
+    sha256 = "EGyxYopupfXPYtTL9mm9ujZorvh8AGaNXVKBPWsGy3c=";
   };
 
   patches = [
@@ -54,7 +54,7 @@ buildPythonPackage {
   meta = {
     description = "GUI test tool and automation framework that uses Accessibility technologies to communicate with desktop applications";
     homepage = "https://gitlab.com/dogtail/dogtail";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     maintainers = with lib.maintainers; [ jtojnar ];
   };
 }
diff --git a/pkgs/development/python-modules/dominate/default.nix b/pkgs/development/python-modules/dominate/default.nix
index 3881bf2dd86..7418eb4f952 100644
--- a/pkgs/development/python-modules/dominate/default.nix
+++ b/pkgs/development/python-modules/dominate/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "dominate";
-  version = "2.5.1";
+  version = "2.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0y4xzch6kwzddwz6pmk8cd09r3dpkxm1bh4q1byhm37a0lb4h1cv";
+    sha256 = "456facce7a7ccfd9363948109cf1e978d48c58e46a46b01c71b4c0adc73b1928";
   };
 
   doCheck = !isPy3k;
diff --git a/pkgs/development/python-modules/dpkt/default.nix b/pkgs/development/python-modules/dpkt/default.nix
index 567cd85fa94..0238cf4706f 100644
--- a/pkgs/development/python-modules/dpkt/default.nix
+++ b/pkgs/development/python-modules/dpkt/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "dpkt";
-  version = "1.9.2";
+  version = "1.9.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0m0ym219zsqfjl6jwivw5as3igjbmhpcn4dvabc5nkd0bk6jxaaj";
+    sha256 = "18jcanxpzkd5n2gjbfpwbvvkm1hpxr59463z28py23vkbx57wmvg";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/dropbox/default.nix b/pkgs/development/python-modules/dropbox/default.nix
index 401437ceec4..51ddaa0de23 100644
--- a/pkgs/development/python-modules/dropbox/default.nix
+++ b/pkgs/development/python-modules/dropbox/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "dropbox";
-  version = "10.2.0";
+  version = "10.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4372916da70aad82e7227e7c31a8cfa2310e41c9d34d32883daedf43ed403f86";
+    sha256 = "6de5f6f36aad32d4382f3d0ad88ee85a22d81d638c960667b8e1ada05db2f98c";
   };
 
   # Set DROPBOX_TOKEN environment variable to a valid token.
diff --git a/pkgs/development/python-modules/dulwich/default.nix b/pkgs/development/python-modules/dulwich/default.nix
index 9a0f275cff7..de0d6f4c3e2 100644
--- a/pkgs/development/python-modules/dulwich/default.nix
+++ b/pkgs/development/python-modules/dulwich/default.nix
@@ -4,12 +4,12 @@
 , git, glibcLocales }:
 
 buildPythonPackage rec {
-  version = "0.20.2";
+  version = "0.20.5";
   pname = "dulwich";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "273fa401e11c215ed81a4a0c8474ed06aeae31900974fdd4a87af5df0e458115";
+    sha256 = "98484ede022da663c96b54bc8dcdb4407072cb50efd5d20d58ca4e7779931305";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/python-modules/ecdsa/default.nix b/pkgs/development/python-modules/ecdsa/default.nix
index 7c991c528cd..0f224bd8ab0 100644
--- a/pkgs/development/python-modules/ecdsa/default.nix
+++ b/pkgs/development/python-modules/ecdsa/default.nix
@@ -22,7 +22,6 @@ buildPythonPackage rec {
     description = "ECDSA cryptographic signature library";
     homepage = "https://github.com/warner/python-ecdsa";
     license = licenses.mit;
-    maintainers = with maintainers; [ aszlig ];
   };
 
 }
diff --git a/pkgs/development/python-modules/elasticsearch/default.nix b/pkgs/development/python-modules/elasticsearch/default.nix
index b04bc9069f7..38522b233d4 100644
--- a/pkgs/development/python-modules/elasticsearch/default.nix
+++ b/pkgs/development/python-modules/elasticsearch/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage (rec {
   pname = "elasticsearch";
-  version = "7.7.1";
+  version = "7.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9bfcb2bd137d6d7ca123e252b9d7261cfe4f7723f7b749a99c52b47766cf387c";
+    sha256 = "5e08776fbb30c6e92408c7fa8c37d939210d291475ae2f364f0497975918b6fe";
   };
 
   # Check is disabled because running them destroy the content of the local cluster!
diff --git a/pkgs/development/python-modules/elementpath/default.nix b/pkgs/development/python-modules/elementpath/default.nix
index 2ab878b081c..5a3a9b0110d 100644
--- a/pkgs/development/python-modules/elementpath/default.nix
+++ b/pkgs/development/python-modules/elementpath/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPythonPackage, fetchFromGitHub, isPy27 }:
 
 buildPythonPackage rec {
-  version = "1.4.5";
+  version = "2.0.0";
   pname = "elementpath";
   disabled = isPy27; # uses incompatible class syntax
 
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     owner = "sissaschool";
     repo = "elementpath";
     rev = "v${version}";
-    sha256 = "1hqvi7ibhdz812dsjbyyz3rysc6242hi1k9187wwnjmilbbngi3c";
+    sha256 = "16kfbiy87qjl07y3iin8jdjhz8j28wlwnkwxq9a0752ipjjg869p";
   };
 
   # avoid circular dependency with xmlschema which directly depends on this
diff --git a/pkgs/development/python-modules/eliot/default.nix b/pkgs/development/python-modules/eliot/default.nix
new file mode 100644
index 00000000000..557be014f86
--- /dev/null
+++ b/pkgs/development/python-modules/eliot/default.nix
@@ -0,0 +1,56 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, aiocontextvars
+, boltons
+, hypothesis
+, pyrsistent
+, pytest
+, setuptools
+, six
+, testtools
+, zope_interface
+}:
+
+buildPythonPackage rec {
+  pname = "eliot";
+  version = "1.12.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0wabv7hk63l12881f4zw02mmj06583qsx2im0yywdjlj8f56vqdn";
+  };
+
+  checkInputs = [
+    hypothesis
+    testtools
+    pytest
+   ];
+
+  propagatedBuildInputs = [
+    aiocontextvars
+    boltons
+    pyrsistent
+    setuptools
+    six
+    zope_interface
+  ];
+
+  pythonImportsCheck = [ "eliot" ];
+
+  # Tests run eliot-prettyprint in out/bin.
+  # test_parse_stream is broken, skip it.
+  checkPhase = ''
+    export PATH=$out/bin:$PATH
+    pytest -k 'not test_parse_stream'
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://eliot.readthedocs.io";
+    description = "Logging library that tells you why it happened";
+    license = licenses.asl20;
+    maintainers = [ maintainers.dpausp ];
+  };
+}
diff --git a/pkgs/development/python-modules/emoji/default.nix b/pkgs/development/python-modules/emoji/default.nix
index 7e9dae53bbc..aabebe1c521 100644
--- a/pkgs/development/python-modules/emoji/default.nix
+++ b/pkgs/development/python-modules/emoji/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "emoji";
-  version = "0.5.4";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0x61xypwswhghchp5svs084didkgfwqpq2fbiapvirff5lx2srb0";
+    sha256 = "e42da4f8d648f8ef10691bc246f682a1ec6b18373abfd9be10ec0b398823bd11";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/enaml/default.nix b/pkgs/development/python-modules/enaml/default.nix
new file mode 100644
index 00000000000..1102443884f
--- /dev/null
+++ b/pkgs/development/python-modules/enaml/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, atom
+, ply
+, kiwisolver
+, qtpy
+, sip
+, cppy
+, bytecode
+}:
+
+buildPythonPackage rec {
+  pname = "enaml";
+  version = "0.11.2";
+
+  src = fetchFromGitHub {
+    owner = "nucleic";
+    repo = pname;
+    rev = version;
+    sha256 = "1in5qa5j96qs3gsv8yaxs1l6dbm69xhzvc0pbzg0dd9kpqxfdy1j";
+  };
+
+  # qt bindings cannot be found during tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "enaml"
+    "enaml.applib"
+    "enaml.core"
+    "enaml.core.parser"
+    "enaml.layout"
+    # qt bindings cannot be found during checking
+    #"enaml.qt"
+    #"enaml.qt.docking"
+    "enaml.scintilla"
+    "enaml.stdlib"
+    "enaml.widgets"
+    "enaml.workbench"
+  ];
+
+  propagatedBuildInputs = [
+    atom
+    ply
+    kiwisolver
+    qtpy
+    sip
+    cppy
+    bytecode
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/nucleic/enaml";
+    description = "Declarative User Interfaces for Python";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ raboof ];
+  };
+}
diff --git a/pkgs/development/python-modules/enamlx/default.nix b/pkgs/development/python-modules/enamlx/default.nix
new file mode 100644
index 00000000000..dbf54aac40e
--- /dev/null
+++ b/pkgs/development/python-modules/enamlx/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, enaml
+, pyqtgraph
+, pythonocc-core
+}:
+
+buildPythonPackage rec {
+  pname = "enamlx";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "frmdstryr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0yh7bw9ibk758bym5w2wk7sifghf1hkxa8sd719q8nsz279cpfc0";
+  };
+
+  propagatedBuildInputs = [
+    enaml
+    # Until https://github.com/inkcut/inkcut/issues/105 perhaps
+    pyqtgraph
+    pythonocc-core
+  ];
+
+  # qt_occ_viewer test requires enaml.qt.QtOpenGL which got dropped somewhere
+  # between enaml 0.9.0 and 0.10.0
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "enamlx.core"
+    "enamlx.qt"
+    "enamlx.widgets"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/frmdstryr/enamlx";
+    description = "Additional Qt Widgets for Enaml";
+    license = licenses.mit;
+    maintainers = with maintainers; [ raboof ];
+  };
+}
diff --git a/pkgs/development/python-modules/entrance/default.nix b/pkgs/development/python-modules/entrance/default.nix
index eb7a9d984ff..2f0f80bcf7a 100644
--- a/pkgs/development/python-modules/entrance/default.nix
+++ b/pkgs/development/python-modules/entrance/default.nix
@@ -18,11 +18,11 @@ in
 
 buildPythonPackage rec {
   pname = "entrance";
-  version = "1.1.13";
+  version = "1.1.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vmyfhlpcz9fip89z7bl9va3bybz4p3clifn6x3329v1ms9bm1gc";
+    sha256 = "d1fc9d128ce05837d7e149413fbec71bcf84d9ca510accea56761d3f4bd0a021";
   };
 
   # The versions of `sanic` and `websockets` in nixpkgs only support 3.6 or later
diff --git a/pkgs/development/python-modules/etelemetry/default.nix b/pkgs/development/python-modules/etelemetry/default.nix
index 041847089e9..869c6ccba92 100644
--- a/pkgs/development/python-modules/etelemetry/default.nix
+++ b/pkgs/development/python-modules/etelemetry/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, requests, pytest }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, ci-info, ci-py, requests, pytest }:
 
 buildPythonPackage rec {
   version = "0.2.1";
@@ -7,10 +7,10 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bfb58f58e98f63eae20caffb8514fb68c572332aa6e773cf3fcbde9b408d88e7";
+    sha256 = "1rw8im09ppnb7z7p7rx658rp5ib8zca8byxg1kiflqwgx5c8zddz";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [ ci-info ci-py requests ];
 
   # all 2 of the tests both try to pull down from a url
   doCheck = false;
diff --git a/pkgs/development/python-modules/etesync/default.nix b/pkgs/development/python-modules/etesync/default.nix
index 47305d89540..ee81ead97c3 100644
--- a/pkgs/development/python-modules/etesync/default.nix
+++ b/pkgs/development/python-modules/etesync/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "etesync";
-  version = "0.11.1";
+  version = "0.12.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0yads0s84z41hf003qk5i8222fi7096whzwfp48kf369gchp39kc";
+    sha256 = "f20f7e9922ee789c4b71379676ebfe656b675913fe524f2ee722e1b9ef4e5197";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/eve/default.nix b/pkgs/development/python-modules/eve/default.nix
index 062d6e3bedb..9f1fd621b8f 100644
--- a/pkgs/development/python-modules/eve/default.nix
+++ b/pkgs/development/python-modules/eve/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "Eve";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dbb409c481ffd5100a5ab13177f6ef6284257e33ac8e5090cd50e42533607ebd";
+    sha256 = "a8a1216ef1d3f1a4c4fc5a7bd315eca5a3ef7dfc6b78807cdf19ddfeecafcc3e";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/eventlet/default.nix b/pkgs/development/python-modules/eventlet/default.nix
index 14c5cfcb390..300a660f324 100644
--- a/pkgs/development/python-modules/eventlet/default.nix
+++ b/pkgs/development/python-modules/eventlet/default.nix
@@ -12,22 +12,32 @@
 
 buildPythonPackage rec {
   pname = "eventlet";
-  version = "0.25.2";
+  version = "0.26.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4c8ab42c51bff55204fef43cff32616558bedbc7538d876bb6a96ce820c7f9ed";
+    sha256 = "4f4a43366b4cbd4a3f2f231816e5c3dae8ab316df9b7da11f0525e2800559f33";
   };
 
+  propagatedBuildInputs = [ dnspython greenlet monotonic six ]
+    ++ lib.optional (pythonOlder "3.4") enum34;
+
+  prePatch = ''
+    substituteInPlace setup.py \
+      --replace "dnspython >= 1.15.0, < 2.0.0" "dnspython"
+  '';
+
   checkInputs = [ nose ];
 
   doCheck = false;  # too much transient errors to bother
 
-  propagatedBuildInputs = [ dnspython greenlet monotonic six ] ++ lib.optional (pythonOlder "3.4") enum34;
+  # unfortunately, it needs /etc/protocol to be present to not fail
+  #pythonImportsCheck = [ "eventlet" ];
 
   meta = with lib; {
     homepage = "https://pypi.python.org/pypi/eventlet/";
     description = "A concurrent networking library for Python";
+    license = licenses.mit;
   };
 
 }
diff --git a/pkgs/development/python-modules/exchangelib/default.nix b/pkgs/development/python-modules/exchangelib/default.nix
index ed2a7d69da8..0635f8f027c 100644
--- a/pkgs/development/python-modules/exchangelib/default.nix
+++ b/pkgs/development/python-modules/exchangelib/default.nix
@@ -1,33 +1,38 @@
 { stdenv, fetchFromGitHub, buildPythonPackage,
-  lxml, tzlocal, python-dateutil, pygments, future, requests-kerberos,
+  pythonOlder,
+  lxml, tzlocal, python-dateutil, pygments, requests-kerberos,
   defusedxml, cached-property, isodate, requests_ntlm, dnspython,
-  psutil, requests-mock, pyyaml
+  psutil, requests-mock, pyyaml,
+  oauthlib, requests_oauthlib,
+  flake8,
 }:
 
 buildPythonPackage rec {
   pname = "exchangelib";
-  version = "1.12.2";
+  version = "3.2.1";
+  disabled = pythonOlder "3.5";
 
   # tests are not present in the PyPI version
   src = fetchFromGitHub {
     owner = "ecederstrand";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1p24fq6f46j0qd0ccb64mncxbnm2n9w0sqpl4zk113caaaxkpjil";
+    sha256 = "1sh780q2iwdm3bnlnfdacracf0n7jhbv0g39cdx65v3d510zp4jv";
   };
 
-  # one test is failing due to it trying to send a request to example.com
-  patches = [ ./skip_failing_test.patch ];
-  checkInputs = [ psutil requests-mock pyyaml ];
+  checkInputs = [ psutil requests-mock pyyaml
+    flake8
+  ];
   propagatedBuildInputs = [
     lxml tzlocal python-dateutil pygments requests-kerberos
-    future defusedxml cached-property isodate requests_ntlm dnspython ];
+    defusedxml cached-property isodate requests_ntlm dnspython
+    oauthlib requests_oauthlib
+  ];
 
   meta = with stdenv.lib; {
     description = "Client for Microsoft Exchange Web Services (EWS)";
     homepage    = "https://github.com/ecederstrand/exchangelib";
     license     = licenses.bsd2;
     maintainers = with maintainers; [ catern ];
-    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/executing/default.nix b/pkgs/development/python-modules/executing/default.nix
new file mode 100644
index 00000000000..84026d7374c
--- /dev/null
+++ b/pkgs/development/python-modules/executing/default.nix
@@ -0,0 +1,20 @@
+{ lib, buildPythonPackage, fetchzip, pytest, asttokens }:
+
+buildPythonPackage rec {
+  pname = "executing";
+  version = "0.4.3";
+
+  src = fetchzip {
+    url = "https://github.com/alexmojaki/executing/archive/v${version}.tar.gz";
+    sha256 = "1fqfc26nl703nsx2flzf7x4mgr3rpbd8pnn9c195rca648zhi3nh";
+  };
+
+  checkInputs = [ pytest asttokens ];
+
+  meta = with lib; {
+    description = "Get information about what a frame is currently doing, particularly the AST node being executed";
+    homepage = "https://github.com/alexmojaki/executing";
+    license = licenses.mit;
+    maintainers = with maintainers; [ renatoGarcia ];
+  };
+}
diff --git a/pkgs/development/python-modules/executor/default.nix b/pkgs/development/python-modules/executor/default.nix
index 8d9b379187b..e36c0e41c45 100644
--- a/pkgs/development/python-modules/executor/default.nix
+++ b/pkgs/development/python-modules/executor/default.nix
@@ -1,8 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, coloredlogs, property-manager, fasteners, pytest, mock, virtualenv }:
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27, coloredlogs, property-manager, fasteners, pytest, mock, virtualenv }:
 
 buildPythonPackage rec {
   pname = "executor";
   version = "21.3";
+  disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "xolox";
diff --git a/pkgs/development/python-modules/exifread/default.nix b/pkgs/development/python-modules/exifread/default.nix
index 61593b625f7..f6265505584 100644
--- a/pkgs/development/python-modules/exifread/default.nix
+++ b/pkgs/development/python-modules/exifread/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "ExifRead";
-  version = "2.1.2";
+  version = "2.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1b90jf6m9vxh9nanhpyvqdq7hmfx5iggw1l8kq10jrs6xgr49qkr";
+    sha256 = "269ff3a8eab8e082734a076182cce6fb126116619c0b7c2009bea34502cca213";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/factory_boy/default.nix b/pkgs/development/python-modules/factory_boy/default.nix
index 92e889564af..052551a4727 100644
--- a/pkgs/development/python-modules/factory_boy/default.nix
+++ b/pkgs/development/python-modules/factory_boy/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "factory_boy";
-  version = "2.12.0";
+  version = "3.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0w53hjgag6ad5i2vmrys8ysk54agsqvgbjy9lg8g0d8pi9h8vx7s";
+    sha256 = "2ce2f665045d9f15145a6310565fcb8255d52fc6fd867f3b783b3ac3de6cf10e";
   };
 
   propagatedBuildInputs = [ faker ] ++ lib.optionals isPy27 [ ipaddress ];
diff --git a/pkgs/development/python-modules/faker/default.nix b/pkgs/development/python-modules/faker/default.nix
index df05d5cc40a..102f506b6a6 100644
--- a/pkgs/development/python-modules/faker/default.nix
+++ b/pkgs/development/python-modules/faker/default.nix
@@ -17,11 +17,11 @@ assert pythonOlder "3.3" -> ipaddress != null;
 
 buildPythonPackage rec {
   pname = "Faker";
-  version = "4.1.0";
+  version = "4.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "103c46b9701a151299c5bffe6fefcd4fb5fb04c3b5d06bee4952d36255d44ea2";
+    sha256 = "ff188c416864e3f7d8becd8f9ee683a4b4101a2a2d2bcdcb3e84bb1bdd06eaae";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/pkgs/development/python-modules/finalfusion/default.nix b/pkgs/development/python-modules/finalfusion/default.nix
new file mode 100644
index 00000000000..62287487e3b
--- /dev/null
+++ b/pkgs/development/python-modules/finalfusion/default.nix
@@ -0,0 +1,56 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, lib
+, isPy3k
+, cython
+, numpy
+, toml
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "finalfusion";
+  version = "0.7.1";
+
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "finalfusion";
+    repo = "finalfusion-python";
+    rev = version;
+    sha256 = "0pwzflamxqvpl1wcz0zbhhd6aa4xn18rmza6rggaic3ckidhyrh4";
+  };
+
+  nativeBuildInputs = [
+    cython
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+    toml
+  ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  postPatch = ''
+    patchShebangs tests/integration
+  '';
+
+  checkPhase = ''
+    # Regular unit tests.
+    pytest
+
+    # Integration tests for command-line utilities.
+    PATH=$PATH:$out/bin tests/integration/all.sh
+  '';
+
+  meta = with lib; {
+    description = "Python module for using finalfusion, word2vec, and fastText word embeddings";
+    homepage = "https://github.com/finalfusion/finalfusion-python/";
+    maintainers = with maintainers; [ danieldk ];
+    platforms = platforms.all;
+    license = licenses.blueOak100;
+  };
+}
diff --git a/pkgs/development/python-modules/fixtures/default.nix b/pkgs/development/python-modules/fixtures/default.nix
index 35bf7cb90df..3042acbbe84 100644
--- a/pkgs/development/python-modules/fixtures/default.nix
+++ b/pkgs/development/python-modules/fixtures/default.nix
@@ -27,4 +27,4 @@ buildPythonPackage rec {
     homepage = "https://pypi.python.org/pypi/fixtures";
     license = lib.licenses.asl20;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/flake8/default.nix b/pkgs/development/python-modules/flake8/default.nix
index 761690ba9c0..e44aac202cf 100644
--- a/pkgs/development/python-modules/flake8/default.nix
+++ b/pkgs/development/python-modules/flake8/default.nix
@@ -19,8 +19,9 @@ buildPythonPackage rec {
     ++ stdenv.lib.optionals (pythonOlder "3.5") [ typing ]
     ++ stdenv.lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
+  # fixtures fail to initialize correctly
   checkPhase = ''
-    py.test tests
+    py.test tests --ignore=tests/integration/test_checker.py
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/flaky/default.nix b/pkgs/development/python-modules/flaky/default.nix
index 4fe79864791..9bf20e6cc3b 100644
--- a/pkgs/development/python-modules/flaky/default.nix
+++ b/pkgs/development/python-modules/flaky/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "flaky";
-  version = "3.6.1";
+  version = "3.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8cd5455bb00c677f787da424eaf8c4a58a922d0e97126d3085db5b279a98b698";
+    sha256 = "3ad100780721a1911f57a165809b7ea265a7863305acb66708220820caf8aa0d";
   };
 
   checkInputs = [ mock nose pytest ];
diff --git a/pkgs/development/python-modules/flask-assets/default.nix b/pkgs/development/python-modules/flask-assets/default.nix
index 12a295ca65a..390657e9c82 100644
--- a/pkgs/development/python-modules/flask-assets/default.nix
+++ b/pkgs/development/python-modules/flask-assets/default.nix
@@ -11,6 +11,8 @@ buildPythonPackage rec {
 
   patchPhase = ''
     substituteInPlace tests/test_integration.py --replace 'static_path=' 'static_url_path='
+    substituteInPlace tests/test_integration.py --replace "static_folder = '/'" "static_folder = '/x'"
+    substituteInPlace tests/test_integration.py --replace "'/foo'" "'/x/foo'"
   '';
 
   propagatedBuildInputs = [ flask webassets flask_script nose ];
diff --git a/pkgs/development/python-modules/flask-httpauth/default.nix b/pkgs/development/python-modules/flask-httpauth/default.nix
index 7981428c42a..ad3e42876d0 100644
--- a/pkgs/development/python-modules/flask-httpauth/default.nix
+++ b/pkgs/development/python-modules/flask-httpauth/default.nix
@@ -15,6 +15,6 @@ buildPythonPackage rec {
     description = "Extension that provides HTTP authentication for Flask routes";
     homepage = "https://github.com/miguelgrinberg/Flask-HTTPAuth";
     license = licenses.mit;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/pkgs/development/python-modules/flask-marshmallow/default.nix b/pkgs/development/python-modules/flask-marshmallow/default.nix
index bd28280a47a..5d783f6c7c4 100644
--- a/pkgs/development/python-modules/flask-marshmallow/default.nix
+++ b/pkgs/development/python-modules/flask-marshmallow/default.nix
@@ -4,17 +4,17 @@
 
 buildPythonPackage rec {
   pname = "flask-marshmallow";
-  version = "0.12.0";
+  version = "0.13.0";
 
   meta = {
     homepage = "https://github.com/marshmallow-code/flask-marshmallow";
     description = "Flask + marshmallow for beautiful APIs";
     license = lib.licenses.mit;
-  }; 
+  };
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6e6aec171b8e092e0eafaf035ff5b8637bf3a58ab46f568c4c1bab02f2a3c196";
+    sha256 = "aefc1f1d96256c430a409f08241bab75ffe97e5d14ac5d1f000764e39bf4873a";
   };
 
   propagatedBuildInputs = [ flask marshmallow ];
diff --git a/pkgs/development/python-modules/flask-restx/default.nix b/pkgs/development/python-modules/flask-restx/default.nix
new file mode 100644
index 00000000000..9a13ebac647
--- /dev/null
+++ b/pkgs/development/python-modules/flask-restx/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, aniso8601
+, jsonschema
+, flask
+, werkzeug
+, pytz
+, faker
+, six
+, enum34
+, isPy27
+, mock
+, blinker
+, pytest-flask
+, pytest-mock
+, pytest-benchmark
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "flask-restx";
+  version = "0.2.0";
+
+  # Tests not included in PyPI tarball
+  src = fetchFromGitHub {
+    owner = "python-restx";
+    repo = pname;
+    rev = version;
+    sha256 = "0xf2vkmdngp9cv9klznizai4byxjcf0iqh1pr4b83nann0jxqwy7";
+  };
+
+  propagatedBuildInputs = [ aniso8601 jsonschema flask werkzeug pytz six ]
+    ++ lib.optionals isPy27 [ enum34 ];
+
+  checkInputs = [ pytestCheckHook faker mock pytest-flask pytest-mock pytest-benchmark blinker ];
+
+  pytestFlagsArray = [
+    "--benchmark-disable"
+    "--deselect=tests/test_inputs.py::URLTest::test_check"
+    "--deselect=tests/test_inputs.py::EmailTest::test_valid_value_check"
+  ];
+
+  meta = with lib; {
+    homepage = "https://flask-restx.readthedocs.io/en/${version}/";
+    description = "Fully featured framework for fast, easy and documented API development with Flask";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/development/python-modules/flask-socketio/default.nix b/pkgs/development/python-modules/flask-socketio/default.nix
index 41c828eefe9..b7bd0fe7f3a 100644
--- a/pkgs/development/python-modules/flask-socketio/default.nix
+++ b/pkgs/development/python-modules/flask-socketio/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-SocketIO";
-  version = "4.3.0";
+  version = "4.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7f9b54ac9cd92e28a657c58f51943d97e76b988840c8795784e7b2bafb13103f";
+    sha256 = "36c1d5765010d1f4e4f05b4cc9c20c289d9dc70698c88d1addd0afcfedc5b062";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/flask-sqlalchemy/default.nix b/pkgs/development/python-modules/flask-sqlalchemy/default.nix
index 594af9f74bf..c811ce24157 100644
--- a/pkgs/development/python-modules/flask-sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/flask-sqlalchemy/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-SQLAlchemy";
-  version = "2.4.3";
+  version = "2.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0b656fbf87c5f24109d859bafa791d29751fabbda2302b606881ae5485b557a5";
+    sha256 = "1rgsj49gnx361hnb3vn6c1h17497qh22yc3r70l1r6w0mw71bixz";
   };
 
   propagatedBuildInputs = [ flask sqlalchemy ];
diff --git a/pkgs/development/python-modules/flask-testing/default.nix b/pkgs/development/python-modules/flask-testing/default.nix
index ece8843209c..feb3766067b 100644
--- a/pkgs/development/python-modules/flask-testing/default.nix
+++ b/pkgs/development/python-modules/flask-testing/default.nix
@@ -1,7 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pythonOlder
-, flask, blinker, twill }:
-
-with stdenv.lib;
+{ stdenv, fetchPypi, buildPythonPackage, isPy3k, flask, blinker, twill }:
 
 buildPythonPackage rec {
   pname = "Flask-Testing";
@@ -13,13 +10,20 @@ buildPythonPackage rec {
   };
 
   postPatch = ''
-    sed -i -e 's/twill==0.9.1/twill/' setup.py
+    substituteInPlace setup.py --replace "twill==0.9.1" "twill"
   '';
 
-  buildInputs = optionals (pythonOlder "3.0") [ twill ];
-  propagatedBuildInputs = [ flask blinker ];
+  propagatedBuildInputs = [ flask ];
+
+  checkInputs = [ blinker ] ++ stdenv.lib.optionals (!isPy3k) [ twill ];
+
+  # twill integration is outdated in Python 2, hence it the tests fails.
+  # Some of the tests use localhost networking on darwin.
+  doCheck = isPy3k && !stdenv.isDarwin;
+
+  pythonImportsCheck = [ "flask_testing" ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Flask unittest integration.";
     homepage = "https://pythonhosted.org/Flask-Testing/";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/flit/default.nix b/pkgs/development/python-modules/flit/default.nix
index 88a4028aa6d..c0944f4ff17 100644
--- a/pkgs/development/python-modules/flit/default.nix
+++ b/pkgs/development/python-modules/flit/default.nix
@@ -7,7 +7,7 @@
 , requests_download
 , zipfile36
 , pythonOlder
-, pytest_4
+, pytest
 , testpath
 , responses
 , pytoml
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     zipfile36
   ];
 
-  checkInputs = [ pytest_4 testpath responses ];
+  checkInputs = [ pytest testpath responses ];
 
   # Disable test that needs some ini file.
   # Disable test that wants hg
diff --git a/pkgs/development/python-modules/flower/default.nix b/pkgs/development/python-modules/flower/default.nix
index 3a2f987ed51..b31cbc7424d 100644
--- a/pkgs/development/python-modules/flower/default.nix
+++ b/pkgs/development/python-modules/flower/default.nix
@@ -1,34 +1,35 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, Babel
 , celery
-, future
 , humanize
-, importlib-metadata
 , mock
 , pytz
 , tornado
+, prometheus_client
 }:
 
 buildPythonPackage rec {
   pname = "flower";
-  version = "0.9.4";
+  version = "0.9.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "25782840f7ffc25dcf478d94535a2d815448de4aa6c71426be6abfa9ca417448";
+    sha256 = "171zckhk9ni14f1d82wf62hhciy0gx13fd02sr9m9qlj50fnv4an";
   };
 
-  # flower and humanize aren't listed in setup.py but imported
+  postPatch = ''
+    # rely on using example programs (flowers/examples/tasks.py) which
+    # are not part of the distribution
+    rm tests/load.py
+  '';
+
   propagatedBuildInputs = [
-    Babel
     celery
-    future
-    importlib-metadata
     pytz
     tornado
     humanize
+    prometheus_client
   ];
 
   checkInputs = [ mock ];
diff --git a/pkgs/development/python-modules/fluent-logger/default.nix b/pkgs/development/python-modules/fluent-logger/default.nix
index d47465c9723..e99ececc24e 100644
--- a/pkgs/development/python-modules/fluent-logger/default.nix
+++ b/pkgs/development/python-modules/fluent-logger/default.nix
@@ -10,7 +10,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ msgpack ];
-  
+
   # Tests fail because absent in package
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/flufl/bounce.nix b/pkgs/development/python-modules/flufl/bounce.nix
index 0a2e8dff1b7..deb92ea9ce8 100644
--- a/pkgs/development/python-modules/flufl/bounce.nix
+++ b/pkgs/development/python-modules/flufl/bounce.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "flufl.bounce";
-  version = "3.0";
+  version = "3.0.1";
 
   buildInputs = [ nose2 ];
   propagatedBuildInputs = [ atpublic zope_interface ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0k5kjqa3x6gvwwxyzb2vwi1g1i6asm1zw5fivylxz3d583y4kid2";
+    sha256 = "e432fa1ca25ddbf23e2716b177d4d1c6ab6c078e357df56b0106b92bc10a8f06";
   };
 }
diff --git a/pkgs/development/python-modules/fontmath/default.nix b/pkgs/development/python-modules/fontmath/default.nix
new file mode 100644
index 00000000000..7a23abdd037
--- /dev/null
+++ b/pkgs/development/python-modules/fontmath/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi
+, fonttools
+, pytest, pytestrunner
+}:
+
+buildPythonPackage rec {
+  pname = "fontMath";
+  version = "0.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09xdqdjyjlx5k9ymi36d7hkgvn55zzjzd65l2yqidkfazlmh14ss";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [ fonttools ];
+  checkInputs = [ pytest pytestrunner ];
+
+  meta = with lib; {
+    description = "A collection of objects that implement fast font, glyph, etc. math";
+    homepage = "https://github.com/robotools/fontMath/";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/fontparts/default.nix b/pkgs/development/python-modules/fontparts/default.nix
new file mode 100644
index 00000000000..dd341fef8b3
--- /dev/null
+++ b/pkgs/development/python-modules/fontparts/default.nix
@@ -0,0 +1,39 @@
+{ lib, buildPythonPackage, fetchPypi, python
+, fonttools, lxml, fs, unicodedata2
+, defcon, fontpens, fontmath, booleanoperations
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "fontParts";
+  version = "0.9.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0hwzdppmrrw1xz49x36h6mcsrwya1f3zpqrc206y73j4pbn7fh0k";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [
+    booleanoperations
+    fonttools
+    unicodedata2  # fonttools[unicode] extra
+    lxml          # fonttools[lxml] extra
+    fs            # fonttools[ufo] extra
+    defcon
+    fontpens      # defcon[pens] extra
+    fontmath
+  ];
+
+  checkPhase = ''
+    ${python.interpreter} Lib/fontParts/fontshell/test.py
+  '';
+  checkInputs = [ pytest ];
+
+  meta = with lib; {
+    description = "An API for interacting with the parts of fonts during the font development process.";
+    homepage = "https://github.com/robotools/fontParts";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/fontpens/default.nix b/pkgs/development/python-modules/fontpens/default.nix
new file mode 100644
index 00000000000..02adb3b0642
--- /dev/null
+++ b/pkgs/development/python-modules/fontpens/default.nix
@@ -0,0 +1,38 @@
+{ lib, buildPythonPackage, fetchPypi, fonttools }:
+
+buildPythonPackage rec {
+  pname = "fontPens";
+  version = "0.2.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1za15dzsnymq6d9x7xdfqwgw4a3003wj75fn2crhyidkfd2s3nd6";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [ fonttools ];
+
+  # can't run normal tests due to circular dependency with fontParts
+  doCheck = false;
+  pythonImportsCheck = [ "fontPens" ] ++ (builtins.map (s: "fontPens." + s) [
+    "angledMarginPen"
+    "digestPointPen"
+    "flattenPen"
+    "guessSmoothPointPen"
+    "marginPen"
+    "penTools"
+    "printPen"
+    "printPointPen"
+    "recordingPointPen"
+    "thresholdPen"
+    "thresholdPointPen"
+    "transformPointPen"
+  ]);
+
+  meta = with lib; {
+    description = "A collection of classes implementing the pen protocol for manipulating glyphs";
+    homepage = "https://github.com/robotools/fontPens";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index 8aae67443ae..a1433d08bd0 100644
--- a/pkgs/development/python-modules/fonttools/default.nix
+++ b/pkgs/development/python-modules/fonttools/default.nix
@@ -1,38 +1,70 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, isPy27
-, numpy
+, fetchFromGitHub
+, pythonOlder
+, brotlipy
+, zopfli
+, fs
+, lxml
+, scipy
+, munkres
+, unicodedata2
+, sympy
+, matplotlib
+, reportlab
 , pytest
-, pytestrunner
+, pytest-randomly
 , glibcLocales
 }:
 
 buildPythonPackage rec {
   pname = "fonttools";
-  version = "4.11.0";
-  disabled = isPy27;
+  version = "4.14.0";
+  disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "7fe5937206099ef284055b8c94798782e0993a740eed87f0dd262ed9870788aa";
-    extension = "zip";
+  src = fetchFromGitHub {
+    owner  = pname;
+    repo   = pname;
+    rev    = version;
+    sha256 = "0aiaxjg2v2391gxnhp4nvmgfb3ygm6x7n080s5mnkfjq2bq319in";
   };
 
-  buildInputs = [
-    numpy
-  ];
-
+  # all dependencies are optional, but
+  # we run the checks with them
   checkInputs = [
     pytest
-    pytestrunner
+    pytest-randomly
     glibcLocales
+    # etree extra
+    lxml
+    # ufo extra
+    fs
+    # woff extra
+    brotlipy
+    zopfli
+    # unicode extra
+    unicodedata2
+    # interpolatable extra
+    scipy
+    munkres
+    # symfont
+    sympy
+    # varLib
+    matplotlib
+    # pens
+    reportlab
   ];
 
   preCheck = ''
     export LC_ALL="en_US.UTF-8"
   '';
 
+  # avoid timing issues with timestamps in subset_test.py and ttx_test.py
+  checkPhase = ''
+    pytest Tests fontTools \
+      -k 'not ttcompile_timestamp_calcs and not recalc_timestamp'
+  '';
+
   meta = {
     homepage = "https://github.com/fonttools/fonttools";
     description = "A library to manipulate font files from Python";
diff --git a/pkgs/development/python-modules/foxdot/default.nix b/pkgs/development/python-modules/foxdot/default.nix
index bbf8395190f..cc9ad87052b 100644
--- a/pkgs/development/python-modules/foxdot/default.nix
+++ b/pkgs/development/python-modules/foxdot/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "FoxDot";
-  version = "0.8.8";
+  version = "0.8.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06y626kgaz1wn1qajlngihpvd4qz8m6lx6sknmjqhhrznyji58wi";
+    sha256 = "00yqpkv7cxwk301cyiwjzr9yfq8hpnhqyspw3z874ydrl3cmssdb";
   };
 
   propagatedBuildInputs = [ tkinter supercollider ];
diff --git a/pkgs/development/python-modules/fpdf/default.nix b/pkgs/development/python-modules/fpdf/default.nix
index e8e34f89c43..ca05660feb3 100644
--- a/pkgs/development/python-modules/fpdf/default.nix
+++ b/pkgs/development/python-modules/fpdf/default.nix
@@ -16,6 +16,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/reingart/pyfpdf";
     description = "Simple PDF generation for Python";
     license = lib.licenses.lgpl3;
-    maintainers = with lib.maintainers; [ geistesk ];
+    maintainers = with lib.maintainers; [ oxzi ];
   };
 }
diff --git a/pkgs/development/python-modules/freetype-py/default.nix b/pkgs/development/python-modules/freetype-py/default.nix
new file mode 100644
index 00000000000..a1259b85673
--- /dev/null
+++ b/pkgs/development/python-modules/freetype-py/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi, substituteAll, stdenv, setuptools_scm, freetype }:
+
+buildPythonPackage rec {
+  pname = "freetype-py";
+  version = "2.1.0.post1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1k62fx53qrv9nb73mpqi2r11wzbx41qfv5qppvh6rylywnrknf3n";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./library-paths.patch;
+      freetype = "${freetype.out}/lib/libfreetype${stdenv.hostPlatform.extensions.sharedLibrary}";
+    })
+  ];
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [ freetype ];
+
+  pythonImportsCheck =  [ "freetype" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/rougier/freetype-py";
+    description = "FreeType (high-level Python API)";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ goertzenator ];
+  };
+}
diff --git a/pkgs/development/python-modules/freetype-py/library-paths.patch b/pkgs/development/python-modules/freetype-py/library-paths.patch
new file mode 100644
index 00000000000..a30c7e7355f
--- /dev/null
+++ b/pkgs/development/python-modules/freetype-py/library-paths.patch
@@ -0,0 +1,37 @@
+diff --git a/freetype/raw.py b/freetype/raw.py
+index ff3bea3..78c68ab 100644
+--- a/freetype/raw.py
++++ b/freetype/raw.py
+@@ -19,31 +19,7 @@ from freetype.ft_enums import *
+ from freetype.ft_errors import *
+ from freetype.ft_structs import *
+ 
+-# First, look for a bundled FreeType shared object on the top-level of the
+-# installed freetype-py module.
+-system = platform.system()
+-if system == 'Windows':
+-    library_name = 'libfreetype.dll'
+-elif system == 'Darwin':
+-    library_name = 'libfreetype.dylib'
+-else:
+-    library_name = 'libfreetype.so'
+-
+-filename = os.path.join(os.path.dirname(freetype.__file__), library_name)
+-
+-# If no bundled shared object is found, look for a system-wide installed one.
+-if not os.path.exists(filename):
+-    # on windows all ctypes does when checking for the library
+-    # is to append .dll to the end and look for an exact match
+-    # within any entry in PATH.
+-    filename = ctypes.util.find_library('freetype')
+-
+-    if filename is None:
+-        if platform.system() == 'Windows':
+-            # Check current working directory for dll as ctypes fails to do so
+-            filename = os.path.join(os.path.realpath('.'), "freetype.dll")
+-        else:
+-            filename = library_name
++filename = "@freetype@"
+ 
+ try:
+     _lib = ctypes.CDLL(filename)
diff --git a/pkgs/development/python-modules/ftfy/default.nix b/pkgs/development/python-modules/ftfy/default.nix
index bb421d746d4..a781230a919 100644
--- a/pkgs/development/python-modules/ftfy/default.nix
+++ b/pkgs/development/python-modules/ftfy/default.nix
@@ -10,18 +10,13 @@
 
 buildPythonPackage rec {
   pname = "ftfy";
+  version = "5.8";
 
-  version = "5.7";
-  # ftfy v5 only supports python3. Since at the moment the only
-  # packages that use ftfy are spacy and textacy which both support
-  # python 2 and 3, they have pinned ftfy to the v4 branch.
-  # I propose to stick to v4 until another package requires v5.
-  # At that point we can make a ftfy_v4 package.
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1j143kfpnskksfzs0pnr37kwph6m7c71p8gdldv26x2b7arwiyb7";
+    sha256 = "081p5z20dirrf1i3nshylc31qd5mbxibjc7gzj8x4isbiizpdisi";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ftputil/default.nix b/pkgs/development/python-modules/ftputil/default.nix
index 941b5792f30..fb1bf7549fc 100644
--- a/pkgs/development/python-modules/ftputil/default.nix
+++ b/pkgs/development/python-modules/ftputil/default.nix
@@ -1,15 +1,16 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{ lib, buildPythonPackage, fetchPypi, pythonOlder, pytest, freezegun }:
 
 buildPythonPackage rec {
-  version = "3.4";
+  version = "4.0.0";
   pname = "ftputil";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "374b01e174079e91babe2a462fbd6f6c00dbfbfa299dec04239ca4229fbf8762";
+    sha256 = "d494c47f24fd3f8fbe92d40d90e0902c0e04288f200688af2b16d6b46fe441e1";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest freezegun ];
 
   checkPhase = ''
     touch Makefile
diff --git a/pkgs/development/python-modules/fuse-python/default.nix b/pkgs/development/python-modules/fuse-python/default.nix
index 8c69ead0ae0..ab87f57be39 100644
--- a/pkgs/development/python-modules/fuse-python/default.nix
+++ b/pkgs/development/python-modules/fuse-python/default.nix
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   buildInputs = [ fuse ];
   nativeBuildInputs = [ pkgconfig ];
-  
+
   # no tests in the Pypi archive
   doCheck = false;
 
@@ -22,4 +22,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ psyanticy ];
   };
 }
-
diff --git a/pkgs/development/python-modules/fx2/default.nix b/pkgs/development/python-modules/fx2/default.nix
index acbaf93a4ea..bcc7a4b5c98 100644
--- a/pkgs/development/python-modules/fx2/default.nix
+++ b/pkgs/development/python-modules/fx2/default.nix
@@ -7,15 +7,15 @@
 , crcmod
 }:
 
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "fx2";
-  version = "unstable-2020-01-25";
+  version = "0.9";
 
   src = fetchFromGitHub {
     owner = "whitequark";
     repo = "libfx2";
-    rev = "d3e37f640d706aac5e69ae4476f6cd1bd0cd6a4e";
-    sha256 = "1dsyknjpgf4wjkfr64lln1lcy7qpxdx5x3qglidrcswzv9b3i4fg";
+    rev = version;
+    sha256 = "sha256-Uk+K7ym92JX4fC3PyTNxd0UvBzoNZmtbscBYjSWChuk=";
   };
 
   nativeBuildInputs = [ sdcc ];
diff --git a/pkgs/development/python-modules/gast/default.nix b/pkgs/development/python-modules/gast/default.nix
index 3d073df843d..49687ebe318 100644
--- a/pkgs/development/python-modules/gast/default.nix
+++ b/pkgs/development/python-modules/gast/default.nix
@@ -2,10 +2,10 @@
 
 buildPythonPackage rec {
   pname = "gast";
-  version =  "0.3.3";
+  version =  "0.4.0";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b881ef288a49aa81440d2c5eb8aeefd4c2bb8993d5f50edae7413a85bfdb3b57";
+    sha256 = "40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1";
   };
   checkInputs = [ astunparse ] ;
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/gdown/default.nix b/pkgs/development/python-modules/gdown/default.nix
index 74eb5de4865..9af10727285 100644
--- a/pkgs/development/python-modules/gdown/default.nix
+++ b/pkgs/development/python-modules/gdown/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonApplication rec {
   pname = "gdown";
-  version = "3.11.1";
+  version = "3.12.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p023812hh7w7d08njjsfn0xzldl4m73yx8p243yb2q49ypjl6nz";
+    sha256 = "4b3a1301e57bfd8dce939bf25ef8fbb4b23967fd0f878eede328bdcc41386bac";
   };
 
   propagatedBuildInputs = [ filelock requests tqdm setuptools ];
diff --git a/pkgs/development/python-modules/geoalchemy2/default.nix b/pkgs/development/python-modules/geoalchemy2/default.nix
index ea673dc3346..e96c67b044d 100644
--- a/pkgs/development/python-modules/geoalchemy2/default.nix
+++ b/pkgs/development/python-modules/geoalchemy2/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "GeoAlchemy2";
-  version = "0.8.3";
+  version = "0.8.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a5a2444d90ce7f2c6b2d7bd7346c8aed16fd32c3e190e631576a51814e8f7ee9";
+    sha256 = "02jbad9vbnjx8bmfvxg77z18nymrry6li8hy9pwi0yiyvwbnycyr";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/geoip2/default.nix b/pkgs/development/python-modules/geoip2/default.nix
index 1f03b1dd725..329fe7aa07d 100644
--- a/pkgs/development/python-modules/geoip2/default.nix
+++ b/pkgs/development/python-modules/geoip2/default.nix
@@ -1,24 +1,29 @@
 { buildPythonPackage, lib, fetchPypi, isPy27
-, ipaddress
+, aiohttp
 , maxminddb
 , mock
+, mocket
 , requests
 , requests-mock
 }:
 
 buildPythonPackage rec {
-  version = "3.0.0";
+  version = "4.0.2";
   pname = "geoip2";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1q1ciqqd0qjkpgwsg9fws8wcqchkcq84gv2g4q3xgh2lpj3yjsaq";
+    sha256 = "4afb5d899eac08444e461239c8afb165c90234adc0b5dc952792d9da74c9091b";
   };
 
-  propagatedBuildInputs = [ requests maxminddb ]
-    ++ lib.optionals isPy27 [ ipaddress ];
+  patchPhase = ''
+    substituteInPlace requirements.txt --replace "requests>=2.24.0,<3.0.0" "requests"
+  '';
 
-  checkInputs = [ requests-mock ];
+  propagatedBuildInputs = [ aiohttp requests maxminddb ];
+
+  checkInputs = [ mocket requests-mock ];
 
   meta = with lib; {
     description = "MaxMind GeoIP2 API";
diff --git a/pkgs/development/python-modules/geojson/default.nix b/pkgs/development/python-modules/geojson/default.nix
index 5d0fa902416..b762434fb65 100644
--- a/pkgs/development/python-modules/geojson/default.nix
+++ b/pkgs/development/python-modules/geojson/default.nix
@@ -18,6 +18,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/frewsxcv/python-geojson";
     description = "Python bindings and utilities for GeoJSON";
     license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ geistesk ];
+    maintainers = with lib.maintainers; [ oxzi ];
   };
 }
diff --git a/pkgs/development/python-modules/geopandas/default.nix b/pkgs/development/python-modules/geopandas/default.nix
index 9a86acf83b5..07982b1e42b 100644
--- a/pkgs/development/python-modules/geopandas/default.nix
+++ b/pkgs/development/python-modules/geopandas/default.nix
@@ -4,14 +4,14 @@
 
 buildPythonPackage rec {
   pname = "geopandas";
-  version = "0.7.0";
+  version = "0.8.0";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "geopandas";
     repo = "geopandas";
     rev = "v${version}";
-    sha256 = "0cfdvl4cvi0nim1qbmzf7vg0all272i8r0kj4xgdd0hr2j4jdg9p";
+    sha256 = "033jygbyycl9s6b0kqix9xynhapc2xd8nh47kcfacn514gyncgah";
   };
 
   checkInputs = [ pytest Rtree ];
diff --git a/pkgs/development/python-modules/geventhttpclient/default.nix b/pkgs/development/python-modules/geventhttpclient/default.nix
index 2bcccbec8e4..55ef8c39981 100644
--- a/pkgs/development/python-modules/geventhttpclient/default.nix
+++ b/pkgs/development/python-modules/geventhttpclient/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "geventhttpclient";
-  version = "1.4.2";
+  version = "1.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "967b11c4a37032f98c08f58176e4ac8de10473ab0c1f617acb8202d44b97fe21";
+    sha256 = "f59e5153f22e4a0be27b48aece8e45e19c1da294f8c49442b1c9e4d152c5c4c3";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/glasgow/default.nix b/pkgs/development/python-modules/glasgow/default.nix
index 6a32364fdf3..8a63f78728e 100644
--- a/pkgs/development/python-modules/glasgow/default.nix
+++ b/pkgs/development/python-modules/glasgow/default.nix
@@ -18,15 +18,15 @@
 
 buildPythonPackage rec {
   pname = "glasgow";
-  version = "unstable-2020-02-08";
+  version = "unstable-2020-06-29";
   # python software/setup.py --version
   realVersion = "0.1.dev1352+g${lib.substring 0 7 src.rev}";
 
   src = fetchFromGitHub {
     owner = "GlasgowEmbedded";
     repo = "glasgow";
-    rev = "2a8bfc981b90ba5d86c310911dbd6ffe71acd498";
-    sha256 = "01v5269bv09ggvmq6lqyhr5am51hzmwya1p5n62h84b7rdwd8q9m";
+    rev = "f885790d7927b893e631c33744622d6ebc18b5e3";
+    sha256 = "sha256-fSorSEa5K09aPEOk4XPWOFRxYl1KGVy29jOBqIvs2hk=";
   };
 
   nativeBuildInputs = [ setuptools_scm sdcc ];
diff --git a/pkgs/development/python-modules/globre/default.nix b/pkgs/development/python-modules/globre/default.nix
new file mode 100644
index 00000000000..ff2302f5467
--- /dev/null
+++ b/pkgs/development/python-modules/globre/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, pythonAtLeast
+, buildPythonPackage
+, fetchPypi
+, nose
+, coverage
+}:
+
+buildPythonPackage rec {
+  pname = "globre";
+  version = "0.1.5";
+  # https://github.com/metagriffin/globre/issues/7
+  disabled = pythonAtLeast "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1qhjpg0722871dm5m7mmldf6c7mx58fbdvk1ix5i3s9py82448gf";
+  };
+
+  checkInputs = [ nose coverage ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/metagriffin/globre";
+    description = "A python glob-like regular expression generation library.";
+    maintainers = with maintainers; [ glittershark ];
+    license = licenses.gpl3;
+  };
+}
diff --git a/pkgs/development/python-modules/globus-sdk/default.nix b/pkgs/development/python-modules/globus-sdk/default.nix
index f7a89732467..7956a31492c 100644
--- a/pkgs/development/python-modules/globus-sdk/default.nix
+++ b/pkgs/development/python-modules/globus-sdk/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "globus-sdk";
-  version = "1.9.0";
+  version = "1.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1fm0iqfbzd13m1lkd4h3ss4y9isp5cadd2w2k0qr3yqwfmrqqba2";
+    sha256 = "883a862ddd17b0f4868ec55d6697a64c13d91c41b9fa5103198d2140053abac2";
   };
 
   checkPhase = ''
@@ -23,11 +23,11 @@ buildPythonPackage rec {
 
   # No tests in archive
   doCheck = false;
-  
+
   checkInputs = [ flake8 nose2 mock ];
-  
+
   propagatedBuildInputs = [ requests pyjwt  ];
- 
+
   meta = with lib; {
     description = "A convenient Pythonic interface to Globus REST APIs, including the Transfer API and the Globus Auth API.";
     homepage =  "https://github.com/globus/globus-sdk-python";
diff --git a/pkgs/development/python-modules/glom/default.nix b/pkgs/development/python-modules/glom/default.nix
index 4188bdccf91..6f52eb392a5 100644
--- a/pkgs/development/python-modules/glom/default.nix
+++ b/pkgs/development/python-modules/glom/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "glom";
-  version = "20.5.0";
+  version = "20.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e753d2e8d16647ffcd9f0f99ac85d3db523ff0a1f097cf0a154a60702bca7e42";
+    sha256 = "5fa3a9d99c7f3e5410a810fa8a158c0f71e39036c47b77745c7f2e4630372f82";
   };
 
   propagatedBuildInputs = [ boltons attrs face ];
diff --git a/pkgs/development/python-modules/google-api-python-client/default.nix b/pkgs/development/python-modules/google-api-python-client/default.nix
index 98e0c8712b3..492a0519d18 100644
--- a/pkgs/development/python-modules/google-api-python-client/default.nix
+++ b/pkgs/development/python-modules/google-api-python-client/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "google-api-python-client";
-  version = "1.9.3";
+  version = "1.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "220349ce189a85229fc46875d467101318495a4a735c0ff2f165b9bdbc7511a0";
+    sha256 = "0yxrz897kpjypfqzcy0ry90hc34w47q4fzqidp81h6pg01c03x6a";
   };
 
   # No tests included in archive
diff --git a/pkgs/development/python-modules/google-auth-httplib2/default.nix b/pkgs/development/python-modules/google-auth-httplib2/default.nix
index 2d6a9a3e405..ff5aa3b2bac 100644
--- a/pkgs/development/python-modules/google-auth-httplib2/default.nix
+++ b/pkgs/development/python-modules/google-auth-httplib2/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "google-auth-httplib2";
-  version = "0.0.3";
+  version = "0.0.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "098fade613c25b4527b2c08fa42d11f3c2037dda8995d86de0745228e965d445";
+    sha256 = "8d092cc60fb16517b12057ec0bba9185a96e3b7169d86ae12eae98e645b7bc39";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/google_api_core/default.nix b/pkgs/development/python-modules/google_api_core/default.nix
index 233ba6ff0cb..a72f68c19ff 100644
--- a/pkgs/development/python-modules/google_api_core/default.nix
+++ b/pkgs/development/python-modules/google_api_core/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "google-api-core";
-  version = "1.20.0";
+  version = "1.22.1";
   disabled = isPy27; # google namespace no longer works on python2
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "eec2c302b50e6db0c713fb84b71b8d75cfad5dc6d4dffc78e9f69ba0008f5ede";
+    sha256 = "35cba563034d668ae90ffe1f03193a84e745b38f09592f60258358b5e5ee6238";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google_auth/default.nix b/pkgs/development/python-modules/google_auth/default.nix
index 240804e8080..59ed94d3486 100644
--- a/pkgs/development/python-modules/google_auth/default.nix
+++ b/pkgs/development/python-modules/google_auth/default.nix
@@ -17,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "google-auth";
-  version = "1.17.0";
+  version = "1.20.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2f35b33801a41e4115cd93ff0aeb152f383edc0e27277ae28be2dccf238611b9";
+    sha256 = "2f34dd810090d0d4c9d5787c4ad7b4413d1fbfb941e13682c7a2298d3b6cdcc8";
   };
 
   propagatedBuildInputs = [ six pyasn1-modules cachetools rsa setuptools ];
diff --git a/pkgs/development/python-modules/google_cloud_asset/default.nix b/pkgs/development/python-modules/google_cloud_asset/default.nix
index 5d4328ead52..927ad94e78f 100644
--- a/pkgs/development/python-modules/google_cloud_asset/default.nix
+++ b/pkgs/development/python-modules/google_cloud_asset/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-asset";
-  version = "0.10.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d25ab222daaa0b827b00dae8c76e4c1b13ba5c687f0acdfd66529b805d41b7f3";
+    sha256 = "fd4c0f7f61a8a1c5907cd6cc27a028b16236bf3d982ff412df0d2c981cef5ae5";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_automl/default.nix b/pkgs/development/python-modules/google_cloud_automl/default.nix
index 6900b4f212f..43ffdc7a70d 100644
--- a/pkgs/development/python-modules/google_cloud_automl/default.nix
+++ b/pkgs/development/python-modules/google_cloud_automl/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-automl";
-  version = "0.10.0";
+  version = "1.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "031331fs97jpyxacwsmhig0ndidn97r288qnkrzfdvg1wxw5rdhi";
+    sha256 = "f08abe78d37fb94a3748aa43e66dae2bad52f991cc7740501a341bc6f6387fd5";
   };
 
   checkInputs = [ pandas pytest mock google_cloud_storage ];
diff --git a/pkgs/development/python-modules/google_cloud_bigquery/default.nix b/pkgs/development/python-modules/google_cloud_bigquery/default.nix
index 0b7c5d5c16e..b8120285917 100644
--- a/pkgs/development/python-modules/google_cloud_bigquery/default.nix
+++ b/pkgs/development/python-modules/google_cloud_bigquery/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery";
-  version = "1.24.0";
+  version = "1.26.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ca22hzql8x1z6bx9agidx0q09w24jwzkgg49k5j1spcignwxz3z";
+    sha256 = "51c29b95d460486d9e0210f63e8193691cd08480b69775270e84dd3db87c1bf2";
   };
 
   checkInputs = [ pytest mock ipython freezegun ];
diff --git a/pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix b/pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix
index dc5098fd67a..97ad04334fc 100644
--- a/pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix
+++ b/pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-datatransfer";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6eae79e6950f70d48b0578ae95f93530b4eac28216b96e2279cb2f94c5f2ba33";
+    sha256 = "71791a38a0ec535fdd4970d3403aa4cb2d9ca5c2729f80730858be2776b3c518";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_bigtable/default.nix b/pkgs/development/python-modules/google_cloud_bigtable/default.nix
index 0eb606bf7f4..91c3109e91a 100644
--- a/pkgs/development/python-modules/google_cloud_bigtable/default.nix
+++ b/pkgs/development/python-modules/google_cloud_bigtable/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigtable";
-  version = "1.2.1";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1wwhjfhvz5g4720qcdrj01fqb8kh3n36sxjpz8pzwhc7z4z5srs8";
+    sha256 = "e777333cbe85888f888c034d32880bb6a602ad83d8c81a95edca7c522cf430d8";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_container/default.nix b/pkgs/development/python-modules/google_cloud_container/default.nix
index e79a3ac56fe..ec41592b48b 100644
--- a/pkgs/development/python-modules/google_cloud_container/default.nix
+++ b/pkgs/development/python-modules/google_cloud_container/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-container";
-  version = "0.5.0";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9dd4523291401d8d872f89a87fa5a1d2bcbf6b8ceb1ec0659098fec37d9250e4";
+    sha256 = "6f714e3d427e2b36d1365fc400f4d379972529fb40f798d9c0e06c7c3418fc89";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_core/default.nix b/pkgs/development/python-modules/google_cloud_core/default.nix
index c5a0ead7c50..f277711e8f1 100644
--- a/pkgs/development/python-modules/google_cloud_core/default.nix
+++ b/pkgs/development/python-modules/google_cloud_core/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-core";
-  version = "1.3.0";
+  version = "1.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1n19q57y4d89cjgmrg0f2a7yp7l1np2448mrhpndq354h389m3w7";
+    sha256 = "613e56f164b6bee487dd34f606083a0130f66f42f7b10f99730afdf1630df507";
   };
 
   propagatedBuildInputs = [ google_api_core grpcio setuptools ];
diff --git a/pkgs/development/python-modules/google_cloud_dataproc/default.nix b/pkgs/development/python-modules/google_cloud_dataproc/default.nix
index 79d24694bc6..3db04fb7d4b 100644
--- a/pkgs/development/python-modules/google_cloud_dataproc/default.nix
+++ b/pkgs/development/python-modules/google_cloud_dataproc/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dataproc";
-  version = "0.8.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f37327079f6bc59fafcfb7ba4855137d26190a8d31fe8ee5180460a5eebd645f";
+    sha256 = "d6d94af6c0d5aee0bb88d058a180f4d3341209e112f85a1c7ce0df7887cbf867";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_datastore/default.nix b/pkgs/development/python-modules/google_cloud_datastore/default.nix
index 6305da93d8c..ff2d0b3baa9 100644
--- a/pkgs/development/python-modules/google_cloud_datastore/default.nix
+++ b/pkgs/development/python-modules/google_cloud_datastore/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-datastore";
-  version = "1.12.0";
+  version = "1.15.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c98690833ee2e6341a4b802f278ba17d582ce58eb2e73152516ebc77522d82d7";
+    sha256 = "c94bc357e975ce7bd5e5636497316c1bf4d015891e0ed96df9e7ce901415b94a";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_dlp/default.nix b/pkgs/development/python-modules/google_cloud_dlp/default.nix
index b0d3aa5a634..8273f40565f 100644
--- a/pkgs/development/python-modules/google_cloud_dlp/default.nix
+++ b/pkgs/development/python-modules/google_cloud_dlp/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dlp";
-  version = "0.15.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9abef093fb344ec556a94e5466b480046c18b8bb0a12f1d202f06c43f3e01f7d";
+    sha256 = "2ccf04209f96b4759d8ed76da2c916a456386836caacd47ce01b6344f5b8f212";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_firestore/default.nix b/pkgs/development/python-modules/google_cloud_firestore/default.nix
index abb849f63a8..efc52657fd9 100644
--- a/pkgs/development/python-modules/google_cloud_firestore/default.nix
+++ b/pkgs/development/python-modules/google_cloud_firestore/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-firestore";
-  version = "1.7.0";
+  version = "1.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "afd986bc4bb5a92d6ebe02977cc1d5dc56bf401590d1df43c07609dbec21155d";
+    sha256 = "dfe02fc0a77a4e28144c46d441553352d81498ffd8f49906b57342d06c7f5b54";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/google_cloud_kms/default.nix b/pkgs/development/python-modules/google_cloud_kms/default.nix
index c333a1fa137..79fe4bcc80f 100644
--- a/pkgs/development/python-modules/google_cloud_kms/default.nix
+++ b/pkgs/development/python-modules/google_cloud_kms/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-kms";
-  version = "1.4.0";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9d108b2754cb2c6ccc60604d27855c7139dad4b2455342e1e7bfffc27c5193bd";
+    sha256 = "c590a8ab12a3f776ab35e570d21c0881f9d73c444bd509e54321a4c715233372";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_logging/default.nix b/pkgs/development/python-modules/google_cloud_logging/default.nix
index fa4590ff0b2..6aeef14b692 100644
--- a/pkgs/development/python-modules/google_cloud_logging/default.nix
+++ b/pkgs/development/python-modules/google_cloud_logging/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-logging";
-  version = "1.15.0";
+  version = "1.15.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0smpvzdbz3ih3vc0nmn9619xa40mmqk9rs9ic1mwwyh1iyi44waz";
+    sha256 = "cb0d4af9d684eb8a416f14c39d9fa6314be3adf41db2dd8ee8e30db9e8853d90";
   };
 
   checkInputs = [ pytest mock webapp2 django flask ];
diff --git a/pkgs/development/python-modules/google_cloud_pubsub/default.nix b/pkgs/development/python-modules/google_cloud_pubsub/default.nix
index e5d62dd8f46..b1e4eae52ad 100644
--- a/pkgs/development/python-modules/google_cloud_pubsub/default.nix
+++ b/pkgs/development/python-modules/google_cloud_pubsub/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-pubsub";
-  version = "1.5.0";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d396ae1938e966e1ac3b981d14db7b0f9fabab553b0876c3202e187e4b477ab6";
+    sha256 = "c8d098ebd208d00c8f3bb55eefecd8553e7391d59700426a97d35125f0dcb248";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix b/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix
index c953407af8f..08e2c38ea1b 100644
--- a/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix
+++ b/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-runtimeconfig";
-  version = "0.31.0";
+  version = "0.32.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3e0218abc438f2f43605db27189fa7a48c3ca3defc45054dac01835527058a4c";
+    sha256 = "3d125c01817d5bef2b644095b044d22b03b9d8d4591088cadd8e97851f7a150a";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_securitycenter/default.nix b/pkgs/development/python-modules/google_cloud_securitycenter/default.nix
index e6b0fe5f221..a3992825d2e 100644
--- a/pkgs/development/python-modules/google_cloud_securitycenter/default.nix
+++ b/pkgs/development/python-modules/google_cloud_securitycenter/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-securitycenter";
-  version = "0.5.0";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e2c14e01697e54aef9d755bd8abff01af748f42f4e3559efcbb3b0db659f66ac";
+    sha256 = "14ebad262cd01c9a3998561684617be2e97ad5d27dab1918c14b964f97e1f8f7";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_spanner/default.nix b/pkgs/development/python-modules/google_cloud_spanner/default.nix
index e0158dfbaad..ce03add44e4 100644
--- a/pkgs/development/python-modules/google_cloud_spanner/default.nix
+++ b/pkgs/development/python-modules/google_cloud_spanner/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-spanner";
-  version = "1.17.0";
+  version = "1.17.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "299e08faf2402d9c6a8e2f2b62f6eade729cecb3d27b1b635bb1f126e0ddc77e";
+    sha256 = "3240a04eaa6496e9d8bf4929f4ff04de1652621fd49555eb83b743c48ed9ca04";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_storage/default.nix b/pkgs/development/python-modules/google_cloud_storage/default.nix
index d3e4b8fd932..db113962336 100644
--- a/pkgs/development/python-modules/google_cloud_storage/default.nix
+++ b/pkgs/development/python-modules/google_cloud_storage/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchPypi
 , google_resumable_media
@@ -11,32 +11,35 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-storage";
-  version = "1.28.1";
+  version = "1.30.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a7b5c326e7307a83fa1f1f0ef71aba9ad1f3a2bc6a768401e13fc02369fd8612";
+    sha256 = "0634addb7576d48861d9963312fc82a0436042b8f282414ed58ca76d73edee54";
   };
 
   propagatedBuildInputs = [
-    google_resumable_media
     google_api_core
     google_cloud_core
+    google_resumable_media
     setuptools
   ];
-  checkInputs = [ pytest mock ];
+  checkInputs = [
+    mock
+    pytest
+  ];
 
   # remove directory from interferring with importing modules
   # ignore tests which require credentials
   checkPhase = ''
     rm -r google
-    pytest tests/unit -k 'not create'
+    pytest tests/unit -k 'not (create or get or post)'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Google Cloud Storage API client library";
     homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
     license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/google_cloud_texttospeech/default.nix b/pkgs/development/python-modules/google_cloud_texttospeech/default.nix
index 2c3ef0d39fe..3a052c73cda 100644
--- a/pkgs/development/python-modules/google_cloud_texttospeech/default.nix
+++ b/pkgs/development/python-modules/google_cloud_texttospeech/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-texttospeech";
-  version = "2.0.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4ed3d9f17fa7b8d53dbc4992d976f72d845266786a81938444315e5a7b194b53";
+    sha256 = "cbbd397e72b6189668134f3c8e8c303198188334a4e6a5f77cc90c3220772f9e";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_trace/default.nix b/pkgs/development/python-modules/google_cloud_trace/default.nix
index 4c49b0e70eb..5b19243709f 100644
--- a/pkgs/development/python-modules/google_cloud_trace/default.nix
+++ b/pkgs/development/python-modules/google_cloud_trace/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-trace";
-  version = "0.23.0";
+  version = "0.24.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1a3fad1ae2b780dd5e6d5ddc626db722749405b7b66f3c2e5e87a9d29a4819c8";
+    sha256 = "0c342dbd9daf5375b3f8bb94302b7ea9a9946f76684e457a38ff0d420b3b6556";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_translate/default.nix b/pkgs/development/python-modules/google_cloud_translate/default.nix
index 7537b6fe52d..f25f4badc81 100644
--- a/pkgs/development/python-modules/google_cloud_translate/default.nix
+++ b/pkgs/development/python-modules/google_cloud_translate/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-translate";
-  version = "2.0.1";
+  version = "3.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02wlqlrxk0x6a9wifcly2pr84r6k8i97ws0prx21379fss39gf2a";
+    sha256 = "ecdea3e176e80f606d08c4c7fd5acea6b3dd960f4b2e9a65951aaf800350a759";
   };
 
   # google_cloud_core[grpc] -> grpcio
diff --git a/pkgs/development/python-modules/google_cloud_videointelligence/default.nix b/pkgs/development/python-modules/google_cloud_videointelligence/default.nix
index 07fb02ea595..a8da09dec64 100644
--- a/pkgs/development/python-modules/google_cloud_videointelligence/default.nix
+++ b/pkgs/development/python-modules/google_cloud_videointelligence/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-videointelligence";
-  version = "1.14.0";
+  version = "1.15.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c91f605d00926416bcd4d32d6ca195e0e5bd6fb794bc67b09910a19ee2ca6570";
+    sha256 = "c2b4b3579196c0bb7301fbe1de7008ac5081f88afc0599a10ee79a5ade385922";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix b/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix
index 55c370717e1..a43f7fd5f9c 100644
--- a/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix
+++ b/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-websecurityscanner";
-  version = "0.4.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1c8031e6eec59ee3e2d4af88090ba36521ceb67d79cb297d3c128d2a16af0798";
+    sha256 = "1de60f880487b898b499345f46f7acf38651f5356ebca8673116003a57f25393";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/google_resumable_media/default.nix b/pkgs/development/python-modules/google_resumable_media/default.nix
index 40c8f2596bb..ac8a111b3e7 100644
--- a/pkgs/development/python-modules/google_resumable_media/default.nix
+++ b/pkgs/development/python-modules/google_resumable_media/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-resumable-media";
-  version = "0.5.1";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "97155236971970382b738921f978a6f86a7b5a0b0311703d991e065d3cb55773";
+    sha256 = "57841f5e65fb285c01071f439724745b2549a72eb75e5fd979198eb518608ed0";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/gpxpy/default.nix b/pkgs/development/python-modules/gpxpy/default.nix
index 028ca365423..4cd03103d85 100644
--- a/pkgs/development/python-modules/gpxpy/default.nix
+++ b/pkgs/development/python-modules/gpxpy/default.nix
@@ -1,14 +1,15 @@
-{ lib, fetchFromGitHub, buildPythonPackage, python, lxml }:
+{ lib, fetchFromGitHub, buildPythonPackage, python, lxml, isPy3k }:
 
 buildPythonPackage rec {
   pname = "gpxpy";
-  version = "1.3.5";
+  version = "1.4.2";
+  disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "tkrajina";
     repo = pname;
     rev = "v${version}";
-    sha256 = "18r7pfda7g3l0hv8j9565n52cvvgjxiiqqzagfdfaba1djgl6p8b";
+    sha256 = "1r5gb660nrkrdbw5m5h1n5k10npcfv9bxqv92z55ds8r7rw2saz6";
   };
 
   propagatedBuildInputs = [ lxml ];
diff --git a/pkgs/development/python-modules/graphql-core/default.nix b/pkgs/development/python-modules/graphql-core/default.nix
index 21cc58e67fc..9e48f66c13d 100644
--- a/pkgs/development/python-modules/graphql-core/default.nix
+++ b/pkgs/development/python-modules/graphql-core/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "graphql-core";
-  version = "2.3.1";
+  version = "3.1.2";
 
   src = fetchFromGitHub {
     owner = "graphql-python";
     repo = pname;
     rev = "v${version}";
-    sha256 = "029jnwy6zbj4x7f3ffpn1gyx0w9ala9cj2g115g6aa7im3xd2jma";
+    sha256 = "0kvbj9dwpx8mjfj86kqx54dbz9k72ki147ssyj0ca2syvb8jm3wb";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/graphql-server-core/default.nix b/pkgs/development/python-modules/graphql-server-core/default.nix
index e12d71836f1..e26e936f48f 100644
--- a/pkgs/development/python-modules/graphql-server-core/default.nix
+++ b/pkgs/development/python-modules/graphql-server-core/default.nix
@@ -1,23 +1,33 @@
 { buildPythonPackage
 , fetchFromGitHub
 , lib
-
 , black
 , graphql-core
 , promise
+, fetchpatch
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "graphql-server-core";
-  version = "1.2.0";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "graphql-python";
     repo = pname;
     rev = "v${version}";
-    sha256 = "123q3xziv0s22h10v3f5slirf4b6nxj0hnmarwx9vws6x21bgrgh";
+    sha256 = "1w3biv2za2m1brwjy0z049c2m94gm1zfwxzgc6lwrsci724jv9fr";
   };
 
+  disable = pythonOlder "3.6";
+
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/graphql-python/graphql-server-core/commit/865ee9d5602f352c958f6f7e15adbe9abe216784.patch";
+      sha256 = "03p44p4j8rys7mgamh2h9ibbnac2cqwvp5f5hrl2avj2hh0l6j46";
+    })
+  ];
+
   propagatedBuildInputs = [
     graphql-core
     promise
diff --git a/pkgs/development/python-modules/graphviz/default.nix b/pkgs/development/python-modules/graphviz/default.nix
index fcb2867050d..f531c547f9c 100644
--- a/pkgs/development/python-modules/graphviz/default.nix
+++ b/pkgs/development/python-modules/graphviz/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "graphviz";
-  version = "0.10.1";
+  version = "0.14.1";
 
   # patch does not apply to PyPI tarball due to different line endings
   src = fetchFromGitHub {
     owner = "xflr6";
     repo = "graphviz";
     rev = version;
-    sha256 = "1vqk4xy45c72la56j24z9jmjp5a0aa2k32fybnlbkzqjvvbl72d8";
+    sha256 = "02bdiac5x93f2mjw5kpgs6kv81hzg07y0mw1nxvhyg8aignzmh3c";
   };
 
   patches = [
@@ -30,9 +30,9 @@ buildPythonPackage rec {
     })
   ];
 
-  # Fontconfig error: Cannot load default config file 
-  FONTCONFIG_FILE = makeFontsConf { 
-    fontDirectories = [ freefont_ttf ]; 
+  # Fontconfig error: Cannot load default config file
+  FONTCONFIG_FILE = makeFontsConf {
+    fontDirectories = [ freefont_ttf ];
   };
 
   checkInputs = [ mock pytest pytest-mock pytestcov ];
diff --git a/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch b/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch
index ad632974c28..d6da1ff47ce 100644
--- a/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch
+++ b/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch
@@ -1,38 +1,39 @@
 diff --git a/graphviz/backend.py b/graphviz/backend.py
-index 704017b..fe4aefe 100644
+index 6f4cc0c..bc4781e 100644
 --- a/graphviz/backend.py
 +++ b/graphviz/backend.py
-@@ -114,7 +114,7 @@ def command(engine, format, filepath=None, renderer=None, formatter=None):
-     suffix = '.'.join(reversed(format_arg))
-     format_arg = ':'.join(format_arg)
+@@ -122,7 +122,7 @@ def command(engine, format_, filepath=None, renderer=None, formatter=None):
+         raise ValueError('unknown formatter: %r' % formatter)
  
--    cmd = [engine, '-T%s' % format_arg]
-+    cmd = [os.path.join('@graphviz@/bin', engine), '-T%s' % format_arg]
-     rendered = None
-     if filepath is not None:
-         cmd.extend(['-O', filepath])
-@@ -217,7 +217,7 @@ def version():
+     output_format = [f for f in (format_, renderer, formatter) if f is not None]
+-    cmd = [engine, '-T%s' % ':'.join(output_format)]
++    cmd = [os.path.join('@graphviz@/bin', engine), '-T%s' % ':'.join(output_format)]
+ 
+     if filepath is None:
+         rendered = None
+@@ -255,7 +255,7 @@ def version():
          subprocess.CalledProcessError: If the exit status is non-zero.
          RuntimmeError: If the output cannot be parsed into a version number.
      """
 -    cmd = ['dot', '-V']
 +    cmd = ['@graphviz@/bin/dot', '-V']
-     out, _ = run(cmd, check=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
- 
-     info = out.decode('ascii')
+     out, _ = run(cmd, check=True, encoding='ascii',
+                  stdout=subprocess.PIPE,
+                  stderr=subprocess.STDOUT)
 diff --git a/tests/test_backend.py b/tests/test_backend.py
-index 7ec12f7..2e8550d 100644
+index 9f307f5..e43bf5b 100644
 --- a/tests/test_backend.py
 +++ b/tests/test_backend.py
-@@ -47,6 +47,7 @@ def test_render_formatter_unknown():
-         render('dot', 'ps', 'nonfilepath', 'ps', '')
+@@ -50,7 +50,7 @@ def test_run_encoding_mocked(mocker, Popen, input=u'sp\xe4m', encoding='utf-8'):
+         m.decode.assert_called_once_with(encoding)
  
  
+-@pytest.exe
 +@pytest.mark.skip(reason='empty $PATH has no effect')
  @pytest.mark.usefixtures('empty_path')
- def test_render_missing_executable():
-     with pytest.raises(ExecutableNotFound, match=r'execute'):
-@@ -85,7 +86,7 @@ def test_render_mocked(capsys, mocker, Popen, quiet):
+ @pytest.mark.parametrize('func, args', [
+     (render, ['dot', 'pdf', 'nonfilepath']),
+@@ -143,7 +143,7 @@ def test_render_mocked(capsys, mocker, Popen, quiet):  # noqa: N803
  
      assert render('dot', 'pdf', 'nonfilepath', quiet=quiet) == 'nonfilepath.pdf'
  
@@ -40,25 +41,17 @@ index 7ec12f7..2e8550d 100644
 +    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-Tpdf', '-O', 'nonfilepath'],
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.PIPE,
-                                   startupinfo=mocker.ANY)
-@@ -94,6 +95,7 @@ def test_render_mocked(capsys, mocker, Popen, quiet):
-     assert capsys.readouterr() == ('', '' if quiet else 'stderr')
- 
- 
-+@pytest.mark.skip(reason='empty $PATH has no effect')
- @pytest.mark.usefixtures('empty_path')
- def test_pipe_missing_executable():
-     with pytest.raises(ExecutableNotFound, match=r'execute'):
-@@ -143,7 +145,7 @@ def test_pipe_pipe_invalid_data_mocked(mocker, py2, Popen, quiet):  # noqa: N803
-     assert e.value.returncode is mocker.sentinel.returncode
+                                   cwd=None, startupinfo=mocker.ANY)
+@@ -201,7 +201,7 @@ def test_pipe_pipe_invalid_data_mocked(mocker, py2, Popen, quiet):  # noqa: N803
      assert e.value.stdout is mocker.sentinel.out
-     assert e.value.stderr is err
+     e.value.stdout = mocker.sentinel.new_stdout
+     assert e.value.stdout is mocker.sentinel.new_stdout
 -    Popen.assert_called_once_with(['dot', '-Tpng'],
 +    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-Tpng'],
                                    stdin=subprocess.PIPE,
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.PIPE,
-@@ -166,7 +168,7 @@ def test_pipe_mocked(capsys, mocker, Popen, quiet):  # noqa: N803
+@@ -224,7 +224,7 @@ def test_pipe_mocked(capsys, mocker, Popen, quiet):  # noqa: N803
  
      assert pipe('dot', 'png', b'nongraph', quiet=quiet) is mocker.sentinel.out
  
@@ -67,16 +60,8 @@ index 7ec12f7..2e8550d 100644
                                    stdin=subprocess.PIPE,
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.PIPE,
-@@ -176,6 +178,7 @@ def test_pipe_mocked(capsys, mocker, Popen, quiet):  # noqa: N803
-     assert capsys.readouterr() == ('', '' if quiet else 'stderr')
- 
- 
-+@pytest.mark.skip(reason='empty $PATH has no effect')
- @pytest.mark.usefixtures('empty_path')
- def test_version_missing_executable():
-     with pytest.raises(ExecutableNotFound, match=r'execute'):
-@@ -196,7 +199,7 @@ def test_version_parsefail_mocked(mocker, Popen):
-     with pytest.raises(RuntimeError):
+@@ -250,7 +250,7 @@ def test_version_parsefail_mocked(mocker, Popen):  # noqa: N803
+     with pytest.raises(RuntimeError, match=r'nonversioninfo'):
          version()
  
 -    Popen.assert_called_once_with(['dot', '-V'],
@@ -84,9 +69,9 @@ index 7ec12f7..2e8550d 100644
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.STDOUT,
                                    startupinfo=mocker.ANY)
-@@ -211,7 +214,7 @@ def test_version_mocked(mocker, Popen):
+@@ -269,7 +269,7 @@ def test_version_mocked(mocker, Popen, stdout, expected):  # noqa: N803
  
-     assert version() == (1, 2, 3)
+     assert version() == expected
  
 -    Popen.assert_called_once_with(['dot', '-V'],
 +    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-V'],
diff --git a/pkgs/development/python-modules/green/default.nix b/pkgs/development/python-modules/green/default.nix
index de1831e3317..1d35978824f 100644
--- a/pkgs/development/python-modules/green/default.nix
+++ b/pkgs/development/python-modules/green/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "green";
-  version = "3.1.4";
+  version = "3.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "65f87e4c0d2aca63eb32b01c78233e6f920a58ebabc4f85dd9d8f1c6a92a5184";
+    sha256 = "c5a90e247237ac7e320120961608cf65191134fa400d327cbd4d09864c880935";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/grpcio-tools/default.nix b/pkgs/development/python-modules/grpcio-tools/default.nix
index 4b28e07a6ce..37ffc8beca5 100644
--- a/pkgs/development/python-modules/grpcio-tools/default.nix
+++ b/pkgs/development/python-modules/grpcio-tools/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "grpcio-tools";
-  version = "1.29.0";
+  version = "1.31.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0f681c1ebd5472b804baa391b16dc59d92b065903999566f4776bfbd010bcec9";
+    sha256 = "3b08cbd3f4d5b60e3bff8f859e6e03db739967a684268164abc940415e23ca51";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/python-modules/gspread/default.nix b/pkgs/development/python-modules/gspread/default.nix
index 4cb2d1f9b67..5fd73541dd4 100644
--- a/pkgs/development/python-modules/gspread/default.nix
+++ b/pkgs/development/python-modules/gspread/default.nix
@@ -2,6 +2,8 @@
 , buildPythonPackage
 , fetchPypi
 , requests
+, google_auth
+, google-auth-oauthlib
 }:
 
 buildPythonPackage rec {
@@ -13,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "e04f1a6267b3929fc1600424c5ec83906d439672cafdd61a9d5b916a139f841c";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [ requests google_auth google-auth-oauthlib ];
 
   meta = with stdenv.lib; {
     description = "Google Spreadsheets client library";
diff --git a/pkgs/development/python-modules/gtimelog/default.nix b/pkgs/development/python-modules/gtimelog/default.nix
index b6fe06610b3..d19d05276e2 100644
--- a/pkgs/development/python-modules/gtimelog/default.nix
+++ b/pkgs/development/python-modules/gtimelog/default.nix
@@ -1,43 +1,60 @@
-{ stdenv
-, buildPythonPackage
-, pkgs
-, python
-, pygobject3
+{ stdenv, fetchFromGitHub, makeWrapper
+, glibcLocales, gobject-introspection, gtk3, libsoup, libsecret
+, buildPythonPackage, python
+, pygobject3, freezegun, mock
 }:
 
 buildPythonPackage rec {
   pname = "gtimelog";
-  version = "0.9.1";
+  version = "unstable-2020-05-16";
 
-  src = pkgs.fetchurl {
-    url = "https://github.com/gtimelog/gtimelog/archive/${version}.tar.gz";
-    sha256 = "0qk8fv8cszzqpdi3wl9vvkym1jil502ycn6sic4jrxckw5s9jsfj";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "80682ddbf9e0d68b8c67257289784f3b49b543d8";
+    sha256 = "0qv2kv7vc3qqlzxsisgg31cmrkkqgnmxspbj10c5fhdmwzzwi0i9";
   };
 
-  buildInputs = [ pkgs.glibcLocales ];
+  buildInputs = [
+    makeWrapper
+    glibcLocales gobject-introspection gtk3 libsoup libsecret
+  ];
 
-  LC_ALL="en_US.UTF-8";
-
-  # TODO: AppIndicator
-  propagatedBuildInputs = [ pkgs.gobject-introspection pygobject3 pkgs.makeWrapper pkgs.gtk3 ];
+  propagatedBuildInputs = [
+    pygobject3 freezegun mock
+  ];
 
   checkPhase = ''
-    substituteInPlace runtests --replace "/usr/bin/env python" "${python}/bin/${python.executable}"
+    substituteInPlace runtests --replace "/usr/bin/env python3" "${python.interpreter}"
     ./runtests
   '';
 
+  pythonImportsCheck = [ "gtimelog" ];
+
   preFixup = ''
-      wrapProgram $out/bin/gtimelog \
-        --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-        --prefix LD_LIBRARY_PATH ":" "${pkgs.gtk3.out}/lib" \
+    wrapProgram $out/bin/gtimelog \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix LD_LIBRARY_PATH ":" "${gtk3.out}/lib" \
   '';
 
   meta = with stdenv.lib; {
-    description = "A small GTK app for keeping track of your time. It's main goal is to be as unintrusive as possible";
-    homepage = "https://mg.pov.lt/gtimelog/";
+    description = "A time tracking app";
+    longDescription = ''
+      GTimeLog is a small time tracking application for GNOME.
+      It's main goal is to be as unintrusive as possible.
+
+      To run gtimelog successfully on a system that does not have full GNOME 3
+      installed, the following NixOS options should be set:
+      - programs.dconf.enable = true;
+      - services.gnome3.gnome-keyring.enable = true;
+
+      In addition, the following packages should be added to the environment:
+      - gnome3.adwaita-icon-theme
+      - gnome3.dconf
+    '';
+    homepage = "https://gtimelog.org/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ocharles ];
+    maintainers = with maintainers; [ ocharles oxzi ];
     platforms = platforms.unix;
   };
-
 }
diff --git a/pkgs/development/python-modules/gyp/default.nix b/pkgs/development/python-modules/gyp/default.nix
index b9ad6ccec24..c951c97b20f 100644
--- a/pkgs/development/python-modules/gyp/default.nix
+++ b/pkgs/development/python-modules/gyp/default.nix
@@ -6,19 +6,14 @@
 
 buildPythonPackage {
   pname = "gyp";
-  version = "2015-06-11";
-  disabled = isPy3k;
+  version = "2020-05-12";
 
   src = fetchFromGitiles {
     url = "https://chromium.googlesource.com/external/gyp";
-    rev = "fdc7b812f99e48c00e9a487bd56751bbeae07043";
-    sha256 = "1imgxsl4mr1662vsj2mlnpvvrbz71yk00w8p85vi5bkgmc6awgiz";
+    rev = "caa60026e223fc501e8b337fd5086ece4028b1c6";
+    sha256 = "0r9phq5yrmj968vdvy9vivli35wn1j9a6iwshp69wl7q4p0x8q2b";
   };
 
-  prePatch = stdenv.lib.optionals stdenv.isDarwin ''
-    sed -i 's/raise.*No Xcode or CLT version detected.*/version = "7.0.0"/' pylib/gyp/xcode_emulation.py
-  '';
-
   patches = stdenv.lib.optionals stdenv.isDarwin [
     ./no-darwin-cflags.patch
     ./no-xcode.patch
diff --git a/pkgs/development/python-modules/gyp/no-xcode.patch b/pkgs/development/python-modules/gyp/no-xcode.patch
index d202b722474..0e46865846a 100644
--- a/pkgs/development/python-modules/gyp/no-xcode.patch
+++ b/pkgs/development/python-modules/gyp/no-xcode.patch
@@ -1,12 +1,25 @@
---- a/pylib/gyp/xcode_emulation.py
-+++ b/pylib/gyp/xcode_emulation.py
-@@ -1470,7 +1470,8 @@
+--- gyp-old/pylib/gyp/xcode_emulation.py	1980-01-02 00:00:00.000000000 -0600
++++ gyp/pylib/gyp/xcode_emulation.py	2020-08-02 20:24:24.871322520 -0500
+@@ -1407,10 +1407,10 @@
+       raise GypError("xcodebuild returned unexpected results")
+   except:
+     version = CLTVersion()
+-    if version:
++    if version and re.match(r'(\d\.\d\.?\d*)', version):
+       version = re.match(r'(\d\.\d\.?\d*)', version).groups()[0]
+     else:
+-      raise GypError("No Xcode or CLT version detected!")
++      version = '7.0.0'
+     # The CLT has no build information, so we return an empty string.
+     version_list = [version, '']
+   version = version_list[0]
+@@ -1667,7 +1667,8 @@
      sdk_root = xcode_settings._SdkRoot(configuration)
      if not sdk_root:
        sdk_root = xcode_settings._XcodeSdkPath('')
 -    env['SDKROOT'] = sdk_root
-+    if sdk_root:
-+      env['SDKROOT'] = sdk_root
++    if not sdk_root:
++      env['SDKROOT'] = ''
  
    if not additional_settings:
      additional_settings = {}
diff --git a/pkgs/development/python-modules/h3/default.nix b/pkgs/development/python-modules/h3/default.nix
index bad2e9260a4..a9a0944459a 100644
--- a/pkgs/development/python-modules/h3/default.nix
+++ b/pkgs/development/python-modules/h3/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "h3";
-  version = "3.6.3";
+  version = "3.6.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7928303e39eb962cfbca38b35e289ddc5e04b0d3ef56532e1747a19450e13263";
+    sha256 = "416e35d736ef6ec9c1f73b9d4a9d5c696cc2a7561811f8bcfa08c8c4912f2289";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/h5netcdf/default.nix b/pkgs/development/python-modules/h5netcdf/default.nix
index b80a9103717..316c5bc4d48 100644
--- a/pkgs/development/python-modules/h5netcdf/default.nix
+++ b/pkgs/development/python-modules/h5netcdf/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "h5netcdf";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b0df12f4692817cf6d8e2fca95f689e61aa68f2f39aea90fd1790fe5ac8d2cbb";
+    sha256 = "09bbnpsvwksb07wijn7flyyza56h5b2g2cw0hb3slmwxz6cgcjmr";
   };
 
   propagatedBuildInputs = [
@@ -31,8 +31,8 @@ buildPythonPackage rec {
 
   meta = {
     description = "netCDF4 via h5py";
-    homepage = https://github.com/shoyer/h5netcdf;
+    homepage = "https://github.com/shoyer/h5netcdf";
     license = lib.licenses.bsd3;
   };
 
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/hass-nabucasa/default.nix b/pkgs/development/python-modules/hass-nabucasa/default.nix
index 2826056abcb..61c63b28ab6 100644
--- a/pkgs/development/python-modules/hass-nabucasa/default.nix
+++ b/pkgs/development/python-modules/hass-nabucasa/default.nix
@@ -15,6 +15,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     sed -i 's/"acme.*"/"acme"/' setup.py
+    sed -i 's/"cryptography.*"/"cryptography"/' setup.py
   '';
 
   patches = [
diff --git a/pkgs/development/python-modules/hcloud/default.nix b/pkgs/development/python-modules/hcloud/default.nix
index 672c4b94f36..9a99fb0953a 100644
--- a/pkgs/development/python-modules/hcloud/default.nix
+++ b/pkgs/development/python-modules/hcloud/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "hcloud";
-  version = "1.7.0";
+  version = "1.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d249ab784b23026fcde21e4d69b46eaf9f3559ba3612f1d896a4092ecfc06a75";
+    sha256 = "069bf78a3c6cd642aae0b1a562b443d2670e6d73d507ce77cbf8a2c16974ca29";
   };
 
   propagatedBuildInputs = [ future requests python-dateutil ];
@@ -35,4 +35,4 @@ buildPythonPackage rec {
     platforms = platforms.all;
     maintainers = with maintainers; [ liff ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/hdlparse/default.nix b/pkgs/development/python-modules/hdlparse/default.nix
new file mode 100644
index 00000000000..4257f9b2e9a
--- /dev/null
+++ b/pkgs/development/python-modules/hdlparse/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "hdlparse";
+  version = "1.0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "fb6230ed1e7a04a8f82f8d3fb59791d0751ae35e5b8e58dbbf2cbcf100d0d0f2";
+  };
+
+  #This module does not contain any tests.
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://kevinpt.github.io/hdlparse/";
+    description = "Rudimentary parser for VHDL and Verilog";
+    license = licenses.mit;
+    maintainers = with maintainers; [ elliottvillars ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/helpdev/default.nix b/pkgs/development/python-modules/helpdev/default.nix
index c4caf0e46ad..34b4d697447 100644
--- a/pkgs/development/python-modules/helpdev/default.nix
+++ b/pkgs/development/python-modules/helpdev/default.nix
@@ -27,4 +27,4 @@ buildPythonPackage rec {
     license = lib.licenses.mit;
   };
 
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/hg-evolve/default.nix b/pkgs/development/python-modules/hg-evolve/default.nix
index ba70a25a68d..c40d9672f65 100644
--- a/pkgs/development/python-modules/hg-evolve/default.nix
+++ b/pkgs/development/python-modules/hg-evolve/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "hg-evolve";
-  version = "10.0.0";
+  version = "10.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03kn1c62y6rb851wjhsaxkrwq223hkc4ij59i85999byyb2hyqad";
+    sha256 = "9468b3e2721744b077413c3d4a6b321b61370d4c87b90afa40dc2b48ad877d4b";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/hglib/default.nix b/pkgs/development/python-modules/hglib/default.nix
index 14e5b4edcd7..e96d7e22870 100644
--- a/pkgs/development/python-modules/hglib/default.nix
+++ b/pkgs/development/python-modules/hglib/default.nix
@@ -30,8 +30,7 @@ buildPythonPackage rec {
   checkInputs = [ nose ];
 
   checkPhase = ''
-    ${python.interpreter} test.py --with-hg "${mercurial}/bin/hg" -v \
-      --exclude=test_merge_prompt_cb # https://bz.mercurial-scm.org/show_bug.cgi?id=6265
+    ${python.interpreter} test.py --with-hg "${mercurial}/bin/hg" -v
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/hickle/default.nix b/pkgs/development/python-modules/hickle/default.nix
index bc8c741ec2b..f481509e6a3 100644
--- a/pkgs/development/python-modules/hickle/default.nix
+++ b/pkgs/development/python-modules/hickle/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname   = "hickle";
-  version = "3.4.6";
+  version = "4.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "026r6yg3amsi8k8plzsbw5rnifym6sc17y011daqyvcpb7mfs94b";
+    sha256 = "fcf2c4f9e4b7f0d9dae7aa6c59a58473884017875d3b17898d56eaf8a9c1da96";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/hidapi/default.nix b/pkgs/development/python-modules/hidapi/default.nix
index 4b23ec0b74c..b1c21b106b5 100644
--- a/pkgs/development/python-modules/hidapi/default.nix
+++ b/pkgs/development/python-modules/hidapi/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "hidapi";
-  version = "0.9.0.post2";
+  version = "0.9.0.post3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a71dd3c153cb6bb2b73d2612b5ab262830d78c6428f33f0c06818749e64c9320";
+    sha256 = "5a2442928f17ba742d9c53073f48b152051c5747d758d2fefd937543da5ab2e5";
   };
 
   propagatedBuildInputs =
diff --git a/pkgs/development/python-modules/hieroglyph/default.nix b/pkgs/development/python-modules/hieroglyph/default.nix
index ab6203581cd..0959d117de3 100644
--- a/pkgs/development/python-modules/hieroglyph/default.nix
+++ b/pkgs/development/python-modules/hieroglyph/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, fetchPypi, buildPythonPackage, sphinx }:
+{ stdenv, fetchPypi, buildPythonPackage, isPy27, sphinx }:
 
 buildPythonPackage rec {
   pname = "hieroglyph";
-  version = "1.0.0";
+  version = "2.1.0";
+  disabled = isPy27; # python2 compatible sphinx is too low
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8e137f0b1cd60c47b870011089790d3c8ddb74fcf409a75ddf2c7f2516ff337c";
+    sha256 = "b4b5db13a9d387438e610c2ca1d81386ccd206944d9a9dd273f21874486cddaf";
   };
 
   propagatedBuildInputs = [ sphinx ];
diff --git a/pkgs/development/python-modules/hiredis/default.nix b/pkgs/development/python-modules/hiredis/default.nix
index c22de6d8a66..eaeb45627b1 100644
--- a/pkgs/development/python-modules/hiredis/default.nix
+++ b/pkgs/development/python-modules/hiredis/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "hiredis";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aa59dd63bb3f736de4fc2d080114429d5d369dfb3265f771778e8349d67a97a4";
+    sha256 = "996021ef33e0f50b97ff2d6b5f422a0fe5577de21a8873b58a779a5ddd1c3132";
   };
   propagatedBuildInputs = [ redis ];
 
diff --git a/pkgs/development/python-modules/holidays/default.nix b/pkgs/development/python-modules/holidays/default.nix
index 1620109e82d..79d49e654f9 100644
--- a/pkgs/development/python-modules/holidays/default.nix
+++ b/pkgs/development/python-modules/holidays/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "holidays";
-  version = "0.10.2";
+  version = "0.10.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5a91324fcaa4c72a0fe9a13601436f65ee33b2ef033686f4e2228d58a7631970";
+    sha256 = "839281f2b1ae7ac576da7951472482f6e714818296853107ea861fa60f5013cc";
   };
 
   propagatedBuildInputs = [ six dateutil convertdate ];
diff --git a/pkgs/development/python-modules/holoviews/default.nix b/pkgs/development/python-modules/holoviews/default.nix
index 7b54d8cd5f1..796ddaace8b 100644
--- a/pkgs/development/python-modules/holoviews/default.nix
+++ b/pkgs/development/python-modules/holoviews/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "holoviews";
-  version = "1.13.2";
+  version = "1.13.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00i8732qib86xqa3652vkr178ib3682cls4jcv5g52y0rlkd8bfg";
+    sha256 = "e6753651a8598f21fc2c20e8456865ecec276cfea1519182a76d957506727934";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/howdoi/default.nix b/pkgs/development/python-modules/howdoi/default.nix
index c98192e9b0a..a4f1ab6b772 100644
--- a/pkgs/development/python-modules/howdoi/default.nix
+++ b/pkgs/development/python-modules/howdoi/default.nix
@@ -2,27 +2,37 @@
 , buildPythonPackage
 , fetchPypi
 , six
-, requests-cache
 , pygments
 , pyquery
 , cachelib
 , appdirs
+, keep
 }:
 
 buildPythonPackage rec {
   pname = "howdoi";
-  version = "1.2.1";
+  version = "2.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3b322668606d29d8a841c3b28c0574851f512b55c33a7ceb982b6a98d82fa3e3";
+    sha256 = "8e4d048ae7ca6182d648f62a66d07360cca2504fe46649c32748b6ef2735f7f4";
   };
 
-  propagatedBuildInputs = [ six requests-cache pygments pyquery cachelib appdirs ];
+  postPatch = ''
+    substituteInPlace setup.py --replace 'cachelib==0.1' 'cachelib'
+  '';
+
+  propagatedBuildInputs = [ six pygments pyquery cachelib appdirs keep ];
 
+  # author hasn't included page_cache directory (which allows tests to run without
+  # external requests) in pypi tarball. github repo doesn't have release revisions
+  # clearly tagged. re-enable tests when either is sorted.
+  doCheck = false;
   preCheck = ''
+    mv howdoi _howdoi
     export HOME=$(mktemp -d)
   '';
+  pythonImportsCheck = [ "howdoi" ];
 
   meta = with lib; {
     description = "Instant coding answers via the command line";
diff --git a/pkgs/development/python-modules/html5lib/default.nix b/pkgs/development/python-modules/html5lib/default.nix
index 81042ac3409..f0abbcfbecc 100644
--- a/pkgs/development/python-modules/html5lib/default.nix
+++ b/pkgs/development/python-modules/html5lib/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "html5lib";
-  version = "1.0.1";
+  version = "1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "66cb0dcfdbbc4f9c3ba1a63fdb511ffdbd4f513b2b6d81b80cd26ce6b3fb3736";
+    sha256 = "b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f";
   };
 
   checkInputs = [ flake8 pytest_4 pytest-expect mock ];
diff --git a/pkgs/development/python-modules/httpcore/default.nix b/pkgs/development/python-modules/httpcore/default.nix
new file mode 100644
index 00000000000..9ac9b76d2e3
--- /dev/null
+++ b/pkgs/development/python-modules/httpcore/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, h11
+, sniffio
+}:
+
+buildPythonPackage rec {
+  pname = "httpcore";
+  version = "0.10.2";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "encode";
+    repo = pname;
+    rev = version;
+    sha256 = "00gn8nfv814rg6fj7xv97mrra3fvx6fzjcgx9y051ihm6hxljdsi";
+  };
+
+  propagatedBuildInputs = [ h11 sniffio ];
+
+  # tests require pythonic access to mitmproxy, which isn't (yet?) packaged as
+  # a pythonPackage.
+  doCheck = false;
+  pythonImportsCheck = [ "httpcore" ];
+
+  meta = with stdenv.lib; {
+    description = "A minimal HTTP client";
+    homepage = "https://github.com/encode/httpcore";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.ris ];
+  };
+}
diff --git a/pkgs/development/python-modules/httpx/default.nix b/pkgs/development/python-modules/httpx/default.nix
index 0b29c80fc39..58152ca270e 100644
--- a/pkgs/development/python-modules/httpx/default.nix
+++ b/pkgs/development/python-modules/httpx/default.nix
@@ -2,64 +2,60 @@
 , buildPythonPackage
 , fetchFromGitHub
 , certifi
-, hstspreload
 , chardet
 , h11
 , h2
+, httpcore
 , idna
 , rfc3986
 , sniffio
 , isPy27
 , pytest
+, pytest-asyncio
+, pytest-trio
 , pytestcov
 , trustme
 , uvicorn
-, trio
 , brotli
-, urllib3
 }:
 
 buildPythonPackage rec {
   pname = "httpx";
-  version = "0.12.1";
+  version = "0.14.2";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "1nrp4h1ppb5vll81fzxmks82p0hxcil9f3mja3dgya511kc703h6";
+    sha256 = "08b6k5g8car3bic90aw4ysb2zvsa5nm8qk3hk4dgamllnnxzl5br";
   };
 
   propagatedBuildInputs = [
     certifi
-    hstspreload
     chardet
     h11
     h2
+    httpcore
     idna
     rfc3986
     sniffio
-    urllib3
   ];
 
   checkInputs = [
     pytest
+    pytest-asyncio
+    pytest-trio
     pytestcov
     trustme
     uvicorn
-    trio
     brotli
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-          --replace "h11==0.8.*" "h11"
-  '';
-
   checkPhase = ''
-    PYTHONPATH=.:$PYTHONPATH pytest
+    PYTHONPATH=.:$PYTHONPATH pytest -k 'not (test_connect_timeout or test_elapsed_timer)'
   '';
+  pythonImportsCheck = [ "httpx" ];
 
   meta = with lib; {
     description = "The next generation HTTP client";
diff --git a/pkgs/development/python-modules/humanize/default.nix b/pkgs/development/python-modules/humanize/default.nix
index 418a8e203e4..4676c300471 100644
--- a/pkgs/development/python-modules/humanize/default.nix
+++ b/pkgs/development/python-modules/humanize/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.4.0";
+  version = "2.6.0";
   pname = "humanize";
   disabled = isPy27; # setup.py no longer compatible
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "42ae7d54b398c01bd100847f6cb0fc9e381c21be8ad3f8e2929135e48dbff026";
+    sha256 = "8ee358ea6c23de896b9d1925ebe6a8504bb2ba7e98d5ccf4d07ab7f3b28f3819";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/hvac/default.nix b/pkgs/development/python-modules/hvac/default.nix
index d68e12b3773..a3cd4d5ec4d 100644
--- a/pkgs/development/python-modules/hvac/default.nix
+++ b/pkgs/development/python-modules/hvac/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "hvac";
-  version = "0.10.3";
+  version = "0.10.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "391b558a465d1919a2862926ab9a7c6bef1f2ac2c46daf8dd5115080c42978e4";
+    sha256 = "87dc2a3183c1d4595990203e752b430155d7582a60850dfe0756189a233d4b57";
   };
 
   propagatedBuildInputs = [ requests six ];
diff --git a/pkgs/development/python-modules/hwi/default.nix b/pkgs/development/python-modules/hwi/default.nix
new file mode 100644
index 00000000000..de9c7995bde
--- /dev/null
+++ b/pkgs/development/python-modules/hwi/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, mnemonic
+, ecdsa
+, typing-extensions
+, hidapi
+, libusb1
+, pyaes
+, trezor
+, btchip
+, ckcc-protocol
+}:
+
+buildPythonPackage rec {
+  pname = "hwi";
+  version = "1.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "eec460a51eb556500c1eca92015be246d5714cd53171407a76da71e4346048ae";
+  };
+
+  propagatedBuildInputs = [
+    mnemonic
+    ecdsa
+    typing-extensions
+    hidapi
+    libusb1
+    pyaes
+    trezor
+    btchip
+    ckcc-protocol
+  ];
+
+  patches = [ ./relax-deps.patch ];
+
+  # tests are not packaged in the released tarball
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "hwilib"
+  ];
+
+  meta = {
+    description = "Bitcoin Hardware Wallet Interface";
+    homepage = "https://github.com/bitcoin-core/hwi";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/development/python-modules/hwi/relax-deps.patch b/pkgs/development/python-modules/hwi/relax-deps.patch
new file mode 100644
index 00000000000..ff6c6b9768f
--- /dev/null
+++ b/pkgs/development/python-modules/hwi/relax-deps.patch
@@ -0,0 +1,16 @@
+--- a/setup.py
++++ b/setup.py
+@@ -98,10 +98,10 @@ package_data = \
+ modules = \
+ ['hwi', 'hwi-qt']
+ install_requires = \
+-['ecdsa>=0.13.0,<0.14.0',
+- 'hidapi>=0.7.99,<0.8.0',
++['ecdsa',
++ 'hidapi',
+  'libusb1>=1.7,<2.0',
++ 'mnemonic',
+- 'mnemonic>=0.18.0,<0.19.0',
+  'pyaes>=1.6,<2.0',
+  'typing-extensions>=3.7,<4.0']
+ 
diff --git a/pkgs/development/python-modules/hyperlink/default.nix b/pkgs/development/python-modules/hyperlink/default.nix
index 1fc49017821..bab7986eda2 100644
--- a/pkgs/development/python-modules/hyperlink/default.nix
+++ b/pkgs/development/python-modules/hyperlink/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, buildPythonPackage, fetchPypi, idna }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, idna, typing }:
 
 buildPythonPackage rec {
   pname = "hyperlink";
-  version = "19.0.0";
+  version = "20.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4288e34705da077fada1111a24a0aa08bb1e76699c9ce49876af722441845654";
+    sha256 = "47fcc7cd339c6cb2444463ec3277bdcfe142c8b1daf2160bdd52248deec815af";
   };
 
-  propagatedBuildInputs = [ idna ];
+  propagatedBuildInputs = [ idna ]
+    ++ lib.optionals isPy27 [ typing ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A featureful, correct URL for Python";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/development/python-modules/hypothesis-auto/default.nix b/pkgs/development/python-modules/hypothesis-auto/default.nix
new file mode 100644
index 00000000000..692db49adce
--- /dev/null
+++ b/pkgs/development/python-modules/hypothesis-auto/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildPythonPackage, fetchPypi
+, hypothesis
+, poetry
+, pydantic
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "hypothesis-auto";
+  version = "1.1.4";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1c9jksza0gg2gva3liy0s8riv6imjavhnqw05m8l5660knq2yb2y";
+  };
+
+  nativeBuildInputs = [
+    poetry
+  ];
+
+  propagatedBuildInputs = [
+    pydantic
+    hypothesis
+    pytest
+  ];
+
+  pythonImportsCheck = [ "hypothesis_auto" ];
+
+  meta = with lib; {
+    description = "Enables fully automatic tests for type annotated functions";
+    homepage = "https://github.com/timothycrosley/hypothesis-auto/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/hypothesis/default.nix b/pkgs/development/python-modules/hypothesis/default.nix
index f79fe028203..dac4ca43fc9 100644
--- a/pkgs/development/python-modules/hypothesis/default.nix
+++ b/pkgs/development/python-modules/hypothesis/default.nix
@@ -10,7 +10,7 @@ buildPythonPackage rec {
   # pytz fake_factory django numpy pytest
   # If you need these, you can just add them to your environment.
 
-  version = "5.11.0";
+  version = "5.30.0";
   pname = "hypothesis";
 
   # Use github tarballs that includes tests
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "HypothesisWorks";
     repo = "hypothesis-python";
     rev = "hypothesis-python-${version}";
-    sha256 = "1ca2dwih65s4r8vazwqm963ywngdr3v854ldnfyny7bvx1v28m8k";
+    sha256 = "0fmc4jfaksr285fjhp18ibj2rr8cxmbd0pwx370r5wf8jnhm6jb3";
   };
 
   postUnpack = "sourceRoot=$sourceRoot/hypothesis-python";
diff --git a/pkgs/development/python-modules/i3ipc/default.nix b/pkgs/development/python-modules/i3ipc/default.nix
index 4cc8574c842..231cb4f1d41 100644
--- a/pkgs/development/python-modules/i3ipc/default.nix
+++ b/pkgs/development/python-modules/i3ipc/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildPythonPackage, fetchFromGitHub
-, xorgserver, pytest, pytest-xvfb, pytest-asyncio, i3, python, xlib, xdpyinfo
+, xorgserver, pytest, pytest-xvfb, i3, python, xlib, xdpyinfo
 , makeFontsConf, coreutils
 }:
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     fontDirectories = [ ];
   };
   FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file
-  checkInputs = [ pytest xdpyinfo pytest-asyncio pytest-xvfb xorgserver i3 ];
+  checkInputs = [ pytest xdpyinfo pytest-xvfb xorgserver i3 ];
 
   postPatch = ''
     substituteInPlace test/i3.config \
diff --git a/pkgs/development/python-modules/iapws/default.nix b/pkgs/development/python-modules/iapws/default.nix
index 3605e88edd3..76330af43ee 100644
--- a/pkgs/development/python-modules/iapws/default.nix
+++ b/pkgs/development/python-modules/iapws/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "iapws";
-  version = "1.4.1";
+  version = "1.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d65c813bb6b100a8d1ed79e00148832a0321b3063e9632a990344890acb02493";
+    sha256 = "781285acaedff49d72c074aa308aabf7ca17f486cca490e5ed3f35526bbe4153";
   };
 
   propagatedBuildInputs = [ scipy ];
diff --git a/pkgs/development/python-modules/icecream/default.nix b/pkgs/development/python-modules/icecream/default.nix
new file mode 100644
index 00000000000..eba5a70577f
--- /dev/null
+++ b/pkgs/development/python-modules/icecream/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonPackage, fetchPypi
+, asttokens, colorama, executing, pygments
+}:
+
+buildPythonPackage rec {
+  pname = "icecream";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "16kpixl43nrn093cvkmxiq2dzd9xc73zwzkmwp0rs7x01nji8kj3";
+  };
+
+  propagatedBuildInputs = [ asttokens colorama executing pygments ];
+
+  meta = with lib; {
+    description = "A little library for sweet and creamy print debugging";
+    homepage = "https://github.com/gruns/icecream";
+    license = licenses.mit;
+    maintainers = with maintainers; [ renatoGarcia ];
+  };
+}
diff --git a/pkgs/development/python-modules/ics/default.nix b/pkgs/development/python-modules/ics/default.nix
index d304dddd79d..08799a9fb4b 100644
--- a/pkgs/development/python-modules/ics/default.nix
+++ b/pkgs/development/python-modules/ics/default.nix
@@ -1,6 +1,6 @@
 { stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
 , tatsu, arrow
-, pytest-sugar, pytestpep8, pytest-flakes, pytestcov
+, pytestCheckHook, pytestpep8, pytest-flakes
 }:
 
 buildPythonPackage rec {
@@ -22,10 +22,7 @@ buildPythonPackage rec {
       --replace "arrow>=0.11,<0.15" "arrow"
   '';
 
-  checkInputs = [ pytest-sugar pytestpep8 pytest-flakes pytestcov ];
-  checkPhase = ''
-    pytest
-  '';
+  checkInputs = [ pytestCheckHook pytestpep8 pytest-flakes ];
 
   meta = with stdenv.lib; {
     description = "Pythonic and easy iCalendar library (RFC 5545)";
diff --git a/pkgs/development/python-modules/identify/default.nix b/pkgs/development/python-modules/identify/default.nix
index 9f78298a3f3..68a71e0974b 100644
--- a/pkgs/development/python-modules/identify/default.nix
+++ b/pkgs/development/python-modules/identify/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "identify";
-  version = "1.4.19";
+  version = "1.4.29";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "249ebc7e2066d6393d27c1b1be3b70433f824a120b1d8274d362f1eb419e3b52";
+    sha256 = "9f5fcf22b665eaece583bd395b103c2769772a0f646ffabb5b1f155901b07de2";
   };
 
   # Tests not included in PyPI tarball
diff --git a/pkgs/development/python-modules/idna/default.nix b/pkgs/development/python-modules/idna/default.nix
index 13e8fb43bb2..613fde773a7 100644
--- a/pkgs/development/python-modules/idna/default.nix
+++ b/pkgs/development/python-modules/idna/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "idna";
-  version = "2.9";
+  version = "2.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb";
+    sha256 = "b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6";
   };
 
   meta = {
@@ -17,4 +17,4 @@ buildPythonPackage rec {
     description = "Internationalized Domain Names in Applications (IDNA)";
     license = lib.licenses.bsd3;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/ifaddr/default.nix b/pkgs/development/python-modules/ifaddr/default.nix
index e9f5fed49a3..b4a9b20f08d 100644
--- a/pkgs/development/python-modules/ifaddr/default.nix
+++ b/pkgs/development/python-modules/ifaddr/default.nix
@@ -6,12 +6,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.1.6";
+  version = "0.1.7";
   pname = "ifaddr";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c19c64882a7ad51a394451dabcbbed72e98b5625ec1e79789924d5ea3e3ecb93";
+    sha256 = "1f9e8a6ca6f16db5a37d3356f07b6e52344f6f9f7e806d618537731669eb1a94";
   };
 
   propagatedBuildInputs = [ ipaddress ];
diff --git a/pkgs/development/python-modules/ihatemoney/default.nix b/pkgs/development/python-modules/ihatemoney/default.nix
index 5df5e6b18cd..bcca68600e9 100644
--- a/pkgs/development/python-modules/ihatemoney/default.nix
+++ b/pkgs/development/python-modules/ihatemoney/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, lib, fetchFromGitHub, isPy27, nixosTests
+{ buildPythonPackage, lib, fetchFromGitHub, isPy27, nixosTests, fetchpatch, fetchPypi
 , alembic
 , aniso8601
 , Babel
@@ -15,33 +15,70 @@
 , flask_script
 , flask_sqlalchemy
 , flask_wtf
+, debts
 , idna
 , itsdangerous
 , jinja2
 , Mako
 , markupsafe
-, mock
 , python-dateutil
 , pytz
 , six
 , sqlalchemy
+, sqlalchemy-continuum
 , werkzeug
 , wtforms
 , psycopg2 # optional, for postgresql support
 , flask_testing
 }:
 
+# ihatemoney is not really a library. It will only ever be imported
+# by the interpreter of uwsgi. So overrides for its depencies are fine.
+let
+  # https://github.com/spiral-project/ihatemoney/issues/567
+  pinned_wtforms = wtforms.overridePythonAttrs (old: rec {
+    pname = "WTForms";
+    version = "2.2.1";
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "0q9vkcq6jnnn618h27lx9sas6s9qlg2mv8ja6dn0hy38gwzarnqc";
+    };
+  });
+  pinned_flask_wtf = flask_wtf.override { wtforms = pinned_wtforms; };
+in
+
 buildPythonPackage rec {
   pname = "ihatemoney";
-  version = "4.1";
+  version = "4.2";
 
   src = fetchFromGitHub {
     owner = "spiral-project";
     repo = pname;
     rev = version;
-    sha256 = "1ai7v2i2rvswzv21nwyq51fvp8lr2x2cl3n34p11br06kc1pcmin";
+    sha256 = "0d4vc6m0jkwlz9ly0hcjghccydvqbldh2jb8yzf94jrgkd5fd7k1";
   };
 
+  disabled = isPy27;
+
+  patches = [
+    # fix migration on postgresql
+    # remove on next release
+    (fetchpatch {
+      url = "https://github.com/spiral-project/ihatemoney/commit/6129191b26784b895e203fa3eafb89cee7d88b71.patch";
+      sha256 = "0yc24gsih9x3pnh2mhj4v5i71x02dq93a9jd2r8b1limhcl4p1sw";
+    })
+    (fetchpatch {
+      name = "CVE-2020-15120.patch";
+      url = "https://github.com/spiral-project/ihatemoney/commit/8d77cf5d5646e1d2d8ded13f0660638f57e98471.patch";
+      sha256 = "0y855sk3qsbpq7slj876k2ifa1lccc2dccag98pkyaadpz5gbabv";
+    })
+  ];
+
+  postPatch = ''
+    # remove draconian pinning
+    sed -i 's/==.*$//' setup.cfg
+  '';
+
   propagatedBuildInputs = [
     alembic
     aniso8601
@@ -58,7 +95,7 @@ buildPythonPackage rec {
     flask-restful
     flask_script
     flask_sqlalchemy
-    flask_wtf
+    pinned_flask_wtf
     idna
     itsdangerous
     jinja2
@@ -68,14 +105,16 @@ buildPythonPackage rec {
     pytz
     six
     sqlalchemy
+    sqlalchemy-continuum
     werkzeug
-    wtforms
+    pinned_wtforms
     psycopg2
+    debts
   ];
 
   checkInputs = [
     flask_testing
-  ] ++ lib.optionals isPy27 [ mock ];
+  ];
 
   passthru.tests = {
     inherit (nixosTests) ihatemoney;
@@ -83,7 +122,6 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://ihatemoney.org";
     description = "A simple shared budget manager web application";
-    platforms = platforms.linux;
     license = licenses.beerware;
     maintainers = [ maintainers.symphorien ];
   };
diff --git a/pkgs/development/python-modules/ijson/default.nix b/pkgs/development/python-modules/ijson/default.nix
index 4bcbe6a061a..d877c098354 100644
--- a/pkgs/development/python-modules/ijson/default.nix
+++ b/pkgs/development/python-modules/ijson/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ijson";
-  version = "3.0.4";
+  version = "3.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6e25448318cda55e82a5de52beb6813b003cb8e4a7b5753305912a30055a29f8";
+    sha256 = "815e9ce9d2de7ddd58ba01834d8f55790b7daddbac6c844cba0fc459b7d5005a";
   };
 
   doCheck = false; # something about yajl
diff --git a/pkgs/development/python-modules/imagecorruptions/default.nix b/pkgs/development/python-modules/imagecorruptions/default.nix
index f77e2dcab0d..3ebd22ffeb2 100644
--- a/pkgs/development/python-modules/imagecorruptions/default.nix
+++ b/pkgs/development/python-modules/imagecorruptions/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     substituteInPlace setup.py \
       --replace "'opencv-python >= 3.4.5'," ""
   '';
-  
+
   propagatedBuildInputs = [
     numpy
     scikitimage
diff --git a/pkgs/development/python-modules/imageio/default.nix b/pkgs/development/python-modules/imageio/default.nix
index 4868f3ae371..ce24dfb5896 100644
--- a/pkgs/development/python-modules/imageio/default.nix
+++ b/pkgs/development/python-modules/imageio/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "imageio";
-  version = "2.8.0";
+  version = "2.9.0";
   disabled = isPy27;
 
   src = fetchPypi {
-    sha256 = "fb5fd6d3d17126bbaac9af29fe340e2c97a196eb9416d4f28c0e543744a152cf";
+    sha256 = "52ddbaeca2dccf53ba2d6dec5676ca7bc3b2403ef8b37f7da78b7654bb3e10f0";
     inherit pname version;
   };
 
diff --git a/pkgs/development/python-modules/imbalanced-learn/default.nix b/pkgs/development/python-modules/imbalanced-learn/default.nix
index 49a98d675e5..1cb3dc2a7b9 100644
--- a/pkgs/development/python-modules/imbalanced-learn/default.nix
+++ b/pkgs/development/python-modules/imbalanced-learn/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "imbalanced-learn";
-  version = "0.6.2";
+  version = "0.7.0";
   disabled = isPy27; # scikit-learn>=0.21 doesn't work on python2
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "942b9a7f2e1df831097fbee587c5c90a4cc6afa6105b23d3e30d8798f1a9b17d";
+    sha256 = "da59de0d1c0fa66f62054dd9a0a295a182563aa1abbb3bf9224a3678fcfe8fa4";
   };
 
   propagatedBuildInputs = [ scikitlearn ];
diff --git a/pkgs/applications/misc/img2pdf/default.nix b/pkgs/development/python-modules/img2pdf/default.nix
index b9c06d5122c..7e9a6b5daa8 100644
--- a/pkgs/applications/misc/img2pdf/default.nix
+++ b/pkgs/development/python-modules/img2pdf/default.nix
@@ -1,21 +1,21 @@
-{ stdenv, python3Packages }:
+{ lib, pillow, fetchPypi, buildPythonPackage, isPy27, pikepdf }:
 
-with python3Packages;
-
-buildPythonApplication rec {
+buildPythonPackage rec {
   pname = "img2pdf";
-  version = "0.3.6";
+  version = "0.4.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1yx0ljbg7phpix507wq584qvspp2jgax7flpp1148pxpc2d51mcc";
+    sha256 = "eaee690ab8403dd1a9cb4db10afee41dd3e6c7ed63bdace02a0121f9feadb0c9";
   };
 
   propagatedBuildInputs = [
+    pikepdf
     pillow
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Convert images to PDF via direct JPEG inclusion";
     homepage = "https://gitlab.mister-muffin.de/josch/img2pdf";
     license = licenses.lgpl2;
diff --git a/pkgs/development/python-modules/importlib-metadata/default.nix b/pkgs/development/python-modules/importlib-metadata/default.nix
index 5a313792247..edab68aa18a 100644
--- a/pkgs/development/python-modules/importlib-metadata/default.nix
+++ b/pkgs/development/python-modules/importlib-metadata/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "importlib-metadata";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchPypi {
     pname = "importlib_metadata";
     inherit version;
-    sha256 = "07icyggasn38yv2swdrd8z6i0plazmc9adavsdkbqqj91j53ll9l";
+    sha256 = "10vz0ydrzspdhdbxrzwr9vhs693hzh4ff71lnqsifvdzvf66bfwh";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/importlib-resources/default.nix b/pkgs/development/python-modules/importlib-resources/default.nix
index 7faefd4c0e1..0e1d4654c59 100644
--- a/pkgs/development/python-modules/importlib-resources/default.nix
+++ b/pkgs/development/python-modules/importlib-resources/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "importlib_resources";
-  version = "1.5.0";
+  version = "3.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jilyxyb2z7hzcjhx1ddni52mq00i728wqh8f5k4469yhdkdz1vg";
+    sha256 = "19f745a6eca188b490b1428c8d1d4a0d2368759f32370ea8fb89cad2ab1106c3";
   };
 
   nativeBuildInputs = [ setuptools_scm toml ];
diff --git a/pkgs/development/python-modules/inflection/default.nix b/pkgs/development/python-modules/inflection/default.nix
index bf370d7ebf3..6f439f0f69a 100644
--- a/pkgs/development/python-modules/inflection/default.nix
+++ b/pkgs/development/python-modules/inflection/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "inflection";
-  version = "0.4.0";
+  version = "0.5.1";
   disabled = isPy27;
 
   src = fetchPypi {
    inherit pname version;
-   sha256 = "32a5c3341d9583ec319548b9015b7fbdf8c429cbcb575d326c33ae3a0e90d52c";
+   sha256 = "1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/influxdb-client/default.nix b/pkgs/development/python-modules/influxdb-client/default.nix
new file mode 100644
index 00000000000..007ab25eb69
--- /dev/null
+++ b/pkgs/development/python-modules/influxdb-client/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, rx
+, certifi
+, six
+, python-dateutil
+, setuptools
+, urllib3
+, ciso8601
+, pytz
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "influxdb-client";
+  version = "1.8.0";
+
+  disabled = pythonOlder "3.6"; # requires python version >=3.6
+
+  src = fetchFromGitHub {
+    owner = "influxdata";
+    repo = "influxdb-client-python";
+    rev = "v${version}";
+    sha256 = "0gf0fjkd10yn1bb86rfapnd5diraivshn9mhzqxaxwlfah45q187";
+  };
+
+  # makes test not reproducible
+  postPatch = ''
+    sed -i -e '/randomize/d' test-requirements.txt
+  '';
+
+  propagatedBuildInputs = [
+    rx
+    certifi
+    six
+    python-dateutil
+    setuptools
+    urllib3
+    ciso8601
+    pytz
+  ];
+
+  # requires influxdb server
+  doCheck = false;
+
+  meta = with lib; {
+    description = "InfluxDB 2.0 Python client library";
+    homepage = "https://github.com/influxdata/influxdb-client-python";
+    license = licenses.mit;
+    maintainers = [ maintainers.mic92 ];
+  };
+}
diff --git a/pkgs/development/python-modules/iniconfig/default.nix b/pkgs/development/python-modules/iniconfig/default.nix
new file mode 100644
index 00000000000..f6383e46d23
--- /dev/null
+++ b/pkgs/development/python-modules/iniconfig/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "iniconfig";
+  version = "1.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0s9z9n4603fdpv2vzh6ddzfgsjmb09n6qalkjl2xwrss6n4jzyg5";
+  };
+
+  doCheck = false; # avoid circular import with pytest
+  pythonImportsCheck = [ "iniconfig" ];
+
+  meta = with lib; {
+    description = "brain-dead simple parsing of ini files";
+    homepage = "https://github.com/CHANGE/iniconfig/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/inquirer/default.nix b/pkgs/development/python-modules/inquirer/default.nix
index 58e7f61b676..560ae55293b 100644
--- a/pkgs/development/python-modules/inquirer/default.nix
+++ b/pkgs/development/python-modules/inquirer/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "inquirer";
-  version = "2.6.3";
+  version = "2.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01lf51y3bxsxkghbdk9hr42yvihpwi2s5zpxnra3bx41r35msvjz";
+    sha256 = "e819188de0ca7985a99c282176c6f50fb08b0d33867fd1965d3f3e97d6c8f83f";
   };
 
   propagatedBuildInputs = [ python-editor readchar blessings ];
diff --git a/pkgs/development/python-modules/intervaltree/default.nix b/pkgs/development/python-modules/intervaltree/default.nix
index 209920db2b6..8b0bbf2dd39 100644
--- a/pkgs/development/python-modules/intervaltree/default.nix
+++ b/pkgs/development/python-modules/intervaltree/default.nix
@@ -2,12 +2,12 @@
 , python, pytest, sortedcontainers }:
 
 buildPythonPackage rec {
-  version = "3.0.2";
+  version = "3.1.0";
   pname = "intervaltree";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0wz234g6irlm4hivs2qzmnywk0ss06ckagwh15nflkyb3p462kyb";
+    sha256 = "902b1b88936918f9b2a19e0e5eb7ccb430ae45cde4f39ea4b36932920d33952d";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/ipdb/default.nix b/pkgs/development/python-modules/ipdb/default.nix
index 4b234cc11ac..c32726be7e4 100644
--- a/pkgs/development/python-modules/ipdb/default.nix
+++ b/pkgs/development/python-modules/ipdb/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "ipdb";
-  version = "0.13.2";
+  version = "0.13.3";
   disabled = isPyPy;  # setupterm: could not find terminfo database
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0jcd849rx30y3wcgzsqbn06v0yjlzvb9x3076q0yxpycdwm1ryvp";
+    sha256 = "0y3yk5k2yszcwxsjinvf40b1wl8wi8l6kv7pl9jmx9j53hk6vx6n";
   };
 
   propagatedBuildInputs = [ ipython ];
diff --git a/pkgs/development/python-modules/ipykernel/default.nix b/pkgs/development/python-modules/ipykernel/default.nix
index edf9d0863a1..c8539598fe6 100644
--- a/pkgs/development/python-modules/ipykernel/default.nix
+++ b/pkgs/development/python-modules/ipykernel/default.nix
@@ -42,9 +42,9 @@ buildPythonPackage rec {
     "test_subprocess_print"
     "test_subprocess_error"
     "test_ipython_start_kernel_no_userns"
-    
+
     # https://github.com/ipython/ipykernel/issues/506
-    "test_unc_paths"    
+    "test_unc_paths"
   ] ++ lib.optionals (pythonOlder "3.8") [
     # flaky test https://github.com/ipython/ipykernel/issues/485
     "test_shutdown"
diff --git a/pkgs/development/python-modules/ipympl/default.nix b/pkgs/development/python-modules/ipympl/default.nix
index 0c5da2cd7a9..44ec6cade99 100644
--- a/pkgs/development/python-modules/ipympl/default.nix
+++ b/pkgs/development/python-modules/ipympl/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ipympl";
-  version = "0.5.6";
+  version = "0.5.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1sak58wcpikn4ww1k8gr2vf1hmwzfly31hzcnwiizp7l0vk40qh7";
+    sha256 = "0cjsabsbn02vpf3yl0x9xdqgf4f707mbnz2hp2bn6zp9qnyyirx5";
   };
 
   propagatedBuildInputs = [ ipywidgets matplotlib ];
diff --git a/pkgs/development/python-modules/ipython/7.9.nix b/pkgs/development/python-modules/ipython/7.9.nix
deleted file mode 100644
index 9953868df5f..00000000000
--- a/pkgs/development/python-modules/ipython/7.9.nix
+++ /dev/null
@@ -1,69 +0,0 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-# Build dependencies
-, glibcLocales
-# Test dependencies
-, nose
-, pygments
-# Runtime dependencies
-, jedi
-, decorator
-, pickleshare
-, traitlets
-, prompt_toolkit
-, pexpect
-, appnope
-, backcall
-, fetchpatch
-}:
-
-buildPythonPackage rec {
-  pname = "ipython";
-  version = "7.9.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "103jkw18z7fnwdal1mdbijjxi1fndzn31g887lmj7ddpf2r07lyz";
-  };
-
-  prePatch = lib.optionalString stdenv.isDarwin ''
-    substituteInPlace setup.py --replace "'gnureadline'" " "
-  '';
-
-  buildInputs = [ glibcLocales ];
-
-  checkInputs = [ nose pygments ];
-
-  propagatedBuildInputs = [
-    jedi
-    decorator
-    pickleshare
-    traitlets
-    prompt_toolkit
-    pygments
-    pexpect
-    backcall
-  ] ++ lib.optionals stdenv.isDarwin [appnope];
-
-  LC_ALL="en_US.UTF-8";
-
-  doCheck = false; # Circular dependency with ipykernel
-
-  checkPhase = ''
-    nosetests
-  '';
-
-  pythonImportsCheck = [
-    "IPython"
-  ];
-
-  meta = with lib; {
-    description = "IPython: Productive Interactive Computing";
-    homepage = "http://ipython.org/";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ bjornfor ];
-  };
-}
diff --git a/pkgs/development/python-modules/ipython/default.nix b/pkgs/development/python-modules/ipython/default.nix
index 692daa7b2f3..5e48accfe35 100644
--- a/pkgs/development/python-modules/ipython/default.nix
+++ b/pkgs/development/python-modules/ipython/default.nix
@@ -22,12 +22,12 @@
 
 buildPythonPackage rec {
   pname = "ipython";
-  version = "7.15.0";
+  version = "7.17.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ef1433879816a960cd3ae1ae1dc82c64732ca75cec8dab5a4e29783fb571d0e";
+    sha256 = "b70974aaa2674b05eb86a910c02ed09956a33f2dd6c71afc60f0b128a77e7f28";
   };
 
   prePatch = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/python-modules/ipyvue/default.nix b/pkgs/development/python-modules/ipyvue/default.nix
index 83e3ca14e58..c9426473ba6 100644
--- a/pkgs/development/python-modules/ipyvue/default.nix
+++ b/pkgs/development/python-modules/ipyvue/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "ipyvue";
-  version = "1.3.2";
+  version = "1.4.0";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "24ed221dcc3878e70daebdbdffdf7fd2b2111164008ba4b5de6785b72eabf91f";
+    sha256 = "3253727e8e12e3c157550e3e8d6986edf61ad0d68299992fbf3fa6acec41a12e";
   };
 
   propagatedBuildInputs = [ ipywidgets ];
diff --git a/pkgs/development/python-modules/ipyvuetify/default.nix b/pkgs/development/python-modules/ipyvuetify/default.nix
index b1ccc22ac6d..c63cee79123 100644
--- a/pkgs/development/python-modules/ipyvuetify/default.nix
+++ b/pkgs/development/python-modules/ipyvuetify/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "ipyvuetify";
-  version = "1.4.0";
+  version = "1.5.1";
 
   # GitHub version tries to run npm (Node JS)
   src = fetchPypi {
     inherit pname version;
-    sha256 = "663ad97a30cd449117639e4af37d535d7383b2014b88338d12392ac7f62bdb2b";
+    sha256 = "593f5d6761e304cbb78bca967030485d8835e8d310ef7d83ac1b0e6a13e4911c";
   };
 
   propagatedBuildInputs = [ ipyvue ];
diff --git a/pkgs/development/python-modules/irc/default.nix b/pkgs/development/python-modules/irc/default.nix
index b04ab3febdb..9bd2b4ab288 100644
--- a/pkgs/development/python-modules/irc/default.nix
+++ b/pkgs/development/python-modules/irc/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonPackage rec {
   pname = "irc";
-  version = "18.0.0";
+  version = "19.0.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1qg5996mzvhnkm74ksaa4d47fz5vrpw6hvxyaq9kf6y4cf1l76wq";
+    sha256 = "29026b1e977dacb621c710ae9531fcab6fa21825b743c616c220da0e58a32233";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/islpy/default.nix b/pkgs/development/python-modules/islpy/default.nix
index 22426d331c2..5b2a8e16146 100644
--- a/pkgs/development/python-modules/islpy/default.nix
+++ b/pkgs/development/python-modules/islpy/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "islpy";
-  version = "2019.1.2";
+  version = "2020.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "834b6b946f33d578d5c6b2f863dd93f7ecc4c0a2bf73407c96ef9f95b6b71bbf";
+    sha256 = "ee797e1284bffe897568f9cc1f063f1a6fac8d7b87596308b7467e9b870a90ef";
   };
 
   postConfigure = ''
diff --git a/pkgs/development/python-modules/itemadapter/default.nix b/pkgs/development/python-modules/itemadapter/default.nix
new file mode 100644
index 00000000000..92cc794dc2f
--- /dev/null
+++ b/pkgs/development/python-modules/itemadapter/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27 }:
+
+buildPythonPackage rec {
+  pname = "itemadapter";
+  version = "0.1.0";
+
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "52159b4f97d82aa2968000ee8371b2114af56a2f44e4cd9142580d46eea39020";
+  };
+
+  doCheck = false; # infinite recursion with Scrapy
+
+  pythonImportsCheck = [ "itemadapter" ];
+
+  meta = with lib; {
+    description = "Common interface for data container classes";
+    homepage = "https://github.com/scrapy/itemadapter";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/development/python-modules/itemloaders/default.nix b/pkgs/development/python-modules/itemloaders/default.nix
new file mode 100644
index 00000000000..0c891a86134
--- /dev/null
+++ b/pkgs/development/python-modules/itemloaders/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, w3lib
+, parsel
+, jmespath
+, itemadapter
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "itemloaders";
+  version = "1.0.1";
+
+  disabled = isPy27;
+
+  # Tests not included in PyPI tarball
+  src = fetchFromGitHub {
+    owner = "scrapy";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0frs0s876ddha844vhnhhiggyk3qbhhngrwkvgg3c0mrnn282f6k";
+  };
+
+  propagatedBuildInputs = [ w3lib parsel jmespath itemadapter ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Base library for scrapy's ItemLoader";
+    homepage = "https://github.com/scrapy/itemloaders";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/development/python-modules/iterm2/default.nix b/pkgs/development/python-modules/iterm2/default.nix
index 33504323802..4d4cf95fc88 100644
--- a/pkgs/development/python-modules/iterm2/default.nix
+++ b/pkgs/development/python-modules/iterm2/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "iterm2";
-  version = "1.14";
+  version = "1.16";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "089pln3c41n6dyh91hw9gy6mpm9s663lpmdc4gamig3g6pfmbsk4";
+    sha256 = "8dead057b09ed4ac03c6caae7890489da1d823215ec5166789739ece941bdcbc";
   };
 
   propagatedBuildInputs = [ protobuf websockets ];
diff --git a/pkgs/development/python-modules/javaobj-py3/default.nix b/pkgs/development/python-modules/javaobj-py3/default.nix
index e82f4c2511f..fae3c2f3958 100644
--- a/pkgs/development/python-modules/javaobj-py3/default.nix
+++ b/pkgs/development/python-modules/javaobj-py3/default.nix
@@ -1,11 +1,13 @@
 { buildPythonPackage
 , fetchPypi
+, isPy27
 , lib
 }:
 
 buildPythonPackage rec {
   pname = "javaobj-py3";
   version = "0.4.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/jc/default.nix b/pkgs/development/python-modules/jc/default.nix
index e48fec89b9d..e37f5bc7e62 100644
--- a/pkgs/development/python-modules/jc/default.nix
+++ b/pkgs/development/python-modules/jc/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "jc";
-  version = "1.11.6";
+  version = "1.13.4";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "kellyjonbrazil";
     repo = "jc";
     rev = "v${version}";
-    sha256 = "0jyygq7zmam7yriiv5j4d6mpjdi2p3p7d53bn3qwfzkh4ifsbfan";
+    sha256 = "0rwvyyrdnw43pixp8h51rncq2inc9pbbj1j2191y5si00pjw34zr";
   };
 
   propagatedBuildInputs = [ ruamel_yaml xmltodict pygments ];
diff --git a/pkgs/development/python-modules/jdcal/default.nix b/pkgs/development/python-modules/jdcal/default.nix
index 4fd89c83abc..c2dd66ac663 100644
--- a/pkgs/development/python-modules/jdcal/default.nix
+++ b/pkgs/development/python-modules/jdcal/default.nix
@@ -25,4 +25,4 @@ buildPythonPackage rec {
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ lihop ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/jedi/default.nix b/pkgs/development/python-modules/jedi/default.nix
index 77d3e3e4d8a..9ee4ae26622 100644
--- a/pkgs/development/python-modules/jedi/default.nix
+++ b/pkgs/development/python-modules/jedi/default.nix
@@ -2,17 +2,23 @@
 
 buildPythonPackage rec {
   pname = "jedi";
-  version = "0.17.0";
+  version = "0.17.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "df40c97641cb943661d2db4c33c2e1ff75d491189423249e989bcea4464f3030";
+    sha256 = "86ed7d9b750603e4ba582ea8edc678657fb4007894a12bcf6f4bb97892f31d20";
   };
 
   checkInputs = [ pytest glibcLocales tox pytestcov ];
 
   propagatedBuildInputs = [ parso ];
 
+  # remove next bump, >=0.17.2, already fixed in master
+  prePatch = ''
+    substituteInPlace requirements.txt \
+      --replace "parso>=0.7.0,<0.8.0" "parso"
+  '';
+
   checkPhase = ''
     LC_ALL="en_US.UTF-8" py.test test
   '';
diff --git a/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix b/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
index 15aed1502b1..33c14dbaeb2 100644
--- a/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
+++ b/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "jellyfin-apiclient-python";
-  version = "1.4.0";
+  version = "1.6.1";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "iwalton3";
     repo = "jellyfin-apiclient-python";
     rev = "v${version}";
-    sha256 = "0b4ij19xjwn0wm5076fx8n4phjbsfx84x9qdrwm8c2r3ld8w7hk4";
+    sha256 = "0f7czq83ic22fz1vnf0cavb7l3grcxxd5yyw9wcjz3g1j2d76735";
   };
 
   propagatedBuildInputs = [ requests websocket_client ];
diff --git a/pkgs/development/python-modules/jenkins-job-builder/default.nix b/pkgs/development/python-modules/jenkins-job-builder/default.nix
index e5f4fae63d3..e185cf8b6bd 100644
--- a/pkgs/development/python-modules/jenkins-job-builder/default.nix
+++ b/pkgs/development/python-modules/jenkins-job-builder/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "jenkins-job-builder";
-  version = "3.4.0";
+  version = "3.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "80a7e8d3bebb1e792ff347e9dd072879ce105424224fe804e6671c32a2e8e4bf";
+    sha256 = "20efe98718e61ea7bd69b2178d93c5435bbf2e1ba78a47366632c84970e026c9";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/jinja2/default.nix b/pkgs/development/python-modules/jinja2/default.nix
index 42e45d162ba..45178377026 100644
--- a/pkgs/development/python-modules/jinja2/default.nix
+++ b/pkgs/development/python-modules/jinja2/default.nix
@@ -3,7 +3,9 @@
 , isPy3k
 , fetchPypi
 , pytest
-, markupsafe }:
+, markupsafe
+, setuptools 
+}:
 
 buildPythonPackage rec {
   pname = "Jinja2";
@@ -15,7 +17,7 @@ buildPythonPackage rec {
   };
 
   checkInputs = [ pytest ];
-  propagatedBuildInputs = [ markupsafe ];
+  propagatedBuildInputs = [ markupsafe setuptools ];
 
   # Multiple tests run out of stack space on 32bit systems with python2.
   # See https://github.com/pallets/jinja/issues/1158
diff --git a/pkgs/development/python-modules/joblib/default.nix b/pkgs/development/python-modules/joblib/default.nix
index da6e53fa129..de60f142670 100644
--- a/pkgs/development/python-modules/joblib/default.nix
+++ b/pkgs/development/python-modules/joblib/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "joblib";
-  version = "0.15.1";
+  version = "0.16.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "61e49189c84b3c5d99a969d314853f4d1d263316cc694bec17548ebaa9c47b6e";
+    sha256 = "8f52bf24c64b608bf0b2563e0e47d6fcf516abc8cfafe10cfd98ad66d94f92d6";
   };
 
   checkInputs = [ sphinx numpydoc pytest ];
diff --git a/pkgs/development/python-modules/josepy/default.nix b/pkgs/development/python-modules/josepy/default.nix
index d34fc8cb570..73bdb31da9d 100644
--- a/pkgs/development/python-modules/josepy/default.nix
+++ b/pkgs/development/python-modules/josepy/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "josepy";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "068nkdbag049cjs9q3rrs5j5f1239202y0g9xblii6rr0fjgyhf3";
+    sha256 = "c37ff4b93606e6a452b72cdb992da5e0544be12912fac01b31ddbdd61f6d5bd0";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jq/default.nix b/pkgs/development/python-modules/jq/default.nix
index adcdd2b9d82..30efd75aa3a 100644
--- a/pkgs/development/python-modules/jq/default.nix
+++ b/pkgs/development/python-modules/jq/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "jq";
-  version = "0.1.6";
+  version = "0.1.8";
 
-  srcs = fetchPypi {
+  src = fetchPypi {
     inherit pname version;
-    sha256 = "34bdf9f9e49e522e1790afc03f3584c6b57329215ea0567fb2157867d6d6f602";
+    sha256 = "9b6bb376237133080185ab556ca2a724e8be5b31946eb2053d4a1f17ae9df9a8";
   };
   patches = [ ./jq-py-setup.patch ];
 
diff --git a/pkgs/development/python-modules/jsbeautifier/default.nix b/pkgs/development/python-modules/jsbeautifier/default.nix
index 225fa48c72c..f3eb0a173db 100644
--- a/pkgs/development/python-modules/jsbeautifier/default.nix
+++ b/pkgs/development/python-modules/jsbeautifier/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonApplication rec {
   pname = "jsbeautifier";
-  version = "1.11.0";
+  version = "1.12.0";
 
   propagatedBuildInputs = [ six editorconfig ];
   checkInputs = [ pytest ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4f670c6f4f8d4caca9a348271010742f494becb96fe0a9be6ffac8b3d46350ca";
+    sha256 = "65dea76bf2f551d7f1686111d2794506e07b6c7c477feca2124596376feb8713";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/jsonpatch/default.nix b/pkgs/development/python-modules/jsonpatch/default.nix
index 82ef58bab5d..a4a66aab44c 100644
--- a/pkgs/development/python-modules/jsonpatch/default.nix
+++ b/pkgs/development/python-modules/jsonpatch/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "jsonpatch";
-  version = "1.25";
+  version = "1.26";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ddc0f7628b8bfdd62e3cbfbc24ca6671b0b6265b50d186c2cf3659dc0f78fd6a";
+    sha256 = "e45df18b0ab7df1925f20671bbc3f6bd0b4b556fb4b9c5d97684b0a7eac01744";
   };
 
   # test files are missing
diff --git a/pkgs/development/python-modules/jug/default.nix b/pkgs/development/python-modules/jug/default.nix
index e96950c496c..9b71a1515ad 100644
--- a/pkgs/development/python-modules/jug/default.nix
+++ b/pkgs/development/python-modules/jug/default.nix
@@ -5,7 +5,7 @@
 
 buildPythonPackage rec {
   pname = "Jug";
-  version = "2.0.0";
+  version = "2.0.2";
   buildInputs = [ nose numpy ];
   propagatedBuildInputs = [
     bottle
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1am73pis8qrbgmpwrkja2qr0n9an6qha1k1yp87nx6iq28w5h7cv";
+    sha256 = "859a4b4cb26a0010299b189c92cfba626852c97a38e22f3d1b56e4e1d8ad8620";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/junit-xml/default.nix b/pkgs/development/python-modules/junit-xml/default.nix
index 84acd49792d..c7133c206d8 100644
--- a/pkgs/development/python-modules/junit-xml/default.nix
+++ b/pkgs/development/python-modules/junit-xml/default.nix
@@ -2,8 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , six
-, pytest
-, pytest-sugar
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -21,11 +20,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six ];
 
-  checkInputs = [ pytest pytest-sugar ];
-
-  checkPhase = ''
-    pytest
-  '';
+  checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Creates JUnit XML test result documents that can be read by tools such as Jenkins";
diff --git a/pkgs/development/python-modules/junos-eznc/default.nix b/pkgs/development/python-modules/junos-eznc/default.nix
index 1f92045c41a..f351ea7a1c3 100644
--- a/pkgs/development/python-modules/junos-eznc/default.nix
+++ b/pkgs/development/python-modules/junos-eznc/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "junos-eznc";
-  version = "2.4.1";
+  version = "2.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8f3ecf06ab4d630f27e7ed7a7b605122ee5c5e5386b1f5186f6cb52810750b18";
+    sha256 = "521659fe94da796897abc16773c3d84fa44d3e1f5386c71fbaef44cb80159855";
   };
 
 
diff --git a/pkgs/development/python-modules/jupyter-c-kernel/default.nix b/pkgs/development/python-modules/jupyter-c-kernel/default.nix
new file mode 100644
index 00000000000..0cc232bd706
--- /dev/null
+++ b/pkgs/development/python-modules/jupyter-c-kernel/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, ipykernel
+, gcc
+}:
+
+buildPythonPackage rec {
+  pname = "jupyter-c-kernel";
+  version = "1.2.2";
+
+  src = fetchPypi {
+    pname = "jupyter_c_kernel";
+    inherit version;
+    sha256 = "e4b34235b42761cfc3ff08386675b2362e5a97fb926c135eee782661db08a140";
+  };
+
+  postPatch = ''
+    substituteInPlace jupyter_c_kernel/kernel.py \
+      --replace "'gcc'" "'${gcc}/bin/gcc'"
+  '';
+
+  propagatedBuildInputs = [ ipykernel ];
+
+  # no tests in repository
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Minimalistic C kernel for Jupyter";
+    homepage = "https://github.com/brendanrius/jupyter-c-kernel/";
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/jupyter-sphinx/default.nix b/pkgs/development/python-modules/jupyter-sphinx/default.nix
index 9f2143e2f20..4d2efcf00b7 100644
--- a/pkgs/development/python-modules/jupyter-sphinx/default.nix
+++ b/pkgs/development/python-modules/jupyter-sphinx/default.nix
@@ -27,6 +27,6 @@ buildPythonPackage rec {
     description = "Jupyter Sphinx Extensions";
     homepage = "https://github.com/jupyter/jupyter-sphinx/";
     license = licenses.bsd3;
-  };    
+  };
 
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/jupyter-telemetry/default.nix b/pkgs/development/python-modules/jupyter-telemetry/default.nix
new file mode 100644
index 00000000000..4b3093cf6ce
--- /dev/null
+++ b/pkgs/development/python-modules/jupyter-telemetry/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, python-json-logger
+, jsonschema
+, ruamel_yaml
+, traitlets
+}:
+
+buildPythonPackage rec {
+  pname = "jupyter_telemetry";
+  version = "0.1.0";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "052khyn6h97jxl3k5i2m81xvga5v6vwh5qixzrax4w6zwcx62p24";
+  };
+
+  propagatedBuildInputs = [
+    python-json-logger jsonschema ruamel_yaml traitlets
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Telemetry for Jupyter Applications and extensions";
+    homepage = "https://jupyter-telemetry.readthedocs.io/";
+    license = licenses.bsd3;
+    maintainers = with lib.maintainers; [ chiroptical ];
+  };
+}
diff --git a/pkgs/development/python-modules/jupyter_client/5.nix b/pkgs/development/python-modules/jupyter_client/5.nix
index 8ce8150cbd4..201fbec02ca 100644
--- a/pkgs/development/python-modules/jupyter_client/5.nix
+++ b/pkgs/development/python-modules/jupyter_client/5.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "jupyter_client";
-  version = "5.3.4";
+  version = "5.3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "60e6faec1031d63df57f1cc671ed673dced0ed420f4377ea33db37b1c188b910";
+    sha256 = "5efdf4131124d4a0d5789101e74827022585f172d2f4b60cf6fa98e0a7511b25";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyter_client/default.nix b/pkgs/development/python-modules/jupyter_client/default.nix
index 008a74dfb3e..47d3bb6af0c 100644
--- a/pkgs/development/python-modules/jupyter_client/default.nix
+++ b/pkgs/development/python-modules/jupyter_client/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "jupyter_client";
-  version = "6.1.3";
+  version = "6.1.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3a32fa4d0b16d1c626b30c3002a62dfd86d6863ed39eaba3f537fade197bb756";
+    sha256 = "49e390b36fe4b4226724704ea28d9fb903f1a3601b6882ce3105221cd09377a1";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix b/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix
index 9d5d2a4c23f..4d0831ff979 100644
--- a/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix
+++ b/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix
@@ -7,16 +7,16 @@
 
 buildPythonPackage rec {
   pname = "jupyterhub-ldapauthenticator";
-  version = "1.3.0";
+  version = "1.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "920b115babdc32e7b159fc497a0a794bb0f57b222ce2c26c74a23594892f9d3c";
+    sha256 = "758081bbdb28b26313bb18c9d8aa2b8fcdc9162e4d3ab196c626567e64f1ab8b";
   };
 
   # No tests implemented
   doCheck = false;
-   
+
   propagatedBuildInputs = [ jupyterhub ldap3 ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix b/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix
new file mode 100644
index 00000000000..dc38acc66f7
--- /dev/null
+++ b/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, jupyterhub
+, tornado
+, bash
+}:
+
+buildPythonPackage rec {
+  pname = "jupyterhub-systemdspawner";
+  version = "0.14";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "080dd9cd9292266dad35d1efc7aa1af0ed6993d15eadc79bd959d1ee273d1923";
+  };
+
+  propagatedBuildInputs = [
+    jupyterhub
+    tornado
+  ];
+
+  postPatch = ''
+    substituteInPlace systemdspawner/systemd.py \
+      --replace "/bin/bash" "${bash}/bin/bash"
+
+    substituteInPlace systemdspawner/systemdspawner.py \
+      --replace "/bin/bash" "${bash}/bin/bash"
+  '';
+
+  meta = with lib; {
+    description = "JupyterHub Spawner using systemd for resource isolation";
+    homepage = "https://github.com/jupyterhub/systemdspawner";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/jupyterhub-tmpauthenticator/default.nix b/pkgs/development/python-modules/jupyterhub-tmpauthenticator/default.nix
new file mode 100644
index 00000000000..2aef23fe4a4
--- /dev/null
+++ b/pkgs/development/python-modules/jupyterhub-tmpauthenticator/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, jupyterhub
+}:
+
+buildPythonPackage rec {
+  pname = "jupyterhub-tmpauthenticator";
+  version = "0.6";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "064x1ypxwx1l270ic97p8czbzb7swl9758v40k3w2gaqf9762f0l";
+  };
+
+  propagatedBuildInputs = [ jupyterhub ];
+
+  # No tests available in the package
+  doCheck = false;
+
+  pythonImportsCheck = [ "tmpauthenticator" ];
+
+  meta = with lib; {
+    description = "Simple Jupyterhub authenticator that allows anyone to log in.";
+    license = with licenses; [ bsd3 ];
+    homepage = "https://github.com/jupyterhub/tmpauthenticator";
+    maintainers = with maintainers; [ chiroptical ];
+  };
+}
diff --git a/pkgs/development/python-modules/jupyterhub/default.nix b/pkgs/development/python-modules/jupyterhub/default.nix
index fa63af115f2..704d9174ebd 100644
--- a/pkgs/development/python-modules/jupyterhub/default.nix
+++ b/pkgs/development/python-modules/jupyterhub/default.nix
@@ -18,6 +18,7 @@
 , nodePackages
 , oauthlib
 , certipy
+, jupyter-telemetry
 }:
 
 let
@@ -53,12 +54,12 @@ in
 
 buildPythonPackage rec {
   pname = "jupyterhub";
-  version = "1.0.0";
+  version = "1.1.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zx6gw9yhgki05j21p6x1x2sf5a2mg2c2mx0ii8rl6q4b98ilm1k";
+    sha256 = "1mqknz0rxqzx4nc57vscvfh2d4znzlzpy83ancqxdaq3b8i70al5";
   };
 
   # Most of this only applies when building from source (e.g. js/css assets are
@@ -110,6 +111,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     alembic ipython jinja2 pamela python-oauth2 requests sqlalchemy tornado
     traitlets prometheus_client async_generator notebook certipy oauthlib
+    jupyter-telemetry
   ];
 
   # Disable tests because they take an excessive amount of time to complete.
diff --git a/pkgs/development/python-modules/jupyterlab-git/default.nix b/pkgs/development/python-modules/jupyterlab-git/default.nix
new file mode 100644
index 00000000000..91ae426147c
--- /dev/null
+++ b/pkgs/development/python-modules/jupyterlab-git/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, notebook
+, nbdime
+, git
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "jupyterlab_git";
+  version = "0.20.0";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0qs3wrcils07xlz698xr7giqf9v63n2qb338mlh7wql93rmjg45i";
+  };
+
+  propagatedBuildInputs = [ notebook nbdime git ];
+
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    pytest jupyterlab_git/ --ignore=jupyterlab_git/tests/test_handlers.py
+  '';
+
+  pythonImportsCheck = [ "jupyterlab_git" ];
+
+  meta = with lib; {
+    description = "Jupyter lab extension for version control with Git.";
+    license = with licenses; [ bsd3 ];
+    homepage = "https://github.com/jupyterlab/jupyterlab-git";
+    maintainers = with maintainers; [ chiroptical ];
+  };
+}
diff --git a/pkgs/development/python-modules/jupyterlab/default.nix b/pkgs/development/python-modules/jupyterlab/default.nix
index 8d08fec6f5d..fb5ac3d06aa 100644
--- a/pkgs/development/python-modules/jupyterlab/default.nix
+++ b/pkgs/development/python-modules/jupyterlab/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab";
-  version = "2.1.4";
+  version = "2.2.6";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7b5bd4a05330a01c8522ee7f1cda5cb2e0d96412d9e1e879a19b3afb63d4ac69";
+    sha256 = "6554b022d2cd120100e165ec537c6511d70de7f89e253b3c667ea28f2a9263ff";
   };
 
   propagatedBuildInputs = [ jupyterlab_server notebook ];
diff --git a/pkgs/development/python-modules/jupyterlab_server/default.nix b/pkgs/development/python-modules/jupyterlab_server/default.nix
index 9185c294006..0344a66cf66 100644
--- a/pkgs/development/python-modules/jupyterlab_server/default.nix
+++ b/pkgs/development/python-modules/jupyterlab_server/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab_server";
-  version = "1.1.5";
+  version = "1.2.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3398e401b95da868bc96bdaa44fa61252bf3e68fc9dd1645bd93293cce095f6c";
+    sha256 = "5431d9dde96659364b7cc877693d5d21e7b80cea7ae3959ecc2b87518e5f5d8c";
   };
 
   checkInputs = [ requests pytest ];
diff --git a/pkgs/development/python-modules/jupytext/default.nix b/pkgs/development/python-modules/jupytext/default.nix
index cee21edd243..e4b285d4ea7 100644
--- a/pkgs/development/python-modules/jupytext/default.nix
+++ b/pkgs/development/python-modules/jupytext/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "jupytext";
-  version = "1.4.2";
+  version = "1.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "58b4c6bf48ba2e18bfc2d8358e852b6e3538ff664843398be09157c184ee1a27";
+    sha256 = "1cebc9f5975b4c08db3de6d7d61b35f8c33a24cf2c8c04eee7b8a7aab8ddc39b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jwcrypto/default.nix b/pkgs/development/python-modules/jwcrypto/default.nix
index 997e3aedf53..42ed4cf8794 100644
--- a/pkgs/development/python-modules/jwcrypto/default.nix
+++ b/pkgs/development/python-modules/jwcrypto/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "jwcrypto";
-  version = "0.7";
+  version = "0.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "002i60yidafpr642qcxrd74d8frbc4ci8vfysm05vqydcri1zgmd";
+    sha256 = "b7fee2635bbefdf145399392f5be26ad54161c8271c66b5fe107b4b452f06c24";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/kaggle/default.nix b/pkgs/development/python-modules/kaggle/default.nix
new file mode 100644
index 00000000000..cccd553a31f
--- /dev/null
+++ b/pkgs/development/python-modules/kaggle/default.nix
@@ -0,0 +1,53 @@
+{ buildPythonPackage
+, certifi
+, fetchPypi
+, lib
+, python-dateutil
+, python-slugify
+, six
+, requests
+, tqdm
+, urllib3
+}:
+
+buildPythonPackage rec {
+  pname = "kaggle";
+  version = "1.5.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0f5qrkgklcpgbwncrif7aw4f86dychqplh7k3f4rljwnr9yhjb1w";
+  };
+
+  # The version bounds in the setup.py file are unnecessarily restrictive.
+  patchPhase = ''
+    substituteInPlace setup.py \
+      --replace 'urllib3 >= 1.21.1, < 1.25' 'urllib3'
+  '';
+
+  propagatedBuildInputs = [
+    certifi
+    python-dateutil
+    python-slugify
+    requests
+    six
+    tqdm
+    urllib3
+  ];
+
+  # Tests try to access the network.
+  checkPhase = ''
+    export HOME="$TMP"
+    mkdir -p "$HOME/.kaggle/"
+    echo '{"username":"foobar","key":"00000000000000000000000000000000"}' > "$HOME/.kaggle/kaggle.json"
+    $out/bin/kaggle --help > /dev/null
+  '';
+  pythonImportsCheck = [ "kaggle" ];
+
+  meta = with lib; {
+    description = "Official API for https://www.kaggle.com, accessible using a command line tool implemented in Python 3";
+    homepage = "https://github.com/Kaggle/kaggle-api";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cdepillabout ];
+  };
+}
diff --git a/pkgs/development/python-modules/kazoo/default.nix b/pkgs/development/python-modules/kazoo/default.nix
index 409a3b6c064..3c040abc724 100644
--- a/pkgs/development/python-modules/kazoo/default.nix
+++ b/pkgs/development/python-modules/kazoo/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "kazoo";
-  version = "2.7.0";
+  version = "2.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jvpn1rcnnq3by1y6wlhfl9jynb110xv5lvd0x0ifkld7vfzd0v8";
+    sha256 = "1zpj5cc8624w6i0pxgcxqkjwbkm4pkrv19d7wh5df3jais32g3jq";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/keep/default.nix b/pkgs/development/python-modules/keep/default.nix
new file mode 100644
index 00000000000..6108ea50689
--- /dev/null
+++ b/pkgs/development/python-modules/keep/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, PyGithub
+, terminaltables
+, click
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "keep";
+  version = "2.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0902kcvhbmy5q5n0ai1df29ybf87qaljz306c5ssl8j9xdjipcq2";
+  };
+
+  propagatedBuildInputs = [
+    click
+    requests
+    terminaltables
+    PyGithub
+  ];
+
+  # no tests
+  pythonImportsCheck = [ "keep" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/orkohunter/keep";
+    description = "A Meta CLI toolkit: Personal shell command keeper and snippets manager";
+    platforms = platforms.all;
+    license = licenses.mit;
+    maintainers = with maintainers; [ ris ];
+  };
+}
diff --git a/pkgs/development/python-modules/keras/default.nix b/pkgs/development/python-modules/keras/default.nix
index e255789aaf7..8b6301ab59b 100644
--- a/pkgs/development/python-modules/keras/default.nix
+++ b/pkgs/development/python-modules/keras/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "Keras";
-  version = "2.3.1";
+  version = "2.4.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "321d43772006a25a1d58eea17401ef2a34d388b588c9f7646c34796151ebc8cc";
+    sha256 = "fedd729b52572fb108a98e3d97e1bac10a81d3917d2103cc20ab2a5f03beb973";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/keyring/default.nix b/pkgs/development/python-modules/keyring/default.nix
index 9495245ea6c..560986f9c3d 100644
--- a/pkgs/development/python-modules/keyring/default.nix
+++ b/pkgs/development/python-modules/keyring/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "keyring";
-  version = "21.2.1";
+  version = "21.3.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c53e0e5ccde3ad34284a40ce7976b5b3a3d6de70344c3f8ee44364cc340976ec";
+    sha256 = "182f94fc0381546489e3e4d90384a8c1d43cc09ffe2eb4a826e7312df6e1be7c";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/kinparse/default.nix b/pkgs/development/python-modules/kinparse/default.nix
new file mode 100644
index 00000000000..7d6437f41a8
--- /dev/null
+++ b/pkgs/development/python-modules/kinparse/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytest
+, future
+, pyparsing
+}:
+
+buildPythonPackage {
+  pname = "kinparse";
+  version = "unstable-2019-12-18";
+
+  src = fetchFromGitHub {
+    owner = "xesscorp";
+    repo = "kinparse";
+    rev = "eeb3f346d57a67a471bdf111f39bef8932644481";
+    sha256 = "1nrjnybwzy93c79yylcwmb4lvkx7hixavnjwffslz0zwn32l0kx3";
+  };
+
+  doCheck = true;
+  pythonImportsCheck = [ "kinparse" ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  propagatedBuildInputs = [
+    future
+    pyparsing
+  ];
+
+  meta = with lib; {
+    description = "A Parser for KiCad EESCHEMA netlists";
+    homepage = "https://github.com/xesscorp/kinparse";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthuszagh ];
+  };
+}
diff --git a/pkgs/development/python-modules/kiwisolver/default.nix b/pkgs/development/python-modules/kiwisolver/default.nix
index 23cff218e83..393e2d134cc 100644
--- a/pkgs/development/python-modules/kiwisolver/default.nix
+++ b/pkgs/development/python-modules/kiwisolver/default.nix
@@ -14,9 +14,9 @@ buildPythonPackage rec {
     inherit pname version;
     sha256 = "247800260cd38160c362d211dcaf4ed0f7816afb5efe56544748b21d6ad6d17f";
   };
-  
+
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
-  
+
   nativeBuildInputs = [
     cppy
   ];
diff --git a/pkgs/development/python-modules/knack/default.nix b/pkgs/development/python-modules/knack/default.nix
index 083d810f696..dd45e967231 100644
--- a/pkgs/development/python-modules/knack/default.nix
+++ b/pkgs/development/python-modules/knack/default.nix
@@ -17,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "knack";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fcef6040164ebe7d69629e4e089b398c9b980791446496301befcf8381dba0fc";
+    sha256 = "dfc6aef6760ea9a9620577e01540617678d78cab3111a0f03e8b9f987d0f08ca";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/kombu/default.nix b/pkgs/development/python-modules/kombu/default.nix
index 5c70fb5eee0..560cd4383b1 100644
--- a/pkgs/development/python-modules/kombu/default.nix
+++ b/pkgs/development/python-modules/kombu/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "kombu";
-  version = "4.6.10";
+  version = "4.6.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "437b9cdea193cc2ed0b8044c85fd0f126bb3615ca2f4d4a35b39de7cacfa3c1a";
+    sha256 = "ca1b45faac8c0b18493d02a8571792f3c40291cf2bcf1f55afed3d8f3aa7ba74";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/kubernetes/default.nix b/pkgs/development/python-modules/kubernetes/default.nix
index 15c8a8144c6..d5ed1b4cc7c 100644
--- a/pkgs/development/python-modules/kubernetes/default.nix
+++ b/pkgs/development/python-modules/kubernetes/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   doCheck = pythonAtLeast "3";
   checkPhase = ''
-    py.test
+    py.test --ignore=kubernetes/dynamic/test_client.py
   '';
 
   src = fetchPypi {
diff --git a/pkgs/development/python-modules/labelbox/default.nix b/pkgs/development/python-modules/labelbox/default.nix
index d42ca3d8f1c..ad8d2853b1d 100644
--- a/pkgs/development/python-modules/labelbox/default.nix
+++ b/pkgs/development/python-modules/labelbox/default.nix
@@ -10,17 +10,17 @@
 
 buildPythonPackage rec {
   pname = "labelbox";
-  version = "2.4";
+  version = "2.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cb1c5adfbdc76560bed57d44f272f9306987a0865be9017fc520dca1e9649d5b";
+    sha256 = "a455ae30ccb9328731fca7f7f4cefaa7da69a2fe3e43d1b742bae5ff4693c695";
   };
 
   propagatedBuildInputs = [ jinja2 requests pillow rasterio shapely ];
 
   # Test cases are not running on pypi or GitHub
-  doCheck = false;   
+  doCheck = false;
 
   meta = with lib; {
     homepage = "https://github.com/Labelbox/Labelbox";
diff --git a/pkgs/development/python-modules/latexcodec/default.nix b/pkgs/development/python-modules/latexcodec/default.nix
index 3514d5da9a2..77b75193ca4 100644
--- a/pkgs/development/python-modules/latexcodec/default.nix
+++ b/pkgs/development/python-modules/latexcodec/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "latexcodec";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0pyzhidpnc3q3rh9d5hxhzv99rl5limyyrll7xcyssci92fn8gyd";
+    sha256 = "16pynfnn8y8xp55yp06i721fccv5dlx9ba6k5bzcwq9j6wf5b8ia";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/lazr-uri/default.nix b/pkgs/development/python-modules/lazr-uri/default.nix
index e9278625383..080eb4cdb0e 100644
--- a/pkgs/development/python-modules/lazr-uri/default.nix
+++ b/pkgs/development/python-modules/lazr-uri/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "lazr.uri";
-  version = "1.0.4";
+  version = "1.0.5";
 
   disabled = isPy27; # namespace is broken for python2
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1griz2r0vhi9k91wfhlx5cx7y3slkfyzyqldaa9i0zp850iqz0q2";
+    sha256 = "f36e7e40d5f8f2cf20ff2c81784a14a546e6c19c216d40a6617ebe0c96c92c49";
   };
 
   propagatedBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/lazy-object-proxy/default.nix b/pkgs/development/python-modules/lazy-object-proxy/default.nix
index 02ff59e6c21..fe6a02c3cd7 100644
--- a/pkgs/development/python-modules/lazy-object-proxy/default.nix
+++ b/pkgs/development/python-modules/lazy-object-proxy/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "lazy-object-proxy";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a0aed261060cd0372abf08d16399b1224dbb5b400312e6b00f2b23eabe1d4e96";
+    sha256 = "9723364577b79ad9958a68851fe2acb94da6fd25170c595516a8289e6a129043";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/lazy/default.nix b/pkgs/development/python-modules/lazy/default.nix
index ff967d62dc6..1e5f72ff803 100644
--- a/pkgs/development/python-modules/lazy/default.nix
+++ b/pkgs/development/python-modules/lazy/default.nix
@@ -18,4 +18,4 @@ buildPythonPackage rec {
     license = lib.licenses.bsd2;
     homepage = "https://github.com/stefanholek/lazy";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/ldap/default.nix b/pkgs/development/python-modules/ldap/default.nix
index 70b4ba2bf1f..0e4f5597ce6 100644
--- a/pkgs/development/python-modules/ldap/default.nix
+++ b/pkgs/development/python-modules/ldap/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "python-ldap";
-  version = "3.2.0";
+  version = "3.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13nvrhp85yr0jyxixcjj012iw8l9wynxxlykm9j3alss6waln73x";
+    sha256 = "198as30xy6p760niqps2zdvq2xcmr765h06pmda8fa9y077wl4a7";
   };
 
   propagatedBuildInputs = [ pyasn1 pyasn1-modules ];
diff --git a/pkgs/development/python-modules/ldap3/default.nix b/pkgs/development/python-modules/ldap3/default.nix
index eb2d09d8d26..9842c4d7596 100644
--- a/pkgs/development/python-modules/ldap3/default.nix
+++ b/pkgs/development/python-modules/ldap3/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ldap3";
-  version = "2.7";
+  version = "2.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1h1q8g1c2nkhx8p5n91bzkvjx5js5didi9xqbnmfrxqbnyc45w0p";
+    sha256 = "59d1adcd5ead263387039e2a37d7cd772a2006b1cdb3ecfcbaab5192a601c515";
   };
 
   propagatedBuildInputs = [ pyasn1 ];
diff --git a/pkgs/development/python-modules/libarcus/default.nix b/pkgs/development/python-modules/libarcus/default.nix
index cd5f0aef648..5b68695f832 100644
--- a/pkgs/development/python-modules/libarcus/default.nix
+++ b/pkgs/development/python-modules/libarcus/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "libarcus";
-  version = "4.6.1";
+  version = "4.7.1";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "libArcus";
     rev = version;
-    sha256 = "1sfy8skvgw6hiihs9jmfn7a13yappqwffir98pahyg7cim7p55kr";
+    sha256 = "0wmrcvw7k34ib93shhmjzh6kpndgqr37kyr377sril5clmac0z1f";
   };
 
   disabled = pythonOlder "3.4.0";
diff --git a/pkgs/development/python-modules/libcloud/2.nix b/pkgs/development/python-modules/libcloud/2.nix
index e680e45391f..52c1cf9a9d7 100644
--- a/pkgs/development/python-modules/libcloud/2.nix
+++ b/pkgs/development/python-modules/libcloud/2.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "apache-libcloud";
-  version = "2.8.2";
+  version = "2.8.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1wvm8vixhcapkfv5k6xaf8c8w647kx2rdifarg6j0s34r4jzblfg";
+    sha256 = "70096690b24a7832cc5abdfda1954b49fddc1c09a348a1e6caa781ac867ed4c6";
   };
 
   checkInputs = [ mock pytest pytestrunner requests-mock ];
diff --git a/pkgs/development/python-modules/libcloud/default.nix b/pkgs/development/python-modules/libcloud/default.nix
index 22201670111..6693756b9cb 100644
--- a/pkgs/development/python-modules/libcloud/default.nix
+++ b/pkgs/development/python-modules/libcloud/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "apache-libcloud";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b9eef1a61383fd401a537cf0796a1067a265288b7ab89be93f5571961a8a2902";
+    sha256 = "1b28j265kvibgxrgxx0gwfm6cmv252c8ph1j2vb0cpms8ph5if5v";
   };
 
   checkInputs = [ mock pytest pytestrunner requests-mock ];
diff --git a/pkgs/development/python-modules/libevdev/default.nix b/pkgs/development/python-modules/libevdev/default.nix
index ab00340cfe1..a17612c79cb 100644
--- a/pkgs/development/python-modules/libevdev/default.nix
+++ b/pkgs/development/python-modules/libevdev/default.nix
@@ -1,16 +1,30 @@
-{ stdenv, buildPythonPackage, isPy27, fetchPypi }:
+{ stdenv
+, buildPythonPackage
+, isPy27
+, fetchPypi
+, substituteAll
+, pkgs
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "libevdev";
-  version = "0.7";
+  version = "0.9";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10gwj08kn2rs4waq7807mq34cbavgkpg8fpir8mvnba601b8q4r4";
+    sha256 = "17agnigmzscmdjqmrylg1lza03hwjhgxbpf4l705s6i7p7ndaqrs";
   };
 
-  doCheck = false;
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      libevdev = stdenv.lib.getLib pkgs.libevdev;
+    })
+  ];
+
+  checkInputs = [ pytestCheckHook ];
 
   meta = with stdenv.lib; {
     description = "Python wrapper around the libevdev C library";
diff --git a/pkgs/development/python-modules/libevdev/fix-paths.patch b/pkgs/development/python-modules/libevdev/fix-paths.patch
new file mode 100644
index 00000000000..e73c360b146
--- /dev/null
+++ b/pkgs/development/python-modules/libevdev/fix-paths.patch
@@ -0,0 +1,22 @@
+diff --git a/libevdev/_clib.py b/libevdev/_clib.py
+index 6e4ab2c..9db54d1 100644
+--- a/libevdev/_clib.py
++++ b/libevdev/_clib.py
+@@ -120,7 +120,7 @@ class Libevdev(_LibraryWrapper):
+ 
+     @staticmethod
+     def _cdll():
+-        return ctypes.CDLL("libevdev.so.2", use_errno=True)
++        return ctypes.CDLL("@libevdev@/lib/libevdev.so.2", use_errno=True)
+ 
+     _api_prototypes = {
+         # const char *libevdev_event_type_get_name(unsigned int type);
+@@ -910,7 +910,7 @@ class UinputDevice(_LibraryWrapper):
+ 
+     @staticmethod
+     def _cdll():
+-        return ctypes.CDLL("libevdev.so.2", use_errno=True)
++        return ctypes.CDLL("@libevdev@/lib/libevdev.so.2", use_errno=True)
+ 
+     _api_prototypes = {
+         # int libevdev_uinput_create_from_device(const struct libevdev *, int, struct libevdev_uinput **)
diff --git a/pkgs/development/python-modules/liblarch/default.nix b/pkgs/development/python-modules/liblarch/default.nix
new file mode 100644
index 00000000000..30b52be0b85
--- /dev/null
+++ b/pkgs/development/python-modules/liblarch/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, fetchFromGitHub
+, buildPythonPackage
+, python
+, pygobject3
+, xvfb_run
+, gobject-introspection
+, gtk3
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  version = "3.0.1";
+  pname = "liblarch";
+  disabled = pythonOlder "3.5.0";
+
+  src = fetchFromGitHub {
+    owner = "getting-things-gnome";
+    repo = "liblarch";
+    rev = "v${version}";
+    sha256 = "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m";
+  };
+
+  checkInputs = [
+    gobject-introspection # for setup hook
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    pygobject3
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+    ${xvfb_run}/bin/xvfb-run -s '-screen 0 800x600x24' \
+      ${python.interpreter} nix_run_setup test
+    runHook postCheck
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A python library built to easily handle data structure such are lists, trees and acyclic graphs";
+    homepage = "https://github.com/getting-things-gnome/liblarch";
+    downloadPage = "https://github.com/getting-things-gnome/liblarch/releases";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ oyren ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/python-modules/librosa/default.nix b/pkgs/development/python-modules/librosa/default.nix
index ade83d6721a..0fc5d857fb8 100644
--- a/pkgs/development/python-modules/librosa/default.nix
+++ b/pkgs/development/python-modules/librosa/default.nix
@@ -9,26 +9,33 @@
 , audioread
 , resampy
 , soundfile
+, pooch
 }:
 
 buildPythonPackage rec {
   pname = "librosa";
-  version = "0.7.2";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "656bbda80e98e6330db1ead79cd084b13a762284834d7603fcf7cf7c0dc65f3c";
+    sha256 = "af0b9f2ed4bbf6aecbc448a4cd27c16453c397cb6bef0f0cfba0e63afea2b839";
   };
 
-  propagatedBuildInputs = [ joblib matplotlib six scikitlearn decorator audioread resampy soundfile ];
+  propagatedBuildInputs = [ joblib matplotlib six scikitlearn decorator audioread resampy soundfile pooch ];
 
   # No tests
+  # 1. Internet connection is required
+  # 2. Got error "module 'librosa' has no attribute 'version'"
   doCheck = false;
 
+  # check that import works, this allows to capture errors like https://github.com/librosa/librosa/issues/1160
+  pythonImportsCheck = [ "librosa" ];
+
   meta = with stdenv.lib; {
     description = "Python module for audio and music processing";
     homepage = "http://librosa.github.io/";
     license = licenses.isc;
+    maintainers = with maintainers; [ GuillaumeDesforges ];
   };
 
 }
diff --git a/pkgs/development/python-modules/libsavitar/default.nix b/pkgs/development/python-modules/libsavitar/default.nix
index 32717e127fb..27144ccf1ad 100644
--- a/pkgs/development/python-modules/libsavitar/default.nix
+++ b/pkgs/development/python-modules/libsavitar/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "libsavitar";
-  version = "4.6.1";
+  version = "4.7.1";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "libSavitar";
     rev = version;
-    sha256 = "0nk8zl5b0b36wrrkj271ck4phzxsigkjsazndscjslc9nkldmnpq";
+    sha256 = "0mzr3ynfap51bcn6kshyi2h6iny2gpavn6g3b1xcsgzzlxqgfixf";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/libtmux/default.nix b/pkgs/development/python-modules/libtmux/default.nix
index 65accea559a..605cbe04026 100644
--- a/pkgs/development/python-modules/libtmux/default.nix
+++ b/pkgs/development/python-modules/libtmux/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "libtmux";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0nh6dvf8g93hv7cma6r8l88k8l20zck6a0ax29mrdg03f9hqdk9a";
+    sha256 = "a4c7379604ccdc684aa865723211184709f9a2b45511772989b5f26ad156650e";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/libversion/default.nix b/pkgs/development/python-modules/libversion/default.nix
index 21aa46348b1..ed3629ce65d 100644
--- a/pkgs/development/python-modules/libversion/default.nix
+++ b/pkgs/development/python-modules/libversion/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "libversion";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p3snjlsg11vhba8h286h19kn6azlxbywg9f6rdhj8sfraccqlmk";
+    sha256 = "1h8x9hglrqi03f461lhw3wwz23zs84dgw7hx4laxcmyrgvyzvcq1";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/python-modules/libvirt/default.nix b/pkgs/development/python-modules/libvirt/default.nix
index 43962c7d4d6..7b1601a4122 100644
--- a/pkgs/development/python-modules/libvirt/default.nix
+++ b/pkgs/development/python-modules/libvirt/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "libvirt";
-  version = "6.2.0";
+  version = "6.3.0";
 
   src = assert version == libvirt.version; fetchgit {
     url = "git://libvirt.org/libvirt-python.git";
     rev = "v${version}";
-    sha256 = "0a8crk29rmnw1kcgi72crb7syacdk03lkl05yand5cxs0l65jwdl";
+    sha256 = "088cksq59jxkkzbvmwl8jw9v2k3zibwksl7j57yb51bxaa2sa1cx";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/python-modules/lightparam/default.nix b/pkgs/development/python-modules/lightparam/default.nix
index 6681b528b8c..b3ddb7655c0 100644
--- a/pkgs/development/python-modules/lightparam/default.nix
+++ b/pkgs/development/python-modules/lightparam/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "lightparam";
-  version = "0.3.7";
+  version = "0.4.6";
   disabled = !isPy3k;
   format = "wheel";
 
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     inherit pname version;
     format = "wheel";
     python = "py3";
-    sha256 = "53d5d5b225bac27bc14929c9ad4e51ece4f692813dd367f317fb1586145d93f1";
+    sha256 = "eca63016524208afb6a06db19baf659e698cce3ae2e57be15b37bc988549c631";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/limnoria/default.nix b/pkgs/development/python-modules/limnoria/default.nix
index a4800e70ffc..4a5e1386730 100644
--- a/pkgs/development/python-modules/limnoria/default.nix
+++ b/pkgs/development/python-modules/limnoria/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "limnoria";
-  version = "2020.04.11";
+  version = "2020.07.01";
   disabled = isPy27; # abandoned upstream
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "41e27cae66aeb1e811bebe64140a9b5eb3ccb208103a0f42ac61369d9a7ca339";
+    sha256 = "08q8krq8dqlvzz3wjgnki3n8d8qmk99pn7n3lfsim5rnrnx1jchb";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/llvmlite/default.nix b/pkgs/development/python-modules/llvmlite/default.nix
index 3a7f381e51c..7a7106a5eaa 100644
--- a/pkgs/development/python-modules/llvmlite/default.nix
+++ b/pkgs/development/python-modules/llvmlite/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "llvmlite";
-  version = "0.32.1";
+  version = "0.34.0";
 
   disabled = isPyPy || !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "41262a47b8cbba5a09203b15b65fbdf11192f92aa226c81e99115acdee8f3b8d";
+    sha256 = "f03ee0d19bca8f2fe922bb424a909d05c28411983b0c2bc58b020032a0d11f63";
   };
 
   nativeBuildInputs = [ llvm ];
diff --git a/pkgs/development/python-modules/lmdb/default.nix b/pkgs/development/python-modules/lmdb/default.nix
index 5f31511451d..328e5a428fc 100644
--- a/pkgs/development/python-modules/lmdb/default.nix
+++ b/pkgs/development/python-modules/lmdb/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "lmdb";
-  version = "0.98";
+  version = "0.99";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0625bc28bf0893e6000a83be7234f915ca078c32f9e73d8ae48b3508db7af708";
+    sha256 = "f9eb844aaaacc8a4bc175e1c1f8a8fb538c330e378fd9eb40e8708d4dca7dc89";
   };
 
   checkInputs = [ pytest cffi ];
diff --git a/pkgs/development/python-modules/lml/default.nix b/pkgs/development/python-modules/lml/default.nix
new file mode 100644
index 00000000000..c1320eef04c
--- /dev/null
+++ b/pkgs/development/python-modules/lml/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, nose
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "lml";
+  version = "0.0.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "6luoF7Styen1whclzSR1+RKTO34t/fB5Ku2AB3FU9j8=";
+  };
+
+  checkInputs = [
+    nose
+    mock
+  ];
+
+  checkPhase = "nosetests";
+
+  meta = {
+    description = "Load me later. A lazy plugin management system for Python";
+    homepage = "http://lml.readthedocs.io/";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ jtojnar ];
+  };
+}
diff --git a/pkgs/development/python-modules/lmtpd/default.nix b/pkgs/development/python-modules/lmtpd/default.nix
index 0078c917567..e9dd42219eb 100644
--- a/pkgs/development/python-modules/lmtpd/default.nix
+++ b/pkgs/development/python-modules/lmtpd/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "lmtpd";
-  version = "6.1.0";
+  version = "6.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "256e23a3292818ecccf9a76ef52e0064c6f7e1f8602904e15337c8917ed0fafe";
+    sha256 = "2c6825d2ffa1de099440411a742f58e1b3e8deeb3345adcfd4c2c38d4baf62b3";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/logfury/default.nix b/pkgs/development/python-modules/logfury/default.nix
index a52f194b8be..5f83c8633dc 100644
--- a/pkgs/development/python-modules/logfury/default.nix
+++ b/pkgs/development/python-modules/logfury/default.nix
@@ -28,4 +28,4 @@ buildPythonPackage rec {
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ jwiegley ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/loguru/default.nix b/pkgs/development/python-modules/loguru/default.nix
index bb605407de5..18b1594b280 100644
--- a/pkgs/development/python-modules/loguru/default.nix
+++ b/pkgs/development/python-modules/loguru/default.nix
@@ -2,16 +2,18 @@
 
 buildPythonPackage rec {
   pname = "loguru";
-  version = "0.5.0";
-  
+  version = "0.5.1";
+
   disabled = isPy27;
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1e0e6ff59be5e22f863d909ca989e34bb14c21b374f6af45281e603d003dbb96";
+    sha256 = "70201d5fce26da89b7a5f168caa2bb674e06b969829f56737db1d6472e53e7c3";
   };
 
   checkInputs = [ pytestCheckHook colorama ];
 
+  pytestFlagsArray = stdenv.lib.optionals stdenv.isDarwin [ "--ignore=tests/test_multiprocessing.py" ];
+
   disabledTests = [ "test_time_rotation_reopening" "test_file_buffering" ]
     ++ stdenv.lib.optionals stdenv.isDarwin [ "test_rotation_and_retention" "test_rotation_and_retention_timed_file" "test_renaming" "test_await_complete_inheritance" ];
 
diff --git a/pkgs/development/python-modules/ludios_wpull/default.nix b/pkgs/development/python-modules/ludios_wpull/default.nix
index 7bea2b04bbd..e87146f6fbc 100644
--- a/pkgs/development/python-modules/ludios_wpull/default.nix
+++ b/pkgs/development/python-modules/ludios_wpull/default.nix
@@ -8,15 +8,16 @@
 , lxml
 , namedlist
 , sqlalchemy
-, tornado_4
+, tornado
 , Yapsy
+, pythonAtLeast
 }:
 
 buildPythonPackage rec {
   pname = "ludios_wpull";
   version = "3.0.7";
 
-  disabled = !isPy3k;
+  disabled = (!isPy3k) || (pythonAtLeast "3.8");
 
   src = fetchFromGitHub {
     rev = version;
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     sha256 = "1j96avm0ynbazypzp766wh26n4qc73y7wgsiqfrdfl6x7rx20wgf";
   };
 
-  propagatedBuildInputs = [ chardet dnspython html5-parser lxml namedlist sqlalchemy tornado_4 Yapsy ];
+  propagatedBuildInputs = [ chardet dnspython html5-parser lxml namedlist sqlalchemy tornado Yapsy ];
 
   # Test suite has tests that fail on all platforms
   doCheck = false;
@@ -35,5 +36,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/ludios/wpull";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ ivan ];
+    broken = lib.versions.major tornado.version != "4";
   };
 }
diff --git a/pkgs/development/python-modules/lxml/default.nix b/pkgs/development/python-modules/lxml/default.nix
index f39e71ed690..aa009e0a3e7 100644
--- a/pkgs/development/python-modules/lxml/default.nix
+++ b/pkgs/development/python-modules/lxml/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, buildPythonPackage, fetchFromGitHub
 , cython
 , libxml2
 , libxslt
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "lxml";
-  version = "4.5.0";
+  version = "4.5.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "1i3bhg8xb502afq4ar3kgvvi1hy83l4af2gznfwqvb5b221fr7ak";
+    sha256 = "1d0cpwdjxfzwjzmnz066ibzicyj2vhx15qxmm775l8hxqi65xps4";
   };
 
   # setuptoolsBuildPhase needs dependencies to be passed through nativeBuildInputs
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "lxml" "lxml.etree" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pythonic binding for the libxml2 and libxslt libraries";
     homepage = "https://lxml.de";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/m2crypto/default.nix b/pkgs/development/python-modules/m2crypto/default.nix
index 0e079dd832c..f3ca43f5e9a 100644
--- a/pkgs/development/python-modules/m2crypto/default.nix
+++ b/pkgs/development/python-modules/m2crypto/default.nix
@@ -11,12 +11,12 @@
 
 
 buildPythonPackage rec {
-  version = "0.35.2";
+  version = "0.36.0";
   pname = "M2Crypto";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09yirf3w77w6f49q6nxhrjm9c3a4y9s30s1k09chqrw8zdgx8sjc";
+    sha256 = "1hadbdckmjzfb8qzbkafypin6sakfx35j2qx0fsivh757s7c2hhm";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/mac_alias/default.nix b/pkgs/development/python-modules/mac_alias/default.nix
new file mode 100644
index 00000000000..bd2a1f62390
--- /dev/null
+++ b/pkgs/development/python-modules/mac_alias/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi
+}:
+
+buildPythonPackage rec {
+  version = "2.0.7";
+  pname = "mac_alias";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "08z2i68mk5j0vfy8jqihjm9m6njp1lpjh1m91b60h0k0kpmy71f4";
+  };
+
+  # pypi package does not include tests;
+  # tests anyway require admin privileges to succeed
+  doCheck = false;
+  pythonImportsCheck = [ "mac_alias" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/al45tair/mac_alias";
+    description = "Generate or read binary Alias and Bookmark records from Python code";
+    longDescription = ''
+      mac_alias lets you generate or read binary Alias and Bookmark records from Python code.
+
+      While it is written in pure Python, some OS X specific code is required
+      to generate a proper Alias or Bookmark record for a given file,
+      so this module currently is not portable to other platforms.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ siriobalmelli ];
+  };
+}
diff --git a/pkgs/development/python-modules/mahotas/default.nix b/pkgs/development/python-modules/mahotas/default.nix
index f48c36bdb03..b7d17d943f7 100644
--- a/pkgs/development/python-modules/mahotas/default.nix
+++ b/pkgs/development/python-modules/mahotas/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "mahotas";
-  version = "1.4.9";
+  version = "1.4.10";
 
   src = fetchFromGitHub {
     owner = "luispedro";
     repo = "mahotas";
     rev = "v${version}";
-    sha256 = "151hri3lwcm9p7w1nyw99h8c70j51698cvzaiazvwb6gl4khwavv";
+    sha256 = "0fjiyl82wj1a6xzr9mss2y2rydl4zchl2cbdbg0jm0fcrs99q4hw";
   };
 
   # remove this as soon as https://github.com/luispedro/mahotas/issues/97 is fixed
diff --git a/pkgs/development/python-modules/maildir-deduplicate/default.nix b/pkgs/development/python-modules/maildir-deduplicate/default.nix
deleted file mode 100644
index 33728ef4113..00000000000
--- a/pkgs/development/python-modules/maildir-deduplicate/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, click
-}:
-
-buildPythonPackage rec {
-  pname = "maildir-deduplicate";
-  version = "2.1.0";
-  disabled = !isPy27;
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "263c7f2c85dafe06eaa15e8d7ab83817204f70a5f08cc25a607f3f01ed130b42";
-  };
-
-  propagatedBuildInputs = [ click ];
-
-  meta = with stdenv.lib; {
-    description = "Command-line tool to deduplicate mails from a set of maildir folders";
-    homepage = "https://github.com/kdeldycke/maildir-deduplicate";
-    license = licenses.gpl2;
-    broken = true;
-  };
-
-}
diff --git a/pkgs/development/python-modules/mapsplotlib/default.nix b/pkgs/development/python-modules/mapsplotlib/default.nix
index a5dd00971d0..d21d09571ad 100644
--- a/pkgs/development/python-modules/mapsplotlib/default.nix
+++ b/pkgs/development/python-modules/mapsplotlib/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "mapsplotlib";
-  version = "1.2.0";
+  version = "1.2.1";
 
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e0a18aa0d134407aab6130c314596732d129ff98f9a6084640a07a5b8656f836";
+    sha256 = "7650754e3175f13a1cb4406a62e4cfeb424036377992b9c3c2e3f6c2404d06b3";
   };
 
   propagatedBuildInputs = [ matplotlib scipy pandas requests pillow ];
diff --git a/pkgs/development/python-modules/marionette-harness/default.nix b/pkgs/development/python-modules/marionette-harness/default.nix
index 29d38a1f2f0..187e3a646a0 100644
--- a/pkgs/development/python-modules/marionette-harness/default.nix
+++ b/pkgs/development/python-modules/marionette-harness/default.nix
@@ -21,8 +21,8 @@ buildPythonPackage rec {
     sha256 = "041cd779ae383fb5c56f2bb44824f4e80ba895febd9a3f21570ac274221c82e0";
   };
 
-  propagatedBuildInputs = [ mozprofile mozversion browsermob-proxy moztest 
-    wptserve manifestparser marionette_driver ]; 
+  propagatedBuildInputs = [ mozprofile mozversion browsermob-proxy moztest
+    wptserve manifestparser marionette_driver ];
 
   meta = {
     description = "Mozilla Marionette protocol test automation harness";
diff --git a/pkgs/development/python-modules/marionette-harness/marionette_driver.nix b/pkgs/development/python-modules/marionette-harness/marionette_driver.nix
index 60e9e0460e7..28193528ed2 100644
--- a/pkgs/development/python-modules/marionette-harness/marionette_driver.nix
+++ b/pkgs/development/python-modules/marionette-harness/marionette_driver.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     sha256 = "99ca2513d4e2ca29a08e550346f23947a50627a2b02f6ad36a4550e779fa0ce8";
   };
 
-  propagatedBuildInputs = [ mozversion mozrunner ]; 
+  propagatedBuildInputs = [ mozversion mozrunner ];
 
   meta = {
     description = "Mozilla Marionette driver";
diff --git a/pkgs/development/python-modules/marionette-harness/mozhttpd.nix b/pkgs/development/python-modules/marionette-harness/mozhttpd.nix
index 3520d23081b..a7cbb7ece08 100644
--- a/pkgs/development/python-modules/marionette-harness/mozhttpd.nix
+++ b/pkgs/development/python-modules/marionette-harness/mozhttpd.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "mozhttpd";
-  version = "0.7";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10y1cr933ajx9ni701ayb7r361pak9wrzr7pdpyx81kkbjddq7qa";
+    sha256 = "3e2a9b4d6c007a1a9fb729d6e95b5404d138914727747e10155426492dced975";
   };
 
-  propagatedBuildInputs = [ moznetwork ]; 
+  propagatedBuildInputs = [ moznetwork ];
 
   meta = {
     description = "Webserver for Mozilla testing";
diff --git a/pkgs/development/python-modules/marionette-harness/moznetwork.nix b/pkgs/development/python-modules/marionette-harness/moznetwork.nix
index 3029f7ed546..6bdc93f680a 100644
--- a/pkgs/development/python-modules/marionette-harness/moznetwork.nix
+++ b/pkgs/development/python-modules/marionette-harness/moznetwork.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "0ws20l4ggb6mj7ycwrk5h7hj1jmj3mj0ca48k5jzsa4n042ahwrd";
   };
 
-  propagatedBuildInputs = [ mozlog mozinfo ]; 
+  propagatedBuildInputs = [ mozlog mozinfo ];
 
   meta = {
     description = "Network utilities for Mozilla testing";
diff --git a/pkgs/development/python-modules/markdown/3_1.nix b/pkgs/development/python-modules/markdown/3_1.nix
index b07d36e22c7..eb9b2e59ec8 100644
--- a/pkgs/development/python-modules/markdown/3_1.nix
+++ b/pkgs/development/python-modules/markdown/3_1.nix
@@ -18,8 +18,8 @@ buildPythonPackage rec {
     sha256 = "2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a";
   };
 
-  propagatedBuildInputs = [ 
-    setuptools 
+  propagatedBuildInputs = [
+    setuptools
   ] ++ lib.optionals (pythonOlder "3.8") [
     importlib-metadata
   ];
diff --git a/pkgs/development/python-modules/markdown/default.nix b/pkgs/development/python-modules/markdown/default.nix
index aa076cddadc..c97f74a2f2a 100644
--- a/pkgs/development/python-modules/markdown/default.nix
+++ b/pkgs/development/python-modules/markdown/default.nix
@@ -18,8 +18,8 @@ buildPythonPackage rec {
     sha256 = "1fafe3f1ecabfb514a5285fca634a53c1b32a81cb0feb154264d55bf2ff22c17";
   };
 
-  propagatedBuildInputs = [ 
-    setuptools 
+  propagatedBuildInputs = [
+    setuptools
   ] ++ lib.optionals (pythonOlder "3.8") [
     importlib-metadata
   ];
diff --git a/pkgs/development/python-modules/marshmallow-polyfield/default.nix b/pkgs/development/python-modules/marshmallow-polyfield/default.nix
index 3b18c10cbc3..e3b629b3034 100644
--- a/pkgs/development/python-modules/marshmallow-polyfield/default.nix
+++ b/pkgs/development/python-modules/marshmallow-polyfield/default.nix
@@ -31,4 +31,4 @@ buildPythonPackage rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/marshmallow/default.nix b/pkgs/development/python-modules/marshmallow/default.nix
index 4dd2ac8bcaa..cf54e38385d 100644
--- a/pkgs/development/python-modules/marshmallow/default.nix
+++ b/pkgs/development/python-modules/marshmallow/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "marshmallow";
-  version = "3.6.1";
+  version = "3.7.1";
   disabled = isPy27;
 
   meta = {
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "35ee2fb188f0bd9fc1cf9ac35e45fd394bd1c153cee430745a465ea435514bd5";
+    sha256 = "a2a5eefb4b75a3b43f05be1cca0b6686adf56af7465c3ca629e5ad8d1e1fe13d";
   };
 
   propagatedBuildInputs = [ dateutil simplejson ];
diff --git a/pkgs/development/python-modules/mask-rcnn/default.nix b/pkgs/development/python-modules/mask-rcnn/default.nix
index e9362f4e077..ae07e7928a6 100644
--- a/pkgs/development/python-modules/mask-rcnn/default.nix
+++ b/pkgs/development/python-modules/mask-rcnn/default.nix
@@ -18,7 +18,7 @@
 buildPythonPackage rec {
   pname = "mask-rcnn";
   version = "2.1";
-  
+
   src = fetchFromGitHub {
     owner = "matterport";
     repo = "Mask_RCNN";
@@ -49,4 +49,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ rakesh4g ];
   };
 }
-
diff --git a/pkgs/development/python-modules/mathics/default.nix b/pkgs/development/python-modules/mathics/default.nix
deleted file mode 100644
index 0bd81f00848..00000000000
--- a/pkgs/development/python-modules/mathics/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, python
-, cython
-, sympy
-, ply
-, mpmath
-, dateutil
-, colorama
-, six
-, pexpect
-}:
-
-if (stdenv.lib.versionOlder django.version "1.8") ||
-   (stdenv.lib.versionAtLeast django.version "1.9")
-   then throw "mathics only supports django-1.8.x"
-   else buildPythonPackage rec {
-  pname = "mathics";
-  version = "0.9";
-
-  src = fetchFromGitHub {
-    owner = "mathics";
-    repo = "Mathics";
-    rev = "v${version}";
-    sha256 = "0xzz7j8xskj5y6as178mjmm0i2xbhd4q4mwmdnvghpd2aqq3qx1c";
-  };
-
-  buildInputs = [ pexpect ];
-
-  prePatch = ''
-    substituteInPlace setup.py --replace "sympy==0.7.6" "sympy"
-  '';
-
-  postFixup = ''
-    wrapPythonProgramsIn $out/bin $out
-    patchPythonScript $out/${python.sitePackages}/mathics/manage.py
-  '';
-
-  propagatedBuildInputs = [ cython sympy django ply mpmath dateutil colorama six ];
-
-  meta = with stdenv.lib; {
-    description = "A general-purpose computer algebra system";
-    homepage = "http://www.mathics.org";
-    license = licenses.gpl3;
-    maintainers = [ maintainers.benley ];
-  };
-
-}
diff --git a/pkgs/development/python-modules/mathlibtools/default.nix b/pkgs/development/python-modules/mathlibtools/default.nix
new file mode 100644
index 00000000000..f9c1cf6839f
--- /dev/null
+++ b/pkgs/development/python-modules/mathlibtools/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchPypi, PyGithub, GitPython, toml, click, tqdm,
+  paramiko, networkx, pydot, pyyaml }:
+
+buildPythonPackage rec {
+  pname = "mathlibtools";
+  version = "0.0.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0d708bgsxjhhchqc56afi1h7k87vbfn7v40f4y1zlv7hsjc69s36";
+  };
+
+  propagatedBuildInputs = [
+    PyGithub GitPython toml click tqdm paramiko networkx pydot pyyaml
+  ];
+
+  # requires internet access
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/leanprover-community/mathlib-tools";
+    description = "leanproject is a supporting tool for Lean's mathlib";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ gebner ];
+  };
+}
diff --git a/pkgs/development/python-modules/matplotlib/default.nix b/pkgs/development/python-modules/matplotlib/default.nix
index 03afcfe75ae..45f31739746 100644
--- a/pkgs/development/python-modules/matplotlib/default.nix
+++ b/pkgs/development/python-modules/matplotlib/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchPypi, python, buildPythonPackage, isPy3k, pycairo, backports_functools_lru_cache
 , which, cycler, dateutil, nose, numpy, pyparsing, sphinx, tornado, kiwisolver
 , freetype, libpng, pkgconfig, mock, pytz, pygobject3, gobject-introspection
+, certifi, pillow
 , enableGhostscript ? true, ghostscript ? null, gtk3
 , enableGtk3 ? false, cairo
 # darwin has its own "MacOSX" backend
@@ -19,14 +20,14 @@ assert enableTk -> (tcl != null)
 assert enableQt -> pyqt5 != null;
 
 buildPythonPackage rec {
-  version = "3.2.1";
+  version = "3.3.1";
   pname = "matplotlib";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ffe2f9cdcea1086fc414e82f42271ecf1976700b8edd16ca9d376189c6d93aee";
+    sha256 = "87f53bcce90772f942c2db56736788b39332d552461a5cb13f05ff45c1680f0e";
   };
 
   XDG_RUNTIME_DIR = "/tmp";
@@ -39,7 +40,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs =
     [ cycler dateutil numpy pyparsing tornado freetype kiwisolver
-      libpng mock pytz ]
+      certifi libpng mock pytz pillow ]
     ++ stdenv.lib.optionals enableGtk3 [ cairo pycairo gtk3 gobject-introspection pygobject3 ]
     ++ stdenv.lib.optionals enableTk [ tcl tk tkinter libX11 ]
     ++ stdenv.lib.optionals enableQt [ pyqt5 ];
diff --git a/pkgs/development/python-modules/matplotlib/setup.cfg b/pkgs/development/python-modules/matplotlib/setup.cfg
index 6f81985efa4..6a773862765 100644
--- a/pkgs/development/python-modules/matplotlib/setup.cfg
+++ b/pkgs/development/python-modules/matplotlib/setup.cfg
@@ -1,2 +1,5 @@
 [directories]
 basedirlist = .
+
+[libs]
+system_freetype = true
diff --git a/pkgs/development/python-modules/matrix-nio/default.nix b/pkgs/development/python-modules/matrix-nio/default.nix
index aca4bf35434..59c3f47d2ca 100644
--- a/pkgs/development/python-modules/matrix-nio/default.nix
+++ b/pkgs/development/python-modules/matrix-nio/default.nix
@@ -20,13 +20,13 @@
 
 buildPythonPackage rec {
   pname = "matrix-nio";
-  version = "0.12.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "poljar";
     repo = "matrix-nio";
     rev = version;
-    sha256 = "1d4jhl2xjjp31yjs4zz2cfkvzbi2vr5bsrp07s6nhyc18azxr7ba";
+    sha256 = "127n4sqdcip1ld42w9wz49pxkpvi765qzvivvwl26720n11zq5cd";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mautrix/default.nix b/pkgs/development/python-modules/mautrix/default.nix
index 01cabdd9b32..50b81cef945 100644
--- a/pkgs/development/python-modules/mautrix/default.nix
+++ b/pkgs/development/python-modules/mautrix/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "mautrix";
-  version = "0.5.7";
+  version = "0.5.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0czymj9k9faky4dyrbxpr8rfrsb28xz9c0p66dcxvchk3m3ac49k";
+    sha256 = "1hqg32n7pmjhap0ybfcf05zgfcyyirb4fm1m7gf44dwh40da6qz0";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/maxminddb/default.nix b/pkgs/development/python-modules/maxminddb/default.nix
index beddba84fbc..0afdeef2228 100644
--- a/pkgs/development/python-modules/maxminddb/default.nix
+++ b/pkgs/development/python-modules/maxminddb/default.nix
@@ -1,22 +1,30 @@
-{ buildPythonPackage, lib, fetchPypi
+{ stdenv, lib, buildPythonPackage, pythonOlder, pythonAtLeast
+, fetchPypi
+, libmaxminddb
 , ipaddress
 , mock
 , nose
 }:
 
 buildPythonPackage rec {
-  version = "1.5.4";
+  version = "2.0.2";
   pname = "maxminddb";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f4d28823d9ca23323d113dc7af8db2087aa4f657fafc64ff8f7a8afda871425b";
+    sha256 = "b95d8ed21799e6604683669c7ed3c6a184fcd92434d5762dccdb139b4f29e597";
   };
 
+  buildInputs = [ libmaxminddb ];
+
   propagatedBuildInputs = [ ipaddress ];
 
   checkInputs = [ nose mock ];
 
+  # Tests are broken for macOS on python38
+  doCheck = !(stdenv.isDarwin && pythonAtLeast "3.8");
+
   meta = with lib; {
     description = "Reader for the MaxMind DB format";
     homepage = "https://www.maxmind.com/en/home";
diff --git a/pkgs/development/python-modules/mecab-python3/default.nix b/pkgs/development/python-modules/mecab-python3/default.nix
index cbc8084c232..dc712340554 100644
--- a/pkgs/development/python-modules/mecab-python3/default.nix
+++ b/pkgs/development/python-modules/mecab-python3/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "mecab-python3";
-  version = "0.996.5";
+  version = "1.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e7f09caf136903ce908b8b001ffc178d6caa129c1550d47d8f7f733a213749a8";
+    sha256 = "0246wxfk8v1js75nv8jl15cwpf4rvv4xndi4gbzjrrqbsgj2fvfm";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mergedeep/default.nix b/pkgs/development/python-modules/mergedeep/default.nix
new file mode 100644
index 00000000000..3b5536ed6fb
--- /dev/null
+++ b/pkgs/development/python-modules/mergedeep/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildPythonPackage, isPy27, fetchFromGitHub, pytest }:
+
+buildPythonPackage rec {
+  pname = "mergedeep";
+  version = "1.3.0";
+  disabled = isPy27;
+
+  # PyPI tarball doesn't include tests directory
+  src = fetchFromGitHub {
+    owner = "clarketm";
+    repo = "mergedeep";
+    rev = "v${version}";
+    sha256 = "1a0y26a04limiggjwqyyqpryxiylbqya74nq1bij75zhz42sa02b";
+  };
+
+  checkInputs = [ pytest ];
+  checkPhase = "pytest";
+  pythonImportsCheck = [ "mergedeep" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/clarketm/mergedeep";
+    description = "A deep merge function for python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ris ];
+  };
+}
diff --git a/pkgs/development/python-modules/minio/default.nix b/pkgs/development/python-modules/minio/default.nix
index 6fdc962cdb4..bd1e5417069 100644
--- a/pkgs/development/python-modules/minio/default.nix
+++ b/pkgs/development/python-modules/minio/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "minio";
-  version = "5.0.10";
+  version = "6.0.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6ecb7637a35f806733e9d112eacfa599a58d7c3d4698fda2b5c86fff5d34b417";
+    sha256 = "97d275ff01ddae45101eced0d9d5258f2869308c949b17d86a77b77a2a50b7b3";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mlflow/default.nix b/pkgs/development/python-modules/mlflow/default.nix
index 4687b97284f..1acd8bf5690 100644
--- a/pkgs/development/python-modules/mlflow/default.nix
+++ b/pkgs/development/python-modules/mlflow/default.nix
@@ -25,12 +25,12 @@
 
 buildPythonPackage rec {
   pname = "mlflow";
-  version = "1.8.0";
+  version = "1.10.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bab1b95da17ffb1856fec35fc1a0bc9d16e1811e41610a97c2c955884eb6ac53";
+    sha256 = "11fe050373f3dbd422aa476c42cb0ed15467268bc1ad07e221e550bc54f94b75";
   };
 
   # run into https://stackoverflow.com/questions/51203641/attributeerror-module-alembic-context-has-no-attribute-config
@@ -66,5 +66,7 @@ buildPythonPackage rec {
     description = "Open source platform for the machine learning lifecycle";
     license = licenses.asl20;
     maintainers = with maintainers; [ tbenst ];
+    # missing prometheus-flask-exporter, not packaged in nixpkgs
+    broken = true; # 2020-08-15
   };
 }
diff --git a/pkgs/development/python-modules/mmh3/default.nix b/pkgs/development/python-modules/mmh3/default.nix
new file mode 100644
index 00000000000..8ac24188003
--- /dev/null
+++ b/pkgs/development/python-modules/mmh3/default.nix
@@ -0,0 +1,23 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+}:
+
+buildPythonPackage rec {
+  pname = "mmh3";
+  version = "2.5.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0265pvfbcsijf51szsh14qk3l3zgs0rb5rbrw11zwan52yi0jlhq";
+  };
+
+  pythonImportsCheck = [ "mmh3" ];
+
+  meta = with lib; {
+    description = "Python wrapper for MurmurHash3, a set of fast and robust hash functions";
+    homepage = "https://pypi.org/project/mmh3/";
+    license = licenses.cc0;
+    maintainers = [ maintainers.danieldk ];
+  };
+}
diff --git a/pkgs/development/python-modules/mock/2.nix b/pkgs/development/python-modules/mock/2.nix
index 9ab8de1ba50..190297b41a2 100644
--- a/pkgs/development/python-modules/mock/2.nix
+++ b/pkgs/development/python-modules/mock/2.nix
@@ -41,4 +41,4 @@ buildPythonPackage rec {
     license = licenses.bsd2;
   };
 
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/mocket/default.nix b/pkgs/development/python-modules/mocket/default.nix
new file mode 100644
index 00000000000..3ff85f9f5c7
--- /dev/null
+++ b/pkgs/development/python-modules/mocket/default.nix
@@ -0,0 +1,43 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder, isPy27
+, decorator
+, importlib-metadata
+, python
+, python_magic
+, six
+, urllib3 }:
+
+buildPythonPackage rec {
+  pname = "mocket";
+  version = "3.8.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0yqls2hqmfs6i4p2nb89j5icyrqwabalsmwfixfvbjir4fmgad2l";
+  };
+
+  patchPhase = ''
+    substituteInPlace requirements.txt \
+      --replace "python-magic==0.4.18" "python-magic" \
+      --replace "urllib3==1.25.10" "urllib3"
+    substituteInPlace setup.py --replace 'setup_requires=["pipenv"]' "setup_requires=[]"
+  '';
+
+  propagatedBuildInputs = [
+    decorator
+    python_magic
+    urllib3
+    six
+  ] ++ lib.optionals (isPy27) [ six ];
+
+  # Pypi has no runtests.py, github has no requirements.txt. No way to test, no way to install.
+  doCheck = false;
+
+  pythonImportsCheck = [ "mocket" ];
+
+  meta = with lib; {
+    description = "A socket mock framework - for all kinds of socket animals, web-clients included";
+    homepage = "https://github.com/mindflayer/python-mocket";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/more-itertools/default.nix b/pkgs/development/python-modules/more-itertools/default.nix
index 8806bdf11cf..ec6ce4ed3b2 100644
--- a/pkgs/development/python-modules/more-itertools/default.nix
+++ b/pkgs/development/python-modules/more-itertools/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "more-itertools";
-  version = "8.3.0";
+  version = "8.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "558bb897a2232f5e4f8e2399089e35aecb746e1f9191b6584a151647e89267be";
+    sha256 = "68c70cc7167bdf5c7c9d8f6954a7837089c6a36bf565383919bb595efb8a17e5";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/morphys/default.nix b/pkgs/development/python-modules/morphys/default.nix
index 8f8525f7afe..b89055829ef 100644
--- a/pkgs/development/python-modules/morphys/default.nix
+++ b/pkgs/development/python-modules/morphys/default.nix
@@ -21,4 +21,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ rakesh4g ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/mox3/default.nix b/pkgs/development/python-modules/mox3/default.nix
index b3e1f9e6011..70b982ef4b8 100644
--- a/pkgs/development/python-modules/mox3/default.nix
+++ b/pkgs/development/python-modules/mox3/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , python
 , subunit
 , testrepository
@@ -14,6 +15,7 @@
 buildPythonPackage rec {
   pname = "mox3";
   version = "1.1.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/mpv/default.nix b/pkgs/development/python-modules/mpv/default.nix
index e79f16b1c3b..6dab88e0286 100644
--- a/pkgs/development/python-modules/mpv/default.nix
+++ b/pkgs/development/python-modules/mpv/default.nix
@@ -4,14 +4,14 @@
 
 buildPythonPackage rec {
   pname = "mpv";
-  version = "0.4.6";
+  version = "0.4.7";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "jaseg";
     repo = "python-mpv";
     rev = "v${version}";
-    sha256 = "1fh0fdv0k2yz7l6a62hf2svpgz34dzn84sh8fnv2x7wrkwd6r8qn";
+    sha256 = "1gq2ynzbpmc7bv066ddv2f4rnmvfsi7034vhf9ffp7yzbixf6ys8";
   };
 
   buildInputs = [ mpv ];
diff --git a/pkgs/development/python-modules/msal/default.nix b/pkgs/development/python-modules/msal/default.nix
index e07be20b264..a75560e3b55 100644
--- a/pkgs/development/python-modules/msal/default.nix
+++ b/pkgs/development/python-modules/msal/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "msal";
-  version = "1.3.0";
+  version = "1.4.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5442a3a9d006506e653d3c4daff40538bdf067bf07b6b73b32d1b231d5e77a92";
+    sha256 = "51b8e8e0d918d9b4813f006324e7c4e21eb76268dd4c1a06d811a3475ad4ac57";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/msgpack-numpy/default.nix b/pkgs/development/python-modules/msgpack-numpy/default.nix
index 9be30fff538..d380f18f772 100644
--- a/pkgs/development/python-modules/msgpack-numpy/default.nix
+++ b/pkgs/development/python-modules/msgpack-numpy/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "msgpack-numpy";
-  version = "0.4.6.post0";
+  version = "0.4.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dfcb0c9cb5850e656344ac464a260e7b8b9b1c62d77c2e1d3d9ef15a88f1df6b";
+    sha256 = "9f9b57abb2b155c2d3e411c2dd5b98f14998bd053a20c6ed0ab64a6ceb8ad51d";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/msrest/default.nix b/pkgs/development/python-modules/msrest/default.nix
index b415537106e..14ed57457b2 100644
--- a/pkgs/development/python-modules/msrest/default.nix
+++ b/pkgs/development/python-modules/msrest/default.nix
@@ -18,7 +18,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.6.13";
+  version = "0.6.18";
   pname = "msrest";
 
   # no tests in PyPI tarball
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "Azure";
     repo = "msrest-for-python";
     rev = "v${version}";
-    sha256 = "1s34xp6wgas17mbg6ysciqlgb3qc2p2d5bs9brwr05ys62l6y8cz";
+    sha256 = "0j0dbca47qnxnhpfgj3v5bglg8dpx2cy1psix8kp3ldrkf6rjwdb";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/msrestazure/default.nix b/pkgs/development/python-modules/msrestazure/default.nix
index a97469e8073..96c546e5d35 100644
--- a/pkgs/development/python-modules/msrestazure/default.nix
+++ b/pkgs/development/python-modules/msrestazure/default.nix
@@ -12,7 +12,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.6.3";
+  version = "0.6.4";
   pname = "msrestazure";
 
   # Pypi tarball doesnt include tests
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Azure";
     repo = "msrestazure-for-python";
     rev = "v${version}";
-    sha256 = "0pd3qw96c9fz4qgimnc0qf0pz7m9rr1wzhxj8m792swaf3pb18z8";
+    sha256 = "0ik81f0n6r27f02gblgm0vl5zl3wc6ijsscihgvc1fgm9f5mk5b5";
   };
 
   propagatedBuildInputs = [ adal msrest ];
diff --git a/pkgs/development/python-modules/mt-940/default.nix b/pkgs/development/python-modules/mt-940/default.nix
index d28cda99d74..e1699292944 100644
--- a/pkgs/development/python-modules/mt-940/default.nix
+++ b/pkgs/development/python-modules/mt-940/default.nix
@@ -3,22 +3,26 @@
 }:
 
 buildPythonPackage rec {
-  version = "4.21.0";
+  version = "4.23.0";
   pname = "mt-940";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7cbd88fd7252d5a2694593633b31f819eb302423058fecb9f9959e74c01c2b86";
+    sha256 = "9274bc8298b2d4b69cb3936bdcda315b50e45975789f519a237bdec58346b8d7";
   };
 
   propagatedBuildInputs = lib.optional (!isPy3k) enum34;
 
   checkInputs = [ pyyaml pytest ];
 
+  # requires tests files that are not present
+  doCheck = false;
   checkPhase = ''
     py.test
   '';
 
+  pythonImportsCheck = [ "mt940" ];
+
   meta = with lib; {
     description = "A library to parse MT940 files and returns smart Python collections for statistics and manipulation";
     homepage = "https://github.com/WoLpH/mt940";
diff --git a/pkgs/development/python-modules/multitasking/default.nix b/pkgs/development/python-modules/multitasking/default.nix
new file mode 100644
index 00000000000..8ea4d633f66
--- /dev/null
+++ b/pkgs/development/python-modules/multitasking/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "multitasking";
+  version = "0.0.9";
+
+  # GitHub source releases aren't tagged
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b59d99f709d2e17d60ccaa2be09771b6e9ed9391c63f083c0701e724f624d2e0";
+  };
+
+  doCheck = false;  # No tests included
+  pythonImportsCheck = [ "multitasking" ];
+
+  meta = with lib; {
+    description = "Non-blocking Python methods using decorators";
+    homepage = "https://github.com/ranaroussi/multitasking";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ drewrisinger ];
+  };
+}
diff --git a/pkgs/development/python-modules/mutagen/1.43.nix b/pkgs/development/python-modules/mutagen/1.43.nix
index 3947dc05fa4..a7a7c7c6604 100644
--- a/pkgs/development/python-modules/mutagen/1.43.nix
+++ b/pkgs/development/python-modules/mutagen/1.43.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "mutagen";
-  version = "1.43.0";
+  version = "1.43.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "125m0pkiw5lsffc0236xdlxfhwpr8csvxpmg6855405qy4wjv61s";
+    sha256 = "d873baeb7815311d3420aab0a1d83f050f628228cbc2d6045a14a16460411bc9";
   };
 
   propagatedBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/mutagen/default.nix b/pkgs/development/python-modules/mutagen/default.nix
index 9494d2c84a6..df0872242a1 100644
--- a/pkgs/development/python-modules/mutagen/default.nix
+++ b/pkgs/development/python-modules/mutagen/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , isPy27
 , fetchpatch
+, flake8
 , hypothesis
 , pycodestyle
 , pyflakes
@@ -13,18 +14,18 @@
 
 buildPythonPackage rec {
   pname = "mutagen";
-  version = "1.44.0";
+  version = "1.45.1";
   disabled = isPy27; # abandoned
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "56065d8a9ca0bc64610a4d0f37e2bd4453381dde3226b8835ee656faa3287be4";
+    sha256 = "6397602efb3c2d7baebd2166ed85731ae1c1d475abca22090b7141ff5034b3e1";
   };
 
   propagatedBuildInputs = [ setuptools ];
   checkInputs = [
     pkgs.faad2 pkgs.flac pkgs.vorbis-tools pkgs.liboggz
-    pkgs.glibcLocales pycodestyle pyflakes pytest hypothesis
+    pkgs.glibcLocales pycodestyle pyflakes pytest hypothesis flake8
   ];
   LC_ALL = "en_US.UTF-8";
 
diff --git a/pkgs/development/python-modules/mutatormath/default.nix b/pkgs/development/python-modules/mutatormath/default.nix
new file mode 100644
index 00000000000..9336dbf354a
--- /dev/null
+++ b/pkgs/development/python-modules/mutatormath/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi
+, defcon, fontmath
+, unicodedata2, fs
+}:
+
+buildPythonPackage rec {
+  pname = "MutatorMath";
+  version = "3.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0r1qq45np49x14zz1zwkaayqrn7m8dn2jlipjldg2ihnmpzw29w1";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [ fontmath unicodedata2 defcon ];
+  checkInputs = [ unicodedata2 fs ];
+
+  meta = with lib; {
+    description = "Piecewise linear interpolation in multiple dimensions with multiple, arbitrarily placed, masters";
+    homepage = "https://github.com/LettError/MutatorMath";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/mwclient/default.nix b/pkgs/development/python-modules/mwclient/default.nix
index b26a3f948c8..2744ff9a277 100644
--- a/pkgs/development/python-modules/mwclient/default.nix
+++ b/pkgs/development/python-modules/mwclient/default.nix
@@ -4,14 +4,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.10.0";
+  version = "0.10.1";
   pname = "mwclient";
 
   src = fetchFromGitHub {
     owner = "mwclient";
     repo = "mwclient";
     rev = "v${version}";
-    sha256 = "1c3q6lwmb05yqywc4ya98ca7hsl15niili8rccl4n1yqp77c103v";
+    sha256 = "120snnsh9n5svfwkyj1w9jrxf99jnqm0jk282yypd3lpyca1l9hj";
   };
 
   checkInputs = [ pytest pytestpep8 pytestcache pytestcov responses mock ];
diff --git a/pkgs/development/python-modules/mwoauth/default.nix b/pkgs/development/python-modules/mwoauth/default.nix
index 94a85d41d9e..0a73e99391e 100644
--- a/pkgs/development/python-modules/mwoauth/default.nix
+++ b/pkgs/development/python-modules/mwoauth/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   # package has no tests
   doCheck = false;
-  
+
   propagatedBuildInputs = [ six pyjwt requests oauthlib requests_oauthlib ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/myfitnesspal/default.nix b/pkgs/development/python-modules/myfitnesspal/default.nix
index a4a937d18d2..53e5f825344 100644
--- a/pkgs/development/python-modules/myfitnesspal/default.nix
+++ b/pkgs/development/python-modules/myfitnesspal/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "myfitnesspal";
-  version = "1.14.0";
+  version = "1.16.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "66bf61c3d782cd80f380d3856da5f635f5b8de032e62d916c26d48dc322846a6";
+    sha256 = "c2275e91c794a3569a76c47c78cf2ff04d7f569a98558227e899ead7b30af0d6";
   };
 
   # Remove overly restrictive version constraints on keyring and keyrings.alt
diff --git a/pkgs/development/python-modules/mypy-protobuf/default.nix b/pkgs/development/python-modules/mypy-protobuf/default.nix
index 5eda75d9c7f..3e0ab2cf182 100644
--- a/pkgs/development/python-modules/mypy-protobuf/default.nix
+++ b/pkgs/development/python-modules/mypy-protobuf/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonApplication rec {
   pname = "mypy-protobuf";
-  version = "1.21";
+  version = "1.23";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0eb8db49b014d1082f370a39eeaf272d1cc9978f728b64ee6fcc822d00a8793c";
+    sha256 = "cf79c77e828a2de9bdc74b43ad4abd4c2a3a30f0471b46e9b4e01b9877f166fb";
   };
 
   propagatedBuildInputs = [ protobuf ];
diff --git a/pkgs/development/python-modules/mypy/default.nix b/pkgs/development/python-modules/mypy/default.nix
index bdc032a942b..0bcf216fa46 100644
--- a/pkgs/development/python-modules/mypy/default.nix
+++ b/pkgs/development/python-modules/mypy/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "mypy";
-  version = "0.780";
+  version = "0.782";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4ef13b619a289aa025f2273e05e755f8049bb4eaba6d703a425de37d495d178d";
+    sha256 = "030kn709515452n6gy2i1d9fg6fyrkmdz228lfpmbslybsld9xzg";
   };
 
   propagatedBuildInputs = [ typed-ast psutil mypy-extensions typing-extensions ];
diff --git a/pkgs/development/python-modules/mysql-connector/default.nix b/pkgs/development/python-modules/mysql-connector/default.nix
index 5850d7e67b0..11777dbf9e6 100644
--- a/pkgs/development/python-modules/mysql-connector/default.nix
+++ b/pkgs/development/python-modules/mysql-connector/default.nix
@@ -4,13 +4,13 @@ let
   py = python;
 in buildPythonPackage rec {
   pname = "mysql-connector";
-  version = "8.0.20";
+  version = "8.0.21";
 
   src = fetchFromGitHub {
     owner = "mysql";
     repo = "mysql-connector-python";
     rev = version;
-    sha256 = "1pm98mjbkhwawhni98cjhp0gg3mim75i0sdby77vzrlcrxajxkbw";
+    sha256 = "0ky7rn9259807gji3fhvkmdmrgyaps431l9l9y6gh66i84kw1b3l";
   };
 
   propagatedBuildInputs = with py.pkgs; [ protobuf dnspython ];
diff --git a/pkgs/development/python-modules/mysqlclient/default.nix b/pkgs/development/python-modules/mysqlclient/default.nix
index 72bf06893ed..0d4aa542325 100644
--- a/pkgs/development/python-modules/mysqlclient/default.nix
+++ b/pkgs/development/python-modules/mysqlclient/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "mysqlclient";
-  version = "1.4.6";
+  version = "2.0.1";
 
   nativeBuildInputs = [
     libmysqlclient
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f3fdaa9a38752a3b214a6fe79d7cae3653731a53e577821f9187e67cbecb2e16";
+    sha256 = "fb2f75aea14722390d2d8ddf384ad99da708c707a96656210a7be8af20a2c5e5";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/nassl/default.nix b/pkgs/development/python-modules/nassl/default.nix
index 08cfb66408d..0df4b0218b5 100644
--- a/pkgs/development/python-modules/nassl/default.nix
+++ b/pkgs/development/python-modules/nassl/default.nix
@@ -80,14 +80,14 @@ buildPythonPackage rec {
     cp ${opensslLegacyStatic.out}/lib/libssl.a \
       ${opensslLegacyStatic.out}/lib/libcrypto.a \
       deps/openssl-OpenSSL_1_0_2e/
-    ln -s ${opensslLegacyStatic.out.dev}/include deps/openssl-OpenSSL_1_0_2e/include 
+    ln -s ${opensslLegacyStatic.out.dev}/include deps/openssl-OpenSSL_1_0_2e/include
     ln -s ${opensslLegacyStatic.bin}/bin deps/openssl-OpenSSL_1_0_2e/apps
 
     mkdir -p deps/openssl-OpenSSL_1_1_1/
     cp ${opensslStatic.out}/lib/libssl.a \
       ${opensslStatic.out}/lib/libcrypto.a \
       deps/openssl-OpenSSL_1_1_1/
-    ln -s ${opensslStatic.out.dev}/include deps/openssl-OpenSSL_1_1_1/include 
+    ln -s ${opensslStatic.out.dev}/include deps/openssl-OpenSSL_1_1_1/include
     ln -s ${opensslStatic.bin}/bin deps/openssl-OpenSSL_1_1_1/apps
 
     mkdir -p deps/zlib-1.2.11/
diff --git a/pkgs/development/python-modules/nbclient/default.nix b/pkgs/development/python-modules/nbclient/default.nix
index 18704eaee08..f6009bf5003 100644
--- a/pkgs/development/python-modules/nbclient/default.nix
+++ b/pkgs/development/python-modules/nbclient/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "nbclient";
-  version = "0.4.0";
+  version = "0.4.3";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1id6m2dllkjpbv2w0yazxhlkhdd9cac6lxv9csf053il9wq322lk";
+    sha256 = "311e14e463a300239c558a95023f6d1007c3f69f589bd51a76b1b6b3f19a7f4b";
   };
 
   checkInputs = [ pytest xmltodict nbconvert ipywidgets ];
diff --git a/pkgs/development/python-modules/nbconflux/default.nix b/pkgs/development/python-modules/nbconflux/default.nix
index 2ca203e65ac..e86119036b5 100644
--- a/pkgs/development/python-modules/nbconflux/default.nix
+++ b/pkgs/development/python-modules/nbconflux/default.nix
@@ -3,22 +3,22 @@
 buildPythonPackage rec {
   pname = "nbconflux";
   version = "0.7.0";
-  
+
   src = fetchFromGitHub {
     owner = "Valassis-Digital-Media";
     repo = "nbconflux";
     rev = version;
     sha256 = "1708qkb275d6f7b4b5zmqx3i0jh56nrx2n9rwwp5nbaah5p2wwlh";
   };
-    
+
   propagatedBuildInputs = [ nbconvert requests ];
-  
+
   checkInputs = [ pytest responses ];
-  
+
   checkPhase = ''
     pytest tests
   '';
-  
+
   meta = with lib; {
     description = "Converts Jupyter Notebooks to Atlassian Confluence (R) pages using nbconvert";
     homepage = "https://github.com/Valassis-Digital-Media/nbconflux";
diff --git a/pkgs/development/python-modules/nbformat/default.nix b/pkgs/development/python-modules/nbformat/default.nix
index 2f8c57e0033..0c75fc4ac5a 100644
--- a/pkgs/development/python-modules/nbformat/default.nix
+++ b/pkgs/development/python-modules/nbformat/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "nbformat";
-  version = "5.0.6";
+  version = "5.0.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "049af048ed76b95c3c44043620c17e56bc001329e07f83fec4f177f0e3d7b757";
+    sha256 = "54d4d6354835a936bad7e8182dcd003ca3dc0cedfee5a306090e04854343b340";
   };
 
   LC_ALL="en_US.utf8";
diff --git a/pkgs/development/python-modules/nbsphinx/default.nix b/pkgs/development/python-modules/nbsphinx/default.nix
index 9b96bc12d64..f46322954f3 100644
--- a/pkgs/development/python-modules/nbsphinx/default.nix
+++ b/pkgs/development/python-modules/nbsphinx/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "nbsphinx";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "77545508fff12fed427fffbd9eae932712fe3db7cc6729b0af5bbd122d7146cf";
+    sha256 = "0j56bxdj08vn3q1804qwb1ywhga1mdg1awgm7i64wfpfwi8df2zm";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/nbval/default.nix b/pkgs/development/python-modules/nbval/default.nix
index 41f5425317d..198f139b112 100644
--- a/pkgs/development/python-modules/nbval/default.nix
+++ b/pkgs/development/python-modules/nbval/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "nbval";
-  version = "0.9.5";
+  version = "0.9.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1xh2p7g5s5g06caaraf3dsz69bpj7dgw2h3ss67kci789aspnwp8";
+    sha256 = "cfefcd2ef66ee2d337d0b252c6bcec4023384eb32e8b9e5fcc3ac80ab8cd7d40";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/nbxmpp/default.nix b/pkgs/development/python-modules/nbxmpp/default.nix
index 0f84486674e..fb1945ddf42 100644
--- a/pkgs/development/python-modules/nbxmpp/default.nix
+++ b/pkgs/development/python-modules/nbxmpp/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, buildPythonPackage, fetchzip, pyopenssl, python }:
+{ stdenv, buildPythonPackage, fetchzip, gobject-introspection, idna, libsoup, precis-i18n, pygobject3, pyopenssl }:
 
 let
   pname = "nbxmpp";
-  version = "0.6.10";
+  version = "1.0.2";
   name = "${pname}-${version}";
 in buildPythonPackage {
   inherit pname version;
@@ -11,16 +11,12 @@ in buildPythonPackage {
     name = "${name}.tar.bz2";
     url = "https://dev.gajim.org/gajim/python-nbxmpp/repository/archive.tar.bz2?"
         + "ref=${name}";
-    sha256 = "1w31a747mj9rvlp3n20z0fnvyvihphkgkyr22sk2kap3migw8vai";
+    sha256 = "1rhzsakqrybzq5j5b9400wjd14pncph47c1ggn5a6f3di03lk4az";
   };
 
-  propagatedBuildInputs = [ pyopenssl ];
-
-  checkPhase = ''
-    # Disable tests requiring networking
-    echo "" > test/unit/test_xmpp_transports_nb2.py
-    ${python.executable} test/runtests.py
-  '';
+  buildInputs = [ precis-i18n ];
+  checkInputs = [ gobject-introspection libsoup pygobject3 ];
+  propagatedBuildInputs = [ idna pyopenssl ];
 
   meta = with stdenv.lib; {
     homepage = "https://dev.gajim.org/gajim/python-nbxmpp";
diff --git a/pkgs/development/python-modules/ncclient/default.nix b/pkgs/development/python-modules/ncclient/default.nix
index ca0a9d34b3e..203ffc65680 100644
--- a/pkgs/development/python-modules/ncclient/default.nix
+++ b/pkgs/development/python-modules/ncclient/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "ncclient";
-  version = "0.6.7";
+  version = "0.6.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "efdf3c868cd9f104d4e9fe4c233df78bfbbed4b3d78ba19dc27cec3cf6a63680";
+    sha256 = "0112f2ad41fb658f52446d870853a63691d69299c73c7351c520d38dbd8dc0c4";
   };
 
   checkInputs = [ nose rednose ];
diff --git a/pkgs/development/python-modules/nest-asyncio/default.nix b/pkgs/development/python-modules/nest-asyncio/default.nix
index 27c959cee0f..993e5e413e4 100644
--- a/pkgs/development/python-modules/nest-asyncio/default.nix
+++ b/pkgs/development/python-modules/nest-asyncio/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.3.3";
+  version = "1.4.0";
   pname = "nest_asyncio";
   disabled = !(pythonAtLeast "3.5");
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "75dad56eaa7078e2e29c6630f114077fc5060069658d74545b0409e63ca8a028";
+    sha256 = "1j2rbb31wdq9k15cmj2y0kypzvfc3v05py1n0809nmqlpi5hawsp";
   };
 
   # tests not packaged with source dist as of 1.3.2/1.3.2, and
diff --git a/pkgs/development/python-modules/netcdf4/default.nix b/pkgs/development/python-modules/netcdf4/default.nix
index 62373ebc42d..874ca53d34f 100644
--- a/pkgs/development/python-modules/netcdf4/default.nix
+++ b/pkgs/development/python-modules/netcdf4/default.nix
@@ -3,13 +3,13 @@
 }:
 buildPythonPackage rec {
   pname = "netCDF4";
-  version = "1.5.3";
+  version = "1.5.4";
 
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2a3ca855848f4bbf07fac366da77a681fcead18c0a8813d91d46302f562dc3be";
+    sha256 = "941de6f3623b6474ecb4d043be5990690f7af4cf0d593b31be912627fe5aad03";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/netdisco/default.nix b/pkgs/development/python-modules/netdisco/default.nix
index 9d471144644..a26a212d8f7 100644
--- a/pkgs/development/python-modules/netdisco/default.nix
+++ b/pkgs/development/python-modules/netdisco/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "netdisco";
-  version = "2.7.0";
+  version = "2.8.2";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "46839e47c57554241971fbf3ba7e0077cadd22dd2bcf7eec4f72b243de2e062d";
+    sha256 = "dcaabf83b204282aacfb213b18799eb7af2d5a6defe529487bbd0548036392fe";
   };
 
   propagatedBuildInputs = [ requests zeroconf netifaces ];
diff --git a/pkgs/development/python-modules/nibabel/default.nix b/pkgs/development/python-modules/nibabel/default.nix
index 2ca6635674c..b1e8a23ef8e 100644
--- a/pkgs/development/python-modules/nibabel/default.nix
+++ b/pkgs/development/python-modules/nibabel/default.nix
@@ -2,8 +2,9 @@
 , buildPythonPackage
 , fetchPypi
 , isPy27
-, nose
+, packaging
 , pytest
+, nose
 , numpy
 , h5py
 , pydicom
@@ -12,20 +13,20 @@
 
 buildPythonPackage rec {
   pname = "nibabel";
-  version = "3.1.0";
+  version = "3.1.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "774adcff834f22915afb68c6cdd7acbcb5d0240b7f87f6da6c63ff405480884b";
+    sha256 = "1kir9g7kmy2qygyzczx8nj4b0sc6jjvqy0ssm39bxzqsr1vzzvxm";
   };
 
-  propagatedBuildInputs = [ numpy scipy h5py pydicom ];
+  propagatedBuildInputs = [ numpy scipy h5py packaging pydicom ];
 
   checkInputs = [ nose pytest ];
 
   checkPhase = ''
-    nosetests
+    pytest
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/nipype/default.nix b/pkgs/development/python-modules/nipype/default.nix
index 4e47a4a9314..80ee7691a1a 100644
--- a/pkgs/development/python-modules/nipype/default.nix
+++ b/pkgs/development/python-modules/nipype/default.nix
@@ -50,11 +50,11 @@ in
 
 buildPythonPackage rec {
   pname = "nipype";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8c837eafdaa68e85d911aca20c8a2cd9210e4fffabbcbc5bd2eb6e26f8553da9";
+    sha256 = "3d6aa37186e1d2f90917dfdf1faf5aeff469912554990e5d182ffe8435f250d5";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/nix-kernel/default.nix b/pkgs/development/python-modules/nix-kernel/default.nix
new file mode 100644
index 00000000000..81057308e6b
--- /dev/null
+++ b/pkgs/development/python-modules/nix-kernel/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pexpect
+, notebook
+, nix
+}:
+
+buildPythonPackage rec {
+  pname = "nix-kernel";
+  version = "unstable-2020-04-26";
+
+  src = fetchFromGitHub {
+    owner = "GTrunSec";
+    repo = "nix-kernel";
+    rev = "dfa42d0812d508ded99f690ee1a83281d900a3ec";
+    sha256 = "1lf4rbbxjmq9h6g3wrdzx3v3dn1bndfmiybxiy0sjavgb6lzc8kq";
+  };
+
+  postPatch = ''
+    substituteInPlace nix-kernel/kernel.py \
+      --replace "'nix'" "'${nix}/bin/nix'" \
+      --replace "'nix repl'" "'${nix}/bin/nix repl'"
+
+    substituteInPlace setup.py \
+      --replace "cmdclass={'install': install_with_kernelspec}," ""
+  '';
+
+  propagatedBuildInputs = [
+    pexpect
+    notebook
+  ];
+
+  # no tests in repo
+  doCheck = false;
+
+  pythonImportsCheck = [ "nix-kernel" ];
+
+  meta = with lib; {
+    description = "Simple jupyter kernel for nix-repl";
+    homepage = "https://github.com/GTrunSec/nix-kernel";
+    license = licenses.mit;
+    maintainers = with maintainers; [ costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/nix-prefetch-github/default.nix b/pkgs/development/python-modules/nix-prefetch-github/default.nix
index 6ee4d937cfb..67873f929ad 100644
--- a/pkgs/development/python-modules/nix-prefetch-github/default.nix
+++ b/pkgs/development/python-modules/nix-prefetch-github/default.nix
@@ -15,17 +15,13 @@
 
 buildPythonPackage rec {
   pname = "nix-prefetch-github";
-  version = "2.4";
+  version = "3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-PVB/cL0NVB5pHxRMjg8TLatvIvHjfCvaRWBanVHYT+E=";
+    sha256 = "sha256-EN+EbVXUaf+id5UsK4EBm/9k9FYaH79g08kblvW60XA=";
   };
 
-  # The tests for this package require nix and network access.  That's
-  # why we cannot execute them inside the building process.
-  doCheck = false;
-
   propagatedBuildInputs = [
     attrs
     click
@@ -34,6 +30,9 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [ pytestCheckHook pytest-black pytestcov pytest-isort git ];
+  checkPhase = ''
+    pytest -m 'not network'
+  '';
 
   # latest version of isort will cause tests to fail
   # ignore tests which are impure
diff --git a/pkgs/development/python-modules/nmigen/default.nix b/pkgs/development/python-modules/nmigen/default.nix
index 3cb2056c7cf..98d95afa992 100644
--- a/pkgs/development/python-modules/nmigen/default.nix
+++ b/pkgs/development/python-modules/nmigen/default.nix
@@ -15,15 +15,15 @@
 
 buildPythonPackage rec {
   pname = "nmigen";
-  version = "unstable-2019-02-08";
+  version = "unstable-2020-04-02";
   # python setup.py --version
   realVersion = "0.2.dev49+g${lib.substring 0 7 src.rev}";
 
   src = fetchFromGitHub {
     owner = "nmigen";
     repo = "nmigen";
-    rev = "66f4510c4465be5d0763d7835770553434e4ee91";
-    sha256 = "19y39c4ywckm4yzrpjzcdl9pqy9d1sf1zsb4zpzajpmnfqccc3b0";
+    rev = "c79caead33fff14e2dec42b7e21d571a02526876";
+    sha256 = "sha256-3+mxHyg0a92/BfyePtKT5Hsk+ra+fQzTjCJ2Ech44/s=";
   };
 
   disabled = pythonOlder "3.6";
@@ -40,7 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A refreshed Python toolbox for building complex digital hardware";
-    homepage = "https://github.com/nmigen/nmigen";
+    homepage = "https://nmigen.info/nmigen";
     license = licenses.bsd2;
     maintainers = with maintainers; [ emily ];
   };
diff --git a/pkgs/development/python-modules/nodeenv/default.nix b/pkgs/development/python-modules/nodeenv/default.nix
index 14a67fe54ae..b4acefaeb6a 100644
--- a/pkgs/development/python-modules/nodeenv/default.nix
+++ b/pkgs/development/python-modules/nodeenv/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "nodeenv";
-  version = "1.3.3";
+  version = "1.3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ad8259494cf1c9034539f6cced78a1da4840a4b157e23640bc4a0c0546b0cb7a";
+    sha256 = "7389d06a7ea50c80ca51eda1b185db7b9ec38af1304d12d8b8299d6218486e91";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/notebook/2.nix b/pkgs/development/python-modules/notebook/2.nix
index 37f39c44967..0e5cfdf4397 100644
--- a/pkgs/development/python-modules/notebook/2.nix
+++ b/pkgs/development/python-modules/notebook/2.nix
@@ -25,11 +25,11 @@
 
 buildPythonPackage rec {
   pname = "notebook";
-  version = "5.7.8";
+  version = "5.7.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "573e0ae650c5d76b18b6e564ba6d21bf321d00847de1d215b418acb64f056eb8";
+    sha256 = "b10107e1438e7a564292aa32510e610c88844cae03c882fe5286b891792b5c11";
   };
 
   LC_ALL = "en_US.utf8";
diff --git a/pkgs/development/python-modules/notebook/default.nix b/pkgs/development/python-modules/notebook/default.nix
index 4550bb63631..7ac4bc5fdbe 100644
--- a/pkgs/development/python-modules/notebook/default.nix
+++ b/pkgs/development/python-modules/notebook/default.nix
@@ -2,6 +2,7 @@
 , lib
 , buildPythonPackage
 , fetchPypi
+, argon2_cffi
 , nose
 , nose_warnings_filters
 , glibcLocales
@@ -11,6 +12,7 @@
 , tornado
 , ipython_genutils
 , traitlets
+, jupyter
 , jupyter_core
 , jupyter_client
 , nbformat
@@ -21,27 +23,28 @@
 , send2trash
 , pexpect
 , prometheus_client
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "notebook";
-  version = "6.0.3";
+  version = "6.1.3";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "47a9092975c9e7965ada00b9a20f0cf637d001db60d241d479f53c0be117ad48";
+    sha256 = "9990d51b9931a31e681635899aeb198b4c4b41586a9e87fbfaaed1a71d0a05b6";
   };
 
   LC_ALL = "en_US.utf8";
 
-  checkInputs = [ nose glibcLocales ]
+  checkInputs = [ nose pytestCheckHook glibcLocales ]
     ++ (if isPy3k then [ nose_warnings_filters ] else [ mock ]);
 
   propagatedBuildInputs = [
     jinja2 tornado ipython_genutils traitlets jupyter_core send2trash
     jupyter_client nbformat nbconvert ipykernel terminado requests pexpect
-    prometheus_client
+    prometheus_client argon2_cffi
   ];
 
   # disable warning_filters
@@ -52,18 +55,19 @@ buildPythonPackage rec {
   postPatch = ''
     # Remove selenium tests
     rm -rf notebook/tests/selenium
-
+    export HOME=$TMPDIR
   '';
 
-  checkPhase = ''
-    runHook preCheck
-    mkdir tmp
-    HOME=tmp nosetests -v ${if (stdenv.isDarwin) then ''
-      --exclude test_delete \
-      --exclude test_checkpoints_follow_file
-    ''
-    else ""}
-  '';
+  disabledTests = [
+    # a "system_config" is generated, and fails many tests
+    "config"
+    "load_ordered"
+    # requires jupyter, but will cause circular imports
+    "test_run"
+    "TestInstallServerExtension"
+    "launch_socket"
+    "sock_server"
+  ];
 
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
diff --git a/pkgs/development/python-modules/notify2/default.nix b/pkgs/development/python-modules/notify2/default.nix
index a7928fb66c6..28c74415c5d 100644
--- a/pkgs/development/python-modules/notify2/default.nix
+++ b/pkgs/development/python-modules/notify2/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # Tests require Xorg and Dbus instance
   doCheck = false;
   propagatedBuildInputs = [ pygobject3
-                            dbus-python ]; 
+                            dbus-python ];
 
   meta = {
     description = "Pure Python interface to DBus notifications";
diff --git a/pkgs/development/python-modules/nplusone/default.nix b/pkgs/development/python-modules/nplusone/default.nix
new file mode 100644
index 00000000000..c2f484cb3a9
--- /dev/null
+++ b/pkgs/development/python-modules/nplusone/default.nix
@@ -0,0 +1,49 @@
+{ blinker, buildPythonPackage, fetchFromGitHub, lib, isPy27, six, mock, pytest
+, webtest, pytestcov, pytest-django, pytest-pythonpath, flake8, sqlalchemy
+, flask_sqlalchemy, peewee }:
+
+buildPythonPackage rec {
+  pname = "nplusone";
+  version = "1.0.0";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "jmcarp";
+    repo = "nplusone";
+    rev = "v${version}";
+    sha256 = "0qdwpvvg7dzmksz3vqkvb27n52lq5sa8i06m7idnj5xk2dgjkdxg";
+  };
+
+  # The tests assume the source code is in an nplusone/ directory. When using
+  # the Nix sandbox, it will be in a source/ directory instead, making the
+  # tests fail.
+  prePatch = ''
+    substituteInPlace tests/conftest.py \
+      --replace nplusone/tests/conftest source/tests/conftest
+  '';
+
+  checkPhase = ''
+    pytest tests/
+  '';
+
+  propagatedBuildInputs = [ six blinker ];
+  checkInputs = [
+    mock
+    pytest
+    webtest
+    pytestcov
+    pytest-django
+    pytest-pythonpath
+    flake8
+    sqlalchemy
+    flask_sqlalchemy
+    peewee
+  ];
+
+  meta = with lib; {
+    description = "Detecting the n+1 queries problem in Python";
+    homepage = "https://github.com/jmcarp/nplusone";
+    maintainers = with maintainers; [ cript0nauta ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/ntlm-auth/default.nix b/pkgs/development/python-modules/ntlm-auth/default.nix
index 14900d5c55d..080734bd25e 100644
--- a/pkgs/development/python-modules/ntlm-auth/default.nix
+++ b/pkgs/development/python-modules/ntlm-auth/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "ntlm-auth";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "jborean93";
     repo = "ntlm-auth";
     rev = "v${version}";
-    sha256 = "168k3ygwbvnfcwn7q1nv3vvy6b9jc4cnpix0xgg5j8av7v1x0grn";
+    sha256 = "00dpf5bfsy07frsjihv1k10zmwcyq4bvkilbxha7h6nlwpcm2409";
   };
 
   checkInputs = [ mock pytest requests unittest2 ];
diff --git a/pkgs/development/python-modules/nuitka/default.nix b/pkgs/development/python-modules/nuitka/default.nix
index f65f5079b2c..f5726b91b9c 100644
--- a/pkgs/development/python-modules/nuitka/default.nix
+++ b/pkgs/development/python-modules/nuitka/default.nix
@@ -12,13 +12,13 @@ let
   # Therefore we create a separate env for it.
   scons = pkgs.python27.withPackages(ps: [ pkgs.scons ]);
 in buildPythonPackage rec {
-  version = "0.6.8.1";
+  version = "0.6.8.4";
   pname = "Nuitka";
 
   # Latest version is not yet on PyPi
   src = fetchurl {
     url = "https://github.com/kayhayen/Nuitka/archive/${version}.tar.gz";
-    sha256 = "1rn6i2mcljhb9nmh8qj3slcmqzs9jx8s7j8r2b7685n7751h5ipj";
+    sha256 = "0awhwksnmqmbciimqmd11wygp7bnq57khcg4n9r4ld53s147rmqm";
   };
 
   checkInputs = [ vmprof pyqt4 ];
diff --git a/pkgs/development/python-modules/numba/default.nix b/pkgs/development/python-modules/numba/default.nix
index 909a37c7829..c3a6484adbc 100644
--- a/pkgs/development/python-modules/numba/default.nix
+++ b/pkgs/development/python-modules/numba/default.nix
@@ -13,14 +13,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.49.1";
+  version = "0.51.1";
   pname = "numba";
   # uses f-strings
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "89e1ad8215918036b0ffc53501888d44ed44c1f2cb09a9e047d06af5cd7e7a5a";
+    sha256 = "1e765b1a41535684bf3b0465c1d0a24dcbbff6af325270c8f4dad924c0940160";
   };
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
diff --git a/pkgs/development/python-modules/numcodecs/default.nix b/pkgs/development/python-modules/numcodecs/default.nix
index ea93fc1f3f3..92d049dbe6c 100644
--- a/pkgs/development/python-modules/numcodecs/default.nix
+++ b/pkgs/development/python-modules/numcodecs/default.nix
@@ -5,7 +5,7 @@
 , cython
 , numpy
 , msgpack
-, pytest
+, pytestCheckHook
 , python
 , gcc8
 }:
@@ -31,12 +31,20 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    pytest $out/${python.sitePackages}/numcodecs -k "not test_backwards_compatibility"
-  '';
+  pytestFlagsArray = [
+    "$out/${python.sitePackages}/numcodecs"
+  ];
+
+  disabledTests = [
+    "test_backwards_compatibility"
+
+    "test_encode_decode"
+    "test_legacy_codec_broken"
+    "test_bytes"
+  ];
 
   meta = with lib;{
     homepage = "https://github.com/alimanfoo/numcodecs";
diff --git a/pkgs/development/python-modules/numexpr/default.nix b/pkgs/development/python-modules/numexpr/default.nix
index d0bb0a88cff..3e3316788ed 100644
--- a/pkgs/development/python-modules/numexpr/default.nix
+++ b/pkgs/development/python-modules/numexpr/default.nix
@@ -21,17 +21,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ numpy ];
 
-  # Run the test suite.
-  # It requires the build path to be in the python search path.
   checkPhase = ''
-    pushd $out
-    ${python}/bin/${python.executable} <<EOF
-    import sys
-    import numexpr
-    r = numexpr.test()
-    if not r.wasSuccessful():
-        sys.exit(1)
-    EOF
+    runtest="$(pwd)/numexpr/tests/test_numexpr.py"
+    pushd "$out"
+    ${python}/bin/${python.executable} "$runtest"
     popd
   '';
 
diff --git a/pkgs/development/python-modules/numpy/1.16.nix b/pkgs/development/python-modules/numpy/1.16.nix
new file mode 100644
index 00000000000..6fa77d8fa90
--- /dev/null
+++ b/pkgs/development/python-modules/numpy/1.16.nix
@@ -0,0 +1,97 @@
+{ lib
+, fetchPypi
+, python
+, buildPythonPackage
+, gfortran
+, pytest
+, blas
+, lapack
+, writeTextFile
+, isPyPy
+, cython
+, setuptoolsBuildHook
+ }:
+
+assert (!blas.isILP64) && (!lapack.isILP64);
+
+let
+  cfg = writeTextFile {
+    name = "site.cfg";
+    text = (lib.generators.toINI {} {
+      ${blas.implementation} = {
+        include_dirs = "${lib.getDev blas}/include:${lib.getDev lapack}/include";
+        library_dirs = "${blas}/lib:${lapack}/lib";
+        runtime_library_dirs = "${blas}/lib:${lapack}/lib";
+        libraries = "lapack,lapacke,blas,cblas";
+      };
+      lapack = {
+        include_dirs = "${lib.getDev lapack}/include";
+        library_dirs = "${lapack}/lib";
+        runtime_library_dirs = "${lapack}/lib";
+      };
+      blas = {
+        include_dirs = "${lib.getDev blas}/include";
+        library_dirs = "${blas}/lib";
+        runtime_library_dirs = "${blas}/lib";
+      };
+    });
+  };
+in buildPythonPackage rec {
+  pname = "numpy";
+  version = "1.16.6";
+  format = "pyproject.toml";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "e5cf3fdf13401885e8eea8170624ec96225e2174eb0c611c6f26dd33b489e3ff";
+  };
+
+  nativeBuildInputs = [ gfortran pytest cython setuptoolsBuildHook ];
+  buildInputs = [ blas lapack ];
+
+  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++_1.16.patch
+  ];
+
+  preConfigure = ''
+    sed -i 's/-faltivec//' numpy/distutils/system_info.py
+    export NPY_NUM_BUILD_JOBS=$NIX_BUILD_CORES
+  '';
+
+  preBuild = ''
+    ln -s ${cfg} site.cfg
+  '';
+
+  enableParallelBuilding = true;
+
+  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)
+
+  checkPhase = ''
+    runHook preCheck
+    pushd dist
+    ${python.interpreter} -c 'import numpy; numpy.test("fast", verbose=10)'
+    popd
+    runHook postCheck
+  '';
+
+  passthru = {
+    # just for backwards compatibility
+    blas = blas.provider;
+    blasImplementation = blas.implementation;
+    inherit cfg;
+  };
+
+  # Disable test
+  # - test_large_file_support: takes a long time and can cause the machine to run out of disk space
+  NOSE_EXCLUDE="test_large_file_support";
+
+  meta = {
+    description = "Scientific tools for Python";
+    homepage = "https://numpy.org/";
+    maintainers = with lib.maintainers; [ fridh ];
+  };
+}
diff --git a/pkgs/development/python-modules/numpy/default.nix b/pkgs/development/python-modules/numpy/default.nix
index 0c9bac97320..9502cdc5b0a 100644
--- a/pkgs/development/python-modules/numpy/default.nix
+++ b/pkgs/development/python-modules/numpy/default.nix
@@ -3,6 +3,7 @@
 , python
 , buildPythonPackage
 , gfortran
+, hypothesis
 , pytest
 , blas
 , lapack
@@ -21,27 +22,30 @@ let
       ${blas.implementation} = {
         include_dirs = "${lib.getDev blas}/include:${lib.getDev lapack}/include";
         library_dirs = "${blas}/lib:${lapack}/lib";
+        runtime_library_dirs = "${blas}/lib:${lapack}/lib";
         libraries = "lapack,lapacke,blas,cblas";
       };
       lapack = {
         include_dirs = "${lib.getDev lapack}/include";
         library_dirs = "${lapack}/lib";
+        runtime_library_dirs = "${lapack}/lib";
       };
       blas = {
         include_dirs = "${lib.getDev blas}/include";
         library_dirs = "${blas}/lib";
+        runtime_library_dirs = "${blas}/lib";
       };
     });
   };
 in buildPythonPackage rec {
   pname = "numpy";
-  version = "1.18.5";
+  version = "1.19.1";
   format = "pyproject.toml";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "34e96e9dae65c4839bd80012023aadd6ee2ccb73ce7fdf3074c62f301e63120b";
+    sha256 = "b8456987b637232602ceb4d663cb34106f7eb780e247d51a260b84760fd8f491";
   };
 
   nativeBuildInputs = [ gfortran pytest cython setuptoolsBuildHook ];
@@ -67,6 +71,8 @@ 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 = [ hypothesis ];
+
   checkPhase = ''
     runHook preCheck
     pushd dist
diff --git a/pkgs/development/python-modules/numpy/numpy-distutils-C++.patch b/pkgs/development/python-modules/numpy/numpy-distutils-C++.patch
index 771da8cf3ff..6c75f34ce07 100644
--- a/pkgs/development/python-modules/numpy/numpy-distutils-C++.patch
+++ b/pkgs/development/python-modules/numpy/numpy-distutils-C++.patch
@@ -1,8 +1,7 @@
 diff --git a/numpy/distutils/unixccompiler.py b/numpy/distutils/unixccompiler.py
-index 6ed5eec..82a88b5 100644
 --- a/numpy/distutils/unixccompiler.py
 +++ b/numpy/distutils/unixccompiler.py
-@@ -44,8 +44,6 @@ def UnixCCompiler__compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts
+@@ -37,8 +37,6 @@ def UnixCCompiler__compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts
          if opt not in llink_s:
              self.linker_so = llink_s.split() + opt.split()
  
@@ -11,7 +10,7 @@ index 6ed5eec..82a88b5 100644
      # gcc style automatic dependencies, outputs a makefile (-MF) that lists
      # all headers needed by a c file as a side effect of compilation (-MMD)
      if getattr(self, '_auto_depends', False):
-@@ -54,8 +52,15 @@ def UnixCCompiler__compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts
+@@ -47,8 +45,15 @@ def UnixCCompiler__compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts
          deps = []
  
      try:
@@ -26,6 +25,6 @@ index 6ed5eec..82a88b5 100644
 +            self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + deps +
 +                       extra_postargs, display = display)
 +
-     except DistutilsExecError:
-         msg = str(get_exception())
+     except DistutilsExecError as e:
+         msg = str(e)
          raise CompileError(msg)
diff --git a/pkgs/development/python-modules/numpy/numpy-distutils-C++_1.16.patch b/pkgs/development/python-modules/numpy/numpy-distutils-C++_1.16.patch
new file mode 100644
index 00000000000..b2626ea26e5
--- /dev/null
+++ b/pkgs/development/python-modules/numpy/numpy-distutils-C++_1.16.patch
@@ -0,0 +1,30 @@
+diff --git a/numpy/distutils/unixccompiler.py b/numpy/distutils/unixccompiler.py
+--- a/numpy/distutils/unixccompiler.py
++++ b/numpy/distutils/unixccompiler.py
+@@ -44,8 +44,6 @@ def UnixCCompiler__compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts
+         if opt not in llink_s:
+             self.linker_so = llink_s.split() + opt.split()
+ 
+-    display = '%s: %s' % (os.path.basename(self.compiler_so[0]), src)
+-
+     # gcc style automatic dependencies, outputs a makefile (-MF) that lists
+     # all headers needed by a c file as a side effect of compilation (-MMD)
+     if getattr(self, '_auto_depends', False):
+@@ -54,8 +52,15 @@ def UnixCCompiler__compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts
+         deps = []
+ 
+     try:
+-        self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + deps +
+-                   extra_postargs, display = display)
++        if self.detect_language(src) == 'c++':
++            display = '%s: %s' % (os.path.basename(self.compiler_so_cxx[0]), src)
++            self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + deps +
++                       extra_postargs, display = display)
++        else:
++            display = '%s: %s' % (os.path.basename(self.compiler_so[0]), src)
++            self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + deps +
++                       extra_postargs, display = display)
++
+     except DistutilsExecError:
+         msg = str(get_exception())
+         raise CompileError(msg)
diff --git a/pkgs/development/python-modules/numpydoc/default.nix b/pkgs/development/python-modules/numpydoc/default.nix
index 725d1f9968b..0f57847b3a6 100644
--- a/pkgs/development/python-modules/numpydoc/default.nix
+++ b/pkgs/development/python-modules/numpydoc/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi
+{ lib, buildPythonPackage, fetchPypi, isPy27
 , jinja2
 , nose
 , pytest
@@ -7,12 +7,13 @@
 
 buildPythonPackage rec {
   pname = "numpydoc";
-  version = "1.0.0";
+  version = "1.1.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname;
     inherit version;
-    sha256 = "e481c0799dfda208b6a2c2cb28757fa6b6cbc4d6e43722173697996cf556df7f";
+    sha256 = "c36fd6cb7ffdc9b4e165a43f67bf6271a7b024d0bb6b00ac468c9e2bfc76448e";
   };
 
   checkInputs = [ nose pytest ];
diff --git a/pkgs/development/python-modules/nunavut/default.nix b/pkgs/development/python-modules/nunavut/default.nix
new file mode 100644
index 00000000000..4905a8da7a3
--- /dev/null
+++ b/pkgs/development/python-modules/nunavut/default.nix
@@ -0,0 +1,37 @@
+{ lib, buildPythonPackage, pythonOlder, fetchPypi, pydsdl }:
+
+ buildPythonPackage rec {
+  pname = "nunavut";
+  version = "0.3.6";
+  disabled = pythonOlder "3.5"; # only python>=3.5 is supported
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "434edabdc431b9af719896e0de4bd0deead657777d1d8aa4e3cd0dcdff6298bc";
+  };
+
+  propagatedBuildInputs = [
+    pydsdl
+  ];
+
+  # allow for writable directory for darwin
+  preBuild = ''
+    export HOME=$TMPDIR
+  '';
+
+  # repo doesn't contain tests, ensure imports aren't broken
+  pythonImportsCheck = [
+    "nunavut"
+  ];
+
+  meta = with lib; {
+    description = "A UAVCAN DSDL template engine";
+    longDescription = ''
+      It exposes a pydsdl abstract syntax tree to Jinja2 templates allowing
+      authors to generate code, schemas, metadata, documentation, etc.
+    '';
+    homepage = "https://nunavut.readthedocs.io/";
+    maintainers = with maintainers; [ wucke13 ];
+    license = with licenses; [ bsd3 mit ];
+  };
+}
diff --git a/pkgs/development/python-modules/nvchecker/default.nix b/pkgs/development/python-modules/nvchecker/default.nix
index bfb15bbc6d6..909be251386 100644
--- a/pkgs/development/python-modules/nvchecker/default.nix
+++ b/pkgs/development/python-modules/nvchecker/default.nix
@@ -1,24 +1,21 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, pytest, setuptools, structlog, pytest-asyncio, flaky, tornado, pycurl, pytest-httpbin }:
+{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, pytestCheckHook, setuptools, structlog, pytest-asyncio, flaky, tornado, pycurl, aiohttp, pytest-httpbin }:
 
 buildPythonPackage rec {
   pname = "nvchecker";
-  version = "1.6.post1";
+  version = "1.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7d2e889a4ba2eeb75dd6649ed5e99f8cbfed45b2194657e8f46c978ec58d4175";
+    sha256 = "01be0e5587d346ad783b4b2dc45bd8eefe477081b33fff18cc2fdea58c2a38ef";
   };
 
-  propagatedBuildInputs = [ setuptools structlog tornado pycurl ];
-  checkInputs = [ pytest pytest-asyncio flaky pytest-httpbin ];
-
-  # disable `test_ubuntupkg` because it requires network
-  checkPhase = ''
-    py.test -m "not needs_net" --ignore=tests/test_ubuntupkg.py
-  '';
+  propagatedBuildInputs = [ setuptools structlog tornado pycurl aiohttp ];
+  checkInputs = [ pytestCheckHook pytest-asyncio flaky pytest-httpbin ];
 
   disabled = pythonOlder "3.5";
 
+  pytestFlagsArray = [ "-m 'not needs_net'" ];
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/lilydjwg/nvchecker";
     description = "New version checker for software";
diff --git a/pkgs/development/python-modules/oauthenticator/default.nix b/pkgs/development/python-modules/oauthenticator/default.nix
index 56c9eece4e8..bf2ad31ec3d 100644
--- a/pkgs/development/python-modules/oauthenticator/default.nix
+++ b/pkgs/development/python-modules/oauthenticator/default.nix
@@ -29,10 +29,10 @@ buildPythonPackage rec {
 
   # 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";
diff --git a/pkgs/development/python-modules/openapi-spec-validator/default.nix b/pkgs/development/python-modules/openapi-spec-validator/default.nix
index 5e3806934d0..02f51bc3e66 100644
--- a/pkgs/development/python-modules/openapi-spec-validator/default.nix
+++ b/pkgs/development/python-modules/openapi-spec-validator/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "openapi-spec-validator";
-  version = "0.2.8";
+  version = "0.2.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1kav0jlgdpgwx4am09ja7cr8s1g8h8a7j8mcfy1cfjr8fficg2g4";
+    sha256 = "1jw59mmd3n1d5zihdqz2a3j2axxf3m34lqp1190fw8rlndlilf3r";
   };
 
   propagatedBuildInputs = [ jsonschema pyyaml six setuptools ]
diff --git a/pkgs/development/python-modules/openpyxl/default.nix b/pkgs/development/python-modules/openpyxl/default.nix
index d858d8ad428..5a7d2a6425b 100644
--- a/pkgs/development/python-modules/openpyxl/default.nix
+++ b/pkgs/development/python-modules/openpyxl/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "openpyxl";
-  version = "3.0.3";
+  version = "3.0.5";
   disabled = isPy27; # 2.6.4 was final python2 release
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "547a9fc6aafcf44abe358b89ed4438d077e9d92e4f182c87e2dc294186dc4b64";
+    sha256 = "18e11f9a650128a12580a58e3daba14e00a11d9e907c554a17ea016bf1a2c71b";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/openrazer/common.nix b/pkgs/development/python-modules/openrazer/common.nix
index 501b3fa54a4..8dddf105d1c 100644
--- a/pkgs/development/python-modules/openrazer/common.nix
+++ b/pkgs/development/python-modules/openrazer/common.nix
@@ -1,12 +1,12 @@
 { stdenv
 , fetchFromGitHub
 }: rec {
-  version = "2.7.0";
+  version = "2.8.0";
   src = fetchFromGitHub {
     owner = "openrazer";
     repo = "openrazer";
     rev = "v${version}";
-    sha256 = "013r9q4xg2xjmyxybx07zsl2b5lm9vw843anx22ygpvxz1qgz9hp";
+    sha256 = "0mwg6b2y3wfpvgxb9lznwblb3bnrayn858nc4fbbg76zdp5bk5ky";
   };
   meta = with stdenv.lib; {
     homepage = "https://openrazer.github.io/";
diff --git a/pkgs/development/python-modules/opentracing/default.nix b/pkgs/development/python-modules/opentracing/default.nix
index 63107ec372a..f499470e25c 100644
--- a/pkgs/development/python-modules/opentracing/default.nix
+++ b/pkgs/development/python-modules/opentracing/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = lib.optional isPy27 futures;
 
   checkInputs = [ gevent mock pytest tornado ];
-  
+
   checkPhase = ''
     pytest
   '';
diff --git a/pkgs/development/python-modules/openwebifpy/default.nix b/pkgs/development/python-modules/openwebifpy/default.nix
new file mode 100644
index 00000000000..5cf070d610f
--- /dev/null
+++ b/pkgs/development/python-modules/openwebifpy/default.nix
@@ -0,0 +1,32 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, requests, zeroconf, wakeonlan
+, python }:
+
+buildPythonPackage rec {
+  pname = "openwebifpy";
+  version = "3.1.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0zqa74i54ww9qjciiv8s58mxbs6vxq06cq5k4pxfarc0l75l4gh2";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    zeroconf
+    wakeonlan
+  ];
+
+  checkPhase = ''
+    ${python.interpreter} setup.py test
+  '';
+
+  meta = with lib; {
+    description = "Provides a python interface to interact with a device running OpenWebIf";
+    homepage = "https://openwebifpy.readthedocs.io/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/openwrt-luci-rpc/default.nix b/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
index 4dc4ffa68fc..718dc48d005 100644
--- a/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
+++ b/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
@@ -10,11 +10,11 @@ with lib;
 
 buildPythonPackage rec {
   pname = "openwrt-luci-rpc";
-  version = "1.1.2";
+  version = "1.1.3";
 
-  srcs = fetchPypi {
+  src = fetchPypi {
     inherit pname version;
-    sha256 = "144bw7w1xvpdkad5phflpkl15ih5pvi19799wmvfv8mj1dn1yjhp";
+    sha256 = "c8c27c98c0a1deac2d32d417c4ca536b08be2655a9a6de8a7897e8bc6431858c";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/opt-einsum/default.nix b/pkgs/development/python-modules/opt-einsum/default.nix
index 6bf0e451f04..2ded1dfc196 100644
--- a/pkgs/development/python-modules/opt-einsum/default.nix
+++ b/pkgs/development/python-modules/opt-einsum/default.nix
@@ -1,12 +1,12 @@
 { buildPythonPackage, fetchPypi, lib, numpy, pytest_4 }:
 
 buildPythonPackage rec {
-  version = "3.2.1";
+  version = "3.3.0";
   pname = "opt_einsum";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "165r7rsl5j94kna4q3vsaq71z23lgxd9b20dgb6abrlas6c6mdw3";
+    sha256 = "0jb5lia0q742d1713jk33vlj41y61sf52j6pgk7pvhxvfxglgxjr";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/pkgs/development/python-modules/ordered-set/default.nix b/pkgs/development/python-modules/ordered-set/default.nix
index 4a9e6fefe06..7546566cb3a 100644
--- a/pkgs/development/python-modules/ordered-set/default.nix
+++ b/pkgs/development/python-modules/ordered-set/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "ordered-set";
-  version = "4.0.1";
+  version = "4.0.2";
   disabled = isPy27;
 
   checkInputs = [ pytest ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a31008c57f9c9776b12eb8841b1f61d1e4d70dfbbe8875ccfa2403c54af3d51b";
+    sha256 = "159syfbqnwqnivzjfn3x7ak3xwrxmnzbji7c2qhj1jjv0pgv54xs";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/osc/default.nix b/pkgs/development/python-modules/osc/default.nix
index c9ce8324b18..cae6a468c77 100644
--- a/pkgs/development/python-modules/osc/default.nix
+++ b/pkgs/development/python-modules/osc/default.nix
@@ -1,19 +1,21 @@
-{ stdenv, buildPythonPackage , fetchFromGitHub , bashInteractive , urlgrabber, m2crypto, rpm }:
+{ stdenv, buildPythonPackage, fetchFromGitHub, bashInteractive, urlgrabber
+, m2crypto, rpm, chardet
+}:
 
 buildPythonPackage rec {
   pname = "osc";
-  version = "0.167.1";
+  version = "0.170.0";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "osc";
     rev = version;
-    sha256 = "0f3c6mzvk9yjicwfdh47j4s2l1wrfgpa6lmqdchasdqfsacps4r6";
+    sha256 = "10dj9kscz59qm8rw5084gf0m8ail2rl7r8rg66ij92x88wvi9mbz";
   };
 
   buildInputs = [ bashInteractive ]; # needed for bash-completion helper
   checkInputs = [ rpm ];
-  propagatedBuildInputs = [ urlgrabber m2crypto ];
+  propagatedBuildInputs = [ urlgrabber m2crypto chardet ];
 
   postInstall = ''
     ln -s $out/bin/osc-wrapper.py $out/bin/osc
diff --git a/pkgs/development/python-modules/osqp/default.nix b/pkgs/development/python-modules/osqp/default.nix
index 16997d66781..88189493a62 100644
--- a/pkgs/development/python-modules/osqp/default.nix
+++ b/pkgs/development/python-modules/osqp/default.nix
@@ -30,7 +30,10 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "osqp" ];
   checkInputs = [ pytestCheckHook ];
   dontUseSetuptoolsCheck = true;  # don't run checks twice
-  disabledTests = [ "mkl_" ];
+  disabledTests = [
+    "mkl_"
+    "update_matrices_tests" # broken w/ scipy >= 1.5.0. Remove next release. See https://github.com/oxfordcontrol/osqp-python/issues/44
+  ];
 
   meta = with lib; {
     description = "The Operator Splitting QP Solver";
diff --git a/pkgs/development/python-modules/ovito/default.nix b/pkgs/development/python-modules/ovito/default.nix
index 5f852b29298..c5dddd68fcf 100644
--- a/pkgs/development/python-modules/ovito/default.nix
+++ b/pkgs/development/python-modules/ovito/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation {
     # ensures not built on hydra
     # https://github.com/NixOS/nixpkgs/pull/46846#issuecomment-436388048
     hydraPlatforms = [ ];
+    broken = true; # cmake unable to find Qt5Core and other dependencies
   };
 }
diff --git a/pkgs/development/python-modules/packet-python/default.nix b/pkgs/development/python-modules/packet-python/default.nix
index 747b4c14cd2..02255f4bfd7 100644
--- a/pkgs/development/python-modules/packet-python/default.nix
+++ b/pkgs/development/python-modules/packet-python/default.nix
@@ -12,10 +12,10 @@
 
 buildPythonPackage rec {
   pname = "packet-python";
-  version = "1.42.0";
+  version = "1.43.0";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c3342085b2b96591b9d214d10fe39d85e1a2487c5b0883a90ff0bf6123086f07";
+    sha256 = "48fcc5ca6e7f3d84ef91016585d1894bb9deb3dae6591ffab90fdf05006c3e48";
   };
   nativeBuildInputs = [ pytestrunner ];
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/palettable/default.nix b/pkgs/development/python-modules/palettable/default.nix
index 9f1aed30ff7..f96e05950b8 100644
--- a/pkgs/development/python-modules/palettable/default.nix
+++ b/pkgs/development/python-modules/palettable/default.nix
@@ -10,9 +10,9 @@ buildPythonPackage rec {
   };
 
   checkInputs = [ pytest ];
- 
+
   checkPhase = ''
-    pytest 
+    pytest
   '';
 
   meta = with stdenv.lib; {
@@ -22,4 +22,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ psyanticy ];
   };
 }
-
diff --git a/pkgs/development/python-modules/pamqp/default.nix b/pkgs/development/python-modules/pamqp/default.nix
index 09cda279730..8353e8d7895 100644
--- a/pkgs/development/python-modules/pamqp/default.nix
+++ b/pkgs/development/python-modules/pamqp/default.nix
@@ -9,12 +9,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.3.0";
+  version = "3.0.1";
   pname = "pamqp";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1s4lwbsiikz3czqad7jarb7k303q0wamla0rirghvwl9bslgbl2w";
+    sha256 = "0a9b49bde3f554ec49b47ebdb789133979985f24d5f4698935ed589a2d4392a4";
   };
 
   buildInputs = [ mock nose pep8 pylint mccabe ];
diff --git a/pkgs/development/python-modules/pandas/default.nix b/pkgs/development/python-modules/pandas/default.nix
index 5d7bb4a6d69..d4c9706fe65 100644
--- a/pkgs/development/python-modules/pandas/default.nix
+++ b/pkgs/development/python-modules/pandas/default.nix
@@ -21,6 +21,7 @@
 , tables
 , xlwt
 , runtimeShell
+, isPy38
 , libcxx ? null
 }:
 
@@ -30,11 +31,11 @@ let
 
 in buildPythonPackage rec {
   pname = "pandas";
-  version = "1.0.4";
+  version = "1.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b35d625282baa7b51e82e52622c300a1ca9f786711b2af7cbe64f1e6831f4126";
+    sha256 = "53328284a7bb046e2e885fd1b8c078bd896d7fc4575b915d4936f54984a2ba67";
   };
 
   checkInputs = [ pytest glibcLocales moto hypothesis ];
@@ -57,6 +58,10 @@ in buildPythonPackage rec {
     xlwt
   ];
 
+  # doesn't work with -Werror,-Wunused-command-line-argument
+  # https://github.com/NixOS/nixpkgs/issues/39687
+  hardeningDisable = optional stdenv.cc.isClang "strictoverflow";
+
   # For OSX, we need to add a dependency on libcxx, which provides
   # `complex.h` and other libraries that pandas depends on to build.
   postPatch = optionalString isDarwin ''
@@ -67,7 +72,9 @@ in buildPythonPackage rec {
                 "['pandas/src/klib', 'pandas/src', '$cpp_sdk']"
   '';
 
-  setupPyBuildFlags = [
+  # Parallel Cythonization is broken in Python 3.8 on Darwin. Fixed in the next
+  # release. https://github.com/pandas-dev/pandas/pull/30862
+  setupPyBuildFlags = optionals (!(isPy38 && isDarwin)) [
     # As suggested by
     # https://pandas.pydata.org/pandas-docs/stable/development/contributing.html#creating-a-python-environment
     "--parallel=$NIX_BUILD_CORES"
@@ -95,6 +102,9 @@ in buildPythonPackage rec {
     "order_without_freq"
     # 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"
   ] ++ optionals isDarwin [
     "test_locale"
     "test_clipboard"
diff --git a/pkgs/development/python-modules/panel/default.nix b/pkgs/development/python-modules/panel/default.nix
index 27c2134f4f3..0fc7bf7ee29 100644
--- a/pkgs/development/python-modules/panel/default.nix
+++ b/pkgs/development/python-modules/panel/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "panel";
-  version = "0.9.5";
+  version = "0.9.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "53340615f30f67f3182793695ebe52bf25e7bbb0751aba6f29763244350d0f42";
+    sha256 = "2e86d82bdd5e7664bf49558eedad62b664d5403ec9e422e5ddfcf69e3bd77318";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/papermill/default.nix b/pkgs/development/python-modules/papermill/default.nix
index 73f72bd2897..0e5c62277af 100644
--- a/pkgs/development/python-modules/papermill/default.nix
+++ b/pkgs/development/python-modules/papermill/default.nix
@@ -25,11 +25,11 @@
 
 buildPythonPackage rec {
   pname = "papermill";
-  version = "2.1.1";
+  version = "2.1.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5e599992317f761c5e0543430402b24faac89292d7770c3e20b520fa2a25f75a";
+    sha256 = "ecd4cafa9179693b0eedc3b6f4560f9ee47826a6e366e42bfa3cc20f7931b3f8";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/paramiko/default.nix b/pkgs/development/python-modules/paramiko/default.nix
index 2fefbde7448..41951f1d893 100644
--- a/pkgs/development/python-modules/paramiko/default.nix
+++ b/pkgs/development/python-modules/paramiko/default.nix
@@ -1,6 +1,7 @@
 { pkgs
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , cryptography
 , bcrypt
 , invoke
@@ -20,6 +21,13 @@ buildPythonPackage rec {
     sha256 = "920492895db8013f6cc0179293147f830b8c7b21fdfc839b6bad760c27459d9f";
   };
 
+  patches = [
+    # fix RSA key loading with cryptography 3.1, remove >2.7.1
+    (fetchpatch {
+      url = "https://github.com/paramiko/paramiko/commit/81064206bf3cec2ca4372257ff138481e1227b91.patch";
+      sha256 = "01b87ffgyvd6rilp1w1kf7lk29z706ch39nwl21ifklqpjhmazww";
+    })
+  ];
   checkInputs = [ invoke pytest mock pytest-relaxed ];
   propagatedBuildInputs = [ bcrypt cryptography pynacl pyasn1 ];
 
@@ -27,6 +35,7 @@ buildPythonPackage rec {
 
   # 2 sftp tests fail (skip for now)
   # test_config relies on artifacts to be to downloaded
+  # RSA tests don't have valid keys
   checkPhase = ''
     pytest tests \
       --ignore=tests/test_sftp.py \
@@ -37,7 +46,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/paramiko/paramiko/";
     description = "Native Python SSHv2 protocol library";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ aszlig ];
 
     longDescription = ''
       This is a library for making SSH2 connections (client or server).
diff --git a/pkgs/development/python-modules/parfive/default.nix b/pkgs/development/python-modules/parfive/default.nix
index 7ce02fb96ab..a6dacf0402e 100644
--- a/pkgs/development/python-modules/parfive/default.nix
+++ b/pkgs/development/python-modules/parfive/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "parfive";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "faa60c34dfbd080f011c1af0587f932874dcdf602d0336227d540899dbc41b50";
+    sha256 = "5793fdf9859a9a9fc93f033db9dc067a89626910355a14bbe425feb3956df6db";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/parse/default.nix b/pkgs/development/python-modules/parse/default.nix
index bb09646b6b4..4fb029bad50 100644
--- a/pkgs/development/python-modules/parse/default.nix
+++ b/pkgs/development/python-modules/parse/default.nix
@@ -3,11 +3,11 @@
 }:
 buildPythonPackage rec {
   pname = "parse";
-  version = "1.15.0";
+  version = "1.16.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1h4m5df5grjpaf087g8ciishz5ajl28s3140s8bngppvy71f5m56";
+    sha256 = "cd89e57aed38dcf3e0ff8253f53121a3b23e6181758993323658bffc048a5c19";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/parsedatetime/default.nix b/pkgs/development/python-modules/parsedatetime/default.nix
index 413955c6a36..0b7d5cd6fb4 100644
--- a/pkgs/development/python-modules/parsedatetime/default.nix
+++ b/pkgs/development/python-modules/parsedatetime/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , pytest
 , pytestrunner
 , future
@@ -9,6 +10,7 @@
 buildPythonPackage rec {
   pname = "parsedatetime";
   version = "2.6";
+  disabled = isPy27; # no longer compatible with icu package
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/parso/default.nix b/pkgs/development/python-modules/parso/default.nix
index b5c75c31b38..4ab09f5938e 100644
--- a/pkgs/development/python-modules/parso/default.nix
+++ b/pkgs/development/python-modules/parso/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "parso";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "908e9fae2144a076d72ae4e25539143d40b8e3eafbaeae03c1bfe226f4cdf12c";
+    sha256 = "2b6db14759c528d857eeb9eac559c2166b2554548af39f5198bdfb976f72aa64";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/paste/default.nix b/pkgs/development/python-modules/paste/default.nix
index 9d45f35d365..5b12f04b2e5 100644
--- a/pkgs/development/python-modules/paste/default.nix
+++ b/pkgs/development/python-modules/paste/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "paste";
-  version = "3.4.0";
+  version = "3.4.1";
 
   src = fetchPypi {
     pname = "Paste";
     inherit version;
-    sha256 = "16sichvhyci1gaarkjs35mai8vphh7b244qm14hj1isw38nx4c03";
+    sha256 = "1csqn7g9b05hp3fgd82355k4pb5rv12k9x6p2mdw2v01m385171p";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/patator/default.nix b/pkgs/development/python-modules/patator/default.nix
index 46601c16755..81d9e50b28f 100644
--- a/pkgs/development/python-modules/patator/default.nix
+++ b/pkgs/development/python-modules/patator/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "patator";
-  version = "0.7";
+  version = "0.9";
   disabled = !(isPy3k);
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "335e432e6cc591437e316ba8c1da935484ca39fc79e595ccf60ccd9166e965f1";
+    sha256 = "68cb24bdc3042ee0d47a288b19a8b99a6c54bdbd4ddf0c5817d9b9ac0a0d8a15";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pathspec/default.nix b/pkgs/development/python-modules/pathspec/default.nix
index 1cba07ba6bc..bb52cd51a14 100644
--- a/pkgs/development/python-modules/pathspec/default.nix
+++ b/pkgs/development/python-modules/pathspec/default.nix
@@ -18,4 +18,4 @@ buildPythonPackage rec {
     license = lib.licenses.mpl20;
     maintainers = with lib.maintainers; [ copumpkin ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/pc-ble-driver-py/default.nix b/pkgs/development/python-modules/pc-ble-driver-py/default.nix
index d21d9d07150..6250b5a2202 100644
--- a/pkgs/development/python-modules/pc-ble-driver-py/default.nix
+++ b/pkgs/development/python-modules/pc-ble-driver-py/default.nix
@@ -1,45 +1,25 @@
-{ stdenv, buildPythonPackage, fetchpatch, fetchFromGitHub,
-  python, cmake, git, swig, boost, udev,
-  setuptools, enum34, wrapt, future }:
+{ stdenv, fetchFromGitHub, cmake, git, swig, boost, udev, pc-ble-driver
+, buildPythonPackage, enum34, wrapt, future, setuptools, scikit-build }:
 
 buildPythonPackage rec {
   pname = "pc-ble-driver-py";
-  version = "0.11.4";
-  disabled = python.isPy3k;
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "NordicSemiconductor";
     repo = "pc-ble-driver-py";
     rev = "v${version}";
-    fetchSubmodules = true;
-    sha256 = "0lgmcnrlcivmawmlcwnn4pdp6afdbnf3fyfgq22xzs6v72m9gp81";
+    sha256 = "1zbi3v4jmgq1a3ml34dq48y1hinw2008vwqn30l09r5vqvdgnj8m";
   };
 
-  nativeBuildInputs = [ cmake swig git setuptools ];
-  buildInputs = [ boost udev ];
-  propagatedBuildInputs = [ enum34 wrapt future ];
-
-  patches = [
-    # build system expects case-insensitive file system
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/NordicSemiconductor/pc-ble-driver-py/pull/84.patch";
-      sha256 = "0ibx5g2bndr5h9sfnx51bk9b62q4jvpdwhxadbnj3da8kvcz13cy";
-    })
-  ];
+  # doCheck tries to write to the global python directory to install things
+  doCheck = false;
 
-  postPatch = ''
-    # do not force static linking of boost
-    sed -i /Boost_USE_STATIC_LIBS/d pc-ble-driver/cmake/*.cmake
-
-    cd python
-  '';
+  nativeBuildInputs = [ cmake swig git setuptools scikit-build ];
+  buildInputs = [ boost pc-ble-driver ];
+  propagatedBuildInputs = [ enum34 wrapt future ];
 
-  preBuild = ''
-    pushd ../build
-    cmake ..
-    make -j $NIX_BUILD_CORES
-    popd
-  '';
+  dontUseCmakeConfigure = true;
 
   meta = with stdenv.lib; {
     description = "Bluetooth Low Energy nRF5 SoftDevice serialization";
diff --git a/pkgs/development/python-modules/pcpp/default.nix b/pkgs/development/python-modules/pcpp/default.nix
index f621140f137..f57798c40a8 100644
--- a/pkgs/development/python-modules/pcpp/default.nix
+++ b/pkgs/development/python-modules/pcpp/default.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "0k52qyxzdngdhyn4sya2qn1w1a4ll0mcla4h4gb1v91fk4lw25dm";
     fetchSubmodules = true;
   };
- 
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/ned14/pcpp";
     description = "A C99 preprocessor written in pure Python";
diff --git a/pkgs/development/python-modules/pdfminer_six/default.nix b/pkgs/development/python-modules/pdfminer_six/default.nix
index 979b116b713..08f482e6221 100644
--- a/pkgs/development/python-modules/pdfminer_six/default.nix
+++ b/pkgs/development/python-modules/pdfminer_six/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, isPy3k, pycryptodome, chardet, nose, sortedcontainers }:
+{ stdenv, buildPythonPackage, fetchFromGitHub, isPy3k, cryptography, chardet, nose, sortedcontainers }:
 
 buildPythonPackage rec {
   pname = "pdfminer_six";
-  version = "20200517";
+  version = "20200726";
 
   disabled = !isPy3k;
 
@@ -11,10 +11,10 @@ buildPythonPackage rec {
     owner = "pdfminer";
     repo = "pdfminer.six";
     rev = version;
-    sha256 = "00272pxkh6djm37yvlvgd06w7ycf35srwk6n3p58ppw5hgmpkhc2";
+    sha256 = "1hlaz7ax1czb028x3nhk3l2jy07f26q5hbhmdirljaaga24vd96z";
   };
 
-  propagatedBuildInputs = [ chardet pycryptodome sortedcontainers ];
+  propagatedBuildInputs = [ chardet cryptography sortedcontainers ];
 
   checkInputs = [ nose ];
   checkPhase = ''
diff --git a/pkgs/development/python-modules/pdftotext/default.nix b/pkgs/development/python-modules/pdftotext/default.nix
index 24be7ce7f86..a52160363df 100644
--- a/pkgs/development/python-modules/pdftotext/default.nix
+++ b/pkgs/development/python-modules/pdftotext/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pdftotext";
-  version = "2.1.4";
+  version = "2.1.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00xf3jmpb4m3q758wvk4khpcmiys4gmd88vvrz6i7yw1jl268y6k";
+    sha256 = "98aeb8b07a4127e1a30223bd933ef080bbd29aa88f801717ca6c5618380b8aa6";
   };
 
   buildInputs = [ poppler ];
diff --git a/pkgs/development/python-modules/pelican/default.nix b/pkgs/development/python-modules/pelican/default.nix
index c7c1ced34f1..30d6546d570 100644
--- a/pkgs/development/python-modules/pelican/default.nix
+++ b/pkgs/development/python-modules/pelican/default.nix
@@ -1,18 +1,20 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ stdenv, buildPythonPackage, fetchFromGitHub, isPy27
 , glibcLocales, git
 , mock, nose, markdown, lxml, typogrify
 , jinja2, pygments, docutils, pytz, unidecode, six, dateutil, feedgenerator
-, blinker, pillow, beautifulsoup4, markupsafe }:
+, blinker, pillow, beautifulsoup4, markupsafe, pandoc }:
 
 buildPythonPackage rec {
   pname = "pelican";
-  version = "4.2.0";
+  version = "4.5.0";
+
+  disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "getpelican";
     repo = "pelican";
     rev = version;
-    sha256 = "0w9nqdw2jmqc6kqwg4rh6irr5k6j7hk8axg6vgd137rs50v62yv5";
+    sha256 = "0p8p84fcpkr19d54dhxvldd8ijbg334wmrmkr99pnbrdl1gf64qi";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     extraPostFetch = ''
@@ -24,15 +26,15 @@ buildPythonPackage rec {
 
   # Exclude custom locale test, which files were removed above to fix the source checksum
   checkPhase = ''
-    nosetests -sv --exclude=test_custom_locale_generation_works pelican
+    nosetests -s \
+      --exclude=test_custom_locale_generation_works \
+      --exclude=test_log_filter \
+      pelican
   '';
 
   buildInputs = [
     glibcLocales
-    # Note: Pelican has to adapt to a changed CLI of pandoc before enabling this
-    # again. Compare https://github.com/getpelican/pelican/pull/2252.
-    # Version 4.2.0 is incompatible with our current pandoc version.
-    # pandoc
+    pandoc
     git
     mock
     markdown
@@ -46,21 +48,16 @@ buildPythonPackage rec {
 
   checkInputs = [
     nose
+    pandoc
   ];
 
   postPatch= ''
     substituteInPlace pelican/tests/test_pelican.py \
       --replace "'git'" "'${git}/bin/git'"
-
-    # Markdown-3.1 changed footnote separator to colon
-    # https://github.com/getpelican/pelican/issues/2493#issuecomment-491723744
-    sed -i '/test_article_with_footnote/i\
-        @unittest.skip("")' pelican/tests/test_readers.py
   '';
 
   LC_ALL="en_US.UTF-8";
 
-
   # We only want to patch shebangs in /bin, and not those
   # of the project scripts that are created by Pelican.
   # See https://github.com/NixOS/nixpkgs/issues/30116
diff --git a/pkgs/development/python-modules/pendulum/default.nix b/pkgs/development/python-modules/pendulum/default.nix
index f7e235f4036..5688090b095 100644
--- a/pkgs/development/python-modules/pendulum/default.nix
+++ b/pkgs/development/python-modules/pendulum/default.nix
@@ -1,16 +1,30 @@
 { lib, fetchPypi, buildPythonPackage, pythonOlder
-, dateutil, pytzdata, typing }:
+, dateutil
+, importlib-metadata
+, poetry
+, poetry-core
+, pytzdata
+, typing
+}:
 
 buildPythonPackage rec {
   pname = "pendulum";
-  version = "2.1.0";
+  version = "2.1.2";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "093cab342e10516660e64b935a6da1a043e0286de36cc229fb48471415981ffe";
+    sha256 = "b06a0ca1bfe41c990bbf0c029f0b6501a7f2ec4e38bfec730712015e8860f207";
   };
 
-  propagatedBuildInputs = [ dateutil pytzdata ] ++ lib.optional (pythonOlder "3.5") typing;
+  preBuild = ''
+    export HOME=$TMPDIR
+  '';
+
+  nativeBuildInputs = [ poetry-core ];
+  propagatedBuildInputs = [ dateutil pytzdata ]
+  ++ lib.optional (pythonOlder "3.5") typing
+  ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # No tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/pep517/default.nix b/pkgs/development/python-modules/pep517/default.nix
index 1eb2895068a..a5636656984 100644
--- a/pkgs/development/python-modules/pep517/default.nix
+++ b/pkgs/development/python-modules/pep517/default.nix
@@ -49,4 +49,4 @@ buildPythonPackage rec {
     license = lib.licenses.mit;
     homepage = "https://github.com/pypa/pep517";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/pep8-naming/default.nix b/pkgs/development/python-modules/pep8-naming/default.nix
index 5f3f0a5145d..5f6ef894d8f 100644
--- a/pkgs/development/python-modules/pep8-naming/default.nix
+++ b/pkgs/development/python-modules/pep8-naming/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "pep8-naming";
-  version = "0.10.0";
+  version = "0.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fmzccbmr0jn9ynamdb9ly2ai8qs5qfk8alfgnzr3fbjvpwsbd7k";
+    sha256 = "0937rnk3c2z1jkdmbw9hfm80p5k467q7rqhn6slfiprs4kflgpd1";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/persim/default.nix b/pkgs/development/python-modules/persim/default.nix
index b59fa303573..0979afa92f4 100644
--- a/pkgs/development/python-modules/persim/default.nix
+++ b/pkgs/development/python-modules/persim/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "persim";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0vz6s49ar7mhg4pj4jcbwb79s8acqj6jc70va5w79pjxb5pw8k2n";
+    sha256 = "be4ea4bfc2a0c6fcfc28ebd52e23a351ee00b0ef0ddaf527526bd0f919145348";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pex/default.nix b/pkgs/development/python-modules/pex/default.nix
index 9c327555f65..9eb72263302 100644
--- a/pkgs/development/python-modules/pex/default.nix
+++ b/pkgs/development/python-modules/pex/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pex";
-  version = "2.1.11";
+  version = "2.1.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9fc8f1562676c537b4c7fe4a62ecaaa2803fa43b56aba2f2435d833eb6b6036a";
+    sha256 = "e1092ae52cfdef41c22d98fa98f9225ac21936a7d096131777ca3a7940fe1b2d";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/pg8000/default.nix b/pkgs/development/python-modules/pg8000/default.nix
index 9e7595e64a4..e4a158a7183 100644
--- a/pkgs/development/python-modules/pg8000/default.nix
+++ b/pkgs/development/python-modules/pg8000/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "pg8000";
-  version = "1.15.2";
+  version = "1.16.5";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "eb42ba62fbc048c91d5cf1ac729e0ea4ee329cc526bddafed4e7a8aa6b57fbbb";
+    sha256 = "8af70cdfcc1fadafa32468a6af563e1c0b5271c4dcc99a4490030a128cb295a3";
   };
 
   propagatedBuildInputs = [ passlib ];
diff --git a/pkgs/development/python-modules/pglast/default.nix b/pkgs/development/python-modules/pglast/default.nix
index 1668cd94ade..032524fc5df 100644
--- a/pkgs/development/python-modules/pglast/default.nix
+++ b/pkgs/development/python-modules/pglast/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "pglast";
-  version = "1.11";
+  version = "1.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8463d60b9065daf26e3c0fa6e7515d2a4594847ab417be018858832a475105f1";
+    sha256 = "b5d6a105928d2285e43afb87d638ada844ed8933cc306c23a3c095684f3d3af4";
   };
 
   disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/phik/default.nix b/pkgs/development/python-modules/phik/default.nix
index 969c80f1fe1..b309fb287d8 100644
--- a/pkgs/development/python-modules/phik/default.nix
+++ b/pkgs/development/python-modules/phik/default.nix
@@ -5,6 +5,7 @@
 , pytest
 , pytest-pylint
 , nbconvert
+, joblib
 , jupyter_client
 , numpy
 , scipy
@@ -33,6 +34,7 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
+    joblib
     numpy
     scipy
     pandas
diff --git a/pkgs/development/python-modules/phonenumbers/default.nix b/pkgs/development/python-modules/phonenumbers/default.nix
index 2ba64faad31..1aef55e8211 100644
--- a/pkgs/development/python-modules/phonenumbers/default.nix
+++ b/pkgs/development/python-modules/phonenumbers/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "phonenumbers";
-  version = "8.12.5";
+  version = "8.12.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3586f19abeb92aa6b539d7a4757cb507cf54efcd78224e895caf20fbdde07c26";
+    sha256 = "3a8b8f7b60ea00b83ca588b5ca57e48d9a3c223aa42f1a3d5fa88566424216c3";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/phonopy/default.nix b/pkgs/development/python-modules/phonopy/default.nix
index 5dd4e25b662..b476543c06a 100644
--- a/pkgs/development/python-modules/phonopy/default.nix
+++ b/pkgs/development/python-modules/phonopy/default.nix
@@ -1,23 +1,23 @@
-{ stdenv, buildPythonPackage, python, fetchPypi, numpy, pyyaml, matplotlib, h5py }:
+{ stdenv, buildPythonPackage, python, fetchPypi, numpy, pyyaml, matplotlib, h5py, spglib, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "phonopy";
-  version = "2.4.2";
+  version = "2.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6e6ce41ce8a51723b94d974adfee032cddce5b9300984dd23b59e101ed0a2861";
+    sha256 = "482c6ff29c058d091ac885e561e28ba3e516ea9e91c44a951cad11f3ae19856c";
   };
 
-  propagatedBuildInputs = [ numpy pyyaml matplotlib h5py ];
+  propagatedBuildInputs = [ numpy pyyaml matplotlib h5py spglib ];
 
-  checkPhase = ''
-    cd test
-    # dynamic structure factor test ocassionally fails do to roundoff
-    # see issue https://github.com/atztogo/phonopy/issues/79
-    rm spectrum/test_dynamic_structure_factor.py
-    ${python.interpreter} -m unittest discover -b
-    cd ../..
+  checkInputs = [ pytestCheckHook ];
+  # flakey due to floating point inaccuracy
+  disabledTests = [ "test_NaCl" ];
+
+  # prevent pytest from importing local directory
+  preCheck = ''
+    rm -r phonopy
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/picos/default.nix b/pkgs/development/python-modules/picos/default.nix
index ca6346d1cd2..a6f1aa1a141 100644
--- a/pkgs/development/python-modules/picos/default.nix
+++ b/pkgs/development/python-modules/picos/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   checkInputs = [
     networkx
   ];
-  
+
   propagatedBuildInputs = [
     numpy
     cvxopt
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   checkPhase = ''
     ${python.interpreter} test.py
   '';
-  
+
   meta = with lib; {
     description = "A Python interface to conic optimization solvers";
     homepage = "https://gitlab.com/picos-api/picos";
diff --git a/pkgs/development/python-modules/pid/default.nix b/pkgs/development/python-modules/pid/default.nix
index 2fad490bc42..e934ea4577b 100644
--- a/pkgs/development/python-modules/pid/default.nix
+++ b/pkgs/development/python-modules/pid/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pid";
-  version = "3.0.3";
+  version = "3.0.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0z9w99m1vppppj2ypgm0flslgwcjjzlr7x3m62sccavgbg1n2nwj";
+    sha256 = "0e33670e83f6a33ebb0822e43a609c3247178d4a375ff50a4689e266d853eb66";
   };
 
   buildInputs = [ nose ];
diff --git a/pkgs/development/python-modules/pikepdf/default.nix b/pkgs/development/python-modules/pikepdf/default.nix
index e3498923856..3db9a2642c7 100644
--- a/pkgs/development/python-modules/pikepdf/default.nix
+++ b/pkgs/development/python-modules/pikepdf/default.nix
@@ -22,12 +22,12 @@
 
 buildPythonPackage rec {
   pname = "pikepdf";
-  version = "1.14.0";
+  version = "1.18.0";
   disabled = ! isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5b371c71b0da42d87371ed39973f07c7eb67d939ca5031f0c1637cfb3a2d79f5";
+    sha256 = "4d0840a5c16b535f9b6e56fb4421a43f88760e6cabcf7fd44bdd0436107b61dc";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pillow/6.nix b/pkgs/development/python-modules/pillow/6.nix
index ad69f4f2345..64f162c24eb 100644
--- a/pkgs/development/python-modules/pillow/6.nix
+++ b/pkgs/development/python-modules/pillow/6.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   checkPhase = ''
     runHook preCheck
-    python -m pytest -v -x -W always
+    python -m pytest -v -x -W always${stdenv.lib.optionalString stdenv.isDarwin " --deselect=Tests/test_file_icns.py::TestFileIcns::test_save --deselect=Tests/test_imagegrab.py::TestImageGrab::test_grab"}
     runHook postCheck
   '';
 
diff --git a/pkgs/development/python-modules/pillow/default.nix b/pkgs/development/python-modules/pillow/default.nix
index cc9a77be782..ab971e4201b 100644
--- a/pkgs/development/python-modules/pillow/default.nix
+++ b/pkgs/development/python-modules/pillow/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "Pillow";
-  version = "7.1.2";
+  version = "7.2.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1pdh1zzdwxilvsjg6rnl4q810pc2p2y16q6lx9gzzihb25h9kd50";
+    sha256 = "97f9e7953a77d5a70f49b9a48da7776dc51e9b738151b22dacf101641594a626";
   };
 
   # Disable imagefont tests, because they don't work well with infinality:
diff --git a/pkgs/development/python-modules/pims/default.nix b/pkgs/development/python-modules/pims/default.nix
index c7037cf5385..76eaa4fac69 100644
--- a/pkgs/development/python-modules/pims/default.nix
+++ b/pkgs/development/python-modules/pims/default.nix
@@ -10,12 +10,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.4.1";
+  version = "0.5";
   pname = "PIMS";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6a53a155e900b44e71127a1e1fccbfbaed7eec3c2b52497c40c23a05f334c9dd";
+    sha256 = "a02cdcbb153e2792042fb0bae7df4f30878bbba1f2d176114a87ee0dc18715a0";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/pint/default.nix b/pkgs/development/python-modules/pint/default.nix
index 532d9d0ede8..bb2a20cf62f 100644
--- a/pkgs/development/python-modules/pint/default.nix
+++ b/pkgs/development/python-modules/pint/default.nix
@@ -1,10 +1,10 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy27
 , pythonOlder
-, funcsigs
 , setuptools_scm
+, importlib-metadata
+, packaging
 # Check Inputs
 , pytestCheckHook
 , numpy
@@ -14,19 +14,20 @@
 
 buildPythonPackage rec {
   pname = "pint";
-  version = "0.11";
+  version = "0.14";
 
   src = fetchPypi {
     inherit version;
     pname = "Pint";
-    sha256 = "0kfgnmcs6z9ndhzvwg2xzhpwxgyyagdsdz5dns1jy40fa1q113rh";
+    sha256 = "0wkzb7g20wzpqr3xaqpq96dlfv6irw202icsz81ys8npp7mm194s";
   };
 
   disabled = pythonOlder "3.6";
 
-  propagatedBuildInputs = [
-    setuptools_scm
-  ] ++ lib.optional isPy27 funcsigs;
+  nativeBuildInputs = [ setuptools_scm ];
+  
+  propagatedBuildInputs = [ packaging ]
+    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # Test suite explicitly requires pytest
   checkInputs = [
diff --git a/pkgs/development/python-modules/pip-tools/default.nix b/pkgs/development/python-modules/pip-tools/default.nix
index c49c77ad91e..104619711a7 100644
--- a/pkgs/development/python-modules/pip-tools/default.nix
+++ b/pkgs/development/python-modules/pip-tools/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pip-tools";
-  version = "5.2.0";
+  version = "5.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "be6190405e4206526607aa4813bd6d7a949e4fdc180d0db4f3221f3778846cf7";
+    sha256 = "5672c2b6ca0f1fd803f3b45568c2cf7fadf135b4971e7d665232b2075544c0ef";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/python-modules/pip/default.nix b/pkgs/development/python-modules/pip/default.nix
index e4ace129d99..fa566c8951a 100644
--- a/pkgs/development/python-modules/pip/default.nix
+++ b/pkgs/development/python-modules/pip/default.nix
@@ -25,6 +25,10 @@ buildPythonPackage rec {
     name = "${pname}-${version}-source";
   };
 
+  # Remove when solved https://github.com/NixOS/nixpkgs/issues/81441
+  # Also update pkgs/development/interpreters/python/hooks/pip-install-hook.sh accordingly
+  patches = [ ./reproducible.patch ];
+
   nativeBuildInputs = [ bootstrapped-pip ];
 
   # pip detects that we already have bootstrapped_pip "installed", so we need
diff --git a/pkgs/development/python-modules/pip/reproducible.patch b/pkgs/development/python-modules/pip/reproducible.patch
new file mode 100644
index 00000000000..528ac2b49b0
--- /dev/null
+++ b/pkgs/development/python-modules/pip/reproducible.patch
@@ -0,0 +1,13 @@
+diff --git a/src/pip/_internal/operations/install/wheel.py b/src/pip/_internal/operations/install/wheel.py
+index e7315ee4..4e36b03d 100644
+--- a/src/pip/_internal/operations/install/wheel.py
++++ b/src/pip/_internal/operations/install/wheel.py
+@@ -615,6 +615,8 @@ def install_wheel(
+     direct_url=None,  # type: Optional[DirectUrl]
+ ):
+     # type: (...) -> None
++    _temp_dir_for_testing = (
++        _temp_dir_for_testing or os.environ.get("NIX_PIP_INSTALL_TMPDIR"))
+     with TempDirectory(
+         path=_temp_dir_for_testing, kind="unpacked-wheel"
+     ) as unpacked_dir, ZipFile(wheel_path, allowZip64=True) as z:
diff --git a/pkgs/development/python-modules/pip2nix/default.nix b/pkgs/development/python-modules/pip2nix/default.nix
deleted file mode 100644
index f6474883b83..00000000000
--- a/pkgs/development/python-modules/pip2nix/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, click
-, configobj
-, contexter
-, jinja2
-, pytest
-, pip
-}:
-
-buildPythonPackage rec {
-  pname = "pip2nix";
-  version = "0.7.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "ec9a71e09ac7f43cc7b6c9d386384eb7b5c331bf6ea0e72ca559d87979397a95";
-  };
-
-  propagatedBuildInputs = [ click configobj contexter pip jinja2 pytest ];
-
-  postPatch = ''
-    sed -i "s/'pip>=8,<10'/'pip'/" setup.py
-    sed -i "s/pip<10,>=8/pip/" ${pname}.egg-info/requires.txt
-  '';
-
-  # tests not included with pypi release
-  doCheck = false;
-
-  # Requires an old pip version
-  broken = true;
-
-  meta = with stdenv.lib; {
-    description = "Generate Nix expressions for Python packages";
-    homepage = "https://github.com/johbo/pip2nix";
-    license = licenses.gpl3;
-  };
-
-}
diff --git a/pkgs/development/python-modules/pipdate/default.nix b/pkgs/development/python-modules/pipdate/default.nix
index 4e730df1c91..35fbb624e6b 100644
--- a/pkgs/development/python-modules/pipdate/default.nix
+++ b/pkgs/development/python-modules/pipdate/default.nix
@@ -1,25 +1,33 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , isPy27
 , appdirs
+, importlib-metadata
 , requests
 , pytest
+, wheel
 }:
 
 buildPythonPackage rec {
   pname = "pipdate";
-  version = "0.5.1";
+  version = "0.5.2";
+  format = "pyproject";
   disabled = isPy27; # abandoned
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d10bd408e4b067a2a699badf87629a12838fa42ec74dc6140e64a09eb0dc28cf";
+    sha256 = "507065231f2d50b6319d483432cba82aadad78be21b7a2969b5881ed8dee9ab4";
   };
 
+  nativeBuildInputs = [ wheel ];
+
   propagatedBuildInputs = [
     appdirs
     requests
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/pipx/default.nix b/pkgs/development/python-modules/pipx/default.nix
new file mode 100644
index 00000000000..3b35b67bf09
--- /dev/null
+++ b/pkgs/development/python-modules/pipx/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, userpath
+, argcomplete
+, packaging
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pipx";
+  version = "0.15.5.1";
+
+  disabled = pythonOlder "3.6";
+
+  # no tests in the pypi tarball, so we directly fetch from github
+  src = fetchFromGitHub {
+    owner = "pipxproject";
+    repo = pname;
+    rev = version;
+    sha256 = "0lq8dfkq4ji11r4k5csqzyv0757fbxiax6ixn94f9747zrikssf6";
+  };
+
+  propagatedBuildInputs = [ userpath argcomplete packaging ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  # disable tests, which require internet connection
+  disabledTests = [
+    "install"
+    "inject"
+    "ensure_null_pythonpath"
+    "missing_interpreter"
+    "cache"
+    "internet"
+    "runpip"
+    "upgrade"
+  ];
+
+  meta = with lib; {
+    description =
+      "Install and Run Python Applications in Isolated Environments";
+    homepage = "https://github.com/pipxproject/pipx";
+    license = licenses.mit;
+    maintainers = with maintainers; [ yevhenshymotiuk ];
+  };
+}
diff --git a/pkgs/development/python-modules/pkutils/default.nix b/pkgs/development/python-modules/pkutils/default.nix
new file mode 100644
index 00000000000..d674e876b14
--- /dev/null
+++ b/pkgs/development/python-modules/pkutils/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, pythonOlder
+, buildPythonPackage
+, isPy3k
+, fetchFromGitHub
+, semver
+  # Check Inputs
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "pkutils";
+  version = "1.1.1";
+  disabled = !isPy3k; # some tests using semver fail due to unicode errors on Py2.7
+
+  src = fetchFromGitHub {
+    owner = "reubano";
+    repo = "pkutils";
+    rev = "v${version}";
+    sha256 = "01yaq9sz6vyxk8yiss6hsmy70qj642cr2ifk0sx1mlh488flcm62";
+  };
+
+  propagatedBuildInputs = [ semver ];
+
+  # Remove when https://github.com/reubano/pkutils/pull/4 merged
+  postPatch = ''
+    substituteInPlace requirements.txt --replace "semver>=2.2.1,<2.7.3" "semver"
+  '';
+
+  checkInputs = [ nose ];
+  pythonImportsCheck = [ "pkutils" ];
+
+  checkPhase = "nosetests";
+
+  meta = with lib; {
+    description = "A Python packaging utility library";
+    homepage = "https://github.com/reubano/pkutils/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ drewrisinger ];
+  };
+}
diff --git a/pkgs/development/python-modules/plaid-python/default.nix b/pkgs/development/python-modules/plaid-python/default.nix
index 3556db7ddb8..96e73356047 100644
--- a/pkgs/development/python-modules/plaid-python/default.nix
+++ b/pkgs/development/python-modules/plaid-python/default.nix
@@ -1,15 +1,16 @@
 { lib, buildPythonPackage, fetchPypi, requests, pytest }:
 
 buildPythonPackage rec {
-  version = "4.0.0";
+  version = "6.0.0";
   pname = "plaid-python";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2bf91e4c1054c920ec8911038f86efdc76067bf6b55a9787bd846129ce01ff4a";
+    sha256 = "0a0ay39k50hbxxaxz09m2azz5c08yqki2gincziv6g381yrlj68s";
   };
 
   checkInputs = [ pytest ];
+
   # Integration tests require API keys and internet access
   checkPhase = "py.test -rxs ./tests/unit";
 
@@ -18,6 +19,7 @@ buildPythonPackage rec {
   meta = {
     description = "Python client library for the Plaid API and Link";
     homepage = "https://github.com/plaid/plaid-python";
+    changelog = "https://github.com/plaid/plaid-python/blob/master/CHANGELOG.md";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ bhipple ];
   };
diff --git a/pkgs/development/python-modules/plone-testing/default.nix b/pkgs/development/python-modules/plone-testing/default.nix
index c7b4ff350df..825fcc86dc0 100644
--- a/pkgs/development/python-modules/plone-testing/default.nix
+++ b/pkgs/development/python-modules/plone-testing/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "plone.testing";
-  version = "8.0.0";
+  version = "8.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "71f22cb8cc169360786ec468a0ab5d403abe5bacc13754c251dd6b9eeedd1d83";
+    sha256 = "e079c87f821cf2e411826940e65577a88e08827cf9a2b771070f2917a439b642";
   };
 
   propagatedBuildInputs = [ six setuptools zope_testing ];
diff --git a/pkgs/development/python-modules/plotly/default.nix b/pkgs/development/python-modules/plotly/default.nix
index 1b8c2a0af0d..cc33babd64b 100644
--- a/pkgs/development/python-modules/plotly/default.nix
+++ b/pkgs/development/python-modules/plotly/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "plotly";
-  version = "4.8.1";
+  version = "4.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d3fea527fe3dfdd55d7334318f107b05a8407474a0fffe6cd4726c9b99e624f1";
+    sha256 = "257f530ffd73754bd008454826905657b329053364597479bb9774437a396837";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/plumbum/default.nix b/pkgs/development/python-modules/plumbum/default.nix
index 796f9418497..e08537ff1ab 100644
--- a/pkgs/development/python-modules/plumbum/default.nix
+++ b/pkgs/development/python-modules/plumbum/default.nix
@@ -16,4 +16,4 @@ buildPythonPackage rec {
     inherit pname version;
     sha256 = "1ps37vamqav6p277dlp51jnacd5q4x4z1x8y0nfjw3y8jsfy3f8n";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/poetry-core/default.nix b/pkgs/development/python-modules/poetry-core/default.nix
new file mode 100644
index 00000000000..fb4ff8b2d8a
--- /dev/null
+++ b/pkgs/development/python-modules/poetry-core/default.nix
@@ -0,0 +1,63 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, isPy27
+, importlib-metadata
+, intreehooks
+, isort
+, pathlib2
+, pep517
+, pytest-mock
+, pytestCheckHook
+, tomlkit
+, typing
+, virtualenv
+}:
+
+buildPythonPackage rec {
+  pname = "poetry-core";
+  version = "1.0.0a9";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "python-poetry";
+    repo = pname;
+    rev = version;
+    sha256 = "1ln47x1bc1yvhdfwfnkqx4d2j7988a59v8vmcriw14whfgzfki75";
+  };
+
+  # avoid mass-rebuild of python packages
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace "^1.7.0" "^1.6.0"
+  '';
+
+  nativeBuildInputs = [
+    intreehooks
+  ];
+
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ] ++ lib.optionals isPy27 [
+    pathlib2
+    typing
+  ];
+
+  checkInputs = [
+    isort
+    pep517
+    pytest-mock
+    pytestCheckHook
+    tomlkit
+    virtualenv
+  ];
+
+  # requires git history to work correctly
+  disabledTests = [ "default_with_excluded_data" ];
+
+  pythonImportsCheck = [ "poetry.core" ];
+
+  meta = with lib; {
+    description = "Core utilities for Poetry";
+    homepage = "https://github.com/python-poetry/poetry-core/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/poetry/default.nix b/pkgs/development/python-modules/poetry/default.nix
index e0be5f5ed0a..937a758b9c8 100644
--- a/pkgs/development/python-modules/poetry/default.nix
+++ b/pkgs/development/python-modules/poetry/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy27, pythonOlder
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27, pythonOlder, fetchpatch
 , cachecontrol
 , cachy
 , cleo
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "poetry";
-  version = "1.0.9";
+  version = "1.0.10";
   format = "pyproject";
   disabled = isPy27;
 
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "python-poetry";
     repo = pname;
     rev = version;
-    sha256 = "0gi1li55rim60hf1gdpgpx84zlkaj0wv12wbv7dib9malhfj3pnz";
+    sha256 = "00qfzjjs6clh93gfl1px3ma9km8qxl3f4z819nmyl58zc8ni3zyv";
   };
 
   postPatch = ''
@@ -43,7 +43,7 @@ buildPythonPackage rec {
      --replace "requests-toolbelt = \"^0.8.0\"" "requests-toolbelt = \"^0.9.1\"" \
      --replace 'importlib-metadata = {version = "~1.1.3", python = "<3.8"}' \
        'importlib-metadata = {version = ">=1.3,<2", python = "<3.8"}' \
-     --replace "tomlkit = \"^0.5.11\"" "tomlkit = \"^0.6.0\"" \
+     --replace "tomlkit = \"^0.5.11\"" "tomlkit = \"<2\"" \
      --replace "cleo = \"^0.7.6\"" "cleo = \"^0.8.0\"" \
      --replace "version = \"^20.0.1\", python = \"^3.5\"" "version = \"^21.0.0\", python = \"^3.5\"" \
      --replace "clikit = \"^0.4.2\"" "clikit = \"^0.6.2\""
@@ -90,6 +90,8 @@ buildPythonPackage rec {
     "prereleases_if_they_are_compatible"
     # requires git history to work correctly
     "default_with_excluded_data"
+    # toml ordering has changed
+    "lock"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pooch/default.nix b/pkgs/development/python-modules/pooch/default.nix
new file mode 100644
index 00000000000..378035bb7a5
--- /dev/null
+++ b/pkgs/development/python-modules/pooch/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, buildPythonPackage
+, isPy27
+, fetchPypi
+, pytestCheckHook
+, packaging
+, appdirs
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pooch";
+  version = "1.0.0";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1k2vinlhkzl7lzhvbz20x3a2r2zqqila0yxg3a3fax2r6qxbxxzi";
+  };
+
+  propagatedBuildInputs = [ packaging appdirs requests ];
+
+  checkInputs = [ pytestCheckHook ];
+  disabledTests = [
+    "pooch_custom_url"
+    "pooch_download"
+    "pooch_logging_level"
+    "pooch_update"
+    "pooch_corrupted"
+    "check_availability"
+    "downloader"
+    "test_fetch"
+    "decompress"
+    "extractprocessor_fails"
+    "processor"
+    "integration"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A friend to fetch your data files.";
+    homepage = "https://github.com/fatiando/pooch";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ GuillaumeDesforges ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/powerline/default.nix b/pkgs/development/python-modules/powerline/default.nix
index 3c4c6ae4ec7..65325f70b45 100644
--- a/pkgs/development/python-modules/powerline/default.nix
+++ b/pkgs/development/python-modules/powerline/default.nix
@@ -1,26 +1,38 @@
 { lib
-, fetchurl
+, fetchFromGitHub
+, python
 , buildPythonPackage
+, socat
 , psutil
+, hglib
 , pygit2
+, pyuv
+, i3ipc
 }:
 
-# The source of this package needs to be patched to include the full path to
-# the executables of git, mercurial and bazaar.
+# TODO: bzr support is missing because nixpkgs switched to `breezy`
 
 buildPythonPackage rec {
-  version  = "2.7";
+  version  = "2.8.1";
   pname = "powerline";
 
-  src = fetchurl {
-    url    = "https://github.com/powerline/powerline/archive/${version}.tar.gz";
-    name   = "${pname}-${version}.tar.gz";
-    sha256 = "1h1j2rfphvfdq6mmfyn5bql45hzrwxkhpc2jcwf0vrl3slzkl5s5";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "0xscckcbw75pbcl4546ndrjs4682pn2sqqrd6qvqm0s6zswg7a0y";
   };
 
-  propagatedBuildInputs = [ psutil pygit2];
+  propagatedBuildInputs = [
+    socat
+    psutil
+    hglib
+    pygit2
+    pyuv
+    i3ipc
+  ];
 
-# error: This is still beta and some tests still fail
+  # tests are travis-specific
   doCheck = false;
 
   postInstall = ''
@@ -29,19 +41,9 @@ buildPythonPackage rec {
     install -m644 "font/PowerlineSymbols.otf" "$out/share/fonts/OTF/PowerlineSymbols.otf"
     install -m644 "font/10-powerline-symbols.conf" "$out/etc/fonts/conf.d/10-powerline-symbols.conf"
 
-    install -dm755 "$out/share/vim/vimfiles/plugin"
-    install -m644 "powerline/bindings/vim/plugin/powerline.vim" "$out/share/vim/vimfiles/plugin/powerline.vim"
-
-    install -dm755 "$out/share/zsh/site-contrib"
-    install -m644 "powerline/bindings/zsh/powerline.zsh" "$out/share/zsh/site-contrib/powerline.zsh"
-
-    install -dm755 "$out/share/tmux"
-    install -m644 "powerline/bindings/tmux/powerline.conf" "$out/share/tmux/powerline.conf"
-    
-    install -dm755 "$out/share/fish/vendor_functions.d"
-    install -m644 "powerline/bindings/fish/powerline-setup.fish" "$out/share/fish/vendor_functions.d/powerline-setup.fish"
-
-    '';
+    cp -ra powerline/bindings/{bash,fish,shell,tcsh,tmux,vim,zsh} $out/share/
+    rm $out/share/*/*.py
+  '';
 
   meta = {
     homepage    = "https://github.com/powerline/powerline";
diff --git a/pkgs/development/python-modules/pq/default.nix b/pkgs/development/python-modules/pq/default.nix
new file mode 100644
index 00000000000..75a722d831e
--- /dev/null
+++ b/pkgs/development/python-modules/pq/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, psycopg2
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "pq";
+  version = "1.8.2";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "f54143844e73f4182532e68548dee447dd78dd00310a087e8cdee756d476a173";
+  };
+
+  # psycopg2cffi is compatible with psycopg2 and author states that
+  # module is compatible with psycopg2
+  postConfigure = ''
+    substituteInPlace setup.py \
+      --replace "psycopg2cffi" "psycopg2"
+
+    substituteInPlace pq/tests.py \
+      --replace "psycopg2cffi" "psycopg2"
+  '';
+
+  checkInputs = [
+    psycopg2
+  ];
+
+  # tests require running postgresql cluster
+  doCheck = false;
+
+  meta = with lib; {
+    description = "PQ is a transactional queue for PostgreSQL";
+    homepage = https://github.com/malthe/pq/;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/prance/default.nix b/pkgs/development/python-modules/prance/default.nix
index 5fffbae45fe..1b762fed059 100644
--- a/pkgs/development/python-modules/prance/default.nix
+++ b/pkgs/development/python-modules/prance/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "prance";
-  version = "0.18.3";
+  version = "0.19.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4600ec749ade4f10d1cc8b07cd7a372f02985efd66100e287e67ccb1d48b5fc5";
+    sha256 = "0ffpfny3z8v3g0drirm27qafafbbvbc4h5k8v7yiwirnh0vn9v46";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/praw/default.nix b/pkgs/development/python-modules/praw/default.nix
index 47715b9e567..698c9cc1ccf 100644
--- a/pkgs/development/python-modules/praw/default.nix
+++ b/pkgs/development/python-modules/praw/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "praw";
-  version = "6.5.1";
+  version = "7.1.0";
 
   src = fetchFromGitHub {
     owner = "praw-dev";
     repo = "praw";
     rev = "v${version}";
-    sha256 = "0d5whaw4731gllffhwrh2qqnlki4j8q83xaf3v4spkd40ps3q7b4";
+    sha256 = "07wyn2pa80ps55kk66rvf4daqyn3y5lzxhx6qh1lpn3p2bacbw9h";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/prawcore/default.nix b/pkgs/development/python-modules/prawcore/default.nix
index aebe5766e9c..7be75eae90a 100644
--- a/pkgs/development/python-modules/prawcore/default.nix
+++ b/pkgs/development/python-modules/prawcore/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ stdenv, buildPythonPackage, fetchPypi, isPy27
 , requests
 , testfixtures, mock, requests_toolbelt
 , betamax, betamax-serializers, betamax-matchers, pytest
@@ -6,11 +6,12 @@
 
 buildPythonPackage rec {
   pname = "prawcore";
-  version = "1.4.0";
+  version = "1.5.0";
+  disabled = isPy27; # see https://github.com/praw-dev/prawcore/pull/101
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cf71388d869becbcbdfd90258b19d2173c197a457f2dd0bef0566b6cfb9b95a1";
+    sha256 = "1f1eafc8a65d671f9892354f73142014fbb5d3a9ee621568c662d0a354e0578b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pre-commit/default.nix b/pkgs/development/python-modules/pre-commit/default.nix
index a933093bef4..88fb6e3abf9 100644
--- a/pkgs/development/python-modules/pre-commit/default.nix
+++ b/pkgs/development/python-modules/pre-commit/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "pre-commit";
-  version = "2.4.0";
+  version = "2.7.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit version;
     pname = "pre_commit";
-    sha256 = "1l0lcl3l2544m2k8jlmblfsjn0p2hdxrzzwy646xpvp0rcs2wgkh";
+    sha256 = "0w2a104yhbw1z92rcwpq0gdjsxvr2bwx5ry5xhlf2psnfkjx6ky5";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/preshed/default.nix b/pkgs/development/python-modules/preshed/default.nix
index 050295204bc..96a015076df 100644
--- a/pkgs/development/python-modules/preshed/default.nix
+++ b/pkgs/development/python-modules/preshed/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   checkPhase = ''
     ${python.interpreter} setup.py test
   '';
-  
+
   meta = with stdenv.lib; {
     description = "Cython hash tables that assume keys are pre-hashed";
     homepage = "https://github.com/explosion/preshed";
diff --git a/pkgs/development/python-modules/process-tests/default.nix b/pkgs/development/python-modules/process-tests/default.nix
index 5ebda6bf04c..de43ea71fd4 100644
--- a/pkgs/development/python-modules/process-tests/default.nix
+++ b/pkgs/development/python-modules/process-tests/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "process-tests";
-  version = "2.0.2";
+  version = "2.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7ae24a680cc7c44e7687e3723e6e64597a28223ad664989999efe10dd38c2431";
+    sha256 = "15yrgr1hb7i0fq31dh6k8hmc3jnk6yn5nh4xh3gmszk9vag5zrqk";
   };
 
   # No tests
diff --git a/pkgs/development/python-modules/prompt_toolkit/default.nix b/pkgs/development/python-modules/prompt_toolkit/default.nix
index 9d969b5d341..47fbace69df 100644
--- a/pkgs/development/python-modules/prompt_toolkit/default.nix
+++ b/pkgs/development/python-modules/prompt_toolkit/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "prompt_toolkit";
-  version = "3.0.5";
+  version = "3.0.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "563d1a4140b63ff9dd587bda9557cffb2fe73650205ab6f4383092fb882e7dc8";
+    sha256 = "7630ab85a23302839a0f26b31cc24f518e6155dea1ed395ea61b42c45941b6a6";
   };
   checkPhase = ''
     py.test -k 'not test_pathcompleter_can_expanduser'
diff --git a/pkgs/development/python-modules/property-manager/default.nix b/pkgs/development/python-modules/property-manager/default.nix
index 55d7bafc014..ad47163e484 100644
--- a/pkgs/development/python-modules/property-manager/default.nix
+++ b/pkgs/development/python-modules/property-manager/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "property-manager";
-  version = "2.3.1";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner = "xolox";
     repo = "python-property-manager";
     rev = version;
-    sha256 = "0s4nwipxd8c2vp4rd8mxrj8wbycniz5ki5n177d0dbrnll5amcz0";
+    sha256 = "1v7hjm7qxpgk92i477fjhpcnjgp072xgr8jrgmbrxfbsv4cvl486";
   };
 
   propagatedBuildInputs = [ coloredlogs humanfriendly verboselogs ];
diff --git a/pkgs/development/python-modules/psautohint/default.nix b/pkgs/development/python-modules/psautohint/default.nix
new file mode 100644
index 00000000000..0f89069c7d8
--- /dev/null
+++ b/pkgs/development/python-modules/psautohint/default.nix
@@ -0,0 +1,40 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, fonttools, lxml, fs
+, setuptools_scm
+, pytest, pytestcov, pytest_xdist, pytest-randomly
+}:
+
+buildPythonPackage rec {
+  pname = "psautohint";
+  version = "2.1.0";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner  = "adobe-type-tools";
+    repo   = pname;
+    sha256 = "1k1rx1adqxdxj5v3788lwnvygylp73sps1p0q44hws2vmsag2s8r";
+    rev    = "v${version}";
+    fetchSubmodules = true; # data dir for tests
+  };
+
+  postPatch = ''
+    echo '#define PSAUTOHINT_VERSION "${version}"' > libpsautohint/src/version.h
+    sed -i '/use_scm_version/,+3d' setup.py
+    sed -i '/setup(/a \     version="${version}",' setup.py
+  '';
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [ fonttools lxml fs ];
+
+  checkInputs = [ pytest pytestcov pytest_xdist pytest-randomly ];
+  checkPhase = "pytest tests";
+
+  meta = with lib; {
+    description = "Script to normalize the XML and other data inside of a UFO";
+    homepage = "https://github.com/adobe-type-tools/psautohint";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/psd-tools/default.nix b/pkgs/development/python-modules/psd-tools/default.nix
index c4f043aada5..a4eb552bb7d 100644
--- a/pkgs/development/python-modules/psd-tools/default.nix
+++ b/pkgs/development/python-modules/psd-tools/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "psd-tools";
-  version = "1.9.13";
+  version = "1.9.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9b1ca602b63b7bcb9f53e9f3d4b815839926533112bc6e3ecf1d37cb125259f3";
+    sha256 = "23b545d91c784fcaf27fbf4c69abe21ac1ea10d25b5b8c61dcd8f0e03ccff786";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/psutil/default.nix b/pkgs/development/python-modules/psutil/default.nix
index 69181af222c..ab3a3c1665e 100644
--- a/pkgs/development/python-modules/psutil/default.nix
+++ b/pkgs/development/python-modules/psutil/default.nix
@@ -3,30 +3,29 @@
 , pytest
 , mock
 , ipaddress
+, unittest2
 }:
 
 buildPythonPackage rec {
   pname = "psutil";
-  version = "5.7.0";
+  version = "5.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03jykdi3dgf1cdal9bv4fq9zjvzj9l9bs99gi5ar81sdl5nc2pk8";
+    sha256 = "90990af1c3c67195c44c9a889184f84f5b2320dce3ee3acbd054e3ba0b4a7beb";
   };
 
   # 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 ]
-    ++ lib.optionals isPy27 [ mock ipaddress ];
+    ++ lib.optionals isPy27 [ mock ipaddress unittest2 ];
   # out must be referenced as test import paths are relative
   # 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'
+      -k 'not user and not disk_io_counters and not sensors_battery and not cpu_times'
   '';
 
   buildInputs = lib.optionals stdenv.isDarwin [ darwin.IOKit ];
diff --git a/pkgs/development/python-modules/ptpython/default.nix b/pkgs/development/python-modules/ptpython/default.nix
index cad7291994e..e92a99d9989 100644
--- a/pkgs/development/python-modules/ptpython/default.nix
+++ b/pkgs/development/python-modules/ptpython/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, buildPythonPackage, fetchPypi, prompt_toolkit, appdirs, docopt, jedi
-, pygments, isPy3k }:
+{ stdenv, lib, buildPythonPackage, pythonOlder, fetchPypi, prompt_toolkit, appdirs, docopt, jedi
+, pygments, importlib-metadata, isPy3k }:
 
 buildPythonPackage rec {
   pname = "ptpython";
-  version = "3.0.2";
+  version = "3.0.5";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "556e5367d4d58231b575dc619493dc0d8ef4c2d15ee85c727a88beb60fa5c52b";
+    sha256 = "5094e7e4daa77453d3c33eb7b7ebbf1060be4446521865a94e698bc85ff15930";
   };
 
-  propagatedBuildInputs = [ appdirs prompt_toolkit docopt jedi pygments ];
+  propagatedBuildInputs = [ appdirs prompt_toolkit docopt jedi pygments ]
+    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # no tests to run
   doCheck = false;
diff --git a/pkgs/development/python-modules/pulp/default.nix b/pkgs/development/python-modules/pulp/default.nix
index ab6fda9d3d4..60b34f09833 100644
--- a/pkgs/development/python-modules/pulp/default.nix
+++ b/pkgs/development/python-modules/pulp/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "PuLP";
-  version = "2.1";
+  version = "2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06swbi7wygh7y0kxc85q1pdhzk662375d9a5jnahgr76hkwwkybn";
+    sha256 = "9d8ecf532868cc31fa9ff59ee5d5b2049600c5c902c18c794a2bad677c1f92e5";
   };
 
   propagatedBuildInputs = [ pyparsing ];
diff --git a/pkgs/development/python-modules/pure-eval/default.nix b/pkgs/development/python-modules/pure-eval/default.nix
new file mode 100644
index 00000000000..d7e92f09784
--- /dev/null
+++ b/pkgs/development/python-modules/pure-eval/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildPythonPackage, fetchFromGitHub, setuptools_scm, toml, pytest }:
+
+buildPythonPackage rec {
+  pname = "pure_eval";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "alexmojaki";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1d3gpc9mrmwdk6l87x7ll23vwv6l8l2iqvi63r86j7bj5s8m2ci8";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  buildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ toml ];
+
+  checkInputs = [ pytest ];
+
+  meta = with lib; {
+    description = "Safely evaluate AST nodes without side effects";
+    homepage = "http://github.com/alexmojaki/pure_eval";
+    license = licenses.mit;
+    maintainers = with maintainers; [ gebner ];
+  };
+}
diff --git a/pkgs/development/python-modules/pure-pcapy3/default.nix b/pkgs/development/python-modules/pure-pcapy3/default.nix
new file mode 100644
index 00000000000..71673da7abe
--- /dev/null
+++ b/pkgs/development/python-modules/pure-pcapy3/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "pure-pcapy3";
+  version = "1.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "14panfklap6wwi9avw46gvd7wg9mkv9xbixvbvmi1m2adpqlb7mr";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Pure Python reimplementation of pcapy. This package is API compatible and a drop-in replacement.";
+    homepage = "http://bitbucket.org/viraptor/pure-pcapy";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ etu ];
+  };
+}
diff --git a/pkgs/development/python-modules/pvlib/default.nix b/pkgs/development/python-modules/pvlib/default.nix
index e308ecca676..f9d97c21105 100644
--- a/pkgs/development/python-modules/pvlib/default.nix
+++ b/pkgs/development/python-modules/pvlib/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, numpy, pandas, pytz, six
-, pytest, mock, pytest-mock, requests }:
+{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, pythonOlder, numpy, pandas, pytz, six
+, pytestCheckHook, flaky, mock, pytest-mock, requests }:
 
 buildPythonPackage rec {
   pname = "pvlib";
@@ -13,17 +13,37 @@ buildPythonPackage rec {
     sha256 = "40708492ed0a41e900d36933b9b9ab7b575c72ebf3eee81293c626e301aa7ea1";
   };
 
-  checkInputs = [ pytest mock pytest-mock ];
+  patches = [
+    # enable later pandas versions, remove next bump
+    (fetchpatch {
+      url = "https://github.com/pvlib/pvlib-python/commit/010a2adc9e9ef6fe9f2aea4c02d7e6ede9f96a53.patch";
+      sha256 = "0jibn4khixz6hv6racmp86m5mcms0ysz1y5bgpplw1kcvf8sn04x";
+      excludes = [
+        "pvlib/tests/test_inverter.py"
+        "docs/sphinx/source/whatsnew/v0.8.0.rst"
+        "ci/requirements-py35-min.yml"
+      ];
+    })
+  ];
+
+  checkInputs = [ pytestCheckHook flaky mock pytest-mock ];
   propagatedBuildInputs = [ numpy pandas pytz six requests ];
 
   # Skip a few tests that try to access some URLs
-  checkPhase = ''
-    runHook preCheck
-    pushd pvlib/tests
-    pytest . -k "not test_read_srml_dt_index and not test_read_srml_month_from_solardata and not test_get_psm3 and not test_pvgis"
-    popd
-    runHook postCheck
-  '';
+  pytestFlagsArray = [ "pvlib/tests" ];
+  disabledTests = [
+    "read_srml_dt_index"
+    "read_srml_month_from_solardata"
+    "get_psm3"
+    "pvgis"
+    "read_surfrad_network"
+    "remote"
+    # small rounding errors, E.g <1e-10^5
+    "calcparams_pvsyst"
+    "martin_ruiz_diffuse"
+    "hsu"
+    "backtrack"
+  ];
 
   meta = with stdenv.lib; {
     homepage = "https://pvlib-python.readthedocs.io";
diff --git a/pkgs/development/python-modules/pwntools/default.nix b/pkgs/development/python-modules/pwntools/default.nix
index e591d4a5f46..623140546e1 100644
--- a/pkgs/development/python-modules/pwntools/default.nix
+++ b/pkgs/development/python-modules/pwntools/default.nix
@@ -1,26 +1,74 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k
-, Mako, packaging, pysocks, pygments, ROPGadget
-, capstone, paramiko, pip, psutil
-, pyelftools, pyserial, dateutil
-, requests, tox, unicorn, intervaltree, fetchpatch }:
+{ stdenv
+, buildPythonPackage
+, debugger
+, fetchPypi
+, isPy3k
+, Mako
+, makeWrapper
+, packaging
+, pysocks
+, pygments
+, ROPGadget
+, capstone
+, paramiko
+, pip
+, psutil
+, pyelftools
+, pyserial
+, dateutil
+, requests
+, tox
+, unicorn
+, intervaltree
+, fetchpatch
+}:
 
 buildPythonPackage rec {
-  version = "4.1.1";
+  version = "4.2.1";
   pname = "pwntools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "694ce7a6cfca0ad40eae36c1d2663c44eb953f84785c63daa9752b4dfa7f39d8";
+    sha256 = "1fh7sq9wrcfvn44qryln9cyg99pilvyq9bp80758lgdd6ss6hdqd";
   };
 
-  propagatedBuildInputs = [ Mako packaging pysocks pygments ROPGadget capstone paramiko pip psutil pyelftools pyserial dateutil requests tox unicorn intervaltree ];
+  # Upstream has set an upper bound on unicorn because of https://github.com/Gallopsled/pwntools/issues/1538,
+  # but since that is a niche use case and it requires extra work to get unicorn 1.0.2rc3 to work we relax
+  # the bound here. Check if this is still necessary when updating!
+  postPatch = ''
+    sed -i 's/unicorn>=1.0.2rc1,<1.0.2rc4/unicorn>=1.0.2rc1/' setup.py
+  '';
+
+  propagatedBuildInputs = [
+    Mako
+    packaging
+    pysocks
+    pygments
+    ROPGadget
+    capstone
+    paramiko
+    pip
+    psutil
+    pyelftools
+    pyserial
+    dateutil
+    requests
+    tox
+    unicorn
+    intervaltree
+  ];
 
   doCheck = false; # no setuptools tests for the package
 
+  postFixup = ''
+    mkdir -p "$out/bin"
+    makeWrapper "${debugger}/bin/${stdenv.lib.strings.getName debugger}" "$out/bin/pwntools-gdb"
+  '';
+
   meta = with stdenv.lib; {
     homepage = "http://pwntools.com";
     description = "CTF framework and exploit development library";
     license = licenses.mit;
-    maintainers = with maintainers; [ bennofs kristoff3r ];
+    maintainers = with maintainers; [ bennofs kristoff3r pamplemousse ];
   };
 }
diff --git a/pkgs/development/python-modules/pxml/default.nix b/pkgs/development/python-modules/pxml/default.nix
new file mode 100644
index 00000000000..229b174adec
--- /dev/null
+++ b/pkgs/development/python-modules/pxml/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, pythonAtLeast
+, isPy27
+, buildPythonPackage
+, fetchPypi
+, blessings
+, six
+, nose
+, coverage
+}:
+
+buildPythonPackage rec {
+  pname = "pxml";
+  version = "0.2.13";
+  disabled = pythonAtLeast "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0c9zzfv6ciyf9qm7556wil45xxgykg1cj8isp1b88gimwcb2hxg4";
+  };
+
+  propagatedBuildInputs = [ blessings six ];
+  checkInputs = [ nose coverage ];
+
+  # test_prefixedWhitespace fails due to a python3 StringIO issue requiring
+  # bytes rather than str
+  checkPhase = ''
+    nosetests -e 'test_prefixedWhitespace'
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/metagriffin/pxml";
+    description = ''A python library and command-line tool to "prettify" and colorize XML.'';
+    maintainers = with maintainers; [ glittershark ];
+    license = licenses.gpl3;
+  };
+}
diff --git a/pkgs/development/python-modules/py-multibase/default.nix b/pkgs/development/python-modules/py-multibase/default.nix
index 59876b473a9..c304e68fd8d 100644
--- a/pkgs/development/python-modules/py-multibase/default.nix
+++ b/pkgs/development/python-modules/py-multibase/default.nix
@@ -43,4 +43,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ rakesh4g ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/py-multihash/default.nix b/pkgs/development/python-modules/py-multihash/default.nix
index f81b7fb7644..5034f6df469 100644
--- a/pkgs/development/python-modules/py-multihash/default.nix
+++ b/pkgs/development/python-modules/py-multihash/default.nix
@@ -46,4 +46,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ rakesh4g ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/py-vapid/default.nix b/pkgs/development/python-modules/py-vapid/default.nix
index f8531288007..2f4a60b420a 100644
--- a/pkgs/development/python-modules/py-vapid/default.nix
+++ b/pkgs/development/python-modules/py-vapid/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "py-vapid";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03057a3270ddc7d53c31e2915083d01ba8a3169f4032cab3dd9f4ebe44e2564a";
+    sha256 = "f05cecaa9fc009515086d04b6117324f30eedf1a196f67fb1ec360a9dbdad4ee";
   };
 
   propagatedBuildInputs = [ cryptography ];
diff --git a/pkgs/development/python-modules/py/default.nix b/pkgs/development/python-modules/py/default.nix
index 5da15bb91f4..19366ea7146 100644
--- a/pkgs/development/python-modules/py/default.nix
+++ b/pkgs/development/python-modules/py/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "py";
-  version = "1.8.1";
+  version = "1.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa";
+    sha256 = "9ca6883ce56b4e8da7e79ac18787889fa5206c79dcc67fb065376cd2fe03f342";
   };
 
   # Circular dependency on pytest
diff --git a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
index 9a61fa1f543..2ecdfb17aa2 100644
--- a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
+++ b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyTelegramBotAPI";
-  version = "3.7.1";
+  version = "3.7.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8ef8e54098efd29a6bcac28d127480ae2b7491c1d33e4e0c7bbf0fc8949e0fae";
+    sha256 = "ce42d84442ff2ce4918de6550cf377253f61e28e4fac2634495683d12df66d00";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/py_stringmatching/default.nix b/pkgs/development/python-modules/py_stringmatching/default.nix
index f4407150204..fda497b7962 100644
--- a/pkgs/development/python-modules/py_stringmatching/default.nix
+++ b/pkgs/development/python-modules/py_stringmatching/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   };
 
   checkInputs = [ nose ];
-   
+
   propagatedBuildInputs = [ numpy six ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pyatmo/default.nix b/pkgs/development/python-modules/pyatmo/default.nix
index cb628561fda..ec959740f9e 100644
--- a/pkgs/development/python-modules/pyatmo/default.nix
+++ b/pkgs/development/python-modules/pyatmo/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pyatmo";
-  version = "3.3.1";
+  version = "4.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9949338833a27b6c3251b52bf70b73aa99c43c56153541338cb63001afafdd1e";
+    sha256 = "148713395d51a57f1f3102eacbb9286a859fc5c18c066238a961a1acf189b930";
   };
 
   propagatedBuildInputs = [ oauthlib requests requests_oauthlib ];
diff --git a/pkgs/development/python-modules/pyatv/default.nix b/pkgs/development/python-modules/pyatv/default.nix
index b8a607f4d45..8d6da02e5f1 100644
--- a/pkgs/development/python-modules/pyatv/default.nix
+++ b/pkgs/development/python-modules/pyatv/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "pyatv";
-  version = "0.6.1";
+  version = "0.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0f9wj1ggllwpjd9nh6nsrck7m4gbz29q6vqbrhbkc2kz6waqkgwc";
+    sha256 = "83d86fac517d33a1e3063a547ee2a520fde74c74a1b95cb5a6f20afccfd59843";
   };
 
   nativeBuildInputs = [ pytestrunner];
diff --git a/pkgs/development/python-modules/pybfd/default.nix b/pkgs/development/python-modules/pybfd/default.nix
deleted file mode 100644
index d04d7bfb5af..00000000000
--- a/pkgs/development/python-modules/pybfd/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, fetchFromGitHub, buildPythonPackage, isPyPy, isPy3k, libbfd, libopcodes }:
-
-buildPythonPackage {
-  pname = "pybfd";
-  version = "-0.1.1.2017-12-31";
-
-  disabled = isPyPy || isPy3k;
-
-  src = fetchFromGitHub {
-    owner = "orivej";
-    repo = "pybfd";
-    rev = "a10ada53f2a79de7f62f209567806ef1e91794c7";
-    sha256 = "0sxzhlqjyvvx1zr3qrkb57z6s3g6k3ksyn65fdm9lvl0k4dv2k9w";
-  };
-
-  LIBBFD_INCLUDE_DIR = "${libbfd.dev}/include";
-  LIBBFD_LIBRARY = "${libbfd}/lib/libbfd.so";
-  LIBOPCODES_INCLUDE_DIR = "${libopcodes.dev}/include";
-  LIBOPCODES_LIBRARY = "${libopcodes}/lib/libopcodes.so";
-
-  meta = {
-    homepage = "https://github.com/Groundworkstech/pybfd";
-    description = "A Python interface to the GNU Binary File Descriptor (BFD) library";
-    license = lib.licenses.gpl2;
-    platforms = lib.platforms.linux;
-    maintainers = with lib.maintainers; [ orivej ];
-    broken = true;
-  };
-}
diff --git a/pkgs/development/python-modules/pybids/default.nix b/pkgs/development/python-modules/pybids/default.nix
index 01c0368662c..92c34c7bd4e 100644
--- a/pkgs/development/python-modules/pybids/default.nix
+++ b/pkgs/development/python-modules/pybids/default.nix
@@ -15,12 +15,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.10.2";
+  version = "0.12.0";
   pname = "pybids";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6571ef82e03a958e56aa61cf5b15392f0b2d5dbca92f872061d81524e8da8525";
+    sha256 = "0flvrb61hfyjjgdz07dlm8m9pqwb8qrx027zfrwa9d5nw1az7g28";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pybind11/0001-Find-include-directory.patch b/pkgs/development/python-modules/pybind11/0001-Find-include-directory.patch
deleted file mode 100644
index d5b669dab7a..00000000000
--- a/pkgs/development/python-modules/pybind11/0001-Find-include-directory.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From a027e2590d5d2d384d23568a8d47b7095054b6b7 Mon Sep 17 00:00:00 2001
-From: Frederik Rietdijk <fridh@fridh.nl>
-Date: Thu, 19 Dec 2019 19:51:07 +0100
-Subject: [PATCH] Find include directory
-
----
- pybind11/__init__.py | 33 +--------------------------------
- 1 file changed, 1 insertion(+), 32 deletions(-)
-
-diff --git a/pybind11/__init__.py b/pybind11/__init__.py
-index c625e8c..c8a707b 100644
---- a/pybind11/__init__.py
-+++ b/pybind11/__init__.py
-@@ -2,35 +2,4 @@ from ._version import version_info, __version__  # noqa: F401 imported but unuse
- 
- 
- def get_include(user=False):
--    from distutils.dist import Distribution
--    import os
--    import sys
--
--    # Are we running in a virtual environment?
--    virtualenv = hasattr(sys, 'real_prefix') or \
--        sys.prefix != getattr(sys, "base_prefix", sys.prefix)
--
--    # Are we running in a conda environment?
--    conda = os.path.exists(os.path.join(sys.prefix, 'conda-meta'))
--
--    if virtualenv:
--        return os.path.join(sys.prefix, 'include', 'site',
--                            'python' + sys.version[:3])
--    elif conda:
--        if os.name == 'nt':
--            return os.path.join(sys.prefix, 'Library', 'include')
--        else:
--            return os.path.join(sys.prefix, 'include')
--    else:
--        dist = Distribution({'name': 'pybind11'})
--        dist.parse_config_files()
--
--        dist_cobj = dist.get_command_obj('install', create=True)
--
--        # Search for packages in user's home directory?
--        if user:
--            dist_cobj.user = user
--            dist_cobj.prefix = ""
--        dist_cobj.finalize_options()
--
--        return os.path.dirname(dist_cobj.install_headers)
-+    return "@include@"
--- 
-2.23.0
-
diff --git a/pkgs/development/python-modules/pybind11/default.nix b/pkgs/development/python-modules/pybind11/default.nix
index 3cfdbba31c1..079c93db450 100644
--- a/pkgs/development/python-modules/pybind11/default.nix
+++ b/pkgs/development/python-modules/pybind11/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "pybind11";
-  version = "2.4.3";
+  version = "2.5.0";
 
   src = fetchFromGitHub {
     owner = "pybind";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0k89w4bsfbpzw963ykg1cyszi3h3nk393qd31m6y46pcfxkqh4rd";
+    sha256 = "13hcj6g7k7yvj7nry2ar6f5mg58ln7frrvq1cg5f8mczxh1ch6zl";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -40,14 +40,6 @@ buildPythonPackage rec {
   dontUsePipInstall = true;
   dontUseSetuptoolsCheck = true;
 
-  patches = [
-    ./0001-Find-include-directory.patch
-  ];
-
-  postPatch = ''
-    substituteInPlace pybind11/__init__.py --subst-var-by include "$out/include"
-  '';
-
   preFixup = ''
     pushd ..
     export PYBIND11_USE_CMAKE=1
@@ -65,7 +57,7 @@ buildPythonPackage rec {
     scipy
   ];
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/pybind/pybind11";
     description = "Seamless operability between C++11 and Python";
     longDescription = ''
@@ -73,7 +65,7 @@ buildPythonPackage rec {
       C++ types in Python and vice versa, mainly to create Python
       bindings of existing C++ code.
     '';
-    license = lib.licenses.bsd3;
-    maintainers = [ lib.maintainers.yuriaisaka ];
+    license = licenses.bsd3;
+    maintainers = with maintainers;[ yuriaisaka ];
   };
 }
diff --git a/pkgs/development/python-modules/pybullet/default.nix b/pkgs/development/python-modules/pybullet/default.nix
index 36b71704a92..9d889214e34 100644
--- a/pkgs/development/python-modules/pybullet/default.nix
+++ b/pkgs/development/python-modules/pybullet/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pybullet";
-  version = "2.8.1";
+  version = "2.8.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "836d80660920f0696645738367b8c8359878387ba582adb8b37d59d60adedadd";
+    sha256 = "9d3a8bdc9b4acce086c485ba719aabee33de7a867d84a058b182b139c789ad55";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pychromecast/default.nix b/pkgs/development/python-modules/pychromecast/default.nix
index fe6f191f611..e6aef54557f 100644
--- a/pkgs/development/python-modules/pychromecast/default.nix
+++ b/pkgs/development/python-modules/pychromecast/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "PyChromecast";
-  version = "6.0.0";
+  version = "7.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15beaafdb155885794443d99fa687a2787d8bad8ba440ecda10bb72bd6c8c815";
+    sha256 = "9aad074d0361791af8ccb8fb7ea0f1646db3d89600fed85c5562b64c8b1aa899";
   };
 
   disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/pyclipper/default.nix b/pkgs/development/python-modules/pyclipper/default.nix
index eaf20baf75c..bc910cea580 100644
--- a/pkgs/development/python-modules/pyclipper/default.nix
+++ b/pkgs/development/python-modules/pyclipper/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "pyclipper";
-  version = "1.1.0.post3";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "164yksvqwqvwzh8f8lq92asg87hd8rvcy2xb5vm4y4ccvd5xgb7i";
+    sha256 = "0irs5sn6ldpg70630nfndghjnpxv8jldk61zyczfzp1jcz53b43s";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pycoin/default.nix b/pkgs/development/python-modules/pycoin/default.nix
index a0b743bb8b5..da09cfdd64e 100644
--- a/pkgs/development/python-modules/pycoin/default.nix
+++ b/pkgs/development/python-modules/pycoin/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pycoin";
-  version = "0.90.20200322";
+  version = "0.90.20200809";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c8af579e86c118deb64d39e0d844d53a065cdd8227ddd632112e5667370b53a3";
+    sha256 = "301dd6df9d9d580701d7325c4d1c341233ba1a94cb805305ea3a43c31bdaaa4c";
   };
 
   propagatedBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/pycountry/default.nix b/pkgs/development/python-modules/pycountry/default.nix
index 584ba838cc2..2cd707ee8dc 100644
--- a/pkgs/development/python-modules/pycountry/default.nix
+++ b/pkgs/development/python-modules/pycountry/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pycountry";
-  version = "19.8.18";
+  version = "20.7.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jxkdjffrhn0il0nm14dlzxpd6f3v1hbxzxsprcksafgmm0almrw";
+    sha256 = "0hnbabsmqimx5hqh0jbd2f64i8fhzhhbrvid57048hs5sd9ll241";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/pycryptodome/default.nix b/pkgs/development/python-modules/pycryptodome/default.nix
index 63db40dba16..15e93e59542 100644
--- a/pkgs/development/python-modules/pycryptodome/default.nix
+++ b/pkgs/development/python-modules/pycryptodome/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchPypi, buildPythonPackage }:
 
 buildPythonPackage rec {
-  version = "3.9.7";
+  version = "3.9.8";
   pname = "pycryptodome";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f1add21b6d179179b3c177c33d18a2186a09cc0d3af41ff5ed3f377360b869f2";
+    sha256 = "0e24171cf01021bc5dc17d6a9d4f33a048f09d62cc3f62541e95ef104588bda4";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/pycryptodomex/default.nix b/pkgs/development/python-modules/pycryptodomex/default.nix
index 92da3e722f0..0bef1364617 100644
--- a/pkgs/development/python-modules/pycryptodomex/default.nix
+++ b/pkgs/development/python-modules/pycryptodomex/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "pycryptodomex";
-  version = "3.9.7";
+  version = "3.9.8";
 
   meta = {
     description = "A self-contained cryptographic library for Python";
@@ -12,6 +12,6 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "50163324834edd0c9ce3e4512ded3e221c969086e10fdd5d3fdcaadac5e24a78";
+    sha256 = "48cc2cfc251f04a6142badeb666d1ff49ca6fdfc303fd72579f62b768aaa52b9";
   };
 }
diff --git a/pkgs/development/python-modules/pydicom/default.nix b/pkgs/development/python-modules/pydicom/default.nix
index b875674df61..e6602ba9da2 100644
--- a/pkgs/development/python-modules/pydicom/default.nix
+++ b/pkgs/development/python-modules/pydicom/default.nix
@@ -4,6 +4,7 @@
 , isPy27
 , pytest
 , pytestrunner
+, pytestCheckHook
 , numpy
 , pillow
 }:
@@ -19,7 +20,10 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ numpy pillow ];
-  checkInputs = [ pytest pytestrunner ];
+
+  checkInputs = [ pytest pytestrunner pytestCheckHook ];
+  disabledTests = [ "test_invalid_bit_depth_raises" ];
+  # harmless failure; see https://github.com/pydicom/pydicom/issues/1119
 
   meta = with stdenv.lib; {
     homepage = "https://pydicom.github.io";
diff --git a/pkgs/development/python-modules/pydocstyle/default.nix b/pkgs/development/python-modules/pydocstyle/default.nix
index 1825c690f30..cef9e964425 100644
--- a/pkgs/development/python-modules/pydocstyle/default.nix
+++ b/pkgs/development/python-modules/pydocstyle/default.nix
@@ -19,11 +19,11 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ snowballstemmer ];
 
-  checkInputs = [ pytest pytestpep8 mock ];
+  checkInputs = [ pytest mock ];
 
   checkPhase = ''
     # test_integration.py installs packages via pip
-    py.test --pep8 --cache-clear -vv src/tests -k "not test_integration"
+    py.test --cache-clear -vv src/tests -k "not test_integration"
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pydsdl/default.nix b/pkgs/development/python-modules/pydsdl/default.nix
new file mode 100644
index 00000000000..655adecd5c8
--- /dev/null
+++ b/pkgs/development/python-modules/pydsdl/default.nix
@@ -0,0 +1,37 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder }:
+
+ buildPythonPackage rec {
+  pname = "pydsdl";
+  version = "1.4.2";
+  disabled = pythonOlder "3.5"; # only python>=3.5 is supported
+
+  src = fetchFromGitHub {
+    owner = "UAVCAN";
+    repo = pname;
+    rev = version;
+    sha256 = "03kbpzdrjzj5vpgz5rhc110pm1axdn3ynv88b42zq6iyab4k8k1x";
+  };
+
+  propagatedBuildInputs = [
+  ];
+
+  # allow for writable directory for darwin
+  preBuild = ''
+    export HOME=$TMPDIR
+  '';
+
+  # repo doesn't contain tests, ensure imports aren't broken
+  pythonImportsCheck = [
+    "pydsdl"
+  ];
+
+  meta = with lib; {
+    description = "A UAVCAN DSDL compiler frontend implemented in Python";
+    longDescription = ''
+      It supports all DSDL features defined in the UAVCAN specification.
+    '';
+    homepage = "https://uavcan.org";
+    maintainers = with maintainers; [ wucke13 ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/pydub/default.nix b/pkgs/development/python-modules/pydub/default.nix
index 8499db31e02..42d33c00cbe 100644
--- a/pkgs/development/python-modules/pydub/default.nix
+++ b/pkgs/development/python-modules/pydub/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pydub";
-  version = "0.24.0";
+  version = "0.24.1";
   # pypi version doesn't include required data files for tests
   src = fetchFromGitHub {
     owner = "jiaaro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0cnhkk44cn3wa4fmd1rwzdx2zgrn87qg25pbcp9wsisdlpn4bj6d";
+    sha256 = "1pv4n54kkjpbjlvwh9b6a7zyq1ylg0fjmd2q4ws9nc2a6mrcivhc";
   };
 
 
diff --git a/pkgs/development/python-modules/pyexcel-io/default.nix b/pkgs/development/python-modules/pyexcel-io/default.nix
new file mode 100644
index 00000000000..8a788402b49
--- /dev/null
+++ b/pkgs/development/python-modules/pyexcel-io/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, lml
+}:
+
+buildPythonPackage rec {
+  pname = "pyexcel-io";
+  version = "0.5.20";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "CN/jlVO5ljWbFD3j2exD4ZbxE41HyrtzrwShaCG4TXk=";
+  };
+
+  propagatedBuildInputs = [
+    lml
+  ];
+
+  # Tests depend on stuff that depends on this.
+  doCheck = false;
+
+  pythonImportsCheck = [ "pyexcel_io" ];
+
+  meta = {
+    description = "One interface to read and write the data in various excel formats, import the data into and export the data from databases";
+    homepage = "http://docs.pyexcel.org/";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ jtojnar ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyexcel-ods/default.nix b/pkgs/development/python-modules/pyexcel-ods/default.nix
new file mode 100644
index 00000000000..9e5b32ea867
--- /dev/null
+++ b/pkgs/development/python-modules/pyexcel-ods/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyexcel-io
+, odfpy
+, nose
+, pyexcel
+, pyexcel-xls
+, psutil
+}:
+
+buildPythonPackage rec {
+  pname = "pyexcel-ods";
+  version = "0.5.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "O+Uv2KrdvYvJKG9+sUj0VT1MlyUtaVw6nse5XmZmoiM=";
+  };
+
+  propagatedBuildInputs = [
+    pyexcel-io
+    odfpy
+  ];
+
+  checkInputs = [
+    nose
+    pyexcel
+    pyexcel-xls
+    psutil
+  ];
+
+  checkPhase = "nosetests";
+
+  meta = {
+    description = "Plug-in to pyexcel providing the capbility to read, manipulate and write data in ods formats using odfpy";
+    homepage = "http://docs.pyexcel.org/";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ jtojnar ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyexcel-xls/default.nix b/pkgs/development/python-modules/pyexcel-xls/default.nix
new file mode 100644
index 00000000000..2dd4533c2a9
--- /dev/null
+++ b/pkgs/development/python-modules/pyexcel-xls/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyexcel-io
+, xlrd
+, xlwt
+, nose
+, pyexcel
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "pyexcel-xls";
+  version = "0.5.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1Wyt6gpmBoRFaXbZgFJVTTu+KnivxfmpHIaR9iZghVU=";
+  };
+
+  propagatedBuildInputs = [
+    pyexcel-io
+    xlrd
+    xlwt
+  ];
+
+  checkInputs = [
+    nose
+    pyexcel
+    mock
+  ];
+
+  checkPhase = "nosetests";
+
+  meta = {
+    description = "A wrapper library to read, manipulate and write data in xls using xlrd and xlwt";
+    homepage = "http://docs.pyexcel.org/";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ jtojnar ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyexcel/default.nix b/pkgs/development/python-modules/pyexcel/default.nix
new file mode 100644
index 00000000000..71219c32ae5
--- /dev/null
+++ b/pkgs/development/python-modules/pyexcel/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, lml
+, pyexcel-io
+, texttable
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "pyexcel";
+  version = "0.6.4";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "pPNYnimHhW7SL6X6OLwagZoadTD7IdUSbO7vAqQPQu8=";
+  };
+
+  propagatedBuildInputs = [
+    lml
+    pyexcel-io
+    texttable
+  ];
+
+  checkInputs = [
+    nose
+  ];
+
+  # Tests depend on pyexcel-xls & co. causing circular dependency.
+  # https://github.com/pyexcel/pyexcel/blob/dev/tests/requirements.txt
+  doCheck = false;
+
+  pythonImportsCheck = [ "pyexcel" ];
+
+  checkPhase = "nosetests";
+
+  meta = {
+    description = "Single API for reading, manipulating and writing data in csv, ods, xls, xlsx and xlsm files";
+    homepage = "http://docs.pyexcel.org/";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ jtojnar ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyface/default.nix b/pkgs/development/python-modules/pyface/default.nix
index 6cf96f93a8f..284b8f0837a 100644
--- a/pkgs/development/python-modules/pyface/default.nix
+++ b/pkgs/development/python-modules/pyface/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "pyface";
-  version = "7.0.0";
+  version = "7.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9e00aba15de9c0e553dfcc7b346c3541c54f35054dd05b72a9e2343e340adf6f";
+    sha256 = "43943cc15889153b90191d9e1bd85e7a3709a6d57b6379220cb14017217fb999";
   };
 
   propagatedBuildInputs = [ setuptools six traits ];
diff --git a/pkgs/development/python-modules/pyfaidx/default.nix b/pkgs/development/python-modules/pyfaidx/default.nix
index 7188ac8ce4a..399d889db2b 100644
--- a/pkgs/development/python-modules/pyfaidx/default.nix
+++ b/pkgs/development/python-modules/pyfaidx/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pyfaidx";
-  version = "0.5.8";
+  version = "0.5.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "038xi3a6zvrxbyyfpp64ka8pcjgsdq4fgw9cl5lpxbvmm1bzzw2q";
+    sha256 = "eda8af04ba4da4fd63fdc35a62e0e41dfc06aa1a511728dfbdd7707e3b382855";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/pyfakefs/default.nix b/pkgs/development/python-modules/pyfakefs/default.nix
index 14c69fd799a..d38125e26b8 100644
--- a/pkgs/development/python-modules/pyfakefs/default.nix
+++ b/pkgs/development/python-modules/pyfakefs/default.nix
@@ -1,12 +1,12 @@
 { stdenv, buildPythonPackage, fetchPypi, python, pytest, glibcLocales, isPy37 }:
 
 buildPythonPackage rec {
-  version = "4.0.2";
+  version = "4.1.0";
   pname = "pyfakefs";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c415e1c737e3aa72b92af41832a7e0a2c325eb8d3a72a210750714e00fcaeace";
+    sha256 = "bbbaa8b622fa50751a5839350fff3c1f8b1bbd364cd40fd0c7442e18fe5edc8e";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyfritzhome/default.nix b/pkgs/development/python-modules/pyfritzhome/default.nix
new file mode 100644
index 00000000000..7c5dfecd269
--- /dev/null
+++ b/pkgs/development/python-modules/pyfritzhome/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, requests
+, nose, mock }:
+
+buildPythonPackage rec {
+  pname = "pyfritzhome";
+  version = "0.4.2";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+   inherit pname version;
+   sha256 = "0ncyv8svw0fhs01ijjkb1gcinb3jpyjvv9xw1bhnf4ri7b27g6ww";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  checkInputs = [
+    mock
+    nose
+  ];
+
+  checkPhase = ''
+    nosetests --with-coverage
+  '';
+
+  meta = with lib; {
+    description = "Python Library to access AVM FRITZ!Box homeautomation";
+    homepage = "https://github.com/hthiery/python-fritzhome";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyfxa/default.nix b/pkgs/development/python-modules/pyfxa/default.nix
index 0f964bfc9f9..eb5403c2b96 100644
--- a/pkgs/development/python-modules/pyfxa/default.nix
+++ b/pkgs/development/python-modules/pyfxa/default.nix
@@ -1,14 +1,14 @@
 { lib, buildPythonPackage, fetchPypi
 , requests, cryptography, pybrowserid, hawkauthlib, six
-, grequests, mock, responses, pytest }:
+, grequests, mock, responses, pytest, pyjwt }:
 
 buildPythonPackage rec {
   pname = "PyFxA";
-  version = "0.7.3";
+  version = "0.7.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f47f4285629fa6c033c79adc3fb90926c0818a42cfddb04d32818547362f1627";
+    sha256 = "6c85cd08cf05f7138dee1cf2a8a1d68fd428b7b5ad488917c70a2a763d651cdb";
   };
 
   postPatch = ''
@@ -17,15 +17,16 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
-    requests cryptography pybrowserid hawkauthlib six
+    pyjwt requests cryptography pybrowserid hawkauthlib six
   ];
 
   checkInputs = [
     grequests mock responses pytest
   ];
 
+  # test_oath is mostly network calls
   checkPhase = ''
-    pytest
+    pytest --ignore=fxa/tests/test_oauth.py
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pygls/default.nix b/pkgs/development/python-modules/pygls/default.nix
index 962803402e6..d563fa27669 100644
--- a/pkgs/development/python-modules/pygls/default.nix
+++ b/pkgs/development/python-modules/pygls/default.nix
@@ -4,14 +4,14 @@
 
 buildPythonPackage rec {
   pname = "pygls";
-  version = "0.8.1";
+  version = "0.9.0";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "openlawlibrary";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1853rfdks5n8nw6ig96j7his5kqd75hrvzvd0win4niycaqsag6m";
+    sha256 = "1wfp4hjin1mb6nkzhpfh5v8q8rwvn9zh0mwwj4dlxkqx5lp272hl";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pygobject/3.nix b/pkgs/development/python-modules/pygobject/3.nix
index 74606902722..9e38d640397 100644
--- a/pkgs/development/python-modules/pygobject/3.nix
+++ b/pkgs/development/python-modules/pygobject/3.nix
@@ -3,13 +3,13 @@ pycairo, cairo, which, ncurses, meson, ninja, isPy3k, gnome3 }:
 
 buildPythonPackage rec {
   pname = "pygobject";
-  version = "3.36.0";
+  version = "3.36.1";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1vysyr586mfjm7biraw1nynpw4f1qajynkm6m40ybadsnpgx50w6";
+    sha256 = "0b9CgC0c7BE7Wtqg579/N0W0RSHcIWNYjSdtXNYdcY8=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/python-modules/pygogo/default.nix b/pkgs/development/python-modules/pygogo/default.nix
new file mode 100644
index 00000000000..89031c9610a
--- /dev/null
+++ b/pkgs/development/python-modules/pygogo/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, pythonOlder
+, buildPythonPackage
+, fetchFromGitHub
+, pkutils
+  # Check Inputs
+, pytestCheckHook
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "pygogo";
+  version = "0.13.2";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "reubano";
+    repo = "pygogo";
+    rev = "v${version}";
+    sha256 = "19rdf4sjrm5lp1vq1bki21a9lrkzz8sgrfwgjdkq4sgy90hn1jn9";
+  };
+
+  nativeBuildInputs = [ pkutils ];
+
+  checkInputs = [ nose ];
+  checkPhase = "nosetests";
+  pythonImportsCheck = [ "pygogo" ];
+
+  meta = with lib; {
+    description = "A Python logging library with super powers";
+    homepage = "https://github.com/reubano/pygogo/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ drewrisinger ];
+  };
+}
diff --git a/pkgs/development/python-modules/pygraphviz/default.nix b/pkgs/development/python-modules/pygraphviz/default.nix
index 1a084f8a870..3a451f4af1e 100644
--- a/pkgs/development/python-modules/pygraphviz/default.nix
+++ b/pkgs/development/python-modules/pygraphviz/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pygraphviz";
-  version = "1.5";
+  version = "1.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "179i3mjprhn200gcj6jq7c4mdrzckyqlh1srz78hynnw0nijka2h";
+    sha256 = "411ae84a5bc313e3e1523a1cace59159f512336318a510573b47f824edef8860";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/pygrok/default.nix b/pkgs/development/python-modules/pygrok/default.nix
new file mode 100644
index 00000000000..8f694a117fe
--- /dev/null
+++ b/pkgs/development/python-modules/pygrok/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, lib, buildPythonPackage, fetchFromGitHub, regex, pytest }:
+
+buildPythonPackage rec {
+  pname = "pygrok";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "garyelephant";
+    repo = "pygrok";
+    rev = "v${version}";
+    sha256 = "07487rcmv74srnchh60jp0vg46g086qmpkaj8gxqhp9rj47r1s4m";
+  };
+
+  propagatedBuildInputs = [ regex ];
+
+  checkInputs =  [ pytest ];
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    maintainers = with maintainers; [ winpat ];
+    description = "A python implementation of jordansissel's grok regular expression library";
+    homepage = "https://github.com/garyelephant/pygrok";
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/python-modules/pyhomematic/default.nix b/pkgs/development/python-modules/pyhomematic/default.nix
index 14bf1cfe7be..3f12888d531 100644
--- a/pkgs/development/python-modules/pyhomematic/default.nix
+++ b/pkgs/development/python-modules/pyhomematic/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pyhomematic";
-  version = "0.1.67";
+  version = "0.1.68";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2d18e0059367e9e32d6472023322113fce431bcc72187b4a6eb7402fe5d2794b";
+    sha256 = "7f8ec68238a441cfe593fa9028509fd0c3dc67400b4dd520c8c02088f177302e";
   };
 
   # PyPI tarball does not include tests/ directory
diff --git a/pkgs/development/python-modules/pyhs100/default.nix b/pkgs/development/python-modules/pyhs100/default.nix
new file mode 100644
index 00000000000..2e6d7164b8b
--- /dev/null
+++ b/pkgs/development/python-modules/pyhs100/default.nix
@@ -0,0 +1,38 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, click, click-datetime, deprecation
+, pytest, voluptuous }:
+
+buildPythonPackage rec {
+  pname = "pyHS100";
+  version = "0.3.5.1";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "GadgetReactor";
+    repo = pname;
+    rev = version;
+    sha256 = "1vddr9sjn6337i1vx0mm7pb3qibvl2gx6nx18vm4fajgv9vcjxny";
+  };
+
+  propagatedBuildInputs = [
+    click
+    click-datetime
+    deprecation
+  ];
+
+  checkInputs = [
+    pytest
+    voluptuous
+  ];
+
+  checkPhase = ''
+    py.test pyHS100
+  '';
+
+  meta = with lib; {
+    description = "Python Library to control TPLink Switch (HS100 / HS110)";
+    homepage = "https://github.com/GadgetReactor/pyHS100";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyipp/default.nix b/pkgs/development/python-modules/pyipp/default.nix
new file mode 100644
index 00000000000..98bb6360ce5
--- /dev/null
+++ b/pkgs/development/python-modules/pyipp/default.nix
@@ -0,0 +1,40 @@
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27
+, aiohttp, deepmerge, yarl
+, aresponses, pytest, pytest-asyncio, pytestcov }:
+
+buildPythonPackage rec {
+  pname = "pyipp";
+  version = "0.11.0";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+   owner = "ctalkington";
+   repo = "python-ipp";
+   rev = version;
+   sha256 = "0ar3mkyfa9qi3av3885bvacpwlxh420if9ymdj8i4x06ymzc213d";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    deepmerge
+    yarl
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest
+    pytest-asyncio
+    pytestcov
+  ];
+
+  checkPhase = ''
+    pytest -q .
+  '';
+
+  meta = with lib; {
+    description = "Asynchronous Python client for Internet Printing Protocol (IPP)";
+    homepage = "https://github.com/ctalkington/python-ipp";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/pykeepass/default.nix b/pkgs/development/python-modules/pykeepass/default.nix
index 311417bf0e4..584c98f6cb0 100644
--- a/pkgs/development/python-modules/pykeepass/default.nix
+++ b/pkgs/development/python-modules/pykeepass/default.nix
@@ -1,19 +1,23 @@
 { lib, fetchPypi, buildPythonPackage
-, lxml, pycryptodome, construct
+, lxml, pycryptodomex, construct
 , argon2_cffi, dateutil, future
 }:
 
 buildPythonPackage rec {
   pname   = "pykeepass";
-  version = "3.2.0";
+  version = "3.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ysjn92bixq8wkwhlbhrjj9z0h80qnlnj7ks5478ndkzdw5gxvm1";
+    sha256 = "b3e07eb2dd3aeb1dfa1a2d2d17be77066ee560c1e770f1c72d7ea5608117d284";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py --replace "==" ">="
+  '';
+
   propagatedBuildInputs = [
-    lxml pycryptodome construct
+    lxml pycryptodomex construct
     argon2_cffi dateutil future
   ];
 
diff --git a/pkgs/development/python-modules/pykwalify/default.nix b/pkgs/development/python-modules/pykwalify/default.nix
new file mode 100644
index 00000000000..d2b31ebbf4c
--- /dev/null
+++ b/pkgs/development/python-modules/pykwalify/default.nix
@@ -0,0 +1,53 @@
+{ lib, buildPythonPackage, fetchPypi
+, dateutil, docopt, pyyaml
+, pytest, testfixtures
+}:
+
+buildPythonPackage rec {
+  version = "1.7.0";
+  pname = "pykwalify";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1cnfzkg1b01f825ikpw2fhjclf9c8akxjfrbd1vc22x1lg2kk2vy";
+  };
+
+  propagatedBuildInputs = [
+    dateutil
+    docopt
+    pyyaml
+  ];
+
+  checkInputs = [
+    pytest
+    testfixtures
+  ];
+
+  checkPhase = ''
+    pytest \
+      -k 'not test_multi_file_support'
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/Grokzen/pykwalify";
+    description = "YAML/JSON validation library";
+    longDescription = ''
+      This framework is a port with a lot of added functionality
+      of the Java version of the framework kwalify that can be found at
+      http://www.kuwata-lab.com/kwalify/
+
+      The original source code can be found at
+      http://sourceforge.net/projects/kwalify/files/kwalify-java/0.5.1/
+
+      The source code of the latest release that has been used can be found at
+      https://github.com/sunaku/kwalify.
+      Please note that source code is not the original authors code
+      but a fork/upload of the last release available in Ruby.
+
+      The schema this library is based on and extended from:
+      http://www.kuwata-lab.com/kwalify/ruby/users-guide.01.html#schema
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ siriobalmelli ];
+  };
+}
diff --git a/pkgs/development/python-modules/pylast/default.nix b/pkgs/development/python-modules/pylast/default.nix
index 060dc02a03a..10449717ea4 100644
--- a/pkgs/development/python-modules/pylast/default.nix
+++ b/pkgs/development/python-modules/pylast/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "pylast";
-  version = "3.2.1";
+  version = "3.3.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3c984be04c9a22a884c3106a7f75749466d27c68870d6fb7e1f56b71becea7c0";
+    sha256 = "1wqd23bbk5si2mcmswsi486zqnydjjf8g7924gcz6cc1x036lasd";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/pylatexenc/default.nix b/pkgs/development/python-modules/pylatexenc/default.nix
index 02a0f875836..6b56a42246f 100644
--- a/pkgs/development/python-modules/pylatexenc/default.nix
+++ b/pkgs/development/python-modules/pylatexenc/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "pylatexenc";
-  version = "2.4";
+  version = "2.7";
 
   src = fetchFromGitHub {
     owner = "phfaist";
     repo = "pylatexenc";
     rev = "v${version}";
-    sha256 = "0i4frypbv90mjir8bkp03cwkvwhgvc9p3fw6q2jz1dn7fw94v2rv";
+    sha256 = "1hpcwbknfah3mky2m4asw15b9qdvv4k5ni0js764n1jpi83m1zgk";
   };
 
   pythonImportsCheck = [ "pylatexenc" ];
@@ -26,4 +26,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ drewrisinger ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/pylibftdi/default.nix b/pkgs/development/python-modules/pylibftdi/default.nix
index 54058ae1982..c001594d625 100644
--- a/pkgs/development/python-modules/pylibftdi/default.nix
+++ b/pkgs/development/python-modules/pylibftdi/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pylibftdi";
-  version = "0.18.1";
+  version = "0.19.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17c5h4xz1grynbpffngjflk3dlw2g2zbhkwb7h5v4n9rjdv41l5x";
+    sha256 = "bb0ec74df292ef884aa37bf1e98fb9df4d338718e1559eebda363317a792123e";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pylint-django/default.nix b/pkgs/development/python-modules/pylint-django/default.nix
index af4b0177eb2..c5dfbd48fe1 100644
--- a/pkgs/development/python-modules/pylint-django/default.nix
+++ b/pkgs/development/python-modules/pylint-django/default.nix
@@ -6,18 +6,23 @@
 # pythonPackages
 , django
 , pylint-plugin-utils
+
+# pythonPackages for checkInputs
+, coverage
+, factory_boy
+, pytest
 }:
 
 buildPythonPackage rec {
   pname = "pylint-django";
-  version = "2.0.15";
+  version = "2.3.0";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "PyCQA";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wpzd3j01njxfclbhxz31s5clc7il67nhm4lz89q2aaj19c0xzsa";
+    sha256 = "1088waraiigi2bnlighn7bvnvqmpx5fbw70c8jd8sh25mj38wgly";
   };
 
   propagatedBuildInputs = [
@@ -25,8 +30,14 @@ buildPythonPackage rec {
     pylint-plugin-utils
   ];
 
-  # Testing requires checkout from other repositories
-  doCheck = false;
+  checkInputs = [ coverage factory_boy pytest ];
+
+  # Check command taken from scripts/test.sh
+  # Skip test external_django_tables2_noerror_meta_class:
+  # requires an unpackaged django_tables2
+  checkPhase = ''
+      python pylint_django/tests/test_func.py -v -k "not tables2"
+  '';
 
   meta = with lib; {
     description = "A Pylint plugin to analyze Django applications";
diff --git a/pkgs/development/python-modules/pylint/default.nix b/pkgs/development/python-modules/pylint/default.nix
index 1986dd4936c..6babcb15ba4 100644
--- a/pkgs/development/python-modules/pylint/default.nix
+++ b/pkgs/development/python-modules/pylint/default.nix
@@ -3,20 +3,20 @@
 
 buildPythonPackage rec {
   pname = "pylint";
-  version = "2.5.2";
+  version = "2.5.3";
 
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b95e31850f3af163c2283ed40432f053acbc8fc6eba6a069cb518d9dbf71848c";
+    sha256 = "7dd78437f2d8d019717dbf287772d0b2dbdfd13fc016aa7faa08d67bccc46adc";
   };
 
-  nativeBuildInputs = [ pytestrunner toml ];
+  nativeBuildInputs = [ pytestrunner ];
 
   checkInputs = [ pytestCheckHook pytest-benchmark ];
 
-  propagatedBuildInputs = [ astroid isort mccabe ];
+  propagatedBuildInputs = [ astroid isort mccabe toml ];
 
   postPatch = lib.optionalString stdenv.isDarwin ''
     # Remove broken darwin test
diff --git a/pkgs/development/python-modules/pyls-black/default.nix b/pkgs/development/python-modules/pyls-black/default.nix
index 478b08b2647..c59a67606ee 100644
--- a/pkgs/development/python-modules/pyls-black/default.nix
+++ b/pkgs/development/python-modules/pyls-black/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "pyls-black";
-  version = "0.4.4";
+  version = "0.4.6";
 
   src = fetchFromGitHub {
     owner = "rupert";
     repo = "pyls-black";
     rev = "v${version}";
-    sha256 = "1ynynay9g6yma39szbzf15ypq3c72fg1i0kjmq1dwxarj68i2gf9";
+    sha256 = "0cjf0mjn156qp0x6md6mncs31hdpzfim769c2lixaczhyzwywqnj";
   };
 
   disabled = !isPy3k;
@@ -27,9 +27,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/rupert/pyls-black";
     description = "Black plugin for the Python Language Server";
     license = licenses.mit;
-    # Not compatible with 0.33.1
-    # https://github.com/rupert/pyls-black/issues/24
-    broken = true; # since 2020-06-16
     maintainers = [ maintainers.mic92 ];
   };
 }
diff --git a/pkgs/development/python-modules/pymatgen/default.nix b/pkgs/development/python-modules/pymatgen/default.nix
index 2cd0a0a020f..635d951f56e 100644
--- a/pkgs/development/python-modules/pymatgen/default.nix
+++ b/pkgs/development/python-modules/pymatgen/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pymatgen";
-  version = "2020.4.29";
+  version = "2020.8.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cf9c89f2c742acf524f3a778cd269164abf582e87ab5f297cd83802fe00c309d";
+    sha256 = "23e5885e15195b37ce4c16ef93f474f741cb98451fa8dd4c319ec121f4887256";
   };
 
   nativeBuildInputs = [ glibcLocales ];
diff --git a/pkgs/development/python-modules/pymavlink/default.nix b/pkgs/development/python-modules/pymavlink/default.nix
index 51b057e740c..0522e0791fc 100644
--- a/pkgs/development/python-modules/pymavlink/default.nix
+++ b/pkgs/development/python-modules/pymavlink/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pymavlink";
-  version = "2.4.8";
+  version = "2.4.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1djzr6cg3l19icwplmpii7zzr8gms9qcc2lfr8yc05siqzclk5xk";
+    sha256 = "6049f270aa0a1013c7dcd32b9f4756d79b6a2ccf73babeca2c46b9e391e644fe";
   };
 
   propagatedBuildInputs = [ future lxml ];
diff --git a/pkgs/development/python-modules/pymc3/default.nix b/pkgs/development/python-modules/pymc3/default.nix
index 0c99b501c3f..bda74c5063a 100644
--- a/pkgs/development/python-modules/pymc3/default.nix
+++ b/pkgs/development/python-modules/pymc3/default.nix
@@ -18,12 +18,12 @@
 
 buildPythonPackage rec {
   pname = "pymc3";
-  version = "3.8";
+  version = "3.9.3";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bb2915e4a29877c681ead13932b0b7d276f7f496e9c3f09ba96b977c99caf00";
+    sha256 = "abe046f5a5d0e5baee80b7c4bc0a4c218f61b517b62d77be4f89cf4784c27d78";
   };
 
   # No need for coverage stats in Nix builds
diff --git a/pkgs/development/python-modules/pymongo/default.nix b/pkgs/development/python-modules/pymongo/default.nix
index b7da796d3bb..2838362f1db 100644
--- a/pkgs/development/python-modules/pymongo/default.nix
+++ b/pkgs/development/python-modules/pymongo/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pymongo";
-  version = "3.10.1";
+  version = "3.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "993257f6ca3cde55332af1f62af3e04ca89ce63c08b56a387cdd46136c72f2fa";
+    sha256 = "076a7f2f7c251635cf6116ac8e45eefac77758ee5a77ab7bd2f63999e957613b";
   };
 
   # Tests call a running mongodb instance
diff --git a/pkgs/development/python-modules/pymupdf/default.nix b/pkgs/development/python-modules/pymupdf/default.nix
index c91892585d6..bc2f2c6e95f 100644
--- a/pkgs/development/python-modules/pymupdf/default.nix
+++ b/pkgs/development/python-modules/pymupdf/default.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPythonPackage, fetchPypi, mupdf, swig }:
 buildPythonPackage rec {
   pname = "PyMuPDF";
-  version = "1.17.0";
+  version = "1.17.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0de92a8fb65db6e661594cc5865a340a2daac3cb9bb58e030820769ece1343c1";
+    sha256 = "5eef4ff61698016a296932858625a5a0039b923ba692043e2c98ca02966f1da2";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/pymysql/default.nix b/pkgs/development/python-modules/pymysql/default.nix
index a43dcfb26fc..c0419d025b0 100644
--- a/pkgs/development/python-modules/pymysql/default.nix
+++ b/pkgs/development/python-modules/pymysql/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "PyMySQL";
-  version = "0.9.3";
+  version = "0.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ry8lxgdc1p3k7gbw20r405jqi5lvhi5wk83kxdbiv8xv3f5kh6q";
+    sha256 = "0dwqw556qmjl5359wsylnh5kmw3ns8qkw1pn1gwf0l70hjy70h71";
   };
 
   propagatedBuildInputs = [ cryptography ];
diff --git a/pkgs/development/python-modules/pymystem3/default.nix b/pkgs/development/python-modules/pymystem3/default.nix
index 2b00dd7951d..8c909b868b3 100644
--- a/pkgs/development/python-modules/pymystem3/default.nix
+++ b/pkgs/development/python-modules/pymystem3/default.nix
@@ -1,6 +1,7 @@
 { lib
 , fetchPypi
 , buildPythonPackage
+, isPy3k
 , requests
 , flake8
 , mock
@@ -19,6 +20,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests ];
   checkInputs = [ flake8 mock pytest ];
+  doCheck = isPy3k; # fails on linting
 
   postPatch = ''
     sed -i 's#^_mystem_info = .*#_mystem_info = ["${mystem}/bin", "${mystem}/bin/mystem"]#' pymystem3/constants.py
diff --git a/pkgs/development/python-modules/pynamodb/default.nix b/pkgs/development/python-modules/pynamodb/default.nix
index 7e83976cc4d..53df38b5836 100644
--- a/pkgs/development/python-modules/pynamodb/default.nix
+++ b/pkgs/development/python-modules/pynamodb/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "pynamodb";
-  version = "4.3.2";
+  version = "4.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "58bd62089741ef689f845d6ca826ab50e39b9a0a8ae3bd7a84dc167c1a4ec8fa";
+    sha256 = "ced47c200073dbbfafb10b26931b9c9bf3c6b898f41dffa3676f5c2e2eddc2f0";
   };
 
   propagatedBuildInputs = [ python-dateutil botocore ];
diff --git a/pkgs/development/python-modules/pynmea2/default.nix b/pkgs/development/python-modules/pynmea2/default.nix
index 71d874740c5..de208c7a9db 100644
--- a/pkgs/development/python-modules/pynmea2/default.nix
+++ b/pkgs/development/python-modules/pynmea2/default.nix
@@ -16,6 +16,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/Knio/pynmea2";
     description = "Python library for the NMEA 0183 protcol";
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ geistesk ];
+    maintainers = with lib.maintainers; [ oxzi ];
   };
 }
diff --git a/pkgs/development/python-modules/pyobjc/default.nix b/pkgs/development/python-modules/pyobjc/default.nix
index af0c784bbf5..d66425fa369 100644
--- a/pkgs/development/python-modules/pyobjc/default.nix
+++ b/pkgs/development/python-modules/pyobjc/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "pyobjc";
-  version = "6.2";
+  version = "6.2.2";
 
   # 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 = "6b514136f538fb5c9c80e310641907d0196c8381602395ac2ee407f32f07ba13";
+    sha256 = "d5b87e9fa4cc9b51bf37f9a461887e2d8b9ae7e6bb45675f8edbe35ea6770455";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/pyopencl/default.nix b/pkgs/development/python-modules/pyopencl/default.nix
index e1b6abb7527..e5eddd81d99 100644
--- a/pkgs/development/python-modules/pyopencl/default.nix
+++ b/pkgs/development/python-modules/pyopencl/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pyopencl";
-  version = "2020.1";
+  version = "2020.2.1";
 
   checkInputs = [ pytest ];
   buildInputs = [ opencl-headers ocl-icd pybind11 ];
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7513f7054f4eeb5361de1f5113883145fc67dbabde73a2148f221ae05af4d22c";
+    sha256 = "deb6c50f37f8f88960a943b379eca8c0a9a80634cf60e09aee691a7453ae202e";
   };
 
   # py.test is not needed during runtime, so remove it from `install_requires`
diff --git a/pkgs/development/python-modules/pyotp/default.nix b/pkgs/development/python-modules/pyotp/default.nix
index c78b7fb1459..1a3d674779b 100644
--- a/pkgs/development/python-modules/pyotp/default.nix
+++ b/pkgs/development/python-modules/pyotp/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyotp";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "18d13ikra1iq0xyfqfm72zhgwxi2qi9ps6z1a6zmqp4qrn57wlzw";
+    sha256 = "01eceab573181188fe038d001e42777884a7f5367203080ef5bda0e30fe82d28";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pypcap/default.nix b/pkgs/development/python-modules/pypcap/default.nix
index 06a669e3f4f..08c90d82898 100644
--- a/pkgs/development/python-modules/pypcap/default.nix
+++ b/pkgs/development/python-modules/pypcap/default.nix
@@ -34,6 +34,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/pynetwork/pypcap";
     description = "Simplified object-oriented Python wrapper for libpcap";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/pkgs/development/python-modules/pyphotonfile/default.nix b/pkgs/development/python-modules/pyphotonfile/default.nix
new file mode 100644
index 00000000000..7a350bd3b13
--- /dev/null
+++ b/pkgs/development/python-modules/pyphotonfile/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pillow
+, numpy
+}:
+let
+  version = "0.2.1";
+in
+buildPythonPackage {
+  pname = "pyphotonfile";
+  inherit version;
+  propagatedBuildInputs = [ pillow numpy ];
+
+  src = fetchFromGitHub {
+    owner = "fookatchu";
+    repo = "pyphotonfile";
+    rev = "v${version}";
+    sha256 = "1hh1fcn7q3kyk2413pjs18xnxvzrchrisbpj2cd59jrdp0qzgv2s";
+  };
+
+  meta = with lib; {
+    maintainers = [ maintainers.cab404 ];
+    license = licenses.gpl3Plus;
+    description = "Library for reading and writing files for the Anycubic Photon 3D-Printer";
+    homepage = "https://github.com/fookatchu/pyphotonfile";
+  };
+
+}
diff --git a/pkgs/development/python-modules/pypubsub/default.nix b/pkgs/development/python-modules/pypubsub/default.nix
new file mode 100644
index 00000000000..fd19167a3e9
--- /dev/null
+++ b/pkgs/development/python-modules/pypubsub/default.nix
@@ -0,0 +1,38 @@
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27, pytest }:
+
+buildPythonPackage rec {
+  pname = "pypubsub";
+  version = "4.0.3";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "schollii";
+    repo = "pypubsub";
+    rev = "v4.0.3";
+    sha256 = "02j74w28wzmdvxkk8i561ywjgizjifq3hgcl080yj0rvkd3wivlb";
+  };
+
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    cd tests/suite
+    py.test
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/schollii/pypubsub";
+    description = "Python 3 publish-subcribe library";
+    longDescription = ''
+     Provides a publish-subscribe API to facilitate event-based or
+     message-based  architecture in a single-process application. It is pure
+     Python  and works on Python 3.3+. It is centered on the notion of a topic;
+     senders publish messages of a given topic, and listeners subscribe to
+     messages of a given topic, all inside the same process. The package also
+     supports a variety of advanced features that facilitate debugging and
+     maintaining topics and messages in larger desktop- or server-based
+     applications.
+    '';
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ tfmoraes ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyqtgraph/default.nix b/pkgs/development/python-modules/pyqtgraph/default.nix
index 3d7fe0bcc5f..d1850c1288d 100644
--- a/pkgs/development/python-modules/pyqtgraph/default.nix
+++ b/pkgs/development/python-modules/pyqtgraph/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "pyqtgraph";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4c08ab34881fae5ecf9ddfe6c1220b9e41e6d3eb1579a7d8ef501abb8e509251";
+    sha256 = "0p5k73wjfh0zzjvby8b5107cx7x0c2rdj66zh1nc8y95i0anf2na";
   };
 
   propagatedBuildInputs = [ scipy numpy pyqt4 pyopengl ];
diff --git a/pkgs/development/python-modules/pyqtwebengine/default.nix b/pkgs/development/python-modules/pyqtwebengine/default.nix
index 3c0ae904557..ff511103e55 100644
--- a/pkgs/development/python-modules/pyqtwebengine/default.nix
+++ b/pkgs/development/python-modules/pyqtwebengine/default.nix
@@ -10,14 +10,19 @@ let
 
 in buildPythonPackage rec {
   pname = "PyQtWebEngine";
-  version = "5.14.0";
+  version = "5.15.0";
   format = "other";
 
   src = pythonPackages.fetchPypi {
     inherit pname version;
-    sha256 = "14hw49akb35n9pgiw564x8ykmsifihn9p2ax2x4zmywb3w2ra5g1";
+    sha256 = "0xdzhl07x3mzfnr5cf4d640168vxi7fyl0fz1pvpbgs0irl14237";
   };
 
+  patches = [
+    # source: https://www.riverbankcomputing.com/pipermail/pyqt/2020-June/042985.html
+    ./fix-build-with-qt-514.patch
+  ];
+
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyqtwebengine/fix-build-with-qt-514.patch b/pkgs/development/python-modules/pyqtwebengine/fix-build-with-qt-514.patch
new file mode 100644
index 00000000000..1ae911c1481
--- /dev/null
+++ b/pkgs/development/python-modules/pyqtwebengine/fix-build-with-qt-514.patch
@@ -0,0 +1,31 @@
+diff --git a/sip/QtWebEngineWidgets/qwebenginecertificateerror.sip b/sip/QtWebEngineWidgets/qwebenginecertificateerror.sip
+index 5fb508f..7a4654a 100644
+--- a/sip/QtWebEngineWidgets/qwebenginecertificateerror.sip
++++ b/sip/QtWebEngineWidgets/qwebenginecertificateerror.sip
+@@ -48,7 +48,7 @@ public:
+ %If (QtWebEngine_5_8_0 -)
+         CertificateTransparencyRequired,
+ %End
+-%If (QtWebEngine_5_14_0 -)
++%If (QtWebEngine_5_15_0 -)
+         CertificateKnownInterceptionBlocked,
+ %End
+     };
+diff --git a/sip/QtWebEngineWidgets/qwebenginepage.sip b/sip/QtWebEngineWidgets/qwebenginepage.sip
+index 0dcbed2..9aa3443 100644
+--- a/sip/QtWebEngineWidgets/qwebenginepage.sip
++++ b/sip/QtWebEngineWidgets/qwebenginepage.sip
+@@ -663,10 +663,10 @@ signals:
+ %End
+
+ public:
+-%If (QtWebEngine_5_14_0 -)
++%If (QtWebEngine_5_15_0 -)
+     qint64 renderProcessPid() const;
+ %End
+-%If (QtWebEngine_5_14_0 -)
++%If (QtWebEngine_5_15_0 -)
+     void renderProcessPidChanged(qint64 pid);
+ %End
+ };
+
diff --git a/pkgs/development/python-modules/pyro-ppl/default.nix b/pkgs/development/python-modules/pyro-ppl/default.nix
index 81d4c47652a..c3157c3d301 100644
--- a/pkgs/development/python-modules/pyro-ppl/default.nix
+++ b/pkgs/development/python-modules/pyro-ppl/default.nix
@@ -1,12 +1,12 @@
 { buildPythonPackage, fetchPypi, lib, pytorch, contextlib2
 , graphviz, networkx, six, opt-einsum, tqdm }:
 buildPythonPackage rec {
-  version = "1.3.1";
+  version = "1.4.0";
   pname = "pyro-ppl";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "a034d9311d4715a2e8e127e0a4dd2996cbd34c4b85ac57b02b277c176b0a62ff";
+    sha256 = "e863321bee141fb8d20d621aedc5925c472e06c08988447490115f54a31487ad";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyro5/default.nix b/pkgs/development/python-modules/pyro5/default.nix
index bb3c2c895b3..5afce4a37da 100644
--- a/pkgs/development/python-modules/pyro5/default.nix
+++ b/pkgs/development/python-modules/pyro5/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "Pyro5";
-  version = "5.10";
+  version = "5.11";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e518e2a3375bc04c073f7c8c82509d314b00fa2f65cead9f134ebe42a922b360";
+    sha256 = "867cdd291d85560373e0c468da7fd18754f2568ef60e0bc504af42f391d7a3e5";
   };
 
   propagatedBuildInputs = [ serpent ];
diff --git a/pkgs/development/python-modules/pyroute2/default.nix b/pkgs/development/python-modules/pyroute2/default.nix
index 0a28ef6369b..04d66fb87ae 100644
--- a/pkgs/development/python-modules/pyroute2/default.nix
+++ b/pkgs/development/python-modules/pyroute2/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyroute2";
-  version = "0.5.12";
+  version = "0.5.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1lry042qsamdzyw6zpmdld0v14g6cl05jsr9qdb7h5wnahf80mq1";
+    sha256 = "518365f3313e73b0f024b9fa7a580b29bfa2fe2c5230be0bc69c068bbf6637e9";
   };
 
   # requires root priviledges
diff --git a/pkgs/development/python-modules/pyscard/default.nix b/pkgs/development/python-modules/pyscard/default.nix
index 4bda0b3c65c..d563a62a46b 100644
--- a/pkgs/development/python-modules/pyscard/default.nix
+++ b/pkgs/development/python-modules/pyscard/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, swig, pcsclite, PCSC }:
+{ stdenv, fetchPypi, fetchpatch, buildPythonPackage, swig, pcsclite, PCSC }:
 
 let
   # Package does not support configuring the pcsc library.
@@ -30,6 +30,21 @@ buildPythonPackage rec {
   NIX_CFLAGS_COMPILE = optionalString (! withApplePCSC)
     "-I ${getDev pcsclite}/include/PCSC";
 
+  # The error message differs depending on the macOS host version.
+  # Since Nix reports a constant host version, but proxies to the
+  # underlying library, it's not possible to determine the correct
+  # expected error message.  This patch allows both errors to be
+  # accepted.
+  # See: https://github.com/LudovicRousseau/pyscard/issues/77
+  # Building with python from nix on macOS version 10.13 or
+  # greater still causes this issue to occur.
+  patches = optionals withApplePCSC [
+    (fetchpatch {
+      url = "https://github.com/LudovicRousseau/pyscard/commit/945e9c4cd4036155691f6ce9706a84283206f2ef.patch";
+      sha256 = "19n8w1wzn85zywr6xf04d8nfg7sgzjyvxp1ccp3rgfr4mcc36plc";
+    })
+  ];
+
   propagatedBuildInputs = if withApplePCSC then [ PCSC ] else [ pcsclite ];
   nativeBuildInputs = [ swig ];
 
diff --git a/pkgs/development/python-modules/pyscard/ignore-macos-bug.patch b/pkgs/development/python-modules/pyscard/ignore-macos-bug.patch
deleted file mode 100644
index 62b20477c9f..00000000000
--- a/pkgs/development/python-modules/pyscard/ignore-macos-bug.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/test/test_SCardGetErrorMessage.py b/test/test_SCardGetErrorMessage.py
-old mode 100644
-new mode 100755
-index c6fe755..c1217f5
---- a/test/test_SCardGetErrorMessage.py
-+++ b/test/test_SCardGetErrorMessage.py
-@@ -29,12 +29,10 @@ class TestError(unittest.TestCase):
-         self.assertEqual(res, expected)
- 
-         res = SCardGetErrorMessage(1)
-+        expected = "Unknown error: 0x00000001"
-         # macOS bug not yet fixed
--        if get_platform().startswith('macosx-') and get_platform() < 'macosx-10.13':
--            expected = "Unkown error: 0x00000001"
--        else:
--            expected = "Unknown error: 0x00000001"
--        self.assertEqual(res, expected)
-+        macos_bug_expected = "Unkown error: 0x00000001"
-+        self.assertIn(res, [expected, macos_bug_expected])
- 
- 
- if __name__ == '__main__':
diff --git a/pkgs/development/python-modules/pysdl2/default.nix b/pkgs/development/python-modules/pysdl2/default.nix
index acc27811b28..b22da8b83ac 100644
--- a/pkgs/development/python-modules/pysdl2/default.nix
+++ b/pkgs/development/python-modules/pysdl2/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "PySDL2";
-  version = "0.9.6";
+  version = "0.9.7";
   # The tests use OpenGL using find_library, which would have to be
   # patched; also they seem to actually open X windows and test stuff
   # like "screensaver disabling", which would have to be cleverly
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "08r1v9wdq8pzds4g3sng2xgh1hlzfs2z7qgy5a6b0xrs96swlamm";
+    sha256 = "e4fcc8aa1108e4917cb56794575ee08c2a3d9c2c52620474e3ecc8538dadf209";
   };
 
   # Deliberately not in propagated build inputs; users can decide
diff --git a/pkgs/development/python-modules/pyside2-tools/default.nix b/pkgs/development/python-modules/pyside2-tools/default.nix
index a96ea5d32ff..9f1f94ffecb 100644
--- a/pkgs/development/python-modules/pyside2-tools/default.nix
+++ b/pkgs/development/python-modules/pyside2-tools/default.nix
@@ -6,6 +6,13 @@ stdenv.mkDerivation {
 
   inherit (pyside2) version src;
 
+  patches = [
+    # Upstream has a crazy build system only geared towards producing binary
+    # wheels distributed via pypi.  For this, they copy the `uic` and `rcc`
+    # binaries to the wheel.
+    ./remove_hacky_binary_copying.patch
+  ];
+
   postPatch = ''
     cd sources/pyside2-tools
   '';
@@ -18,8 +25,16 @@ stdenv.mkDerivation {
     "-DBUILD_TESTS=OFF"
   ];
 
+  # 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`
+  # build also creates a few wrapper scripts, which we replicate here:
   postInstall = ''
     rm $out/bin/pyside_tool.py
+
+    for tool in uic rcc; do
+      makeWrapper "$(command -v $tool)" $out/bin/pyside2-$tool --add-flags "-g python"
+    done
   '';
 
   postFixup = ''
diff --git a/pkgs/development/python-modules/pyside2-tools/remove_hacky_binary_copying.patch b/pkgs/development/python-modules/pyside2-tools/remove_hacky_binary_copying.patch
new file mode 100644
index 00000000000..19dd8aaf101
--- /dev/null
+++ b/pkgs/development/python-modules/pyside2-tools/remove_hacky_binary_copying.patch
@@ -0,0 +1,50 @@
+--- pyside-setup-opensource-src-5.14.2/sources/pyside2-tools/CMakeLists.txt~	2020-07-17 10:51:14.498291075 +0200
++++ pyside-setup-opensource-src-5.14.2/sources/pyside2-tools/CMakeLists.txt	2020-07-17 10:52:20.165336508 +0200
+@@ -46,47 +46,6 @@
+     set(EXE_EXT "")
+ endif()
+ 
+-set(TOOLS_PATH "${_qt5Core_install_prefix}/bin")
+-set(UIC_PATH "${TOOLS_PATH}/uic${EXE_EXT}")
+-set(RCC_PATH "${TOOLS_PATH}/rcc${EXE_EXT}")
+-if (APPLE)
+-    set(DESIGNER_PATH "${TOOLS_PATH}/Designer.app")
+-else()
+-    set(DESIGNER_PATH "${TOOLS_PATH}/designer${EXE_EXT}")
+-endif()
+-
+-install(FILES "${UIC_PATH}"
+-        DESTINATION bin
+-        PERMISSIONS
+-        OWNER_EXECUTE OWNER_WRITE OWNER_READ
+-        GROUP_EXECUTE GROUP_READ
+-        WORLD_EXECUTE WORLD_READ)
+-
+-install(FILES "${RCC_PATH}"
+-        DESTINATION bin
+-        PERMISSIONS
+-        OWNER_EXECUTE OWNER_WRITE OWNER_READ
+-        GROUP_EXECUTE GROUP_READ
+-        WORLD_EXECUTE WORLD_READ)
+-
+-if (EXISTS ${DESIGNER_PATH})
+-    if (APPLE)
+-        install(DIRECTORY "${DESIGNER_PATH}"
+-                DESTINATION bin
+-                FILE_PERMISSIONS
+-                OWNER_EXECUTE OWNER_WRITE OWNER_READ
+-                GROUP_EXECUTE GROUP_READ
+-                WORLD_EXECUTE WORLD_READ)
+-    else()
+-        install(FILES "${DESIGNER_PATH}"
+-                DESTINATION bin
+-                PERMISSIONS
+-                OWNER_EXECUTE OWNER_WRITE OWNER_READ
+-                GROUP_EXECUTE GROUP_READ
+-                WORLD_EXECUTE WORLD_READ)
+-    endif()
+-endif()
+-
+ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake"
+                "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
+                IMMEDIATE @ONLY)
diff --git a/pkgs/development/python-modules/pyside2/default.nix b/pkgs/development/python-modules/pyside2/default.nix
index 8134e8a573a..6d8b828fb95 100644
--- a/pkgs/development/python-modules/pyside2/default.nix
+++ b/pkgs/development/python-modules/pyside2/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pyside2";
-  version = "5.12.3";
+  version = "5.15.0";
 
   src = fetchurl {
-    url = "https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${version}-src/pyside-setup-everywhere-src-${version}.tar.xz";
-    sha256 = "0hk89jm8pa0q6kifask5rrffa3bvx02dg2f97ibv7wds9dysnyjg";
+    url = "https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${version}-src/pyside-setup-opensource-src-${version}.tar.xz";
+    sha256 = "0s3bgddcsf6w297nyxv08xpc2nnr3sli980p24nf4xivvr9yxkgi";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/pyside2/dont_ignore_optional_modules.patch b/pkgs/development/python-modules/pyside2/dont_ignore_optional_modules.patch
index 681e16a2bfd..c9f17bea71b 100644
--- a/pkgs/development/python-modules/pyside2/dont_ignore_optional_modules.patch
+++ b/pkgs/development/python-modules/pyside2/dont_ignore_optional_modules.patch
@@ -1,6 +1,6 @@
---- pyside-setup-everywhere-src-5.12.3/sources/pyside2/CMakeLists.txt~	2019-06-15 19:07:48.368704430 +0200
-+++ pyside-setup-everywhere-src-5.12.3/sources/pyside2/CMakeLists.txt	2019-06-15 19:08:04.429489908 +0200
-@@ -219,7 +219,7 @@
+--- pyside-setup-opensource-src-5.14.2/sources/cmake_helpers/helpers.cmake~	2020-07-17 10:29:30.555285529 +0200
++++ pyside-setup-opensource-src-5.14.2/sources/cmake_helpers/helpers.cmake	2020-07-17 10:29:49.817003683 +0200
+@@ -139,7 +139,7 @@
      # If the module was found, and also the module path is the same as the
      # Qt5Core base path, we will generate the list with the modules to be installed
      set(looked_in_message ". Looked in: ${${_name_dir}}")
diff --git a/pkgs/development/python-modules/pysingleton/default.nix b/pkgs/development/python-modules/pysingleton/default.nix
new file mode 100644
index 00000000000..22e4ade4a88
--- /dev/null
+++ b/pkgs/development/python-modules/pysingleton/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pysingleton";
+  version = "0.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "5776e7a4ba0bab26709da604f4e648c5814385fef34010723db3da0d41b0dbcc";
+  };
+
+  pythonImportsCheck = [ "singleton" ];
+
+  # No tests in the Pypi package.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Provides a decorator to create thread-safe singleton classes";
+    homepage = "https://github.com/timofurrer/pysingleton";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/pkgs/development/python-modules/pysnow/default.nix b/pkgs/development/python-modules/pysnow/default.nix
index ef7fcd20e78..11a670e394b 100644
--- a/pkgs/development/python-modules/pysnow/default.nix
+++ b/pkgs/development/python-modules/pysnow/default.nix
@@ -6,7 +6,7 @@
 , brotli
 , ijson
 , nose
-, requests_oauthlib 
+, requests_oauthlib
 , python_magic
 , pytz
 }:
@@ -14,7 +14,7 @@
 buildPythonPackage rec {
   pname = "pysnow";
   version = "0.7.16";
-  
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "5df61091470e48b5b3a6ea75637f69d3aacae20041487ea457a9a0e3093fba8c";
@@ -22,9 +22,9 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     brotli
-    ijson 
-    python_magic 
-    pytz 
+    ijson
+    python_magic
+    pytz
     requests_oauthlib
   ];
 
@@ -38,8 +38,7 @@ buildPythonPackage rec {
     description = "ServiceNow HTTP client library written in Python";
     homepage = "https://github.com/rbw/pysnow";
     license = licenses.mit;
-    maintainers = [ maintainers.almac ];  
+    maintainers = [ maintainers.almac ];
   };
 
 }
-
diff --git a/pkgs/development/python-modules/pysonos/default.nix b/pkgs/development/python-modules/pysonos/default.nix
index 427c42545c5..cf1f74b9b79 100644
--- a/pkgs/development/python-modules/pysonos/default.nix
+++ b/pkgs/development/python-modules/pysonos/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "pysonos";
-  version = "0.0.31";
+  version = "0.0.32";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03f21d2fb27cd938bd2c47f8582c0737eb7426a0cd59e5a60171fabe5e963e62";
+    sha256 = "b739d20807f5fac95f8e02831faaf04023b7a8cb6f371024d89fd16c6bd8a589";
   };
 
   propagatedBuildInputs = [ xmltodict requests ifaddr ];
diff --git a/pkgs/development/python-modules/pyspark/default.nix b/pkgs/development/python-modules/pyspark/default.nix
index 8c7e0f64c1f..22b68406082 100644
--- a/pkgs/development/python-modules/pyspark/default.nix
+++ b/pkgs/development/python-modules/pyspark/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyspark";
-  version = "2.4.6";
+  version = "3.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b4b319a3ffd187a3019f654ae1c8ac38048bcec2940f8cecdef829302d166feb";
+    sha256 = "8c6e5cc51d91eb8d43e81d0b7093292b5e144ac81445491d5f887d2cf4fe121f";
   };
 
   # pypandoc is broken with pandoc2, so we just lose docs.
diff --git a/pkgs/development/python-modules/pyspinel/default.nix b/pkgs/development/python-modules/pyspinel/default.nix
index d841a416218..dcd35132c2e 100644
--- a/pkgs/development/python-modules/pyspinel/default.nix
+++ b/pkgs/development/python-modules/pyspinel/default.nix
@@ -1,21 +1,32 @@
-{ buildPythonPackage, fetchPypi, lib, future, pyserial, ipaddress }:
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27
+, future, pyserial, ipaddress
+}:
 
 buildPythonPackage rec {
   pname = "pyspinel";
-  version = "1.0.1";
+  version = "unstable-2020-06-19";  # no versioned release since 2018
+  disabled = isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "5cbfd0f6e9ef3b5cd3a4e72a9a0cee1fe50d518b43746be07a1fd17e883328c2";
+  src = fetchFromGitHub {
+    owner = "openthread";
+    repo = pname;
+    rev = "e0bb3f8e6f49b593ab248a75de04a71626ae8101";
+    sha256 = "0nfmdkgbhmkl82dfxjpwiiarxngm6a3fvdrzpaqp60a4b17pipqg";
   };
 
-  propagatedBuildInputs = [ pyserial ipaddress future ];
+  propagatedBuildInputs = [
+    future
+    ipaddress
+    pyserial
+  ];
 
   doCheck = false;
+  pythonImportsCheck = [ "spinel" ];
 
-  meta = {
+  meta = with lib; {
     description = "Interface to the OpenThread Network Co-Processor (NCP)";
     homepage = "https://github.com/openthread/pyspinel";
-    maintainers = with lib.maintainers; [ gebner ];
+    license = licenses.asl20;
+    maintainers = with maintainers; [ gebner ];
   };
 }
diff --git a/pkgs/development/python-modules/pysqueezebox/default.nix b/pkgs/development/python-modules/pysqueezebox/default.nix
new file mode 100644
index 00000000000..33149e99e92
--- /dev/null
+++ b/pkgs/development/python-modules/pysqueezebox/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchPypi, buildPythonPackage, pythonOlder, aiohttp }:
+
+buildPythonPackage rec {
+  pname = "pysqueezebox";
+  version = "0.4.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "02d73e98314a63a38c314d40942a0b098fb59d2f08ac39b2627cfa73f785cf0d";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # No tests in the Pypi distribution
+  doCheck = false;
+  pythonImportsCheck = [ "pysqueezebox" ];
+
+  meta = with stdenv.lib; {
+    description = "Asynchronous library to control Logitech Media Server";
+    homepage = "https://github.com/rajlaud/pysqueezebox";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/pkgs/development/python-modules/pystemmer/default.nix b/pkgs/development/python-modules/pystemmer/default.nix
index d48dc5e8cd6..37260404906 100644
--- a/pkgs/development/python-modules/pystemmer/default.nix
+++ b/pkgs/development/python-modules/pystemmer/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "PyStemmer";
-  version = "2.0.0.1";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "57d1e353b11c5f90566efec7037deaa0e411b1df1e4e5522ce97d7be34b49478";
+    sha256 = "9b81c35302f1d2a5ad9465b85986db246990db93d97d3e8f129269ed7102788e";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/pystray/default.nix b/pkgs/development/python-modules/pystray/default.nix
index a2652fe1edc..cd9259e33c2 100644
--- a/pkgs/development/python-modules/pystray/default.nix
+++ b/pkgs/development/python-modules/pystray/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "pystray";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "moses-palmer";
     repo = "pystray";
     rev = "v${version}";
-    sha256 = "0m5raxahyix3lmmbjbrsfd9yhr4vdil8gcy155hh6lqm2b1fmmss";
+    sha256 = "0q5yqfm5mzffx9vnp9xcnclgjzgs0b7f50i9xmxn1m1iha1zawh1";
   };
 
   propagatedBuildInputs = [ pillow xlib six ];
diff --git a/pkgs/development/python-modules/pytesseract/default.nix b/pkgs/development/python-modules/pytesseract/default.nix
index 0111695ca73..efb20ac2973 100644
--- a/pkgs/development/python-modules/pytesseract/default.nix
+++ b/pkgs/development/python-modules/pytesseract/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytesseract";
-  version = "0.3.4";
+  version = "0.3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16l9b9f5v0a9j5jfgpd8irk9yhc9byzirrzv1rlkapdbz36sbn5g";
+    sha256 = "1xb5ydwgcfcxzs1k7g6frmhxf1mmivi9ay48qdmf5w4ascirm22l";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/pytest-asyncio/default.nix b/pkgs/development/python-modules/pytest-asyncio/default.nix
index c4a9b6fdd1e..8942263a578 100644
--- a/pkgs/development/python-modules/pytest-asyncio/default.nix
+++ b/pkgs/development/python-modules/pytest-asyncio/default.nix
@@ -1,13 +1,13 @@
 { stdenv, buildPythonPackage, fetchPypi, pytest, isPy3k, isPy35, async_generator }:
 buildPythonPackage rec {
   pname = "pytest-asyncio";
-  version = "0.12.0";
+  version = "0.14.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1lpb1q297rly685yl23mni3mmv6vmyx3qsv5ccj1vh8bvkrx4ns7";
+    sha256 = "9882c0c6b24429449f5f969a5158b528f39bde47dc32e85b9f0403965017e700";
   };
 
   buildInputs = [ pytest ]
diff --git a/pkgs/development/python-modules/pytest-bdd/default.nix b/pkgs/development/python-modules/pytest-bdd/default.nix
index 29225859dfd..0ad4392bee9 100644
--- a/pkgs/development/python-modules/pytest-bdd/default.nix
+++ b/pkgs/development/python-modules/pytest-bdd/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   checkPhase = ''
     pytest
   '';
-  
+
   meta = with stdenv.lib; {
     description = "BDD library for the py.test runner";
     homepage = "https://github.com/pytest-dev/pytest-bdd";
diff --git a/pkgs/development/python-modules/pytest-black/default.nix b/pkgs/development/python-modules/pytest-black/default.nix
index 5f391668b93..5a3219f430f 100644
--- a/pkgs/development/python-modules/pytest-black/default.nix
+++ b/pkgs/development/python-modules/pytest-black/default.nix
@@ -7,17 +7,19 @@
 
 buildPythonPackage rec {
   pname = "pytest-black";
-  version = "0.3.9";
+  version = "0.3.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c743dfeffe6b2cb25c0ed1a84cc306dff4b504b713b5a6d1bc3824fa73a7d693";
+    sha256 = "0dvlfic7nvfj97rg5fwj7ahw83n9yj3jjbp5m60n47mlx7z0qg2z";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
 
   propagatedBuildInputs = [ black pytest toml ];
 
+  pythonImportsCheck = [ "pytest_black" ];
+
   meta = with lib; {
     description = "A pytest plugin to enable format checking with black";
     homepage = "https://github.com/shopkeep/pytest-black";
diff --git a/pkgs/development/python-modules/pytest-cov/default.nix b/pkgs/development/python-modules/pytest-cov/default.nix
index 5affa8ae35b..649e41f7d66 100644
--- a/pkgs/development/python-modules/pytest-cov/default.nix
+++ b/pkgs/development/python-modules/pytest-cov/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-cov";
-  version = "2.9.0";
+  version = "2.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b6a814b8ed6247bd81ff47f038511b57fe1ce7f4cc25b9106f1a4b106f1d9322";
+    sha256 = "47bd0ce14056fdd79f93e1713f88fad7bdcc583dcd7783da86ef2f085a0bb88e";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/pytest-doctestplus/default.nix b/pkgs/development/python-modules/pytest-doctestplus/default.nix
index 421cca33984..c9c373a2752 100644
--- a/pkgs/development/python-modules/pytest-doctestplus/default.nix
+++ b/pkgs/development/python-modules/pytest-doctestplus/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-doctestplus";
-  version = "0.7.0";
+  version = "0.8.0";
   disabled = isPy27; # abandoned upstream
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ed440f43e33191f09aed7bbc4f60db3dfb8f295ab33e04c59302af7eda9e29aa";
+    sha256 = "fb083925a17ce636f33997c275f61123e63372c1db11fefac1e991ed25a4ca37";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest-flakes/default.nix b/pkgs/development/python-modules/pytest-flakes/default.nix
index bae42301982..39eb56ce76e 100644
--- a/pkgs/development/python-modules/pytest-flakes/default.nix
+++ b/pkgs/development/python-modules/pytest-flakes/default.nix
@@ -5,11 +5,11 @@ buildPythonPackage rec {
   # upstream has abandoned project in favor of pytest-flake8
   # retaining package to not break other packages
   pname = "pytest-flakes";
-  version = "4.0.0";
+  version = "4.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "341964bf5760ebbdde9619f68a17d5632c674c3f6903ef66daa0a4f540b3d143";
+    sha256 = "37113ac6c7ea5e0b648abf73937955a45f8b9214fe49413297c2ce6ce1808500";
   };
 
   checkInputs = [ pytestpep8 pytest ];
diff --git a/pkgs/development/python-modules/pytest-forked/default.nix b/pkgs/development/python-modules/pytest-forked/default.nix
index 3139e32a0b1..89200f519e7 100644
--- a/pkgs/development/python-modules/pytest-forked/default.nix
+++ b/pkgs/development/python-modules/pytest-forked/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-forked";
-  version = "1.1.3";
+  version = "1.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1805699ed9c9e60cb7a8179b8d4fa2b8898098e82d229b0825d8095f0f261100";
+    sha256 = "6aa9ac7e00ad1a539c41bec6d21011332de671e938c7637378ec9710204e37ca";
   };
 
   buildInputs = [ pytest setuptools_scm ];
diff --git a/pkgs/development/python-modules/pytest-freezegun/default.nix b/pkgs/development/python-modules/pytest-freezegun/default.nix
index 8809bc143cb..424d8fde232 100644
--- a/pkgs/development/python-modules/pytest-freezegun/default.nix
+++ b/pkgs/development/python-modules/pytest-freezegun/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-freezegun";
-  version = "0.4.1";
+  version = "0.4.2";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "060cdf192848e50a4a681a5e73f8b544c4ee5ebc1fab3cb7223a0097bac2f83f";
+    sha256 = "19c82d5633751bf3ec92caa481fb5cffaac1787bd485f0df6436fd6242176949";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest-isort/default.nix b/pkgs/development/python-modules/pytest-isort/default.nix
index 96f78426dba..869466c6500 100644
--- a/pkgs/development/python-modules/pytest-isort/default.nix
+++ b/pkgs/development/python-modules/pytest-isort/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-isort";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "758156cb4dc1db72adc1b7e253011f5eea117fab32af03cedb4cbfc6058b5f8f";
+    sha256 = "01j0sx8yxd7sbmvwky68mvnwrxxs5bjkvi61043jzff1ga92kg9h";
   };
 
   propagatedBuildInputs = [ isort ];
diff --git a/pkgs/development/python-modules/pytest-localserver/default.nix b/pkgs/development/python-modules/pytest-localserver/default.nix
index 6ea0b9d3e57..577400b859e 100644
--- a/pkgs/development/python-modules/pytest-localserver/default.nix
+++ b/pkgs/development/python-modules/pytest-localserver/default.nix
@@ -1,9 +1,6 @@
 { buildPythonPackage
 , lib
 , fetchPypi
-, requests
-, pytest
-, six
 , werkzeug
 }:
 
@@ -17,16 +14,16 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ werkzeug ];
-  checkInputs = [ pytest six requests ];
 
-  checkPhase = ''
-    pytest
-  '';
+  # all tests access network: does not work in sandbox
+  doCheck = false;
+  pythonImportsCheck = [ "pytest_localserver" ];
 
-  meta = {
+  meta = with lib; {
     description = "Plugin for the pytest testing framework to test server connections locally";
     homepage = "https://pypi.python.org/pypi/pytest-localserver";
-    license = lib.licenses.mit;
+    license = licenses.mit;
+    maintainers = with maintainers; [ siriobalmelli ];
   };
 }
 
diff --git a/pkgs/development/python-modules/pytest-metadata/default.nix b/pkgs/development/python-modules/pytest-metadata/default.nix
index 9b25e2045e9..53ab515e6f0 100644
--- a/pkgs/development/python-modules/pytest-metadata/default.nix
+++ b/pkgs/development/python-modules/pytest-metadata/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-metadata";
-  version = "1.9.0";
+  version = "1.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1711gippwsl7c1wi8pc2y75xqq5sn1sscpqvrxjvpjm8pcx2138n";
+    sha256 = "0593jf8l30ayrqr9gkmwfbhz9h8cyqp7mgwp7ah1gjysbajf1rmp";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/pytest-mock/default.nix b/pkgs/development/python-modules/pytest-mock/default.nix
index ff08efc12be..c21175bf338 100644
--- a/pkgs/development/python-modules/pytest-mock/default.nix
+++ b/pkgs/development/python-modules/pytest-mock/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-mock";
-  version = "3.1.1";
+  version = "3.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "636e792f7dd9e2c80657e174c04bf7aa92672350090736d82e97e92ce8f68737";
+    sha256 = "7122d55505d5ed5a6f3df940ad174b3f606ecae5e9bc379569cdcbd4cd9d2b83";
   };
 
   propagatedBuildInputs = lib.optional (!isPy3k) mock;
@@ -27,8 +27,9 @@ buildPythonPackage rec {
     pytest
   ];
 
+  # ignore test which only works with pytest5 output structure
   checkPhase = ''
-    pytest
+    pytest -k 'not detailed_introspection_async'
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pytest-pythonpath/default.nix b/pkgs/development/python-modules/pytest-pythonpath/default.nix
new file mode 100644
index 00000000000..4194b7bd0e9
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-pythonpath/default.nix
@@ -0,0 +1,26 @@
+{ buildPythonPackage, fetchPypi, lib, pytest }:
+
+buildPythonPackage rec {
+  pname = "pytest-pythonpath";
+  version = "0.7.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0qhxh0z2b3p52v3i0za9mrmjnb1nlvvyi2g23rf88b3xrrm59z33";
+  };
+
+  propagatedBuildInputs = [ pytest ];
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description =
+      "Pytest plugin for adding to the PYTHONPATH from command line or configs";
+    homepage = "https://github.com/bigsassy/pytest-pythonpath";
+    maintainers = with maintainers; [ cript0nauta ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-quickcheck/default.nix b/pkgs/development/python-modules/pytest-quickcheck/default.nix
index 0748da14d93..ec78329ff8d 100644
--- a/pkgs/development/python-modules/pytest-quickcheck/default.nix
+++ b/pkgs/development/python-modules/pytest-quickcheck/default.nix
@@ -15,5 +15,6 @@ buildPythonPackage rec {
     license = licenses.asl20;
     homepage = "https://pypi.python.org/pypi/pytest-quickcheck";
     description = "pytest plugin to generate random data inspired by QuickCheck";
+    broken = true; # missing pytest-codestyle
   };
 }
diff --git a/pkgs/development/python-modules/pytest-randomly/default.nix b/pkgs/development/python-modules/pytest-randomly/default.nix
new file mode 100644
index 00000000000..c4523ac728c
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-randomly/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, factory_boy, faker, numpy
+, pytest, pytest_xdist
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-randomly";
+  version = "3.4.1";
+
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0s9cx692cdchfrjqx7fgf9wnm3fdac211a4hjq1cx9qqnbpdpl2z";
+  };
+
+  propagatedBuildInputs = [ numpy factory_boy faker ];
+
+  checkInputs = [ pytest pytest_xdist ];
+
+  # test warnings are fixed on an unreleased version:
+  # https://github.com/pytest-dev/pytest-randomly/pull/281
+  checkPhase = "pytest -p no:randomly";
+
+  meta = with lib; {
+    description = "Pytest plugin to randomly order tests and control random.seed";
+    homepage = "https://github.com/pytest-dev/pytest-randomly";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-services/default.nix b/pkgs/development/python-modules/pytest-services/default.nix
index 909b8e80103..93b60ecbe41 100644
--- a/pkgs/development/python-modules/pytest-services/default.nix
+++ b/pkgs/development/python-modules/pytest-services/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-services";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0848cead86d3816b9c4e37cecfda31d21a4366f0dca2313ea29f3ca375c6295d";
+    sha256 = "0037101eaa17e050542808ecb2e799e9b2b148f1867f62b2296329fdd2034cf5";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest-sugar/default.nix b/pkgs/development/python-modules/pytest-sugar/default.nix
index cb5b7bf099f..d1f271ea2bc 100644
--- a/pkgs/development/python-modules/pytest-sugar/default.nix
+++ b/pkgs/development/python-modules/pytest-sugar/default.nix
@@ -4,15 +4,16 @@
 , termcolor
 , pytest
 , packaging
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pytest-sugar";
-  version = "0.9.3";
+  version = "0.9.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1630b5b7ea3624919b73fde37cffb87965c5087a4afab8a43074ff44e0d810c4";
+    sha256 = "b1b2186b0a72aada6859bea2a5764145e3aaa2c1cfbb23c3a19b5f7b697563d3";
   };
 
   propagatedBuildInputs = [
@@ -21,6 +22,10 @@ buildPythonPackage rec {
     packaging
   ];
 
+  checkInputs = [
+    pytestCheckHook
+  ];
+
   meta = with lib; {
     description = "A plugin that changes the default look and feel of py.test";
     homepage = "https://github.com/Frozenball/pytest-sugar";
diff --git a/pkgs/development/python-modules/pytest-testmon/default.nix b/pkgs/development/python-modules/pytest-testmon/default.nix
index 3b649bea57d..9d9add16782 100644
--- a/pkgs/development/python-modules/pytest-testmon/default.nix
+++ b/pkgs/development/python-modules/pytest-testmon/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , coverage
 , pytest
 }:
@@ -8,6 +9,7 @@
 buildPythonPackage rec {
   pname = "pytest-testmon";
   version = "1.0.2";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/pytest-tornado/default.nix b/pkgs/development/python-modules/pytest-tornado/default.nix
index 1f2978228e2..658ca7122f4 100644
--- a/pkgs/development/python-modules/pytest-tornado/default.nix
+++ b/pkgs/development/python-modules/pytest-tornado/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-tornado";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ncaq7icijls6qh66kv19w3i9av2wnmaycfr4yadyybajr8yvffz";
+    sha256 = "1cgisd7lb9q2hf55558cbn5jfhv65vsgk46ykgidzf9kqcq1kymr";
   };
 
   # package has no tests
diff --git a/pkgs/development/python-modules/pytest-tornasync/default.nix b/pkgs/development/python-modules/pytest-tornasync/default.nix
new file mode 100644
index 00000000000..be1e76d21e4
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-tornasync/default.nix
@@ -0,0 +1,38 @@
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27
+, pytest, tornado }:
+
+buildPythonPackage rec {
+  pname = "pytest-tornasync";
+  version = "0.6.0.post2";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "eukaryote";
+    repo = pname;
+    # upstream does not keep git tags in sync with pypy releases
+    # https://github.com/eukaryote/pytest-tornasync/issues/9
+    rev = "c5f013f1f727f1ca1fcf8cc748bba7f4a2d79e56";
+    sha256 = "04cg1cfrr55dbi8nljkpcsc103i5c6p0nr46vjr0bnxgkxx03x36";
+  };
+
+  propagatedBuildInputs = [
+    pytest
+    tornado
+  ];
+
+  checkInputs = [
+    pytest
+    tornado
+  ];
+
+  checkPhase = ''
+    pytest test
+  '';
+
+  meta = with lib; {
+    description = "py.test plugin for testing Python 3.5+ Tornado code";
+    homepage = "https://github.com/eukaryote/pytest-tornasync";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-trio/default.nix b/pkgs/development/python-modules/pytest-trio/default.nix
new file mode 100644
index 00000000000..923fe14cfac
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-trio/default.nix
@@ -0,0 +1,43 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, trio, python, async_generator, hypothesis, outcome, pytest }:
+
+buildPythonPackage rec {
+  pname = "pytest-trio";
+  version = "0.6.0";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "python-trio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "09v2031yxm8ryhq12205ldcck76n3wwqhjjsgfmn6dxfiqb0vbw9";
+  };
+
+  propagatedBuildInputs = [
+    trio
+    async_generator
+    outcome
+    pytest
+  ];
+
+  checkInputs = [
+    pytest
+    hypothesis
+  ];
+
+  # broken with pytest 5 and 6
+  doCheck = false;
+  checkPhase = ''
+    rm pytest.ini
+    PYTHONPATH=$PWD:$PYTHONPATH pytest
+  '';
+
+  pythonImportsCheck = [ "pytest_trio" ];
+
+  meta = with lib; {
+    description = "Pytest plugin for trio";
+    homepage = "https://github.com/python-trio/pytest-trio";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-xdist/2.nix b/pkgs/development/python-modules/pytest-xdist/2.nix
new file mode 100644
index 00000000000..a3d80f94023
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-xdist/2.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchPypi, buildPythonPackage, execnet, pytest_6
+, setuptools_scm, pytest-forked, filelock, psutil, six, isPy3k }:
+
+buildPythonPackage rec {
+  pname = "pytest-xdist";
+  version = "2.0.0";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "3217b1f40290570bf27b1f82714fc4ed44c3260ba9b2f6cde0372378fc707ad3";
+  };
+
+  nativeBuildInputs = [ setuptools_scm pytest_6 ];
+  checkInputs = [ pytest_6 filelock ];
+  propagatedBuildInputs = [ execnet pytest-forked psutil six ];
+
+  # pytest6 doesn't allow for new lines
+  checkPhase = ''
+    # Excluded tests access file system
+    export HOME=$TMPDIR
+    pytest -n $NIX_BUILD_CORES -k "not (distribution_rsyncdirs_example or rsync)"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "py.test xdist plugin for distributed testing and loop-on-failing modes";
+    homepage = "https://github.com/pytest-dev/pytest-xdist";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-xdist/default.nix b/pkgs/development/python-modules/pytest-xdist/default.nix
index d5fc8ce25b1..6dc4b666db5 100644
--- a/pkgs/development/python-modules/pytest-xdist/default.nix
+++ b/pkgs/development/python-modules/pytest-xdist/default.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchPypi, buildPythonPackage, execnet, pytest
-, setuptools_scm, pytest-forked, filelock, six, isPy3k }:
+, setuptools_scm, pytest-forked, filelock, psutil, six, isPy3k }:
 
 buildPythonPackage rec {
   pname = "pytest-xdist";
-  version = "1.32.0";
+  version = "1.34.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1d4166dcac69adb38eeaedb88c8fada8588348258a3492ab49ba9161f2971129";
+    sha256 = "1vh4ps32lp5ignch5adbl3pgchvigdfmrl6qpmhxih54wa1qw3il";
   };
 
   nativeBuildInputs = [ setuptools_scm pytest ];
   checkInputs = [ pytest filelock ];
-  propagatedBuildInputs = [ execnet pytest-forked six ];
+  propagatedBuildInputs = [ execnet pytest-forked psutil six ];
 
   # Encountered a memory leak
   # https://github.com/pytest-dev/pytest-xdist/issues/462
diff --git a/pkgs/development/python-modules/pytest/4.nix b/pkgs/development/python-modules/pytest/4.nix
index 4fe588f6456..43cfe6c822c 100644
--- a/pkgs/development/python-modules/pytest/4.nix
+++ b/pkgs/development/python-modules/pytest/4.nix
@@ -3,12 +3,12 @@
 , atomicwrites, mock, writeText, pathlib2, wcwidth, packaging, isPyPy
 }:
 buildPythonPackage rec {
-  version = "4.6.9";
+  version = "4.6.11";
   pname = "pytest";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fgkmpc31nzy97fxfrkqbzycigdwxwwmninx3qhkzp81migggs0r";
+    sha256 = "50fa82392f2120cc3ec2ca0a75ee615be4c479e66669789771f1758332be4353";
   };
 
   checkInputs = [ hypothesis mock ];
diff --git a/pkgs/development/python-modules/pytest/5.nix b/pkgs/development/python-modules/pytest/5.nix
new file mode 100644
index 00000000000..2b45c330cf3
--- /dev/null
+++ b/pkgs/development/python-modules/pytest/5.nix
@@ -0,0 +1,80 @@
+{ stdenv, buildPythonPackage, pythonOlder, fetchPypi, isPy3k, isPyPy
+, atomicwrites
+, attrs
+, funcsigs
+, hypothesis
+, mock
+, more-itertools
+, packaging
+, pathlib2
+, pluggy
+, py
+, pygments
+, python
+, setuptools
+, setuptools_scm
+, six
+, toml
+, wcwidth
+, writeText
+}:
+
+buildPythonPackage rec {
+  version = "5.4.3";
+  pname = "pytest";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1n67lk8iwlsmfdm8663k8l7isllg1xd3n9p1yla7885szhdk6ybr";
+  };
+
+  checkInputs = [ hypothesis pygments ];
+  nativeBuildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [
+    atomicwrites
+    attrs
+    more-itertools
+    packaging
+    pluggy
+    py
+    setuptools
+    six
+    toml
+    wcwidth
+  ] ++ stdenv.lib.optionals (pythonOlder "3.6") [ pathlib2 ];
+
+  doCheck = !isPyPy; # https://github.com/pytest-dev/pytest/issues/3460
+
+  preCheck = ''
+    # don't test bash builtins
+    rm testing/test_argcomplete.py
+  '';
+
+  # Ignored file https://github.com/pytest-dev/pytest/pull/5605#issuecomment-522243929
+  checkPhase = ''
+    runHook preCheck
+    $out/bin/py.test -x testing/ -k "not test_collect_pyargs_with_testpaths" --ignore=testing/test_junitxml.py
+    runHook postCheck
+  '';
+
+  # Remove .pytest_cache when using py.test in a Nix build
+  setupHook = writeText "pytest-hook" ''
+    pytestcachePhase() {
+        find $out -name .pytest_cache -type d -exec rm -rf {} +
+    }
+    preDistPhases+=" pytestcachePhase"
+  '';
+
+  pythonImportsCheck = [
+    "pytest"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://docs.pytest.org";
+    description = "Framework for writing tests";
+    maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/pytest/default.nix b/pkgs/development/python-modules/pytest/default.nix
index daf43961ea6..ce742d65ba2 100644
--- a/pkgs/development/python-modules/pytest/default.nix
+++ b/pkgs/development/python-modules/pytest/default.nix
@@ -3,6 +3,7 @@
 , attrs
 , funcsigs
 , hypothesis
+, iniconfig
 , mock
 , more-itertools
 , packaging
@@ -14,33 +15,45 @@
 , setuptools
 , setuptools_scm
 , six
+, toml
 , wcwidth
 , writeText
 }:
 
 buildPythonPackage rec {
-  version = "5.4.3";
+  version = "6.0.1";
   pname = "pytest";
 
   disabled = !isPy3k;
 
-  preCheck = ''
-    # don't test bash builtins
-    rm testing/test_argcomplete.py
-  '';
-
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8";
+    sha256 = "85228d75db9f45e06e57ef9bf4429267f81ac7c0d742cc9ed63d09886a9fe6f4";
   };
 
   checkInputs = [ hypothesis pygments ];
   nativeBuildInputs = [ setuptools_scm ];
-  propagatedBuildInputs = [ attrs py setuptools six pluggy more-itertools atomicwrites wcwidth packaging ]
-    ++ stdenv.lib.optionals (pythonOlder "3.6") [ pathlib2 ];
+  propagatedBuildInputs = [
+    atomicwrites
+    attrs
+    iniconfig
+    more-itertools
+    packaging
+    pluggy
+    py
+    setuptools
+    six
+    toml
+    wcwidth
+  ] ++ stdenv.lib.optionals (pythonOlder "3.6") [ pathlib2 ];
 
   doCheck = !isPyPy; # https://github.com/pytest-dev/pytest/issues/3460
 
+  preCheck = ''
+    # don't test bash builtins
+    rm testing/test_argcomplete.py
+  '';
+
   # Ignored file https://github.com/pytest-dev/pytest/pull/5605#issuecomment-522243929
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/python-didl-lite/default.nix b/pkgs/development/python-modules/python-didl-lite/default.nix
new file mode 100644
index 00000000000..e160c1aa623
--- /dev/null
+++ b/pkgs/development/python-modules/python-didl-lite/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, defusedxml
+, pytest }:
+
+buildPythonPackage rec {
+  pname = "python-didl-lite";
+  version = "1.2.4";
+  disabled = pythonOlder "3.5.3";
+
+  src = fetchFromGitHub {
+    owner = "StevenLooman";
+    repo = pname;
+    rev = version;
+    sha256 = "0jf1d5m4r8qd3pn0hh1xqbkblkx9wzrrcmk7qa7q8lzfysp4z217";
+  };
+
+  propagatedBuildInputs = [
+    defusedxml
+  ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with lib; {
+    description = "DIDL-Lite (Digital Item Declaration Language) tools for Python";
+    homepage = "https://github.com/StevenLooman/python-didl-lite";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-dotenv/default.nix b/pkgs/development/python-modules/python-dotenv/default.nix
index 51ca3be32c7..dd9191835a4 100644
--- a/pkgs/development/python-modules/python-dotenv/default.nix
+++ b/pkgs/development/python-modules/python-dotenv/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "python-dotenv";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3b9909bc96b0edc6b01586e1eed05e71174ef4e04c71da5786370cebea53ad74";
+    sha256 = "0gf3r4xvqk9ai1k3ka8c4dlblqhs7286zbd1b20adn953fdcj44c";
   };
 
   propagatedBuildInputs = [ click ] ++ lib.optionals isPy27 [ typing ];
diff --git a/pkgs/development/python-modules/python-gitlab/default.nix b/pkgs/development/python-modules/python-gitlab/default.nix
index 0c1f7c67e3d..b543b435fc6 100644
--- a/pkgs/development/python-modules/python-gitlab/default.nix
+++ b/pkgs/development/python-modules/python-gitlab/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python-gitlab";
-  version = "2.2.0";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4c4ea60c8303f4214522b18038df017cae35afda7474efa0b4e19c2e73bc3ae2";
+    sha256 = "e240b5c371d9e98c46c980d878c3f03cd83f3da6cda01d533db27fa3e0dd474f";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/python-igraph/default.nix b/pkgs/development/python-modules/python-igraph/default.nix
index 12a327be2a6..d67ec59f3ac 100644
--- a/pkgs/development/python-modules/python-igraph/default.nix
+++ b/pkgs/development/python-modules/python-igraph/default.nix
@@ -5,6 +5,7 @@
 buildPythonPackage rec {
   pname = "python-igraph";
   version = "0.8.2";
+  disabled = !isPy3k; # fails to build
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ igraph ];
diff --git a/pkgs/development/python-modules/python-jsonrpc-server/default.nix b/pkgs/development/python-modules/python-jsonrpc-server/default.nix
index 586c6edfa82..12ad5170a7c 100644
--- a/pkgs/development/python-modules/python-jsonrpc-server/default.nix
+++ b/pkgs/development/python-modules/python-jsonrpc-server/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   postPatch = ''
     sed -i 's/version=versioneer.get_version(),/version="${version}",/g' setup.py
     # https://github.com/palantir/python-jsonrpc-server/issues/36
-    sed -i -e 's!ujson<=!ujson>=!' setup.py
+    sed -iEe "s!'ujson.*\$!'ujson',!" setup.py
   '';
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/python-libarchive/default.nix b/pkgs/development/python-modules/python-libarchive/default.nix
deleted file mode 100644
index 02fe2347924..00000000000
--- a/pkgs/development/python-modules/python-libarchive/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchurl
-, isPy3k
-, pkgs
-}:
-
-buildPythonPackage rec {
-  version = "3.1.2-1";
-  pname = "libarchive";
-  disabled = isPy3k;
-
-  src = fetchurl {
-    url = "http://python-libarchive.googlecode.com/files/python-libarchive-${version}.tar.gz";
-    sha256 = "0j4ibc4mvq64ljya9max8832jafi04jciff9ia9qy0xhhlwkcx8x";
-  };
-
-  propagatedBuildInputs = [ pkgs.libarchive.lib ];
-
-  meta = with stdenv.lib; {
-    description = "Multi-format archive and compression library";
-    homepage = "https://libarchive.org/";
-    license = licenses.bsd0;
-    broken = true;
-  };
-
-}
diff --git a/pkgs/development/python-modules/python-markdown-math/default.nix b/pkgs/development/python-modules/python-markdown-math/default.nix
index a72e20021df..ea08d7f902c 100644
--- a/pkgs/development/python-modules/python-markdown-math/default.nix
+++ b/pkgs/development/python-modules/python-markdown-math/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "python-markdown-math";
-  version = "0.6";
+  version = "0.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c68d8cb9695cb7b435484403dc18941d1bad0ff148e4166d9417046a0d5d3022";
+    sha256 = "17a12175e8b2052a1c3402fca410841c551c678046293b1f7c280ccfe7b302a0";
   };
 
   checkInputs = [ markdown ];
diff --git a/pkgs/development/python-modules/python-miio/default.nix b/pkgs/development/python-modules/python-miio/default.nix
index a1864569708..abce18c8841 100644
--- a/pkgs/development/python-modules/python-miio/default.nix
+++ b/pkgs/development/python-modules/python-miio/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "python-miio";
-  version = "0.5.1";
+  version = "0.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8d23caf4906f2112dc88b9a6d5e1767877744cae016cd71c2bf75592a4be3b79";
+    sha256 = "3be5275b569844dfa267c80a1e23dc0957411dd501cae0ed3cccf43467031ceb";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/python-mpv-jsonipc/default.nix b/pkgs/development/python-modules/python-mpv-jsonipc/default.nix
index 9f9818350bf..82ee7e20924 100644
--- a/pkgs/development/python-modules/python-mpv-jsonipc/default.nix
+++ b/pkgs/development/python-modules/python-mpv-jsonipc/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "python-mpv-jsonipc";
-  version = "1.1.8";
+  version = "1.1.11";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "iwalton3";
     repo = "python-mpv-jsonipc";
     rev = "v${version}";
-    sha256 = "0f4nfzfka5n76n6dxmgcz0rkaws7a3jrgyh00va6lnfi7h6dsmx4";
+    sha256 = "034vc2j54dciiq80k7jn6kx4g7i58sjk0ykma039k5rihj2rblpk";
   };
 
   # 'mpv-jsonipc' does not have any tests
diff --git a/pkgs/development/python-modules/python-packer/default.nix b/pkgs/development/python-modules/python-packer/default.nix
index 04cbaf77247..420efb40039 100644
--- a/pkgs/development/python-modules/python-packer/default.nix
+++ b/pkgs/development/python-modules/python-packer/default.nix
@@ -16,10 +16,10 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ sh ];
-  
+
   # Tests requires network connections
   doCheck = false;
-  
+
   meta = with stdenv.lib; {
     description = "An interface for packer.io";
     homepage = "https://github.com/nir0s/python-packer";
@@ -27,4 +27,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ psyanticy ];
   };
 }
-
diff --git a/pkgs/development/python-modules/python-ptrace/default.nix b/pkgs/development/python-modules/python-ptrace/default.nix
index f116ec556de..5eff4707d4e 100644
--- a/pkgs/development/python-modules/python-ptrace/default.nix
+++ b/pkgs/development/python-modules/python-ptrace/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "python-ptrace";
-  version = "0.9.5";
+  version = "0.9.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c46287ae611e3041bbd0572221cd1f121100dfc98d1d6c9ad6dd97e35f62501a";
+    sha256 = "b998e3436cec975b6907552af6e7f3ff8779097e32d2b905696e5a9feb09e070";
   };
 
   # requires distorm, which is optionally
diff --git a/pkgs/development/python-modules/python-redis-lock/default.nix b/pkgs/development/python-modules/python-redis-lock/default.nix
index f3e58a1a621..2ee21137141 100644
--- a/pkgs/development/python-modules/python-redis-lock/default.nix
+++ b/pkgs/development/python-modules/python-redis-lock/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "python-redis-lock";
-  version = "3.5.0";
+  version = "3.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06f28f63bf4ea3d739ff5c472e76563e24aa5c887002a85cbdb7a5b13aa05897";
+    sha256 = "6c79b87f2fefcf47bbcebea56056d324e9d7971c9b98123b79590e08cbb0a8f7";
   };
 
   checkInputs = [ pytest process-tests pkgs.redis ];
diff --git a/pkgs/development/python-modules/python-rtmidi/default.nix b/pkgs/development/python-modules/python-rtmidi/default.nix
index 24d86289bf2..c2cced83509 100644
--- a/pkgs/development/python-modules/python-rtmidi/default.nix
+++ b/pkgs/development/python-modules/python-rtmidi/default.nix
@@ -1,17 +1,19 @@
 { lib, buildPythonPackage, fetchPypi, isPy27
-, tox, flake8, alabaster
+, pkg-config, alsaLib, libjack2, tox, flake8, alabaster
 }:
 
 buildPythonPackage rec {
   pname = "python-rtmidi";
-  version = "1.4.1";
+  version = "1.4.5";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0b0y3hnjl2fvm3jyfvp1msfikp19vbqqqi7lawgy3azisvdyrgq7";
+    sha256 = "3dd1909d0f44f03a4191131f1829cac2ee6a94f5a4be2a9606354748e594e704";
   };
 
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ alsaLib libjack2 ];
   checkInputs = [
     tox
     flake8
diff --git a/pkgs/development/python-modules/python-slugify/default.nix b/pkgs/development/python-modules/python-slugify/default.nix
index d83fa3b9ad3..30ce55a12a0 100644
--- a/pkgs/development/python-modules/python-slugify/default.nix
+++ b/pkgs/development/python-modules/python-slugify/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
     pname = "python-slugify";
-    version = "4.0.0";
+    version = "4.0.1";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "a8fc3433821140e8f409a9831d13ae5deccd0b033d4744d94b31fea141bdd84c";
+      sha256 = "69a517766e00c1268e5bbfc0d010a0a8508de0b18d30ad5a1ff357f8ae724270";
     };
 
     propagatedBuildInputs = [ text-unidecode ];
diff --git a/pkgs/development/python-modules/python-stdnum/default.nix b/pkgs/development/python-modules/python-stdnum/default.nix
index 39153f4a4da..eb912b2bc59 100644
--- a/pkgs/development/python-modules/python-stdnum/default.nix
+++ b/pkgs/development/python-modules/python-stdnum/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchPypi, buildPythonPackage, nose }:
 
 buildPythonPackage rec {
-  version = "1.13";
+  version = "1.14";
   pname = "python-stdnum";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0q4128rjdgavywhzlm2gz2n5ybc9b9sxs81g50dvxf5q7z9q63qj";
+    sha256 = "fd3a92b8ec82a159c41dbaa3c5397934d090090c92b04e346412e0fd7e6a1b1c";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/python-telegram-bot/default.nix b/pkgs/development/python-modules/python-telegram-bot/default.nix
index f36f8239568..0552b18f800 100644
--- a/pkgs/development/python-modules/python-telegram-bot/default.nix
+++ b/pkgs/development/python-modules/python-telegram-bot/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "python-telegram-bot";
-  version = "12.7";
+  version = "12.8";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vwf4pgjrg9a6w51ds9wmzq31bmi3f7xs79gdzzfxfmqmy1hb2r1";
+    sha256 = "1hzdnjxqgqv868agaipga4padq2q5s4hd1yzvh3n48b9ck2qcw9j";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/python-vlc/default.nix b/pkgs/development/python-modules/python-vlc/default.nix
index 821ad8c7baa..a66b4cc522f 100644
--- a/pkgs/development/python-modules/python-vlc/default.nix
+++ b/pkgs/development/python-modules/python-vlc/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "python-vlc";
-  version = "3.0.9113";
+  version = "3.0.11115";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5422b79d347b6419008ee91cfd9663edc37eaf2a0bd8fb9017d4cc2e5f249dda";
+    sha256 = "a4d3bdddfce84a8fb1b2d5447193a0239c55c16ca246e5194d48efd59c4e236b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python3-openid/default.nix b/pkgs/development/python-modules/python3-openid/default.nix
index 27445554ddf..2a85482cbb6 100644
--- a/pkgs/development/python-modules/python3-openid/default.nix
+++ b/pkgs/development/python-modules/python3-openid/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python3-openid";
-  version = "3.1.0";
+  version = "3.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00l5hrjh19740w00b3fnsqldnla41wbr2rics09dl4kyd1fkd3b2";
+    sha256 = "1bxf9a3ny1js422j962zfzl4a9dhj192pvai05whn7j0iy9gdyrk";
   };
 
   propagatedBuildInputs = [ defusedxml ];
diff --git a/pkgs/development/python-modules/pytimeparse/default.nix b/pkgs/development/python-modules/pytimeparse/default.nix
index ac48fe1c240..9aa11a480cd 100644
--- a/pkgs/development/python-modules/pytimeparse/default.nix
+++ b/pkgs/development/python-modules/pytimeparse/default.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
       sha256 = "e86136477be924d7e670646a98561957e8ca7308d44841e21f5ddea757556a0a";
     };
 
-    propagatedBuildInputs = [ nose ];
+    checkInputs = [ nose ];
 
     meta = with stdenv.lib; {
       description = "A small Python library to parse various kinds of time expressions";
diff --git a/pkgs/development/python-modules/pytmx/default.nix b/pkgs/development/python-modules/pytmx/default.nix
index 0745aacc378..aa6eecfdeb5 100644
--- a/pkgs/development/python-modules/pytmx/default.nix
+++ b/pkgs/development/python-modules/pytmx/default.nix
@@ -2,32 +2,26 @@
 
 buildPythonPackage rec {
   pname = "pytmx";
-  version = "3.21.7";
+  version = "3.22.0";
 
   src = fetchFromGitHub {
     # The release was not git tagged.
     owner = "bitcraft";
     repo = "PyTMX";
-    rev = "38519b94ab9a2db7cacb8e18de4d83750ec6fac2";
-    sha256 = "0p2gc6lgian1yk4qvhbkxfkmndf9ras70amigqzzwr02y2jvq7j8";
+    rev = "187fd429dadcdc5828e78e6748a983aa1434e4d2";
+    sha256 = "0480pr61v54bwdyzb983sk0fqkyfbcgrdn8k11yf1yck4zb119gc";
   };
 
   propagatedBuildInputs = [ pygame pyglet pysdl2 six ];
 
-  # The tests are failing for Python 2.7.
-  doCheck = isPy3k;
   checkPhase = ''
-    # The following test imports an example file from the current working
-    # directory. Thus, we're cd'ing into the test directory.
-
-    cd tests/
-    python -m unittest test_pytmx
+    python -m unittest tests.pytmx.test_pytmx
   '';
 
   meta = with lib; {
     homepage = "https://github.com/bitcraft/PyTMX";
     description = "Python library to read Tiled Map Editor's TMX maps";
     license = licenses.lgpl3;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/pkgs/development/python-modules/pytools/default.nix b/pkgs/development/python-modules/pytools/default.nix
index 965f7f35088..f8f9ef27ff9 100644
--- a/pkgs/development/python-modules/pytools/default.nix
+++ b/pkgs/development/python-modules/pytools/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , decorator
 , appdirs
 , six
@@ -10,11 +11,12 @@
 
 buildPythonPackage rec {
   pname = "pytools";
-  version = "2020.2";
+  version = "2020.4";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3cacefed54148aafb07502c7c907cae8d9327ea35df16e3366c883a706ed5601";
+    sha256 = "37db39ff11a1b5fc8aec875ae4ddb3d6c21aa0e95bddc9c841aa98e1631ae460";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/pytorch-lightning/default.nix b/pkgs/development/python-modules/pytorch-lightning/default.nix
new file mode 100644
index 00000000000..63991752a8a
--- /dev/null
+++ b/pkgs/development/python-modules/pytorch-lightning/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, future
+, pytestCheckHook
+, pytorch
+, pyyaml
+, tensorflow-tensorboard
+, tqdm }:
+
+buildPythonPackage rec {
+  pname = "pytorch-lightning";
+  version = "0.8.5";
+
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "PyTorchLightning";
+    repo = pname;
+    rev = version;
+    sha256 = "12zhq4pnfcwbgcx7cs99c751gp3w0ysaf5ykv2lv8f4i360w3r5a";
+  };
+
+  propagatedBuildInputs = [
+    future
+    pytorch
+    pyyaml
+    tensorflow-tensorboard
+    tqdm
+  ];
+
+  checkInputs = [ pytestCheckHook ];
+  # Some packages are not in NixPkgs; other tests try to build distributed
+  # models, which doesn't work in the sandbox.
+  doCheck = false;
+
+  pythonImportsCheck = [ "pytorch_lightning" ];
+
+  meta = with lib; {
+    description = "Lightweight PyTorch wrapper for machine learning researchers";
+    homepage = "https://pytorch-lightning.readthedocs.io";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ tbenst ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytorch/bin.nix b/pkgs/development/python-modules/pytorch/bin.nix
new file mode 100644
index 00000000000..b1b662e95b3
--- /dev/null
+++ b/pkgs/development/python-modules/pytorch/bin.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPy37
+, isPy38
+, python
+, nvidia_x11
+, addOpenGLRunpath
+, future
+, numpy
+, patchelf
+, pyyaml
+, requests
+}:
+
+let
+  pyVerNoDot = builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
+  platform = if stdenv.isDarwin then "darwin" else "linux";
+  srcs = import ./binary-hashes.nix;
+  unsupported = throw "Unsupported system";
+in buildPythonPackage {
+  pname = "pytorch";
+  # Don't forget to update pytorch to the same version.
+  version = "1.6.0";
+
+  format = "wheel";
+
+  disabled = !(isPy37 || isPy38);
+
+  src = fetchurl srcs."${stdenv.system}-${pyVerNoDot}" or unsupported;
+
+  nativeBuildInputs = [
+    addOpenGLRunpath
+    patchelf
+  ];
+
+  propagatedBuildInputs = [
+    future
+    numpy
+    pyyaml
+    requests
+  ];
+
+  postInstall = ''
+    # ONNX conversion
+    rm -rf $out/bin
+  '';
+
+  postFixup = let
+    rpath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib nvidia_x11 ];
+  in ''
+    find $out/${python.sitePackages}/torch/lib -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
+      echo "setting rpath for $lib..."
+      patchelf --set-rpath "${rpath}:$out/${python.sitePackages}/torch/lib" "$lib"
+      addOpenGLRunpath "$lib"
+    done
+  '';
+
+  pythonImportsCheck = [ "torch" ];
+
+  meta = with stdenv.lib; {
+    description = "Open source, prototype-to-production deep learning platform";
+    homepage = "https://pytorch.org/";
+    license = licenses.unfree; # Includes CUDA and Intel MKL.
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytorch/binary-hashes.nix b/pkgs/development/python-modules/pytorch/binary-hashes.nix
new file mode 100644
index 00000000000..481dc6825c7
--- /dev/null
+++ b/pkgs/development/python-modules/pytorch/binary-hashes.nix
@@ -0,0 +1,10 @@
+{
+  x86_64-linux-37 = {
+    url = "https://download.pytorch.org/whl/cu102/torch-1.6.0-cp37-cp37m-linux_x86_64.whl";
+    sha256 = "0xhwv68j8gvahfzcp43bqp2x71iwv6zjhkw2f1hb82xps40mrml7";
+  };
+  x86_64-linux-38 = {
+    url = "https://download.pytorch.org/whl/cu102/torch-1.6.0-cp38-cp38-linux_x86_64.whl";
+    sha256 = "05m2l04wqzw5xvjam6zwvlmc3979cksl3hrdqc2aikrv4hz8fmsk";
+  };
+}
diff --git a/pkgs/development/python-modules/pytorch/default.nix b/pkgs/development/python-modules/pytorch/default.nix
index 80c3c6d7293..9bdead706d7 100644
--- a/pkgs/development/python-modules/pytorch/default.nix
+++ b/pkgs/development/python-modules/pytorch/default.nix
@@ -4,7 +4,7 @@
   openMPISupport ? false, openmpi ? null,
   buildDocs ? false,
   cudaArchList ? null,
-  numpy, pyyaml, cffi, click, typing, cmake, oneDNN, hypothesis, numactl, psutil,
+  numpy, pyyaml, cffi, click, typing, cmake, hypothesis, numactl, psutil,
   linkFarm, symlinkJoin,
 
   # virtual pkg that consistently instantiates blas across nixpkgs
@@ -104,13 +104,16 @@ let
     "LD_LIBRARY_PATH=${cudaStub}\${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH ";
 
 in buildPythonPackage rec {
-  version = "1.5.0";
   pname = "pytorch";
+  # Don't forget to update pytorch-bin to the same version.
+  version = "1.6.0";
+
   disabled = !isPy3k;
 
   outputs = [
     "out"   # output standard python package
-    "dev"   # output libtorch only
+    "dev"   # output libtorch headers
+    "lib"   # output libtorch libraries
   ];
 
   src = fetchFromGitHub {
@@ -118,9 +121,31 @@ in buildPythonPackage rec {
     repo   = "pytorch";
     rev    = "v${version}";
     fetchSubmodules = true;
-    sha256 = "19qyrjd72mc0llcfn50av8ym05f2iwa38gv068wykji4ph7qjlv2";
+    sha256 = "14hhjsi6fnpaw9m1a3bhvdinsks6fhss6bbcrfk6jgns64abqdaz";
   };
 
+  patches = lib.optionals stdenv.isAarch64 [
+    # GNU aarch64 assembler does not support 4s on neon mov:
+    # https://github.com/pytorch/pytorch/issues/33124
+    #
+    # Fix from:
+    # https://github.com/pytorch/pytorch/pull/40584
+    #
+    # This patch can be removed with the next major version (1.7.0).
+    (fetchpatch {
+      name = "qnnpack-neon-fix.patch";
+      url = "https://github.com/pytorch/pytorch/commit/7676682584d0caf9243bce74ea0a88711ec4a807.diff";
+      sha256 = "13spncaqlpsp8qk2850yly7xqwmhhfwznhmzkk8jgpslkbx75vgq";
+    })
+  ] ++ lib.optionals stdenv.isDarwin [
+    # pthreadpool added support for Grand Central Dispatch in April
+    # 2020. However, this relies on functionality (DISPATCH_APPLY_AUTO)
+    # that is available starting with macOS 10.13. However, our current
+    # base is 10.12. Until we upgrade, we can fall back on the older
+    # pthread support.
+    ./pthreadpool-disable-gcd.diff
+  ];
+
   preConfigure = lib.optionalString cudaSupport ''
     export TORCH_CUDA_ARCH_LIST="${lib.strings.concatStringsSep ";" final_cudaArchList}"
     export CC=${cudatoolkit.cc}/bin/gcc CXX=${cudatoolkit.cc}/bin/g++
@@ -136,9 +161,9 @@ in buildPythonPackage rec {
 
   USE_MKL = blas.implementation == "mkl";
 
-  # Unlike MKL, MKLDNN is FOSS, so we enable support for it by default. Note
-  # that this was renamed to dnnl and then renamed again to oneDNN upstream, but
-  # pytorch still calls it by the old name mkldnn.
+  # Unlike MKL, oneDNN (née MKLDNN) is FOSS, so we enable support for
+  # it by default. PyTorch currently uses its own vendored version
+  # of oneDNN through Intel iDeep.
   USE_MKLDNN = mklDnnSupport;
   USE_MKLDNN_CBLAS = mklDnnSupport;
 
@@ -187,7 +212,7 @@ in buildPythonPackage rec {
     ninja
   ] ++ lib.optionals cudaSupport [ cudatoolkit_joined ];
 
-  buildInputs = [ blas blas.provider oneDNN ]
+  buildInputs = [ blas blas.provider ]
     ++ lib.optionals cudaSupport [ cudnn magma nccl ]
     ++ lib.optionals stdenv.isLinux [ numactl ];
 
@@ -224,33 +249,35 @@ in buildPythonPackage rec {
   ];
   postInstall = ''
     mkdir $dev
-    cp -r $out/${python.sitePackages}/torch/lib     $dev/lib
     cp -r $out/${python.sitePackages}/torch/include $dev/include
     cp -r $out/${python.sitePackages}/torch/share   $dev/share
+
+    mkdir $lib
+    cp -r $out/${python.sitePackages}/torch/lib     $lib/lib
   '';
 
   postFixup = stdenv.lib.optionalString stdenv.isDarwin ''
-    for f in $(ls $dev/lib/*.dylib); do
-        install_name_tool -id $dev/lib/$(basename $f) $f || true
+    for f in $(ls $lib/lib/*.dylib); do
+        install_name_tool -id $lib/lib/$(basename $f) $f || true
     done
 
-    install_name_tool -change @rpath/libshm.dylib $dev/lib/libshm.dylib $dev/lib/libtorch_python.dylib
-    install_name_tool -change @rpath/libtorch.dylib $dev/lib/libtorch.dylib $dev/lib/libtorch_python.dylib
-    install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libshm.dylib $lib/lib/libshm.dylib $lib/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libtorch_python.dylib
 
-    install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libtorch.dylib
+    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libtorch.dylib
 
-    install_name_tool -change @rpath/libtorch.dylib $dev/lib/libtorch.dylib $dev/lib/libcaffe2_observers.dylib
-    install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libcaffe2_observers.dylib
+    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libcaffe2_observers.dylib
+    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libcaffe2_observers.dylib
 
-    install_name_tool -change @rpath/libtorch.dylib $dev/lib/libtorch.dylib $dev/lib/libcaffe2_module_test_dynamic.dylib
-    install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libcaffe2_module_test_dynamic.dylib
+    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libcaffe2_module_test_dynamic.dylib
+    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libcaffe2_module_test_dynamic.dylib
 
-    install_name_tool -change @rpath/libtorch.dylib $dev/lib/libtorch.dylib $dev/lib/libcaffe2_detectron_ops.dylib
-    install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libcaffe2_detectron_ops.dylib
+    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libcaffe2_detectron_ops.dylib
+    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libcaffe2_detectron_ops.dylib
 
-    install_name_tool -change @rpath/libtorch.dylib $dev/lib/libtorch.dylib $dev/lib/libshm.dylib
-    install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libshm.dylib
+    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libshm.dylib
+    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libshm.dylib
   '';
 
 
diff --git a/pkgs/development/python-modules/pytorch/pthreadpool-disable-gcd.diff b/pkgs/development/python-modules/pytorch/pthreadpool-disable-gcd.diff
new file mode 100644
index 00000000000..eddd45723f8
--- /dev/null
+++ b/pkgs/development/python-modules/pytorch/pthreadpool-disable-gcd.diff
@@ -0,0 +1,45 @@
+diff --git a/third_party/pthreadpool/CMakeLists.txt b/third_party/pthreadpool/CMakeLists.txt
+index 0db3264..1ba91c4 100644
+--- a/third_party/pthreadpool/CMakeLists.txt
++++ b/third_party/pthreadpool/CMakeLists.txt
+@@ -74,9 +74,7 @@ IF(EMSCRIPTEN)
+   LIST(APPEND PTHREADPOOL_SRCS src/shim.c)
+ ELSE()
+   LIST(APPEND PTHREADPOOL_SRCS src/portable-api.c src/memory.c)
+-  IF(APPLE AND (PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "default" OR PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "gcd"))
+-    LIST(APPEND PTHREADPOOL_SRCS src/gcd.c)
+-  ELSEIF(CMAKE_SYSTEM_NAME MATCHES "^(Windows|CYGWIN|MSYS)$" AND (PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "default" OR PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "event"))
++  IF(CMAKE_SYSTEM_NAME MATCHES "^(Windows|CYGWIN|MSYS)$" AND (PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "default" OR PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "event"))
+     LIST(APPEND PTHREADPOOL_SRCS src/windows.c)
+   ELSE()
+     LIST(APPEND PTHREADPOOL_SRCS src/pthreads.c)
+@@ -111,10 +109,6 @@ ELSEIF(PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "futex")
+   TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_FUTEX=1)
+   TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_GCD=0)
+   TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_EVENT=0)
+-ELSEIF(PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "gcd")
+-  TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_FUTEX=0)
+-  TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_GCD=1)
+-  TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_EVENT=0)
+ ELSEIF(PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "event")
+   TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_FUTEX=0)
+   TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_GCD=0)
+diff --git a/third_party/pthreadpool/src/threadpool-common.h b/third_party/pthreadpool/src/threadpool-common.h
+index ca84744..244d0ca 100644
+--- a/third_party/pthreadpool/src/threadpool-common.h
++++ b/third_party/pthreadpool/src/threadpool-common.h
+@@ -14,14 +14,6 @@
+ 	#endif
+ #endif
+ 
+-#ifndef PTHREADPOOL_USE_GCD
+-	#if defined(__APPLE__)
+-		#define PTHREADPOOL_USE_GCD 1
+-	#else
+-		#define PTHREADPOOL_USE_GCD 0
+-	#endif
+-#endif
+-
+ #ifndef PTHREADPOOL_USE_EVENT
+ 	#if defined(_WIN32) || defined(__CYGWIN__)
+ 		#define PTHREADPOOL_USE_EVENT 1
diff --git a/pkgs/development/python-modules/pytrends/default.nix b/pkgs/development/python-modules/pytrends/default.nix
index 0b0bad801e1..8317c5ea018 100644
--- a/pkgs/development/python-modules/pytrends/default.nix
+++ b/pkgs/development/python-modules/pytrends/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , requests
 , lxml
 , pandas
@@ -9,6 +10,7 @@
 buildPythonPackage rec {
   pname = "pytrends";
   version = "4.7.3";
+  disabled = isPy27; # python2 pandas is too old
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/pytzdata/default.nix b/pkgs/development/python-modules/pytzdata/default.nix
index a4df0bd71e6..5adcbd0d236 100644
--- a/pkgs/development/python-modules/pytzdata/default.nix
+++ b/pkgs/development/python-modules/pytzdata/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytzdata";
-  version = "2019.3";
+  version = "2020.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fac06f7cdfa903188dc4848c655e4adaee67ee0f2fe08e7daf815cf2a761ee5e";
+    sha256 = "3efa13b335a00a8de1d345ae41ec78dd11c9f8807f522d39850f2dd828681540";
   };
 
   # No tests
diff --git a/pkgs/development/python-modules/pyuavcan/default.nix b/pkgs/development/python-modules/pyuavcan/default.nix
new file mode 100644
index 00000000000..ff01ea90e22
--- /dev/null
+++ b/pkgs/development/python-modules/pyuavcan/default.nix
@@ -0,0 +1,50 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, numpy, nunavut
+, pyserial , pytest, ruamel_yaml}:
+
+ buildPythonPackage rec {
+  pname = "pyuavcan";
+  version = "1.1.0.dev1";
+  disabled = pythonOlder "3.7"; # only python>=3.7 is supported
+
+  src = fetchFromGitHub {
+    owner = "UAVCAN";
+    repo = pname;
+    rev = version;
+    sha256 = "0fmbmdnnh679zkllv5m6pkrasg7m9vjwabqnmz5m7flrgdh6h4qa";
+  };
+
+  propagatedBuildInputs = [
+    numpy
+    nunavut
+    pyserial
+    pytest
+    ruamel_yaml
+  ];
+
+  # allow for writable directory for darwin
+  preBuild = ''
+    export HOME=$TMPDIR
+    export PYTHONASYNCIODEBUG=1
+  '';
+
+  # tests fail ATM.
+  doCheck = false;
+
+  # check at least that import works, as tests fail
+  pythonImportsCheck = [
+    "pyuavcan"
+  ];
+
+  meta = with lib; {
+    description = "A full-featured implementation of the UAVCAN protocol stack";
+    longDescription = ''
+      It is intended for non-embedded, user-facing applications such as GUI
+      software, diagnostic tools, automation scripts, prototypes, and various
+      R&D cases.  PyUAVCAN consists of a Python library (package) and a simple
+      CLI tool for basic diagnostics and shell script automation.
+    '';
+    homepage = "https://pyuavcan.readthedocs.io";
+    maintainers = with maintainers; [ wucke13 ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/pyudev/default.nix b/pkgs/development/python-modules/pyudev/default.nix
index c26f9bcabe6..aabf9cd5de5 100644
--- a/pkgs/development/python-modules/pyudev/default.nix
+++ b/pkgs/development/python-modules/pyudev/default.nix
@@ -13,11 +13,11 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace src/pyudev/_ctypeslib/utils.py \
-      --replace "find_library(name)" "'${systemd.lib}/lib/libudev.so'"
+      --replace "find_library(name)" "'${lib.getLib systemd}/lib/libudev.so'"
     '';
 
   checkInputs = [ pytest mock hypothesis docutils ];
-  propagatedBuildInputs = [ systemd six ];
+  propagatedBuildInputs = [ six ];
 
   checkPhase = ''
     py.test
diff --git a/pkgs/development/python-modules/pyvcd/default.nix b/pkgs/development/python-modules/pyvcd/default.nix
index aa780ad1789..11fe52d553a 100644
--- a/pkgs/development/python-modules/pyvcd/default.nix
+++ b/pkgs/development/python-modules/pyvcd/default.nix
@@ -1,18 +1,20 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , setuptools_scm
 , six
 , pytest
 }:
 
 buildPythonPackage rec {
-  version = "0.2.1";
+  version = "0.2.3";
   pname = "pyvcd";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fad6b9e2cd68049968a43fd9f465a1f924050c0a654e28cc5aa04c1908f283ab";
+    sha256 = "c0fd7321143e821033f59dd41fc6b0350d1533ddccd4c8fc1d1f76e21cd667de";
   };
 
   buildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/pyvcf/default.nix b/pkgs/development/python-modules/pyvcf/default.nix
index 26d9d650d57..7c513617754 100644
--- a/pkgs/development/python-modules/pyvcf/default.nix
+++ b/pkgs/development/python-modules/pyvcf/default.nix
@@ -23,9 +23,9 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ scalavision ];
     longDescription = ''
-      The intent of this module is to mimic the csv module in the Python stdlib, 
-      as opposed to more flexible serialization formats like JSON or YAML. 
-      vcf will attempt to parse the content of each record based on the data 
+      The intent of this module is to mimic the csv module in the Python stdlib,
+      as opposed to more flexible serialization formats like JSON or YAML.
+      vcf will attempt to parse the content of each record based on the data
       types specified in the meta-information lines
     '';
   };
diff --git a/pkgs/development/python-modules/pyviz-comms/default.nix b/pkgs/development/python-modules/pyviz-comms/default.nix
index 4bb0bce52eb..260311a51ad 100644
--- a/pkgs/development/python-modules/pyviz-comms/default.nix
+++ b/pkgs/development/python-modules/pyviz-comms/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pyviz_comms";
-  version = "0.7.4";
+  version = "0.7.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "092nl8pq1jqdylj0xyqwgi5qxvhy6qj2nx2lwwfkbnixlg6g8bbi";
+    sha256 = "cd9649a9ea9dfcb9b34d78f9a64e1870aa8b6b94de546e2c99c6bb53d64ab5d1";
   };
 
   propagatedBuildInputs = [ param ];
diff --git a/pkgs/development/python-modules/pywbem/default.nix b/pkgs/development/python-modules/pywbem/default.nix
index 603aff8ec4a..345908031cc 100644
--- a/pkgs/development/python-modules/pywbem/default.nix
+++ b/pkgs/development/python-modules/pywbem/default.nix
@@ -5,14 +5,14 @@
 
 buildPythonPackage rec {
   pname = "pywbem";
-  version = "0.17.2";
+  version = "1.0.2";
 
   # Support added in master https://github.com/pywbem/pywbem/commit/b2f2f1a151a30355bbc6652dca69a7b30bfe941e awaiting release
   disabled = isPy37;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "84dac33f77d5ff2c3d8eb42fc7de2ffb6d33f5e4954ef89db0dbf3fe646a2809";
+    sha256 = "66d8ec82d30f2b95d8b4bd51659429066c2879d3f46292561f5fdbc7fed10f3d";
   };
 
   propagatedBuildInputs = [
@@ -39,7 +39,7 @@ buildPythonPackage rec {
 
     # Wants `wbemcli` in PATH
     rm testsuite/test_wbemcli.py
-    
+
     # Disables tests that use testfixtures which is currently broken by nonbuilding zope_component
     rm testsuite/{test_logging,test_recorder,test_wbemconnection_mock}.*
   '';
diff --git a/pkgs/development/python-modules/pyxdg/default.nix b/pkgs/development/python-modules/pyxdg/default.nix
index 65cb4389583..48c95121682 100644
--- a/pkgs/development/python-modules/pyxdg/default.nix
+++ b/pkgs/development/python-modules/pyxdg/default.nix
@@ -16,8 +16,8 @@ buildPythonPackage rec {
   # error: invalid command 'test'
   doCheck = false;
 
-  patches = [ 
-    # see: https://gitlab.freedesktop.org/xdg/pyxdg/-/merge_requests/5 
+  patches = [
+    # see: https://gitlab.freedesktop.org/xdg/pyxdg/-/merge_requests/5
     (fetchpatch {
       url = "https://gitlab.freedesktop.org/xdg/pyxdg/-/commit/78405aaa34463db2c6f33ca28ae2293dd3bb1e91.patch";
       sha256 = "17cjax546rkqv5kvwczjqjdd6vmlvcxjanz0296dlfq23j2wbx63";
diff --git a/pkgs/development/python-modules/pyzmq/default.nix b/pkgs/development/python-modules/pyzmq/default.nix
index 96c100ace88..f23d86eb4b7 100644
--- a/pkgs/development/python-modules/pyzmq/default.nix
+++ b/pkgs/development/python-modules/pyzmq/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "pyzmq";
-  version = "19.0.1";
+  version = "19.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13a5638ab24d628a6ade8f794195e1a1acd573496c3b85af2f1183603b7bf5e0";
+    sha256 = "296540a065c8c21b26d63e3cea2d1d57902373b16e4256afe46422691903a438";
   };
 
   checkInputs = [  pytest tornado ];
diff --git a/pkgs/development/python-modules/qds_sdk/default.nix b/pkgs/development/python-modules/qds_sdk/default.nix
index 7b4cfa501dd..56b3f36c367 100644
--- a/pkgs/development/python-modules/qds_sdk/default.nix
+++ b/pkgs/development/python-modules/qds_sdk/default.nix
@@ -11,29 +11,29 @@
 
 buildPythonPackage rec {
   pname = "qds_sdk";
-  version = "1.12.0";
+  version = "1.15.2";
 
   # pypi does not contain tests, using github sources instead
   src = fetchFromGitHub {
     owner = "qubole";
     repo = "qds-sdk-py";
     rev = "V${version}";
-    sha256 = "18xhvlcfki8llv7fw2r5yfk20zds3gr78b4klwm9mkvhlhwds9rx";
+    sha256 = "0xxg9s0y6fz7vb1kab4q93q7ryi71z8x6q9qspm6s506yr3mc67l";
   };
 
-  propagatedBuildInputs = [ 
+  propagatedBuildInputs = [
     boto
     inflection
     requests
-    six 
-    urllib3 
+    six
+    urllib3
   ];
 
   checkInputs = [ pytest mock ];
   checkPhase = ''
     py.test --disable-pytest-warnings tests
   '';
- 
+
   meta = with lib; {
     description = "A Python module that provides the tools you need to authenticate with, and use the Qubole Data Service API";
     homepage = "https://github.com/qubole/qds-sdk-py";
diff --git a/pkgs/development/python-modules/qiskit-aer/default.nix b/pkgs/development/python-modules/qiskit-aer/default.nix
index 3f0439efc7a..8e73e942be9 100644
--- a/pkgs/development/python-modules/qiskit-aer/default.nix
+++ b/pkgs/development/python-modules/qiskit-aer/default.nix
@@ -6,6 +6,9 @@
 , cmake
 , cvxpy
 , cython
+, muparserx
+, ninja
+, nlohmann_json
 , numpy
 , openblas
 , pybind11
@@ -19,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aer";
-  version = "0.5.2";
+  version = "0.6.1";
 
   disabled = pythonOlder "3.5";
 
@@ -27,18 +30,20 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-aer";
     rev = version;
-    fetchSubmodules = true; # fetch muparserx and other required libraries
-    sha256 = "0vw6b69h8pvzxhaz3k8sg9ac792gz3kklfv0izs6ra83y1dfwhjz";
+    sha256 = "1fnv11diis0as8zcc57mamz0gbjd6vj7nw3arxzvwa77ja803sr4";
   };
 
   nativeBuildInputs = [
     cmake
+    ninja
     scikit-build
   ];
 
   buildInputs = [
     openblas
     spdlog
+    nlohmann_json
+    muparserx
   ];
 
   propagatedBuildInputs = [
@@ -48,10 +53,10 @@ buildPythonPackage rec {
     pybind11
   ];
 
-  postPatch = ''
-    # remove dependency on PyPi cmake package, which isn't in Nixpkgs
-    substituteInPlace setup.py --replace "'cmake!=3.17,!=3.17.0'" ""
-  '';
+  patches = [
+    # TODO: remove in favor of qiskit-aer PR #877 patch once accepted/stable
+    ./remove-conan-install.patch
+  ];
 
   dontUseCmakeConfigure = true;
 
@@ -60,11 +65,6 @@ buildPythonPackage rec {
     "-DAER_THRUST_BACKEND=OMP"
   ];
 
-  # Needed to find qiskit.providers.aer modules in cython. This exists in GitHub, don't know why it isn't copied by default
-  postFixup = ''
-    touch $out/${python.sitePackages}/qiskit/__init__.pxd
-  '';
-
   # *** Testing ***
 
   pythonImportsCheck = [
@@ -77,11 +77,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
   dontUseSetuptoolsCheck = true;  # Otherwise runs tests twice
-  disabledTests = [
-    # broken with cvxpy >= 1.1.0, see https://github.com/Qiskit/qiskit-aer/issues/779.
-    # TODO: Remove once resolved, probably next qiskit-aer version
-    "test_clifford"
-  ];
 
   preCheck = ''
     # Tests include a compiled "circuit" which is auto-built in $HOME
@@ -100,11 +95,8 @@ buildPythonPackage rec {
     description = "High performance simulators for Qiskit";
     homepage = "https://qiskit.org/aer";
     downloadPage = "https://github.com/QISKit/qiskit-aer/releases";
+    changelog = "https://qiskit.org/documentation/release_notes.html";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
-    # Doesn't build on aarch64 (libmuparserx issue).
-    # Can fix by building muparserx from source (https://github.com/beltoforion/muparserx)
-    # or in future updates (e.g. Raspberry Pi enabled via https://github.com/Qiskit/qiskit-aer/pull/651 & https://github.com/Qiskit/qiskit-aer/pull/660)
-    platforms = platforms.x86_64;
   };
 }
diff --git a/pkgs/development/python-modules/qiskit-aer/remove-conan-install.patch b/pkgs/development/python-modules/qiskit-aer/remove-conan-install.patch
new file mode 100644
index 00000000000..1c5ae87b082
--- /dev/null
+++ b/pkgs/development/python-modules/qiskit-aer/remove-conan-install.patch
@@ -0,0 +1,63 @@
+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/pkgs/development/python-modules/qiskit-aqua/default.nix b/pkgs/development/python-modules/qiskit-aqua/default.nix
index fe90ee63e00..c90f9ddf2e2 100644
--- a/pkgs/development/python-modules/qiskit-aqua/default.nix
+++ b/pkgs/development/python-modules/qiskit-aqua/default.nix
@@ -2,6 +2,7 @@
 , pythonOlder
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 # , cplex
 , cvxpy
 , dlx
@@ -16,6 +17,7 @@
 , qiskit-terra
 , quandl
 , scikitlearn
+, yfinance
   # Check Inputs
 , ddt
 , pytestCheckHook
@@ -24,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aqua";
-  version = "0.7.3";
+  version = "0.7.5";
 
   disabled = pythonOlder "3.5";
 
@@ -33,9 +35,18 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-aqua";
     rev = version;
-    sha256 = "04zcnrc0vi6dfjahp1019h2ngdgi7l7jvfs9aw0y306nd9g6qgjc";
+    sha256 = "19sdv7lnc4b1c86rd1dv7pjpi8cmrpzbv7nav0fb899ki8ldqdwq";
   };
 
+  # TODO: remove in next release
+  patches = [
+    (fetchpatch {
+      name = "qiskit-aqua-fix-test-issue-1214.patch";
+      url = "https://github.com/Qiskit/qiskit-aqua/commit/284a4323192ac85787b22cbe5f344996fae16f7d.patch";
+      sha256 = "0zl8hqa2fq9ng793x4dhh0ny67nnbjcd8l1cdsaaab4ca1y0xcfr";
+    })
+  ];
+
   # Optional packages: pyscf (see below NOTE) & pytorch. Can install via pip/nix if needed.
   propagatedBuildInputs = [
     # cplex
@@ -51,6 +62,7 @@ buildPythonPackage rec {
     qiskit-ignis
     quandl
     scikitlearn
+    yfinance
   ];
 
   # *** NOTE ***
@@ -105,8 +117,9 @@ buildPythonPackage rec {
     # Disabled due to missing pyscf
     "test_validate" # test/chemistry/test_inputparser.py
 
-    "test_binary" # in SklearnSVM, seems to have trouble with eigenvectors converging
-    "test_pauli_expect_single"  # fails for unknown reason, 3e-3 out of tolerance
+    # Online tests
+    "test_exchangedata"
+    "test_yahoo"
 
     # Disabling slow tests > 10 seconds
     "TestVQE"
@@ -119,7 +132,6 @@ buildPythonPackage rec {
     "TestQGAN"
     "test_evaluate_qasm_mode"
     "test_measurement_error_mitigation_auto_refresh"
-    "test_exchangedata"
     "test_wikipedia"
     "test_shor_factoring_1__15___qasm_simulator____3__5__"
     "test_readme_sample"
@@ -138,11 +150,13 @@ buildPythonPackage rec {
     "test_oh"
     "test_confidence_intervals_00001"
     "test_eoh"
+    "test_qasm_5"
   ];
 
   meta = with lib; {
     description = "An extensible library of quantum computing algorithms";
     homepage = "https://github.com/QISKit/qiskit-aqua";
+    changelog = "https://qiskit.org/documentation/release_notes.html";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix b/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
index 02cdb8397cb..eaf10fd6082 100644
--- a/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
+++ b/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-ibmq-provider";
-  version = "0.7.2";
+  version = "0.8.0";
 
   disabled = pythonOlder "3.6";
 
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = version;
-    sha256 = "11h1ca4v11pajzn1cxqhim1hfziqzj27xzakwln13g8zmiqx3csp";
+    sha256 = "0rrpwr4a82j69j5ibl2g0nw8wbpg201cfz6f234k2v6pj500x9nl";
   };
 
   propagatedBuildInputs = [
@@ -85,6 +85,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Qiskit provider for accessing the quantum devices and simulators at IBMQ";
     homepage = "https://github.com/Qiskit/qiskit-ibmq-provider";
+    changelog = "https://qiskit.org/documentation/release_notes.html";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/pkgs/development/python-modules/qiskit-ignis/default.nix b/pkgs/development/python-modules/qiskit-ignis/default.nix
index bfd2bffbf47..d40afe43f9e 100644
--- a/pkgs/development/python-modules/qiskit-ignis/default.nix
+++ b/pkgs/development/python-modules/qiskit-ignis/default.nix
@@ -9,14 +9,15 @@
 , scikitlearn
 , scipy
   # Check Inputs
-, ddt
 , pytestCheckHook
+, ddt
+, pyfakefs
 , qiskit-aer
 }:
 
 buildPythonPackage rec {
   pname = "qiskit-ignis";
-  version = "0.3.3";
+  version = "0.4.0";
 
   disabled = pythonOlder "3.6";
 
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-ignis";
     rev = version;
-    sha256 = "0sy9qpw0jqirsk9y61j5kr18jrw1wa812n7y98fjj6w668rrv560";
+    sha256 = "07mxhaknkp121xm6mgrpcrbj9qw6j924ra3k0s6vr8qgvfcxvh0y";
   };
 
   propagatedBuildInputs = [
@@ -41,18 +42,21 @@ buildPythonPackage rec {
   dontUseSetuptoolsCheck = true;
   preCheck = "export HOME=$TMPDIR";
   checkInputs = [
-    ddt
     pytestCheckHook
+    ddt
+    pyfakefs
     qiskit-aer
   ];
-  # Test is in test/verification/test_entanglemet.py. test fails due to out-of-date calls & bad logic with this file since qiskit-ignis#328
-  # see qiskit-ignis#386 for all issues. Should be able to re-enable in future.
-  disabledTests = [ "TestEntanglement" ];
+  disabledTests = [
+    "test_tensored_meas_cal_on_circuit" # Flaky test, occasionally returns result outside bounds
+    "test_qv_fitter"  # execution hangs, ran for several minutes
+  ];
 
   meta = with lib; {
     description = "Qiskit tools for quantum hardware verification, noise characterization, and error correction";
     homepage = "https://qiskit.org/ignis";
     downloadPage = "https://github.com/QISKit/qiskit-ignis/releases";
+    changelog = "https://qiskit.org/documentation/release_notes.html";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/pkgs/development/python-modules/qiskit-terra/default.nix b/pkgs/development/python-modules/qiskit-terra/default.nix
index c1c0dd92837..aad0370c3d7 100644
--- a/pkgs/development/python-modules/qiskit-terra/default.nix
+++ b/pkgs/development/python-modules/qiskit-terra/default.nix
@@ -8,12 +8,11 @@
 , fastjsonschema
 , jsonschema
 , numpy
-, marshmallow
-, marshmallow-polyfield
 , networkx
 , ply
 , psutil
 , python-constraint
+, python-dateutil
 , retworkx
 , scipy
 , sympy
@@ -36,7 +35,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-terra";
-  version = "0.14.2";
+  version = "0.15.1";
 
   disabled = pythonOlder "3.5";
 
@@ -44,7 +43,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = version;
-    sha256 = "0p5wapjvy81pnks100xbb23kbs2wyys9ykyc8z4968wl487lq4g5";
+    sha256 = "1p7y36gj3675dmp05nwi0m9nc7h0bwyimir3ncf9wbkx3crrh99c";
   };
 
   nativeBuildInputs = [ cython ];
@@ -54,13 +53,12 @@ buildPythonPackage rec {
     fastjsonschema
     jsonschema
     numpy
-    marshmallow
-    marshmallow-polyfield
     matplotlib
     networkx
     ply
     psutil
     python-constraint
+    python-dateutil
     retworkx
     scipy
     sympy
@@ -74,10 +72,6 @@ buildPythonPackage rec {
     seaborn
   ];
 
-  postPatch = ''
-    # Fix relative imports in tests
-    touch test/python/dagcircuit/__init__.py
-  '';
 
   # *** Tests ***
   checkInputs = [
@@ -94,9 +88,6 @@ buildPythonPackage rec {
     "qiskit.transpiler.passes.routing.cython.stochastic_swap.swap_trial"
   ];
 
-  disabledTests = [
-    "test_random_clifford_valid"  # random test, fails at least once when testing locally.
-  ];
   pytestFlagsArray = [
     "--ignore=test/randomized/test_transpiler_equivalence.py" # collection requires qiskit-aer, which would cause circular dependency
   ];
@@ -106,9 +97,9 @@ buildPythonPackage rec {
   preCheck = ''
     export PACKAGEDIR=$out/${python.sitePackages}
     echo "Moving Qiskit test files to package directory"
-    cp -r $TMP/source/test $PACKAGEDIR
-    cp -r $TMP/source/examples $PACKAGEDIR
-    cp -r $TMP/source/qiskit/schemas/examples $PACKAGEDIR/qiskit/schemas/
+    cp -r $TMP/$sourceRoot/test $PACKAGEDIR
+    cp -r $TMP/$sourceRoot/examples $PACKAGEDIR
+    cp -r $TMP/$sourceRoot/qiskit/schemas/examples $PACKAGEDIR/qiskit/schemas/
 
     # run pytest from Nix's $out path
     pushd $PACKAGEDIR
@@ -127,6 +118,7 @@ buildPythonPackage rec {
     '';
     homepage = "https://qiskit.org/terra";
     downloadPage = "https://github.com/QISKit/qiskit-terra/releases";
+    changelog = "https://qiskit.org/documentation/release_notes.html";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/pkgs/development/python-modules/qiskit/default.nix b/pkgs/development/python-modules/qiskit/default.nix
index 81468da30fb..46fcf498597 100644
--- a/pkgs/development/python-modules/qiskit/default.nix
+++ b/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.19.6";
+  version = "0.20.0";
 
   disabled = pythonOlder "3.5";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit";
     rev = version;
-    sha256 = "0liby6ffgrla6wr4k742qkg8m80im372p6hmr4gkz47nmc76zy1i";
+    sha256 = "1r23pjnql49gczf4k4m6ir5rr95gqdxjrks60p8a93d243mxx3c9";
   };
 
   propagatedBuildInputs = [
@@ -36,14 +36,21 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook ];
   dontUseSetuptoolsCheck = true;
-  # following doesn't work b/c they are distributed across different nix sitePackages dirs. Tested with pytest though.
-  pythonImportsCheck = [ "qiskit" "qiskit.circuit" "qiskit.ignis" "qiskit.providers.aer" "qiskit.aqua" ];
 
-  meta = {
+  pythonImportsCheck = [
+    "qiskit"
+    "qiskit.aqua"
+    "qiskit.circuit"
+    "qiskit.ignis"
+    "qiskit.providers.aer"
+  ];
+
+  meta = with lib; {
     description = "Software for developing quantum computing programs";
     homepage = "https://qiskit.org";
     downloadPage = "https://github.com/QISKit/qiskit/releases";
-    license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ drewrisinger pandaman ];
+    changelog = "https://qiskit.org/documentation/release_notes.html";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ drewrisinger pandaman ];
   };
 }
diff --git a/pkgs/development/python-modules/qreactor/default.nix b/pkgs/development/python-modules/qreactor/default.nix
new file mode 100644
index 00000000000..dc2031c7028
--- /dev/null
+++ b/pkgs/development/python-modules/qreactor/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, twisted
+, qtpy
+, pyqt5
+}:
+
+buildPythonPackage rec {
+  pname = "qreactor-unstable";
+  version = "2018-09-29";
+
+  src = fetchFromGitHub {
+    owner = "frmdstryr";
+    repo = "qt-reactor";
+    rev = "364b3f561fb0d4d3938404d869baa4db7a982bf0";
+    sha256 = "1nb5iwg0nfz86shw28a2kj5pyhd4jvvxhf73fhnfbl8scgnvjv9h";
+  };
+
+  disabled = pythonOlder "3.0";
+
+  propagatedBuildInputs = [
+    twisted qtpy
+  ];
+
+  checkInputs = [
+    pyqt5
+  ];
+
+  pythonImportsCheck = [
+    "qreactor"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/frmdstryr/qt-reactor";
+    description = "Twisted and PyQt5/qtpy eventloop integration base";
+    license = licenses.mit;
+    maintainers = with maintainers; [ raboof ];
+  };
+}
diff --git a/pkgs/development/python-modules/qscintilla-qt5/default.nix b/pkgs/development/python-modules/qscintilla-qt5/default.nix
index 4d63cb5f454..2ee9c82f08d 100644
--- a/pkgs/development/python-modules/qscintilla-qt5/default.nix
+++ b/pkgs/development/python-modules/qscintilla-qt5/default.nix
@@ -1,7 +1,6 @@
 { lib
 , pythonPackages
 , qscintilla
-, lndir
 , qtbase
 }:
 with pythonPackages;
@@ -11,8 +10,9 @@ buildPythonPackage {
   src = qscintilla.src;
   format = "other";
 
-  nativeBuildInputs = [ lndir sip qtbase ];
-  buildInputs = [ qscintilla pyqt5 ];
+  nativeBuildInputs = [ sip qtbase ];
+  buildInputs = [ qscintilla ];
+  propagatedBuildInputs = [ pyqt5 ];
 
   postPatch = ''
     substituteInPlace Python/configure.py \
@@ -22,9 +22,9 @@ buildPythonPackage {
   '';
 
   preConfigure = ''
-    mkdir -p $out
-    lndir ${pyqt5} $out
-    rm -rf "$out/nix-support"
+    # configure.py will look for this folder
+    mkdir -p $out/share/sip/PyQt5
+
     cd Python
     substituteInPlace configure.py \
       --replace "qmake = {'CONFIG': 'qscintilla2'}" "qmake = {'CONFIG': 'qscintilla2', 'QT': 'widgets printsupport'}"
diff --git a/pkgs/development/python-modules/qtconsole/default.nix b/pkgs/development/python-modules/qtconsole/default.nix
index 4cadba28a8a..a1bf4d53018 100644
--- a/pkgs/development/python-modules/qtconsole/default.nix
+++ b/pkgs/development/python-modules/qtconsole/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "qtconsole";
-  version = "4.7.4";
+  version = "4.7.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1zgm57011kpbh6388p8cqwkcgqwlmb7rc9cy3zn9rrnna48byj7x";
+    sha256 = "6c24397c19a49a5cf69582c931db4b0f6b00a78530a2bfd122936f2ebfae2fef";
   };
 
   checkInputs = [ nose ] ++ lib.optionals isPy27 [mock];
diff --git a/pkgs/development/python-modules/qutip/default.nix b/pkgs/development/python-modules/qutip/default.nix
deleted file mode 100644
index 6066e1e3b84..00000000000
--- a/pkgs/development/python-modules/qutip/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchurl
-, numpy
-, scipy
-, matplotlib
-, pyqt4
-, cython
-, pkgs
-, nose
-}:
-
-buildPythonPackage rec {
-  pname = "qutip";
-  version = "2.2.0";
-
-  src = fetchurl {
-    url = "https://qutip.googlecode.com/files/QuTiP-${version}.tar.gz";
-    sha256 = "a26a639d74b2754b3a1e329d91300e587e8c399d8a81d8f18a4a74c6d6f02ba3";
-  };
-
-  propagatedBuildInputs = [ numpy scipy matplotlib pyqt4 cython ];
-
-  buildInputs = [ pkgs.gcc pkgs.qt4 pkgs.blas nose ];
-
-  meta = with stdenv.lib; {
-    description = "QuTiP - Quantum Toolbox in Python";
-    longDescription = ''
-      QuTiP is open-source software for simulating the dynamics of
-      open quantum systems. The QuTiP library depends on the
-      excellent Numpy and Scipy numerical packages. In addition,
-      graphical output is provided by Matplotlib. QuTiP aims to
-      provide user-friendly and efficient numerical simulations of a
-      wide variety of Hamiltonians, including those with arbitrary
-      time-dependence, commonly found in a wide range of physics
-      applications such as quantum optics, trapped ions,
-      superconducting circuits, and quantum nanomechanical
-      resonators.
-    '';
-    homepage = "http://qutip.org/";
-    license = licenses.bsd0;
-    broken = true;
-  };
-
-}
diff --git a/pkgs/development/python-modules/radish-bdd/default.nix b/pkgs/development/python-modules/radish-bdd/default.nix
new file mode 100644
index 00000000000..b2d22346dd7
--- /dev/null
+++ b/pkgs/development/python-modules/radish-bdd/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, click
+, colorful
+, docopt
+, fetchFromGitHub
+, freezegun
+, humanize
+, lark-parser
+, parse-type
+, pysingleton
+, pytestCheckHook
+, pyyaml
+, tag-expressions
+, lxml
+, pytest-mock
+}:
+
+buildPythonPackage rec {
+  pname = "radish-bdd";
+  version = "0.13.2";
+
+  # Pypi package does not have necessary test fixtures.
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = "radish";
+    rev = "v${version}";
+    sha256 = "1k7l0j8w221pa6k990x4rfm7km4asx5zy4zpzvh029lb9nw2pp8b";
+  };
+
+  propagatedBuildInputs = [
+    lark-parser
+    click
+    colorful
+    tag-expressions
+    parse-type
+    humanize
+    pyyaml
+    docopt
+    pysingleton
+  ];
+
+  checkInputs = [ freezegun lxml pytestCheckHook pytest-mock ];
+  disabledTests = [ "test_main_cli_calls" ];
+
+  meta = with lib; {
+    description = "Behaviour-Driven-Development tool for python";
+    homepage = "http://radish-bdd.io";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/pkgs/development/python-modules/rasterio/default.nix b/pkgs/development/python-modules/rasterio/default.nix
index f5e418d925a..236970a5d34 100644
--- a/pkgs/development/python-modules/rasterio/default.nix
+++ b/pkgs/development/python-modules/rasterio/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "rasterio";
-  version = "1.1.4";
+  version = "1.1.5";
 
   # Pypi doesn't ship the tests, so we fetch directly from GitHub
   src = fetchFromGitHub {
     owner = "mapbox";
     repo = "rasterio";
     rev = version;
-    sha256 = "1a1ik66b7n6h9gxlr5yb16hhf5h9117av2ggykpfaw699xxhnz30";
+    sha256 = "168b6hmx026jsvhnq6s5k0qfhzda02mmx1alax6wqk16mk63mqcz";
   };
 
   checkInputs = [ boto3 pytest pytestcov packaging hypothesis ] ++ lib.optional (!isPy3k) mock;
diff --git a/pkgs/development/python-modules/rdflib-jsonld/default.nix b/pkgs/development/python-modules/rdflib-jsonld/default.nix
new file mode 100644
index 00000000000..6e038dd3343
--- /dev/null
+++ b/pkgs/development/python-modules/rdflib-jsonld/default.nix
@@ -0,0 +1,21 @@
+{ buildPythonPackage, fetchPypi, lib, rdflib, nose }:
+
+buildPythonPackage rec {
+  pname = "rdflib-jsonld";
+  version = "0.5.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4f7d55326405071c7bce9acf5484643bcb984eadb84a6503053367da207105ed";
+  };
+
+  nativeBuildInputs = [ nose ];
+  propagatedBuildInputs = [ rdflib ];
+
+  meta = with lib; {
+    homepage = "https://github.com/RDFLib/rdflib-jsonld";
+    license = licenses.bsdOriginal;
+    description = "rdflib extension adding JSON-LD parser and serializer";
+    maintainers = [ maintainers.koslambrou ];
+  };
+}
diff --git a/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix b/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
index 68ccf676f29..1a97320dc36 100644
--- a/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
+++ b/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "readthedocs-sphinx-ext";
-  version = "1.0.4";
+  version = "2.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "33dbb135373d539233f7fbdb5e8dcfa07d41254300ee23719eb9caa8c68a40ae";
+    sha256 = "1d8343982cae238da82c809dcbd82d53f9560b50e17b1dd727123f576385139d";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/recommonmark/default.nix b/pkgs/development/python-modules/recommonmark/default.nix
index 26ba8a68d87..8ad1e6f7dfa 100644
--- a/pkgs/development/python-modules/recommonmark/default.nix
+++ b/pkgs/development/python-modules/recommonmark/default.nix
@@ -5,6 +5,7 @@
 , CommonMark
 , docutils
 , sphinx
+, isPy3k
 }:
 
 buildPythonPackage rec {
@@ -30,6 +31,9 @@ buildPythonPackage rec {
     "test_integration"
   ];
 
+  doCheck = !isPy3k; # Not yet compatible with latest Sphinx.
+  pythonImportsCheck = [ "recommonmark" ];
+
   meta = {
     description = "A docutils-compatibility bridge to CommonMark";
     homepage = "https://github.com/rtfd/recommonmark";
diff --git a/pkgs/development/python-modules/rednose/default.nix b/pkgs/development/python-modules/rednose/default.nix
index 8c3c98bf630..948fe39dae7 100644
--- a/pkgs/development/python-modules/rednose/default.nix
+++ b/pkgs/development/python-modules/rednose/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27, nose, six, colorama, termstyle }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy27, pythonAtLeast
+, nose, six, colorama, termstyle }:
 
 buildPythonPackage rec {
   pname = "rednose";
@@ -15,7 +16,8 @@ buildPythonPackage rec {
 
   # Do not test on Python 2 because the tests suite gets stuck
   # https://github.com/NixOS/nixpkgs/issues/60786
-  doCheck = !(isPy27);
+  # Also macOS tests are broken on python38
+  doCheck = !(isPy27 || (stdenv.isDarwin && pythonAtLeast "3.8"));
 
   checkInputs = [ six ];
   propagatedBuildInputs = [ nose colorama termstyle ];
diff --git a/pkgs/development/python-modules/regex/default.nix b/pkgs/development/python-modules/regex/default.nix
index 038d6d2c90a..19cb7bd232b 100644
--- a/pkgs/development/python-modules/regex/default.nix
+++ b/pkgs/development/python-modules/regex/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "regex";
-  version = "2020.5.14";
+  version = "2020.7.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ce450ffbfec93821ab1fea94779a8440e10cf63819be6e176eb1973a6017aff5";
+    sha256 = "3a3af27a8d23143c49a3420efe5b3f8cf1a48c6fc8bc6856b03f638abc1833bb";
   };
 
   postCheck = ''
diff --git a/pkgs/development/python-modules/relatorio/default.nix b/pkgs/development/python-modules/relatorio/default.nix
index a6da936999e..b723cd0b185 100644
--- a/pkgs/development/python-modules/relatorio/default.nix
+++ b/pkgs/development/python-modules/relatorio/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "relatorio";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0an1yiy4pxfazrbaw4sm8ybhxqn46yzsakkl9qjklafn1j69lnza";
+    sha256 = "0753e78b235b1e8da275509351257a861cf2cf9fafe1b414f8c1deb858a4f94e";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/reportlab/default.nix b/pkgs/development/python-modules/reportlab/default.nix
index 9cd3d131e90..cbd3f54c547 100644
--- a/pkgs/development/python-modules/reportlab/default.nix
+++ b/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.42";
+  version = "3.5.48";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9c21f202697a6cea57b9d716288fc919d99cbabeb30222eebfc7ff77eac32744";
+    sha256 = "0bfe3fe6e1bd1d922f83683eae2ba1d2d29de94e25fb115eacca9530b4b02f76";
   };
 
   checkInputs = [ glibcLocales ];
@@ -30,6 +30,7 @@ in buildPythonPackage rec {
 
     # Remove the tests that require Vera fonts installed
     rm tests/test_graphics_render.py
+    rm tests/test_graphics_charts.py
   '';
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/requests-aws4auth/default.nix b/pkgs/development/python-modules/requests-aws4auth/default.nix
index 2cbbee3c9c4..c54657b4bf5 100644
--- a/pkgs/development/python-modules/requests-aws4auth/default.nix
+++ b/pkgs/development/python-modules/requests-aws4auth/default.nix
@@ -2,11 +2,11 @@
 with lib;
 buildPythonPackage rec {
   pname = "requests-aws4auth";
-  version = "0.9";
+  version = "1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0g52a1pm53aqkc9qb5q1m918c1qy6q47c1qz63p5ilynfbs3m5y9";
+    sha256 = "2950f6ff686b5a452a269076d990e4821d959b61cfac319c3d3c6daaa5db55ce";
   };
 
   postPatch = optionalString isPy3k ''
diff --git a/pkgs/development/python-modules/requests/default.nix b/pkgs/development/python-modules/requests/default.nix
index 9b443df4be4..9ed590ba19b 100644
--- a/pkgs/development/python-modules/requests/default.nix
+++ b/pkgs/development/python-modules/requests/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "requests";
-  version = "2.23.0";
+  version = "2.24.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rhpg0jb08v0gd7f19jjiwlcdnxpmqi1fhvw7r4s9avddi4kvx5k";
+    sha256 = "b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b";
   };
 
   nativeBuildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/responses/default.nix b/pkgs/development/python-modules/responses/default.nix
index 0bf8b47fd6d..78daa0e24f3 100644
--- a/pkgs/development/python-modules/responses/default.nix
+++ b/pkgs/development/python-modules/responses/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "responses";
-  version = "0.10.14";
+  version = "0.10.16";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1a78bc010b20a5022a2c0cb76b8ee6dc1e34d887972615ebd725ab9a166a4960";
+    sha256 = "fa125311607ab3e57d8fcc4da20587f041b4485bdfb06dd6bdf19d8b66f870c1";
   };
 
   propagatedBuildInputs = [ cookies mock requests six ];
diff --git a/pkgs/development/python-modules/rethinkdb/default.nix b/pkgs/development/python-modules/rethinkdb/default.nix
index f1239b75d48..616cabc29a0 100644
--- a/pkgs/development/python-modules/rethinkdb/default.nix
+++ b/pkgs/development/python-modules/rethinkdb/default.nix
@@ -1,6 +1,8 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, six
+, setuptools
 }:
 
 buildPythonPackage rec {
@@ -12,12 +14,15 @@ buildPythonPackage rec {
     sha256 = "945b5efdc10f468fc056bd53a4e4224ec4c2fe1a7e83ae47443bbb6e7c7a1f7d";
   };
 
+  propagatedBuildInputs = [ six setuptools ];
+
   doCheck = false;
+  pythonImportsCheck = [ "rethinkdb" ];
 
   meta = with stdenv.lib; {
     description = "Python driver library for the RethinkDB database server";
     homepage = "https://pypi.python.org/pypi/rethinkdb";
-    license = licenses.agpl3;
+    license = licenses.asl20;
   };
 
 }
diff --git a/pkgs/development/python-modules/retworkx/default.nix b/pkgs/development/python-modules/retworkx/default.nix
index 309f3532cfc..49e4b1c2fc3 100644
--- a/pkgs/development/python-modules/retworkx/default.nix
+++ b/pkgs/development/python-modules/retworkx/default.nix
@@ -1,53 +1,60 @@
 { lib
-, buildPythonPackage
-, pythonOlder
-, pythonAtLeast
+, rustPlatform
 , python
+, fetchpatch
 , fetchFromGitHub
-, fetchPypi
+, pipInstallHook
+, maturin
+, pip
   # Check inputs
 , pytestCheckHook
+, numpy
 }:
-let
-  rx-version = "0.3.4";
 
-  wheel-hashes = {
-    "3.7" = { python = "cp37"; sha256 = "1hfrdj8svkfdraa299gcj18a601l4zn646fkgq7m56brpagssf9l"; };
-    "3.8" = { python = "cp38"; sha256 = "0jm10ywaqr0b456pcp01pb7035nawlndfi998jv8p1a2f5xwjgiq"; };
-  };
-  lookup = set: key: default: if (builtins.hasAttr key set) then (builtins.getAttr key set) else default;
-  wheel-args = lookup
-    wheel-hashes
-    python.pythonVersion
-    (throw "retworkx python version & hash not included. Override attribute `wheel-args` with version & hash at https://pypi.org/project/retworkx");
+rustPlatform.buildRustPackage rec {
+  pname = "retworkx";
+  version = "0.4.0";
 
-  github-source = fetchFromGitHub {
+  src = fetchFromGitHub {
     owner = "Qiskit";
     repo = "retworkx";
-    rev = rx-version;
-    sha256 = "0cd3x64y49q9a3jrkiknlfkiccxkxgl624x5pqk7gm34s1lnzl8h";
+    rev = version;
+    sha256 = "1xqp6d39apkjvd0ad9vw81cp2iqzhpagfa4p171xqm3bwfn2imdc";
   };
-in
-buildPythonPackage rec {
-  pname = "retworkx";
-  version = rx-version;
-  format = "wheel";
 
-  disabled = pythonOlder "3.5" || pythonAtLeast "3.9"; # compiled versions only included for 3.5 <= py <= 3.8
+  cargoSha256 = "0bma0l14jv5qhcsxck7vw3ak1w3c8v84cq4hii86i4iqk523zns5";
+  cargoPatches = [
+      ( fetchpatch {
+        name = "retworkx-cargo-lock.patch";
+        url = "https://github.com/Qiskit/retworkx/commit/a02fd33d357a92dbe9530696a6d85aa59fe8a5b9.patch";
+        sha256 = "0gvxr1nqp9ll4skfks4p4d964pshal25kb1nbfzhpyipnzddizr5";
+      } )
+  ];
 
-  src = fetchPypi {
-    inherit pname version format;
-    inherit (wheel-args) python sha256;
-    abi = if pythonOlder "3.8" then "${wheel-args.python}m" else wheel-args.python;
-    platform = "manylinux2010_x86_64"; # i686, aarch64, and ppc64 also available, restricting to x86 for simplicity
-  };
+  propagatedBuildInputs = [ python ];
+
+  nativeBuildInputs = [ pipInstallHook maturin pip ];
 
-  pythonImportsCheck = [ "retworkx" ];
+  # Need to check AFTER python wheel is installed (b/c using Rust Build, not buildPythonPackage)
+  doCheck = false;
+  doInstallCheck = true;
+
+  buildPhase = ''
+    runHook preBuild
+    maturin build --release --manylinux off --strip --interpreter ${python.interpreter}
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    install -Dm644 -t dist target/wheels/*.whl
+    pipInstallPhase
+  '';
 
-  checkInputs = [ pytestCheckHook ];
+  installCheckInputs = [ pytestCheckHook numpy ];
   preCheck = ''
-    pushd $(mktemp -d)
-    cp -r ${github-source}/$sourceRoot/tests .
+    export TESTDIR=$(mktemp -d)
+    cp -r $TMP/$sourceRoot/tests $TESTDIR
+    pushd $TESTDIR
   '';
   postCheck = "popd";
 
@@ -55,8 +62,8 @@ buildPythonPackage rec {
     description = "A python graph library implemented in Rust.";
     homepage = "https://retworkx.readthedocs.io/en/latest/index.html";
     downloadPage = "https://github.com/Qiskit/retworkx/releases";
+    changelog = "https://github.com/Qiskit/retworkx/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
-    platforms = platforms.x86_64;
   };
 }
diff --git a/pkgs/development/python-modules/rhpl/builder.sh b/pkgs/development/python-modules/rhpl/builder.sh
index dc93effe802..15e05a73f93 100644
--- a/pkgs/development/python-modules/rhpl/builder.sh
+++ b/pkgs/development/python-modules/rhpl/builder.sh
@@ -8,6 +8,6 @@ incl=$(echo $python/include/python2.*)
 sed -i -e "s@/usr/include/\$(PYTHON)@$incl@" \
        -e "s@PYTHONLIBDIR = /usr/\$(LIBDIR)/\$(PYTHON)/site-packages@PYTHONLIBDIR = $(toPythonPath $out)@" Makefile.inc
 sed -i -e "s@/usr/bin/install@install@g" \
-       -e "s@\$(DESTDIR)/usr/share/locale@$out/share/locale@" po/Makefile       
+       -e "s@\$(DESTDIR)/usr/share/locale@$out/share/locale@" po/Makefile
 make PREFIX=$out
 make PREFIX=$out install
diff --git a/pkgs/development/python-modules/ripser/default.nix b/pkgs/development/python-modules/ripser/default.nix
index 6bb9eb71773..9e2e76464d8 100644
--- a/pkgs/development/python-modules/ripser/default.nix
+++ b/pkgs/development/python-modules/ripser/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , cython
 , numpy
 , scipy
@@ -11,11 +12,12 @@
 
 buildPythonPackage rec {
   pname = "ripser";
-  version = "0.4.1";
+  version = "0.5.4";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a4015b413c24e3074f82f31771b1eb805e054b8cf444db51ce8ca5afa42cf130";
+    sha256 = "7a54750427e3f1bbb26c625075c831314760a9e5b5bcd3b797df668f020c9eb6";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/robotframework-requests/default.nix b/pkgs/development/python-modules/robotframework-requests/default.nix
index e62087628a0..72f7aabb70c 100644
--- a/pkgs/development/python-modules/robotframework-requests/default.nix
+++ b/pkgs/development/python-modules/robotframework-requests/default.nix
@@ -8,12 +8,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.7.0";
+  version = "0.7.1";
   pname = "robotframework-requests";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "da7bf998f9cbf8261199db7c96b95be1bf29d1db7f59dfbc77c435761698dc75";
+    sha256 = "501a1c7415f839d6837eedd57f2b6ed20576aab318bf14e3878a77c9b106aa45";
   };
 
   buildInputs = [ unittest2 ];
diff --git a/pkgs/development/python-modules/rq/default.nix b/pkgs/development/python-modules/rq/default.nix
index ea377489bf9..66ca024b2bb 100644
--- a/pkgs/development/python-modules/rq/default.nix
+++ b/pkgs/development/python-modules/rq/default.nix
@@ -1,12 +1,15 @@
-{ stdenv, fetchPypi, buildPythonPackage, click, redis }:
+{ stdenv, fetchFromGitHub, buildPythonPackage, isPy27, click, redis }:
 
 buildPythonPackage rec {
   pname = "rq";
-  version = "1.4.2";
+  version = "1.5.1";
+  disabled = isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "f680c52c7079266465d5e5c49679fab0d14db11d70fec6f1470423408b6bbcf6";
+  src = fetchFromGitHub {
+    owner = "rq";
+    repo = "rq";
+    rev = "v${version}";
+    sha256 = "0i7yyw828wdvl7ap4gb7jhm4p94502is3xxrgrdgwwp0l1rac004";
   };
 
   # test require a running redis rerver, which is something we can't do yet
diff --git a/pkgs/development/python-modules/rsa/default.nix b/pkgs/development/python-modules/rsa/default.nix
index cedb852deef..a5380709eda 100644
--- a/pkgs/development/python-modules/rsa/default.nix
+++ b/pkgs/development/python-modules/rsa/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "rsa";
-  version = "4.1";
+  version = "4.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6fa6a54eb72bfc0abca7f27880b978b14a643ba2a6ad9f4a56a95be82129ca1b";
+    sha256 = "109ea5a66744dd859bf16fe904b8d8b627adafb9408753161e766a92e7d681fa";
   };
 
   checkInputs = [ unittest2 mock ];
diff --git a/pkgs/development/python-modules/rubymarshal/default.nix b/pkgs/development/python-modules/rubymarshal/default.nix
index 4f042dcf90f..9668a26e094 100644
--- a/pkgs/development/python-modules/rubymarshal/default.nix
+++ b/pkgs/development/python-modules/rubymarshal/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "rubymarshal";
-  version = "1.2.6";
+  version = "1.2.7";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0gq344jlb9wkapzpxj7jqwjlc5ccdhhspkw6rfb1d0rammq6hpf6";
+    sha256 = "94aa84fa42393f773c8215fab679bd3b72bbdb9f7931643d3672184cde9981d9";
   };
 
   propagatedBuildInputs = [ hypothesis ];
diff --git a/pkgs/development/python-modules/rx/default.nix b/pkgs/development/python-modules/rx/default.nix
index fd57a8013c1..00808e744a2 100644
--- a/pkgs/development/python-modules/rx/default.nix
+++ b/pkgs/development/python-modules/rx/default.nix
@@ -1,15 +1,16 @@
-{ lib, fetchFromGitHub, buildPythonPackage, nose }:
+{ lib, fetchFromGitHub, buildPythonPackage, pythonOlder, nose }:
 
 buildPythonPackage rec {
   pname = "rx";
-  version = "1.6.1";
+  version = "3.1.0";
+  disabled = pythonOlder "3.6";
 
   # There are no tests on the pypi source
   src = fetchFromGitHub {
     owner = "ReactiveX";
     repo = "rxpy";
-    rev = version;
-    sha256 = "14bca67a26clzcf2abz2yb8g9lfxffjs2l236dp966sp0lfbpsn5";
+    rev = "v${version}";
+    sha256 = "0rcwa8001il9p7s096b9gc5yld8cyxvrsmwh1gpc9b87j172z6ax";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/sabyenc3/default.nix b/pkgs/development/python-modules/sabyenc3/default.nix
new file mode 100644
index 00000000000..aab3201047d
--- /dev/null
+++ b/pkgs/development/python-modules/sabyenc3/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchPypi, python3Packages }:
+
+python3Packages.buildPythonPackage rec {
+  pname = "sabyenc3";
+  version = "4.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "dfaa0bdd01752a9cfde0d349a8f4e178b04b1cf9c1bc018b287961192cd2bb90";
+  };
+
+  # tests are not included in pypi distribution
+  doCheck = false;
+
+  meta = {
+    description = "yEnc Decoding for Python 3";
+    homepage = "https://github.com/sabnzbd/sabyenc/";
+    license = lib.licenses.lgpl3;
+    maintainers = [ lib.maintainers.lovek323 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/sacremoses/default.nix b/pkgs/development/python-modules/sacremoses/default.nix
index ef0fcb57dc9..3785ebcf86c 100644
--- a/pkgs/development/python-modules/sacremoses/default.nix
+++ b/pkgs/development/python-modules/sacremoses/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/alvations/sacremoses";
     description = "Python port of Moses tokenizer, truecaser and normalizer";
     license = licenses.lgpl21Plus;
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.unix;
     maintainers = with maintainers; [ pashashocky ];
   };
 }
diff --git a/pkgs/development/python-modules/samsungctl/default.nix b/pkgs/development/python-modules/samsungctl/default.nix
new file mode 100644
index 00000000000..d29e89db846
--- /dev/null
+++ b/pkgs/development/python-modules/samsungctl/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchPypi
+, websocket_client
+}:
+
+buildPythonPackage rec {
+  pname = "samsungctl";
+  version = "0.7.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ipz3fd65rqkxlb02sql0awc3vnslrwb2pfrsnpfnf8bfgxpbh9g";
+  };
+
+  propagatedBuildInputs = [
+    websocket_client
+  ];
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "samsungctl" ];
+
+  meta = with lib; {
+    description = "Remote control Samsung televisions via a TCP/IP connection";
+    homepage = "https://github.com/Ape/samsungctl";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/samsungtvws/default.nix b/pkgs/development/python-modules/samsungtvws/default.nix
new file mode 100644
index 00000000000..b41935c5825
--- /dev/null
+++ b/pkgs/development/python-modules/samsungtvws/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, requests
+, websocket_client
+}:
+
+buildPythonPackage rec {
+  pname = "samsungtvws";
+  version = "1.5.3";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "054rr8hiacdjfxqssnxnd3xp9hh8350zjzzjvh1199bpps4l1l6n";
+  };
+
+  patchPhase = ''
+    substituteInPlace setup.py --replace "websocket-client==" "websocket-client>="
+  '';
+
+  propagatedBuildInputs = [
+    websocket_client
+    requests
+  ];
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "samsungtvws" ];
+
+  meta = with lib; {
+    description = "Samsung Smart TV WS API wrapper";
+    homepage = "https://github.com/xchwarze/samsung-tv-ws-api";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/sanic-auth/default.nix b/pkgs/development/python-modules/sanic-auth/default.nix
index 498e9cb34b1..4642b69f7d2 100644
--- a/pkgs/development/python-modules/sanic-auth/default.nix
+++ b/pkgs/development/python-modules/sanic-auth/default.nix
@@ -3,20 +3,20 @@
 buildPythonPackage rec {
   pname = "Sanic-Auth";
   version = "0.2.0";
-  
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "b7cb9e93296c035ada0aa1ebfb33f9f7b62f7774c519e374b7fe703ff73589cb";
   };
-  
+
   propagatedBuildInputs = [ sanic ];
-  
+
   checkInputs = [ pytest ];
-  
+
   checkPhase = ''
     pytest tests
   '';
-  
+
   meta = with lib; {
     description = "Simple Authentication for Sanic";
     homepage = "https://github.com/pyx/sanic-auth/";
diff --git a/pkgs/development/python-modules/sanic/default.nix b/pkgs/development/python-modules/sanic/default.nix
index 14eb1d9a3f3..c4f56e2d4c6 100644
--- a/pkgs/development/python-modules/sanic/default.nix
+++ b/pkgs/development/python-modules/sanic/default.nix
@@ -9,11 +9,9 @@
 , ujson
 , pytest
 , gunicorn
-, pytestcov
 , aiohttp
 , beautifulsoup4
 , pytest-sanic
-, pytest-sugar
 , pytest-benchmark
 
 # required just httpcore / requests-async
@@ -100,11 +98,9 @@ buildPythonPackage rec {
   checkInputs = [
     pytest
     gunicorn
-    pytestcov
     aiohttp
     beautifulsoup4
     pytest-sanic
-    pytest-sugar
     pytest-benchmark
     uvicorn
   ];
diff --git a/pkgs/development/python-modules/sapi-python-client/default.nix b/pkgs/development/python-modules/sapi-python-client/default.nix
index 155950dff2c..847acb3c9cd 100644
--- a/pkgs/development/python-modules/sapi-python-client/default.nix
+++ b/pkgs/development/python-modules/sapi-python-client/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, git, setuptools, setuptools_scm, fetchFromGitHub, requests, boto3, buildPythonPackage, responses }: 
+{ stdenv, git, setuptools, setuptools_scm, fetchFromGitHub, requests, boto3, buildPythonPackage, responses }:
 
-buildPythonPackage rec { 
-    pname = "sapi-python-client"; 
-    version = "0.1.3"; 
+buildPythonPackage rec {
+    pname = "sapi-python-client";
+    version = "0.1.3";
 
     src = fetchFromGitHub {
         owner = "keboola";
@@ -17,15 +17,14 @@ buildPythonPackage rec {
 
     doCheck = false; # requires API token and an active keboola bucket
 
-    nativeBuildInputs = [ git setuptools_scm ]; 
+    nativeBuildInputs = [ git setuptools_scm ];
 
-    propagatedBuildInputs = [ setuptools requests boto3 responses ]; 
+    propagatedBuildInputs = [ setuptools requests boto3 responses ];
 
-    meta = with stdenv.lib; { 
-        description = "Keboola Connection Storage API client"; 
-        homepage = "https://github.com/keboola/sapi-python-client"; 
+    meta = with stdenv.lib; {
+        description = "Keboola Connection Storage API client";
+        homepage = "https://github.com/keboola/sapi-python-client";
         maintainers = with maintainers; [ mrmebelman ];
-        license = licenses.mit; 
-    }; 
+        license = licenses.mit;
+    };
 }
-
diff --git a/pkgs/development/python-modules/sarge/default.nix b/pkgs/development/python-modules/sarge/default.nix
index 37a72278d85..1d46e65d349 100644
--- a/pkgs/development/python-modules/sarge/default.nix
+++ b/pkgs/development/python-modules/sarge/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "sarge";
-  version = "0.1.5.post0";
+  version = "0.1.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "da8cc90883f8e5ab4af0d746438f608662f5f2a35da2e858517927edefa134b0";
+    sha256 = "f48fb904e64f10ad6bef62422eaf4736acfd9b13ab64ba44822637a9dbb53265";
   };
 
   # No tests in PyPI tarball
diff --git a/pkgs/development/python-modules/sasmodels/default.nix b/pkgs/development/python-modules/sasmodels/default.nix
index 1715cf2b7c3..06d2d40d180 100644
--- a/pkgs/development/python-modules/sasmodels/default.nix
+++ b/pkgs/development/python-modules/sasmodels/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "sasmodels";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "SasView";
     repo = "sasmodels";
     rev = "v${version}";
-    sha256 = "0k4334nxf1n6gwb9m57sqcchmlssglfd116mpl72glmmdc451d5j";
+    sha256 = "1qvh7q0fkls5r8r9mrph6igcvv8x3qsslqsc5jf1n20alcs5zjrl";
   };
 
   buildInputs = [ opencl-headers ];
diff --git a/pkgs/development/python-modules/scapy/default.nix b/pkgs/development/python-modules/scapy/default.nix
index ec0ccc102f3..2b9eb5517a4 100644
--- a/pkgs/development/python-modules/scapy/default.nix
+++ b/pkgs/development/python-modules/scapy/default.nix
@@ -1,6 +1,6 @@
-{ buildPythonPackage, fetchFromGitHub, lib, isPyPy, isPy3k, pythonOlder
+{ buildPythonPackage, fetchFromGitHub, lib, isPyPy
 , pycrypto, ecdsa # TODO
-, enum34, mock
+, tox, mock, coverage, can, brotli
 , withOptionalDeps ? true, tcpdump, ipython
 , withCryptography ? true, cryptography
 , withVoipSupport ? true, sox
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "scapy";
-  version = "2.4.3";
+  version = "2.4.4";
 
   disabled = isPyPy;
 
@@ -21,14 +21,11 @@ buildPythonPackage rec {
     owner = "secdev";
     repo = "scapy";
     rev = "v${version}";
-    sha256 = "08ypdzp0p3gvmz3pwi0i9q5f7hz9cq8yn6gawia49ynallwnv4zy";
+    sha256 = "1wpx7gps3g8q5ykbfcd67mxwcs416zg37b53fwfzzlc1m58vhk3p";
   };
 
-  # TODO: Temporary workaround
-  patches = [ ./fix-version.patch ];
-
   postPatch = ''
-    sed -i "s/NIXPKGS_SCAPY_VERSION/${version}/" scapy/__init__.py
+    printf "${version}" > scapy/VERSION
   '' + lib.optionalString withManufDb ''
     substituteInPlace scapy/data.py --replace "/opt/wireshark" "${wireshark}"
   '';
@@ -38,16 +35,41 @@ buildPythonPackage rec {
     ++ lib.optional withCryptography cryptography
     ++ lib.optional withVoipSupport sox
     ++ lib.optional withPlottingSupport matplotlib
-    ++ lib.optionals withGraphicsSupport [ pyx texlive.combined.scheme-minimal graphviz imagemagick ]
-    ++ lib.optional (isPy3k && pythonOlder "3.4") enum34
-    ++ lib.optional doCheck mock;
+    ++ lib.optionals withGraphicsSupport [ pyx texlive.combined.scheme-minimal graphviz imagemagick ];
 
-  # Tests fail with Python 3.6 (seems to be an upstream bug, I'll investigate)
-  doCheck = if isPy3k then false else true;
+  # Running the tests seems too complicated:
+  doCheck = false;
+  checkInputs = [ tox mock coverage can brotli ];
+  checkPhase = ''
+    patchShebangs .
+    .config/ci/test.sh
+  '';
 
   meta = with lib; {
-    description = "Powerful interactive network packet manipulation program";
+    description = "A Python-based network packet manipulation program and library";
+    longDescription = ''
+      Scapy is a powerful Python-based interactive packet manipulation program
+      and library.
+
+      It is able to forge or decode packets of a wide number of protocols, send
+      them on the wire, capture them, store or read them using pcap files,
+      match requests and replies, and much more. It is designed to allow fast
+      packet prototyping by using default values that work.
+
+      It can easily handle most classical tasks like scanning, tracerouting,
+      probing, unit tests, attacks or network discovery (it can replace hping,
+      85% of nmap, arpspoof, arp-sk, arping, tcpdump, wireshark, p0f, etc.). It
+      also performs very well at a lot of other specific tasks that most other
+      tools can't handle, like sending invalid frames, injecting your own
+      802.11 frames, combining techniques (VLAN hopping+ARP cache poisoning,
+      VoIP decoding on WEP protected channel, ...), etc.
+
+      Scapy supports Python 2.7 and Python 3 (3.4 to 3.8). It's intended to be
+      cross platform, and runs on many different platforms (Linux, OSX, *BSD,
+      and Windows).
+    '';
     homepage = "https://scapy.net/";
+    changelog = "https://github.com/secdev/scapy/releases/tag/v${version}";
     license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ primeos bjornfor ];
diff --git a/pkgs/development/python-modules/scapy/fix-version.patch b/pkgs/development/python-modules/scapy/fix-version.patch
deleted file mode 100644
index c39458e9fea..00000000000
--- a/pkgs/development/python-modules/scapy/fix-version.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/scapy/__init__.py b/scapy/__init__.py
-index d5ad6164..245ce2fb 100644
---- a/scapy/__init__.py
-+++ b/scapy/__init__.py
-@@ -90,7 +90,7 @@ def _version():
-                 return 'unknown.version'
- 
- 
--VERSION = __version__ = _version()
-+VERSION = __version__ = "NIXPKGS_SCAPY_VERSION"
- VERSION_MAIN = re.search(r"[0-9.]+", VERSION).group()
- 
- if __name__ == "__main__":
diff --git a/pkgs/development/python-modules/schema/default.nix b/pkgs/development/python-modules/schema/default.nix
index 2214bc2da52..8dd89480074 100644
--- a/pkgs/development/python-modules/schema/default.nix
+++ b/pkgs/development/python-modules/schema/default.nix
@@ -3,11 +3,11 @@
 buildPythonPackage rec {
 
   pname = "schema";
-  version = "0.7.2";
+  version = "0.7.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b536f2375b49fdf56f36279addae98bd86a8afbd58b3c32ce363c464bed5fc1c";
+    sha256 = "4cf529318cfd1e844ecbe02f41f7e5aa027463e7403666a52746f31f04f47a5e";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/python-modules/scikit-build/default.nix b/pkgs/development/python-modules/scikit-build/default.nix
index 745723a01bc..6694c3abe4d 100644
--- a/pkgs/development/python-modules/scikit-build/default.nix
+++ b/pkgs/development/python-modules/scikit-build/default.nix
@@ -26,11 +26,11 @@
 
 buildPythonPackage rec {
   pname = "scikit-build";
-  version = "0.10.0";
+  version = "0.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7342017cc82dd6178e3b19377389b8a8d1f8b429d9cdb315cfb1094e34a0f526";
+    sha256 = "0p4smkl2rbpl00m5va5qa8hp2hqb3284p2cs6k8zlmi4kgbdyh6s";
   };
 
   propagatedBuildInputs = [
@@ -59,15 +59,6 @@ buildPythonPackage rec {
 
   dontUseCmakeConfigure = true;
 
-  # scikit-build PR #458. Remove in version > 0.10.0
-  patches = [
-    (fetchpatch {
-      name = "python38-platform_linux_distribution-fix-458";
-      url = "https://github.com/scikit-build/scikit-build/commit/faa7284e5bc4c72bc8744987acdf3297b5d2e7e4.patch";
-      sha256 = "1hgl3cnkf266zaw534b64c88waxfz9721wha0m6j3hsnxk76ayjv";
-    })
-  ];
-
   disabledTests = lib.concatMapStringsSep " and " (s: "not " + s) ([
     "test_hello_develop" # tries setuptools develop install
     "test_source_distribution" # pip has no way to install missing dependencies
@@ -75,6 +66,7 @@ buildPythonPackage rec {
     "test_fortran_compiler" # passes if gfortran is available
     "test_install_command" # tries to alter out path
     "test_test_command" # tries to alter out path
+    "test_setup" # tries to install using distutils
   ]);
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/scikitlearn/default.nix b/pkgs/development/python-modules/scikitlearn/default.nix
index a9bbad04ea7..cffd29f09d3 100644
--- a/pkgs/development/python-modules/scikitlearn/default.nix
+++ b/pkgs/development/python-modules/scikitlearn/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "scikit-learn";
-  version = "0.23.1";
+  version = "0.23.2";
   # UnboundLocalError: local variable 'message' referenced before assignment
   disabled = stdenv.isi686;  # https://github.com/scikit-learn/scikit-learn/issues/5534
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e3fec1c8831f8f93ad85581ca29ca1bb88e2da377fb097cf8322aa89c21bc9b8";
+    sha256 = "20766f515e6cd6f954554387dfae705d93c7b544ec0e6c6a5d8e006f6f7ef480";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/scipy/default.nix b/pkgs/development/python-modules/scipy/default.nix
index ace6c248ab2..8ebb436e288 100644
--- a/pkgs/development/python-modules/scipy/default.nix
+++ b/pkgs/development/python-modules/scipy/default.nix
@@ -9,11 +9,11 @@ let
   });
 in buildPythonPackage rec {
   pname = "scipy";
-  version = "1.4.1";
+  version = "1.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dee1bbf3a6c8f73b6b218cb28eed8dd13347ea2f87d572ce19b289d6fd3fbc59";
+    sha256 = "066c513d90eb3fd7567a9e150828d39111ebd88d3e924cdfc9f8ce19ab6f90c9";
   };
 
   checkInputs = [ nose pytest ];
diff --git a/pkgs/development/python-modules/scour/default.nix b/pkgs/development/python-modules/scour/default.nix
index 67eac729644..4f1f3929386 100644
--- a/pkgs/development/python-modules/scour/default.nix
+++ b/pkgs/development/python-modules/scour/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "scour";
-  version = "0.37";
+  version = "0.38";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05k1f8i8v7sp5v39lian865vwvapq05a6vmvk7fwnxv8kivi6ccn";
+    sha256 = "cf50a13dcdf8cfe1861f0ce334f413604e376a7681c5b181e15322f43c3befcd";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/scrapy-fake-useragent/default.nix b/pkgs/development/python-modules/scrapy-fake-useragent/default.nix
index 26e142434c5..d3bf05b0965 100644
--- a/pkgs/development/python-modules/scrapy-fake-useragent/default.nix
+++ b/pkgs/development/python-modules/scrapy-fake-useragent/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "scrapy-fake-useragent";
-  version = "1.2.0";
+  version = "1.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02mayk804vdl15wjpx7jcjkc4zgrra4izf6iv00mcxq4fd4ck03l";
+    sha256 = "3b17e982e646918dc25080da0672812d07bfb7a92a58377c014c74e0182c665e";
   };
 
   propagatedBuildInputs = [ fake-useragent ];
diff --git a/pkgs/development/python-modules/scrapy/default.nix b/pkgs/development/python-modules/scrapy/default.nix
index 2827f7151f4..db91528da63 100644
--- a/pkgs/development/python-modules/scrapy/default.nix
+++ b/pkgs/development/python-modules/scrapy/default.nix
@@ -23,10 +23,12 @@
 , sybil
 , pytest-twisted
 , botocore
+, itemadapter
+, itemloaders
 }:
 
 buildPythonPackage rec {
-  version = "2.1.0";
+  version = "2.3.0";
   pname = "Scrapy";
 
   disabled = isPy27;
@@ -55,30 +57,25 @@ buildPythonPackage rec {
     w3lib
     zope_interface
     protego
-  ];
-
-  patches = [
-    # Scrapy is usually installed via pip where copying all
-    # permissions makes sense. In Nix the files copied are owned by
-    # root and readonly. As a consequence scrapy can't edit the
-    # project templates.
-    ./permissions-fix.patch
+    itemadapter
+    itemloaders
   ];
 
   LC_ALL = "en_US.UTF-8";
 
   # Disable doctest plugin—enabled in the shipped pytest.ini—because it causes pytest to hang
   # Ignore proxy tests because requires mitmproxy
+  # Ignore utils_display tests because it requires pygments
   # Ignore test_retry_dns_error because tries to resolve an invalid dns and weirdly fails with "Reactor was unclean"
   # Ignore xml encoding test on darwin because lxml can't find encodings https://bugs.launchpad.net/lxml/+bug/707396
   checkPhase = ''
     substituteInPlace pytest.ini --replace "--doctest-modules" ""
-    pytest --ignore=tests/test_linkextractors_deprecated.py --ignore=tests/test_proxy_connect.py --deselect tests/test_crawl.py::CrawlTestCase::test_retry_dns_error ${lib.optionalString stdenv.isDarwin "--deselect tests/test_utils_iterators.py::LxmlXmliterTestCase::test_xmliter_encoding"}
+    pytest --ignore=tests/test_linkextractors_deprecated.py --ignore=tests/test_proxy_connect.py --ignore=tests/test_utils_display.py --deselect tests/test_crawl.py::CrawlTestCase::test_retry_dns_error ${lib.optionalString stdenv.isDarwin "--deselect tests/test_utils_iterators.py::LxmlXmliterTestCase::test_xmliter_encoding"}
   '';
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "640aea0f9be9b055f5cfec5ab78ee88bb37a5be3809b138329bd2af51392ec7f";
+    sha256 = "b4d08cdacb615563c291d053ef1ba2dc08d9d4b6d81578684eaa1cf7b832f90c";
   };
 
   postInstall = ''
diff --git a/pkgs/development/python-modules/scrapy/permissions-fix.patch b/pkgs/development/python-modules/scrapy/permissions-fix.patch
deleted file mode 100644
index 53038cf74e5..00000000000
--- a/pkgs/development/python-modules/scrapy/permissions-fix.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/scrapy/commands/startproject.py b/scrapy/commands/startproject.py
-index 5941066..89f8edb 100644
---- a/scrapy/commands/startproject.py
-+++ b/scrapy/commands/startproject.py
-@@ -4,7 +4,7 @@ import os
- import string
- from importlib import import_module
- from os.path import join, exists, abspath
--from shutil import ignore_patterns, move, copy2, copystat
-+from shutil import ignore_patterns, move, copyfile, copystat
- 
- import scrapy
- from scrapy.commands import ScrapyCommand
-@@ -76,8 +76,7 @@ class Command(ScrapyCommand):
-             if os.path.isdir(srcname):
-                 self._copytree(srcname, dstname)
-             else:
--                copy2(srcname, dstname)
--        copystat(src, dst)
-+                copyfile(srcname, dstname)
- 
-     def run(self, args, opts):
-         if len(args) not in (1, 2):
diff --git a/pkgs/development/python-modules/seekpath/default.nix b/pkgs/development/python-modules/seekpath/default.nix
index e387f27c673..e70ba02ce0e 100644
--- a/pkgs/development/python-modules/seekpath/default.nix
+++ b/pkgs/development/python-modules/seekpath/default.nix
@@ -1,8 +1,9 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, numpy, future, spglib, glibcLocales, pytest, scipy }:
+{ stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder, numpy, future, spglib, glibcLocales, pytest, scipy }:
 
 buildPythonPackage rec {
   pname = "seekpath";
   version = "2.0.1";
+  disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "giovannipizzi";
diff --git a/pkgs/development/python-modules/selectors2/default.nix b/pkgs/development/python-modules/selectors2/default.nix
index 96917f45be0..c78f1811a06 100644
--- a/pkgs/development/python-modules/selectors2/default.nix
+++ b/pkgs/development/python-modules/selectors2/default.nix
@@ -2,12 +2,12 @@
 , nose, psutil, mock }:
 
 buildPythonPackage rec {
-  version = "2.0.1";
+  version = "2.0.2";
   pname = "selectors2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "81b77c4c6f607248b1d6bbdb5935403fef294b224b842a830bbfabb400c81884";
+    sha256 = "1f1bbaac203a23fbc851dc1b5a6e92c50698cc8cefa5873eb5b89eef53d1d82b";
   };
 
   checkInputs = [ nose psutil mock ];
diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix
index 9d2a533ecb6..8aa61748af8 100644
--- a/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -19,21 +19,25 @@
 , urllib3
 , trytond
 , werkzeug
+, executing
+, pure-eval
+, asttokens
 }:
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "0.14.4";
+  version = "0.16.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0e5e947d0f7a969314aa23669a94a9712be5a688ff069ff7b9fc36c66adc160c";
+    sha256 = "e12eb1c2c01cd9e9cfe70608dbda4ef451f37ef0b7cbb92e5d43f87c341d6334";
   };
 
-  checkInputs = [ django flask tornado bottle rq falcon sqlalchemy werkzeug ]
+  checkInputs = [ django flask tornado bottle rq falcon sqlalchemy werkzeug trytond
+    executing pure-eval asttokens ]
   ++ stdenv.lib.optionals isPy3k [ celery pyramid sanic aiohttp ];
 
-  propagatedBuildInputs = [ urllib3 certifi trytond ];
+  propagatedBuildInputs = [ urllib3 certifi ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/getsentry/sentry-python";
diff --git a/pkgs/development/python-modules/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix
index 69b89a376fc..b618ec6f634 100644
--- a/pkgs/development/python-modules/setuptools/default.nix
+++ b/pkgs/development/python-modules/setuptools/default.nix
@@ -13,7 +13,7 @@
 
 let
   pname = "setuptools";
-  version = "46.1.3";
+  version = "47.3.1";
 
   # Create an sdist of setuptools
   sdist = stdenv.mkDerivation rec {
@@ -23,7 +23,7 @@ let
       owner = "pypa";
       repo = pname;
       rev = "v${version}";
-      sha256 = "1f6bp3qy5zvykimadk8k11k3629hmnwlw2cfw4vwcsvdarhig673";
+      sha256 = "0sy3p4ibgqx67hzn1f254jh8070a8kl9g2la62p3c74k2x7p0r7f";
       name = "${pname}-${version}-source";
     };
 
diff --git a/pkgs/development/python-modules/sh/default.nix b/pkgs/development/python-modules/sh/default.nix
index 913840110c9..de23241e379 100644
--- a/pkgs/development/python-modules/sh/default.nix
+++ b/pkgs/development/python-modules/sh/default.nix
@@ -1,28 +1,22 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, python, coverage, lsof, glibcLocales }:
+{ lib, buildPythonPackage, fetchPypi, fetchpatch, python, coverage, lsof, glibcLocales, coreutils }:
 
 buildPythonPackage rec {
   pname = "sh";
-  version = "1.12.14";
+  version = "1.13.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1z2hx357xp3v4cv44xmqp7lli3frndqpyfmpbxf7n76h7s1zaaxm";
+    sha256 = "18w6wawmpzfh52s0jimwn59a7rfa7blrmg7bhwnq8siwbqhd58wp";
   };
 
   patches = [
-    # Disable tests that fail on Darwin
-    # Some of the failures are due to Nix using GNU coreutils
+    # Disable tests that fail on Darwin sandbox
     ./disable-broken-tests-darwin.patch
-    # Fix tests for Python 3.7. See: https://github.com/amoffat/sh/pull/468
-    (fetchpatch {
-      url = "https://github.com/amoffat/sh/commit/b6202f75706473f02084d819e0765056afa43664.patch";
-      sha256 = "1kzxyxcc88zhgn2kmfg9yrbs4n405b2jq7qykb453l52hy10vi94";
-      excludes = [ ".travis.yml" ];
-    })
   ];
 
   postPatch = ''
     sed -i 's#/usr/bin/env python#${python.interpreter}#' test.py
+    sed -i 's#/bin/sleep#${coreutils.outPath}/bin/sleep#' test.py
   '';
 
   checkInputs = [ coverage lsof glibcLocales ];
@@ -33,9 +27,10 @@ buildPythonPackage rec {
     HOME=$(mktemp -d)
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Python subprocess interface";
     homepage = "https://pypi.python.org/pypi/sh/";
-    license = stdenv.lib.licenses.mit;
+    license = licenses.mit;
+    maintainers = with maintainers; [ siriobalmelli ];
   };
 }
diff --git a/pkgs/development/python-modules/sh/disable-broken-tests-darwin.patch b/pkgs/development/python-modules/sh/disable-broken-tests-darwin.patch
index 6488dd1ffea..c51490ce6a4 100644
--- a/pkgs/development/python-modules/sh/disable-broken-tests-darwin.patch
+++ b/pkgs/development/python-modules/sh/disable-broken-tests-darwin.patch
@@ -1,49 +1,49 @@
-From 264f2f6a04d25156bba43524a6b172d2e99c53f4 Mon Sep 17 00:00:00 2001
-From: Ben Wolsieffer <benwolsieffer@gmail.com>
-Date: Fri, 21 Dec 2018 17:39:45 -0500
-Subject: [PATCH] Disable tests that fail on OSX.
+From c596ad546fe7460b57a62799837757eb641309c1 Mon Sep 17 00:00:00 2001
+From: Sirio Balmelli <sirio@b-ad.ch>
+Date: Mon, 20 Jul 2020 19:51:20 +0200
+Subject: [PATCH] Disable tests that fail on Darwin (macOS) or with sandboxing
 
-Some of the failures are due to the use of GNU ls.
+Signed-off-by: Sirio Balmelli <sirio@b-ad.ch>
 ---
  test.py | 4 ++++
  1 file changed, 4 insertions(+)
 
 diff --git a/test.py b/test.py
-index 68ef40c..2f53360 100644
+index f8029c0..ba1d141 100644
 --- a/test.py
 +++ b/test.py
-@@ -352,6 +352,7 @@ exit(3)
+@@ -404,6 +404,7 @@ exit(3)
          self.assertEqual(sed(_in="one test three", e="s/test/two/").strip(),
-                 "one two three")
+                          "one two three")
  
-+    @not_osx
++    @not_macos
      def test_ok_code(self):
          from sh import ls, ErrorReturnCode_1, ErrorReturnCode_2
  
-@@ -498,6 +499,7 @@ while True:
-         self.assertEqual(out, match)
+@@ -1004,6 +1005,7 @@ print(sys.argv[1])
+         now = time.time()
+         self.assertGreater(now - start, sleep_time)
  
- 
-+    @not_osx
-     def test_environment(self):
-         """ tests that environments variables that we pass into sh commands
-         exist in the environment, and on the sh module """
-@@ -861,6 +863,7 @@ print(sys.argv[1])
-         self.assertTrue(now - start > sleep_time)
- 
- 
-+    @not_osx
++    @not_macos
      def test_background_exception(self):
          from sh import ls, ErrorReturnCode_1, ErrorReturnCode_2
-         p = ls("/ofawjeofj", _bg=True) # should not raise
-@@ -2036,6 +2039,7 @@ else:
-         self.assertEqual(p, "test")
- 
- 
-+    @not_osx
-     def test_signal_exception(self):
-         from sh import SignalException_15
+         p = ls("/ofawjeofj", _bg=True, _bg_exc=False)  # should not raise
+@@ -1801,6 +1803,7 @@ exit(49)
+         p = python(py.name, _ok_code=49, _bg=True)
+         self.assertEqual(49, p.exit_code)
+ 
++    @not_macos
+     def test_cwd(self):
+         from sh import pwd
+         from os.path import realpath
+@@ -2899,6 +2902,7 @@ print("hi")
+         python(py.name, _in=stdin)
+ 
+     @requires_utf8
++    @skipUnless(False, "Does not work in sandbox")
+     def test_unicode_path(self):
+         from sh import Command
  
 -- 
-2.20.0
+2.27.0
 
diff --git a/pkgs/development/python-modules/shamir-mnemonic/default.nix b/pkgs/development/python-modules/shamir-mnemonic/default.nix
index 099c89803ab..2225466658d 100644
--- a/pkgs/development/python-modules/shamir-mnemonic/default.nix
+++ b/pkgs/development/python-modules/shamir-mnemonic/default.nix
@@ -17,6 +17,6 @@ buildPythonPackage rec {
     description = "Reference implementation of SLIP-0039";
     homepage = "https://github.com/trezor/python-shamir-mnemonic";
     license = licenses.mit;
-    maintainers = with maintainers; [ maintainers."1000101" ];
+    maintainers = with maintainers; [ _1000101 ];
   };
 }
diff --git a/pkgs/development/python-modules/shiboken2/nix_compile_cflags.patch b/pkgs/development/python-modules/shiboken2/nix_compile_cflags.patch
index 0884c020e83..c3c63dc67ba 100644
--- a/pkgs/development/python-modules/shiboken2/nix_compile_cflags.patch
+++ b/pkgs/development/python-modules/shiboken2/nix_compile_cflags.patch
@@ -1,6 +1,6 @@
---- pyside-setup-everywhere-src-5.12.3/sources/shiboken2/ApiExtractor/clangparser/compilersupport.cpp~	2019-06-15 10:31:04.712949189 +0200
-+++ pyside-setup-everywhere-src-5.12.3/sources/shiboken2/ApiExtractor/clangparser/compilersupport.cpp	2019-06-15 11:52:52.894987343 +0200
-@@ -317,15 +317,15 @@
+--- pyside-setup-everywhere-src-5.12.6/sources/shiboken2/ApiExtractor/clangparser/compilersupport.cpp~	2020-07-08 14:37:13.022476435 -0700
++++ pyside-setup-everywhere-src-5.12.6/sources/shiboken2/ApiExtractor/clangparser/compilersupport.cpp	2020-07-08 14:37:18.271484269 -0700
+@@ -330,17 +330,15 @@
      }
  #endif // NEED_CLANG_BUILTIN_INCLUDES
  
@@ -9,10 +9,12 @@
 -    // A fix for this has been added to Clang 5.0, so, the code can be removed
 -    // once Clang 5.0 is the minimum version.
 -    if (needsGppInternalHeaders()) {
--        const HeaderPaths gppPaths = gppInternalIncludePaths(QStringLiteral("g++"));
+-        const HeaderPaths gppPaths = gppInternalIncludePaths(compilerFromCMake(QStringLiteral("g++")));
 -        for (const HeaderPath &h : gppPaths) {
--            if (h.path.contains("c++"))
+-            if (h.path.contains("c++")
+-                || h.path.contains("sysroot")) { // centOS
 -                headerPaths.append(h);
+-            }
 +    const HeaderPaths gppPaths = gppInternalIncludePaths(QStringLiteral("g++"));
 +    for (const HeaderPath &h : gppPaths) {
 +        // PySide2 requires that Qt headers are not -isystem
@@ -25,3 +27,4 @@
          }
      }
  #else
+
diff --git a/pkgs/development/python-modules/simpleparse/default.nix b/pkgs/development/python-modules/simpleparse/default.nix
index acb07178117..d1117b3a9d8 100644
--- a/pkgs/development/python-modules/simpleparse/default.nix
+++ b/pkgs/development/python-modules/simpleparse/default.nix
@@ -6,14 +6,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.2.0";
+  version = "2.2.2";
   pname = "simpleparse";
   disabled = isPy3k || isPyPy;
 
   src = fetchPypi {
     pname = "SimpleParse";
     inherit version;
-    sha256 = "18ccdc249bb550717af796af04a7d50aef523368901f64036a48eee5daca149d";
+    sha256 = "010szm4mbqgfdksa2n4l9avj617rb0gkwrryc70mfjmyww0bd1m6";
   };
 
   doCheck = false;  # weird error
diff --git a/pkgs/development/python-modules/smart_open/default.nix b/pkgs/development/python-modules/smart_open/default.nix
index c3cac404d10..6dff98a09b4 100644
--- a/pkgs/development/python-modules/smart_open/default.nix
+++ b/pkgs/development/python-modules/smart_open/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , boto
 , boto3
 , bz2file
@@ -12,11 +13,12 @@
 
 buildPythonPackage rec {
   pname = "smart_open";
-  version = "2.0.0";
+  version = "2.1.1";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "555962abf982faff8a8aeb65e0695474e3091f604826055782beffa8400e4e4e";
+    sha256 = "51b05acd85ec007e1d4dcdbf2bbf917218a45026f37d559559401114bb5e5840";
   };
 
   # nixpkgs version of moto is >=1.2.0, remove version pin to fix build
diff --git a/pkgs/development/python-modules/snowflake-connector-python/default.nix b/pkgs/development/python-modules/snowflake-connector-python/default.nix
index 1d8389d8064..ae280eb96cc 100644
--- a/pkgs/development/python-modules/snowflake-connector-python/default.nix
+++ b/pkgs/development/python-modules/snowflake-connector-python/default.nix
@@ -25,12 +25,12 @@
 
 buildPythonPackage rec {
   pname = "snowflake-connector-python";
-  version = "2.2.7";
+  version = "2.2.10";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "84974778dd8d1efd4ff87d8404d71241f90e02044b1b94a52eea567080f93ac4";
+    sha256 = "0beba8eb9c1dec2782d52491d058256e1f5d9e010114a80ff3b8e3905be655fd";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/snscrape/default.nix b/pkgs/development/python-modules/snscrape/default.nix
index 4370388959d..b7d7f25614d 100644
--- a/pkgs/development/python-modules/snscrape/default.nix
+++ b/pkgs/development/python-modules/snscrape/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "snscrape";
-  version = "0.3.2";
+  version = "0.3.4";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ea038827afe439577eb109ebd1b5c481d516d489c624fc3fe6e92ec71ef42be9";
+    sha256 = "36ba7f95c8bf5202749189f760e591952f19c849379c35ff598aafafe5d0cfef";
   };
 
   # There are no tests; make sure the executable works.
diff --git a/pkgs/development/python-modules/solo-python/default.nix b/pkgs/development/python-modules/solo-python/default.nix
index 1b1896187f9..0ce6e338e61 100644
--- a/pkgs/development/python-modules/solo-python/default.nix
+++ b/pkgs/development/python-modules/solo-python/default.nix
@@ -3,7 +3,7 @@
 
  buildPythonPackage rec {
   pname = "solo-python";
-  version = "0.0.23";
+  version = "0.0.26";
   format = "flit";
   disabled = pythonOlder "3.6"; # only python>=3.6 is supported
 
@@ -11,7 +11,7 @@
     owner = "solokeys";
     repo = pname;
     rev = version;
-    sha256 = "0r9cq0sd8pqnavgwa5cqgdxzbgly2baq8fpclnnz6anb2974kg3f";
+    sha256 = "05rwqrhr1as6zqhg63d6wga7l42jm2azbav5w6ih8mx5zbxf61yz";
   };
 
   # replaced pinned fido, with unrestricted fido version
diff --git a/pkgs/development/python-modules/somajo/default.nix b/pkgs/development/python-modules/somajo/default.nix
index c9415999262..c0b8aaca24f 100644
--- a/pkgs/development/python-modules/somajo/default.nix
+++ b/pkgs/development/python-modules/somajo/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "SoMaJo";
-  version = "2.1.0";
+  version = "2.1.1";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "tsproisl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "17ybm5rgwc6jy3i1c8nm05j7fd418n6hp44zv0q77kzhd66am6pp";
+    sha256 = "0yj3yb0qvfdv4wh7nzcsh9in8nzk7b59dvjj0x02rsmlv4kw9ah1";
   };
 
   propagatedBuildInputs = [ regex ];
diff --git a/pkgs/development/python-modules/sopel/default.nix b/pkgs/development/python-modules/sopel/default.nix
index e5720d9620d..0c4c3f9b7b2 100644
--- a/pkgs/development/python-modules/sopel/default.nix
+++ b/pkgs/development/python-modules/sopel/default.nix
@@ -5,20 +5,21 @@
 , praw
 , pyenchant
 , pygeoip
-, pytest
+, pytestCheckHook
 , python
 , pytz
+, sqlalchemy
 , xmltodict
 }:
 
 buildPythonPackage rec {
   pname = "sopel";
-  version = "7.0.4";
+  version = "7.0.6";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c8fc7186ff34c5f86ebbf2bff734503e92ce29aaf5a242eaf93875983617c6d0";
+    sha256 = "5e394d9797e221f90a95e5eb9987e8c1faf4f2488964f521e8ca1628798f0a38";
   };
 
   propagatedBuildInputs = [
@@ -29,20 +30,26 @@ buildPythonPackage rec {
     pyenchant
     pygeoip
     pytz
+    sqlalchemy
     xmltodict
   ];
 
   # remove once https://github.com/sopel-irc/sopel/pull/1653 lands
   postPatch = ''
     substituteInPlace requirements.txt \
-      --replace "praw<6.0.0" "praw<7.0.0"
+      --replace "praw>=4.0.0,<6.0.0" "praw"
   '';
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
-  checkPhase = ''
-    HOME=$PWD # otherwise tries to create tmpdirs at root
-    pytest .
+  preCheck = ''
+    export TESTDIR=$(mktemp -d)
+    cp -R ./test $TESTDIR
+    pushd $TESTDIR
+  '';
+
+  postCheck = ''
+    popd
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/sorl_thumbnail/default.nix b/pkgs/development/python-modules/sorl_thumbnail/default.nix
index 6aaabaf19d9..f62af59c4ed 100644
--- a/pkgs/development/python-modules/sorl_thumbnail/default.nix
+++ b/pkgs/development/python-modules/sorl_thumbnail/default.nix
@@ -1,12 +1,14 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "sorl-thumbnail";
   version = "12.6.3";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/sortedcollections/default.nix b/pkgs/development/python-modules/sortedcollections/default.nix
index ffcf0bfeac0..3742c625205 100644
--- a/pkgs/development/python-modules/sortedcollections/default.nix
+++ b/pkgs/development/python-modules/sortedcollections/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "sortedcollections";
-  version = "1.1.2";
+  version = "1.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12nkw69lnyvh9wy6rsd0ng4bcia81vkhj1rj1kj1k3vzppn0sgmr";
+    sha256 = "0sihzm5aqz7r3irh4jn6rzicb7lf81d27z7vl6kaslnhwcsizhsq";
   };
 
   propagatedBuildInputs = [ sortedcontainers ];
diff --git a/pkgs/development/python-modules/sortedcontainers/default.nix b/pkgs/development/python-modules/sortedcontainers/default.nix
index c5ae45b8500..9df3d809f2c 100644
--- a/pkgs/development/python-modules/sortedcontainers/default.nix
+++ b/pkgs/development/python-modules/sortedcontainers/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "sortedcontainers";
-  version = "2.1.0";
+  version = "2.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "974e9a32f56b17c1bac2aebd9dcf197f3eb9cd30553c5852a3187ad162e1a03a";
+    sha256 = "4e73a757831fc3ca4de2859c422564239a31d8213d09a2a666e375807034d2ba";
   };
 
   # pypi tarball does not come with tests
diff --git a/pkgs/development/python-modules/sounddevice/default.nix b/pkgs/development/python-modules/sounddevice/default.nix
index 9a6baf80f04..eb46580a7b3 100644
--- a/pkgs/development/python-modules/sounddevice/default.nix
+++ b/pkgs/development/python-modules/sounddevice/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , cffi
 , numpy
 , portaudio
@@ -9,11 +10,12 @@
 
 buildPythonPackage rec {
   pname = "sounddevice";
-  version = "0.3.15";
+  version = "0.4.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "028f6e5df83027f4bfba5d6d61e6d46eb8689f9e647825e09f539920dee17d2c";
+    sha256 = "007cfef077c447eebbdbca3d510ca4365c211c2c6c4d2912d6eec43c8cbcbc02";
   };
 
   propagatedBuildInputs = [ cffi numpy portaudio ];
diff --git a/pkgs/development/python-modules/spacy/annotation-test/annotate.py b/pkgs/development/python-modules/spacy/annotation-test/annotate.py
new file mode 100644
index 00000000000..822eb8ac074
--- /dev/null
+++ b/pkgs/development/python-modules/spacy/annotation-test/annotate.py
@@ -0,0 +1,69 @@
+import pytest
+import spacy
+
+en_text = (
+    "When Sebastian Thrun started working on self-driving cars at "
+    "Google in 2007, few people outside of the company took him "
+    "seriously. “I can tell you very senior CEOs of major American "
+    "car companies would shake my hand and turn away because I wasn’t "
+    "worth talking to,” said Thrun, in an interview with Recode earlier "
+    "this week.")
+
+
+@pytest.fixture
+def en_core_web_sm():
+    return spacy.load("en_core_web_sm")
+
+
+@pytest.fixture
+def doc_en_core_web_sm(en_core_web_sm):
+    return en_core_web_sm(en_text)
+
+
+def test_entities(doc_en_core_web_sm):
+    entities = list(map(lambda e: (e.text, e.label_),
+                        doc_en_core_web_sm.ents))
+
+    assert entities == [
+        ('Sebastian Thrun', 'PERSON'),
+        ('Google', 'ORG'), ('2007', 'DATE'),
+        ('American', 'NORP'),
+        ('Thrun', 'ORG'),
+        ('earlier this week', 'DATE')
+    ]
+
+
+def test_nouns(doc_en_core_web_sm):
+    assert [
+        chunk.text for chunk in doc_en_core_web_sm.noun_chunks] == [
+        'Sebastian Thrun',
+        'self-driving cars',
+        'Google',
+        'few people',
+        'the company',
+        'him',
+        'I',
+        'you',
+        'very senior CEOs',
+        'major American car companies',
+        'my hand',
+        'I',
+        'Thrun',
+        'an interview',
+        'Recode']
+
+
+def test_verbs(doc_en_core_web_sm):
+    assert [
+        token.lemma_ for token in doc_en_core_web_sm if token.pos_ == "VERB"] == [
+        'start',
+        'work',
+        'drive',
+        'take',
+        'can',
+        'tell',
+        'would',
+        'shake',
+        'turn',
+        'talk',
+        'say']
diff --git a/pkgs/development/python-modules/spacy/annotation-test/default.nix b/pkgs/development/python-modules/spacy/annotation-test/default.nix
new file mode 100644
index 00000000000..1b066ff3c39
--- /dev/null
+++ b/pkgs/development/python-modules/spacy/annotation-test/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, pytest, spacy_models }:
+
+stdenv.mkDerivation {
+  name = "spacy-annotation-test";
+
+  src = ./.;
+
+  dontConfigure = true;
+  dontBuild = true;
+  doCheck = true;
+
+  checkInputs = [ pytest spacy_models.en_core_web_sm ];
+
+  checkPhase = ''
+    pytest annotate.py
+  '';
+
+  installPhase = ''
+    touch $out
+  '';
+
+  meta.timeout = 60;
+}
diff --git a/pkgs/development/python-modules/spacy/default.nix b/pkgs/development/python-modules/spacy/default.nix
index 51b04d372c5..077aea4dc9a 100644
--- a/pkgs/development/python-modules/spacy/default.nix
+++ b/pkgs/development/python-modules/spacy/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, callPackage
 , fetchPypi
 , pythonOlder
 , pytest
@@ -21,11 +22,11 @@
 
 buildPythonPackage rec {
   pname = "spacy";
-  version = "2.3.0";
+  version = "2.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0nri437dyapiq5gx8lbmjdfvqw2cnw3di13kp44rzr17bm5yh2jv";
+    sha256 = "07zf7kivj4r1n6xwisld7n90bpi095bqbc9xpv668grq1rpf53c1";
   };
 
   propagatedBuildInputs = [
@@ -55,6 +56,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.cfg \
+      --replace "blis>=0.4.0,<0.5.0" "blis>=0.4.0,<1.0" \
       --replace "catalogue>=0.0.7,<1.1.0" "catalogue>=0.0.7,<3.0" \
       --replace "plac>=0.9.6,<1.2.0" "plac>=0.9.6,<2.0" \
       --replace "srsly>=1.0.2,<1.1.0" "srsly>=1.0.2,<3.0" \
@@ -63,6 +65,8 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "spacy" ];
 
+  passthru.tests = callPackage ./annotation-test {};
+
   meta = with lib; {
     description = "Industrial-strength Natural Language Processing (NLP) with Python and Cython";
     homepage = "https://github.com/explosion/spaCy";
diff --git a/pkgs/development/python-modules/spacy/models.nix b/pkgs/development/python-modules/spacy/models.nix
index b83ae5d7ddc..c4a314ea474 100644
--- a/pkgs/development/python-modules/spacy/models.nix
+++ b/pkgs/development/python-modules/spacy/models.nix
@@ -14,6 +14,8 @@ let
     propagatedBuildInputs = [ spacy ]
       ++ lib.optionals (lang == "zh") [ jieba pkuseg ];
 
+    pythonImportsCheck = [ pname ];
+
     meta = with stdenv.lib; {
       description = "Models for the spaCy NLP library";
       homepage    = "https://github.com/explosion/spacy-models";
diff --git a/pkgs/development/python-modules/sparse/default.nix b/pkgs/development/python-modules/sparse/default.nix
index f60d7383ba1..d72830f3fb9 100644
--- a/pkgs/development/python-modules/sparse/default.nix
+++ b/pkgs/development/python-modules/sparse/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , isPy3k
+, dask
 , numpy
 , scipy
 , numba
@@ -19,7 +20,7 @@ buildPythonPackage rec {
     sha256 = "ffbca00a53f938e4f04230f582b210440efb54d74d60af1d1ced3864f61677ac";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest dask ];
   propagatedBuildInputs = [
     numpy
     scipy
diff --git a/pkgs/development/python-modules/spglib/default.nix b/pkgs/development/python-modules/spglib/default.nix
index 2044e379937..37b9c24a22e 100644
--- a/pkgs/development/python-modules/spglib/default.nix
+++ b/pkgs/development/python-modules/spglib/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "spglib";
-  version = "1.15.1";
+  version = "1.16.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0c1nbpd5wy361xga8lw36xwc9yyz7rylsjr0z7aw7bn3s35bnkbx";
+    sha256 = "94d056e48e7e6fe2e6fe4161471e774ac03221a6225fd83d551d3184220c1edf";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix b/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
index f90ed55ee34..95aa0c5fdeb 100644
--- a/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
@@ -1,11 +1,13 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-applehelp";
   version = "1.0.2";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix b/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
index 859181d675f..8eec8ab3267 100644
--- a/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
@@ -1,11 +1,13 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-htmlhelp";
   version = "1.0.3";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix b/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix
index 6c860cafa59..9b1d93287b0 100644
--- a/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix
@@ -1,11 +1,13 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-jsmath";
   version = "1.0.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix b/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
index 7c5c95d6ad4..d3e9f30f50a 100644
--- a/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , setuptools_scm
+, m2r
 , pyyaml
 , jsonschema
 , sphinxcontrib_httpdomain
@@ -16,7 +17,8 @@ buildPythonPackage rec {
     sha256 = "1c1bd10d7653912c59a42f727c62cbb7b75f7905ddd9ccc477ebfd1bc69f0cf3";
   };
 
-  propagatedBuildInputs = [setuptools_scm pyyaml jsonschema sphinxcontrib_httpdomain];
+  nativeBuildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ pyyaml jsonschema m2r sphinxcontrib_httpdomain ];
 
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix b/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
index 60b8a06510f..f8e826adf1f 100644
--- a/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
@@ -1,11 +1,13 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-qthelp";
   version = "1.0.3";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix b/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
index 5a5c0e3df6f..05f2749c49d 100644
--- a/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
@@ -1,11 +1,13 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-serializinghtml";
   version = "1.1.4";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix b/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
index f9987789ea7..0dc7297be69 100644
--- a/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-spelling";
-  version = "5.1.0";
+  version = "5.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "312386e2b622830230611871ae507c5f73ec141d4a28aa97aaefed65fe579905";
+    sha256 = "c8250ff02e6033c3aeabc41e91dc185168fecefb0c5722aaa3e2055a829e1e4c";
   };
 
   propagatedBuildInputs = [ sphinx pyenchant pbr ];
diff --git a/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix b/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
index bcf24413d63..6b03c245ebb 100644
--- a/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-tikz";
-  version = "0.4.8";
+  version = "0.4.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rvm0l40iz1z03d09irkqdwzi9gs6pn0203hylaqbix5c7gabwhy";
+    sha256 = "054429a04ed253256a676ecc29f0bae2c644d5bd1150cd95d658990a07ebc8fe";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix b/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix
index 2f4c3764a35..45027ba15c4 100644
--- a/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix
@@ -1,19 +1,20 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, sphinxcontrib-serializinghtml
 , six
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-websupport";
-  version = "1.2.2";
+  version = "1.2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "33c0db6c0635b9dc3e72629b7278ca3b9fa24c156eeeaf1674be8f268831d951";
+    sha256 = "4edf0223a0685a7c485ae5a156b6f529ba1ee481a1417817935b20bde1956232";
   };
 
-  propagatedBuildInputs = [ six ];
+  propagatedBuildInputs = [ six sphinxcontrib-serializinghtml ];
 
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/spidev/default.nix b/pkgs/development/python-modules/spidev/default.nix
new file mode 100644
index 00000000000..0d0fd582363
--- /dev/null
+++ b/pkgs/development/python-modules/spidev/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "spidev";
+  version = "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "03cicc9kpi5khhq0bl4dcy8cjcl2j488mylp8sna47hnkwl5qzwa";
+  };
+
+  # package does not include tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "spidev" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/doceme/py-spidev";
+    description = "Python bindings for Linux SPI access through spidev";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/splinter/default.nix b/pkgs/development/python-modules/splinter/default.nix
index 1ff38f0a6df..fde5733a864 100644
--- a/pkgs/development/python-modules/splinter/default.nix
+++ b/pkgs/development/python-modules/splinter/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "splinter";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9e92535f273622507ac157612c3bb0e9cee7b5ccd2aa097d47b408e34c2ca356";
+    sha256 = "459e39e7a9f7572db6f1cdb5fdc5ccfc6404f021dccb969ee6287be2386a40db";
   };
 
   propagatedBuildInputs = [ selenium ];
diff --git a/pkgs/development/python-modules/spotipy/default.nix b/pkgs/development/python-modules/spotipy/default.nix
index fb1c8474695..47b12a3565d 100644
--- a/pkgs/development/python-modules/spotipy/default.nix
+++ b/pkgs/development/python-modules/spotipy/default.nix
@@ -1,15 +1,23 @@
-{ stdenv, buildPythonPackage, fetchPypi, requests }:
+{ stdenv, buildPythonPackage, fetchPypi, requests, six, mock }:
 
 buildPythonPackage rec {
   pname = "spotipy";
-  version = "2.12.0";
+  version = "2.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f3a08edd516ffaf0731d40fdb7943445fe7b1b412700d042cbd168a726685222";
+    sha256 = "d1a85b8831ed60d2290ab9bbba289c548fb9680889757252c02dab2f2327d865";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [ requests six ];
+  checkInputs = [ mock ];
+
+  preConfigure = ''
+    substituteInPlace setup.py \
+      --replace "mock==2.0.0" "mock"
+  '';
+
+  pythonImportsCheck = [ "spotipy" ];
 
   meta = with stdenv.lib; {
     homepage = "https://spotipy.readthedocs.org/";
diff --git a/pkgs/development/python-modules/spyder-kernels/0.x.nix b/pkgs/development/python-modules/spyder-kernels/0.x.nix
index c4a61520333..63ed0604fe5 100644
--- a/pkgs/development/python-modules/spyder-kernels/0.x.nix
+++ b/pkgs/development/python-modules/spyder-kernels/0.x.nix
@@ -1,4 +1,4 @@
-{ 
+{
   lib
   , buildPythonPackage
   , fetchFromGitHub
@@ -6,7 +6,7 @@
   , ipykernel
   , wurlitzer
   , jupyter_client
-  , pyzmq 
+  , pyzmq
   , numpy
   , pandas
   , scipy
diff --git a/pkgs/development/python-modules/spyder-kernels/default.nix b/pkgs/development/python-modules/spyder-kernels/default.nix
index 9a6d51e4830..7652d2cf4c9 100644
--- a/pkgs/development/python-modules/spyder-kernels/default.nix
+++ b/pkgs/development/python-modules/spyder-kernels/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "spyder-kernels";
-  version = "1.9.1";
+  version = "1.9.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "48f71252d0a7c7a91242e70d47618a432ee5f9f6666e651473a54bc55513571c";
+    sha256 = "877109d0691376f8ffb380ec1daf9b867958231065660277dbc5ccf0b4bf87d0";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/spyder/3.nix b/pkgs/development/python-modules/spyder/3.nix
index e5c5683f5dc..cac20ad6fce 100644
--- a/pkgs/development/python-modules/spyder/3.nix
+++ b/pkgs/development/python-modules/spyder/3.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    jedi pycodestyle psutil pyflakes rope pylint keyring numpydoc 
+    jedi pycodestyle psutil pyflakes rope pylint keyring numpydoc
     qtconsole qtawesome nbconvert mccabe pyopengl cloudpickle spyder-kernels_0_5
     pygments qtpy pyzmq chardet pyqtwebengine
   ];
diff --git a/pkgs/development/python-modules/spyder/default.nix b/pkgs/development/python-modules/spyder/default.nix
index f530d0f0cdd..acaa2e888f8 100644
--- a/pkgs/development/python-modules/spyder/default.nix
+++ b/pkgs/development/python-modules/spyder/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "spyder";
-  version = "4.1.3";
+  version = "4.1.4";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c88d973c6423fe0017818482a98163bb72e7f6a8c3127ff464930109df0958d9";
+    sha256 = "6946b2128afaf1b64e878a74d33f9abd60c91f75949b3d05f305b3c3f5fec1e2";
   };
 
   nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
diff --git a/pkgs/development/python-modules/sqlalchemy-citext/default.nix b/pkgs/development/python-modules/sqlalchemy-citext/default.nix
index 300941e2617..bf8a9d3bbdb 100644
--- a/pkgs/development/python-modules/sqlalchemy-citext/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-citext/default.nix
@@ -7,20 +7,21 @@
 
 buildPythonPackage rec {
   pname = "sqlalchemy-citext";
-  version = "1.6.3";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1d66e7d49826fec28a9ce69053fdf82d3a5ff397968c5bf38a0d83dcb4bf2303";
+    sha256 = "69ba00f5505f92a1455a94eefc6d3fcf72dda3691ab5398a0b4d0d8d85bd6aab";
   };
 
   propagatedBuildInputs = [
     sqlalchemy
   ];
 
-  checkPhase = ''
-    ${python.interpreter} tests/test_citext.py
-  '';
+  # tests are not packaged in pypi tarball
+  doCheck = false;
+
+  pythonImportsCheck = [ "citext" ];
 
   meta = with lib; {
     description = "A sqlalchemy plugin that allows postgres use of CITEXT";
diff --git a/pkgs/development/python-modules/sqlalchemy-continuum/default.nix b/pkgs/development/python-modules/sqlalchemy-continuum/default.nix
new file mode 100644
index 00000000000..4050adc29f5
--- /dev/null
+++ b/pkgs/development/python-modules/sqlalchemy-continuum/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, lib
+, fetchPypi
+, buildPythonPackage
+, flask
+, flask_login
+, flask_sqlalchemy
+, flexmock
+, pytestCheckHook
+, sqlalchemy
+, sqlalchemy-utils
+, sqlalchemy-i18n
+}:
+
+buildPythonPackage rec {
+  pname = "SQLAlchemy-Continuum";
+  version = "1.3.11";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1c9yd9s98crqgs39rc2ld2r0nchgyjrfbjdlqb99y4hhc6lv04xw";
+  };
+
+  propagatedBuildInputs = [
+    sqlalchemy
+    sqlalchemy-utils
+  ];
+
+  # indicate tests that we don't have a database server at hand
+  DB = "sqlite";
+
+  checkInputs = [
+    pytestCheckHook
+    sqlalchemy-i18n
+    flask
+    flask_login
+    flask_sqlalchemy
+    flexmock
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/kvesteri/sqlalchemy-continuum/";
+    description = "Versioning and auditing extension for SQLAlchemy";
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/sqlalchemy-i18n/default.nix b/pkgs/development/python-modules/sqlalchemy-i18n/default.nix
new file mode 100644
index 00000000000..4ef0adefe3e
--- /dev/null
+++ b/pkgs/development/python-modules/sqlalchemy-i18n/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, lib
+, fetchPypi
+, buildPythonPackage
+, sqlalchemy
+, sqlalchemy-utils
+, psycopg2
+}:
+
+buildPythonPackage rec {
+  pname = "SQLAlchemy-i18n";
+  version = "1.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "15xah8643p29kciz365ixs9pbsflj92pzr2d9anbdh2biyf4cka8";
+  };
+
+  propagatedBuildInputs = [
+    sqlalchemy
+    sqlalchemy-utils
+  ];
+
+  # tests require running a postgresql server
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/kvesteri/sqlalchemy-i18n";
+    description = "Internationalization extension for SQLAlchemy models";
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/sqlalchemy-utils/default.nix b/pkgs/development/python-modules/sqlalchemy-utils/default.nix
index 67242a99165..657ec7ac072 100644
--- a/pkgs/development/python-modules/sqlalchemy-utils/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-utils/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "sqlalchemy-utils";
-  version = "0.36.5";
+  version = "0.36.6";
 
   src = fetchPypi {
     inherit version;
     pname = "SQLAlchemy-Utils";
-    sha256 = "0d3lrhqdw3lhkj79wpfxi6cmlxnw99prpq8m70c5q8kinv26h038";
+    sha256 = "0srs5w486wp5zydjs70igi5ypgxhm6h73grb85jz03fqpqaanzvs";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sqlalchemy/default.nix b/pkgs/development/python-modules/sqlalchemy/default.nix
index cd2b00021e7..a4cb3bd6d73 100644
--- a/pkgs/development/python-modules/sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "SQLAlchemy";
-  version = "1.3.17";
+  version = "1.3.19";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "156a27548ba4e1fed944ff9fcdc150633e61d350d673ae7baaf6c25c04ac1f71";
+    sha256 = "3bba2e9fbedb0511769780fe1d63007081008c5c2d7d715e91858c94dbaa260e";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/sqlitedict/default.nix b/pkgs/development/python-modules/sqlitedict/default.nix
index 5037aa2c368..1c28d6a0976 100644
--- a/pkgs/development/python-modules/sqlitedict/default.nix
+++ b/pkgs/development/python-modules/sqlitedict/default.nix
@@ -3,20 +3,20 @@
 buildPythonPackage rec {
   pname = "sqlitedict";
   version = "1.6.0";
-  
+
   src = fetchFromGitHub {
     owner = "RaRe-Technologies";
     repo = "sqlitedict";
     rev = version;
     sha256 = "1yq94lgpny9qcfbsl39npjvrsjfggi3lj2kpzcsxcfdfgxag6m2m";
   };
-  
+
   checkInputs = [ pytest ];
-  
+
   checkPhase = ''
     pytest tests
   '';
-  
+
   meta = with lib; {
     description = "Persistent, thread-safe dict";
     homepage = "https://github.com/RaRe-Technologies/sqlitedict";
diff --git a/pkgs/development/python-modules/sqlmap/default.nix b/pkgs/development/python-modules/sqlmap/default.nix
index 81aede240ee..f2decd2c0dd 100644
--- a/pkgs/development/python-modules/sqlmap/default.nix
+++ b/pkgs/development/python-modules/sqlmap/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "sqlmap";
-  version = "1.4.6";
+  version = "1.4.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0da3a6700a370fcd671265502c7c4aca39a1d055de9a1dcc8b9b751c9ad3efa8";
+    sha256 = "af789cc2d9b7cab2f71087967867b3587db9636b38bef1ffb39165a0675a6d87";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/srsly/default.nix b/pkgs/development/python-modules/srsly/default.nix
index 54590f2e35a..d1de78788d8 100644
--- a/pkgs/development/python-modules/srsly/default.nix
+++ b/pkgs/development/python-modules/srsly/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "srsly";
-  version = "2.0.1";
+  version = "2.2.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fa3c7375be8fe75f23c27feafbfb5f738d55ffdbf02964c6896fb7684f519a52";
+    sha256 = "1h246zvh2wsqyjlw3a3bwmd1zwrkgpflk4z4i9k3sqp2j1jika54";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/starfish/default.nix b/pkgs/development/python-modules/starfish/default.nix
index 13517aceb22..38f24111174 100644
--- a/pkgs/development/python-modules/starfish/default.nix
+++ b/pkgs/development/python-modules/starfish/default.nix
@@ -26,11 +26,11 @@
 
 buildPythonPackage rec {
   pname = "starfish";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "73202fbc560519dc3b61f1f5e4341c598f6bf50b4509bb09dc22a729591a1042";
+    sha256 = "d635ef7b412b5781d6f98cd080b45098de6f3c7f7303e929b07c88b49d98ff12";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/starlette/default.nix b/pkgs/development/python-modules/starlette/default.nix
index 842622e56f8..ff8a93d335e 100644
--- a/pkgs/development/python-modules/starlette/default.nix
+++ b/pkgs/development/python-modules/starlette/default.nix
@@ -21,19 +21,14 @@
 buildPythonPackage rec {
   pname = "starlette";
 
-  # This is not the latest version of Starlette, however, later
-  # versions of Starlette break FastAPI due to
-  # https://github.com/tiangolo/fastapi/issues/683. Please update when
-  # possible. FastAPI is currently Starlette's only dependent.
-
-  version = "0.13.4";
+  version = "0.13.8";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "1rk20rj62iigkkikb80bmalriyg1j3g28s25l8z2gijagv1v5c7l";
+    sha256 = "11i0yd8cqwscixajl734g11vf8pghki11c81chzfh8ifmj6mf9jk";
   };
 
   propagatedBuildInputs = [
@@ -57,6 +52,7 @@ buildPythonPackage rec {
   checkPhase = ''
     pytest --ignore=tests/test_graphql.py
   '';
+  pythonImportsCheck = [ "starlette" ];
 
   meta = with lib; {
     homepage = "https://www.starlette.io/";
diff --git a/pkgs/development/python-modules/statsmodels/default.nix b/pkgs/development/python-modules/statsmodels/default.nix
index c65fb0990f0..ba6d0b64f54 100644
--- a/pkgs/development/python-modules/statsmodels/default.nix
+++ b/pkgs/development/python-modules/statsmodels/default.nix
@@ -1,7 +1,7 @@
 { lib
-, self
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , nose
 , numpy
 , scipy
@@ -14,17 +14,20 @@
 buildPythonPackage rec {
   pname = "statsmodels";
   version = "0.11.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "5bde3fa0a35a91b45dba7cbc28270b5b649ff1d721c89290883f6e831672d5f0";
   };
 
-  checkInputs = with self; [ nose ];
-  propagatedBuildInputs = with self; [numpy scipy pandas patsy cython matplotlib];
+  nativeBuildInputs = [ cython ];
+  checkInputs = [ nose ];
+  propagatedBuildInputs = [ numpy scipy pandas patsy matplotlib ];
 
   # Huge test suites with several test failures
   doCheck = false;
+  pythonImportsCheck = [ "statsmodels" ];
 
   meta = {
     description = "Statistical computations and models for use with SciPy";
diff --git a/pkgs/development/python-modules/stevedore/default.nix b/pkgs/development/python-modules/stevedore/default.nix
index be4063c7722..2c09017d05b 100644
--- a/pkgs/development/python-modules/stevedore/default.nix
+++ b/pkgs/development/python-modules/stevedore/default.nix
@@ -1,19 +1,30 @@
-{ stdenv, buildPythonPackage, fetchPypi, pbr, setuptools, six }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, importlib-metadata
+, pbr
+, setuptools
+, six
+}:
 
 buildPythonPackage rec {
   pname = "stevedore";
-  version = "2.0.0";
+  version = "3.2.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "001e90cd704be6470d46cc9076434e2d0d566c1379187e7013eb296d3a6032d9";
+    sha256 = "1r8m8g7f13wdmfw5m7k0vj7bcx3psfg5yg2i8jlb08nrpsjily9q";
   };
 
-  doCheck = false;
+  propagatedBuildInputs = [ pbr setuptools six ]
+    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
-  propagatedBuildInputs = [ pbr setuptools six ];
+  doCheck = false;
+  pythonImportsCheck = [ "stevedore" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Manage dynamic plugins for Python applications";
     homepage = "https://pypi.python.org/pypi/stevedore";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/streamz/default.nix b/pkgs/development/python-modules/streamz/default.nix
index 9bbc312b183..420ee7b2472 100644
--- a/pkgs/development/python-modules/streamz/default.nix
+++ b/pkgs/development/python-modules/streamz/default.nix
@@ -1,38 +1,26 @@
 { lib, buildPythonPackage, fetchPypi, fetchpatch
-, tornado
-, toolz
-, zict
-, six
-, pytest
-, networkx
-, distributed
 , confluent-kafka
+, distributed
+, flaky
 , graphviz
+, networkx
+, pytest
 , requests
+, six
+, toolz
+, tornado
+, zict
 }:
 
 buildPythonPackage rec {
   pname = "streamz";
-  version = "0.5.2";
+  version = "0.5.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "127rpdjgkcyjifmkqbhmqfbzlgi32n54rybrdxja610qr906y40c";
+    sha256 = "787ade4796c5b2e79af2aac678841ba3748a65a3adce150697dcdd31c4f80365";
   };
 
-  patches = [
-    # fix networkx rename issue of GiGraph.node -> DiGraph.nodes, remove on next bump
-    ( fetchpatch {
-      url = "https://github.com/python-streamz/streamz/commit/f8b7bdb6bcb9dd107677e82e755ff4695bf0c4be.patch";
-      sha256 = "1b2frp0j369gf55plxk2pigblhsc44m0rm9az01y83cjlcm26x2s";
-    })
-    # also, fix networkx rename issue of GiGraph.node -> DiGraph.nodes, remove on next bump
-    ( fetchpatch {
-      url = "https://github.com/python-streamz/streamz/commit/f7603f4cbea54f1548885881206a3ca9d6e52250.patch";
-      sha256 = "1125kqiaz6b3cifz0yk1zrkxj5804lfzl4kc58jhqajv8rsrbs45";
-    })
-  ];
-
   propagatedBuildInputs = [
     networkx
     tornado
@@ -44,6 +32,7 @@ buildPythonPackage rec {
   checkInputs = [
     confluent-kafka
     distributed
+    flaky
     graphviz
     pytest
     requests
diff --git a/pkgs/development/python-modules/strictyaml/default.nix b/pkgs/development/python-modules/strictyaml/default.nix
index 2e4b416f047..44345a9aa50 100644
--- a/pkgs/development/python-modules/strictyaml/default.nix
+++ b/pkgs/development/python-modules/strictyaml/default.nix
@@ -1,17 +1,19 @@
 { buildPythonPackage
 , lib
 , fetchPypi
+, isPy27
 , ruamel_yaml
 , python-dateutil
 }:
 
 buildPythonPackage rec {
-  version = "1.0.6";
+  version = "1.1.0";
   pname = "strictyaml";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dd687a32577e0b832619ce0552eac86d6afad5fa7b61ab041bb765881c6a1f36";
+    sha256 = "6b07dbd4f77ab023ed4167c43ffc1b9f9354fb6075cc6ff3b91fefcbb80342ca";
   };
 
   propagatedBuildInputs = [ ruamel_yaml python-dateutil ];
@@ -19,6 +21,7 @@ buildPythonPackage rec {
   # Library tested with external tool
   # https://hitchdev.com/approach/contributing-to-hitch-libraries/
   doCheck = false;
+  pythonImportsCheck = [ "strictyaml" ];
 
   meta = with lib; {
     description = "Strict, typed YAML parser";
diff --git a/pkgs/development/python-modules/stripe/default.nix b/pkgs/development/python-modules/stripe/default.nix
index d675a1fd350..c2f170fc697 100644
--- a/pkgs/development/python-modules/stripe/default.nix
+++ b/pkgs/development/python-modules/stripe/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "stripe";
-  version = "2.48.0";
+  version = "2.50.0";
 
   # 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 = "1w9ns4jjj0p50im9vbjn084zph1g2sfa6l01ydl98qsyj76f4psi";
+    sha256 = "0c3c02c9b65644502a701d4ff939964799bd1a581fb3f8bf75a3f8675527ef48";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/stumpy/default.nix b/pkgs/development/python-modules/stumpy/default.nix
index 4c26a62060e..3ace2e925cb 100644
--- a/pkgs/development/python-modules/stumpy/default.nix
+++ b/pkgs/development/python-modules/stumpy/default.nix
@@ -14,14 +14,14 @@
 , codecov
 }:
 
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "stumpy";
-  version = "1.0";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "TDAmeritrade";
     repo = "stumpy";
-    rev = "115e477c1eec9291ab7c1fd8da30d67a70854f8e"; # no git version tag
+    rev = "v${version}";
     sha256 = "0s2s3y855jjwdb7p55zx8lknplz58ghpw547yzmqisacr968b67w";
   };
 
@@ -42,8 +42,9 @@ buildPythonPackage {
     codecov
   ];
 
+  # ignore changed numpy operations
   checkPhase = ''
-    pytest
+    pytest -k 'not allc'
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/stytra/default.nix b/pkgs/development/python-modules/stytra/default.nix
index 9fba92ca12f..88adbe4f7d9 100644
--- a/pkgs/development/python-modules/stytra/default.nix
+++ b/pkgs/development/python-modules/stytra/default.nix
@@ -30,12 +30,12 @@
 
 buildPythonPackage rec {
   pname = "stytra";
-  version = "0.8.33";
+  version = "0.8.34";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b0aacc8e2c1bba33c337ebc76c0d8f2971c113d298aea2a375d84a5eeff5d83e";
+    sha256 = "aab9d07575ef599a9c0ae505656e3c03ec753462df3c15742f1f768f2b578f0a";
   };
   doCheck = false;
   checkInputs = [
diff --git a/pkgs/development/python-modules/sunpy/default.nix b/pkgs/development/python-modules/sunpy/default.nix
index ea937bef1be..6830c7c1343 100644
--- a/pkgs/development/python-modules/sunpy/default.nix
+++ b/pkgs/development/python-modules/sunpy/default.nix
@@ -2,27 +2,29 @@
 , lib
 , buildPythonPackage
 , fetchFromGitHub
-, numpy
-, scipy
-, matplotlib
-, pandas
-, astropy
-, parfive
 , pythonOlder
-, sqlalchemy
-, scikitimage
-, glymur
-, beautifulsoup4
-, drms
-, python-dateutil
-, zeep
-, tqdm
+
 , asdf
+, astropy
 , astropy-helpers
+, beautifulsoup4
+, drms
+, glymur
 , hypothesis
+, matplotlib
+, numpy
+, pandas
+, parfive
 , pytest-astropy
-, pytestcov
 , pytest-mock
+, pytestcov
+, python-dateutil
+, scikitimage
+, scipy
+, sqlalchemy
+, towncrier
+, tqdm
+, zeep
 }:
 
 buildPythonPackage rec {
@@ -47,6 +49,7 @@ buildPythonPackage rec {
     parfive
     sqlalchemy
     scikitimage
+    towncrier
     glymur
     beautifulsoup4
     drms
diff --git a/pkgs/development/python-modules/supervisor/default.nix b/pkgs/development/python-modules/supervisor/default.nix
index 343aaddfbb5..280adcee232 100644
--- a/pkgs/development/python-modules/supervisor/default.nix
+++ b/pkgs/development/python-modules/supervisor/default.nix
@@ -7,13 +7,20 @@
 
 buildPythonPackage rec {
   pname = "supervisor";
-  version = "4.2.0";
+  version = "4.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "64082ebedf6d36ff409ab2878f1aad5c9035f916c5f15a9a1ec7dffc6dfbbed8";
+    sha256 = "c479c875853e9c013d1fa73e529fd2165ff1ecaecc7e82810ba57e7362ae984d";
   };
 
+  patches = [
+    # SOMAXCONN limit of glibc-2.31 has been increased from 128 to 4096:
+    # * https://sourceware.org/git/?p=glibc.git;a=commit;h=96958e2700f5b4f4d1183a0606b2b9848a53ea44
+    # * https://github.com/Supervisor/supervisor/issues/1346
+    ./glibc-2.31.patch
+  ];
+
   # wants to write to /tmp/foo which is likely already owned by another
   # nixbld user on hydra
   doCheck = !stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/supervisor/glibc-2.31.patch b/pkgs/development/python-modules/supervisor/glibc-2.31.patch
new file mode 100644
index 00000000000..b2d9564eea1
--- /dev/null
+++ b/pkgs/development/python-modules/supervisor/glibc-2.31.patch
@@ -0,0 +1,13 @@
+diff --git a/supervisor/tests/base.py b/supervisor/tests/base.py
+index 643e609..8aa45e7 100644
+--- a/supervisor/tests/base.py
++++ b/supervisor/tests/base.py
+@@ -358,7 +358,7 @@ class DummySocketConfig:
+         return not self.__eq__(other)
+ 
+     def get_backlog(self):
+-        return 128
++        return 4096
+ 
+     def create_and_bind(self):
+         return DummySocket(self.fd)
diff --git a/pkgs/development/python-modules/suseapi/default.nix b/pkgs/development/python-modules/suseapi/default.nix
index 0e9f4f43656..1c36f45090b 100644
--- a/pkgs/development/python-modules/suseapi/default.nix
+++ b/pkgs/development/python-modules/suseapi/default.nix
@@ -36,4 +36,4 @@ buildPythonPackage rec {
     description = "Python module to work with various SUSE services";
     license = lib.licenses.gpl3Plus;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/svglib/default.nix b/pkgs/development/python-modules/svglib/default.nix
new file mode 100644
index 00000000000..acd8fcb7816
--- /dev/null
+++ b/pkgs/development/python-modules/svglib/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, cssselect2
+, lxml
+, pillow
+, pytest
+, reportlab
+, tinycss2
+}:
+
+buildPythonPackage rec {
+  pname = "svglib";
+  version = "1.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ff01593e8c07ea462d3742e1f4141bfa261cbd4400ceb25dfb8fec3508ad0e50";
+  };
+
+  disabled = !isPy3k;
+
+  propagatedBuildInputs = [
+    cssselect2
+    lxml
+    pillow
+    reportlab
+    tinycss2
+  ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  # Ignore tests that require network access (TestWikipediaFlags and TestW3CSVG), and tests that
+  # require files missing in the 1.0.0 PyPI release (TestOtherFiles).
+  checkPhase = ''
+    py.test svglib tests -k 'not TestWikipediaFlags and not TestW3CSVG and not TestOtherFiles'
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/deeplook/svglib";
+    description = "A pure-Python library for reading and converting SVG";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ trepetti ];
+  };
+}
diff --git a/pkgs/development/python-modules/sybil/default.nix b/pkgs/development/python-modules/sybil/default.nix
index 358c70d3425..a6f604dea03 100644
--- a/pkgs/development/python-modules/sybil/default.nix
+++ b/pkgs/development/python-modules/sybil/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonApplication rec {
   pname = "sybil";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0x34mzxvxj1kkld7sz9n90pdcinxcan56jg6cnnwkv87v7s1vna6";
+    sha256 = "fc46117619f2f704d1d1b02634fa3285f40479a3008172763b9998fe964f4d11";
   };
 
   checkInputs = [ pytest nose ];
diff --git a/pkgs/development/python-modules/sympy/default.nix b/pkgs/development/python-modules/sympy/default.nix
index 59605f555d3..52e2bb5af12 100644
--- a/pkgs/development/python-modules/sympy/default.nix
+++ b/pkgs/development/python-modules/sympy/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "sympy";
-  version = "1.6"; # Upgrades may break sage. Please test or ping @timokau.
+  version = "1.6.2"; # Upgrades may break sage. Please test or ping @timokau.
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9769e3d2952e211b1245f1d0dfdbfbdde1f7779a3953832b7dd2b88a21ca6cc6";
+    sha256 = "1cfadcc80506e4b793f5b088558ca1fcbeaec24cd6fc86f1fdccaa3ee1d48708";
   };
 
   checkInputs = [ glibcLocales ];
diff --git a/pkgs/development/python-modules/tag-expressions/default.nix b/pkgs/development/python-modules/tag-expressions/default.nix
new file mode 100644
index 00000000000..7082ca54154
--- /dev/null
+++ b/pkgs/development/python-modules/tag-expressions/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "tag-expressions";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1c0a49c3c0357976822b03c43db8d4a1c5548e16fb07ac939c10bbd5183f529d";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Package to parse logical tag expressions";
+    homepage = "http://github.com/timofurrer/tag-expressions";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/pkgs/development/python-modules/tasklib/default.nix b/pkgs/development/python-modules/tasklib/default.nix
index a49ba37e91a..1f204aecf14 100644
--- a/pkgs/development/python-modules/tasklib/default.nix
+++ b/pkgs/development/python-modules/tasklib/default.nix
@@ -8,11 +8,11 @@ wsl_stub = writeShellScriptBin "wsl" "true";
 
 in buildPythonPackage rec {
   pname = "tasklib";
-  version = "2.1.1";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e2cfe5073b9d30c564e6c547fdb0f45eb66da5d4d138c20fb87d549315892f2c";
+    sha256 = "da66e84614b09443aa67c4dc2922213417329c39511dc5b384d8a5671e29115e";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/tblib/default.nix b/pkgs/development/python-modules/tblib/default.nix
index e7cbb7848f4..86992e6e16a 100644
--- a/pkgs/development/python-modules/tblib/default.nix
+++ b/pkgs/development/python-modules/tblib/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "tblib";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "229bee3754cb5d98b4837dd5c4405e80cfab57cb9f93220410ad367f8b352344";
+    sha256 = "059bd77306ea7b419d4f76016aef6d7027cc8a0785579b5aad198803435f882c";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/tempora/0001-pytest-remove-flake8-black-coverage.patch b/pkgs/development/python-modules/tempora/0001-pytest-remove-flake8-black-coverage.patch
deleted file mode 100644
index f807a6d2515..00000000000
--- a/pkgs/development/python-modules/tempora/0001-pytest-remove-flake8-black-coverage.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 9dfd2a8fac4a643fd007390762ccc8564588b4bf Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
-Date: Thu, 25 Jun 2020 10:16:52 +0100
-Subject: [PATCH] pytest: remove flake8/black/coverage
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
----
- pytest.ini | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pytest.ini b/pytest.ini
-index bd6998d..a464529 100644
---- a/pytest.ini
-+++ b/pytest.ini
-@@ -1,6 +1,6 @@
- [pytest]
- norecursedirs=dist build .tox .eggs
--addopts=--doctest-modules --flake8 --black --cov
-+addopts=--doctest-modules
- doctest_optionflags=ALLOW_UNICODE ELLIPSIS
- filterwarnings=
- 	# suppress known warning
--- 
-2.27.0
-
diff --git a/pkgs/development/python-modules/tempora/default.nix b/pkgs/development/python-modules/tempora/default.nix
index d4139ce7621..238b250136c 100644
--- a/pkgs/development/python-modules/tempora/default.nix
+++ b/pkgs/development/python-modules/tempora/default.nix
@@ -1,28 +1,27 @@
 { lib, buildPythonPackage, fetchPypi
 , setuptools_scm, pytest, pytest-freezegun, freezegun, backports_unittest-mock
-, six, pytz, jaraco_functools, pythonOlder }:
+, six, pytz, jaraco_functools, pythonOlder
+, pytest-flake8, pytestcov, pytest-black, pytest-mypy
+}:
 
 buildPythonPackage rec {
   pname = "tempora";
-  version = "3.0.0";
+  version = "4.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e370d822cf48f5356aab0734ea45807250f5120e291c76712a1d766b49ae34f8";
+    sha256 = "599a3a910b377f2b544c7b221582ecf4cb049b017c994b37f2b1a9ed1099716e";
   };
 
   disabled = pythonOlder "3.2";
 
   nativeBuildInputs = [ setuptools_scm ];
 
-  patches = [
-    ./0001-pytest-remove-flake8-black-coverage.patch
-  ];
-
   propagatedBuildInputs = [ six pytz jaraco_functools ];
 
   checkInputs = [
     pytest-freezegun pytest freezegun backports_unittest-mock
+    pytest-flake8 pytestcov pytest-black pytest-mypy
   ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/tensorflow-estimator/2/default.nix b/pkgs/development/python-modules/tensorflow-estimator/2/default.nix
index dbac36ff07f..16c3eeec7a1 100644
--- a/pkgs/development/python-modules/tensorflow-estimator/2/default.nix
+++ b/pkgs/development/python-modules/tensorflow-estimator/2/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "tensorflow-estimator";
-  version = "2.1.0";
+  version = "2.2.0";
   format = "wheel";
 
   src = fetchPypi {
     pname = "tensorflow_estimator";
     inherit version format;
-    sha256 = "0wk9viil54ms1s2ir7zxygqa425i69hx8zngwhdqvw9nlr4gdig5";
+    sha256 = "1hkx4k6927xn4qpwiba6wa56n0qqm7s23bymm377j9bz2bfsr7fh";
   };
 
   propagatedBuildInputs = [ mock numpy absl-py ];
diff --git a/pkgs/development/python-modules/tensorflow/1/default.nix b/pkgs/development/python-modules/tensorflow/1/default.nix
index 4dc5c57070d..5f65004b3d6 100644
--- a/pkgs/development/python-modules/tensorflow/1/default.nix
+++ b/pkgs/development/python-modules/tensorflow/1/default.nix
@@ -23,9 +23,9 @@
 , xlaSupport ? cudaSupport
 # Default from ./configure script
 , cudaCapabilities ? [ "3.5" "5.2" ]
-, sse42Support ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") ["westmere" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512"]
-, avx2Support  ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [                                     "haswell" "broadwell" "skylake" "skylake-avx512"]
-, fmaSupport   ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [                                     "haswell" "broadwell" "skylake" "skylake-avx512"]
+, sse42Support ? stdenv.hostPlatform.sse4_2Support
+, avx2Support  ? stdenv.hostPlatform.avx2Support
+, fmaSupport   ? stdenv.hostPlatform.fmaSupport
 # Darwin deps
 , Foundation, Security
 }:
diff --git a/pkgs/development/python-modules/tensorflow/2/default.nix b/pkgs/development/python-modules/tensorflow/2/default.nix
index 4dd378d1410..eedd6e6d0df 100644
--- a/pkgs/development/python-modules/tensorflow/2/default.nix
+++ b/pkgs/development/python-modules/tensorflow/2/default.nix
@@ -23,9 +23,9 @@
 , xlaSupport ? cudaSupport
 # Default from ./configure script
 , cudaCapabilities ? [ "3.5" "5.2" ]
-, sse42Support ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") ["westmere" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylake-avx512"]
-, avx2Support  ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [                                     "haswell" "broadwell" "skylake" "skylake-avx512"]
-, fmaSupport   ? builtins.elem (stdenv.hostPlatform.platform.gcc.arch or "default") [                                     "haswell" "broadwell" "skylake" "skylake-avx512"]
+, sse42Support ? stdenv.hostPlatform.sse4_2Support
+, avx2Support  ? stdenv.hostPlatform.avx2Support
+, fmaSupport   ? stdenv.hostPlatform.fmaSupport
 # Darwin deps
 , Foundation, Security
 }:
diff --git a/pkgs/development/python-modules/test-tube/default.nix b/pkgs/development/python-modules/test-tube/default.nix
new file mode 100644
index 00000000000..f0c26292c84
--- /dev/null
+++ b/pkgs/development/python-modules/test-tube/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, pytestCheckHook
+, future
+, imageio
+, numpy
+, pandas
+, pytorch
+, tensorflow-tensorboard
+}:
+
+buildPythonPackage rec {
+  pname = "test-tube";
+  version = "0.7.5";
+
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "williamFalcon";
+    repo = pname;
+    rev = version;
+    sha256 = "0zpvlp1ybp2dhgap8jsalpfdyg8ycjhlfi3xrdf5dqffqvh2yhp2";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  propagatedBuildInputs = [
+    future
+    imageio
+    numpy
+    pandas
+    pytorch
+    tensorflow-tensorboard
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/williamFalcon/test-tube";
+    description = "Framework-agnostic library to track and parallelize hyperparameter search in machine learning experiments";
+    license = licenses.mit;
+    maintainers = [ maintainers.tbenst ];
+  };
+}
diff --git a/pkgs/development/python-modules/testfixtures/default.nix b/pkgs/development/python-modules/testfixtures/default.nix
index b3db882c82b..7c875ec0591 100644
--- a/pkgs/development/python-modules/testfixtures/default.nix
+++ b/pkgs/development/python-modules/testfixtures/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, isPy27
+{ lib, buildPythonPackage, fetchPypi, fetchpatch, isPy27
 , mock, pytest, sybil, zope_component, twisted }:
 
 buildPythonPackage rec {
@@ -15,12 +15,16 @@ buildPythonPackage rec {
   doCheck = !isPy27;
   checkPhase = ''
     # django is too much hasle to setup at the moment
-    pytest -W ignore::DeprecationWarning --ignore=testfixtures/tests/test_django testfixtures/tests
+    pytest -W ignore::DeprecationWarning \
+      --ignore=testfixtures/tests/test_django \
+      -k 'not (log_then_patch or our_wrap_dealing_with_mock_patch or patch_with_dict)' \
+      testfixtures/tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/Simplistix/testfixtures";
     description = "A collection of helpers and mock objects for unit tests and doc tests";
     license = licenses.mit;
+    maintainers = with maintainers; [ siriobalmelli ];
   };
 }
diff --git a/pkgs/development/python-modules/thespian/default.nix b/pkgs/development/python-modules/thespian/default.nix
index add36ccf1b6..74f94aaf255 100644
--- a/pkgs/development/python-modules/thespian/default.nix
+++ b/pkgs/development/python-modules/thespian/default.nix
@@ -1,13 +1,13 @@
 { fetchPypi, buildPythonPackage, lib }:
 
 buildPythonPackage rec {
-  version = "3.10.0";
+  version = "3.10.1";
   pname = "thespian";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0n85nhj5hr8kv33jk4by8hnxm3kni5f4z1jhiw27dlf6cbgsv892";
+    sha256 = "e00bba5b0b91f9d7ec3df0ac671136df7a7be0a14dfea38ca3850488bca73d8c";
   };
 
   # Do not run the test suite: it takes a long time and uses
diff --git a/pkgs/development/python-modules/thinc/default.nix b/pkgs/development/python-modules/thinc/default.nix
index b32b996ffd6..9272e25a1ba 100644
--- a/pkgs/development/python-modules/thinc/default.nix
+++ b/pkgs/development/python-modules/thinc/default.nix
@@ -60,6 +60,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
+      --replace "blis>=0.4.0,<0.5.0" "blis>=0.4.0,<1.0" \
       --replace "catalogue>=0.0.7,<1.1.0" "catalogue>=0.0.7,<3.0" \
       --replace "plac>=0.9.6,<1.2.0" "plac>=0.9.6,<2.0" \
       --replace "srsly>=0.0.6,<1.1.0" "srsly>=0.0.6,<3.0"
diff --git a/pkgs/development/python-modules/tifffile/default.nix b/pkgs/development/python-modules/tifffile/default.nix
index 6317f12e8a8..77187f42b5e 100644
--- a/pkgs/development/python-modules/tifffile/default.nix
+++ b/pkgs/development/python-modules/tifffile/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "tifffile";
-  version = "2020.6.3";
+  version = "2020.8.25";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e79403a8b98b0df7ade8d43469151b959fd56239001471fac62beabca6f56377";
+    sha256 = "b51e496bd9ee9c6875170a018bdb7b6f67e3946c4ab57afdb95b18b2c6937783";
   };
 
   patches = lib.optional isPy27 ./python2-regex-compat.patch;
diff --git a/pkgs/development/python-modules/tiledb/default.nix b/pkgs/development/python-modules/tiledb/default.nix
index cf688d75f01..d5379b849ad 100644
--- a/pkgs/development/python-modules/tiledb/default.nix
+++ b/pkgs/development/python-modules/tiledb/default.nix
@@ -3,28 +3,31 @@
 , buildPythonPackage
 , fetchFromGitHub
 , cython
+, pybind11
 , tiledb
 , numpy
 , wheel
 , isPy3k
 , setuptools_scm
 , psutil
+, pandas
 }:
 
 buildPythonPackage rec {
   pname = "tiledb";
-  version = "0.5.6";
+  version = "0.6.6";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "TileDB-Inc";
     repo = "TileDB-Py";
     rev = version;
-    sha256 = "0cgm4dhyqay26xmrzlv21ha8qh55m4q3yr338lrv81ngz77zxsvw";
+    sha256 = "0b2kn1xyf7d994kz29dpqiaf8yzvx0axw4yqi854c54pl22ddgzl";
   };
 
   nativeBuildInputs = [
     cython
+    pybind11
     setuptools_scm
   ];
 
@@ -39,6 +42,8 @@ buildPythonPackage rec {
 
   checkInputs = [
     psutil
+    # optional
+    pandas
   ];
 
   TILEDB_PATH = tiledb;
@@ -51,17 +56,25 @@ buildPythonPackage rec {
     # Hardcode path to shared object
     substituteInPlace tiledb/__init__.py --replace \
       'os.path.join(lib_dir, lib_name)' 'os.path.join("${tiledb}/lib", lib_name)'
-    
+
     # Disable failing test
     substituteInPlace tiledb/tests/test_examples.py --replace \
       "test_docs" "dont_test_docs"
+    # these tests don't always fail
+    substituteInPlace tiledb/tests/test_libtiledb.py --replace \
+      "test_varlen_write_int_subarray" "dont_test_varlen_write_int_subarray" \
+      --replace "test_memory_cleanup" "dont_test_memory_cleanup" \
+      --replace "test_ctx_thread_cleanup" "dont_test_ctx_thread_cleanup"
+    substituteInPlace tiledb/tests/test_metadata.py --replace \
+      "test_metadata_consecutive" "dont_test_metadata_consecutive"
   '';
 
   checkPhase = ''
-    pushd "$out"
+    pushd "$TMPDIR"
     ${python.interpreter} -m unittest tiledb.tests.all.suite_test
     popd
   '';
+  pythonImportsCheck = [ "tiledb" ];
 
   meta = with lib; {
     description = "Python interface to the TileDB storage manager";
diff --git a/pkgs/development/python-modules/timelib/default.nix b/pkgs/development/python-modules/timelib/default.nix
index 39ff4b6de15..559dd0dd92f 100644
--- a/pkgs/development/python-modules/timelib/default.nix
+++ b/pkgs/development/python-modules/timelib/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "timelib";
-  version = "0.2.4";
+  version = "0.2.5";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "49142233bdb5971d64a41e05a1f80a408a02be0dc7d9f8c99e7bdd0613ba81cb";
+    sha256 = "6ac9f79b09b63bbc07db88525c1f62de1f6d50b0fd9937a0cb05e3d38ce0af45";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/timezonefinder/default.nix b/pkgs/development/python-modules/timezonefinder/default.nix
index 895ebd130ea..e62a87e67b0 100644
--- a/pkgs/development/python-modules/timezonefinder/default.nix
+++ b/pkgs/development/python-modules/timezonefinder/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "timezonefinder";
-  version = "4.4.0";
+  version = "4.4.1";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ccb7ee58f5da4b05eae2154eb615eb791487d3cfeaa2a690877737a898580a9e";
+    sha256 = "c84e0f4b501419349e67972d25c535d9b5fd6c100c319747049b67812a4c6b97";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/tinycss2/default.nix b/pkgs/development/python-modules/tinycss2/default.nix
index 7504df7a4de..6f4eb927f3a 100644
--- a/pkgs/development/python-modules/tinycss2/default.nix
+++ b/pkgs/development/python-modules/tinycss2/default.nix
@@ -35,10 +35,6 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ webencodings ];
 
   checkInputs = [ pytest pytestrunner pytestcov pytest-flake8 pytest-isort ];
-  preCheck = ''
-    # this fails a flake lint-type check, so just remove it
-    rm tinycss2/css-parsing-tests/make_color3_hsl.py
-  '';
 
   meta = with lib; {
     description = "Low-level CSS parser for Python";
diff --git a/pkgs/development/python-modules/tinydb/default.nix b/pkgs/development/python-modules/tinydb/default.nix
index f4de29b5e6c..96b6242c85e 100644
--- a/pkgs/development/python-modules/tinydb/default.nix
+++ b/pkgs/development/python-modules/tinydb/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A lightweight document oriented database written in pure Python with no external dependencies";
     homepage = "https://github.com/msiemens/tinydb";
-    license = licenses.asl20;                                                                                                                                                                      
+    license = licenses.asl20;
     maintainers = with maintainers; [ marcus7070 ];
   };
 }
diff --git a/pkgs/development/python-modules/titlecase/default.nix b/pkgs/development/python-modules/titlecase/default.nix
index aed342c119f..c1de2454e4b 100644
--- a/pkgs/development/python-modules/titlecase/default.nix
+++ b/pkgs/development/python-modules/titlecase/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "titlecase";
-  version = "0.12.0";
+  version = "1.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0486i99wf8ssa7sgn81fn6fv6i4rhhq6n751bc740b3hzfbpmpl4";
+    sha256 = "16e279edf085293bc9c44a68ce959c7d6cd5c653e6b5669a3a3640015cb63eb6";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/tldextract/default.nix b/pkgs/development/python-modules/tldextract/default.nix
index e771470b400..b7df857533a 100644
--- a/pkgs/development/python-modules/tldextract/default.nix
+++ b/pkgs/development/python-modules/tldextract/default.nix
@@ -1,19 +1,20 @@
-{ lib, fetchPypi, buildPythonPackage
+{ lib, fetchPypi, buildPythonPackage, setuptools_scm
 , requests, requests-file, idna, pytest
 , responses
 }:
 
 buildPythonPackage rec {
   pname   = "tldextract";
-  version = "2.2.2";
+  version = "2.2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9aa21a1f7827df4209e242ec4fc2293af5940ec730cde46ea80f66ed97bfc808";
+    sha256 = "ab0e38977a129c72729476d5f8c85a8e1f8e49e9202e1db8dca76e95da7be9a8";
   };
 
   propagatedBuildInputs = [ requests requests-file idna ];
   checkInputs = [ pytest responses ];
+  nativeBuildInputs = [ setuptools_scm ];
 
   meta = {
     homepage = "https://github.com/john-kurkowski/tldextract";
diff --git a/pkgs/development/python-modules/todoist/default.nix b/pkgs/development/python-modules/todoist/default.nix
index f420cbaee97..bfff6282025 100644
--- a/pkgs/development/python-modules/todoist/default.nix
+++ b/pkgs/development/python-modules/todoist/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "todoist-python";
-  version = "8.1.1";
+  version = "8.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0khipf8v0gqvspq7m67aqv0ql3rdqyqr8qfhbm1szc1z6mygj8ns";
+    sha256 = "750b2d2300e8590cd56414ab7bbbc8dfcaf8c27102b342398955812176499498";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/tokenizers/default.nix b/pkgs/development/python-modules/tokenizers/default.nix
index 348df4ae95e..d650f350bd2 100644
--- a/pkgs/development/python-modules/tokenizers/default.nix
+++ b/pkgs/development/python-modules/tokenizers/default.nix
@@ -32,16 +32,24 @@ let
   };
 in rustPlatform.buildRustPackage rec {
   pname = "tokenizers";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = pname;
     rev = "python-v${version}";
-    sha256 = "0f5r1wm5ybyk3jvihj1g98y7ihq0iklg0pwkaa11pk1gv0k869w3";
+    sha256 = "0sxdwx05hr87j2z32rk4rgwn6a26w9r7m5fgj6ah1sgagiiyxbjw";
   };
 
-  cargoSha256 = "131bvf35q5n65mq6zws1rp5fn2qkfwfg9sbxi5y6if24n8fpdz4m";
+  # Update parking_lot to be compatible with recent Rust versions, that
+  # replace asm! by llvm_asm!:
+  #
+  # https://github.com/Amanieu/parking_lot/pull/223
+  #
+  # Remove once upstream updates this dependency.
+  cargoPatches = [ ./update-parking-lot.diff ];
+
+  cargoSha256 = "0cdkxmj8z2wdspn6r62lqlpvd0sj1z0cmb1zpqaajxvr0b2kjlj8";
 
   sourceRoot = "source/bindings/python";
 
diff --git a/pkgs/development/python-modules/tokenizers/update-parking-lot.diff b/pkgs/development/python-modules/tokenizers/update-parking-lot.diff
new file mode 100644
index 00000000000..d8f144465ac
--- /dev/null
+++ b/pkgs/development/python-modules/tokenizers/update-parking-lot.diff
@@ -0,0 +1,63 @@
+diff --git a/bindings/python/Cargo.lock b/bindings/python/Cargo.lock
+index f50db71..ea71817 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -269,7 +269,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ 
+ [[package]]
+ name = "lock_api"
+-version = "0.3.3"
++version = "0.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+  "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -337,16 +337,16 @@ dependencies = [
+ 
+ [[package]]
+ name = "parking_lot"
+-version = "0.10.0"
++version = "0.10.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ 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)",
++ "lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "parking_lot_core 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ ]
+ 
+ [[package]]
+ name = "parking_lot_core"
+-version = "0.7.0"
++version = "0.7.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+  "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -409,7 +409,7 @@ dependencies = [
+  "inventory 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+  "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
+  "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "parking_lot 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
+  "paste 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+  "pyo3cls 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+  "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -768,7 +768,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ "checksum itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"
+ "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+ "checksum libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)" = "dea0c0405123bba743ee3f91f49b1c7cfb684eef0da0a50110f758ccf24cdff0"
+-"checksum lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "79b2de95ecb4691949fea4716ca53cdbcfccb2c612e19644a8bad05edcf9f47b"
++"checksum lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
+ "checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+ "checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
+ "checksum memoffset 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8"
+@@ -777,8 +777,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ "checksum number_prefix 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "17b02fc0ff9a9e4b35b3342880f48e896ebf69f2967921fe8646bf5b7125956a"
+ "checksum onig 6.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bd91ccd8a02fce2f7e8a86655aec67bc6c171e6f8e704118a0e8c4b866a05a8a"
+ "checksum onig_sys 69.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3814583fad89f3c60ae0701d80e87e1fd3028741723deda72d0d4a0ecf0cb0db"
+-"checksum parking_lot 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "92e98c49ab0b7ce5b222f2cc9193fc4efe11c6d0bd4f648e374684a6857b1cfc"
+-"checksum parking_lot_core 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7582838484df45743c8434fbff785e8edf260c28748353d44bc0da32e0ceabf1"
++"checksum parking_lot 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e"
++"checksum parking_lot_core 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3"
+ "checksum paste 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ab4fb1930692d1b6a9cfabdde3d06ea0a7d186518e2f4d67660d8970e2fa647a"
+ "checksum paste-impl 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "a62486e111e571b1e93b710b61e8f493c0013be39629b714cb166bdb06aa5a8a"
+ "checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
diff --git a/pkgs/development/python-modules/tomlkit/default.nix b/pkgs/development/python-modules/tomlkit/default.nix
index 2e3a50bfd94..27f952386f1 100644
--- a/pkgs/development/python-modules/tomlkit/default.nix
+++ b/pkgs/development/python-modules/tomlkit/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "tomlkit";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "74f976908030ff164c0aa1edabe3bf83ea004b3daa5b0940b9c86a060c004e9a";
+    sha256 = "ac57f29693fab3e309ea789252fcce3061e19110085aa31af5446ca749325618";
   };
 
   propagatedBuildInputs =
diff --git a/pkgs/development/python-modules/torchgpipe/default.nix b/pkgs/development/python-modules/torchgpipe/default.nix
new file mode 100644
index 00000000000..e7aa53360ed
--- /dev/null
+++ b/pkgs/development/python-modules/torchgpipe/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, pytest
+, pytestrunner
+, pytestCheckHook
+, pytorch
+}:
+
+buildPythonPackage rec {
+  pname = "torchgpipe";
+  version = "0.0.5";
+
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "kakaobrain";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0mqdavnqb8a320li2r7xw11w2lg03l59xxyg2fxpg4z57v0rbasi";
+  };
+
+  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.'
+
+  meta = with lib; {
+    description = "GPipe implemented in Pytorch and optimized for CUDA rather than TPU";
+    homepage = "https://torchgpipe.readthedocs.io";
+    license = licenses.asl20;
+    maintainers = [ maintainers.bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/tornado/4.nix b/pkgs/development/python-modules/tornado/4.nix
new file mode 100644
index 00000000000..6d889a09d25
--- /dev/null
+++ b/pkgs/development/python-modules/tornado/4.nix
@@ -0,0 +1,37 @@
+{ lib
+, python
+, buildPythonPackage
+, fetchPypi
+, backports_abc
+, backports_ssl_match_hostname
+, certifi
+, singledispatch
+, futures
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "tornado";
+  version = "4.5.3";
+
+  propagatedBuildInputs = lib.optionals isPy27 [ backports_abc certifi singledispatch backports_ssl_match_hostname futures ];
+
+  # We specify the name of the test files to prevent
+  # https://github.com/NixOS/nixpkgs/issues/14634
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover *_test.py
+  '';
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "02jzd23l4r6fswmwxaica9ldlyc2p6q8dk6dyff7j58fmdzf853d";
+  };
+
+  __darwinAllowLocalNetworking = true;
+
+  meta = {
+    description = "A web framework and asynchronous networking library";
+    homepage = "https://www.tornadoweb.org/";
+    license = lib.licenses.asl20;
+  };
+}
diff --git a/pkgs/development/python-modules/tornado/5.nix b/pkgs/development/python-modules/tornado/5.nix
new file mode 100644
index 00000000000..da270331978
--- /dev/null
+++ b/pkgs/development/python-modules/tornado/5.nix
@@ -0,0 +1,37 @@
+{ lib
+, python
+, buildPythonPackage
+, fetchPypi
+, backports_abc
+, backports_ssl_match_hostname
+, certifi
+, singledispatch
+, futures
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "tornado";
+  version = "5.1.1";
+
+  propagatedBuildInputs = lib.optionals isPy27 [ backports_abc certifi singledispatch backports_ssl_match_hostname futures ];
+
+  # We specify the name of the test files to prevent
+  # https://github.com/NixOS/nixpkgs/issues/14634
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover *_test.py
+  '';
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4e5158d97583502a7e2739951553cbd88a72076f152b4b11b64b9a10c4c49409";
+  };
+
+  __darwinAllowLocalNetworking = true;
+
+  meta = {
+    description = "A web framework and asynchronous networking library";
+    homepage = "https://www.tornadoweb.org/";
+    license = lib.licenses.asl20;
+  };
+}
diff --git a/pkgs/development/python-modules/tornado/default.nix b/pkgs/development/python-modules/tornado/default.nix
index 102cf0fed57..8d9cadeb3e5 100644
--- a/pkgs/development/python-modules/tornado/default.nix
+++ b/pkgs/development/python-modules/tornado/default.nix
@@ -2,35 +2,11 @@
 , python
 , buildPythonPackage
 , fetchPypi
-, backports_abc
-, backports_ssl_match_hostname
-, certifi
-, singledispatch
-, pythonOlder
-, futures
-, version ? "5.1"
 }:
 
-let
-  versionMap = {
-    "4.5.3" = {
-      sha256 = "02jzd23l4r6fswmwxaica9ldlyc2p6q8dk6dyff7j58fmdzf853d";
-    };
-    "5.1" = {
-      sha256 = "4f66a2172cb947387193ca4c2c3e19131f1c70fa8be470ddbbd9317fd0801582";
-    };
-  };
-in
-
-with versionMap.${version};
-
 buildPythonPackage rec {
   pname = "tornado";
-  inherit version;
-
-  propagatedBuildInputs = [ backports_abc  certifi singledispatch ]
-    ++ lib.optional (pythonOlder "3.5") backports_ssl_match_hostname
-    ++ lib.optional (pythonOlder "3.2") futures;
+  version = "6.0.4";
 
   # We specify the name of the test files to prevent
   # https://github.com/NixOS/nixpkgs/issues/14634
@@ -39,14 +15,15 @@ buildPythonPackage rec {
   '';
 
   src = fetchPypi {
-    inherit pname sha256 version;
+    inherit pname version;
+    sha256 = "0fe2d45ba43b00a41cd73f8be321a44936dc1aba233dee979f17a042b83eb6dc";
   };
 
   __darwinAllowLocalNetworking = true;
 
   meta = {
     description = "A web framework and asynchronous networking library";
-    homepage = "http://www.tornadoweb.org/";
+    homepage = "https://www.tornadoweb.org/";
     license = lib.licenses.asl20;
   };
 }
diff --git a/pkgs/development/python-modules/towncrier/default.nix b/pkgs/development/python-modules/towncrier/default.nix
new file mode 100644
index 00000000000..a7573e669a8
--- /dev/null
+++ b/pkgs/development/python-modules/towncrier/default.nix
@@ -0,0 +1,40 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, click
+, click-default-group
+, incremental
+, jinja2
+, pytestCheckHook
+, toml
+, twisted
+, git # shells out to git
+}:
+
+buildPythonPackage rec {
+  pname = "towncrier";
+  version = "19.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "15l1gb0hhi9pf3mhhb9vpc93w6w3hrih2ljmzbkgfb3dwqd1l9a8";
+  };
+
+  propagatedBuildInputs = [
+    click
+    click-default-group
+    incremental
+    jinja2
+    toml
+  ];
+
+  # zope.interface collision
+  doCheck = !isPy27;
+  checkInputs = [ git twisted pytestCheckHook ];
+  pythonImportsCheck = [ "towncrier" ];
+
+  meta = with lib; {
+    description = "Utility to produce useful, summarised news files";
+    homepage = "https://github.com/twisted/towncrier/";
+    license = licenses.mit;
+    maintainers = with maintainers; [  ];
+  };
+}
diff --git a/pkgs/development/python-modules/tox/default.nix b/pkgs/development/python-modules/tox/default.nix
index fe51fe1cad7..40883928f56 100644
--- a/pkgs/development/python-modules/tox/default.nix
+++ b/pkgs/development/python-modules/tox/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "tox";
-  version = "3.15.1";
+  version = "3.19.0";
 
   buildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ packaging pluggy py six virtualenv toml filelock ];
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8c9ad9b48659d291c5bc78bcabaa4d680d627687154b812fa52baedaa94f9f83";
+    sha256 = "17e61a93afe5c49281fb969ab71f7a3f22d7586d1c56f9a74219910f356fe7d3";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/tqdm/default.nix b/pkgs/development/python-modules/tqdm/default.nix
index 138c24ebbe3..c83f6159fde 100644
--- a/pkgs/development/python-modules/tqdm/default.nix
+++ b/pkgs/development/python-modules/tqdm/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "tqdm";
-  version = "4.46.1";
+  version = "4.48.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cd140979c2bebd2311dfb14781d8f19bd5a9debb92dcab9f6ef899c987fcf71f";
+    sha256 = "564d632ea2b9cb52979f7956e093e831c28d441c11751682f84c86fc46e4fd21";
   };
 
   checkInputs = [ nose coverage glibcLocales flake8 ];
diff --git a/pkgs/development/python-modules/traits/default.nix b/pkgs/development/python-modules/traits/default.nix
index 36963987b38..789ba7a1691 100644
--- a/pkgs/development/python-modules/traits/default.nix
+++ b/pkgs/development/python-modules/traits/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "traits";
-  version = "6.1.0";
+  version = "6.1.1";
   disabled = isPy27; # setup.py no longer py3 compat
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "97fca523374ae85e3d8fd78af9a9f488aee5e88e8b842e1cfd6d637a6f310fac";
+    sha256 = "807da52ee0d4fc1241c8f8a04d274a28d4b23d3a5f942152497d19405482d04f";
   };
 
   # Use pytest because its easier to discover tests
diff --git a/pkgs/development/python-modules/traitsui/default.nix b/pkgs/development/python-modules/traitsui/default.nix
index b4d009e630e..01788f63d4f 100644
--- a/pkgs/development/python-modules/traitsui/default.nix
+++ b/pkgs/development/python-modules/traitsui/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "traitsui";
-  version = "7.0.0";
+  version = "7.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e569f359a58e4567b14265abe89b3de4b0f95bbbf8f491a9a7d45219628735ec";
+    sha256 = "74fb4db848ac1343241fa4dc5d9bf3fab561f309826c602e8a3568309df91fe3";
   };
 
   propagatedBuildInputs = [ traits pyface six ];
diff --git a/pkgs/development/python-modules/transformers/default.nix b/pkgs/development/python-modules/transformers/default.nix
index 33cb5e04959..aa6db6a7353 100644
--- a/pkgs/development/python-modules/transformers/default.nix
+++ b/pkgs/development/python-modules/transformers/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "transformers";
-  version = "3.0.1";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1l8l82zi021sq5dnzlbjx3wx0n4yy7k96n3m2fr893y9lfkhhd8z";
+    sha256 = "0wg36qrcljmpsyhjaxpqw3s1r6276yg8cq0bjrf52l4zlc5k4xzk";
   };
 
   propagatedBuildInputs = [
@@ -44,16 +44,23 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "tokenizers == 0.8.0-rc4" "tokenizers>=0.8,<0.9"
+      --replace "tokenizers == 0.8.1.rc2" "tokenizers>=0.8"
   '';
 
   preCheck = ''
     export HOME="$TMPDIR"
     cd tests
+
+    # This test requires the nlp module, which we haven't
+    # packaged yet. However, nlp is optional for transformers
+    # itself
+    rm test_trainer.py
   '';
 
   # Disable tests that require network access.
   disabledTests = [
+    "PegasusTokenizationTest"
+    "T5TokenizationTest"
     "test_all_tokenizers"
     "test_batch_encoding_is_fast"
     "test_batch_encoding_pickle"
@@ -63,6 +70,7 @@ buildPythonPackage rec {
     "test_hf_api"
     "test_outputs_can_be_shorter"
     "test_outputs_not_longer_than_maxlen"
+    "test_padding_accepts_tensors"
     "test_pretokenized_tokenizers"
     "test_tokenizer_equivalence_en_de"
     "test_tokenizer_from_model_type"
@@ -74,8 +82,9 @@ buildPythonPackage rec {
   meta = with stdenv.lib; {
     homepage = "https://github.com/huggingface/transformers";
     description = "State-of-the-art Natural Language Processing for TensorFlow 2.0 and PyTorch";
+    changelog = "https://github.com/huggingface/transformers/releases/tag/v${version}";
     license = licenses.asl20;
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.unix;
     maintainers = with maintainers; [ danieldk pashashocky ];
   };
 }
diff --git a/pkgs/development/python-modules/transip/default.nix b/pkgs/development/python-modules/transip/default.nix
index e71660d5b88..8ea70a19ead 100644
--- a/pkgs/development/python-modules/transip/default.nix
+++ b/pkgs/development/python-modules/transip/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchFromGitHub
+, isPy27
 , requests
 , cryptography
 , suds-jurko
@@ -10,6 +11,7 @@
 buildPythonPackage rec {
   pname = "transip-api";
   version = "2.0.0";
+  disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "benkonrath";
diff --git a/pkgs/development/python-modules/transitions/default.nix b/pkgs/development/python-modules/transitions/default.nix
index 13eeaf9f805..a8e84acc2df 100644
--- a/pkgs/development/python-modules/transitions/default.nix
+++ b/pkgs/development/python-modules/transitions/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "transitions";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2b8cf2078ed189ffbb0f29421798d7a63ff0d7823682a0d69c01bd8240363cac";
+    sha256 = "0j3pswbckrhd6plblb0bwzsbvk50nqmxq6dvjclvcr5cljzs7xvg";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/translationstring/default.nix b/pkgs/development/python-modules/translationstring/default.nix
index 0933b90ede9..013615de800 100644
--- a/pkgs/development/python-modules/translationstring/default.nix
+++ b/pkgs/development/python-modules/translationstring/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "translationstring";
-  version = "1.3";
+  version = "1.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4ee44cfa58c52ade8910ea0ebc3d2d84bdcad9fa0422405b1801ec9b9a65b72d";
+    sha256 = "bf947538d76e69ba12ab17283b10355a9ecfbc078e6123443f43f2107f6376f3";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/trezor/default.nix b/pkgs/development/python-modules/trezor/default.nix
index e7bec00863a..0e0c6da021f 100644
--- a/pkgs/development/python-modules/trezor/default.nix
+++ b/pkgs/development/python-modules/trezor/default.nix
@@ -1,31 +1,56 @@
-{ lib, fetchPypi, buildPythonPackage, isPy3k, python, pytest
-, typing-extensions
-, protobuf
-, hidapi
-, ecdsa
-, mnemonic
-, requests
-, pyblake2
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, installShellFiles
+, attrs
 , click
 , construct
+, ecdsa
+, hidapi
 , libusb1
+, mnemonic
+, pillow
+, protobuf
+, pyblake2
+, requests
 , rlp
 , shamir-mnemonic
+, typing-extensions
 , trezor-udev-rules
+, pytest
 }:
 
 buildPythonPackage rec {
   pname = "trezor";
-  version = "0.12.0";
+  version = "0.12.2";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ycmpwjv5xp25993divjhaq5j766zgcy22xx39xfc1pcvldq5g7n";
+    sha256 = "0r0j0y0ii62ppawc8qqjyaq0fkmmb0zk1xb3f9navxp556w2dljv";
   };
 
-  propagatedBuildInputs = [ typing-extensions protobuf hidapi ecdsa mnemonic requests pyblake2 click construct libusb1 rlp shamir-mnemonic trezor-udev-rules ];
+  nativeBuildInputs = [ installShellFiles ];
+
+  propagatedBuildInputs = [
+    attrs
+    click
+    construct
+    ecdsa
+    hidapi
+    libusb1
+    mnemonic
+    pillow
+    protobuf
+    pyblake2
+    requests
+    rlp
+    shamir-mnemonic
+    typing-extensions
+    trezor-udev-rules
+  ];
 
   checkInputs = [
     pytest
@@ -38,10 +63,20 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
+  postFixup = ''
+    mkdir completions
+    _TREZORCTL_COMPLETE=source_bash $out/bin/trezorctl > completions/trezorctl || true
+    _TREZORCTL_COMPLETE=source_zsh $out/bin/trezorctl > completions/_trezorctl || true
+    _TREZORCTL_COMPLETE=source_fish $out/bin/trezorctl > completions/trezorctl.fish || true
+    installShellCompletion --bash completions/trezorctl
+    installShellCompletion --zsh completions/_trezorctl
+    installShellCompletion --fish completions/trezorctl.fish
+  '';
+
   meta = with lib; {
-    description = "Python library for communicating with TREZOR Bitcoin Hardware Wallet";
+    description = "Python library for communicating with Trezor Hardware Wallet";
     homepage = "https://github.com/trezor/trezor-firmware/tree/master/python";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ np prusnak mmahut maintainers."1000101" ];
+    maintainers = with maintainers; [ np prusnak mmahut _1000101 ];
   };
 }
diff --git a/pkgs/development/python-modules/trimesh/default.nix b/pkgs/development/python-modules/trimesh/default.nix
index c6d1ba00a85..f9a2dfa6af3 100644
--- a/pkgs/development/python-modules/trimesh/default.nix
+++ b/pkgs/development/python-modules/trimesh/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "trimesh";
-  version = "3.6.43";
+  version = "3.8.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f62dbaf4739858148fe4889f3b4dff93da281982b6592f211c4d33c2e00678eb";
+    sha256 = "50d2e74f2047a50d097a394fb11b12443f764dfc7145140d5029f7019dea6d4d";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/pkgs/development/python-modules/trio/default.nix b/pkgs/development/python-modules/trio/default.nix
index 9a63850e53e..658dea91049 100644
--- a/pkgs/development/python-modules/trio/default.nix
+++ b/pkgs/development/python-modules/trio/default.nix
@@ -5,7 +5,7 @@
 , idna
 , outcome
 , contextvars
-, pytest
+, pytestCheckHook
 , pyopenssl
 , trustme
 , sniffio
@@ -18,23 +18,23 @@
 
 buildPythonPackage rec {
   pname = "trio";
-  version = "0.15.1";
+  version = "0.16.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3010864ab8d8b2ae44d3bc97b0e8924d8f5170bf32f07c7638a930a129687f33";
+    sha256 = "df067dd0560c321af39d412cd81fc3a7d13f55af9150527daab980683e9fcf3c";
   };
 
-  checkInputs = [ astor pytest pyopenssl trustme jedi pylint yapf ];
+  checkInputs = [ astor pytestCheckHook pyopenssl trustme jedi pylint yapf ];
   # It appears that the build sandbox doesn't include /etc/services, and these tests try to use it.
-  checkPhase = ''
-    HOME=$TMPDIR py.test -k 'not getnameinfo \
-                             and not SocketType_resolve \
-                             and not getprotobyname \
-                             and not waitpid \
-                             and not static_tool_sees_all_symbols'
-  '';
+  disabledTests = [
+    "getnameinfo"
+    "SocketType_resolve"
+    "getprotobyname"
+    "waitpid"
+    "static_tool_sees_all_symbols"
+  ];
 
   propagatedBuildInputs = [
     attrs
diff --git a/pkgs/development/python-modules/trytond/default.nix b/pkgs/development/python-modules/trytond/default.nix
index 4b8afbddb37..834942ee00e 100644
--- a/pkgs/development/python-modules/trytond/default.nix
+++ b/pkgs/development/python-modules/trytond/default.nix
@@ -24,10 +24,10 @@ with stdenv.lib;
 
 buildPythonApplication rec {
   pname = "trytond";
-  version = "5.6.2";
+  version = "5.6.5";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mlfl34zmmqrwip39mvhkk0h6dsljqwff2mk1ldahm253d4vzflp";
+    sha256 = "a373d73b141d71f8e30d728dd8380955bc0f33daaa097201fa9a952e3663e6d8";
   };
 
   # Tells the tests which database to use
diff --git a/pkgs/development/python-modules/tvnamer/default.nix b/pkgs/development/python-modules/tvnamer/default.nix
index b0df4008992..1b4e32de68e 100644
--- a/pkgs/development/python-modules/tvnamer/default.nix
+++ b/pkgs/development/python-modules/tvnamer/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "tvnamer";
-  version = "2.5";
+  version = "3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "75e38454757c77060ad3782bd071682d6d316de86f9aec1c2042d236f93aec7b";
+    sha256 = "00ae7354dec9cca8e652139eba9cf6945371321cdf05ee903a6a59f6d31cef6b";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/tweepy/default.nix b/pkgs/development/python-modules/tweepy/default.nix
index 13fafe788fd..1c5535ec079 100644
--- a/pkgs/development/python-modules/tweepy/default.nix
+++ b/pkgs/development/python-modules/tweepy/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "tweepy";
-  version = "3.8.0";
+  version = "3.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0sri92mzhkifn16klkk2mhc2vcrvdmfp2wvkpfss518sln5q5gca";
+    sha256 = "bfd19a5c11f35f7f199c795f99d9cbf8a52eb33f0ecfb6c91ee10b601180f604";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/twilio/default.nix b/pkgs/development/python-modules/twilio/default.nix
index 18e28c358b4..d4cd7b5d59b 100644
--- a/pkgs/development/python-modules/twilio/default.nix
+++ b/pkgs/development/python-modules/twilio/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "twilio";
-  version = "6.39.0";
+  version = "6.43.0";
   # tests not included in PyPi, so fetch from github instead
   src = fetchFromGitHub {
     owner = "twilio";
     repo = "twilio-python";
     rev = version;
-    sha256 = "1l2j54kjd1lrf072a3i5037qxpm8n378dddzd3m711ylz6vp638f";
+    sha256 = "0p2chrzakqx5694g305j0klh9lxlclm5qp0qjm6wqicivyybggzg";
   };
 
   buildInputs = [ nose mock ];
diff --git a/pkgs/development/python-modules/twill/default.nix b/pkgs/development/python-modules/twill/default.nix
index 4466724ffe1..a717ab2bc9d 100644
--- a/pkgs/development/python-modules/twill/default.nix
+++ b/pkgs/development/python-modules/twill/default.nix
@@ -5,11 +5,11 @@
 }:
 buildPythonPackage rec {
   pname = "twill";
-  version = "2.0";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "225e114da85555d50433a1e242ed4215fe613c30072d13fbe4c4aacf0ad53b0a";
+    sha256 = "85bc45bc34e3d4116123e3021c07d3a86b5e67be1ee01bc8062288eb83ae7799";
   };
 
   checkInputs = [ nose ];
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   doCheck = false; # pypi package comes without tests, other homepage does not provide all verisons
 
   meta = with lib; {
-    homepage = "http://twill.idyll.org/";
+    homepage = "https://twill-tools.github.io/twill/";
     description = "A simple scripting language for Web browsing";
     license     = licenses.mit;
     maintainers = with maintainers; [ mic92 ];
diff --git a/pkgs/development/python-modules/twine/default.nix b/pkgs/development/python-modules/twine/default.nix
index b3dddbbba68..47f9fe1a034 100644
--- a/pkgs/development/python-modules/twine/default.nix
+++ b/pkgs/development/python-modules/twine/default.nix
@@ -8,16 +8,18 @@
 , requests_toolbelt
 , setuptools_scm
 , tqdm
+, colorama
+, rfc3986
 }:
 
 buildPythonPackage rec {
   pname = "twine";
-  version = "3.1.1";
+  version = "3.2.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d561a5e511f70275e5a485a6275ff61851c16ffcb3a95a602189161112d9f160";
+    sha256 = "34352fd52ec3b9d29837e6072d5a2a7c6fe4290e97bba46bb8d478b5c598f7ab";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
@@ -29,6 +31,8 @@ buildPythonPackage rec {
     requests
     requests_toolbelt
     tqdm
+    colorama
+    rfc3986
   ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # Requires network
diff --git a/pkgs/development/python-modules/txdbus/default.nix b/pkgs/development/python-modules/txdbus/default.nix
index 8ef694d34ff..636e19b39ba 100644
--- a/pkgs/development/python-modules/txdbus/default.nix
+++ b/pkgs/development/python-modules/txdbus/default.nix
@@ -17,6 +17,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/cocagne/txdbus";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/pkgs/development/python-modules/typed-ast/default.nix b/pkgs/development/python-modules/typed-ast/default.nix
index 5095265e33f..608ce8b65fe 100644
--- a/pkgs/development/python-modules/typed-ast/default.nix
+++ b/pkgs/development/python-modules/typed-ast/default.nix
@@ -1,12 +1,12 @@
 { buildPythonPackage, fetchFromGitHub, lib, pythonOlder }:
 buildPythonPackage rec {
   pname = "typed-ast";
-  version = "1.4.0";
+  version = "1.4.1";
   src = fetchFromGitHub{
     owner = "python";
     repo = "typed_ast";
     rev = version;
-    sha256 = "0l0hz809f7i356kmqkvfsaswiidb98j9hs9rrjnfawzqcbffzgyb";
+    sha256 = "086r9qhls6mz1w72a6d1ld3m4fbkxklf6mgwbs8wpw0zlxjm7y40";
   };
   # Only works with Python 3.3 and newer;
   disabled = pythonOlder "3.3";
diff --git a/pkgs/development/python-modules/typeguard/default.nix b/pkgs/development/python-modules/typeguard/default.nix
index 7541d717e8a..2f0617731e1 100644
--- a/pkgs/development/python-modules/typeguard/default.nix
+++ b/pkgs/development/python-modules/typeguard/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "typeguard";
-  version = "2.8.0";
+  version = "2.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e718f493d805d596cba238a61aa83b874530a333783ca9d597fe5bf27143f042";
+    sha256 = "123jnq7igm26a5347jf2j60bww9g84l80f208dzlbk49h7cg77jj";
   };
 
   buildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/typing-extensions/default.nix b/pkgs/development/python-modules/typing-extensions/default.nix
index d6ae7cefc39..655b3384af1 100644
--- a/pkgs/development/python-modules/typing-extensions/default.nix
+++ b/pkgs/development/python-modules/typing-extensions/default.nix
@@ -4,11 +4,11 @@ let
 
 in buildPythonPackage rec {
   pname = "typing_extensions";
-  version = "3.7.4.2";
+  version = "3.7.4.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "79ee589a3caca649a9bfd2a8de4709837400dfa00b6cc81962a1e6a1815969ae";
+    sha256 = "99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c";
   };
 
   checkInputs = lib.optional (pythonOlder "3.5") typing;
diff --git a/pkgs/development/python-modules/typing-inspect/default.nix b/pkgs/development/python-modules/typing-inspect/default.nix
new file mode 100644
index 00000000000..849b56d2d0c
--- /dev/null
+++ b/pkgs/development/python-modules/typing-inspect/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, typing-extensions
+, mypy-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "typing-inspect";
+  version = "0.6.0";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "typing_inspect";
+    sha256 = "1dzs9a1pr23dhbvmnvms2jv7l7jk26023g5ysf0zvnq8b791s6wg";
+  };
+
+  propagatedBuildInputs = [
+    typing-extensions
+    mypy-extensions
+  ];
+
+  meta = with lib; {
+    description = "Runtime inspection utilities for Python typing module";
+    homepage = "https://github.com/ilevkivskyi/typing_inspect";
+    license = licenses.mit;
+    maintainers = with maintainers; [ albakham ];
+  };
+}
diff --git a/pkgs/development/python-modules/typing/default.nix b/pkgs/development/python-modules/typing/default.nix
index 6c25031a8dc..0d5c2119921 100644
--- a/pkgs/development/python-modules/typing/default.nix
+++ b/pkgs/development/python-modules/typing/default.nix
@@ -5,11 +5,11 @@ let
 
 in buildPythonPackage rec {
   pname = "typing";
-  version = "3.7.4.1";
+  version = "3.7.4.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "91dfe6f3f706ee8cc32d38edbbf304e9b7583fb37108fef38229617f8b3eba23";
+    sha256 = "1187fb9c82fd670d10aa07bbb6cfcfe4bdda42d6fab8d5134f04e8c4d0b71cc9";
   };
 
   # Error for Python3.6: ImportError: cannot import name 'ann_module'
diff --git a/pkgs/development/python-modules/u-msgpack-python/default.nix b/pkgs/development/python-modules/u-msgpack-python/default.nix
index a41351916b7..ef4fe47b7a2 100644
--- a/pkgs/development/python-modules/u-msgpack-python/default.nix
+++ b/pkgs/development/python-modules/u-msgpack-python/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "u-msgpack-python";
-  version = "2.6.0";
+  version = "2.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "754edb07eaee39a9686a99823892e3a1be4e0948d9cc5c717946750c27643c9c";
+    sha256 = "996e4c4454771f0ff0fd2a7566b1a159d305d3611cd755addf444e3533e2bc54";
   };
 
   LC_ALL="en_US.UTF-8";
diff --git a/pkgs/development/python-modules/uamqp/default.nix b/pkgs/development/python-modules/uamqp/default.nix
index e1527ea27e6..1e7132525a2 100644
--- a/pkgs/development/python-modules/uamqp/default.nix
+++ b/pkgs/development/python-modules/uamqp/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "uamqp";
-  version = "1.2.8";
+  version = "1.2.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12yq435h27iv1kzgq3gl7c7hxdivvc2sl0l1kslgf2wxw53n7jgj";
+    sha256 = "398dd818e9a6c14f00c434e7ad3fcbe1d0344f2f4c23bca8c5026280ae032f4f";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/ueberzug/default.nix b/pkgs/development/python-modules/ueberzug/default.nix
index c956e5d8b34..d80009e6478 100644
--- a/pkgs/development/python-modules/ueberzug/default.nix
+++ b/pkgs/development/python-modules/ueberzug/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "ueberzug";
-  version = "18.1.5";
+  version = "18.1.6";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rj864sdn1975v59i8j3cfa9hni1hacq0z2b8m7wib0da9apygby";
+    sha256 = "13a9q9rvkbsym5nrc1y2anhyx317vj1vi8k8kln8gin2yw311pyb";
   };
 
   buildInputs = [ libX11 libXext ];
diff --git a/pkgs/development/python-modules/ufonormalizer/default.nix b/pkgs/development/python-modules/ufonormalizer/default.nix
new file mode 100644
index 00000000000..1fbed4ad1aa
--- /dev/null
+++ b/pkgs/development/python-modules/ufonormalizer/default.nix
@@ -0,0 +1,19 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "ufonormalizer";
+  version = "0.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rn64a0i151qk6h5f9pijcmja195i2d6f8jbi5h4xkgkinm9wwzj";
+    extension = "zip";
+  };
+
+  meta = with lib; {
+    description = "Script to normalize the XML and other data inside of a UFO";
+    homepage = "https://github.com/unified-font-object/ufoNormalizer";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/ufoprocessor/default.nix b/pkgs/development/python-modules/ufoprocessor/default.nix
new file mode 100644
index 00000000000..db5b1400fe4
--- /dev/null
+++ b/pkgs/development/python-modules/ufoprocessor/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonPackage, fetchPypi
+, defcon, fonttools, lxml, fs
+, mutatormath, fontmath, fontparts
+, setuptools_scm
+}:
+
+buildPythonPackage rec {
+  pname = "ufoProcessor";
+  version = "1.9.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ns11aamgavgsfj8qf5kq7dvzmgl0mhr1cbych2f075ipfdvva5s";
+    extension = "zip";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [
+    defcon
+    lxml
+    fonttools
+    fs
+    fontmath
+    fontparts
+    mutatormath
+  ];
+
+  meta = with lib; {
+    description = "Read, write and generate UFOs with designspace data";
+    homepage = "https://github.com/LettError/ufoProcessor";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/ujson/2.nix b/pkgs/development/python-modules/ujson/2.nix
new file mode 100644
index 00000000000..e1d1185f6f5
--- /dev/null
+++ b/pkgs/development/python-modules/ujson/2.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, setuptools_scm
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "ujson";
+  version = "2.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "18z9gb9ggy1r464b9q1gqs078mqgrkj6dys5a47529rqk3yfybdx";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://pypi.python.org/pypi/ujson";
+    description = "Ultra fast JSON encoder and decoder for Python";
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/ujson/default.nix b/pkgs/development/python-modules/ujson/default.nix
index 0c68fe9bb1b..9df71ee49c3 100644
--- a/pkgs/development/python-modules/ujson/default.nix
+++ b/pkgs/development/python-modules/ujson/default.nix
@@ -1,18 +1,19 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy3k
 , isPyPy
 , setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "ujson";
-  version = "3.0.0";
-  disabled = isPyPy;
+  version = "3.1.0";
+  disabled = isPyPy || (!isPy3k);
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e0199849d61cc6418f94d52a314c6a27524d65e82174d2a043fb718f73d1520d";
+    sha256 = "00bda1de275ed6fe81817902189c75dfd156b4fa29b44dc1f4620775d2f50cf7";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/uncertainties/default.nix b/pkgs/development/python-modules/uncertainties/default.nix
index 2e87565554c..8cf06624559 100644
--- a/pkgs/development/python-modules/uncertainties/default.nix
+++ b/pkgs/development/python-modules/uncertainties/default.nix
@@ -1,18 +1,20 @@
-{ stdenv, fetchPypi, buildPythonPackage, nose, numpy }:
+{ stdenv, fetchPypi, buildPythonPackage
+, nose, numpy, future
+}:
 
 buildPythonPackage rec {
   pname = "uncertainties";
-  version = "3.1.2";
+  version = "3.1.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07kahmr0vfmncf8y4x6ldjrghnd4gsf0fwykgjj5ijvqi9xc21xs";
+    sha256 = "0s69kdhl8vhqazhxqdvb06l83x0iqdm0yr4vp3p52alzi6a8lm33";
   };
 
-  buildInputs = [ nose numpy ];
+  propagatedBuildInputs = [ future ];
+  checkInputs = [ nose numpy ];
 
-  # No tests included
-  doCheck = false;
+  checkPhase = "python setup.py nosetests -sv";
 
   meta = with stdenv.lib; {
     homepage = "https://pythonhosted.org/uncertainties/";
diff --git a/pkgs/development/python-modules/uncompyle6/default.nix b/pkgs/development/python-modules/uncompyle6/default.nix
index 535f0f03c3e..9e793ec3fb3 100644
--- a/pkgs/development/python-modules/uncompyle6/default.nix
+++ b/pkgs/development/python-modules/uncompyle6/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "uncompyle6";
-  version = "3.7.0";
+  version = "3.7.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cb0d5dd28ed6b82da17bcb29b84f5823dc8398d9dafb0e4ee8e6f958db220134";
+    sha256 = "a45f98f40edb47c2a0e2786ffe7d68fc2cb4ad05b2efcb50e95c337f6ecae353";
   };
 
   checkInputs = [ nose pytest hypothesis six ];
diff --git a/pkgs/development/python-modules/unicodedata2/default.nix b/pkgs/development/python-modules/unicodedata2/default.nix
new file mode 100644
index 00000000000..09b75e0c777
--- /dev/null
+++ b/pkgs/development/python-modules/unicodedata2/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pytest }:
+
+buildPythonPackage rec {
+  pname = "unicodedata2";
+  version = "13.0.0-2";
+
+  src = fetchFromGitHub {
+    owner  = "mikekap";
+    repo   = pname;
+    rev    = version;
+    sha256 = "0p9brbiwyg98q52y0gfyps52xv57fwqfpq0mn18p1xc1imip3h2b";
+  };
+
+  checkInputs = [ pytest ];
+  checkPhase = "pytest tests";
+
+  meta = with lib; {
+    description = "Backport and updates for the unicodedata module";
+    homepage = "http://github.com/mikekap/unicodedata2";
+    license = licenses.asl20;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/unittest-xml-reporting/default.nix b/pkgs/development/python-modules/unittest-xml-reporting/default.nix
index 4481aedfaf9..c8d1edc4210 100644
--- a/pkgs/development/python-modules/unittest-xml-reporting/default.nix
+++ b/pkgs/development/python-modules/unittest-xml-reporting/default.nix
@@ -1,8 +1,9 @@
-{lib, fetchPypi, buildPythonPackage, six}:
+{lib, fetchPypi, buildPythonPackage, isPy27, six}:
 
 buildPythonPackage rec {
   pname = "unittest-xml-reporting";
-  version = "3.0.2";
+  version = "3.0.4";
+  disabled = isPy27;
 
   propagatedBuildInputs = [six];
 
@@ -11,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e09b8ae70cce9904cdd331f53bf929150962869a5324ab7ff3dd6c8b87e01f7d";
+    sha256 = "984cebba69e889401bfe3adb9088ca376b3a1f923f0590d005126c1bffd1a695";
   };
   meta = with lib; {
     homepage = "https://github.com/xmlrunner/unittest-xml-reporting/tree/master/";
diff --git a/pkgs/development/python-modules/untangle/default.nix b/pkgs/development/python-modules/untangle/default.nix
index 9b8e915a8ba..820c96c38c9 100644
--- a/pkgs/development/python-modules/untangle/default.nix
+++ b/pkgs/development/python-modules/untangle/default.nix
@@ -3,7 +3,7 @@
 buildPythonPackage rec {
   pname = "untangle";
   version = "1.1.1";
-  
+
   src = fetchFromGitHub {
     owner = "stchris";
     repo = "untangle";
@@ -11,11 +11,11 @@ buildPythonPackage rec {
     rev = "61b57cd771a40df7d1621e9ec3c68d9acd733d31";
     sha256 = "0ffvlfyyl82xi4akz1lls32lrnlrn44ik41v8x8xh9ghy0n0ick7";
   };
-  
+
   checkPhase = ''
     ${python.interpreter} -m unittest discover -s tests
   '';
-  
+
   meta = with lib; {
     description = "Convert XML documents into Python objects";
     homepage = "https://github.com/stchris/untangle";
diff --git a/pkgs/development/python-modules/update_checker/default.nix b/pkgs/development/python-modules/update_checker/default.nix
index e319422ce7b..fd3d0b02b63 100644
--- a/pkgs/development/python-modules/update_checker/default.nix
+++ b/pkgs/development/python-modules/update_checker/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "update_checker";
-  version = "0.17";
+  version = "0.18.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0qhfn5fjjab50gbnj2053wdfppzkydqgapfz35ymrm1vysvqvvrd";
+    sha256 = "6a2d45bb4ac585884a6b03f9eade9161cedd9e8111545141e9aa9058932acb13";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/uproot/default.nix b/pkgs/development/python-modules/uproot/default.nix
index 3d472a604d6..81b6f276289 100644
--- a/pkgs/development/python-modules/uproot/default.nix
+++ b/pkgs/development/python-modules/uproot/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "uproot";
-  version = "3.11.7";
+  version = "3.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3fbf9dfe5ce996ffda3a49d16eba804b95fb05bc041fc4e7bc05317a03bf6cba";
+    sha256 = "1603140896b9d3495cedeee2b872e97759085777c1299317072ad3f415211abc";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/pkgs/development/python-modules/uranium/default.nix b/pkgs/development/python-modules/uranium/default.nix
index af13fa8d17a..0bcfa0305e8 100644
--- a/pkgs/development/python-modules/uranium/default.nix
+++ b/pkgs/development/python-modules/uranium/default.nix
@@ -2,7 +2,7 @@
 , pyqt5, numpy, scipy, shapely, libarcus, doxygen, gettext, pythonOlder }:
 
 buildPythonPackage rec {
-  version = "4.6.1";
+  version = "4.7.1";
   pname = "uranium";
   format = "other";
 
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     owner = "Ultimaker";
     repo = "Uranium";
     rev = version;
-    sha256 = "07pksjbgxs1ks2i6pgxkwfg9c56pcql7f9p89dnwaf2rcn7yhx6r";
+    sha256 = "1h5d3scy3cnbyhh0pbavflpqklhn2lbp7hl193rc5gx8yzr3mqbh";
   };
 
   disabled = pythonOlder "3.5.0";
diff --git a/pkgs/development/python-modules/urllib3/default.nix b/pkgs/development/python-modules/urllib3/default.nix
index 0c54f8f2518..2715388e8f2 100644
--- a/pkgs/development/python-modules/urllib3/default.nix
+++ b/pkgs/development/python-modules/urllib3/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "urllib3";
-  version = "1.25.9";
+  version = "1.25.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527";
+    sha256 = "91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a";
   };
 
   NOSE_EXCLUDE = stdenv.lib.concatStringsSep "," [
diff --git a/pkgs/development/python-modules/urwid/default.nix b/pkgs/development/python-modules/urwid/default.nix
index 3e71cae26e3..36fe4b51495 100644
--- a/pkgs/development/python-modules/urwid/default.nix
+++ b/pkgs/development/python-modules/urwid/default.nix
@@ -1,18 +1,24 @@
-{ stdenv, buildPythonPackage, fetchPypi, glibcLocales }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy3k, isPy27, glibcLocales }:
 
 buildPythonPackage rec {
   pname = "urwid";
-  version = "2.1.0";
+  version = "2.1.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0896f36060beb6bf3801cb554303fef336a79661401797551ba106d23ab4cd86";
+    sha256 = "09nmi2nmvpcmbh3w3fb0dn0c7yp7r20i5pfcr6q722xh6mp8cw3q";
   };
 
   # tests need to be able to set locale
   LC_ALL = "en_US.UTF-8";
   checkInputs = [ glibcLocales ];
 
+  # tests which assert on strings don't decode results correctly
+  doCheck = isPy3k;
+
+  pythonImportsCheck = [ "urwid" ];
+
   meta = with stdenv.lib; {
     description = "A full-featured console (xterm et al.) user interface library";
     homepage = "http://excess.org/urwid";
diff --git a/pkgs/development/python-modules/userpath/default.nix b/pkgs/development/python-modules/userpath/default.nix
new file mode 100644
index 00000000000..8366a56158d
--- /dev/null
+++ b/pkgs/development/python-modules/userpath/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, click
+, distro
+}:
+
+buildPythonPackage rec {
+  pname = "userpath";
+  version = "1.4.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256="0mfjmvx286z1dmnrc7bm65x8gj8qrmkcyagl0vf5ywfq0bm48591";
+  };
+
+  propagatedBuildInputs = [ click distro ];
+
+  # test suite is difficult to emulate in sandbox due to shell manipulation
+  doCheck = false;
+
+  pythonImportsCheck = [ "click" "userpath" ];
+
+  meta = with lib; {
+    description = "Cross-platform tool for adding locations to the user PATH";
+    homepage = "https://github.com/ofek/userpath";
+    license = [ licenses.asl20 licenses.mit ];
+    maintainers = with maintainers; [ yevhenshymotiuk ];
+  };
+}
diff --git a/pkgs/development/python-modules/uvcclient/default.nix b/pkgs/development/python-modules/uvcclient/default.nix
new file mode 100644
index 00000000000..1490172a463
--- /dev/null
+++ b/pkgs/development/python-modules/uvcclient/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchFromGitHub, nose, mock }:
+
+buildPythonPackage rec {
+  pname = "uvcclient";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "kk7ds";
+    repo = pname;
+    rev = "58e7a53815482b7778481f81cde95f53a60bb6f6";
+    sha256 = "0k8aswrk1n08w6pi6dg0zdzsmk23cafihkrss9ywg3i85w7q43x2";
+  };
+
+  checkInputs = [
+    nose
+    mock
+  ];
+
+  checkPhase = ''
+    nosetests
+  '';
+
+  meta = with lib; {
+    description = "Client for Ubiquiti's Unifi Camera NVR";
+    homepage = "https://github.com/kk7ds/uvcclient";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/uvloop/default.nix b/pkgs/development/python-modules/uvloop/default.nix
index 424f4d08fe0..b06f41ce5a3 100644
--- a/pkgs/development/python-modules/uvloop/default.nix
+++ b/pkgs/development/python-modules/uvloop/default.nix
@@ -6,6 +6,7 @@
 , libuv
 , psutil
 , isPy27
+, pythonAtLeast
 , CoreServices
 , ApplicationServices
 # Check Inputs
@@ -44,14 +45,11 @@ buildPythonPackage rec {
     "--tb=native"
     # ignore code linting tests
     "--ignore=tests/test_sourcecode.py"
-    # Fails on Python 3.8
-    # https://salsa.debian.org/python-team/modules/uvloop/-/commit/302a7e8f5a2869e13d0550cd37e7a8f480e79869
-    "--ignore=tests/test_tcp.py"
   ];
 
   disabledTests = [
     "test_sock_cancel_add_reader_race"  # asyncio version of test is supposed to be skipped but skip doesn't happen. uvloop version runs fine
-  ];
+  ] ++ lib.optionals (pythonAtLeast "3.8") [ "test_write_to_closed_transport" ];  # https://github.com/MagicStack/uvloop/issues/355
 
   # force using installed/compiled uvloop vs source by moving tests to temp dir
   preCheck = ''
diff --git a/pkgs/development/python-modules/validators/default.nix b/pkgs/development/python-modules/validators/default.nix
index dbed55725bc..6ec8db34068 100644
--- a/pkgs/development/python-modules/validators/default.nix
+++ b/pkgs/development/python-modules/validators/default.nix
@@ -11,11 +11,12 @@
 
 buildPythonPackage rec {
   pname = "validators";
-  version = "0.15.0";
+  version = "0.17.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "31e8bb01b48b48940a021b8a9576b840f98fa06b91762ef921d02cb96d38727a";
+    sha256 = "401cb441dd61bb1a03b10c8a3a884642409e22a2a19e03bbfc4891e0ddbc7268";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/varint/default.nix b/pkgs/development/python-modules/varint/default.nix
index 5f32dff4aa5..143a452344e 100644
--- a/pkgs/development/python-modules/varint/default.nix
+++ b/pkgs/development/python-modules/varint/default.nix
@@ -22,4 +22,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ rakesh4g ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/vcrpy/default.nix b/pkgs/development/python-modules/vcrpy/default.nix
index 0dd88ba1979..633c4f266cd 100644
--- a/pkgs/development/python-modules/vcrpy/default.nix
+++ b/pkgs/development/python-modules/vcrpy/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "vcrpy";
-  version = "4.0.2";
+  version = "4.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9740c5b1b63626ec55cefb415259a2c77ce00751e97b0f7f214037baaf13c7bf";
+    sha256 = "4138e79eb35981ad391406cbb7227bce7eba8bad788dcf1a89c2e4a8b740debe";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/vcver/default.nix b/pkgs/development/python-modules/vcver/default.nix
new file mode 100644
index 00000000000..74b44cddc46
--- /dev/null
+++ b/pkgs/development/python-modules/vcver/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchFromGitHub
+, packaging
+, fetchurl, python }:
+
+buildPythonPackage rec {
+  pname = "vcver";
+  version = "0.2.10";
+
+  src = fetchFromGitHub {
+    owner = "toumorokoshi";
+    repo = "vcver-python";
+    rev = "c5d8a6f1f0e49bb25f5dbb07312e42cb4da096d6";
+    sha256 = "1cvgs70jf7ki78338zaglaw2dkvyndmx15ybd6k4zqwwsfgk490b";
+  };
+
+  propagatedBuildInputs = [
+    packaging
+  ];
+
+  # circular dependency on test tool uranium https://pypi.org/project/uranium/
+  doCheck = false;
+
+  pythonImportTests = [ "vcver" ];
+
+  meta = with lib; {
+    description = "Reference Implementation of vcver";
+    homepage = "https://github.com/toumorokoshi/vcver-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/vdirsyncer/stable.nix b/pkgs/development/python-modules/vdirsyncer/stable.nix
index cb90bfbc598..6e1dc982567 100644
--- a/pkgs/development/python-modules/vdirsyncer/stable.nix
+++ b/pkgs/development/python-modules/vdirsyncer/stable.nix
@@ -1,9 +1,7 @@
 { stdenv
-, pythonAtLeast
 , buildPythonPackage
 , fetchPypi
 , isPy27
-, fetchpatch
 , click
 , click-log
 , click-threading
@@ -11,25 +9,21 @@
 , requests
 , requests_oauthlib # required for google oauth sync
 , atomicwrites
-, milksnake
-, shippai
 , hypothesis
-, pytest
+, pytestCheckHook
 , pytest-localserver
 , pytest-subtesthack
 , setuptools_scm
 }:
 
-# Packaging documentation at:
-# https://github.com/pimutils/vdirsyncer/blob/0.16.7/docs/packaging.rst
 buildPythonPackage rec {
-  version = "0.16.7";
+  version = "0.16.8";
   pname = "vdirsyncer";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6c9bcfb9bcb01246c83ba6f8551cf54c58af3323210755485fc23bb7848512ef";
+    sha256 = "bfdb422f52e1d4d60bd0635d203fb59fa7f613397d079661eb48e79464ba13c5";
   };
 
   propagatedBuildInputs = [
@@ -46,43 +40,25 @@ buildPythonPackage rec {
 
   checkInputs = [
     hypothesis
-    pytest
+    pytestCheckHook
     pytest-localserver
     pytest-subtesthack
   ];
 
-  patches = [
-    # Fixes for hypothesis: https://github.com/pimutils/vdirsyncer/pull/779
-    (fetchpatch {
-      url = "https://github.com/pimutils/vdirsyncer/commit/22ad88a6b18b0979c5d1f1d610c1d2f8f87f4b89.patch";
-      sha256 = "0dbzj6jlxhdidnm3i21a758z83sdiwzhpd45pbkhycfhgmqmhjpl";
-    })
-  ];
-
   postPatch = ''
-    # Invalid argument: 'perform_health_check' is not a valid setting
-    substituteInPlace tests/conftest.py \
-      --replace "perform_health_check=False" ""
-    substituteInPlace tests/unit/test_repair.py \
-      --replace $'@settings(perform_health_check=False)  # Using the random module for UIDs\n' ""
+    substituteInPlace setup.py --replace "click>=5.0,<6.0" "click"
   '';
 
-  checkPhase = ''
-    make DETERMINISTIC_TESTS=true PYTEST_ARGS="--deselect=tests/system/cli/test_sync.py::test_verbosity" test
+  preCheck = ''
+    export DETERMINISTIC_TESTS=true
   '';
-  # Tests started to fail lately, for any python version even as low as 3.5 but
-  # if you enable the check, you'll see even severer errors with a higher then
-  # 3.5 python version. Hence it's marked as broken for higher then 3.5 and the
-  # checks are disabled unconditionally. As a general end user advice, use the
-  # normal "unstable" `vdirsyncer` derivation, not this one.
-  doCheck = false;
+
+  disabledTests = [ "test_verbosity" ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/pimutils/vdirsyncer";
     description = "Synchronize calendars and contacts";
     license = licenses.mit;
-    # vdirsyncer (unstable) works with mainline python versions
-    broken = (pythonAtLeast "3.6");
     maintainers = with maintainers; [ loewenheim ];
   };
 }
diff --git a/pkgs/development/python-modules/vega/default.nix b/pkgs/development/python-modules/vega/default.nix
index 6f445e9474e..b81481b0774 100644
--- a/pkgs/development/python-modules/vega/default.nix
+++ b/pkgs/development/python-modules/vega/default.nix
@@ -1,9 +1,10 @@
-{ stdenv, buildPythonPackage , fetchPypi
-, pytest, jupyter_core, pandas, ipywidgets }:
+{ stdenv, buildPythonPackage , fetchPypi, pythonOlder
+, pytest, jupyter_core, pandas, ipywidgets, jupyter, altair }:
 
 buildPythonPackage rec {
   pname = "vega";
   version = "3.4.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
@@ -11,7 +12,11 @@ buildPythonPackage rec {
   };
 
   buildInputs = [ pytest ];
-  propagatedBuildInputs = [ jupyter_core pandas ipywidgets ];
+  propagatedBuildInputs = [ jupyter jupyter_core pandas ipywidgets ];
+
+  # currently, recommonmark is broken on python3
+  doCheck = false;
+  checkInputs = [ altair ];
 
   meta = with stdenv.lib; {
     description = "An IPython/Jupyter widget for Vega and Vega-Lite";
diff --git a/pkgs/development/python-modules/venusian/default.nix b/pkgs/development/python-modules/venusian/default.nix
index 8817b057cc9..06f0d55acf0 100644
--- a/pkgs/development/python-modules/venusian/default.nix
+++ b/pkgs/development/python-modules/venusian/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , pytest
 , pytestcov
 }:
@@ -8,6 +9,7 @@
 buildPythonPackage rec {
   pname = "venusian";
   version = "3.0.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/vertica-python/default.nix b/pkgs/development/python-modules/vertica-python/default.nix
index 8beb39b26d9..7247e079467 100644
--- a/pkgs/development/python-modules/vertica-python/default.nix
+++ b/pkgs/development/python-modules/vertica-python/default.nix
@@ -2,22 +2,22 @@
 
 buildPythonPackage rec {
   pname = "vertica-python";
-  version = "0.10.4";
-  
+  version = "0.11.0";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "570525d0371806993874bd2ee0f47cc5d68994abb5aa382e964e53e0b81160b2";
+    sha256 = "cceb39d081b8d1628956205642e740a9fabcfd2c6ecd982c51134fba8215d0bd";
   };
-  
+
   propagatedBuildInputs = [ future dateutil six ];
-  
+
   checkInputs = [ pytest mock parameterized ];
-  
+
   # Integration tests require an accessible Vertica db
   checkPhase = ''
     pytest --ignore vertica_python/tests/integration_tests
   '';
-  
+
   meta = with lib; {
     description = "Native Python client for Vertica database";
     homepage = "https://github.com/vertica/vertica-python";
diff --git a/pkgs/development/python-modules/virtualenv/default.nix b/pkgs/development/python-modules/virtualenv/default.nix
index 5ca27330103..6a9d91d79c8 100644
--- a/pkgs/development/python-modules/virtualenv/default.nix
+++ b/pkgs/development/python-modules/virtualenv/default.nix
@@ -17,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "virtualenv";
-  version = "20.0.21";
+  version = "20.0.31";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1kxnxxwa25ghlkpyrxa8pi49v87b7ps2gyla7d1h6kbz9sfn45m1";
+    sha256 = "43add625c53c596d38f971a465553f6318decc39d98512bc100fa1b1e839c8dc";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/vispy/default.nix b/pkgs/development/python-modules/vispy/default.nix
new file mode 100644
index 00000000000..029132933a9
--- /dev/null
+++ b/pkgs/development/python-modules/vispy/default.nix
@@ -0,0 +1,40 @@
+{ lib, buildPythonPackage, substituteAll, stdenv,
+  fetchPypi, numpy, cython, freetype-py, fontconfig, libGL,
+  setuptools_scm, setuptools-scm-git-archive
+  }:
+
+buildPythonPackage rec {
+  pname = "vispy";
+  version = "0.6.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "07sb4qww6mgzm66qsrr3pd66yz39r6jj4ibb3qmfg1kwnxs6ayv2";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./library-paths.patch;
+      fontconfig = "${fontconfig.lib}/lib/libfontconfig${stdenv.hostPlatform.extensions.sharedLibrary}";
+      gl = "${libGL.out}/lib/libGL${stdenv.hostPlatform.extensions.sharedLibrary}";
+    })
+  ];
+
+  nativeBuildInputs = [
+    cython setuptools_scm setuptools-scm-git-archive
+  ];
+
+  propagatedBuildInputs = [
+    numpy freetype-py fontconfig libGL
+  ];
+
+  doCheck = false;  # otherwise runs OSX code on linux.
+  pythonImportsCheck = [ "vispy" ];
+
+  meta = with lib; {
+    homepage = "http://vispy.org/index.html";
+    description = "Interactive scientific visualization in Python";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ goertzenator ];
+  };
+}
diff --git a/pkgs/development/python-modules/vispy/library-paths.patch b/pkgs/development/python-modules/vispy/library-paths.patch
new file mode 100644
index 00000000000..05b583c12e4
--- /dev/null
+++ b/pkgs/development/python-modules/vispy/library-paths.patch
@@ -0,0 +1,39 @@
+diff --git a/vispy/ext/fontconfig.py b/vispy/ext/fontconfig.py
+index ff24662b..6a5079f0 100644
+--- a/vispy/ext/fontconfig.py
++++ b/vispy/ext/fontconfig.py
+@@ -7,10 +7,7 @@ from ..util.wrappers import run_subprocess
+ 
+ # Some code adapted from Pyglet
+ 
+-fc = util.find_library('fontconfig')
+-if fc is None:
+-    raise ImportError('fontconfig not found')
+-fontconfig = cdll.LoadLibrary(fc)
++fontconfig = cdll.LoadLibrary('@fontconfig@')
+ 
+ FC_FAMILY = 'family'.encode('ASCII')
+ FC_SIZE = 'size'.encode('ASCII')
+diff --git a/vispy/gloo/gl/gl2.py b/vispy/gloo/gl/gl2.py
+index d5bd9c38..63350e73 100644
+--- a/vispy/gloo/gl/gl2.py
++++ b/vispy/gloo/gl/gl2.py
+@@ -39,16 +39,8 @@ elif sys.platform.startswith('win'):
+         pass
+ else:
+     # Unix-ish
+-    if sys.platform.startswith('darwin'):
+-        _fname = ctypes.util.find_library('OpenGL')
+-    else:
+-        _fname = ctypes.util.find_library('GL')
+-    if not _fname:
+-        logger.warning('Could not load OpenGL library.')
+-        _lib = None
+-    else:
+-        # Load lib
+-        _lib = ctypes.cdll.LoadLibrary(_fname)
++    # Load lib
++    _lib = ctypes.cdll.LoadLibrary("@gl@")
+ 
+ 
+ def _have_context():
diff --git a/pkgs/development/python-modules/voluptuous-serialize/default.nix b/pkgs/development/python-modules/voluptuous-serialize/default.nix
index f310148d75d..383eed03a4e 100644
--- a/pkgs/development/python-modules/voluptuous-serialize/default.nix
+++ b/pkgs/development/python-modules/voluptuous-serialize/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec  {
   pname = "voluptuous-serialize";
-  version = "2.3.0";
+  version = "2.4.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1xcjyp1190z6a226fg0clvhf43gjsbyn60amblsg7w7cw86d033l";
+    sha256 = "1r7avibzf009h5rlh7mbh1fc01daligvi2axjn5qxh810g5igfn6";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/vulture/default.nix b/pkgs/development/python-modules/vulture/default.nix
new file mode 100644
index 00000000000..22b5af442d6
--- /dev/null
+++ b/pkgs/development/python-modules/vulture/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildPythonPackage, fetchPypi, isPy27, coverage, pytest, pytestcov }:
+
+buildPythonPackage rec {
+  pname = "vulture";
+  version = "2.0";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ab0dce458ab746212cc02ac10cf31912c43bbfdcccb49025745b00850beab086";
+  };
+
+  checkInputs = [ coverage pytest pytestcov ];
+  checkPhase = "pytest";
+
+  meta = with stdenv.lib; {
+    description = "Finds unused code in Python programs";
+    homepage = "https://github.com/jendrikseipp/vulture";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mcwitt ];
+  };
+}
diff --git a/pkgs/development/python-modules/wasabi/default.nix b/pkgs/development/python-modules/wasabi/default.nix
index 1865b5792b1..ec9cbb3d560 100644
--- a/pkgs/development/python-modules/wasabi/default.nix
+++ b/pkgs/development/python-modules/wasabi/default.nix
@@ -1,30 +1,25 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "wasabi";
-  version = "0.6.0";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0qv0zpr6kwjwygx9k8jgafiil5wh2zsyryvbxghzv4yn7jb3xpdq";
+    sha256 = "75fec6db6193c8615d7f398ae4aa2c4ad294e6e3e81c6a6dbbbd3864ee2223c3";
   };
 
-  checkInputs = [
-    pytest
-  ];
-
-  checkPhase = ''
-    pytest wasabi/tests
-  '';
+  checkInputs = [ pytestCheckHook ];
 
   meta = with stdenv.lib; {
     description = "A lightweight console printing and formatting toolkit";
     homepage = "https://github.com/ines/wasabi";
+    changelog = "https://github.com/ines/wasabi/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ danieldk ];
-    };
+  };
 }
diff --git a/pkgs/development/python-modules/watchdog/default.nix b/pkgs/development/python-modules/watchdog/default.nix
index 5347c696cc2..17f7b540c60 100644
--- a/pkgs/development/python-modules/watchdog/default.nix
+++ b/pkgs/development/python-modules/watchdog/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "watchdog";
-  version = "0.10.2";
+  version = "0.10.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ss58k33l5vah894lykid6ar6kw7z1f29cl4hzr5xvgs8fvfyq65";
+    sha256 = "4214e1379d128b0588021880ccaf40317ee156d4603ac388b9adcf29165e0c04";
   };
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin
diff --git a/pkgs/development/python-modules/wcwidth/default.nix b/pkgs/development/python-modules/wcwidth/default.nix
index 75f65377b46..7d5cbc69eca 100644
--- a/pkgs/development/python-modules/wcwidth/default.nix
+++ b/pkgs/development/python-modules/wcwidth/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "wcwidth";
-  version = "0.2.3";
+  version = "0.2.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "edbc2b718b4db6cdf393eefe3a420183947d6aa312505ce6754516f458ff8830";
+    sha256 = "c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/web/default.nix b/pkgs/development/python-modules/web/default.nix
index 6749ed2b838..bf21d7ed5c3 100644
--- a/pkgs/development/python-modules/web/default.nix
+++ b/pkgs/development/python-modules/web/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.51";
+  version = "0.61";
   pname = "web.py";
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b50343941360984d37270186453bb897d13630028a739394fedf38f9cde2fd07";
+    sha256 = "c7a9081aeb086cd3e703c7553a47ee75188d1d325f25eec7654d9bb00b5eccbb";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/webdavclient3/default.nix b/pkgs/development/python-modules/webdavclient3/default.nix
new file mode 100644
index 00000000000..eb13cd6b9bb
--- /dev/null
+++ b/pkgs/development/python-modules/webdavclient3/default.nix
@@ -0,0 +1,30 @@
+{ buildPythonPackage, fetchPypi, isPy27, lib, dateutil, lxml, requests
+, pytestCheckHook }:
+
+buildPythonPackage rec {
+  pname = "webdavclient3";
+  version = "3.14.5";
+
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0yw3n5m70ysjn1ch48znpn4zr4a1bd0lsm7q2grqz7q5hfjzjwk0";
+  };
+
+  propagatedBuildInputs = [ dateutil lxml requests ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  # disable tests completely, as most of them fail due to urllib3 not being able to establish a http connection
+  doCheck = false;
+
+  pythonImportsCheck = [ "webdav3.client" ];
+
+  meta = with lib; {
+    description = "Easy to use WebDAV Client for Python 3.x";
+    homepage = "https://github.com/ezhov-evgeny/webdav-client-python-3";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dmrauh ];
+  };
+}
diff --git a/pkgs/development/python-modules/werkzeug/default.nix b/pkgs/development/python-modules/werkzeug/default.nix
index c3778609e57..a4146d4d3b1 100644
--- a/pkgs/development/python-modules/werkzeug/default.nix
+++ b/pkgs/development/python-modules/werkzeug/default.nix
@@ -1,7 +1,8 @@
 { stdenv, buildPythonPackage, fetchPypi
 , itsdangerous, hypothesis
-, pytest, requests
+, pytestCheckHook, requests
 , pytest-timeout
+, isPy3k
  }:
 
 buildPythonPackage rec {
@@ -14,11 +15,14 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ itsdangerous ];
-  checkInputs = [ pytest requests hypothesis pytest-timeout ];
+  checkInputs = [ pytestCheckHook requests hypothesis pytest-timeout ];
 
-  checkPhase = ''
-    pytest ${stdenv.lib.optionalString stdenv.isDarwin "-k 'not test_get_machine_id'"}
-  '';
+  disabledTests = stdenv.lib.optionals stdenv.isDarwin [
+    "test_get_machine_id"
+  ];
+
+  # Python 2 pytest fails with INTERNALERROR due to a deprecation warning.
+  doCheck = isPy3k;
 
   meta = with stdenv.lib; {
     homepage = "https://palletsprojects.com/p/werkzeug/";
diff --git a/pkgs/development/python-modules/west/default.nix b/pkgs/development/python-modules/west/default.nix
new file mode 100644
index 00000000000..686ba1196b1
--- /dev/null
+++ b/pkgs/development/python-modules/west/default.nix
@@ -0,0 +1,53 @@
+{ lib, fetchPypi, buildPythonPackage, isPy3k
+, colorama, configobj, packaging, pyyaml, pykwalify
+}:
+
+buildPythonPackage rec {
+  version = "0.7.3";
+  pname = "west";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "86a36049ae3c8b1ce12d3183911b3082b38b2998e858285309581e37dc22d8fa";
+  };
+
+  propagatedBuildInputs = [
+    colorama
+    configobj
+    packaging
+    pyyaml
+    pykwalify
+  ];
+
+  # pypi package does not include tests (and for good reason):
+  # tests run under 'tox' and have west try to git clone repos (not sandboxable)
+  doCheck = false;
+  pythonImportsCheck = [
+    "west"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/zephyrproject-rtos/west";
+    description = "Zephyr RTOS meta tool";
+    longDescription = ''
+      West lets you manage multiple Git repositories under a single directory using a single file,
+      called the west manifest file, or manifest for short.
+
+      The manifest file is named west.yml.
+      You use west init to set up this directory,
+      then west update to fetch and/or update the repositories
+      named in the manifest.
+
+      By default, west uses upstream Zephyr’s manifest file
+      (https://github.com/zephyrproject-rtos/zephyr/blob/master/west.yml),
+      but west doesn’t care if the manifest repository is a Zephyr tree or not.
+
+      For more details, see Multiple Repository Management in the west documentation
+      (https://docs.zephyrproject.org/latest/guides/west/repo-tool.html).
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ siriobalmelli ];
+  };
+}
diff --git a/pkgs/development/python-modules/wheel/default.nix b/pkgs/development/python-modules/wheel/default.nix
index 4527006fadd..fd93cbdcea3 100644
--- a/pkgs/development/python-modules/wheel/default.nix
+++ b/pkgs/development/python-modules/wheel/default.nix
@@ -1,41 +1,51 @@
 { lib
-, setuptools
-, pip
 , buildPythonPackage
 , fetchFromGitHub
-, pytest
-, pytestcov
-, coverage
-, jsonschema
 , bootstrapped-pip
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "wheel";
-  version = "0.33.6";
+  version = "0.34.2";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "pypa";
     repo = pname;
     rev = version;
-    sha256 = "1bg4bxazsjxp621ymaykd8l75k7rvcvwawlipmjk7nsrl72l4p0s";
+    sha256 = "1mwh35ycv07ajnpcjc4rjdmndh6nyg03gdgag5m8c2af7z1xlcmj";
     name = "${pname}-${version}-source";
   };
 
-  checkInputs = [ pytest pytestcov coverage ];
-  nativeBuildInputs = [ bootstrapped-pip setuptools ];
+  nativeBuildInputs = [
+    bootstrapped-pip
+    setuptools
+  ];
 
-  catchConflicts = false;
   # No tests in archive
   doCheck = false;
+  pythonImportsCheck = [ "wheel" ];
 
   # We add this flag to ignore the copy installed by bootstrapped-pip
   pipInstallFlags = [ "--ignore-installed" ];
 
-  meta = {
-    description = "A built-package format for Python";
-    license = with lib.licenses; [ mit ];
+  meta = with lib; {
     homepage = "https://bitbucket.org/pypa/wheel/";
+    description = "A built-package format for Python";
+    longDescription = ''
+      This library is the reference implementation of the Python wheel packaging standard,
+      as defined in PEP 427.
+
+      It has two different roles:
+
+      - A setuptools extension for building wheels that provides the bdist_wheel setuptools command
+      - A command line tool for working with wheel files
+
+      It should be noted that wheel is not intended to be used as a library,
+      and as such there is no stable, public API.
+    '';
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ siriobalmelli ];
   };
 }
diff --git a/pkgs/development/python-modules/whitenoise/default.nix b/pkgs/development/python-modules/whitenoise/default.nix
index cf24f7fb1d3..dbc069f434e 100644
--- a/pkgs/development/python-modules/whitenoise/default.nix
+++ b/pkgs/development/python-modules/whitenoise/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "whitenoise";
-  version = "5.1.0";
+  version = "5.2.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "60154b976a13901414a25b0273a841145f77eb34a141f9ae032a0ace3e4d5b27";
+    sha256 = "05ce0be39ad85740a78750c86a93485c40f08ad8c62a6006de0233765996e5c7";
   };
 
   # No tests
diff --git a/pkgs/development/python-modules/willow/default.nix b/pkgs/development/python-modules/willow/default.nix
index 275a46a1472..e9e5001fec9 100644
--- a/pkgs/development/python-modules/willow/default.nix
+++ b/pkgs/development/python-modules/willow/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "willow";
-  version = "1.3";
+  version = "1.4";
   disabled = pythonOlder "2.7";
 
   src = fetchPypi {
     pname = "Willow";
     inherit version;
-    sha256 = "0dzc3cjkwp0h3v1n94c33zr5yw5fdd6dkm6vccp9i8dncmpw912g";
+    sha256 = "0b3lh7z98nlh4yn0cmvk7bimhfk5w4qvbmjr6jn880ji9h2ixq6d";
   };
 
   propagatedBuildInputs = [ six pillow ];
diff --git a/pkgs/development/python-modules/wordcloud/default.nix b/pkgs/development/python-modules/wordcloud/default.nix
index 759e48eb997..d005527b4c3 100644
--- a/pkgs/development/python-modules/wordcloud/default.nix
+++ b/pkgs/development/python-modules/wordcloud/default.nix
@@ -1,18 +1,12 @@
 { stdenv, buildPythonPackage, fetchFromGitHub
-, codecov, coverage
-, flake8
 , matplotlib
 , mock
 , numpy
 , pillow
 , pytest
 , pytestcov
-, pytest-sugar
-, setuptools
-, twine
-, wheel
 }:
-  
+
 buildPythonPackage rec {
   pname = "word_cloud";
   version = "1.6.0";
@@ -28,12 +22,12 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ matplotlib numpy pillow ];
 
   # Tests require extra dependencies
-  checkInputs = [ codecov coverage flake8 mock pytest pytestcov pytest-sugar setuptools twine wheel ];
+  checkInputs = [ mock pytest pytestcov ];
   # skip tests which make assumptions about installation
   checkPhase = ''
     pytest -k 'not cli_as_executable'
   '';
-  
+
   meta = with stdenv.lib; {
     description = "A little word cloud generator in Python";
     homepage = "https://github.com/amueller/word_cloud";
diff --git a/pkgs/development/python-modules/wsproto/0.14.nix b/pkgs/development/python-modules/wsproto/0.14.nix
index 79a66d2e4b1..a8488d8c4ab 100644
--- a/pkgs/development/python-modules/wsproto/0.14.nix
+++ b/pkgs/development/python-modules/wsproto/0.14.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "wsproto";
-  version = "0.15.0";
+  version = "0.14.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "614798c30e5dc2b3f65acc03d2d50842b97621487350ce79a80a711229edfa9d";
+    sha256 = "051s127qb5dladxa14n9nqajwq7xki1dz1was5r5v9df5a0jq8pd";
   };
 
   propagatedBuildInputs = [ h11 enum34 ];
diff --git a/pkgs/development/python-modules/wtf-peewee/default.nix b/pkgs/development/python-modules/wtf-peewee/default.nix
index efd3fbd77ab..69db4e50f67 100644
--- a/pkgs/development/python-modules/wtf-peewee/default.nix
+++ b/pkgs/development/python-modules/wtf-peewee/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "wtf-peewee";
-  version = "3.0.0";
+  version = "3.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "acd05d136c8595da3327fcf9176fa85fdcec1f2aac51d235e46e6fc7a0871283";
+    sha256 = "03qs6np5s9r0nmsryfzll29ajcqk27b18kcbgd9plf80ys3nb6kd";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/wtforms/default.nix b/pkgs/development/python-modules/wtforms/default.nix
index 410abbbb622..66667c74ef3 100644
--- a/pkgs/development/python-modules/wtforms/default.nix
+++ b/pkgs/development/python-modules/wtforms/default.nix
@@ -5,12 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.3.1";
+  version = "2.3.3";
   pname = "WTForms";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0whrd9cqhlibm31yqhvhp9illddxf0cpgcn3v806f7ajmsri66l6";
+    sha256 = "81195de0ac94fbc8368abbaf9197b88c4f3ffd6c2719b5bf5fc9da744f3d829c";
   };
 
   propagatedBuildInputs = [ markupsafe ];
diff --git a/pkgs/development/python-modules/wurlitzer/default.nix b/pkgs/development/python-modules/wurlitzer/default.nix
index 272c903f57b..e6897830fb7 100644
--- a/pkgs/development/python-modules/wurlitzer/default.nix
+++ b/pkgs/development/python-modules/wurlitzer/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "wurlitzer";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0xndv47iwc9k8cp5r9r1z3r0xww0r5x5b7qsmn39gk2gsg0119c6";
+    sha256 = "0hvmbc41kdwrjns8z1s4a59a4azdvzb8q3vs7nn1li4qm4l0g3yh";
   };
 
   propagatedBuildInputs = lib.optionals isPy27 [ selectors2 ];
diff --git a/pkgs/development/python-modules/wxPython/4.0.nix b/pkgs/development/python-modules/wxPython/4.0.nix
index e185e26a4f7..406493362c4 100644
--- a/pkgs/development/python-modules/wxPython/4.0.nix
+++ b/pkgs/development/python-modules/wxPython/4.0.nix
@@ -1,29 +1,18 @@
 { lib
 , stdenv
-, openglSupport ? true
-, libX11
-, pyopengl
 , buildPythonPackage
 , fetchPypi
 , pkgconfig
-, libjpeg
-, libtiff
-, SDL
-, gst-plugins-base
-, libnotify
-, freeglut
-, xorg
 , which
 , cairo
-, requests
 , pango
-, pathlib2
 , python
 , doxygen
 , ncurses
-, libpng
-, gstreamer
 , wxGTK
+, numpy
+, pillow
+, six
 }:
 
 buildPythonPackage rec {
@@ -38,16 +27,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   nativeBuildInputs = [ pkgconfig which doxygen wxGTK ];
-
-  buildInputs = [ libjpeg libtiff SDL
-      gst-plugins-base libnotify freeglut xorg.libSM ncurses
-      requests libpng gstreamer libX11
-      pathlib2
-      (wxGTK.gtk)
-  ]
-    ++ lib.optional openglSupport pyopengl;
-
-  hardeningDisable = [ "format" ];
+  buildInputs = [ ncurses wxGTK.gtk ];
 
   DOXYGEN = "${doxygen}/bin/doxygen";
 
@@ -68,10 +48,9 @@ buildPythonPackage rec {
 
   installPhase = ''
     ${python.interpreter} setup.py install --skip-build --prefix=$out
-    wrapPythonPrograms
   '';
 
-  passthru = { inherit wxGTK openglSupport; };
+  passthru = { inherit wxGTK; };
 
 
   meta = {
diff --git a/pkgs/development/python-modules/xarray/default.nix b/pkgs/development/python-modules/xarray/default.nix
index abce8ac12fe..344615c9014 100644
--- a/pkgs/development/python-modules/xarray/default.nix
+++ b/pkgs/development/python-modules/xarray/default.nix
@@ -5,20 +5,21 @@
 , numpy
 , pandas
 , python
+, setuptools
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "xarray";
-  version = "0.15.1";
+  version = "0.16.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "64e3138d87b641e22fe7a003c94abc685896b247b63e434505c1e6b38c91a8fb";
+    sha256 = "1js3xr3fl9bwid8hl3w2pnigqzjd2rvkncald5x1x5fg7wjy8pb6";
   };
 
   checkInputs = [ pytest ];
-  propagatedBuildInputs = [numpy pandas];
+  propagatedBuildInputs = [ numpy pandas setuptools ];
 
   checkPhase = ''
     pytest $out/${python.sitePackages}
diff --git a/pkgs/development/python-modules/xcffib/default.nix b/pkgs/development/python-modules/xcffib/default.nix
index 1bb421194f9..8f949f20e92 100644
--- a/pkgs/development/python-modules/xcffib/default.nix
+++ b/pkgs/development/python-modules/xcffib/default.nix
@@ -3,16 +3,17 @@
 , fetchPypi
 , xorg
 , cffi
+, nose
 , six
 }:
 
 buildPythonPackage rec {
-  version = "0.9.0";
+  version = "0.10.1";
   pname = "xcffib";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1r03yvxwbimh8ngfrbd436f9r535vvj6m1b3zfgz9kl76c8yn5ic";
+    sha256 = "cab1630a51076b11819c97e6da461ddd4cb21bdf65c071d1c57a846c9b129c12";
   };
 
   patchPhase = ''
@@ -22,6 +23,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ cffi six ];
 
+  checkInputs = [ nose ];
+
+  pythonImportsCheck = [ "xcffib" ];
+
   meta = with stdenv.lib; {
     description = "A drop in replacement for xpyb, an XCB python binding";
     homepage = "https://github.com/tych0/xcffib";
diff --git a/pkgs/development/python-modules/xlsx2csv/default.nix b/pkgs/development/python-modules/xlsx2csv/default.nix
index e1694b9d33e..1c42b1b1784 100644
--- a/pkgs/development/python-modules/xlsx2csv/default.nix
+++ b/pkgs/development/python-modules/xlsx2csv/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "xlsx2csv";
-  version = "0.7.6";
+  version = "0.7.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ff4121d42d318f31f71b248f37acfc21455a7d897a3c117b578744c89bc34f6c";
+    sha256 = "09vigknmz15izirfddkmb3a39h1rp2jmc00bnrff12i757n7jjl4";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/xml2rfc/default.nix b/pkgs/development/python-modules/xml2rfc/default.nix
index 960c544740c..d02b7e2e066 100644
--- a/pkgs/development/python-modules/xml2rfc/default.nix
+++ b/pkgs/development/python-modules/xml2rfc/default.nix
@@ -1,20 +1,22 @@
 { lib, fetchPypi, buildPythonPackage, intervaltree, pyflakes, requests, lxml, google-i18n-address
-, pycountry, html5lib, six, kitchen, pypdf2, dict2xml, weasyprint
+, pycountry, html5lib, six, kitchen, pypdf2, dict2xml, weasyprint, pyyaml, jinja2
 , stdenv
 }:
 
 buildPythonPackage rec {
   pname = "xml2rfc";
-  version = "2.45.2";
+  version = "2.47.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16e4d27040f7cb10171fb747e0193ff71b035597c63837133beee6ce4ba6ad6e";
+    sha256 = "7f621ed0e5a30c2b67c0e50778627b7a35e1ccfea9db19ea89b4c72a8faf42c0";
   };
 
   propagatedBuildInputs = [
     intervaltree
+    jinja2
     pyflakes
+    pyyaml
     requests
     lxml
     google-i18n-address
diff --git a/pkgs/development/python-modules/xmlschema/default.nix b/pkgs/development/python-modules/xmlschema/default.nix
index d3db09bc022..ac2a323aed5 100644
--- a/pkgs/development/python-modules/xmlschema/default.nix
+++ b/pkgs/development/python-modules/xmlschema/default.nix
@@ -1,26 +1,27 @@
 { lib, buildPythonPackage, fetchFromGitHub
 , elementpath
+, lxml
 , pytest
 }:
 
 buildPythonPackage rec {
-  version = "1.1.0";
+  version = "1.2.3";
   pname = "xmlschema";
 
   src = fetchFromGitHub {
     owner = "sissaschool";
     repo = "xmlschema";
     rev = "v${version}";
-    sha256 = "1h8321jb6q3dhlh3608y3f3sbbzfd3jg1psyirxkrm4w5xs3lbvy";
+    sha256 = "1lasi84d5v66xpd40fbj3lqwc5hfh3izxrr2wbfdbj4a3m996zc9";
   };
 
   propagatedBuildInputs = [ elementpath ];
 
-  checkInputs = [ pytest ];
+  checkInputs = [ lxml pytest ];
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "elementpath~=1.4.0" "elementpath~=1.4"
+      --replace "elementpath~=2.0.0" "elementpath~=2.0"
   '';
 
   # Ignore broken fixtures, and tests for files which don't exist.
diff --git a/pkgs/development/python-modules/xpybutil/default.nix b/pkgs/development/python-modules/xpybutil/default.nix
new file mode 100644
index 00000000000..07cfc96e7fd
--- /dev/null
+++ b/pkgs/development/python-modules/xpybutil/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchFromGitHub, xcffib, pillow, nose }:
+
+buildPythonPackage rec {
+  pname = "xpybutil";
+  version = "0.0.6";
+
+  # Pypi only offers a wheel
+  src = fetchFromGitHub {
+    owner = "BurntSushi";
+    repo = pname;
+    rev = version;
+    sha256 = "17gbqq955fcl29aayn8l0x14azc60cxgkvdxblz9q8x3l50w0xpg";
+  };
+
+  # pillow is a dependency in image.py which is not listed in setup.py
+  propagatedBuildInputs = [ xcffib pillow ];
+
+  checkInputs = [ nose ];
+
+  meta = with lib; {
+    homepage = "https://github.com/BurntSushi/xpybutil";
+    description = "An incomplete xcb-util port plus some extras";
+    license = licenses.wtfpl;
+    maintainers = with maintainers; [ artturin ];
+  };
+}
diff --git a/pkgs/development/python-modules/xxhash/default.nix b/pkgs/development/python-modules/xxhash/default.nix
index a3a5da18a98..52b3f8b1b5b 100644
--- a/pkgs/development/python-modules/xxhash/default.nix
+++ b/pkgs/development/python-modules/xxhash/default.nix
@@ -4,12 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.4.3";
+  version = "2.0.0";
   pname = "xxhash";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8b6b1afe7731d7d9cbb0398b4a811ebb5e6be5c174f72c68abf81f919a435de9";
+    sha256 = "58ca818554c1476fa1456f6cd4b87002e2294f09baf0f81e5a2a4968e62c423c";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/yamllint/default.nix b/pkgs/development/python-modules/yamllint/default.nix
index c01c862e2f4..892a9840a34 100644
--- a/pkgs/development/python-modules/yamllint/default.nix
+++ b/pkgs/development/python-modules/yamllint/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "yamllint";
-  version = "1.23.0";
+  version = "1.24.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1agl80csxhiqglm0idwhw98iqfpp61c9inzcdaz4czsfyivzzwsr";
+    sha256 = "07xn11i0c7x72xjxkkzrq9zxl40vfdr41mfvhlayrk6dpbk8vdj0";
   };
 
   checkInputs = [ nose ];
@@ -21,6 +21,6 @@ buildPythonPackage rec {
     description = "A linter for YAML files";
     homepage = "https://github.com/adrienverge/yamllint";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ mikefaille ];
+    maintainers = with maintainers; [ jonringer mikefaille ];
   };
 }
diff --git a/pkgs/development/python-modules/yappi/default.nix b/pkgs/development/python-modules/yappi/default.nix
index 5bb1abd98ce..e0be34a2d31 100644
--- a/pkgs/development/python-modules/yappi/default.nix
+++ b/pkgs/development/python-modules/yappi/default.nix
@@ -1,8 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, nose }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, nose }:
 
 buildPythonPackage rec {
   pname = "yappi";
   version = "1.2.5";
+  disabled = isPy27; # invalid syntax
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/yarl/default.nix b/pkgs/development/python-modules/yarl/default.nix
index bfb09f9c1c5..3ab7fb49c43 100644
--- a/pkgs/development/python-modules/yarl/default.nix
+++ b/pkgs/development/python-modules/yarl/default.nix
@@ -1,23 +1,29 @@
 { stdenv
+, lib
 , fetchPypi
 , buildPythonPackage
+, pythonOlder
 , multidict
 , pytestrunner
 , pytest
+, typing-extensions
 , idna
 }:
 
 buildPythonPackage rec {
   pname = "yarl";
-  version = "1.4.2";
+  version = "1.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "58cd9c469eced558cd81aa3f484b2924e8897049e06889e8ff2510435b7ef74b";
+    sha256 = "c22c75b5f394f3d47105045ea551e08a3e804dc7e01b37800ca35b58f856c3d6";
   };
 
   checkInputs = [ pytest pytestrunner ];
-  propagatedBuildInputs = [ multidict idna ];
+  propagatedBuildInputs = [ multidict idna ]
+    ++ lib.optionals (pythonOlder "3.8") [
+      typing-extensions
+    ];
 
   meta = with stdenv.lib; {
     description = "Yet another URL library";
diff --git a/pkgs/development/python-modules/yattag/default.nix b/pkgs/development/python-modules/yattag/default.nix
index f9b597e9f78..211a4b60c81 100644
--- a/pkgs/development/python-modules/yattag/default.nix
+++ b/pkgs/development/python-modules/yattag/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "yattag";
-  version = "1.13.2";
+  version = "1.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "41c1182f81e69bc53d8763c5bb9d27f54ae05ce581ee4e41c7931cc2f2479262";
+    sha256 = "5731a31cb7452c0c6930dd1a284e0170b39eee959851a2aceb8d6af4134a5fa8";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/ydiff/default.nix b/pkgs/development/python-modules/ydiff/default.nix
index ea30e62546f..822bb40783e 100644
--- a/pkgs/development/python-modules/ydiff/default.nix
+++ b/pkgs/development/python-modules/ydiff/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ydiff";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mxcl17sx1d4vaw22ammnnn3y19mm7r6ljbarcjzi519klz26bnf";
+    sha256 = "f5430577ecd30974d766ee9b8333e06dc76a947b4aae36d39612a0787865a121";
   };
 
   # test suite requires a multitude of other version control tooling
diff --git a/pkgs/development/python-modules/yeelight/default.nix b/pkgs/development/python-modules/yeelight/default.nix
new file mode 100644
index 00000000000..4cc7056da19
--- /dev/null
+++ b/pkgs/development/python-modules/yeelight/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchPypi, buildPythonPackage, future, enum-compat }:
+
+buildPythonPackage rec {
+  pname = "yeelight";
+  version = "0.5.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "8d49846f0cede1e312cbcd1d0e44c42073910bbcadb31b87ce2a7d24dea3af38";
+  };
+
+  propagatedBuildInputs = [ future enum-compat ];
+
+  meta = with stdenv.lib; {
+    description = "A Python library for controlling YeeLight RGB bulbs";
+    homepage = "https://gitlab.com/stavros/python-yeelight/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/pkgs/development/python-modules/yfinance/default.nix b/pkgs/development/python-modules/yfinance/default.nix
new file mode 100644
index 00000000000..55068d3d5e6
--- /dev/null
+++ b/pkgs/development/python-modules/yfinance/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, multitasking
+, numpy
+, pandas
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "yfinance";
+  version = "0.1.54";
+
+  # GitHub source releases aren't tagged
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "cee223cbd31e14955869f7978bcf83776d644345c7dea31ba5d41c309bfb0d3d";
+  };
+
+  propagatedBuildInputs = [
+    multitasking
+    numpy
+    pandas
+    requests
+  ];
+
+  doCheck = false;  # Tests require internet access
+  pythonImportsCheck = [ "yfinance" ];
+
+  meta = with lib; {
+    description = "Yahoo! Finance market data downloader (+faster Pandas Datareader)";
+    homepage = "https://aroussi.com/post/python-yahoo-finance";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ drewrisinger ];
+  };
+}
diff --git a/pkgs/development/python-modules/zarr/default.nix b/pkgs/development/python-modules/zarr/default.nix
index d7d1df5993b..c51694c6306 100644
--- a/pkgs/development/python-modules/zarr/default.nix
+++ b/pkgs/development/python-modules/zarr/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, isPy27
 , fetchPypi
 , setuptools_scm
 , asciitree
@@ -12,6 +13,7 @@
 buildPythonPackage rec {
   pname = "zarr";
   version = "2.4.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/zconfig/default.nix b/pkgs/development/python-modules/zconfig/default.nix
index 706db824371..ef4754504dd 100644
--- a/pkgs/development/python-modules/zconfig/default.nix
+++ b/pkgs/development/python-modules/zconfig/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchPypi
+, fetchpatch
 , buildPythonPackage
 , zope_testrunner
 , manuel
@@ -16,13 +17,17 @@ buildPythonPackage rec {
     sha256 = "0s7aycxna07a04b4rswbkj4y5qh3gxy2mcsqb9dmy0iimj9f9550";
   };
 
-  patches = stdenv.lib.optional stdenv.hostPlatform.isMusl ./remove-setlocale-test.patch;
+  patches = [
+    # fixes 3.8+ logger validation issues, has been merged into master, remove next bump
+    (fetchpatch {
+      url = "https://github.com/zopefoundation/ZConfig/commit/f0c2990d35ac3c924ecc8be4a5c71c8e4abbd0e5.patch";
+      sha256 = "1bjg3wrvii0rwzf3s0vlpzgg2ckj0h2zxkyxwjcr64s4k2vaq9ij";
+    })
+  ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./remove-setlocale-test.patch;
 
   buildInputs = [ manuel docutils ];
   propagatedBuildInputs = [ zope_testrunner ];
 
-  disabled = pythonAtLeast "3.8"; # 3.6.0 introduces compatibility for 3.8 and 3.9
-
   meta = with stdenv.lib; {
     description = "Structured Configuration Library";
     homepage = "https://pypi.python.org/pypi/ZConfig";
diff --git a/pkgs/development/python-modules/zeroconf/default.nix b/pkgs/development/python-modules/zeroconf/default.nix
index 1e51db1ab52..9e8d0853ecf 100644
--- a/pkgs/development/python-modules/zeroconf/default.nix
+++ b/pkgs/development/python-modules/zeroconf/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "zeroconf";
-  version = "0.27.1";
+  version = "0.28.2";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "51a8bc581036cabcf82523c81b72f6a11b2c7913eb7eb418b6dad60cd40f9ef2";
+    sha256 = "447d6da0b6426c0c67d5c29339e51b2d75e2c1f129605ad35a0cb84a454f09bc";
   };
 
   propagatedBuildInputs = [ ifaddr ]
diff --git a/pkgs/development/python-modules/zha-quirks/default.nix b/pkgs/development/python-modules/zha-quirks/default.nix
index 3e05dc1bfad..1e1a55d689d 100644
--- a/pkgs/development/python-modules/zha-quirks/default.nix
+++ b/pkgs/development/python-modules/zha-quirks/default.nix
@@ -4,14 +4,14 @@
 
 buildPythonPackage rec {
   pname = "zha-quirks";
-  version = "0.0.39";
+  version = "0.0.43";
 
   nativeBuildInputs = [ pytest ];
   buildInputs = [ aiohttp zigpy ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "99d4b20a933b97b323c558f4057036ebe349bf603e97826c498d17d9cc80ff0b";
+    sha256 = "16f62dddce73bb27408b13a0d6526a250b588ca020405b2369e72d5dc9fa7607";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/zigpy-cc/default.nix b/pkgs/development/python-modules/zigpy-cc/default.nix
new file mode 100644
index 00000000000..76887e39920
--- /dev/null
+++ b/pkgs/development/python-modules/zigpy-cc/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, pyserial, pyserial-asyncio, zigpy
+, asynctest, pytest, pytest-asyncio }:
+
+buildPythonPackage rec {
+  pname = "zigpy-cc";
+  version = "0.5.1";
+
+  propagatedBuildInputs = [ pyserial pyserial-asyncio zigpy ];
+  checkInputs = [ asynctest pytest pytest-asyncio ];
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "06759615b28c45beaa5f03e594769a373d41674b96aeafefccd5c4e1c67e25ca";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A library which communicates with Texas Instruments CC2531 radios for zigpy";
+    homepage = "http://github.com/sanyatuning/zigpy-cc";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ etu mvnetbiz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/python-modules/zigpy-deconz/default.nix b/pkgs/development/python-modules/zigpy-deconz/default.nix
index 80667cf6ec5..af52e942530 100644
--- a/pkgs/development/python-modules/zigpy-deconz/default.nix
+++ b/pkgs/development/python-modules/zigpy-deconz/default.nix
@@ -1,14 +1,13 @@
 { stdenv, buildPythonPackage, fetchPypi
-, aiohttp, crccheck, pyserial, pyserial-asyncio, pycryptodome, zigpy
-, pytest }:
+, pyserial, pyserial-asyncio, zigpy
+, pytest, pytest-asyncio, asynctest }:
 
 buildPythonPackage rec {
   pname = "zigpy-deconz";
   version = "0.9.2";
 
-  nativeBuildInputs = [ pytest ];
-  buildInputs = [ aiohttp crccheck pycryptodome ];
   propagatedBuildInputs = [ pyserial pyserial-asyncio zigpy ];
+  checkInputs = [ pytest pytest-asyncio asynctest ];
 
   src = fetchPypi {
     inherit pname version;
@@ -19,7 +18,7 @@ buildPythonPackage rec {
     description = "Library which communicates with Deconz radios for zigpy";
     homepage = "https://github.com/zigpy/zigpy-deconz";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ etu ];
+    maintainers = with maintainers; [ etu mvnetbiz ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/python-modules/zigpy-xbee/default.nix b/pkgs/development/python-modules/zigpy-xbee/default.nix
new file mode 100644
index 00000000000..70266644801
--- /dev/null
+++ b/pkgs/development/python-modules/zigpy-xbee/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, pyserial, pyserial-asyncio, zigpy
+, pytest }:
+
+buildPythonPackage rec {
+  pname = "zigpy-xbee";
+  version = "0.12.1";
+
+  buildInputs = [ pyserial pyserial-asyncio zigpy ];
+  checkInputs = [ pytest ];
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09488hl27qjv8shw38iiyzvzwcjkc0k4n00l2bfn1ac443xzw0vh";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A library which communicates with XBee radios for zigpy";
+    homepage = "http://github.com/zigpy/zigpy-xbee";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ etu mvnetbiz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/python-modules/zigpy-zigate/default.nix b/pkgs/development/python-modules/zigpy-zigate/default.nix
new file mode 100644
index 00000000000..43f291841ff
--- /dev/null
+++ b/pkgs/development/python-modules/zigpy-zigate/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, pyserial, pyserial-asyncio, zigpy
+, pytest }:
+
+buildPythonPackage rec {
+  pname = "zigpy-zigate";
+  version = "0.6.1";
+
+  buildInputs = [ pyserial pyserial-asyncio zigpy ];
+  checkInputs = [ pytest ];
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0xxqv65drrr96b9ncwsx9ayd369lpwimj1jjb0d7j6l9lil0wmf5";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A library which communicates with ZiGate radios for zigpy";
+    homepage = "http://github.com/doudz/zigpy-zigate";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ etu mvnetbiz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/python-modules/zigpy/default.nix b/pkgs/development/python-modules/zigpy/default.nix
index dfe1a5c547d..e85784e51ad 100644
--- a/pkgs/development/python-modules/zigpy/default.nix
+++ b/pkgs/development/python-modules/zigpy/default.nix
@@ -1,25 +1,24 @@
 { stdenv, buildPythonPackage, fetchPypi
-, aiohttp, crccheck, pycryptodome, pycrypto
+, aiohttp, crccheck, pycryptodome, pycrypto, voluptuous
 , pytest, pytest-asyncio, asynctest }:
 
 buildPythonPackage rec {
-  pname = "zigpy-homeassistant";
-  version = "0.19.0";
+  pname = "zigpy";
+  version = "0.22.2";
 
-  nativeBuildInputs = [ pytest pytest-asyncio asynctest ];
-  buildInputs = [ aiohttp pycryptodome ];
-  propagatedBuildInputs = [ crccheck pycrypto ];
+  propagatedBuildInputs = [ aiohttp crccheck pycrypto pycryptodome voluptuous ];
+  checkInputs = [ pytest pytest-asyncio asynctest ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "779cff7affb86b7141aa641c188342b22be0ec766adee0d180c93e74e2b10adc";
+    sha256 = "a43129932c6e4af0d2d57542218faf7695e2424ce18a5a8915d016e1303f5e44";
   };
 
   meta = with stdenv.lib; {
     description = "Library implementing a ZigBee stack";
     homepage = "https://github.com/zigpy/zigpy";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ etu ];
+    maintainers = with maintainers; [ etu mvnetbiz ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/python-modules/zipp/1.nix b/pkgs/development/python-modules/zipp/1.nix
index d7447a26159..0de729928d0 100644
--- a/pkgs/development/python-modules/zipp/1.nix
+++ b/pkgs/development/python-modules/zipp/1.nix
@@ -35,4 +35,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/jaraco/zipp";
     license = licenses.mit;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/zodb/default.nix b/pkgs/development/python-modules/zodb/default.nix
index bcc164ea380..e8097461d3b 100644
--- a/pkgs/development/python-modules/zodb/default.nix
+++ b/pkgs/development/python-modules/zodb/default.nix
@@ -1,8 +1,8 @@
 { stdenv
 , fetchPypi
-, fetchpatch
 , buildPythonPackage
 , python
+, pythonAtLeast
 , zope_testrunner
 , transaction
 , six
@@ -17,26 +17,21 @@
 
 buildPythonPackage rec {
     pname = "ZODB";
-    version = "5.5.1";
+    version = "5.6.0";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "20155942fa326e89ad8544225bafd74237af332ce9d7c7105a22318fe8269666";
+      sha256 = "1zh7rd182l15swkbkm3ib0wgyn16xasdz2mzry8k4lwk6dagnm26";
     };
 
-    patches = [
-      # Compatibility with transaction v3.0
-      (fetchpatch {
-        url = "https://github.com/zopefoundation/ZODB/commit/0adcc6877f690186c97cc5da7e13788946d5e0df.patch";
-        sha256 = "1zmbgm7r36nj5w7icpinp61fm81svh2wk213pzr3l0jxzr9i5qi4";
-      })
-    ];
-
     # remove broken test
     postPatch = ''
       rm -vf src/ZODB/tests/testdocumentation.py
     '';
 
+    # ZConfig 3.5.0 is not compatible with Python 3.8
+    disabled = pythonAtLeast "3.8";
+
     propagatedBuildInputs = [
       transaction
       six
diff --git a/pkgs/development/python-modules/zope_component/default.nix b/pkgs/development/python-modules/zope_component/default.nix
index a658f989687..df0835841bc 100644
--- a/pkgs/development/python-modules/zope_component/default.nix
+++ b/pkgs/development/python-modules/zope_component/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "zope.component";
-  version = "4.6.1";
+  version = "4.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d9c7c27673d787faff8a83797ce34d6ebcae26a370e25bddb465ac2182766aca";
+    sha256 = "91628918218b3e6f6323de2a7b845e09ddc5cae131c034896c051b084bba3c92";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/zope_contenttype/default.nix b/pkgs/development/python-modules/zope_contenttype/default.nix
index d3cd69943a7..b1792d71854 100644
--- a/pkgs/development/python-modules/zope_contenttype/default.nix
+++ b/pkgs/development/python-modules/zope_contenttype/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, zope_testrunner
 }:
 
 buildPythonPackage rec {
@@ -12,12 +13,12 @@ buildPythonPackage rec {
     sha256 = "c12d929c67ab3eaef9b8a7fba3d19cce8500c8fd25afed8058c8e15f324cbd5b";
   };
 
+  checkInputs = [ zope_testrunner ];
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/zopefoundation/zope.contenttype";
     description = "A utility module for content-type (MIME type) handling";
     license = licenses.zpl20;
     maintainers = with maintainers; [ goibhniu ];
-    broken = true;
   };
-
 }
diff --git a/pkgs/development/python-modules/zope_exceptions/default.nix b/pkgs/development/python-modules/zope_exceptions/default.nix
index 04e68f038e9..ae7797b8736 100644
--- a/pkgs/development/python-modules/zope_exceptions/default.nix
+++ b/pkgs/development/python-modules/zope_exceptions/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "zope.exceptions";
-  version = "4.3";
+  version = "4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5fa59c3c1044bb9448aeec8328db0bfceaae2a2174e88528d3fe04adf8d47211";
+    sha256 = "0d72886b1bb8af4c346a117a540f28ab122577f5e3a105a261be72cd15776fda";
   };
 
   propagatedBuildInputs = [ zope_interface ];
diff --git a/pkgs/development/python-modules/zope_i18n/default.nix b/pkgs/development/python-modules/zope_i18n/default.nix
deleted file mode 100644
index 662188db153..00000000000
--- a/pkgs/development/python-modules/zope_i18n/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, pytz
-, zope_component
-}:
-
-buildPythonPackage rec {
-  pname = "zope.i18n";
-  version = "4.7.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "9fcc1adb4e5f6188769ab36f6f40a59b567bb5eef91f714584e0dfd0891be5d0";
-  };
-
-  propagatedBuildInputs = [ pytz zope_component ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/zopefoundation/zope.i18n";
-    description = "Zope Internationalization Support";
-    license = licenses.zpl20;
-    maintainers = with maintainers; [ goibhniu ];
-    broken = true;
-  };
-
-}
diff --git a/pkgs/development/python-modules/zope_testrunner/default.nix b/pkgs/development/python-modules/zope_testrunner/default.nix
index 9b7145a5851..90fa0b8143c 100644
--- a/pkgs/development/python-modules/zope_testrunner/default.nix
+++ b/pkgs/development/python-modules/zope_testrunner/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "zope.testrunner";
-  version = "5.1";
+  version = "5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "354a65f6c6fe6c0584e2fcf06d7318e90dc7f7de1b7008d8913733e299317870";
+    sha256 = "873d6017abadc213992a0c38c786ed020341b6e0fe78d14bc2a684cf5a70de4b";
   };
 
   propagatedBuildInputs = [ zope_interface zope_exceptions zope_testing six ];
diff --git a/pkgs/development/python-modules/zopfli/default.nix b/pkgs/development/python-modules/zopfli/default.nix
new file mode 100644
index 00000000000..58b7d43f3d2
--- /dev/null
+++ b/pkgs/development/python-modules/zopfli/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPythonPackage, fetchPypi, pytest }:
+
+buildPythonPackage rec {
+  pname = "zopfli";
+  version = "0.1.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0smaxh7iihjr9mwxw1ifc9vnlh3ra8l060dd1gbvp1963k0r68pd";
+    extension = "zip";
+  };
+
+  checkInputs = [ pytest ];
+
+  meta = with lib; {
+    description = "cPython bindings for zopfli";
+    homepage = "https://github.com/obp/py-zopfli";
+    license = licenses.asl20;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/python-modules/zstandard/default.nix b/pkgs/development/python-modules/zstandard/default.nix
index 760593904be..58b3c5af825 100755
--- a/pkgs/development/python-modules/zstandard/default.nix
+++ b/pkgs/development/python-modules/zstandard/default.nix
@@ -7,17 +7,17 @@
 
 buildPythonPackage rec {
   pname = "zstandard";
-  version = "0.13.0";
-  
+  version = "0.14.0";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e5cbd8b751bd498f275b0582f449f92f14e64f4e03b5bf51c571240d40d43561";
+    sha256 = "0lkn7n3bfp7zip6hkqwkqwc8pxmhhs4rr699k77h51rfln6kjllh";
   };
-  
+
   propagatedBuildInputs = [ cffi ];
-  
+
   checkInputs = [ hypothesis ];
-    
+
   meta = with lib; {
     description = "zstandard bindings for Python";
     homepage = "https://github.com/indygreg/python-zstandard";
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index da42a5dd820..2d2839c0e00 100644
--- a/pkgs/development/r-modules/default.nix
+++ b/pkgs/development/r-modules/default.nix
@@ -334,7 +334,7 @@ let
     rtiff = [ pkgs.libtiff.dev ];
     runjags = [ pkgs.jags ];
     RVowpalWabbit = [ pkgs.zlib.dev pkgs.boost ];
-    rzmq = [ pkgs.zeromq3 ];
+    rzmq = [ pkgs.zeromq ];
     SAVE = [ pkgs.zlib pkgs.bzip2 pkgs.icu pkgs.lzma pkgs.pcre ];
     sdcTable = [ pkgs.gmp pkgs.glpk ];
     seewave = [ pkgs.fftw.dev pkgs.libsndfile.dev ];
@@ -705,6 +705,10 @@ let
       preConfigure = "patchShebangs configure";
     });
 
+    RcppParallel = old.RcppParallel.overrideDerivation (attrs: {
+      preConfigure = "patchShebangs configure";
+    });
+
     ggbio = old.ggbio.overrideDerivation (attrs: {
       patches = [
         (pkgs.fetchpatch {
diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix
index 65f27f497b7..9ccc369429d 100644
--- a/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/pkgs/development/ruby-modules/gem-config/default.nix
@@ -305,19 +305,26 @@ in
   };
 
   mathematical = attrs: {
-    buildInputs = [
+    nativeBuildInputs = [
+      ruby
       cmake
       bison
       flex
-      glib
       pkgconfig
+      python3
+    ];
+
+    buildInputs = [
       cairo
-      pango
+      fribidi
       gdk-pixbuf
+      glib
       libxml2
-      python3
+      pango
     ];
 
+    strictDeps = true;
+
     # The ruby build script takes care of this
     dontUseCmakeConfigure = true;
 
diff --git a/pkgs/development/ruby-modules/solargraph/Gemfile.lock b/pkgs/development/ruby-modules/solargraph/Gemfile.lock
index d9438a79956..f5ef7d8d32f 100644
--- a/pkgs/development/ruby-modules/solargraph/Gemfile.lock
+++ b/pkgs/development/ruby-modules/solargraph/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    ast (2.4.0)
+    ast (2.4.1)
     backport (1.1.2)
     benchmark (0.1.0)
     e2mmap (0.1.0)
@@ -11,22 +11,26 @@ GEM
     nokogiri (1.10.9)
       mini_portile2 (~> 2.4.0)
     parallel (1.19.1)
-    parser (2.7.0.5)
+    parser (2.7.1.3)
       ast (~> 2.4.0)
     rainbow (3.0.0)
-    reverse_markdown (1.4.0)
+    regexp_parser (1.7.1)
+    reverse_markdown (2.0.0)
       nokogiri
     rexml (3.2.4)
-    rubocop (0.80.1)
-      jaro_winkler (~> 1.5.1)
+    rubocop (0.85.1)
       parallel (~> 1.10)
       parser (>= 2.7.0.1)
       rainbow (>= 2.2.2, < 4.0)
+      regexp_parser (>= 1.7)
       rexml
+      rubocop-ast (>= 0.0.3)
       ruby-progressbar (~> 1.7)
-      unicode-display_width (>= 1.4.0, < 1.7)
+      unicode-display_width (>= 1.4.0, < 2.0)
+    rubocop-ast (0.0.3)
+      parser (>= 2.7.0.1)
     ruby-progressbar (1.10.1)
-    solargraph (0.38.6)
+    solargraph (0.39.8)
       backport (~> 1.1)
       benchmark
       bundler (>= 1.17.2)
@@ -35,15 +39,15 @@ GEM
       maruku (~> 0.7, >= 0.7.3)
       nokogiri (~> 1.9, >= 1.9.1)
       parser (~> 2.3)
-      reverse_markdown (~> 1.0, >= 1.0.5)
+      reverse_markdown (>= 1.0.5, < 3)
       rubocop (~> 0.52)
       thor (~> 1.0)
       tilt (~> 2.0)
-      yard (~> 0.9)
+      yard (~> 0.9, >= 0.9.24)
     thor (1.0.1)
     tilt (2.0.10)
-    unicode-display_width (1.6.1)
-    yard (0.9.24)
+    unicode-display_width (1.7.0)
+    yard (0.9.25)
 
 PLATFORMS
   ruby
diff --git a/pkgs/development/ruby-modules/solargraph/gemset.nix b/pkgs/development/ruby-modules/solargraph/gemset.nix
index a6ec78b7458..655384ec49a 100644
--- a/pkgs/development/ruby-modules/solargraph/gemset.nix
+++ b/pkgs/development/ruby-modules/solargraph/gemset.nix
@@ -1,14 +1,13 @@
 {
   ast = {
-    dependencies = [];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+      sha256 = "1l3468czzjmxl93ap40hp7z94yxp4nbag0bxqs789bm30md90m2a";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.4.1";
   };
   backport = {
     dependencies = [];
@@ -104,10 +103,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0iirjc36irgwpfb58jdf9gli382cj893y9caqhxas8anpzzlikgc";
+      sha256 = "162122h7vkg9crc9gsjwpy6bjrwg9r8ghhimwk952i5rrln3kird";
       type = "gem";
     };
-    version = "2.7.0.5";
+    version = "2.7.1.3";
   };
   rainbow = {
     dependencies = [];
@@ -120,16 +119,26 @@
     };
     version = "3.0.0";
   };
+  regexp_parser = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "106azpr2c280y2f8jnr6fd49q1abb43xh9hhgbxc4d4kvzpa8094";
+      type = "gem";
+    };
+    version = "1.7.1";
+  };
   reverse_markdown = {
     dependencies = ["nokogiri"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w786j869fjhjf72waj0hc9i4ghi45b78a2am27kij4sa2hmsc53";
+      sha256 = "0w6fv779542vdliq2kmikfhymjv55z8mgzblkfjdy2agl07da9c6";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "2.0.0";
   };
   rexml = {
     dependencies = [];
@@ -143,15 +152,26 @@
     version = "3.2.4";
   };
   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 = "1i8pw7p4dk11xpahs0j6vlvqlv3rgapaccj933g0i34hbx392lj8";
+      sha256 = "1ghvlbaxcvwqqpkikzdg125frf5i733lhnih79ghrvc4rykvi86h";
       type = "gem";
     };
-    version = "0.80.1";
+    version = "0.85.1";
+  };
+  rubocop-ast = {
+    dependencies = ["parser"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lbs9is1y85cmd6p3yq3v0nppq4rhpy8ynk2ln0y4rwrlb5088dh";
+      type = "gem";
+    };
+    version = "0.0.3";
   };
   ruby-progressbar = {
     dependencies = [];
@@ -170,10 +190,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06kcqm032sq1y4pgg7cl32hv74573b1vsy79x81zglar80ybgzv4";
+      sha256 = "140zs7syf6l641p6459rg1byc2h9z2ldhmc0hbzmkgqp4lw18n7c";
       type = "gem";
     };
-    version = "0.38.6";
+    version = "0.39.8";
   };
   thor = {
     dependencies = [];
@@ -198,25 +218,23 @@
     version = "2.0.10";
   };
   unicode-display_width = {
-    dependencies = [];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pppclzq4qb26g321553nm9xqca3zgllvpwb2kqxsdadwj51s09x";
+      sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
       type = "gem";
     };
-    version = "1.6.1";
+    version = "1.7.0";
   };
   yard = {
-    dependencies = [];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g0bw2qcl48fxawrdf68l229508z53mrqisavji2lkxzv4w4j2pp";
+      sha256 = "126m49mvh4lbvlvrprq7xj2vjixbq3xqr8dwr089vadvs0rkn4rd";
       type = "gem";
     };
-    version = "0.9.24";
+    version = "0.9.25";
   };
-}
+}
\ No newline at end of file
diff --git a/pkgs/development/tools/alloy/default.nix b/pkgs/development/tools/alloy/default.nix
index ed91df066c3..44a6d7329ba 100644
--- a/pkgs/development/tools/alloy/default.nix
+++ b/pkgs/development/tools/alloy/default.nix
@@ -44,7 +44,7 @@ let generic = { major, version, src }:
       homepage = "http://alloytools.org/";
       downloadPage = "http://alloytools.org/download.html";
       license = licenses.mit;
-      platforms = platforms.linux;
+      platforms = platforms.unix;
       maintainers = with maintainers; [ notbandali ];
     };
   };
diff --git a/pkgs/development/tools/ameba/default.nix b/pkgs/development/tools/ameba/default.nix
index 215319e4e65..9b7cf3f1de8 100644
--- a/pkgs/development/tools/ameba/default.nix
+++ b/pkgs/development/tools/ameba/default.nix
@@ -2,13 +2,13 @@
 
 crystal.buildCrystalPackage rec {
   pname = "ameba";
-  version = "0.13.0";
+  version = "0.13.2";
 
   src = fetchFromGitHub {
     owner = "crystal-ameba";
     repo = "ameba";
     rev = "v${version}";
-    sha256 = "0h7s40xk7qmrc560k6vyx67lvimp74giwj21a43np0gcxq4f9icd";
+    sha256 = "0wyfx9nwda0s3arpdalz5zgh83v6wfz1a3l2k5v0jglpczq3m04m";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/ammonite/default.nix b/pkgs/development/tools/ammonite/default.nix
index 271869bd7c4..8e420f5f462 100644
--- a/pkgs/development/tools/ammonite/default.nix
+++ b/pkgs/development/tools/ammonite/default.nix
@@ -8,7 +8,7 @@ let
 common = { scalaVersion, sha256 }:
 stdenv.mkDerivation rec {
   pname = "ammonite";
-  version = "2.0.4";
+  version = "2.2.0";
 
   src = fetchurl {
     url = "https://github.com/lihaoyi/Ammonite/releases/download/${version}/${scalaVersion}-${version}";
@@ -40,6 +40,6 @@ stdenv.mkDerivation rec {
   };
 };
 in {
-  ammonite_2_12 = common { scalaVersion = "2.12"; sha256 = "068lcdi1y3zcspr0qmppflad7a4kls9gi321rp8dc5qc6f9nnk04"; };
-  ammonite_2_13 = common { scalaVersion = "2.13"; sha256 = "0fa0q9nk00crr2ws2mmw6pp4vf0xy53bqqhnws524ywwg6zwrl9s"; };
+  ammonite_2_12 = common { scalaVersion = "2.12"; sha256 = "0nclfqwy3jfn1680z1hd0zzmc0b79wpvx6gn1jnm19aq7qcvh5zp"; };
+  ammonite_2_13 = common { scalaVersion = "2.13"; sha256 = "104bnahn382sb6vwjvchsg0jrnkkwjn08rfh0g5ra7lwhgcj2719"; };
 }
diff --git a/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix b/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
index fd1c2c964a2..48805d16808 100644
--- a/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
+++ b/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-tarpaulin";
-  version = "0.14.0";
+  version = "0.14.3";
 
   src = fetchFromGitHub {
     owner = "xd009642";
     repo = "tarpaulin";
     rev = "${version}";
-    sha256 = "1ilqynjvvczxdvsfszkmrz1casrbsbklw8nbgh5l1nx8kxsp5lx7";
+    sha256 = "03d8h5b174699yivaamlvaqzck9zs119jk29yf70dvxw7cs0nngv";
   };
 
   nativeBuildInputs = [
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   ];
   buildInputs = [ openssl ];
 
-  cargoSha256 = "0jcn1b4v9glh058sfd270b33g988n672q50f8kyhwl8xip7xzj06";
+  cargoSha256 = "0zzp2wyq48j6n64fm37qfl65cg4yzf9ysichhkmkc6viq8x0f66d";
   #checkFlags = [ "--test-threads" "1" ];
   doCheck = false;
 
@@ -25,6 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/xd009642/tarpaulin";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ hugoreeves ];
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix
index 632d3005e7b..8ea63aa155e 100644
--- a/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  version = "8.34";
+  version = "8.35";
   pname = "checkstyle";
 
   src = fetchurl {
     url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
-    sha256 = "0qgldd0rna5y50vflkjnhl4hb4nhh28d0zwsv32872g6hivl7fzb";
+    sha256 = "1jvm49cbwyqxmz8zb9f6wim4rnna2dg1yk95123h46vl6s5cxcc0";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/analysis/codeql/default.nix b/pkgs/development/tools/analysis/codeql/default.nix
index 40294e3f4c7..e450bbefe24 100644
--- a/pkgs/development/tools/analysis/codeql/default.nix
+++ b/pkgs/development/tools/analysis/codeql/default.nix
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   pname = "codeql";
-  version = "2.2.3";
+  version = "2.2.5";
 
   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 = "029l4f7d6c6kj2arc2zij4r04y36p537c6qaa6v87dd9piz85k0j";
+    sha256 = "1x9crby4idkvfy6i5l0r00ixnx3ij68zjh1l5n92hyzlf0snv28d";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/analysis/eresi/default.nix b/pkgs/development/tools/analysis/eresi/default.nix
index c8c0d0c6960..b8abad44f24 100644
--- a/pkgs/development/tools/analysis/eresi/default.nix
+++ b/pkgs/development/tools/analysis/eresi/default.nix
@@ -61,7 +61,6 @@ stdenv.mkDerivation rec {
     description = "The ERESI Reverse Engineering Software Interface";
     license = lib.licenses.gpl2;
     homepage = "http://www.eresi-project.org/";
-    maintainers = [ lib.maintainers.aszlig ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index ce60cf1392a..cc3ef8ed0f7 100644
--- a/pkgs/development/tools/analysis/flow/default.nix
+++ b/pkgs/development/tools/analysis/flow/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flow";
-  version = "0.128.0";
+  version = "0.133.0";
 
   src = fetchFromGitHub {
     owner  = "facebook";
     repo   = "flow";
     rev    = "refs/tags/v${version}";
-    sha256 = "1psplmqd1l6mxw0rbji2h73fvqhpp1zf9clzgc8khmkh0bbhc5ss";
+    sha256 = "1r4s4gw50pvp4r4mq2w45s9i7fbkf7zycgp8rrj1dqzmkl9v6kii";
   };
 
   installPhase = ''
@@ -25,6 +25,7 @@ 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/pkgs/development/tools/analysis/hotspot/default.nix b/pkgs/development/tools/analysis/hotspot/default.nix
index 23ca35b3717..f04d060290f 100644
--- a/pkgs/development/tools/analysis/hotspot/default.nix
+++ b/pkgs/development/tools/analysis/hotspot/default.nix
@@ -17,13 +17,13 @@
 
 mkDerivation rec {
   pname = "hotspot";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "KDAB";
     repo = "hotspot";
     rev = "v${version}";
-    sha256 = "05rkzrvak93z8mzcpm4mcjxb933l8pjsxr9a595wfn1gn2ihmada";
+    sha256 = "1f68bssh3p387hkavfjkqcf7qf7w5caznmjfjldicxphap4riqr5";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/tools/analysis/include-what-you-use/default.nix b/pkgs/development/tools/analysis/include-what-you-use/default.nix
index 6e19d89702a..8bda0ac2223 100644
--- a/pkgs/development/tools/analysis/include-what-you-use/default.nix
+++ b/pkgs/development/tools/analysis/include-what-you-use/default.nix
@@ -3,10 +3,10 @@
 stdenv.mkDerivation rec {
   pname = "include-what-you-use";
   # Also bump llvmPackages in all-packages.nix to the supported version!
-  version = "0.13";
+  version = "0.14";
 
   src = fetchurl {
-    sha256 = "1jav4qf7d303by9iy6v08w73wfwzj76i54inh90w1s34m9q44aa9";
+    sha256 = "1vq0c8jqspvlss8hbazml44fi0mbslgnp2i9wcr0qrjpvfbl6623";
     url = "${meta.homepage}/downloads/${pname}-${version}.src.tar.gz";
   };
 
diff --git a/pkgs/development/tools/analysis/panopticon/default.nix b/pkgs/development/tools/analysis/panopticon/default.nix
index e2c174783d4..cbc736e1a26 100644
--- a/pkgs/development/tools/analysis/panopticon/default.nix
+++ b/pkgs/development/tools/analysis/panopticon/default.nix
@@ -45,6 +45,5 @@ rustPlatform.buildRustPackage rec {
     '';
     license = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ leenaars ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/analysis/pmd/default.nix b/pkgs/development/tools/analysis/pmd/default.nix
index f80483e0e12..f91cdbead82 100644
--- a/pkgs/development/tools/analysis/pmd/default.nix
+++ b/pkgs/development/tools/analysis/pmd/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pmd";
-  version = "6.25.0";
+  version = "6.26.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/pmd/pmd-bin-${version}.zip";
-    sha256 = "0ykg0wylyfiwjlhkbfjqfam34174paihrw7x1dwfq9anyn5bjf0k";
+    sha256 = "1vlqwrbqk2cbp8kgxkm61c4blai81ib35yjf6wms16w0hvbqf2b4";
   };
 
   nativeBuildInputs = [ unzip makeWrapper ];
diff --git a/pkgs/development/tools/analysis/radare2/cutter.nix b/pkgs/development/tools/analysis/radare2/cutter.nix
index 3f90e5f7343..5fde4e1f433 100644
--- a/pkgs/development/tools/analysis/radare2/cutter.nix
+++ b/pkgs/development/tools/analysis/radare2/cutter.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "radare2-cutter";
-  version = "1.10.3";
+  version = "1.11.1";
 
   src = fetchFromGitHub {
     owner = "radareorg";
     repo = "cutter";
     rev = "v${version}";
-    sha256 = "0qj8jyij02nif4jpirl09ygwnv8a9zi3vkb5sf5s8mg7qwlpnvyk";
+    sha256 = "0kscl0yf5qxacqnz3pp47r94yiwnc4rwirnr2x580z10fwhsivki";
   };
 
   postUnpack = "export sourceRoot=$sourceRoot/src";
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index f77ea1602f4..e86ef253249 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -110,24 +110,24 @@ in {
   #<generated>
   # DO NOT EDIT! Automatically generated by ./update.py
   radare2 = generic {
-    version_commit = "24545";
-    gittap = "4.4.0";
-    gittip = "9ea0b7ce566cfdcfb3513f407c4056915204294a";
-    rev = "4.4.0";
-    version = "4.4.0";
-    sha256 = "0gwdnrnk7wdgkajp2qwg4fyplh7nsbmf01bzx07px6xmiscd9z2s";
-    cs_ver = "4.0.1";
-    cs_sha256 = "0ijwxxk71nr9z91yxw20zfj4bbsbrgvixps5c7cpj163xlzlwba6";
+    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";
   };
   r2-for-cutter = generic {
-    version_commit = "24605";
-    gittap = "4.4.0";
-    gittip = "9ea0b7ce566cfdcfb3513f407c4056915204294a";
-    rev = "9ea0b7ce566cfdcfb3513f407c4056915204294a";
-    version = "2020-04-14";
-    sha256 = "0gwdnrnk7wdgkajp2qwg4fyplh7nsbmf01bzx07px6xmiscd9z2s";
-    cs_ver = "4.0.1";
-    cs_sha256 = "0ijwxxk71nr9z91yxw20zfj4bbsbrgvixps5c7cpj163xlzlwba6";
+    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/pkgs/development/tools/analysis/radare2/update.py b/pkgs/development/tools/analysis/radare2/update.py
index b9e72e62366..ebd6e073fe5 100755
--- a/pkgs/development/tools/analysis/radare2/update.py
+++ b/pkgs/development/tools/analysis/radare2/update.py
@@ -5,6 +5,8 @@
 # and is formatted with black.
 import fileinput
 import json
+import xml.etree.ElementTree as ET
+from urllib.parse import urlparse
 import re
 import subprocess
 import tempfile
@@ -30,10 +32,20 @@ def prefetch_github(owner: str, repo: str, ref: str) -> str:
 
 
 def get_radare2_rev() -> str:
-    url = "https://api.github.com/repos/radare/radare2/releases/latest"
-    with urllib.request.urlopen(url) as response:
-        release = json.load(response)  # type: ignore
-    return release["tag_name"]
+    feed_url = "http://github.com/radareorg/radare2/releases.atom"
+    with urllib.request.urlopen(feed_url) as resp:
+        tree = ET.fromstring(resp.read())
+    releases = tree.findall(".//{http://www.w3.org/2005/Atom}entry")
+    for release in releases:
+        link = release.find("{http://www.w3.org/2005/Atom}link")
+        assert link is not None
+        url = urlparse(link.attrib["href"])
+        tag = url.path.split("/")[-1]
+        if re.match(r"[0-9.]+", tag):
+            return tag
+        else:
+            print(f"ignore {tag}")
+    raise RuntimeError(f"No release found at {feed_url}")
 
 
 def get_cutter_version() -> str:
diff --git a/pkgs/development/tools/analysis/randoop/default.nix b/pkgs/development/tools/analysis/randoop/default.nix
index 54c990ee058..0e57509d9f7 100644
--- a/pkgs/development/tools/analysis/randoop/default.nix
+++ b/pkgs/development/tools/analysis/randoop/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, unzip }:
 
 stdenv.mkDerivation rec {
-  version = "4.2.3";
+  version = "4.2.4";
   pname = "randoop";
 
   src = fetchurl {
     url = "https://github.com/randoop/randoop/releases/download/v${version}/${pname}-${version}.zip";
-    sha256 = "0apmwbh761b02z8i4s3d270ms0c1fw98d10rpczngrs2jz37s2m9";
+    sha256 = "1p6l5xzz7cbhrk5wy3906llhnwk0l8nck53pvi0l57kz7bdnag5w";
   };
 
   buildInputs = [ unzip ];
diff --git a/pkgs/development/tools/analysis/svlint/default.nix b/pkgs/development/tools/analysis/svlint/default.nix
new file mode 100644
index 00000000000..adf17dabece
--- /dev/null
+++ b/pkgs/development/tools/analysis/svlint/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "svlint";
+  version = "0.4.7";
+
+  src = fetchFromGitHub {
+    owner = "dalance";
+    repo = "svlint";
+    rev = "v${version}";
+    sha256 = "0gn68achvhyxljvhw5rwraxjcgdwrl1bwbsn596ka15nrk4lwb34";
+  };
+
+  cargoSha256 = "0v94zsh4jhzjnqbkgwn8rjbs72i5cw2nmkwn7xhdbbwxh17a88x4";
+
+  meta = with lib; {
+    description = "SystemVerilog linter";
+    homepage = "https://github.com/dalance/svlint";
+    license = licenses.mit;
+    maintainers = with maintainers; [ trepetti ];
+  };
+}
diff --git a/pkgs/development/tools/analysis/tflint/default.nix b/pkgs/development/tools/analysis/tflint/default.nix
index 88b556bd06a..b6834ea8232 100644
--- a/pkgs/development/tools/analysis/tflint/default.nix
+++ b/pkgs/development/tools/analysis/tflint/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "tflint";
-  version = "0.17.0";
+  version = "0.19.1";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    sha256 = "14zsgapc18r0xccld21jalk50i6xa0bgd56a0l8kamffhf0jnifk";
+    sha256 = "1nj36xxl8zg7wdc36lakzdyr9hk82qwkwrvrw19bqach697y57nf";
   };
 
-  vendorSha256 = "0k14inpxg4qd28kg9n58n1hj40bzzqb1ywhiw9cb9az4j0xaa3hi";
+  vendorSha256 = "0bzd58ry5k100mjgvl1mxz7aysm75s4vkilcykrqy1s5sc0h3ng5";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/analysis/tfsec/default.nix b/pkgs/development/tools/analysis/tfsec/default.nix
index 251162efd8f..61ed0e07af5 100644
--- a/pkgs/development/tools/analysis/tfsec/default.nix
+++ b/pkgs/development/tools/analysis/tfsec/default.nix
@@ -2,17 +2,19 @@
 
 buildGoPackage rec {
   pname = "tfsec";
-  version = "0.21.0";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "liamg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0mmh161zwrkjwpw01zcgh7hsap7lgdxhg191bajzig6vlq287jyh";
+    sha256 = "06sr20zrbhyj35cyw64bk6sjj9q9lh52kc8wg1ryaimr3dc6lrn1";
   };
 
   goPackagePath = "github.com/liamg/tfsec";
 
+  buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/version.Version=${version}" ];
+
   meta = with lib; {
     homepage = "https://github.com/liamg/tfsec";
     description = "Static analysis powered security scanner for your terraform code";
diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix
index 9d8e999c385..2e485b3ed67 100644
--- a/pkgs/development/tools/analysis/valgrind/default.nix
+++ b/pkgs/development/tools/analysis/valgrind/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perl, gdb, cctools, xnu, bootstrap_cmds }:
 
 stdenv.mkDerivation rec {
-  name = "valgrind-3.15.0";
+  name = "valgrind-3.16.1";
 
   src = fetchurl {
     url = "https://sourceware.org/pub/valgrind/${name}.tar.bz2";
-    sha256 = "1ccawxrni8brcvwhygy12iprkvz409hbr9xkk1bd03gnm2fplz21";
+    sha256 = "1jik19rcd34ip8a5c9nv5wfj8k8maqb8cyclr4xhznq2gcpkl7y9";
   };
 
   outputs = [ "out" "dev" "man" "doc" ];
@@ -38,10 +38,6 @@ stdenv.mkDerivation rec {
       sed -i coregrind/link_tool_exe_darwin.in \
           -e 's/^my \$archstr = .*/my $archstr = "x86_64";/g'
 
-      echo "substitute hardcoded /usr/include/mach with ${xnu}/include/mach"
-      substituteInPlace coregrind/Makefile.in \
-         --replace /usr/include/mach ${xnu}/include/mach
-
       substituteInPlace coregrind/m_debuginfo/readmacho.c \
          --replace /usr/bin/dsymutil ${stdenv.cc.bintools.bintools}/bin/dsymutil
 
@@ -54,7 +50,8 @@ stdenv.mkDerivation rec {
   postPatch = "";
 
   configureFlags =
-    stdenv.lib.optional (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin") "--enable-only64bit";
+    stdenv.lib.optional (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin") "--enable-only64bit"
+    ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin "--with-xcodedir=${xnu}/include";
 
   doCheck = false; # fails
 
diff --git a/pkgs/development/tools/async/default.nix b/pkgs/development/tools/async/default.nix
index dad1e2f6574..e63f9a18a63 100644
--- a/pkgs/development/tools/async/default.nix
+++ b/pkgs/development/tools/async/default.nix
@@ -24,6 +24,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ctbur/async";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ minijackson ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/aws-sam-cli/default.nix b/pkgs/development/tools/aws-sam-cli/default.nix
index 8af26a06c5c..c2ebf223508 100644
--- a/pkgs/development/tools/aws-sam-cli/default.nix
+++ b/pkgs/development/tools/aws-sam-cli/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ fetchFromGitHub
+, lib
 , python
 , enableTelemetry ? false
 }:
@@ -6,6 +7,14 @@
 let
   py = python.override {
     packageOverrides = self: super: {
+      aws-sam-translator = super.aws-sam-translator.overridePythonAttrs (oldAttrs: rec {
+        version = "1.25.0";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "08756yl5lpqgrpr80f2b6bdcgygr37l6q1yygklcg9hz4yfpccav";
+        };
+      });
+
       flask = super.flask.overridePythonAttrs (oldAttrs: rec {
         version = "1.0.2";
         src = oldAttrs.src.override {
@@ -30,11 +39,11 @@ with py.pkgs;
 
 buildPythonApplication rec {
   pname = "aws-sam-cli";
-  version = "0.44.0";
+  version = "1.0.0rc1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0r3m41xjmg8m2jwsqwc9kdkcs3xbz8dsl240ybwbnr7rp29pnirf";
+    sha256 = "011b334gdvd9lhqia8c952q3cmzj99vik680180nbp0qh2xw6zpf";
   };
 
   # Tests are not included in the PyPI package
@@ -66,9 +75,11 @@ buildPythonApplication rec {
   # fix over-restrictive version bounds
   postPatch = ''
     substituteInPlace requirements/base.txt \
+      --replace "boto3~=1.13.0, >=1.13.0" "boto3~=1.14.3" \
       --replace "serverlessrepo==0.1.9" "serverlessrepo~=0.1.9" \
       --replace "python-dateutil~=2.6, <2.8.1" "python-dateutil~=2.6" \
-      --replace "tomlkit==0.5.8" "tomlkit~=0.5.8" \
+      --replace "jmespath~=0.9.5" "jmespath~=0.10.0" \
+      --replace "tomlkit==0.5.8" "tomlkit~=0.6.0" \
       --replace "requests==2.22.0" "requests~=2.22"
   '';
 
diff --git a/pkgs/development/tools/azcopy/default.nix b/pkgs/development/tools/azcopy/default.nix
index 903245deb31..3d0fe8513c8 100644
--- a/pkgs/development/tools/azcopy/default.nix
+++ b/pkgs/development/tools/azcopy/default.nix
@@ -2,18 +2,20 @@
 
 buildGoModule rec {
   pname = "azure-storage-azcopy";
-  version = "10.4.3";
+  version = "10.6.0";
 
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "azure-storage-azcopy";
-    rev = version;
-    sha256 = "0yl7iznjyng1i3d994qrryllni702gga7h45sx8i3sgpy8544yjf";
+    rev = "v${version}";
+    sha256 = "0izjnbldgf0597j4rh2ir9jsc2nzp9vwxcgllvkm5lh1xqf6i0nf";
   };
 
   subPackages = [ "." ];
 
-  vendorSha256 = "1276k2hpyr7bqp6hdi576xcdcd2c8vz100jpls663z7vb2rbpvxf";
+  vendorSha256 = "10sxkb2dh1il4ps15dlvq0xsry8hax27imb5qg3khdmjhb4yaj7k";
+
+  doCheck = false;
 
   postInstall = ''
     ln -rs "$out/bin/azure-storage-azcopy" "$out/bin/azcopy"
@@ -24,4 +26,4 @@ buildGoModule rec {
     license = licenses.mit;
     description = "The new Azure Storage data transfer utility - AzCopy v10";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/bazel-gazelle/default.nix b/pkgs/development/tools/bazel-gazelle/default.nix
index ff019e78510..a3838283c5e 100644
--- a/pkgs/development/tools/bazel-gazelle/default.nix
+++ b/pkgs/development/tools/bazel-gazelle/default.nix
@@ -5,17 +5,19 @@
 
 buildGoModule rec {
   pname = "bazel-gazelle";
-  version = "0.20.0";
+  version = "0.21.1";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1rw9zq8rmc0zr91kk70xl67dl6jx4dswwisv3bd1f16yncqgv2a1";
+    sha256 = "12ffrildgx4lah7bdnhr7i8z5jp05lll6gmmpzshmzz8dsgf39y4";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   subPackages = [ "cmd/gazelle" ];
 
   meta = with lib; {
@@ -28,4 +30,4 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ kalbasit ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/bazel-kazel/default.nix b/pkgs/development/tools/bazel-kazel/default.nix
new file mode 100644
index 00000000000..55f79a993ac
--- /dev/null
+++ b/pkgs/development/tools/bazel-kazel/default.nix
@@ -0,0 +1,26 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "bazel-kazel";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "kubernetes";
+    repo = "repo-infra";
+    rev = "v${version}";
+    sha256 = "121asn0h2vfgqnjk72wqjcfq0w15k15abjdm39i8hv455kzrc2hs";
+  };
+
+  vendorSha256 = "1pzkjh4n9ai8yqi98bkdhicjdr2l8j3fckl5n90c2gdcwqyxvgkf";
+
+  doCheck = false;
+
+  subPackages = [ "cmd/kazel" ];
+
+  meta = with lib; {
+    description = "kazel - a BUILD file generator for go and bazel";
+    homepage = "https://github.com/kubernetes/repo-infra";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/pkgs/development/tools/bazelisk/default.nix b/pkgs/development/tools/bazelisk/default.nix
index 05776712b32..e639c7ab314 100644
--- a/pkgs/development/tools/bazelisk/default.nix
+++ b/pkgs/development/tools/bazelisk/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "bazelisk";
-  version = "1.5.0";
+  version = "1.6.1";
 
   patches = [ ./gomod.patch ];
 
@@ -10,10 +10,12 @@ buildGoModule rec {
     owner = "bazelbuild";
     repo = pname;
     rev = "v${version}";
-    sha256 = "06vimiklcprsxq7l6rmxshv8l0kjr7aanpm206qgx3wvw4shibmw";
+    sha256 = "0g5zwdk7p1snqcbm4w3hsi3fm7sbsijrfj4ajxg7mifywqpmzm2l";
   };
 
-  vendorSha256 = "11iwgrnid0f8sq9f23m1a3s55sc7lpl60phykmd9ss4xs39bapl5";
+  vendorSha256 = "1jgm6j04glvk7ib5yd0h04p9qxzl1ca100cv909kngx52jp61yxp";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.BazeliskVersion=${version}" ];
 
diff --git a/pkgs/development/tools/bazelisk/gomod.patch b/pkgs/development/tools/bazelisk/gomod.patch
index d41d81e7ede..0c35004b294 100644
--- a/pkgs/development/tools/bazelisk/gomod.patch
+++ b/pkgs/development/tools/bazelisk/gomod.patch
@@ -6,7 +6,7 @@ index 8eef134..54382cb 100644
  go 1.14
  
  require (
-+	github.com/bazelbuild/rules_go v0.23.3
++	github.com/bazelbuild/rules_go v0.23.7
  	github.com/hashicorp/go-version v1.2.0
  	github.com/mitchellh/go-homedir v1.1.0
  )
diff --git a/pkgs/development/tools/bloaty/default.nix b/pkgs/development/tools/bloaty/default.nix
index 8d3472a4a38..28df0aaa696 100644
--- a/pkgs/development/tools/bloaty/default.nix
+++ b/pkgs/development/tools/bloaty/default.nix
@@ -1,14 +1,14 @@
 { stdenv, cmake, zlib, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  version = "1.0";
+  version = "1.1";
   pname = "bloaty";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "bloaty";
     rev = "v${version}";
-    sha256 = "0fck83zyh9bwlwdk3fkhv3337g9nii6rzf96gyghmnrsp9rzxs3l";
+    sha256 = "1556gb8gb8jwf5mwxppcqz3mp269b5jhd51kj341iqkbn27zzngk";
     fetchSubmodules = true;
   };
 
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/google/bloaty";
     license = licenses.asl20;
     platforms = platforms.unix;
-    maintainers = [ maintainers.dtzWill ];
+    maintainers = with maintainers; [ dtzWill ];
   };
 }
diff --git a/pkgs/development/tools/build-managers/apache-ant/1.9.nix b/pkgs/development/tools/build-managers/apache-ant/1.9.nix
index 3f43cad17c4..49f8435b377 100644
--- a/pkgs/development/tools/build-managers/apache-ant/1.9.nix
+++ b/pkgs/development/tools/build-managers/apache-ant/1.9.nix
@@ -1,6 +1,6 @@
 { fetchurl, stdenv, coreutils, makeWrapper }:
 
-let version = "1.9.6"; in
+let version = "1.9.15"; in
 
 stdenv.mkDerivation {
   pname = "ant";
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://apache/ant/binaries/apache-ant-${version}-bin.tar.bz2";
-    sha256 = "1cwd5vq175gyicw0hkm8idwa33zxwhf7xlxywaqxcqqdjql0jfx4";
+    sha256 = "0yfx5qsvrg12lar4908ndbnlpppy7g7qk8ay41y4sz9g873v07mr";
   };
 
   contrib = fetchurl {
diff --git a/pkgs/development/tools/build-managers/apache-ant/default.nix b/pkgs/development/tools/build-managers/apache-ant/default.nix
index f06467867ce..b0411090fbe 100644
--- a/pkgs/development/tools/build-managers/apache-ant/default.nix
+++ b/pkgs/development/tools/build-managers/apache-ant/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, stdenv, coreutils, makeWrapper }:
 
-let version = "1.10.2"; in
+let version = "1.10.8"; in
 
 stdenv.mkDerivation {
   pname = "ant";
@@ -10,12 +10,12 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://apache/ant/binaries/apache-ant-${version}-bin.tar.bz2";
-    sha256 = "0662qammjvibh9kgkxzadkayfn2r7iwnagbwaw28crqqclrb2rp1";
+    sha256 = "0zh94csb2hl6ir2ccn18ps506mjgh3mffnrb8wpsmp1x5fcykha5";
   };
 
   contrib = fetchurl {
     url = "mirror://sourceforge/ant-contrib/ant-contrib-1.0b3-bin.tar.bz2";
-    sha256 = "96effcca2581c1ab42a4828c770b48d54852edf9e71cefc9ed2ffd6590571ad1";
+    sha256 = "1l8say86bz9gxp4yy777z7nm4j6m905pg342li1aphc14p5grvwn";
   };
 
   installPhase =
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix
index 6d4ba50a9fb..c507169cf37 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix
@@ -236,6 +236,8 @@ stdenv.mkDerivation rec {
       fetch --experimental_distdir=${distDir}
       build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
       build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
+      build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
+      build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
       build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
       build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
       build --host_javabase='@local_jdk//:jdk'
@@ -245,6 +247,8 @@ stdenv.mkDerivation rec {
       # add the same environment vars to compile.sh
       sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
index 19d33235a34..ad6e9ee4456 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
@@ -417,6 +417,8 @@ stdenv.mkDerivation rec {
       fetch --distdir=${distDir}
       build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
       build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
+      build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
+      build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
       build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
       build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
       build --host_javabase='@local_jdk//:jdk'
@@ -426,6 +428,8 @@ stdenv.mkDerivation rec {
       # add the same environment vars to compile.sh
       sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
index eff8aede6c1..8dcdc71415f 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
@@ -417,6 +417,8 @@ stdenv.mkDerivation rec {
       fetch --distdir=${distDir}
       build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
       build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
+      build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
+      build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
       build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
       build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
       build --host_javabase='@local_jdk//:jdk'
@@ -426,6 +428,8 @@ stdenv.mkDerivation rec {
       # add the same environment vars to compile.sh
       sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
index c867ed7a85d..0bfc9071d7e 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, callPackage, lib, fetchurl, fetchFromGitHub
+{ stdenv, callPackage, lib, fetchurl, fetchFromGitHub, installShellFiles
 , runCommand, runCommandCC, makeWrapper, recurseIntoAttrs
 # this package (through the fixpoint glass)
 , bazel_self
@@ -419,10 +419,18 @@ stdenv.mkDerivation rec {
 
       # add nix environment vars to .bazelrc
       cat >> .bazelrc <<EOF
+      # Limit the resources Bazel is allowed to use during the build to 1/2 the
+      # available RAM and 3/4 the available CPU cores. This should help avoid
+      # overwhelming the build machine.
+      build --local_ram_resources=HOST_RAM*.5
+      build --local_cpu_resources=HOST_CPUS*.75
+
       build --distdir=${distDir}
       fetch --distdir=${distDir}
       build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
       build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
+      build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
+      build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
       build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
       build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
       build --host_javabase='@local_jdk//:jdk'
@@ -432,6 +440,8 @@ stdenv.mkDerivation rec {
       # add the same environment vars to compile.sh
       sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
@@ -465,6 +475,7 @@ stdenv.mkDerivation rec {
   # when a command can’t be found in a bazel build, you might also
   # need to add it to `defaultShellPath`.
   nativeBuildInputs = [
+    installShellFiles
     zip
     python3
     unzip
@@ -507,9 +518,15 @@ stdenv.mkDerivation rec {
     mv ./bazel_src/output/bazel $out/bin/bazel-${version}-${system}-${arch}
 
     # shell completion files
-    mkdir -p $out/share/bash-completion/completions $out/share/zsh/site-functions
-    mv ./bazel_src/output/bazel-complete.bash $out/share/bash-completion/completions/bazel
-    cp ./bazel_src/scripts/zsh_completion/_bazel $out/share/zsh/site-functions/
+    installShellCompletion --bash \
+      --name bazel.bash \
+      ./bazel_src/output/bazel-complete.bash
+    installShellCompletion --zsh \
+      --name _bazel \
+      ./bazel_src/scripts/zsh_completion/_bazel
+    installShellCompletion --fish \
+      --name bazel.fish \
+      ./bazel_src/scripts/fish/completions/bazel.fish
   '';
 
   doInstallCheck = true;
diff --git a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
index 83182983455..dd9bc4016f5 100644
--- a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
@@ -24,6 +24,5 @@ buildGoPackage rec {
     homepage = "https://github.com/bazelbuild/buildtools";
     license = licenses.asl20;
     maintainers = with maintainers; [ elasticdog uri-canva marsam ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/build-managers/bloop/default.nix b/pkgs/development/tools/build-managers/bloop/default.nix
index 51ca62d0520..c3049edee64 100644
--- a/pkgs/development/tools/build-managers/bloop/default.nix
+++ b/pkgs/development/tools/build-managers/bloop/default.nix
@@ -1,78 +1,92 @@
-{ stdenv, lib, fetchurl, coursier, python, makeWrapper }:
-
-let
-  baseName = "bloop";
-  version = "1.3.4";
-  nailgunCommit = "d7ed5db"; # Fetched from https://github.com/scalacenter/bloop/releases/download/v${version}/install.py
-
-  client = stdenv.mkDerivation {
-    name = "${baseName}-client-${version}";
-
-    src = fetchurl {
-      url = "https://raw.githubusercontent.com/scalacenter/nailgun/${nailgunCommit}/pynailgun/ng.py";
-      sha256 = "0lrj25m0nvphz2i5mqjwccpyrd7gn8a5k22k5khrpdh6ldxqis8a";
-    };
-
-    phases = [ "installPhase" ];
+{ stdenv
+, fetchurl
+, coursier
+, autoPatchelfHook
+, installShellFiles
+, jre
+, lib
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bloop";
+  version = "1.4.4";
+
+  bloop-coursier-channel = fetchurl {
+    url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bloop-coursier.json";
+    sha256 = "1pyf559bpnsmvca4kw36nb9lwkwa9q0ghrpa117s96dhvrp3i2bv";
+  };
 
-    installPhase = ''cp $src $out'';
+  bloop-bash = fetchurl {
+    url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bash-completions";
+    sha256 = "1ldxlqv353gvhdn4yq7z506ywvnjv6fjsi8wigwhzg89876pwsys";
   };
 
-  server = stdenv.mkDerivation {
-    name = "${baseName}-server-${version}";
-    buildCommand = ''
-      mkdir -p $out/bin
+  bloop-fish = fetchurl {
+    url = "https://github.com/scalacenter/bloop/releases/download/v${version}/fish-completions";
+    sha256 = "1pa8h81l2498q8dbd83fzipr99myjwxpy8xdgzhvqzdmfv6aa4m0";
+  };
 
-      export COURSIER_CACHE=$(pwd)
-      ${coursier}/bin/coursier bootstrap ch.epfl.scala:bloop-frontend_2.12:${version} \
-        -r "bintray:scalameta/maven" \
-        -r "bintray:scalacenter/releases" \
-        -r "https://oss.sonatype.org/content/repositories/staging" \
-        --deterministic \
-        -f --main bloop.Server -o $out/bin/blp-server
-    '';
-    outputHashMode = "recursive";
-    outputHashAlgo = "sha256";
-    outputHash     = "1z33ip6hgfwiixm2gimz819p5cnxn1fmxb3ryyf77jzwsx7py718";
+  bloop-zsh = fetchurl {
+    url = "https://github.com/scalacenter/bloop/releases/download/v${version}/zsh-completions";
+    sha256 = "1xzg0qfkjdmzm3mvg82mc4iia8cl7b6vbl8ng4ir2xsz00zjrlsq";
   };
 
-  zsh = stdenv.mkDerivation {
-    name = "${baseName}-zshcompletion-${version}";
+  bloop-coursier = stdenv.mkDerivation rec {
+    name = "${pname}-coursier-${version}";
 
-    src = fetchurl {
-      url = "https://raw.githubusercontent.com/scalacenter/bloop/v${version}/etc/zsh/_bloop";
-      sha256 = "09qq5888vaqlqan2jbs2qajz2c3ff13zj8r0x2pcxsqmvlqr02hp";
-    };
+    platform = if stdenv.isLinux && stdenv.isx86_64 then "x86_64-pc-linux"
+               else if stdenv.isDarwin && stdenv.isx86_64 then "x86_64-apple-darwin"
+               else throw "unsupported platform";
 
     phases = [ "installPhase" ];
+    installPhase = ''
+      export COURSIER_CACHE=$(pwd)
+      export COURSIER_JVM_CACHE=$(pwd)
 
-    installPhase = ''cp $src $out'';
-  };
-in
-stdenv.mkDerivation {
-  name = "${baseName}-${version}";
+      mkdir channel
+      ln -s ${bloop-coursier-channel} channel/bloop.json
+      ${coursier}/bin/coursier install --install-dir $out --install-platform ${platform} --default-channels=false --channel channel --only-prebuilt=true bloop
+
+      # Remove binary part of the coursier launcher script to make derivation output hash stable
+      sed -i '5,$ d' $out/bloop
+   '';
 
-  buildInputs = [ makeWrapper ];
+    outputHashMode = "recursive";
+    outputHashAlgo = "sha256";
+    outputHash     = if stdenv.isLinux && stdenv.isx86_64 then "0hf0priy93zqba78a9nvbgl3mzwlc4jz43gz7cv2cdkj6x0lp0y1"
+                     else if stdenv.isDarwin && stdenv.isx86_64 then "0g2rnmlfnqymji4f4rn0kaz7hipgv3bakdpn08600gg1f3s8gabw"
+                     else throw "unsupported platform";
+  };
 
-  phases = [ "installPhase" ];
+  dontUnpack = true;
+  nativeBuildInputs = [ autoPatchelfHook installShellFiles ];
+  buildInputs = [ stdenv.cc.cc.lib zlib ];
+  propagatedBuildInputs = [ jre ];
 
   installPhase = ''
+    export COURSIER_CACHE=$(pwd)
+    export COURSIER_JVM_CACHE=$(pwd)
+
     mkdir -p $out/bin
-    mkdir -p $out/share/zsh/site-functions
+    cp ${bloop-coursier}/bloop $out/bloop
+    cp ${bloop-coursier}/.bloop.aux $out/.bloop.aux
+    ln -s $out/bloop $out/bin/bloop
 
-    ln -s ${server}/bin/blp-server $out/blp-server
-    ln -s ${zsh} $out/share/zsh/site-functions/_bloop
+    # patch the bloop launcher so that it works when symlinked
+    sed "s|\$(dirname \"\$0\")|$out|" -i $out/bloop
 
-    cp ${client} $out/bloop
-    chmod +x $out/bloop
-    makeWrapper $out/bloop $out/bin/bloop \
-      --prefix PATH : ${lib.makeBinPath [ python ]}
+    #Install completions
+    installShellCompletion --name bloop --bash ${bloop-bash}
+    installShellCompletion --name _bloop --zsh ${bloop-zsh}
+    installShellCompletion --name bloop.fish --fish ${bloop-fish}
   '';
 
   meta = with stdenv.lib; {
     homepage = "https://scalacenter.github.io/bloop/";
     license = licenses.asl20;
     description = "Bloop is a Scala build server and command-line tool to make the compile and test developer workflows fast and productive in a build-tool-agnostic way.";
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ tomahna ];
   };
 }
diff --git a/pkgs/development/tools/build-managers/bmake/default.nix b/pkgs/development/tools/build-managers/bmake/default.nix
index 45fb791f3a6..9bda4cde044 100644
--- a/pkgs/development/tools/build-managers/bmake/default.nix
+++ b/pkgs/development/tools/build-managers/bmake/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bmake";
-  version = "20200629";
+  version = "20200902";
 
   src = fetchurl {
     url    = "http://www.crufty.net/ftp/pub/sjg/${pname}-${version}.tar.gz";
-    sha256 = "1cxmsz48ap6gpwx5qkkvvfsiqxc7zpn8gzmhvc1jsfha68195ms5";
+    sha256 = "1v1v81llsiy8qbpy38nml1x08dhrihwh040pqgwbwb9zy1108b08";
   };
 
   nativeBuildInputs = [ getopt ];
diff --git a/pkgs/development/tools/build-managers/cmake/application-services.patch b/pkgs/development/tools/build-managers/cmake/application-services.patch
index e0399d0a6c6..75873d6055c 100644
--- a/pkgs/development/tools/build-managers/cmake/application-services.patch
+++ b/pkgs/development/tools/build-managers/cmake/application-services.patch
@@ -1,11 +1,8 @@
 diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
-index 8aff8f6..af1852d 100644
+index 1b6bb00d4c..487114daa8 100644
 --- a/Source/CMakeLists.txt
 +++ b/Source/CMakeLists.txt
-@@ -791,12 +791,11 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR MATCHES "sparc"
-   endif()
- endif()
- 
+@@ -893,7 +893,6 @@ endif()
  # On Apple we need CoreFoundation and CoreServices
  if(APPLE)
    target_link_libraries(CMakeLib "-framework CoreFoundation")
@@ -13,13 +10,11 @@ index 8aff8f6..af1852d 100644
  endif()
  
  if(WIN32 AND NOT UNIX)
-   # We need the rpcrt4 library on Windows.
-   # We need the crypt32 library on Windows for crypto/cert APIs.
 diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
-index e353a37..b06f842 100644
+index a5ce5d18f4..3d6838ce82 100644
 --- a/Source/cmGlobalXCodeGenerator.cxx
 +++ b/Source/cmGlobalXCodeGenerator.cxx
-@@ -35,11 +35,6 @@
+@@ -43,11 +43,6 @@
  
  struct cmLinkImplementation;
  
@@ -32,12 +27,12 @@ index e353a37..b06f842 100644
  #  include "cmXMLParser.h"
  
 diff --git a/Utilities/cmlibarchive/CMakeLists.txt b/Utilities/cmlibarchive/CMakeLists.txt
-index d7af6e2..d4808fc 100644
+index bfcaf30bb7..1da540aee5 100644
 --- a/Utilities/cmlibarchive/CMakeLists.txt
 +++ b/Utilities/cmlibarchive/CMakeLists.txt
-@@ -1662,11 +1662,6 @@ IF(MSVC)
-   ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE)
- ENDIF(MSVC)
+@@ -2007,11 +2007,6 @@ IF(ENABLE_TEST)
+ ENDIF(ENABLE_TEST)
+ ENDIF()
  
 -# We need CoreServices on Mac OS.
 -IF(APPLE)
@@ -45,16 +40,5 @@ index d7af6e2..d4808fc 100644
 -ENDIF(APPLE)
 -
  add_subdirectory(libarchive)
- 
- install(FILES COPYING DESTINATION ${CMAKE_DOC_DIR}/cmlibarchive)
-index e505bdd..f45557d 100644
---- a/Utilities/cmlibuv/src/unix/darwin-proctitle.c
-+++ b/Utilities/cmlibuv/src/unix/darwin-proctitle.c
-@@ -30,7 +30,6 @@
-
- #if !TARGET_OS_IPHONE
- # include <CoreFoundation/CoreFoundation.h>
--# include <ApplicationServices/ApplicationServices.h>
- #endif
-
- #define S(s) pCFStringCreateWithCString(NULL, (s), kCFStringEncodingUTF8)
+ IF(0) # CMake does not build libarchive's command-line tools.
+ add_subdirectory(cat)
diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index a9a3fd71a6b..559a4c191b6 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, pkgconfig
+{ stdenv, lib, fetchurl, pkgconfig, fetchpatch
 , bzip2, curl, expat, libarchive, xz, zlib, libuv, rhash
 , buildPackages
 # darwin attributes
@@ -19,12 +19,12 @@ stdenv.mkDerivation rec {
           + lib.optionalString useNcurses "-cursesUI"
           + lib.optionalString withQt5 "-qt5UI"
           + lib.optionalString useQt4 "-qt4UI";
-  version = "3.17.3";
+  version = "3.18.2";
 
   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 = "0h4c3nwk7wmzcmmlwyb16zmjqr44l4k591m2y9p9zp3m498hvmhb";
+    sha256 = "0zhxsnxm5d8wdarz2gs3r41r1dfrnh35ki75fa684gaxfzy40kjx";
   };
 
   patches = [
@@ -110,8 +110,17 @@ stdenv.mkDerivation rec {
   doCheck = false; # fails
 
   meta = with lib; {
-    homepage = "http://www.cmake.org/";
+    homepage = "https://cmake.org/";
+    changelog = "https://cmake.org/cmake/help/v${lib.versions.majorMinor version}/"
+      + "release/${lib.versions.majorMinor version}.html";
     description = "Cross-Platform Makefile Generator";
+    longDescription = ''
+      CMake is an open-source, cross-platform family of tools designed to
+      build, test and package software. CMake is used to control the software
+      compilation process using simple platform and compiler independent
+      configuration files, and generate native makefiles and workspaces that
+      can be used in the compiler environment of your choice.
+    '';
     platforms = if useQt4 then qt4.meta.platforms else platforms.all;
     maintainers = with maintainers; [ ttuegel lnl7 ];
     license = licenses.bsd3;
diff --git a/pkgs/development/tools/build-managers/cmake/libuv-application-services.patch b/pkgs/development/tools/build-managers/cmake/libuv-application-services.patch
index eb3df1e4ff6..6607a9c6ed1 100644
--- a/pkgs/development/tools/build-managers/cmake/libuv-application-services.patch
+++ b/pkgs/development/tools/build-managers/cmake/libuv-application-services.patch
@@ -1,7 +1,8 @@
-diff -ur cmake-3.12.1/Utilities/cmlibuv/CMakeLists.txt cmake-3.12.1-patched/Utilities/cmlibuv/CMakeLists.txt
---- cmake-3.12.1/Utilities/cmlibuv/CMakeLists.txt	2018-08-09 21:14:08.000000000 +0900
-+++ cmake-3.12.1-patched/Utilities/cmlibuv/CMakeLists.txt	2018-08-13 10:14:53.000000000 +0900
-@@ -173,6 +173,22 @@
+diff --git a/Utilities/cmlibuv/CMakeLists.txt b/Utilities/cmlibuv/CMakeLists.txt
+index 7625cf65d9..167903e309 100644
+--- a/Utilities/cmlibuv/CMakeLists.txt
++++ b/Utilities/cmlibuv/CMakeLists.txt
+@@ -193,6 +193,22 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
      src/unix/kqueue.c
      src/unix/proctitle.c
      )
@@ -24,9 +25,10 @@ diff -ur cmake-3.12.1/Utilities/cmlibuv/CMakeLists.txt cmake-3.12.1-patched/Util
  endif()
  
  if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-diff -ur cmake-3.12.1/Utilities/cmlibuv/src/unix/fsevents.c cmake-3.12.1-patched/Utilities/cmlibuv/src/unix/fsevents.c
---- cmake-3.12.1/Utilities/cmlibuv/src/unix/fsevents.c	2018-08-09 21:14:08.000000000 +0900
-+++ cmake-3.12.1-patched/Utilities/cmlibuv/src/unix/fsevents.c	2018-08-13 10:01:29.000000000 +0900
+diff --git a/Utilities/cmlibuv/src/unix/fsevents.c b/Utilities/cmlibuv/src/unix/fsevents.c
+index a51f29b3f6..3f6bf01968 100644
+--- a/Utilities/cmlibuv/src/unix/fsevents.c
++++ b/Utilities/cmlibuv/src/unix/fsevents.c
 @@ -21,7 +21,7 @@
  #include "uv.h"
  #include "internal.h"
@@ -35,17 +37,17 @@ diff -ur cmake-3.12.1/Utilities/cmlibuv/src/unix/fsevents.c cmake-3.12.1-patched
 +#if !HAVE_CORESERVICES_CORESERVICES_H || MAC_OS_X_VERSION_MAX_ALLOWED < 1070
  
  /* iOS (currently) doesn't provide the FSEvents-API (nor CoreServices) */
- 
-@@ -38,7 +38,7 @@
+ /* macOS prior to 10.7 doesn't provide the full FSEvents API so use kqueue */
+@@ -39,7 +39,7 @@ int uv__fsevents_close(uv_fs_event_t* handle) {
  void uv__fsevents_loop_delete(uv_loop_t* loop) {
  }
  
 -#else /* TARGET_OS_IPHONE */
 +#else /* !HAVE_CORESERVICES_CORESERVICES_H */
  
- #include <dlfcn.h>
- #include <assert.h>
-@@ -916,4 +916,4 @@
+ #include "darwin-stub.h"
+ 
+@@ -920,4 +920,4 @@ int uv__fsevents_close(uv_fs_event_t* handle) {
    return 0;
  }
  
diff --git a/pkgs/development/tools/build-managers/cmake/search-path.patch b/pkgs/development/tools/build-managers/cmake/search-path.patch
index 2f5e4d62c86..b71c2dd4441 100644
--- a/pkgs/development/tools/build-managers/cmake/search-path.patch
+++ b/pkgs/development/tools/build-managers/cmake/search-path.patch
@@ -1,9 +1,10 @@
-diff -ur cmake-3.9.1/Modules/Platform/UnixPaths.cmake cmake-3.9.1-mod/Modules/Platform/UnixPaths.cmake
---- cmake-3.9.1/Modules/Platform/UnixPaths.cmake	2017-08-10 13:36:32.000000000 +0000
-+++ cmake-3.9.1-mod/Modules/Platform/UnixPaths.cmake	2017-09-03 01:24:31.901473539 +0000
-@@ -22,9 +22,6 @@
- # List common installation prefixes.  These will be used for all
- # search types.
+diff --git a/Modules/Platform/UnixPaths.cmake b/Modules/Platform/UnixPaths.cmake
+index b9381c3d7d..cecc40a89e 100644
+--- a/Modules/Platform/UnixPaths.cmake
++++ b/Modules/Platform/UnixPaths.cmake
+@@ -26,9 +26,6 @@ get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH)
+ # please make sure to keep Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
+ # synchronized
  list(APPEND CMAKE_SYSTEM_PREFIX_PATH
 -  # Standard
 -  /usr/local /usr /
@@ -11,7 +12,7 @@ diff -ur cmake-3.9.1/Modules/Platform/UnixPaths.cmake cmake-3.9.1-mod/Modules/Pl
    # CMake install location
    "${_CMAKE_INSTALL_DIR}"
    )
-@@ -43,31 +40,26 @@
+@@ -47,24 +44,19 @@ endif()
  
  # Non "standard" but common install prefixes
  list(APPEND CMAKE_SYSTEM_PREFIX_PATH
@@ -39,12 +40,7 @@ diff -ur cmake-3.9.1/Modules/Platform/UnixPaths.cmake cmake-3.9.1-mod/Modules/Pl
    )
  
  if(CMAKE_SYSROOT_COMPILE)
-   set(_cmake_sysroot_compile "${CMAKE_SYSROOT_COMPILE}")
- else()
-   set(_cmake_sysroot_compile "${CMAKE_SYSROOT}")
- endif()
- 
- # Default per-language values.  These may be later replaced after
+@@ -77,15 +69,15 @@ endif()
  # parsing the implicit directory information from compiler output.
  set(_CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES_INIT
    ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES}
@@ -62,11 +58,12 @@ diff -ur cmake-3.9.1/Modules/Platform/UnixPaths.cmake cmake-3.9.1-mod/Modules/Pl
 +  @libc_dev@/include
    )
  
- # Enable use of lib32 and lib64 search path variants by default.
-diff -ur cmake-3.9.1/Modules/Platform/WindowsPaths.cmake cmake-3.9.1-mod/Modules/Platform/WindowsPaths.cmake
---- cmake-3.9.1/Modules/Platform/WindowsPaths.cmake	2017-08-10 13:36:32.000000000 +0000
-+++ cmake-3.9.1-mod/Modules/Platform/WindowsPaths.cmake	2017-09-03 01:19:32.808355986 +0000
-@@ -66,7 +66,7 @@
+ unset(_cmake_sysroot_compile)
+diff --git a/Modules/Platform/WindowsPaths.cmake b/Modules/Platform/WindowsPaths.cmake
+index b9e2f17979..ab517cd4a7 100644
+--- a/Modules/Platform/WindowsPaths.cmake
++++ b/Modules/Platform/WindowsPaths.cmake
+@@ -70,7 +70,7 @@ endif()
  
  if(CMAKE_CROSSCOMPILING AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
    # MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set)
diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
index 87bbefa6bbf..0bb695615fc 100755
--- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh
+++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh
@@ -48,7 +48,7 @@ cmakeConfigurePhase() {
 
     # on macOS we want to prefer Unix-style headers to Frameworks
     # because we usually do not package the framework
-    cmakeFlags="-DCMAKE_FIND_FRAMEWORK=last $cmakeFlags"
+    cmakeFlags="-DCMAKE_FIND_FRAMEWORK=LAST $cmakeFlags"
 
     # on macOS i686 was only relevant for 10.5 or earlier.
     cmakeFlags="-DCMAKE_OSX_ARCHITECTURES=x86_64 $cmakeFlags"
@@ -68,6 +68,24 @@ cmakeConfigurePhase() {
     # nix/store directory.
     cmakeFlags="-DCMAKE_INSTALL_NAME_DIR=${!outputLib}/lib $cmakeFlags"
 
+    # The docdir flag needs to include PROJECT_NAME as per GNU guidelines,
+    # try to extract it from CMakeLists.txt.
+    if [[ -z "$shareDocName" ]]; then
+        local cmakeLists="${cmakeDir}/CMakeLists.txt"
+        if [[ -f "$cmakeLists" ]]; then
+            local shareDocName="$(grep --only-matching --perl-regexp --ignore-case '\bproject\s*\(\s*"?\K([^[:space:]")]+)' < "$cmakeLists" | head -n1)"
+        fi
+        # The argument sometimes contains garbage or variable interpolation.
+        # When that is the case, let’s fall back to the derivation name.
+        if [[ -z "$shareDocName" ]] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_+-]'; then
+            if [[ -n "${pname-}" ]]; then
+                shareDocName="$pname"
+            else
+                shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')"
+            fi
+        fi
+    fi
+
     # This ensures correct paths with multiple output derivations
     # It requires the project to use variables from GNUInstallDirs module
     # https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
diff --git a/pkgs/development/tools/build-managers/gnumake/default.nix b/pkgs/development/tools/build-managers/gnumake/default.nix
new file mode 100644
index 00000000000..f01f38ecd23
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchurl, guileSupport ? false, pkgconfig ? null , guile ? null }:
+
+assert guileSupport -> ( pkgconfig != null && guile != null );
+
+let
+  version = "4.3";
+in
+stdenv.mkDerivation {
+  pname = "gnumake";
+  inherit version;
+
+  src = fetchurl {
+    url = "mirror://gnu/make/make-${version}.tar.gz";
+    sha256 = "06cfqzpqsvdnsxbysl5p2fgdgxgl9y4p7scpnrfa8z2zgkjdspz0";
+  };
+
+  patches = [
+    # Purity: don't look for library dependencies (of the form `-lfoo') in /lib
+    # and /usr/lib. It's a stupid feature anyway. Likewise, when searching for
+    # included Makefiles, don't look in /usr/include and friends.
+    ./impure-dirs.patch
+  ];
+
+  nativeBuildInputs = stdenv.lib.optionals guileSupport [ pkgconfig ];
+  buildInputs = stdenv.lib.optionals guileSupport [ guile ];
+
+  configureFlags = stdenv.lib.optional guileSupport "--with-guile"
+
+    # Make uses this test to decide whether it should keep track of
+    # subseconds. Apple made this possible with APFS and macOS 10.13.
+    # However, we still support macOS 10.11 and 10.12. Binaries built
+    # in Nixpkgs will be unable to use futimens to set mtime less than
+    # a second. So, tell Make to ignore nanoseconds in mtime here by
+    # overriding the autoconf test for the struct.
+    # See https://github.com/NixOS/nixpkgs/issues/51221 for discussion.
+    ++ stdenv.lib.optional stdenv.isDarwin "ac_cv_struct_st_mtim_nsec=no";
+
+  outputs = [ "out" "man" "info" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://www.gnu.org/software/make/";
+    description = "A tool to control the generation of non-source files from sources";
+    license = licenses.gpl3Plus;
+
+    longDescription = ''
+      Make is a tool which controls the generation of executables and
+      other non-source files of a program from the program's source files.
+
+      Make gets its knowledge of how to build your program from a file
+      called the makefile, which lists each of the non-source files and
+      how to compute it from other files. When you write a program, you
+      should write a makefile for it, so that it is possible to use Make
+      to build and install the program.
+    '';
+
+    platforms = platforms.all;
+    maintainers = [ maintainers.vrthra ];
+  };
+}
diff --git a/pkgs/development/tools/build-managers/gnumake/impure-dirs.patch b/pkgs/development/tools/build-managers/gnumake/impure-dirs.patch
new file mode 100644
index 00000000000..6c7d9d2463c
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/impure-dirs.patch
@@ -0,0 +1,25 @@
+diff -Naur a/src/read.c b/src/read.c
+--- a/src/read.c
++++ b/src/read.c
+@@ -109,9 +109,6 @@
+ #endif
+     INCLUDEDIR,
+ #ifndef _AMIGA
+-    "/usr/gnu/include",
+-    "/usr/local/include",
+-    "/usr/include",
+ #endif
+     0
+   };
+diff -Naur a/src/remake.c b/src/remake.c
+--- a/src/remake.c
++++ b/src/remake.c
+@@ -1601,8 +1601,6 @@
+   static const char *dirs[] =
+     {
+ #ifndef _AMIGA
+-      "/lib",
+-      "/usr/lib",
+ #endif
+ #if defined(WINDOWS32) && !defined(LIBDIR)
+ /*
diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix
index b5215611c0c..73e9bc7b560 100644
--- a/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/pkgs/development/tools/build-managers/gradle/default.nix
@@ -51,14 +51,24 @@ rec {
     };
   };
 
-  gradle_latest = gradle_5_6;
+  gradle_latest = gradle_6_6;
+
+  gradle_6_6 = gradleGen rec {
+    name = "gradle-6.6";
+    nativeVersion = "0.22-milestone-4";
+
+    src = fetchurl {
+      url = "https://services.gradle.org/distributions/${name}-bin.zip";
+      sha256 = "09a0fnz6fn8yaxm3q3iwyjm3nnaz7k8i1xlpc7sm414py043by76";
+    };
+  };
 
   gradle_5_6 = gradleGen rec {
     name = "gradle-5.6.4";
     nativeVersion = "0.18";
 
     src = fetchurl {
-      url = "http://services.gradle.org/distributions/${name}-bin.zip";
+      url = "https://services.gradle.org/distributions/${name}-bin.zip";
       sha256 = "1f3067073041bc44554d0efe5d402a33bc3d3c93cc39ab684f308586d732a80d";
     };
   };
@@ -68,7 +78,7 @@ rec {
     nativeVersion = "0.14";
 
     src = fetchurl {
-      url = "http://services.gradle.org/distributions/${name}-bin.zip";
+      url = "https://services.gradle.org/distributions/${name}-bin.zip";
       sha256 = "0vhqxnk0yj3q9jam5w4kpia70i4h0q4pjxxqwynh3qml0vrcn9l6";
     };
   };
diff --git a/pkgs/development/tools/build-managers/mage/default.nix b/pkgs/development/tools/build-managers/mage/default.nix
index ed145d38c7f..6c9d8bfc838 100644
--- a/pkgs/development/tools/build-managers/mage/default.nix
+++ b/pkgs/development/tools/build-managers/mage/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "mage";
-  version = "1.9.0";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "magefile";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0lazf4r5ps1s04pvz608qaxbrbc6dv0j99n39iv42zwxxh0mbd0p";
+    sha256 = "0c77xgz2bz4j9sh9v7f49iqyamc4lvvldcmn6v50hk98s9193gbf";
   };
 
   vendorSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
 
+  doCheck = false;
+
   buildFlagsArray = [
     "-ldflags="
     "-X github.com/magefile/mage/mage.commitHash=v${version}"
@@ -25,6 +27,5 @@ buildGoModule rec {
     homepage = "https://magefile.org/";
     license = licenses.asl20;
     maintainers = with maintainers; [ swdunlop ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch b/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch
index bd81efd5208..e5ac95d0b9d 100644
--- a/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch
+++ b/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch
@@ -1,6 +1,6 @@
 --- a/mesonbuild/coredata.py
 +++ b/mesonbuild/coredata.py
-@@ -483,7 +483,6 @@ class CoreData:
+@@ -491,7 +491,6 @@ class CoreData:
              return value
          if option.endswith('dir') and value.is_absolute() and \
             option not in builtin_dir_noprefix_options:
@@ -8,7 +8,7 @@
              # commonpath will always return a path in the native format, so we
              # must use pathlib.PurePath to do the same conversion before
              # comparing.
-@@ -495,7 +494,7 @@ class CoreData:
+@@ -503,7 +502,7 @@ class CoreData:
              try:
                  value = value.relative_to(prefix)
              except ValueError:
diff --git a/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch b/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch
new file mode 100644
index 00000000000..f1e3c76e8b5
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch
@@ -0,0 +1,20 @@
+diff --git a/mesonbuild/scripts/depfixer.py b/mesonbuild/scripts/depfixer.py
+index 4176b9a03..faaabf616 100644
+--- a/mesonbuild/scripts/depfixer.py
++++ b/mesonbuild/scripts/depfixer.py
+@@ -336,6 +336,15 @@ class Elf(DataSizes):
+         if not new_rpath:
+             self.remove_rpath_entry(entrynum)
+         else:
++            # Clear old rpath to avoid stale references,
++            # not heeding the warning above about de-duplication
++            # since it does not seem to cause issues for us
++            # and not doing so trips up Nix’s reference checker.
++            # See https://github.com/NixOS/nixpkgs/pull/46020
++            # and https://github.com/NixOS/nixpkgs/issues/95163
++            self.bf.seek(rp_off)
++            self.bf.write(b'\0'*len(old_rpath))
++
+             self.bf.seek(rp_off)
+             self.bf.write(new_rpath)
+             self.bf.write(b'\0')
diff --git a/pkgs/development/tools/build-managers/meson/default.nix b/pkgs/development/tools/build-managers/meson/default.nix
index 5b1266da382..aa11ba7638b 100644
--- a/pkgs/development/tools/build-managers/meson/default.nix
+++ b/pkgs/development/tools/build-managers/meson/default.nix
@@ -1,33 +1,29 @@
 { lib
-, python3Packages
+, python3
 , stdenv
 , writeTextDir
 , substituteAll
 , pkgsHostHost
+, fetchpatch
 }:
 
-python3Packages.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "meson";
-  version = "0.54.2";
+  version = "0.55.1";
 
-  src = python3Packages.fetchPypi {
+  src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "0m84zb0q67vnxmd6ldz477w6yjdnk9c44xhlwh1g1pzqx3m6wwd7";
+    sha256 = "O1dB+ITgSSi9+hlHRn/wavpsmOYjwlzvda33HKOc4IA=";
   };
 
-  postFixup = ''
-    pushd $out/bin
-    # undo shell wrapper as meson tools are called with python
-    for i in *; do
-      mv ".$i-wrapped" "$i"
-    done
-    popd
-
-    # Do not propagate Python
-    rm $out/nix-support/propagated-build-inputs
-  '';
-
   patches = [
+    # Meson 0.55.0 incorrectly considers skipped tests as failures,
+    # which makes some packages like gjs fail to build.
+    (fetchpatch {
+      url = "https://github.com/mesonbuild/meson/commit/7db49db67d4aa7582cf46feb7157235e66aa95b1.diff";
+      sha256 = "1chq52sgk24afdlswssr8n8p6fa2wz8rjlxvkjhpqg1kg3qnqc9p";
+    })
+
     # Upstream insists on not allowing bindir and other dir options
     # outside of prefix for some reason:
     # https://github.com/mesonbuild/meson/issues/2561
@@ -55,6 +51,14 @@ python3Packages.buildPythonApplication rec {
       src = ./fix-rpath.patch;
       inherit (builtins) storeDir;
     })
+
+    # When Meson removes build_rpath from DT_RUNPATH entry, it just writes
+    # the shorter NUL-terminated new rpath over the old one to reduce
+    # the risk of potentially breaking the ELF files.
+    # But this can cause much bigger problem for Nix as it can produce
+    # cut-in-half-by-\0 store path references.
+    # Let’s just clear the whole rpath and hope for the best.
+    ./clear-old-rpath.patch
   ];
 
   setupHook = ./setup-hook.sh;
@@ -68,6 +72,18 @@ python3Packages.buildPythonApplication rec {
   # checkInputs = [ ninja pkgconfig ];
   # checkPhase = "python ./run_project_tests.py";
 
+  postFixup = ''
+    pushd $out/bin
+    # undo shell wrapper as meson tools are called with python
+    for i in *; do
+      mv ".$i-wrapped" "$i"
+    done
+    popd
+
+    # Do not propagate Python
+    rm $out/nix-support/propagated-build-inputs
+  '';
+
   meta = with lib; {
     homepage = "https://mesonbuild.com";
     description = "SCons-like build system that use python as a front-end language and Ninja as a building backend";
diff --git a/pkgs/development/tools/build-managers/meson/fix-rpath.patch b/pkgs/development/tools/build-managers/meson/fix-rpath.patch
index 6cf7afc2bdf..d34b6c4c434 100644
--- a/pkgs/development/tools/build-managers/meson/fix-rpath.patch
+++ b/pkgs/development/tools/build-managers/meson/fix-rpath.patch
@@ -1,56 +1,24 @@
---- a/mesonbuild/linkers.py
-+++ b/mesonbuild/linkers.py
-@@ -527,8 +527,10 @@ class GnuLikeDynamicLinkerMixin:
-         # In order to avoid relinking for RPATH removal, the binary needs to contain just
-         # enough space in the ELF header to hold the final installation RPATH.
-         paths = ':'.join(all_paths)
--        if len(paths) < len(install_rpath):
--            padding = 'X' * (len(install_rpath) - len(paths))
-+        store_paths = ':'.join(filter(lambda path: path.startswith('@storeDir@'), all_paths))
-+        extra_space_needed = len(install_rpath + (':' if install_rpath and store_paths else '') + store_paths) - len(paths)
-+        if extra_space_needed > 0:
-+            padding = 'X' * extra_space_needed
-             if not paths:
-                 paths = padding
-             else:
-@@ -902,8 +904,10 @@ class SolarisDynamicLinker(PosixDynamicLinkerMixin, DynamicLinker):
-         # In order to avoid relinking for RPATH removal, the binary needs to contain just
-         # enough space in the ELF header to hold the final installation RPATH.
-         paths = ':'.join(all_paths)
--        if len(paths) < len(install_rpath):
--            padding = 'X' * (len(install_rpath) - len(paths))
-+        store_paths = ':'.join(filter(lambda path: path.startswith('@storeDir@'), all_paths))
-+        extra_space_needed = len(install_rpath + (':' if install_rpath and store_paths else '') + store_paths) - len(paths)
-+        if extra_space_needed > 0:
-+            padding = 'X' * extra_space_needed
-             if not paths:
-                 paths = padding
-             else:
---- a/mesonbuild/scripts/depfixer.py
-+++ b/mesonbuild/scripts/depfixer.py
-@@ -303,6 +303,14 @@ class Elf(DataSizes):
-             return
-         self.bf.seek(rp_off)
-         old_rpath = self.read_str()
+--- a/mesonbuild/backend/backends.py
++++ b/mesonbuild/backend/backends.py
+@@ -456,6 +456,21 @@ class Backend:
+                 args.extend(self.environment.coredata.get_external_link_args(target.for_machine, lang))
+             except Exception:
+                 pass
 +
-+        if new_rpath:
-+            new_rpath += b':'
-+        else:
-+            new_rpath = b''
++        nix_ldflags = os.environ.get('NIX_LDFLAGS', '').split()
++        next_is_path = False
++        # Try to add rpaths set by user or ld-wrapper so that they are not removed.
++        # Based on https://github.com/NixOS/nixpkgs/blob/69711a2f5ffe8cda208163be5258266172ff527f/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L148-L177
++        for flag in nix_ldflags:
++            if flag == '-rpath' or flag == '-L':
++                next_is_path = True
++            elif next_is_path or flag.startswith('-L/'):
++                if flag.startswith('-L/'):
++                    flag = flag[2:]
++                if flag.startswith('@storeDir@'):
++                    dirs.add(flag)
++                next_is_path = False
 +
-+        new_rpath += b':'.join(filter(lambda path: path.startswith(b'@storeDir@'), old_rpath.split(b':')))
-+
-         if len(old_rpath) < len(new_rpath):
-             sys.exit("New rpath must not be longer than the old one.")
-         # The linker does read-only string deduplication. If there is a
-@@ -316,6 +324,10 @@ class Elf(DataSizes):
-         if not new_rpath:
-             self.remove_rpath_entry(entrynum)
-         else:
-+            # clean old rpath to avoid stale references
-+            # (see https://github.com/NixOS/nixpkgs/pull/46020)
-+            self.bf.seek(rp_off)
-+            self.bf.write(b'\0'*len(old_rpath))
-             self.bf.seek(rp_off)
-             self.bf.write(new_rpath)
-             self.bf.write(b'\0')
+         # Match rpath formats:
+         # -Wl,-rpath=
+         # -Wl,-rpath,
diff --git a/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch b/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch
index e59795486aa..0c924bacf73 100644
--- a/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch
+++ b/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch
@@ -1,8 +1,8 @@
 --- a/mesonbuild/modules/gnome.py
 +++ b/mesonbuild/modules/gnome.py
-@@ -801,6 +801,13 @@ class GnomeModule(ExtensionModule):
-             scan_command += ['--sources-top-dirs', os.path.join(state.environment.get_source_dir(), self.interpreter.subproject_dir, state.subproject)]
-             scan_command += ['--sources-top-dirs', os.path.join(state.environment.get_build_dir(), self.interpreter.subproject_dir, state.subproject)]
+@@ -807,6 +807,13 @@ class GnomeModule(ExtensionModule):
+         if fatal_warnings:
+             scan_command.append('--warn-error')
  
 +        if len(set([girtarget.get_custom_install_dir()[0] for girtarget in girtargets])) > 1:
 +            raise MesonException('generate_gir tries to build multiple libraries with different install_dir at once: {}'.format(','.join([str(girtarget) for girtarget in girtargets])))
diff --git a/pkgs/development/tools/build-managers/meson/more-env-vars.patch b/pkgs/development/tools/build-managers/meson/more-env-vars.patch
index 6326f5ec3cf..ada58fff6d4 100644
--- a/pkgs/development/tools/build-managers/meson/more-env-vars.patch
+++ b/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 17058df6b..7a68b7f15 100644
+index 219b62ec8..e3ceaddbd 100644
 --- a/mesonbuild/envconfig.py
 +++ b/mesonbuild/envconfig.py
-@@ -120,7 +120,7 @@ def get_env_var_pair(for_machine: MachineChoice,
+@@ -94,7 +94,7 @@ def get_env_var_pair(for_machine: MachineChoice,
          # 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/pkgs/development/tools/build-managers/mill/default.nix b/pkgs/development/tools/build-managers/mill/default.nix
index 44ff87d71a4..3fc893fd07c 100644
--- a/pkgs/development/tools/build-managers/mill/default.nix
+++ b/pkgs/development/tools/build-managers/mill/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mill";
-  version = "0.7.3";
+  version = "0.8.0";
 
   src = fetchurl {
     url = "https://github.com/lihaoyi/mill/releases/download/${version}/${version}";
-    sha256 = "10rjhkncxswbh30jsq7j4is5ngp1r737j45xdwl9z1frmwz6l67d";
+    sha256 = "04pf76iyrbq2h2hksx0r2fmnd0d9mi6an24zvfv7k79rch11cql1";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/build-managers/ninja/default.nix b/pkgs/development/tools/build-managers/ninja/default.nix
index efe9a495494..bc5ad7744d6 100644
--- a/pkgs/development/tools/build-managers/ninja/default.nix
+++ b/pkgs/development/tools/build-managers/ninja/default.nix
@@ -4,13 +4,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "ninja";
-  version = "1.10.0";
+  version = "1.10.1";
 
   src = fetchFromGitHub {
     owner = "ninja-build";
     repo = "ninja";
     rev = "v${version}";
-    sha256 = "1fbzl7mrcrwp527sgkc1npfl3k6bbpydpiq98xcf1a1hkrx0z5x4";
+    sha256 = "1bmv7zfqwp48ga6vnqvy0gzkclv40xgq19q4ihl58r6cn4swccn3";
   };
 
   nativeBuildInputs = [ python3 re2c ] ++ optionals buildDocs [ asciidoc docbook_xml_dtd_45 docbook_xsl libxslt.bin ];
diff --git a/pkgs/development/tools/build-managers/redo-apenwarr/default.nix b/pkgs/development/tools/build-managers/redo-apenwarr/default.nix
index 79707fc64db..c62fb0f2515 100644
--- a/pkgs/development/tools/build-managers/redo-apenwarr/default.nix
+++ b/pkgs/development/tools/build-managers/redo-apenwarr/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, lib, python3, fetchFromGitHub, mkdocs, which, findutils, coreutils
-, perl
+{ stdenv, lib, python3, fetchFromGitHub, which, findutils, coreutils
+, perl, installShellFiles
 , doCheck ? true
 }: stdenv.mkDerivation rec {
 
   pname = "redo-apenwarr";
-  version = "0.42a";
+  version = "0.42c";
 
   src = fetchFromGitHub rec {
     owner = "apenwarr";
     repo = "redo";
     rev = "${repo}-${version}";
-    sha256 = "172z2idslhcqibd4lw82k6349nl5fdda2vj10dqcjz0lvv6n7php";
+    sha256 = "0kc2gag1n5583195gs38gjm8mb7in9y70c07fxibsay19pvvb8iw";
   };
 
   postPatch = ''
@@ -53,15 +53,21 @@
     (with python3.pkgs; [ beautifulsoup4 markdown ])
     which
     findutils
+    installShellFiles
   ];
 
+  postInstall = ''
+    installShellCompletion --bash contrib/bash_completion.d/redo
+  '';
+
   meta = with lib; {
-    description = "Smaller, easier, more powerful, and more reliable than make. An implementation of djb's redo.";
+    description = "Smaller, easier, more powerful, and more reliable than make. An implementation of djb's redo";
     homepage = "https://github.com/apenwarr/redo";
     maintainers = with maintainers; [
       andrewchambers
       ck3d
     ];
     license = licenses.asl20;
+    platforms = python3.meta.platforms;
   };
 }
diff --git a/pkgs/development/tools/build-managers/redo-c/Makefile b/pkgs/development/tools/build-managers/redo-c/Makefile
new file mode 100644
index 00000000000..f2c43cc5003
--- /dev/null
+++ b/pkgs/development/tools/build-managers/redo-c/Makefile
@@ -0,0 +1,10 @@
+CFLAGS=-Os
+
+all: redo links
+
+links:
+	sh links.do
+
+install:
+	mkdir -p "$(out)/bin"
+	cp --no-dereference redo redo-* "$(out)/bin"
diff --git a/pkgs/development/tools/build-managers/redo-c/default.nix b/pkgs/development/tools/build-managers/redo-c/default.nix
new file mode 100644
index 00000000000..1480f32a50f
--- /dev/null
+++ b/pkgs/development/tools/build-managers/redo-c/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation rec {
+  pname = "redo-c";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    owner = "leahneukirchen";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "11wc2sgw1ssdm83cjdc6ndnp1bv5mzhbw7njw47mk7ri1ic1x51b";
+  };
+
+  postPatch = ''
+    cp '${./Makefile}' Makefile
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An implementation of the redo build system in portable C with zero dependencies";
+    homepage = "https://github.com/leahneukirchen/redo-c";
+    license = licenses.cc0;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ck3d ];
+  };
+}
diff --git a/pkgs/development/tools/build-managers/rocm-cmake/default.nix b/pkgs/development/tools/build-managers/rocm-cmake/default.nix
new file mode 100644
index 00000000000..f146929019f
--- /dev/null
+++ b/pkgs/development/tools/build-managers/rocm-cmake/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "rocm-cmake";
+  version = "3.7.0";
+
+  src = fetchFromGitHub {
+    owner = "RadeonOpenCompute";
+    repo = "rocm-cmake";
+    rev = "rocm-${version}";
+    sha256 = "1x1mj1acarhin319zycms8sqm9ylw2mcdbkpqjlb8yfsgiaa99ja";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    description = "CMake modules for common build tasks for the ROCm stack";
+    homepage = "https://github.com/RadeonOpenCompute/rocm-cmake";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danieldk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/tools/build-managers/scons/common.nix b/pkgs/development/tools/build-managers/scons/common.nix
index 41ac16bed7a..7a15c193423 100644
--- a/pkgs/development/tools/build-managers/scons/common.nix
+++ b/pkgs/development/tools/build-managers/scons/common.nix
@@ -1,6 +1,6 @@
 { version, sha256 }:
 
-{ stdenv, fetchurl, python3Packages, python2Packages, scons }:
+{ stdenv, fetchurl, python3Packages, lib }:
 
 python3Packages.buildPythonApplication rec {
   pname = "scons";
@@ -13,7 +13,13 @@ python3Packages.buildPythonApplication rec {
 
   setupHook = ./setup-hook.sh;
 
-  passthru.py2 = scons.override { python3Packages = python2Packages; };
+  postPatch = lib.optionalString (lib.versionAtLeast version "4.0.0") ''
+    substituteInPlace setup.cfg \
+      --replace "build/dist" "dist"
+  '';
+
+  # The release tarballs don't contain any tests (runtest.py and test/*):
+  doCheck = lib.versionOlder version "4.0.0";
 
   meta = with stdenv.lib; {
     description = "An improved, cross-platform substitute for Make";
diff --git a/pkgs/development/tools/build-managers/scons/default.nix b/pkgs/development/tools/build-managers/scons/default.nix
index 19b092b86ba..eb86d595597 100644
--- a/pkgs/development/tools/build-managers/scons/default.nix
+++ b/pkgs/development/tools/build-managers/scons/default.nix
@@ -7,8 +7,12 @@ in {
     version = "3.0.1";
     sha256 = "0wzid419mlwqw9llrg8gsx4nkzhqy16m4m40r0xnh6cwscw5wir4";
   }).override { python3Packages = python2Packages; };
-  scons_latest = mkScons {
+  scons_3_1_2 = (mkScons {
     version = "3.1.2";
     sha256 = "1yzq2gg9zwz9rvfn42v5jzl3g4qf1khhny6zfbi2hib55zvg60bq";
+  }).override { python3Packages = python2Packages; };
+  scons_latest = mkScons {
+    version = "4.0.1";
+    sha256 = "0z00l9wzaiqyjq0hapbvsjclvcfjjjq04kmxi7ffq966nl2d2bkj";
   };
 }
diff --git a/pkgs/development/tools/buildah/default.nix b/pkgs/development/tools/buildah/default.nix
index 3b1e0aaa00f..7f1d90291f4 100644
--- a/pkgs/development/tools/buildah/default.nix
+++ b/pkgs/development/tools/buildah/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildGoModule
 , fetchFromGitHub
+, go-md2man
 , installShellFiles
 , pkg-config
 , gpgme
@@ -13,20 +14,22 @@
 
 buildGoModule rec {
   pname = "buildah";
-  version = "1.15.0";
+  version = "1.16.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "buildah";
-    rev = "v${version}";
-    sha256 = "0nhqw8s8m819mhb0kpji0if8ji9cmkcb821zab7h65azk0p8qh20";
+    rev = "V${version}";
+    sha256 = "0z9fblxm3pk2jqw7h36clmj8k4k39n6ab536lyh0rp6p7hz5a988";
   };
 
   outputs = [ "out" "man" ];
 
   vendorSha256 = null;
 
-  nativeBuildInputs = [ installShellFiles pkg-config ];
+  doCheck = false;
+
+  nativeBuildInputs = [ go-md2man installShellFiles pkg-config ];
 
   buildInputs = [
     btrfs-progs
@@ -39,12 +42,12 @@ buildGoModule rec {
 
   buildPhase = ''
     patchShebangs .
-    make GIT_COMMIT="unknown"
-    make -C docs
+    make bin/buildah GIT_COMMIT="unknown"
+    make -C docs GOMD2MAN="${go-md2man}/bin/go-md2man"
   '';
 
   installPhase = ''
-    install -Dm755 buildah $out/bin/buildah
+    install -Dm755 bin/buildah $out/bin/buildah
     installShellCompletion --bash contrib/completions/bash/buildah
     make -C docs install PREFIX="$man"
   '';
diff --git a/pkgs/development/tools/buildkit/default.nix b/pkgs/development/tools/buildkit/default.nix
index 2626ae71942..d4c143b0bd0 100644
--- a/pkgs/development/tools/buildkit/default.nix
+++ b/pkgs/development/tools/buildkit/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "buildkit";
-  version = "0.7.1";
+  version = "0.7.2";
 
   goPackagePath = "github.com/moby/buildkit";
   subPackages = [ "cmd/buildctl" ] ++ stdenv.lib.optionals stdenv.isLinux [ "cmd/buildkitd" ];
@@ -11,10 +11,10 @@ buildGoPackage rec {
     owner = "moby";
     repo = "buildkit";
     rev = "v${version}";
-    sha256 = "048h69ffgmpir2ix9ldi6zrzlwxa5yz3idg5ajspz2dihmzmnwws";
+    sha256 = "0kn2ad0rh3xlcxjxslkyrfxhv3cx88996nhxn86605x1mybxb2iq";
   };
 
-  buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/version.Version=${version}" ];
+  buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/version.Version=${version} -X ${goPackagePath}/version.Revision=${src.rev}" ];
 
   meta = with stdenv.lib; {
     description = "Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit";
diff --git a/pkgs/development/tools/buildpack/default.nix b/pkgs/development/tools/buildpack/default.nix
index c3eace89174..1d8e53ba525 100644
--- a/pkgs/development/tools/buildpack/default.nix
+++ b/pkgs/development/tools/buildpack/default.nix
@@ -1,26 +1,33 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "pack";
-  version = "0.7.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "buildpacks";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0glfxrw3x35m4nmhr9xwlc14y5g9zni85rcrcn3dvkvgh4m6ipaj";
+    sha256 = "0h7lgsg5d74pfa15kx0y3ngnvmz64znqk2k73iyjya9pi9h8hh88";
   };
 
-  goPackagePath = "github.com/buildpacks/pack";
+  vendorSha256 = "1c38g169kq9kv6x0x1rlg39ywbc1q66fndby0v85b3ri3xb52869";
+
+  nativeBuildInputs = [ installShellFiles ];
 
   subPackages = [ "cmd/pack" ];
 
-  buildFlagsArray = [ "-ldflags=-s -w -X github.com/buildpacks/pack/cmd.Version=${version}" ];
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/buildpacks/pack.Version=${version}" ];
+
+  postInstall = ''
+    installShellCompletion --bash --name pack.bash $(PACK_HOME=$PWD $out/bin/pack completion --shell bash)
+    installShellCompletion --zsh --name _pack $(PACK_HOME=$PWD $out/bin/pack completion --shell zsh)
+  '';
 
   meta = with lib; {
     homepage = "https://buildpacks.io/";
     changelog = "https://github.com/buildpacks/pack/releases/tag/v${version}";
-    description = "Local CLI for building apps using Cloud Native Buildpacks";
+    description = "CLI for building apps using Cloud Native Buildpacks";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
   };
diff --git a/pkgs/development/tools/cargo-flamegraph/default.nix b/pkgs/development/tools/cargo-flamegraph/default.nix
index 08b248dd0f6..feaa3c312f4 100644
--- a/pkgs/development/tools/cargo-flamegraph/default.nix
+++ b/pkgs/development/tools/cargo-flamegraph/default.nix
@@ -32,6 +32,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ferrous-systems/flamegraph";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ killercup ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/cargo-web/default.nix b/pkgs/development/tools/cargo-web/default.nix
index 4e6f8fbc71a..3008c15d848 100644
--- a/pkgs/development/tools/cargo-web/default.nix
+++ b/pkgs/development/tools/cargo-web/default.nix
@@ -23,6 +23,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/koute/cargo-web";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ kevincox ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/castxml/default.nix b/pkgs/development/tools/castxml/default.nix
index 1011f95cce7..0a455b4d7cd 100644
--- a/pkgs/development/tools/castxml/default.nix
+++ b/pkgs/development/tools/castxml/default.nix
@@ -8,13 +8,13 @@
 stdenv.mkDerivation rec {
 
   pname   = "CastXML";
-  version = "0.2.0";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner  = pname;
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "1qpgr5hyb692h7l5igmq53m6a6vi4d9qp8ks893cflfx9955h3ip";
+    sha256 = "0ypj67xrgj228myp7l1gsjw1ja97q68nmj98dsd33srmiayqraj4";
   };
 
   nativeBuildInputs = [ cmake ] ++ stdenv.lib.optionals withMan [ pythonPackages.sphinx ];
diff --git a/pkgs/development/tools/chit/default.nix b/pkgs/development/tools/chit/default.nix
index c7a8483719f..564c5dcbcb5 100644
--- a/pkgs/development/tools/chit/default.nix
+++ b/pkgs/development/tools/chit/default.nix
@@ -39,6 +39,5 @@ buildRustPackage rec {
     homepage = "https://github.com/peterheesterman/chit";
     license = licenses.mit;
     maintainers = [ maintainers.lilyball ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/cloudfoundry-cli/default.nix b/pkgs/development/tools/cloudfoundry-cli/default.nix
index 9d0c1ab92ff..642c42108aa 100644
--- a/pkgs/development/tools/cloudfoundry-cli/default.nix
+++ b/pkgs/development/tools/cloudfoundry-cli/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }:
+{ stdenv, buildGoPackage, fetchFromGitHub, fetchurl, installShellFiles }:
 
 buildGoPackage rec {
   pname = "cloudfoundry-cli";
-  version = "6.51.0";
+  version = "7.0.1";
 
   goPackagePath = "code.cloudfoundry.org/cli";
 
@@ -12,7 +12,14 @@ buildGoPackage rec {
     owner = "cloudfoundry";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "189cqng7y12knqm4n1bfajbc2lx027rwb44wddmj5iya27i7fv8f";
+    sha256 = "0jh4x7xlijp1naak5qyc256zkzlrczl6g4iz94s8wx2zj7np0q5l";
+  };
+
+  # upstream have helpfully moved the bash completion script to a separate
+  # repo which receives no releases or even tags
+  bashCompletionScript = fetchurl {
+    url = "https://raw.githubusercontent.com/cloudfoundry/cli-ci/6087781a0e195465a35c79c8e968ae708c6f6351/ci/installers/completion/cf7";
+    sha256 = "1vhg9jcgaxcvvb4pqnhkf27b3qivs4d3w232j0gbh9393m3qxrvy";
   };
 
   nativeBuildInputs = [ installShellFiles ];
@@ -35,7 +42,7 @@ buildGoPackage rec {
 
   installPhase = ''
     install -Dm555 out/cf "$out/bin/cf"
-    installShellCompletion --bash "$src/ci/installers/completion/cf"
+    installShellCompletion --bash $bashCompletionScript
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/cmake-format/default.nix b/pkgs/development/tools/cmake-format/default.nix
index 394dc7b2f51..0d9edebe19b 100644
--- a/pkgs/development/tools/cmake-format/default.nix
+++ b/pkgs/development/tools/cmake-format/default.nix
@@ -10,12 +10,15 @@
 
 buildPythonApplication rec {
   pname = "cmake-format";
-  version = "0.6.10";
+  version = "0.6.13";
+  # The source distribution does not build because of missing files.
+  format = "wheel";
 
   src = fetchPypi {
-    inherit version;
-    pname = "cmake_format";
-    sha256 = "14ypplkjah4hcb1ad8978xip4vvzxy1nkysvyi1wn9b24cbfzw42";
+    inherit version format;
+    python = "py3";
+    pname = "cmakelang";
+    sha256 = "0kmggnfbv6bba75l3zfzqwk0swi90brjka307m2kcz2w35kr8jvn";
   };
 
   propagatedBuildInputs = [ autopep8 flake8 jinja2 pylint pyyaml ];
diff --git a/pkgs/development/tools/cmake-language-server/default.nix b/pkgs/development/tools/cmake-language-server/default.nix
index 135fdccd7c5..628bb31fbe9 100644
--- a/pkgs/development/tools/cmake-language-server/default.nix
+++ b/pkgs/development/tools/cmake-language-server/default.nix
@@ -1,6 +1,7 @@
 { stdenv, buildPythonApplication, fetchFromGitHub
 , poetry, pygls, pyparsing
 , cmake, pytest, pytest-datadir
+, fetchpatch
 }:
 
 buildPythonApplication rec {
@@ -15,6 +16,17 @@ buildPythonApplication rec {
     sha256 = "0vz7bjxkk0phjhz3h9kj6yr7wnk3g7lqmkqraa0kw12mzcfck837";
   };
 
+  # can be removed after v0.1.2
+  patches = stdenv.lib.optional stdenv.isDarwin (fetchpatch {
+    url = "https://github.com/regen100/cmake-language-server/commit/0ec120f39127f25898ab110b43819e3e9becb8a3.patch";
+    sha256 = "1xbmarvsvzd61fnlap4qscnijli2rw2iqr7cyyvar2jd87z6sfp0";
+  });
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'pygls = "^0.8.1"' 'pygls = "^0.9.0"'
+  '';
+
   nativeBuildInputs = [ poetry ];
   propagatedBuildInputs = [ pygls pyparsing ];
 
diff --git a/pkgs/development/tools/conftest/default.nix b/pkgs/development/tools/conftest/default.nix
index d7ee1c2a51f..2f661dd44ae 100644
--- a/pkgs/development/tools/conftest/default.nix
+++ b/pkgs/development/tools/conftest/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "conftest";
-  version = "0.19.0";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "conftest";
     rev = "v${version}";
-    sha256 = "0d6n51p4b8jwkfqympwxkqxssgy462m5pgv5qvm6jy5pm566qa08";
+    sha256 = "0v9cya3x0v1fqpqswayskmm0xzbvfn4hbhz2k6b3j6fzcq2dnzj3";
   };
 
-  vendorSha256 = "150fj2c9qll39wiqk41w0qms0sdqiacb2z015j38kg60r8f6i4lm";
+  vendorSha256 = "1nxl00f8dbdiykwa54qm9r0cv16zcab880ay8mlmxba7srysvb1y";
+
+  doCheck = false;
 
   buildFlagsArray = ''
     -ldflags=
@@ -23,6 +25,5 @@ buildGoModule rec {
     inherit (src.meta) homepage;
     license = licenses.asl20;
     maintainers = with maintainers; [ yurrriq ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix b/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
index 06d69c152ba..aee2a4e2341 100644
--- a/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
+++ b/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0jxh3yhh0sdvaykhinxngpipk369hw8z1y3g2z4c1115m5rjp2bb";
 
+  doCheck = false;
+
   subPackages = [ "cmd/bk" ];
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ];
diff --git a/pkgs/development/tools/continuous-integration/drone-cli/default.nix b/pkgs/development/tools/continuous-integration/drone-cli/default.nix
index bbd2c2f1935..3df406eb560 100644
--- a/pkgs/development/tools/continuous-integration/drone-cli/default.nix
+++ b/pkgs/development/tools/continuous-integration/drone-cli/default.nix
@@ -1,13 +1,14 @@
 { stdenv, fetchFromGitHub, buildGoModule }:
 
-let version = "1.2.1";
+let version = "1.2.2";
 in buildGoModule rec {
   inherit version;
   pname = "drone-cli";
   revision = "v${version}";
-  goPackagePath = "github.com/drone/drone-cli";
 
-  vendorSha256 = "1zzx5yy0pp0c8pias4sfxfvdzhhrff9f8j51qf6dkif99xwdq3hb";
+  vendorSha256 = "1ryh94cj37j8x6qwxr5ydyw6cnjppakg1w84sipm11d0vvv98bhi";
+
+  doCheck = false;
 
   preBuild = ''
     buildFlagsArray+=("-ldflags" "-X main.version=${version}")
@@ -17,7 +18,7 @@ in buildGoModule rec {
     owner = "drone";
     repo = "drone-cli";
     rev = revision;
-    sha256 = "19icihi5nxcafxlh4w61nl4cd0dhvik9zl8g4gqmazikjqsjms2j";
+    sha256 = "082yqm72y8s3v06gkcg947p62sd63y3r2bmdsrfgdrzb5w5a75bl";
   };
 
   meta = with stdenv.lib; {
@@ -25,4 +26,4 @@ in buildGoModule rec {
     license = licenses.asl20;
     description = "Command line client for the Drone continuous integration server.";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/continuous-integration/drone/default.nix b/pkgs/development/tools/continuous-integration/drone/default.nix
index 54b801da075..307dda4f993 100644
--- a/pkgs/development/tools/continuous-integration/drone/default.nix
+++ b/pkgs/development/tools/continuous-integration/drone/default.nix
@@ -2,16 +2,17 @@
 
 buildGoModule rec {
   name = "drone.io-${version}";
-  version = "1.6.5";
-  goPackagePath = "github.com/drone/drone";
+  version = "1.9.0";
 
-  vendorSha256 = "1dvf8vz3jr9smki3jql0kvd8z8rwdq93y7blbr2yjjfsdvx6lxl1";
+  vendorSha256 = "0idf11sr417lxcjryplgb87affr6lgzxazzlyvk0y40hp8zbhwsx";
+
+  doCheck = false;
 
   src = fetchFromGitHub {
     owner = "drone";
     repo = "drone";
     rev = "v${version}";
-    sha256 = "05cgd72qyss836fby0adhrm5p8g7639psk2yslhg6pmz0cqfbq9m";
+    sha256 = "1lsyd245fr1f74rpccvvw41h5g75b79afrb8g589bj13ggjav0xy";
   };
 
   meta = with stdenv.lib; {
@@ -19,4 +20,4 @@ buildGoModule rec {
     license = licenses.asl20;
     description = "Continuous Integration platform built on container technology";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/continuous-integration/fly/default.nix b/pkgs/development/tools/continuous-integration/fly/default.nix
index bdad33dee74..c85f5473de8 100644
--- a/pkgs/development/tools/continuous-integration/fly/default.nix
+++ b/pkgs/development/tools/continuous-integration/fly/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "fly";
-  version = "6.3.0";
+  version = "6.5.1";
 
   src = fetchFromGitHub {
     owner = "concourse";
     repo = "concourse";
     rev = "v${version}";
-    sha256 = "006qkg661hzbc2gpcnpxm09bp1kbb98y0bgdr49bjlnapcmdgr1b";
+    sha256 = "0ldw40xn9nb5picly32nq558x0klvkyrr9af0jfngbvm4l5209bc";
   };
 
-  vendorSha256 = "03az7l9rf2syw837zliny82xhkqlad16z0vfcg5h21m3bhz6v6jy";
+  vendorSha256 = "1fxbxkg7disndlmb065abnfn7sn79qclkcbizmrq49f064w1ijr4";
+
+  doCheck = false;
 
   subPackages = [ "fly" ];
 
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index c75d71f3a11..890c561cadc 100644
--- a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,16 +1,16 @@
 { lib, buildGoPackage, fetchFromGitLab, fetchurl }:
 
 let
-  version = "13.1.0";
+  version = "13.3.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 = "1x44vbfcmk95rjkhmfizfdmr1blyj7x1a84hdynrgcyg69m6zikn";
+    sha256 = "0pi33mgcmw1n5myyczg1nx1s8rqx6b4vr7s09jsjd6z81irhc87c";
   };
 
   docker_arm = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
-    sha256 = "08n3nrpwhb3d3znid2bibg54qxdw5z6r4j5fp8vjh33h45q47q0k";
+    sha256 = "071bsfnkasdj7lfidfhwcklycan2zpyalqia3rmbwd93m5rwqgrd";
   };
 in
 buildGoPackage rec {
@@ -30,7 +30,7 @@ buildGoPackage rec {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "0mbcpz1i0jmx5y67cvjwaizbj6jxdqml5m4m42dx96jqk0bv8g55";
+    sha256 = "0idbj8jmycrh61bvkzjl5xffhvv9jnjqv9q0ivl457sn2jii9bhi";
   };
 
   patches = [ ./fix-shell-path.patch ];
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index d9d7b490cf1..8723ca2b443 100644
--- a/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jenkins";
-  version = "2.235.1";
+  version = "2.235.5";
 
   src = fetchurl {
     url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
-    sha256 = "0pb7dy95ygvyb25hm6akf40f5gr5wa2njad7ncglrpmz14xfnxb3";
+    sha256 = "02zpnqhdkhg8p8cddkqklgihjpwcbnybkcw5rspipz6kiyqzg1n7";
   };
 
   buildCommand = ''
diff --git a/pkgs/development/tools/continuous-integration/laminar/default.nix b/pkgs/development/tools/continuous-integration/laminar/default.nix
new file mode 100644
index 00000000000..5a326e94a54
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/laminar/default.nix
@@ -0,0 +1,80 @@
+{ stdenv
+, lib
+, fetchurl
+, cmake
+, capnproto
+, sqlite
+, boost
+, 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";
+  };
+  js.vue-router = fetchurl {
+    url =
+      "https://cdnjs.cloudflare.com/ajax/libs/vue-router/2.7.0/vue-router.min.js";
+    sha256 = "07gx7znb30rk1z7w6ca7dlfjp44q12bbq6jghwfm27mf6psa80as";
+  };
+  js.ansi_up = fetchurl {
+    url = "https://raw.githubusercontent.com/drudru/ansi_up/v1.3.0/ansi_up.js";
+    sha256 = "1993dywxqi2ylnxybwk7m0s0bg2bq7kfllpyr0s8ck6chd0p8i6r";
+  };
+  js.Chart = fetchurl {
+    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";
+  src = fetchurl {
+    url = "https://github.com/ohwgiles/laminar/archive/${version}.tar.gz";
+    sha256 = "05g73j3vpib47kr7mackcazf7s6bc3xwz4h6k7sp7yb5ng7gj20g";
+  };
+  patches = [ ./patches/no-network.patch ];
+  nativeBuildInputs = [ cmake pandoc ];
+  buildInputs = [ capnproto sqlite boost zlib rapidjson ];
+  preBuild = ''
+    mkdir -p js css
+    cp  ${js.vue}         js/vue.min.js
+    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
+
+    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
+  '');
+
+  meta = with stdenv.lib; {
+    description = "Lightweight and modular continuous integration service";
+    homepage = "https://laminar.ohwg.net";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ kaction ];
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/laminar/patches/no-network.patch b/pkgs/development/tools/continuous-integration/laminar/patches/no-network.patch
new file mode 100644
index 00000000000..80e74de95aa
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/laminar/patches/no-network.patch
@@ -0,0 +1,26 @@
+Build system that downloads stuff from network is bad. Build system that
+does so unconditionally is twice as bad.
+
+Required files are downloaded as separate fixed-output derivations and
+put into correct location before build phase starts.
+
+--- laminar-0.8/CMakeLists.txt
++++ laminar-0.8-new/CMakeLists.txt
+@@ -69,17 +69,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://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)
diff --git a/pkgs/development/tools/corgi/default.nix b/pkgs/development/tools/corgi/default.nix
index 2dcc68a09f2..a1549de1843 100644
--- a/pkgs/development/tools/corgi/default.nix
+++ b/pkgs/development/tools/corgi/default.nix
@@ -23,7 +23,6 @@ buildGoPackage rec {
     '';
     homepage = "https://github.com/DrakeW/corgi";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ kalbasit ];
   };
 }
diff --git a/pkgs/development/tools/coursier/default.nix b/pkgs/development/tools/coursier/default.nix
index b54a831e955..f30acee3667 100644
--- a/pkgs/development/tools/coursier/default.nix
+++ b/pkgs/development/tools/coursier/default.nix
@@ -8,11 +8,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "coursier";
-  version = "2.0.0-RC6-18";
+  version = "2.0.0-RC6-25";
 
   src = fetchurl {
     url = "https://github.com/coursier/coursier/releases/download/v${version}/coursier";
-    sha256 = "0vym99fyn0g8l5y2zvhf73ww17wywrh503wg5aw4nilj8w1ncvn2";
+    sha256 = "0hkkfm18v2hvkf344ln9ka8gi3jdl6bvqpafc6h06f06vmp8prch";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/cue/default.nix b/pkgs/development/tools/cue/default.nix
index 4af8a7e9023..cdd0f2ae105 100644
--- a/pkgs/development/tools/cue/default.nix
+++ b/pkgs/development/tools/cue/default.nix
@@ -2,15 +2,17 @@
 
 buildGoModule rec {
   pname = "cue";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchgit {
     url = "https://cue.googlesource.com/cue";
     rev = "v${version}";
-    sha256 = "0v9ynbpv7q4lgi1q4qqvfn24z09z2l9lwqjldaffb4i04vyymdfx";
+    sha256 = "1crl5fldczc3jkwf7gvwvghckr6gfinfslzca4ps1098lbq83zcq";
   };
 
-  vendorSha256 = "1s6mm3lsrs5vgvw4i4a3wxksd9wanbkjlahyz6hbnm3451ra0nyq";
+  vendorSha256 = "0l6slaji9nh16jqp1nvib95h2db1xyjh6knk5hj2zaa1rks4b092";
+
+  doCheck = false;
 
   subPackages = [ "cmd/cue" ];
 
diff --git a/pkgs/development/tools/dapper/default.nix b/pkgs/development/tools/dapper/default.nix
index c2dadeb6a93..664dd61246d 100644
--- a/pkgs/development/tools/dapper/default.nix
+++ b/pkgs/development/tools/dapper/default.nix
@@ -5,7 +5,7 @@
 
 buildGoPackage rec {
   pname = "dapper";
-  version = "0.5.1";
+  version = "0.5.3";
 
   goPackagePath = "github.com/rancher/dapper";
 
@@ -13,7 +13,7 @@ buildGoPackage rec {
     owner = "rancher";
     repo = "dapper";
     rev = "v${version}";
-    sha256 = "0sf56ii4sn2wdq5kiyl02sgvq0lvynzgiq8v5wrkkabj5107fiqw";
+    sha256 = "1h62jahrxpmqx6r3mlakzap8gisrymgkp5syyarpab05qm1inngd";
   };
    patchPhase = ''
      substituteInPlace main.go --replace 0.0.0 ${version}
diff --git a/pkgs/development/tools/dapr/cli/default.nix b/pkgs/development/tools/dapr/cli/default.nix
new file mode 100644
index 00000000000..ef61edcbb8d
--- /dev/null
+++ b/pkgs/development/tools/dapr/cli/default.nix
@@ -0,0 +1,31 @@
+{ buildGoModule, fetchFromGitHub, stdenv }:
+
+let
+  pname = "dapr";
+  version = "0.9.0";
+  sha256 = "1vdbh5pg3j7kqqqhhf4d9xfzbpqmjc4x373sk43pb05prg4w71s7";
+  vendorSha256 = "19qcpd5i60xmsr8m8mx16imm5falkqcgqpwpx3clfvqxjyflglpp";
+in buildGoModule {
+  inherit pname version vendorSha256;
+
+  src = fetchFromGitHub {
+    inherit sha256;
+
+    owner = "dapr";
+    repo = "cli";
+    rev = "v${version}";
+  };
+
+  doCheck = false;
+
+  postInstall = ''
+    mv $out/bin/cli $out/bin/dapr
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://dapr.io";
+    description = "A CLI for managing Dapr, the distributed application runtime";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lucperkins ];
+  };
+}
diff --git a/pkgs/development/tools/database/dbmate/default.nix b/pkgs/development/tools/database/dbmate/default.nix
index 00babb3c824..4858b84abfa 100644
--- a/pkgs/development/tools/database/dbmate/default.nix
+++ b/pkgs/development/tools/database/dbmate/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "dbmate";
-  version = "1.9.0";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "amacneil";
     repo = "dbmate";
     rev = "v${version}";
-    sha256 = "0v00k658b4ca9bpn2yiiy3gq5gr6hms8mlk31wf8svwsjyzjibzr";
+    sha256 = "09zb7r8f6m1w9ax9ayaxjzwmqcgx5f6x4lclfi1wdn6f6qaans4w";
   };
 
-  vendorSha256 = "00vp925vf9clk5bkw5fvj34id4v548rlssizh52z9psvdizj8q5p";
+  vendorSha256 = "012kgdvw7hj3m40v3nnpg916n02nxv19zid07h8g4qwprzg49iq2";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Database migration tool";
@@ -20,4 +22,4 @@ buildGoModule rec {
     maintainers = [ maintainers.manveru ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/database/liquibase/default.nix b/pkgs/development/tools/database/liquibase/default.nix
index ae993f9611e..104b1c46e09 100644
--- a/pkgs/development/tools/database/liquibase/default.nix
+++ b/pkgs/development/tools/database/liquibase/default.nix
@@ -10,11 +10,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "liquibase";
-  version = "3.10.0";
+  version = "3.10.2";
 
   src = fetchurl {
     url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "1h5mcbs6mkk6cqjm8qm63rynz7611gq32v2jirl1qn71x2s7pq6y";
+    sha256 = "19wdflkp4n0pds4lkliagg8l5kf9db5f5bn39akhwasc4yj0g7j2";
   };
 
   buildInputs = [ jre makeWrapper ];
diff --git a/pkgs/development/tools/database/sqldeveloper/default.nix b/pkgs/development/tools/database/sqldeveloper/default.nix
index 646739982cb..49cc7b42b3d 100644
--- a/pkgs/development/tools/database/sqldeveloper/default.nix
+++ b/pkgs/development/tools/database/sqldeveloper/default.nix
@@ -1,7 +1,7 @@
 { stdenv, makeDesktopItem, makeWrapper, requireFile, unzip, jdk }:
 
 let
-  version = "19.4.0.354.1759";
+  version = "20.2.0.175.1842";
 
   desktopItem = makeDesktopItem {
     name = "sqldeveloper";
@@ -46,7 +46,7 @@ in
 
         nix-prefetch-url --type sha256 file:///path/to/${name}
     '';
-    sha256 = "1hk3hfxyl6ryp4v1l9mgzflban565ayfmm2k412azmw5rnmjf6fv";
+    sha256 = "1fcaq7ffn1q35f7rvp3ybs2191lvfc0jgjx7y4wn1nqglgj7zy7n";
   };
 
   buildInputs = [ makeWrapper unzip ];
diff --git a/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix b/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix
index 166cda52a3d..a0e05bf4ae5 100644
--- a/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix
+++ b/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix
@@ -1,26 +1,22 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
-  name = "timescaledb-parallel-copy";
-  version = "0.2.0";
-
-  owner  = "timescale";
-  repo   = "timescaledb-parallel-copy";
-
-  goPackagePath = with src; "github.com/${owner}/${repo}";
-  goDeps = ./deps.nix;
+buildGoModule rec {
+  pname = "timescaledb-parallel-copy";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
-    inherit owner repo;
-    rev    = version;
-    sha256 = "1z9vf29vrxqs8imbisv681d02p4cfk3hlsrin6hhibxf1h0br9gd";
+    owner = "timescale";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0r8c78l8vg7l24c3vzs2qr2prfjpagvdkp95fh9gyz76nvik29ba";
   };
 
+  vendorSha256 = "03siay3hv1sgmmp7w4f9b0xb8c6bnbx0v4wy5grjl5k04zhnj76b";
+
   meta = with stdenv.lib; {
     description = "Bulk, parallel insert of CSV records into PostgreSQL";
-    homepage    = "https://github.com/timescale/timescaledb-parallel-copy";
-    license     = licenses.asl20;
-    platforms   = platforms.unix;
+    homepage = "https://github.com/timescale/timescaledb-parallel-copy";
+    license = licenses.asl20;
     maintainers = with maintainers; [ thoughtpolice ];
   };
 }
diff --git a/pkgs/development/tools/database/timescaledb-parallel-copy/deps.nix b/pkgs/development/tools/database/timescaledb-parallel-copy/deps.nix
deleted file mode 100644
index ac145fcd34e..00000000000
--- a/pkgs/development/tools/database/timescaledb-parallel-copy/deps.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/jmoiron/sqlx";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jmoiron/sqlx";
-      rev = "82935fac6c1a317907c8f43ed3f7f85ea844a78b";
-      sha256 = "0cbscnss2ifc3qgmy97i0zbirrp4hix4jlcz853f4bg5n2zzgwh2";
-    };
-  }
-  {
-    goPackagePath = "github.com/lib/pq";
-    fetch = {
-      type = "git";
-      url = "https://github.com/lib/pq";
-      rev = "7aad666537ab32b76f0966145530335f1fed51fd";
-      sha256 = "12qczn5afbf6203wnbpay1kazzh20jg5qyakrph3j1r13n91nc1r";
-    };
-  }
-]
diff --git a/pkgs/development/tools/database/timescaledb-tune/default.nix b/pkgs/development/tools/database/timescaledb-tune/default.nix
index da5ba3fea64..2079925049d 100644
--- a/pkgs/development/tools/database/timescaledb-tune/default.nix
+++ b/pkgs/development/tools/database/timescaledb-tune/default.nix
@@ -1,20 +1,18 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
-  name = "timescaledb-tune";
-  version = "0.6.0";
-
-  goPackagePath = "github.com/timescale/timescaledb-tune";
-
-  goDeps = ./deps.nix;
+buildGoModule rec {
+  pname = "timescaledb-tune";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "timescale";
-    repo = name;
-    rev = version;
-    sha256 = "0hjxmjgkqm9sbjbyhs3pzkk1d9vvlcbzwl7ghsigh4h7rw3a0mpk";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0vncwwvw7y6g3crd4n5vvd6jwdsa8vsvsmfwy5mad4j6lix09ajx";
   };
 
+  vendorSha256 = "0hbpprbxs19fcar7xcy42kn9yfzhal2zsv5pml9ghiv2s61yns4z";
+
   meta = with stdenv.lib; {
     description = "A tool for tuning your TimescaleDB for better performance";
     homepage = "https://github.com/timescale/timescaledb-tune";
diff --git a/pkgs/development/tools/database/timescaledb-tune/deps.nix b/pkgs/development/tools/database/timescaledb-tune/deps.nix
deleted file mode 100644
index d898770fd4e..00000000000
--- a/pkgs/development/tools/database/timescaledb-tune/deps.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/fatih/color";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fatih/color";
-      rev = "3f9d52f7176a6927daacff70a3e8d1dc2025c53e";
-      sha256 = "165ww24x6ba47ji4j14mp3f006ksnmi53ws9280pgd2zcw91nbn8";
-    };
-  }
-  {
-    goPackagePath = "github.com/pbnjay/memory";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pbnjay/memory";
-      rev = "974d429e7ae40c89e7dcd41cfcc22a0bfbe42510";
-      sha256 = "0kazg5psdn90pqadrzma5chdwh0l2by9z31sspr47gx93fhjmkkq";
-    };
-  }
-]
diff --git a/pkgs/development/tools/database/webdis/default.nix b/pkgs/development/tools/database/webdis/default.nix
index 96b39e42d10..ec22252cbe0 100644
--- a/pkgs/development/tools/database/webdis/default.nix
+++ b/pkgs/development/tools/database/webdis/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "webdis";
-  version = "0.1.10";
+  version = "0.1.11";
 
   src = fetchFromGitHub {
     owner = "nicolasff";
     repo = pname;
     rev = version;
-    sha256 = "1hn4fq0asivfs56rw9ck1vc3g6h6fnwywh8v4zs2bkyn62fg9mcw";
+    sha256 = "162xbx4dhfx4a6sksm7x60gr7ylyila4vidmdf0bn7xlvglggazf";
   };
 
   buildInputs = [ hiredis http-parser jansson libevent ];
diff --git a/pkgs/development/tools/delve/default.nix b/pkgs/development/tools/delve/default.nix
index b990fe10b05..892ee6dd329 100644
--- a/pkgs/development/tools/delve/default.nix
+++ b/pkgs/development/tools/delve/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "delve";
-  version = "1.4.1";
+  version = "1.5.0";
 
   goPackagePath = "github.com/go-delve/delve";
   excludedPackages = "\\(_fixtures\\|scripts\\|service/test\\)";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "go-delve";
     repo = "delve";
     rev = "v${version}";
-    sha256 = "007bc69r26w0sv6v9mbjdnmnkahpfk5998isx81ma7cinqdhi1cj";
+    sha256 = "0m7fryclrj0qzqzcjn0xc9vl43srijyfahfkqdbm59xgpws67anp";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/dep/default.nix b/pkgs/development/tools/dep/default.nix
index 8d7f3b213ca..8b7c54832e2 100644
--- a/pkgs/development/tools/dep/default.nix
+++ b/pkgs/development/tools/dep/default.nix
@@ -21,7 +21,6 @@ buildGoPackage rec {
     homepage = "https://github.com/golang/dep";
     description = "Go dependency management tool";
     license = licenses.bsd3;
-    platforms = platforms.all;
     maintainers = with maintainers; [ carlsverre rvolosatovs ];
   };
 }
diff --git a/pkgs/development/tools/dep2nix/deps.nix b/pkgs/development/tools/dep2nix/deps.nix
index fc9280e9df5..ceedc50fc88 100644
--- a/pkgs/development/tools/dep2nix/deps.nix
+++ b/pkgs/development/tools/dep2nix/deps.nix
@@ -1,145 +1,129 @@
-
-  # file automatically generated from Gopkg.lock with https://github.com/nixcloud/dep2nix (golang dep)
-  [
-  
-    {
-      goPackagePath  = "github.com/Masterminds/semver";
-      fetch = {
-        type = "git";
-        url = "https://github.com/Masterminds/semver";
-        rev =  "a93e51b5a57ef416dac8bb02d11407b6f55d8929";
-        sha256 = "1rd3p135r7iw0lvaa6vk7afxna87chq61a7a0wqnxd3xgpnpa9ik";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/Masterminds/vcs";
-      fetch = {
-        type = "git";
-        url = "https://github.com/Masterminds/vcs";
-        rev =  "6f1c6d150500e452704e9863f68c2559f58616bf";
-        sha256 = "02bpyzccazw9lwqchcz349al4vlxnz4m5gzwigk02zg2qpa1j53j";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/armon/go-radix";
-      fetch = {
-        type = "git";
-        url = "https://github.com/armon/go-radix";
-        rev =  "1fca145dffbcaa8fe914309b1ec0cfc67500fe61";
-        sha256 = "19jws9ngncpbhghzcy7biyb4r8jh14mzknyk67cvq6ln7kh1qyic";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/boltdb/bolt";
-      fetch = {
-        type = "git";
-        url = "https://github.com/boltdb/bolt";
-        rev =  "2f1ce7a837dcb8da3ec595b1dac9d0632f0f99e8";
-        sha256 = "0z7j06lijfi4y30ggf2znak2zf2srv2m6c68ar712wd2ys44qb3r";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/golang/dep";
-      fetch = {
-        type = "git";
-        url = "https://github.com/CrushedPixel/dep";
-        rev =  "fa9f32339c8855ebe7e7bc66e549036a7e06d37a";
-        sha256 = "1knaxs1ji1b0b68393f24r8qzvahxz9x7rqwc8jsjlshvpz0hlm6";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/golang/protobuf";
-      fetch = {
-        type = "git";
-        url = "https://github.com/golang/protobuf";
-        rev =  "bbd03ef6da3a115852eaf24c8a1c46aeb39aa175";
-        sha256 = "1pyli3dcagi7jzpiazph4fhkz7a3z4bhd25nwbb7g0iy69b8z1g4";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/jmank88/nuts";
-      fetch = {
-        type = "git";
-        url = "https://github.com/jmank88/nuts";
-        rev =  "8b28145dffc87104e66d074f62ea8080edfad7c8";
-        sha256 = "1d0xj1dj1lfalq3pg15h0c645n84lf122xx3zkm7hawq9zri6n5k";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/nightlyone/lockfile";
-      fetch = {
-        type = "git";
-        url = "https://github.com/nightlyone/lockfile";
-        rev =  "6a197d5ea61168f2ac821de2b7f011b250904900";
-        sha256 = "03znnf6rzyyi4h4qj81py1xpfs3pnfm39j4bfc9qzakz5j9y1gdl";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/pelletier/go-toml";
-      fetch = {
-        type = "git";
-        url = "https://github.com/pelletier/go-toml";
-        rev =  "acdc4509485b587f5e675510c4f2c63e90ff68a8";
-        sha256 = "1y5m9pngxhsfzcnxh8ma5nsllx74wn0jr47p2n6i3inrjqxr12xh";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/pkg/errors";
-      fetch = {
-        type = "git";
-        url = "https://github.com/pkg/errors";
-        rev =  "645ef00459ed84a119197bfb8d8205042c6df63d";
-        sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/sdboyer/constext";
-      fetch = {
-        type = "git";
-        url = "https://github.com/sdboyer/constext";
-        rev =  "836a144573533ea4da4e6929c235fd348aed1c80";
-        sha256 = "0055yw73di4spa1wwpa2pyb708wmh9r3xd8dcv8pn81dba94if1w";
-      };
-    }
-    
-    {
-      goPackagePath  = "golang.org/x/net";
-      fetch = {
-        type = "git";
-        url = "https://go.googlesource.com/net";
-        rev =  "dc948dff8834a7fe1ca525f8d04e261c2b56e70d";
-        sha256 = "0gkw1am63agb1rgpxr2qhns9npr99mzwrxg7px88qq8h93zzd4kg";
-      };
-    }
-    
-    {
-      goPackagePath  = "golang.org/x/sync";
-      fetch = {
-        type = "git";
-        url = "https://go.googlesource.com/sync";
-        rev =  "fd80eb99c8f653c847d294a001bdf2a3a6f768f5";
-        sha256 = "12lzldlj1cqc1babp1hkkn76fglzn5abkqvmbpr4f2j95mf9x836";
-      };
-    }
-    
-    {
-      goPackagePath  = "golang.org/x/sys";
-      fetch = {
-        type = "git";
-        url = "https://go.googlesource.com/sys";
-        rev =  "37707fdb30a5b38865cfb95e5aab41707daec7fd";
-        sha256 = "1abrr2507a737hdqv4q7pw7hv6ls9pdiq9crhdi52r3gcz6hvizg";
-      };
-    }
-    
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "github.com/Masterminds/semver";
+    fetch = {
+      type = "git";
+      url = "https://github.com/carolynvs/semver.git";
+      rev =  "a93e51b5a57ef416dac8bb02d11407b6f55d8929";
+      sha256 = "1rd3p135r7iw0lvaa6vk7afxna87chq61a7a0wqnxd3xgpnpa9ik";
+    };
+  }
+  {
+    goPackagePath  = "github.com/Masterminds/vcs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Masterminds/vcs";
+      rev =  "6f1c6d150500e452704e9863f68c2559f58616bf";
+      sha256 = "02bpyzccazw9lwqchcz349al4vlxnz4m5gzwigk02zg2qpa1j53j";
+    };
+  }
+  {
+    goPackagePath  = "github.com/armon/go-radix";
+    fetch = {
+      type = "git";
+      url = "https://github.com/armon/go-radix";
+      rev =  "1fca145dffbcaa8fe914309b1ec0cfc67500fe61";
+      sha256 = "19jws9ngncpbhghzcy7biyb4r8jh14mzknyk67cvq6ln7kh1qyic";
+    };
+  }
+  {
+    goPackagePath  = "github.com/boltdb/bolt";
+    fetch = {
+      type = "git";
+      url = "https://github.com/boltdb/bolt";
+      rev =  "2f1ce7a837dcb8da3ec595b1dac9d0632f0f99e8";
+      sha256 = "0z7j06lijfi4y30ggf2znak2zf2srv2m6c68ar712wd2ys44qb3r";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/dep";
+    fetch = {
+      type = "git";
+      url = "https://github.com/CrushedPixel/dep";
+      rev =  "fa9f32339c8855ebe7e7bc66e549036a7e06d37a";
+      sha256 = "1knaxs1ji1b0b68393f24r8qzvahxz9x7rqwc8jsjlshvpz0hlm6";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev =  "bbd03ef6da3a115852eaf24c8a1c46aeb39aa175";
+      sha256 = "1pyli3dcagi7jzpiazph4fhkz7a3z4bhd25nwbb7g0iy69b8z1g4";
+    };
+  }
+  {
+    goPackagePath  = "github.com/jmank88/nuts";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jmank88/nuts";
+      rev =  "8b28145dffc87104e66d074f62ea8080edfad7c8";
+      sha256 = "1d0xj1dj1lfalq3pg15h0c645n84lf122xx3zkm7hawq9zri6n5k";
+    };
+  }
+  {
+    goPackagePath  = "github.com/nightlyone/lockfile";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nightlyone/lockfile";
+      rev =  "6a197d5ea61168f2ac821de2b7f011b250904900";
+      sha256 = "03znnf6rzyyi4h4qj81py1xpfs3pnfm39j4bfc9qzakz5j9y1gdl";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pelletier/go-toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pelletier/go-toml";
+      rev =  "acdc4509485b587f5e675510c4f2c63e90ff68a8";
+      sha256 = "1y5m9pngxhsfzcnxh8ma5nsllx74wn0jr47p2n6i3inrjqxr12xh";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pkg/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/errors";
+      rev =  "645ef00459ed84a119197bfb8d8205042c6df63d";
+      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/sdboyer/constext";
+    fetch = {
+      type = "git";
+      url = "https://github.com/sdboyer/constext";
+      rev =  "836a144573533ea4da4e6929c235fd348aed1c80";
+      sha256 = "0055yw73di4spa1wwpa2pyb708wmh9r3xd8dcv8pn81dba94if1w";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "dc948dff8834a7fe1ca525f8d04e261c2b56e70d";
+      sha256 = "0gkw1am63agb1rgpxr2qhns9npr99mzwrxg7px88qq8h93zzd4kg";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sync";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sync";
+      rev =  "fd80eb99c8f653c847d294a001bdf2a3a6f768f5";
+      sha256 = "12lzldlj1cqc1babp1hkkn76fglzn5abkqvmbpr4f2j95mf9x836";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev =  "37707fdb30a5b38865cfb95e5aab41707daec7fd";
+      sha256 = "1abrr2507a737hdqv4q7pw7hv6ls9pdiq9crhdi52r3gcz6hvizg";
+    };
+  }
 ]
diff --git a/pkgs/development/tools/devd/default.nix b/pkgs/development/tools/devd/default.nix
index 1e48ecde763..cd2f401ed25 100644
--- a/pkgs/development/tools/devd/default.nix
+++ b/pkgs/development/tools/devd/default.nix
@@ -17,6 +17,5 @@ buildGoPackage rec {
     homepage = "https://github.com/cortesi/devd";
     license = licenses.mit;
     maintainers = with maintainers; [ brianhicks ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/diesel-cli/default.nix b/pkgs/development/tools/diesel-cli/default.nix
index 6eac1af512b..6a447dd57c9 100644
--- a/pkgs/development/tools/diesel-cli/default.nix
+++ b/pkgs/development/tools/diesel-cli/default.nix
@@ -71,7 +71,6 @@ rustPlatform.buildRustPackage rec {
     description = "Database tool for working with Rust projects that use Diesel";
     homepage = "https://github.com/diesel-rs/diesel/tree/master/diesel_cli";
     license = with licenses; [ mit asl20 ];
-    platforms = platforms.all;
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/tools/dive/default.nix b/pkgs/development/tools/dive/default.nix
index b48d7425b14..3cb050df036 100644
--- a/pkgs/development/tools/dive/default.nix
+++ b/pkgs/development/tools/dive/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0219q9zjc0i6fbdngqh0wjpmq8wj5bjiz5dls0c1aam0lh4vwkhc";
 
+  doCheck = false;
+
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = stdenv.lib.optionals stdenv.isLinux [ btrfs-progs gpgme lvm2 ];
@@ -25,4 +27,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ marsam spacekookie ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/doctl/default.nix b/pkgs/development/tools/doctl/default.nix
index e65fb4a64b7..45795b67ea4 100644
--- a/pkgs/development/tools/doctl/default.nix
+++ b/pkgs/development/tools/doctl/default.nix
@@ -2,10 +2,12 @@
 
 buildGoModule rec {
   pname = "doctl";
-  version = "1.45.1";
+  version = "1.46.0";
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   subPackages = [ "cmd/doctl" ];
 
   buildFlagsArray = let t = "github.com/digitalocean/doctl"; in ''
@@ -30,14 +32,13 @@ buildGoModule rec {
     owner = "digitalocean";
     repo = "doctl";
     rev = "v${version}";
-    sha256 = "1zzdjpbag23kr6j3c7zkgqaavlna1q792qhs6s234vxm85zmwh4j";
+    sha256 = "1f9gw1qjannswx1vy64a5a2cfr8azsci241pk0xhrhk6aqpjzx1n";
   };
 
   meta = with lib; {
     description = "A command line tool for DigitalOcean services";
     homepage = "https://github.com/digitalocean/doctl";
     license = licenses.asl20;
-    platforms = platforms.all;
     maintainers = [ maintainers.siddharthist ];
   };
 }
diff --git a/pkgs/development/tools/documentation/doxygen/default.nix b/pkgs/development/tools/documentation/doxygen/default.nix
index a8e5f179916..772b654df93 100644
--- a/pkgs/development/tools/documentation/doxygen/default.nix
+++ b/pkgs/development/tools/documentation/doxygen/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
 
-  name = "doxygen-1.8.18";
+  name = "doxygen-1.8.19";
 
   src = fetchurl {
     urls = [
       "mirror://sourceforge/doxygen/${name}.src.tar.gz" # faster, with https, etc.
       "http://doxygen.nl/files/${name}.src.tar.gz"
     ];
-    sha256 = "0mh6s1ri1fs5yb27m0avnjsbcxpchgb9aaprq4bd3lj6vjg3s5qq";
+    sha256 = "1lvqfw2yzba588c5ggl8yhw7aw4xkk44mrghsd9yqlajc48x25dc";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/documentation/mdsh/default.nix b/pkgs/development/tools/documentation/mdsh/default.nix
index 3a33925a86f..5ab74a4b95f 100644
--- a/pkgs/development/tools/documentation/mdsh/default.nix
+++ b/pkgs/development/tools/documentation/mdsh/default.nix
@@ -18,6 +18,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/zimbatm/mdsh";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ zimbatm ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/dot-http/default.nix b/pkgs/development/tools/dot-http/default.nix
new file mode 100644
index 00000000000..1c81a4145d2
--- /dev/null
+++ b/pkgs/development/tools/dot-http/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, libiconv, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "dot-http";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "bayne";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1s2q4kdldhb5gd14g2h6vzrbjgbbbs9zp2dgmna0rhk1h4qv0mml";
+  };
+
+  cargoSha256 = "0an3hskq1k2j4gdn8wvhfb9pqsc34ibs5bv7sjznkp5jma6fdr9w";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [
+    libiconv Security
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Text-based scriptable HTTP client";
+    homepage = "https://github.com/bayne/dot-http";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mredaelli ];
+  };
+}
diff --git a/pkgs/development/tools/dt-schema/default.nix b/pkgs/development/tools/dt-schema/default.nix
new file mode 100644
index 00000000000..5cba13b6689
--- /dev/null
+++ b/pkgs/development/tools/dt-schema/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, git
+, ruamel_yaml
+, jsonschema
+, rfc3987
+, setuptools
+, setuptools_scm
+}:
+
+buildPythonPackage rec {
+  pname = "dtschema";
+  version = "2020.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1zdm0zbn1dfk02yqghfvd0nb26hmzivb6mln6bvxjfdcv6n7pdqf";
+  };
+
+  nativeBuildInputs = [ setuptools_scm git ];
+  propagatedBuildInputs = [
+    setuptools
+    ruamel_yaml
+    jsonschema
+    rfc3987
+  ];
+
+  meta = with lib; {
+    description = "Tooling for devicetree validation using YAML and jsonschema";
+    homepage = "https://github.com/devicetree-org/dt-schema/";
+    # all files have SPDX tags
+    license = with licenses; [ bsd2 gpl2 ];
+    maintainers = with maintainers; [ sorki ];
+  };
+}
+
diff --git a/pkgs/development/tools/easyjson/default.nix b/pkgs/development/tools/easyjson/default.nix
index 4f3d89c0788..f7bd4d2037d 100644
--- a/pkgs/development/tools/easyjson/default.nix
+++ b/pkgs/development/tools/easyjson/default.nix
@@ -13,13 +13,10 @@ buildGoPackage {
     sha256 = "0q85h383mhbkcjm2vqm72bi8n2252fv3c56q3lclzb8n2crnjcdk";
   };
 
-  enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     homepage = "https://github.com/mailru/easyjson";
     description = "Fast JSON serializer for golang";
     license = licenses.mit;
     maintainers = with maintainers; [ chiiruno ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/electron/generic.nix b/pkgs/development/tools/electron/generic.nix
index 04b610dde1c..92dd72533ae 100644
--- a/pkgs/development/tools/electron/generic.nix
+++ b/pkgs/development/tools/electron/generic.nix
@@ -10,6 +10,7 @@ let
     license = licenses.mit;
     maintainers = with maintainers; [ travisbhartwell manveru prusnak ];
     platforms = [ "x86_64-darwin" "x86_64-linux" "i686-linux" "armv7l-linux" "aarch64-linux" ];
+    knownVulnerabilities = optional (version < "6") "Electron version ${version} is EOL";
   };
 
   fetcher = vers: tag: hash: fetchurl {
diff --git a/pkgs/development/tools/eliot-tree/default.nix b/pkgs/development/tools/eliot-tree/default.nix
new file mode 100644
index 00000000000..95108c21bb9
--- /dev/null
+++ b/pkgs/development/tools/eliot-tree/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "eliot-tree";
+  version = "19.0.1";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "18gvijsm0vh3x83mv8dd80c3mpm80r7i111qsg4y7rj4i590phma";
+  };
+
+  checkInputs = with python3Packages; [
+    testtools
+    pytest
+   ];
+
+  propagatedBuildInputs = with python3Packages; [
+    colored
+    eliot
+    iso8601
+    jmespath
+    setuptools
+    toolz
+  ];
+
+  # Tests run eliot-tree in out/bin.
+  checkPhase = ''
+    export PATH=$out/bin:$PATH
+    pytest
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/jonathanj/eliottree";
+    description = "Render Eliot logs as an ASCII tree";
+    license = licenses.mit;
+    maintainers = [ maintainers.dpausp ];
+  };
+}
diff --git a/pkgs/development/tools/fdroidserver/default.nix b/pkgs/development/tools/fdroidserver/default.nix
index c038e4fdfaf..2b96830b002 100644
--- a/pkgs/development/tools/fdroidserver/default.nix
+++ b/pkgs/development/tools/fdroidserver/default.nix
@@ -4,14 +4,14 @@
 , lib }:
 
 python.pkgs.buildPythonApplication rec {
-  version = "1.1.7";
+  version = "1.1.9";
   pname = "fdroidserver";
 
   src = fetchFromGitLab {
     owner = "fdroid";
     repo = "fdroidserver";
     rev = version;
-    sha256 = "1xs4qmja7mm9m67368k2s9p7pmkdx9xz4g3xrsks0s8hwwyliz1s";
+    sha256 = "098dcg8jdi4q1prfjmd2lbhcyzb8fmmfhbxhid4kqx8vcv7r0iql";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/tools/fedora-coreos-config-transpiler/default.nix b/pkgs/development/tools/fedora-coreos-config-transpiler/default.nix
index 787ca795791..7ff7af7d18e 100644
--- a/pkgs/development/tools/fedora-coreos-config-transpiler/default.nix
+++ b/pkgs/development/tools/fedora-coreos-config-transpiler/default.nix
@@ -13,8 +13,9 @@ buildGoModule rec {
     sha256 = "18hmnip1s0smp58q500p8dfbrmi4i3nsyq22ri5cs53wbvz3ih1l";
   };
 
-  deleteVendor = true;
-  vendorSha256 = "0qqkaskmyxgwv9qg3y5lckqf6nchn3bxp69fyqdbvki65p445608";
+  vendorSha256 = null;
+
+  doCheck = false;
 
   subPackages = [ "internal" ];
 
@@ -34,4 +35,3 @@ buildGoModule rec {
     platforms = platforms.unix;
   };
 }
-
diff --git a/pkgs/development/tools/flatpak-builder/default.nix b/pkgs/development/tools/flatpak-builder/default.nix
index 85b68cff20d..79c8236a065 100644
--- a/pkgs/development/tools/flatpak-builder/default.nix
+++ b/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.10";
+  version = "1.0.11";
 
   outputs = [ "out" "doc" "man" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/flatpak/flatpak-builder/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "1fn61cl1d33yd1jgqm8jpffjw3xlyyhkn032g14d9gnwkcaf4649";
+    sha256 = "EYNLdrvSs8S/GCYy0jGsnP1+C988y1j7WzcLfczM1Ew=";
   };
 
   nativeBuildInputs = [
@@ -87,9 +87,11 @@ in stdenv.mkDerivation rec {
   patches = [
     # patch taken from gtk_doc
     ./respect-xml-catalog-files-var.patch
+
+    # Hardcode paths
     (substituteAll {
       src = ./fix-paths.patch;
-      bzr = "${breezy}/bin/bzr";
+      brz = "${breezy}/bin/brz";
       cp = "${coreutils}/bin/cp";
       patch = "${patch}/bin/patch";
       tar = "${gnutar}/bin/tar";
diff --git a/pkgs/development/tools/flatpak-builder/fix-paths.patch b/pkgs/development/tools/flatpak-builder/fix-paths.patch
index e24fade6866..c0df2c6cbe7 100644
--- a/pkgs/development/tools/flatpak-builder/fix-paths.patch
+++ b/pkgs/development/tools/flatpak-builder/fix-paths.patch
@@ -1,5 +1,16 @@
+diff --git a/src/builder-context.c b/src/builder-context.c
+index dde12790..3a379297 100644
 --- a/src/builder-context.c
 +++ b/src/builder-context.c
+@@ -256,7 +256,7 @@ builder_context_init (BuilderContext *self)
+   g_autofree char *path = NULL;
+ 
+   self->rofiles_file_lock = init;
+-  path = g_find_program_in_path ("rofiles-fuse");
++  path = g_find_program_in_path ("@rofilesfuse@");
+   self->have_rofiles = path != NULL;
+ }
+ 
 @@ -800,7 +800,7 @@ builder_context_enable_rofiles (BuilderContext *self,
    g_autoptr(GFile) rofiles_base = NULL;
    g_autoptr(GFile) rofiles_dir = NULL;
@@ -9,6 +20,8 @@
                     "-o",
                     "kernel_cache,entry_timeout=60,attr_timeout=60,splice_write,splice_move",
                     (char *)flatpak_file_get_path_cached (self->app_dir),
+diff --git a/src/builder-git.c b/src/builder-git.c
+index ef517adb..6ab095f0 100644
 --- a/src/builder-git.c
 +++ b/src/builder-git.c
 @@ -44,7 +44,7 @@ git (GFile   *dir,
@@ -29,6 +42,8 @@
    va_end (ap);
  
    return res;
+diff --git a/src/builder-source-archive.c b/src/builder-source-archive.c
+index 3c694e57..0de62318 100644
 --- a/src/builder-source-archive.c
 +++ b/src/builder-source-archive.c
 @@ -443,7 +443,7 @@ tar (GFile   *dir,
@@ -67,17 +82,21 @@
    va_end (ap);
  
    return res;
+diff --git a/src/builder-source-bzr.c b/src/builder-source-bzr.c
+index ceeec94a..8abe6f53 100644
 --- a/src/builder-source-bzr.c
 +++ b/src/builder-source-bzr.c
 @@ -124,7 +124,7 @@ bzr (GFile   *dir,
+   gboolean res;
    va_list ap;
  
-   va_start (ap, error);
--  res = flatpak_spawn (dir, output, 0, error, "bzr", ap);
-+  res = flatpak_spawn (dir, output, 0, error, "@bzr@", ap);
-   va_end (ap);
+-  brz = g_find_program_in_path ("brz");
++  brz = g_find_program_in_path ("@brz@");
  
-   return res;
+   va_start (ap, error);
+   res = flatpak_spawn (dir, output, 0, error, brz ? brz : "bzr", ap);
+diff --git a/src/builder-source-patch.c b/src/builder-source-patch.c
+index 8721e1e4..d7f4d840 100644
 --- a/src/builder-source-patch.c
 +++ b/src/builder-source-patch.c
 @@ -247,15 +247,15 @@ patch (GFile      *dir,
@@ -99,6 +118,8 @@
    }
    for (i = 0; extra_options != NULL && extra_options[i] != NULL; i++)
      g_ptr_array_add (args, (gchar *) extra_options[i]);
+diff --git a/src/builder-utils.c b/src/builder-utils.c
+index f1c06db5..2e3347c5 100644
 --- a/src/builder-utils.c
 +++ b/src/builder-utils.c
 @@ -149,7 +149,7 @@ strip (GError **error,
diff --git a/pkgs/development/tools/flyway/default.nix b/pkgs/development/tools/flyway/default.nix
index adb36d8e92c..78db979299c 100644
--- a/pkgs/development/tools/flyway/default.nix
+++ b/pkgs/development/tools/flyway/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, jre_headless, makeWrapper }:
   let
-    version = "6.4.4";
+    version = "6.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 = "16zckqq64jv3031ssrvzw4ny98gnxhy2hsdp877i38zxqsvzdcym";
+        sha256 = "1ga4qhydswalz02hz32p764zipn1lw63nhqlwqq96vjj9cwj1wii";
       };
       nativeBuildInputs = [ makeWrapper ];
       dontBuild = true;
diff --git a/pkgs/development/tools/gdm/default.nix b/pkgs/development/tools/gdm/default.nix
index 284579fd362..2217ea591ff 100644
--- a/pkgs/development/tools/gdm/default.nix
+++ b/pkgs/development/tools/gdm/default.nix
@@ -19,7 +19,6 @@ buildGoPackage rec {
     description = "Minimalist dependency manager for Go written in Go.";
     homepage = "https://github.com/sparrc/gdm";
     license = licenses.unlicense;
-    platforms = platforms.all;
     maintainers = [ maintainers.mic92 ];
   };
 }
diff --git a/pkgs/development/tools/ginkgo/default.nix b/pkgs/development/tools/ginkgo/default.nix
new file mode 100644
index 00000000000..cf2e649962c
--- /dev/null
+++ b/pkgs/development/tools/ginkgo/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "ginkgo";
+  version = "1.14.1";
+
+  src = fetchFromGitHub {
+    owner = "onsi";
+    repo = "ginkgo";
+    rev = "v${version}";
+    sha256 = "01nn33r1rg210zv0qmck0b16545gzr057w1kz8ca86l64qrwbcxx";
+  };
+  vendorSha256 = "072amyw1ir18v9vk268j2y7dhw3lfwvxzvzsdqhnp50rxsa911bx";
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "BDD Testing Framework for Go";
+    homepage = "https://github.com/onsi/ginkgo";
+    license = licenses.mit;
+    maintainers = with maintainers; [ saschagrunert ];
+  };
+}
diff --git a/pkgs/development/tools/gir/default.nix b/pkgs/development/tools/gir/default.nix
index 49e1e6bbe8b..02a3c13afb3 100644
--- a/pkgs/development/tools/gir/default.nix
+++ b/pkgs/development/tools/gir/default.nix
@@ -18,6 +18,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/gtk-rs/gir/";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ekleog ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/git-quick-stats/default.nix b/pkgs/development/tools/git-quick-stats/default.nix
index 587a23f6599..0ceb6f566a3 100644
--- a/pkgs/development/tools/git-quick-stats/default.nix
+++ b/pkgs/development/tools/git-quick-stats/default.nix
@@ -1,14 +1,46 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv
+, fetchFromGitHub
+, makeWrapper
+, coreutils
+, gawk
+, git
+, gnugrep
+, ncurses
+, utillinux
+}:
+
 stdenv.mkDerivation rec {
   pname = "git-quick-stats";
-  version = "2.1.2";
+  version = "2.1.4";
+
   src = fetchFromGitHub {
     repo = "git-quick-stats";
     owner = "arzzen";
     rev = version;
-    sha256 = "1q0iy732smad1v25da9vmlk8r5iscjrk678pq6mda9sbmiq693r3";
+    sha256 = "0fg0fijghcz7hvbc9y8dfksz0qmsz700kc2mfb03y90kja99v68y";
   };
-  PREFIX = builtins.placeholder "out";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installFlags = [
+    "PREFIX=${builtins.placeholder "out"}"
+  ];
+
+  postInstall =
+    let
+      path = stdenv.lib.makeBinPath [
+        coreutils
+        gawk
+        git
+        gnugrep
+        ncurses
+        utillinux
+      ];
+    in
+    ''
+      wrapProgram $out/bin/git-quick-stats --suffix PATH : ${path}
+    '';
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/arzzen/git-quick-stats";
     description = "A simple and efficient way to access various statistics in git repository";
diff --git a/pkgs/development/tools/gllvm/default.nix b/pkgs/development/tools/gllvm/default.nix
index 6b64a088353..7c4213b4cc0 100644
--- a/pkgs/development/tools/gllvm/default.nix
+++ b/pkgs/development/tools/gllvm/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "gllvm";
-  version = "1.2.6";
+  version = "1.2.7";
 
   goPackagePath = "github.com/SRI-CSL/gllvm";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "SRI-CSL";
     repo = "gllvm";
     rev = "v${version}";
-    sha256 = "0qzmrprc7npc0ln6mhkjrm8fgh2n94rdylixk11p6imxyx5fj3gg";
+    sha256 = "13cmmgbcdfgyxnxqfrn4m6vf0bhpday8lmrr3sm6rk48g77cq203";
   };
 
   meta = with stdenv.lib; {
@@ -18,6 +18,5 @@ buildGoPackage rec {
     description = "Whole Program LLVM: wllvm ported to go";
     license = licenses.bsd3;
     maintainers = with maintainers; [ dtzWill ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/go-bindata-assetfs/default.nix b/pkgs/development/tools/go-bindata-assetfs/default.nix
index ffdb2a092a0..30344a52e06 100644
--- a/pkgs/development/tools/go-bindata-assetfs/default.nix
+++ b/pkgs/development/tools/go-bindata-assetfs/default.nix
@@ -16,7 +16,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     description = "Serve embedded files from jteeuwen/go-bindata";
     license = licenses.bsd2;
-    platforms = platforms.all;
     maintainers = with maintainers; [ avnik ];
   };
 }
diff --git a/pkgs/development/tools/go-bindata/default.nix b/pkgs/development/tools/go-bindata/default.nix
index 9db1501f940..9256fab43bf 100644
--- a/pkgs/development/tools/go-bindata/default.nix
+++ b/pkgs/development/tools/go-bindata/default.nix
@@ -20,6 +20,5 @@ buildGoPackage {
     description = "A small utility which generates Go code from any file, useful for embedding binary data in a Go program";
     maintainers = with maintainers; [ cstrahan ];
     license = licenses.cc0;
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/go-junit-report/default.nix b/pkgs/development/tools/go-junit-report/default.nix
index 3c6cf7e3d83..96ebce0eaca 100644
--- a/pkgs/development/tools/go-junit-report/default.nix
+++ b/pkgs/development/tools/go-junit-report/default.nix
@@ -19,6 +19,5 @@ buildGoPackage rec {
     homepage    = "https://${goPackagePath}";
     maintainers = with maintainers; [ cryptix ];
     license     = licenses.mit;
-    platforms   = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/go-migrate/default.nix b/pkgs/development/tools/go-migrate/default.nix
new file mode 100644
index 00000000000..ee942beb92c
--- /dev/null
+++ b/pkgs/development/tools/go-migrate/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "go-migrate";
+  version = "4.12.2";
+
+  src = fetchFromGitHub {
+    owner = "golang-migrate";
+    repo = "migrate";
+    rev = "v${version}";
+    sha256 = "0vrc9y90aamj618sfipq2sgzllhdr4hmicj4yvl147klwb1rxlz6";
+  };
+
+  vendorSha256 = "0jpz5xvwsw4l7nmi7s1grvbfy4xjp50hrjycwicgv2ll719gz5v0";
+
+  subPackages = [ "cmd/migrate" ];
+
+  meta = with stdenv.lib; {
+    homepage    = "https://github.com/golang-migrate/migrate";
+    description = "Database migrations. CLI and Golang library.";
+    maintainers = with maintainers; [ offline ];
+    license     = licenses.mit;
+  };
+}
diff --git a/pkgs/development/tools/go-protobuf/default.nix b/pkgs/development/tools/go-protobuf/default.nix
index 62a75026920..28d429c6432 100644
--- a/pkgs/development/tools/go-protobuf/default.nix
+++ b/pkgs/development/tools/go-protobuf/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "04w9vhkrwb2zfqk73xmhignjyvjqmz1j93slkqp7v8jj2dhyla54";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage    = "https://github.com/golang/protobuf";
     description = " Go bindings for protocol buffer";
@@ -20,4 +22,4 @@ buildGoModule rec {
     license     = licenses.bsd3;
     platforms   = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/go-repo-root/default.nix b/pkgs/development/tools/go-repo-root/default.nix
index 7fcec1937c7..3392a19b636 100644
--- a/pkgs/development/tools/go-repo-root/default.nix
+++ b/pkgs/development/tools/go-repo-root/default.nix
@@ -4,7 +4,7 @@ buildGoPackage rec {
   pname = "go-repo-root";
   version = "20140911-${stdenv.lib.strings.substring 0 7 rev}";
   rev = "90041e5c7dc634651549f96814a452f4e0e680f9";
-  
+
   goPackagePath = "github.com/cstrahan/go-repo-root";
 
   src = fetchgit {
diff --git a/pkgs/development/tools/go-swagger/default.nix b/pkgs/development/tools/go-swagger/default.nix
index e2a0402348a..7f0a1a50b6d 100644
--- a/pkgs/development/tools/go-swagger/default.nix
+++ b/pkgs/development/tools/go-swagger/default.nix
@@ -2,19 +2,23 @@
 
 buildGoModule rec {
   pname = "go-swagger";
-  version = "0.24.0";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "go-swagger";
     repo = pname;
     rev = "v${version}";
-    sha256 = "051av25vnrcpvj9w6mqalwk7byw52m2dlh1m56y30xvm0ybbnayn";
+    sha256 = "05zyja58ff0k4fsfmb1j8q5p7lysi78m7jklrzz2xv8ianifkfbg";
   };
 
-  vendorSha256 = "020z4izc8i4yhbbr8h2fn8bqbis9q9yfcrjnixd6rsiayw1brh4p";
+  vendorSha256 = "0vvr167spwk7whqzdp5vd8sm0qwc5g3namm4iqw3vff2pifjgs40";
+
+  doCheck = false;
 
   subPackages = [ "cmd/swagger" ];
 
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/go-swagger/go-swagger/cmd/swagger/commands.Version=${version} -X github.com/go-swagger/go-swagger/cmd/swagger/commands.Commit=${src.rev}" ];
+
   meta = with lib; {
     description = "Golang implementation of Swagger 2.0, representation of your RESTful API";
     homepage = "https://github.com/go-swagger/go-swagger";
diff --git a/pkgs/development/tools/go-task/default.nix b/pkgs/development/tools/go-task/default.nix
new file mode 100644
index 00000000000..c196f167ce0
--- /dev/null
+++ b/pkgs/development/tools/go-task/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "go-task";
+  version = "2.8.1";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = "task";
+    rev = "v${version}";
+    sha256 = "1yf5s22q4hsxvgzrj4k6gbbq0whl5b9j12mbwimxaf53q535wy4q";
+  };
+
+  vendorSha256 = null;
+
+  doCheck = false;
+
+  subPackages = [ "cmd/task" ];
+
+  buildFlagsArray = [
+    "-ldflags=-s -w -X main.version=${version}"
+  ];
+
+  postInstall = ''
+    mv $out/bin/task $out/bin/go-task
+  '';
+
+  meta = with lib; {
+    homepage = "https://taskfile.dev/";
+    description = "A task runner / simpler Make alternative written in Go";
+    license = licenses.mit;
+    maintainers = with maintainers; [ parasrah ];
+  };
+}
diff --git a/pkgs/development/tools/go-tools/default.nix b/pkgs/development/tools/go-tools/default.nix
index 8362d1db02c..ec4b1ee66b3 100644
--- a/pkgs/development/tools/go-tools/default.nix
+++ b/pkgs/development/tools/go-tools/default.nix
@@ -5,21 +5,23 @@
 
 buildGoModule rec {
   pname = "go-tools";
-  version = "2020.1.4";
+  version = "2020.1.5";
 
   src = fetchFromGitHub {
     owner = "dominikh";
     repo = "go-tools";
     rev = version;
-    sha256 = "182j3zzx1bj4j4jiamqn49v9nd3vcrx727f7i9zgcrgmiscvw3mh";
+    sha256 = "1ry3ywncc9qkmh8ihh67v6k8nmqhq2gvfyrl1ykl4z6s56b7f9za";
   };
 
   vendorSha256 = "0nbbngsphklzhcmqafrw1im2l1vnfcma9sb4vskdpdrsadv5ss5r";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "A collection of tools and libraries for working with Go code, including linters and static analysis";
     homepage = "https://staticcheck.io";
     license = licenses.mit;
     maintainers = with maintainers; [ rvolosatovs kalbasit ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/gocode-gomod/default.nix b/pkgs/development/tools/gocode-gomod/default.nix
index 603568236e6..01ee2931c99 100644
--- a/pkgs/development/tools/gocode-gomod/default.nix
+++ b/pkgs/development/tools/gocode-gomod/default.nix
@@ -1,11 +1,8 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
-  pname = "gocode-gomod-unstable";
-  version = "2019-03-27";
-  rev = "81059208699789f992bb4a4a3fedd734e335468d";
-
-  goPackagePath = "github.com/stamblerre/gocode";
+buildGoModule rec {
+  pname = "gocode-gomod";
+  version = "1.0.0";
 
   # we must allow references to the original `go` package,
   # because `gocode` needs to dig into $GOROOT to provide completions for the
@@ -15,14 +12,13 @@ buildGoPackage rec {
   excludedPackages = ''internal/suggest/testdata'';
 
   src = fetchFromGitHub {
-    inherit rev;
-
     owner = "stamblerre";
     repo = "gocode";
-    sha256 = "0y5lc7sq3913mvvczwx8mq5l3l9yg34jzaw742q8jpd1jzqyza94";
+    rev = "v${version}";
+    sha256 = "YAOYrPPKgnjCErq8+iW0Le51clGBv0MJy2Nnn7UVo/s=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = null;
 
   postInstall = ''
     mv $out/bin/gocode $out/bin/gocode-gomod
@@ -44,7 +40,6 @@ buildGoPackage rec {
     '';
     homepage = "https://github.com/stamblerre/gocode";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ kalbasit rvolosatovs ];
   };
 }
diff --git a/pkgs/development/tools/gocode-gomod/deps.nix b/pkgs/development/tools/gocode-gomod/deps.nix
deleted file mode 100644
index ac966269706..00000000000
--- a/pkgs/development/tools/gocode-gomod/deps.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "78dc5bac0cacea7969e98b79c3b86597e0aa4e25";
-      sha256 = "16jg2x1sfm39kz4rchn0gxyq99fnkxw6v51wxriqbs76a2wrznp9";
-    };
-  }
-]
diff --git a/pkgs/development/tools/gocode/default.nix b/pkgs/development/tools/gocode/default.nix
index b4e9a8d43cb..f38d06b34c6 100644
--- a/pkgs/development/tools/gocode/default.nix
+++ b/pkgs/development/tools/gocode/default.nix
@@ -39,7 +39,6 @@ buildGoPackage rec {
     '';
     homepage = "https://github.com/mdempsky/gocode";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ kalbasit ];
   };
 }
diff --git a/pkgs/development/tools/godef/default.nix b/pkgs/development/tools/godef/default.nix
index a1dfac9b79b..c8149ecc82d 100644
--- a/pkgs/development/tools/godef/default.nix
+++ b/pkgs/development/tools/godef/default.nix
@@ -5,11 +5,12 @@ buildGoModule rec {
   version = "1.1.2";
   rev = "v${version}";
 
-  goPackagePath = "github.com/rogpeppe/godef";
   subPackages = [ "." ];
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   src = fetchFromGitHub {
     inherit rev;
     owner = "rogpeppe";
@@ -23,4 +24,4 @@ buildGoModule rec {
     maintainers = with stdenv.lib.maintainers; [ vdemeester rvolosatovs ];
     license = stdenv.lib.licenses.bsd3;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix
index 832d30ee8e8..0d35ce253b1 100644
--- a/pkgs/development/tools/godot/default.nix
+++ b/pkgs/development/tools/godot/default.nix
@@ -10,13 +10,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "godot";
-  version = "3.2.1";
+  version = "3.2.2";
 
   src = fetchFromGitHub {
     owner  = "godotengine";
     repo   = "godot";
     rev    = "${version}-stable";
-    sha256 = "1kndls0rklha7kz9l4i2ivjxab4jpk3b2j7dcgcg2qc3s81yd0r6";
+    sha256 = "1libz83mbyrkbbsmmi8z2rydv3ls0w9r4vb5v6diqqwn7ka8z804";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/tools/godot/dont_clobber_environment.patch b/pkgs/development/tools/godot/dont_clobber_environment.patch
index 3782aced1a4..b7c1d3d6233 100644
--- a/pkgs/development/tools/godot/dont_clobber_environment.patch
+++ b/pkgs/development/tools/godot/dont_clobber_environment.patch
@@ -1,16 +1,18 @@
-+++ build/SConstruct
-@@ -63,10 +63,10 @@ elif platform_arg == 'javascript':
-     custom_tools = ['cc', 'c++', 'ar', 'link', 'textfile', 'zip']
-
+diff --git a/SConstruct b/SConstruct
+index b3d033dc90..04b8dcc832 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -62,10 +62,9 @@ elif platform_arg == "javascript":
+     custom_tools = ["cc", "c++", "ar", "link", "textfile", "zip"]
+ 
  env_base = Environment(tools=custom_tools)
--if 'TERM' in os.environ:
--    env_base['ENV']['TERM'] = os.environ['TERM']
--env_base.AppendENVPath('PATH', os.getenv('PATH'))
--env_base.AppendENVPath('PKG_CONFIG_PATH', os.getenv('PKG_CONFIG_PATH'))
+-if "TERM" in os.environ:
+-    env_base["ENV"]["TERM"] = os.environ["TERM"]
+-env_base.AppendENVPath("PATH", os.getenv("PATH"))
+-env_base.AppendENVPath("PKG_CONFIG_PATH", os.getenv("PKG_CONFIG_PATH"))
 +for k in ("TERM", "PATH", "PKG_CONFIG_PATH"):
 +    if (k in os.environ):
 +        env_base["ENV"][k] = os.environ[k]
-+
  env_base.disabled_modules = []
  env_base.use_ptrcall = False
  env_base.module_version_string = ""
diff --git a/pkgs/development/tools/godot/headless.nix b/pkgs/development/tools/godot/headless.nix
new file mode 100644
index 00000000000..0ae28b774fb
--- /dev/null
+++ b/pkgs/development/tools/godot/headless.nix
@@ -0,0 +1,18 @@
+{ godot, stdenv }:
+godot.overrideAttrs (oldAttrs: rec {
+  pname = "godot-headless";
+  sconsFlags = "target=release_debug platform=server tools=yes";
+  installPhase = ''
+    mkdir -p "$out/bin"
+    cp bin/godot_server.* $out/bin/godot-headless
+
+    mkdir "$dev"
+    cp -r modules/gdnative/include $dev
+
+    mkdir -p "$man/share/man/man6"
+    cp misc/dist/linux/godot.6 "$man/share/man/man6/"
+  '';
+  meta.description =
+    "Free and Open Source 2D and 3D game engine (headless build)";
+  meta.maintainers = with stdenv.lib.maintainers; [ twey yusdacra ];
+})
diff --git a/pkgs/development/tools/godot/pkg_config_additions.patch b/pkgs/development/tools/godot/pkg_config_additions.patch
index 409baaa6f26..9e2e5c3536d 100644
--- a/pkgs/development/tools/godot/pkg_config_additions.patch
+++ b/pkgs/development/tools/godot/pkg_config_additions.patch
@@ -1,22 +1,25 @@
+diff --git a/platform/x11/detect.py b/platform/x11/detect.py
+index 5674e78350..7051d8e73c 100644
+--- a/platform/x11/detect.py
 +++ b/platform/x11/detect.py
-@@ -175,6 +175,11 @@ def configure(env):
-     env.ParseConfig('pkg-config xrender --cflags --libs')
-     env.ParseConfig('pkg-config xi --cflags --libs')
+@@ -201,6 +201,11 @@ def configure(env):
+     env.ParseConfig("pkg-config xrender --cflags --libs")
+     env.ParseConfig("pkg-config xi --cflags --libs")
  
-+    env.ParseConfig('pkg-config xext --cflags --libs')
-+    env.ParseConfig('pkg-config xfixes --cflags --libs')
-+    env.ParseConfig('pkg-config glu --cflags --libs')
-+    env.ParseConfig('pkg-config zlib --cflags --libs')
++    env.ParseConfig("pkg-config xext --cflags --libs")
++    env.ParseConfig("pkg-config xfixes --cflags --libs")
++    env.ParseConfig("pkg-config glu --cflags --libs")
++    env.ParseConfig("pkg-config zlib --cflags --libs")
 +
-     if (env['touch']):
-         env.Append(CPPFLAGS=['-DTOUCH_ENABLED'])
+     if env["touch"]:
+         env.Append(CPPDEFINES=["TOUCH_ENABLED"])
  
-@@ -264,7 +269,7 @@ def configure(env):
+@@ -299,7 +304,7 @@ def configure(env):
          print("Enabling ALSA")
-         env.Append(CPPFLAGS=["-DALSA_ENABLED", "-DALSAMIDI_ENABLED"])
- 	# Don't parse --cflags, we don't need to add /usr/include/alsa to include path
--        env.ParseConfig('pkg-config alsa --libs')
-+        env.ParseConfig('pkg-config alsa --cflags --libs')
+         env.Append(CPPDEFINES=["ALSA_ENABLED", "ALSAMIDI_ENABLED"])
+         # Don't parse --cflags, we don't need to add /usr/include/alsa to include path
+-        env.ParseConfig("pkg-config alsa --libs")
++        env.ParseConfig("pkg-config alsa --cflags --libs")
      else:
          print("ALSA libraries not found, disabling driver")
  
diff --git a/pkgs/development/tools/godot/server.nix b/pkgs/development/tools/godot/server.nix
new file mode 100644
index 00000000000..48f21b796c3
--- /dev/null
+++ b/pkgs/development/tools/godot/server.nix
@@ -0,0 +1,18 @@
+{ godot, stdenv }:
+godot.overrideAttrs (oldAttrs: rec {
+  pname = "godot-server";
+  sconsFlags = "target=release platform=server tools=no";
+  installPhase = ''
+    mkdir -p "$out/bin"
+    cp bin/godot_server.* $out/bin/godot-server
+
+    mkdir "$dev"
+    cp -r modules/gdnative/include $dev
+
+    mkdir -p "$man/share/man/man6"
+    cp misc/dist/linux/godot.6 "$man/share/man/man6/"
+  '';
+  meta.description =
+    "Free and Open Source 2D and 3D game engine (server build)";
+  meta.maintainers = with stdenv.lib.maintainers; [ twey yusdacra ];
+})
diff --git a/pkgs/development/tools/gofumpt/default.nix b/pkgs/development/tools/gofumpt/default.nix
index adb2ef463f7..080f4bd3305 100644
--- a/pkgs/development/tools/gofumpt/default.nix
+++ b/pkgs/development/tools/gofumpt/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "14a3p163xy861xb6x160wy15hzjc75n36jdyzaxl877i17shba8z";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "A stricter gofmt";
     homepage = "https://github.com/mvdan/gofumpt";
     license = licenses.bsd3;
     maintainers = with maintainers; [ rvolosatovs ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/gogetdoc/default.nix b/pkgs/development/tools/gogetdoc/default.nix
index 6898c998ef6..2a111a8d1ab 100644
--- a/pkgs/development/tools/gogetdoc/default.nix
+++ b/pkgs/development/tools/gogetdoc/default.nix
@@ -10,6 +10,8 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   excludedPackages = "\\(testdata\\)";
 
   src = fetchFromGitHub {
diff --git a/pkgs/development/tools/golangci-lint/default.nix b/pkgs/development/tools/golangci-lint/default.nix
index 256e5341556..cddd16f945f 100644
--- a/pkgs/development/tools/golangci-lint/default.nix
+++ b/pkgs/development/tools/golangci-lint/default.nix
@@ -1,24 +1,37 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule, fetchFromGitHub, lib, installShellFiles }:
 
 buildGoModule rec {
   pname = "golangci-lint";
-  version = "1.27.0";
+  version = "1.30.0";
 
   src = fetchFromGitHub {
     owner = "golangci";
     repo = "golangci-lint";
     rev = "v${version}";
-    sha256 = "1capiw8af4wmx3wpfslb30xivfyh72x5kj12f8p5pwhl6id31931";
+    sha256 = "1a2dmjg7mlm908zlh5vibqv17dpn6hvdn8rx14pdm9kw1q51iish";
   };
 
-  vendorSha256 = "16wr8ixicbvdpg5mg6q07sa1b03ydpwdbvbjl3r9qihdqkhhzlr1";
+  vendorSha256 = "0y18ws2lc9bynb8fi8q6kcc1ngvzyfxlmpqn7gc0hvj3ribdpwrd";
+
+  doCheck = false;
+
   subPackages = [ "cmd/golangci-lint" ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev} -X main.date=19700101-00:00:00" ];
+
+  postInstall = ''
+    for shell in bash zsh; do
+      HOME=$TMPDIR $out/bin/golangci-lint completion $shell > golangci-lint.$shell
+      installShellCompletion golangci-lint.$shell
+    done
+  '';
+
   meta = with lib; {
-    description = "Linters Runner for Go. 5x faster than gometalinter. Nice colored output.";
-    homepage = "https://golangci.com/";
-    license = licenses.agpl3;
-    platforms = platforms.unix;
+    description = "Fast linters Runner for Go";
+    homepage = "https://golangci-lint.run/";
+    license = licenses.gpl3;
     maintainers = with maintainers; [ anpryl manveru ];
   };
 }
diff --git a/pkgs/development/tools/golint/default.nix b/pkgs/development/tools/golint/default.nix
index b0b53f7699c..284bb32f89e 100644
--- a/pkgs/development/tools/golint/default.nix
+++ b/pkgs/development/tools/golint/default.nix
@@ -4,7 +4,7 @@ buildGoPackage rec {
   pname = "lint";
   version = "20181026-${stdenv.lib.strings.substring 0 7 rev}";
   rev = "c67002cb31c3a748b7688c27f20d8358b4193582";
-  
+
   goPackagePath = "golang.org/x/lint";
   excludedPackages = "testdata";
 
@@ -25,6 +25,5 @@ buildGoPackage rec {
     description = "Linter for Go source code";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jhillyerd ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/gomodifytags/default.nix b/pkgs/development/tools/gomodifytags/default.nix
index e90844167dd..cf2c5a5b9a6 100644
--- a/pkgs/development/tools/gomodifytags/default.nix
+++ b/pkgs/development/tools/gomodifytags/default.nix
@@ -6,7 +6,7 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
-  goPackagePath = "github.com/fatih/gomodifytags";
+  doCheck = false;
 
   src = fetchFromGitHub {
     owner = "fatih";
@@ -21,4 +21,4 @@ buildGoModule rec {
     maintainers = with stdenv.lib.maintainers; [ vdemeester ];
     license = stdenv.lib.licenses.bsd3;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/gopkgs/default.nix b/pkgs/development/tools/gopkgs/default.nix
index c1773333b5d..d112654ab43 100644
--- a/pkgs/development/tools/gopkgs/default.nix
+++ b/pkgs/development/tools/gopkgs/default.nix
@@ -4,8 +4,6 @@ buildGoModule rec {
   pname = "gopkgs";
   version = "2.1.2";
 
-  goPackagePath = "github.com/uudashr/gopkgs";
-
   subPackages = [ "cmd/gopkgs" ];
 
   src = fetchFromGitHub {
@@ -17,10 +15,12 @@ buildGoModule rec {
 
   vendorSha256 = "1pwsc488ldw039by8nqpni801zry7dnf0rx4hhd73xpv2w7s8n2r";
 
+  doCheck = false;
+
   meta = {
     description = "Tool to get list available Go packages.";
     homepage = "https://github.com/uudashr/gopkgs";
     maintainers = with stdenv.lib.maintainers; [ vdemeester ];
     license = stdenv.lib.licenses.mit;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/gopls/default.nix b/pkgs/development/tools/gopls/default.nix
index a77f9fa8ddd..4ce65518a85 100644
--- a/pkgs/development/tools/gopls/default.nix
+++ b/pkgs/development/tools/gopls/default.nix
@@ -1,22 +1,24 @@
-{ stdenv, go, buildGoModule, fetchgit }:
+{ stdenv, buildGoModule, fetchgit }:
 
 buildGoModule rec {
   pname = "gopls";
-  version = "0.4.1";
+  version = "0.4.4";
 
   src = fetchgit {
     rev = "gopls/v${version}";
     url = "https://go.googlesource.com/tools";
-    sha256 = "18migk7arxm8ysfzidl7mdr069fxym9bfi6zisj7dliczw0qnkzv";
+    sha256 = "1h4ica6rwrdp5wg4ybpzvyvszj4m5l6w9hpvd9r2qcd9qdnqlykf";
   };
 
   modRoot = "gopls";
-  vendorSha256 = "1jaav6c5vybgks5hc164is0i7h097c5l75s7w3wi5a3zyzkbiyny";
+  vendorSha256 = "175051d858lsdir2hj5qcimp6hakbi9grpws1ssvk3r2jna27x1z";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Official language server for the Go language";
     homepage = "https://github.com/golang/tools/tree/master/gopls";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ mic92 ];
+    maintainers = with maintainers; [ mic92 zimbatm ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/gore/default.nix b/pkgs/development/tools/gore/default.nix
index 92eeaeaeddb..fbc3152cef1 100644
--- a/pkgs/development/tools/gore/default.nix
+++ b/pkgs/development/tools/gore/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "3bq6sRKS5dq7WCPpKGm2q5gFajthR3zhrTFGve9zXhY=";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Yet another Go REPL that works nicely.";
     homepage = "https://github.com/motemen/gore";
diff --git a/pkgs/development/tools/gosec/default.nix b/pkgs/development/tools/gosec/default.nix
index f11a7fc35d6..ffbd98a4577 100644
--- a/pkgs/development/tools/gosec/default.nix
+++ b/pkgs/development/tools/gosec/default.nix
@@ -2,9 +2,7 @@
 
 buildGoModule rec {
   pname = "gosec";
-  version = "2.3.0";
-
-  goPackagePath = "github.com/securego/gosec";
+  version = "2.4.0";
 
   subPackages = [ "cmd/gosec" ];
 
@@ -12,10 +10,14 @@ buildGoModule rec {
     owner = "securego";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0z782rr4z0nhlj6cmjd17pbi65zabpmb83mv4y93wi4qa7kkpm2g";
+    sha256 = "0mqijzr3vj4wycykqpjz9xw9fhpbnzz988z2q3nldb5ax0pyrxca";
   };
 
-  vendorSha256 = "0zrmhqcid8xr6i1xxg3s8sll8a667w2vmn5asdw0b43k6k3h941p";
+  vendorSha256 = "063dpq1k5lykp18gshlgg098yvppicv3cz8gjn1mvfhac2rl9yqr";
+
+  doCheck = false;
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version} -X main.GitTag=${src.rev} -X main.BuildDate=unknown" ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/securego/gosec";
diff --git a/pkgs/development/tools/gotags/default.nix b/pkgs/development/tools/gotags/default.nix
index 881ae7e24d4..5499a22ec01 100644
--- a/pkgs/development/tools/gotags/default.nix
+++ b/pkgs/development/tools/gotags/default.nix
@@ -4,7 +4,7 @@ buildGoPackage rec {
   pname = "gotags";
   version = "20150803-${stdenv.lib.strings.substring 0 7 rev}";
   rev = "be986a34e20634775ac73e11a5b55916085c48e7";
-  
+
   goPackagePath = "github.com/jstemmer/gotags";
 
   src = fetchgit {
diff --git a/pkgs/development/tools/gotestsum/default.nix b/pkgs/development/tools/gotestsum/default.nix
index fc9fdee0b39..71bccc74ce6 100644
--- a/pkgs/development/tools/gotestsum/default.nix
+++ b/pkgs/development/tools/gotestsum/default.nix
@@ -2,19 +2,23 @@
 
 buildGoModule rec {
   pname = "gotestsum";
-  version = "0.5.1";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "gotestyourself";
     repo = "gotestsum";
     rev = "v${version}";
-    sha256 = "079cyk12r662z8njaawdqfjab1giy5xkjhln2rns03j5n67ixhgj";
+    sha256 = "1jq529m788yp3b6j4dhxgcw7qm1lyxx1ir2vwr41vp7gh17fmwar";
   };
 
   vendorSha256 = "1injixhllv41glb3yz276gjrkiwwkfimrhb367d2pvjpzqmhplan";
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
+  subPackages = [ "." ];
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/gotestyourself/gotestsum";
     description = "A human friendly `go test` runner";
@@ -22,4 +26,4 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ endocrimes ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/gotools/default.nix b/pkgs/development/tools/gotools/default.nix
index a7858474a42..0ab13411130 100644
--- a/pkgs/development/tools/gotools/default.nix
+++ b/pkgs/development/tools/gotools/default.nix
@@ -23,6 +23,8 @@ buildGoModule rec {
 
   vendorSha256 = "0pplmqxrnc8qnr5708igx4dm7rb0hicvhg6lh5hj8zkx38nb19s0";
 
+  doCheck = false;
+
   postConfigure = ''
     # Make the builtin tools available here
     mkdir -p $out/bin
@@ -47,4 +49,4 @@ buildGoModule rec {
   # Do not copy this without a good reason for enabling
   # In this case tools is heavily coupled with go itself and embeds paths.
   allowGoReference = true;
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/gox/default.nix b/pkgs/development/tools/gox/default.nix
index 7c800df0a6b..34e7d338318 100644
--- a/pkgs/development/tools/gox/default.nix
+++ b/pkgs/development/tools/gox/default.nix
@@ -16,7 +16,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     homepage = "https://github.com/mitchellh/gox";
     description = "A dead simple, no frills Go cross compile tool";
-    platforms = platforms.all;
     license = licenses.mpl20;
   };
 }
diff --git a/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix b/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix
new file mode 100644
index 00000000000..275aa7eb304
--- /dev/null
+++ b/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, containers, fetchgit, optparse-applicative
+, parsec, stdenv, text
+}:
+mkDerivation {
+  pname = "dconf2nix";
+  version = "0.0.5";
+  src = fetchgit {
+    url = "https://github.com/gvolpe/dconf2nix.git";
+    sha256 = "0immbx4bgfq3xmbbrpw441nx0sdpm4cp64s7qbvcbvllp4gbivpg";
+    rev = "848ff9966db21c66e61a19c04ab6dfc9270eb78e";
+    fetchSubmodules = true;
+  };
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    base containers optparse-applicative parsec text
+  ];
+  executableHaskellDepends = [ base ];
+  description = "Convert dconf files to Nix, as expected by Home Manager";
+  license = stdenv.lib.licenses.asl20;
+}
diff --git a/pkgs/development/tools/haskell/dconf2nix/default.nix b/pkgs/development/tools/haskell/dconf2nix/default.nix
new file mode 100644
index 00000000000..cfd391866ee
--- /dev/null
+++ b/pkgs/development/tools/haskell/dconf2nix/default.nix
@@ -0,0 +1,32 @@
+{ haskell, haskellPackages, lib, runCommand }:
+
+let
+  dconf2nix =
+    haskell.lib.justStaticExecutables
+      (haskell.lib.overrideCabal haskellPackages.dconf2nix (oldAttrs: {
+        maintainers = (oldAttrs.maintainers or []) ++ [
+          lib.maintainers.gvolpe
+        ];
+      }));
+in
+
+dconf2nix.overrideAttrs (oldAttrs: {
+  passthru = (oldAttrs.passthru or {}) // {
+    updateScript = ./update.sh;
+
+    # These tests can be run with the following command.
+    #
+    # $ nix-build -A dconf2nix.passthru.tests
+    tests =
+      runCommand
+        "dconf2nix-tests"
+        {
+          nativeBuildInputs = [
+            dconf2nix
+          ];
+        }
+        ''
+          dconf2nix > $out
+        '';
+  };
+})
diff --git a/pkgs/development/tools/haskell/dconf2nix/update.sh b/pkgs/development/tools/haskell/dconf2nix/update.sh
new file mode 100755
index 00000000000..8129824e256
--- /dev/null
+++ b/pkgs/development/tools/haskell/dconf2nix/update.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p cabal2nix curl jq
+#
+# This script will update the dconf2nix derivation to the latest version using
+# cabal2nix.
+
+set -eo pipefail
+
+# This is the directory of this update.sh script.
+script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+
+# dconf2nix derivation created with cabal2nix.
+dconf2nix_derivation_file="${script_dir}/dconf2nix.nix"
+
+# This is the current revision of dconf2nix in Nixpkgs.
+old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$dconf2nix_derivation_file")"
+
+# This is the latest release version of dconf2nix on GitHub.
+new_version=$(curl --silent "https://api.github.com/repos/gvolpe/dconf2nix/releases" | jq '.[0].tag_name' --raw-output)
+
+echo "Updating dconf2nix from old version $old_version to new version $new_version."
+echo "Running cabal2nix and outputting to ${dconf2nix_derivation_file}..."
+
+cabal2nix --revision "$new_version" "https://github.com/gvolpe/dconf2nix.git" > "$dconf2nix_derivation_file"
+
+echo "Finished."
diff --git a/pkgs/development/tools/haskell/haskell-language-server/default.nix b/pkgs/development/tools/haskell/haskell-language-server/default.nix
new file mode 100644
index 00000000000..c29ed6ce07e
--- /dev/null
+++ b/pkgs/development/tools/haskell/haskell-language-server/default.nix
@@ -0,0 +1,48 @@
+{ mkDerivation, aeson, base, binary, blaze-markup, brittany
+, bytestring, containers, data-default, deepseq, Diff, directory
+, extra, fetchgit, filepath, floskell, fourmolu, ghc, ghc-boot-th
+, ghc-paths, ghcide, gitrev, hashable, haskell-lsp
+, haskell-lsp-types, hie-bios, hslogger, hspec, hspec-core, lens
+, lsp-test, optparse-applicative, optparse-simple, ormolu, process
+, regex-tdfa, retrie, safe-exceptions, shake, stdenv, stm
+, stylish-haskell, tasty, tasty-ant-xml, tasty-expected-failure
+, tasty-golden, tasty-hunit, tasty-rerun, temporary, text, time
+, transformers, unix, unordered-containers, yaml
+}:
+mkDerivation {
+  pname = "haskell-language-server";
+  version = "0.4.0.0";
+  src = fetchgit {
+    url = "https://github.com/haskell/haskell-language-server.git";
+    sha256 = "157bsq6i824bl6krw7znp0byd8ibaqsq7mfwnkl741dmrflsxpa9";
+    rev = "cb861b878ae01911b066182ff0d8080050c3b2d6";
+    fetchSubmodules = true;
+  };
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    aeson base binary brittany bytestring containers data-default
+    deepseq Diff directory extra filepath floskell fourmolu ghc
+    ghc-boot-th ghcide gitrev hashable haskell-lsp hie-bios hslogger
+    lens optparse-simple ormolu process regex-tdfa retrie
+    safe-exceptions shake stylish-haskell temporary text time
+    transformers unix unordered-containers
+  ];
+  executableHaskellDepends = [
+    base binary containers data-default directory extra filepath ghc
+    ghc-paths ghcide gitrev hashable haskell-lsp hie-bios hslogger
+    optparse-applicative process safe-exceptions shake text time
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    aeson base blaze-markup bytestring containers data-default
+    directory filepath haskell-lsp haskell-lsp-types hie-bios hslogger
+    hspec hspec-core lens lsp-test process stm tasty tasty-ant-xml
+    tasty-expected-failure tasty-golden tasty-hunit tasty-rerun
+    temporary text transformers unordered-containers yaml
+  ];
+  testToolDepends = [ ghcide ];
+  homepage = "https://github.com/haskell/haskell-language-server#readme";
+  description = "LSP server for GHC";
+  license = stdenv.lib.licenses.asl20;
+}
diff --git a/pkgs/development/tools/haskell/haskell-language-server/hls-ghcide.nix b/pkgs/development/tools/haskell/haskell-language-server/hls-ghcide.nix
new file mode 100644
index 00000000000..c6a9b31fb73
--- /dev/null
+++ b/pkgs/development/tools/haskell/haskell-language-server/hls-ghcide.nix
@@ -0,0 +1,58 @@
+{ mkDerivation, aeson, array, async, base, base16-bytestring
+, binary, bytestring, Chart, Chart-diagrams, containers
+, cryptohash-sha1, data-default, deepseq, diagrams, diagrams-svg
+, directory, extra, fetchgit, filepath, fuzzy, ghc, ghc-boot
+, ghc-boot-th, ghc-check, ghc-paths, ghc-typelits-knownnat, gitrev
+, haddock-library, hashable, haskell-lsp, haskell-lsp-types
+, hie-bios, hslogger, lens, lsp-test, mtl, network-uri
+, opentelemetry, optparse-applicative, prettyprinter
+, prettyprinter-ansi-terminal, process, QuickCheck
+, quickcheck-instances, regex-tdfa, rope-utf16-splay, safe
+, safe-exceptions, shake, sorted-list, stdenv, stm, syb, tasty
+, tasty-expected-failure, tasty-hunit, tasty-quickcheck
+, tasty-rerun, text, time, transformers, unix, unordered-containers
+, utf8-string, yaml
+}:
+mkDerivation {
+  pname = "ghcide";
+  version = "0.2.0";
+  src = fetchgit {
+    url = "https://github.com/haskell/ghcide";
+    sha256 = "1zq7ngaak8il91a309rl51dghzasnk4m2sm3av6d93cyqyra1hfc";
+    rev = "078e3d3c0d319f83841ccbcdc60ff5f0e243f6be";
+    fetchSubmodules = true;
+  };
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    aeson array async base base16-bytestring binary bytestring
+    containers cryptohash-sha1 data-default deepseq directory extra
+    filepath fuzzy ghc ghc-boot ghc-boot-th ghc-check ghc-paths
+    haddock-library hashable haskell-lsp haskell-lsp-types hie-bios
+    hslogger mtl network-uri opentelemetry prettyprinter
+    prettyprinter-ansi-terminal regex-tdfa rope-utf16-splay safe
+    safe-exceptions shake sorted-list stm syb text time transformers
+    unix unordered-containers utf8-string
+  ];
+  executableHaskellDepends = [
+    aeson base bytestring containers data-default directory extra
+    filepath gitrev hashable haskell-lsp haskell-lsp-types hie-bios
+    lens lsp-test optparse-applicative process safe-exceptions text
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    aeson base binary bytestring containers directory extra filepath
+    ghc ghc-typelits-knownnat haddock-library haskell-lsp
+    haskell-lsp-types lens lsp-test network-uri optparse-applicative
+    process QuickCheck quickcheck-instances rope-utf16-splay safe
+    safe-exceptions shake tasty tasty-expected-failure tasty-hunit
+    tasty-quickcheck tasty-rerun text
+  ];
+  benchmarkHaskellDepends = [
+    aeson base Chart Chart-diagrams diagrams diagrams-svg directory
+    extra filepath shake text yaml
+  ];
+  homepage = "https://github.com/digital-asset/ghcide#readme";
+  description = "The core of an IDE";
+  license = stdenv.lib.licenses.asl20;
+}
diff --git a/pkgs/development/tools/haskell/haskell-language-server/update.sh b/pkgs/development/tools/haskell/haskell-language-server/update.sh
new file mode 100755
index 00000000000..2f2741e9a49
--- /dev/null
+++ b/pkgs/development/tools/haskell/haskell-language-server/update.sh
@@ -0,0 +1,53 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p cabal2nix jq curl
+#
+# This script will update the haskell-language-server derivation to the latest version using
+# cabal2nix.
+#
+# Note that you should always try building haskell-language-server after updating it here, since
+# some of the overrides in pkgs/development/haskell/configuration-nix.nix may
+# need to be updated/changed.
+
+set -eo pipefail
+
+# This is the directory of this update.sh script.
+script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+
+# ===========================
+# ghcide fork on https://github.com/wz1000/ghcide
+# ===========================
+
+# ghcide derivation created with cabal2nix.
+ghcide_derivation_file="${script_dir}/hls-ghcide.nix"
+
+# This is the current revision of hls in Nixpkgs.
+ghcide_old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$ghcide_derivation_file")"
+
+# This is the revision of ghcide used by hls on GitHub.
+ghcide_new_version=$(curl --silent "https://api.github.com/repos/haskell/haskell-language-server/contents/ghcide" | jq '.sha' --raw-output)
+
+echo "Updating haskell-language-server's ghcide from old version $ghcide_old_version to new version $ghcide_new_version."
+echo "Running cabal2nix and outputting to ${ghcide_derivation_file}..."
+
+cabal2nix --revision "$ghcide_new_version" "https://github.com/haskell/ghcide" > "$ghcide_derivation_file"
+
+
+# ===========================
+# HLS
+# ===========================
+
+# hls derivation created with cabal2nix.
+hls_derivation_file="${script_dir}/default.nix"
+
+# This is the current revision of hls in Nixpkgs.
+hls_old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$hls_derivation_file")"
+
+# This is the latest release version of hls on GitHub.
+hls_new_version=$(curl --silent "https://api.github.com/repos/haskell/haskell-language-server/commits/master" | jq '.sha' --raw-output)
+
+echo "Updating haskell-language-server from old version $hls_old_version to new version $hls_new_version."
+echo "Running cabal2nix and outputting to ${hls_derivation_file}..."
+
+cabal2nix --revision "$hls_new_version" "https://github.com/haskell/haskell-language-server.git" > "$hls_derivation_file"
+
+echo "Finished."
diff --git a/pkgs/development/tools/haskell/hyper-haskell/default.nix b/pkgs/development/tools/haskell/hyper-haskell/default.nix
index 7d99a5e9a57..df889d43d46 100644
--- a/pkgs/development/tools/haskell/hyper-haskell/default.nix
+++ b/pkgs/development/tools/haskell/hyper-haskell/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchFromGitHub, jshon, electron
+{ stdenv, fetchFromGitHub, jshon, electron_3
 , runtimeShell, hyper-haskell-server, extra-packages ? [] }:
 
 let
   binPath = stdenv.lib.makeBinPath ([ hyper-haskell-server ] ++ extra-packages);
-
+  electron = electron_3;
 in stdenv.mkDerivation rec {
   pname = "hyper-haskell";
   version = "0.1.0.2";
diff --git a/pkgs/development/tools/haskell/ihaskell/wrapper.nix b/pkgs/development/tools/haskell/ihaskell/wrapper.nix
index 9b33d6e0670..60f8c2ecb25 100644
--- a/pkgs/development/tools/haskell/ihaskell/wrapper.nix
+++ b/pkgs/development/tools/haskell/ihaskell/wrapper.nix
@@ -9,7 +9,7 @@ let
   ihaskellSh = writeScriptBin "ihaskell-notebook" ''
     #! ${stdenv.shell}
     export GHC_PACKAGE_PATH="$(echo ${ihaskellEnv}/lib/*/package.conf.d| tr ' ' ':'):$GHC_PACKAGE_PATH"
-    export PATH="${stdenv.lib.makeBinPath ([ ihaskellEnv jupyter ])}''${PATH:+':'}$PATH
+    export PATH="${stdenv.lib.makeBinPath ([ ihaskellEnv jupyter ])}''${PATH:+:}$PATH"
     ${ihaskellEnv}/bin/ihaskell install -l $(${ihaskellEnv}/bin/ghc --print-libdir) && ${jupyter}/bin/jupyter notebook
   '';
 in
diff --git a/pkgs/development/tools/hcloud/default.nix b/pkgs/development/tools/hcloud/default.nix
index 48be7c568d7..704477421ce 100644
--- a/pkgs/development/tools/hcloud/default.nix
+++ b/pkgs/development/tools/hcloud/default.nix
@@ -2,20 +2,20 @@
 
 buildGoModule rec {
   pname = "hcloud";
-  version = "1.17.0";
-
-  goPackagePath = "github.com/hetznercloud/cli";
+  version = "1.19.1";
 
   src = fetchFromGitHub {
     owner = "hetznercloud";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "1brqqcyyljkdd24ljx2qbr648ihhhmr8mq6gs90n63r59ci6ksch";
+    sha256 = "0iq04jfqvmwlm6947kzz4c3a33lvwxvj42z179rc3126b5v7bq54";
   };
 
   nativeBuildInputs = [ installShellFiles ];
 
-  vendorSha256 = "1m96j9cwqz2b67byf53qhgl3s0vfwaklj2pm8364qih0ilvifppj";
+  vendorSha256 = "1svwrb5wyz5d8fgx36bpypnfq4hmpfxyd197cla9wnqpbkia7n5r";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X github.com/hetznercloud/cli/cli.Version=${version}" ];
 
@@ -30,7 +30,6 @@ buildGoModule rec {
     description = "A command-line interface for Hetzner Cloud, a provider for cloud virtual private servers";
     homepage = "https://github.com/hetznercloud/cli";
     license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.all;
     maintainers = [ stdenv.lib.maintainers.zauberpony ];
   };
 }
diff --git a/pkgs/development/tools/icestorm/default.nix b/pkgs/development/tools/icestorm/default.nix
index 360f1dbdcf3..15ca059a880 100644
--- a/pkgs/development/tools/icestorm/default.nix
+++ b/pkgs/development/tools/icestorm/default.nix
@@ -11,7 +11,7 @@
 
 stdenv.mkDerivation rec {
   pname = "icestorm";
-  version = "2020.04.22";
+  version = "2020.08.19";
 
   passthru = rec {
     pythonPkg = if usePyPy then pypy3 else python3;
@@ -19,10 +19,10 @@ stdenv.mkDerivation rec {
   };
 
   src = fetchFromGitHub {
-    owner  = "cliffordwolf";
+    owner  = "YosysHQ";
     repo   = "icestorm";
-    rev    = "cd2610e0fa1c6a90e8e4e4cfe06db1b474e752bb";
-    sha256 = "05ckmmvgymr7vhrpnqsiafwm8z5rhc3h91v506lzi6jpjzcs23hj";
+    rev    = "da52117ccd5b4147f64dc7345357ec5439cd7543";
+    sha256 = "072bl3vmvb06ry0ci3b1sfjpm3iigb874khzja4azcai969ybp4k";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/tools/java/visualvm/default.nix b/pkgs/development/tools/java/visualvm/default.nix
index e55e71eeb4a..6cf97277bb5 100644
--- a/pkgs/development/tools/java/visualvm/default.nix
+++ b/pkgs/development/tools/java/visualvm/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchzip, lib, makeWrapper, makeDesktopItem, jdk, gawk }:
 
 stdenv.mkDerivation rec {
-  version = "2.0.2";
+  version = "2.0.4";
   pname = "visualvm";
 
   src = fetchzip {
     url = "https://github.com/visualvm/visualvm.src/releases/download/${version}/visualvm_${builtins.replaceStrings ["."] [""]  version}.zip";
-    sha256 = "19h5804izhdhdwbpyfbfqsjwmnabz2djbhkv7gvzs66jxc6q8mgx";
+    sha256 = "1ic6gjsw90j7pr1yyplmk1zc319ld49i6d4zlgs7mlz1m4bn5jv3";
   };
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/development/tools/jazzy/Gemfile.lock b/pkgs/development/tools/jazzy/Gemfile.lock
index bed539369ac..9f6050001cc 100644
--- a/pkgs/development/tools/jazzy/Gemfile.lock
+++ b/pkgs/development/tools/jazzy/Gemfile.lock
@@ -2,20 +2,20 @@ GEM
   remote: https://rubygems.org/
   specs:
     CFPropertyList (3.0.2)
-    activesupport (4.2.11.1)
+    activesupport (4.2.11.3)
       i18n (~> 0.7)
       minitest (~> 5.1)
       thread_safe (~> 0.3, >= 0.3.4)
       tzinfo (~> 1.1)
-    algoliasearch (1.27.1)
+    algoliasearch (1.27.3)
       httpclient (~> 2.8, >= 2.8.3)
       json (>= 1.5.1)
     atomos (0.1.3)
     claide (1.0.3)
-    cocoapods (1.9.1)
+    cocoapods (1.9.3)
       activesupport (>= 4.0.2, < 5)
       claide (>= 1.0.2, < 2.0)
-      cocoapods-core (= 1.9.1)
+      cocoapods-core (= 1.9.3)
       cocoapods-deintegrate (>= 1.0.3, < 2.0)
       cocoapods-downloader (>= 1.2.2, < 2.0)
       cocoapods-plugins (>= 1.0.0, < 2.0)
@@ -31,7 +31,7 @@ GEM
       nap (~> 1.0)
       ruby-macho (~> 1.4)
       xcodeproj (>= 1.14.0, < 2.0)
-    cocoapods-core (1.9.1)
+    cocoapods-core (1.9.3)
       activesupport (>= 4.0.2, < 6)
       algoliasearch (~> 1.0)
       concurrent-ruby (~> 1.1)
@@ -40,12 +40,12 @@ GEM
       netrc (~> 0.11)
       typhoeus (~> 1.0)
     cocoapods-deintegrate (1.0.4)
-    cocoapods-downloader (1.3.0)
+    cocoapods-downloader (1.4.0)
     cocoapods-plugins (1.0.0)
       nap
     cocoapods-search (1.0.0)
     cocoapods-stats (1.1.0)
-    cocoapods-trunk (1.4.1)
+    cocoapods-trunk (1.5.0)
       nap (>= 0.8, < 2.0)
       netrc (~> 0.11)
     cocoapods-try (1.2.0)
@@ -54,14 +54,14 @@ GEM
     escape (0.0.4)
     ethon (0.12.0)
       ffi (>= 1.3.0)
-    ffi (1.12.2)
+    ffi (1.13.1)
     fourflusher (2.3.1)
     fuzzy_match (2.0.4)
     gh_inspector (1.1.3)
     httpclient (2.8.3)
     i18n (0.9.5)
       concurrent-ruby (~> 1.0)
-    jazzy (0.13.3)
+    jazzy (0.13.5)
       cocoapods (~> 1.5)
       mustache (~> 1.1)
       open4
@@ -70,34 +70,34 @@ GEM
       sassc (~> 2.1)
       sqlite3 (~> 1.3)
       xcinvoke (~> 0.3.0)
-    json (2.3.0)
+    json (2.3.1)
     liferaft (0.0.6)
-    minitest (5.14.0)
+    minitest (5.14.1)
     molinillo (0.6.6)
     mustache (1.1.1)
-    nanaimo (0.2.6)
+    nanaimo (0.3.0)
     nap (1.1.0)
     netrc (0.11.0)
     open4 (1.3.4)
     redcarpet (3.5.0)
-    rouge (3.18.0)
+    rouge (3.21.0)
     ruby-macho (1.4.0)
-    sassc (2.3.0)
+    sassc (2.4.0)
       ffi (~> 1.9)
     sqlite3 (1.4.2)
     thread_safe (0.3.6)
-    typhoeus (1.3.1)
+    typhoeus (1.4.0)
       ethon (>= 0.9.0)
     tzinfo (1.2.7)
       thread_safe (~> 0.1)
     xcinvoke (0.3.0)
       liferaft (~> 0.0.6)
-    xcodeproj (1.16.0)
+    xcodeproj (1.17.1)
       CFPropertyList (>= 2.3.3, < 4.0)
       atomos (~> 0.1.3)
       claide (>= 1.0.2, < 2.0)
       colored2 (~> 3.1)
-      nanaimo (~> 0.2.6)
+      nanaimo (~> 0.3.0)
 
 PLATFORMS
   ruby
diff --git a/pkgs/development/tools/jazzy/gemset.nix b/pkgs/development/tools/jazzy/gemset.nix
index f4f9c8104d4..aa4492560b8 100644
--- a/pkgs/development/tools/jazzy/gemset.nix
+++ b/pkgs/development/tools/jazzy/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vbq7a805bfvyik2q3kl9s3r418f5qzvysqbz2cwy4hr7m2q4ir6";
+      sha256 = "0wp36wi3r3dscmcr0q6sbz13hr5h911c24ar7zrmmcy7p32ial2i";
       type = "gem";
     };
-    version = "4.2.11.1";
+    version = "4.2.11.3";
   };
   algoliasearch = {
     dependencies = ["httpclient" "json"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ayg8j3819ay2d8618jv32ca16fh8qsgjsiq9j32yd016c170nkj";
+      sha256 = "1z94dnx0rljsfa3k24i1nc0vf1nfk3bbk89nqc6n1ax25h4fs5sw";
       type = "gem";
     };
-    version = "1.27.1";
+    version = "1.27.3";
   };
   atomos = {
     groups = ["default"];
@@ -57,10 +57,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wxr81qy4jsbxl066nlfp8zlqk31i6fsmd7f01xmi9bv04990hrs";
+      sha256 = "0zqj1878izp34cn7552q2djs3zd4a5ylyv0af3yxbz34z0qllk60";
       type = "gem";
     };
-    version = "1.9.1";
+    version = "1.9.3";
   };
   cocoapods-core = {
     dependencies = ["activesupport" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "typhoeus"];
@@ -68,10 +68,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c1679fkyp06dwsh93r0ldzly9vc74g0br4jdngwvdl4g0j4fyzc";
+      sha256 = "0sn1561sdhq2bh35pmi9nhq1adjcgdkhxybd9pxcjs75zmqzpz13";
       type = "gem";
     };
-    version = "1.9.1";
+    version = "1.9.3";
   };
   cocoapods-deintegrate = {
     groups = ["default"];
@@ -88,10 +88,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08vn0pgcyn6w6fq5xjd7szv2h9s5rzl17kyidnd7fl5qdmzc9c54";
+      sha256 = "1j03hxvz3m82fwgx3jayw0y2iqm7zpacn88r6nfj2arkbjxmvjwz";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.4.0";
   };
   cocoapods-plugins = {
     dependencies = ["nap"];
@@ -126,10 +126,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vrwsgaq3nf7v3pwksgqy0mhswrp3ipczrc96vl3ii2pcc9ilwkw";
+      sha256 = "12c6028bmdwrbqcb49mr5qj1p3vcijnjqbsbzywfx1isp44j9mv5";
       type = "gem";
     };
-    version = "1.4.1";
+    version = "1.5.0";
   };
   cocoapods-try = {
     groups = ["default"];
@@ -183,10 +183,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.13.1";
   };
   fourflusher = {
     groups = ["default"];
@@ -243,20 +243,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1iv98hfmxf1vib63bq8l0wgx5n8kw2kmsj55y2vs04f2kcav3n4n";
+      sha256 = "1ysx3zq069mi1w69z0dqck9ss9iv18w8a2f6j663vqq6kn1b69dm";
       type = "gem";
     };
-    version = "0.13.3";
+    version = "0.13.5";
   };
   json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.3.1";
   };
   liferaft = {
     source = {
@@ -271,10 +271,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz";
+      sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
       type = "gem";
     };
-    version = "5.14.0";
+    version = "5.14.1";
   };
   molinillo = {
     groups = ["default"];
@@ -301,10 +301,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ajfyaqjw3dzykk612yw8sm21savfqy292hgps8h8l4lvxww1lz6";
+      sha256 = "0xi36h3f7nm8bc2k0b6svpda1lyank2gf872lxjbhw3h95hdrbma";
       type = "gem";
     };
-    version = "0.2.6";
+    version = "0.3.0";
   };
   nap = {
     source = {
@@ -345,10 +345,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1n9h0ls2a2zq0bcsw31wxci1wdxb8s3vglfadxpcs6b04vkf6nqq";
+      sha256 = "1agrrmj88k9jkk36ra1ml2c1jffpp595pkxmcla74ac9ia09vn3s";
       type = "gem";
     };
-    version = "3.18.0";
+    version = "3.21.0";
   };
   ruby-macho = {
     groups = ["default"];
@@ -366,10 +366,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qzfnvb8khvc6w2sn3k91mndc2w50xxx5c84jkr6xdxlmaq1a3kg";
+      sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.4.0";
   };
   sqlite3 = {
     groups = ["default"];
@@ -395,10 +395,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cni8b1idcp0dk8kybmxydadhfpaj3lbs99w5kjibv8bsmip2zi5";
+      sha256 = "1m22yrkmbj81rzhlny81j427qdvz57yk5wbcf3km0nf3bl6qiygz";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "1.4.0";
   };
   tzinfo = {
     dependencies = ["thread_safe"];
@@ -426,9 +426,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bkk8y6lzd86w9yx72hd1nil3fkk5f0v3il9vm554gzpl6dhc2bi";
+      sha256 = "0mv5rsbgwq4vzri31w2f1474arrsr5j69rdhklrci6jnjps8dmx9";
       type = "gem";
     };
-    version = "1.16.0";
+    version = "1.17.1";
   };
 }
\ No newline at end of file
diff --git a/pkgs/development/tools/jid/default.nix b/pkgs/development/tools/jid/default.nix
index e031159d37c..e6eef68ec6c 100644
--- a/pkgs/development/tools/jid/default.nix
+++ b/pkgs/development/tools/jid/default.nix
@@ -19,7 +19,6 @@ buildGoPackage rec {
     description = "A command-line tool to incrementally drill down JSON";
     homepage = "https://github.com/simeji/jid";
     license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.all;
     maintainers = with stdenv.lib.maintainers; [ stesie ];
   };
 }
diff --git a/pkgs/development/tools/jo/default.nix b/pkgs/development/tools/jo/default.nix
index 0dcd02eb618..8592e38de7f 100644
--- a/pkgs/development/tools/jo/default.nix
+++ b/pkgs/development/tools/jo/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jo";
-  version = "1.3";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner  = "jpmens";
     repo = "jo";
     rev = version;
-    sha256 ="11miqg0i83drwkn66b4333vhfdw62al11dyfgp30alg6pcab3icl";
+    sha256 ="1jnv3g38vaa66m83hqibyki31ii81xfpvjw6wgdv18ci3iwvsz3v";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/tools/just/default.nix b/pkgs/development/tools/just/default.nix
index 42ee4041f20..ebf44d9d699 100644
--- a/pkgs/development/tools/just/default.nix
+++ b/pkgs/development/tools/just/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "just";
-  version = "0.6.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "casey";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1sl235wr4fdsw0f0x7jynv6ljhvgis4d87xzpvjzajhdaappdp8d";
+    sha256 = "07fjixz8y5rxfwpyr1kiimnn27jhc20gacd17i0yvfcpy5qf8z5p";
   };
 
-  cargoSha256 = "0k3aqwvdm95403s279gkksklnikgyjpf5qvngsvsrm5xqda438jk";
+  cargoSha256 = "1zn0kiqi8p25lscjd661gczay631nwzadl36cfzqnbww6blayy1j";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -40,22 +40,12 @@ rustPlatform.buildRustPackage rec {
 
   # Skip "edit" when running "cargo test",
   # since this test case needs "cat".
-  checkPhase = ''
-    runHook preCheck
-    echo "Running cargo test --
-        --skip edit
-        ''${checkFlags} ''${checkFlagsArray+''${checkFlagsArray[@]}}"
-    cargo test -- \
-        --skip edit \
-        ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"}
-    runHook postCheck
-  '';
+  checkFlagsArray = [ "--skip=edit" ];
 
   meta = with stdenv.lib; {
     description = "A handy way to save and run project-specific commands";
     homepage = "https://github.com/casey/just";
     license = licenses.cc0;
     maintainers = with maintainers; [ xrelkd ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/k6/default.nix b/pkgs/development/tools/k6/default.nix
index 136b44bd843..bf4f83f9021 100644
--- a/pkgs/development/tools/k6/default.nix
+++ b/pkgs/development/tools/k6/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "k6";
-  version = "0.26.2";
+  version = "0.27.1";
 
   goPackagePath = "github.com/loadimpact/k6";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "loadimpact";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0s5haycpfnfyvxxhhm7205gzylsbjndx9f134f245p4xm5bxhxbf";
+    sha256 = "0ni7x64al49adzy6kwzxyi56w556qy34888hxsldjrnndlchc0vz";
   };
 
   subPackages = [ "./" ];
diff --git a/pkgs/development/tools/kafkacat/default.nix b/pkgs/development/tools/kafkacat/default.nix
index 5b67d4ddbc5..6e7db6b35c6 100644
--- a/pkgs/development/tools/kafkacat/default.nix
+++ b/pkgs/development/tools/kafkacat/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "kafkacat";
 
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "edenhill";
     repo = "kafkacat";
     rev = version;
-    sha256 = "0lf2pf3zqncd4a44h0mjm66qnw02k9kvz1hjkah6p6gp7mx3ksjv";
+    sha256 = "0z3bw00s269myfd1xqksjyznmgp74xfs09xqlq347adsgby3cmfs";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/tools/kcli/default.nix b/pkgs/development/tools/kcli/default.nix
index fece8c17cea..3a0fff71dc7 100644
--- a/pkgs/development/tools/kcli/default.nix
+++ b/pkgs/development/tools/kcli/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0whqrms5mc7v14p2h1jfvkawm30xaylivijlsghrsaq468qcgg15";
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   meta = with stdenv.lib; {
@@ -21,4 +23,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ cswank ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/kind/default.nix b/pkgs/development/tools/kind/default.nix
index f58303cae6f..6ea2c87f888 100644
--- a/pkgs/development/tools/kind/default.nix
+++ b/pkgs/development/tools/kind/default.nix
@@ -14,7 +14,9 @@ buildGoModule rec {
   };
 
   vendorSha256 = "1qvbm8v8yah6r6cw1cvdw79yiwxb2amzdkkzvzbwigy0j4bvn9mi";
-  goPackagePath = "sigs.k8s.io/kind";
+
+  doCheck = false;
+
   subPackages = [ "." ];
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/development/tools/knightos/kcc/default.nix b/pkgs/development/tools/knightos/kcc/default.nix
new file mode 100644
index 00000000000..49851dd0c07
--- /dev/null
+++ b/pkgs/development/tools/knightos/kcc/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, cmake, bison, flex, boost }:
+
+stdenv.mkDerivation rec {
+  pname = "kcc";
+
+  version = "4.0.0";
+
+  src = fetchFromGitHub {
+    owner = "KnightOS";
+    repo = "kcc";
+    rev = version;
+    sha256 = "1cd226nqbxq32mppkljavq1kb74jqfqns9r7fskszr42hbygynk4";
+  };
+
+  nativeBuildInputs = [ cmake bison flex ];
+
+  buildInputs = [ boost ];
+
+  meta = with stdenv.lib; {
+    homepage    = "https://knightos.org/";
+    description = "KnightOS C compiler";
+    license     = licenses.gpl2Plus;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/pkgs/development/tools/knightos/kimg/default.nix b/pkgs/development/tools/knightos/kimg/default.nix
new file mode 100644
index 00000000000..b6f490e1d9d
--- /dev/null
+++ b/pkgs/development/tools/knightos/kimg/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, asciidoc, pkg-config, imagemagick }:
+
+stdenv.mkDerivation rec {
+  pname = "kimg";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "KnightOS";
+    repo = "kimg";
+    rev = version;
+    sha256 = "00gj420m0jvhgm8kkslw8r69nl7r73bxrh6gqs2mx16ymcpkanpk";
+  };
+
+  nativeBuildInputs = [ cmake asciidoc pkg-config ];
+
+  buildInputs = [ imagemagick ];
+
+  hardeningDisable = [ "format" ];
+
+  meta = with stdenv.lib; {
+    homepage    = "https://knightos.org/";
+    description = "Converts image formats supported by ImageMagick to the KnightOS image format";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/pkgs/development/tools/knightos/kpack/default.nix b/pkgs/development/tools/knightos/kpack/default.nix
new file mode 100644
index 00000000000..96af43e6160
--- /dev/null
+++ b/pkgs/development/tools/knightos/kpack/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, cmake, asciidoc, libxslt, docbook_xsl }:
+
+stdenv.mkDerivation rec {
+  pname = "kpack";
+
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "KnightOS";
+    repo = "kpack";
+    rev = version;
+    sha256 = "0kakfbzdvq5ldv1gdzl473j73c9nfdyx4xzfkriglkrqmksqc329";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ asciidoc libxslt.bin docbook_xsl ];
+
+  hardeningDisable = [ "fortify" ];
+
+  meta = with stdenv.lib; {
+    homepage    = "https://knightos.org/";
+    description = "A tool to create or extract KnightOS packages";
+    license     = licenses.lgpl2Only;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/pkgs/development/tools/knightos/mkrom/default.nix b/pkgs/development/tools/knightos/mkrom/default.nix
new file mode 100644
index 00000000000..eec63f75e71
--- /dev/null
+++ b/pkgs/development/tools/knightos/mkrom/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, cmake, asciidoc }:
+
+stdenv.mkDerivation rec {
+  pname = "mkrom";
+  version = "unstable-2020-06-11";
+
+  src = fetchFromGitHub {
+    owner = "KnightOS";
+    repo = "mkrom";
+    rev = "7a735ecbe09409e74680a9dc1c50dd4db99a409f";
+    sha256 = "18h7a0fb5zb991iy9ljpknmk9qvl9nz3yh1zh5bm399rpxn4nzx3";
+  };
+
+  nativeBuildInputs = [
+    asciidoc
+    cmake
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  meta = with stdenv.lib; {
+    homepage    = "https://knightos.org/";
+    description = "Packages KnightOS distribution files into a ROM";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/pkgs/development/tools/knightos/scas/default.nix b/pkgs/development/tools/knightos/scas/default.nix
new file mode 100644
index 00000000000..ad21e68eed8
--- /dev/null
+++ b/pkgs/development/tools/knightos/scas/default.nix
@@ -0,0 +1,26 @@
+{ fetchFromGitHub, stdenv, cmake }:
+
+
+stdenv.mkDerivation rec {
+  pname = "scas";
+
+  version = "0.4.6";
+
+  src = fetchFromGitHub {
+    owner = "KnightOS";
+    repo = "scas";
+    rev = version;
+    sha256 = "1c6s9nivbwgv0f8n7j73h54ydgqw5dcpq8l752dfrnqg3kv3nn0h";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  hardeningDisable = [ "format" ];
+
+  meta = with stdenv.lib; {
+    homepage    = "https://knightos.org/";
+    description = "Assembler and linker for the Z80.";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/pkgs/development/tools/kubectx/default.nix b/pkgs/development/tools/kubectx/default.nix
index c11c7fcbc97..59a7c8300e2 100644
--- a/pkgs/development/tools/kubectx/default.nix
+++ b/pkgs/development/tools/kubectx/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "168hfdc2rfwpz2ls607bz5vsm1aw4brhwm8hmbiq1n1l2dn2dj0y";
 
+  doCheck = false;
+
   nativeBuildInputs = [ installShellFiles ];
 
   postInstall = ''
diff --git a/pkgs/development/tools/kubeprompt/default.nix b/pkgs/development/tools/kubeprompt/default.nix
index bac22169edf..51369bc1f91 100644
--- a/pkgs/development/tools/kubeprompt/default.nix
+++ b/pkgs/development/tools/kubeprompt/default.nix
@@ -15,17 +15,17 @@ buildGoModule rec {
     export buildFlagsArray+=(
       "-ldflags=
         -w -s
-        -X ${goPackagePath}/pkg/version.Version=${version}")
+        -X github.com/jlesquembre/kubeprompt/pkg/version.Version=${version}")
   '';
 
-  goPackagePath = "github.com/jlesquembre/kubeprompt";
   vendorSha256 = "089lfkvyf00f05kkmr935jbrddf2c0v7m2356whqnz7ad6a2whsi";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Kubernetes prompt";
     homepage = "https://github.com/jlesquembre/kubeprompt";
     license = licenses.epl20;
     maintainers = with maintainers; [ jlesquembre ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/kustomize/default.nix b/pkgs/development/tools/kustomize/default.nix
index e35cc1c8fbd..63a3c774668 100644
--- a/pkgs/development/tools/kustomize/default.nix
+++ b/pkgs/development/tools/kustomize/default.nix
@@ -1,29 +1,29 @@
-{ lib, buildGoModule, fetchFromGitHub, tree }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "kustomize";
-  version = "3.3.1";
-  # rev is the 3.3.1 commit, mainly for kustomize version command output
-  rev = "f2ac5a2d0df13c047fb20cbc12ef1a3b41ce2dad";
+  version = "3.8.1";
+  # rev is the 3.8.1 commit, mainly for kustomize version command output
+  rev = "6a50372dd5686df22750b0c729adaf369fbf193c";
 
-  buildFlagsArray = let t = "sigs.k8s.io/kustomize/v3/provenance"; in ''
-    -ldflags=
-      -s -X ${t}.version=${version}
-         -X ${t}.gitCommit=${rev}
-         -X ${t}.buildDate=unknown
-  '';
+  buildFlagsArray = let t = "sigs.k8s.io/kustomize/api/provenance"; in
+    ''
+      -ldflags=
+        -s -X ${t}.version=${version}
+           -X ${t}.gitCommit=${rev}
+    '';
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "0yxxz0b56r18w178y32s619zy8ci6l93c6vlzx11hhxhbw43f6v6";
+    rev = "kustomize/v${version}";
+    sha256 = "07zdp6xv8viwnaz1qacwhg82dlzcrgb8dls6yz9qk4qcnsk6badx";
   };
 
   # avoid finding test and development commands
   sourceRoot = "source/kustomize";
 
-  vendorSha256 = "06mf5zvxn10g5rqjpqv3afvhj9xmijbj8ag8pqcg1996s4rp4p7a";
+  vendorSha256 = "01ff3w4hwp4ynqhg8cplv0i2ixs811d2x2j6xbh1lslyyh3z3wc5";
 
   meta = with lib; {
     description = "Customization of kubernetes YAML configurations";
@@ -36,4 +36,4 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ carlosdagos vdemeester periklis zaninime ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/lattice-diamond/default.nix b/pkgs/development/tools/lattice-diamond/default.nix
index 1dea1440113..6720603b2e5 100644
--- a/pkgs/development/tools/lattice-diamond/default.nix
+++ b/pkgs/development/tools/lattice-diamond/default.nix
@@ -1,5 +1,5 @@
 { stdenv, rpmextract, patchelf, makeWrapper, file, requireFile, glib, zlib, 
-    freetype, fontconfig, xorg }:
+    freetype, fontconfig, xorg, libusb-compat-0_1 }:
 
 stdenv.mkDerivation {
   name = "diamond-3.10";
@@ -98,6 +98,7 @@ stdenv.mkDerivation {
   libPath = stdenv.lib.makeLibraryPath [
     glib zlib freetype fontconfig
     xorg.libSM xorg.libICE xorg.libXrender xorg.libXext xorg.libX11 xorg.libXt
+    libusb-compat-0_1
   ];
 
   meta = {
diff --git a/pkgs/development/tools/lazygit/default.nix b/pkgs/development/tools/lazygit/default.nix
index c3ae1eb30e8..a0bdfdb083d 100644
--- a/pkgs/development/tools/lazygit/default.nix
+++ b/pkgs/development/tools/lazygit/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "lazygit";
-  version = "0.20.4";
+  version = "0.22.1";
 
   goPackagePath = "github.com/jesseduffield/lazygit";
 
@@ -12,7 +12,7 @@ buildGoPackage rec {
     owner = "jesseduffield";
     repo = pname;
     rev = "v${version}";
-    sha256 = "134f04ybzgghm7ghyxair111aflmkjrbfj0bkxfp1w0a3jm6sfsk";
+    sha256 = "1jq093nsfh7xqvsjvaad9wvqd3rjrpyp5fl8qxwbhaj3sxx19v7g";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/leaps/default.nix b/pkgs/development/tools/leaps/default.nix
index 569ad6eb3cf..bb8673d4d56 100644
--- a/pkgs/development/tools/leaps/default.nix
+++ b/pkgs/development/tools/leaps/default.nix
@@ -14,7 +14,7 @@ buildGoPackage rec {
   };
 
   goDeps = ./deps.nix;
-  
+
   meta = {
     description = "A pair programming tool and library written in Golang";
     homepage = "https://github.com/jeffail/leaps/";
@@ -23,4 +23,3 @@ buildGoPackage rec {
     platforms = stdenv.lib.platforms.unix;
   };
 }
-
diff --git a/pkgs/development/tools/leaps/deps.nix b/pkgs/development/tools/leaps/deps.nix
index afaf42779b3..ee06659c72e 100644
--- a/pkgs/development/tools/leaps/deps.nix
+++ b/pkgs/development/tools/leaps/deps.nix
@@ -1,185 +1,165 @@
-
-  # file automatically generated from Gopkg.lock with https://github.com/nixcloud/dep2nix (golang dep)
-  [
-  
-    {
-      goPackagePath  = "github.com/Azure/go-autorest";
-      fetch = {
-        type = "git";
-        url = "https://github.com/Azure/go-autorest";
-        rev =  "fc3b03a2d2d1f43fad3007038bd16f044f870722";
-        sha256 = "1j6aqbizlpiqcywdsj4dy4i76g8fbqc7d61c22ppc9knw0968h4r";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/Jeffail/gabs";
-      fetch = {
-        type = "git";
-        url = "https://github.com/Jeffail/gabs";
-        rev =  "2a3aa15961d5fee6047b8151b67ac2f08ba2c48c";
-        sha256 = "1fx6fyl5x037viwlj319f3gsq749an17q5l6n2zvf3ny5wq0iqxr";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/amir/raidman";
-      fetch = {
-        type = "git";
-        url = "https://github.com/amir/raidman";
-        rev =  "1ccc43bfb9c93cb401a4025e49c64ba71e5e668b";
-        sha256 = "074ckbyslrwn23q4x01hn3j7c3xngagn36lbli2g51n9j3x14jxr";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/azure/azure-sdk-for-go";
-      fetch = {
-        type = "git";
-        url = "https://github.com/azure/azure-sdk-for-go";
-        rev =  "21b68149ccf7c16b3f028bb4c7fd0ab458fe308f";
-        sha256 = "0zlhrh3n9mc5w7r0sdaqmpqfm2d290b50an0k1bvrr892m4cnxaq";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/cenkalti/backoff";
-      fetch = {
-        type = "git";
-        url = "https://github.com/cenkalti/backoff";
-        rev =  "61153c768f31ee5f130071d08fc82b85208528de";
-        sha256 = "08x77mgb9zsj047n74rx6c16jjx985lmy4s6fl58mdgxgxjv54y5";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/dgrijalva/jwt-go";
-      fetch = {
-        type = "git";
-        url = "https://github.com/dgrijalva/jwt-go";
-        rev =  "dbeaa9332f19a944acb5736b4456cfcc02140e29";
-        sha256 = "0zk6l6kzsjdijfn7c4h0aywdjx5j2hjwi67vy1k6wr46hc8ks2hs";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/elazarl/go-bindata-assetfs";
-      fetch = {
-        type = "git";
-        url = "https://github.com/elazarl/go-bindata-assetfs";
-        rev =  "30f82fa23fd844bd5bb1e5f216db87fd77b5eb43";
-        sha256 = "1swfb37g6sga3awvcmxf49ngbpvjv7ih5an9f8ixjqcfcwnb7nzp";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/garyburd/redigo";
-      fetch = {
-        type = "git";
-        url = "https://github.com/garyburd/redigo";
-        rev =  "d1ed5c67e5794de818ea85e6b522fda02623a484";
-        sha256 = "0gw18k9kg93hvdks93hckrdqppg1bav82sp2c98q6z36dkvaih24";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/go-sql-driver/mysql";
-      fetch = {
-        type = "git";
-        url = "https://github.com/go-sql-driver/mysql";
-        rev =  "a0583e0143b1624142adab07e0e97fe106d99561";
-        sha256 = "1rw1m91dpm23s6nn6jc4zi6rq2mgl7zx07gyadrdn0sh7cj8c89d";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/golang/protobuf";
-      fetch = {
-        type = "git";
-        url = "https://github.com/golang/protobuf";
-        rev =  "925541529c1fa6821df4e44ce2723319eb2be768";
-        sha256 = "1d3zjvhl115l23xakj0014qpjchivlg098h10v5nfirkk1i9f9sa";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/gorilla/websocket";
-      fetch = {
-        type = "git";
-        url = "https://github.com/gorilla/websocket";
-        rev =  "ea4d1f681babbce9545c9c5f3d5194a789c89f5b";
-        sha256 = "1bhgs2542qs49p1dafybqxfs2qc072xv41w5nswyrknwyjxxs2a1";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/kardianos/osext";
-      fetch = {
-        type = "git";
-        url = "https://github.com/kardianos/osext";
-        rev =  "ae77be60afb1dcacde03767a8c37337fad28ac14";
-        sha256 = "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/lib/pq";
-      fetch = {
-        type = "git";
-        url = "https://github.com/lib/pq";
-        rev =  "88edab0803230a3898347e77b474f8c1820a1f20";
-        sha256 = "02y7c8xy33x5q4167x2drzrys41nfi7wxxp9hy4vpazfws88al9p";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/marstr/guid";
-      fetch = {
-        type = "git";
-        url = "https://github.com/marstr/guid";
-        rev =  "8bdf7d1a087ccc975cf37dd6507da50698fd19ca";
-        sha256 = "1mxcigzfc1bbh5b616hm89bp06allhwcsas9v9lks235h0acgn4x";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/satori/go.uuid";
-      fetch = {
-        type = "git";
-        url = "https://github.com/satori/go.uuid";
-        rev =  "f58768cc1a7a7e77a3bd49e98cdd21419399b6a3";
-        sha256 = "1j4s5pfg2ldm35y8ls8jah4dya2grfnx2drb4jcbjsyrp4cm5yfb";
-      };
-    }
-    
-    {
-      goPackagePath  = "golang.org/x/net";
-      fetch = {
-        type = "git";
-        url = "https://go.googlesource.com/net";
-        rev =  "cbe0f9307d0156177f9dd5dc85da1a31abc5f2fb";
-        sha256 = "1hmpqkxh97ayyy0xcdvf1bwirwja4wyin3sh0fzjlh93aqmqgylf";
-      };
-    }
-    
-    {
-      goPackagePath  = "gopkg.in/alexcesaro/statsd.v2";
-      fetch = {
-        type = "git";
-        url = "https://gopkg.in/alexcesaro/statsd.v2";
-        rev =  "7fea3f0d2fab1ad973e641e51dba45443a311a90";
-        sha256 = "02jdx68vicwsgabrnwgg1rvc45rinyh8ikinqgbqc56c5hkx3brj";
-      };
-    }
-    
-    {
-      goPackagePath  = "gopkg.in/yaml.v2";
-      fetch = {
-        type = "git";
-        url = "https://gopkg.in/yaml.v2";
-        rev =  "d670f9405373e636a5a2765eea47fac0c9bc91a4";
-        sha256 = "1w1xid51n8v1mydn2m3vgggw8qgpd5a5sr62snsc77d99fpjsrs0";
-      };
-    }
-    
-]
\ No newline at end of file
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "github.com/Azure/go-autorest";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Azure/go-autorest";
+      rev =  "fc3b03a2d2d1f43fad3007038bd16f044f870722";
+      sha256 = "1j6aqbizlpiqcywdsj4dy4i76g8fbqc7d61c22ppc9knw0968h4r";
+    };
+  }
+  {
+    goPackagePath  = "github.com/Jeffail/gabs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Jeffail/gabs";
+      rev =  "2a3aa15961d5fee6047b8151b67ac2f08ba2c48c";
+      sha256 = "1fx6fyl5x037viwlj319f3gsq749an17q5l6n2zvf3ny5wq0iqxr";
+    };
+  }
+  {
+    goPackagePath  = "github.com/amir/raidman";
+    fetch = {
+      type = "git";
+      url = "https://github.com/amir/raidman";
+      rev =  "1ccc43bfb9c93cb401a4025e49c64ba71e5e668b";
+      sha256 = "074ckbyslrwn23q4x01hn3j7c3xngagn36lbli2g51n9j3x14jxr";
+    };
+  }
+  {
+    goPackagePath  = "github.com/azure/azure-sdk-for-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/azure/azure-sdk-for-go";
+      rev =  "21b68149ccf7c16b3f028bb4c7fd0ab458fe308f";
+      sha256 = "0zlhrh3n9mc5w7r0sdaqmpqfm2d290b50an0k1bvrr892m4cnxaq";
+    };
+  }
+  {
+    goPackagePath  = "github.com/cenkalti/backoff";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cenkalti/backoff";
+      rev =  "61153c768f31ee5f130071d08fc82b85208528de";
+      sha256 = "08x77mgb9zsj047n74rx6c16jjx985lmy4s6fl58mdgxgxjv54y5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/dgrijalva/jwt-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dgrijalva/jwt-go";
+      rev =  "dbeaa9332f19a944acb5736b4456cfcc02140e29";
+      sha256 = "0zk6l6kzsjdijfn7c4h0aywdjx5j2hjwi67vy1k6wr46hc8ks2hs";
+    };
+  }
+  {
+    goPackagePath  = "github.com/elazarl/go-bindata-assetfs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/elazarl/go-bindata-assetfs";
+      rev =  "30f82fa23fd844bd5bb1e5f216db87fd77b5eb43";
+      sha256 = "1swfb37g6sga3awvcmxf49ngbpvjv7ih5an9f8ixjqcfcwnb7nzp";
+    };
+  }
+  {
+    goPackagePath  = "github.com/garyburd/redigo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/garyburd/redigo";
+      rev =  "d1ed5c67e5794de818ea85e6b522fda02623a484";
+      sha256 = "0gw18k9kg93hvdks93hckrdqppg1bav82sp2c98q6z36dkvaih24";
+    };
+  }
+  {
+    goPackagePath  = "github.com/go-sql-driver/mysql";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-sql-driver/mysql";
+      rev =  "a0583e0143b1624142adab07e0e97fe106d99561";
+      sha256 = "1rw1m91dpm23s6nn6jc4zi6rq2mgl7zx07gyadrdn0sh7cj8c89d";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev =  "925541529c1fa6821df4e44ce2723319eb2be768";
+      sha256 = "1d3zjvhl115l23xakj0014qpjchivlg098h10v5nfirkk1i9f9sa";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gorilla/websocket";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/websocket";
+      rev =  "ea4d1f681babbce9545c9c5f3d5194a789c89f5b";
+      sha256 = "1bhgs2542qs49p1dafybqxfs2qc072xv41w5nswyrknwyjxxs2a1";
+    };
+  }
+  {
+    goPackagePath  = "github.com/kardianos/osext";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kardianos/osext";
+      rev =  "ae77be60afb1dcacde03767a8c37337fad28ac14";
+      sha256 = "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/lib/pq";
+    fetch = {
+      type = "git";
+      url = "https://github.com/lib/pq";
+      rev =  "88edab0803230a3898347e77b474f8c1820a1f20";
+      sha256 = "02y7c8xy33x5q4167x2drzrys41nfi7wxxp9hy4vpazfws88al9p";
+    };
+  }
+  {
+    goPackagePath  = "github.com/marstr/guid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/marstr/guid";
+      rev =  "8bdf7d1a087ccc975cf37dd6507da50698fd19ca";
+      sha256 = "1mxcigzfc1bbh5b616hm89bp06allhwcsas9v9lks235h0acgn4x";
+    };
+  }
+  {
+    goPackagePath  = "github.com/satori/go.uuid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/satori/go.uuid";
+      rev =  "f58768cc1a7a7e77a3bd49e98cdd21419399b6a3";
+      sha256 = "1j4s5pfg2ldm35y8ls8jah4dya2grfnx2drb4jcbjsyrp4cm5yfb";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "cbe0f9307d0156177f9dd5dc85da1a31abc5f2fb";
+      sha256 = "1hmpqkxh97ayyy0xcdvf1bwirwja4wyin3sh0fzjlh93aqmqgylf";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/alexcesaro/statsd.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alexcesaro/statsd";
+      rev =  "7fea3f0d2fab1ad973e641e51dba45443a311a90";
+      sha256 = "02jdx68vicwsgabrnwgg1rvc45rinyh8ikinqgbqc56c5hkx3brj";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-yaml/yaml";
+      rev =  "d670f9405373e636a5a2765eea47fac0c9bc91a4";
+      sha256 = "1w1xid51n8v1mydn2m3vgggw8qgpd5a5sr62snsc77d99fpjsrs0";
+    };
+  }
+]
diff --git a/pkgs/development/tools/metals/default.nix b/pkgs/development/tools/metals/default.nix
index 5f4af626877..caee8058f0f 100644
--- a/pkgs/development/tools/metals/default.nix
+++ b/pkgs/development/tools/metals/default.nix
@@ -1,10 +1,11 @@
 { stdenv, lib, coursier, jdk, jre, makeWrapper }:
 
-let
-  baseName = "metals";
-  version = "0.9.0";
+stdenv.mkDerivation rec {
+  pname = "metals";
+  version = "0.9.3";
+
   deps = stdenv.mkDerivation {
-    name = "${baseName}-deps-${version}";
+    name = "${pname}-deps-${version}";
     buildCommand = ''
       export COURSIER_CACHE=$(pwd)
       ${coursier}/bin/coursier fetch org.scalameta:metals_2.12:${version} \
@@ -15,11 +16,8 @@ let
     '';
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = "116q2jzqlmdhkqvjg31b9ib8w1k7rlr8gmjcr7z32idpn16hqg59";
+    outputHash     = "0mr0pxicka4qd0cn002g5r80dyg59164czyb0r7012l0q1xighz2";
   };
-in
-stdenv.mkDerivation rec {
-  name = "${baseName}-${version}";
 
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ jdk deps ];
diff --git a/pkgs/development/tools/micronaut/default.nix b/pkgs/development/tools/micronaut/default.nix
index 6d9149d4107..5d032d42108 100644
--- a/pkgs/development/tools/micronaut/default.nix
+++ b/pkgs/development/tools/micronaut/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "micronaut";
-  version = "1.3.6";
+  version = "1.3.7";
 
   src = fetchzip {
     url = "https://github.com/micronaut-projects/micronaut-core/releases/download/v${version}/${pname}-${version}.zip";
-    sha256 = "0jmj5xpj4invvpp289gh81vq7b4mmfhqb2h50yjn7wgdicyn295a";
+    sha256 = "1f9fhp10fdm18g33kxl70l6l3x1k8p81h2c3zahjmhlg0sam78zw";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/pkgs/development/tools/minizinc/default.nix b/pkgs/development/tools/minizinc/default.nix
index 6dfe0f570f9..308343c1ec6 100644
--- a/pkgs/development/tools/minizinc/default.nix
+++ b/pkgs/development/tools/minizinc/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, cmake, flex, bison }:
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, flex, bison }:
 let
-  version = "2.2.3";
+  version = "2.4.3";
 in
 stdenv.mkDerivation {
   pname = "minizinc";
@@ -11,10 +11,19 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "MiniZinc";
     repo = "libminizinc";
-    rev = "3d66971a0cad6edbe796f4dd940229d38e5bfe3d"; # tags on the repo are disappearing: See https://github.com/MiniZinc/libminizinc/issues/257
-    sha256 = "1q31y9131aj2lsm34srm8i1s0271qcaaknzvym3r8awynm14saq5";
+    rev = version;
+    sha256 = "0mahf621zwwywimly5nd6j39j7qr48k5p7zwpfqnjq4wn010mbf8";
   };
 
+  patches = [
+    # Fix build with newer Bison versions:
+    # https://github.com/MiniZinc/libminizinc/issues/389
+    (fetchpatch {
+      url = "https://github.com/MiniZinc/libminizinc/commit/d3136f6f198d3081943c17ac6890dbe14a81d112.diff";
+      sha256 = "1f4wxn9422ndgq6dd0vqdxm2313srm7gn9nh82aas2xijdxlmz2c";
+    })
+  ];
+
   meta = with stdenv.lib; {
     homepage = "https://www.minizinc.org/";
     description = "MiniZinc is a medium-level constraint modelling language.";
diff --git a/pkgs/development/tools/misc/act/default.nix b/pkgs/development/tools/misc/act/default.nix
index e10ad15fff7..3864337badf 100644
--- a/pkgs/development/tools/misc/act/default.nix
+++ b/pkgs/development/tools/misc/act/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "act";
-  version = "0.2.10";
+  version = "0.2.13";
 
   src = fetchFromGitHub {
     owner = "nektos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0xmrb8wbxkb52l2c7fxxy5wa9lsl591fl65zicv0nrbil36q4wfd";
+    sha256 = "112vmq9wg31alw9lw1jmsdvkd7kz1d9ak4p9dli7vgr9rhdf0hnb";
   };
 
-  vendorSha256 = "0qf26g0a2j1mbzlc7xjackww22w9bl1x0iw3q1x6kq7fp8xiwhdn";
+  vendorSha256 = "0bcrw3hf92m7n58lrlm0vj1wiwwy82q2rl1a725q3d6xwvi5kh9h";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
diff --git a/pkgs/development/tools/misc/arcanist/default.nix b/pkgs/development/tools/misc/arcanist/default.nix
index a6265ba89d0..fcddf1d0cac 100644
--- a/pkgs/development/tools/misc/arcanist/default.nix
+++ b/pkgs/development/tools/misc/arcanist/default.nix
@@ -1,53 +1,54 @@
-{ stdenv, fetchFromGitHub, php, flex, makeWrapper }:
+{ stdenv, fetchFromGitHub, php, flex }:
+
+# Make a custom wrapper. If `wrapProgram` is used, arcanist thinks .arc-wrapped is being
+# invoked and complains about it being an unknown toolset. We could use `makeWrapper`, but
+# then we’d need to still craft a script that does the `php libexec/arcanist/bin/...` dance
+# anyway... So just do everything at once.
+let makeArcWrapper = toolset: ''
+    cat << WRAPPER > $out/bin/${toolset}
+    #!$shell -e
+    export PATH='${php}/bin/'\''${PATH:+':'}\$PATH
+    exec ${php}/bin/php $out/libexec/arcanist/bin/${toolset} "\$@"
+    WRAPPER
+    chmod +x $out/bin/${toolset}
+'';
 
-let
-  libphutil = fetchFromGitHub {
-    owner = "phacility";
-    repo = "libphutil";
-    rev = "cc2a3dbf590389400da55563cb6993f321ec6d73";
-    sha256 = "1k7sr3racwz845i7r5kdwvgqrz8gldz07pxj3yw77s58rqbix3ad";
-  };
-  arcanist = fetchFromGitHub {
-    owner = "phacility";
-    repo = "arcanist";
-    rev = "21a1828ea06cf031e93082db8664d73efc88290a";
-    sha256 = "05rq9l9z7446ks270viay57r5ibx702b5bnlf4ck529zc4abympx";
-  };
 in
+
 stdenv.mkDerivation {
   pname = "arcanist";
-  version = "20200127";
-
-  src = [ arcanist libphutil ];
-  buildInputs = [ php makeWrapper flex ];
+  version = "20200711";
 
-  unpackPhase = ''
-    cp -aR ${libphutil} libphutil
-    cp -aR ${arcanist} arcanist
-    chmod +w -R libphutil arcanist
-  '';
+  src = fetchFromGitHub {
+    owner = "phacility";
+    repo = "arcanist";
+    rev = "2565cc7b4d1dbce6bc7a5b3c4e72ae94be4712fe";
+    sha256 = "0jiv4aj4m5750dqw9r8hizjkwiyxk4cg4grkr63sllsa2dpiibxw";
+  };
+  buildInputs = [ php flex ];
 
   postPatch = stdenv.lib.optionalString stdenv.isAarch64 ''
-    substituteInPlace libphutil/support/xhpast/Makefile \
+    substituteInPlace support/xhpast/Makefile \
       --replace "-minline-all-stringops" ""
   '';
 
   buildPhase = ''
-    (
-      cd libphutil/support/xhpast
-      make clean all install
-    )
+    make xhpast -C support/xhpast
   '';
+
   installPhase = ''
     mkdir -p $out/bin $out/libexec
-    cp -R libphutil $out/libexec/libphutil
-    cp -R arcanist  $out/libexec/arcanist
-    ${if stdenv.isDarwin then ''
-        echo "#! $shell -e" > $out/bin/arc
-        echo "exec ${php}/bin/php $out/libexec/arcanist/scripts/arcanist.php "'"$@"' >> $out/bin/arc
-        chmod +x $out/bin/arc''
-      else ''
-        ln -s $out/libexec/arcanist/scripts/arcanist.php $out/bin/arc''}
+    make install -C support/xhpast
+    cp -R $src $out/libexec/arcanist
+
+    ${makeArcWrapper "arc"}
+    ${makeArcWrapper "phage"}
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/arc help diff -- > /dev/null
+    $out/bin/phage help alias -- > /dev/null
   '';
 
   meta = {
diff --git a/pkgs/development/tools/misc/argbash/default.nix b/pkgs/development/tools/misc/argbash/default.nix
index 0cc25ddf20b..fc1d3550e82 100644
--- a/pkgs/development/tools/misc/argbash/default.nix
+++ b/pkgs/development/tools/misc/argbash/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "argbash";
 
-  version = "2.8.1";
+  version = "2.9.0";
 
   src = fetchFromGitHub {
     owner = "matejak";
     repo = "argbash";
     rev = "${version}";
-    sha256 = "0zara7v3pnwiwkpb0x0g37pxhmim4425q4gba712f6djj115r1mr";
+    sha256 = "1h6kw510r43b6d6rjhkhw4d67nc7grak4mgqs9ngjjv07qj3qfqc";
   };
 
   sourceRoot = "source/resources";
diff --git a/pkgs/development/tools/misc/asls/default.nix b/pkgs/development/tools/misc/asls/default.nix
new file mode 100644
index 00000000000..5b53456deac
--- /dev/null
+++ b/pkgs/development/tools/misc/asls/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, fetchurl
+, erlangR22
+}:
+
+stdenv.mkDerivation rec {
+  pname = "asls";
+  version = "0.5.0";
+
+  src = fetchurl {
+    url = "https://github.com/saulecabrera/asls/releases/download/v${version}/bin.tar.gz";
+    sha256 = "1h6r2lbf54aylzmbiy74ys42fhjv9q824bdrcp40gxx1v2yjc5h5";
+  };
+
+  buildInputs = [ erlangR22 ];
+  installPhase = "install -Dm755 -t $out/bin asls";
+
+  meta = with stdenv.lib; {
+    description = "AssemblyScript Language Server";
+    homepage = "https://github.com/saulecabrera/asls";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ saulecabrera ];
+  };
+}
diff --git a/pkgs/development/tools/misc/autoconf/default.nix b/pkgs/development/tools/misc/autoconf/default.nix
index 500d80d4bb8..93add837290 100644
--- a/pkgs/development/tools/misc/autoconf/default.nix
+++ b/pkgs/development/tools/misc/autoconf/default.nix
@@ -1,5 +1,10 @@
 { stdenv, fetchurl, m4, perl }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   name = "autoconf-2.69";
 
diff --git a/pkgs/development/tools/misc/automake/automake-1.15.x.nix b/pkgs/development/tools/misc/automake/automake-1.15.x.nix
index 858cb9a4f22..bf0967e9ddb 100644
--- a/pkgs/development/tools/misc/automake/automake-1.15.x.nix
+++ b/pkgs/development/tools/misc/automake/automake-1.15.x.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perl, autoconf }:
 
 stdenv.mkDerivation rec {
-  name = "automake-1.15";
+  name = "automake-1.15.1";
 
   src = fetchurl {
     url = "mirror://gnu/automake/${name}.tar.xz";
-    sha256 = "0dl6vfi2lzz8alnklwxzfz624b95hb1ipjvd3mk177flmddcf24r";
+    sha256 = "1bzd9g32dfm4rsbw93ld9x7b5nc1y6i4m6zp032qf1i28a8s6sxg";
   };
 
   nativeBuildInputs = [ autoconf perl ];
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index cd05ea354ca..b352e63a27c 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -10,6 +10,11 @@
 , texinfo
 }:
 
+# 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
+# files.
+
 let
   reuseLibs = enableShared && withAllTargets;
 
diff --git a/pkgs/development/tools/misc/blackmagic/default.nix b/pkgs/development/tools/misc/blackmagic/default.nix
index 6e733cfe28a..48ae364a26e 100644
--- a/pkgs/development/tools/misc/blackmagic/default.nix
+++ b/pkgs/development/tools/misc/blackmagic/default.nix
@@ -7,15 +7,15 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "blackmagic";
-  version = "unstable-2020-02-20";
+  version = "unstable-2020-08-05";
   # `git describe --always`
-  firmwareVersion = "v1.6.1-409-g7a595ea";
+  firmwareVersion = "v1.6.1-539-gdd74ec8";
 
   src = fetchFromGitHub {
     owner = "blacksphere";
     repo = "blackmagic";
-    rev = "7a595ead255f2a052fe4561c24a0577112c9de84";
-    sha256 = "01kdm1rkj7ll0px882crf9w27d2ka8f3hcdmvhb9jwd60bf5dlap";
+    rev = "dd74ec8e6f734302daa1ee361af88dfb5043f166";
+    sha256 = "18w8y64fs7wfdypa4vm3migk5w095z8nbd8qp795f322mf2bz281";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/tools/misc/blackmagic/helper.sh b/pkgs/development/tools/misc/blackmagic/helper.sh
index 278a758c186..bae57f633cf 100755
--- a/pkgs/development/tools/misc/blackmagic/helper.sh
+++ b/pkgs/development/tools/misc/blackmagic/helper.sh
@@ -23,18 +23,10 @@ make_platform() {
   make clean
   make PROBE_HOST="$1"
 
-  if [ "$1" = "libftdi" ]; then
+  if [ "$1" = "hosted" ]; then
     install -m 0555 blackmagic "$out/bin"
   fi
 
-  if [ "$1" = "pc-hosted" ]; then
-    install -m 0555 blackmagic_hosted "$out/bin"
-  fi
-
-  if [ "$1" = "pc-stlinkv2" ]; then
-    install -m 0555 blackmagic_stlinkv2 "$out/bin"
-  fi
-
   for f in $PRODUCTS; do
     if [ -r "$f" ]; then
       mkdir -p "$out/firmware/$1"
diff --git a/pkgs/development/tools/misc/cc-tool/default.nix b/pkgs/development/tools/misc/cc-tool/default.nix
new file mode 100644
index 00000000000..6be0ab2acb5
--- /dev/null
+++ b/pkgs/development/tools/misc/cc-tool/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, boost
+, libusb1
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cc-tool";
+  version = "unstable-2020-05-19";
+
+  src = fetchFromGitHub {
+    owner = "dashesy";
+    repo = pname;
+    rev = "19e707eafaaddee8b996ad27a9f3e1aafcb900d2";
+    hash = "sha256:1f78j498fdd36xbci57jkgh25gq14g3b6xmp76imdpar0jkpyljv";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  buildInputs = [ boost libusb1 ];
+
+  postPatch = ''
+    substituteInPlace udev/90-cc-debugger.rules \
+      --replace 'MODE="0666"' 'MODE="0660", GROUP="plugdev", TAG+="uaccess"'
+  '';
+
+  postInstall = ''
+    install -D udev/90-cc-debugger.rules $out/lib/udev/rules.d/90-cc-debugger.rules
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Command line tool for the Texas Instruments CC Debugger";
+    longDescription = ''
+      cc-tool provides support for Texas Instruments CC Debugger
+    '';
+    homepage = "https://github.com/dashesy/cc-tool";
+    license = licenses.gpl2;
+    platforms = with platforms; linux ++ darwin;
+    maintainers = [ maintainers.CRTified ];
+  };
+}
diff --git a/pkgs/development/tools/misc/ccache/default.nix b/pkgs/development/tools/misc/ccache/default.nix
index ead30a56e27..e0a6a8065b5 100644
--- a/pkgs/development/tools/misc/ccache/default.nix
+++ b/pkgs/development/tools/misc/ccache/default.nix
@@ -2,13 +2,13 @@
 
 let ccache = stdenv.mkDerivation rec {
   pname = "ccache";
-  version = "3.7.10";
+  version = "3.7.11";
 
   src = fetchFromGitHub {
     owner = "ccache";
     repo = "ccache";
     rev = "v${version}";
-    sha256 = "0v6pvj50y18fxh2f6cx6xyg545xcpxfmrcg9bzbc6lc5acrvvjm7";
+    sha256 = "03c6riz4vb0jipplk69c1j8arjjrjn676kglsrzqf8cidrh8j91c";
   };
 
   nativeBuildInputs = [ asciidoc-full autoreconfHook gperf perl ];
diff --git a/pkgs/development/tools/misc/circleci-cli/default.nix b/pkgs/development/tools/misc/circleci-cli/default.nix
index 6dcf7ed46cf..881516cf25e 100644
--- a/pkgs/development/tools/misc/circleci-cli/default.nix
+++ b/pkgs/development/tools/misc/circleci-cli/default.nix
@@ -2,18 +2,20 @@
 
 buildGoModule rec {
   pname = "circleci-cli";
-  version = "0.1.8599";
+  version = "0.1.9321";
 
   src = fetchFromGitHub {
     owner = "CircleCI-Public";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1brv38mzc2i6mg4rk9ichjsv5w0gr6xrf6qmhnal12cll2krn9k3";
+    sha256 = "0n0is4aradlx0jbzs819swidi2x1gnpca9f2b0lkxrxgqcm7viix";
   };
 
-  vendorSha256 = "0y35ps2pw9z7gi4z50byd1py87bf2jdvj7l7w2gxpppmhi83myc9";
+  vendorSha256 = "1zd95n9k2fags0qh3wvjinxv1ahygr958mmiax2kz117yipaz4rb";
 
-  buildFlagsArray = [ "-ldflags=-s -w -X github.com/CircleCI-Public/circleci-cli/version.Version=${version}" ];
+  doCheck = false;
+
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/CircleCI-Public/circleci-cli/version.Version=${version} -X github.com/CircleCI-Public/circleci-cli/version.Commit=${src.rev} -X github.com/CircleCI-Public/circleci-cli/version.packageManager=nix" ];
 
   preBuild = ''
     substituteInPlace data/data.go \
diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix
index 64c6dc1f280..65f12bfbb09 100644
--- a/pkgs/development/tools/misc/clojure-lsp/default.nix
+++ b/pkgs/development/tools/misc/clojure-lsp/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "clojure-lsp";
-  version = "20200624T142700";
+  version = "20200828T065654";
 
   src = fetchurl {
     url = "https://github.com/snoe/clojure-lsp/releases/download/release-${version}/${pname}";
-    sha256 = "042s4jp2z9if9jxlwgd2ln6dyssjsw6rdy633kp1hprz7ki1n5nf";
+    sha256 = "1399xjcnnb7vazy1jv3h7lnh1dyn81yk2bwi6ai991a9fsinjnf2";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/tools/misc/cproto/cproto_patch b/pkgs/development/tools/misc/cproto/cproto.patch
index 3743fef977b..3743fef977b 100644
--- a/pkgs/development/tools/misc/cproto/cproto_patch
+++ b/pkgs/development/tools/misc/cproto/cproto.patch
diff --git a/pkgs/development/tools/misc/cproto/default.nix b/pkgs/development/tools/misc/cproto/default.nix
index 8b4317a4538..ef0e2cab777 100644
--- a/pkgs/development/tools/misc/cproto/default.nix
+++ b/pkgs/development/tools/misc/cproto/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "cproto";
-  version = "4.7o";
+  version = "4.7p";
 
   src = fetchurl {
     urls = [
@@ -10,11 +10,11 @@ stdenv.mkDerivation rec {
       # No version listings and apparently no versioned tarball over http(s).
       "ftp://ftp.invisible-island.net/cproto/cproto-${version}.tgz"
     ];
-    sha256 = "0kxlrhhgm84v2q6n3wp7bb77g7wjxkb7azdvb6a70naf0rr0nsy7";
+    sha256 = "0vm1784yw8gax1r7bzgq0chjgfzwxvmkala2awghmd3zyi7k60nj";
   };
 
   # patch made by Joe Khoobyar copied from gentoo bugs
-  patches = ./cproto_patch;
+  patches = [ ./cproto.patch ];
 
   nativeBuildInputs = [ flex bison ];
 
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     description = "Tool to generate C function prototypes from C source code";
     homepage = "https://invisible-island.net/cproto/";
     license = licenses.publicDomain;
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/misc/easypdkprog/default.nix b/pkgs/development/tools/misc/easypdkprog/default.nix
index eb8ce5d44b0..92d1a550ea8 100644
--- a/pkgs/development/tools/misc/easypdkprog/default.nix
+++ b/pkgs/development/tools/misc/easypdkprog/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "easypdkprog";
-  version = "1.2";
+  version = "1.3";
 
   src = fetchFromGitHub {
     owner = "free-pdk";
     repo = "easy-pdk-programmer-software";
     rev = version;
-    sha256 = "06bn86rd57ff567l0ipx38raih0zll3y16lg5fpn7c601a9jldps";
+    sha256 = "0hc3gdmn6l01z63hzzwdhbdyy288gh5v219bsfm8fb1498vpnd6f";
   };
 
   installPhase = ''
diff --git a/pkgs/development/tools/misc/editorconfig-checker/default.nix b/pkgs/development/tools/misc/editorconfig-checker/default.nix
index 6b45dc3c2a0..3975ad3511f 100644
--- a/pkgs/development/tools/misc/editorconfig-checker/default.nix
+++ b/pkgs/development/tools/misc/editorconfig-checker/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "132blcdw3lywxhqslkcpwwvkzl4cpbbkhb7ba8mrvfgl5kvfm1q0";
 
+  doCheck = false;
+
   nativeBuildInputs = [ installShellFiles ];
 
   buildFlagsArray = [ "-ldflags=-X main.version=${version}" ];
diff --git a/pkgs/development/tools/misc/elfinfo/default.nix b/pkgs/development/tools/misc/elfinfo/default.nix
index bd8a9fecee6..3778793b71c 100644
--- a/pkgs/development/tools/misc/elfinfo/default.nix
+++ b/pkgs/development/tools/misc/elfinfo/default.nix
@@ -2,14 +2,14 @@
 
 buildGoPackage rec {
   pname = "elfinfo";
-  version = "1.0.1";
+  version = "1.1.0";
 
   goPackagePath = "github.com/xyproto/elfinfo";
   src = fetchFromGitHub {
     rev = version;
     owner = "xyproto";
     repo = "elfinfo";
-    sha256 = "1iahivc1jm9gv1dijykw2pryjdwb896bv42xmq9v6ax86rsnzqww";
+    sha256 = "1n8bg0rcq9fqa6rdnk6x9ngvm59hcayblkpjv9j5myn2vmm6fv8m";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/misc/elfutils/default.nix b/pkgs/development/tools/misc/elfutils/default.nix
index 56bfe26ec06..4ad7f830066 100644
--- a/pkgs/development/tools/misc/elfutils/default.nix
+++ b/pkgs/development/tools/misc/elfutils/default.nix
@@ -1,13 +1,13 @@
-{ lib, stdenv, fetchurl, m4, zlib, bzip2, bison, flex, gettext, xz, setupDebugInfoDirs }:
+{ lib, stdenv, fetchurl, m4, zlib, bzip2, bison, flex, gettext, xz, setupDebugInfoDirs, argp-standalone }:
 
 # TODO: Look at the hardcoded paths to kernel, modules etc.
 stdenv.mkDerivation rec {
   pname = "elfutils";
-  version = "0.176";
+  version = "0.180";
 
   src = fetchurl {
     url = "https://sourceware.org/elfutils/ftp/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "08qhrl4g6qqr4ga46jhh78y56a47p3msa5b2x1qhzbxhf71lfmzb";
+    sha256 = "17an1f67bfzxin482nbcxdl5qvywm27i9kypjyx8ilarbkivc9xq";
   };
 
   patches = [ ./debug-info-from-env.patch ];
@@ -17,13 +17,19 @@ stdenv.mkDerivation rec {
   # 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 ];
-  buildInputs = [ zlib bzip2 xz ];
+  buildInputs = [ zlib bzip2 xz ]
+    ++ lib.optional stdenv.hostPlatform.isMusl argp-standalone;
 
   propagatedNativeBuildInputs = [ setupDebugInfoDirs ];
 
+  preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
+    NIX_CFLAGS_COMPILE+=" -fgnu89-inline"
+  '';
+
   configureFlags =
     [ "--program-prefix=eu-" # prevent collisions with binutils
       "--enable-deterministic-archives"
+      "--disable-debuginfod"
     ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/tools/misc/fswatch/default.nix b/pkgs/development/tools/misc/fswatch/default.nix
index a1ea1d8903b..4a1d1288a4c 100644
--- a/pkgs/development/tools/misc/fswatch/default.nix
+++ b/pkgs/development/tools/misc/fswatch/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fswatch";
-  version = "1.14.0";
+  version = "1.15.0";
 
   src = fetchFromGitHub {
     owner = "emcrisostomo";
     repo = "fswatch";
     rev = version;
-    sha256 = "1d1fvm36qgh6a5j9v24wai61d297pvzxr14jngjlhh4i474ff21i";
+    sha256 = "11479ac436g8bwk0lfnmdms0cirv9k11pdvfrrg9jwkki1j1abkk";
   };
 
   nativeBuildInputs = [ autoreconfHook ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices ];
diff --git a/pkgs/development/tools/misc/fujprog/default.nix b/pkgs/development/tools/misc/fujprog/default.nix
new file mode 100644
index 00000000000..61aeea9967d
--- /dev/null
+++ b/pkgs/development/tools/misc/fujprog/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkgconfig
+, libftdi1
+, libusb-compat-0_1
+}:
+
+stdenv.mkDerivation rec {
+  pname = "fujprog";
+  version = "4.6";
+
+  src = fetchFromGitHub {
+    owner = "kost";
+    repo = "${pname}";
+    rev = "v${version}";
+    sha256 = "04l5rrfrp3pflwz5ncwvb4ibbsqib2259m23bzfi8m80aj216shd";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkgconfig
+  ];
+
+  buildInputs = [
+    libftdi1
+    libusb-compat-0_1
+  ];
+
+  meta = with stdenv.lib; {
+    description = "JTAG programmer for the ULX3S and ULX2S open hardware FPGA development boards.";
+    homepage = "https://github.com/kost/fujprog";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ trepetti ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index 7702df423bb..a4806634432 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -17,20 +17,19 @@
 }:
 
 let
-  basename = "gdb-${version}";
-  version = "9.2";
+  basename = "gdb";
+  targetPrefix = stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
+                 "${stdenv.targetPlatform.config}-";
 in
 
 assert pythonSupport -> python3 != null;
 
 stdenv.mkDerivation rec {
-  name =
-    stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
-                              (stdenv.targetPlatform.config + "-")
-    + basename;
+  pname = targetPrefix + basename;
+  version = "9.2";
 
   src = fetchurl {
-    url = "mirror://gnu/gdb/${basename}.tar.xz";
+    url = "mirror://gnu/gdb/${basename}-${version}.tar.xz";
     sha256 = "0mf5fn8v937qwnal4ykn3ji1y2sxk0fa1yfqi679hxmpg6pdf31n";
   };
 
diff --git a/pkgs/development/tools/misc/gdbgui/default.nix b/pkgs/development/tools/misc/gdbgui/default.nix
index d5f8cfa173b..ecbfc2ae756 100644
--- a/pkgs/development/tools/misc/gdbgui/default.nix
+++ b/pkgs/development/tools/misc/gdbgui/default.nix
@@ -8,11 +8,13 @@
 , pygdbmi
 , pygments
 , gevent
+, gevent-websocket
+, eventlet
 , }:
 
 buildPythonApplication rec {
   pname = "gdbgui";
-  version = "0.13.2.0";
+  version = "0.13.2.1";
 
   buildInputs = [ gdb ];
   propagatedBuildInputs = [
@@ -22,11 +24,13 @@ buildPythonApplication rec {
     pygdbmi
     pygments
     gevent
+    gevent-websocket
+    eventlet
   ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0m1fnwafzrpk77yj3p26vszlz11cv4g2lj38kymk1ilcifh4gqw0";
+    sha256 = "0zn5wi47m8pn4amx574ryyhqvhynipxzyxbx0878ap6g36vh6l1h";
   };
 
   postPatch = ''
@@ -45,6 +49,7 @@ buildPythonApplication rec {
 
   meta = with stdenv.lib; {
     description = "A browser-based frontend for GDB";
+    homepage = "https://www.gdbgui.com/";
     license = licenses.gpl3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ yrashk ];
diff --git a/pkgs/development/tools/misc/gnum4/default.nix b/pkgs/development/tools/misc/gnum4/default.nix
index b301324e956..2e3e4acfdc1 100644
--- a/pkgs/development/tools/misc/gnum4/default.nix
+++ b/pkgs/development/tools/misc/gnum4/default.nix
@@ -1,5 +1,10 @@
 { stdenv, fetchurl }:
 
+# 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
+# files.
+
 stdenv.mkDerivation {
   name = "gnum4-1.4.18";
 
diff --git a/pkgs/development/tools/misc/go-license-detector/default.nix b/pkgs/development/tools/misc/go-license-detector/default.nix
index 22b85a1fa33..91c6518bc26 100644
--- a/pkgs/development/tools/misc/go-license-detector/default.nix
+++ b/pkgs/development/tools/misc/go-license-detector/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "0gan5l7vsq0hixxcymhhs8p07v92w60r0lhgvrr9a99nic12vmia";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Reliable project licenses detector";
     homepage = "https://github.com/src-d/go-license-detector";
     license = licenses.asl20;
     maintainers = with maintainers; [ dtzWill ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/misc/help2man/default.nix b/pkgs/development/tools/misc/help2man/default.nix
index e23ccf27323..f23b5a9c8fd 100644
--- a/pkgs/development/tools/misc/help2man/default.nix
+++ b/pkgs/development/tools/misc/help2man/default.nix
@@ -1,11 +1,16 @@
 { stdenv, fetchurl, perlPackages, gettext }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
-  name = "help2man-1.47.15";
+  name = "help2man-1.47.16";
 
   src = fetchurl {
     url = "mirror://gnu/help2man/${name}.tar.xz";
-    sha256 = "076dvc0z0qp73rpmg0c8bkpfh969h4gzzc442hv1bcyf1srkann2";
+    sha256 = "1x586h7wvripcay35kdh2kvydx84y8yy93ffjah2rqw6bc65iy1y";
   };
 
   nativeBuildInputs = [ gettext perlPackages.LocaleGettext ];
diff --git a/pkgs/development/tools/misc/hydra-cli/default.nix b/pkgs/development/tools/misc/hydra-cli/default.nix
index b585d27b710..6cd439a898b 100644
--- a/pkgs/development/tools/misc/hydra-cli/default.nix
+++ b/pkgs/development/tools/misc/hydra-cli/default.nix
@@ -25,7 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/nlewo/hydra-cli";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ gilligan lewo ];
-    platforms = platforms.all;
   };
 
 }
diff --git a/pkgs/development/tools/misc/hydra/default.nix b/pkgs/development/tools/misc/hydra/default.nix
index 680e10d662a..a6b0383d54f 100644
--- a/pkgs/development/tools/misc/hydra/default.nix
+++ b/pkgs/development/tools/misc/hydra/default.nix
@@ -24,12 +24,12 @@
   # so when having an older version, `pkgs.hydra-migration` should be deployed first.
 
   hydra-unstable = callPackage ./common.nix {
-    version = "2020-06-23";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "hydra";
-      rev = "bb32aafa4a9b027c799e29b1bcf68727e3fc5f5b";
-      sha256 = "0kl9h70akwxpik3xf4dbbh7cyqn06023kshfvi14mygdlb84djgx";
+      rev = "e707990e2d6afab203c7ef1d769d49c564eff151";
+      sha256 = "0iilf953f6s58szzyd1hzc9b2b2yw8lhbsb8xrb08szpfz7ifwqa";
     };
     nix = nixFlakes;
 
diff --git a/pkgs/development/tools/misc/intltool/default.nix b/pkgs/development/tools/misc/intltool/default.nix
index 0a04e5786f5..20f880938c6 100644
--- a/pkgs/development/tools/misc/intltool/default.nix
+++ b/pkgs/development/tools/misc/intltool/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, gettext, perlPackages }:
+{ stdenv, fetchurl, fetchpatch, gettext, perlPackages, buildPackages }:
 
 stdenv.mkDerivation rec {
   pname = "intltool";
@@ -19,8 +19,14 @@ stdenv.mkDerivation rec {
     sha256 = "12q2140867r5d0dysly72khi7b0mm2gd7nlm1k81iyg7fxgnyz45";
   })];
 
+  nativeBuildInputs = with perlPackages; [ perl XMLParser ];
   propagatedBuildInputs = [ gettext ] ++ (with perlPackages; [ perl XMLParser ]);
 
+  postInstall = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+    for f in $out/bin/*; do
+      substituteInPlace $f --replace "${buildPackages.perl}" "${perlPackages.perl}"
+    done
+  '';
   meta = with stdenv.lib; {
     description = "Translation helper tool";
     homepage = "https://launchpad.net/intltool/";
diff --git a/pkgs/development/tools/misc/itm-tools/cargo-lock.patch b/pkgs/development/tools/misc/itm-tools/cargo-lock.patch
new file mode 100644
index 00000000000..1559510cd9f
--- /dev/null
+++ b/pkgs/development/tools/misc/itm-tools/cargo-lock.patch
@@ -0,0 +1,321 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..d9d39e5
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,315 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "addr2line"
++version = "0.12.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "602d785912f476e480434627e8732e6766b760c045bbf897d9dfaa9f4fbd399c"
++dependencies = [
++ "gimli",
++]
++
++[[package]]
++name = "adler32"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "567b077b825e468cc974f0020d4082ee6e03132512f207ef1a02fd5d00d1f32d"
++
++[[package]]
++name = "ansi_term"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
++dependencies = [
++ "winapi",
++]
++
++[[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 = "backtrace"
++version = "0.3.49"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05100821de9e028f12ae3d189176b41ee198341eb8f369956407fea2f5cc666c"
++dependencies = [
++ "addr2line",
++ "cfg-if",
++ "libc",
++ "miniz_oxide",
++ "object",
++ "rustc-demangle",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++
++[[package]]
++name = "byteorder"
++version = "1.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
++
++[[package]]
++name = "cfg-if"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
++
++[[package]]
++name = "clap"
++version = "2.33.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
++dependencies = [
++ "ansi_term",
++ "atty",
++ "bitflags",
++ "strsim",
++ "textwrap",
++ "unicode-width",
++ "vec_map",
++]
++
++[[package]]
++name = "either"
++version = "1.5.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
++
++[[package]]
++name = "exitfailure"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2ff5bd832af37f366c6c194d813a11cd90ac484f124f079294f28e357ae40515"
++dependencies = [
++ "failure",
++]
++
++[[package]]
++name = "failure"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
++dependencies = [
++ "backtrace",
++ "failure_derive",
++]
++
++[[package]]
++name = "failure_derive"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++ "synstructure",
++]
++
++[[package]]
++name = "gimli"
++version = "0.21.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c"
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "itm"
++version = "0.4.0"
++source = "git+https://github.com/rust-embedded/itm#5dd476d03de0738062a876fd3845900ab04833a4"
++dependencies = [
++ "byteorder",
++ "either",
++ "thiserror",
++]
++
++[[package]]
++name = "itm-tools"
++version = "0.1.0"
++dependencies = [
++ "clap",
++ "exitfailure",
++ "failure",
++ "itm",
++ "rustc-demangle",
++ "xmas-elf",
++]
++
++[[package]]
++name = "libc"
++version = "0.2.71"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"
++
++[[package]]
++name = "miniz_oxide"
++version = "0.3.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
++dependencies = [
++ "adler32",
++]
++
++[[package]]
++name = "object"
++version = "0.20.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1ab52be62400ca80aa00285d25253d7f7c437b7375c4de678f5405d3afe82ca5"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa"
++dependencies = [
++ "unicode-xid",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
++dependencies = [
++ "proc-macro2",
++]
++
++[[package]]
++name = "rustc-demangle"
++version = "0.1.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
++
++[[package]]
++name = "strsim"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
++
++[[package]]
++name = "syn"
++version = "1.0.33"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e8d5d96e8cbb005d6959f119f773bfaebb5684296108fb32600c00cde305b2cd"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-xid",
++]
++
++[[package]]
++name = "synstructure"
++version = "0.12.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++ "unicode-xid",
++]
++
++[[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.20"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08"
++dependencies = [
++ "thiserror-impl",
++]
++
++[[package]]
++name = "thiserror-impl"
++version = "1.0.20"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[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 = "vec_map"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
++
++[[package]]
++name = "winapi"
++version = "0.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
++dependencies = [
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
++]
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++
++[[package]]
++name = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++
++[[package]]
++name = "xmas-elf"
++version = "0.6.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "22678df5df766e8d1e5d609da69f0c3132d794edf6ab5e75e7abcd2270d4cf58"
++dependencies = [
++ "zero",
++]
++
++[[package]]
++name = "zero"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5f1bc8a6b2005884962297587045002d8cfb8dcec9db332f4ca216ddc5de82c5"
diff --git a/pkgs/development/tools/misc/itm-tools/default.nix b/pkgs/development/tools/misc/itm-tools/default.nix
new file mode 100644
index 00000000000..6fb25695111
--- /dev/null
+++ b/pkgs/development/tools/misc/itm-tools/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkg-config }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "itm-tools";
+  version = "unstable-2019-11-15";
+
+  src = fetchFromGitHub {
+    owner = "japaric";
+    repo = pname;
+    rev = "e94155e44019d893ac8e6dab51cc282d344ab700";
+    sha256 = "19xkjym0i7y52cfhvis49c59nzvgw4906cd8bkz8ka38mbgfqgiy";
+  };
+
+  cargoPatches = [ ./cargo-lock.patch ];
+
+  cargoSha256 = "0rl2ph5igwjl7rwpwcf6afnxly5av7cd6va6wn82lxm606giyq75";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Tools for analyzing ITM traces";
+    homepage = "https://github.com/japaric/itm-tools";
+    license = with licenses; [ asl20 mit ];
+    maintainers = with maintainers; [ hh sb0 ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/tools/misc/libtool/default.nix b/pkgs/development/tools/misc/libtool/default.nix
index debc4107882..199c6504f39 100644
--- a/pkgs/development/tools/misc/libtool/default.nix
+++ b/pkgs/development/tools/misc/libtool/default.nix
@@ -1,5 +1,10 @@
 {stdenv, fetchurl, m4, perl}:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   name = "libtool-1.5.26";
 
diff --git a/pkgs/development/tools/misc/linuxkit/default.nix b/pkgs/development/tools/misc/linuxkit/default.nix
index 4fe7740cadf..eeb2102bdf0 100644
--- a/pkgs/development/tools/misc/linuxkit/default.nix
+++ b/pkgs/development/tools/misc/linuxkit/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname   = "linuxkit";
-  version = "0.7";
+  version = "0.8";
 
   goPackagePath = "github.com/linuxkit/linuxkit";
 
@@ -10,14 +10,12 @@ buildGoPackage rec {
     owner = "linuxkit";
     repo = "linuxkit";
     rev = "v${version}";
-    sha256 = "1mnaqzd4r0fdgjhjvbi4p0wwvz69i82b33iizz81wvkr1mkakgl2";
+    sha256 = "15jj60k8wz9cahjbdscnwyyfb1k1grjh7yrilb1cj4r8mby4sp2g";
   };
 
   subPackages = [ "src/cmd/linuxkit" ];
 
-  preBuild = ''
-    buildFlagsArray+=("-ldflags" "-X github.com/linuxkit/linuxkit/src/cmd/linuxkit/version.Version=${src.rev}")
-  '';
+  buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/src/cmd/linuxkit/version.GitCommit=${src.rev} -X ${goPackagePath}/src/cmd/linuxkit/version.Version=${version}" ];
 
   meta = with lib; {
     description = "A toolkit for building secure, portable and lean operating systems for containers";
diff --git a/pkgs/development/tools/misc/lit/default.nix b/pkgs/development/tools/misc/lit/default.nix
index 1e511cc0f0b..7c7549e3844 100644
--- a/pkgs/development/tools/misc/lit/default.nix
+++ b/pkgs/development/tools/misc/lit/default.nix
@@ -2,11 +2,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "lit";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "0vkqv0ijjkfg70j26cxqz75bpn2p78all5j5cw2gfcrn4c5aldf0";
+    sha256 = "13s8v9s2f284fnh47xdyc75gq2i9pndl39q8v4wl7v7lwri2hv8r";
   };
 
   passthru = {
diff --git a/pkgs/development/tools/misc/mkcert/default.nix b/pkgs/development/tools/misc/mkcert/default.nix
index 218473aee78..ec4042a2a27 100644
--- a/pkgs/development/tools/misc/mkcert/default.nix
+++ b/pkgs/development/tools/misc/mkcert/default.nix
@@ -13,10 +13,10 @@ buildGoModule rec {
 
   vendorSha256 = "0b8ggdpbyxx5n2myhchhlwmm5nndwpykp1ylnzdyw12mdskfvn9h";
 
-  goPackagePath = "github.com/FiloSottile/mkcert";
+  doCheck = false;
+
   buildFlagsArray = ''
-    -ldflags=
-      -X ${goPackagePath}/main.Version=${version}
+    -ldflags=-X main.Version=v${version}
   '';
 
   meta = with lib; {
@@ -25,4 +25,4 @@ buildGoModule rec {
     license = licenses.bsd3;
     maintainers = [ maintainers.marsam ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/misc/nix-build-uncached/default.nix b/pkgs/development/tools/misc/nix-build-uncached/default.nix
index 11833816ec8..eca2dc96662 100644
--- a/pkgs/development/tools/misc/nix-build-uncached/default.nix
+++ b/pkgs/development/tools/misc/nix-build-uncached/default.nix
@@ -1,25 +1,21 @@
-{ lib, buildGoModule, fetchFromGitHub, nix, makeWrapper }:
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper }:
 
 buildGoModule rec {
   pname = "nix-build-uncached";
-  version = "0.1.1";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "nix-build-uncached";
     rev = "v${version}";
-    sha256 = "0jkpg3ab56lg2kdms9w9ka9ba89py3ajksjsi1rd3iqi74zz2mmh";
+    sha256 = "106k4234gpi8mr0n0rfsgwk4z7v0b2gim0r5bhjvg2v566j67g02";
   };
 
-  goPackagePath = "github.com/Mic92/nix-build-uncached";
   vendorSha256 = null;
 
-  nativeBuildInputs = [ makeWrapper ];
+  doCheck = false;
 
-  postInstall = ''
-    wrapProgram $out/bin/nix-build-uncached \
-      --prefix PATH ":" ${lib.makeBinPath [ nix ]}
-  '';
+  nativeBuildInputs = [ makeWrapper ];
 
   meta = with lib; {
     description = "A CI friendly wrapper around nix-build";
diff --git a/pkgs/development/tools/misc/nrfutil/default.nix b/pkgs/development/tools/misc/nrfutil/default.nix
index 0a6155e649e..eeb9100a4c8 100644
--- a/pkgs/development/tools/misc/nrfutil/default.nix
+++ b/pkgs/development/tools/misc/nrfutil/default.nix
@@ -1,25 +1,22 @@
-{ stdenv, python2Packages, fetchFromGitHub }:
+{ stdenv, python37Packages, fetchFromGitHub }:
 
-with python2Packages; buildPythonApplication rec {
+with python37Packages; buildPythonApplication rec {
   pname = "nrfutil";
-  version = "5.2.0";
+  version = "6.1";
 
   src = fetchFromGitHub {
     owner = "NordicSemiconductor";
     repo = "pc-nrfutil";
     rev = "v${version}";
-    sha256 = "1hajjgz8r4fjbwqr22p5dvb6k83dpxf8k7mhx20gkbrrx9ivqh79";
+    sha256 = "0g43lf5jmk0qxb7r4h68wr38fli6pjjk67w8l2cpdm9rd8jz4lpn";
   };
 
-  propagatedBuildInputs = [ pc-ble-driver-py six pyserial enum34 click ecdsa
+  propagatedBuildInputs = [ pc-ble-driver-py six pyserial enum34  click ecdsa
     protobuf tqdm piccata pyspinel intelhex pyyaml crcmod libusb1 ipaddress ];
 
   checkInputs = [ nose behave ];
 
   postPatch = ''
-    # remove version bound on pyyaml
-    sed -i /pyyaml/d requirements.txt
-
     mkdir test-reports
   '';
 
diff --git a/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix b/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
new file mode 100644
index 00000000000..58178cde174
--- /dev/null
+++ b/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, bzip2
+, libusb1
+, libzip
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nxpmicro-mfgtools";
+  version = "1.3.191";
+
+  src = fetchFromGitHub {
+    owner = "NXPmicro";
+    repo = "mfgtools";
+    rev = "uuu_${version}";
+    sha256 = "196blmd7nf5kamvay22rvnkds2v6h7ab8lyl10dknxgy8i8siqq9";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ bzip2 libusb1 libzip openssl ];
+
+  preConfigure = "echo ${version} > .tarball-version";
+
+  meta = with stdenv.lib; {
+    description = "Freescale/NXP I.MX chip image deploy tools";
+    longDescription = ''
+      UUU (Universal Update Utility) is a command line tool, evolved out of
+      MFGTools (aka MFGTools v3).
+
+      One of the main purposes is to upload images to I.MX SoC's using at least
+      their boot ROM.
+
+      With time, the need for an update utility portable to Linux and Windows
+      increased. UUU has the same usage on both Windows and Linux. It means the same
+      script works on both OS.
+    '';
+    homepage = "https://github.com/NXPmicro/mfgtools";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.bmilanov ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/tools/misc/objconv/default.nix b/pkgs/development/tools/misc/objconv/default.nix
index 9fdaca52ca8..52cc1b2d5c5 100644
--- a/pkgs/development/tools/misc/objconv/default.nix
+++ b/pkgs/development/tools/misc/objconv/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "objconv";
-  version = "2.51";
+  version = "2.52";
 
   src = fetchurl {
     # Versioned archive of objconv sources maintained by orivej.
     url = "https://archive.org/download/objconv/${pname}-${version}.zip";
-    sha256 = "0wp6ld9vk11f4nnkn56627zmlv9k5vafi99qa3yyn1pgcd61zcfs";
+    sha256 = "0r117r7yvqvvdgwgwxpkyzi6p5nm0xb6p67wvkmvggm9fdyl3z8v";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/development/tools/misc/pahole/default.nix b/pkgs/development/tools/misc/pahole/default.nix
index 8541c7a307a..bb88862a8e8 100644
--- a/pkgs/development/tools/misc/pahole/default.nix
+++ b/pkgs/development/tools/misc/pahole/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pahole";
-  version = "1.16";
+  version = "1.17";
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/devel/pahole/pahole.git";
     rev = "v${version}";
-    sha256 = "1gfc9v4dgs811v1zjk0d9hsgmizllw2hibc83ykmakzysimaxsy3";
+    sha256 = "13dxsmhpf9n2wqggf4gd6f12rm0vhv0q96jd50gkvaxzzvgpzzbc";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/tools/misc/patchelf/default.nix b/pkgs/development/tools/misc/patchelf/default.nix
index 5119225d9ae..1d31709ccf0 100644
--- a/pkgs/development/tools/misc/patchelf/default.nix
+++ b/pkgs/development/tools/misc/patchelf/default.nix
@@ -1,11 +1,17 @@
 { stdenv, fetchurl }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
-  name = "patchelf-0.11";
+  pname = "patchelf";
+  version = "0.12";
 
   src = fetchurl {
-    url = "https://nixos.org/releases/patchelf/${name}/${name}.tar.bz2";
-    sha256 = "16ms3ijcihb88j3x6cl8cbvhia72afmfcphczb9cfwr0gbc22chx";
+    url = "https://github.com/NixOS/${pname}/releases/download/${version}/${pname}-${version}.tar.bz2";
+    sha256 = "14npmdxppmh0ci140w8i8cy7zg1pnqg81a1mdsnza711ab7k36k9";
   };
 
   setupHook = [ ./setup-hook.sh ];
diff --git a/pkgs/development/tools/misc/patchelf/unstable.nix b/pkgs/development/tools/misc/patchelf/unstable.nix
index 858e8e5a9b8..0d9eeb84bfb 100644
--- a/pkgs/development/tools/misc/patchelf/unstable.nix
+++ b/pkgs/development/tools/misc/patchelf/unstable.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "patchelf-${version}";
-  version = "2020-06-03";
+  version = "2020-07-11";
 
   src = fetchFromGitHub {
     owner = "NixOS";
     repo = "patchelf";
-    rev = "4aff679d9eaa1a3ec0228901a4e79b57361b4094";
-    sha256 = "1i47z2dl6pgv5krl58lwy3xs327jmhy9cni3b8yampab1kh9ad1l";
+    rev = "126372b636733b160e693c9913e871f6755c02e";
+    sha256 = "07cn40ypys5pyc3jfgxvqj7qk5v6m2rr5brnpmxdsl1557ryx226";
   };
 
   # Drop test that fails on musl (?)
diff --git a/pkgs/development/tools/misc/pwndbg/default.nix b/pkgs/development/tools/misc/pwndbg/default.nix
index 0c1a3dfc932..f9d792d185f 100644
--- a/pkgs/development/tools/misc/pwndbg/default.nix
+++ b/pkgs/development/tools/misc/pwndbg/default.nix
@@ -21,14 +21,14 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "pwndbg";
-  version = "2019.12.09";
+  version = "2020.07.23";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "pwndbg";
     repo = "pwndbg";
     rev = version;
-    sha256 = "0kn28mjdq91zf7d6vqzbm74f0ligp829m9jzjxfn4zlx6wrmkd0s";
+    sha256 = "0w1dmjy8ii12367wza8c35a9q9x204fppf6x328q75bhb3gd845c";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/misc/replacement/default.nix b/pkgs/development/tools/misc/replacement/default.nix
new file mode 100644
index 00000000000..3d0218ffab2
--- /dev/null
+++ b/pkgs/development/tools/misc/replacement/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, fetchFromGitHub
+, python3Packages
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "replacement";
+  version = "0.4.4";
+
+  disabled = python3Packages.isPy27;
+
+  src = fetchFromGitHub {
+    owner = "siriobalmelli";
+    repo = "replacement";
+    rev = "v${version}";
+    sha256 = "0j4lvn3rx1kqvxcsd8nhc2lgk48jyyl7qffhlkvakhy60f9lymj3";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    ruamel_yaml
+  ];
+
+  checkInputs = with python3Packages; [
+    pytestCheckHook
+    sh
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/siriobalmelli/replacement";
+    description = "A tool to execute yaml templates and output text";
+    longDescription = ''
+        Replacement is a python utility
+        that parses a yaml template and outputs text.
+
+        A 'template' is a YAML file containing a 'replacement' object.
+
+        A 'replacement' object contains a list of blocks,
+        each of which is executed in sequence.
+
+        This tool is useful in generating configuration files,
+        static websites and the like.
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ siriobalmelli ];
+  };
+}
diff --git a/pkgs/development/tools/misc/reviewdog/default.nix b/pkgs/development/tools/misc/reviewdog/default.nix
index 13386fb9e85..de8a113d101 100644
--- a/pkgs/development/tools/misc/reviewdog/default.nix
+++ b/pkgs/development/tools/misc/reviewdog/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "reviewdog";
-  version = "0.10.1";
+  version = "0.10.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "05y8683f0r8bf8gn5miiwqkfz550s2c9kmvz0a1g7y99r9n6kzjk";
+    sha256 = "1xi5dfdy66qa6xvy60fk2lmp9gxyi0nfkyvybcazn8mrd99hfh6l";
   };
 
   vendorSha256 = "0cxi01jxg89lsk91dv782746i8g9ksanx8igmgafq9vq25lld7yg";
 
+  doCheck = false;
+
   subPackages = [ "cmd/reviewdog" ];
 
   buildFlagsArray = [ "-ldflags=-s -w -X github.com/reviewdog/reviewdog/commands.Version=${version}" ];
diff --git a/pkgs/development/tools/misc/scc/default.nix b/pkgs/development/tools/misc/scc/default.nix
index 47596789de7..8a6a1471d0a 100644
--- a/pkgs/development/tools/misc/scc/default.nix
+++ b/pkgs/development/tools/misc/scc/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "scc";
-  version = "2.12.0";
+  version = "2.13.0";
 
   src = fetchFromGitHub {
     owner = "boyter";
     repo = "scc";
     rev = "v${version}";
-    sha256 = "0hbcq5qn97kr9d4q9m2p1mj3ijn8zmwycrs5bgf1kfiwr09wg2yh";
+    sha256 = "16p5g20n5jsbisbgikk9xny94xx6c0dxf19saa686ghh31jr2hh3";
   };
 
-  goPackagePath = "github.com/boyter/scc";
+  vendorSha256 = null;
 
   # scc has a scripts/ sub-package that's for testing.
-  subPackages = [ "./" ];
+  excludedPackages = [ "scripts" ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/boyter/scc";
diff --git a/pkgs/development/tools/misc/stm32cubemx/default.nix b/pkgs/development/tools/misc/stm32cubemx/default.nix
index d4cd353281b..80549d8848f 100644
--- a/pkgs/development/tools/misc/stm32cubemx/default.nix
+++ b/pkgs/development/tools/misc/stm32cubemx/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, requireFile, makeDesktopItem, libicns, imagemagick, zstd, jre }:
+{ stdenv, requireFile, makeDesktopItem, libicns, imagemagick, jre, fetchzip }:
 
 let
-  version = "5.3.0";
+  version = "5.6.1";
   desktopItem = makeDesktopItem {
     name = "stm32CubeMX";
     exec = "stm32cubemx";
@@ -14,32 +14,19 @@ stdenv.mkDerivation rec {
   pname = "stm32cubemx";
   inherit version;
 
-  src = requireFile rec {
-    name = "STM32CubeMX.tar.zst";
-    message = ''
-      Unfortunately, we cannot download file ${name} automatically.
-      Please proceed with the following steps to download and add it to the Nix
-      store yourself:
 
-      1. get en.STM32CubeMX_${builtins.replaceStrings ["."] ["-"] version}.zip
-      2. unzip en.STM32CubeMX_${builtins.replaceStrings ["."] ["-"] version}.zip
-      3. run the setup: java -jar SetupSTM32CubeMX-${version}.exe
-      4. create a tar from created folder: tar --zstd -cf ${name} STM32CubeMX
-      5. add the result to the store: nix-prefetch-url file://\$PWD/${name}
-
-      Notice: The setup will quit with an error about /bin/chmod
-    '';
-    sha256 = "1r5k5wmsvw1w2nfs3nb4gc6pb3j0x6bqljn9jzc4r8y5bxc34rr8";
+  src = fetchzip {
+    url = "https://sw-center.st.com/packs/resource/library/stm32cube_mx_v${builtins.replaceStrings ["."] [""] version}.zip";
+    sha256 = "1y4a340wcjl88kjw1f1x85ffp4b5g1psryn9mgkd717w2bfpf29l";
+    stripRoot= false;
   };
 
-  nativeBuildInputs = [ libicns imagemagick zstd ];
+  nativeBuildInputs = [ libicns imagemagick ];
 
   buildCommand = ''
-    mkdir -p $out/{bin,opt,share/applications}
-
-    tar --extract --zstd --file $src --directory $out/opt/
+    mkdir -p $out/{bin,opt/STM32CubeMX,share/applications}
+    cp -r $src/. $out/opt/STM32CubeMX/
     chmod +rx $out/opt/STM32CubeMX/STM32CubeMX.exe
-
     cat << EOF > $out/bin/${pname}
     #!${stdenv.shell}
     ${jre}/bin/java -jar $out/opt/STM32CubeMX/STM32CubeMX.exe
@@ -63,7 +50,8 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = ''
+    description = "A graphical tool for configuring STM32 microcontrollers and microprocessors";
+    longDescription = ''
       A graphical tool that allows a very easy configuration of STM32
       microcontrollers and microprocessors, as well as the generation of the
       corresponding initialization C code for the Arm® Cortex®-M core or a
diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix
index 23700a2ddc2..ccbed6d430a 100644
--- a/pkgs/development/tools/misc/strace/default.nix
+++ b/pkgs/development/tools/misc/strace/default.nix
@@ -2,19 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "strace";
-  version = "5.7";
+  version = "5.8";
 
   src = fetchurl {
     url = "https://strace.io/files/${version}/${pname}-${version}.tar.xz";
-    sha256 = "1n6cfz3i2krkyvxpdp3kmxhf7sy5xp0danzaiirbk5fdkfgvb15j";
+    sha256 = "1abs3svkg9985f4jrxx34sj1dcpsf95vv1a0g01c777zgygncjnz";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ perl ];
 
-  buildInputs = stdenv.lib.optional libunwind.supportsHost libunwind; # support -k
+  buildInputs = [ perl.out ] ++ stdenv.lib.optional libunwind.supportsHost libunwind; # support -k
 
-  postPatch = "patchShebangs strace-graph";
+  postPatch = "patchShebangs --host strace-graph";
 
   configureFlags = stdenv.lib.optional (!stdenv.hostPlatform.isx86) "--enable-mpers=check";
 
diff --git a/pkgs/development/tools/misc/svls/default.nix b/pkgs/development/tools/misc/svls/default.nix
new file mode 100644
index 00000000000..f04c93e7a17
--- /dev/null
+++ b/pkgs/development/tools/misc/svls/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "svls";
+  version = "0.1.17";
+
+  src = fetchFromGitHub {
+    owner = "dalance";
+    repo = "svls";
+    rev = "v${version}";
+    sha256 = "0qcd9pkshk94c6skzld8cyzppl05hk4vcmmaya8r9l6kdi1f4b5m";
+  };
+
+  cargoSha256 = "0dqa7iw0sffzh07qysznh7ma3d3vl5fhd0i2qmz7a3dvw8mvyvsm";
+
+  meta = with lib; {
+    description = "SystemVerilog language server";
+    homepage = "https://github.com/dalance/svls";
+    license = licenses.mit;
+    maintainers = with maintainers; [ trepetti ];
+  };
+}
diff --git a/pkgs/development/tools/misc/swig/4.nix b/pkgs/development/tools/misc/swig/4.nix
index a35a9a35281..4096b7353fa 100644
--- a/pkgs/development/tools/misc/swig/4.nix
+++ b/pkgs/development/tools/misc/swig/4.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "swig";
-  version = "4.0.1";
+  version = "4.0.2";
 
   src = fetchFromGitHub {
     owner = "swig";
     repo = "swig";
     rev = "rel-${version}";
-    sha256 = "1i1gl5gd6b5i1hiazq7m4nvlq86zd0fhk052xhwlnb596pjhgyhf";
+    sha256 = "12vlps766xvwck8q0i280s8yx21qm2dxl34710ybpmz3c1cfdjsc";
   };
 
   PCRE_CONFIG = "${pcre.dev}/bin/pcre-config";
diff --git a/pkgs/development/tools/misc/terracognita/default.nix b/pkgs/development/tools/misc/terracognita/default.nix
index 6141b0b9997..a4fb72666ca 100644
--- a/pkgs/development/tools/misc/terracognita/default.nix
+++ b/pkgs/development/tools/misc/terracognita/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "terracognita";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "cycloidio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0s6k78n94q13crdlgxb5c8qn708nbzn6nmhkil4s23f0qdskcah2";
+    sha256 = "1z0vf3x46w3glwvq185hgmfkg7xfq31c7d3yjhh8qkwbhkx4bga4";
   };
 
   vendorSha256 = "1dmv16v1c9sydbl1g69pgwvrhznd0a133giwrcbqi4cyg1fdb3sr";
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   buildFlagsArray = [ "-ldflags=-s -w -X github.com/cycloidio/terracognita/cmd.Version=${version}" ];
@@ -23,4 +25,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/misc/terraform-ls/default.nix b/pkgs/development/tools/misc/terraform-ls/default.nix
index f2c8a6c4cdd..4d999f32446 100644
--- a/pkgs/development/tools/misc/terraform-ls/default.nix
+++ b/pkgs/development/tools/misc/terraform-ls/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "terraform-ls";
-  version = "0.4.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "105wk7lzsjl5qa1qnb40msj3wh4awqykkynj5fs0a7nzbcbrpxsj";
+    sha256 = "1afdd1zs242nh1cync5ip1fbah34wc3gbsx3hwwiisc8yziwiq18";
   };
 
   goPackagePath = "github.com/hashicorp/terraform-ls";
diff --git a/pkgs/development/tools/misc/terraformer/default.nix b/pkgs/development/tools/misc/terraformer/default.nix
new file mode 100644
index 00000000000..6ff0dd77aae
--- /dev/null
+++ b/pkgs/development/tools/misc/terraformer/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "terraformer";
+  version = "0.8.8";
+
+  src = fetchFromGitHub {
+    owner = "GoogleCloudPlatform";
+    repo = pname;
+    rev = version;
+    sha256 = "1lzf30vpa0blbkz4ngnhrn3hpbqflqd4sni4bly9yqh4fnc44nvi";
+  };
+
+  vendorSha256 = "087448wkaw6jxv9d26hck4w3vdh06vcgywna6ydkqvxr0hp011b6";
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "CLI tool to generate terraform files from existing infrastructure (reverse Terraform). Infrastructure to Code";
+    homepage = "https://github.com/GoogleCloudPlatform/terraformer";
+    license = licenses.asl20;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/development/tools/misc/texinfo/6.7.nix b/pkgs/development/tools/misc/texinfo/6.7.nix
new file mode 100644
index 00000000000..7915d6e3c6b
--- /dev/null
+++ b/pkgs/development/tools/misc/texinfo/6.7.nix
@@ -0,0 +1,4 @@
+import ./common.nix {
+  version = "6.7";
+  sha256 = "1aicn1v3czqii08wc91jw089n1x3gfchkf808q2as59dak0h714q";
+}
diff --git a/pkgs/development/tools/misc/texinfo/common.nix b/pkgs/development/tools/misc/texinfo/common.nix
index 1fb8a6b2f0d..f0f4c269fae 100644
--- a/pkgs/development/tools/misc/texinfo/common.nix
+++ b/pkgs/development/tools/misc/texinfo/common.nix
@@ -6,8 +6,13 @@
 , interactive ? false, ncurses, procps
 }:
 
+# 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
+# files.
+
 let
-  crossBuildTools = interactive && stdenv.hostPlatform != stdenv.buildPlatform;
+  crossBuildTools = stdenv.hostPlatform != stdenv.buildPlatform;
 in
 
 with stdenv.lib;
@@ -21,8 +26,7 @@ stdenv.mkDerivation {
     inherit sha256;
   };
 
-  patches = optional (version == "6.5") ./perl.patch
-    ++ optional crossBuildTools ./cross-tools-flags.patch;
+  patches = optional crossBuildTools ./cross-tools-flags.patch;
 
   # ncurses is required to build `makedoc'
   # this feature is introduced by the ./cross-tools-flags.patch
diff --git a/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch b/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch
index da28a309719..f0a8c4dfdc1 100644
--- a/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch
+++ b/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch
@@ -4,8 +4,9 @@ diff -ur texinfo-6.5/configure texinfo-6.5-patched/configure
 @@ -23281,7 +23281,7 @@
    # env -i gives this build host configure a clean environment;
    # consequently, we have to re-initialize $PATH.
-   env -i CC="$CC_FOR_BUILD" AR="$AR_FOR_BUILD" RANLIB="$RANLIB_FOR_BUILD" \
+-  env -i CC="$BUILD_CC" AR="$BUILD_AR" RANLIB="$BUILD_RANLIB" \
 -      PATH="$PATH" \
++  env -i CC="$CC_FOR_BUILD" AR="$AR_FOR_BUILD" RANLIB="$RANLIB_FOR_BUILD" \
 +      PATH="$PATH" CFLAGS="$NATIVE_TOOLS_CFLAGS" LDFLAGS="$NATIVE_TOOLS_LDFLAGS" \
        tools_only=1 \
      ${confdir}/configure --build=${build} --host=${build} \
diff --git a/pkgs/development/tools/misc/texinfo/perl.patch b/pkgs/development/tools/misc/texinfo/perl.patch
deleted file mode 100644
index e651b37371c..00000000000
--- a/pkgs/development/tools/misc/texinfo/perl.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Adapted from http://svn.savannah.gnu.org/viewvc/texinfo/
-Author: gavin
---- trunk/tp/Texinfo/Parser.pm  2018-06-04 19:51:36 UTC (rev 8006)
-+++ trunk/tp/Texinfo/Parser.pm  2018-07-13 15:31:28 UTC (rev 8007)
-@@ -5531,11 +5531,11 @@
-     }
-   } elsif ($command eq 'clickstyle') {
-     # REMACRO
--    if ($line =~ /^\s+@([[:alnum:]][[:alnum:]\-]*)({})?\s*/) {
-+    if ($line =~ /^\s+@([[:alnum:]][[:alnum:]\-]*)(\{\})?\s*/) {
-       $args = ['@'.$1];
-       $self->{'clickstyle'} = $1;
-       $remaining = $line;
--      $remaining =~ s/^\s+@([[:alnum:]][[:alnum:]\-]*)({})?\s*(\@(c|comment)((\@|\s+).*)?)?//;
-+      $remaining =~ s/^\s+@([[:alnum:]][[:alnum:]\-]*)(\{\})?\s*(\@(c|comment)((\@|\s+).*)?)?//;
-       $has_comment = 1 if (defined($4));
-     } else {
-       $self->line_error (sprintf($self->__(
---- trunk/tp/Texinfo/Convert/XSParagraph/xspara.c       2018-07-13 15:31:28 UTC (rev 8007)
-+++ trunk/tp/Texinfo/Convert/XSParagraph/xspara.c       2018-07-13 15:39:29 UTC (rev 8008)
-@@ -248,6 +248,11 @@
- 
-   dTHX;
- 
-+#if PERL_VERSION > 27 || (PERL_VERSION == 27 && PERL_SUBVERSION > 8)
-+  /* needed due to thread-safe locale handling in newer perls */
-+  switch_to_global_locale();
-+#endif
-+
-   if (setlocale (LC_CTYPE, "en_US.UTF-8")
-       || setlocale (LC_CTYPE, "en_US.utf8"))
-     goto success;
-@@ -320,6 +325,10 @@
-     {
- success: ;
-       free (utf8_locale);
-+#if PERL_VERSION > 27 || (PERL_VERSION == 27 && PERL_SUBVERSION > 8)
-+      /* needed due to thread-safe locale handling in newer perls */
-+      sync_locale();
-+#endif
-       /*
-       fprintf (stderr, "tried to set LC_CTYPE to UTF-8.\n");
-       fprintf (stderr, "character encoding is: %s\n",
diff --git a/pkgs/development/tools/misc/texlab/default.nix b/pkgs/development/tools/misc/texlab/default.nix
index 8185b14cd73..8b734bdd1c1 100644
--- a/pkgs/development/tools/misc/texlab/default.nix
+++ b/pkgs/development/tools/misc/texlab/default.nix
@@ -31,6 +31,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://texlab.netlify.com/";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar metadark ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/misc/tockloader/default.nix b/pkgs/development/tools/misc/tockloader/default.nix
index 18c5393a6b7..298e6f7c9d5 100644
--- a/pkgs/development/tools/misc/tockloader/default.nix
+++ b/pkgs/development/tools/misc/tockloader/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "tockloader";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0l8mvlqzyq2bfb6g5zhgv2ndgyyrmpww2l7f2snbli73g6x5j2g2";
+    sha256 = "11k4ppwq845lnj265ydfr0cn1rrym5amx2i19x1h3ccbxc3gsy3x";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/development/tools/misc/tokei/default.nix b/pkgs/development/tools/misc/tokei/default.nix
index fe54aff87c5..baf14b933dc 100644
--- a/pkgs/development/tools/misc/tokei/default.nix
+++ b/pkgs/development/tools/misc/tokei/default.nix
@@ -28,6 +28,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/XAMPPRocky/tokei";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ gebner lilyball ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/mockgen/default.nix b/pkgs/development/tools/mockgen/default.nix
new file mode 100644
index 00000000000..def5e892e2f
--- /dev/null
+++ b/pkgs/development/tools/mockgen/default.nix
@@ -0,0 +1,23 @@
+{ buildGoModule, lib, fetchFromGitHub }:
+buildGoModule rec {
+  pname = "mockgen";
+  version = "1.4.4";
+  src = fetchFromGitHub {
+    owner = "golang";
+    repo = "mock";
+    rev = "v${version}";
+    sha256 = "1lj0dvd6div4jaq1s0afpwqaq9ah8cxhkq93wii2ably1xmp2l0a";
+  };
+  vendorSha256 = "1md4cg1zzhc276sc7i2v0xvg5pf6gzy0n9ga2g1lx3d572igq1wy";
+
+  doCheck = false;
+
+  subPackages = [ "mockgen" ];
+
+  meta = with lib; {
+    description = "GoMock is a mocking framework for the Go programming language.";
+    homepage = "https://github.com/golang/mock";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bouk ];
+  };
+}
diff --git a/pkgs/development/tools/mod/default.nix b/pkgs/development/tools/mod/default.nix
index 839594f4cc8..32fd2258daa 100644
--- a/pkgs/development/tools/mod/default.nix
+++ b/pkgs/development/tools/mod/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "032s62rjjq7bqiz5fg17yfkq4j4dsbl6vhvs1wf2sg8jvbqmvdwn";
 
+  doCheck = false;
+
   subPackages = [ "cmd/mod" ];
 
   meta = with lib; {
@@ -26,4 +28,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ kalbasit ];
     platforms = platforms.linux ++ platforms.darwin;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/modd/default.nix b/pkgs/development/tools/modd/default.nix
index 106f23ac3f1..a9172d79277 100644
--- a/pkgs/development/tools/modd/default.nix
+++ b/pkgs/development/tools/modd/default.nix
@@ -17,6 +17,5 @@ buildGoPackage rec {
     homepage = "https://github.com/cortesi/modd";
     license = licenses.mit;
     maintainers = with maintainers; [ kierdavis ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/mustache-go/default.nix b/pkgs/development/tools/mustache-go/default.nix
index 2f3d21f9c82..7bcf72df55c 100644
--- a/pkgs/development/tools/mustache-go/default.nix
+++ b/pkgs/development/tools/mustache-go/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "mustache-go";
-  version = "1.0.1";
+  version = "1.2.0";
 
   goPackagePath = "github.com/cbroglie/mustache";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "cbroglie";
     repo = "mustache";
     rev = "v${version}";
-    sha256 = "1aywj4fijsv66n6gjiz3l8g1vg0fqzwbf8dcdcgfsvsdb056p90v";
+    sha256 = "0mnh5zbpfwymddm1dppg9i9d1r8jqyg03z2gl6c5a8fgbrnxpjvc";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/node-webkit/nw12.nix b/pkgs/development/tools/node-webkit/nw12.nix
index 307e123bf77..ffd2a78f509 100644
--- a/pkgs/development/tools/node-webkit/nw12.nix
+++ b/pkgs/development/tools/node-webkit/nw12.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, buildEnv, makeWrapper
+{ stdenv, lib, fetchurl, buildEnv, makeWrapper
 , xorg, alsaLib, dbus, glib, gtk2, atk, pango, freetype, fontconfig
 , gdk-pixbuf, cairo, nss, nspr, gconf, expat, systemd, libcap
 , libnotify}:
@@ -39,7 +39,7 @@ in stdenv.mkDerivation rec {
     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/nwjs/nw
     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/nwjs/nwjc
 
-    ln -s ${systemd.lib}/lib/libudev.so $out/share/nwjs/libudev.so.0
+    ln -s ${lib.getLib systemd}/lib/libudev.so $out/share/nwjs/libudev.so.0
 
     patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ]}:$out/share/nwjs" $out/share/nwjs/nw
     patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/nwjs" $out/share/nwjs/nwjc
diff --git a/pkgs/development/tools/nsis/default.nix b/pkgs/development/tools/nsis/default.nix
index 5b9e7434a8d..33be56c539d 100644
--- a/pkgs/development/tools/nsis/default.nix
+++ b/pkgs/development/tools/nsis/default.nix
@@ -1,18 +1,23 @@
-{ stdenv, fetchurl, fetchzip, scons, zlib }:
+{ stdenv
+, fetchurl
+, fetchzip
+, sconsPackages
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "nsis";
-  version = "3.05";
+  version = "3.06.1";
 
   src =
     fetchurl {
       url = "mirror://sourceforge/project/nsis/NSIS%203/${version}/nsis-${version}-src.tar.bz2";
-      sha256 = "1sbwx5vzpddharkb7nj4q5z3i5fbg4lan63ng738cw4hmc4v7qdn";
+      sha256 = "1w1z2m982l6j8lw8hy91c3979wbnqglcf4148f9v79vl32znhpcv";
     };
   srcWinDistributable =
     fetchzip {
       url = "mirror://sourceforge/project/nsis/NSIS%203/${version}/nsis-${version}.zip";
-      sha256 = "0i3pzdilyy5g0r2c92pd2jl92ji9f75vv98mndzq8vw03a34yh3q";
+      sha256 = "04qm9jqbcybpwcrjlksggffdyafzwxxcaz9xhjw8w5rb95x7lw5q";
     };
 
   postUnpack = ''
@@ -22,7 +27,7 @@ stdenv.mkDerivation rec {
     chmod -R u+w $out/share/nsis
   '';
 
-  nativeBuildInputs = [ scons.py2 ];
+  nativeBuildInputs = [ sconsPackages.scons_3_1_2 ];
   buildInputs = [ zlib ];
 
   sconsFlags = [
diff --git a/pkgs/development/tools/nwjs/default.nix b/pkgs/development/tools/nwjs/default.nix
index ab16d951151..4eedc003272 100644
--- a/pkgs/development/tools/nwjs/default.nix
+++ b/pkgs/development/tools/nwjs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, buildEnv, makeWrapper
+{ stdenv, lib, fetchurl, buildEnv, makeWrapper
 
 , xorg, alsaLib, dbus, glib, gtk3, atk, pango, freetype, fontconfig
 , gdk-pixbuf, cairo, nss, nspr, gconf, expat, systemd, libcap
@@ -61,7 +61,7 @@ in stdenv.mkDerivation rec {
 
       patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/nwjs/nw
 
-      ln -s ${systemd.lib}/lib/libudev.so $out/share/nwjs/libudev.so.0
+      ln -s ${lib.getLib systemd}/lib/libudev.so $out/share/nwjs/libudev.so.0
 
       libpath="$out/share/nwjs/lib/"
       for f in "$libpath"/*.so; do
diff --git a/pkgs/development/tools/ocaml/camlp4/default.nix b/pkgs/development/tools/ocaml/camlp4/default.nix
index ea1b3965098..73228655cca 100644
--- a/pkgs/development/tools/ocaml/camlp4/default.nix
+++ b/pkgs/development/tools/ocaml/camlp4/default.nix
@@ -43,6 +43,11 @@ stdenv.mkDerivation rec {
   dontAddPrefix = true;
 
   preConfigure = ''
+    # increase stack space for spacetime variant of the compiler
+    # https://github.com/ocaml/ocaml/issues/7435
+    # but disallowed by darwin sandbox
+    ulimit -s unlimited || true
+
     configureFlagsArray=(
       --bindir=$out/bin
       --libdir=$out/lib/ocaml/${ocaml.version}/site-lib
diff --git a/pkgs/development/tools/ocaml/dune-release/default.nix b/pkgs/development/tools/ocaml/dune-release/default.nix
index ba8fa4bba6f..c267b2757a4 100644
--- a/pkgs/development/tools/ocaml/dune-release/default.nix
+++ b/pkgs/development/tools/ocaml/dune-release/default.nix
@@ -1,6 +1,6 @@
 { lib, buildDunePackage, fetchurl, makeWrapper
 , curly, fmt, bos, cmdliner, re, rresult, logs
-, odoc, opam-format, opam-core, opam-state
+, odoc, opam-format, opam-core, opam-state, yojson
 , opam, git, findlib, mercurial, bzip2, gnutar, coreutils
 , alcotest, mdx
 }:
@@ -10,27 +10,33 @@
 let runtimeInputs = [ opam findlib git mercurial bzip2 gnutar coreutils ];
 in buildDunePackage rec {
   pname = "dune-release";
-  version = "1.3.3";
+  version = "1.4.0";
 
   minimumOCamlVersion = "4.06";
 
   src = fetchurl {
     url = "https://github.com/ocamllabs/${pname}/releases/download/${version}/${pname}-${version}.tbz";
-    sha256 = "04qmgvjh1233ri878wi5kifdd1070w5pbfkd8yk3nnqnslz35zlb";
+    sha256 = "1frinv1rsrm30q6jclicsswpshkdwwdgxx7sp6q9w4c2p211n1ln";
   };
 
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ curly fmt cmdliner re opam-format opam-state opam-core
-                  rresult logs odoc bos ];
-  checkInputs = [ alcotest mdx ];
+                  rresult logs odoc bos yojson ];
+  checkInputs = [ alcotest mdx ] ++ runtimeInputs;
   doCheck = true;
 
   useDune2 = true;
 
-  # remove check for curl in PATH, since curly is patched
-  # to have a fixed path to the binary in nix store
   postPatch = ''
+    # remove check for curl in PATH, since curly is patched
+    # to have a fixed path to the binary in nix store
     sed -i '/must_exist (Cmd\.v "curl"/d' lib/github.ml
+
+    # set bogus user info in git so git commit doesn't fail
+    sed -i '/git init/ a \    $ git config user.name test; git config user.email "pseudo@pseudo.invalid"' \
+      tests/bin/{delegate_info,errors,tag,no_doc,x-commit-hash}/run.t
+    # ignore weird yes error message
+    sed -i 's/yes |/yes 2>\/dev\/null |/' tests/bin/no_doc/run.t
   '';
 
   # tool specific env vars have been deprecated, use PATH
diff --git a/pkgs/development/tools/ocaml/dune/2.nix b/pkgs/development/tools/ocaml/dune/2.nix
index ac3b7f2a429..177fa96f5b9 100644
--- a/pkgs/development/tools/ocaml/dune/2.nix
+++ b/pkgs/development/tools/ocaml/dune/2.nix
@@ -1,22 +1,30 @@
-{ stdenv, fetchurl, ocaml, findlib }:
+{ stdenv, fetchurl, ocaml, findlib, fetchpatch }:
 
-if stdenv.lib.versionOlder ocaml.version "4.07"
+if stdenv.lib.versionOlder ocaml.version "4.08"
 then throw "dune is not available for OCaml ${ocaml.version}"
 else
 
 stdenv.mkDerivation rec {
   pname = "dune";
-  version = "2.6.0";
+  version = "2.7.1";
 
   src = fetchurl {
     url = "https://github.com/ocaml/dune/releases/download/${version}/dune-${version}.tbz";
-    sha256 = "1hvgj78xqqqph8dwn1jjkjp8bpppvwzx33lzkvwh5wn5zd4xij8j";
+    sha256 = "0pcjf209gynjwipnpplaqyvyivnawqiwhvqnivhkybisicpqyln3";
   };
 
   buildInputs = [ ocaml findlib ];
 
   buildFlags = "release";
 
+  patches = [
+    # Fix setup.ml configure path. Remove with the next release.
+    (fetchpatch {
+      url = "https://github.com/ocaml/dune/commit/8a3d7f2f2015b71384caa07226d1a89dba9d6c25.patch";
+      sha256 = "0dw4q10030h9xcdlxw2vp7qm0hd2qpkb98rir5d55m9vn65w8j28";
+    })
+  ];
+
   dontAddPrefix = true;
 
   installFlags = [ "PREFIX=${placeholder "out"}" "LIBDIR=$(OCAMLFIND_DESTDIR)" ];
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
index 888cc51a99d..c0812c39a3e 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
@@ -1,18 +1,19 @@
 { lib, fetchurl, buildDunePackage
 , ocaml, findlib, cmdliner, dune_2, cppo, yojson, ocaml-migrate-parsetree
+, menhir
 }:
 
 buildDunePackage rec {
 	pname = "js_of_ocaml-compiler";
-	version = "3.6.0";
+	version = "3.7.0";
 	useDune2 = true;
 
 	src = fetchurl {
 		url = "https://github.com/ocsigen/js_of_ocaml/releases/download/${version}/js_of_ocaml-${version}.tbz";
-		sha256 = "51eaa89c83ef3168ef270bf7997cbc35a747936d3f51aa6fac58fb0323b4cbb0";
+		sha256 = "0rw6cfkl3zlyav8q2w7grxxqjmg35mz5rgvmkiqb58nl4gmgzx6w";
 	};
 
-	nativeBuildInputs = [ ocaml findlib dune_2 cppo ];
+	nativeBuildInputs = [ ocaml findlib dune_2 cppo menhir ];
   buildInputs = [ cmdliner ];
 
   configurePlatforms = [];
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/default.nix b/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
index 666cda592fb..9a57b590d6c 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
@@ -10,8 +10,6 @@ stdenv.mkDerivation {
   buildInputs = [ findlib ocaml-migrate-parsetree ppx_tools_versioned ];
   nativeBuildInputs = [ ocaml findlib dune_2 ];
 
-  postPatch = "patchShebangs lib/generate_stubs.sh";
-
 	propagatedBuildInputs = [ js_of_ocaml-compiler uchar ];
 
 	buildPhase = "dune build -p js_of_ocaml";
diff --git a/pkgs/development/tools/ocaml/merlin/default.nix b/pkgs/development/tools/ocaml/merlin/default.nix
index 4b11dd13983..54712be2b6e 100644
--- a/pkgs/development/tools/ocaml/merlin/default.nix
+++ b/pkgs/development/tools/ocaml/merlin/default.nix
@@ -2,13 +2,13 @@
 
 buildDunePackage rec {
   pname = "merlin";
-  version = "3.3.6";
+  version = "3.3.9";
 
   minimumOCamlVersion = "4.02.1";
 
   src = fetchurl {
     url = "https://github.com/ocaml/merlin/releases/download/v${version}/merlin-v${version}.tbz";
-    sha256 = "1360cm0jkn2v2y5p3yzdyw9661a1vpddcibkbfblmk95qafx4civ";
+    sha256 = "00ng8299l5rzpak8ljxzr6dgxw6z52ivm91159ahv09xk4d0y5x3";
   };
 
   buildInputs = [ yojson ];
diff --git a/pkgs/development/tools/ocaml/ocamlformat/default.nix b/pkgs/development/tools/ocaml/ocamlformat/default.nix
index c79f65b47a8..069f0471595 100644
--- a/pkgs/development/tools/ocaml/ocamlformat/default.nix
+++ b/pkgs/development/tools/ocaml/ocamlformat/default.nix
@@ -2,7 +2,7 @@
 
 with ocamlPackages; buildDunePackage rec {
   pname = "ocamlformat";
-  version = "0.14.2";
+  version = "0.15.0";
 
   minimumOCamlVersion = "4.06";
 
@@ -10,7 +10,7 @@ with ocamlPackages; buildDunePackage rec {
 
   src = fetchurl {
     url = "https://github.com/ocaml-ppx/ocamlformat/releases/download/${version}/ocamlformat-${version}.tbz";
-    sha256 = "16phz1sg9b070p6fm8d42j0piizg05vghdjmw8aj7xm82b1pm7sz";
+    sha256 = "0190vz59n6ma9ca1m3syl3mc8i1smj1m3d8x1jp21f710y4llfr6";
   };
 
   buildInputs = [
@@ -29,7 +29,7 @@ with ocamlPackages; buildDunePackage rec {
   meta = {
     homepage = "https://github.com/ocaml-ppx/ocamlformat";
     description = "Auto-formatter for OCaml code";
-    maintainers = [ lib.maintainers.Zimmi48 ];
+    maintainers = [ lib.maintainers.Zimmi48 lib.maintainers.marsam ];
     license = lib.licenses.mit;
   };
 }
diff --git a/pkgs/development/tools/ocaml/ocp-indent/default.nix b/pkgs/development/tools/ocaml/ocp-indent/default.nix
index 729985f87fd..675f66dcf47 100644
--- a/pkgs/development/tools/ocaml/ocp-indent/default.nix
+++ b/pkgs/development/tools/ocaml/ocp-indent/default.nix
@@ -1,12 +1,12 @@
 { lib, fetchzip, buildDunePackage, cmdliner }:
 
 buildDunePackage rec {
-  version = "1.8.1";
+  version = "1.8.2";
   pname = "ocp-indent";
 
   src = fetchzip {
     url = "https://github.com/OCamlPro/ocp-indent/archive/${version}.tar.gz";
-    sha256 = "0h4ysh36q1fxc40inhsdq2swqpfm15lpilqqcafs5ska42pn7s68";
+    sha256 = "1dvcl108ir9nqkk4mjm9xhhj4p9dx9bmg8bnms54fizs1x3x8ar3";
   };
 
   minimumOCamlVersion = "4.02";
diff --git a/pkgs/development/tools/ocaml/ocp-index/default.nix b/pkgs/development/tools/ocaml/ocp-index/default.nix
index b9404016b4e..9c888e284fc 100644
--- a/pkgs/development/tools/ocaml/ocp-index/default.nix
+++ b/pkgs/development/tools/ocaml/ocp-index/default.nix
@@ -1,15 +1,15 @@
-{ lib, fetchurl, buildDunePackage, ocp-build, ocp-indent, cmdliner, re }:
+{ lib, fetchzip, buildDunePackage, cppo, ocp-indent, cmdliner, re }:
 
 buildDunePackage rec {
   pname = "ocp-index";
-  version = "1.2";
+  version = "1.2.1";
 
-  src = fetchurl {
-    url = "https://github.com/OCamlPro/ocp-index/releases/download/${version}/ocp-index-${version}.tbz";
-    sha256 = "1lchw02sakjjppmzr0rzlarwbg1lc2bl7pwcfpsiycnaz46x6gmr";
+  src = fetchzip {
+    url = "https://github.com/OCamlPro/ocp-index/archive/${version}.tar.gz";
+    sha256 = "08r7mxdnxmhff37fw4hmrpjgckgi5kaiiiirwp4rmdl594z0h9c8";
   };
 
-  buildInputs = [ ocp-build cmdliner re ];
+  buildInputs = [ cppo cmdliner re ];
 
   propagatedBuildInputs = [ ocp-indent ];
 
diff --git a/pkgs/development/tools/omnisharp-roslyn/default.nix b/pkgs/development/tools/omnisharp-roslyn/default.nix
index 973f777d8cb..3c51779c566 100644
--- a/pkgs/development/tools/omnisharp-roslyn/default.nix
+++ b/pkgs/development/tools/omnisharp-roslyn/default.nix
@@ -7,11 +7,11 @@
 stdenv.mkDerivation rec {
 
   pname = "omnisharp-roslyn";
-  version = "1.35.1";
+  version = "1.35.2";
 
   src = fetchurl {
     url = "https://github.com/OmniSharp/omnisharp-roslyn/releases/download/v${version}/omnisharp-mono.tar.gz";
-    sha256 = "0gx87qc9r3lhqn6q95y74z67sjcxnazkkdi9zswmaqyvjn8x7vf4";
+    sha256 = "0k4crybddqpcg1vi1ax1s85w4hlknz6kaqn4cvv279dkm9aqxbp8";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/open-policy-agent/default.nix b/pkgs/development/tools/open-policy-agent/default.nix
index d1ecdd1efd9..d31a7e3ab60 100644
--- a/pkgs/development/tools/open-policy-agent/default.nix
+++ b/pkgs/development/tools/open-policy-agent/default.nix
@@ -2,22 +2,26 @@
 
 buildGoPackage rec {
   pname = "open-policy-agent";
-  version = "0.15.0";
+  version = "0.23.2";
 
   goPackagePath = "github.com/open-policy-agent/opa";
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "opa";
     rev = "v${version}";
-    sha256 = "0i9735v73a7wfq02p4hsy61g7d7bip6zmb8bnsiz2ma84g2g533w";
+    sha256 = "18hpanfrzg6xnq1g0yws6g0lw4y191pnrqphccv13j6kqk3k10ps";
   };
   goDeps = ./deps.nix;
 
+  buildFlagsArray = ''
+    -ldflags=
+      -X ${goPackagePath}/version.Version=${version}
+  '';
+
   meta = with lib; {
     description = "General-purpose policy engine";
     homepage = "https://www.openpolicyagent.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ lewo ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/open-policy-agent/deps.nix b/pkgs/development/tools/open-policy-agent/deps.nix
index ba9eed180d5..b12502f5e94 100644
--- a/pkgs/development/tools/open-policy-agent/deps.nix
+++ b/pkgs/development/tools/open-policy-agent/deps.nix
@@ -5,8 +5,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/OneOfOne/xxhash";
-      rev = "v1.2.3";
-      sha256 = "0hxyvv77ghja6vim210s7fa1n2zlvykvjak8s3k3nkj85h611kwb";
+      rev = "v1.2.7";
+      sha256 = "0fqknn2gnicsixm43czd2r6p99ckf9i1b63i11wsbi4lqggwrp0m";
     };
   }
   {
@@ -19,12 +19,12 @@
     };
   }
   {
-    goPackagePath = "github.com/cespare/xxhash";
+    goPackagePath = "github.com/cpuguy83/go-md2man";
     fetch = {
       type = "git";
-      url = "https://github.com/cespare/xxhash";
-      rev = "v1.1.0";
-      sha256 = "1qyzlcdcayavfazvi03izx83fvip8h36kis44zr2sg7xf6sx6l4x";
+      url = "https://github.com/cpuguy83/go-md2man";
+      rev = "v1.0.10";
+      sha256 = "1bqkf2bvy1dns9zd24k81mh2p1zxsx2nhq5cj8dz2vgkv1xkh60i";
     };
   }
   {
@@ -145,15 +145,6 @@
     };
   }
   {
-    goPackagePath = "github.com/mna/pigeon";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mna/pigeon";
-      rev = "bb0192cfc2ae";
-      sha256 = "1yid3pm46hjszikbap2wbfh97vpnha0qncywlnm1mk1pzglfgdy9";
-    };
-  }
-  {
     goPackagePath = "github.com/olekukonko/tablewriter";
     fetch = {
       type = "git";
@@ -235,21 +226,21 @@
     };
   }
   {
-    goPackagePath = "github.com/sirupsen/logrus";
+    goPackagePath = "github.com/russross/blackfriday";
     fetch = {
       type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev = "v1.4.1";
-      sha256 = "1m7ny9jkb98cxqhsp13xa5hnqh1s9f25x04q6arsala4zswsw33c";
+      url = "https://github.com/russross/blackfriday";
+      rev = "v1.5.2";
+      sha256 = "0jzbfzcywqcrnym4gxlz6nphmm1grg6wsl4f0r9x384rn83wkj7c";
     };
   }
   {
-    goPackagePath = "github.com/spaolacci/murmur3";
+    goPackagePath = "github.com/sirupsen/logrus";
     fetch = {
       type = "git";
-      url = "https://github.com/spaolacci/murmur3";
-      rev = "f09979ecbc72";
-      sha256 = "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25";
+      url = "https://github.com/sirupsen/logrus";
+      rev = "v1.4.1";
+      sha256 = "1m7ny9jkb98cxqhsp13xa5hnqh1s9f25x04q6arsala4zswsw33c";
     };
   }
   {
@@ -373,7 +364,7 @@
     goPackagePath = "google.golang.org/genproto";
     fetch = {
       type = "git";
-      url = "https://github.com/google/go-genproto";
+      url = "https://github.com/googleapis/go-genproto";
       rev = "11092d34479b";
       sha256 = "12qcrjq658zga5fj4n0wgm11pzpr3gafwg25cinl5qcq4p9cnl0r";
     };
diff --git a/pkgs/development/tools/operator-sdk/default.nix b/pkgs/development/tools/operator-sdk/default.nix
new file mode 100644
index 00000000000..cec885499bf
--- /dev/null
+++ b/pkgs/development/tools/operator-sdk/default.nix
@@ -0,0 +1,35 @@
+{ buildGoModule, go, lib, fetchFromGitHub, makeWrapper }:
+
+buildGoModule rec {
+  pname = "operator-sdk";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "operator-framework";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1s59rgr0ssics1487mvx0h37zs7dfjimsvkbs2d8wqc3r8asw0g4";
+  };
+
+  vendorSha256 = "0xvjsiaa3qvlix1fm07z080vh79wg0xyx2s6jqnqn7fb3nh65kn7";
+
+  doCheck = false;
+
+  subPackages = [ "cmd/operator-sdk" ];
+
+  buildInputs = [ go makeWrapper ];
+
+  # operator-sdk uses the go compiler at runtime
+  allowGoReference = true;
+  postFixup = ''
+    wrapProgram $out/bin/operator-sdk --prefix PATH : ${lib.makeBinPath [ go ]}
+  '';
+
+  meta = with lib; {
+    description = "SDK for building Kubernetes applications. Provides high level APIs, useful abstractions, and project scaffolding.";
+    homepage = "https://github.com/operator-framework/operator-sdk";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ arnarg ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/osslsigncode/default.nix b/pkgs/development/tools/osslsigncode/default.nix
index a867e3850e2..6924ec9e37a 100644
--- a/pkgs/development/tools/osslsigncode/default.nix
+++ b/pkgs/development/tools/osslsigncode/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "osslsigncode";
-  version = "unstable-2019-07-25";
+  version = "unstable-2020-08-02";
 
   src = fetchFromGitHub {
     owner = "mtrojnar";
     repo = pname;
-    rev = "18810b7e0bb1d8e0d25b6c2565a065cf66bce5d7";
-    sha256 = "02jnbr3xdsb5dpll3k65080ryrfr7agawmjavwxd0v40w0an5yq8";
+    rev = "01b3fb5b542ed0b41e3860aeee7a85b735491ff2";
+    sha256 = "03ynm1ycbi86blglma3xiwadck8kc5yb0gawjzlhyv90jidn680l";
   };
 
   nativeBuildInputs = [ autoreconfHook libgsf pkgconfig openssl curl ];
@@ -24,8 +24,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/mtrojnar/osslsigncode";
     description = "OpenSSL based Authenticode signing for PE/MSI/Java CAB files";
     license = licenses.gpl3Plus;
-    maintainers = [ maintainers.mmahut ];
+    maintainers = with maintainers; [ mmahut ];
     platforms = platforms.all;
   };
 }
-
diff --git a/pkgs/development/tools/out-of-tree/default.nix b/pkgs/development/tools/out-of-tree/default.nix
index ff5a3ec1b54..b902dd2cc40 100644
--- a/pkgs/development/tools/out-of-tree/default.nix
+++ b/pkgs/development/tools/out-of-tree/default.nix
@@ -14,6 +14,8 @@ buildGoModule rec {
 
   vendorSha256 = "0kg5c4h7xnwfcfshrh5n76xv98wzr73kxzr8q65iphsjimbxcpy3";
 
+  doCheck = false;
+
   postFixup = ''
     wrapProgram $out/bin/out-of-tree \
       --prefix PATH : "${stdenv.lib.makeBinPath [ qemu docker which ]}"
diff --git a/pkgs/development/tools/packer/default.nix b/pkgs/development/tools/packer/default.nix
index 382fda72a4c..909e821a6d1 100644
--- a/pkgs/development/tools/packer/default.nix
+++ b/pkgs/development/tools/packer/default.nix
@@ -1,7 +1,7 @@
 { stdenv, buildGoPackage, fetchFromGitHub }:
 buildGoPackage rec {
   pname = "packer";
-  version = "1.6.0";
+  version = "1.6.2";
 
   goPackagePath = "github.com/hashicorp/packer";
 
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "hashicorp";
     repo = "packer";
     rev = "v${version}";
-    sha256 = "0qddljg330i7059kvij84pjzz67g6qh1w2zcmsj6rv58ix8xsfx7";
+    sha256 = "0kr9whv3s0f8866yjmwg311j3kcj29bp5xwpnv43ama4m1mq3bm7";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/packet-cli/default.nix b/pkgs/development/tools/packet-cli/default.nix
index 546b441db4b..f7bcc8bf8f4 100644
--- a/pkgs/development/tools/packet-cli/default.nix
+++ b/pkgs/development/tools/packet-cli/default.nix
@@ -2,22 +2,27 @@
 
 buildGoModule rec {
   pname = "packet-cli";
-  version = "0.0.7";
+  version = "0.0.8";
 
   src = fetchFromGitHub {
     owner = "packethost";
     repo = pname;
     rev = version;
-    sha256 = "1ixdqq0xwy2l2m1w93rzqw5gfrzw7w03r42qab3n733m4jkf4ni1";
+    sha256 = "0ys6zyhyi65g0sj15pb6rslgbjgkh73y32gc0yvhfd6xmgzaxpxf";
   };
 
-  vendorSha256 = "10praxaiscxq4v3zknrabldxl7rpklkr5wdlwa5lxsx0if8mrvp7";
+  vendorSha256 = "1h9p3hrr61hwkhkh4qbw0ld3hd5xi75qm8rwfrpz5z06jba1ll25";
+
+  postInstall = ''
+    ln -s $out/bin/packet-cli $out/bin/packet
+  '';
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Official Packet CLI";
     homepage = "https://github.com/packethost/packet-cli";
     license = licenses.mit;
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/parinfer-rust/default.nix b/pkgs/development/tools/parinfer-rust/default.nix
index d016d21b738..f1627c7ed39 100644
--- a/pkgs/development/tools/parinfer-rust/default.nix
+++ b/pkgs/development/tools/parinfer-rust/default.nix
@@ -32,6 +32,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/eraserhd/parinfer-rust";
     license = licenses.isc;
     maintainers = with maintainers; [ eraserhd ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/parsing/bison/default.nix b/pkgs/development/tools/parsing/bison/default.nix
index 0b6476998bf..ca422f931da 100644
--- a/pkgs/development/tools/parsing/bison/default.nix
+++ b/pkgs/development/tools/parsing/bison/default.nix
@@ -1,12 +1,17 @@
 { stdenv, fetchurl, m4, perl, help2man }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   pname = "bison";
-  version = "3.6.3";
+  version = "3.7.1";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "0qry9ar16dpg9nzrq7jh3fqh4ah2xvcf6v00fc81z08yjd1ljk2b";
+    sha256 = "04vx6sah3bnr3a5n9knw306sb3y41pjfl7k9ihbsimghkj1m5n8x";
   };
 
   nativeBuildInputs = [ m4 perl ] ++ stdenv.lib.optional stdenv.isSunOS help2man;
diff --git a/pkgs/development/tools/parsing/tree-sitter/default.nix b/pkgs/development/tools/parsing/tree-sitter/default.nix
index e77b338a20a..b91acdca688 100644
--- a/pkgs/development/tools/parsing/tree-sitter/default.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/default.nix
@@ -55,13 +55,16 @@ in rustPlatform.buildRustPackage {
     # needed for the tests
     rm -rf test/fixtures/grammars
     ln -s ${grammars} test/fixtures/grammars
+
+    # These functions do not appear in the source code
+    sed -i /_ts_query_context/d lib/binding_web/exports.json
+    sed -i /___assert_fail/d lib/binding_web/exports.json
   '';
 
   # Compile web assembly with emscripten. The --debug flag prevents us from
   # minifying the JavaScript; passing it allows us to side-step more Node
   # JS dependencies for installation.
   preBuild = ''
-    HOME=/tmp
     bash ./script/build-wasm --debug
   '';
 
@@ -90,7 +93,6 @@ 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
     '';
-    platforms = lib.platforms.all;
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ Profpatsch ];
     # Darwin needs some more work with default libraries
diff --git a/pkgs/development/tools/pet/default.nix b/pkgs/development/tools/pet/default.nix
index d37c529ecf9..4ed16d41746 100644
--- a/pkgs/development/tools/pet/default.nix
+++ b/pkgs/development/tools/pet/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0pnd89iqdj3f719xf4iy5r04n51d0rrrf0qb2zjirpw7vh7g82i9";
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   meta = with lib; {
@@ -22,4 +24,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ kalbasit ];
     platforms = platforms.linux ++ platforms.darwin;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/pgformatter/default.nix b/pkgs/development/tools/pgformatter/default.nix
index c1cb8cea8a6..1cd9f9ea17b 100644
--- a/pkgs/development/tools/pgformatter/default.nix
+++ b/pkgs/development/tools/pgformatter/default.nix
@@ -2,13 +2,13 @@
 
 perlPackages.buildPerlPackage rec {
   pname = "pgformatter";
-  version = "4.3";
+  version = "4.4";
 
   src = fetchFromGitHub {
     owner = "darold";
     repo = "pgFormatter";
     rev = "v${version}";
-    sha256 = "0n8ydj01nmnkd8glzjb0yrsyax1pmdfvaxb5xj4pkb2mf6zm94qy";
+    sha256 = "1sqjw6q005lws7qhkd26jqyb1xqmpcklzw5hk8paxxi8mzyjn0jp";
   };
 
   outputs = [ "out" ];
diff --git a/pkgs/development/tools/pipenv/default.nix b/pkgs/development/tools/pipenv/default.nix
index 5f9e122c16a..3a6ea879e58 100644
--- a/pkgs/development/tools/pipenv/default.nix
+++ b/pkgs/development/tools/pipenv/default.nix
@@ -6,7 +6,7 @@ with python3.pkgs;
 
 let
 
-  runtimeDeps = [
+  runtimeDeps = ps: with ps; [
     certifi
     setuptools
     pip
@@ -14,15 +14,15 @@ let
     virtualenv-clone
   ];
 
-  pythonEnv = python3.withPackages(ps: with ps; runtimeDeps);
+  pythonEnv = python3.withPackages runtimeDeps;
 
 in buildPythonApplication rec {
   pname = "pipenv";
-  version = "2020.6.2";
+  version = "2020.8.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12s7c3f3k5v1szdhklsxwisf9v3dk4mb9fh7762afpgs8mrrmm3x";
+    sha256 = "eff0e10eadb330f612edfa5051d3d8e775e9e0e918c3c50361da703bd0daa035";
   };
 
   LC_ALL = "en_US.UTF-8";
@@ -36,7 +36,7 @@ in buildPythonApplication rec {
       --replace "sys.executable" "'${pythonEnv.interpreter}'"
   '';
 
-  propagatedBuildInputs = runtimeDeps;
+  propagatedBuildInputs = runtimeDeps python3.pkgs;
 
   doCheck = true;
   checkPhase = ''
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/default.nix b/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
index 50a0c3447bd..cca876ca1e6 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
@@ -6,11 +6,7 @@
 let
   inherit (poetryLib) isCompatible readTOML moduleName;
 
-  # Poetry2nix version
-  version = "1.9.2";
-
   /* The default list of poetry2nix override overlays */
-  defaultPoetryOverrides = (import ./overrides.nix { inherit pkgs lib; });
   mkEvalPep508 = import ./pep508.nix {
     inherit lib poetryLib;
     stdenv = pkgs.stdenv;
@@ -22,6 +18,14 @@ let
   # Get license by id falling back to input string
   getLicenseBySpdxId = spdxId: spdxLicenses.${spdxId} or spdxId;
 
+  # Experimental withPlugins functionality
+  toPluginAble = (import ./plugins.nix { inherit pkgs lib; }).toPluginAble;
+in
+lib.makeScope pkgs.newScope (self: {
+
+  # Poetry2nix version
+  version = "1.12.0";
+
   /*
      Returns an attrset { python, poetryPackages, pyProject, poetryLock } for the given pyproject/lockfile.
   */
@@ -29,10 +33,11 @@ let
     { projectDir ? null
     , pyproject ? projectDir + "/pyproject.toml"
     , poetrylock ? projectDir + "/poetry.lock"
-    , overrides ? [ defaultPoetryOverrides ]
+    , overrides ? self.defaultPoetryOverrides
     , python ? pkgs.python3
     , pwd ? projectDir
     , preferWheels ? false
+    , __isBootstrap ? false  # Hack: Always add Poetry as a build input unless bootstrapping
     }@attrs:
     let
       poetryPkg = poetry.override { inherit python; };
@@ -77,6 +82,7 @@ let
                   value = self.mkPoetryDep (
                     pkgMeta // {
                       inherit pwd preferWheels;
+                      inherit __isBootstrap;
                       source = pkgMeta.source or null;
                       files = lockFiles.${name};
                       pythonPackages = self;
@@ -106,7 +112,9 @@ let
                   # The canonical name is setuptools-scm
                   setuptools-scm = super.setuptools_scm;
 
-                  inherit (hooks) pipBuildHook removePathDependenciesHook poetry2nixFixupHook;
+                  __toPluginAble = toPluginAble self;
+
+                  inherit (hooks) pipBuildHook removePathDependenciesHook poetry2nixFixupHook wheelUnpackHook;
                 }
             )
             # Null out any filtered packages, we don't want python.pkgs from nixpkgs
@@ -114,7 +122,7 @@ let
             # Create poetry2nix layer
             baseOverlay
           ] ++ # User provided overrides
-          overrides
+          (if builtins.typeOf overrides == "list" then overrides else [ overrides ])
         );
       packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) overlays;
       py = python.override { inherit packageOverrides; self = py; };
@@ -137,7 +145,7 @@ let
     { projectDir ? null
     , pyproject ? projectDir + "/pyproject.toml"
     , poetrylock ? projectDir + "/poetry.lock"
-    , overrides ? [ defaultPoetryOverrides ]
+    , overrides ? self.defaultPoetryOverrides
     , pwd ? projectDir
     , python ? pkgs.python3
     , preferWheels ? false
@@ -145,19 +153,34 @@ let
     , editablePackageSources ? { }
     }:
     let
-      py = mkPoetryPackages (
+      py = self.mkPoetryPackages (
         {
           inherit pyproject poetrylock overrides python pwd preferWheels;
         }
       );
 
+      inherit (py) pyProject;
+
+      # Add executables from tool.poetry.scripts
+      scripts = pyProject.tool.poetry.scripts or { };
+      hasScripts = scripts != { };
+      scriptsPackage = import ./shell-scripts.nix {
+        inherit scripts lib;
+        inherit (py) python;
+      };
+
+      hasEditable = editablePackageSources != { };
       editablePackage = import ./editable.nix {
         inherit pkgs lib poetryLib editablePackageSources;
         inherit (py) pyProject python;
       };
 
     in
-    py.python.withPackages (_: py.poetryPackages ++ lib.optional (editablePackageSources != { }) editablePackage);
+    py.python.withPackages (
+      _: py.poetryPackages
+        ++ lib.optional hasEditable editablePackage
+        ++ lib.optional hasScripts scriptsPackage
+    );
 
   /* Creates a Python application from pyproject.toml and poetry.lock
 
@@ -168,19 +191,20 @@ let
   */
   mkPoetryApplication =
     { projectDir ? null
-    , src ? poetryLib.cleanPythonSources { src = projectDir; }
+    , src ? self.cleanPythonSources { src = projectDir; }
     , pyproject ? projectDir + "/pyproject.toml"
     , poetrylock ? projectDir + "/poetry.lock"
-    , overrides ? [ defaultPoetryOverrides ]
+    , overrides ? self.defaultPoetryOverrides
     , meta ? { }
     , python ? pkgs.python3
     , pwd ? projectDir
     , preferWheels ? false
+    , __isBootstrap ? false  # Hack: Always add Poetry as a build input unless bootstrapping
     , ...
     }@attrs:
     let
-      poetryPython = mkPoetryPackages {
-        inherit pyproject poetrylock overrides python pwd preferWheels;
+      poetryPython = self.mkPoetryPackages {
+        inherit pyproject poetrylock overrides python pwd preferWheels __isBootstrap;
       };
       py = poetryPython.python;
 
@@ -206,7 +230,7 @@ let
           (
             dep:
             let
-              pkg = py.pkgs."${dep}";
+              pkg = py.pkgs."${moduleName dep}";
               constraints = deps.${dep}.python or "";
               isCompat = compat constraints;
             in
@@ -265,29 +289,48 @@ let
     app;
 
   /* Poetry2nix CLI used to supplement SHA-256 hashes for git dependencies  */
-  cli = import ./cli.nix { inherit pkgs lib version; };
-in
-{
-  inherit mkPoetryEnv mkPoetryApplication mkPoetryPackages cli version;
+  cli = import ./cli.nix {
+    inherit pkgs lib;
+    inherit (self) version;
+  };
+
+  # inherit mkPoetryEnv mkPoetryApplication mkPoetryPackages;
 
   inherit (poetryLib) cleanPythonSources;
 
-  /*
-  The default list of poetry2nix override overlays
 
-  Can be overriden by calling defaultPoetryOverrides.overrideOverlay which takes an overlay function
+  /*
+  Create a new default set of overrides with the same structure as the built-in ones
   */
-  defaultPoetryOverrides = {
-    __functor = defaultPoetryOverrides;
-    overrideOverlay = fn: self: super:
+  mkDefaultPoetryOverrides = defaults: {
+    __functor = defaults;
+
+    extend = overlay:
+      let
+        composed = lib.foldr lib.composeExtensions overlay [ defaults ];
+      in
+      self.mkDefaultPoetryOverrides composed;
+
+    overrideOverlay = fn:
       let
-        defaultSet = defaultPoetryOverrides self super;
-        customSet = fn self super;
+        overlay = self: super:
+          let
+            defaultSet = defaults self super;
+            customSet = fn self super;
+          in
+          defaultSet // customSet;
       in
-      defaultSet // customSet;
+      self.mkDefaultPoetryOverrides overlay;
   };
 
   /*
+  The default list of poetry2nix override overlays
+
+  Can be overriden by calling defaultPoetryOverrides.overrideOverlay which takes an overlay function
+  */
+  defaultPoetryOverrides = self.mkDefaultPoetryOverrides (import ./overrides.nix { inherit pkgs lib; });
+
+  /*
   Convenience functions for specifying overlays with or without the poerty2nix default overrides
   */
   overrides = {
@@ -303,8 +346,8 @@ in
     combining it with poetry2nix default overrides
     */
     withDefaults = overlay: [
-      defaultPoetryOverrides
+      self.defaultPoetryOverrides
       overlay
     ];
   };
-}
+})
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix
index 001a3d09c6b..e248a5e2235 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix
@@ -49,4 +49,16 @@ in
         } ./fixup-hook.sh
     ) { };
 
+  # When the "wheel" package itself is a wheel the nixpkgs hook (which pulls in "wheel") leads to infinite recursion
+  # It doesn't _really_ depend on wheel though, it just copies the wheel.
+  wheelUnpackHook = callPackage
+    ({}:
+      makeSetupHook
+        {
+          name = "wheel-unpack-hook.sh";
+          deps = [ ];
+        } ./wheel-unpack-hook.sh
+    ) { };
+
+
 }
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/wheel-unpack-hook.sh b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/wheel-unpack-hook.sh
new file mode 100644
index 00000000000..fca808a933b
--- /dev/null
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/wheel-unpack-hook.sh
@@ -0,0 +1,18 @@
+# Setup hook to use in case a wheel is fetched
+echo "Sourcing wheel setup hook"
+
+wheelUnpackPhase(){
+    echo "Executing wheelUnpackPhase"
+    runHook preUnpack
+
+    mkdir -p dist
+    cp "$src" "dist/$(stripHash "$src")"
+
+#     runHook postUnpack # Calls find...?
+    echo "Finished executing wheelUnpackPhase"
+}
+
+if [ -z "${dontUseWheelUnpack-}" ] && [ -z "${unpackPhase-}" ]; then
+    echo "Using wheelUnpackPhase"
+    unpackPhase=wheelUnpackPhase
+fi
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix b/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
index 39233929abb..bdd30cbffa8 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
@@ -154,7 +154,9 @@ let
     , pyProject
     }:
     let
-      buildSystem = lib.attrByPath [ "build-system" "build-backend" ] "" pyProject;
+      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";
+      buildSystem = lib.attrByPath [ "build-system" "build-backend" ] (throw missingBuildBackendError) pyProject;
       drvAttr = moduleName (builtins.elemAt (builtins.split "\\.|:" buildSystem) 0);
     in
     if buildSystem == "" then [ ] else (
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix b/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
index 20175f6bade..2791d7dfcb4 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
@@ -17,6 +17,7 @@
 , sourceSpec
 , supportedExtensions ? lib.importJSON ./extensions.json
 , preferWheels ? false
+, __isBootstrap ? false  # Hack: Always add Poetry as a build input unless bootstrapping
 , ...
 }:
 
@@ -46,10 +47,16 @@ pythonPackages.callPackage
       isGit = isSource && source.type == "git";
       isLocal = isSource && source.type == "directory";
       localDepPath = toPath source.url;
-      pyProject = poetryLib.readTOML (localDepPath + "/pyproject.toml");
-      buildSystemPkgs = poetryLib.getBuildSystemPkgs {
-        inherit pythonPackages pyProject;
-      };
+
+      buildSystemPkgs =
+        let
+          pyProjectPath = localDepPath + "/pyproject.toml";
+          pyProject = poetryLib.readTOML pyProjectPath;
+        in
+        if builtins.pathExists pyProjectPath then poetryLib.getBuildSystemPkgs {
+          inherit pythonPackages pyProject;
+        } else [ ];
+
       fileInfo =
         let
           isBdist = f: lib.strings.hasSuffix "whl" f.file;
@@ -106,6 +113,7 @@ pythonPackages.callPackage
         baseBuildInputs
         ++ lib.optional (!isSource) (getManyLinuxDeps fileInfo.name).pkg
         ++ lib.optional isLocal buildSystemPkgs
+        ++ lib.optional (!__isBootstrap) [ pythonPackages.poetry ]
       );
 
       propagatedBuildInputs =
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix b/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
index 62f2ed6e306..d722ec71b9a 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
@@ -12,6 +12,40 @@ self: super:
     }
   );
 
+  ansible = super.ansible.overridePythonAttrs (
+    old: {
+
+      prePatch = pkgs.python.pkgs.ansible.prePatch or "";
+
+      postInstall = pkgs.python.pkgs.ansible.postInstall or "";
+
+      # Inputs copied from nixpkgs as ansible doesn't specify it's dependencies
+      # in a correct manner.
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [
+        self.pycrypto
+        self.paramiko
+        self.jinja2
+        self.pyyaml
+        self.httplib2
+        self.six
+        self.netaddr
+        self.dnspython
+        self.jmespath
+        self.dopy
+        self.ncclient
+      ];
+    }
+  );
+
+  ansible-lint = super.ansible-lint.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ self.setuptools-scm-git-archive ];
+      preBuild = ''
+        export HOME=$(mktemp -d)
+      '';
+    }
+  );
+
   astroid = super.astroid.overridePythonAttrs (
     old: rec {
       buildInputs = old.buildInputs ++ [ self.pytest-runner ];
@@ -24,7 +58,7 @@ self: super:
       nativeBuildInputs = old.nativeBuildInputs ++ [
         pkgs.pkgconfig
       ];
-      buildInputs = old.buildInputs ++ [ pkgs.ffmpeg ];
+      buildInputs = old.buildInputs ++ [ pkgs.ffmpeg_4 ];
     }
   );
 
@@ -135,6 +169,15 @@ self: super:
     }
   );
 
+  h3 = super.h3.overridePythonAttrs (
+    old: {
+      preBuild = (old.preBuild or "") + ''
+        substituteInPlace h3/h3.py \
+          --replace "'{}/{}'.format(_dirname, libh3_path)" '"${pkgs.h3}/lib/libh3${pkgs.stdenv.hostPlatform.extensions.sharedLibrary}"'
+      '';
+    }
+  );
+
   h5py = super.h5py.overridePythonAttrs (
     old:
     if old.format != "wheel" then rec {
@@ -241,8 +284,7 @@ self: super:
   kiwisolver = super.kiwisolver.overridePythonAttrs (
     old: {
       buildInputs = old.buildInputs ++ [
-        # cppy is at the time of writing not in nixpkgs
-        (self.cppy or null)
+        self.cppy
       ];
     }
   );
@@ -255,6 +297,11 @@ self: super:
     }
   );
 
+  libvirt-python = super.libvirt-python.overridePythonAttrs ({ nativeBuildInputs ? [ ], ... }: {
+    nativeBuildInputs = nativeBuildInputs ++ [ pkgs.pkgconfig ];
+    propagatedBuildInputs = [ pkgs.libvirt ];
+  });
+
   llvmlite = super.llvmlite.overridePythonAttrs (
     old: {
       nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.llvm ];
@@ -320,6 +367,13 @@ self: super:
         pkgs.pkgconfig
       ];
 
+      postPatch = ''
+        cat > setup.cfg <<EOF
+        [libs]
+        system_freetype = True
+        EOF
+      '';
+
       propagatedBuildInputs = old.propagatedBuildInputs ++ [
         pkgs.libpng
         pkgs.freetype
@@ -345,6 +399,31 @@ self: super:
     }
   );
 
+  mip = super.mip.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.autoPatchelfHook ];
+
+      buildInputs = old.buildInputs ++ [ pkgs.zlib self.cppy ];
+    }
+  );
+
+  molecule =
+    if lib.versionOlder super.molecule.version "3.0.0" then (super.molecule.overridePythonAttrs (
+      old: {
+        patches = (old.patches or [ ]) ++ [
+          # Fix build with more recent setuptools versions
+          (pkgs.fetchpatch {
+            url = "https://github.com/ansible-community/molecule/commit/c9fee498646a702c77b5aecf6497cff324acd056.patch";
+            sha256 = "1g1n45izdz0a3c9akgxx14zhdw6c3dkb48j8pq64n82fa6ndl1b7";
+            excludes = [ "pyproject.toml" ];
+          })
+        ];
+        buildInputs = old.buildInputs ++ [ self.setuptools-scm-git-archive ];
+      }
+    )) else super.molecule.overridePythonAttrs (old: {
+      buildInputs = old.buildInputs ++ [ self.setuptools-scm-git-archive ];
+    });
+
   netcdf4 = super.netcdf4.overridePythonAttrs (
     old: {
       buildInputs = old.buildInputs ++ [
@@ -439,12 +518,16 @@ self: super:
 
   psycopg2 = super.psycopg2.overridePythonAttrs (
     old: {
+      buildInputs = old.buildInputs
+        ++ lib.optional stdenv.isDarwin pkgs.openssl;
       nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.postgresql ];
     }
   );
 
   psycopg2-binary = super.psycopg2-binary.overridePythonAttrs (
     old: {
+      buildInputs = old.buildInputs
+        ++ lib.optional stdenv.isDarwin pkgs.openssl;
       nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.postgresql ];
     }
   );
@@ -454,7 +537,14 @@ self: super:
       old:
       let
         parseMinor = drv: lib.concatStringsSep "." (lib.take 2 (lib.splitVersion drv.version));
-        _arrow-cpp = pkgs.arrow-cpp.override { inherit (self) python; };
+
+        # Starting with nixpkgs revision f149c7030a7, pyarrow takes "python3" as an argument
+        # instead of "python". Below we inspect function arguments to maintain compatibilitiy.
+        _arrow-cpp = pkgs.arrow-cpp.override (
+          builtins.intersectAttrs
+            (lib.functionArgs pkgs.arrow-cpp.override) { python = self.python; python3 = self.python; }
+        );
+
         ARROW_HOME = _arrow-cpp;
         arrowCppVersion = parseMinor pkgs.arrow-cpp;
         pyArrowVersion = parseMinor super.pyarrow;
@@ -595,6 +685,12 @@ self: super:
     }
   );
 
+  python-ldap = super.python-ldap.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ pkgs.openldap pkgs.cyrus_sasl ];
+    }
+  );
+
   pytoml = super.pytoml.overridePythonAttrs (
     old: {
       doCheck = false;
@@ -728,6 +824,12 @@ self: super:
     }
   );
 
+  ffmpeg-python = super.ffmpeg-python.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+    }
+  );
+
   python-prctl = super.python-prctl.overridePythonAttrs (
     old: {
       buildInputs = old.buildInputs ++ [
@@ -841,6 +943,14 @@ self: super:
     }
   );
 
+  tensorflow = super.tensorflow.overridePythonAttrs (
+    old: {
+      postInstall = ''
+        rm $out/bin/tensorboard
+      '';
+    }
+  );
+
   tensorpack = super.tensorpack.overridePythonAttrs (
     old: {
       postPatch = ''
@@ -849,6 +959,9 @@ self: super:
     }
   );
 
+  # nix uses a dash, poetry uses an underscore
+  typing_extensions = super.typing_extensions or self.typing-extensions;
+
   urwidtrees = super.urwidtrees.overridePythonAttrs (
     old: {
       propagatedBuildInputs = old.propagatedBuildInputs ++ [
@@ -865,6 +978,16 @@ self: super:
     }
   );
 
+  vispy = super.vispy.overrideAttrs (
+    old: {
+      inherit (pkgs.python3.pkgs.vispy) patches;
+      nativeBuildInputs = old.nativeBuildInputs ++ [
+        self.cython
+        self.setuptools-scm-git-archive
+      ];
+    }
+  );
+
   uvloop = super.uvloop.overridePythonAttrs (
     old: {
       buildInputs = old.buildInputs ++ lib.optionals stdenv.isDarwin [
@@ -874,17 +997,34 @@ self: super:
     }
   );
 
+
   # Stop infinite recursion by using bootstrapped pkg from nixpkgs
-  wheel = (
-    pkgs.python3.pkgs.override {
+  bootstrapped-pip = super.bootstrapped-pip.override {
+    wheel = (pkgs.python3.pkgs.override {
       python = self.python;
-    }
-  ).wheel.overridePythonAttrs (
-    old:
-    if old.format == "other" then old else {
-      inherit (super.wheel) pname name version src;
-    }
-  );
+    }).wheel;
+  };
+  wheel =
+    let
+      isWheel = super.wheel.src.isWheel or false;
+      # If "wheel" is a pre-built binary wheel
+      wheelPackage = super.buildPythonPackage {
+        inherit (super.wheel) pname name version src;
+        inherit (pkgs.python3.pkgs.wheel) meta;
+        format = "wheel";
+      };
+      # If "wheel" is built from source
+      sourcePackage = (
+        pkgs.python3.pkgs.override {
+          python = self.python;
+        }
+      ).wheel.overridePythonAttrs (
+        old: {
+          inherit (super.wheel) pname name version src;
+        }
+      );
+    in
+    if isWheel then wheelPackage else sourcePackage;
 
   zipp =
     (
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix b/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix
index 7135cace287..ffa78c5dc01 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix
@@ -62,7 +62,7 @@ let
   selectWheel = files:
     let
       filesWithoutSources = (builtins.filter (x: hasSuffix ".whl" x.file) files);
-      isPyAbiCompatible = pyabi: x: x == "none" || lib.hasPrefix pyabi x || (
+      isPyAbiCompatible = pyabi: x: x == "none" || lib.hasPrefix pyabi x || lib.hasPrefix x pyabi || (
         # The CPython stable ABI is abi3 as in the shared library suffix.
         python.passthru.implementation == "cpython" &&
           builtins.elemAt (lib.splitString "." python.version) 0 == "3" &&
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix
index b41b6e4a911..d06a1c1d6ae 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix
@@ -7,6 +7,9 @@ poetry2nix.mkPoetryApplication {
 
   projectDir = ./.;
 
+  # Don't include poetry in inputs
+  __isBootstrap = true;
+
   src = fetchFromGitHub (lib.importJSON ./src.json);
 
   # "Vendor" dependencies (for build-system support)
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock
index ce177185681..1ec0c9260d2 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock
@@ -113,7 +113,7 @@ description = "Python package for providing Mozilla's CA Bundle."
 name = "certifi"
 optional = false
 python-versions = "*"
-version = "2020.4.5.2"
+version = "2020.6.20"
 
 [[package]]
 category = "main"
@@ -160,7 +160,7 @@ clikit = ">=0.4.0,<0.5.0"
 [[package]]
 category = "dev"
 description = "Composable command line interface toolkit"
-marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" or python_version >= \"3.6\" and python_version < \"4.0\""
+marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" or python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.6\" and python_version < \"4.0\""
 name = "click"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
@@ -169,7 +169,7 @@ version = "7.1.2"
 [[package]]
 category = "dev"
 description = "Composable command line interface toolkit"
-marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
+marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
 name = "click"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
@@ -253,7 +253,7 @@ description = "Code coverage measurement for Python"
 name = "coverage"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
-version = "5.1"
+version = "5.2"
 
 [package.extras]
 toml = ["toml"]
@@ -267,10 +267,6 @@ optional = false
 python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
 version = "2.8"
 
-[package.dependencies]
-cffi = ">=1.8,<1.11.3 || >1.11.3"
-six = ">=1.4.1"
-
 [package.dependencies.enum34]
 python = "<3"
 version = "*"
@@ -279,6 +275,10 @@ version = "*"
 python = "<3"
 version = "*"
 
+[package.dependencies]
+cffi = ">=1.8,<1.11.3 || >1.11.3"
+six = ">=1.4.1"
+
 [package.extras]
 docs = ["sphinx (>=1.6.5,<1.8.0 || >1.8.0)", "sphinx-rtd-theme"]
 docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
@@ -293,7 +293,7 @@ marker = "python_version >= \"2.7\" and python_version < \"2.8\" and (sys_platfo
 name = "cryptography"
 optional = false
 python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*"
-version = "2.9.2"
+version = "3.0"
 
 [package.dependencies]
 cffi = ">=1.8,<1.11.3 || >1.11.3"
@@ -308,10 +308,11 @@ python = "<3"
 version = "*"
 
 [package.extras]
-docs = ["sphinx (>=1.6.5,<1.8.0 || >1.8.0)", "sphinx-rtd-theme"]
+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"]
 docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
 idna = ["idna (>=2.1)"]
-pep8test = ["flake8", "flake8-import-order", "pep8-naming"]
+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)"]
 
 [[package]]
@@ -320,7 +321,7 @@ description = "Distribution utilities"
 name = "distlib"
 optional = false
 python-versions = "*"
-version = "0.3.0"
+version = "0.3.1"
 
 [[package]]
 category = "main"
@@ -418,6 +419,24 @@ genshi = ["genshi"]
 lxml = ["lxml"]
 
 [[package]]
+category = "main"
+description = "HTML parser based on the WHATWG HTML specification"
+name = "html5lib"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+version = "1.1"
+
+[package.dependencies]
+six = ">=1.9"
+webencodings = "*"
+
+[package.extras]
+all = ["genshi", "chardet (>=2.2)", "lxml"]
+chardet = ["chardet (>=2.2)"]
+genshi = ["genshi"]
+lxml = ["lxml"]
+
+[[package]]
 category = "dev"
 description = "HTTP client mock for Python"
 name = "httpretty"
@@ -434,7 +453,7 @@ description = "File identification library for Python"
 name = "identify"
 optional = false
 python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
-version = "1.4.19"
+version = "1.4.24"
 
 [package.extras]
 license = ["editdistance"]
@@ -453,7 +472,7 @@ description = "Internationalized Domain Names in Applications (IDNA)"
 name = "idna"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-version = "2.9"
+version = "2.10"
 
 [[package]]
 category = "main"
@@ -488,10 +507,6 @@ python-versions = ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3"
 version = "1.0.2"
 
 [package.dependencies]
-[package.dependencies.pathlib2]
-python = "<3"
-version = "*"
-
 [package.dependencies.typing]
 python = "<3.5"
 version = "*"
@@ -503,17 +518,13 @@ marker = "python_version < \"3.7\""
 name = "importlib-resources"
 optional = false
 python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
-version = "2.0.0"
+version = "3.0.0"
 
 [package.dependencies]
 [package.dependencies.contextlib2]
 python = "<3"
 version = "*"
 
-[package.dependencies.importlib-metadata]
-python = "<3.8"
-version = "*"
-
 [package.dependencies.pathlib2]
 python = "<3"
 version = "*"
@@ -557,7 +568,7 @@ dev = ["testpath"]
 [[package]]
 category = "dev"
 description = "A very fast and expressive template engine."
-marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
+marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
 name = "jinja2"
 optional = false
 python-versions = "*"
@@ -572,7 +583,7 @@ i18n = ["Babel (>=0.8)"]
 [[package]]
 category = "dev"
 description = "A very fast and expressive template engine."
-marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
+marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" or python_version >= \"2.7.9\" and python_version < \"2.8.0\""
 name = "jinja2"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
@@ -664,7 +675,7 @@ testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pyt
 [[package]]
 category = "dev"
 description = "Python LiveReload is an awesome tool for web developers"
-marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
+marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" or python_version >= \"2.7.9\" and python_version < \"2.8.0\""
 name = "livereload"
 optional = false
 python-versions = "*"
@@ -673,7 +684,11 @@ version = "2.6.2"
 [package.dependencies]
 six = "*"
 
-[package.dependencies.tornado]
+[[package.dependencies.tornado]]
+python = ">=2.7,<2.8"
+version = "<6"
+
+[[package.dependencies.tornado]]
 python = ">=2.8"
 version = "*"
 
@@ -758,7 +773,7 @@ markdown = "*"
 [[package]]
 category = "dev"
 description = "Safely add untrusted strings to HTML/XML markup."
-marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
+marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" or python_version >= \"2.7.9\" and python_version < \"2.8.0\""
 name = "markupsafe"
 optional = false
 python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
@@ -851,7 +866,7 @@ marker = "python_version >= \"3.5\""
 name = "more-itertools"
 optional = false
 python-versions = ">=3.5"
-version = "8.3.0"
+version = "8.4.0"
 
 [[package]]
 category = "main"
@@ -1050,7 +1065,7 @@ description = "library with cross-python path, ini-parsing, io, code, log facili
 name = "py"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-version = "1.8.1"
+version = "1.9.0"
 
 [[package]]
 category = "main"
@@ -1256,11 +1271,11 @@ description = "Pytest plugin for measuring coverage."
 name = "pytest-cov"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
-version = "2.9.0"
+version = "2.10.0"
 
 [package.dependencies]
 coverage = ">=4.4"
-pytest = ">=3.6"
+pytest = ">=4.6"
 
 [package.extras]
 testing = ["fields", "hunter", "process-tests (2.0.2)", "six", "pytest-xdist", "virtualenv"]
@@ -1289,7 +1304,7 @@ description = "pytest-sugar is a plugin for pytest that changes the default look
 name = "pytest-sugar"
 optional = false
 python-versions = "*"
-version = "0.9.3"
+version = "0.9.4"
 
 [package.dependencies]
 packaging = ">=14.1"
@@ -1328,7 +1343,7 @@ marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_v
 name = "regex"
 optional = false
 python-versions = "*"
-version = "2020.6.8"
+version = "2020.7.14"
 
 [[package]]
 category = "main"
@@ -1354,7 +1369,7 @@ description = "Python HTTP for Humans."
 name = "requests"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
-version = "2.23.0"
+version = "2.24.0"
 
 [package.dependencies]
 certifi = ">=2017.4.17"
@@ -1491,7 +1506,7 @@ version = ">=3.6,<4.0"
 [[package]]
 category = "dev"
 description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed."
-marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
+marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
 name = "tornado"
 optional = false
 python-versions = ">= 2.7, !=3.0.*, !=3.1.*, !=3.2.*, != 3.3.*"
@@ -1533,7 +1548,7 @@ description = "tox is a generic virtualenv management and test command line tool
 name = "tox"
 optional = false
 python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
-version = "3.15.2"
+version = "3.17.1"
 
 [package.dependencies]
 colorama = ">=0.4.1"
@@ -1560,7 +1575,7 @@ marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_v
 name = "tqdm"
 optional = false
 python-versions = ">=2.6, !=3.0.*, !=3.1.*"
-version = "4.46.1"
+version = "4.48.0"
 
 [package.extras]
 dev = ["py-make (>=0.1.0)", "twine", "argopt", "pydoc-markdown"]
@@ -1580,8 +1595,8 @@ description = "Type Hints for Python"
 marker = "python_version >= \"2.7\" and python_version < \"2.8\" or python_version >= \"3.4\" and python_version < \"3.5\" or python_version < \"3.5\""
 name = "typing"
 optional = false
-python-versions = "*"
-version = "3.7.4.1"
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+version = "3.7.4.3"
 
 [[package]]
 category = "main"
@@ -1635,11 +1650,11 @@ description = "Virtual Python Environment builder"
 name = "virtualenv"
 optional = false
 python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
-version = "20.0.21"
+version = "20.0.27"
 
 [package.dependencies]
 appdirs = ">=1.4.3,<2"
-distlib = ">=0.3.0,<1"
+distlib = ">=0.3.1,<1"
 filelock = ">=3.0.0,<4"
 six = ">=1.9.0,<2"
 
@@ -1649,11 +1664,11 @@ version = ">=0.12,<2"
 
 [package.dependencies.importlib-resources]
 python = "<3.7"
-version = ">=1.0,<2"
+version = ">=1.0"
 
 [package.extras]
 docs = ["sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=19.9.0rc1)", "proselint (>=0.10.2)"]
-testing = ["pytest (>=4)", "coverage (>=5)", "coverage-enable-subprocess (>=1)", "pytest-xdist (>=1.31.0)", "pytest-mock (>=2)", "pytest-env (>=0.6.2)", "pytest-randomly (>=1)", "pytest-timeout", "packaging (>=20.0)", "xonsh (>=0.9.16)"]
+testing = ["pytest (>=4)", "coverage (>=5)", "coverage-enable-subprocess (>=1)", "pytest-xdist (>=1.31.0)", "pytest-mock (>=2)", "pytest-env (>=0.6.2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)", "pytest-freezegun (>=0.4.1)", "flaky (>=3)", "packaging (>=20.0)", "xonsh (>=0.9.16)"]
 
 [[package]]
 category = "dev"
@@ -1662,7 +1677,7 @@ marker = "python_version < \"3.5\" or python_version >= \"3.5\""
 name = "wcwidth"
 optional = false
 python-versions = "*"
-version = "0.2.4"
+version = "0.2.5"
 
 [package.dependencies]
 [package.dependencies."backports.functools-lru-cache"]
@@ -1733,8 +1748,8 @@ cachy = [
     {file = "cachy-0.3.0.tar.gz", hash = "sha256:186581f4ceb42a0bbe040c407da73c14092379b1e4c0e327fdb72ae4a9b269b1"},
 ]
 certifi = [
-    {file = "certifi-2020.4.5.2-py2.py3-none-any.whl", hash = "sha256:9cd41137dc19af6a5e03b630eefe7d1f458d964d406342dd3edf625839b944cc"},
-    {file = "certifi-2020.4.5.2.tar.gz", hash = "sha256:5ad7e9a056d25ffa5082862e36f119f7f7cec6457fa07ee2f8c339814b80c9b1"},
+    {file = "certifi-2020.6.20-py2.py3-none-any.whl", hash = "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"},
+    {file = "certifi-2020.6.20.tar.gz", hash = "sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3"},
 ]
 cffi = [
     {file = "cffi-1.14.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1cae98a7054b5c9391eb3249b86e0e99ab1e02bb0cc0575da191aedadbdf4384"},
@@ -1835,37 +1850,40 @@ coverage = [
     {file = "coverage-4.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:23cc09ed395b03424d1ae30dcc292615c1372bfba7141eb85e11e50efaa6b351"},
     {file = "coverage-4.5.4-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:141f08ed3c4b1847015e2cd62ec06d35e67a3ac185c26f7635f4406b90afa9c5"},
     {file = "coverage-4.5.4.tar.gz", hash = "sha256:e07d9f1a23e9e93ab5c62902833bf3e4b1f65502927379148b6622686223125c"},
-    {file = "coverage-5.1-cp27-cp27m-macosx_10_12_x86_64.whl", hash = "sha256:0cb4be7e784dcdc050fc58ef05b71aa8e89b7e6636b99967fadbdba694cf2b65"},
-    {file = "coverage-5.1-cp27-cp27m-macosx_10_13_intel.whl", hash = "sha256:c317eaf5ff46a34305b202e73404f55f7389ef834b8dbf4da09b9b9b37f76dd2"},
-    {file = "coverage-5.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:b83835506dfc185a319031cf853fa4bb1b3974b1f913f5bb1a0f3d98bdcded04"},
-    {file = "coverage-5.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5f2294dbf7875b991c381e3d5af2bcc3494d836affa52b809c91697449d0eda6"},
-    {file = "coverage-5.1-cp27-cp27m-win32.whl", hash = "sha256:de807ae933cfb7f0c7d9d981a053772452217df2bf38e7e6267c9cbf9545a796"},
-    {file = "coverage-5.1-cp27-cp27m-win_amd64.whl", hash = "sha256:bf9cb9a9fd8891e7efd2d44deb24b86d647394b9705b744ff6f8261e6f29a730"},
-    {file = "coverage-5.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:acf3763ed01af8410fc36afea23707d4ea58ba7e86a8ee915dfb9ceff9ef69d0"},
-    {file = "coverage-5.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:dec5202bfe6f672d4511086e125db035a52b00f1648d6407cc8e526912c0353a"},
-    {file = "coverage-5.1-cp35-cp35m-macosx_10_12_x86_64.whl", hash = "sha256:7a5bdad4edec57b5fb8dae7d3ee58622d626fd3a0be0dfceda162a7035885ecf"},
-    {file = "coverage-5.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:1601e480b9b99697a570cea7ef749e88123c04b92d84cedaa01e117436b4a0a9"},
-    {file = "coverage-5.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:dbe8c6ae7534b5b024296464f387d57c13caa942f6d8e6e0346f27e509f0f768"},
-    {file = "coverage-5.1-cp35-cp35m-win32.whl", hash = "sha256:a027ef0492ede1e03a8054e3c37b8def89a1e3c471482e9f046906ba4f2aafd2"},
-    {file = "coverage-5.1-cp35-cp35m-win_amd64.whl", hash = "sha256:0e61d9803d5851849c24f78227939c701ced6704f337cad0a91e0972c51c1ee7"},
-    {file = "coverage-5.1-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:2d27a3f742c98e5c6b461ee6ef7287400a1956c11421eb574d843d9ec1f772f0"},
-    {file = "coverage-5.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:66460ab1599d3cf894bb6baee8c684788819b71a5dc1e8fa2ecc152e5d752019"},
-    {file = "coverage-5.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5c542d1e62eece33c306d66fe0a5c4f7f7b3c08fecc46ead86d7916684b36d6c"},
-    {file = "coverage-5.1-cp36-cp36m-win32.whl", hash = "sha256:2742c7515b9eb368718cd091bad1a1b44135cc72468c731302b3d641895b83d1"},
-    {file = "coverage-5.1-cp36-cp36m-win_amd64.whl", hash = "sha256:dead2ddede4c7ba6cb3a721870f5141c97dc7d85a079edb4bd8d88c3ad5b20c7"},
-    {file = "coverage-5.1-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:01333e1bd22c59713ba8a79f088b3955946e293114479bbfc2e37d522be03355"},
-    {file = "coverage-5.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:e1ea316102ea1e1770724db01998d1603ed921c54a86a2efcb03428d5417e489"},
-    {file = "coverage-5.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:adeb4c5b608574a3d647011af36f7586811a2c1197c861aedb548dd2453b41cd"},
-    {file = "coverage-5.1-cp37-cp37m-win32.whl", hash = "sha256:782caea581a6e9ff75eccda79287daefd1d2631cc09d642b6ee2d6da21fc0a4e"},
-    {file = "coverage-5.1-cp37-cp37m-win_amd64.whl", hash = "sha256:00f1d23f4336efc3b311ed0d807feb45098fc86dee1ca13b3d6768cdab187c8a"},
-    {file = "coverage-5.1-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:402e1744733df483b93abbf209283898e9f0d67470707e3c7516d84f48524f55"},
-    {file = "coverage-5.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:a3f3654d5734a3ece152636aad89f58afc9213c6520062db3978239db122f03c"},
-    {file = "coverage-5.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:6402bd2fdedabbdb63a316308142597534ea8e1895f4e7d8bf7476c5e8751fef"},
-    {file = "coverage-5.1-cp38-cp38-win32.whl", hash = "sha256:8fa0cbc7ecad630e5b0f4f35b0f6ad419246b02bc750de7ac66db92667996d24"},
-    {file = "coverage-5.1-cp38-cp38-win_amd64.whl", hash = "sha256:79a3cfd6346ce6c13145731d39db47b7a7b859c0272f02cdb89a3bdcbae233a0"},
-    {file = "coverage-5.1-cp39-cp39-win32.whl", hash = "sha256:a82b92b04a23d3c8a581fc049228bafde988abacba397d57ce95fe95e0338ab4"},
-    {file = "coverage-5.1-cp39-cp39-win_amd64.whl", hash = "sha256:bb28a7245de68bf29f6fb199545d072d1036a1917dca17a1e75bbb919e14ee8e"},
-    {file = "coverage-5.1.tar.gz", hash = "sha256:f90bfc4ad18450c80b024036eaf91e4a246ae287701aaa88eaebebf150868052"},
+    {file = "coverage-5.2-cp27-cp27m-macosx_10_13_intel.whl", hash = "sha256:d9ad0a988ae20face62520785ec3595a5e64f35a21762a57d115dae0b8fb894a"},
+    {file = "coverage-5.2-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:4bb385a747e6ae8a65290b3df60d6c8a692a5599dc66c9fa3520e667886f2e10"},
+    {file = "coverage-5.2-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:9702e2cb1c6dec01fb8e1a64c015817c0800a6eca287552c47a5ee0ebddccf62"},
+    {file = "coverage-5.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:42fa45a29f1059eda4d3c7b509589cc0343cd6bbf083d6118216830cd1a51613"},
+    {file = "coverage-5.2-cp27-cp27m-win32.whl", hash = "sha256:41d88736c42f4a22c494c32cc48a05828236e37c991bd9760f8923415e3169e4"},
+    {file = "coverage-5.2-cp27-cp27m-win_amd64.whl", hash = "sha256:bbb387811f7a18bdc61a2ea3d102be0c7e239b0db9c83be7bfa50f095db5b92a"},
+    {file = "coverage-5.2-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:3740b796015b889e46c260ff18b84683fa2e30f0f75a171fb10d2bf9fb91fc70"},
+    {file = "coverage-5.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ebf2431b2d457ae5217f3a1179533c456f3272ded16f8ed0b32961a6d90e38ee"},
+    {file = "coverage-5.2-cp35-cp35m-macosx_10_13_x86_64.whl", hash = "sha256:d54d7ea74cc00482a2410d63bf10aa34ebe1c49ac50779652106c867f9986d6b"},
+    {file = "coverage-5.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:87bdc8135b8ee739840eee19b184804e5d57f518578ffc797f5afa2c3c297913"},
+    {file = "coverage-5.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:ed9a21502e9223f563e071759f769c3d6a2e1ba5328c31e86830368e8d78bc9c"},
+    {file = "coverage-5.2-cp35-cp35m-win32.whl", hash = "sha256:509294f3e76d3f26b35083973fbc952e01e1727656d979b11182f273f08aa80b"},
+    {file = "coverage-5.2-cp35-cp35m-win_amd64.whl", hash = "sha256:ca63dae130a2e788f2b249200f01d7fa240f24da0596501d387a50e57aa7075e"},
+    {file = "coverage-5.2-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:5c74c5b6045969b07c9fb36b665c9cac84d6c174a809fc1b21bdc06c7836d9a0"},
+    {file = "coverage-5.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:c32aa13cc3fe86b0f744dfe35a7f879ee33ac0a560684fef0f3e1580352b818f"},
+    {file = "coverage-5.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:1e58fca3d9ec1a423f1b7f2aa34af4f733cbfa9020c8fe39ca451b6071237405"},
+    {file = "coverage-5.2-cp36-cp36m-win32.whl", hash = "sha256:3b2c34690f613525672697910894b60d15800ac7e779fbd0fccf532486c1ba40"},
+    {file = "coverage-5.2-cp36-cp36m-win_amd64.whl", hash = "sha256:a4d511012beb967a39580ba7d2549edf1e6865a33e5fe51e4dce550522b3ac0e"},
+    {file = "coverage-5.2-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:32ecee61a43be509b91a526819717d5e5650e009a8d5eda8631a59c721d5f3b6"},
+    {file = "coverage-5.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6f91b4492c5cde83bfe462f5b2b997cdf96a138f7c58b1140f05de5751623cf1"},
+    {file = "coverage-5.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:bfcc811883699ed49afc58b1ed9f80428a18eb9166422bce3c31a53dba00fd1d"},
+    {file = "coverage-5.2-cp37-cp37m-win32.whl", hash = "sha256:60a3d36297b65c7f78329b80120f72947140f45b5c7a017ea730f9112b40f2ec"},
+    {file = "coverage-5.2-cp37-cp37m-win_amd64.whl", hash = "sha256:12eaccd86d9a373aea59869bc9cfa0ab6ba8b1477752110cb4c10d165474f703"},
+    {file = "coverage-5.2-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:d82db1b9a92cb5c67661ca6616bdca6ff931deceebb98eecbd328812dab52032"},
+    {file = "coverage-5.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:214eb2110217f2636a9329bc766507ab71a3a06a8ea30cdeebb47c24dce5972d"},
+    {file = "coverage-5.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8a3decd12e7934d0254939e2bf434bf04a5890c5bf91a982685021786a08087e"},
+    {file = "coverage-5.2-cp38-cp38-win32.whl", hash = "sha256:1dcebae667b73fd4aa69237e6afb39abc2f27520f2358590c1b13dd90e32abe7"},
+    {file = "coverage-5.2-cp38-cp38-win_amd64.whl", hash = "sha256:f50632ef2d749f541ca8e6c07c9928a37f87505ce3a9f20c8446ad310f1aa87b"},
+    {file = "coverage-5.2-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:7403675df5e27745571aba1c957c7da2dacb537c21e14007ec3a417bf31f7f3d"},
+    {file = "coverage-5.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:0fc4e0d91350d6f43ef6a61f64a48e917637e1dcfcba4b4b7d543c628ef82c2d"},
+    {file = "coverage-5.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:25fe74b5b2f1b4abb11e103bb7984daca8f8292683957d0738cd692f6a7cc64c"},
+    {file = "coverage-5.2-cp39-cp39-win32.whl", hash = "sha256:d67599521dff98ec8c34cd9652cbcfe16ed076a2209625fca9dc7419b6370e5c"},
+    {file = "coverage-5.2-cp39-cp39-win_amd64.whl", hash = "sha256:10f2a618a6e75adf64329f828a6a5b40244c1c50f5ef4ce4109e904e69c71bd2"},
+    {file = "coverage-5.2.tar.gz", hash = "sha256:1874bdc943654ba46d28f179c1846f5710eda3aeb265ff029e0ac2b52daae404"},
 ]
 cryptography = [
     {file = "cryptography-2.8-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:fb81c17e0ebe3358486cd8cc3ad78adbae58af12fc2bf2bc0bb84e8090fa5ce8"},
@@ -1889,28 +1907,29 @@ cryptography = [
     {file = "cryptography-2.8-cp38-cp38-win32.whl", hash = "sha256:73fd30c57fa2d0a1d7a49c561c40c2f79c7d6c374cc7750e9ac7c99176f6428e"},
     {file = "cryptography-2.8-cp38-cp38-win_amd64.whl", hash = "sha256:971221ed40f058f5662a604bd1ae6e4521d84e6cad0b7b170564cc34169c8f13"},
     {file = "cryptography-2.8.tar.gz", hash = "sha256:3cda1f0ed8747339bbdf71b9f38ca74c7b592f24f65cdb3ab3765e4b02871651"},
-    {file = "cryptography-2.9.2-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:daf54a4b07d67ad437ff239c8a4080cfd1cc7213df57d33c97de7b4738048d5e"},
-    {file = "cryptography-2.9.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:3b3eba865ea2754738616f87292b7f29448aec342a7c720956f8083d252bf28b"},
-    {file = "cryptography-2.9.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:c447cf087cf2dbddc1add6987bbe2f767ed5317adb2d08af940db517dd704365"},
-    {file = "cryptography-2.9.2-cp27-cp27m-win32.whl", hash = "sha256:f118a95c7480f5be0df8afeb9a11bd199aa20afab7a96bcf20409b411a3a85f0"},
-    {file = "cryptography-2.9.2-cp27-cp27m-win_amd64.whl", hash = "sha256:c4fd17d92e9d55b84707f4fd09992081ba872d1a0c610c109c18e062e06a2e55"},
-    {file = "cryptography-2.9.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d0d5aeaedd29be304848f1c5059074a740fa9f6f26b84c5b63e8b29e73dfc270"},
-    {file = "cryptography-2.9.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:1e4014639d3d73fbc5ceff206049c5a9a849cefd106a49fa7aaaa25cc0ce35cf"},
-    {file = "cryptography-2.9.2-cp35-abi3-macosx_10_9_x86_64.whl", hash = "sha256:96c080ae7118c10fcbe6229ab43eb8b090fccd31a09ef55f83f690d1ef619a1d"},
-    {file = "cryptography-2.9.2-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:e993468c859d084d5579e2ebee101de8f5a27ce8e2159959b6673b418fd8c785"},
-    {file = "cryptography-2.9.2-cp35-abi3-manylinux2010_x86_64.whl", hash = "sha256:88c881dd5a147e08d1bdcf2315c04972381d026cdb803325c03fe2b4a8ed858b"},
-    {file = "cryptography-2.9.2-cp35-cp35m-win32.whl", hash = "sha256:651448cd2e3a6bc2bb76c3663785133c40d5e1a8c1a9c5429e4354201c6024ae"},
-    {file = "cryptography-2.9.2-cp35-cp35m-win_amd64.whl", hash = "sha256:726086c17f94747cedbee6efa77e99ae170caebeb1116353c6cf0ab67ea6829b"},
-    {file = "cryptography-2.9.2-cp36-cp36m-win32.whl", hash = "sha256:091d31c42f444c6f519485ed528d8b451d1a0c7bf30e8ca583a0cac44b8a0df6"},
-    {file = "cryptography-2.9.2-cp36-cp36m-win_amd64.whl", hash = "sha256:bb1f0281887d89617b4c68e8db9a2c42b9efebf2702a3c5bf70599421a8623e3"},
-    {file = "cryptography-2.9.2-cp37-cp37m-win32.whl", hash = "sha256:18452582a3c85b96014b45686af264563e3e5d99d226589f057ace56196ec78b"},
-    {file = "cryptography-2.9.2-cp37-cp37m-win_amd64.whl", hash = "sha256:22e91636a51170df0ae4dcbd250d318fd28c9f491c4e50b625a49964b24fe46e"},
-    {file = "cryptography-2.9.2-cp38-cp38-win32.whl", hash = "sha256:844a76bc04472e5135b909da6aed84360f522ff5dfa47f93e3dd2a0b84a89fa0"},
-    {file = "cryptography-2.9.2-cp38-cp38-win_amd64.whl", hash = "sha256:1dfa985f62b137909496e7fc182dac687206d8d089dd03eaeb28ae16eec8e7d5"},
-    {file = "cryptography-2.9.2.tar.gz", hash = "sha256:a0c30272fb4ddda5f5ffc1089d7405b7a71b0b0f51993cb4e5dbb4590b2fc229"},
+    {file = "cryptography-3.0-cp27-cp27m-macosx_10_10_x86_64.whl", hash = "sha256:ab49edd5bea8d8b39a44b3db618e4783ef84c19c8b47286bf05dfdb3efb01c83"},
+    {file = "cryptography-3.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:124af7255ffc8e964d9ff26971b3a6153e1a8a220b9a685dc407976ecb27a06a"},
+    {file = "cryptography-3.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:51e40123083d2f946794f9fe4adeeee2922b581fa3602128ce85ff813d85b81f"},
+    {file = "cryptography-3.0-cp27-cp27m-win32.whl", hash = "sha256:dea0ba7fe6f9461d244679efa968d215ea1f989b9c1957d7f10c21e5c7c09ad6"},
+    {file = "cryptography-3.0-cp27-cp27m-win_amd64.whl", hash = "sha256:8ecf9400d0893836ff41b6f977a33972145a855b6efeb605b49ee273c5e6469f"},
+    {file = "cryptography-3.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:0c608ff4d4adad9e39b5057de43657515c7da1ccb1807c3a27d4cf31fc923b4b"},
+    {file = "cryptography-3.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:bec7568c6970b865f2bcebbe84d547c52bb2abadf74cefce396ba07571109c67"},
+    {file = "cryptography-3.0-cp35-abi3-macosx_10_10_x86_64.whl", hash = "sha256:0cbfed8ea74631fe4de00630f4bb592dad564d57f73150d6f6796a24e76c76cd"},
+    {file = "cryptography-3.0-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:a09fd9c1cca9a46b6ad4bea0a1f86ab1de3c0c932364dbcf9a6c2a5eeb44fa77"},
+    {file = "cryptography-3.0-cp35-abi3-manylinux2010_x86_64.whl", hash = "sha256:ce82cc06588e5cbc2a7df3c8a9c778f2cb722f56835a23a68b5a7264726bb00c"},
+    {file = "cryptography-3.0-cp35-cp35m-win32.whl", hash = "sha256:9367d00e14dee8d02134c6c9524bb4bd39d4c162456343d07191e2a0b5ec8b3b"},
+    {file = "cryptography-3.0-cp35-cp35m-win_amd64.whl", hash = "sha256:384d7c681b1ab904fff3400a6909261cae1d0939cc483a68bdedab282fb89a07"},
+    {file = "cryptography-3.0-cp36-cp36m-win32.whl", hash = "sha256:4d355f2aee4a29063c10164b032d9fa8a82e2c30768737a2fd56d256146ad559"},
+    {file = "cryptography-3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:45741f5499150593178fc98d2c1a9c6722df88b99c821ad6ae298eff0ba1ae71"},
+    {file = "cryptography-3.0-cp37-cp37m-win32.whl", hash = "sha256:8ecef21ac982aa78309bb6f092d1677812927e8b5ef204a10c326fc29f1367e2"},
+    {file = "cryptography-3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4b9303507254ccb1181d1803a2080a798910ba89b1a3c9f53639885c90f7a756"},
+    {file = "cryptography-3.0-cp38-cp38-win32.whl", hash = "sha256:8713ddb888119b0d2a1462357d5946b8911be01ddbf31451e1d07eaa5077a261"},
+    {file = "cryptography-3.0-cp38-cp38-win_amd64.whl", hash = "sha256:bea0b0468f89cdea625bb3f692cd7a4222d80a6bdafd6fb923963f2b9da0e15f"},
+    {file = "cryptography-3.0.tar.gz", hash = "sha256:8e924dbc025206e97756e8903039662aa58aa9ba357d8e1d8fc29e3092322053"},
 ]
 distlib = [
-    {file = "distlib-0.3.0.zip", hash = "sha256:2e166e231a26b36d6dfe35a48c4464346620f8645ed0ace01ee31822b288de21"},
+    {file = "distlib-0.3.1-py2.py3-none-any.whl", hash = "sha256:8c09de2c67b3e7deef7184574fc060ab8a793e7adbb183d942c389c8b13c52fb"},
+    {file = "distlib-0.3.1.zip", hash = "sha256:edf6116872c863e1aa9d5bb7cb5e05a022c519a4594dc703843343a9ddd9bff1"},
 ]
 entrypoints = [
     {file = "entrypoints-0.3-py2.py3-none-any.whl", hash = "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19"},
@@ -1946,19 +1965,21 @@ glob2 = [
 html5lib = [
     {file = "html5lib-1.0.1-py2.py3-none-any.whl", hash = "sha256:20b159aa3badc9d5ee8f5c647e5efd02ed2a66ab8d354930bd9ff139fc1dc0a3"},
     {file = "html5lib-1.0.1.tar.gz", hash = "sha256:66cb0dcfdbbc4f9c3ba1a63fdb511ffdbd4f513b2b6d81b80cd26ce6b3fb3736"},
+    {file = "html5lib-1.1-py2.py3-none-any.whl", hash = "sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d"},
+    {file = "html5lib-1.1.tar.gz", hash = "sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f"},
 ]
 httpretty = [
     {file = "httpretty-0.9.7.tar.gz", hash = "sha256:66216f26b9d2c52e81808f3e674a6fb65d4bf719721394a1a9be926177e55fbe"},
 ]
 identify = [
-    {file = "identify-1.4.19-py2.py3-none-any.whl", hash = "sha256:781fd3401f5d2b17b22a8b18b493a48d5d948e3330634e82742e23f9c20234ef"},
-    {file = "identify-1.4.19.tar.gz", hash = "sha256:249ebc7e2066d6393d27c1b1be3b70433f824a120b1d8274d362f1eb419e3b52"},
+    {file = "identify-1.4.24-py2.py3-none-any.whl", hash = "sha256:5519601b70c831011fb425ffd214101df7639ba3980f24dc283f7675b19127b3"},
+    {file = "identify-1.4.24.tar.gz", hash = "sha256:06b4373546ae55eaaefdac54f006951dbd968fe2912846c00e565b09cfaed101"},
 ]
 idna = [
     {file = "idna-2.8-py2.py3-none-any.whl", hash = "sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c"},
     {file = "idna-2.8.tar.gz", hash = "sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407"},
-    {file = "idna-2.9-py2.py3-none-any.whl", hash = "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa"},
-    {file = "idna-2.9.tar.gz", hash = "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb"},
+    {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
+    {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
 ]
 importlib-metadata = [
     {file = "importlib_metadata-1.1.3-py2.py3-none-any.whl", hash = "sha256:7c7f8ac40673f507f349bef2eed21a0e5f01ddf5b2a7356a6c65eb2099b53764"},
@@ -1967,8 +1988,8 @@ importlib-metadata = [
 importlib-resources = [
     {file = "importlib_resources-1.0.2-py2.py3-none-any.whl", hash = "sha256:6e2783b2538bd5a14678284a3962b0660c715e5a0f10243fd5e00a4b5974f50b"},
     {file = "importlib_resources-1.0.2.tar.gz", hash = "sha256:d3279fd0f6f847cced9f7acc19bd3e5df54d34f93a2e7bb5f238f81545787078"},
-    {file = "importlib_resources-2.0.0-py2.py3-none-any.whl", hash = "sha256:a86462cf34a6d391d1d5d598a5e2f5aac9fc00b265d40542e1196328f015d1f6"},
-    {file = "importlib_resources-2.0.0.tar.gz", hash = "sha256:7f6aae2ed252ba10f5d1af5676b0e35f3b3eb7d3cc103b8365cc92aec0c79258"},
+    {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"},
 ]
 ipaddress = [
     {file = "ipaddress-1.0.23-py2.py3-none-any.whl", hash = "sha256:6e0f4a39e66cb5bb9a137b00276a2eff74f93b71dcbdad6f10ff7df9d3557fcc"},
@@ -2071,8 +2092,8 @@ more-itertools = [
     {file = "more_itertools-5.0.0-py3-none-any.whl", hash = "sha256:fe7a7cae1ccb57d33952113ff4fa1bc5f879963600ed74918f1236e212ee50b9"},
     {file = "more-itertools-7.2.0.tar.gz", hash = "sha256:409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832"},
     {file = "more_itertools-7.2.0-py3-none-any.whl", hash = "sha256:92b8c4b06dac4f0611c0729b2f2ede52b2e1bac1ab48f089c7ddc12e26bb60c4"},
-    {file = "more-itertools-8.3.0.tar.gz", hash = "sha256:558bb897a2232f5e4f8e2399089e35aecb746e1f9191b6584a151647e89267be"},
-    {file = "more_itertools-8.3.0-py3-none-any.whl", hash = "sha256:7818f596b1e87be009031c7653d01acc46ed422e6656b394b0f765ce66ed4982"},
+    {file = "more-itertools-8.4.0.tar.gz", hash = "sha256:68c70cc7167bdf5c7c9d8f6954a7837089c6a36bf565383919bb595efb8a17e5"},
+    {file = "more_itertools-8.4.0-py3-none-any.whl", hash = "sha256:b78134b2063dd214000685165d81c154522c3ee0a1c0d4d113c80361c234c5a2"},
 ]
 msgpack = [
     {file = "msgpack-1.0.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:cec8bf10981ed70998d98431cd814db0ecf3384e6b113366e7f36af71a0fca08"},
@@ -2143,8 +2164,8 @@ ptyprocess = [
     {file = "ptyprocess-0.6.0.tar.gz", hash = "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0"},
 ]
 py = [
-    {file = "py-1.8.1-py2.py3-none-any.whl", hash = "sha256:c20fdd83a5dbc0af9efd622bee9a5564e278f6380fffcacc43ba6f43db2813b0"},
-    {file = "py-1.8.1.tar.gz", hash = "sha256:5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa"},
+    {file = "py-1.9.0-py2.py3-none-any.whl", hash = "sha256:366389d1db726cd2fcfc79732e75410e5fe4d31db13692115529d34069a043c2"},
+    {file = "py-1.9.0.tar.gz", hash = "sha256:9ca6883ce56b4e8da7e79ac18787889fa5206c79dcc67fb065376cd2fe03f342"},
 ]
 pycparser = [
     {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"},
@@ -2190,15 +2211,15 @@ pytest = [
 pytest-cov = [
     {file = "pytest-cov-2.8.1.tar.gz", hash = "sha256:cc6742d8bac45070217169f5f72ceee1e0e55b0221f54bcf24845972d3a47f2b"},
     {file = "pytest_cov-2.8.1-py2.py3-none-any.whl", hash = "sha256:cdbdef4f870408ebdbfeb44e63e07eb18bb4619fae852f6e760645fa36172626"},
-    {file = "pytest-cov-2.9.0.tar.gz", hash = "sha256:b6a814b8ed6247bd81ff47f038511b57fe1ce7f4cc25b9106f1a4b106f1d9322"},
-    {file = "pytest_cov-2.9.0-py2.py3-none-any.whl", hash = "sha256:c87dfd8465d865655a8213859f1b4749b43448b5fae465cb981e16d52a811424"},
+    {file = "pytest-cov-2.10.0.tar.gz", hash = "sha256:1a629dc9f48e53512fcbfda6b07de490c374b0c83c55ff7a1720b3fccff0ac87"},
+    {file = "pytest_cov-2.10.0-py2.py3-none-any.whl", hash = "sha256:6e6d18092dce6fad667cd7020deed816f858ad3b49d5b5e2b1cc1c97a4dba65c"},
 ]
 pytest-mock = [
     {file = "pytest-mock-1.13.0.tar.gz", hash = "sha256:e24a911ec96773022ebcc7030059b57cd3480b56d4f5d19b7c370ec635e6aed5"},
     {file = "pytest_mock-1.13.0-py2.py3-none-any.whl", hash = "sha256:67e414b3caef7bff6fc6bd83b22b5bc39147e4493f483c2679bc9d4dc485a94d"},
 ]
 pytest-sugar = [
-    {file = "pytest-sugar-0.9.3.tar.gz", hash = "sha256:1630b5b7ea3624919b73fde37cffb87965c5087a4afab8a43074ff44e0d810c4"},
+    {file = "pytest-sugar-0.9.4.tar.gz", hash = "sha256:b1b2186b0a72aada6859bea2a5764145e3aaa2c1cfbb23c3a19b5f7b697563d3"},
 ]
 pywin32-ctypes = [
     {file = "pywin32-ctypes-0.2.0.tar.gz", hash = "sha256:24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942"},
@@ -2229,33 +2250,33 @@ pyyaml = [
     {file = "PyYAML-5.3.1.tar.gz", hash = "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d"},
 ]
 regex = [
-    {file = "regex-2020.6.8-cp27-cp27m-win32.whl", hash = "sha256:fbff901c54c22425a5b809b914a3bfaf4b9570eee0e5ce8186ac71eb2025191c"},
-    {file = "regex-2020.6.8-cp27-cp27m-win_amd64.whl", hash = "sha256:112e34adf95e45158c597feea65d06a8124898bdeac975c9087fe71b572bd938"},
-    {file = "regex-2020.6.8-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:92d8a043a4241a710c1cf7593f5577fbb832cf6c3a00ff3fc1ff2052aff5dd89"},
-    {file = "regex-2020.6.8-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:bae83f2a56ab30d5353b47f9b2a33e4aac4de9401fb582b55c42b132a8ac3868"},
-    {file = "regex-2020.6.8-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:b2ba0f78b3ef375114856cbdaa30559914d081c416b431f2437f83ce4f8b7f2f"},
-    {file = "regex-2020.6.8-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:95fa7726d073c87141f7bbfb04c284901f8328e2d430eeb71b8ffdd5742a5ded"},
-    {file = "regex-2020.6.8-cp36-cp36m-win32.whl", hash = "sha256:e3cdc9423808f7e1bb9c2e0bdb1c9dc37b0607b30d646ff6faf0d4e41ee8fee3"},
-    {file = "regex-2020.6.8-cp36-cp36m-win_amd64.whl", hash = "sha256:c78e66a922de1c95a208e4ec02e2e5cf0bb83a36ceececc10a72841e53fbf2bd"},
-    {file = "regex-2020.6.8-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:08997a37b221a3e27d68ffb601e45abfb0093d39ee770e4257bd2f5115e8cb0a"},
-    {file = "regex-2020.6.8-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:2f6f211633ee8d3f7706953e9d3edc7ce63a1d6aad0be5dcee1ece127eea13ae"},
-    {file = "regex-2020.6.8-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:55b4c25cbb3b29f8d5e63aeed27b49fa0f8476b0d4e1b3171d85db891938cc3a"},
-    {file = "regex-2020.6.8-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:89cda1a5d3e33ec9e231ece7307afc101b5217523d55ef4dc7fb2abd6de71ba3"},
-    {file = "regex-2020.6.8-cp37-cp37m-win32.whl", hash = "sha256:690f858d9a94d903cf5cada62ce069b5d93b313d7d05456dbcd99420856562d9"},
-    {file = "regex-2020.6.8-cp37-cp37m-win_amd64.whl", hash = "sha256:1700419d8a18c26ff396b3b06ace315b5f2a6e780dad387e4c48717a12a22c29"},
-    {file = "regex-2020.6.8-cp38-cp38-manylinux1_i686.whl", hash = "sha256:654cb773b2792e50151f0e22be0f2b6e1c3a04c5328ff1d9d59c0398d37ef610"},
-    {file = "regex-2020.6.8-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:52e1b4bef02f4040b2fd547357a170fc1146e60ab310cdbdd098db86e929b387"},
-    {file = "regex-2020.6.8-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:cf59bbf282b627130f5ba68b7fa3abdb96372b24b66bdf72a4920e8153fc7910"},
-    {file = "regex-2020.6.8-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:5aaa5928b039ae440d775acea11d01e42ff26e1561c0ffcd3d805750973c6baf"},
-    {file = "regex-2020.6.8-cp38-cp38-win32.whl", hash = "sha256:97712e0d0af05febd8ab63d2ef0ab2d0cd9deddf4476f7aa153f76feef4b2754"},
-    {file = "regex-2020.6.8-cp38-cp38-win_amd64.whl", hash = "sha256:6ad8663c17db4c5ef438141f99e291c4d4edfeaacc0ce28b5bba2b0bf273d9b5"},
-    {file = "regex-2020.6.8.tar.gz", hash = "sha256:e9b64e609d37438f7d6e68c2546d2cb8062f3adb27e6336bc129b51be20773ac"},
+    {file = "regex-2020.7.14-cp27-cp27m-win32.whl", hash = "sha256:e46d13f38cfcbb79bfdb2964b0fe12561fe633caf964a77a5f8d4e45fe5d2ef7"},
+    {file = "regex-2020.7.14-cp27-cp27m-win_amd64.whl", hash = "sha256:6961548bba529cac7c07af2fd4d527c5b91bb8fe18995fed6044ac22b3d14644"},
+    {file = "regex-2020.7.14-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:c50a724d136ec10d920661f1442e4a8b010a4fe5aebd65e0c2241ea41dbe93dc"},
+    {file = "regex-2020.7.14-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8a51f2c6d1f884e98846a0a9021ff6861bdb98457879f412fdc2b42d14494067"},
+    {file = "regex-2020.7.14-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:9c568495e35599625f7b999774e29e8d6b01a6fb684d77dee1f56d41b11b40cd"},
+    {file = "regex-2020.7.14-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:51178c738d559a2d1071ce0b0f56e57eb315bcf8f7d4cf127674b533e3101f88"},
+    {file = "regex-2020.7.14-cp36-cp36m-win32.whl", hash = "sha256:9eddaafb3c48e0900690c1727fba226c4804b8e6127ea409689c3bb492d06de4"},
+    {file = "regex-2020.7.14-cp36-cp36m-win_amd64.whl", hash = "sha256:14a53646369157baa0499513f96091eb70382eb50b2c82393d17d7ec81b7b85f"},
+    {file = "regex-2020.7.14-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:1269fef3167bb52631ad4fa7dd27bf635d5a0790b8e6222065d42e91bede4162"},
+    {file = "regex-2020.7.14-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d0a5095d52b90ff38592bbdc2644f17c6d495762edf47d876049cfd2968fbccf"},
+    {file = "regex-2020.7.14-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:4c037fd14c5f4e308b8370b447b469ca10e69427966527edcab07f52d88388f7"},
+    {file = "regex-2020.7.14-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:bc3d98f621898b4a9bc7fecc00513eec8f40b5b83913d74ccb445f037d58cd89"},
+    {file = "regex-2020.7.14-cp37-cp37m-win32.whl", hash = "sha256:46bac5ca10fb748d6c55843a931855e2727a7a22584f302dd9bb1506e69f83f6"},
+    {file = "regex-2020.7.14-cp37-cp37m-win_amd64.whl", hash = "sha256:0dc64ee3f33cd7899f79a8d788abfbec168410be356ed9bd30bbd3f0a23a7204"},
+    {file = "regex-2020.7.14-cp38-cp38-manylinux1_i686.whl", hash = "sha256:5ea81ea3dbd6767873c611687141ec7b06ed8bab43f68fad5b7be184a920dc99"},
+    {file = "regex-2020.7.14-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:bbb332d45b32df41200380fff14712cb6093b61bd142272a10b16778c418e98e"},
+    {file = "regex-2020.7.14-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:c11d6033115dc4887c456565303f540c44197f4fc1a2bfb192224a301534888e"},
+    {file = "regex-2020.7.14-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:75aaa27aa521a182824d89e5ab0a1d16ca207318a6b65042b046053cfc8ed07a"},
+    {file = "regex-2020.7.14-cp38-cp38-win32.whl", hash = "sha256:d6cff2276e502b86a25fd10c2a96973fdb45c7a977dca2138d661417f3728341"},
+    {file = "regex-2020.7.14-cp38-cp38-win_amd64.whl", hash = "sha256:7a2dd66d2d4df34fa82c9dc85657c5e019b87932019947faece7983f2089a840"},
+    {file = "regex-2020.7.14.tar.gz", hash = "sha256:3a3af27a8d23143c49a3420efe5b3f8cf1a48c6fc8bc6856b03f638abc1833bb"},
 ]
 requests = [
     {file = "requests-2.21.0-py2.py3-none-any.whl", hash = "sha256:7bf2a778576d825600030a110f3c0e3e8edc51dfaafe1c146e39a2027784957b"},
     {file = "requests-2.21.0.tar.gz", hash = "sha256:502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e"},
-    {file = "requests-2.23.0-py2.py3-none-any.whl", hash = "sha256:43999036bfa82904b6af1d99e4882b560e5e2c68e5c4b0aa03b655f3d7d73fee"},
-    {file = "requests-2.23.0.tar.gz", hash = "sha256:b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6"},
+    {file = "requests-2.24.0-py2.py3-none-any.whl", hash = "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"},
+    {file = "requests-2.24.0.tar.gz", hash = "sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b"},
 ]
 requests-toolbelt = [
     {file = "requests-toolbelt-0.8.0.tar.gz", hash = "sha256:f6a531936c6fa4c6cfce1b9c10d5c4f498d16528d2a54a22ca00011205a187b5"},
@@ -2293,6 +2314,7 @@ 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 = [
@@ -2327,12 +2349,12 @@ tornado = [
 tox = [
     {file = "tox-3.12.1-py2.py3-none-any.whl", hash = "sha256:f5c8e446b51edd2ea97df31d4ded8c8b72e7d6c619519da6bb6084b9dd5770f9"},
     {file = "tox-3.12.1.tar.gz", hash = "sha256:f87fd33892a2df0950e5e034def9468988b8d008c7e9416be665fcc0dd45b14f"},
-    {file = "tox-3.15.2-py2.py3-none-any.whl", hash = "sha256:50a188b8e17580c1fb931f494a754e6507d4185f54fb18aca5ba3e12d2ffd55e"},
-    {file = "tox-3.15.2.tar.gz", hash = "sha256:c696d36cd7c6a28ada2da780400e44851b20ee19ef08cfe73344a1dcebbbe9f3"},
+    {file = "tox-3.17.1-py2.py3-none-any.whl", hash = "sha256:cf130909a224515f6c894023150ccc860c4cf5ecad64f583b9d43ed1aa7e5da8"},
+    {file = "tox-3.17.1.tar.gz", hash = "sha256:5968c07b3aeea715ac2fe723a912e0b6a0c53bebad24fc37eb559b7497f217fa"},
 ]
 tqdm = [
-    {file = "tqdm-4.46.1-py2.py3-none-any.whl", hash = "sha256:07c06493f1403c1380b630ae3dcbe5ae62abcf369a93bbc052502279f189ab8c"},
-    {file = "tqdm-4.46.1.tar.gz", hash = "sha256:cd140979c2bebd2311dfb14781d8f19bd5a9debb92dcab9f6ef899c987fcf71f"},
+    {file = "tqdm-4.48.0-py2.py3-none-any.whl", hash = "sha256:fcb7cb5b729b60a27f300b15c1ffd4744f080fb483b88f31dc8654b082cc8ea5"},
+    {file = "tqdm-4.48.0.tar.gz", hash = "sha256:6baa75a88582b1db6d34ce4690da5501d2a1cb65c34664840a456b2c9f794d29"},
 ]
 typed-ast = [
     {file = "typed_ast-1.4.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:73d785a950fc82dd2a25897d525d003f6378d1cb23ab305578394694202a58c3"},
@@ -2358,9 +2380,8 @@ typed-ast = [
     {file = "typed_ast-1.4.1.tar.gz", hash = "sha256:8c8aaad94455178e3187ab22c8b01a3837f8ee50e09cf31f1ba129eb293ec30b"},
 ]
 typing = [
-    {file = "typing-3.7.4.1-py2-none-any.whl", hash = "sha256:c8cabb5ab8945cd2f54917be357d134db9cc1eb039e59d1606dc1e60cb1d9d36"},
-    {file = "typing-3.7.4.1-py3-none-any.whl", hash = "sha256:f38d83c5a7a7086543a0f649564d661859c5146a85775ab90c0d2f93ffaa9714"},
-    {file = "typing-3.7.4.1.tar.gz", hash = "sha256:91dfe6f3f706ee8cc32d38edbbf304e9b7583fb37108fef38229617f8b3eba23"},
+    {file = "typing-3.7.4.3-py2-none-any.whl", hash = "sha256:283d868f5071ab9ad873e5e52268d611e851c870a2ba354193026f2dfb29d8b5"},
+    {file = "typing-3.7.4.3.tar.gz", hash = "sha256:1187fb9c82fd670d10aa07bbb6cfcfe4bdda42d6fab8d5134f04e8c4d0b71cc9"},
 ]
 typing-extensions = [
     {file = "typing_extensions-3.7.4.2-py2-none-any.whl", hash = "sha256:f8d2bd89d25bc39dabe7d23df520442fa1d8969b82544370e03d88b5a591c392"},
@@ -2376,12 +2397,12 @@ urllib3 = [
 virtualenv = [
     {file = "virtualenv-16.7.10-py2.py3-none-any.whl", hash = "sha256:105893c8dc66b7817691c7371439ec18e3b6c5e323a304b5ed96cdd2e75cc1ec"},
     {file = "virtualenv-16.7.10.tar.gz", hash = "sha256:e88fdcb08b0ecb11da97868f463dd06275923f50d87f4b9c8b2fc0994eec40f4"},
-    {file = "virtualenv-20.0.21-py2.py3-none-any.whl", hash = "sha256:a730548b27366c5e6cbdf6f97406d861cccece2e22275e8e1a757aeff5e00c70"},
-    {file = "virtualenv-20.0.21.tar.gz", hash = "sha256:a116629d4e7f4d03433b8afa27f43deba09d48bc48f5ecefa4f015a178efb6cf"},
+    {file = "virtualenv-20.0.27-py2.py3-none-any.whl", hash = "sha256:c51f1ba727d1614ce8fd62457748b469fbedfdab2c7e5dd480c9ae3fbe1233f1"},
+    {file = "virtualenv-20.0.27.tar.gz", hash = "sha256:26cdd725a57fef4c7c22060dba4647ebd8ca377e30d1c1cf547b30a0b79c43b4"},
 ]
 wcwidth = [
-    {file = "wcwidth-0.2.4-py2.py3-none-any.whl", hash = "sha256:79375666b9954d4a1a10739315816324c3e73110af9d0e102d906fdb0aec009f"},
-    {file = "wcwidth-0.2.4.tar.gz", hash = "sha256:8c6b5b6ee1360b842645f336d9e5d68c55817c26d3050f46b235ef2bc650e48f"},
+    {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"},
+    {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"},
 ]
 webencodings = [
     {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"},
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml
index 0cdaef9908a..76dca20043e 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "poetry"
-version = "1.0.8"
+version = "1.0.10"
 description = "Python dependency management and packaging made easy."
 authors = [
     "Sébastien Eustace <sebastien@eustace.io>"
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json
index 5e91db253eb..ab987011a62 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json
@@ -1,6 +1,6 @@
 {
     "owner": "python-poetry",
     "repo": "poetry",
-    "rev": "6f9d6b0e1b7b1d3a7d7b2ca3478ad2cb0a7188e2",
-    "sha256": "1g9kcp3zlfk3f063hz1av9jj7s60pwxzqgj59w21sd5fx7yzdsaf"
+    "rev": "d3c9049a18ae33baacfcb5c698777282f2f58128",
+    "sha256": "00qfzjjs6clh93gfl1px3ma9km8qxl3f4z819nmyl58zc8ni3zyv"
 }
\ No newline at end of file
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/plugins.nix b/pkgs/development/tools/poetry2nix/poetry2nix/plugins.nix
new file mode 100644
index 00000000000..b5e807c6e2d
--- /dev/null
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/plugins.nix
@@ -0,0 +1,70 @@
+{ pkgs, lib }:
+let
+  inherit (pkgs) stdenv;
+
+  mkPluginDrv =
+    { self
+    , plugins
+    , drv
+    , postInstall ? ""
+    , nativeBuildInputs ? [ ]
+    , buildInputs ? [ ]
+    }:
+    let
+      env = self.python.withPackages (ps: plugins);
+    in
+    stdenv.mkDerivation {
+      pname = drv.pname + "-with-plugins";
+
+      inherit (drv) src version meta;
+
+      buildInputs = drv.buildInputs ++ drv.propagatedBuildInputs ++ buildInputs;
+      nativeBuildInputs = drv.nativeBuildInputs ++ nativeBuildInputs;
+
+      dontConfigure = true;
+      dontBuild = true;
+      dontUsePythonRecompileBytecode = true;
+
+      passthru = {
+        inherit (drv.passthru) withPlugins;
+        inherit plugins;
+      };
+
+      # Link bin/ from environment, but only if it's in a plugin
+      installPhase = ''
+        runHook preInstall
+
+        mkdir -p $out/bin
+
+        for bindir in ${lib.concatStringsSep " " (map (d: "${lib.getBin d}/bin") plugins)}; do
+          for bin in $bindir/*; do
+            ln -s ${env}/bin/$(basename $bin) $out/bin/
+          done
+        done
+
+        runHook postInstall
+      '';
+
+      inherit postInstall;
+    };
+
+in
+{
+
+  # Provide the `withPlugins` function
+  toPluginAble = self: { drv
+                       , finalDrv
+                       , postInstall ? ""
+                       , nativeBuildInputs ? [ ]
+                       , buildInputs ? [ ]
+                       }: drv.overridePythonAttrs (old: {
+    passthru = old.passthru // {
+      withPlugins = pluginFn: mkPluginDrv {
+        plugins = [ finalDrv ] ++ pluginFn self;
+        inherit self postInstall nativeBuildInputs buildInputs;
+        drv = finalDrv;
+      };
+    };
+  });
+
+}
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix b/pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix
new file mode 100644
index 00000000000..cbaa4439afe
--- /dev/null
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix
@@ -0,0 +1,41 @@
+{ lib
+, scripts
+, python
+}:
+let
+  mkScript = bin: entrypoint:
+    let
+      elem = builtins.elemAt (builtins.split ":" entrypoint);
+      module = elem 0;
+      fn = elem 2;
+    in
+    ''
+      cat << EOF >> $out/bin/${bin}
+      #!${python.interpreter}
+      import sys
+      import re
+
+      # Insert "" to add CWD to import path
+      sys.path.insert(0, "")
+
+      from ${module} import ${fn}
+
+      if __name__ == '__main__':
+          sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', "", sys.argv[0])
+          sys.exit(${fn}())
+      EOF
+      chmod +x $out/bin/${bin}
+    '';
+in
+python.pkgs.buildPythonPackage {
+  name = "poetry2nix-env-scripts";
+  dontUnpack = true;
+  dontUseSetuptoolsBuild = true;
+  dontConfigure = true;
+  dontUseSetuptoolsCheck = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    ${lib.concatStringsSep "\n" (lib.mapAttrsToList mkScript scripts)}
+  '';
+}
diff --git a/pkgs/development/tools/profiling/heaptrack/default.nix b/pkgs/development/tools/profiling/heaptrack/default.nix
index 817bb117171..ed31f438a0a 100644
--- a/pkgs/development/tools/profiling/heaptrack/default.nix
+++ b/pkgs/development/tools/profiling/heaptrack/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "heaptrack";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "KDE";
     repo = "heaptrack";
     rev = "v${version}";
-    sha256 = "0vgwldl5n41r4y3pv8w29gmyln0k2w6m59zrfw9psm4hkxvivzlx";
+    sha256 = "0pw82c26da014i1qxnaib3fqa52ijhf0m4swhjc3qq4hm2dx9bxj";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
diff --git a/pkgs/development/tools/profiling/oprofile/default.nix b/pkgs/development/tools/profiling/oprofile/default.nix
index 6e6cb9fc4cf..ca346cd1f14 100644
--- a/pkgs/development/tools/profiling/oprofile/default.nix
+++ b/pkgs/development/tools/profiling/oprofile/default.nix
@@ -8,11 +8,11 @@
 assert withGUI -> qt4 != null;
 
 stdenv.mkDerivation rec {
-  name = "oprofile-1.3.0";
+  name = "oprofile-1.4.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/oprofile/${name}.tar.gz";
-    sha256 = "1rj76vvkhpfn9k04s7jhb813ximfcwd9h5gh18pr4fgcw6yxiplm";
+    sha256 = "04m46ni0ryk4sqmzd6mahwzp7iwhwqzfbmfi42fki261sycnz83v";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/profiling/sysprof/default.nix b/pkgs/development/tools/profiling/sysprof/default.nix
index 620bce7a0ff..ce731309882 100644
--- a/pkgs/development/tools/profiling/sysprof/default.nix
+++ b/pkgs/development/tools/profiling/sysprof/default.nix
@@ -1,4 +1,5 @@
 { stdenv
+, lib
 , desktop-file-utils
 , fetchurl
 , fetchpatch
@@ -50,7 +51,7 @@ stdenv.mkDerivation rec {
     wrapGAppsHook
     gnome3.adwaita-icon-theme
   ];
-  buildInputs = [ glib gtk3 pango polkit systemd.dev systemd.lib libdazzle ];
+  buildInputs = [ glib gtk3 pango polkit systemd.dev (lib.getLib systemd) libdazzle ];
 
   mesonFlags = [
     "-Dsystemdunitdir=lib/systemd/system"
diff --git a/pkgs/development/tools/proto-contrib/default.nix b/pkgs/development/tools/proto-contrib/default.nix
index 90253ed5704..74f47f3f996 100644
--- a/pkgs/development/tools/proto-contrib/default.nix
+++ b/pkgs/development/tools/proto-contrib/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1ivvq5ch9grdrwqq29flv9821kyb16k0cj6wgj5v0dyn63w420aw";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Contributed tools and other packages on top of the Go proto package";
     homepage = "https://github.com/emicklei/proto-contrib";
@@ -20,4 +22,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ kalbasit ];
     platforms = platforms.linux ++ platforms.darwin;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/protoc-gen-doc/default.nix b/pkgs/development/tools/protoc-gen-doc/default.nix
index 5579d006e97..1a1991be949 100644
--- a/pkgs/development/tools/protoc-gen-doc/default.nix
+++ b/pkgs/development/tools/protoc-gen-doc/default.nix
@@ -13,6 +13,8 @@ buildGoModule {
 
   vendorSha256 = "17qdpsff8jk7ks5v6ix1rb966x3yvq03vk5bs2zbnxfdra7bv3n6";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Documentation generator plugin for Google Protocol Buffers";
     longDescription = ''
@@ -27,4 +29,4 @@ buildGoModule {
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/prototool/default.nix b/pkgs/development/tools/prototool/default.nix
index a5cf91b70d1..e58b89a2736 100644
--- a/pkgs/development/tools/prototool/default.nix
+++ b/pkgs/development/tools/prototool/default.nix
@@ -15,6 +15,8 @@ buildGoModule rec {
 
   vendorSha256 = "0gyj0yrri2j4yxmyn4d4vdhaxf2p08srpjcxg9zpaxwv5rrvipav";
 
+  doCheck = false;
+
   postInstall = ''
     wrapProgram "$out/bin/prototool" \
       --prefix PROTOTOOL_PROTOC_BIN_PATH : "${protobuf}/bin/protoc" \
diff --git a/pkgs/development/tools/purescript/spago/spago.nix b/pkgs/development/tools/purescript/spago/spago.nix
index 20a1f53f675..b36bc26433d 100644
--- a/pkgs/development/tools/purescript/spago/spago.nix
+++ b/pkgs/development/tools/purescript/spago/spago.nix
@@ -11,11 +11,11 @@
 }:
 mkDerivation {
   pname = "spago";
-  version = "0.15.3";
+  version = "0.16.0";
   src = fetchgit {
     url = "https://github.com/purescript/spago.git";
-    sha256 = "0spc7r531kmh9magaxzy4jls3bzfazwf8sq3qzk6f292d7ky6n8y";
-    rev = "da6d91c19b23f06f3ede793f78599a6589c9e7cd";
+    sha256 = "0z4s0z14n1v9wajs7mj2b295rrrw24gdca79drzlv6x1y6dj7sxh";
+    rev = "71b093cdf5e48ded645303281ab4a3ea5b730f5d";
     fetchSubmodules = true;
   };
   isLibrary = true;
diff --git a/pkgs/development/tools/quicktemplate/default.nix b/pkgs/development/tools/quicktemplate/default.nix
index d9433f535da..8f75540f3a6 100644
--- a/pkgs/development/tools/quicktemplate/default.nix
+++ b/pkgs/development/tools/quicktemplate/default.nix
@@ -13,13 +13,10 @@ buildGoPackage {
     sha256 = "1pimf5bwivklsr438if6l8by34gr48a05gl6hq07cvc8z6wl01m2";
   };
 
-  enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     homepage = "https://github.com/valyala/quicktemplate";
     description = "Fast, powerful, yet easy to use template engine for Go";
     license = licenses.mit;
     maintainers = with maintainers; [ chiiruno ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/rebazel/default.nix b/pkgs/development/tools/rebazel/default.nix
new file mode 100644
index 00000000000..73a58ee100b
--- /dev/null
+++ b/pkgs/development/tools/rebazel/default.nix
@@ -0,0 +1,21 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+rustPlatform.buildRustPackage rec {
+  pname = "rebazel";
+  version = "0.1.4";
+
+  src = fetchFromGitHub {
+    owner = "meetup";
+    repo = "rebazel";
+    rev = "v${version}";
+    hash = "sha256-v84ZXhtJpejQmP61NmP06+qrtMu/0yb7UyD7U12xlME=";
+  };
+
+  cargoSha256 = "sha256-2FmtbvtNfNoocj3Ly553KBLfOgBAa/eAxOrfZ3NGzzw=";
+
+  meta = with lib; {
+    description = "tool for expediting bazel build workflows";
+    homepage = "https://github.com/meetup/rebazel";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zimbatm ];
+  };
+}
diff --git a/pkgs/development/tools/reftools/default.nix b/pkgs/development/tools/reftools/default.nix
index 7f8d1be1a52..440d2f96133 100644
--- a/pkgs/development/tools/reftools/default.nix
+++ b/pkgs/development/tools/reftools/default.nix
@@ -10,7 +10,8 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
-  goPackagePath = "github.com/davidrjenni/reftools";
+  doCheck = false;
+
   excludedPackages = "\\(cmd/fillswitch/test-fixtures\\)";
 
   src = fetchFromGitHub {
@@ -28,4 +29,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ kalbasit ];
     platforms = platforms.linux ++ platforms.darwin;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/renderizer/default.nix b/pkgs/development/tools/renderizer/default.nix
index 877fdeea8f2..2b2c57135cb 100644
--- a/pkgs/development/tools/renderizer/default.nix
+++ b/pkgs/development/tools/renderizer/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "13z357ww4j5bmmy8ag6d6gd5b2dib8kby73q8317pqnqzaxrrbcj";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "CLI to render Go template text files";
     inherit (src.meta) homepage;
     license = licenses.gpl3;
     maintainers = with maintainers; [ yurrriq ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/reno/default.nix b/pkgs/development/tools/reno/default.nix
index 2b082d03b5f..b05bb2cd26a 100644
--- a/pkgs/development/tools/reno/default.nix
+++ b/pkgs/development/tools/reno/default.nix
@@ -1,27 +1,58 @@
-{ stdenv, fetchurl, pythonPackages }:
+{ stdenv
+, git
+, gnupg1
+, python3Packages
+}:
 
-with pythonPackages; buildPythonApplication rec {
+with python3Packages; buildPythonApplication rec {
   pname = "reno";
-  version = "2.3.2";
+  version = "3.1.0";
 
-  src = fetchurl {
-    url = "mirror://pypi/r/reno/${pname}-${version}.tar.gz";
-    sha256 = "018vl9fj706jjf07xdx8q6761s53mrihjn69yjq09gp0vmp1g7i4";
+  # Must be built from python sdist because of versioning quirks
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2510e3aae4874674187f88f22f854e6b0ea1881b77039808a68ac1a5e8ee69b6";
   };
 
-  # Don't know how to make tests pass
-  doCheck = false;
+  propagatedBuildInputs = [
+    dulwich
+    pbr
+    pyyaml
+    setuptools  # required for finding pkg_resources at runtime
+  ];
 
-  # Nothing to strip (python files)
-  dontStrip = true;
+  checkInputs = [
+    # Python packages
+    pytestCheckHook
+    docutils
+    fixtures
+    sphinx
+    testtools
+    testscenarios
 
-  propagatedBuildInputs = [ pbr six pyyaml dulwich ];
-  buildInputs = [ Babel ];
+    # Required programs to run all tests
+    git
+    gnupg1
+  ];
+
+  # remove b/c doesn't list all dependencies, and requires a few packages not in nixpkgs
+  postPatch = ''
+    rm test-requirements.txt
+  '';
+
+  disabledTests = [
+    "test_build_cache_db" # expects to be run from a git repository
+  ];
+
+  # verify executable
+  postCheck = ''
+    $out/bin/reno -h
+  '';
 
   meta = with stdenv.lib; {
     description = "Release Notes Manager";
-    homepage    = "http://docs.openstack.org/developer/reno/";
-    license     = licenses.asl20;
-    maintainers = with maintainers; [ guillaumekoenig ];
+    homepage = "https://docs.openstack.org/reno/latest";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ drewrisinger guillaumekoenig ];
   };
 }
diff --git a/pkgs/development/tools/richgo/default.nix b/pkgs/development/tools/richgo/default.nix
index 4fc4d4abc61..e6478086f79 100644
--- a/pkgs/development/tools/richgo/default.nix
+++ b/pkgs/development/tools/richgo/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1nvk3akjwfcbvif1w4cglsqplcajlwq3mnvk9b75nmn9qaqfbfjf";
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   meta = with stdenv.lib; {
@@ -21,4 +23,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ rvolosatovs ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/rq/default.nix b/pkgs/development/tools/rq/default.nix
index 89ba58ea5f5..68d3bfce06b 100644
--- a/pkgs/development/tools/rq/default.nix
+++ b/pkgs/development/tools/rq/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "0c5vwy3c5ji602dj64z6jqvcpi2xff03zvjbnwihb3ydqwnb3v67";
 
-  buildInputs = [ llvmPackages.clang-unwrapped v8 ] 
+  buildInputs = [ llvmPackages.clang-unwrapped v8 ]
   ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
   configurePhase = ''
@@ -26,6 +26,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dflemstr/rq";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ aristid filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/run/default.nix b/pkgs/development/tools/run/default.nix
index 518cc3e2557..41d1a8a29fd 100644
--- a/pkgs/development/tools/run/default.nix
+++ b/pkgs/development/tools/run/default.nix
@@ -12,6 +12,8 @@ buildGoModule rec {
 
   vendorSha256 = "1g5rmiiwqpm8gky9yr5f2a7zsjjmm9i12r7yxj9cz7y3rmw9sw8c";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Easily manage and invoke small scripts and wrappers";
     homepage    = "https://github.com/TekWizely/run";
@@ -19,4 +21,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ rawkode filalex77 ];
     platforms   = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/rust/bindgen/default.nix b/pkgs/development/tools/rust/bindgen/default.nix
index 2ca4b8070aa..cc1bf1c7476 100644
--- a/pkgs/development/tools/rust/bindgen/default.nix
+++ b/pkgs/development/tools/rust/bindgen/default.nix
@@ -3,7 +3,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-bindgen";
-  version = "0.53.2";
+  version = "0.54.1";
 
   RUSTFLAGS = "--cap-lints warn"; # probably OK to remove after update
 
@@ -11,10 +11,10 @@ rustPlatform.buildRustPackage rec {
     owner = "rust-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "01dkaa2akqrhpxxf0g2zyfdb3nx16y14qsg0a9d5n92c4yyvmwjg";
+    sha256 = "116np72w6agsi94xa1bdn6h7sa9gd522h358zlixk9xrhrx7yfn3";
   };
 
-  cargoSha256 = "0pm9kh3qrcv5jsbrr476982lg1j31fbvxpzs4gphxl0mv1qmp4zm";
+  cargoSha256 = "12a7bd2579jcnkss073v5w5w68fxwvhq6c6ndjy8vp78wg83qich";
 
   libclang = llvmPackages.libclang.lib; #for substituteAll
 
@@ -51,7 +51,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "C and C++ binding generator";
+    description = "Automatically generates Rust FFI bindings to C (and some C++) libraries.";
     longDescription = ''
       Bindgen takes a c or c++ header file and turns them into
       rust ffi declarations.
@@ -61,6 +61,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rust-lang/rust-bindgen";
     license = with licenses; [ bsd3 ];
     platforms = platforms.unix;
-    maintainers = [ maintainers.ralith ];
+    maintainers = with maintainers; [ johntitor ralith ];
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-asm/default.nix b/pkgs/development/tools/rust/cargo-asm/default.nix
index d8aca4045bf..76b49056a3f 100644
--- a/pkgs/development/tools/rust/cargo-asm/default.nix
+++ b/pkgs/development/tools/rust/cargo-asm/default.nix
@@ -24,6 +24,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/gnzlbg/cargo-asm";
     license = licenses.mit;
     maintainers = [ maintainers.danieldk ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-c/default.nix b/pkgs/development/tools/rust/cargo-c/default.nix
new file mode 100644
index 00000000000..44ebcc63c87
--- /dev/null
+++ b/pkgs/development/tools/rust/cargo-c/default.nix
@@ -0,0 +1,50 @@
+{ rustPlatform, stdenv, lib, fetchFromGitHub, fetchurl
+, pkg-config, openssl
+, CoreFoundation, libiconv, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-c";
+  version = "0.6.7";
+
+  src = stdenv.mkDerivation rec {
+    name = "${pname}-source-${version}";
+
+    src = fetchFromGitHub {
+      owner = "lu-zero";
+      repo = pname;
+      rev = "v${version}";
+      sha256 = "0n52xh4qg12bvvp2dgx5wfj5f31qijdqahasa3qfa3c3aqq7cvvg";
+    };
+    cargoLock = fetchurl {
+      url = "https://github.com/lu-zero/${pname}/releases/download/v${version}/Cargo.lock";
+      sha256 = "0296187hsaxxmqhsrrva4qf313jwh3z08j1vxcbislxdq8xg32qb";
+    };
+
+    installPhase = ''
+      mkdir -p $out
+      cp -R ./* $out/
+      cp ${cargoLock} $out/Cargo.lock
+    '';
+  };
+
+  cargoSha256 = "1gwyszpcmss2d0lm5hvf3b48jy7b0fm7xizhrl3wd6rzw7pg06zd";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ openssl ]
+  ++ stdenv.lib.optionals stdenv.isDarwin [ CoreFoundation libiconv Security ];
+
+  meta = with lib; {
+    description = "A cargo subcommand to build and install C-ABI compatibile dynamic and static libraries";
+    longDescription = ''
+      Cargo C-ABI helpers. A cargo applet that produces and installs a correct
+      pkg-config file, a static library and a dynamic library, and a C header
+      to be used by any C (and C-compatible) software.
+    '';
+    homepage = "https://github.com/lu-zero/cargo-c";
+    changelog = "https://github.com/lu-zero/cargo-c/releases/tag/v${version}";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/pkgs/development/tools/rust/cargo-cache/default.nix b/pkgs/development/tools/rust/cargo-cache/default.nix
new file mode 100644
index 00000000000..0f3571045d6
--- /dev/null
+++ b/pkgs/development/tools/rust/cargo-cache/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, rustPlatform, libiconv, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-cache";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "matthiaskrgr";
+    repo = pname;
+    rev = version;
+    sha256 = "02d593w1x8160p4m3jwm1dyvv383cy7njijlcaw49jczxv5isqbi";
+  };
+
+  cargoSha256 = "150ifd7gq6csrasqw91z4nsaj6w7kf69j0w6wydr3z7bdahmlgqw";
+
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
+
+  checkFlagsArray = [ "offline_tests" ];
+
+  meta = with stdenv.lib; {
+    description = "Manage cargo cache (\${CARGO_HOME}, ~/.cargo/), print sizes of dirs and remove dirs selectively";
+    homepage = "https://github.com/matthiaskrgr/cargo-cache";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ filalex77 ];
+  };
+}
diff --git a/pkgs/development/tools/rust/cargo-crev/default.nix b/pkgs/development/tools/rust/cargo-crev/default.nix
index 1093440ecbf..750b651651c 100644
--- a/pkgs/development/tools/rust/cargo-crev/default.nix
+++ b/pkgs/development/tools/rust/cargo-crev/default.nix
@@ -1,19 +1,28 @@
-{ stdenv, fetchFromGitHub, rustPlatform, Security, openssl, pkgconfig, libiconv, curl }:
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, perl
+, pkg-config
+, Security
+, curl
+, libiconv
+, openssl
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-crev";
-  version = "0.16.1";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "crev-dev";
     repo = "cargo-crev";
     rev = "v${version}";
-    sha256 = "16da30zbv8f7w8bxsssmrpzm41a966wby1l6ldyiiszs980qh7c5";
+    sha256 = "1s5wb5m0d77qi90pyxld98ap37xnxrz3sz5gazq0pp5i9c9xa124";
   };
 
-  cargoSha256 = "0z365pgdd95apk2zz2n0gx85s0gf8ccfbqippxqn1fdsppihib6g";
+  cargoSha256 = "10dzvzjqib751h2p1pl0z3dy2d17xwrcp9vyfrfr185yximcw2wx";
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ perl pkg-config ];
 
   buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ Security libiconv curl ];
 
diff --git a/pkgs/development/tools/rust/cargo-embed/default.nix b/pkgs/development/tools/rust/cargo-embed/default.nix
new file mode 100644
index 00000000000..dafcd1ded2f
--- /dev/null
+++ b/pkgs/development/tools/rust/cargo-embed/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib
+, rustPlatform, fetchFromGitHub
+, libusb1, pkg-config, rustfmt }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-embed";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    owner = "probe-rs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0klkgl7c42vhqxj6svw26lcr7rccq89bl17jn3p751x6281zvr35";
+  };
+
+  cargoSha256 = "0w21q2fpr077m8jr24ld3qjimwk1m4fy9dh14fq9nv5xd4f5s8n8";
+
+  nativeBuildInputs = [ pkg-config rustfmt ];
+  buildInputs = [ libusb1 ];
+
+  meta = with lib; {
+    description = "A cargo extension for working with microcontrollers.";
+    homepage = "http://probe.rs/";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ fooker ];
+  };
+}
diff --git a/pkgs/development/tools/rust/cargo-expand/default.nix b/pkgs/development/tools/rust/cargo-expand/default.nix
index ebe23e19737..c32a87e7839 100644
--- a/pkgs/development/tools/rust/cargo-expand/default.nix
+++ b/pkgs/development/tools/rust/cargo-expand/default.nix
@@ -2,23 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-expand";
-  version = "0.6.0";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "dtolnay";
     repo = pname;
     rev = version;
-    sha256 = "1xinaxxdsyhy8jl6albw8q9nl12iq11xny6a6a55niqzhvy1sdmp";
+    sha256 = "0bdv6h3mzmv46pdyvwl0v0bg719dlsxlx378ws6vgi1cga24g37i";
   };
 
-  cargoSha256 = "0i326vny4gygalsimsgkqsvlq09av8pv9a7a0yxcbk170a7zyxb0";
+  cargoSha256 = "0qpihfgfqxw5fyhn124c5lbfaxr717bqf8mrbagh3vdgvk75j0qz";
 
   meta = with lib; {
     description =
       "A utility and Cargo subcommand designed to let people expand macros in their Rust source code";
     homepage = "https://github.com/dtolnay/cargo-expand";
     license = with licenses; [ mit asl20 ];
-    platforms = platforms.all;
     maintainers = with maintainers; [ xrelkd ];
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-flash/default.nix b/pkgs/development/tools/rust/cargo-flash/default.nix
new file mode 100644
index 00000000000..d4844de21a0
--- /dev/null
+++ b/pkgs/development/tools/rust/cargo-flash/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib
+, rustPlatform, fetchFromGitHub
+, libusb1, pkg-config, rustfmt }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-flash";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    owner = "probe-rs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1bcpv1r4pdpp22w7za7kdy7jl487x3nlwxiz6sqq3iq6wq3j9zj0";
+  };
+
+  cargoSha256 = "1pf117fgw9x9diksqv58cw7i0kzmp25yj73y5ll69sk46b6z4j90";
+
+  nativeBuildInputs = [ pkg-config rustfmt ];
+  buildInputs = [ libusb1 ];
+
+  meta = with lib; {
+    description = "A cargo extension for working with microcontrollers.";
+    homepage = "http://probe.rs/";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ fooker ];
+  };
+}
diff --git a/pkgs/development/tools/rust/cargo-fund/default.nix b/pkgs/development/tools/rust/cargo-fund/default.nix
new file mode 100644
index 00000000000..06f99268d0b
--- /dev/null
+++ b/pkgs/development/tools/rust/cargo-fund/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, pkg-config, rustPlatform, Security, curl, openssl, libiconv }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-fund";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "acfoltzer";
+    repo = pname;
+    rev = version;
+    sha256 = "1jim5bgq3fc33391qpa1q1csbzqf4hk1qyfzwxpcs5pb4ixb6vgk";
+  };
+
+  cargoSha256 = "181gcmaw2w5a6ah8a2ahsnc1zkadpmx1azkwh2a6x8myhzw2dxsj";
+
+  # The tests need a GitHub API token.
+  doCheck = false;
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ Security libiconv curl ];
+
+  meta = with stdenv.lib; {
+    description = "Discover funding links for your project's dependencies";
+    homepage = "https://github.com/acfoltzer/cargo-fund";
+    license = with licenses; [ mit /* or */ asl20 ];
+    maintainers = with maintainers; [ johntitor ];
+  };
+}
diff --git a/pkgs/development/tools/rust/cargo-fuzz/default.nix b/pkgs/development/tools/rust/cargo-fuzz/default.nix
index 7379fbffe5e..14c849ac0af 100644
--- a/pkgs/development/tools/rust/cargo-fuzz/default.nix
+++ b/pkgs/development/tools/rust/cargo-fuzz/default.nix
@@ -1,23 +1,24 @@
-{ stdenv, fetchFromGitHub, fetchurl, runCommand, rustPlatform }:
+{ stdenv, fetchFromGitHub, rustPlatform }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-fuzz";
-  version = "0.5.4";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "rust-fuzz";
     repo = "cargo-fuzz";
     rev = version;
-    sha256 = "0qy4xb7bxyw2x2ya7zmbkz48wxb69jcnvvj7021f1kyc6wdwcxs7";
+    sha256 = "1d4bq9140bri8cd9zcxh5hhc51vr0s6jadjhwkp688w7k10rq7w8";
   };
 
-  cargoSha256 = "0d24crgx6wrb1p96w2yww7cs474x2pz4i6f26cry8pf5dwqfsqdm";
+  cargoSha256 = "0zxhak79f50m8nw95ny733mk4x2f7kyk6q9v4f7jr2rkcldhgrpr";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Command line helpers for fuzzing";
     homepage = "https://github.com/rust-fuzz/cargo-fuzz";
     license = with licenses; [ mit asl20 ];
     maintainers = [ maintainers.ekleog ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-geiger/default.nix b/pkgs/development/tools/rust/cargo-geiger/default.nix
index 09956976fb6..d30c3ad6292 100644
--- a/pkgs/development/tools/rust/cargo-geiger/default.nix
+++ b/pkgs/development/tools/rust/cargo-geiger/default.nix
@@ -50,6 +50,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rust-secure-code/cargo-geiger";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ evanjs ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-generate/default.nix b/pkgs/development/tools/rust/cargo-generate/default.nix
index 360cb469e6c..5a262762027 100644
--- a/pkgs/development/tools/rust/cargo-generate/default.nix
+++ b/pkgs/development/tools/rust/cargo-generate/default.nix
@@ -29,6 +29,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ashleygwilliams/cargo-generate";
     license = licenses.asl20;
     maintainers = [ maintainers.turbomack ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-inspect/default.nix b/pkgs/development/tools/rust/cargo-inspect/default.nix
index f16a5d5727a..5a8c9150279 100644
--- a/pkgs/development/tools/rust/cargo-inspect/default.nix
+++ b/pkgs/development/tools/rust/cargo-inspect/default.nix
@@ -2,24 +2,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-inspect";
-  version = "0.10.1";
+  version = "0.10.3";
 
   src = fetchFromGitHub {
     owner = "mre";
     repo = pname;
     rev = version;
-    sha256 = "0rjy8jlar939fkl7wi8a6zxsrl4axz2nrhv745ny8x38ii4sfbzr";
+    sha256 = "026vc8d0jkc1d7dlp3ldmwks7svpvqzl0k5niri8a12cl5w5b9hj";
   };
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoSha256 = "0v7g9rkw7axy99vcfi7sy2pw7wnpq424jvd8xchcv8ghh8yw9lyc";
+  cargoSha256 = "1ryi5qi1zz2yljyj4rn84q9zkzafc9w4nw3zc01hlzpnb1sjw5sw";
 
   meta = with lib; {
     description = "See what Rust is doing behind the curtains";
     homepage = "https://github.com/mre/cargo-inspect";
     license = with licenses; [ mit asl20 ];
-    platforms = platforms.all;
     maintainers = with maintainers; [ minijackson ];
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-make/Cargo.lock b/pkgs/development/tools/rust/cargo-make/Cargo.lock
deleted file mode 100644
index 191e96f021f..00000000000
--- a/pkgs/development/tools/rust/cargo-make/Cargo.lock
+++ /dev/null
@@ -1,1323 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-[[package]]
-name = "adler"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccc9a9dd069569f212bc4330af9f17c4afb5e8ce185e83dbb14f1349dda18b10"
-
-[[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",
-]
-
-[[package]]
-name = "aho-corasick"
-version = "0.7.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
-dependencies = [
- "memchr 2.3.3",
-]
-
-[[package]]
-name = "ansi_term"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
-dependencies = [
- "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"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
-
-[[package]]
-name = "attohttpc"
-version = "0.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe174d1b67f7b2bafed829c09db039301eb5841f66e43be2cf60b326e7f8e2cc"
-dependencies = [
- "flate2",
- "http",
- "log",
- "native-tls",
- "openssl",
- "url",
-]
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi",
- "libc",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "autocfg"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
-
-[[package]]
-name = "base64"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
-
-[[package]]
-name = "base64"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
-
-[[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"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
-dependencies = [
- "arrayref",
- "arrayvec",
- "constant_time_eq",
-]
-
-[[package]]
-name = "bytes"
-version = "0.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "118cf036fbb97d0816e3c34b2d7a1e8cfc60f68fcf63d550ddbe9bd5f59c213b"
-dependencies = [
- "loom",
-]
-
-[[package]]
-name = "cargo-make"
-version = "0.32.0"
-dependencies = [
- "ci_info",
- "clap",
- "colored",
- "dirs",
- "duckscript",
- "duckscriptsdk",
- "envmnt",
- "fern",
- "fsio",
- "git_info",
- "glob",
- "home",
- "indexmap",
- "log",
- "run_script",
- "rust_info",
- "rusty-hook",
- "semver 0.10.0",
- "serde",
- "serde_derive",
- "serde_json",
- "shell2batch",
- "toml",
-]
-
-[[package]]
-name = "cc"
-version = "1.0.57"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fde55d2a2bfaa4c9668bbc63f531fbdeee3ffe188f4662511ce2c22b3eedebe"
-
-[[package]]
-name = "cfg-if"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
-
-[[package]]
-name = "chrono"
-version = "0.2.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9213f7cd7c27e95c2b57c49f0e69b1ea65b27138da84a170133fd21b07659c00"
-dependencies = [
- "num",
- "time",
-]
-
-[[package]]
-name = "ci_info"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24f638c70e8c5753795cc9a8c07c44da91554a09e4cf11a7326e8161b0a3c45e"
-dependencies = [
- "envmnt",
-]
-
-[[package]]
-name = "clap"
-version = "2.33.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
-dependencies = [
- "ansi_term",
- "atty",
- "bitflags",
- "strsim",
- "textwrap",
- "unicode-width",
- "vec_map",
-]
-
-[[package]]
-name = "colored"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59"
-dependencies = [
- "atty",
- "lazy_static 1.4.0",
- "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 = "core-foundation"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
-
-[[package]]
-name = "crc32fast"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
-dependencies = [
- "autocfg",
- "cfg-if",
- "lazy_static 1.4.0",
-]
-
-[[package]]
-name = "dirs"
-version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fddc3610d8f9552384e06ebc87f714e1d0b2b64a99194d2faf36d7ae5f48549"
-dependencies = [
- "cfg-if",
- "dirs-sys",
-]
-
-[[package]]
-name = "dirs-sys"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a"
-dependencies = [
- "libc",
- "redox_users",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "duckscript"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4c3da85470786f086bd14c0b299092715a99f8d8bb0ac2b787cbaab71e6ba6"
-dependencies = [
- "fsio",
-]
-
-[[package]]
-name = "duckscriptsdk"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0033c9c694e0a358f42316e3517442ca9039de8b3838d8320fb129da5dbec28b"
-dependencies = [
- "attohttpc",
- "base64 0.12.3",
- "cfg-if",
- "duckscript",
- "fs_extra",
- "fsio",
- "ftp",
- "glob",
- "home",
- "java-properties",
- "meval",
- "num_cpus",
- "rand",
- "uname",
- "walkdir",
- "which",
- "whoami",
-]
-
-[[package]]
-name = "encoding"
-version = "0.2.33"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec"
-dependencies = [
- "encoding-index-japanese",
- "encoding-index-korean",
- "encoding-index-simpchinese",
- "encoding-index-singlebyte",
- "encoding-index-tradchinese",
-]
-
-[[package]]
-name = "encoding-index-japanese"
-version = "1.20141219.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
-dependencies = [
- "encoding_index_tests",
-]
-
-[[package]]
-name = "encoding-index-korean"
-version = "1.20141219.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
-dependencies = [
- "encoding_index_tests",
-]
-
-[[package]]
-name = "encoding-index-simpchinese"
-version = "1.20141219.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
-dependencies = [
- "encoding_index_tests",
-]
-
-[[package]]
-name = "encoding-index-singlebyte"
-version = "1.20141219.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
-dependencies = [
- "encoding_index_tests",
-]
-
-[[package]]
-name = "encoding-index-tradchinese"
-version = "1.20141219.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
-dependencies = [
- "encoding_index_tests",
-]
-
-[[package]]
-name = "encoding_index_tests"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
-
-[[package]]
-name = "envmnt"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0dad160daebf530422640d9496277681d6a2caa3172ec8fd2a315a122829319b"
-dependencies = [
- "fsio",
- "indexmap",
-]
-
-[[package]]
-name = "fern"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c9a4820f0ccc8a7afd67c39a0f1a0f4b07ca1725164271a64939d7aeb9af065"
-dependencies = [
- "log",
-]
-
-[[package]]
-name = "flate2"
-version = "1.0.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68c90b0fc46cf89d227cc78b40e494ff81287a92dd07631e5af0d06fe3cf885e"
-dependencies = [
- "cfg-if",
- "crc32fast",
- "libc",
- "miniz_oxide",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
-name = "foreign-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-dependencies = [
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-[[package]]
-name = "fs_extra"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674"
-
-[[package]]
-name = "fsio"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2131cb03096f67334dfba2f0bc46afc5564b08a919d042c6e217e2665741fc54"
-dependencies = [
- "rand",
- "users",
-]
-
-[[package]]
-name = "ftp"
-version = "3.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "542951aad0071952c27409e3bd7cb62d1a3ad419c4e7314106bf994e0083ad5d"
-dependencies = [
- "chrono",
- "lazy_static 0.1.16",
- "regex 0.1.80",
-]
-
-[[package]]
-name = "generator"
-version = "0.6.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "add72f17bb81521258fcc8a7a3245b1e184e916bfbe34f0ea89558f440df5c68"
-dependencies = [
- "cc",
- "libc",
- "log",
- "rustc_version",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "getopts"
-version = "0.2.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
-dependencies = [
- "unicode-width",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.1.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi",
-]
-
-[[package]]
-name = "git_info"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "641b847f0375f4b2c595438eefc17a9c0fbf47b400cbdd1ad9332bf1e16b779d"
-
-[[package]]
-name = "glob"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9586eedd4ce6b3c498bc3b4dd92fc9f11166aa908a914071953768066c67909"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "home"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2456aef2e6b6a9784192ae780c0f15bc57df0e918585282325e8c8ac27737654"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "http"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9"
-dependencies = [
- "bytes",
- "fnv",
- "itoa",
-]
-
-[[package]]
-name = "idna"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
-dependencies = [
- "matches",
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "indexmap"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c398b2b113b55809ceb9ee3e753fcbac793f1956663f3c36549c1346015c2afe"
-dependencies = [
- "autocfg",
- "serde",
-]
-
-[[package]]
-name = "itoa"
-version = "0.4.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
-
-[[package]]
-name = "java-properties"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "caf4418ade5bde22a283a7f2fb537ea397ec102718f259f2630714e7a5b389fa"
-dependencies = [
- "encoding",
- "regex 1.3.9",
-]
-
-[[package]]
-name = "kernel32-sys"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
-dependencies = [
- "winapi 0.2.8",
- "winapi-build",
-]
-
-[[package]]
-name = "lazy_static"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf186d1a8aa5f5bee5fd662bc9c1b949e0259e1bcc379d1f006847b0080c7417"
-
-[[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.71"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"
-
-[[package]]
-name = "log"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "loom"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ecc775857611e1df29abba5c41355cdf540e7e9d4acfdf0f355eefee82330b7"
-dependencies = [
- "cfg-if",
- "generator",
- "scoped-tls",
-]
-
-[[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",
-]
-
-[[package]]
-name = "memchr"
-version = "2.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
-
-[[package]]
-name = "meval"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f79496a5651c8d57cd033c5add8ca7ee4e3d5f7587a4777484640d9cb60392d9"
-dependencies = [
- "fnv",
- "nom",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be0f75932c1f6cfae3c04000e40114adf955636e19040f9c0a2c380702aa1c7f"
-dependencies = [
- "adler",
-]
-
-[[package]]
-name = "native-tls"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b0d88c06fe90d5ee94048ba40409ef1d9315d86f6f38c2efdaad4fb50c58b2d"
-dependencies = [
- "lazy_static 1.4.0",
- "libc",
- "log",
- "openssl",
- "openssl-probe",
- "openssl-sys",
- "schannel",
- "security-framework",
- "security-framework-sys",
- "tempfile",
-]
-
-[[package]]
-name = "nias"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab250442c86f1850815b5d268639dff018c0627022bc1940eb2d642ca1ce12f0"
-
-[[package]]
-name = "nom"
-version = "1.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5b8c256fd9471521bcb84c3cdba98921497f1a331cbc15b8030fc63b82050ce"
-
-[[package]]
-name = "num"
-version = "0.1.42"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e"
-dependencies = [
- "num-integer",
- "num-iter",
- "num-traits",
-]
-
-[[package]]
-name = "num-integer"
-version = "0.1.43"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-iter"
-version = "0.1.41"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
-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 = "openssl"
-version = "0.10.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4"
-dependencies = [
- "bitflags",
- "cfg-if",
- "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-sys"
-version = "0.9.58"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"
-dependencies = [
- "autocfg",
- "cc",
- "libc",
- "pkg-config",
- "vcpkg",
-]
-
-[[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"
-checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa"
-dependencies = [
- "unicode-xid",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "rand"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-dependencies = [
- "getrandom",
- "libc",
- "rand_chacha",
- "rand_core",
- "rand_hc",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.1.56"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
-
-[[package]]
-name = "redox_users"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431"
-dependencies = [
- "getrandom",
- "redox_syscall",
- "rust-argon2",
-]
-
-[[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",
- "memchr 0.1.11",
- "regex-syntax 0.3.9",
- "thread_local 0.2.7",
- "utf8-ranges",
-]
-
-[[package]]
-name = "regex"
-version = "1.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
-dependencies = [
- "aho-corasick 0.7.13",
- "memchr 2.3.3",
- "regex-syntax 0.6.18",
- "thread_local 1.0.1",
-]
-
-[[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.6.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
-
-[[package]]
-name = "remove_dir_all"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "run_script"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8e8fc35067815a04a35fe2144361e1257b0f1041f0d413664f38e44d1a73cb4"
-dependencies = [
- "fsio",
-]
-
-[[package]]
-name = "rust-argon2"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
-dependencies = [
- "base64 0.11.0",
- "blake2b_simd",
- "constant_time_eq",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "rust_info"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02b506bd796703b88d74a3edb529acde6c71d81bb078c392eecd60a745cb1d2f"
-
-[[package]]
-name = "rustc_version"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-dependencies = [
- "semver 0.9.0",
-]
-
-[[package]]
-name = "rusty-hook"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96cee9be61be7e1cbadd851e58ed7449c29c620f00b23df937cb9cbc04ac21a3"
-dependencies = [
- "ci_info",
- "getopts",
- "nias",
- "toml",
-]
-
-[[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 = "schannel"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
-dependencies = [
- "lazy_static 1.4.0",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "scoped-tls"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28"
-
-[[package]]
-name = "security-framework"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64808902d7d99f78eaddd2b4e2509713babc3dc3c85ad6f4c447680f3c01e535"
-dependencies = [
- "bitflags",
- "core-foundation",
- "core-foundation-sys",
- "libc",
- "security-framework-sys",
-]
-
-[[package]]
-name = "security-framework-sys"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17bf11d99252f512695eb468de5516e5cf75455521e69dfe343f3b74e4748405"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "semver"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-dependencies = [
- "semver-parser",
-]
-
-[[package]]
-name = "semver"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "394cec28fa623e00903caf7ba4fa6fb9a0e260280bb8cdbbba029611108a0190"
-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.114"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3"
-
-[[package]]
-name = "serde_derive"
-version = "1.0.114"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.56"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3433e879a558dde8b5e8feb2a04899cf34fdde1fafb894687e52105fc1162ac3"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "shell2batch"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "185a52ee351c1001753c9e3b2eb48c525ff7f51803a4f2cef4365b5c3b743f65"
-dependencies = [
- "regex 1.3.9",
-]
-
-[[package]]
-name = "strsim"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-
-[[package]]
-name = "syn"
-version = "1.0.33"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8d5d96e8cbb005d6959f119f773bfaebb5684296108fb32600c00cde305b2cd"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-xid",
-]
-
-[[package]]
-name = "tempfile"
-version = "3.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
-dependencies = [
- "cfg-if",
- "libc",
- "rand",
- "redox_syscall",
- "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",
-]
-
-[[package]]
-name = "thiserror"
-version = "1.0.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "thread-id"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9539db560102d1cef46b8b78ce737ff0bb64e7e18d35b2a5688f7d097d0ff03"
-dependencies = [
- "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",
-]
-
-[[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.43"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
-dependencies = [
- "libc",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "tinyvec"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed"
-
-[[package]]
-name = "toml"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "uname"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b72f89f0ca32e4db1c04e2a72f5345d59796d4866a1ee0609084569f73683dc8"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "unicode-bidi"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
-dependencies = [
- "matches",
-]
-
-[[package]]
-name = "unicode-normalization"
-version = "0.1.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
-dependencies = [
- "tinyvec",
-]
-
-[[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 = "url"
-version = "2.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
-dependencies = [
- "idna",
- "matches",
- "percent-encoding",
-]
-
-[[package]]
-name = "users"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c72f4267aea0c3ec6d07eaabea6ead7c5ddacfafc5e22bcf8d186706851fb4cf"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "utf8-ranges"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f"
-
-[[package]]
-name = "vcpkg"
-version = "0.2.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
-
-[[package]]
-name = "vec_map"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-
-[[package]]
-name = "walkdir"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
-dependencies = [
- "same-file",
- "winapi 0.3.9",
- "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 = "which"
-version = "4.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5fe1a9cb33fe7cf77d431070d0223e544b1e4e7f7764bad0a3e691a6678a131"
-dependencies = [
- "libc",
- "thiserror",
-]
-
-[[package]]
-name = "whoami"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7884773ab69074615cb8f8425d0e53f11710786158704fca70f53e71b0e05504"
-
-[[package]]
-name = "winapi"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-build"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/pkgs/development/tools/rust/cargo-make/default.nix b/pkgs/development/tools/rust/cargo-make/default.nix
index 0daf5086187..a1e9f7971f4 100644
--- a/pkgs/development/tools/rust/cargo-make/default.nix
+++ b/pkgs/development/tools/rust/cargo-make/default.nix
@@ -1,30 +1,22 @@
-{ stdenv, fetchurl, runCommand, fetchFromGitHub, rustPlatform, Security, openssl, pkg-config }:
+{ stdenv, fetchurl, runCommand, fetchCrate, rustPlatform, Security, openssl, pkg-config
+, SystemConfiguration
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-make";
-  version = "0.32.0";
+  version = "0.32.4";
 
-  src =
-    let
-      source = fetchFromGitHub {
-        owner = "sagiegurari";
-        repo = pname;
-        rev = version;
-        sha256 = "1bkc3z1w9gbjymmr5lk322kn0rd6b57v92a32jf7nckllxf43807";
-      };
-    in
-    runCommand "source" {} ''
-      cp -R ${source} $out
-      chmod +w $out
-      cp ${./Cargo.lock} $out/Cargo.lock
-    '';
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "04x363wz82f0sr4128f1nk1wxnnszxsmaxjs92mbvmpbvry82ivq";
+  };
 
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ openssl ]
-    ++ stdenv.lib.optionals stdenv.isDarwin [ Security ];
+    ++ stdenv.lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
-  cargoSha256 = "0l7krag7n4kjvh3d4zhkk1jdswsrkag5z664fm1zwvf6rw6sfdmi";
+  cargoSha256 = "1fgcxgm800sr0y6ab7c42l335b6c00cx0f2r5rgayi645a47a1zf";
 
   # Some tests fail because they need network access.
   # However, Travis ensures a proper build.
@@ -37,6 +29,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/sagiegurari/cargo-make";
     license = licenses.asl20;
     maintainers = with maintainers; [ xrelkd ma27 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-raze/default.nix b/pkgs/development/tools/rust/cargo-raze/default.nix
index 96b4cd078bc..8df03a4bd15 100644
--- a/pkgs/development/tools/rust/cargo-raze/default.nix
+++ b/pkgs/development/tools/rust/cargo-raze/default.nix
@@ -26,6 +26,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/google/cargo-raze";
     license = licenses.asl20;
     maintainers = with maintainers; [ elasticdog ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-sweep/default.nix b/pkgs/development/tools/rust/cargo-sweep/default.nix
index 2dfbfeeb179..72883ab4508 100644
--- a/pkgs/development/tools/rust/cargo-sweep/default.nix
+++ b/pkgs/development/tools/rust/cargo-sweep/default.nix
@@ -17,7 +17,6 @@ rustPlatform.buildRustPackage rec {
     description = "A Cargo subcommand for cleaning up unused build files generated by Cargo";
     homepage = "https://github.com/holmgr/cargo-sweep";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ xrelkd ];
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-udeps/default.nix b/pkgs/development/tools/rust/cargo-udeps/default.nix
index e724f26f782..40e172972b7 100644
--- a/pkgs/development/tools/rust/cargo-udeps/default.nix
+++ b/pkgs/development/tools/rust/cargo-udeps/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-udeps";
-  version = "0.1.12";
+  version = "0.1.13";
 
   src = fetchFromGitHub {
     owner = "est31";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1hf2zkv3yd72kkvdwigms3wzchmh4i56ym3swpx35dij2h8g08mx";
+    sha256 = "0wxpzrcrdxlihzxzqmrhii5bfxknliqb4d5mka4k42x5vim8pq2f";
   };
 
-  cargoSha256 = "0xb9fmcrsm47zkb26jw5rsi9wfz3jh19fbc74gnsrffdmfsd7mm2";
+  cargoSha256 = "0q1q7x1205a8dp35d4dds3mizl6y4d3rfc5gkarri1g189nrk5pl";
 
   nativeBuildInputs = [ pkgconfig ];
 
@@ -26,6 +26,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/est31/cargo-udeps";
     license = licenses.mit;
     maintainers = with maintainers; [ b4dm4n ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-watch/default.nix b/pkgs/development/tools/rust/cargo-watch/default.nix
index 850b6d2e1e7..8bd4bf6fff8 100644
--- a/pkgs/development/tools/rust/cargo-watch/default.nix
+++ b/pkgs/development/tools/rust/cargo-watch/default.nix
@@ -1,29 +1,30 @@
-{ stdenv, lib, rustPlatform, fetchFromGitHub, CoreServices }:
+{ stdenv, lib, rustPlatform, fetchFromGitHub, CoreServices, rust }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-watch";
-  version = "7.4.1";
+  version = "7.5.0";
 
   src = fetchFromGitHub {
     owner = "passcod";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1nq7sfdxvqldj94laz562y4cvgagm67b6a5b7bzxdip0sf1l11f8";
+    sha256 = "181v922nx8152ymszig1kw6y0mnix6si1zfnv6vqgr5r53pwkbc1";
   };
 
-  cargoSha256 = "1rjx3k8li8ck5cdygm4pd2i5wkslr6d9z9vl2vp0x6hqv1gcv5zh";
+  cargoSha256 = "1abhzi1396x8lnxvakj34nysl3ybvsaf21j678wzaqwj16sd3w3d";
 
   buildInputs = lib.optional stdenv.isDarwin CoreServices;
 
   # `test with_cargo` tries to call cargo-watch as a cargo subcommand
   # (calling cargo-watch with command `cargo watch`)
-  checkPhase = "PATH=target/debug:$PATH cargo test";
+  preCheck = ''
+    export PATH="$(pwd)/target/${rust.toRustTarget stdenv.hostPlatform}/release:$PATH"
+  '';
 
   meta = with lib; {
     description = "A Cargo subcommand for watching over Cargo project's source";
     homepage = "https://github.com/passcod/cargo-watch";
     license = licenses.cc0;
-    platforms = platforms.all;
     maintainers = with maintainers; [ xrelkd ivan ];
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-xbuild/default.nix b/pkgs/development/tools/rust/cargo-xbuild/default.nix
index 6af944e9c5d..912f5199b4c 100644
--- a/pkgs/development/tools/rust/cargo-xbuild/default.nix
+++ b/pkgs/development/tools/rust/cargo-xbuild/default.nix
@@ -2,22 +2,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-xbuild";
-  version = "0.5.29";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "rust-osdev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "05wg1xx2mcwb9cplmrpg13jimddlzmv7hf5g3vjppjp8kz2gb7zj";
+    sha256 = "0kmnwx2fg4nq009dzwk840z8n4rayvpk6hjpryczv56sjdcqm2zv";
   };
 
-  cargoSha256 = "1s2xsfld29shvjzyp16y263hnbqxrq8i2557y0g09xmfm5x0jhix";
+  cargoSha256 = "0vnhaf7b2ai151wjadgj7pm5hdcj7rv1ckj5mjn74r3vvds2jdn7";
 
   meta = with stdenv.lib; {
     description = "Automatically cross-compiles the sysroot crates core, compiler_builtins, and alloc";
     homepage = "https://github.com/rust-osdev/cargo-xbuild";
     license = with licenses; [ mit asl20 ];
-    maintainers = with maintainers; [ xrelkd ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ johntitor xrelkd ];
   };
 }
diff --git a/pkgs/development/tools/rust/cbindgen/default.nix b/pkgs/development/tools/rust/cbindgen/default.nix
index 655d726e66e..62b9a616644 100644
--- a/pkgs/development/tools/rust/cbindgen/default.nix
+++ b/pkgs/development/tools/rust/cbindgen/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-cbindgen";
-  version = "0.14.3";
+  version = "0.14.4";
 
   src = fetchFromGitHub {
     owner = "eqrion";
     repo = "cbindgen";
     rev = "v${version}";
-    sha256 = "0pw55334i10k75qkig8bgcnlsy613zw2p5j4xyz8v71s4vh1a58j";
+    sha256 = "06bis9kk3r0gishzmsq5wk3vv8r78ggk4m800562q2yhnhc37lfd";
   };
 
-  cargoSha256 = "0088ijnjhqfvdb1wxy9jc7hq8c0yxgj5brlg68n9vws1mz9rilpy";
+  cargoSha256 = "0x8lxlik4n8rmlydcp0vqyiqwqm98cgwvw3h5hm2zviv8v0y8jnr";
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/development/tools/rust/maturin/default.nix b/pkgs/development/tools/rust/maturin/default.nix
index 72b22dba104..723ea94152c 100644
--- a/pkgs/development/tools/rust/maturin/default.nix
+++ b/pkgs/development/tools/rust/maturin/default.nix
@@ -5,16 +5,16 @@ let
   inherit (darwin.apple_sdk.frameworks) Security;
 in rustPlatform.buildRustPackage rec {
   name = "maturin-${version}";
-  version = "0.8.1";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "PyO3";
     repo = "maturin";
     rev = "v${version}";
-    sha256 = "16bxxa261k2l6mpdd55gyzl1mx756i0zbvqp15glpzlcwhb9bm2m";
+    sha256 = "08l5r7d75id6qzf8xhkjv4hkdr64cq4dbcmdjywmvf9szjbnr65z";
   };
 
-  cargoSha256 = "1s1brfnhwl42jb37qqz4d8mxpyq2ck60jnmjfllkga3mhwm4r8px";
+  cargoSha256 = "1n0sxkhcdg2rbzqd7826pa7sxlnn0c2sc8l6lc98xw21vvqisc8n";
 
   nativeBuildInputs = [ pkgconfig ];
 
@@ -30,6 +30,5 @@ in rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/PyO3/maturin";
     license = licenses.mit;
     maintainers = [ maintainers.danieldk ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/rust/racer/default.nix b/pkgs/development/tools/rust/racer/default.nix
index 0a29577e0cd..86f1989729e 100644
--- a/pkgs/development/tools/rust/racer/default.nix
+++ b/pkgs/development/tools/rust/racer/default.nix
@@ -2,22 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "racer";
-  version = "2.1.30";
+  version = "2.1.35";
 
   src = fetchFromGitHub {
     owner = "racer-rust";
     repo = "racer";
-    rev = "c2b0080243fefdad7f7b223e8a7fdef3e1f0fa77";
-    sha256 = "0svvdkfqpk2rw0wxyrhkxy553k55lg7jxc0ly4w1195iwv14ad3y";
+    rev = "v${version}";
+    sha256 = "0c00b81s7abnadjbf4i39lhdkipx7z44sr8p78jd1fl61yyrspli";
   };
 
-  cargoSha256 = "0zaqa89z3nf23s2q1jpmfz4lygh4zq9ymql71d748fgjy9psr449";
+  cargoSha256 = "1nbp2jp65fqwsq9i04iyi4pbszs035w6id50p5ypw234cqxznikm";
 
-  buildInputs = [ makeWrapper ]
-                ++ stdenv.lib.optional stdenv.isDarwin Security;
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
   # a nightly compiler is required unless we use this cheat code.
-  RUSTC_BOOTSTRAP=1;
+  RUSTC_BOOTSTRAP = 1;
 
   RUST_SRC_PATH = rustPlatform.rustcSrc;
   postInstall = ''
@@ -45,6 +45,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/racer-rust/racer";
     license = licenses.mit;
     maintainers = with maintainers; [ jagajaga ma27 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/rust/racerd/default.nix b/pkgs/development/tools/rust/racerd/default.nix
index 72588b37415..26e2a5ba50e 100644
--- a/pkgs/development/tools/rust/racerd/default.nix
+++ b/pkgs/development/tools/rust/racerd/default.nix
@@ -37,9 +37,9 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with stdenv.lib; {
+    broken = true;
     description = "JSON/HTTP Server based on racer for adding Rust support to editors and IDEs";
     homepage = "https://github.com/jwilm/racerd";
     license = licenses.asl20;
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/rust/rust-analyzer/default.nix b/pkgs/development/tools/rust/rust-analyzer/default.nix
index e9d4deefb45..c9c87991a8a 100644
--- a/pkgs/development/tools/rust/rust-analyzer/default.nix
+++ b/pkgs/development/tools/rust/rust-analyzer/default.nix
@@ -2,10 +2,10 @@
 
 {
   rust-analyzer-unwrapped = callPackage ./generic.nix rec {
-    rev = "2020-06-08";
+    rev = "2020-08-24";
     version = "unstable-${rev}";
-    sha256 = "0ywwsb717d1rwcy2yij58sj123pan0fb80sbsiqqprcln0aaspip";
-    cargoSha256 = "1c6rmrhx7q4qcanr26yzlwc2rp1hh55m80jn56hy6hfcvwcdaij4";
+    sha256 = "11q5shrq55krgpj7rjfqw84131j5g55zyrwww3cxcbr8ndi3xdnf";
+    cargoSha256 = "15kjcgxmigm0lwbp8p0kdxax86ldjqq9q8ysj6khfhqd0173184n";
   };
 
   rust-analyzer = callPackage ./wrapper.nix {} {
diff --git a/pkgs/development/tools/rust/rust-analyzer/generic.nix b/pkgs/development/tools/rust/rust-analyzer/generic.nix
index ae6ad80cdd9..7092f5291dd 100644
--- a/pkgs/development/tools/rust/rust-analyzer/generic.nix
+++ b/pkgs/development/tools/rust/rust-analyzer/generic.nix
@@ -24,6 +24,8 @@ rustPlatform.buildRustPackage {
   buildInputs = lib.optionals stdenv.hostPlatform.isDarwin
     [ darwin.apple_sdk.frameworks.CoreServices ];
 
+  RUST_ANALYZER_REV = rev;
+
   inherit doCheck;
   # Skip tests running `rustup` for `cargo fmt`.
   preCheck = ''
@@ -33,11 +35,20 @@ rustPlatform.buildRustPackage {
     export RUST_SRC_PATH=${rustPlatform.rustcSrc}
   '';
 
+  # Temporary disabled until #93119 is fixed.
+  doInstallCheck = false;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    versionOutput="$($out/bin/rust-analyzer --version)"
+    echo "'rust-analyzer --version' returns: $versionOutput"
+    [[ "$versionOutput" == "rust-analyzer ${rev}" ]]
+    runHook postInstallCheck
+  '';
+
   meta = with stdenv.lib; {
     description = "An experimental modular compiler frontend for the Rust language";
     homepage = "https://github.com/rust-analyzer/rust-analyzer";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ oxalica ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/rust/rust-analyzer/update.sh b/pkgs/development/tools/rust/rust-analyzer/update.sh
index 92911254259..b0435be7208 100755
--- a/pkgs/development/tools/rust/rust-analyzer/update.sh
+++ b/pkgs/development/tools/rust/rust-analyzer/update.sh
@@ -49,13 +49,16 @@ sed "s/cargoSha256 = \".*\"/cargoSha256 = \"$cargo_sha256\"/" \
 build_deps="../../../../misc/vscode-extensions/rust-analyzer/build-deps"
 # We need devDependencies to build vsix.
 jq '{ name, version, dependencies: (.dependencies + .devDependencies) }' "$node_src/package.json" \
-    >"$build_deps/package.json"
+    >"$build_deps/package.json.new"
 
-# FIXME: Lock the version of @type/vscode, the latest one (1.43.0) will cause build failure.
-vscode_lock_ver="$(jq '.dependencies."@types/vscode".version' --raw-output "$node_src/package-lock.json")"
-jq '.dependencies."@types/vscode" = "'$vscode_lock_ver'"' "$build_deps/package.json" >"$build_deps/package.json.new"
-mv "$build_deps"/package.json{.new,}
+if cmp --quiet "$build_deps"/package.json{.new,}; then
+    echo "package.json not changed, skip updating nodePackages"
+    rm "$build_deps"/package.json.new
+else
+    echo "package.json changed, updating nodePackages"
+    mv "$build_deps"/package.json{.new,}
 
-pushd "../../../node-packages"
-./generate.sh
-popd
+    pushd "../../../node-packages"
+    ./generate.sh
+    popd
+fi
diff --git a/pkgs/development/tools/rust/rustup/default.nix b/pkgs/development/tools/rust/rustup/default.nix
index 688159445d5..e5ef80b87ee 100644
--- a/pkgs/development/tools/rust/rustup/default.nix
+++ b/pkgs/development/tools/rust/rustup/default.nix
@@ -1,21 +1,27 @@
 { stdenv, lib, runCommand, patchelf
-, fetchFromGitHub, rustPlatform
+, fetchFromGitHub, rustPlatform, makeWrapper
 , pkgconfig, curl, zlib, Security, CoreServices }:
 
+let
+  libPath = lib.makeLibraryPath [
+    zlib # libz.so.1
+  ];
+in
+
 rustPlatform.buildRustPackage rec {
   pname = "rustup";
-  version = "1.21.1";
+  version = "1.22.1";
 
   src = fetchFromGitHub {
     owner = "rust-lang";
     repo = "rustup";
     rev = version;
-    sha256 = "0d7l3j8js16zgdx37kykavr343v65vchldz88j38jjyc43pcm2pg";
+    sha256 = "0nf42pkyn87y0n93vd63bihx74h4bpisv74aqldg3vcav2iv35s1";
   };
 
-  cargoSha256 = "1y13kfski36rfvqkp3mxxn12aidp339j7rigv49msyr004ac5y8s";
+  cargoSha256 = "0ghjrx7y25s6rjp06h0iyv4195x7daj57bqza01i1j4hm5nkhqhi";
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
 
   buildInputs = [
     curl zlib
@@ -24,19 +30,13 @@ rustPlatform.buildRustPackage rec {
   cargoBuildFlags = [ "--features no-self-update" ];
 
   patches = lib.optionals stdenv.isLinux [
-    (let
-      libPath = lib.makeLibraryPath [
-        zlib # libz.so.1
-      ];
-    in
-      (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
+    (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
     '')
-    )
   ];
 
   doCheck = !stdenv.isAarch64 && !stdenv.isDarwin;
@@ -53,6 +53,8 @@ rustPlatform.buildRustPackage rec {
     done
     popd
 
+    wrapProgram $out/bin/rustup --prefix "LD_LIBRARY_PATH" : "${libPath}"
+
     # tries to create .rustup
     export HOME=$(mktemp -d)
     mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
@@ -73,6 +75,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://www.rustup.rs/";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = [ maintainers.mic92 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/rust/svd2rust/default.nix b/pkgs/development/tools/rust/svd2rust/default.nix
index 733504435ec..348fe6d9c71 100644
--- a/pkgs/development/tools/rust/svd2rust/default.nix
+++ b/pkgs/development/tools/rust/svd2rust/default.nix
@@ -23,6 +23,5 @@ buildRustPackage rec {
     description = "Generate Rust register maps (`struct`s) from SVD files";
     homepage = "https://github.com/rust-embedded/svd2rust";
     license = with licenses; [ mit asl20 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/scalafmt/default.nix b/pkgs/development/tools/scalafmt/default.nix
index 0905c27d4c1..0f14f52295e 100644
--- a/pkgs/development/tools/scalafmt/default.nix
+++ b/pkgs/development/tools/scalafmt/default.nix
@@ -2,7 +2,7 @@
 
 let
   baseName = "scalafmt";
-  version = "2.5.2";
+  version = "2.6.4";
   deps = stdenv.mkDerivation {
     name = "${baseName}-deps-${version}";
     buildCommand = ''
@@ -13,7 +13,7 @@ let
     '';
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = "14sfpzhd7r8srl9qyrdfqwmgrircqsgrr5hwvg8h1vaiwakq7m00";
+    outputHash     = "1h19rsxsn2piifillv29nwks2k9l391jwygjbfy8pc0ha8yi63mw";
   };
 in
 stdenv.mkDerivation {
diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix
index 8aad3230003..fc743d56016 100644
--- a/pkgs/development/tools/selenium/chromedriver/default.nix
+++ b/pkgs/development/tools/selenium/chromedriver/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchurl, cairo, fontconfig, freetype, gdk-pixbuf, glib
 , glibc, gtk2, libX11, makeWrapper, nspr, nss, pango, unzip, gconf
-, libXi, libXrender, libXext
+, libxcb, libXi, libXrender, libXext
 }:
 let
   allSpecs = {
     x86_64-linux = {
       system = "linux64";
-      sha256 = "149p43zaz45malmff1274r2bwjcyjwsdickivk3pd0mvnjbfid2r";
+      sha256 = "0absr1fp2h87gpyw6jxj2f08sbhkkh3pf13145hfyzdvajj5rfjy";
     };
 
     x86_64-darwin = {
       system = "mac64";
-      sha256 = "1xpyqxpsz3r653ls67s6alv4g2vr4lxf29gyxc162ikywyrx80nr";
+      sha256 = "1p9k92fgyx0xis6r50vhcpx3iws2gaspq3dnpigglv3bj9yg8zvi";
     };
   };
 
@@ -23,12 +23,12 @@ let
     cairo fontconfig freetype
     gdk-pixbuf glib gtk2 gconf
     libX11 nspr nss pango libXrender
-    gconf libXext libXi
+    gconf libxcb libXext libXi
   ];
 in
 stdenv.mkDerivation rec {
   pname = "chromedriver";
-  version = "83.0.4103.39";
+  version = "85.0.4183.87";
 
   src = fetchurl {
     url = "https://chromedriver.storage.googleapis.com/${version}/chromedriver_${spec.system}.zip";
diff --git a/pkgs/development/tools/skaffold/default.nix b/pkgs/development/tools/skaffold/default.nix
index b94217d20a4..f397348416c 100644
--- a/pkgs/development/tools/skaffold/default.nix
+++ b/pkgs/development/tools/skaffold/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "skaffold";
-  version = "1.12.0";
+  version = "1.14.0";
 
   goPackagePath = "github.com/GoogleContainerTools/skaffold";
   subPackages = ["cmd/skaffold"];
@@ -19,7 +19,7 @@ buildGoPackage rec {
     owner = "GoogleContainerTools";
     repo = "skaffold";
     rev = "v${version}";
-    sha256 = "12m2yqlngxvyyiqa58fmdwi752bz3mkk8fi312dvakr5kysnvn1l";
+    sha256 = "18wk8cnp0sc47drgjc0iis4dkqwr9h5yxi40c1gjsiscrvy5akvc";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/development/tools/skopeo/default.nix b/pkgs/development/tools/skopeo/default.nix
index 4bf87a2eda6..32b9c61f5d4 100644
--- a/pkgs/development/tools/skopeo/default.nix
+++ b/pkgs/development/tools/skopeo/default.nix
@@ -15,19 +15,21 @@
 
 buildGoModule rec {
   pname = "skopeo";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "containers";
     repo = "skopeo";
-    sha256 = "1cxhwfrp5cjdq56vzy7gmidvm1z02f0rz2r1lv0d9ymnjlsjp9s3";
+    sha256 = "0wkpw8fizxjpfypflp7rs1q128dg4hadwzdvn8k41h7f8cbcb39x";
   };
 
   outputs = [ "out" "man" ];
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   nativeBuildInputs = [ pkg-config go-md2man installShellFiles makeWrapper ];
 
   buildInputs = [ gpgme ]
diff --git a/pkgs/development/tools/so/default.nix b/pkgs/development/tools/so/default.nix
new file mode 100644
index 00000000000..0ee2359c841
--- /dev/null
+++ b/pkgs/development/tools/so/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, rustPlatform, fetchFromGitHub, openssl, pkg-config, libiconv, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "so";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "samtay";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "09zswxxli9f5ayjwmvqhkp1yv2s4f435dcfp4cyia1zddbrh2zck";
+  };
+
+  cargoSha256 = "1ddbhy1plag4ckbmlyj47wnky7vgmfa68msl3hl25h1lwmzaf1aq";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [
+    libiconv Security
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A TUI interface to the StackExchange network";
+    homepage = "https://github.com/samtay/so";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mredaelli ];
+  };
+}
diff --git a/pkgs/development/tools/spring-boot-cli/default.nix b/pkgs/development/tools/spring-boot-cli/default.nix
index b59ef341dff..38573e07514 100644
--- a/pkgs/development/tools/spring-boot-cli/default.nix
+++ b/pkgs/development/tools/spring-boot-cli/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "spring-boot-cli";
-  version = "2.3.0";
+  version = "2.3.2";
 
   src = fetchzip {
     url = "https://repo.spring.io/release/org/springframework/boot/${pname}/${version}.RELEASE/${pname}-${version}.RELEASE-bin.zip";
-    sha256 = "1zjbgs1qx75jgxc46x9380iqh8pfgacih38ad3qxd0106a8lcp5h";
+    sha256 = "1zqfnxz57234227rp303iwis0mjkkjkpcqnj9jgw78gykjnqdmmq";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/pkgs/development/tools/statik/default.nix b/pkgs/development/tools/statik/default.nix
index e26431b2687..8152dda2b50 100644
--- a/pkgs/development/tools/statik/default.nix
+++ b/pkgs/development/tools/statik/default.nix
@@ -13,13 +13,10 @@ buildGoPackage {
     sha256 = "15wwgrprfq36pa13b9anp7097q1fqcad28hirvivybmc011p0fri";
   };
 
-  enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     homepage = "https://github.com/rakyll/statik";
     description = "Embed files into a Go executable ";
     license = licenses.asl20;
     maintainers = with maintainers; [ chiiruno ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/summon/default.nix b/pkgs/development/tools/summon/default.nix
new file mode 100644
index 00000000000..e01c60e3a89
--- /dev/null
+++ b/pkgs/development/tools/summon/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, buildGoModule, fetchFromGitHub, lib, patchResolver ? true }:
+
+with stdenv.lib;
+
+buildGoModule rec {
+  pname = "summon";
+  version = "0.8.2";
+
+  src = fetchFromGitHub {
+    owner = "cyberark";
+    repo = "summon";
+    rev = "v${version}";
+    sha256 = "1z4xnrncwvp3rfm97zvc0ivvw2fh1hrjhj3rplvidzxjfyasbvwv";
+  };
+
+  vendorSha256 = "1597vrs4b7k6gkmkvf7xnd38rvjixmlcz0j7npmik9nbkm57l74m";
+
+  subPackages = [ "cmd" ];
+
+  # Patches provider resolver to support resolving unqualified names
+  # from $PATH, e.g. `summon -p gopass` instead of `summon -p $(which gopass)`
+  patches = optional patchResolver [ ./resolve-paths.patch ];
+
+  postInstall = ''
+    mv $out/bin/cmd $out/bin/summon
+  '';
+
+  meta = with lib; {
+    description =
+      "CLI that provides on-demand secrets access for common DevOps tools";
+    homepage = "https://cyberark.github.io/summon";
+    license = lib.licenses.mit;
+    maintainers = with maintainers; [ quentini ];
+  };
+}
diff --git a/pkgs/development/tools/summon/resolve-paths.patch b/pkgs/development/tools/summon/resolve-paths.patch
new file mode 100644
index 00000000000..cd49c50e2bd
--- /dev/null
+++ b/pkgs/development/tools/summon/resolve-paths.patch
@@ -0,0 +1,39 @@
+From dd34727ebfbd59738084eeb7c2a020e40a4d0abe Mon Sep 17 00:00:00 2001
+From: Quentin <Quentin Inkling>
+Date: Mon, 29 Jun 2020 17:35:04 +0300
+Subject: [PATCH] Patch for
+
+---
+ provider/provider.go | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+diff --git a/provider/provider.go b/provider/provider.go
+index c1e28d9..f20fdaa 100644
+--- a/provider/provider.go
++++ b/provider/provider.go
+@@ -78,7 +78,22 @@ func expandPath(provider string) string {
+ 	if path.Base(provider) != provider {
+ 		return provider
+ 	}
++
++	var (
++		stdOut bytes.Buffer
++		stdErr bytes.Buffer
++	)
++	cmd := exec.Command("which", provider)
++	cmd.Stdout = &stdOut
++	cmd.Stderr = &stdErr
++	err := cmd.Run()
++
++	if err == nil {
++		return strings.TrimSpace(stdOut.String())
++	}
++
+ 	return path.Join(DefaultPath, provider)
++
+ }
+ 
+ func getDefaultPath() string {
+-- 
+2.27.0
+
diff --git a/pkgs/development/tools/swiftformat/default.nix b/pkgs/development/tools/swiftformat/default.nix
index ac4502b05ab..c47955695f5 100644
--- a/pkgs/development/tools/swiftformat/default.nix
+++ b/pkgs/development/tools/swiftformat/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "swiftformat";
-  version = "0.44.2";
+  version = "0.44.9";
 
   src = fetchFromGitHub {
     owner = "nicklockwood";
     repo = "SwiftFormat";
     rev = "${version}";
-    sha256 = "17g4w8kmkrhcp7lrfi525ck9jhcm96d0nn93yadacdjcdnchmih1";
+    sha256 = "0zajvbaf3r02k53lv5zdxf13apc6chnjmj69zkyac48lpnpbcxq6";
   };
 
   preConfigure = "LD=$CC";
diff --git a/pkgs/development/tools/the-way/default.nix b/pkgs/development/tools/the-way/default.nix
index 99b0e4cd189..3ee200a1a1f 100644
--- a/pkgs/development/tools/the-way/default.nix
+++ b/pkgs/development/tools/the-way/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "the-way";
-  version = "0.3.2";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "out-of-cheese-error";
     repo = pname;
     rev = "v${version}";
-    sha256 = "02aa4iwwi89r6sj1q5sj74n2cy1rj94yfh39cp97zlx4lam9pj6b";
+    sha256 = "0q7yg90yxnpaafg6sg7mqkh86qkn43kxy73p9nqkkgrikdnrjh5a";
   };
 
-  cargoSha256 = "09d9gaa83djfkfdx3m4d3kkq550q8y67wb292mrj4xb0kcfrhnpq";
+  cargoSha256 = "1a747bmc6s007ram0w4xf1y2nb3pphvqnlx59098lr3v7gllp7x3";
   checkFlags = "--test-threads=1";
 
   meta = with stdenv.lib; {
@@ -19,6 +19,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/out-of-cheese-error/the-way";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ numkem ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/tracy/default.nix b/pkgs/development/tools/tracy/default.nix
index a5087b3b52c..96f232304aa 100644
--- a/pkgs/development/tools/tracy/default.nix
+++ b/pkgs/development/tools/tracy/default.nix
@@ -1,21 +1,21 @@
-{ stdenv, lib, darwin, fetchFromGitHub, tbb, gtk2, glfw, pkgconfig, freetype, Carbon, AppKit, capstone }:
+{ stdenv, lib, darwin, fetchFromGitHub, tbb, gtk3, glfw, pkgconfig, freetype, Carbon, AppKit, capstone }:
 
 stdenv.mkDerivation rec {
   pname = "tracy";
-  version = "0.7";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "wolfpld";
     repo = "tracy";
     rev = "v${version}";
-    sha256 = "07cmz2w7iv10f9i9q3fhg80s6riy9bxnk9xvc3q4lw47mc150skp";
+    sha256 = "13zg3ijzhh7qkhgqff2ca23nd4gj7ac8jr0bp9w1gjf2cpgqkm40";
   };
 
   nativeBuildInputs = [ pkgconfig ];
 
   buildInputs = [ glfw capstone ]
     ++ lib.optionals stdenv.isDarwin [ Carbon AppKit freetype ]
-    ++ lib.optionals stdenv.isLinux [ gtk2 tbb ];
+    ++ lib.optionals stdenv.isLinux [ gtk3 tbb ];
 
   NIX_CFLAGS_COMPILE = [ ]
     ++ lib.optional stdenv.isLinux "-ltbb"
@@ -35,11 +35,15 @@ stdenv.mkDerivation rec {
     install -D ./update/build/unix/update-release $out/bin/update
   '';
 
+  fixupPhase = lib.optionalString stdenv.isDarwin ''
+    install_name_tool -change libcapstone.4.dylib ${capstone}/lib/libcapstone.4.dylib $out/bin/Tracy
+  '';
+
   meta = with stdenv.lib; {
     description = "A real time, nanosecond resolution, remote telemetry frame profiler for games and other applications.";
     homepage = "https://github.com/wolfpld/tracy";
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.bsd3;
-    maintainers = with maintainers; [ mpickering ];
+    maintainers = with maintainers; [ mpickering nagisa ];
   };
 }
diff --git a/pkgs/development/tools/trellis/default.nix b/pkgs/development/tools/trellis/default.nix
index 49484032ffb..21f14adc2f7 100644
--- a/pkgs/development/tools/trellis/default.nix
+++ b/pkgs/development/tools/trellis/default.nix
@@ -8,18 +8,18 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "trellis";
-  version = "2020.06.12";
+  version = "2020.07.27";
 
   # git describe --tags
   realVersion = with stdenv.lib; with builtins;
-    "1.0-168-g${substring 0 7 (elemAt srcs 0).rev}";
+    "1.0-182-g${substring 0 7 (elemAt srcs 0).rev}";
 
   srcs = [
     (fetchFromGitHub {
        owner  = "SymbiFlow";
        repo   = "prjtrellis";
-       rev    = "5c9f6ad076da75ea925def4297c528058d9bf54a";
-       sha256 = "1iwpfkibnb9a5kkw5wxyl1fpw1a72pf2icnp1c6sazrphiz8dbf7";
+       rev    = "8c0a6382e11b160ed88d17af8493c12a897617ed";
+       sha256 = "1g0ppjfw8dq5cg5kl2p1p87grb0i88apaim4f5b6wj4sfqz8iln8";
        name   = "trellis";
      })
 
diff --git a/pkgs/development/tools/tychus/default.nix b/pkgs/development/tools/tychus/default.nix
index 82dce7f81e7..5eb6dd09789 100644
--- a/pkgs/development/tools/tychus/default.nix
+++ b/pkgs/development/tools/tychus/default.nix
@@ -23,6 +23,5 @@ buildGoPackage rec {
     description = "Command line utility to live-reload your application.";
     homepage = "https://github.com/devlocker/tychus";
     license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/tools/vagrant/0004-Support-system-installed-plugins.patch b/pkgs/development/tools/vagrant/0004-Support-system-installed-plugins.patch
index f87ff5135b3..fa6555c594e 100644
--- a/pkgs/development/tools/vagrant/0004-Support-system-installed-plugins.patch
+++ b/pkgs/development/tools/vagrant/0004-Support-system-installed-plugins.patch
@@ -1,7 +1,7 @@
 From: Antonio Terceiro <terceiro@debian.org>
 Date: Wed, 27 May 2015 09:36:17 -0300
 Subject: Support system-installed plugins
-Source: https://salsa.debian.org/ruby-team/vagrant/blob/cb672c6dc0c63f6552c5ec4d6d7d22929d353503/debian/patches/0004-Support-system-installed-plugins.patch
+Source: https://salsa.debian.org/ruby-team/vagrant/-/blob/9d86f222/debian/patches/0004-Support-system-installed-plugins.patch
 
 Plugins must be installed as regular Ruby libraries, and they must
 contain /usr/share/vagrant-plugins/plugins.d/$PLUGINNAME.json with the
@@ -22,7 +22,7 @@ following content:
  2 files changed, 23 insertions(+), 3 deletions(-)
 
 diff --git a/lib/vagrant/plugin/manager.rb b/lib/vagrant/plugin/manager.rb
-index 567347d..d9d76a0 100644
+index 9058e68..2772131 100644
 --- a/lib/vagrant/plugin/manager.rb
 +++ b/lib/vagrant/plugin/manager.rb
 @@ -18,7 +18,7 @@ module Vagrant
@@ -80,7 +80,7 @@ index c6872d4..935d431 100644
        end
  
        # Add a plugin that is installed to the state file.
-@@ -107,6 +123,14 @@ module Vagrant
+@@ -107,6 +123,10 @@ module Vagrant
            f.close
            FileUtils.mv(f.path, @path)
          end
@@ -88,10 +88,6 @@ index c6872d4..935d431 100644
 +        # Ignore permission denied against system-installed plugins; regular
 +        # users are not supposed to write there.
 +        raise unless @system
-+      rescue Errno::EROFS
-+        # Ignore read-only filesystem against system-installed plugins; regular
-+        # users are not supposed to write there.
-+        raise unless @system
        end
  
        protected
diff --git a/pkgs/development/tools/vagrant/default.nix b/pkgs/development/tools/vagrant/default.nix
index 338e8f68d35..4e2930f97a2 100644
--- a/pkgs/development/tools/vagrant/default.nix
+++ b/pkgs/development/tools/vagrant/default.nix
@@ -5,9 +5,9 @@
 let
   # NOTE: bumping the version and updating the hash is insufficient;
   # you must use bundix to generate a new gemset.nix in the Vagrant source.
-  version = "2.2.9";
+  version = "2.2.10";
   url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz";
-  sha256 = "0fbickjjliaw3cpkh3pl9bp56b2gcqn87c5ag67amc450ah43rdq";
+  sha256 = "07wlj4m79m9li3za1jkk4imdhqwpca86qz3c0h706s0w8cmv4bbj";
 
   deps = bundlerEnv rec {
     name = "${pname}-${version}";
@@ -54,13 +54,6 @@ in buildRubyGem rec {
     ./unofficial-installation-nowarn.patch
     ./use-system-bundler-version.patch
     ./0004-Support-system-installed-plugins.patch
-
-    # fix deprecation warning on ruby 2.6.5.
-    # See also https://github.com/hashicorp/vagrant/pull/11307
-    (fetchpatch {
-      url = "https://github.com/hashicorp/vagrant/commit/d18ed567aaa5da23c9e91ab87f360e7bf6760f13.patch";
-      sha256 = "0f61qj41rc3fdggmnha4jrqg4pzmfiriwpsz4fcgf7c0bx6qha7q";
-    })
   ];
 
   postPatch = ''
diff --git a/pkgs/development/tools/vagrant/gemset.nix b/pkgs/development/tools/vagrant/gemset.nix
index 00838c6e0c5..3c22b74efed 100644
--- a/pkgs/development/tools/vagrant/gemset.nix
+++ b/pkgs/development/tools/vagrant/gemset.nix
@@ -24,20 +24,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ic028k8xgm2dds9mqnvwwx3ibaz32j8455zxr9f4bcnviyahya5";
+      sha256 = "08hd3d2lfi19cns4d6wkq51scasn17l83fgbzbjjk3dqccz4rg3j";
       type = "gem";
     };
-    version = "3.0.0";
+    version = "4.0.0";
   };
   concurrent-ruby = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
       type = "gem";
     };
-    version = "1.1.6";
+    version = "1.1.7";
   };
   domain_name = {
     dependencies = ["unf"];
@@ -149,21 +149,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10nq1xjqvkhngiygji831qx9bryjwws95r4vrnlq9142bzkg670s";
+      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
       type = "gem";
     };
-    version = "1.8.3";
+    version = "1.8.5";
   };
   listen = {
-    dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"];
+    dependencies = ["rb-fsevent" "rb-inotify"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01v5mrnfqm6sgm8xn2v5swxsn1wlmq7rzh2i48d4jzjsc7qvb6mx";
+      sha256 = "1w923wmdi3gyiky0asqdw5dnh3gcjs2xyn82ajvjfjwh6sn0clgi";
       type = "gem";
     };
-    version = "3.1.5";
+    version = "3.2.1";
   };
   little-plugger = {
     groups = ["default"];
@@ -191,10 +191,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06j6iaj89h9jhkx1x3hlswqrfnqds8br05xb1qra69dpvbdmjcwn";
+      sha256 = "0pkmhcxi8lp74bq5gz9lxrvaiv5w0745kk7s4bw2b1x07qqri0n9";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  mime = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nskys7brz2bylhxiknl0z9i19w3wb1knf0h93in6mjq70jdw5cr";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "0.4.4";
   };
   mime-types = {
     dependencies = ["mime-types-data"];
@@ -222,10 +232,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xy54mjf7xg41l8qrg1bqri75agdqmxap9z466fjismc1rn2jwfr";
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
       type = "gem";
     };
-    version = "1.14.1";
+    version = "1.15.0";
   };
   net-scp = {
     dependencies = ["net-ssh"];
@@ -244,20 +254,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04674g4n6mryjajlcd82af8g8k95la4b1bj712dh71hw1c9vhw1y";
+      sha256 = "185vsybznqgqbb4i2qnxvf1gam8lb634nqcrq7r3i2zy1g6xd8mi";
       type = "gem";
     };
-    version = "2.1.2";
+    version = "3.0.0";
   };
   net-ssh = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "101wd2px9lady54aqmkibvy4j62zk32w0rjz4vnigyg974fsga40";
+      sha256 = "0jp3jgcn8cij407xx9ldb5h9c6jv13jc4cf6kk2idclz43ww21c9";
       type = "gem";
     };
-    version = "5.2.0";
+    version = "6.1.0";
   };
   netrc = {
     groups = ["default"];
diff --git a/pkgs/development/tools/vagrant/use-system-bundler-version.patch b/pkgs/development/tools/vagrant/use-system-bundler-version.patch
index c386acf4a1c..8262220140a 100644
--- a/pkgs/development/tools/vagrant/use-system-bundler-version.patch
+++ b/pkgs/development/tools/vagrant/use-system-bundler-version.patch
@@ -1,8 +1,8 @@
-diff --git i/lib/vagrant/bundler.rb w/lib/vagrant/bundler.rb
-index 301e40e37..e361ab510 100644
---- i/lib/vagrant/bundler.rb
-+++ w/lib/vagrant/bundler.rb
-@@ -217,7 +217,7 @@ module Vagrant
+diff --git a/lib/vagrant/bundler.rb b/lib/vagrant/bundler.rb
+index 336ac1e05..1bfd84c0d 100644
+--- a/lib/vagrant/bundler.rb
++++ b/lib/vagrant/bundler.rb
+@@ -470,7 +470,7 @@ module Vagrant
        source_list = {}
        system_plugins = plugins.map do |plugin_name, plugin_info|
          plugin_name if plugin_info["system"]
diff --git a/pkgs/development/tools/vcstool/default.nix b/pkgs/development/tools/vcstool/default.nix
index c4a1cf73987..9657543e0c7 100644
--- a/pkgs/development/tools/vcstool/default.nix
+++ b/pkgs/development/tools/vcstool/default.nix
@@ -5,11 +5,11 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "vcstool";
-  version = "0.2.7";
+  version = "0.2.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1mq8lmb1wh55cqdj7javq7qia4217h6vf5ljc99gsjyibi7g7d3k";
+    sha256 = "1lb0j120sj76swi702ah6ryn770m1y7gh69237zxpyh897pn5paa";
   };
 
   propagatedBuildInputs = [ pyyaml setuptools ];
diff --git a/pkgs/development/tools/vend/default.nix b/pkgs/development/tools/vend/default.nix
new file mode 100644
index 00000000000..ef59ea8dd65
--- /dev/null
+++ b/pkgs/development/tools/vend/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "vend";
+
+  /*
+  This package is used to generate vendor folders for
+  packages that use the `runVend` option with `buildGoModule`.
+
+  Do not update this package without checking that the vendorSha256
+  hashes of packages using the `runVend` option are unchanged
+  or updating their vendorSha256 hashes if necessary.
+  */
+  version = "1.0.2";
+  # Disable the bot
+  # nixpkgs-update: no auto update
+
+  # Disable `mod tidy`, patch was refused upstream
+  # https://github.com/nomad-software/vend/pull/9
+  patches = [ ./remove_tidy.patch ];
+
+  src = fetchFromGitHub {
+    owner = "nomad-software";
+    repo = "vend";
+    rev = "v${version}";
+    sha256 = "0h9rwwb56nzs46xsvl92af71i8b3wz3pf9ngi8v0i2bpk7p3p89d";
+  };
+
+  vendorSha256 = null;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/nomad-software/vend";
+    description = "A utility which vendors go code including c dependencies";
+    maintainers = with maintainers; [ c00w mic92 zowoq ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/tools/vend/remove_tidy.patch b/pkgs/development/tools/vend/remove_tidy.patch
new file mode 100644
index 00000000000..d5db74a1bd7
--- /dev/null
+++ b/pkgs/development/tools/vend/remove_tidy.patch
@@ -0,0 +1,13 @@
+diff --git a/cli/cmd.go b/cli/cmd.go
+index c766559..3a133fd 100644
+--- a/cli/cmd.go
++++ b/cli/cmd.go
+@@ -12,7 +12,7 @@ import (
+ // UpdateModule makes sure the module is updated ready to vendor the
+ // dependencies.
+ func UpdateModule() {
+-	var commands = []string{"tidy", "download", "vendor"}
++	var commands = []string{"download", "vendor"}
+ 
+ 	for _, command := range commands {
+ 		cmd := exec.Command("go", "mod", command)
diff --git a/pkgs/development/tools/vultr-cli/default.nix b/pkgs/development/tools/vultr-cli/default.nix
index 6f217c60219..c0b34fe3ca6 100644
--- a/pkgs/development/tools/vultr-cli/default.nix
+++ b/pkgs/development/tools/vultr-cli/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "vultr-cli";
-  version = "0.3.2";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "vultr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1gqc4w5j9x7vxvxah6hmqd5i1lxyybpml7yfzzcbngwgwm3y5ym0";
+    sha256 = "0gp1v62iqh3hk46cc5sh8a1nw5nf98m969fdhgxdppwr5dhj9isp";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Official command line tool for Vultr services";
     homepage = "https://github.com/vultr/vultr-cli";
diff --git a/pkgs/development/tools/vultr/default.nix b/pkgs/development/tools/vultr/default.nix
index 8bd8a55bce8..7c396f69f25 100644
--- a/pkgs/development/tools/vultr/default.nix
+++ b/pkgs/development/tools/vultr/default.nix
@@ -2,21 +2,20 @@
 
 buildGoPackage rec {
   pname = "vultr";
-  version = "2.0.1";
+  version = "2.0.2";
   goPackagePath = "github.com/JamesClonk/vultr";
 
   src = fetchFromGitHub {
     owner = "JamesClonk";
     repo = "vultr";
     rev = "v${version}";
-    sha256 = "16wlncf0wax5jhpbfif5k16knigxy89vcby0b821klv6hlm6cc58";
+    sha256 = "0br8nxi9syraarp4hzav9a3p4zxhyi45cq5dsclzxi3fga2l6mqg";
   };
 
   meta = {
     description = "A command line tool for Vultr services, a provider for cloud virtual private servers";
     homepage = "https://github.com/JamesClonk/vultr";
     license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.all;
     maintainers = [ stdenv.lib.maintainers.zauberpony ];
   };
 }
diff --git a/pkgs/development/tools/wabt/default.nix b/pkgs/development/tools/wabt/default.nix
index 11c9875bf9d..a8ade2b815c 100644
--- a/pkgs/development/tools/wabt/default.nix
+++ b/pkgs/development/tools/wabt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wabt";
-  version = "1.0.16";
+  version = "1.0.19";
 
   src = fetchFromGitHub {
     owner = "WebAssembly";
     repo = "wabt";
     rev = version;
-    sha256 = "1zzc46d6m7l5lil423417crdda2cqb396p2idcla2ps161hwq3qp";
+    sha256 = "0g1iy1icnjfkc0dadkrif4nlixpvq626023rgj02m9al64gf9hvx";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/tools/wasm-bindgen-cli/0001-Add-cargo.lock.patch b/pkgs/development/tools/wasm-bindgen-cli/0001-Add-cargo.lock.patch
deleted file mode 100644
index 12184c7d21e..00000000000
--- a/pkgs/development/tools/wasm-bindgen-cli/0001-Add-cargo.lock.patch
+++ /dev/null
@@ -1,2560 +0,0 @@
-From b1a7247a9b9bd327c01723cdc9334c0e7ec9a10e Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Mon, 29 Jun 2020 17:33:55 +0200
-Subject: [PATCH] Add cargo.lock
-
----
- Cargo.lock | 2541 ++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 2541 insertions(+)
- create mode 100644 Cargo.lock
-
-diff --git a/Cargo.lock b/Cargo.lock
-new file mode 100644
-index 00000000..04bdba9f
---- /dev/null
-+++ b/Cargo.lock
-@@ -0,0 +1,2541 @@
-+# This file is automatically @generated by Cargo.
-+# It is not intended for manual editing.
-+[[package]]
-+name = "add"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "adler32"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "567b077b825e468cc974f0020d4082ee6e03132512f207ef1a02fd5d00d1f32d"
-+
-+[[package]]
-+name = "aho-corasick"
-+version = "0.7.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
-+dependencies = [
-+ "memchr",
-+]
-+
-+[[package]]
-+name = "ansi_term"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
-+dependencies = [
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "anyhow"
-+version = "1.0.31"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "85bb70cc08ec97ca5450e6eba421deeea5f172c0fc61f78b5357b2a8e8be195f"
-+
-+[[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"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
-+
-+[[package]]
-+name = "ascii"
-+version = "0.8.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "97be891acc47ca214468e09425d02cef3af2c94d0d82081cd02061f996802f14"
-+
-+[[package]]
-+name = "askama"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "10a1fb9e41eb366cbcd267da2094be5b7e62fdbca9f82091e7503e80f885050d"
-+dependencies = [
-+ "askama_derive",
-+ "askama_escape",
-+ "askama_shared",
-+]
-+
-+[[package]]
-+name = "askama_derive"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e1012c270085fa35ece6a48a569544fde85b6d9ee41074c7b706cc912a03f939"
-+dependencies = [
-+ "askama_shared",
-+ "nom",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
-+name = "askama_escape"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a577aeba5fec1aafb9f195d98cfcc38a78b588e4ebf9b15f62ca1c7aa33795a"
-+
-+[[package]]
-+name = "askama_shared"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8ee517f4e33c27b129928e71d8a044d54c513e72e0b72ec5c4f5f1823e9de353"
-+dependencies = [
-+ "askama_escape",
-+ "humansize",
-+ "num-traits 0.2.12",
-+ "serde",
-+ "toml",
-+]
-+
-+[[package]]
-+name = "assert_cmd"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c88b9ca26f9c16ec830350d309397e74ee9abdfd8eb1f71cb6ecc71a3fc818da"
-+dependencies = [
-+ "doc-comment",
-+ "predicates",
-+ "predicates-core",
-+ "predicates-tree",
-+ "wait-timeout",
-+]
-+
-+[[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 = "0.1.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
-+
-+[[package]]
-+name = "autocfg"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
-+
-+[[package]]
-+name = "base64"
-+version = "0.9.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
-+dependencies = [
-+ "byteorder",
-+ "safemem",
-+]
-+
-+[[package]]
-+name = "base64"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
-+
-+[[package]]
-+name = "bitflags"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
-+
-+[[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"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
-+dependencies = [
-+ "arrayref",
-+ "arrayvec",
-+ "constant_time_eq",
-+]
-+
-+[[package]]
-+name = "buf_redux"
-+version = "0.8.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f"
-+dependencies = [
-+ "memchr",
-+ "safemem",
-+]
-+
-+[[package]]
-+name = "bumpalo"
-+version = "3.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
-+
-+[[package]]
-+name = "byteorder"
-+version = "1.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
-+
-+[[package]]
-+name = "canvas"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "cc"
-+version = "1.0.56"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "77c1f1d60091c1b73e2b1f4560ab419204b178e625fa945ded7b660becd2bd46"
-+
-+[[package]]
-+name = "cfg-if"
-+version = "0.1.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-+
-+[[package]]
-+name = "char"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "chrono"
-+version = "0.4.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2"
-+dependencies = [
-+ "num-integer",
-+ "num-traits 0.2.12",
-+ "time",
-+]
-+
-+[[package]]
-+name = "chunked_transfer"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "498d20a7aaf62625b9bf26e637cf7736417cde1d0c99f1d04d1170229a85cf87"
-+
-+[[package]]
-+name = "clap"
-+version = "2.33.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
-+dependencies = [
-+ "ansi_term",
-+ "atty",
-+ "bitflags 1.2.1",
-+ "strsim 0.8.0",
-+ "textwrap",
-+ "unicode-width",
-+ "vec_map",
-+]
-+
-+[[package]]
-+name = "closures"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "cloudabi"
-+version = "0.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-+dependencies = [
-+ "bitflags 1.2.1",
-+]
-+
-+[[package]]
-+name = "color_quant"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0dbbb57365263e881e805dc77d94697c9118fd94d8da011240555aa7b23445bd"
-+
-+[[package]]
-+name = "console_error_panic_hook"
-+version = "0.1.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b8d976903543e0c48546a91908f21588a680a8c8f984df9a5d69feccb2b2a211"
-+dependencies = [
-+ "cfg-if",
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "console_log"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "constant_time_eq"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
-+
-+[[package]]
-+name = "crossbeam-deque"
-+version = "0.7.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
-+dependencies = [
-+ "crossbeam-epoch",
-+ "crossbeam-utils",
-+ "maybe-uninit",
-+]
-+
-+[[package]]
-+name = "crossbeam-epoch"
-+version = "0.8.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
-+dependencies = [
-+ "autocfg 1.0.0",
-+ "cfg-if",
-+ "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",
-+ "crossbeam-utils",
-+ "maybe-uninit",
-+]
-+
-+[[package]]
-+name = "crossbeam-utils"
-+version = "0.7.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
-+dependencies = [
-+ "autocfg 1.0.0",
-+ "cfg-if",
-+ "lazy_static",
-+]
-+
-+[[package]]
-+name = "curl"
-+version = "0.4.30"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b0447a642435be046540f042950d874a4907f9fee28c0513a0beb3ba89f91eb7"
-+dependencies = [
-+ "curl-sys",
-+ "libc",
-+ "openssl-probe",
-+ "openssl-sys",
-+ "schannel",
-+ "socket2",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "curl-sys"
-+version = "0.4.32+curl-7.70.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "834425a2f22fdd621434196965bf99fbfd9eaed96348488e27b7ac40736c560b"
-+dependencies = [
-+ "cc",
-+ "libc",
-+ "libz-sys",
-+ "openssl-sys",
-+ "pkg-config",
-+ "vcpkg",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "deflate"
-+version = "0.7.20"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4"
-+dependencies = [
-+ "adler32",
-+ "byteorder",
-+]
-+
-+[[package]]
-+name = "deno"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "diff"
-+version = "0.1.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499"
-+
-+[[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",
-+ "redox_users",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "doc-comment"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
-+
-+[[package]]
-+name = "docopt"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7f525a586d310c87df72ebcd98009e57f1cc030c8c268305287a476beb653969"
-+dependencies = [
-+ "lazy_static",
-+ "regex",
-+ "serde",
-+ "strsim 0.9.3",
-+]
-+
-+[[package]]
-+name = "dom"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "either"
-+version = "1.5.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
-+
-+[[package]]
-+name = "enum_primitive"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180"
-+dependencies = [
-+ "num-traits 0.1.43",
-+]
-+
-+[[package]]
-+name = "env_logger"
-+version = "0.7.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
-+dependencies = [
-+ "atty",
-+ "humantime 1.3.0",
-+ "log 0.4.8",
-+ "regex",
-+ "termcolor",
-+]
-+
-+[[package]]
-+name = "fetch"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "serde",
-+ "serde_derive",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "filetime"
-+version = "0.2.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "affc17579b132fc2461adf7c575cc6e8b134ebca52c51f5411388965227dc695"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "redox_syscall",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "float-cmp"
-+version = "0.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "da62c4f1b81918835a8c6a484a397775fff5953fe83529afd51b05f5c6a6617d"
-+dependencies = [
-+ "num-traits 0.2.12",
-+]
-+
-+[[package]]
-+name = "foreign-types"
-+version = "0.3.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-+dependencies = [
-+ "foreign-types-shared",
-+]
-+
-+[[package]]
-+name = "foreign-types-shared"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-+
-+[[package]]
-+name = "fuchsia-cprng"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-+
-+[[package]]
-+name = "futures"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613"
-+dependencies = [
-+ "futures-channel",
-+ "futures-core",
-+ "futures-executor",
-+ "futures-io",
-+ "futures-sink",
-+ "futures-task",
-+ "futures-util",
-+]
-+
-+[[package]]
-+name = "futures-channel"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
-+dependencies = [
-+ "futures-core",
-+ "futures-sink",
-+]
-+
-+[[package]]
-+name = "futures-channel-preview"
-+version = "0.3.0-alpha.19"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d5e5f4df964fa9c1c2f8bddeb5c3611631cacd93baf810fc8bb2fb4b495c263a"
-+dependencies = [
-+ "futures-core-preview",
-+]
-+
-+[[package]]
-+name = "futures-core"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"
-+
-+[[package]]
-+name = "futures-core-preview"
-+version = "0.3.0-alpha.19"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b35b6263fb1ef523c3056565fa67b1d16f0a8604ff12b11b08c25f28a734c60a"
-+
-+[[package]]
-+name = "futures-executor"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314"
-+dependencies = [
-+ "futures-core",
-+ "futures-task",
-+ "futures-util",
-+]
-+
-+[[package]]
-+name = "futures-io"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"
-+
-+[[package]]
-+name = "futures-macro"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
-+dependencies = [
-+ "proc-macro-hack",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
-+name = "futures-sink"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"
-+
-+[[package]]
-+name = "futures-task"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
-+dependencies = [
-+ "once_cell",
-+]
-+
-+[[package]]
-+name = "futures-util"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
-+dependencies = [
-+ "futures-channel",
-+ "futures-core",
-+ "futures-io",
-+ "futures-macro",
-+ "futures-sink",
-+ "futures-task",
-+ "memchr",
-+ "pin-project",
-+ "pin-utils",
-+ "proc-macro-hack",
-+ "proc-macro-nested",
-+ "slab",
-+]
-+
-+[[package]]
-+name = "getrandom"
-+version = "0.1.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "wasi",
-+]
-+
-+[[package]]
-+name = "gif"
-+version = "0.9.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e2e41945ba23db3bf51b24756d73d81acb4f28d85c3dccc32c6fae904438c25f"
-+dependencies = [
-+ "color_quant",
-+ "lzw",
-+]
-+
-+[[package]]
-+name = "glob"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
-+
-+[[package]]
-+name = "guide-supported-types-examples"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "heck"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
-+dependencies = [
-+ "unicode-segmentation",
-+]
-+
-+[[package]]
-+name = "hello_world"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "hermit-abi"
-+version = "0.1.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b9586eedd4ce6b3c498bc3b4dd92fc9f11166aa908a914071953768066c67909"
-+dependencies = [
-+ "libc",
-+]
-+
-+[[package]]
-+name = "httparse"
-+version = "1.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
-+
-+[[package]]
-+name = "humansize"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e"
-+
-+[[package]]
-+name = "humantime"
-+version = "1.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
-+dependencies = [
-+ "quick-error",
-+]
-+
-+[[package]]
-+name = "humantime"
-+version = "2.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3c1ad908cc71012b7bea4d0c53ba96a8cba9962f048fa68d143376143d863b7a"
-+
-+[[package]]
-+name = "id-arena"
-+version = "2.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005"
-+dependencies = [
-+ "rayon",
-+]
-+
-+[[package]]
-+name = "idna"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
-+dependencies = [
-+ "matches",
-+ "unicode-bidi",
-+ "unicode-normalization",
-+]
-+
-+[[package]]
-+name = "image"
-+version = "0.12.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d95816db758249fe16f23a4e23f1a3a817fe11892dbfd1c5836f625324702158"
-+dependencies = [
-+ "byteorder",
-+ "enum_primitive",
-+ "gif",
-+ "jpeg-decoder",
-+ "num-iter",
-+ "num-rational",
-+ "num-traits 0.1.43",
-+ "png",
-+ "scoped_threadpool",
-+]
-+
-+[[package]]
-+name = "import_js"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "inflate"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e7e0062d2dc2f17d2f13750d95316ae8a2ff909af0fda957084f5defd87c43bb"
-+
-+[[package]]
-+name = "itoa"
-+version = "0.4.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
-+
-+[[package]]
-+name = "jpeg-decoder"
-+version = "0.1.19"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5b47b4c4e017b01abdc5bcc126d2d1002e5a75bbe3ce73f9f4f311a916363704"
-+dependencies = [
-+ "byteorder",
-+ "rayon",
-+]
-+
-+[[package]]
-+name = "js-sys"
-+version = "0.3.41"
-+dependencies = [
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "wasm-bindgen-test",
-+]
-+
-+[[package]]
-+name = "julia_set"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "lazy_static"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-+
-+[[package]]
-+name = "leb128"
-+version = "0.2.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a"
-+
-+[[package]]
-+name = "libc"
-+version = "0.2.71"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"
-+
-+[[package]]
-+name = "libz-sys"
-+version = "1.0.25"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe"
-+dependencies = [
-+ "cc",
-+ "libc",
-+ "pkg-config",
-+ "vcpkg",
-+]
-+
-+[[package]]
-+name = "log"
-+version = "0.3.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
-+dependencies = [
-+ "log 0.4.8",
-+]
-+
-+[[package]]
-+name = "log"
-+version = "0.4.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
-+dependencies = [
-+ "cfg-if",
-+]
-+
-+[[package]]
-+name = "lzw"
-+version = "0.10.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084"
-+
-+[[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.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
-+
-+[[package]]
-+name = "memoffset"
-+version = "0.5.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8"
-+dependencies = [
-+ "autocfg 1.0.0",
-+]
-+
-+[[package]]
-+name = "mime"
-+version = "0.2.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0"
-+dependencies = [
-+ "log 0.3.9",
-+]
-+
-+[[package]]
-+name = "mime_guess"
-+version = "1.8.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "216929a5ee4dd316b1702eedf5e74548c123d370f47841ceaac38ca154690ca3"
-+dependencies = [
-+ "mime",
-+ "phf",
-+ "phf_codegen",
-+ "unicase",
-+]
-+
-+[[package]]
-+name = "multipart"
-+version = "0.15.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "adba94490a79baf2d6a23eac897157047008272fa3eecb3373ae6377b91eca28"
-+dependencies = [
-+ "buf_redux",
-+ "httparse",
-+ "log 0.4.8",
-+ "mime",
-+ "mime_guess",
-+ "quick-error",
-+ "rand 0.4.6",
-+ "safemem",
-+ "tempdir",
-+ "twoway",
-+]
-+
-+[[package]]
-+name = "no-std"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "nom"
-+version = "5.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
-+dependencies = [
-+ "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"
-+checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
-+
-+[[package]]
-+name = "num-integer"
-+version = "0.1.43"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
-+dependencies = [
-+ "autocfg 1.0.0",
-+ "num-traits 0.2.12",
-+]
-+
-+[[package]]
-+name = "num-iter"
-+version = "0.1.41"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f"
-+dependencies = [
-+ "autocfg 1.0.0",
-+ "num-integer",
-+ "num-traits 0.2.12",
-+]
-+
-+[[package]]
-+name = "num-rational"
-+version = "0.1.42"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e"
-+dependencies = [
-+ "num-integer",
-+ "num-traits 0.2.12",
-+]
-+
-+[[package]]
-+name = "num-traits"
-+version = "0.1.43"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
-+dependencies = [
-+ "num-traits 0.2.12",
-+]
-+
-+[[package]]
-+name = "num-traits"
-+version = "0.2.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
-+dependencies = [
-+ "autocfg 1.0.0",
-+]
-+
-+[[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 = "once_cell"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
-+
-+[[package]]
-+name = "openssl"
-+version = "0.10.30"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4"
-+dependencies = [
-+ "bitflags 1.2.1",
-+ "cfg-if",
-+ "foreign-types",
-+ "lazy_static",
-+ "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.10.0+1.1.1g"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "47cd4a96d49c3abf4cac8e8a80cba998a030c75608f158fb1c5f609772f265e6"
-+dependencies = [
-+ "cc",
-+]
-+
-+[[package]]
-+name = "openssl-sys"
-+version = "0.9.58"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"
-+dependencies = [
-+ "autocfg 1.0.0",
-+ "cc",
-+ "libc",
-+ "openssl-src",
-+ "pkg-config",
-+ "vcpkg",
-+]
-+
-+[[package]]
-+name = "percent-encoding"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
-+
-+[[package]]
-+name = "performance"
-+version = "0.1.0"
-+dependencies = [
-+ "humantime 2.0.1",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "phf"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18"
-+dependencies = [
-+ "phf_shared",
-+]
-+
-+[[package]]
-+name = "phf_codegen"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e"
-+dependencies = [
-+ "phf_generator",
-+ "phf_shared",
-+]
-+
-+[[package]]
-+name = "phf_generator"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662"
-+dependencies = [
-+ "phf_shared",
-+ "rand 0.6.5",
-+]
-+
-+[[package]]
-+name = "phf_shared"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0"
-+dependencies = [
-+ "siphasher",
-+ "unicase",
-+]
-+
-+[[package]]
-+name = "pin-project"
-+version = "0.4.22"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "12e3a6cdbfe94a5e4572812a0201f8c0ed98c1c452c7b8563ce2276988ef9c17"
-+dependencies = [
-+ "pin-project-internal",
-+]
-+
-+[[package]]
-+name = "pin-project-internal"
-+version = "0.4.22"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6a0ffd45cf79d88737d7cc85bfd5d2894bee1139b356e616fe85dc389c61aaf7"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
-+name = "pin-utils"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-+
-+[[package]]
-+name = "pkg-config"
-+version = "0.3.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
-+
-+[[package]]
-+name = "png"
-+version = "0.6.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3cb773e9a557edb568ce9935cf783e3cdcabe06a9449d41b3e5506d88e582c82"
-+dependencies = [
-+ "bitflags 0.7.0",
-+ "deflate",
-+ "inflate",
-+ "num-iter",
-+]
-+
-+[[package]]
-+name = "ppv-lite86"
-+version = "0.2.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
-+
-+[[package]]
-+name = "predicates"
-+version = "1.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "347a1b6f0b21e636bc9872fb60b83b8e185f6f5516298b8238699f7f9a531030"
-+dependencies = [
-+ "difference",
-+ "float-cmp",
-+ "normalize-line-endings",
-+ "predicates-core",
-+ "regex",
-+]
-+
-+[[package]]
-+name = "predicates-core"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "06075c3a3e92559ff8929e7a280684489ea27fe44805174c3ebd9328dcb37178"
-+
-+[[package]]
-+name = "predicates-tree"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8e63c4859013b38a76eca2414c64911fba30def9e3202ac461a2d22831220124"
-+dependencies = [
-+ "predicates-core",
-+ "treeline",
-+]
-+
-+[[package]]
-+name = "proc-macro-error"
-+version = "1.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880"
-+dependencies = [
-+ "proc-macro-error-attr",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+ "version_check 0.9.2",
-+]
-+
-+[[package]]
-+name = "proc-macro-error-attr"
-+version = "1.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+ "syn-mid",
-+ "version_check 0.9.2",
-+]
-+
-+[[package]]
-+name = "proc-macro-hack"
-+version = "0.5.16"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4"
-+
-+[[package]]
-+name = "proc-macro-nested"
-+version = "0.1.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
-+
-+[[package]]
-+name = "proc-macro2"
-+version = "1.0.18"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa"
-+dependencies = [
-+ "unicode-xid",
-+]
-+
-+[[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.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
-+dependencies = [
-+ "proc-macro2",
-+]
-+
-+[[package]]
-+name = "rand"
-+version = "0.4.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
-+dependencies = [
-+ "fuchsia-cprng",
-+ "libc",
-+ "rand_core 0.3.1",
-+ "rdrand",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "rand"
-+version = "0.5.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
-+dependencies = [
-+ "cloudabi",
-+ "fuchsia-cprng",
-+ "libc",
-+ "rand_core 0.3.1",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "rand"
-+version = "0.6.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
-+dependencies = [
-+ "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",
-+]
-+
-+[[package]]
-+name = "rand"
-+version = "0.7.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-+dependencies = [
-+ "getrandom",
-+ "libc",
-+ "rand_chacha 0.2.2",
-+ "rand_core 0.5.1",
-+ "rand_hc 0.2.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",
-+ "rand_core 0.3.1",
-+]
-+
-+[[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_core"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
-+dependencies = [
-+ "rand_core 0.4.2",
-+]
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-+dependencies = [
-+ "getrandom",
-+]
-+
-+[[package]]
-+name = "rand_hc"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
-+dependencies = [
-+ "rand_core 0.3.1",
-+]
-+
-+[[package]]
-+name = "rand_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_isaac"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
-+dependencies = [
-+ "rand_core 0.3.1",
-+]
-+
-+[[package]]
-+name = "rand_jitter"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
-+dependencies = [
-+ "libc",
-+ "rand_core 0.4.2",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "rand_os"
-+version = "0.1.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
-+dependencies = [
-+ "cloudabi",
-+ "fuchsia-cprng",
-+ "libc",
-+ "rand_core 0.4.2",
-+ "rdrand",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "rand_pcg"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
-+dependencies = [
-+ "autocfg 0.1.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",
-+]
-+
-+[[package]]
-+name = "rayon"
-+version = "1.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080"
-+dependencies = [
-+ "autocfg 1.0.0",
-+ "crossbeam-deque",
-+ "either",
-+ "rayon-core",
-+]
-+
-+[[package]]
-+name = "rayon-core"
-+version = "1.7.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280"
-+dependencies = [
-+ "crossbeam-deque",
-+ "crossbeam-queue",
-+ "crossbeam-utils",
-+ "lazy_static",
-+ "num_cpus",
-+]
-+
-+[[package]]
-+name = "raytrace-parallel"
-+version = "0.1.0"
-+dependencies = [
-+ "console_error_panic_hook",
-+ "futures-channel-preview",
-+ "js-sys",
-+ "rayon",
-+ "rayon-core",
-+ "raytracer",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "raytracer"
-+version = "0.1.0"
-+source = "git+https://github.com/alexcrichton/raytracer?branch=update-deps#42faa13859f7d8d47fd18be785c108003a207786"
-+dependencies = [
-+ "image",
-+ "serde",
-+ "serde_derive",
-+]
-+
-+[[package]]
-+name = "rdrand"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
-+dependencies = [
-+ "rand_core 0.3.1",
-+]
-+
-+[[package]]
-+name = "redox_syscall"
-+version = "0.1.56"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
-+
-+[[package]]
-+name = "redox_users"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431"
-+dependencies = [
-+ "getrandom",
-+ "redox_syscall",
-+ "rust-argon2",
-+]
-+
-+[[package]]
-+name = "regex"
-+version = "1.3.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
-+dependencies = [
-+ "aho-corasick",
-+ "memchr",
-+ "regex-syntax",
-+ "thread_local",
-+]
-+
-+[[package]]
-+name = "regex-syntax"
-+version = "0.6.18"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
-+
-+[[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 = "request-animation-frame"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "rouille"
-+version = "3.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "112568052ec17fa26c6c11c40acbb30d3ad244bf3d6da0be181f5e7e42e5004f"
-+dependencies = [
-+ "base64 0.9.3",
-+ "chrono",
-+ "filetime",
-+ "multipart",
-+ "num_cpus",
-+ "rand 0.5.6",
-+ "serde",
-+ "serde_derive",
-+ "serde_json",
-+ "sha1",
-+ "term",
-+ "threadpool",
-+ "time",
-+ "tiny_http",
-+ "url",
-+]
-+
-+[[package]]
-+name = "rust-argon2"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
-+dependencies = [
-+ "base64 0.11.0",
-+ "blake2b_simd",
-+ "constant_time_eq",
-+ "crossbeam-utils",
-+]
-+
-+[[package]]
-+name = "rust-duck-typed-interfaces"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "rustc-demangle"
-+version = "0.1.16"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
-+
-+[[package]]
-+name = "ryu"
-+version = "1.0.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
-+
-+[[package]]
-+name = "safemem"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
-+
-+[[package]]
-+name = "sample"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "wasm-bindgen-test",
-+]
-+
-+[[package]]
-+name = "schannel"
-+version = "0.1.19"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
-+dependencies = [
-+ "lazy_static",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "scoped-tls"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
-+
-+[[package]]
-+name = "scoped_threadpool"
-+version = "0.1.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
-+
-+[[package]]
-+name = "scopeguard"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-+
-+[[package]]
-+name = "serde"
-+version = "1.0.114"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3"
-+dependencies = [
-+ "serde_derive",
-+]
-+
-+[[package]]
-+name = "serde_derive"
-+version = "1.0.114"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
-+name = "serde_json"
-+version = "1.0.55"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ec2c5d7e739bc07a3e73381a39d61fdb5f671c60c1df26a130690665803d8226"
-+dependencies = [
-+ "itoa",
-+ "ryu",
-+ "serde",
-+]
-+
-+[[package]]
-+name = "sha1"
-+version = "0.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
-+
-+[[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 = "socket2"
-+version = "0.3.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "redox_syscall",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "sourcefile"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4bf77cb82ba8453b42b6ae1d692e4cdc92f9a47beaf89a847c8be83f4e328ad3"
-+
-+[[package]]
-+name = "strsim"
-+version = "0.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-+
-+[[package]]
-+name = "strsim"
-+version = "0.9.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
-+
-+[[package]]
-+name = "structopt"
-+version = "0.3.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "de2f5e239ee807089b62adce73e48c625e0ed80df02c7ab3f068f5db5281065c"
-+dependencies = [
-+ "clap",
-+ "lazy_static",
-+ "structopt-derive",
-+]
-+
-+[[package]]
-+name = "structopt-derive"
-+version = "0.4.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "510413f9de616762a4fbeab62509bf15c729603b72d7cd71280fbca431b1c118"
-+dependencies = [
-+ "heck",
-+ "proc-macro-error",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
-+name = "syn"
-+version = "1.0.33"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e8d5d96e8cbb005d6959f119f773bfaebb5684296108fb32600c00cde305b2cd"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "unicode-xid",
-+]
-+
-+[[package]]
-+name = "syn-mid"
-+version = "0.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
-+name = "tempdir"
-+version = "0.3.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
-+dependencies = [
-+ "rand 0.4.6",
-+ "remove_dir_all",
-+]
-+
-+[[package]]
-+name = "tempfile"
-+version = "3.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "rand 0.7.3",
-+ "redox_syscall",
-+ "remove_dir_all",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "term"
-+version = "0.5.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42"
-+dependencies = [
-+ "byteorder",
-+ "dirs",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "termcolor"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
-+dependencies = [
-+ "winapi-util",
-+]
-+
-+[[package]]
-+name = "textwrap"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-+dependencies = [
-+ "unicode-width",
-+]
-+
-+[[package]]
-+name = "thread_local"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
-+dependencies = [
-+ "lazy_static",
-+]
-+
-+[[package]]
-+name = "threadpool"
-+version = "1.8.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
-+dependencies = [
-+ "num_cpus",
-+]
-+
-+[[package]]
-+name = "time"
-+version = "0.1.43"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
-+dependencies = [
-+ "libc",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "tiny_http"
-+version = "0.6.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1661fa0a44c95d01604bd05c66732a446c657efb62b5164a7a083a3b552b4951"
-+dependencies = [
-+ "ascii",
-+ "chrono",
-+ "chunked_transfer",
-+ "log 0.4.8",
-+ "url",
-+]
-+
-+[[package]]
-+name = "tinyvec"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed"
-+
-+[[package]]
-+name = "todomvc"
-+version = "0.1.0"
-+dependencies = [
-+ "askama",
-+ "console_error_panic_hook",
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "toml"
-+version = "0.5.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
-+dependencies = [
-+ "serde",
-+]
-+
-+[[package]]
-+name = "treeline"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
-+
-+[[package]]
-+name = "trybuild"
-+version = "1.0.30"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bbe777c4e2060f44d83892be1189f96200be8ed3d99569d5c2d5ee26e62c0ea9"
-+dependencies = [
-+ "glob",
-+ "lazy_static",
-+ "serde",
-+ "serde_json",
-+ "termcolor",
-+ "toml",
-+]
-+
-+[[package]]
-+name = "twoway"
-+version = "0.1.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1"
-+dependencies = [
-+ "memchr",
-+]
-+
-+[[package]]
-+name = "typescript-tests"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "unicase"
-+version = "1.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33"
-+dependencies = [
-+ "version_check 0.1.5",
-+]
-+
-+[[package]]
-+name = "unicode-bidi"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
-+dependencies = [
-+ "matches",
-+]
-+
-+[[package]]
-+name = "unicode-normalization"
-+version = "0.1.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
-+dependencies = [
-+ "tinyvec",
-+]
-+
-+[[package]]
-+name = "unicode-segmentation"
-+version = "1.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
-+
-+[[package]]
-+name = "unicode-width"
-+version = "0.1.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
-+
-+[[package]]
-+name = "unicode-xid"
-+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",
-+ "matches",
-+ "percent-encoding",
-+]
-+
-+[[package]]
-+name = "vcpkg"
-+version = "0.2.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
-+
-+[[package]]
-+name = "vec_map"
-+version = "0.8.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-+
-+[[package]]
-+name = "version_check"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
-+
-+[[package]]
-+name = "version_check"
-+version = "0.9.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
-+
-+[[package]]
-+name = "wait-timeout"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
-+dependencies = [
-+ "libc",
-+]
-+
-+[[package]]
-+name = "walrus"
-+version = "0.17.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f970863270179a4e0ca2bfb470931f883f7535ae8b9dac4271761fa1b77e253d"
-+dependencies = [
-+ "anyhow",
-+ "id-arena",
-+ "leb128",
-+ "log 0.4.8",
-+ "rayon",
-+ "walrus-macro",
-+ "wasmparser",
-+]
-+
-+[[package]]
-+name = "walrus-macro"
-+version = "0.17.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "80927fca8665132b48c7714bcec983d6e761c60b3a9877c6cd7df86417b13573"
-+dependencies = [
-+ "heck",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
-+name = "wasi"
-+version = "0.9.0+wasi-snapshot-preview1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-+
-+[[package]]
-+name = "wasm-bindgen"
-+version = "0.2.64"
-+dependencies = [
-+ "cfg-if",
-+ "js-sys",
-+ "serde",
-+ "serde_derive",
-+ "serde_json",
-+ "wasm-bindgen-futures",
-+ "wasm-bindgen-macro",
-+ "wasm-bindgen-test",
-+ "wasm-bindgen-test-crate-a",
-+ "wasm-bindgen-test-crate-b",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-backend"
-+version = "0.2.64"
-+dependencies = [
-+ "bumpalo",
-+ "lazy_static",
-+ "log 0.4.8",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+ "wasm-bindgen-shared",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-benchmark"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-cli"
-+version = "0.2.64"
-+dependencies = [
-+ "anyhow",
-+ "assert_cmd",
-+ "curl",
-+ "diff",
-+ "docopt",
-+ "env_logger",
-+ "log 0.4.8",
-+ "openssl",
-+ "predicates",
-+ "rayon",
-+ "rouille",
-+ "serde",
-+ "serde_derive",
-+ "serde_json",
-+ "tempfile",
-+ "walrus",
-+ "wasm-bindgen-cli-support",
-+ "wasm-bindgen-shared",
-+ "wit-printer",
-+ "wit-text",
-+ "wit-validator",
-+ "wit-walrus",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-cli-support"
-+version = "0.2.64"
-+dependencies = [
-+ "anyhow",
-+ "base64 0.9.3",
-+ "log 0.4.8",
-+ "rustc-demangle",
-+ "serde_json",
-+ "tempfile",
-+ "walrus",
-+ "wasm-bindgen-externref-xform",
-+ "wasm-bindgen-multi-value-xform",
-+ "wasm-bindgen-shared",
-+ "wasm-bindgen-threads-xform",
-+ "wasm-bindgen-wasm-conventions",
-+ "wasm-bindgen-wasm-interpreter",
-+ "wit-text",
-+ "wit-validator",
-+ "wit-walrus",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-externref-xform"
-+version = "0.2.64"
-+dependencies = [
-+ "anyhow",
-+ "rayon",
-+ "walrus",
-+ "wasmprinter",
-+ "wast 17.0.0",
-+ "wat",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-futures"
-+version = "0.4.14"
-+dependencies = [
-+ "cfg-if",
-+ "futures-channel-preview",
-+ "js-sys",
-+ "wasm-bindgen",
-+ "wasm-bindgen-test",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-macro"
-+version = "0.2.64"
-+dependencies = [
-+ "quote",
-+ "trybuild",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "wasm-bindgen-macro-support",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-macro-support"
-+version = "0.2.64"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+ "wasm-bindgen-backend",
-+ "wasm-bindgen-shared",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-multi-value-xform"
-+version = "0.2.64"
-+dependencies = [
-+ "anyhow",
-+ "rayon",
-+ "walrus",
-+ "wasmprinter",
-+ "wast 17.0.0",
-+ "wat",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-paint"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-shared"
-+version = "0.2.64"
-+
-+[[package]]
-+name = "wasm-bindgen-test"
-+version = "0.3.14"
-+dependencies = [
-+ "console_error_panic_hook",
-+ "js-sys",
-+ "scoped-tls",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "wasm-bindgen-test-macro",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-test-crate-a"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-test-crate-b"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-test-macro"
-+version = "0.3.14"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-threads-xform"
-+version = "0.2.64"
-+dependencies = [
-+ "anyhow",
-+ "walrus",
-+ "wasm-bindgen-wasm-conventions",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-wasm-conventions"
-+version = "0.2.64"
-+dependencies = [
-+ "anyhow",
-+ "walrus",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-wasm-interpreter"
-+version = "0.2.64"
-+dependencies = [
-+ "anyhow",
-+ "log 0.4.8",
-+ "tempfile",
-+ "walrus",
-+ "wasm-bindgen-wasm-conventions",
-+ "wat",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-webidl"
-+version = "0.2.64"
-+dependencies = [
-+ "anyhow",
-+ "env_logger",
-+ "heck",
-+ "lazy_static",
-+ "log 0.4.8",
-+ "proc-macro2",
-+ "quote",
-+ "sourcefile",
-+ "structopt",
-+ "syn",
-+ "wasm-bindgen-backend",
-+ "weedle",
-+]
-+
-+[[package]]
-+name = "wasm-in-wasm"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+]
-+
-+[[package]]
-+name = "wasm2js"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "wasmparser"
-+version = "0.55.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "af931e2e1960c53f4a28b063fec4cacd036f35acbec8ff3a4739125b17382a87"
-+
-+[[package]]
-+name = "wasmprinter"
-+version = "0.2.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c93ba310101ec5ee980db66b47b3d276577c8310df1570e19994347137650454"
-+dependencies = [
-+ "anyhow",
-+ "wasmparser",
-+]
-+
-+[[package]]
-+name = "wast"
-+version = "17.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5a0e1c36b928fca33dbaf96235188f5fad22ee87100e26cc606bd0fbabdf1932"
-+dependencies = [
-+ "leb128",
-+]
-+
-+[[package]]
-+name = "wast"
-+version = "21.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0b1844f66a2bc8526d71690104c0e78a8e59ffa1597b7245769d174ebb91deb5"
-+dependencies = [
-+ "leb128",
-+]
-+
-+[[package]]
-+name = "wat"
-+version = "1.0.22"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ce85d72b74242c340e9e3492cfb602652d7bb324c3172dd441b5577e39a2e18c"
-+dependencies = [
-+ "wast 21.0.0",
-+]
-+
-+[[package]]
-+name = "web-sys"
-+version = "0.3.41"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "wasm-bindgen-test",
-+]
-+
-+[[package]]
-+name = "webaudio"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "webgl"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "webidl-tests"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "wasm-bindgen-test",
-+ "wasm-bindgen-webidl",
-+]
-+
-+[[package]]
-+name = "webrtc_datachannel"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "websockets"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "webxr"
-+version = "0.1.0"
-+dependencies = [
-+ "futures",
-+ "js-sys",
-+ "serde",
-+ "serde_derive",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "weedle"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8a7d4f9feb723a800d8f7b74edc9fa44ff35cb0b2ec64886714362f423427f37"
-+dependencies = [
-+ "nom",
-+]
-+
-+[[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 = "wit-parser"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3f5fd97866f4b9c8e1ed57bcf9446f3d0d8ba37e2dd01c3c612c046c053b06f7"
-+dependencies = [
-+ "anyhow",
-+ "leb128",
-+ "wit-schema-version",
-+]
-+
-+[[package]]
-+name = "wit-printer"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "93f19ca44555a3c14d69acee6447a6e4f52771b0c6e5d8db3e42db3b90f6fce9"
-+dependencies = [
-+ "anyhow",
-+ "wasmprinter",
-+ "wit-parser",
-+ "wit-schema-version",
-+]
-+
-+[[package]]
-+name = "wit-schema-version"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bfee4a6a4716eefa0682e7a3b836152e894a3e4f34a9d6c2c3e1c94429bfe36a"
-+
-+[[package]]
-+name = "wit-text"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e9ce51bfa02a5d206998191f63d4f3f3e80696a883dd29194ac4259bb1d57f52"
-+dependencies = [
-+ "anyhow",
-+ "wast 17.0.0",
-+ "wit-writer",
-+]
-+
-+[[package]]
-+name = "wit-validator"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e34e89c07a16b3ea0c3bec5a8b0f20d965796968eb5211d1e3522e8e4a385853"
-+dependencies = [
-+ "anyhow",
-+ "wasmparser",
-+ "wit-parser",
-+ "wit-schema-version",
-+]
-+
-+[[package]]
-+name = "wit-walrus"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "75b636bb9de044e181cfe8745256a24e37f482b4d31ea08b9ac330d4a948e702"
-+dependencies = [
-+ "anyhow",
-+ "id-arena",
-+ "walrus",
-+ "wit-parser",
-+ "wit-schema-version",
-+ "wit-writer",
-+]
-+
-+[[package]]
-+name = "wit-writer"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c2ad01ba5e9cbcff799a0689e56a153776ea694cec777f605938cb9880d41a09"
-+dependencies = [
-+ "leb128",
-+ "wit-schema-version",
-+]
-+
-+[[package]]
-+name = "without-a-bundler"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "without-a-bundler-no-modules"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+ "web-sys",
-+]
--- 
-2.25.4
-
diff --git a/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock b/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock
new file mode 100644
index 00000000000..eed61d4ec14
--- /dev/null
+++ b/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock
@@ -0,0 +1,2557 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "add"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "adler32"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "ansi_term"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b602bfe940d21c130f3895acd65221e8a61270debe89d628b9cb4e3ccb8569b"
+
+[[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"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
+
+[[package]]
+name = "ascii"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97be891acc47ca214468e09425d02cef3af2c94d0d82081cd02061f996802f14"
+
+[[package]]
+name = "askama"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70a6e7ebd44d0047fd48206c83c5cd3214acc7b9d87f001da170145c47ef7d12"
+dependencies = [
+ "askama_derive",
+ "askama_escape",
+ "askama_shared",
+]
+
+[[package]]
+name = "askama_derive"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1d7169690c4f56343dcd821ab834972a22570a2662a19a84fd7775d5e1c3881"
+dependencies = [
+ "askama_shared",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "askama_escape"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90c108c1a94380c89d2215d0ac54ce09796823cca0fd91b299cfff3b33e346fb"
+
+[[package]]
+name = "askama_shared"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62fc272363345c8cdc030e4c259d9d028237f8b057dc9bb327772a257bde6bb5"
+dependencies = [
+ "askama_escape",
+ "humansize",
+ "nom",
+ "num-traits 0.2.12",
+ "percent-encoding 2.1.0",
+ "proc-macro2",
+ "quote",
+ "serde",
+ "syn",
+ "toml",
+]
+
+[[package]]
+name = "assert_cmd"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c88b9ca26f9c16ec830350d309397e74ee9abdfd8eb1f71cb6ecc71a3fc818da"
+dependencies = [
+ "doc-comment",
+ "predicates",
+ "predicates-core",
+ "predicates-tree",
+ "wait-timeout",
+]
+
+[[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 = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
+
+[[package]]
+name = "autocfg"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
+
+[[package]]
+name = "base64"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
+dependencies = [
+ "byteorder",
+ "safemem",
+]
+
+[[package]]
+name = "base64"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
+
+[[package]]
+name = "bitflags"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
+
+[[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"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
+dependencies = [
+ "arrayref",
+ "arrayvec",
+ "constant_time_eq",
+]
+
+[[package]]
+name = "buf_redux"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f"
+dependencies = [
+ "memchr",
+ "safemem",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
+
+[[package]]
+name = "byteorder"
+version = "1.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
+
+[[package]]
+name = "canvas"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518"
+
+[[package]]
+name = "cfg-if"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+
+[[package]]
+name = "char"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "chrono"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6"
+dependencies = [
+ "num-integer",
+ "num-traits 0.2.12",
+ "time",
+]
+
+[[package]]
+name = "chunked_transfer"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "498d20a7aaf62625b9bf26e637cf7736417cde1d0c99f1d04d1170229a85cf87"
+
+[[package]]
+name = "clap"
+version = "2.33.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
+dependencies = [
+ "ansi_term",
+ "atty",
+ "bitflags 1.2.1",
+ "strsim 0.8.0",
+ "textwrap",
+ "unicode-width",
+ "vec_map",
+]
+
+[[package]]
+name = "closures"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "cloudabi"
+version = "0.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+dependencies = [
+ "bitflags 1.2.1",
+]
+
+[[package]]
+name = "color_quant"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dbbb57365263e881e805dc77d94697c9118fd94d8da011240555aa7b23445bd"
+
+[[package]]
+name = "console_error_panic_hook"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8d976903543e0c48546a91908f21588a680a8c8f984df9a5d69feccb2b2a211"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "console_log"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "constant_time_eq"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+ "maybe-uninit",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
+dependencies = [
+ "autocfg 1.0.0",
+ "cfg-if",
+ "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",
+ "crossbeam-utils",
+ "maybe-uninit",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
+dependencies = [
+ "autocfg 1.0.0",
+ "cfg-if",
+ "lazy_static",
+]
+
+[[package]]
+name = "curl"
+version = "0.4.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9447ad28eee2a5cfb031c329d46bef77487244fff6a724b378885b8691a35f78"
+dependencies = [
+ "curl-sys",
+ "libc",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "socket2",
+ "winapi",
+]
+
+[[package]]
+name = "curl-sys"
+version = "0.4.33+curl-7.71.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e9818ea018327f79c811612f29b9834d2abddbe7db81460a2d5c7e12946b337"
+dependencies = [
+ "cc",
+ "libc",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+ "winapi",
+]
+
+[[package]]
+name = "deflate"
+version = "0.7.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4"
+dependencies = [
+ "adler32",
+ "byteorder",
+]
+
+[[package]]
+name = "deno"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "diff"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499"
+
+[[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",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "doc-comment"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+
+[[package]]
+name = "docopt"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f525a586d310c87df72ebcd98009e57f1cc030c8c268305287a476beb653969"
+dependencies = [
+ "lazy_static",
+ "regex",
+ "serde",
+ "strsim 0.9.3",
+]
+
+[[package]]
+name = "dom"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "either"
+version = "1.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
+
+[[package]]
+name = "enum_primitive"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180"
+dependencies = [
+ "num-traits 0.1.43",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
+dependencies = [
+ "atty",
+ "humantime 1.3.0",
+ "log 0.4.11",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "fetch"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "serde",
+ "serde_derive",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e500da2fab70bdc43f8f0e0b350a227f31c72311c56aba48f01d5cd62bb0345b"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "winapi",
+]
+
+[[package]]
+name = "float-cmp"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4"
+dependencies = [
+ "num-traits 0.2.12",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "fuchsia-cprng"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+
+[[package]]
+name = "futures"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-channel-preview"
+version = "0.3.0-alpha.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5e5f4df964fa9c1c2f8bddeb5c3611631cacd93baf810fc8bb2fb4b495c263a"
+dependencies = [
+ "futures-core-preview",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"
+
+[[package]]
+name = "futures-core-preview"
+version = "0.3.0-alpha.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b35b6263fb1ef523c3056565fa67b1d16f0a8604ff12b11b08c25f28a734c60a"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
+dependencies = [
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"
+
+[[package]]
+name = "futures-task"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "futures-util"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project",
+ "pin-utils",
+ "proc-macro-hack",
+ "proc-macro-nested",
+ "slab",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "gif"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2e41945ba23db3bf51b24756d73d81acb4f28d85c3dccc32c6fae904438c25f"
+dependencies = [
+ "color_quant",
+ "lzw",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
+
+[[package]]
+name = "guide-supported-types-examples"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "heck"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "hello_world"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "httparse"
+version = "1.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
+
+[[package]]
+name = "humansize"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e"
+
+[[package]]
+name = "humantime"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
+dependencies = [
+ "quick-error",
+]
+
+[[package]]
+name = "humantime"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c1ad908cc71012b7bea4d0c53ba96a8cba9962f048fa68d143376143d863b7a"
+
+[[package]]
+name = "id-arena"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005"
+dependencies = [
+ "rayon",
+]
+
+[[package]]
+name = "idna"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
+dependencies = [
+ "matches",
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "image"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d95816db758249fe16f23a4e23f1a3a817fe11892dbfd1c5836f625324702158"
+dependencies = [
+ "byteorder",
+ "enum_primitive",
+ "gif",
+ "jpeg-decoder",
+ "num-iter",
+ "num-rational",
+ "num-traits 0.1.43",
+ "png",
+ "scoped_threadpool",
+]
+
+[[package]]
+name = "import_js"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "inflate"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7e0062d2dc2f17d2f13750d95316ae8a2ff909af0fda957084f5defd87c43bb"
+
+[[package]]
+name = "itoa"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
+
+[[package]]
+name = "jpeg-decoder"
+version = "0.1.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc797adac5f083b8ff0ca6f6294a999393d76e197c36488e2ef732c4715f6fa3"
+dependencies = [
+ "byteorder",
+ "rayon",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.44"
+dependencies = [
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-test",
+]
+
+[[package]]
+name = "julia_set"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "leb128"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a"
+
+[[package]]
+name = "libc"
+version = "0.2.74"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2f02823cf78b754822df5f7f268fb59822e7296276d3e069d8e8cb26a14bd10"
+
+[[package]]
+name = "libz-sys"
+version = "1.0.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "log"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
+dependencies = [
+ "log 0.4.11",
+]
+
+[[package]]
+name = "log"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "lzw"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084"
+
+[[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.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
+
+[[package]]
+name = "memoffset"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f"
+dependencies = [
+ "autocfg 1.0.0",
+]
+
+[[package]]
+name = "mime"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0"
+dependencies = [
+ "log 0.3.9",
+]
+
+[[package]]
+name = "mime_guess"
+version = "1.8.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "216929a5ee4dd316b1702eedf5e74548c123d370f47841ceaac38ca154690ca3"
+dependencies = [
+ "mime",
+ "phf",
+ "phf_codegen",
+ "unicase",
+]
+
+[[package]]
+name = "multipart"
+version = "0.15.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adba94490a79baf2d6a23eac897157047008272fa3eecb3373ae6377b91eca28"
+dependencies = [
+ "buf_redux",
+ "httparse",
+ "log 0.4.11",
+ "mime",
+ "mime_guess",
+ "quick-error",
+ "rand 0.4.6",
+ "safemem",
+ "tempdir",
+ "twoway",
+]
+
+[[package]]
+name = "no-std"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "nom"
+version = "5.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
+dependencies = [
+ "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"
+checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
+
+[[package]]
+name = "num-integer"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
+dependencies = [
+ "autocfg 1.0.0",
+ "num-traits 0.2.12",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f"
+dependencies = [
+ "autocfg 1.0.0",
+ "num-integer",
+ "num-traits 0.2.12",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.1.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e"
+dependencies = [
+ "num-integer",
+ "num-traits 0.2.12",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
+dependencies = [
+ "num-traits 0.2.12",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
+dependencies = [
+ "autocfg 1.0.0",
+]
+
+[[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 = "once_cell"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
+
+[[package]]
+name = "openssl"
+version = "0.10.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4"
+dependencies = [
+ "bitflags 1.2.1",
+ "cfg-if",
+ "foreign-types",
+ "lazy_static",
+ "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.10.2+1.1.1g"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a287fdb22e32b5b60624d4a5a7a02dbe82777f730ec0dbc42a0554326fef5a70"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"
+dependencies = [
+ "autocfg 1.0.0",
+ "cc",
+ "libc",
+ "openssl-src",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[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 = "performance"
+version = "0.1.0"
+dependencies = [
+ "humantime 2.0.1",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "phf"
+version = "0.7.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18"
+dependencies = [
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.7.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.7.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662"
+dependencies = [
+ "phf_shared",
+ "rand 0.6.5",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.7.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0"
+dependencies = [
+ "siphasher",
+ "unicase",
+]
+
+[[package]]
+name = "pin-project"
+version = "0.4.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "0.4.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
+
+[[package]]
+name = "png"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3cb773e9a557edb568ce9935cf783e3cdcabe06a9449d41b3e5506d88e582c82"
+dependencies = [
+ "bitflags 0.7.0",
+ "deflate",
+ "inflate",
+ "num-iter",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
+
+[[package]]
+name = "predicates"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96bfead12e90dccead362d62bb2c90a5f6fc4584963645bc7f71a735e0b0735a"
+dependencies = [
+ "difference",
+ "float-cmp",
+ "normalize-line-endings",
+ "predicates-core",
+ "regex",
+]
+
+[[package]]
+name = "predicates-core"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06075c3a3e92559ff8929e7a280684489ea27fe44805174c3ebd9328dcb37178"
+
+[[package]]
+name = "predicates-tree"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e63c4859013b38a76eca2414c64911fba30def9e3202ac461a2d22831220124"
+dependencies = [
+ "predicates-core",
+ "treeline",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "version_check 0.9.2",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "syn-mid",
+ "version_check 0.9.2",
+]
+
+[[package]]
+name = "proc-macro-hack"
+version = "0.5.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598"
+
+[[package]]
+name = "proc-macro-nested"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
+dependencies = [
+ "unicode-xid",
+]
+
+[[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.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
+dependencies = [
+ "fuchsia-cprng",
+ "libc",
+ "rand_core 0.3.1",
+ "rdrand",
+ "winapi",
+]
+
+[[package]]
+name = "rand"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
+dependencies = [
+ "cloudabi",
+ "fuchsia-cprng",
+ "libc",
+ "rand_core 0.3.1",
+ "winapi",
+]
+
+[[package]]
+name = "rand"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
+dependencies = [
+ "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",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom",
+ "libc",
+ "rand_chacha 0.2.2",
+ "rand_core 0.5.1",
+ "rand_hc 0.2.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",
+ "rand_core 0.3.1",
+]
+
+[[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_core"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+dependencies = [
+ "rand_core 0.4.2",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "rand_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_isaac"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "rand_jitter"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
+dependencies = [
+ "libc",
+ "rand_core 0.4.2",
+ "winapi",
+]
+
+[[package]]
+name = "rand_os"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+dependencies = [
+ "cloudabi",
+ "fuchsia-cprng",
+ "libc",
+ "rand_core 0.4.2",
+ "rdrand",
+ "winapi",
+]
+
+[[package]]
+name = "rand_pcg"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
+dependencies = [
+ "autocfg 0.1.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",
+]
+
+[[package]]
+name = "rayon"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080"
+dependencies = [
+ "autocfg 1.0.0",
+ "crossbeam-deque",
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-queue",
+ "crossbeam-utils",
+ "lazy_static",
+ "num_cpus",
+]
+
+[[package]]
+name = "raytrace-parallel"
+version = "0.1.0"
+dependencies = [
+ "console_error_panic_hook",
+ "futures-channel-preview",
+ "js-sys",
+ "rayon",
+ "rayon-core",
+ "raytracer",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "raytracer"
+version = "0.1.0"
+source = "git+https://github.com/alexcrichton/raytracer?branch=update-deps#42faa13859f7d8d47fd18be785c108003a207786"
+dependencies = [
+ "image",
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
+name = "rdrand"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.1.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
+
+[[package]]
+name = "redox_users"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431"
+dependencies = [
+ "getrandom",
+ "redox_syscall",
+ "rust-argon2",
+]
+
+[[package]]
+name = "regex"
+version = "1.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+ "thread_local",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
+
+[[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 = "request-animation-frame"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "rouille"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "112568052ec17fa26c6c11c40acbb30d3ad244bf3d6da0be181f5e7e42e5004f"
+dependencies = [
+ "base64 0.9.3",
+ "chrono",
+ "filetime",
+ "multipart",
+ "num_cpus",
+ "rand 0.5.6",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "sha1",
+ "term",
+ "threadpool",
+ "time",
+ "tiny_http",
+ "url",
+]
+
+[[package]]
+name = "rust-argon2"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
+dependencies = [
+ "base64 0.11.0",
+ "blake2b_simd",
+ "constant_time_eq",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "rust-duck-typed-interfaces"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
+
+[[package]]
+name = "ryu"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
+
+[[package]]
+name = "safemem"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+
+[[package]]
+name = "sample"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-test",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
+dependencies = [
+ "lazy_static",
+ "winapi",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
+
+[[package]]
+name = "scoped_threadpool"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "serde"
+version = "1.0.114"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.114"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "sha1"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
+
+[[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 = "socket2"
+version = "0.3.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "winapi",
+]
+
+[[package]]
+name = "sourcefile"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bf77cb82ba8453b42b6ae1d692e4cdc92f9a47beaf89a847c8be83f4e328ad3"
+
+[[package]]
+name = "strsim"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
+[[package]]
+name = "strsim"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
+
+[[package]]
+name = "structopt"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de2f5e239ee807089b62adce73e48c625e0ed80df02c7ab3f068f5db5281065c"
+dependencies = [
+ "clap",
+ "lazy_static",
+ "structopt-derive",
+]
+
+[[package]]
+name = "structopt-derive"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "510413f9de616762a4fbeab62509bf15c729603b72d7cd71280fbca431b1c118"
+dependencies = [
+ "heck",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cdb98bcb1f9d81d07b536179c269ea15999b5d14ea958196413869445bb5250"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
+]
+
+[[package]]
+name = "syn-mid"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "tempdir"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
+dependencies = [
+ "rand 0.4.6",
+ "remove_dir_all",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "rand 0.7.3",
+ "redox_syscall",
+ "remove_dir_all",
+ "winapi",
+]
+
+[[package]]
+name = "term"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42"
+dependencies = [
+ "byteorder",
+ "dirs",
+ "winapi",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "threadpool"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
+dependencies = [
+ "num_cpus",
+]
+
+[[package]]
+name = "time"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "tiny_http"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1661fa0a44c95d01604bd05c66732a446c657efb62b5164a7a083a3b552b4951"
+dependencies = [
+ "ascii",
+ "chrono",
+ "chunked_transfer",
+ "log 0.4.11",
+ "url",
+]
+
+[[package]]
+name = "tinyvec"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed"
+
+[[package]]
+name = "todomvc"
+version = "0.1.0"
+dependencies = [
+ "askama",
+ "console_error_panic_hook",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "toml"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "treeline"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
+
+[[package]]
+name = "trybuild"
+version = "1.0.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a4d94e6adf00b96b1ab94fcfcd8c3cf916733b39adf90c8f72693629887b9b8"
+dependencies = [
+ "glob",
+ "lazy_static",
+ "serde",
+ "serde_json",
+ "termcolor",
+ "toml",
+]
+
+[[package]]
+name = "twoway"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "typescript-tests"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "unicase"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33"
+dependencies = [
+ "version_check 0.1.5",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+dependencies = [
+ "matches",
+]
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
+
+[[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 = "url"
+version = "1.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
+dependencies = [
+ "idna",
+ "matches",
+ "percent-encoding 1.0.1",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
+
+[[package]]
+name = "vec_map"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
+[[package]]
+name = "version_check"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
+
+[[package]]
+name = "version_check"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
+
+[[package]]
+name = "wait-timeout"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "walrus"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d470d0583e65f4cab21a1ff3c1ba3dd23ae49e68f516f0afceaeb001b32af39"
+dependencies = [
+ "anyhow",
+ "id-arena",
+ "leb128",
+ "log 0.4.11",
+ "rayon",
+ "walrus-macro",
+ "wasmparser 0.59.0",
+]
+
+[[package]]
+name = "walrus-macro"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7c2bb690b44cb1b0fdcc54d4998d21f8bdaf706b93775425e440b174f39ad16"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.67"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-macro",
+ "wasm-bindgen-test",
+ "wasm-bindgen-test-crate-a",
+ "wasm-bindgen-test-crate-b",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.67"
+dependencies = [
+ "bumpalo",
+ "lazy_static",
+ "log 0.4.11",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-benchmark"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-cli"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "assert_cmd",
+ "curl",
+ "diff",
+ "docopt",
+ "env_logger",
+ "log 0.4.11",
+ "openssl",
+ "predicates",
+ "rayon",
+ "rouille",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "tempfile",
+ "walrus",
+ "wasm-bindgen-cli-support",
+ "wasm-bindgen-shared",
+ "wit-printer",
+ "wit-text",
+ "wit-validator",
+ "wit-walrus",
+]
+
+[[package]]
+name = "wasm-bindgen-cli-support"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "base64 0.9.3",
+ "log 0.4.11",
+ "rustc-demangle",
+ "serde_json",
+ "tempfile",
+ "walrus",
+ "wasm-bindgen-externref-xform",
+ "wasm-bindgen-multi-value-xform",
+ "wasm-bindgen-shared",
+ "wasm-bindgen-threads-xform",
+ "wasm-bindgen-wasm-conventions",
+ "wasm-bindgen-wasm-interpreter",
+ "wit-text",
+ "wit-validator",
+ "wit-walrus",
+]
+
+[[package]]
+name = "wasm-bindgen-externref-xform"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "rayon",
+ "walrus",
+ "wasmprinter",
+ "wast",
+ "wat",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.17"
+dependencies = [
+ "cfg-if",
+ "futures-channel-preview",
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-test",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.67"
+dependencies = [
+ "quote",
+ "trybuild",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.67"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-multi-value-xform"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "rayon",
+ "walrus",
+ "wasmprinter",
+ "wast",
+ "wat",
+]
+
+[[package]]
+name = "wasm-bindgen-paint"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.67"
+
+[[package]]
+name = "wasm-bindgen-test"
+version = "0.3.17"
+dependencies = [
+ "console_error_panic_hook",
+ "js-sys",
+ "scoped-tls",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-test-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-test-crate-a"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "wasm-bindgen-test-crate-b"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "wasm-bindgen-test-macro"
+version = "0.3.17"
+dependencies = [
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "wasm-bindgen-threads-xform"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "walrus",
+ "wasm-bindgen-wasm-conventions",
+]
+
+[[package]]
+name = "wasm-bindgen-wasm-conventions"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "walrus",
+]
+
+[[package]]
+name = "wasm-bindgen-wasm-interpreter"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "log 0.4.11",
+ "tempfile",
+ "walrus",
+ "wasm-bindgen-wasm-conventions",
+ "wat",
+]
+
+[[package]]
+name = "wasm-bindgen-webidl"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "env_logger",
+ "heck",
+ "lazy_static",
+ "log 0.4.11",
+ "proc-macro2",
+ "quote",
+ "sourcefile",
+ "structopt",
+ "syn",
+ "wasm-bindgen-backend",
+ "weedle",
+]
+
+[[package]]
+name = "wasm-in-wasm"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+]
+
+[[package]]
+name = "wasm-in-wasm-imports"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+]
+
+[[package]]
+name = "wasm2js"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "wasmparser"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a950e6a618f62147fd514ff445b2a0b53120d382751960797f85f058c7eda9b9"
+
+[[package]]
+name = "wasmparser"
+version = "0.60.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2d5790a08f11f3d6b5767f6c49152df74b215e3dc5a38147713c4f6a05aac7f"
+
+[[package]]
+name = "wasmprinter"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecc836dba85dd00df43d71b22063bcb367d324aa1be0d046077cc7fca4c43876"
+dependencies = [
+ "anyhow",
+ "wasmparser 0.60.2",
+]
+
+[[package]]
+name = "wast"
+version = "21.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b1844f66a2bc8526d71690104c0e78a8e59ffa1597b7245769d174ebb91deb5"
+dependencies = [
+ "leb128",
+]
+
+[[package]]
+name = "wat"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce85d72b74242c340e9e3492cfb602652d7bb324c3172dd441b5577e39a2e18c"
+dependencies = [
+ "wast",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.44"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-test",
+]
+
+[[package]]
+name = "webaudio"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "webgl"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "webidl-tests"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-test",
+ "wasm-bindgen-webidl",
+]
+
+[[package]]
+name = "webrtc_datachannel"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "websockets"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "webxr"
+version = "0.1.0"
+dependencies = [
+ "futures",
+ "js-sys",
+ "serde",
+ "serde_derive",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "weedle"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a7d4f9feb723a800d8f7b74edc9fa44ff35cb0b2ec64886714362f423427f37"
+dependencies = [
+ "nom",
+]
+
+[[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 = "wit-parser"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f5fd97866f4b9c8e1ed57bcf9446f3d0d8ba37e2dd01c3c612c046c053b06f7"
+dependencies = [
+ "anyhow",
+ "leb128",
+ "wit-schema-version",
+]
+
+[[package]]
+name = "wit-printer"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93f19ca44555a3c14d69acee6447a6e4f52771b0c6e5d8db3e42db3b90f6fce9"
+dependencies = [
+ "anyhow",
+ "wasmprinter",
+ "wit-parser",
+ "wit-schema-version",
+]
+
+[[package]]
+name = "wit-schema-version"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfee4a6a4716eefa0682e7a3b836152e894a3e4f34a9d6c2c3e1c94429bfe36a"
+
+[[package]]
+name = "wit-text"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33358e95c77d660f1c7c07f4a93c2bd89768965e844e3c50730bb4b42658df5f"
+dependencies = [
+ "anyhow",
+ "wast",
+ "wit-writer",
+]
+
+[[package]]
+name = "wit-validator"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c11d93d925420e7872b226c4161849c32be38385ccab026b88df99d8ddc6ba6"
+dependencies = [
+ "anyhow",
+ "wasmparser 0.59.0",
+ "wit-parser",
+ "wit-schema-version",
+]
+
+[[package]]
+name = "wit-walrus"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b532d7bc47d02a08463adc934301efbf67e7b1e1284f8a68edc85d1ca84fa125"
+dependencies = [
+ "anyhow",
+ "id-arena",
+ "walrus",
+ "wit-parser",
+ "wit-schema-version",
+ "wit-writer",
+]
+
+[[package]]
+name = "wit-writer"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2ad01ba5e9cbcff799a0689e56a153776ea694cec777f605938cb9880d41a09"
+dependencies = [
+ "leb128",
+ "wit-schema-version",
+]
+
+[[package]]
+name = "without-a-bundler"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "without-a-bundler-no-modules"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
diff --git a/pkgs/development/tools/wasm-bindgen-cli/default.nix b/pkgs/development/tools/wasm-bindgen-cli/default.nix
index cb4840df4d1..0863905e932 100644
--- a/pkgs/development/tools/wasm-bindgen-cli/default.nix
+++ b/pkgs/development/tools/wasm-bindgen-cli/default.nix
@@ -1,21 +1,29 @@
-{ rustPlatform, fetchFromGitHub, lib, openssl, pkgconfig, stdenv, curl, Security, ... }:
+{ rustPlatform, fetchFromGitHub, lib, openssl, pkgconfig, stdenv, curl, Security
+, runCommand
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "wasm-bindgen-cli";
-  version = "0.2.64";
+  version = "0.2.67";
 
-  src = fetchFromGitHub {
-    owner = "rustwasm";
-    repo = "wasm-bindgen";
-    rev = version;
-    sha256 = "1h8sxa15v4l6m4b82p0rlg7ilzfjdz2x7lipampapb9yzn9c5dcs";
-  };
+  src =
+    let
+      tarball = fetchFromGitHub {
+        owner = "rustwasm";
+        repo = "wasm-bindgen";
+        rev = version;
+        sha256 = "0qx178aicbn59b150j5r78zya5n0yljvw4c4lhvg8x4cpfshjb5j";
+      };
+    in runCommand "source" { } ''
+      cp -R ${tarball} $out
+      chmod -R +w $out
+      cp ${./Cargo.lock} $out/Cargo.lock
+    '';
 
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security curl ];
   nativeBuildInputs = [ pkgconfig ];
 
-  cargoSha256 = "1pynk2yisv6ryj1rlwx8bv6akjm39i3d6sd8f42b5v1w5vsg0nqm";
-  cargoPatches = [ ./0001-Add-cargo.lock.patch ];
+  cargoSha256 = "0chpw6syqxn824cbkdjx1s26vmajx511gc4mp9y64vy7b7asba6x";
   cargoBuildFlags = [ "-p" pname ];
 
   meta = with lib; {
diff --git a/pkgs/development/tools/wasm-pack/default.nix b/pkgs/development/tools/wasm-pack/default.nix
index e36e811ea56..93bda0b8180 100644
--- a/pkgs/development/tools/wasm-pack/default.nix
+++ b/pkgs/development/tools/wasm-pack/default.nix
@@ -38,6 +38,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rustwasm/wasm-pack";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = [ maintainers.dhkl ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/wrangler/default.nix b/pkgs/development/tools/wrangler/default.nix
index 6a6d6e39288..fd84afb1617 100644
--- a/pkgs/development/tools/wrangler/default.nix
+++ b/pkgs/development/tools/wrangler/default.nix
@@ -31,6 +31,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/cloudflare/wrangler";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/wxformbuilder/default.nix b/pkgs/development/tools/wxformbuilder/default.nix
new file mode 100644
index 00000000000..a3f8196b124
--- /dev/null
+++ b/pkgs/development/tools/wxformbuilder/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, fetchFromGitHub
+, wxGTK31
+, meson
+, ninja
+}:
+
+stdenv.mkDerivation {
+  pname = "wxFormBuilder";
+  version = "unstable-2020-08-18";
+
+  src = fetchFromGitHub {
+    owner = "wxFormBuilder";
+    repo = "wxFormBuilder";
+    rev = "d053665cc33a79dd935b518b5e7aea6baf493c92";
+    sha256 = "sha256-hTO7Fyp5ZWpq2CfIYEXB85oOkNrqr6Njfh8h0t9B6wU=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    ninja
+    meson
+  ];
+
+  buildInputs = [
+    wxGTK31
+  ];
+
+  meta = with stdenv.lib; {
+    description = "RAD tool for wxWidgets GUI design";
+    homepage = "https://github.com/wxFormBuilder/wxFormBuilder";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ matthuszagh ];
+  };
+}
diff --git a/pkgs/development/tools/yarn/default.nix b/pkgs/development/tools/yarn/default.nix
index dfdd921fd03..22ce3553352 100644
--- a/pkgs/development/tools/yarn/default.nix
+++ b/pkgs/development/tools/yarn/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yarn";
-  version = "1.22.4";
+  version = "1.22.5";
 
   src = fetchzip {
     url = "https://github.com/yarnpkg/yarn/releases/download/v${version}/yarn-v${version}.tar.gz";
-    sha256 = "1s054c9cmlmzy6cfkawhaxvaxhqcq0a17n4sb12p0bp2lzkax9lm";
+    sha256 = "1yb1pb80jhw6mx1r28hf7zd54dygmnrf30r3fz7kn9nrgdpl5in8";
   };
 
   buildInputs = [ nodejs ];
diff --git a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
index 22032e145d3..89bc169d503 100644
--- a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
+++ b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
@@ -284,7 +284,7 @@ in rec {
         '')
         workspaceDependenciesTransitive;
 
-    in stdenv.mkDerivation (builtins.removeAttrs attrs ["pkgConfig" "workspaceDependencies"] // {
+    in stdenv.mkDerivation (builtins.removeAttrs attrs ["yarnNix" "pkgConfig" "workspaceDependencies"] // {
       inherit src pname;
 
       name = baseName;
@@ -389,7 +389,7 @@ in rec {
     # yarn2nix is the only package that requires the yarnNix option.
     # All the other projects can auto-generate that file.
     yarnNix = ./yarn.nix;
-    
+
     # Using the filter above and importing package.json from the filtered
     # source results in an error in restricted mode. To circumvent this,
     # we import package.json from the unfiltered source
diff --git a/pkgs/development/tools/ydiff/default.nix b/pkgs/development/tools/ydiff/default.nix
index f3ecbb451f6..510808fc412 100644
--- a/pkgs/development/tools/ydiff/default.nix
+++ b/pkgs/development/tools/ydiff/default.nix
@@ -5,11 +5,11 @@ with pythonPackages;
 
 buildPythonApplication rec {
   pname = "ydiff";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mxcl17sx1d4vaw22ammnnn3y19mm7r6ljbarcjzi519klz26bnf";
+    sha256 = "f5430577ecd30974d766ee9b8333e06dc76a947b4aae36d39612a0787865a121";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/tools/yj/default.nix b/pkgs/development/tools/yj/default.nix
index a2076668f60..94237abf89b 100644
--- a/pkgs/development/tools/yj/default.nix
+++ b/pkgs/development/tools/yj/default.nix
@@ -20,7 +20,6 @@ buildGoPackage rec {
     description = ''Convert YAML <=> TOML <=> JSON <=> HCL'';
     license = licenses.asl20;
     maintainers = with maintainers; [ Profpatsch ];
-    platforms = platforms.all;
     downloadPage = "https://github.com/sclevine/yj";
     updateWalker = true;
     inherit version;
diff --git a/pkgs/development/tools/yq-go/default.nix b/pkgs/development/tools/yq-go/default.nix
index e830309381f..ea553259961 100644
--- a/pkgs/development/tools/yq-go/default.nix
+++ b/pkgs/development/tools/yq-go/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1bjy3qr26zndr3dhh9gd33rhm5gy779525qgzjw4a4mla0p2q6kl";
 
+  doCheck = false;
+
   nativeBuildInputs = [ installShellFiles ];
 
   postInstall = ''
diff --git a/pkgs/development/tools/yq/default.nix b/pkgs/development/tools/yq/default.nix
index c15fad01599..cfca8a32f93 100644
--- a/pkgs/development/tools/yq/default.nix
+++ b/pkgs/development/tools/yq/default.nix
@@ -1,17 +1,38 @@
-{ lib, buildPythonApplication, fetchPypi, pyyaml, xmltodict, jq }:
+{ lib
+, buildPythonApplication
+, fetchPypi
+, argcomplete
+, pyyaml
+, xmltodict
+# Test inputs
+, coverage
+, flake8
+, jq
+, pytest
+, toml
+}:
 
 buildPythonApplication rec {
   pname = "yq";
-  version = "2.8.1";
+  version = "2.10.1";
 
-  propagatedBuildInputs = [ pyyaml xmltodict jq ];
+  propagatedBuildInputs = [ pyyaml xmltodict jq argcomplete ];
 
-  # ValueError: underlying buffer has been detached
-  doCheck = false;
+  doCheck = true;
+
+  checkInputs = [
+   pytest
+   coverage
+   flake8
+   jq
+   toml
+  ];
+
+  checkPhase = "pytest ./test/test.py";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "042p3s011635rbjax9wvwjdrb1kyzw38a6qn59b0j0k7krz6rlr4";
+    sha256 = "1h6nnkp53mm4spwy8nyxwvh9j6p4lxvf20j4bgjskhnhaw3jl9gn";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/web/cypress/default.nix b/pkgs/development/web/cypress/default.nix
index abc07fc3e9f..e11a5e18058 100644
--- a/pkgs/development/web/cypress/default.nix
+++ b/pkgs/development/web/cypress/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchzip, autoPatchelfHook, xorg, gtk2, gnome2, gtk3, nss, alsaLib, udev, unzip, wrapGAppsHook }:
+{ stdenv, lib, fetchzip, autoPatchelfHook, xorg, gtk2, gnome2, gtk3, nss, alsaLib, udev, unzip, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "cypress";
-  version = "4.9.0";
+  version = "4.12.1";
 
   src = fetchzip {
     url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip";
-    sha256 = "1lyhwy4rg6gdsj4590ya5v27lmyz6hnn4dhs51dq5i069rsw9qw4";
+    sha256 = "00sma1q7hbhzjkjnkv8y37ar0wnxk9mkqlpsplgyyyx3gx81nn3s";
   };
 
   # don't remove runtime deps
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     nss gtk2 alsaLib gnome2.GConf gtk3 unzip
   ];
 
-  runtimeDependencies = [ udev.lib ];
+  runtimeDependencies = [ (lib.getLib udev) ];
 
   installPhase = ''
     mkdir -p $out/bin $out/opt/cypress
diff --git a/pkgs/development/web/deno/default.nix b/pkgs/development/web/deno/default.nix
index d47b029a67c..45606151e28 100644
--- a/pkgs/development/web/deno/default.nix
+++ b/pkgs/development/web/deno/default.nix
@@ -18,16 +18,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "deno";
-  version = "1.1.2";
+  version = "1.3.3";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1vfvkrwlhixygd9cn05wq28iw8dch04j8d62a54pbyyxlixrjwfx";
+    sha256 = "0jbnx23f1323sh1rfx8rza2pzr4li4199wblrl4vw4zp5hj4qnkm";
     fetchSubmodules = true;
   };
-  cargoSha256 = "0ddsks81wdddcd4d8w2xz17l41iiga44xiv74hi2158ykrk8rqdi";
+  cargoSha256 = "08zi3ynbi44rdgid9qalgsb5g8dcwclr6ynwxvhi8r0v5i7swwrx";
 
   # Install completions post-install
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/development/web/deno/deps.nix b/pkgs/development/web/deno/deps.nix
index 61cb967a36b..f6baca6fb01 100644
--- a/pkgs/development/web/deno/deps.nix
+++ b/pkgs/development/web/deno/deps.nix
@@ -2,11 +2,11 @@
 {}:
 rec {
   rustyV8Lib = {
-    version = "0.6.0";
+    version = "0.9.1";
     sha256s = {
-      x86_64-linux = "1mpgddlcsfc5jpkqpwpbld9d2pr3dflkbd1w9ryai0aymv8r2rmb";
-      aarch64-linux = "0qqr0i6z39fb298azp2rm0ns0bw3il3xj5zy58cn96h624rxkn67";
-      x86_64-darwin = "0pj7127cvz01kq6vs91sdxkwkbjx7j3cv7lwvyilifbl01j3vwip";
+      x86_64-linux = "07zph4x3k659ywld27b60as7j06bdbab2ws1pf67iwg7w6h7iash";
+      aarch64-linux = "0w9mbsdpkrla3ayaswpdjhiqs74h23qi2sv9355h138pw431ymnx";
+      x86_64-darwin = "091kzdg431lvkvcy0401di3if53pii0isk5ipfpsvic82kr7vaqk";
     };
   };
 }
diff --git a/pkgs/development/web/deno/update/common.ts b/pkgs/development/web/deno/update/common.ts
index 71e4d638f8d..d8956b21d16 100644
--- a/pkgs/development/web/deno/update/common.ts
+++ b/pkgs/development/web/deno/update/common.ts
@@ -8,7 +8,20 @@ const run = async (command: string, args: string[]) => {
     { cmd: [command, ...args], stdout: "piped", stderr: "piped" },
   );
   if (!(await cmd.status()).success) {
-    throw await cmd.stderrOutput().then((b) => decode(b));
+    const error = await cmd.stderrOutput().then((b) => decode(b).trimEnd());
+    // Known error we can ignore
+    if (error.includes("'allow-unsafe-native-code-during-evaluation'")) {
+      // Extract the target sha256 out of the error
+      const target = "  got:    sha256:";
+      const match = error
+        .split("\n")
+        .find((l) => l.includes(target))
+        ?.split(target)[1];
+      if (typeof match !== "undefined") {
+        return match;
+      }
+    }
+    throw new Error(error);
   }
   return cmd.output().then((b) => decode(b).trimEnd());
 };
diff --git a/pkgs/development/web/flyctl/default.nix b/pkgs/development/web/flyctl/default.nix
index 2437962191e..53e9400e49c 100644
--- a/pkgs/development/web/flyctl/default.nix
+++ b/pkgs/development/web/flyctl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "flyctl";
-  version = "0.0.135";
+  version = "0.0.137";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = "flyctl";
     rev = "v${version}";
-    sha256 = "0gxd32pb901hlr493gp736rjd5fpwgqvmlir6b5r0fzyv22f8x2d";
+    sha256 = "0zlcfmraf5v1crfkgxjgdjshkasyngmq1jqh7kzy3csm0p1a4sxx";
   };
 
   preBuild = ''
@@ -19,6 +19,8 @@ buildGoModule rec {
 
   vendorSha256 = "1gxz9pp4zl8q7pmwg9z261fjrjfr658k1sn5nq1xzz51wrlzg9ag";
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=-s -w -X github.com/superfly/flyctl/flyctl.Version=${version} -X github.com/superfly/flyctl/flyctl.Commit=${src.rev} -X github.com/superfly/flyctl/flyctl.BuildDate=1970-01-01T00:00:00+0000 -X github.com/superfly/flyctl/flyctl.Environment=production" ];
 
   meta = with lib; {
@@ -27,4 +29,4 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ aaronjanse ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/web/grails/default.nix b/pkgs/development/web/grails/default.nix
index fc68fa53246..55ec74eb173 100644
--- a/pkgs/development/web/grails/default.nix
+++ b/pkgs/development/web/grails/default.nix
@@ -11,11 +11,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "grails";
-  version = "4.0.3";
+  version = "4.1.0.M1";
 
   src = fetchurl {
     url = "https://github.com/grails/grails-core/releases/download/v${version}/grails-${version}.zip";
-    sha256 = "107dvgwv2ldpdr99q1nvb1i93jj635p1n7md6q14v9m4a6a226sa";
+    sha256 = "0l99x3g485qjpdd7ga553xpi1s6rq21p8v16qjzqwdhyld961qsr";
   };
 
   buildInputs = [ unzip ];
diff --git a/pkgs/development/web/lucky-cli/default.nix b/pkgs/development/web/lucky-cli/default.nix
index f2f6ab0f35d..4c983d0931e 100644
--- a/pkgs/development/web/lucky-cli/default.nix
+++ b/pkgs/development/web/lucky-cli/default.nix
@@ -2,13 +2,13 @@
 
 crystal.buildCrystalPackage rec {
   pname = "lucky-cli";
-  version = "0.21.0";
+  version = "0.23.0";
 
   src = fetchFromGitHub {
     owner = "luckyframework";
     repo = "lucky_cli";
     rev = "v${version}";
-    sha256 = "0g0arf13brh6g0hynxs8bsp8jh3dd66rmf2d3qh2qjvk10101g0r";
+    sha256 = "1qggbczrnrfjba6ipzjkqp6ni4rjc79pxy3vhgd7nq88ipa1sygk";
   };
 
   # the integration tests will try to clone a remote repos
diff --git a/pkgs/development/web/minify/default.nix b/pkgs/development/web/minify/default.nix
index b813e87b543..4ef1913fd66 100644
--- a/pkgs/development/web/minify/default.nix
+++ b/pkgs/development/web/minify/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "120d3nzk8cr5496cxp5p6ydlzw9mmpg7dllqhv1kpgwlbxmd8vr3";
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version}" ];
 
   meta = with lib; {
@@ -20,4 +22,4 @@ buildGoModule rec {
     license = licenses.mit;
     homepage = "https://go.tacodewolff.nl/minify";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/web/nodejs/v10.nix b/pkgs/development/web/nodejs/v10.nix
index f473bb250aa..4cd2502f196 100644
--- a/pkgs/development/web/nodejs/v10.nix
+++ b/pkgs/development/web/nodejs/v10.nix
@@ -8,6 +8,6 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "10.21.0";
-    sha256 = "0fxpvjm3gyfwapn55av8q9w1ds0l4nmn6ybdlslcmjiqhfi1zc16";
+    version = "10.22.0";
+    sha256 = "1nz18fa550li10r0kzsm28c2rvvq61nq8bqdygip0rmvbi2paxg0";
   }
diff --git a/pkgs/development/web/nodejs/v12.nix b/pkgs/development/web/nodejs/v12.nix
index 503461cc483..571042b73c2 100644
--- a/pkgs/development/web/nodejs/v12.nix
+++ b/pkgs/development/web/nodejs/v12.nix
@@ -8,6 +8,6 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "12.18.2";
-    sha256 = "1wnxab2shqgs5in0h39qy2fc7f32pcz4gl9i2mj1001pfani1g9q";
+    version = "12.18.3";
+    sha256 = "03hdds6ghlmbz8q61alqj18pdnyd6hxmbhiws4pl51wlawk805bi";
   }
diff --git a/pkgs/development/web/nodejs/v13.nix b/pkgs/development/web/nodejs/v13.nix
deleted file mode 100644
index f157269b636..00000000000
--- a/pkgs/development/web/nodejs/v13.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ callPackage, openssl, icu, python3, enableNpm ? true }:
-
-let
-  buildNodejs = callPackage ./nodejs.nix {
-    inherit openssl icu;
-    python = python3;
-  };
-in
-  buildNodejs {
-    inherit enableNpm;
-    version = "13.14.0";
-    sha256 = "1gi9nl99wsiqpwm266jdsa8g6rmjw4wqwgrkx9f2qk1y3hjcs0vf";
-  }
diff --git a/pkgs/development/web/nodejs/v14.nix b/pkgs/development/web/nodejs/v14.nix
index 37156b5a966..f68cefadd61 100644
--- a/pkgs/development/web/nodejs/v14.nix
+++ b/pkgs/development/web/nodejs/v14.nix
@@ -1,14 +1,13 @@
-{ callPackage, openssl, icu66, python3, enableNpm ? true }:
+{ callPackage, openssl, python3, enableNpm ? true }:
 
 let
   buildNodejs = callPackage ./nodejs.nix {
     inherit openssl;
-    icu = icu66;
     python = python3;
   };
 in
   buildNodejs {
     inherit enableNpm;
-    version = "14.5.0";
-    sha256 = "1d6w7ycdiqbkip7m6m8xly31qgx7ywakzvrnqdq8ini5sricjlgb";
+    version = "14.10.0";
+    sha256 = "00f7p2l3wpj12r6bxz7l6cxkipwl6in4qlzxrzkk0z81k32ph6s3";
   }
diff --git a/pkgs/development/web/postman/default.nix b/pkgs/development/web/postman/default.nix
index a54f054577e..3e1b1cced1a 100644
--- a/pkgs/development/web/postman/default.nix
+++ b/pkgs/development/web/postman/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchurl, makeDesktopItem, wrapGAppsHook
-, atk, at-spi2-atk, alsaLib, cairo, cups, dbus, expat, gdk-pixbuf, glib, gtk3
-, freetype, fontconfig, nss, nspr, pango, udev, libX11, libxcb, libXi
+, atk, at-spi2-atk, at-spi2-core, alsaLib, cairo, cups, dbus, expat, gdk-pixbuf, glib, gtk3
+, freetype, fontconfig, nss, nspr, pango, udev, libuuid, libX11, libxcb, libXi
 , libXcursor, libXdamage, libXrandr, libXcomposite, libXext, libXfixes
 , libXrender, libXtst, libXScrnSaver
 }:
 
 stdenv.mkDerivation rec {
   pname = "postman";
-  version = "7.26.0";
+  version = "7.31.1";
 
   src = fetchurl {
     url = "https://dl.pstmn.io/download/version/${version}/linux64";
-    sha256 = "05xs389bf0127n8rdivbfxvgjvlrk9pyr74klswwlksxciv74i3j";
+    sha256 = "14df24gj0mljblzc78pggyajr7004mg35gary5cz2c26vcklx4pw";
     name = "${pname}.tar.gz";
   };
 
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
     stdenv.cc.cc.lib
     atk
     at-spi2-atk
+    at-spi2-core
     alsaLib
     cairo
     cups
@@ -46,6 +47,7 @@ stdenv.mkDerivation rec {
     nspr
     pango
     udev
+    libuuid
     libX11
     libxcb
     libXi
diff --git a/pkgs/development/web/shopify-themekit/default.nix b/pkgs/development/web/shopify-themekit/default.nix
index b8bc3deaca1..a50140c1532 100644
--- a/pkgs/development/web/shopify-themekit/default.nix
+++ b/pkgs/development/web/shopify-themekit/default.nix
@@ -19,7 +19,6 @@ buildGoPackage rec {
     description = "A command line tool for shopify themes";
     homepage = "https://shopify.github.io/themekit/";
     license = licenses.mit;
-    maintainers = with maintainers; [ maintainers."1000101" ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ _1000101 ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/web/twitter-bootstrap/default.nix b/pkgs/development/web/twitter-bootstrap/default.nix
index 87a25ef0bf9..336e5af5a4b 100644
--- a/pkgs/development/web/twitter-bootstrap/default.nix
+++ b/pkgs/development/web/twitter-bootstrap/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bootstrap";
-  version = "4.5.0";
+  version = "4.5.2";
 
   src = fetchurl {
     url = "https://github.com/twbs/bootstrap/releases/download/v${version}/${pname}-${version}-dist.zip";
-    sha256 = "0wnz7112qfar5qaadxbsp2qpcjaqn0mmzi4j0v4z6rx6lyvar5mb";
+    sha256 = "03brvh7fir9ylfr0c5b6kvf79bkjny0wxw4r5q8x8h2niycrkazg";
   };
 
   buildInputs = [ unzip ];
diff --git a/pkgs/games/arena/default.nix b/pkgs/games/arena/default.nix
index a8e147b6a7e..beba98b6316 100644
--- a/pkgs/games/arena/default.nix
+++ b/pkgs/games/arena/default.nix
@@ -12,11 +12,11 @@ let
 
 in
 stdenv.mkDerivation rec {
-  name = "arena-1.1";
+  name = "arena-3.10-beta";
 
   src = fetchurl {
-    url = "http://www.playwitharena.de/downloads/arenalinux_64bit_1.1.tar.gz";
-    sha256 = "1sh71v5ymzwflq8ycx9j9kl0jhqllgs6z24h4h8j5z8pwdh528v6";
+    url = "http://www.playwitharena.de/downloads/arenalinux_64bit_3.10beta.tar.gz";
+    sha256 = "1pzb9sg4lzbbi4gbldvlb85p8xyl9xnplxwyb9pkk2mwzvvxkf0d";
   };
 
   # stdenv.cc.cc.lib is in that list to pick up libstdc++.so. Is there a better way?
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
     # Remove executable bits from data files. This matters for the find command
     # we'll use below to find all bundled engines.
-    chmod -x $out/lib/${name}/Engines/*/*.{txt,bin,bmp}
+    chmod -x $out/lib/${name}/Engines/*/*.{txt,bin,bmp,zip}
   '';
 
   buildPhase = ''
diff --git a/pkgs/games/arx-libertatis/default.nix b/pkgs/games/arx-libertatis/default.nix
index 8b2cf83e509..2e60f81f4d3 100644
--- a/pkgs/games/arx-libertatis/default.nix
+++ b/pkgs/games/arx-libertatis/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, cmake, zlib, boost
 , openal, glm, freetype, libGLU, SDL2, epoxy
-, dejavu_fonts, inkscape, optipng, imagemagick
+, dejavu_fonts, inkscape_0, optipng, imagemagick
 , withCrashReporter ? !stdenv.isDarwin
 ,   qtbase ? null
 ,   wrapQtAppsHook ? null
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [
-    cmake inkscape imagemagick optipng
+    cmake inkscape_0 imagemagick optipng
   ] ++ optionals withCrashReporter [ wrapQtAppsHook ];
 
   buildInputs = [
diff --git a/pkgs/games/cataclysm-dda/builder.nix b/pkgs/games/cataclysm-dda/builder.nix
new file mode 100644
index 00000000000..24128875f3a
--- /dev/null
+++ b/pkgs/games/cataclysm-dda/builder.nix
@@ -0,0 +1,49 @@
+{ stdenvNoCC, lib, type }:
+
+assert lib.elem type [
+  "mod"
+  "soundpack"
+  "tileset"
+];
+
+{ modName, version, src, ... } @ args:
+
+stdenvNoCC.mkDerivation (args // rec {
+  pname = args.pname or "cataclysm-dda-${type}-${modName}";
+
+  modRoot = args.modRoot or ".";
+
+  configurePhase = args.configurePhase or ''
+    runHook preConfigure
+    runHook postConfigure
+  '';
+
+  buildPhase = args.buildPhase or ''
+    runHook preBuild
+    runHook postBuild
+  '';
+
+  checkPhase = args.checkPhase or ''
+    runHook preCheck
+    runHook postCheck
+  '';
+
+  installPhase = let
+    baseDir = {
+      mod = "mods";
+      soundpack = "sound";
+      tileset = "gfx";
+    }.${type};
+  in args.installPhase or ''
+    runHook preInstall
+    destdir="$out/share/cataclysm-dda/${baseDir}"
+    mkdir -p "$destdir"
+    cp -R "${modRoot}" "$destdir/${modName}"
+    runHook postInstall
+  '';
+
+  passthru = {
+    forTiles = true;
+    forCurses = type == "mod";
+  };
+})
diff --git a/pkgs/games/cataclysm-dda/common.nix b/pkgs/games/cataclysm-dda/common.nix
index f904a3c0f35..9ec73cdebe0 100644
--- a/pkgs/games/cataclysm-dda/common.nix
+++ b/pkgs/games/cataclysm-dda/common.nix
@@ -1,6 +1,7 @@
-{ stdenv, fetchFromGitHub, pkgconfig, gettext, ncurses, CoreFoundation
+{ stdenv, runtimeShell, pkgconfig, gettext, ncurses, CoreFoundation
 , tiles, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, freetype, Cocoa
-, debug, runtimeShell
+, debug
+, useXdgDir
 }:
 
 let
@@ -12,98 +13,100 @@ let
   tilesDeps = [ SDL2 SDL2_image SDL2_mixer SDL2_ttf freetype ]
     ++ optionals stdenv.isDarwin [ Cocoa ];
 
-  common = {
-    nativeBuildInputs = [ pkgconfig ];
-
-    buildInputs = cursesDeps ++ optionals tiles tilesDeps;
-
-    postPatch = ''
-      patchShebangs .
-    '';
+  installXDGAppLauncher = ''
+    launcher="$out/share/applications/cataclysm-dda.desktop"
+    install -D -m 444 data/xdg/*cataclysm-dda.desktop -T "$launcher"
+    sed -i "$launcher" -e "s,\(Exec=\)\(cataclysm-tiles\),\1$out/bin/\2,"
+    install -D -m 444 data/xdg/cataclysm-dda.svg -t $out/share/icons/hicolor/scalable/apps
+  '';
+
+  installMacOSAppLauncher = ''
+    app=$out/Applications/Cataclysm.app
+    install -D -m 444 data/osx/Info.plist -t $app/Contents
+    install -D -m 444 data/osx/AppIcon.icns -t $app/Contents/Resources
+    mkdir $app/Contents/MacOS
+    launcher=$app/Contents/MacOS/Cataclysm.sh
+    cat << EOF > $launcher
+    #!${runtimeShell}
+    $out/bin/cataclysm-tiles
+    EOF
+    chmod 555 $launcher
+  '';
+in
 
-    makeFlags = [
-      "PREFIX=$(out)" "USE_HOME_DIR=1" "LANGUAGES=all"
-    ] ++ optionals (!debug) [
-      "RELEASE=1"
-    ] ++ optionals tiles [
-      "TILES=1" "SOUND=1"
-    ] ++ optionals stdenv.isDarwin [
-      "NATIVE=osx" "CLANG=1"
-    ];
-
-    postInstall = optionalString tiles
-    ( if !stdenv.isDarwin
-      then utils.installXDGAppLauncher
-      else utils.installMacOSAppLauncher
-    );
-
-    dontStrip = debug;
-
-    # https://hydra.nixos.org/build/65193254
-    # src/weather_data.cpp:203:1: fatal error: opening dependency file obj/tiles/weather_data.d: No such file or directory
-    # make: *** [Makefile:687: obj/tiles/weather_data.o] Error 1
-    enableParallelBuilding = false;
-
-    meta = with stdenv.lib; {
-      description = "A free, post apocalyptic, zombie infested rogue-like";
-      longDescription = ''
-        Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic world.
-        Surviving is difficult: you have been thrown, ill-equipped, into a
-        landscape now riddled with monstrosities of which flesh eating zombies are
-        neither the strangest nor the deadliest.
-
-        Yet with care and a little luck, many things are possible. You may try to
-        eke out an existence in the forests silently executing threats and
-        providing sustenance with your longbow. You can ride into town in a
-        jerry-rigged vehicle, all guns blazing, to settle matters in a fug of
-        smoke from your molotovs. You could take a more measured approach and
-        construct an impregnable fortress, surrounded by traps to protect you from
-        the horrors without. The longer you survive, the more skilled and adapted
-        you will get and the better equipped and armed to deal with the threats
-        you are presented with.
-
-        In the course of your ordeal there will be opportunities and temptations
-        to improve or change your very nature. There are tales of survivors fitted
-        with extraordinary cybernetics giving great power and stories too of
-        gravely mutated survivors who, warped by their ingestion of exotic
-        substances or radiation, now more closely resemble insects, birds or fish
-        than their original form.
-      '';
-      homepage = "https://cataclysmdda.org/";
-      license = licenses.cc-by-sa-30;
-      maintainers = with maintainers; [ mnacamura ];
-      platforms = platforms.unix;
-    };
+stdenv.mkDerivation {
+  pname = "cataclysm-dda";
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = cursesDeps ++ optionals tiles tilesDeps;
+
+  postPatch = ''
+    patchShebangs .
+
+    # Locale patch required for Darwin builds, see:
+    # https://github.com/NixOS/nixpkgs/pull/74064#issuecomment-560083970
+    sed -i src/translations.cpp \
+        -e 's@#elif (defined(__linux__) || (defined(MACOSX) && !defined(TILES)))@#elif 1@'
+  '';
+
+  makeFlags = [
+    "PREFIX=$(out)" "LANGUAGES=all"
+    (if useXdgDir then "USE_XDG_DIR=1" else "USE_HOME_DIR=1")
+  ] ++ optionals (!debug) [
+    "RELEASE=1"
+  ] ++ optionals tiles [
+    "TILES=1" "SOUND=1"
+  ] ++ optionals stdenv.isDarwin [
+    "NATIVE=osx" "CLANG=1"
+  ];
+
+  postInstall = optionalString tiles
+  ( if !stdenv.isDarwin
+    then installXDGAppLauncher
+    else installMacOSAppLauncher
+  );
+
+  dontStrip = debug;
+
+  # https://hydra.nixos.org/build/65193254
+  # src/weather_data.cpp:203:1: fatal error: opening dependency file obj/tiles/weather_data.d: No such file or directory
+  # make: *** [Makefile:687: obj/tiles/weather_data.o] Error 1
+  enableParallelBuilding = false;
+
+  passthru = {
+    isTiles = tiles;
+    isCurses = !tiles;
   };
 
-  utils = {
-    fetchFromCleverRaven = { rev, sha256 }:
-    fetchFromGitHub {
-      owner = "CleverRaven";
-      repo = "Cataclysm-DDA";
-      inherit rev sha256;
-    };
-
-    installXDGAppLauncher = ''
-      launcher="$out/share/applications/cataclysm-dda.desktop"
-      install -D -m 444 data/xdg/*cataclysm-dda.desktop -T "$launcher"
-      sed -i "$launcher" -e "s,\(Exec=\)\(cataclysm-tiles\),\1$out/bin/\2,"
-      install -D -m 444 data/xdg/cataclysm-dda.svg -t $out/share/icons/hicolor/scalable/apps
-    '';
-
-    installMacOSAppLauncher = ''
-      app=$out/Applications/Cataclysm.app
-      install -D -m 444 data/osx/Info.plist -t $app/Contents
-      install -D -m 444 data/osx/AppIcon.icns -t $app/Contents/Resources
-      mkdir $app/Contents/MacOS
-      launcher=$app/Contents/MacOS/Cataclysm.sh
-      cat << EOF > $launcher
-      #!${runtimeShell}
-      $out/bin/cataclysm-tiles
-      EOF
-      chmod 555 $launcher
+  meta = with stdenv.lib; {
+    description = "A free, post apocalyptic, zombie infested rogue-like";
+    longDescription = ''
+      Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic world.
+      Surviving is difficult: you have been thrown, ill-equipped, into a
+      landscape now riddled with monstrosities of which flesh eating zombies are
+      neither the strangest nor the deadliest.
+
+      Yet with care and a little luck, many things are possible. You may try to
+      eke out an existence in the forests silently executing threats and
+      providing sustenance with your longbow. You can ride into town in a
+      jerry-rigged vehicle, all guns blazing, to settle matters in a fug of
+      smoke from your molotovs. You could take a more measured approach and
+      construct an impregnable fortress, surrounded by traps to protect you from
+      the horrors without. The longer you survive, the more skilled and adapted
+      you will get and the better equipped and armed to deal with the threats
+      you are presented with.
+
+      In the course of your ordeal there will be opportunities and temptations
+      to improve or change your very nature. There are tales of survivors fitted
+      with extraordinary cybernetics giving great power and stories too of
+      gravely mutated survivors who, warped by their ingestion of exotic
+      substances or radiation, now more closely resemble insects, birds or fish
+      than their original form.
     '';
+    homepage = "https://cataclysmdda.org/";
+    license = licenses.cc-by-sa-30;
+    maintainers = with maintainers; [ mnacamura ];
+    platforms = platforms.unix;
   };
-in
-
-{ inherit common utils; }
+}
diff --git a/pkgs/games/cataclysm-dda/default.nix b/pkgs/games/cataclysm-dda/default.nix
index ad1a9c409d5..ada212ea7e9 100644
--- a/pkgs/games/cataclysm-dda/default.nix
+++ b/pkgs/games/cataclysm-dda/default.nix
@@ -1,25 +1,42 @@
-{ stdenv, callPackage, CoreFoundation
-, tiles ? true, Cocoa
-, debug ? false
-}:
+{ newScope, darwin }:
 
 let
-  inherit (callPackage ./common.nix { inherit tiles CoreFoundation Cocoa debug; }) common utils;
-  inherit (utils) fetchFromCleverRaven;
-in
+  callPackage = newScope self;
 
-stdenv.mkDerivation (common // rec {
-  version = "0.E";
-  name = "cataclysm-dda-${version}";
+  stable = rec {
+    tiles = callPackage ./stable.nix {
+      inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa;
+    };
 
-  src = fetchFromCleverRaven {
-    rev = version;
-    sha256 = "0pbi0fw37zimzdklfj58s1ql0wlqq7dy6idkcsib3hn910ajaxan";
+    curses = tiles.override { tiles = false; };
   };
 
-  patches = [ ./patches/fix_locale_dir.patch ];
+  git = rec {
+    tiles = callPackage ./git.nix {
+      inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa;
+    };
 
-  meta = with stdenv.lib.maintainers; common.meta // {
-    maintainers = common.meta.maintainers ++ [ skeidel ];
+    curses = tiles.override { tiles = false; };
   };
-})
+
+  lib = callPackage ./lib.nix {};
+
+  pkgs = callPackage ./pkgs {};
+
+  self = {
+    inherit
+    callPackage
+    stable
+    git;
+
+    inherit (lib)
+    buildMod
+    buildSoundPack
+    buildTileSet
+    wrapCDDA;
+
+    inherit pkgs;
+  };
+in
+
+self
diff --git a/pkgs/games/cataclysm-dda/git.nix b/pkgs/games/cataclysm-dda/git.nix
index 8e3c3e33994..36f37f7aeba 100644
--- a/pkgs/games/cataclysm-dda/git.nix
+++ b/pkgs/games/cataclysm-dda/git.nix
@@ -1,33 +1,41 @@
-{ stdenv, callPackage, CoreFoundation
+{ lib, callPackage, CoreFoundation, fetchFromGitHub, pkgs, wrapCDDA
 , tiles ? true, Cocoa
 , debug ? false
+, useXdgDir ? false
+, version ? "2019-11-22"
+, rev ? "a6c8ece992bffeae3788425dd4b3b5871e66a9cd"
+, sha256 ? "0ww2q5gykxm802z1kffmnrfahjlx123j1gfszklpsv0b1fccm1ab"
 }:
 
 let
-  inherit (stdenv.lib) substring;
-  inherit (callPackage ./common.nix { inherit tiles CoreFoundation Cocoa debug; }) common utils;
-  inherit (utils) fetchFromCleverRaven;
-in
+  common = callPackage ./common.nix {
+    inherit CoreFoundation tiles Cocoa debug useXdgDir;
+  };
 
-stdenv.mkDerivation (common // rec {
-  version = "2019-11-22";
-  name = "cataclysm-dda-git-${version}";
+  self = common.overrideAttrs (common: rec {
+    pname = common.pname + "-git";
+    inherit version;
 
-  src = fetchFromCleverRaven {
-    rev = "a6c8ece992bffeae3788425dd4b3b5871e66a9cd";
-    sha256 = "0ww2q5gykxm802z1kffmnrfahjlx123j1gfszklpsv0b1fccm1ab";
-  };
+    src = fetchFromGitHub {
+      owner = "CleverRaven";
+      repo = "Cataclysm-DDA";
+      inherit rev sha256;
+    };
 
-  patches = [
-    # Locale patch required for Darwin builds, see: https://github.com/NixOS/nixpkgs/pull/74064#issuecomment-560083970
-    ./patches/fix_locale_dir_git.patch
-  ];
+    makeFlags = common.makeFlags ++ [
+      "VERSION=git-${version}-${lib.substring 0 8 src.rev}"
+    ];
 
-  makeFlags = common.makeFlags ++ [
-    "VERSION=git-${version}-${substring 0 8 src.rev}"
-  ];
+    passthru = common.passthru // {
+      pkgs = pkgs.override { build = self; };
+      withMods = wrapCDDA self;
+    };
 
-  meta = with stdenv.lib.maintainers; common.meta // {
-    maintainers = common.meta.maintainers ++ [ rardiol ];
-  };
-})
+    meta = common.meta // {
+      maintainers = with lib.maintainers;
+      common.meta.maintainers ++ [ rardiol ];
+    };
+  });
+in
+
+self
diff --git a/pkgs/games/cataclysm-dda/lib.nix b/pkgs/games/cataclysm-dda/lib.nix
new file mode 100644
index 00000000000..02678ed0228
--- /dev/null
+++ b/pkgs/games/cataclysm-dda/lib.nix
@@ -0,0 +1,17 @@
+{ callPackage }:
+
+{
+  buildMod = callPackage ./builder.nix {
+    type = "mod";
+  };
+
+  buildSoundPack = callPackage ./builder.nix {
+    type = "soundpack";
+  };
+
+  buildTileSet = callPackage ./builder.nix {
+    type = "tileset";
+  };
+
+  wrapCDDA = callPackage ./wrapper.nix {};
+}
diff --git a/pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch b/pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch
deleted file mode 100644
index 5bfff892d2a..00000000000
--- a/pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/src/translations.cpp
-+++ b/src/translations.cpp
-@@ -212,14 +212,12 @@ void set_language()
-     auto env = getenv( "LANGUAGE" );
-     locale_dir = std::string( PATH_INFO::base_path() + "lang/mo/" + ( env ? env : "none" ) +
-                               "/LC_MESSAGES/cataclysm-dda.mo" );
--#elif (defined(__linux__) || (defined(MACOSX) && !defined(TILES)))
-+#else
-     if( !PATH_INFO::base_path().empty() ) {
-         locale_dir = PATH_INFO::base_path() + "share/locale";
-     } else {
-         locale_dir = "lang/mo";
-     }
--#else
--    locale_dir = "lang/mo";
- #endif
- 
-     const char *locale_dir_char = locale_dir.c_str();
diff --git a/pkgs/games/cataclysm-dda/patches/fix_locale_dir_git.patch b/pkgs/games/cataclysm-dda/patches/fix_locale_dir_git.patch
deleted file mode 100644
index 79b442ff5c9..00000000000
--- a/pkgs/games/cataclysm-dda/patches/fix_locale_dir_git.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/src/translations.cpp b/src/translations.cpp
-index 067e2cd77d..5660d18b3d 100644
---- a/src/translations.cpp
-+++ b/src/translations.cpp
-@@ -211,14 +211,12 @@ void set_language()
-     auto env = getenv( "LANGUAGE" );
-     locale_dir = std::string( FILENAMES["base_path"] + "lang/mo/" + ( env ? env : "none" ) +
-                               "/LC_MESSAGES/cataclysm-dda.mo" );
--#elif (defined(__linux__) || (defined(MACOSX) && !defined(TILES)))
-+#else
-     if( !FILENAMES["base_path"].empty() ) {
-         locale_dir = FILENAMES["base_path"] + "share/locale";
-     } else {
-         locale_dir = "lang/mo";
-     }
--#else
--    locale_dir = "lang/mo";
- #endif
-
-     const char *locale_dir_char = locale_dir.c_str();
diff --git a/pkgs/games/cataclysm-dda/pkgs/default.nix b/pkgs/games/cataclysm-dda/pkgs/default.nix
new file mode 100644
index 00000000000..6f3df09a786
--- /dev/null
+++ b/pkgs/games/cataclysm-dda/pkgs/default.nix
@@ -0,0 +1,27 @@
+{ lib, callPackage, build ? null }:
+
+let
+  pkgs = {
+    mod = {
+    };
+
+    soundpack = {
+    };
+
+    tileset = {
+      UndeadPeople = callPackage ./tilesets/UndeadPeople {};
+    };
+  };
+
+  pkgs' = lib.mapAttrs (_: mod: lib.filterAttrs availableForBuild mod) pkgs;
+
+  availableForBuild = _: mod:
+  if isNull build then
+    true
+  else if build.isTiles then
+    mod.forTiles
+  else
+    mod.forCurses;
+in
+
+lib.makeExtensible (_: pkgs')
diff --git a/pkgs/games/cataclysm-dda/pkgs/tilesets/UndeadPeople/default.nix b/pkgs/games/cataclysm-dda/pkgs/tilesets/UndeadPeople/default.nix
new file mode 100644
index 00000000000..7a58cea8208
--- /dev/null
+++ b/pkgs/games/cataclysm-dda/pkgs/tilesets/UndeadPeople/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildTileSet, fetchFromGitHub }:
+
+buildTileSet {
+  modName = "UndeadPeople";
+  version = "2020-07-08";
+
+  src = fetchFromGitHub {
+    owner = "SomeDeadGuy";
+    repo = "UndeadPeopleTileset";
+    rev = "f7f13b850fafe2261deee051f45d9c611a661534";
+    sha256 = "0r06srjr7rq51jk9yfyxz80nfgb98mkn86cbcjfxpibgbqvcp0zm";
+  };
+
+  modRoot = "MSX++UnDeadPeopleEdition";
+
+  meta = with lib; {
+    description = "Cataclysm DDA tileset based on MSX++ tileset";
+    homepage = "https://github.com/SomeDeadGuy/UndeadPeopleTileset";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ mnacamura ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/games/cataclysm-dda/stable.nix b/pkgs/games/cataclysm-dda/stable.nix
new file mode 100644
index 00000000000..076a33a9e89
--- /dev/null
+++ b/pkgs/games/cataclysm-dda/stable.nix
@@ -0,0 +1,34 @@
+{ lib, callPackage, CoreFoundation, fetchFromGitHub, pkgs, wrapCDDA
+, tiles ? true, Cocoa
+, debug ? false
+, useXdgDir ? false
+}:
+
+let
+  common = callPackage ./common.nix {
+    inherit CoreFoundation tiles Cocoa debug useXdgDir;
+  };
+
+  self = common.overrideAttrs (common: rec {
+    version = "0.E-2";
+
+    src = fetchFromGitHub {
+      owner = "CleverRaven";
+      repo = "Cataclysm-DDA";
+      rev = version;
+      sha256 = "15l6w6lxays7qmsv0ci2ry53asb9an9dh7l7fc13256k085qcg68";
+    };
+
+    passthru = common.passthru // {
+      pkgs = pkgs.override { build = self; };
+      withMods = wrapCDDA self;
+    };
+
+    meta = common.meta // {
+      maintainers = with lib.maintainers;
+      common.meta.maintainers ++ [ skeidel ];
+    };
+  });
+in
+
+self
diff --git a/pkgs/games/cataclysm-dda/wrapper.nix b/pkgs/games/cataclysm-dda/wrapper.nix
new file mode 100644
index 00000000000..a73c320f9c6
--- /dev/null
+++ b/pkgs/games/cataclysm-dda/wrapper.nix
@@ -0,0 +1,47 @@
+{ lib, symlinkJoin, makeWrapper }:
+
+unwrapped:
+
+pkgsSpec:
+
+let
+  mods = if lib.isFunction pkgsSpec
+         then pkgsSpec unwrapped.pkgs
+         else pkgsSpec;
+in
+
+if builtins.length mods == 0
+then unwrapped
+else symlinkJoin {
+  name = unwrapped.name + "-with-mods";
+
+  paths = [ unwrapped ] ++ mods;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postBuild = ''
+    if [ -x $out/bin/cataclysm ]; then
+        wrapProgram $out/bin/cataclysm \
+            --add-flags "--datadir $out/share/cataclysm-dda/"
+    fi
+    if [ -x $out/bin/cataclysm-tiles ]; then
+        wrapProgram $out/bin/cataclysm-tiles \
+            --add-flags "--datadir $out/share/cataclysm-dda/"
+    fi
+
+    # Launch the wrapped program
+    replaceProgram() {
+        cp "$1" "''${1}.bk"
+        unlink "$1"
+        mv "''${1}.bk" "$1"
+        sed -i "$1" -e "s,/nix/store/.\+\(/bin/cataclysm-tiles\),$out\1,"
+    }
+    for script in "$out/share/applications/cataclysm-dda.desktop" \
+                  "$out/Applications/Cataclysm.app/Contents/MacOS/Cataclysm.sh"
+    do
+        if [ -e "$script" ]; then
+            replaceProgram "$script"
+        fi
+    done
+  '';
+}
diff --git a/pkgs/games/chiaki/default.nix b/pkgs/games/chiaki/default.nix
index ac228118444..be4ec7b73b4 100644
--- a/pkgs/games/chiaki/default.nix
+++ b/pkgs/games/chiaki/default.nix
@@ -1,23 +1,23 @@
 { lib, mkDerivation, fetchFromGitHub
-, cmake, ffmpeg_3, libopus, qtbase, qtmultimedia, qtsvg, pkgconfig, protobuf
+, cmake, ffmpeg, libopus, qtbase, qtmultimedia, qtsvg, pkgconfig, protobuf
 , python3Packages, SDL2 }:
 
 mkDerivation rec {
   pname = "chiaki";
-  version = "1.1.3";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "thestr4ng3r";
     repo = "chiaki";
     fetchSubmodules = true;
-    sha256 = "12cb4wpibh077san9rpsmavihf0xy9iqc9zl7y0aagrkl50h19kr";
+    sha256 = "00lzsbjd1w1bhlblgf7zp112sk8ac09c3bzi5ljxbn02mi0an3qp";
   };
 
   nativeBuildInputs = [
     cmake pkgconfig protobuf python3Packages.python python3Packages.protobuf
   ];
-  buildInputs = [ ffmpeg_3 libopus qtbase qtmultimedia qtsvg protobuf SDL2 ];
+  buildInputs = [ ffmpeg libopus qtbase qtmultimedia qtsvg protobuf SDL2 ];
 
   doCheck = true;
 
diff --git a/pkgs/games/chocolate-doom/default.nix b/pkgs/games/chocolate-doom/default.nix
index 1c2a24de01d..1b77a72f8d0 100644
--- a/pkgs/games/chocolate-doom/default.nix
+++ b/pkgs/games/chocolate-doom/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "chocolate-doom";
-  version = "3.0.0";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner = "chocolate-doom";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "0ajzb767wyj8vzhjpsmgslw42b0155ji4alk26shxl7k5ijbzn0j";
+    sha256 = "1zlcqhd49c5n8vaahgaqrc2y10z86xng51sbd82xm3rk2dly25jp";
   };
 
   postPatch = ''
diff --git a/pkgs/games/cockatrice/default.nix b/pkgs/games/cockatrice/default.nix
index 9d07d09e27b..848bf2ab885 100644
--- a/pkgs/games/cockatrice/default.nix
+++ b/pkgs/games/cockatrice/default.nix
@@ -4,13 +4,13 @@
 
 mkDerivation rec {
   pname = "cockatrice";
-  version = "2020-03-20-Release-2.7.4";
+  version = "2020-08-23-Release-2.7.5";
 
   src = fetchFromGitHub {
     owner = "Cockatrice";
     repo = "Cockatrice";
     rev = "${version}";
-    sha256 = "1d229gswfcqxch19wb744d9h897qwzf2y9imwrbcwnlhpbr1j62k";
+    sha256 = "1yaxm7q0ja3rgx197hh8ynjc6ncc4hm0qdn9v7f0l4fbv0bdpv34";
   };
 
   buildInputs = [
diff --git a/pkgs/games/crawl/crawl_purify.patch b/pkgs/games/crawl/crawl_purify.patch
index f792dc013f0..dda55b09f32 100644
--- a/pkgs/games/crawl/crawl_purify.patch
+++ b/pkgs/games/crawl/crawl_purify.patch
@@ -1,37 +1,22 @@
-diff -ru3 crawl-ref-0.23.2-src-old/crawl-ref/source/Makefile crawl-ref-0.23.2-src-new/crawl-ref/source/Makefile
---- crawl-ref-0.23.2-src-old/crawl-ref/source/Makefile	1970-01-01 03:00:01.000000000 +0300
-+++ crawl-ref-0.23.2-src-new/crawl-ref/source/Makefile	2017-07-27 14:45:34.611221571 +0300
-@@ -224,9 +224,9 @@
-	STRIP := strip -x
-	NEED_APPKIT = YesPlease
-	LIBNCURSES_IS_UNICODE = Yes
+diff --git a/crawl-ref/source/Makefile b/crawl-ref/source/Makefile
+--- a/crawl-ref/source/Makefile
++++ b/crawl-ref/source/Makefile
+@@ -248,9 +248,9 @@ ifeq ($(uname_S),Darwin)
+ 	STRIP := strip -x
+ 	NEED_APPKIT = YesPlease
+ 	LIBNCURSES_IS_UNICODE = Yes
 -	NO_PKGCONFIG = Yes
 -	BUILD_SQLITE = YesPlease
 -	BUILD_ZLIB = YesPlease
 +	#NO_PKGCONFIG = Yes
 +	#BUILD_SQLITE = YesPlease
 +	#BUILD_ZLIB = YesPlease
-	ifdef TILES
-		EXTRA_LIBS += -framework AppKit -framework AudioUnit -framework CoreAudio -framework ForceFeedback -framework Carbon -framework IOKit -framework OpenGL -framework AudioToolbox -framework CoreVideo contrib/install/$(ARCH)/lib/libSDL2main.a
-		BUILD_FREETYPE = YesPlease
-@@ -286,13 +286,7 @@
- LIBZ := contrib/install/$(ARCH)/lib/libz.a
- 
- ifndef CROSSHOST
--	# FreeBSD keeps all of its userland includes in /usr/local so
--	# look there
--	ifeq ($(uname_S),FreeBSD)
--		SQLITE_INCLUDE_DIR := /usr/local/include
--	else
--		SQLITE_INCLUDE_DIR := /usr/include
--	endif
-+	SQLITE_INCLUDE_DIR := ${sqlite}/include
- else
- 	# This is totally wrong, works only with some old-style setups, and
- 	# on some architectures of Debian/new FHS multiarch -- excluding, for
-diff -ru3 crawl-ref-0.23.2-src-old/crawl-ref/source/util/find_font crawl-ref-0.23.2-src-new/crawl-ref/source/util/find_font
---- crawl-ref-0.23.2-src-old/crawl-ref/source/util/find_font	1970-01-01 03:00:01.000000000 +0300
-+++ crawl-ref-0.23.2-src-new/crawl-ref/source/util/find_font	2017-07-27 14:44:29.784235540 +0300
+ 	ifdef TILES
+ 		EXTRA_LIBS += -framework AppKit -framework AudioUnit -framework CoreAudio -framework ForceFeedback -framework Carbon -framework IOKit -framework OpenGL -framework AudioToolbox -framework CoreVideo contrib/install/$(ARCH)/lib/libSDL2main.a
+ 		BUILD_FREETYPE = YesPlease
+diff --git a/crawl-ref/source/util/find_font b/crawl-ref/source/util/find_font
+--- a/crawl-ref/source/util/find_font
++++ b/crawl-ref/source/util/find_font
 @@ -1,6 +1,6 @@
  #! /bin/sh
  
@@ -59,4 +44,4 @@ diff --git a/crawl-ref/source/windowmanager-sdl.cc b/crawl-ref/source/windowmana
 +# include <SDL2/SDL_image.h>
  # if defined(USE_SOUND) && !defined(WINMM_PLAY_SOUNDS)
  #  include <SDL2/SDL_mixer.h>
- # endif
\ No newline at end of file
+ # endif
diff --git a/pkgs/games/crawl/default.nix b/pkgs/games/crawl/default.nix
index 8fe3b20419a..eeb8bd7f9db 100644
--- a/pkgs/games/crawl/default.nix
+++ b/pkgs/games/crawl/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   name = "crawl-${version}${lib.optionalString tileMode "-tiles"}";
-  version = "0.24.1";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "crawl";
     repo = "crawl";
     rev = version;
-    sha256 = "1fiizkigmbrw0nb1l1m3syl2mw4a4r36l1y0n4z8z7slp79bsbv4";
+    sha256 = "0swcl8cxz64yw8dl9macz8ar1ccwrkwz89j7s1f60inb5jlxifqm";
   };
 
   # Patch hard-coded paths and remove force library builds
diff --git a/pkgs/games/crispy-doom/default.nix b/pkgs/games/crispy-doom/default.nix
index ea7c3c6e478..5bd6e714e42 100644
--- a/pkgs/games/crispy-doom/default.nix
+++ b/pkgs/games/crispy-doom/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, autoreconfHook, pkgconfig, SDL2, SDL2_mixer, SDL2_net, fetchFromGitHub }:
+{ stdenv, autoreconfHook, pkgconfig, SDL2, SDL2_mixer, SDL2_net, fetchFromGitHub, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "crispy-doom";
@@ -11,6 +11,18 @@ stdenv.mkDerivation rec {
     sha256 = "1b6gn0dysv631jynh769whww9xcss1gms78sz3nrn855q1dsvcb4";
   };
 
+  patches = [
+    # Fixes CVE-2020-14983
+    (fetchpatch {
+      url = "https://github.com/chocolate-doom/chocolate-doom/commit/f1a8d991aa8a14afcb605cf2f65cd15fda204c56.diff";
+      sha256 = "1z6pxg9azcqq7g09hjc09d01knd803nhqilkw2kbx8648hil9mgn";
+    })
+    (fetchpatch {
+      url = "https://github.com/chocolate-doom/chocolate-doom/commit/54fb12eeaa7d527defbe65e7e00e37d5feb7c597.diff";
+      sha256 = "0ww21jn02ld73rkp06f7fqy92jqv8c9q4d1mvsryag1gmvy57znj";
+    })
+  ];
+
   postPatch = ''
     sed -e 's#/games#/bin#g' -i src{,/setup}/Makefile.am
   '';
diff --git a/pkgs/games/curseofwar/default.nix b/pkgs/games/curseofwar/default.nix
index 8b915345f86..9aff3798b6b 100644
--- a/pkgs/games/curseofwar/default.nix
+++ b/pkgs/games/curseofwar/default.nix
@@ -1,34 +1,30 @@
 { stdenv
 , fetchFromGitHub
-, fetchpatch
 , ncurses
 , SDL
 }:
 
 stdenv.mkDerivation rec {
   pname = "curseofwar";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "a-nikolaev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1bj3lv5vrnwzzkgj31pyf1lzkz10qphvzlfz7a3j4plqkczjq92y";
+    sha256 = "1wd71wdnj9izg5d95m81yx3684g4zdi7fsy0j5wwnbd9j34ilz1i";
   };
 
-  patches = [(fetchpatch {
-    # Pull request #40: https://github.com/a-nikolaev/curseofwar/pull/40
-    name = "prefix-independent-data";
-    url = "https://github.com/fgaz/curseofwar/commit/947dea527b2bf4c6e107b8e9c66f4c4fd775b6f9.patch";
-    sha256 = "0ak5igaxmbavkbl8101xx6gswhwgzm5f6wyplwapgh7cylnclc61";
-  })];
-
   buildInputs = [
     ncurses
     SDL
   ];
 
-  makeFlags = (if isNull SDL then [] else [ "SDL=yes" ]) ++ [ "PREFIX=$(out)" ];
+  makeFlags = (if isNull SDL then [] else [ "SDL=yes" ]) ++ [
+    "PREFIX=$(out)"
+    # force platform's cc on darwin, otherwise gcc is used
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
 
   meta = with stdenv.lib; {
     description = "A fast-paced action strategy game";
diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix
index bd37f6180b1..11c21b82c29 100644
--- a/pkgs/games/dwarf-fortress/dfhack/default.nix
+++ b/pkgs/games/dwarf-fortress/dfhack/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildEnv, lib, fetchFromGitHub, cmake, writeScriptBin
-, perl, XMLLibXML, XMLLibXSLT, zlib
+, perl, XMLLibXML, XMLLibXSLT, zlib, ruby
 , enableStoneSense ? false,  allegro5, libGLU, libGL
 , enableTWBT ? true, twbt
 , SDL
@@ -53,10 +53,10 @@ let
       prerelease = true;
     };
     "0.47.04" = {
-      dfHackRelease = "0.47.04-alpha0";
-      sha256 = "07056k6717mqim9skwjprqplj8jmmli6g4p2c72c8000jwnn2hjy";
-      xmlRev = "23500e4e9bd1885365d0a2ef1746c321c1dd50aa";
-      prerelease = true;
+      dfHackRelease = "0.47.04-r2";
+      sha256 = "18ppn1dqaxi6ahjzsvb9kw70rvca106a1hibhzc4rxmraypnqb89";
+      xmlRev = "036b662a1bbc96b4911f3cbe74dfa1243b6459bc";
+      prerelease = false;
     };
   };
 
@@ -109,6 +109,19 @@ let
     };
 
     patches = [ ./fix-stonesense.patch ];
+
+    # As of
+    # https://github.com/DFHack/dfhack/commit/56e43a0dde023c5a4595a22b29d800153b31e3c4,
+    # dfhack gets its goodies from the directory above the Dwarf_Fortress
+    # executable, which leads to stock Dwarf Fortress and not the built
+    # environment where all the dfhack resources are symlinked to (typically
+    # ~/.local/share/df_linux). This causes errors like `tweak is not a
+    # recognized command` to be reported and dfhack to lose some of its
+    # functionality.
+    postPatch = ''
+      sed -i 's@cached_path = path_string.*@cached_path = getenv("DF_DIR");@' library/Process-linux.cpp
+    '';
+
     nativeBuildInputs = [ cmake perl XMLLibXML XMLLibXSLT fakegit ];
     # We don't use system libraries because dfhack needs old C++ ABI.
     buildInputs = [ zlib SDL ]
@@ -127,6 +140,12 @@ let
     cmakeFlags = [ "-DDFHACK_BUILD_ARCH=${arch}" "-DDOWNLOAD_RUBY=OFF" ]
               ++ lib.optionals enableStoneSense [ "-DBUILD_STONESENSE=ON" "-DSTONESENSE_INTERNAL_SO=OFF" ];
 
+    # dfhack expects an unversioned libruby.so to be present in the hack
+    # subdirectory for ruby plugins to function.
+    postInstall = ''
+      ln -s ${ruby}/lib/libruby-*.so $out/hack/libruby.so
+    '';
+
     enableParallelBuilding = true;
   };
 in
diff --git a/pkgs/games/dwarf-fortress/twbt/default.nix b/pkgs/games/dwarf-fortress/twbt/default.nix
index b5bff0e9b7a..a0990e04f93 100644
--- a/pkgs/games/dwarf-fortress/twbt/default.nix
+++ b/pkgs/games/dwarf-fortress/twbt/default.nix
@@ -42,9 +42,10 @@ let
       prerelease = false;
     };
     "0.47.04" = {
-      twbtRelease = "6.61";
-      sha256 = "07bqy9rkd64h033sxdpigp5zq4xrr0xd36wdr1b21g649mv8j6yw";
-      prerelease = false;
+      twbtRelease = "6.xx";
+      dfhackRelease = "0.47.04-r2";
+      sha256 = "092dgp8fh1j4nqr9wbzn89ib1nhscclr8m91lfxsvg0mgn7j8xlv";
+      prerelease = true;
     };
   };
 
@@ -58,7 +59,11 @@ stdenvNoCC.mkDerivation rec {
   version = release.twbtRelease;
 
   src = fetchurl {
-    url = "https://github.com/mifki/df-twbt/releases/download/v${version}/twbt-${version}-linux.zip";
+    url =
+      if version == "6.xx" then
+        "https://github.com/thurin/df-twbt/releases/download/${release.dfhackRelease}/twbt-${version}-linux64-${release.dfhackRelease}.zip"
+      else
+        "https://github.com/mifki/df-twbt/releases/download/v${version}/twbt-${version}-linux.zip";
     sha256 = release.sha256;
   };
 
diff --git a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in
index 054935af012..b041067d89e 100644
--- a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in
+++ b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in
@@ -1,6 +1,6 @@
 shopt -s extglob
 
-[ -z "$DF_DIR" ] && DF_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/df_linux"
+[ -z "$DF_DIR" ] && export DF_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/df_linux"
 env_dir="@env@"
 exe="$env_dir/@exe@"
 
diff --git a/pkgs/games/eidolon/default.nix b/pkgs/games/eidolon/default.nix
index 5461304d334..e982c95c4d6 100644
--- a/pkgs/games/eidolon/default.nix
+++ b/pkgs/games/eidolon/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
     description = "A single TUI-based registry for drm-free, wine and steam games on linux, accessed through a rofi launch menu";
     homepage = "https://github.com/nicohman/eidolon";
     license = licenses.gpl3;
-    maintainers = [ maintainers."0x4A6F" ];
+    maintainers = with maintainers; [ _0x4A6F ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/games/empty-epsilon/default.nix b/pkgs/games/empty-epsilon/default.nix
index 73d42c65008..098ed35406f 100644
--- a/pkgs/games/empty-epsilon/default.nix
+++ b/pkgs/games/empty-epsilon/default.nix
@@ -3,8 +3,8 @@
 let
 
   major = "2020";
-  minor = "04";
-  patch = "09";
+  minor = "08";
+  patch = "07";
 
   version = "${major}.${minor}.${patch}";
 
@@ -16,7 +16,7 @@ let
       owner = "daid";
       repo = "SeriousProton";
       rev = "EE-${version}";
-      sha256 = "0blqsii8pgxajargd1idry2zakhnvl7j309yjmddarpvafg73blj";
+      sha256 = "1mfizhmwh6xgb5n34l3wrbxm21f7gsvsyacsmnxw9rkz0ya7ch30";
     };
 
     nativeBuildInputs = [ cmake ];
@@ -42,7 +42,7 @@ stdenv.mkDerivation {
     owner = "daid";
     repo = "EmptyEpsilon";
     rev = "EE-${version}";
-    sha256 = "1hdni8m6m7bgx11scqqqzhcjrmrl0jsxb6cr6rvjbqnahzi23slr";
+    sha256 = "0p41wx9yk09xjmfkjpdgi3b2999ps2am3xqwd866q11f6ci7viv5";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/games/endgame-singularity/default.nix b/pkgs/games/endgame-singularity/default.nix
index 46f21629ca3..4e855dbd053 100644
--- a/pkgs/games/endgame-singularity/default.nix
+++ b/pkgs/games/endgame-singularity/default.nix
@@ -1,46 +1,38 @@
-{ stdenv, fetchurl, unzip, python2 }:
+{ stdenv
+, fetchurl
+, fetchFromGitHub
+, unzip
+, python3
+, enableDefaultMusicPack ? true
+}:
 
-python2.pkgs.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "endgame-singularity";
-  version = "0.30c";
-  format = "other";
+  version = "1.00";
 
   srcs = [
-    (fetchurl {
-      url = "http://www.emhsoft.com/singularity/singularity-${version}-src.tar.gz";
-      sha256 = "13zjhf67gmla67nkfpxb01rxs8j9n4hs0s4n9lnnq4zgb709yxgl";
+    (fetchFromGitHub {
+      owner = "singularity";
+      repo = "singularity";
+      rev = "v${version}";
+      sha256 = "0ndrnxwii8lag6vrjpwpf5n36hhv223bb46d431l9gsigbizv0hl";
     })
-    (fetchurl {
+  ] ++ stdenv.lib.optional enableDefaultMusicPack (
+    fetchurl {
       url = "http://www.emhsoft.com/singularity/endgame-singularity-music-007.zip";
       sha256 = "0vf2qaf66jh56728pq1zbnw50yckjz6pf6c6qw6dl7vk60kkqnpb";
-    })
-  ];
-  sourceRoot = ".";
+    }
+  );
+  sourceRoot = "source";
 
   nativeBuildInputs = [ unzip ]; # The music is zipped
-  propagatedBuildInputs = with python2.pkgs; [ pygame numpy ];
-
-  # This is not an error: it needs both compilation rounds
-  buildPhase = ''
-    ${python2.interpreter} -m compileall "singularity-${version}"
-    ${python2.interpreter} -O -m compileall "singularity-${version}"
-  '';
-
-  installPhase = ''
-    install -Dm755 "singularity-${version}/singularity.py"  "$out/share/singularity.py"
-    install -Dm644 "singularity-${version}/singularity.pyo" "$out/share/singularity.pyo"
-    install -Dm644 "singularity-${version}/singularity.pyc" "$out/share/singularity.pyc"
-    cp -R "singularity-${version}/code" "singularity-${version}/data" "$out/share/"
-    cp -R "endgame-singularity-music-007" "$out/share/music"
-  '';
+  propagatedBuildInputs = with python3.pkgs; [ pygame numpy polib ];
 
-  # Tell it where to find python libraries
-  # Also cd to the same directory as the code, since it uses relative paths
-  postFixup = ''
-    makeWrapper "${python2.interpreter}" "$out/bin/endgame-singularity" \
-          --set PYTHONPATH "$PYTHONPATH" \
-          --run "cd \"$out/share\"" \
-          --add-flags "$out/share/singularity.py"
+  # Add the music
+  postInstall = stdenv.lib.optionalString enableDefaultMusicPack ''
+    cp -R "../endgame-singularity-music-007" \
+          "$(echo $out/lib/python*/site-packages/singularity)/music"
+          # ↑ we cannot glob on [...]/music, it doesn't exist yet
   '';
 
   meta = {
diff --git a/pkgs/games/exult/arch.patch b/pkgs/games/exult/arch.patch
deleted file mode 100644
index 70de34184a2..00000000000
--- a/pkgs/games/exult/arch.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-diff -aur exult-1.4.9rc1.orig/desktop/exult.desktop exult-1.4.9rc1/desktop/exult.desktop
---- exult-1.4.9rc1.orig/desktop/exult.desktop	2008-07-11 05:41:06.000000000 +0600
-+++ exult-1.4.9rc1/desktop/exult.desktop	2012-05-19 13:15:30.616084585 +0600
-@@ -1,9 +1,8 @@
- [Desktop Entry]
--Encoding=UTF-8
- Name=Exult
- Comment=Exult Ultima 7 Engine
- Exec=exult
--Icon=exult.png
-+Icon=exult
- Terminal=false
- Type=Application
--Categories=Application;Game;RolePlaying;
-+Categories=Game;RolePlaying;
-diff -aur exult-1.4.9rc1.orig/files/databuf.h exult-1.4.9rc1/files/databuf.h
---- exult-1.4.9rc1.orig/files/databuf.h	2010-03-10 09:07:05.000000000 +0500
-+++ exult-1.4.9rc1/files/databuf.h	2012-05-19 12:50:16.856076030 +0600
-@@ -18,6 +18,7 @@
- #define DATA_H
- 
- #include <cstdio>
-+#include <cstddef>
- #include <cstring>
- #include <cassert>
- #include <fstream>
-diff -aur exult-1.4.9rc1.orig/files/U7obj.h exult-1.4.9rc1/files/U7obj.h
---- exult-1.4.9rc1.orig/files/U7obj.h	2010-02-25 07:52:07.000000000 +0500
-+++ exult-1.4.9rc1/files/U7obj.h	2012-05-19 12:50:35.916076137 +0600
-@@ -26,6 +26,7 @@
- #include <string>
- #include <vector>
- #include <cstring>
-+#include <cstddef>
- #include "common_types.h"
- #include "utils.h"
- 
-diff -aur exult-1.4.9rc1.orig/imagewin/manip.h exult-1.4.9rc1/imagewin/manip.h
---- exult-1.4.9rc1.orig/imagewin/manip.h	2010-08-29 20:26:00.000000000 +0600
-+++ exult-1.4.9rc1/imagewin/manip.h	2012-05-19 13:02:45.159413596 +0600
-@@ -319,7 +319,7 @@
- 	static uintD copy(uintS src)
- 	{
- 		unsigned int r, g, b;
--		split_source(src,r,g,b);
-+		ManipBaseSrc<color_s,color_d>::split_source(src,r,g,b);
- 		return ManipBaseDest<color_d>::rgb(r,g,b);
- 	}
- 	static void copy(uintD& dest, uintS src)
-diff -aur exult-1.4.9rc1.orig/istring.h exult-1.4.9rc1/istring.h
---- exult-1.4.9rc1.orig/istring.h	2005-06-07 15:55:39.000000000 +0600
-+++ exult-1.4.9rc1/istring.h	2012-05-19 13:01:14.886079750 +0600
-@@ -162,19 +162,19 @@
- 
- 	_Myt& operator+=(const _Myt& _Right)
- 		{	// append _Right
--		append(_Right);
-+		this->append(_Right);
- 		return (*this);
- 		}
- 
- 	_Myt& operator+=(const _Elem *_Ptr)
- 		{	// append [_Ptr, <null>)
--		append(_Ptr);
-+		this->append(_Ptr);
- 		return (*this);
- 		}
- 
- 	_Myt& operator+=(_Elem _Ch)
- 		{	// append 1 * _Ch
--		append(static_cast<size_type>(1), _Ch);
-+		this->append(static_cast<size_type>(1), _Ch);
- 		return (*this);
- 		}
- 
-diff -aur exult-1.4.9rc1.orig/shapes/pngio.cc exult-1.4.9rc1/shapes/pngio.cc
---- exult-1.4.9rc1.orig/shapes/pngio.cc	2010-02-15 18:48:11.000000000 -0200
-+++ exult-1.4.9rc1/shapes/pngio.cc	2013-09-22 20:56:37.809763588 -0300
-@@ -26,6 +26,7 @@
- #ifdef HAVE_CONFIG_H
- #  include <config.h>
- #endif
-+#include <string.h>
- 
- #ifdef HAVE_PNG_H
- 
-@@ -79,7 +80,7 @@
- 		}
- 					// Allocate info. structure.
- 	png_infop info = png_create_info_struct(png);
--	if (setjmp(png->jmpbuf))	// Handle errors.
-+	if (setjmp(png_jmpbuf(png)))	// Handle errors.
- 		{
- 		png_destroy_read_struct(&png, &info, 0);
- 		fclose(fp);
-@@ -208,7 +209,7 @@
- 		}
- 					// Allocate info. structure.
- 	png_infop info = png_create_info_struct(png);
--	if (setjmp(png->jmpbuf))	// Handle errors.
-+	if (setjmp(png_jmpbuf(png)))	// Handle errors.
- 		{
- 		png_destroy_write_struct(&png, &info);
- 		fclose(fp);
-@@ -306,7 +307,7 @@
- 		}
- 					// Allocate info. structure.
- 	png_infop info = png_create_info_struct(png);
--	if (setjmp(png->jmpbuf))	// Handle errors.
-+	if (setjmp(png_jmpbuf(png)))	// Handle errors.
- 		{
- 		png_destroy_read_struct(&png, &info, 0);
- 		fclose(fp);
-@@ -395,7 +396,7 @@
- 		}
- 					// Allocate info. structure.
- 	png_infop info = png_create_info_struct(png);
--	if (setjmp(png->jmpbuf))	// Handle errors.
-+	if (setjmp(png_jmpbuf(png)))	// Handle errors.
- 		{
- 		png_destroy_write_struct(&png, &info);
- 		fclose(fp);
-
diff --git a/pkgs/games/exult/default.nix b/pkgs/games/exult/default.nix
index e735c9c5817..adbf4dd0702 100644
--- a/pkgs/games/exult/default.nix
+++ b/pkgs/games/exult/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, SDL, libogg, libvorbis, zlib, unzip }:
+{ stdenv, fetchurl, pkgconfig, SDL2, libogg, libvorbis, zlib, unzip }:
 
 let
 
@@ -12,27 +12,20 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "exult-1.4.9rc1";
+  name = "exult-1.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/exult/${name}.tar.gz";
-    sha256 = "0a03a2l3ji6h48n106d4w55l8v6lni1axniafnvvv5c5n3nz5bgd";
+    sha256 = "1dm27qkxj30567zb70q4acddsizn0xyi3z87hg7lysxdkyv49s3s";
   };
 
   configureFlags = [ "--disable-tools" ];
 
-  patches =
-    [ # Arch Linux patch set.
-      ./arch.patch
-    ];
-
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ SDL libogg libvorbis zlib unzip ];
+  buildInputs = [ SDL2 libogg libvorbis zlib unzip ];
 
   enableParallelBuilding = true;
 
-  makeFlags = [ "DESTDIR=$(out)" ];
-
   NIX_LDFLAGS = "-lX11";
 
   postInstall =
diff --git a/pkgs/games/factorio/default.nix b/pkgs/games/factorio/default.nix
index 79e507e13a8..0226acf1604 100644
--- a/pkgs/games/factorio/default.nix
+++ b/pkgs/games/factorio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, makeWrapper
+{ stdenv, fetchurl, makeWrapper, makeDesktopItem
 , alsaLib, libpulseaudio, libX11, libXcursor, libXinerama, libXrandr, libXi, libGL
 , libSM, libICE, libXext, factorio-utils
 , releaseType
@@ -45,6 +45,16 @@ let
     Note the ultimate "_" is replaced with "-" in the --name arg!
   '';
 
+  desktopItem = makeDesktopItem {
+    name = "factorio";
+    desktopName = "Factorio";
+    comment = "A game in which you build and maintain factories.";
+    exec = "factorio";
+    icon = "factorio";
+    type = "Application";
+    categories = "Game";
+  };
+
   branch = if experimental then "experimental" else "stable";
 
   # NB `experimental` directs us to take the latest build, regardless of its branch;
@@ -52,15 +62,15 @@ let
   binDists = {
     x86_64-linux = let bdist = bdistForArch { inUrl = "linux64"; inTar = "x64"; }; in {
       alpha = {
-        stable        = bdist { sha256 = "1fg2wnia6anzya4m53jf2xqwwspvwskz3awdb3j0v3fzijps94wc"; version = "0.17.79"; withAuth = true; };
-        experimental  = bdist { sha256 = "1idhq836xk1qvhlval28rskqkw06x8hh0izfw9vsf06xym2knkyf"; version = "0.18.34"; withAuth = true; };
+        stable        = bdist { sha256 = "0zixscff0svpb0yg8nzczp2z4filqqxi1k0z0nrpzn2hhzhf1464"; version = "1.0.0"; withAuth = true; };
+        experimental  = bdist { sha256 = "0zixscff0svpb0yg8nzczp2z4filqqxi1k0z0nrpzn2hhzhf1464"; version = "1.0.0"; withAuth = true; };
       };
       headless = {
-        stable        = bdist { sha256 = "1pr39nm23fj83jy272798gbl9003rgi4vgsi33f2iw3dk3x15kls"; version = "0.17.79"; };
-        experimental  = bdist { sha256 = "05kvb8al7x0as62q6bwk89lmvnjdvsmcm3ahgghl5zzz38rrzbwd"; version = "0.18.34"; };
+        stable        = bdist { sha256 = "0r0lplns8nxna2viv8qyx9mp4cckdvx6k20w2g2fwnj3jjmf3nc1"; version = "1.0.0"; };
+        experimental  = bdist { sha256 = "0r0lplns8nxna2viv8qyx9mp4cckdvx6k20w2g2fwnj3jjmf3nc1"; version = "1.0.0"; };
       };
       demo = {
-        stable        = bdist { sha256 = "07qknasaqvzl9vy1fglm7xmdi7ynhmslrb0a209fhbfs0s7qqlgi"; version = "0.17.79"; };
+        stable        = bdist { sha256 = "0h9cqbp143w47zcl4qg4skns4cngq0k40s5jwbk0wi5asjz8whqn"; version = "1.0.0"; };
       };
     };
     i686-linux = let bdist = bdistForArch { inUrl = "linux32"; inTar = "i386"; }; in {
@@ -224,6 +234,11 @@ let
         ${updateConfigSh}
         EOF
         ) $out/share/factorio/update-config.sh
+
+        mkdir -p $out/share/icons/hicolor/{64x64,128x128}/apps
+        cp -a data/core/graphics/factorio-icon.png $out/share/icons/hicolor/64x64/apps/factorio.png
+        cp -a data/core/graphics/factorio-icon@2x.png $out/share/icons/hicolor/128x128/apps/factorio.png
+        ln -s ${desktopItem}/share/applications $out/share/
       '';
     };
     alpha = demo // {
diff --git a/pkgs/games/frotz/default.nix b/pkgs/games/frotz/default.nix
index 40b6748693d..800da177a3d 100644
--- a/pkgs/games/frotz/default.nix
+++ b/pkgs/games/frotz/default.nix
@@ -1,25 +1,40 @@
-{ stdenv, fetchFromGitHub, ncurses }:
+{ fetchFromGitLab
+, libao
+, libmodplug
+, libsamplerate
+, libsndfile
+, libvorbis
+, ncurses
+, stdenv }:
 
 stdenv.mkDerivation rec {
-  version = "2.44";
+  version = "2.52";
   pname = "frotz";
 
-  src = fetchFromGitHub {
+  src = fetchFromGitLab {
+    domain = "gitlab.com";
     owner = "DavidGriffith";
     repo = "frotz";
     rev = version;
-    sha256 = "0gjkk4gxzqmxfdirrz2lr0bms6l9fc31vkmlywigkbdlh8wxgypp";
+    sha256 = "11ca1dz31b7s5vxjqncwjwmbbcr2m5v2rxjn49g4gnvwd6mqw48y";
   };
 
-  makeFlags = [ "CC=cc" "PREFIX=$(out)" "CURSES=-lncurses" ];
-
-  buildInputs = [ ncurses ];
+  buildInputs = [ libao libmodplug libsamplerate libsndfile libvorbis ncurses ];
+  preBuild = ''
+    makeFlagsArray+=(
+      CC="cc"
+      CFLAGS="-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600"
+      LDFLAGS="-lncursesw -ltinfo"
+    )
+  '';
+  installFlags = [ "PREFIX=$(out)" ];
 
   meta = with stdenv.lib; {
-    homepage = "http://frotz.sourceforge.net/";
+    homepage = "https://davidgriffith.gitlab.io/frotz/";
+    changelog = "https://gitlab.com/DavidGriffith/frotz/-/raw/${version}/NEWS";
     description = "A z-machine interpreter for Infocom games and other interactive fiction.";
     platforms = platforms.unix;
-    maintainers = [ maintainers.nicknovitski ];
+    maintainers = with maintainers; [ nicknovitski  ddelabru ];
     license = licenses.gpl2;
   };
 }
diff --git a/pkgs/games/gemrb/default.nix b/pkgs/games/gemrb/default.nix
index 4f7d1cb3750..91b841f6c51 100644
--- a/pkgs/games/gemrb/default.nix
+++ b/pkgs/games/gemrb/default.nix
@@ -4,24 +4,27 @@
 
 stdenv.mkDerivation rec {
   pname = "gemrb";
-  version = "0.8.6";
+  version = "0.8.7";
 
   src = fetchFromGitHub {
-    owner  = "gemrb";
-    repo   = "gemrb";
-    rev    = "v${version}";
-    sha256 = "0vsr3fsqmv9b7s5l0cwhpq2pf7ah2wvgmcn9y8asj6w8hprp17d4";
+    owner = "gemrb";
+    repo = "gemrb";
+    rev = "v${version}";
+    sha256 = "14j9mhrbi4gnrbv25nlsvcxzkylijzrnwbqqnrg7pr452lb3srpb";
   };
 
-  # TODO: make libpng, libvorbis, sdl_mixer, freetype, vlc, glew (and other gl reqs) optional
+  # 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 ];
 
   nativeBuildInputs = [ cmake ];
 
-  enableParallelBuilding = true;
-
+  # TODO: add proper OpenGL support. We are currently (0.8.7) getting a shader
+  # error on execution when enabled.
   cmakeFlags = [
     "-DLAYOUT=opt"
+    # "-DOPENGL_BACKEND=GLES"
+    # "-DOpenGL_GL_PREFERENCE=GLVND"
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/games/gnome-hexgl/default.nix b/pkgs/games/gnome-hexgl/default.nix
index 6212c1bbec1..cfa9a0b81d0 100644
--- a/pkgs/games/gnome-hexgl/default.nix
+++ b/pkgs/games/gnome-hexgl/default.nix
@@ -2,7 +2,7 @@
 , fetchFromGitHub
 , ninja
 , meson
-, pkgconfig
+, pkg-config
 , gthree
 , gsound
 , epoxy
@@ -11,19 +11,19 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-hexgl";
-  version = "0.2.0";
+  version = "unstable-2020-07-24";
 
   src = fetchFromGitHub {
     owner = "alexlarsson";
     repo = "gnome-hexgl";
-    rev = version;
-    sha256 = "08iy2iciscd2wbhh6v4cpghx8r94v1ffbgla9yb3bcsdhlag0iw4";
+    rev = "f47a351055a235730795341dcd6b2397cc4bfa0c";
+    sha256 = "yZWGymaSUfnCP8VAEdDH64w0muSnRK/XPi1/IqTrE4k=";
   };
 
   nativeBuildInputs = [
     ninja
     meson
-    pkgconfig
+    pkg-config
   ];
 
   buildInputs = [
diff --git a/pkgs/games/gzdoom/default.nix b/pkgs/games/gzdoom/default.nix
index e6f27eedbb9..fdbdda2d313 100644
--- a/pkgs/games/gzdoom/default.nix
+++ b/pkgs/games/gzdoom/default.nix
@@ -1,55 +1,85 @@
-{ stdenv, fetchFromGitHub, cmake, makeWrapper
-, openal, fluidsynth_1, soundfont-fluid, libGL, SDL2
-, bzip2, zlib, libjpeg, libsndfile, mpg123, game-music-emu }:
+{ stdenv, fetchFromGitHub, cmake, makeWrapper, openal, fluidsynth_1
+, soundfont-fluid, libGL, SDL2, bzip2, zlib, libjpeg, libsndfile, mpg123
+, game-music-emu, pkgconfig }:
 
-stdenv.mkDerivation rec {
-  pname = "gzdoom";
-  version = "4.3.3";
-
-  src = fetchFromGitHub {
+let
+  zmusic-src = fetchFromGitHub {
     owner = "coelckers";
-    repo = "gzdoom";
-    rev = "g${version}";
-    sha256 = "1c4vhnvvwy1rs8xm01kqd486h5xsiccwkf95fjx7912zr49yalks";
+    repo = "zmusic";
+    rev = "2d0ea861174f9e2031400ab29f5bcc8425521cc6";
+    sha256 = "1ac7lhbzwfr0fsyv7n70hvb8imzngxn1qyanmv9j26j0h90hhl8a";
   };
+  zmusic = stdenv.mkDerivation {
+    pname = "zmusic";
+    version = "1.1.0";
+
+    src = zmusic-src;
+
+    nativeBuildInputs = [ cmake pkgconfig ];
+
+    preConfigure = ''
+      sed -i \
+        -e "s@/usr/share/sounds/sf2/@${soundfont-fluid}/share/soundfonts/@g" \
+        -e "s@FluidR3_GM.sf2@FluidR3_GM2-2.sf2@g" \
+        source/mididevices/music_fluidsynth_mididevice.cpp
+    '';
 
-  nativeBuildInputs = [ cmake makeWrapper ];
-  buildInputs = [
-    SDL2 libGL openal fluidsynth_1 bzip2 zlib libjpeg libsndfile mpg123
-    game-music-emu
-  ];
-
-  enableParallelBuilding = true;
-
-  NIX_CFLAGS_LINK = "-lopenal -lfluidsynth";
-
-  preConfigure = ''
-    sed -i \
-      -e "s@/usr/share/sounds/sf2/@${soundfont-fluid}/share/soundfonts/@g" \
-      -e "s@FluidR3_GM.sf2@FluidR3_GM2-2.sf2@g" \
-      libraries/zmusic/mididevices/music_fluidsynth_mididevice.cpp
-  '';
-
-  installPhase = ''
-    install -Dm755 gzdoom "$out/lib/gzdoom/gzdoom"
-    for i in *.pk3; do
-      install -Dm644 "$i" "$out/lib/gzdoom/$i"
-    done
-    for i in fm_banks/*; do
-      install -Dm644 "$i" "$out/lib/gzdoom/$i"
-    done
-    for i in soundfonts/*; do
-      install -Dm644 "$i" "$out/lib/gzdoom/$i"
-    done
-    mkdir $out/bin
-    makeWrapper $out/lib/gzdoom/gzdoom $out/bin/gzdoom
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/coelckers/gzdoom";
-    description = "A Doom source port based on ZDoom. It features an OpenGL renderer and lots of new features";
-    license = licenses.gpl3;
-    platforms = ["x86_64-linux"];
-    maintainers = with maintainers; [ lassulus ];
   };
-}
+
+  gzdoom = stdenv.mkDerivation rec {
+    pname = "gzdoom";
+    version = "4.4.2";
+
+    src = fetchFromGitHub {
+      owner = "coelckers";
+      repo = "gzdoom";
+      rev = "g${version}";
+      sha256 = "1xkkmbsdv64wyb9r2fv5mwyqw0bjryk528jghdrh47pndmjs9a38";
+      fetchSubmodules = true;
+    };
+
+    nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
+    buildInputs = [
+      SDL2
+      libGL
+      openal
+      fluidsynth_1
+      bzip2
+      zlib
+      libjpeg
+      libsndfile
+      mpg123
+      game-music-emu
+      zmusic
+    ];
+
+    enableParallelBuilding = true;
+
+    NIX_CFLAGS_LINK = "-lopenal -lfluidsynth";
+
+    installPhase = ''
+      install -Dm755 gzdoom "$out/lib/gzdoom/gzdoom"
+      for i in *.pk3; do
+        install -Dm644 "$i" "$out/lib/gzdoom/$i"
+      done
+      for i in fm_banks/*; do
+        install -Dm644 "$i" "$out/lib/gzdoom/$i"
+      done
+      for i in soundfonts/*; do
+        install -Dm644 "$i" "$out/lib/gzdoom/$i"
+      done
+      mkdir $out/bin
+      makeWrapper $out/lib/gzdoom/gzdoom $out/bin/gzdoom
+    '';
+
+    meta = with stdenv.lib; {
+      homepage = "https://github.com/coelckers/gzdoom";
+      description =
+        "A Doom source port based on ZDoom. It features an OpenGL renderer and lots of new features";
+      license = licenses.gpl3;
+      platforms = [ "x86_64-linux" ];
+      maintainers = with maintainers; [ lassulus ];
+    };
+  };
+
+in gzdoom
diff --git a/pkgs/games/hedgewars/default.nix b/pkgs/games/hedgewars/default.nix
index 00df6f33821..f31a44e97c0 100644
--- a/pkgs/games/hedgewars/default.nix
+++ b/pkgs/games/hedgewars/default.nix
@@ -2,6 +2,7 @@
 , lib, fetchurl, cmake, pkgconfig, lua5_1, SDL2, SDL2_mixer
 , zlib, libpng, libGL, libGLU, physfs
 , qtbase, qttools
+, llvm
 , withServer ? true
 }:
 
@@ -27,6 +28,7 @@ mkDerivation rec {
   buildInputs = [
     SDL2_ttf SDL2_net SDL2 SDL2_mixer SDL2_image
     fpc lua5_1
+    llvm # hard-requirement on aarch64, for some reason not strictly necessary on x86-64
     ffmpeg_3 freeglut physfs
     qtbase
   ] ++ lib.optional withServer ghc;
@@ -34,6 +36,10 @@ mkDerivation rec {
   postPatch = ''
     substituteInPlace gameServer/CMakeLists.txt \
       --replace mask evaluate
+
+    # compile with fpc >= 3.2.0
+    # https://github.com/archlinux/svntogit-community/blob/75a1b3900fb3dd553d5114bbc8474d85fd6abb02/trunk/PKGBUILD#L26
+    sed -i 's/procedure ShiftWorld(Dir: LongInt); inline;/procedure ShiftWorld(Dir: LongInt);/' hedgewars/uWorld.pas
   '';
 
   cmakeFlags = [
@@ -42,7 +48,7 @@ mkDerivation rec {
   ];
 
 
-  # hslogger brings network-3 and network-bsd which conflict with 
+  # hslogger brings network-3 and network-bsd which conflict with
   # network-2.6.3.1
   preConfigure = ''
     substituteInPlace gameServer/CMakeLists.txt \
@@ -97,6 +103,5 @@ mkDerivation rec {
        all movement on the battlefield has ceased).'';
     maintainers = with maintainers; [ kragniz fpletz ];
     inherit (ghc.meta) platforms;
-    hydraPlatforms = [];
   };
 }
diff --git a/pkgs/games/hyperrogue/default.nix b/pkgs/games/hyperrogue/default.nix
index 1ef0fd147d8..32882f16894 100644
--- a/pkgs/games/hyperrogue/default.nix
+++ b/pkgs/games/hyperrogue/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hyperrogue";
-  version = "11.3l";
+  version = "11.3o";
 
   src = fetchFromGitHub {
     owner = "zenorogue";
     repo = "hyperrogue";
     rev = "v${version}";
-    sha256 = "0fniyaf9mgg99s03wbdc36zg909kshpdfk9pn8pkai0x99lghkwb";
+    sha256 = "0bijgbqpc867pq8lbwwvcnc713gm51mmz625xb5br0q2qw09nkyh";
   };
 
   CPPFLAGS = "-I${SDL.dev}/include/SDL";
diff --git a/pkgs/games/katago/default.nix b/pkgs/games/katago/default.nix
index fd4303eb2b1..20ad47d3e0a 100644
--- a/pkgs/games/katago/default.nix
+++ b/pkgs/games/katago/default.nix
@@ -13,52 +13,46 @@
 , opencl-headers ? null
 , ocl-icd ? null
 , gperftools ? null
-, cudaSupport ? false
-, useTcmalloc ? true}:
+, eigen ? null
+, enableAVX2 ? false
+, enableBigBoards ? false
+, enableCuda ? false
+, enableGPU ? true
+, enableTcmalloc ? true}:
 
-assert cudaSupport -> (
-  libGL_driver != null && 
+assert !enableGPU -> (
+  eigen != null &&
+  !enableCuda);
+
+assert enableCuda -> (
+  libGL_driver != null &&
   cudatoolkit != null &&
   cudnn != null);
 
-assert !cudaSupport -> (
-  opencl-headers != null &&
-  ocl-icd != null);
+assert !enableCuda -> (
+  !enableGPU || (
+    opencl-headers != null &&
+    ocl-icd != null));
 
-assert useTcmalloc -> (
+assert enableTcmalloc -> (
   gperftools != null);
 
 let
-  env = if cudaSupport 
+  env = if enableCuda
     then gcc8Stdenv
     else stdenv;
 
 in env.mkDerivation rec {
   pname = "katago";
-  version = "1.4.4";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "lightvector";
     repo = "katago";
     rev = "v${version}";
-    sha256 = "14xs2bm8sky9cdsjdahjqs82q6blzcw05f5d9r1h171dm1hcx566";
+    sha256 = "030ff9prnvpadgcb4x4hx6b6ggg10bwqcj8vd8nwrdz9sjq67yf7";
   };
 
-  # To workaround CMake 3.17.0's new buggy behavior wrt CUDA Compiler testing
-  # See the following tracking issues:
-  # KataGo:
-  #  - Issue #225: https://github.com/lightvector/KataGo/issues/225
-  #  - PR #227: https://github.com/lightvector/KataGo/pull/227
-  # CMake:
-  #  - Issue #20708: https://gitlab.kitware.com/cmake/cmake/-/issues/20708
-  patches = [
-    (fetchpatch {
-      name = "227.patch";
-      url = "https://patch-diff.githubusercontent.com/raw/lightvector/KataGo/pull/227.patch";
-      sha256 = "03f1vmdjhb79mpj95sijcwla8acy32clrjgrn4xqw5h90zdgj511";
-    })
-  ];
-
   nativeBuildInputs = [
     cmake
     makeWrapper
@@ -67,36 +61,44 @@ in env.mkDerivation rec {
   buildInputs = [
     libzip
     boost
-  ] ++ lib.optionals cudaSupport [
+  ] ++ lib.optionals (!enableGPU) [
+    eigen
+  ] ++ lib.optionals (enableGPU && enableCuda) [
     cudnn
     libGL_driver
-  ] ++ lib.optionals (!cudaSupport) [
+  ] ++ lib.optionals (enableGPU && !enableCuda) [
     opencl-headers
     ocl-icd
-  ] ++ lib.optionals useTcmalloc [
+  ] ++ lib.optionals enableTcmalloc [
     gperftools
   ];
 
   cmakeFlags = [
     "-DNO_GIT_REVISION=ON"
-  ] ++ lib.optionals cudaSupport [
+  ] ++ lib.optionals (!enableGPU) [
+    "-DUSE_BACKEND=EIGEN"
+  ] ++ lib.optionals enableAVX2 [
+    "-DUSE_AVX2=ON"
+  ] ++ lib.optionals (enableGPU && enableCuda) [
     "-DUSE_BACKEND=CUDA"
-  ] ++ lib.optionals (!cudaSupport) [
+  ] ++ lib.optionals (enableGPU && !enableCuda) [
     "-DUSE_BACKEND=OPENCL"
-  ] ++ lib.optionals useTcmalloc [
+  ] ++ lib.optionals enableTcmalloc [
     "-DUSE_TCMALLOC=ON"
+  ] ++ lib.optionals enableBigBoards [
+    "-DUSE_BIGGER_BOARDS_EXPENSIVE=ON"
   ];
 
   preConfigure = ''
     cd cpp/
-  '' + lib.optionalString cudaSupport ''
+  '' + lib.optionalString enableCuda ''
     export CUDA_PATH="${cudatoolkit}"
     export EXTRA_LDFLAGS="-L/run/opengl-driver/lib"
   '';
 
   installPhase = ''
     mkdir -p $out/bin; cp katago $out/bin;
-  '' + lib.optionalString cudaSupport ''
+  '' + lib.optionalString enableCuda ''
     wrapProgram $out/bin/katago \
       --prefix LD_LIBRARY_PATH : "/run/opengl-driver/lib"
   '';
diff --git a/pkgs/games/klavaro/default.nix b/pkgs/games/klavaro/default.nix
index 557f75580ca..ac2c787d3ff 100644
--- a/pkgs/games/klavaro/default.nix
+++ b/pkgs/games/klavaro/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "klavaro";
-  version = "3.10";
+  version = "3.11";
 
   src = fetchurl {
     url = "mirror://sourceforge/klavaro/${pname}-${version}.tar.bz2";
-    sha256 = "0jnzdrndiq6m0bwgid977z5ghp4q61clwdlzfpx4fd2ml5x3iq95";
+    sha256 = "1rkxaqb62w4mv86fcnmr32lq6y0h4hh92wmsy5ddb9a8jnzx6r7w";
   };
 
   nativeBuildInputs = [ intltool makeWrapper pkgconfig ];
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Free touch typing tutor program";
     homepage = "http://klavaro.sourceforge.net/";
+    changelog = "https://sourceforge.net/p/klavaro/code/HEAD/tree/trunk/ChangeLog";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ mimame davidak ];
diff --git a/pkgs/games/left4gore/default.nix b/pkgs/games/left4gore/default.nix
new file mode 100644
index 00000000000..597f7da2b3d
--- /dev/null
+++ b/pkgs/games/left4gore/default.nix
@@ -0,0 +1,48 @@
+{ stdenvNoCC, lib, fetchurl, buildFHSUserEnv }:
+
+let
+  version = "2.3";
+
+  # Unwrapped package, for putting into the FHS env
+  left4gore-unwrapped = stdenvNoCC.mkDerivation {
+    pname = "left4gore-unwrapped";
+    inherit version;
+
+    src = fetchurl {
+      url = "http://www.left4gore.com/dist/left4gore-${version}-linux.tar.gz";
+      sha256 = "1n57nh32ybn6kirn8djh0nsjx6m84c0jfi1x8r4w2qr0qky3z7p0";
+    };
+
+    installPhase = ''
+      mkdir -p $out/bin
+      cp left4gore $out/bin
+    '';
+  };
+
+  # FHS env, as patchelf will not work
+  env = buildFHSUserEnv {
+    name = "left4gore-env-${version}";
+    targetPkgs = _: [ left4gore-unwrapped ];
+    runScript = "left4gore";
+  };
+
+in stdenvNoCC.mkDerivation {
+  pname = "left4gore";
+  inherit version;
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    ln -s ${env}/bin/* $out/bin/left4gore
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.left4gore.com";
+    description = "Memory patcher which adds the gore back into Left 4 Dead 2";
+    license = licenses.unfree; # Probably the best choice
+    maintainers = with maintainers; [ das_j ];
+  };
+}
diff --git a/pkgs/games/legendary-gl/default.nix b/pkgs/games/legendary-gl/default.nix
new file mode 100644
index 00000000000..114aa6ab12a
--- /dev/null
+++ b/pkgs/games/legendary-gl/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, fetchFromGitHub
+, buildPythonApplication
+, pythonOlder
+, requests
+}:
+
+buildPythonApplication rec {
+  pname = "legendary-gl"; # Name in pypi
+  version = "0.0.14";
+
+  src = fetchFromGitHub {
+    owner = "derrod";
+    repo = "legendary";
+    rev = version;
+    sha256 = "05r88qi8mmbj07wxcpb3fhbl40qscbq1aqb0mnj9bpmi9gf5zll5";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  disabled = pythonOlder "3.8";
+
+  meta = with lib; {
+    description = "A free and open-source Epic Games Launcher alternative";
+    homepage = "https://github.com/derrod/legendary";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ wchresta ];
+  };
+}
+
diff --git a/pkgs/games/minecraft-server/default.nix b/pkgs/games/minecraft-server/default.nix
index 5ba4b4de2f6..3c2ab9b3fcd 100644
--- a/pkgs/games/minecraft-server/default.nix
+++ b/pkgs/games/minecraft-server/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, jre_headless }:
 stdenv.mkDerivation {
   pname = "minecraft-server";
-  version = "1.16.1";
+  version = "1.16.2";
 
   src = fetchurl {
-    url = "https://launcher.mojang.com/v1/objects/a412fd69db1f81db3f511c1463fd304675244077/server.jar";
+    url = "https://launcher.mojang.com/v1/objects/c5f6fb23c3876461d46ec380421e42b289789530/server.jar";
     # sha1 because that comes from mojang via api
-    sha1 = "a412fd69db1f81db3f511c1463fd304675244077";
+    sha1 = "c5f6fb23c3876461d46ec380421e42b289789530";
   };
 
   preferLocalBuild = true;
diff --git a/pkgs/games/minecraft/default.nix b/pkgs/games/minecraft/default.nix
index 8770ec08b22..9d23515c039 100644
--- a/pkgs/games/minecraft/default.nix
+++ b/pkgs/games/minecraft/default.nix
@@ -87,11 +87,11 @@ in
 stdenv.mkDerivation rec {
   pname = "minecraft-launcher";
 
-  version = "2.1.15166";
+  version = "2.1.16102";
 
   src = fetchurl {
     url = "https://launcher.mojang.com/download/linux/x86_64/minecraft-launcher_${version}.tar.gz";
-    sha256 = "14q41zk370zvzz2jbynhfw11r98l9x49142lqf2izfl42fhv8yhw";
+    sha256 = "17zgxmijk9mq651h7ymkr7h2099cw23kc0r7jyfkdccp60dfd60i";
   };
 
   icon = fetchurl {
diff --git a/pkgs/games/minetest/default.nix b/pkgs/games/minetest/default.nix
index db36b43ea29..f49ec1f4a82 100644
--- a/pkgs/games/minetest/default.nix
+++ b/pkgs/games/minetest/default.nix
@@ -39,7 +39,7 @@ let
     ] ++ optionals buildClient [
       "-DOpenGL_GL_PREFERENCE=GLVND"
     ];
-    
+
     NIX_CFLAGS_COMPILE = "-DluaL_reg=luaL_Reg"; # needed since luajit-2.1.0-beta3
 
     nativeBuildInputs = [ cmake doxygen graphviz ];
@@ -47,7 +47,7 @@ let
     buildInputs = [
       irrlicht luajit jsoncpp gettext freetype sqlite curl bzip2 ncurses
       gmp libspatialindex
-    ] ++ optionals stdenv.isDarwin [ 
+    ] ++ optionals stdenv.isDarwin [
       libiconv OpenGL OpenAL Carbon Cocoa
     ] ++ optionals buildClient [
       libpng libjpeg libGLU libGL openal libogg libvorbis xorg.libX11 libXxf86vm
@@ -76,9 +76,9 @@ let
   };
 
   v5 = {
-    version = "5.2.0";
-    sha256 = "0pj9hkxwc1vzng2khbixi79557sbawf6mqkzl589jciyqa7jqkv1";
-    dataSha256 = "1kjz7x3xiqqnpyrd6339a139pbdxx31c4qpg8pmns410hsm8i358";
+    version = "5.3.0";
+    sha256 = "03ga3j3cg38w4lg4d4qxasmnjdl8n3lbizidrinanvyfdyvznyh6";
+    dataSha256 = "1liciwlh013z5h08ib0psjbwn5wkvlr937ir7kslfk4vly984cjx";
   };
 
 in {
diff --git a/pkgs/games/mnemosyne/default.nix b/pkgs/games/mnemosyne/default.nix
index 44bd396e9fa..4a92b8c1014 100644
--- a/pkgs/games/mnemosyne/default.nix
+++ b/pkgs/games/mnemosyne/default.nix
@@ -5,11 +5,11 @@
 
 python.pkgs.buildPythonApplication rec {
   pname = "mnemosyne";
-  version = "2.7.1";
+  version = "2.7.2";
 
   src = fetchurl {
     url    = "mirror://sourceforge/project/mnemosyne-proj/mnemosyne/mnemosyne-${version}/Mnemosyne-${version}.tar.gz";
-    sha256 = "0dhvg9cxc6m6kzk75h363h1g0bl80cqz11cijh0zpz9f4w6lnqsq";
+    sha256 = "09yp9zc00xrc9dmjbsscnkb3hsv3yj46sxikc0r6s9cbghn3nypy";
   };
 
   nativeBuildInputs = with python.pkgs; [ pyqtwebengine.wrapQtAppsHook ];
diff --git a/pkgs/games/ninvaders/default.nix b/pkgs/games/ninvaders/default.nix
index 009cb1e548f..26462c1eef5 100644
--- a/pkgs/games/ninvaders/default.nix
+++ b/pkgs/games/ninvaders/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     description = "Space Invaders clone based on ncurses";
     homepage = "http://ninvaders.sourceforge.net/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ maintainers."1000101" ];
+    maintainers = with maintainers; [ _1000101 ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/games/openjk/default.nix b/pkgs/games/openjk/default.nix
index 2d08a1da999..0fe327b308e 100644
--- a/pkgs/games/openjk/default.nix
+++ b/pkgs/games/openjk/default.nix
@@ -21,13 +21,13 @@ let
   };
 in stdenv.mkDerivation {
   pname = "OpenJK";
-  version = "2019-11-29";
+  version = "2020-07-03";
 
   src = fetchFromGitHub {
     owner = "JACoders";
     repo = "OpenJK";
-    rev = "eed60925ad1b0d513d3747264f3bf98615fa4b2a";
-    sha256 = "0b33cr540vz7w7dlagqf3yldmyx9y2pri20j44pd8fxapq4krrmb";
+    rev = "0a336ce4dffe6505e3f754b59732402a1db95752";
+    sha256 = "1xagbz42hi3ivs208mnay2dbgh90pmwwbar2p1yfhj3zl3cghcs8";
   };
 
   dontAddPrefix = true;
diff --git a/pkgs/games/openrct2/default.nix b/pkgs/games/openrct2/default.nix
index b519e0c7e92..45133be461c 100644
--- a/pkgs/games/openrct2/default.nix
+++ b/pkgs/games/openrct2/default.nix
@@ -1,23 +1,23 @@
-{ stdenv, fetchFromGitHub,
-  SDL2, cmake, curl, fontconfig, freetype, icu, jansson, libiconv, libpng,
-  libpthreadstubs, libzip, libGLU, openssl, pkgconfig, speexdsp, zlib
+{ stdenv, fetchFromGitHub
+, SDL2, cmake, curl, duktape, fontconfig, freetype, icu, jansson, libGLU
+, libiconv, libpng, libpthreadstubs, libzip, openssl, pkgconfig, speexdsp, zlib
 }:
 
 let
-  version = "0.2.6";
+  version = "0.3.0";
 
   openrct2-src = fetchFromGitHub {
     owner = "OpenRCT2";
     repo = "OpenRCT2";
     rev = "v${version}";
-    sha256 = "1vikbkg3wh5ngzdfilb6irbh6nqinf138qpdz8wz9izlvl8s36k4";
+    sha256 = "0xs8pnn3lq30iy76pv42hywsrabapcrrkl597dhjafwh1xaxxj91";
   };
 
   objects-src = fetchFromGitHub {
     owner = "OpenRCT2";
     repo = "objects";
-    rev = "v1.0.14";
-    sha256 = "1bqbia5y73v4r0sv5cvi5729jh2ns7cxn557blh715yxswk91590";
+    rev = "v1.0.16";
+    sha256 = "1xz50ghiqj9rm0m6d65j09ich6dlhyj36zah6zvmmzr4kg6svnk5";
   };
 
   title-sequences-src = fetchFromGitHub {
@@ -41,15 +41,16 @@ stdenv.mkDerivation {
   buildInputs = [
     SDL2
     curl
+    duktape
     fontconfig
     freetype
     icu
     jansson
+    libGLU
     libiconv
     libpng
     libpthreadstubs
     libzip
-    libGLU
     openssl
     speexdsp
     zlib
@@ -57,7 +58,7 @@ stdenv.mkDerivation {
 
   postUnpack = ''
     cp -r ${objects-src}         $sourceRoot/data/object
-    cp -r ${title-sequences-src} $sourceRoot/data/title
+    cp -r ${title-sequences-src} $sourceRoot/data/sequence
   '';
 
   cmakeFlags = [
@@ -74,6 +75,6 @@ stdenv.mkDerivation {
     homepage = "https://openrct2.io/";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/pkgs/games/openttd/default.nix b/pkgs/games/openttd/default.nix
index 223f0a6ae8c..bab4e510e7d 100644
--- a/pkgs/games/openttd/default.nix
+++ b/pkgs/games/openttd/default.nix
@@ -29,11 +29,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "openttd";
-  version = "1.10.2";
+  version = "1.10.3";
 
   src = fetchurl {
     url = "https://cdn.openttd.org/openttd-releases/${version}/${pname}-${version}-source.tar.xz";
-    sha256 = "1xdn9rr858nq22a13cpbhcw74bwygf7lw95kvx3wn4zvb795b74k";
+    sha256 = "0fxmfz1mm95a2x0rnzfff9wb8q57w0cvsdd0z7agdcbyakph25n1";
   };
 
   nativeBuildInputs = [ pkgconfig which makeWrapper ];
diff --git a/pkgs/games/openxray/default.nix b/pkgs/games/openxray/default.nix
index 9e38852a02a..fe2e978c4cc 100644
--- a/pkgs/games/openxray/default.nix
+++ b/pkgs/games/openxray/default.nix
@@ -3,13 +3,13 @@
 , pcre, makeWrapper }:
 
 let
-  version = "558";
+  version = "730-july-preview";
 
   src = fetchFromGitHub {
     owner = "OpenXRay";
     repo = "xray-16";
     rev = version;
-    sha256 = "1wnkx9g0ww4f5pljrb0wzs054jzkig1i5hlz1p509rfvnhc50afp";
+    sha256 = "1nish3sbpk0hsag7r4nyx8j6pl9mlgx58v8dhzg2vwj2q32isyb2";
     fetchSubmodules = true;
   };
 
@@ -40,7 +40,6 @@ in stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
   cmakeFlags = [ "-DCMAKE_INCLUDE_PATH=${cryptopp}/include/cryptopp" ];
-  installFlags = [ "DESTDIR=${placeholder "out"}" ];
 
   buildInputs = [
     glew freeimage liblockfile openal cryptopp libtheora SDL2 lzo
@@ -54,11 +53,6 @@ in stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    mv $out/var/empty/* $out
-    install -Dm755 $out/games/xr_3da $out/bin/xr_3da
-    install -Dm644 $src/License.txt $out/share/licenses/openxray/License.txt
-    rm -r $out/var $out/games
-
     # needed because of SDL_LoadObject library loading code
     wrapProgram $out/bin/xr_3da \
       --prefix LD_LIBRARY_PATH : $out/lib
diff --git a/pkgs/games/osu-lazer/bypass-tamper-detection.patch b/pkgs/games/osu-lazer/bypass-tamper-detection.patch
new file mode 100644
index 00000000000..576f83a96c5
--- /dev/null
+++ b/pkgs/games/osu-lazer/bypass-tamper-detection.patch
@@ -0,0 +1,23 @@
+diff --git a/osu.Game/OsuGameBase.cs b/osu.Game/OsuGameBase.cs

+index 98f60d52d..a27ce47ca 100644

+--- a/osu.Game/OsuGameBase.cs

++++ b/osu.Game/OsuGameBase.cs

+@@ -135,17 +135,7 @@ public OsuGameBase()

+         [BackgroundDependencyLoader]

+         private void load()

+         {

+-            try

+-            {

+-                using (var str = File.OpenRead(typeof(OsuGameBase).Assembly.Location))

+-                    VersionHash = str.ComputeMD5Hash();

+-            }

+-            catch

+-            {

+-                // special case for android builds, which can't read DLLs from a packed apk.

+-                // should eventually be handled in a better way.

+-                VersionHash = $"{Version}-{RuntimeInfo.OS}".ComputeMD5Hash();

+-            }

++            VersionHash = "253aa3a3a356a71295bf5b018cd4fda1";

+ 

+             Resources.AddStore(new DllResourceStore(OsuResources.ResourceAssembly));

+ 

diff --git a/pkgs/games/osu-lazer/default.nix b/pkgs/games/osu-lazer/default.nix
new file mode 100644
index 00000000000..2ce6806bcb4
--- /dev/null
+++ b/pkgs/games/osu-lazer/default.nix
@@ -0,0 +1,111 @@
+{ lib, stdenv, fetchFromGitHub, fetchurl, makeWrapper, makeDesktopItem, linkFarmFromDrvs
+, dotnet-sdk, dotnet-netcore, dotnetPackages
+, ffmpeg_4, alsaLib, SDL2, lttng-ust, numactl, alsaPlugins
+}:
+
+let
+  runtimeDeps = [
+    ffmpeg_4 alsaLib SDL2 lttng-ust numactl
+  ];
+
+  # https://docs.microsoft.com/en-us/dotnet/core/rid-catalog#using-rids
+  runtimeId = "linux-x64";
+
+in stdenv.mkDerivation rec {
+  pname = "osu-lazer";
+  version = "2020.903.0";
+
+  src = fetchFromGitHub {
+    owner = "ppy";
+    repo = "osu";
+    rev = version;
+    sha256 = "01apjgi2r8jaihp7sp1y69fmplkiy383zxxdbjn1m797f0ls37ca";
+  };
+
+  patches = [ ./bypass-tamper-detection.patch ];
+  patchFlags = [ "--binary" "-p1" ];
+
+  nativeBuildInputs = [ dotnet-sdk dotnetPackages.Nuget makeWrapper ];
+
+  nugetDeps = linkFarmFromDrvs "${pname}-nuget-deps" (import ./deps.nix {
+    fetchNuGet = { name, version, sha256 }: fetchurl {
+      name = "nuget-${name}-${version}.nupkg";
+      url = "https://www.nuget.org/api/v2/package/${name}/${version}";
+      inherit sha256;
+    };
+  });
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    export DOTNET_CLI_TELEMETRY_OPTOUT=1
+    export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+
+    nuget sources Add -Name nixos -Source "$PWD/nixos"
+    nuget init "$nugetDeps" "$PWD/nixos"
+
+    # FIXME: https://github.com/NuGet/Home/issues/4413
+    mkdir -p $HOME/.nuget/NuGet
+    cp $HOME/.config/NuGet/NuGet.Config $HOME/.nuget/NuGet
+
+    dotnet restore --source nixos osu.Desktop
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    dotnet build osu.Desktop \
+      --no-restore \
+      --configuration Release \
+      -p:Version=${version}
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    dotnet publish osu.Desktop \
+      --no-build \
+      --configuration Release \
+      --no-self-contained \
+      --output $out/lib/osu
+    shopt -s extglob
+    rm -r $out/lib/osu/runtimes/!(${runtimeId})
+
+    makeWrapper $out/lib/osu/osu\! $out/bin/osu\! \
+      --set DOTNET_ROOT "${dotnet-netcore}" \
+      --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}"
+    for i in 16 32 48 64 96 128 256 512 1024; do
+      install -D ./assets/lazer.png $out/share/icons/hicolor/''${i}x$i/apps/osu\!.png
+    done
+    cp -r ${makeDesktopItem {
+      desktopName = "osu!";
+      name = "osu";
+      exec = "osu!";
+      icon = "osu!";
+      comment = meta.description;
+      type = "Application";
+      categories = "Game;";
+    }}/share/applications $out/share
+
+    runHook postInstall
+  '';
+
+  # Strip breaks the executable.
+  dontStrip = true;
+
+  meta = with lib; {
+    description = "Rhythm is just a *click* away";
+    homepage = "https://osu.ppy.sh";
+    license = with licenses; [
+      mit
+      cc-by-nc-40
+      unfreeRedistributable # osu-framework contains libbass.so in repository
+    ];
+    maintainers = with maintainers; [ oxalica ];
+    platforms = [ "x86_64-linux" ];
+  };
+  passthru.updateScript = ./update.sh;
+}
diff --git a/pkgs/games/osu-lazer/deps.nix b/pkgs/games/osu-lazer/deps.nix
new file mode 100644
index 00000000000..6c8aa4bd18f
--- /dev/null
+++ b/pkgs/games/osu-lazer/deps.nix
@@ -0,0 +1,1517 @@
+{ fetchNuGet }: [
+  (fetchNuGet {
+    name = "Dapper";
+    version = "2.0.35";
+    sha256 = "0465i2p5kjj0hmadyw0xrpn43zpc4bnbid9mg561739fyjyjwmfm";
+  })
+  (fetchNuGet {
+    name = "DeltaCompressionDotNet";
+    version = "2.0.0.0";
+    sha256 = "0zhj7m3zaf9wcg51385in9qg1xgkvp8yyzgq3r5k4sagm7y68aqy";
+  })
+  (fetchNuGet {
+    name = "DiffPlex";
+    version = "1.6.3";
+    sha256 = "0yi72afddddz0s8phx855rnjrga7n51bcma10dc91l0ffcwf5xwz";
+  })
+  (fetchNuGet {
+    name = "DiscordRichPresence";
+    version = "1.0.150";
+    sha256 = "0qmbi4sccia3w80q8xfvj3bw62nvz047wq198n2b2aflkf47bq79";
+  })
+  (fetchNuGet {
+    name = "FFmpeg.AutoGen";
+    version = "4.3.0.1";
+    sha256 = "0n6x57mnnvcjnrs8zyvy07h5zm4bcfy9gh4n4bvd9fx5ys4pxkvv";
+  })
+  (fetchNuGet {
+    name = "Humanizer";
+    version = "2.8.26";
+    sha256 = "11kddzyzqpq9gkz0hmrblq494nh86va6wxx6z89xi6w1f4vj15ak";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core";
+    version = "2.2.0";
+    sha256 = "08mzg65y9d3zvq16rsmpapcdan71ggq2mpks6k777h3wlm2sh3p5";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core";
+    version = "2.8.26";
+    sha256 = "1v8xd12yms4qq1md4vh6faxicmqrvahqdd7sdkyzrphab9v44nsm";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.af";
+    version = "2.8.26";
+    sha256 = "0znrq4frlkq1qi20301hlzxa6mdc275fa1i1a1i8ldgk9cjq94k9";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.ar";
+    version = "2.8.26";
+    sha256 = "1hi7mln48p1nmxlgdq725s4cvla9nlkvbmrsql1rfjjlsy8hn6n7";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.az";
+    version = "2.8.26";
+    sha256 = "0av7ycrqwvmikqia3z3qkp9967zilrhayny17zkm0d0mnjq62vs6";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.bg";
+    version = "2.8.26";
+    sha256 = "13j6zk2cmk7a119azxlpjhfwykrzk0vkf5a799fb2fzkvhnj4hkg";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.bn-BD";
+    version = "2.8.26";
+    sha256 = "0h619sksggfi7dnaycz6bj9aiqdgn0d8dpgjgdl73crw52lr70p9";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.cs";
+    version = "2.8.26";
+    sha256 = "11bh3k15388bi5wizaihnwqk7wb4n7q636fqjllwdhjggqrsc3f6";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.da";
+    version = "2.8.26";
+    sha256 = "09b3x3bw3cgby9qvaccnqz2y6d8gl3497dh7q0dk1iznsxbk4x4m";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.de";
+    version = "2.8.26";
+    sha256 = "1pyp2a9my20wlwjjzv563kshl9fpjb2kd4cw41l4wvsz1bsq3l22";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.el";
+    version = "2.8.26";
+    sha256 = "0v3sdcxca4dam1y5yjh9n6v711ys0zdv38hr4kij35s6277ls6lb";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.es";
+    version = "2.8.26";
+    sha256 = "0wh9qvqf80cngwsz2jnrsjpmaax4xa2xp8bbk5xs480kp071z37q";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.fa";
+    version = "2.8.26";
+    sha256 = "00v56ddjfv6sr6w5246gn5z0padwswvnngp8mdl7gjfg5ycmbkl1";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.fi-FI";
+    version = "2.8.26";
+    sha256 = "1pgs0j5ri50a6vhljplhrlc8jj1hrd9ggxkj60d9v5kk9xibzzyd";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.fr";
+    version = "2.8.26";
+    sha256 = "0kkhgy3yn8vfqlx3dhb9m3cazkgfxarknam4macng9y17l7wj83m";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.fr-BE";
+    version = "2.8.26";
+    sha256 = "13spcx07hph366qk073pz63s56nadaac7l4mr4a66gbpqd3814kb";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.he";
+    version = "2.8.26";
+    sha256 = "1ccn82aj3rhrhsa3kvkrmjw0p687icxlfja8ngbh7sby4cszx9bk";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.hr";
+    version = "2.8.26";
+    sha256 = "12ii79bhai3kv7zr3k9k9dh569r6p3m4l4gj25cln2isr4wdi5r9";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.hu";
+    version = "2.8.26";
+    sha256 = "0cibbdxiqhwrjmxlr805mg3l9v0fl2ydx4m50608rkysjq6vxx7y";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.hy";
+    version = "2.8.26";
+    sha256 = "15aikm04f74abm4ak8rvnnkrlcz155gibn1y81pbgsyn7yrh84v3";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.id";
+    version = "2.8.26";
+    sha256 = "1i9gpzdfhmbvrqg858kqz5461sp3sh60g16dmcmyi1ik0qlspijn";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.it";
+    version = "2.8.26";
+    sha256 = "01j7qskmqcxsakbx3bkxcjyzrh6nxi2v6kfzsfb0vf980qqq331l";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.ja";
+    version = "2.8.26";
+    sha256 = "07d19ns4a4pa2k4vdc1af7wj10gaflq1ny4mx6y574afkdi8v6d5";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.lv";
+    version = "2.8.26";
+    sha256 = "1pm64sj65nmngyfa3hjcw67icfmlzr232hmgpnw7306sb7dxmnfv";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.ms-MY";
+    version = "2.8.26";
+    sha256 = "1yx4cc023kc4k14abk2ycmjy6y2xaknaz4zria7xsadf0fabd1jc";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.mt";
+    version = "2.8.26";
+    sha256 = "0iai35pzka9g6c3sgswki06fk6gdnq8kc88wyb4pcciivazz31px";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.nb";
+    version = "2.8.26";
+    sha256 = "0xprhiyjyq6mpha2lrav59n1f48508ddvm9nmdk5sm5k26ff3l90";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.nb-NO";
+    version = "2.8.26";
+    sha256 = "160c98wfh7d2xlvlra4x5rdj4klgcjwcy3gkb4ipg655byn2m1j2";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.nl";
+    version = "2.8.26";
+    sha256 = "067pqm4i1mk83fqqr0bvzrchrvxwdnff18z3djgagclh1i4xqlvk";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.pl";
+    version = "2.8.26";
+    sha256 = "1r1bbqb990war1hiag5f88yxw0k9jiid1ihb4s5bc1lzs3vfsb6x";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.pt";
+    version = "2.8.26";
+    sha256 = "1bik0vjjdzw51yl11ng9gsi3ihz50ibwh1gdhh2vd13jxjzb512p";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.ro";
+    version = "2.8.26";
+    sha256 = "12f2hry6x1p1mgx6g4kpig2jpybx52ibghvhdhjbbfhy32gv8dr0";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.ru";
+    version = "2.8.26";
+    sha256 = "1hri12kwymzvdqcr66l8yiqiw3pmf9fk492z10yqljm576kyshgg";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.sk";
+    version = "2.8.26";
+    sha256 = "07jfgk67axw97b85dn4bwpjwf3swd74j9hdd870qps12xfp98i9j";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.sl";
+    version = "2.8.26";
+    sha256 = "060xbzwb7p9ypbqfklih2zal2rh6h55gq4hv3i6alvlbd3vsx29n";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.sr";
+    version = "2.8.26";
+    sha256 = "0i2c24qmqnhp85b088qlbagxd48hcl0v1ly4m7hfbvx5s7fg8riv";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.sr-Latn";
+    version = "2.8.26";
+    sha256 = "1911a69sqssh9f007vmxbgyj4ym2ym4423xvw6cmbfhjcrhkfpbi";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.sv";
+    version = "2.8.26";
+    sha256 = "056h8n9i18yl78f9ppzn2kkrz2cs46aqv0j5y8xq360zarggh0nm";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.tr";
+    version = "2.8.26";
+    sha256 = "0dk8ga3fpxifxxkz0n68654h65cvrx00hy7q00m5vgvmcp70gxxn";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.uk";
+    version = "2.8.26";
+    sha256 = "0bnj5xqlcqp4n8i04ra78dax4854zbf2jsygvb4lpiayyyaj2bxw";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.uz-Cyrl-UZ";
+    version = "2.8.26";
+    sha256 = "1bbf6mxas6brjw7rjljq5saz6v3ic6zbvm1b3c1jbk0hc0qkd7c8";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.uz-Latn-UZ";
+    version = "2.8.26";
+    sha256 = "1bfgfihpynax30g9kq8kra7c4jxps2ccxsxrs9gls47xbs35cw2f";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.vi";
+    version = "2.8.26";
+    sha256 = "1vm765nvkp6wyfwlcgppimjrk04lkg8lscch3n1i1i5hlqxrs9ch";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.zh-CN";
+    version = "2.8.26";
+    sha256 = "1qyl12rdh4iv1k1qcivcmxxnh8y93ainf22pmch8vvw9yjhs1y7s";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.zh-Hans";
+    version = "2.8.26";
+    sha256 = "1gqv3dyk236wlp5wb7kd4qnyrmp3cy36ycykl7zr91s25cdls5vy";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.zh-Hant";
+    version = "2.8.26";
+    sha256 = "1rhzbiqbx04l3kvzjklix90fxyc6vvmmw0p564ajdiximivs0pbh";
+  })
+  (fetchNuGet {
+    name = "JetBrains.Annotations";
+    version = "2020.1.0";
+    sha256 = "13fqcr6bs4x9rn0mpx110xl5apwh8ds1h0lx208znrm178ywqm8y";
+  })
+  (fetchNuGet {
+    name = "ManagedBass";
+    version = "2.0.4";
+    sha256 = "13hwd0yany4j52abbaaqsgq8lag2w9vjxxsj4qfbgwp4qs39x003";
+  })
+  (fetchNuGet {
+    name = "ManagedBass.Fx";
+    version = "2.0.1";
+    sha256 = "1rbjpgpm0ri7l2gqdy691rsv3visna2nbxawgvhdqljw068r8a8d";
+  })
+  (fetchNuGet {
+    name = "managed-midi";
+    version = "1.9.14";
+    sha256 = "025jh146zy98699y4civ7nxlkx312lwkl4sr8pha626q7q1kg89h";
+  })
+  (fetchNuGet {
+    name = "Markdig";
+    version = "0.21.1";
+    sha256 = "119v22rvg51ifg54r1ndf2bw7hv1lf5wn3cd04ccg8d7r8c0yhbk";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Bcl.AsyncInterfaces";
+    version = "1.1.0";
+    sha256 = "1dq5yw7cy6s42193yl4iqscfw5vzkjkgv0zyy32scr4jza6ni1a1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build.Framework";
+    version = "15.3.409";
+    sha256 = "1dhanwb9ihbfay85xj7cwn0byzmmdz94hqfi3q6r1ncwdjd8y1s2";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build.Locator";
+    version = "1.2.6";
+    sha256 = "1rnfd7wq2bkynqj767xmq9ha38mz010fmqvvvrgb4v86gd537737";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.Analyzers";
+    version = "3.0.0";
+    sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.BannedApiAnalyzers";
+    version = "3.3.0";
+    sha256 = "04z03ir9sal5h9ha97isbh660jijslb8zfiaa48w2r2l6pabz5kd";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.Common";
+    version = "3.7.0";
+    sha256 = "0882492nx6x68b0pkh3q5xaawz0b2l5x35r40722ignyjnvjydph";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.CSharp";
+    version = "3.7.0";
+    sha256 = "0adw6rcag8wxydzyiyhls2mxaqkay5qlz25z1fxrlv5qnchqn0n5";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.CSharp.Workspaces";
+    version = "3.7.0";
+    sha256 = "15rlz65wbky0yq7b9s8xwk68dgrhgsk4rj88q9pyjxbm5938vrav";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.FxCopAnalyzers";
+    version = "3.0.0";
+    sha256 = "0a17vb6jnj6kch70d7vki84728hlc3zpffsbv533yji6kf6x6d24";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.VersionCheckAnalyzer";
+    version = "3.0.0";
+    sha256 = "11g3hj3p885zj7bn99qzh68m1xifbwzrgmx1pkvpi10rmgkpyh8j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.Workspaces.Common";
+    version = "3.7.0";
+    sha256 = "00nm453w4n6kjsicmz5izvkf1ki9rp3xnc9n3y7a9b1g5sxg36fs";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.Workspaces.MSBuild";
+    version = "3.7.0";
+    sha256 = "1sh8s7b16j06p3gmzsgwd8690vagah4908bpa3gyz2fxgfnj46ax";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeQuality.Analyzers";
+    version = "3.0.0";
+    sha256 = "1x3yf21m41w2iv9nlwp03q6byqgivd48h2dlm5vgv5bd53xjfz77";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.0.1";
+    sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.5.0";
+    sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Data.Sqlite.Core";
+    version = "2.2.6";
+    sha256 = "0fx8698k71vzr8pdc6q8bsbzg6r8a42s4hkzmiyv13ibmyb5q68k";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Diagnostics.NETCore.Client";
+    version = "0.2.61701";
+    sha256 = "1ic1607jj4ln8dbibf1fz5v9svk9x2kqlgvhndc6ijaqnbc4wcr1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Diagnostics.Runtime";
+    version = "2.0.142701";
+    sha256 = "114ivn09zlxkna78hyxa3h40k5iaivapws755i0aiys7nxhdn3mw";
+  })
+  (fetchNuGet {
+    name = "Microsoft.DotNet.PlatformAbstractions";
+    version = "2.1.0";
+    sha256 = "1qydvyyinj3b5mraazjal3n2k7jqhn05b6n1a2f3qjkqkxi63dmy";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore";
+    version = "2.2.6";
+    sha256 = "18j2cr50wsikwv7gy3vrjvmpdxckvv537qma8afdpr3yn2klayh5";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Abstractions";
+    version = "2.2.6";
+    sha256 = "1dyxb5ibx24frlgbqy7zch0falq9p1189zvlbxgl94m0hvpml5j3";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Analyzers";
+    version = "2.2.6";
+    sha256 = "10f2lxxmh0xrdjvnam31fqfnjkaick23mpfvahj3ca5l07bph0rc";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Design";
+    version = "2.2.6";
+    sha256 = "0kjjkh1yfb56wnkmciqzfn9vymqfjap364y5amia0lmqmhfz8g7f";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Relational";
+    version = "2.2.6";
+    sha256 = "0c0z4mrqldjfslyxywb2ydk8hn9ybhkvz6lxx3idrfalq3ni5f1z";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Sqlite";
+    version = "2.2.6";
+    sha256 = "0z8k5ns841imaqha5abb1ka0rsfzy90k6qkrvix11sp6k9i7lsam";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Sqlite.Core";
+    version = "2.2.6";
+    sha256 = "0jzqw4672mzxjvzas09sl0zyzzayfgkv003a7bw5g2gjyiphf630";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Caching.Abstractions";
+    version = "2.2.0";
+    sha256 = "0hhxc5dp52faha1bdqw0k426zicsv6x1kfqi30m9agr0b2hixj52";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Caching.Memory";
+    version = "2.2.0";
+    sha256 = "0bzrsn5vas86w66bd04xilnlb21nx4l6lz7d3acvy6y8ir2vb5dv";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration";
+    version = "2.2.0";
+    sha256 = "02250qrs3jqqbggfvd0mkim82817f79x6jh8fx2i7r58d0m66qkl";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Abstractions";
+    version = "2.2.0";
+    sha256 = "1fv5277hyhfqmc0gqszyqb1ilwnijm8kc9606yia6hwr8pxyg674";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Binder";
+    version = "2.2.0";
+    sha256 = "10qyjdkymdmag3r807kvbnwag4j3nz65i4cwikbd77jjvz92ya3j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection";
+    version = "2.2.0";
+    sha256 = "0lvv45rvq1xbf47lz818rjydc776zk8mf7svpzh1dml4qwlx9zck";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+    version = "2.2.0";
+    sha256 = "1jyzfdr9651h3x6pxwhpfbb9mysfh8f8z1jvy4g117h9790r9zx5";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyModel";
+    version = "2.1.0";
+    sha256 = "0dl4qhjgifm6v3jsfzvzkvddyic77ggp9fq49ah661v45gk6ilgd";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging";
+    version = "2.2.0";
+    sha256 = "0bx3ljyvvcbikradq2h583rl72h8bxdz33aghk026cxzpv2mm3wm";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "2.2.0";
+    sha256 = "02w7hp6jicr7cl5p456k2cmrjvvhm6spg5kxnlncw3b72358m5wl";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.ObjectPool";
+    version = "3.0.3";
+    sha256 = "0zxsdwh9mhy3wsbjyfr4k0r10s1h06dzw8hcck9aknv155q26zqk";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Options";
+    version = "2.2.0";
+    sha256 = "1b20yh03fg4nmmi3vlf6gf13vrdkmklshfzl3ijygcs4c2hly6v0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "2.2.0";
+    sha256 = "0znah6arbcqari49ymigg3wiy2hgdifz8zsq8vdc3ynnf45r7h0c";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Net.Compilers.Toolset";
+    version = "3.1.0";
+    sha256 = "1csf8hgwvyxjlxdygacrk3pp0xkzydc1kvsv68cxy8h7gd62k0w0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NetCore.Analyzers";
+    version = "3.0.0";
+    sha256 = "0b8biyw7nymqfbg08g2vmpf1xm6g1mm6hz4gjxc5f3g72kd2nswj";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.0.1";
+    sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.1.0";
+    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "2.1.2";
+    sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "3.1.0";
+    sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "3.1.1";
+    sha256 = "05hmaygd5131rnqi6ipv7agsbpi7ka18779vw45iw6b385l7n987";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.0.1";
+    sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.1.0";
+    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NetFramework.Analyzers";
+    version = "3.0.0";
+    sha256 = "09dqizym3bca4281714yxrhhgryxpjhjfjnyfswlhyh42qi3ix2k";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Primitives";
+    version = "4.0.1";
+    sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Primitives";
+    version = "4.3.0";
+    sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Registry";
+    version = "4.7.0";
+    sha256 = "0bx21jjbs7l5ydyw4p6cn07chryxpmchq2nl5pirzz4l3b0q4dgs";
+  })
+  (fetchNuGet {
+    name = "Mono.Cecil";
+    version = "0.9.6.1";
+    sha256 = "1fr7969h5q611l5227xw6nvv5rzap76vbpk0wg9hxbcxk3hn7szf";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "1.6.0";
+    sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "1.6.1";
+    sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "2.0.0";
+    sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "12.0.2";
+    sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "12.0.3";
+    sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "9.0.1";
+    sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r";
+  })
+  (fetchNuGet {
+    name = "NUnit";
+    version = "3.12.0";
+    sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2";
+  })
+  (fetchNuGet {
+    name = "ppy.osu.Framework";
+    version = "2020.903.0";
+    sha256 = "0g15yw8c21m2g0lpca4f519dgj2phccz15nqdbaq49736akr4qzm";
+  })
+  (fetchNuGet {
+    name = "ppy.osu.Framework.NativeLibs";
+    version = "2020.213.0";
+    sha256 = "1yzrx7bji2163dzvyqri42byc7lgxlm59xbwgi312dw5714snmxy";
+  })
+  (fetchNuGet {
+    name = "ppy.osu.Game.Resources";
+    version = "2020.903.0";
+    sha256 = "0f94kms4xyjl9xwf26j6n6k5zfbx61a6bkd3vljfmbmr88advssy";
+  })
+  (fetchNuGet {
+    name = "ppy.osuTK.NS20";
+    version = "1.0.161";
+    sha256 = "0li5vcpki1ih605c8h1hjf15m9wawkdaizcxib6v3mfjf860ma3s";
+  })
+  (fetchNuGet {
+    name = "ppy.SDL2-CS";
+    version = "1.0.15";
+    sha256 = "0qld7sp7y7hwwxsdxc8m17nyb2zwfxym63j50icvf0rlawmrl7ca";
+  })
+  (fetchNuGet {
+    name = "ppy.squirrel.windows";
+    version = "1.9.0.4";
+    sha256 = "1m8shcmgs0fs225qd0navr1qr6csqjin9sg2x0d7xpfk04nd2hi7";
+  })
+  (fetchNuGet {
+    name = "Remotion.Linq";
+    version = "2.2.0";
+    sha256 = "1y46ni0xswmmiryp8sydjgryafwn458dr91f9xn653w73kdyk4xf";
+  })
+  (fetchNuGet {
+    name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
+  })
+  (fetchNuGet {
+    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
+  })
+  (fetchNuGet {
+    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    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";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.IO.Compression";
+    version = "4.3.0";
+    sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d";
+  })
+  (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";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography";
+    version = "4.0.0";
+    sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography.Apple";
+    version = "4.3.0";
+    sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
+  })
+  (fetchNuGet {
+    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
+  })
+  (fetchNuGet {
+    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
+  })
+  (fetchNuGet {
+    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple";
+    version = "4.3.0";
+    sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi";
+  })
+  (fetchNuGet {
+    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
+  })
+  (fetchNuGet {
+    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
+  })
+  (fetchNuGet {
+    name = "Sentry";
+    version = "2.1.6";
+    sha256 = "0vc45p1arxwifv5fb6lzkqqxlsvm4i0xmpq2vc73vbjqzydd2phm";
+  })
+  (fetchNuGet {
+    name = "Sentry.PlatformAbstractions";
+    version = "1.1.1";
+    sha256 = "10mxyxmyjpr0y1ik2j55pp7ifn101sw319cbpf28i2xbfp0cvcaj";
+  })
+  (fetchNuGet {
+    name = "Sentry.Protocol";
+    version = "2.1.6";
+    sha256 = "0qc18kc9d7f0s6hmnpji3sbz0z09kdgg4fwh55rrmpfgr3w851s7";
+  })
+  (fetchNuGet {
+    name = "SharpCompress";
+    version = "0.17.1";
+    sha256 = "1ffiacghbcnr3fkgvdcad7b1nky54nhmmn2sm43sks9zm8grvva4";
+  })
+  (fetchNuGet {
+    name = "SharpCompress";
+    version = "0.26.0";
+    sha256 = "03cygf8p44j1bfn6z9cn2xrw6zhvhq17xac1sph5rgq7vq2m5iq5";
+  })
+  (fetchNuGet {
+    name = "SharpFNT";
+    version = "2.0.0";
+    sha256 = "1bgacgh9hbck0qvji6frbb50sdiqfdng2fvvfgfw8b9qaql91mx0";
+  })
+  (fetchNuGet {
+    name = "SixLabors.Core";
+    version = "1.0.0-beta0008";
+    sha256 = "1yqcv5d2igsrmi9hf8xzikn0fms47skqpr552yzbj4z4wnraahaw";
+  })
+  (fetchNuGet {
+    name = "SixLabors.ImageSharp";
+    version = "1.0.0-beta0007";
+    sha256 = "1k3hrp26imyqjarkrcsrhvamlmynzv6cakzq68yx69c0h8lmscaf";
+  })
+  (fetchNuGet {
+    name = "Splat";
+    version = "1.6.2";
+    sha256 = "154w9q0z8697rcpqs4x233crx5ap1z4pl4xc21hsd3csbhw13ykf";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.bundle_green";
+    version = "1.1.12";
+    sha256 = "0jbyd25ag15fyn9nawjikv0v5ylk2zh5pxgr6gm4kpbpqys86sq9";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.core";
+    version = "1.1.12";
+    sha256 = "03gflsn2wl6v0a8zvh6y5xdhx0xxmfrn6jfldiy829x3fx74zgdl";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.lib.e_sqlite3.linux";
+    version = "1.1.12";
+    sha256 = "10mlq914d3zggdjf4bv27w6jx0gqqjf6f91y5ri6pbvaqyhi28h5";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.lib.e_sqlite3.osx";
+    version = "1.1.12";
+    sha256 = "1hixg6n9sqllfrcihj145lh1l38inv827808difvazd4zr3mi0z1";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.lib.e_sqlite3.v110_xp";
+    version = "1.1.12";
+    sha256 = "107sivk5p38dg1kyvqrxgp67dj89s8l6brf9l52k6s4vrn4hrrk7";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.provider.e_sqlite3.netstandard11";
+    version = "1.1.12";
+    sha256 = "0qr2d7ka6f5c7bybdhiyq7nl90c9575szmi0nfpknd9c0w024if4";
+  })
+  (fetchNuGet {
+    name = "StbiSharp";
+    version = "1.0.12";
+    sha256 = "044lyc6522s8q4kgvly0rsxghkiv4dwzycl2ibxf7q5dvws02qvp";
+  })
+  (fetchNuGet {
+    name = "System.AppContext";
+    version = "4.1.0";
+    sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
+  })
+  (fetchNuGet {
+    name = "System.AppContext";
+    version = "4.3.0";
+    sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.0.0";
+    sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.3.0";
+    sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.4.0";
+    sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.5.0";
+    sha256 = "1ywfqn4md6g3iilpxjn5dsr0f5lx6z0yvhqp4pgjcamygg73cz2c";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.5.1";
+    sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3";
+  })
+  (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";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Concurrent";
+    version = "4.3.0";
+    sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Immutable";
+    version = "1.5.0";
+    sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Immutable";
+    version = "1.7.1";
+    sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Annotations";
+    version = "4.5.0";
+    sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Annotations";
+    version = "4.7.0";
+    sha256 = "06x1m46ddxj0ng28d7gry9gjkqdg2kp89jyf480g5gznyybbs49z";
+  })
+  (fetchNuGet {
+    name = "System.Composition";
+    version = "1.0.31";
+    sha256 = "0aa27jz73qb0xm6dyxv22qhfrmyyqjyn2dvvsd9asi82lcdh9i61";
+  })
+  (fetchNuGet {
+    name = "System.Composition.AttributedModel";
+    version = "1.0.31";
+    sha256 = "1ipyb86hvw754kmk47vjmzyilvj5hymg9nqabz70sbgsz1fygrdv";
+  })
+  (fetchNuGet {
+    name = "System.Composition.Convention";
+    version = "1.0.31";
+    sha256 = "00gqcdrql7vhynxh4xq0s9j5nw27kghmn2n773v7lhzjh3ash18r";
+  })
+  (fetchNuGet {
+    name = "System.Composition.Hosting";
+    version = "1.0.31";
+    sha256 = "1f1bnk3j7ndx9r7zpzibmrhw78clys1pspl20j2dhnmkiwhl23vy";
+  })
+  (fetchNuGet {
+    name = "System.Composition.Runtime";
+    version = "1.0.31";
+    sha256 = "1shfybfzsn4g6aim4pggb5ha31g0fz2kkk0519c4vj6m166g39ws";
+  })
+  (fetchNuGet {
+    name = "System.Composition.TypedParts";
+    version = "1.0.31";
+    sha256 = "1m4j19zx50lbbdx1xxbgpsd1dai2r3kzkyapw47kdvkb89qjkl63";
+  })
+  (fetchNuGet {
+    name = "System.Console";
+    version = "4.0.0";
+    sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
+  })
+  (fetchNuGet {
+    name = "System.Console";
+    version = "4.3.0";
+    sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
+  })
+  (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.5.0";
+    sha256 = "1y8m0p3127nak5yspapfnz25qc9x53gqpvwr3hdpsvrcd2r1pgyj";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tools";
+    version = "4.0.1";
+    sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tools";
+    version = "4.3.0";
+    sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tracing";
+    version = "4.1.0";
+    sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tracing";
+    version = "4.3.0";
+    sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
+  })
+  (fetchNuGet {
+    name = "System.Dynamic.Runtime";
+    version = "4.0.11";
+    sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.0.11";
+    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.3.0";
+    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+  })
+  (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";
+  })
+  (fetchNuGet {
+    name = "System.Interactive.Async";
+    version = "3.2.0";
+    sha256 = "0y5r5y7dlccjpgg17rjrrzi3jya4ysyydamxs33qckkv4jb3534d";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.1.0";
+    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.3.0";
+    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression";
+    version = "4.1.0";
+    sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression";
+    version = "4.3.0";
+    sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression.ZipFile";
+    version = "4.0.1";
+    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression.ZipFile";
+    version = "4.3.0";
+    sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.0.1";
+    sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.0.1";
+    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.3.0";
+    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+  })
+  (fetchNuGet {
+    name = "System.IO.Packaging";
+    version = "4.7.0";
+    sha256 = "1vivvf158ilcpp6bq70zyafimi0lng546b34csmjb09k19wgxpiv";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.1.0";
+    sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.3.0";
+    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.1.0";
+    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.3.0";
+    sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Queryable";
+    version = "4.0.1";
+    sha256 = "11jn9k34g245yyf260gr3ldzvaqa9477w2c5nhb1p8vjx4xm3qaw";
+  })
+  (fetchNuGet {
+    name = "System.Memory";
+    version = "4.5.1";
+    sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c";
+  })
+  (fetchNuGet {
+    name = "System.Memory";
+    version = "4.5.3";
+    sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a";
+  })
+  (fetchNuGet {
+    name = "System.Memory";
+    version = "4.5.4";
+    sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y";
+  })
+  (fetchNuGet {
+    name = "System.Net.Http";
+    version = "4.1.0";
+    sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb";
+  })
+  (fetchNuGet {
+    name = "System.Net.Http";
+    version = "4.3.0";
+    sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j";
+  })
+  (fetchNuGet {
+    name = "System.Net.Primitives";
+    version = "4.0.11";
+    sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
+  })
+  (fetchNuGet {
+    name = "System.Net.Primitives";
+    version = "4.3.0";
+    sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii";
+  })
+  (fetchNuGet {
+    name = "System.Net.Sockets";
+    version = "4.1.0";
+    sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls";
+  })
+  (fetchNuGet {
+    name = "System.Net.Sockets";
+    version = "4.3.0";
+    sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla";
+  })
+  (fetchNuGet {
+    name = "System.Numerics.Vectors";
+    version = "4.4.0";
+    sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba";
+  })
+  (fetchNuGet {
+    name = "System.Numerics.Vectors";
+    version = "4.5.0";
+    sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59";
+  })
+  (fetchNuGet {
+    name = "System.ObjectModel";
+    version = "4.0.12";
+    sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
+  })
+  (fetchNuGet {
+    name = "System.ObjectModel";
+    version = "4.3.0";
+    sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
+  })
+  (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";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.ILGeneration";
+    version = "4.3.0";
+    sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.0.1";
+    sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.3.0";
+    sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.7.0";
+    sha256 = "0mbjfajmafkca47zr8v36brvknzks5a7pgb49kfq2d188pyv6iap";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.0.1";
+    sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.3.0";
+    sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Metadata";
+    version = "1.6.0";
+    sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Metadata";
+    version = "1.8.1";
+    sha256 = "17xxl3m99wa4hcpqy42vl8qb1jk2jfq32rj3sfjc1a46hi2si5jj";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.0.1";
+    sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.1.0";
+    sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.3.0";
+    sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.1.0";
+    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.3.0";
+    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.5.1";
+    sha256 = "1xcrjx5fwg284qdnxyi2d0lzdm5q4frlpkp0nf6vvkx1kdz2prrf";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.5.2";
+    sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.7.0";
+    sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.7.1";
+    sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.1.0";
+    sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.0.1";
+    sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.3.0";
+    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";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices.RuntimeInformation";
+    version = "4.3.0";
+    sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Numerics";
+    version = "4.0.1";
+    sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Numerics";
+    version = "4.3.0";
+    sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Primitives";
+    version = "4.1.1";
+    sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
+  })
+  (fetchNuGet {
+    name = "System.Security.AccessControl";
+    version = "4.7.0";
+    sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Algorithms";
+    version = "4.2.0";
+    sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Algorithms";
+    version = "4.3.0";
+    sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml";
+  })
+  (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";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Encoding";
+    version = "4.0.0";
+    sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Encoding";
+    version = "4.3.0";
+    sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.OpenSsl";
+    version = "4.0.0";
+    sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Primitives";
+    version = "4.0.0";
+    sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Primitives";
+    version = "4.3.0";
+    sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.X509Certificates";
+    version = "4.1.0";
+    sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.X509Certificates";
+    version = "4.3.0";
+    sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
+    version = "4.7.0";
+    sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d";
+  })
+  (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.Encoding.CodePages";
+    version = "4.5.1";
+    sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.CodePages";
+    version = "4.7.1";
+    sha256 = "1y1hdap9qbl7vp74j8s9zcbh3v1rnrrvcc55wj1hl6has2v3qh1r";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.Extensions";
+    version = "4.0.11";
+    sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.Extensions";
+    version = "4.3.0";
+    sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
+  })
+  (fetchNuGet {
+    name = "System.Text.RegularExpressions";
+    version = "4.1.0";
+    sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
+  })
+  (fetchNuGet {
+    name = "System.Text.RegularExpressions";
+    version = "4.3.0";
+    sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.0.11";
+    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.3.0";
+    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.0.11";
+    sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.3.0";
+    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.Tasks.Extensions";
+    version = "4.5.3";
+    sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Thread";
+    version = "4.0.0";
+    sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Timer";
+    version = "4.0.1";
+    sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Timer";
+    version = "4.3.0";
+    sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56";
+  })
+  (fetchNuGet {
+    name = "System.Xml.ReaderWriter";
+    version = "4.0.11";
+    sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
+  })
+  (fetchNuGet {
+    name = "System.Xml.ReaderWriter";
+    version = "4.3.0";
+    sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XDocument";
+    version = "4.0.11";
+    sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XDocument";
+    version = "4.3.0";
+    sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
+  })
+]
diff --git a/pkgs/games/osu-lazer/update.sh b/pkgs/games/osu-lazer/update.sh
new file mode 100755
index 00000000000..be8fa3fe716
--- /dev/null
+++ b/pkgs/games/osu-lazer/update.sh
@@ -0,0 +1,58 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq common-updater-scripts dotnet-sdk_3
+set -eo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+deps_file="$(realpath "./deps.nix")"
+
+new_version="$(curl -s "https://api.github.com/repos/ppy/osu/releases" | jq -r '.[0].name')"
+old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
+if [[ "$new_version" == "$old_version" ]]; then
+  echo "Up to date"
+  exit 0
+fi
+
+cd ../../..
+update-source-version osu-lazer "$new_version"
+store_src="$(nix-build . -A osu-lazer.src --no-out-link)"
+src="$(mktemp -d /tmp/osu-src.XXX)"
+echo "Temp src dir: $src"
+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
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+  <packageSources>
+    <add key="nuget" value="https://api.nuget.org/v3/index.json" />
+  </packageSources>
+  <config>
+    <add key="globalPackagesFolder" value="$(realpath ./nuget_tmp.packages)" />
+  </config>
+</configuration>
+EOF
+
+dotnet restore osu.Desktop --configfile ./nuget_tmp.config
+
+echo "{ fetchNuGet }: [" >"$deps_file"
+while read pkg_spec; do
+  { read pkg_name; read pkg_version; } < <(
+    # Build version part should be ignored: `3.0.0-beta2.20059.3+77df2220` -> `3.0.0-beta2.20059.3`
+    sed -nE 's/.*<id>([^<]*).*/\1/p; s/.*<version>([^<+]*).*/\1/p' "$pkg_spec")
+  pkg_sha256="$(nix-hash --type sha256 --flat --base32 "$(dirname "$pkg_spec")"/*.nupkg)"
+  cat >>"$deps_file" <<EOF
+  (fetchNuGet {
+    name = "$pkg_name";
+    version = "$pkg_version";
+    sha256 = "$pkg_sha256";
+  })
+EOF
+done < <(find ./nuget_tmp.packages -name '*.nuspec' | sort)
+echo "]" >>"$deps_file"
+
+popd
+rm -r "$src"
diff --git a/pkgs/games/papermc/default.nix b/pkgs/games/papermc/default.nix
index 9695a350058..c5f7dc37925 100644
--- a/pkgs/games/papermc/default.nix
+++ b/pkgs/games/papermc/default.nix
@@ -1,10 +1,10 @@
-{ stdenv, fetchurl, jre }:
+{ stdenv, fetchurl, bash, jre }:
 let
-  mcVersion = "1.15.2";
-  buildNum = "161";
+  mcVersion = "1.16.2";
+  buildNum = "141";
   jar = fetchurl {
     url = "https://papermc.io/api/v1/paper/${mcVersion}/${buildNum}/download";
-    sha256 = "1jngj5djs1fjdj25wg9iszw0dsp56f386j8ydms7x4ky8s8kxyms";
+    sha256 = "1qhhnaysw9r73fpvj9qcmjah722a6a4s6g4cblna56n1hpz4lw1s";
   };
 in stdenv.mkDerivation {
   pname = "papermc";
@@ -13,22 +13,23 @@ in stdenv.mkDerivation {
   preferLocalBuild = true;
 
   dontUnpack = true;
-  installPhase = ''
-    mkdir -p $out/bin
-    cp ${jar} $out/papermc.jar
-    cat > $out/bin/minecraft-server << EOF
-    #!/bin/sh
-    exec ${jre}/bin/java \$@ -jar $out/papermc.jar nogui
-    EOF
-    chmod +x $out/bin/minecraft-server
+  dontConfigure = true;
+
+  buildPhase = ''
+    cat > minecraft-server << EOF
+    #!${bash}/bin/sh
+    exec ${jre}/bin/java \$@ -jar $out/share/papermc/papermc.jar nogui
   '';
 
-  phases = "installPhase";
+  installPhase = ''
+    install -Dm444 ${jar} $out/share/papermc/papermc.jar
+    install -Dm555 -t $out/bin minecraft-server
+  '';
 
   meta = {
     description = "High-performance Minecraft Server";
     homepage    = "https://papermc.io/";
-    license     = stdenv.lib.licenses.gpl3;
+    license     = stdenv.lib.licenses.gpl3Only;
     platforms   = stdenv.lib.platforms.unix;
     maintainers = with stdenv.lib.maintainers; [ aaronjanse ];
   };
diff --git a/pkgs/games/pentobi/default.nix b/pkgs/games/pentobi/default.nix
index 909f09a0b39..2b5a86ad52c 100644
--- a/pkgs/games/pentobi/default.nix
+++ b/pkgs/games/pentobi/default.nix
@@ -5,12 +5,12 @@
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
-  version = "18.0";
+  version = "18.1";
   pname = "pentobi";
 
   src = fetchurl {
     url = "mirror://sourceforge/pentobi/${pname}-${version}.tar.xz";
-    sha256 = "0dlvshywxijl0hrkl66szamcr77arh118f44ngr1ail8mg1fx1fy";
+    sha256 = "1vfw61lk9z7dngncmx3fggy5ld7ksdk48dpwnsq2vl5fh3f71qbq";
   };
 
   nativeBuildInputs = [ cmake docbook_xsl wrapQtAppsHook ];
diff --git a/pkgs/games/sfrotz/default.nix b/pkgs/games/sfrotz/default.nix
new file mode 100644
index 00000000000..6e4839703a1
--- /dev/null
+++ b/pkgs/games/sfrotz/default.nix
@@ -0,0 +1,69 @@
+{ fetchFromGitLab
+, freetype
+, libao
+, libjpeg
+, libmodplug
+, libpng
+, libsamplerate
+, libsndfile
+, libvorbis
+, pkg-config
+, SDL2
+, SDL2_mixer
+, stdenv
+, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "sfrotz";
+  version = "2.52";
+
+  src = fetchFromGitLab  {
+    domain = "gitlab.com";
+    owner = "DavidGriffith";
+    repo = "frotz";
+    rev = version;
+    sha256 = "11ca1dz31b7s5vxjqncwjwmbbcr2m5v2rxjn49g4gnvwd6mqw48y";
+  };
+
+  buildInputs = [
+    freetype
+    libao
+    libjpeg
+    libmodplug
+    libpng
+    libsamplerate
+    libsndfile
+    libvorbis
+    SDL2
+    SDL2_mixer
+    zlib
+  ];
+  nativeBuildInputs = [ pkg-config ];
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+  buildPhase = "make sdl";
+  installTargets = [ "install_sfrotz" ];
+
+  meta = with stdenv.lib; {
+    description =
+      "Interpreter for Infocom and other Z-Machine games (SDL interface)";
+    longDescription = ''
+      Frotz is a Z-Machine interpreter. The Z-machine is a virtual machine
+      designed by Infocom to run all of their text adventures. It went through
+      multiple revisions during the lifetime of the company, and two further
+      revisions (V7 and V8) were created by Graham Nelson after the company's
+      demise. The specification is now quite well documented; this version of
+      Frotz supports version 1.0.
+
+      This version of Frotz fully supports all these versions of the Z-Machine
+      including the graphical version 6. Graphics and sound are created through
+      the use of the SDL libraries. AIFF sound effects and music in MOD and OGG
+      formats are supported when packaged in Blorb container files or optionally
+      from individual files.
+    '';
+    homepage = "https://davidgriffith.gitlab.io/frotz/";
+    changelog = "https://gitlab.com/DavidGriffith/frotz/-/raw/${version}/NEWS";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ ddelabru ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/games/shattered-pixel-dungeon/default.nix b/pkgs/games/shattered-pixel-dungeon/default.nix
index 4f11665c9a0..f3808102bd1 100644
--- a/pkgs/games/shattered-pixel-dungeon/default.nix
+++ b/pkgs/games/shattered-pixel-dungeon/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , makeWrapper
 , fetchFromGitHub
+, nixosTests
 , gradle_5
 , perl
 , jre
@@ -9,13 +10,13 @@
 
 let
   pname = "shattered-pixel-dungeon";
-  version = "0.8.1";
+  version = "0.8.2d";
 
   src = fetchFromGitHub {
     owner = "00-Evan";
     repo = "shattered-pixel-dungeon";
     rev = "v${version}";
-    sha256 = "1n459xdvqf974hs91xfq5fdj29s4w5w83dg3m2vp7gqmrmm2jykf";
+    sha256 = "11lgalam1aacw01ar7nawiim4pbxqzrdrnxvj6wq9mg83hgsz65l";
   };
 
   postPatch = ''
@@ -66,6 +67,10 @@ in stdenv.mkDerivation rec {
       --add-flags "-jar $out/share/shattered-pixel-dungeon.jar"
   '';
 
+  passthru.tests = {
+    shattered-pixel-dungeon-starts = nixosTests.shattered-pixel-dungeon;
+  };
+
   meta = with stdenv.lib; {
     homepage = "https://shatteredpixel.com/";
     downloadPage = "https://github.com/00-Evan/shattered-pixel-dungeon/releases";
diff --git a/pkgs/games/sm64ex/default.nix b/pkgs/games/sm64ex/default.nix
new file mode 100644
index 00000000000..e5aeb84fbf1
--- /dev/null
+++ b/pkgs/games/sm64ex/default.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, fetchFromGitHub
+, python3
+, pkg-config
+, audiofile
+, SDL2
+, hexdump
+, requireFile
+, compileFlags ? [ ]
+, region ? "us"
+, baseRom ? requireFile {
+    name = "baserom.${region}.z64";
+    message = ''
+      This nix expression requires that baserom.${region}.z64 is
+      already part of the store. To get this file you can dump your Super Mario 64 cartridge's contents
+      and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
+      Note that if you are not using a US baserom, you must overwrite the "region" attribute with either "eu" or "jp".
+    '';
+    sha256 = {
+      "us" = "17ce077343c6133f8c9f2d6d6d9a4ab62c8cd2aa57c40aea1f490b4c8bb21d91";
+      "eu" = "c792e5ebcba34c8d98c0c44cf29747c8ee67e7b907fcc77887f9ff2523f80572";
+      "jp" = "9cf7a80db321b07a8d461fe536c02c87b7412433953891cdec9191bfad2db317";
+    }.${region};
+  }
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sm64ex";
+  version = "unstable-2020-06-19";
+
+  src = fetchFromGitHub {
+    owner = "sm64pc";
+    repo = "sm64ex";
+    rev = "f5005418348cf1a53bfa75ff415a513ef0b9b273";
+    sha256 = "0adyshkqk5c4lxhdxc3j6ax4svfka26486qpa5q2gl2nixwg9zxn";
+  };
+
+  nativeBuildInputs = [ python3 pkg-config ];
+  buildInputs = [ audiofile SDL2 hexdump ];
+
+  makeFlags = [ "VERSION=${region}" ] ++ compileFlags
+    ++ stdenv.lib.optionals stdenv.isDarwin [ "OSX_BUILD=1" ];
+
+  inherit baseRom;
+
+  preBuild = ''
+    patchShebangs extract_assets.py
+    cp $baseRom ./baserom.${region}.z64
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp build/${region}_pc/sm64.${region}.f3dex2e $out/bin/sm64ex
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/sm64pc/sm64ex";
+    description = "Super Mario 64 port based off of decompilation";
+    longDescription = ''
+      Super Mario 64 port based off of decompilation.
+      Note that you must supply a baserom yourself to extract assets from.
+      If you are not using an US baserom, you must overwrite the "region" attribute with either "eu" or "jp".
+      If you would like to use patches sm64ex distributes as makeflags, add them to the "compileFlags" attribute.
+    '';
+    license = licenses.unfree;
+    maintainers = with maintainers; [ ivar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/games/spring/springlobby.nix b/pkgs/games/spring/springlobby.nix
index e627575df94..9912675ee67 100644
--- a/pkgs/games/spring/springlobby.nix
+++ b/pkgs/games/spring/springlobby.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "springlobby";
-  version = "0.269";
+  version = "0.270";
 
   src = fetchurl {
     url = "https://springlobby.springrts.com/dl/stable/springlobby-${version}.tar.bz2";
-    sha256 = "1shgrfs4ssjj8m0c7805jisjzpc60796l0vja3yjfdksrz7yxvhg";
+    sha256 = "1r1g2hw9ipsmsmzbhsi7bxqra1za6x7j1kw12qzl5psqyq8rqbgs";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/games/steam/default.nix b/pkgs/games/steam/default.nix
index 5aab54b8322..ff2c6e13288 100644
--- a/pkgs/games/steam/default.nix
+++ b/pkgs/games/steam/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, newScope }:
+{ pkgs, newScope, buildFHSUserEnv }:
 
 let
   callPackage = newScope self;
@@ -12,12 +12,13 @@ let
     steam-runtime-wrapped = callPackage ./runtime-wrapped.nix { };
     steam = callPackage ./steam.nix { };
     steam-fonts = callPackage ./fonts.nix { };
-    steam-chrootenv = callPackage ./chrootenv.nix {
+    steam-fhsenv = callPackage ./fhsenv.nix {
       glxinfo-i686 = pkgs.pkgsi686Linux.glxinfo;
       steam-runtime-wrapped-i686 =
         if steamArch == "amd64"
         then pkgs.pkgsi686Linux.steamPackages.steam-runtime-wrapped
         else null;
+      inherit buildFHSUserEnv;
     };
     steamcmd = callPackage ./steamcmd.nix { };
   };
diff --git a/pkgs/games/steam/chrootenv.nix b/pkgs/games/steam/fhsenv.nix
index 56e1a09f36e..189c4d1c107 100644
--- a/pkgs/games/steam/chrootenv.nix
+++ b/pkgs/games/steam/fhsenv.nix
@@ -42,6 +42,12 @@ let
   ldPath = map (x: "/steamrt/${steam-runtime-wrapped.arch}/" + x) steam-runtime-wrapped.libs
            ++ lib.optionals (steam-runtime-wrapped-i686 != null) (map (x: "/steamrt/${steam-runtime-wrapped-i686.arch}/" + x) steam-runtime-wrapped-i686.libs);
 
+  # Zachtronics and a few other studios expect STEAM_LD_LIBRARY_PATH to be present
+  exportLDPath = ''
+    export LD_LIBRARY_PATH=/lib32:/lib64:${lib.concatStringsSep ":" ldPath}\''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
+    export STEAM_LD_LIBRARY_PATH="$STEAM_LD_LIBRARY_PATH''${STEAM_LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
+  '';
+
   setupSh = writeScript "setup.sh" ''
     #!${runtimeShell}
   '';
@@ -54,6 +60,7 @@ let
       exit 0
     fi
     export LD_LIBRARY_PATH="$runtime_paths''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
+    export STEAM_LD_LIBRARY_PATH="$STEAM_LD_LIBRARY_PATH''${STEAM_LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
     exec "$@"
   '';
 
@@ -82,6 +89,7 @@ in buildFHSUserEnv rec {
     at-spi2-core   # CrossCode
     gst_all_1.gstreamer
     gst_all_1.gst-plugins-ugly
+    gst_all_1.gst-plugins-base
     libdrm
     mono
     xorg.xkeyboardconfig
@@ -186,8 +194,6 @@ in buildFHSUserEnv rec {
     SDL_mixer
     SDL2_ttf
     SDL2_mixer
-    gstreamer
-    gst-plugins-base
     libappindicator-gtk2
     libcaca
     libcanberra
@@ -251,6 +257,7 @@ in buildFHSUserEnv rec {
     EOF
       fi
     fi
+    ${lib.optionalString (!nativeOnly) exportLDPath}
     exec steam "$@"
   '';
 
@@ -272,7 +279,7 @@ in buildFHSUserEnv rec {
         exit 1
       fi
       shift
-      ${lib.optionalString (!nativeOnly) "export LD_LIBRARY_PATH=/lib32:/lib64:${lib.concatStringsSep ":" ldPath}\${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"}
+      ${lib.optionalString (!nativeOnly) exportLDPath}
       exec -- "$run" "$@"
     '';
   };
diff --git a/pkgs/games/steam/runtime.nix b/pkgs/games/steam/runtime.nix
index 6d81d6c775e..4f373b9be30 100644
--- a/pkgs/games/steam/runtime.nix
+++ b/pkgs/games/steam/runtime.nix
@@ -4,11 +4,11 @@ stdenv.mkDerivation rec {
 
   name = "steam-runtime";
   # from https://repo.steampowered.com/steamrt-images-scout/snapshots/
-  version = "0.20200417.0";
+  version = "0.20200720.0";
 
   src = fetchurl {
     url = "https://repo.steampowered.com/steamrt-images-scout/snapshots/${version}/steam-runtime.tar.xz";
-    sha256 = "0d4dfl6i31i8187wj8rr9yvmrg32bx96bsgs2ya21b00czf070sy";
+    sha256 = "03qdlr1xk84jb4c60ilis00vjhj70bxc0bbgk5g5b1883l2frljd";
     name = "scout-runtime-${version}.tar.gz";
   };
 
diff --git a/pkgs/games/tdm/default.nix b/pkgs/games/tdm/default.nix
index 32f91f59868..d0133df59dd 100644
--- a/pkgs/games/tdm/default.nix
+++ b/pkgs/games/tdm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, binutils-unwrapped, scons, gnum4, p7zip, glibc_multi, mesa
+{ stdenv, fetchurl, binutils-unwrapped, sconsPackages, gnum4, p7zip, glibc_multi, mesa
 , xorg, libGLU, libGL, openal
 , lib, makeWrapper, makeDesktopItem }:
 
@@ -11,7 +11,7 @@ let
     name = pname;
     exec = "@out@/bin/${pname}";
     icon = pname;
-    terminal = "False";
+    terminal = "false";
     comment = "The Dark Mod - stealth FPS inspired by the Thief series";
     type = "Application";
     categories = "Game;";
@@ -24,7 +24,7 @@ in stdenv.mkDerivation {
     sha256 = "17wdpip8zvm2njz0xrf7xcxl73hnsc6i83zj18kn8rnjkpy50dd6";
   };
   nativeBuildInputs = [
-    p7zip scons.py2 gnum4 makeWrapper
+    p7zip sconsPackages.scons_3_1_2 gnum4 makeWrapper
   ];
   buildInputs = [
     glibc_multi mesa.dev xorg.libX11.dev openal
diff --git a/pkgs/games/the-powder-toy/default.nix b/pkgs/games/the-powder-toy/default.nix
index 72b4bf20383..af392eca8d8 100644
--- a/pkgs/games/the-powder-toy/default.nix
+++ b/pkgs/games/the-powder-toy/default.nix
@@ -1,21 +1,24 @@
-{ stdenv, fetchFromGitHub, scons, pkgconfig, SDL2, lua, fftwFloat, zlib, bzip2 }:
+
+{ stdenv, fetchFromGitHub, scons, pkgconfig, SDL2, lua, fftwFloat,
+  zlib, bzip2, curl, darwin }:
 
 stdenv.mkDerivation rec {
   pname = "the-powder-toy";
-  version = "94.1";
+  version = "95.0";
 
   src = fetchFromGitHub {
-    owner = "ThePowderToy";
+    owner = "The-Powder-Toy";
     repo = "The-Powder-Toy";
     rev = "v${version}";
-    sha256 = "0w3i4zjkw52qbv3s9cgcwxrdbb1npy0ka7wygyb76xcb17bj0l0b";
+    sha256 = "18rp2g1mj0gklra06wm9dm57h73hmm301npndh0y8ap192i5s8sa";
   };
 
   nativeBuildInputs = [ scons pkgconfig ];
 
-  buildInputs = [ SDL2 lua fftwFloat zlib bzip2 ];
+  propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin
+    [ darwin.apple_sdk.frameworks.Cocoa ];
 
-  sconsFlags = "--tool=";
+  buildInputs = [ SDL2 lua fftwFloat zlib bzip2 curl ];
 
   installPhase = ''
     install -Dm 755 build/powder* "$out/bin/powder"
@@ -28,6 +31,6 @@ stdenv.mkDerivation rec {
     homepage = "http://powdertoy.co.uk/";
     platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
     license = licenses.gpl3;
-    maintainers = with maintainers; [ abbradar ];
+    maintainers = with maintainers; [ abbradar siraben ];
   };
 }
diff --git a/pkgs/games/tome2/default.nix b/pkgs/games/tome2/default.nix
index a632e523aaa..fa73697ab42 100644
--- a/pkgs/games/tome2/default.nix
+++ b/pkgs/games/tome2/default.nix
@@ -9,7 +9,7 @@ let
     name = pname;
     exec = "${pname}-x11";
     icon = pname;
-    terminal = "False";
+    terminal = "false";
     comment = description;
     type = "Application";
     categories = "Game;RolePlaying;";
diff --git a/pkgs/games/ultrastardx/default.nix b/pkgs/games/ultrastardx/default.nix
index b2d601df349..b6e1da204ed 100644
--- a/pkgs/games/ultrastardx/default.nix
+++ b/pkgs/games/ultrastardx/default.nix
@@ -1,7 +1,26 @@
-{ stdenv, autoreconfHook, fetchFromGitHub, pkgconfig
-, lua, fpc, pcre, portaudio, freetype, libpng
-, SDL2, SDL2_image, SDL2_gfx, SDL2_mixer, SDL2_net, SDL2_ttf
-, ffmpeg, sqlite, zlib, libX11, libGLU, libGL }:
+{ stdenv
+, autoreconfHook
+, fetchFromGitHub
+, fetchpatch
+, pkgconfig
+, lua
+, fpc
+, pcre
+, portaudio
+, freetype
+, libpng
+, SDL2
+, SDL2_image
+, SDL2_gfx
+, SDL2_mixer
+, SDL2_net, SDL2_ttf
+, ffmpeg
+, sqlite
+, zlib
+, libX11
+, libGLU
+, libGL
+}:
 
 let
   sharedLibs = [
@@ -12,17 +31,25 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "ultrastardx";
-  version = "unstable-2019-01-07";
+  version = "2020.4.0";
   src = fetchFromGitHub {
     owner = "UltraStar-Deluxe";
     repo = "USDX";
-    rev = "3df142590f29db1505cc58746af9f8cf7cb4a6a5";
-    sha256 = "0853rg7vppkmw37wm9xm0m0wab3r09ws6w04xs2wgwj1mwl0d70j";
+    rev = "v${version}";
+    sha256 = "0vmfv8zpyf8ymx3rjydpd7iqis080lni94vb316vfxkgvjmqbhym";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs = [ fpc libpng ] ++ sharedLibs;
 
+  patches = [
+    (fetchpatch {
+      name = "fpc-3.2-support.patch";
+      url = "https://github.com/UltraStar-Deluxe/USDX/commit/1b8e8714c1523ef49c2fd689a1545d097a3d76d7.patch";
+      sha256 = "02zmjymj9w1mkpf7armdpf067byvml6lprs1ca4lhpkv45abddp4";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace src/config.inc.in \
       --subst-var-by libpcre_LIBNAME libpcre.so.1
diff --git a/pkgs/games/vassal/default.nix b/pkgs/games/vassal/default.nix
index 55848d91fab..413d98d26ac 100644
--- a/pkgs/games/vassal/default.nix
+++ b/pkgs/games/vassal/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, jre, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "VASSAL-3.2.17";
+  name = "VASSAL-3.3.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/vassalengine/${name}-linux.tar.bz2";
-    sha256 = "0nxskr46janxnb31c03zv61kr46vy98l7cwxha3vll81l4ij1sjb";
+    sha256 = "1abhlkl27gyfa1lghvv76xa6ks5hiwv2s9wb9ddadm0m07f87n1w";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/games/vdrift/default.nix b/pkgs/games/vdrift/default.nix
index 99475af49e1..ea8b3941f8b 100644
--- a/pkgs/games/vdrift/default.nix
+++ b/pkgs/games/vdrift/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fetchsvn, pkgconfig, scons, libGLU, libGL, SDL2, SDL2_image
+{ stdenv, fetchFromGitHub, fetchsvn, pkgconfig, sconsPackages, libGLU, libGL, SDL2, SDL2_image
 , libvorbis, bullet, curl, gettext, writeTextFile
 
 , data ? fetchsvn {
@@ -20,7 +20,7 @@ let
       sha256 = "001wq3c4n9wzxqfpq40b1jcl16sxbqv2zbkpy9rq2wf9h417q6hg";
     };
 
-    nativeBuildInputs = [ pkgconfig scons.py2 ];
+    nativeBuildInputs = [ pkgconfig sconsPackages.scons_3_1_2 ];
     buildInputs = [ libGLU libGL SDL2 SDL2_image libvorbis bullet curl gettext ];
 
     patches = [ ./0001-Ignore-missing-data-for-installation.patch ];
diff --git a/pkgs/games/xcowsay/default.nix b/pkgs/games/xcowsay/default.nix
new file mode 100644
index 00000000000..dd95bf1e5a1
--- /dev/null
+++ b/pkgs/games/xcowsay/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, makeWrapper, pkg-config
+, dbus, dbus-glib, gtk3, gdk-pixbuf, librsvg
+, fortune
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xcowsay";
+  version = "1.5";
+
+  src = fetchurl {
+    url = "http://www.nickg.me.uk/files/xcowsay-${version}.tar.gz";
+    sha256 = "0pyaa062z1ag26dhkm1yzp2hivnlmhlpqn5xg7mx9r1m652mm91y";
+  };
+
+  buildInputs = [
+    dbus
+    dbus-glib
+    gtk3
+    gdk-pixbuf # loading cow images
+    librsvg # dreaming SVG images
+  ];
+  nativeBuildInputs = [ makeWrapper pkg-config ];
+
+  configureFlags = [ "--enable-dbus" ];
+
+  postInstall = ''
+    for tool in xcowdream xcowsay xcowthink xcowfortune; do
+      wrapProgram $out/bin/$tool \
+        --prefix PATH : $out/bin:${fortune}/bin
+    done
+  '';
+
+  meta = with stdenv.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;
+    maintainers = with maintainers; [ das_j ];
+  };
+}
diff --git a/pkgs/misc/autotiling/default.nix b/pkgs/misc/autotiling/default.nix
new file mode 100644
index 00000000000..b104f359363
--- /dev/null
+++ b/pkgs/misc/autotiling/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonApplication, fetchPypi, i3ipc, importlib-metadata }:
+
+buildPythonApplication rec {
+  pname = "autotiling";
+  version = "1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0hwvy9bxwv9fakqqiyrkmpckxgm0z85c240p84ibdhja9sm086v0";
+  };
+
+  propagatedBuildInputs = [ i3ipc importlib-metadata ];
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/nwg-piotr/autotiling";
+    description = "Script for sway and i3 to automatically switch the horizontal / vertical window split orientation";
+    license = licenses.gpl3Plus;
+    platforms= platforms.linux;
+    maintainers = with maintainers; [ artturin ];
+  };
+}
+
diff --git a/pkgs/misc/cbeams/default.nix b/pkgs/misc/cbeams/default.nix
index ec045ebf3ef..928b03df09f 100644
--- a/pkgs/misc/cbeams/default.nix
+++ b/pkgs/misc/cbeams/default.nix
@@ -16,6 +16,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/tartley/cbeams";
     description = "Command-line program to draw animated colored circles in the terminal";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/pkgs/misc/cups/drivers/cups-bjnp/default.nix b/pkgs/misc/cups/drivers/cups-bjnp/default.nix
index e9fac1c73e2..9dbfdd8b803 100644
--- a/pkgs/misc/cups/drivers/cups-bjnp/default.nix
+++ b/pkgs/misc/cups/drivers/cups-bjnp/default.nix
@@ -11,7 +11,11 @@ stdenv.mkDerivation rec {
   preConfigure = ''configureFlags="--with-cupsbackenddir=$out/lib/cups/backend"'';
 
   buildInputs = [cups];
-  NIX_CFLAGS_COMPILE = [ "-include stdio.h" "-Wno-error=stringop-truncation" ];
+  NIX_CFLAGS_COMPILE = [
+    "-include stdio.h"
+    "-Wno-error=stringop-truncation"
+    "-Wno-error=deprecated-declarations"
+  ];
 
   meta = {
     description = "CUPS back-end for Canon printers";
diff --git a/pkgs/misc/cups/drivers/hl1210w/default.nix b/pkgs/misc/cups/drivers/hl1210w/default.nix
new file mode 100644
index 00000000000..88947ed3339
--- /dev/null
+++ b/pkgs/misc/cups/drivers/hl1210w/default.nix
@@ -0,0 +1,62 @@
+{stdenv, pkgsi686Linux, fetchurl, cups, dpkg, gnused, makeWrapper, ghostscript, file, a2ps, coreutils, gawk}:
+
+let
+  version = "3.0.1-1";
+  cupsdeb = fetchurl {
+    url = "https://download.brother.com/welcome/dlf101546/hl1210wcupswrapper-${version}.i386.deb";
+    sha256 = "0395mnw6c7qpjgjch9in5q9p2fjdqvz9bwfwp6q1hzhs08ryk7w0";
+  };
+  lprdeb = fetchurl {
+    url = "https://download.brother.com/welcome/dlf101547/hl1210wlpr-${version}.i386.deb";
+    sha256 = "1sl3g2cd4a2gygryrr27ax3qaa65cbirz3kzskd8afkwqpmjyv7j";
+  };
+in
+stdenv.mkDerivation {
+  name = "cups-brother-hl1210W";
+
+  srcs = [ lprdeb cupsdeb ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ cups ghostscript dpkg a2ps ];
+  dontUnpack = true;
+
+  installPhase = ''
+    # install lpr
+    dpkg-deb -x ${lprdeb} $out
+
+    substituteInPlace $out/opt/brother/Printers/HL1210W/lpd/filter_HL1210W \
+      --replace /opt "$out/opt"
+
+    sed -i '/GHOST_SCRIPT=/c\GHOST_SCRIPT=gs' $out/opt/brother/Printers/HL1210W/lpd/psconvert2
+
+    patchelf --set-interpreter ${pkgsi686Linux.glibc.out}/lib/ld-linux.so.2 $out/opt/brother/Printers/HL1210W/lpd/brprintconflsr3
+    patchelf --set-interpreter ${pkgsi686Linux.glibc.out}/lib/ld-linux.so.2 $out/opt/brother/Printers/HL1210W/lpd/rawtobr3
+    patchelf --set-interpreter ${pkgsi686Linux.glibc.out}/lib/ld-linux.so.2 $out/opt/brother/Printers/HL1210W/inf/braddprinter
+
+    wrapProgram $out/opt/brother/Printers/HL1210W/lpd/psconvert2 \
+      --prefix PATH ":" ${ stdenv.lib.makeBinPath [ gnused coreutils gawk ] }
+    wrapProgram $out/opt/brother/Printers/HL1210W/lpd/filter_HL1210W \
+      --prefix PATH ":" ${ stdenv.lib.makeBinPath [ ghostscript a2ps file gnused coreutils ] }
+
+    # install cups
+    dpkg-deb -x ${cupsdeb} $out
+
+    substituteInPlace $out/opt/brother/Printers/HL1210W/cupswrapper/brother_lpdwrapper_HL1210W --replace /opt "$out/opt"
+
+    mkdir -p $out/lib/cups/filter
+    ln -s $out/opt/brother/Printers/HL1210W/cupswrapper/brother_lpdwrapper_HL1210W $out/lib/cups/filter/brother_lpdwrapper_HL1210W
+    ln -s $out/opt/brother/Printers/HL1210W/cupswrapper/brother-HL1210W-cups-en.ppd $out/lib/cups/filter/brother-HL1210W-cups-en.ppd
+    # cp brcupsconfig4 $out/opt/brother/Printers/HL1110/cupswrapper/
+    ln -s $out/opt/brother/Printers/HL1210W/cupswrapper/brcupsconfig4 $out/lib/cups/filter/brcupsconfig4
+
+    wrapProgram $out/opt/brother/Printers/HL1210W/cupswrapper/brother_lpdwrapper_HL1210W \
+      --prefix PATH ":" ${ stdenv.lib.makeBinPath [ gnused coreutils gawk ] }
+    '';
+
+  meta = {
+    homepage = "http://www.brother.com/";
+    description = "Brother HL1210W printer driver";
+    license = stdenv.lib.licenses.unfree;
+    platforms = stdenv.lib.platforms.linux;
+    downloadPage = "https://support.brother.com/g/b/downloadlist.aspx?c=nz&lang=en&prod=hl1210w_eu_as&os=128";
+  };
+}
diff --git a/pkgs/misc/drivers/epkowa/default.nix b/pkgs/misc/drivers/epkowa/default.nix
index 9724e68a04d..6016cc779f1 100644
--- a/pkgs/misc/drivers/epkowa/default.nix
+++ b/pkgs/misc/drivers/epkowa/default.nix
@@ -39,7 +39,7 @@ let plugins = {
         "https://download2.ebz.epson.net/iscan/plugin/perfection-v330/rpm/x64/iscan-perfection-v330-bundle-${version}.x64.rpm.tar.gz"
         "https://web.archive.org/web/https://download2.ebz.epson.net/iscan/plugin/perfection-v330/rpm/x64/iscan-perfection-v330-bundle-${version}.x64.rpm.tar.gz"
       ];
-      sha256 = "16iq5gmfcgkvcx5hixggxgb8lwin5gjdhnq0zabgpfqg11n2w21q";
+      sha256 = "056c04pfsf98nnknphg28l489isqb6y4l2c8g7wqhclwgj7m338i";
     };
 
     nativeBuildInputs = [ autoPatchelfHook rpm ];
@@ -69,7 +69,7 @@ let plugins = {
         "https://download2.ebz.epson.net/iscan/plugin/gt-x770/rpm/x64/iscan-gt-x770-bundle-${version}.x64.rpm.tar.gz"
         "https://web.archive.org/web/https://download2.ebz.epson.net/iscan/plugin/gt-x770/rpm/x64/iscan-gt-x770-bundle-${version}.x64.rpm.tar.gz"
       ];
-      sha256 = "1cz4z3wz216s77z185m665jcgdslil5gn4dsi118nv1fm17z3jik";
+      sha256 = "1chxdm6smv2d14pn2jl9xyd0vr42diy7vpskd3b9a61gf5h3gj03";
     };
     installPhase = ''
       cd plugins
@@ -99,7 +99,7 @@ let plugins = {
         "https://download2.ebz.epson.net/iscan/plugin/gt-f720/rpm/x64/iscan-gt-f720-bundle-${version}.x64.rpm.tar.gz"
         "https://web.archive.org/web/https://download2.ebz.epson.net/iscan/plugin/gt-f720/rpm/x64/iscan-gt-f720-bundle-${version}.x64.rpm.tar.gz"
       ];
-      sha256 = "12rivh00n9mhagy5yjl1m0bv7ypbig6brqkxm0a12xy0mjq7yv8y";
+      sha256 = "1xnbmb2rn610kqpg1x6k1cc13zlmx2f3l2xnj6809rnhg96qqn20";
     };
     installPhase = ''
       cd plugins
@@ -129,7 +129,7 @@ let plugins = {
         "https://download2.ebz.epson.net/iscan/plugin/gt-s80/rpm/x64/iscan-gt-s80-bundle-${version}.x64.rpm.tar.gz"
         "https://web.archive.org/web/https://download2.ebz.epson.net/iscan/plugin/gt-s80/rpm/x64/iscan-gt-s80-bundle-${version}.x64.rpm.tar.gz"
       ];
-      sha256 = "1ran75zsxcdci00jakngkz6p9lj4q483hjapmf80p68rzhpmdr5y";
+      sha256 = "00qfdgs03k7bbs67zjrk8hbxvlyinsmk890amp9cmpfjfzdxgg58";
     };
     installPhase = ''
       cd plugins
@@ -162,7 +162,7 @@ let plugins = {
         "https://download2.ebz.epson.net/iscan/plugin/gt-s650/rpm/x64/iscan-gt-s650-bundle-${version}.x64.rpm.tar.gz"
         "https://web.archive.org/web/https://download2.ebz.epson.net/iscan/plugin/gt-s650/rpm/x64/iscan-gt-s650-bundle-${version}.x64.rpm.tar.gz"
       ];
-      sha256 = "1ffddf488c5fc1eb39452499951bd13a2dc1971980c0551176076c81af363038";
+      sha256 = "0fn4lz4g0a8l301v6yv7fwl37wgwhz5y90nf681f655xxc91hqh7";
     };
 
     nativeBuildInputs = [ autoPatchelfHook rpm ];
@@ -199,7 +199,7 @@ let plugins = {
         "https://download2.ebz.epson.net/iscan/general/rpm/x64/iscan-bundle-${version}.x64.rpm.tar.gz"
         "https://web.archive.org/web/https://download2.ebz.epson.net/iscan/general/rpm/x64/iscan-bundle-${version}.x64.rpm.tar.gz"
       ];
-      sha256 = "1l0y4dy88y91jdq66pxrxqmiwsxwy0rd7x4bh0cw08r4iyhjqprz";
+      sha256 = "0jssigsgkxb9i7qa7db291a1gbvwl795i4ahvb7bnqp33czkj85k";
     };
     installPhase = ''
       cd plugins
diff --git a/pkgs/misc/drivers/epson-escpr2/default.nix b/pkgs/misc/drivers/epson-escpr2/default.nix
index 80aa410017d..040ac00085e 100644
--- a/pkgs/misc/drivers/epson-escpr2/default.nix
+++ b/pkgs/misc/drivers/epson-escpr2/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "epson-inkjet-printer-escpr2";
-  version = "1.1.13";
+  version = "1.1.17";
 
   src = fetchurl {
     # To find new versions, visit
@@ -11,10 +11,10 @@ stdenv.mkDerivation rec {
     # version.  
     # NOTE: Don't forget to update the webarchive link too!
     urls = [
-      "https://download3.ebz.epson.net/dsc/f/03/00/11/33/72/48e6a853e518a1bedaee575113e087c0bd5d6e2e/epson-inkjet-printer-escpr2-1.1.13-1lsb3.2.src.rpm"
-      "https://web.archive.org/web/20200629154055if_/https://download3.ebz.epson.net/dsc/f/03/00/11/33/72/48e6a853e518a1bedaee575113e087c0bd5d6e2e/epson-inkjet-printer-escpr2-1.1.13-1lsb3.2.src.rpm"
+      "https://download3.ebz.epson.net/dsc/f/03/00/11/79/08/18185180910529f498f629f5fc08d3d479cdf5c3/epson-inkjet-printer-escpr2-1.1.17-1lsb3.2.src.rpm"
+      "https://web.archive.org/web/20200726093746if_/https://download3.ebz.epson.net/dsc/f/03/00/11/79/08/18185180910529f498f629f5fc08d3d479cdf5c3/epson-inkjet-printer-escpr2-1.1.17-1lsb3.2.src.rpm"
     ];
-    sha256 = "07g62vndn2wh9bablvdl2cxn9wq3hzn16mqji27j20h33cwqmzj1";
+    sha256 = "0bqqc04z9gayas5p7410la5nad7waykqyw1z1imcqimfl4qrz1m6";
   };
 
   patches = [ ./cups-filter-ppd-dirs.patch ];
diff --git a/pkgs/misc/drivers/hplip/default.nix b/pkgs/misc/drivers/hplip/default.nix
index 98ced28b877..afd1f8f6fe4 100644
--- a/pkgs/misc/drivers/hplip/default.nix
+++ b/pkgs/misc/drivers/hplip/default.nix
@@ -230,7 +230,7 @@ python3Packages.buildPythonApplication {
 
   # There are some binaries there, which reference gcc-unwrapped otherwise.
   stripDebugList = [
-    "share/hplip" "lib/cups/backend" "lib/cups/filter" "lib/python3.7/site-packages" "lib/sane"
+    "share/hplip" "lib/cups/backend" "lib/cups/filter" python3Packages.python.sitePackages "lib/sane"
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/misc/drivers/xboxdrv/default.nix b/pkgs/misc/drivers/xboxdrv/default.nix
index eb0511b0c4e..f7fd59fd9fd 100644
--- a/pkgs/misc/drivers/xboxdrv/default.nix
+++ b/pkgs/misc/drivers/xboxdrv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, scons, libX11, pkgconfig
+{ stdenv, fetchurl, sconsPackages, libX11, pkgconfig
 , libusb1, boost, glib, dbus-glib }:
 
 let
@@ -13,7 +13,7 @@ in stdenv.mkDerivation {
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
-  nativeBuildInputs = [ pkgconfig scons.py2 ];
+  nativeBuildInputs = [ pkgconfig sconsPackages.scons_3_1_2 ];
   buildInputs = [ libX11 libusb1 boost glib dbus-glib ];
   dontUseSconsInstall = true;
 
diff --git a/pkgs/misc/emulators/emu2/default.nix b/pkgs/misc/emulators/emu2/default.nix
new file mode 100644
index 00000000000..fb13b602b6a
--- /dev/null
+++ b/pkgs/misc/emulators/emu2/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "emu2";
+  version = "unstable-2020-06-04";
+
+  src = fetchFromGitHub {
+    owner  = "dmsc";
+    repo   = "emu2";
+    rev    = "f9599d347aab07d9281400ec8b214aabd187fbcd";
+    sha256 = "0d8fb3wp477kfi0p4mmr69lxsbgb4gl9pqmm68g9ixzrfch837v4";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/dmsc/emu2/";
+    description = "A simple text-mode x86 + DOS emulator";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ dramaturg ];
+    license = licenses.gpl2;
+  };
+}
diff --git a/pkgs/misc/emulators/gxemul/default.nix b/pkgs/misc/emulators/gxemul/default.nix
index e742fde90ac..8671056d14e 100644
--- a/pkgs/misc/emulators/gxemul/default.nix
+++ b/pkgs/misc/emulators/gxemul/default.nix
@@ -2,26 +2,24 @@
 
 stdenv.mkDerivation rec {
   pname = "gxemul";
-  version = "0.6.0.1";
+  version = "0.6.2";
 
   src = fetchurl {
-    url = "http://gxemul.sourceforge.net/src/${pname}-${version}.tar.gz";
-    sha256 = "1afd9l0igyv7qgc0pn3rkdgrl5d0ywlyib0qhg4li23zilyq5407";
+    url = "http://gavare.se/gxemul/src/gxemul-${version}.tar.gz";
+    sha256 = "0iqmazfn7ss5n27m1a9n9nps3vzhag1phzb7qw0wgczycmwsq0x7";
   };
 
   configurePhase = "./configure";
 
   installPhase = ''
-    mkdir -p $out/bin;
-    mkdir -p $out/share/${pname}-${version};
-    cp gxemul $out/bin;
-    cp -r doc $out/share/${pname}-${version};
-    cp -r demos $out/share/${pname}-${version};
-    cp -r ./man $out/;
+    mkdir -p {$out/bin,$out/share/${pname}-${version}}
+    cp -r {doc,demos} $out/share/${pname}-${version}
+    cp gxemul $out/bin
+    cp -r ./man $out
   '';
 
-  meta = {
-    license = stdenv.lib.licenses.bsd3;
+  meta = with stdenv.lib; {
+    homepage = "http://gavare.se/gxemul/";
     description = "Gavare's experimental emulator";
     longDescription = ''
       GXemul is a framework for full-system computer architecture
@@ -32,6 +30,6 @@ stdenv.mkDerivation rec {
       and serial controllers. The emulation is working well enough to
       allow several unmodified "guest" operating systems to run.
     '';
-    homepage = "http://gxemul.sourceforge.net/";
+    license = licenses.bsd3;
   };
 }
diff --git a/pkgs/misc/emulators/mame/default.nix b/pkgs/misc/emulators/mame/default.nix
index a7bce745984..ea5e9776226 100644
--- a/pkgs/misc/emulators/mame/default.nix
+++ b/pkgs/misc/emulators/mame/default.nix
@@ -7,7 +7,7 @@ with stdenv;
 
 let
   majorVersion = "0";
-  minorVersion = "222";
+  minorVersion = "223";
 
   desktopItem = makeDesktopItem {
     name = "MAME";
@@ -26,7 +26,7 @@ in mkDerivation {
     owner = "mamedev";
     repo = "mame";
     rev = "mame${majorVersion}${minorVersion}";
-    sha256 = "1ij08h7cflr76qzyhhj21948275lqkpzi9r4pbc7h2avrlpsijx4";
+    sha256 = "1lh5cmz4f6km2d8fn3m9ns7fc4wzbdp71v0s6vjcynycpyhy3yl1";
   };
 
   hardeningDisable = [ "fortify" ];
diff --git a/pkgs/misc/emulators/mgba/default.nix b/pkgs/misc/emulators/mgba/default.nix
index e67549b208b..73845581b1b 100644
--- a/pkgs/misc/emulators/mgba/default.nix
+++ b/pkgs/misc/emulators/mgba/default.nix
@@ -15,13 +15,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "mgba";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "mgba-emu";
     repo = "mgba";
     rev = version;
-    sha256 = "0dlwhn3hrpaqnl5hjs53y8j2i16idxrg3gy688gcwrc9z1a6bkn2";
+    sha256 = "0rwlfjdr0rzbq4kaplvwsgyb8xq6nrzxss2c8xrgw9hqw3ymx4s3";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/misc/emulators/pcsx2/default.nix b/pkgs/misc/emulators/pcsx2/default.nix
index 3faba2ee467..af2cca5494e 100644
--- a/pkgs/misc/emulators/pcsx2/default.nix
+++ b/pkgs/misc/emulators/pcsx2/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pcsx2";
-  version = "1.6.0-rc";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "PCSX2";
     repo = "pcsx2";
     rev = "v${version}";
-    sha256 = "1mdv1dgwawb4k6bs1jh6j2jaaxg168fbssm1lwnlk5di0gz31h23";
+    sha256 = "0528kh3275285lvfsykycdhc35c1z8pmccl2s7dfi3va2cp4x8wa";
   };
 
   postPatch = "sed '1i#include \"x86intrin.h\"' -i common/src/x86emitter/cpudetect.cpp";
diff --git a/pkgs/misc/emulators/retroarch/default.nix b/pkgs/misc/emulators/retroarch/default.nix
index a9950a14b4d..bfc2c338769 100644
--- a/pkgs/misc/emulators/retroarch/default.nix
+++ b/pkgs/misc/emulators/retroarch/default.nix
@@ -43,9 +43,6 @@ stdenv.mkDerivation rec {
                                               libXdmcp libXext libXxf86vm mesa udev
                                               wayland libxkbcommon ];
 
-  # we use prefix-less pkg-config
-  PKG_CONF_PATH = "pkg-config";
-
   enableParallelBuilding = true;
 
   configureFlags = stdenv.lib.optionals stdenv.isLinux [ "--enable-kms" "--enable-egl" ];
diff --git a/pkgs/misc/emulators/ryujinx/default.nix b/pkgs/misc/emulators/ryujinx/default.nix
new file mode 100644
index 00000000000..568af317d25
--- /dev/null
+++ b/pkgs/misc/emulators/ryujinx/default.nix
@@ -0,0 +1,106 @@
+{ stdenv, fetchFromGitHub, fetchurl, makeWrapper, makeDesktopItem, linkFarmFromDrvs
+, dotnet-sdk_3, dotnetPackages, dotnetCorePackages
+, SDL2, libX11, openal
+, gtk3, gobject-introspection, wrapGAppsHook
+}:
+
+let
+  runtimeDeps = [
+    SDL2
+    gtk3
+    libX11
+    openal
+  ];
+in stdenv.mkDerivation rec {
+  pname = "ryujinx";
+  version = "1.0.5160";
+
+  src = fetchFromGitHub {
+    owner = "Ryujinx";
+    repo = "Ryujinx";
+    rev = "58f65b6523fb25d989b011c51f963520c811f9f0";
+    sha256 = "19fizqmcr8i3axi3j5hg8p6dxr1pxnl5l58z4pws6nj1xbq8z5mi";
+  };
+
+  nativeBuildInputs = [ dotnet-sdk_3 dotnetPackages.Nuget makeWrapper wrapGAppsHook gobject-introspection ];
+
+  nugetDeps = linkFarmFromDrvs "${pname}-nuget-deps" (import ./deps.nix {
+    fetchNuGet = { name, version, sha256 }: fetchurl {
+      name = "nuget-${name}-${version}.nupkg";
+      url = "https://www.nuget.org/api/v2/package/${name}/${version}";
+      inherit sha256;
+    };
+  });
+
+  patches = [ ./log.patch ]; # Without this, Ryujinx tries to write logs to the nix store. This patch makes it write to "~/.config/Ryujinx/Logs" on Linux.
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    export DOTNET_CLI_TELEMETRY_OPTOUT=1
+    export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+
+    nuget sources Add -Name nixos -Source "$PWD/nixos"
+    nuget init "$nugetDeps" "$PWD/nixos"
+
+    # FIXME: https://github.com/NuGet/Home/issues/4413
+    mkdir -p $HOME/.nuget/NuGet
+    cp $HOME/.config/NuGet/NuGet.Config $HOME/.nuget/NuGet
+
+    dotnet restore --source nixos Ryujinx.sln
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    dotnet build Ryujinx.sln \
+      --no-restore \
+      --configuration Release \
+      -p:Version=${version}
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    dotnet publish Ryujinx.sln \
+      --no-build \
+      --configuration Release \
+      --no-self-contained \
+      --output $out/lib/ryujinx
+    shopt -s extglob
+
+    makeWrapper $out/lib/ryujinx/Ryujinx $out/bin/Ryujinx \
+      --set DOTNET_ROOT "${dotnetCorePackages.netcore_3_1}" \
+      --suffix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath runtimeDeps}" \
+      ''${gappsWrapperArgs[@]}
+
+    for i in 16 32 48 64 96 128 256 512 1024; do
+      install -D ${src}/Ryujinx/Ui/assets/Icon.png $out/share/icons/hicolor/''${i}x$i/apps/ryujinx.png
+    done
+    cp -r ${makeDesktopItem {
+      desktopName = "Ryujinx";
+      name = "ryujinx";
+      exec = "Ryujinx";
+      icon = "ryujinx";
+      comment = meta.description;
+      type = "Application";
+      categories = "Game;";
+    }}/share/applications $out/share
+
+    runHook postInstall
+  '';
+
+  # Strip breaks the executable.
+  dontStrip = true;
+
+  meta = with stdenv.lib; {
+    description = "Experimental Nintendo Switch Emulator written in C#";
+    homepage = "https://ryujinx.org/";
+    license = licenses.mit;
+    maintainers = [ maintainers.ivar ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/misc/emulators/ryujinx/deps.nix b/pkgs/misc/emulators/ryujinx/deps.nix
new file mode 100644
index 00000000000..cb25865f219
--- /dev/null
+++ b/pkgs/misc/emulators/ryujinx/deps.nix
@@ -0,0 +1,1317 @@
+{ fetchNuGet }: [
+  (fetchNuGet {
+    name = "AtkSharp";
+    version = "3.22.25.56";
+    sha256 = "069fm4wplxb4s1i6mdj00b22zqpz6pg9miglcj8mkf1b4lnn09g0";
+  })
+  (fetchNuGet {
+    name = "CairoSharp";
+    version = "3.22.25.56";
+    sha256 = "0b7p4yj88wgayh464j3rkbc4js8z57wxy3mprgvx86i3rc2v5jd9";
+  })
+  (fetchNuGet {
+    name = "Concentus";
+    version = "1.1.7";
+    sha256 = "0y5z444wrbhlmsqpy2sxmajl1fbf74843lvgj3y6vz260dn2q0l0";
+  })
+  (fetchNuGet {
+    name = "DiscordRichPresence";
+    version = "1.0.150";
+    sha256 = "0qmbi4sccia3w80q8xfvj3bw62nvz047wq198n2b2aflkf47bq79";
+  })
+  (fetchNuGet {
+    name = "FFmpeg.AutoGen";
+    version = "4.3.0";
+    sha256 = "03lb3xzgwxik8nljq87pr1b9bsxbsl3a4kvy0kqkw9f57n29ihvk";
+  })
+  (fetchNuGet {
+    name = "GdkSharp";
+    version = "3.22.25.56";
+    sha256 = "0f708dwy6i9hghxs711scwkww28lvfjd6gykk7xv921vich5xvy6";
+  })
+  (fetchNuGet {
+    name = "GioSharp";
+    version = "3.22.25.56";
+    sha256 = "1i7x1bakv5sq27ppl6w79c1wbvnfhf1713plc9ixaznh1fclcnwr";
+  })
+  (fetchNuGet {
+    name = "GLibSharp";
+    version = "3.22.25.56";
+    sha256 = "12czfm0lgjcy9hgqsiycwfv124dq619svrnsi036246i5hycj37w";
+  })
+  (fetchNuGet {
+    name = "GLWidget";
+    version = "1.0.2";
+    sha256 = "0nb46jiscnsywwdfy7zhx1bw4jfmca3s6l8dhbi99gc4bvp8ar7p";
+  })
+  (fetchNuGet {
+    name = "GtkSharp";
+    version = "3.22.25.56";
+    sha256 = "18dbn834wimdmxmgsqd81hyvjyyzgbnayzvz9f714cgw4yjkjyqs";
+  })
+  (fetchNuGet {
+    name = "GtkSharp.Dependencies";
+    version = "1.1.0";
+    sha256 = "1g1rhcn38ww97638rds6l5bysra43hkhv47fy71fvq89623zgyxn";
+  })
+  (fetchNuGet {
+    name = "LibHac";
+    version = "0.11.3";
+    sha256 = "0xj2ip3bjy29xwy4fn5fncjadwbbg59sa3580cmkj47aab9cddyn";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
+    version = "3.1.2";
+    sha256 = "19wfh9yg4n2khbl7pvf6ngx95m5p8lw4l9y935pv7nh4xgwk02p9";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.App.Runtime.osx-x64";
+    version = "3.1.2";
+    sha256 = "1v7i4f1k3j8xavbfwb7qr5f680gg5nblrmx5zcsj7l07q4wbnmwl";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.App.Runtime.win-x64";
+    version = "3.1.2";
+    sha256 = "1gciv56vzfpl86lb9gzvyfj8w2qd7jhdrbxph6l1aykwzqbxf7bd";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeCoverage";
+    version = "16.2.0";
+    sha256 = "07h1ylca2j7a4hznq4m4b8nrzv1lw7gcf848k2a3nbm6rapv61ki";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeCoverage";
+    version = "16.5.0";
+    sha256 = "0610wzn4qyywf9lb4538vwqhprxc4g0g7gjbmnjzvx97jr5nd5mf";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.0.1";
+    sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
+  })
+  (fetchNuGet {
+    name = "Microsoft.DotNet.InternalAbstractions";
+    version = "1.0.0";
+    sha256 = "0mp8ihqlb7fsa789frjzidrfjc1lrhk88qp3xm5qvr7vf4wy4z8x";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App.Host.osx-x64";
+    version = "3.1.2";
+    sha256 = "0sy1h7ffq8s3bkvf1carf4rn9qf7hn0yv6dcjklgh3g9jhlsq34f";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App.Host.win-x64";
+    version = "3.1.2";
+    sha256 = "1yqsnl4my2q1ps666162kn0h34wyfajiwqs6snhrww195b59msdv";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App.Runtime.linux-x64";
+    version = "3.1.2";
+    sha256 = "0a332ia5pabnz7mdfc99a5hlc7drnwzlc7cj9b5c3an6dq636p66";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App.Runtime.osx-x64";
+    version = "3.1.2";
+    sha256 = "1wb8h30di1mix8liz937snl1w8hbblixrpiazjskxclp3i7m1rg3";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App.Runtime.win-x64";
+    version = "3.1.2";
+    sha256 = "0aj005mh57ynscf87cpfshc3ff22l4svf6lqz0hpqsi0hlidqwqx";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.0.1";
+    sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.1.0";
+    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "2.0.0";
+    sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "3.1.0";
+    sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.0.1";
+    sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.1.0";
+    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NET.Test.Sdk";
+    version = "16.2.0";
+    sha256 = "1nr5jxchdy3p7jm4fm73d5yivghjisdsyafma8fs5d1v49bhgckq";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NET.Test.Sdk";
+    version = "16.5.0";
+    sha256 = "19f5bvzci5mmfz81jwc4dax4qdf7w4k67n263383mn8mawf22bfq";
+  })
+  (fetchNuGet {
+    name = "Microsoft.TestPlatform.ObjectModel";
+    version = "16.2.0";
+    sha256 = "1ywzyx75d61wm75l7wglxzglg5k9nq66wd56m52hmmg8mf253z57";
+  })
+  (fetchNuGet {
+    name = "Microsoft.TestPlatform.ObjectModel";
+    version = "16.5.0";
+    sha256 = "02h7j1fr0fwcggn0wgddh59k8b2wmly3snckwhswzqvks5rvfnnw";
+  })
+  (fetchNuGet {
+    name = "Microsoft.TestPlatform.TestHost";
+    version = "16.2.0";
+    sha256 = "05dx9nv1skc5ji79ji5vz6c93b09w9xh70iyy6j5ca978ga92i6g";
+  })
+  (fetchNuGet {
+    name = "Microsoft.TestPlatform.TestHost";
+    version = "16.5.0";
+    sha256 = "08cvss66lqa92h55dxkbrzn796jckhlyj53zz22x3qyr6xi21v5v";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Primitives";
+    version = "4.0.1";
+    sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Primitives";
+    version = "4.3.0";
+    sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Registry";
+    version = "4.0.0";
+    sha256 = "1spf4m9pikkc19544p29a47qnhcd885klncahz133hbnyqbkmz9k";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Registry";
+    version = "4.3.0";
+    sha256 = "1gxyzxam8163vk1kb6xzxjj4iwspjsz9zhgn1w9rjzciphaz0ig7";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Registry";
+    version = "4.5.0";
+    sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Registry";
+    version = "4.7.0";
+    sha256 = "0bx21jjbs7l5ydyw4p6cn07chryxpmchq2nl5pirzz4l3b0q4dgs";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.SystemEvents";
+    version = "4.5.0";
+    sha256 = "0fnkv3ky12227zqg4zshx4kw2mvysq2ppxjibfw02cc3iprv4njq";
+  })
+  (fetchNuGet {
+    name = "Mono.Posix.NETStandard";
+    version = "1.0.0";
+    sha256 = "0xlja36hwpjm837haq15mjh2prcf68lyrmn72nvgpz8qnf9vappw";
+  })
+  (fetchNuGet {
+    name = "MsgPack.Cli";
+    version = "1.0.1";
+    sha256 = "1dk2bs3g16lsxcjjm7gfx6jxa4667wccw94jlh2ql7y7smvh9z8r";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "1.6.0";
+    sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "2.0.0";
+    sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "12.0.2";
+    sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "9.0.1";
+    sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r";
+  })
+  (fetchNuGet {
+    name = "NuGet.Frameworks";
+    version = "5.0.0";
+    sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr";
+  })
+  (fetchNuGet {
+    name = "NUnit";
+    version = "3.12.0";
+    sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2";
+  })
+  (fetchNuGet {
+    name = "NUnit3TestAdapter";
+    version = "3.15.1";
+    sha256 = "1nhpvzxbxgymmkb3bd5ci40rg8k71bfx2ghbgc99znvnvhf2034y";
+  })
+  (fetchNuGet {
+    name = "NUnit3TestAdapter";
+    version = "3.16.1";
+    sha256 = "1pzhmapfdszsfza7zjr3zrlz4fssdxsyiwmlj76a40mbhxhfa4q9";
+  })
+  (fetchNuGet {
+    name = "OpenTK.NetStandard";
+    version = "1.0.5.12";
+    sha256 = "1n8j6k47189l5b6rnhyq391d84v6zkpiiqq41cccb6qizvrcgl69";
+  })
+  (fetchNuGet {
+    name = "PangoSharp";
+    version = "3.22.25.56";
+    sha256 = "12b0761nfsci4rvzcba4hrh5rcn6q24qaxwwz66myb82c999qj8w";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Collections";
+    version = "4.0.11";
+    sha256 = "1x44bm1cgv28zmrp095wf9mn8a6a0ivnzp9v14dcbhx06igxzgg0";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Collections";
+    version = "4.3.0";
+    sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Diagnostics.Tools";
+    version = "4.0.1";
+    sha256 = "0qcpm90hrm9gx9pmxlvfml65jm0bwpr5dg3r7l7xm9nvmibvc7n7";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Diagnostics.Tools";
+    version = "4.3.0";
+    sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Diagnostics.Tracing";
+    version = "4.3.0";
+    sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Globalization";
+    version = "4.0.11";
+    sha256 = "0240rp66pi5bw1xklmh421hj7arwcdmjmgfkiq1cbc6nrm8ah286";
+  })
+  (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";
+    version = "4.1.0";
+    sha256 = "0kasfkjiml2kk8prnyn1990nhsahnjggvqwszqjdsfwfl43vpcb5";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.IO";
+    version = "4.3.0";
+    sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection";
+    version = "4.1.0";
+    sha256 = "06kcs059d5czyakx75rvlwa2mr86156w18fs7chd03f7084l7mq6";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection";
+    version = "4.3.0";
+    sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Extensions";
+    version = "4.0.1";
+    sha256 = "05k34ijz9g9csh0vbbv3g3lrxl163izwcfncmbcl7k073h32rzkr";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Extensions";
+    version = "4.3.0";
+    sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Primitives";
+    version = "4.0.1";
+    sha256 = "1zxrpvixr5fqzkxpnin6g6gjq6xajy1snghz99ds2dwbhm276rhz";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "1jmgs7hynb2rff48623wnyb37558bbh1q28k9c249j5r5sgsr5kr";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime";
+    version = "4.1.0";
+    sha256 = "0mjr2bi7wvnkphfjqgkyf8vfyvy15a829jz6mivl6jmksh2bx40m";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime";
+    version = "4.3.0";
+    sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.Handles";
+    version = "4.0.1";
+    sha256 = "1kswgqhy34qvc49i981fk711s7knd6z13bp0rin8ms6axkh98nas";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.InteropServices";
+    version = "4.1.0";
+    sha256 = "0gm8if0hcmp1qys1wmx4970k2x62pqvldgljsyzbjhiy5644vl8z";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding";
+    version = "4.0.11";
+    sha256 = "0m4vgmzi1ky8xlj0r7xcyazxln3j9dlialnk6d2gmgrfnzf8f9m7";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding.Extensions";
+    version = "4.0.11";
+    sha256 = "0d1rxxpvg9v7wlibsfgz0r4hwigpadas822qf8m8fs1gma9gs877";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding.Extensions";
+    version = "4.3.0";
+    sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Threading.Tasks";
+    version = "4.0.11";
+    sha256 = "1qzdp09qs8br5qxzlm1lgbjn4n57fk8vr1lzrmli2ysdg6x1xzvk";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Threading.Tasks";
+    version = "4.3.0";
+    sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Threading.Timer";
+    version = "4.3.0";
+    sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086";
+  })
+  (fetchNuGet {
+    name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
+  })
+  (fetchNuGet {
+    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
+  })
+  (fetchNuGet {
+    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    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";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Http";
+    version = "4.0.1";
+    sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography";
+    version = "4.0.0";
+    sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
+  })
+  (fetchNuGet {
+    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
+  })
+  (fetchNuGet {
+    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
+  })
+  (fetchNuGet {
+    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
+  })
+  (fetchNuGet {
+    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.Microsoft.Win32.Primitives";
+    version = "4.3.0";
+    sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Console";
+    version = "4.3.0";
+    sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "05ndbai4vpqrry0ghbfgqc8xblmplwjgndxmdn1zklqimczwjg2d";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.IO.FileSystem";
+    version = "4.0.1";
+    sha256 = "02wnlydnbhai0zy7c3kihg0cis0l1b2z78kyi1ci47c5v0jklwha";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Net.Primitives";
+    version = "4.3.0";
+    sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Net.Sockets";
+    version = "4.3.0";
+    sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Private.Uri";
+    version = "4.0.1";
+    sha256 = "0ic5dgc45jkhcr1g9xmmzjm7ffiw4cymm0fprczlx4fnww4783nm";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Private.Uri";
+    version = "4.3.0";
+    sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Runtime.Extensions";
+    version = "4.1.0";
+    sha256 = "0x1cwd7cvifzmn5x1wafvj75zdxlk3mxy860igh3x1wx0s8167y4";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p";
+  })
+  (fetchNuGet {
+    name = "runtime.win.Microsoft.Win32.Primitives";
+    version = "4.3.0";
+    sha256 = "0k1h8nnp1s0p8rjwgjyj1387cc1yycv0k22igxc963lqdzrx2z36";
+  })
+  (fetchNuGet {
+    name = "runtime.win.System.Console";
+    version = "4.3.0";
+    sha256 = "0x2yajfrbc5zc6g7nmlr44xpjk6p1hxjq47jn3xki5j7i33zw9jc";
+  })
+  (fetchNuGet {
+    name = "runtime.win.System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "1ylkj4v7aq00svij7aq82d86afpwqgrqf2kpikabxl26p19ry9wm";
+  })
+  (fetchNuGet {
+    name = "runtime.win.System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "16fbn4bcynad1ygdq0yk1wmckvs8jvrrf104xa5dc2hlc8y3x58f";
+  })
+  (fetchNuGet {
+    name = "runtime.win.System.IO.FileSystem";
+    version = "4.0.1";
+    sha256 = "1dn9k6x8h27b6vbqh72hsfxax4fwf30jj8lc5328rg52lw29cyn1";
+  })
+  (fetchNuGet {
+    name = "runtime.win.System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "1c01nklbxywszsbfaxc76hsz7gdxac3jkphrywfkdsi3v4bwd6g8";
+  })
+  (fetchNuGet {
+    name = "runtime.win.System.Net.Primitives";
+    version = "4.3.0";
+    sha256 = "1dixh195bi7473n17hspll6i562gghdz9m4jk8d4kzi1mlzjk9cf";
+  })
+  (fetchNuGet {
+    name = "runtime.win.System.Net.Sockets";
+    version = "4.3.0";
+    sha256 = "0lr3zki831vs6qhk5wckv2b9qbfk9rcj0ds2926qvj1b9y9m6sck";
+  })
+  (fetchNuGet {
+    name = "runtime.win.System.Runtime.Extensions";
+    version = "4.1.0";
+    sha256 = "1zmx2msa04ka8mgh8viahi4pqpp86vdhzij2rg1jg131bwlv59yw";
+  })
+  (fetchNuGet {
+    name = "runtime.win.System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "1700famsxndccfbcdz9q14qb20p49lax67mqwpgy4gx3vja1yczr";
+  })
+  (fetchNuGet {
+    name = "Ryujinx.Graphics.Nvdec.Dependencies";
+    version = "4.3.0";
+    sha256 = "0szgbdhyhvzpw8nb9k2ww37p5qipab1pdll8idkk57y5xnl2f7ll";
+  })
+  (fetchNuGet {
+    name = "SkiaSharp";
+    version = "1.68.1.1";
+    sha256 = "013yzsk798dwxdf2y5yx675x96nagfapkri5k3pgsjnmyfp1lvzk";
+  })
+  (fetchNuGet {
+    name = "SkiaSharp.NativeAssets.Linux";
+    version = "1.68.1.1";
+    sha256 = "07448kn9x56pxlnkxp2dpr5jmwj62k48y5m4608mwci32vs675hn";
+  })
+  (fetchNuGet {
+    name = "SkiaSharp.Views.Desktop.Common";
+    version = "1.68.1.1";
+    sha256 = "0wkj952iha7w2i8mvl0mksz2wqkx7vi7xylh10xgddld8kkm03r7";
+  })
+  (fetchNuGet {
+    name = "SkiaSharp.Views.Gtk3";
+    version = "1.68.1.1";
+    sha256 = "19fgshim2i60p55j4jcr0biq6k2xwal5dsmbgvyrrajnssaj3r95";
+  })
+  (fetchNuGet {
+    name = "System.AppContext";
+    version = "4.1.0";
+    sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.0.0";
+    sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.3.0";
+    sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy";
+  })
+  (fetchNuGet {
+    name = "System.CodeDom";
+    version = "4.4.0";
+    sha256 = "1zgbafm5p380r50ap5iddp11kzhr9khrf2pnai6k593wjar74p1g";
+  })
+  (fetchNuGet {
+    name = "System.CodeDom";
+    version = "4.7.0";
+    sha256 = "1lch8gwmw420wsvbv9ir4v5g1ij2ag23cbgi3c9gramj1h4vhlz2";
+  })
+  (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";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Immutable";
+    version = "1.2.0";
+    sha256 = "1jm4pc666yiy7af1mcf7766v710gp0h40p228ghj6bavx7xfa38m";
+  })
+  (fetchNuGet {
+    name = "System.Collections.NonGeneric";
+    version = "4.0.1";
+    sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d";
+  })
+  (fetchNuGet {
+    name = "System.Collections.NonGeneric";
+    version = "4.3.0";
+    sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Specialized";
+    version = "4.0.1";
+    sha256 = "1wbv7y686p5x169rnaim7sln67ivmv6r57falrnx8aap9y33mam9";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Specialized";
+    version = "4.3.0";
+    sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel";
+    version = "4.0.1";
+    sha256 = "0v4qpmqlzyfad2kswxxj2frnaqqhz9201c3yn8fmmarx5vlzg52z";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel";
+    version = "4.3.0";
+    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.EventBasedAsync";
+    version = "4.0.11";
+    sha256 = "07r5i7xwban347nsfw28hhjwpr78ywksjyhywvhj1yr0s7sr00wh";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.EventBasedAsync";
+    version = "4.3.0";
+    sha256 = "1rv9bkb8yyhqqqrx6x95njv6mdxlbvv527b44mrd93g8fmgkifl7";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Primitives";
+    version = "4.1.0";
+    sha256 = "0wb5mnaag0w4fnyc40x19j8v2vshxp266razw64bcqfyj1whb1q0";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Primitives";
+    version = "4.3.0";
+    sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.TypeConverter";
+    version = "4.1.0";
+    sha256 = "178cva9p1cs043h5n2fry5xkzr3wc9n0hwbxa8m3ymld9m6wcv0y";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.TypeConverter";
+    version = "4.3.0";
+    sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
+  })
+  (fetchNuGet {
+    name = "System.Console";
+    version = "4.0.0";
+    sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.0.0";
+    sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Process";
+    version = "4.1.0";
+    sha256 = "061lrcs7xribrmq7kab908lww6kn2xn1w3rdc41q189y0jibl19s";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Process";
+    version = "4.3.0";
+    sha256 = "0g4prsbkygq8m21naqmcp70f24a1ksyix3dihb1r1f71lpi3cfj7";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.TextWriterTraceListener";
+    version = "4.0.0";
+    sha256 = "1xigiwkwyxak0dhm0p8i2zb7a9syly9cdb5s9zkr9rbad4f2fqhs";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tools";
+    version = "4.0.1";
+    sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.TraceSource";
+    version = "4.0.0";
+    sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tracing";
+    version = "4.1.0";
+    sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tracing";
+    version = "4.3.0";
+    sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
+  })
+  (fetchNuGet {
+    name = "System.Drawing.Common";
+    version = "4.5.0";
+    sha256 = "0knqa0zsm91nfr34br8gx5kjqq4v81zdhqkacvs2hzc8nqk0ddhc";
+  })
+  (fetchNuGet {
+    name = "System.Dynamic.Runtime";
+    version = "4.0.11";
+    sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.0.11";
+    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.3.0";
+    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Calendars";
+    version = "4.0.1";
+    sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.0.1";
+    sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.3.0";
+    sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.1.0";
+    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.3.0";
+    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression";
+    version = "4.1.0";
+    sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression.ZipFile";
+    version = "4.0.1";
+    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.0.1";
+    sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.0.1";
+    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.3.0";
+    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.1.0";
+    sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.3.0";
+    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.1.0";
+    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
+  })
+  (fetchNuGet {
+    name = "System.Management";
+    version = "4.7.0";
+    sha256 = "0aw61jl6l78liiq04afxplz0ad5qbyg6vmyjaqrlnrv7whb58n66";
+  })
+  (fetchNuGet {
+    name = "System.Net.Http";
+    version = "4.1.0";
+    sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb";
+  })
+  (fetchNuGet {
+    name = "System.Net.NameResolution";
+    version = "4.3.0";
+    sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq";
+  })
+  (fetchNuGet {
+    name = "System.Net.Primitives";
+    version = "4.0.11";
+    sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
+  })
+  (fetchNuGet {
+    name = "System.Net.Sockets";
+    version = "4.1.0";
+    sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls";
+  })
+  (fetchNuGet {
+    name = "System.Numerics.Vectors";
+    version = "4.3.0";
+    sha256 = "05kji1mv4sl75iwmc613p873145nynm02xiajx8pn0h2kx53d23s";
+  })
+  (fetchNuGet {
+    name = "System.ObjectModel";
+    version = "4.0.12";
+    sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
+  })
+  (fetchNuGet {
+    name = "System.Private.DataContractSerialization";
+    version = "4.1.1";
+    sha256 = "1xk9wvgzipssp1393nsg4n16zbr5481k03nkdlj954hzq5jkx89r";
+  })
+  (fetchNuGet {
+    name = "System.Private.Uri";
+    version = "4.0.1";
+    sha256 = "0k57qhawjysm4cpbfpc49kl4av7lji310kjcamkl23bwgij5ld9j";
+  })
+  (fetchNuGet {
+    name = "System.Private.Uri";
+    version = "4.3.0";
+    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";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.ILGeneration";
+    version = "4.3.0";
+    sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.0.1";
+    sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.3.0";
+    sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.0.1";
+    sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.3.0";
+    sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Metadata";
+    version = "1.3.0";
+    sha256 = "1y5m6kryhjpqqm2g3h3b6bzig13wkiw954x3b7icqjm6xypm1x3b";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.0.1";
+    sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.1.0";
+    sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.3.0";
+    sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.1.0";
+    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.3.0";
+    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.1.0";
+    sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.0.1";
+    sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.3.0";
+    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";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices.RuntimeInformation";
+    version = "4.3.0";
+    sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Loader";
+    version = "4.0.0";
+    sha256 = "0lpfi3psqcp6zxsjk2qyahal7zaawviimc8lhrlswhip2mx7ykl0";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Numerics";
+    version = "4.0.1";
+    sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Json";
+    version = "4.0.2";
+    sha256 = "08ypbzs0sb302ga04ds5b2wxa2gg0q50zpa0nvc87ipjhs0v66dn";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Primitives";
+    version = "4.1.1";
+    sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
+  })
+  (fetchNuGet {
+    name = "System.Security.AccessControl";
+    version = "4.5.0";
+    sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0";
+  })
+  (fetchNuGet {
+    name = "System.Security.AccessControl";
+    version = "4.7.0";
+    sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz";
+  })
+  (fetchNuGet {
+    name = "System.Security.Claims";
+    version = "4.3.0";
+    sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Algorithms";
+    version = "4.2.0";
+    sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Cng";
+    version = "4.2.0";
+    sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Csp";
+    version = "4.0.0";
+    sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Encoding";
+    version = "4.0.0";
+    sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.OpenSsl";
+    version = "4.0.0";
+    sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Primitives";
+    version = "4.0.0";
+    sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.X509Certificates";
+    version = "4.1.0";
+    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";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
+    version = "4.5.0";
+    sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
+    version = "4.7.0";
+    sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d";
+  })
+  (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.Encoding.Extensions";
+    version = "4.0.11";
+    sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.Extensions";
+    version = "4.3.0";
+    sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
+  })
+  (fetchNuGet {
+    name = "System.Text.RegularExpressions";
+    version = "4.1.0";
+    sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
+  })
+  (fetchNuGet {
+    name = "System.Text.RegularExpressions";
+    version = "4.3.0";
+    sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.0.11";
+    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.3.0";
+    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Overlapped";
+    version = "4.0.1";
+    sha256 = "0fi79az3vmqdp9mv3wh2phblfjls89zlj6p9nc3i9f6wmfarj188";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Overlapped";
+    version = "4.3.0";
+    sha256 = "1nahikhqh9nk756dh8p011j36rlcp1bzz3vwi2b4m1l2s3vz8idm";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.0.11";
+    sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.3.0";
+    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.0.0";
+    sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Thread";
+    version = "4.3.0";
+    sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4";
+  })
+  (fetchNuGet {
+    name = "System.Threading.ThreadPool";
+    version = "4.0.10";
+    sha256 = "0fdr61yjcxh5imvyf93n2m3n5g9pp54bnw2l1d2rdl9z6dd31ypx";
+  })
+  (fetchNuGet {
+    name = "System.Threading.ThreadPool";
+    version = "4.3.0";
+    sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Timer";
+    version = "4.0.1";
+    sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
+  })
+  (fetchNuGet {
+    name = "System.Xml.ReaderWriter";
+    version = "4.0.11";
+    sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
+  })
+  (fetchNuGet {
+    name = "System.Xml.ReaderWriter";
+    version = "4.3.0";
+    sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XDocument";
+    version = "4.0.11";
+    sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XmlDocument";
+    version = "4.0.1";
+    sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XmlDocument";
+    version = "4.3.0";
+    sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XmlSerializer";
+    version = "4.0.11";
+    sha256 = "01nzc3gdslw90qfykq4qzr2mdnqxjl4sj0wp3fixiwdmlmvpib5z";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XPath";
+    version = "4.0.1";
+    sha256 = "0fjqgb6y66d72d5n8qq1h213d9nv2vi8mpv8p28j3m9rccmsh04m";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XPath";
+    version = "4.3.0";
+    sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XPath.XmlDocument";
+    version = "4.0.1";
+    sha256 = "0l7yljgif41iv5g56l3nxy97hzzgck2a7rhnfnljhx9b0ry41bvc";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XPath.XmlDocument";
+    version = "4.3.0";
+    sha256 = "1h9lh7qkp0lff33z847sdfjj8yaz98ylbnkbxlnsbflhj9xyfqrm";
+  })
+]
diff --git a/pkgs/misc/emulators/ryujinx/fetch-deps.sh b/pkgs/misc/emulators/ryujinx/fetch-deps.sh
new file mode 100755
index 00000000000..ce9873a1692
--- /dev/null
+++ b/pkgs/misc/emulators/ryujinx/fetch-deps.sh
@@ -0,0 +1,41 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq common-updater-scripts dotnet-sdk_3
+set -eo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+deps_file="$(realpath "./deps.nix")"
+
+# Setup empty nuget package folder to force reinstall.
+mkdir ./nuget_tmp.packages
+cat >./nuget_tmp.config <<EOF
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+  <packageSources>
+    <add key="nuget" value="https://api.nuget.org/v3/index.json" />
+  </packageSources>
+  <config>
+    <add key="globalPackagesFolder" value="$(realpath ./nuget_tmp.packages)" />
+  </config>
+</configuration>
+EOF
+
+dotnet restore Ryujinx.sln --configfile ./nuget_tmp.config
+
+echo "{ fetchNuGet }: [" >"$deps_file"
+while read pkg_spec; do
+  { read pkg_name; read pkg_version; } < <(
+    # Build version part should be ignored: `3.0.0-beta2.20059.3+77df2220` -> `3.0.0-beta2.20059.3`
+    sed -nE 's/.*<id>([^<]*).*/\1/p; s/.*<version>([^<+]*).*/\1/p' "$pkg_spec")
+  pkg_sha256="$(nix-hash --type sha256 --flat --base32 "$(dirname "$pkg_spec")"/*.nupkg)"
+  cat >>"$deps_file" <<EOF
+  (fetchNuGet {
+    name = "$pkg_name";
+    version = "$pkg_version";
+    sha256 = "$pkg_sha256";
+  })
+EOF
+done < <(find ./nuget_tmp.packages -name '*.nuspec' | sort)
+echo "]" >>"$deps_file"
+
+popd
+rm -r "$src"
diff --git a/pkgs/misc/emulators/ryujinx/log.patch b/pkgs/misc/emulators/ryujinx/log.patch
new file mode 100644
index 00000000000..d25e22fbd37
--- /dev/null
+++ b/pkgs/misc/emulators/ryujinx/log.patch
@@ -0,0 +1,13 @@
+diff --git a/Ryujinx.Common/Configuration/LoggerModule.cs b/Ryujinx.Common/Configuration/LoggerModule.cs
+index 20c0fb46..ce933730 100644
+--- a/Ryujinx.Common/Configuration/LoggerModule.cs
++++ b/Ryujinx.Common/Configuration/LoggerModule.cs
+@@ -75,7 +75,7 @@ namespace Ryujinx.Configuration
+             if (e.NewValue)
+             {
+                 Logger.AddTarget(new AsyncLogTargetWrapper(
+-                    new FileLogTarget(AppDomain.CurrentDomain.BaseDirectory, "file"),
++		      new FileLogTarget(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Ryujinx"), "file"),
+                     1000,
+                     AsyncLogTargetOverflowAction.Block
+                 ));
diff --git a/pkgs/misc/emulators/simplenes/default.nix b/pkgs/misc/emulators/simplenes/default.nix
new file mode 100644
index 00000000000..d4805a62d76
--- /dev/null
+++ b/pkgs/misc/emulators/simplenes/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, sfml
+}:
+
+stdenv.mkDerivation rec {
+  pname = "simplenes";
+  version = "unstable-2019-03-13";
+
+  src = fetchFromGitHub {
+    owner = "amhndu";
+    repo = "SimpleNES";
+    rev = "4edb7117970c21a33b3bfe11a6606764fffc5173";
+    sha256 = "1nmwj431iwqzzcykxd4xinqmg0rm14mx7zsjyhcc5skz7pihz86g";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ sfml ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ./SimpleNES $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/amhndu/SimpleNES";
+    description = "An NES emulator written in C++";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ ivar ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/misc/emulators/snes9x-gtk/default.nix b/pkgs/misc/emulators/snes9x-gtk/default.nix
index 6560024b19e..f33af245f71 100644
--- a/pkgs/misc/emulators/snes9x-gtk/default.nix
+++ b/pkgs/misc/emulators/snes9x-gtk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, wrapGAppsHook
 , SDL2, zlib, gtk3, libxml2, libXv, epoxy, minizip, pulseaudio, portaudio }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   enableParallelBuilding = true;
-  nativeBuildInputs = [ meson ninja pkgconfig ];
+  nativeBuildInputs = [ meson ninja pkgconfig wrapGAppsHook ];
   buildInputs = [ SDL2 zlib gtk3 libxml2 libXv epoxy minizip pulseaudio portaudio ];
 
   preConfigure = "cd gtk";
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index ffad1e3c990..bb61872f7c3 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -39,19 +39,22 @@ in rec {
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the SHA256 for staging as well.
-    version = "5.11";
+    version = "5.16";
     url = "https://dl.winehq.org/wine/source/5.x/wine-${version}.tar.xz";
-    sha256 = "1q0sh89xnn6cq3kpqrrq9h316qyzpslj2w6m6vq7pq4y4p727nxk";
+    sha256 = "0j9268s1dy4cjvhcf4igbg54gaws4a1l3pda449qy2p2i4psdncq";
     inherit (stable) mono gecko32 gecko64;
   };
 
   staging = fetchFromGitHub rec {
     # https://github.com/wine-staging/wine-staging/releases
     inherit (unstable) version;
-    sha256 = "050npck8mdck8m2rs9xn6mszzj2fv9ql80g08j2ahinf792svrid";
+    sha256 = "1rrw15mrygv9zcbqz0c3s7q7971wqj89ys2bvvm4b0d2h4j0k6wq";
     owner = "wine-staging";
     repo = "wine-staging";
     rev = "v${version}";
+
+    # Just keep list empty, if current release haven't broken patchsets
+    disabledPatchsets = [ ];
   };
 
   winetricks = fetchFromGitHub rec {
diff --git a/pkgs/misc/emulators/wine/staging.nix b/pkgs/misc/emulators/wine/staging.nix
index 48ea93a97a8..f3b9fa30420 100644
--- a/pkgs/misc/emulators/wine/staging.nix
+++ b/pkgs/misc/emulators/wine/staging.nix
@@ -8,7 +8,7 @@ let patch = (callPackage ./sources.nix {}).staging;
 in assert stdenv.lib.getVersion wineUnstable == patch.version;
 
 (stdenv.lib.overrideDerivation wineUnstable (self: {
-  buildInputs = build-inputs [ "perl" "utillinux" "autoconf" ] self.buildInputs;
+  buildInputs = build-inputs [ "perl" "utillinux" "autoconf" "gitMinimal" ] self.buildInputs;
 
   name = "${self.name}-staging";
 
@@ -18,7 +18,7 @@ in assert stdenv.lib.getVersion wineUnstable == patch.version;
     chmod +w patches
     cd patches
     patchShebangs gitapply.sh
-    ./patchinstall.sh DESTDIR="$PWD/.." --all
+    ./patchinstall.sh DESTDIR="$PWD/.." --all ${stdenv.lib.concatMapStringsSep " " (ps: "-W ${ps}") patch.disabledPatchsets}
     cd ..
   '';
 })) // {
diff --git a/pkgs/misc/flashfocus/default.nix b/pkgs/misc/flashfocus/default.nix
new file mode 100644
index 00000000000..98f368132a9
--- /dev/null
+++ b/pkgs/misc/flashfocus/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildPythonApplication, fetchPypi, xcffib, pyyaml, click, i3ipc, marshmallow, cffi, xpybutil, pytestrunner }:
+
+
+buildPythonApplication rec {
+  pname = "flashfocus";
+  version = "2.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1z20d596rnc7cs0rrd221gjn14dmbr11djv94y9p4v7rr788sswv";
+  };
+
+  nativeBuildInputs = [ pytestrunner ];
+  propagatedBuildInputs = [ i3ipc xcffib click cffi xpybutil marshmallow pyyaml ];
+
+  # Tests require access to a X session
+  doCheck = false;
+
+  pythonImportsCheck = [ "flashfocus" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/fennerm/flashfocus";
+    description = "Simple focus animations for tiling window managers";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ artturin ];
+  };
+}
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index a1059559187..d3d06d98cb1 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -45,6 +45,11 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
+    (fetchpatch {
+      name = "CVE-2020-15900.patch";
+      url = "https://github.com/ArtifexSoftware/ghostpdl/commit/5d499272b95a6b890a1397e11d20937de000d31b.patch";
+      sha256 = "1nnnrn8q33x7nc8227ygc60f3mj4bjzrhj40sxp6dah58rb5x5jz";
+    })
     ./urw-font-files.patch
     ./doc-no-ref.diff
     # rebased version of upstream http://git.ghostscript.com/?p=ghostpdl.git;a=patch;h=1b4c3669a20c,
@@ -99,9 +104,6 @@ stdenv.mkDerivation rec {
 
     cp -r Resource "$out/share/ghostscript/${version}"
 
-    mkdir -p "$doc/share/doc/ghostscript"
-    mv "$doc/share/doc/${version}" "$doc/share/doc/ghostscript/"
-
     ln -s "${fonts}" "$out/share/ghostscript/fonts"
   '' + stdenv.lib.optionalString stdenv.isDarwin ''
     for file in $out/lib/*.dylib* ; do
diff --git a/pkgs/misc/hdt/default.nix b/pkgs/misc/hdt/default.nix
new file mode 100644
index 00000000000..8a4c7c3e6f5
--- /dev/null
+++ b/pkgs/misc/hdt/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, libtool, pkgconfig, zlib, serd }:
+
+stdenv.mkDerivation rec {
+  pname = "hdt";
+  version = "1.3.3";
+
+  src = fetchFromGitHub {
+    owner = "rdfhdt";
+    repo = "hdt-cpp";
+    rev = "v${version}";
+    sha256 = "1vsq80jnix6cy78ayag7v8ajyw7h8dqyad1q6xkf2hzz3skvr34z";
+  };
+
+  buildInputs = [ zlib serd ];
+
+  nativeBuildInputs = [ autoreconfHook libtool pkgconfig ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = "http://www.rdfhdt.org/";
+    description = "Header Dictionary Triples (HDT) is a compression format for RDF data that can also be queried for Triple Patterns.";
+    license = licenses.lgpl21;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.koslambrou ];
+  };
+}
diff --git a/pkgs/misc/logging/beats/6.x.nix b/pkgs/misc/logging/beats/6.x.nix
index c3bca18a9a4..2d01ea62261 100644
--- a/pkgs/misc/logging/beats/6.x.nix
+++ b/pkgs/misc/logging/beats/6.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, elk6Version, buildGoPackage, libpcap, systemd }:
+{ stdenv, lib, fetchFromGitHub, elk6Version, buildGoPackage, libpcap, systemd }:
 
 let beat = package : extraArgs : buildGoPackage (rec {
       name = "${package}-${version}";
@@ -46,7 +46,7 @@ in {
       journal entries from Linuxes with systemd.
     '';
     buildInputs = [ systemd.dev ];
-    postFixup = let libPath = stdenv.lib.makeLibraryPath [ systemd.lib ]; in ''
+    postFixup = let libPath = stdenv.lib.makeLibraryPath [ (lib.getLib systemd) ]; in ''
       patchelf --set-rpath ${libPath} "$out/bin/journalbeat"
     '';
   };
diff --git a/pkgs/misc/logging/beats/7.x.nix b/pkgs/misc/logging/beats/7.x.nix
index 61c89339fe7..465051d3726 100644
--- a/pkgs/misc/logging/beats/7.x.nix
+++ b/pkgs/misc/logging/beats/7.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, elk7Version, buildGoPackage, libpcap, systemd }:
+{ stdenv, lib, fetchFromGitHub, elk7Version, buildGoPackage, libpcap, systemd }:
 
 let beat = package : extraArgs : buildGoPackage (rec {
       name = "${package}-${version}";
@@ -45,7 +45,7 @@ in {
       journal entries from Linuxes with systemd.
     '';
     buildInputs = [ systemd.dev ];
-    postFixup = let libPath = stdenv.lib.makeLibraryPath [ systemd.lib ]; in ''
+    postFixup = let libPath = stdenv.lib.makeLibraryPath [ (lib.getLib systemd) ]; in ''
       patchelf --set-rpath ${libPath} "$out/bin/journalbeat"
     '';
   };
diff --git a/pkgs/misc/scrcpy/default.nix b/pkgs/misc/scrcpy/default.nix
index 2f0d184402f..adebcbd633d 100644
--- a/pkgs/misc/scrcpy/default.nix
+++ b/pkgs/misc/scrcpy/default.nix
@@ -5,15 +5,15 @@
 , fetchpatch
 
 , platform-tools
-, ffmpeg_3
+, ffmpeg
 , SDL2
 }:
 
 let
-  version = "1.14";
+  version = "1.15.1";
   prebuilt_server = fetchurl {
     url = "https://github.com/Genymobile/scrcpy/releases/download/v${version}/scrcpy-server-v${version}";
-    sha256 = "082n57a9lw39lfjxybgim09qf0id9m0rpfb3zmqng58fp2i1h6qx";
+    sha256 = "1hrp2rfwl06ff2b2i12ccka58l1brvn6xqgm1f38k36s61mbs1py";
   };
 in
 stdenv.mkDerivation rec {
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     owner = "Genymobile";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1w06gsvgjdbpb9lvvhpjwmysxjl0daiigjfh3cxfgz88447bgw7j";
+    sha256 = "0ijar1cycj42p39cgpnwdwr6nz5pyr6vacr1gvc0f6k92pl8vr13";
   };
 
   # postPatch:
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ makeWrapper meson ninja pkg-config ];
 
-  buildInputs = [ ffmpeg_3 SDL2 ];
+  buildInputs = [ ffmpeg SDL2 ];
 
   # Manually install the server jar to prevent Meson from "fixing" it
   preConfigure = ''
diff --git a/pkgs/misc/screensavers/light-locker/default.nix b/pkgs/misc/screensavers/light-locker/default.nix
index 4d257650338..c4915bec895 100644
--- a/pkgs/misc/screensavers/light-locker/default.nix
+++ b/pkgs/misc/screensavers/light-locker/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , pkgconfig
@@ -65,7 +66,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/misc/screensavers/pipes/default.nix b/pkgs/misc/screensavers/pipes/default.nix
index 211b7614f3b..94d6299d383 100644
--- a/pkgs/misc/screensavers/pipes/default.nix
+++ b/pkgs/misc/screensavers/pipes/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgs }:
+{ stdenv, fetchurl, makeWrapper, coreutils, ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "pipes";
@@ -9,11 +9,14 @@ stdenv.mkDerivation rec {
     sha256 = "09m4alb3clp3rhnqga5v6070p7n1gmnwp2ssqhq87nf2ipfpcaak";
   };
 
-  buildInputs = with pkgs; [ bash ];
+  buildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir $out -p
     make PREFIX=$out/ install
+
+    wrapProgram $out/bin/pipes.sh \
+      --set PATH "${stdenv.lib.makeBinPath [ coreutils ncurses ]}"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/misc/screensavers/xlockmore/default.nix b/pkgs/misc/screensavers/xlockmore/default.nix
index 9cc093f222b..b59ed85f6bc 100644
--- a/pkgs/misc/screensavers/xlockmore/default.nix
+++ b/pkgs/misc/screensavers/xlockmore/default.nix
@@ -2,11 +2,11 @@
 , libXdmcp, libXt }:
 
 stdenv.mkDerivation rec {
-  name = "xlockmore-5.63";
+  name = "xlockmore-5.65";
 
   src = fetchurl {
     url = "http://sillycycle.com/xlock/${name}.tar.xz";
-    sha256 = "1qhbl6axffbajxzwg4xyf52hdxk5xvg63gxk0s9z8g0fdfj242wr";
+    sha256 = "0d4l8ibbvc62whlq8rrbvqr3011a7h21l9na93r579g0dfwdbh6d";
     curlOpts = "--user-agent 'Mozilla/5.0'";
   };
 
diff --git a/pkgs/misc/screensavers/xscreensaver/default.nix b/pkgs/misc/screensavers/xscreensaver/default.nix
index 1dd09852d27..71108c9c689 100644
--- a/pkgs/misc/screensavers/xscreensaver/default.nix
+++ b/pkgs/misc/screensavers/xscreensaver/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig, bc, perl, perlPackages, pam, libXext, libXScrnSaver, libX11
 , libXrandr, libXmu, libXxf86vm, libXrender, libXxf86misc, libjpeg, libGLU, libGL, gtk2
-, libxml2, libglade, intltool, xorg, makeWrapper, gle
+, libxml2, libglade, intltool, xorg, makeWrapper, gle, gdk-pixbuf, gdk-pixbuf-xlib
 , forceInstallAllHacks ? false
 }:
 
@@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ pkgconfig bc perl libjpeg libGLU libGL gtk2 libxml2 libglade pam
       libXext libXScrnSaver libX11 libXrandr libXmu libXxf86vm libXrender
-      libXxf86misc intltool xorg.appres makeWrapper gle
+      libXxf86misc intltool xorg.appres makeWrapper gle gdk-pixbuf
+      gdk-pixbuf-xlib
     ];
 
   preConfigure =
diff --git a/pkgs/misc/seafile-shared/default.nix b/pkgs/misc/seafile-shared/default.nix
index 7546c7626ed..21a89e5f5f2 100644
--- a/pkgs/misc/seafile-shared/default.nix
+++ b/pkgs/misc/seafile-shared/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "seafile-shared";
-  version = "7.0.7";
+  version = "7.0.8";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile";
     rev = "v${version}";
-    sha256 = "0vgzb923x2q2w1zgbc56d50a5qj9xm77lg7czfzg3va7vd921gy8";
+    sha256 = "0q0zylv8hkhnfw0084bj1wmqwqvpflmdy1njxvvkjsbnflh8kc2y";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/misc/sndio/default.nix b/pkgs/misc/sndio/default.nix
index c415714f573..46c505ed439 100644
--- a/pkgs/misc/sndio/default.nix
+++ b/pkgs/misc/sndio/default.nix
@@ -1,23 +1,17 @@
-{ stdenv, fetchurl, alsaLib }:
+{ stdenv, fetchurl, alsaLib, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
   pname = "sndio";
-  version = "1.6.0";
+  version = "1.7.0";
   enableParallelBuilding = true;
-  buildInputs = stdenv.lib.optionals stdenv.isLinux [ alsaLib ];
+  buildInputs = stdenv.lib.optionals stdenv.isLinux [ alsaLib ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ fixDarwinDylibNames ];
 
   src = fetchurl {
     url = "http://www.sndio.org/sndio-${version}.tar.gz";
-    sha256 = "1havdx3q4mipgddmd2bnygr1yh6y64567m1yqwjapkhsq550dq4r";
+    sha256 = "0ljmac0lnjn61admgbcwjfcr5fwccrsblx9rj9bys8wlhz8f796x";
   };
 
-  postFixup = stdenv.lib.optionalString stdenv.isDarwin ''
-    install_name_tool -id $out/lib/libsndio.7.0.dylib $out/lib/libsndio.7.0.dylib
-    for file in $out/bin/*; do
-      install_name_tool -change libsndio.7.0.dylib $out/lib/libsndio.dylib $file
-    done
-  '';
-
   meta = with stdenv.lib; {
     homepage = "http://www.sndio.org";
     description = "Small audio and MIDI framework part of the OpenBSD project";
diff --git a/pkgs/misc/stabber/default.nix b/pkgs/misc/stabber/default.nix
index 17ef047ede7..2c63bf40d36 100644
--- a/pkgs/misc/stabber/default.nix
+++ b/pkgs/misc/stabber/default.nix
@@ -6,13 +6,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation {
   pname = "stabber-unstable";
-  version = "2016-11-09";
+  version = "2020-06-08";
 
   src = fetchFromGitHub {
     owner = "boothj5";
     repo = "stabber";
-    rev = "ed75087e4483233eb2cc5472dbd85ddfb7a1d4d4";
-    sha256 = "1l6cibggi9rx6d26j1g92r1m8zm1g899f6z7n4pfqp84mrfqgz0p";
+    rev = "3e5c2200715666aad403d0076e8ab584b329965e";
+    sha256 = "0042nbgagl4gcxa5fj7bikjdi1gbk0jwyqnzc5lswpb0l5y0i1ql";
   };
 
   preAutoreconf = ''
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Stubbed XMPP Server";
-    homepage = "https://github.com/boothj5/stabber";
+    homepage = "https://github.com/profanity-im/stabber";
     license = licenses.gpl3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ hschaeidt ];
diff --git a/pkgs/misc/tmux-plugins/default.nix b/pkgs/misc/tmux-plugins/default.nix
index 74bbe189182..dd05bb4aa3b 100644
--- a/pkgs/misc/tmux-plugins/default.nix
+++ b/pkgs/misc/tmux-plugins/default.nix
@@ -111,6 +111,7 @@ in rec {
 
   fingers = mkDerivation rec {
     pluginName = "fingers";
+    rtpFilePath = "tmux-fingers.tmux";
     version = "1.0.1";
     src = fetchFromGitHub {
       owner = "Morantron";
diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix
index 1bd4dfffd8e..66f41962666 100644
--- a/pkgs/misc/uboot/default.nix
+++ b/pkgs/misc/uboot/default.nix
@@ -18,10 +18,10 @@
 }:
 
 let
-  defaultVersion = "2020.04";
+  defaultVersion = "2020.07";
   defaultSrc = fetchurl {
     url = "ftp://ftp.denx.de/pub/u-boot/u-boot-${defaultVersion}.tar.bz2";
-    sha256 = "0wjkasnz87q86hx93inspdjfjsinmxi87bcvj30c773x0fpjlwzy";
+    sha256 = "0sjzy262x93aaqd6z24ziaq19xjjjk5f577ivf768vmvwsgbzxf1";
   };
   buildUBoot = {
     version ? null
@@ -271,6 +271,13 @@ in {
     filesToInstall = ["u-boot-sunxi-with-spl.bin"];
   };
 
+  ubootPinebookPro = buildUBoot {
+    defconfig = "pinebook-pro-rk3399_defconfig";
+    extraMeta.platforms = ["aarch64-linux"];
+    BL31 = "${armTrustedFirmwareRK3399}/bl31.elf";
+    filesToInstall = [ "u-boot.itb" "idbloader.img"];
+  };
+
   ubootQemuAarch64 = buildUBoot {
     defconfig = "qemu_arm64_defconfig";
     extraMeta.platforms = ["aarch64-linux"];
diff --git a/pkgs/misc/uq/default.nix b/pkgs/misc/uq/default.nix
index fe3a1e2a5d1..5c0fb954910 100755
--- a/pkgs/misc/uq/default.nix
+++ b/pkgs/misc/uq/default.nix
@@ -21,6 +21,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/lostutils/uq";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/misc/vim-plugins/deprecated.json b/pkgs/misc/vim-plugins/deprecated.json
index 218a1ab622f..b95e91a19b2 100644
--- a/pkgs/misc/vim-plugins/deprecated.json
+++ b/pkgs/misc/vim-plugins/deprecated.json
@@ -3,6 +3,10 @@
         "date": "2020-03-27",
         "new": "vim-gist"
     },
+    "nvim-lsp": {
+        "date": "2020-08-31",
+        "new": "nvim-lspconfig"
+    },
     "vim-jade": {
         "date": "2020-03-27",
         "new": "vim-pug"
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index 5cd7df4597f..378a252e9da 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -41,12 +41,12 @@ let
 
   agda-vim = buildVimPluginFrom2Nix {
     pname = "agda-vim";
-    version = "2020-04-06";
+    version = "2020-07-26";
     src = fetchFromGitHub {
       owner = "derekelkins";
       repo = "agda-vim";
-      rev = "3643fa185ebe3bf35cf690a4b3b90d36e36405b0";
-      sha256 = "09lpg223l1s8zpsmbg1r18cnr7r3np32nsv185qgcv889mlildqn";
+      rev = "3c92e212a05eb254849a597d8d002abf69699aa0";
+      sha256 = "0m3kinhzjk0cky372j1kw6hhy14khshkh9jbw35a5q18c4xvy4pq";
     };
     meta.homepage = "https://github.com/derekelkins/agda-vim/";
   };
@@ -65,12 +65,12 @@ let
 
   ale = buildVimPluginFrom2Nix {
     pname = "ale";
-    version = "2020-06-20";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "834d6f9c48ce349a4c3d72e98bd0de81aaa84042";
-      sha256 = "0b9606yspjvmfarjmgqcbsg9qp64gkr7b1w7py2gd1fvbmnkmac0";
+      rev = "d4a14746cdcda99ec70915c5540962c85e33f661";
+      sha256 = "1k93gab46y3ld9s3h3ha3vmdfy37vhb3px79p5a62b21jwma9mxc";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -89,12 +89,12 @@ let
 
   ansible-vim = buildVimPluginFrom2Nix {
     pname = "ansible-vim";
-    version = "2020-05-14";
+    version = "2020-07-13";
     src = fetchFromGitHub {
       owner = "pearofducks";
       repo = "ansible-vim";
-      rev = "fa0192fe508000d904e79d17706471732075c653";
-      sha256 = "12nhiz5hnbi4l5ksb26xhj47r5g5z68zncgdlmqkkfqzqw1cj9c3";
+      rev = "cfdde31672bce2f60bedc36842ab9bca8d28ba5b";
+      sha256 = "01lpnvdym9izaq29kbgwa7kl303nnzsn0cpqq75bv7glymglbn0m";
     };
     meta.homepage = "https://github.com/pearofducks/ansible-vim/";
   };
@@ -185,12 +185,12 @@ let
 
   awesome-vim-colorschemes = buildVimPluginFrom2Nix {
     pname = "awesome-vim-colorschemes";
-    version = "2020-03-26";
+    version = "2020-08-26";
     src = fetchFromGitHub {
       owner = "rafi";
       repo = "awesome-vim-colorschemes";
-      rev = "4ad0ce02b8efa3c6e014e224a34b67b927d31c88";
-      sha256 = "0crg0gph8wmb412yvknh6ic42i3p5hd8c736rv61v52b2g0dgwxm";
+      rev = "b89e17b44dc1bcc189298882a4cb6e3252c2fb4c";
+      sha256 = "0grgii328c4y086par9l3f2cq2xh47dqv2w2f4lwd5z9zmnxkv4f";
     };
     meta.homepage = "https://github.com/rafi/awesome-vim-colorschemes/";
   };
@@ -269,12 +269,12 @@ let
 
   calendar-vim = buildVimPluginFrom2Nix {
     pname = "calendar-vim";
-    version = "2020-06-15";
+    version = "2020-08-15";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "calendar.vim";
-      rev = "0cbf6ced3c1b6cfd1ab869a46165d69018747550";
-      sha256 = "0553m0v48kz2r0vasq4yd0834r066h1mha6sx5k0ls0s0074w10m";
+      rev = "9b2dcc18ba104820eac1701aaca44dcc24d90eb4";
+      sha256 = "1vy0np1i8whyw9wfkcx564kvlxspwvrp4sznk6iixjln6ha7ngil";
     };
     meta.homepage = "https://github.com/itchyny/calendar.vim/";
   };
@@ -329,12 +329,12 @@ let
 
   clang_complete = buildVimPluginFrom2Nix {
     pname = "clang_complete";
-    version = "2020-05-06";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "xavierd";
       repo = "clang_complete";
-      rev = "10e5102af5d1b16ba7aa3fb51d67153041f82ed7";
-      sha256 = "0crynvmdp9a5rws5hfnsn19kxqviyp29n8fz40wq7k1g5vrhvdl7";
+      rev = "e0f5c246883fb06b6331ff5bec8ef1c3c71af3d4";
+      sha256 = "0kincdj1l3d552pjnrdjcl72fpln6klc85b01m1sn2b2dlin3xhz";
     };
     meta.homepage = "https://github.com/xavierd/clang_complete/";
   };
@@ -351,184 +351,64 @@ let
     meta.homepage = "https://github.com/bbchung/clighter8/";
   };
 
-  coc-css = buildVimPluginFrom2Nix {
-    pname = "coc-css";
-    version = "2020-04-15";
+  coc-clap = buildVimPluginFrom2Nix {
+    pname = "coc-clap";
+    version = "2020-07-17";
     src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-css";
-      rev = "41fe3122753b62c4416eb5e4ca4bef1cb3d3ebd2";
-      sha256 = "13xg0v2iwf8nrd1bba5nmwgav37fb8q4fqr5bsg3qxlbghpw0bbl";
+      owner = "vn-ki";
+      repo = "coc-clap";
+      rev = "09d9059c243a25c5859fd73fff6b664d8bf5eed0";
+      sha256 = "057kad7nwc75c92d2al6q25gs7vrf0l14529iclrgd61vg369sva";
     };
-    meta.homepage = "https://github.com/neoclide/coc-css/";
+    meta.homepage = "https://github.com/vn-ki/coc-clap/";
   };
 
   coc-denite = buildVimPluginFrom2Nix {
     pname = "coc-denite";
-    version = "2020-04-17";
+    version = "2019-01-19";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-denite";
-      rev = "50a573af21a9563f331f2711f3fd7a568c33907f";
-      sha256 = "06h3if5sn5sqgrq1ql1j7g5xy658mwywd7ri1hajzi8s3mb5lanq";
+      rev = "f0cf609724249e662fef54169b484b7d089032f9";
+      sha256 = "0jknvcf1cf53bwyhf1rhm5fa7nsp0l7sihns1qybph8hayb5rwvp";
     };
     meta.homepage = "https://github.com/neoclide/coc-denite/";
   };
 
-  coc-emmet = buildVimPluginFrom2Nix {
-    pname = "coc-emmet";
-    version = "2020-05-19";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-emmet";
-      rev = "5424c10fb8c451059cdcf04b10aa7c28178ce5b0";
-      sha256 = "15zfmsy7ymcp3js3y8f6wvwj3r0p9a45v1zvq07ilwri91z6nkrl";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-emmet/";
-  };
-
-  coc-eslint = buildVimPluginFrom2Nix {
-    pname = "coc-eslint";
-    version = "2020-05-21";
+  coc-explorer = buildVimPluginFrom2Nix {
+    pname = "coc-explorer";
+    version = "2020-09-01";
     src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-eslint";
-      rev = "eed42192dab175bbf249e21c18c85cbd5afdd92a";
-      sha256 = "1a9csiyj7abksar917acfjgypmc28rcfsqga0p1550mjxvkjr2ia";
+      owner = "weirongxu";
+      repo = "coc-explorer";
+      rev = "e1ef6be69cbafff868a45d2b20a6b2325f4baa26";
+      sha256 = "0acwlr4pr87jx0a83mq73dh9jwd4iwnv1rs6pd2mdbj4ix0avxyw";
     };
-    meta.homepage = "https://github.com/neoclide/coc-eslint/";
+    meta.homepage = "https://github.com/weirongxu/coc-explorer/";
   };
 
   coc-fzf = buildVimPluginFrom2Nix {
     pname = "coc-fzf";
-    version = "2020-06-20";
+    version = "2020-08-27";
     src = fetchFromGitHub {
       owner = "antoinemadec";
       repo = "coc-fzf";
-      rev = "c4af6c2ea44eb630049340becfc6c66ddfb8b01c";
-      sha256 = "1s8vlnabkjgzs2l5rwzcx5rfhhr7lszhl7mvk6l53rylc875zmd7";
+      rev = "085e54bf91b7f6ce19be9c2801ad4e69b15c24f9";
+      sha256 = "0dfpl26jn6gc3nswbz0nclzr0s58fhmrhqvmknssg600wgnrd12v";
     };
     meta.homepage = "https://github.com/antoinemadec/coc-fzf/";
   };
 
-  coc-git = buildVimPluginFrom2Nix {
-    pname = "coc-git";
-    version = "2020-06-11";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-git";
-      rev = "bbddf4a9447848cdd18a693268bffcc0fe523c08";
-      sha256 = "11c5rnlf45wz0slvl0gcqcdc9xb859pxy44xynfbbsl0ii1l8zc1";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-git/";
-  };
-
-  coc-go = buildVimPluginFrom2Nix {
-    pname = "coc-go";
-    version = "2020-06-10";
-    src = fetchFromGitHub {
-      owner = "josa42";
-      repo = "coc-go";
-      rev = "38b0b30355f85a7952a2e6602fdb1cdf9141a501";
-      sha256 = "0wmdfcglvixfqahjg3lc5q7y36wk6lzczr5nhnwixh9cis1nybx6";
-    };
-    meta.homepage = "https://github.com/josa42/coc-go/";
-  };
-
-  coc-highlight = buildVimPluginFrom2Nix {
-    pname = "coc-highlight";
-    version = "2019-10-18";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-highlight";
-      rev = "b4e82ebd5fe855d004dd481e2ecf2fa88faed284";
-      sha256 = "06h64jq8cgj5hc19inidns046kkb76750179jsw7xv5zbp93ygap";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-highlight/";
-  };
-
-  coc-html = buildVimPluginFrom2Nix {
-    pname = "coc-html";
-    version = "2020-03-30";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-html";
-      rev = "8ae5d2832761b5868f69c67f33ce26f9edb26c65";
-      sha256 = "1rf9qfimnbxjr5s55pzm8npixan5cz2v17g4j34f18i9ky6yyk0b";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-html/";
-  };
-
-  coc-imselect = buildVimPluginFrom2Nix {
-    pname = "coc-imselect";
-    version = "2020-02-18";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-imselect";
-      rev = "01442d2fb7d344122e59755f59782a0e1bf7d294";
-      sha256 = "1vqx9yna66njdw1my15ac6djr3yvnb6das96nx12mpingnw85kky";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-imselect/";
-  };
-
-  coc-java = buildVimPluginFrom2Nix {
-    pname = "coc-java";
-    version = "2020-05-29";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-java";
-      rev = "bf698c0df4d63c7c84013d58111b7b458f6b12f1";
-      sha256 = "1nyswz55dg4d1nz6ff2479ibnzcdhv9ky8a4awlakwp0g0c3680s";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-java/";
-  };
-
-  coc-jest = buildVimPluginFrom2Nix {
-    pname = "coc-jest";
-    version = "2020-05-27";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-jest";
-      rev = "431471caa9011868327fff0f9f7e0a944b7ca33b";
-      sha256 = "0vcri3kp8njsp4zgl74vc6ydhxq5spzx6pm798jh2lvrid2byvg9";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-jest/";
-  };
-
-  coc-json = buildVimPluginFrom2Nix {
-    pname = "coc-json";
-    version = "2020-05-12";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-json";
-      rev = "66b482dbc8008b9a111e6141aa2e63baa16fb2d4";
-      sha256 = "0ixqk417ba1yz7lnjkir5h9h8qm5jc9sh2190vmddxr8wgxhjhbb";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-json/";
-  };
-
-  coc-lists = buildVimPluginFrom2Nix {
-    pname = "coc-lists";
-    version = "2020-04-28";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-lists";
-      rev = "aaa16caf94c50e7c301cb3848e988639cf0599a3";
-      sha256 = "1m8i8r7fl1csnx6f4mrbaf7ncng8yyfnprqax0zyiryc5i4nqjbg";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-lists/";
-  };
-
-  coc-metals = buildVimPluginFrom2Nix {
-    pname = "coc-metals";
-    version = "2020-06-16";
+  coc-markdownlint = buildVimPluginFrom2Nix {
+    pname = "coc-markdownlint";
+    version = "2020-09-02";
     src = fetchFromGitHub {
-      owner = "ckipp01";
-      repo = "coc-metals";
-      rev = "a75fb41cc7f766f048ed04ff24d2b9036c80a0c1";
-      sha256 = "024mpad6cpivxpf9fjrr9mh7iy8hq64d75yazhzm4kax6f121xk0";
+      owner = "fannheyward";
+      repo = "coc-markdownlint";
+      rev = "9e68427e138bcce5440fd29fd632081962f6c6e9";
+      sha256 = "064afqfjjx1ad26sgbypzivcpdx5n45wa5d93dbib4wrvkkqyslm";
     };
-    meta.homepage = "https://github.com/ckipp01/coc-metals/";
+    meta.homepage = "https://github.com/fannheyward/coc-markdownlint/";
   };
 
   coc-neco = buildVimPluginFrom2Nix {
@@ -543,266 +423,50 @@ let
     meta.homepage = "https://github.com/neoclide/coc-neco/";
   };
 
-  coc-pairs = buildVimPluginFrom2Nix {
-    pname = "coc-pairs";
-    version = "2020-03-09";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-pairs";
-      rev = "79deeaabdc4f091c22f3dd67d439a0a336e8aa7e";
-      sha256 = "1w6p2dk7yj8ldxg1qxh9zpn9ypm6gn66gi0vbax33wf5c0dmp0v9";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-pairs/";
-  };
-
-  coc-prettier = buildVimPluginFrom2Nix {
-    pname = "coc-prettier";
-    version = "2020-05-27";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-prettier";
-      rev = "1fbfe34dfce455111e3eae939fc8a37d2fd1ec42";
-      sha256 = "170zhsq73shykxszwwcqakrnl5cawf9kkgc1mqy0l0jqmw3jk8qy";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-prettier/";
-  };
-
-  coc-python = buildVimPluginFrom2Nix {
-    pname = "coc-python";
-    version = "2020-06-15";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-python";
-      rev = "241c6b39e6618279b619926269431ef45de87840";
-      sha256 = "1x3lrk4x7qhp9pg8x11k36pcgd5f45la4r77fq82jy307s5dny20";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-python/";
-  };
-
-  coc-r-lsp = buildVimPluginFrom2Nix {
-    pname = "coc-r-lsp";
-    version = "2019-12-07";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-r-lsp";
-      rev = "a1b97e36c601975a8d730b6965f25592b1ecd1e7";
-      sha256 = "04g1kbgm8p0asrsibmg4w6wj8i2xzwc70g7rkcs2bj3pakbkvws6";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-r-lsp/";
-  };
-
-  coc-rls = buildVimPluginFrom2Nix {
-    pname = "coc-rls";
-    version = "2020-05-13";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-rls";
-      rev = "166fd05342d026759246594eb5fd8d0bc240505d";
-      sha256 = "17x0h2g5791z5xmhl7kps09b9zrac2yni3r59rrx96rry50fkca5";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-rls/";
-  };
-
-  coc-rust-analyzer = buildVimPluginFrom2Nix {
-    pname = "coc-rust-analyzer";
-    version = "2020-06-18";
-    src = fetchFromGitHub {
-      owner = "fannheyward";
-      repo = "coc-rust-analyzer";
-      rev = "2079280b12e565ae5c437b675f09b7915f1f9d92";
-      sha256 = "0l4jz8mdbn352cb7gkycbdlaw18k9qf4v0vcljni7hxdqc6k1hiz";
-    };
-    meta.homepage = "https://github.com/fannheyward/coc-rust-analyzer/";
-  };
-
-  coc-smartf = buildVimPluginFrom2Nix {
-    pname = "coc-smartf";
-    version = "2019-07-26";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-smartf";
-      rev = "d40714eab8e5fe26fac492ffd30e98cd1bfbdec5";
-      sha256 = "0kfrq5hk8zn24cl7fiy48nyvd30a2dva93c61079axkdg9912yd7";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-smartf/";
-  };
-
-  coc-snippets = buildVimPluginFrom2Nix {
-    pname = "coc-snippets";
-    version = "2020-06-10";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-snippets";
-      rev = "a36f36afe7094562756202d1bb88c1f80597393e";
-      sha256 = "117idj29gk8psj27zmwazanwxf4br08mlkcpnkxyw6blm5aibzpp";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-snippets/";
-  };
-
-  coc-solargraph = buildVimPluginFrom2Nix {
-    pname = "coc-solargraph";
-    version = "2020-02-14";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-solargraph";
-      rev = "231447aae26a0e88aa6d9e207a7354c4ca37d564";
-      sha256 = "0amcx519r9j8jr6ckglywsjlyph3m5jq4qvbfwyir8ihxhxa4b0d";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-solargraph/";
-  };
-
   coc-spell-checker = buildVimPluginFrom2Nix {
     pname = "coc-spell-checker";
-    version = "2020-05-15";
+    version = "2020-08-01";
     src = fetchFromGitHub {
       owner = "iamcco";
       repo = "coc-spell-checker";
-      rev = "bc9802c667aac992fab2f47b0da096c28dca0dfd";
-      sha256 = "1fsjf07w0z9l2zra46krpg1d6qxg51niz9zmxas66si90qb2j3d7";
+      rev = "c1fe3de47f6ba93d4c44b514e530517c19a75880";
+      sha256 = "1yvcbfrd5lxgmxbvphpbzcw8ni6zjqmg2flkrvnz59b9rmafn8dg";
     };
     meta.homepage = "https://github.com/iamcco/coc-spell-checker/";
   };
 
-  coc-stylelint = buildVimPluginFrom2Nix {
-    pname = "coc-stylelint";
-    version = "2019-08-20";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-stylelint";
-      rev = "288a372261cbc23ae4a6e26b1621c6e3218d00ad";
-      sha256 = "1qir8diqnv1a78lzw9p3jsbni52gdg38rx1lj5i4iyff9282ir2x";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-stylelint/";
-  };
-
-  coc-tabnine = buildVimPluginFrom2Nix {
-    pname = "coc-tabnine";
-    version = "2020-01-06";
+  coc-vimlsp = buildVimPluginFrom2Nix {
+    pname = "coc-vimlsp";
+    version = "2020-08-01";
     src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-tabnine";
-      rev = "442c829185ecab2268d1b9fd076c5286bbd39562";
-      sha256 = "0as4b33nnp7anqbxkkja8lp37y4a74b3507zyk3gmmna0my1ca3r";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-tabnine/";
-  };
-
-  coc-tslint = buildVimPluginFrom2Nix {
-    pname = "coc-tslint";
-    version = "2019-07-03";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-tslint";
-      rev = "6128761577806d7047fa05d1a527945490d6316c";
-      sha256 = "1vi4vrawknkd5wjyb0j143jbfis9vaanl219a7argirwjs057vpd";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-tslint/";
-  };
-
-  coc-tslint-plugin = buildVimPluginFrom2Nix {
-    pname = "coc-tslint-plugin";
-    version = "2019-07-18";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-tslint-plugin";
-      rev = "acc1356253a5088f630d9910b5fc13dc5d108bbc";
-      sha256 = "1cjgimqgd70x5zhw641z6g4hc54vrkg3r4sscg092gkrdpkq3969";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-tslint-plugin/";
-  };
-
-  coc-tsserver = buildVimPluginFrom2Nix {
-    pname = "coc-tsserver";
-    version = "2020-06-20";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-tsserver";
-      rev = "a065861bebc201b722145d3d39af76cdbaf92f46";
-      sha256 = "1iwp8gs5f49chncbqv5w7x435jhwqczlmw00clf345yvx2kirngn";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-tsserver/";
-  };
-
-  coc-vetur = buildVimPluginFrom2Nix {
-    pname = "coc-vetur";
-    version = "2020-06-19";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-vetur";
-      rev = "6f106f10c981fd314d6a83cab29f8a464da6b34b";
-      sha256 = "1b2zac7z8ja1ymf4psd48gwm7cdkyiwyglinpqy5g2zyspc16qpg";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-vetur/";
-  };
-
-  coc-vimtex = buildVimPluginFrom2Nix {
-    pname = "coc-vimtex";
-    version = "2020-03-27";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-vimtex";
-      rev = "0a4f8ee29afc4e1dcfdc8846f116a1db32fa9867";
-      sha256 = "0z9kxm40kr8a5sa06vkg7xaai2n54y21xfkrsx774zzdkcrrkizk";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-vimtex/";
-  };
-
-  coc-wxml = buildVimPluginFrom2Nix {
-    pname = "coc-wxml";
-    version = "2019-06-20";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-wxml";
-      rev = "f02550939d33a0175c34186904c376bbae878e60";
-      sha256 = "1448019dzdy55j4plhzlnp2qkfzk0zkqqs7kn94ndn60hn1x889m";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-wxml/";
-  };
-
-  coc-yaml = buildVimPluginFrom2Nix {
-    pname = "coc-yaml";
-    version = "2020-03-06";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-yaml";
-      rev = "338192a2434b96b139fb8c07d260da00b3100997";
-      sha256 = "020jpsm9ss2v3x1g43m920w2yamv8khl7mg7wm4sx6qsl3rlfq4g";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-yaml/";
-  };
-
-  coc-yank = buildVimPluginFrom2Nix {
-    pname = "coc-yank";
-    version = "2020-06-02";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-yank";
-      rev = "7983c28509a61a7eb014e178525845797f5779ed";
-      sha256 = "1mjdd1kqvc5hzygjs2gv8vrpr3wc2a9590cr6vq0pfllxbkyqjng";
+      owner = "iamcco";
+      repo = "coc-vimlsp";
+      rev = "efb672fe82d8619d83d3978714393e13aee8e296";
+      sha256 = "16whzvyzbx8zh7z33w7pir264dmbapkanb15mkazfhkh0wm3sfvf";
     };
-    meta.homepage = "https://github.com/neoclide/coc-yank/";
+    meta.homepage = "https://github.com/iamcco/coc-vimlsp/";
   };
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc-nvim";
-    version = "2020-06-20";
+    version = "2020-08-26";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "aa3647842f5bf436c8e1556667033046d83426d5";
-      sha256 = "0gzm0pm3gqis7y3qpmwjgnn5g11ym6s4fj18j5qmdfshbsajh9xv";
+      rev = "52c18cefd06879924a8469fc493af58fb3e7f1f4";
+      sha256 = "1ddcmfy6mgmmqmj7a5v1dhz5z43wz2wfyzaxbg6hchb3j0h8dmc5";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
 
   colorizer = buildVimPluginFrom2Nix {
     pname = "colorizer";
-    version = "2020-06-21";
+    version = "2020-07-23";
     src = fetchFromGitHub {
       owner = "lilydjwg";
       repo = "colorizer";
-      rev = "bafd4e98462a4ddeb275d02fa1448b4349e2e50f";
-      sha256 = "0j4x8vf3dj2v3jjjxqyhahrbfm99mgqryq2srnik0wbz7v1br2lh";
+      rev = "1ddc68adbf45331158c61507a55fcc918bb61654";
+      sha256 = "16zrpgnlb3v4yvpycq9spivs97vzv18m3jc47rl0hgpjdf6vhkxx";
     };
     meta.homepage = "https://github.com/lilydjwg/colorizer/";
   };
@@ -834,16 +498,40 @@ let
 
   committia-vim = buildVimPluginFrom2Nix {
     pname = "committia-vim";
-    version = "2020-05-14";
+    version = "2020-08-27";
     src = fetchFromGitHub {
       owner = "rhysd";
       repo = "committia.vim";
-      rev = "2cded48477a5e308c77a0d289cc9b540669b701f";
-      sha256 = "1g6ykdh7d16q6nvpvmxx4ss8w7cisx5r8qmbrrvhpwmbb3894pxp";
+      rev = "1d288281586d1e6b52646a4c412df3dd3a2fe231";
+      sha256 = "11ik72qi7fvxkz7fnyisaa0xscy4pksq8l2pvclywzg3lcclhxp1";
     };
     meta.homepage = "https://github.com/rhysd/committia.vim/";
   };
 
+  completion-nvim = buildVimPluginFrom2Nix {
+    pname = "completion-nvim";
+    version = "2020-09-02";
+    src = fetchFromGitHub {
+      owner = "nvim-lua";
+      repo = "completion-nvim";
+      rev = "3de0996f965a218573e2fa62379cce9ed5c8dbc3";
+      sha256 = "0glai58hpwivfc67ndv588b4rsb27m40fblp8ydrf37w7cj787dz";
+    };
+    meta.homepage = "https://github.com/nvim-lua/completion-nvim/";
+  };
+
+  completion-treesitter = buildVimPluginFrom2Nix {
+    pname = "completion-treesitter";
+    version = "2020-06-26";
+    src = fetchFromGitHub {
+      owner = "nvim-treesitter";
+      repo = "completion-treesitter";
+      rev = "45c9b2faff4785539a0d0c655440c2465fed985a";
+      sha256 = "19pgdzzk7zq85b1grfjf0nncvs5vxrd4rj1p90iw2amq4mvqrx3l";
+    };
+    meta.homepage = "https://github.com/nvim-treesitter/completion-treesitter/";
+  };
+
   concealedyank-vim = buildVimPluginFrom2Nix {
     pname = "concealedyank-vim";
     version = "2013-03-24";
@@ -858,12 +546,12 @@ let
 
   conjure = buildVimPluginFrom2Nix {
     pname = "conjure";
-    version = "2020-06-16";
+    version = "2020-08-12";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "conjure";
-      rev = "778c8e711a23d6921a99986a00cdbb6d76e1b103";
-      sha256 = "1dk0j4f4dpl21rjc7gfl2r23sf0vjajcdyrc20pfr8kan86acz18";
+      rev = "db0de94cc2c4fe1bf1a8fe5c78fcc774097d1e90";
+      sha256 = "1vcp2hzp5kg1rpdbl8sil16zqc1qawxfchwbq4c4kwyr2kxkavhh";
     };
     meta.homepage = "https://github.com/Olical/conjure/";
   };
@@ -894,12 +582,12 @@ let
 
   cpsm = buildVimPluginFrom2Nix {
     pname = "cpsm";
-    version = "2018-09-08";
+    version = "2020-08-01";
     src = fetchFromGitHub {
       owner = "nixprime";
       repo = "cpsm";
-      rev = "900023c56dfdd200841d5c2f2f7000f332d2614f";
-      sha256 = "1p1ry11f39fcz32i3b3p0p8n99qrnvrx4d7p0123123dj7wbxk3p";
+      rev = "42cfb0f83083b33640619c208341629bff67bd8a";
+      sha256 = "0wcq442wj73ra0agflljjkhcwlma7r703l7l9hn7zd8wfb4iv48s";
     };
     meta.homepage = "https://github.com/nixprime/cpsm/";
   };
@@ -918,12 +606,12 @@ let
 
   csv-vim = buildVimPluginFrom2Nix {
     pname = "csv-vim";
-    version = "2020-06-16";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "csv.vim";
-      rev = "e999936dc4873708b524f94ae0a42df950900ff8";
-      sha256 = "1im11fpavcsyk7pjhnk2kkdnl0q9a6ai3nk3g3av0drm2qvia41x";
+      rev = "e23f03632ad2544f0232b824dd5520fd0b58d235";
+      sha256 = "12b127v6yxwik7q2wbyqag4082yzp44sm0x4xwnv55xhlz4w6xws";
     };
     meta.homepage = "https://github.com/chrisbra/csv.vim/";
   };
@@ -978,60 +666,60 @@ let
 
   dart-vim-plugin = buildVimPluginFrom2Nix {
     pname = "dart-vim-plugin";
-    version = "2020-05-20";
+    version = "2020-08-14";
     src = fetchFromGitHub {
       owner = "dart-lang";
       repo = "dart-vim-plugin";
-      rev = "70bc2f27d579d24e4973aea19df2fdffb1a8c95d";
-      sha256 = "01agwm0scg7g5l04djxmj22rd5rd3di1z9g89hp2lr3rqp8ipdrn";
+      rev = "378bddc9f0e109607935ab9a4ac717df008deac7";
+      sha256 = "0idaph0wdaf2rk9mh468zg8c4gf5hyvad5zqlpcd9q1f576ysswy";
     };
     meta.homepage = "https://github.com/dart-lang/dart-vim-plugin/";
   };
 
   defx-git = buildVimPluginFrom2Nix {
     pname = "defx-git";
-    version = "2020-01-18";
+    version = "2020-08-14";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "defx-git";
-      rev = "b5d0b842064ddb7a7af0e790f4648cb1909ed43f";
-      sha256 = "0i8vi6zhnv088qc3f3wa5h4b17xnpvmr603srhg44zx2clcjblnr";
+      rev = "717b30addcd5204cf11c0736792c4b7c45005b88";
+      sha256 = "1mx398lpzbzvrd1jawlxa4sd84ba60w3k9l46hg53hmbp1df4wff";
     };
     meta.homepage = "https://github.com/kristijanhusak/defx-git/";
   };
 
   defx-icons = buildVimPluginFrom2Nix {
     pname = "defx-icons";
-    version = "2020-02-10";
+    version = "2020-08-09";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "defx-icons";
-      rev = "2e4df3b6302da537ac7df28fbc0e0991c6c1aa0e";
-      sha256 = "0wkn02z75pvfl0xrhgq80sw0qfidjg5s0zm5mij632pq3dm7axiq";
+      rev = "3259550f918b2cfb9794b62e7bb94b863f75f489";
+      sha256 = "1a65p99f9f1idzkxl4fd1klxidf40lvs79bym1fydv1zw34x8qzv";
     };
     meta.homepage = "https://github.com/kristijanhusak/defx-icons/";
   };
 
   defx-nvim = buildVimPluginFrom2Nix {
     pname = "defx-nvim";
-    version = "2020-06-20";
+    version = "2020-08-28";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "defx.nvim";
-      rev = "acd68311bbb3296aa81c5799695715e85326b738";
-      sha256 = "1rv8b7g6prjibl9hx5wapj71hfg0dd2ipkpdj8w1zj4b0inj5848";
+      rev = "e4ea8290eba832997eaa36b6810e8ecc15ca1151";
+      sha256 = "063vy5kl8vz9c3nnz7g8yw1f1v1vcmxfg4p59mzsfrqf93fs2y30";
     };
     meta.homepage = "https://github.com/Shougo/defx.nvim/";
   };
 
   delimitMate = buildVimPluginFrom2Nix {
     pname = "delimitMate";
-    version = "2017-06-19";
+    version = "2020-07-29";
     src = fetchFromGitHub {
       owner = "Raimondi";
       repo = "delimitMate";
-      rev = "728b57a6564c1d2bdfb9b9e0f2f8c5ba3d7e0c5c";
-      sha256 = "0fskm9gz81dk8arcidrm71mv72a7isng1clssqkqn5wnygbiimsn";
+      rev = "16687aec24d803bc76cae2d7bfe2b73b1cdda4ef";
+      sha256 = "067bj6if0jyqy1x3hqjdc2d4jrgldz1ffppb4l9ih06m03zdqkjd";
     };
     meta.homepage = "https://github.com/Raimondi/delimitMate/";
   };
@@ -1050,36 +738,36 @@ let
 
   denite-git = buildVimPluginFrom2Nix {
     pname = "denite-git";
-    version = "2020-03-02";
+    version = "2020-08-20";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "denite-git";
-      rev = "88b5323a6fc0ace197eed5205215d80f3b613f91";
-      sha256 = "0b687i64hr8hll7pv7r1xz906b46cl2q62zm18ipikhkpva6iv13";
+      rev = "281f45114ba5673d671683ee19194a4958a2da57";
+      sha256 = "0j4vmljk6zvgvrj5s6ij5h5v4am7y9sd467f1fn3g6wqgm8432g6";
     };
     meta.homepage = "https://github.com/neoclide/denite-git/";
   };
 
   denite-nvim = buildVimPluginFrom2Nix {
     pname = "denite-nvim";
-    version = "2020-06-11";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "6139d4cd2d6944be8b713766f92f521eaa056c18";
-      sha256 = "0v64fj9jjq51h2cr1haih4ac4kffvzp6g0gli2vs4vjcbjbcil5r";
+      rev = "5fbc044e3e8ecf80c589d6e87859dcc4c005f2e5";
+      sha256 = "0w8k8bylsh45314yg8g9hrrpkacfp3gixk8qba46lajzib298g63";
     };
     meta.homepage = "https://github.com/Shougo/denite.nvim/";
   };
 
   deol-nvim = buildVimPluginFrom2Nix {
     pname = "deol-nvim";
-    version = "2020-06-20";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deol.nvim";
-      rev = "5f23eef76ffe62ddd78a3f3318d4efc6d236f403";
-      sha256 = "0gi9r8rvf725s65jafbskkn7c90ld74ckdv9xxm1d6rql0n9dsbb";
+      rev = "2c4d9117186a6cf86030d213ef2de60b5dbced19";
+      sha256 = "1aka5zg7jihy1958xp4j2z3kdzmb2d4w5cbl95na4hik5rz4hyxj";
     };
     meta.homepage = "https://github.com/Shougo/deol.nvim/";
   };
@@ -1172,13 +860,12 @@ let
 
   deoplete-jedi = buildVimPluginFrom2Nix {
     pname = "deoplete-jedi";
-    version = "2020-06-20";
+    version = "2020-08-06";
     src = fetchFromGitHub {
       owner = "deoplete-plugins";
       repo = "deoplete-jedi";
-      rev = "9ad4cbad7e8052bab042f724c71ba10621542f2c";
-      sha256 = "1hfrvgfl9av7c4v1pd04rnp5gcvnl1qwnfgq3vzh288mjs8z1yxk";
-      fetchSubmodules = true;
+      rev = "2786058b9022ce6e50db7f75088e69e07185e52c";
+      sha256 = "0myn6rgwq7yd3hpxdxa7kj3dlk2x9ljqlznqg95qcm8i0w53z1wg";
     };
     meta.homepage = "https://github.com/deoplete-plugins/deoplete-jedi/";
   };
@@ -1209,12 +896,12 @@ let
 
   deoplete-lsp = buildVimPluginFrom2Nix {
     pname = "deoplete-lsp";
-    version = "2020-06-11";
+    version = "2020-08-25";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete-lsp";
-      rev = "64a8663e529686fc43390942672ff2b33beda0e3";
-      sha256 = "1z8axvcrzip4bgmnn62p3q7rr3y7avkf7l4k2r266bkxwgsmh50k";
+      rev = "4fd2507dd295d9c114febabb0c9cf31da87df008";
+      sha256 = "1alwf8gjvgj5q3sbrqxrm0f2nbf6drk6dxqipk9pmvbj50iadyf1";
     };
     meta.homepage = "https://github.com/Shougo/deoplete-lsp/";
   };
@@ -1279,6 +966,18 @@ let
     meta.homepage = "https://github.com/carlitux/deoplete-ternjs/";
   };
 
+  deoplete-vim-lsp = buildVimPluginFrom2Nix {
+    pname = "deoplete-vim-lsp";
+    version = "2020-07-24";
+    src = fetchFromGitHub {
+      owner = "lighttiger2505";
+      repo = "deoplete-vim-lsp";
+      rev = "2ea06074dc07c67ccffc24b976b92e17e9d795d1";
+      sha256 = "03rpw1z5fgglba7vymi3ln810nh5x3x9hjqlm41shdik9pgmg867";
+    };
+    meta.homepage = "https://github.com/lighttiger2505/deoplete-vim-lsp/";
+  };
+
   deoplete-zsh = buildVimPluginFrom2Nix {
     pname = "deoplete-zsh";
     version = "2019-11-10";
@@ -1293,28 +992,52 @@ let
 
   deoplete-nvim = buildVimPluginFrom2Nix {
     pname = "deoplete-nvim";
-    version = "2020-06-21";
+    version = "2020-08-25";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete.nvim";
-      rev = "2a44d0f331c57bc0527bef1c975153c274bd52f6";
-      sha256 = "0v61734kh3zz4q2bj1085kydkviycmjv6c45qmsxnvh9vcjz7ip3";
+      rev = "7ab4c1bde7f9bd8824219594b07e4c1aa0814d4e";
+      sha256 = "13p59bxad46pxcihsns2vybjv8m6vhka9vbjvsvn6nwgck4rs1w3";
     };
     meta.homepage = "https://github.com/Shougo/deoplete.nvim/";
   };
 
+  devdocs-vim = buildVimPluginFrom2Nix {
+    pname = "devdocs-vim";
+    version = "2018-08-27";
+    src = fetchFromGitHub {
+      owner = "rhysd";
+      repo = "devdocs.vim";
+      rev = "1c91c619874f11f2062f80e6ca4b49456f21ae91";
+      sha256 = "1nxww2mjabl2g2wchxc4h3a58j64acls24zb5jmfi71b8sai8a9b";
+    };
+    meta.homepage = "https://github.com/rhysd/devdocs.vim/";
+  };
+
   dhall-vim = buildVimPluginFrom2Nix {
     pname = "dhall-vim";
-    version = "2020-01-02";
+    version = "2020-08-19";
     src = fetchFromGitHub {
       owner = "vmchale";
       repo = "dhall-vim";
-      rev = "607958520f8bd4308fe52937e211f6db4ad84cf3";
-      sha256 = "0rnkmfrzsm4hg6ln8g8qj9ff8z2sk7cnf4gqrswychqhhkg1f817";
+      rev = "77d1c165bcbe6bb7f9eedbeafe390c2107d3c52e";
+      sha256 = "03x55x0gvf7n4i8hh6s5453mf5h43pf7kdy817q6w1149bd90vxy";
     };
     meta.homepage = "https://github.com/vmchale/dhall-vim/";
   };
 
+  diagnostic-nvim = buildVimPluginFrom2Nix {
+    pname = "diagnostic-nvim";
+    version = "2020-07-25";
+    src = fetchFromGitHub {
+      owner = "nvim-lua";
+      repo = "diagnostic-nvim";
+      rev = "03670688e70fc65eff70abb3cefe1a086ee95bf8";
+      sha256 = "02nci7n9lpz1axpwzpv34r6720iycfh43n1910ryhm4f7cxs2x61";
+    };
+    meta.homepage = "https://github.com/nvim-lua/diagnostic-nvim/";
+  };
+
   direnv-vim = buildVimPluginFrom2Nix {
     pname = "direnv-vim";
     version = "2019-04-30";
@@ -1339,6 +1062,18 @@ let
     meta.homepage = "https://github.com/vim-scripts/DoxygenToolkit.vim/";
   };
 
+  dracula-vim = buildVimPluginFrom2Nix {
+    pname = "dracula-vim";
+    version = "2020-07-19";
+    src = fetchFromGitHub {
+      owner = "dracula";
+      repo = "vim";
+      rev = "b64b22affafca7d3831a20949115b91031d596ec";
+      sha256 = "1f5hwfcrsfq3yk53kkn4syaxmri8wh8h6rpq867468b8rdcnhq01";
+    };
+    meta.homepage = "https://github.com/dracula/vim/";
+  };
+
   echodoc-vim = buildVimPluginFrom2Nix {
     pname = "echodoc-vim";
     version = "2020-06-08";
@@ -1376,6 +1111,18 @@ let
     meta.homepage = "https://github.com/elmcast/elm-vim/";
   };
 
+  elvish-vim = buildVimPluginFrom2Nix {
+    pname = "elvish-vim";
+    version = "2019-06-29";
+    src = fetchFromGitHub {
+      owner = "dmix";
+      repo = "elvish.vim";
+      rev = "67ef8e89bff7cb8ea936f2164c8c268bbb3295f0";
+      sha256 = "133hr3i7zxysf2gnnimhz3gf3nda3fyfxmqq7mhq544v2mki4x9m";
+    };
+    meta.homepage = "https://github.com/dmix/elvish.vim/";
+  };
+
   emmet-vim = buildVimPluginFrom2Nix {
     pname = "emmet-vim";
     version = "2020-06-20";
@@ -1427,12 +1174,12 @@ let
 
   far-vim = buildVimPluginFrom2Nix {
     pname = "far-vim";
-    version = "2020-03-09";
+    version = "2020-07-23";
     src = fetchFromGitHub {
       owner = "brooth";
       repo = "far.vim";
-      rev = "2a8a9c22237d224f2c24680901b61b6f9bffb061";
-      sha256 = "0hk2p10cx36dz6vf22v4hx3shkkhqhkmxp6s1l517kkchh98m4bg";
+      rev = "aaf7b252301d03100ba3923c17d026562a0b17b8";
+      sha256 = "10ij80x2drmk3jr5c7pm9k3jrci9qb26gmqagpxpmiv1is9sdx0a";
     };
     meta.homepage = "https://github.com/brooth/far.vim/";
   };
@@ -1524,12 +1271,12 @@ let
 
   fruzzy = buildVimPluginFrom2Nix {
     pname = "fruzzy";
-    version = "2019-10-28";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "raghur";
       repo = "fruzzy";
-      rev = "b312ae79db98cf6939c8319f2511efa06889e8e3";
-      sha256 = "01iisbawq2w7yw866qvv109amnvyaymzyz9nqal3cjrrcwk6mmdk";
+      rev = "4cdfee7b828a5cace22bfd93cf23fee0b2b233c4";
+      sha256 = "1dmxz283ypz1klcmdf4jk699aifr3dywkh9y8v8v8vyflampqwwp";
     };
     meta.homepage = "https://github.com/raghur/fruzzy/";
   };
@@ -1548,12 +1295,12 @@ let
 
   fzf-vim = buildVimPluginFrom2Nix {
     pname = "fzf-vim";
-    version = "2020-06-21";
+    version = "2020-08-12";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "2bf85d25e203a536edb2c072c0d41b29e8e4cc1b";
-      sha256 = "0dj6nw7rgc4679vqqmls8f59r3ax1ys4lrq4dq1gby3yk8z7lcy9";
+      rev = "4145f53f3d343c389ff974b1f1a68eeb39fba18b";
+      sha256 = "07fb52c8bmmpfin24pqqh04q157qx52xjri2wjm004yq69b44hx7";
     };
     meta.homepage = "https://github.com/junegunn/fzf.vim/";
   };
@@ -1584,12 +1331,12 @@ let
 
   ghcid = buildVimPluginFrom2Nix {
     pname = "ghcid";
-    version = "2020-06-19";
+    version = "2020-08-12";
     src = fetchFromGitHub {
       owner = "ndmitchell";
       repo = "ghcid";
-      rev = "24e67a74e430da87f66fbd88acc01c9227842fde";
-      sha256 = "193acbbmkl1102fyhm3kj0jais5b3f6y1rnyhzkikwl3rjjf6gaj";
+      rev = "d6191a111a1160ddecb05292eefe28ae362ccbaa";
+      sha256 = "17dp28a3ipbx8fwsj0h9imkrgd0nfjzpcsn1zjdbih1kfh494smf";
     };
     meta.homepage = "https://github.com/ndmitchell/ghcid/";
   };
@@ -1608,12 +1355,12 @@ let
 
   git-messenger-vim = buildVimPluginFrom2Nix {
     pname = "git-messenger-vim";
-    version = "2020-06-08";
+    version = "2020-08-20";
     src = fetchFromGitHub {
       owner = "rhysd";
       repo = "git-messenger.vim";
-      rev = "0c79022b267f10305cd2d0d3e978c77bcb67b617";
-      sha256 = "1657622w60g2xqxalvxjhx9blcppxy69kgn170jb65902x2bav7p";
+      rev = "c16b0d43ca57e77081f1f23f67552efe37110b39";
+      sha256 = "171w3dv3jl4mw1ikh5p688v0a8nf85h862d9zvsmdzs2v6ajigpw";
     };
     meta.homepage = "https://github.com/rhysd/git-messenger.vim/";
   };
@@ -1642,6 +1389,18 @@ let
     meta.homepage = "https://github.com/gregsexton/gitv/";
   };
 
+  golden-ratio = buildVimPluginFrom2Nix {
+    pname = "golden-ratio";
+    version = "2020-04-03";
+    src = fetchFromGitHub {
+      owner = "roman";
+      repo = "golden-ratio";
+      rev = "8313b6d6723c9e77ef1d3760af2cdd244e8db043";
+      sha256 = "03nm1wr0qsrirg4z4171f4nygnqgb6w06ldr6rbbz4a1f7j8j654";
+    };
+    meta.homepage = "https://github.com/roman/golden-ratio/";
+  };
+
   gotests-vim = buildVimPluginFrom2Nix {
     pname = "gotests-vim";
     version = "2019-04-10";
@@ -1656,24 +1415,24 @@ let
 
   goyo-vim = buildVimPluginFrom2Nix {
     pname = "goyo-vim";
-    version = "2020-06-08";
+    version = "2020-08-29";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "goyo.vim";
-      rev = "3e129198bba7d6b50406902002ad7d213a6cccaa";
-      sha256 = "1b2wsxbg27nmwxrncwddkl2ck8hbiqdqi821vl9d1fl5nx042y2b";
+      rev = "a865dec7ca7616dbbd69315ad1417b84d0c411f8";
+      sha256 = "09mqmcz79dwcc5mv0p2wc84jc20ipa0vv2yckp4la4xh909ph4hm";
     };
     meta.homepage = "https://github.com/junegunn/goyo.vim/";
   };
 
   gruvbox = buildVimPluginFrom2Nix {
     pname = "gruvbox";
-    version = "2020-02-23";
+    version = "2020-07-03";
     src = fetchFromGitHub {
       owner = "morhetz";
       repo = "gruvbox";
-      rev = "040138616bec342d5ea94d4db296f8ddca17007a";
-      sha256 = "0qk2mqs04qlxkc1ldgjbiv1yisi2xl2b8svmjz0hdp9y2l5vfccw";
+      rev = "bf2885a95efdad7bd5e4794dd0213917770d79b7";
+      sha256 = "0576sqzljal3k8rsnbmcvlsk4ywg1vfgkxkvrv2zac2d5wwa9i8z";
     };
     meta.homepage = "https://github.com/morhetz/gruvbox/";
   };
@@ -1750,14 +1509,26 @@ let
     meta.homepage = "https://github.com/mpickering/hlint-refactor-vim/";
   };
 
+  i3config-vim = buildVimPluginFrom2Nix {
+    pname = "i3config-vim";
+    version = "2020-03-28";
+    src = fetchFromGitHub {
+      owner = "mboughaba";
+      repo = "i3config.vim";
+      rev = "c3fe1a901392ee11721e08d2a0d2886a7f8b8e83";
+      sha256 = "1cygyn7p0x2smqsjxly5xbsdnrjnq5kj1a0a8qg356j0l112j7z2";
+    };
+    meta.homepage = "https://github.com/mboughaba/i3config.vim/";
+  };
+
   iceberg-vim = buildVimPluginFrom2Nix {
     pname = "iceberg-vim";
-    version = "2020-05-15";
+    version = "2020-07-20";
     src = fetchFromGitHub {
       owner = "cocopon";
       repo = "iceberg.vim";
-      rev = "bdd630fb15dca7793b04deaf1c1fb3a6af33ceae";
-      sha256 = "045jm4gz8gqv7mgz04l3q42mj1ji9qv99n915zq8fgzfskc0pixj";
+      rev = "203d56849325fb0420587c9951859a755798aea3";
+      sha256 = "16calikypw9gyb4vzybwqgl329v6wpqj05z6m2ajbr027fksxfjr";
     };
     meta.homepage = "https://github.com/cocopon/iceberg.vim/";
   };
@@ -1896,12 +1667,12 @@ let
 
   jedi-vim = buildVimPluginFrom2Nix {
     pname = "jedi-vim";
-    version = "2020-03-07";
+    version = "2020-07-17";
     src = fetchFromGitHub {
       owner = "davidhalter";
       repo = "jedi-vim";
-      rev = "e83112f9aab147ab485ee7af72e01d047c5206d3";
-      sha256 = "0yj1bsfn43crmfn0ylyzyz41z0vmvapl5cgm7k1rnbj96i7vifx7";
+      rev = "a17b0333031bd3652ad4c6169caaed05ffb7c49d";
+      sha256 = "0xqsh0mw64s9ph4sd550fc129q567dld3vk7fciwd2905h9q0k8q";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/davidhalter/jedi-vim/";
@@ -1945,24 +1716,24 @@ let
 
   julia-vim = buildVimPluginFrom2Nix {
     pname = "julia-vim";
-    version = "2020-06-06";
+    version = "2020-07-31";
     src = fetchFromGitHub {
       owner = "JuliaEditorSupport";
       repo = "julia-vim";
-      rev = "f0fab9a2df5223815f7dc46f44f69566aa9e51d1";
-      sha256 = "145wxlv5rifk93lvai17625r1c94lnbi8rnda0vidr0dhhgcl7v7";
+      rev = "ead61b0ff9e26365a977280298b22bad40c9fba5";
+      sha256 = "05p5kxkdh4y1s8532d1d8zilq9hy098bwx3lyrsqpxj0n2kr2q0d";
     };
     meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/";
   };
 
   kotlin-vim = buildVimPluginFrom2Nix {
     pname = "kotlin-vim";
-    version = "2019-05-26";
+    version = "2020-08-11";
     src = fetchFromGitHub {
       owner = "udalov";
       repo = "kotlin-vim";
-      rev = "b9fa728701a0aa0b9a2ffe92f10880348fc27a8f";
-      sha256 = "1yqzxabhpc4jbdlzhsysp0vi1ayqg0vnpysvx4ynd9961q2fk3sz";
+      rev = "26970168ca88c62b271fbc0a275dbe31cda94bd6";
+      sha256 = "0mvwz8gwv619b4l7g3mafvd6q4khl0xis0a8v300d8i3pjhx4i40";
     };
     meta.homepage = "https://github.com/udalov/kotlin-vim/";
   };
@@ -2041,12 +1812,12 @@ let
 
   lexima-vim = buildVimPluginFrom2Nix {
     pname = "lexima-vim";
-    version = "2019-07-22";
+    version = "2020-07-31";
     src = fetchFromGitHub {
       owner = "cohama";
       repo = "lexima.vim";
-      rev = "aa32e972b69230625989daa09ee5fd74a2d877ef";
-      sha256 = "15cc09vb0yrasz76qkcqxhj95y1m6yrsx3wsn6khx39kp1bas0jd";
+      rev = "89bf4dc13539131a29cf938074b3f1ce9d000bfd";
+      sha256 = "19b73r3v4i64kiijihzqlbj6bf6jd1w90qc7d3lg95iwlaczd8v0";
     };
     meta.homepage = "https://github.com/cohama/lexima.vim/";
   };
@@ -2077,12 +1848,12 @@ let
 
   lh-vim-lib = buildVimPluginFrom2Nix {
     pname = "lh-vim-lib";
-    version = "2020-06-03";
+    version = "2020-08-20";
     src = fetchFromGitHub {
       owner = "LucHermitte";
       repo = "lh-vim-lib";
-      rev = "448982501112f69f8edb7fb7bb61573091036366";
-      sha256 = "1k4man0jm8pkvb2f8l2f743ipwiz76ljzzn1hi4pvs0wncdr7k6q";
+      rev = "15722c04a41d49027c7b499703fc1dac376653a8";
+      sha256 = "1h94zzanzlixlmlyy3r54hk2lw9hwd49v9ij9lq3ghyc79gvhvgi";
     };
     meta.homepage = "https://github.com/LucHermitte/lh-vim-lib/";
   };
@@ -2101,24 +1872,24 @@ let
 
   lightline-bufferline = buildVimPluginFrom2Nix {
     pname = "lightline-bufferline";
-    version = "2020-05-08";
+    version = "2020-08-17";
     src = fetchFromGitHub {
       owner = "mengelbrecht";
       repo = "lightline-bufferline";
-      rev = "ef674de5ca1c963ad12f04631ea58f90dbbc70da";
-      sha256 = "0kdla3gmkyk77vqz6hj41alq3jmrkml7836fhsd3hb50f6wwvk11";
+      rev = "4e0c69a53b64ac90ca5235f176a070e003108113";
+      sha256 = "1rhin9pcry3sgggvkzsmxd2s4x262m4x9xdvsrshkc2zj8wy8b0i";
     };
     meta.homepage = "https://github.com/mengelbrecht/lightline-bufferline/";
   };
 
   lightline-vim = buildVimPluginFrom2Nix {
     pname = "lightline-vim";
-    version = "2020-06-21";
+    version = "2020-08-16";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "lightline.vim";
-      rev = "afd88109a6e24c4cc0cb55ae70ca66c108f1c540";
-      sha256 = "1cjb7klyigsqxv827bxdgp22b8cc5wihb1jfk7a8l63skliyqmg2";
+      rev = "1b412cf3af3dad79ee5807e6b151b8ac6aa4e2fc";
+      sha256 = "074jp56m55mbvyhl5sw4pmg8ivjxqmah1kl3nyxk61hnnv1ackb3";
     };
     meta.homepage = "https://github.com/itchyny/lightline.vim/";
   };
@@ -2197,12 +1968,12 @@ let
 
   ncm2 = buildVimPluginFrom2Nix {
     pname = "ncm2";
-    version = "2020-03-05";
+    version = "2020-07-26";
     src = fetchFromGitHub {
       owner = "ncm2";
       repo = "ncm2";
-      rev = "6596df4631ee1ee17351a78f382d4efd0b82c05e";
-      sha256 = "16276cjviij92ypqj9148828k4dhiywam0dz07v3rikknak11cra";
+      rev = "7d49f7b473db732878091f2f8c68bc47b015559b";
+      sha256 = "112pspa730pvwiv0hbzn9z6i3zpn25p8g45wf67kj2084wiqkkx3";
     };
     meta.homepage = "https://github.com/ncm2/ncm2/";
   };
@@ -2219,18 +1990,102 @@ let
     meta.homepage = "https://github.com/ncm2/ncm2-bufword/";
   };
 
+  ncm2-cssomni = buildVimPluginFrom2Nix {
+    pname = "ncm2-cssomni";
+    version = "2018-07-09";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-cssomni";
+      rev = "adaf78b921ee4320fd9d7adaa5bff7f3794f373a";
+      sha256 = "0z79n1fivw60whx2fy6239lq8c2xnbzzadijplj51gy34jk4hki0";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-cssomni/";
+  };
+
+  ncm2-dictionary = buildVimPluginFrom2Nix {
+    pname = "ncm2-dictionary";
+    version = "2018-11-15";
+    src = fetchFromGitHub {
+      owner = "yuki-ycino";
+      repo = "ncm2-dictionary";
+      rev = "c93b52ab0cd1a9ebe5711414c3134f4bba9be6af";
+      sha256 = "096l8prqm7zb2s27j2cpnydggszicaji7xjlmhrav7dzc51avafy";
+    };
+    meta.homepage = "https://github.com/yuki-ycino/ncm2-dictionary/";
+  };
+
+  ncm2-github = buildVimPluginFrom2Nix {
+    pname = "ncm2-github";
+    version = "2018-08-01";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-github";
+      rev = "2d7ed04a8fe5b8c27cfef5781a944d9865eed61f";
+      sha256 = "1dcxknbjm2mxrw1l2i56xrjyxlp0vr6gr5l62x5hcd5wfkzi74a1";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-github/";
+  };
+
+  ncm2-html-subscope = buildVimPluginFrom2Nix {
+    pname = "ncm2-html-subscope";
+    version = "2018-07-01";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-html-subscope";
+      rev = "8294cf1bb55fb805454a9230aeb91dbb0f733a14";
+      sha256 = "19h1jjqv6jwv5fnxxa6gv0qiyc3rbnxf0zibqxzdclmskrdgjacq";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-html-subscope/";
+  };
+
   ncm2-jedi = buildVimPluginFrom2Nix {
     pname = "ncm2-jedi";
-    version = "2019-11-19";
+    version = "2020-08-06";
     src = fetchFromGitHub {
       owner = "ncm2";
       repo = "ncm2-jedi";
-      rev = "b28bf6d054051cc1c7a6b148323d3adb9baa4ed5";
-      sha256 = "07pq8akzvlb8hzksgxx1c50j09ia0xnszq1f83x75kqsjg5f6nhy";
+      rev = "d378d3e80e15368c1714fd6c20dd461dc7db9796";
+      sha256 = "0bphij55pjh87wcy0xk9yvgi0w3i0wvhbg71vddq0jn6m3r2gmlf";
     };
     meta.homepage = "https://github.com/ncm2/ncm2-jedi/";
   };
 
+  ncm2-markdown-subscope = buildVimPluginFrom2Nix {
+    pname = "ncm2-markdown-subscope";
+    version = "2020-03-09";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-markdown-subscope";
+      rev = "beeef1e88df29d2718f0fb73cdd4702eaf449f13";
+      sha256 = "0hh5bs76k5jsjzdp5lm53gma517s8ijrdp0acjjvsagz7r7gymq7";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-markdown-subscope/";
+  };
+
+  ncm2-neoinclude = buildVimPluginFrom2Nix {
+    pname = "ncm2-neoinclude";
+    version = "2020-07-19";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-neoinclude";
+      rev = "081f48c735c5f51849ec14e6a266b5400bf94b62";
+      sha256 = "0xsvj8ng9blhwl8fxscm3iflppvf7p7kpl3hxh0z14xhdy3nynyi";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-neoinclude/";
+  };
+
+  ncm2-neosnippet = buildVimPluginFrom2Nix {
+    pname = "ncm2-neosnippet";
+    version = "2019-01-26";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-neosnippet";
+      rev = "650552528a2297179b8bb3afc1d9bb44ea97911b";
+      sha256 = "14ammx1qa72m6mafd64mc9qw3sgnmjqgq5vvcylqzqwy26wwla1b";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-neosnippet/";
+  };
+
   ncm2-path = buildVimPluginFrom2Nix {
     pname = "ncm2-path";
     version = "2019-02-20";
@@ -2243,6 +2098,30 @@ let
     meta.homepage = "https://github.com/ncm2/ncm2-path/";
   };
 
+  ncm2-syntax = buildVimPluginFrom2Nix {
+    pname = "ncm2-syntax";
+    version = "2020-07-19";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-syntax";
+      rev = "d41d60b22175822c14f497378a05398e3eca2517";
+      sha256 = "065sflxr6sp491ifvcf7bzvpn5c47qc0mr091v2p2k73lp9jx2s2";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-syntax/";
+  };
+
+  ncm2-tagprefix = buildVimPluginFrom2Nix {
+    pname = "ncm2-tagprefix";
+    version = "2018-11-08";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-tagprefix";
+      rev = "6bff80cbd3edb02a0c91a26820606d0dcbfeb3bd";
+      sha256 = "0a3dgvs3jflhh5015jw7iahlblvnlq7vllh9avwh9pggd7zwc42k";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-tagprefix/";
+  };
+
   ncm2-tmux = buildVimPluginFrom2Nix {
     pname = "ncm2-tmux";
     version = "2019-01-11";
@@ -2267,6 +2146,18 @@ let
     meta.homepage = "https://github.com/ncm2/ncm2-ultisnips/";
   };
 
+  ncm2-vim = buildVimPluginFrom2Nix {
+    pname = "ncm2-vim";
+    version = "2020-07-19";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-vim";
+      rev = "876ad5f30d1e296a4ab425a0e22a8162876ac48b";
+      sha256 = "19b2xl5cvy3pk14r3k02149whdrcgisnqv2rzm5bic4w23532ad2";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-vim/";
+  };
+
   neco-ghc = buildVimPluginFrom2Nix {
     pname = "neco-ghc";
     version = "2020-06-06";
@@ -2317,12 +2208,12 @@ let
 
   neocomplete-vim = buildVimPluginFrom2Nix {
     pname = "neocomplete-vim";
-    version = "2020-01-23";
+    version = "2020-08-12";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neocomplete.vim";
-      rev = "0f83788cb67e0743a3a9c8d3a3a6e52a01bdc6c2";
-      sha256 = "1ydnb576qbdbij7ipciw0m46wbj45gj7xirpmqxazgp9y6b13isf";
+      rev = "f80bbf8f2f1717a127e5fbe885729daa862def81";
+      sha256 = "0cks5fvr05k0lp2mwflqzx0mq6a3881c1304hdyci57j5bkkyvkj";
     };
     meta.homepage = "https://github.com/Shougo/neocomplete.vim/";
   };
@@ -2341,12 +2232,12 @@ let
 
   neoformat = buildVimPluginFrom2Nix {
     pname = "neoformat";
-    version = "2020-06-12";
+    version = "2020-08-25";
     src = fetchFromGitHub {
       owner = "sbdchd";
       repo = "neoformat";
-      rev = "1cee66fe6219f8cc698eb244ba4001bdad1d09cb";
-      sha256 = "0w5hw5qc5n0i2hal91nilmxazskixv6c1rcszgqar4dfh951kazy";
+      rev = "491d83c50c9b17c896850bbd7ec00f2019e2f110";
+      sha256 = "0mj20dyf2hj9wr1df6rv7yn3mcb8z20bivclm8ircni2gi64bdb9";
     };
     meta.homepage = "https://github.com/sbdchd/neoformat/";
   };
@@ -2365,12 +2256,12 @@ let
 
   neomake = buildVimPluginFrom2Nix {
     pname = "neomake";
-    version = "2020-04-09";
+    version = "2020-07-15";
     src = fetchFromGitHub {
       owner = "neomake";
       repo = "neomake";
-      rev = "d10e53956161176c7f8a1ef2899880d5384f47b0";
-      sha256 = "0zv27bln0n687s0xm19nrk16i58hmxdhy26jmjh335zji0ydx27v";
+      rev = "a3082cca83424e28730c738cf33157326b0be5ba";
+      sha256 = "0jxxy6ibj73xh77rvfkcqr98q1pr563zsmzq1qdm3s9lb6xvzka6";
     };
     meta.homepage = "https://github.com/neomake/neomake/";
   };
@@ -2389,60 +2280,60 @@ let
 
   neosnippet-snippets = buildVimPluginFrom2Nix {
     pname = "neosnippet-snippets";
-    version = "2020-05-06";
+    version = "2020-08-16";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neosnippet-snippets";
-      rev = "66abcb7de82a45be6ba8b669d5e7bdca51deafdd";
-      sha256 = "0a0irlhj1skkwy1897q6dbg9zh8v6b0sx12dsgj3z37rvplfw78y";
+      rev = "b7ba77a4eb39a95ffbb6b3ff0c3c43746441b2aa";
+      sha256 = "0yf55pi6d35brdva4n0x7yygjnymwbgwn1fx83nbzxhixmgbk45b";
     };
     meta.homepage = "https://github.com/Shougo/neosnippet-snippets/";
   };
 
   neosnippet-vim = buildVimPluginFrom2Nix {
     pname = "neosnippet-vim";
-    version = "2020-06-18";
+    version = "2020-08-03";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neosnippet.vim";
-      rev = "2c6c457e0655090639bd8c68f6eac4b01d071696";
-      sha256 = "0ca8im1kmj4d1wshjjgci7v2d0szia36hhgnb2dmsg601ninkvmw";
+      rev = "b4c470b7e720fa061ac118a09420bc2da16610bd";
+      sha256 = "1d27rhyd5db0vd72gi6dl34g4axsz66d0l0fgw5g6grawlpf8w6l";
     };
     meta.homepage = "https://github.com/Shougo/neosnippet.vim/";
   };
 
   NeoSolarized = buildVimPluginFrom2Nix {
     pname = "NeoSolarized";
-    version = "2020-03-10";
+    version = "2020-08-07";
     src = fetchFromGitHub {
       owner = "overcache";
       repo = "NeoSolarized";
-      rev = "70609c44215c8d2c43ad8c631296caae08a9c8d4";
-      sha256 = "0bxrm2vm3z1y37sm6m2hdn72g2sw31dx1xhmjvd0ng72cnp84d9k";
+      rev = "b94b1a9ad51e2de015266f10fdc6e142f97bd617";
+      sha256 = "019nz56yirpg1ahg8adfafrxznalw056qwm3xjm9kzg6da8j6v48";
     };
     meta.homepage = "https://github.com/overcache/NeoSolarized/";
   };
 
   neoterm = buildVimPluginFrom2Nix {
     pname = "neoterm";
-    version = "2020-05-30";
+    version = "2020-08-06";
     src = fetchFromGitHub {
       owner = "kassio";
       repo = "neoterm";
-      rev = "d6667d8fca8425753d7da215f57e1a0e936e75de";
-      sha256 = "1wmsqnhbd438xs8dp2jrkk7fhzzi7w1l66jqwfwz6sxl0ayc3k7y";
+      rev = "48bc5d0bddd3debb9bdf73ee1d1153d7cafa693e";
+      sha256 = "0495n0l9isi7pgfgc2axkk0v4g7r4dpbzxg5dl4hg7qkw6la7l5k";
     };
     meta.homepage = "https://github.com/kassio/neoterm/";
   };
 
   neovim-fuzzy = buildVimPluginFrom2Nix {
     pname = "neovim-fuzzy";
-    version = "2019-11-14";
+    version = "2020-07-21";
     src = fetchFromGitHub {
       owner = "cloudhead";
       repo = "neovim-fuzzy";
-      rev = "53383395befafce802c902c21b54847074454491";
-      sha256 = "064qi6zv2hrzn91pvr31b9zj2q0k9vbkk5csdhw5y52q26p1gakq";
+      rev = "a076c5828182afe03109ead9ca6863d3d0bd47f3";
+      sha256 = "0h3ak79kw26wpiw4q9vgjmdp5vdrnhqimlayfjixbqmq4p7nldcj";
     };
     meta.homepage = "https://github.com/cloudhead/neovim-fuzzy/";
   };
@@ -2461,12 +2352,12 @@ let
 
   neoyank-vim = buildVimPluginFrom2Nix {
     pname = "neoyank-vim";
-    version = "2019-12-11";
+    version = "2020-07-27";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neoyank.vim";
-      rev = "1829c6e426f829edea46660d0db08d4488010fcd";
-      sha256 = "1y6fvxqpj3rwf1fmjib177lqzh3z7syp7bccn79g1j8177m515w6";
+      rev = "0d86f6565a6193cdf017ac4f79e52fed04d5c0fb";
+      sha256 = "02n1n3hb3bn5x9na05crhwmdmk66wyjx8i01fsyazlpv32v1wfsy";
     };
     meta.homepage = "https://github.com/Shougo/neoyank.vim/";
   };
@@ -2485,12 +2376,12 @@ let
 
   nerdtree = buildVimPluginFrom2Nix {
     pname = "nerdtree";
-    version = "2020-06-01";
+    version = "2020-08-18";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "nerdtree";
-      rev = "d48ab70721d4f688ed34bd5939e2d6f4c89548c5";
-      sha256 = "0rd228ks4gppskcvz6cj94gnbd9wykic8f4ilc9smaqw817gq20s";
+      rev = "577ddc73f0a1d2fd6166ed3268ab8536111037e0";
+      sha256 = "0bccr18nr42vwbb4i765yxjw18piyiyd12sm4snbkkxahp9yswf7";
     };
     meta.homepage = "https://github.com/preservim/nerdtree/";
   };
@@ -2507,6 +2398,18 @@ let
     meta.homepage = "https://github.com/albfan/nerdtree-git-plugin/";
   };
 
+  neuron-vim = buildVimPluginFrom2Nix {
+    pname = "neuron-vim";
+    version = "2020-08-07";
+    src = fetchFromGitHub {
+      owner = "ihsanturk";
+      repo = "neuron.vim";
+      rev = "07521a3ef2940bd726e7b4d50b82e46898e686cc";
+      sha256 = "0myadiy6y2p73lhdzk2w55whg4i5rs004jaw1m21cz0dk8k8ibn2";
+    };
+    meta.homepage = "https://github.com/ihsanturk/neuron.vim/";
+  };
+
   nim-vim = buildVimPluginFrom2Nix {
     pname = "nim-vim";
     version = "2019-04-26";
@@ -2521,12 +2424,12 @@ let
 
   nord-vim = buildVimPluginFrom2Nix {
     pname = "nord-vim";
-    version = "2020-06-16";
+    version = "2020-07-06";
     src = fetchFromGitHub {
       owner = "arcticicestudio";
       repo = "nord-vim";
-      rev = "2124a5a760fb6138b10f38ceac3fce5c19056b9a";
-      sha256 = "0g08kydqh58617lxjnlvbvjp0f730kzjpsz44v390sjx2a9xrk23";
+      rev = "57dffa746907e8ce5c4b520146ed0d89d3c29a51";
+      sha256 = "0xpz71rj74514789v6x9wrg95n8bsag8f5ygd7js40qrwpxq6b4j";
     };
     meta.homepage = "https://github.com/arcticicestudio/nord-vim/";
   };
@@ -2569,38 +2472,38 @@ let
 
   nvim-gdb = buildVimPluginFrom2Nix {
     pname = "nvim-gdb";
-    version = "2020-05-20";
+    version = "2020-08-22";
     src = fetchFromGitHub {
       owner = "sakhnik";
       repo = "nvim-gdb";
-      rev = "67c37060deba03d123c4654c1b3da426c92d6f61";
-      sha256 = "0rsgpnl20pxfqcwd5gr89mkqv3im4s7v4d1cvxvi9wj0ix06pxm1";
+      rev = "004dc3cfa93fb56baeaed55291cf356dd1b18f9b";
+      sha256 = "0x4r0s9rm2zk8rrvw2m1rfmagmy68d88bmxiqps2c3fb9zd1c7ny";
     };
     meta.homepage = "https://github.com/sakhnik/nvim-gdb/";
   };
 
   nvim-hs-vim = buildVimPluginFrom2Nix {
     pname = "nvim-hs-vim";
-    version = "2019-04-14";
+    version = "2020-08-29";
     src = fetchFromGitHub {
       owner = "neovimhaskell";
       repo = "nvim-hs.vim";
-      rev = "5bc177a87c9575c4995df90a098d330fe6e02f75";
-      sha256 = "14jgvkvakpy36md5si2a3rf2w869snb65inriq68xbk32bg5pg8q";
+      rev = "30baacd3c7a10625cb2d4dd64ae3bbfc4fe3f8c6";
+      sha256 = "1w6cr6j77nwxszm1d0y4phvjsz9q4aw214xkscw6izakfmk06h1x";
     };
     meta.homepage = "https://github.com/neovimhaskell/nvim-hs.vim/";
   };
 
-  nvim-lsp = buildVimPluginFrom2Nix {
-    pname = "nvim-lsp";
-    version = "2020-06-16";
+  nvim-lspconfig = buildVimPluginFrom2Nix {
+    pname = "nvim-lspconfig";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "neovim";
-      repo = "nvim-lsp";
-      rev = "a82ce0ebff06ec85ddb2c61763158b8e97b9a85e";
-      sha256 = "0dsg79qklb942af0qhpzd8h2j1rllk1qgm88p0s49m7rprfah3g4";
+      repo = "nvim-lspconfig";
+      rev = "419fa4006e7c15cbc2f81f5110952de562494cd4";
+      sha256 = "1snkk214j49wyar98jx65bkkzaj5fnq8d8d8dfnz81ymx3dv6pqv";
     };
-    meta.homepage = "https://github.com/neovim/nvim-lsp/";
+    meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
 
   nvim-terminal-lua = buildVimPluginFrom2Nix {
@@ -2615,6 +2518,18 @@ let
     meta.homepage = "https://github.com/norcalli/nvim-terminal.lua/";
   };
 
+  nvim-treesitter = buildVimPluginFrom2Nix {
+    pname = "nvim-treesitter";
+    version = "2020-09-02";
+    src = fetchFromGitHub {
+      owner = "nvim-treesitter";
+      repo = "nvim-treesitter";
+      rev = "36f3e036e5b244af01947339da92430c4761e57e";
+      sha256 = "0nymrwc129mxgsw9ziw616zpn2q9a83cnlwkvbjpv3c78im8jnka";
+    };
+    meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
+  };
+
   nvim-yarp = buildVimPluginFrom2Nix {
     pname = "nvim-yarp";
     version = "2020-04-08";
@@ -2653,12 +2568,12 @@ let
 
   onedark-vim = buildVimPluginFrom2Nix {
     pname = "onedark-vim";
-    version = "2020-05-01";
+    version = "2020-08-12";
     src = fetchFromGitHub {
       owner = "joshdick";
       repo = "onedark.vim";
-      rev = "4bd965e29811e29e1c1b0819f3a63671d3e6ef28";
-      sha256 = "168zim0ifkg441iwwpxdb93fq4ap2ps0rnrad5lqycpgwr0v0bg2";
+      rev = "7f9b1802b0d76f4f8fe7ad5bbef472c96e1c104f";
+      sha256 = "11fk496xk0564fcfmc77b2m98l6dmvb4ph50vyq73a1mlcs1438c";
     };
     meta.homepage = "https://github.com/joshdick/onedark.vim/";
   };
@@ -2677,12 +2592,12 @@ let
 
   open-browser-github-vim = buildVimPluginFrom2Nix {
     pname = "open-browser-github-vim";
-    version = "2020-03-16";
+    version = "2020-07-08";
     src = fetchFromGitHub {
       owner = "tyru";
       repo = "open-browser-github.vim";
-      rev = "db483ae17f02a8561e85b2071b90359a9a3bd18d";
-      sha256 = "09x9lfyi9gfhy4m1vp6z1kxpvi31rr8dnlqhh6fgskkziiqch3jw";
+      rev = "7c31cd0093fdf89d53fa02b210c82b1326b00a8c";
+      sha256 = "1r3b16b7siyxj3n44z899spma5vamc5g76p947h95m9d0rc6sfnk";
     };
     meta.homepage = "https://github.com/tyru/open-browser-github.vim/";
   };
@@ -2701,12 +2616,12 @@ let
 
   palenight-vim = buildVimPluginFrom2Nix {
     pname = "palenight-vim";
-    version = "2020-01-17";
+    version = "2020-08-30";
     src = fetchFromGitHub {
       owner = "drewtempelmeyer";
       repo = "palenight.vim";
-      rev = "f332f9efe73227a47c18bade892ac55682641733";
-      sha256 = "0nd2hqvxnjnbsp17x666nwyy0s9j9b6igyfhl44p7lkci6560gwp";
+      rev = "677745d52c4c03b344cd382dab0554a1d63b0692";
+      sha256 = "0av2if81vcknv3w74h5y1mbip8y8i0kif94v5mdc17cfi6d5ngks";
     };
     meta.homepage = "https://github.com/drewtempelmeyer/palenight.vim/";
   };
@@ -2761,12 +2676,12 @@ let
 
   plantuml-syntax = buildVimPluginFrom2Nix {
     pname = "plantuml-syntax";
-    version = "2020-05-09";
+    version = "2020-07-03";
     src = fetchFromGitHub {
       owner = "aklt";
       repo = "plantuml-syntax";
-      rev = "8dddc45f3f7ba4f0319a14e6f0167d97a703ac55";
-      sha256 = "1fkls8qwkdgr5fyaml9rlrjzrbwav2zyp2xyfdyg4h6pbgchvkbl";
+      rev = "eb3df3092a767c844db3f3ff355da840abd0aa97";
+      sha256 = "02psvyxli5gs2cx2sha33mk98ivllb8zr1jwgv4hgi5bh6qd7wg3";
     };
     meta.homepage = "https://github.com/aklt/plantuml-syntax/";
   };
@@ -2845,12 +2760,12 @@ let
 
   quick-scope = buildVimPluginFrom2Nix {
     pname = "quick-scope";
-    version = "2020-06-18";
+    version = "2020-07-31";
     src = fetchFromGitHub {
       owner = "unblevable";
       repo = "quick-scope";
-      rev = "03f047175fc3bd3ed9828ccec48b646bc53ab204";
-      sha256 = "11wh5jy7b1ncqbgc0nmip38zhz9halglaa3bw9da4qk5fp6xr1a4";
+      rev = "64a5e6f9791e75f4d87b176d5c11f31041aa4169";
+      sha256 = "1b1s8jmfip40s9m466c78jczp22dq2brbsnmdaz7gc1fgxyb5858";
     };
     meta.homepage = "https://github.com/unblevable/quick-scope/";
   };
@@ -3013,12 +2928,12 @@ let
 
   rust-vim = buildVimPluginFrom2Nix {
     pname = "rust-vim";
-    version = "2020-06-11";
+    version = "2020-08-15";
     src = fetchFromGitHub {
       owner = "rust-lang";
       repo = "rust.vim";
-      rev = "0d8ce07aaa3b95e61bf319b25bb3b1a4ecc780c2";
-      sha256 = "0bwj60zvafv5z61yy66ab6ng1ilnj20k3xnxl6myzvfn70rsp5yd";
+      rev = "f5eb7b04ee2746cbed4067e0cf9dd19185529a34";
+      sha256 = "0549r64350cr17gg1lm1fwz0wb1w9jsbs8qi8ddcsgrk1bc3gqf5";
     };
     meta.homepage = "https://github.com/rust-lang/rust.vim/";
   };
@@ -3073,12 +2988,12 @@ let
 
   seoul256-vim = buildVimPluginFrom2Nix {
     pname = "seoul256-vim";
-    version = "2020-03-14";
+    version = "2020-06-21";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "seoul256.vim";
-      rev = "cfc0167e546a40eb26ec2a0a0f1c141a8c1bcaf1";
-      sha256 = "1z980hsmf6gcvd16ja67az131mrgv5fv6v0ivsh0ga8hwc4f9l6q";
+      rev = "24ed467ca6ef9ce7ede56c9ffb1c6b30cd0ee906";
+      sha256 = "0ihs5nxdyx3jr1n96l2yx4b5gc48x7qbyxv6dc53ihw2vpn783fx";
     };
     meta.homepage = "https://github.com/junegunn/seoul256.vim/";
   };
@@ -3107,6 +3022,18 @@ let
     meta.homepage = "https://github.com/vim-scripts/ShowMultiBase/";
   };
 
+  sideways-vim = buildVimPluginFrom2Nix {
+    pname = "sideways-vim";
+    version = "2020-08-31";
+    src = fetchFromGitHub {
+      owner = "AndrewRadev";
+      repo = "sideways.vim";
+      rev = "c81d2cabc1ada11f1531b05669fd07f52c75da22";
+      sha256 = "042safg5i1f7rnfwlf37ic40rg6s5svsjci3cp06lzy3v9r8n2qf";
+    };
+    meta.homepage = "https://github.com/AndrewRadev/sideways.vim/";
+  };
+
   SimpylFold = buildVimPluginFrom2Nix {
     pname = "SimpylFold";
     version = "2017-06-13";
@@ -3119,6 +3046,18 @@ let
     meta.homepage = "https://github.com/tmhedberg/SimpylFold/";
   };
 
+  skim-vim = buildVimPluginFrom2Nix {
+    pname = "skim-vim";
+    version = "2019-07-31";
+    src = fetchFromGitHub {
+      owner = "lotabout";
+      repo = "skim.vim";
+      rev = "4e9d9a3deb2060e2e79fede1c213f13ac7866eb5";
+      sha256 = "0vpfn2zivk8cf2l841jbd78zl1vzdw1wjf9p0dm6pgr84kj9pkx4";
+    };
+    meta.homepage = "https://github.com/lotabout/skim.vim/";
+  };
+
   sky-color-clock-vim = buildVimPluginFrom2Nix {
     pname = "sky-color-clock-vim";
     version = "2018-11-03";
@@ -3229,12 +3168,12 @@ let
 
   splitjoin-vim = buildVimPluginFrom2Nix {
     pname = "splitjoin-vim";
-    version = "2020-06-20";
+    version = "2020-07-21";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "splitjoin.vim";
-      rev = "20e41455e1155f5989ecac007fc92c9415244822";
-      sha256 = "1jzqz0pi9zaf2ivdvb2prv5k86003dswpv2n3vh5vkmwgl1r3ml4";
+      rev = "46efa9796716fe645d43f6018de3e06296978c7b";
+      sha256 = "126a9v4j217g1kflfabqx0bz02k0xkwqfagzhk51n7drh2r2m7k6";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/AndrewRadev/splitjoin.vim/";
@@ -3290,12 +3229,12 @@ let
 
   syntastic = buildVimPluginFrom2Nix {
     pname = "syntastic";
-    version = "2020-04-19";
+    version = "2020-08-24";
     src = fetchFromGitHub {
       owner = "vim-syntastic";
       repo = "syntastic";
-      rev = "b3e2d8470fddc7f2b598f09023ebc5045a3fb1fd";
-      sha256 = "1ljsh0npbcv9g6l23z4jpba0bk1k5n13ix0p0rr22cipgzlxsbvh";
+      rev = "9041bc76b4084dda00933744c0dce4bdf43d15c7";
+      sha256 = "076z5cs7gjl4hl92fzplabl0wq87hxzsgvmdna6vrzkh7ki2m3cb";
     };
     meta.homepage = "https://github.com/vim-syntastic/syntastic/";
   };
@@ -3338,12 +3277,12 @@ let
 
   tagbar = buildVimPluginFrom2Nix {
     pname = "tagbar";
-    version = "2020-06-11";
+    version = "2020-09-01";
     src = fetchFromGitHub {
       owner = "majutsushi";
       repo = "tagbar";
-      rev = "56399f446c64d187c106e112afa4d97985508eba";
-      sha256 = "1bmfv09lxwq9b8hp4v2avmd979178lm60xxf5g0qiifrr4ym2gqk";
+      rev = "e1c2c98922ef922070e055a4a55f5b17659a69d8";
+      sha256 = "1dirz26hf66g4hichfni95mga1mwk1dmq2jyrlj9f3ph428ps61a";
     };
     meta.homepage = "https://github.com/majutsushi/tagbar/";
   };
@@ -3374,24 +3313,24 @@ let
 
   tcomment_vim = buildVimPluginFrom2Nix {
     pname = "tcomment_vim";
-    version = "2020-06-18";
+    version = "2020-08-23";
     src = fetchFromGitHub {
       owner = "tomtom";
       repo = "tcomment_vim";
-      rev = "920d465b56bcf96c976fa22e9558d51aa55dcd9c";
-      sha256 = "0n7gwdyzim4f92mxnjz4zwfiyapyjhbf21b1l3dq9b07x9m40365";
+      rev = "25bdb50a6c5934d4ac9313cef0d7d2168d84803b";
+      sha256 = "04dmdydrc4v055qkjn5gfvibyzd30fg00abnk8ijvabfcmhvlh40";
     };
     meta.homepage = "https://github.com/tomtom/tcomment_vim/";
   };
 
   tender-vim = buildVimPluginFrom2Nix {
     pname = "tender-vim";
-    version = "2020-04-24";
+    version = "2020-06-29";
     src = fetchFromGitHub {
       owner = "jacoborus";
       repo = "tender.vim";
-      rev = "44d04bc9ecb0188e7b1a3e6b6715b9a63dc8f3e1";
-      sha256 = "059my5q6gqjdkaf7qn842h92c6y7lp5z8wpwsi2ww6anzy85506z";
+      rev = "25924cb8b29a5158e56fb896a2540c70691c7a28";
+      sha256 = "0mm5h5jhb6y0f1zsfhq0frvdm6s93skshi66rfrpn82l93zigw4c";
     };
     meta.homepage = "https://github.com/jacoborus/tender.vim/";
   };
@@ -3422,12 +3361,12 @@ let
 
   thumbnail-vim = buildVimPluginFrom2Nix {
     pname = "thumbnail-vim";
-    version = "2020-05-07";
+    version = "2020-08-15";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "thumbnail.vim";
-      rev = "c238441923d4eefd0c1436686b35e8fa9e643a3e";
-      sha256 = "101w0pvfcnms07w4l6yjhn4b4hb3rvwm827qb2z4rb14fydakias";
+      rev = "161ff743cb031eff376780108b018735d92160b0";
+      sha256 = "105a1a9kahfdicw1gkdhc88w41pyhmhv6yw2kh1flkaikzqlxbc8";
     };
     meta.homepage = "https://github.com/itchyny/thumbnail.vim/";
   };
@@ -3471,12 +3410,12 @@ let
 
   traces-vim = buildVimPluginFrom2Nix {
     pname = "traces-vim";
-    version = "2020-06-21";
+    version = "2020-08-19";
     src = fetchFromGitHub {
       owner = "markonm";
       repo = "traces.vim";
-      rev = "a1eea2431e19e441555442ce41738524042b2493";
-      sha256 = "1k8sw8yr9ak4dggd51ishvnljsq3iycrnpfikhzn9h8qgclx2lfl";
+      rev = "b38bdda4378b17888f5132787c49d79722c25752";
+      sha256 = "0q29h348pgqxqw1pqq1nsj0nxccnb2x6jd92bpsqnjf452wsh2f2";
     };
     meta.homepage = "https://github.com/markonm/traces.vim/";
   };
@@ -3543,24 +3482,24 @@ let
 
   unicode-vim = buildVimPluginFrom2Nix {
     pname = "unicode-vim";
-    version = "2020-06-09";
+    version = "2020-08-10";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "unicode.vim";
-      rev = "76e95c6f8c863f5079cd103b18990684bb02d525";
-      sha256 = "0v3w117bimd74r9i209hgqy75x83hdd3za26l8g729w56kqgq5r8";
+      rev = "e9b21134f4e8bc8cd09fa6145749511ac8800f98";
+      sha256 = "0rfkd11arkmc2z2m9lz5hnqxfcp2b98hmzgf424s44xyhrn98y16";
     };
     meta.homepage = "https://github.com/chrisbra/unicode.vim/";
   };
 
   unite-vim = buildVimPluginFrom2Nix {
     pname = "unite-vim";
-    version = "2019-08-27";
+    version = "2020-06-28";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "unite.vim";
-      rev = "5addeca429f64130d74d2f7cb8255afdb9e309d2";
-      sha256 = "03bqljjc1h43qimm81mv8ywkx5388kd6clm2f7887diiww0fgvfi";
+      rev = "787c777ff2fedd46fc10e315bdfea339fe016d33";
+      sha256 = "1bm48d3n07i2hy7bqz6pzyl3zb5mikhplmk5fk5x09q2i47l6bqg";
     };
     meta.homepage = "https://github.com/Shougo/unite.vim/";
   };
@@ -3613,18 +3552,6 @@ let
     meta.homepage = "https://github.com/vhda/verilog_systemverilog.vim/";
   };
 
-  vim = buildVimPluginFrom2Nix {
-    pname = "vim";
-    version = "2020-05-19";
-    src = fetchFromGitHub {
-      owner = "dracula";
-      repo = "vim";
-      rev = "494dbe9d4effff140ffe6743b614d900a0f34dd7";
-      sha256 = "0d85kgxb52xw6120q6zrksr10nj54s8qi0fl6gqw6nc08ldaq0b1";
-    };
-    meta.homepage = "https://github.com/dracula/vim/";
-  };
-
   vim-abolish = buildVimPluginFrom2Nix {
     pname = "vim-abolish";
     version = "2019-11-13";
@@ -3865,26 +3792,38 @@ let
     meta.homepage = "https://github.com/MarcWeber/vim-addon-xdebug/";
   };
 
+  vim-after-object = buildVimPluginFrom2Nix {
+    pname = "vim-after-object";
+    version = "2018-09-17";
+    src = fetchFromGitHub {
+      owner = "junegunn";
+      repo = "vim-after-object";
+      rev = "7f52106df8a05e9bc1c53960c31a55f77e303903";
+      sha256 = "13726m0c73n5pw9gil4ahbg71ibklrwkw9yvbr6qxxvn6qyijpdy";
+    };
+    meta.homepage = "https://github.com/junegunn/vim-after-object/";
+  };
+
   vim-airline = buildVimPluginFrom2Nix {
     pname = "vim-airline";
-    version = "2020-06-19";
+    version = "2020-08-27";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "5ce3e636580dde6653a74535bb7b358725d1e37c";
-      sha256 = "02a5nhhyi7k4645jmmgjdj28l46knv7l6219lkgixrbgdq5gc43h";
+      rev = "c77d89046e5dc66438190e2261fb2197df2a8932";
+      sha256 = "009n427sgjmc12rvamda70marjaqpzi9zlddk5d1yim61qvh7djh";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline/";
   };
 
   vim-airline-themes = buildVimPluginFrom2Nix {
     pname = "vim-airline-themes";
-    version = "2020-04-01";
+    version = "2020-08-27";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline-themes";
-      rev = "3fb676b8729a98817f561ef1554c0ad1a514c96a";
-      sha256 = "18bfw09ywmw10jiv37iw2ijf46jhj2yw5wndqdgn7k42gy1wk7p6";
+      rev = "155bce6665ab8c83447102e8402cc9d3b7c3b3f3";
+      sha256 = "1qavi386va4wnalaf03b19lfxypbkjcjdiiasbdzfnlqpz7d4rwy";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline-themes/";
   };
@@ -3939,12 +3878,12 @@ let
 
   vim-autoformat = buildVimPluginFrom2Nix {
     pname = "vim-autoformat";
-    version = "2020-05-29";
+    version = "2020-07-29";
     src = fetchFromGitHub {
       owner = "Chiel92";
       repo = "vim-autoformat";
-      rev = "f116a3b86cb3e9fbcd8563cce4958759610d8f51";
-      sha256 = "1vamldn3y9pima18ryrrzn2mz1czzzadkiiklcrcl104v9mhv4am";
+      rev = "273ccae26d6b5ab10bb48479c0ff5971018e3c5a";
+      sha256 = "07fldl6fsi3ns2zx4va69g01gb5mdsva8qpyjmryhn08l2qz0c40";
     };
     meta.homepage = "https://github.com/Chiel92/vim-autoformat/";
   };
@@ -3963,24 +3902,24 @@ let
 
   vim-bazel = buildVimPluginFrom2Nix {
     pname = "vim-bazel";
-    version = "2019-08-14";
+    version = "2020-08-22";
     src = fetchFromGitHub {
       owner = "bazelbuild";
       repo = "vim-bazel";
-      rev = "7c4987b4266d117a9f1d4c7fe7f4dfba33dfc8c8";
-      sha256 = "182w8ibr34z86nmx6byabkah0q9fgrzml8m2ardaqzqjqr2ya5yg";
+      rev = "85a044d854e5e48f72414726c255112be31e2cac";
+      sha256 = "1hcfbl958v39w00kyfg75rcxs9xzaqnd98i4y322ayqfgrhd95n8";
     };
     meta.homepage = "https://github.com/bazelbuild/vim-bazel/";
   };
 
   vim-beancount = buildVimPluginFrom2Nix {
     pname = "vim-beancount";
-    version = "2020-05-14";
+    version = "2020-08-06";
     src = fetchFromGitHub {
       owner = "nathangrigg";
       repo = "vim-beancount";
-      rev = "53ab32f82723d685648b691af3d8a64a2a119d43";
-      sha256 = "1vvfr1wz2770h4rh48qnaqbbdbfxj6pcyhyfh0vf641l46v6wzf8";
+      rev = "6d762beaa526d4e56280619aa62b1013b50457b7";
+      sha256 = "0r4ziynmil432k1xjglqjx0bh5069aav3k9r58ksqg716w4zvzys";
     };
     meta.homepage = "https://github.com/nathangrigg/vim-beancount/";
   };
@@ -3997,6 +3936,18 @@ let
     meta.homepage = "https://github.com/ntpeters/vim-better-whitespace/";
   };
 
+  vim-bsv = buildVimPluginFrom2Nix {
+    pname = "vim-bsv";
+    version = "2019-07-11";
+    src = fetchFromGitHub {
+      owner = "mtikekar";
+      repo = "vim-bsv";
+      rev = "dc775cb06891dd0923b5e2a882f5dcee6451540a";
+      sha256 = "18wsbvypi62nwgcazw2m47d6k8ymlv1zwabs2gwl931n710ldkfc";
+    };
+    meta.homepage = "https://github.com/mtikekar/vim-bsv/";
+  };
+
   vim-buffergator = buildVimPluginFrom2Nix {
     pname = "vim-buffergator";
     version = "2018-05-02";
@@ -4021,30 +3972,30 @@ let
     meta.homepage = "https://github.com/bling/vim-bufferline/";
   };
 
-  vim-bsv = buildVimPluginFrom2Nix {
-    pname = "vim-bsv";
-    version = "2019-07-11";
-    src = fetchFromGitHub {
-      owner = "mtikekar";
-      repo = "vim-bsv";
-      rev = "dc775cb06891dd0923b5e2a882f5dcee6451540a";
-      sha256 = "18wsbvypi62nwgcazw2m47d6k8ymlv1zwabs2gwl931n710ldkfc";
-    };
-    meta.homepage = "https://github.com/mtikekar/vim-bsv/";
-  };
-
   vim-bufkill = buildVimPluginFrom2Nix {
     pname = "vim-bufkill";
-    version = "2020-04-29";
+    version = "2020-08-04";
     src = fetchFromGitHub {
       owner = "qpkorr";
       repo = "vim-bufkill";
-      rev = "1bcdcb4a03a6ac1de06bc84b7f94ca08f4485f42";
-      sha256 = "0j3r63j2vs0lm1vnfzwcwqbahncnqq46wmaf1rp8i9l8skqm20px";
+      rev = "2bd6d7e791668ea52bb26be2639406fcf617271f";
+      sha256 = "1cvma03bg9psil67kg1x90lny7a31ljz5shybcl1jrfpzsybcqvg";
     };
     meta.homepage = "https://github.com/qpkorr/vim-bufkill/";
   };
 
+  vim-carbon-now-sh = buildVimPluginFrom2Nix {
+    pname = "vim-carbon-now-sh";
+    version = "2019-02-14";
+    src = fetchFromGitHub {
+      owner = "kristijanhusak";
+      repo = "vim-carbon-now-sh";
+      rev = "789b15d17966a1100ed2889d670923dd6d9ff063";
+      sha256 = "1vfhdqv8mf8w0s4nv8k2rqzvahvh1lxm4zsd3ks1n334f580w8x4";
+    };
+    meta.homepage = "https://github.com/kristijanhusak/vim-carbon-now-sh/";
+  };
+
   vim-choosewin = buildVimPluginFrom2Nix {
     pname = "vim-choosewin";
     version = "2019-09-17";
@@ -4057,6 +4008,30 @@ let
     meta.homepage = "https://github.com/t9md/vim-choosewin/";
   };
 
+  vim-clang-format = buildVimPluginFrom2Nix {
+    pname = "vim-clang-format";
+    version = "2019-05-15";
+    src = fetchFromGitHub {
+      owner = "rhysd";
+      repo = "vim-clang-format";
+      rev = "95593b67723f23979cd7344ecfd049f2f917830f";
+      sha256 = "0n0k13k63l8n0ixs4zrhlz923apvdp2mldadxqlhmvsvncmlqmpn";
+    };
+    meta.homepage = "https://github.com/rhysd/vim-clang-format/";
+  };
+
+  vim-clap = buildVimPluginFrom2Nix {
+    pname = "vim-clap";
+    version = "2020-09-03";
+    src = fetchFromGitHub {
+      owner = "liuchengxu";
+      repo = "vim-clap";
+      rev = "973ebcf5411eea777450673b0b3f132beb5004d7";
+      sha256 = "1fdlfx5lw1lkw3ikwap8h8sr2f8g43j87r2vl9y4w0rph240rj1v";
+    };
+    meta.homepage = "https://github.com/liuchengxu/vim-clap/";
+  };
+
   vim-clojure-highlight = buildVimPluginFrom2Nix {
     pname = "vim-clojure-highlight";
     version = "2015-07-05";
@@ -4095,12 +4070,12 @@ let
 
   vim-codefmt = buildVimPluginFrom2Nix {
     pname = "vim-codefmt";
-    version = "2020-06-08";
+    version = "2020-07-29";
     src = fetchFromGitHub {
       owner = "google";
       repo = "vim-codefmt";
-      rev = "90335990808167d910671a625f3ee9de9aac1058";
-      sha256 = "1rq0ivynsq35h5kpzpd963bgkbx9lb26wlxrb2l8xha0zzzsmhpz";
+      rev = "a43392a7c4d73b91835e7bd993889646c8a907fd";
+      sha256 = "1b850c36xgydn2ibdxzqprzsi65hz9sfhvcj69zm3rqbh47hqi98";
     };
     meta.homepage = "https://github.com/google/vim-codefmt/";
   };
@@ -4227,24 +4202,24 @@ let
 
   vim-css-color = buildVimPluginFrom2Nix {
     pname = "vim-css-color";
-    version = "2020-04-16";
+    version = "2020-08-16";
     src = fetchFromGitHub {
       owner = "ap";
       repo = "vim-css-color";
-      rev = "741dd18a35e251ededc0687eea9b8d100d3b83b8";
-      sha256 = "1mjwyznprhhfmwi1djyjgxkqv9bwima1ysxa9782rk198j2n87vs";
+      rev = "4694c6ea03a065a3f6ddbebce56797a21e8241ef";
+      sha256 = "12bzxrdvb9s0d8llkq6h63g86qxs0gv9x7401apl6qrs79prrb4a";
     };
     meta.homepage = "https://github.com/ap/vim-css-color/";
   };
 
   vim-cue = buildVimPluginFrom2Nix {
     pname = "vim-cue";
-    version = "2020-05-20";
+    version = "2020-07-20";
     src = fetchFromGitHub {
       owner = "jjo";
       repo = "vim-cue";
-      rev = "9b26fb250d473f949fc90cabe70efff316a90248";
-      sha256 = "0aybj1xxi860cn7wzg13z50f16kdsyhba0z7qwchps4fr24xkjms";
+      rev = "339edaf79ff1287ce6a23baaa421e68463cf1a2e";
+      sha256 = "0jr30plym17fdg90smb7g35yi9iz9b7s4md6cxj83zg4vj2hyjh1";
     };
     meta.homepage = "https://github.com/jjo/vim-cue/";
   };
@@ -4287,24 +4262,24 @@ let
 
   vim-dasht = buildVimPluginFrom2Nix {
     pname = "vim-dasht";
-    version = "2020-05-18";
+    version = "2020-07-11";
     src = fetchFromGitHub {
       owner = "sunaku";
       repo = "vim-dasht";
-      rev = "efee6525f7f61f2b201cbb09c888941c3e5a5e27";
-      sha256 = "186rvr9vw140sin219q6psvh70vlqas9vfnbbg5ms6n7wvhz6a19";
+      rev = "c1c91ecfd30f0e4e946854a6f7c67eb2d1e21c98";
+      sha256 = "0ldkyzsn4b555pb9qdr0k6w6m3w7ziy7v6bcnx0n8ppq4fl68pz2";
     };
     meta.homepage = "https://github.com/sunaku/vim-dasht/";
   };
 
   vim-devicons = buildVimPluginFrom2Nix {
     pname = "vim-devicons";
-    version = "2020-06-17";
+    version = "2020-08-14";
     src = fetchFromGitHub {
       owner = "ryanoasis";
       repo = "vim-devicons";
-      rev = "50eb8e2d88be4e8bbcd8e5ddccbe499b3a1f473d";
-      sha256 = "0hgbi7l4qlblmp28gbzzdw0bpfnw1mghyl7prk4zzf8w4m4vsrpa";
+      rev = "308526367703698554d19f15f692ee3c45a598cb";
+      sha256 = "0b6ng6qgwx4fb9fs7b7m5k3dj7ycq0zw5y0jaqqqn6asp8wmf51b";
     };
     meta.homepage = "https://github.com/ryanoasis/vim-devicons/";
   };
@@ -4335,16 +4310,28 @@ let
 
   vim-dirvish = buildVimPluginFrom2Nix {
     pname = "vim-dirvish";
-    version = "2020-05-01";
+    version = "2020-09-01";
     src = fetchFromGitHub {
       owner = "justinmk";
       repo = "vim-dirvish";
-      rev = "a19760770b810050e748de14ced589dd34c2dcb5";
-      sha256 = "0iz72p992z2bkvz66x7fgyd9hpjq558h009bsjvfr4l6fpbi4ys2";
+      rev = "4bc6add29683230dd79a53b2ae8c770fa548a708";
+      sha256 = "1vz5fbq5aqlqh6sg6flg8lcds50vy8nck21jpppvhxq7acjn5630";
     };
     meta.homepage = "https://github.com/justinmk/vim-dirvish/";
   };
 
+  vim-dirvish-git = buildVimPluginFrom2Nix {
+    pname = "vim-dirvish-git";
+    version = "2020-06-04";
+    src = fetchFromGitHub {
+      owner = "kristijanhusak";
+      repo = "vim-dirvish-git";
+      rev = "8a3a8b88ed0815500c2912658fe0de7583ee1d45";
+      sha256 = "1z8a718kam2r87kimhayxndjbmpgk0mgwrc5v52bid584xml584k";
+    };
+    meta.homepage = "https://github.com/kristijanhusak/vim-dirvish-git/";
+  };
+
   vim-dispatch = buildVimPluginFrom2Nix {
     pname = "vim-dispatch";
     version = "2020-04-19";
@@ -4479,24 +4466,24 @@ let
 
   vim-eunuch = buildVimPluginFrom2Nix {
     pname = "vim-eunuch";
-    version = "2020-01-16";
+    version = "2020-08-07";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-eunuch";
-      rev = "33e875b31c8b811a0a47908884a5e2339106bbe8";
-      sha256 = "1xadb22kd40swmww0qxmmkcpcq6viy8l167pjck5q32hfngll5d3";
+      rev = "4a4bf16b499dcde371c05c77ed4083c4b5228278";
+      sha256 = "1wclxqw3b4jcj34jb830551c9bbrsm79mp7aahbqnjgq025j53x0";
     };
     meta.homepage = "https://github.com/tpope/vim-eunuch/";
   };
 
   vim-exchange = buildVimPluginFrom2Nix {
     pname = "vim-exchange";
-    version = "2017-01-27";
+    version = "2020-06-24";
     src = fetchFromGitHub {
       owner = "tommcdo";
       repo = "vim-exchange";
-      rev = "05d82b87711c6c8b9b7389bfb91c24bc4f62aa87";
-      sha256 = "09fa156y8pxpzdbngifa7yzg1vjg1fjsgp1h9inj818zbig8mamb";
+      rev = "0e95600517aad244d947b955a2e34ec30bdd09ff";
+      sha256 = "1dh8xc5szm5rrv7xp299hcfhgp1155k5kfipzz6q2r69blhwyl1d";
     };
     meta.homepage = "https://github.com/tommcdo/vim-exchange/";
   };
@@ -4539,12 +4526,12 @@ let
 
   vim-fireplace = buildVimPluginFrom2Nix {
     pname = "vim-fireplace";
-    version = "2020-06-08";
+    version = "2020-08-28";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fireplace";
-      rev = "15fcf3db308ce34a12c1e41a88178c7cccea0d96";
-      sha256 = "148qjhln1v4cv15idsn36n82g0g7bjq2vhf0il9a6djwycf374kb";
+      rev = "9e62520397f6e98c6031aba4cb63e611abe4583b";
+      sha256 = "144qiari81xwaxw9rd5mh4g1ywn2r141438r3km6dh3acx18f6ij";
     };
     meta.homepage = "https://github.com/tpope/vim-fireplace/";
   };
@@ -4597,14 +4584,26 @@ let
     meta.homepage = "https://github.com/dcharbon/vim-flatbuffers/";
   };
 
+  vim-floaterm = buildVimPluginFrom2Nix {
+    pname = "vim-floaterm";
+    version = "2020-09-02";
+    src = fetchFromGitHub {
+      owner = "voldikss";
+      repo = "vim-floaterm";
+      rev = "95eb7818f70339a29b7d655fc834ba12ccc2922c";
+      sha256 = "18yv4y3p8hlyrhadd2nc464cb9hql89mrpvvcdh4sxqn4qn8pmmk";
+    };
+    meta.homepage = "https://github.com/voldikss/vim-floaterm/";
+  };
+
   vim-flutter = buildVimPluginFrom2Nix {
     pname = "vim-flutter";
-    version = "2019-09-29";
+    version = "2020-09-03";
     src = fetchFromGitHub {
       owner = "thosakwe";
       repo = "vim-flutter";
-      rev = "030a4e609f8f38922fa4ec9a27836d9dabaae957";
-      sha256 = "0jibmr0v0pqml1cprs3qmkhhmacpb2bwpk8lhaz4dzp8jlga9g00";
+      rev = "a5ad99680b4c40cfa7477684e50d6c5b36d17601";
+      sha256 = "1zf12nh2sdrh6by3mb2zzhy8dd9xlmj3fa9jykzqa1gvqgp8lg5m";
     };
     meta.homepage = "https://github.com/thosakwe/vim-flutter/";
   };
@@ -4635,12 +4634,12 @@ let
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2020-05-31";
+    version = "2020-08-26";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "27a5c3abd211c2784513dab4db082fa414ad0967";
-      sha256 = "18rvp600vk0anbzxdgcw3kdswqr3100b3jgnmz6c2k5c50wz37rm";
+      rev = "511d3035d4da2453a9cb0188b6020ed7bc8fc18f";
+      sha256 = "003k746mqasd64yca0ay4lzbif7jx0p6ivs2g2f3mlnvpwiiim23";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -4695,12 +4694,12 @@ let
 
   vim-gitgutter = buildVimPluginFrom2Nix {
     pname = "vim-gitgutter";
-    version = "2020-06-20";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-gitgutter";
-      rev = "d82f2721424762f14587240e09cfb0dc499779da";
-      sha256 = "1ynl6jdnij2hi0gmpgq2b01r5g2db5582jzsqbz079ydb2kbp1jp";
+      rev = "098b9c82e9ac39b0d203635a8041bb1aceb8426c";
+      sha256 = "1d0shs6q509zwfpp0dqffhh5fm8fr8x6km6w8mf4m9p1fkxyaz1g";
     };
     meta.homepage = "https://github.com/airblade/vim-gitgutter/";
   };
@@ -4731,12 +4730,12 @@ let
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2020-06-19";
+    version = "2020-08-30";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "4ebfb5967fa2aa3269edb3962b347a7e5e213a1b";
-      sha256 = "1x8bg9c5yrfydaqkprf0cvl1jl0lncl0y1zrw1y5gvbq0cgdplqp";
+      rev = "bf2dd524a7d7a2c6f50642ec3dae2bc1506b5c94";
+      sha256 = "0d1gnszjppp4p1b39jxa19fdg77iq6baxm5hbjiinidmhgbal35w";
     };
     meta.homepage = "https://github.com/fatih/vim-go/";
   };
@@ -4755,24 +4754,24 @@ let
 
   vim-graphql = buildVimPluginFrom2Nix {
     pname = "vim-graphql";
-    version = "2020-03-30";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "jparise";
       repo = "vim-graphql";
-      rev = "a3ff39f955e60baeddd8c3c4d1cab291ce37d66e";
-      sha256 = "0d98b0zpbyjcafp0q25c3qsx13q74nszxsi5jxxjnpz1wv6s83x1";
+      rev = "e64fba4ee17fa8dd391405982500c72d68fc50b9";
+      sha256 = "1pf0lpjy88hwmxn3lybjkq10w6s666wmpbzsfkjbp8xmqhzlvaf6";
     };
     meta.homepage = "https://github.com/jparise/vim-graphql/";
   };
 
   vim-grepper = buildVimPluginFrom2Nix {
     pname = "vim-grepper";
-    version = "2019-12-09";
+    version = "2020-07-12";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-grepper";
-      rev = "dde6a660c7dd4e02b331da238ea477770073aca2";
-      sha256 = "0c411yg2s6wb8141lqpgasg7iwgvfwy88z6l0c0gccmk8knypxhm";
+      rev = "e9004ce564891412cfe433cfbb97295cccd06b39";
+      sha256 = "1cs72x3wv4i11x7ch3gna1sxqn5zj3bd34smchfd00g4mf201lhs";
     };
     meta.homepage = "https://github.com/mhinz/vim-grepper/";
   };
@@ -4911,12 +4910,12 @@ let
 
   vim-html-template-literals = buildVimPluginFrom2Nix {
     pname = "vim-html-template-literals";
-    version = "2020-05-17";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "jonsmithers";
       repo = "vim-html-template-literals";
-      rev = "0959db06cd74408935a589fb59ec63af91a1557b";
-      sha256 = "0vq0y9adx2023p0nqv020921r474216msrkm0lkb5v776xm4mks2";
+      rev = "602dba70bdcfc2e280e0c0503e74a8a92519db49";
+      sha256 = "0x0sbmcig3r058sg78bfj8dv0lwlgdcwvw9kxviynyhk2qkg9zl9";
     };
     meta.homepage = "https://github.com/jonsmithers/vim-html-template-literals/";
   };
@@ -4971,12 +4970,12 @@ let
 
   vim-illuminate = buildVimPluginFrom2Nix {
     pname = "vim-illuminate";
-    version = "2020-06-09";
+    version = "2020-08-25";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-illuminate";
-      rev = "0778289e391c419f7a3af9de8229f798ee292013";
-      sha256 = "1l5s5f4fw96w437rdf85lym7g75hnz8sb2fdj9hygyg0sp42r0cf";
+      rev = "56e7df8f402a8302fa7f6cb21760d366a105d94c";
+      sha256 = "0j4986pdh06q5d0bq4k6lq0b6bgi1fazng106ykhg3aaxjqqhs37";
     };
     meta.homepage = "https://github.com/RRethy/vim-illuminate/";
   };
@@ -5043,12 +5042,12 @@ let
 
   vim-isort = buildVimPluginFrom2Nix {
     pname = "vim-isort";
-    version = "2019-06-08";
+    version = "2020-08-14";
     src = fetchFromGitHub {
       owner = "fisadev";
       repo = "vim-isort";
-      rev = "b749d009075a333634dc61a039a2dc0e7f34609c";
-      sha256 = "1h8s21kwbjdg632jvd46r2va7il4f1dbgwfw8fkds0n08rbnpdjw";
+      rev = "94b1f1202899aa0b6e2cc20e6d1f133eafe24331";
+      sha256 = "16r2nsdapf3r0zjqwwbl0k8g2p81h9zs14b91dhskyvs0hvf7cfy";
     };
     meta.homepage = "https://github.com/fisadev/vim-isort/";
   };
@@ -5067,12 +5066,12 @@ let
 
   vim-javacomplete2 = buildVimPluginFrom2Nix {
     pname = "vim-javacomplete2";
-    version = "2020-04-23";
+    version = "2020-07-29";
     src = fetchFromGitHub {
       owner = "artur-shaik";
       repo = "vim-javacomplete2";
-      rev = "3ebc63c4b79eec08eb81bdddc8f4c7cfe9cb702f";
-      sha256 = "0dwgqnjcnnyvmrplbxkzmfyrm0rgd4z5kgx5989c528gp0dwhaja";
+      rev = "80cf31797a85012b7408701073d743a45a3fbf36";
+      sha256 = "19ci5n8rkf4wf4ivqj2mjig4m6phvy14k0zplkbafccaadnc0k21";
     };
     meta.homepage = "https://github.com/artur-shaik/vim-javacomplete2/";
   };
@@ -5128,12 +5127,12 @@ let
 
   vim-jsdoc = buildVimPluginFrom2Nix {
     pname = "vim-jsdoc";
-    version = "2020-06-20";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "heavenshell";
       repo = "vim-jsdoc";
-      rev = "ca3c880f77b4cec6b14d9436b07f4152bebc2712";
-      sha256 = "04sq7wips3rybmaqwpxmf7920nv4nrm82lvbr5s9jdn0594lkg9c";
+      rev = "5bbe872ee41e50bd5b99bf6204d6147dab39cdc5";
+      sha256 = "0jmmkqzan5mkc0j05243f5layqj7fny92rl1vlj32ipv8wgdmczn";
     };
     meta.homepage = "https://github.com/heavenshell/vim-jsdoc/";
   };
@@ -5164,24 +5163,24 @@ let
 
   vim-jsx-pretty = buildVimPluginFrom2Nix {
     pname = "vim-jsx-pretty";
-    version = "2020-04-11";
+    version = "2020-06-22";
     src = fetchFromGitHub {
       owner = "MaxMEllon";
       repo = "vim-jsx-pretty";
-      rev = "496c44d89281d1e13c9bb4c75a2e69daba48b47b";
-      sha256 = "09xr8pbx27qpffcr0j1857cpyxgkv5xay6mgpzvynpxq21xrmm3q";
+      rev = "c665d5ca4247b696f478f91b7c97b9e44442e4b6";
+      sha256 = "1p1461rh3yp0ldg4x1cb2nj9xng6scdlrkzj1q8ykspi98qnz0mm";
     };
     meta.homepage = "https://github.com/MaxMEllon/vim-jsx-pretty/";
   };
 
   vim-jsx-typescript = buildVimPluginFrom2Nix {
     pname = "vim-jsx-typescript";
-    version = "2020-04-29";
+    version = "2020-07-08";
     src = fetchFromGitHub {
       owner = "peitalin";
       repo = "vim-jsx-typescript";
-      rev = "7b47d06819b5778de78cfbb28c225c3ab276f700";
-      sha256 = "0pm40psql6mzrzy750vm6jk71pp467hz9231izicp0554mq6qmsn";
+      rev = "07370d48c605ec027543b52762930165b1b27779";
+      sha256 = "190nyy7kr6i3xr6nrjlfv643s1c48kxlbh8ynk8p53yf32gcxwz7";
     };
     meta.homepage = "https://github.com/peitalin/vim-jsx-typescript/";
   };
@@ -5212,12 +5211,12 @@ let
 
   vim-latex-live-preview = buildVimPluginFrom2Nix {
     pname = "vim-latex-live-preview";
-    version = "2018-09-25";
+    version = "2020-06-25";
     src = fetchFromGitHub {
       owner = "xuhdev";
       repo = "vim-latex-live-preview";
-      rev = "855c30915547c7e9c19b7e6efb528730c071d2e8";
-      sha256 = "14fgbq7wyyhhzkd8832g07z97jg1b9awibzf3sn33ih7p5bb3hhp";
+      rev = "32d1a911641e08c11b3f82ba886540cbae0b7513";
+      sha256 = "0hnjc1jpjr6fdy9b5j85didi97f6w8p8ad5cn6b0fnxxlkykymjg";
     };
     meta.homepage = "https://github.com/xuhdev/vim-latex-live-preview/";
   };
@@ -5272,36 +5271,36 @@ let
 
   vim-lion = buildVimPluginFrom2Nix {
     pname = "vim-lion";
-    version = "2018-02-05";
+    version = "2020-07-18";
     src = fetchFromGitHub {
       owner = "tommcdo";
       repo = "vim-lion";
-      rev = "75306ac1922952ca1a401aee43ddbb304029926d";
-      sha256 = "0kkf91ppn5jhvnpmmjsp6rvf97pqj57jrbn3qmmy925ncfqh90ld";
+      rev = "ce46593ecd60e6051fb6e4d3986d2fc9f5a618b1";
+      sha256 = "1ci9yi55wcg6388fv3dqhjsyp3nvmf9dz7q2nqsxpyd6yj1szrh7";
     };
     meta.homepage = "https://github.com/tommcdo/vim-lion/";
   };
 
   vim-liquid = buildVimPluginFrom2Nix {
     pname = "vim-liquid";
-    version = "2019-11-13";
+    version = "2020-07-01";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-liquid";
-      rev = "9ebc192daec70e620c22d574b5a1c1e16f89a48c";
-      sha256 = "0cvcjiii5wv55n695284k520rrwi0l4gqpyiqnrpnhmsaqks0n0f";
+      rev = "94bd2ea1fd45cf0a21edc3433231e7fcb7791323";
+      sha256 = "0r8lisyhbzyw2w9xzbashlhnag98vws78xwmh03dpd8kbpcdiz0w";
     };
     meta.homepage = "https://github.com/tpope/vim-liquid/";
   };
 
   vim-localvimrc = buildVimPluginFrom2Nix {
     pname = "vim-localvimrc";
-    version = "2020-05-20";
+    version = "2020-06-30";
     src = fetchFromGitHub {
       owner = "embear";
       repo = "vim-localvimrc";
-      rev = "7f9d254a0c46889454cc2fd2d5918b413e4cb85a";
-      sha256 = "0428hbcj4w9lwmsv9jribkp5fjcbw3sg0gs81jf9n5ax0mxgnbzy";
+      rev = "ac6444afb5fd11e3f7750f696a0c6b8b0b6ec116";
+      sha256 = "182fvmfnpcqda0cm878lk79iprxsd7nb9r97jmr7lx5agdcvzaqb";
     };
     meta.homepage = "https://github.com/embear/vim-localvimrc/";
   };
@@ -5320,24 +5319,36 @@ let
 
   vim-lsc = buildVimPluginFrom2Nix {
     pname = "vim-lsc";
-    version = "2020-06-15";
+    version = "2020-08-29";
     src = fetchFromGitHub {
       owner = "natebosch";
       repo = "vim-lsc";
-      rev = "632cd869663ecccd5a309c5dbfc20e1fc881d4b7";
-      sha256 = "0w04fjci16l08c76fgqxv176jarm9iiv3rx46l8a45spkyb10lm0";
+      rev = "ab952d62a3c57d176e6c63b3f3c95b8ba37b0630";
+      sha256 = "07caiz9k3bx5qn5kg5hbh2a2d77bfvyfg9rx7s7zkavpz312r4kc";
     };
     meta.homepage = "https://github.com/natebosch/vim-lsc/";
   };
 
+  vim-lsp = buildVimPluginFrom2Nix {
+    pname = "vim-lsp";
+    version = "2020-09-01";
+    src = fetchFromGitHub {
+      owner = "prabirshrestha";
+      repo = "vim-lsp";
+      rev = "a8dd16f59a1f56ee40d0d403a722b6d556fa04e9";
+      sha256 = "1m08v4b0l88ly5jhklr4hx642gdypz315x9yhsni9bnxi9dhhkaa";
+    };
+    meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
+  };
+
   vim-maktaba = buildVimPluginFrom2Nix {
     pname = "vim-maktaba";
-    version = "2020-06-13";
+    version = "2020-08-06";
     src = fetchFromGitHub {
       owner = "google";
       repo = "vim-maktaba";
-      rev = "5c49c44be62e595d3d1d81a15259cd1bfc722825";
-      sha256 = "0nr7hbwpwzzzxinpjfdlaia3ys6vrw10i3wbjhr41iga6gkg6w2v";
+      rev = "f60443777137a0f91e489b1757c6602c63fb3731";
+      sha256 = "1r6raxhwg78azcqv7brvas3w4xr7aja1gmcapm7j6mv69izf1fzw";
     };
     meta.homepage = "https://github.com/google/vim-maktaba/";
   };
@@ -5354,18 +5365,42 @@ let
     meta.homepage = "https://github.com/lambdalisue/vim-manpager/";
   };
 
+  vim-markbar = buildVimPluginFrom2Nix {
+    pname = "vim-markbar";
+    version = "2020-08-31";
+    src = fetchFromGitHub {
+      owner = "Yilin-Yang";
+      repo = "vim-markbar";
+      rev = "df13c3abe88c01a716b1099de953dcfa1679e663";
+      sha256 = "1y5w182d57z1nl8c7ng25m88by88pnxqdsxmcnnygdfjmvbv8jl9";
+    };
+    meta.homepage = "https://github.com/Yilin-Yang/vim-markbar/";
+  };
+
   vim-markdown = buildVimPluginFrom2Nix {
     pname = "vim-markdown";
-    version = "2020-06-21";
+    version = "2020-07-14";
     src = fetchFromGitHub {
       owner = "plasticboy";
       repo = "vim-markdown";
-      rev = "139b6f666cd00e2c3180454fb794fd6cee788f0f";
-      sha256 = "1yk185l6g5ga2wlbxf0mcwc0dsc6c1nmz1ynl0hfnrbpfnn4sw1p";
+      rev = "8e5d86f7b85234d3d1b4207dceebc43a768ed5d4";
+      sha256 = "013vh2rnfifm5j56imar03rvchz68ll4lbgy9y8fbw7s9a0k6yaa";
     };
     meta.homepage = "https://github.com/plasticboy/vim-markdown/";
   };
 
+  vim-matchup = buildVimPluginFrom2Nix {
+    pname = "vim-matchup";
+    version = "2020-08-16";
+    src = fetchFromGitHub {
+      owner = "andymass";
+      repo = "vim-matchup";
+      rev = "b1af5a28242ae58ece98d833a2bf28e030d57230";
+      sha256 = "1nnn0cxvpgmgi8xpqmhxr3vi42s3g1d0rn683hyizdn4i0l888k3";
+    };
+    meta.homepage = "https://github.com/andymass/vim-matchup/";
+  };
+
   vim-mergetool = buildVimPluginFrom2Nix {
     pname = "vim-mergetool";
     version = "2019-06-22";
@@ -5378,6 +5413,18 @@ let
     meta.homepage = "https://github.com/samoshkin/vim-mergetool/";
   };
 
+  vim-merginal = buildVimPluginFrom2Nix {
+    pname = "vim-merginal";
+    version = "2020-01-29";
+    src = fetchFromGitHub {
+      owner = "idanarye";
+      repo = "vim-merginal";
+      rev = "02ac69b0468b7aec437df48df07f939558e85c9a";
+      sha256 = "0m5lym56xzp1gnwb79vjmigfi6ar0iqbzaydv2r8c47jj7xyxiz6";
+    };
+    meta.homepage = "https://github.com/idanarye/vim-merginal/";
+  };
+
   vim-metamath = buildVimPluginFrom2Nix {
     pname = "vim-metamath";
     version = "2017-02-10";
@@ -5402,6 +5449,18 @@ let
     meta.homepage = "https://github.com/xolox/vim-misc/";
   };
 
+  vim-monokai = buildVimPluginFrom2Nix {
+    pname = "vim-monokai";
+    version = "2020-09-02";
+    src = fetchFromGitHub {
+      owner = "crusoexia";
+      repo = "vim-monokai";
+      rev = "77231afb915b32e1530f48e96a64db5cd0948487";
+      sha256 = "1hb8kqn70vi17mf2wiliqrkyp1n9zc53020kaw961vqvnk5mqsvg";
+    };
+    meta.homepage = "https://github.com/crusoexia/vim-monokai/";
+  };
+
   vim-monokai-pro = buildVimPluginFrom2Nix {
     pname = "vim-monokai-pro";
     version = "2020-05-07";
@@ -5416,12 +5475,12 @@ let
 
   vim-move = buildVimPluginFrom2Nix {
     pname = "vim-move";
-    version = "2019-11-23";
+    version = "2020-07-29";
     src = fetchFromGitHub {
       owner = "matze";
       repo = "vim-move";
-      rev = "58049562efb0e6e077416d897b760c4dc9bb25c4";
-      sha256 = "18pnk6ri73a6dq86zh510wy1s0z1dwnsyay7lxrgirjgh3s9nhhq";
+      rev = "1460aa915c521864c926aa51fe20bf6bb8eaa065";
+      sha256 = "0sbdd1z8nlwpac1n4234pnczavxr1kazvj86xp4a8aa7vggdm9xa";
     };
     meta.homepage = "https://github.com/matze/vim-move/";
   };
@@ -5440,24 +5499,24 @@ let
 
   vim-multiple-cursors = buildVimPluginFrom2Nix {
     pname = "vim-multiple-cursors";
-    version = "2020-05-19";
+    version = "2020-07-30";
     src = fetchFromGitHub {
       owner = "terryma";
       repo = "vim-multiple-cursors";
-      rev = "ec93676024590327263e8138443614ec4da8c9bc";
-      sha256 = "09rcs435nh74p5dwdw8k1mv1w2lni4y098dg99j6dh6859lc3hw8";
+      rev = "6456718e1d30b42c04b920c5413ca44f68f08759";
+      sha256 = "0dmap8hjk6a0127fkab1pp5cllmijhqx80ijasngg11kxl0wzl32";
     };
     meta.homepage = "https://github.com/terryma/vim-multiple-cursors/";
   };
 
   vim-mundo = buildVimPluginFrom2Nix {
     pname = "vim-mundo";
-    version = "2020-05-06";
+    version = "2020-07-20";
     src = fetchFromGitHub {
       owner = "simnalamburt";
       repo = "vim-mundo";
-      rev = "046fc0664b953ab17153da379df0b9fd34b85ec1";
-      sha256 = "0np83qa95cfg1059r4iaf31sfhs86241jzkmw026gdja9s30q3m1";
+      rev = "f6b24082b1d22932cb834673c37aa936b6f4f6da";
+      sha256 = "1xr7g5wxfdd2rzdr94p2sasfm6zyha2rhjr3rx5mnpbcik7l3j61";
     };
     meta.homepage = "https://github.com/simnalamburt/vim-mundo/";
   };
@@ -5476,12 +5535,12 @@ let
 
   vim-nftables = buildVimPluginFrom2Nix {
     pname = "vim-nftables";
-    version = "2020-02-21";
+    version = "2020-06-29";
     src = fetchFromGitHub {
       owner = "nfnty";
       repo = "vim-nftables";
-      rev = "01c7b97eff12fd4b624e6efa2c0468163db61ebc";
-      sha256 = "1n3mpaa60k4w0sqpkgw19aksa1sbcqz7vl8fp6bj6i63bhiprsqf";
+      rev = "26f8a506c6f3e41f1e4a8d6aa94c9a79a666bbff";
+      sha256 = "1z5ffgxdq8niggm18qikrh5hl8zs05gdij4z6dfnzy00xvancc40";
     };
     meta.homepage = "https://github.com/nfnty/vim-nftables/";
   };
@@ -5512,12 +5571,12 @@ let
 
   vim-nix = buildVimPluginFrom2Nix {
     pname = "vim-nix";
-    version = "2019-06-03";
+    version = "2020-06-23";
     src = fetchFromGitHub {
       owner = "LnL7";
       repo = "vim-nix";
-      rev = "a3eed01f4de995a51dfdd06287e44fcb231f6adf";
-      sha256 = "0pwdfwws1dj3705m00ghw3dvym5zbm00bfsj023gmbp6vr8wn6yi";
+      rev = "d733cb96707a2a6bdc6102b6d89f947688e0e959";
+      sha256 = "12k2gwm8b1n02361gpjhsldql99yd7qsh80a3lbwc5c5gz5j8jsb";
     };
     meta.homepage = "https://github.com/LnL7/vim-nix/";
   };
@@ -5548,12 +5607,12 @@ let
 
   vim-one = buildVimPluginFrom2Nix {
     pname = "vim-one";
-    version = "2019-04-09";
+    version = "2020-08-09";
     src = fetchFromGitHub {
       owner = "rakr";
       repo = "vim-one";
-      rev = "6695e135415c53a8fbe96672e382200aa1ffb4b4";
-      sha256 = "0951r9kw23zlwd7fda6ib2d9k0akpfd2hvh82pasgw3ks9v1n2vf";
+      rev = "f8bcef1968f01842d92abbcb098ec28ad3931ea5";
+      sha256 = "12czxjh68hdnca4wdk9ypd5c56v1njv6wc2bcxqaj1ff09pgllmy";
     };
     meta.homepage = "https://github.com/rakr/vim-one/";
   };
@@ -5596,16 +5655,52 @@ let
 
   vim-orgmode = buildVimPluginFrom2Nix {
     pname = "vim-orgmode";
-    version = "2020-05-09";
+    version = "2020-07-14";
     src = fetchFromGitHub {
       owner = "jceb";
       repo = "vim-orgmode";
-      rev = "ecdc5b279d7b4e0ae4ebfb9e0f139e3ca6698033";
-      sha256 = "00yihsp5fmpw1ch013brrjkxb6h4slkxms1n154glz8pm95bqsm0";
+      rev = "ad5f154a5bd9daffb7cf50719f0cc945f445af85";
+      sha256 = "09x3x53vf2fir9jhi38v9sai7dx5i40ylx1yk42459bgig2vv1aa";
     };
     meta.homepage = "https://github.com/jceb/vim-orgmode/";
   };
 
+  vim-osc52 = buildVimPluginFrom2Nix {
+    pname = "vim-osc52";
+    version = "2017-06-23";
+    src = fetchFromGitHub {
+      owner = "fcpg";
+      repo = "vim-osc52";
+      rev = "01a311169b2678d853c87b371201205daf8fdf1a";
+      sha256 = "1nxla8r4036shbmyx6wpxy9ncy1s2c5ghi5n5ip22b01lcv6lnv5";
+    };
+    meta.homepage = "https://github.com/fcpg/vim-osc52/";
+  };
+
+  vim-over = buildVimPluginFrom2Nix {
+    pname = "vim-over";
+    version = "2020-01-26";
+    src = fetchFromGitHub {
+      owner = "osyo-manga";
+      repo = "vim-over";
+      rev = "878f83bdac0cda308f599d319f45c7877d5274a9";
+      sha256 = "00k29pcn69d9036jhjpd1xqxh59qwl30l37lsfijlv18ks0wwiqn";
+    };
+    meta.homepage = "https://github.com/osyo-manga/vim-over/";
+  };
+
+  vim-packer = buildVimPluginFrom2Nix {
+    pname = "vim-packer";
+    version = "2018-11-11";
+    src = fetchFromGitHub {
+      owner = "hashivim";
+      repo = "vim-packer";
+      rev = "c2561f41e46df8a78a6b51226f60607582052134";
+      sha256 = "070ncbmwh8wxxfzf7phx0hb0dk9krlvsj5mvrn7kr5y3mngdg9v4";
+    };
+    meta.homepage = "https://github.com/hashivim/vim-packer/";
+  };
+
   vim-pager = buildVimPluginFrom2Nix {
     pname = "vim-pager";
     version = "2015-08-26";
@@ -5620,12 +5715,12 @@ let
 
   vim-pandoc = buildVimPluginFrom2Nix {
     pname = "vim-pandoc";
-    version = "2020-05-15";
+    version = "2020-07-30";
     src = fetchFromGitHub {
       owner = "vim-pandoc";
       repo = "vim-pandoc";
-      rev = "e49f9e7e3fc041dab0e9a1de4b564b3ddd8f77aa";
-      sha256 = "0i1zcnsc962bzm3q6kw8bldd9xh6vb7kw0j72c4dzwdw4ayx0wf1";
+      rev = "049ece9fa8f21afaa62215865afac22daa6fd30f";
+      sha256 = "0wjrbp06ffh9ficd22lcijrc99n72b7gbg5lqpms9r0442fb88kq";
     };
     meta.homepage = "https://github.com/vim-pandoc/vim-pandoc/";
   };
@@ -5644,12 +5739,12 @@ let
 
   vim-pandoc-syntax = buildVimPluginFrom2Nix {
     pname = "vim-pandoc-syntax";
-    version = "2020-01-31";
+    version = "2020-08-10";
     src = fetchFromGitHub {
       owner = "vim-pandoc";
       repo = "vim-pandoc-syntax";
-      rev = "0d1129e5cf1b0e3a90e923c3b5f40133bf153f7c";
-      sha256 = "162l2p8md8lfyfjxzlmlz5ky5kvvr6wjmdk8r8lk6ygpkl2b51f7";
+      rev = "59680708cdc98c3fae9acb6c261374bfd808335a";
+      sha256 = "1yiczv4l2rg8wva2gbjvv7k9s6y9p0gwmlazdd9rnq28nhmxx3gv";
     };
     meta.homepage = "https://github.com/vim-pandoc/vim-pandoc-syntax/";
   };
@@ -5704,12 +5799,12 @@ let
 
   vim-pencil = buildVimPluginFrom2Nix {
     pname = "vim-pencil";
-    version = "2019-12-13";
+    version = "2020-07-29";
     src = fetchFromGitHub {
       owner = "reedes";
       repo = "vim-pencil";
-      rev = "09458527601fdb2fbd174317bdddfb34e4c64e79";
-      sha256 = "09b30cxlwbr9l07ya05is9q2y9vzbzhcc656nvjjzf968l496xr2";
+      rev = "dad5a3626ab68039f2676c46e7a1635e0669cc63";
+      sha256 = "1s1vxzqc5gvch2rfibn7ksmxj81gscfzg0bpvnq34jp430adzdc7";
     };
     meta.homepage = "https://github.com/reedes/vim-pencil/";
   };
@@ -5740,12 +5835,12 @@ let
 
   vim-plug = buildVimPluginFrom2Nix {
     pname = "vim-plug";
-    version = "2020-06-08";
+    version = "2020-08-29";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "vim-plug";
-      rev = "01aab60adef47c6606aa68c8783f5b994fda9fc4";
-      sha256 = "1x5m98k20ncvhz6sngzxwhh74s2ll3d119p1g0di4vr59rkx8szq";
+      rev = "a9bf5bd72212ff7cf9e9e863c365a3464faa2426";
+      sha256 = "0rrmz7vn3kxgrbwmil3vlddq13sy9wbgmn5kgz1r12wcbwf1sb56";
     };
     meta.homepage = "https://github.com/junegunn/vim-plug/";
   };
@@ -5764,16 +5859,28 @@ let
 
   vim-polyglot = buildVimPluginFrom2Nix {
     pname = "vim-polyglot";
-    version = "2020-06-19";
+    version = "2020-09-01";
     src = fetchFromGitHub {
       owner = "sheerun";
       repo = "vim-polyglot";
-      rev = "8b6c06e7239eb46d5b5096fd7fe9507aca88b091";
-      sha256 = "1j4fg0xhnwk0hf89djv0l2gzrj5dna1a9g8vjdxgdq0pilz5hqnj";
+      rev = "63119f09d1390b61155cc0dc3ff497356d2fc7e5";
+      sha256 = "0b04la1i0sawkwbwhb708jzdqflpdxavbf2s0dw8ys65z79z8qzn";
     };
     meta.homepage = "https://github.com/sheerun/vim-polyglot/";
   };
 
+  vim-poweryank = buildVimPluginFrom2Nix {
+    pname = "vim-poweryank";
+    version = "2017-08-13";
+    src = fetchFromGitHub {
+      owner = "haya14busa";
+      repo = "vim-poweryank";
+      rev = "48dff95dbd64423c96fdae5c18eaddb5b5fa3064";
+      sha256 = "016w6nn2qhra9v55sn6g6qf1pj8f072f22r97nzxy4958k7f114a";
+    };
+    meta.homepage = "https://github.com/haya14busa/vim-poweryank/";
+  };
+
   vim-prettyprint = buildVimPluginFrom2Nix {
     pname = "vim-prettyprint";
     version = "2016-07-16";
@@ -5824,12 +5931,12 @@ let
 
   vim-ps1 = buildVimPluginFrom2Nix {
     pname = "vim-ps1";
-    version = "2020-06-03";
+    version = "2020-07-31";
     src = fetchFromGitHub {
       owner = "PProvost";
       repo = "vim-ps1";
-      rev = "9d52746c3f879aa1aca4deb46edd63823d76d89d";
-      sha256 = "1yx1rnpln0lxvf6pbdn8yyxiyhi7rfl8wl94kd8djk51h5lhq1n3";
+      rev = "21d8d9a9db864f230a2d12d5076351daf20d7a44";
+      sha256 = "0s6mi1mzlk40sfdqghdsv709fs89hf9d6iqaw3arzs9lmin2i4ka";
     };
     meta.homepage = "https://github.com/PProvost/vim-ps1/";
   };
@@ -5884,12 +5991,12 @@ let
 
   vim-quickrun = buildVimPluginFrom2Nix {
     pname = "vim-quickrun";
-    version = "2020-05-16";
+    version = "2020-08-25";
     src = fetchFromGitHub {
       owner = "thinca";
       repo = "vim-quickrun";
-      rev = "3041ad7f0b3f9122d4f00bda2f3bb554bf89105c";
-      sha256 = "1ncfw4inb6rdlrayvijy7769wyppiihmazmfcjdx5g42mycfxg0y";
+      rev = "c688f336a4aeb002319994f4fb4a8873f204f0ab";
+      sha256 = "1wzcvshwn4gvjbcmni1r473001m5ipamggkcpwsa7xr74sj4rn73";
     };
     meta.homepage = "https://github.com/thinca/vim-quickrun/";
   };
@@ -5906,6 +6013,30 @@ let
     meta.homepage = "https://github.com/racer-rust/vim-racer/";
   };
 
+  vim-ragtag = buildVimPluginFrom2Nix {
+    pname = "vim-ragtag";
+    version = "2020-01-26";
+    src = fetchFromGitHub {
+      owner = "tpope";
+      repo = "vim-ragtag";
+      rev = "6f1af76cd669c4fb07f0c4e20fdee3077620e3d8";
+      sha256 = "1q5klbnwsg26zxhs3knhamk3srg7dmq46n83sa5rw2kmikb2idg2";
+    };
+    meta.homepage = "https://github.com/tpope/vim-ragtag/";
+  };
+
+  vim-rails = buildVimPluginFrom2Nix {
+    pname = "vim-rails";
+    version = "2020-08-22";
+    src = fetchFromGitHub {
+      owner = "tpope";
+      repo = "vim-rails";
+      rev = "858a379bcb389d67abdb7e0eb1b0a1fa78d8ba39";
+      sha256 = "077jxka05w452g7vrlx1dly85ddqv8z8fh3xklq6dvz016x306m4";
+    };
+    meta.homepage = "https://github.com/tpope/vim-rails/";
+  };
+
   vim-repeat = buildVimPluginFrom2Nix {
     pname = "vim-repeat";
     version = "2019-11-13";
@@ -5932,12 +6063,12 @@ let
 
   vim-rooter = buildVimPluginFrom2Nix {
     pname = "vim-rooter";
-    version = "2020-04-17";
+    version = "2020-07-23";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-rooter";
-      rev = "d64f3e04df9914e784508019a1a1f291cbb40bd4";
-      sha256 = "1vwydkjm5h12kcnqmg2cv1cqf9hmhmyy2lx5lj3g0g6ra27yfjnw";
+      rev = "be83e5bcbe30888b88359fc875ade9c54562411d";
+      sha256 = "1qz3fqixl25x8b70y6kw9lgjxciv9bbzqx9dimvypmhqwx09pnjb";
     };
     meta.homepage = "https://github.com/airblade/vim-rooter/";
   };
@@ -5956,12 +6087,12 @@ let
 
   vim-ruby = buildVimPluginFrom2Nix {
     pname = "vim-ruby";
-    version = "2020-04-19";
+    version = "2020-08-28";
     src = fetchFromGitHub {
       owner = "vim-ruby";
       repo = "vim-ruby";
-      rev = "fd49b25e08618b58db678c3f8ce6e443b1ad04e7";
-      sha256 = "086pzicqal2cmvbrzy09d93c7cz5scgjcqc9xn4cw19dn55irllp";
+      rev = "e367f7b33fe9159c943963f3f839e4d08b74090e";
+      sha256 = "1pngmr6ww4fmn71rshi1npyswp48dq3p7m02s6s703bg83smvmc8";
     };
     meta.homepage = "https://github.com/vim-ruby/vim-ruby/";
   };
@@ -5980,12 +6111,12 @@ let
 
   vim-sandwich = buildVimPluginFrom2Nix {
     pname = "vim-sandwich";
-    version = "2020-02-13";
+    version = "2020-07-27";
     src = fetchFromGitHub {
       owner = "machakann";
       repo = "vim-sandwich";
-      rev = "02e3b6d1ff9ce346c115166855137b318b63c536";
-      sha256 = "1jd5i0ykvwf5jnm3g3rm2r0zn64xqk38p2xl55la9a1a99j9mfxh";
+      rev = "f0bb324395bf6e00ec17fc7af60d2ccb8d494595";
+      sha256 = "19fqpccvawh2wjkzgp64jijq4nnhirmgvrrycxzcx7lj612mbpmc";
     };
     meta.homepage = "https://github.com/machakann/vim-sandwich/";
   };
@@ -6088,12 +6219,12 @@ let
 
   vim-signify = buildVimPluginFrom2Nix {
     pname = "vim-signify";
-    version = "2020-06-08";
+    version = "2020-08-13";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-signify";
-      rev = "c3d450eb5f5e76d99d23b10493d4e08c5bb1ae71";
-      sha256 = "0ms0c36zsqqpxrq4mx9k5viblcapw9kpjm9cdrs8fnldlz6i0yhh";
+      rev = "98c693f7a1a91b73d9232d868765b4d20af892fe";
+      sha256 = "05ppj7sqp8i7qhaf6vz427nnwsnkgf9nlq3lhyhbl14cjkrhqny9";
     };
     meta.homepage = "https://github.com/mhinz/vim-signify/";
   };
@@ -6124,12 +6255,12 @@ let
 
   vim-slime = buildVimPluginFrom2Nix {
     pname = "vim-slime";
-    version = "2020-04-12";
+    version = "2020-08-06";
     src = fetchFromGitHub {
       owner = "jpalardy";
       repo = "vim-slime";
-      rev = "a81139239d6447b1c021e4873e6a14b47f32b65a";
-      sha256 = "0wavkm9k2vm23nm5bmc3lpm6cac7mihzjcyk4r77qgdgmnnxkm49";
+      rev = "db486eaa39f14d130ddf6338aaa02127aa04b272";
+      sha256 = "1x9vflsbdl1b03irkvfpapb0c4mw9lymfghcjy1wxjl2vpq630ia";
     };
     meta.homepage = "https://github.com/jpalardy/vim-slime/";
   };
@@ -6146,6 +6277,18 @@ let
     meta.homepage = "https://github.com/t9md/vim-smalls/";
   };
 
+  vim-smoothie = buildVimPluginFrom2Nix {
+    pname = "vim-smoothie";
+    version = "2019-12-02";
+    src = fetchFromGitHub {
+      owner = "psliwka";
+      repo = "vim-smoothie";
+      rev = "d3de4fbd7a9331b3eb05fa632611ebd34882cc83";
+      sha256 = "1bsqnz02jaydr92mmcrdlva4zxs28zgxwgznr2bwk4wnn26i54p6";
+    };
+    meta.homepage = "https://github.com/psliwka/vim-smoothie/";
+  };
+
   vim-smt2 = buildVimPluginFrom2Nix {
     pname = "vim-smt2";
     version = "2018-05-20";
@@ -6160,12 +6303,12 @@ let
 
   vim-sneak = buildVimPluginFrom2Nix {
     pname = "vim-sneak";
-    version = "2020-02-29";
+    version = "2020-09-01";
     src = fetchFromGitHub {
       owner = "justinmk";
       repo = "vim-sneak";
-      rev = "98a5c946d6dc76528b9d9b044059b5ef1fab5a48";
-      sha256 = "0xcxr658i5vzdkxfssd7zx6n3ar9b6dg4b2ddaswgnwq75xphrh9";
+      rev = "65e5e4668371152c6ef7a6269c6a6b960cef21b4";
+      sha256 = "0bfibshqqa17n9vbdd2g8kalnc78v1ag3hzws9pdacrcsxhsh0ry";
     };
     meta.homepage = "https://github.com/justinmk/vim-sneak/";
   };
@@ -6184,12 +6327,12 @@ let
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2020-06-02";
+    version = "2020-08-30";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "900bf93c6680e38ce568dba26c3f48b4365ac730";
-      sha256 = "1gxqmvr6hz7vblrji2dz2l1x18264ainbl70j60yfx3vjp5aa9vq";
+      rev = "c609efe753ccc2f2631908149e94febc0b257052";
+      sha256 = "00m2kjkqyz1s36hn2m7qd98ms26cxhcbh1qhpnzbhfldz0wq9dd5";
     };
     meta.homepage = "https://github.com/honza/vim-snippets/";
   };
@@ -6328,24 +6471,24 @@ let
 
   vim-SyntaxRange = buildVimPluginFrom2Nix {
     pname = "vim-SyntaxRange";
-    version = "2020-06-17";
+    version = "2020-08-18";
     src = fetchFromGitHub {
       owner = "inkarkat";
       repo = "vim-SyntaxRange";
-      rev = "63c382eabfb5dd0b1e837dc6a42b14f3fe000ff9";
-      sha256 = "1c62m2k08vnla3zd3rb716y6vp5ijn8b36fv48jw77y579k9l6pk";
+      rev = "602316468bc044e047db88f50157b61fa00b65cb";
+      sha256 = "0zrrvd9xrivx61fiz799mdbwdzl7damdgm6i9h0sl1v95hclhi3i";
     };
     meta.homepage = "https://github.com/inkarkat/vim-SyntaxRange/";
   };
 
   vim-table-mode = buildVimPluginFrom2Nix {
     pname = "vim-table-mode";
-    version = "2020-05-06";
+    version = "2020-08-19";
     src = fetchFromGitHub {
       owner = "dhruvasagar";
       repo = "vim-table-mode";
-      rev = "640400908075c50704e127448175d3ede6bba2e9";
-      sha256 = "0gbj324wwgai1kprn78srq3cvldpi6hx9gsr5kk2sn2yxq32xp3y";
+      rev = "3476c4e517aa86bc131c707d32f2e508bd5be468";
+      sha256 = "0vglazxlsg7ai4c5znxaddpjnfhz6a9slzs0kzzqvmhd3xr7vfg1";
     };
     meta.homepage = "https://github.com/dhruvasagar/vim-table-mode/";
   };
@@ -6376,24 +6519,37 @@ let
 
   vim-terraform = buildVimPluginFrom2Nix {
     pname = "vim-terraform";
-    version = "2020-03-03";
+    version = "2020-08-07";
     src = fetchFromGitHub {
       owner = "hashivim";
       repo = "vim-terraform";
-      rev = "89c47c6c68f6260ba34ee0733437d863046fbe95";
-      sha256 = "1gkr3akvx44802i8cv4zw8j3bk5qk0h0rgz5k9jgkfch2yc76gzg";
+      rev = "85402fc0f05c103da9d3416e34fb88237ca1de3c";
+      sha256 = "1g8802wmhg5zjk51qfiqcvdclqwg8rfizfpz5jlskcayh82gxvg0";
     };
     meta.homepage = "https://github.com/hashivim/vim-terraform/";
   };
 
+  vim-terraform-completion = buildVimPluginFrom2Nix {
+    pname = "vim-terraform-completion";
+    version = "2019-07-28";
+    src = fetchFromGitHub {
+      owner = "juliosueiras";
+      repo = "vim-terraform-completion";
+      rev = "1c8792d1e85154aa6fc05eb746711bf2df2274d9";
+      sha256 = "0j87vhxkrv8sdrlv9w5p2zkiv9ssb3rckbffjcfhn9365d41bhgr";
+      fetchSubmodules = true;
+    };
+    meta.homepage = "https://github.com/juliosueiras/vim-terraform-completion/";
+  };
+
   vim-test = buildVimPluginFrom2Nix {
     pname = "vim-test";
-    version = "2020-06-20";
+    version = "2020-09-01";
     src = fetchFromGitHub {
       owner = "vim-test";
       repo = "vim-test";
-      rev = "a125012ad09d4531dc7f13097fa4a5e3f1ad09a7";
-      sha256 = "1dhg81glzfbmcrna45062n41vcfnd7mliphpa6rpd5d9ci54hl08";
+      rev = "795f16430c568fc13266be9239bf70f19b8ae50f";
+      sha256 = "06j24di1r2p1qpiy86h75ghfsf0lqkfllf7kf64gjas89gbc9i89";
     };
     meta.homepage = "https://github.com/vim-test/vim-test/";
   };
@@ -6472,24 +6628,24 @@ let
 
   vim-themis = buildVimPluginFrom2Nix {
     pname = "vim-themis";
-    version = "2020-03-08";
+    version = "2020-08-23";
     src = fetchFromGitHub {
       owner = "thinca";
       repo = "vim-themis";
-      rev = "2d10aee9c9982f4f5974e88351934759c69640e7";
-      sha256 = "06ab0kjamzpyql71qmc8qhvb72rx07x2g598aidk8nqkk36x87ai";
+      rev = "51bec3386b661d28fda7736006475b8b2ebe343d";
+      sha256 = "05988ila63kj1r62v7ii76972fgw2300h4dbaml81i643yw0p81p";
     };
     meta.homepage = "https://github.com/thinca/vim-themis/";
   };
 
   vim-tmux = buildVimPluginFrom2Nix {
     pname = "vim-tmux";
-    version = "2019-03-22";
+    version = "2020-07-25";
     src = fetchFromGitHub {
       owner = "tmux-plugins";
       repo = "vim-tmux";
-      rev = "4e77341a2f8b9b7e41e81e9debbcecaea5987c85";
-      sha256 = "16fgc0lx1jr8zbayanf5w677ssiw5xb8vwfaca295c8xlk760c3m";
+      rev = "7e7680fb1bb05bca1c800213b265f45433ed1e33";
+      sha256 = "19al4a4g8wfz43am32ncz8dg58wxhzn30p7r4n1780pv8hzkdrsb";
     };
     meta.homepage = "https://github.com/tmux-plugins/vim-tmux/";
   };
@@ -6544,24 +6700,24 @@ let
 
   vim-toml = buildVimPluginFrom2Nix {
     pname = "vim-toml";
-    version = "2019-08-28";
+    version = "2020-07-06";
     src = fetchFromGitHub {
       owner = "cespare";
       repo = "vim-toml";
-      rev = "a4ec206052aa347d7df90dc4b6697b7f2b7929bc";
-      sha256 = "1dgykq4vl7vvj2f8lvg58rzqddm53i278g26ljwfimgqc8l6gmqd";
+      rev = "897cb4eaa81a0366bc859effe14116660d4015cd";
+      sha256 = "0ps9kwclqfdydk4132255i9rzcic0sp6d217arjsk1w6gm7m9lm6";
     };
     meta.homepage = "https://github.com/cespare/vim-toml/";
   };
 
   vim-trailing-whitespace = buildVimPluginFrom2Nix {
     pname = "vim-trailing-whitespace";
-    version = "2019-12-09";
+    version = "2020-06-29";
     src = fetchFromGitHub {
       owner = "bronson";
       repo = "vim-trailing-whitespace";
-      rev = "6b7cdecff252474fe560d32c6f05641f3c5952c7";
-      sha256 = "0arv1hmlw7c1rlkc00hzjyg48pg8g4cc9q9l2hy8kpmsl037akm3";
+      rev = "610ca1a97c8dc85cdeb38635e5a4703317c4b94d";
+      sha256 = "1bh15yw2aysvpn2ndnc0s6jzc0y93x6q1blc5pph67rdix5bm7gy";
     };
     meta.homepage = "https://github.com/bronson/vim-trailing-whitespace/";
   };
@@ -6590,6 +6746,18 @@ let
     meta.homepage = "https://github.com/lumiliet/vim-twig/";
   };
 
+  vim-twiggy = buildVimPluginFrom2Nix {
+    pname = "vim-twiggy";
+    version = "2019-06-24";
+    src = fetchFromGitHub {
+      owner = "sodapopcan";
+      repo = "vim-twiggy";
+      rev = "962b181f402f05b66641308fe1b3538d5f863ab8";
+      sha256 = "0cqarsvdw9gr8pqp1gjy4rb6aaifjyb7iaaa2g8msr1ps0ihs3gd";
+    };
+    meta.homepage = "https://github.com/sodapopcan/vim-twiggy/";
+  };
+
   vim-unimpaired = buildVimPluginFrom2Nix {
     pname = "vim-unimpaired";
     version = "2020-04-26";
@@ -6602,14 +6770,26 @@ let
     meta.homepage = "https://github.com/tpope/vim-unimpaired/";
   };
 
+  vim-vagrant = buildVimPluginFrom2Nix {
+    pname = "vim-vagrant";
+    version = "2018-11-11";
+    src = fetchFromGitHub {
+      owner = "hashivim";
+      repo = "vim-vagrant";
+      rev = "7741242ed9617ed53ba7e47e801634b819047ac0";
+      sha256 = "0inpgcrca955h0ic7pgl6bfzs7rssjgssvrvqq3y93j5addmh60m";
+    };
+    meta.homepage = "https://github.com/hashivim/vim-vagrant/";
+  };
+
   vim-vinegar = buildVimPluginFrom2Nix {
     pname = "vim-vinegar";
-    version = "2019-11-13";
+    version = "2020-06-27";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-vinegar";
-      rev = "fcce70f1403ba4101668a4c960c577bddbd00f06";
-      sha256 = "0zxqdyla40xcp0ps362b85bqwl3mp4zfmfdggl0gwvgd5m949yk0";
+      rev = "5fee9d230ec4a6a16c45f2c71482595e4d9a67bd";
+      sha256 = "14n0mnj1lmk3bmhm0knipsw120dlxpsd98fimmchw0kd80vpph41";
     };
     meta.homepage = "https://github.com/tpope/vim-vinegar/";
   };
@@ -6628,12 +6808,12 @@ let
 
   vim-visual-multi = buildVimPluginFrom2Nix {
     pname = "vim-visual-multi";
-    version = "2020-06-14";
+    version = "2020-08-15";
     src = fetchFromGitHub {
       owner = "mg979";
       repo = "vim-visual-multi";
-      rev = "507c498c7dac31c396ed64bfddcd92551a93669d";
-      sha256 = "0jq1ywz4fwlln93qwwxl28dlq43c5vaybhi1y365hcn03nz526cc";
+      rev = "038065ed8d1b43972f8993df41f07aa00848a47f";
+      sha256 = "137pcqp96xgak9ghr5829dq39525n0x2p56lcbh2njf3crgvmnl0";
     };
     meta.homepage = "https://github.com/mg979/vim-visual-multi/";
   };
@@ -6650,6 +6830,30 @@ let
     meta.homepage = "https://github.com/thinca/vim-visualstar/";
   };
 
+  vim-vsnip = buildVimPluginFrom2Nix {
+    pname = "vim-vsnip";
+    version = "2020-09-02";
+    src = fetchFromGitHub {
+      owner = "hrsh7th";
+      repo = "vim-vsnip";
+      rev = "b4ea93fbcb578250da97722ca825a73a66c3d5c8";
+      sha256 = "0zgy4q2b5fywqiv2chz3fly4liy8br2mdj1kf4m43b6pil77qpbi";
+    };
+    meta.homepage = "https://github.com/hrsh7th/vim-vsnip/";
+  };
+
+  vim-vsnip-integ = buildVimPluginFrom2Nix {
+    pname = "vim-vsnip-integ";
+    version = "2020-08-19";
+    src = fetchFromGitHub {
+      owner = "hrsh7th";
+      repo = "vim-vsnip-integ";
+      rev = "4a076bea73e307738ac5d08f60a0936cab391efd";
+      sha256 = "1jx6ijmj48ffymfn20d0syp1ywv19gmjvf3hb6rdwsk421y58chv";
+    };
+    meta.homepage = "https://github.com/hrsh7th/vim-vsnip-integ/";
+  };
+
   vim-vue = buildVimPluginFrom2Nix {
     pname = "vim-vue";
     version = "2019-08-03";
@@ -6688,12 +6892,12 @@ let
 
   vim-which-key = buildVimPluginFrom2Nix {
     pname = "vim-which-key";
-    version = "2020-06-20";
+    version = "2020-08-10";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-which-key";
-      rev = "b9409149a5a8a386322cc4246d890c8c4c07d11d";
-      sha256 = "0jrz1v63a9kv7bkksdw7vxq83d49f0dvhp1sd9vaiya7a93raxdx";
+      rev = "c940b147c3098278f9c14b85eef9cfdbf82a7f09";
+      sha256 = "19qh7lmpb093hnxga2jk6s47bjsdjqj4zrb3lrkrjn2qyyasi194";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-which-key/";
   };
@@ -6808,12 +7012,12 @@ let
 
   vimfiler-vim = buildVimPluginFrom2Nix {
     pname = "vimfiler-vim";
-    version = "2019-07-30";
+    version = "2020-07-13";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "vimfiler.vim";
-      rev = "26d3fec10cb8921d510064411784301794229a93";
-      sha256 = "0iv1smk0999sfm3iqdlpb2il74l01lxfahwg87g7h3gq9frky2wd";
+      rev = "0fdf9f2f7e6014a49625433058c1665f72a3b86f";
+      sha256 = "028hcmr7xxqmb55m9q2h2x9kr5xq5866ivr0in23jm44s897yr25";
     };
     meta.homepage = "https://github.com/Shougo/vimfiler.vim/";
   };
@@ -6856,12 +7060,12 @@ let
 
   vimproc-vim = buildVimPluginFrom2Nix {
     pname = "vimproc-vim";
-    version = "2020-01-20";
+    version = "2020-06-23";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "vimproc.vim";
-      rev = "51f4664c92f0f1b121127c84d3b1c901e1c698f0";
-      sha256 = "06nzh4x7j7j3nvw2s4m1gmds0z0bldxbizja91jd43qma9xnwvlk";
+      rev = "8f40d86ab938d5df8c1c9824320621ae9f0d5609";
+      sha256 = "11k59lc31056lk9ndkmi9a4459lnv6hdhvw3y4gpin40xchl6d61";
     };
     meta.homepage = "https://github.com/Shougo/vimproc.vim/";
   };
@@ -6878,14 +7082,27 @@ let
     meta.homepage = "https://github.com/Shougo/vimshell.vim/";
   };
 
+  vimspector = buildVimPluginFrom2Nix {
+    pname = "vimspector";
+    version = "2020-09-01";
+    src = fetchFromGitHub {
+      owner = "puremourning";
+      repo = "vimspector";
+      rev = "e81be848a112350656e7c273777185c3c1a88e3e";
+      sha256 = "07xfkvhanwi7x5kyw0wzgia33wrxi8xpxxf546xkd06bz0j6kqv4";
+      fetchSubmodules = true;
+    };
+    meta.homepage = "https://github.com/puremourning/vimspector/";
+  };
+
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2020-06-09";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "49bc335fffa40a7b7b84b6110b57ebcbaaf019ea";
-      sha256 = "06zdj0pgr6d8vddx87rk36lb00nngydl367g06zi8jkx4673rzz8";
+      rev = "ec219646136de3040356b00d0dc74520950bd761";
+      sha256 = "1329cg02mxplflfpww69avn71pz0sj1ihl3qkwmz9b90whglczmr";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -6928,12 +7145,12 @@ let
 
   vista-vim = buildVimPluginFrom2Nix {
     pname = "vista-vim";
-    version = "2020-06-21";
+    version = "2020-08-14";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vista.vim";
-      rev = "0b5ece152b56e424b6df6ca9545517007ceb840f";
-      sha256 = "1dr98fibcpq6c1adsb4bnbbgg6gpk9brfy3kkrbl49jqf2120zww";
+      rev = "7f97d30914daea5b542a90eed747d5bd00afbb19";
+      sha256 = "1ghpkyh9ga759v065yvn4xr8ccwamyr87jkq3av9fslxzfzhwdpm";
     };
     meta.homepage = "https://github.com/liuchengxu/vista.vim/";
   };
@@ -7012,12 +7229,12 @@ let
 
   xptemplate = buildVimPluginFrom2Nix {
     pname = "xptemplate";
-    version = "2020-02-08";
+    version = "2020-06-29";
     src = fetchFromGitHub {
       owner = "drmingdrmer";
       repo = "xptemplate";
-      rev = "79d650bad58b9c896ec47785f8a0c7b603105c2d";
-      sha256 = "1myxp0ldk0s46aipx1iswa9zx2fkc4gwqpmhbswqgg7sxl1bz30g";
+      rev = "359ffe4d426bce2e95f5866b682856b25555396f";
+      sha256 = "1rj5k58n1ybcc7qxsxlh09p2v4cps5xyzxmvjfrixy1qm2f85kd5";
     };
     meta.homepage = "https://github.com/drmingdrmer/xptemplate/";
   };
@@ -7048,12 +7265,12 @@ let
 
   yats-vim = buildVimPluginFrom2Nix {
     pname = "yats-vim";
-    version = "2020-06-20";
+    version = "2020-07-30";
     src = fetchFromGitHub {
       owner = "HerringtonDarkholme";
       repo = "yats.vim";
-      rev = "7f4e88b3ba11261e6ec4c7364c5a420d48e253ac";
-      sha256 = "1q98pf0cr38k1z9czm57pvb0mari57q89swsk4aq0pl6b6cvi5d5";
+      rev = "4d76c5391b7975bd6dd09c0562c0fd4d78e14fa0";
+      sha256 = "1ql5gwdnsf9y56ijphspfi3sbjgfj1594728xyw6l432mddgqx99";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/HerringtonDarkholme/yats.vim/";
@@ -7061,12 +7278,12 @@ let
 
   YouCompleteMe = buildVimPluginFrom2Nix {
     pname = "YouCompleteMe";
-    version = "2020-06-14";
+    version = "2020-08-25";
     src = fetchFromGitHub {
       owner = "ycm-core";
       repo = "YouCompleteMe";
-      rev = "f9906f804b02e6b7e70a7f1a6f949e905784b5b9";
-      sha256 = "0jg5g2yzaf4xs14phak7k1s5s7jfnsx5ijjgx2arddgaxbvpxlrs";
+      rev = "2afee9d9771cf53eec63ab854bcd491fe277109e";
+      sha256 = "08dmzy789zg8s9m5gm4rlg9jrs9fv546x6lvziiamn70jbrfrrlg";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
@@ -7098,24 +7315,24 @@ let
 
   zenburn = buildVimPluginFrom2Nix {
     pname = "zenburn";
-    version = "2020-01-23";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "jnurmine";
       repo = "zenburn";
-      rev = "ec6f369a000602e37e7c066b725f9d6bd12538f4";
-      sha256 = "1ff5ac8lp7fq854kgf03c5h695lm60giw0qda5z428mmzwq0xask";
+      rev = "e1f66dd35ec86ee0aec0b9ef1818f97023f914c4";
+      sha256 = "10aizq0xvln917i9jji6fxdxdgfbvcvd041z6qq2m23h5xs232w8";
     };
     meta.homepage = "https://github.com/jnurmine/zenburn/";
   };
 
   zig-vim = buildVimPluginFrom2Nix {
     pname = "zig-vim";
-    version = "2020-06-18";
+    version = "2020-08-30";
     src = fetchFromGitHub {
       owner = "ziglang";
       repo = "zig.vim";
-      rev = "fdc73a51d168677ec9a1da68afbe30c8ddb6263a";
-      sha256 = "14qkrlh07qg6192m2lgbjh3dshgrlbwni2i00vm04xax8dm436j1";
+      rev = "3c95b67a76934959f9124e39e64eb14f65f14dc9";
+      sha256 = "0m152kf9yw7q2slci2bzsqmycl9nxawhhclr4r9k5q87xdrzjqk0";
     };
     meta.homepage = "https://github.com/ziglang/zig.vim/";
   };
diff --git a/pkgs/misc/vim-plugins/overrides.nix b/pkgs/misc/vim-plugins/overrides.nix
index b2ff6c79f5a..18515293655 100644
--- a/pkgs/misc/vim-plugins/overrides.nix
+++ b/pkgs/misc/vim-plugins/overrides.nix
@@ -2,6 +2,7 @@
 , python, cmake, meson, vim, ruby
 , which, fetchFromGitHub, fetchgit, fetchurl, fetchzip, fetchpatch
 , llvmPackages, rustPlatform
+, pkgconfig, curl, openssl, libgit2, libiconv
 , xkb-switch, fzf, skim, stylish-haskell
 , python3, boost, icu, ncurses
 , ycmd, rake
@@ -13,9 +14,6 @@
 , nodePackages
 , dasht
 
-# coc-go dependency
-, go
-
 # deoplete-khard dependency
 , khard
 
@@ -61,16 +59,18 @@ self: super: {
   };
 
   LanguageClient-neovim = let
-    version = "0.1.157";
-    LanguageClient-neovim-src = fetchurl {
-      url = "https://github.com/autozimu/LanguageClient-neovim/archive/${version}.tar.gz";
-      sha256 = "1ccq5akkm8n612ni5g7w7v5gv73g7p1d9i92k0bnsy33fvi3pmnh";
+    version = "0.1.158";
+    LanguageClient-neovim-src = fetchFromGitHub {
+      owner = "autozimu";
+      repo = "LanguageClient-neovim";
+      rev = version;
+      sha256 = "14xggdgp5qw4yj4gdsgr8s2nxm098m88q8rx6fzd2j20njv308ki";
     };
     LanguageClient-neovim-bin = rustPlatform.buildRustPackage {
       name = "LanguageClient-neovim-bin";
       src = LanguageClient-neovim-src;
 
-      cargoSha256 = "0r3f7sixkvgfrw0j81bxj1jpam5si9dnivrw63s29cvjxrdbnmqz";
+      cargoSha256 = "0nin1gydf6q4mmxljm2xbd1jfl3wpzx3pvlqwspahblv9j2bf5ck";
       buildInputs = stdenv.lib.optionals stdenv.isDarwin [ CoreServices ];
 
       # FIXME: Use impure version of CoreFoundation because of missing symbols.
@@ -98,8 +98,6 @@ self: super: {
     # These usually implicitly set by cc-wrapper around clang (pkgs/build-support/cc-wrapper).
     # The linked ruby code shows generates the required '.clang_complete' for cmake based projects
     # https://gist.github.com/Mic92/135e83803ed29162817fce4098dec144
-    # as an alternative you can execute the following command:
-    # $ eval echo $(nix-instantiate --eval --expr 'with (import <nixpkgs>) {}; clang.default_cxx_stdlib_compile')
     preFixup = ''
       substituteInPlace "$out"/share/vim-plugins/clang_complete/plugin/clang_complete.vim \
         --replace "let g:clang_library_path = '' + "''" + ''" "let g:clang_library_path='${llvmPackages.clang.cc.lib}/lib/libclang.so'"
@@ -124,199 +122,6 @@ self: super: {
     '';
   });
 
-  coc-go = super.coc-go.overrideAttrs(old: {
-    preFixup = ''
-      substituteInPlace "$out"/share/vim-plugins/coc-go/src/utils/tools.ts \
-        --replace 'const cmd = `GOPATH=''${gopath}; go ''${args}`' 'const cmd = `GOPATH=''${gopath}; ${go}/bin/go ''${args}`'
-    '';
-  });
-
-  coc-css = buildVimPluginFrom2Nix {
-    pname = "coc-css";
-    version = nodePackages.coc-css.version;
-    src = "${nodePackages.coc-css}/lib/node_modules/coc-css";
-  };
-
-  coc-emmet = buildVimPluginFrom2Nix {
-    pname = "coc-emmet";
-    version = nodePackages.coc-emmet.version;
-    src = "${nodePackages.coc-emmet}/lib/node_modules/coc-emmet";
-  };
-
-  coc-eslint = buildVimPluginFrom2Nix {
-    pname = "coc-eslint";
-    version = nodePackages.coc-eslint.version;
-    src = "${nodePackages.coc-eslint}/lib/node_modules/coc-eslint";
-  };
-
-  coc-git = buildVimPluginFrom2Nix {
-    pname = "coc-git";
-    version = nodePackages.coc-git.version;
-    src = "${nodePackages.coc-git}/lib/node_modules/coc-git";
-  };
-
-  coc-highlight = buildVimPluginFrom2Nix {
-    pname = "coc-highlight";
-    version = nodePackages.coc-highlight.version;
-    src = "${nodePackages.coc-highlight}/lib/node_modules/coc-highlight";
-  };
-
-  coc-html = buildVimPluginFrom2Nix {
-    pname = "coc-html";
-    version = nodePackages.coc-html.version;
-    src = "${nodePackages.coc-html}/lib/node_modules/coc-html";
-  };
-
-  coc-imselect = buildVimPluginFrom2Nix {
-    pname = "coc-imselect";
-    version = nodePackages.coc-imselect.version;
-    src = "${nodePackages.coc-imselect}/lib/node_modules/coc-imselect";
-  };
-
-  coc-java = buildVimPluginFrom2Nix {
-    pname = "coc-java";
-    version = nodePackages.coc-java.version;
-    src = "${nodePackages.coc-java}/lib/node_modules/coc-java";
-  };
-
-  coc-jest = buildVimPluginFrom2Nix {
-    pname = "coc-jest";
-    version = nodePackages.coc-jest.version;
-    src = "${nodePackages.coc-jest}/lib/node_modules/coc-jest";
-  };
-
-  coc-json = buildVimPluginFrom2Nix {
-    pname = "coc-json";
-    version = nodePackages.coc-json.version;
-    src = "${nodePackages.coc-json}/lib/node_modules/coc-json";
-  };
-
-  coc-lists = buildVimPluginFrom2Nix {
-    pname = "coc-lists";
-    version = nodePackages.coc-lists.version;
-    src = "${nodePackages.coc-lists}/lib/node_modules/coc-lists";
-  };
-
-  coc-metals = buildVimPluginFrom2Nix {
-    pname = "coc-metals";
-    version = nodePackages.coc-metals.version;
-    src = "${nodePackages.coc-metals}/lib/node_modules/coc-metals";
-  };
-
-  coc-pairs = buildVimPluginFrom2Nix {
-    pname = "coc-pairs";
-    version = nodePackages.coc-pairs.version;
-    src = "${nodePackages.coc-pairs}/lib/node_modules/coc-pairs";
-  };
-
-  coc-prettier = buildVimPluginFrom2Nix {
-    pname = "coc-prettier";
-    version = nodePackages.coc-prettier.version;
-    src = "${nodePackages.coc-prettier}/lib/node_modules/coc-prettier";
-  };
-
-  coc-python = buildVimPluginFrom2Nix {
-    pname = "coc-python";
-    version = nodePackages.coc-python.version;
-    src = "${nodePackages.coc-python}/lib/node_modules/coc-python";
-  };
-
-  coc-r-lsp = buildVimPluginFrom2Nix {
-    pname = "coc-r-lsp";
-    version = nodePackages.coc-r-lsp.version;
-    src = "${nodePackages.coc-r-lsp}/lib/node_modules/coc-r-lsp";
-  };
-
-  coc-rls = buildVimPluginFrom2Nix {
-    pname = "coc-rls";
-    version = nodePackages.coc-rls.version;
-    src = "${nodePackages.coc-rls}/lib/node_modules/coc-rls";
-  };
-
-  coc-rust-analyzer = buildVimPluginFrom2Nix {
-    pname = "coc-rust-analyzer";
-    version = nodePackages.coc-rust-analyzer.version;
-    src = "${nodePackages.coc-rust-analyzer}/lib/node_modules/coc-rust-analyzer";
-  };
-
-  coc-smartf = buildVimPluginFrom2Nix {
-    pname = "coc-smartf";
-    version = nodePackages.coc-smartf.version;
-    src = "${nodePackages.coc-smartf}/lib/node_modules/coc-smartf";
-  };
-
-  coc-snippets = buildVimPluginFrom2Nix {
-    pname = "coc-snippets";
-    version = nodePackages.coc-snippets.version;
-    src = "${nodePackages.coc-snippets}/lib/node_modules/coc-snippets";
-  };
-
-  coc-solargraph = buildVimPluginFrom2Nix {
-    pname = "coc-solargraph";
-    version = nodePackages.coc-solargraph.version;
-    src = "${nodePackages.coc-solargraph}/lib/node_modules/coc-solargraph";
-  };
-
-  coc-stylelint = buildVimPluginFrom2Nix {
-    pname = "coc-stylelint";
-    version = nodePackages.coc-stylelint.version;
-    src = "${nodePackages.coc-stylelint}/lib/node_modules/coc-stylelint";
-  };
-
-  coc-tabnine = buildVimPluginFrom2Nix {
-    pname = "coc-tabnine";
-    version = nodePackages.coc-tabnine.version;
-    src = "${nodePackages.coc-tabnine}/lib/node_modules/coc-tabnine";
-  };
-
-  coc-tslint = buildVimPluginFrom2Nix {
-    pname = "coc-tslint";
-    version = nodePackages.coc-tslint.version;
-    src = "${nodePackages.coc-tslint}/lib/node_modules/coc-tslint";
-  };
-
-  coc-tslint-plugin = buildVimPluginFrom2Nix {
-    pname = "coc-tslint-plugin";
-    version = nodePackages.coc-tslint-plugin.version;
-    src = "${nodePackages.coc-tslint-plugin}/lib/node_modules/coc-tslint-plugin";
-  };
-
-  coc-tsserver = buildVimPluginFrom2Nix {
-    pname = "coc-tsserver";
-    version = nodePackages.coc-tsserver.version;
-    src = "${nodePackages.coc-tsserver}/lib/node_modules/coc-tsserver";
-  };
-
-  coc-vetur = buildVimPluginFrom2Nix {
-    pname = "coc-vetur";
-    version = nodePackages.coc-vetur.version;
-    src = "${nodePackages.coc-vetur}/lib/node_modules/coc-vetur";
-  };
-
-  coc-vimtex = buildVimPluginFrom2Nix {
-    pname = "coc-vimtex";
-    version = nodePackages.coc-vimtex.version;
-    src = "${nodePackages.coc-vimtex}/lib/node_modules/coc-vimtex";
-  };
-
-  coc-wxml = buildVimPluginFrom2Nix {
-    pname = "coc-wxml";
-    version = nodePackages.coc-wxml.version;
-    src = "${nodePackages.coc-wxml}/lib/node_modules/coc-wxml";
-  };
-
-  coc-yaml = buildVimPluginFrom2Nix {
-    pname = "coc-yaml";
-    version = nodePackages.coc-yaml.version;
-    src = "${nodePackages.coc-yaml}/lib/node_modules/coc-yaml";
-  };
-
-  coc-yank = buildVimPluginFrom2Nix {
-    pname = "coc-yank";
-    version = nodePackages.coc-yank.version;
-    src = "${nodePackages.coc-yank}/lib/node_modules/coc-yank";
-  };
-
   command-t = super.command-t.overrideAttrs(old: {
     buildInputs = [ ruby rake ];
     buildPhase = ''
@@ -442,6 +247,18 @@ self: super: {
     passthru.python3Dependencies = ps: with ps; [ jedi ];
   });
 
+  ncm2-neoinclude = super.ncm2-neoinclude.overrideAttrs(old: {
+    dependencies = with super; [ neoinclude-vim ];
+  });
+
+  ncm2-neosnippet = super.ncm2-neosnippet.overrideAttrs(old: {
+    dependencies = with super; [ neosnippet-vim ];
+  });
+
+  ncm2-syntax = super.ncm2-syntax.overrideAttrs(old: {
+    dependencies = with super; [ neco-syntax ];
+  });
+
   ncm2-ultisnips = super.ncm2-ultisnips.overrideAttrs(old: {
     dependencies = with super; [ ultisnips ];
   });
@@ -450,6 +267,10 @@ self: super: {
     dependencies = [ self.fzfWrapper ];
   });
 
+  skim-vim = super.skim-vim.overrideAttrs(old: {
+    dependencies = [ self.skim ];
+  });
+
   sved = let
     # we put the script in its own derivation to benefit the magic of wrapGAppsHook
     svedbackend = stdenv.mkDerivation {
@@ -748,4 +569,73 @@ self: super: {
         ${vim}/bin/vim --cmd ":set rtp^=$PWD" -c 'ru plugin/unicode.vim' -c 'UnicodeCache' -c ':echohl Normal' -c ':q' > /dev/null
       '';
   });
-}
+
+  vim-clap = super.vim-clap.overrideAttrs(old: {
+    preFixup = let
+      maple-bin = rustPlatform.buildRustPackage {
+        name = "maple";
+        src = old.src;
+
+        nativeBuildInputs = [
+          pkgconfig
+        ];
+
+        buildInputs = [
+          openssl
+        ] ++ stdenv.lib.optionals stdenv.isDarwin [
+          CoreServices
+          curl
+          libgit2
+          libiconv
+        ];
+
+        cargoSha256 = "0qqys51slz85rnx6knjyivnmyq4rj6rrnz7w72kqcl8da8zjbx7b";
+      };
+    in ''
+      ln -s ${maple-bin}/bin/maple $target/bin/maple
+    '';
+  });
+} // (
+  let
+    nodePackageNames = [
+      "coc-go"
+      "coc-css"
+      "coc-emmet"
+      "coc-eslint"
+      "coc-git"
+      "coc-highlight"
+      "coc-html"
+      "coc-imselect"
+      "coc-java"
+      "coc-jest"
+      "coc-json"
+      "coc-lists"
+      "coc-metals"
+      "coc-pairs"
+      "coc-prettier"
+      "coc-python"
+      "coc-r-lsp"
+      "coc-rls"
+      "coc-rust-analyzer"
+      "coc-smartf"
+      "coc-snippets"
+      "coc-solargraph"
+      "coc-stylelint"
+      "coc-tabnine"
+      "coc-tslint"
+      "coc-tslint-plugin"
+      "coc-tsserver"
+      "coc-vetur"
+      "coc-vimtex"
+      "coc-wxml"
+      "coc-yaml"
+      "coc-yank"
+    ];
+    nodePackage2VimPackage = name: buildVimPluginFrom2Nix {
+      pname = name;
+      inherit (nodePackages.${name}) version meta;
+      src = "${nodePackages.${name}}/lib/node_modules/${name}";
+    };
+  in
+  lib.genAttrs nodePackageNames nodePackage2VimPackage
+)
diff --git a/pkgs/misc/vim-plugins/update.py b/pkgs/misc/vim-plugins/update.py
index 84d57133d22..b9bab293a79 100755
--- a/pkgs/misc/vim-plugins/update.py
+++ b/pkgs/misc/vim-plugins/update.py
@@ -40,7 +40,6 @@ 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/
@@ -71,6 +70,12 @@ def retry(ExceptionToCheck: Any, tries: int = 4, delay: float = 3, backoff: floa
 
     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__(
@@ -91,9 +96,8 @@ class Repo:
     @retry(urllib.error.URLError, tries=4, delay=3, backoff=2)
     def has_submodules(self) -> bool:
         try:
-            urllib.request.urlopen(
-                self.url(f"blob/{self.branch}/.gitmodules"), timeout=10
-            ).close()
+            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
@@ -104,7 +108,8 @@ class Repo:
     @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")
-        with urllib.request.urlopen(commit_url, timeout=10) as req:
+        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)
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index 7b34ff4bd8b..e2a4b090aaa 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -11,9 +11,11 @@ alx741/vim-stylishask
 amiorin/ctrlp-z
 andrep/vimacs
 andreshazard/vim-logreview
+AndrewRadev/sideways.vim
 AndrewRadev/splitjoin.vim
 andsild/peskcolor.vim
 andviro/flake8-vim
+andymass/vim-matchup
 andys8/vim-elm-syntax
 antoinemadec/coc-fzf
 ap/vim-css-color
@@ -52,11 +54,11 @@ chriskempson/base16-vim
 christoomey/vim-sort-motion
 christoomey/vim-tmux-navigator
 ckarnell/antonys-macro-repeater
-ckipp01/coc-metals
 cloudhead/neovim-fuzzy
 CoatiSoftware/vim-sourcetrail
 cocopon/iceberg.vim
 cohama/lexima.vim
+crusoexia/vim-monokai
 ctjhoa/spacevim
 ctrlpvim/ctrlp.vim
 dag/vim-fish
@@ -80,7 +82,8 @@ dhruvasagar/vim-table-mode
 digitaltoad/vim-pug
 direnv/direnv.vim
 dleonard0/pony-vim-syntax
-dracula/vim
+dmix/elvish.vim
+dracula/vim as dracula-vim
 drewtempelmeyer/palenight.vim
 drmingdrmer/xptemplate
 dylanaraps/wal.vim
@@ -98,9 +101,10 @@ enomsg/vim-haskellConcealPlus
 ensime/ensime-vim
 ervandew/supertab
 esneider/YUNOcommit.vim
-fannheyward/coc-rust-analyzer
+fannheyward/coc-markdownlint
 farmergreg/vim-lastplace
 fatih/vim-go
+fcpg/vim-osc52
 FelikZ/ctrlp-py-matcher
 fenetikm/falcon
 fisadev/vim-isort
@@ -129,22 +133,30 @@ guns/vim-clojure-highlight
 guns/vim-clojure-static
 guns/vim-sexp
 guns/xterm-color-table.vim
+hashivim/vim-packer
 hashivim/vim-terraform
+hashivim/vim-vagrant
 haya14busa/incsearch-easymotion.vim
 haya14busa/incsearch.vim
 haya14busa/is.vim
 haya14busa/vim-asterisk
+haya14busa/vim-poweryank
 heavenshell/vim-jsdoc
 hecal3/vim-leader-guide
 henrik/vim-indexed-search
 HerringtonDarkholme/yats.vim
 honza/vim-snippets
 hotwatermorning/auto-git-diff
+hrsh7th/vim-vsnip
+hrsh7th/vim-vsnip-integ
 hsanson/vim-android
 hsitz/VimOrganizer
 iamcco/coc-spell-checker
+iamcco/coc-vimlsp
 ianks/vim-tsx
+idanarye/vim-merginal
 idris-hackers/idris-vim
+ihsanturk/neuron.vim
 Inazuma110/deoplete-greek
 inkarkat/vim-SyntaxRange
 int3/vim-extradite
@@ -165,7 +177,7 @@ jeetsukumaran/vim-indentwise
 jeffkreeftmeijer/neovim-sensible
 jeffkreeftmeijer/vim-numbertoggle
 jelera/vim-javascript-syntax
-jgdavey/tslime.vim
+jgdavey/tslime.vim@main
 jhradilek/vim-docbk
 jhradilek/vim-snippets as vim-docbk-snippets
 jiangmiao/auto-pairs
@@ -176,7 +188,6 @@ jnurmine/zenburn
 jonbri/vim-colorstepper
 jonsmithers/vim-html-template-literals
 joonty/vim-xdebug
-josa42/coc-go
 joshdick/onedark.vim
 jpalardy/vim-slime
 jparise/vim-graphql
@@ -186,12 +197,14 @@ jsfaint/gen_tags.vim
 JuliaEditorSupport/deoplete-julia
 JuliaEditorSupport/julia-vim
 Julian/vim-textobj-variable-segment
+juliosueiras/vim-terraform-completion
 junegunn/fzf.vim
 junegunn/goyo.vim
 junegunn/gv.vim
 junegunn/limelight.vim
 junegunn/seoul256.vim
 junegunn/vader.vim
+junegunn/vim-after-object
 junegunn/vim-easy-align
 junegunn/vim-github-dashboard
 junegunn/vim-peekaboo
@@ -221,6 +234,8 @@ konfekt/fastfold
 kristijanhusak/defx-git
 kristijanhusak/defx-icons
 kristijanhusak/deoplete-phpactor
+kristijanhusak/vim-carbon-now-sh
+kristijanhusak/vim-dirvish-git
 kristijanhusak/vim-hybrid-material
 kshenoy/vim-signature
 lambdalisue/vim-gista
@@ -234,10 +249,13 @@ lepture/vim-jinja
 lervag/vimtex
 lfilho/cosco.vim
 lifepillar/vim-mucomplete
+lighttiger2505/deoplete-vim-lsp
 lilydjwg/colorizer
+liuchengxu/vim-clap
 liuchengxu/vim-which-key
 liuchengxu/vista.vim
 LnL7/vim-nix
+lotabout/skim.vim
 LucHermitte/lh-brackets
 LucHermitte/lh-vim-lib
 ludovicchabant/vim-gutentags
@@ -280,6 +298,7 @@ matze/vim-move
 maximbaz/lightline-ale
 MaxMEllon/vim-jsx-pretty
 mbbill/undotree
+mboughaba/i3config.vim
 megaannum/forms
 megaannum/self
 mengelbrecht/lightline-bufferline
@@ -312,48 +331,28 @@ nbouscal/vim-stylish-haskell
 ncm2/float-preview.nvim
 ncm2/ncm2
 ncm2/ncm2-bufword
+ncm2/ncm2-cssomni
+ncm2/ncm2-github
+ncm2/ncm2-html-subscope
 ncm2/ncm2-jedi
+ncm2/ncm2-markdown-subscope
+ncm2/ncm2-neoinclude
+ncm2/ncm2-neosnippet
 ncm2/ncm2-path
+ncm2/ncm2-syntax
+ncm2/ncm2-tagprefix
 ncm2/ncm2-tmux
 ncm2/ncm2-ultisnips
+ncm2/ncm2-vim
 ndmitchell/ghcid
-neoclide/coc-css
 neoclide/coc-denite
-neoclide/coc-emmet
-neoclide/coc-eslint
-neoclide/coc-git
-neoclide/coc-highlight
-neoclide/coc-html
-neoclide/coc-imselect
-neoclide/coc-java
-neoclide/coc-jest
-neoclide/coc-json
-neoclide/coc-lists
 neoclide/coc-neco
-neoclide/coc-pairs
-neoclide/coc-prettier
-neoclide/coc-python
-neoclide/coc-r-lsp
-neoclide/coc-rls
-neoclide/coc-smartf
-neoclide/coc-snippets
-neoclide/coc-solargraph
-neoclide/coc-stylelint
-neoclide/coc-tabnine
-neoclide/coc-tslint
-neoclide/coc-tslint-plugin
-neoclide/coc-tsserver
-neoclide/coc-vetur
-neoclide/coc-vimtex
-neoclide/coc-wxml
-neoclide/coc-yaml
-neoclide/coc-yank
 neoclide/coc.nvim@release
 neoclide/denite-extra
 neoclide/denite-git
 neoclide/vim-easygit
 neomake/neomake
-neovim/nvim-lsp
+neovim/nvim-lspconfig
 neovim/nvimdev.nvim
 neovimhaskell/haskell-vim
 neovimhaskell/nvim-hs.vim
@@ -368,11 +367,16 @@ norcalli/nvim-terminal.lua
 ntpeters/vim-better-whitespace
 numirias/semshi
 nvie/vim-flake8
+nvim-lua/completion-nvim
+nvim-lua/diagnostic-nvim
+nvim-treesitter/completion-treesitter
+nvim-treesitter/nvim-treesitter
 octol/vim-cpp-enhanced-highlight
 Olical/conjure
 OrangeT/vim-csharp
 osyo-manga/shabadou.vim
 osyo-manga/vim-anzu
+osyo-manga/vim-over
 osyo-manga/vim-textobj-multiblock
 osyo-manga/vim-watchdogs
 overcache/NeoSolarized
@@ -388,9 +392,12 @@ ponko2/deoplete-fish
 posva/vim-vue
 powerman/vim-plugin-AnsiEsc
 PProvost/vim-ps1
+prabirshrestha/vim-lsp
 preservim/nerdcommenter
 preservim/nerdtree
+psliwka/vim-smoothie
 ptzz/lf.vim
+puremourning/vimspector
 purescript-contrib/purescript-vim
 python-mode/python-mode
 qnighy/lalrpop.vim
@@ -407,11 +414,14 @@ rbgrouleff/bclose.vim
 reedes/vim-pencil
 reedes/vim-wordy
 rhysd/committia.vim
+rhysd/devdocs.vim
 rhysd/git-messenger.vim
+rhysd/vim-clang-format
 rhysd/vim-grammarous
 rhysd/vim-operator-surround
 rodjek/vim-puppet
 romainl/vim-cool
+roman/golden-ratio
 ron89/thesaurus_query.vim
 roxma/nvim-cm-racer
 roxma/nvim-completion-manager
@@ -456,6 +466,7 @@ sjl/gundo.vim
 sjl/splice.vim
 sk1418/last256
 slashmili/alchemist.vim
+sodapopcan/vim-twiggy
 solarnz/arcanist.vim
 sonph/onehalf
 stefandtw/quickfix-reflector.vim
@@ -503,6 +514,8 @@ tpope/vim-liquid
 tpope/vim-obsession
 tpope/vim-pathogen
 tpope/vim-projectionist
+tpope/vim-ragtag
+tpope/vim-rails
 tpope/vim-repeat
 tpope/vim-rhubarb
 tpope/vim-rsi
@@ -573,11 +586,13 @@ vimwiki/vimwiki
 vito-c/jq.vim
 vmchale/ats-vim
 vmchale/dhall-vim
+vn-ki/coc-clap
 voldikss/vim-floaterm
 VundleVim/Vundle.vim
 w0ng/vim-hybrid
 wakatime/vim-wakatime
 wannesm/wmgraphviz.vim
+weirongxu/coc-explorer
 wellle/targets.vim
 wellle/tmux-complete.vim
 will133/vim-dirdiff
@@ -590,5 +605,7 @@ xolox/vim-misc
 xuhdev/vim-latex-live-preview
 ycm-core/YouCompleteMe
 Yggdroot/indentLine
+Yilin-Yang/vim-markbar
+yuki-ycino/ncm2-dictionary
 zah/nim.vim
 ziglang/zig.vim
diff --git a/pkgs/misc/vscode-extensions/cpptools/default.nix b/pkgs/misc/vscode-extensions/cpptools/default.nix
index 84919e07c5e..8c46b242ef4 100644
--- a/pkgs/misc/vscode-extensions/cpptools/default.nix
+++ b/pkgs/misc/vscode-extensions/cpptools/default.nix
@@ -50,19 +50,15 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
   mktplcRef = {
     name = "cpptools";
     publisher = "ms-vscode";
-    version = "0.27.1";
+    version = "0.29.0";
   };
 
   vsix = fetchurl {
+    name = "${mktplcRef.publisher}-${mktplcRef.name}.zip";
     url = "https://github.com/microsoft/vscode-cpptools/releases/download/${mktplcRef.version}/cpptools-linux.vsix";
-    sha256 = "1if43zis2cy32c6y1zsh0ih0y2kpdag0flkb795b3m5iwm38rjsq";
+    sha256 = "0qw21wd6hfqrmvyvr2ggydcfsk1hralj5x3s8hhwqyspb7szggxi";
   };
 
-  unpackPhase = ''
-    unzip $src
-    cd extension
-  '';
-
   buildInputs = [
     jq
   ];
diff --git a/pkgs/misc/vscode-extensions/default.nix b/pkgs/misc/vscode-extensions/default.nix
index cb145ade054..04eabef9ec3 100644
--- a/pkgs/misc/vscode-extensions/default.nix
+++ b/pkgs/misc/vscode-extensions/default.nix
@@ -76,8 +76,8 @@ in
     mktplcRef = {
       name = "language-haskell";
       publisher = "justusadam";
-      version = "3.0.3";
-      sha256 = "1sg4g8h1gww4y67zix5f33v2gf121k2fcm6l1m7lygpkn40a8dsj";
+      version = "3.2.1";
+      sha256 = "0lxp8xz17ciy93nj4lzxqvz71vw1zdyamrnh2n792yair8890rr6";
     };
     meta = {
       license = stdenv.lib.licenses.bsd3;
@@ -190,6 +190,19 @@ in
     };
   };
 
+  xaver.clang-format = buildVscodeMarketplaceExtension {
+    mktplcRef = {
+      name = "clang-format";
+      publisher = "xaver";
+      version = "1.9.0";
+      sha256 = "abd0ef9176eff864f278c548c944032b8f4d8ec97d9ac6e7383d60c92e258c2f";
+    };
+    meta = with stdenv.lib; {
+      license = licenses.mit;
+      maintainers = [ maintainers.zeratax ];
+    };
+  };
+
   llvm-org.lldb-vscode = llvmPackages_8.lldb;
 
   WakaTime.vscode-wakatime = callPackage ./wakatime {};
diff --git a/pkgs/misc/vscode-extensions/python/default.nix b/pkgs/misc/vscode-extensions/python/default.nix
index 8f5a92e4722..7dea6794521 100644
--- a/pkgs/misc/vscode-extensions/python/default.nix
+++ b/pkgs/misc/vscode-extensions/python/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, vscode-utils, extractNuGet
 , icu, curl, openssl, lttng-ust, autoPatchelfHook
-, python3
+, python3, musl
 , pythonUseFixed ? false       # When `true`, the python default setting will be fixed to specified.
                                # Use version from `PATH` for default setting otherwise.
                                # Defaults to `false` as we expect it to be project specific most of the time.
@@ -37,12 +37,17 @@ let
       sha256 = languageServerSha256;
     };
   };
-in vscode-utils.buildVscodeMarketplaceExtension {
+in vscode-utils.buildVscodeMarketplaceExtension rec {
   mktplcRef = {
     name = "python";
     publisher = "ms-python";
-    version = "2020.3.71659";
-    sha256 = "1smhnhkfchmljz8aj1br70023ysgd2hj6pm1ncn1jxphf89qi1ja";
+    version = "2020.7.96456";
+  };
+
+  vsix = fetchurl {
+    name = "${mktplcRef.publisher}-${mktplcRef.name}.zip";
+    url = "https://github.com/microsoft/vscode-python/releases/download/${mktplcRef.version}/ms-python-release.vsix";
+    sha256 = "0bk2wnbjcraxilzxszl00r799xf3apkfyzpy88xxv87j7787dsm8";
   };
 
   buildInputs = [
@@ -50,6 +55,7 @@ in vscode-utils.buildVscodeMarketplaceExtension {
     curl
     openssl
     lttng-ust
+    musl
   ];
 
   nativeBuildInputs = [
@@ -81,6 +87,7 @@ in vscode-utils.buildVscodeMarketplaceExtension {
 
   meta = with lib; {
     license = licenses.mit;
+    platforms = [ "x86_64-linux" ];
     maintainers = [ maintainers.jraygauthier ];
   };
 }
diff --git a/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json b/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json
index f6414e643cc..ac2da521c22 100644
--- a/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json
+++ b/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json
@@ -4,23 +4,23 @@
   "dependencies": {
     "node-fetch": "^2.6.0",
     "vscode-languageclient": "7.0.0-next.1",
-    "@rollup/plugin-commonjs": "^12.0.0",
-    "@rollup/plugin-node-resolve": "^8.0.0",
-    "@types/glob": "^7.1.1",
+    "@rollup/plugin-commonjs": "^13.0.0",
+    "@rollup/plugin-node-resolve": "^8.1.0",
+    "@types/glob": "^7.1.2",
     "@types/mocha": "^7.0.2",
-    "@types/node": "^14.0.5",
+    "@types/node": "~12.7.0",
     "@types/node-fetch": "^2.5.7",
-    "@types/vscode": "1.45.0",
-    "@typescript-eslint/eslint-plugin": "^3.0.0",
-    "@typescript-eslint/parser": "^3.0.0",
-    "eslint": "^7.0.0",
+    "@types/vscode": "^1.44.1",
+    "@typescript-eslint/eslint-plugin": "^3.4.0",
+    "@typescript-eslint/parser": "^3.4.0",
+    "eslint": "^7.3.1",
     "glob": "^7.1.6",
-    "mocha": "^7.1.2",
-    "rollup": "^2.10.7",
+    "mocha": "^8.0.1",
+    "rollup": "^2.18.1",
     "tslib": "^2.0.0",
-    "typescript": "^3.9.3",
+    "typescript": "^3.9.5",
     "typescript-formatter": "^7.2.2",
     "vsce": "^1.75.0",
-    "vscode-test": "^1.3.0"
+    "vscode-test": "^1.4.0"
   }
 }
diff --git a/pkgs/misc/vscode-extensions/updateSettings.nix b/pkgs/misc/vscode-extensions/updateSettings.nix
index a033229c589..c7fecf08072 100644
--- a/pkgs/misc/vscode-extensions/updateSettings.nix
+++ b/pkgs/misc/vscode-extensions/updateSettings.nix
@@ -16,7 +16,7 @@ let
 
   updateVSCodeSettingsCmd = ''
   (
-    echo 'updateSettings.nix: Updating ${vscodeSettingsFile}...' 
+    echo 'updateSettings.nix: Updating ${vscodeSettingsFile}...'
     oldSettings=$(cat ${vscodeSettingsFile})
     echo $oldSettings' ${builtins.toJSON settings}' | ${jq}/bin/jq -s add > ${vscodeSettingsFile}
   )'';
@@ -25,10 +25,10 @@ let
   fileName = builtins.baseNameOf vscodeSettingsFile;
   symlinkFromUserSettingCmd = lib.optionalString symlinkFromUserSetting
     '' && mkdir -p "${userSettingsFolder}" && ln -sfv "$(pwd)/${vscodeSettingsFile}" "${userSettingsFolder}/" '';
-in 
+in
 
   writeShellScriptBin ''vscodeNixUpdate-${lib.removeSuffix ".json" (fileName)}''
-  (lib.optionalString (settings != {}) 
+  (lib.optionalString (settings != {})
     (if createIfDoesNotExists then ''
       [ ! -f "${vscodeSettingsFile}" ] && ${createEmptySettingsCmd}
       ${updateVSCodeSettingsCmd} ${symlinkFromUserSettingCmd}
diff --git a/pkgs/misc/vscode-extensions/vscodeEnv.nix b/pkgs/misc/vscode-extensions/vscodeEnv.nix
index 6e4bb7b3ea8..7c58a4bdfb3 100644
--- a/pkgs/misc/vscode-extensions/vscodeEnv.nix
+++ b/pkgs/misc/vscode-extensions/vscodeEnv.nix
@@ -21,13 +21,13 @@
 , user-data-dir ? ''"''${TMP}''${name}"/vscode-data-dir''
 # if file exists will use it and import the extensions in it into this dervation else will use empty extensions list
 # this file will be created/updated by vscodeExts2nix when vscode exists
-, mutableExtensionsFile 
+, mutableExtensionsFile
 }:
-let  
+let
   mutableExtensionsFilePath = toString mutableExtensionsFile;
-  mutableExtensions = if builtins.pathExists mutableExtensionsFile 
+  mutableExtensions = if builtins.pathExists mutableExtensionsFile
                       then import mutableExtensionsFilePath else [];
-  vscodeWithConfiguration = import ./vscodeWithConfiguration.nix { 
+  vscodeWithConfiguration = import ./vscodeWithConfiguration.nix {
     inherit lib writeShellScriptBin extensionsFromVscodeMarketplace;
     vscodeDefault = vscode;
   }
@@ -63,19 +63,19 @@ let
     symlinkFromUserSetting = (user-data-dir != "");
   };
 
-  vscodeExts2nix = import ./vscodeExts2nix.nix { 
+  vscodeExts2nix = import ./vscodeExts2nix.nix {
     inherit lib writeShellScriptBin;
     vscodeDefault = vscodeWithConfiguration;
   }
   {
     extensionsToIgnore = nixExtensions;
-    extensions = mutableExtensions; 
+    extensions = mutableExtensions;
   };
   code = writeShellScriptBin "code" ''
     ${updateSettingsCmd}/bin/vscodeNixUpdate-settings
     ${updateLaunchCmd}/bin/vscodeNixUpdate-launch
     ${updateKeybindingsCmd}/bin/vscodeNixUpdate-keybindings
-    ${vscodeWithConfiguration}/bin/code --wait "$@" 
+    ${vscodeWithConfiguration}/bin/code --wait "$@"
     echo 'running vscodeExts2nix to update ${mutableExtensionsFilePath}...'
     ${vscodeExts2nix}/bin/vscodeExts2nix > ${mutableExtensionsFilePath}
   '';
diff --git a/pkgs/misc/vscode-extensions/vscodeEnvTest.nix b/pkgs/misc/vscode-extensions/vscodeEnvTest.nix
index d7e586cab6e..19a9edbf1af 100644
--- a/pkgs/misc/vscode-extensions/vscodeEnvTest.nix
+++ b/pkgs/misc/vscode-extensions/vscodeEnvTest.nix
@@ -1,5 +1,5 @@
 with import <nixpkgs>{};
-callPackage (import ./vscodeEnv.nix) { 
+callPackage (import ./vscodeEnv.nix) {
   extensionsFromVscodeMarketplace = vscode-utils.extensionsFromVscodeMarketplace;
   vscodeDefault = vscode;
 } {
@@ -9,4 +9,3 @@ callPackage (import ./vscodeEnv.nix) {
     t = "test";
   };
 }
-
diff --git a/pkgs/misc/vscode-extensions/vscodeExts2nix.nix b/pkgs/misc/vscode-extensions/vscodeExts2nix.nix
index afd176b4c5e..58ad5866c93 100644
--- a/pkgs/misc/vscode-extensions/vscodeExts2nix.nix
+++ b/pkgs/misc/vscode-extensions/vscodeExts2nix.nix
@@ -1,24 +1,24 @@
-# based on the passed vscode will stdout a nix expression with the installed vscode extensions 
+# based on the passed vscode will stdout a nix expression with the installed vscode extensions
 { lib
 , vscodeDefault
 , writeShellScriptBin
 }:
 
 ##User input
-{ vscode             ? vscodeDefault 
+{ vscode             ? vscodeDefault
 , extensionsToIgnore ? []
 # will use those extensions to get sha256 if still exists when executed.
-, extensions         ? [] 
+, extensions         ? []
 }:
-let 
+let
   mktplcExtRefToFetchArgs = import ./mktplcExtRefToFetchArgs.nix;
 in
 writeShellScriptBin "vscodeExts2nix" ''
-  echo '[' 
+  echo '['
 
   for line in $(${vscode}/bin/code --list-extensions --show-versions \
     ${lib.optionalString (extensionsToIgnore != []) ''
-      | grep -v -i '^\(${lib.concatMapStringsSep "\\|" (e : ''${e.publisher}.${e.name}'') extensionsToIgnore}\)' 
+      | grep -v -i '^\(${lib.concatMapStringsSep "\\|" (e : ''${e.publisher}.${e.name}'') extensionsToIgnore}\)'
     ''}
   ) ; do
     [[ $line =~ ([^.]*)\.([^@]*)@(.*) ]]
diff --git a/pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix b/pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix
index f15d14c7441..e20c631f8c0 100644
--- a/pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix
+++ b/pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix
@@ -1,22 +1,22 @@
 # wrapper over vscode to control extensions per project (extensions folder will be created in execution path)
-{ lib                             
-, writeShellScriptBin             
-, extensionsFromVscodeMarketplace 
+{ lib
+, writeShellScriptBin
+, extensionsFromVscodeMarketplace
 , vscodeDefault
 }:
 ## User input
-{ vscode ? vscodeDefault                          
+{ vscode ? vscodeDefault
 # extensions to be symlinked into the project's extensions folder
-, nixExtensions        ? []                   
+, nixExtensions        ? []
 # extensions to be copied into the project's extensions folder
-, mutableExtensions    ? []        
-, vscodeExtsFolderName ? ".vscode-exts"        
+, mutableExtensions    ? []
+, vscodeExtsFolderName ? ".vscode-exts"
 , user-data-dir ? ''"''${TMP}vscodeWithConfiguration/vscode-data-dir"''
 }:
-let 
+let
   nixExtsDrvs = extensionsFromVscodeMarketplace nixExtensions;
   mutExtsDrvs = extensionsFromVscodeMarketplace mutableExtensions;
-  mutableExtsPaths = lib.forEach mutExtsDrvs ( e: 
+  mutableExtsPaths = lib.forEach mutExtsDrvs ( e:
   {
     origin = ''${e}/share/vscode/extensions/${e.vscodeExtUniqueId}'';
     target = ''${vscodeExtsFolderName}/${e.vscodeExtUniqueId}-${(lib.findSingle (ext: ''${ext.publisher}.${ext.name}'' == e.vscodeExtUniqueId) "" "m" mutableExtensions ).version}'';
@@ -39,16 +39,16 @@ let
         cp -a ${ePath.origin} ${ePath.target}
         chmod -R u+rwx ${ePath.target}
       fi
-      '') mutableExtsPaths} 
+      '') mutableExtsPaths}
   '';
 in
   writeShellScriptBin "code" ''
-    if ! [[ "$@" =~ "--list-extension" ]]; then 
-      mkdir -p "${vscodeExtsFolderName}" 
+    if ! [[ "$@" =~ "--list-extension" ]]; then
+      mkdir -p "${vscodeExtsFolderName}"
       ${rmExtensions}
       ${cpExtensions}
     fi
-    ${vscode}/bin/code --extensions-dir "${vscodeExtsFolderName}" ${ 
+    ${vscode}/bin/code --extensions-dir "${vscodeExtsFolderName}" ${
       lib.optionalString (user-data-dir != "") ''--user-data-dir ${user-data-dir }''
       } "$@"
   ''
diff --git a/pkgs/os-specific/darwin/discrete-scroll/default.nix b/pkgs/os-specific/darwin/discrete-scroll/default.nix
new file mode 100644
index 00000000000..e72402b7793
--- /dev/null
+++ b/pkgs/os-specific/darwin/discrete-scroll/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchFromGitHub, Cocoa }:
+
+## after launching for the first time, grant access for parent application (e.g. Terminal.app)
+## from 'system preferences >> security & privacy >> accessibility'
+## and then launch again
+
+stdenv.mkDerivation rec {
+  pname = "discrete-scroll";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "emreyolcu";
+    repo = "discrete-scroll";
+    rev = "v${version}";
+    sha256 = "0aqkp4kkwjlkll91xbqwf8asjww8ylsdgqvdk8d06bwdvg2cgvhg";
+  };
+
+  buildInputs = [ Cocoa ];
+
+  buildPhase = ''
+    cc -std=c99 -O3 -Wall -framework Cocoa -o dc DiscreteScroll/main.m
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ./dc $out/bin/discretescroll
+  '';
+
+  meta = with lib; {
+    description = "Fix for OS X's scroll wheel problem";
+    homepage = "https://github.com/emreyolcu/discrete-scroll";
+    platforms = platforms.darwin;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/os-specific/darwin/ios-deploy/default.nix b/pkgs/os-specific/darwin/ios-deploy/default.nix
new file mode 100644
index 00000000000..6567093700d
--- /dev/null
+++ b/pkgs/os-specific/darwin/ios-deploy/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenvNoCC, rsync, fetchFromGitHub }:
+
+# Note this is impure, using system XCode to build ios-deploy. We
+# should have a special flag for users to enable this.
+
+let version = "1.11.0";
+in stdenvNoCC.mkDerivation {
+  pname = "ios-deploy";
+  inherit version;
+  src = fetchFromGitHub {
+    owner = "ios-control";
+    repo = "ios-deploy";
+    rev = version;
+    sha256 = "0hqwikdrcnslx4kkw9b0n7n443gzn2gbrw15pp2fnkcw5s0698sc";
+  };
+  nativeBuildInputs = [ rsync ];
+  buildPhase = ''
+    LD=$CC
+    tmp=$(mktemp -d)
+    ln -s /usr/bin/xcodebuild $tmp
+    export PATH="$PATH:$tmp"
+    xcodebuild -configuration Release SYMROOT=build OBJROOT=$tmp
+  '';
+  checkPhase = ''
+    xcodebuild test -scheme ios-deploy-tests -configuration Release SYMROOT=build
+  '';
+  installPhase = ''
+    install -D build/Release/ios-deploy $out/bin/ios-deploy
+  '';
+  meta = {
+    platforms = lib.platforms.darwin;
+    description = "Install and debug iOS apps from the command line. Designed to work on un-jailbroken devices";
+    license = lib.licenses.gpl3;
+  };
+}
diff --git a/pkgs/os-specific/darwin/libtapi/default.nix b/pkgs/os-specific/darwin/libtapi/default.nix
index 983499ccdbc..1f1e00d13f9 100644
--- a/pkgs/os-specific/darwin/libtapi/default.nix
+++ b/pkgs/os-specific/darwin/libtapi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, python3, clang_6 }:
+{ lib, stdenv, fetchFromGitHub, cmake, python3, ncurses }:
 
 stdenv.mkDerivation {
   name = "libtapi-1000.10.8";
@@ -9,22 +9,36 @@ stdenv.mkDerivation {
     sha256 = "1zb10p6xkls8x7wsdwgy9c0v16z97rfkgidii9ffq5rfczgvrhjh";
   };
 
+  sourceRoot = "source/src/llvm";
+
   nativeBuildInputs = [ cmake python3 ];
-  buildInputs = [ clang_6.cc ];
 
+  # ncurses is required here to avoid a reference to bootstrap-tools, which is
+  # not allowed for the stdenv.
+  buildInputs = [ ncurses ];
+
+  cmakeFlags = [ "-DLLVM_INCLUDE_TESTS=OFF" ];
+
+  # fixes: fatal error: 'clang/Basic/Diagnostic.h' file not found
+  # adapted from upstream
+  # https://github.com/tpoechtrager/apple-libtapi/blob/3cb307764cc5f1856c8a23bbdf3eb49dfc6bea48/build.sh#L58-L60
   preConfigure = ''
-    cd src/llvm
+    INCLUDE_FIX="-I $PWD/projects/clang/include"
+    INCLUDE_FIX+=" -I $PWD/build/projects/clang/include"
+
+    cmakeFlagsArray+=(-DCMAKE_CXX_FLAGS="$INCLUDE_FIX")
   '';
 
-  cmakeFlags = [ "-DLLVM_INCLUDE_TESTS=OFF" ];
+  buildFlags = [ "clangBasic" "libtapi" ];
 
-  buildFlags = [ "libtapi" ];
+  installTargets = [ "install-libtapi" "install-tapi-headers" ];
 
-  installTargets = [ "install-libtapi" "install-tapi-headers"];
+  postInstall = ''
+    install_name_tool -id $out/lib/libtapi.dylib $out/lib/libtapi.dylib
+  '';
 
   meta = with lib; {
     license = licenses.apsl20;
     maintainers = with maintainers; [ matthewbauer ];
   };
-
 }
diff --git a/pkgs/os-specific/darwin/smimesign/default.nix b/pkgs/os-specific/darwin/smimesign/default.nix
index 39582ff6dcc..6b7e3889161 100644
--- a/pkgs/os-specific/darwin/smimesign/default.nix
+++ b/pkgs/os-specific/darwin/smimesign/default.nix
@@ -2,25 +2,24 @@
 
 buildGoModule rec {
   pname = "smimesign";
-  version = "v0.0.13";
+  version = "0.1.0";
 
   src = fetchFromGitHub {
-    owner  = "github";
-    repo   = "smimesign";
-    rev    = version;
-    sha256 = "0higcg2rdz02c0n50vigg7w7bxc7wlmg1x2ygrbh3iwms5lc74vi";
+    owner = "github";
+    repo = "smimesign";
+    rev = "v${version}";
+    sha256 = "12f8vprp4v78l9ifrlql0mvpyw5qa8nlrh5ajq5js8wljzpx7wsv";
   };
 
-  vendorSha256 = "00000000000000000hlvwysx045nbw0xr5nngh7zj1wcqxhhm206";
+  vendorSha256 = "1cldxykm9qj5rvyfafam45y5xj4f19700s2f9w7ndhxgfp9vahvz";
 
-  buildFlagsArray = "-ldflags=-X main.versionString=${version}";
+  buildFlagsArray = "-ldflags=-X main.versionString=v${version}";
 
   meta = with lib; {
-    description = "An S/MIME signing utility for macOS and Windows that is compatible with Git.";
-
-    homepage    = "https://github.com/github/smimesign";
-    license     = licenses.mit;
-    platforms   = platforms.darwin;
+    description = "An S/MIME signing utility for macOS and Windows that is compatible with Git";
+    homepage = "https://github.com/github/smimesign";
+    license = licenses.mit;
+    platforms = platforms.darwin ++ platforms.windows;
     maintainers = [ maintainers.enorris ];
   };
 }
diff --git a/pkgs/os-specific/darwin/spacebar/default.nix b/pkgs/os-specific/darwin/spacebar/default.nix
index 9cbd6e62c7a..7af7e408223 100644
--- a/pkgs/os-specific/darwin/spacebar/default.nix
+++ b/pkgs/os-specific/darwin/spacebar/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "spacebar";
-  version = "0.5.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
-    owner = "somdoron";
+    owner = "cmacrae";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0v8v4xsc67qpzm859r93ggq7rr7hmaj6dahdlg6g3ppj81cq0khz";
+    sha256 = "1x0wzm380nv81j26jqqg4y4dwanydnpdsca41ndw6xyj9zlv73f7";
   };
 
   buildInputs = [ Carbon Cocoa ScriptingBridge ];
@@ -21,8 +21,8 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "A status bar for yabai tiling window management";
-    homepage = "https://github.com/somdoron/spacebar";
+    description = "A minimal status bar for macOS";
+    homepage = "https://github.com/cmacrae/spacebar";
     platforms = platforms.darwin;
     maintainers = [ maintainers.cmacrae ];
     license = licenses.mit;
diff --git a/pkgs/os-specific/darwin/yabai/default.nix b/pkgs/os-specific/darwin/yabai/default.nix
index 448e6865e18..742a3948707 100644
--- a/pkgs/os-specific/darwin/yabai/default.nix
+++ b/pkgs/os-specific/darwin/yabai/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yabai";
-  version = "3.2.1";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "koekeishiya";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11rsi6z2z7ynfqs1xq3bvf187k5xnwm0d45a8ai9hrqdsf3f1j19";
+    sha256 = "0y4idivqkmi3xsc8yjdzh1b15qzgyqlw7ifs26v3dc91lkjhfc4x";
   };
 
   buildInputs = [ Carbon Cocoa ScriptingBridge xxd ];
diff --git a/pkgs/os-specific/linux/apparmor/default.nix b/pkgs/os-specific/linux/apparmor/default.nix
index afb6799fbaf..0e10add5561 100644
--- a/pkgs/os-specific/linux/apparmor/default.nix
+++ b/pkgs/os-specific/linux/apparmor/default.nix
@@ -30,7 +30,18 @@ let
     sha256 = "03nislxccnbxld89giak2s8xa4mdbwscfxbdwhmw5qpvgz08dgwh";
   };
 
+  # See <https://gitlab.com/apparmor/apparmor/-/issues/74> This and the
+  # accompanying application in prePatchCommon should be removed in 2.13.5
+  gnumake43Patch = fetchpatch {
+    url = "https://gitlab.com/apparmor/apparmor/-/merge_requests/465.patch";
+    name = "2-23-fix-build-with-make-4.3.patch";
+    sha256 = "0xw028iqp69j9mxv0kbwraplgkj5i5djdlgf0anpkc5cdbsf96r9";
+  };
+
   prePatchCommon = ''
+    patch -p1 < ${gnumake43Patch}
+    chmod a+x ./common/list_capabilities.sh ./common/list_af_names.sh
+    patchShebangs ./common/list_capabilities.sh ./common/list_af_names.sh
     substituteInPlace ./common/Make.rules --replace "/usr/bin/pod2man" "${buildPackages.perl}/bin/pod2man"
     substituteInPlace ./common/Make.rules --replace "/usr/bin/pod2html" "${buildPackages.perl}/bin/pod2html"
     substituteInPlace ./common/Make.rules --replace "/usr/include/linux/capability.h" "${linuxHeaders}/include/linux/capability.h"
@@ -119,7 +130,11 @@ let
       libapparmor.python
     ];
 
-    prePatch = prePatchCommon;
+    prePatch = prePatchCommon + ''
+      substituteInPlace ./utils/apparmor/easyprof.py --replace "/sbin/apparmor_parser" "${apparmor-parser}/bin/apparmor_parser"
+      substituteInPlace ./utils/apparmor/aa.py --replace "/sbin/apparmor_parser" "${apparmor-parser}/bin/apparmor_parser"
+      substituteInPlace ./utils/logprof.conf --replace "/sbin/apparmor_parser" "${apparmor-parser}/bin/apparmor_parser"
+    '';
     inherit patches;
     postPatch = "cd ./utils";
     makeFlags = [ "LANGS=" ];
diff --git a/pkgs/os-specific/linux/bcc/default.nix b/pkgs/os-specific/linux/bcc/default.nix
index 98de3ed1b11..de02ffb30a3 100644
--- a/pkgs/os-specific/linux/bcc/default.nix
+++ b/pkgs/os-specific/linux/bcc/default.nix
@@ -1,15 +1,16 @@
-{ stdenv, fetchurl, makeWrapper, cmake, llvmPackages, kernel
+{ stdenv, fetchurl, fetchpatch
+, makeWrapper, cmake, llvmPackages, kernel
 , flex, bison, elfutils, python, luajit, netperf, iperf, libelf
 , systemtap, bash
 }:
 
 python.pkgs.buildPythonApplication rec {
   pname = "bcc";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchurl {
     url = "https://github.com/iovisor/bcc/releases/download/v${version}/bcc-src-with-submodule.tar.gz";
-    sha256 = "1k00xbhdzdvqp4hfxpgg34bbhnx597jjhpg1x6dz2w80r7xzsj28";
+    sha256 = "sha256-ekVRyugpZOU1nr0N9kWCSoJTmtD2qGsn/DmWgK7XZ/c=";
   };
   format = "other";
 
@@ -23,6 +24,12 @@ python.pkgs.buildPythonApplication rec {
     # This is needed until we fix
     # https://github.com/NixOS/nixpkgs/issues/40427
     ./fix-deadlock-detector-import.patch
+
+    # This is already upstream; remove it on the next release
+    (fetchpatch {
+      url = "https://github.com/iovisor/bcc/commit/60de17161fe7f44b534a8da343edbad2427220e3.patch";
+      sha256 = "0pd5b4vgpdxbsrjwrw2kmn4l9hpj0rwdm3hvwvk7dsr3raz7w4b3";
+    })
   ];
 
   propagatedBuildInputs = [ python.pkgs.netaddr ];
diff --git a/pkgs/os-specific/linux/bpftrace/default.nix b/pkgs/os-specific/linux/bpftrace/default.nix
index 0c360e60b7e..fc7c8ecba2d 100644
--- a/pkgs/os-specific/linux/bpftrace/default.nix
+++ b/pkgs/os-specific/linux/bpftrace/default.nix
@@ -1,17 +1,18 @@
 { stdenv, fetchFromGitHub
 , cmake, pkgconfig, flex, bison
-, llvmPackages, kernel, elfutils, libelf, bcc
+, llvmPackages, kernel, elfutils
+, libelf, libbfd, libbpf, libopcodes, bcc
 }:
 
 stdenv.mkDerivation rec {
   pname = "bpftrace";
-  version = "0.9.4";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner  = "iovisor";
     repo   = "bpftrace";
     rev    = "refs/tags/v${version}";
-    sha256 = "00fvkq3razwacnpb82zkpv63dgyigbqx3gj6g0ka94nwa74i5i77";
+    sha256 = "02f2r731yj3fdc8341id1ksk4dma9rwm2765n2xgx2ldrrz5823y";
   };
 
   enableParallelBuilding = true;
@@ -19,6 +20,7 @@ stdenv.mkDerivation rec {
   buildInputs = with llvmPackages;
     [ llvm clang-unwrapped
       kernel elfutils libelf bcc
+      libbpf libbfd libopcodes
     ];
 
   nativeBuildInputs = [ cmake pkgconfig flex bison ]
@@ -41,7 +43,7 @@ stdenv.mkDerivation rec {
   #
   cmakeFlags =
     [ "-DBUILD_TESTING=FALSE"
-      "-DLIBBCC_INCLUDE_DIRS=${bcc}/include/bcc"
+      "-DLIBBCC_INCLUDE_DIRS=${bcc}/include"
     ];
 
   # nuke the example/reference output .txt files, for the included tools,
diff --git a/pkgs/os-specific/linux/btfs/default.nix b/pkgs/os-specific/linux/btfs/default.nix
index 146a6615424..b4107e8ba00 100644
--- a/pkgs/os-specific/linux/btfs/default.nix
+++ b/pkgs/os-specific/linux/btfs/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "btfs";
-  version = "2.21";
+  version = "2.22";
 
   src = fetchFromGitHub {
     owner  = "johang";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "0zqkzfc49jl9kn3m0cg7q0156xyzrdl5w4v70p16sqxdly86mwb0";
+    sha256 = "1z88bk1z4sns3jdn56x83mvh06snxg0lr5h4v0c24lzlf5wbdifz";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/os-specific/linux/busybox/0001-Fix-build-with-glibc-2.31.patch b/pkgs/os-specific/linux/busybox/0001-Fix-build-with-glibc-2.31.patch
new file mode 100644
index 00000000000..029333b57e4
--- /dev/null
+++ b/pkgs/os-specific/linux/busybox/0001-Fix-build-with-glibc-2.31.patch
@@ -0,0 +1,71 @@
+From c29b637b55c93214993f40b1a223233d40b8a7d6 Mon Sep 17 00:00:00 2001
+From: Maximilian Bosch <maximilian@mbosch.me>
+Date: Wed, 19 Feb 2020 22:32:28 +0100
+Subject: [PATCH] Fix build with glibc 2.31
+
+This is derived from the corresponding upstream patch[1], however this
+one doesn't apply cleanly on busybox-1.31.1, so I rebased the patch
+locally and added it directly to nixpkgs.
+
+[1] https://git.busybox.net/busybox/patch/?id=d3539be8f27b8cbfdfee460fe08299158f08bcd9
+---
+ coreutils/date.c         | 2 +-
+ libbb/missing_syscalls.c | 8 --------
+ util-linux/rdate.c       | 8 ++++++--
+ 3 files changed, 7 insertions(+), 11 deletions(-)
+
+diff --git a/coreutils/date.c b/coreutils/date.c
+index 3414d38..931b7f9 100644
+--- a/coreutils/date.c
++++ b/coreutils/date.c
+@@ -303,7 +303,7 @@ int date_main(int argc UNUSED_PARAM, char **argv)
+ 		ts.tv_sec = validate_tm_time(date_str, &tm_time);
+ 
+ 		/* if setting time, set it */
+-		if ((opt & OPT_SET) && stime(&ts.tv_sec) < 0) {
++		if ((opt & OPT_SET) && clock_settime(CLOCK_REALTIME, &ts) < 0) {
+ 			bb_perror_msg("can't set date");
+ 		}
+ 	}
+diff --git a/libbb/missing_syscalls.c b/libbb/missing_syscalls.c
+index 87cf59b..dc40d91 100644
+--- a/libbb/missing_syscalls.c
++++ b/libbb/missing_syscalls.c
+@@ -15,14 +15,6 @@ pid_t getsid(pid_t pid)
+ 	return syscall(__NR_getsid, pid);
+ }
+ 
+-int stime(const time_t *t)
+-{
+-	struct timeval tv;
+-	tv.tv_sec = *t;
+-	tv.tv_usec = 0;
+-	return settimeofday(&tv, NULL);
+-}
+-
+ int sethostname(const char *name, size_t len)
+ {
+ 	return syscall(__NR_sethostname, name, len);
+diff --git a/util-linux/rdate.c b/util-linux/rdate.c
+index 70f829e..878375d 100644
+--- a/util-linux/rdate.c
++++ b/util-linux/rdate.c
+@@ -95,9 +95,13 @@ int rdate_main(int argc UNUSED_PARAM, char **argv)
+ 	if (!(flags & 2)) { /* no -p (-s may be present) */
+ 		if (time(NULL) == remote_time)
+ 			bb_error_msg("current time matches remote time");
+-		else
+-			if (stime(&remote_time) < 0)
++		else {
++			struct timespec ts;
++			ts.tv_sec = remote_time;
++			ts.tv_nsec = 0;
++			if (clock_settime(CLOCK_REALTIME, &ts) < 0)
+ 				bb_perror_msg_and_die("can't set time of day");
++		}
+ 	}
+ 
+ 	if (flags != 1) /* not lone -s */
+-- 
+2.25.0
+
diff --git a/pkgs/os-specific/linux/busybox/0001-wget-implement-TLS-verification-with-ENABLE_FEATURE_.patch b/pkgs/os-specific/linux/busybox/0001-wget-implement-TLS-verification-with-ENABLE_FEATURE_.patch
new file mode 100644
index 00000000000..d11cd670d5e
--- /dev/null
+++ b/pkgs/os-specific/linux/busybox/0001-wget-implement-TLS-verification-with-ENABLE_FEATURE_.patch
@@ -0,0 +1,94 @@
+From 45fa3f18adf57ef9d743038743d9c90573aeeb91 Mon Sep 17 00:00:00 2001
+From: Dimitri John Ledkov <xnox@ubuntu.com>
+Date: Tue, 19 May 2020 18:20:39 +0100
+Subject: [PATCH] wget: implement TLS verification with
+ ENABLE_FEATURE_WGET_OPENSSL
+
+When ENABLE_FEATURE_WGET_OPENSSL is enabled, correctly implement TLS
+verification by default. And only ignore verification errors, if
+--no-check-certificate was passed.
+
+Also note, that previously OPENSSL implementation did not implement
+TLS verification, nor printed any warning messages that verification
+was not performed.
+
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1879533
+
+CVE-2018-1000500
+
+Signed-off-by: Dimitri John Ledkov <xnox@ubuntu.com>
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+---
+ networking/wget.c | 20 +++++++++++++++++---
+ 1 file changed, 17 insertions(+), 3 deletions(-)
+
+diff --git a/networking/wget.c b/networking/wget.c
+index f2fc9e215..6a8c08324 100644
+--- a/networking/wget.c
++++ b/networking/wget.c
+@@ -91,6 +91,9 @@
+ //config:	patches, but do want to waste bandwidth expaining how wrong
+ //config:	it is, you will be ignored.
+ //config:
++//config:	FEATURE_WGET_OPENSSL does implement TLS verification
++//config:	using the certificates available to OpenSSL.
++//config:
+ //config:config FEATURE_WGET_OPENSSL
+ //config:	bool "Try to connect to HTTPS using openssl"
+ //config:	default y
+@@ -115,6 +118,9 @@
+ //config:	If openssl can't be executed, internal TLS code will be used
+ //config:	(if you enabled it); if openssl can be executed but fails later,
+ //config:	wget can't detect this, and download will fail.
++//config:
++//config:	By default TLS verification is performed, unless
++//config:	--no-check-certificate option is passed.
+ 
+ //applet:IF_WGET(APPLET(wget, BB_DIR_USR_BIN, BB_SUID_DROP))
+ 
+@@ -124,8 +130,11 @@
+ //usage:	IF_FEATURE_WGET_LONG_OPTIONS(
+ //usage:       "[-c|--continue] [--spider] [-q|--quiet] [-O|--output-document FILE]\n"
+ //usage:       "	[-o|--output-file FILE] [--header 'header: value'] [-Y|--proxy on/off]\n"
++//usage:	IF_FEATURE_WGET_OPENSSL(
++//usage:       "	[--no-check-certificate]\n"
++//usage:	)
+ /* Since we ignore these opts, we don't show them in --help */
+-/* //usage:    "	[--no-check-certificate] [--no-cache] [--passive-ftp] [-t TRIES]" */
++/* //usage:    "	[--no-cache] [--passive-ftp] [-t TRIES]" */
+ /* //usage:    "	[-nv] [-nc] [-nH] [-np]" */
+ //usage:       "	[-P DIR] [-S|--server-response] [-U|--user-agent AGENT]" IF_FEATURE_WGET_TIMEOUT(" [-T SEC]") " URL..."
+ //usage:	)
+@@ -137,7 +146,9 @@
+ //usage:       "Retrieve files via HTTP or FTP\n"
+ //usage:	IF_FEATURE_WGET_LONG_OPTIONS(
+ //usage:     "\n	--spider	Only check URL existence: $? is 0 if exists"
+-///////:     "\n	--no-check-certificate	Don't validate the server's certificate"
++//usage:	IF_FEATURE_WGET_OPENSSL(
++//usage:     "\n	--no-check-certificate	Don't validate the server's certificate"
++//usage:	)
+ //usage:	)
+ //usage:     "\n	-c		Continue retrieval of aborted transfer"
+ //usage:     "\n	-q		Quiet"
+@@ -662,7 +673,7 @@ static int spawn_https_helper_openssl(const char *host, unsigned port)
+ 	pid = xvfork();
+ 	if (pid == 0) {
+ 		/* Child */
+-		char *argv[8];
++		char *argv[9];
+ 
+ 		close(sp[0]);
+ 		xmove_fd(sp[1], 0);
+@@ -689,6 +700,9 @@ static int spawn_https_helper_openssl(const char *host, unsigned port)
+ 			argv[5] = (char*)"-servername";
+ 			argv[6] = (char*)servername;
+ 		}
++		if (!(option_mask32 & WGET_OPT_NO_CHECK_CERT)) {
++			argv[7] = (char*)"-verify_return_error";
++		}
+ 
+ 		BB_EXECVP(argv[0], argv);
+ 		xmove_fd(3, 2);
+-- 
+2.28.0
+
diff --git a/pkgs/os-specific/linux/busybox/default.nix b/pkgs/os-specific/linux/busybox/default.nix
index 430066831b8..728d2d49118 100644
--- a/pkgs/os-specific/linux/busybox/default.nix
+++ b/pkgs/os-specific/linux/busybox/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, buildPackages, fetchurl
+{ stdenv, lib, buildPackages, fetchurl, fetchzip
 , enableStatic ? false
 , enableMinimal ? false
 # Allow forcing musl without switching stdenv itself, e.g. for our bootstrapping:
@@ -31,9 +31,20 @@ let
     CONFIG_FEATURE_UTMP n
     CONFIG_FEATURE_WTMP n
   '';
+
+  debianName = "busybox_1.30.1-5";
+  debianTarball = fetchzip {
+    url = "http://deb.debian.org/debian/pool/main/b/busybox/${debianName}.debian.tar.xz";
+    sha256 = "03m4rvs2pd0hj0mdkdm3r4m1gh0bgwr0cvnqds297xnkfi5s01nx";
+  };
+  debianDispatcherScript = "${debianTarball}/tree/udhcpc/etc/udhcpc/default.script";
+  outDispatchPath = "$out/default.script";
 in
 
 stdenv.mkDerivation rec {
+  # TODO: When bumping this version, please validate whether the wget patch is present upstream
+  # and remove the patch if it is. The patch should be present upstream for all versions 1.32.0+.
+  # See NixOs/nixpkgs#94722 for context.
   name = "busybox-1.31.1";
 
   # Note to whoever is updating busybox: please verify that:
@@ -49,6 +60,8 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./busybox-in-store.patch
+    ./0001-Fix-build-with-glibc-2.31.patch
+    ./0001-wget-implement-TLS-verification-with-ENABLE_FEATURE_.patch
   ] ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ./clang-cross.patch;
 
   postPatch = "patchShebangs .";
@@ -80,6 +93,9 @@ stdenv.mkDerivation rec {
     # Bump from 4KB, much faster I/O
     CONFIG_FEATURE_COPYBUF_KB 64
 
+    # Set the path for the udhcpc script
+    CONFIG_UDHCPC_DEFAULT_SCRIPT "${outDispatchPath}"
+
     ${extraConfig}
     CONFIG_CROSS_COMPILER_PREFIX "${stdenv.cc.targetPrefix}"
     ${libcConfig}
@@ -94,6 +110,15 @@ stdenv.mkDerivation rec {
     makeFlagsArray+=("CC=${stdenv.cc.targetPrefix}cc -isystem ${musl.dev}/include -B${musl}/lib -L${musl}/lib")
   '';
 
+  postInstall = ''
+    sed -e '
+    1 a busybox() { '$out'/bin/busybox "$@"; }\
+    logger() { '$out'/bin/logger "$@"; }\
+    ' ${debianDispatcherScript} > ${outDispatchPath}
+    chmod 555 ${outDispatchPath}
+    PATH=$out/bin patchShebangs ${outDispatchPath}
+  '';
+
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
   buildInputs = lib.optionals (enableStatic && !useMusl && stdenv.cc.libc ? static) [ stdenv.cc.libc stdenv.cc.libc.static ];
@@ -106,7 +131,7 @@ stdenv.mkDerivation rec {
     description = "Tiny versions of common UNIX utilities in a single small executable";
     homepage = "https://busybox.net/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ TethysSvensson ];
     platforms = platforms.linux;
     priority = 10;
   };
diff --git a/pkgs/os-specific/linux/checksec/default.nix b/pkgs/os-specific/linux/checksec/default.nix
index 7984c25bf3f..f94e6d72d59 100644
--- a/pkgs/os-specific/linux/checksec/default.nix
+++ b/pkgs/os-specific/linux/checksec/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "checksec";
-  version = "2.2.1";
+  version = "2.2.2";
 
   src = fetchFromGitHub {
     owner = "slimm609";
     repo = "checksec.sh";
     rev = version;
-    sha256 = "035ydf7kp9yh5gpjnq4cgi76j582a0q6dxcbgkraxpkml0d8n2xd";
+    sha256 = "0gm438sfh84bif5d40wvaqrfl4dh3fxjvnjk9ab33al8ws3afpsj";
   };
 
   patches = [ ./0001-attempt-to-modprobe-config-before-checking-kernel.patch ];
diff --git a/pkgs/os-specific/linux/conky/default.nix b/pkgs/os-specific/linux/conky/default.nix
index 14f17da55a7..ee67140cd86 100644
--- a/pkgs/os-specific/linux/conky/default.nix
+++ b/pkgs/os-specific/linux/conky/default.nix
@@ -68,13 +68,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "conky";
-  version = "1.11.5";
+  version = "1.11.6";
 
   src = fetchFromGitHub {
     owner = "brndnmtthws";
     repo = "conky";
     rev = "v${version}";
-    sha256 = "1a75ss48mn9pknrxy33dh5rdgm67a5kpddsyqfhlcn1761kfzzyp";
+    sha256 = "0y2g66fjqp2hdk0y1h4ijxhnv34j16gizvxpmbigwh4n6zijcm6v";
   };
 
   postPatch = ''
diff --git a/pkgs/os-specific/linux/conspy/default.nix b/pkgs/os-specific/linux/conspy/default.nix
index 32905b8ec39..a52b8738570 100644
--- a/pkgs/os-specific/linux/conspy/default.nix
+++ b/pkgs/os-specific/linux/conspy/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="conspy";
-    version="1.14";
+    version="1.16";
     name="${baseName}-${version}";
-    hash="069k26xpzsvrn3197ix5yd294zvz03zi2xqj4fip6rlsw74habsf";
-    url="mirror://sourceforge/project/conspy/conspy-1.14-1/conspy-1.14.tar.gz";
-    sha256="069k26xpzsvrn3197ix5yd294zvz03zi2xqj4fip6rlsw74habsf";
+    hash="02andak806vd04bgjlr0y0d2ddx7cazyf8nvca80vlh8x94gcppf";
+    url="mirror://sourceforge/project/conspy/conspy-1.16-1/conspy-1.16.tar.gz";
+    sha256="02andak806vd04bgjlr0y0d2ddx7cazyf8nvca80vlh8x94gcppf";
   };
   buildInputs = [
     autoconf automake ncurses
diff --git a/pkgs/os-specific/linux/cramfsprogs/default.nix b/pkgs/os-specific/linux/cramfsprogs/default.nix
new file mode 100644
index 00000000000..8633823ab5c
--- /dev/null
+++ b/pkgs/os-specific/linux/cramfsprogs/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, fetchurl
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cramfsprogs";
+  version = "1.1";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/c/cramfs/cramfs_${version}.orig.tar.gz";
+    sha256 = "0s13sabykbkbp0pcw8clxddwzxckyq7ywm2ial343ip7qjiaqg0k";
+  };
+
+  # CramFs is unmaintained upstream: https://tracker.debian.org/pkg/cramfs.
+  # So patch the "missing include" bug ourselves.
+  patches = [ ./include-sysmacros.patch ];
+
+  installPhase = ''
+    install --target $out/bin -D cramfsck mkcramfs
+  '';
+
+  buildInputs = [ zlib ];
+
+  meta = with stdenv.lib; {
+    description = "Tools to create, check, and extract content of CramFs images";
+    homepage = "https://packages.debian.org/jessie/cramfsprogs";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ pamplemousse ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/cramfsprogs/include-sysmacros.patch b/pkgs/os-specific/linux/cramfsprogs/include-sysmacros.patch
new file mode 100644
index 00000000000..7c115a66ac9
--- /dev/null
+++ b/pkgs/os-specific/linux/cramfsprogs/include-sysmacros.patch
@@ -0,0 +1,12 @@
+diff --git a/mkcramfs.c b/mkcramfs.c
+index a2ef018959d..bec83c112d1 100644
+--- a/mkcramfs.c
++++ b/mkcramfs.c
+@@ -22,6 +22,7 @@
+  * If you change the disk format of cramfs, please update fs/cramfs/README.
+  */
+ 
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+ #include <stdio.h>
+ #include <sys/stat.h>
diff --git a/pkgs/os-specific/linux/cramfsswap/builder.sh b/pkgs/os-specific/linux/cramfsswap/builder.sh
deleted file mode 100644
index 51a5b11dda6..00000000000
--- a/pkgs/os-specific/linux/cramfsswap/builder.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-source $stdenv/setup
-
-export DESTDIR=$out
-mkdir -p $out/usr/bin
-
-genericBuild
diff --git a/pkgs/os-specific/linux/cramfsswap/default.nix b/pkgs/os-specific/linux/cramfsswap/default.nix
index eb04761eef4..afb38364c4e 100644
--- a/pkgs/os-specific/linux/cramfsswap/default.nix
+++ b/pkgs/os-specific/linux/cramfsswap/default.nix
@@ -1,17 +1,22 @@
 {stdenv, fetchurl, zlib}:
 
-stdenv.mkDerivation {
-  name = "cramfsswap-1.4.1";
-  builder = ./builder.sh;
+stdenv.mkDerivation rec {
+  pname = "cramfsswap";
+  version = "1.4.1";
+
   src = fetchurl {
-    url = "mirror://debian/pool/main/c/cramfsswap/cramfsswap_1.4.1.tar.gz";
+    url = "mirror://debian/pool/main/c/cramfsswap/${pname}_${version}.tar.gz";
     sha256 = "0c6lbx1inkbcvvhh3y6fvfaq3w7d1zv7psgpjs5f3zjk1jysi9qd";
   };
 
   buildInputs = [zlib];
 
+  installPhase = ''
+    install --target $out/bin -D cramfsswap
+  '';
+
   meta = with stdenv.lib; {
-    description = "swap endianess of a cram filesystem (cramfs)";
+    description = "Swap endianess of a cram filesystem (cramfs)";
     homepage = "https://packages.debian.org/sid/utils/cramfsswap";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/crda/default.nix b/pkgs/os-specific/linux/crda/default.nix
index 5811e9358b0..979b7cf1deb 100644
--- a/pkgs/os-specific/linux/crda/default.nix
+++ b/pkgs/os-specific/linux/crda/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, libgcrypt, libnl, pkgconfig, python3, wireless-regdb }:
+{ stdenv, fetchurl, fetchpatch, libgcrypt, libnl, pkgconfig, python3Packages, wireless-regdb }:
 
 stdenv.mkDerivation rec {
   pname = "crda";
@@ -25,13 +25,14 @@ stdenv.mkDerivation rec {
   buildInputs = [ libgcrypt libnl ];
   nativeBuildInputs = [
     pkgconfig
-    python3
-    python3.pkgs.pycrypto
+    python3Packages.pycrypto
   ];
 
   postPatch = ''
     patchShebangs utils/
-    substituteInPlace Makefile --replace ldconfig true
+    substituteInPlace Makefile \
+      --replace ldconfig true \
+      --replace pkg-config $PKG_CONFIG
     sed -i crda.c \
       -e "/\/usr\/.*\/regulatory.bin/d" \
       -e "s|/lib/crda|${wireless-regdb}/lib/crda|g"
diff --git a/pkgs/os-specific/linux/cryptsetup/default.nix b/pkgs/os-specific/linux/cryptsetup/default.nix
index 06be9f3432e..caa22b4df3e 100644
--- a/pkgs/os-specific/linux/cryptsetup/default.nix
+++ b/pkgs/os-specific/linux/cryptsetup/default.nix
@@ -1,17 +1,15 @@
 { stdenv, fetchurl, lvm2, json_c
-, openssl, libuuid, pkgconfig, popt
-, enablePython ? false, python2 ? null }:
-
-assert enablePython -> python2 != null;
+, openssl, libuuid, pkgconfig, popt }:
 
 stdenv.mkDerivation rec {
-  name = "cryptsetup-2.1.0";
+  pname = "cryptsetup";
+  version = "2.3.3";
 
   outputs = [ "out" "dev" "man" ];
 
   src = fetchurl {
-    url = "mirror://kernel/linux/utils/cryptsetup/v2.1/${name}.tar.xz";
-    sha256 = "15y8n547garz0x5kqv09gscdsrz0c0y1y6c5cp8pccwg3xsb5vm3";
+    url = "mirror://kernel/linux/utils/cryptsetup/v2.3/${pname}-${version}.tar.xz";
+    sha256 = "1pw2bq4nv2z3xyycckxkbp7dp9kkp2n6bspna3plryg277z4zjiv";
   };
 
   # Disable 4 test cases that fail in a sandbox
@@ -19,9 +17,6 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     patchShebangs tests
-    ${stdenv.lib.optionalString enablePython ''
-      patchShebangs ./python/pycryptsetup-test.py
-    ''}
 
     # O_DIRECT is filesystem dependent and fails in a sandbox (on tmpfs)
     # and on several filesystem types (btrfs, zfs) without sandboxing.
@@ -34,11 +29,10 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--enable-cryptsetup-reencrypt"
     "--with-crypto_backend=openssl"
-  ] ++ stdenv.lib.optional enablePython "--enable-python";
+  ];
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ lvm2 json_c openssl libuuid popt ]
-    ++ stdenv.lib.optional enablePython python2;
+  buildInputs = [ lvm2 json_c openssl libuuid popt ];
 
   doCheck = true;
 
diff --git a/pkgs/os-specific/linux/deepin-anything/default.nix b/pkgs/os-specific/linux/deepin-anything/default.nix
deleted file mode 100644
index 4139cc153cd..00000000000
--- a/pkgs/os-specific/linux/deepin-anything/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, deepin, kernel }:
-
-stdenv.mkDerivation {
-  pname = "deepin-anything-module";
-  version = "${deepin.deepin-anything.version}-${kernel.version}";
-  src = deepin.deepin-anything.modsrc;
-
-  nativeBuildInputs = kernel.moduleBuildDependencies;
-
-  buildPhase = ''
-    make -C src/deepin-anything-0.0 kdir=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build
-  '';
-
-  installPhase = ''
-     install -m 644 -D -t $out/lib/modules/${kernel.modDirVersion}/extra src/deepin-anything-0.0/*.ko
-  '';
-
-  meta = deepin.deepin-anything.meta // {
-    description = deepin.deepin-anything.meta.description + " (kernel modules)";
-    badPlatforms = [ "aarch64-linux" ];  # the kernel module is not building
-  };
-}
diff --git a/pkgs/os-specific/linux/displaylink/default.nix b/pkgs/os-specific/linux/displaylink/default.nix
index 642d05e4beb..3db9a7d3005 100644
--- a/pkgs/os-specific/linux/displaylink/default.nix
+++ b/pkgs/os-specific/linux/displaylink/default.nix
@@ -11,17 +11,17 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "displaylink";
-  version = "5.2.14";
+  version = "5.3.1.34";
 
   src = requireFile rec {
     name = "displaylink.zip";
-    sha256 = "03b176y95f04rg3lcnjps9llsjbvd8yksh1fpvjwaciz48mnxh2i";
+    sha256 = "1c1kbjgpb71f73qnyl44rvwi6l4ivddq789rwvvh0ahw2jm324hy";
     message = ''
       In order to install the DisplayLink drivers, you must first
       comply with DisplayLink's EULA and download the binaries and
       sources from here:
 
-      http://www.displaylink.com/downloads/file?id=1369
+      https://www.displaylink.com/downloads/file?id=1576
 
       Once you have downloaded the file, please use the following
       commands and re-run the installation:
@@ -67,7 +67,7 @@ in stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "DisplayLink DL-5xxx, DL-41xx and DL-3x00 Driver for Linux";
-    maintainers = with maintainers; [ nshalman abbradar peterhoeg ];
+    maintainers = with maintainers; [ nshalman abbradar peterhoeg eyjhb ];
     platforms = [ "x86_64-linux" "i686-linux" ];
     license = licenses.unfree;
     homepage = "https://www.displaylink.com/";
diff --git a/pkgs/os-specific/linux/e1000e/default.nix b/pkgs/os-specific/linux/e1000e/default.nix
index ea17c287a29..d5d6697a01e 100644
--- a/pkgs/os-specific/linux/e1000e/default.nix
+++ b/pkgs/os-specific/linux/e1000e/default.nix
@@ -4,11 +4,11 @@ assert stdenv.lib.versionOlder kernel.version "4.10";
 
 stdenv.mkDerivation rec {
   name = "e1000e-${version}-${kernel.version}";
-  version = "3.3.5.3";
+  version = "3.8.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/e1000/e1000e-${version}.tar.gz";
-    sha256 = "1ajz3vdnf1y307k585w95r6jlh4ah8d74bq36gdkjl1z5hgiqi9q";
+    sha256 = "1q8dbqh14c7r15q6k6iv5k0d6xpi74i71d5r54py60gr099m2ha4";
   };
 
   hardeningDisable = [ "pic" ];
@@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
   configurePhase = ''
     cd src
     kernel_version=${kernel.modDirVersion}
-    sed -i -e 's|/lib/modules|${kernel.dev}/lib/modules|' Makefile
+    substituteInPlace common.mk \
+      --replace "/lib/modules" "${kernel.dev}/lib/modules"
     export makeFlags="BUILD_KERNEL=$kernel_version"
   '';
 
diff --git a/pkgs/os-specific/linux/earlyoom/default.nix b/pkgs/os-specific/linux/earlyoom/default.nix
index 8233c065c2b..575da8aca73 100644
--- a/pkgs/os-specific/linux/earlyoom/default.nix
+++ b/pkgs/os-specific/linux/earlyoom/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "earlyoom";
-  version = "1.6";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "rfjakob";
     repo = "earlyoom";
     rev = "v${version}";
-    sha256 = "0g2bjsvnqq5h4g1k3a0x6ixb334wpzbm2gafl78b6ic6j45smwcs";
+    sha256 = "1cn0bgbgiq69i8mk8zxly1f7j01afm82g672qzccz6swsi2637j4";
   };
 
   nativeBuildInputs = stdenv.lib.optionals withManpage [ pandoc installShellFiles ];
diff --git a/pkgs/os-specific/linux/ell/default.nix b/pkgs/os-specific/linux/ell/default.nix
index cb971d452d6..a83e02ae6be 100644
--- a/pkgs/os-specific/linux/ell/default.nix
+++ b/pkgs/os-specific/linux/ell/default.nix
@@ -7,14 +7,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ell";
-  version = "0.31";
+  version = "0.32";
 
   outputs = [ "out" "dev" ];
 
   src = fetchgit {
      url = "https://git.kernel.org/pub/scm/libs/${pname}/${pname}.git";
      rev = version;
-     sha256 = "1qlpc906xd78fzxvvj2kxi3aikgnw0c0h3x620s131apax4qrnqa";
+     sha256 = "07hm9lrhhb5y53l13yja2kr3xmjgs0azk3x7w2si99cplwkgxak2";
   };
 
   patches = [
diff --git a/pkgs/os-specific/linux/evdi/default.nix b/pkgs/os-specific/linux/evdi/default.nix
index 2a6ce13c162..119ba22ca26 100644
--- a/pkgs/os-specific/linux/evdi/default.nix
+++ b/pkgs/os-specific/linux/evdi/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evdi";
-  version = "unstable-20200222";
+  version = "unstable-20200416";
 
   src = fetchFromGitHub {
     owner = "DisplayLink";
     repo = pname;
-    rev = "bb3038c1b10aae99feddc7354c74a5bf22341246";
-    sha256 = "058f8gdma6fndg2w512l08mwl79h4hffacx4rnfkjxrb2ard3gd1";
+    rev = "dc595db636845aef39490496bc075f6bf067106c";
+    sha256 = "1yrny6jj9403z0rxbd3nxf49xc4w0rfpl7xsq03pq32pb3vlbqw7";
   };
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
@@ -24,11 +24,12 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     install -Dm755 module/evdi.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/gpu/drm/evdi/evdi.ko
-    install -Dm755 library/libevdi.so.1.6.4 $out/lib/libevdi.so
+    install -Dm755 library/libevdi.so $out/lib/libevdi.so
   '';
 
   meta = with stdenv.lib; {
     description = "Extensible Virtual Display Interface";
+    maintainers = with maintainers; [ eyjhb ];
     platforms = platforms.linux;
     license = with licenses; [ lgpl21 gpl2 ];
     homepage = "https://www.displaylink.com/";
diff --git a/pkgs/os-specific/linux/eventstat/default.nix b/pkgs/os-specific/linux/eventstat/default.nix
index 6dfaa6ab38b..ca498425721 100644
--- a/pkgs/os-specific/linux/eventstat/default.nix
+++ b/pkgs/os-specific/linux/eventstat/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "eventstat";
-  version = "0.04.09";
+  version = "0.04.10";
   src = fetchzip {
     url = "https://kernel.ubuntu.com/~cking/tarballs/eventstat/eventstat-${version}.tar.gz";
-    sha256 = "1b3m58mak62ym2amnmk62c2d6fypk30fw6jsmirh1qz7dwix4bl5";
+    sha256 = "0rmg49m56qxji7gwci03pkk4f4hnaq1n2x1348dqkaf5zs5nhi6b";
   };
   buildInputs = [ ncurses ];
   installFlags = [ "DESTDIR=$(out)" ];
diff --git a/pkgs/os-specific/linux/ffado/default.nix b/pkgs/os-specific/linux/ffado/default.nix
index e814091d59e..b93caccc757 100644
--- a/pkgs/os-specific/linux/ffado/default.nix
+++ b/pkgs/os-specific/linux/ffado/default.nix
@@ -13,7 +13,7 @@
 , libxmlxx3
 , pkgconfig
 , python3
-, scons
+, sconsPackages
 , which
 , wrapQtAppsHook
 }:
@@ -45,7 +45,7 @@ mkDerivation rec {
 
   nativeBuildInputs = [
     desktop-file-utils
-    scons.py2
+    sconsPackages.scons_3_1_2
     pkgconfig
     which
     python
diff --git a/pkgs/os-specific/linux/firejail/default.nix b/pkgs/os-specific/linux/firejail/default.nix
index 8c7a109cb76..272b8612d7a 100644
--- a/pkgs/os-specific/linux/firejail/default.nix
+++ b/pkgs/os-specific/linux/firejail/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, which}:
+{stdenv, fetchurl, fetchpatch, which, nixosTests}:
 let
   s = # Generated upstream information
   rec {
@@ -20,6 +20,19 @@ stdenv.mkDerivation {
     name = "${s.name}.tar.bz2";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2020-17367.patch";
+      url = "https://github.com/netblue30/firejail/commit/2c734d6350ad321fccbefc5ef0382199ac331b37.patch";
+      sha256 = "1gxz4jxp80gxnn46195qxcpmikwqab9d0ylj9zkm62lycp84ij6n";
+    })
+    (fetchpatch {
+      name = "CVE-2020-17368.patch";
+      url = "https://github.com/netblue30/firejail/commit/34193604fed04cad2b7b6b0f1a3a0428afd9ed5b.patch";
+      sha256 = "0n4ch3qykxx870201l8lz81f7h84vk93pzz77f5cjbd30cxnbddl";
+    })
+  ];
+
   prePatch = ''
     # Allow whitelisting ~/.nix-profile
     substituteInPlace etc/firejail.config --replace \
@@ -63,6 +76,8 @@ stdenv.mkDerivation {
   # bash: src/fsec-optimize/fsec-optimize: No such file or directory
   enableParallelBuilding = false;
 
+  passthru.tests = nixosTests.firejail;
+
   meta = {
     inherit (s) version;
     description = ''Namespace-based sandboxing tool for Linux'';
diff --git a/pkgs/os-specific/linux/firmware/fwupd/default.nix b/pkgs/os-specific/linux/firmware/fwupd/default.nix
index af9237d1d83..66edb34d244 100644
--- a/pkgs/os-specific/linux/firmware/fwupd/default.nix
+++ b/pkgs/os-specific/linux/firmware/fwupd/default.nix
@@ -93,11 +93,11 @@ let
 
   self = stdenv.mkDerivation rec {
     pname = "fwupd";
-    version = "1.4.4";
+    version = "1.4.5";
 
     src = fetchurl {
       url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz";
-      sha256 = "03yn96kxs53vxcbza17y99rdhbjlybv44gkc90vaj6301grxahnp";
+      sha256 = "0hpqxwqbbqn440c2swpnc06z8dskisrli4ynsxrzzqyp0dan46xw";
     };
 
     # libfwupd goes to lib
@@ -167,6 +167,11 @@ let
         # Needs a different set of modules than po/make-images.
         inherit installedTestsPython;
       })
+
+      (fetchpatch {
+        url = "https://github.com/fwupd/fwupd/commit/3e82beeddac31292c50229e59e2404865edee5ad.patch";
+        sha256 = "17p9r8qddqkrnhy9bvp9207afh5fcl1whn79nqcp57b4q4c17zgk";
+      })
     ];
 
     postPatch = ''
diff --git a/pkgs/os-specific/linux/fnotifystat/default.nix b/pkgs/os-specific/linux/fnotifystat/default.nix
index ef247ad956b..f01c96259a8 100644
--- a/pkgs/os-specific/linux/fnotifystat/default.nix
+++ b/pkgs/os-specific/linux/fnotifystat/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "fnotifystat";
-  version = "0.02.05";
+  version = "0.02.06";
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/fnotifystat/fnotifystat-${version}.tar.gz";
-    sha256 = "1b8pxq731sj976m2daf0hnqfaaq688vqnjffinpwh2w9nzzi4gi9";
+    sha256 = "1mr2qzh8r8qq7haz4qgci2k5lcrcy493fm0m3ri40a81vaajfniy";
   };
   installFlags = [ "DESTDIR=$(out)" ];
   postInstall = ''
diff --git a/pkgs/os-specific/linux/forkstat/default.nix b/pkgs/os-specific/linux/forkstat/default.nix
index eee4691aeb3..d42091085ba 100644
--- a/pkgs/os-specific/linux/forkstat/default.nix
+++ b/pkgs/os-specific/linux/forkstat/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "forkstat";
-  version = "0.02.14";
+  version = "0.02.15";
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/forkstat/forkstat-${version}.tar.xz";
-    sha256 = "10kibb5psb5gqdmq9lfb7qw566diwg54gdb49b5zd71qwpybk3dl";
+    sha256 = "11dvg7bbklpfywx6i6vb29vvc28pbfk3mff0g18n5imxvzsd7jxs";
   };
   installFlags = [ "DESTDIR=$(out)" ];
   postInstall = ''
diff --git a/pkgs/os-specific/linux/fscrypt/default.nix b/pkgs/os-specific/linux/fscrypt/default.nix
index aee406b03f0..000400e4cdf 100644
--- a/pkgs/os-specific/linux/fscrypt/default.nix
+++ b/pkgs/os-specific/linux/fscrypt/default.nix
@@ -21,6 +21,8 @@ buildGoModule rec {
 
   vendorSha256 = "0yak221mlyfacvlsaq9g3xiyk94n94vqgkbaji8d21pi8hhr38m6";
 
+  doCheck = false;
+
   nativeBuildInputs = [ gnum4 ];
   buildInputs = [ pam ];
 
@@ -32,10 +34,6 @@ buildGoModule rec {
     make install
   '';
 
-  preFixup = ''
-    remove-references-to -t ${fscrypt-experimental.go} $out/lib/security/pam_fscrypt.so
-  '';
-
   meta = with stdenv.lib; {
     description =
       "A high-level tool for the management of Linux filesystem encryption";
diff --git a/pkgs/os-specific/linux/fswebcam/default.nix b/pkgs/os-specific/linux/fswebcam/default.nix
index 53a1bdbc4c7..fc1a2563382 100644
--- a/pkgs/os-specific/linux/fswebcam/default.nix
+++ b/pkgs/os-specific/linux/fswebcam/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libv4l, gd }:
 
 stdenv.mkDerivation rec {
-  name = "fswebcam-20140113";
+  name = "fswebcam-20200725";
 
   src = fetchurl {
     url = "https://www.sanslogic.co.uk/fswebcam/files/${name}.tar.gz";
-    sha256 = "3ee389f72a7737700d22e0c954720b1e3bbadc8a0daad6426c25489ba9dc3199";
+    sha256 = "1dazsrcaw9s30zz3jpxamk9lkff5dkmflp1s0jjjvdbwa0k6k6ii";
   };
 
   buildInputs =
diff --git a/pkgs/os-specific/linux/fuse/common.nix b/pkgs/os-specific/linux/fuse/common.nix
index b0f684e6242..2010be53c2d 100644
--- a/pkgs/os-specific/linux/fuse/common.nix
+++ b/pkgs/os-specific/linux/fuse/common.nix
@@ -2,7 +2,7 @@
 
 { stdenv, fetchFromGitHub, fetchpatch
 , fusePackages, utillinux, gettext
-, meson, ninja, pkgconfig
+, meson, ninja, pkg-config
 , autoreconfHook
 , python3Packages, which
 }:
@@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
       else [ ./fuse2-Do-not-set-FUSERMOUNT_DIR.patch ]);
 
   nativeBuildInputs = if isFuse3
-    then [ meson ninja pkgconfig ]
+    then [ meson ninja pkg-config ]
     else [ autoreconfHook gettext ];
 
   outputs = [ "out" ] ++ stdenv.lib.optional isFuse3 "common";
@@ -60,6 +60,10 @@ in stdenv.mkDerivation rec {
       # ./fuse3-install_man.patch)
       install -D -m444 doc/fusermount3.1 $out/share/man/man1/fusermount3.1
       install -D -m444 doc/mount.fuse3.8 $out/share/man/man8/mount.fuse3.8
+
+      # TODO: Temporary version fix:
+      substituteInPlace meson.build \
+        --replace "version: '3.9.3'" "version: '${version}'"
     '' else ''
       sed -e 's@CONFIG_RPATH=/usr/share/gettext/config.rpath@CONFIG_RPATH=${gettext}/share/gettext/config.rpath@' -i makeconf.sh
       ./makeconf.sh
diff --git a/pkgs/os-specific/linux/fuse/default.nix b/pkgs/os-specific/linux/fuse/default.nix
index 4d2e12367de..8c342743dfc 100644
--- a/pkgs/os-specific/linux/fuse/default.nix
+++ b/pkgs/os-specific/linux/fuse/default.nix
@@ -11,7 +11,7 @@ in {
   };
 
   fuse_3 = mkFuse {
-    version = "3.9.2";
-    sha256Hash = "10xsbly7rv895c9zv4fqmnrxbdc0kd1qhlk75x4m9cv95f93k843";
+    version = "3.9.4";
+    sha256Hash = "1j11niqw3p94yd6mfdrkdra0nic8a38fc179y5h9yz81q39m2f3b";
   };
 }
diff --git a/pkgs/os-specific/linux/fwts/default.nix b/pkgs/os-specific/linux/fwts/default.nix
index d05a8c52551..fd62f07cd9c 100644
--- a/pkgs/os-specific/linux/fwts/default.nix
+++ b/pkgs/os-specific/linux/fwts/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fwts";
-  version = "20.05.00";
+  version = "20.07.00";
 
   src = fetchzip {
     url = "http://fwts.ubuntu.com/release/${pname}-V${version}.tar.gz";
-    sha256 = "14rqm45al6w42mzi0rqpwbw1spy7iv1jhywhwkdgs4w91zzc4gaj";
+    sha256 = "0azhcnlfziwn8wvw3fly2jfjyg53m8zba3jlcxgzrasgb0kvzb1c";
     stripRoot = false;
   };
 
diff --git a/pkgs/os-specific/linux/gobi_loader/default.nix b/pkgs/os-specific/linux/gobi_loader/default.nix
index b79f8af6f8e..b8735354c2c 100644
--- a/pkgs/os-specific/linux/gobi_loader/default.nix
+++ b/pkgs/os-specific/linux/gobi_loader/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     description = "Firmware loader for Qualcomm Gobi USB chipsets";
     homepage = "https://www.codon.org.uk/~mjg59/gobi_loader/";
     license = with licenses; [ gpl2 ];
-    maintainers = [ maintainers."0x4A6F" ];
+    maintainers = with maintainers; [ _0x4A6F ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/guvcview/default.nix b/pkgs/os-specific/linux/guvcview/default.nix
index 41c21502e0b..d780cade786 100644
--- a/pkgs/os-specific/linux/guvcview/default.nix
+++ b/pkgs/os-specific/linux/guvcview/default.nix
@@ -5,7 +5,7 @@
 , pkgconfig
 , portaudio
 , SDL2
-, ffmpeg_3
+, ffmpeg
 , udev
 , libusb1
 , libv4l
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     SDL2
     alsaLib
-    ffmpeg_3
+    ffmpeg
     libusb1
     libv4l
     portaudio
diff --git a/pkgs/os-specific/linux/hwdata/default.nix b/pkgs/os-specific/linux/hwdata/default.nix
index 2f6e6cd5cc9..9b54f404f72 100644
--- a/pkgs/os-specific/linux/hwdata/default.nix
+++ b/pkgs/os-specific/linux/hwdata/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hwdata";
-  version = "0.316";
+  version = "0.335";
 
   src = fetchFromGitHub {
     owner = "vcrhonek";
     repo = "hwdata";
     rev = "v${version}";
-    sha256 = "0k3fypykbq9943cnxlmmpk0xp9nhhf46pfdhkgm99iaa27b8s1gb";
+    sha256 = "0f8ikwfrs6xd5sywypd9rq9cln8a0rf3vj6nm0adwzn1p8mgmrb2";
   };
 
   preConfigure = "patchShebangs ./configure";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   outputHashMode = "recursive";
   outputHashAlgo = "sha256";
-  outputHash = "0g2w4jr4p1hykracp2za7jb0rcr51kks1m43pzcaf7g99x8669ww";
+  outputHash = "101lppd1805drwd038b4njr5czzjnqqxf3xlf6v3l22wfwr2cn3l";
 
   meta = {
     homepage = "https://github.com/vcrhonek/hwdata";
diff --git a/pkgs/os-specific/linux/ifmetric/default.nix b/pkgs/os-specific/linux/ifmetric/default.nix
new file mode 100644
index 00000000000..1f69d728f60
--- /dev/null
+++ b/pkgs/os-specific/linux/ifmetric/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, lynx }:
+
+stdenv.mkDerivation rec {
+  pname = "ifmetric";
+  version = "0.3";
+
+  src = fetchurl {
+    url = "http://0pointer.de/lennart/projects/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "1v0s5x81jzwnnl7hr254d4nkyc8qcv983pzr6vqmbr9l9q553a0g";
+  };
+
+  buildInputs = [ lynx ];
+
+  patches = [
+    # Fixes an issue related to the netlink API.
+    # Upstream is largely inactive; this is a Debian patch.
+    (fetchurl {
+      url = "https://launchpadlibrarian.net/85974387/10_netlink_fix.patch";
+      sha256 = "1pnlcr0qvk0bd5243wpg14i387zp978f4xhwwkcqn1cir91x7fbc";
+    })
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Tool for setting IP interface metrics";
+    longDescription = ''
+      ifmetric is a Linux tool for setting the metrics of all IPv4 routes
+      attached to a given network interface at once. This may be used to change
+      the priority of routing IPv4 traffic over the interface. Lower metrics
+      correlate with higher priorities.
+    '';
+    homepage = "http://0pointer.de/lennart/projects/ifmetric";
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.anna328p ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/intel-compute-runtime/default.nix b/pkgs/os-specific/linux/intel-compute-runtime/default.nix
index 869041256b6..bba3549daf6 100644
--- a/pkgs/os-specific/linux/intel-compute-runtime/default.nix
+++ b/pkgs/os-specific/linux/intel-compute-runtime/default.nix
@@ -11,18 +11,15 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-compute-runtime";
-  version = "20.02.15268";
+  version = "20.33.17675";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "compute-runtime";
     rev = version;
-    sha256 = "138gi92w85bn6haw5x38k39pgiyvvzfhiwpvz6hqlx2j03n8cs2k";
+    sha256 = "1ckzspf05skdrjh947gv96finxbv5dpgc84hppm5pdsp5q70iyxp";
   };
 
-  # Build script tries to write the ICD to /etc
-  patches = [ ./etc-dir.patch ];
-
   nativeBuildInputs = [ cmake pkgconfig ];
 
   buildInputs = [ intel-gmmlib intel-graphics-compiler libva ];
@@ -31,7 +28,7 @@ stdenv.mkDerivation rec {
     "-DSKIP_UNIT_TESTS=1"
 
     "-DIGC_DIR=${intel-graphics-compiler}"
-    "-DETC_DIR=${placeholder "out"}/etc"
+    "-DOCL_ICD_VENDORDIR=${placeholder "out"}/etc/OpenCL/vendors"
 
     # The install script assumes this path is relative to CMAKE_INSTALL_PREFIX
     "-DCMAKE_INSTALL_LIBDIR=lib"
@@ -43,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ intel-gmmlib intel-graphics-compiler libva ]} \
+    patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ intel-gmmlib intel-graphics-compiler libva stdenv.cc.cc.lib ]} \
       $out/lib/intel-opencl/libigdrcl.so
   '';
 
diff --git a/pkgs/os-specific/linux/intel-compute-runtime/etc-dir.patch b/pkgs/os-specific/linux/intel-compute-runtime/etc-dir.patch
deleted file mode 100644
index d9a80ffa6f9..00000000000
--- a/pkgs/os-specific/linux/intel-compute-runtime/etc-dir.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/package.cmake b/package.cmake
-index 24960d5..e9a21e7 100644
---- a/package.cmake
-+++ b/package.cmake
-@@ -24,7 +24,9 @@ if(UNIX)
- 
-   get_os_release_info(os_name os_version)
- 
--  if("${os_name}" STREQUAL "clear-linux-os")
-+  if(DEFINED ETC_DIR)
-+    set(_dir_etc ${ETC_DIR})
-+  elseif("${os_name}" STREQUAL "clear-linux-os")
-     # clear-linux-os distribution avoids /etc for distribution defaults.
-     set(_dir_etc "/usr/share/defaults/etc")
-   else()
diff --git a/pkgs/os-specific/linux/iproute/default.nix b/pkgs/os-specific/linux/iproute/default.nix
index 3ac79464ac4..a9fcf455ee4 100644
--- a/pkgs/os-specific/linux/iproute/default.nix
+++ b/pkgs/os-specific/linux/iproute/default.nix
@@ -5,16 +5,19 @@
 
 stdenv.mkDerivation rec {
   pname = "iproute2";
-  version = "5.7.0";
+  version = "5.8.0";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/net/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "088gs56iqhdlpw1iqjwrss4zxd4zbl2wl8s2implrrdajjxcfpbj";
+    sha256 = "0vk4vickrpahdhl3zazr2qn2bf99v5549ncirjpwiy4h0a4izkfg";
   };
 
   preConfigure = ''
     # Don't try to create /var/lib/arpd:
     sed -e '/ARPDDIR/d' -i Makefile
+    # TODO: Drop temporary version fix for 5.8 (53159d81) once 5.9 is out:
+    substituteInPlace include/version.h \
+      --replace "v5.7.0-77-gb687d1067169" "5.8.0"
   '';
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/os-specific/linux/iputils/default.nix b/pkgs/os-specific/linux/iputils/default.nix
index 12784638348..e12c44888a0 100644
--- a/pkgs/os-specific/linux/iputils/default.nix
+++ b/pkgs/os-specific/linux/iputils/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchFromGitHub, fetchpatch
+{ stdenv, fetchFromGitHub
 , meson, ninja, pkgconfig, gettext, libxslt, docbook_xsl_ns
-, libcap, nettle, libidn2, systemd
+, libcap, systemd, libidn2
 }:
 
 with stdenv.lib;
 
 let
-  version = "20190709";
+  version = "20200821";
   sunAsIsLicense = {
     fullName = "AS-IS, SUN MICROSYSTEMS license";
     url = "https://github.com/iputils/iputils/blob/s${version}/rdisc.c";
@@ -19,26 +19,27 @@ in stdenv.mkDerivation rec {
     owner = pname;
     repo = pname;
     rev = "s${version}";
-    sha256 = "04bp4af15adp79ipxmiakfp0ij6hx5qam266flzbr94pr8z8l693";
+    sha256 = "1jhbcz75a4ij1myyyi110ma1d8d5hpm3scz9pyw7js6qym50xvh4";
   };
 
-  mesonFlags =
-    [ "-DUSE_CRYPTO=nettle"
-      "-DBUILD_RARPD=true"
-      "-DBUILD_TRACEROUTE6=true"
-      "-DNO_SETCAP_OR_SUID=true"
-      "-Dsystemdunitdir=etc/systemd/system"
-    ]
+  mesonFlags = [
+    "-DBUILD_RARPD=true"
+    "-DBUILD_TRACEROUTE6=true"
+    "-DBUILD_TFTPD=true"
+    "-DNO_SETCAP_OR_SUID=true"
+    "-Dsystemdunitdir=etc/systemd/system"
+  ]
     # Disable idn usage w/musl (https://github.com/iputils/iputils/pull/111):
     ++ optional stdenv.hostPlatform.isMusl "-DUSE_IDN=false";
 
   nativeBuildInputs = [ meson ninja pkgconfig gettext libxslt.bin docbook_xsl_ns ];
-  buildInputs = [ libcap nettle systemd ]
+  buildInputs = [ libcap systemd ]
     ++ optional (!stdenv.hostPlatform.isMusl) libidn2;
 
   meta = {
-    homepage = "https://github.com/iputils/iputils";
     description = "A set of small useful utilities for Linux networking";
+    inherit (src.meta) homepage;
+    changelog = "https://github.com/iputils/iputils/releases/tag/s${version}";
     license = with licenses; [ gpl2Plus bsd3 sunAsIsLicense ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ primeos lheckemann ];
diff --git a/pkgs/os-specific/linux/irqbalance/default.nix b/pkgs/os-specific/linux/irqbalance/default.nix
index 4c4e1ff025d..d61d02b5598 100644
--- a/pkgs/os-specific/linux/irqbalance/default.nix
+++ b/pkgs/os-specific/linux/irqbalance/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "irqbalance";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "irqbalance";
     repo = "irqbalance";
     rev = "v${version}";
-    sha256 = "01r9s63yxaijg8jqcbkwqlyqq2z673szb0vzd7qb2y3gk5jlif2y";
+    sha256 = "1677ap6z4hvwga0vb8hrvpc0qggyarg9mlg11pxywz7mq94vdx19";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/os-specific/linux/iwd/default.nix b/pkgs/os-specific/linux/iwd/default.nix
index be2a4ff3e56..fd34440f603 100644
--- a/pkgs/os-specific/linux/iwd/default.nix
+++ b/pkgs/os-specific/linux/iwd/default.nix
@@ -13,14 +13,16 @@
 
 stdenv.mkDerivation rec {
   pname = "iwd";
-  version = "1.7";
+  version = "1.8";
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/network/wireless/iwd.git";
     rev = version;
-    sha256 = "1qi25qav1rv8gm5lbrip8ayq5vwynmyv2q4ar7bbmnjh6cglvyh2";
+    sha256 = "0ds8nhbnkhxzhnnsi7vj3y2v8wq0nxqbmidhiac7mpxgjkc684gf";
   };
 
+  outputs = [ "out" "man" ];
+
   nativeBuildInputs = [
     autoreconfHook
     docutils
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index f07368cc80d..8bd5d021204 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -91,6 +91,8 @@ let
     scheduler = {
       IOSCHED_CFQ = whenOlder "5.0" yes; # Removed in 5.0-RC1
       BLK_CGROUP  = yes; # required by CFQ"
+      BLK_CGROUP_IOLATENCY = whenAtLeast "4.19" yes;
+      BLK_CGROUP_IOCOST = whenAtLeast "5.4" yes;
       IOSCHED_DEADLINE = whenOlder "5.0" yes; # Removed in 5.0-RC1
       MQ_IOSCHED_DEADLINE = whenAtLeast "4.11" yes;
       BFQ_GROUP_IOSCHED = whenAtLeast "4.12" yes;
@@ -242,6 +244,8 @@ let
       DRM_AMDGPU_SI = whenAtLeast "4.9" yes;
       # (stable) amdgpu support for bonaire and newer chipsets
       DRM_AMDGPU_CIK = whenAtLeast "4.9" yes;
+      # Allow device firmware updates
+      DRM_DP_AUX_CHARDEV = whenAtLeast "4.6" yes;
     } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux") {
       # Intel GVT-g graphics virtualization supports 64-bit only
       DRM_I915_GVT = whenAtLeast "4.16" yes;
@@ -269,7 +273,7 @@ let
       SND_SOC_SOF_APOLLOLAKE_SUPPORT    = yes;
       SND_SOC_SOF_CANNONLAKE_SUPPORT    = yes;
       SND_SOC_SOF_COFFEELAKE_SUPPORT    = yes;
-      SND_SOC_SOF_COMETLAKE_H_SUPPORT   = yes;
+      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;
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index a9d0cf45168..cab11cc87ae 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -53,6 +53,11 @@
 , ...
 }:
 
+# 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
+# files.
+
 assert stdenv.isLinux;
 
 let
diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json
index 9fbe914f266..060d747e763 100644
--- a/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -1,22 +1,22 @@
 {
     "4.14": {
-        "name": "linux-hardened-4.14.185.a.patch",
-        "sha256": "0kj18z2mbffnc0zksg7bfyy3hljiga0gzk0s3axvbxlp41vpvwp3",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.185.a/linux-hardened-4.14.185.a.patch"
+        "name": "linux-hardened-4.14.195.a.patch",
+        "sha256": "1a1g9q750gbnkcycqnzafb22f7250ck8dvzx6jqkz669wdg2pd7z",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.195.a/linux-hardened-4.14.195.a.patch"
     },
     "4.19": {
-        "name": "linux-hardened-4.19.129.a.patch",
-        "sha256": "0fyz4m2ih8biadziiqbyq4ddx8asn65z94wwrhi7krjqxlbdzgvs",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.129.a/linux-hardened-4.19.129.a.patch"
+        "name": "linux-hardened-4.19.142.a.patch",
+        "sha256": "1gwvacr23lp8qryfhnqn89pn9ly9d8c42rirvkz5psfmvnm7vxbn",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.142.a/linux-hardened-4.19.142.a.patch"
     },
     "5.4": {
-        "name": "linux-hardened-5.4.48.a.patch",
-        "sha256": "0vcy64gl88l12rqv0z3g8858zdr82a68sfalaf768j4z537bpany",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.48.a/linux-hardened-5.4.48.a.patch"
+        "name": "linux-hardened-5.4.61.a.patch",
+        "sha256": "1sgysrkycca860m2h7vrnfkplbsari6blcrkbsn285s5d0fsicnc",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.61.a/linux-hardened-5.4.61.a.patch"
     },
-    "5.6": {
-        "name": "linux-hardened-5.6.19.a.patch",
-        "sha256": "0gxdbcig6hpjxj6qr4lrj773gb76s0xlkrk3hclxk4ms6p82y4mm",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.6.19.a/linux-hardened-5.6.19.a.patch"
+    "5.7": {
+        "name": "linux-hardened-5.7.19.a.patch",
+        "sha256": "1lydlh499aj3ck5cnv8q2271y4klvp17zm7j7qni16am14bld936",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.7.19.a/linux-hardened-5.7.19.a.patch"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 8970f51203a..05fc466f0f9 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.14.187";
+  version = "4.14.196";
 
   # 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,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1gal2kfyrq8c4dswlwnwmzc3ap6a7cjkyz8jgsm9d8gfx9sk88jv";
+    sha256 = "16mhqymwkgqi8zalcij5c754smc8ysvfw6l2cwshr4scipsv4qay";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix
index fef01ec0868..c683b222f0c 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.19.131";
+  version = "4.19.143";
 
   # 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,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1fk4i7lkbblfbxyp8rmkihcax920hbbygk2xnq2038sbrkvbkpqr";
+    sha256 = "1383yfwb962mhn25b3b3zqrwnpyp01g5xclsv14wra0fdz33ahra";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix
index ec60490c56b..0fccc800c07 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.4.229";
+  version = "4.4.235";
   extraMeta.branch = "4.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0crrawivri5i0ks7pg3snfjlxily4aimw5xzbzr5nlnsz0rjwhbq";
+    sha256 = "0w5pkv936zb0shjgnpv17gcp5n8f91djznzq54p6j1bl5q2qdyqd";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index f1e927f3cf0..75af5a09d4d 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.229";
+  version = "4.9.235";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1p0g6zya8bdk2fds37x3fg7c5sk3sc18prq3jrrilnnrby1w4mij";
+    sha256 = "1hqcb3zw4546h6x5xy2mywdznha8813lx15mxbgfbvwm4qhsc9g6";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix
index 2ce82c45c4f..24bff321869 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.4.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.4.50";
+  version = "5.4.62";
 
   # 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,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "1qm6m3ww7cxr0mqzma9swq6jax6anjy5vdh397my7x00x70z845d";
+    sha256 = "0w49y8lymz23x4mr5byaxnrkhm56lwfhnqkra07hqyfr5y63v216";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.7.nix b/pkgs/os-specific/linux/kernel/linux-5.7.nix
index 82243169b7d..4f721d8b0e4 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.7.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.7.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.7.7";
+  version = "5.7.19";
 
   # 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,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "0zzff78fjn0a87lr1j11hx97gcpbf0q5qn0nalb3qd43j9kvjh7q";
+    sha256 = "1rwzp51ddlkdzanj6i8jqj5yh0njpzn7ly4r8nnzwkdfp5465721";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.6.nix b/pkgs/os-specific/linux/kernel/linux-5.8.nix
index 478cdf71bf4..5ea15aa5a1b 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.6.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.8.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.6.19";
+  version = "5.8.6";
 
   # 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,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "1s0yc1138sglbm4vyizl4r7hnc1l7nykdjp4063ad67yayr2ylv2";
+    sha256 = "180bka8a0f2ykaifgb323pzgh0n909mlrsk08l08zmifggnh19cc";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix
index e531f878d02..d3ea80ecb22 100644
--- a/pkgs/os-specific/linux/kernel/linux-libre.nix
+++ b/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 = "17537";
-    sha256 = "15fj5ba28jw515fzfp4pbrkpq5xyvxvx7r9yh1l0qsxjzs2zml8b";
+    rev = "17624";
+    sha256 = "0gs3mpiffny408l9kdrxpj48axarfb2fxvcw4w8zsz5wr7yig0n2";
   }
 , ...
 }:
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
new file mode 100644
index 00000000000..b59a367c4ad
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
@@ -0,0 +1,41 @@
+{ lib, buildLinux, fetchurl
+, kernelPatches ? [ ]
+, structuredExtraConfig ? {}
+, extraMeta ? {}
+, argsOverride ? {}
+, ... } @ args:
+
+let
+  version = "5.4.61-rt37"; # updated by ./update-rt.sh
+  branch = lib.versions.majorMinor version;
+  kversion = builtins.elemAt (lib.splitString "-" version) 0;
+in buildLinux (args // {
+  inherit version;
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
+    sha256 = "197y2yb60m1k8i7mig4pa9wsrklfxq81ba3zfahwb2b31w2kvwc6";
+  };
+
+  kernelPatches = let rt-patch = {
+    name = "rt";
+    patch = fetchurl {
+      url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
+      sha256 = "1qgd55x62pczgmxcxbigkg6f622ma5a6mz4gi55a8mlbxzh2pddj";
+    };
+  }; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
+
+  structuredExtraConfig = with lib.kernel; {
+    PREEMPT_RT = yes;
+    # Fix error: unused option: PREEMPT_RT.
+    EXPERT = yes; # PREEMPT_RT depends on it (in kernel/Kconfig.preempt)
+    # Fix error: option not set correctly: PREEMPT_VOLUNTARY (wanted 'y', got 'n').
+    PREEMPT_VOLUNTARY = lib.mkForce no; # PREEMPT_RT deselects it.
+    # Fix error: unused option: RT_GROUP_SCHED.
+    RT_GROUP_SCHED = lib.mkForce (option no); # Removed by sched-disable-rt-group-sched-on-rt.patch.
+  } // structuredExtraConfig;
+
+  extraMeta = extraMeta // {
+    inherit branch;
+  };
+} // argsOverride)
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix
new file mode 100644
index 00000000000..7c77454040d
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix
@@ -0,0 +1,41 @@
+{ lib, buildLinux, fetchurl
+, kernelPatches ? [ ]
+, structuredExtraConfig ? {}
+, extraMeta ? {}
+, argsOverride ? {}
+, ... } @ args:
+
+let
+  version = "5.6.19-rt12"; # updated by ./update-rt.sh
+  branch = lib.versions.majorMinor version;
+  kversion = builtins.elemAt (lib.splitString "-" version) 0;
+in buildLinux (args // {
+  inherit version;
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
+    sha256 = "1s0yc1138sglbm4vyizl4r7hnc1l7nykdjp4063ad67yayr2ylv2";
+  };
+
+  kernelPatches = let rt-patch = {
+    name = "rt";
+    patch = fetchurl {
+      url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
+      sha256 = "0ia8rx0615x0z2s4ppw1244crg7c5ak07c9n3wbnz7y8bk8hyxws";
+    };
+  }; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
+
+  structuredExtraConfig = with lib.kernel; {
+    PREEMPT_RT = yes;
+    # Fix error: unused option: PREEMPT_RT.
+    EXPERT = yes; # PREEMPT_RT depends on it (in kernel/Kconfig.preempt)
+    # Fix error: option not set correctly: PREEMPT_VOLUNTARY (wanted 'y', got 'n').
+    PREEMPT_VOLUNTARY = lib.mkForce no; # PREEMPT_RT deselects it.
+    # Fix error: unused option: RT_GROUP_SCHED.
+    RT_GROUP_SCHED = lib.mkForce (option no); # Removed by sched-disable-rt-group-sched-on-rt.patch.
+  } // structuredExtraConfig;
+
+  extraMeta = extraMeta // {
+    inherit branch;
+  };
+} // argsOverride)
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index 382713e5834..a78d853bb7f 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -3,15 +3,15 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.8-rc2";
-  extraMeta.branch = "5.8";
+  version = "5.9-rc3";
+  extraMeta.branch = "5.9";
 
   # 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 = "03y4p5abmcjm3w5m7p868bqzzrrqz461na9h46f3f99g95z66v09";
+    sha256 = "1byckdxy0y5i3lgw3f3n7b4r3v1xb4g1z3ffiq3hp4ga4nf5xzw3";
   };
 
   # Should the testing kernels ever be built on Hydra?
diff --git a/pkgs/os-specific/linux/kernel/linux-zen.nix b/pkgs/os-specific/linux/kernel/linux-zen.nix
new file mode 100644
index 00000000000..8dea4c17092
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-zen.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, buildLinux, ... } @ args:
+
+let
+  version = "5.8.7";
+in
+
+buildLinux (args // {
+  modDirVersion = "${version}-zen1";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "zen-kernel";
+    repo = "zen-kernel";
+    rev = "v${version}-zen1";
+    sha256 = "06s7dpfxvwqfyh8qm8krcaxy98ki26cgh67k12g734bclg4bqsc5";
+  };
+
+  extraMeta = {
+    branch = "5.8/master";
+    maintainers = with stdenv.lib.maintainers; [ atemu ];
+  };
+
+} // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix
index 3a2682b2cfe..92dc334135a 100644
--- a/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -1,6 +1,5 @@
 { buildPackages, runCommand, nettools, bc, bison, flex, perl, rsync, gmp, libmpc, mpfr, openssl
 , libelf, cpio, elfutils
-, utillinuxMinimal
 , writeTextFile
 }:
 
@@ -281,7 +280,6 @@ let
 in
 
 assert (stdenv.lib.versionAtLeast version "4.14" && stdenv.lib.versionOlder version "5.8") -> libelf != null;
-assert stdenv.lib.versionAtLeast version "4.15" -> utillinuxMinimal != null;
 assert stdenv.lib.versionAtLeast version "5.8" -> elfutils != null;
 
 stdenv.mkDerivation ((drvAttrs config stdenv.hostPlatform.platform kernelPatches configfile) // {
@@ -294,7 +292,7 @@ stdenv.mkDerivation ((drvAttrs config stdenv.hostPlatform.platform kernelPatches
   nativeBuildInputs = [ perl bc nettools openssl rsync gmp libmpc mpfr ]
       ++ optional  (stdenv.hostPlatform.platform.kernelTarget == "uImage") buildPackages.ubootTools
       ++ optional  (stdenv.lib.versionAtLeast version "4.14" && stdenv.lib.versionOlder version "5.8") libelf
-      ++ optional  (stdenv.lib.versionAtLeast version "4.15") utillinuxMinimal
+      # Removed utillinuxMinimal since it should not be a dependency.
       ++ optionals (stdenv.lib.versionAtLeast version "4.16") [ bison flex ]
       ++ optional  (stdenv.lib.versionAtLeast version "5.2")  cpio
       ++ optional  (stdenv.lib.versionAtLeast version "5.8")  elfutils
diff --git a/pkgs/os-specific/linux/kernel/update-rt.sh b/pkgs/os-specific/linux/kernel/update-rt.sh
new file mode 100755
index 00000000000..bcfa494d7e7
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/update-rt.sh
@@ -0,0 +1,77 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+# To update all rt kernels run: ./update-rt.sh
+
+# To update just one ./linux-rt-5.X.nix run: ./update-rt.sh ./linux-rt-5.X.nix
+
+# To add a new kernel branch 5.Y run: ./update-rt.sh ./linux-rt-5.Y.nix
+# (with nonexistent .nix file) and update all-packages.nix.
+
+# To commit run with: env COMMIT=1
+
+mirror=https://kernel.org/pub/linux/kernel
+
+main() {
+    if [ $# -ge 1 ]; then
+        update-if-needed "$1"
+    else
+        update-all-if-needed
+    fi
+}
+
+update-all-if-needed() {
+    for f in "$(dirname "$0")"/linux-rt-*.nix; do
+        update-if-needed "$f"
+    done
+}
+
+file-version() {
+    file="$1" # e.g. ./linux-rt-5.4.nix
+    if [ -e "$file" ]; then
+        grep ' version = ' "$file" | grep -o '[0-9].[^"]*'
+    fi
+}
+
+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 }'
+}
+
+update-if-needed() {
+    file="$1" # e.g. ./linux-rt-5.4.nix (created if does not exist)
+    branch=$(basename "$file" .nix) # e.g. linux-rt-5.4
+    branch=${branch#linux-rt-} # e.g. 5.4
+    cur=$(file-version "$file") # e.g. 5.4.59-rt36 or empty
+    new=$(latest-rt-version "$branch") # e.g. 5.4.61-rt37
+    kversion=${new%-*} # e.g. 5.4.61
+    major=${branch%.*} # e.g 5
+    nixattr="linux-rt_${branch/./_}"
+    if [ "$new" = "$cur" ]; then
+        echo "$nixattr: $cur (up-to-date)"
+        return
+    fi
+    khash=$(nix-prefetch-url "$mirror/v${major}.x/linux-${kversion}.tar.xz")
+    phash=$(nix-prefetch-url "$mirror/projects/rt/${branch}/older/patch-${new}.patch.xz")
+    if [ "$cur" ]; then
+        msg="$nixattr: $cur -> $new"
+    else
+        msg="$nixattr: init at $new"
+        prev=$(ls "$(dirname "$0")"/linux-rt-*.nix | tail -1)
+        cp "$prev" "$file"
+        cur=$(file-version "$file")
+    fi
+    echo "$msg"
+    sed -i "$file" \
+        -e "s/$cur/$new/" \
+        -e "s|kernel/v[0-9]*|kernel/v$major|" \
+        -e "1,/.patch.xz/ s/sha256 = .*/sha256 = \"$khash\";/" \
+        -e "1,/.patch.xz/! s/sha256 = .*/sha256 = \"$phash\";/"
+    if [ "${COMMIT:-}" ]; then
+        git add "$file"
+        git commit -m "$msg"
+    fi
+}
+
+return 2>/dev/null || main "$@"
diff --git a/pkgs/os-specific/linux/kernel/update.sh b/pkgs/os-specific/linux/kernel/update.sh
index 55fdce06c97..560edced36e 100755
--- a/pkgs/os-specific/linux/kernel/update.sh
+++ b/pkgs/os-specific/linux/kernel/update.sh
@@ -58,6 +58,9 @@ ls $NIXPKGS/pkgs/os-specific/linux/kernel | while read FILE; do
   echo "Updated $OLDVER -> $V"
 done
 
+# Update linux-rt
+COMMIT=1 $NIXPKGS/pkgs/os-specific/linux/kernel/update-rt.sh
+
 # Update linux-libre
 COMMIT=1 $NIXPKGS/pkgs/os-specific/linux/kernel/update-libre.sh
 
diff --git a/pkgs/os-specific/linux/keyutils/default.nix b/pkgs/os-specific/linux/keyutils/default.nix
index 76869bfde5b..553b0b87f41 100644
--- a/pkgs/os-specific/linux/keyutils/default.nix
+++ b/pkgs/os-specific/linux/keyutils/default.nix
@@ -1,5 +1,10 @@
 { stdenv, fetchurl }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   pname = "keyutils";
   version = "1.6.1";
diff --git a/pkgs/os-specific/linux/klibc/default.nix b/pkgs/os-specific/linux/klibc/default.nix
index a92970726dc..55faa216a12 100644
--- a/pkgs/os-specific/linux/klibc/default.nix
+++ b/pkgs/os-specific/linux/klibc/default.nix
@@ -9,11 +9,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "klibc";
-  version = "2.0.7";
+  version = "2.0.8";
 
   src = fetchurl {
     url = "mirror://kernel/linux/libs/klibc/2.0/klibc-${version}.tar.xz";
-    sha256 = "08li3aj9bvzabrih98jdxi3m19h85cp53s8cr7cqad42r8vjdvxb";
+    sha256 = "0dmlkhnn5q8fc6rkzsisir4chkzmmiq6xkjmvyvf0g7yihwz2j2f";
   };
 
   patches = [ ./no-reinstall-kernel-headers.patch ];
diff --git a/pkgs/os-specific/linux/kmod/default.nix b/pkgs/os-specific/linux/kmod/default.nix
index f1cc4558b05..805b8a32aed 100644
--- a/pkgs/os-specific/linux/kmod/default.nix
+++ b/pkgs/os-specific/linux/kmod/default.nix
@@ -24,7 +24,7 @@ in stdenv.mkDerivation rec {
     "--with-modulesdirs=${modulesDirs}"
   ] ++ lib.optional withStatic "--enable-static";
 
-  patches = [ ./module-dir.patch ]
+  patches = [ ./module-dir.patch ./no-name-field.patch ]
     ++ lib.optional stdenv.isDarwin ./darwin.patch
     ++ lib.optional withStatic ./enable-static.patch;
 
diff --git a/pkgs/os-specific/linux/kmod/no-name-field.patch b/pkgs/os-specific/linux/kmod/no-name-field.patch
new file mode 100644
index 00000000000..282f59e55e5
--- /dev/null
+++ b/pkgs/os-specific/linux/kmod/no-name-field.patch
@@ -0,0 +1,24 @@
+
+---
+ tools/modinfo.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/tools/modinfo.c b/tools/modinfo.c
+index 0231bb0..7b2259e 100644
+--- a/tools/modinfo.c
++++ b/tools/modinfo.c
+@@ -178,7 +178,10 @@ static int modinfo_do(struct kmod_module *mod)
+ 	is_builtin = (filename == NULL);
+ 
+ 	if (is_builtin) {
+-		printf("%-16s%s%c", "name:", kmod_module_get_name(mod), separator);
++		if (field == NULL || field != NULL && streq(field, "name")){
++			printf("%-16s%s%c", "name:",
++			       kmod_module_get_name(mod), separator);
++		}
+ 		filename = "(builtin)";
+ 	}
+ 
+-- 
+2.28.0
+
diff --git a/pkgs/os-specific/linux/kmscon/default.nix b/pkgs/os-specific/linux/kmscon/default.nix
index a79f762a8a2..29f99629df8 100644
--- a/pkgs/os-specific/linux/kmscon/default.nix
+++ b/pkgs/os-specific/linux/kmscon/default.nix
@@ -1,5 +1,6 @@
 { stdenv
-, fetchurl
+, fetchFromGitHub
+, autoreconfHook
 , libtsm
 , systemd
 , libxkbcommon
@@ -13,32 +14,32 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "kmscon-8";
-
-  src = fetchurl {
-    url = "https://www.freedesktop.org/software/kmscon/releases/${name}.tar.xz";
-    sha256 = "0axfwrp3c8f4gb67ap2sqnkn75idpiw09s35wwn6kgagvhf1rc0a";
+  pname = "kmscon";
+  version = "unstable-2018-09-07";
+
+  src = fetchFromGitHub {
+    owner = "Aetf";
+    repo = "kmscon";
+    rev = "01dd0a231e2125a40ceba5f59fd945ff29bf2cdc";
+    sha256 = "0q62kjsvy2iwy8adfiygx2bfwlh83rphgxbis95ycspqidg9py87";
   };
 
   buildInputs = [
+    libGLU libGL
+    libdrm
     libtsm
-    systemd
     libxkbcommon
-    libdrm
-    libGLU libGL
+    libxslt
     pango
     pixman
-    pkgconfig
-    docbook_xsl
-    libxslt
+    systemd
   ];
 
-  patches = [ ./kmscon-8-glibc-2.26.patch ];
-
-  # FIXME: Remove as soon as kmscon > 8 comes along.
-  postPatch = ''
-    sed -i -e 's/libsystemd-daemon libsystemd-login/libsystemd/g' configure
-  '';
+  nativeBuildInputs = [
+    autoreconfHook
+    docbook_xsl
+    pkgconfig
+  ];
 
   configureFlags = [
     "--enable-multi-seat"
@@ -49,10 +50,10 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "KMS/DRM based System Console";
     homepage = "http://www.freedesktop.org/wiki/Software/kmscon/";
-    license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.mit;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/kmscon/kmscon-8-glibc-2.26.patch b/pkgs/os-specific/linux/kmscon/kmscon-8-glibc-2.26.patch
deleted file mode 100644
index b70a750180e..00000000000
--- a/pkgs/os-specific/linux/kmscon/kmscon-8-glibc-2.26.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/src/pty.c b/src/pty.c
-index 3494104..1443f4a 100644
---- a/src/pty.c
-+++ b/src/pty.c
-@@ -299,7 +299,7 @@ static void setup_child(int master, struct winsize *ws)
- 	if (ret)
- 		log_warn("cannot reset blocked signals: %m");
- 
--	for (i = 1; i < SIGUNUSED; ++i)
-+	for (i = 1; i < SIGSYS; ++i)
- 		signal(i, SIG_DFL);
- 
- 	ret = grantpt(master);
-diff --git a/src/uterm_vt.c b/src/uterm_vt.c
-index af377f5..fbe9e76 100644
---- a/src/uterm_vt.c
-+++ b/src/uterm_vt.c
-@@ -40,6 +40,7 @@
- #include <sys/ioctl.h>
- #include <sys/signalfd.h>
- #include <sys/stat.h>
-+#include <sys/sysmacros.h>
- #include <termios.h>
- #include <time.h>
- #include <unistd.h>
diff --git a/pkgs/os-specific/linux/libbpf/default.nix b/pkgs/os-specific/linux/libbpf/default.nix
index 0a98475384d..0f2f9aa86f4 100644
--- a/pkgs/os-specific/linux/libbpf/default.nix
+++ b/pkgs/os-specific/linux/libbpf/default.nix
@@ -6,13 +6,13 @@ with builtins;
 
 stdenv.mkDerivation rec {
   pname = "libbpf";
-  version = "0.0.9";
+  version = "0.1.0";
 
   src = fetchFromGitHub {
-    owner = "libbpf";
-    repo = "libbpf";
-    rev = "v${version}";
-    sha256 = "18l0gff7nm841mwhr7bc7x863xcyvwh58zl7mc0amnsjqlbrvqg7";
+    owner  = "libbpf";
+    repo   = "libbpf";
+    rev    = "v${version}";
+    sha256 = "1wi3a795jq0smqg1c5ml2ghai47n1m5ijmch017wscybx4jdlynv";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/os-specific/linux/libfabric/default.nix b/pkgs/os-specific/linux/libfabric/default.nix
index 40f92f38d16..52de79e1f2d 100644
--- a/pkgs/os-specific/linux/libfabric/default.nix
+++ b/pkgs/os-specific/linux/libfabric/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libfabric";
-  version = "1.10.1";
+  version = "1.11.0";
 
   enableParallelBuilding = true;
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "ofiwg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0nf5x4v9rhyd67r6f6q3dw4sraaja8jfdkhhg9g8x41czmx4d456";
+    sha256 = "1wgn6gsiy64rb76i46dsqlvp687lwqzxwg5lgj1y5y7lyqbq96wp";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ] ;
diff --git a/pkgs/os-specific/linux/linuxptp/default.nix b/pkgs/os-specific/linux/linuxptp/default.nix
index 84a0f4a10d5..79048064ecc 100644
--- a/pkgs/os-specific/linux/linuxptp/default.nix
+++ b/pkgs/os-specific/linux/linuxptp/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "linuxptp";
-  version = "2.0";
+  version = "3.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/linuxptp/${pname}-${version}.tgz";
-    sha256 = "0zcw8nllla06451r7bfsa31q4z8jj56j67i07l1azm473r0dj90a";
+    sha256 = "11aps4bc0maihldlb2d0yh2fnj6x4vwjad337kszyny74akyqk6p";
   };
 
   postPatch = ''
diff --git a/pkgs/os-specific/linux/lvm2/default.nix b/pkgs/os-specific/linux/lvm2/default.nix
index 8db4be94e4e..7bbd1768c04 100644
--- a/pkgs/os-specific/linux/lvm2/default.nix
+++ b/pkgs/os-specific/linux/lvm2/default.nix
@@ -1,48 +1,72 @@
-{ stdenv, fetchgit, fetchpatch, pkgconfig, systemd, udev, utillinux, libuuid
+{ stdenv
+, fetchpatch
+, fetchurl
+, pkgconfig
+, utillinux
+, libuuid
 , thin-provisioning-tools, libaio
-, enable_dmeventd ? false }:
+, enableCmdlib ? false
+, enableDmeventd ? false
+, udev ? null
+, nixosTests
+}:
 
-let
-  version = "2.03.01";
-in
+# configure: error: --enable-dmeventd requires --enable-cmdlib to be used as well
+assert enableDmeventd -> enableCmdlib;
 
-stdenv.mkDerivation {
-  pname = "lvm2";
-  inherit version;
+stdenv.mkDerivation rec {
+  pname = "lvm2" + stdenv.lib.optionalString enableDmeventd "with-dmeventd";
+  version = "2.03.10";
 
-  src = fetchgit {
-    url = "git://sourceware.org/git/lvm2.git";
-    rev = "v${builtins.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "0jlaswf1srdxiqpgpp97j950ddjds8z0kr4pbwmal2za2blrgvbl";
+  src = fetchurl {
+    url = "https://mirrors.kernel.org/sourceware/lvm2/LVM2.${version}.tgz";
+    sha256 = "1l0fkn9abrgk5mfn6jfh9qhdr86b59l1c5pk6lp8jh0491d69las";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ udev libuuid thin-provisioning-tools libaio ];
+
   configureFlags = [
     "--disable-readline"
-    "--enable-udev_rules"
-    "--enable-udev_sync"
     "--enable-pkgconfig"
-    "--enable-cmdlib"
-  ] ++ stdenv.lib.optional enable_dmeventd " --enable-dmeventd"
-  ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "--with-default-locking-dir=/run/lock/lvm"
+    "--with-default-run-dir=/run/lvm"
+    "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
+  ] ++ stdenv.lib.optionals (!enableCmdlib) [
+    "--bindir=${placeholder "bin"}/bin"
+    "--sbindir=${placeholder "bin"}/bin"
+    "--libdir=${placeholder "lib"}/lib"
+  ] ++ stdenv.lib.optional enableCmdlib "--enable-cmdlib"
+  ++ stdenv.lib.optionals enableDmeventd [
+    "--enable-dmeventd"
+    "--with-dmeventd-pidfile=/run/dmeventd/pid"
+    "--with-default-dm-run-dir=/run/dmeventd"
+  ] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     "ac_cv_func_malloc_0_nonnull=yes"
     "ac_cv_func_realloc_0_nonnull=yes"
+  ] ++
+  stdenv.lib.optionals (udev != null) [
+    "--enable-udev_rules"
+    "--enable-udev_sync"
   ];
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ udev libuuid thin-provisioning-tools libaio ];
+  preConfigure = ''
+    sed -i /DEFAULT_SYS_DIR/d Makefile.in
+    sed -i /DEFAULT_PROFILE_DIR/d conf/Makefile.in
+    substituteInPlace scripts/lvm2_activation_generator_systemd_red_hat.c \
+      --replace /usr/bin/udevadm /run/current-system/systemd/bin/udevadm
+    # https://github.com/lvmteam/lvm2/issues/36
+    substituteInPlace udev/69-dm-lvm-metad.rules.in \
+      --replace "(BINDIR)/systemd-run" /run/current-system/systemd/bin/systemd-run
 
-  preConfigure =
-    ''
-      sed -i /DEFAULT_SYS_DIR/d Makefile.in
-      sed -i /DEFAULT_PROFILE_DIR/d conf/Makefile.in
-    '' + stdenv.lib.optionalString (systemd != null) ''
-      substituteInPlace scripts/lvm2_activation_generator_systemd_red_hat.c \
-        --replace /usr/bin/udevadm ${systemd}/bin/udevadm
-    '';
+    substituteInPlace make.tmpl.in --replace "@systemdsystemunitdir@" "$out/lib/systemd/system"
+    substituteInPlace libdm/make.tmpl.in --replace "@systemdsystemunitdir@" "$out/lib/systemd/system"
+  '';
+
+  postConfigure = ''
+    sed -i 's|^#define LVM_CONFIGURE_LINE.*$|#define LVM_CONFIGURE_LINE "<removed>"|g' ./include/configure.h
+  '';
 
-  # https://github.com/NixOS/nixpkgs/pull/52597
-  # gcc: error: ../../device_mapper/libdevice-mapper.a: No such file or directory
-  enableParallelBuilding = false;
 
   patches = stdenv.lib.optionals stdenv.hostPlatform.isMusl [
     (fetchpatch {
@@ -64,30 +88,41 @@ stdenv.mkDerivation {
 
   doCheck = false; # requires root
 
+  makeFlags = stdenv.lib.optionals (udev != null) [
+    "SYSTEMD_GENERATOR_DIR=$(out)/lib/systemd/system-generators"
+  ];
+
   # To prevent make install from failing.
   installFlags = [ "OWNER=" "GROUP=" "confdir=$(out)/etc" ];
 
   # Install systemd stuff.
-  #installTargets = "install install_systemd_generators install_systemd_units install_tmpfiles_configuration";
-
-  postInstall =
-    ''
-      substituteInPlace $out/lib/udev/rules.d/13-dm-disk.rules \
-        --replace $out/sbin/blkid ${utillinux}/sbin/blkid
-    '' + stdenv.lib.optionalString (systemd != null) ''
-      # Systemd stuff
-      mkdir -p $out/etc/systemd/system $out/lib/systemd/system-generators
-      cp scripts/blk_availability_systemd_red_hat.service $out/etc/systemd/system
-      cp scripts/lvm2_activation_generator_systemd_red_hat $out/lib/systemd/system-generators
-    '';
+  installTargets = [ "install" ] ++ stdenv.lib.optionals (udev != null) [
+    "install_systemd_generators"
+    "install_systemd_units"
+    "install_tmpfiles_configuration"
+  ];
+
+  # only split bin and lib out from out if cmdlib isn't enabled
+  outputs = [
+    "out"
+    "dev"
+    "man"
+  ] ++ stdenv.lib.optionals (enableCmdlib != true) [
+    "bin"
+    "lib"
+  ];
+
+  postInstall = stdenv.lib.optionalString (enableCmdlib != true) ''
+    moveToOutput lib/libdevmapper.so $lib
+  '';
+
+  passthru.tests.installer = nixosTests.installer.lvm;
 
   meta = with stdenv.lib; {
     homepage = "http://sourceware.org/lvm2/";
     description = "Tools to support Logical Volume Management (LVM) on Linux";
     platforms = platforms.linux;
     license = with licenses; [ gpl2 bsd2 lgpl21 ];
-    maintainers = with maintainers; [raskin];
-    inherit version;
-    downloadPage = "ftp://sources.redhat.com/pub/lvm2/";
+    maintainers = with maintainers; [ raskin ajs124 ];
   };
 }
diff --git a/pkgs/os-specific/linux/lvm2/default.upstream b/pkgs/os-specific/linux/lvm2/default.upstream
deleted file mode 100644
index 1e5aaf5ab5c..00000000000
--- a/pkgs/os-specific/linux/lvm2/default.upstream
+++ /dev/null
@@ -1,4 +0,0 @@
-url ftp://sources.redhat.com/pub/lvm2/
-version_link '[.]tgz$'
-version '.*[^0-9.][^.]*[.]([0-9.]+)[.].*' '\1'
-do_overwrite () { do_overwrite_just_version; }
diff --git a/pkgs/os-specific/linux/lxc/default.nix b/pkgs/os-specific/linux/lxc/default.nix
index cc25f90f248..21c1eede9d7 100644
--- a/pkgs/os-specific/linux/lxc/default.nix
+++ b/pkgs/os-specific/linux/lxc/default.nix
@@ -9,11 +9,11 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "lxc";
-  version = "4.0.2";
+  version = "4.0.4";
 
   src = fetchurl {
     url = "https://linuxcontainers.org/downloads/lxc/lxc-${version}.tar.gz";
-    sha256 = "1c2wbbcvs58slyq0skxizx61q1lb4yvak28x4gzsbzh3yg6nscya";
+    sha256 = "15frszz5am9bnr8vh1zpg89x0xigcfm19jax0z16cazd42xahr9w";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/lxcfs/default.nix b/pkgs/os-specific/linux/lxcfs/default.nix
index 4011b388562..bcc8614bc6a 100644
--- a/pkgs/os-specific/linux/lxcfs/default.nix
+++ b/pkgs/os-specific/linux/lxcfs/default.nix
@@ -4,13 +4,14 @@
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
-  name = "lxcfs-4.0.3";
+  pname = "lxcfs";
+  version = "4.0.5";
 
   src = fetchFromGitHub {
     owner = "lxc";
     repo = "lxcfs";
-    rev = name;
-    sha256 = "0v6c5vc3i1l4sy4iamzdqvwibj6xr1lna4w1hxkn3s6jggcbxwca";
+    rev = "lxcfs-${version}";
+    sha256 = "12mk9hgqzzh1874389lrpvldlp87qxxa1sxzk5zr0d0n1857am5y";
   };
 
   nativeBuildInputs = [ pkgconfig help2man autoreconfHook ];
@@ -40,8 +41,9 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    homepage = "https://linuxcontainers.org/lxcfs";
     description = "FUSE filesystem for LXC";
+    homepage = "https://linuxcontainers.org/lxcfs";
+    changelog = "https://linuxcontainers.org/lxcfs/news/";
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ mic92 fpletz ];
diff --git a/pkgs/os-specific/linux/microcode/amd.nix b/pkgs/os-specific/linux/microcode/amd.nix
index a1a37db9dd6..135187c9a10 100644
--- a/pkgs/os-specific/linux/microcode/amd.nix
+++ b/pkgs/os-specific/linux/microcode/amd.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   meta = with stdenv.lib; {
     description = "AMD Processor microcode patch";
-    homepage = "http://www.amd64.org/support/microcode.html";
+    homepage = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git";
     license = licenses.unfreeRedistributableFirmware;
     platforms = platforms.linux;
   };
diff --git a/pkgs/os-specific/linux/multipath-tools/default.nix b/pkgs/os-specific/linux/multipath-tools/default.nix
index d60b4a9a549..02853f6497f 100644
--- a/pkgs/os-specific/linux/multipath-tools/default.nix
+++ b/pkgs/os-specific/linux/multipath-tools/default.nix
@@ -10,8 +10,13 @@ stdenv.mkDerivation rec {
     sha256 = "1mgjylklh1cx8px8ffgl12kyc0ln3445vbabd2sy8chq31rpiiq8";
   };
 
+  patches = [
+    # fix build with json-c 0.14 https://www.redhat.com/archives/dm-devel/2020-May/msg00261.html
+    ./json-c-0.14.patch
+  ];
+
   postPatch = ''
-    substituteInPlace libmultipath/Makefile --replace /usr/include/libdevmapper.h ${lvm2}/include/libdevmapper.h
+    substituteInPlace libmultipath/Makefile --replace /usr/include/libdevmapper.h ${stdenv.lib.getDev lvm2}/include/libdevmapper.h
     sed -i -re '
       s,^( *#define +DEFAULT_MULTIPATHDIR\>).*,\1 "'"$out/lib/multipath"'",
     ' libmultipath/defaults.h
diff --git a/pkgs/os-specific/linux/multipath-tools/json-c-0.14.patch b/pkgs/os-specific/linux/multipath-tools/json-c-0.14.patch
new file mode 100644
index 00000000000..d5fee424883
--- /dev/null
+++ b/pkgs/os-specific/linux/multipath-tools/json-c-0.14.patch
@@ -0,0 +1,21 @@
+diff --git a/libdmmp/libdmmp_private.h b/libdmmp/libdmmp_private.h
+index ac85b63f..b1a6ddea 100644
+--- a/libdmmp/libdmmp_private.h
++++ b/libdmmp/libdmmp_private.h
+@@ -30,6 +30,7 @@
+ #include <stdint.h>
+ #include <string.h>
+ #include <assert.h>
++#include <stdbool.h>
+ #include <json.h>
+ 
+ #include "libdmmp/libdmmp.h"
+@@ -82,7 +83,7 @@ static out_type func_name(struct dmmp_context *ctx, const char *var_name) { \
+ do { \
+ 	json_type j_type = json_type_null; \
+ 	json_object *j_obj_tmp = NULL; \
+-	if (json_object_object_get_ex(j_obj, key, &j_obj_tmp) != TRUE) { \
++	if (json_object_object_get_ex(j_obj, key, &j_obj_tmp) != true) { \
+ 		_error(ctx, "Invalid JSON output from multipathd IPC: " \
+ 		       "key '%s' not found", key); \
+ 		rc = DMMP_ERR_IPC_ERROR; \
diff --git a/pkgs/os-specific/linux/musl/default.nix b/pkgs/os-specific/linux/musl/default.nix
index 422ad5c1cb5..67d08454a84 100644
--- a/pkgs/os-specific/linux/musl/default.nix
+++ b/pkgs/os-specific/linux/musl/default.nix
@@ -35,11 +35,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "musl";
-  version = "1.1.24";
+  version = "1.2.0";
 
   src = fetchurl {
     url    = "https://www.musl-libc.org/releases/${pname}-${version}.tar.gz";
-    sha256 = "18r2a00k82hz0mqdvgm7crzc7305l36109c0j9yjmkxj2alcjw0k";
+    sha256 = "1s6lix02k1ijm4nmhzpmwzk5w6xfkhn70nvvk8zjs51r24cpppn6";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/os-specific/linux/nftables/default.nix b/pkgs/os-specific/linux/nftables/default.nix
index 34f899977d1..9ec42ad66b0 100644
--- a/pkgs/os-specific/linux/nftables/default.nix
+++ b/pkgs/os-specific/linux/nftables/default.nix
@@ -10,12 +10,12 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "0.9.3";
+  version = "0.9.6";
   pname = "nftables";
 
   src = fetchurl {
     url = "https://netfilter.org/projects/nftables/files/${pname}-${version}.tar.bz2";
-    sha256 = "0y6vbqp6x8w165q65h4n9sba1406gaz0d4744gqszbm7w9f92swm";
+    sha256 = "0vmn6xwqa1nq6crfxshh049b199d0aj6hfgin7k068xhibzgvmk8";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/numworks-udev-rules/50-numworks-calculator.rules b/pkgs/os-specific/linux/numworks-udev-rules/50-numworks-calculator.rules
new file mode 100644
index 00000000000..ab07de99718
--- /dev/null
+++ b/pkgs/os-specific/linux/numworks-udev-rules/50-numworks-calculator.rules
@@ -0,0 +1,2 @@
+SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="a291", TAG+="uaccess"
+SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="df11", TAG+="uaccess"
diff --git a/pkgs/os-specific/linux/numworks-udev-rules/default.nix b/pkgs/os-specific/linux/numworks-udev-rules/default.nix
new file mode 100644
index 00000000000..4a123b20273
--- /dev/null
+++ b/pkgs/os-specific/linux/numworks-udev-rules/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "numworks-udev-rules";
+  version = "unstable-2020-08-31";
+
+  udevRules = ./50-numworks-calculator.rules;
+  dontUnpack = true;
+
+  installPhase = ''
+    install -Dm 644 "${udevRules}" "$out/lib/udev/rules.d/50-numworks-calculator.rules"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Udev rules for Numworks calculators";
+    homepage = "https://numworks.com";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/numworks-udev-rules/update.sh b/pkgs/os-specific/linux/numworks-udev-rules/update.sh
new file mode 100755
index 00000000000..3949f6fd8f4
--- /dev/null
+++ b/pkgs/os-specific/linux/numworks-udev-rules/update.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+wget -O 50-numworks-calculator.rules "https://workshop.numworks.com/files/drivers/linux/50-numworks-calculator.rules"
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index 74ebb179667..df71a953fee 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -22,20 +22,15 @@ rec {
   # Policy: use the highest stable version as the default (on our master).
   stable = if stdenv.hostPlatform.system == "x86_64-linux"
     then generic {
-      version = "440.100";
-      sha256_64bit = "07ygp8xs293glbybv2psi5ykfdlpgwp03bkczf51fyzknkx895k4";
-      settingsSha256 = "1chis62wk4a93m49w4ncq0za4h7si6f3ckbl9ifxx7vnab8rk6ly";
-      persistencedSha256 = "142fdxhznzjsnmvgpmi9x7gy6mp3n25acxfnfmf37ncs4sk0wm6i";
+      version = "450.66";
+      sha256_64bit = "1a6va0gvbzpkyza693v2ml1is4xbv8wxasqk0zd5y7rxin94c1ms";
+      settingsSha256 = "0mkgs91gx7xb7f24xkq9fl7i8d4l7s0wr9a44b1gm1vkw82fm7lj";
+      persistencedSha256 = "02id8cg8fba7c1j4m6vj4gp2mv39lz2k557kdjw8lszcpw6f1fhh";
     }
     else legacy_390;
 
   # No active beta right now
-  beta = generic {
-    version = "450.51";
-    sha256_64bit = "17pam9737jx9vvczma5rafa0rihprccmfz84clb1y4nhbay5alf2";
-    settingsSha256 = "09hc1mjh7s94hy37rslxrxr30kx9a4yfnkmv35wn86b2p9zk3w6n";
-    persistencedSha256 = "0jmri8kj6gffqn8pm8nijhq2airvgid11vj2ffc037l7z4w0s6ar";
-  };
+  beta = stable;
 
   # Last one supporting x86
   legacy_390 = generic {
diff --git a/pkgs/os-specific/linux/nvidia-x11/generic.nix b/pkgs/os-specific/linux/nvidia-x11/generic.nix
index d62ade04e63..63091e9875f 100644
--- a/pkgs/os-specific/linux/nvidia-x11/generic.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/generic.nix
@@ -19,6 +19,9 @@
   # nvidia-settings).  Used to support 32-bit binaries on 64-bit
   # Linux.
   libsOnly ? false
+, # don't include the bundled 32-bit libraries on 64-bit platforms,
+  # even if it’s in downloaded binary
+  disable32Bit ? false
 }:
 
 with stdenv.lib;
@@ -30,7 +33,7 @@ assert ! versionOlder version "391" -> stdenv.hostPlatform.system == "x86_64-lin
 let
   nameSuffix = optionalString (!libsOnly) "-${kernel.version}";
   pkgSuffix = optionalString (versionOlder version "304") "-pkg0";
-  i686bundled = versionAtLeast version "391";
+  i686bundled = versionAtLeast version "391" && !disable32Bit;
 
   libPathFor = pkgs: pkgs.lib.makeLibraryPath [ pkgs.libdrm pkgs.xorg.libXext pkgs.xorg.libX11
     pkgs.xorg.libXv pkgs.xorg.libXrandr pkgs.xorg.libxcb pkgs.zlib pkgs.stdenv.cc.cc ];
diff --git a/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix b/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix
new file mode 100644
index 00000000000..3247e8c4eda
--- /dev/null
+++ b/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, buildGoModule
+, fetchFromGitHub
+, go-md2man
+, installShellFiles
+, pkg-config
+, bcc
+, libseccomp
+}:
+
+buildGoModule rec {
+  pname = "oci-seccomp-bpf-hook";
+  version = "1.2.0";
+  src = fetchFromGitHub {
+    owner = "containers";
+    repo = "oci-seccomp-bpf-hook";
+    rev = "v${version}";
+    sha256 = "143x4daixzhhhpli1l14r7dr7dn3q42w8dddr16jzhhwighsirqw";
+  };
+  vendorSha256 = null;
+  doCheck = false;
+
+  outputs = [ "out" "man" ];
+  nativeBuildInputs = [
+    go-md2man
+    installShellFiles
+    pkg-config
+  ];
+  buildInputs = [
+    bcc
+    libseccomp
+  ];
+
+  buildPhase = ''
+    make
+  '';
+
+  postBuild = ''
+    substituteInPlace oci-seccomp-bpf-hook.json --replace HOOK_BIN_DIR "$out/bin"
+  '';
+
+  installPhase = ''
+    install -Dm755 bin/* -t $out/bin
+    install -Dm644 oci-seccomp-bpf-hook.json -t $out
+    installManPage docs/*.[1-9]
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/containers/oci-seccomp-bpf-hook";
+    description = ''
+      OCI hook to trace syscalls and generate a seccomp profile
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ saschagrunert ];
+    platforms = platforms.linux;
+    badPlatforms = [ "aarch64-linux" ];
+  };
+}
diff --git a/pkgs/os-specific/linux/open-iscsi/default.nix b/pkgs/os-specific/linux/open-iscsi/default.nix
index 43859dc9af3..01bbd9a9cc1 100644
--- a/pkgs/os-specific/linux/open-iscsi/default.nix
+++ b/pkgs/os-specific/linux/open-iscsi/default.nix
@@ -4,7 +4,7 @@
 
 stdenv.mkDerivation rec {
   pname = "open-iscsi";
-  version = "2.1.1";
+  version = "2.1.2";
 
   nativeBuildInputs = [ autoconf automake gettext libtool perl pkgconf ];
   buildInputs = [ kmod openisns.lib openssl systemd utillinux ];
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     owner = "open-iscsi";
     repo = "open-iscsi";
     rev = version;
-    sha256 = "1xa3mbid9mkajp8mr8jx6cymv0kd7yqs96jvff54n6wb9qhn9qll";
+    sha256 = "0fazf2ighj0akrvcj3jm3kd6wl9lgznvr38g6icwfkqk7bykjkam";
   };
 
   DESTDIR = "$(out)";
diff --git a/pkgs/os-specific/linux/pam_p11/default.nix b/pkgs/os-specific/linux/pam_p11/default.nix
new file mode 100644
index 00000000000..d5336cc9f4c
--- /dev/null
+++ b/pkgs/os-specific/linux/pam_p11/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkg-config, openssl, libp11, pam }:
+
+stdenv.mkDerivation rec {
+  pname = "pam_p11";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "OpenSC";
+    repo = "pam_p11";
+    rev = "pam_p11-${version}";
+    sha256 = "1caidy18rq5zk82d51x8vwidmkhwmanf3qm25x1yrdlbhxv6m7lk";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  buildInputs = [ pam openssl libp11 ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/OpenSC/pam_p11";
+    description = "Authentication with PKCS#11 modules";
+    license = licenses.lgpl21Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ sb0 ];
+  };
+}
diff --git a/pkgs/os-specific/linux/pcm/default.nix b/pkgs/os-specific/linux/pcm/default.nix
index f8f0d165d74..06126a92958 100644
--- a/pkgs/os-specific/linux/pcm/default.nix
+++ b/pkgs/os-specific/linux/pcm/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  version = "202005";
+  version = "202007";
   pname = "pcm";
 
   src = fetchFromGitHub {
     owner = "opcm";
     repo = "pcm";
     rev = version;
-    sha256 = "10dyjgbxb263i64p4zfvy6xjb2hp7wg2k6ygsr8ikjawllxp8m01";
+    sha256 = "1qqp51mvi52jvf6zf4g1fzv6nh9p37y0i7r2y273gwcdygbidzma";
   };
 
   installPhase = ''
diff --git a/pkgs/os-specific/linux/piper/default.nix b/pkgs/os-specific/linux/piper/default.nix
index 0da97231678..641c8b8ba81 100644
--- a/pkgs/os-specific/linux/piper/default.nix
+++ b/pkgs/os-specific/linux/piper/default.nix
@@ -4,7 +4,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "piper";
-  version = "0.5";
+  version = "0.5.1";
 
   format = "other";
 
@@ -12,7 +12,7 @@ python3.pkgs.buildPythonApplication rec {
     owner  = "libratbag";
     repo   = "piper";
     rev    =  version;
-    sha256 = "00vrcsbsv2477l1ncpyzc61lhxgac84dsgr3sjs8qxw3nh1gaasv";
+    sha256 = "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj";
   };
 
   nativeBuildInputs = [ meson ninja gettext pkgconfig wrapGAppsHook desktop-file-utils appstream-glib gobject-introspection ];
diff --git a/pkgs/os-specific/linux/powerstat/default.nix b/pkgs/os-specific/linux/powerstat/default.nix
index dd3b24dd19a..6020139ad4b 100644
--- a/pkgs/os-specific/linux/powerstat/default.nix
+++ b/pkgs/os-specific/linux/powerstat/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "powerstat";
-  version = "0.02.23";
+  version = "0.02.24";
   
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "1yj8ja0hw92wscazxh9vr3qdz24wpw2fgd3w7w088srfzg2aqf3a";
+    sha256 = "0yrc1xi9flxn2mvmzp0b0vd0md5z4p8fd4y8bszc67xy12qiqy0j";
   };
   
   installFlags = [ "DESTDIR=${placeholder "out"}" ];
diff --git a/pkgs/os-specific/linux/powertop/default.nix b/pkgs/os-specific/linux/powertop/default.nix
index bcac7ab63c0..4bf318d743e 100644
--- a/pkgs/os-specific/linux/powertop/default.nix
+++ b/pkgs/os-specific/linux/powertop/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "powertop";
-  version = "2.10";
+  version = "2.13";
 
   src = fetchurl {
-    url = "https://01.org/sites/default/files/downloads/${pname}-v${version}.tar.gz";
-    sha256 = "0xaazqccyd42v2q532dxx40nqhb9sfsa6cyx8641rl57mfg4bdyk";
+    url = "https://01.org/sites/default/files/downloads/${pname}-${version}.tar.gz";
+    sha256 = "0y1ixw8v17fdb1ima0zshrd0rh4zxdh10r93nrrvq6d4lhn9jpx6";
   };
 
   outputs = [ "out" "man" ];
@@ -20,10 +20,7 @@ stdenv.mkDerivation rec {
       url = "https://git.alpinelinux.org/aports/plain/main/powertop/strerror_r.patch?id=3b9214d436f1611f297b01f72469d66bfe729d6e";
       sha256 = "1kzddhcrb0n2iah4lhgxwwy4mkhq09ch25jjngyq6pdj6pmfkpfw";
     }
-  ) ++ [
-    # Fix vertical scrolling, see: https://lists.01.org/pipermail/powertop/2019-March/002046.html
-    ./fix-vertical-scrolling.patch
-  ];
+  );
 
   postPatch = ''
     substituteInPlace src/main.cpp --replace "/sbin/modprobe" "modprobe"
diff --git a/pkgs/os-specific/linux/powertop/fix-vertical-scrolling.patch b/pkgs/os-specific/linux/powertop/fix-vertical-scrolling.patch
deleted file mode 100644
index b9b3fdbaf34..00000000000
--- a/pkgs/os-specific/linux/powertop/fix-vertical-scrolling.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/display.cpp b/src/display.cpp
-index 07227c5..7b3a7a2 100644
---- a/src/display.cpp
-+++ b/src/display.cpp
-@@ -244,7 +244,7 @@ void cursor_down(void)
- 	w = tab_windows[tab_names[current_tab]];
- 	if (w) {
- 		if (w->ypad_pos < 1000) {
--			if (tab_names[current_tab] == "Tunables" || "WakeUp") {
-+			if (tab_names[current_tab] == "Tunables" || tab_names[current_tab] == "WakeUp") {
- 		                if ((w->cursor_pos + 7) >= LINES) { 
- 					prefresh(w->win, ++w->ypad_pos, w->xpad_pos, 
- 						1, 0, LINES - 3, COLS - 1);
diff --git a/pkgs/os-specific/linux/r8125/default.nix b/pkgs/os-specific/linux/r8125/default.nix
index a837b226138..8cdf11f80ad 100644
--- a/pkgs/os-specific/linux/r8125/default.nix
+++ b/pkgs/os-specific/linux/r8125/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   pname = "r8125";
   # On update please verify (using `diff -r`) that the source matches the
   # realtek version.
-  version = "9.003.02";
+  version = "9.003.05";
 
   # This is a mirror. The original website[1] doesn't allow non-interactive
   # downloads, instead emailing you a download link.
@@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "ibmibmibm";
     repo = "r8125";
-    rev = "${version}";
-    sha256 = "09ip17x8nhcpxkkhyyawkmd10n73j2ffh1i2nmsr7l3jfq7f9zac";
+    rev = version;
+    sha256 = "016vh997xjs01si0zzs572vgflq3czxd0v4m7h1m3qxcv2cvq7i0";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/pkgs/os-specific/linux/rdma-core/default.nix b/pkgs/os-specific/linux/rdma-core/default.nix
index b1770a4d618..59a7125aad6 100644
--- a/pkgs/os-specific/linux/rdma-core/default.nix
+++ b/pkgs/os-specific/linux/rdma-core/default.nix
@@ -4,7 +4,7 @@
 } :
 
 let
-  version = "30.0";
+  version = "31.0";
 
 in stdenv.mkDerivation {
   pname = "rdma-core";
@@ -14,7 +14,7 @@ in stdenv.mkDerivation {
     owner = "linux-rdma";
     repo = "rdma-core";
     rev = "v${version}";
-    sha256 = "1czfh6s0qz2cv2k7ha7nr9qiwcrj5lvwqnvyrvsds463m8ndpg12";
+    sha256 = "0qr8a25ylmkwfgyj519zvl74q16bhf4895xjich2r98rl2yg0qdl";
   };
 
   nativeBuildInputs = [ cmake pkgconfig pandoc docutils makeWrapper ];
diff --git a/pkgs/os-specific/linux/rfkill/default.nix b/pkgs/os-specific/linux/rfkill/default.nix
deleted file mode 100644
index 10d46a84821..00000000000
--- a/pkgs/os-specific/linux/rfkill/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ stdenv, fetchurl }:
-
-stdenv.mkDerivation rec {
-  name = "rfkill-0.5";
-
-  src = fetchurl {
-    url = "mirror://kernel/software/network/rfkill/${name}.tar.bz2";
-    sha256 = "01zs7p9kd92pxgcgwl5w46h3iyx4acfg6m1j5fgnflsaa350q5iy";
-  };
-
-  makeFlags = [ "PREFIX=$(out)" ];
-
-  meta = with stdenv.lib; {
-    homepage = "http://wireless.kernel.org/en/users/Documentation/rfkill";
-    description = "A tool to query, enable and disable wireless devices";
-    platforms = platforms.linux;
-    maintainers = [ maintainers.eelco ];
-    license = licenses.isc;
-  };
-}
diff --git a/pkgs/os-specific/linux/roccat-tools/default.nix b/pkgs/os-specific/linux/roccat-tools/default.nix
index 5c4848980a9..f8a1b836a6c 100644
--- a/pkgs/os-specific/linux/roccat-tools/default.nix
+++ b/pkgs/os-specific/linux/roccat-tools/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, cmake, pkgconfig, gettext
 , dbus, dbus-glib, libgaminggear, libgudev, lua
+, harfbuzz
 }:
 
 stdenv.mkDerivation rec {
@@ -32,6 +33,8 @@ stdenv.mkDerivation rec {
     "-DLIBDIR=lib"
   ];
 
+  NIX_CFLAGS_COMPILE = [ "-I${harfbuzz.dev}/include/harfbuzz" ];
+
   meta = {
     description = "Tools to configure ROCCAT devices";
     homepage = "http://roccat.sourceforge.net/";
diff --git a/pkgs/os-specific/linux/rtl8192eu/default.nix b/pkgs/os-specific/linux/rtl8192eu/default.nix
index 909a972efa3..c6527ac285d 100644
--- a/pkgs/os-specific/linux/rtl8192eu/default.nix
+++ b/pkgs/os-specific/linux/rtl8192eu/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, kernel }:
+{ stdenv, lib, fetchFromGitHub, kernel, bc }:
 
 with lib;
 
@@ -6,19 +6,21 @@ let modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wi
 
 in stdenv.mkDerivation rec {
   name = "rtl8192eu-${kernel.version}-${version}";
-  version = "4.4.1.20190319";
+  version = "4.4.1.20200620";
 
   src = fetchFromGitHub {
     owner = "Mange";
     repo = "rtl8192eu-linux-driver";
-    rev = "0a7199b";
-    sha256 = "0xxb8z7fd997ny53bgmf95hyqsmwjplbj6fry0rf65k9x9nggx71";
+    rev = "925ac2be34dd608a7ca42daebf9713f0c1bcec74";
+    sha256 = "159vg0scq47wnn600karpgzx3naaiyl1rg8608c8d28nhm62gvjz";
   };
 
   hardeningDisable = [ "pic" ];
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
 
+  buildInputs = [ bc ];
+
   makeFlags = [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/os-specific/linux/rtl8821ce/default.nix b/pkgs/os-specific/linux/rtl8821ce/default.nix
index cadc844ac45..ae6586262a5 100644
--- a/pkgs/os-specific/linux/rtl8821ce/default.nix
+++ b/pkgs/os-specific/linux/rtl8821ce/default.nix
@@ -6,8 +6,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "tomaspinho";
     repo = "rtl8821ce";
-    rev = "69765eb288a8dfad3b055b906760b53e02ab1dea";
-    sha256 = "17jiw25k74kv5lnvgycvj2g1n06hbrpjz6p4znk4a62g136rhn4s";
+    rev = "8d7edbe6a78fd79cfab85d599dad9dc34138abd1";
+    sha256 = "1hsf8lqjnkrkvk0gps8yb3lx72mvws6xbgkbdmgdkz7qdxmha8bp";
   };
 
   hardeningDisable = [ "pic" ];
@@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/tomaspinho/rtl8821ce";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = [ maintainers.hhm ];
+    maintainers = with maintainers; [ hhm samuelgrf ];
   };
 }
diff --git a/pkgs/os-specific/linux/rtl8821cu/default.nix b/pkgs/os-specific/linux/rtl8821cu/default.nix
new file mode 100644
index 00000000000..62ea8aaaab5
--- /dev/null
+++ b/pkgs/os-specific/linux/rtl8821cu/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, kernel, bc }:
+stdenv.mkDerivation rec {
+  name = "rtl8821cu-${kernel.version}-${version}";
+  version = "unstable-2020-05-16";
+
+  src = fetchFromGitHub {
+    owner = "brektrou";
+    repo = "rtl8821cu";
+    rev = "5c510c9f14352fed4906a10921040b9e46b58346";
+    sha256 = "1n74h1m3l2dj35caswaghzcjwcv5qlv3gj6j1rqdddbyg5khl4ag";
+  };
+
+  hardeningDisable = [ "pic" ];
+
+  nativeBuildInputs = [ bc ];
+  buildInputs = kernel.moduleBuildDependencies;
+
+  prePatch = ''
+    substituteInPlace ./Makefile \
+      --replace /lib/modules/ "${kernel.dev}/lib/modules/" \
+      --replace '$(shell uname -r)' "${kernel.modDirVersion}" \
+      --replace /sbin/depmod \# \
+      --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
+  '';
+
+  preInstall = ''
+    mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Realtek rtl8821cu driver";
+    homepage = "https://github.com/brektrou/rtl8821CU";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.contrun ];
+  };
+}
diff --git a/pkgs/os-specific/linux/rtlwifi_new/default.nix b/pkgs/os-specific/linux/rtlwifi_new/default.nix
index 403f0a40010..78e5510ad17 100644
--- a/pkgs/os-specific/linux/rtlwifi_new/default.nix
+++ b/pkgs/os-specific/linux/rtlwifi_new/default.nix
@@ -7,9 +7,10 @@ let modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wi
 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 = "lwfinger";
+    owner = "rtlwifi-linux";
     repo = "rtlwifi_new";
     rev = "a108e3de87c2ed30b71c3c4595b79ab7a2f9e348";
     sha256 = "15kjs9i9vvmn1cdzccd5cljf3m45r4ssm65klkj2fdkf3kljj38k";
diff --git a/pkgs/os-specific/linux/sd-switch/default.nix b/pkgs/os-specific/linux/sd-switch/default.nix
new file mode 100644
index 00000000000..7cbad8d6df3
--- /dev/null
+++ b/pkgs/os-specific/linux/sd-switch/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitLab, rustPlatform, pkg-config, dbus }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "sd-switch";
+  version = "0.2.0";
+
+  src = fetchFromGitLab {
+    owner = "rycee";
+    repo = pname;
+    rev = version;
+    sha256 = "1bhks4ma3sn95bsszs6lj9cwfr8zgmja0hqfp8xr5iq77ww2p6k3";
+  };
+
+  cargoSha256 = "0lskxakzh3yji0rzk8jcfz1sv4j19b5kmdsaj7401m5w84s1cbjw";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ dbus ];
+
+  meta = with stdenv.lib; {
+    description = "A systemd unit switcher for Home Manager";
+    homepage = "https://gitlab.com/rycee/sd-switch";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ rycee ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/smemstat/default.nix b/pkgs/os-specific/linux/smemstat/default.nix
index 6693b379948..64525052af2 100644
--- a/pkgs/os-specific/linux/smemstat/default.nix
+++ b/pkgs/os-specific/linux/smemstat/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "smemstat";
-  version = "0.02.07";
+  version = "0.02.08";
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/smemstat/smemstat-${version}.tar.xz";
-    sha256 = "09i5n1zjw45qrfbc2vglh1xk1jwqnc91bgsq7bkp29d9dpfpzhdc";
+    sha256 = "1agigvkv1868cskivzrwyiixl658x5bv7xpz4xjc8mlii4maivpp";
   };
   buildInputs = [ ncurses ];
   installFlags = [ "DESTDIR=$(out)" ];
diff --git a/pkgs/os-specific/linux/sysdig/default.nix b/pkgs/os-specific/linux/sysdig/default.nix
index 59577eb8d51..bef9231385a 100644
--- a/pkgs/os-specific/linux/sysdig/default.nix
+++ b/pkgs/os-specific/linux/sysdig/default.nix
@@ -5,13 +5,13 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "sysdig";
-  version = "0.26.7";
+  version = "0.27.0";
 
   src = fetchFromGitHub {
     owner = "draios";
     repo = "sysdig";
     rev = version;
-    sha256 = "09m6j2cl70jxb0k4ydsgrida381bipf0v026xz661152cy23r3ff";
+    sha256 = "0lpp271g0749sx7qgpwl6myi0kgfpsxk1kc4yp3r9k1pynv8bq1b";
   };
 
   nativeBuildInputs = [ cmake perl ];
diff --git a/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch b/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch
index ab04ea91644..390e7f9f09b 100644
--- a/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch
+++ b/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch
@@ -1,4 +1,4 @@
-From 22f46f55c81d84e83a4614856d84e63c8400165c Mon Sep 17 00:00:00 2001
+From 54fb14592fc41752c3cd26552c974dd1ad4b9e73 Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Tue, 8 Jan 2013 15:46:30 +0100
 Subject: [PATCH 01/18] Start device units for uninitialised encrypted devices
@@ -13,7 +13,7 @@ unit.  (However, this ignores the fsck unit, so it's not perfect...)
  1 file changed, 4 deletions(-)
 
 diff --git a/rules.d/99-systemd.rules.in b/rules.d/99-systemd.rules.in
-index c34b606216..3ab8c1c3fe 100644
+index 1c60eec587..b2486da130 100644
 --- a/rules.d/99-systemd.rules.in
 +++ b/rules.d/99-systemd.rules.in
 @@ -17,10 +17,6 @@ SUBSYSTEM=="ubi", TAG+="systemd"
@@ -28,5 +28,5 @@ index c34b606216..3ab8c1c3fe 100644
  SUBSYSTEM=="block", ENV{ID_PART_GPT_AUTO_ROOT}=="1", ENV{ID_FS_TYPE}!="crypto_LUKS", SYMLINK+="gpt-auto-root"
  SUBSYSTEM=="block", ENV{ID_PART_GPT_AUTO_ROOT}=="1", ENV{ID_FS_TYPE}=="crypto_LUKS", SYMLINK+="gpt-auto-root-luks"
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch b/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch
index c52a13c9a41..9bb69092ca4 100644
--- a/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch
+++ b/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch
@@ -1,4 +1,4 @@
-From e5b2b1e90d055068936336f6f01639bcde251b96 Mon Sep 17 00:00:00 2001
+From d52880eeae09aaacd308430499f55810157b1a6d Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Fri, 12 Apr 2013 13:16:57 +0200
 Subject: [PATCH 02/18] Don't try to unmount /nix or /nix/store
@@ -12,7 +12,7 @@ https://github.com/NixOS/nixos/issues/126
  2 files changed, 4 insertions(+)
 
 diff --git a/src/shared/fstab-util.c b/src/shared/fstab-util.c
-index b19127be09..f9adca1100 100644
+index 806dda8475..0220741c91 100644
 --- a/src/shared/fstab-util.c
 +++ b/src/shared/fstab-util.c
 @@ -40,6 +40,8 @@ bool fstab_is_extrinsic(const char *mount, const char *opts) {
@@ -38,5 +38,5 @@ index 8a5e80eeaa..fab35ed6f3 100644
                  || path_equal(path, "/usr")
  #endif
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch b/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch
index e96593a5938..5ee54f39b74 100644
--- a/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch
+++ b/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch
@@ -1,4 +1,4 @@
-From ca7f6286c518d7ef3877458bbdf8e01f5518ab0e Mon Sep 17 00:00:00 2001
+From 794073e466a3b6c8e138f0e6d15c8d6465a1a4a9 Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Wed, 16 Apr 2014 10:59:28 +0200
 Subject: [PATCH 03/18] Fix NixOS containers
@@ -10,10 +10,10 @@ container, so checking early whether it exists will fail.
  1 file changed, 2 insertions(+)
 
 diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
-index 51d0c2a75b..4d3451ff3b 100644
+index 3b9493f232..0117a9939d 100644
 --- a/src/nspawn/nspawn.c
 +++ b/src/nspawn/nspawn.c
-@@ -5017,6 +5017,7 @@ static int run(int argc, char *argv[]) {
+@@ -5122,6 +5122,7 @@ static int run(int argc, char *argv[]) {
                                  goto finish;
                          }
                  } else {
@@ -21,7 +21,7 @@ index 51d0c2a75b..4d3451ff3b 100644
                          const char *p, *q;
  
                          if (arg_pivot_root_new)
-@@ -5031,6 +5032,7 @@ static int run(int argc, char *argv[]) {
+@@ -5136,6 +5137,7 @@ static int run(int argc, char *argv[]) {
                                  r = -EINVAL;
                                  goto finish;
                          }
@@ -30,5 +30,5 @@ index 51d0c2a75b..4d3451ff3b 100644
  
          } else {
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch b/pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch
index 4b2c059afd5..cdef28ad68e 100644
--- a/pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch
+++ b/pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch
@@ -1,4 +1,4 @@
-From c87cc5b1cf9c37f195e6b362352279e14289554e Mon Sep 17 00:00:00 2001
+From caa8dcfa87cf2e46a7a1cce9c16f929916cf9186 Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Thu, 1 May 2014 14:10:10 +0200
 Subject: [PATCH 04/18] Look for fsck in the right place
@@ -21,5 +21,5 @@ index 80f7107b9d..74e48a385f 100644
                  cmdline[i++] = "-T";
  
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch b/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch
index a8f3f0e21fd..95dd17531ab 100644
--- a/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch
+++ b/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch
@@ -1,4 +1,4 @@
-From 450c133c1815b473136b2a5540f9213fef5506ee Mon Sep 17 00:00:00 2001
+From e5d73359928b79bd846bda29ce61fe276d8c0b76 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
@@ -10,51 +10,36 @@ persistent, mutable units (used for Dysnomia).
 
 Also, remove /usr and /lib as these don't exist on NixOS.
 ---
- src/core/systemd.pc.in   |  4 ++--
- src/shared/path-lookup.c | 18 +++++-------------
- 2 files changed, 7 insertions(+), 15 deletions(-)
+ src/basic/path-lookup.c | 20 +++++---------------
+ src/core/systemd.pc.in  |  5 +++--
+ 2 files changed, 8 insertions(+), 17 deletions(-)
 
-diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in
-index 8331832c7a..bedb97115d 100644
---- a/src/core/systemd.pc.in
-+++ b/src/core/systemd.pc.in
-@@ -17,8 +17,8 @@ systemduserunitdir=${prefix}/lib/systemd/user
- systemduserpresetdir=${prefix}/lib/systemd/user-preset
- systemdsystemconfdir=${sysconfdir}/systemd/system
- systemduserconfdir=${sysconfdir}/systemd/user
--systemdsystemunitpath=${systemdsystemconfdir}:/etc/systemd/system:/run/systemd/system:/usr/local/lib/systemd/system:${systemdsystemunitdir}:/usr/lib/systemd/system:/lib/systemd/system
--systemduserunitpath=${systemduserconfdir}:/etc/systemd/user:/run/systemd/user:/usr/local/lib/systemd/user:/usr/local/share/systemd/user:${systemduserunitdir}:/usr/lib/systemd/user:/usr/share/systemd/user
-+systemdsystemunitpath=${systemdsystemconfdir}:/etc/systemd/system:/etc/systemd-mutable/system:/nix/var/nix/profiles/default/lib/systemd/system:/run/systemd/system:${systemdsystemunitdir}
-+systemduserunitpath=${systemduserconfdir}:/etc/systemd/user:/etc/systemd-mutable/user:/nix/var/nix/profiles/default/lib/systemd/user:/run/systemd/user:${systemduserunitdir}
- systemdsystemgeneratordir=${rootprefix}/lib/systemd/system-generators
- systemdusergeneratordir=${prefix}/lib/systemd/user-generators
- systemdsystemgeneratorpath=/run/systemd/system-generators:/etc/systemd/system-generators:/usr/local/lib/systemd/system-generators:${systemdsystemgeneratordir}
-diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c
-index 48e0eec09a..a9d38f16d0 100644
---- a/src/shared/path-lookup.c
-+++ b/src/shared/path-lookup.c
-@@ -98,17 +98,14 @@ int xdg_user_data_dir(char **ret, const char *suffix) {
+diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c
+index 52968dee34..bba2eb09b8 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) {
  }
  
  static const char* const user_data_unit_paths[] = {
 -        "/usr/local/lib/systemd/user",
 -        "/usr/local/share/systemd/user",
-         USER_DATA_UNIT_PATH,
+         USER_DATA_UNIT_DIR,
 -        "/usr/lib/systemd/user",
 -        "/usr/share/systemd/user",
          NULL
  };
  
  static const char* const user_config_unit_paths[] = {
-         USER_CONFIG_UNIT_PATH,
+         USER_CONFIG_UNIT_DIR,
          "/etc/systemd/user",
 +        "/etc/systemd-mutable/user",
          NULL
  };
  
-@@ -604,15 +601,14 @@ int lookup_paths_init(
+@@ -616,15 +613,14 @@ int lookup_paths_init(
                                          persistent_config,
-                                         SYSTEM_CONFIG_UNIT_PATH,
+                                         SYSTEM_CONFIG_UNIT_DIR,
                                          "/etc/systemd/system",
 +                                        "/etc/systemd-mutable/system",
 +                                        "/nix/var/nix/profiles/default/lib/systemd/system",
@@ -70,9 +55,9 @@ index 48e0eec09a..a9d38f16d0 100644
                                          STRV_IFNOTNULL(generator_late));
                          break;
  
-@@ -628,14 +624,12 @@ int lookup_paths_init(
+@@ -640,14 +636,12 @@ int lookup_paths_init(
                                          persistent_config,
-                                         USER_CONFIG_UNIT_PATH,
+                                         USER_CONFIG_UNIT_DIR,
                                          "/etc/systemd/user",
 +                                        "/etc/systemd-mutable/user",
 +                                        "/nix/var/nix/profiles/default/lib/systemd/user",
@@ -82,26 +67,58 @@ index 48e0eec09a..a9d38f16d0 100644
 -                                        "/usr/local/share/systemd/user",
 -                                        "/usr/share/systemd/user",
 -                                        "/usr/local/lib/systemd/user",
-                                         USER_DATA_UNIT_PATH,
+                                         USER_DATA_UNIT_DIR,
 -                                        "/usr/lib/systemd/user",
                                          STRV_IFNOTNULL(generator_late));
                          break;
  
-@@ -824,14 +818,12 @@ char **generator_binary_paths(UnitFileScope scope) {
-         case UNIT_FILE_SYSTEM:
-                 return strv_new("/run/systemd/system-generators",
-                                 "/etc/systemd/system-generators",
--                                "/usr/local/lib/systemd/system-generators",
-                                 SYSTEM_GENERATOR_PATH);
+@@ -797,7 +791,6 @@ char **generator_binary_paths(UnitFileScope scope) {
+                 case UNIT_FILE_SYSTEM:
+                         add = strv_new("/run/systemd/system-generators",
+                                        "/etc/systemd/system-generators",
+-                                       "/usr/local/lib/systemd/system-generators",
+                                        SYSTEM_GENERATOR_DIR);
+                         break;
+ 
+@@ -805,7 +798,6 @@ char **generator_binary_paths(UnitFileScope scope) {
+                 case UNIT_FILE_USER:
+                         add = strv_new("/run/systemd/user-generators",
+                                        "/etc/systemd/user-generators",
+-                                       "/usr/local/lib/systemd/user-generators",
+                                        USER_GENERATOR_DIR);
+                         break;
+ 
+@@ -844,12 +836,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",
+-                                        "/usr/local/lib/systemd/system-environment-generators",
+                                         SYSTEM_ENV_GENERATOR_DIR);
+                 else
+                         add = strv_new("/run/systemd/user-environment-generators",
+                                        "/etc/systemd/user-environment-generators",
+-                                       "/usr/local/lib/systemd/user-environment-generators",
+                                        USER_ENV_GENERATOR_DIR);
+ 
+                 if (!add)
+diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in
+index 8424837824..b1c541bc52 100644
+--- a/src/core/systemd.pc.in
++++ b/src/core/systemd.pc.in
+@@ -38,10 +38,11 @@ systemdsystemconfdir=${systemd_system_conf_dir}
+ systemd_user_conf_dir=${sysconfdir}/systemd/user
+ 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}
+ systemdsystemunitpath=${systemd_system_unit_path}
  
-         case UNIT_FILE_GLOBAL:
-         case UNIT_FILE_USER:
-                 return strv_new("/run/systemd/user-generators",
-                                 "/etc/systemd/user-generators",
--                                "/usr/local/lib/systemd/user-generators",
-                                 USER_GENERATOR_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}
++
+ systemduserunitpath=${systemd_user_unit_path}
  
-         default:
+ systemd_system_generator_dir=${root_prefix}/lib/systemd/system-generators
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch b/pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch
index ac3d3b0bd6f..3e519e7fe73 100644
--- a/pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch
+++ b/pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch
@@ -1,4 +1,4 @@
-From f88a9bb1e6080b539ed0116caa9781e7f6755f54 Mon Sep 17 00:00:00 2001
+From 1a3de021d9b8da060a77af6e26d2b61bafefda74 Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Mon, 11 May 2015 15:39:38 +0200
 Subject: [PATCH 06/18] Get rid of a useless message in user sessions
@@ -13,10 +13,10 @@ in containers.
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/src/core/unit.c b/src/core/unit.c
-index c306183555..3db39fa435 100644
+index 2c09def06f..c70540e1a3 100644
 --- a/src/core/unit.c
 +++ b/src/core/unit.c
-@@ -2043,7 +2043,8 @@ static void unit_check_binds_to(Unit *u) {
+@@ -2150,7 +2150,8 @@ static void unit_check_binds_to(Unit *u) {
          }
  
          assert(other);
@@ -27,5 +27,5 @@ index c306183555..3db39fa435 100644
          /* A unit we need to run is gone. Sniff. Let's stop this. */
          r = manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, NULL, &error, NULL);
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch b/pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch
index 70fc147232b..b63a051ae07 100644
--- a/pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch
+++ b/pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch
@@ -1,30 +1,20 @@
-From e2b25ce3606d05ff8a387185c41ab32fb2a36161 Mon Sep 17 00:00:00 2001
+From 6c12e0d2afe80563e692fc1f2f545a487c83418c Mon Sep 17 00:00:00 2001
 From: Gabriel Ebner <gebner@gebner.org>
 Date: Sun, 6 Dec 2015 14:26:36 +0100
 Subject: [PATCH 07/18] hostnamed, localed, timedated: disable methods that
  change system settings.
 
 ---
- src/hostname/hostnamed.c |  9 +++++++++
+ src/hostname/hostnamed.c |  6 ++++++
  src/locale/localed.c     |  9 +++++++++
  src/timedate/timedated.c | 10 ++++++++++
- 3 files changed, 28 insertions(+)
+ 3 files changed, 25 insertions(+)
 
 diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c
-index 21f6471495..8c5af7619f 100644
+index 7f6607a527..b5a9388916 100644
 --- a/src/hostname/hostnamed.c
 +++ b/src/hostname/hostnamed.c
-@@ -422,6 +422,9 @@ static int method_set_hostname(sd_bus_message *m, void *userdata, sd_bus_error *
-         if (r < 0)
-                 return r;
- 
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED,
-+            "Changing system settings via systemd is not supported on NixOS.");
-+
-         if (isempty(name))
-                 name = c->data[PROP_STATIC_HOSTNAME];
- 
-@@ -478,6 +481,9 @@ static int method_set_static_hostname(sd_bus_message *m, void *userdata, sd_bus_
+@@ -626,6 +626,9 @@ static int method_set_static_hostname(sd_bus_message *m, void *userdata, sd_bus_
          if (r < 0)
                  return r;
  
@@ -33,8 +23,8 @@ index 21f6471495..8c5af7619f 100644
 +
          name = empty_to_null(name);
  
-         if (streq_ptr(name, c->data[PROP_STATIC_HOSTNAME]))
-@@ -535,6 +541,9 @@ static int set_machine_info(Context *c, sd_bus_message *m, int prop, sd_bus_mess
+         context_read_etc_hostname(c);
+@@ -685,6 +688,9 @@ static int set_machine_info(Context *c, sd_bus_message *m, int prop, sd_bus_mess
          if (r < 0)
                  return r;
  
@@ -43,12 +33,12 @@ index 21f6471495..8c5af7619f 100644
 +
          name = empty_to_null(name);
  
-         if (streq_ptr(name, c->data[prop]))
+         context_read_machine_info(c);
 diff --git a/src/locale/localed.c b/src/locale/localed.c
-index 09f16d25f4..c1cb87cef1 100644
+index 715ce5cac7..014f7dcf6c 100644
 --- a/src/locale/localed.c
 +++ b/src/locale/localed.c
-@@ -275,6 +275,9 @@ static int method_set_locale(sd_bus_message *m, void *userdata, sd_bus_error *er
+@@ -317,6 +317,9 @@ static int method_set_locale(sd_bus_message *m, void *userdata, sd_bus_error *er
          if (r < 0)
                  return r;
  
@@ -56,9 +46,9 @@ index 09f16d25f4..c1cb87cef1 100644
 +            "Changing system settings via systemd is not supported on NixOS.");
 +
          /* If single locale without variable name is provided, then we assume it is LANG=. */
-         if (strv_length(l) == 1 && !strchr(*l, '=')) {
-                 if (!locale_is_valid(*l))
-@@ -410,6 +413,9 @@ static int method_set_vc_keyboard(sd_bus_message *m, void *userdata, sd_bus_erro
+         if (strv_length(l) == 1 && !strchr(l[0], '=')) {
+                 if (!locale_is_valid(l[0]))
+@@ -432,6 +435,9 @@ static int method_set_vc_keyboard(sd_bus_message *m, void *userdata, sd_bus_erro
          if (r < 0)
                  return r;
  
@@ -68,7 +58,7 @@ index 09f16d25f4..c1cb87cef1 100644
          keymap = empty_to_null(keymap);
          keymap_toggle = empty_to_null(keymap_toggle);
  
-@@ -586,6 +592,9 @@ static int method_set_x11_keyboard(sd_bus_message *m, void *userdata, sd_bus_err
+@@ -606,6 +612,9 @@ static int method_set_x11_keyboard(sd_bus_message *m, void *userdata, sd_bus_err
          if (r < 0)
                  return r;
  
@@ -79,10 +69,10 @@ index 09f16d25f4..c1cb87cef1 100644
          model = empty_to_null(model);
          variant = empty_to_null(variant);
 diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
-index 5e2fb50d83..63865f557c 100644
+index c467b85477..3e78b2f575 100644
 --- a/src/timedate/timedated.c
 +++ b/src/timedate/timedated.c
-@@ -652,6 +652,10 @@ static int method_set_timezone(sd_bus_message *m, void *userdata, sd_bus_error *
+@@ -646,6 +646,10 @@ static int method_set_timezone(sd_bus_message *m, void *userdata, sd_bus_error *
          if (r < 0)
                  return r;
  
@@ -93,7 +83,7 @@ index 5e2fb50d83..63865f557c 100644
          if (!timezone_is_valid(z, LOG_DEBUG))
                  return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid or not installed time zone '%s'", z);
  
-@@ -731,6 +735,9 @@ static int method_set_local_rtc(sd_bus_message *m, void *userdata, sd_bus_error
+@@ -725,6 +729,9 @@ static int method_set_local_rtc(sd_bus_message *m, void *userdata, sd_bus_error
          if (r < 0)
                  return r;
  
@@ -103,7 +93,7 @@ index 5e2fb50d83..63865f557c 100644
          if (lrtc == c->local_rtc)
                  return sd_bus_reply_method_return(m, NULL);
  
-@@ -923,6 +930,9 @@ static int method_set_ntp(sd_bus_message *m, void *userdata, sd_bus_error *error
+@@ -917,6 +924,9 @@ static int method_set_ntp(sd_bus_message *m, void *userdata, sd_bus_error *error
          if (r < 0)
                  return r;
  
@@ -114,5 +104,5 @@ index 5e2fb50d83..63865f557c 100644
          if (r < 0)
                  return r;
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch b/pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch
index 36d82e22f8c..63bd03fcf38 100644
--- a/pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch
+++ b/pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch
@@ -1,4 +1,4 @@
-From 5a6aad633a7ceffd62b009ce0c4ab6673129f7ff Mon Sep 17 00:00:00 2001
+From 1e40be83eca9a831509ae764081c2252934478c3 Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Thu, 7 Jul 2016 02:47:13 +0300
 Subject: [PATCH 08/18] Fix hwdb paths
@@ -28,5 +28,5 @@ index b3febdbb31..eba00a5bc7 100644
  _public_ int sd_hwdb_new(sd_hwdb **ret) {
          _cleanup_(sd_hwdb_unrefp) sd_hwdb *hwdb = NULL;
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch b/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
index 8b5c807e4a8..dcdc0cd7ea0 100644
--- a/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
+++ b/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
@@ -1,4 +1,4 @@
-From b509dbd302a7933ae0002f44b99aac6a1fd5775b Mon Sep 17 00:00:00 2001
+From 5e235e1f720f37fc5581b40c9a13d365368e74a8 Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Tue, 11 Oct 2016 13:12:08 +0300
 Subject: [PATCH 09/18] Change /usr/share/zoneinfo to /etc/zoneinfo
@@ -35,10 +35,10 @@ index 0f1652ee2e..71c4f95c2e 100644
      <literal>Etc/UTC</literal>. The resulting link should lead to the
      corresponding binary
 diff --git a/src/basic/time-util.c b/src/basic/time-util.c
-index 105584e2e7..5238f69931 100644
+index 15cc1b8851..d0abde5933 100644
 --- a/src/basic/time-util.c
 +++ b/src/basic/time-util.c
-@@ -1217,7 +1217,7 @@ int get_timezones(char ***ret) {
+@@ -1259,7 +1259,7 @@ int get_timezones(char ***ret) {
          n_allocated = 2;
          n_zones = 1;
  
@@ -47,7 +47,7 @@ index 105584e2e7..5238f69931 100644
          if (f) {
                  for (;;) {
                          _cleanup_free_ char *line = NULL;
-@@ -1312,7 +1312,7 @@ bool timezone_is_valid(const char *name, int log_level) {
+@@ -1354,7 +1354,7 @@ bool timezone_is_valid(const char *name, int log_level) {
          if (p - name >= PATH_MAX)
                  return false;
  
@@ -56,7 +56,7 @@ index 105584e2e7..5238f69931 100644
  
          fd = open(t, O_RDONLY|O_CLOEXEC);
          if (fd < 0) {
-@@ -1410,7 +1410,7 @@ int get_timezone(char **ret) {
+@@ -1452,7 +1452,7 @@ int get_timezone(char **ret) {
          if (r < 0)
                  return r; /* returns EINVAL if not a symlink */
  
@@ -66,10 +66,10 @@ index 105584e2e7..5238f69931 100644
                  return -EINVAL;
  
 diff --git a/src/firstboot/firstboot.c b/src/firstboot/firstboot.c
-index 901fbf0815..b57bdd8fbe 100644
+index a3f442518e..feff49e280 100644
 --- a/src/firstboot/firstboot.c
 +++ b/src/firstboot/firstboot.c
-@@ -431,7 +431,7 @@ static int process_timezone(void) {
+@@ -459,7 +459,7 @@ static int process_timezone(void) {
          if (isempty(arg_timezone))
                  return 0;
  
@@ -79,10 +79,10 @@ index 901fbf0815..b57bdd8fbe 100644
          (void) mkdir_parents(etc_localtime, 0755);
          if (symlink(e, etc_localtime) < 0)
 diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
-index 4d3451ff3b..1adb91335c 100644
+index 0117a9939d..d86445b40f 100644
 --- a/src/nspawn/nspawn.c
 +++ b/src/nspawn/nspawn.c
-@@ -1657,8 +1657,8 @@ static int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t u
+@@ -1699,8 +1699,8 @@ static int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t u
  static const char *timezone_from_path(const char *path) {
          return PATH_STARTSWITH_SET(
                          path,
@@ -94,10 +94,10 @@ index 4d3451ff3b..1adb91335c 100644
  
  static bool etc_writable(void) {
 diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
-index 63865f557c..8021a8b753 100644
+index 3e78b2f575..de5477a08f 100644
 --- a/src/timedate/timedated.c
 +++ b/src/timedate/timedated.c
-@@ -264,7 +264,7 @@ static int context_read_data(Context *c) {
+@@ -269,7 +269,7 @@ static int context_read_data(Context *c) {
  
          r = get_timezone(&t);
          if (r == -EINVAL)
@@ -106,7 +106,7 @@ index 63865f557c..8021a8b753 100644
          else if (r < 0)
                  log_warning_errno(r, "Failed to get target of /etc/localtime: %m");
  
-@@ -288,7 +288,7 @@ static int context_write_data_timezone(Context *c) {
+@@ -293,7 +293,7 @@ static int context_write_data_timezone(Context *c) {
  
          if (isempty(c->zone) || streq(c->zone, "UTC")) {
  
@@ -115,7 +115,7 @@ index 63865f557c..8021a8b753 100644
  
                          if (unlink("/etc/localtime") < 0 && errno != ENOENT)
                                  return -errno;
-@@ -296,9 +296,9 @@ static int context_write_data_timezone(Context *c) {
+@@ -301,9 +301,9 @@ static int context_write_data_timezone(Context *c) {
                          return 0;
                  }
  
@@ -128,5 +128,5 @@ index 63865f557c..8021a8b753 100644
                          return -ENOMEM;
  
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch b/pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch
index b18ffb40166..50c2a1174df 100644
--- a/pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch
+++ b/pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch
@@ -1,4 +1,4 @@
-From b5665ef8b9266c662c3a137df1ef1721cdff346e Mon Sep 17 00:00:00 2001
+From 141d1d7acf5f018df86f0a5f7fbe49a8e928fd73 Mon Sep 17 00:00:00 2001
 From: Imuli <i@imu.li>
 Date: Wed, 19 Oct 2016 08:46:47 -0400
 Subject: [PATCH 10/18] localectl: use /etc/X11/xkb for list-x11-*
@@ -10,10 +10,10 @@ NixOS has an option to link the xkb data files to /etc/X11, but not to
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/locale/localectl.c b/src/locale/localectl.c
-index 6f2d37d222..7aa2310d48 100644
+index e0664de826..c521f33a2a 100644
 --- a/src/locale/localectl.c
 +++ b/src/locale/localectl.c
-@@ -286,7 +286,7 @@ static int list_x11_keymaps(int argc, char **argv, void *userdata) {
+@@ -277,7 +277,7 @@ static int list_x11_keymaps(int argc, char **argv, void *userdata) {
          } state = NONE, look_for;
          int r;
  
@@ -23,5 +23,5 @@ index 6f2d37d222..7aa2310d48 100644
                  return log_error_errno(errno, "Failed to open keyboard mapping list. %m");
  
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch b/pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
index bc9efaed23e..8ad310984ed 100644
--- a/pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
+++ b/pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
@@ -1,4 +1,4 @@
-From be6b5c37779302384079b22b7fd767daad878fa9 Mon Sep 17 00:00:00 2001
+From db3946f465c0066fb1775a92c1fcc6450134904d Mon Sep 17 00:00:00 2001
 From: Franz Pletz <fpletz@fnordicwalking.de>
 Date: Sun, 11 Feb 2018 04:37:44 +0100
 Subject: [PATCH 11/18] build: don't create statedir and don't touch prefixdir
@@ -8,10 +8,10 @@ Subject: [PATCH 11/18] build: don't create statedir and don't touch prefixdir
  1 file changed, 3 deletions(-)
 
 diff --git a/meson.build b/meson.build
-index c09115e06a..62eba4186c 100644
+index dbbddb68e2..bbeb23223d 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -3184,9 +3184,6 @@ install_data('LICENSE.GPL2',
+@@ -3369,9 +3369,6 @@ install_data('LICENSE.GPL2',
               'src/libsystemd/sd-bus/GVARIANT-SERIALIZATION',
               install_dir : docdir)
  
@@ -20,7 +20,7 @@ index c09115e06a..62eba4186c 100644
 -
  ############################################################
  
- meson_check_help = find_program('tools/meson-check-help.sh')
+ check_help = find_program('tools/check-help.sh')
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/0012-Install-default-configuration-into-out-share-factory.patch b/pkgs/os-specific/linux/systemd/0012-Install-default-configuration-into-out-share-factory.patch
index 5d67ce0ca31..0844f85763b 100644
--- a/pkgs/os-specific/linux/systemd/0012-Install-default-configuration-into-out-share-factory.patch
+++ b/pkgs/os-specific/linux/systemd/0012-Install-default-configuration-into-out-share-factory.patch
@@ -1,4 +1,4 @@
-From 9262f52b0e30cf8c39d9f7684a8c0e8fd4887cd5 Mon Sep 17 00:00:00 2001
+From 245af064c4d315d868cc12201b3663f61702cce3 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
 Date: Mon, 26 Feb 2018 14:25:57 +0000
 Subject: [PATCH 12/18] Install default configuration into $out/share/factory
@@ -31,10 +31,10 @@ store again, while having executables looking up files in /etc.
  17 files changed, 29 insertions(+), 26 deletions(-)
 
 diff --git a/hwdb.d/meson.build b/hwdb.d/meson.build
-index 4df6dabf89..02d8d69095 100644
+index 5c77387a26..6404bc01ba 100644
 --- a/hwdb.d/meson.build
 +++ b/hwdb.d/meson.build
-@@ -27,7 +27,7 @@ if conf.get('ENABLE_HWDB') == 1
+@@ -43,7 +43,7 @@ if conf.get('ENABLE_HWDB') == 1
                       install_dir : udevhwdbdir)
  
          meson.add_install_script('sh', '-c',
@@ -44,10 +44,10 @@ index 4df6dabf89..02d8d69095 100644
          meson.add_install_script('sh', '-c',
                                   'test -n "$DESTDIR" || @0@/systemd-hwdb update'
 diff --git a/meson.build b/meson.build
-index 62eba4186c..b0b2edbb5a 100644
+index bbeb23223d..1a9c56fad2 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -154,6 +154,9 @@ udevhwdbdir = join_paths(udevlibexecdir, 'hwdb.d')
+@@ -163,6 +163,9 @@ udevhwdbdir = join_paths(udevlibexecdir, 'hwdb.d')
  catalogdir = join_paths(prefixdir, 'lib/systemd/catalog')
  kernelinstalldir = join_paths(prefixdir, 'lib/kernel/install.d')
  factorydir = join_paths(datadir, 'factory')
@@ -57,7 +57,7 @@ index 62eba4186c..b0b2edbb5a 100644
  bootlibdir = join_paths(prefixdir, 'lib/systemd/boot/efi')
  testsdir = join_paths(prefixdir, 'lib/systemd/tests')
  systemdstatedir = join_paths(localstatedir, 'lib/systemd')
-@@ -2511,7 +2514,7 @@ if conf.get('ENABLE_BINFMT') == 1
+@@ -2651,7 +2654,7 @@ if conf.get('ENABLE_BINFMT') == 1
          meson.add_install_script('sh', '-c',
                                   mkdir_p.format(binfmtdir))
          meson.add_install_script('sh', '-c',
@@ -66,16 +66,16 @@ index 62eba4186c..b0b2edbb5a 100644
  endif
  
  if conf.get('ENABLE_REPART') == 1
-@@ -2612,7 +2615,7 @@ executable('systemd-sleep',
-            install_dir : rootlibexecdir)
+@@ -2767,7 +2770,7 @@ executable(
+         install_dir : rootlibexecdir)
  
  install_data('src/sleep/sleep.conf',
 -             install_dir : pkgsysconfdir)
 +             install_dir : factorypkgconfdir)
  
- exe = executable('systemd-sysctl',
-                  'src/sysctl/sysctl.c',
-@@ -2924,7 +2927,7 @@ if conf.get('HAVE_KMOD') == 1
+ public_programs += executable(
+         'systemd-sysctl',
+@@ -3101,7 +3104,7 @@ if conf.get('HAVE_KMOD') == 1
          meson.add_install_script('sh', '-c',
                                   mkdir_p.format(modulesloaddir))
          meson.add_install_script('sh', '-c',
@@ -83,8 +83,8 @@ index 62eba4186c..b0b2edbb5a 100644
 +                                 mkdir_p.format(join_paths(factoryconfdir, 'modules-load.d')))
  endif
  
- exe = executable('systemd-nspawn',
-@@ -3167,7 +3170,7 @@ install_subdir('factory/etc',
+ public_programs += executable(
+@@ -3352,7 +3355,7 @@ install_subdir('factory/etc',
                 install_dir : factorydir)
  
  install_data('xorg/50-systemd-user.sh',
@@ -94,10 +94,10 @@ index 62eba4186c..b0b2edbb5a 100644
               install_dir : modprobedir)
  install_data('LICENSE.GPL2',
 diff --git a/network/meson.build b/network/meson.build
-index 544dcf4387..1828c50863 100644
+index 99a650eac3..8105a4e48d 100644
 --- a/network/meson.build
 +++ b/network/meson.build
-@@ -10,7 +10,7 @@ if conf.get('ENABLE_NETWORKD') == 1
+@@ -11,7 +11,7 @@ if conf.get('ENABLE_NETWORKD') == 1
                       install_dir : networkdir)
  
          meson.add_install_script('sh', '-c',
@@ -107,10 +107,10 @@ index 544dcf4387..1828c50863 100644
  
  install_data('99-default.link',
 diff --git a/src/core/meson.build b/src/core/meson.build
-index 3586838f59..02ddf1a123 100644
+index fa95108523..60ee0e31c1 100644
 --- a/src/core/meson.build
 +++ b/src/core/meson.build
-@@ -179,8 +179,8 @@ libcore = static_library(
+@@ -183,8 +183,8 @@ libcore = static_library(
  systemd_sources = files('main.c')
  
  in_files = [['macros.systemd',   rpmmacrosdir],
@@ -121,7 +121,7 @@ index 3586838f59..02ddf1a123 100644
              ['systemd.pc',       pkgconfigdatadir],
              ['triggers.systemd', '']]
  
-@@ -212,6 +212,6 @@ meson.add_install_script('sh', '-c', mkdir_p.format(systemsleepdir))
+@@ -216,6 +216,6 @@ meson.add_install_script('sh', '-c', mkdir_p.format(systemsleepdir))
  meson.add_install_script('sh', '-c', mkdir_p.format(systemgeneratordir))
  meson.add_install_script('sh', '-c', mkdir_p.format(usergeneratordir))
  
@@ -180,15 +180,16 @@ index 5796f77cac..75d975c260 100644
  if get_option('create-log-dirs')
          meson.add_install_script(
 diff --git a/src/kernel-install/meson.build b/src/kernel-install/meson.build
-index 261c3aaae4..dbc5e23513 100644
+index 9ae342dfba..65df666337 100644
 --- a/src/kernel-install/meson.build
 +++ b/src/kernel-install/meson.build
-@@ -11,4 +11,4 @@ install_data('00-entry-directory.install',
-              install_dir : kernelinstalldir)
+@@ -14,5 +14,5 @@ if want_kernel_install
+ 		install_dir : kernelinstalldir)
  
- meson.add_install_script('sh', '-c',
--                         mkdir_p.format(join_paths(sysconfdir, 'kernel/install.d')))
-+                         mkdir_p.format(join_paths(factoryconfdir, 'kernel/install.d')))
+ 	meson.add_install_script('sh', '-c',
+-				mkdir_p.format(join_paths(sysconfdir, 'kernel/install.d')))
++				mkdir_p.format(join_paths(factoryconfdir, 'kernel/install.d')))
+ endif
 diff --git a/src/login/meson.build b/src/login/meson.build
 index 0a7d3d5440..ff90149c1c 100644
 --- a/src/login/meson.build
@@ -203,10 +204,10 @@ index 0a7d3d5440..ff90149c1c 100644
          install_data('org.freedesktop.login1.conf',
                       install_dir : dbuspolicydir)
 diff --git a/src/network/meson.build b/src/network/meson.build
-index c1c02cfda1..1bfa79a03b 100644
+index b3a88d9910..be56d1e9d7 100644
 --- a/src/network/meson.build
 +++ b/src/network/meson.build
-@@ -201,7 +201,7 @@ if conf.get('ENABLE_NETWORKD') == 1
+@@ -229,7 +229,7 @@ if conf.get('ENABLE_NETWORKD') == 1
          endif
  
          install_data('networkd.conf',
@@ -227,10 +228,10 @@ index adbac24b54..e9dc88dfa2 100644
 +                     install_dir : factorypkgconfdir)
  endif
 diff --git a/src/resolve/meson.build b/src/resolve/meson.build
-index c4d8d4e5d9..f550c289a5 100644
+index 92b67b6333..ac5b9a0b0a 100644
 --- a/src/resolve/meson.build
 +++ b/src/resolve/meson.build
-@@ -170,7 +170,7 @@ if conf.get('ENABLE_RESOLVE') == 1
+@@ -168,7 +168,7 @@ if conf.get('ENABLE_RESOLVE') == 1
                  output : 'resolved.conf',
                  configuration : substs)
          install_data(resolved_conf,
@@ -253,10 +254,10 @@ index e5c118c8db..19235df9ca 100644
                       install_dir : dbuspolicydir)
          install_data('org.freedesktop.timesync1.service',
 diff --git a/src/udev/meson.build b/src/udev/meson.build
-index 173b10be50..82638cf5a9 100644
+index aa23b07090..ad004d803a 100644
 --- a/src/udev/meson.build
 +++ b/src/udev/meson.build
-@@ -187,7 +187,7 @@ foreach prog : [['ata_id/ata_id.c'],
+@@ -186,7 +186,7 @@ foreach prog : [['ata_id/ata_id.c'],
  endforeach
  
  install_data('udev.conf',
@@ -265,7 +266,7 @@ index 173b10be50..82638cf5a9 100644
  
  configure_file(
          input : 'udev.pc.in',
-@@ -196,7 +196,7 @@ configure_file(
+@@ -195,7 +195,7 @@ configure_file(
          install_dir : pkgconfigdatadir == 'no' ? '' : pkgconfigdatadir)
  
  meson.add_install_script('sh', '-c',
@@ -285,10 +286,10 @@ index 3f072e3db7..bd9f843eba 100644
 -                         mkdir_p.format(join_paths(sysconfdir, 'sysctl.d')))
 +                         mkdir_p.format(join_paths(factoryconfdir, 'sysctl.d')))
 diff --git a/tmpfiles.d/meson.build b/tmpfiles.d/meson.build
-index e77f46d06b..04d2ef621d 100644
+index 0a9582d8b9..3c56ca7d83 100644
 --- a/tmpfiles.d/meson.build
 +++ b/tmpfiles.d/meson.build
-@@ -57,5 +57,5 @@ endforeach
+@@ -58,5 +58,5 @@ endforeach
  if enable_tmpfiles
          meson.add_install_script(
                  'sh', '-c',
@@ -296,7 +297,7 @@ index e77f46d06b..04d2ef621d 100644
 +                mkdir_p.format(join_paths(factoryconfdir, 'tmpfiles.d')))
  endif
 diff --git a/units/meson.build b/units/meson.build
-index ea91f0cc9e..8622054ca5 100644
+index aa2ed115ea..12e2925226 100644
 --- a/units/meson.build
 +++ b/units/meson.build
 @@ -323,7 +323,7 @@ install_data('user-.slice.d/10-defaults.conf',
@@ -309,5 +310,5 @@ index ea91f0cc9e..8622054ca5 100644
                           join_paths(dbussystemservicedir, 'org.freedesktop.systemd1.service'),
                           join_paths(dbussessionservicedir, 'org.freedesktop.systemd1.service'))
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/0013-inherit-systemd-environment-when-calling-generators.patch b/pkgs/os-specific/linux/systemd/0013-inherit-systemd-environment-when-calling-generators.patch
index 11d2dc26e38..a15220fd3f9 100644
--- a/pkgs/os-specific/linux/systemd/0013-inherit-systemd-environment-when-calling-generators.patch
+++ b/pkgs/os-specific/linux/systemd/0013-inherit-systemd-environment-when-calling-generators.patch
@@ -1,4 +1,4 @@
-From 05c2761f6a981c8576fc47a3dd8beb5a2af3ef09 Mon Sep 17 00:00:00 2001
+From bfaa53731ffe984c93c5321099d1341b5059f029 Mon Sep 17 00:00:00 2001
 From: Andreas Rammhold <andreas@rammhold.de>
 Date: Fri, 2 Nov 2018 21:15:42 +0100
 Subject: [PATCH 13/18] inherit systemd environment when calling generators.
@@ -16,10 +16,10 @@ executables that are being called from managers.
  1 file changed, 8 insertions(+), 3 deletions(-)
 
 diff --git a/src/core/manager.c b/src/core/manager.c
-index 4412e7a849..b799eeca95 100644
+index 41e0d73736..d02de06f09 100644
 --- a/src/core/manager.c
 +++ b/src/core/manager.c
-@@ -3901,9 +3901,14 @@ static int manager_run_generators(Manager *m) {
+@@ -4095,9 +4095,14 @@ static int manager_run_generators(Manager *m) {
          argv[4] = NULL;
  
          RUN_WITH_UMASK(0022)
@@ -38,5 +38,5 @@ index 4412e7a849..b799eeca95 100644
  
  finish:
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/0014-add-rootprefix-to-lookup-dir-paths.patch b/pkgs/os-specific/linux/systemd/0014-add-rootprefix-to-lookup-dir-paths.patch
index 06b00b82cb9..dca7b5591d2 100644
--- a/pkgs/os-specific/linux/systemd/0014-add-rootprefix-to-lookup-dir-paths.patch
+++ b/pkgs/os-specific/linux/systemd/0014-add-rootprefix-to-lookup-dir-paths.patch
@@ -1,4 +1,4 @@
-From c70029539d0aec5df0c1e4203359335a3841a1e5 Mon Sep 17 00:00:00 2001
+From d8b93ef32f3b95a6ce6548a8ad1504a485ffbe81 Mon Sep 17 00:00:00 2001
 From: Andreas Rammhold <andreas@rammhold.de>
 Date: Thu, 9 May 2019 11:15:22 +0200
 Subject: [PATCH 14/18] add rootprefix to lookup dir paths
@@ -34,5 +34,5 @@ index 970654a1ad..bb261040f8 100644
  #define CONF_PATHS(n)                           \
          CONF_PATHS_USR(n)                       \
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/0015-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch b/pkgs/os-specific/linux/systemd/0015-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
index 6431b56ea3e..1bd9e23d25c 100644
--- a/pkgs/os-specific/linux/systemd/0015-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
+++ b/pkgs/os-specific/linux/systemd/0015-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
@@ -1,4 +1,4 @@
-From 98580b4aa34f3d2e7401f54d6561c5af27ea3437 Mon Sep 17 00:00:00 2001
+From b3bc0aa899c51d19edfb53af2b00dde64123ab06 Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Thu, 25 Jul 2019 20:45:55 +0300
 Subject: [PATCH 15/18] systemd-shutdown: execute scripts in
@@ -10,10 +10,10 @@ This is needed for NixOS to use such scripts as systemd directory is immutable.
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/shutdown/shutdown.c b/src/shutdown/shutdown.c
-index 523040b57c..561d91c94c 100644
+index 06c9710c6e..dadcc3117d 100644
 --- a/src/shutdown/shutdown.c
 +++ b/src/shutdown/shutdown.c
-@@ -299,7 +299,7 @@ int main(int argc, char *argv[]) {
+@@ -312,7 +312,7 @@ int main(int argc, char *argv[]) {
          _cleanup_free_ char *cgroup = NULL;
          char *arguments[3], *watchdog_device;
          int cmd, r, umount_log_level = LOG_INFO;
@@ -23,5 +23,5 @@ index 523040b57c..561d91c94c 100644
          /* The log target defaults to console, but the original systemd process will pass its log target in through a
           * command line argument, which will override this default. Also, ensure we'll never log to the journal or
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/0016-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch b/pkgs/os-specific/linux/systemd/0016-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
index c27d1a10d58..d99c7ecc96c 100644
--- a/pkgs/os-specific/linux/systemd/0016-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
+++ b/pkgs/os-specific/linux/systemd/0016-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
@@ -1,4 +1,4 @@
-From 3821e20966ee20f74986041f33c4934ad20385b2 Mon Sep 17 00:00:00 2001
+From 2679210f4ce804713bf1d244ac0fb8ac7b9b1e5f Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Thu, 25 Jul 2019 20:46:58 +0300
 Subject: [PATCH 16/18] systemd-sleep: execute scripts in
@@ -10,10 +10,10 @@ This is needed for NixOS to use such scripts as systemd directory is immutable.
  1 file changed, 1 insertion(+)
 
 diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
-index fbfddc0262..d2530b9421 100644
+index 7029352ca5..6d9c636872 100644
 --- a/src/sleep/sleep.c
 +++ b/src/sleep/sleep.c
-@@ -178,6 +178,7 @@ static int execute(char **modes, char **states) {
+@@ -182,6 +182,7 @@ static int execute(char **modes, char **states) {
          };
          static const char* const dirs[] = {
                  SYSTEM_SLEEP_PATH,
@@ -22,5 +22,5 @@ index fbfddc0262..d2530b9421 100644
          };
  
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/0017-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch b/pkgs/os-specific/linux/systemd/0017-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch
index 9fae2d5767c..f45e4edd8e8 100644
--- a/pkgs/os-specific/linux/systemd/0017-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch
+++ b/pkgs/os-specific/linux/systemd/0017-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch
@@ -1,4 +1,4 @@
-From b07defe819e0f66d08563690b3a5abea5da08620 Mon Sep 17 00:00:00 2001
+From 561b0cc9a1faed5729d6f701304a65c2968394ec Mon Sep 17 00:00:00 2001
 From: Florian Klink <flokli@flokli.de>
 Date: Sat, 7 Mar 2020 22:40:27 +0100
 Subject: [PATCH 17/18] kmod-static-nodes.service: Update ConditionFileNotEmpty
@@ -23,5 +23,5 @@ index 0971edf9ec..87105a87b9 100644
  [Service]
  Type=oneshot
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/0018-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch b/pkgs/os-specific/linux/systemd/0018-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
index 321817dad6f..a964aeede76 100644
--- a/pkgs/os-specific/linux/systemd/0018-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
+++ b/pkgs/os-specific/linux/systemd/0018-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
@@ -1,4 +1,4 @@
-From 9c1ac48a7d95c09bef5a924bb5db6908596403b4 Mon Sep 17 00:00:00 2001
+From 0d9d7c03054babdbd1fa5f6f266b56e8c96e9ba5 Mon Sep 17 00:00:00 2001
 From: Florian Klink <flokli@flokli.de>
 Date: Sun, 8 Mar 2020 01:05:54 +0100
 Subject: [PATCH 18/18] path-util.h: add placeholder for DEFAULT_PATH_NORMAL
@@ -29,5 +29,5 @@ index 30031fca8e..d97145539a 100644
  #if HAVE_SPLIT_USR
  #  define DEFAULT_PATH DEFAULT_PATH_SPLIT_USR
 -- 
-2.26.2
+2.27.0
 
diff --git a/pkgs/os-specific/linux/systemd/cryptsetup-generator.nix b/pkgs/os-specific/linux/systemd/cryptsetup-generator.nix
deleted file mode 100644
index 3fd8ff07f42..00000000000
--- a/pkgs/os-specific/linux/systemd/cryptsetup-generator.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ systemd, cryptsetup }:
-
-systemd.overrideAttrs (p: {
-  version = p.version;
-  name = "systemd-cryptsetup-generator-${p.version}";
-
-  buildInputs = p.buildInputs ++ [ cryptsetup ];
-  outputs = [ "out" ];
-
-  buildPhase = ''
-    ninja systemd-cryptsetup systemd-cryptsetup-generator
-  '';
-
-  # As ninja install is not used here, the rpath needs to be manually fixed.
-  # Otherwise the resulting binary doesn't properly link against systemd-shared.so
-  postFixup = ''
-    for prog in `find $out -type f -executable`; do
-      (patchelf --print-needed $prog | grep 'libsystemd-shared-.*\.so' > /dev/null) && (
-        patchelf --set-rpath `patchelf --print-rpath $prog`:"$out/lib/systemd" $prog
-      ) || true
-    done
-    # test it's OK
-    "$out"/lib/systemd/systemd-cryptsetup
-  '';
-
-  installPhase = ''
-    mkdir -p $out/lib/systemd/
-    cp systemd-cryptsetup $out/lib/systemd/systemd-cryptsetup
-    cp src/shared/*.so $out/lib/systemd/
-
-    mkdir -p $out/lib/systemd/system-generators/
-    cp systemd-cryptsetup-generator $out/lib/systemd/system-generators/systemd-cryptsetup-generator
-  '';
-})
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index cda9c9c066a..54060b156f2 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, pkgconfig, intltool, gperf, libcap
-, curl, kmod, gnupg, gnutar, xz, pam, acl, libuuid, m4, utillinux, libffi
+{ stdenv, lib, fetchFromGitHub, pkgconfig, intltool, gperf, libcap
+, curl, kmod, gnupg, gnutar, xz, pam, acl, libuuid, m4, e2fsprogs, utillinux, libffi
 , glib, kbd, libxslt, coreutils, libgcrypt, libgpgerror, libidn2, libapparmor
-, audit, lz4, bzip2, libmicrohttpd, pcre2
+, audit, lz4, bzip2, pcre2
 , linuxHeaders ? stdenv.cc.libc.linuxHeaders
 , iptables, gnu-efi, bashInteractive
 , gettext, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_45
@@ -9,6 +9,7 @@
 , patchelf
 , substituteAll
 , getent
+, cryptsetup, lvm2
 , buildPackages
 , perl
 , withSelinux ? false, libselinux
@@ -16,33 +17,24 @@
 , withKexectools ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) kexectools.meta.platforms, kexectools
 }:
 
-let gnupg-minimal = gnupg.override {
-  enableMinimal = true;
-  guiSupport = false;
-  pcsclite = null;
-  sqlite = null;
-  pinentry = null;
-  adns = null;
-  gnutls = null;
-  libusb1 = null;
-  openldap = null;
-  readline = null;
-  zlib = null;
-  bzip2 = null;
-};
+let
+  version = "246";
 in stdenv.mkDerivation {
-  version = "245.6";
+  inherit version;
   pname = "systemd";
 
-  # When updating, use https://github.com/systemd/systemd-stable tree, not the development one!
-  # Also fresh patches should be cherry-picked from that tree to our current one.
+  # We use systemd/systemd-stable for src, and ship NixOS-specific patches inside nixpkgs directly
+  # This has proven to be less error-prone than the previous systemd fork.
   src = fetchFromGitHub {
     owner = "systemd";
     repo = "systemd-stable";
-    rev = "aa0cb635f1f6a4d9b50ed2cca7782f3f751be933";
-    sha256 = "191f0r1g946bsqxky00z78wygsxi9pld11y2q4374bshnpsff2ll";
+    rev = "v${version}";
+    sha256 = "0zrkyxrh5rm45f2l1rnjyv229bcyzawfw7c63jqxwix75px60dyw";
   };
 
+  # If these need to be regenerated, `git am path/to/00*.patch` them into a
+  # systemd worktree, rebase to the more recent systemd version, and export the
+  # patches again via `git format-patch v${version}`.
   patches = [
     ./0001-Start-device-units-for-uninitialised-encrypted-devic.patch
     ./0002-Don-t-try-to-unmount-nix-or-nix-store.patch
@@ -75,7 +67,7 @@ in stdenv.mkDerivation {
       "find_program('${stdenv.cc.bintools.targetPrefix}objcopy'"
   '';
 
-  outputs = [ "out" "lib" "man" "dev" ];
+  outputs = [ "out" "man" "dev" ];
 
   nativeBuildInputs =
     [ pkgconfig intltool gperf libxslt gettext docbook_xsl docbook_xml_dtd_42 docbook_xml_dtd_45
@@ -89,8 +81,8 @@ in stdenv.mkDerivation {
     ];
   buildInputs =
     [ linuxHeaders libcap curl.dev kmod xz pam acl
-      /* cryptsetup */ libuuid glib libgcrypt libgpgerror libidn2
-      libmicrohttpd pcre2 ] ++
+      cryptsetup libuuid glib libgcrypt libgpgerror libidn2
+      pcre2 ] ++
       stdenv.lib.optional withKexectools kexectools ++
       stdenv.lib.optional withLibseccomp libseccomp ++
     [ libffi audit lz4 bzip2 libapparmor
@@ -105,7 +97,6 @@ in stdenv.mkDerivation {
     "-Ddbussystemservicedir=${placeholder "out"}/share/dbus-1/system-services"
     "-Dpamconfdir=${placeholder "out"}/etc/pam.d"
     "-Drootprefix=${placeholder "out"}"
-    "-Drootlibdir=${placeholder "lib"}/lib"
     "-Dpkgconfiglibdir=${placeholder "dev"}/lib/pkgconfig"
     "-Dpkgconfigdatadir=${placeholder "dev"}/share/pkgconfig"
     "-Dloadkeys-path=${kbd}/bin/loadkeys"
@@ -120,6 +111,7 @@ in stdenv.mkDerivation {
     "-Dhostnamed=true"
     "-Dnetworkd=true"
     "-Dportabled=false"
+    "-Dremote=false"
     "-Dsysusers=false"
     "-Dtimedated=true"
     "-Dtimesyncd=true"
@@ -175,12 +167,28 @@ in stdenv.mkDerivation {
     export LC_ALL="en_US.UTF-8";
     # FIXME: patch this in systemd properly (and send upstream).
     # already fixed in f00929ad622c978f8ad83590a15a765b4beecac9: (u)mount
-    for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c units/emergency.service.in units/rescue.service.in src/journal/cat.c src/shutdown/shutdown.c src/nspawn/nspawn.c src/shared/generator.c units/systemd-logind.service.in units/systemd-nspawn@.service.in; do
+    for i in \
+      src/core/mount.c \
+      src/core/swap.c \
+      src/cryptsetup/cryptsetup-generator.c \
+      src/fsck/fsck.c \
+      src/journal/cat.c \
+      src/nspawn/nspawn.c \
+      src/remount-fs/remount-fs.c \
+      src/shared/generator.c \
+      src/shutdown/shutdown.c \
+      units/emergency.service.in \
+      units/rescue.service.in \
+      units/systemd-logind.service.in \
+      units/systemd-nspawn@.service.in; \
+    do
       test -e $i
       substituteInPlace $i \
         --replace /usr/bin/getent ${getent}/bin/getent \
+        --replace /sbin/mkswap ${lib.getBin utillinux}/sbin/mkswap \
         --replace /sbin/swapon ${lib.getBin utillinux}/sbin/swapon \
         --replace /sbin/swapoff ${lib.getBin utillinux}/sbin/swapoff \
+        --replace /sbin/mke2fs ${lib.getBin e2fsprogs}/sbin/mke2fs \
         --replace /sbin/fsck ${lib.getBin utillinux}/sbin/fsck \
         --replace /bin/echo ${coreutils}/bin/echo \
         --replace /bin/cat ${coreutils}/bin/cat \
@@ -196,7 +204,7 @@ in stdenv.mkDerivation {
 
     # absolute paths to gpg & tar
     substituteInPlace src/import/pull-common.c \
-      --replace '"gpg"' '"${gnupg-minimal}/bin/gpg"'
+      --replace '"gpg"' '"${gnupg}/bin/gpg"'
     for file in src/import/{{export,import,pull}-tar,import-common}.c; do
       substituteInPlace $file \
         --replace '"tar"' '"${gnutar}/bin/tar"'
@@ -257,38 +265,10 @@ in stdenv.mkDerivation {
 
     # "kernel-install" shouldn't be used on NixOS.
     find $out -name "*kernel-install*" -exec rm {} \;
-
-    # Keep only libudev and libsystemd in the lib output.
-    mkdir -p $out/lib
-    mv $lib/lib/security $lib/lib/libnss* $out/lib/
   ''; # */
 
   enableParallelBuilding = true;
 
-  # On aarch64 we "leak" a reference to $out/lib/systemd/catalog in the lib
-  # output. The result of that is a dependency cycle between $out and $lib.
-  # Thus nix (rightfully) marks the build as failed. That reference originates
-  # from an array of strings (catalog_file_dirs) in systemd
-  # (src/src/journal/catalog.{c,h}).  The only consumer (as of v242) of the
-  # symbol is the main function of journalctl.  Still libsystemd.so contains
-  # the VALUE but not the symbol.  Systemd seems to be properly using function
-  # & data sections together with the linker flags to garbage collect unused
-  # sections (-Wl,--gc-sections).  For unknown reasons those flags do not
-  # eliminate the unused string constants, in this case on aarch64-linux. The
-  # hacky way is to just remove the reference after we finished compiling.
-  # Since it can not be used (there is no symbol to actually refer to it) there
-  # should not be any harm.  It is a bit odd and I really do not like starting
-  # these kind of hacks but there doesn't seem to be a straight forward way at
-  # this point in time.
-  # The reference will be replaced by the same reference the usual nukeRefs
-  # tooling uses.  The standard tooling can not / should not be uesd since it
-  # is a bit too excessive and could potentially do us some (more) harm.
-  postFixup = ''
-    nukedRef=$(echo $out | sed -e "s,$NIX_STORE/[^-]*-\(.*\),$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-\1,")
-    cat $lib/lib/libsystemd.so | perl -pe "s|$out/lib/systemd/catalog|$nukedRef/lib/systemd/catalog|" > $lib/lib/libsystemd.so.tmp
-    mv $lib/lib/libsystemd.so.tmp $(readlink -f $lib/lib/libsystemd.so)
-  '';
-
   # The interface version prevents NixOS from switching to an
   # incompatible systemd at runtime.  (Switching across reboots is
   # fine, of course.)  It should be increased whenever systemd changes
diff --git a/pkgs/os-specific/linux/sysvinit/default.nix b/pkgs/os-specific/linux/sysvinit/default.nix
index 0fc5acba4da..5d081f2db82 100644
--- a/pkgs/os-specific/linux/sysvinit/default.nix
+++ b/pkgs/os-specific/linux/sysvinit/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, withoutInitTools ? false }:
 
-let version = "2.96"; in
+let version = "2.97"; in
 
 stdenv.mkDerivation {
   name = (if withoutInitTools then "sysvtools" else "sysvinit") + "-" + version;
 
   src = fetchurl {
     url = "mirror://savannah/sysvinit/sysvinit-${version}.tar.xz";
-    sha256 = "11xmcamvjmrw874zp0vc37hrqc4hz02i0iy8n4xa4dd25avjcbia";
+    sha256 = "042iyayyh3j28vfbypzn822b73r3nfmyn79f9mixigqrfn2rcn9d";
   };
 
   prePatch = ''
diff --git a/pkgs/os-specific/linux/targetcli/default.nix b/pkgs/os-specific/linux/targetcli/default.nix
index 854e06b98a4..94920c4012a 100644
--- a/pkgs/os-specific/linux/targetcli/default.nix
+++ b/pkgs/os-specific/linux/targetcli/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, python, fetchFromGitHub }:
+{ stdenv, python3, fetchFromGitHub }:
 
-python.pkgs.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "targetcli";
   version = "2.1.53";
 
@@ -11,7 +11,7 @@ python.pkgs.buildPythonApplication rec {
     sha256 = "1qrq7y5hnghzbxgrxgl153n8jlhw31kqjbr93jsvlvhz5b3ci750";
   };
 
-  propagatedBuildInputs = with python.pkgs; [ configshell rtslib ];
+  propagatedBuildInputs = with python3.pkgs; [ configshell rtslib ];
 
   postInstall = ''
     install -D targetcli.8 -t $out/share/man/man8/
diff --git a/pkgs/os-specific/linux/tiscamera/default.nix b/pkgs/os-specific/linux/tiscamera/default.nix
index fb2773b4d3a..f9196fc1686 100644
--- a/pkgs/os-specific/linux/tiscamera/default.nix
+++ b/pkgs/os-specific/linux/tiscamera/default.nix
@@ -2,7 +2,7 @@
 , stdenv
 , fetchFromGitHub
 , cmake
-, pkgconfig
+, pkg-config
 , pcre
 , tinyxml
 , libusb1
@@ -12,7 +12,6 @@
 , gst_all_1
 , libwebcam
 , libunwind
-, gstreamer
 , elfutils
 , orc
 , python3
@@ -32,7 +31,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     cmake
-    pkgconfig
+    pkg-config
   ];
 
   buildInputs = [
@@ -46,54 +45,37 @@ stdenv.mkDerivation rec {
     gst_all_1.gst-plugins-base
     libwebcam
     libunwind
-    gstreamer
     elfutils
     orc
     python3
     libuuid
   ];
 
-
   cmakeFlags = [
     "-DBUILD_ARAVIS=OFF" # For GigE support. Won't need it as our camera is usb.
     "-DBUILD_GST_1_0=ON"
     "-DBUILD_TOOLS=ON"
     "-DBUILD_V4L2=ON"
     "-DBUILD_LIBUSB=ON"
+    "-DTCAM_INSTALL_UDEV=${placeholder "out"}/lib/udev/rules.d"
+    "-DTCAM_INSTALL_UVCDYNCTRL=${placeholder "out"}/share/uvcdynctrl/data/199e"
+    "-DTCAM_INSTALL_GST_1_0=${placeholder "out"}/lib/gstreamer-1.0"
+    "-DTCAM_INSTALL_GIR=${placeholder "out"}/share/gir-1.0"
+    "-DTCAM_INSTALL_TYPELIB=${placeholder "out"}/lib/girepository-1.0"
+    "-DTCAM_INSTALL_SYSTEMD=${placeholder "out"}/etc/systemd/system"
+    # There are gobject introspection commands launched as part of the build. Those have a runtime
+    # dependency on `libtcam` (which itself is built as part of this build). In order to allow
+    # that, we set the dynamic linker's path to point on the build time location of the library.
+    "-DCMAKE_SKIP_BUILD_RPATH=OFF"
   ];
 
   postPatch = ''
-    substituteInPlace ./data/udev/80-theimagingsource-cameras.rules.in \
-      --replace "/usr/bin/uvcdynctrl" "${libwebcam}/bin/uvcdynctrl" \
-      --replace "/path/to/tiscamera/uvc-extensions" "$out/share/uvcdynctrl/data/199e"
-
     substituteInPlace ./src/BackendLoader.cpp \
       --replace '"libtcam-v4l2.so"' "\"$out/lib/tcam-0/libtcam-v4l2.so\"" \
       --replace '"libtcam-aravis.so"' "\"$out/lib/tcam-0/libtcam-aravis.so\"" \
       --replace '"libtcam-libusb.so"' "\"$out/lib/tcam-0/libtcam-libusb.so\""
   '';
 
-  preConfigure = ''
-    cmakeFlagsArray=(
-      $cmakeFlagsArray
-      "-DCMAKE_INSTALL_PREFIX=$out"
-      "-DTCAM_INSTALL_UDEV=$out/lib/udev/rules.d"
-      "-DTCAM_INSTALL_UVCDYNCTRL=$out/share/uvcdynctrl/data/199e"
-      "-DTCAM_INSTALL_GST_1_0=$out/lib/gstreamer-1.0"
-      "-DTCAM_INSTALL_GIR=$out/share/gir-1.0"
-      "-DTCAM_INSTALL_TYPELIB=$out/lib/girepository-1.0"
-      "-DTCAM_INSTALL_SYSTEMD=$out/etc/systemd/system"
-    )
-  '';
-
-
-  # There are gobject introspection commands launched as part of the build. Those have a runtime
-  # dependency on `libtcam` (which itself is built as part of this build). In order to allow
-  # that, we set the dynamic linker's path to point on the build time location of the library.
-  preBuild = ''
-    export LD_LIBRARY_PATH=$PWD/src''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
-  '';
-
   meta = with lib; {
     description = "The Linux sources and UVC firmwares for The Imaging Source cameras";
     homepage = "https://github.com/TheImagingSource/tiscamera";
diff --git a/pkgs/os-specific/linux/turbostat/default.nix b/pkgs/os-specific/linux/turbostat/default.nix
index 4207589aaff..035dddcc4ec 100644
--- a/pkgs/os-specific/linux/turbostat/default.nix
+++ b/pkgs/os-specific/linux/turbostat/default.nix
@@ -1,9 +1,10 @@
-{ stdenv, kernel }:
+{ stdenv, kernel, libcap }:
 
 stdenv.mkDerivation {
   pname = "turbostat";
   inherit (kernel) src version;
 
+  buildInputs = [ libcap ];
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   postPatch = ''
diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix
index aa23a162a92..ac6ad8a4bb7 100644
--- a/pkgs/os-specific/linux/util-linux/default.nix
+++ b/pkgs/os-specific/linux/util-linux/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "util-linux";
-  version = "2.35.1";
+  version = "2.36";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/util-linux/v${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1yfpy6bkab4jw61mpx48gfy24yrqp4a7arvpis8csrkk53fkxpnr";
+    sha256 = "1cg0m4psswg71v6wrqc2bngcw20fsp01vbijxdzvdf8kxdkiqjwy";
   };
 
   patches = [
diff --git a/pkgs/os-specific/linux/v4l-utils/default.nix b/pkgs/os-specific/linux/v4l-utils/default.nix
index c23c37aa56d..2c9b395949a 100644
--- a/pkgs/os-specific/linux/v4l-utils/default.nix
+++ b/pkgs/os-specific/linux/v4l-utils/default.nix
@@ -12,11 +12,11 @@ let
 # we need to use stdenv.mkDerivation in order not to pollute the libv4l’s closure with Qt
 in stdenv.mkDerivation rec {
   pname = "v4l-utils";
-  version = "1.18.1";
+  version = "1.20.0";
 
   src = fetchurl {
     url = "https://linuxtv.org/downloads/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0hpkqm2bpg1ma2shjzcf6xsrpyjd8h5cakgh8a3iyh126wjl5z15";
+    sha256 = "1xr66y6w422hil6s7n8d61a2vhwh4im8l267amf41jvw7xqihqcm";
   };
 
   outputs = [ "out" ] ++ lib.optional withUtils "lib" ++ [ "dev" ];
@@ -41,6 +41,7 @@ in stdenv.mkDerivation rec {
 
   postPatch = ''
     patchShebangs utils/cec-ctl/msg2ctl.pl
+    patchShebangs utils/libcecutil/cec-gen.pl
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/os-specific/linux/wireguard/default.nix b/pkgs/os-specific/linux/wireguard/default.nix
index 22db152f59c..fa578372876 100644
--- a/pkgs/os-specific/linux/wireguard/default.nix
+++ b/pkgs/os-specific/linux/wireguard/default.nix
@@ -7,11 +7,11 @@ assert stdenv.lib.versionOlder kernel.version "5.6";
 
 stdenv.mkDerivation rec {
   pname = "wireguard";
-  version = "1.0.20200623";
+  version = "1.0.20200729";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/wireguard-linux-compat/snapshot/wireguard-linux-compat-${version}.tar.xz";
-    sha256 = "1siybpd14la9c5diigniwis1q9f5fhq2ris9bvgzhh8g8vr3xmqh";
+    sha256 = "0fk2i65q8pk11n46a31017059aan7hbbx0xv6d2c9d80dzrw5a36";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/pkgs/os-specific/linux/xpadneo/default.nix b/pkgs/os-specific/linux/xpadneo/default.nix
new file mode 100644
index 00000000000..7a1c2d1cec9
--- /dev/null
+++ b/pkgs/os-specific/linux/xpadneo/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, kernel, bluez }:
+
+stdenv.mkDerivation rec {
+  pname = "xpadneo";
+  version = "0.8.2";
+
+  src = fetchFromGitHub {
+    owner = "atar-axis";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0v688j7jx2b68zlwnrr5y63zxzhldygw1lcp8f3irayhcp8ikzzy";
+  };
+
+  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 ];
+
+  makeFlags = [
+    "-C"
+    "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+    "M=$(sourceRoot)"
+  ];
+
+  buildFlags = [ "modules" ];
+  installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ];
+  installTargets = [ "modules_install" ];
+
+  meta = with stdenv.lib; {
+    description = "Advanced Linux driver for Xbox One wireless controllers";
+    homepage = "https://atar-axis.github.io/xpadneo";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/zenmonitor/default.nix b/pkgs/os-specific/linux/zenmonitor/default.nix
index e9e0e82a093..23acaaa3e23 100644
--- a/pkgs/os-specific/linux/zenmonitor/default.nix
+++ b/pkgs/os-specific/linux/zenmonitor/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zenmonitor";
-  version = "1.4.0";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "ocerman";
     repo = "zenmonitor";
     rev = "v${version}";
-    sha256 = "1mn496iqfmhqsac7a5r0bdfddzrfiz6l34qiga0pip925g7hsm52";
+    sha256 = "0smv94vi36hziw42gasivyw25h5n1sgwwk1cv78id5g85w0kw246";
   };
 
   buildInputs = [ gtk3 ];
diff --git a/pkgs/os-specific/linux/zfs/BACKPORT-Linux-5.8-compat-__vmalloc.patch b/pkgs/os-specific/linux/zfs/BACKPORT-Linux-5.8-compat-__vmalloc.patch
new file mode 100644
index 00000000000..780ce83d84f
--- /dev/null
+++ b/pkgs/os-specific/linux/zfs/BACKPORT-Linux-5.8-compat-__vmalloc.patch
@@ -0,0 +1,154 @@
+From 6cc95288ccea12ad7b67b2b5b3997dfad8e5b5c9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Michael=20Niew=C3=B6hner?=
+ <c0d3z3r0@users.noreply.github.com>
+Date: Tue, 9 Jun 2020 01:32:02 +0200
+Subject: [PATCH] BACKPORT: Linux 5.8 compat: __vmalloc()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The `pgprot` argument has been removed from `__vmalloc` in Linux 5.8,
+being `PAGE_KERNEL` always now [1].
+
+Detect this during configure and define a wrapper for older kernels.
+
+[1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/mm/vmalloc.c?h=next-20200605&id=88dca4ca5a93d2c09e5bbc6a62fbfc3af83c4fca
+
+Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Co-authored-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
+Co-authored-by: Michael Niewöhner <foss@mniewoehner.de>
+Signed-off-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
+Signed-off-by: Michael Niewöhner <foss@mniewoehner.de>
+Closes #10422
+---
+ config/kernel-kmem.m4       | 26 ++++++++++++++++++++++++++
+ config/kernel.m4            |  2 ++
+ include/spl/sys/kmem.h      |  9 +++++++++
+ module/spl/spl-kmem-cache.c |  4 ++--
+ module/spl/spl-kmem.c       |  9 ++++-----
+ 5 files changed, 43 insertions(+), 7 deletions(-)
+
+diff --git a/config/kernel-kmem.m4 b/config/kernel-kmem.m4
+index cc055e530..f1c0d2412 100644
+--- a/config/kernel-kmem.m4
++++ b/config/kernel-kmem.m4
+@@ -56,3 +56,29 @@ AC_DEFUN([SPL_AC_DEBUG_KMEM_TRACKING], [
+ 	AC_MSG_CHECKING([whether detailed kmem tracking is enabled])
+ 	AC_MSG_RESULT([$enable_debug_kmem_tracking])
+ ])
++
++dnl #
++dnl # 5.8 API,
++dnl # __vmalloc PAGE_KERNEL removal
++dnl #
++AC_DEFUN([ZFS_AC_KERNEL_SRC_VMALLOC_PAGE_KERNEL], [
++	ZFS_LINUX_TEST_SRC([__vmalloc], [
++		#include <linux/mm.h>
++		#include <linux/vmalloc.h>
++	],[
++		void *p __attribute__ ((unused));
++
++		p = __vmalloc(0, GFP_KERNEL, PAGE_KERNEL);
++	])
++])
++
++AC_DEFUN([ZFS_AC_KERNEL_VMALLOC_PAGE_KERNEL], [
++	AC_MSG_CHECKING([whether __vmalloc(ptr, flags, pageflags) is available])
++	ZFS_LINUX_TEST_RESULT([__vmalloc], [
++		AC_MSG_RESULT(yes)
++		AC_DEFINE(HAVE_VMALLOC_PAGE_KERNEL, 1, [__vmalloc page flags exists])
++	],[
++		AC_MSG_RESULT(no)
++	])
++])
++-
+diff --git a/config/kernel.m4 b/config/kernel.m4
+index b67fcef8c..23edfdcd8 100644
+--- a/config/kernel.m4
++++ b/config/kernel.m4
+@@ -45,6 +45,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_SRC], [
+ 	ZFS_AC_KERNEL_SRC_SCHED
+ 	ZFS_AC_KERNEL_SRC_USLEEP_RANGE
+ 	ZFS_AC_KERNEL_SRC_KMEM_CACHE
++	ZFS_AC_KERNEL_SRC_VMALLOC_PAGE_KERNEL
+ 	ZFS_AC_KERNEL_SRC_WAIT
+ 	ZFS_AC_KERNEL_SRC_INODE_TIMES
+ 	ZFS_AC_KERNEL_SRC_INODE_LOCK
+@@ -163,6 +164,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_RESULT], [
+ 	ZFS_AC_KERNEL_SCHED
+ 	ZFS_AC_KERNEL_USLEEP_RANGE
+ 	ZFS_AC_KERNEL_KMEM_CACHE
++	ZFS_AC_KERNEL_VMALLOC_PAGE_KERNEL
+ 	ZFS_AC_KERNEL_WAIT
+ 	ZFS_AC_KERNEL_INODE_TIMES
+ 	ZFS_AC_KERNEL_INODE_LOCK
+diff --git a/include/spl/sys/kmem.h b/include/spl/sys/kmem.h
+index 72d3a7765..ca15bfe7f 100644
+--- a/include/spl/sys/kmem.h
++++ b/include/spl/sys/kmem.h
+@@ -169,6 +169,15 @@ extern void *spl_kmem_alloc(size_t sz, int fl, const char *func, int line);
+ extern void *spl_kmem_zalloc(size_t sz, int fl, const char *func, int line);
+ extern void spl_kmem_free(const void *ptr, size_t sz);
+ 
++/*
++ * 5.8 API change, pgprot_t argument removed.
++ */
++#ifdef HAVE_VMALLOC_PAGE_KERNEL
++#define	spl_vmalloc(size, flags)	__vmalloc(size, flags, PAGE_KERNEL)
++#else
++#define	spl_vmalloc(size, flags)	__vmalloc(size, flags)
++#endif
++
+ /*
+  * The following functions are only available for internal use.
+  */
+diff --git a/module/spl/spl-kmem-cache.c b/module/spl/spl-kmem-cache.c
+index d71b4b348..4866b2993 100644
+--- a/module/spl/spl-kmem-cache.c
++++ b/module/spl/spl-kmem-cache.c
+@@ -203,7 +203,7 @@ kv_alloc(spl_kmem_cache_t *skc, int size, int flags)
+ 		ASSERT(ISP2(size));
+ 		ptr = (void *)__get_free_pages(lflags, get_order(size));
+ 	} else {
+-		ptr = __vmalloc(size, lflags | __GFP_HIGHMEM, PAGE_KERNEL);
++		ptr = spl_vmalloc(size, lflags | __GFP_HIGHMEM);
+ 	}
+ 
+ 	/* Resulting allocated memory will be page aligned */
+@@ -1242,7 +1242,7 @@ spl_cache_grow(spl_kmem_cache_t *skc, int flags, void **obj)
+ 	 * allocation.
+ 	 *
+ 	 * However, this can't be applied to KVM_VMEM due to a bug that
+-	 * __vmalloc() doesn't honor gfp flags in page table allocation.
++	 * spl_vmalloc() doesn't honor gfp flags in page table allocation.
+ 	 */
+ 	if (!(skc->skc_flags & KMC_VMEM)) {
+ 		rc = __spl_cache_grow(skc, flags | KM_NOSLEEP);
+diff --git a/module/spl/spl-kmem.c b/module/spl/spl-kmem.c
+index cee69ad43..ca1fc145f 100644
+--- a/module/spl/spl-kmem.c
++++ b/module/spl/spl-kmem.c
+@@ -172,16 +172,15 @@ spl_kmem_alloc_impl(size_t size, int flags, int node)
+ 		 * kmem_zalloc() callers.
+ 		 *
+ 		 * For vmem_alloc() and vmem_zalloc() callers it is permissible
+-		 * to use __vmalloc().  However, in general use of __vmalloc()
+-		 * is strongly discouraged because a global lock must be
+-		 * acquired.  Contention on this lock can significantly
++		 * to use spl_vmalloc().  However, in general use of
++		 * spl_vmalloc() is strongly discouraged because a global lock
++		 * must be acquired.  Contention on this lock can significantly
+ 		 * impact performance so frequently manipulating the virtual
+ 		 * address space is strongly discouraged.
+ 		 */
+ 		if ((size > spl_kmem_alloc_max) || use_vmem) {
+ 			if (flags & KM_VMEM) {
+-				ptr = __vmalloc(size, lflags | __GFP_HIGHMEM,
+-				    PAGE_KERNEL);
++				ptr = spl_vmalloc(size, lflags | __GFP_HIGHMEM);
+ 			} else {
+ 				return (NULL);
+ 			}
+-- 
+2.25.1
+
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index 581316dc74d..27e26b13a53 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -42,25 +42,27 @@ let
         inherit rev sha256;
       };
 
-      patches = [ ] ++ extraPatches;
+      patches = extraPatches;
 
       postPatch = optionalString buildKernel ''
         patchShebangs scripts
         # The arrays must remain the same length, so we repeat a flag that is
         # already part of the command and therefore has no effect.
-        substituteInPlace ./module/zfs/zfs_ctldir.c --replace '"/usr/bin/env", "umount"' '"${utillinux}/bin/umount", "-n"' \
-                                                    --replace '"/usr/bin/env", "mount"'  '"${utillinux}/bin/mount", "-n"'
+        substituteInPlace ./module/${optionalString isUnstable "os/linux/"}zfs/zfs_ctldir.c \
+          --replace '"/usr/bin/env", "umount"' '"${utillinux}/bin/umount", "-n"' \
+          --replace '"/usr/bin/env", "mount"'  '"${utillinux}/bin/mount", "-n"'
       '' + optionalString buildUser ''
         substituteInPlace ./lib/libzfs/libzfs_mount.c --replace "/bin/umount"             "${utillinux}/bin/umount" \
                                                       --replace "/bin/mount"              "${utillinux}/bin/mount"
-        substituteInPlace ./lib/libshare/nfs.c        --replace "/usr/sbin/exportfs"      "${
+        substituteInPlace ./lib/libshare/${optionalString isUnstable "os/linux/"}nfs.c --replace "/usr/sbin/exportfs" "${
           # We don't *need* python support, but we set it like this to minimize closure size:
           # If it's disabled by default, no need to enable it, even if we have python enabled
           # And if it's enabled by default, only change that if we explicitly disable python to remove python from the closure
           nfs-utils.override (old: { enablePython = old.enablePython or true && enablePython; })
         }/bin/exportfs"
         substituteInPlace ./config/user-systemd.m4    --replace "/usr/lib/modules-load.d" "$out/etc/modules-load.d"
-        substituteInPlace ./config/zfs-build.m4       --replace "\$sysconfdir/init.d"     "$out/etc/init.d"
+        substituteInPlace ./config/zfs-build.m4       --replace "\$sysconfdir/init.d"     "$out/etc/init.d" \
+                                                      --replace "/etc/default"            "$out/etc/default"
         substituteInPlace ./etc/zfs/Makefile.am       --replace "\$(sysconfdir)"          "$out/etc"
         substituteInPlace ./cmd/zed/Makefile.am       --replace "\$(sysconfdir)"          "$out/etc"
 
@@ -79,6 +81,13 @@ let
         substituteInPlace ./etc/systemd/system/Makefile.am \
           --replace '$(DESTDIR)$(systemdunitdir)' "$out"'$(DESTDIR)$(systemdunitdir)'
 
+        ${optionalString isUnstable ''
+        substituteInPlace ./contrib/initramfs/conf.d/Makefile.am \
+          --replace "/usr/share/initramfs-tools/conf.d" "$out/usr/share/initramfs-tools/conf.d"
+        substituteInPlace ./contrib/initramfs/conf-hooks.d/Makefile.am \
+          --replace "/usr/share/initramfs-tools/conf-hooks.d" "$out/usr/share/initramfs-tools/conf-hooks.d"
+        ''}
+
         substituteInPlace ./etc/systemd/system/zfs-share.service.in \
           --replace "/bin/rm " "${coreutils}/bin/rm "
 
@@ -190,6 +199,7 @@ in {
     version = "0.8.4";
 
     sha256 = "1hl4n900d24gl4vd65qdzq4m62b7bpvckldazcbd1xqcn8xhi6wp";
+    extraPatches = [ ./BACKPORT-Linux-5.8-compat-__vmalloc.patch ];
   };
 
   zfsUnstable = common {
@@ -197,9 +207,9 @@ in {
     # incompatibleKernelVersion = "4.19";
 
     # this package should point to a version / git revision compatible with the latest kernel release
-    version = "0.8.4";
+    version = "2.0.0-rc1";
 
-    sha256 = "1hl4n900d24gl4vd65qdzq4m62b7bpvckldazcbd1xqcn8xhi6wp";
+    sha256 = "0d1m5zwgqzfwbscvb60zvzkjgl5nkbvas22vjsyci3xygz0qwjsb";
     isUnstable = true;
   };
 }
diff --git a/pkgs/os-specific/windows/mingw-w64/default.nix b/pkgs/os-specific/windows/mingw-w64/default.nix
index 7efc2e21313..6c17e0718bb 100644
--- a/pkgs/os-specific/windows/mingw-w64/default.nix
+++ b/pkgs/os-specific/windows/mingw-w64/default.nix
@@ -1,14 +1,14 @@
 { stdenv, windows, fetchurl }:
 
 let
-  version = "5.0.4";
+  version = "6.0.0";
 in stdenv.mkDerivation {
   pname = "mingw-w64";
   inherit version;
 
   src = fetchurl {
     url = "mirror://sourceforge/mingw-w64/mingw-w64-v${version}.tar.bz2";
-    sha256 = "00zq3z1hbzd5yzmskskjg79xrzwsqx7ihyprfaxy4hb897vf29sm";
+    sha256 = "1w28mynv500y03h92nh87rgw3fnp82qwnjbxrrzqkmr63q812pl0";
   };
 
   outputs = [ "out" "dev" ];
@@ -23,7 +23,6 @@ in stdenv.mkDerivation {
   buildInputs = [ windows.mingw_w64_headers ];
   dontStrip = true;
   hardeningDisable = [ "stackprotector" "fortify" ];
-  patches = [ ./osvi.patch ];
 
   meta = {
     platforms = stdenv.lib.platforms.windows;
diff --git a/pkgs/os-specific/windows/mingw-w64/headers.nix b/pkgs/os-specific/windows/mingw-w64/headers.nix
index 6a93cea6708..1fd27a8c457 100644
--- a/pkgs/os-specific/windows/mingw-w64/headers.nix
+++ b/pkgs/os-specific/windows/mingw-w64/headers.nix
@@ -4,8 +4,6 @@ stdenvNoCC.mkDerivation {
   name = "${mingw_w64.name}-headers";
   inherit (mingw_w64) src meta;
 
-  patches = [ ./osvi.patch ];
-
   preConfigure = ''
     cd mingw-w64-headers
   '';
diff --git a/pkgs/os-specific/windows/mingw-w64/osvi.patch b/pkgs/os-specific/windows/mingw-w64/osvi.patch
deleted file mode 100644
index c51ff4bd5df..00000000000
--- a/pkgs/os-specific/windows/mingw-w64/osvi.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Fix `error:  osvi  undeclared (first use in this function)' issue.
-
-See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863064
---- a/mingw-w64-headers/include/multimon.h
-+++ b/mingw-w64-headers/include/multimon.h
-@@ -127,7 +127,7 @@
-   WINBOOL IsPlatformNT() {
-     OSVERSIONINFOA oi = { 0 };
- 
--    oi.dwOSVersionInfoSize = sizeof (osvi);
-+    oi.dwOSVersionInfoSize = sizeof (oi);
-     GetVersionExA ((OSVERSIONINFOA *) &oi);
-     return (oi.dwPlatformId == VER_PLATFORM_WIN32_NT);
-   }
\ No newline at end of file
diff --git a/pkgs/pkgs-lib/default.nix b/pkgs/pkgs-lib/default.nix
new file mode 100644
index 00000000000..113dcebf8c6
--- /dev/null
+++ b/pkgs/pkgs-lib/default.nix
@@ -0,0 +1,11 @@
+# pkgs-lib is for functions and values that can't be in lib because
+# they depend on some packages. This notably is *not* for supporting package
+# building, instead pkgs/build-support is the place for that.
+{ lib, pkgs }: {
+  # setting format types and generators. These do not fit in lib/types.nix,
+  # because they depend on pkgs for rendering some formats
+  formats = import ./formats.nix {
+    inherit lib pkgs;
+  };
+}
+
diff --git a/pkgs/pkgs-lib/formats.nix b/pkgs/pkgs-lib/formats.nix
new file mode 100644
index 00000000000..14589f8ecdc
--- /dev/null
+++ b/pkgs/pkgs-lib/formats.nix
@@ -0,0 +1,109 @@
+{ lib, pkgs }:
+rec {
+
+  /*
+
+  Every following entry represents a format for program configuration files
+  used for `settings`-style options (see https://github.com/NixOS/rfcs/pull/42).
+  Each entry should look as follows:
+
+    <format> = <parameters>: {
+      #        ^^ Parameters for controlling the format
+
+      # The module system type most suitable for representing such a format
+      # The description needs to be overwritten for recursive types
+      type = ...;
+
+      # generate :: Name -> Value -> Path
+      # A function for generating a file with a value of such a type
+      generate = ...;
+
+    });
+  */
+
+
+  json = {}: {
+
+    type = with lib.types; let
+      valueType = nullOr (oneOf [
+        bool
+        int
+        float
+        str
+        (attrsOf valueType)
+        (listOf valueType)
+      ]) // {
+        description = "JSON value";
+      };
+    in valueType;
+
+    generate = name: value: pkgs.runCommandNoCC name {
+      nativeBuildInputs = [ pkgs.jq ];
+      value = builtins.toJSON value;
+      passAsFile = [ "value" ];
+    } ''
+      jq . "$valuePath"> $out
+    '';
+
+  };
+
+  # YAML has been a strict superset of JSON since 1.2
+  yaml = {}:
+    let jsonSet = json {};
+    in jsonSet // {
+      type = jsonSet.type // {
+        description = "YAML value";
+      };
+    };
+
+  ini = { listsAsDuplicateKeys ? false, ... }@args: {
+
+    type = with lib.types; let
+
+      singleIniAtom = nullOr (oneOf [
+        bool
+        int
+        float
+        str
+      ]) // {
+        description = "INI atom (null, bool, int, float or string)";
+      };
+
+      iniAtom =
+        if listsAsDuplicateKeys then
+          coercedTo singleIniAtom lib.singleton (listOf singleIniAtom) // {
+            description = singleIniAtom.description + " or a list of them for duplicate keys";
+          }
+        else
+          singleIniAtom;
+
+    in attrsOf (attrsOf iniAtom);
+
+    generate = name: value: pkgs.writeText name (lib.generators.toINI args value);
+
+  };
+
+  toml = {}: json {} // {
+    type = with lib.types; let
+      valueType = oneOf [
+        bool
+        int
+        float
+        str
+        (attrsOf valueType)
+        (listOf valueType)
+      ] // {
+        description = "TOML value";
+      };
+    in valueType;
+
+    generate = name: value: pkgs.runCommandNoCC name {
+      nativeBuildInputs = [ pkgs.remarshal ];
+      value = builtins.toJSON value;
+      passAsFile = [ "value" ];
+    } ''
+      json2toml "$valuePath" "$out"
+    '';
+
+  };
+}
diff --git a/pkgs/pkgs-lib/tests/default.nix b/pkgs/pkgs-lib/tests/default.nix
new file mode 100644
index 00000000000..f3549ea9b0f
--- /dev/null
+++ b/pkgs/pkgs-lib/tests/default.nix
@@ -0,0 +1,7 @@
+# Call nix-build on this file to run all tests in this directory
+{ pkgs ? import ../../.. {} }:
+let
+  formats = import ./formats.nix { inherit pkgs; };
+in pkgs.linkFarm "nixpkgs-pkgs-lib-tests" [
+  { name = "formats"; path = import ./formats.nix { inherit pkgs; }; }
+]
diff --git a/pkgs/pkgs-lib/tests/formats.nix b/pkgs/pkgs-lib/tests/formats.nix
new file mode 100644
index 00000000000..bf6be8595e1
--- /dev/null
+++ b/pkgs/pkgs-lib/tests/formats.nix
@@ -0,0 +1,157 @@
+{ pkgs }:
+let
+  inherit (pkgs) lib formats;
+in
+with lib;
+let
+
+  evalFormat = format: args: def:
+    let
+      formatSet = format args;
+      config = formatSet.type.merge [] (imap1 (n: def: {
+        value = def;
+        file = "def${toString n}";
+      }) [ def ]);
+    in formatSet.generate "test-format-file" config;
+
+  runBuildTest = name: { drv, expected }: pkgs.runCommandNoCC name {} ''
+    if diff ${drv} ${builtins.toFile "expected" expected}; then
+      touch $out
+    else
+      echo "Got: $(cat ${drv})"
+      echo "Should be: ${expected}"
+      exit 1
+    fi
+  '';
+
+  runBuildTests = tests: pkgs.linkFarm "nixpkgs-pkgs-lib-format-tests" (mapAttrsToList (name: value: { inherit name; path = runBuildTest name value; }) (filterAttrs (name: value: value != null) tests));
+
+in runBuildTests {
+
+  testJsonAtoms = {
+    drv = evalFormat formats.json {} {
+      null = null;
+      false = false;
+      true = true;
+      int = 10;
+      float = 3.141;
+      str = "foo";
+      attrs.foo = null;
+      list = [ null null ];
+    };
+    expected = ''
+      {
+        "attrs": {
+          "foo": null
+        },
+        "false": false,
+        "float": 3.141,
+        "int": 10,
+        "list": [
+          null,
+          null
+        ],
+        "null": null,
+        "str": "foo",
+        "true": true
+      }
+    '';
+  };
+
+  testYamlAtoms = {
+    drv = evalFormat formats.yaml {} {
+      null = null;
+      false = false;
+      true = true;
+      float = 3.141;
+      str = "foo";
+      attrs.foo = null;
+      list = [ null null ];
+    };
+    expected = ''
+      {
+        "attrs": {
+          "foo": null
+        },
+        "false": false,
+        "float": 3.141,
+        "list": [
+          null,
+          null
+        ],
+        "null": null,
+        "str": "foo",
+        "true": true
+      }
+    '';
+  };
+
+  testIniAtoms = {
+    drv = evalFormat formats.ini {} {
+      foo = {
+        bool = true;
+        int = 10;
+        float = 3.141;
+        str = "string";
+      };
+    };
+    expected = ''
+      [foo]
+      bool=true
+      float=3.141000
+      int=10
+      str=string
+    '';
+  };
+
+  testIniDuplicateKeys = {
+    drv = evalFormat formats.ini { listsAsDuplicateKeys = true; } {
+      foo = {
+        bar = [ null true "test" 1.2 10 ];
+        baz = false;
+        qux = "qux";
+      };
+    };
+    expected = ''
+      [foo]
+      bar=null
+      bar=true
+      bar=test
+      bar=1.200000
+      bar=10
+      baz=false
+      qux=qux
+    '';
+  };
+
+  testTomlAtoms = {
+    drv = evalFormat formats.toml {} {
+      false = false;
+      true = true;
+      int = 10;
+      float = 3.141;
+      str = "foo";
+      attrs.foo = "foo";
+      list = [ 1 2 ];
+      level1.level2.level3.level4 = "deep";
+    };
+    expected = ''
+      false = false
+      float = 3.141
+      int = 10
+      list = [1, 2]
+      str = "foo"
+      true = true
+
+      [attrs]
+      foo = "foo"
+
+      [level1]
+
+      [level1.level2]
+
+      [level1.level2.level3]
+      level4 = "deep"
+    '';
+  };
+}
diff --git a/pkgs/servers/atlassian/confluence.nix b/pkgs/servers/atlassian/confluence.nix
index 64ecd981fc4..ab5c2da5edd 100644
--- a/pkgs/servers/atlassian/confluence.nix
+++ b/pkgs/servers/atlassian/confluence.nix
@@ -8,11 +8,11 @@ assert withMysql -> (mysql_jdbc != null);
 
 stdenvNoCC.mkDerivation rec {
   pname = "atlassian-confluence";
-  version = "7.5.1";
+  version = "7.7.2";
 
   src = fetchurl {
     url = "https://product-downloads.atlassian.com/software/confluence/downloads/${pname}-${version}.tar.gz";
-    sha256 = "0lxvff0sn1kxsm599lq72hw11qnwjn2da3mz1h8mqz0rn2adhg07";
+    sha256 = "12ay2y7ixaxzj12pw66k65743ic3iccicn49cnjmas51c5ww09h1";
   };
 
   buildPhase = ''
diff --git a/pkgs/servers/atlassian/jira.nix b/pkgs/servers/atlassian/jira.nix
index fd35ef8735a..ab3746e6e0a 100644
--- a/pkgs/servers/atlassian/jira.nix
+++ b/pkgs/servers/atlassian/jira.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "atlassian-jira";
-  version = "8.9.0";
+  version = "8.12.0";
 
   src = fetchurl {
     url = "https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-${version}.tar.gz";
-    sha256 = "1rpibkp57nw084yd018924g1mdcqk8gnj99m85fmmhpppgbh9ca9";
+    sha256 = "149yqj60b35mbvjz7jyh5a3ayh61kvwrz452s0zyb1q3pirj10xq";
   };
 
   buildPhase = ''
diff --git a/pkgs/servers/bazarr/default.nix b/pkgs/servers/bazarr/default.nix
index 075b5e58447..92ca263f46f 100644
--- a/pkgs/servers/bazarr/default.nix
+++ b/pkgs/servers/bazarr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bazarr";
-  version = "0.8.4.4";
+  version = "0.9.0.2";
 
   src = fetchurl {
     url = "https://github.com/morpheus65535/bazarr/archive/v${version}.tar.gz";
-    sha256 = "09qpy5fyyidi45968qg37cighfh3rgwsi8pfz4fk5fp2v1xq23yg";
+    sha256 = "1lvldklj61hg9h1m0ixaa4zcf4ggdj6wf4myhwwampq4bmr2havj";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     cp -r * $out/src
 
     mkdir -p $out/bin
-    makeWrapper "${(python3.withPackages (ps: [ps.lxml])).interpreter}" \
+    makeWrapper "${(python3.withPackages (ps: [ps.lxml ps.numpy])).interpreter}" \
       $out/bin/bazarr \
       --add-flags "$out/src/bazarr.py" \
   '';
diff --git a/pkgs/servers/blockbook/default.nix b/pkgs/servers/blockbook/default.nix
index 3dad2f1c6ce..5a411126991 100644
--- a/pkgs/servers/blockbook/default.nix
+++ b/pkgs/servers/blockbook/default.nix
@@ -1,15 +1,14 @@
 { stdenv
 , buildGoModule
-, lib
 , fetchFromGitHub
-, rocksdb
-, bzip2
-, zlib
 , packr
-, snappy
 , pkg-config
-, zeromq
+, bzip2
 , lz4
+, rocksdb
+, snappy
+, zeromq
+, zlib
 }:
 
 buildGoModule rec {
@@ -24,11 +23,14 @@ buildGoModule rec {
     sha256 = "0da1kav5x2xcmwvdgfk1q70l1k0sqqj3njgx2xx885d40m6qbnrs";
   };
 
-  vendorSha256 = "1qjlvhizl8cy06cgf4phia70bgbm4lj57z5z2gyr8aglx98bnpdn";
+  runVend = true;
+  vendorSha256 = "0p7vyw61nwvmaz7gz2bdh9fi6wp62i2vnzw6iz2r8cims4sbz53b";
+
+  doCheck = false;
 
-  buildInputs = [ bzip2 zlib snappy zeromq lz4 ];
+  nativeBuildInputs = [ packr pkg-config ];
 
-  nativeBuildInputs = [ pkg-config packr ];
+  buildInputs = [ bzip2 lz4 rocksdb snappy zeromq zlib ];
 
   buildFlagsArray = ''
     -ldflags=
@@ -37,25 +39,10 @@ buildGoModule rec {
        -X github.com/trezor/blockbook/common.buildDate=unknown
   '';
 
-  goethereum = fetchFromGitHub {
-    owner = "ethereum";
-    repo = "go-ethereum";
-    rev = "v1.8.20";
-    sha256 = "0m2q1nz6f39pyr2rk6vflkwi4ykganzwr7wndpwr9rliw0x8jgi0";
-  };
-
-  overrideModAttrs = (_: {
-      postBuild = ''
-      rm -r vendor/github.com/ethereum/go-ethereum
-      cp -r --reflink=auto ${goethereum} vendor/github.com/ethereum/go-ethereum
-      '';
-    });
-
-  preBuild = lib.optionalString stdenv.isDarwin ''
+  preBuild = stdenv.lib.optionalString stdenv.isDarwin ''
     ulimit -n 8192
   '' + ''
-    export CGO_CFLAGS="-I${rocksdb}/include"
-    export CGO_LDFLAGS="-L${rocksdb}/lib -lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy -llz4"
+    export CGO_LDFLAGS="-L${stdenv.cc.cc.lib}/lib -lrocksdb -lz -lbz2 -lsnappy -llz4 -lm -lstdc++"
     packr clean && packr
   '';
 
@@ -67,11 +54,11 @@ buildGoModule rec {
     cp -r $src/static/css/ $out/share/
   '';
 
-  meta = with lib; {
+  meta = with stdenv.lib; {
     description = "Trezor address/account balance backend";
     homepage = "https://github.com/trezor/blockbook";
     license = licenses.agpl3;
-    maintainers = with maintainers; [ mmahut maintainers."1000101" ];
-    platforms = remove "aarch64-linux" platforms.unix;
+    maintainers = with maintainers; [ mmahut _1000101 ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/caddy/default.nix b/pkgs/servers/caddy/default.nix
index 415f8537185..05b69c30e6c 100644
--- a/pkgs/servers/caddy/default.nix
+++ b/pkgs/servers/caddy/default.nix
@@ -4,8 +4,6 @@ buildGoModule rec {
   pname = "caddy";
   version = "1.0.5";
 
-  goPackagePath = "github.com/caddyserver/caddy";
-
   subPackages = [ "caddy" ];
 
   src = fetchFromGitHub {
@@ -16,6 +14,8 @@ buildGoModule rec {
   };
   vendorSha256 = "09vnci9pp8zp7bvn8zj68wslz2nc54nhcd0ll31sqfjbp00215mj";
 
+  doCheck = false;
+
   preBuild = ''
     cat << EOF > caddy/main.go
     package main
@@ -33,4 +33,4 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ rushmorem fpletz zimbatm filalex77 ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/caddy/v2.nix b/pkgs/servers/caddy/v2.nix
index c4f12e58b0f..4021e829800 100644
--- a/pkgs/servers/caddy/v2.nix
+++ b/pkgs/servers/caddy/v2.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "caddy";
-  version = "2.0.0";
+  version = "2.1.1";
 
   subPackages = [ "cmd/caddy" ];
 
@@ -10,9 +10,12 @@ buildGoModule rec {
     owner = "caddyserver";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1c1frfx0qkprhf4var70cncvrw8s9gjag2hygndbd9055hb52bvv";
+    sha256 = "0c682zrivkawsxlps5hlx8js5zp4ddahg0zi5cr0861gnllbdll0";
   };
-  vendorSha256 = "004hpjxpp18f71vy5v5ky0g07a8d5xh5qwl5b4bbx34hpf8yxs81";
+
+  vendorSha256 = "0jzx00c2b8y7zwl73r2fh1826spcd15y39nfzr53s5lay3fvkybc";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     homepage = "https://caddyserver.com";
diff --git a/pkgs/servers/cayley/default.nix b/pkgs/servers/cayley/default.nix
index c62a28e41bd..0d89d2f1165 100644
--- a/pkgs/servers/cayley/default.nix
+++ b/pkgs/servers/cayley/default.nix
@@ -19,7 +19,7 @@ buildGoPackage rec {
     -ldflags=
       -X=main.Version=${version}
   '';
-  
+
   meta = {
     homepage = "https://cayley.io/";
     description = "A graph database inspired by Freebase and Knowledge Graph";
diff --git a/pkgs/servers/clickhouse/default.nix b/pkgs/servers/clickhouse/default.nix
index 9521d470a0f..4fd5b6c4751 100644
--- a/pkgs/servers/clickhouse/default.nix
+++ b/pkgs/servers/clickhouse/default.nix
@@ -1,39 +1,53 @@
 { stdenv, fetchFromGitHub, cmake, libtool, lldClang, ninja
-, boost, brotli, capnproto, cctz, clang-unwrapped, double-conversion, gperftools
-, icu, jemalloc, libcpuid, libxml2, lld, llvm, lz4, libmysqlclient, openssl
-, poco, protobuf, rapidjson, re2, rdkafka, readline, sparsehash, unixODBC
+, boost, brotli, capnproto, cctz, clang-unwrapped, double-conversion
+, icu, jemalloc, libcpuid, libxml2, lld, llvm, lz4, libmysqlclient, openssl, perl
+, poco, protobuf, python3, rapidjson, re2, rdkafka, readline, sparsehash, unixODBC
 , xxHash, zstd
 }:
 
 stdenv.mkDerivation rec {
   pname = "clickhouse";
-  version = "19.17.9.60";
+  version = "20.5.2.7";
 
   src = fetchFromGitHub {
-    owner  = "yandex";
+    owner  = "ClickHouse";
     repo   = "ClickHouse";
     rev    = "v${version}-stable";
-    sha256 = "0k1ncn7i4szpw4jlhv3zmw6mrkkm8qfs39nj1zbawjqrkgnw70kg";
+    fetchSubmodules = true;
+    sha256 = "15b499czsv727wwdb1i1ja5wfsk6ii3pqpk6dlqic9cdmkh8c8ic";
   };
 
   nativeBuildInputs = [ cmake libtool lldClang.bintools ninja ];
   buildInputs = [
-    boost brotli capnproto cctz clang-unwrapped double-conversion gperftools
-    icu jemalloc libcpuid libxml2 lld llvm lz4 libmysqlclient openssl
-    poco protobuf rapidjson re2 rdkafka readline sparsehash unixODBC
+    boost brotli capnproto cctz clang-unwrapped double-conversion
+    icu jemalloc libcpuid libxml2 lld llvm lz4 libmysqlclient openssl perl
+    poco protobuf python3 rapidjson re2 rdkafka readline sparsehash unixODBC
     xxHash zstd
   ];
 
+  postPatch = ''
+    patchShebangs src/
+
+    substituteInPlace contrib/openssl-cmake/CMakeLists.txt \
+      --replace '/usr/bin/env perl' perl
+    substituteInPlace src/Storages/System/StorageSystemLicenses.sh \
+      --replace 'git rev-parse --show-toplevel' '$src'
+    substituteInPlace utils/check-style/check-duplicate-includes.sh \
+      --replace 'git rev-parse --show-toplevel' '$src'
+    substituteInPlace utils/check-style/check-ungrouped-includes.sh \
+      --replace 'git rev-parse --show-toplevel' '$src'
+    substituteInPlace utils/generate-ya-make/generate-ya-make.sh \
+      --replace 'git rev-parse --show-toplevel' '$src'
+    substituteInPlace utils/list-licenses/list-licenses.sh \
+      --replace 'git rev-parse --show-toplevel' '$src'
+    substituteInPlace utils/check-style/check-style \
+      --replace 'git rev-parse --show-toplevel' '$src'
+  '';
+
   cmakeFlags = [
     "-DENABLE_TESTS=OFF"
-    "-DUNBUNDLED=ON"
-    "-DUSE_STATIC_LIBRARIES=OFF"
   ];
 
-  postPatch = ''
-    patchShebangs dbms/programs/clang/copy_headers.sh
-  '';
-
   postInstall = ''
     rm -rf $out/share/clickhouse-test
 
@@ -46,7 +60,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   meta = with stdenv.lib; {
-    homepage = "https://clickhouse.yandex/";
+    homepage = "https://clickhouse.tech/";
     description = "Column-oriented database management system";
     license = licenses.asl20;
     maintainers = with maintainers; [ orivej ];
diff --git a/pkgs/servers/computing/slurm/default.nix b/pkgs/servers/computing/slurm/default.nix
index 1ec807f0bf8..2b06671e4e0 100644
--- a/pkgs/servers/computing/slurm/default.nix
+++ b/pkgs/servers/computing/slurm/default.nix
@@ -1,14 +1,15 @@
 { stdenv, fetchFromGitHub, pkgconfig, libtool, curl
-, python, munge, perl, pam, zlib, shadow, coreutils
+, python3, munge, perl, pam, zlib, shadow, coreutils
 , ncurses, libmysqlclient, gtk2, lua, hwloc, numactl
 , readline, freeipmi, xorg, lz4, rdma-core, nixosTests
+, pmix
 # enable internal X11 support via libssh2
 , enableX11 ? true
 }:
 
 stdenv.mkDerivation rec {
   pname = "slurm";
-  version = "19.05.7.1";
+  version = "20.02.4.1";
 
   # N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
   # because the latter does not keep older releases.
@@ -17,7 +18,7 @@ stdenv.mkDerivation rec {
     repo = "slurm";
     # The release tags use - instead of .
     rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
-    sha256 = "115f40k8y7d569nbl6g0mkyshgv925lawlwar7ib5296g30p97f0";
+    sha256 = "071lwny7cj4idq0h03mmvkk4f4i6fgl3c5q8cvbh7z8px6k50cfp";
   };
 
   outputs = [ "out" "dev" ];
@@ -26,6 +27,8 @@ stdenv.mkDerivation rec {
     # increase string length to allow for full
     # path of 'echo' in nix store
     ./common-env-echo.patch
+    # Required for configure to pick up the right dlopen path
+    ./pmix-configure.patch
   ];
 
   prePatch = ''
@@ -41,11 +44,12 @@ stdenv.mkDerivation rec {
   # this doesn't fix tests completely at least makes slurmd to launch
   hardeningDisable = [ "bindnow" ];
 
-  nativeBuildInputs = [ pkgconfig libtool ];
+  nativeBuildInputs = [ pkgconfig libtool python3 ];
   buildInputs = [
-    curl python munge perl pam zlib
+    curl python3 munge perl pam zlib
       libmysqlclient ncurses gtk2 lz4 rdma-core
       lua hwloc numactl readline freeipmi shadow.su
+      pmix
   ] ++ stdenv.lib.optionals enableX11 [ xorg.xauth ];
 
   configureFlags = with stdenv.lib;
@@ -56,6 +60,7 @@ stdenv.mkDerivation rec {
       "--with-zlib=${zlib}"
       "--with-ofed=${rdma-core}"
       "--sysconfdir=/etc/slurm"
+      "--with-pmix=${pmix}"
     ] ++ (optional (gtk2 == null)  "--disable-gtktest")
       ++ (optional (!enableX11) "--disable-x11");
 
diff --git a/pkgs/servers/computing/slurm/pmix-configure.patch b/pkgs/servers/computing/slurm/pmix-configure.patch
new file mode 100644
index 00000000000..21c2197c3ff
--- /dev/null
+++ b/pkgs/servers/computing/slurm/pmix-configure.patch
@@ -0,0 +1,13 @@
+diff --git a/configure b/configure
+index 1cf53bc..ab68441 100755
+--- a/configure
++++ b/configure
+@@ -21207,7 +21207,7 @@ rm -f conftest.err conftest.i conftest.$ac_ext
+                 as_fn_error $? "error processing $x_ac_cv_pmix_libdir: PMIx v3.x was already found in one of the previous paths" "$LINENO" 5
+               fi
+               _x_ac_pmix_v3_found="1"
+-              PMIX_V3_CPPFLAGS="-I$x_ac_cv_pmix_dir/include"
++              PMIX_V3_CPPFLAGS="-I$x_ac_cv_pmix_dir/include -DPMIXP_V3_LIBPATH=\\\"$x_ac_cv_pmix_libdir\\\""
+               if test "$ac_with_rpath" = "yes"; then
+                 PMIX_V3_LDFLAGS="-Wl,-rpath -Wl,$x_ac_cv_pmix_libdir -L$x_ac_cv_pmix_libdir"
+               else
diff --git a/pkgs/servers/computing/storm/default.nix b/pkgs/servers/computing/storm/default.nix
index d55dd14601e..b8ae0bc4e85 100644
--- a/pkgs/servers/computing/storm/default.nix
+++ b/pkgs/servers/computing/storm/default.nix
@@ -1,24 +1,27 @@
 { stdenv, lib, fetchurl, zip, unzip
-, jzmq, jdk, python
-, confFile ? "", extraLibraryPaths ? [], extraJars ? [] }:
+, jdk, python
+, confFile ? ""
+, extraLibraryPaths ? []
+, extraJars ? []
+}:
 
 stdenv.mkDerivation rec {
-  name = "apache-storm-" + version;
-  version = "1.2.1";
+  pname = "apache-storm";
+  version = "2.1.0";
+  name = "${pname}-${version}";
+
   src = fetchurl {
-    url =
-    "mirror://apache/storm/${name}/${name}.tar.gz";
-    sha256 = "177dqgbviagrpvalg8h67mwiwwgmiqsg0hh97hcqqcjg71ypnjkv";
+    url = "mirror://apache/storm/${name}/${name}.tar.gz";
+    sha256 = "1i3z08rfy7aavshrbrskv9dmlhx1fjgrhhqm0pczfam4vnas8yg2";
   };
 
-  buildInputs = [ zip unzip jzmq ];
+  buildInputs = [ zip unzip ];
 
   installPhase = ''
     mkdir -p $out/share/${name}
     mv public $out/docs
     mv examples $out/share/${name}/.
 
-    rm -f lib/jzmq* || exit 1
     mv external extlib* lib $out/.
     mv conf bin $out/.
     mv log4j2 $out/conf/.
@@ -35,21 +38,22 @@ stdenv.mkDerivation rec {
       -e "s|STORM_CONF_DIR = .*|STORM_CONF_DIR = os.getenv('STORM_CONF_DIR','$out/conf')|" \
       -e 's|STORM_LOG4J2_CONF_DIR =.*|STORM_LOG4J2_CONF_DIR = os.path.join(STORM_CONF_DIR, "log4j2")|' \
         $out/bin/storm.py
+
     # Default jdk location
     sed -i -e 's|#.*export JAVA_HOME=.*|export JAVA_HOME="${jdk.home}"|' \
            $out/conf/storm-env.sh
-    unzip  $out/lib/storm-core-${version}.jar defaults.yaml;
-    zip -d $out/lib/storm-core-${version}.jar defaults.yaml;
+    ls -lh $out/lib
+    unzip  $out/lib/storm-client-${version}.jar defaults.yaml;
+    zip -d $out/lib/storm-client-${version}.jar defaults.yaml;
     sed -i \
-       -e 's|java.library.path: .*|java.library.path: "${jzmq}/lib:${lib.concatStringsSep ":" extraLibraryPaths}"|' \
+       -e 's|java.library.path: .*|java.library.path: "${lib.concatStringsSep ":" extraLibraryPaths}"|' \
        -e 's|storm.log4j2.conf.dir: .*|storm.log4j2.conf.dir: "conf/log4j2"|' \
       defaults.yaml
     ${if confFile != "" then ''cat ${confFile} >> defaults.yaml'' else ""}
     mv defaults.yaml $out/conf;
 
-    # Link to jzmq jar and extra jars
+    # Link to extra jars
     cd $out/lib;
-    ln -s ${jzmq}/share/java/*.jar;
     ${lib.concatMapStrings (jar: "ln -s ${jar};\n") extraJars}
   '';
 
diff --git a/pkgs/servers/consul/default.nix b/pkgs/servers/consul/default.nix
index e9795831049..196b680796c 100644
--- a/pkgs/servers/consul/default.nix
+++ b/pkgs/servers/consul/default.nix
@@ -27,6 +27,9 @@ buildGoModule rec {
   subPackages = ["." "connect/certgen"];
 
   vendorSha256 = "12a2x8j4kc1vi3ip0cz81k6anfwac23iqqyz00wf7wpvgxqzcxn3";
+
+  doCheck = false;
+
   deleteVendor = true;
 
   preBuild = ''
diff --git a/pkgs/servers/demoit/default.nix b/pkgs/servers/demoit/default.nix
index 514b6873a1a..675792da680 100644
--- a/pkgs/servers/demoit/default.nix
+++ b/pkgs/servers/demoit/default.nix
@@ -1,19 +1,21 @@
 { stdenv
-, buildGoPackage
+, buildGoModule
 , fetchFromGitHub
 }:
 
-buildGoPackage {
+buildGoModule {
   pname = "demoit";
-  version = "unstable-2019-05-10";
+  version = "unstable-2020-06-11";
   goPackagePath = "github.com/dgageot/demoit";
 
   src = fetchFromGitHub {
     owner = "dgageot";
     repo = "demoit";
-    rev = "c1d4780620ebf083cb4a81b83c80e7547ff7bc23";
-    sha256 = "0l0pw0kzgnrk6a6f4ls3s82icjp7q9djbaxwfpjswbcfdzrsk4p2";
+    rev = "5762b169e7f2fc18913874bf52323ffbb906ce84";
+    sha256 = "1jcjqr758d29h3y9ajvzhy1xmxfix5mwhylz6jwhy5nmk28bjzx9";
   };
+  vendorSha256 = null;
+  subPackages = [ "." ];
 
   meta = with stdenv.lib; {
     description = "Live coding demos without Context Switching";
diff --git a/pkgs/servers/dgraph/default.nix b/pkgs/servers/dgraph/default.nix
index de62b6e6a43..c1657dbfec4 100644
--- a/pkgs/servers/dgraph/default.nix
+++ b/pkgs/servers/dgraph/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "dgraph";
-  version = "20.03.3";
+  version = "20.07.0";
 
   src = fetchFromGitHub {
     owner = "dgraph-io";
     repo = "dgraph";
     rev = "v${version}";
-    sha256 = "0z2zc0mf7ndf3cpzi1js396s1yxpgfjaj9jacifsi8v6i6r0c6cz";
+    sha256 = "0jcr3imv6vy40c8zdahsfph5mdxkmp2yqapl5982cf0a61gj7brp";
   };
 
-  vendorSha256 = "1nz4yr3y4dr9l09hcsp8x3zhbww9kz0av1ax4192f5zxpw1q275s";
+  vendorSha256 = "0fb8ba2slav6jk93qwaw715myanivrpajfjwi654n0psr57vc7gf";
+
+  doCheck = false;
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/servers/dict/default.nix b/pkgs/servers/dict/default.nix
index fbffecbafaf..5e4d625c187 100644
--- a/pkgs/servers/dict/default.nix
+++ b/pkgs/servers/dict/default.nix
@@ -13,23 +13,26 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ bison flex libtool which ];
 
-  # Makefile(.in) contains "clientparse.c clientparse.h: clientparse.y" which
-  # causes bison to run twice, and break the build when this happens in
-  # parallel.  Test with "make -j clientparse.c clientparse.h".  The error
-  # message may be "mv: cannot move 'y.tab.c' to 'clientparse.c'".
-  enableParallelBuilding = false;
+  # In earlier versions, parallel building was not supported but it's OK with 1.13
+  enableParallelBuilding = true;
 
   patchPhase = "patch -p0 < ${./buildfix.diff}";
+
   configureFlags = [
     "--enable-dictorg"
     "--datadir=/run/current-system/sw/share/dictd"
+    "--sysconfdir=/etc"
   ];
 
+  postInstall = ''
+    install -Dm444 -t $out/share/doc/${pname} NEWS README
+  '';
+
   meta = with stdenv.lib; {
     description = "Dict protocol server and client";
-    homepage    = "http://www.dict.org";
-    license     = licenses.gpl2;
+    homepage = "http://www.dict.org";
+    license = licenses.gpl2;
     maintainers = with maintainers; [ ];
-    platforms   = platforms.linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/dns/coredns/default.nix b/pkgs/servers/dns/coredns/default.nix
index 47b6c61dd39..981056b53c1 100644
--- a/pkgs/servers/dns/coredns/default.nix
+++ b/pkgs/servers/dns/coredns/default.nix
@@ -4,8 +4,6 @@ buildGoModule rec {
   pname = "coredns";
   version = "1.7.0";
 
-  goPackagePath = "github.com/coredns/coredns";
-
   src = fetchFromGitHub {
     owner = "coredns";
     repo = "coredns";
@@ -15,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "17znl3vkg73hnrfl697rw201nsd5sijgalnbkljk1b4m0a01zik1";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = "https://coredns.io";
     description = "A DNS server that runs middleware";
     license = licenses.asl20;
     maintainers = with maintainers; [ rushmorem rtreffer deltaevo ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/dns/dnsdist/default.nix b/pkgs/servers/dns/dnsdist/default.nix
index 0c236fe9315..98947bd1873 100644
--- a/pkgs/servers/dns/dnsdist/default.nix
+++ b/pkgs/servers/dns/dnsdist/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dnsdist";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/dnsdist-${version}.tar.bz2";
-    sha256 = "1h0x5xd13j8xxrrinb7d55851m6n9w0r15wx9m3c50dk7qngldm3";
+    sha256 = "0n3vy84kczvbwbzmr1d2c9lh3im77gz83wczj0im4zs91kpw81rc";
   };
 
   nativeBuildInputs = [ pkgconfig protobuf ];
diff --git a/pkgs/servers/dns/knot-dns/default.nix b/pkgs/servers/dns/knot-dns/default.nix
index 3dc6fd3e2c7..d546b07148b 100644
--- a/pkgs/servers/dns/knot-dns/default.nix
+++ b/pkgs/servers/dns/knot-dns/default.nix
@@ -1,18 +1,17 @@
 { stdenv, fetchurl, pkgconfig, gnutls, liburcu, lmdb, libcap_ng, libidn2, libunistring
-, systemd, nettle, libedit, zlib, libiconv, libintl
+, systemd, nettle, libedit, zlib, libiconv, libintl, libmaxminddb
 , autoreconfHook
 }:
 
 let inherit (stdenv.lib) optional optionals; in
 
-# Note: ATM only the libraries have been tested in nixpkgs.
 stdenv.mkDerivation rec {
   pname = "knot-dns";
-  version = "2.9.5";
+  version = "2.9.6";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz";
-    sha256 = "1109a8ba212ff8ddfdbaf44a6f8fc13a2b880a98a9e54c19112ba72a1aacbf76";
+    sha256 = "bf742883c6825b54f19f2dadca2c94fec1ff8bdcf0a52388e2e167937594b2e7";
   };
 
   outputs = [ "bin" "out" "dev" ];
@@ -34,6 +33,7 @@ stdenv.mkDerivation rec {
     gnutls liburcu libidn2 libunistring
     nettle libedit
     libiconv lmdb libintl
+    libmaxminddb # optional for geoip module (it's tiny)
     # without sphinx &al. for developer documentation
   ]
     ++ optionals stdenv.isLinux [ libcap_ng systemd ]
diff --git a/pkgs/servers/dns/ncdns/default.nix b/pkgs/servers/dns/ncdns/default.nix
new file mode 100644
index 00000000000..f1d124176bb
--- /dev/null
+++ b/pkgs/servers/dns/ncdns/default.nix
@@ -0,0 +1,40 @@
+{ lib, nixosTests, git, buildGoPackage, fetchFromGitHub, libcap }:
+
+buildGoPackage rec {
+  pname = "ncdns";
+  version = "0.0.10.3";
+
+  goPackagePath = "github.com/namecoin/ncdns";
+  goDeps = ./deps.nix;
+
+  src = fetchFromGitHub {
+    owner = "namecoin";
+    repo = "ncdns";
+    rev = "v${version}";
+    sha256 = "12q5al48mkjhgyk7z5wyklzzrdbcqhwxl79axa4gh9ld75prghbq";
+  };
+
+  patches = [ ./fix-tpl-path.patch ];
+
+  buildInputs = [ libcap ];
+
+  preBuild = ''
+    go generate github.com/namecoin/x509-signature-splice/...
+  '';
+
+  postInstall = ''
+    mkdir -p "$out/share"
+    cp -r "$src/_doc" "$out/share/doc"
+    cp -r "$src/_tpl" "$out/share/tpl"
+  '';
+
+  meta = with lib; {
+    description = "Namecoin to DNS bridge daemon";
+    homepage = "https://github.com/namecoin/ncdns";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ rnhmjoj ];
+  };
+
+  passthru.tests.ncdns = nixosTests.ncdns;
+
+}
diff --git a/pkgs/servers/dns/ncdns/deps.nix b/pkgs/servers/dns/ncdns/deps.nix
new file mode 100644
index 00000000000..7ac3f2897e0
--- /dev/null
+++ b/pkgs/servers/dns/ncdns/deps.nix
@@ -0,0 +1,309 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+[
+  {
+    goPackagePath = "github.com/BurntSushi/toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/toml";
+      rev = "3012a1dbe2e4bd1391d42b32f0577cb7bbc7f005";
+      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
+    };
+  }
+  {
+    goPackagePath = "github.com/alecthomas/template";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/template";
+      rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
+      sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
+    };
+  }
+  {
+    goPackagePath = "github.com/alecthomas/units";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/units";
+      rev = "f65c72e2690dc4b403c8bd637baf4611cd4c069b";
+      sha256 = "04jyqm7m3m01ppfy1f9xk4qvrwvs78q9zml6llyf2b3v5k6b2bbc";
+    };
+  }
+  {
+    goPackagePath = "github.com/btcsuite/btcd";
+    fetch = {
+      type = "git";
+      url = "https://github.com/btcsuite/btcd";
+      rev = "9f0179fd2c46caba343b6515602cf37172f14d5f";
+      sha256 = "0cvpjsxlyzm04pwzi7nj43k9h5wfxj07jdc49qxsav5323v1nvka";
+    };
+  }
+  {
+    goPackagePath = "github.com/btcsuite/btclog";
+    fetch = {
+      type = "git";
+      url = "https://github.com/btcsuite/btclog";
+      rev = "84c8d2346e9fc8c7b947e243b9c24e6df9fd206a";
+      sha256 = "02dl46wcnfpg9sqvg0ipipkpnd7lrf4fnvb9zy56jqa7mfcwc7wk";
+    };
+  }
+  {
+    goPackagePath = "github.com/btcsuite/btcutil";
+    fetch = {
+      type = "git";
+      url = "https://github.com/btcsuite/btcutil";
+      rev = "b2bf7f89d674a3702182b7e15f52807896051af3";
+      sha256 = "0wwykb4cbq8xj2mls2mxma5vaahdgdy3vqw1r2fi4wyj0yr4kyw9";
+    };
+  }
+  {
+    goPackagePath = "github.com/btcsuite/go-socks";
+    fetch = {
+      type = "git";
+      url = "https://github.com/btcsuite/go-socks";
+      rev = "4720035b7bfd2a9bb130b1c184f8bbe41b6f0d0f";
+      sha256 = "18cv2icj059lq4s99p6yh91hlas5f2gi3f1p4c10sjgwrs933d7b";
+    };
+  }
+  {
+    goPackagePath = "github.com/btcsuite/websocket";
+    fetch = {
+      type = "git";
+      url = "https://github.com/btcsuite/websocket";
+      rev = "31079b6807923eb23992c421b114992b95131b55";
+      sha256 = "0xpkf257ml6fpfdgv7hxxc41n0d5yxxm3njm50qpzp7j71l9cjwa";
+    };
+  }
+  {
+    goPackagePath = "github.com/coreos/go-systemd";
+    fetch = {
+      type = "git";
+      url = "https://github.com/coreos/go-systemd";
+      rev = "b51e752dd1c9c618846f8bc5b95ab524bd7b11c2";
+      sha256 = "127dj1iwp69yj74nwh9ckgc0mkk1mv4yzbxmbdxix1r7j6q35z3j";
+    };
+  }
+  {
+    goPackagePath = "github.com/golang/groupcache";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/groupcache";
+      rev = "8c9f03a8e57eb486e42badaed3fb287da51807ba";
+      sha256 = "0vjjr79r32icjzlb05wn02k59av7jx0rn1jijml8r4whlg7dnkfh";
+    };
+  }
+  {
+    goPackagePath = "github.com/hlandau/buildinfo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hlandau/buildinfo";
+      rev = "337a29b5499734e584d4630ce535af64c5fe7813";
+      sha256 = "1kq3r1i4rr9bcvj5yg8w1l95f6sfc3kn6kgcdmlh5i3j9w2sram8";
+    };
+  }
+  {
+    goPackagePath = "github.com/hlandau/degoutils";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hlandau/degoutils";
+      rev = "8fa2440b63444dad556d76366f1c3ee070c8a577";
+      sha256 = "1yj39jbrk3xx3cyl8f4asakc74lsl0brasi25xjf6219pg69q0iy";
+    };
+  }
+  {
+    goPackagePath = "github.com/hlandau/dexlogconfig";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hlandau/dexlogconfig";
+      rev = "244f29bd260884993b176cd14ef2f7631f6f3c18";
+      sha256 = "1d01ghx6xawj3nk3lpk51wbbpxdnc9vzvijvlayvp7cxgsacslbc";
+    };
+  }
+  {
+    goPackagePath = "github.com/hlandau/xlog";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hlandau/xlog";
+      rev = "197ef798aed28e08ed3e176e678fda81be993a31";
+      sha256 = "08rjlqnjbfgpz5rbjq89l7y5vyhk99ivr928sqdi5gnqznbqs4m8";
+    };
+  }
+  {
+    goPackagePath = "github.com/kr/pretty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/pretty";
+      rev = "4e0886370c3a67530192c6a238cff68f56c141b0";
+      sha256 = "1ywbfzz1h3a3qd8rpkiqwi1dm4w8ls9ijb4x1b7567grns9f0vnp";
+    };
+  }
+  {
+    goPackagePath = "github.com/kr/text";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/text";
+      rev = "702c74938df48b97370179f33ce2107bd7ff3b3e";
+      sha256 = "0hf58ypz6rxsw6nx3i856whir9lvy4sdx946wbw1nfaf2rdmr9vx";
+    };
+  }
+  {
+    goPackagePath = "github.com/mattn/go-isatty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-isatty";
+      rev = "cb30d6282491c185f77d9bec5d25de1bb61a06bc";
+      sha256 = "0v59mv94acd2m72q8adhigxkx1vn38l5h0d8hp0nxga2v9f3v8kd";
+    };
+  }
+  {
+    goPackagePath = "github.com/miekg/dns";
+    fetch = {
+      type = "git";
+      url = "https://github.com/miekg/dns";
+      rev = "203ad2480beb9330454efc215d21f16c607e8174";
+      sha256 = "12i2l79whv7a8c27f1dvq4wqikx4d0l30r1ja68zfgrgik6vryxq";
+    };
+  }
+  {
+    goPackagePath = "github.com/namecoin/btcd";
+    fetch = {
+      type = "git";
+      url = "https://github.com/namecoin/btcd";
+      rev = "69a10543311fa68737d0a77b4cd045b0b0abfb75";
+      sha256 = "1zbfigs3hrjhdwp19877lpgivdcz3k80149nxdmxlmp03xcswcqy";
+    };
+  }
+  {
+    goPackagePath = "github.com/namecoin/ncbtcjson";
+    fetch = {
+      type = "git";
+      url = "https://github.com/namecoin/ncbtcjson";
+      rev = "fa221af062c70f802db6ed66e1546cc4a41ec277";
+      sha256 = "1fmz5aylsji27vj5f3f3gg9xj99735gh5prvcfz0gmk68v1mnr4i";
+    };
+  }
+  {
+    goPackagePath = "github.com/namecoin/ncrpcclient";
+    fetch = {
+      type = "git";
+      url = "https://github.com/namecoin/ncrpcclient";
+      rev = "858e1a5acd8b2da56462f50323633cdf2fe80977";
+      sha256 = "0pj951wm6fdkk2yv4bxaxka52i7rb6w3fs9ah3fy7p8wchr4smjx";
+    };
+  }
+  {
+    goPackagePath = "github.com/namecoin/tlsrestrictnss";
+    fetch = {
+      type = "git";
+      url = "https://github.com/namecoin/tlsrestrictnss";
+      rev = "945a9f3d995fcb175fd0b19549e21a3e87ba8c13";
+      sha256 = "18qphkqnjw3bwflkyyrddyzgwscs37j7y6ynm9g78bqb5skviqqy";
+    };
+  }
+  {
+    goPackagePath = "github.com/namecoin/x509-signature-splice";
+    fetch = {
+      type = "git";
+      url = "https://github.com/namecoin/x509-signature-splice";
+      rev = "d8b4bf2df701c55239a9fe82bb1e7bea10e30599";
+      sha256 = "0jlj4gb60s7b69d8yx6ljhxgvqgjz01n0h59fswblw09wfba8c4j";
+    };
+  }
+  {
+    goPackagePath = "github.com/ogier/pflag";
+    fetch = {
+      type = "git";
+      url = "https://github.com/ogier/pflag";
+      rev = "45c278ab3607870051a2ea9040bb85fcb8557481";
+      sha256 = "0620v75wppfd84d95n312wpngcb73cph4q3ivs1h0waljfnsrd5l";
+    };
+  }
+  {
+    goPackagePath = "github.com/shiena/ansicolor";
+    fetch = {
+      type = "git";
+      url = "https://github.com/shiena/ansicolor";
+      rev = "a422bbe96644373c5753384a59d678f7d261ff10";
+      sha256 = "1dcn8a9z6a5dxa2m3fkppnajcls8lanbl38qggkf646yi5qsk1hc";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "279210d13fedf5be6d476bad5df6a015042bb905";
+      sha256 = "0syi72jba84nn1z89bqpcv94wjvzj71dwg1pj30xrcixcz1zsg26";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev = "627f9648deb96c27737b83199d44bb5c1010cbcf";
+      sha256 = "0ziz7i9mhz6dy2f58dsa83flkk165w1cnazm7yksql5i9m7x099z";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "6fdc65e7d9800cc59998e8ac0d9406a20ff5f399";
+      sha256 = "0al5gzij4qkrp11i1h8j7288pg6y716zyh2v0886pv2knha7gjvj";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/alecthomas/kingpin.v2";
+      rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
+      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/hlandau/configurable.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/hlandau/configurable.v1";
+      rev = "41496864a1fe3e0fef2973f22372b755d2897402";
+      sha256 = "0i9jbdvi8rz12xsrzzbfxg5lwsqakjcmccsa5a32asmv26k5byqa";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/hlandau/easyconfig.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/hlandau/easyconfig.v1";
+      rev = "c31249162931b4963bbe6e501cccb60d23271a3f";
+      sha256 = "1v8j1pyzcfj1l4pmb1c6mszci6xzc4agdam2kq79kyvbsvbbw9dc";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/hlandau/madns.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/hlandau/madns.v2";
+      rev = "26979b3e4b5aa3e0bd53cf0a014f9eaf43b578e3";
+      sha256 = "09r4m4mqdgd7hvxyvss9m64lq0kk8nylnq2bgnkrclgzpi87fmmb";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/hlandau/service.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/hlandau/service.v2";
+      rev = "b64b3467ebd16f64faec1640c25e318efc0c0d7b";
+      sha256 = "0lpx88f46ylx9lf6jgwcjgklll1pc1mlakrywpa0wzhjj7a4jinc";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/hlandau/svcutils.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/hlandau/svcutils.v1";
+      rev = "c25dac49e50cbbcbef8c81b089f56156f4067729";
+      sha256 = "12b6p71mk33r44d71xizjq82fls0ykfwfl5gnmckbgpxms4bj2xf";
+    };
+  }
+]
diff --git a/pkgs/servers/dns/ncdns/fix-tpl-path.patch b/pkgs/servers/dns/ncdns/fix-tpl-path.patch
new file mode 100644
index 00000000000..850fb4d1b18
--- /dev/null
+++ b/pkgs/servers/dns/ncdns/fix-tpl-path.patch
@@ -0,0 +1,27 @@
+This sets a default value for the tpl directory that works for Nixpkgs.
+
+diff --git a/server/web.go b/server/web.go
+index d024a42..0522d02 100644
+--- a/server/web.go
++++ b/server/web.go
+@@ -10,6 +10,7 @@ import "path/filepath"
+ import "time"
+ import "strings"
+ import "fmt"
++import "os"
+ 
+ var layoutTpl *template.Template
+ var mainPageTpl *template.Template
+@@ -44,7 +45,11 @@ func deriveTemplate(filename string) (*template.Template, error) {
+ }
+ 
+ func (s *Server) tplFilename(filename string) string {
+-	td := filepath.Join(s.cfg.ConfigDir, "..", "tpl")
++	ex, err := os.Executable()
++	if err != nil {
++		panic(err)
++	}
++	td := filepath.Join(filepath.Dir(ex), "..", "share", "tpl")
+ 	if s.cfg.TplPath != "" {
+ 		td = s.cfg.TplPath
+ 	}
diff --git a/pkgs/servers/dns/nsd/default.nix b/pkgs/servers/dns/nsd/default.nix
index 8d4125b8fa1..2dfdf108c4f 100644
--- a/pkgs/servers/dns/nsd/default.nix
+++ b/pkgs/servers/dns/nsd/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nsd";
-  version = "4.3.1";
+  version = "4.3.2";
 
   src = fetchurl {
     url = "https://www.nlnetlabs.nl/downloads/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "11w9kl99fs888f3zwx2j92i8lcp78vq91jac8s317a2icv74mczl";
+    sha256 = "0ac3mbn5z4nc18782m9aswdpi2m9f4665vidw0ciyigdh0pywp2v";
   };
 
   prePatch = ''
diff --git a/pkgs/servers/dns/pdns-recursor/default.nix b/pkgs/servers/dns/pdns-recursor/default.nix
index 10a18ab1d45..051e619af4e 100644
--- a/pkgs/servers/dns/pdns-recursor/default.nix
+++ b/pkgs/servers/dns/pdns-recursor/default.nix
@@ -8,11 +8,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "pdns-recursor";
-  version = "4.3.1";
+  version = "4.3.3";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/pdns-recursor-${version}.tar.bz2";
-    sha256 = "1n9gymis0h1grgg63ig3kk9cb27ayy1w6s8hcn8n4g5dzi90h8sl";
+    sha256 = "020mx8mh6zrixkhsc2p1c2ccl9zfypay988jjxbk6ql020flig0b";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/servers/documize-community/default.nix b/pkgs/servers/documize-community/default.nix
index 9a6580353fc..09c511b4d6f 100644
--- a/pkgs/servers/documize-community/default.nix
+++ b/pkgs/servers/documize-community/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   nativeBuildInputs = [ go-bindata go-bindata-assetfs ];
 
   # This is really weird, but they've managed to screw up
diff --git a/pkgs/servers/echoip/default.nix b/pkgs/servers/echoip/default.nix
index 18952d01c91..745cf96df46 100644
--- a/pkgs/servers/echoip/default.nix
+++ b/pkgs/servers/echoip/default.nix
@@ -13,6 +13,8 @@ buildGoModule {
 
   vendorSha256 = "0vvs717pl5gzggxpbn2vkyxmpiw5zjdfnpbh8i81xidbqvlnm22h";
 
+  doCheck = false;
+
   outputs = [ "out" "index" ];
 
   postInstall = ''
@@ -25,4 +27,4 @@ buildGoModule {
     license = licenses.bsd3;
     maintainers = with maintainers; [ rvolosatovs ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/etcd/3.4.nix b/pkgs/servers/etcd/3.4.nix
index 699ec033d3f..be52b1bf1a5 100644
--- a/pkgs/servers/etcd/3.4.nix
+++ b/pkgs/servers/etcd/3.4.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "etcd";
-  version = "3.4.9";
+  version = "3.4.13";
 
-  #vendorSha256 = null; revert to `null` for > 3.4.9
-
-  vendorSha256 = "1fhrycl8m8ddb7mwasbyfiwrl4d9lfdk7zd3mxb7ahkipdp2c94z";
   deleteVendor = true;
+  vendorSha256 = "0jlnh4789xa2dhbyp33k9r278kc588ykggamnnfqivb27s2646bc";
+
+  doCheck = false;
 
   src = fetchFromGitHub {
     owner = "etcd-io";
     repo = "etcd";
     rev = "v${version}";
-    sha256 = "16l4wmnm7mkhpb2vzf6xnhhyx6lj8xx3z6x1bfs05idajnrw824p";
+    sha256 = "0bvky593241i60qf6793sxzsxwfl3f56cgscnva9f2jfhk157wmy";
   };
 
   buildPhase = ''
diff --git a/pkgs/servers/etcd/default.nix b/pkgs/servers/etcd/default.nix
index 4c0df659f3e..53ad0d6ed24 100644
--- a/pkgs/servers/etcd/default.nix
+++ b/pkgs/servers/etcd/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "etcd";
-  version = "3.3.22";
+  version = "3.3.25";
 
   goPackagePath = "github.com/coreos/etcd";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "etcd-io";
     repo = "etcd";
     rev = "v${version}";
-    sha256 = "1rd390qfx9k20j9gh1wp1g9ygc571f2kv1dg2wvqij3kwydhymcj";
+    sha256 = "10cyy6jr2xzmla5yyn850cv323ixrk70fjpk8lxjjjvy0ffmb6hj";
   };
 
   buildPhase = ''
@@ -24,10 +24,7 @@ buildGoPackage rec {
     install -Dm755 bin/* bin/functional/cmd/* -t $out/bin
   '';
 
-  passthru.tests = with nixosTests; {
-    etcd = etcd;
-    etcd-cluster = etcd-cluster;
-  };
+  passthru.tests = { inherit (nixosTests) etcd etcd-cluster; };
 
   meta = with lib; {
     description = "Distributed reliable key-value store for the most critical data of a distributed system";
diff --git a/pkgs/servers/freeradius/default.nix b/pkgs/servers/freeradius/default.nix
index 9c80b7e7db3..84c92619f73 100644
--- a/pkgs/servers/freeradius/default.nix
+++ b/pkgs/servers/freeradius/default.nix
@@ -43,11 +43,11 @@ assert withRest -> curl != null && withJson;
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "freeradius";
-  version = "3.0.20";
+  version = "3.0.21";
 
   src = fetchurl {
     url = "ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-${version}.tar.gz";
-    sha256 = "0zrnlpril8lcnyd6zz0wy45wj5i2k2krcf42dwa0rldjsjh6nazp";
+    sha256 = "1bij07angf6ll6bq8lccd4fx1a1clf7k13kh5vbryh6lf7a19y9b";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/servers/ftp/bftpd/default.nix b/pkgs/servers/ftp/bftpd/default.nix
index bb35ec075dd..538877169e1 100644
--- a/pkgs/servers/ftp/bftpd/default.nix
+++ b/pkgs/servers/ftp/bftpd/default.nix
@@ -5,11 +5,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
-  version = "5.4";
+  version = "5.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/${pname}/${pname}/${name}/${name}.tar.gz";
-    sha256 = "19fd9r233wkjk8gdxn6qsjgfijiw67a48xhgbm2kq46bx80yf3pg";
+    sha256 = "18ksld775balh0yx2icj7fya9fvjkfgvwznvccdlmhi3zidg550h";
   };
 
   preConfigure = ''
@@ -31,6 +31,6 @@ in stdenv.mkDerivation rec {
     homepage = "http://bftpd.sf.net/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ raskin ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/servers/ftp/pure-ftpd/default.nix b/pkgs/servers/ftp/pure-ftpd/default.nix
index 020d2967f3e..32e039f546b 100644
--- a/pkgs/servers/ftp/pure-ftpd/default.nix
+++ b/pkgs/servers/ftp/pure-ftpd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, openssl }:
+{ stdenv, fetchurl, openssl, fetchpatch }:
 
 stdenv.mkDerivation rec {
   name = "pure-ftpd-1.0.49";
@@ -8,6 +8,19 @@ stdenv.mkDerivation rec {
     sha256 = "19cjr262n6h560fi9nm7l1srwf93k34bp8dp1c6gh90bqxcg8yvn";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2020-9274.patch";
+      url = "https://github.com/jedisct1/pure-ftpd/commit/8d0d42542e2cb7a56d645fbe4d0ef436e38bcefa.patch";
+      sha256 = "1yd84p6bd4rf21hg3kqpi2a02cac6dz5ag4xx3c2dl5vbzhr5a8k";
+    })
+    (fetchpatch {
+      name = "CVE-2020-9365.patch";
+      url = "https://github.com/jedisct1/pure-ftpd/commit/bf6fcd4935e95128cf22af5924cdc8fe5c0579da.patch";
+      sha256 = "003klx7j82qf92qr1dxg32v5r2bhhywplynd3xil1lbcd3s3mqhi";
+    })
+  ];
+
   buildInputs = [ openssl ];
 
   configureFlags = [ "--with-tls" ];
diff --git a/pkgs/servers/gemini/molly-brown/default.nix b/pkgs/servers/gemini/molly-brown/default.nix
new file mode 100644
index 00000000000..216a4015ef9
--- /dev/null
+++ b/pkgs/servers/gemini/molly-brown/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoPackage, fetchgit, nixosTests }:
+
+buildGoPackage rec {
+  pname = "molly-brown";
+  version = "unstable-2020-07-06";
+  rev = "2e510328ef1737c67641c588095e4628e3dfa8d3";
+
+  goPackagePath = "tildegit.org/solderpunk/molly-brown";
+
+  src = fetchgit {
+    inherit rev;
+    url = "https://tildegit.org/solderpunk/molly-brown.git";
+    sha256 = "0c2pmkcs5a04h2vwzbhj6rg47mb9wcmkh22i56kx7clh51wbbvc4";
+  };
+
+  goDeps = ./deps.nix;
+
+  passthru.tests.basic = nixosTests.molly-brown;
+
+  meta = with lib; {
+    description = "Full-featured Gemini server";
+    homepage = "https://tildegit.org/solderpunk/molly-brown";
+    maintainers = with maintainers; [ ehmry ];
+    license = licenses.bsd2;
+  };
+}
diff --git a/pkgs/servers/gemini/molly-brown/deps.nix b/pkgs/servers/gemini/molly-brown/deps.nix
new file mode 100644
index 00000000000..95427e8f790
--- /dev/null
+++ b/pkgs/servers/gemini/molly-brown/deps.nix
@@ -0,0 +1,12 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+[
+  {
+    goPackagePath = "github.com/BurntSushi/toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/toml";
+      rev = "3012a1dbe2e4bd1391d42b32f0577cb7bbc7f005";
+      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
+    };
+  }
+]
diff --git a/pkgs/servers/gobetween/default.nix b/pkgs/servers/gobetween/default.nix
index 2b474d818ad..9f28a89f51e 100644
--- a/pkgs/servers/gobetween/default.nix
+++ b/pkgs/servers/gobetween/default.nix
@@ -1,38 +1,25 @@
-{ rsync, buildGoModule, fetchFromGitHub, lib, runCommand, enableStatic ? false }:
+{ buildGoModule, fetchFromGitHub, lib, enableStatic ? false }:
 
 buildGoModule rec {
   pname = "gobetween";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "yyyar";
     repo = "gobetween";
     rev = version;
-    sha256 = "f01593509ccece063acd47002c4fc52261fbbbcdbf14b088d813b7d8e38fcca8";
+    sha256 = "0bxf89l53sqan9qq23rwawjkcanv9p61sw56zjqhyx78f0bh0zbc";
   };
-  patches = [ ./gomod.patch ];
 
-  deleteVendor = true;
+  patches = [
+    ./gomod.patch
+  ];
 
   buildPhase = ''
     make -e build${lib.optionalString enableStatic "-static"}
   '';
 
-  lxd = fetchFromGitHub {
-    owner = "lxc";
-    repo = "lxd";
-    rev = "41efd98813f3b42f1752ff6c2c7569a054924623";
-    sha256 = "02vnvjjkzl7b0i2cn03f1lb3jgj5rd3wdkii4pqi9bvmhzszg0l2";
-  };
-
-  overrideModAttrs = (_: {
-      postBuild = ''
-      rm -r vendor/github.com/lxc/lxd
-      cp -r --reflink=auto ${lxd} vendor/github.com/lxc/lxd
-      '';
-    });
-
-  vendorSha256 = "1pd0zrjwpw6yv2s86a818yy2ma2fkazd3sb2h6zfp9mvyixgxgri";
+  vendorSha256 = "1nkni9ikpc0wngh5v0qmlpn5s9v85lb2ih22f3h3lih7nc29yv87";
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/servers/gobetween/gomod.patch b/pkgs/servers/gobetween/gomod.patch
index 98181e3fe79..2f0fb408061 100644
--- a/pkgs/servers/gobetween/gomod.patch
+++ b/pkgs/servers/gobetween/gomod.patch
@@ -1,21 +1,13 @@
-diff --git a/go.mod b/go.mod
-index 536631a..f91e862 100644
---- a/go.mod
-+++ b/go.mod
-@@ -7,7 +7,7 @@ require (
- 	github.com/burntsushi/toml v0.3.1
- 	github.com/elgs/gojq v0.0.0-20160421194050-81fa9a608a13
- 	github.com/elgs/gosplitargs v0.0.0-20161028071935-a491c5eeb3c8 // indirect
--	github.com/flosch/pongo2 v0.0.0-20181225140029-79872a7b2769 // indirect
-+	github.com/flosch/pongo2 v0.0.0-20190707114632-bbf5a6c351f4 // indirect
- 	github.com/fsouza/go-dockerclient v1.3.6
- 	github.com/gin-contrib/cors v0.0.0-20190301062745-f9e10995c85a
- 	github.com/gin-gonic/gin v1.3.0
-@@ -20,7 +20,6 @@ require (
+diff --git a/src/go.mod b/src/go.mod
+index 3242342..795c306 100644
+--- a/src/go.mod
++++ b/src/go.mod
+@@ -28,7 +28,7 @@ require (
  	github.com/juju/go4 v0.0.0-20160222163258-40d72ab9641a // indirect
  	github.com/juju/persistent-cookiejar v0.0.0-20171026135701-d5e5a8405ef9 // indirect
- 	github.com/juju/schema v0.0.0-20181210140654-64a6158e9071 // indirect
--	github.com/juju/utils v0.0.0-20180820210520-bf9cc5bdd62d // indirect
- 	github.com/juju/webbrowser v0.0.0-20180907093207-efb9432b2bcb // indirect
- 	github.com/julienschmidt/httprouter v1.2.0 // indirect
- 	github.com/lxc/lxd v0.0.0-20190314233831-41efd98813f3
+ 	github.com/juju/webbrowser v1.0.0 // indirect
+-	github.com/lxc/lxd v0.0.0-20200706202337-814c96fcec74
++	github.com/lxc/lxd v0.0.0-20200727014606-0d408e8e8ebb
+ 	github.com/mattn/go-colorable v0.1.7 // indirect
+ 	github.com/miekg/dns v1.1.30
+ 	github.com/mitchellh/go-testing-interface v1.14.0 // indirect
diff --git a/pkgs/servers/gonic/default.nix b/pkgs/servers/gonic/default.nix
new file mode 100644
index 00000000000..343b3d2b19d
--- /dev/null
+++ b/pkgs/servers/gonic/default.nix
@@ -0,0 +1,59 @@
+{ lib, buildGoPackage, fetchFromGitHub
+, pkg-config, taglib, alsaLib
+
+# Disable on-the-fly transcoding,
+# removing the dependency on ffmpeg.
+# The server will (as of 0.11.0) gracefully fall back
+# to the original file, but if transcoding is configured
+# that takes a while. So best to disable all transcoding
+# in the configuration if you disable transcodingSupport.
+, transcodingSupport ? true, ffmpeg
+
+# udpater
+, writers, vgo2nix }:
+
+assert transcodingSupport -> ffmpeg != null;
+
+let
+  # update these, then run `updateScript` to update dependencies
+  version = "0.11.0";
+  rev = "056fb54a703ef5b5194ce112cbbdd8fb53dbb1ea";
+  sha256 = "0hd794wrz29nh89lfnq67w1rc23sg085rqf1agwlgpqycns2djl9";
+
+  src = fetchFromGitHub {
+    owner = "sentriz";
+    repo = "gonic";
+    inherit rev sha256;
+  };
+
+in
+buildGoPackage {
+  pname = "gonic-${version}";
+  inherit version src;
+  goPackagePath = "go.senan.xyz/gonic";
+  goDeps = ./deps.nix;
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ taglib alsaLib ];
+
+  postPatch = lib.optionalString transcodingSupport ''
+    substituteInPlace \
+       server/encode/encode.go \
+      --replace \
+        'ffmpegPath = "/usr/bin/ffmpeg"' \
+        'ffmpegPath = "${ffmpeg}/bin/ffmpeg"' \
+  '';
+
+  passthru.updateScript = writers.writeDash "update-gonic" ''
+    ${vgo2nix}/bin/vgo2nix \
+      -dir ${src} \
+      -outfile ${lib.escapeShellArg (toString ./deps.nix)}
+  '';
+
+  meta = {
+    homepage = "https://github.com/sentriz/gonic";
+    description = "Music streaming server / subsonic server API implementation";
+    license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ Profpatsch ];
+  };
+}
diff --git a/pkgs/servers/gonic/deps.nix b/pkgs/servers/gonic/deps.nix
new file mode 100644
index 00000000000..71b2f83a0e0
--- /dev/null
+++ b/pkgs/servers/gonic/deps.nix
@@ -0,0 +1,795 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+  {
+    goPackagePath = "cloud.google.com/go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/googleapis/google-cloud-go";
+      rev = "v0.33.1";
+      sha256 = "1xs487sqajpvnhlwp130sfaajyinhxxq2yvmv2533mwf0zhcpz6v";
+    };
+  }
+  {
+    goPackagePath = "dmitri.shuralyov.com/gpu/mtl";
+    fetch = {
+      type = "git";
+      url = "https://dmitri.shuralyov.com/gpu/mtl";
+      rev = "666a987793e9";
+      sha256 = "1isd03hgiwcf2ld1rlp0plrnfz7r4i7c5q4kb6hkcd22axnmrv0z";
+    };
+  }
+  {
+    goPackagePath = "github.com/BurntSushi/toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/toml";
+      rev = "v0.3.1";
+      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
+    };
+  }
+  {
+    goPackagePath = "github.com/BurntSushi/xgb";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/xgb";
+      rev = "27f122750802";
+      sha256 = "18lp2x8f5bljvlz0r7xn744f0c9rywjsb9ifiszqqdcpwhsa0kvj";
+    };
+  }
+  {
+    goPackagePath = "github.com/Masterminds/goutils";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Masterminds/goutils";
+      rev = "v1.1.0";
+      sha256 = "180px47gj936qyk5bkv5mbbgiil9abdjq6kwkf7sq70vyi9mcfiq";
+    };
+  }
+  {
+    goPackagePath = "github.com/Masterminds/semver";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Masterminds/semver";
+      rev = "v1.5.0";
+      sha256 = "1i169xscsxsh8lsw8bz2apnsqixld37xdnfh36i30xy5wnf0iwfx";
+    };
+  }
+  {
+    goPackagePath = "github.com/Masterminds/sprig";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Masterminds/sprig";
+      rev = "v2.22.0";
+      sha256 = "09dzwhj4zh3p6f1jhyic16n4qdnvpamz7hyk9fycpm4b1jfq63gd";
+    };
+  }
+  {
+    goPackagePath = "github.com/OneOfOne/xxhash";
+    fetch = {
+      type = "git";
+      url = "https://github.com/OneOfOne/xxhash";
+      rev = "v1.2.2";
+      sha256 = "1mjfhrwhvxa48rycjnqpqzm521i38h1hdyz6pdwmhd7xb8j6gwi6";
+    };
+  }
+  {
+    goPackagePath = "github.com/cespare/xxhash";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cespare/xxhash";
+      rev = "v1.1.0";
+      sha256 = "1qyzlcdcayavfazvi03izx83fvip8h36kis44zr2sg7xf6sx6l4x";
+    };
+  }
+  {
+    goPackagePath = "github.com/d4l3k/messagediff";
+    fetch = {
+      type = "git";
+      url = "https://github.com/d4l3k/messagediff";
+      rev = "7e0a312ae40b";
+      sha256 = "1ab2gm7ys33rs84fjzqcb7b4jy2rr1a0w5a9kakfaf80wd0rjrah";
+    };
+  }
+  {
+    goPackagePath = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev = "v1.1.1";
+      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
+    };
+  }
+  {
+    goPackagePath = "github.com/denisenkom/go-mssqldb";
+    fetch = {
+      type = "git";
+      url = "https://github.com/denisenkom/go-mssqldb";
+      rev = "732737034ffd";
+      sha256 = "0k1inn33lbfj97d5ir3k5gffjcpb39kairq91jfrz6pnbq0w3zlf";
+    };
+  }
+  {
+    goPackagePath = "github.com/disintegration/imaging";
+    fetch = {
+      type = "git";
+      url = "https://github.com/disintegration/imaging";
+      rev = "v1.6.2";
+      sha256 = "1sl201nmk601h0aii4234sycn4v2b0rjxf8yhrnik4yjzd68q9x5";
+    };
+  }
+  {
+    goPackagePath = "github.com/dustin/go-humanize";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dustin/go-humanize";
+      rev = "v1.0.0";
+      sha256 = "1kqf1kavdyvjk7f8kx62pnm7fbypn9z1vbf8v2qdh3y7z7a0cbl3";
+    };
+  }
+  {
+    goPackagePath = "github.com/erikstmartin/go-testdb";
+    fetch = {
+      type = "git";
+      url = "https://github.com/erikstmartin/go-testdb";
+      rev = "8d10e4a1bae5";
+      sha256 = "1fhrqcpv8x74qwxx9gpnhgqbz5wkp2bnsq92w418l1fnrgh4ppmq";
+    };
+  }
+  {
+    goPackagePath = "github.com/faiface/beep";
+    fetch = {
+      type = "git";
+      url = "https://github.com/faiface/beep";
+      rev = "v1.0.2";
+      sha256 = "07j0k0ynw1q8f7fzsan4kvfmdlda11583sck66hxfsk9zbp8vpxv";
+    };
+  }
+  {
+    goPackagePath = "github.com/gdamore/encoding";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gdamore/encoding";
+      rev = "v1.0.0";
+      sha256 = "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9";
+    };
+  }
+  {
+    goPackagePath = "github.com/gdamore/tcell";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gdamore/tcell";
+      rev = "v1.1.1";
+      sha256 = "0il2nnxp2cqiy73m49215dnf9in3vd25ji8qxbmq87c5qy7i1q9d";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-audio/audio";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-audio/audio";
+      rev = "v1.0.0";
+      sha256 = "05ai13yc8wwk2zlk9br62lh4z9hs1q685l7ij618bknf449vjsf3";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-audio/riff";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-audio/riff";
+      rev = "v1.0.0";
+      sha256 = "0wg3p3gsad1rql7bzx7pwwsyd00a5gdb8f1h7zfr7hlqja5skwb4";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-audio/wav";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-audio/wav";
+      rev = "v1.0.0";
+      sha256 = "058mgc5ahjibnsqayk3k75l04gg9mv27bpmj79jyrya3kaczpamk";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-gl/glfw";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-gl/glfw";
+      rev = "6f7a984d4dc4";
+      sha256 = "1nyv7h08qf4dp8w9pmcnrc6vv9bkwj8fil6pz0mkbss5hf4i8xcq";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-sql-driver/mysql";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-sql-driver/mysql";
+      rev = "v1.5.0";
+      sha256 = "11x0m9yf3kdnf6981182r824psgxwfaqhn3x3in4yiidp0w0hk3v";
+    };
+  }
+  {
+    goPackagePath = "github.com/gofrs/uuid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gofrs/uuid";
+      rev = "v3.2.0";
+      sha256 = "1q63mp7bznhfgyw133c0wc0hpcj1cq9bcf7w1f8r6inkcrils1fz";
+    };
+  }
+  {
+    goPackagePath = "github.com/golang-sql/civil";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang-sql/civil";
+      rev = "cb61b32ac6fe";
+      sha256 = "0yadfbvi0w06lg3sxw0daji02jxd3vv2in26yfmwpl4vd4vm9zay";
+    };
+  }
+  {
+    goPackagePath = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev = "v1.2.0";
+      sha256 = "0kf4b59rcbb1cchfny2dm9jyznp8ri2hsb14n8iak1q8986xa0ab";
+    };
+  }
+  {
+    goPackagePath = "github.com/google/go-cmp";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/go-cmp";
+      rev = "v0.2.0";
+      sha256 = "1fbv0x27k9sn8svafc0hjwsnckk864lv4yi7bvzrxvmd3d5hskds";
+    };
+  }
+  {
+    goPackagePath = "github.com/google/uuid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/uuid";
+      rev = "v1.1.1";
+      sha256 = "0hfxcf9frkb57k6q0rdkrmnfs78ms21r1qfk9fhlqga2yh5xg8zb";
+    };
+  }
+  {
+    goPackagePath = "github.com/gopherjs/gopherjs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gopherjs/gopherjs";
+      rev = "0210a2f0f73c";
+      sha256 = "1n80xjfc1dkxs8h8mkpw83n89wi5n7hzc3rxhwjs76rkxpq3rc9j";
+    };
+  }
+  {
+    goPackagePath = "github.com/gopherjs/gopherwasm";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gopherjs/gopherwasm";
+      rev = "v1.0.0";
+      sha256 = "0q20il68gqnrc0s8jndc8mw1ynln60a4xy1lrqakzmp8whyilwri";
+    };
+  }
+  {
+    goPackagePath = "github.com/gorilla/context";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/context";
+      rev = "v1.1.1";
+      sha256 = "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4";
+    };
+  }
+  {
+    goPackagePath = "github.com/gorilla/mux";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/mux";
+      rev = "v1.7.4";
+      sha256 = "1d0sy1paa055ic84sp3766s9pa24q008hf77dc842vrgvn8p3wmh";
+    };
+  }
+  {
+    goPackagePath = "github.com/gorilla/securecookie";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/securecookie";
+      rev = "v1.1.1";
+      sha256 = "16bqimpxs9vj5n59vm04y04v665l7jh0sddxn787pfafyxcmh410";
+    };
+  }
+  {
+    goPackagePath = "github.com/gorilla/sessions";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/sessions";
+      rev = "v1.2.0";
+      sha256 = "1kz6ydgp7vamhl2ak02hvzp2yv1dbfbwzsdxn6271lyzzdvz4pp1";
+    };
+  }
+  {
+    goPackagePath = "github.com/hajimehoshi/go-mp3";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hajimehoshi/go-mp3";
+      rev = "v0.2.1";
+      sha256 = "0dxqpyj4xbq570if25g5wqbbp6frhq733h2ny3b2z3z8hw4q7vgg";
+    };
+  }
+  {
+    goPackagePath = "github.com/hajimehoshi/oto";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hajimehoshi/oto";
+      rev = "v0.6.1";
+      sha256 = "1k3c0y8gdxn2c8fqc8rbjrn7nbbbhii3krma267jg01qq2zpsm8h";
+    };
+  }
+  {
+    goPackagePath = "github.com/huandu/xstrings";
+    fetch = {
+      type = "git";
+      url = "https://github.com/huandu/xstrings";
+      rev = "v1.3.1";
+      sha256 = "0j5vsyjxclk7g7vfr3mfybbimywf3khr8yx07dsdcm1zjwb092iy";
+    };
+  }
+  {
+    goPackagePath = "github.com/icza/bitio";
+    fetch = {
+      type = "git";
+      url = "https://github.com/icza/bitio";
+      rev = "v1.0.0";
+      sha256 = "1c4ps4a9khx2bqp6v0p7b7l0s0gly3vj8rkh816vznj4mdlgk76w";
+    };
+  }
+  {
+    goPackagePath = "github.com/icza/mighty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/icza/mighty";
+      rev = "cfd07d671de6";
+      sha256 = "09prb460wqg72s753g3a9rm0ph60hp83najj0lx9ifp1lixnfb3d";
+    };
+  }
+  {
+    goPackagePath = "github.com/imdario/mergo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/imdario/mergo";
+      rev = "v0.3.9";
+      sha256 = "042v7bzx575isa4pr868hrlv085qxpg8qi4m04jnkh5vbq4hvs90";
+    };
+  }
+  {
+    goPackagePath = "github.com/jfreymuth/oggvorbis";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jfreymuth/oggvorbis";
+      rev = "v1.0.0";
+      sha256 = "0c0r63sp4q8bl8vvgayr98m0fsscl1f65cd2h7i4cr1awg6r6l6a";
+    };
+  }
+  {
+    goPackagePath = "github.com/jfreymuth/vorbis";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jfreymuth/vorbis";
+      rev = "v1.0.0";
+      sha256 = "16gl1lwagiqw6ib48zsl4zpv1dmykz7fzhxc65vpcdipx2byhi7a";
+    };
+  }
+  {
+    goPackagePath = "github.com/jinzhu/gorm";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jinzhu/gorm";
+      rev = "v1.9.12";
+      sha256 = "06d25jvrqvp1bd4k7mh9gsk414d2vhpr049qvj46yx21hyv9d6v3";
+    };
+  }
+  {
+    goPackagePath = "github.com/jinzhu/inflection";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jinzhu/inflection";
+      rev = "v1.0.0";
+      sha256 = "165i20d11s03771gi43skl66salxj36212r25fbs0cgr4qgfj7fy";
+    };
+  }
+  {
+    goPackagePath = "github.com/jinzhu/now";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jinzhu/now";
+      rev = "v1.0.1";
+      sha256 = "1b4gyw01b3rq3js43n0wqb1k2iymb2mnpdv7vapjs0lsbm4g5q1p";
+    };
+  }
+  {
+    goPackagePath = "github.com/joho/godotenv";
+    fetch = {
+      type = "git";
+      url = "https://github.com/joho/godotenv";
+      rev = "v1.3.0";
+      sha256 = "0ri8if0pc3x6jg4c3i8wr58xyfpxkwmcjk3rp8gb398a1aa3gpjm";
+    };
+  }
+  {
+    goPackagePath = "github.com/josephburnett/jd";
+    fetch = {
+      type = "git";
+      url = "https://github.com/josephburnett/jd";
+      rev = "aa1a7c66b42f";
+      sha256 = "0yjdnifwxhdgzcw4jkal3f69sgcjrdiscd5wg45d83zfrsqbb34c";
+    };
+  }
+  {
+    goPackagePath = "github.com/karrick/godirwalk";
+    fetch = {
+      type = "git";
+      url = "https://github.com/karrick/godirwalk";
+      rev = "v1.15.6";
+      sha256 = "0i8202kcihz2hvqp7zzbla5p9x2ljpbjg5zy5dy3x0capz0ina3c";
+    };
+  }
+  {
+    goPackagePath = "github.com/kr/pretty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/pretty";
+      rev = "v0.1.0";
+      sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp";
+    };
+  }
+  {
+    goPackagePath = "github.com/kr/pty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/pty";
+      rev = "v1.1.1";
+      sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
+    };
+  }
+  {
+    goPackagePath = "github.com/kr/text";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/text";
+      rev = "v0.1.0";
+      sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
+    };
+  }
+  {
+    goPackagePath = "github.com/lib/pq";
+    fetch = {
+      type = "git";
+      url = "https://github.com/lib/pq";
+      rev = "v1.3.0";
+      sha256 = "0bfravwqyj7z6v4lhsibbmgp7lajdydy4ij6c81g8hv0067x2mqw";
+    };
+  }
+  {
+    goPackagePath = "github.com/lucasb-eyer/go-colorful";
+    fetch = {
+      type = "git";
+      url = "https://github.com/lucasb-eyer/go-colorful";
+      rev = "12d3b2882a08";
+      sha256 = "1w95axfn1a6rz31xrks77ingr9mdkqyr7mh0glv664kz1wg2h0gw";
+    };
+  }
+  {
+    goPackagePath = "github.com/mattn/go-runewidth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-runewidth";
+      rev = "v0.0.4";
+      sha256 = "00b3ssm7wiqln3k54z2wcnxr3k3c7m1ybyhb9h8ixzbzspld0qzs";
+    };
+  }
+  {
+    goPackagePath = "github.com/mattn/go-sqlite3";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-sqlite3";
+      rev = "v2.0.3";
+      sha256 = "0gn4dgvwmbf8gmhn5nzpwixc39g8mkp3n8lhyjgvhvsl72llcdzv";
+    };
+  }
+  {
+    goPackagePath = "github.com/mewkiz/flac";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mewkiz/flac";
+      rev = "v1.0.6";
+      sha256 = "19083pfc6wxkb45s61di9a542jslcgkzif5z3qjymy085w4aizzx";
+    };
+  }
+  {
+    goPackagePath = "github.com/mewkiz/pkg";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mewkiz/pkg";
+      rev = "f6b5e26764c3";
+      sha256 = "0djxw953sp2cwqybjxsfrsfma5yjn8n1l19g8yrd629cb6r1ghq2";
+    };
+  }
+  {
+    goPackagePath = "github.com/mitchellh/copystructure";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/copystructure";
+      rev = "v1.0.0";
+      sha256 = "05njg92w1088v4yl0js0zdrpfq6k37i9j14mxkr3p90p5yd9rrrr";
+    };
+  }
+  {
+    goPackagePath = "github.com/mitchellh/go-wordwrap";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/go-wordwrap";
+      rev = "v1.0.0";
+      sha256 = "1jffbwcr3nnq6c12c5856bwzv2nxjzqk3jwgvxkwi1xhpd2by0bf";
+    };
+  }
+  {
+    goPackagePath = "github.com/mitchellh/reflectwalk";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/reflectwalk";
+      rev = "v1.0.1";
+      sha256 = "0pa6a3nhzwv5s5yqcmsmsfhdp5ggxsg2wa86f3akawxrhrkjarnx";
+    };
+  }
+  {
+    goPackagePath = "github.com/nicksellen/audiotags";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nicksellen/audiotags";
+      rev = "94015fa599bd";
+      sha256 = "1817vw2j1lnk4y3925cszmkvwzsdcmgccrcdqyq39jqpwawl2c0j";
+    };
+  }
+  {
+    goPackagePath = "github.com/oklog/run";
+    fetch = {
+      type = "git";
+      url = "https://github.com/oklog/run";
+      rev = "v1.1.0";
+      sha256 = "0r55p3kgdkgw55i33lqvvvl60mjp92mhd1170m980sw98z9150jk";
+    };
+  }
+  {
+    goPackagePath = "github.com/oxtoacart/bpool";
+    fetch = {
+      type = "git";
+      url = "https://github.com/oxtoacart/bpool";
+      rev = "03653db5a59c";
+      sha256 = "1crdgm5w6kvcnvdglrrnrfkh5h60ldafwvrv00q97lz3790kgb15";
+    };
+  }
+  {
+    goPackagePath = "github.com/pelletier/go-toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pelletier/go-toml";
+      rev = "v1.6.0";
+      sha256 = "0l2830pi64fg0bdsyd5afkbw0p7879pppzdqqk3c7vjrjfmi5xbq";
+    };
+  }
+  {
+    goPackagePath = "github.com/peterbourgon/ff";
+    fetch = {
+      type = "git";
+      url = "https://github.com/peterbourgon/ff";
+      rev = "v1.7.0";
+      sha256 = "17msscfi4pfdih1w3sq0wsw6246a30fckga9kvjpzwva6jni0466";
+    };
+  }
+  {
+    goPackagePath = "github.com/pkg/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/errors";
+      rev = "v0.9.1";
+      sha256 = "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq";
+    };
+  }
+  {
+    goPackagePath = "github.com/pmezard/go-difflib";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pmezard/go-difflib";
+      rev = "v1.0.0";
+      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+    };
+  }
+  {
+    goPackagePath = "github.com/rainycape/unidecode";
+    fetch = {
+      type = "git";
+      url = "https://github.com/rainycape/unidecode";
+      rev = "cb7f23ec59be";
+      sha256 = "1wvzdijd640blwkgmw6h09frkfa04kcpdq87n2zh2ymj1dzla5v5";
+    };
+  }
+  {
+    goPackagePath = "github.com/spaolacci/murmur3";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spaolacci/murmur3";
+      rev = "f09979ecbc72";
+      sha256 = "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25";
+    };
+  }
+  {
+    goPackagePath = "github.com/stretchr/objx";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/objx";
+      rev = "v0.1.0";
+      sha256 = "19ynspzjdynbi85xw06mh8ad5j0qa1vryvxjgvbnyrr8rbm4vd8w";
+    };
+  }
+  {
+    goPackagePath = "github.com/stretchr/testify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/testify";
+      rev = "v1.3.0";
+      sha256 = "0wjchp2c8xbgcbbq32w3kvblk6q6yn533g78nxl6iskq6y95lxsy";
+    };
+  }
+  {
+    goPackagePath = "github.com/wader/gormstore";
+    fetch = {
+      type = "git";
+      url = "https://github.com/wader/gormstore";
+      rev = "65a111a20c23";
+      sha256 = "0dnylv4gdqsizll7b07nivv6chanqm0014yhqg6gcjccns6bl9bm";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "06a226fb4e37";
+      sha256 = "0fdig6jx81g7a44dnxggibl909wchsj4nakmmhhz7db36sl0d7m5";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/exp";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/exp";
+      rev = "00229845015e";
+      sha256 = "0b0f05vbxzbgaaawxqns2m9qbvkfam1ylq8c8yhv7h6jnk2afaff";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/image";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/image";
+      rev = "33d19683fad8";
+      sha256 = "16qw6s9qlv84x98s9dib90y97x8bli3msaqw8kz498dbnbyx59zk";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/mobile";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/mobile";
+      rev = "4c31acba0007";
+      sha256 = "0k42pn6fq886k9hn85wbgg4h4y1myj7niw0746sn50zfbrmy3s2c";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/mod";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/mod";
+      rev = "331c550502dd";
+      sha256 = "0942gzs6mlsjal4drjmm8gr54pj1cdhsl9mnj3ygm200mf3fj6pi";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev = "3b0461eec859";
+      sha256 = "0l00c8l0a8xnv6qdpwfzxxsr58jggacgzdrwiprrfx2xqm37b6d5";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sync";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sync";
+      rev = "112230192c58";
+      sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "fe76b779f299";
+      sha256 = "0g6j3n9fdv1a2lp2i8wbaaya85yrbfx3ns6iq1s7l2ayhxxmgh6b";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "v0.3.0";
+      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev = "b753a1ba74fa";
+      sha256 = "1xyzswbz9cx0bns2n75fw9pbm82dk9dj2il9iknmryyxvci9n5zv";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/xerrors";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/xerrors";
+      rev = "1b5146add898";
+      sha256 = "0w2akj91krxjag0xdhsg78470888nicc5ismc2ap9jqpss6v1zih";
+    };
+  }
+  {
+    goPackagePath = "google.golang.org/appengine";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/appengine";
+      rev = "v1.4.0";
+      sha256 = "06zl7w4sxgdq2pl94wy9ncii6h0z3szl4xpqds0sv3b3wbdlhbnn";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/DATA-DOG/go-sqlmock.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/DATA-DOG/go-sqlmock.v1";
+      rev = "v1.3.0";
+      sha256 = "1684d6ima6638xwvr743kd7j5mpqq0vspcw9ai67bnb7m722qqqv";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/check.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/check.v1";
+      rev = "788fd7840127";
+      sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/gormigrate.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/gormigrate.v1";
+      rev = "v1.6.0";
+      sha256 = "03304vh58i5gxchrxy2v91bjdfgp7849jarmlanz3gaa2r574fmf";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/yaml.v2";
+      rev = "v2.2.4";
+      sha256 = "11bwj757wi8kdrcnlgfqb8vv2d2xdhlghmyagd19i62khrkchsg2";
+    };
+  }
+]
diff --git a/pkgs/servers/gortr/default.nix b/pkgs/servers/gortr/default.nix
index c0534d0f890..2af795b2ca9 100644
--- a/pkgs/servers/gortr/default.nix
+++ b/pkgs/servers/gortr/default.nix
@@ -2,21 +2,22 @@
 
 buildGoModule rec {
   pname = "gortr";
-  version = "0.14.4";
+  version = "0.14.6";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1srwlpl8g0pzrxb2nyp6xvg10cidm2i6qb9m08k2g296hfgdqqq3";
+    sha256 = "1z1z4xl39qmd7df1zb2wsd2ycxr4aa9g23sfgp3ws4lhy5d6hyxw";
   };
   vendorSha256 = "1nwrzbpqycr4ixk8a90pgaxcwakv5nlfnql6hmcc518qrva198wp";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "The RPKI-to-Router server used at Cloudflare";
     homepage = "https://github.com/cloudflare/gortr/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ petabyteboy ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/gotify/default.nix b/pkgs/servers/gotify/default.nix
index 5d305c1e412..88617d0cd8b 100644
--- a/pkgs/servers/gotify/default.nix
+++ b/pkgs/servers/gotify/default.nix
@@ -23,6 +23,8 @@ buildGoModule rec {
 
   vendorSha256 = import ./vendor-sha.nix;
 
+  doCheck = false;
+
   postPatch = ''
     substituteInPlace app.go \
       --replace 'Version = "unknown"' 'Version = "${version}"'
@@ -55,7 +57,6 @@ buildGoModule rec {
     homepage = "https://gotify.net";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
-    platforms = platforms.all;
   };
 
 }
diff --git a/pkgs/servers/gotify/source-sha.nix b/pkgs/servers/gotify/source-sha.nix
index ddac1b24614..2d7375fc9b5 100644
--- a/pkgs/servers/gotify/source-sha.nix
+++ b/pkgs/servers/gotify/source-sha.nix
@@ -1 +1 @@
-"18y2kaf0v7275a0b8ab5y3qk7qwh19aqxyy0gmlflzgr2nimpmrn"
\ No newline at end of file
+"0agnbpqzz751643c4s0fs10b3zw98pp8r9kys9p1vxbb3d6r2anb"
\ No newline at end of file
diff --git a/pkgs/servers/gotify/vendor-sha.nix b/pkgs/servers/gotify/vendor-sha.nix
index 0705f436316..e8f40372339 100644
--- a/pkgs/servers/gotify/vendor-sha.nix
+++ b/pkgs/servers/gotify/vendor-sha.nix
@@ -1 +1 @@
-"1ha0zgz1n07sd3if6823fi83j7yajysjdzfbwqk9rpsi6zv3cfh3"
\ No newline at end of file
+"0cczw8h1mibxmfgy2z6xnqq11x31ai17gnq2z4j5751b5finhqng"
\ No newline at end of file
diff --git a/pkgs/servers/gotify/version.nix b/pkgs/servers/gotify/version.nix
index fdfe425152c..7473811783e 100644
--- a/pkgs/servers/gotify/version.nix
+++ b/pkgs/servers/gotify/version.nix
@@ -1 +1 @@
-"2.0.16"
+"2.0.17"
diff --git a/pkgs/servers/gpsd/default.nix b/pkgs/servers/gpsd/default.nix
index 4e0d08324a0..5f9beb4b834 100644
--- a/pkgs/servers/gpsd/default.nix
+++ b/pkgs/servers/gpsd/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, scons, pkgconfig, dbus, dbus-glib
+{ fetchurl, stdenv, sconsPackages, pkgconfig, dbus, dbus-glib
 , ncurses, libX11, libXt, libXpm, libXaw, libXext
 , libusb1, docbook_xml_dtd_412, docbook_xsl, bc
 , libxslt, xmlto, gpsdUser ? "gpsd", gpsdGroup ? "dialout"
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    scons.py2 pkgconfig docbook_xml_dtd_412 docbook_xsl xmlto bc
+    sconsPackages.scons_3_1_2 pkgconfig docbook_xml_dtd_412 docbook_xsl xmlto bc
     python2Packages.python
     python2Packages.wrapPython
   ];
diff --git a/pkgs/servers/hasura/cli.nix b/pkgs/servers/hasura/cli.nix
index a4d8d147fda..af2f6f2a11f 100644
--- a/pkgs/servers/hasura/cli.nix
+++ b/pkgs/servers/hasura/cli.nix
@@ -7,10 +7,11 @@ buildGoModule rec {
   src = hasura-graphql-engine.src;
   modRoot = "./cli";
 
-  goPackagePath = "github.com/hasura/graphql-engine/cli";
   subPackages = [ "cmd/hasura" ];
 
-  vendorSha256 = "0a3mlkl00r680v8x3hy24ykggq5qm7k3101krlyfrb5y4karp75a";
+  vendorSha256 = "sha256-Fp6o3xZ/964q8yzJJFrqWZtQ5zYNy6Wreh42YxWjNbU=";
+
+  doCheck = false;
 
   buildFlagsArray = [''-ldflags=
     -X github.com/hasura/graphql-engine/cli/version.BuildVersion=${version}
@@ -30,4 +31,4 @@ buildGoModule rec {
     inherit (hasura-graphql-engine.meta) license homepage maintainers;
     description = "Hasura GraphQL Engine CLI";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/hasura/default.nix b/pkgs/servers/hasura/default.nix
deleted file mode 100644
index 08527466035..00000000000
--- a/pkgs/servers/hasura/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ haskell }:
-
-with haskell.lib;
-
-let
-  # version in cabal file is invalid
-  version = "1.2.1";
-
-  pkgs = haskell.packages.ghc865.override {
-    overrides = self: super: {
-      # cabal2nix  --subpath server --maintainer offline --no-check --revision 1.2.1 https://github.com/hasura/graphql-engine.git
-      hasura-graphql-engine = justStaticExecutables
-        ((self.callPackage ./graphql-engine.nix { }).overrideDerivation (d: {
-          name = "graphql-engine-${version}";
-
-          inherit version;
-
-          # hasura needs VERSION env exported during build
-          preBuild = "export VERSION=${version}";
-        }));
-
-      hasura-cli = self.callPackage ./cli.nix {
-        hasura-graphql-engine = self.hasura-graphql-engine // {
-          inherit version;
-        };
-      };
-
-      # internal dependencies, non published on hackage (find revisions in cabal.project file)
-      # cabal2nix --revision <rev> https://github.com/hasura/ci-info-hs.git
-      ci-info = self.callPackage ./ci-info.nix { };
-      # cabal2nix --revision <rev> https://github.com/hasura/graphql-parser-hs.git
-      graphql-parser = self.callPackage ./graphql-parser.nix { };
-      # cabal2nix --revision <rev> https://github.com/hasura/pg-client-hs.git
-      pg-client = self.callPackage ./pg-client.nix { };
-
-      # version constrained dependencies, without these hasura will not build,
-      # find versions in graphql-engine.cabal
-      # cabal2nix cabal://dependent-map-0.2.4.0
-      dependent-map = self.callPackage ./dependent-map.nix { };
-      # cabal2nix cabal://dependent-sum-0.4
-      dependent-sum = self.callPackage ./dependent-sum.nix { };
-      # cabal2nix cabal://these-0.7.6
-      these = doJailbreak (self.callPackage ./these.nix { });
-      # cabal2nix cabal://immortal-0.2.2.1
-      immortal = self.callPackage ./immortal.nix { };
-      # cabal2nix cabal://network-uri-2.6.1.0
-      network-uri = self.callPackage ./network-uri.nix { };
-      # cabal2nix cabal://ghc-heap-view-0.6.0
-      ghc-heap-view = disableLibraryProfiling (self.callPackage ./ghc-heap-view.nix { });
-
-      # unmark broewn packages and do required modifications
-      stm-hamt = doJailbreak (unmarkBroken super.stm-hamt);
-      superbuffer = dontCheck (doJailbreak (unmarkBroken super.superbuffer));
-      Spock-core = dontCheck (unmarkBroken super.Spock-core);
-      stm-containers = dontCheck (unmarkBroken super.stm-containers);
-      ekg-json = unmarkBroken super.ekg-json;
-      list-t = dontCheck (unmarkBroken super.list-t);
-      primitive-extras = unmarkBroken super.primitive-extras;
-    };
-  };
-in {
-  inherit (pkgs) hasura-graphql-engine hasura-cli;
-}
diff --git a/pkgs/servers/hasura/dependent-map.nix b/pkgs/servers/hasura/dependent-map.nix
deleted file mode 100644
index 68ebb616b5f..00000000000
--- a/pkgs/servers/hasura/dependent-map.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ mkDerivation, base, containers, dependent-sum, stdenv }:
-mkDerivation {
-  pname = "dependent-map";
-  version = "0.2.4.0";
-  sha256 = "5db396bdb5d156434af920c074316c3b84b4d39ba8e1cd349c7bb6679cb28246";
-  revision = "1";
-  editedCabalFile = "0a5f35d1sgfq1cl1r5bgb5pwfjniiycxiif4ycxglaizp8g5rlr1";
-  libraryHaskellDepends = [ base containers dependent-sum ];
-  homepage = "https://github.com/mokus0/dependent-map";
-  description = "Dependent finite maps (partial dependent products)";
-  license = "unknown";
-  hydraPlatforms = stdenv.lib.platforms.none;
-}
diff --git a/pkgs/servers/hasura/dependent-sum.nix b/pkgs/servers/hasura/dependent-sum.nix
deleted file mode 100644
index 90717b87366..00000000000
--- a/pkgs/servers/hasura/dependent-sum.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ mkDerivation, base, stdenv }:
-mkDerivation {
-  pname = "dependent-sum";
-  version = "0.4";
-  sha256 = "a8deecb4153a1878173f8d0a18de0378ab068bc15e5035b9e4cb478e8e4e1a1e";
-  libraryHaskellDepends = [ base ];
-  homepage = "https://github.com/mokus0/dependent-sum";
-  description = "Dependent sum type";
-  license = stdenv.lib.licenses.publicDomain;
-}
diff --git a/pkgs/servers/hasura/ghc-heap-view.nix b/pkgs/servers/hasura/ghc-heap-view.nix
deleted file mode 100644
index 54c873baee4..00000000000
--- a/pkgs/servers/hasura/ghc-heap-view.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ mkDerivation, base, binary, bytestring, Cabal, containers
-, deepseq, filepath, ghc-heap, stdenv, template-haskell
-, transformers
-}:
-mkDerivation {
-  pname = "ghc-heap-view";
-  version = "0.6.0";
-  sha256 = "99ed6034d02a7a942e1b6ed970e9f7028dcdfd5b5d29fd8a0fb89f1a5e7c5ec8";
-  enableSeparateDataOutput = true;
-  setupHaskellDepends = [ base Cabal filepath ];
-  libraryHaskellDepends = [
-    base binary bytestring containers ghc-heap template-haskell
-    transformers
-  ];
-  testHaskellDepends = [ base deepseq ];
-  description = "Extract the heap representation of Haskell values and thunks";
-  license = stdenv.lib.licenses.bsd3;
-}
diff --git a/pkgs/servers/hasura/immortal.nix b/pkgs/servers/hasura/immortal.nix
deleted file mode 100644
index c53f0f18709..00000000000
--- a/pkgs/servers/hasura/immortal.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ mkDerivation, base, lifted-base, monad-control, stdenv, stm
-, tasty, tasty-hunit, transformers, transformers-base
-}:
-mkDerivation {
-  pname = "immortal";
-  version = "0.2.2.1";
-  sha256 = "ed4aa1a2883a693a73fec47c8c2d5332d61a0626a2013403e1a8fb25cc6c8d8e";
-  libraryHaskellDepends = [
-    base lifted-base monad-control stm transformers-base
-  ];
-  testHaskellDepends = [
-    base lifted-base stm tasty tasty-hunit transformers
-  ];
-  homepage = "https://github.com/feuerbach/immortal";
-  description = "Spawn threads that never die (unless told to do so)";
-  license = stdenv.lib.licenses.mit;
-}
diff --git a/pkgs/servers/hasura/network-uri.nix b/pkgs/servers/hasura/network-uri.nix
deleted file mode 100644
index 45016d470a8..00000000000
--- a/pkgs/servers/hasura/network-uri.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ mkDerivation, base, deepseq, HUnit, parsec, stdenv
-, test-framework, test-framework-hunit, test-framework-quickcheck2
-}:
-mkDerivation {
-  pname = "network-uri";
-  version = "2.6.1.0";
-  sha256 = "423e0a2351236f3fcfd24e39cdbc38050ec2910f82245e69ca72a661f7fc47f0";
-  revision = "1";
-  editedCabalFile = "141nj7q0p9wkn5gr41ayc63cgaanr9m59yym47wpxqr3c334bk32";
-  libraryHaskellDepends = [ base deepseq parsec ];
-  testHaskellDepends = [
-    base HUnit test-framework test-framework-hunit
-    test-framework-quickcheck2
-  ];
-  homepage = "https://github.com/haskell/network-uri";
-  description = "URI manipulation";
-  license = stdenv.lib.licenses.bsd3;
-}
diff --git a/pkgs/servers/hasura/these.nix b/pkgs/servers/hasura/these.nix
deleted file mode 100644
index 396f9e2a282..00000000000
--- a/pkgs/servers/hasura/these.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ mkDerivation, aeson, base, base-compat, bifunctors, binary
-, containers, data-default-class, deepseq, hashable, keys, lens
-, mtl, QuickCheck, quickcheck-instances, semigroupoids, stdenv
-, tasty, tasty-quickcheck, transformers, transformers-compat
-, unordered-containers, vector, vector-instances
-}:
-mkDerivation {
-  pname = "these";
-  version = "0.7.6";
-  sha256 = "9464b83d98e626360a8ad9836ba77e5201cd1e9c89b95b1b11a28ef3c23ac746";
-  libraryHaskellDepends = [
-    aeson base base-compat bifunctors binary containers
-    data-default-class deepseq hashable keys lens mtl QuickCheck
-    semigroupoids transformers transformers-compat unordered-containers
-    vector vector-instances
-  ];
-  testHaskellDepends = [
-    aeson base base-compat bifunctors binary containers hashable lens
-    QuickCheck quickcheck-instances tasty tasty-quickcheck transformers
-    unordered-containers vector
-  ];
-  homepage = "https://github.com/isomorphism/these";
-  description = "An either-or-both data type & a generalized 'zip with padding' typeclass";
-  license = stdenv.lib.licenses.bsd3;
-}
diff --git a/pkgs/servers/hitch/default.nix b/pkgs/servers/hitch/default.nix
index c81cd80eb7a..89aa63f35bd 100644
--- a/pkgs/servers/hitch/default.nix
+++ b/pkgs/servers/hitch/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, docutils, libev, openssl, pkgconfig }:
+{ stdenv, fetchurl, docutils, libev, openssl, pkgconfig, nixosTests }:
 stdenv.mkDerivation rec {
-  version = "1.5.2";
+  version = "1.6.0";
   pname = "hitch";
 
   src = fetchurl {
     url = "https://hitch-tls.org/source/${pname}-${version}.tar.gz";
-    sha256 = "1nnzqqigfw78nqhp81a72x1s8d6v49ayw4w5df0zzm2cb1jgv95i";
+    sha256 = "01n70yf8hx42jb801jv5q1xhrpqxyjnqhd98hjf81lvxpd5fnisf";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "doc" "man" ];
 
+  passthru.tests.hitch = nixosTests.hitch;
+
   meta = with stdenv.lib; {
     description = "Hitch is a libev-based high performance SSL/TLS proxy by Varnish Software";
     homepage = "https://hitch-tls.org/";
diff --git a/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch b/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch
deleted file mode 100644
index 0b9dd3e447d..00000000000
--- a/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 9d730514540929dc95a7313bdb385bab95d9a28c Mon Sep 17 00:00:00 2001
-From: Martin Weinelt <hexa@darmstadt.ccc.de>
-Date: Wed, 20 May 2020 23:23:23 +0200
-Subject: [PATCH] setup.py: relax dependencies
-
----
- setup.py | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 1473fd1f5f..149af58b3a 100755
---- a/setup.py
-+++ b/setup.py
-@@ -32,24 +32,24 @@ PROJECT_URLS = {
- PACKAGES = find_packages(exclude=["tests", "tests.*"])
- 
- REQUIRES = [
--    "aiohttp==3.6.1",
-+    "aiohttp>=3.6.1",
-     "astral==1.10.1",
-     "async_timeout==3.0.1",
-     "attrs==19.3.0",
-     "bcrypt==3.1.7",
-     "certifi>=2020.4.5.1",
-     "ciso8601==2.1.3",
--    "importlib-metadata==1.6.0",
-+    "importlib-metadata>=1.5.0",
-     "jinja2>=2.11.1",
-     "PyJWT==1.7.1",
-     # PyJWT has loose dependency. We want the latest one.
--    "cryptography==2.9.2",
-+    "cryptography>=2.9",
-     "pip>=8.0.3",
-     "python-slugify==4.0.0",
--    "pytz>=2020.1",
--    "pyyaml==5.3.1",
--    "requests==2.23.0",
--    "ruamel.yaml==0.15.100",
-+    "pytz>=2019.03",
-+    "pyyaml>=5.2",
-+    "requests>=2.22",
-+    "ruamel.yaml>=0.15.100",
-     "voluptuous==0.11.7",
-     "voluptuous-serialize==2.3.0",
- ]
--- 
-2.26.2
-
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 9b4f8ae9ee5..3342c488c93 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -2,10 +2,11 @@
 # Do not edit!
 
 {
-  version = "0.111.4";
+  version = "0.114.4";
   components = {
     "abode" = ps: with ps; [ ]; # missing inputs: abodepy
-    "acer_projector" = ps: with ps; [ pyserial];
+    "accuweather" = ps: with ps; [ ]; # missing inputs: accuweather
+    "acer_projector" = ps: with ps; [ pyserial ];
     "acmeda" = ps: with ps; [ ]; # missing inputs: aiopulse
     "actiontec" = ps: with ps; [ ];
     "adguard" = ps: with ps; [ ]; # missing inputs: adguardhome
@@ -14,39 +15,39 @@
     "agent_dvr" = ps: with ps; [ ]; # missing inputs: agent-py
     "air_quality" = ps: with ps; [ ];
     "airly" = ps: with ps; [ ]; # missing inputs: airly
-    "airvisual" = ps: with ps; [ pyairvisual];
+    "airvisual" = ps: with ps; [ pyairvisual ];
     "aladdin_connect" = ps: with ps; [ ]; # missing inputs: aladdin_connect
     "alarm_control_panel" = ps: with ps; [ ];
-    "alarmdecoder" = ps: with ps; [ alarmdecoder];
+    "alarmdecoder" = ps: with ps; [ ]; # missing inputs: adext
     "alert" = ps: with ps; [ ];
-    "alexa" = ps: with ps; [ aiohttp-cors sqlalchemy]; # missing inputs: home-assistant-frontend
-    "almond" = ps: with ps; [ aiohttp-cors]; # missing inputs: pyalmond
+    "alexa" = ps: with ps; [ aiohttp-cors ];
+    "almond" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pyalmond
     "alpha_vantage" = ps: with ps; [ ]; # missing inputs: alpha_vantage
-    "amazon_polly" = ps: with ps; [ boto3];
-    "ambiclimate" = ps: with ps; [ aiohttp-cors]; # missing inputs: ambiclimate
+    "amazon_polly" = ps: with ps; [ boto3 ];
+    "ambiclimate" = ps: with ps; [ aiohttp-cors ]; # missing inputs: ambiclimate
     "ambient_station" = ps: with ps; [ ]; # missing inputs: aioambient
-    "amcrest" = ps: with ps; [ ha-ffmpeg]; # missing inputs: amcrest
+    "amcrest" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: amcrest
     "ampio" = ps: with ps; [ ]; # missing inputs: asmog
     "android_ip_webcam" = ps: with ps; [ ]; # missing inputs: pydroid-ipcam
-    "androidtv" = ps: with ps; [ ]; # missing inputs: adb-shell androidtv pure-python-adb
+    "androidtv" = ps: with ps; [ ]; # missing inputs: adb-shell[async] androidtv[async] pure-python-adb
     "anel_pwrctrl" = ps: with ps; [ ]; # missing inputs: anel_pwrctrl-homeassistant
     "anthemav" = ps: with ps; [ ]; # missing inputs: anthemav
-    "apache_kafka" = ps: with ps; [ aiokafka];
+    "apache_kafka" = ps: with ps; [ aiokafka ];
     "apcupsd" = ps: with ps; [ ]; # missing inputs: apcaccess
-    "api" = ps: with ps; [ aiohttp-cors];
+    "api" = ps: with ps; [ aiohttp-cors ];
     "apns" = ps: with ps; [ ]; # missing inputs: apns2
-    "apple_tv" = ps: with ps; [ aiohttp-cors netdisco pyatv zeroconf];
-    "apprise" = ps: with ps; [ apprise];
+    "apple_tv" = ps: with ps; [ aiohttp-cors netdisco pyatv zeroconf ];
+    "apprise" = ps: with ps; [ apprise ];
     "aprs" = ps: with ps; [ ]; # missing inputs: aprslib geopy
     "aqualogic" = ps: with ps; [ ]; # missing inputs: 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
     "arest" = ps: with ps; [ ];
-    "arlo" = ps: with ps; [ ha-ffmpeg]; # missing inputs: pyarlo
+    "arlo" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: pyarlo
     "arris_tg2492lg" = ps: with ps; [ ]; # missing inputs: arris-tg2492lg
-    "aruba" = ps: with ps; [ pexpect];
-    "arwn" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
+    "aruba" = ps: with ps; [ pexpect ];
+    "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
@@ -56,16 +57,17 @@
     "august" = ps: with ps; [ ]; # missing inputs: py-august
     "aurora" = ps: with ps; [ ];
     "aurora_abb_powerone" = ps: with ps; [ ]; # missing inputs: aurorapy
-    "auth" = ps: with ps; [ aiohttp-cors];
-    "automation" = ps: with ps; [ aiohttp-cors sqlalchemy]; # missing inputs: home-assistant-frontend
+    "auth" = ps: with ps; [ aiohttp-cors ];
+    "automation" = ps: with ps; [ aiohttp-cors ];
     "avea" = ps: with ps; [ ]; # missing inputs: avea
     "avion" = ps: with ps; [ ]; # missing inputs: avion
-    "avri" = ps: with ps; [ ]; # missing inputs: avri-api
+    "avri" = ps: with ps; [ pycountry ]; # missing inputs: avri-api
     "awair" = ps: with ps; [ ]; # missing inputs: python_awair
     "aws" = ps: with ps; [ ]; # missing inputs: aiobotocore
-    "axis" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt]; # missing inputs: axis
+    "axis" = ps: with ps; [ aiohttp-cors paho-mqtt ]; # missing inputs: axis
+    "azure_devops" = ps: with ps; [ ]; # missing inputs: aioazuredevops
     "azure_event_hub" = ps: with ps; [ ]; # missing inputs: azure-eventhub
-    "azure_service_bus" = ps: with ps; [ azure-servicebus];
+    "azure_service_bus" = ps: with ps; [ azure-servicebus ];
     "baidu" = ps: with ps; [ ]; # missing inputs: baidu-aip
     "bayesian" = ps: with ps; [ ];
     "bbb_gpio" = ps: with ps; [ ]; # missing inputs: Adafruit_BBIO
@@ -78,21 +80,22 @@
     "blackbird" = ps: with ps; [ ]; # missing inputs: pyblackbird
     "blebox" = ps: with ps; [ ]; # missing inputs: blebox_uniapi
     "blink" = ps: with ps; [ ]; # missing inputs: blinkpy
-    "blinksticklight" = ps: with ps; [ BlinkStick];
+    "blinksticklight" = ps: with ps; [ BlinkStick ];
     "blinkt" = ps: with ps; [ ]; # missing inputs: blinkt
     "blockchain" = ps: with ps; [ ]; # missing inputs: python-blockchain-api
     "bloomsky" = ps: with ps; [ ];
-    "bluesound" = ps: with ps; [ xmltodict];
+    "bluesound" = ps: with ps; [ xmltodict ];
     "bluetooth_le_tracker" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL]
-    "bluetooth_tracker" = ps: with ps; [ bt_proximity]; # missing inputs: pybluez
+    "bluetooth_tracker" = ps: with ps; [ bt_proximity ]; # missing inputs: pybluez
     "bme280" = ps: with ps; [ ]; # missing inputs: i2csense smbus-cffi
     "bme680" = ps: with ps; [ ]; # missing inputs: bme680 smbus-cffi
     "bmp280" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-bmp280
     "bmw_connected_drive" = ps: with ps; [ ]; # missing inputs: bimmer_connected
     "bom" = ps: with ps; [ ]; # missing inputs: bomradarloop
-    "braviatv" = ps: with ps; [ bravia-tv];
-    "broadlink" = ps: with ps; [ broadlink];
-    "brother" = ps: with ps; [ ]; # missing inputs: brother
+    "bond" = ps: with ps; [ ]; # missing inputs: bond-api
+    "braviatv" = ps: with ps; [ bravia-tv ];
+    "broadlink" = ps: with ps; [ broadlink ];
+    "brother" = ps: with ps; [ brother ];
     "brottsplatskartan" = ps: with ps; [ ]; # missing inputs: brottsplatskartan
     "browser" = ps: with ps; [ ];
     "brunt" = ps: with ps; [ ]; # missing inputs: brunt
@@ -100,15 +103,15 @@
     "bt_home_hub_5" = ps: with ps; [ ]; # missing inputs: bthomehub5-devicelist
     "bt_smarthub" = ps: with ps; [ ]; # missing inputs: btsmarthub_devicelist
     "buienradar" = ps: with ps; [ ]; # missing inputs: buienradar
-    "caldav" = ps: with ps; [ caldav];
-    "calendar" = ps: with ps; [ aiohttp-cors];
-    "camera" = ps: with ps; [ aiohttp-cors];
-    "canary" = ps: with ps; [ ha-ffmpeg]; # missing inputs: py-canary
-    "cast" = ps: with ps; [ aiohttp-cors hass-nabucasa PyChromecast sqlalchemy zeroconf]; # missing inputs: home-assistant-frontend
+    "caldav" = ps: with ps; [ caldav ];
+    "calendar" = ps: with ps; [ aiohttp-cors ];
+    "camera" = ps: with ps; [ aiohttp-cors ];
+    "canary" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: py-canary
+    "cast" = ps: with ps; [ aiohttp-cors hass-nabucasa PyChromecast zeroconf ];
     "cert_expiry" = ps: with ps; [ ];
     "channels" = ps: with ps; [ ]; # missing inputs: pychannels
     "circuit" = ps: with ps; [ ]; # missing inputs: circuit-webhook
-    "cisco_ios" = ps: with ps; [ pexpect];
+    "cisco_ios" = ps: with ps; [ pexpect ];
     "cisco_mobility_express" = ps: with ps; [ ]; # missing inputs: ciscomobilityexpress
     "cisco_webex_teams" = ps: with ps; [ ]; # missing inputs: webexteamssdk
     "citybikes" = ps: with ps; [ ];
@@ -117,83 +120,86 @@
     "clicksend" = ps: with ps; [ ];
     "clicksend_tts" = ps: with ps; [ ];
     "climate" = ps: with ps; [ ];
-    "cloud" = ps: with ps; [ aiohttp-cors hass-nabucasa sqlalchemy]; # missing inputs: home-assistant-frontend
+    "cloud" = ps: with ps; [ aiohttp-cors hass-nabucasa ];
     "cloudflare" = ps: with ps; [ ]; # missing inputs: 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];
+    "coinmarketcap" = ps: with ps; [ coinmarketcap ];
     "comed_hourly_pricing" = ps: with ps; [ ];
     "comfoconnect" = ps: with ps; [ ]; # missing inputs: pycomfoconnect
     "command_line" = ps: with ps; [ ];
     "concord232" = ps: with ps; [ ]; # missing inputs: concord232
-    "config" = ps: with ps; [ aiohttp-cors];
+    "config" = ps: with ps; [ aiohttp-cors ];
     "configurator" = ps: with ps; [ ];
-    "conversation" = ps: with ps; [ aiohttp-cors];
+    "control4" = ps: with ps; [ ]; # missing inputs: pyControl4
+    "conversation" = ps: with ps; [ aiohttp-cors ];
     "coolmaster" = ps: with ps; [ ]; # missing inputs: pycoolmasternet
     "coronavirus" = ps: with ps; [ ]; # missing inputs: coronavirus
     "counter" = ps: with ps; [ ];
     "cover" = ps: with ps; [ ];
     "cppm_tracker" = ps: with ps; [ ]; # missing inputs: clearpasspy
-    "cpuspeed" = ps: with ps; [ py-cpuinfo];
+    "cpuspeed" = ps: with ps; [ py-cpuinfo ];
     "crimereports" = ps: with ps; [ ]; # missing inputs: crimereports
-    "cups" = ps: with ps; [ pycups];
+    "cups" = ps: with ps; [ pycups ];
     "currencylayer" = ps: with ps; [ ];
     "daikin" = ps: with ps; [ ]; # missing inputs: pydaikin
     "danfoss_air" = ps: with ps; [ ]; # missing inputs: pydanfossair
-    "darksky" = ps: with ps; [ python-forecastio];
-    "datadog" = ps: with ps; [ datadog];
+    "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
-    "decora" = ps: with ps; [ bluepy]; # missing inputs: decora
+    "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 hass-nabucasa netdisco sqlalchemy zeroconf]; # missing inputs: home-assistant-frontend
+    "default_config" = ps: with ps; [ pynacl aiohttp-cors defusedxml distro emoji hass-nabucasa netdisco sqlalchemy zeroconf ]; # missing inputs: home-assistant-frontend
     "delijn" = ps: with ps; [ ]; # missing inputs: pydelijn
-    "deluge" = ps: with ps; [ deluge-client];
-    "demo" = ps: with ps; [ aiohttp-cors];
+    "deluge" = ps: with ps; [ deluge-client ];
+    "demo" = ps: with ps; [ aiohttp-cors ];
     "denon" = ps: with ps; [ ];
-    "denonavr" = ps: with ps; [ denonavr];
+    "denonavr" = ps: with ps; [ denonavr getmac ];
     "derivative" = ps: with ps; [ ];
     "deutsche_bahn" = ps: with ps; [ ]; # missing inputs: schiene
-    "device_automation" = ps: with ps; [ aiohttp-cors];
+    "device_automation" = ps: with ps; [ ];
     "device_sun_light_trigger" = ps: with ps; [ ];
     "device_tracker" = ps: with ps; [ ];
     "devolo_home_control" = ps: with ps; [ ]; # missing inputs: devolo-home-control-api
+    "dexcom" = ps: with ps; [ ]; # missing inputs: pydexcom
     "dht" = ps: with ps; [ ]; # missing inputs: Adafruit-DHT
-    "dialogflow" = ps: with ps; [ aiohttp-cors];
-    "digital_ocean" = ps: with ps; [ digital-ocean];
+    "dialogflow" = ps: with ps; [ aiohttp-cors ];
+    "digital_ocean" = ps: with ps; [ digital-ocean ];
     "digitalloggers" = ps: with ps; [ ]; # missing inputs: dlipower
     "directv" = ps: with ps; [ ]; # missing inputs: directv
-    "discogs" = ps: with ps; [ discogs_client];
-    "discord" = ps: with ps; [ discordpy];
-    "discovery" = ps: with ps; [ aiohttp-cors netdisco zeroconf];
-    "dlib_face_detect" = ps: with ps; [ face_recognition];
-    "dlib_face_identify" = ps: with ps; [ face_recognition];
+    "discogs" = ps: with ps; [ discogs_client ];
+    "discord" = ps: with ps; [ discordpy ];
+    "discovery" = ps: with ps; [ aiohttp-cors netdisco zeroconf ];
+    "dlib_face_detect" = ps: with ps; [ face_recognition ];
+    "dlib_face_identify" = ps: with ps; [ face_recognition ];
     "dlink" = ps: with ps; [ ]; # missing inputs: pyW215
-    "dlna_dmr" = ps: with ps; [ ]; # missing inputs: async-upnp-client
-    "dnsip" = ps: with ps; [ aiodns];
-    "dominos" = ps: with ps; [ aiohttp-cors]; # missing inputs: pizzapi
-    "doods" = ps: with ps; [ pillow]; # missing inputs: pydoods
-    "doorbird" = ps: with ps; [ aiohttp-cors sqlalchemy]; # missing inputs: doorbirdpy home-assistant-frontend
+    "dlna_dmr" = ps: with ps; [ async-upnp-client ];
+    "dnsip" = ps: with ps; [ aiodns ];
+    "dominos" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pizzapi
+    "doods" = ps: with ps; [ pillow ]; # missing inputs: pydoods
+    "doorbird" = ps: with ps; [ aiohttp-cors ]; # missing inputs: doorbirdpy
     "dovado" = ps: with ps; [ ]; # missing inputs: dovado
     "downloader" = ps: with ps; [ ];
     "dsmr" = ps: with ps; [ ]; # missing inputs: dsmr_parser
-    "dsmr_reader" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
+    "dsmr_reader" = ps: with ps; [ aiohttp-cors paho-mqtt ];
     "dte_energy_bridge" = ps: with ps; [ ];
     "dublin_bus_transport" = ps: with ps; [ ];
     "duckdns" = ps: with ps; [ ];
     "dunehd" = ps: with ps; [ ]; # missing inputs: pdunehd
-    "dwd_weather_warnings" = ps: with ps; [ jsonpath xmltodict];
+    "dwd_weather_warnings" = ps: with ps; [ jsonpath xmltodict ];
     "dweet" = ps: with ps; [ ]; # missing inputs: dweepy
     "dynalite" = ps: with ps; [ ]; # missing inputs: dynalite_devices
-    "dyson" = ps: with ps; [ aiohttp-cors zeroconf]; # missing inputs: libpurecool
+    "dyson" = ps: with ps; [ aiohttp-cors zeroconf ]; # missing inputs: libpurecool
     "ebox" = ps: with ps; [ ]; # missing inputs: pyebox
     "ebusd" = ps: with ps; [ ]; # missing inputs: ebusdpy
     "ecoal_boiler" = ps: with ps; [ ]; # missing inputs: ecoaliface
     "ecobee" = ps: with ps; [ ]; # missing inputs: python-ecobee-api
     "econet" = ps: with ps; [ ]; # missing inputs: pyeconet
     "ecovacs" = ps: with ps; [ ]; # missing inputs: sucks
-    "eddystone_temperature" = ps: with ps; [ construct]; # missing inputs: beacontools[scan]
+    "eddystone_temperature" = ps: with ps; [ construct ]; # missing inputs: beacontools[scan]
     "edimax" = ps: with ps; [ ]; # missing inputs: pyedimax
     "edl21" = ps: with ps; [ ]; # missing inputs: pysml
     "ee_brightbox" = ps: with ps; [ ]; # missing inputs: eebrightbox
@@ -207,9 +213,9 @@
     "emby" = ps: with ps; [ ]; # missing inputs: pyemby
     "emoncms" = ps: with ps; [ ];
     "emoncms_history" = ps: with ps; [ ];
-    "emulated_hue" = ps: with ps; [ aiohttp-cors];
+    "emulated_hue" = ps: with ps; [ aiohttp-cors ];
     "emulated_roku" = ps: with ps; [ ]; # missing inputs: emulated_roku
-    "enigma2" = ps: with ps; [ ]; # missing inputs: openwebifpy
+    "enigma2" = ps: with ps; [ openwebifpy ];
     "enocean" = ps: with ps; [ ]; # missing inputs: enocean
     "enphase_envoy" = ps: with ps; [ ]; # missing inputs: envoy_reader
     "entur_public_transport" = ps: with ps; [ ]; # missing inputs: enturclient
@@ -219,8 +225,8 @@
     "ephember" = ps: with ps; [ ]; # missing inputs: pyephember
     "epson" = ps: with ps; [ ]; # missing inputs: epson-projector
     "epsonworkforce" = ps: with ps; [ ]; # missing inputs: epsonprinter
-    "eq3btsmart" = ps: with ps; [ construct]; # missing inputs: python-eq3bt
-    "esphome" = ps: with ps; [ aioesphomeapi];
+    "eq3btsmart" = ps: with ps; [ construct ]; # missing inputs: python-eq3bt
+    "esphome" = ps: with ps; [ aioesphomeapi ];
     "essent" = ps: with ps; [ ]; # missing inputs: PyEssent
     "etherscan" = ps: with ps; [ ]; # missing inputs: python-etherscan-api
     "eufy" = ps: with ps; [ ]; # missing inputs: lakeside
@@ -234,16 +240,17 @@
     "fan" = ps: with ps; [ ];
     "fastdotcom" = ps: with ps; [ ]; # missing inputs: fastdotcom
     "feedreader" = ps: with ps; [ ]; # missing inputs: feedparser-homeassistant
-    "ffmpeg" = ps: with ps; [ ha-ffmpeg];
-    "ffmpeg_motion" = ps: with ps; [ ha-ffmpeg];
-    "ffmpeg_noise" = ps: with ps; [ ha-ffmpeg];
+    "ffmpeg" = ps: with ps; [ ha-ffmpeg ];
+    "ffmpeg_motion" = ps: with ps; [ ha-ffmpeg ];
+    "ffmpeg_noise" = ps: with ps; [ ha-ffmpeg ];
     "fibaro" = ps: with ps; [ ]; # missing inputs: fiblary3
     "fido" = ps: with ps; [ ]; # missing inputs: pyfido
     "file" = ps: with ps; [ ];
     "filesize" = ps: with ps; [ ];
-    "filter" = ps: with ps; [ aiohttp-cors sqlalchemy];
-    "fints" = ps: with ps; [ fints];
-    "fitbit" = ps: with ps; [ aiohttp-cors fitbit];
+    "filter" = ps: with ps; [ aiohttp-cors sqlalchemy ];
+    "fints" = ps: with ps; [ fints ];
+    "firmata" = ps: with ps; [ ]; # missing inputs: pymata-express
+    "fitbit" = ps: with ps; [ aiohttp-cors fitbit ];
     "fixer" = ps: with ps; [ ]; # missing inputs: fixerio
     "fleetgo" = ps: with ps; [ ]; # missing inputs: ritassist
     "flexit" = ps: with ps; [ ]; # missing inputs: pyflexit pymodbus
@@ -253,24 +260,23 @@
     "flume" = ps: with ps; [ ]; # missing inputs: pyflume
     "flunearyou" = ps: with ps; [ ]; # missing inputs: pyflunearyou
     "flux" = ps: with ps; [ ];
-    "flux_led" = ps: with ps; [ flux-led];
+    "flux_led" = ps: with ps; [ flux-led ];
     "folder" = ps: with ps; [ ];
-    "folder_watcher" = ps: with ps; [ watchdog];
+    "folder_watcher" = ps: with ps; [ watchdog ];
     "foobot" = ps: with ps; [ ]; # missing inputs: foobot_async
     "forked_daapd" = ps: with ps; [ ]; # missing inputs: pyforked-daapd pylibrespot-java
-    "fortigate" = ps: with ps; [ ]; # missing inputs: pyfgt
     "fortios" = ps: with ps; [ ]; # missing inputs: fortiosapi
     "foscam" = ps: with ps; [ ]; # missing inputs: libpyfoscam
-    "foursquare" = ps: with ps; [ aiohttp-cors];
+    "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; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: aiofreepybox
     "freedns" = ps: with ps; [ ];
-    "fritz" = ps: with ps; [ fritzconnection];
-    "fritzbox" = ps: with ps; [ ]; # missing inputs: pyfritzhome
-    "fritzbox_callmonitor" = ps: with ps; [ fritzconnection];
-    "fritzbox_netmonitor" = ps: with ps; [ fritzconnection];
+    "fritz" = ps: with ps; [ fritzconnection ];
+    "fritzbox" = ps: with ps; [ pyfritzhome ];
+    "fritzbox_callmonitor" = ps: with ps; [ fritzconnection ];
+    "fritzbox_netmonitor" = ps: with ps; [ fritzconnection ];
     "fronius" = ps: with ps; [ ]; # missing inputs: pyfronius
-    "frontend" = ps: with ps; [ aiohttp-cors sqlalchemy]; # missing inputs: home-assistant-frontend
+    "frontend" = ps: with ps; [ aiohttp-cors ]; # missing inputs: home-assistant-frontend
     "frontier_silicon" = ps: with ps; [ ]; # missing inputs: afsapi
     "futurenow" = ps: with ps; [ ]; # missing inputs: pyfnip
     "garadget" = ps: with ps; [ ];
@@ -284,29 +290,29 @@
     "geo_json_events" = ps: with ps; [ ]; # missing inputs: geojson_client
     "geo_location" = ps: with ps; [ ];
     "geo_rss_events" = ps: with ps; [ ]; # missing inputs: georss_generic_client
-    "geofency" = ps: with ps; [ aiohttp-cors];
+    "geofency" = ps: with ps; [ aiohttp-cors ];
     "geonetnz_quakes" = ps: with ps; [ ]; # missing inputs: aio_geojson_geonetnz_quakes
     "geonetnz_volcano" = ps: with ps; [ ]; # missing inputs: aio_geojson_geonetnz_volcano
     "gios" = ps: with ps; [ ]; # missing inputs: gios
-    "github" = ps: with ps; [ PyGithub];
-    "gitlab_ci" = ps: with ps; [ python-gitlab];
+    "github" = ps: with ps; [ PyGithub ];
+    "gitlab_ci" = ps: with ps; [ python-gitlab ];
     "gitter" = ps: with ps; [ ]; # missing inputs: gitterpy
     "glances" = ps: with ps; [ ]; # missing inputs: glances_api
     "gntp" = ps: with ps; [ ]; # missing inputs: gntp
     "goalfeed" = ps: with ps; [ ]; # missing inputs: pysher
     "gogogate2" = ps: with ps; [ ]; # missing inputs: gogogate2-api
-    "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" = 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; [ ];
     "google_maps" = ps: with ps; [ ]; # missing inputs: locationsharinglib
-    "google_pubsub" = ps: with ps; [ google_cloud_pubsub];
-    "google_translate" = ps: with ps; [ gtts-token];
+    "google_pubsub" = ps: with ps; [ google_cloud_pubsub ];
+    "google_translate" = ps: with ps; [ gtts-token ];
     "google_travel_time" = ps: with ps; [ ]; # missing inputs: googlemaps
     "google_wifi" = ps: with ps; [ ];
-    "gpmdp" = ps: with ps; [ websocket_client];
+    "gpmdp" = ps: with ps; [ websocket_client ];
     "gpsd" = ps: with ps; [ ]; # missing inputs: gps3
-    "gpslogger" = ps: with ps; [ aiohttp-cors];
+    "gpslogger" = ps: with ps; [ aiohttp-cors ];
     "graphite" = ps: with ps; [ ];
     "greeneye_monitor" = ps: with ps; [ ]; # missing inputs: greeneye_monitor
     "greenwave" = ps: with ps; [ ]; # missing inputs: greenwavereality
@@ -319,8 +325,8 @@
     "habitica" = ps: with ps; [ ]; # missing inputs: habitipy
     "hangouts" = ps: with ps; [ ]; # missing inputs: hangups
     "harman_kardon_avr" = ps: with ps; [ ]; # missing inputs: hkavr
-    "harmony" = ps: with ps; [ aioharmony];
-    "hassio" = ps: with ps; [ aiohttp-cors sqlalchemy]; # missing inputs: home-assistant-frontend
+    "harmony" = ps: with ps; [ aioharmony ];
+    "hassio" = ps: with ps; [ aiohttp-cors ]; # missing inputs: home-assistant-frontend
     "haveibeenpwned" = ps: with ps; [ ];
     "hddtemp" = ps: with ps; [ ];
     "hdmi_cec" = ps: with ps; [ ]; # missing inputs: pyCEC
@@ -330,44 +336,46 @@
     "hikvision" = ps: with ps; [ ]; # missing inputs: pyhik
     "hikvisioncam" = ps: with ps; [ ]; # missing inputs: hikvision
     "hisense_aehw4a1" = ps: with ps; [ ]; # missing inputs: pyaehw4a1
-    "history" = ps: with ps; [ aiohttp-cors sqlalchemy];
-    "history_stats" = ps: with ps; [ aiohttp-cors sqlalchemy];
+    "history" = ps: with ps; [ aiohttp-cors sqlalchemy ];
+    "history_stats" = ps: with ps; [ aiohttp-cors sqlalchemy ];
     "hitron_coda" = ps: with ps; [ ];
     "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_connect" = ps: with ps; [ aiohttp-cors ]; # missing inputs: homeconnect
     "homeassistant" = ps: with ps; [ ];
-    "homekit" = ps: with ps; [ HAP-python pyqrcode aiohttp-cors ha-ffmpeg sqlalchemy zeroconf]; # missing inputs: PyTurboJPEG base36 fnvhash home-assistant-frontend
-    "homekit_controller" = ps: with ps; [ ]; # missing inputs: aiohomekit[IP]
-    "homematic" = ps: with ps; [ pyhomematic];
+    "homekit" = ps: with ps; [ HAP-python pyqrcode aiohttp-cors ha-ffmpeg zeroconf ]; # missing inputs: PyTurboJPEG base36 fnvhash
+    "homekit_controller" = ps: with ps; [ aiohttp-cors zeroconf ]; # missing inputs: aiohomekit[IP]
+    "homematic" = ps: with ps; [ pyhomematic ];
     "homematicip_cloud" = ps: with ps; [ ]; # missing inputs: homematicip
     "homeworks" = ps: with ps; [ ]; # missing inputs: pyhomeworks
     "honeywell" = ps: with ps; [ ]; # missing inputs: somecomfort
     "horizon" = ps: with ps; [ ]; # missing inputs: horimote
     "hp_ilo" = ps: with ps; [ ]; # missing inputs: python-hpilo
-    "html5" = ps: with ps; [ aiohttp-cors pywebpush];
-    "http" = ps: with ps; [ aiohttp-cors];
+    "html5" = ps: with ps; [ aiohttp-cors pywebpush ];
+    "http" = ps: with ps; [ aiohttp-cors ];
     "htu21d" = ps: with ps; [ ]; # missing inputs: i2csense smbus-cffi
-    "huawei_lte" = ps: with ps; [ getmac stringcase]; # missing inputs: huawei-lte-api url-normalize
+    "huawei_lte" = ps: with ps; [ getmac stringcase ]; # missing inputs: huawei-lte-api url-normalize
     "huawei_router" = ps: with ps; [ ];
-    "hue" = ps: with ps; [ aiohue];
+    "hue" = ps: with ps; [ aiohue ];
+    "humidifier" = ps: with ps; [ ];
     "hunterdouglas_powerview" = ps: with ps; [ ]; # missing inputs: aiopvapi
+    "hvv_departures" = ps: with ps; [ ]; # missing inputs: pygti
     "hydrawise" = ps: with ps; [ ]; # missing inputs: hydrawiser
     "hyperion" = ps: with ps; [ ];
     "ialarm" = ps: with ps; [ ]; # missing inputs: pyialarm
     "iammeter" = ps: with ps; [ ]; # missing inputs: iammeter
     "iaqualink" = ps: with ps; [ ]; # missing inputs: iaqualink
-    "icloud" = ps: with ps; [ pyicloud];
+    "icloud" = ps: with ps; [ pyicloud ];
     "idteck_prox" = ps: with ps; [ ]; # missing inputs: rfk101py
-    "ifttt" = ps: with ps; [ aiohttp-cors pyfttt];
+    "ifttt" = ps: with ps; [ aiohttp-cors pyfttt ];
     "iglo" = ps: with ps; [ ]; # missing inputs: iglo
     "ign_sismologia" = ps: with ps; [ ]; # missing inputs: georss_ign_sismologia_client
-    "ihc" = ps: with ps; [ defusedxml]; # missing inputs: ihcsdk
-    "image_processing" = ps: with ps; [ aiohttp-cors];
+    "ihc" = ps: with ps; [ defusedxml ]; # missing inputs: ihcsdk
+    "image_processing" = ps: with ps; [ aiohttp-cors ];
     "imap" = ps: with ps; [ ]; # missing inputs: aioimaplib
     "imap_email_content" = ps: with ps; [ ];
     "incomfort" = ps: with ps; [ ]; # missing inputs: incomfort-client
-    "influxdb" = ps: with ps; [ influxdb];
+    "influxdb" = ps: with ps; [ influxdb-client influxdb ];
     "input_boolean" = ps: with ps; [ ];
     "input_datetime" = ps: with ps; [ ];
     "input_number" = ps: with ps; [ ];
@@ -375,15 +383,15 @@
     "input_text" = ps: with ps; [ ];
     "insteon" = ps: with ps; [ ]; # missing inputs: pyinsteon
     "integration" = ps: with ps; [ ];
-    "intent" = ps: with ps; [ aiohttp-cors];
+    "intent" = ps: with ps; [ aiohttp-cors ];
     "intent_script" = ps: with ps; [ ];
     "intesishome" = ps: with ps; [ ]; # missing inputs: pyintesishome
-    "ios" = ps: with ps; [ aiohttp-cors zeroconf];
+    "ios" = ps: with ps; [ aiohttp-cors zeroconf ];
     "iota" = ps: with ps; [ ]; # missing inputs: pyota
     "iperf3" = ps: with ps; [ ]; # missing inputs: iperf3
     "ipma" = ps: with ps; [ ]; # missing inputs: pyipma
-    "ipp" = ps: with ps; [ ]; # missing inputs: pyipp
-    "iqvia" = ps: with ps; [ numpy]; # missing inputs: pyiqvia
+    "ipp" = ps: with ps; [ pyipp ];
+    "iqvia" = ps: with ps; [ numpy ]; # missing inputs: pyiqvia
     "irish_rail_transport" = ps: with ps; [ ]; # missing inputs: pyirishrail
     "islamic_prayer_times" = ps: with ps; [ ]; # missing inputs: prayer_times_calculator
     "iss" = ps: with ps; [ ]; # missing inputs: pyiss
@@ -398,94 +406,92 @@
     "kankun" = ps: with ps; [ ];
     "keba" = ps: with ps; [ ]; # missing inputs: keba-kecontact
     "keenetic_ndms2" = ps: with ps; [ ]; # missing inputs: ndms2_client
-    "kef" = ps: with ps; [ getmac]; # missing inputs: aiokef
+    "kef" = ps: with ps; [ getmac ]; # missing inputs: aiokef
     "keyboard" = ps: with ps; [ ]; # missing inputs: pyuserinput
-    "keyboard_remote" = ps: with ps; [ evdev]; # missing inputs: aionotify
+    "keyboard_remote" = ps: with ps; [ evdev ]; # missing inputs: aionotify
     "kira" = ps: with ps; [ ]; # missing inputs: pykira
     "kiwi" = ps: with ps; [ ]; # missing inputs: kiwiki-client
     "knx" = ps: with ps; [ ]; # missing inputs: xknx
-    "kodi" = ps: with ps; [ jsonrpc-async jsonrpc-websocket];
-    "konnected" = ps: with ps; [ aiohttp-cors]; # missing inputs: konnected
+    "kodi" = ps: with ps; [ jsonrpc-async jsonrpc-websocket ];
+    "konnected" = ps: with ps; [ aiohttp-cors ]; # missing inputs: konnected
     "kwb" = ps: with ps; [ ]; # missing inputs: pykwb
     "lacrosse" = ps: with ps; [ ]; # missing inputs: pylacrosse
     "lametric" = ps: with ps; [ ]; # missing inputs: lmnotify
     "lannouncer" = ps: with ps; [ ];
-    "lastfm" = ps: with ps; [ pylast];
+    "lastfm" = ps: with ps; [ pylast ];
     "launch_library" = ps: with ps; [ ]; # missing inputs: pylaunches
     "lcn" = ps: with ps; [ ]; # missing inputs: pypck
     "lg_netcast" = ps: with ps; [ ]; # missing inputs: pylgnetcast-homeassistant
     "lg_soundbar" = ps: with ps; [ ]; # missing inputs: temescal
     "life360" = ps: with ps; [ ]; # missing inputs: life360
-    "lifx" = ps: with ps; [ aiolifx aiolifx-effects];
+    "lifx" = ps: with ps; [ aiolifx aiolifx-effects ];
     "lifx_cloud" = ps: with ps; [ ];
     "lifx_legacy" = ps: with ps; [ ]; # missing inputs: liffylights
     "light" = ps: with ps; [ ];
     "lightwave" = ps: with ps; [ ]; # missing inputs: lightwave
-    "limitlessled" = ps: with ps; [ limitlessled];
+    "limitlessled" = ps: with ps; [ limitlessled ];
     "linksys_smart" = ps: with ps; [ ];
-    "linky" = ps: with ps; [ ]; # missing inputs: pylinky
-    "linode" = ps: with ps; [ linode-api];
-    "linux_battery" = ps: with ps; [ batinfo];
+    "linode" = ps: with ps; [ linode-api ];
+    "linux_battery" = ps: with ps; [ batinfo ];
     "lirc" = ps: with ps; [ ]; # missing inputs: python-lirc
     "litejet" = ps: with ps; [ ]; # missing inputs: pylitejet
     "llamalab_automate" = ps: with ps; [ ];
     "local_file" = ps: with ps; [ ];
     "local_ip" = ps: with ps; [ ];
-    "locative" = ps: with ps; [ aiohttp-cors];
+    "locative" = ps: with ps; [ aiohttp-cors ];
     "lock" = ps: with ps; [ ];
-    "lockitron" = ps: with ps; [ ];
-    "logbook" = ps: with ps; [ aiohttp-cors sqlalchemy]; # missing inputs: home-assistant-frontend
+    "logbook" = ps: with ps; [ aiohttp-cors sqlalchemy ]; # missing inputs: home-assistant-frontend
     "logentries" = ps: with ps; [ ];
     "logger" = ps: with ps; [ ];
-    "logi_circle" = ps: with ps; [ aiohttp-cors ha-ffmpeg]; # missing inputs: logi_circle
+    "logi_circle" = ps: with ps; [ aiohttp-cors ha-ffmpeg ]; # missing inputs: logi_circle
     "london_air" = ps: with ps; [ ];
     "london_underground" = ps: with ps; [ ]; # missing inputs: london-tube-status
     "loopenergy" = ps: with ps; [ ]; # missing inputs: pyloopenergy
     "lovelace" = ps: with ps; [ ];
-    "luci" = ps: with ps; [ openwrt-luci-rpc];
-    "luftdaten" = ps: with ps; [ luftdaten];
+    "luci" = ps: with ps; [ openwrt-luci-rpc ];
+    "luftdaten" = ps: with ps; [ luftdaten ];
     "lupusec" = ps: with ps; [ ]; # missing inputs: lupupy
     "lutron" = ps: with ps; [ ]; # missing inputs: pylutron
     "lutron_caseta" = ps: with ps; [ ]; # missing inputs: pylutron-caseta
     "lw12wifi" = ps: with ps; [ ]; # missing inputs: lw12
     "lyft" = ps: with ps; [ ]; # missing inputs: lyft_rides
     "magicseaweed" = ps: with ps; [ ]; # missing inputs: magicseaweed
-    "mailbox" = ps: with ps; [ aiohttp-cors];
-    "mailgun" = ps: with ps; [ aiohttp-cors]; # missing inputs: pymailgunner
+    "mailbox" = ps: with ps; [ aiohttp-cors ];
+    "mailgun" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pymailgunner
     "manual" = ps: with ps; [ ];
-    "manual_mqtt" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
-    "map" = ps: with ps; [ aiohttp-cors sqlalchemy]; # missing inputs: home-assistant-frontend
+    "manual_mqtt" = ps: with ps; [ aiohttp-cors paho-mqtt ];
+    "map" = ps: with ps; [ aiohttp-cors ]; # missing inputs: home-assistant-frontend
     "marytts" = ps: with ps; [ ]; # missing inputs: speak2mary
     "mastodon" = ps: with ps; [ ]; # missing inputs: Mastodon.py
-    "matrix" = ps: with ps; [ matrix-client];
+    "matrix" = ps: with ps; [ matrix-client ];
     "maxcube" = ps: with ps; [ ]; # missing inputs: maxcube-api
     "mcp23017" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-blinka adafruit-circuitpython-mcp230xx
-    "media_extractor" = ps: with ps; [ aiohttp-cors youtube-dl-light];
-    "media_player" = ps: with ps; [ aiohttp-cors];
+    "media_extractor" = ps: with ps; [ aiohttp-cors youtube-dl-light ];
+    "media_player" = ps: with ps; [ aiohttp-cors ];
     "mediaroom" = ps: with ps; [ ]; # missing inputs: pymediaroom
     "melcloud" = ps: with ps; [ ]; # missing inputs: pymelcloud
     "melissa" = ps: with ps; [ ]; # missing inputs: py-melissa-climate
-    "meraki" = ps: with ps; [ aiohttp-cors];
+    "meraki" = ps: with ps; [ aiohttp-cors ];
     "message_bird" = ps: with ps; [ ]; # missing inputs: messagebird
-    "met" = ps: with ps; [ pymetno];
-    "meteo_france" = ps: with ps; [ ]; # missing inputs: meteofrance vigilancemeteo
+    "met" = ps: with ps; [ pymetno ];
+    "meteo_france" = ps: with ps; [ ]; # missing inputs: meteofrance-api
     "meteoalarm" = ps: with ps; [ ]; # missing inputs: meteoalertapi
     "metoffice" = ps: with ps; [ ]; # missing inputs: datapoint
     "mfi" = ps: with ps; [ ]; # missing inputs: mficlient
     "mhz19" = ps: with ps; [ ]; # missing inputs: pmsensor
     "microsoft" = ps: with ps; [ ]; # missing inputs: pycsspeechtts
-    "microsoft_face" = ps: with ps; [ aiohttp-cors];
-    "microsoft_face_detect" = ps: with ps; [ aiohttp-cors];
-    "microsoft_face_identify" = ps: with ps; [ aiohttp-cors];
-    "miflora" = ps: with ps; [ bluepy]; # missing inputs: miflora
+    "microsoft_face" = ps: with ps; [ aiohttp-cors ];
+    "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
     "mill" = ps: with ps; [ ]; # missing inputs: millheater
     "min_max" = ps: with ps; [ ];
-    "minecraft_server" = ps: with ps; [ aiodns getmac]; # missing inputs: mcstatus
-    "minio" = ps: with ps; [ minio];
+    "minecraft_server" = ps: with ps; [ aiodns getmac ]; # missing inputs: mcstatus
+    "minio" = ps: with ps; [ minio ];
     "mitemp_bt" = ps: with ps; [ ]; # missing inputs: mitemp_bt
     "mjpeg" = ps: with ps; [ ];
-    "mobile_app" = ps: with ps; [ pynacl aiohttp-cors hass-nabucasa sqlalchemy]; # missing inputs: home-assistant-frontend
+    "mobile_app" = ps: with ps; [ pynacl aiohttp-cors emoji hass-nabucasa ];
     "mochad" = ps: with ps; [ ]; # missing inputs: pymochad
     "modbus" = ps: with ps; [ ]; # missing inputs: pymodbus
     "modem_callerid" = ps: with ps; [ ]; # missing inputs: basicmodem
@@ -493,34 +499,34 @@
     "monoprice" = ps: with ps; [ ]; # missing inputs: pymonoprice
     "moon" = ps: with ps; [ ];
     "mpchc" = ps: with ps; [ ];
-    "mpd" = ps: with ps; [ mpd2];
-    "mqtt" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
-    "mqtt_eventstream" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
-    "mqtt_json" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
-    "mqtt_room" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
-    "mqtt_statestream" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
+    "mpd" = ps: with ps; [ mpd2 ];
+    "mqtt" = ps: with ps; [ aiohttp-cors paho-mqtt ];
+    "mqtt_eventstream" = ps: with ps; [ aiohttp-cors paho-mqtt ];
+    "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
-    "mvglive" = ps: with ps; [ PyMVGLive];
+    "mvglive" = ps: with ps; [ PyMVGLive ];
     "mychevy" = ps: with ps; [ ]; # missing inputs: mychevy
     "mycroft" = ps: with ps; [ ]; # missing inputs: mycroftapi
     "myq" = ps: with ps; [ ]; # missing inputs: pymyq
-    "mysensors" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt]; # missing inputs: pymysensors
-    "mystrom" = ps: with ps; [ aiohttp-cors]; # missing inputs: python-mystrom
+    "mysensors" = ps: with ps; [ aiohttp-cors paho-mqtt ]; # missing inputs: pymysensors
+    "mystrom" = ps: with ps; [ aiohttp-cors ]; # missing inputs: python-mystrom
     "mythicbeastsdns" = ps: with ps; [ ]; # missing inputs: mbddns
     "n26" = ps: with ps; [ ]; # missing inputs: n26
     "nad" = ps: with ps; [ ]; # missing inputs: nad_receiver
-    "namecheapdns" = ps: with ps; [ defusedxml];
-    "nanoleaf" = ps: with ps; [ pynanoleaf];
-    "neato" = ps: with ps; [ pybotvac];
+    "namecheapdns" = ps: with ps; [ defusedxml ];
+    "nanoleaf" = ps: with ps; [ pynanoleaf ];
+    "neato" = ps: with ps; [ pybotvac ];
     "nederlandse_spoorwegen" = ps: with ps; [ ]; # missing inputs: nsapi
     "nello" = ps: with ps; [ ]; # missing inputs: pynello
     "ness_alarm" = ps: with ps; [ ]; # missing inputs: nessclient
     "nest" = ps: with ps; [ ]; # missing inputs: python-nest
-    "netatmo" = ps: with ps; [ aiohttp-cors hass-nabucasa pyatmo sqlalchemy]; # missing inputs: home-assistant-frontend
+    "netatmo" = ps: with ps; [ aiohttp-cors hass-nabucasa pyatmo ];
     "netdata" = ps: with ps; [ ]; # missing inputs: netdata
     "netgear" = ps: with ps; [ ]; # missing inputs: pynetgear
     "netgear_lte" = ps: with ps; [ ]; # missing inputs: eternalegypt
-    "netio" = ps: with ps; [ aiohttp-cors]; # missing inputs: pynetio
+    "netio" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pynetio
     "neurio_energy" = ps: with ps; [ ]; # missing inputs: neurio
     "nexia" = ps: with ps; [ ]; # missing inputs: nexia
     "nextbus" = ps: with ps; [ ]; # missing inputs: py_nextbusnext
@@ -529,12 +535,13 @@
     "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 ]; # missing inputs: python-nmap
     "nmbs" = ps: with ps; [ ]; # missing inputs: pyrail
     "no_ip" = ps: with ps; [ ];
     "noaa_tides" = ps: with ps; [ ]; # missing inputs: py_noaa
-    "norway_air" = ps: with ps; [ pymetno];
+    "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
     "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
@@ -548,17 +555,17 @@
     "nzbget" = ps: with ps; [ ]; # missing inputs: pynzbgetapi
     "oasa_telematics" = ps: with ps; [ ]; # missing inputs: oasatelematics
     "obihai" = ps: with ps; [ ]; # missing inputs: pyobihai
-    "octoprint" = ps: with ps; [ aiohttp-cors netdisco zeroconf];
+    "octoprint" = ps: with ps; [ aiohttp-cors netdisco zeroconf ];
     "oem" = ps: with ps; [ ]; # missing inputs: oemthermostat
-    "ohmconnect" = ps: with ps; [ defusedxml];
+    "ohmconnect" = ps: with ps; [ defusedxml ];
     "ombi" = ps: with ps; [ ]; # missing inputs: pyombi
-    "onboarding" = ps: with ps; [ aiohttp-cors];
+    "onboarding" = ps: with ps; [ aiohttp-cors ];
     "onewire" = ps: with ps; [ ]; # missing inputs: pyownet
-    "onkyo" = ps: with ps; [ onkyo-eiscp];
-    "onvif" = ps: with ps; [ ha-ffmpeg]; # missing inputs: WSDiscovery onvif-zeep-async
+    "onkyo" = ps: with ps; [ onkyo-eiscp ];
+    "onvif" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: WSDiscovery onvif-zeep-async
     "openalpr_cloud" = ps: with ps; [ ];
     "openalpr_local" = ps: with ps; [ ];
-    "opencv" = ps: with ps; [ numpy]; # missing inputs: opencv-python-headless
+    "opencv" = ps: with ps; [ numpy ]; # missing inputs: opencv-python-headless
     "openerz" = ps: with ps; [ ]; # missing inputs: openerz-api
     "openevse" = ps: with ps; [ ]; # missing inputs: openevsewifi
     "openexchangerates" = ps: with ps; [ ];
@@ -569,21 +576,22 @@
     "opensky" = ps: with ps; [ ];
     "opentherm_gw" = ps: with ps; [ ]; # missing inputs: pyotgw
     "openuv" = ps: with ps; [ ]; # missing inputs: pyopenuv
-    "openweathermap" = ps: with ps; [ pyowm];
+    "openweathermap" = ps: with ps; [ pyowm ];
     "opnsense" = ps: with ps; [ ]; # missing inputs: pyopnsense
     "opple" = ps: with ps; [ ]; # missing inputs: pyoppleio
     "orangepi_gpio" = ps: with ps; [ ]; # missing inputs: OPi.GPIO
     "oru" = ps: with ps; [ ]; # missing inputs: oru
     "orvibo" = ps: with ps; [ ]; # missing inputs: orvibo
     "osramlightify" = ps: with ps; [ ]; # missing inputs: lightify
-    "otp" = ps: with ps; [ pyotp];
-    "owntracks" = ps: with ps; [ pynacl aiohttp-cors hass-nabucasa hbmqtt paho-mqtt sqlalchemy]; # missing inputs: home-assistant-frontend
-    "ozw" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt]; # missing inputs: python-openzwave-mqtt
+    "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 paho-mqtt ]; # missing inputs: 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];
-    "panel_custom" = ps: with ps; [ aiohttp-cors sqlalchemy]; # missing inputs: home-assistant-frontend
-    "panel_iframe" = ps: with ps; [ aiohttp-cors sqlalchemy]; # missing inputs: home-assistant-frontend
+    "pandora" = ps: with ps; [ pexpect ];
+    "panel_custom" = ps: with ps; [ aiohttp-cors ]; # missing inputs: home-assistant-frontend
+    "panel_iframe" = ps: with ps; [ aiohttp-cors ]; # missing inputs: home-assistant-frontend
     "pcal9535a" = ps: with ps; [ ]; # missing inputs: pcal9535a
     "pencom" = ps: with ps; [ ]; # missing inputs: pencompy
     "persistent_notification" = ps: with ps; [ ];
@@ -597,40 +605,41 @@
     "ping" = ps: with ps; [ ];
     "pioneer" = ps: with ps; [ ];
     "pjlink" = ps: with ps; [ ]; # missing inputs: pypjlink2
-    "plaato" = ps: with ps; [ aiohttp-cors];
-    "plant" = ps: with ps; [ sqlalchemy];
-    "plex" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket pysonos];
+    "plaato" = ps: with ps; [ aiohttp-cors ];
+    "plant" = ps: with ps; [ sqlalchemy ];
+    "plex" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket pysonos ];
     "plugwise" = ps: with ps; [ ]; # missing inputs: Plugwise_Smile
     "plum_lightpad" = ps: with ps; [ ]; # missing inputs: plumlightpad
     "pocketcasts" = ps: with ps; [ ]; # missing inputs: pocketcasts
-    "point" = ps: with ps; [ aiohttp-cors]; # missing inputs: pypoint
+    "point" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pypoint
+    "poolsense" = ps: with ps; [ ]; # missing inputs: poolsense
     "powerwall" = ps: with ps; [ ]; # missing inputs: tesla-powerwall
     "prezzibenzina" = ps: with ps; [ ]; # missing inputs: prezzibenzina-py
     "proliphix" = ps: with ps; [ ]; # missing inputs: proliphix
-    "prometheus" = ps: with ps; [ aiohttp-cors prometheus_client];
+    "prometheus" = ps: with ps; [ aiohttp-cors prometheus_client ];
     "prowl" = ps: with ps; [ ];
     "proximity" = ps: with ps; [ ];
     "proxmoxve" = ps: with ps; [ ]; # missing inputs: proxmoxer
-    "proxy" = ps: with ps; [ pillow];
+    "proxy" = ps: with ps; [ pillow ];
     "ps4" = ps: with ps; [ ]; # missing inputs: pyps4-2ndscreen
     "ptvsd" = ps: with ps; [ ]; # missing inputs: ptvsd
-    "pulseaudio_loopback" = ps: with ps; [ pulsectl];
-    "push" = ps: with ps; [ aiohttp-cors];
-    "pushbullet" = ps: with ps; [ pushbullet];
-    "pushover" = ps: with ps; [ pushover-complete];
+    "pulseaudio_loopback" = ps: with ps; [ pulsectl ];
+    "push" = ps: with ps; [ aiohttp-cors ];
+    "pushbullet" = ps: with ps; [ pushbullet ];
+    "pushover" = ps: with ps; [ pushover-complete ];
     "pushsafer" = ps: with ps; [ ];
-    "pvoutput" = ps: with ps; [ jsonpath xmltodict];
+    "pvoutput" = ps: with ps; [ jsonpath xmltodict ];
     "pvpc_hourly_pricing" = ps: with ps; [ ]; # missing inputs: aiopvpc
     "pyload" = ps: with ps; [ ];
-    "python_script" = ps: with ps; [ restrictedpython];
+    "python_script" = ps: with ps; [ restrictedpython ];
     "qbittorrent" = ps: with ps; [ ]; # missing inputs: python-qbittorrent
     "qld_bushfire" = ps: with ps; [ ]; # missing inputs: georss_qld_bushfire_alert_client
     "qnap" = ps: with ps; [ ]; # missing inputs: qnapstats
-    "qrcode" = ps: with ps; [ pillow]; # missing inputs: pyzbar
+    "qrcode" = ps: with ps; [ pillow ]; # missing inputs: pyzbar
     "quantum_gateway" = ps: with ps; [ ]; # missing inputs: quantum-gateway
     "qvr_pro" = ps: with ps; [ ]; # missing inputs: pyqvrpro
     "qwikswitch" = ps: with ps; [ ]; # missing inputs: pyqwikswitch
-    "rachio" = ps: with ps; [ aiohttp-cors hass-nabucasa sqlalchemy]; # missing inputs: home-assistant-frontend rachiopy
+    "rachio" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; # missing inputs: rachiopy
     "radarr" = ps: with ps; [ ];
     "radiotherm" = ps: with ps; [ ]; # missing inputs: radiotherm
     "rainbird" = ps: with ps; [ ]; # missing inputs: pyrainbird
@@ -641,124 +650,124 @@
     "raspihats" = ps: with ps; [ ]; # missing inputs: raspihats smbus-cffi
     "raspyrfm" = ps: with ps; [ ]; # missing inputs: raspyrfm-client
     "recollect_waste" = ps: with ps; [ ]; # missing inputs: recollect-waste
-    "recorder" = ps: with ps; [ sqlalchemy];
+    "recorder" = ps: with ps; [ sqlalchemy ];
     "recswitch" = ps: with ps; [ ]; # missing inputs: pyrecswitch
-    "reddit" = ps: with ps; [ praw];
+    "reddit" = ps: with ps; [ praw ];
     "rejseplanen" = ps: with ps; [ ]; # missing inputs: rjpl
-    "remember_the_milk" = ps: with ps; [ httplib2]; # missing inputs: RtmAPI
+    "remember_the_milk" = ps: with ps; [ httplib2 ]; # missing inputs: RtmAPI
     "remote" = ps: with ps; [ ];
     "remote_rpi_gpio" = ps: with ps; [ ]; # missing inputs: gpiozero
     "repetier" = ps: with ps; [ ]; # missing inputs: pyrepetier
-    "rest" = ps: with ps; [ jsonpath xmltodict];
+    "rest" = ps: with ps; [ jsonpath xmltodict ];
     "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 ]; # missing inputs: ring_doorbell
     "ripple" = ps: with ps; [ ]; # missing inputs: python-ripple-api
-    "rmvtransport" = ps: with ps; [ ]; # missing inputs: PyRMVtransport
+    "rmvtransport" = ps: with ps; [ PyRMVtransport ];
     "rocketchat" = ps: with ps; [ ]; # missing inputs: rocketchat-API
     "roku" = ps: with ps; [ ]; # missing inputs: rokuecp
     "roomba" = ps: with ps; [ ]; # missing inputs: roombapy
-    "route53" = ps: with ps; [ boto3]; # missing inputs: ipify
+    "route53" = ps: with ps; [ boto3 ];
     "rova" = ps: with ps; [ ]; # missing inputs: rova
     "rpi_camera" = ps: with ps; [ ];
     "rpi_gpio" = ps: with ps; [ ]; # missing inputs: RPi.GPIO
     "rpi_gpio_pwm" = ps: with ps; [ ]; # missing inputs: pwmled
     "rpi_pfio" = ps: with ps; [ ]; # missing inputs: pifacecommon pifacedigitalio
     "rpi_rf" = ps: with ps; [ ]; # missing inputs: rpi-rf
-    "rss_feed_template" = ps: with ps; [ aiohttp-cors];
+    "rss_feed_template" = ps: with ps; [ aiohttp-cors ];
     "rtorrent" = ps: with ps; [ ];
     "russound_rio" = ps: with ps; [ ]; # missing inputs: russound_rio
     "russound_rnet" = ps: with ps; [ ]; # missing inputs: russound
-    "sabnzbd" = ps: with ps; [ aiohttp-cors netdisco zeroconf]; # missing inputs: pysabnzbd
-    "safe_mode" = ps: with ps; [ aiohttp-cors hass-nabucasa sqlalchemy]; # missing inputs: home-assistant-frontend
+    "sabnzbd" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: pysabnzbd
+    "safe_mode" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; # missing inputs: home-assistant-frontend
     "saj" = ps: with ps; [ ]; # missing inputs: pysaj
     "salt" = ps: with ps; [ ]; # missing inputs: saltbox
-    "samsungtv" = ps: with ps; [ ]; # missing inputs: samsungctl[websocket] samsungtvws[websocket]
+    "samsungtv" = ps: with ps; [ samsungctl samsungtvws ];
     "satel_integra" = ps: with ps; [ ]; # missing inputs: satel_integra
     "scene" = ps: with ps; [ ];
     "schluter" = ps: with ps; [ ]; # missing inputs: py-schluter
-    "scrape" = ps: with ps; [ beautifulsoup4 jsonpath xmltodict];
+    "scrape" = ps: with ps; [ beautifulsoup4 jsonpath xmltodict ];
     "script" = ps: with ps; [ ];
     "scsgate" = ps: with ps; [ ]; # missing inputs: scsgate
-    "search" = ps: with ps; [ aiohttp-cors sqlalchemy]; # missing inputs: home-assistant-frontend
-    "season" = ps: with ps; [ ephem];
+    "search" = ps: with ps; [ aiohttp-cors ];
+    "season" = ps: with ps; [ ephem ];
     "sendgrid" = ps: with ps; [ ]; # missing inputs: sendgrid
     "sense" = ps: with ps; [ ]; # missing inputs: sense_energy
     "sensehat" = ps: with ps; [ ]; # missing inputs: sense-hat
     "sensibo" = ps: with ps; [ ]; # missing inputs: pysensibo
     "sensor" = ps: with ps; [ ];
-    "sentry" = ps: with ps; [ sentry-sdk];
-    "serial" = ps: with ps; [ pyserial-asyncio];
+    "sentry" = ps: with ps; [ sentry-sdk ];
+    "serial" = ps: with ps; [ pyserial-asyncio ];
     "serial_pm" = ps: with ps; [ ]; # missing inputs: pmsensor
     "sesame" = ps: with ps; [ ]; # missing inputs: pysesame2
-    "seven_segments" = ps: with ps; [ pillow];
+    "seven_segments" = ps: with ps; [ pillow ];
     "seventeentrack" = ps: with ps; [ ]; # missing inputs: py17track
     "shell_command" = ps: with ps; [ ];
-    "shiftr" = ps: with ps; [ paho-mqtt];
-    "shodan" = ps: with ps; [ shodan];
-    "shopping_list" = ps: with ps; [ aiohttp-cors];
+    "shiftr" = ps: with ps; [ paho-mqtt ];
+    "shodan" = ps: with ps; [ shodan ];
+    "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 ]; # missing inputs: simplehound
     "signal_messenger" = ps: with ps; [ ]; # missing inputs: pysignalclirestapi
     "simplepush" = ps: with ps; [ ]; # missing inputs: simplepush
     "simplisafe" = ps: with ps; [ ]; # missing inputs: 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; [ ];
+    "sky_hub" = ps: with ps; [ ]; # missing inputs: pyskyqhub
     "skybeacon" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL]
     "skybell" = ps: with ps; [ ]; # missing inputs: 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; [ ]; # missing inputs: pysma
-    "smappee" = ps: with ps; [ ]; # missing inputs: smappy
+    "smappee" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pysmappee
     "smarthab" = ps: with ps; [ ]; # missing inputs: smarthab
-    "smartthings" = ps: with ps; [ aiohttp-cors hass-nabucasa sqlalchemy]; # missing inputs: home-assistant-frontend pysmartapp pysmartthings
+    "smartthings" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; # missing inputs: pysmartapp pysmartthings
     "smarty" = ps: with ps; [ ]; # missing inputs: pysmarty
     "smhi" = ps: with ps; [ ]; # missing inputs: smhi-pkg
     "sms" = ps: with ps; [ ]; # missing inputs: python-gammu
     "smtp" = ps: with ps; [ ];
-    "snapcast" = ps: with ps; [ snapcast];
-    "snips" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
-    "snmp" = ps: with ps; [ pysnmp];
+    "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; [ stringcase ]; # missing inputs: solaredge
     "solaredge_local" = ps: with ps; [ ]; # missing inputs: solaredge-local
     "solarlog" = ps: with ps; [ ]; # missing inputs: sunwatcher
     "solax" = ps: with ps; [ ]; # missing inputs: solax
     "soma" = ps: with ps; [ ]; # missing inputs: pysoma
-    "somfy" = ps: with ps; [ aiohttp-cors]; # missing inputs: pymfy
+    "somfy" = ps: with ps; [ aiohttp-cors ]; # missing inputs: 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
-    "sonos" = ps: with ps; [ pysonos];
+    "sonos" = ps: with ps; [ pysonos ];
     "sony_projector" = ps: with ps; [ ]; # missing inputs: pysdcp
-    "soundtouch" = ps: with ps; [ aiohttp-cors libsoundtouch zeroconf];
-    "spaceapi" = ps: with ps; [ aiohttp-cors];
+    "soundtouch" = ps: with ps; [ aiohttp-cors libsoundtouch zeroconf ];
+    "spaceapi" = ps: with ps; [ aiohttp-cors ];
     "spc" = ps: with ps; [ ]; # missing inputs: pyspcwebgw
-    "speedtestdotnet" = ps: with ps; [ speedtest-cli];
+    "speedtestdotnet" = ps: with ps; [ speedtest-cli ];
     "spider" = ps: with ps; [ ]; # missing inputs: spiderpy
     "splunk" = ps: with ps; [ ];
     "spotcrime" = ps: with ps; [ ]; # missing inputs: spotcrime
-    "spotify" = ps: with ps; [ aiohttp-cors spotipy];
-    "sql" = ps: with ps; [ sqlalchemy];
-    "squeezebox" = ps: with ps; [ ]; # missing inputs: pysqueezebox
-    "ssdp" = ps: with ps; [ aiohttp-cors defusedxml netdisco zeroconf];
+    "spotify" = ps: with ps; [ aiohttp-cors spotipy ];
+    "sql" = ps: with ps; [ sqlalchemy ];
+    "squeezebox" = ps: with ps; [ pysqueezebox ];
+    "ssdp" = ps: with ps; [ aiohttp-cors defusedxml netdisco zeroconf ];
     "starline" = ps: with ps; [ ]; # missing inputs: starline
     "starlingbank" = ps: with ps; [ ]; # missing inputs: starlingbank
-    "startca" = ps: with ps; [ xmltodict];
-    "statistics" = ps: with ps; [ sqlalchemy];
-    "statsd" = ps: with ps; [ statsd];
+    "startca" = ps: with ps; [ xmltodict ];
+    "statistics" = ps: with ps; [ sqlalchemy ];
+    "statsd" = ps: with ps; [ statsd ];
     "steam_online" = ps: with ps; [ ]; # missing inputs: steamodd
     "stiebel_eltron" = ps: with ps; [ ]; # missing inputs: pymodbus pystiebeleltron
     "stookalert" = ps: with ps; [ ]; # missing inputs: stookalert
-    "stream" = ps: with ps; [ aiohttp-cors av];
+    "stream" = ps: with ps; [ aiohttp-cors av ];
     "streamlabswater" = ps: with ps; [ ]; # missing inputs: streamlabswater
-    "stt" = ps: with ps; [ aiohttp-cors];
+    "stt" = ps: with ps; [ aiohttp-cors ];
     "suez_water" = ps: with ps; [ ]; # missing inputs: pysuez
     "sun" = ps: with ps; [ ];
     "supervisord" = ps: with ps; [ ];
@@ -771,15 +780,15 @@
     "switchbot" = ps: with ps; [ ]; # missing inputs: PySwitchbot
     "switcher_kis" = ps: with ps; [ ]; # missing inputs: aioswitcher
     "switchmate" = ps: with ps; [ ]; # missing inputs: pySwitchmate
-    "syncthru" = ps: with ps; [ ]; # missing inputs: pysyncthru
+    "syncthru" = ps: with ps; [ ]; # missing inputs: pysyncthru url-normalize
     "synology" = ps: with ps; [ ]; # missing inputs: py-synology
     "synology_chat" = ps: with ps; [ ];
     "synology_dsm" = ps: with ps; [ ]; # missing inputs: python-synology
     "synology_srm" = ps: with ps; [ ]; # missing inputs: synology-srm
     "syslog" = ps: with ps; [ ];
-    "system_health" = ps: with ps; [ aiohttp-cors];
-    "system_log" = ps: with ps; [ aiohttp-cors];
-    "systemmonitor" = ps: with ps; [ psutil];
+    "system_health" = ps: with ps; [ aiohttp-cors ];
+    "system_log" = ps: with ps; [ aiohttp-cors ];
+    "systemmonitor" = ps: with ps; [ psutil ];
     "tado" = ps: with ps; [ ]; # missing inputs: python-tado
     "tahoma" = ps: with ps; [ ]; # missing inputs: tahoma-api
     "tank_utility" = ps: with ps; [ ]; # missing inputs: tank_utility
@@ -787,19 +796,19 @@
     "tapsaff" = ps: with ps; [ ]; # missing inputs: tapsaff
     "tautulli" = ps: with ps; [ ]; # missing inputs: pytautulli
     "tcp" = ps: with ps; [ ];
-    "ted5000" = ps: with ps; [ xmltodict];
+    "ted5000" = ps: with ps; [ xmltodict ];
     "teksavvy" = ps: with ps; [ ];
-    "telegram" = ps: with ps; [ pysocks aiohttp-cors python-telegram-bot];
-    "telegram_bot" = ps: with ps; [ pysocks aiohttp-cors python-telegram-bot];
+    "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
     "tellstick" = ps: with ps; [ ]; # missing inputs: tellcore-net tellcore-py
     "telnet" = ps: with ps; [ ];
     "temper" = ps: with ps; [ ]; # missing inputs: temperusb
     "template" = ps: with ps; [ ];
-    "tensorflow" = ps: with ps; [ numpy pillow protobuf]; # missing inputs: tensorflow
+    "tensorflow" = ps: with ps; [ numpy pillow protobuf ]; # missing inputs: pycocotools tensorflow tf-models-official tf-slim
     "tesla" = ps: with ps; [ ]; # missing inputs: teslajsonpy
     "tfiac" = ps: with ps; [ ]; # missing inputs: pytfiac
-    "thermoworks_smoke" = ps: with ps; [ stringcase]; # missing inputs: thermoworks_smoke
+    "thermoworks_smoke" = ps: with ps; [ stringcase ]; # missing inputs: thermoworks_smoke
     "thethingsnetwork" = ps: with ps; [ ];
     "thingspeak" = ps: with ps; [ ]; # missing inputs: thingspeak
     "thinkingcleaner" = ps: with ps; [ ]; # missing inputs: pythinkingcleaner
@@ -812,51 +821,51 @@
     "timer" = ps: with ps; [ ];
     "tmb" = ps: with ps; [ ]; # missing inputs: tmb
     "tod" = ps: with ps; [ ];
-    "todoist" = ps: with ps; [ todoist];
+    "todoist" = ps: with ps; [ todoist ];
     "tof" = ps: with ps; [ ]; # missing inputs: RPi.GPIO VL53L1X2
     "tomato" = ps: with ps; [ ];
-    "toon" = ps: with ps; [ ]; # missing inputs: toonapilib
-    "torque" = ps: with ps; [ aiohttp-cors];
+    "toon" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; # missing inputs: toonapi
+    "torque" = ps: with ps; [ aiohttp-cors ];
     "totalconnect" = ps: with ps; [ ]; # missing inputs: total_connect_client
     "touchline" = ps: with ps; [ ]; # missing inputs: pytouchline
-    "tplink" = ps: with ps; [ ]; # missing inputs: pyHS100
+    "tplink" = ps: with ps; [ pyhs100 ];
     "tplink_lte" = ps: with ps; [ ]; # missing inputs: tp-connected
-    "traccar" = ps: with ps; [ aiohttp-cors stringcase]; # missing inputs: pytraccar
+    "traccar" = ps: with ps; [ aiohttp-cors stringcase ]; # missing inputs: pytraccar
     "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
-    "transmission" = ps: with ps; [ transmissionrpc];
+    "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];
+    "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
-    "twilio" = ps: with ps; [ aiohttp-cors twilio];
-    "twilio_call" = ps: with ps; [ aiohttp-cors twilio];
-    "twilio_sms" = ps: with ps; [ aiohttp-cors twilio];
+    "twilio" = ps: with ps; [ aiohttp-cors twilio ];
+    "twilio_call" = ps: with ps; [ aiohttp-cors twilio ];
+    "twilio_sms" = ps: with ps; [ aiohttp-cors twilio ];
     "twitch" = ps: with ps; [ ]; # missing inputs: python-twitch-client
     "twitter" = ps: with ps; [ ]; # missing inputs: TwitterAPI
     "ubee" = ps: with ps; [ ]; # missing inputs: pyubee
     "ubus" = ps: with ps; [ ];
     "ue_smart_radio" = ps: with ps; [ ];
     "uk_transport" = ps: with ps; [ ];
-    "unifi" = ps: with ps; [ aiounifi];
-    "unifi_direct" = ps: with ps; [ pexpect];
+    "unifi" = ps: with ps; [ aiounifi ];
+    "unifi_direct" = ps: with ps; [ pexpect ];
     "unifiled" = ps: with ps; [ ]; # missing inputs: unifiled
     "universal" = ps: with ps; [ ];
     "upb" = ps: with ps; [ ]; # missing inputs: upb_lib
     "upc_connect" = ps: with ps; [ ]; # missing inputs: connect-box
     "upcloud" = ps: with ps; [ ]; # missing inputs: upcloud-api
-    "updater" = ps: with ps; [ distro];
-    "upnp" = ps: with ps; [ ]; # missing inputs: async-upnp-client
+    "updater" = ps: with ps; [ distro ];
+    "upnp" = ps: with ps; [ async-upnp-client ];
     "uptime" = ps: with ps; [ ];
     "uptimerobot" = ps: with ps; [ ]; # missing inputs: pyuptimerobot
     "uscis" = ps: with ps; [ ]; # missing inputs: uscisstatus
     "usgs_earthquakes_feed" = ps: with ps; [ ]; # missing inputs: geojson_client
     "utility_meter" = ps: with ps; [ ];
-    "uvc" = ps: with ps; [ ]; # missing inputs: uvcclient
+    "uvc" = ps: with ps; [ uvcclient ];
     "vacuum" = ps: with ps; [ ];
     "vallox" = ps: with ps; [ ]; # missing inputs: vallox-websocket-api
     "vasttrafik" = ps: with ps; [ ]; # missing inputs: vtjp
@@ -864,42 +873,43 @@
     "velux" = ps: with ps; [ ]; # missing inputs: pyvlx
     "venstar" = ps: with ps; [ ]; # missing inputs: venstarcolortouch
     "vera" = ps: with ps; [ ]; # missing inputs: pyvera
-    "verisure" = ps: with ps; [ jsonpath]; # missing inputs: vsure
+    "verisure" = ps: with ps; [ jsonpath ]; # missing inputs: vsure
     "versasense" = ps: with ps; [ ]; # missing inputs: pyversasense
-    "version" = ps: with ps; [ pyhaversion];
+    "version" = ps: with ps; [ pyhaversion ];
     "vesync" = ps: with ps; [ ]; # missing inputs: pyvesync
     "viaggiatreno" = ps: with ps; [ ];
     "vicare" = ps: with ps; [ ]; # missing inputs: PyViCare
     "vilfo" = ps: with ps; [ ]; # missing inputs: vilfo-api-client
     "vivotek" = ps: with ps; [ ]; # missing inputs: libpyvivotek
     "vizio" = ps: with ps; [ ]; # missing inputs: pyvizio
-    "vlc" = ps: with ps; [ python-vlc];
+    "vlc" = ps: with ps; [ python-vlc ];
     "vlc_telnet" = ps: with ps; [ ]; # missing inputs: python-telnet-vlc
     "voicerss" = ps: with ps; [ ];
     "volkszaehler" = ps: with ps; [ ]; # missing inputs: volkszaehler
-    "volumio" = ps: with ps; [ ];
+    "volumio" = ps: with ps; [ ]; # missing inputs: pyvolumio
     "volvooncall" = ps: with ps; [ ]; # missing inputs: volvooncall
-    "vultr" = ps: with ps; [ vultr];
+    "vultr" = ps: with ps; [ vultr ];
     "w800rf32" = ps: with ps; [ ]; # missing inputs: pyW800rf32
-    "wake_on_lan" = ps: with ps; [ wakeonlan];
+    "wake_on_lan" = ps: with ps; [ wakeonlan ];
     "waqi" = ps: with ps; [ ]; # missing inputs: waqiasync
     "water_heater" = ps: with ps; [ ];
     "waterfurnace" = ps: with ps; [ ]; # missing inputs: waterfurnace
     "watson_iot" = ps: with ps; [ ]; # missing inputs: ibmiotf
     "watson_tts" = ps: with ps; [ ]; # missing inputs: ibm-watson
-    "waze_travel_time" = ps: with ps; [ WazeRouteCalculator];
+    "waze_travel_time" = ps: with ps; [ WazeRouteCalculator ];
     "weather" = ps: with ps; [ ];
-    "webhook" = ps: with ps; [ aiohttp-cors];
+    "webhook" = ps: with ps; [ aiohttp-cors ];
     "webostv" = ps: with ps; [ ]; # missing inputs: aiopylgtv
-    "websocket_api" = ps: with ps; [ aiohttp-cors];
+    "websocket_api" = ps: with ps; [ aiohttp-cors ];
     "wemo" = ps: with ps; [ ]; # missing inputs: pywemo
     "whois" = ps: with ps; [ ]; # missing inputs: python-whois
     "wiffi" = ps: with ps; [ ]; # missing inputs: wiffi
-    "wink" = ps: with ps; [ aiohttp-cors]; # missing inputs: pubnubsub-handler python-wink
+    "wink" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pubnubsub-handler python-wink
     "wirelesstag" = ps: with ps; [ ]; # missing inputs: wirelesstagpy
-    "withings" = ps: with ps; [ aiohttp-cors]; # missing inputs: withings-api
+    "withings" = ps: with ps; [ aiohttp-cors ]; # missing inputs: withings-api
     "wled" = ps: with ps; [ ]; # missing inputs: wled
-    "workday" = ps: with ps; [ holidays];
+    "wolflink" = ps: with ps; [ ]; # missing inputs: wolf_smartset
+    "workday" = ps: with ps; [ holidays ];
     "worldclock" = ps: with ps; [ ];
     "worldtidesinfo" = ps: with ps; [ ];
     "worxlandroid" = ps: with ps; [ ];
@@ -910,33 +920,33 @@
     "xbox_live" = ps: with ps; [ ]; # missing inputs: xboxapi
     "xeoma" = ps: with ps; [ ]; # missing inputs: 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_miio" = ps: with ps; [ construct python-miio];
+    "xiaomi" = ps: with ps; [ ha-ffmpeg ];
+    "xiaomi_aqara" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: PyXiaomiGateway
+    "xiaomi_miio" = ps: with ps; [ construct python-miio ];
     "xiaomi_tv" = ps: with ps; [ ]; # missing inputs: pymitv
-    "xmpp" = ps: with ps; [ slixmpp];
+    "xmpp" = ps: with ps; [ slixmpp ];
     "xs1" = ps: with ps; [ ]; # missing inputs: xs1-api-client
     "yale_smart_alarm" = ps: with ps; [ ]; # missing inputs: yalesmartalarmclient
-    "yamaha" = ps: with ps; [ rxv];
+    "yamaha" = ps: with ps; [ rxv ];
     "yamaha_musiccast" = ps: with ps; [ ]; # missing inputs: pymusiccast
-    "yandex_transport" = ps: with ps; [ ]; # missing inputs: ya_ma
+    "yandex_transport" = ps: with ps; [ ]; # missing inputs: aioymaps
     "yandextts" = ps: with ps; [ ];
-    "yeelight" = ps: with ps; [ aiohttp-cors netdisco zeroconf]; # missing inputs: yeelight
+    "yeelight" = ps: with ps; [ aiohttp-cors netdisco yeelight zeroconf ];
     "yeelightsunflower" = ps: with ps; [ ]; # missing inputs: yeelightsunflower
     "yessssms" = ps: with ps; [ ]; # missing inputs: YesssSMS
-    "yi" = ps: with ps; [ aioftp ha-ffmpeg];
-    "yr" = ps: with ps; [ xmltodict];
+    "yi" = ps: with ps; [ aioftp ha-ffmpeg ];
+    "yr" = ps: with ps; [ xmltodict ];
     "zabbix" = ps: with ps; [ ]; # missing inputs: pyzabbix
     "zamg" = ps: with ps; [ ];
     "zengge" = ps: with ps; [ ]; # missing inputs: zengge
-    "zeroconf" = ps: with ps; [ aiohttp-cors zeroconf];
+    "zeroconf" = ps: with ps; [ aiohttp-cors zeroconf ];
     "zerproc" = ps: with ps; [ ]; # missing inputs: pyzerproc
-    "zestimate" = ps: with ps; [ xmltodict];
-    "zha" = ps: with ps; [ pyserial zha-quirks zigpy-deconz]; # missing inputs: bellows zigpy-cc zigpy-xbee zigpy-zigate zigpy
+    "zestimate" = ps: with ps; [ xmltodict ];
+    "zha" = ps: with ps; [ bellows pyserial zha-quirks zigpy-cc zigpy-deconz zigpy-xbee zigpy-zigate zigpy ];
     "zhong_hong" = ps: with ps; [ ]; # missing inputs: zhong_hong_hvac
     "ziggo_mediabox_xl" = ps: with ps; [ ]; # missing inputs: ziggo-mediabox-xl
     "zone" = ps: with ps; [ ];
-    "zoneminder" = ps: with ps; [ zm-py];
-    "zwave" = ps: with ps; [ homeassistant-pyozw pydispatcher];
+    "zoneminder" = ps: with ps; [ zm-py ];
+    "zwave" = ps: with ps; [ homeassistant-pyozw pydispatcher ];
   };
 }
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index 0d9a3b25665..8f4d65066d0 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -32,6 +32,9 @@ let
     (mkOverride "pyowm" "2.10.0"
       "1xvcv3sbcn9na8cwz21nnjlixysfk5lymnf65d1nqkbgacc1mm4g")
 
+    (mkOverride "bcrypt" "3.1.7"
+      "0hhywhxx301cxivgxrpslrangbfpccc8y83qbwn1f57cab3nj00b")
+
     # required by aioesphomeapi
     (self: super: {
       protobuf = super.protobuf.override {
@@ -72,7 +75,7 @@ let
   extraBuildInputs = extraPackages py.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "0.111.4";
+  hassVersion = "0.114.4";
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "homeassistant";
@@ -81,7 +84,7 @@ in with py.pkgs; buildPythonApplication rec {
   disabled = pythonOlder "3.5";
 
   patches = [
-    ./0001-setup.py-relax-dependencies.patch
+    ./relax-dependencies.patch
   ];
 
   inherit availableComponents;
@@ -91,9 +94,14 @@ in with py.pkgs; buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = version;
-    sha256 = "08dkqczpmdaz8k9fsshgvgma7i7sffzgmhsi49qki7vwn20hl2hf";
+    sha256 = "0k9px4ny0b72d9ysr3x72idprgfgjab1z91ildr87629826bb4n7";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "yarl==1.4.2" "yarl~=1.4"
+  '';
+
   propagatedBuildInputs = [
     # From setup.py
     aiohttp astral async-timeout attrs bcrypt certifi importlib-metadata jinja2
@@ -114,9 +122,14 @@ in with py.pkgs; buildPythonApplication rec {
     # - components' dependencies are not included, so they cannot be tested
     # - test_merge_id_schema requires pyqwikswitch
     # - test_loader.py tries to load not-packaged dependencies
+    # - test_notify pyotp doesn't like the short mock keys
     # - unclear why test_merge fails: assert merge_log_err.call_count != 0
     # - test_setup_safe_mode_if_no_frontend: requires dependencies for components we have not packaged
-    py.test --ignore tests/components --ignore tests/test_loader.py -k "not test_setup_safe_mode_if_no_frontend and not test_merge_id_schema and not test_merge"
+    py.test \
+      --ignore tests/components \
+      --ignore tests/test_loader.py \
+      --ignore tests/auth/mfa_modules/test_notify.py \
+      -k "not test_setup_safe_mode_if_no_frontend and not test_merge_id_schema and not test_merge"
 
     # Some basic components should be tested however
     py.test \
diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix
index fcb68896c29..5c7227dc4e0 100644
--- a/pkgs/servers/home-assistant/frontend.nix
+++ b/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 = "20200603.3";
+  version = "20200811.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12bbvqckry6yr7409dir49pjcaa31z74fy6vb0mgr9xzvri5c2s8";
+    sha256 = "0nrvfr4mw7h9py27hkak201jsfrvyxlgswfnda1l7k9ns9y4lpj8";
   };
 
   # no Python tests implemented
diff --git a/pkgs/servers/home-assistant/parse-requirements.py b/pkgs/servers/home-assistant/parse-requirements.py
index 3c6d0c4bcab..4fa4b8a48ee 100755
--- a/pkgs/servers/home-assistant/parse-requirements.py
+++ b/pkgs/servers/home-assistant/parse-requirements.py
@@ -113,6 +113,10 @@ def name_to_attr_path(req: str, packages: Dict[str, Dict[str, str]]) -> Optional
     # instead of python-3.6-python-mpd2 inside Nixpkgs
     if req.startswith("python-") or req.startswith("python_"):
         names.append(req[len("python-") :])
+    # Add name variant without extra_require, e.g. samsungctl
+    # instead of samsungctl[websocket]
+    if req.endswith("]"):
+        names.append(req[:req.find("[")])
     for name in names:
         # treat "-" and "_" equally
         name = re.sub("[-_]", "[-_]", name)
@@ -173,9 +177,10 @@ def main() -> None:
         f.write("  components = {\n")
         for component, deps in build_inputs.items():
             available, missing = deps
-            f.write(f'    "{component}" = ps: with ps; [ ')
-            f.write(" ".join(available))
-            f.write("];")
+            f.write(f'    "{component}" = ps: with ps; [')
+            if available:
+                f.write(" " + " ".join(available))
+            f.write(" ];")
             if len(missing) > 0:
                 f.write(f" # missing inputs: {' '.join(missing)}")
             f.write("\n")
diff --git a/pkgs/servers/home-assistant/relax-dependencies.patch b/pkgs/servers/home-assistant/relax-dependencies.patch
new file mode 100644
index 00000000000..d06a37352f6
--- /dev/null
+++ b/pkgs/servers/home-assistant/relax-dependencies.patch
@@ -0,0 +1,21 @@
+diff --git a/setup.py b/setup.py
+index 81f8727ed6..12200e0b9f 100755
+--- a/setup.py
++++ b/setup.py
+@@ -43,13 +43,13 @@ REQUIRES = [
+     "jinja2>=2.11.1",
+     "PyJWT==1.7.1",
+     # PyJWT has loose dependency. We want the latest one.
+-    "cryptography==2.9.2",
++    "cryptography>=2.9.2",
+     "pip>=8.0.3",
+     "python-slugify==4.0.1",
+     "pytz>=2020.1",
+     "pyyaml==5.3.1",
+-    "requests==2.24.0",
+-    "ruamel.yaml==0.15.100",
++    "requests>=2.23.0",
++    "ruamel.yaml>=0.15.100",
+     "voluptuous==0.11.7",
+     "voluptuous-serialize==2.4.0",
+     "yarl==1.4.2",
diff --git a/pkgs/servers/home-assistant/test-timeout.patch b/pkgs/servers/home-assistant/test-timeout.patch
new file mode 100644
index 00000000000..01b0edae1d7
--- /dev/null
+++ b/pkgs/servers/home-assistant/test-timeout.patch
@@ -0,0 +1,13 @@
+diff --git a/tests/test_core.py b/tests/test_core.py
+index a63f42af61..04b333868b 100644
+--- a/tests/test_core.py
++++ b/tests/test_core.py
+@@ -1432,7 +1432,7 @@ async def test_chained_logging_hits_log_timeout(hass, caplog):
+     async def _task_chain_2():
+         nonlocal created
+         created += 1
+-        if created > 10:
++        if created > 1000:
+             return
+         hass.async_create_task(_task_chain_1())
+ 
diff --git a/pkgs/servers/http/apache-httpd/2.4.nix b/pkgs/servers/http/apache-httpd/2.4.nix
index 8d8a0fceefb..4b63b589ea9 100644
--- a/pkgs/servers/http/apache-httpd/2.4.nix
+++ b/pkgs/servers/http/apache-httpd/2.4.nix
@@ -16,12 +16,12 @@ assert ldapSupport -> aprutil.ldapSupport && openldap != null;
 assert http2Support -> nghttp2 != null;
 
 stdenv.mkDerivation rec {
-  version = "2.4.43";
+  version = "2.4.46";
   pname = "apache-httpd";
 
   src = fetchurl {
     url = "mirror://apache/httpd/httpd-${version}.tar.bz2";
-    sha256 = "0hqgw47r3p3521ygkkqs8s30s5crm683081avj6330gwncm6b5x4";
+    sha256 = "1sj1rwgbcjgkzac3ybjy7j68c9b3dv3ap71m48mrjhf6w7vds3kl";
   };
 
   # FIXME: -dev depends on -doc
@@ -39,7 +39,6 @@ stdenv.mkDerivation rec {
   prePatch = ''
     sed -i config.layout -e "s|installbuilddir:.*|installbuilddir: $dev/share/build|"
     sed -i support/apachectl.in -e 's|@LYNX_PATH@|${lynx}/bin/lynx|'
-    sed -i support/apachectl.in -e 's|$HTTPD -t|$HTTPD -t -f /etc/httpd/httpd.conf|'
   '';
 
   # Required for ‘pthread_cancel’.
diff --git a/pkgs/servers/http/hiawatha/default.nix b/pkgs/servers/http/hiawatha/default.nix
index b731d4d0b34..7def709a840 100644
--- a/pkgs/servers/http/hiawatha/default.nix
+++ b/pkgs/servers/http/hiawatha/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hiawatha";
-  version = "10.9";
+  version = "10.11";
 
   src = fetchFromGitLab {
     owner = "hsleisink";
     repo = "hiawatha";
     rev = "v${version}";
-    sha256 = "0mcg36bidy3p57nyk9nliqjipfb3r2irziavlbr2d5g3smfv52z2";
+    sha256 = "10a7dqj37zrbmgnhwsw0mqm5x25kasl8p95g01rzakviwxkdrkid";
   };
 
   nativeBuildInputs = [ cmake ninja ];
diff --git a/pkgs/servers/http/jetty/default.nix b/pkgs/servers/http/jetty/default.nix
index 4f34fde1856..20370fd37c7 100644
--- a/pkgs/servers/http/jetty/default.nix
+++ b/pkgs/servers/http/jetty/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jetty";
-  version = "9.4.29.v20200521";
+  version = "9.4.31.v20200723";
   src = fetchurl {
     url = "https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/${version}/jetty-distribution-${version}.tar.gz";
     name = "jetty-distribution-${version}.tar.gz";
-    sha256 = "0ir7rzr5479k7whgy0fx6bjj7x978ghx4fxc64i39hg2kzcp5dbi";
+    sha256 = "1j1dhlrlj7xnijp55c1hd9r47m6bq37vpjkaf8f9fg7q9m2z9x6x";
   };
 
   phases = [ "unpackPhase" "installPhase" ];
diff --git a/pkgs/servers/http/nginx/mainline.nix b/pkgs/servers/http/nginx/mainline.nix
index c67606785e5..de74a72e788 100644
--- a/pkgs/servers/http/nginx/mainline.nix
+++ b/pkgs/servers/http/nginx/mainline.nix
@@ -1,6 +1,6 @@
 { callPackage, ... }@args:
 
 callPackage ./generic.nix args {
-  version = "1.19.0";
-  sha256 = "1j1n3rlvan6l9j3vw8axbbdm96w7s0x6ygmgqvbplzfd3wbid9j4";
+  version = "1.19.2";
+  sha256 = "0wr4ss4gld7x717m4j3a6l6f7ijblrrd55y563lkwhvr7sqpn7vw";
 }
diff --git a/pkgs/servers/http/nginx/modules.nix b/pkgs/servers/http/nginx/modules.nix
index 9fcb3305f0a..983e0f41ee9 100644
--- a/pkgs/servers/http/nginx/modules.nix
+++ b/pkgs/servers/http/nginx/modules.nix
@@ -4,10 +4,11 @@ let
 
   http_proxy_connect_module_generic = patchName: rec {
     src = fetchFromGitHub {
+      name = "http_proxy_connect_module_generic";
       owner = "chobits";
       repo = "ngx_http_proxy_connect_module";
-      rev = "002f8f9ef15562dc3691b977134518ad216d7a90";
-      sha256 = "163wg0xb7w5mwh6wrfarzcgaf6c7gb5qydgpi2wk35k551f7286s";
+      rev = "96ae4e06381f821218f368ad0ba964f87cbe0266";
+      sha256 = "1nc7z31i7x9dzp67kzgvs34hs6ps749y26wcpi3wf5mm63i803rh";
     };
 
     patches = [
@@ -18,12 +19,26 @@ let
 in
 
 {
+  fastcgi-cache-purge = throw "fastcgi-cache-purge was renamed to cache-purge";
+  ngx_aws_auth = throw "fastcgi-cache-purge was renamed to aws-auth";
+
+  aws-auth = {
+    src = fetchFromGitHub {
+      name = "aws-auth";
+      owner = "anomalizer";
+      repo = "ngx_aws_auth";
+      rev = "2.1.1";
+      sha256 = "10z67g40w7wpd13fwxyknkbg3p6hn61i4v8xw6lh27br29v1y6h9";
+    };
+  };
+
   brotli = {
     src = let gitsrc = pkgs.fetchFromGitHub {
+      name = "brotli";
       owner = "google";
       repo = "ngx_brotli";
-      rev = "e505dce68acc190cc5a1e780a3b0275e39f160ca";
-      sha256 = "00j48lffki62y1nmjyy81iklw5nlyzvrjy3z04qch4fp3p57hwla";
+      rev = "25f86f0bac1101b6512135eac5f93c49c63609e3";
+      sha256 = "02hfvfa6milj40qc2ikpb9f95sxqvxk4hly3x74kqhysbdi06hhv";
     }; in pkgs.runCommandNoCC "ngx_brotli-src" {} ''
       cp -a ${gitsrc} $out
       substituteInPlace $out/filter/config \
@@ -32,8 +47,19 @@ in
     inputs = [ pkgs.brotli ];
   };
 
+  cache-purge = {
+    src = fetchFromGitHub {
+      name = "cache-purge";
+      owner  = "nginx-modules";
+      repo   = "ngx_cache_purge";
+      rev    = "2.5.1";
+      sha256 = "0va4jz36mxj76nmq05n3fgnpdad30cslg7c10vnlhdmmic9vqncd";
+    };
+  };
+
   coolkit = {
     src = fetchFromGitHub {
+      name = "coolkit";
       owner  = "FRiCKLE";
       repo   = "ngx_coolkit";
       rev    = "0.2";
@@ -43,6 +69,7 @@ in
 
   dav = {
     src = fetchFromGitHub {
+      name = "dav";
       owner = "arut";
       repo = "nginx-dav-ext-module";
       rev = "v3.0.0";
@@ -53,24 +80,27 @@ in
 
   develkit = {
     src = fetchFromGitHub {
-      owner = "simpl";
+      name = "develkit";
+      owner = "vision5";
       repo = "ngx_devel_kit";
-      rev = "v0.3.1rc1";
-      sha256 = "00vqvpx67qra2hr85hkvj1dha4h7x7v9sblw7w1df11nq1gzsdbb";
+      rev = "v0.3.1";
+      sha256 = "1c5zfpvm0hrd9lp8rasmw79dnr2aabh0i6y11wzb783bp8m3p2sq";
     };
   };
 
   echo = {
     src = fetchFromGitHub {
+      name = "echo";
       owner = "openresty";
       repo = "echo-nginx-module";
-      rev = "v0.61";
-      sha256 = "0brjhhphi94ms4gia7za0mfx0png4jbhvq6j0nzjwp537iyiy23k";
+      rev = "v0.62";
+      sha256 = "0kr1y094yw1a9fyrf4w73ikq18w5ys463wza9n7yfl77xdwirnvl";
     };
   };
 
   fancyindex = {
     src = fetchFromGitHub {
+      name = "fancyindex";
       owner = "aperezdc";
       repo = "ngx-fancyindex";
       rev = "v0.4.4";
@@ -78,17 +108,9 @@ in
     };
   };
 
-  fastcgi-cache-purge = {
-    src = fetchFromGitHub {
-      owner  = "nginx-modules";
-      repo   = "ngx_cache_purge";
-      rev    = "2.5";
-      sha256 = "1f4kxagzvz10vqbcjwi57wink6xw3s1h7wlrrlrlpkmhfbf9704y";
-    };
-  };
-
   fluentd = {
     src = fetchFromGitHub {
+      name = "fluentd";
       owner = "fluent";
       repo = "nginx-fluentd-module";
       rev = "8af234043059c857be27879bc547c141eafd5c13";
@@ -96,12 +118,17 @@ in
     };
   };
 
-  http_proxy_connect_module_v16 = http_proxy_connect_module_generic "proxy_connect_rewrite_101504" // {
-    supports = with lib.versions; version: major version == "1" && minor version == "16";
+  http_proxy_connect_module_v18 = http_proxy_connect_module_generic "proxy_connect_rewrite_1018" // {
+    supports = with lib.versions; version: major version == "1" && minor version == "18";
+  };
+
+  http_proxy_connect_module_v19 = http_proxy_connect_module_generic "proxy_connect_rewrite_1018" // {
+    supports = with lib.versions; version: major version == "1" && minor version == "19";
   };
 
   ipscrub = {
     src = fetchFromGitHub {
+      name = "ipscrub";
       owner = "masonicboom";
       repo = "ipscrub";
       rev = "v1.0.1";
@@ -112,6 +139,7 @@ in
 
   limit-speed = {
     src = fetchFromGitHub {
+      name = "limit-speed";
       owner = "yaoweibin";
       repo = "nginx_limit_speed_module";
       rev = "f77ad4a56fbb134878e75827b40cf801990ed936";
@@ -121,6 +149,7 @@ in
 
   live ={
     src = fetchFromGitHub {
+      name = "live";
       owner = "arut";
       repo = "nginx-live-module";
       rev = "5e4a1e3a718e65e5206c24eba00d42b0d1c4b7dd";
@@ -130,6 +159,7 @@ in
 
   lua = {
     src = fetchFromGitHub {
+      name = "lua";
       owner = "openresty";
       repo = "lua-nginx-module";
       rev = "v0.10.15";
@@ -145,6 +175,7 @@ in
 
   lua-upstream = {
     src = fetchFromGitHub {
+      name = "lua-upstream";
       owner = "openresty";
       repo = "lua-upstream-nginx-module";
       rev = "v0.07";
@@ -164,16 +195,18 @@ in
 
   modsecurity-nginx = {
     src = fetchFromGitHub {
+      name = "modsecurity-nginx";
       owner = "SpiderLabs";
       repo = "ModSecurity-nginx";
-      rev = "v1.0.0";
-      sha256 = "0zzpdqhbdqqy8kjkszv0mrq6136ah9v3zwr1jbh312j8izmzdyi7";
+      rev = "v1.0.1";
+      sha256 = "0cbb3g3g4v6q5zc6an212ia5kjjad62bidnkm8b70i4qv1615pzf";
     };
     inputs = [ pkgs.curl pkgs.geoip pkgs.libmodsecurity pkgs.libxml2 pkgs.lmdb pkgs.yajl ];
   };
 
   moreheaders = {
     src = fetchFromGitHub {
+      name = "moreheaders";
       owner = "openresty";
       repo = "headers-more-nginx-module";
       rev = "v0.33";
@@ -183,6 +216,7 @@ in
 
   mpeg-ts ={
     src = fetchFromGitHub {
+      name = "mpeg-ts";
       owner = "arut";
       repo = "nginx-ts-module";
       rev = "v0.1.1";
@@ -192,29 +226,22 @@ in
 
   naxsi ={
     src = fetchFromGitHub {
+      name = "naxsi";
       owner = "nbs-system";
       repo = "naxsi";
-      rev = "0.56";
-      sha256 = "12kn6wbl8xqc19fi05ffprqps4pplg4a6i1cf01xc0d6brx1fg8v";
+      rev = "07a056ccd36bc3c5c40dc17991db226cb8cf6241";
+      sha256 = "1kdqy7by6ha2pl9lkkjxh4qrwcsrj2alm8fl129831h5y5xy8qx2";
     } + "/naxsi_src";
   };
 
-  ngx_aws_auth = {
-    src = fetchFromGitHub {
-      owner = "anomalizer";
-      repo = "ngx_aws_auth";
-      rev = "2.1.1";
-      sha256 = "10z67g40w7wpd13fwxyknkbg3p6hn61i4v8xw6lh27br29v1y6h9";
-    };
-  };
-
   opentracing = {
     src =
       let src' = fetchFromGitHub {
+        name = "opentracing";
         owner = "opentracing-contrib";
         repo = "nginx-opentracing";
-        rev = "v0.7.0";
-        sha256 = "16jzxhhsyfjaxb50jy5py9ppscidfx1shvc29ihldp0zs6d8khma";
+        rev = "v0.9.0";
+        sha256 = "02rf1909grbhvs9mjxrv7pwgbf7b8rpjw7j8rpwxag2rgvlsic3g";
       };
       in "${src'}/opentracing";
     inputs = [ pkgs.opentracing-cpp ];
@@ -225,6 +252,7 @@ in
       version = pkgs.psol.version;
 
       moduleSrc = fetchFromGitHub {
+        name   = "pagespeed";
         owner  = "pagespeed";
         repo   = "ngx_pagespeed";
         rev    = "v${version}-stable";
@@ -253,16 +281,18 @@ in
 
   pam = {
     src = fetchFromGitHub {
+      name = "pam";
       owner = "stogh";
       repo = "ngx_http_auth_pam_module";
-      rev = "v1.5.1";
-      sha256 = "031q006bcv10dzxi3mzamqiyg14p48v0bzd5mrwz073pbf0ba2fl";
+      rev = "v1.5.2";
+      sha256 = "06nydxk82rc9yrw4408nakb197flxh4z1yv935crg65fn9706rl7";
     };
     inputs = [ pkgs.pam ];
   };
 
   pinba = {
     src = fetchFromGitHub {
+      name = "pinba";
       owner = "tony2001";
       repo = "ngx_http_pinba_module";
       rev = "28131255d4797a7e2f82a6a35cf9fc03c4678fe6";
@@ -272,15 +302,17 @@ in
 
   push-stream ={
     src = fetchFromGitHub {
+      name = "push-stream";
       owner = "wandenberg";
       repo = "nginx-push-stream-module";
-      rev = "0.5.4";
-      sha256 = "0izn7lqrp2zfl738aqa9i8c5lba97wkhcnqg8qbw3ipp5cysb2hr";
+      rev = "1cdc01521ed44dc614ebb5c0d19141cf047e1f90";
+      sha256 = "0ijka32b37dl07k2jl48db5a32ix43jaczrpjih84cvq8yph0jjr";
     };
   };
 
   rtmp ={
     src = fetchFromGitHub {
+      name = "rtmp";
       owner = "arut";
       repo = "nginx-rtmp-module";
       rev = "v1.2.1";
@@ -290,6 +322,7 @@ in
 
   set-misc = {
     src = fetchFromGitHub {
+      name = "set-misc";
       owner = "openresty";
       repo = "set-misc-nginx-module";
       rev = "v0.32";
@@ -299,15 +332,17 @@ in
 
   shibboleth = {
     src = fetchFromGitHub {
+      name = "shibboleth";
       owner = "nginx-shib";
       repo = "nginx-http-shibboleth";
-      rev = "48b70d87bf7796d7813813a837e52b3a86e6f6f4";
-      sha256 = "0k8xcln5sf0m4r0m550dkhl07zhncp285dpysk6r4v6vqzqmhzdc";
+      rev = "5eadab80b2f5940d8873398bca000d93d3f0cf27";
+      sha256 = "1l0h3ic9mfsci89d0k5q3igkfpzq052ia25xj5hc8fq388yrhpap";
     };
   };
 
   sla = {
     src = fetchFromGitHub {
+      name = "sla";
       owner = "goldenclone";
       repo = "nginx-sla";
       rev = "7778f0125974befbc83751d0e1cadb2dcea57601";
@@ -317,6 +352,7 @@ in
 
   slowfs-cache = {
     src = fetchFromGitHub {
+      name = "slowfs-cache";
       owner  = "FRiCKLE";
       repo   = "ngx_slowfs_cache";
       rev    = "1.10";
@@ -326,6 +362,7 @@ in
 
   sorted-querystring = {
     src = fetchFromGitHub {
+      name = "sorted-querystring";
       owner = "wandenberg";
       repo = "nginx-sorted-querystring-module";
       rev = "0.3";
@@ -335,7 +372,8 @@ in
 
   statsd = {
     src = fetchFromGitHub {
-      owner = "apcera";
+      name = "statsd";
+      owner = "harvesthq";
       repo = "nginx-statsd";
       rev = "b970e40467a624ba710c9a5106879a0554413d15";
       sha256 = "1x8j4i1i2ahrr7qvz03vkldgdjdxi6mx75mzkfizfcc8smr4salr";
@@ -344,6 +382,7 @@ in
 
   stream-sts = {
     src = fetchFromGitHub {
+      name = "stream-sts";
       owner = "vozlt";
       repo = "nginx-module-stream-sts";
       rev = "v0.1.1";
@@ -353,6 +392,7 @@ in
 
   sts = {
     src = fetchFromGitHub {
+      name = "sts";
       owner = "vozlt";
       repo = "nginx-module-sts";
       rev = "v0.1.1";
@@ -362,15 +402,17 @@ in
 
   subsFilter = {
     src = fetchFromGitHub {
+      name = "subsFilter";
       owner = "yaoweibin";
       repo = "ngx_http_substitutions_filter_module";
-      rev = "bc58cb11844bc42735bbaef7085ea86ace46d05b";
-      sha256 = "1q5hr3sqys4f365gzjci549rn9ylhgj4xb29ril04zr5vkhzlnar";
+      rev = "b8a71eacc7f986ba091282ab8b1bbbc6ae1807e0";
+      sha256 = "027jxzx66q9a6ycn47imjh40xmnqr0z423lz0ds3w4rf1c2x130f";
     };
   };
 
   sysguard = {
     src = fetchFromGitHub {
+      name = "sysguard";
       owner = "vozlt";
       repo = "nginx-module-sysguard";
       rev = "e512897f5aba4f79ccaeeebb51138f1704a58608";
@@ -380,15 +422,17 @@ in
 
   upstream-check = {
     src = fetchFromGitHub {
+      name = "upstream-check";
       owner = "yaoweibin";
       repo = "nginx_upstream_check_module";
-      rev = "007f76f7adbcbd6abd9352502af1a4ae463def85";
-      sha256 = "1qcg7c9rcl70wr1qf188shnn9s2f7cxnlw05s6scbvlgnf6ik6in";
+      rev = "e538034b6ad7992080d2403d6d3da56e4f7ac01e";
+      sha256 = "06y7k04072xzqyqyb08m0vaaizkp4rfwm0q7i735imbzw2rxb74l";
     };
   };
 
   upstream-tarantool = {
     src = fetchFromGitHub {
+      name = "upstream-tarantool";
       owner = "tarantool";
       repo = "nginx_upstream_module";
       rev = "v2.7.1";
@@ -399,6 +443,7 @@ in
 
   url = {
     src = fetchFromGitHub {
+      name = "url";
       owner = "vozlt";
       repo = "nginx-module-url";
       rev = "9299816ca6bc395625c3683fbd2aa7b916bfe91e";
@@ -408,6 +453,7 @@ in
 
   video-thumbextractor = {
     src = fetchFromGitHub {
+      name = "video-thumbextractor";
       owner = "wandenberg";
       repo = "nginx-video-thumbextractor-module";
       rev = "0.9.0";
@@ -418,6 +464,7 @@ in
 
   vts = {
     src = fetchFromGitHub {
+      name = "vts";
       owner = "vozlt";
       repo = "nginx-module-vts";
       rev = "v0.1.18";
diff --git a/pkgs/servers/http/pshs/default.nix b/pkgs/servers/http/pshs/default.nix
index f83ab4642f0..e8ecb16c0c5 100644
--- a/pkgs/servers/http/pshs/default.nix
+++ b/pkgs/servers/http/pshs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pshs";
-  version = "0.3.3";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "mgorny";
     repo = "pshs";
     rev = "v${version}";
-    sha256 = "04l03myh99npl78y8nss053gnc7k8q60vdbdpml19sshmwaw3fgi";
+    sha256 = "1j8j4r0vsmp6226q6jdgf9bzhx3qk7vdliwaw7f8kcsrkndkg6p4";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/servers/http/unit/default.nix b/pkgs/servers/http/unit/default.nix
index fbb7768dcba..27f45fe6e47 100644
--- a/pkgs/servers/http/unit/default.nix
+++ b/pkgs/servers/http/unit/default.nix
@@ -1,15 +1,14 @@
 { stdenv, fetchFromGitHub, nixosTests, which
 , withPython2 ? false, python2
 , withPython3 ? true, python3, ncurses
-, withPHP72 ? false, php72
 , withPHP73 ? false, php73
 , withPHP74 ? true, php74
-, withPerl528 ? false, perl528
-, withPerl530 ? true, perl530
+, 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 ? true, ruby_2_7
+, withRuby_2_7 ? false, ruby_2_7
 , withSSL ? true, openssl ? null
 , withIPv6 ? true
 , withDebug ? false
@@ -27,19 +26,18 @@ let
     fpmSupport = false;
   };
 
-  php72-unit = php72.override phpConfig;
   php73-unit = php73.override phpConfig;
   php74-unit = php74.override phpConfig;
 
 in stdenv.mkDerivation rec {
-  version = "1.18.0";
+  version = "1.19.0";
   pname = "unit";
 
   src = fetchFromGitHub {
     owner = "nginx";
     repo = "unit";
     rev = version;
-    sha256 = "0r2l3ra63qjjbpjzrmx75jp9fvz83yis4j3qxqdnmxm77psykwy8";
+    sha256 = "0k3q42q198sb0w6hyyymw92dbhz67axn6w6vnzr0d883xw3sva7k";
   };
 
   nativeBuildInputs = [ which ];
@@ -47,11 +45,10 @@ in stdenv.mkDerivation rec {
   buildInputs = [ ]
     ++ optional withPython2 python2
     ++ optionals withPython3 [ python3 ncurses ]
-    ++ optional withPHP72 php72-unit
     ++ optional withPHP73 php73-unit
     ++ optional withPHP74 php74-unit
-    ++ optional withPerl528 perl528
     ++ optional withPerl530 perl530
+    ++ optional withPerl532 perl532
     ++ optional withPerldevel perldevel
     ++ optional withRuby_2_5 ruby_2_5
     ++ optional withRuby_2_6 ruby_2_6
@@ -68,18 +65,16 @@ in stdenv.mkDerivation rec {
     ++ optional withDebug   "--debug";
 
   # Optionally add the PHP derivations used so they can be addressed in the configs
-  usedPhp72 = optionals withPHP72 php72-unit;
   usedPhp73 = optionals withPHP73 php73-unit;
   usedPhp74 = optionals withPHP74 php74-unit;
 
   postConfigure = ''
     ${optionalString withPython2    "./configure python --module=python2  --config=python2-config  --lib-path=${python2}/lib"}
     ${optionalString withPython3    "./configure python --module=python3  --config=python3-config  --lib-path=${python3}/lib"}
-    ${optionalString withPHP72      "./configure php    --module=php72    --config=${php72-unit.unwrapped.dev}/bin/php-config --lib-path=${php72-unit}/lib"}
     ${optionalString withPHP73      "./configure php    --module=php73    --config=${php73-unit.unwrapped.dev}/bin/php-config --lib-path=${php73-unit}/lib"}
     ${optionalString withPHP74      "./configure php    --module=php74    --config=${php74-unit.unwrapped.dev}/bin/php-config --lib-path=${php74-unit}/lib"}
-    ${optionalString withPerl528    "./configure perl   --module=perl528  --perl=${perl528}/bin/perl"}
     ${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"}
diff --git a/pkgs/servers/hydron/default.nix b/pkgs/servers/hydron/default.nix
index 145d341bb51..28c92d073ff 100644
--- a/pkgs/servers/hydron/default.nix
+++ b/pkgs/servers/hydron/default.nix
@@ -14,8 +14,6 @@ buildGoPackage {
     sha256 = "1xxykjf5iyavm12gd6nx4j8x2mlzzn7x8vm0j5009lsir98qr5zn";
   };
 
-  enableParallelBuilding = true;
-
   nativeBuildInputs = [ pkgconfig go-bindata ];
 
   buildInputs = [ ffmpeg-full graphicsmagick quicktemplate easyjson ];
@@ -25,6 +23,5 @@ buildGoPackage {
     description = "High performance media tagger and organizer";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ chiiruno ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/servers/hylafaxplus/default.nix b/pkgs/servers/hylafaxplus/default.nix
index 21e39b5f2e2..9585ac46e5a 100644
--- a/pkgs/servers/hylafaxplus/default.nix
+++ b/pkgs/servers/hylafaxplus/default.nix
@@ -30,8 +30,8 @@
 let
 
   name = "hylafaxplus-${version}";
-  version = "7.0.2";
-  sha256 = "17vym1gz5ppy3q6zbw2y4nkq1dspn31k12zcmva44fnw9diwvsfb";
+  version = "7.0.3";
+  sha256 = "139iwcwrn9i5lragxi33ilzah72w59wg4midfjjgx5cly3ah0iy4";
 
   configSite = substituteAll {
     name = "hylafaxplus-config.site";
diff --git a/pkgs/servers/icingaweb2/default.nix b/pkgs/servers/icingaweb2/default.nix
index a35b5459272..6414d445a00 100644
--- a/pkgs/servers/icingaweb2/default.nix
+++ b/pkgs/servers/icingaweb2/default.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper, php }: with lib; stdenv.mkDerivation rec {
   pname = "icingaweb2";
-  version = "2.8.0";
+  version = "2.8.1";
 
   src = fetchFromGitHub {
     owner = "Icinga";
     repo = "icingaweb2";
     rev = "v${version}";
-    sha256 = "18q3d15w7d46g4vyq4iph5c1bbxcl8ikcdc8djrfi30wx36ziybs";
+    sha256 = "1hmw681a2qv578npr389szkxpbhcfqzq9c1wzkbjjm3avnvi37mf";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/imgproxy/default.nix b/pkgs/servers/imgproxy/default.nix
index 099caf87963..9d1a56877d7 100644
--- a/pkgs/servers/imgproxy/default.nix
+++ b/pkgs/servers/imgproxy/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "imgproxy";
-  version = "2.13.1";
+  version = "2.14.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    sha256 = "105mjlbzgv1c8argwgs0d9wm28m06nqi5hrk3358zg2jaa7ahaqf";
+    sha256 = "048bfkazjijf7p0wb5y09qhl7pgg297xxshgmkfyr025d7d50lf4";
     rev = "v${version}";
   };
 
-  vendorSha256 = "069if1ifsmdn5hrwybiifhnq6xzmdccq85mzi9v98iii18pzfwqx";
+  vendorSha256 = "1pvyr3lazza89njdl6q3h2nd0mkvjvbryyrfqv11kd3s52055ckz";
+
+  doCheck = false;
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/servers/irc/ngircd/default.nix b/pkgs/servers/irc/ngircd/default.nix
index b564a9b5c96..ff754a5390c 100644
--- a/pkgs/servers/irc/ngircd/default.nix
+++ b/pkgs/servers/irc/ngircd/default.nix
@@ -1,11 +1,12 @@
 { stdenv, fetchurl, zlib, openssl, pam, libiconv }:
 
 stdenv.mkDerivation rec {
-  name = "ngircd-25";
+  pname = "ngircd";
+  version = "26";
 
   src = fetchurl {
-    url = "https://ngircd.barton.de/pub/ngircd/${name}.tar.xz";
-    sha256 = "0kpf5qi98m9f833r4rx9n6h9p31biwk798jwc1mgzmix7sp7r6f4";
+    url = "https://ngircd.barton.de/pub/ngircd/${pname}-${version}.tar.xz";
+    sha256 = "1ijmv18fa648y7apxb9vp4j9iq6fxq850kz5v36rysaq614cdp2n";
   };
 
   configureFlags = [
diff --git a/pkgs/servers/irc/robustirc-bridge/default.nix b/pkgs/servers/irc/robustirc-bridge/default.nix
new file mode 100644
index 00000000000..84b80203f57
--- /dev/null
+++ b/pkgs/servers/irc/robustirc-bridge/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
+
+buildGoModule rec {
+  pname = "robustirc-bridge";
+  version = "1.8";
+
+  src = fetchFromGitHub {
+    owner = "robustirc";
+    repo = "bridge";
+    rev = "v${version}";
+    sha256 = "12jzil97147f978shdgm6whz7699db0shh0c1fzgrjh512dw502c";
+  };
+
+  vendorSha256 = "0lm8j2iz0yysgi0bbh78ca629kb6sxvyy9al3aj2587hpvy79q85";
+
+  postInstall = ''
+    install -D robustirc-bridge.1 $out/share/man/man1/robustirc-bridge.1
+  '';
+
+  passthru.tests.robustirc-bridge = nixosTests.robustirc-bridge;
+
+  meta = with stdenv.lib; {
+    description = "Bridge to robustirc.net-IRC-Network";
+    homepage = "https://robustirc.net/";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.hax404 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/servers/jackett/default.nix b/pkgs/servers/jackett/default.nix
index aaa762836bd..e76fd0eae91 100644
--- a/pkgs/servers/jackett/default.nix
+++ b/pkgs/servers/jackett/default.nix
@@ -1,46 +1,30 @@
-{ lib, stdenv, fetchurl, makeWrapper, curl, icu60, openssl, zlib }:
+{ lib, stdenv, fetchurl, mono, makeWrapper, curl, icu60, openssl, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "jackett";
-  version = "0.16.175";
+  version = "0.16.1057";
 
-  src = {
-    x86_64-linux = fetchurl {
-      url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.LinuxAMDx64.tar.gz";
-      sha512 = "269n84qc8sfrmnidgrjywanbqr65mhkmk24dlqfi17pi0l27wi4fc4qmnjj683xwprz5hqjsmkqf963pbx4k3jaz0rp0jnizan91wij";
-    };
-    aarch64-linux = fetchurl {
-      url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.LinuxARM64.tar.gz";
-      sha512 = "0dmyhprd2vi2z9q5g79psqgsc3w0zdac4s6k20rngi8jxm5jgphzrzcic4rgdijyryap99my619k447w701a08vh9sfcfk0fjg9pgwb";
-    };
-  }."${stdenv.targetPlatform.system}" or (throw "Missing hash for host system: ${stdenv.targetPlatform.system}");
+  src = fetchurl {
+    url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.Mono.tar.gz";
+    sha256 = "0scc7xjyr7igbnmkg67lmzijvkgv3si1r502npnxamiflic59rnx";
+  };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
-    mkdir -p $out/{bin,opt/${pname}-${version}}
-    cp -r * $out/opt/${pname}-${version}
-
-    makeWrapper "$out/opt/${pname}-${version}/jackett" $out/bin/Jackett \
-      --prefix LD_LIBRARY_PATH ':' "${curl.out}/lib:${icu60.out}/lib:${openssl.out}/lib:${zlib.out}/lib"
-  '';
+    mkdir -p $out/{bin,share/${pname}-${version}}
+    cp -r * $out/share/${pname}-${version}
 
-  preFixup = let
-    libPath = lib.makeLibraryPath [
-      stdenv.cc.cc.lib  # libstdc++.so.6
-    ];
-  in ''
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${libPath}" \
-      $out/opt/${pname}-${version}/jackett
+    makeWrapper "${mono}/bin/mono" $out/bin/Jackett \
+      --add-flags "$out/share/${pname}-${version}/JackettConsole.exe" \
+      --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ curl icu60 openssl zlib ]}
   '';
 
   meta = with stdenv.lib; {
     description = "API Support for your favorite torrent trackers.";
     homepage = "https://github.com/Jackett/Jackett/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ edwtjo nyanloutre ];
-    platforms = [ "x86_64-linux" "aarch64-linux" ];
+    maintainers = with maintainers; [ edwtjo nyanloutre purcell ];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/servers/jellyfin/10.5.x.nix b/pkgs/servers/jellyfin/10.5.x.nix
new file mode 100644
index 00000000000..17903871c8d
--- /dev/null
+++ b/pkgs/servers/jellyfin/10.5.x.nix
@@ -0,0 +1,61 @@
+{ stdenv, lib, fetchurl, unzip, sqlite, makeWrapper, dotnetCorePackages, ffmpeg,
+  fontconfig, freetype, nixosTests }:
+
+let
+  os = if stdenv.isDarwin then "osx" else "linux";
+  arch =
+    with stdenv.hostPlatform;
+    if isx86_32 then "x86"
+    else if isx86_64 then "x64"
+    else if isAarch32 then "arm"
+    else if isAarch64 then "arm64"
+    else lib.warn "Unsupported architecture, some image processing features might be unavailable" "unknown";
+  musl = lib.optionalString stdenv.hostPlatform.isMusl
+    (if (arch != "x64")
+      then lib.warn "Some image processing features might be unavailable for non x86-64 with Musl" "musl-"
+      else "musl-");
+  runtimeDir = "${os}-${musl}${arch}";
+
+in stdenv.mkDerivation rec {
+  pname = "jellyfin";
+  version = "10.5.5";
+
+  # Impossible to build anything offline with dotnet
+  src = fetchurl {
+    url = "https://github.com/jellyfin/jellyfin/releases/download/v${version}/jellyfin_${version}_portable.tar.gz";
+    sha256 = "1s3hva1j5w74qc9wyqnmr5clk4smzfi7wvx8qrzrwy81mx7r5w27";
+  };
+
+  buildInputs = [
+    unzip
+    makeWrapper
+  ];
+
+  propagatedBuildInputs = [
+    dotnetCorePackages.aspnetcore_3_1
+    sqlite
+  ];
+
+  preferLocalBuild = true;
+
+  installPhase = ''
+    install -dm 755 "$out/opt/jellyfin"
+    cp -r * "$out/opt/jellyfin"
+    makeWrapper "${dotnetCorePackages.aspnetcore_3_1}/bin/dotnet" $out/bin/jellyfin \
+      --prefix LD_LIBRARY_PATH : "${stdenv.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"
+  '';
+
+  passthru.tests = {
+    smoke-test = nixosTests.jellyfin;
+  };
+
+  meta =  with stdenv.lib; {
+    description = "The Free Software Media System";
+    homepage = "https://jellyfin.org/";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ nyanloutre minijackson ];
+  };
+}
diff --git a/pkgs/servers/jellyfin/default.nix b/pkgs/servers/jellyfin/default.nix
index 35476db9215..afa5375c9fd 100644
--- a/pkgs/servers/jellyfin/default.nix
+++ b/pkgs/servers/jellyfin/default.nix
@@ -18,12 +18,12 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "jellyfin";
-  version = "10.5.5";
+  version = "10.6.4";
 
   # Impossible to build anything offline with dotnet
   src = fetchurl {
-    url = "https://github.com/jellyfin/jellyfin/releases/download/v${version}/jellyfin_${version}_portable.tar.gz";
-    sha256 = "1s3hva1j5w74qc9wyqnmr5clk4smzfi7wvx8qrzrwy81mx7r5w27";
+    url = "https://repo.jellyfin.org/releases/server/portable/versions/stable/combined/${version}/jellyfin_${version}.tar.gz";
+    sha256 = "OqN070aUKPk0dXAy8R/lKUnSWen+si/AJ6tkYh5ibqo=";
   };
 
   buildInputs = [
@@ -41,7 +41,6 @@ in stdenv.mkDerivation rec {
   installPhase = ''
     install -dm 755 "$out/opt/jellyfin"
     cp -r * "$out/opt/jellyfin"
-
     makeWrapper "${dotnetCorePackages.aspnetcore_3_1}/bin/dotnet" $out/bin/jellyfin \
       --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [
         sqlite fontconfig freetype stdenv.cc.cc.lib
@@ -55,8 +54,8 @@ in stdenv.mkDerivation rec {
 
   meta =  with stdenv.lib; {
     description = "The Free Software Media System";
-    homepage = "https://jellyfin.github.io/";
+    homepage = "https://jellyfin.org/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ nyanloutre minijackson ];
+    maintainers = with maintainers; [ nyanloutre minijackson purcell ];
   };
 }
diff --git a/pkgs/servers/jicofo/default.nix b/pkgs/servers/jicofo/default.nix
new file mode 100644
index 00000000000..266b94dbffa
--- /dev/null
+++ b/pkgs/servers/jicofo/default.nix
@@ -0,0 +1,43 @@
+{ pkgs, stdenv, fetchurl, dpkg, jre_headless, nixosTests }:
+
+let
+  pname = "jicofo";
+  version = "1.0-612";
+  src = fetchurl {
+    url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb";
+    sha256 = "0xv3p2h8g1jwcmxljdpz08d6dsz543mznp0nwgb6vr93faz8kc81";
+  };
+in
+stdenv.mkDerivation {
+  inherit pname version src;
+
+  dontBuild = true;
+
+  unpackCmd = "${dpkg}/bin/dpkg-deb -x $src debcontents";
+
+  installPhase = ''
+    substituteInPlace usr/share/jicofo/jicofo.sh \
+      --replace "exec java" "exec ${jre_headless}/bin/java"
+
+    mkdir -p $out/{share,bin}
+    mv usr/share/jicofo $out/share/
+    mv etc $out/
+    cp ${./logging.properties-journal} $out/etc/jitsi/jicofo/logging.properties-journal
+    ln -s $out/share/jicofo/jicofo.sh $out/bin/jicofo
+  '';
+
+  passthru.tests = {
+    single-node-smoke-test = nixosTests.jitsi-meet;
+  };
+
+  meta = with stdenv.lib; {
+    description = "A server side focus component used in Jitsi Meet conferences";
+    longDescription = ''
+      JItsi COnference FOcus is a server side focus component used in Jitsi Meet conferences.
+    '';
+    homepage = "https://github.com/jitsi/jicofo";
+    license = licenses.asl20;
+    maintainers = teams.jitsi.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/servers/jicofo/logging.properties-journal b/pkgs/servers/jicofo/logging.properties-journal
new file mode 100644
index 00000000000..2d68dec1b0b
--- /dev/null
+++ b/pkgs/servers/jicofo/logging.properties-journal
@@ -0,0 +1,10 @@
+handlers = java.util.logging.ConsoleHandler
+java.util.logging.ConsoleHandler.level = ALL
+java.util.logging.ConsoleHandler.formatter = net.java.sip.communicator.util.ScLogFormatter
+.level = INFO
+net.sf.level = SEVERE
+net.java.sip.communicator.plugin.reconnectplugin.level = FINE
+org.ice4j.level = SEVERE
+org.jitsi.impl.neomedia.level = SEVERE
+net.java.sip.communicator.service.resources.AbstractResourcesService.level = SEVERE
+net.java.sip.communicator.util.ScLogFormatter.disableTimestamp = true
diff --git a/pkgs/servers/jitsi-videobridge/default.nix b/pkgs/servers/jitsi-videobridge/default.nix
new file mode 100644
index 00000000000..37cffa2e920
--- /dev/null
+++ b/pkgs/servers/jitsi-videobridge/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, dpkg, jre_headless, nixosTests }:
+
+let
+  pname = "jitsi-videobridge2";
+  version = "2.1-273-g072dd44b";
+  src = fetchurl {
+    url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb";
+    sha256 = "12l84wjn5iqnsg0816icgbx8jfcgyfnqclgyx303w4ncbvymlkv9";
+  };
+in
+stdenv.mkDerivation {
+  inherit pname version src;
+
+  dontBuild = true;
+
+  unpackCmd = "${dpkg}/bin/dpkg-deb -x $src debcontents";
+
+  installPhase = ''
+    substituteInPlace usr/share/jitsi-videobridge/jvb.sh \
+      --replace "exec java" "exec ${jre_headless}/bin/java"
+
+    mkdir -p $out/{bin,share/jitsi-videobridge,etc/jitsi/videobridge}
+    mv etc/jitsi/videobridge/logging.properties $out/etc/jitsi/videobridge/
+    cp ${./logging.properties-journal} $out/etc/jitsi/videobridge/logging.properties-journal
+    mv usr/share/jitsi-videobridge/* $out/share/jitsi-videobridge/
+    ln -s $out/share/jitsi-videobridge/jvb.sh $out/bin/jitsi-videobridge
+  '';
+
+  passthru.tests = {
+    single-host-smoke-test = nixosTests.jitsi-meet;
+  };
+
+  meta = with stdenv.lib; {
+    description = "A WebRTC compatible video router";
+    longDescription = ''
+      Jitsi Videobridge is an XMPP server component that allows for multiuser video communication.
+      Unlike the expensive dedicated hardware videobridges, Jitsi Videobridge does not mix the video
+      channels into a composite video stream, but only relays the received video channels to all call
+      participants. Therefore, while it does need to run on a server with good network bandwidth,
+      CPU horsepower is not that critical for performance.
+    '';
+    homepage = "https://github.com/jitsi/jitsi-videobridge";
+    license = licenses.asl20;
+    maintainers = teams.jitsi.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/servers/jitsi-videobridge/logging.properties-journal b/pkgs/servers/jitsi-videobridge/logging.properties-journal
new file mode 100644
index 00000000000..915e3292912
--- /dev/null
+++ b/pkgs/servers/jitsi-videobridge/logging.properties-journal
@@ -0,0 +1,7 @@
+handlers = java.util.logging.ConsoleHandler
+java.util.logging.ConsoleHandler.level = ALL
+java.util.logging.ConsoleHandler.formatter = org.jitsi.utils.logging2.JitsiLogFormatter
+.level = INFO
+org.jitsi.videobridge.xmpp.ComponentImpl.level = FINE
+org.jitsi.impl.neomedia.MediaStreamImpl.level = WARNING
+org.jitsi.utils.logging2.JitsiLogFormatter.disableTimestamp = true
diff --git a/pkgs/servers/kapow/default.nix b/pkgs/servers/kapow/default.nix
index 4f0e8cb4ec7..520af62576e 100644
--- a/pkgs/servers/kapow/default.nix
+++ b/pkgs/servers/kapow/default.nix
@@ -4,8 +4,6 @@ buildGoModule rec {
   pname = "kapow";
   version = "0.5.4";
 
-  goPackagePath = "github.com/BBVA/kapow";
-
   subPackages = [ "." ];
 
   src = fetchFromGitHub {
@@ -17,6 +15,8 @@ buildGoModule rec {
 
   vendorSha256 = "159s46rhg67mgglaxgddx3k8kssl0cqiq8yjdqgjhhxppf16r7dy";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/BBVA/kapow";
     description = "Expose command-line tools over HTTP";
diff --git a/pkgs/servers/limesurvey/default.nix b/pkgs/servers/limesurvey/default.nix
index 21863018087..5f5db310bf3 100644
--- a/pkgs/servers/limesurvey/default.nix
+++ b/pkgs/servers/limesurvey/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, writeText }:
+{ stdenv, fetchFromGitHub, writeText, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "limesurvey";
-  version = "3.17.12+190823";
+  version = "3.23.0+200813";
 
   src = fetchFromGitHub {
     owner = "LimeSurvey";
     repo = "LimeSurvey";
     rev = version;
-    sha256 = "1i7jpxndrbya5ggl4babscwzmxx4c0jwri5kpl7h2ihqrn90m4b5";
+    sha256 = "0r260z40g6b2bsfzxgfwdffbs17bl784xsc67n7q8222rs601hxf";
   };
 
   phpConfig = writeText "config.php" ''
@@ -27,6 +27,10 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  passthru.tests = {
+    smoke-test = nixosTests.limesurvey;
+  };
+
   meta = with stdenv.lib; {
     description = "Open source survey application";
     license = licenses.gpl2;
diff --git a/pkgs/servers/livepeer/default.nix b/pkgs/servers/livepeer/default.nix
index 38eb336ba21..156c0f108ae 100644
--- a/pkgs/servers/livepeer/default.nix
+++ b/pkgs/servers/livepeer/default.nix
@@ -20,8 +20,6 @@ buildGoPackage rec {
 
   buildInputs = [ ffmpeg_3 ];
 
-  enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     description = "Official Go implementation of the Livepeer protocol";
     homepage = "https://livepeer.org";
diff --git a/pkgs/servers/mail/dovecot/default.nix b/pkgs/servers/mail/dovecot/default.nix
index a110df0fb42..a12c86cd3f0 100644
--- a/pkgs/servers/mail/dovecot/default.nix
+++ b/pkgs/servers/mail/dovecot/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "dovecot";
-  version = "2.3.10.1";
+  version = "2.3.11.3";
 
   nativeBuildInputs = [ perl pkgconfig ];
   buildInputs =
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://dovecot.org/releases/2.3/${pname}-${version}.tar.gz";
-    sha256 = "035idr2j81s5mngnhd58rih79dhwwak7q01mqbx3rcmi4cpychk6";
+    sha256 = "1p5gp8jbavcsaara5mfn5cbrnlxssajnchczbgmmfzr7228fmnfk";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
index 6b51aea6512..aca694f53d6 100644
--- a/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
+++ b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dovecot-pigeonhole";
-  version = "0.5.10";
+  version = "0.5.11";
 
   src = fetchurl {
     url = "https://pigeonhole.dovecot.org/releases/2.3/dovecot-2.3-pigeonhole-${version}.tar.gz";
-    sha256 = "0pk0579ifl3ymfzn505396bsjlg29ykwr7ag8prcbafayg4rrj28";
+    sha256 = "1w5mryv6izh1gv7davnl94rb0pvh5bxl2bydzbfla1b83x22m5qb";
   };
 
   buildInputs = [ dovecot openssl ];
diff --git a/pkgs/servers/mail/exim/default.nix b/pkgs/servers/mail/exim/default.nix
index a85cb92a3fb..210863aa007 100644
--- a/pkgs/servers/mail/exim/default.nix
+++ b/pkgs/servers/mail/exim/default.nix
@@ -4,15 +4,16 @@
 , enableAuthDovecot ? false, dovecot
 , enablePAM ? false, pam
 , enableSPF ? true, libspf2
+, enableDMARC ? true, opendmarc
 }:
 
 stdenv.mkDerivation rec {
   pname = "exim";
-  version = "4.93.0.4";
+  version = "4.94";
 
   src = fetchurl {
-    url = "https://ftp.exim.org/pub/exim/exim4/fixes/${pname}-${version}.tar.xz";
-    sha256 = "01g4sfycv13glnmfrapwhjbdw6z1z7w5bwjldxjmglwfw5p3czak";
+    url = "https://ftp.exim.org/pub/exim/exim4/${pname}-${version}.tar.xz";
+    sha256 = "1nsb2i5mqxfz1sl1bmbxmpb2qiaf3wffhfiw4j9vfpagy3xfhzpp";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -21,7 +22,8 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optionals enableMySQL [ libmysqlclient zlib ]
     ++ stdenv.lib.optional enableAuthDovecot dovecot
     ++ stdenv.lib.optional enablePAM pam
-    ++ stdenv.lib.optional enableSPF libspf2;
+    ++ stdenv.lib.optional enableSPF libspf2
+    ++ stdenv.lib.optional enableDMARC opendmarc;
 
   preBuild = ''
     sed '
@@ -71,6 +73,10 @@ stdenv.mkDerivation rec {
         s:^# \(SUPPORT_SPF\)=.*:\1=yes:
         s:^# \(LDFLAGS += -lspf2\):\1:
       ''}
+      ${stdenv.lib.optionalString enableDMARC ''
+        s:^# \(SUPPORT_DMARC\)=.*:\1=yes:
+        s:^# \(LDFLAGS += -lopendmarc\):\1:
+      ''}
       #/^\s*#.*/d
       #/^\s*$/d
     ' < src/EDITME > Local/Makefile
@@ -92,11 +98,11 @@ stdenv.mkDerivation rec {
       done )
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = "http://exim.org/";
     description = "A mail transfer agent (MTA)";
-    license = stdenv.lib.licenses.gpl3;
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.tv ];
+    license = with licenses; [ gpl2Plus bsd3 ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ tv ajs124 das_j ];
   };
 }
diff --git a/pkgs/servers/mail/postfix/default.nix b/pkgs/servers/mail/postfix/default.nix
index c895147875d..ac5b9475028 100644
--- a/pkgs/servers/mail/postfix/default.nix
+++ b/pkgs/servers/mail/postfix/default.nix
@@ -26,11 +26,11 @@ in stdenv.mkDerivation rec {
 
   pname = "postfix";
 
-  version = "3.5.4";
+  version = "3.5.6";
 
   src = fetchurl {
     url = "ftp://ftp.cs.uu.nl/mirror/postfix/postfix-release/official/${pname}-${version}.tar.gz";
-    sha256 = "10b8g6xv90shhfx17cjw7p40gphwi02az1y2dd8a4sjm4z6b2bzw";
+    sha256 = "0shyxk83adv4pbfilmskyrgjpb57vyhmvqbmfqawxbc22mksmh4f";
   };
 
   nativeBuildInputs = [ makeWrapper m4 ];
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
index 4af80e27711..f788057e386 100644
--- a/pkgs/servers/matrix-synapse/default.nix
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -9,11 +9,11 @@ let
 in
 buildPythonApplication rec {
   pname = "matrix-synapse";
-  version = "1.15.2";
+  version = "1.19.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1qsrpzq6i2zakpi9sa5sjnjd4bk92n7zgkpcmpaa4sd9ya1wqifb";
+    sha256 = "0ddn3g3q0nkxpmw0xpjhnl0m1g3lrlp89abqbal9k6n689h6kfly";
   };
 
   patches = [
diff --git a/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix b/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
index fb1b5150858..a2045ee15f1 100644
--- a/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
+++ b/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
@@ -4,31 +4,40 @@
 
 let
   sources = {
-    "@babel/code-frame-7.8.3" = {
+    "@babel/code-frame-7.10.3" = {
       name = "_at_babel_slash_code-frame";
       packageName = "@babel/code-frame";
-      version = "7.8.3";
+      version = "7.10.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz";
-        sha512 = "3d85pd9lfbm8yrlpn6wj9g56snbnpr9fx0w1b9x26jbirc2xfrvnifwzprp0f6bhqijshgm0q35axic8d11v4j0kq493dapcyk33n3b";
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz";
+        sha512 = "fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==";
       };
     };
-    "@babel/helper-validator-identifier-7.9.5" = {
+    "@babel/helper-validator-identifier-7.10.3" = {
       name = "_at_babel_slash_helper-validator-identifier";
       packageName = "@babel/helper-validator-identifier";
-      version = "7.9.5";
+      version = "7.10.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz";
-        sha512 = "3i5wlljsvjm0hxwjq4j1ddq6gcj2k518gh95wkx8qywkf90sb7l3d5aqga7hvfvz44nb2b0aq16jd3394zilmlbqcvczaq5llnapipz";
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz";
+        sha512 = "bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw==";
       };
     };
-    "@babel/highlight-7.9.0" = {
+    "@babel/highlight-7.10.3" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.9.0";
+      version = "7.10.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz";
-        sha512 = "2qmdx9wdiv4yy36dc1ljghwd45kq6bhsddcbps8qznsrwvg3zjir6pb7nsfg4ypqrq6z2zif0ysjmwybpqp5xpz6rvymv2pbj54z5ll";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz";
+        sha512 = "Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==";
+      };
+    };
+    "@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==";
       };
     };
     "@slack/logger-1.1.1" = {
@@ -37,34 +46,34 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@slack/logger/-/logger-1.1.1.tgz";
-        sha512 = "26482151iyqnbfawnpnqggppifriyxx1gbyyi3688j782iiq4g1rqkm7q979z9qkv0pvvjrxdbi8v0gk3prax6j7v2zy0ndr44bj01w";
+        sha512 = "PAC5CMnNAv/FPtJ0le+YD2wUV+tZ7n3Bnjj9dBI+deIcHsExCnQkQmZE79cLvfuYXbz3PWyv5coti30MJQhEjA==";
       };
     };
-    "@slack/rtm-api-5.0.4" = {
+    "@slack/rtm-api-5.0.5" = {
       name = "_at_slack_slash_rtm-api";
       packageName = "@slack/rtm-api";
-      version = "5.0.4";
+      version = "5.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@slack/rtm-api/-/rtm-api-5.0.4.tgz";
-        sha512 = "1zx7c5wzbp2wc99lrzy0ipiil7jayn1643q0mm8bawdbi3gansd7axzn7ivcjlzgv9bn8pqlzc3lw0mwwlaqjs4z4d7zq6vnf6cw5g7";
+        url = "https://registry.npmjs.org/@slack/rtm-api/-/rtm-api-5.0.5.tgz";
+        sha512 = "x2B4hyoxjg62cxf4M5QRomx+xYp2XoajPKdd24SM2Sl4m+IrzwKzmcrysQuYmF6BMsm3IoTKymW5BBGckHGTIw==";
       };
     };
-    "@slack/types-1.6.0" = {
+    "@slack/types-1.7.0" = {
       name = "_at_slack_slash_types";
       packageName = "@slack/types";
-      version = "1.6.0";
+      version = "1.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@slack/types/-/types-1.6.0.tgz";
-        sha512 = "0hpy7rczl2a6379ipm7qxspq6qfh97iy2l7g0zzwn5jcmxlh5sjzl439k1hpxg7fpy66ldc455wlfyrk3wmgy8drlndw33iyq7w1fja";
+        url = "https://registry.npmjs.org/@slack/types/-/types-1.7.0.tgz";
+        sha512 = "aigLPmTO513JxeFyeII/74y+S5jU39tabDWPsZyMHJWCYqK3vCkRvV73NL+Ay+Tq5RC2NgSmkedk1wvQJ6oXLg==";
       };
     };
-    "@slack/web-api-5.8.1" = {
+    "@slack/web-api-5.10.0" = {
       name = "_at_slack_slash_web-api";
       packageName = "@slack/web-api";
-      version = "5.8.1";
+      version = "5.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@slack/web-api/-/web-api-5.8.1.tgz";
-        sha512 = "065zsa2i8s2av3igs52g2r8pn2i3qw3glflwbdn28i6wzvq0f3q2gp9vx44gfp5r5q1ymjwvk8wapsaaqgz1s781pymspcf6n977qrh";
+        url = "https://registry.npmjs.org/@slack/web-api/-/web-api-5.10.0.tgz";
+        sha512 = "t8c2lcSrdX8LIUOS1RvslbBBKvuNaTtbEcrWai4yDGkiNIxzhk+dHPcJzd7A4A0DkAgiEwXeezR7RCELuG8WgQ==";
       };
     };
     "@types/body-parser-1.19.0" = {
@@ -73,7 +82,7 @@ let
       version = "1.19.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz";
-        sha512 = "0av4v9bdhgbq0jils3jajym9gcfddyx63g2xx8fh6vqafqb5vdcm98p1kfl70ydih9m393zp13krslmii5bmf05ngyaxn139nn0kpsv";
+        sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==";
       };
     };
     "@types/caseless-0.12.2" = {
@@ -82,7 +91,7 @@ let
       version = "0.12.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz";
-        sha512 = "39jv2a7v9mi41wxbv242icriy5asbzyk95iy25ay3gwa1d6yi40cd6gclbzn81hig9xvvi5z7j2gq4ybirjfyihpq8wa3s160r33jg9";
+        sha512 = "6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==";
       };
     };
     "@types/chai-4.2.11" = {
@@ -91,7 +100,7 @@ let
       version = "4.2.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/chai/-/chai-4.2.11.tgz";
-        sha512 = "2rkrhbd0aip5x0bqbp3az1pfnz3wx0dqwmid3ibyrvgvz9z93xbf1prkm5rcnj7j58w70fydsrrjk0rl1fj3hcxm2z36zjsw7lrdfxp";
+        sha512 = "t7uW6eFafjO+qJ3BIV2gGUyZs27egcNRkUdalkud+Qa3+kg//f129iuOFivHDXQ+vnU3fDXuwgv0cqMCbcE8sw==";
       };
     };
     "@types/connect-3.4.33" = {
@@ -100,16 +109,7 @@ let
       version = "3.4.33";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz";
-        sha512 = "3n5gxr7z1jn60gvcnzls1c3fgzbv171acdp4shbn095wnbb8hdba3cjq1sac8aina3bg957ww5hg89swcgbdjfp9irmkkiqfs8npqfv";
-      };
-    };
-    "@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 = "3v6shgxnlkc7izsc00g8ilpxi1q2mpcmbjyfawyqcj8mwfhlx2cnkm3hj87gsd39yyq33pilb0dbb4cdc8wwhn7dcwj4srg0amrp8qi";
+        sha512 = "2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==";
       };
     };
     "@types/express-4.17.6" = {
@@ -118,7 +118,7 @@ let
       version = "4.17.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/express/-/express-4.17.6.tgz";
-        sha512 = "3kwllih0493ahk6gi09pibb3c3x21r3qll2fv7vs9ixz694i6dp59w4799q8ar1yx500d03rvyc5pppf9p3rrdcw4fpkws8svvapycz";
+        sha512 = "n/mr9tZI83kd4azlPG5y997C/M4DNABK9yErhFM6hKdym4kkmd9j0vtsJyjFIwfRBxtrxZtAfGZCNRIBMFLK5w==";
       };
     };
     "@types/express-serve-static-core-4.17.7" = {
@@ -127,7 +127,7 @@ let
       version = "4.17.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.7.tgz";
-        sha512 = "07pihlgvdmd0kkpxd77h2mcqx93c3mz0g4jcv2p511jgksqwc4wgi4qjb59gbp2ya25inn0gsh9f3wsc8dzi73w5mhamxn5y27i7j0h";
+        sha512 = "EMgTj/DF9qpgLXyc+Btimg+XoH7A2liE8uKul8qSmMTHCeNYzydDKFdsJskDvw42UsesCnhO63dO0Grbj8J4Dw==";
       };
     };
     "@types/is-stream-1.1.0" = {
@@ -136,16 +136,16 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/is-stream/-/is-stream-1.1.0.tgz";
-        sha512 = "1i12j74qq6aga8wpwbn5vmy5abb0hms26hinya0mx503dwx51iqy39rsl07kha49nfmmz0sbrjbbm4s1lrcwj3as9xb8m8hxsv5lilf";
+        sha512 = "jkZatu4QVbR60mpIzjINmtS1ZF4a/FqdTUTBeQDVOQ2PYyidtwFKr0B5G6ERukKwliq+7mIXvxyppwzG5EgRYg==";
       };
     };
-    "@types/mime-2.0.1" = {
+    "@types/mime-2.0.2" = {
       name = "_at_types_slash_mime";
       packageName = "@types/mime";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz";
-        sha512 = "35iimmp0d3zg4774qavnq9wh54dgnxfks59fks65f8q8d1008x00a1fmkdnxcs27znlc69mzbxp1frzpxx85c5w4x0ha5prgs0ks0hp";
+        url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.2.tgz";
+        sha512 = "4kPlzbljFcsttWEq6aBW0OZe6BDajAmyvr2xknBG92tejQnvdGtT9+kXSZ580DqpxY9qG2xeQVF9Dq0ymUTo5Q==";
       };
     };
     "@types/mocha-7.0.2" = {
@@ -154,7 +154,7 @@ let
       version = "7.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz";
-        sha512 = "3bnvharvlw03v41ibz38mhzb9h9ai3r3h46j9j6jj0g32ny0xak0ls9mnbs6bf7yfqccidc2vg1xwx16adxqngyayyci6130ysbdwv6";
+        sha512 = "ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==";
       };
     };
     "@types/nedb-1.8.9" = {
@@ -163,7 +163,7 @@ let
       version = "1.8.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/nedb/-/nedb-1.8.9.tgz";
-        sha512 = "1ajp6pwl4fnpr0w1bkvd7fx77amhgwm32q8wcr6r124m6fq73f88qkgbgr8r0ll2s2pn1b9kajzzvbvl7rgib0p3bsd94826kffbm63";
+        sha512 = "w9Tl3DQCkdT0Ghes+PKhe+3/pZppBXuFFpSCjPJbb2KE3DjYmUpEyCYzjrAYlT9Y1TndnbbnChzkax2h/JorVQ==";
       };
     };
     "@types/node-13.9.3" = {
@@ -181,7 +181,16 @@ let
       version = "1.8.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/node-emoji/-/node-emoji-1.8.1.tgz";
-        sha512 = "288j4d6vcg0fbj43jaaf628f02s8zpsc0xagw0a5dr397ks6qnrcmjf91vl50b6f5xiddm6606hg3fa0va3yfpw4n56wnh5vl1mzx6i";
+        sha512 = "0fRfA90FWm6KJfw6P9QGyo0HDTCmthZ7cWaBQndITlaWLTZ6njRyKwrwpzpg+n6kBXBIGKeUHEQuBx7bphGJkA==";
+      };
+    };
+    "@types/nunjucks-3.1.3" = {
+      name = "_at_types_slash_nunjucks";
+      packageName = "@types/nunjucks";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/nunjucks/-/nunjucks-3.1.3.tgz";
+        sha512 = "42IiIIBdoB7ZDwCVhCWYT4fMCj+4TeacuVgh7xyT2du5EhkpA+OFeeDdYTFCUt1MrHb8Aw7ZqFvr8s1bwP9l8w==";
       };
     };
     "@types/p-queue-2.3.2" = {
@@ -190,16 +199,16 @@ let
       version = "2.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/p-queue/-/p-queue-2.3.2.tgz";
-        sha512 = "2ypziq4lf4i0kvxck1nv6l40sivqa5w95sagcihxbw8j87whz8yl80hwailygwlgyl3k3c6vca9nzn5h720l2vmhwfvz4vs17jjz83q";
+        sha512 = "eKAv5Ql6k78dh3ULCsSBxX6bFNuGjTmof5Q/T6PiECDq0Yf8IIn46jCyp3RJvCi8owaEmm3DZH1PEImjBMd/vQ==";
       };
     };
-    "@types/qs-6.9.2" = {
+    "@types/qs-6.9.3" = {
       name = "_at_types_slash_qs";
       packageName = "@types/qs";
-      version = "6.9.2";
+      version = "6.9.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.2.tgz";
-        sha512 = "3wd0wx623wmzc5fs372ziw4zr9ay93zqd17aqbsfvs90y6jp2n9ipv0k0mpgjidvrhrzkwdhh6xpxlyy3xmzxdvw1gjdk3phs5w7mkb";
+        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.3.tgz";
+        sha512 = "7s9EQWupR1fTc2pSMtXRQ9w9gLOcrJn+h7HOXw4evxyvVqMi4f+q7d2tnFe3ng3SNHjtK+0EzGMGFUQX4/AQRA==";
       };
     };
     "@types/randomstring-1.1.6" = {
@@ -208,7 +217,7 @@ let
       version = "1.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/randomstring/-/randomstring-1.1.6.tgz";
-        sha512 = "0fx5jypv2k0dqp2wh8li9g82pylxq9d0d2qsgn55a1dkyvd8lsw31ih0n44sb9ippmiad7j21qrnq8md4bn0754j8pcb3giqhh1j4jx";
+        sha512 = "XRIZIMTxjcUukqQcYBdpFWGbcRDyNBXrvTEtTYgFMIbBNUVt+9mCKsU+jUUDLeFO/RXopUgR5OLiBqbY18vSHQ==";
       };
     };
     "@types/range-parser-1.2.3" = {
@@ -217,16 +226,16 @@ let
       version = "1.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz";
-        sha512 = "0w59kqlbrl9ich2pv2xqanzmg9f51404zqsba9l8aimqd77zbrdxcyq9q13xfnhr0d1dz4mx6z7n976ryc2nk2gfch5p507njm5f0bv";
+        sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==";
       };
     };
-    "@types/request-2.48.4" = {
+    "@types/request-2.48.5" = {
       name = "_at_types_slash_request";
       packageName = "@types/request";
-      version = "2.48.4";
+      version = "2.48.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/request/-/request-2.48.4.tgz";
-        sha512 = "21mnsvbrykpzp1f1rd2ibk3nsgr8kyqikk5rdmq4qlkpf10gnpxp414hnvnbwjp27l5hvpc5l0fx0qhw20h7zi143qw6iwq68qpansv";
+        url = "https://registry.npmjs.org/@types/request/-/request-2.48.5.tgz";
+        sha512 = "/LO7xRVnL3DxJ1WkPGDQrp4VTV1reX9RkC85mJ+Qzykj2Bdw+mG15aAfDahc76HtknjzE16SX/Yddn6MxVbmGQ==";
       };
     };
     "@types/request-promise-native-1.0.17" = {
@@ -235,7 +244,7 @@ let
       version = "1.0.17";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/request-promise-native/-/request-promise-native-1.0.17.tgz";
-        sha512 = "2m1kxdl06xbzf2zq8qx0kvwm6wjsxpxipyzzix8g7pvbnsi454zar84inrfm1bd5kyh1n2hj8q6ljv705r7816633nhifz6cv8xv7yk";
+        sha512 = "05/d0WbmuwjtGMYEdHIBZ0tqMJJQ2AD9LG2F6rKNBGX1SSFR27XveajH//2N/XYtual8T9Axwl+4v7oBtPUZqg==";
       };
     };
     "@types/retry-0.12.0" = {
@@ -244,16 +253,16 @@ let
       version = "0.12.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz";
-        sha512 = "2y01s1x2dh20ms4h4ih8j4rz6c66k40nj7kfl8z5bv1s77vqv4jq0ycai1gi0irx0m9y7jqcz140ica6273vrqmcvf2r2nkah58wqn1";
+        sha512 = "wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==";
       };
     };
-    "@types/serve-static-1.13.3" = {
+    "@types/serve-static-1.13.4" = {
       name = "_at_types_slash_serve-static";
       packageName = "@types/serve-static";
-      version = "1.13.3";
+      version = "1.13.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz";
-        sha512 = "39fm32fi9qpb1bz4q399y9rzv02ywml2m1qmclyr1ckrmy4vdn8nv5f9986ckn19yapxif0ljs0gc717xd7dmssjnh37qrxkp1d56m2";
+        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.4.tgz";
+        sha512 = "jTDt0o/YbpNwZbQmE/+2e+lfjJEJJR0I3OFaKQKPWkASkCoW3i6fsUnqudSMcNAfbtmADGu8f4MV4q+GqULmug==";
       };
     };
     "@types/tough-cookie-4.0.0" = {
@@ -262,25 +271,25 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.0.tgz";
-        sha512 = "3lf0afkwkxmp6a7g8ghfbm5zjaxy2i1hqirzcr2iycxzvwwihdldbkfwgyxrc6b8b40sqfmvl5g2k6v6mdmpq5m6gs81nvn12g6rpr3";
+        sha512 = "I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A==";
       };
     };
-    "@types/uuid-7.0.3" = {
+    "@types/uuid-7.0.4" = {
       name = "_at_types_slash_uuid";
       packageName = "@types/uuid";
-      version = "7.0.3";
+      version = "7.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/uuid/-/uuid-7.0.3.tgz";
-        sha512 = "0xq5zlv2b74hz2yna42yd0j6p1xr1mx681x9phwl3njd8by5i82n15zc03srpkjzmhb3r12llhhwfk3k941wjw8f36q8dbbjm6nlirx";
+        url = "https://registry.npmjs.org/@types/uuid/-/uuid-7.0.4.tgz";
+        sha512 = "WGZCqBZZ0mXN2RxvLHL6/7RCu+OWs28jgQMP04LWfpyJlQUMTR6YU9CNJAKDgbw+EV/u687INXuLUc7FuML/4g==";
       };
     };
-    "@types/ws-5.1.2" = {
+    "@types/ws-7.2.5" = {
       name = "_at_types_slash_ws";
       packageName = "@types/ws";
-      version = "5.1.2";
+      version = "7.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/ws/-/ws-5.1.2.tgz";
-        sha512 = "0x1hv5p5js6n69q53qgw3qly7d1ipwz0cqfd2kr8g79kx8rm4bqak7azjwgagzm1b96xrqaydfkaw9rqr3536jd7ikpfxfqli8dfi1n";
+        url = "https://registry.npmjs.org/@types/ws/-/ws-7.2.5.tgz";
+        sha512 = "4UEih9BI1nBKii385G9id1oFrSkLcClbwtDfcYj8HJLQqZVAtb/42vXVrYvRWCcufNF/a+rZD3MxNwghA7UmCg==";
       };
     };
     "@types/yargs-13.0.9" = {
@@ -289,7 +298,7 @@ let
       version = "13.0.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.9.tgz";
-        sha512 = "3758l5yl7cqv06qqaljs8hac31hwp4kz1nycsm1lj20dha116ylwx9kyd2dzpp8bml82ydl5r1ih31qxp9bmxc1hq1h6yyrh1ky3fy6";
+        sha512 = "xrvhZ4DZewMDhoH1utLtOAwYQy60eYFoXeje30TzM3VOvQlBwQaEpKFq5m34k1wOw2AKIi2pwtiAjdmhvlBUzg==";
       };
     };
     "@types/yargs-parser-13.1.0" = {
@@ -298,7 +307,7 @@ let
       version = "13.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.1.0.tgz";
-        sha512 = "0mdq44p4sr9zvkcmaaa0jgyz34qirza6kl4qcln5ir9h0lg63kr9ndclj6p8gpf3mir7kv3rlr7pzkkjhhgkj96l9rsrs0r2my9naw0";
+        sha512 = "gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==";
       };
     };
     "Slackdown-git://github.com/Half-Shot/slackdown#efd8934a3d9c3bf0064c0b217c5cf6b62ee697e4" = {
@@ -311,13 +320,22 @@ let
         sha256 = "474e972819b3e1db3af70be75966a3d501c6b9285f4550ff5548193e031eaf9b";
       };
     };
+    "a-sync-waterfall-1.0.1" = {
+      name = "a-sync-waterfall";
+      packageName = "a-sync-waterfall";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz";
+        sha512 = "RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==";
+      };
+    };
     "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 = "38s4f3id97wsb0rg9nm9zvxyq0nvwrmrpa5dzvrkp36mf5ibs98b4z6lvsbrwzzs0sbcank6c7gpp06vcwp9acfhp41rzlhi3ybsxwy";
+        sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
       };
     };
     "accepts-1.3.7" = {
@@ -326,7 +344,7 @@ let
       version = "1.3.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
-        sha512 = "2j51dxzbgz22q0k7dhivimfsqx9a0f0h9slfd7n20gz3y1944gx3y7xai54za0x3zhbar6vqiaab2i9p913cwqk414qk3cnrm138pr2";
+        sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
       };
     };
     "ajv-6.12.2" = {
@@ -335,7 +353,7 @@ let
       version = "6.12.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz";
-        sha512 = "18zdchlpq20znwglnbc54yvqpr9m7q96qp9zvys27is5c0vxfn5fk8nmwhpnplbxyka88xqqabad0427mbgz7y7mz6azrp6723pxrck";
+        sha512 = "k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==";
       };
     };
     "another-json-0.2.0" = {
@@ -353,7 +371,7 @@ let
       version = "3.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz";
-        sha512 = "2gpv8bq9jq550ygnnm5srza0w0lfg8mr8z39702l0rgxhf35sxmdzxpppvwcp50rpk0dgjz516nbkygm0fk4675kb9qsgb5x35cfh9c";
+        sha512 = "LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==";
       };
     };
     "ansi-regex-3.0.0" = {
@@ -371,7 +389,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
-        sha512 = "1v2gfp292kslpvam0l0h1iba35yi0n7dc6qv6fmxsdyfcp6zakkl13vrh3hzsw4zgh50jrrsg7xb2q2hn4g8a0dmf947mfcylymxanm";
+        sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
       };
     };
     "ansi-styles-3.2.1" = {
@@ -380,7 +398,7 @@ let
       version = "3.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz";
-        sha512 = "2lgkskkj4c1fsnrksy0yffda0wss84p8lfiazdc7jli7iqnvrxkzbxjzpvx13lm28qw0zkawfxvz2bdiisc72ccy7hx8i8rm4iijgam";
+        sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
       };
     };
     "anymatch-3.1.1" = {
@@ -389,7 +407,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz";
-        sha512 = "2776jrfn8kh9r6qhz6s43znnwvqmbqrjsch99hdv21j53sj4njyjhrya67drxk8y7hvi28mjvdjj277jy4qd2zfayrjli3cdbdkkkwq";
+        sha512 = "mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==";
       };
     };
     "arg-4.1.3" = {
@@ -398,7 +416,7 @@ let
       version = "4.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz";
-        sha512 = "2y8gq3qabgg6wbnvzwm79j1ncabh960rrr2qxq657mv4zsynr92l46mpfgpvk7hq416dpvqi66sy617bzgll3wcxmv7rlc6790bvi77";
+        sha512 = "58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==";
       };
     };
     "argparse-1.0.10" = {
@@ -407,7 +425,7 @@ let
       version = "1.0.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
-        sha512 = "17fhywmdjcp8g0ys089i5xg26yajkkg9zg8hyry3fghz75b2pq5vdx997dk5p2sc15r9nsj8rmf4f27g81hi92kzj5q86sdmg5ni553";
+        sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
       };
     };
     "array-flatten-1.1.1" = {
@@ -428,13 +446,22 @@ let
         sha1 = "5fcc373920775723cfd64d65c64bef53bf9eba6d";
       };
     };
+    "asap-2.0.6" = {
+      name = "asap";
+      packageName = "asap";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz";
+        sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
+      };
+    };
     "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 = "1v2z1ll0l8rif8hh0d03jc49kz3p8hym63q8ixbas48w4a8akl413hwn08nx83m89sj3mxl06aa0grp7n8hj6hcbsb2k3fhj913674g";
+        sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
       };
     };
     "assert-options-0.6.2" = {
@@ -443,7 +470,7 @@ let
       version = "0.6.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/assert-options/-/assert-options-0.6.2.tgz";
-        sha512 = "09k5n3gb7n70yrif6qql3da1jbby6nc5g2h4lp6wbqcj14x71nyms3rgvwngl6jc1wrrw3jykiln04dr0cjs9k67i0d39jpizkm5zr8";
+        sha512 = "KP9S549XptFAPGYmLRnIjQBL4/Ry8Jx5YNLQZ/l+eejqbTidBMnw4uZSAsUrzBq/lgyqDYqxcTF7cOxZb9gyEw==";
       };
     };
     "assert-plus-1.0.0" = {
@@ -461,7 +488,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz";
-        sha512 = "07swiwljqy13fyil4y9lp319zcqsgdkchaic1y4dlfi3flh5l4qlwv497g40bnspsl9h857a3ig5assmvjdwv913dppgymkvcsil2wf";
+        sha512 = "jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==";
       };
     };
     "async-0.2.10" = {
@@ -473,13 +500,13 @@ let
         sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
       };
     };
-    "async-2.6.3" = {
+    "async-3.2.0" = {
       name = "async";
       packageName = "async";
-      version = "2.6.3";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-2.6.3.tgz";
-        sha512 = "1g679kw2qqpqx1yd4s778r8rw3cv9qwmib5x3klk64kcl5ndw71bljcpav5jkk6grizlpvrqszsbs6fkmnlvcq5fnz2q33mrnb6zyfd";
+        url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz";
+        sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==";
       };
     };
     "async-limiter-1.0.1" = {
@@ -488,7 +515,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz";
-        sha512 = "0sy81yyf4na58ic2m0ib0prkb9njb1qzl7wf3vlq4hhm4xnwgxaph0lr43gs1sd0rai2xp1h6phlwvni9jiggm94dd54i0wc1cabhvj";
+        sha512 = "csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==";
       };
     };
     "asynckit-0.4.0" = {
@@ -509,13 +536,13 @@ let
         sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
       };
     };
-    "aws4-1.9.1" = {
+    "aws4-1.10.0" = {
       name = "aws4";
       packageName = "aws4";
-      version = "1.9.1";
+      version = "1.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz";
-        sha512 = "2x4b6c0ny64yv6ljfs6sv82akh200klmnh1m1i18hdj28ksxkr9c0szphnwcasy3g5y3l1wn858wcxnc2gi9q5wql8s678fc61xbhf0";
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz";
+        sha512 = "3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==";
       };
     };
     "axios-0.19.2" = {
@@ -524,7 +551,7 @@ let
       version = "0.19.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz";
-        sha512 = "0fa6ngb4rkbyp5r4ccjgs2ykdbz8i2hcr41av59jicgq6mfva739kcd6n5dqzj3hsx7d4qi201g93li3qddn14bz9qvh76irgj2cf3y";
+        sha512 = "fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==";
       };
     };
     "babel-runtime-6.26.0" = {
@@ -551,7 +578,7 @@ let
       version = "3.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz";
-        sha512 = "0j1z1n32mik68bxyihzyn0fik2lfw6msi9h22hnrdqz1x9dbsql1xyz7590vkpp54d8apf92cvnp1qzf4cqcy2fmv8zq9zqcc0zaps6";
+        sha512 = "Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==";
       };
     };
     "basic-auth-2.0.1" = {
@@ -560,7 +587,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz";
-        sha512 = "1x9j0wn0a3ia9mwgvicd30w346wzxj86zk9sly5wp07a2mpjm1sk4hk9iwrbcc8z6c72bkhvck6zrxbvcb6p8bbjhald78xw6k9wprl";
+        sha512 = "NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==";
       };
     };
     "bcrypt-pbkdf-1.0.2" = {
@@ -578,7 +605,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz";
-        sha512 = "2izzpdg2m0av5pzbv1zyjfi15ddz5yk1d4h9cilzc8z6pzq5abcicnm2xx4b2jdrjk2l4h3zfawsxhnbzlgvlv4700q5930k796s69y";
+        sha512 = "Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==";
       };
     };
     "binary-search-tree-0.2.5" = {
@@ -614,7 +641,7 @@ let
       version = "3.5.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz";
-        sha512 = "3gqgjzrc40ykm2hcmh2g98d09h8wh19n5psqc5b7k03aysyymfnvlak115vfi4s02ygnky872sfhdl1r077wcnyrsmyndyzg4gbmag5";
+        sha512 = "5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==";
       };
     };
     "body-parser-1.19.0" = {
@@ -623,7 +650,7 @@ let
       version = "1.19.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz";
-        sha512 = "2rl5ww96fwgmxdqhqmnknsaafw44vsr2xz7vf7nax8qz9jy8bmmdyawcy6yfny0wm7pi8m2jssakzjc1nin8z8207kv0gclpnrhy4bn";
+        sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
       };
     };
     "brace-expansion-1.1.11" = {
@@ -632,7 +659,7 @@ let
       version = "1.1.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
-        sha512 = "248cnpbbf0p32h53rd3g8wzpgrkaj4p078ra1g6l16f82i6bzkvmhwqan5rk88apbll9ly1476kngd7f7z27i3b3zxpbb3064f8yaw8";
+        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
       };
     };
     "braces-3.0.2" = {
@@ -641,7 +668,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz";
-        sha512 = "38dmhgggv4r7xf3chli957yj4gzfv9xhif8zzaqjnxavkrs1qbmj9m84vxh42n1jl9sddy16ryp4g93l1p8dvrc1pbcvk2ippwadjvg";
+        sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
       };
     };
     "browser-request-0.3.3" = {
@@ -659,7 +686,7 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz";
-        sha512 = "21jjhrf3wdmzsfqgva5s7shs1wdmcdxsjvi75p8z7i0q2i6n3654gpxjqlhbnpmzm25cpkshyi8swy13017qkp9m7xnbgw0bwiia45a";
+        sha512 = "qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==";
       };
     };
     "bs58-4.0.1" = {
@@ -677,7 +704,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz";
-        sha512 = "3c0m16i3fdv3vlq2zz8dakrnhqvs16gvggj485f91fiaa5v0p7pyhamcdw5fggr7djzd8nshmvz4hgbp7714smqxlld2an28q8if1ri";
+        sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==";
       };
     };
     "buffer-writer-2.0.0" = {
@@ -686,7 +713,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz";
-        sha512 = "21laqrygizzy6ccv03l1af9pq07ligp755ybgfzln99lh62xnn5sxhw6qlw717g9dym9pa2cg0k9mz5r1nkb0hckxnk9mal6swnkdkb";
+        sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==";
       };
     };
     "builtin-modules-1.1.1" = {
@@ -704,7 +731,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz";
-        sha512 = "073ccjmvxf726gcgzy0pksvi8x8r51dq6hyv69sc75ynrin7anwk9q3sqhbbbjhqjjrmq42s5f5gdbcgj2jxai6ldpyq6y2ny78payd";
+        sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
       };
     };
     "camelcase-5.3.1" = {
@@ -713,7 +740,7 @@ let
       version = "5.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
-        sha512 = "0kg17fpj4c7akmpa9x0a3fi5glrc3y5k3ppjcpb3pd02ylg3fnzfdvz0pixd223crbs5980sjaxsk9q8kcqxm5d9cb7rlkv3m614vrg";
+        sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
       };
     };
     "caseless-0.12.0" = {
@@ -731,7 +758,7 @@ let
       version = "4.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz";
-        sha512 = "27pdhh35fbig9yxb0h8qp98cjapnpdxjnia2jc1hrhrda9ajab2hkpclrfd8b568ggrv2wrgi09bh0rf1vndc1b82nb74kf21p3f1ax";
+        sha512 = "XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==";
       };
     };
     "chalk-2.4.2" = {
@@ -740,7 +767,7 @@ let
       version = "2.4.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
-        sha512 = "2wr55z22i274wadq2cvpxga28a8igq9whc4m1q06sz5sn2hc4amradd5vd02wm92vyfg2qrb0bysd5drv7mfmlb2wqdf939v5zvxn1j";
+        sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
       };
     };
     "check-error-1.0.2" = {
@@ -758,7 +785,16 @@ let
       version = "3.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz";
-        sha512 = "3hbyi14x38mvx936wbajln4g1l8fcyi8fwvcrhf2jqn0yzcyda1d20q67k445j9bvs5kr7jdhd2s07srb2pnm7hxmjngp2k6wn8lsbl";
+        sha512 = "dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==";
+      };
+    };
+    "chokidar-3.4.0" = {
+      name = "chokidar";
+      packageName = "chokidar";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz";
+        sha512 = "aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==";
       };
     };
     "cliui-5.0.0" = {
@@ -767,7 +803,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz";
-        sha512 = "1fg1afsij2xwc4gpqbyhrp3s7q19w7bmii0ghmdv6cdx6giz3v0yqn25i3g7fw2lpi388jpvaf6nf9z2c7xp7w7psrww7569548d1rx";
+        sha512 = "PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==";
       };
     };
     "color-3.0.0" = {
@@ -776,7 +812,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/color/-/color-3.0.0.tgz";
-        sha512 = "3xh3l9zhh6dav7pp5hy88kbb6c52j0pf331ywpp6w2jaf94w25fjn4am930775mskxy75cxl90fji17cym40ivslxxlpcrlxgkmsalc";
+        sha512 = "jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==";
       };
     };
     "color-convert-1.9.3" = {
@@ -785,7 +821,7 @@ let
       version = "1.9.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz";
-        sha512 = "0d5pmdh1dh0qbpjrzdczwqkh0jwf8gxhq71mknwlxqz80h1q6kdrpghq4qfp0y4v650ia2jdihmzpb2n8hg00h72lnx05dgvysi9w21";
+        sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
       };
     };
     "color-name-1.1.3" = {
@@ -803,16 +839,7 @@ let
       version = "1.5.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz";
-        sha512 = "11p4cihq5874fmyvwkh0fp4dr2syliqsgg610rw46lsav41l6wcm4bgpkrl34gip3cqncw0ppmqwfknm5v02m1fj8qqk8cnlzk84bbl";
-      };
-    };
-    "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";
+        sha512 = "dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==";
       };
     };
     "colors-1.4.0" = {
@@ -821,7 +848,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz";
-        sha512 = "2saczc8hcdmgns1cp1g1p7g2sq4yksrik0ffvfkhkavmmgx8haqm034a4c9zj8im6kfjh00n2xi360yqfy7vbsi98zri0943r72mrbb";
+        sha512 = "a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==";
       };
     };
     "colorspace-1.1.2" = {
@@ -830,7 +857,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz";
-        sha512 = "36j3cgfzngcjms1c0yfn487ibflffmb6hxgrknxbyrxrflc4kybm2r8a0mc1v8ljj7rbb7cjd54v2bimqb6rw0q5sqvwxznhfh8xpxy";
+        sha512 = "vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==";
       };
     };
     "combined-stream-1.0.8" = {
@@ -839,7 +866,7 @@ let
       version = "1.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
-        sha512 = "1v09nkip7zpn3k3prkkg53w331rhczpfgcqb0q42i97nafra43l2khl5zvhd4ar0qmh145nmw7944jy8p108ny0xpgy29gf2wqph0qm";
+        sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
       };
     };
     "commander-2.20.3" = {
@@ -848,7 +875,16 @@ let
       version = "2.20.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz";
-        sha512 = "1qqrwy7z476gqa94kjjyyzyi3x49k28ji7znbc65plrp67yzmpa2yyslh6bl965yl4jqb2fwb2ljzhgcvv2xxj8ab86n5rgryc6958s";
+        sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==";
+      };
+    };
+    "commander-3.0.2" = {
+      name = "commander";
+      packageName = "commander";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz";
+        sha512 = "Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==";
       };
     };
     "concat-map-0.0.1" = {
@@ -866,7 +902,7 @@ let
       version = "0.5.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz";
-        sha512 = "3976ggkw1lp21a6m3s19blb9a74kq7a0spw47v0m3vvi1k5wiamrsn20slcr9byx80x2la2sppkwjp7x10gc58142dl7412pvpv84qk";
+        sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==";
       };
     };
     "content-type-1.0.4" = {
@@ -875,7 +911,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
-        sha512 = "1f4y61wc913jrnga7nny83gzf9l2488q6sl1ry9lbwgh5x5d3va0xcc0xrmjk6gdxl6d4r6rsk800xp5bazhjrx05yx1wpc8c8gg0w4";
+        sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
       };
     };
     "cookie-0.4.0" = {
@@ -884,7 +920,7 @@ let
       version = "0.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz";
-        sha512 = "1g7bscknfpc6zgznz77hvll6cy5m9jv7zg9nkpdqzmgi0vhv75kh8iyqf6rdslkml47l3jihsz7hy0i8x5n6bfx9ba0kvvrp9y7qypq";
+        sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==";
       };
     };
     "cookie-signature-1.0.6" = {
@@ -902,7 +938,7 @@ let
       version = "2.6.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz";
-        sha512 = "1db6yjq48a8kkrfrxd0miblcf7nk2b4afgpr8dfgjl3jvz3xclvrqmz590hx2h59jh79lgl35r101lw5jqs46qybizdbpgzljjyf277";
+        sha512 = "5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -938,7 +974,7 @@ let
       version = "2.6.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
-        sha512 = "0q0fsr8bk1m83z0am0h2xn09vyfcf18adscxms8hclznwks1aihsisd96h8npx0idq5wwnypnqrkyk25m5d9zh3dk7rjs29nybc8bkc";
+        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
       };
     };
     "debug-3.1.0" = {
@@ -947,7 +983,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz";
-        sha512 = "3g1hqsahr1ks2kpvdxrwzr57fj90nnr0hvwwrw8yyyzcv3i11sym8zwibxx67bl1mln0acddrzpkkdjjxnc6n2cm9fazmgzzsl1fzrr";
+        sha512 = "OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==";
       };
     };
     "debug-3.2.6" = {
@@ -956,7 +992,7 @@ let
       version = "3.2.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
-        sha512 = "1cyv14044rfh792n1hhsa44kk8dk95zk14w96i49gwq6g9wi6h9vn90xaragfy7rvggqvj178l5f16c78g47xgrwhjx3bp7zs6pxscr";
+        sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==";
       };
     };
     "decamelize-1.2.0" = {
@@ -974,7 +1010,7 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz";
-        sha512 = "1rrbk0h0a836gj1x6lalzgqfs0v34d4fswq23c8lxzmb6k7pna45zd509h1r1fr312n4qml94xqlmzzga40sfa9vnzf6rkr4d1qh1zr";
+        sha512 = "+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==";
       };
     };
     "define-properties-1.1.3" = {
@@ -983,7 +1019,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz";
-        sha512 = "1fsa8nx7qgi958fykj36cndsf8ygj3132if6k4a36mkf11bl2j2gn7dn2nz07mfsygkx0415yxrjpzx8j369z1767fvr57nm1h9zjnw";
+        sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==";
       };
     };
     "delayed-stream-1.0.0" = {
@@ -1010,7 +1046,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz";
-        sha512 = "2phijq20j255bs4jjs11j5pa0x7y1084k6ch9xa8wgzp71zzgbpm23wyzbcs0mszvj971l9i5aav40sddm000484sl3ij4xzvlcgfc3";
+        sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==";
       };
     };
     "destroy-1.0.4" = {
@@ -1022,22 +1058,13 @@ 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 = "0liin689xf3v7wxk1z5l1par3dyjkg487nk3siqn6b7zqxw2rd93rgw88ifsqwhv66s8d7qjxy8fjv4gxfgiwd69ryv573fcwzga2gk";
-      };
-    };
     "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 = "32bkv3cfhax4x5zhiyfn63wjhqwkzsjiql3my8p3d9hvv020p8f9hdi7mpqixrkpgs0g9k15mn736s449yad9wq1plhxyhxb2sam3h3";
+        sha512 = "A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==";
       };
     };
     "diff-4.0.2" = {
@@ -1046,7 +1073,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz";
-        sha512 = "3ndiq7a8qsn2j6vlq5c6d38ynlydlhvk6q01rj321lcarrh0z7721w6cbrdw7lkx6pyfms59y1jkqcl6g2ir1rz5xr17q40lk26djg7";
+        sha512 = "58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==";
       };
     };
     "ecc-jsbn-0.1.2" = {
@@ -1073,16 +1100,16 @@ let
       version = "7.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
-        sha512 = "2s4i22ccvwa2l4xwl9yz6mkyn2kpf58hp1nqiwmmgqlpyr57345i3ll0l4656ryik6a6wz1lgk4vbl6y0dwj5hx2kcbpv0h8924n00b";
+        sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
       };
     };
-    "enabled-1.0.2" = {
+    "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" = {
@@ -1094,22 +1121,13 @@ let
         sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
       };
     };
-    "env-variable-0.0.6" = {
-      name = "env-variable";
-      packageName = "env-variable";
-      version = "0.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz";
-        sha512 = "2v5v2dckp87kblfsmmyn76ky74yj2cvrv6kw1i7wlcidk2r7gnyhfil6i4zmw2qscgbsviv85x4840k7qgrkv8p6ssd8vj1v7sgjz3c";
-      };
-    };
-    "es-abstract-1.17.5" = {
+    "es-abstract-1.17.6" = {
       name = "es-abstract";
       packageName = "es-abstract";
-      version = "1.17.5";
+      version = "1.17.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz";
-        sha512 = "2kayciqh331d3kp1l8wdsp33kzdc02rv72z6x2327w2i6yks9b7xwxbg1xdrrkhaglr06liqzdjavq9qk9d487sf572rjfv62xml7q5";
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz";
+        sha512 = "Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==";
       };
     };
     "es-to-primitive-1.2.1" = {
@@ -1118,7 +1136,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
-        sha512 = "2y6j97j2f10gc52kw7qin10gm24m5hz1qq7ph6jf89y8a9i8vb268f2q0z78qjmngc765y9v0f1ldc5qb10b638yqlabda90sbaa8s0";
+        sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==";
       };
     };
     "escape-html-1.0.3" = {
@@ -1145,7 +1163,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz";
-        sha512 = "3xkdrhqvjj7430kp98pllh0yxbawxp4z1fnvbw5cawjr6mlbgyrd2v3b3kalrx3s515zc731a6ckmb10x9vaizf6sf4b5g84lndr72j";
+        sha512 = "UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==";
       };
     };
     "esprima-4.0.1" = {
@@ -1154,7 +1172,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
-        sha512 = "3h999di4dnwxb22lxlb7cbz42nalrv8g8sqdvrkkl5c27gnwhp1rva4039hmq6g1i0y4mfjgx6p4i2vwxxl0zlahfzdd9fl1qbqasvq";
+        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
       };
     };
     "etag-1.8.1" = {
@@ -1172,7 +1190,7 @@ let
       version = "3.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz";
-        sha512 = "3hv1mm8y1m0ayl0ds213ajdpc0xwalhi1iwvy2zdkg4kys5vdy97s8jz0sfvd91a3xwyy4946wmzk2lc1kpzww94pj307nmw8hm1yxn";
+        sha512 = "tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==";
       };
     };
     "eventemitter3-4.0.4" = {
@@ -1181,7 +1199,7 @@ let
       version = "4.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz";
-        sha512 = "2cj4h27lly85zb08gprjrkb92l8q8l1977704j7acj7rif052jiqap3l8d7zpdn9krqqi7if1f2cxp7f584045vr3l1pdviflp9ammf";
+        sha512 = "rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==";
       };
     };
     "express-4.17.1" = {
@@ -1190,7 +1208,7 @@ let
       version = "4.17.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz";
-        sha512 = "3i2sxjf2x1r9wbfdyh5ll8ybbnqq6n4xfxdlc4dsqhssljrlih18csqg142lf16lcfcdgsmvf9pff0rzxjw7p0shnlmpajipwxpswlq";
+        sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
       };
     };
     "extend-3.0.2" = {
@@ -1199,7 +1217,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
-        sha512 = "3zad2109w3q3gh46s5msrnzfy2nl581sqpy20b52fs7v5pdjh3irpg7szl3xvh4sfy63218jy8ry6qlnir3baxbbfrb03swkw5swfky";
+        sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
       };
     };
     "extsprintf-1.3.0" = {
@@ -1211,13 +1229,13 @@ let
         sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
       };
     };
-    "fast-deep-equal-3.1.1" = {
+    "fast-deep-equal-3.1.3" = {
       name = "fast-deep-equal";
       packageName = "fast-deep-equal";
-      version = "3.1.1";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
-        sha512 = "1j7wq3vqvfgnpd2sjblnlgryxlic2fsy343fx8w4ywb2mngj1w5afq8fmly8cp9fi66dhz1fhcfpn23g5zasnzs6n1snb83qkkilhgi";
+        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" = {
@@ -1226,7 +1244,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
-        sha512 = "0gz06zkjlqc4r59ka14n3vwqjdgn40zd8r115ql3rkwqb7j42frmnsj3axr7p2md8ik52nqjn3myyv8ddavdhl4cq3xz4wbbz07y5wn";
+        sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
       };
     };
     "fast-safe-stringify-2.0.7" = {
@@ -1235,7 +1253,7 @@ let
       version = "2.0.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz";
-        sha512 = "1ab0spv3wadhidsh9x8qar1ryn7ahv308yzc5cl32wssk99rr7vrkcs00vn2kggz6drps08vk24gi9gmqpg39jd1rnaryykvh4vmnaj";
+        sha512 = "Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==";
       };
     };
     "fecha-2.3.3" = {
@@ -1244,7 +1262,16 @@ let
       version = "2.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz";
-        sha512 = "1v95kkfm8jnmrsplzk6zhsc2ngkvv2478pnvjnkl8z104b0mx3khf7xdps3dyi8d94kb73xcr5b2dmh58by9sirwcj0qk56hsf82hcm";
+        sha512 = "lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==";
+      };
+    };
+    "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-stream-rotator-0.4.1" = {
@@ -1253,7 +1280,7 @@ let
       version = "0.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.4.1.tgz";
-        sha512 = "1jr6bdf22x3f4ql12ympal24yy1ggbxv5xl73ri70llghlcxr8wi9s8j40b5rf0h0sxm9m3g27qgck04aa5d7f9v19c0ws40bfrlxjv";
+        sha512 = "W3aa3QJEc8BS2MmdVpQiYLKHj3ijpto1gMDlsgCRSKfIUe6MwkcpODGPQ3vZfb0XvCeCqlu9CBQTN7oQri2TZQ==";
       };
     };
     "fill-range-7.0.1" = {
@@ -1262,7 +1289,7 @@ let
       version = "7.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz";
-        sha512 = "2jrai6ri6sni8xyi8yji49ai8vkczbbiw6pb3pd9bcdizb58ncgnhnfmghhw87flm8y96y2z16738lwdyshby665nv60ljcwwbkvsm8";
+        sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
       };
     };
     "finalhandler-1.1.2" = {
@@ -1271,7 +1298,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz";
-        sha512 = "1cfqk6g78cb12b1cki4pbcspsy40d0yny513myqji716njyhc5hrj7ll539kz96m6vn27168hhyqvd52cr5x1cs85mm7igfkrdrq1b8";
+        sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
       };
     };
     "find-up-3.0.0" = {
@@ -1280,7 +1307,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";
-        sha512 = "2bg49lifm64h5jqjc20612wrx7cazw9np9ms02ys94kif4li8cp5in4rvmb1c1ssa8yhbsqkgprykkj4lf3jbz8qrgp1mf8c93gl86p";
+        sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==";
       };
     };
     "finity-0.5.4" = {
@@ -1289,7 +1316,7 @@ let
       version = "0.5.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/finity/-/finity-0.5.4.tgz";
-        sha512 = "3420xkd0dmzdspn9mf3c8hkgfm081kahfnnn03y27ahkdf5bm8slndl5ahmypqs11gnl34s7bcmvxy5lqc41x065rxavhvfbgzvjpyy";
+        sha512 = "3l+5/1tuw616Lgb0QBimxfdd2TqaDGpfCBpfX6EqtFmqUV3FtQnVEX4Aa62DagYEqnsTIjZcTfbq9msDbXYgyA==";
       };
     };
     "flat-4.1.0" = {
@@ -1298,7 +1325,16 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz";
-        sha512 = "0bj2zrb5x98lffdcjsvaf2hns9ih2jzj4dz9yg9k8zqrak4x0i93dvf01qp458mr6d1x4dsqsxc3ag00g2mskrr23h7x71kna4d67rz";
+        sha512 = "Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==";
+      };
+    };
+    "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.5.10" = {
@@ -1307,7 +1343,7 @@ let
       version = "1.5.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz";
-        sha512 = "1alfnscb0lnmf1ka8d5jrp48bizkbqrdz616r7q9yv4afqadlli1xmmf7lsvany1kmmnmwpvhbgx70mvcsnjf1ywjnzmkmk53h6apni";
+        sha512 = "0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==";
       };
     };
     "forever-agent-0.6.1" = {
@@ -1325,7 +1361,7 @@ let
       version = "2.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz";
-        sha512 = "0jj3hgqp9pmxmfavx6rvdfl3r4yf98clpsarqadz3hq0dxhjlh2ppd9x8bvmaq3nwjdqpdvqx25pwyin4ipixhgsn7s3p9fcc3wllnn";
+        sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==";
       };
     };
     "form-data-2.5.1" = {
@@ -1334,7 +1370,7 @@ let
       version = "2.5.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz";
-        sha512 = "1aa6m5c13kybvcycjdyhr0qbb7097qs7kah89bbhynjs9r5fl6ibbhscpin31nshzhw5nszw5c6x10krrig90afh88la456cgflsvcv";
+        sha512 = "m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==";
       };
     };
     "forwarded-0.1.2" = {
@@ -1370,7 +1406,7 @@ let
       version = "2.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz";
-        sha512 = "2wj74g6h0wq34x3d4ncr7h3jkv1fdznmqpd4wdb1jfaz0icha7h65jq8sq6y6n3bc0i0z6w577z7hq4yiz8y7v5yid6ma9ih1mkvv02";
+        sha512 = "Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==";
       };
     };
     "function-bind-1.1.1" = {
@@ -1379,7 +1415,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
-        sha512 = "38chm1mh077ksx6hy2sssfz4q29hf0ncb9k6ila7si54zqcpl5fxd1rh6wi82blqp7jcspf4aynr7jqhbsg2yc9y42xpqqp6c1jz2n8";
+        sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
       };
     };
     "generate-function-2.3.1" = {
@@ -1388,7 +1424,7 @@ let
       version = "2.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz";
-        sha512 = "0lp1r8njdds2dp6nd5drc8f3xhg0bishvbn8g54s9ka42yss4lvq84sg465vgb2bw45kww8r4cilsw629nsnn34zkkfny8dyccpkq3r";
+        sha512 = "eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==";
       };
     };
     "generate-object-property-1.2.0" = {
@@ -1406,7 +1442,7 @@ let
       version = "2.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
-        sha512 = "0b7da6kb3xqk26cw4i6kb1lk911z06z53if2g8l23hmfpbhl6vfbn8iip55j1yplbqnly2abb9d349r6ky2z570839q3p9z2gf4y88g";
+        sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
       };
     };
     "get-func-name-2.0.0" = {
@@ -1433,7 +1469,7 @@ let
       version = "7.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz";
-        sha512 = "30h0j9f3xj7mwciwmi9q9ilhlc0l391jrvv0xws0yxgh389ynin3qqrw8xiyfy5w3f667bwn9p0i3f01s2ir0ai1rwbb038ij4fxixx";
+        sha512 = "vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==";
       };
     };
     "glob-parent-5.1.1" = {
@@ -1442,7 +1478,7 @@ let
       version = "5.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz";
-        sha512 = "1hi3ypyic536qm0jd2aw65wbaian4vxmgsnprw6p1mdfd75ks5x1mrgkgzl41xr6hnav27fqzpm227rj7qq8vcwb63m37m9cda3wwhn";
+        sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
       };
     };
     "growl-1.10.5" = {
@@ -1451,7 +1487,7 @@ let
       version = "1.10.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz";
-        sha512 = "146i7if4fjml1p6xw1ybb7vm22k6i8yc7r8wcw8yia7qy385w1s6j18ip91g5mv47zvv5fw5m8kpzlaayjs183fkpg174hbw4xgh6m8";
+        sha512 = "qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==";
       };
     };
     "har-schema-2.0.0" = {
@@ -1469,7 +1505,7 @@ let
       version = "5.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
-        sha512 = "3kaldgfsh3lfvgvw31s8b7q345zf7ixjahllncdckcw6qfs3gnbsamdxgs9kfigq7rwmja7v51ghh7y0rsp6q7jmvmbydhh645wxnxh";
+        sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==";
       };
     };
     "has-1.0.3" = {
@@ -1478,7 +1514,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
-        sha512 = "37vh53c11hws66navka0w9xxm6rcr034bxpyvaldiqz1msafqf0jpi1aqxbaygs53arz9y510qg6dl6vrm285hrxniygs2l8lxnyrvz";
+        sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
       };
     };
     "has-flag-3.0.0" = {
@@ -1496,7 +1532,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz";
-        sha512 = "0mb9d5yqvznqmq073hdc4wl7175niiqpkpb7iqqv8p0q6xgmrhfap9ni6iwrx44w8p9vyg8n3zsllil5pdflzlh462dkydymfi2rdrw";
+        sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==";
       };
     };
     "he-1.2.0" = {
@@ -1505,7 +1541,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz";
-        sha512 = "0dwml2q9r97ga11qbbn5sb46v4g47lx174dz9g1jgxpycknhg1d5dlsij2vja905p8h243jj51hfa5cmzh8n9rdcs8r78lg86fl7z8p";
+        sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
       };
     };
     "http-errors-1.7.2" = {
@@ -1514,7 +1550,7 @@ let
       version = "1.7.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz";
-        sha512 = "13c4825kzqlxdqfjrlrwh15ira0bjm9m3b8qcrfzaysiky1m3gb6dv6gcjgpnap9mbl0fajqiibzp1w5r8qnyn8glaj4wgzf6vh2i5r";
+        sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==";
       };
     };
     "http-signature-1.2.0" = {
@@ -1532,7 +1568,7 @@ let
       version = "0.4.24";
       src = fetchurl {
         url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
-        sha512 = "2n3ygx6km56rdcd5kq52bs2113xqm3vlw2kb9r7pnmxd2qhxrfahp2ngc4w7x8x76fyfpapnixnbjq1i24nc11mj6q7rghwj2fifwxz";
+        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
       };
     };
     "immediate-3.0.6" = {
@@ -1568,7 +1604,7 @@ let
       version = "1.9.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
-        sha512 = "3gcwhv1wa2hb1vljlcmzhvzliks9rj7nzsw165vgy69jakw8g55ky474mj4j41vfbid8viy9nhwn9kx8pfqrikyl29i98zi9vmkz8nh";
+        sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
       };
     };
     "is-arrayish-0.3.2" = {
@@ -1577,7 +1613,7 @@ let
       version = "0.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz";
-        sha512 = "1cmy0k81vgz5z55rdyxfnx307053ksyp1lfgyj5jldkqqzmkx1z2k63fvzn7lgj8wdakmsa1mw408rm5xxfpk3avjqbnrb5yl56lm3r";
+        sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==";
       };
     };
     "is-binary-path-2.1.0" = {
@@ -1586,7 +1622,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz";
-        sha512 = "1gldm4swvg3612pg55yjza8dvpv4daf374dijjg8kcmndlq55933pdd7gw4gq4c2aa5fn9vnasz3h9spg3pd8p1rafkr91sxdhi3hb4";
+        sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
       };
     };
     "is-buffer-2.0.4" = {
@@ -1595,16 +1631,16 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz";
-        sha512 = "3c1f1cy2867lfdcfxpy91qxbjxizlwa2dhz3mgckg17xd4xcx284ylzvfk3v7l6mdynrk7xc2rg31avi6caj053p7bgaf4p8ni6pb9a";
+        sha512 = "Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==";
       };
     };
-    "is-callable-1.1.5" = {
+    "is-callable-1.2.0" = {
       name = "is-callable";
       packageName = "is-callable";
-      version = "1.1.5";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz";
-        sha512 = "3wmff73yzck45x5shydqswbww8zkl03i43yhy7mm6av9770yvd2gj7xfrc8f45fw2ncn7mwblxvxlcap5rngmklkjiis902qgkay8hi";
+        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz";
+        sha512 = "pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==";
       };
     };
     "is-date-object-1.0.2" = {
@@ -1613,7 +1649,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz";
-        sha512 = "39f971gzwirnxjw4b72c175nbn1hnmrn1wljvbzvxv69hw9vpialhjafh9nkh0g3p26a49zss3rr7pxfww1f6day4s89hmqkm7l6aai";
+        sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==";
       };
     };
     "is-extglob-2.1.1" = {
@@ -1640,7 +1676,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
-        sha512 = "19c23n8r8rfbz5rgs5csbjbpwgxvwi7y6kpsvlylgs2v1r1z2zm18qzzz2g8vnnwaldn5c4qalpc6p88rl0gjrrm278j52ks0m2svg4";
+        sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
       };
     };
     "is-my-ip-valid-1.0.0" = {
@@ -1649,7 +1685,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz";
-        sha512 = "1lnwwykigbkg3yqmr61cyiplxfdvpchcsi1fz67jwn55gvdrl597jpsd6jds205gjkn8c3zxbqmppmf3danpj0rrla7ffnicmwpys42";
+        sha512 = "gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==";
       };
     };
     "is-my-json-valid-2.20.0" = {
@@ -1658,7 +1694,7 @@ let
       version = "2.20.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz";
-        sha512 = "005dmrjrjkysq1ggcr34y7610cxy29gjkx91cv6lxl4gzk6hm9qmdqbbsx5qbcfd9b5vck824wgzk4pg5qfvq4mn44dpi0849jw2cax";
+        sha512 = "XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==";
       };
     };
     "is-number-7.0.0" = {
@@ -1667,7 +1703,7 @@ let
       version = "7.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz";
-        sha512 = "2g7332xqrb0cm36cn6rwdmgq7sllf9w19sf6jy4w0s4vgqdq1kngsnpz0z49i3vnknk8ms442yjllrdbqxbap9ajprc8yrs91za4l73";
+        sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
       };
     };
     "is-property-1.0.2" = {
@@ -1679,13 +1715,13 @@ let
         sha1 = "57fe1c4e48474edd65b09911f26b1cd4095dda84";
       };
     };
-    "is-regex-1.0.5" = {
+    "is-regex-1.1.0" = {
       name = "is-regex";
       packageName = "is-regex";
-      version = "1.0.5";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz";
-        sha512 = "1hqaalcf1yqll2yzm71a1axvid0x87jp41hyicw16rl12rrh6sp6srr9lk7wxm6a1vl3ypw8qyd0imbq8fl2h7yq8l8xawdnkbrclmy";
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz";
+        sha512 = "iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==";
       };
     };
     "is-stream-1.1.0" = {
@@ -1697,13 +1733,22 @@ let
         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-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 = "1lmzzy2360gfg5639x8mzi5fpc1bgpdx0ffjlqaz9affd0lvvpi7yjwk15jsm1y1l8rf5jahyapv6rm2w3p86gxkghsp0jjlj2s621v";
+        sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==";
       };
     };
     "is-typedarray-1.0.0" = {
@@ -1748,7 +1793,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
-        sha512 = "0lwyvximqkf1q5w94x2747nj2v035is66vzalrbl3f2gdh9k1m3m29p8zw6r65ps5784x2lxwz8akmv085l4ai358rwbp84axz59lj5";
+        sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
       };
     };
     "js-yaml-3.13.1" = {
@@ -1757,7 +1802,16 @@ let
       version = "3.13.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz";
-        sha512 = "0kkjjrr0znm2ka89ywc5518c8dw0210z91fm94c7v11l8c96mkjh0ddld5mb7jmmnpzap7vn0fhvr29lma63c9is2ixq3fpp0xxrxk1";
+        sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==";
+      };
+    };
+    "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==";
       };
     };
     "jsbn-0.1.1" = {
@@ -1784,7 +1838,7 @@ let
       version = "0.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
-        sha512 = "1bbgxs4777gn3q3yxi0n792cgz9pimf85pypr0w4wzpb22nr8fl9xi98pkcqd3n4fn7lnzffpq7qwpcl4dqc15py19lwqa2jwgw5dn5";
+        sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
       };
     };
     "json-stringify-safe-5.0.1" = {
@@ -1814,13 +1868,13 @@ 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 = "20zvfs0bqxvpjlp6kx2fhafnldxfv36dqcac42qng3x9kh25vqy4w6910fs63p5d56yjghbrn36niix6wsyi9dbj3n9zmh6wx9dbn97";
+        url = "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz";
+        sha512 = "Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==";
       };
     };
     "lie-3.1.1" = {
@@ -1832,13 +1886,13 @@ let
         sha1 = "9a436b2cc7746ca59de7a41fa469b3efb76bd87e";
       };
     };
-    "localforage-1.7.3" = {
+    "localforage-1.7.4" = {
       name = "localforage";
       packageName = "localforage";
-      version = "1.7.3";
+      version = "1.7.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/localforage/-/localforage-1.7.3.tgz";
-        sha512 = "20hynm98vq3srgz2h48290n0x06drf8avxm73rnqhkh036v5s5x2kk3phm2551p0zy3bh9hp5cjr6f0mwyhb4j0xi9fgqnwhz4safym";
+        url = "https://registry.npmjs.org/localforage/-/localforage-1.7.4.tgz";
+        sha512 = "3EmVZatmNVeCo/t6Te7P06h2alGwbq8wXlSkcSXMvDE2/edPmsVqTPlzGnZaqwZZDBs6v+kxWpqjVsqsNJT8jA==";
       };
     };
     "locate-path-3.0.0" = {
@@ -1847,7 +1901,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";
-        sha512 = "3jbllbkvv54d6k6zss6spzsknz5icscyfclf377jjpndb8mmacq0v9vjr1w07zjn14gaz4d2hfi0yaqk4nvg6hbm16qi70nrkivn0zc";
+        sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==";
       };
     };
     "lodash-4.17.15" = {
@@ -1856,7 +1910,7 @@ let
       version = "4.17.15";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz";
-        sha512 = "3a41cs1932x00vd7h32v6rfkaak3vhkwv4x0bg27ilhlmbpl95r3abc4vja21k42cdfprsy3sdfcp2xs02sfp1fflf7m3n2gd29q4zk";
+        sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==";
       };
     };
     "lodash.toarray-4.4.0" = {
@@ -1874,7 +1928,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz";
-        sha512 = "2fmk82kxm1wkgm5kgxx84nsf7pvyspj47axslj3sfcyx69hx1vymrgbqj00jfnmrjc80wb87xs3kyfa37k55wzhgvk6v21vw8d0sabm";
+        sha512 = "dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==";
       };
     };
     "logform-1.10.0" = {
@@ -1883,16 +1937,16 @@ let
       version = "1.10.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz";
-        sha512 = "1d27lbbzad8mj23z63lca3z7y2mjwnzdcrj2zpvcdid78ds12jyc349g1yc0naxbqrl3cz2cw9lprhgwryxygzc634cgmsli266hvks";
+        sha512 = "em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg==";
       };
     };
-    "logform-2.1.2" = {
+    "logform-2.2.0" = {
       name = "logform";
       packageName = "logform";
-      version = "2.1.2";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz";
-        sha512 = "36z0bhkyb62pjrzaff6vpig94lzbaah80iq2hpy4pb49lkhxfawjlx9j8mw168wv33mb7i3lgl2xm2q82x0rc1qm95k0i24xbh62mps";
+        url = "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz";
+        sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==";
       };
     };
     "loglevel-1.6.8" = {
@@ -1901,7 +1955,7 @@ let
       version = "1.6.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz";
-        sha512 = "044sm3k7yyjzkbvzw2fgqqxdbd7z7gwqsi4sz03kb9cagpnr4jn2gfsxkfrdn4m1gnxd7n0rjbrvxymzr6w3wcwma99s01x0zx3pibf";
+        sha512 = "bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==";
       };
     };
     "make-error-1.3.6" = {
@@ -1910,7 +1964,7 @@ let
       version = "1.3.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz";
-        sha512 = "2glh9fqac2bycfy6gmvv1r03pr484iglvv5ry3pjm6iz43h6qnkkw2l4sz9ydyadq6hip4wyjpj9jllbshxchh8k6lg5g5vsya23idk";
+        sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==";
       };
     };
     "matrix-appservice-0.4.1" = {
@@ -1919,7 +1973,7 @@ let
       version = "0.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/matrix-appservice/-/matrix-appservice-0.4.1.tgz";
-        sha512 = "0l9avxiihfhkrlwsibbl641ic15lc4gbfzs8zgrsssnlifzmbaz547yng8862rg65rp77gdyw427hci4jz7ssz1x3lxzg6ff3syn4cv";
+        sha512 = "mxHr9XDOvN/p6OFrfb4kkcEjCPftnXNzMS8Lg9Cz/pDy1arfRWq11vl9pL9bjzBaAouBGLpW1JzmCR2MsW+VKA==";
       };
     };
     "matrix-appservice-bridge-1.12.2" = {
@@ -1928,7 +1982,7 @@ let
       version = "1.12.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/matrix-appservice-bridge/-/matrix-appservice-bridge-1.12.2.tgz";
-        sha512 = "1avi6wrbnajmrf8il54w8zzb9ghvyqm8b09k2l2x009ixhrb1sj8k5yw5qnx03p640llnfsv2qch492vncwij40qxkh9q72qbagfq3h";
+        sha512 = "cGD31MLi4ARnx4DIyJndIhHIsNjaWUoBMXeAbnHhvkwkdVgZ9pgA6IKKmcBCFfsNX1r/I04KjcjlKpVdmZu4VQ==";
       };
     };
     "matrix-js-sdk-2.4.6" = {
@@ -1937,7 +1991,7 @@ let
       version = "2.4.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-2.4.6.tgz";
-        sha512 = "110nkrnw1667nkd00z3j6bgsl3pyvx2al4iffipy7phz88b3c7l6n2r1agd1qqxvyk7ay75ir4ycw9kr7zlxjcy9kd5hq00dkhkmmf9";
+        sha512 = "ydU64WwAYFjaTJ7JTv/JM3HmSY7leHWm3x3j0J4KWVhDDxsLoQ/v8Tc6FwlVom9/B9VvGTk+AG3aY0zgNk8LQg==";
       };
     };
     "media-typer-0.3.0" = {
@@ -1973,7 +2027,7 @@ let
       version = "1.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz";
-        sha512 = "1x901mk5cdib4xp27v4ivwwr7mhy64r4rk953bzivi5p9lf2bhw88ra2rhkd254xkdx2d3q30zkq239vc4yx4pfsj4hpys8rbr6fif7";
+        sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
       };
     };
     "mime-db-1.44.0" = {
@@ -1982,7 +2036,7 @@ let
       version = "1.44.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz";
-        sha512 = "2k6dwvka8mhl2jrx9zhc926nvifn7jpi4fcwjr3gdqik53ifzn67h986p9wcdd4qpc3hjmqpywdwssm5kw18bdn3xg1ag7cp9y97lzw";
+        sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
       };
     };
     "mime-types-2.1.27" = {
@@ -1991,7 +2045,7 @@ let
       version = "2.1.27";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
-        sha512 = "3pyj0i5wygq13w5i5i2ksjwrragi0p1dybqd5lvcd0gx21jxx1i1r567dbxklh9p50pwhaxwq9d4507hymr49ibz61xq8xc4sf6m214";
+        sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
       };
     };
     "minimatch-3.0.4" = {
@@ -2000,7 +2054,7 @@ let
       version = "3.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
-        sha512 = "1879a3j85h92ypvb7lpv1dqpcxl49rqnbgs5la18zmj1yqhwl60c2m74254wbr5pp3znckqpkg9dvjyrz6hfz8b9vag5a3j910db4f8";
+        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
       };
     };
     "minimist-1.2.5" = {
@@ -2009,7 +2063,7 @@ let
       version = "1.2.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
-        sha512 = "0pif0kjsr0cdm73cyicn9xdx9zkly45w4akmyfa39lkaf6lzysfr8kr145p54wjk26pbsk0w0qfdds3k4bxy4wl5l210i1b8qsngkql";
+        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
       };
     };
     "mkdirp-0.5.5" = {
@@ -2018,25 +2072,25 @@ let
       version = "0.5.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz";
-        sha512 = "32zxwnp110xb9sm0w7xdr51v2zj4k0b07yq702phnac2l8c91mxw6va27y193m42nvnw5dhby2jzg3b24fzjzkdr8337slz8ja81a9l";
+        sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
       };
     };
-    "mocha-7.1.2" = {
+    "mocha-7.2.0" = {
       name = "mocha";
       packageName = "mocha";
-      version = "7.1.2";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mocha/-/mocha-7.1.2.tgz";
-        sha512 = "0j821z4q3x7gz52pwp0ccpwmrw4k67x07njcpbnzgiij7dnmbwvsnkbg7h7ylyhhlk9xhccbn9hr12vx9vqw6sdy728sa4c29ss9pm3";
+        url = "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz";
+        sha512 = "O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==";
       };
     };
-    "moment-2.25.3" = {
+    "moment-2.27.0" = {
       name = "moment";
       packageName = "moment";
-      version = "2.25.3";
+      version = "2.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/moment/-/moment-2.25.3.tgz";
-        sha512 = "1v4vcj4k5s10qp4b8r46xib1h9klyqv5y31da7w46i769dbgliqp7ff5yd6pxmfp37ghnlgkk33x10ashkg7aclszfgqrpiy782zriy";
+        url = "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz";
+        sha512 = "al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==";
       };
     };
     "morgan-1.10.0" = {
@@ -2045,7 +2099,7 @@ let
       version = "1.10.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz";
-        sha512 = "1fzbmlpmyqjjnff6sjxk5h2ffib2ldzziy9x5k6200az86l7z9gqag28s6brw9yg2q7w0yjp69ir0p5qc5kfq7djy21xciqa82s1dq1";
+        sha512 = "AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==";
       };
     };
     "ms-2.0.0" = {
@@ -2063,7 +2117,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
-        sha512 = "352z145jr1zx0w6kmlz2jxcaw6j2pwwg9va3x4gk731zw1agka2b213avw12zx6hgn071ibm0f3p80n5cdv896npay4s6jwbrv7w2mn";
+        sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
       };
     };
     "ms-2.1.2" = {
@@ -2072,7 +2126,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
-        sha512 = "3dqfiiw6nxvvi24fndbzlccnjcas99bsd1kz5m2r78lzgpp6vx57jzbmxq3k1m7bsw88rwra0n4848l720fxxn5x20djck3wp3hysdh";
+        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
       };
     };
     "nedb-1.8.0" = {
@@ -2090,7 +2144,7 @@ let
       version = "0.6.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
-        sha512 = "0xi79rad0khwah5v2k6pvh8ajjgi7hp3zlkg6gk11pv70ydcq7li0kzcv1gnaf13gmblzhvx7hxs2nhypphb0sp4cggiy4ympndr5c5";
+        sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
       };
     };
     "node-emoji-1.10.0" = {
@@ -2099,7 +2153,7 @@ let
       version = "1.10.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz";
-        sha512 = "2zkcpjx5cbyc76hfkbldxgkkcs4cns9n7fqfnc2cxh3fsw1dr7zgbhh5pczvg34yclih7ja68xpvvrg2dy8hiv5c20pxr0zhbrzgpb2";
+        sha512 = "Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==";
       };
     };
     "node-environment-flags-1.0.6" = {
@@ -2108,7 +2162,7 @@ let
       version = "1.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz";
-        sha512 = "0gis4xp1wacn31j3p8vdd32ykzs2pskf8pgfjkm092zcx72v03dphpsayrls8bmmi91s6ic4718lgi28mm40hj96f9ywbvfxbcz4jz4";
+        sha512 = "5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==";
       };
     };
     "nopt-3.0.6" = {
@@ -2126,7 +2180,16 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz";
-        sha512 = "0n301s7qa4645iyk3zpcgin8r19p0p8h8g50c3mnnrl9n3m9rpyxv79hjl6miix9daq12s69am1sbskhqnzbabmn2id0nippgj6rrp9";
+        sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
+      };
+    };
+    "nunjucks-3.2.1" = {
+      name = "nunjucks";
+      packageName = "nunjucks";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.1.tgz";
+        sha512 = "LYlVuC1ZNSalQQkLNNPvcgPt2M9FTY9bs39mTCuFXtqh7jWbYzhDlmz2M6onPiXEhdZo+b9anRhc+uBGuJZ2bQ==";
       };
     };
     "oauth-sign-0.9.0" = {
@@ -2135,7 +2198,7 @@ let
       version = "0.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
-        sha512 = "1jz644r7ybsq688ifahm64ih3ljqjjskm533bgir20pvc350f9cl0z162scih0r1idx8lpw5f8hxa2pkf0lhbdhr5y6ak2ga5863v3x";
+        sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
       };
     };
     "object-hash-1.3.1" = {
@@ -2144,16 +2207,16 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz";
-        sha512 = "06crm6ynp4rxakk4frrb4kjmi758r38fs5h0f6b7giyxhj0dghb6mdx7sbp0nhnk2w8cyb1bli07d9nbm086i34j8yx641qjpzawarr";
+        sha512 = "OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==";
       };
     };
-    "object-inspect-1.7.0" = {
+    "object-inspect-1.8.0" = {
       name = "object-inspect";
       packageName = "object-inspect";
-      version = "1.7.0";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz";
-        sha512 = "19lmsxagwl8zzqckw6p0bdjwjbq2bshicnw78az9ka40d0gjghmdm0ify1n3857fxadv43c6v0g27rk1dl514iwh40a5i3mv0fl9fkb";
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz";
+        sha512 = "jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==";
       };
     };
     "object-keys-1.1.1" = {
@@ -2162,7 +2225,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz";
-        sha512 = "0nf2rr25ncya39v7cq274x3w4drfbdrc3iqdwd017s1wndwh9plsjagbvhl6j6l6piipprdsvgfx4vfz8q2piz7bi4bjcll8d4h9q1n";
+        sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
       };
     };
     "object.assign-4.1.0" = {
@@ -2171,7 +2234,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz";
-        sha512 = "3krdp08gvbxvipalq64qy7bm86znxxdb7ap6bjki235qs17i9fsn6hqd22ga31sqyqa6iyy5xjfnnqc7lsck1kaybwsh154mrxcj4bv";
+        sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==";
       };
     };
     "object.getownpropertydescriptors-2.1.0" = {
@@ -2180,7 +2243,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz";
-        sha512 = "1b08dy2xs3gqhwviks5245b0m3fa6kkdcqi8wldr5cfvkpgwbvdx474k9y5cjnsf2z075gysifxsc39i59fslxrl55kgpa03xmcx7b7";
+        sha512 = "Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==";
       };
     };
     "on-finished-2.3.0" = {
@@ -2198,7 +2261,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz";
-        sha512 = "2n6994y8y4b146a5wpzzgw779yc227cqkmwsifc3fbn2kc9dzypjigqf72bpgsqrk7gs93l6fk4iqdk752jnsnpr89j58sbabw09455";
+        sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==";
       };
     };
     "once-1.4.0" = {
@@ -2210,13 +2273,13 @@ 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==";
       };
     };
     "p-cancelable-1.1.0" = {
@@ -2225,7 +2288,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz";
-        sha512 = "2bmkd9ncr81p8w6jy9v676ajg9q27znbjk80r723ydvf8gxk000q13693dhbd22dcagrmhwyjxblmm8w4xnfn6ng5srpkkqwv2dggdk";
+        sha512 = "s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==";
       };
     };
     "p-finally-1.0.0" = {
@@ -2243,7 +2306,7 @@ let
       version = "2.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
-        sha512 = "3mmng2h8sji2ah2j3f5gf0c26j2cmfwwqwck4kbpm8srxllwa8q1fd8jayhrk4f46g6zmw14lrzd4jc04079w1cqhjiy9wjanc3rzzz";
+        sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
       };
     };
     "p-locate-3.0.0" = {
@@ -2252,7 +2315,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";
-        sha512 = "14sa2r3zdhvy3sq757d4l21nxrlb7picyigb8zm956bbjadcv22chrfa95wzzrf28z0cyj62b6yihhdc9508q82gs2q3yz8yk1pdvf7";
+        sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==";
       };
     };
     "p-queue-2.4.2" = {
@@ -2261,7 +2324,7 @@ let
       version = "2.4.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-queue/-/p-queue-2.4.2.tgz";
-        sha512 = "2gg2x51sw9m0zkdwnjpl5qldvapn19wkyf8zam8gzh2s77xnxcbxvvdhdhadavg4dcp6h1v68ni19kdbci1kd875pl1ih6943xz5kwz";
+        sha512 = "n8/y+yDJwBjoLQe1GSJbbaYQLTI7QHNZI2+rpmCDbe++WLf9HC3gf6iqj5yfPAV71W4UF3ql5W1+UBPXoXTxng==";
       };
     };
     "p-queue-6.4.0" = {
@@ -2270,7 +2333,7 @@ let
       version = "6.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-queue/-/p-queue-6.4.0.tgz";
-        sha512 = "13h8pdq8v2smhrh39bf4ks1z8cdik8qcv2df1wj3bxgs3k090sxccxxg9q1qjj120lvs1ki6cj9rc9aapqdyb95zk8v5ych333mvdsz";
+        sha512 = "X7ddxxiQ+bLR/CUt3/BVKrGcJDNxBr0pEEFKHHB6vTPWNUhgDv36GpIH18RmGM3YGPpBT+JWGjDDqsVGuF0ERw==";
       };
     };
     "p-retry-4.2.0" = {
@@ -2279,7 +2342,7 @@ let
       version = "4.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-retry/-/p-retry-4.2.0.tgz";
-        sha512 = "2cdd5shqcldjwsdr9wiccvsx1f27mx7lblp872mlm16kwamgy83swzwq5w9hlr98qwbzswldxp4jq9q9l0d6am752vnx1qiygrzgwcc";
+        sha512 = "jPH38/MRh263KKcq0wBNOGFJbm+U6784RilTmHjB/HM9kH9V8WlCpVUcdOmip9cjXOh6MxZ5yk1z2SjDUJfWmA==";
       };
     };
     "p-timeout-3.2.0" = {
@@ -2288,7 +2351,7 @@ let
       version = "3.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz";
-        sha512 = "03cbpzps5mxhlp6hywp92mnnrj4b6ag82f8vdqyz59xrxsrpn58qbh8nzrpiix2asj2d333i81aq0pw9bhki4yw7yf05hr04x9k04mf";
+        sha512 = "rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==";
       };
     };
     "p-try-2.2.0" = {
@@ -2297,7 +2360,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
-        sha512 = "1skmb50xzdk3qzd1f9l5mw8xp29frkizl63bhb9l1amivqybqb23n2824906vx790hjlwyhhrfzpzr5xr6ilzvy1xyl0ly0ah0wz2a7";
+        sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
       };
     };
     "packet-reader-1.0.0" = {
@@ -2306,7 +2369,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz";
-        sha512 = "1fkk6mw49b8mqs4rghv7bwpyvgj3qkcj4qz8zkrwcw0xcwg7q0cdd1w17i962ppxl3d6rss2a03ws5b7ihz20207g2r27mpy7ysw0hw";
+        sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==";
       };
     };
     "parseurl-1.3.3" = {
@@ -2315,7 +2378,7 @@ let
       version = "1.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
-        sha512 = "2lzxqjq4zp60k9gbskpqz7pr1yvb0c6nygd42sia7n6km2gc0cc844nlc5d6r9sshrjhjvs284143jzvz9wzd4r6xr9dz2k24xrwb0a";
+        sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
       };
     };
     "path-exists-3.0.0" = {
@@ -2342,7 +2405,7 @@ let
       version = "1.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
-        sha512 = "37qw5986wccpwwqckqky509s4nd6zwv200s9r2v6mcf5nsyxgf2x00m4yp918mkkz84sdh4q0kjbg0hhfq4flpz0l6v47hvc57qwa8r";
+        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
       };
     };
     "path-to-regexp-0.1.7" = {
@@ -2372,22 +2435,22 @@ let
         sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
       };
     };
-    "pg-8.1.0" = {
+    "pg-8.2.1" = {
       name = "pg";
       packageName = "pg";
-      version = "8.1.0";
+      version = "8.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg/-/pg-8.1.0.tgz";
-        sha512 = "19rxgl1nvww0s9csajl3j2q04j6gw6wnlbnpq4z7scayycs7721rfga1qmgmlaxkvh3fap43qqrirsxh6wj2q31fgnkqq66si49g7r6";
+        url = "https://registry.npmjs.org/pg/-/pg-8.2.1.tgz";
+        sha512 = "DKzffhpkWRr9jx7vKxA+ur79KG+SKw+PdjMb1IRhMiKI9zqYUGczwFprqy+5Veh/DCcFs1Y6V8lRLN5I1DlleQ==";
       };
     };
-    "pg-connection-string-2.2.2" = {
+    "pg-connection-string-2.2.3" = {
       name = "pg-connection-string";
       packageName = "pg-connection-string";
-      version = "2.2.2";
+      version = "2.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.2.2.tgz";
-        sha512 = "2masbrlwl4dan6y1qp1scs1y7j4qblmvdf006wslc1kj90zh2ipcqwqlmaqad1wr7dnlap7s6hybrcbn85r884w16ir0jdf67haa5zs";
+        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.2.3.tgz";
+        sha512 = "I/KCSQGmOrZx6sMHXkOs2MjddrYcqpza3Dtsy0AjIgBr/bZiPJRK9WhABXN1Uy1UDazRbi9gZEzO2sAhL5EqiQ==";
       };
     };
     "pg-int8-1.0.1" = {
@@ -2396,43 +2459,43 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz";
-        sha512 = "2kr12hlmhrlca9f6gb14rvq93rn1z4ydmgv0ll7vak0nl5xxggq27y17346c3wj5afw3imsbvpaqcwjymb55hchj89czpdd5rnmlasq";
+        sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==";
       };
     };
-    "pg-minify-1.6.0" = {
+    "pg-minify-1.6.1" = {
       name = "pg-minify";
       packageName = "pg-minify";
-      version = "1.6.0";
+      version = "1.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.0.tgz";
-        sha512 = "3v9hxw7f1r7k4lz9lkz7757anv76xclkafdk534yxfmd3qbnikn5f5f3rcfdvlkvlsg5vh8b69lyahbs9x27bpyg9bmzfj73yx5v375";
+        url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.1.tgz";
+        sha512 = "ujanxJJB9CSDUvlAOshtjdKAywOPR2vY0a7D+vvgk5rbrYcthZA7TjpN+Z+UwZsz/G/bUexYDT6huE33vYVN0g==";
       };
     };
-    "pg-pool-3.2.0" = {
+    "pg-pool-3.2.1" = {
       name = "pg-pool";
       packageName = "pg-pool";
-      version = "3.2.0";
+      version = "3.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.0.tgz";
-        sha512 = "20fvxybgsq315qj83xcgnii0aysl8pzr23flwzpndidax4zy48bp0f13zj32dls45jrw68m62w71c9w16vn9rnv2diz2z64s06g04pc";
+        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.1.tgz";
+        sha512 = "BQDPWUeKenVrMMDN9opfns/kZo4lxmSWhIqo+cSAF7+lfi9ZclQbr9vfnlNaPr8wYF3UYjm5X0yPAhbcgqNOdA==";
       };
     };
-    "pg-promise-10.5.5" = {
+    "pg-promise-10.5.7" = {
       name = "pg-promise";
       packageName = "pg-promise";
-      version = "10.5.5";
+      version = "10.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.5.5.tgz";
-        sha512 = "3s3cyq162gdkgmdbc14skqwa4pyjx9cyia2148l9mlwfz2kqwfppmakzjp02q3z3bxjvlah51rlxdi5438r1fafqbsc1f3pngjs1k8i";
+        url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.5.7.tgz";
+        sha512 = "feCpn4J4MsNnR5Ve3fpbIlmbohwRirvZEI1Dcy72zwKvIKKRHPk7TJZFQHP4YQhaZ3sT3VGgg0o1/I+uhht/1g==";
       };
     };
-    "pg-protocol-1.2.2" = {
+    "pg-protocol-1.2.4" = {
       name = "pg-protocol";
       packageName = "pg-protocol";
-      version = "1.2.2";
+      version = "1.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.2.2.tgz";
-        sha512 = "2m49phqnmaig70q5a3ny43y8r5ks1sm3w1xrcfhwwchyrpdpgwnxmj3vhgw0i0rg49wwgwg1zj5c99rs2gi989riq6cgpd4fg24dj5g";
+        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.2.4.tgz";
+        sha512 = "/8L/G+vW/VhWjTGXpGh8XVkXOFx1ZDY+Yuz//Ab8CfjInzFkreI+fDG3WjCeSra7fIZwAFxzbGptNbm8xSXenw==";
       };
     };
     "pg-types-2.2.0" = {
@@ -2441,7 +2504,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz";
-        sha512 = "0c38xh9gvx9z3lxphm8y090qzm5rj4n7a9a80ls7dsf772ygk52w4v1pbn8il48wrrhgsqdshhhrxqff2pn641178wcp5rcn6b00c59";
+        sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==";
       };
     };
     "pgpass-1.0.2" = {
@@ -2459,7 +2522,7 @@ let
       version = "2.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz";
-        sha512 = "1d2xjd4r28xk5ggmns7n33nvga0ywk30plvs17dr70qwq0jc17p8kmfsm50idvj6xdrj1fikz0yv63x1pychmz90bs6mkj7wvskyhxb";
+        sha512 = "q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==";
       };
     };
     "postgres-array-2.0.0" = {
@@ -2468,7 +2531,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz";
-        sha512 = "2wdj5g97ilfpmjbpn3cmzhfysw77z8x3hqxvlmcknxm6488jpxvjshdqmd8m59ydhznadxcq1wlnfynh2877di58dgay0rrlm96p5jn";
+        sha512 = "VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==";
       };
     };
     "postgres-bytea-1.0.0" = {
@@ -2486,7 +2549,7 @@ let
       version = "1.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.5.tgz";
-        sha512 = "24bvdwh2jsv4xbp64ansgpqi55db9xbdv4clyh3aajxvx1lc4wm5mw8aqkf5f144szp2ram50ziy49bqqcr0c24c501f4agcklaxmm5";
+        sha512 = "pdau6GRPERdAYUQwkBnGKxEfPyhVZXG/JiS44iZWiNdSOWE09N2lUgN6yshuq6fVSon4Pm0VMXd1srUUkLe9iA==";
       };
     };
     "postgres-interval-1.2.0" = {
@@ -2495,7 +2558,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz";
-        sha512 = "1jy8mn5fadqlhqhznmyr55ghlzi2k9bxvvbyqbzb8rzzw101gbphlz18jyd533qqhkqf9wdyj3wc68vvdhvjbss6xs7xhzbrwl5g67m";
+        sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==";
       };
     };
     "process-nextick-args-2.0.1" = {
@@ -2504,7 +2567,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
-        sha512 = "1mgan8li4i2l4y7lsr7snks85n6xg5x693cqmzpid3fkk9br7v5xzgvh1zlfs08zkxn6s0n6qhykr64mszjfyxd77dhmdi1jhx992yy";
+        sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
       };
     };
     "prom-client-11.5.3" = {
@@ -2513,7 +2576,7 @@ let
       version = "11.5.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/prom-client/-/prom-client-11.5.3.tgz";
-        sha512 = "3hnz5ii2bvrrh14qkfcnxkjsxwfrcasfr34masbkwg1n4c41yvv1ir5k9ylmc806izl1xcjzyhidsb3qp832x7vva5lrdnvchbbcgcb";
+        sha512 = "iz22FmTbtkyL2vt0MdDFY+kWof+S9UB/NACxSn2aJcewtw+EERsen0urSkZ2WrHseNdydsvcxCTAnPcSMZZv4Q==";
       };
     };
     "proxy-addr-2.0.6" = {
@@ -2522,7 +2585,7 @@ let
       version = "2.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
-        sha512 = "0xy6dm0910h3nsa0ik45yccdfm6f84nl3h9dpkb22crqhdr3mmiczcbrq9z53gq7l2ijxhxi3pzsfzafrzymw4c1nn68ml1y2pdy7vn";
+        sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
       };
     };
     "psl-1.8.0" = {
@@ -2531,7 +2594,7 @@ let
       version = "1.8.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
-        sha512 = "0hn7s5bxnn3k2hiqh8fmm7bvq4vd6j0a5hwj09jk31r1ylv6q28g5hl3z70m3gycwfb40vdp04fqi59hdjih3jz0fhszg0s5b7lx1s4";
+        sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
       };
     };
     "punycode-2.1.1" = {
@@ -2540,7 +2603,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
-        sha512 = "381vqgh5xkqzrr6cxbzfykgnnk83m7qgpx3wjwj1hddn3sg2aibjxyr30rajpgv4js0cqknrbzwbfk5ryhiiyigzfjrk3zysy6i26sx";
+        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
       };
     };
     "qs-6.5.2" = {
@@ -2549,7 +2612,7 @@ let
       version = "6.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
-        sha512 = "0c46ws0x9g3mmkgfmvd78bzvnmv2b8ryg4ah6jvyyqgjv9v994z7xdyvsc4vg9sf98gg7phvy3q1ahgaj5fy3dwzf2rki6bixgl15ip";
+        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
       };
     };
     "qs-6.7.0" = {
@@ -2558,16 +2621,16 @@ let
       version = "6.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz";
-        sha512 = "34x6fm4dnq8m0kps5ann831k8fvx7jzlrcw8vvri0ki2g2ywdrjr8j5y14bvj9c0fd01ndsyx43y6ji51bfhnxk2gr5fpsks52429sl";
+        sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
       };
     };
-    "quick-lru-5.1.0" = {
+    "quick-lru-5.1.1" = {
       name = "quick-lru";
       packageName = "quick-lru";
-      version = "5.1.0";
+      version = "5.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.0.tgz";
-        sha512 = "00p370py6dg4v3n92n6ma2a1pn9sa2j1dq1hah5935s1fghs4x3l4aqx149i2d2ix18rgk2rmrcdkd9sqjmxj985sizmklisd1hlc2s";
+        url = "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz";
+        sha512 = "WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==";
       };
     };
     "randomstring-1.1.5" = {
@@ -2585,7 +2648,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
-        sha512 = "15b00vag4wijzsp0lwi9jznpz16n858vq5p1p3dgjrqqil9c6d4x55s1nl1fi4cbq8307bylbvkd9qkhyk6qib8ksh8raibxb3jrf0y";
+        sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
       };
     };
     "raw-body-2.4.0" = {
@@ -2594,7 +2657,7 @@ let
       version = "2.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz";
-        sha512 = "3flyhj96ayiy8is22lwh9sp1yqq9ksym43x22yri2ikzladqqzxj6z657bc0xb5f2wl7qr2ja4byf57c9f7l2d3wqdglxih886zrv70";
+        sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
       };
     };
     "readable-stream-2.3.7" = {
@@ -2603,7 +2666,7 @@ let
       version = "2.3.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
-        sha512 = "0zrh6gjjzwwycwydra51xcrgjgzyqv6dq38bfpwzmlqn702mwb4nj4sjjn499rycqndfk6rby0dksnq72x8pcbvqv0b2893mvq6if0i";
+        sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
       };
     };
     "readable-stream-3.6.0" = {
@@ -2612,7 +2675,7 @@ let
       version = "3.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
-        sha512 = "1s8hs6ax9jwmmw558j3hyfx5lfn7qf66xg0giplz9jci7d8zp2d8vh96dzlis6xzpxfa5b2zbm8nm4mgsr71r6rl3w3qyfanb5qfn05";
+        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
       };
     };
     "readdirp-3.2.0" = {
@@ -2621,7 +2684,16 @@ let
       version = "3.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz";
-        sha512 = "0chzz12q3inpmwm6b4gi7g9n39jp24ah3mmjgss87hfsbx86vnxf49bx9wk2ng66037x2fh0cjf5rgx00c1m86lqlh7r6g9xm13ifbj";
+        sha512 = "crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==";
+      };
+    };
+    "readdirp-3.4.0" = {
+      name = "readdirp";
+      packageName = "readdirp";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz";
+        sha512 = "0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==";
       };
     };
     "regenerator-runtime-0.11.1" = {
@@ -2630,7 +2702,7 @@ let
       version = "0.11.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
-        sha512 = "03d4l8l8cyywh93wf5vw84lq56jh1b1d7jll4ny4z060j9hvx7w5q3q0b8q227jm93749k1c9h86r2pz0bm2xq5vp14g3r2kbvqc2rj";
+        sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==";
       };
     };
     "request-2.88.2" = {
@@ -2639,7 +2711,7 @@ let
       version = "2.88.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz";
-        sha512 = "23hm71jcxrwvp33azx8mx3w6dg21fr4w6lwvkvxyf6ckvhk3hz9dk8lzgkbiyzfl9ylhp4n807xp88ppq4gj5h07cmrgxf6nwxfvjrj";
+        sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==";
       };
     };
     "request-promise-core-1.1.3" = {
@@ -2648,7 +2720,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz";
-        sha512 = "00riv5nw32j70g67b1ll1h599bvdbnkgasnwl1m26pfdgdmgr6zaq500mprx5n77yrnhza27vs3c9icb4z5h6wnwmlha6f81bw3d2s0";
+        sha512 = "QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==";
       };
     };
     "request-promise-native-1.0.8" = {
@@ -2657,7 +2729,7 @@ let
       version = "1.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz";
-        sha512 = "0qx1n06bjj430fidkma2dr90dmrixiza4ymk561v1xxpd5yp7r36lwirgsdn0nvra7s4xs9gs1xhd6fxvlps6q1wh5xq7m4d8n71akm";
+        sha512 = "dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==";
       };
     };
     "require-directory-2.1.1" = {
@@ -2675,7 +2747,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";
-        sha512 = "2d0gd2x49nz3hgfwms6326sjw5fx7gqf997dnggc7l084cibgang6wr6ryksky32fvdz1bq72xm73kfxd3lj2qnfyjsp57jq287k8rl";
+        sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
       };
     };
     "resolve-1.17.0" = {
@@ -2684,7 +2756,7 @@ let
       version = "1.17.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz";
-        sha512 = "3byf4g1wqfhz5vqx4rbssknblmf4hbjxijmlzvnr7z2l54yr1m4lk14bly6kk6mkdhncfzvvikzk449liiia1ilrfv5iwcmi0jvpkw9";
+        sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
       };
     };
     "retry-0.12.0" = {
@@ -2702,7 +2774,7 @@ let
       version = "5.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
-        sha512 = "3xbm0dkya4bc3zwfwpdzbl8ngq0aai5ihlp2v3s39y7162c7wyvv9izj3g8hv6dy6vm2lq48lmfzygk0kxwbjb6xic7k4a329j99p8r";
+        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
       };
     };
     "safe-buffer-5.2.1" = {
@@ -2711,7 +2783,7 @@ let
       version = "5.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
-        sha512 = "1fq5yb2drm5x0pvp2ansqp7p3lq7q9p9z1pfhqfjgqs0ycq9zpnid55m5gx8ani9cwmjjcmn7nnn8j1f6iq3bxi56kdjwfa9six57df";
+        sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
       };
     };
     "safer-buffer-2.1.2" = {
@@ -2720,7 +2792,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha512 = "2v99f22kh56y72d3s8wrgdvf5n10ry40dh3fwnsxr4d5rfvxdfxfmc3qyqkscnj4f8799jy9bpg6cm21x2d811dr9ib83wjrlmkg6k1";
+        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
       };
     };
     "semver-4.3.2" = {
@@ -2738,7 +2810,7 @@ let
       version = "5.7.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
-        sha512 = "0cl68vp0ymkjpvim4s24v3awyk37d1bfbqrqv4ybwfi8yxga3d8fma2d6bh8dd4i2dsfwca324vaxm5dms61kdlmihdarfgzw6rmaxi";
+        sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
       };
     };
     "semver-6.3.0" = {
@@ -2747,7 +2819,7 @@ let
       version = "6.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz";
-        sha512 = "17wg4dv63jhss5hwqd135zz67r5c30b7a1xz33kfa7knxr0wfypyb8mj2xmc3l71qkxrz569n89xwp5d77m7adn0sr5wzfjlh2m6zvg";
+        sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
       };
     };
     "send-0.17.1" = {
@@ -2756,7 +2828,7 @@ let
       version = "0.17.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
-        sha512 = "016qgvxg1si6vn34p7piyc8mhvmav1zscm294wkcjf221y1l9zk5kwk5z6yn1ixspj12df25bpazb2h3fdclcf59xqc2h4w46r4mi86";
+        sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
       };
     };
     "serve-static-1.14.1" = {
@@ -2765,7 +2837,7 @@ let
       version = "1.14.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
-        sha512 = "0551vv6s1vgk5krzdn9cwnybsv6g4cyqpkk1dlkyv1pd8n7m8r7pi12r16bw12dzwl6ghj4qwizjsxc8vl26lv9c61fkq9r059yzji4";
+        sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
       };
     };
     "set-blocking-2.0.0" = {
@@ -2783,7 +2855,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
-        sha512 = "01qxzb0a6jrcxa6qh776v04ihqrmcy3qfbp9drfsjhfcsmaqd21mppr3ndj970ixfh6bpm8ai45jyqyzjfjw26pcyd82y6pyrcl1xr6";
+        sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
       };
     };
     "simple-swizzle-0.2.2" = {
@@ -2801,7 +2873,7 @@ let
       version = "0.6.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
-        sha512 = "3p7hw8p69ikj5mwapmqkacsjnbvdfk5ylyamjg9x5izkl717xvzj0vk3fnmx1n4pf54h5rs7r8ig5kk4jv4ycqqj0hv75cnx6k1lf2j";
+        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
       };
     };
     "source-map-support-0.5.19" = {
@@ -2810,7 +2882,7 @@ let
       version = "0.5.19";
       src = fetchurl {
         url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz";
-        sha512 = "0dsfcfq64jhz0vidzqf94hmh4vlzhfid0z2wnr5fdv2lkpv7dvcqbya7fpha9cwqlpkc8w2if8z9aixdkcglh87370rq8426gpyd2as";
+        sha512 = "Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==";
       };
     };
     "spex-3.0.1" = {
@@ -2819,7 +2891,7 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/spex/-/spex-3.0.1.tgz";
-        sha512 = "06c3i67lmyilbk851pqd0iy8vcd78y81p3mkbqzfcl69pmxx8n8qbjc3fpy8w3j70xsyi1hwl4761pfj93vb9ik3m7na1np99jrdf56";
+        sha512 = "priWZUrXBmVPHTOmtUeS7gZzCOUwRK87OHJw5K8bTC6MLOq93mQocx+vWccNyKPT2EY+goZvKGguGn2lx8TBDA==";
       };
     };
     "split-1.0.1" = {
@@ -2828,7 +2900,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/split/-/split-1.0.1.tgz";
-        sha512 = "2916kdi862ik0dlvr2wf2kvzmw8i8wk5spbr9wpdcksrkhrl3m0082jj1q4mqzvv50mlah5s4vcy6k18nacbj09kxbzp2pbysh8wg4r";
+        sha512 = "mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==";
       };
     };
     "sprintf-js-1.0.3" = {
@@ -2846,7 +2918,7 @@ let
       version = "1.16.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
-        sha512 = "0i4jnrxh6i17qij2vfki7qxmk435cnacvg363qg0hya5incfj57akgbas8zcx2cl5pds9jfgfyhqm8wlqz6damsg059gymv99aylx8x";
+        sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==";
       };
     };
     "stack-trace-0.0.10" = {
@@ -2882,7 +2954,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
-        sha512 = "29s1fqgr4mnhfxwczgdghfmmc1f792m9hysvcjxw2h5lfj8ndf2b6gm02m96qk5m75g4aisijvng4pk618anwbr8i9ay2jyszkqgslw";
+        sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==";
       };
     };
     "string-width-3.1.0" = {
@@ -2891,7 +2963,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz";
-        sha512 = "3bix3jva53vcp1im3aa1y2v1lywkm7ix81gkwkj4915s2675pmw1c9n5x98q1m985hzgwkk1fnc2q78qz7s0fixhf994md3lazxr9xx";
+        sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
       };
     };
     "string.prototype.trimend-1.0.1" = {
@@ -2900,25 +2972,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz";
-        sha512 = "3mb88v9lf22jx2d71lnxcxvixdfypq1iq7ys5f3zv0ayv2w3cij73wnfbq43yyd8gdyjn1k29pphx639shjk39pn6c9mdlk8qaz24rd";
-      };
-    };
-    "string.prototype.trimleft-2.1.2" = {
-      name = "string.prototype.trimleft";
-      packageName = "string.prototype.trimleft";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz";
-        sha512 = "15qfz59cpsj9svgvcs24q6h47jfy5zfhg7dy3b8ik3nvf97vhvijy8d51vrprx4z0vfyscg7i2xv9qs960h1pvnmzm1n95m6svk8840";
-      };
-    };
-    "string.prototype.trimright-2.1.2" = {
-      name = "string.prototype.trimright";
-      packageName = "string.prototype.trimright";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz";
-        sha512 = "0b5kvxgqr55r745bccsjz35w9galqf42rm3lf5f4p2i21c4yq5l0fz0s03z4gq1d7yi52i3x6n8fa1n3fhlplc8d49vlaipqvp51m34";
+        sha512 = "LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==";
       };
     };
     "string.prototype.trimstart-1.0.1" = {
@@ -2927,7 +2981,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz";
-        sha512 = "13md9cfrlvkvbprd9svis80yjkv8glqai07nlqizqi2yhxzhw7mxza2jhb6k6mx1z67ndgf4dcf0hy5579fj8772hsi5b3g1bwnf5jz";
+        sha512 = "XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==";
       };
     };
     "string_decoder-1.1.1" = {
@@ -2936,7 +2990,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
-        sha512 = "315yd4vzwrwk3vwj1klf46y1cj2jbvf88066y2rnwhksb98phj46jkxixbwsp3h607w7czy7cby522s7sx8mvspdpdm3s72y2ga3x4z";
+        sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
       };
     };
     "string_decoder-1.3.0" = {
@@ -2945,7 +2999,7 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz";
-        sha512 = "1w0mz57mvmqykm0jwma6lr4i9pip8p8c1ldaax7sxnrl6j0jbrkwggs037r1psmac0w04i9mb2rc1gzj1n2f0xvy1fr332n9pqmfi46";
+        sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==";
       };
     };
     "strip-ansi-4.0.0" = {
@@ -2963,7 +3017,7 @@ let
       version = "5.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
-        sha512 = "1cf4mpsr46nik5xxyb9wc4cz6c4yymi2ijpfx1nghnkl39l8pgq1sc7q19jzrjkwpn9i7hwg4q3rs4ny3vssrc6506an1lv0bb6rr0f";
+        sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
       };
     };
     "strip-json-comments-2.0.1" = {
@@ -2981,7 +3035,7 @@ let
       version = "5.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
-        sha512 = "2ihqi2z38fr1sq2jvwqgjqymncmkhxqz0x3bi97w4b4fn24wsdy71j139p95sb3nfrh3a449n0sqhm1z0jsi04860y8vdy8sp0n6da2";
+        sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
       };
     };
     "supports-color-6.0.0" = {
@@ -2990,7 +3044,7 @@ let
       version = "6.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz";
-        sha512 = "0p5l02lyminbqmcpm7257093sd8w5ca7q5xnnym2z71bwbhmisnyzn2jh5xma418sx29m8yinka6f7rphc7dl76lc88bm2w4z14lzx2";
+        sha512 = "on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==";
       };
     };
     "tdigest-0.1.1" = {
@@ -3008,7 +3062,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz";
-        sha512 = "1pazh99870gi3zslirzkribr37akp4zc5r73q78y89vpzjlcmpdrv7qx6wc3x2bwl20xcrq5hhs7cv3rzk8llm38nhqq9z0dhsldrds";
+        sha512 = "uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==";
       };
     };
     "through-2.3.8" = {
@@ -3026,7 +3080,7 @@ let
       version = "5.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz";
-        sha512 = "2qkrna8q80arai14s6f17djc3cgwiilnhibfykwzkif4gs9ny3fmqmxqf56fvc7fjwyr01p97nk1ckd67s8476cslmj3rwp7s5zp4zb";
+        sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==";
       };
     };
     "toidentifier-1.0.0" = {
@@ -3035,7 +3089,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
-        sha512 = "1bip1yxcfy4c0yl2kwmj9jyzfg1ixyj564wd1aaf46rabdiasx62yznb8bwn9cki886f353axgca42zma7q9rb4b50lhm1zz7y8g8y9";
+        sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
       };
     };
     "tough-cookie-2.5.0" = {
@@ -3044,7 +3098,7 @@ let
       version = "2.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz";
-        sha512 = "3xgcny117pqhfncr4gbmagzlnjiqqgq0lrvmljdfcdy64nc0xjfcbf1r08dmp1v1m3s51kq0yxc18nl3j9lbpr5bp5lgmi6719yqlly";
+        sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==";
       };
     };
     "triple-beam-1.3.0" = {
@@ -3053,25 +3107,25 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz";
-        sha512 = "0ppdjj0px3nrh57jbdhh12f3hx0xc2zg2zn61h3sdws4glcixr2k793bkv7hakb273pw8jq4qaxn0l28z658biy4bkd59a7bsyx9cay";
+        sha512 = "XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==";
       };
     };
-    "ts-node-8.10.1" = {
+    "ts-node-8.10.2" = {
       name = "ts-node";
       packageName = "ts-node";
-      version = "8.10.1";
+      version = "8.10.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ts-node/-/ts-node-8.10.1.tgz";
-        sha512 = "2zyrdhgyii4klwqhy8r5pps3w0g6x6rpbqnifm75sn9ws67zlalw9fbsfwfwkbww3n729hil48a6nxkavb1x4jypa4pi40ypva77lvd";
+        url = "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz";
+        sha512 = "ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==";
       };
     };
-    "tslib-1.12.0" = {
+    "tslib-1.13.0" = {
       name = "tslib";
       packageName = "tslib";
-      version = "1.12.0";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-1.12.0.tgz";
-        sha512 = "2l8pn1y3qicb8m0bf97jljyxbyjkarikq1z6vgh2rq527v2ah57p0rhsngsqx3ad4wzfchg8mlz2s4aylff6lvxw1gjp4zl8d145g76";
+        url = "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz";
+        sha512 = "i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==";
       };
     };
     "tslint-6.1.2" = {
@@ -3080,7 +3134,7 @@ let
       version = "6.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/tslint/-/tslint-6.1.2.tgz";
-        sha512 = "24dh0i5b1rkxy5g1n9d0kf4rg6layq6z3l5jg2hyz11lk8zdpqx2b03s0kwnjhx4l4ywg3js616wbh00nh3cmpw3g84f4xps8nnn8sk";
+        sha512 = "UyNrLdK3E0fQG/xWNqAFAC5ugtFyPO4JJR1KyyfQAyzR8W0fTRrC91A8Wej4BntFzcvETdCSDa/4PnNYJQLYiA==";
       };
     };
     "tsutils-2.29.0" = {
@@ -3089,7 +3143,7 @@ let
       version = "2.29.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz";
-        sha512 = "2cc8fsdfbgfcjj6y7dlr0kpmkhbw0j69cak4s21jb44w57dlwksrjx8wn1h4f1j2vx8dhj9mrqsbmmwd96mrsd59743ghq948f5b4l3";
+        sha512 = "g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==";
       };
     };
     "tunnel-agent-0.6.0" = {
@@ -3116,7 +3170,7 @@ let
       version = "4.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz";
-        sha512 = "3z3kf4kgd3czn50a158v1k2l61lpbznrbk8xvh2pdsfsrcsda3271427fzmp1r7awnvvzrhzclfm03cpv671rdlqyz56xpmh6cgzyni";
+        sha512 = "0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==";
       };
     };
     "type-is-1.6.18" = {
@@ -3125,16 +3179,16 @@ let
       version = "1.6.18";
       src = fetchurl {
         url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
-        sha512 = "3r7402x79nilhdgk4z21yjh5y9vix8lwlll1kzcn8jd2m89vzksdb6wddia77cxv3iwhd6i5hkv6n7diwjbhpy7y03i2kqlvfplli2f";
+        sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
       };
     };
-    "typescript-3.9.2" = {
+    "typescript-3.9.5" = {
       name = "typescript";
       packageName = "typescript";
-      version = "3.9.2";
+      version = "3.9.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.2.tgz";
-        sha512 = "15y587awly8lrclsfw0fp2r1545332rrpf0g7cpi90jj67sryyj76hgbb1fna5bzwlg3940bmnyhd7qmll6nwi86n6vpf7zi6mjssdb";
+        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz";
+        sha512 = "hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==";
       };
     };
     "underscore-1.4.4" = {
@@ -3146,13 +3200,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 = "1p3flai5dwdy5krysfl6wjvz6b3pmkkzxwwpcycfkq93k17ghw7frlc5rnm1ra43h1a6lg6q44yp9ga19zhjv2q0nw3m0m8n7d31l5c";
+        url = "https://registry.npmjs.org/unhomoglyph/-/unhomoglyph-1.0.6.tgz";
+        sha512 = "7uvcWI3hWshSADBu4JpnyYbTVc7YlhF5GDW/oPD5AxIxl34k4wXR3WDkPnzLxkN32LiTCTKMQLtKVZiwki3zGg==";
       };
     };
     "unpipe-1.0.0" = {
@@ -3170,7 +3224,7 @@ let
       version = "4.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz";
-        sha512 = "2fz60s71ghl56ddfiiaws81xpiidlbjk69jyjmahz190d2advy9zdbcwh5if4rgg5hxdbfxhkwiipjrnjy8w834bxsmzambd2p4b3r9";
+        sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==";
       };
     };
     "util-deprecate-1.0.2" = {
@@ -3197,7 +3251,7 @@ let
       version = "3.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
-        sha512 = "3y9pcli1v8nqryqd2c4pxj9kcv92mjc22z4smg08pdjzrbwda19xmjbzms1dwr04995h4carz9s8mldbiqb8708694lwr501r3q6d0y";
+        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
       };
     };
     "uuid-7.0.3" = {
@@ -3206,7 +3260,7 @@ let
       version = "7.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz";
-        sha512 = "057la6a6bzkdwiz137vdyjaigybq0gyc3i8xvgc3gs4ja5blpjwbq9si4zmji0cgb81wzsj44q8l1nrmmjgkpazl1h3d1ap99xs9x0c";
+        sha512 = "DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==";
       };
     };
     "vary-1.1.2" = {
@@ -3233,7 +3287,7 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz";
-        sha512 = "0hr4hxkk8yb9fz993bs69pf8z2z2qb6sdpxfxb84sd16lja9fsx444pk1ang1ivmjjv5srnsm6fihdj593w7rwxdh834cdmd9hms4hz";
+        sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==";
       };
     };
     "which-module-2.0.0" = {
@@ -3251,16 +3305,16 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
-        sha512 = "2224a32flpf40nhq6rj4idzkcdz0vx65bfxp90hd06db18l6fiqgxz1xnaygm3pbfb1a6v73hl8ryq4996b09zwwins0bqprx0hwsa0";
+        sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
       };
     };
-    "winston-3.2.1" = {
+    "winston-3.3.2" = {
       name = "winston";
       packageName = "winston";
-      version = "3.2.1";
+      version = "3.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz";
-        sha512 = "0xywwwrgdf54nfk0pzdpkgn27jwxkkfimf5s9jd04xihx03wwj71r0nafdmsdfg5brj9hsdalqj19vpl2442gx82210ax5xfj1ayknd";
+        url = "https://registry.npmjs.org/winston/-/winston-3.3.2.tgz";
+        sha512 = "vTOrUZlyQPS8VpCcQ1JT8BumDAUe4awCHZ9nmGgO7LqkV4atj0dKa5suA7Trf7QKtBszE2yUs9d8744Kz9j4jQ==";
       };
     };
     "winston-compat-0.1.5" = {
@@ -3269,7 +3323,7 @@ let
       version = "0.1.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/winston-compat/-/winston-compat-0.1.5.tgz";
-        sha512 = "3v94p4wq3xmi9d5f1gsk39fj6nc6nq8ivh7ka0whzvg7g71zplmgw9b5vkl7kqr66qm9xd5i4l0vhazmxzpgflqvhaq1lzsfiqczyqh";
+        sha512 = "EPvPcHT604AV3Ji6d3+vX8ENKIml9VSxMRnPQ+cuK/FX6f3hvPP2hxyoeeCOCFvDrJEujalfcKWlWPvAnFyS9g==";
       };
     };
     "winston-daily-rotate-file-3.10.0" = {
@@ -3278,16 +3332,16 @@ let
       version = "3.10.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-3.10.0.tgz";
-        sha512 = "22fkfci36zb0q6ygc6sg2x2l0886j2cayl6jbi703smf5h4iwa1g2j4dwwr30jr2zjgdyh95ig8yqfk0y8h51gnvi8zf2inn9yh5vr8";
+        sha512 = "KO8CfbI2CvdR3PaFApEH02GPXiwJ+vbkF1mCkTlvRIoXFI8EFlf1ACcuaahXTEiDEKCii6cNe95gsL4ZkbnphA==";
       };
     };
-    "winston-transport-4.3.0" = {
+    "winston-transport-4.4.0" = {
       name = "winston-transport";
       packageName = "winston-transport";
-      version = "4.3.0";
+      version = "4.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.3.0.tgz";
-        sha512 = "3a2khvz9qld5b1ci486nyphyi96pg5n8xin9f0lrx0hllvvjqkj8y393rs2fiyz7afg7244vchiv3ka3klm4xgykxrzipi20nxhyv07";
+        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz";
+        sha512 = "Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==";
       };
     };
     "wrap-ansi-5.1.0" = {
@@ -3296,7 +3350,7 @@ let
       version = "5.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
-        sha512 = "3nmsfqfd98a7bgjyhd334y5gzc98nnkipfkmk2z1v4m0acagmpq951d8brmrsxvpnk256fbrp7zkn5n8v02pn4q4zai7zgnvy47yba0";
+        sha512 = "QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==";
       };
     };
     "wrappy-1.0.2" = {
@@ -3314,7 +3368,7 @@ let
       version = "5.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz";
-        sha512 = "0f6ay7yn6xslzh3h66d5krqnp48d9g3ikwk0ijiyyxfkwaqxxf3b0qdswy6ych79mj44315qd16snlnk6m6npc5l0habgy5lc7wb8cd";
+        sha512 = "jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==";
       };
     };
     "xtend-4.0.2" = {
@@ -3323,7 +3377,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
-        sha512 = "08w1d6fg23v422cfwd55306pfs9n9cqpz6hycahq3adm3n29wmhl9bmpn4vk75rlzgwn7hp4n3idqxvw8c53zbr04h7a98p43b199ic";
+        sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
       };
     };
     "y18n-4.0.0" = {
@@ -3332,7 +3386,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz";
-        sha512 = "3zj75gvpcgiphxpci4ji1znykk9n4cs0aw3dd6inwdvkmxyqn2483vya70lssjwq8alspnpw88vgii21fdrcn2vmfyppzgf4mkvzm5g";
+        sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==";
       };
     };
     "yargs-13.3.2" = {
@@ -3341,7 +3395,7 @@ let
       version = "13.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz";
-        sha512 = "19rg5b2rhj2kg44as5vv9jxmpr39lw250885w6nlfwyhvwd5nxnnx7fc35v7h615i65cik7k3wi7ac20c91kcgfi5wy7blgk31xjz81";
+        sha512 = "AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==";
       };
     };
     "yargs-parser-13.1.2" = {
@@ -3350,7 +3404,7 @@ let
       version = "13.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz";
-        sha512 = "375nan6m28q81h8q9a8vmcxgiq7s81yn1ql7zdikac0c4j2kmxdjzmbq14fcp9jm4ilcfzkd9ym4x7c80s7r6g488wf13zz2wsyqmny";
+        sha512 = "3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==";
       };
     };
     "yargs-unparser-1.6.0" = {
@@ -3359,7 +3413,7 @@ let
       version = "1.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz";
-        sha512 = "17qgbcv8wypl4qr620558qd8ff03nqqiq84mp200mizrbsfj4nyil345iny8zx4ia5hfpjmk2mnhqp7y54qpsypd993ml57cj14mnsv";
+        sha512 = "W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==";
       };
     };
     "yn-3.1.1" = {
@@ -3368,33 +3422,34 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz";
-        sha512 = "3lq5f8c7lb89pyxhpb8nrbif4p5ganpyfzz267dgqxr6dn6yr0vgh017403bmy2v651m1wmd8k6x2fm5v37nmn1i8xngfxccn0347jk";
+        sha512 = "Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==";
       };
     };
   };
 in
 {
-  "matrix-appservice-slack-git+https://github.com/matrix-org/matrix-appservice-slack.git#1.3.1" = nodeEnv.buildNodePackage {
+  "matrix-appservice-slack-git+https://github.com/matrix-org/matrix-appservice-slack.git#1.4.0" = nodeEnv.buildNodePackage {
     name = "matrix-appservice-slack";
     packageName = "matrix-appservice-slack";
-    version = "1.3.1";
+    version = "1.4.0";
     src = fetchgit {
       url = "https://github.com/matrix-org/matrix-appservice-slack.git";
-      rev = "368c7af0c87053779d61b3c702fc533003960a99";
-      sha256 = "add6a164e982cfa8837168e4a8c0b4a3fb248c9cf331ea8c6109767f6fc76cef";
+      rev = "933c3a64fdff42ebc11e5385f588f981e201897d";
+      sha256 = "cddcff326688ceddfd37eae44d3947ea84cf1d8fd2062e3c203ffbf35e2ea7f6";
     };
     dependencies = [
-      sources."@babel/code-frame-7.8.3"
-      sources."@babel/helper-validator-identifier-7.9.5"
-      sources."@babel/highlight-7.9.0"
+      sources."@babel/code-frame-7.10.3"
+      sources."@babel/helper-validator-identifier-7.10.3"
+      sources."@babel/highlight-7.10.3"
+      sources."@dabh/diagnostics-2.0.2"
       sources."@slack/logger-1.1.1"
-      (sources."@slack/rtm-api-5.0.4" // {
+      (sources."@slack/rtm-api-5.0.5" // {
         dependencies = [
           sources."p-queue-2.4.2"
         ];
       })
-      sources."@slack/types-1.6.0"
-      (sources."@slack/web-api-5.8.1" // {
+      sources."@slack/types-1.7.0"
+      (sources."@slack/web-api-5.10.0" // {
         dependencies = [
           sources."p-queue-2.4.2"
         ];
@@ -3403,29 +3458,30 @@ in
       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.6"
       sources."@types/express-serve-static-core-4.17.7"
       sources."@types/is-stream-1.1.0"
-      sources."@types/mime-2.0.1"
+      sources."@types/mime-2.0.2"
       sources."@types/mocha-7.0.2"
       sources."@types/nedb-1.8.9"
       sources."@types/node-13.9.3"
       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.2"
+      sources."@types/qs-6.9.3"
       sources."@types/randomstring-1.1.6"
       sources."@types/range-parser-1.2.3"
-      sources."@types/request-2.48.4"
+      sources."@types/request-2.48.5"
       sources."@types/request-promise-native-1.0.17"
       sources."@types/retry-0.12.0"
-      sources."@types/serve-static-1.13.3"
+      sources."@types/serve-static-1.13.4"
       sources."@types/tough-cookie-4.0.0"
-      sources."@types/uuid-7.0.3"
-      sources."@types/ws-5.1.2"
+      sources."@types/uuid-7.0.4"
+      sources."@types/ws-7.2.5"
       sources."@types/yargs-13.0.9"
       sources."@types/yargs-parser-13.1.0"
       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.12.2"
@@ -3438,6 +3494,7 @@ in
       sources."argparse-1.0.10"
       sources."array-flatten-1.1.1"
       sources."array-uniq-1.0.2"
+      sources."asap-2.0.6"
       sources."asn1-0.2.4"
       sources."assert-options-0.6.2"
       sources."assert-plus-1.0.0"
@@ -3446,7 +3503,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."axios-0.19.2"
       sources."babel-runtime-6.26.0"
       sources."balanced-match-1.0.0"
@@ -3480,17 +3537,16 @@ in
         ];
       })
       sources."check-error-1.0.2"
-      sources."chokidar-3.3.0"
+      sources."chokidar-3.4.0"
       sources."cliui-5.0.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.4.0"
       sources."colorspace-1.1.2"
       sources."combined-stream-1.0.8"
-      sources."commander-2.20.3"
+      sources."commander-3.0.2"
       sources."concat-map-0.0.1"
       sources."content-disposition-0.5.3"
       sources."content-type-1.0.4"
@@ -3507,15 +3563,13 @@ in
       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."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."emoji-regex-7.0.3"
-      sources."enabled-1.0.2"
+      sources."enabled-2.0.0"
       sources."encodeurl-1.0.2"
-      sources."env-variable-0.0.6"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-2.0.0"
@@ -3529,10 +3583,10 @@ in
       })
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-safe-stringify-2.0.7"
-      sources."fecha-2.3.3"
+      sources."fecha-4.2.0"
       sources."file-stream-rotator-0.4.1"
       sources."fill-range-7.0.1"
       (sources."finalhandler-1.1.2" // {
@@ -3543,6 +3597,7 @@ in
       sources."find-up-3.0.0"
       sources."finity-0.5.4"
       sources."flat-4.1.0"
+      sources."fn.name-1.1.0"
       sources."follow-redirects-1.5.10"
       sources."forever-agent-0.6.1"
       sources."form-data-2.5.1"
@@ -3575,7 +3630,7 @@ in
       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-callable-1.2.0"
       sources."is-date-object-1.0.2"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
@@ -3584,7 +3639,7 @@ in
       sources."is-my-json-valid-2.20.0"
       sources."is-number-7.0.0"
       sources."is-property-1.0.2"
-      sources."is-regex-1.0.5"
+      sources."is-regex-1.1.0"
       sources."is-stream-1.1.0"
       sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
@@ -3592,21 +3647,21 @@ in
       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."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonpointer-4.0.1"
       sources."jsprim-1.4.1"
-      sources."kuler-1.0.1"
+      sources."kuler-2.0.0"
       sources."lie-3.1.1"
-      sources."localforage-1.7.3"
+      sources."localforage-1.7.4"
       sources."locate-path-3.0.0"
       sources."lodash-4.17.15"
       sources."lodash.toarray-4.4.0"
       sources."log-symbols-3.0.0"
-      (sources."logform-2.1.2" // {
+      (sources."logform-2.2.0" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -3629,15 +3684,18 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
-      (sources."mocha-7.1.2" // {
+      (sources."mocha-7.2.0" // {
         dependencies = [
+          sources."chokidar-3.3.0"
           sources."debug-3.2.6"
           sources."escape-string-regexp-1.0.5"
+          sources."js-yaml-3.13.1"
           sources."ms-2.1.1"
+          sources."readdirp-3.2.0"
           sources."supports-color-6.0.0"
         ];
       })
-      sources."moment-2.25.3"
+      sources."moment-2.27.0"
       (sources."morgan-1.10.0" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -3655,16 +3713,17 @@ in
       })
       sources."nopt-3.0.6"
       sources."normalize-path-3.0.0"
+      sources."nunjucks-3.2.1"
       sources."oauth-sign-0.9.0"
       sources."object-hash-1.3.1"
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.0"
       sources."object.getownpropertydescriptors-2.1.0"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
-      sources."one-time-0.0.4"
+      sources."one-time-1.0.0"
       sources."p-cancelable-1.1.0"
       sources."p-finally-1.0.0"
       sources."p-limit-2.3.0"
@@ -3685,13 +3744,13 @@ in
       sources."path-to-regexp-0.1.7"
       sources."pathval-1.1.0"
       sources."performance-now-2.1.0"
-      sources."pg-8.1.0"
-      sources."pg-connection-string-2.2.2"
+      sources."pg-8.2.1"
+      sources."pg-connection-string-2.2.3"
       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.2"
+      sources."pg-minify-1.6.1"
+      sources."pg-pool-3.2.1"
+      sources."pg-promise-10.5.7"
+      sources."pg-protocol-1.2.4"
       sources."pg-types-2.2.0"
       sources."pgpass-1.0.2"
       sources."picomatch-2.2.2"
@@ -3705,12 +3764,12 @@ in
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
       sources."qs-6.7.0"
-      sources."quick-lru-5.1.0"
+      sources."quick-lru-5.1.1"
       sources."randomstring-1.1.5"
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
       sources."readable-stream-3.6.0"
-      sources."readdirp-3.2.0"
+      sources."readdirp-3.4.0"
       sources."regenerator-runtime-0.11.1"
       (sources."request-2.88.2" // {
         dependencies = [
@@ -3753,8 +3812,6 @@ in
       sources."stealthy-require-1.1.1"
       sources."string-width-3.1.0"
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       (sources."string_decoder-1.3.0" // {
         dependencies = [
@@ -3771,14 +3828,15 @@ in
       sources."toidentifier-1.0.0"
       sources."tough-cookie-2.5.0"
       sources."triple-beam-1.3.0"
-      (sources."ts-node-8.10.1" // {
+      (sources."ts-node-8.10.2" // {
         dependencies = [
           sources."diff-4.0.2"
         ];
       })
-      sources."tslib-1.12.0"
+      sources."tslib-1.13.0"
       (sources."tslint-6.1.2" // {
         dependencies = [
+          sources."commander-2.20.3"
           sources."diff-4.0.2"
           sources."semver-5.7.1"
         ];
@@ -3788,9 +3846,9 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-detect-4.0.8"
       sources."type-is-1.6.18"
-      sources."typescript-3.9.2"
+      sources."typescript-3.9.5"
       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."util-deprecate-1.0.2"
@@ -3807,13 +3865,15 @@ in
           sources."strip-ansi-4.0.0"
         ];
       })
-      (sources."winston-3.2.1" // {
+      (sources."winston-3.3.2" // {
         dependencies = [
-          sources."async-2.6.3"
+          sources."async-3.2.0"
+          sources."is-stream-2.0.0"
         ];
       })
       (sources."winston-compat-0.1.5" // {
         dependencies = [
+          sources."fecha-2.3.3"
           sources."logform-1.10.0"
           sources."ms-2.1.2"
         ];
@@ -3823,7 +3883,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      (sources."winston-transport-4.3.0" // {
+      (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
           sources."string_decoder-1.1.1"
diff --git a/pkgs/servers/matrix-synapse/matrix-appservice-slack/package.json b/pkgs/servers/matrix-synapse/matrix-appservice-slack/package.json
index 1807b9085b6..52568eefb77 100644
--- a/pkgs/servers/matrix-synapse/matrix-appservice-slack/package.json
+++ b/pkgs/servers/matrix-synapse/matrix-appservice-slack/package.json
@@ -1,3 +1,3 @@
 [
-    {"matrix-appservice-slack": "git+https://github.com/matrix-org/matrix-appservice-slack.git#1.3.1" }
+    {"matrix-appservice-slack": "git+https://github.com/matrix-org/matrix-appservice-slack.git#1.4.0" }
 ]
diff --git a/pkgs/servers/matterbridge/default.nix b/pkgs/servers/matterbridge/default.nix
index ee58671a854..b864c4d830b 100644
--- a/pkgs/servers/matterbridge/default.nix
+++ b/pkgs/servers/matterbridge/default.nix
@@ -2,14 +2,15 @@
 
 buildGoModule rec {
   pname = "matterbridge";
-  version = "1.17.5";
+  version = "1.18.0";
 
-  goPackagePath = "github.com/42wim/matterbridge";
   vendorSha256 = null;
 
+  doCheck = false;
+
   src = fetchurl {
     url = "https://github.com/42wim/matterbridge/archive/v${version}.tar.gz";
-    sha256 = "1p89ik5zr1qq1abd9k1xfa4j62b11zdnl2gm52y0s5yx8slap4w0";
+    sha256 = "0ax2lis37ppxah4k9aqw1aj6pl5yz6npfriaw70g4952abvbkivw";
   };
 
   meta = with stdenv.lib; {
@@ -19,4 +20,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ ryantm ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/mattermost/default.nix b/pkgs/servers/mattermost/default.nix
index 6327921aaac..722802a019d 100644
--- a/pkgs/servers/mattermost/default.nix
+++ b/pkgs/servers/mattermost/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, fetchFromGitHub, buildGoPackage, buildEnv }:
 
 let
-  version = "5.15.0";
+  version = "5.25.3";
 
   mattermost-server = buildGoPackage rec {
     pname = "mattermost-server";
@@ -11,7 +11,7 @@ let
       owner = "mattermost";
       repo = "mattermost-server";
       rev = "v${version}";
-      sha256 = "1bh53h0bmpc1qmnbpsmwkfrvj66z18m7b1xg7pqikid57ssqxjx9";
+      sha256 = "03xcwlbb9ff5whsdn2m3kqskxpwpfciikjjndbhksc8k8963z07j";
     };
 
     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 = "13xmc2y4pp0b0svzaf4v7ynx6rxcvznx3vqmlrpiil414s69xv45";
+      sha256 = "1p1qxzrd6rj1i43vj18ysknrw2v02s7llx94nrdd5lk10ayzmg63";
     };
 
     installPhase = ''
diff --git a/pkgs/servers/mautrix-telegram/default.nix b/pkgs/servers/mautrix-telegram/default.nix
index da4f77e3394..c39d4fc0d86 100644
--- a/pkgs/servers/mautrix-telegram/default.nix
+++ b/pkgs/servers/mautrix-telegram/default.nix
@@ -1,15 +1,24 @@
-{ lib, python3, mautrix-telegram }:
+{ lib, python3, mautrix-telegram, fetchFromGitHub }:
 
 with python3.pkgs;
 
-buildPythonPackage rec {
+let
+  # officially supported database drivers
+  dbDrivers = [
+    psycopg2
+    # sqlite driver is already shipped with python by default
+  ];
+
+in buildPythonPackage rec {
   pname = "mautrix-telegram";
-  version = "0.8.1";
+  version = "0.8.2";
   disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1gz6d28dq3ykvr3wp85wkc05lbppdzf5j9i62pgx0blmx3jh0yrk";
+  src = fetchFromGitHub {
+    owner = "tulir";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0mhy9b933haz1bldkglvn81warjxdjdzgkviiv5k6fykghq473jf";
   };
 
   postPatch = ''
@@ -30,7 +39,7 @@ buildPythonPackage rec {
     pillow
     lxml
     setuptools
-  ];
+  ] ++ dbDrivers;
 
   # `alembic` (a database migration tool) is only needed for the initial setup,
   # and not needed during the actual runtime. However `alembic` requires `mautrix-telegram`
@@ -39,7 +48,7 @@ buildPythonPackage rec {
   # Hence we need to patch away `alembic` from `mautrix-telegram` and create an `alembic`
   # which has `mautrix-telegram` in its environment.
   passthru.alembic = alembic.overrideAttrs (old: {
-    propagatedBuildInputs = old.propagatedBuildInputs ++ [
+    propagatedBuildInputs = old.propagatedBuildInputs ++ dbDrivers ++ [
       mautrix-telegram
     ];
   });
diff --git a/pkgs/servers/mautrix-whatsapp/default.nix b/pkgs/servers/mautrix-whatsapp/default.nix
index bb129063e26..a63d75552cc 100644
--- a/pkgs/servers/mautrix-whatsapp/default.nix
+++ b/pkgs/servers/mautrix-whatsapp/default.nix
@@ -2,30 +2,22 @@
 
 buildGoModule rec {
   pname = "mautrix-whatsapp";
-  version = "0.1.1";
+  version = "0.1.4";
 
   src = fetchFromGitHub {
     owner = "tulir";
     repo = "mautrix-whatsapp";
     rev = "v${version}";
-    sha256 = "0cjgyn311zvpdsagyndkw89bvdrcli5kqznss8dsh05wrllxp3x4";
+    sha256 = "1c77f3ffm6m9j8q9p1hb9i8zrqqpvfkr9ffamly44gs7xddmv9sv";
   };
 
   buildInputs = [ olm ];
 
-  vendorSha256 = "0980p9x62iav6j1w36w2i8pqyv6amnx4ngrgylq2vkjlcgihl2i8";
+  vendorSha256 = "01yr5321paqifmgzz235lknsa0w4hbs3182y6pxw8hqsvh18c48b";
 
-  overrideModAttrs = _: {
-    postBuild = ''
-      rm -r vendor/github.com/chai2010/webp
-      cp -r --reflink=auto ${fetchFromGitHub {
-        owner = "chai2010";
-        repo = "webp";
-        rev = "3da79ec3d682694d42bfd211db18fc1343c07cd7";
-        sha256 = "0gh3g52vz8na153mjmxkl80g3dvrcjw77xpjs1c02vagpj9jyw46";
-      }} vendor/github.com/chai2010/webp
-    '';
-  };
+  doCheck = false;
+
+  runVend = true;
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/tulir/mautrix-whatsapp";
diff --git a/pkgs/servers/meguca/default.nix b/pkgs/servers/meguca/default.nix
deleted file mode 100644
index 4c5521e97bb..00000000000
--- a/pkgs/servers/meguca/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, pkgconfig, cmake, ffmpeg-full
-, ghostscript, graphicsmagick, quicktemplate, go-bindata, easyjson
-, nodePackages, emscripten, opencv, statik }:
-
-buildGoPackage {
-  pname = "meguca-unstable";
-  version = "2019-03-12";
-  goPackagePath = "github.com/bakape/meguca";
-  goDeps = ./server_deps.nix;
-
-  src = fetchFromGitHub {
-    owner = "bakape";
-    repo = "meguca";
-    rev = "21b08de09b38918061c5cd0bbd0dc9bcc1280525";
-    sha256 = "1nb3bf1bscbdma83sp9fbgvmxxlxh21j9h80wakfn85sndcrws5i";
-    fetchSubmodules = true;
-  };
-
-  enableParallelBuilding = true;
-  nativeBuildInputs = [ pkgconfig cmake go-bindata ];
-
-  buildInputs = [
-    ffmpeg-full graphicsmagick ghostscript quicktemplate
-    easyjson emscripten opencv statik
-  ];
-
-  buildPhase = ''
-    export HOME=`pwd`
-    cd go/src/github.com/bakape/meguca
-    ln -sf ${nodePackages.meguca}/lib/node_modules/meguca/node_modules
-    sed -i "/npm install --progress false --depth 0/d" Makefile
-    make -j $NIX_BUILD_CORES generate all
-  '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
-    make -j $NIX_BUILD_CORES wasm
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin $out/share/meguca
-    cp meguca $out/bin
-    cp -r www $out/share/meguca
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/bakape/meguca";
-    description = "High performance anonymous realtime imageboard";
-    license = licenses.agpl3Plus;
-    maintainers = with maintainers; [ chiiruno ];
-    platforms = platforms.all;
-    broken = true; # Broken on Hydra since 2019-04-18:
-    # https://hydra.nixos.org/build/98885902
-  };
-}
diff --git a/pkgs/servers/meguca/server_deps.nix b/pkgs/servers/meguca/server_deps.nix
deleted file mode 100644
index bff9d5624e8..00000000000
--- a/pkgs/servers/meguca/server_deps.nix
+++ /dev/null
@@ -1,390 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/ErikDubbelboer/gspt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ErikDubbelboer/gspt";
-      rev = "e68493906b8382891943ddc9960cb9c6ecd1a1f0";
-      sha256 = "17xjyg6zw02yzly30hs92pwgn0w85naixr4kb2c0mgp5zavl1ffz";
-    };
-  }
-  {
-    goPackagePath = "github.com/Masterminds/squirrel";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Masterminds/squirrel";
-      rev = "d67d6a236213ef67cff454e09ea1bf742d943f6c";
-      sha256 = "0gzvnws0a29c663hjk379bybvxfmkiic3spkc985hdvn5gkbrwkq";
-    };
-  }
-  {
-    goPackagePath = "github.com/PuerkitoBio/goquery";
-    fetch = {
-      type = "git";
-      url = "https://github.com/PuerkitoBio/goquery";
-      rev = "3dcf72e6c17f694381a21592651ca1464ded0e10";
-      sha256 = "0fpsf6b54z33a7zl28x860jbaj3g5722g8kpqs6rdpaqv99yyvnn";
-    };
-  }
-  {
-    goPackagePath = "github.com/andybalholm/cascadia";
-    fetch = {
-      type = "git";
-      url = "https://github.com/andybalholm/cascadia";
-      rev = "680b6a57bda4f657485ad44bdea42342ead737bc";
-      sha256 = "0v95plagirbjlc4p00y9brhpvv4nm8q0gr63gcfs3shyh1a8xwbm";
-    };
-  }
-  {
-    goPackagePath = "github.com/aquilax/tripcode";
-    fetch = {
-      type = "git";
-      url = "https://github.com/aquilax/tripcode";
-      rev = "1a14b0a5e89f7fdb8a821562569338ad59ab2da5";
-      sha256 = "1ishrg37gkkx04gbchhsk7jp01mmfvln2i2zrncbj4qxs2amnn2l";
-    };
-  }
-  {
-    goPackagePath = "github.com/badoux/goscraper";
-    fetch = {
-      type = "git";
-      url = "https://github.com/badoux/goscraper";
-      rev = "9b4686c4b62c22b0489d53dddf5421605caba33e";
-      sha256 = "1f1wc4s2b6g1ndpihb0gn7cxmwyi4wfqi5slvsk6i6p9q4kxrkvx";
-    };
-  }
-  {
-    goPackagePath = "github.com/bakape/boorufetch";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bakape/boorufetch";
-      rev = "90aee10269a138a08ce49cd91635500336657a82";
-      sha256 = "0zaa2b3bl2hnl4lipghl6mbvpv9sq9r7skykp26c29qy77xy99nk";
-    };
-  }
-  {
-    goPackagePath = "github.com/bakape/captchouli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bakape/captchouli";
-      rev = "b57177c8d2f239547e9545354e2f55fbc851ab47";
-      sha256 = "1fi24322bbicc2bpfla37nhy2w89cf67345dbybcavgcny5rs65a";
-    };
-  }
-  {
-    goPackagePath = "github.com/bakape/mnemonics";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bakape/mnemonics";
-      rev = "056d8d3259923b93bb0449a45b0c56ac20c77f1b";
-      sha256 = "137dl4bkpszj7pm4dyj222xdvy9lmwsgmm0l6bxni0msc3jdrqkl";
-    };
-  }
-  {
-    goPackagePath = "github.com/bakape/thumbnailer";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bakape/thumbnailer";
-      rev = "3d9565548e572a385b5a1ecf3bb9840c9ccd9949";
-      sha256 = "0zriks4j694y65ryf9xkiz0sc932hskjigmk83bj1069hkgzx9dk";
-    };
-  }
-  {
-    goPackagePath = "github.com/boltdb/bolt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/boltdb/bolt";
-      rev = "fd01fc79c553a8e99d512a07e8e0c63d4a3ccfc5";
-      sha256 = "12f5swiwzcamk87r9j73nn7rmyyday7jkgzfh7x5wdg9blzhrir2";
-    };
-  }
-  {
-    goPackagePath = "github.com/chai2010/webp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chai2010/webp";
-      rev = "76ae9d0b5d6d590fcc9772bf9cf0526128ee6fab";
-      sha256 = "0sanh0c2bvignxnrj9vlzr2sw1bd3cgw2lg0vkn63xxjj3bqmsbh";
-    };
-  }
-  {
-    goPackagePath = "github.com/dimfeld/httptreemux";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dimfeld/httptreemux";
-      rev = "a454a10de4a11f751681a0914461ab9e98c2a3ff";
-      sha256 = "0qx94lij9ldzd1xl36rl8blbgzjz9b4rkpydi44d9lik7qkdi5gp";
-    };
-  }
-  {
-    goPackagePath = "github.com/dsnet/compress";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dsnet/compress";
-      rev = "da652975a8eea9fa0735aba8056747a751db0bd3";
-      sha256 = "1wwjaymzb1xxq3ybch3nwn72xhi2s40cvz0cl986yad3w1xwzj91";
-    };
-  }
-  {
-    goPackagePath = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev = "11844c0959f6fff69ba325d097fce35bd85a8e93";
-      sha256 = "0driasljawka9r914530mr9df2i5cwldcgj2v94qkhzlkb48ljwc";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-playground/ansi";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-playground/ansi";
-      rev = "777788a9be1a7296979a999c86b251fc777077a9";
-      sha256 = "1y2pqx04lc7cqg50scfivzw0n8f0dliflnih14f5jf4svff8s561";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-playground/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-playground/errors";
-      rev = "4050dd2e2e3b2052ef736048661d1d23a4a4e55d";
-      sha256 = "0b3bhf2c9fpv095db3ajyb1fz7nxjn7rfg9rjb83hqfm492wjy86";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-playground/log";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-playground/log";
-      rev = "fdcdf507e3bf20900bc1a44b0cbd73fee5bcbe19";
-      sha256 = "0mbzawm09n2kggrkmj0khrhipmdi191z01mw120ahbmmjdjls749";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/snappy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/snappy";
-      rev = "2a8bb927dd31d8daada140a5d09578521ce5c36a";
-      sha256 = "0gp3kkzlm3wh37kgkhbqxq3zx07iqbgis5w9mf4d64h6vjq760is";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/handlers";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/handlers";
-      rev = "ac6d24f88de4584385a0cb3a88f953d08a2f7a05";
-      sha256 = "166p7yw2sy6lbxgyk722phkskmxzv3v21vf0l145zicrn30m9zli";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/websocket";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/websocket";
-      rev = "0ec3d1bd7fe50c503d6df98ee649d81f4857c564";
-      sha256 = "0mdq489izwy20bpjg31k8qnfgvh5r7mm5yq709q6xyzmzdd5nasx";
-    };
-  }
-  {
-    goPackagePath = "github.com/julienschmidt/httprouter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/julienschmidt/httprouter";
-      rev = "26a05976f9bf5c3aa992cc20e8588c359418ee58";
-      sha256 = "0bmvrgg373fxwqsr6nri01bmi9qdj6knxkmnbw70h9rmi2d9c585";
-    };
-  }
-  {
-    goPackagePath = "github.com/lann/builder";
-    fetch = {
-      type = "git";
-      url = "https://github.com/lann/builder";
-      rev = "47ae307949d02aa1f1069fdafc00ca08e1dbabac";
-      sha256 = "1kg9jy1rciznj627hafpq2mi7hr5d3ssgqcpwrm3bnlk9sqnydil";
-    };
-  }
-  {
-    goPackagePath = "github.com/lann/ps";
-    fetch = {
-      type = "git";
-      url = "https://github.com/lann/ps";
-      rev = "62de8c46ede02a7675c4c79c84883eb164cb71e3";
-      sha256 = "10yhcyymypvdiiipchsp80jbglk8c4r7lq7h54v9f4mxmvz6xgf7";
-    };
-  }
-  {
-    goPackagePath = "github.com/lib/pq";
-    fetch = {
-      type = "git";
-      url = "https://github.com/lib/pq";
-      rev = "9eb73efc1fcc404148b56765b0d3f61d9a5ef8ee";
-      sha256 = "17wkjdz265iqf92gj3ljslvjcqvkfblw11jdq2scc3kp1hcsfr10";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-sqlite3";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-sqlite3";
-      rev = "ad30583d8387ce8118f8605eaeb3b4f7b4ae0ee1";
-      sha256 = "024h09n4g41x4awzim5l0vxpj1nfwc9isf8bryrdnichpqpa6siz";
-    };
-  }
-  {
-    goPackagePath = "github.com/nwaples/rardecode";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nwaples/rardecode";
-      rev = "197ef08ef68c4454ae5970a9c2692d6056ceb8d7";
-      sha256 = "0vvijw7va283dbdvnf4bgkn7bjngxqzk1rzdpy8sl343r62bmh4g";
-    };
-  }
-  {
-    goPackagePath = "github.com/oschwald/maxminddb-golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/oschwald/maxminddb-golang";
-      rev = "fc04c43d3c694a35570a7e4358b0f4d4ac3fea32";
-      sha256 = "16bz3g8mkg2xhb4pxcpk6scxrmn48485jgky7wvi4gzpizlhsxxq";
-    };
-  }
-  {
-    goPackagePath = "github.com/otium/ytdl";
-    fetch = {
-      type = "git";
-      url = "https://github.com/otium/ytdl";
-      rev = "5c8ee71b4175be285baaff66147458254884f748";
-      sha256 = "1w22cfc6nr7z5fc3hmcymmx2xfcb66ylhfs89vn4i19ksxbkkcjk";
-    };
-  }
-  {
-    goPackagePath = "github.com/pierrec/lz4";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pierrec/lz4";
-      rev = "062282ea0dcff40c9fb8525789eef9644b1fbd6e";
-      sha256 = "04lzigxv2f4yv9gr1dybsjkcnmv1lj0mx9ls2ry1pzy2l9z6i6cp";
-    };
-  }
-  {
-    goPackagePath = "github.com/rakyll/statik";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rakyll/statik";
-      rev = "79258177a57a85a8ab2eca7ce0936aad80307f4e";
-      sha256 = "14wqh38a7dhm2jgr1lsl2wdvjmkgdapzl2z4a1vl7ncv3x43gkg5";
-    };
-  }
-  {
-    goPackagePath = "github.com/sevlyar/go-daemon";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sevlyar/go-daemon";
-      rev = "fedf95d0cd0be92511436dbc84c290ff1c104f61";
-      sha256 = "1ffjgx75wvpharzq60aqbpl78z1jwx13b21ifcadm1f976vdjq1q";
-    };
-  }
-  {
-    goPackagePath = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev = "dae0fa8d5b0c810a8ab733fbd5510c7cae84eca4";
-      sha256 = "1y1qjcg19z7q9sy32rhc148kdql2aw7xkcm9d6r1blrl0mdgpx0w";
-    };
-  }
-  {
-    goPackagePath = "github.com/ulikunitz/xz";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ulikunitz/xz";
-      rev = "6f934d456d51e742b4eeab20d925a827ef22320a";
-      sha256 = "1qpk02c0nfgfyg110nmbaiy5x12fpn0pm8gy7h1s8pwns133n831";
-    };
-  }
-  {
-    goPackagePath = "github.com/valyala/bytebufferpool";
-    fetch = {
-      type = "git";
-      url = "https://github.com/valyala/bytebufferpool";
-      rev = "cdfbe9377474227bb42120c1e22fd4433e7f69bf";
-      sha256 = "0c6cixd85dvl2gvs7sdh0k2wm8r3grl4fw0jg4w7d78cp8s2k7ag";
-    };
-  }
-  {
-    goPackagePath = "github.com/valyala/quicktemplate";
-    fetch = {
-      type = "git";
-      url = "https://github.com/valyala/quicktemplate";
-      rev = "d08324ac14fa81325830fae7eb30188ec68427f8";
-      sha256 = "0gpc1kcqvcn1f9mz2dww8bhrspnsk2fgxzvx398vy7a0xhxq8vhx";
-    };
-  }
-  {
-    goPackagePath = "gitlab.com/nyarla/go-crypt";
-    fetch = {
-      type = "git";
-      url = "https://gitlab.com/nyarla/go-crypt.git";
-      rev = "d9a5dc2b789bc330075d4b805d9b7c971f2865a1";
-      sha256 = "0249hbwvhy0xywi9b5k8964km27pvfkr3jvliy3azri6vnyvkkx1";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "c2843e01d9a2bc60bb26ad24e09734fdc2d9ec58";
-      sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "d8887717615a059821345a5c23649351b52a1c0b";
-      sha256 = "1wfm6ngxjyj7v5a2dqib6lw8bb2rdnf1kl48diykxjrsddn0s163";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "fead79001313d15903fb4605b4a1b781532cd93e";
-      sha256 = "12vwl6sv6w7q0dyvynjhbp67242rhh77d6nlsb22ajr8rf17c63i";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "5d731a35f4867878fc89f7744f7b6debb3beded6";
-      sha256 = "1ipmjki0i0dvpal1g0vgr8qc77kkvw3ka6yxlm0qzjk9j3579bsq";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/gomail.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/gomail.v2";
-      rev = "81ebce5c23dfd25c6c67194b37d3dd3f338c98b1";
-      sha256 = "0zdykrv5s19lnq0g49p6njldy4cpk4g161vyjafiw7f84h8r28mc";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/mholt/archiver.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/mholt/archiver.v2";
-      rev = "de0d89e255e17c8d75a40122055763e743ab0593";
-      sha256 = "02fsc0za0yi3dg0r5caa8vpxz6kqxjxxlmwzzj5899dlmdvqk57g";
-    };
-  }
-]
diff --git a/pkgs/servers/mesos-dns/default.nix b/pkgs/servers/mesos-dns/default.nix
index 8430f2d61e8..e26b13bb25a 100644
--- a/pkgs/servers/mesos-dns/default.nix
+++ b/pkgs/servers/mesos-dns/default.nix
@@ -4,7 +4,7 @@ buildGoPackage rec {
   pname = "mesos-dns";
   version = "0.1.2";
   rev = "v${version}";
-  
+
   goPackagePath = "github.com/mesosphere/mesos-dns";
 
   # Avoid including the benchmarking test helper in the output:
diff --git a/pkgs/servers/metabase/default.nix b/pkgs/servers/metabase/default.nix
index a85e6bbf71e..2298ecc84ce 100644
--- a/pkgs/servers/metabase/default.nix
+++ b/pkgs/servers/metabase/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "metabase";
-  version = "0.35.4";
+  version = "0.36.4";
 
   src = fetchurl {
     url = "http://downloads.metabase.com/v${version}/metabase.jar";
-    sha256 = "1mggrkd4ih8fak4nk3a8z5677nblvihjvkvgmix080cps44bcfd8";
+    sha256 = "1k6f22ii9vga8j9jxipl1r55msxgag0lbkjxw7vf285z1hdhwylq";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/minio/default.nix b/pkgs/servers/minio/default.nix
index 9f9796b3a5e..19e228b1624 100644
--- a/pkgs/servers/minio/default.nix
+++ b/pkgs/servers/minio/default.nix
@@ -2,22 +2,26 @@
 
 buildGoModule rec {
   pname = "minio";
-  version = "2020-05-01T22-19-14Z";
+  version = "2020-08-08T04-50-06Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "minio";
     rev = "RELEASE.${version}";
-    sha256 = "0yyq5j82rcl8yhn2jg8sjfxii6kzbrbmxvb05yiwv7p0q42ag5rn";
+    sha256 = "0l5yd3k154h3q9sc5psv80n9wpnhpj5sb3r9v9gsqcam46ljwpna";
   };
 
-  vendorSha256 = "15yx5nkyf424v42glg3cx0gkqckdfv1xn25570s9cwf8zid0zlxd";
+  vendorSha256 = "1xxhvgawkj2lq39cxgl4l5v41m6nsask79n2cxfpcgb00fqq147x";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
-  buildFlagsArray = [''-ldflags=
-    -s -w -X github.com/minio/minio/cmd.Version=${version}
-  ''];
+  patchPhase = ''
+    sed -i "s/Version.*/Version = \"${version}\"/g" cmd/build-constants.go
+    sed -i "s/ReleaseTag.*/ReleaseTag = \"RELEASE.${version}\"/g" cmd/build-constants.go
+    sed -i "s/CommitID.*/CommitID = \"${src.rev}\"/g" cmd/build-constants.go
+  '';
 
   passthru.tests.minio = nixosTests.minio;
 
@@ -28,4 +32,4 @@ buildGoModule rec {
     platforms = platforms.unix;
     license = licenses.asl20;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/misc/navidrome/default.nix b/pkgs/servers/misc/navidrome/default.nix
index c07214ce3a5..a14a5039721 100644
--- a/pkgs/servers/misc/navidrome/default.nix
+++ b/pkgs/servers/misc/navidrome/default.nix
@@ -4,11 +4,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "navidrome";
-  version = "0.24.0";
+  version = "0.29.0";
 
   src = fetchurl {
     url = "https://github.com/deluan/navidrome/releases/download/v${version}/navidrome_${version}_Linux_x86_64.tar.gz";
-    sha256 = "1lk9fl2h1rsqirqnz4qmapv9hl2axz7j32p9a011h0n90frabski";
+    sha256 = "0dpv68wvrslgfgh18mb8ficji6k1i9jiid9bfw786andf4rwghyc";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/misc/oven-media-engine/default.nix b/pkgs/servers/misc/oven-media-engine/default.nix
new file mode 100644
index 00000000000..c207a33848d
--- /dev/null
+++ b/pkgs/servers/misc/oven-media-engine/default.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, fetchFromGitHub
+, srt
+, ffmpeg_3_4
+, bc
+, pkgconfig
+, perl
+, openssl
+, zlib
+, ffmpeg
+, libvpx
+, libopus
+, srtp
+, jemalloc
+, ... }:
+
+let
+  ffmpeg = ffmpeg_3_4.overrideAttrs (super: {
+    pname = "${super.pname}-ovenmediaengine";
+    src = fetchFromGitHub {
+      owner = "Airensoft";
+      repo = "FFmpeg";
+      rev = "142b4bb64b64e337f80066e6af935a68627fedae";  # ome/3.4
+      sha256 = "0fla3940q3z0c0ik2xzkbvdfvrdg06ban7wi6y94y8mcipszpp11";
+    };
+  });
+in
+stdenv.mkDerivation rec {
+  pname = "oven-media-engine";
+  version = "0.10.4";
+
+  src = fetchFromGitHub {
+    owner = "AirenSoft";
+    repo = "OvenMediaEngine";
+    rev = "v${version}";
+    sha256 = "15lrlynsldlpa21ryzccf5skgiih6y5fc9qg0bfqh557wnnmml6w";
+  };
+
+  sourceRoot = "source/src";
+  makeFlags = "release CONFIG_LIBRARY_PATHS= CONFIG_PKG_PATHS= GLOBAL_CC=$(CC) GLOBAL_CXX=$(CXX) GLOBAL_LD=$(CXX) SHELL=${stdenv.shell}";
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ bc pkgconfig perl ];
+  buildInputs = [ openssl srt zlib ffmpeg libvpx libopus srtp jemalloc ];
+
+  preBuild = ''
+    patchShebangs core/colorg++
+    patchShebangs core/colorgcc
+    patchShebangs projects/main/update_git_info.sh
+
+    sed -i -e '/^CC =/d' -e '/^CXX =/d' -e '/^AR =/d' projects/third_party/pugixml-1.9/scripts/pugixml.make
+  '';
+
+  installPhase = ''
+    install -Dm0755 bin/RELEASE/OvenMediaEngine $out/bin/OvenMediaEngine
+    install -Dm0644 ../misc/conf_examples/Origin.xml $out/share/examples/origin_conf/Server.xml
+    install -Dm0644 ../misc/conf_examples/Logger.xml $out/share/examples/origin_conf/Logger.xml
+    install -Dm0644 ../misc/conf_examples/Edge.xml $out/share/examples/edge_conf/Server.xml
+    install -Dm0644 ../misc/conf_examples/Logger.xml $out/share/examples/edge_conf/Logger.xml
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Open-source streaming video service with sub-second latency";
+    homepage    = "https://ovenmediaengine.com";
+    license     = licenses.gpl2;
+    maintainers = with maintainers; [ lukegb ];
+    platforms   = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/servers/monitoring/alertmanager-bot/default.nix b/pkgs/servers/monitoring/alertmanager-bot/default.nix
index 8677a8d03f2..f28ef6617c7 100644
--- a/pkgs/servers/monitoring/alertmanager-bot/default.nix
+++ b/pkgs/servers/monitoring/alertmanager-bot/default.nix
@@ -19,7 +19,6 @@ buildGoPackage rec {
     description = "Bot for Prometheus' Alertmanager";
     homepage = "https://github.com/metalmatze/alertmanager-bot";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ mmahut ];
   };
 }
diff --git a/pkgs/servers/monitoring/do-agent/default.nix b/pkgs/servers/monitoring/do-agent/default.nix
index 1d6bb7198e5..bbfdc97b6dc 100644
--- a/pkgs/servers/monitoring/do-agent/default.nix
+++ b/pkgs/servers/monitoring/do-agent/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "do-agent";
-  version = "3.5.6";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "digitalocean";
     repo = "do-agent";
     rev = "${version}";
-    sha256 = "1gl034cslqa30fqy2p9rymgx398s1rcgbmfvzk5zjlrw47327k8i";
+    sha256 = "024fs2yln2i4s5aihwlz103w5wvmcwqx7hz9q3fw3dm18k3fjmn2";
   };
 
   buildFlagsArray = ''
@@ -18,6 +18,12 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
+  doCheck = false;
+
+  postInstall = ''
+    install -Dm444 -t $out/lib/systemd/system $src/packaging/etc/systemd/system/do-agent.service
+  '';
+
   meta = with lib; {
     description = "DigitalOcean droplet system metrics agent";
     longDescription = ''
@@ -30,4 +36,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ yvt ];
     platforms = platforms.linux;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index 293592fc8dc..0bcad77c415 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -1,8 +1,8 @@
-{ lib, buildGoModule, fetchurl, fetchFromGitHub }:
+{ lib, buildGoModule, fetchurl, fetchFromGitHub, nixosTests }:
 
 buildGoModule rec {
   pname = "grafana";
-  version = "7.0.4";
+  version = "7.1.5";
 
   excludedPackages = [ "release_publisher" ];
 
@@ -10,15 +10,15 @@ buildGoModule rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "16vdbxq9vhv71jjk689xx0nn3qr4s5ybzbp41dm09pppvxzibpg7";
+    sha256 = "089z2x6jhiv5cx70vm7f1pyj5avappnaxrwah8jbnlkaz2kisp79";
   };
 
   srcStatic = fetchurl {
     url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
-    sha256 = "1362rwmpv1y32w5m1fd9vqffs32244f0h7d5jm5cigiq2l7ix7n2";
+    sha256 = "0l1lw3y5w4s6qfkmclzc6h6hqwxqmxlppnwsq1zpm2hmrndy440j";
   };
 
-  vendorSha256 = "00xvpxhnvxdf030978paywl794mlmgqzd94b64hh67946acnbjcl";
+  vendorSha256 = "0i0qdfh6cjdjg2mrrabm42427aaxs6a90ydb554ds14k6r4jdf8b";
 
   postPatch = ''
     substituteInPlace pkg/cmd/grafana-server/main.go \
@@ -31,6 +31,8 @@ buildGoModule rec {
     mv grafana-*/{public,conf,tools} $out/share/grafana/
   '';
 
+  passthru.tests = { inherit (nixosTests) grafana; };
+
   meta = with lib; {
     description = "Gorgeous metric viz, dashboards & editors for Graphite, InfluxDB & OpenTSDB";
     license = licenses.asl20;
diff --git a/pkgs/servers/monitoring/kapacitor/default.nix b/pkgs/servers/monitoring/kapacitor/default.nix
index 6f2e51fffd6..0a15daf71c6 100644
--- a/pkgs/servers/monitoring/kapacitor/default.nix
+++ b/pkgs/servers/monitoring/kapacitor/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "kapacitor";
-  version = "1.5.5";
+  version = "1.5.6";
 
   goPackagePath = "github.com/influxdata/kapacitor";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "influxdata";
     repo = "kapacitor";
     rev = "v${version}";
-    sha256 = "17zk7fs6yl5hmhr3inwkafwmg2ihaicj43gdi5888dinhpa9bij1";
+    sha256 = "1jb04lnxjrms7x5nlrsd1s465rramm9z4zkqpfw1vfdsqa2dd8rc";
   };
 
   meta = with lib; {
diff --git a/pkgs/servers/monitoring/loki/default.nix b/pkgs/servers/monitoring/loki/default.nix
index 668695aa8df..ec9d56f2cbb 100644
--- a/pkgs/servers/monitoring/loki/default.nix
+++ b/pkgs/servers/monitoring/loki/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, makeWrapper, systemd }:
+{ stdenv, lib, buildGoPackage, fetchFromGitHub, makeWrapper, systemd }:
 
 buildGoPackage rec {
-  version = "1.5.0";
+  version = "1.6.1";
   pname = "grafana-loki";
   goPackagePath = "github.com/grafana/loki";
 
@@ -11,7 +11,7 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "loki";
-    sha256 = "137lnd69p8qfg2z8l32dr1mrk2lhrxjx392xfij11sy5i9blfc3n";
+    sha256 = "0bakskzizazc5cd6km3n6facc5val5567zinnxg3yjy29xdi64ww";
   };
 
   postPatch = ''
@@ -25,7 +25,7 @@ buildGoPackage rec {
 
   preFixup = stdenv.lib.optionalString stdenv.isLinux ''
     wrapProgram $out/bin/promtail \
-      --prefix LD_LIBRARY_PATH : "${systemd.lib}/lib"
+      --prefix LD_LIBRARY_PATH : "${lib.getLib systemd}/lib"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/monitoring/mtail/default.nix b/pkgs/servers/monitoring/mtail/default.nix
index 5e51750a795..8bd222ddbeb 100644
--- a/pkgs/servers/monitoring/mtail/default.nix
+++ b/pkgs/servers/monitoring/mtail/default.nix
@@ -12,6 +12,9 @@ buildGoModule rec {
   };
 
   vendorSha256 = "02fnvy897cygmipc5snza556qihjwrp1lf9qi9f5dzarphd6d0pw";
+
+  doCheck = false;
+
   subPackages = [ "cmd/mtail" ];
 
   preBuild = ''
@@ -27,4 +30,4 @@ buildGoModule rec {
     homepage = "https://github.com/google/mtail";
     description = "Tool for extracting metrics from application logs";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/monitoring/munin/default.nix b/pkgs/servers/monitoring/munin/default.nix
index 22828e57449..435e613a989 100644
--- a/pkgs/servers/monitoring/munin/default.nix
+++ b/pkgs/servers/monitoring/munin/default.nix
@@ -3,14 +3,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.0.63";
+  version = "2.0.64";
   pname = "munin";
 
   src = fetchFromGitHub {
     owner = "munin-monitoring";
     repo = "munin";
     rev = version;
-    sha256 = "0p1gzy6in15d6596b260qa0a144x8n8567cxdq0x4arw18004s3a";
+    sha256 = "00gvvy7s2h1kxdxss7n63ir87fn66kq48lp94ackdyj49526maz4";
   };
 
   buildInputs = [
diff --git a/pkgs/servers/monitoring/plugins/wmiplus/default.nix b/pkgs/servers/monitoring/plugins/wmiplus/default.nix
index 9a4e5d706e9..dacd4e2c5b7 100644
--- a/pkgs/servers/monitoring/plugins/wmiplus/default.nix
+++ b/pkgs/servers/monitoring/plugins/wmiplus/default.nix
@@ -4,7 +4,7 @@
 
 stdenv.mkDerivation rec {
   pname = "check-wmiplus";
-  version = "1.64";
+  version = "1.65";
 
   # We fetch from github.com instead of the proper upstream as nix-build errors
   # out with 406 when trying to fetch the sources
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     owner = "speartail";
     repo = "checkwmiplus";
     rev = "v${version}";
-    sha256 = "1m36rd2wnc5dk4mm9q4ch67w19144dl112p9s6lhc1sh6h25ln6r";
+    sha256 = "1as0iyhy4flpm37mb7lvah7rnd6ax88appjm1icwhy7iq03wi8pl";
   };
 
   patches = [
diff --git a/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix b/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix
index a766aae3834..33f93cd130d 100644
--- a/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix
@@ -13,13 +13,14 @@ buildGoModule rec {
 
   vendorSha256 = "09x8y8pmgfn897hvnk122ry460y12b8a7y5fafri5wn9vxab9r82";
 
+  doCheck = false;
+
   passthru.tests = { inherit (nixosTests.prometheus-exporters) apcupsd; };
 
   meta = with stdenv.lib; {
     description = "Provides a Prometheus exporter for the apcupsd Network Information Server (NIS)";
     homepage = "https://github.com/mdlayher/apcupsd_exporter";
     license = licenses.mit;
-    maintainers = with maintainers; [ maintainers."1000101" mdlayher ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ _1000101 mdlayher ];
   };
 }
diff --git a/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix b/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix
index 21c469694c8..03f09992b81 100644
--- a/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix
@@ -22,6 +22,5 @@ buildGoPackage rec {
     homepage = "https://github.com/ribbybibby/s3_exporter";
     license = licenses.asl20;
     maintainers = [ maintainers.mmahut ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/servers/monitoring/prometheus/default.nix b/pkgs/servers/monitoring/prometheus/default.nix
index d4622a21f6c..7e729cd366f 100644
--- a/pkgs/servers/monitoring/prometheus/default.nix
+++ b/pkgs/servers/monitoring/prometheus/default.nix
@@ -1,13 +1,13 @@
-{ lib, go, buildGoPackage, fetchFromGitHub, mkYarnPackage }:
+{ lib, go, buildGoPackage, fetchFromGitHub, mkYarnPackage, nixosTests }:
 
 let
-  version = "2.19.2";
+  version = "2.20.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "prometheus";
     repo = "prometheus";
-    sha256 = "119csghjmw4lphpnnhaxwimmir5bn455g92rb40j3y9pyv0hlfsh";
+    sha256 = "0svhx08pbz55nhn6g9pn79zbhyvr394k5w3ny1mq3wp382h62r5j";
   };
 
   webui = mkYarnPackage {
@@ -61,6 +61,8 @@ in buildGoPackage rec {
 
   doCheck = true;
 
+  passthru.tests = { inherit (nixosTests) prometheus; };
+
   meta = with lib; {
     description = "Service monitoring system and time series database";
     homepage = "https://prometheus.io";
diff --git a/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix b/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
index 01832467267..6f2fe462a46 100644
--- a/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1dqpa180pbdi2gcmp991d4cry560mx5rm5l9x065s9n9gnd38hvl";
 
+  doCheck = false;
+
   passthru.tests = { inherit (nixosTests.prometheus-exporters) dnsmasq; };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix b/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix
index 06eba474c99..e6dcfb4a346 100644
--- a/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix
@@ -22,6 +22,5 @@ buildGoPackage rec {
     homepage = "https://github.com/mvisonneau/gitlab-ci-pipelines-exporter";
     license = licenses.asl20;
     maintainers = [ maintainers.mmahut ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/servers/monitoring/prometheus/keylight-exporter.nix b/pkgs/servers/monitoring/prometheus/keylight-exporter.nix
index 76215dc27e8..47a91d7e3a8 100644
--- a/pkgs/servers/monitoring/prometheus/keylight-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/keylight-exporter.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0w065ls8dp687jmps4xdffcarss1wyls14dngr43g58xjw6519gb";
 
+  doCheck = false;
+
   passthru.tests = { inherit (nixosTests.prometheus-exporters) keylight; };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/monitoring/prometheus/lnd-exporter.nix b/pkgs/servers/monitoring/prometheus/lnd-exporter.nix
index 5728243b050..9499f70e71b 100644
--- a/pkgs/servers/monitoring/prometheus/lnd-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/lnd-exporter.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "083h2ksnqmcr48958r5pag9a28xvljpc3prip6wn70ifp2wpjpin";
 
+  doCheck = false;
+
   passthru.tests = { inherit (nixosTests.prometheus-exporters) lnd; };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix b/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
index f9c9b3ff344..fe1ce5e4a99 100644
--- a/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0i5x4d3ra0s41knmybbg8gnjxgraxkid6y3gfkjwa65xcbp7hr7q";
 
+  doCheck = false;
+
   passthru.tests = { inherit (nixosTests.prometheus-exporters) mikrotik; };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/monitoring/prometheus/modemmanager-exporter.nix b/pkgs/servers/monitoring/prometheus/modemmanager-exporter.nix
new file mode 100644
index 00000000000..4c49c94f286
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/modemmanager-exporter.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
+
+buildGoModule rec {
+  pname = "modemmanager-exporter";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "mdlayher";
+    repo = "modemmanager_exporter";
+    rev = "v${version}";
+    sha256 = "0d8z7qzk5j5jj0ixkwpi8dw9kki78mxrajdlzzcj2rcgbnwair91";
+  };
+
+  vendorSha256 = "0f6v97cvzdz7wygswpm87wf8r169x5rw28908vqhmqk644hli4zy";
+
+  doCheck = false;
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) modemmanager; };
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/mdlayher/modemmanager_exporter";
+    description = "Prometheus exporter for ModemManager and its devices.";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mdlayher ];
+  };
+}
diff --git a/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix b/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
index 68bac5c560e..2c2fabf2357 100644
--- a/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
@@ -22,6 +22,5 @@ buildGoPackage rec {
     homepage = "https://github.com/martin-helmich/prometheus-nginxlog-exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ mmahut ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/servers/monitoring/prometheus/postfix-exporter.nix b/pkgs/servers/monitoring/prometheus/postfix-exporter.nix
index 506d334a921..c66373e9298 100644
--- a/pkgs/servers/monitoring/prometheus/postfix-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/postfix-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, makeWrapper, nixosTests
+{ stdenv, lib, buildGoPackage, fetchFromGitHub, makeWrapper, nixosTests
 , systemd, withSystemdSupport ? true }:
 
 with stdenv.lib;
@@ -44,7 +44,7 @@ buildGoPackage rec {
 
   postInstall = optionalString withSystemdSupport ''
     wrapProgram $out/bin/postfix_exporter \
-      --prefix LD_LIBRARY_PATH : "${systemd.lib}/lib"
+      --prefix LD_LIBRARY_PATH : "${lib.getLib systemd}/lib"
   '';
 
   passthru.tests = { inherit (nixosTests.prometheus-exporters) postfix; };
diff --git a/pkgs/servers/monitoring/prometheus/process-exporter.nix b/pkgs/servers/monitoring/prometheus/process-exporter.nix
index a29ab649633..b9cbfd8d63e 100644
--- a/pkgs/servers/monitoring/prometheus/process-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/process-exporter.nix
@@ -25,7 +25,7 @@ buildGoPackage rec {
     description = "Prometheus exporter that mines /proc to report on selected processes";
     homepage = "https://github.com/ncabatoff/process-exporter";
     license = licenses.mit;
-    maintainers = with maintainers; [ maintainers."1000101" ];
+    maintainers = with maintainers; [ _1000101 ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/monitoring/prometheus/varnish-exporter.nix b/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
index 0a9dbfbef88..c94be3490fa 100644
--- a/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
@@ -20,8 +20,6 @@ buildGoModule rec {
       --prefix PATH : "${varnish}/bin"
   '';
 
-  doCheck = true;
-
   passthru.tests = { inherit (nixosTests.prometheus-exporters) varnish; };
 
   meta = {
diff --git a/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix b/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix
index 7e9843dc98b..8b7d346e560 100644
--- a/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix
+++ b/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix
@@ -4122,11 +4122,11 @@
       };
     }
     {
-      name = "elliptic___elliptic_6.5.2.tgz";
+      name = "elliptic___elliptic_6.5.3.tgz";
       path = fetchurl {
-        name = "elliptic___elliptic_6.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz";
-        sha1 = "05c5678d7173c049d8ca433552224a495d0e3762";
+        name = "elliptic___elliptic_6.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz";
+        sha1 = "cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6";
       };
     }
     {
@@ -11698,11 +11698,11 @@
       };
     }
     {
-      name = "websocket_extensions___websocket_extensions_0.1.3.tgz";
+      name = "websocket_extensions___websocket_extensions_0.1.4.tgz";
       path = fetchurl {
-        name = "websocket_extensions___websocket_extensions_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz";
-        sha1 = "5d2ff22977003ec687a4b87073dfbbac146ccf29";
+        name = "websocket_extensions___websocket_extensions_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz";
+        sha1 = "7f8473bc839dfd87608adb95d7eb075211578a42";
       };
     }
     {
diff --git a/pkgs/servers/monitoring/sensu-go/default.nix b/pkgs/servers/monitoring/sensu-go/default.nix
index c71a07c9e8e..7af9970b507 100644
--- a/pkgs/servers/monitoring/sensu-go/default.nix
+++ b/pkgs/servers/monitoring/sensu-go/default.nix
@@ -4,22 +4,22 @@ let
   generic = { subPackages, pname, postInstall ? "" }:
     buildGoModule rec {
       inherit pname;
-      version = "5.21.0";
+      version = "5.21.2";
       shortRev = "3a1ac58"; # for internal version info
 
-      goPackagePath = "github.com/sensu/sensu-go";
-
       src = fetchFromGitHub {
         owner = "sensu";
         repo = "sensu-go";
         rev = "v${version}";
-        sha256 = "0zkwhr2z8yy8k2lal026i565hxxh51jrgplq83bbisc24xpcfg9s";
+        sha256 = "1hsvdqz0ckk8d1yxinqwylw97jd3gnf7c63zkjly87vasg98qk9x";
       };
 
       inherit subPackages postInstall;
 
   vendorSha256 = "06yfaj9k5n3jw8a142sscaqrvdw2lq51v884lp65wjdwy5c3jbba";
 
+  doCheck = false;
+
       buildFlagsArray = let
         versionPkg = "github.com/sensu/sensu-go/version";
       in ''
@@ -66,4 +66,4 @@ in
     pname = "sensu-go-agent";
     subPackages = [ "cmd/sensu-agent" ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/monitoring/telegraf/default.nix b/pkgs/servers/monitoring/telegraf/default.nix
index 7b284ac122a..b0e9ef356a6 100644
--- a/pkgs/servers/monitoring/telegraf/default.nix
+++ b/pkgs/servers/monitoring/telegraf/default.nix
@@ -1,10 +1,8 @@
-{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests, fetchpatch }:
 
 buildGoModule rec {
   pname = "telegraf";
-  version = "1.14.5";
-
-  goPackagePath = "github.com/influxdata/telegraf";
+  version = "1.15.2";
 
   excludedPackages = "test";
 
@@ -14,10 +12,19 @@ buildGoModule rec {
     owner = "influxdata";
     repo = "telegraf";
     rev = "v${version}";
-    sha256 = "1rnrg1q0dylr62cfkzspp47w818cja3hs6bbarcksmp0s23rq6lz";
+    sha256 = "045wjpq29dr0s48ns3a4p8pw1j0ssfcw6m91iim4pkrppj7bm2di";
   };
 
-  vendorSha256 = "1mjlakf88fa75qldkz62aja0wn0m6xqfr45vjy0lwpi0adc0fz70";
+  patches = [
+    # https://github.com/influxdata/telegraf/pull/7988
+    # fix broken cgo vendoring
+    (fetchpatch {
+      url = "https://github.com/influxdata/telegraf/commit/63e1f41d8ff246d191d008ff7f69d69cc34b4fae.patch";
+      sha256 = "0ikifc4414bid3g6hhxz18cw71z63s5g805klx98vrndjlpbqkzw";
+    })
+  ];
+
+  vendorSha256 = "0f95xigpkindd7dmci8kqpqq5dlirimbqh8ai73142asbrd5h4yr";
 
   buildFlagsArray = [ ''-ldflags=
     -w -s -X main.version=${version}
@@ -31,4 +38,4 @@ buildGoModule rec {
     homepage = "https://www.influxdata.com/time-series-platform/telegraf/";
     maintainers = with maintainers; [ mic92 roblabla foxit64 ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/monitoring/thanos/default.nix b/pkgs/servers/monitoring/thanos/default.nix
index 9970fab8ed2..1b4e46b8f0d 100644
--- a/pkgs/servers/monitoring/thanos/default.nix
+++ b/pkgs/servers/monitoring/thanos/default.nix
@@ -1,16 +1,18 @@
 { stdenv, buildGoModule, fetchFromGitHub }:
 buildGoModule rec {
   pname = "thanos";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "thanos-io";
     repo = "thanos";
-    sha256 = "03a964myry84ig8akim6vs6izl15hdpf5ggg4z5179ydbmvnq3lq";
+    sha256 = "1y3jaj1sxbn9m1c2rihjw229qx4q35l8l70xiny34qhmpzp6y00p";
   };
 
-  vendorSha256 = "1jpw7k76li4dlfhhzy175198921zrdm09nnhqpmh7p80z252n936";
+  vendorSha256 = "0ixriy5i1qc8hnslmiyd3qfw1g14zlmcslqwn2a9fpk7h0hwinba";
+
+  doCheck = false;
 
   subPackages = "cmd/thanos";
 
@@ -30,4 +32,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ basvandijk ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/monitoring/timescale-prometheus/default.nix b/pkgs/servers/monitoring/timescale-prometheus/default.nix
new file mode 100644
index 00000000000..6a0383610eb
--- /dev/null
+++ b/pkgs/servers/monitoring/timescale-prometheus/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "timescale-prometheus";
+  version = "0.1.0-beta.4";
+
+  src = fetchFromGitHub {
+    owner = "timescale";
+    repo = pname;
+    rev = "${version}";
+    sha256 = "1q9zjxxjxa5kkhlsh69bvgns3kzf23z84jjzg294qb7y7xypym5q";
+  };
+
+  vendorSha256 = "sha256:0y5rq2y48kf2z1z3a8ags6rqzfvjs54klk2679fk8x0yjamj5x04";
+
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/timescale/timescale-prometheus/pkg/version.Version=${version} -X github.com/timescale/timescale-prometheus/pkg/version.CommitHash=${src.rev}" ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "An open-source analytical platform for Prometheus metrics";
+    homepage = "https://github.com/timescale/timescale-prometheus";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ _0x4A6F ];
+  };
+}
diff --git a/pkgs/servers/monitoring/zabbix/server.nix b/pkgs/servers/monitoring/zabbix/server.nix
index fdf3fd476df..9d0e1c199d3 100644
--- a/pkgs/servers/monitoring/zabbix/server.nix
+++ b/pkgs/servers/monitoring/zabbix/server.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, curl, libevent, libiconv, libxml2, openssl, pcre, zlib
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, curl, libevent, libiconv, libxml2, openssl, pcre, zlib
 , jabberSupport ? true, iksemel
 , ldapSupport ? true, openldap
 , odbcSupport ? true, unixODBC
@@ -25,7 +25,7 @@ in
         inherit sha256;
       };
 
-      nativeBuildInputs = [ pkgconfig ];
+      nativeBuildInputs = [ autoreconfHook pkgconfig ];
       buildInputs = [
         curl
         libevent
@@ -65,6 +65,13 @@ in
         find database -name data.sql -exec sed -i 's|/usr/bin/||g' {} +
       '';
 
+      preAutoreconf = ''
+        for i in $(find . -type f -name "*.m4"); do
+          substituteInPlace $i \
+            --replace 'test -x "$PKG_CONFIG"' 'type -P "$PKG_CONFIG" >/dev/null'
+        done
+      '';
+
       postInstall = ''
         mkdir -p $out/share/zabbix/database/
         cp -r include $out/
diff --git a/pkgs/servers/monitoring/zabbix/versions.nix b/pkgs/servers/monitoring/zabbix/versions.nix
index c75df46cf04..2552964fe88 100644
--- a/pkgs/servers/monitoring/zabbix/versions.nix
+++ b/pkgs/servers/monitoring/zabbix/versions.nix
@@ -1,12 +1,12 @@
 generic: {
-  v44 = generic {
-    version = "4.4.8";
-    sha256 = "0l9n4l5179lf90krv1kb0lraipj7q4hyba6r48n6rj2zqx2j4mn0";
+  v50 = generic {
+    version = "5.0.3";
+    sha256 = "1dc3fb9pa2cr6mfwgfyy1hpx26pbrws7989wj2kiiilmvimvrz1l";
   };
 
   v40 = generic {
-    version = "4.0.20";
-    sha256 = "0h6qx4imrf5inmmczxir81a9xhra8a1dxxv538mqhxhbpqn1yh3w";
+    version = "4.0.24";
+    sha256 = "01nm0pqsb168qawm1j7b3lixbwkz6hi8hd2052q6dlzqm7s2mi2s";
   };
 
   v30 = generic {
diff --git a/pkgs/servers/monitoring/zabbix/web.nix b/pkgs/servers/monitoring/zabbix/web.nix
index a75deff3db2..f677fe5c0af 100644
--- a/pkgs/servers/monitoring/zabbix/web.nix
+++ b/pkgs/servers/monitoring/zabbix/web.nix
@@ -18,7 +18,7 @@ import ./versions.nix ({ version, sha256 }:
 
     installPhase = ''
       mkdir -p $out/share/zabbix/
-      cp -a frontends/php/. $out/share/zabbix/
+      cp -a ${if stdenv.lib.versionAtLeast version "5.0.0" then "ui/." else "frontends/php/."} $out/share/zabbix/
       cp ${phpConfig} $out/share/zabbix/conf/zabbix.conf.php
     '';
 
diff --git a/pkgs/servers/mpd/clientlib.nix b/pkgs/servers/mpd/clientlib.nix
index cb02a768478..3016b7dba83 100644
--- a/pkgs/servers/mpd/clientlib.nix
+++ b/pkgs/servers/mpd/clientlib.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, meson, ninja, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
-  version = "2.18";
+  version = "2.19";
   pname = "libmpdclient";
 
   src = fetchFromGitHub {
     owner  = "MusicPlayerDaemon";
     repo   = "libmpdclient";
     rev    = "v${version}";
-    sha256 = "0p2dw3jwyl34azzvr9bm7q6ni8v4ix9qr5lig62xskvrrbjfc4a6";
+    sha256 = "01agvjscdxagw6jcfx0wg81c4b6p8rh0hp3slycmjs2b835kvmq2";
   };
 
   nativeBuildInputs = [ meson ninja ]
diff --git a/pkgs/servers/mpd/default.nix b/pkgs/servers/mpd/default.nix
index 44118277a28..d013f431896 100644
--- a/pkgs/servers/mpd/default.nix
+++ b/pkgs/servers/mpd/default.nix
@@ -110,29 +110,15 @@ let
 
     in stdenv.mkDerivation rec {
       pname = "mpd";
-      version = "0.21.23";
+      version = "0.21.25";
 
       src = fetchFromGitHub {
         owner  = "MusicPlayerDaemon";
         repo   = "MPD";
         rev    = "v${version}";
-        sha256 = "0jnhjhm1ilpcwb4f58b8pgyzjq3dlr0j2xyk0zck0afwkdxyj9cb";
+        sha256 = "1yjp8pwr2zn0mp39ls1w0pl37zrjn5m9ycgjmcsw2wpa4709r356";
       };
 
-      # Won't be needed when 0.21.24 will be out
-      patches = [
-        # Tests fail otherwise, see https://github.com/MusicPlayerDaemon/MPD/issues/844
-        (fetchpatch {
-          url = "https://github.com/MusicPlayerDaemon/MPD/commit/7aea2853612743e111ae5e947c8d467049e291a8.patch";
-          sha256 = "1bmxlsaiz3wlg1yyc4rkwsmgvc0pirv0s1vdxxsn91yssmh16c2g";
-          excludes = [
-            # The patch fails otherwise because it tries to update the NEWS
-            # file which doesn't have the title "ver 0.21.24" yet.
-            "NEWS"
-          ];
-        })
-      ];
-
       buildInputs = [
         glib
         boost
diff --git a/pkgs/servers/mqtt/mosquitto/default.nix b/pkgs/servers/mqtt/mosquitto/default.nix
index 8f632ed9b58..b2c52d77df5 100644
--- a/pkgs/servers/mqtt/mosquitto/default.nix
+++ b/pkgs/servers/mqtt/mosquitto/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mosquitto";
-  version = "1.6.10";
+  version = "1.6.11";
 
   src = fetchFromGitHub {
     owner  = "eclipse";
     repo   = "mosquitto";
     rev    = "v${version}";
-    sha256 = "0g9iywm0s08b0ax1qx4j5lixfc1m6p48lv14vlil6wns4azc3fsc";
+    sha256 = "05mwghfmp459f7c0yph0xp1a5k6c0wghxzqm0n8jw7yfj7qixv88";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/nats-server/default.nix b/pkgs/servers/nats-server/default.nix
index 743fc0fa1e5..b0ae2ebc2dc 100644
--- a/pkgs/servers/nats-server/default.nix
+++ b/pkgs/servers/nats-server/default.nix
@@ -20,6 +20,5 @@ buildGoPackage rec {
     license = licenses.asl20;
     maintainers = [ maintainers.swdunlop ];
     homepage = "https://nats.io/";
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/servers/nats-streaming-server/default.nix b/pkgs/servers/nats-streaming-server/default.nix
index efaec689a1a..e5bce49d057 100644
--- a/pkgs/servers/nats-streaming-server/default.nix
+++ b/pkgs/servers/nats-streaming-server/default.nix
@@ -19,6 +19,5 @@ buildGoPackage rec {
     license = licenses.asl20;
     maintainers = [ maintainers.swdunlop ];
     homepage = "https://nats.io/";
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix
index 4c43f141d18..a6fcf632793 100644
--- a/pkgs/servers/nextcloud/default.nix
+++ b/pkgs/servers/nextcloud/default.nix
@@ -33,12 +33,12 @@ in {
   };
 
   nextcloud18 = generic {
-    version = "18.0.6";
-    sha256 = "1chmkg31jc1nr53y8r886mmd2jzb78094mrx7ggcfpjfkkv8b89s";
+    version = "18.0.7";
+    sha256 = "0pka87ccrds17n6n5w5a80mc1s5yrf8d4mf6wsfaypwjbm3wfb2b";
   };
 
   nextcloud19 = generic {
-    version = "19.0.0";
-    sha256 = "1bhazqj5f02sclh5pmifzqfahhhfqypixbvkgrnlgqy5ayb44gfj";
+    version = "19.0.1";
+    sha256 = "0bavwvjjgx62i150wqh4gqavjva3mnhx6k3im79ib6ck1ph13wsf";
   };
 }
diff --git a/pkgs/servers/nfs-ganesha/default.nix b/pkgs/servers/nfs-ganesha/default.nix
new file mode 100644
index 00000000000..adbcbb63759
--- /dev/null
+++ b/pkgs/servers/nfs-ganesha/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, cmake, pkg-config
+, krb5, xfsprogs, jemalloc, dbus, libcap
+, ntirpc, liburcu, bison, flex, nfs-utils
+} :
+
+stdenv.mkDerivation rec {
+  pname = "nfs-ganesha";
+  version = "3.3";
+
+  src = fetchFromGitHub {
+    owner = "nfs-ganesha";
+    repo = "nfs-ganesha";
+    rev = "V${version}";
+    sha256 = "1w48rqrbqah0hnirvjdz8lyr9ah8b73j3cgsppb04gnrmpssgmb6";
+  };
+
+  patches = [ ./sysstatedir.patch ];
+
+  preConfigure = "cd src";
+
+  cmakeFlags = [ "-DUSE_SYSTEM_NTIRPC=ON" ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    bison
+    flex
+  ];
+
+  buildInputs = [
+    krb5
+    xfsprogs
+    jemalloc
+    dbus.lib
+    libcap
+    ntirpc
+    liburcu
+    nfs-utils
+  ];
+
+  meta = with stdenv.lib; {
+    description = "NFS server that runs in user space";
+    homepage = "https://github.com/nfs-ganesha/nfs-ganesha/wiki";
+    maintainers = [ maintainers.markuskowa ];
+    platforms = platforms.linux;
+    license = licenses.lgpl3Plus;
+  };
+}
diff --git a/pkgs/servers/nfs-ganesha/sysstatedir.patch b/pkgs/servers/nfs-ganesha/sysstatedir.patch
new file mode 100644
index 00000000000..534f71743e7
--- /dev/null
+++ b/pkgs/servers/nfs-ganesha/sysstatedir.patch
@@ -0,0 +1,15 @@
+diff --git a/src/include/config-h.in.cmake b/src/include/config-h.in.cmake
+index 51697310b..2b5f91075 100644
+--- a/src/include/config-h.in.cmake
++++ b/src/include/config-h.in.cmake
+@@ -72,8 +72,8 @@
+ #define NFS_GANESHA 1
+ 
+ #define GANESHA_CONFIG_PATH "@SYSCONFDIR@/ganesha/ganesha.conf"
+-#define GANESHA_PIDFILE_PATH "@SYSSTATEDIR@/run/ganesha.pid"
+-#define NFS_V4_RECOV_ROOT "@SYSSTATEDIR@/lib/nfs/ganesha"
++#define GANESHA_PIDFILE_PATH "/run/ganesha.pid"
++#define NFS_V4_RECOV_ROOT "/var/lib/nfs/ganesha"
+ /**
+  * @brief Default value for krb5_param.ccache_dir
+  */
diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix
index 54d5e8484bc..4d5c24c7304 100644
--- a/pkgs/servers/nosql/arangodb/default.nix
+++ b/pkgs/servers/nosql/arangodb/default.nix
@@ -32,15 +32,9 @@ let
       # do not set GCC's -march=xxx based on builder's /proc/cpuinfo
       "-DUSE_OPTIMIZE_FOR_ARCHITECTURE=OFF"
       # also avoid using builder's /proc/cpuinfo
-    ] ++
-    { westmere       = [ "-DHAVE_SSE42=ON" "-DASM_OPTIMIZATIONS=ON" ];
-      sandybridge    = [ "-DHAVE_SSE42=ON" "-DASM_OPTIMIZATIONS=ON" ];
-      ivybridge      = [ "-DHAVE_SSE42=ON" "-DASM_OPTIMIZATIONS=ON" ];
-      haswell        = [ "-DHAVE_SSE42=ON" "-DASM_OPTIMIZATIONS=ON" ];
-      broadwell      = [ "-DHAVE_SSE42=ON" "-DASM_OPTIMIZATIONS=ON" ];
-      skylake        = [ "-DHAVE_SSE42=ON" "-DASM_OPTIMIZATIONS=ON" ];
-      skylake-avx512 = [ "-DHAVE_SSE42=ON" "-DASM_OPTIMIZATIONS=ON" ];
-    }.${stdenv.hostPlatform.platform.gcc.arch or ""} or [ "-DHAVE_SSE42=OFF" "-DASM_OPTIMIZATIONS=OFF" ];
+      "-DHAVE_SSE42=${if stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}"
+      "-DASM_OPTIMIZATIONS=${if stdenv.hostPlatform.sse4_2Support then "ON" else "OFF"}"
+    ];
 
     enableParallelBuilding = true;
 
diff --git a/pkgs/servers/nosql/influxdb/default.nix b/pkgs/servers/nosql/influxdb/default.nix
index 4bddd77248a..db07bdc96a4 100644
--- a/pkgs/servers/nosql/influxdb/default.nix
+++ b/pkgs/servers/nosql/influxdb/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "influxdb";
-  version = "1.8.0";
+  version = "1.8.2";
 
   src = fetchFromGitHub {
     owner = "influxdata";
     repo = pname;
     rev = "v${version}";
-    sha256 = "111n36xifmd644xp80imqxx61nlap6fdwx1di2qphlqb43z99jrq";
+    sha256 = "11zkia43i3in1xv84iz6rm9cfhf4k6nxn144m7dz7a7nv3chi20g";
   };
 
   vendorSha256 = "097x3z1fhdl5s3ni2qzbqxqr60l6lqcrbikq20fs052dp287q0sp";
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
   excludedPackages = "test";
@@ -23,4 +25,4 @@ buildGoModule rec {
     homepage = "https://influxdata.com/";
     maintainers = with maintainers; [ offline zimbatm ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/nosql/mongodb/asio-no-experimental-string-view-4-2.patch b/pkgs/servers/nosql/mongodb/asio-no-experimental-string-view-4-2.patch
new file mode 100644
index 00000000000..3720dd9ba31
--- /dev/null
+++ b/pkgs/servers/nosql/mongodb/asio-no-experimental-string-view-4-2.patch
@@ -0,0 +1,22 @@
+--- a/src/third_party/asio-master/asio/include/asio/detail/config.hpp
++++ b/src/third_party/asio-master/asio/include/asio/detail/config.hpp
+@@ -831,20 +831,8 @@
+ #     endif // (__cplusplus >= 201402)
+ #    endif // (_LIBCPP_VERSION < 7000)
+ #   else // defined(ASIO_HAS_CLANG_LIBCXX)
+-#    if (__cplusplus >= 201402)
+-#     if __has_include(<experimental/string_view>)
+-#      define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1
+-#     endif // __has_include(<experimental/string_view>)
+-#    endif // (__cplusplus >= 201402)
+ #   endif // // defined(ASIO_HAS_CLANG_LIBCXX)
+ #  endif // defined(__clang__)
+-#  if defined(__GNUC__)
+-#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) || (__GNUC__ > 4)
+-#    if (__cplusplus >= 201402)
+-#     define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1
+-#    endif // (__cplusplus >= 201402)
+-#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) || (__GNUC__ > 4)
+-#  endif // defined(__GNUC__)
+ # endif // !defined(ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW)
+ #endif // !defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
\ No newline at end of file
diff --git a/pkgs/servers/nosql/mongodb/forget-build-dependencies-4-2.patch b/pkgs/servers/nosql/mongodb/forget-build-dependencies-4-2.patch
new file mode 100644
index 00000000000..6d65238f22a
--- /dev/null
+++ b/pkgs/servers/nosql/mongodb/forget-build-dependencies-4-2.patch
@@ -0,0 +1,36 @@
+# MongoDB keeps track of its build parameters, which tricks nix into
+# keeping dependencies to build inputs in the final output.
+# We remove the build flags from buildInfo data.
+--- a/site_scons/mongo/generators.py
++++ b/site_scons/mongo/generators.py
+@@ -33,30 +33,12 @@ def default_buildinfo_environment_data():
+             True,
+             False,
+         ),
+-        (
+-            'ccflags',
+-            '$CCFLAGS',
+-            True,
+-            False,
+-        ),
+         (
+             'cxx',
+             '$CXX_VERSION',
+             True,
+             False,
+         ),
+-        (
+-            'cxxflags',
+-            '$CXXFLAGS',
+-            True,
+-            False,
+-        ),
+-        (
+-            'linkflags',
+-            '$LINKFLAGS',
+-            True,
+-            False,
+-        ),
+         (
+             'target_arch',
+             '$TARGET_ARCH',
\ No newline at end of file
diff --git a/pkgs/servers/nosql/mongodb/forget-build-dependencies.patch b/pkgs/servers/nosql/mongodb/forget-build-dependencies.patch
index 897618cceb1..37b4c259f2a 100644
--- a/pkgs/servers/nosql/mongodb/forget-build-dependencies.patch
+++ b/pkgs/servers/nosql/mongodb/forget-build-dependencies.patch
@@ -1,3 +1,6 @@
+# MongoDB keeps track of its build parameters, which tricks nix into
+# keeping dependencies to build inputs in the final output.
+# We remove the build flags from buildInfo data.
 --- a/site_scons/mongo/generators.py
 +++ b/site_scons/mongo/generators.py
 @@ -18,10 +18,7 @@ def default_buildinfo_environment_data():
diff --git a/pkgs/servers/nosql/mongodb/mongodb.nix b/pkgs/servers/nosql/mongodb/mongodb.nix
index 8ffdbcd63c4..f57ff746198 100644
--- a/pkgs/servers/nosql/mongodb/mongodb.nix
+++ b/pkgs/servers/nosql/mongodb/mongodb.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, scons, boost, gperftools, pcre-cpp, snappy, zlib, libyamlcpp
-, sasl, openssl, libpcap, python27, curl, Security, CoreFoundation, cctools }:
+{ stdenv, fetchurl, sconsPackages, boost, gperftools, pcre-cpp, snappy, zlib, libyamlcpp
+, sasl, openssl, libpcap, python27, python38, curl, Security, CoreFoundation, cctools }:
 
 # Note:
 # The command line tools are written in Go as part of a different package (mongodb-tools)
@@ -11,6 +11,17 @@ with stdenv.lib;
 }@args:
 
 let
+  variants = if versionAtLeast version "4.2"
+    then { python = python38.withPackages (ps: with ps; [ pyyaml cheetah3 psutil setuptools ]);
+            scons = sconsPackages.scons_latest;
+            mozjsVersion = "60";
+            mozjsReplace = "defined(HAVE___SINCOS)";
+          }
+    else { python = python27.withPackages (ps: with ps; [ pyyaml typing cheetah ]);
+            scons = sconsPackages.scons_3_1_2;
+            mozjsVersion = "45";
+            mozjsReplace = "defined(HAVE_SINCOS)";
+          };
   python = python27.withPackages (ps: with ps; [ pyyaml typing cheetah ]);
   system-libraries = [
     "boost"
@@ -27,14 +38,14 @@ let
 
 in stdenv.mkDerivation rec {
   inherit version;
-  name = "mongodb-${version}";
+  pname = "mongodb";
 
   src = fetchurl {
     url = "https://fastdl.mongodb.org/src/mongodb-src-r${version}.tar.gz";
     inherit sha256;
   };
 
-  nativeBuildInputs = [ scons.py2 ];
+  nativeBuildInputs = [ variants.scons ];
   buildInputs = [
     boost
     curl
@@ -43,7 +54,7 @@ in stdenv.mkDerivation rec {
     libyamlcpp
     openssl
     pcre-cpp
-    python
+    variants.python
     sasl
     snappy
     zlib
@@ -59,7 +70,7 @@ in stdenv.mkDerivation rec {
     substituteInPlace SConstruct \
         --replace "env = Environment(" "env = Environment(ENV = os.environ,"
   '' + stdenv.lib.optionalString stdenv.isDarwin ''
-    substituteInPlace src/third_party/mozjs-45/extract/js/src/jsmath.cpp --replace 'defined(HAVE_SINCOS)' 0
+    substituteInPlace src/third_party/mozjs-${variants.mozjsVersion}/extract/js/src/jsmath.cpp --replace '${variants.mozjsReplace}' 0
 
     substituteInPlace src/third_party/s2/s1angle.cc --replace drem remainder
     substituteInPlace src/third_party/s2/s1interval.cc --replace drem remainder
@@ -102,6 +113,13 @@ in stdenv.mkDerivation rec {
     rm -f "$out/bin/install_compass" || true
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    "$out/bin/mongo" --version
+    runHook postInstallCheck
+  '';
+
   prefixKey = "--prefix=";
 
   enableParallelBuilding = true;
diff --git a/pkgs/servers/nosql/mongodb/v4_2.nix b/pkgs/servers/nosql/mongodb/v4_2.nix
new file mode 100644
index 00000000000..3ebe69daca1
--- /dev/null
+++ b/pkgs/servers/nosql/mongodb/v4_2.nix
@@ -0,0 +1,17 @@
+{ stdenv, callPackage, lib, sasl, boost, Security, CoreFoundation, cctools }:
+
+let
+  buildMongoDB = callPackage ./mongodb.nix {
+    inherit sasl;
+    inherit boost;
+    inherit Security;
+    inherit CoreFoundation;
+    inherit cctools;
+  };
+in buildMongoDB {
+  version = "4.2.8";
+  sha256 = "13yvhi1258skdni00bh6ph609whqsmhiimhyqy1gs2liwdvh5278";
+  patches =
+    [ ./forget-build-dependencies-4-2.patch ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ ./asio-no-experimental-string-view-4-2.patch ];
+}
diff --git a/pkgs/servers/nosql/redis/default.nix b/pkgs/servers/nosql/redis/default.nix
index 8089fa46f92..2ca829b62b1 100644
--- a/pkgs/servers/nosql/redis/default.nix
+++ b/pkgs/servers/nosql/redis/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, lua, pkgconfig, systemd, jemalloc, nixosTests }:
 
 stdenv.mkDerivation rec {
-  version = "6.0.3";
+  version = "6.0.6";
   pname = "redis";
 
   src = fetchurl {
     url = "http://download.redis.io/releases/${pname}-${version}.tar.gz";
-    sha256 = "0fmvbhbgkrw75kqzgpklasylzff4zd0sxy2cvsrgg4pyh776v95w";
+    sha256 = "151x6qicmrmlxkmiwi2vdq8p50d52b9gglp8csag6pmgcfqlkb8j";
   };
 
   # Cross-compiling fixes
diff --git a/pkgs/servers/nosql/rethinkdb/default.nix b/pkgs/servers/nosql/rethinkdb/default.nix
index 46a23ed2529..40ffddd4f10 100644
--- a/pkgs/servers/nosql/rethinkdb/default.nix
+++ b/pkgs/servers/nosql/rethinkdb/default.nix
@@ -5,20 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rethinkdb";
-  version = "2.3.6";
+  version = "2.4.1";
 
   src = fetchurl {
-    url = "https://download.rethinkdb.com/dist/${pname}-${version}.tgz";
-    sha256 = "0a6wlgqa2flf87jrp4fq4y9aihwyhgwclmss56z03b8hd5k5j8f4";
+    url = "https://download.rethinkdb.com/repository/raw/dist/${pname}-${version}.tgz";
+    sha256 = "5f1786c94797a0f8973597796e22545849dc214805cf1962ef76969e0b7d495b";
   };
 
-  patches = [
-    (fetchurl {
-        url = "https://github.com/rethinkdb/rethinkdb/commit/871bd3705a1f29c4ab07a096d562a4b06231a97c.patch";
-        sha256 = "05nagixlwnq3x7441fhll5vs70pxppbsciw8qjqp660bdb5m4jm1";
-    })
-  ];
-
   postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
     sed -i 's/raise.*No Xcode or CLT version detected.*/version = "7.0.0"/' external/v8_3.30.33.16/build/gyp/pylib/gyp/xcode_emulation.py
 
@@ -36,6 +29,8 @@ stdenv.mkDerivation rec {
     "--lib-path=${jemalloc}/lib"
   ];
 
+  makeFlags = [ "rethinkdb" ];
+
   buildInputs = [ protobuf boost zlib curl openssl icu makeWrapper ]
     ++ stdenv.lib.optional (!stdenv.isDarwin) jemalloc
     ++ stdenv.lib.optional stdenv.isDarwin libtool;
@@ -58,9 +53,8 @@ stdenv.mkDerivation rec {
       joins and group by, and is easy to setup and learn.
     '';
     homepage    = "http://www.rethinkdb.com";
-    license     = stdenv.lib.licenses.agpl3;
+    license     = stdenv.lib.licenses.asl20;
     platforms   = stdenv.lib.platforms.linux;
     maintainers = with stdenv.lib.maintainers; [ thoughtpolice bluescreen303 ];
-    broken = true;  # broken with openssl 1.1
   };
 }
diff --git a/pkgs/servers/nosql/victoriametrics/default.nix b/pkgs/servers/nosql/victoriametrics/default.nix
index 68f86f4c190..b41861768d8 100644
--- a/pkgs/servers/nosql/victoriametrics/default.nix
+++ b/pkgs/servers/nosql/victoriametrics/default.nix
@@ -2,17 +2,19 @@
 
 buildGoPackage rec {
   pname = "VictoriaMetrics";
-  version = "1.37.0";
+  version = "1.40.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0p8fk73ydnhrdxgxr4b4xl84729rkkki38227xvxspx84j2fbhci";
+    sha256 = "0dnzc7yrd91g67wkx0g1b0gi7918pi1hqv4mjlxi2ccs8phxkk7l";
   };
 
   goPackagePath = "github.com/VictoriaMetrics/VictoriaMetrics";
 
+  buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/lib/buildinfo.Version=${version}" ];
+
   meta = with lib; {
     homepage = "https://victoriametrics.com/";
     description = "fast, cost-effective and scalable time series database, long-term remote storage for Prometheus";
diff --git a/pkgs/servers/oauth2_proxy/default.nix b/pkgs/servers/oauth2_proxy/default.nix
index ee6dafebf74..4c506c9fd3a 100644
--- a/pkgs/servers/oauth2_proxy/default.nix
+++ b/pkgs/servers/oauth2_proxy/default.nix
@@ -2,18 +2,16 @@
 
 buildGoModule rec {
   pname = "oauth2-proxy";
-  version = "5.1.1";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     repo = pname;
-    owner = "pusher";
-    sha256 = "190k1v2c1f6vp9waqs01rlzm0jc3vrmsq1w1n0c2q2nfqx76y2wz";
+    owner = "oauth2-proxy";
+    sha256 = "0mbjg0d0w173xpq69frjdvgyx5k74pkrfx3phc3lq8snvhnf1c2n";
     rev = "v${version}";
   };
 
-  vendorSha256 = "01lf7xbhgn5l42ahym12vr1w00zx1qzy6sgwgcbvvxp48k0b271d";
-
-  doCheck = true;
+  vendorSha256 = "1hrk3h729kcc77fq44kiywmyzk5a78v7bm5d2yl76lfxxdcdric7";
 
   # Taken from https://github.com/oauth2-proxy/oauth2-proxy/blob/master/Makefile
   buildFlagsArray = ("-ldflags=-X main.VERSION=${version}");
diff --git a/pkgs/servers/openafs/1.6/default.nix b/pkgs/servers/openafs/1.6/default.nix
index 4dcc7b5e05d..8835024c1df 100644
--- a/pkgs/servers/openafs/1.6/default.nix
+++ b/pkgs/servers/openafs/1.6/default.nix
@@ -85,5 +85,7 @@ stdenv.mkDerivation {
     license = licenses.ipl10;
     platforms = platforms.linux;
     maintainers = [ maintainers.maggesi maintainers.spacefrogg ];
+    # Package will be removed in 21.03
+    broken = true;
   };
 }
diff --git a/pkgs/servers/openafs/1.6/module.nix b/pkgs/servers/openafs/1.6/module.nix
index f1acdfcce5a..3354d8508ef 100644
--- a/pkgs/servers/openafs/1.6/module.nix
+++ b/pkgs/servers/openafs/1.6/module.nix
@@ -70,8 +70,8 @@ in stdenv.mkDerivation {
     license = licenses.ipl10;
     platforms = platforms.linux;
     maintainers = [ maintainers.maggesi maintainers.spacefrogg ];
-    broken = versionOlder kernel.version "3.18" || builtins.compareVersions kernel.version "5.0" >= 0
-             || stdenv.targetPlatform.isAarch64;
+    # Package will be removed in 21.03
+    broken = true;
   };
 
 }
diff --git a/pkgs/servers/openafs/1.6/srcs.nix b/pkgs/servers/openafs/1.6/srcs.nix
index 17048b68024..888cef2f1ea 100644
--- a/pkgs/servers/openafs/1.6/srcs.nix
+++ b/pkgs/servers/openafs/1.6/srcs.nix
@@ -1,14 +1,14 @@
 { fetchurl }:
 rec {
-  version = "1.6.23";
+  version = "1.6.24";
   src = fetchurl {
     url = "http://www.openafs.org/dl/openafs/${version}/openafs-${version}-src.tar.bz2";
-    sha256 = "1gy7a0jhagxif8av540xb1aa6cl7id08nsgjbgady54bnmb0viga";
+    sha256 = "1dxzc1y5mmx3ap0m94sx80vfs3qxkckid3wc1xm0wr5i6fh7zn1h";
   };
 
   srcs = [ src
     (fetchurl {
       url = "http://www.openafs.org/dl/openafs/${version}/openafs-${version}-doc.tar.bz2";
-      sha256 = "18my71s9mddy0k835852ksjzkza7xs73kyxavmdqflh5vkywb6y0";
+      sha256 = "0aq9ipqpr2ksmk30h2dc4mlrkrqs16xnmspwfb6xj3rgr1pwszlx";
     })];
 }
diff --git a/pkgs/servers/pinnwand/default.nix b/pkgs/servers/pinnwand/default.nix
index 563c539c825..a2f417d88fa 100644
--- a/pkgs/servers/pinnwand/default.nix
+++ b/pkgs/servers/pinnwand/default.nix
@@ -1,4 +1,4 @@
-{ lib, python3, fetchFromGitHub }:
+{ lib, python3, fetchFromGitHub, poetry, nixosTests }:
 
 let
   python = python3.override {
@@ -14,13 +14,20 @@ let
   };
 in with python.pkgs; buildPythonApplication rec {
   pname = "pinnwand";
-  version = "1.1.2";
+  version = "1.2.2";
+  format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0iincxkfyyx85ggx9ilms2f8aq4lcbg3rkqgrr4wlsflzhljqd0p";
+  src = fetchFromGitHub {
+    owner = "supakeen";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0cxdpc3lxgzakzgvdyyrn234380dm05svnwr8av5nrjp4nm9s8z4";
   };
 
+  nativeBuildInputs = [
+    poetry
+  ];
+
   propagatedBuildInputs = [
     click
     docutils
@@ -30,11 +37,14 @@ in with python.pkgs; buildPythonApplication rec {
     sqlalchemy
   ];
 
-  # tests are only available when fetching from GitHub, where they in turn don't have a setup.py :(
+  checkInputs = [ pytest ];
+
   checkPhase = ''
-    $out/bin/pinnwand --help > /dev/null
+    pytest
   '';
 
+  passthru.tests = nixosTests.pinnwand;
+
   meta = with lib; {
     homepage = "https://supakeen.com/project/pinnwand/";
     license = licenses.mit;
diff --git a/pkgs/servers/pinnwand/steck.nix b/pkgs/servers/pinnwand/steck.nix
new file mode 100644
index 00000000000..09b20efc36e
--- /dev/null
+++ b/pkgs/servers/pinnwand/steck.nix
@@ -0,0 +1,31 @@
+{ lib, pkgs, python3Packages, nixosTests }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "steck";
+  version = "0.6.0";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "07gc5iwbyprb8nihnjjl2zd06z8p4nl3a3drzh9a8ny35ig1khq0";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    pkgs.git
+    appdirs
+    click
+    python_magic
+    requests
+    termcolor
+    toml
+  ];
+
+  passthru.tests = nixosTests.pinnwand;
+
+  meta = with lib; {
+    homepage = "https://github.com/supakeen/steck";
+    license = licenses.mit;
+    description = "Client for pinnwand pastebin.";
+    maintainers = with maintainers; [ hexa ];
+  };
+}
+
diff --git a/pkgs/servers/plex/raw.nix b/pkgs/servers/plex/raw.nix
index c916a0949d9..48f786c1372 100644
--- a/pkgs/servers/plex/raw.nix
+++ b/pkgs/servers/plex/raw.nix
@@ -8,13 +8,13 @@
 # server, and the FHS userenv and corresponding NixOS module should
 # automatically pick up the changes.
 stdenv.mkDerivation rec {
-  version = "1.19.4.2935-79e214ead";
+  version = "1.20.1.3252-a78fef9a9";
   pname = "plexmediaserver";
 
   # Fetch the source
   src = fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/redhat/plexmediaserver-${version}.x86_64.rpm";
-    sha256 = "0wzbdr89janyrbilvxrxfvhy02c1j5dsrcyjxnj4ryab0qc4sv04";
+    sha256 = "0z50c6kgsxz1pj8d65ibliqd4xbkwjlmim76j8rjid3amhj50jmx";
   };
 
   outputs = [ "out" "basedb" ];
diff --git a/pkgs/servers/pounce/default.nix b/pkgs/servers/pounce/default.nix
index 8609648378a..a418417ce2f 100644
--- a/pkgs/servers/pounce/default.nix
+++ b/pkgs/servers/pounce/default.nix
@@ -1,23 +1,22 @@
-{ stdenv, libressl, fetchzip, fetchpatch }:
+{ stdenv, libressl, fetchzip, fetchpatch, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "pounce";
-  version = "1.1";
+  version = "1.4p2";
 
   src = fetchzip {
     url = "https://git.causal.agency/pounce/snapshot/pounce-${version}.tar.gz";
-    sha256 = "07iyh6ikrlf7y57k462jcr00db6aijk9b2s7n7l7i49hk7kmm6wq";
+    sha256 = "0fpnj9yvmj4gbbfpya4i0lyin56r782pz19z3pgd8xgs22gd48cc";
   };
 
   buildInputs = [ libressl ];
 
-  configurePhase = "ln -s Linux.mk config.mk";
+  nativeBuildInputs = [ pkg-config ];
 
   buildFlags = [ "all" ];
 
   makeFlags = [
     "PREFIX=$(out)"
-    "LIBRESSL_BIN_PREFIX=${libressl}/bin"
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/pulseaudio/default.nix b/pkgs/servers/pulseaudio/default.nix
index e15efd4b47d..513249cb7ad 100644
--- a/pkgs/servers/pulseaudio/default.nix
+++ b/pkgs/servers/pulseaudio/default.nix
@@ -61,6 +61,11 @@ stdenv.mkDerivation rec {
       ++ lib.optional zeroconfSupport  avahi
   );
 
+  prePatch = ''
+    substituteInPlace bootstrap.sh \
+      --replace pkg-config $PKG_CONFIG
+  '';
+
   autoreconfPhase = ''
     # Performs an autoreconf
     patchShebangs bootstrap.sh
diff --git a/pkgs/servers/radarr/default.nix b/pkgs/servers/radarr/default.nix
index b0871a99f67..e39e0bf7647 100644
--- a/pkgs/servers/radarr/default.nix
+++ b/pkgs/servers/radarr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "radarr";
-  version = "0.2.0.1480";
+  version = "0.2.0.1504";
 
   src = fetchurl {
     url = "https://github.com/Radarr/Radarr/releases/download/v${version}/Radarr.develop.${version}.linux.tar.gz";
-    sha256 = "066kr9fk2ipid11aq057rqzy3b2kgd5qf9msq1fsmxixqg82m64h";
+    sha256 = "1h7pqn39vxd0vr1fwrnvfpxv5vhh4zcr0s8h0zvgplay2z6b6bvb";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     description = "A Usenet/BitTorrent movie downloader";
     homepage = "https://radarr.video/";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ edwtjo ];
+    maintainers = with maintainers; [ edwtjo purcell ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/servers/radicale/3.x.nix b/pkgs/servers/radicale/3.x.nix
index 7b42bd3be34..4b49b1e40c8 100644
--- a/pkgs/servers/radicale/3.x.nix
+++ b/pkgs/servers/radicale/3.x.nix
@@ -2,14 +2,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "radicale";
-  version = "3.0.3";
+  version = "3.0.5";
 
   # No tests in PyPI tarball
   src = fetchFromGitHub {
     owner = "Kozea";
     repo = "Radicale";
     rev = version;
-    sha256 = "170mqxlnfzx15img4wb71axq9cnxwllk5cabsv8i008q7wyjqp0n";
+    sha256 = "0w8qkjm7b62cr49dbis41kvv3179sfmvvzlhlc0rbqss6vmwbq4p";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/servers/rippled/default.nix b/pkgs/servers/rippled/default.nix
index 69a54a1202d..c9095339cc3 100644
--- a/pkgs/servers/rippled/default.nix
+++ b/pkgs/servers/rippled/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, fetchgit, fetchurl, runCommand, git, cmake, pkgconfig
-, openssl, boost, zlib }:
+, openssl,  zlib, boost, grpc, c-ares, abseil-cpp, protobuf3_8 }:
 
 let
   sqlite3 = fetchurl rec {
@@ -8,27 +8,49 @@ let
     passthru.url = url;
   };
 
+  boostSharedStatic = boost.override {
+    enableShared = true; 
+    enabledStatic = true;
+  };
+
+  beast = fetchgit {
+    url = "https://github.com/boostorg/beast.git";
+    rev = "2f9a8440c2432d8a196571d6300404cb76314125";
+    sha256 = "1n9ms5cn67b0p0mhldz5psgylds22sm5x22q7knrsf20856vlk5a";
+    fetchSubmodules = false;
+    leaveDotGit = true;
+  };
+
   docca = fetchgit {
     url = "https://github.com/vinniefalco/docca.git";
     rev = "335dbf9c3613e997ed56d540cc8c5ff2e28cab2d";
-    sha256 = "1yisdg7q2p9q9gz0c446796p3ggx9s4d6g8w4j1pjff55655805h";
-    leaveDotGit = true;
+    sha256 = "09cb90k0ygmnlpidybv6nzf6is51i80lnwlvad6ijc3gf1z6i1yh";
     fetchSubmodules = false;
+    leaveDotGit = true;
+  };
+
+  nudb = fetchgit rec {
+    url = "https://github.com/CPPAlliance/NuDB.git";
+    rev = "2.0.3";
+    sha256 = "0imd9sh6knydwa3pxa5bbvjs3bmb8650dnsvj04qgns6bynwlqh1";
+    leaveDotGit = true;
+    fetchSubmodules = true;
+    postFetch = "cd $out && git tag ${rev}";
   };
 
   rocksdb = fetchgit rec {
     url = "https://github.com/facebook/rocksdb.git";
-    rev = "v5.17.2";
-    sha256 = "0d9ssggjls1hc4zhng65yg8slqlcw0lr23qr6f39shg42lzr227p";
-    leaveDotGit = true;
+    rev = "v6.5.3";
+    sha256 = "11kbwqph1i3w6rbhr0kl2aq4jidhai24gw420y9qi9ab7zl0zcqg";
+    deepClone = true;
     fetchSubmodules = false;
-    postFetch = "cd $out && git tag ${rev}";
+    leaveDotGit = true;
   };
 
   lz4 = fetchgit rec {
     url = "https://github.com/lz4/lz4.git";
-    rev = "v1.8.2";
-    sha256 = "1niv553q60hwn95yflzmrqkp1046hrid13h0yr36lm4fjza21h9w";
+    rev = "v1.9.2";
+    sha256 = "0322xy2vfhxkb8akas7vwajjgcigq1q8l9f5fnfmavcsd6kmxmgg";
     leaveDotGit = true;
     fetchSubmodules = false;
     postFetch = "cd $out && git tag ${rev}";
@@ -36,8 +58,8 @@ let
 
   libarchive = fetchgit rec {
     url = "https://github.com/libarchive/libarchive.git";
-    rev = "v3.3.3";
-    sha256 = "165imgfmizpi4ffpiwfs8gxysn6lw3y1fxj5rga98filkl7hxs31";
+    rev = "v3.4.3";
+    sha256 = "00yrzy2129vr4nfhigd91651984sl447dyfjfz26dmzvna5hwzp1";
     leaveDotGit = true;
     fetchSubmodules = false;
     postFetch = "cd $out && git tag ${rev}";
@@ -60,19 +82,10 @@ let
     postFetch = "cd $out && git tag ${rev}";
   };
 
-  nudb = fetchgit rec {
-    url = "https://github.com/CPPAlliance/NuDB.git";
-    rev = "2.0.1";
-    sha256 = "0h7hmwavrxzj1v547h3z0031ckwphjayfpv1mgcr6q86wm9p5468";
-    leaveDotGit = true;
-    fetchSubmodules = true; # submodules are needed, rocksdb is dependency
-    postFetch = "cd $out && git tag ${rev}";
-  };
-
-  protobuf = fetchgit rec {
-    url = "https://github.com/protocolbuffers/protobuf.git";
-    rev = "v3.6.1";
-    sha256 = "0zl09q25ggfw95lakcs3mkq5pvsj17mx29b4nqr09g0mnbw9709c";
+  cares = fetchgit rec {
+    url = "https://github.com/c-ares/c-ares.git";
+    rev = "cares-1_15_0";
+    sha256 = "1fkzsyhfk5p5hr4dx4r36pg9xzs0md6cyj1q2dni3cjgqj3s518v";
     leaveDotGit = true;
     fetchSubmodules = false;
     postFetch = "cd $out && git tag ${rev}";
@@ -80,65 +93,62 @@ let
 
   google-test = fetchgit {
     url = "https://github.com/google/googletest.git";
-    rev = "c3bb0ee2a63279a803aaad956b9b26d74bf9e6e2";
-    sha256 = "0pj5b6jnrj5lrccz2disr8hklbnzd8hwmrwbfqmvhiwb9q9p0k2k";
-    fetchSubmodules = false;
+    rev = "5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081";
+    sha256 = "1ch7hq16z20ddhpc08slp9bny29j88x9vr6bi9r4yf5m77xbplja";
     leaveDotGit = true;
+    fetchSubmodules = false;
   };
 
   google-benchmark = fetchgit {
     url = "https://github.com/google/benchmark.git";
     rev = "5b7683f49e1e9223cf9927b24f6fd3d6bd82e3f8";
-    sha256 = "0qg70j47zqnrbszlgrzmxpr4g88kq0gyq6v16bhaggfm83c6mg6i";
-    fetchSubmodules = false;
+    sha256 = "0kcmb83framkncc50h0lyyz7v8nys6g19ja0h2p8x4sfafnnm6ig";
     leaveDotGit = true;
+    fetchSubmodules = false;
   };
 
-  # hack to merge rocksdb revisions from rocksdb and nudb, so build process
-  # will find both
-  rocksdb-merged = runCommand "rocksdb-merged" {
-    buildInputs = [ git ];
-  } ''
-    commit=$(cd ${nudb} && git ls-tree HEAD extras/rocksdb | awk '{ print $3  }')
-    git clone ${rocksdb} $out && cd $out
-    git fetch ${nudb}/extras/rocksdb $commit
-    git checkout $commit
-  '';
+  date = fetchgit {
+    url = "https://github.com/HowardHinnant/date.git";
+    rev = "fc4cf092f9674f2670fb9177edcdee870399b829";
+    sha256 = "0w618p64mx2l074b6wd0xfc4h6312mabhvzabxxwsnzj4afpajcm";
+    leaveDotGit = true;
+    fetchSubmodules = false;
+  };
 in stdenv.mkDerivation rec {
   pname = "rippled";
-  version = "1.4.0";
+  version = "1.6.0";
 
-  src = fetchFromGitHub {
-    owner = "ripple";
-    repo = "rippled";
+  src = fetchgit {
+    url = "https://github.com/ripple/rippled.git";
     rev = version;
-    sha256 = "1z04378bg8lcyrnn7sl3j2zfxbwwy2biasg1d4fbaq4snxg5d1pq";
+    sha256 = "176i3dm98zp5jllslpzfhh52bd2lapq9i8r7m45v8sg9icvsmyz7";
+    leaveDotGit = true;
+    fetchSubmodules = true;
   };
 
   hardeningDisable = ["format"];
-  cmakeFlags = [
-    "-Dstatic=OFF"
-    "-DBOOST_LIBRARYDIR=${boost.out}/lib"
-    "-DBOOST_INCLUDEDIR=${boost.dev}/include"
-  ];
+  cmakeFlags = ["-Dstatic=OFF" "-DBoost_NO_BOOST_CMAKE=ON"];
 
   nativeBuildInputs = [ pkgconfig cmake git ];
-  buildInputs = [ openssl openssl.dev zlib ];
+  buildInputs = [ openssl openssl.dev boostSharedStatic zlib grpc c-ares c-ares.cmake-config abseil-cpp protobuf3_8 ];
 
   preConfigure = ''
     export HOME=$PWD
 
+    git config --global url."file://${rocksdb}".insteadOf "${rocksdb.url}"
     git config --global url."file://${docca}".insteadOf "${docca.url}"
-    git config --global url."file://${rocksdb-merged}".insteadOf "${rocksdb.url}"
     git config --global url."file://${lz4}".insteadOf "${lz4.url}"
     git config --global url."file://${libarchive}".insteadOf "${libarchive.url}"
     git config --global url."file://${soci}".insteadOf "${soci.url}"
     git config --global url."file://${snappy}".insteadOf "${snappy.url}"
     git config --global url."file://${nudb}".insteadOf "${nudb.url}"
-    git config --global url."file://${protobuf}".insteadOf "${protobuf.url}"
     git config --global url."file://${google-benchmark}".insteadOf "${google-benchmark.url}"
     git config --global url."file://${google-test}".insteadOf "${google-test.url}"
+    git config --global url."file://${date}".insteadOf "${date.url}"
 
+    substituteInPlace Builds/CMake/deps/Sqlite.cmake --replace "http://www.sqlite.org/2018/sqlite-amalgamation-3260000.zip" "" 
+    substituteInPlace Builds/CMake/deps/Sqlite.cmake --replace "https://www2.sqlite.org/2018/sqlite-amalgamation-3260000.zip" "" 
+    substituteInPlace Builds/CMake/deps/Sqlite.cmake --replace "http://www2.sqlite.org/2018/sqlite-amalgamation-3260000.zip" "" 
     substituteInPlace Builds/CMake/deps/Sqlite.cmake --replace "URL ${sqlite3.url}" "URL ${sqlite3}"
   '';
 
@@ -150,7 +160,7 @@ in stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Ripple P2P payment network reference server";
     homepage = "https://github.com/ripple/rippled";
-    maintainers = with maintainers; [ ehmry offline ];
+    maintainers = with maintainers; [ ehmry offline RaghavSood ];
     license = licenses.isc;
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/servers/roon-server/default.nix b/pkgs/servers/roon-server/default.nix
index a5924e37331..9c08f392042 100644
--- a/pkgs/servers/roon-server/default.nix
+++ b/pkgs/servers/roon-server/default.nix
@@ -1,65 +1,68 @@
-{ alsaLib, alsaUtils, cifs-utils, fetchurl, ffmpeg_3, libav, mono, stdenv }:
-
-with stdenv.lib;
-stdenv.mkDerivation rec {
+{ alsaLib
+, alsaUtils
+, autoPatchelfHook
+, cifs-utils
+, fetchurl
+, ffmpeg
+, freetype
+, lib
+, makeWrapper
+, stdenv
+, zlib
+}: stdenv.mkDerivation rec {
   name = "roon-server";
-  version = "100600401";
+  version = "100700571";
 
   src = fetchurl {
     url = "http://download.roonlabs.com/updates/stable/RoonServer_linuxx64_${version}.tar.bz2";
-    sha256 = "121mmdh35q4bpgsqhcps6a6q1f4ld9v4hq9gp181bf2n779pk8sh";
+    sha256 = "191vlzf10ypkk1prp6x2rszlmsihdwpd3wvgf2jg6ckwyxy2hc6k";
   };
 
-  installPhase = ''
-    runHook preInstall
-
-    # Check script
-    sed -i '3i PATH=$PATH:${makeBinPath [ cifs-utils ffmpeg_3 libav ]}' check.sh
-    sed -i '/check_ulimit$/d' check.sh
-
-    # Start script
-    sed -i '3i PATH=$PATH:${makeBinPath [ alsaUtils cifs-utils ffmpeg_3 libav ]}' start.sh
+  buildInputs = [
+    alsaLib
+    alsaUtils
+    cifs-utils
+    ffmpeg
+    freetype
+    zlib
+  ];
 
-    # Debug logging
-    sed -i '/--debug--gc=sgen --server/exec "$HARDLINK" --debug --gc=sgen --server "$SCRIPT.exe" "$@" -storagetrace -watchertrace' Appliance/RoonAppliance
-
-    # Binaries
-    sed -i '/# boost ulimit/,+2 d' Appliance/RAATServer
-    sed -i '/# boost ulimit/,+2 d' Appliance/RoonAppliance
-    sed -i '/# boost ulimit/,+2 d' Server/RoonServer
-    sed -i '/ln -sf/ d' Appliance/RAATServer
-    sed -i '/ln -sf/ d' Appliance/RoonAppliance
-    sed -i '/ln -sf/ d' Server/RoonServer
-    mkdir -p $out/opt
-    mv * $out/opt
-    ln -sf $out/opt/RoonMono/bin/mono-sgen $out/opt/RoonMono/bin/RoonServer
-    ln -sf $out/opt/RoonMono/bin/mono-sgen $out/opt/RoonMono/bin/RoonAppliance
-    ln -sf $out/opt/RoonMono/bin/mono-sgen $out/opt/RoonMono/bin/RAATServer
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
 
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out
+    mv * $out
     runHook postInstall
   '';
 
-  preFixup = ''
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${alsaLib}/lib" \
-      $out/opt/RoonMono/bin/mono-sgen
+  postFixup =
+    let
+      linkFix = bin: ''
+        sed -i '/ulimit/d' ${bin}
+        sed -i '/ln -sf/d' ${bin}
+        ln -sf $out/RoonMono/bin/mono-sgen $out/RoonMono/bin/${builtins.baseNameOf bin}
+      '';
+      wrapFix = bin: ''
+        wrapProgram ${bin} --prefix PATH : ${lib.makeBinPath [ alsaUtils cifs-utils ffmpeg ]}
+      '';
+    in
+    ''
+      ${linkFix "$out/Appliance/RAATServer"}
+      ${linkFix "$out/Appliance/RoonAppliance"}
+      ${linkFix "$out/Server/RoonServer"}
 
-    # Checkers
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${alsaLib}/lib" \
-      $out/opt/Appliance/check_alsa
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      $out/opt/Appliance/check_bincompat
-  '';
+      sed -i '/which avconv/c\    WHICH_AVCONV=1' $out/check.sh
+      sed -i '/^check_ulimit/d' $out/check.sh
+      ${wrapFix "$out/check.sh"}
+      ${wrapFix "$out/start.sh"}
+    '';
 
-  meta = {
+  meta = with lib; {
     description = "The music player for music lovers.";
-    homepage    = "https://roonlabs.com";
-    license     = licenses.unfree;
-    maintainers = with maintainers; [ steell ];
-    platforms   = platforms.linux;
+    homepage = "https://roonlabs.com";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ lovesegfault steell ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/roundcube/default.nix b/pkgs/servers/roundcube/default.nix
index 03c1a6cf770..d46972eae21 100644
--- a/pkgs/servers/roundcube/default.nix
+++ b/pkgs/servers/roundcube/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "roundcube";
-  version = "1.4.6";
+  version = "1.4.8";
 
   src = fetchurl {
     url = "https://github.com/roundcube/roundcubemail/releases/download/${version}/roundcubemail-${version}-complete.tar.gz";
-    sha256 = "06xxzvjd06r90fxpq9zh9fwylg6sbd26c08rxfd553jikyp5znsm";
+    sha256 = "0jkas28k7px95sm3zix86ggraxc9vyy66271sgpr2wrmbg2r056r";
   };
 
   patches = [ ./0001-Don-t-resolve-symlinks-when-trying-to-find-INSTALL_P.patch ];
diff --git a/pkgs/servers/routinator/default.nix b/pkgs/servers/routinator/default.nix
index 1174d0802ae..6e57ebd42da 100644
--- a/pkgs/servers/routinator/default.nix
+++ b/pkgs/servers/routinator/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
     description = "An RPKI Validator written in Rust";
     homepage = "https://github.com/NLnetLabs/routinator";
     license = licenses.bsd3;
-    maintainers = [ maintainers."0x4A6F" ];
+    maintainers = with maintainers; [ _0x4A6F ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/sabnzbd/default.nix b/pkgs/servers/sabnzbd/default.nix
index 54d327d5fc4..f6b0574fa5c 100644
--- a/pkgs/servers/sabnzbd/default.nix
+++ b/pkgs/servers/sabnzbd/default.nix
@@ -1,17 +1,33 @@
-{stdenv, fetchFromGitHub, python2, par2cmdline, unzip, unrar, p7zip, makeWrapper}:
+{ stdenv
+, fetchFromGitHub
+, python3
+, par2cmdline
+, unzip
+, unrar
+, p7zip
+, makeWrapper
+}:
 
 let
-  pythonEnv = python2.withPackages(ps: with ps; [ cryptography cheetah yenc sabyenc ]);
+  pythonEnv = python3.withPackages(ps: with ps; [
+    chardet
+    cheetah3
+    cherrypy
+    cryptography
+    configobj
+    feedparser
+    sabyenc3
+  ]);
   path = stdenv.lib.makeBinPath [ par2cmdline unrar unzip p7zip ];
 in stdenv.mkDerivation rec {
-  version = "2.3.9";
+  version = "3.0.1";
   pname = "sabnzbd";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "06ln00rqz4xpsqhq0f495893xq1w5dfjawb8dgfyjjfds8627p16";
+    sha256 = "1zp8cxz56qmai1z6xcscnq85gxhv64dv1s5zqsqdn0zpbxyqqdlr";
   };
 
   buildInputs = [ pythonEnv makeWrapper ];
diff --git a/pkgs/servers/samba/4.x.nix b/pkgs/servers/samba/4.x.nix
index 0aae779106a..7ed1a72de0e 100644
--- a/pkgs/servers/samba/4.x.nix
+++ b/pkgs/servers/samba/4.x.nix
@@ -31,7 +31,6 @@
 , enableProfiling ? true
 , enableMDNS ? false, avahi
 , enableDomainController ? false, gpgme, lmdb
-, enableKerberos ? true, krb5Full
 , enableRegedit ? true, ncurses
 , enableCephFS ? false, libceph
 , enableGlusterFS ? false, glusterfs, libuuid
@@ -43,11 +42,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "samba";
-  version = "4.12.3";
+  version = "4.12.5";
 
   src = fetchurl {
     url = "mirror://samba/pub/samba/stable/${pname}-${version}.tar.gz";
-    sha256 = "09w7aap1cjc41ayhaksm1igc7p7gl40fad4a1l6q4ds9a2jbrb9z";
+    sha256 = "05dqj5l3spa8ggw0agxa5rf8fwgiizbmbfjms46y5jla6z31rd2l";
   };
 
   outputs = [ "out" "dev" "man" ];
@@ -92,7 +91,6 @@ stdenv.mkDerivation rec {
     ++ optional (enablePrinting && stdenv.isLinux) cups
     ++ optional enableMDNS avahi
     ++ optionals enableDomainController [ gpgme lmdb ]
-    ++ optional enableKerberos krb5Full
     ++ optional enableRegedit ncurses
     ++ optional (enableCephFS && stdenv.isLinux) libceph
     ++ optionals (enableGlusterFS && stdenv.isLinux) [ glusterfs libuuid ]
@@ -116,13 +114,9 @@ stdenv.mkDerivation rec {
     "--sysconfdir=/etc"
     "--localstatedir=/var"
     "--disable-rpath"
-  ] ++ singleton (if enableDomainController
-         then "--with-experimental-mit-ad-dc"
-         else "--without-ad-dc")
-    ++ optionals enableKerberos [
-    "--with-system-mitkrb5"
-    "--with-system-mitkdc=${krb5Full}"
-  ] ++ optionals (!enableLDAP) [
+  ] ++ optional (!enableDomainController)
+    "--without-ad-dc"
+  ++ optionals (!enableLDAP) [
     "--without-ldap"
     "--without-ads"
   ] ++ optional enableProfiling "--with-profiling-data"
diff --git a/pkgs/servers/search/elasticsearch/plugins.nix b/pkgs/servers/search/elasticsearch/plugins.nix
index 8e086ac5e66..846fb33000b 100644
--- a/pkgs/servers/search/elasticsearch/plugins.nix
+++ b/pkgs/servers/search/elasticsearch/plugins.nix
@@ -64,6 +64,23 @@ in {
     };
   };
 
+  analysis-phonetic = esPlugin rec {
+    pluginName = "analysis-phonetic";
+    version = esVersion;
+    src = fetchurl {
+      url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
+      sha256 =
+        if version == "7.5.1" then "0znmbdf99bli4kvyb3vxr5x48yb6n64nl38gpa63iqsv3nlbi0hp"
+        else if version == "6.8.3" then "0ggdhf7w50bxsffmcznrjy14b578fps0f8arg3v54qvj94v9jc37"
+        else throw "unsupported version ${version} for plugin ${pluginName}";
+    };
+    meta = with lib; {
+      homepage = "https://github.com/elastic/elasticsearch/tree/master/plugins/analysis-phonetic";
+      description = "The Phonetic Analysis plugin integrates phonetic token filter analysis with elasticsearch";
+      license = licenses.asl20;
+    };
+  };
+
   discovery-ec2 = esPlugin rec {
     pluginName = "discovery-ec2";
     version = esVersion;
diff --git a/pkgs/servers/search/groonga/default.nix b/pkgs/servers/search/groonga/default.nix
index b622cf3447d..fa3c9e4dd4e 100644
--- a/pkgs/servers/search/groonga/default.nix
+++ b/pkgs/servers/search/groonga/default.nix
@@ -7,11 +7,11 @@
 stdenv.mkDerivation rec {
 
   pname = "groonga";
-  version = "10.0.3";
+  version = "10.0.5";
 
   src = fetchurl {
     url    = "https://packages.groonga.org/source/groonga/${pname}-${version}.tar.gz";
-    sha256 = "0vnrpzd7gkjh4bc0lgvh5l11ym6pls4lp1pl5jjlkyx505635k8d";
+    sha256 = "04rjqmlhv55jmdc159q5ckrakq5iwp18wi72lzl6zy21yk5hxmp0";
   };
 
   buildInputs = with stdenv.lib;
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.ericsagnes ];
     platforms   = platforms.unix;
     longDescription = ''
-      Groonga is an open-source fulltext search engine and column store. 
+      Groonga is an open-source fulltext search engine and column store.
       It lets you write high-performance applications that requires fulltext search.
     '';
   };
diff --git a/pkgs/servers/search/solr/default.nix b/pkgs/servers/search/solr/default.nix
index 73aa349a517..b5390d1537d 100644
--- a/pkgs/servers/search/solr/default.nix
+++ b/pkgs/servers/search/solr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "solr";
-  version = "8.5.1";
+  version = "8.6.1";
 
   src = fetchurl {
     url = "mirror://apache/lucene/${pname}/${version}/${pname}-${version}.tgz";
-    sha256 = "02sa0sldsfajryyfndv587qw69q8y8igfpimg98w1g3vndrq1dj7";
+    sha256 = "0ds6zjsnwgpcmivzi7d6yqdmyn2mhf3k8g7xp26yfpm7f12gpq4g";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/ser2net/default.nix b/pkgs/servers/ser2net/default.nix
index bbfb0315d9e..ef592420b11 100644
--- a/pkgs/servers/ser2net/default.nix
+++ b/pkgs/servers/ser2net/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ser2net";
-  version = "4.1.8";
+  version = "4.2.1";
 
   src = fetchFromGitHub {
     owner = "cminyard";
     repo = "${pname}";
     rev = "v${version}";
-    sha256 = "0xxxxlfi4wln2l86ybdsc42qcj37mnac2s2baj6s7mqri8alaa14";
+    sha256 = "01w82nrgffsfz2c80p4cyppg3bz56d90jm6i6356j0nva3784haw";
   };
 
   buildInputs = [ pkgconfig autoreconfHook gensio libyaml ];
diff --git a/pkgs/servers/sickbeard/sickgear.nix b/pkgs/servers/sickbeard/sickgear.nix
index e67b7244a32..a382c969da8 100644
--- a/pkgs/servers/sickbeard/sickgear.nix
+++ b/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.21.33";
+  version = "0.21.42";
 
   src = fetchFromGitHub {
     owner = "SickGear";
     repo = "SickGear";
     rev = "release_${version}";
-    sha256 = "0ilgjm21psfb0ix32qm560976wn84qg0y5cg7506ybwsynlmway2";
+    sha256 = "0a18vn1vy4zdp40iizgg3yji6k74r54rb7d7gn5byz1zj28g5c5c";
   };
 
   dontBuild = true;
diff --git a/pkgs/servers/skydns/default.nix b/pkgs/servers/skydns/default.nix
index 2fc67008b89..176b41a1fe2 100644
--- a/pkgs/servers/skydns/default.nix
+++ b/pkgs/servers/skydns/default.nix
@@ -4,7 +4,7 @@ buildGoPackage rec {
   pname = "skydns";
   version = "2.5.3a";
   rev = version;
-  
+
   goPackagePath = "github.com/skynetservices/skydns";
 
   src = fetchFromGitHub {
diff --git a/pkgs/servers/sonarr/default.nix b/pkgs/servers/sonarr/default.nix
index d18e9fb7f58..a1c854b7723 100644
--- a/pkgs/servers/sonarr/default.nix
+++ b/pkgs/servers/sonarr/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     description = "Smart PVR for newsgroup and bittorrent users";
     homepage = "https://sonarr.tv/";
     license = stdenv.lib.licenses.gpl3;
-    maintainers = [ stdenv.lib.maintainers.fadenb ];
+    maintainers = with stdenv.lib.maintainers; [ fadenb purcell ];
     platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/servers/sozu/default.nix b/pkgs/servers/sozu/default.nix
index f7feda5e916..1e808358705 100644
--- a/pkgs/servers/sozu/default.nix
+++ b/pkgs/servers/sozu/default.nix
@@ -19,4 +19,4 @@ rustPlatform.buildRustPackage rec {
         license = licenses.agpl3;
         maintainers = with maintainers; [ filalex77 ];
     };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/sql/cockroachdb/default.nix b/pkgs/servers/sql/cockroachdb/default.nix
index 25e2b0ae127..a5071efb486 100644
--- a/pkgs/servers/sql/cockroachdb/default.nix
+++ b/pkgs/servers/sql/cockroachdb/default.nix
@@ -14,13 +14,13 @@ let
 in
 buildGoPackage rec {
   pname = "cockroach";
-  version = "20.1.2";
+  version = "20.1.4";
 
   goPackagePath = "github.com/cockroachdb/cockroach";
 
   src = fetchurl {
     url = "https://binaries.cockroachdb.com/cockroach-v${version}.src.tgz";
-    sha256 = "1xmb516xr0bhkzj6yigcrxbghvh0dis85dq7n5hi49mn951ad5yn";
+    sha256 = "1m82m776axyf7b5f1lzlv5y7zslyhikfxjgagqy7ci5zwn8j4i0n";
   };
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionals stdenv.cc.isGNU [ "-Wno-error=deprecated-copy" "-Wno-error=redundant-move" "-Wno-error=pessimizing-move" ];
diff --git a/pkgs/servers/sql/dolt/default.nix b/pkgs/servers/sql/dolt/default.nix
index 265f78af895..e8f9923a87b 100644
--- a/pkgs/servers/sql/dolt/default.nix
+++ b/pkgs/servers/sql/dolt/default.nix
@@ -2,18 +2,20 @@
 
 buildGoModule rec {
     pname = "dolt";
-    version = "0.18.0";
+    version = "0.18.3";
 
     src = fetchFromGitHub {
         owner = "liquidata-inc";
         repo = "dolt";
         rev = "v${version}";
-        sha256 = "12kvjq3z9bggfmgci3wql4v8sh491dwp6qr768k8kwncqmp3jjvx";
+        sha256 = "0mgawr3nkyna22sqhskvvk7h9c8ivag959liji2qcdfwgfqp0l6z";
     };
 
     modRoot = "./go";
     subPackages = [ "cmd/dolt" "cmd/git-dolt" "cmd/git-dolt-smudge" ];
-  vendorSha256 = "1lscjp4ih5kxrbqch9164bqrp7lbsir6vg4zcczhvhh0phbcbqjs";
+  vendorSha256 = "0rqkqyvf8mjl7b62ng7vzi6as6qw3sg3lzj2mcg1aiw3h7ikr6hw";
+
+  doCheck = false;
 
     meta = with lib; {
         description = "Relational database with version control and CLI a-la Git.";
@@ -22,4 +24,4 @@ buildGoModule rec {
         maintainers = with maintainers; [ danbst ];
         platforms = platforms.linux ++ platforms.darwin;
     };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/sql/mariadb/cmake-without-plugin-auth-pam.patch b/pkgs/servers/sql/mariadb/cmake-without-plugin-auth-pam.patch
deleted file mode 100644
index 173fa1e0c63..00000000000
--- a/pkgs/servers/sql/mariadb/cmake-without-plugin-auth-pam.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/cmake/build_configurations/mysql_release.cmake b/cmake/build_configurations/mysql_release.cmake
-index f7790748..995621e0 100644
---- a/cmake/build_configurations/mysql_release.cmake
-+++ b/cmake/build_configurations/mysql_release.cmake
-@@ -121,7 +121,6 @@ ENDIF()
- 
- IF(UNIX)
-   SET(WITH_EXTRA_CHARSETS all CACHE STRING "")
--  SET(PLUGIN_AUTH_PAM YES)
- 
-   IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-     IF(NOT IGNORE_AIO_CHECK)
diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index d6e52134301..3ba4e367312 100644
--- a/pkgs/servers/sql/mariadb/default.nix
+++ b/pkgs/servers/sql/mariadb/default.nix
@@ -23,14 +23,14 @@ mariadb = server // {
 };
 
 common = rec { # attributes common to both builds
-  version = "10.4.13";
+  version = "10.4.14";
 
   src = fetchurl {
     urls = [
       "https://downloads.mariadb.org/f/mariadb-${version}/source/mariadb-${version}.tar.gz"
       "https://downloads.mariadb.com/MariaDB/mariadb-${version}/source/mariadb-${version}.tar.gz"
     ];
-    sha256 = "1pwibmm52sc04qxp832pc3ylxw9wq90fjc7nxpcyp3yys49bpfs5";
+    sha256 = "1z469j39chq7d3dp39cljjbzcz0wl1g7rii85x46290jw1cwsbzr";
     name   = "mariadb-${version}.tar.gz";
   };
 
@@ -128,10 +128,10 @@ client = stdenv.mkDerivation (common // {
 
   patches = common.patches ++ [
     ./cmake-plugin-includedir.patch
-    ./cmake-without-plugin-auth-pam.patch
   ];
 
   cmakeFlags = common.cmakeFlags ++ [
+    "-DPLUGIN_AUTH_PAM=OFF"
     "-DWITHOUT_SERVER=ON"
     "-DWITH_WSREP=OFF"
     "-DINSTALL_MYSQLSHAREDIR=share/mysql-client"
@@ -139,7 +139,7 @@ client = stdenv.mkDerivation (common // {
 
   postInstall = common.postInstall + ''
     rm -r "$out"/share/doc
-    rm "$out"/bin/{mysqltest,mytop,wsrep_sst_rsync_wan}
+    rm "$out"/bin/{mysqltest,mytop}
     libmysqlclient_path=$(readlink -f $out/lib/libmysqlclient${libExt})
     rm "$out"/lib/{libmariadb${libExt},libmysqlclient${libExt},libmysqlclient_r${libExt}}
     mv "$libmysqlclient_path" "$out"/lib/libmysqlclient${libExt}
@@ -162,9 +162,7 @@ server = stdenv.mkDerivation (common // {
     ++ optional stdenv.hostPlatform.isLinux linux-pam
     ++ optional (!stdenv.hostPlatform.isDarwin) mytopEnv;
 
-  patches = common.patches ++ optionals stdenv.hostPlatform.isDarwin [
-    ./cmake-without-plugin-auth-pam.patch
-  ];
+  patches = common.patches;
 
   cmakeFlags = common.cmakeFlags ++ [
     "-DMYSQL_DATADIR=/var/lib/mysql"
@@ -190,6 +188,7 @@ server = stdenv.mkDerivation (common // {
   ] ++ optional (!stdenv.hostPlatform.isDarwin && withStorageToku) [
     "-DWITH_JEMALLOC=static"
   ] ++ optional stdenv.hostPlatform.isDarwin [
+    "-DPLUGIN_AUTH_PAM=OFF"
     "-DWITHOUT_OQGRAPH=1"
   ];
 
diff --git a/pkgs/servers/sql/monetdb/default.nix b/pkgs/servers/sql/monetdb/default.nix
index ec232b86463..9aec724ba62 100644
--- a/pkgs/servers/sql/monetdb/default.nix
+++ b/pkgs/servers/sql/monetdb/default.nix
@@ -3,7 +3,7 @@
 }:
 
 let
-  version = "11.37.7";
+  version = "11.37.11";
 in stdenv.mkDerivation {
 
   pname = "monetdb";
@@ -11,7 +11,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://dev.monetdb.org/downloads/sources/archive/MonetDB-${version}.tar.bz2";
-    sha256 = "00z6c7z4f9ww43574nz32b06rw5ln5fy3hlml32h2wrwsg0cj5jh";
+    sha256 = "0ch4vka64m5fbyah2730rcv7xpgy4hq26vbi8wd8mkadwna7azr5";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix
index 2b440f78e99..e759a62c2eb 100644
--- a/pkgs/servers/sql/postgresql/default.nix
+++ b/pkgs/servers/sql/postgresql/default.nix
@@ -182,41 +182,41 @@ let
 in self: {
 
   postgresql_9_5 = self.callPackage generic {
-    version = "9.5.22";
+    version = "9.5.23";
     psqlSchema = "9.5";
-    sha256 = "03v4d4nr9f86y0i1j5jmvfan5w8y4ga1mar59lhcnj3jl5q58ma8";
+    sha256 = "0rl31jc3kg2wq6hazyd297gnmx3cibjvivllbsivii2m6dzgl573";
     this = self.postgresql_9_5;
     inherit self;
   };
 
   postgresql_9_6 = self.callPackage generic {
-    version = "9.6.18";
+    version = "9.6.19";
     psqlSchema = "9.6";
-    sha256 = "16crr2a1sl97aiacqzd0bk56yl1abq6blc0c6qpx5rl5ny1c4zji";
+    sha256 = "1c2wnl5bbpjs1s1rpzvlnzsqlpb0p823zw7s38nhpgnxrja3myb1";
     this = self.postgresql_9_6;
     inherit self;
   };
 
   postgresql_10 = self.callPackage generic {
-    version = "10.13";
+    version = "10.14";
     psqlSchema = "10.0"; # should be 10, but changing it is invasive
-    sha256 = "1qal0yp7a90yzya7hl56gsmw5fvacplrdhpn7h9gnbyr1i2iyw2d";
+    sha256 = "0fxj30jvwq5pqpbj97vhlxgmn2ah59a78s9jyjr7vxyqj7sdh71q";
     this = self.postgresql_10;
     inherit self;
   };
 
   postgresql_11 = self.callPackage generic {
-    version = "11.8";
+    version = "11.9";
     psqlSchema = "11.1"; # should be 11, but changing it is invasive
-    sha256 = "1qksqyayxmnccmbapg3ajsw9pjgqva0inxjhx64rqd6ckhrg9wpa";
+    sha256 = "0db6pfphc5rp12abnkvv2l9pbl7bdyf3hhiwj8ghjwh35skqlq9m";
     this = self.postgresql_11;
     inherit self;
   };
 
   postgresql_12 = self.callPackage generic {
-    version = "12.3";
+    version = "12.4";
     psqlSchema = "12";
-    sha256 = "0hfg3n7rlz96579cj3z1dh2idl15rh3wfvn8jl31jj4h2yk69vcl";
+    sha256 = "1k06wryy8p4s1fim9qafcjlak3f58l0wqaqnrccr9x9j5jz3zsdy";
     this = self.postgresql_12;
     inherit self;
   };
diff --git a/pkgs/servers/sql/postgresql/ext/age.nix b/pkgs/servers/sql/postgresql/ext/age.nix
new file mode 100644
index 00000000000..09021317cd1
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/age.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchFromGitHub, bison, flex, postgresql }:
+
+stdenv.mkDerivation rec {
+  pname = "age";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "bitnine-oss";
+    repo = "AgensGraph-Extension";
+    rev = "v${version}";
+    sha256 = "0way59lj30727jlz2qz6rnw4fsxcd5028xcwgrwk7jxcaqi5fa17";
+  };
+
+  buildInputs = [ postgresql ];
+
+  makeFlags = [
+    "BISON=${bison}/bin/bison"
+    "FLEX=${flex}/bin/flex"
+  ];
+
+  installPhase = ''
+    install -D -t $out/lib *.so
+    install -D -t $out/share/postgresql/extension *.sql
+    install -D -t $out/share/postgresql/extension *.control
+  '';
+
+  passthru.tests = stdenv.mkDerivation {
+    inherit version src;
+
+    pname = "age-regression";
+
+    dontConfigure = true;
+
+    buildPhase = let
+      postgresqlAge = postgresql.withPackages (ps: [ ps.age ]);
+    in ''
+      # The regression tests need to be run in the order specified in the Makefile.
+      echo -e "include Makefile\nfiles:\n\t@echo \$(REGRESS)" > Makefile.regress
+      REGRESS_TESTS=$(make -f Makefile.regress files)
+
+      ${postgresql}/lib/pgxs/src/test/regress/pg_regress \
+        --inputdir=./ \
+        --bindir='${postgresqlAge}/bin' \
+        --encoding=UTF-8 \
+        --load-extension=age \
+        --inputdir=./regress --outputdir=./regress --temp-instance=./regress/instance \
+        --port=61958 --dbname=contrib_regression \
+        $REGRESS_TESTS
+    '';
+
+    installPhase = ''
+      touch $out
+    '';
+  };
+
+  meta = with stdenv.lib; {
+    description = "A graph database extension for PostgreSQL";
+    homepage = "https://github.com/bitnine-oss/AgensGraph-Extension";
+    changelog = "https://github.com/bitnine-oss/AgensGraph-Extension/releases/tag/v${version}";
+    maintainers = with maintainers; [ danieldk ];
+    platforms = postgresql.meta.platforms;
+    license = licenses.asl20;
+    broken = versionOlder postgresql.version "11.0";
+  };
+}
diff --git a/pkgs/servers/sql/postgresql/ext/pgroonga.nix b/pkgs/servers/sql/postgresql/ext/pgroonga.nix
index f57a6e8fa50..2e69444ccdd 100644
--- a/pkgs/servers/sql/postgresql/ext/pgroonga.nix
+++ b/pkgs/servers/sql/postgresql/ext/pgroonga.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pgroonga";
-  version = "2.2.5";
+  version = "2.2.6";
 
   src = fetchurl {
     url = "https://packages.groonga.org/source/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "0lwj99kdx9kfp4vfd7lfapj183mz235kj1vjfscfnkg5ypj656gz";
+    sha256 = "0anlxw4j6c3rd7q34j9mgph6i0zb1nff3warcxrkwvnnd1jbb6vr";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/servers/sql/postgresql/ext/pgrouting.nix b/pkgs/servers/sql/postgresql/ext/pgrouting.nix
index 76aa4c4ffec..674aa29daec 100644
--- a/pkgs/servers/sql/postgresql/ext/pgrouting.nix
+++ b/pkgs/servers/sql/postgresql/ext/pgrouting.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pgrouting";
-  version = "3.0.0";
+  version = "3.1.0";
 
   nativeBuildInputs = [ cmake perl ];
   buildInputs = [ postgresql boost ];
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     owner  = "pgRouting";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "101lyhhfcv3chrp2h5q04l155hr6wvx427cv1kgd4ryzk88wxx5i";
+    sha256 = "0sdyq0a98snmcq6g6mgmadlz6cgvacivv34943azhnzspa3iy409";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix b/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
new file mode 100644
index 00000000000..b95ef73308d
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, postgresql }:
+
+stdenv.mkDerivation rec {
+  pname = "plpgsql_check";
+  version = "1.13.1";
+
+  src = fetchFromGitHub {
+    owner = "okbob";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "19vcvfhxh0922qgibahmkyf7czniycqbzccxdw65j1ia7fd8yyc3";
+  };
+
+  buildInputs = [ postgresql ];
+
+  installPhase = ''
+    install -D -t $out/lib *.so
+    install -D -t $out/share/postgresql/extension *.sql
+    install -D -t $out/share/postgresql/extension *.control
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Linter tool for language PL/pgSQL";
+    homepage = "https://github.com/okbob/plpgsql_check";
+    platforms = postgresql.meta.platforms;
+    license = licenses.mit;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/servers/sql/postgresql/ext/plv8.nix b/pkgs/servers/sql/postgresql/ext/plv8.nix
index ffba1bd8e3b..8186e9128d9 100644
--- a/pkgs/servers/sql/postgresql/ext/plv8.nix
+++ b/pkgs/servers/sql/postgresql/ext/plv8.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "plv8";
-  version = "2.3.14";
+  version = "2.3.15";
 
   nativeBuildInputs = [ perl ];
   buildInputs = [ v8 postgresql ];
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     owner = "plv8";
     repo = "plv8";
     rev = "v${version}";
-    sha256 = "12g7z0xkb6zg2qd0hppk2izq238v1k52vb13jlvaij1rbhh10mbp";
+    sha256 = "1cv94n49gq2b377gqyq7pjjzw98czv4mwl3sx97y18c20zwp6rk3";
   };
 
   makefile = "Makefile.shared";
diff --git a/pkgs/servers/sql/postgresql/ext/postgis.nix b/pkgs/servers/sql/postgresql/ext/postgis.nix
index c8e26b5a82b..9feb45d311a 100644
--- a/pkgs/servers/sql/postgresql/ext/postgis.nix
+++ b/pkgs/servers/sql/postgresql/ext/postgis.nix
@@ -14,13 +14,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "postgis";
-  version = "3.0.1";
+  version = "3.0.2";
 
   outputs = [ "out" "doc" ];
 
   src = fetchurl {
     url = "https://download.osgeo.org/postgis/source/postgis-${version}.tar.gz";
-    sha256 = "0lv37v8f3143kfm9sdvw59461q2lndxiqvaw47lvmnaha7wk4m2s";
+    sha256 = "1jmji8i2wjabkrzqil683lypnmimigdmn64a10j3kj3kzlfn98d3";
   };
 
   buildInputs = [ libxml2 postgresql geos proj gdal json_c protobufc ]
diff --git a/pkgs/servers/sql/postgresql/ext/repmgr.nix b/pkgs/servers/sql/postgresql/ext/repmgr.nix
index 4ac74b2620b..a2e319170bd 100644
--- a/pkgs/servers/sql/postgresql/ext/repmgr.nix
+++ b/pkgs/servers/sql/postgresql/ext/repmgr.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "repmgr";
-  version = "5.0.0";
+  version = "5.1.0";
 
   src = fetchFromGitHub {
     owner = "2ndQuadrant";
     repo = "repmgr";
     rev = "v${version}";
-    sha256 = "0zrpv17zrgl8hynbzaaqj17qrchc8r9qwpqh8y10b0v3xdr22ayl";
+    sha256 = "1igcy98ggwyx8zg4g4kz7xb32b7vc3h668r5wbfk4w49x9v97f4m";
   };
 
   nativeBuildInputs = [ flex ];
diff --git a/pkgs/servers/sql/postgresql/ext/smlar.nix b/pkgs/servers/sql/postgresql/ext/smlar.nix
new file mode 100644
index 00000000000..adefe085a0b
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/smlar.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, postgresql }:
+
+stdenv.mkDerivation rec {
+  pname = "smlar-unstable";
+  version = "2020-04-08";
+
+  src = fetchgit {
+    url = "git://sigaev.ru/smlar.git";
+    rev = "0c345af71969d9863bb76efa833391d00705669e";
+    sha256 = "1pr3pbnjc9n209l52sgsn4xqzp92qk6wci55hcqjjrwf2gdxy0yr";
+  };
+
+  buildInputs = [ postgresql ];
+
+  makeFlags = [ "USE_PGXS=1" ];
+
+  installPhase = ''
+    install -D -t $out/lib *.so
+    install -D -t $out/share/postgresql/extension *.sql
+    install -D -t $out/share/postgresql/extension *.control
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Compute similary of any one-dimensional arrays";
+    homepage = "http://sigaev.ru/git/gitweb.cgi?p=smlar.git";
+    platforms = postgresql.meta.platforms;
+    license = licenses.bsd2;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/servers/sql/postgresql/ext/timescaledb.nix b/pkgs/servers/sql/postgresql/ext/timescaledb.nix
index 419bec6823d..61564a69232 100644
--- a/pkgs/servers/sql/postgresql/ext/timescaledb.nix
+++ b/pkgs/servers/sql/postgresql/ext/timescaledb.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation rec {
   pname = "timescaledb";
-  version = "1.7.1";
+  version = "1.7.3";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ postgresql openssl ];
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     owner  = "timescale";
     repo   = "timescaledb";
     rev    = "refs/tags/${version}";
-    sha256 = "11h1vvchnipcxvvbjb5y4bgkdzdsik5cq8k8yzkrqz8q33zmjvgg";
+    sha256 = "1y3w1ap1cxmi691wfz078r2h74pcwf38zs8lr985pfmb25w47q0l";
   };
 
   cmakeFlags = [ "-DSEND_TELEMETRY_DEFAULT=OFF" "-DREGRESS_CHECKS=OFF" ];
diff --git a/pkgs/servers/sql/postgresql/packages.nix b/pkgs/servers/sql/postgresql/packages.nix
index d4dafe7ddb1..6dbb7a8ed11 100644
--- a/pkgs/servers/sql/postgresql/packages.nix
+++ b/pkgs/servers/sql/postgresql/packages.nix
@@ -1,5 +1,7 @@
 self: super: {
 
+    age = super.callPackage ./ext/age.nix { };
+
     periods = super.callPackage ./ext/periods.nix { };
 
     postgis = super.callPackage ./ext/postgis.nix {
@@ -21,6 +23,8 @@ self: super: {
 
     pgroonga = super.callPackage ./ext/pgroonga.nix { };
 
+    plpgsql_check = super.callPackage ./ext/plpgsql_check.nix { };
+
     plv8 = super.callPackage ./ext/plv8.nix {
         v8 = super.callPackage ../../../development/libraries/v8/plv8_6_x.nix {
             python = self.python2;
@@ -41,6 +45,8 @@ self: super: {
 
     pipelinedb = super.callPackage ./ext/pipelinedb.nix { };
 
+    smlar = super.callPackage ./ext/smlar.nix { };
+
     temporal_tables = super.callPackage ./ext/temporal_tables.nix { };
 
     timescaledb = super.callPackage ./ext/timescaledb.nix { };
diff --git a/pkgs/servers/squid/default.nix b/pkgs/servers/squid/default.nix
index 3e292d8740c..ad7d534103c 100644
--- a/pkgs/servers/squid/default.nix
+++ b/pkgs/servers/squid/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "squid";
-  version = "4.11";
+  version = "4.13";
 
   src = fetchurl {
     url = "http://www.squid-cache.org/Versions/v4/${pname}-${version}.tar.xz";
-    sha256 = "0z986kykx539wjqd7mr8y0abf3z6hz8byf8fmmbky9hh4ihlgnaf";
+    sha256 = "1q1ywpic6s7dfjj3cwzcfgscc4zq0aih462gyas7j1z683ss14b8";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/servers/sslh/default.nix b/pkgs/servers/sslh/default.nix
index 68fe9c4b08e..578d280afd9 100644
--- a/pkgs/servers/sslh/default.nix
+++ b/pkgs/servers/sslh/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sslh";
-  version = "1.20";
+  version = "1.21c";
 
   src = fetchurl {
     url = "https://www.rutschle.net/tech/sslh/sslh-v${version}.tar.gz";
-    sha256 = "05jihpjxx094h7hqzgd9v5jmy77ipwrakzzmjyfvpdzw3h59px57";
+    sha256 = "01p7w74ppszxgz6n41lqd6xqvc7bjk2dsc769dd1yb7q4qvpiziv";
   };
 
   postPatch = "patchShebangs *.sh";
diff --git a/pkgs/servers/tacacsplus/default.nix b/pkgs/servers/tacacsplus/default.nix
index 400298d15d5..5010838cbe0 100644
--- a/pkgs/servers/tacacsplus/default.nix
+++ b/pkgs/servers/tacacsplus/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     description = "A protocol for authentication, authorization and accounting (AAA) services for routers and network devices";
     homepage = "http://www.shrubbery.net/tac_plus/";
     license = licenses.free;
-    maintainers = [ maintainers."0x4A6F" ];
+    maintainers = with maintainers; [ _0x4A6F ];
     platforms = with platforms; linux;
   };
 }
diff --git a/pkgs/servers/tailscale/default.nix b/pkgs/servers/tailscale/default.nix
index e61437c46ff..32c0c84dd08 100644
--- a/pkgs/servers/tailscale/default.nix
+++ b/pkgs/servers/tailscale/default.nix
@@ -2,24 +2,23 @@
 
 buildGoModule rec {
   pname = "tailscale";
-  # Tailscale uses "git describe" as version numbers. 0.99.1-0 means
-  # "tag v0.99.1 plus 0 commits", which corresponds to rev="v0.99.1"
-  # below.
-  version = "0.99.1-0";
+  version = "1.0.5";
 
   src = fetchFromGitHub {
     owner = "tailscale";
     repo = "tailscale";
-    rev = "v0.99.1";
-    sha256 = "1kq4x5xknv0qq6n78xj5wjbf6svbdyw4nzs7z5gjb3ylj2vl97pb";
+    rev = "v${version}";
+    sha256 = "0ib2s694kf5iz5hvrlzfs80z0931dhva7yir80crq0pji9y4rp7b";
   };
 
   nativeBuildInputs = [ makeWrapper ];
 
   CGO_ENABLED = 0;
 
-  goPackagePath = "tailscale.com";
-  vendorSha256 = "0yf2zdpd12w4qf4sbv7bkr40hw5faqynr6lb84v7w6v0az0nfzds";
+  vendorSha256 = "0l9lzwwvshg9a2kmmq1cvvlaxncbas78a9hjhvjjar89rjr2k2sv";
+
+  doCheck = false;
+
   subPackages = [ "cmd/tailscale" "cmd/tailscaled" ];
 
   postInstall = ''
diff --git a/pkgs/servers/tegola/default.nix b/pkgs/servers/tegola/default.nix
index 24e25f0c137..ecb7fdd4888 100644
--- a/pkgs/servers/tegola/default.nix
+++ b/pkgs/servers/tegola/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "tegola";
-  version = "0.11.2";
+  version = "0.12.0";
 
   goPackagePath = "github.com/go-spatial/tegola";
 
@@ -10,9 +10,11 @@ buildGoPackage rec {
     owner = "go-spatial";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0xrjs0py08q9i31rl0cxi6idncrrgqwcspqks3c5vd9i65yqc6fv";
+    sha256 = "1bm791cis6bqgvhkk6n03kdxh0y9fdkhsx4rgmv7pm3zzdd7b17r";
   };
 
+  buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/cmd/tegola/cmd.Version=${version}" ];
+
   meta = with stdenv.lib; {
     homepage = "https://www.tegola.io/";
     description = "Mapbox Vector Tile server";
diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix
index db310061927..3d5880245e7 100644
--- a/pkgs/servers/traefik/default.nix
+++ b/pkgs/servers/traefik/default.nix
@@ -2,16 +2,19 @@
 
 buildGoModule rec {
   pname = "traefik";
-  version = "2.2.1";
+  version = "2.2.8";
 
   src = fetchFromGitHub {
     owner = "containous";
     repo = "traefik";
     rev = "v${version}";
-    sha256 = "0byi2h1lma95l77sdj8jkidmwb12ryjqwxa0zz6vwjg07p5ps3k4";
+    sha256 = "1p2qv8vrjxn5wg41ywxbpaghb8585xmkwr8ih5df4dbdjw2m3k1f";
   };
 
-  vendorSha256 = "0rbwp0cxqfv4v5sii6kavdj73a0q0l4fnvxincvyy698qzx716kf";
+  vendorSha256 = "0kz7y64k07vlybzfjg6709fdy7krqlv1gkk01nvhs84sk8bnrcvn";
+
+  doCheck = false;
+
   subPackages = [ "cmd/traefik" ];
 
   nativeBuildInputs = [ go-bindata ];
@@ -34,4 +37,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ vdemeester ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/trezord/default.nix b/pkgs/servers/trezord/default.nix
index 7bdee09fca3..a59f74873dc 100644
--- a/pkgs/servers/trezord/default.nix
+++ b/pkgs/servers/trezord/default.nix
@@ -19,7 +19,7 @@ buildGoPackage rec {
     description = "TREZOR Communication Daemon aka TREZOR Bridge";
     homepage = "https://trezor.io";
     license = licenses.lgpl3;
-    maintainers = with maintainers; [ canndrew jb55 prusnak mmahut maintainers."1000101" ];
+    maintainers = with maintainers; [ canndrew jb55 prusnak mmahut _1000101 ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/trickster/trickster.nix b/pkgs/servers/trickster/trickster.nix
index 3c03193e770..cb8c87aa611 100644
--- a/pkgs/servers/trickster/trickster.nix
+++ b/pkgs/servers/trickster/trickster.nix
@@ -21,7 +21,6 @@ buildGoPackage rec {
     description = "Reverse proxy cache for the Prometheus HTTP APIv1";
     homepage = "https://github.com/Comcast/trickster";
     license = licenses.asl20;
-    maintainers = with maintainers; [ maintainers."1000101" ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ _1000101 ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/tvheadend/default.nix b/pkgs/servers/tvheadend/default.nix
index f97935a4ce3..f4c3270bf3d 100644
--- a/pkgs/servers/tvheadend/default.nix
+++ b/pkgs/servers/tvheadend/default.nix
@@ -1,10 +1,22 @@
 { stdenv, fetchFromGitHub, cmake, makeWrapper, pkgconfig
 , avahi, dbus, gettext, git, gnutar, gzip, bzip2, ffmpeg_3, libiconv, openssl, python
-, which, zlib }:
+, v4l-utils, which, zlib }:
 
 let
   version = "4.2.8";
 
+  dtv-scan-tables = stdenv.mkDerivation {
+    pname = "dtv-scan-tables";
+    version = "2020-05-18";
+    src = fetchFromGitHub {
+      owner = "tvheadend";
+      repo = "dtv-scan-tables";
+      rev = "e3138a506a064f6dfd0639d69f383e8e576609da";
+      sha256 = "19ac9ds3rfc2xrqcywsbd1iwcpv7vmql7gp01iikxkzcgm2g2b6w";
+    };
+    nativeBuildInputs = [ v4l-utils ];
+    installFlags = [ "DATADIR=$(out)" ];
+  };
 in stdenv.mkDerivation {
   pname = "tvheadend";
   inherit version;
@@ -28,7 +40,7 @@ in stdenv.mkDerivation {
   NIX_CFLAGS_COMPILE = [ "-Wno-error=format-truncation" "-Wno-error=stringop-truncation" ];
 
   # disable dvbscan, as having it enabled causes a network download which
-  # cannot happen during build.
+  # cannot happen during build.  We now include the dtv-scan-tables ourselves
   configureFlags = [
     "--disable-dvbscan"
     "--disable-bintray_cache"
@@ -45,6 +57,9 @@ in stdenv.mkDerivation {
     substituteInPlace src/config.c \
       --replace /usr/bin/tar ${gnutar}/bin/tar
 
+    substituteInPlace src/input/mpegts/scanfile.c \
+      --replace /usr/share/dvb ${dtv-scan-tables}/dvbv5
+
     # the version detection script `support/version` reads this file if it
     # exists, so let's just use that
     echo ${version} > rpm/version
diff --git a/pkgs/servers/udpt/default.nix b/pkgs/servers/udpt/default.nix
index 2849f8c7e74..acf885ed012 100644
--- a/pkgs/servers/udpt/default.nix
+++ b/pkgs/servers/udpt/default.nix
@@ -1,45 +1,20 @@
-{ stdenv, fetchFromGitHub, boost, sqlite, cmake, gtest }:
+{ stdenv, rustPlatform, fetchFromGitHub }:
 
-stdenv.mkDerivation {
+rustPlatform.buildRustPackage rec {
   pname = "udpt";
-  version = "2017-09-27";
-
-  enableParallelBuilding = true;
-
-  # Suitable for a network facing daemon.
-  hardeningEnable = [ "pie" ];
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "naim94a";
     repo = "udpt";
-    rev = "e0dffc83c8ce76b08a41a4abbd5f8065535d534f";
-    sha256 = "187dw96mzgcmh4k9pvfpb7ckbb8d4vlikamr2x8vkpwzgjs3xd6g";
+    rev = "${pname}-${version}";
+    sha256 = "1g6l0y5x9pdra3i1npkm474glysicm4hf2m01700ack2rp43vldr";
   };
 
-  doCheck = true;
-
-  checkPhase = ''
-    runHook preCheck
-
-    make test
-
-    runHook postCheck
-  '';
-
-  buildInputs = [ boost sqlite cmake gtest ];
-
-  postPatch = ''
-    # Enabling optimization (implied by fortify hardening) causes htons
-    # to be re-defined as a macro, turning this use of :: into a syntax error.
-    sed -i '104a#undef htons' src/udpTracker.cpp
-  '';
+  cargoSha256 = "1cmd80ndjxdmyfjpm1f04rwf64501nyi6wdsj7lxidgd1v92wy2c";
 
-  installPhase = ''
-    mkdir -p $out/bin $out/etc/
-    cp udpt $out/bin
-    cp ../udpt.conf $out/etc/
-    # without this, the resulting binary is unstripped.
-    runHook postInstall
+  postInstall = ''
+    install -D udpt.toml $out/share/udpt/udpt.toml
   '';
 
   meta = {
diff --git a/pkgs/servers/unifi/default.nix b/pkgs/servers/unifi/default.nix
index a6e055dd063..61f07f01bf2 100644
--- a/pkgs/servers/unifi/default.nix
+++ b/pkgs/servers/unifi/default.nix
@@ -49,7 +49,7 @@ in {
   };
 
   unifiStable = generic {
-    version = "5.13.29";
-    sha256 = "0j1spid9q41l57gyphg8smn92iy52z4x4wy236a2a15p731gllh8";
+    version = "5.14.22";
+    sha256 = "115i0gjk7higy07j3d95r21kcgmm6kb9jsvcsycdinrcn7kz2x6r";
   };
 }
diff --git a/pkgs/servers/urserver/default.nix b/pkgs/servers/urserver/default.nix
new file mode 100644
index 00000000000..3f665a32ebd
--- /dev/null
+++ b/pkgs/servers/urserver/default.nix
@@ -0,0 +1,45 @@
+{ stdenv
+, fetchurl
+, autoPatchelfHook
+, bluez
+, libX11
+, libXtst
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+  pname = "urserver";
+  version = "3.6.0.745";
+
+  src = fetchurl {
+    url = "https://www.unifiedremote.com/static/builds/server/linux-x64/745/urserver-${version}.tar.gz";
+    sha256 = "1ib9317bg9n4knwnlbrn1wfkyrjalj8js3a6h7zlcl8h8xc0szc8";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+  ];
+
+  buildInputs = [
+    stdenv.cc.cc.lib
+    bluez
+    libX11
+    libXtst
+    makeWrapper
+  ];
+
+  installPhase = ''
+    install -m755 -D urserver $out/bin/urserver
+    wrapProgram $out/bin/urserver --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath buildInputs}"
+    cp -r remotes $out/bin/remotes
+    cp -r manager $out/bin/manager
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://www.unifiedremote.com/";
+    description = "The one-and-only remote for your computer";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ sfrijters ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/servers/uwsgi/default.nix b/pkgs/servers/uwsgi/default.nix
index 0f0d2c23e4c..39a3113eb41 100644
--- a/pkgs/servers/uwsgi/default.nix
+++ b/pkgs/servers/uwsgi/default.nix
@@ -54,11 +54,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "uwsgi";
-  version = "2.0.18";
+  version = "2.0.19.1";
 
   src = fetchurl {
     url = "https://projects.unbit.it/downloads/${pname}-${version}.tar.gz";
-    sha256 = "10zmk4npknigmbqcq1wmhd461dk93159px172112vyq0i19sqwj9";
+    sha256 = "0256v72b7zr6ds4srpaawk1px3bp0djdwm239w3wrxpw7dzk1gjn";
   };
 
   nativeBuildInputs = [ python3 pkgconfig ];
diff --git a/pkgs/servers/web-apps/cryptpad/bower-packages.nix b/pkgs/servers/web-apps/cryptpad/bower-packages.nix
index 76dc26c4e08..be0c3ab72c7 100644
--- a/pkgs/servers/web-apps/cryptpad/bower-packages.nix
+++ b/pkgs/servers/web-apps/cryptpad/bower-packages.nix
@@ -5,36 +5,38 @@ buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [
   (fetchbower "jquery" "2.2.4" "2.2.4" "0kaln93pzjlr4vqf2zvsm9dwgjkrii9xlsqg48hc1vs16cl109rn")
   (fetchbower "tweetnacl" "0.12.2" "0.12.2" "1lfzbfrdaly3zyzbcp1p53yhxlrx56k8x04q924kg7l52gblm65g")
   (fetchbower "components-font-awesome" "4.7.0" "^4.6.3" "1w27im6ayjrbgjqa0i49ml5d3wy4ld40h9b29hz9myv77bpx4lg1")
-  (fetchbower "ckeditor" "4.7.3" "4.7.3" "02bism1gc0pccdxsp361hsrn9p4jh24dnxh40rv3xikr3g91b414")
-  (fetchbower "codemirror" "5.52.0" "^5.19.0" "0yc9qyfp7g800mgbaxc5zyy6bp5q257rj7l8i1bp0667h1wvfchp")
+  (fetchbower "ckeditor" "4.14.0" "4.14.0" "0lw9q0k8c0jlxvf35vrccab9c3c8rgpc6x66czj9si8yy2lyliyp")
+  (fetchbower "codemirror" "5.56.0+components1" "^5.19.0" "0fv8rxw6dspyv4bl6p2aka57544f45527rallnhnm5scv77qnakm")
   (fetchbower "requirejs" "2.3.5" "2.3.5" "05lyvgz914h2w08r24rk0vkk3yxmqrvlg7j3i5av9ffkg9lpzsli")
-  (fetchbower "marked" "0.5.0" "0.5.0" "00lclh9xfbhbjzzbbfjnfpr949hmqmr04jx2hq7mdc9f74xinj1r")
+  (fetchbower "marked" "1.1.0" "1.1.0" "1sdgqw9iki9c1pfm4c5h6c956mchbip2jywjrcmrlb75k53flsjz")
   (fetchbower "rangy" "rangy-release#1.3.0" "rangy-release#~1.3.0" "13x3wci003p8jyv2ncir0k23bxckx99b3555r0zvgmlwycg7w0zv")
   (fetchbower "json.sortify" "2.1.0" "~2.1.0" "1rz9xz0gnm4ak31n10vhslqsw8fw493gjylwj8xsy3bxqq1ygpnh")
   (fetchbower "secure-fabric.js" "secure-v1.7.9" "secure-v1.7.9" "1l56mk7hbnsm9cdg5zdcmg95p7a9w96dq0bbl8fp11vs0awjil7a")
   (fetchbower "hyperjson" "1.4.0" "~1.4.0" "1n68ls3x4lyhg1yy8i4q3xkgh5xqpyakf45sny4x91mkr68x4bd9")
   (fetchbower "chainpad-crypto" "0.2.4" "^0.2.0" "0sqqc2j0pc34ig6319n18i85j03hibqkhz3cbr70vbd8x43vfzby")
-  (fetchbower "chainpad-listmap" "0.8.1" "^0.8.1" "04q1mb9cr510y0xzybd51j8x16vmjb8v7jv3vik0cx7kzqf4rh0f")
-  (fetchbower "chainpad" "5.1.3" "^5.1.0" "1la0zrh0i1h264jacn436w85hzq3l0d4whwxd2sslja9xbwgfaa0")
+  (fetchbower "chainpad-listmap" "0.9.0" "^0.9.0" "173yr5a6zxq7nb3fha6f1ajv2vy0mvqwmm949ww7ihvrhh7cd0f5")
+  (fetchbower "chainpad" "5.2.2" "^5.2.0" "1rmh039bqk11xnnh99sqrqksr4idly75y5q4f5wyl9cg4slsqrdp")
   (fetchbower "file-saver" "1.3.1" "1.3.1" "065nzkvdiicxnw06z1sjz1sbp9nyis8z839hv6ng1fk25dc5kvkg")
   (fetchbower "alertifyjs" "1.0.11" "1.0.11" "0v7323bzq90k35shm3h6azj4wd9la3kbi1va1pw4qyvndkwma69l")
   (fetchbower "scrypt-async" "1.2.0" "1.2.0" "0d076ax708p9b8hcmk4f82j925nlnm0hmp0ni45ql37g7iirfpyv")
   (fetchbower "require-css" "0.1.10" "0.1.10" "106gz9i76v71q9zx2pnqkkj342m630lvssnw54023a0ljc0gqcwq")
   (fetchbower "less" "3.7.1" "3.7.1" "1n7ps4xlbrc9m63b3q62mg3p6i7d5hwchhpjshb0drzj5crvz556")
   (fetchbower "bootstrap" "3.1.1" "~3.1.1" "06bhjwa8p7mzbpr3jkgydd804z1nwrkdql66h7jkfml99psv9811")
-  (fetchbower "bootstrap" "4.4.1" "^v4.0.0" "0a3y5s6236jjw0ppzwdysf5mn87308ndadw1rgwgwswr9cgkz2ak")
+  (fetchbower "bootstrap" "4.5.0" "^v4.0.0" "0cfdn6z8jwx6y8lbbq6xpkfhq2vra0i84nkj9ji2bil1fzgzi40f")
   (fetchbower "diff-dom" "2.1.1" "2.1.1" "0nrn6xqlhp0p5ixjxdk8qg3939crkggh1l8swd20d7bsz186l5f1")
   (fetchbower "nthen" "0.1.7" "0.1.7" "03yap5ildigaw4rwxmxs37pcwhq415iham8w39zd56ka98gpfxa5")
   (fetchbower "open-sans-fontface" "1.4.2" "^1.4.2" "0ksav1fcq640fmdz49ra4prwsrrfj35y2p4shx1jh1j7zxd044nf")
   (fetchbower "bootstrap-tokenfield" "0.12.1" "^0.12.1" "0ib1v5k8h360sp19yiy7q92rfaz2554fvwwg2ixmxn01ydqlprw6")
-  (fetchbower "localforage" "1.7.3" "^1.5.2" "0q1a996j4dn246xp55zldfh07s9m9skhnf9i0g1w4ngwsnqx23rw")
+  (fetchbower "localforage" "1.8.1" "^1.5.2" "0ci265385racnxvn4g1n672yaxi47msw6k042nxdb5vlpf5g327j")
   (fetchbower "html2canvas" "0.4.1" "^0.4.1" "0yg7y90nav068q0i5afc2c221zkddpf28hi0hwc46cawx4180c69")
-  (fetchbower "croppie" "2.6.4" "^2.5.0" "1lcdsjdc4xz7a3sii836g40wx15223sxng53mnf3g7h7s5y84h1x")
+  (fetchbower "croppie" "2.6.5" "^2.5.0" "1j1v5620zi13ad42r358i4ay891abwn6nz357484kgq2bgjj6ccx")
   (fetchbower "sortablejs" "1.10.2" "^1.6.0" "10q4gyblhjy7w51clr0k9j7h722l4ybzn5535givwpmp6xagv11v")
   (fetchbower "saferphore" "0.0.1" "^0.0.1" "1wfr9wpbm3lswmvy2p0247ydb108h4qh5s286py89k871qh6jwdi")
-  (fetchbower "jszip" "Stuk/jszip#3.2.2" "Stuk/jszip#^3.1.5" "1k0va2ps2x29d1virg51n5s5rdjk21zfh7h14nnljcfnvxvk3rpp")
+  (fetchbower "jszip" "Stuk/jszip#3.5.0" "Stuk/jszip#^3.1.5" "1ra19d82cq1hrnbw88l8c61bs12kpgxvbfiiwpfi8fhy0l8hcsvk")
   (fetchbower "requirejs-plugins" "1.0.3" "^1.0.3" "00s3sdz1ykygx5shldwhhhybwgw7c99vkqd94i5i5x0gl97ifxf5")
-  (fetchbower "chainpad-netflux" "0.10.3" "^0.10.0" "0k8nf34bxwr070jjn4hc7ikiysnv22mix1mdg633j67b5ca0bm30")
+  (fetchbower "dragula.js" "3.7.2" "3.7.2" "0dbkmrl8bcxiplprmmp9fj96ri5nahb2ql8cc7zwawncv0drvlh0")
+  (fetchbower "MathJax" "3.0.5" "3.0.5" "087a9av15qj43m8pr3b9g59ncmydhmg40m6dfzsac62ykianh2a0")
+  (fetchbower "chainpad-netflux" "0.11.2" "^0.11.0" "1dqfricbm6s8iv7w1bsx1700m5cpk5rk1f4spqv0fqyf6mdz366v")
   (fetchbower "netflux-websocket" "0.1.20" "^0.1.20" "1xwqq7nw7fmhglndbplarkdzxfmkq831aqs8nm6qj0hz2ggbibhz")
   (fetchbower "es6-promise" "3.3.1" "^3.2.2" "0ai6z5admfs84fdx6663ips49kqgz4x68ays78cic0xfb7pp6vcz")
 ]; }
diff --git a/pkgs/servers/web-apps/cryptpad/default.nix b/pkgs/servers/web-apps/cryptpad/default.nix
index 77e529f26ab..abd20d64499 100644
--- a/pkgs/servers/web-apps/cryptpad/default.nix
+++ b/pkgs/servers/web-apps/cryptpad/default.nix
@@ -15,6 +15,7 @@ let
   bowerPackages = buildBowerComponents {
     name = "${cryptpad.name}-bower-packages";
     # this list had to be tweaked by hand:
+    # * add the second jquery ~2.1.0 entry
     # * add the second bootstrap ~3.1.1 entry
     generated = ./bower-packages.nix;
     src = cryptpad.src;
@@ -48,6 +49,8 @@ let
     postInstall = ''
       out_cryptpad=$out/lib/node_modules/cryptpad
 
+      substituteInPlace $out_cryptpad/lib/workers/index.js --replace "lib/workers/db-worker" "$out_cryptpad/lib/workers/db-worker"
+
       # add the bower components
       ln -sv \
         ${bowerPackages}/bower_components \
diff --git a/pkgs/servers/web-apps/cryptpad/generate.sh b/pkgs/servers/web-apps/cryptpad/generate.sh
index 2fe4099efa4..697b5a74a08 100755
--- a/pkgs/servers/web-apps/cryptpad/generate.sh
+++ b/pkgs/servers/web-apps/cryptpad/generate.sh
@@ -2,7 +2,7 @@
 #! nix-shell -i bash  -I nixpkgs=../../../.. -p nodePackages.node2nix nodePackages.bower2nix
 set -euo pipefail
 
-node2nix --nodejs-10 \
+node2nix --nodejs-12 \
      --input node-packages.json \
      --output node-packages-generated.nix \
      --composition node-packages.nix \
diff --git a/pkgs/servers/web-apps/cryptpad/node-packages-generated.nix b/pkgs/servers/web-apps/cryptpad/node-packages-generated.nix
index 1fde7673fe8..349ad59c60a 100644
--- a/pkgs/servers/web-apps/cryptpad/node-packages-generated.nix
+++ b/pkgs/servers/web-apps/cryptpad/node-packages-generated.nix
@@ -10,7 +10,7 @@ let
       version = "1.3.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
-        sha512 = "2j51dxzbgz22q0k7dhivimfsqx9a0f0h9slfd7n20gz3y1944gx3y7xai54za0x3zhbar6vqiaab2i9p913cwqk414qk3cnrm138pr2";
+        sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
       };
     };
     "array-flatten-1.1.1" = {
@@ -28,7 +28,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz";
-        sha512 = "0sy81yyf4na58ic2m0ib0prkb9njb1qzl7wf3vlq4hhm4xnwgxaph0lr43gs1sd0rai2xp1h6phlwvni9jiggm94dd54i0wc1cabhvj";
+        sha512 = "csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==";
       };
     };
     "body-parser-1.18.3" = {
@@ -55,16 +55,16 @@ let
       version = "0.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/chainpad-crypto/-/chainpad-crypto-0.2.4.tgz";
-        sha512 = "1b9mfdy7p405fgwsjhv5dmy1p5mz6nzb3ss4qkj664xnq4bpz5nn42cpxzvdk3d4g8zf4p98xq4ja81kykl296rzpgrpprgw34xarkx";
+        sha512 = "fWbVyeAv35vf/dkkQaefASlJcEfpEvfRI23Mtn+/TBBry7+LYNuJMXJiovVY35pfyw2+trKh1Py5Asg9vrmaVg==";
       };
     };
-    "chainpad-server-4.0.5" = {
+    "chainpad-server-4.0.9" = {
       name = "chainpad-server";
       packageName = "chainpad-server";
-      version = "4.0.5";
+      version = "4.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chainpad-server/-/chainpad-server-4.0.5.tgz";
-        sha512 = "11j36n90grxq83vpzjzff2nfcf4qkqwk6ply90sijkdcw575ql2ja9pww48inapqa3rqh3js0s4pccswyfyllnafvvrrv4xii08lwxw";
+        url = "https://registry.npmjs.org/chainpad-server/-/chainpad-server-4.0.9.tgz";
+        sha512 = "8h1W41ktE05TM6LuXrklpW2TUxWeNyIDiRaQygKsXaA/7pyJxF7+AmPVS+xW0c31VkHjQDPiaMzPoxhcxXnIyA==";
       };
     };
     "content-disposition-0.5.2" = {
@@ -82,7 +82,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
-        sha512 = "1f4y61wc913jrnga7nny83gzf9l2488q6sl1ry9lbwgh5x5d3va0xcc0xrmjk6gdxl6d4r6rsk800xp5bazhjrx05yx1wpc8c8gg0w4";
+        sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
       };
     };
     "cookie-0.3.1" = {
@@ -109,7 +109,7 @@ let
       version = "2.6.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
-        sha512 = "0q0fsr8bk1m83z0am0h2xn09vyfcf18adscxms8hclznwks1aihsisd96h8npx0idq5wwnypnqrkyk25m5d9zh3dk7rjs29nybc8bkc";
+        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
       };
     };
     "depd-1.1.2" = {
@@ -172,7 +172,7 @@ let
       version = "4.16.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/express/-/express-4.16.4.tgz";
-        sha512 = "0x2wjwybkq0ridr18abnsh5hymkh9fjma63ik8za1fl7jgmmhnrxg9qi8yy9p8hci4k8385xys0y28whamrn054zvfwl57q4sxr8pcg";
+        sha512 = "j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==";
       };
     };
     "finalhandler-1.1.1" = {
@@ -181,7 +181,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz";
-        sha512 = "2v4ymv7dvpxpnrid4cn8qni5k5l024zc2qzg8ipkbxwmqjbaiygbx0hvbnr0ywfy0is4ngyhp6ljgjh4wmk6fqc3hd3wyzxil798lb3";
+        sha512 = "Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==";
       };
     };
     "forwarded-0.1.2" = {
@@ -208,7 +208,7 @@ let
       version = "7.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz";
-        sha512 = "05qcmykw9czycnn3r2rrlspzd4dznr4796abdqzw150j7rafnlq8n4wp4dai34swb23lfvhw8s31l1k83vpwxqddyf1k724jq4dm430";
+        sha512 = "YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==";
       };
     };
     "gar-1.0.4" = {
@@ -217,7 +217,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/gar/-/gar-1.0.4.tgz";
-        sha512 = "3ikh31ywgrpmrh33kn82v8r5vjx0w4i1kva4gnc8rbd8dkbrps4gkgjdfab609fzhbzcbrch1cgn23s1ia1qn5cqj3vcgxjymqgv2f3";
+        sha512 = "w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w==";
       };
     };
     "get-folder-size-2.0.1" = {
@@ -226,16 +226,16 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/get-folder-size/-/get-folder-size-2.0.1.tgz";
-        sha512 = "3679cn6gprs8s2zfs0y73r0mv6pg9295y3r70pj75wcvilm4ds2yaim9b9918ap1vp48a9773nd9nwzjg179c1d75jbncy2c3w1n8gq";
+        sha512 = "+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA==";
       };
     };
-    "graceful-fs-4.2.3" = {
+    "graceful-fs-4.2.4" = {
       name = "graceful-fs";
       packageName = "graceful-fs";
-      version = "4.2.3";
+      version = "4.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz";
-        sha512 = "12xdl6ai5jdxcpcavw2hk4zpiknz7g7f2cvgawzwlzv7cy7qf7riq8ymkgqdqxjkpl1mg627dxa65zc9b0yqhflsmqlfg5q3481azbb";
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz";
+        sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==";
       };
     };
     "http-errors-1.6.3" = {
@@ -253,7 +253,7 @@ let
       version = "0.4.23";
       src = fetchurl {
         url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz";
-        sha512 = "062yxlrx4glr90bxn6jdv83qf03c9appkxdjjz5bhbphsx2yrn0y1i6yn9pfr3hfv2xiwq18hxvrvzfzfa7axv0sbgihskda58r7v4x";
+        sha512 = "neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==";
       };
     };
     "inherits-2.0.3" = {
@@ -271,7 +271,7 @@ let
       version = "1.9.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
-        sha512 = "3gcwhv1wa2hb1vljlcmzhvzliks9rj7nzsw165vgy69jakw8g55ky474mj4j41vfbid8viy9nhwn9kx8pfqrikyl29i98zi9vmkz8nh";
+        sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
       };
     };
     "jsonfile-4.0.0" = {
@@ -334,25 +334,25 @@ let
       version = "1.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz";
-        sha512 = "2sz22r1xrnyvq6jg0h6b6cab3s3xdsfqa0n6vl9xv9gq3ppcxrcpg2hqfc41xjwnfwfkr6240l5gys7nds61ch6xcb3gr3fwsl7x398";
+        sha512 = "KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==";
       };
     };
-    "mime-db-1.43.0" = {
+    "mime-db-1.44.0" = {
       name = "mime-db";
       packageName = "mime-db";
-      version = "1.43.0";
+      version = "1.44.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz";
-        sha512 = "36x3p6lll5v1g7na92kbba0bpcl36i1argsqn8iy4mgz3zh3llnqhzhfw0l26jqcb0mh9rhhmrx718kvqzchga6y79qdg9884c6r5zv";
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz";
+        sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
       };
     };
-    "mime-types-2.1.26" = {
+    "mime-types-2.1.27" = {
       name = "mime-types";
       packageName = "mime-types";
-      version = "2.1.26";
+      version = "2.1.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz";
-        sha512 = "1cxsgrndjg6jyfqzm74hv6cmy9lil52f1kzkq2niknaiqz20p3yiw0fpgsyld2zrbxr9abpdabz1q6nqa50xr9a0cmbjbi0cqymlnnk";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
+        sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
       };
     };
     "ms-2.0.0" = {
@@ -370,7 +370,7 @@ let
       version = "0.6.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
-        sha512 = "0xi79rad0khwah5v2k6pvh8ajjgi7hp3zlkg6gk11pv70ydcq7li0kzcv1gnaf13gmblzhvx7hxs2nhypphb0sp4cggiy4ympndr5c5";
+        sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
       };
     };
     "netflux-websocket-0.1.20" = {
@@ -379,7 +379,7 @@ let
       version = "0.1.20";
       src = fetchurl {
         url = "https://registry.npmjs.org/netflux-websocket/-/netflux-websocket-0.1.20.tgz";
-        sha512 = "1rdvzykqbvgkxk52k0f16vn1mzgrnxawyfnizlzqah3jv554pi7znbhlmjf5wjjabrj0k5dd7v53jzz0ncwg9vjf6j0kqi5ib1n9wdj";
+        sha512 = "svFkw4ol4gmkcXKnx5kF/8tR9mmtTCDzUlLy4mSlcNl/4iWlbDmgwp/+aJ3nqtv8fg12m+DAFGX2+fbC0//dcg==";
       };
     };
     "nthen-0.1.8" = {
@@ -388,7 +388,7 @@ let
       version = "0.1.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/nthen/-/nthen-0.1.8.tgz";
-        sha512 = "1rn74v8zsxvg9pywjqz4gg3947flyhzz66m5vgb0rw6mffg7l3pf0xmkfgamj42yafn200qfp1s0s9ardg429fy9wafr3z1hv08479s";
+        sha512 = "Oh2CwIbhj+wUT94lQV7LKmmgw3UYAGGd8oLIqp6btQN3Bz3PuWp4BuvtUo35H3rqDknjPfKx5P6mt7v+aJNjcw==";
       };
     };
     "on-finished-2.3.0" = {
@@ -406,7 +406,7 @@ let
       version = "1.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
-        sha512 = "2lzxqjq4zp60k9gbskpqz7pr1yvb0c6nygd42sia7n6km2gc0cc844nlc5d6r9sshrjhjvs284143jzvz9wzd4r6xr9dz2k24xrwb0a";
+        sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
       };
     };
     "path-to-regexp-0.1.7" = {
@@ -424,7 +424,7 @@ let
       version = "2.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
-        sha512 = "0xy6dm0910h3nsa0ik45yccdfm6f84nl3h9dpkb22crqhdr3mmiczcbrq9z53gq7l2ijxhxi3pzsfzafrzymw4c1nn68ml1y2pdy7vn";
+        sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
       };
     };
     "pull-stream-3.6.14" = {
@@ -433,7 +433,7 @@ let
       version = "3.6.14";
       src = fetchurl {
         url = "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.14.tgz";
-        sha512 = "1xjf24kjiqjzdx29ss7cqgr32vgd84b8xyd7d8n3yvwkay1jf84z2s9cpzwlmn0cq4sl26bxxpc89nnqv1630k90gaa87c7kaz9v2i8";
+        sha512 = "KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew==";
       };
     };
     "qs-6.5.2" = {
@@ -442,7 +442,7 @@ let
       version = "6.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
-        sha512 = "0c46ws0x9g3mmkgfmvd78bzvnmv2b8ryg4ah6jvyyqgjv9v994z7xdyvsc4vg9sf98gg7phvy3q1ahgaj5fy3dwzf2rki6bixgl15ip";
+        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
       };
     };
     "range-parser-1.2.1" = {
@@ -451,7 +451,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
-        sha512 = "15b00vag4wijzsp0lwi9jznpz16n858vq5p1p3dgjrqqil9c6d4x55s1nl1fi4cbq8307bylbvkd9qkhyk6qib8ksh8raibxb3jrf0y";
+        sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
       };
     };
     "raw-body-2.3.3" = {
@@ -460,7 +460,7 @@ let
       version = "2.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz";
-        sha512 = "27ygzjzpajjmz2bl1f7y1bla7wdw65w912r4i29x9p1r0pa5jivip658vwlkqq77n1nc619w1p52818mvihxhks4dlbc1pmbc925szm";
+        sha512 = "9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==";
       };
     };
     "safe-buffer-5.1.2" = {
@@ -469,7 +469,7 @@ let
       version = "5.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
-        sha512 = "3xbm0dkya4bc3zwfwpdzbl8ngq0aai5ihlp2v3s39y7162c7wyvv9izj3g8hv6dy6vm2lq48lmfzygk0kxwbjb6xic7k4a329j99p8r";
+        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
       };
     };
     "safer-buffer-2.1.2" = {
@@ -478,7 +478,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha512 = "2v99f22kh56y72d3s8wrgdvf5n10ry40dh3fwnsxr4d5rfvxdfxfmc3qyqkscnj4f8799jy9bpg6cm21x2d811dr9ib83wjrlmkg6k1";
+        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
       };
     };
     "saferphore-0.0.1" = {
@@ -496,7 +496,7 @@ let
       version = "0.16.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/send/-/send-0.16.2.tgz";
-        sha512 = "1kh8iy2h9x6mqbb0kssb4d966irri0z8g2151jwx47q32dbmds01j9fs2c8hln68dqqh0ims8p450z3xfw6vs8v2k253c1cyla1ibhk";
+        sha512 = "E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==";
       };
     };
     "serve-static-1.13.2" = {
@@ -505,7 +505,7 @@ let
       version = "1.13.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz";
-        sha512 = "2gkkd7jlmrn2a8d736x3fcij9jj16aglbq6pcivb897g01k1dlrpvb565d3hq9zwafyr60zlcqr5flgd2yqs36s8wxpylxqnck5vyx7";
+        sha512 = "p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==";
       };
     };
     "setprototypeof-1.1.0" = {
@@ -514,7 +514,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz";
-        sha512 = "2jlhhawfqdiga1m6if01ks1q3yx56k5vj6wf372589vkswvdflw7224viivxali56b0jjsckpmjy10rj6fcakhw2dbq2psr197kzw86";
+        sha512 = "BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==";
       };
     };
     "sortify-1.0.4" = {
@@ -532,7 +532,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz";
-        sha512 = "1xxwqpj713rq1idbmp7mj7cj9dl52lazgpd5x8a9g88jawbkn9xpwbgljl7cvnd0jqkll2zpdj5xy63dlis9l2k8vmx1n1gvyv8456f";
+        sha512 = "zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==";
       };
     };
     "stream-to-pull-stream-1.7.3" = {
@@ -541,7 +541,7 @@ let
       version = "1.7.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz";
-        sha512 = "0dcrjpdn2j9k2zhnw5v2kp3k9vqsng8x822nchipwh4rgzb3y7y9cj3q01r9mishxrha0rc62xh6v0dbkycn3fq847d5rbbkal75hza";
+        sha512 = "6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg==";
       };
     };
     "tiny-each-async-2.0.3" = {
@@ -578,7 +578,16 @@ let
       version = "1.6.18";
       src = fetchurl {
         url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
-        sha512 = "3r7402x79nilhdgk4z21yjh5y9vix8lwlll1kzcn8jd2m89vzksdb6wddia77cxv3iwhd6i5hkv6n7diwjbhpy7y03i2kqlvfplli2f";
+        sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
+      };
+    };
+    "ulimit-0.0.2" = {
+      name = "ulimit";
+      packageName = "ulimit";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ulimit/-/ulimit-0.0.2.tgz";
+        sha1 = "2b51f9dc8381ae4102636cec5eb338c2630588a0";
       };
     };
     "ultron-1.1.1" = {
@@ -587,7 +596,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz";
-        sha512 = "0x78hsv3jykmjl6qdqlqiz7v5nf06li8b5yvzpj6grnzwbcjch8ngyg55lm8g8mg4znvk7qbryvrr2dxacz3cvyb1nsm64qsw21g0ah";
+        sha512 = "UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==";
       };
     };
     "universalify-0.1.2" = {
@@ -596,7 +605,7 @@ let
       version = "0.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz";
-        sha512 = "29d9b6i7rf460m0c5761z6xzzjdl2q81ri19x5qcnvi9l85jp71f7lbr7bdk7sx3k3sqwcp9vfpmlh7srgfnzlmssr5j0lpj0imw4mc";
+        sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
       };
     };
     "unpipe-1.0.0" = {
@@ -632,20 +641,20 @@ let
       version = "3.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz";
-        sha512 = "2887c18dlvnvc62pqgwhihzxnnj9mzbnjqa0gqg3n94k5b6fx6nm1wggisy2bg3mi7dl81vk11i49wl319yfvh255w2nrbhydmqnxcy";
+        sha512 = "nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==";
       };
     };
   };
 in
 {
-  "cryptpad-git+https://github.com/xwiki-labs/cryptpad.git#3.13.0" = nodeEnv.buildNodePackage {
+  "cryptpad-git+https://github.com/xwiki-labs/cryptpad.git#3.20.1" = nodeEnv.buildNodePackage {
     name = "cryptpad";
     packageName = "cryptpad";
-    version = "3.13.0";
+    version = "3.20.1";
     src = fetchgit {
       url = "https://github.com/xwiki-labs/cryptpad.git";
-      rev = "6b657c47ceba50c85275981f45895341370d3d66";
-      sha256 = "d7b56930962fe5217d2051fb718954fd7aef96c9503e27d32148ea9b4a8dc098";
+      rev = "9bc27d7d0d50d17c345bd545a45341a05293c558";
+      sha256 = "4a1fc833b38b2097741500cef38c6b04f5b752c21736e95eb492c33012016332";
     };
     dependencies = [
       sources."accepts-1.3.7"
@@ -658,7 +667,7 @@ in
           sources."tweetnacl-git://github.com/dchest/tweetnacl-js.git#v0.12.2"
         ];
       })
-      sources."chainpad-server-4.0.5"
+      sources."chainpad-server-4.0.9"
       sources."content-disposition-0.5.2"
       sources."content-type-1.0.4"
       sources."cookie-0.3.1"
@@ -677,7 +686,7 @@ in
       sources."fs-extra-7.0.1"
       sources."gar-1.0.4"
       sources."get-folder-size-2.0.1"
-      sources."graceful-fs-4.2.3"
+      sources."graceful-fs-4.2.4"
       sources."http-errors-1.6.3"
       sources."iconv-lite-0.4.23"
       sources."inherits-2.0.3"
@@ -689,8 +698,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.4.1"
-      sources."mime-db-1.43.0"
-      sources."mime-types-2.1.26"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
       sources."ms-2.0.0"
       sources."negotiator-0.6.2"
       sources."netflux-websocket-0.1.20"
@@ -715,6 +724,7 @@ in
       sources."tiny-each-async-2.0.3"
       sources."tweetnacl-0.12.2"
       sources."type-is-1.6.18"
+      sources."ulimit-0.0.2"
       sources."ultron-1.1.1"
       sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
diff --git a/pkgs/servers/web-apps/cryptpad/node-packages.json b/pkgs/servers/web-apps/cryptpad/node-packages.json
index 3d068f6a449..07e02a1a0a2 100644
--- a/pkgs/servers/web-apps/cryptpad/node-packages.json
+++ b/pkgs/servers/web-apps/cryptpad/node-packages.json
@@ -1,3 +1,3 @@
 [
-  { "cryptpad": "git+https://github.com/xwiki-labs/cryptpad.git#3.13.0" }
+  { "cryptpad": "git+https://github.com/xwiki-labs/cryptpad.git#3.20.1" }
 ]
diff --git a/pkgs/servers/web-apps/cryptpad/node-packages.nix b/pkgs/servers/web-apps/cryptpad/node-packages.nix
index 3eecf3c9099..19c034aa78b 100644
--- a/pkgs/servers/web-apps/cryptpad/node-packages.nix
+++ b/pkgs/servers/web-apps/cryptpad/node-packages.nix
@@ -2,7 +2,7 @@
 
 {pkgs ? import <nixpkgs> {
     inherit system;
-  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-10_x"}:
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
 
 let
   nodeEnv = import ../../../development/node-packages/node-env.nix {
diff --git a/pkgs/servers/web-apps/dokuwiki/default.nix b/pkgs/servers/web-apps/dokuwiki/default.nix
index 48eeddd5ea9..8177e1d2226 100644
--- a/pkgs/servers/web-apps/dokuwiki/default.nix
+++ b/pkgs/servers/web-apps/dokuwiki/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dokuwiki";
-  version = "2018-04-22b";
+  version = "2020-07-29";
 
   src = fetchFromGitHub {
     owner = "splitbrain";
     repo = "${pname}";
     rev = "release_stable_${version}";
-    sha256 = "1na5pn4j4mi2la80ywzg1krwqdxz57mjkw0id6ga9rws809gkdjp";
+    sha256 = "09swcqyd06l3481k190gmlr3b33dlv1lw1kk9nyh5b4sa5p3k7kk";
   };
 
   preload = writeText "preload.php" ''
@@ -50,6 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     homepage = "https://www.dokuwiki.org";
     platforms = platforms.all;
-    maintainers = with maintainers; [ maintainers."1000101" ];
+    maintainers = with maintainers; [ _1000101 ];
   };
 }
diff --git a/pkgs/servers/web-apps/jitsi-meet/default.nix b/pkgs/servers/web-apps/jitsi-meet/default.nix
new file mode 100644
index 00000000000..4c85f949aec
--- /dev/null
+++ b/pkgs/servers/web-apps/jitsi-meet/default.nix
@@ -0,0 +1,34 @@
+{ pkgs, stdenv, fetchurl, nixosTests }:
+
+stdenv.mkDerivation rec {
+  pname = "jitsi-meet";
+  version = "1.0.4289";
+
+  src = fetchurl {
+    url = "https://download.jitsi.org/jitsi-meet/src/jitsi-meet-${version}.tar.bz2";
+    sha256 = "0hs6hjcb0cxmakx2na3xkz9bld0xcil5slp4wjl5xql3s00mk10v";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir $out
+    mv * $out/
+  '';
+
+  passthru.tests = {
+    single-host-smoke-test = nixosTests.jitsi-meet;
+  };
+
+  meta = with stdenv.lib; {
+    description = "Secure, Simple and Scalable Video Conferences";
+    longDescription = ''
+      Jitsi Meet is an open-source (Apache) WebRTC JavaScript application that uses Jitsi Videobridge
+      to provide high quality, secure and scalable video conferences.
+    '';
+    homepage = "https://github.com/jitsi/jitsi-meet";
+    license = licenses.asl20;
+    maintainers = teams.jitsi.members;
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/servers/web-apps/matomo/default.nix b/pkgs/servers/web-apps/matomo/default.nix
index 76d1a5f0b75..152ed408711 100644
--- a/pkgs/servers/web-apps/matomo/default.nix
+++ b/pkgs/servers/web-apps/matomo/default.nix
@@ -3,16 +3,16 @@
 let
   versions = {
     matomo = {
-      version = "3.13.5";
-      sha256 = "1b9a9jj86bb3f0093k6sz235iivvvqbcvkjqxwn7c9z7qsmpvbxr";
+      version = "3.13.6";
+      sha256 = "1d3s5v96mmhcxdnxi7qh822p55g9a2nxh0zcq2d8bhg0cshi9804";
     };
 
     matomo-beta = {
-      version = "3.13.5";
+      version = "3.13.6";
       # `beta` examples: "b1", "rc1", null
       # TOOD when updating: use null if stable version is >= latest beta or release candidate
       beta = null;
-      sha256 = "1b9a9jj86bb3f0093k6sz235iivvvqbcvkjqxwn7c9z7qsmpvbxr";
+      sha256 = "1d3s5v96mmhcxdnxi7qh822p55g9a2nxh0zcq2d8bhg0cshi9804";
     };
   };
   common = pname: { version, sha256, beta ? null }:
diff --git a/pkgs/servers/web-apps/mediawiki/default.nix b/pkgs/servers/web-apps/mediawiki/default.nix
index c23fb685c60..b9e0acfedb8 100644
--- a/pkgs/servers/web-apps/mediawiki/default.nix
+++ b/pkgs/servers/web-apps/mediawiki/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mediawiki";
-  version = "1.34.1";
+  version = "1.34.2";
 
   src = with stdenv.lib; fetchurl {
     url = "https://releases.wikimedia.org/mediawiki/${versions.majorMinor version}/${pname}-${version}.tar.gz";
-    sha256 = "0jg1ls5xy2bmvvd63lpvnkj53rfmik6sy2px14mphxba3gbcpf5c";
+    sha256 = "1mi46a14b2080x6mh61mb49xq0ky27g0lbm3gqgvkgckc1zmbp0f";
   };
 
   prePatch = ''
diff --git a/pkgs/servers/web-apps/moodle/default.nix b/pkgs/servers/web-apps/moodle/default.nix
index 62de7620c5e..447a27ad082 100644
--- a/pkgs/servers/web-apps/moodle/default.nix
+++ b/pkgs/servers/web-apps/moodle/default.nix
@@ -1,23 +1,23 @@
-{ stdenv, fetchurl, writeText }:
+{ lib, stdenv, fetchurl, writeText, plugins ? [ ] }:
 
 let
-  version = "3.8.3";
+  version = "3.9.1";
   stableVersion = builtins.substring 0 2 (builtins.replaceStrings ["."] [""] version);
-in
 
-stdenv.mkDerivation rec {
+in stdenv.mkDerivation rec {
   pname = "moodle";
   inherit version;
 
   src = fetchurl {
-    url = "https://download.moodle.org/stable${stableVersion}/${pname}-${version}.tgz";
-    sha256 = "1anjv4gvbb6833j04a1b4aaysnl4h0x96sr1hhm4nm5kq2fimjd1";
+    url =
+      "https://download.moodle.org/stable${stableVersion}/${pname}-${version}.tgz";
+    sha256 = "sha256-6QJDEInUQQSNj3kThQ65o2cT6JaRy0FrEKy+EcDMVvs=";
   };
 
   phpConfig = writeText "config.php" ''
-  <?php
-    return require(getenv('MOODLE_CONFIG'));
-  ?>
+    <?php
+      return require(getenv('MOODLE_CONFIG'));
+    ?>
   '';
 
   installPhase = ''
@@ -27,11 +27,34 @@ stdenv.mkDerivation rec {
     cp -r . $out/share/moodle
     cp ${phpConfig} $out/share/moodle/config.php
 
+    ${lib.concatStringsSep "\n" (map (p:
+      let
+        dir = if p.pluginType == "mod" then
+          "mod"
+        else if p.pluginType == "theme" then
+          "theme"
+        else if p.pluginType == "block" then
+          "blocks"
+        else if p.pluginType == "question" then
+          "question/type"
+        else if p.pluginType == "course" then
+          "course/format"
+        else if p.pluginType == "report" then
+          "admin/report"
+        else
+          throw "unknown moodle plugin type";
+        # we have to copy it, because the plugins have refrences to .. inside
+      in ''
+        mkdir -p $out/share/moodle/${dir}/${p.name}
+        cp -r ${p}/* $out/share/moodle/${dir}/${p.name}/
+      '') plugins)}
+
     runHook postInstall
   '';
 
   meta = with stdenv.lib; {
-    description = "Free and open-source learning management system (LMS) written in PHP";
+    description =
+      "Free and open-source learning management system (LMS) written in PHP";
     license = licenses.gpl3Plus;
     homepage = "https://moodle.org/";
     maintainers = with maintainers; [ aanderse ];
diff --git a/pkgs/servers/web-apps/moodle/moodle-utils.nix b/pkgs/servers/web-apps/moodle/moodle-utils.nix
new file mode 100644
index 00000000000..168482bffe6
--- /dev/null
+++ b/pkgs/servers/web-apps/moodle/moodle-utils.nix
@@ -0,0 +1,32 @@
+{ stdenv, unzip, ... }:
+
+let
+  buildMoodlePlugin = a@{
+    name,
+    src,
+    pluginType,
+    configurePhase ? ":",
+    buildPhase ? ":",
+    buildInputs ? [ ],
+    ...
+  }:
+  stdenv.mkDerivation (a // {
+    name = name;
+
+    inherit pluginType;
+    inherit configurePhase buildPhase;
+
+    buildInputs = [ unzip ] ++ buildInputs;
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p "$out"
+      mv * $out/
+
+      runHook postInstall
+    '';
+  });
+in {
+  inherit buildMoodlePlugin;
+}
diff --git a/pkgs/servers/web-apps/rss-bridge/default.nix b/pkgs/servers/web-apps/rss-bridge/default.nix
new file mode 100644
index 00000000000..432f5956406
--- /dev/null
+++ b/pkgs/servers/web-apps/rss-bridge/default.nix
@@ -0,0 +1,33 @@
+{ config, lib, pkgs, fetchFromGitHub, stdenv, ... }:
+
+stdenv.mkDerivation rec {
+  pname = "rss-bridge";
+  version = "2020-02-26";
+
+  src = fetchFromGitHub {
+    owner = "RSS-Bridge";
+    repo = "rss-bridge";
+    rev = "${version}";
+    sha256 = "075k4bylx9308d083ry5a9q4629ccnrnndqqdqp1g42rzlqrw79q";
+  };
+
+  patchPhase = ''
+    substituteInPlace lib/rssbridge.php \
+      --replace "define('PATH_CACHE', PATH_ROOT . 'cache/');" "define('PATH_CACHE', getenv('RSSBRIDGE_DATA') . '/cache/');" \
+      --replace "define('FILE_CONFIG', PATH_ROOT . 'config.ini.php');" "define('FILE_CONFIG', getenv('RSSBRIDGE_DATA') . '/config.ini.php');" \
+      --replace "define('WHITELIST', PATH_ROOT . 'whitelist.txt');" "define('WHITELIST', getenv('RSSBRIDGE_DATA') . '/whitelist.txt');"
+  '';
+
+  installPhase = ''
+    mkdir $out/
+    cp -R ./* $out
+  '';
+
+  meta = with lib; {
+    description = "The RSS feed for websites missing it";
+    homepage = "https://github.com/RSS-Bridge/rss-bridge";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ dawidsowa ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/servers/web-apps/searx/default.nix b/pkgs/servers/web-apps/searx/default.nix
index 730e5c41bbf..dc87acddd88 100644
--- a/pkgs/servers/web-apps/searx/default.nix
+++ b/pkgs/servers/web-apps/searx/default.nix
@@ -4,39 +4,18 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "searx";
-  version = "0.16.0";
+  version = "0.17.0";
 
   # Can not use PyPI because certain test files are missing.
   src = fetchFromGitHub {
     owner = "asciimoo";
     repo = "searx";
     rev = "v${version}";
-    sha256 = "0hfa4nmis98yvghxw866rzjpmhb2ln8l6l8g9yx4m79b2lk76xcs";
+    sha256 = "0pznz3wsaikl8khmzqvj05kzh5y07hjw8gqhy6x0lz1b00cn5af4";
   };
 
-  patches = [(fetchpatch {
-    url = "https://github.com/asciimoo/searx/commit/b8b13372c8fd3bfe978a1c724ab98b05348df054.patch";
-    sha256 = "1zc3dx8pgqfg0bj48ihckjk9xrrm33jlnmj8k02g17gfcmj7566a";
-  })];
-
   postPatch = ''
-    substituteInPlace requirements.txt \
-      --replace 'certifi==2019.3.9' 'certifi' \
-      --replace 'flask==1.0.2' 'flask' \
-      --replace 'flask-babel==0.12.2' 'flask-babel' \
-      --replace 'jinja2==2.10.1' 'jinja2' \
-      --replace 'lxml==4.3.3' 'lxml' \
-      --replace 'idna==2.8' 'idna' \
-      --replace 'pygments==2.1.3' 'pygments>=2.1,<3.0' \
-      --replace 'pyopenssl==19.0.0' 'pyopenssl' \
-      --replace 'python-dateutil==2.8.0' 'python-dateutil==2.8.*' \
-      --replace 'pyyaml==5.1' 'pyyaml' \
-      --replace 'requests[socks]==2.22.0' 'requests[socks]'
-    substituteInPlace requirements-dev.txt \
-      --replace 'plone.testing==5.0.0' 'plone.testing' \
-      --replace 'pep8==1.7.0' 'pep8==1.7.*' \
-      --replace 'splinter==0.11.0' 'splinter' \
-      --replace 'selenium==3.141.0' 'selenium'
+    sed -i 's/==.*$//' requirements.txt
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/servers/web-apps/shiori/default.nix b/pkgs/servers/web-apps/shiori/default.nix
index dbea567b7e1..45b93bf1ad5 100644
--- a/pkgs/servers/web-apps/shiori/default.nix
+++ b/pkgs/servers/web-apps/shiori/default.nix
@@ -6,6 +6,8 @@ buildGoModule rec {
 
   vendorSha256 = "1ik5faysc880kz7nymvbmjj006l1fsqfy76036szwzg314v78643";
 
+  doCheck = false;
+
   src = fetchFromGitHub {
     owner = "go-shiori";
     repo = pname;
@@ -19,4 +21,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ minijackson ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/servers/web-apps/sogo/default.nix b/pkgs/servers/web-apps/sogo/default.nix
index 3e78b5d9d43..1ec512ba0ca 100644
--- a/pkgs/servers/web-apps/sogo/default.nix
+++ b/pkgs/servers/web-apps/sogo/default.nix
@@ -1,24 +1,25 @@
 { gnustep, lib, fetchFromGitHub, fetchpatch, makeWrapper, python2, lndir
-, openssl_1_1, openldap, sope, libmemcached, curl }: with lib; gnustep.stdenv.mkDerivation rec {
+, openssl_1_1, openldap, sope, libmemcached, curl, libsodium, libzip, pkgconfig }:
+with lib; gnustep.stdenv.mkDerivation rec {
   pname = "SOGo";
-  version = "4.3.2";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "inverse-inc";
     repo = pname;
     rev = "SOGo-${version}";
-    sha256 = "1xxad23a8zy6w850x5nrrf54db0x73lc9drmc5kpfk870fk2lmr0";
+    sha256 = "sha256-SEyyHekUCSkb5rOh7Ty8AhtT4S9KicTRbo9iWhijdGE=";
   };
 
   nativeBuildInputs = [ gnustep.make makeWrapper python2 ];
-  buildInputs = [ gnustep.base sope openssl_1_1 libmemcached (curl.override { openssl = openssl_1_1; }) ]
+  buildInputs = [ gnustep.base sope openssl_1_1 libmemcached (curl.override { openssl = openssl_1_1; }) libsodium libzip pkgconfig ]
     ++ optional (openldap != null) openldap;
 
   patches = [
     # TODO: take a closer look at other patches in https://sources.debian.org/patches/sogo/ and https://github.com/Skrupellos/sogo-patches
     (fetchpatch {
-      url = "https://sources.debian.org/data/main/s/sogo/4.3.0-1/debian/patches/0005-Remove-build-date.patch";
-      sha256 = "0lrh3bkfj3r0brahfkyb0g7zx7r2jjd5cxzjl43nqla0fs09wsh8";
+      url = "https://salsa.debian.org/debian/sogo/-/raw/120ac6390602c811908c7fcb212a79acbc7f7f28/debian/patches/0005-Remove-build-date.patch";
+      sha256 = "151i8504kwdlcirgd0pbif7cxnb1q6jsp5j7dbh9p6zw2xgwkp25";
     })
   ];
 
diff --git a/pkgs/servers/web-apps/wallabag/default.nix b/pkgs/servers/web-apps/wallabag/default.nix
index e4f1a3009ee..48afdc5c01d 100644
--- a/pkgs/servers/web-apps/wallabag/default.nix
+++ b/pkgs/servers/web-apps/wallabag/default.nix
@@ -13,7 +13,15 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" ];
 
-  patches = [ ./wallabag-data.patch ]; # exposes $WALLABAG_DATA
+  patches = [
+    ./wallabag-data.patch # exposes $WALLABAG_DATA
+    (fetchurl {
+      # Fixes "Uncaught RuntimeException: Setting "piwik_enabled" couldn't be found."; https://github.com/wallabag/wallabag/issues/3662
+      # Remove >= 2.4.0
+      url = "https://github.com/wallabag/wallabag/pull/3868.patch";
+      sha256 = "0pfxsv8ncaxkjkybim3v3iswmfv1vbjlzmvj50nn9blvjwc9gxjg";
+    })
+  ];
 
   dontBuild = true;
 
diff --git a/pkgs/servers/webmetro/default.nix b/pkgs/servers/webmetro/default.nix
index 7d0079fca20..4be6ef68274 100644
--- a/pkgs/servers/webmetro/default.nix
+++ b/pkgs/servers/webmetro/default.nix
@@ -25,6 +25,5 @@ rustPlatform.buildRustPackage rec {
     '';
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ leenaars ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index c6fe55ad9f7..092764a3d9d 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -105,7 +105,7 @@ self: super:
         rm -rf $out/share/doc
       '';
     CPP = stdenv.lib.optionalString stdenv.isDarwin "clang -E -";
-    propagatedBuildInputs = [ self.xorgproto ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xorgproto ];
   });
 
   libAppleWM = super.libAppleWM.overrideAttrs (attrs: {
@@ -117,7 +117,7 @@ self: super:
 
   libXau = super.libXau.overrideAttrs (attrs: {
     outputs = [ "out" "dev" ];
-    propagatedBuildInputs = [ self.xorgproto ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xorgproto ];
   });
 
   libXdmcp = super.libXdmcp.overrideAttrs (attrs: {
@@ -126,7 +126,7 @@ self: super:
 
   libXfont = super.libXfont.overrideAttrs (attrs: {
     outputs = [ "out" "dev" ];
-    propagatedBuildInputs = [ freetype ]; # propagate link reqs. like bzip2
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ freetype ]; # propagate link reqs. like bzip2
     # prevents "misaligned_stack_error_entering_dyld_stub_binder"
     configureFlags = lib.optional isDarwin "CFLAGS=-O0";
   });
@@ -136,6 +136,22 @@ self: super:
     configureFlags = attrs.configureFlags or []
       ++ malloc0ReturnsNullCrossFlag;
   });
+  libXxf86dga = super.libXxf86dga.overrideAttrs (attrs: {
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+  });
+  libXxf86misc = super.libXxf86misc.overrideAttrs (attrs: {
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+  });
+  libdmx = super.libdmx.overrideAttrs (attrs: {
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+  });
+  xdpyinfo = super.xdpyinfo.overrideAttrs (attrs: {
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+  });
 
   # Propagate some build inputs because of header file dependencies.
   # Note: most of these are in Requires.private, so maybe builder.sh
@@ -146,7 +162,7 @@ self: super:
     '';
     configureFlags = attrs.configureFlags or []
       ++ malloc0ReturnsNullCrossFlag;
-    propagatedBuildInputs = [ self.libSM ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libSM ];
     depsBuildBuild = [ buildPackages.stdenv.cc ];
     CPP = if stdenv.isDarwin then "clang -E -" else "${stdenv.cc.targetPrefix}cc -E -";
     outputs = [ "out" "dev" "devdoc" ];
@@ -166,12 +182,12 @@ self: super:
 
   libXcomposite = super.libXcomposite.overrideAttrs (attrs: {
     outputs = [ "out" "dev" ];
-    propagatedBuildInputs = [ self.libXfixes ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libXfixes ];
   });
 
   libXaw = super.libXaw.overrideAttrs (attrs: {
     outputs = [ "out" "dev" "devdoc" ];
-    propagatedBuildInputs = [ self.libXmu ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libXmu ];
   });
 
   libXcursor = super.libXcursor.overrideAttrs (attrs: {
@@ -184,7 +200,7 @@ self: super:
 
   libXft = super.libXft.overrideAttrs (attrs: {
     outputs = [ "out" "dev" ];
-    propagatedBuildInputs = [ self.libXrender freetype fontconfig ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libXrender freetype fontconfig ];
     configureFlags = attrs.configureFlags or []
       ++ malloc0ReturnsNullCrossFlag;
 
@@ -208,7 +224,7 @@ self: super:
 
   libXext = super.libXext.overrideAttrs (attrs: {
     outputs = [ "out" "dev" "man" "doc" ];
-    propagatedBuildInputs = [ self.xorgproto self.libXau ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xorgproto self.libXau ];
     configureFlags = attrs.configureFlags or []
       ++ malloc0ReturnsNullCrossFlag;
   });
@@ -219,7 +235,7 @@ self: super:
 
   libXi = super.libXi.overrideAttrs (attrs: {
     outputs = [ "out" "dev" "man" "doc" ];
-    propagatedBuildInputs = [ self.libXfixes ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libXfixes ];
     configureFlags = stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
       "xorg_cv_malloc0_returns_null=no";
   });
@@ -239,19 +255,19 @@ self: super:
     outputs = [ "out" "dev" ];
     configureFlags = attrs.configureFlags or []
       ++ malloc0ReturnsNullCrossFlag;
-    propagatedBuildInputs = [self.libXrender];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libXrender ];
   });
 
   libSM = super.libSM.overrideAttrs (attrs: {
     outputs = [ "out" "dev" "doc" ];
-    propagatedBuildInputs = [ self.libICE ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libICE ];
   });
 
   libXrender = super.libXrender.overrideAttrs (attrs: {
     outputs = [ "out" "dev" "doc" ];
     configureFlags = attrs.configureFlags or []
       ++ malloc0ReturnsNullCrossFlag;
-    propagatedBuildInputs = [ self.xorgproto ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xorgproto ];
   });
 
   libXres = super.libXres.overrideAttrs (attrs: {
@@ -319,7 +335,7 @@ self: super:
   });
 
   utilmacros = super.utilmacros.overrideAttrs (attrs: { # not needed for releases, we propagate the needed tools
-    propagatedBuildInputs = [ automake autoconf libtool ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ automake autoconf libtool ];
   });
 
   x11perf = super.x11perf.overrideAttrs (attrs: {
@@ -558,6 +574,7 @@ self: super:
 
   xorgproto = super.xorgproto.overrideAttrs (attrs: {
     buildInputs = [];
+    propagatedBuildInputs = [];
     nativeBuildInputs = attrs.nativeBuildInputs ++ [ meson ninja ];
     # adds support for printproto needed for libXp
     mesonFlags = [ "-Dlegacy=true" ];
@@ -626,7 +643,7 @@ self: super:
       then {
         outputs = [ "out" "dev" ];
         buildInputs = commonBuildInputs ++ [ libdrm mesa ];
-        propagatedBuildInputs = [ libpciaccess epoxy ] ++ commonPropagatedBuildInputs ++ lib.optionals stdenv.isLinux [
+        propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ libpciaccess epoxy ] ++ commonPropagatedBuildInputs ++ lib.optionals stdenv.isLinux [
           udev
         ];
         prePatch = stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
@@ -755,7 +772,7 @@ self: super:
       "--with-launchdaemons-dir=\${out}/LaunchDaemons"
       "--with-launchagents-dir=\${out}/LaunchAgents"
     ];
-    propagatedBuildInputs = [ self.xauth ]
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xauth ]
                          ++ lib.optionals isDarwin [ self.libX11 self.xorgproto ];
     prePatch = ''
       sed -i 's|^defaultserverargs="|&-logfile \"$HOME/.xorg.log\"|p' startx.cpp
diff --git a/pkgs/servers/xandikos/default.nix b/pkgs/servers/xandikos/default.nix
index 27fb93a8803..6bd3ebc4232 100644
--- a/pkgs/servers/xandikos/default.nix
+++ b/pkgs/servers/xandikos/default.nix
@@ -5,27 +5,29 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "xandikos";
-  version = "0.1.0";
+  version = "0.2.3";
 
   src = fetchFromGitHub {
     owner = "jelmer";
     repo = "xandikos";
     rev = "v${version}";
-    sha256 = "12r8fciid2qpqf054584ywwh49yddyhhpkpcm6jihzyr5y2r4kn1";
+    sha256 = "1x0bylmdizirvlcn6ryd43lffpmlq0cklj3jz956scmxgq4p6wby";
   };
 
   propagatedBuildInputs = with python3Packages; [
+    aiohttp
     dulwich
     defusedxml
     icalendar
     jinja2
+    multidict
+    prometheus_client
   ];
 
   meta = with stdenv.lib; {
     description = "Lightweight CalDAV/CardDAV server";
     homepage = "https://github.com/jelmer/xandikos";
     license = licenses.gpl3Plus;
-    maintainers = [ maintainers."0x4A6F" ];
+    maintainers = with maintainers; [ _0x4A6F ];
   };
 }
-
diff --git a/pkgs/servers/xmpp/biboumi/default.nix b/pkgs/servers/xmpp/biboumi/default.nix
index e1cec51e4ab..257d94f4a73 100644
--- a/pkgs/servers/xmpp/biboumi/default.nix
+++ b/pkgs/servers/xmpp/biboumi/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "biboumi";
-  version = "8.3";
+  version = "8.5";
 
   src = fetchurl {
     url = "https://git.louiz.org/biboumi/snapshot/biboumi-${version}.tar.xz";
-    sha256 = "0896f52nh8vd0idkdznv3gj6wqh1nqhjbwv0m560f0h62f01vm7k";
+    sha256 = "0rn9p99iqdyvxjzjq9w0ra7pkk0mngjy65nlg3hqfdw8kq9mv5qf";
   };
 
   louiz_catch = fetchgit {
@@ -24,10 +24,7 @@ stdenv.mkDerivation rec {
 
   preConfigure = ''
     substituteInPlace CMakeLists.txt --replace /etc/biboumi $out/etc/biboumi
-    substituteInPlace unit/biboumi.service.cmake --replace /bin/kill ${coreutils}/bin/kill
     cp $louiz_catch/single_include/catch.hpp tests/
-    # echo "policy_directory=$out/etc/biboumi" >> conf/biboumi.cfg
-    # TODO include conf/biboumi.cfg as example somewhere
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/servers/xmpp/prosody/default.nix b/pkgs/servers/xmpp/prosody/default.nix
index 05e276f0b98..0a0cc9aeaf9 100644
--- a/pkgs/servers/xmpp/prosody/default.nix
+++ b/pkgs/servers/xmpp/prosody/default.nix
@@ -37,8 +37,8 @@ stdenv.mkDerivation rec {
   # version.
   communityModules = fetchhg {
     url = "https://hg.prosody.im/prosody-modules";
-    rev = "acd231e2b46f";
-    sha256 = "1b33lsxrrrvarknqz9xs7j7f19bzxxymmfdhch7k70x3yyiwmfsy";
+    rev = "2dcbc01c9931";
+    sha256 = "0ydhbvfp7vk5zqpsc54ihxz6y2gmzh0bcgyz0xidlxrmxzwcvvyh";
   };
 
   buildInputs = [
diff --git a/pkgs/servers/zigbee2mqtt/default.nix b/pkgs/servers/zigbee2mqtt/default.nix
new file mode 100644
index 00000000000..235f0209674
--- /dev/null
+++ b/pkgs/servers/zigbee2mqtt/default.nix
@@ -0,0 +1,35 @@
+{ pkgs, stdenv, system, dataDir ? "/opt/zigbee2mqtt/data", nixosTests }:
+let
+  package = (import ./node.nix { inherit pkgs system; }).package;
+in
+package.override rec {
+  version = "1.14.4";
+  reconstructLock = true;
+
+  postInstall = ''
+    sed -i '1s;^;#!/usr/bin/env node\n;' $out/lib/node_modules/zigbee2mqtt/index.js
+    chmod +x $out/lib/node_modules/zigbee2mqtt/index.js
+    mkdir $out/bin
+    ln -s $out/lib/node_modules/zigbee2mqtt/index.js $out/bin/zigbee2mqtt
+
+    rm -rf $out/lib/node_modules/zigbee2mqtt/data
+    ln -s ${dataDir} $out/lib/node_modules/zigbee2mqtt/data
+  '';
+
+  src = pkgs.fetchFromGitHub {
+    owner = "Koenkk";
+    repo = "zigbee2mqtt";
+    rev = version;
+    sha256 = "1gyl4f7wh7796w4789pi0ix5y30677784miwylr8wrfqgb1hmddq";
+  };
+
+  passthru.tests.zigbee2mqtt = nixosTests.zigbee2mqtt;
+
+  meta = with pkgs.stdenv.lib; {
+    description = "Zigbee to MQTT bridge using zigbee-shepherd";
+    license = licenses.gpl3;
+    homepage = https://github.com/Koenkk/zigbee2mqtt;
+    maintainers = with maintainers; [ sweber ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/servers/zigbee2mqtt/node-packages.nix b/pkgs/servers/zigbee2mqtt/node-packages.nix
new file mode 100644
index 00000000000..1605e25da65
--- /dev/null
+++ b/pkgs/servers/zigbee2mqtt/node-packages.nix
@@ -0,0 +1,9625 @@
+# This file has been generated by node2nix 1.8.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+  sources = {
+    "@babel/cli-7.10.5" = {
+      name = "_at_babel_slash_cli";
+      packageName = "@babel/cli";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/cli/-/cli-7.10.5.tgz";
+        sha512 = "j9H9qSf3kLdM0Ao3aGPbGZ73mEA9XazuupcS6cDGWuiyAcANoguhP0r2Lx32H5JGw4sSSoHG3x/mxVnHgvOoyA==";
+      };
+    };
+    "@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.11.0" = {
+      name = "_at_babel_slash_compat-data";
+      packageName = "@babel/compat-data";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz";
+        sha512 = "TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==";
+      };
+    };
+    "@babel/core-7.11.4" = {
+      name = "_at_babel_slash_core";
+      packageName = "@babel/core";
+      version = "7.11.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.11.4.tgz";
+        sha512 = "5deljj5HlqRXN+5oJTY7Zs37iH3z3b++KjiKtIsJy1NrjOOVSEaJHEetLBhyu0aQOSNNZ/0IuEAan9GzRuDXHg==";
+      };
+    };
+    "@babel/generator-7.11.4" = {
+      name = "_at_babel_slash_generator";
+      packageName = "@babel/generator";
+      version = "7.11.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.11.4.tgz";
+        sha512 = "Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g==";
+      };
+    };
+    "@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.10.4" = {
+      name = "_at_babel_slash_helper-compilation-targets";
+      packageName = "@babel/helper-compilation-targets";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz";
+        sha512 = "a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==";
+      };
+    };
+    "@babel/helper-create-class-features-plugin-7.10.5" = {
+      name = "_at_babel_slash_helper-create-class-features-plugin";
+      packageName = "@babel/helper-create-class-features-plugin";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz";
+        sha512 = "0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==";
+      };
+    };
+    "@babel/helper-create-regexp-features-plugin-7.10.4" = {
+      name = "_at_babel_slash_helper-create-regexp-features-plugin";
+      packageName = "@babel/helper-create-regexp-features-plugin";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz";
+        sha512 = "2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==";
+      };
+    };
+    "@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.11.4" = {
+      name = "_at_babel_slash_helper-explode-assignable-expression";
+      packageName = "@babel/helper-explode-assignable-expression";
+      version = "7.11.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz";
+        sha512 = "ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==";
+      };
+    };
+    "@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.11.0" = {
+      name = "_at_babel_slash_helper-member-expression-to-functions";
+      packageName = "@babel/helper-member-expression-to-functions";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz";
+        sha512 = "JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==";
+      };
+    };
+    "@babel/helper-module-imports-7.10.4" = {
+      name = "_at_babel_slash_helper-module-imports";
+      packageName = "@babel/helper-module-imports";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz";
+        sha512 = "nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==";
+      };
+    };
+    "@babel/helper-module-transforms-7.11.0" = {
+      name = "_at_babel_slash_helper-module-transforms";
+      packageName = "@babel/helper-module-transforms";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz";
+        sha512 = "02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==";
+      };
+    };
+    "@babel/helper-optimise-call-expression-7.10.4" = {
+      name = "_at_babel_slash_helper-optimise-call-expression";
+      packageName = "@babel/helper-optimise-call-expression";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz";
+        sha512 = "n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==";
+      };
+    };
+    "@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-regex-7.10.5" = {
+      name = "_at_babel_slash_helper-regex";
+      packageName = "@babel/helper-regex";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz";
+        sha512 = "68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==";
+      };
+    };
+    "@babel/helper-remap-async-to-generator-7.11.4" = {
+      name = "_at_babel_slash_helper-remap-async-to-generator";
+      packageName = "@babel/helper-remap-async-to-generator";
+      version = "7.11.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz";
+        sha512 = "tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==";
+      };
+    };
+    "@babel/helper-replace-supers-7.10.4" = {
+      name = "_at_babel_slash_helper-replace-supers";
+      packageName = "@babel/helper-replace-supers";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz";
+        sha512 = "sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==";
+      };
+    };
+    "@babel/helper-simple-access-7.10.4" = {
+      name = "_at_babel_slash_helper-simple-access";
+      packageName = "@babel/helper-simple-access";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz";
+        sha512 = "0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==";
+      };
+    };
+    "@babel/helper-skip-transparent-expression-wrappers-7.11.0" = {
+      name = "_at_babel_slash_helper-skip-transparent-expression-wrappers";
+      packageName = "@babel/helper-skip-transparent-expression-wrappers";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz";
+        sha512 = "0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==";
+      };
+    };
+    "@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-wrap-function-7.10.4" = {
+      name = "_at_babel_slash_helper-wrap-function";
+      packageName = "@babel/helper-wrap-function";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz";
+        sha512 = "6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==";
+      };
+    };
+    "@babel/helpers-7.10.4" = {
+      name = "_at_babel_slash_helpers";
+      packageName = "@babel/helpers";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz";
+        sha512 = "L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==";
+      };
+    };
+    "@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.11.4" = {
+      name = "_at_babel_slash_parser";
+      packageName = "@babel/parser";
+      version = "7.11.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.11.4.tgz";
+        sha512 = "MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA==";
+      };
+    };
+    "@babel/plugin-proposal-async-generator-functions-7.10.5" = {
+      name = "_at_babel_slash_plugin-proposal-async-generator-functions";
+      packageName = "@babel/plugin-proposal-async-generator-functions";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz";
+        sha512 = "cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==";
+      };
+    };
+    "@babel/plugin-proposal-class-properties-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-class-properties";
+      packageName = "@babel/plugin-proposal-class-properties";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz";
+        sha512 = "vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==";
+      };
+    };
+    "@babel/plugin-proposal-dynamic-import-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-dynamic-import";
+      packageName = "@babel/plugin-proposal-dynamic-import";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz";
+        sha512 = "up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==";
+      };
+    };
+    "@babel/plugin-proposal-export-namespace-from-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-export-namespace-from";
+      packageName = "@babel/plugin-proposal-export-namespace-from";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz";
+        sha512 = "aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==";
+      };
+    };
+    "@babel/plugin-proposal-json-strings-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-json-strings";
+      packageName = "@babel/plugin-proposal-json-strings";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz";
+        sha512 = "fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==";
+      };
+    };
+    "@babel/plugin-proposal-logical-assignment-operators-7.11.0" = {
+      name = "_at_babel_slash_plugin-proposal-logical-assignment-operators";
+      packageName = "@babel/plugin-proposal-logical-assignment-operators";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz";
+        sha512 = "/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==";
+      };
+    };
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
+      packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz";
+        sha512 = "wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==";
+      };
+    };
+    "@babel/plugin-proposal-numeric-separator-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-numeric-separator";
+      packageName = "@babel/plugin-proposal-numeric-separator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz";
+        sha512 = "73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==";
+      };
+    };
+    "@babel/plugin-proposal-object-rest-spread-7.11.0" = {
+      name = "_at_babel_slash_plugin-proposal-object-rest-spread";
+      packageName = "@babel/plugin-proposal-object-rest-spread";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz";
+        sha512 = "wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==";
+      };
+    };
+    "@babel/plugin-proposal-optional-catch-binding-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
+      packageName = "@babel/plugin-proposal-optional-catch-binding";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz";
+        sha512 = "LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==";
+      };
+    };
+    "@babel/plugin-proposal-optional-chaining-7.11.0" = {
+      name = "_at_babel_slash_plugin-proposal-optional-chaining";
+      packageName = "@babel/plugin-proposal-optional-chaining";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz";
+        sha512 = "v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==";
+      };
+    };
+    "@babel/plugin-proposal-private-methods-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-private-methods";
+      packageName = "@babel/plugin-proposal-private-methods";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz";
+        sha512 = "wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==";
+      };
+    };
+    "@babel/plugin-proposal-unicode-property-regex-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
+      packageName = "@babel/plugin-proposal-unicode-property-regex";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz";
+        sha512 = "H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==";
+      };
+    };
+    "@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-bigint-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-bigint";
+      packageName = "@babel/plugin-syntax-bigint";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz";
+        sha512 = "wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==";
+      };
+    };
+    "@babel/plugin-syntax-class-properties-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-class-properties";
+      packageName = "@babel/plugin-syntax-class-properties";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz";
+        sha512 = "GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==";
+      };
+    };
+    "@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-import-meta-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-import-meta";
+      packageName = "@babel/plugin-syntax-import-meta";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz";
+        sha512 = "Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==";
+      };
+    };
+    "@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.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-top-level-await";
+      packageName = "@babel/plugin-syntax-top-level-await";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz";
+        sha512 = "ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==";
+      };
+    };
+    "@babel/plugin-syntax-typescript-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-typescript";
+      packageName = "@babel/plugin-syntax-typescript";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz";
+        sha512 = "oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ==";
+      };
+    };
+    "@babel/plugin-transform-arrow-functions-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-arrow-functions";
+      packageName = "@babel/plugin-transform-arrow-functions";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz";
+        sha512 = "9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==";
+      };
+    };
+    "@babel/plugin-transform-async-to-generator-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-async-to-generator";
+      packageName = "@babel/plugin-transform-async-to-generator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz";
+        sha512 = "F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==";
+      };
+    };
+    "@babel/plugin-transform-block-scoped-functions-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-block-scoped-functions";
+      packageName = "@babel/plugin-transform-block-scoped-functions";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz";
+        sha512 = "WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==";
+      };
+    };
+    "@babel/plugin-transform-block-scoping-7.11.1" = {
+      name = "_at_babel_slash_plugin-transform-block-scoping";
+      packageName = "@babel/plugin-transform-block-scoping";
+      version = "7.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz";
+        sha512 = "00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==";
+      };
+    };
+    "@babel/plugin-transform-classes-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-classes";
+      packageName = "@babel/plugin-transform-classes";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz";
+        sha512 = "2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==";
+      };
+    };
+    "@babel/plugin-transform-computed-properties-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-computed-properties";
+      packageName = "@babel/plugin-transform-computed-properties";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz";
+        sha512 = "JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==";
+      };
+    };
+    "@babel/plugin-transform-destructuring-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-destructuring";
+      packageName = "@babel/plugin-transform-destructuring";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz";
+        sha512 = "+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==";
+      };
+    };
+    "@babel/plugin-transform-dotall-regex-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-dotall-regex";
+      packageName = "@babel/plugin-transform-dotall-regex";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz";
+        sha512 = "ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==";
+      };
+    };
+    "@babel/plugin-transform-duplicate-keys-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-duplicate-keys";
+      packageName = "@babel/plugin-transform-duplicate-keys";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz";
+        sha512 = "GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==";
+      };
+    };
+    "@babel/plugin-transform-exponentiation-operator-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-exponentiation-operator";
+      packageName = "@babel/plugin-transform-exponentiation-operator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz";
+        sha512 = "S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==";
+      };
+    };
+    "@babel/plugin-transform-for-of-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-for-of";
+      packageName = "@babel/plugin-transform-for-of";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz";
+        sha512 = "ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==";
+      };
+    };
+    "@babel/plugin-transform-function-name-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-function-name";
+      packageName = "@babel/plugin-transform-function-name";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz";
+        sha512 = "OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==";
+      };
+    };
+    "@babel/plugin-transform-literals-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-literals";
+      packageName = "@babel/plugin-transform-literals";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz";
+        sha512 = "Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==";
+      };
+    };
+    "@babel/plugin-transform-member-expression-literals-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-member-expression-literals";
+      packageName = "@babel/plugin-transform-member-expression-literals";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz";
+        sha512 = "0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==";
+      };
+    };
+    "@babel/plugin-transform-modules-amd-7.10.5" = {
+      name = "_at_babel_slash_plugin-transform-modules-amd";
+      packageName = "@babel/plugin-transform-modules-amd";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz";
+        sha512 = "elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==";
+      };
+    };
+    "@babel/plugin-transform-modules-commonjs-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-modules-commonjs";
+      packageName = "@babel/plugin-transform-modules-commonjs";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz";
+        sha512 = "Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==";
+      };
+    };
+    "@babel/plugin-transform-modules-systemjs-7.10.5" = {
+      name = "_at_babel_slash_plugin-transform-modules-systemjs";
+      packageName = "@babel/plugin-transform-modules-systemjs";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz";
+        sha512 = "f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==";
+      };
+    };
+    "@babel/plugin-transform-modules-umd-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-modules-umd";
+      packageName = "@babel/plugin-transform-modules-umd";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz";
+        sha512 = "mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==";
+      };
+    };
+    "@babel/plugin-transform-named-capturing-groups-regex-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
+      packageName = "@babel/plugin-transform-named-capturing-groups-regex";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz";
+        sha512 = "V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==";
+      };
+    };
+    "@babel/plugin-transform-new-target-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-new-target";
+      packageName = "@babel/plugin-transform-new-target";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz";
+        sha512 = "YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==";
+      };
+    };
+    "@babel/plugin-transform-object-super-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-object-super";
+      packageName = "@babel/plugin-transform-object-super";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz";
+        sha512 = "5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==";
+      };
+    };
+    "@babel/plugin-transform-parameters-7.10.5" = {
+      name = "_at_babel_slash_plugin-transform-parameters";
+      packageName = "@babel/plugin-transform-parameters";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz";
+        sha512 = "xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==";
+      };
+    };
+    "@babel/plugin-transform-property-literals-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-property-literals";
+      packageName = "@babel/plugin-transform-property-literals";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz";
+        sha512 = "ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==";
+      };
+    };
+    "@babel/plugin-transform-regenerator-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-regenerator";
+      packageName = "@babel/plugin-transform-regenerator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz";
+        sha512 = "3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==";
+      };
+    };
+    "@babel/plugin-transform-reserved-words-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-reserved-words";
+      packageName = "@babel/plugin-transform-reserved-words";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz";
+        sha512 = "hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==";
+      };
+    };
+    "@babel/plugin-transform-shorthand-properties-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-shorthand-properties";
+      packageName = "@babel/plugin-transform-shorthand-properties";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz";
+        sha512 = "AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==";
+      };
+    };
+    "@babel/plugin-transform-spread-7.11.0" = {
+      name = "_at_babel_slash_plugin-transform-spread";
+      packageName = "@babel/plugin-transform-spread";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz";
+        sha512 = "UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==";
+      };
+    };
+    "@babel/plugin-transform-sticky-regex-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-sticky-regex";
+      packageName = "@babel/plugin-transform-sticky-regex";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz";
+        sha512 = "Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==";
+      };
+    };
+    "@babel/plugin-transform-template-literals-7.10.5" = {
+      name = "_at_babel_slash_plugin-transform-template-literals";
+      packageName = "@babel/plugin-transform-template-literals";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz";
+        sha512 = "V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==";
+      };
+    };
+    "@babel/plugin-transform-typeof-symbol-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-typeof-symbol";
+      packageName = "@babel/plugin-transform-typeof-symbol";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz";
+        sha512 = "QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==";
+      };
+    };
+    "@babel/plugin-transform-typescript-7.11.0" = {
+      name = "_at_babel_slash_plugin-transform-typescript";
+      packageName = "@babel/plugin-transform-typescript";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz";
+        sha512 = "edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w==";
+      };
+    };
+    "@babel/plugin-transform-unicode-escapes-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-unicode-escapes";
+      packageName = "@babel/plugin-transform-unicode-escapes";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz";
+        sha512 = "y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==";
+      };
+    };
+    "@babel/plugin-transform-unicode-regex-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-unicode-regex";
+      packageName = "@babel/plugin-transform-unicode-regex";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz";
+        sha512 = "wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==";
+      };
+    };
+    "@babel/preset-env-7.11.0" = {
+      name = "_at_babel_slash_preset-env";
+      packageName = "@babel/preset-env";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz";
+        sha512 = "2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==";
+      };
+    };
+    "@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/preset-typescript-7.10.4" = {
+      name = "_at_babel_slash_preset-typescript";
+      packageName = "@babel/preset-typescript";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.10.4.tgz";
+        sha512 = "SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ==";
+      };
+    };
+    "@babel/runtime-7.11.2" = {
+      name = "_at_babel_slash_runtime";
+      packageName = "@babel/runtime";
+      version = "7.11.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz";
+        sha512 = "TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==";
+      };
+    };
+    "@babel/template-7.10.4" = {
+      name = "_at_babel_slash_template";
+      packageName = "@babel/template";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz";
+        sha512 = "ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==";
+      };
+    };
+    "@babel/traverse-7.11.0" = {
+      name = "_at_babel_slash_traverse";
+      packageName = "@babel/traverse";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz";
+        sha512 = "ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==";
+      };
+    };
+    "@babel/types-7.11.0" = {
+      name = "_at_babel_slash_types";
+      packageName = "@babel/types";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz";
+        sha512 = "O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==";
+      };
+    };
+    "@bcoe/v8-coverage-0.2.3" = {
+      name = "_at_bcoe_slash_v8-coverage";
+      packageName = "@bcoe/v8-coverage";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz";
+        sha512 = "0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==";
+      };
+    };
+    "@cnakazawa/watch-1.0.4" = {
+      name = "_at_cnakazawa_slash_watch";
+      packageName = "@cnakazawa/watch";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz";
+        sha512 = "v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==";
+      };
+    };
+    "@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==";
+      };
+    };
+    "@istanbuljs/load-nyc-config-1.1.0" = {
+      name = "_at_istanbuljs_slash_load-nyc-config";
+      packageName = "@istanbuljs/load-nyc-config";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz";
+        sha512 = "VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==";
+      };
+    };
+    "@istanbuljs/schema-0.1.2" = {
+      name = "_at_istanbuljs_slash_schema";
+      packageName = "@istanbuljs/schema";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz";
+        sha512 = "tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==";
+      };
+    };
+    "@jest/console-26.3.0" = {
+      name = "_at_jest_slash_console";
+      packageName = "@jest/console";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/console/-/console-26.3.0.tgz";
+        sha512 = "/5Pn6sJev0nPUcAdpJHMVIsA8sKizL2ZkcKPE5+dJrCccks7tcM7c9wbgHudBJbxXLoTbqsHkG1Dofoem4F09w==";
+      };
+    };
+    "@jest/core-26.4.2" = {
+      name = "_at_jest_slash_core";
+      packageName = "@jest/core";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/core/-/core-26.4.2.tgz";
+        sha512 = "sDva7YkeNprxJfepOctzS8cAk9TOekldh+5FhVuXS40+94SHbiicRO1VV2tSoRtgIo+POs/Cdyf8p76vPTd6dg==";
+      };
+    };
+    "@jest/environment-26.3.0" = {
+      name = "_at_jest_slash_environment";
+      packageName = "@jest/environment";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/environment/-/environment-26.3.0.tgz";
+        sha512 = "EW+MFEo0DGHahf83RAaiqQx688qpXgl99wdb8Fy67ybyzHwR1a58LHcO376xQJHfmoXTu89M09dH3J509cx2AA==";
+      };
+    };
+    "@jest/fake-timers-26.3.0" = {
+      name = "_at_jest_slash_fake-timers";
+      packageName = "@jest/fake-timers";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.3.0.tgz";
+        sha512 = "ZL9ytUiRwVP8ujfRepffokBvD2KbxbqMhrXSBhSdAhISCw3gOkuntisiSFv+A6HN0n0fF4cxzICEKZENLmW+1A==";
+      };
+    };
+    "@jest/globals-26.4.2" = {
+      name = "_at_jest_slash_globals";
+      packageName = "@jest/globals";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/globals/-/globals-26.4.2.tgz";
+        sha512 = "Ot5ouAlehhHLRhc+sDz2/9bmNv9p5ZWZ9LE1pXGGTCXBasmi5jnYjlgYcYt03FBwLmZXCZ7GrL29c33/XRQiow==";
+      };
+    };
+    "@jest/reporters-26.4.1" = {
+      name = "_at_jest_slash_reporters";
+      packageName = "@jest/reporters";
+      version = "26.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/reporters/-/reporters-26.4.1.tgz";
+        sha512 = "aROTkCLU8++yiRGVxLsuDmZsQEKO6LprlrxtAuzvtpbIFl3eIjgIf3EUxDKgomkS25R9ZzwGEdB5weCcBZlrpQ==";
+      };
+    };
+    "@jest/source-map-26.3.0" = {
+      name = "_at_jest_slash_source-map";
+      packageName = "@jest/source-map";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/source-map/-/source-map-26.3.0.tgz";
+        sha512 = "hWX5IHmMDWe1kyrKl7IhFwqOuAreIwHhbe44+XH2ZRHjrKIh0LO5eLQ/vxHFeAfRwJapmxuqlGAEYLadDq6ZGQ==";
+      };
+    };
+    "@jest/test-result-26.3.0" = {
+      name = "_at_jest_slash_test-result";
+      packageName = "@jest/test-result";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/test-result/-/test-result-26.3.0.tgz";
+        sha512 = "a8rbLqzW/q7HWheFVMtghXV79Xk+GWwOK1FrtimpI5n1la2SY0qHri3/b0/1F0Ve0/yJmV8pEhxDfVwiUBGtgg==";
+      };
+    };
+    "@jest/test-sequencer-26.4.2" = {
+      name = "_at_jest_slash_test-sequencer";
+      packageName = "@jest/test-sequencer";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.4.2.tgz";
+        sha512 = "83DRD8N3M0tOhz9h0bn6Kl6dSp+US6DazuVF8J9m21WAp5x7CqSMaNycMP0aemC/SH/pDQQddbsfHRTBXVUgog==";
+      };
+    };
+    "@jest/transform-26.3.0" = {
+      name = "_at_jest_slash_transform";
+      packageName = "@jest/transform";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/transform/-/transform-26.3.0.tgz";
+        sha512 = "Isj6NB68QorGoFWvcOjlUhpkT56PqNIsXKR7XfvoDlCANn/IANlh8DrKAA2l2JKC3yWSMH5wS0GwuQM20w3b2A==";
+      };
+    };
+    "@jest/types-25.5.0" = {
+      name = "_at_jest_slash_types";
+      packageName = "@jest/types";
+      version = "25.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz";
+        sha512 = "OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==";
+      };
+    };
+    "@jest/types-26.3.0" = {
+      name = "_at_jest_slash_types";
+      packageName = "@jest/types";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz";
+        sha512 = "BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==";
+      };
+    };
+    "@serialport/binding-abstract-9.0.1" = {
+      name = "_at_serialport_slash_binding-abstract";
+      packageName = "@serialport/binding-abstract";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/binding-abstract/-/binding-abstract-9.0.1.tgz";
+        sha512 = "ncUFSRyVdpyCRuah2dzrs99UfEWWMAhV31ae2FT6j4f8TypQ8OgAF8KkcHiD4M3wORDh3UKCCTS7n8aJWge1RA==";
+      };
+    };
+    "@serialport/binding-mock-9.0.1" = {
+      name = "_at_serialport_slash_binding-mock";
+      packageName = "@serialport/binding-mock";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-9.0.1.tgz";
+        sha512 = "C01T6iX+nNKB7S6BhQEy5nfk4lUk/CkdFEfen9DDPYhtFtIsm5GCGvRB3Fjnp+8oDrGWJOrZfxFf3kWOOx665A==";
+      };
+    };
+    "@serialport/bindings-9.0.1" = {
+      name = "_at_serialport_slash_bindings";
+      packageName = "@serialport/bindings";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/bindings/-/bindings-9.0.1.tgz";
+        sha512 = "O5QuwCdnHuZygBKw7tVq2wHysfOnCbOyKtR/k9T9zHqptd89Tzy6xJQNtnrcbV/2D22noKX6yWj+1wqvNe6NRA==";
+      };
+    };
+    "@serialport/parser-byte-length-9.0.1" = {
+      name = "_at_serialport_slash_parser-byte-length";
+      packageName = "@serialport/parser-byte-length";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-9.0.1.tgz";
+        sha512 = "1Ikv4lgCNw8OMf35yCpgzjHwkpgBEkhBuXFXIdWZk+ixaHFLlAtp03QxGPZBmzHMK58WDmEQoBHC1V5BkkAKSQ==";
+      };
+    };
+    "@serialport/parser-cctalk-9.0.1" = {
+      name = "_at_serialport_slash_parser-cctalk";
+      packageName = "@serialport/parser-cctalk";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-9.0.1.tgz";
+        sha512 = "GtMda2DeJ+23bNqOc79JYV06dax2n3FLLFM3zA7nfReCOi98QbuDj4TUbFESMOnp4DB0oMO0GYHCR9gHOedTkg==";
+      };
+    };
+    "@serialport/parser-delimiter-9.0.1" = {
+      name = "_at_serialport_slash_parser-delimiter";
+      packageName = "@serialport/parser-delimiter";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-9.0.1.tgz";
+        sha512 = "+oaSl5zEu47OlrRiF5p5tn2qgGqYuhVcE+NI+Pv4E1xsNB/A0fFxxMv/8XUw466CRLEJ5IESIB9qbFvKE6ltaQ==";
+      };
+    };
+    "@serialport/parser-readline-9.0.1" = {
+      name = "_at_serialport_slash_parser-readline";
+      packageName = "@serialport/parser-readline";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-9.0.1.tgz";
+        sha512 = "38058gxvyfgdeLpg3aUyD98NuWkVB9yyTLpcSdeQ3GYiupivwH6Tdy/SKPmxlHIw3Ml2qil5MR2mtW2fLPB5CQ==";
+      };
+    };
+    "@serialport/parser-ready-9.0.1" = {
+      name = "_at_serialport_slash_parser-ready";
+      packageName = "@serialport/parser-ready";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-9.0.1.tgz";
+        sha512 = "lgzGkVJaaV1rJVx26WwI2UKyPxc0vu1rsOeldzA3VVbF+ABrblUQA06+cRPpT6k96GY+X4+1fB1rWuPpt8HbgQ==";
+      };
+    };
+    "@serialport/parser-regex-9.0.1" = {
+      name = "_at_serialport_slash_parser-regex";
+      packageName = "@serialport/parser-regex";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-9.0.1.tgz";
+        sha512 = "BHTV+Lkl+J8hSecFtDRENaR4fgA6tw44J+dmA1vEKEyum0iDN4bihbu8yvztYyo4PhBGUKDfm/PnD5EkJm0dPA==";
+      };
+    };
+    "@serialport/stream-9.0.1" = {
+      name = "_at_serialport_slash_stream";
+      packageName = "@serialport/stream";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/stream/-/stream-9.0.1.tgz";
+        sha512 = "S1xaf99vygbrMDNS/9GHYZYskWJHXJy6dCksW+ME2dzNXEXpz64vF0iug1tC1EIAhME9oD/s3ky2C9CUAd/GUg==";
+      };
+    };
+    "@sinonjs/commons-1.8.1" = {
+      name = "_at_sinonjs_slash_commons";
+      packageName = "@sinonjs/commons";
+      version = "1.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz";
+        sha512 = "892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==";
+      };
+    };
+    "@sinonjs/fake-timers-6.0.1" = {
+      name = "_at_sinonjs_slash_fake-timers";
+      packageName = "@sinonjs/fake-timers";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz";
+        sha512 = "MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==";
+      };
+    };
+    "@types/babel__core-7.1.9" = {
+      name = "_at_types_slash_babel__core";
+      packageName = "@types/babel__core";
+      version = "7.1.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz";
+        sha512 = "sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw==";
+      };
+    };
+    "@types/babel__generator-7.6.1" = {
+      name = "_at_types_slash_babel__generator";
+      packageName = "@types/babel__generator";
+      version = "7.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz";
+        sha512 = "bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==";
+      };
+    };
+    "@types/babel__template-7.0.2" = {
+      name = "_at_types_slash_babel__template";
+      packageName = "@types/babel__template";
+      version = "7.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz";
+        sha512 = "/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==";
+      };
+    };
+    "@types/babel__traverse-7.0.13" = {
+      name = "_at_types_slash_babel__traverse";
+      packageName = "@types/babel__traverse";
+      version = "7.0.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.13.tgz";
+        sha512 = "i+zS7t6/s9cdQvbqKDARrcbrPvtJGlbYsMkazo03nTAK3RX9FNrLllXys22uiTGJapPOTZTQ35nHh4ISph4SLQ==";
+      };
+    };
+    "@types/color-name-1.1.1" = {
+      name = "_at_types_slash_color-name";
+      packageName = "@types/color-name";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz";
+        sha512 = "rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==";
+      };
+    };
+    "@types/debug-4.1.5" = {
+      name = "_at_types_slash_debug";
+      packageName = "@types/debug";
+      version = "4.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz";
+        sha512 = "Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==";
+      };
+    };
+    "@types/eslint-visitor-keys-1.0.0" = {
+      name = "_at_types_slash_eslint-visitor-keys";
+      packageName = "@types/eslint-visitor-keys";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz";
+        sha512 = "OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==";
+      };
+    };
+    "@types/graceful-fs-4.1.3" = {
+      name = "_at_types_slash_graceful-fs";
+      packageName = "@types/graceful-fs";
+      version = "4.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz";
+        sha512 = "AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==";
+      };
+    };
+    "@types/istanbul-lib-coverage-2.0.3" = {
+      name = "_at_types_slash_istanbul-lib-coverage";
+      packageName = "@types/istanbul-lib-coverage";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz";
+        sha512 = "sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==";
+      };
+    };
+    "@types/istanbul-lib-report-3.0.0" = {
+      name = "_at_types_slash_istanbul-lib-report";
+      packageName = "@types/istanbul-lib-report";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz";
+        sha512 = "plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==";
+      };
+    };
+    "@types/istanbul-reports-1.1.2" = {
+      name = "_at_types_slash_istanbul-reports";
+      packageName = "@types/istanbul-reports";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz";
+        sha512 = "P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==";
+      };
+    };
+    "@types/istanbul-reports-3.0.0" = {
+      name = "_at_types_slash_istanbul-reports";
+      packageName = "@types/istanbul-reports";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz";
+        sha512 = "nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==";
+      };
+    };
+    "@types/jest-26.0.10" = {
+      name = "_at_types_slash_jest";
+      packageName = "@types/jest";
+      version = "26.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/jest/-/jest-26.0.10.tgz";
+        sha512 = "i2m0oyh8w/Lum7wWK/YOZJakYF8Mx08UaKA1CtbmFeDquVhAEdA7znacsVSf2hJ1OQ/OfVMGN90pw/AtzF8s/Q==";
+      };
+    };
+    "@types/json-schema-7.0.5" = {
+      name = "_at_types_slash_json-schema";
+      packageName = "@types/json-schema";
+      version = "7.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz";
+        sha512 = "7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==";
+      };
+    };
+    "@types/nedb-1.8.10" = {
+      name = "_at_types_slash_nedb";
+      packageName = "@types/nedb";
+      version = "1.8.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/nedb/-/nedb-1.8.10.tgz";
+        sha512 = "M0ISm1qsNvkdXNZml1r/1bEVqt5SJHF/LFcCtH5dHfsSIG0LEj5FhwK0f4fZy9WPCsXjmrKfpzgEW/bdQuKqmQ==";
+      };
+    };
+    "@types/node-14.6.2" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "14.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-14.6.2.tgz";
+        sha512 = "onlIwbaeqvZyniGPfdw/TEhKIh79pz66L1q06WUQqJLnAb6wbjvOtepLYTGHTqzdXgBYIE3ZdmqHDGsRsbBz7A==";
+      };
+    };
+    "@types/normalize-package-data-2.4.0" = {
+      name = "_at_types_slash_normalize-package-data";
+      packageName = "@types/normalize-package-data";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
+        sha512 = "f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==";
+      };
+    };
+    "@types/prettier-2.1.0" = {
+      name = "_at_types_slash_prettier";
+      packageName = "@types/prettier";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.0.tgz";
+        sha512 = "hiYA88aHiEIgDmeKlsyVsuQdcFn3Z2VuFd/Xm/HCnGnPD8UFU5BM128uzzRVVGEzKDKYUrRsRH9S2o+NUy/3IA==";
+      };
+    };
+    "@types/serialport-8.0.1" = {
+      name = "_at_types_slash_serialport";
+      packageName = "@types/serialport";
+      version = "8.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/serialport/-/serialport-8.0.1.tgz";
+        sha512 = "IcKHq6b/ynKSF/x4al/Ce8+a0hpbYIEaIcK9Z3l4koLvQqAPSODZ37/hgemQx8dTu7fPZDMHN4bKmu89B3UaGA==";
+      };
+    };
+    "@types/stack-utils-1.0.1" = {
+      name = "_at_types_slash_stack-utils";
+      packageName = "@types/stack-utils";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz";
+        sha512 = "l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==";
+      };
+    };
+    "@types/yargs-15.0.5" = {
+      name = "_at_types_slash_yargs";
+      packageName = "@types/yargs";
+      version = "15.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz";
+        sha512 = "Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==";
+      };
+    };
+    "@types/yargs-parser-15.0.0" = {
+      name = "_at_types_slash_yargs-parser";
+      packageName = "@types/yargs-parser";
+      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-3.10.1" = {
+      name = "_at_typescript-eslint_slash_eslint-plugin";
+      packageName = "@typescript-eslint/eslint-plugin";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.10.1.tgz";
+        sha512 = "PQg0emRtzZFWq6PxBcdxRH3QIQiyFO3WCVpRL3fgj5oQS3CDs3AeAKfv4DxNhzn8ITdNJGJ4D3Qw8eAJf3lXeQ==";
+      };
+    };
+    "@typescript-eslint/experimental-utils-2.34.0" = {
+      name = "_at_typescript-eslint_slash_experimental-utils";
+      packageName = "@typescript-eslint/experimental-utils";
+      version = "2.34.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz";
+        sha512 = "eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==";
+      };
+    };
+    "@typescript-eslint/experimental-utils-3.10.1" = {
+      name = "_at_typescript-eslint_slash_experimental-utils";
+      packageName = "@typescript-eslint/experimental-utils";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz";
+        sha512 = "DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==";
+      };
+    };
+    "@typescript-eslint/parser-3.10.1" = {
+      name = "_at_typescript-eslint_slash_parser";
+      packageName = "@typescript-eslint/parser";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.10.1.tgz";
+        sha512 = "Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw==";
+      };
+    };
+    "@typescript-eslint/types-3.10.1" = {
+      name = "_at_typescript-eslint_slash_types";
+      packageName = "@typescript-eslint/types";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz";
+        sha512 = "+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==";
+      };
+    };
+    "@typescript-eslint/typescript-estree-2.34.0" = {
+      name = "_at_typescript-eslint_slash_typescript-estree";
+      packageName = "@typescript-eslint/typescript-estree";
+      version = "2.34.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz";
+        sha512 = "OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==";
+      };
+    };
+    "@typescript-eslint/typescript-estree-3.10.1" = {
+      name = "_at_typescript-eslint_slash_typescript-estree";
+      packageName = "@typescript-eslint/typescript-estree";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz";
+        sha512 = "QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==";
+      };
+    };
+    "@typescript-eslint/visitor-keys-3.10.1" = {
+      name = "_at_typescript-eslint_slash_visitor-keys";
+      packageName = "@typescript-eslint/visitor-keys";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz";
+        sha512 = "9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==";
+      };
+    };
+    "abab-2.0.4" = {
+      name = "abab";
+      packageName = "abab";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz";
+        sha512 = "Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==";
+      };
+    };
+    "acorn-7.4.0" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "7.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz";
+        sha512 = "+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==";
+      };
+    };
+    "acorn-globals-6.0.0" = {
+      name = "acorn-globals";
+      packageName = "acorn-globals";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz";
+        sha512 = "ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==";
+      };
+    };
+    "acorn-jsx-5.2.0" = {
+      name = "acorn-jsx";
+      packageName = "acorn-jsx";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz";
+        sha512 = "HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==";
+      };
+    };
+    "acorn-walk-7.2.0" = {
+      name = "acorn-walk";
+      packageName = "acorn-walk";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz";
+        sha512 = "OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==";
+      };
+    };
+    "agent-base-6.0.1" = {
+      name = "agent-base";
+      packageName = "agent-base";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz";
+        sha512 = "01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==";
+      };
+    };
+    "ajv-6.12.4" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "6.12.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz";
+        sha512 = "eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==";
+      };
+    };
+    "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-escapes-4.3.1" = {
+      name = "ansi-escapes";
+      packageName = "ansi-escapes";
+      version = "4.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz";
+        sha512 = "JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==";
+      };
+    };
+    "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.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz";
+        sha512 = "9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==";
+      };
+    };
+    "anymatch-2.0.0" = {
+      name = "anymatch";
+      packageName = "anymatch";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz";
+        sha512 = "5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "aproba-1.2.0" = {
+      name = "aproba";
+      packageName = "aproba";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
+        sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==";
+      };
+    };
+    "are-we-there-yet-1.1.5" = {
+      name = "are-we-there-yet";
+      packageName = "are-we-there-yet";
+      version = "1.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
+        sha512 = "5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==";
+      };
+    };
+    "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==";
+      };
+    };
+    "arr-diff-4.0.0" = {
+      name = "arr-diff";
+      packageName = "arr-diff";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz";
+        sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+      };
+    };
+    "arr-flatten-1.1.0" = {
+      name = "arr-flatten";
+      packageName = "arr-flatten";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz";
+        sha512 = "L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==";
+      };
+    };
+    "arr-union-3.1.0" = {
+      name = "arr-union";
+      packageName = "arr-union";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz";
+        sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+      };
+    };
+    "array-unique-0.3.2" = {
+      name = "array-unique";
+      packageName = "array-unique";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz";
+        sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+      };
+    };
+    "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";
+      };
+    };
+    "assign-symbols-1.0.0" = {
+      name = "assign-symbols";
+      packageName = "assign-symbols";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz";
+        sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "async-each-1.0.3" = {
+      name = "async-each";
+      packageName = "async-each";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz";
+        sha512 = "z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==";
+      };
+    };
+    "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";
+      };
+    };
+    "at-least-node-1.0.0" = {
+      name = "at-least-node";
+      packageName = "at-least-node";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz";
+        sha512 = "+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==";
+      };
+    };
+    "atob-2.1.2" = {
+      name = "atob";
+      packageName = "atob";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz";
+        sha512 = "Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==";
+      };
+    };
+    "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.10.1" = {
+      name = "aws4";
+      packageName = "aws4";
+      version = "1.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz";
+        sha512 = "zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==";
+      };
+    };
+    "axios-0.20.0" = {
+      name = "axios";
+      packageName = "axios";
+      version = "0.20.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/axios/-/axios-0.20.0.tgz";
+        sha512 = "ANA4rr2BDcmmAQLOKft2fufrtuvlqR+cXNNinUmvfeSNCOF98PZL+7M/v1zIdGo7OLjEA9J2gXJL+j4zGsl0bA==";
+      };
+    };
+    "babel-jest-26.3.0" = {
+      name = "babel-jest";
+      packageName = "babel-jest";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-jest/-/babel-jest-26.3.0.tgz";
+        sha512 = "sxPnQGEyHAOPF8NcUsD0g7hDCnvLL2XyblRBcgrzTWBB/mAIpWow3n1bEL+VghnnZfreLhFSBsFluRoK2tRK4g==";
+      };
+    };
+    "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==";
+      };
+    };
+    "babel-plugin-istanbul-6.0.0" = {
+      name = "babel-plugin-istanbul";
+      packageName = "babel-plugin-istanbul";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz";
+        sha512 = "AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==";
+      };
+    };
+    "babel-plugin-jest-hoist-26.2.0" = {
+      name = "babel-plugin-jest-hoist";
+      packageName = "babel-plugin-jest-hoist";
+      version = "26.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.2.0.tgz";
+        sha512 = "B/hVMRv8Nh1sQ1a3EY8I0n4Y1Wty3NrR5ebOyVT302op+DOAau+xNEImGMsUWOC3++ZlMooCytKz+NgN8aKGbA==";
+      };
+    };
+    "babel-preset-current-node-syntax-0.1.3" = {
+      name = "babel-preset-current-node-syntax";
+      packageName = "babel-preset-current-node-syntax";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz";
+        sha512 = "uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ==";
+      };
+    };
+    "babel-preset-jest-26.3.0" = {
+      name = "babel-preset-jest";
+      packageName = "babel-preset-jest";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.3.0.tgz";
+        sha512 = "5WPdf7nyYi2/eRxCbVrE1kKCWxgWY4RsPEbdJWFm7QsesFGqjdkyLeu1zRkwM1cxK6EPIlNd6d2AxLk7J+t4pw==";
+      };
+    };
+    "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-0.11.2" = {
+      name = "base";
+      packageName = "base";
+      version = "0.11.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base/-/base-0.11.2.tgz";
+        sha512 = "5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==";
+      };
+    };
+    "base64-js-1.3.1" = {
+      name = "base64-js";
+      packageName = "base64-js";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz";
+        sha512 = "mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==";
+      };
+    };
+    "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-extensions-1.13.1" = {
+      name = "binary-extensions";
+      packageName = "binary-extensions";
+      version = "1.13.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz";
+        sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==";
+      };
+    };
+    "bindings-1.5.0" = {
+      name = "bindings";
+      packageName = "bindings";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz";
+        sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==";
+      };
+    };
+    "bl-4.0.3" = {
+      name = "bl";
+      packageName = "bl";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz";
+        sha512 = "fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==";
+      };
+    };
+    "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-2.3.2" = {
+      name = "braces";
+      packageName = "braces";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz";
+        sha512 = "aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==";
+      };
+    };
+    "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-process-hrtime-1.0.0" = {
+      name = "browser-process-hrtime";
+      packageName = "browser-process-hrtime";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz";
+        sha512 = "9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==";
+      };
+    };
+    "browserslist-4.14.0" = {
+      name = "browserslist";
+      packageName = "browserslist";
+      version = "4.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.14.0.tgz";
+        sha512 = "pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ==";
+      };
+    };
+    "bser-2.1.1" = {
+      name = "bser";
+      packageName = "bser";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz";
+        sha512 = "gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==";
+      };
+    };
+    "buffer-5.6.0" = {
+      name = "buffer";
+      packageName = "buffer";
+      version = "5.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz";
+        sha512 = "/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "cache-base-1.0.1" = {
+      name = "cache-base";
+      packageName = "cache-base";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz";
+        sha512 = "AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==";
+      };
+    };
+    "callback-stream-1.1.0" = {
+      name = "callback-stream";
+      packageName = "callback-stream";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/callback-stream/-/callback-stream-1.1.0.tgz";
+        sha1 = "4701a51266f06e06eaa71fc17233822d875f4908";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "caniuse-lite-1.0.30001119" = {
+      name = "caniuse-lite";
+      packageName = "caniuse-lite";
+      version = "1.0.30001119";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001119.tgz";
+        sha512 = "Hpwa4obv7EGP+TjkCh/wVvbtNJewxmtg4yVJBLFnxo35vbPapBr138bUWENkb5j5L9JZJ9RXLn4OrXRG/cecPQ==";
+      };
+    };
+    "capture-exit-2.0.0" = {
+      name = "capture-exit";
+      packageName = "capture-exit";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz";
+        sha512 = "PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==";
+      };
+    };
+    "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==";
+      };
+    };
+    "char-regex-1.0.2" = {
+      name = "char-regex";
+      packageName = "char-regex";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz";
+        sha512 = "kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==";
+      };
+    };
+    "chokidar-2.1.8" = {
+      name = "chokidar";
+      packageName = "chokidar";
+      version = "2.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz";
+        sha512 = "ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==";
+      };
+    };
+    "chownr-1.1.4" = {
+      name = "chownr";
+      packageName = "chownr";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz";
+        sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==";
+      };
+    };
+    "ci-info-2.0.0" = {
+      name = "ci-info";
+      packageName = "ci-info";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz";
+        sha512 = "5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==";
+      };
+    };
+    "class-utils-0.3.6" = {
+      name = "class-utils";
+      packageName = "class-utils";
+      version = "0.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz";
+        sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==";
+      };
+    };
+    "cliui-6.0.0" = {
+      name = "cliui";
+      packageName = "cliui";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz";
+        sha512 = "t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==";
+      };
+    };
+    "co-4.6.0" = {
+      name = "co";
+      packageName = "co";
+      version = "4.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/co/-/co-4.6.0.tgz";
+        sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
+      };
+    };
+    "code-point-at-1.1.0" = {
+      name = "code-point-at";
+      packageName = "code-point-at";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz";
+        sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+      };
+    };
+    "collect-v8-coverage-1.0.1" = {
+      name = "collect-v8-coverage";
+      packageName = "collect-v8-coverage";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz";
+        sha512 = "iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==";
+      };
+    };
+    "collection-visit-1.0.0" = {
+      name = "collection-visit";
+      packageName = "collection-visit";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz";
+        sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+      };
+    };
+    "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.3" = {
+      name = "color-string";
+      packageName = "color-string";
+      version = "1.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz";
+        sha512 = "dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "commist-1.1.0" = {
+      name = "commist";
+      packageName = "commist";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz";
+        sha512 = "rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==";
+      };
+    };
+    "component-emitter-1.3.0" = {
+      name = "component-emitter";
+      packageName = "component-emitter";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz";
+        sha512 = "Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==";
+      };
+    };
+    "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";
+      };
+    };
+    "concat-stream-1.6.2" = {
+      name = "concat-stream";
+      packageName = "concat-stream";
+      version = "1.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz";
+        sha512 = "27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==";
+      };
+    };
+    "console-control-strings-1.1.0" = {
+      name = "console-control-strings";
+      packageName = "console-control-strings";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz";
+        sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+      };
+    };
+    "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==";
+      };
+    };
+    "copy-descriptor-0.1.1" = {
+      name = "copy-descriptor";
+      packageName = "copy-descriptor";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
+        sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+      };
+    };
+    "core-js-compat-3.6.5" = {
+      name = "core-js-compat";
+      packageName = "core-js-compat";
+      version = "3.6.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz";
+        sha512 = "7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==";
+      };
+    };
+    "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";
+      };
+    };
+    "cross-spawn-6.0.5" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "6.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz";
+        sha512 = "eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "cssom-0.3.8" = {
+      name = "cssom";
+      packageName = "cssom";
+      version = "0.3.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz";
+        sha512 = "b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==";
+      };
+    };
+    "cssom-0.4.4" = {
+      name = "cssom";
+      packageName = "cssom";
+      version = "0.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz";
+        sha512 = "p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==";
+      };
+    };
+    "cssstyle-2.3.0" = {
+      name = "cssstyle";
+      packageName = "cssstyle";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz";
+        sha512 = "AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==";
+      };
+    };
+    "d-1.0.1" = {
+      name = "d";
+      packageName = "d";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d/-/d-1.0.1.tgz";
+        sha512 = "m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==";
+      };
+    };
+    "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";
+      };
+    };
+    "data-urls-2.0.0" = {
+      name = "data-urls";
+      packageName = "data-urls";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz";
+        sha512 = "X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==";
+      };
+    };
+    "debounce-1.2.0" = {
+      name = "debounce";
+      packageName = "debounce";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz";
+        sha512 = "mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==";
+      };
+    };
+    "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.1.1" = {
+      name = "debug";
+      packageName = "debug";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz";
+        sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==";
+      };
+    };
+    "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";
+      };
+    };
+    "decimal.js-10.2.0" = {
+      name = "decimal.js";
+      packageName = "decimal.js";
+      version = "10.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz";
+        sha512 = "vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==";
+      };
+    };
+    "decode-uri-component-0.2.0" = {
+      name = "decode-uri-component";
+      packageName = "decode-uri-component";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+        sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+      };
+    };
+    "decompress-response-4.2.1" = {
+      name = "decompress-response";
+      packageName = "decompress-response";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz";
+        sha512 = "jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==";
+      };
+    };
+    "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";
+      };
+    };
+    "deepmerge-4.2.2" = {
+      name = "deepmerge";
+      packageName = "deepmerge";
+      version = "4.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz";
+        sha512 = "FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "define-property-0.2.5" = {
+      name = "define-property";
+      packageName = "define-property";
+      version = "0.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz";
+        sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+      };
+    };
+    "define-property-1.0.0" = {
+      name = "define-property";
+      packageName = "define-property";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz";
+        sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+      };
+    };
+    "define-property-2.0.2" = {
+      name = "define-property";
+      packageName = "define-property";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz";
+        sha512 = "jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==";
+      };
+    };
+    "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";
+      };
+    };
+    "delegates-1.0.0" = {
+      name = "delegates";
+      packageName = "delegates";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz";
+        sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+      };
+    };
+    "detect-libc-1.0.3" = {
+      name = "detect-libc";
+      packageName = "detect-libc";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz";
+        sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+      };
+    };
+    "detect-newline-3.1.0" = {
+      name = "detect-newline";
+      packageName = "detect-newline";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz";
+        sha512 = "TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "diff-sequences-26.3.0" = {
+      name = "diff-sequences";
+      packageName = "diff-sequences";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.3.0.tgz";
+        sha512 = "5j5vdRcw3CNctePNYN0Wy2e/JbWT6cAYnXv5OuqPhDpyCGc0uLu2TK0zOCJWNB9kOIfYMSpIulRaDgIi4HJ6Ig==";
+      };
+    };
+    "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==";
+      };
+    };
+    "domexception-2.0.1" = {
+      name = "domexception";
+      packageName = "domexception";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz";
+        sha512 = "yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==";
+      };
+    };
+    "duplexify-3.7.1" = {
+      name = "duplexify";
+      packageName = "duplexify";
+      version = "3.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz";
+        sha512 = "07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==";
+      };
+    };
+    "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";
+      };
+    };
+    "electron-to-chromium-1.3.555" = {
+      name = "electron-to-chromium";
+      packageName = "electron-to-chromium";
+      version = "1.3.555";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.555.tgz";
+        sha512 = "/55x3nF2feXFZ5tdGUOr00TxnUjUgdxhrn+eCJ1FAcoAt+cKQTjQkUC5XF4frMWE1R5sjHk+JueuBalimfe5Pg==";
+      };
+    };
+    "emittery-0.7.1" = {
+      name = "emittery";
+      packageName = "emittery";
+      version = "0.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emittery/-/emittery-0.7.1.tgz";
+        sha512 = "d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "es5-ext-0.10.53" = {
+      name = "es5-ext";
+      packageName = "es5-ext";
+      version = "0.10.53";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz";
+        sha512 = "Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==";
+      };
+    };
+    "es6-iterator-2.0.3" = {
+      name = "es6-iterator";
+      packageName = "es6-iterator";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz";
+        sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7";
+      };
+    };
+    "es6-map-0.1.5" = {
+      name = "es6-map";
+      packageName = "es6-map";
+      version = "0.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz";
+        sha1 = "9136e0503dcc06a301690f0bb14ff4e364e949f0";
+      };
+    };
+    "es6-set-0.1.5" = {
+      name = "es6-set";
+      packageName = "es6-set";
+      version = "0.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz";
+        sha1 = "d2b3ec5d4d800ced818db538d28974db0a73ccb1";
+      };
+    };
+    "es6-symbol-3.1.1" = {
+      name = "es6-symbol";
+      packageName = "es6-symbol";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz";
+        sha1 = "bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77";
+      };
+    };
+    "es6-symbol-3.1.3" = {
+      name = "es6-symbol";
+      packageName = "es6-symbol";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz";
+        sha512 = "NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==";
+      };
+    };
+    "escalade-3.0.2" = {
+      name = "escalade";
+      packageName = "escalade";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz";
+        sha512 = "gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "escodegen-1.14.3" = {
+      name = "escodegen";
+      packageName = "escodegen";
+      version = "1.14.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz";
+        sha512 = "qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==";
+      };
+    };
+    "eslint-7.7.0" = {
+      name = "eslint";
+      packageName = "eslint";
+      version = "7.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.7.0.tgz";
+        sha512 = "1KUxLzos0ZVsyL81PnRN335nDtQ8/vZUD6uMtWbF+5zDtjKcsklIi78XoE0MVL93QvWTu+E5y44VyyCsOMBrIg==";
+      };
+    };
+    "eslint-config-google-0.14.0" = {
+      name = "eslint-config-google";
+      packageName = "eslint-config-google";
+      version = "0.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz";
+        sha512 = "WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==";
+      };
+    };
+    "eslint-plugin-jest-23.20.0" = {
+      name = "eslint-plugin-jest";
+      packageName = "eslint-plugin-jest";
+      version = "23.20.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.20.0.tgz";
+        sha512 = "+6BGQt85OREevBDWCvhqj1yYA4+BFK4XnRZSGJionuEYmcglMZYLNNBBemwzbqUAckURaHdJSBcjHPyrtypZOw==";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "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.2.1" = {
+      name = "esrecurse";
+      packageName = "esrecurse";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz";
+        sha512 = "64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "event-emitter-0.3.5" = {
+      name = "event-emitter";
+      packageName = "event-emitter";
+      version = "0.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz";
+        sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39";
+      };
+    };
+    "exec-sh-0.3.4" = {
+      name = "exec-sh";
+      packageName = "exec-sh";
+      version = "0.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz";
+        sha512 = "sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==";
+      };
+    };
+    "execa-1.0.0" = {
+      name = "execa";
+      packageName = "execa";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz";
+        sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==";
+      };
+    };
+    "execa-4.0.3" = {
+      name = "execa";
+      packageName = "execa";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz";
+        sha512 = "WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==";
+      };
+    };
+    "exit-0.1.2" = {
+      name = "exit";
+      packageName = "exit";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz";
+        sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c";
+      };
+    };
+    "expand-brackets-2.1.4" = {
+      name = "expand-brackets";
+      packageName = "expand-brackets";
+      version = "2.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz";
+        sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+      };
+    };
+    "expand-template-2.0.3" = {
+      name = "expand-template";
+      packageName = "expand-template";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz";
+        sha512 = "XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==";
+      };
+    };
+    "expect-26.4.2" = {
+      name = "expect";
+      packageName = "expect";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expect/-/expect-26.4.2.tgz";
+        sha512 = "IlJ3X52Z0lDHm7gjEp+m76uX46ldH5VpqmU0006vqDju/285twh7zaWMRhs67VpQhBwjjMchk+p5aA0VkERCAA==";
+      };
+    };
+    "ext-1.4.0" = {
+      name = "ext";
+      packageName = "ext";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz";
+        sha512 = "Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==";
+      };
+    };
+    "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==";
+      };
+    };
+    "extend-shallow-2.0.1" = {
+      name = "extend-shallow";
+      packageName = "extend-shallow";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz";
+        sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+      };
+    };
+    "extend-shallow-3.0.2" = {
+      name = "extend-shallow";
+      packageName = "extend-shallow";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz";
+        sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+      };
+    };
+    "extglob-2.0.4" = {
+      name = "extglob";
+      packageName = "extglob";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz";
+        sha512 = "Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "fb-watchman-2.0.1" = {
+      name = "fb-watchman";
+      packageName = "fb-watchman";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz";
+        sha512 = "DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "file-uri-to-path-1.0.0" = {
+      name = "file-uri-to-path";
+      packageName = "file-uri-to-path";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
+        sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==";
+      };
+    };
+    "fill-range-4.0.0" = {
+      name = "fill-range";
+      packageName = "fill-range";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz";
+        sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "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.0" = {
+      name = "follow-redirects";
+      packageName = "follow-redirects";
+      version = "1.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz";
+        sha512 = "aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==";
+      };
+    };
+    "for-in-1.0.2" = {
+      name = "for-in";
+      packageName = "for-in";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz";
+        sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+      };
+    };
+    "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==";
+      };
+    };
+    "fragment-cache-0.2.1" = {
+      name = "fragment-cache";
+      packageName = "fragment-cache";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz";
+        sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+      };
+    };
+    "fs-constants-1.0.0" = {
+      name = "fs-constants";
+      packageName = "fs-constants";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz";
+        sha512 = "y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==";
+      };
+    };
+    "fs-extra-9.0.1" = {
+      name = "fs-extra";
+      packageName = "fs-extra";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz";
+        sha512 = "h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==";
+      };
+    };
+    "fs-readdir-recursive-1.1.0" = {
+      name = "fs-readdir-recursive";
+      packageName = "fs-readdir-recursive";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz";
+        sha512 = "GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==";
+      };
+    };
+    "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-1.2.13" = {
+      name = "fsevents";
+      packageName = "fsevents";
+      version = "1.2.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz";
+        sha512 = "oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==";
+      };
+    };
+    "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";
+      };
+    };
+    "gauge-2.7.4" = {
+      name = "gauge";
+      packageName = "gauge";
+      version = "2.7.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz";
+        sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+      };
+    };
+    "gensync-1.0.0-beta.1" = {
+      name = "gensync";
+      packageName = "gensync";
+      version = "1.0.0-beta.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz";
+        sha512 = "r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "get-package-type-0.1.0" = {
+      name = "get-package-type";
+      packageName = "get-package-type";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz";
+        sha512 = "pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "get-value-2.0.6" = {
+      name = "get-value";
+      packageName = "get-value";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz";
+        sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+      };
+    };
+    "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";
+      };
+    };
+    "git-last-commit-1.0.0" = {
+      name = "git-last-commit";
+      packageName = "git-last-commit";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/git-last-commit/-/git-last-commit-1.0.0.tgz";
+        sha512 = "wpnmsd2dW1MnoencljcWO/06VUealfMaY40ZjK5t3v9ljL+bKCMbNaTn/YzwIh4pDo2hk5QcN+pLzUJ8aWB17A==";
+      };
+    };
+    "github-from-package-0.0.0" = {
+      name = "github-from-package";
+      packageName = "github-from-package";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz";
+        sha1 = "97fb5d96bfde8973313f20e8288ef9a167fa64ce";
+      };
+    };
+    "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-3.1.0" = {
+      name = "glob-parent";
+      packageName = "glob-parent";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz";
+        sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+      };
+    };
+    "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-stream-6.1.0" = {
+      name = "glob-stream";
+      packageName = "glob-stream";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz";
+        sha1 = "7045c99413b3eb94888d83ab46d0b404cc7bdde4";
+      };
+    };
+    "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==";
+      };
+    };
+    "glossy-0.1.7" = {
+      name = "glossy";
+      packageName = "glossy";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glossy/-/glossy-0.1.7.tgz";
+        sha1 = "769b5984a96f6066ab9ea758224825ee6c210f0b";
+      };
+    };
+    "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==";
+      };
+    };
+    "growly-1.3.0" = {
+      name = "growly";
+      packageName = "growly";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz";
+        sha1 = "f10748cbe76af964b7c96c93c6bcc28af120c081";
+      };
+    };
+    "handlebars-4.7.6" = {
+      name = "handlebars";
+      packageName = "handlebars";
+      version = "4.7.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz";
+        sha512 = "1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "has-unicode-2.0.1" = {
+      name = "has-unicode";
+      packageName = "has-unicode";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz";
+        sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+      };
+    };
+    "has-value-0.3.1" = {
+      name = "has-value";
+      packageName = "has-value";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz";
+        sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+      };
+    };
+    "has-value-1.0.0" = {
+      name = "has-value";
+      packageName = "has-value";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz";
+        sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+      };
+    };
+    "has-values-0.1.4" = {
+      name = "has-values";
+      packageName = "has-values";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz";
+        sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+      };
+    };
+    "has-values-1.0.0" = {
+      name = "has-values";
+      packageName = "has-values";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz";
+        sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
+      };
+    };
+    "help-me-1.1.0" = {
+      name = "help-me";
+      packageName = "help-me";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/help-me/-/help-me-1.1.0.tgz";
+        sha1 = "8f2d508d0600b4a456da2f086556e7e5c056a3c6";
+      };
+    };
+    "highlight.js-10.1.2" = {
+      name = "highlight.js";
+      packageName = "highlight.js";
+      version = "10.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.1.2.tgz";
+        sha512 = "Q39v/Mn5mfBlMff9r+zzA+gWxRsCRKwEMvYTiisLr/XUiFI/4puWt0Ojdko3R3JCNWGdOWaA5g/Yxqa23kC5AA==";
+      };
+    };
+    "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-encoding-sniffer-2.0.1" = {
+      name = "html-encoding-sniffer";
+      packageName = "html-encoding-sniffer";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz";
+        sha512 = "D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "humanize-duration-3.23.1" = {
+      name = "humanize-duration";
+      packageName = "humanize-duration";
+      version = "3.23.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.23.1.tgz";
+        sha512 = "aoOEkomAETmVuQyBx4E7/LfPlC9s8pAA/USl7vFRQpDjepo3aiyvFfOhtXSDqPowdBVPFUZ7onG/KyuolX0qPg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "ieee754-1.1.13" = {
+      name = "ieee754";
+      packageName = "ieee754";
+      version = "1.1.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz";
+        sha512 = "4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==";
+      };
+    };
+    "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.1" = {
+      name = "import-fresh";
+      packageName = "import-fresh";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz";
+        sha512 = "6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==";
+      };
+    };
+    "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";
+      };
+    };
+    "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==";
+      };
+    };
+    "ini-1.3.5" = {
+      name = "ini";
+      packageName = "ini";
+      version = "1.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz";
+        sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==";
+      };
+    };
+    "interpret-1.4.0" = {
+      name = "interpret";
+      packageName = "interpret";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz";
+        sha512 = "agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==";
+      };
+    };
+    "invariant-2.2.4" = {
+      name = "invariant";
+      packageName = "invariant";
+      version = "2.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz";
+        sha512 = "phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==";
+      };
+    };
+    "ip-regex-2.1.0" = {
+      name = "ip-regex";
+      packageName = "ip-regex";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz";
+        sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
+      };
+    };
+    "is-absolute-1.0.0" = {
+      name = "is-absolute";
+      packageName = "is-absolute";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz";
+        sha512 = "dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==";
+      };
+    };
+    "is-accessor-descriptor-0.1.6" = {
+      name = "is-accessor-descriptor";
+      packageName = "is-accessor-descriptor";
+      version = "0.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
+        sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+      };
+    };
+    "is-accessor-descriptor-1.0.0" = {
+      name = "is-accessor-descriptor";
+      packageName = "is-accessor-descriptor";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
+        sha512 = "m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==";
+      };
+    };
+    "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-binary-path-1.0.1" = {
+      name = "is-binary-path";
+      packageName = "is-binary-path";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz";
+        sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
+      };
+    };
+    "is-buffer-1.1.6" = {
+      name = "is-buffer";
+      packageName = "is-buffer";
+      version = "1.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz";
+        sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==";
+      };
+    };
+    "is-ci-2.0.0" = {
+      name = "is-ci";
+      packageName = "is-ci";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz";
+        sha512 = "YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==";
+      };
+    };
+    "is-data-descriptor-0.1.4" = {
+      name = "is-data-descriptor";
+      packageName = "is-data-descriptor";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
+        sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+      };
+    };
+    "is-data-descriptor-1.0.0" = {
+      name = "is-data-descriptor";
+      packageName = "is-data-descriptor";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
+        sha512 = "jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==";
+      };
+    };
+    "is-descriptor-0.1.6" = {
+      name = "is-descriptor";
+      packageName = "is-descriptor";
+      version = "0.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz";
+        sha512 = "avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==";
+      };
+    };
+    "is-descriptor-1.0.2" = {
+      name = "is-descriptor";
+      packageName = "is-descriptor";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz";
+        sha512 = "2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==";
+      };
+    };
+    "is-docker-2.1.1" = {
+      name = "is-docker";
+      packageName = "is-docker";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz";
+        sha512 = "ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==";
+      };
+    };
+    "is-extendable-0.1.1" = {
+      name = "is-extendable";
+      packageName = "is-extendable";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz";
+        sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+      };
+    };
+    "is-extendable-1.0.1" = {
+      name = "is-extendable";
+      packageName = "is-extendable";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz";
+        sha512 = "arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==";
+      };
+    };
+    "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-1.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+        sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+      };
+    };
+    "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-generator-fn-2.1.0" = {
+      name = "is-generator-fn";
+      packageName = "is-generator-fn";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz";
+        sha512 = "cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==";
+      };
+    };
+    "is-glob-3.1.0" = {
+      name = "is-glob";
+      packageName = "is-glob";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz";
+        sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+      };
+    };
+    "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-negated-glob-1.0.0" = {
+      name = "is-negated-glob";
+      packageName = "is-negated-glob";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz";
+        sha1 = "6910bca5da8c95e784b5751b976cf5a10fee36d2";
+      };
+    };
+    "is-number-3.0.0" = {
+      name = "is-number";
+      packageName = "is-number";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz";
+        sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+      };
+    };
+    "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-plain-object-2.0.4" = {
+      name = "is-plain-object";
+      packageName = "is-plain-object";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz";
+        sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==";
+      };
+    };
+    "is-potential-custom-element-name-1.0.0" = {
+      name = "is-potential-custom-element-name";
+      packageName = "is-potential-custom-element-name";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz";
+        sha1 = "0c52e54bcca391bb2c494b21e8626d7336c6e397";
+      };
+    };
+    "is-relative-1.0.0" = {
+      name = "is-relative";
+      packageName = "is-relative";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz";
+        sha512 = "Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==";
+      };
+    };
+    "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";
+      };
+    };
+    "is-unc-path-1.0.0" = {
+      name = "is-unc-path";
+      packageName = "is-unc-path";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz";
+        sha512 = "mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==";
+      };
+    };
+    "is-windows-1.0.2" = {
+      name = "is-windows";
+      packageName = "is-windows";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz";
+        sha512 = "eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==";
+      };
+    };
+    "is-wsl-2.2.0" = {
+      name = "is-wsl";
+      packageName = "is-wsl";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz";
+        sha512 = "fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==";
+      };
+    };
+    "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";
+      };
+    };
+    "isobject-2.1.0" = {
+      name = "isobject";
+      packageName = "isobject";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz";
+        sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+      };
+    };
+    "isobject-3.0.1" = {
+      name = "isobject";
+      packageName = "isobject";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz";
+        sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+      };
+    };
+    "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-3.0.0" = {
+      name = "istanbul-lib-coverage";
+      packageName = "istanbul-lib-coverage";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz";
+        sha512 = "UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==";
+      };
+    };
+    "istanbul-lib-instrument-4.0.3" = {
+      name = "istanbul-lib-instrument";
+      packageName = "istanbul-lib-instrument";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz";
+        sha512 = "BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==";
+      };
+    };
+    "istanbul-lib-report-3.0.0" = {
+      name = "istanbul-lib-report";
+      packageName = "istanbul-lib-report";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz";
+        sha512 = "wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==";
+      };
+    };
+    "istanbul-lib-source-maps-4.0.0" = {
+      name = "istanbul-lib-source-maps";
+      packageName = "istanbul-lib-source-maps";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz";
+        sha512 = "c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==";
+      };
+    };
+    "istanbul-reports-3.0.2" = {
+      name = "istanbul-reports";
+      packageName = "istanbul-reports";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz";
+        sha512 = "9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==";
+      };
+    };
+    "jest-26.4.2" = {
+      name = "jest";
+      packageName = "jest";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest/-/jest-26.4.2.tgz";
+        sha512 = "LLCjPrUh98Ik8CzW8LLVnSCfLaiY+wbK53U7VxnFSX7Q+kWC4noVeDvGWIFw0Amfq1lq2VfGm7YHWSLBV62MJw==";
+      };
+    };
+    "jest-changed-files-26.3.0" = {
+      name = "jest-changed-files";
+      packageName = "jest-changed-files";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.3.0.tgz";
+        sha512 = "1C4R4nijgPltX6fugKxM4oQ18zimS7LqQ+zTTY8lMCMFPrxqBFb7KJH0Z2fRQJvw2Slbaipsqq7s1mgX5Iot+g==";
+      };
+    };
+    "jest-cli-26.4.2" = {
+      name = "jest-cli";
+      packageName = "jest-cli";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-cli/-/jest-cli-26.4.2.tgz";
+        sha512 = "zb+lGd/SfrPvoRSC/0LWdaWCnscXc1mGYW//NP4/tmBvRPT3VntZ2jtKUONsRi59zc5JqmsSajA9ewJKFYp8Cw==";
+      };
+    };
+    "jest-config-26.4.2" = {
+      name = "jest-config";
+      packageName = "jest-config";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-config/-/jest-config-26.4.2.tgz";
+        sha512 = "QBf7YGLuToiM8PmTnJEdRxyYy3mHWLh24LJZKVdXZ2PNdizSe1B/E8bVm+HYcjbEzGuVXDv/di+EzdO/6Gq80A==";
+      };
+    };
+    "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-diff-26.4.2" = {
+      name = "jest-diff";
+      packageName = "jest-diff";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-diff/-/jest-diff-26.4.2.tgz";
+        sha512 = "6T1XQY8U28WH0Z5rGpQ+VqZSZz8EN8rZcBtfvXaOkbwxIEeRre6qnuZQlbY1AJ4MKDxQF8EkrCvK+hL/VkyYLQ==";
+      };
+    };
+    "jest-docblock-26.0.0" = {
+      name = "jest-docblock";
+      packageName = "jest-docblock";
+      version = "26.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz";
+        sha512 = "RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==";
+      };
+    };
+    "jest-each-26.4.2" = {
+      name = "jest-each";
+      packageName = "jest-each";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-each/-/jest-each-26.4.2.tgz";
+        sha512 = "p15rt8r8cUcRY0Mvo1fpkOGYm7iI8S6ySxgIdfh3oOIv+gHwrHTy5VWCGOecWUhDsit4Nz8avJWdT07WLpbwDA==";
+      };
+    };
+    "jest-environment-jsdom-26.3.0" = {
+      name = "jest-environment-jsdom";
+      packageName = "jest-environment-jsdom";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.3.0.tgz";
+        sha512 = "zra8He2btIMJkAzvLaiZ9QwEPGEetbxqmjEBQwhH3CA+Hhhu0jSiEJxnJMbX28TGUvPLxBt/zyaTLrOPF4yMJA==";
+      };
+    };
+    "jest-environment-node-26.3.0" = {
+      name = "jest-environment-node";
+      packageName = "jest-environment-node";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.3.0.tgz";
+        sha512 = "c9BvYoo+FGcMj5FunbBgtBnbR5qk3uky8PKyRVpSfe2/8+LrNQMiXX53z6q2kY+j15SkjQCOSL/6LHnCPLVHNw==";
+      };
+    };
+    "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-get-type-26.3.0" = {
+      name = "jest-get-type";
+      packageName = "jest-get-type";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz";
+        sha512 = "TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==";
+      };
+    };
+    "jest-haste-map-26.3.0" = {
+      name = "jest-haste-map";
+      packageName = "jest-haste-map";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.3.0.tgz";
+        sha512 = "DHWBpTJgJhLLGwE5Z1ZaqLTYqeODQIZpby0zMBsCU9iRFHYyhklYqP4EiG73j5dkbaAdSZhgB938mL51Q5LeZA==";
+      };
+    };
+    "jest-jasmine2-26.4.2" = {
+      name = "jest-jasmine2";
+      packageName = "jest-jasmine2";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.4.2.tgz";
+        sha512 = "z7H4EpCldHN1J8fNgsja58QftxBSL+JcwZmaXIvV9WKIM+x49F4GLHu/+BQh2kzRKHAgaN/E82od+8rTOBPyPA==";
+      };
+    };
+    "jest-leak-detector-26.4.2" = {
+      name = "jest-leak-detector";
+      packageName = "jest-leak-detector";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.4.2.tgz";
+        sha512 = "akzGcxwxtE+9ZJZRW+M2o+nTNnmQZxrHJxX/HjgDaU5+PLmY1qnQPnMjgADPGCRPhB+Yawe1iij0REe+k/aHoA==";
+      };
+    };
+    "jest-matcher-utils-26.4.2" = {
+      name = "jest-matcher-utils";
+      packageName = "jest-matcher-utils";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.4.2.tgz";
+        sha512 = "KcbNqWfWUG24R7tu9WcAOKKdiXiXCbMvQYT6iodZ9k1f7065k0keUOW6XpJMMvah+hTfqkhJhRXmA3r3zMAg0Q==";
+      };
+    };
+    "jest-message-util-26.3.0" = {
+      name = "jest-message-util";
+      packageName = "jest-message-util";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.3.0.tgz";
+        sha512 = "xIavRYqr4/otGOiLxLZGj3ieMmjcNE73Ui+LdSW/Y790j5acqCsAdDiLIbzHCZMpN07JOENRWX5DcU+OQ+TjTA==";
+      };
+    };
+    "jest-mock-26.3.0" = {
+      name = "jest-mock";
+      packageName = "jest-mock";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-mock/-/jest-mock-26.3.0.tgz";
+        sha512 = "PeaRrg8Dc6mnS35gOo/CbZovoDPKAeB1FICZiuagAgGvbWdNNyjQjkOaGUa/3N3JtpQ/Mh9P4A2D4Fv51NnP8Q==";
+      };
+    };
+    "jest-pnp-resolver-1.2.2" = {
+      name = "jest-pnp-resolver";
+      packageName = "jest-pnp-resolver";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz";
+        sha512 = "olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==";
+      };
+    };
+    "jest-regex-util-26.0.0" = {
+      name = "jest-regex-util";
+      packageName = "jest-regex-util";
+      version = "26.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz";
+        sha512 = "Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==";
+      };
+    };
+    "jest-resolve-26.4.0" = {
+      name = "jest-resolve";
+      packageName = "jest-resolve";
+      version = "26.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.4.0.tgz";
+        sha512 = "bn/JoZTEXRSlEx3+SfgZcJAVuTMOksYq9xe9O6s4Ekg84aKBObEaVXKOEilULRqviSLAYJldnoWV9c07kwtiCg==";
+      };
+    };
+    "jest-resolve-dependencies-26.4.2" = {
+      name = "jest-resolve-dependencies";
+      packageName = "jest-resolve-dependencies";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.4.2.tgz";
+        sha512 = "ADHaOwqEcVc71uTfySzSowA/RdxUpCxhxa2FNLiin9vWLB1uLPad3we+JSSROq5+SrL9iYPdZZF8bdKM7XABTQ==";
+      };
+    };
+    "jest-runner-26.4.2" = {
+      name = "jest-runner";
+      packageName = "jest-runner";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-runner/-/jest-runner-26.4.2.tgz";
+        sha512 = "FgjDHeVknDjw1gRAYaoUoShe1K3XUuFMkIaXbdhEys+1O4bEJS8Avmn4lBwoMfL8O5oFTdWYKcf3tEJyyYyk8g==";
+      };
+    };
+    "jest-runtime-26.4.2" = {
+      name = "jest-runtime";
+      packageName = "jest-runtime";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.4.2.tgz";
+        sha512 = "4Pe7Uk5a80FnbHwSOk7ojNCJvz3Ks2CNQWT5Z7MJo4tX0jb3V/LThKvD9tKPNVNyeMH98J/nzGlcwc00R2dSHQ==";
+      };
+    };
+    "jest-serializer-26.3.0" = {
+      name = "jest-serializer";
+      packageName = "jest-serializer";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.3.0.tgz";
+        sha512 = "IDRBQBLPlKa4flg77fqg0n/pH87tcRKwe8zxOVTWISxGpPHYkRZ1dXKyh04JOja7gppc60+soKVZ791mruVdow==";
+      };
+    };
+    "jest-snapshot-26.4.2" = {
+      name = "jest-snapshot";
+      packageName = "jest-snapshot";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.4.2.tgz";
+        sha512 = "N6Uub8FccKlf5SBFnL2Ri/xofbaA68Cc3MGjP/NuwgnsvWh+9hLIR/DhrxbSiKXMY9vUW5dI6EW1eHaDHqe9sg==";
+      };
+    };
+    "jest-util-26.3.0" = {
+      name = "jest-util";
+      packageName = "jest-util";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-util/-/jest-util-26.3.0.tgz";
+        sha512 = "4zpn6bwV0+AMFN0IYhH/wnzIQzRaYVrz1A8sYnRnj4UXDXbOVtWmlaZkO9mipFqZ13okIfN87aDoJWB7VH6hcw==";
+      };
+    };
+    "jest-validate-26.4.2" = {
+      name = "jest-validate";
+      packageName = "jest-validate";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-validate/-/jest-validate-26.4.2.tgz";
+        sha512 = "blft+xDX7XXghfhY0mrsBCYhX365n8K5wNDC4XAcNKqqjEzsRUSXP44m6PL0QJEW2crxQFLLztVnJ4j7oPlQrQ==";
+      };
+    };
+    "jest-watcher-26.3.0" = {
+      name = "jest-watcher";
+      packageName = "jest-watcher";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.3.0.tgz";
+        sha512 = "XnLdKmyCGJ3VoF6G/p5ohbJ04q/vv5aH9ENI+i6BL0uu9WWB6Z7Z2lhQQk0d2AVZcRGp1yW+/TsoToMhBFPRdQ==";
+      };
+    };
+    "jest-worker-26.3.0" = {
+      name = "jest-worker";
+      packageName = "jest-worker";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz";
+        sha512 = "Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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";
+      };
+    };
+    "jsdom-16.4.0" = {
+      name = "jsdom";
+      packageName = "jsdom";
+      version = "16.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz";
+        sha512 = "lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==";
+      };
+    };
+    "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-even-better-errors-2.3.0" = {
+      name = "json-parse-even-better-errors";
+      packageName = "json-parse-even-better-errors";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz";
+        sha512 = "o3aP+RsWDJZayj1SbHNQAI8x0v3T3SKiGoZlNYfbUP1S3omJQ6i9CnqADqkSPaOAxwua4/1YWx5CM7oiChJt2Q==";
+      };
+    };
+    "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-stable-stringify-1.0.1" = {
+      name = "json-stable-stringify";
+      packageName = "json-stable-stringify";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz";
+        sha1 = "9a759d39c5f2ff503fd5300646ed445f88c4f9af";
+      };
+    };
+    "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";
+      };
+    };
+    "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==";
+      };
+    };
+    "jsonfile-6.0.1" = {
+      name = "jsonfile";
+      packageName = "jsonfile";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz";
+        sha512 = "jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==";
+      };
+    };
+    "jsonify-0.0.0" = {
+      name = "jsonify";
+      packageName = "jsonify";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz";
+        sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
+      };
+    };
+    "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";
+      };
+    };
+    "kind-of-3.2.2" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "3.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz";
+        sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+      };
+    };
+    "kind-of-4.0.0" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz";
+        sha1 = "20813df3d712928b207378691a45066fae72dd57";
+      };
+    };
+    "kind-of-5.1.0" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz";
+        sha512 = "NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==";
+      };
+    };
+    "kind-of-6.0.3" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "6.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz";
+        sha512 = "dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==";
+      };
+    };
+    "kleur-3.0.3" = {
+      name = "kleur";
+      packageName = "kleur";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz";
+        sha512 = "eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==";
+      };
+    };
+    "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==";
+      };
+    };
+    "leven-2.1.0" = {
+      name = "leven";
+      packageName = "leven";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz";
+        sha1 = "c2e7a9f772094dee9d34202ae8acce4687875580";
+      };
+    };
+    "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==";
+      };
+    };
+    "levenary-1.1.1" = {
+      name = "levenary";
+      packageName = "levenary";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz";
+        sha512 = "mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==";
+      };
+    };
+    "levn-0.3.0" = {
+      name = "levn";
+      packageName = "levn";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz";
+        sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+      };
+    };
+    "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";
+      };
+    };
+    "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==";
+      };
+    };
+    "lodash.sortby-4.7.0" = {
+      name = "lodash.sortby";
+      packageName = "lodash.sortby";
+      version = "4.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz";
+        sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438";
+      };
+    };
+    "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==";
+      };
+    };
+    "loose-envify-1.4.0" = {
+      name = "loose-envify";
+      packageName = "loose-envify";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz";
+        sha512 = "lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==";
+      };
+    };
+    "lunr-2.3.9" = {
+      name = "lunr";
+      packageName = "lunr";
+      version = "2.3.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz";
+        sha512 = "zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==";
+      };
+    };
+    "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==";
+      };
+    };
+    "make-dir-3.1.0" = {
+      name = "make-dir";
+      packageName = "make-dir";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz";
+        sha512 = "g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==";
+      };
+    };
+    "makeerror-1.0.11" = {
+      name = "makeerror";
+      packageName = "makeerror";
+      version = "1.0.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz";
+        sha1 = "e01a5c9109f2af79660e4e8b9587790184f5a96c";
+      };
+    };
+    "map-cache-0.2.2" = {
+      name = "map-cache";
+      packageName = "map-cache";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz";
+        sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+      };
+    };
+    "map-visit-1.0.0" = {
+      name = "map-visit";
+      packageName = "map-visit";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz";
+        sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+      };
+    };
+    "marked-1.1.1" = {
+      name = "marked";
+      packageName = "marked";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/marked/-/marked-1.1.1.tgz";
+        sha512 = "mJzT8D2yPxoPh7h0UXkB+dBj4FykPJ2OIfxAWeIHrvoHDkFxukV/29QxoFQoPM6RLEwhIFdJpmKBlqVM3s2ZIw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "micromatch-3.1.10" = {
+      name = "micromatch";
+      packageName = "micromatch";
+      version = "3.1.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz";
+        sha512 = "MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "mimic-response-2.1.0" = {
+      name = "mimic-response";
+      packageName = "mimic-response";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz";
+        sha512 = "wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "mixin-deep-1.3.2" = {
+      name = "mixin-deep";
+      packageName = "mixin-deep";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz";
+        sha512 = "WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==";
+      };
+    };
+    "mixin-deep-2.0.1" = {
+      name = "mixin-deep";
+      packageName = "mixin-deep";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz";
+        sha512 = "imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==";
+      };
+    };
+    "mkdir-recursive-0.4.0" = {
+      name = "mkdir-recursive";
+      packageName = "mkdir-recursive";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdir-recursive/-/mkdir-recursive-0.4.0.tgz";
+        sha512 = "gbTtiEu8P/GSMh1lAa0YYNr8XIfDzFgnWtetw3Hfz9nw6YXySHNYOZF/uUTgyp8GHvFnNw/EG7VhOkD6zfVb6A==";
+      };
+    };
+    "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==";
+      };
+    };
+    "mkdirp-classic-0.5.3" = {
+      name = "mkdirp-classic";
+      packageName = "mkdirp-classic";
+      version = "0.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz";
+        sha512 = "gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==";
+      };
+    };
+    "moment-2.27.0" = {
+      name = "moment";
+      packageName = "moment";
+      version = "2.27.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz";
+        sha512 = "al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==";
+      };
+    };
+    "mqtt-4.2.1" = {
+      name = "mqtt";
+      packageName = "mqtt";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mqtt/-/mqtt-4.2.1.tgz";
+        sha512 = "Iv893r+jWlo5GkNcPOfCGwW8M49IixwHiKLFFYTociEymSibUVCORVEjPXWPGzSxhn7BdlUeHicbRmWiv0Crkg==";
+      };
+    };
+    "mqtt-packet-6.4.0" = {
+      name = "mqtt-packet";
+      packageName = "mqtt-packet";
+      version = "6.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.4.0.tgz";
+        sha512 = "dNd1RPyBolklOR27hgHhy3TxkDk31ZaDu4ljAgJoHlnVsdACH8guwEZhpk3ZMn6GAdH6ENDLgtE285FHIiXzxA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "nan-2.14.1" = {
+      name = "nan";
+      packageName = "nan";
+      version = "2.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz";
+        sha512 = "isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==";
+      };
+    };
+    "nanomatch-1.2.13" = {
+      name = "nanomatch";
+      packageName = "nanomatch";
+      version = "1.2.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz";
+        sha512 = "fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==";
+      };
+    };
+    "napi-build-utils-1.0.2" = {
+      name = "napi-build-utils";
+      packageName = "napi-build-utils";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz";
+        sha512 = "ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "next-tick-1.0.0" = {
+      name = "next-tick";
+      packageName = "next-tick";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz";
+        sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c";
+      };
+    };
+    "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-abi-2.19.1" = {
+      name = "node-abi";
+      packageName = "node-abi";
+      version = "2.19.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.19.1.tgz";
+        sha512 = "HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A==";
+      };
+    };
+    "node-int64-0.4.0" = {
+      name = "node-int64";
+      packageName = "node-int64";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz";
+        sha1 = "87a9065cdb355d3182d8f94ce11188b825c68a3b";
+      };
+    };
+    "node-modules-regexp-1.0.0" = {
+      name = "node-modules-regexp";
+      packageName = "node-modules-regexp";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz";
+        sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40";
+      };
+    };
+    "node-notifier-8.0.0" = {
+      name = "node-notifier";
+      packageName = "node-notifier";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz";
+        sha512 = "46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==";
+      };
+    };
+    "node-releases-1.1.60" = {
+      name = "node-releases";
+      packageName = "node-releases";
+      version = "1.1.60";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz";
+        sha512 = "gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==";
+      };
+    };
+    "noop-logger-0.1.1" = {
+      name = "noop-logger";
+      packageName = "noop-logger";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz";
+        sha1 = "94a2b1633c4f1317553007d8966fd0e841b6a4c2";
+      };
+    };
+    "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-2.1.1" = {
+      name = "normalize-path";
+      packageName = "normalize-path";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz";
+        sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+      };
+    };
+    "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==";
+      };
+    };
+    "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";
+      };
+    };
+    "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==";
+      };
+    };
+    "npmlog-4.1.2" = {
+      name = "npmlog";
+      packageName = "npmlog";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz";
+        sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==";
+      };
+    };
+    "number-is-nan-1.0.1" = {
+      name = "number-is-nan";
+      packageName = "number-is-nan";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
+        sha1 = "097b602b53422a522c1afb8790318336941a011d";
+      };
+    };
+    "nwsapi-2.2.0" = {
+      name = "nwsapi";
+      packageName = "nwsapi";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz";
+        sha512 = "h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==";
+      };
+    };
+    "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-assign-4.1.1" = {
+      name = "object-assign";
+      packageName = "object-assign";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz";
+        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+      };
+    };
+    "object-assign-deep-0.4.0" = {
+      name = "object-assign-deep";
+      packageName = "object-assign-deep";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-assign-deep/-/object-assign-deep-0.4.0.tgz";
+        sha512 = "54Uvn3s+4A/cMWx9tlRez1qtc7pN7pbQ+Yi7mjLjcBpWLlP+XbSHiHbQW6CElDiV4OvuzqnMrBdkgxI1mT8V/Q==";
+      };
+    };
+    "object-copy-0.1.0" = {
+      name = "object-copy";
+      packageName = "object-copy";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz";
+        sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
+      };
+    };
+    "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-visit-1.0.1" = {
+      name = "object-visit";
+      packageName = "object-visit";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz";
+        sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
+      };
+    };
+    "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.pick-1.3.0" = {
+      name = "object.pick";
+      packageName = "object.pick";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz";
+        sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+      };
+    };
+    "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==";
+      };
+    };
+    "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.8.3" = {
+      name = "optionator";
+      packageName = "optionator";
+      version = "0.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz";
+        sha512 = "+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "ordered-read-streams-1.0.1" = {
+      name = "ordered-read-streams";
+      packageName = "ordered-read-streams";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz";
+        sha1 = "77c0cb37c41525d64166d990ffad7ec6a0e1363e";
+      };
+    };
+    "p-each-series-2.1.0" = {
+      name = "p-each-series";
+      packageName = "p-each-series";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz";
+        sha512 = "ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==";
+      };
+    };
+    "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-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-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==";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "pascalcase-0.1.1" = {
+      name = "pascalcase";
+      packageName = "pascalcase";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz";
+        sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+      };
+    };
+    "path-dirname-1.0.2" = {
+      name = "path-dirname";
+      packageName = "path-dirname";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz";
+        sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
+      };
+    };
+    "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-2.0.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-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==";
+      };
+    };
+    "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";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "pirates-4.0.1" = {
+      name = "pirates";
+      packageName = "pirates";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz";
+        sha512 = "WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "posix-character-classes-0.1.1" = {
+      name = "posix-character-classes";
+      packageName = "posix-character-classes";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
+        sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+      };
+    };
+    "prebuild-install-5.3.5" = {
+      name = "prebuild-install";
+      packageName = "prebuild-install";
+      version = "5.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.5.tgz";
+        sha512 = "YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw==";
+      };
+    };
+    "prelude-ls-1.1.2" = {
+      name = "prelude-ls";
+      packageName = "prelude-ls";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz";
+        sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
+      };
+    };
+    "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-format-25.5.0" = {
+      name = "pretty-format";
+      packageName = "pretty-format";
+      version = "25.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz";
+        sha512 = "kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==";
+      };
+    };
+    "pretty-format-26.4.2" = {
+      name = "pretty-format";
+      packageName = "pretty-format";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pretty-format/-/pretty-format-26.4.2.tgz";
+        sha512 = "zK6Gd8zDsEiVydOCGLkoBoZuqv8VTiHyAbKznXe/gaph/DAeZOmit9yMfgIz5adIgAMMs5XfoYSwAX3jcCO1tA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "prompts-2.3.2" = {
+      name = "prompts";
+      packageName = "prompts";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz";
+        sha512 = "Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "pump-2.0.1" = {
+      name = "pump";
+      packageName = "pump";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz";
+        sha512 = "ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "pumpify-1.5.1" = {
+      name = "pumpify";
+      packageName = "pumpify";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz";
+        sha512 = "oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "rc-1.2.8" = {
+      name = "rc";
+      packageName = "rc";
+      version = "1.2.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz";
+        sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==";
+      };
+    };
+    "react-is-16.13.1" = {
+      name = "react-is";
+      packageName = "react-is";
+      version = "16.13.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz";
+        sha512 = "24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==";
+      };
+    };
+    "read-pkg-5.2.0" = {
+      name = "read-pkg";
+      packageName = "read-pkg";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz";
+        sha512 = "Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==";
+      };
+    };
+    "read-pkg-up-7.0.1" = {
+      name = "read-pkg-up";
+      packageName = "read-pkg-up";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz";
+        sha512 = "zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==";
+      };
+    };
+    "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-2.2.1" = {
+      name = "readdirp";
+      packageName = "readdirp";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz";
+        sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==";
+      };
+    };
+    "rechoir-0.6.2" = {
+      name = "rechoir";
+      packageName = "rechoir";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz";
+        sha1 = "85204b54dba82d5742e28c96756ef43af50e3384";
+      };
+    };
+    "regenerate-1.4.1" = {
+      name = "regenerate";
+      packageName = "regenerate";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz";
+        sha512 = "j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==";
+      };
+    };
+    "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==";
+      };
+    };
+    "regex-not-1.0.2" = {
+      name = "regex-not";
+      packageName = "regex-not";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz";
+        sha512 = "J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==";
+      };
+    };
+    "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.0" = {
+      name = "regexpu-core";
+      packageName = "regexpu-core";
+      version = "4.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz";
+        sha512 = "TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "reinterval-1.1.0" = {
+      name = "reinterval";
+      packageName = "reinterval";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz";
+        sha1 = "3361ecfa3ca6c18283380dd0bb9546f390f5ece7";
+      };
+    };
+    "remove-trailing-separator-1.1.0" = {
+      name = "remove-trailing-separator";
+      packageName = "remove-trailing-separator";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+        sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+      };
+    };
+    "repeat-element-1.1.3" = {
+      name = "repeat-element";
+      packageName = "repeat-element";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz";
+        sha512 = "ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==";
+      };
+    };
+    "repeat-string-1.6.1" = {
+      name = "repeat-string";
+      packageName = "repeat-string";
+      version = "1.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz";
+        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+      };
+    };
+    "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-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-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.17.0" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.17.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz";
+        sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
+      };
+    };
+    "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==";
+      };
+    };
+    "resolve-url-0.2.1" = {
+      name = "resolve-url";
+      packageName = "resolve-url";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz";
+        sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+      };
+    };
+    "ret-0.1.15" = {
+      name = "ret";
+      packageName = "ret";
+      version = "0.1.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz";
+        sha512 = "TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "rsvp-4.8.5" = {
+      name = "rsvp";
+      packageName = "rsvp";
+      version = "4.8.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz";
+        sha512 = "nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "safe-regex-1.1.0" = {
+      name = "safe-regex";
+      packageName = "safe-regex";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz";
+        sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+      };
+    };
+    "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==";
+      };
+    };
+    "sane-4.1.0" = {
+      name = "sane";
+      packageName = "sane";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz";
+        sha512 = "hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==";
+      };
+    };
+    "saxes-5.0.1" = {
+      name = "saxes";
+      packageName = "saxes";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz";
+        sha512 = "5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "serialport-9.0.1" = {
+      name = "serialport";
+      packageName = "serialport";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialport/-/serialport-9.0.1.tgz";
+        sha512 = "35Ms8dqjtAb73lptfEZG2l/nFZOxHt3hUjCHvl+g3Mu737gzFLDpSBrRywBJw4G4eS5ozZ3YcthwYnop1WO+ng==";
+      };
+    };
+    "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";
+      };
+    };
+    "set-value-2.0.1" = {
+      name = "set-value";
+      packageName = "set-value";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz";
+        sha512 = "JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==";
+      };
+    };
+    "shebang-command-1.2.0" = {
+      name = "shebang-command";
+      packageName = "shebang-command";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz";
+        sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+      };
+    };
+    "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-1.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";
+      };
+    };
+    "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==";
+      };
+    };
+    "shelljs-0.8.4" = {
+      name = "shelljs";
+      packageName = "shelljs";
+      version = "0.8.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz";
+        sha512 = "7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==";
+      };
+    };
+    "shellwords-0.1.1" = {
+      name = "shellwords";
+      packageName = "shellwords";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz";
+        sha512 = "vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==";
+      };
+    };
+    "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-concat-1.0.1" = {
+      name = "simple-concat";
+      packageName = "simple-concat";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz";
+        sha512 = "cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==";
+      };
+    };
+    "simple-get-3.1.0" = {
+      name = "simple-get";
+      packageName = "simple-get";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz";
+        sha512 = "bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==";
+      };
+    };
+    "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";
+      };
+    };
+    "sisteransi-1.0.5" = {
+      name = "sisteransi";
+      packageName = "sisteransi";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz";
+        sha512 = "bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==";
+      };
+    };
+    "slash-2.0.0" = {
+      name = "slash";
+      packageName = "slash";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz";
+        sha512 = "ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "slip-1.0.2" = {
+      name = "slip";
+      packageName = "slip";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slip/-/slip-1.0.2.tgz";
+        sha1 = "ba45a923034d6cf41b1a27aebe7128282c8d551f";
+      };
+    };
+    "snapdragon-0.8.2" = {
+      name = "snapdragon";
+      packageName = "snapdragon";
+      version = "0.8.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz";
+        sha512 = "FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==";
+      };
+    };
+    "snapdragon-node-2.1.1" = {
+      name = "snapdragon-node";
+      packageName = "snapdragon-node";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
+        sha512 = "O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==";
+      };
+    };
+    "snapdragon-util-3.0.1" = {
+      name = "snapdragon-util";
+      packageName = "snapdragon-util";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
+        sha512 = "mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==";
+      };
+    };
+    "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-resolve-0.5.3" = {
+      name = "source-map-resolve";
+      packageName = "source-map-resolve";
+      version = "0.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
+        sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "source-map-url-0.4.0" = {
+      name = "source-map-url";
+      packageName = "source-map-url";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz";
+        sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+      };
+    };
+    "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.5" = {
+      name = "spdx-license-ids";
+      packageName = "spdx-license-ids";
+      version = "3.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz";
+        sha512 = "J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==";
+      };
+    };
+    "split-string-3.1.0" = {
+      name = "split-string";
+      packageName = "split-string";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz";
+        sha512 = "NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==";
+      };
+    };
+    "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";
+      };
+    };
+    "stack-utils-2.0.2" = {
+      name = "stack-utils";
+      packageName = "stack-utils";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.2.tgz";
+        sha512 = "0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg==";
+      };
+    };
+    "static-extend-0.1.2" = {
+      name = "static-extend";
+      packageName = "static-extend";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz";
+        sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+      };
+    };
+    "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";
+      };
+    };
+    "stream-shift-1.0.1" = {
+      name = "stream-shift";
+      packageName = "stream-shift";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz";
+        sha512 = "AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==";
+      };
+    };
+    "string-length-4.0.1" = {
+      name = "string-length";
+      packageName = "string-length";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz";
+        sha512 = "PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==";
+      };
+    };
+    "string-width-1.0.2" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz";
+        sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+      };
+    };
+    "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.0" = {
+      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_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-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-4.0.0" = {
+      name = "strip-bom";
+      packageName = "strip-bom";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz";
+        sha512 = "3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==";
+      };
+    };
+    "strip-eof-1.0.0" = {
+      name = "strip-eof";
+      packageName = "strip-eof";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz";
+        sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
+      };
+    };
+    "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-2.0.1" = {
+      name = "strip-json-comments";
+      packageName = "strip-json-comments";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+        sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+      };
+    };
+    "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==";
+      };
+    };
+    "supports-hyperlinks-2.1.0" = {
+      name = "supports-hyperlinks";
+      packageName = "supports-hyperlinks";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz";
+        sha512 = "zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==";
+      };
+    };
+    "symbol-tree-3.2.4" = {
+      name = "symbol-tree";
+      packageName = "symbol-tree";
+      version = "3.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz";
+        sha512 = "9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "tar-fs-2.1.0" = {
+      name = "tar-fs";
+      packageName = "tar-fs";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz";
+        sha512 = "9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==";
+      };
+    };
+    "tar-stream-2.1.3" = {
+      name = "tar-stream";
+      packageName = "tar-stream";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.3.tgz";
+        sha512 = "Z9yri56Dih8IaK8gncVPx4Wqt86NDmQTSh49XLZgjWpGZL9GK9HKParS2scqHCC4w6X9Gh2jwaU45V47XTKwVA==";
+      };
+    };
+    "terminal-link-2.1.1" = {
+      name = "terminal-link";
+      packageName = "terminal-link";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz";
+        sha512 = "un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==";
+      };
+    };
+    "test-exclude-6.0.0" = {
+      name = "test-exclude";
+      packageName = "test-exclude";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz";
+        sha512 = "cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==";
+      };
+    };
+    "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";
+      };
+    };
+    "throat-5.0.0" = {
+      name = "throat";
+      packageName = "throat";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz";
+        sha512 = "fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==";
+      };
+    };
+    "through2-2.0.5" = {
+      name = "through2";
+      packageName = "through2";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz";
+        sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==";
+      };
+    };
+    "through2-filter-3.0.0" = {
+      name = "through2-filter";
+      packageName = "through2-filter";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz";
+        sha512 = "jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==";
+      };
+    };
+    "tmpl-1.0.4" = {
+      name = "tmpl";
+      packageName = "tmpl";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz";
+        sha1 = "23640dd7b42d00433911140820e5cf440e521dd1";
+      };
+    };
+    "to-absolute-glob-2.0.2" = {
+      name = "to-absolute-glob";
+      packageName = "to-absolute-glob";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz";
+        sha1 = "1865f43d9e74b0822db9f145b78cff7d0f7c849b";
+      };
+    };
+    "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-object-path-0.3.0" = {
+      name = "to-object-path";
+      packageName = "to-object-path";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz";
+        sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+      };
+    };
+    "to-regex-3.0.2" = {
+      name = "to-regex";
+      packageName = "to-regex";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz";
+        sha512 = "FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==";
+      };
+    };
+    "to-regex-range-2.1.1" = {
+      name = "to-regex-range";
+      packageName = "to-regex-range";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz";
+        sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "tough-cookie-3.0.1" = {
+      name = "tough-cookie";
+      packageName = "tough-cookie";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz";
+        sha512 = "yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==";
+      };
+    };
+    "tr46-2.0.2" = {
+      name = "tr46";
+      packageName = "tr46";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz";
+        sha512 = "3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==";
+      };
+    };
+    "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.13.0" = {
+      name = "tslib";
+      packageName = "tslib";
+      version = "1.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz";
+        sha512 = "i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==";
+      };
+    };
+    "tsutils-3.17.1" = {
+      name = "tsutils";
+      packageName = "tsutils";
+      version = "3.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz";
+        sha512 = "kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==";
+      };
+    };
+    "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-1.2.0" = {
+      name = "type";
+      packageName = "type";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type/-/type-1.2.0.tgz";
+        sha512 = "+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==";
+      };
+    };
+    "type-2.1.0" = {
+      name = "type";
+      packageName = "type";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type/-/type-2.1.0.tgz";
+        sha512 = "G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==";
+      };
+    };
+    "type-check-0.3.2" = {
+      name = "type-check";
+      packageName = "type-check";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz";
+        sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+      };
+    };
+    "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";
+      version = "4.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz";
+        sha512 = "0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==";
+      };
+    };
+    "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.6.0" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz";
+        sha512 = "q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "typedarray-0.0.6" = {
+      name = "typedarray";
+      packageName = "typedarray";
+      version = "0.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
+        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+      };
+    };
+    "typedarray-to-buffer-3.1.5" = {
+      name = "typedarray-to-buffer";
+      packageName = "typedarray-to-buffer";
+      version = "3.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
+        sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==";
+      };
+    };
+    "typedoc-0.19.0" = {
+      name = "typedoc";
+      packageName = "typedoc";
+      version = "0.19.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedoc/-/typedoc-0.19.0.tgz";
+        sha512 = "Rn68JwgDDYyIWl3HXeSsLZcsvxd2anISjhKu64PvID7RETeS2Iwnc4cH60yqc8/N50Xo1d3MHPGYinCPhMMliQ==";
+      };
+    };
+    "typedoc-default-themes-0.11.1" = {
+      name = "typedoc-default-themes";
+      packageName = "typedoc-default-themes";
+      version = "0.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.11.1.tgz";
+        sha512 = "1yl8pbhjrLywqGJx9TfT+wzP+ntudPYjgJdpCj+s5ed2etBkqZPOCBMKwpaN9o6pdoFQF195PggqWTLVEkaRQQ==";
+      };
+    };
+    "typedoc-plugin-markdown-2.4.2" = {
+      name = "typedoc-plugin-markdown";
+      packageName = "typedoc-plugin-markdown";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-2.4.2.tgz";
+        sha512 = "BBH+9/Uq5XbsqfzCDl8Jq4iaLXRMXRuAHZRFarAZX7df8+F3vUjDx/WHWoWqbZ/XUFzduLC2Iuy2qwsJX8SQ7A==";
+      };
+    };
+    "typedoc-plugin-no-inherit-1.1.10" = {
+      name = "typedoc-plugin-no-inherit";
+      packageName = "typedoc-plugin-no-inherit";
+      version = "1.1.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedoc-plugin-no-inherit/-/typedoc-plugin-no-inherit-1.1.10.tgz";
+        sha512 = "BhSFAWlBTh9Bf6PSfruIqdQBM8gd/Gj8hVuRk5pVWkHu4I/SB24LzFr5gAo52ZlaQSeN72+VOkkRD6tNYl8Enw==";
+      };
+    };
+    "typedoc-plugin-sourcefile-url-1.0.6" = {
+      name = "typedoc-plugin-sourcefile-url";
+      packageName = "typedoc-plugin-sourcefile-url";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedoc-plugin-sourcefile-url/-/typedoc-plugin-sourcefile-url-1.0.6.tgz";
+        sha512 = "xHq9DzkoQywS7FyPneMm2/Hr9GRoCpjSQXkVN0W6SCJKP7fguqg2tasgh+8l5/mW6YSYvqCqEbkSYLbuD4Y6gA==";
+      };
+    };
+    "typescript-4.0.2" = {
+      name = "typescript";
+      packageName = "typescript";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz";
+        sha512 = "e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==";
+      };
+    };
+    "uglify-js-3.10.2" = {
+      name = "uglify-js";
+      packageName = "uglify-js";
+      version = "3.10.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.2.tgz";
+        sha512 = "GXCYNwqoo0MbLARghYjxVBxDCnU0tLqN7IPLdHHbibCb1NI5zBkU2EPcy/GaVxc0BtTjqyGXJCINe6JMR2Dpow==";
+      };
+    };
+    "unc-path-regex-0.1.2" = {
+      name = "unc-path-regex";
+      packageName = "unc-path-regex";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz";
+        sha1 = "e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa";
+      };
+    };
+    "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==";
+      };
+    };
+    "union-value-1.0.1" = {
+      name = "union-value";
+      packageName = "union-value";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz";
+        sha512 = "tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==";
+      };
+    };
+    "unique-stream-2.3.1" = {
+      name = "unique-stream";
+      packageName = "unique-stream";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz";
+        sha512 = "2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==";
+      };
+    };
+    "universalify-1.0.0" = {
+      name = "universalify";
+      packageName = "universalify";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz";
+        sha512 = "rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==";
+      };
+    };
+    "unix-dgram-2.0.3" = {
+      name = "unix-dgram";
+      packageName = "unix-dgram";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unix-dgram/-/unix-dgram-2.0.3.tgz";
+        sha512 = "Bay5CkSLcdypcBCsxvHEvaG3mftzT5FlUnRToPWEAVxwYI8NI/8zSJ/Gknlp86MPhV6hBA8I8TBsETj2tssoHQ==";
+      };
+    };
+    "unset-value-1.0.0" = {
+      name = "unset-value";
+      packageName = "unset-value";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz";
+        sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+      };
+    };
+    "upath-1.2.0" = {
+      name = "upath";
+      packageName = "upath";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz";
+        sha512 = "aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==";
+      };
+    };
+    "uri-js-4.2.2" = {
+      name = "uri-js";
+      packageName = "uri-js";
+      version = "4.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz";
+        sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==";
+      };
+    };
+    "urix-0.1.0" = {
+      name = "urix";
+      packageName = "urix";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz";
+        sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+      };
+    };
+    "use-3.1.1" = {
+      name = "use";
+      packageName = "use";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/use/-/use-3.1.1.tgz";
+        sha512 = "cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==";
+      };
+    };
+    "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";
+      };
+    };
+    "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==";
+      };
+    };
+    "uuid-8.3.0" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "8.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz";
+        sha512 = "fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==";
+      };
+    };
+    "v8-compile-cache-2.1.1" = {
+      name = "v8-compile-cache";
+      packageName = "v8-compile-cache";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz";
+        sha512 = "8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==";
+      };
+    };
+    "v8-to-istanbul-5.0.1" = {
+      name = "v8-to-istanbul";
+      packageName = "v8-to-istanbul";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-5.0.1.tgz";
+        sha512 = "mbDNjuDajqYe3TXFk5qxcQy8L1msXNE37WTlLoqqpBfRsimbNcrlhQlDPntmECEcUvdC+AQ8CyMMf6EUx1r74Q==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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";
+      };
+    };
+    "w3c-hr-time-1.0.2" = {
+      name = "w3c-hr-time";
+      packageName = "w3c-hr-time";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz";
+        sha512 = "z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==";
+      };
+    };
+    "w3c-xmlserializer-2.0.0" = {
+      name = "w3c-xmlserializer";
+      packageName = "w3c-xmlserializer";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz";
+        sha512 = "4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==";
+      };
+    };
+    "walker-1.0.7" = {
+      name = "walker";
+      packageName = "walker";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz";
+        sha1 = "2f7f9b8fd10d677262b18a884e28d19618e028fb";
+      };
+    };
+    "webidl-conversions-5.0.0" = {
+      name = "webidl-conversions";
+      packageName = "webidl-conversions";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz";
+        sha512 = "VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==";
+      };
+    };
+    "webidl-conversions-6.1.0" = {
+      name = "webidl-conversions";
+      packageName = "webidl-conversions";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz";
+        sha512 = "qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==";
+      };
+    };
+    "whatwg-encoding-1.0.5" = {
+      name = "whatwg-encoding";
+      packageName = "whatwg-encoding";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz";
+        sha512 = "b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==";
+      };
+    };
+    "whatwg-mimetype-2.3.0" = {
+      name = "whatwg-mimetype";
+      packageName = "whatwg-mimetype";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz";
+        sha512 = "M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==";
+      };
+    };
+    "whatwg-url-8.2.1" = {
+      name = "whatwg-url";
+      packageName = "whatwg-url";
+      version = "8.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.2.1.tgz";
+        sha512 = "ZmVCr6nfBeaMxEHALLEGy0LszYjpJqf6PVNQUQ1qd9Et+q7Jpygd4rGGDXgHjD8e99yLFseD69msHDM4YwPZ4A==";
+      };
+    };
+    "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";
+      };
+    };
+    "which-pm-runs-1.0.0" = {
+      name = "which-pm-runs";
+      packageName = "which-pm-runs";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz";
+        sha1 = "670b3afbc552e0b55df6b7780ca74615f23ad1cb";
+      };
+    };
+    "wide-align-1.1.3" = {
+      name = "wide-align";
+      packageName = "wide-align";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
+        sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
+      };
+    };
+    "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-syslog-2.4.4" = {
+      name = "winston-syslog";
+      packageName = "winston-syslog";
+      version = "2.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston-syslog/-/winston-syslog-2.4.4.tgz";
+        sha512 = "zDjoKO932Yszvzq8WtbIFMXHwAT2MOxpWC9s6djw2tvjdRESWw3au6l+0xDMatMhNWVoVaVNkDXF+r/eyoBUVA==";
+      };
+    };
+    "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-1.0.0" = {
+      name = "wordwrap";
+      packageName = "wordwrap";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz";
+        sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
+      };
+    };
+    "wrap-ansi-6.2.0" = {
+      name = "wrap-ansi";
+      packageName = "wrap-ansi";
+      version = "6.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
+        sha512 = "r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "write-file-atomic-3.0.3" = {
+      name = "write-file-atomic";
+      packageName = "write-file-atomic";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz";
+        sha512 = "AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==";
+      };
+    };
+    "ws-7.3.1" = {
+      name = "ws";
+      packageName = "ws";
+      version = "7.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz";
+        sha512 = "D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==";
+      };
+    };
+    "xml-name-validator-3.0.0" = {
+      name = "xml-name-validator";
+      packageName = "xml-name-validator";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz";
+        sha512 = "A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==";
+      };
+    };
+    "xmlchars-2.2.0" = {
+      name = "xmlchars";
+      packageName = "xmlchars";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz";
+        sha512 = "JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==";
+      };
+    };
+    "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.0" = {
+      name = "y18n";
+      packageName = "y18n";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz";
+        sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==";
+      };
+    };
+    "yargs-15.4.1" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "15.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz";
+        sha512 = "aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==";
+      };
+    };
+    "yargs-parser-18.1.3" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "18.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz";
+        sha512 = "o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==";
+      };
+    };
+    "zigbee-herdsman-0.12.127" = {
+      name = "zigbee-herdsman";
+      packageName = "zigbee-herdsman";
+      version = "0.12.127";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/zigbee-herdsman/-/zigbee-herdsman-0.12.127.tgz";
+        sha512 = "NbNwX+83byss1tQpZXydpo9iYuHa3RV88X2vHpmoNnv4WuHBjnSbmL/1sdiUB1URBIGeFgC9MxLiTtqxMyCehQ==";
+      };
+    };
+    "zigbee-herdsman-converters-12.0.178" = {
+      name = "zigbee-herdsman-converters";
+      packageName = "zigbee-herdsman-converters";
+      version = "12.0.178";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/zigbee-herdsman-converters/-/zigbee-herdsman-converters-12.0.178.tgz";
+        sha512 = "SOATRwJU8NCWay194BCzDr0+HkgF4ANv8Qw8Xmqbz60YZWsNh9y8tYrVbIbcTdiZKLGzambrmY66DgOntiTxNA==";
+      };
+    };
+  };
+  args = {
+    name = "zigbee2mqtt";
+    packageName = "zigbee2mqtt";
+    version = "1.14.4";
+    src = ./.;
+    dependencies = [
+      sources."@dabh/diagnostics-2.0.2"
+      sources."ajv-6.12.4"
+      sources."argparse-1.0.10"
+      sources."async-3.2.0"
+      sources."balanced-match-1.0.0"
+      sources."base64-js-1.3.1"
+      sources."bindings-1.5.0"
+      (sources."bl-4.0.3" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."brace-expansion-1.1.11"
+      sources."buffer-5.6.0"
+      sources."buffer-from-1.1.1"
+      sources."callback-stream-1.1.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."colors-1.4.0"
+      sources."colorspace-1.1.2"
+      sources."commist-1.1.0"
+      sources."concat-map-0.0.1"
+      sources."concat-stream-1.6.2"
+      sources."core-util-is-1.0.2"
+      sources."d-1.0.1"
+      sources."debounce-1.2.0"
+      sources."debug-4.1.1"
+      sources."duplexify-3.7.1"
+      sources."enabled-2.0.0"
+      sources."end-of-stream-1.4.4"
+      sources."es5-ext-0.10.53"
+      sources."es6-iterator-2.0.3"
+      sources."es6-map-0.1.5"
+      (sources."es6-set-0.1.5" // {
+        dependencies = [
+          sources."es6-symbol-3.1.1"
+        ];
+      })
+      sources."es6-symbol-3.1.3"
+      sources."esprima-4.0.1"
+      sources."event-emitter-0.3.5"
+      (sources."ext-1.4.0" // {
+        dependencies = [
+          sources."type-2.1.0"
+        ];
+      })
+      sources."extend-3.0.2"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-safe-stringify-2.0.7"
+      sources."fecha-4.2.0"
+      sources."file-uri-to-path-1.0.0"
+      sources."fn.name-1.1.0"
+      sources."fs.realpath-1.0.0"
+      sources."git-last-commit-1.0.0"
+      sources."glob-7.1.6"
+      sources."glob-parent-3.1.0"
+      sources."glob-stream-6.1.0"
+      sources."glossy-0.1.7"
+      sources."help-me-1.1.0"
+      sources."humanize-duration-3.23.1"
+      sources."ieee754-1.1.13"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."is-absolute-1.0.0"
+      sources."is-arrayish-0.3.2"
+      sources."is-extglob-2.1.1"
+      sources."is-glob-3.1.0"
+      sources."is-negated-glob-1.0.0"
+      sources."is-relative-1.0.0"
+      sources."is-stream-2.0.0"
+      sources."is-unc-path-1.0.0"
+      sources."is-windows-1.0.2"
+      sources."isarray-1.0.0"
+      sources."js-yaml-3.14.0"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stable-stringify-1.0.1"
+      sources."json-stable-stringify-without-jsonify-1.0.1"
+      sources."jsonify-0.0.0"
+      sources."kuler-2.0.0"
+      sources."leven-2.1.0"
+      sources."logform-2.2.0"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."mkdir-recursive-0.4.0"
+      sources."moment-2.27.0"
+      sources."mqtt-4.2.1"
+      (sources."mqtt-packet-6.4.0" // {
+        dependencies = [
+          sources."safe-buffer-5.2.1"
+        ];
+      })
+      sources."ms-2.1.2"
+      sources."nan-2.14.1"
+      sources."next-tick-1.0.0"
+      sources."object-assign-deep-0.4.0"
+      sources."once-1.4.0"
+      sources."one-time-1.0.0"
+      sources."ordered-read-streams-1.0.1"
+      sources."path-dirname-1.0.2"
+      sources."path-is-absolute-1.0.1"
+      sources."process-nextick-args-2.0.1"
+      sources."pump-3.0.0"
+      (sources."pumpify-1.5.1" // {
+        dependencies = [
+          sources."pump-2.0.1"
+        ];
+      })
+      sources."punycode-2.1.1"
+      sources."readable-stream-2.3.7"
+      sources."reinterval-1.1.0"
+      sources."remove-trailing-separator-1.1.0"
+      sources."rimraf-3.0.2"
+      sources."safe-buffer-5.1.2"
+      sources."semver-7.3.2"
+      sources."simple-swizzle-0.2.2"
+      (sources."split2-3.2.2" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."sprintf-js-1.0.3"
+      sources."stack-trace-0.0.10"
+      sources."stream-shift-1.0.1"
+      sources."string_decoder-1.1.1"
+      sources."text-hex-1.0.0"
+      sources."through2-2.0.5"
+      sources."through2-filter-3.0.0"
+      sources."to-absolute-glob-2.0.2"
+      sources."triple-beam-1.3.0"
+      sources."type-1.2.0"
+      sources."typedarray-0.0.6"
+      sources."unc-path-regex-0.1.2"
+      sources."unique-stream-2.3.1"
+      sources."unix-dgram-2.0.3"
+      sources."uri-js-4.2.2"
+      sources."util-deprecate-1.0.2"
+      (sources."winston-3.3.3" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."winston-syslog-2.4.4"
+      sources."winston-transport-4.4.0"
+      sources."wrappy-1.0.2"
+      sources."ws-7.3.1"
+      sources."xtend-4.0.2"
+      (sources."zigbee-herdsman-0.12.127" // {
+        dependencies = [
+          sources."@babel/cli-7.10.5"
+          sources."@babel/code-frame-7.10.4"
+          sources."@babel/compat-data-7.11.0"
+          sources."@babel/core-7.11.4"
+          sources."@babel/generator-7.11.4"
+          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.10.4"
+          sources."@babel/helper-create-class-features-plugin-7.10.5"
+          sources."@babel/helper-create-regexp-features-plugin-7.10.4"
+          sources."@babel/helper-define-map-7.10.5"
+          sources."@babel/helper-explode-assignable-expression-7.11.4"
+          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.11.0"
+          sources."@babel/helper-module-imports-7.10.4"
+          sources."@babel/helper-module-transforms-7.11.0"
+          sources."@babel/helper-optimise-call-expression-7.10.4"
+          sources."@babel/helper-plugin-utils-7.10.4"
+          sources."@babel/helper-regex-7.10.5"
+          sources."@babel/helper-remap-async-to-generator-7.11.4"
+          sources."@babel/helper-replace-supers-7.10.4"
+          sources."@babel/helper-simple-access-7.10.4"
+          sources."@babel/helper-skip-transparent-expression-wrappers-7.11.0"
+          sources."@babel/helper-split-export-declaration-7.11.0"
+          sources."@babel/helper-validator-identifier-7.10.4"
+          sources."@babel/helper-wrap-function-7.10.4"
+          sources."@babel/helpers-7.10.4"
+          sources."@babel/highlight-7.10.4"
+          sources."@babel/parser-7.11.4"
+          sources."@babel/plugin-proposal-async-generator-functions-7.10.5"
+          sources."@babel/plugin-proposal-class-properties-7.10.4"
+          sources."@babel/plugin-proposal-dynamic-import-7.10.4"
+          sources."@babel/plugin-proposal-export-namespace-from-7.10.4"
+          sources."@babel/plugin-proposal-json-strings-7.10.4"
+          sources."@babel/plugin-proposal-logical-assignment-operators-7.11.0"
+          sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.4"
+          sources."@babel/plugin-proposal-numeric-separator-7.10.4"
+          sources."@babel/plugin-proposal-object-rest-spread-7.11.0"
+          sources."@babel/plugin-proposal-optional-catch-binding-7.10.4"
+          sources."@babel/plugin-proposal-optional-chaining-7.11.0"
+          sources."@babel/plugin-proposal-private-methods-7.10.4"
+          sources."@babel/plugin-proposal-unicode-property-regex-7.10.4"
+          sources."@babel/plugin-syntax-async-generators-7.8.4"
+          sources."@babel/plugin-syntax-bigint-7.8.3"
+          sources."@babel/plugin-syntax-class-properties-7.10.4"
+          sources."@babel/plugin-syntax-dynamic-import-7.8.3"
+          sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
+          sources."@babel/plugin-syntax-import-meta-7.10.4"
+          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.10.4"
+          sources."@babel/plugin-syntax-typescript-7.10.4"
+          sources."@babel/plugin-transform-arrow-functions-7.10.4"
+          sources."@babel/plugin-transform-async-to-generator-7.10.4"
+          sources."@babel/plugin-transform-block-scoped-functions-7.10.4"
+          sources."@babel/plugin-transform-block-scoping-7.11.1"
+          sources."@babel/plugin-transform-classes-7.10.4"
+          sources."@babel/plugin-transform-computed-properties-7.10.4"
+          sources."@babel/plugin-transform-destructuring-7.10.4"
+          sources."@babel/plugin-transform-dotall-regex-7.10.4"
+          sources."@babel/plugin-transform-duplicate-keys-7.10.4"
+          sources."@babel/plugin-transform-exponentiation-operator-7.10.4"
+          sources."@babel/plugin-transform-for-of-7.10.4"
+          sources."@babel/plugin-transform-function-name-7.10.4"
+          sources."@babel/plugin-transform-literals-7.10.4"
+          sources."@babel/plugin-transform-member-expression-literals-7.10.4"
+          sources."@babel/plugin-transform-modules-amd-7.10.5"
+          sources."@babel/plugin-transform-modules-commonjs-7.10.4"
+          sources."@babel/plugin-transform-modules-systemjs-7.10.5"
+          sources."@babel/plugin-transform-modules-umd-7.10.4"
+          sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.4"
+          sources."@babel/plugin-transform-new-target-7.10.4"
+          sources."@babel/plugin-transform-object-super-7.10.4"
+          sources."@babel/plugin-transform-parameters-7.10.5"
+          sources."@babel/plugin-transform-property-literals-7.10.4"
+          sources."@babel/plugin-transform-regenerator-7.10.4"
+          sources."@babel/plugin-transform-reserved-words-7.10.4"
+          sources."@babel/plugin-transform-shorthand-properties-7.10.4"
+          sources."@babel/plugin-transform-spread-7.11.0"
+          sources."@babel/plugin-transform-sticky-regex-7.10.4"
+          sources."@babel/plugin-transform-template-literals-7.10.5"
+          sources."@babel/plugin-transform-typeof-symbol-7.10.4"
+          sources."@babel/plugin-transform-typescript-7.11.0"
+          sources."@babel/plugin-transform-unicode-escapes-7.10.4"
+          sources."@babel/plugin-transform-unicode-regex-7.10.4"
+          sources."@babel/preset-env-7.11.0"
+          sources."@babel/preset-modules-0.1.4"
+          sources."@babel/preset-typescript-7.10.4"
+          sources."@babel/runtime-7.11.2"
+          sources."@babel/template-7.10.4"
+          sources."@babel/traverse-7.11.0"
+          sources."@babel/types-7.11.0"
+          sources."@bcoe/v8-coverage-0.2.3"
+          sources."@cnakazawa/watch-1.0.4"
+          sources."@istanbuljs/load-nyc-config-1.1.0"
+          sources."@istanbuljs/schema-0.1.2"
+          (sources."@jest/console-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."slash-3.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."@jest/core-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."braces-3.0.2"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."fill-range-7.0.1"
+              sources."has-flag-4.0.0"
+              sources."is-number-7.0.0"
+              sources."micromatch-4.0.2"
+              sources."rimraf-3.0.2"
+              sources."slash-3.0.0"
+              sources."strip-ansi-6.0.0"
+              sources."supports-color-7.2.0"
+              sources."to-regex-range-5.0.1"
+            ];
+          })
+          (sources."@jest/environment-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              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."@jest/fake-timers-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              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."@jest/globals-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              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."@jest/reporters-26.4.1" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."slash-3.0.0"
+              sources."source-map-0.6.1"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."@jest/source-map-26.3.0" // {
+            dependencies = [
+              sources."source-map-0.6.1"
+            ];
+          })
+          (sources."@jest/test-result-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              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."@jest/test-sequencer-26.4.2"
+          (sources."@jest/transform-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."braces-3.0.2"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."fill-range-7.0.1"
+              sources."has-flag-4.0.0"
+              sources."is-number-7.0.0"
+              sources."micromatch-4.0.2"
+              sources."slash-3.0.0"
+              sources."source-map-0.6.1"
+              sources."supports-color-7.2.0"
+              sources."to-regex-range-5.0.1"
+            ];
+          })
+          (sources."@jest/types-25.5.0" // {
+            dependencies = [
+              sources."ansi-styles-4.2.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."supports-color-7.2.0"
+            ];
+          })
+          sources."@serialport/binding-abstract-9.0.1"
+          sources."@serialport/binding-mock-9.0.1"
+          sources."@serialport/bindings-9.0.1"
+          sources."@serialport/parser-byte-length-9.0.1"
+          sources."@serialport/parser-cctalk-9.0.1"
+          sources."@serialport/parser-delimiter-9.0.1"
+          sources."@serialport/parser-readline-9.0.1"
+          sources."@serialport/parser-ready-9.0.1"
+          sources."@serialport/parser-regex-9.0.1"
+          sources."@serialport/stream-9.0.1"
+          sources."@sinonjs/commons-1.8.1"
+          sources."@sinonjs/fake-timers-6.0.1"
+          sources."@types/babel__core-7.1.9"
+          sources."@types/babel__generator-7.6.1"
+          sources."@types/babel__template-7.0.2"
+          sources."@types/babel__traverse-7.0.13"
+          sources."@types/color-name-1.1.1"
+          sources."@types/debug-4.1.5"
+          sources."@types/eslint-visitor-keys-1.0.0"
+          sources."@types/graceful-fs-4.1.3"
+          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/jest-26.0.10"
+          sources."@types/json-schema-7.0.5"
+          sources."@types/nedb-1.8.10"
+          sources."@types/node-14.6.2"
+          sources."@types/normalize-package-data-2.4.0"
+          sources."@types/prettier-2.1.0"
+          sources."@types/serialport-8.0.1"
+          sources."@types/stack-utils-1.0.1"
+          sources."@types/yargs-15.0.5"
+          sources."@types/yargs-parser-15.0.0"
+          (sources."@typescript-eslint/eslint-plugin-3.10.1" // {
+            dependencies = [
+              sources."semver-7.3.2"
+            ];
+          })
+          sources."@typescript-eslint/experimental-utils-3.10.1"
+          sources."@typescript-eslint/parser-3.10.1"
+          sources."@typescript-eslint/types-3.10.1"
+          (sources."@typescript-eslint/typescript-estree-3.10.1" // {
+            dependencies = [
+              sources."semver-7.3.2"
+            ];
+          })
+          sources."@typescript-eslint/visitor-keys-3.10.1"
+          sources."abab-2.0.4"
+          sources."acorn-7.4.0"
+          sources."acorn-globals-6.0.0"
+          sources."acorn-jsx-5.2.0"
+          sources."acorn-walk-7.2.0"
+          sources."ajv-6.12.4"
+          sources."ansi-colors-4.1.1"
+          (sources."ansi-escapes-4.3.1" // {
+            dependencies = [
+              sources."type-fest-0.11.0"
+            ];
+          })
+          sources."ansi-regex-2.1.1"
+          sources."ansi-styles-3.2.1"
+          (sources."anymatch-2.0.0" // {
+            dependencies = [
+              sources."normalize-path-2.1.1"
+            ];
+          })
+          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-unique-0.3.2"
+          sources."asn1-0.2.4"
+          sources."assert-plus-1.0.0"
+          sources."assign-symbols-1.0.0"
+          sources."astral-regex-1.0.0"
+          sources."async-each-1.0.3"
+          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.10.1"
+          (sources."babel-jest-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."slash-3.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."babel-plugin-dynamic-import-node-2.3.3"
+          sources."babel-plugin-istanbul-6.0.0"
+          sources."babel-plugin-jest-hoist-26.2.0"
+          sources."babel-preset-current-node-syntax-0.1.3"
+          sources."babel-preset-jest-26.3.0"
+          sources."balanced-match-1.0.0"
+          (sources."base-0.11.2" // {
+            dependencies = [
+              sources."define-property-1.0.0"
+              sources."is-accessor-descriptor-1.0.0"
+              sources."is-data-descriptor-1.0.0"
+              sources."is-descriptor-1.0.2"
+              sources."is-extendable-1.0.1"
+              sources."mixin-deep-1.3.2"
+            ];
+          })
+          sources."base64-js-1.3.1"
+          sources."bcrypt-pbkdf-1.0.2"
+          sources."binary-extensions-1.13.1"
+          sources."bindings-1.5.0"
+          (sources."bl-4.0.3" // {
+            dependencies = [
+              sources."readable-stream-3.6.0"
+            ];
+          })
+          sources."brace-expansion-1.1.11"
+          (sources."braces-2.3.2" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."browser-process-hrtime-1.0.0"
+          sources."browserslist-4.14.0"
+          sources."bser-2.1.1"
+          sources."buffer-5.6.0"
+          sources."buffer-from-1.1.1"
+          sources."cache-base-1.0.1"
+          sources."callsites-3.1.0"
+          sources."camelcase-5.3.1"
+          sources."caniuse-lite-1.0.30001119"
+          sources."capture-exit-2.0.0"
+          sources."caseless-0.12.0"
+          sources."chalk-2.4.2"
+          sources."char-regex-1.0.2"
+          sources."chokidar-2.1.8"
+          sources."chownr-1.1.4"
+          sources."ci-info-2.0.0"
+          (sources."class-utils-0.3.6" // {
+            dependencies = [
+              sources."define-property-0.2.5"
+            ];
+          })
+          (sources."cliui-6.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.0"
+              sources."strip-ansi-6.0.0"
+            ];
+          })
+          sources."co-4.6.0"
+          sources."code-point-at-1.1.0"
+          sources."collect-v8-coverage-1.0.1"
+          sources."collection-visit-1.0.0"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."combined-stream-1.0.8"
+          sources."commander-4.1.1"
+          sources."component-emitter-1.3.0"
+          sources."concat-map-0.0.1"
+          sources."console-control-strings-1.1.0"
+          sources."convert-source-map-1.7.0"
+          sources."copy-descriptor-0.1.1"
+          (sources."core-js-compat-3.6.5" // {
+            dependencies = [
+              sources."semver-7.0.0"
+            ];
+          })
+          sources."core-util-is-1.0.2"
+          sources."cross-spawn-6.0.5"
+          sources."cssom-0.4.4"
+          (sources."cssstyle-2.3.0" // {
+            dependencies = [
+              sources."cssom-0.3.8"
+            ];
+          })
+          sources."dashdash-1.14.1"
+          sources."data-urls-2.0.0"
+          sources."debug-4.1.1"
+          sources."decamelize-1.2.0"
+          sources."decimal.js-10.2.0"
+          sources."decode-uri-component-0.2.0"
+          sources."decompress-response-4.2.1"
+          sources."deep-extend-0.6.0"
+          sources."deep-is-0.1.3"
+          sources."deepmerge-4.2.2"
+          sources."define-properties-1.1.3"
+          (sources."define-property-2.0.2" // {
+            dependencies = [
+              sources."is-accessor-descriptor-1.0.0"
+              sources."is-data-descriptor-1.0.0"
+              sources."is-descriptor-1.0.2"
+            ];
+          })
+          sources."delayed-stream-1.0.0"
+          sources."delegates-1.0.0"
+          sources."detect-libc-1.0.3"
+          sources."detect-newline-3.1.0"
+          sources."diff-sequences-25.2.6"
+          sources."doctrine-3.0.0"
+          (sources."domexception-2.0.1" // {
+            dependencies = [
+              sources."webidl-conversions-5.0.0"
+            ];
+          })
+          sources."ecc-jsbn-0.1.2"
+          sources."electron-to-chromium-1.3.555"
+          sources."emittery-0.7.1"
+          sources."emoji-regex-7.0.3"
+          sources."end-of-stream-1.4.4"
+          sources."enquirer-2.3.6"
+          sources."error-ex-1.3.2"
+          sources."escalade-3.0.2"
+          sources."escape-string-regexp-1.0.5"
+          (sources."escodegen-1.14.3" // {
+            dependencies = [
+              sources."levn-0.3.0"
+              sources."optionator-0.8.3"
+              sources."prelude-ls-1.1.2"
+              sources."source-map-0.6.1"
+              sources."type-check-0.3.2"
+            ];
+          })
+          (sources."eslint-7.7.0" // {
+            dependencies = [
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."cross-spawn-7.0.3"
+              sources."glob-parent-5.1.1"
+              sources."globals-12.4.0"
+              sources."has-flag-4.0.0"
+              sources."path-key-3.1.1"
+              sources."semver-7.3.2"
+              sources."shebang-command-2.0.0"
+              sources."shebang-regex-3.0.0"
+              sources."strip-ansi-6.0.0"
+              sources."strip-json-comments-3.1.1"
+              sources."supports-color-7.2.0"
+              sources."which-2.0.2"
+            ];
+          })
+          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.2.1"
+          sources."estraverse-4.3.0"
+          sources."esutils-2.0.3"
+          sources."exec-sh-0.3.4"
+          sources."execa-1.0.0"
+          sources."exit-0.1.2"
+          (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."ms-2.0.0"
+            ];
+          })
+          sources."expand-template-2.0.3"
+          (sources."expect-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."jest-get-type-26.3.0"
+              sources."supports-color-7.2.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."is-accessor-descriptor-1.0.0"
+              sources."is-data-descriptor-1.0.0"
+              sources."is-descriptor-1.0.2"
+            ];
+          })
+          sources."extsprintf-1.3.0"
+          sources."fast-deep-equal-3.1.3"
+          sources."fast-json-stable-stringify-2.1.0"
+          sources."fast-levenshtein-2.0.6"
+          sources."fb-watchman-2.0.1"
+          sources."file-entry-cache-5.0.1"
+          sources."file-uri-to-path-1.0.0"
+          (sources."fill-range-4.0.0" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."find-up-4.1.0"
+          sources."flat-cache-2.0.1"
+          sources."flatted-2.0.2"
+          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-readdir-recursive-1.1.0"
+          sources."fs.realpath-1.0.0"
+          sources."fsevents-1.2.13"
+          sources."function-bind-1.1.1"
+          sources."functional-red-black-tree-1.0.1"
+          sources."gauge-2.7.4"
+          sources."gensync-1.0.0-beta.1"
+          sources."get-caller-file-2.0.5"
+          sources."get-package-type-0.1.0"
+          sources."get-stream-4.1.0"
+          sources."get-value-2.0.6"
+          sources."getpass-0.1.7"
+          sources."github-from-package-0.0.0"
+          sources."glob-7.1.6"
+          (sources."glob-parent-3.1.0" // {
+            dependencies = [
+              sources."is-glob-3.1.0"
+            ];
+          })
+          sources."globals-11.12.0"
+          sources."graceful-fs-4.2.4"
+          sources."growly-1.3.0"
+          (sources."handlebars-4.7.6" // {
+            dependencies = [
+              sources."source-map-0.6.1"
+            ];
+          })
+          sources."har-schema-2.0.0"
+          sources."har-validator-5.1.5"
+          sources."has-flag-3.0.0"
+          sources."has-symbols-1.0.1"
+          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."highlight.js-10.1.2"
+          sources."hosted-git-info-2.8.8"
+          sources."html-encoding-sniffer-2.0.1"
+          sources."html-escaper-2.0.2"
+          sources."http-signature-1.2.0"
+          sources."human-signals-1.1.1"
+          sources."iconv-lite-0.4.24"
+          sources."ieee754-1.1.13"
+          sources."ignore-4.0.6"
+          (sources."import-fresh-3.2.1" // {
+            dependencies = [
+              sources."resolve-from-4.0.0"
+            ];
+          })
+          sources."import-local-3.0.2"
+          sources."imurmurhash-0.1.4"
+          sources."inflight-1.0.6"
+          sources."inherits-2.0.4"
+          sources."ini-1.3.5"
+          sources."interpret-1.4.0"
+          sources."invariant-2.2.4"
+          sources."ip-regex-2.1.0"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-arrayish-0.2.1"
+          sources."is-binary-path-1.0.1"
+          sources."is-buffer-1.1.6"
+          sources."is-ci-2.0.0"
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-5.1.0"
+            ];
+          })
+          sources."is-docker-2.1.1"
+          sources."is-extendable-0.1.1"
+          sources."is-extglob-2.1.1"
+          sources."is-fullwidth-code-point-1.0.0"
+          sources."is-generator-fn-2.1.0"
+          sources."is-glob-4.0.1"
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-plain-object-2.0.4"
+          sources."is-potential-custom-element-name-1.0.0"
+          sources."is-stream-1.1.0"
+          sources."is-typedarray-1.0.0"
+          sources."is-windows-1.0.2"
+          sources."is-wsl-2.2.0"
+          sources."isarray-1.0.0"
+          sources."isexe-2.0.0"
+          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-report-3.0.0" // {
+            dependencies = [
+              sources."has-flag-4.0.0"
+              sources."make-dir-3.1.0"
+              sources."semver-6.3.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."istanbul-lib-source-maps-4.0.0" // {
+            dependencies = [
+              sources."source-map-0.6.1"
+            ];
+          })
+          sources."istanbul-reports-3.0.2"
+          (sources."jest-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."jest-cli-26.4.2"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-changed-files-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."cross-spawn-7.0.3"
+              sources."execa-4.0.3"
+              sources."get-stream-5.2.0"
+              sources."has-flag-4.0.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."supports-color-7.2.0"
+              sources."which-2.0.2"
+            ];
+          })
+          (sources."jest-config-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."braces-3.0.2"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."fill-range-7.0.1"
+              sources."has-flag-4.0.0"
+              sources."is-number-7.0.0"
+              sources."jest-get-type-26.3.0"
+              sources."micromatch-4.0.2"
+              sources."pretty-format-26.4.2"
+              sources."supports-color-7.2.0"
+              sources."to-regex-range-5.0.1"
+            ];
+          })
+          (sources."jest-diff-25.5.0" // {
+            dependencies = [
+              sources."ansi-styles-4.2.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."supports-color-7.2.0"
+            ];
+          })
+          sources."jest-docblock-26.0.0"
+          (sources."jest-each-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."jest-get-type-26.3.0"
+              sources."pretty-format-26.4.2"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-environment-jsdom-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              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."jest-environment-node-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              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."jest-get-type-25.2.6"
+          (sources."jest-haste-map-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."anymatch-3.1.1"
+              sources."braces-3.0.2"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."fill-range-7.0.1"
+              sources."fsevents-2.1.3"
+              sources."has-flag-4.0.0"
+              sources."is-number-7.0.0"
+              sources."micromatch-4.0.2"
+              sources."supports-color-7.2.0"
+              sources."to-regex-range-5.0.1"
+            ];
+          })
+          (sources."jest-jasmine2-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."pretty-format-26.4.2"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-leak-detector-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."jest-get-type-26.3.0"
+              sources."pretty-format-26.4.2"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-matcher-utils-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."diff-sequences-26.3.0"
+              sources."has-flag-4.0.0"
+              sources."jest-diff-26.4.2"
+              sources."jest-get-type-26.3.0"
+              sources."pretty-format-26.4.2"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-message-util-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."braces-3.0.2"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."fill-range-7.0.1"
+              sources."has-flag-4.0.0"
+              sources."is-number-7.0.0"
+              sources."micromatch-4.0.2"
+              sources."slash-3.0.0"
+              sources."supports-color-7.2.0"
+              sources."to-regex-range-5.0.1"
+            ];
+          })
+          (sources."jest-mock-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              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."jest-pnp-resolver-1.2.2"
+          sources."jest-regex-util-26.0.0"
+          (sources."jest-resolve-26.4.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."slash-3.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-resolve-dependencies-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              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."jest-runner-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              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."jest-runtime-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."slash-3.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."jest-serializer-26.3.0"
+          (sources."jest-snapshot-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."diff-sequences-26.3.0"
+              sources."has-flag-4.0.0"
+              sources."jest-diff-26.4.2"
+              sources."jest-get-type-26.3.0"
+              sources."pretty-format-26.4.2"
+              sources."semver-7.3.2"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-util-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."braces-3.0.2"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."fill-range-7.0.1"
+              sources."has-flag-4.0.0"
+              sources."is-number-7.0.0"
+              sources."micromatch-4.0.2"
+              sources."supports-color-7.2.0"
+              sources."to-regex-range-5.0.1"
+            ];
+          })
+          (sources."jest-validate-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."camelcase-6.0.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."jest-get-type-26.3.0"
+              sources."pretty-format-26.4.2"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-watcher-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              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."jest-worker-26.3.0" // {
+            dependencies = [
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."js-tokens-4.0.0"
+          sources."js-yaml-3.14.0"
+          sources."jsbn-0.1.1"
+          sources."jsdom-16.4.0"
+          sources."jsesc-2.5.2"
+          sources."json-parse-even-better-errors-2.3.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."json5-2.1.3"
+          sources."jsonfile-6.0.1"
+          sources."jsprim-1.4.1"
+          sources."kind-of-6.0.3"
+          sources."kleur-3.0.3"
+          sources."leven-3.1.0"
+          sources."levenary-1.1.1"
+          sources."levn-0.4.1"
+          sources."lines-and-columns-1.1.6"
+          sources."locate-path-5.0.0"
+          sources."lodash-4.17.20"
+          sources."lodash.sortby-4.7.0"
+          sources."loose-envify-1.4.0"
+          sources."lunr-2.3.9"
+          sources."make-dir-2.1.0"
+          sources."makeerror-1.0.11"
+          sources."map-cache-0.2.2"
+          sources."map-visit-1.0.0"
+          sources."marked-1.1.1"
+          sources."merge-stream-2.0.0"
+          sources."micromatch-3.1.10"
+          sources."mime-db-1.44.0"
+          sources."mime-types-2.1.27"
+          sources."mimic-fn-2.1.0"
+          sources."mimic-response-2.1.0"
+          sources."minimatch-3.0.4"
+          sources."minimist-1.2.5"
+          sources."mixin-deep-2.0.1"
+          sources."mkdirp-0.5.5"
+          sources."mkdirp-classic-0.5.3"
+          sources."ms-2.1.2"
+          sources."nan-2.14.1"
+          sources."nanomatch-1.2.13"
+          sources."napi-build-utils-1.0.2"
+          sources."natural-compare-1.4.0"
+          sources."neo-async-2.6.2"
+          sources."nice-try-1.0.5"
+          sources."node-abi-2.19.1"
+          sources."node-int64-0.4.0"
+          sources."node-modules-regexp-1.0.0"
+          (sources."node-notifier-8.0.0" // {
+            dependencies = [
+              sources."semver-7.3.2"
+              sources."which-2.0.2"
+            ];
+          })
+          sources."node-releases-1.1.60"
+          sources."noop-logger-0.1.1"
+          sources."normalize-package-data-2.5.0"
+          sources."normalize-path-3.0.0"
+          sources."npm-run-path-2.0.2"
+          sources."npmlog-4.1.2"
+          sources."number-is-nan-1.0.1"
+          sources."nwsapi-2.2.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."kind-of-3.2.2"
+            ];
+          })
+          sources."object-keys-1.1.1"
+          sources."object-visit-1.0.1"
+          sources."object.assign-4.1.0"
+          sources."object.pick-1.3.0"
+          sources."once-1.4.0"
+          sources."onetime-5.1.2"
+          sources."optionator-0.9.1"
+          sources."p-each-series-2.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."parent-module-1.0.1"
+          sources."parse-json-5.1.0"
+          sources."parse5-5.1.1"
+          sources."pascalcase-0.1.1"
+          sources."path-dirname-1.0.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."performance-now-2.1.0"
+          sources."picomatch-2.2.2"
+          sources."pify-4.0.1"
+          sources."pirates-4.0.1"
+          sources."pkg-dir-4.2.0"
+          sources."posix-character-classes-0.1.1"
+          sources."prebuild-install-5.3.5"
+          sources."prelude-ls-1.2.1"
+          (sources."pretty-format-25.5.0" // {
+            dependencies = [
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+            ];
+          })
+          sources."process-nextick-args-2.0.1"
+          sources."progress-2.0.3"
+          sources."prompts-2.3.2"
+          sources."psl-1.8.0"
+          sources."pump-3.0.0"
+          sources."punycode-2.1.1"
+          sources."qs-6.5.2"
+          sources."rc-1.2.8"
+          sources."react-is-16.13.1"
+          (sources."read-pkg-5.2.0" // {
+            dependencies = [
+              sources."type-fest-0.6.0"
+            ];
+          })
+          sources."read-pkg-up-7.0.1"
+          sources."readable-stream-2.3.7"
+          sources."readdirp-2.2.1"
+          sources."rechoir-0.6.2"
+          sources."regenerate-1.4.1"
+          sources."regenerate-unicode-properties-8.2.0"
+          sources."regenerator-runtime-0.13.7"
+          sources."regenerator-transform-0.14.5"
+          sources."regex-not-1.0.2"
+          sources."regexpp-3.1.0"
+          sources."regexpu-core-4.7.0"
+          sources."regjsgen-0.5.2"
+          (sources."regjsparser-0.6.4" // {
+            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" // {
+            dependencies = [
+              sources."tough-cookie-2.5.0"
+              sources."uuid-3.4.0"
+            ];
+          })
+          sources."request-promise-core-1.1.4"
+          (sources."request-promise-native-1.0.9" // {
+            dependencies = [
+              sources."tough-cookie-2.5.0"
+            ];
+          })
+          sources."require-directory-2.1.1"
+          sources."require-main-filename-2.0.0"
+          sources."resolve-1.17.0"
+          sources."resolve-cwd-3.0.0"
+          sources."resolve-from-5.0.0"
+          sources."resolve-url-0.2.1"
+          sources."ret-0.1.15"
+          sources."rimraf-2.6.3"
+          sources."rsvp-4.8.5"
+          sources."safe-buffer-5.1.2"
+          sources."safe-regex-1.1.0"
+          sources."safer-buffer-2.1.2"
+          sources."sane-4.1.0"
+          sources."saxes-5.0.1"
+          sources."semver-5.7.1"
+          sources."serialport-9.0.1"
+          sources."set-blocking-2.0.0"
+          (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."shelljs-0.8.4"
+          sources."shellwords-0.1.1"
+          sources."signal-exit-3.0.3"
+          sources."simple-concat-1.0.1"
+          sources."simple-get-3.1.0"
+          sources."sisteransi-1.0.5"
+          sources."slash-2.0.0"
+          (sources."slice-ansi-2.1.0" // {
+            dependencies = [
+              sources."is-fullwidth-code-point-2.0.0"
+            ];
+          })
+          sources."slip-1.0.2"
+          (sources."snapdragon-0.8.2" // {
+            dependencies = [
+              sources."debug-2.6.9"
+              sources."define-property-0.2.5"
+              sources."extend-shallow-2.0.1"
+              sources."ms-2.0.0"
+            ];
+          })
+          (sources."snapdragon-node-2.1.1" // {
+            dependencies = [
+              sources."define-property-1.0.0"
+              sources."is-accessor-descriptor-1.0.0"
+              sources."is-data-descriptor-1.0.0"
+              sources."is-descriptor-1.0.2"
+            ];
+          })
+          (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-support-0.5.19" // {
+            dependencies = [
+              sources."source-map-0.6.1"
+            ];
+          })
+          sources."source-map-url-0.4.0"
+          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.5"
+          sources."split-string-3.1.0"
+          sources."sprintf-js-1.0.3"
+          sources."sshpk-1.16.1"
+          (sources."stack-utils-2.0.2" // {
+            dependencies = [
+              sources."escape-string-regexp-2.0.0"
+            ];
+          })
+          (sources."static-extend-0.1.2" // {
+            dependencies = [
+              sources."define-property-0.2.5"
+            ];
+          })
+          sources."stealthy-require-1.1.1"
+          (sources."string-length-4.0.1" // {
+            dependencies = [
+              sources."ansi-regex-5.0.0"
+              sources."strip-ansi-6.0.0"
+            ];
+          })
+          sources."string-width-1.0.2"
+          sources."string_decoder-1.1.1"
+          sources."strip-ansi-3.0.1"
+          sources."strip-bom-4.0.0"
+          sources."strip-eof-1.0.0"
+          sources."strip-final-newline-2.0.0"
+          sources."strip-json-comments-2.0.1"
+          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."symbol-tree-3.2.4"
+          (sources."table-5.4.6" // {
+            dependencies = [
+              sources."ansi-regex-4.1.0"
+              sources."is-fullwidth-code-point-2.0.0"
+              sources."string-width-3.1.0"
+              sources."strip-ansi-5.2.0"
+            ];
+          })
+          sources."tar-fs-2.1.0"
+          (sources."tar-stream-2.1.3" // {
+            dependencies = [
+              sources."readable-stream-3.6.0"
+            ];
+          })
+          sources."terminal-link-2.1.1"
+          sources."test-exclude-6.0.0"
+          sources."text-table-0.2.0"
+          sources."throat-5.0.0"
+          sources."tmpl-1.0.4"
+          sources."to-fast-properties-2.0.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."tough-cookie-3.0.1"
+          sources."tr46-2.0.2"
+          sources."tslib-1.13.0"
+          sources."tsutils-3.17.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."typedarray-to-buffer-3.1.5"
+          sources."typedoc-0.19.0"
+          sources."typedoc-default-themes-0.11.1"
+          sources."typedoc-plugin-markdown-2.4.2"
+          sources."typedoc-plugin-no-inherit-1.1.10"
+          sources."typedoc-plugin-sourcefile-url-1.0.6"
+          sources."typescript-4.0.2"
+          sources."uglify-js-3.10.2"
+          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."universalify-1.0.0"
+          (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."uri-js-4.2.2"
+          sources."urix-0.1.0"
+          sources."use-3.1.1"
+          sources."util-deprecate-1.0.2"
+          sources."uuid-8.3.0"
+          sources."v8-compile-cache-2.1.1"
+          (sources."v8-to-istanbul-5.0.1" // {
+            dependencies = [
+              sources."source-map-0.7.3"
+            ];
+          })
+          sources."validate-npm-package-license-3.0.4"
+          sources."verror-1.10.0"
+          sources."w3c-hr-time-1.0.2"
+          sources."w3c-xmlserializer-2.0.0"
+          sources."walker-1.0.7"
+          sources."webidl-conversions-6.1.0"
+          sources."whatwg-encoding-1.0.5"
+          sources."whatwg-mimetype-2.3.0"
+          sources."whatwg-url-8.2.1"
+          sources."which-1.3.1"
+          sources."which-module-2.0.0"
+          sources."which-pm-runs-1.0.0"
+          sources."wide-align-1.1.3"
+          sources."word-wrap-1.2.3"
+          sources."wordwrap-1.0.0"
+          (sources."wrap-ansi-6.2.0" // {
+            dependencies = [
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."color-convert-2.0.1"
+              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."strip-ansi-6.0.0"
+            ];
+          })
+          sources."wrappy-1.0.2"
+          sources."write-1.0.3"
+          sources."write-file-atomic-3.0.3"
+          sources."ws-7.3.1"
+          sources."xml-name-validator-3.0.0"
+          sources."xmlchars-2.2.0"
+          sources."y18n-4.0.0"
+          (sources."yargs-15.4.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.0"
+              sources."strip-ansi-6.0.0"
+            ];
+          })
+          sources."yargs-parser-18.1.3"
+        ];
+      })
+      (sources."zigbee-herdsman-converters-12.0.178" // {
+        dependencies = [
+          sources."@babel/code-frame-7.10.4"
+          (sources."@babel/core-7.11.4" // {
+            dependencies = [
+              sources."semver-5.7.1"
+              sources."source-map-0.5.7"
+            ];
+          })
+          (sources."@babel/generator-7.11.4" // {
+            dependencies = [
+              sources."source-map-0.5.7"
+            ];
+          })
+          sources."@babel/helper-function-name-7.10.4"
+          sources."@babel/helper-get-function-arity-7.10.4"
+          sources."@babel/helper-member-expression-to-functions-7.11.0"
+          sources."@babel/helper-module-imports-7.10.4"
+          sources."@babel/helper-module-transforms-7.11.0"
+          sources."@babel/helper-optimise-call-expression-7.10.4"
+          sources."@babel/helper-plugin-utils-7.10.4"
+          sources."@babel/helper-replace-supers-7.10.4"
+          sources."@babel/helper-simple-access-7.10.4"
+          sources."@babel/helper-split-export-declaration-7.11.0"
+          sources."@babel/helper-validator-identifier-7.10.4"
+          sources."@babel/helpers-7.10.4"
+          (sources."@babel/highlight-7.10.4" // {
+            dependencies = [
+              sources."chalk-2.4.2"
+            ];
+          })
+          sources."@babel/parser-7.11.4"
+          sources."@babel/plugin-syntax-async-generators-7.8.4"
+          sources."@babel/plugin-syntax-bigint-7.8.3"
+          sources."@babel/plugin-syntax-class-properties-7.10.4"
+          sources."@babel/plugin-syntax-import-meta-7.10.4"
+          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/template-7.10.4"
+          (sources."@babel/traverse-7.11.0" // {
+            dependencies = [
+              sources."globals-11.12.0"
+            ];
+          })
+          sources."@babel/types-7.11.0"
+          sources."@bcoe/v8-coverage-0.2.3"
+          sources."@cnakazawa/watch-1.0.4"
+          (sources."@istanbuljs/load-nyc-config-1.1.0" // {
+            dependencies = [
+              sources."resolve-from-5.0.0"
+            ];
+          })
+          sources."@istanbuljs/schema-0.1.2"
+          sources."@jest/console-26.3.0"
+          (sources."@jest/core-26.4.2" // {
+            dependencies = [
+              sources."rimraf-3.0.2"
+            ];
+          })
+          sources."@jest/environment-26.3.0"
+          sources."@jest/fake-timers-26.3.0"
+          sources."@jest/globals-26.4.2"
+          sources."@jest/reporters-26.4.1"
+          sources."@jest/source-map-26.3.0"
+          sources."@jest/test-result-26.3.0"
+          sources."@jest/test-sequencer-26.4.2"
+          sources."@jest/transform-26.3.0"
+          sources."@jest/types-26.3.0"
+          sources."@sinonjs/commons-1.8.1"
+          sources."@sinonjs/fake-timers-6.0.1"
+          sources."@types/babel__core-7.1.9"
+          sources."@types/babel__generator-7.6.1"
+          sources."@types/babel__template-7.0.2"
+          sources."@types/babel__traverse-7.0.13"
+          sources."@types/color-name-1.1.1"
+          sources."@types/graceful-fs-4.1.3"
+          sources."@types/istanbul-lib-coverage-2.0.3"
+          sources."@types/istanbul-lib-report-3.0.0"
+          sources."@types/istanbul-reports-3.0.0"
+          sources."@types/json-schema-7.0.5"
+          sources."@types/node-14.6.2"
+          sources."@types/normalize-package-data-2.4.0"
+          sources."@types/prettier-2.1.0"
+          sources."@types/stack-utils-1.0.1"
+          sources."@types/yargs-15.0.5"
+          sources."@types/yargs-parser-15.0.0"
+          sources."@typescript-eslint/experimental-utils-2.34.0"
+          sources."@typescript-eslint/typescript-estree-2.34.0"
+          sources."abab-2.0.4"
+          sources."acorn-7.4.0"
+          sources."acorn-globals-6.0.0"
+          sources."acorn-jsx-5.2.0"
+          sources."acorn-walk-7.2.0"
+          sources."agent-base-6.0.1"
+          sources."ajv-6.12.4"
+          sources."ansi-colors-4.1.1"
+          (sources."ansi-escapes-4.3.1" // {
+            dependencies = [
+              sources."type-fest-0.11.0"
+            ];
+          })
+          sources."ansi-regex-5.0.0"
+          sources."ansi-styles-3.2.1"
+          sources."anymatch-3.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-unique-0.3.2"
+          sources."asn1-0.2.4"
+          sources."assert-plus-1.0.0"
+          sources."assign-symbols-1.0.0"
+          sources."astral-regex-1.0.0"
+          sources."asynckit-0.4.0"
+          sources."atob-2.1.2"
+          sources."aws-sign2-0.7.0"
+          sources."aws4-1.10.1"
+          sources."axios-0.20.0"
+          sources."babel-jest-26.3.0"
+          sources."babel-plugin-istanbul-6.0.0"
+          sources."babel-plugin-jest-hoist-26.2.0"
+          sources."babel-preset-current-node-syntax-0.1.3"
+          sources."babel-preset-jest-26.3.0"
+          sources."balanced-match-1.0.0"
+          (sources."base-0.11.2" // {
+            dependencies = [
+              sources."define-property-1.0.0"
+              sources."is-accessor-descriptor-1.0.0"
+              sources."is-data-descriptor-1.0.0"
+              sources."is-descriptor-1.0.2"
+            ];
+          })
+          sources."base64-js-1.3.1"
+          sources."bcrypt-pbkdf-1.0.2"
+          sources."bl-4.0.3"
+          sources."brace-expansion-1.1.11"
+          sources."braces-3.0.2"
+          sources."browser-process-hrtime-1.0.0"
+          sources."bser-2.1.1"
+          sources."buffer-5.6.0"
+          sources."buffer-from-1.1.1"
+          sources."cache-base-1.0.1"
+          sources."callsites-3.1.0"
+          sources."camelcase-5.3.1"
+          sources."capture-exit-2.0.0"
+          sources."caseless-0.12.0"
+          (sources."chalk-4.1.0" // {
+            dependencies = [
+              sources."ansi-styles-4.2.1"
+              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."char-regex-1.0.2"
+          sources."ci-info-2.0.0"
+          (sources."class-utils-0.3.6" // {
+            dependencies = [
+              sources."define-property-0.2.5"
+            ];
+          })
+          (sources."cliui-6.0.0" // {
+            dependencies = [
+              sources."emoji-regex-8.0.0"
+              sources."is-fullwidth-code-point-3.0.0"
+              sources."string-width-4.2.0"
+            ];
+          })
+          sources."co-4.6.0"
+          sources."collect-v8-coverage-1.0.1"
+          sources."collection-visit-1.0.0"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."combined-stream-1.0.8"
+          sources."component-emitter-1.3.0"
+          sources."concat-map-0.0.1"
+          (sources."convert-source-map-1.7.0" // {
+            dependencies = [
+              sources."safe-buffer-5.1.2"
+            ];
+          })
+          sources."copy-descriptor-0.1.1"
+          sources."core-util-is-1.0.2"
+          sources."cross-spawn-7.0.3"
+          sources."cssom-0.4.4"
+          (sources."cssstyle-2.3.0" // {
+            dependencies = [
+              sources."cssom-0.3.8"
+            ];
+          })
+          sources."dashdash-1.14.1"
+          sources."data-urls-2.0.0"
+          sources."debug-4.1.1"
+          sources."decamelize-1.2.0"
+          sources."decimal.js-10.2.0"
+          sources."decode-uri-component-0.2.0"
+          sources."deep-is-0.1.3"
+          sources."deepmerge-4.2.2"
+          (sources."define-property-2.0.2" // {
+            dependencies = [
+              sources."is-accessor-descriptor-1.0.0"
+              sources."is-data-descriptor-1.0.0"
+              sources."is-descriptor-1.0.2"
+            ];
+          })
+          sources."delayed-stream-1.0.0"
+          sources."detect-newline-3.1.0"
+          sources."diff-sequences-26.3.0"
+          sources."doctrine-3.0.0"
+          (sources."domexception-2.0.1" // {
+            dependencies = [
+              sources."webidl-conversions-5.0.0"
+            ];
+          })
+          sources."ecc-jsbn-0.1.2"
+          sources."emittery-0.7.1"
+          sources."emoji-regex-7.0.3"
+          sources."end-of-stream-1.4.4"
+          sources."enquirer-2.3.6"
+          sources."error-ex-1.3.2"
+          sources."escape-string-regexp-1.0.5"
+          (sources."escodegen-1.14.3" // {
+            dependencies = [
+              sources."levn-0.3.0"
+              sources."optionator-0.8.3"
+              sources."prelude-ls-1.1.2"
+              sources."type-check-0.3.2"
+            ];
+          })
+          sources."eslint-7.7.0"
+          sources."eslint-config-google-0.14.0"
+          sources."eslint-plugin-jest-23.20.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.2.1"
+          sources."estraverse-4.3.0"
+          sources."esutils-2.0.3"
+          sources."exec-sh-0.3.4"
+          (sources."execa-1.0.0" // {
+            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."exit-0.1.2"
+          (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."ms-2.0.0"
+            ];
+          })
+          (sources."expect-26.4.2" // {
+            dependencies = [
+              sources."ansi-styles-4.2.1"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+            ];
+          })
+          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."is-accessor-descriptor-1.0.0"
+              sources."is-data-descriptor-1.0.0"
+              sources."is-descriptor-1.0.2"
+            ];
+          })
+          sources."extsprintf-1.3.0"
+          sources."fast-deep-equal-3.1.3"
+          sources."fast-json-stable-stringify-2.1.0"
+          sources."fast-levenshtein-2.0.6"
+          sources."fb-watchman-2.0.1"
+          sources."file-entry-cache-5.0.1"
+          sources."fill-range-7.0.1"
+          sources."find-up-4.1.0"
+          sources."flat-cache-2.0.1"
+          sources."flatted-2.0.2"
+          sources."follow-redirects-1.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.realpath-1.0.0"
+          sources."fsevents-2.1.3"
+          sources."functional-red-black-tree-1.0.1"
+          sources."gensync-1.0.0-beta.1"
+          sources."get-caller-file-2.0.5"
+          sources."get-package-type-0.1.0"
+          sources."get-stream-4.1.0"
+          sources."get-value-2.0.6"
+          sources."getpass-0.1.7"
+          sources."glob-7.1.6"
+          sources."glob-parent-5.1.1"
+          sources."globals-12.4.0"
+          sources."graceful-fs-4.2.4"
+          sources."growly-1.3.0"
+          sources."har-schema-2.0.0"
+          sources."har-validator-5.1.5"
+          sources."has-flag-3.0.0"
+          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."hosted-git-info-2.8.8"
+          sources."html-encoding-sniffer-2.0.1"
+          sources."html-escaper-2.0.2"
+          sources."http-signature-1.2.0"
+          sources."https-proxy-agent-5.0.0"
+          sources."human-signals-1.1.1"
+          sources."iconv-lite-0.4.24"
+          sources."ieee754-1.1.13"
+          sources."ignore-4.0.6"
+          sources."import-fresh-3.2.1"
+          sources."import-local-3.0.2"
+          sources."imurmurhash-0.1.4"
+          sources."inflight-1.0.6"
+          sources."inherits-2.0.4"
+          sources."ip-regex-2.1.0"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-arrayish-0.2.1"
+          sources."is-buffer-1.1.6"
+          sources."is-ci-2.0.0"
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-5.1.0"
+            ];
+          })
+          sources."is-docker-2.1.1"
+          sources."is-extendable-0.1.1"
+          sources."is-extglob-2.1.1"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."is-generator-fn-2.1.0"
+          sources."is-glob-4.0.1"
+          sources."is-number-7.0.0"
+          sources."is-plain-object-2.0.4"
+          sources."is-potential-custom-element-name-1.0.0"
+          sources."is-stream-1.1.0"
+          sources."is-typedarray-1.0.0"
+          sources."is-windows-1.0.2"
+          sources."is-wsl-2.2.0"
+          sources."isarray-1.0.0"
+          sources."isexe-2.0.0"
+          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-report-3.0.0" // {
+            dependencies = [
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."istanbul-lib-source-maps-4.0.0"
+          sources."istanbul-reports-3.0.2"
+          (sources."jest-26.4.2" // {
+            dependencies = [
+              sources."jest-cli-26.4.2"
+            ];
+          })
+          (sources."jest-changed-files-26.3.0" // {
+            dependencies = [
+              sources."execa-4.0.3"
+              sources."get-stream-5.2.0"
+              sources."is-stream-2.0.0"
+              sources."npm-run-path-4.0.1"
+            ];
+          })
+          sources."jest-config-26.4.2"
+          sources."jest-diff-26.4.2"
+          sources."jest-docblock-26.0.0"
+          sources."jest-each-26.4.2"
+          sources."jest-environment-jsdom-26.3.0"
+          sources."jest-environment-node-26.3.0"
+          sources."jest-get-type-26.3.0"
+          sources."jest-haste-map-26.3.0"
+          sources."jest-jasmine2-26.4.2"
+          sources."jest-leak-detector-26.4.2"
+          sources."jest-matcher-utils-26.4.2"
+          sources."jest-message-util-26.3.0"
+          sources."jest-mock-26.3.0"
+          sources."jest-pnp-resolver-1.2.2"
+          sources."jest-regex-util-26.0.0"
+          sources."jest-resolve-26.4.0"
+          sources."jest-resolve-dependencies-26.4.2"
+          sources."jest-runner-26.4.2"
+          sources."jest-runtime-26.4.2"
+          sources."jest-serializer-26.3.0"
+          sources."jest-snapshot-26.4.2"
+          sources."jest-util-26.3.0"
+          (sources."jest-validate-26.4.2" // {
+            dependencies = [
+              sources."camelcase-6.0.0"
+            ];
+          })
+          sources."jest-watcher-26.3.0"
+          (sources."jest-worker-26.3.0" // {
+            dependencies = [
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."js-tokens-4.0.0"
+          sources."js-yaml-3.14.0"
+          sources."jsbn-0.1.1"
+          sources."jsdom-16.4.0"
+          sources."jsesc-2.5.2"
+          sources."json-parse-even-better-errors-2.3.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."json5-2.1.3"
+          sources."jsprim-1.4.1"
+          sources."kind-of-6.0.3"
+          sources."kleur-3.0.3"
+          sources."leven-3.1.0"
+          sources."levn-0.4.1"
+          sources."lines-and-columns-1.1.6"
+          sources."locate-path-5.0.0"
+          sources."lodash-4.17.20"
+          sources."lodash.sortby-4.7.0"
+          (sources."make-dir-3.1.0" // {
+            dependencies = [
+              sources."semver-6.3.0"
+            ];
+          })
+          sources."makeerror-1.0.11"
+          sources."map-cache-0.2.2"
+          sources."map-visit-1.0.0"
+          sources."merge-stream-2.0.0"
+          sources."micromatch-4.0.2"
+          sources."mime-db-1.44.0"
+          sources."mime-types-2.1.27"
+          sources."mimic-fn-2.1.0"
+          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-0.5.5"
+          sources."ms-2.1.2"
+          sources."nanomatch-1.2.13"
+          sources."natural-compare-1.4.0"
+          sources."nice-try-1.0.5"
+          sources."node-int64-0.4.0"
+          sources."node-modules-regexp-1.0.0"
+          sources."node-notifier-8.0.0"
+          (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" // {
+            dependencies = [
+              sources."path-key-2.0.1"
+            ];
+          })
+          sources."nwsapi-2.2.0"
+          sources."oauth-sign-0.9.0"
+          (sources."object-copy-0.1.0" // {
+            dependencies = [
+              sources."define-property-0.2.5"
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."object-visit-1.0.1"
+          sources."object.pick-1.3.0"
+          sources."once-1.4.0"
+          sources."onetime-5.1.2"
+          sources."optionator-0.9.1"
+          sources."p-each-series-2.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."parent-module-1.0.1"
+          sources."parse-json-5.1.0"
+          sources."parse5-5.1.1"
+          sources."pascalcase-0.1.1"
+          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."performance-now-2.1.0"
+          sources."picomatch-2.2.2"
+          sources."pirates-4.0.1"
+          sources."pkg-dir-4.2.0"
+          sources."posix-character-classes-0.1.1"
+          sources."prelude-ls-1.2.1"
+          (sources."pretty-format-26.4.2" // {
+            dependencies = [
+              sources."ansi-styles-4.2.1"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+            ];
+          })
+          sources."progress-2.0.3"
+          sources."prompts-2.3.2"
+          sources."psl-1.8.0"
+          sources."pump-3.0.0"
+          sources."punycode-2.1.1"
+          sources."qs-6.5.2"
+          sources."react-is-16.13.1"
+          (sources."read-pkg-5.2.0" // {
+            dependencies = [
+              sources."type-fest-0.6.0"
+            ];
+          })
+          sources."read-pkg-up-7.0.1"
+          sources."readable-stream-3.6.0"
+          sources."regex-not-1.0.2"
+          sources."regexpp-3.1.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" // {
+            dependencies = [
+              sources."tough-cookie-2.5.0"
+              sources."uuid-3.4.0"
+            ];
+          })
+          sources."request-promise-core-1.1.4"
+          (sources."request-promise-native-1.0.9" // {
+            dependencies = [
+              sources."tough-cookie-2.5.0"
+            ];
+          })
+          sources."require-directory-2.1.1"
+          sources."require-main-filename-2.0.0"
+          sources."resolve-1.17.0"
+          (sources."resolve-cwd-3.0.0" // {
+            dependencies = [
+              sources."resolve-from-5.0.0"
+            ];
+          })
+          sources."resolve-from-4.0.0"
+          sources."resolve-url-0.2.1"
+          sources."ret-0.1.15"
+          sources."rimraf-2.6.3"
+          sources."rsvp-4.8.5"
+          sources."safe-buffer-5.2.1"
+          sources."safe-regex-1.1.0"
+          sources."safer-buffer-2.1.2"
+          (sources."sane-4.1.0" // {
+            dependencies = [
+              sources."anymatch-2.0.0"
+              (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."micromatch-3.1.10"
+              sources."normalize-path-2.1.1"
+              sources."to-regex-range-2.1.1"
+            ];
+          })
+          sources."saxes-5.0.1"
+          sources."semver-7.3.2"
+          sources."set-blocking-2.0.0"
+          (sources."set-value-2.0.1" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."shellwords-0.1.1"
+          sources."signal-exit-3.0.3"
+          sources."sisteransi-1.0.5"
+          sources."slash-3.0.0"
+          sources."slice-ansi-2.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."ms-2.0.0"
+              sources."source-map-0.5.7"
+            ];
+          })
+          (sources."snapdragon-node-2.1.1" // {
+            dependencies = [
+              sources."define-property-1.0.0"
+              sources."is-accessor-descriptor-1.0.0"
+              sources."is-data-descriptor-1.0.0"
+              sources."is-descriptor-1.0.2"
+            ];
+          })
+          (sources."snapdragon-util-3.0.1" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          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.0"
+          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.5"
+          sources."split-string-3.1.0"
+          sources."sprintf-js-1.0.3"
+          sources."sshpk-1.16.1"
+          (sources."stack-utils-2.0.2" // {
+            dependencies = [
+              sources."escape-string-regexp-2.0.0"
+            ];
+          })
+          (sources."static-extend-0.1.2" // {
+            dependencies = [
+              sources."define-property-0.2.5"
+            ];
+          })
+          sources."stealthy-require-1.1.1"
+          sources."string-length-4.0.1"
+          (sources."string-width-3.1.0" // {
+            dependencies = [
+              sources."ansi-regex-4.1.0"
+              sources."strip-ansi-5.2.0"
+            ];
+          })
+          sources."string_decoder-1.3.0"
+          sources."strip-ansi-6.0.0"
+          sources."strip-bom-4.0.0"
+          sources."strip-eof-1.0.0"
+          sources."strip-final-newline-2.0.0"
+          sources."strip-json-comments-3.1.1"
+          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."symbol-tree-3.2.4"
+          sources."table-5.4.6"
+          sources."tar-stream-2.1.3"
+          sources."terminal-link-2.1.1"
+          sources."test-exclude-6.0.0"
+          sources."text-table-0.2.0"
+          sources."throat-5.0.0"
+          sources."tmpl-1.0.4"
+          sources."to-fast-properties-2.0.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-5.0.1"
+          sources."tough-cookie-3.0.1"
+          sources."tr46-2.0.2"
+          sources."tslib-1.13.0"
+          sources."tsutils-3.17.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."typedarray-to-buffer-3.1.5"
+          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."uri-js-4.2.2"
+          sources."urix-0.1.0"
+          sources."use-3.1.1"
+          sources."util-deprecate-1.0.2"
+          sources."uuid-8.3.0"
+          sources."v8-compile-cache-2.1.1"
+          (sources."v8-to-istanbul-5.0.1" // {
+            dependencies = [
+              sources."source-map-0.7.3"
+            ];
+          })
+          sources."validate-npm-package-license-3.0.4"
+          sources."verror-1.10.0"
+          sources."w3c-hr-time-1.0.2"
+          sources."w3c-xmlserializer-2.0.0"
+          sources."walker-1.0.7"
+          sources."webidl-conversions-6.1.0"
+          sources."whatwg-encoding-1.0.5"
+          sources."whatwg-mimetype-2.3.0"
+          sources."whatwg-url-8.2.1"
+          sources."which-2.0.2"
+          sources."which-module-2.0.0"
+          sources."word-wrap-1.2.3"
+          (sources."wrap-ansi-6.2.0" // {
+            dependencies = [
+              sources."ansi-styles-4.2.1"
+              sources."color-convert-2.0.1"
+              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."wrappy-1.0.2"
+          sources."write-1.0.3"
+          sources."write-file-atomic-3.0.3"
+          sources."ws-7.3.1"
+          sources."xml-name-validator-3.0.0"
+          sources."xmlchars-2.2.0"
+          sources."y18n-4.0.0"
+          (sources."yargs-15.4.1" // {
+            dependencies = [
+              sources."emoji-regex-8.0.0"
+              sources."is-fullwidth-code-point-3.0.0"
+              sources."string-width-4.2.0"
+            ];
+          })
+          sources."yargs-parser-18.1.3"
+        ];
+      })
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Zigbee to MQTT bridge using Zigbee-herdsman";
+      homepage = https://koenkk.github.io/zigbee2mqtt;
+      license = "GPL-3.0";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = false;
+  };
+in
+{
+  args = args;
+  sources = sources;
+  tarball = nodeEnv.buildNodeSourceDist args;
+  package = nodeEnv.buildNodePackage args;
+  shell = nodeEnv.buildNodeShell args;
+}
\ No newline at end of file
diff --git a/pkgs/servers/zigbee2mqtt/node.nix b/pkgs/servers/zigbee2mqtt/node.nix
new file mode 100644
index 00000000000..42b6358224c
--- /dev/null
+++ b/pkgs/servers/zigbee2mqtt/node.nix
@@ -0,0 +1,17 @@
+# This file has been generated by node2nix 1.8.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 python2 utillinux runCommand writeTextFile;
+    inherit nodejs;
+    libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+  };
+in
+import ./node-packages.nix {
+  inherit (pkgs) fetchurl fetchgit;
+  inherit nodeEnv;
+}
\ No newline at end of file
diff --git a/pkgs/servers/zigbee2mqtt/update.sh b/pkgs/servers/zigbee2mqtt/update.sh
new file mode 100755
index 00000000000..7fd32dff463
--- /dev/null
+++ b/pkgs/servers/zigbee2mqtt/update.sh
@@ -0,0 +1,30 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p nodePackages.node2nix nodejs-12_x curl jq nix-update
+
+CURRENT_VERSION=$(nix eval --raw '(with import ../../.. {}; zigbee2mqtt.version)')
+TARGET_VERSION=$(curl https://api.github.com/repos/Koenkk/zigbee2mqtt/releases/latest | jq -r ".tag_name")
+ZIGBEE2MQTT=https://github.com/Koenkk/zigbee2mqtt/raw/$TARGET_VERSION
+
+if [[ "$CURRENT_VERSION" == "$TARGET_VERSION" ]]; then
+    echo "zigbee2mqtt is up-to-date: ${CURRENT_VERSION}"
+    exit 0
+fi
+
+wget $ZIGBEE2MQTT/package.json
+wget $ZIGBEE2MQTT/npm-shrinkwrap.json
+
+node2nix --nodejs-12 \
+  -l npm-shrinkwrap.json \
+  -c node.nix \
+  --bypass-cache \
+  --no-copy-node-env \
+  --node-env ../../development/node-packages/node-env.nix
+rm package.json npm-shrinkwrap.json
+
+{
+    cd ../../..
+    nix-update --version "$TARGET_VERSION" --build zigbee2mqtt
+}
+
+git add ./default.nix ./node-packages.nix ./node.nix
+git commit -m "zigbee2mqtt: ${CURRENT_VERSION} -> ${TARGET_VERSION}"
diff --git a/pkgs/servers/zoneminder/default.nix b/pkgs/servers/zoneminder/default.nix
index 146705fb3d9..935993b781f 100644
--- a/pkgs/servers/zoneminder/default.nix
+++ b/pkgs/servers/zoneminder/default.nix
@@ -78,13 +78,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "zoneminder";
-  version = "1.34.9";
+  version = "1.34.16";
 
   src = fetchFromGitHub {
     owner  = "ZoneMinder";
     repo   = "zoneminder";
     rev    = version;
-    sha256 = "1xvgfsm260a3v0vqgbk7m9jzayhcs4ysyadnnxajyrndjhn802ic";
+    sha256 = "azQbm8EkbypBf2NjplDVCb6duEC476hhKDA0EGqxxWE=";
   };
 
   patches = [
@@ -200,7 +200,7 @@ in stdenv.mkDerivation rec {
     description = "Video surveillance software system";
     homepage = "https://zoneminder.com";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ peterhoeg ];
+    maintainers = [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/shells/bash/4.4.nix b/pkgs/shells/bash/4.4.nix
index 4cb3c14a9a0..deeb4093c68 100644
--- a/pkgs/shells/bash/4.4.nix
+++ b/pkgs/shells/bash/4.4.nix
@@ -12,6 +12,11 @@ assert interactive -> readline70 != null;
 assert withDocs -> texinfo != null;
 assert stdenv.hostPlatform.isDarwin -> binutils != null;
 
+# 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
+# files.
+
 let
   upstreamPatches = import ./bash-4.4-patches.nix (nr: sha256: fetchurl {
     url = "mirror://gnu/bash/bash-4.4-patches/bash44-${nr}";
diff --git a/pkgs/shells/bash/bash-5.0-patches.nix b/pkgs/shells/bash/bash-5.0-patches.nix
index e6481aa4da1..ca7361b8a1f 100644
--- a/pkgs/shells/bash/bash-5.0-patches.nix
+++ b/pkgs/shells/bash/bash-5.0-patches.nix
@@ -17,4 +17,5 @@ patch: [
 (patch "014" "12gm5bvv2pd3m72z2ilj26pa08c61az253dsgfl24vpf2ijywvjx")
 (patch "015" "0pm0px758w4i23s55wajcv6lqfiym7zgxvq0pxf6vclkv8nxy5x5")
 (patch "016" "0vdha332km2iwx8g2ld15jy7d24cbplzgr1531dpzylr9ajxglgz")
+(patch "017" "0cfw5lz3fcvq9h1fxihxvw940fjk68015jazvl8x8rlazgxbkwsc")
 ]
diff --git a/pkgs/shells/bash/bash-completion/default.nix b/pkgs/shells/bash/bash-completion/default.nix
index e5ef70e43a9..8463b1750d1 100644
--- a/pkgs/shells/bash/bash-completion/default.nix
+++ b/pkgs/shells/bash/bash-completion/default.nix
@@ -30,10 +30,6 @@ stdenv.mkDerivation rec {
     python3Packages.pexpect
     python3Packages.pytest
     bashInteractive
-
-    # use xdist to speed up the test run, just like upstream:
-    # https://github.com/scop/bash-completion/blob/009bf2228c68894629eb6fd17b3dc0f1f6d67615/test/requirements.txt#L4
-    python3Packages.pytest_xdist
   ];
 
   # - ignore test_gcc on ARM because it assumes -march=native
@@ -44,7 +40,7 @@ stdenv.mkDerivation rec {
   # - ignore test_ls because impure logic
   # - ignore test_screen because it assumes vt terminals exist
   checkPhase = ''
-    pytest -n $NIX_BUILD_CORES . \
+    pytest . \
       ${stdenv.lib.optionalString (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isAarch32) "--ignore=test/t/test_gcc.py"} \
       --ignore=test/t/test_chsh.py \
       --ignore=test/t/test_ether_wake.py \
diff --git a/pkgs/shells/dash/0001-fix-dirent64-et-al-on-darwin.patch b/pkgs/shells/dash/0001-fix-dirent64-et-al-on-darwin.patch
new file mode 100644
index 00000000000..f2e0802f798
--- /dev/null
+++ b/pkgs/shells/dash/0001-fix-dirent64-et-al-on-darwin.patch
@@ -0,0 +1,41 @@
+From 7e75779eaeacdbb46a387a59d9aaf1481a1da3e5 Mon Sep 17 00:00:00 2001
+From: Adrian Gierakowski <agierakowski@gmail.com>
+Date: Sun, 19 Jul 2020 08:38:05 +0100
+Subject: [PATCH] fix dirent64 et al on darwin
+
+---
+ configure.ac | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index b8faca9..cee1e4d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -139,6 +139,7 @@ if test "$ac_cv_func_signal" != yes; then
+ 				 [klibc has bsd_signal instead of signal])])
+ fi
+ 
++dnl TODO: stat64 is deprecated since macOS 10.6
+ dnl Check for stat64 (dietlibc/klibc).
+ AC_CHECK_FUNC(stat64,, [
+ 	AC_DEFINE(fstat64, fstat, [64-bit operations are the same as 32-bit])
+@@ -155,6 +156,16 @@ AC_CHECK_FUNC(open64,, [
+ 	AC_DEFINE(open64, open, [64-bit operations are the same as 32-bit])
+ ])
+ 
++dnl OS X apparently has stat64 but not readdir64.
++AC_CHECK_FUNC(readdir64,, [
++	AC_DEFINE(readdir64, readdir, [64-bit operations are the same as 32-bit])
++])
++
++dnl OS X apparently has stat64 but not dirent64.
++AC_CHECK_TYPE(struct dirent64,, [
++	AC_DEFINE(dirent64, dirent, [64-bit operations are the same as 32-bit])
++],[#include <dirent.h>])
++
+ dnl Check if struct stat has st_mtim.
+ AC_MSG_CHECKING(for stat::st_mtim)
+ AC_COMPILE_IFELSE(
+-- 
+2.15.1
+
diff --git a/pkgs/shells/dash/default.nix b/pkgs/shells/dash/default.nix
index f4ee68f7444..3f344f673f1 100644
--- a/pkgs/shells/dash/default.nix
+++ b/pkgs/shells/dash/default.nix
@@ -1,15 +1,20 @@
-{ stdenv, fetchurl }:
+{ stdenv, buildPackages, autoreconfHook, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "dash-0.5.11";
+  name = "dash-0.5.11.1";
 
   src = fetchurl {
     url = "http://gondor.apana.org.au/~herbert/dash/files/${name}.tar.gz";
-    sha256 = "1jwilfsy249d3q7fagg1ga4bgc2bg1fzw63r2nan0m77bznsdnad";
+    sha256 = "048n1rbw3v1ffzsw5mkc6zzvvf1csq7pcri7jraaqag38vqq3j3k";
   };
 
   hardeningDisable = [ "format" ];
 
+  # Temporary fix until a proper one is accepted upstream
+  patches = stdenv.lib.optional stdenv.isDarwin ./0001-fix-dirent64-et-al-on-darwin.patch;
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+  nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin autoreconfHook;
+
   meta = with stdenv.lib; {
     homepage = "http://gondor.apana.org.au/~herbert/dash/";
     description = "A POSIX-compliant implementation of /bin/sh that aims to be as small as possible";
diff --git a/pkgs/shells/elvish/default.nix b/pkgs/shells/elvish/default.nix
index 2aa23cd063e..2cb45f33f7b 100644
--- a/pkgs/shells/elvish/default.nix
+++ b/pkgs/shells/elvish/default.nix
@@ -2,23 +2,22 @@
 
 buildGoModule rec {
   pname = "elvish";
-  version = "0.13.1";
+  version = "0.14.1";
 
-  goPackagePath = "github.com/elves/elvish";
   excludedPackages = [ "website" ];
-  buildFlagsArray = ''
-    -ldflags=
-      -X ${goPackagePath}/buildinfo.Version=${version}
-  '';
+
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/elves/elvish/pkg/buildinfo.Version==${version} -X github.com/elves/elvish/pkg/buildinfo.Reproducible=true" ];
 
   src = fetchFromGitHub {
     owner = "elves";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0lz9lf1swrn67kymcp2wh67lh3c0ifqm9035gpkd3zynlq3wzqfm";
+    sha256 = "05wp3cx4s2cjf60yncdpmycs5h4z1dlin56dmljmfwz4z099079b";
   };
 
-  vendorSha256 = null;
+  vendorSha256 = "1f971n17h9bc0qcgs9ipiaw0x9807mz761fqm605br4ch1kp0897";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "A friendly and expressive command shell";
@@ -36,4 +35,4 @@ buildGoModule rec {
   passthru = {
     shellPath = "/bin/elvish";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix
index 7cd31f14abd..3faa7f99657 100644
--- a/pkgs/shells/fish/default.nix
+++ b/pkgs/shells/fish/default.nix
@@ -7,6 +7,7 @@
 , gnused
 , gnugrep
 , groff
+, gawk
 , man-db
 , getent
 , libiconv
@@ -165,6 +166,9 @@ let
           -i $out/share/fish/functions/{__fish_config_interactive.fish,fish_config.fish,fish_update_completions.fish}
       sed -i "s|/usr/local/sbin /sbin /usr/sbin||"         \
              $out/share/fish/completions/{sudo.fish,doas.fish}
+      sed -e "s| awk | ${gawk}/bin/awk |"                  \
+          -i $out/share/fish/functions/{__fish_print_packages.fish,__fish_print_addresses.fish,__fish_describe_command.fish,__fish_complete_man.fish,__fish_complete_convert_options.fish} \
+             $out/share/fish/completions/{cwebp,adb,ezjail-admin,grunt,helm,heroku,lsusb,make,p4,psql,rmmod,vim-addons}.fish
 
       cat > $out/share/fish/functions/__fish_anypython.fish <<EOF
       function __fish_anypython
diff --git a/pkgs/shells/ion/default.nix b/pkgs/shells/ion/default.nix
index ca2f7a6d515..f84f150bc55 100644
--- a/pkgs/shells/ion/default.nix
+++ b/pkgs/shells/ion/default.nix
@@ -18,7 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://gitlab.redox-os.org/redox-os/ion";
     license = licenses.mit;
     maintainers = with maintainers; [ dywedir ];
-    platforms = platforms.all;
   };
 
   passthru = {
diff --git a/pkgs/shells/liquidprompt/default.nix b/pkgs/shells/liquidprompt/default.nix
index d6d655d1f17..783c07d1600 100644
--- a/pkgs/shells/liquidprompt/default.nix
+++ b/pkgs/shells/liquidprompt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "liquidprompt";
-  version = "unstable-2018-05-21";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
     owner = "nojhan";
     repo = pname;
-    rev = "eda83efe4e0044f880370ed5e92aa7e3fdbef971";
-    sha256 = "1p7ah3x850ajpq07xvxxd7fx2i67cf0n71ww085g32k9fwij4rd4";
+    rev = "v${version}";
+    sha256 = "0ibp1bz9s4bp3y5anivg5gp31q78024w39v7hbfw05qy25ax5h60";
   };
 
   installPhase = ''
diff --git a/pkgs/shells/nushell/default.nix b/pkgs/shells/nushell/default.nix
index b56a10a189d..09d2f6aac1a 100644
--- a/pkgs/shells/nushell/default.nix
+++ b/pkgs/shells/nushell/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nushell";
-  version = "0.16.0";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0d298v7rf8lxdavhfad68rq4sgmg6gw6vc7phh1lnhx5pbhkvv22";
+    sha256 = "08r6f71cy4j22k0mllm134x4dfixaircpaz5arrj93xsbp38nk92";
   };
 
-  cargoSha256 = "0xibrdbqfmmkncqpjsllzx1w79crm0v4liwf2aldnafji7jqclb4";
+  cargoSha256 = "15kvl490abxdv6706zs7pv0q5fhghmdvlfbn19037sldkcsfl86b";
 
   nativeBuildInputs = [ pkg-config ]
     ++ lib.optionals (withStableFeatures && stdenv.isLinux) [ python3 ];
@@ -50,8 +50,8 @@ rustPlatform.buildRustPackage rec {
     description = "A modern shell written in Rust";
     homepage = "https://www.nushell.sh/";
     license = licenses.mit;
-    maintainers = with maintainers; [ filalex77 marsam ];
-    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
+    maintainers = with maintainers; [ filalex77 johntitor marsam ];
+    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" ];
   };
 
   passthru = {
diff --git a/pkgs/shells/rssh/default.nix b/pkgs/shells/rssh/default.nix
deleted file mode 100644
index b2bec51a95e..00000000000
--- a/pkgs/shells/rssh/default.nix
+++ /dev/null
@@ -1,97 +0,0 @@
-# CAVEATS:
-# - Have only tested this with rsync, scp, and sftp. cvs support should work, but chroot integration is unlikely to function without further work
-# - It is compiled without rdist support because rdist is ludicrously ancient (and not already in nixpkgs)
-
-{ stdenv, fetchurl, openssh, rsync, cvs }:
-
-stdenv.mkDerivation rec {
-  pname = "rssh";
-  version = "2.3.4";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/rssh/rssh/${version}/${pname}-${version}.tar.gz";
-    sha256 = "f30c6a760918a0ed39cf9e49a49a76cb309d7ef1c25a66e77a41e2b1d0b40cd9";
-  };
-
-  patches = [
-    ./fix-config-path.patch
-
-    # Patches from AUR
-    (fetchurl {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0001-fail-logging.patch?h=rssh";
-      name = "0001-fail-logging.patch";
-      sha256 = "d30f2f4fdb1b57f94773f5b0968a4da3356b14a040efe69ec1e976c615035c65";
-    })
-    (fetchurl {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0002-info-to-debug.patch?h=rssh";
-      name = "0002-info-to-debug.patch";
-      sha256 = "86f6ecf34f62415b0d6204d4cbebc47322dc2ec71732d06aa27758e35d688fcd";
-    })
-    (fetchurl {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0003-man-page-spelling.patch?h=rssh";
-      name = "0003-man-page-spelling.patch";
-      sha256 = "455b3bbccddf1493999d00c2cd46e62930ef4fd8211e0b7d3a89d8010d6a5431";
-    })
-    (fetchurl {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0004-mkchroot.patch?h=rssh";
-      name = "0004-mkchroot.patch";
-      sha256 = "f7fd8723d2aa94e64e037c13c2f263a52104af680ab52bfcaea73dfa836457c2";
-    })
-    (fetchurl {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0005-mkchroot-arch.patch?h=rssh";
-      name = "0005-mkchroot-arch.patch";
-      sha256 = "ac8894c4087a063ae8267d2fdfcde69c2fe6b67a8ff5917e4518b8f73f08ba3f";
-    })
-    (fetchurl {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0006-mkchroot-symlink.patch?h=rssh";
-      name = "0006-mkchroot-symlink.patch";
-      sha256 = "bce98728cb9b55c92182d4901c5f9adf49376a07c5603514b0004e3d1c85e9c7";
-    })
-    (fetchurl {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0007-destdir.patch?h=rssh";
-      name = "0007-destdir.patch";
-      sha256 = "7fa03644f81dc37d77cc7e2cad994f17f91b2b8a49b1a74e41030a4ac764385e";
-    })
-    (fetchurl {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0008-rsync-protocol.patch?h=rssh";
-      name = "0008-rsync-protocol.patch";
-      sha256 = "0c772afe9088eeded129ead86775ef18e58c318bbc58fc3e2585e7ff09cc5e91";
-    })
-  ];
-
-  # Run this after to avoid conflict with patches above
-  postPatch = ''
-    sed -i '/chmod u+s/d' Makefile.in
-  '';
-
-
-  buildInputs = [ openssh rsync cvs ];
-
-  configureFlags = [
-    "--with-sftp-server=${openssh}/libexec/sftp-server"
-    "--with-scp=${openssh}/bin/scp"
-    "--with-rsync=${rsync}/bin/rsync"
-    "--with-cvs=${cvs}/bin/cvs"
-  ];
-
-
-  meta = with stdenv.lib; {
-    description = "A restricted shell for use with OpenSSH, allowing only scp and/or sftp";
-    longDescription = ''
-      rssh also includes support for rsync and cvs. For example, if you have a server which you only want to allow users to copy files off of via scp, without providing shell access, you can use rssh to do that.
-    '';
-    homepage = "http://www.pizzashack.org/rssh/";
-    license = licenses.bsd2;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ arobyn ];
-    knownVulnerabilities = [
-      "CVE-2019-1000018"
-      "CVE-2019-3463"
-      "CVE-2019-3464"
-    ];
-  };
-
-  passthru = {
-    shellPath = "/bin/rssh";
-  };
-}
diff --git a/pkgs/shells/rssh/fix-config-path.patch b/pkgs/shells/rssh/fix-config-path.patch
deleted file mode 100644
index eecffb376ab..00000000000
--- a/pkgs/shells/rssh/fix-config-path.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur rssh-2.3.4/Makefile.in rssh-2.3.4-fixed/Makefile.in
---- rssh-2.3.4/Makefile.in	2012-11-27 11:19:34.000000000 +1100
-+++ rssh-2.3.4-fixed/Makefile.in	2015-11-11 21:13:58.516651742 +1100
-@@ -186,7 +186,7 @@
- sysconfdir = @sysconfdir@
- target_alias = @target_alias@
- AUTOMAKE_OPTIONS = nostdinc
--ourdefs = -DPATH_RSSH_CONFIG=\"@sysconfdir@/rssh.conf\" -DPATH_CHROOT_HELPER=\"@libexecdir@/rssh_chroot_helper\"
-+ourdefs = -DPATH_RSSH_CONFIG=\"/etc/rssh.conf\" -DPATH_CHROOT_HELPER=\"@libexecdir@/rssh_chroot_helper\"
- ourflags = @defcflags@ @static@ 
- AM_CFLAGS = $(ourflags)
- nodist_rssh_SOURCES = main.c pathnames.h config.h
diff --git a/pkgs/shells/xonsh/default.nix b/pkgs/shells/xonsh/default.nix
index 192e38b963d..751dd00efc7 100644
--- a/pkgs/shells/xonsh/default.nix
+++ b/pkgs/shells/xonsh/default.nix
@@ -8,17 +8,18 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "xonsh";
-  version = "0.9.18";
+  version = "0.9.21";
 
   # fetch from github because the pypi package ships incomplete tests
   src = fetchFromGitHub {
     owner  = "xonsh";
     repo   = "xonsh";
     rev    = version;
-    sha256 = "1zg5dl9qdysbaw2djy9f7f1ydp7vzjv840cjwqxlmg9615lgg7xa";
+    sha256 = "16k8506fk54krpkls374cn3vm1dp9ixi0byh5xvi3m5a4bnbvrs0";
   };
 
   LC_ALL = "en_US.UTF-8";
+
   postPatch = ''
     sed -ie "s|/bin/ls|${coreutils}/bin/ls|" tests/test_execer.py
     sed -ie "s|SHELL=xonsh|SHELL=$out/bin/xonsh|" tests/test_integrations.py
diff --git a/pkgs/shells/zsh/antibody/default.nix b/pkgs/shells/zsh/antibody/default.nix
index c0e87cd6021..325bae4f9cc 100644
--- a/pkgs/shells/zsh/antibody/default.nix
+++ b/pkgs/shells/zsh/antibody/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "antibody";
-  version = "6.0.1";
+  version = "6.1.1";
 
   src = fetchFromGitHub {
     owner = "getantibody";
     repo = "antibody";
     rev = "v${version}";
-    sha256 = "0ix2liy8h48s3n7ykr85ik03kwj45iqwhwn79ap8y21bar00gybs";
+    sha256 = "0icag53svzdm7yvzp855fp0f7q0g0jkfmjaa1sj6mmb01c1xgzi1";
   };
 
-  vendorSha256 = "072kxr68p9f58w2q98fjcn4wzd5szy5l5sz8sh4ssapljvic2lam";
+  vendorSha256 = "0z8fma3v2dph8nv3q4lmv43s6p5sc338xb7kcmnpwcc0iw7b4vyj";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
@@ -21,4 +23,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ filalex77 worldofpeace ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/shells/zsh/grml-zsh-config/default.nix b/pkgs/shells/zsh/grml-zsh-config/default.nix
index 4a287e08444..6af16271d38 100644
--- a/pkgs/shells/zsh/grml-zsh-config/default.nix
+++ b/pkgs/shells/zsh/grml-zsh-config/default.nix
@@ -5,13 +5,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "grml-zsh-config";
-  version = "0.17.2";
+  version = "0.17.4";
 
   src = fetchFromGitHub {
     owner = "grml";
     repo = "grml-etc-core";
     rev = "v${version}";
-    sha256 = "1h17xdlxhnjqirqwksi8qhx2lyajz7b0hmvb80i7313splhjp6hn";
+    sha256 = "09c3f7s2r0cb8g9kgh3xhc8dhr1656g1q9s9i3s5imvknwqii6as";
   };
 
   buildInputs = [ zsh coreutils txt2tags procps ]
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index 31e0275d96a..018bf01f7d9 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -1,59 +1,68 @@
 # This script was inspired by the ArchLinux User Repository package:
 #
 #   https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=oh-my-zsh-git
-{ stdenv, fetchgit }:
+{ stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  version = "2020-07-01";
+  version = "2020-09-03";
   pname = "oh-my-zsh";
-  rev = "62648d71bb05116287206d83181f9daa5a59ba67";
+  rev = "87edf16e05598505927410f6b06bbc5a6003805b";
 
-  src = fetchgit { inherit rev;
-    url = "https://github.com/ohmyzsh/ohmyzsh";
-    sha256 = "0pj73hvjzmp9x1b4b3zi9mlihzb9g04kfz230hmwz3kxpymw879q";
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "ohmyzsh";
+    repo = "ohmyzsh";
+    sha256 = "0c13vkh9w3sxdy12b17yqa676cp83jb3a4pwc2xx2xggcxpn72by";
   };
 
-  pathsToLink = [ "/share/oh-my-zsh" ];
+  installPhase = ''
+    outdir=$out/share/oh-my-zsh
+    template=templates/zshrc.zsh-template
 
-  phases = "installPhase";
+    mkdir -p $outdir
+    cp -r * $outdir
+    cd $outdir
 
-  installPhase = ''
-  outdir=$out/share/oh-my-zsh
-  template=templates/zshrc.zsh-template
-
-  mkdir -p $outdir
-  cp -r $src/* $outdir
-  cd $outdir
-
-  rm LICENSE.txt
-  rm -rf .git*
-
-  chmod -R +w templates
-
-  # Change the path to oh-my-zsh dir and disable auto-updating.
-  sed -i -e "s#ZSH=\$HOME/.oh-my-zsh#ZSH=$outdir#" \
-         -e 's/\# \(DISABLE_AUTO_UPDATE="true"\)/\1/' \
-   $template
-
-  # Look for .zsh_variables, .zsh_aliases, and .zsh_funcs, and source
-  # them, if found.
-  cat >> $template <<- EOF
-
-  # Load the variables.
-  if [ -f ~/.zsh_variables ]; then
-      . ~/.zsh_variables
-  fi
-
-  # Load the functions.
-  if [ -f ~/.zsh_funcs ]; then
-    . ~/.zsh_funcs
-  fi
-
-  # Load the aliases.
-  if [ -f ~/.zsh_aliases ]; then
-      . ~/.zsh_aliases
-  fi
-  EOF
+    rm LICENSE.txt
+    rm -rf .git*
+
+    chmod -R +w templates
+
+    # Change the path to oh-my-zsh dir and disable auto-updating.
+    sed -i -e "s#ZSH=\$HOME/.oh-my-zsh#ZSH=$outdir#" \
+           -e 's/\# \(DISABLE_AUTO_UPDATE="true"\)/\1/' \
+     $template
+
+    chmod +w oh-my-zsh.sh
+
+    # Both functions expect oh-my-zsh to be in ~/.oh-my-zsh and try to
+    # modify the directory.
+    cat >> oh-my-zsh.sh <<- EOF
+
+    # Undefine functions that don't work on Nix.
+    unfunction uninstall_oh_my_zsh
+    unfunction upgrade_oh_my_zsh
+    EOF
+
+    # Look for .zsh_variables, .zsh_aliases, and .zsh_funcs, and source
+    # them, if found.
+    cat >> $template <<- EOF
+
+    # Load the variables.
+    if [ -f ~/.zsh_variables ]; then
+        . ~/.zsh_variables
+    fi
+
+    # Load the functions.
+    if [ -f ~/.zsh_funcs ]; then
+      . ~/.zsh_funcs
+    fi
+
+    # Load the aliases.
+    if [ -f ~/.zsh_aliases ]; then
+        . ~/.zsh_aliases
+    fi
+    EOF
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/shells/zsh/oh-my-zsh/update.sh b/pkgs/shells/zsh/oh-my-zsh/update.sh
index 0146cac8496..738c0810737 100755
--- a/pkgs/shells/zsh/oh-my-zsh/update.sh
+++ b/pkgs/shells/zsh/oh-my-zsh/update.sh
@@ -5,7 +5,6 @@ set -eu -o pipefail
 
 oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion oh-my-zsh" | tr -d '"')"
 latestSha="$(curl -L -s https://api.github.com/repos/ohmyzsh/ohmyzsh/commits\?sha\=master\&since\=${oldVersion} | jq -r '.[0].sha')"
-url="$(nix-instantiate --eval -E "with import ./. {}; oh-my-zsh.src.url" | tr -d '"')"
 
 if [ ! "null" = "${latestSha}" ]; then
   latestDate="$(curl -L -s https://api.github.com/repos/ohmyzsh/ohmyzsh/commits/${latestSha} | jq '.commit.author.date' | sed 's|"\(.*\)T.*|\1|g')"
diff --git a/pkgs/shells/zsh/pure-prompt/default.nix b/pkgs/shells/zsh/pure-prompt/default.nix
index 5696ed61b97..bfcd3be5e9c 100644
--- a/pkgs/shells/zsh/pure-prompt/default.nix
+++ b/pkgs/shells/zsh/pure-prompt/default.nix
@@ -4,13 +4,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "pure-prompt";
-  version = "1.12.0";
+  version = "1.13.0";
 
   src = fetchFromGitHub {
     owner = "sindresorhus";
     repo = "pure";
     rev = "v${version}";
-    sha256 = "1h04z7rxmca75sxdfjgmiyf1b5z2byfn6k4srls211l0wnva2r5y";
+    sha256 = "16q9v4c8lagp4vxm7qhagilqnwf1g4pbds56x5wfj4cwc0x2gclw";
   };
 
   installPhase = ''
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Pretty, minimal and fast ZSH prompt";
-    homepage = https://github.com/sindresorhus/pure;
+    homepage = "https://github.com/sindresorhus/pure";
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ pacien pablovsky ];
diff --git a/pkgs/shells/zsh/spaceship-prompt/default.nix b/pkgs/shells/zsh/spaceship-prompt/default.nix
index e1839d5dd07..7db8cdb3349 100644
--- a/pkgs/shells/zsh/spaceship-prompt/default.nix
+++ b/pkgs/shells/zsh/spaceship-prompt/default.nix
@@ -21,13 +21,15 @@ stdenv.mkDerivation rec {
     install -D -m644 spaceship.zsh "$out/lib/spaceship-prompt/spaceship.zsh"
     install -d "$out/share/zsh/themes/"
     ln -s "$out/lib/spaceship-prompt/spaceship.zsh" "$out/share/zsh/themes/spaceship.zsh-theme"
+    install -d "$out/share/zsh/site-functions/"
+    ln -s "$out/lib/spaceship-prompt/spaceship.zsh" "$out/share/zsh/site-functions/prompt_spaceship_setup"
   '';
 
   meta = with stdenv.lib; {
     description = "Zsh prompt for Astronauts";
     homepage = "https://github.com/denysdovhan/spaceship-prompt/";
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ nyanloutre ];
   };
 }
diff --git a/pkgs/shells/zsh/zsh-completions/default.nix b/pkgs/shells/zsh/zsh-completions/default.nix
index 03f6146df7c..89a91ad0508 100644
--- a/pkgs/shells/zsh/zsh-completions/default.nix
+++ b/pkgs/shells/zsh/zsh-completions/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zsh-completions";
-  version = "0.31.0";
+  version = "0.32.0";
 
   src = fetchFromGitHub {
     owner = "zsh-users";
     repo = pname;
     rev = version;
-    sha256 = "0rw23m8cqxhcb4yjhbzb9lir60zn1xjy7hn3zv1fzz700f0i6fyk";
+    sha256 = "12l9wrx0aysyj62kgp5limglz0nq73w8c415wcshxnxmhyk6sw6d";
   };
 
   installPhase= ''
diff --git a/pkgs/shells/zsh/zsh-history/default.nix b/pkgs/shells/zsh/zsh-history/default.nix
index 47f590a78f2..3d48467a246 100644
--- a/pkgs/shells/zsh/zsh-history/default.nix
+++ b/pkgs/shells/zsh/zsh-history/default.nix
@@ -14,7 +14,8 @@ buildGoModule rec {
   nativeBuildInputs = [ installShellFiles ];
 
   vendorSha256 = "13rc1afds5xg30faqz35haha4kxg73b5nvjirbrkc6kna0vhb54z";
-  goPackagePath = "github.com/b4b4r07/history";
+
+  doCheck = false;
 
   postInstall = ''
     install -d $out/share
@@ -33,4 +34,4 @@ buildGoModule rec {
   passthru.tests = {
     zsh-history-shell-integration = nixosTests.zsh-history;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/shells/zsh/zsh-nix-shell/default.nix b/pkgs/shells/zsh/zsh-nix-shell/default.nix
index c424cc33483..6db78f1c0f5 100644
--- a/pkgs/shells/zsh/zsh-nix-shell/default.nix
+++ b/pkgs/shells/zsh/zsh-nix-shell/default.nix
@@ -4,14 +4,14 @@
 # `programs.zsh.interactiveShellInit = "source ${pkgs.zsh-nix-shell}/share/zsh-nix-shell/nix-shell.plugin.zsh";`
 
 stdenv.mkDerivation rec {
-  pname = "zsh-nix-shell-unstable";
-  version = "2019-12-20";
+  pname = "zsh-nix-shell";
+  version = "0.1.0";
 
   src = fetchFromGitHub {
     owner = "chisui";
     repo = "zsh-nix-shell";
-    rev = "a65382a353eaee5a98f068c330947c032a1263bb";
-    sha256 = "0l41ac5b7p8yyjvpfp438kw7zl9dblrpd7icjg1v3ig3xy87zv0n";
+    rev = "v${version}";
+    sha256 = "0snhch9hfy83d4amkyxx33izvkhbwmindy0zjjk28hih1a9l2jmx";
   };
 
   installPhase = ''
diff --git a/pkgs/shells/zsh/zsh-powerlevel10k/default.nix b/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
index 7b6684092ba..5d81ceaba1b 100644
--- a/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
+++ b/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "powerlevel10k";
-  version = "1.11.0";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "powerlevel10k";
     rev = "v${version}";
-    sha256 = "1z6abvp642n40biya88n86ff1wiry00dlwawqwxp7q5ds55jhbv1";
+    sha256 = "08zg4in70h3kray6lazszzy26gvil9w2cr6xmkbgjsv3k6w3k0jg";
   };
 
   patches = [
diff --git a/pkgs/shells/zsh/zsh-you-should-use/default.nix b/pkgs/shells/zsh/zsh-you-should-use/default.nix
index 13e3bbdc038..603757c3332 100644
--- a/pkgs/shells/zsh/zsh-you-should-use/default.nix
+++ b/pkgs/shells/zsh/zsh-you-should-use/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zsh-you-should-use";
-  version = "1.7.0";
+  version = "1.7.3";
 
   src = fetchFromGitHub {
     owner = "MichaelAquilina";
     repo = pname;
     rev = version;
-    sha256 = "1gcxm08ragwrh242ahlq3bpfg5yma2cshwdlj8nrwnd4qwrsflgq";
+    sha256 = "1dz48rd66priqhxx7byndqhbmlwxi1nfw8ik25k0z5k7k754brgy";
   };
 
   dontBuild = true;
diff --git a/pkgs/stdenv/cross/default.nix b/pkgs/stdenv/cross/default.nix
index cc49af7de3b..6ac03b7908f 100644
--- a/pkgs/stdenv/cross/default.nix
+++ b/pkgs/stdenv/cross/default.nix
@@ -38,7 +38,7 @@ in lib.init bootStages ++ [
   (buildPackages: {
     inherit config;
     overlays = overlays ++ crossOverlays
-      ++ (if crossSystem.isWasm then [(import ../../top-level/static.nix)] else []);
+      ++ (if (with crossSystem; isWasm || isRedox) then [(import ../../top-level/static.nix)] else []);
     selfBuild = false;
     stdenv = buildPackages.stdenv.override (old: rec {
       buildPlatform = localSystem;
@@ -72,7 +72,8 @@ in lib.init bootStages ++ [
              (hostPlatform.isLinux && !buildPlatform.isLinux)
              [ buildPackages.patchelf ]
         ++ lib.optional
-             (let f = p: !p.isx86 || p.libc == "musl" || p.libc == "wasilibc" || p.isiOS; in f hostPlatform && !(f buildPlatform))
+             (let f = p: !p.isx86 || builtins.elem p.libc [ "musl" "wasilibc" "relibc" ] || p.isiOS || p.isGenode;
+               in f hostPlatform && !(f buildPlatform) )
              buildPackages.updateAutotoolsGnuConfigScriptsHook
            # without proper `file` command, libtool sometimes fails
            # to recognize 64-bit DLLs
diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix
index b69de041fd2..3f06dec10af 100644
--- a/pkgs/stdenv/darwin/default.nix
+++ b/pkgs/stdenv/darwin/default.nix
@@ -90,11 +90,11 @@ in rec {
         inherit shell;
         inherit (last) stdenvNoCC;
 
-        extraPackages = lib.optional (libcxx != null) libcxx;
+        extraPackages = [];
 
         nativeTools  = false;
         nativeLibc   = false;
-        inherit buildPackages coreutils gnugrep bintools;
+        inherit buildPackages coreutils gnugrep bintools libcxx;
         libc         = last.pkgs.darwin.Libsystem;
         isClang      = true;
         cc           = { name = "${name}-clang"; outPath = bootstrapTools; };
@@ -168,8 +168,9 @@ in rec {
             ln -s ${bootstrapTools}/lib/libc++.dylib $out/lib/libc++.dylib
             ln -s ${bootstrapTools}/include/c++      $out/include/c++
           '';
-          linkCxxAbi = false;
-          setupHook = ../../development/compilers/llvm/7/libc++/setup-hook.sh;
+          passthru = {
+            isLLVM = true;
+          };
         };
 
         libcxxabi = stdenv.mkDerivation {
@@ -197,12 +198,6 @@ in rec {
       python3 = super.python3Minimal;
 
       ninja = super.ninja.override { buildDocs = false; };
-
-      darwin = super.darwin // {
-        cctools = super.darwin.cctools.override {
-          enableTapiSupport = false;
-        };
-      };
     };
   in with prevStage; stageFun 1 prevStage {
     extraPreHook = "export NIX_CFLAGS_COMPILE+=\" -F${bootstrapTools}/Library/Frameworks\"";
@@ -304,7 +299,7 @@ in rec {
     persistent = self: super: with prevStage; {
       inherit
         gnumake gzip gnused bzip2 gawk ed xz patch bash python3
-        ncurses libffi zlib gmp pcre gnugrep
+        ncurses libffi zlib gmp pcre gnugrep cmake
         coreutils findutils diffutils patchutils ninja libxml2;
 
       # Hack to make sure we don't link ncurses in bootstrap tools. The proper
@@ -329,7 +324,6 @@ in rec {
       darwin = super.darwin // rec {
         inherit (darwin) dyld Libsystem libiconv locale;
 
-        cctools = super.darwin.cctools.override { enableTapiSupport = false; };
         CF = super.darwin.CF.override {
           inherit libxml2;
           python3 = prevStage.python3;
@@ -418,7 +412,7 @@ in rec {
       curl.out openssl.out libssh2.out nghttp2.lib libkrb5
       cc.expand-response-params libxml2.out
     ]) ++ (with pkgs.darwin; [
-      dyld Libsystem CF cctools ICU libiconv locale
+      dyld Libsystem CF cctools ICU libiconv locale libtapi
     ]);
 
     overrides = lib.composeExtensions persistent (self: super: {
diff --git a/pkgs/stdenv/darwin/make-bootstrap-tools.nix b/pkgs/stdenv/darwin/make-bootstrap-tools.nix
index a299879693c..31e12963937 100644
--- a/pkgs/stdenv/darwin/make-bootstrap-tools.nix
+++ b/pkgs/stdenv/darwin/make-bootstrap-tools.nix
@@ -100,6 +100,8 @@ in rec {
         cp ${cctools_}/bin/$i $out/bin
       done
 
+      cp -d ${darwin.libtapi}/lib/libtapi* $out/lib
+
       cp -rd ${pkgs.darwin.CF}/Library $out
 
       chmod -R u+w $out
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index e17b41eab32..b5798978690 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -138,8 +138,11 @@ let
         is32bit is64bit
         isAarch32 isAarch64 isMips isBigEndian;
 
-      # The derivation's `system` is `buildPlatform.system`.
-      inherit (buildPlatform) system;
+      # Override `system` so that packages can get the system of the host
+      # platform through `stdenv.system`. `system` is originally set to the
+      # build platform within the derivation above so that Nix directs the build
+      # to correct type of machine.
+      inherit (hostPlatform) system;
 
       inherit (import ./make-derivation.nix {
         inherit lib config stdenv;
diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix
index 993ae68e9e8..491951e6121 100644
--- a/pkgs/stdenv/generic/make-derivation.nix
+++ b/pkgs/stdenv/generic/make-derivation.nix
@@ -247,7 +247,8 @@ in rec {
             (/**/ if lib.isString cmakeFlags then [cmakeFlags]
              else if cmakeFlags == null      then []
              else                                     cmakeFlags)
-          ++ [ "-DCMAKE_SYSTEM_NAME=${lib.findFirst lib.isString "Generic" [ stdenv.hostPlatform.uname.system ]}" ]
+          ++ [ "-DCMAKE_SYSTEM_NAME=${lib.findFirst lib.isString "Generic" (
+               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.buildPlatform.uname.system != null) "-DCMAKE_HOST_SYSTEM_NAME=${stdenv.buildPlatform.uname.system}"
@@ -308,8 +309,12 @@ in rec {
           name = attrs.name or "${attrs.pname}-${attrs.version}";
 
           # If the packager hasn't specified `outputsToInstall`, choose a default,
-          # which is the name of `p.bin or p.out or p`;
-          # if he has specified it, it will be overridden below in `// meta`.
+          # which is the name of `p.bin or p.out or p` along with `p.man` when
+          # present.
+          #
+          # If the packager has specified it, it will be overridden below in
+          # `// meta`.
+          #
           #   Note: This default probably shouldn't be globally configurable.
           #   Services and users should specify outputs explicitly,
           #   unless they are comfortable with this default.
@@ -337,6 +342,32 @@ in rec {
         validity.handled
         ({
            overrideAttrs = f: mkDerivation (attrs // (f attrs));
+
+           # A derivation that always builds successfully and whose runtime
+           # dependencies are the original derivations build time dependencies
+           # This allows easy building and distributing of all derivations
+           # needed to enter a nix-shell with
+           #   nix-build shell.nix -A inputDerivation
+           inputDerivation = derivation (derivationArg // {
+             # Add a name in case the original drv didn't have one
+             name = derivationArg.name or "inputDerivation";
+             # This always only has one output
+             outputs = [ "out" ];
+
+             # Propagate the original builder and arguments, since we override
+             # them and they might contain references to build inputs
+             _derivation_original_builder = derivationArg.builder;
+             _derivation_original_args = derivationArg.args;
+
+             builder = stdenv.shell;
+             # The bash builtin `export` dumps all current environment variables,
+             # which is where all build input references end up (e.g. $PATH for
+             # binaries). By writing this to $out, Nix can find and register
+             # them as runtime dependencies (since Nix greps for store paths
+             # through $out to find them)
+             args = [ "-c" "export > $out" ];
+           });
+
            inherit meta passthru;
          } //
          # Pass through extra attributes that are not inputs, but
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index 839757945a2..d19ed342aab 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -219,12 +219,13 @@ printWords() {
 # Initialisation.
 
 
-# Set a fallback default value for SOURCE_DATE_EPOCH, used by some
-# build tools to provide a deterministic substitute for the "current"
-# time. Note that 1 = 1970-01-01 00:00:01. We don't use 0 because it
-# confuses some applications.
+# Set a fallback default value for SOURCE_DATE_EPOCH, used by some build tools
+# to provide a deterministic substitute for the "current" time. Note that
+# 315532800 = 1980-01-01 12:00:00. We use this date because python's wheel
+# implementation uses zip archive and zip does not support dates going back to
+# 1970.
 export SOURCE_DATE_EPOCH
-: ${SOURCE_DATE_EPOCH:=1}
+: ${SOURCE_DATE_EPOCH:=315532800}
 
 
 # Wildcard expansions that don't match should expand to an empty list.
diff --git a/pkgs/test/cc-wrapper/default.nix b/pkgs/test/cc-wrapper/default.nix
index 7bd82b4ab2a..c0c89d63fff 100644
--- a/pkgs/test/cc-wrapper/default.nix
+++ b/pkgs/test/cc-wrapper/default.nix
@@ -45,6 +45,14 @@ in stdenv.mkDerivation {
     NIX_LDFLAGS="-L$NIX_BUILD_TOP/foo/lib -rpath $NIX_BUILD_TOP/foo/lib" $CC -lfoo -o ldflags-check ${./ldflags-main.c}
     ./ldflags-check
 
+    printf "Check whether -nostdinc and -nostdinc++ is handled correctly" >&2
+    mkdir -p std-include
+    cp ${./stdio.h} std-include/stdio.h
+    NIX_DEBUG=1 $CC -I std-include -nostdinc -o nostdinc-main ${./nostdinc-main.c}
+    ./nostdinc-main
+    $CXX -I std-include -nostdinc++ -o nostdinc-main++ ${./nostdinc-main.c}
+    ./nostdinc-main++
+
     ${optionalString sanitizersWorking ''
       printf "checking whether sanitizers are fully functional... ">&2
       $CC -o sanitizers -fsanitize=address,undefined ${./sanitizers.c}
diff --git a/pkgs/test/cc-wrapper/nostdinc-main.c b/pkgs/test/cc-wrapper/nostdinc-main.c
new file mode 100644
index 00000000000..f71d155b1b2
--- /dev/null
+++ b/pkgs/test/cc-wrapper/nostdinc-main.c
@@ -0,0 +1,8 @@
+// This one should not come from libc because of -nostdinc
+#include <stdio.h>
+
+int main(int argc, char *argv[]) {
+  // provided by our own stdio.h
+  foo();
+  return 0;
+}
diff --git a/pkgs/test/cc-wrapper/stdio.h b/pkgs/test/cc-wrapper/stdio.h
new file mode 100644
index 00000000000..4bddf1d9d48
--- /dev/null
+++ b/pkgs/test/cc-wrapper/stdio.h
@@ -0,0 +1 @@
+static void foo(void) {}
diff --git a/pkgs/tools/X11/alttab/default.nix b/pkgs/tools/X11/alttab/default.nix
index d77f2f1c71b..7917ad5215e 100644
--- a/pkgs/tools/X11/alttab/default.nix
+++ b/pkgs/tools/X11/alttab/default.nix
@@ -2,7 +2,7 @@
 , xorg }:
 
 stdenv.mkDerivation rec {
-  version = "1.4.0";
+  version = "1.5.0";
 
   pname = "alttab";
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "sagb";
     repo = pname;
     rev = "v${version}";
-    sha256 = "028ifp54yl3xq5mj2ww9baga8p56nmrx4ypvj8k35akcaxdpyga9";
+    sha256 = "026xd1bkg10fj2q1n6xx797xk1grpby25qj1pnw2lp4f3vc19qn6";
   };
 
   nativeBuildInputs = [ 
diff --git a/pkgs/tools/X11/ckbcomp/default.nix b/pkgs/tools/X11/ckbcomp/default.nix
index 74a6777d949..91e067e7be7 100644
--- a/pkgs/tools/X11/ckbcomp/default.nix
+++ b/pkgs/tools/X11/ckbcomp/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ckbcomp";
-  version = "1.195";
+  version = "1.196";
 
   src = fetchFromGitLab {
     domain = "salsa.debian.org";
     owner = "installer-team";
     repo = "console-setup";
     rev = version;
-    sha256 = "0d0xagigs5k3appzz5lzxdjncvnkgz4amz6ks7imiq8kkjixvmfy";
+    sha256 = "0c79rycgpna8910as6blw3z3sajzzakz4qlvr6js2yr8zq2d0ylg";
   };
 
   buildInputs = [ perl ];
diff --git a/pkgs/tools/X11/dex/default.nix b/pkgs/tools/X11/dex/default.nix
index af8188883d9..22d6c1bfdec 100644
--- a/pkgs/tools/X11/dex/default.nix
+++ b/pkgs/tools/X11/dex/default.nix
@@ -1,28 +1,21 @@
-{ stdenv, fetchFromGitHub, python3, fetchpatch }:
+{ stdenv, fetchFromGitHub, python3 }:
 
 stdenv.mkDerivation rec {
   program = "dex";
   name = "${program}-${version}";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "jceb";
     repo = program;
     rev = "v${version}";
-    sha256 = "13dkjd1373mbvskrdrp0865llr3zvdr90sc6a6jqswh3crmgmz4k";
+    sha256 = "03aapcywnz4kl548cygpi25m8adwbmqlmwgxa66v4156ax9dqs86";
   };
 
   propagatedBuildInputs = [ python3 ];
   nativeBuildInputs = [ python3.pkgs.sphinx ];
   makeFlags = [ "PREFIX=$(out)" "VERSION=$(version)" ];
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/jceb/dex/commit/107358ddf5e1ca4fa56ef1a7ab161dc3b6adc45a.patch";
-      sha256 = "06dfkfzxp8199by0jc5wim8g8qw38j09dq9p6n9w4zaasla60pjq";
-    })
-  ];
-
   meta = with stdenv.lib; {
     description = "A program to generate and execute DesktopEntry files of the Application type";
     homepage = "https://github.com/jceb/dex";
diff --git a/pkgs/tools/X11/grobi/default.nix b/pkgs/tools/X11/grobi/default.nix
index a2cca87edc0..111d064ad88 100644
--- a/pkgs/tools/X11/grobi/default.nix
+++ b/pkgs/tools/X11/grobi/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, fetchFromGitHub, buildGoPackage }:
+{ stdenv, fetchFromGitHub, buildGoModule }:
 
-buildGoPackage {
-  version = "0.5.1";
+buildGoModule rec {
+  version = "0.6.0";
   pname = "grobi";
 
-  goPackagePath = "github.com/fd0/grobi";
-
   src = fetchFromGitHub {
-    rev = "5ddc167b9e4f84755a515828360abda15c54b7de";
+    rev = "v${version}";
     owner = "fd0";
     repo = "grobi";
-    sha256 = "0iyxidq60pf6ki52f8fffplf10nl8w9jx1b7igg98csnc6iqxh89";
+    sha256 = "032lvnl2qq9258y6q1p60lfi7qir68zgq8zyh4khszd3wdih7y3s";
   };
 
-   meta = with stdenv.lib; {
+  vendorSha256 = "1ibwx5rbxkygfx78j3g364dmbwwa5b34qmzq3sqcbrsnv8rzrwvj";
+
+  meta = with stdenv.lib; {
     homepage = "https://github.com/fd0/grobi";
     description = "Automatically configure monitors/outputs for Xorg via RANDR";
     license = with licenses; [ bsd2 ];
diff --git a/pkgs/tools/X11/nx-libs/default.nix b/pkgs/tools/X11/nx-libs/default.nix
index 42444e5fca1..ceb2534e07a 100644
--- a/pkgs/tools/X11/nx-libs/default.nix
+++ b/pkgs/tools/X11/nx-libs/default.nix
@@ -2,12 +2,12 @@
   libpng, libtool, libxml2, pkgconfig, which, xorg }:
 stdenv.mkDerivation rec {
   pname = "nx-libs";
-  version = "3.5.99.23";
+  version = "3.5.99.24";
   src = fetchFromGitHub {
     owner = "ArcticaProject";
     repo = "nx-libs";
     rev = version;
-    sha256 = "0hcsic9bf8w4ja3xy2nka8hcjvidqzjafn1bwr34l5l47h0kbyqz";
+    sha256 = "0knx4phya90ahjxaflkvnnb7w22vdwjf7r78dhzmbmlccnlvwi7q";
   };
 
   nativeBuildInputs = [ autoconf automake libtool pkgconfig which
diff --git a/pkgs/tools/X11/wmutils-libwm/default.nix b/pkgs/tools/X11/wmutils-libwm/default.nix
new file mode 100644
index 00000000000..72022621afe
--- /dev/null
+++ b/pkgs/tools/X11/wmutils-libwm/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, libxcb }:
+
+stdenv.mkDerivation rec {
+  pname = "wmutils-libwm";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "wmutils";
+    repo = "libwm";
+    rev = "v${version}";
+    sha256 = "1lpbqrilhffpzc0b7vnp08jr1wr96lndwc7y0ck8hlbzlvm662l0";
+  };
+
+  buildInputs = [ libxcb ];
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    description = "A small library for X window manipulation";
+    homepage = "https://github.com/wmutils/libwm";
+    license = licenses.isc;
+    maintainers = with maintainers; [ bhougland ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/X11/xidlehook/default.nix b/pkgs/tools/X11/xidlehook/default.nix
index e15bee331a8..35f0d73ea0b 100644
--- a/pkgs/tools/X11/xidlehook/default.nix
+++ b/pkgs/tools/X11/xidlehook/default.nix
@@ -3,7 +3,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "xidlehook";
-  version = "0.8.2";
+  version = "0.9.1";
 
   doCheck = false;
 
@@ -12,11 +12,11 @@ rustPlatform.buildRustPackage rec {
     repo = "xidlehook";
     rev = version;
 
-    sha256 = "1zvr3vk76x0gsq6z5rrnliv2bvshsm8bhkspc41bbj4kniz4h5bw";
+    sha256 = "00j2iwp25hz9jlr45qszyipljqdnh7h3ni9bkd2lmk58kkvmhf1s";
   };
 
   cargoBuildFlags = lib.optionals (!stdenv.isLinux) ["--no-default-features" "--features" "pulse"];
-  cargoSha256 = "0dxz5mbdc93xb02vnmd29i2kdh05c7vx9h28x5qgs3jvddyb3xmn";
+  cargoSha256 = "050ihjhg33223x6pgvhqrjprx1clkj2x3jr6acf716vbwm3m0bmz";
 
   buildInputs = [ xlibsWrapper xorg.libXScrnSaver libpulseaudio ] ++ lib.optional stdenv.isDarwin Security;
   nativeBuildInputs = [ pkgconfig patchelf python3 ];
diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix
index 6fe433daf8b..7f46e017c36 100644
--- a/pkgs/tools/X11/xpra/default.nix
+++ b/pkgs/tools/X11/xpra/default.nix
@@ -90,9 +90,12 @@ in buildPythonApplication rec {
     "--with-vsock"
   ];
 
+  dontWrapGApps = true;
   preFixup = ''
-    gappsWrapperArgs+=(
+    makeWrapperArgs+=(
+      "''${gappsWrapperArgs[@]}"
       --set XPRA_INSTALL_PREFIX "$out"
+      --set XPRA_COMMAND "$out/bin/xpra"
       --prefix LD_LIBRARY_PATH : ${libfakeXinerama}/lib
       --prefix PATH : ${stdenv.lib.makeBinPath [ getopt xorgserver xauth which utillinux pulseaudio ]}
     )
diff --git a/pkgs/tools/X11/xpra/libfakeXinerama.nix b/pkgs/tools/X11/xpra/libfakeXinerama.nix
index 712f47fb2c8..e43043d78f2 100644
--- a/pkgs/tools/X11/xpra/libfakeXinerama.nix
+++ b/pkgs/tools/X11/xpra/libfakeXinerama.nix
@@ -11,8 +11,6 @@ stdenv.mkDerivation  rec {
 
   buildInputs = [ libX11 libXinerama ];
 
-  phases = [ "unpackPhase" "buildPhase" "installPhase" ];
-
   buildPhase = ''
     gcc -O2 -Wall fakeXinerama.c -fPIC -o libfakeXinerama.so.1.0 -shared
   '';
@@ -20,6 +18,7 @@ stdenv.mkDerivation  rec {
   installPhase = ''
     mkdir -p $out/lib
     cp libfakeXinerama.so.1.0 $out/lib
+    ln -s libfakeXinerama.so.1.0 $out/lib/libXinerama.so.1.0
     ln -s libXinerama.so.1.0 $out/lib/libXinerama.so.1
     ln -s libXinerama.so.1 $out/lib/libXinerama.so
   '';
diff --git a/pkgs/tools/admin/ansible/default.nix b/pkgs/tools/admin/ansible/default.nix
index 174aef7c4ba..58b2852baca 100644
--- a/pkgs/tools/admin/ansible/default.nix
+++ b/pkgs/tools/admin/ansible/default.nix
@@ -1,27 +1,32 @@
-{ python3Packages, fetchurl }:
+{ python3Packages, fetchurl, fetchFromGitHub }:
 
 rec {
-  ansible = ansible_2_9;
+  ansible = ansible_2_10;
 
-  ansible_2_9 = python3Packages.toPythonApplication python3Packages.ansible;
-
-  ansible_2_8 = python3Packages.toPythonApplication (python3Packages.ansible.overridePythonAttrs (old: rec {
+  # The python module stays at v2.9.x until the related package set has caught up. Therefore v2.10 gets an override
+  # for now.
+  ansible_2_10 = python3Packages.toPythonApplication (python3Packages.ansible.overridePythonAttrs (old: rec {
     pname = "ansible";
-    version = "2.8.12";
+    version = "2.10.0";
 
-    src = fetchurl {
-      url = "https://releases.ansible.com/ansible/${pname}-${version}.tar.gz";
-      sha256 = "091id1da3hlnmf0hwvrhv2r0mnyna3mc6s7rwdg5kll7yfiy4k1a";
+    # TODO: migrate to fetchurl, when release becomes available on releases.ansible.com
+    src = fetchFromGitHub {
+      owner = pname;
+      repo = pname;
+      rev = "v${version}";
+      sha256 = "0k9rs5ajx0chaq0xr1cj4x7fr5n8kd4y856miss6k01iv2m7yx42";
     };
   }));
 
-  ansible_2_7 = python3Packages.toPythonApplication (python3Packages.ansible.overridePythonAttrs (old: rec {
+  ansible_2_9 = python3Packages.toPythonApplication python3Packages.ansible;
+
+  ansible_2_8 = python3Packages.toPythonApplication (python3Packages.ansible.overridePythonAttrs (old: rec {
     pname = "ansible";
-    version = "2.7.18";
+    version = "2.8.14";
 
     src = fetchurl {
       url = "https://releases.ansible.com/ansible/${pname}-${version}.tar.gz";
-      sha256 = "0sgshaaqyjq3i035yi5hivmrrwrq05hxrbjrv1w3hfzmvljn41d1";
+      sha256 = "19ga0c9qs2b216qjg5k2yknz8ksjn8qskicqspg2d4b8x2nr1294";
     };
   }));
 }
diff --git a/pkgs/tools/admin/aws-vault/default.nix b/pkgs/tools/admin/aws-vault/default.nix
index 0216660e1ec..1efbff221a6 100644
--- a/pkgs/tools/admin/aws-vault/default.nix
+++ b/pkgs/tools/admin/aws-vault/default.nix
@@ -1,16 +1,19 @@
 { buildGoModule, lib, fetchFromGitHub }:
 buildGoModule rec {
   pname = "aws-vault";
-  version = "5.4.4";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "99designs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0qmxq2jd7dg5fp9giw6xd96q2l2df3sxksc0rwmrgx2rjx6iyivn";
+    sha256 = "0ssm58ksk5jb28w1ipa57spzf6wixjy1m7flw61ls8k86cy7qb7c";
   };
 
-  vendorSha256 = "0jlraq480llamns6yw8yjkzxsndyqiyzy120djni8sw5h0bz65j7";
+  vendorSha256 = "0lxm7nkzf9j9id7m46gqn26prb1jfl34gy1fycr0578absdvsrjd";
+
+  doCheck = false;
+
   subPackages = [ "." ];
 
   # set the version. see: aws-vault's Makefile
@@ -26,4 +29,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix
index 02d25b07ab1..4045ab110a8 100644
--- a/pkgs/tools/admin/awscli/default.nix
+++ b/pkgs/tools/admin/awscli/default.nix
@@ -19,11 +19,11 @@ let
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "awscli";
-  version = "1.18.80"; # N.B: if you change this, change botocore to a matching version too
+  version = "1.18.128"; # N.B: if you change this, change botocore to a matching version too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0519rlc0m0888ag7s55lz516vsgif5pws6rzhmclbbw38g4wmb2k";
+    sha256 = "c146c1634edbedc32564c536afcaaaeedc3ecc5aa9db3cf64fe5870c1c1a2a32";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/admin/awscli2/default.nix b/pkgs/tools/admin/awscli2/default.nix
new file mode 100644
index 00000000000..bcf0a6c4b0c
--- /dev/null
+++ b/pkgs/tools/admin/awscli2/default.nix
@@ -0,0 +1,86 @@
+{ lib
+, python3
+, groff
+, less
+, fetchFromGitHub
+}:
+let
+  py = python3.override {
+    packageOverrides = self: super: {
+      botocore = super.botocore.overridePythonAttrs (oldAttrs: rec {
+        version = "2.0.0dev50";
+        src = fetchFromGitHub {
+          owner = "boto";
+          repo = "botocore";
+          rev = "e3dceaf9052cc8e221ea757207d5ba37054af2b8";
+          sha256 = "0fcf78il4z6gr4gg0jy2h5045ifkslsgldnk6zyvzcl5gykp8i2f";
+        };
+      });
+      prompt_toolkit = super.prompt_toolkit.overridePythonAttrs (oldAttrs: rec {
+        version = "2.0.10";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "1nr990i4b04rnlw1ghd0xmgvvvhih698mb6lb6jylr76cs7zcnpi";
+        };
+      });
+    };
+  };
+
+in
+with py.pkgs; buildPythonApplication rec {
+  pname = "awscli2";
+  version = "2.0.46"; # N.B: if you change this, change botocore to a matching version too
+
+  src = fetchFromGitHub {
+    owner = "aws";
+    repo = "aws-cli";
+    rev = version;
+    hash = "sha256:10bq4m7hsmj1m7nwr3jgpfvm8bx091vl2hig574r1bjmsi32vy58";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "cryptography>=2.8.0,<=2.9.0" "cryptography>=2.8.0"
+    substituteInPlace setup.py --replace "docutils>=0.10,<0.16" "docutils>=0.10"
+    substituteInPlace setup.py --replace "ruamel.yaml>=0.15.0,<0.16.0" "ruamel.yaml>=0.15.0"
+    substituteInPlace setup.py --replace "wcwidth<0.2.0" "wcwidth"
+  '';
+
+  # No tests included
+  doCheck = false;
+
+  propagatedBuildInputs = [
+    bcdoc
+    botocore
+    colorama
+    cryptography
+    distro
+    docutils
+    groff
+    less
+    prompt_toolkit
+    pyyaml
+    rsa
+    ruamel_yaml
+    s3transfer
+    six
+    wcwidth
+  ];
+
+  postInstall = ''
+    mkdir -p $out/etc/bash_completion.d
+    echo "complete -C $out/bin/aws_completer aws" > $out/etc/bash_completion.d/awscli
+    mkdir -p $out/share/zsh/site-functions
+    mv $out/bin/aws_zsh_completer.sh $out/share/zsh/site-functions
+    rm $out/bin/aws.cmd
+  '';
+
+  passthru.python = py; # for aws_shell
+
+  meta = with lib; {
+    homepage = "https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html";
+    changelog = "https://github.com/aws/aws-cli/blob/${version}/CHANGELOG.rst";
+    description = "Unified tool to manage your AWS services";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bhipple davegallant ];
+  };
+}
diff --git a/pkgs/tools/admin/awsweeper/default.nix b/pkgs/tools/admin/awsweeper/default.nix
index 372d287cbd2..2417854fcad 100644
--- a/pkgs/tools/admin/awsweeper/default.nix
+++ b/pkgs/tools/admin/awsweeper/default.nix
@@ -19,6 +19,8 @@ buildGoModule rec {
 
   vendorSha256 = "0hnpb1xp135z2qpn1b6xad59739hffhs8dfpr3n5drmrvajpn4xp";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "A tool to clean out your AWS account";
     homepage = "https://github.com/cloudetc/awsweeper/";
diff --git a/pkgs/tools/admin/azure-cli/default.nix b/pkgs/tools/admin/azure-cli/default.nix
index 4cfe1beb2cd..3743cad11a3 100644
--- a/pkgs/tools/admin/azure-cli/default.nix
+++ b/pkgs/tools/admin/azure-cli/default.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, python, fetchFromGitHub, installShellFiles }:
 
 let
-  version = "2.7.0";
+  version = "2.11.1";
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "azure-cli";
     rev = "azure-cli-${version}";
-    sha256 = "0g0ddg04pwcsmyyzrqllx4ladw4x5zxc5yw29q8f6q59j6jaf1zb";
+    sha256 = "11jmgc73b0w725rq89j6hk6gh67nfdbzp3rmywmrnah683d6xbpx";
   };
 
   # put packages that needs to be overriden in the py package scope
@@ -105,10 +105,13 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     azure-mgmt-sql
     azure-mgmt-sqlvirtualmachine
     azure-mgmt-storage
+    azure-mgmt-synapse
     azure-mgmt-trafficmanager
     azure-mgmt-web
     azure-multiapi-storage
     azure-storage-blob
+    azure-synapse-accesscontrol
+    azure-synapse-spark
     colorama
     cryptography
     Fabric
diff --git a/pkgs/tools/admin/azure-cli/python-packages.nix b/pkgs/tools/admin/azure-cli/python-packages.nix
index 820659c68a2..8d17c9ff201 100644
--- a/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -21,7 +21,10 @@ let
   });
 
   overrideAzureMgmtPackage = package: version: extension: sha256:
-    package.overrideAttrs(oldAttrs: rec {
+    # check to make sure overriding is even necessary
+    if version == package.version then
+      package
+    else package.overrideAttrs(oldAttrs: rec {
       inherit version;
 
       src = py.pkgs.fetchPypi {
@@ -121,11 +124,11 @@ let
       azure-mgmt-apimanagement = overrideAzureMgmtPackage super.azure-mgmt-apimanagement "0.1.0" "zip"
         "06bqqkn5mx127x1z7ycm6rl8ajxlrmrm2kcdpgkbl4baii1x6iax";
 
-      azure-mgmt-batch = overrideAzureMgmtPackage super.azure-mgmt-batch "7.0.0" "zip"
-        "18dwgbwk1kc0pdqa85hbsm9312l50rf8ymb60fia1c9rni9bdi8n";
+      azure-mgmt-batch = overrideAzureMgmtPackage super.azure-mgmt-batch "9.0.0" "zip"
+        "1zn3yqwvm2f3sy8v0xvj4yb7m8kxxm1wpcaccxp91b0zzbn7wh83";
 
-      azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "0.4.0" "zip"
-        "1b69rz9wm0jvc54vx3b7h633x8gags51xwxrkp6myar40jggxw6g";
+      azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "0.5.0" "zip"
+        "1wxh7mgrknnhqyafdd7sbwx8plx0zga2af21vs6yhxy48lw9w8pd";
 
       azure-mgmt-rdbms = overrideAzureMgmtPackage super.azure-mgmt-rdbms "2.2.0" "zip"
         "1iz1pf28ajrzbq8nab1jbjbgfbv0g6ni036xayy6xylvga4l8czr";
@@ -136,35 +139,41 @@ let
       azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "0.6.0" "zip"
         "13s2k4jl8570bj6jkqzm0w29z29rl7h5i7czd3kr6vqar5wj9xjd";
 
-      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "9.0.0" "zip"
-        "00bmdbr7hdwb3ibr9sfbgbmmr6626qlz19cdi84d87rcisczf4nw";
+      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "10.2.0" "zip"
+        "ddfe4c0c55f0e3fd1f66dd82c1d4a3d872ce124639b9a77fcd172daf464438a5";
 
-      azure-mgmt-appconfiguration = overrideAzureMgmtPackage super.azure-mgmt-appconfiguration "0.4.0" "zip"
-        "1dn5585nsizszjivx6lp677ka0mrg0ayqgag4yzfdz9ml8mj1xl5";
+      azure-mgmt-appconfiguration = overrideAzureMgmtPackage super.azure-mgmt-appconfiguration "0.5.0" "zip"
+        "1nh626jg459p9f96glv74dph3vmpybm5cs8rrj1s65kn3m8jf591";
 
-      azure-mgmt-cognitiveservices = overrideAzureMgmtPackage super.azure-mgmt-cognitiveservices "5.0.0" "zip"
-        "1m7v3rfkvmdgghrpz15fm8pvmmhi40lcwfxdm2kxh7mx01r5l906";
+      azure-mgmt-cognitiveservices = overrideAzureMgmtPackage super.azure-mgmt-cognitiveservices "6.2.0" "zip"
+        "1khk9jdfx7706xsqpwrnfsplv6p6wracvpyk9ki8zhc7p83kal4k";
 
-      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "12.0.0" "zip"
-        "0vzq93g2fpnij4rykkk3391xq2knhlbz87vhim4zvj8s45sx6z8q";
+      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "13.0.0" "zip"
+        "17ik8lfd74ki57rml2piswcanzbladsqy0s2m9jmvwpdrfpincvz";
 
       azure-mgmt-consumption = overrideAzureMgmtPackage super.azure-mgmt-consumption "2.0.0" "zip"
         "12ai4qps73ivawh0yzvgb148ksx02r30pqlvfihx497j62gsi1cs";
 
+      azure-mgmt-containerinstance = overrideAzureMgmtPackage super.azure-mgmt-containerinstance "1.4.0" "zip"
+        "1qw6228bia5pimcijr755npli2l33jyfka1s2bzgl1w4h3prsji7";
+
       azure-mgmt-containerservice = overrideAzureMgmtPackage super.azure-mgmt-containerservice "9.0.1" "zip"
         "11nqjpi9qypb0xvfy63l98q5m5jfv5iqx15mliksm96vkdkmji3y";
 
-      azure-mgmt-core = overrideAzureMgmtPackage super.azure-mgmt-core "1.0.0" "zip"
-        "0pm565v05480f672l0n8z2sg6zk6iqyi91n0dhscibhdl54sy3si";
+      azure-mgmt-core = overrideAzureMgmtPackage super.azure-mgmt-core "1.2.0" "zip"
+        "8fe3b59446438f27e34f7b24ea692a982034d9e734617ca1320eedeee1939998";
 
-      azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "0.14.0" "zip"
-        "1af2vigpmcg2mp36dqi9g2dx4589bqm4w2af9dx6l9x65zfl89b9";
+      azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "0.15.0" "zip"
+        "03ysr8kx0gavjrxsi9wqrgxpg3g17nvii7z68qfm0k2mv6ryj3z7";
 
       azure-mgmt-deploymentmanager = overrideAzureMgmtPackage super.azure-mgmt-deploymentmanager "0.2.0" "zip"
         "0c6pyr36n9snx879vas5r6l25db6nlp2z96xn759mz4kg4i45qs6";
 
-      azure-mgmt-imagebuilder = overrideAzureMgmtPackage super.azure-mgmt-imagebuilder "0.2.1" "zip"
-        "0mwlvy4x5nr3hsz7wdpdhpzwarzzwz4225bfpd68hr0pcjgzspky";
+      azure-mgmt-eventgrid = overrideAzureMgmtPackage super.azure-mgmt-eventgrid "3.0.0rc7" "zip"
+        "1m5905mn362pn03sf89zsnylkrbgs4p1lkafrw3nxa2gnwcfpyb8";
+
+      azure-mgmt-imagebuilder = overrideAzureMgmtPackage super.azure-mgmt-imagebuilder "0.4.0" "zip"
+        "0cqpjnkpid6a34ifd4vk4fn1h57pa1bg3r756wv082xl2szr34jc";
 
       azure-mgmt-iothub = overrideAzureMgmtPackage super.azure-mgmt-iothub "0.12.0" "zip"
         "187z0w5by7d9a2zsz3kidmzjw591akpc6dwhps4jyb4skcmyw86s";
@@ -178,17 +187,17 @@ let
       azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "4.0.0" "zip"
         "1397ksrd61jv7400mgn8sqngp6ahir55fyq9n5k69wk88169qm2r";
 
-      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "0.8.0" "zip"
-        "0vbg5mpahrnnnbj80flgzxxiffic94wsc9srm4ir85y2j5rprpv7";
+      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "0.12.0" "zip"
+        "7d773119bc02e3d6f9d7cffb7effc17e85676d5c5b1f656d05abc4489e472c76";
 
       azure-mgmt-dns = overrideAzureMgmtPackage super.azure-mgmt-dns "2.1.0" "zip"
         "1l55py4fzzwhxlmnwa41gpmqk9v2ncc79w7zq11sm9a5ynrv2c1p";
 
-      azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "0.6.0" "zip"
-        "0ffhlbd9fwx05njawhii46wqyvbhhz2xcfx0pxc7b978n7l7ylm1";
+      azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "0.7.0" "zip"
+        "18n2lqvrhq40gdqhlzzg8mc03571i02c7qq7jv771lc58rqpzysh";
 
-      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "10.2.0" "zip"
-        "1nd2rcwl83x3xq4h5brb16jwbbq57gyxz6pgvmhnign9q76p836m";
+      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "11.0.0" "zip"
+        "1g39rl4p88bzhqbn1gi2nn8jyx77idxvpaw8xqz1gjv0qqqwdpvz";
 
       azure-mgmt-media = overrideAzureMgmtPackage super.azure-mgmt-media "2.1.0" "zip"
         "1py0hch0wghzfxazdrrs7p0kln2zn9jh3fmkzwd2z8qggj38q6gm";
@@ -196,8 +205,8 @@ let
       azure-mgmt-msi = overrideAzureMgmtPackage super.azure-mgmt-msi "0.2.0" "zip"
         "0rvik03njz940x2hvqg6iiq8k0d88gyygsr86w8s0sa12sdbq8l6";
 
-      azure-mgmt-web = overrideAzureMgmtPackage super.azure-mgmt-web "0.46.0" "zip"
-        "19n4cr8a2fwjks3485rkv31bsib9akah5b289sl5lsqyp6i8m671";
+      azure-mgmt-web = overrideAzureMgmtPackage super.azure-mgmt-web "0.47.0" "zip"
+        "1s6c477q2kpyiqkisw6l70ydyjkv3ay6zjjj4jl4ipv05a7356kq";
 
       azure-mgmt-redhatopenshift = overrideAzureMgmtPackage super.azure-mgmt-redhatopenshift "0.1.0" "zip"
         "1g65lbia1i1jw6qkyjz2ldyl3p90rbr78l8kfryg70sj7z3gnnjn";
@@ -208,38 +217,41 @@ let
       azure-mgmt-reservations = overrideAzureMgmtPackage super.azure-mgmt-reservations "0.6.0" "zip"
         "16ycni3cjl9c0mv419gy5rgbrlg8zp0vnr6aj8z8p2ypdw6sgac3";
 
-      azure-mgmt-security = overrideAzureMgmtPackage super.azure-mgmt-security "0.1.0" "zip"
-        "1cb466722bs0ribrirb32kc299716pl0pwivz3jyn40dd78cwhhx";
+      azure-mgmt-security = overrideAzureMgmtPackage super.azure-mgmt-security "0.4.1" "zip"
+        "08gf401d40bd1kn9wmpxcjxqdh84cd9hxm8rdjd0918483sqs71r";
 
-      azure-mgmt-signalr = overrideAzureMgmtPackage super.azure-mgmt-signalr "0.3.0" "zip"
-        "08b2i6wz9n13h77ahay1hvmg8abk2vvs7kn4y7xip9gi6ij8fv0a";
+      azure-mgmt-signalr = overrideAzureMgmtPackage super.azure-mgmt-signalr "0.4.0" "zip"
+        "09n12ligh301z4xwixl50n8f1rgd2k6lpsxqzr6n6jvgkpdds0v5";
 
-      azure-mgmt-sql = overrideAzureMgmtPackage super.azure-mgmt-sql "0.18.0" "zip"
-        "0i9lnhcx85xccddvz1wdz5j0idm6sw2cn3066dww5993nmg0ijlr";
+      azure-mgmt-sql = overrideAzureMgmtPackage super.azure-mgmt-sql "0.19.0" "zip"
+        "1iiqc0kh5hygcvr3x1653cpjnf5na3j11v137xa9xy65r7a4jik9";
 
       azure-mgmt-sqlvirtualmachine = overrideAzureMgmtPackage super.azure-mgmt-sqlvirtualmachine "0.5.0" "zip"
         "1b9am8raa17hxnz7d5pk2ix0309wsnhnchq1mi22icd728sl5adm";
 
+      azure-mgmt-synapse = overrideAzureMgmtPackage super.azure-mgmt-synapse "0.3.0" "zip"
+        "0sa12s5af9xl1wnblilswxc6ydr2anm9an000iz3ks54pydby2vy";
+
       azure-mgmt-datamigration = overrideAzureMgmtPackage super.azure-mgmt-datamigration "0.1.0" "zip"
         "1pq5rn32yvrf5kqjafnj0kc92gpfg435w2l0k7cm8gvlja4r4m77";
 
       azure-mgmt-relay = overrideAzureMgmtPackage super.azure-mgmt-relay "0.1.0" "zip"
         "1jss6qhvif8l5s0lblqw3qzijjf0h88agciiydaa7f4q577qgyfr";
 
-      azure-mgmt-eventhub = overrideAzureMgmtPackage super.azure-mgmt-eventhub "3.0.0" "zip"
-        "05c6isg13dslds94kv28v6navxj4bp4c5lsd9df0g3ndsxvpdrxp";
+      azure-mgmt-eventhub = overrideAzureMgmtPackage super.azure-mgmt-eventhub "4.0.0" "zip"
+        "1qisnwn0gqfsa3h5x0fdbsgdjwn92hdbg71gdijrja0kryb328k5";
 
-      azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "2.2.0" "zip"
-        "1r5ww9ndya6sifafrbp4cr5iyyaww2ns7wrbqm6hc6aqxcpf30qq";
+      azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "7.0.0b2" "zip"
+        "10kpfzgsyh648a9z194vysgfl5887qwwamyd1r32zfqi9fr4js5l";
 
-      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "4.1.0rc1" "zip"
-        "00q5723gvc57kg2w1iyhfchp018skwd89ibrw23p7ngm2bb76g45";
+      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "5.0.0" "zip"
+        "0y1bq6lirwx4n8zydi49jx72xfc7dppzhy82x22sx98id8lxgcwm";
 
-      azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "3.0.0rc12" "zip"
-        "0q7w26n53x0lvr1a944jjl9d0yn0l029brx5nzfrz7ydf3jpb2i2";
+      azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "3.0.0rc14" "zip"
+        "0w9hnxvk5pcsa21g3xrr089rfwgldghrbj8akzvh0gchqlzfjg6j";
 
-      azure-mgmt-monitor = overrideAzureMgmtPackage super.azure-mgmt-monitor "0.9.0" "zip"
-        "170jyr1qzwhv5ihyrsg5d8qzjylqmg31dscd31jzi4i7bwqf3sb8";
+      azure-mgmt-monitor = overrideAzureMgmtPackage super.azure-mgmt-monitor "0.11.0" "zip"
+        "05jhn66d4sl1qi6w34rqd8wl500jndismiwhdmzzmprdvn1zxqf6";
 
       azure-mgmt-advisor =  overrideAzureMgmtPackage super.azure-mgmt-advisor "2.0.1" "zip"
         "1wsfkprdrn22mwm24y2zlcms8ppp7jwq3s86r3ymbl29pbaxca8r";
@@ -250,14 +262,17 @@ let
       azure-mgmt-authorization = overrideAzureMgmtPackage super.azure-mgmt-authorization "0.52.0" "zip"
         "0357laxgldb7lvvws81r8xb6mrq9dwwnr1bnwdnyj4bw6p21i9hn";
 
-      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "9.0.0" "zip"
-        "198r51av2rd1mr3q9j8jibhd14w0v8k59ipc3czsm4g1n44adgkl";
+      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "11.1.0" "zip"
+        "073zybsxk70vg02bflbrx97pwzsxl0xyi48fpxp8dh3d3dy5h8zg";
 
       azure-mgmt-servicefabric = overrideAzureMgmtPackage super.azure-mgmt-servicefabric "0.4.0" "zip"
         "1x18grkjf2p2r1ihlwv607sna9yjvsr2jwnkjc55askrgrwx5jx2";
 
-      azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "1.4.0" "zip"
-        "0zmmfj7z1zrayjqwqybcn3bwm47d2ngyxm1g6fh2iw5c2f9czycv";
+      azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "1.7.0" "zip"
+        "004q3d2kj1i1cx3sad1544n3pkindfm255sw19gdlhbw61wn5l5a";
+
+      azure-multiapi-storage = overrideAzureMgmtPackage super.azure-multiapi-storage "0.4.1" "zip"
+        "0h7bzaqwyl3j9xqzjbnwxp59kmg6shxk76pml9kvvqbwsq9w6fx3";
 
       azure-graphrbac = super.azure-graphrbac.overrideAttrs(oldAttrs: rec {
         version = "0.60.0";
@@ -288,6 +303,26 @@ let
         };
       });
 
+      azure-synapse-accesscontrol = super.azure-synapse-accesscontrol.overrideAttrs(oldAttrs: rec {
+        version = "0.2.0";
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "1rsdqrhrgy09kbw6c7krb4hlaxs1ldb6lilwrbxgp3zqybxxnh5b";
+          extension = "zip";
+        };
+      });
+
+      azure-synapse-spark = super.azure-synapse-spark.overrideAttrs(oldAttrs: rec {
+        version = "0.2.0";
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "1qijqp6llshqas422lnqvpv45iv99n7f13v86znql40y3jp5n3ir";
+          extension = "zip";
+        };
+      });
+
       azure-keyvault = super.azure-keyvault.overrideAttrs(oldAttrs: rec {
         version = "1.1.0";
         src = super.fetchPypi {
@@ -322,13 +357,26 @@ let
         '';
       });
 
+      cryptography = super.cryptography.overridePythonAttrs(oldAttrs: rec {
+        version = "2.9.2";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "0af25w5mkd6vwns3r6ai1w5ip9xp0ms9s261zzssbpadzdr05hx0";
+        };
+
+        # prevent cycle with cryptography-vectors
+        doCheck = false;
+      });
+
       knack = super.knack.overridePythonAttrs(oldAttrs: rec {
-        version = "0.7.1";
+        version = "0.7.2";
 
         src = super.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
-          sha256 = "1z50vf0q7kzg3cq9cr24j43ri6wc76dhhklyc9lpvgjf2r061vzw";
+          sha256 = "1jh81xyri7wb7vqa049imf6dfy3nc501bq3p0miaka8ffvvaxinz";
         };
       });
 
diff --git a/pkgs/tools/admin/berglas/default.nix b/pkgs/tools/admin/berglas/default.nix
index ecafb139782..050ad9db75d 100644
--- a/pkgs/tools/admin/berglas/default.nix
+++ b/pkgs/tools/admin/berglas/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "A tool for managing secrets on Google Cloud";
     homepage = "https://github.com/GoogleCloudPlatform/berglas";
     license = licenses.asl20;
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/admin/certbot/0001-Don-t-use-distutils.StrictVersion-that-cannot-handle.patch b/pkgs/tools/admin/certbot/0001-Don-t-use-distutils.StrictVersion-that-cannot-handle.patch
deleted file mode 100644
index 789efd185ca..00000000000
--- a/pkgs/tools/admin/certbot/0001-Don-t-use-distutils.StrictVersion-that-cannot-handle.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 0de195de31dc311976af52a7c2b547bc23af2691 Mon Sep 17 00:00:00 2001
-From: Frederik Rietdijk <fridh@fridh.nl>
-Date: Sat, 14 Dec 2019 19:27:14 +0100
-Subject: [PATCH] Don't use distutils.StrictVersion that cannot handle certain
- versions
-
-```
-  File "setup.py", line 63, in <module>
-    if StrictVersion(setuptools_version) >= StrictVersion('36.2'):
-File
-"/nix/store/zdh16dcvjw99ybam59zd2ijb6bx138j0-python3-3.7.5/lib/python3.7/distutils/version.py",
-line 40, in __init__
-    self.parse(vstring)
-File
-"/nix/store/zdh16dcvjw99ybam59zd2ijb6bx138j0-python3-3.7.5/lib/python3.7/distutils/version.py",
-line 137, in parse
-    raise ValueError("invalid version number '%s'" % vstring)
-ValueError: invalid version number '41.4.0.post20191022'
-```
----
- certbot/setup.py | 15 +--------------
- 1 file changed, 1 insertion(+), 14 deletions(-)
-
-diff --git a/certbot/setup.py b/certbot/setup.py
-index d19327e5e..ac1524793 100644
---- a/certbot/setup.py
-+++ b/certbot/setup.py
-@@ -1,5 +1,4 @@
- import codecs
--from distutils.version import StrictVersion
- import os
- import re
- import sys
-@@ -58,20 +57,8 @@ install_requires = [
- 
- # Add pywin32 on Windows platforms to handle low-level system calls.
- # This dependency needs to be added using environment markers to avoid its installation on Linux.
--# However environment markers are supported only with setuptools >= 36.2.
--# So this dependency is not added for old Linux distributions with old setuptools,
--# in order to allow these systems to build certbot from sources.
- pywin32_req = 'pywin32>=227'  # do not forget to edit pywin32 dependency accordingly in windows-installer/construct.py
--if StrictVersion(setuptools_version) >= StrictVersion('36.2'):
--    install_requires.append(pywin32_req + " ; sys_platform == 'win32'")
--elif 'bdist_wheel' in sys.argv[1:]:
--    raise RuntimeError('Error, you are trying to build certbot wheels using an old version '
--                       'of setuptools. Version 36.2+ of setuptools is required.')
--elif os.name == 'nt':
--    # This branch exists to improve this package's behavior on Windows. Without
--    # it, if the sdist is installed on Windows with an old version of
--    # setuptools, pywin32 will not be specified as a dependency.
--    install_requires.append(pywin32_req)
-+install_requires.append(pywin32_req + " ; sys_platform == 'win32'")
- 
- dev_extras = [
-     'coverage',
--- 
-2.24.1
-
diff --git a/pkgs/tools/admin/certigo/default.nix b/pkgs/tools/admin/certigo/default.nix
index 86873d90514..e363df04556 100644
--- a/pkgs/tools/admin/certigo/default.nix
+++ b/pkgs/tools/admin/certigo/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "1l6ajfl04rfbssvijgd5jrppmqc5svfrswdx01x007lr8rvdfd94";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "A utility to examine and validate certificates in a variety of formats";
     homepage = "https://github.com/square/certigo";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/admin/chamber/default.nix b/pkgs/tools/admin/chamber/default.nix
new file mode 100644
index 00000000000..fb21bda4150
--- /dev/null
+++ b/pkgs/tools/admin/chamber/default.nix
@@ -0,0 +1,28 @@
+{ buildGoModule, lib, fetchFromGitHub }:
+buildGoModule rec {
+  pname = "chamber";
+  version = "2.8.2";
+
+  src = fetchFromGitHub {
+    owner = "segmentio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-7L9RaE4LvHRR6MUimze5QpbnfasWJdY4arfS/Usy2q0=";
+  };
+
+  vendorSha256 = null;
+
+  # set the version. see: chamber's Makefile
+  buildFlagsArray = ''
+    -ldflags=
+    -X main.Version=v${version}
+  '';
+
+  meta = with lib; {
+    description =
+      "Chamber is a tool for managing secrets by storing them in AWS SSM Parameter Store.";
+    homepage = "https://github.com/segmentio/chamber";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalekseev ];
+  };
+}
diff --git a/pkgs/tools/admin/clair/default.nix b/pkgs/tools/admin/clair/default.nix
index 77e0638d0d3..565196280ce 100644
--- a/pkgs/tools/admin/clair/default.nix
+++ b/pkgs/tools/admin/clair/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0x31n50vd8660z816as6kms5dkv87b0mhblccpkvd9cbvcv2n37a";
 
+  doCheck = false;
+
   nativeBuildInputs = [ makeWrapper ];
 
   postInstall = ''
@@ -26,4 +28,4 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ marsam ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/admin/docker-credential-gcr/default.nix b/pkgs/tools/admin/docker-credential-gcr/default.nix
index 741d6525969..d45a57c3221 100644
--- a/pkgs/tools/admin/docker-credential-gcr/default.nix
+++ b/pkgs/tools/admin/docker-credential-gcr/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "docker-credential-gcr";
-  version = "2.0.1";
+  version = "2.0.2";
 
   goPackagePath = "github.com/GoogleCloudPlatform/docker-credential-gcr";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "GoogleCloudPlatform";
     repo = "docker-credential-gcr";
     rev = "v${version}";
-    sha256 = "0zazbfjbwclkz848vsyb6zhn95gngwrdhivaiw0m9f8a9xm4bp9r";
+    sha256 = "0m7jx669yf27z2g9gw9vwncpwldrcb3ldlf1xhvbwbijnc2jk866";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/admin/eksctl/default.nix b/pkgs/tools/admin/eksctl/default.nix
index ab309a11a6e..7c240aa4131 100644
--- a/pkgs/tools/admin/eksctl/default.nix
+++ b/pkgs/tools/admin/eksctl/default.nix
@@ -2,22 +2,26 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.22.0";
+  version = "0.26.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    sha256 = "1l7wcx89d7nil5lbr4x2w04lwranz0z83y892v290wv2l0xnmshj";
+    sha256 = "1av5w32ia68j2xrw4m16mzm9jn6xlap93kwi8iqw0s6wgihzadds";
   };
 
-  vendorSha256 = "0fy9m72iciz5pjf2b3323brgi15w6a9fg1m1srpaiay3md87gagg";
+  vendorSha256 = "13sc4yrzgx2sm98whibfy2kjia3yy9cdvibvhbvg2lz2spprjb9v";
+
+  doCheck = false;
 
   subPackages = [ "cmd/eksctl" ];
 
   buildFlags = [ "-tags netgo" "-tags release" ];
 
-  buildFlagsArray = [ "-ldflags=-s -w -X github.com/weaveworks/eksctl/pkg/version.gitCommit=${src.rev} -X github.com/weaveworks/eksctl/pkg/version.buildDate=19700101-00:00:00" ];
+  buildFlagsArray = [
+    "-ldflags=-s -w -X github.com/weaveworks/eksctl/pkg/version.gitCommit=${src.rev} -X github.com/weaveworks/eksctl/pkg/version.buildDate=19700101-00:00:00"
+  ];
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -32,7 +36,6 @@ buildGoModule rec {
     description = "A CLI for Amazon EKS";
     homepage = "https://github.com/weaveworks/eksctl";
     license = licenses.asl20;
-    platforms = platforms.all;
     maintainers = with maintainers; [ xrelkd ];
   };
 }
diff --git a/pkgs/tools/admin/exoscale-cli/default.nix b/pkgs/tools/admin/exoscale-cli/default.nix
index a408746c7fd..bdde2b8f24c 100644
--- a/pkgs/tools/admin/exoscale-cli/default.nix
+++ b/pkgs/tools/admin/exoscale-cli/default.nix
@@ -1,18 +1,19 @@
-{ stdenv, buildGo114Package, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub }:
 
-buildGo114Package rec {
+buildGoPackage rec {
   pname = "exoscale-cli";
-  version = "1.12.0";
+  version = "1.16.1";
 
   src = fetchFromGitHub {
     owner  = "exoscale";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "04ym7mfv565icj3lmd2nrvq9asawwmmzg09681pj9py61ws56bxr";
+    sha256 = "0616nvqrcvn2xdmnkr5sjf1r5qg30b24ry87hhiqi4kz9a92qdx5";
   };
 
   goPackagePath = "github.com/exoscale/cli";
-  goDeps = ./deps.nix;
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev}" ];
 
   # ensures only the cli binary is built and we don't clutter bin/ with submodules
   subPackages = [ "." ];
diff --git a/pkgs/tools/admin/exoscale-cli/deps.nix b/pkgs/tools/admin/exoscale-cli/deps.nix
deleted file mode 100644
index a67ee93a851..00000000000
--- a/pkgs/tools/admin/exoscale-cli/deps.nix
+++ /dev/null
@@ -1,876 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "v0.3.1";
-      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
-    };
-  }
-  {
-    goPackagePath = "github.com/VividCortex/ewma";
-    fetch = {
-      type = "git";
-      url = "https://github.com/VividCortex/ewma";
-      rev = "v1.1.1";
-      sha256 = "14v2dy5gqchjn7k0sd6cx59ms42v681r6xz7cb1kspp4b28a74rw";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/assert";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/assert";
-      rev = "405dbfeb8e38";
-      sha256 = "1l567pi17k593nrd1qlbmiq8z9jy3qs60px2a16fdpzjsizwqx8l";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/chroma";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/chroma";
-      rev = "v0.6.2";
-      sha256 = "1bcppy1s148iikr78qjm0akahn01ywh83a8pw544prr9yc16jvmz";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/colour";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/colour";
-      rev = "60882d9e2721";
-      sha256 = "0iq566534gbzkd16ixg7fk298wd766821vvs80838yifx9yml5vs";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/gometalinter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/gometalinter";
-      rev = "v2.0.11";
-      sha256 = "08p7bwvhpgizif8qi59m8mm3mcny70x9msbk8m8vjpphsq55wha4";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/kong";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/kong";
-      rev = "v0.1.15";
-      sha256 = "1llxabcdzlb2hard0h931knqkdnyjyz8dp3k0nli0m0mags7l31b";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/repr";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/repr";
-      rev = "117648cd9897";
-      sha256 = "05v1rgzdqc8razf702laagrvhvx68xd9yxxmzd3dyz0d6425pdrp";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev = "2efee857e7cf";
-      sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
-    };
-  }
-  {
-    goPackagePath = "github.com/armon/consul-api";
-    fetch = {
-      type = "git";
-      url = "https://github.com/armon/consul-api";
-      rev = "eb2c6b5be1b6";
-      sha256 = "1j6fdr1sg36qy4n4xjl7brq739fpm5npq98cmvklzjc9qrx98nk9";
-    };
-  }
-  {
-    goPackagePath = "github.com/blang/semver";
-    fetch = {
-      type = "git";
-      url = "https://github.com/blang/semver";
-      rev = "v3.5.1";
-      sha256 = "13ws259bwcibkclbr82ilhk6zadm63kxklxhk12wayklj8ghhsmy";
-    };
-  }
-  {
-    goPackagePath = "github.com/cenkalti/backoff";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cenkalti/backoff";
-      rev = "v2.0.0";
-      sha256 = "0k4899ifpir6kmfxli8a2xfj5zdh0xb2jd0fq2r38wzd4pk25ipr";
-    };
-  }
-  {
-    goPackagePath = "github.com/chzyer/logex";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/logex";
-      rev = "v1.1.10";
-      sha256 = "08pbjj3wx9acavlwyr055isa8a5hnmllgdv5k6ra60l5y1brmlq4";
-    };
-  }
-  {
-    goPackagePath = "github.com/chzyer/readline";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/readline";
-      rev = "2972be24d48e";
-      sha256 = "104q8dazj8yf6b089jjr82fy9h1g80zyyzvp3g8b44a7d8ngjj6r";
-    };
-  }
-  {
-    goPackagePath = "github.com/chzyer/test";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/test";
-      rev = "a1ea475d72b1";
-      sha256 = "0rns2aqk22i9xsgyap0pq8wi4cfaxsri4d9q6xxhhyma8jjsnj2k";
-    };
-  }
-  {
-    goPackagePath = "github.com/client9/misspell";
-    fetch = {
-      type = "git";
-      url = "https://github.com/client9/misspell";
-      rev = "v0.3.4";
-      sha256 = "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/etcd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/etcd";
-      rev = "v3.3.10";
-      sha256 = "1x2ii1hj8jraba8rbxz6dmc03y3sjxdnzipdvg6fywnlq1f3l3wl";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/go-etcd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-etcd";
-      rev = "v2.0.0";
-      sha256 = "1xb34hzaa1lkbq5vkzy9vcz6gqwj7hp6cdbvyack2bf28dwn33jj";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/go-semver";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-semver";
-      rev = "v0.2.0";
-      sha256 = "1gghi5bnqj50hfxhqc1cxmynqmh2yk9ii7ab9gsm75y5cp94ymk0";
-    };
-  }
-  {
-    goPackagePath = "github.com/cpuguy83/go-md2man";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cpuguy83/go-md2man";
-      rev = "v1.0.8";
-      sha256 = "1w22dfdamsq63b5rvalh9k2y7rbwfkkjs7vm9vd4a13h2ql70lg2";
-    };
-  }
-  {
-    goPackagePath = "github.com/cyberdelia/templates";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cyberdelia/templates";
-      rev = "ca7fffd4298c";
-      sha256 = "1miakwci9pz95p0jps4i3pyv5ws713ks1wwir5bzrl0yg8klrgw1";
-    };
-  }
-  {
-    goPackagePath = "github.com/danwakefield/fnmatch";
-    fetch = {
-      type = "git";
-      url = "https://github.com/danwakefield/fnmatch";
-      rev = "cbb64ac3d964";
-      sha256 = "0cbf511ppsa6hf59mdl7nbyn2b2n71y0bpkzbmfkdqjhanqh1lqz";
-    };
-  }
-  {
-    goPackagePath = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev = "v1.1.1";
-      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
-    };
-  }
-  {
-    goPackagePath = "github.com/deepmap/oapi-codegen";
-    fetch = {
-      type = "git";
-      url = "https://github.com/deepmap/oapi-codegen";
-      rev = "ee90a3f9f1ae";
-      sha256 = "199nb6aqhllkk891x24h1jffin1x9fx8jdsav9pbc2ki0z8mlji3";
-    };
-  }
-  {
-    goPackagePath = "github.com/dgrijalva/jwt-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgrijalva/jwt-go";
-      rev = "v3.2.0";
-      sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp";
-    };
-  }
-  {
-    goPackagePath = "github.com/dlclark/regexp2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dlclark/regexp2";
-      rev = "v1.1.6";
-      sha256 = "144s81ndviwhyy20ipxvvfvap8phv5p762glxrz6aqxprkxfarj5";
-    };
-  }
-  {
-    goPackagePath = "github.com/dustin/go-humanize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dustin/go-humanize";
-      rev = "v1.0.0";
-      sha256 = "1kqf1kavdyvjk7f8kx62pnm7fbypn9z1vbf8v2qdh3y7z7a0cbl3";
-    };
-  }
-  {
-    goPackagePath = "github.com/exoscale/egoscale";
-    fetch = {
-      type = "git";
-      url = "https://github.com/exoscale/egoscale";
-      rev = "v0.24.0";
-      sha256 = "1ls7blpmhwqxz9cfjc5799q4047pawfda1v1mhyicjdlp3b1z1zi";
-    };
-  }
-  {
-    goPackagePath = "github.com/fatih/camelcase";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fatih/camelcase";
-      rev = "v1.0.0";
-      sha256 = "0z7rw6f5j97dkzqya257dqlxf3cm8zl508081gmnr4bsjhkwpz2l";
-    };
-  }
-  {
-    goPackagePath = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "github.com/getkin/kin-openapi";
-    fetch = {
-      type = "git";
-      url = "https://github.com/getkin/kin-openapi";
-      rev = "v0.2.0";
-      sha256 = "0slv4k55yiqgv5cv51mvfdcckl95wsbvhvrrpmh4wf7q9rk0jkf6";
-    };
-  }
-  {
-    goPackagePath = "github.com/ghodss/yaml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ghodss/yaml";
-      rev = "v1.0.0";
-      sha256 = "0skwmimpy7hlh7pva2slpcplnm912rp3igs98xnqmn859kwa5v8g";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-chi/chi";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-chi/chi";
-      rev = "v4.0.2";
-      sha256 = "1ay9yxzj60l21h4wayrq9sv5ajaqaryy5yyf27z7v2k4a83b5qr6";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-ini/ini";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-ini/ini";
-      rev = "v1.42.0";
-      sha256 = "18ywm8zyv091j1pp5mvx8szl7928chk8lw02br6jy568d7rk4xal";
-    };
-  }
-  {
-    goPackagePath = "github.com/gofrs/uuid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gofrs/uuid";
-      rev = "v3.2.0";
-      sha256 = "1q63mp7bznhfgyw133c0wc0hpcj1cq9bcf7w1f8r6inkcrils1fz";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/lint";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/lint";
-      rev = "c67002cb31c3";
-      sha256 = "0gymbggskjmphqxqcx4s0vnlcz7mygbix0vhwcwv5r67c0bf6765";
-    };
-  }
-  {
-    goPackagePath = "github.com/golangci/lint-1";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golangci/lint-1";
-      rev = "d2cdd8c08219";
-      sha256 = "0viib12a61338411ng4nnd4na4fscsknghk397jdfn00sigyy4ls";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/shlex";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/shlex";
-      rev = "c34317bd91bf";
-      sha256 = "00qivza4hkllfkar2vpqmyxybi0fwqipgijv61dgapq4xddxdq0r";
-    };
-  }
-  {
-    goPackagePath = "github.com/gopherjs/gopherjs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gopherjs/gopherjs";
-      rev = "d547d1d9531e";
-      sha256 = "0rhgxfh8b3qq4imkw6dmv0hxsmflm9pkax8i7a9z8q464z1ixrz7";
-    };
-  }
-  {
-    goPackagePath = "github.com/gordonklaus/ineffassign";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gordonklaus/ineffassign";
-      rev = "1003c8bd00dc";
-      sha256 = "1rkzqvd3z03vq8q8qi9cghvgggsf02ammj9wq8jvpnx6b2sd16nd";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/hcl";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/hcl";
-      rev = "v1.0.0";
-      sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66";
-    };
-  }
-  {
-    goPackagePath = "github.com/inconshreveable/mousetrap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/inconshreveable/mousetrap";
-      rev = "v1.0.0";
-      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
-    };
-  }
-  {
-    goPackagePath = "github.com/jtolds/gls";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jtolds/gls";
-      rev = "v4.20.0";
-      sha256 = "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6";
-    };
-  }
-  {
-    goPackagePath = "github.com/juju/ansiterm";
-    fetch = {
-      type = "git";
-      url = "https://github.com/juju/ansiterm";
-      rev = "720a0952cc2a";
-      sha256 = "0n6j0y7xhashp8gdkdl0r7vlbkdrkymrzxn9hxrx522k2isggs7h";
-    };
-  }
-  {
-    goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
-    fetch = {
-      type = "git";
-      url = "https://github.com/konsorten/go-windows-terminal-sequences";
-      rev = "v1.0.1";
-      sha256 = "1lchgf27n276vma6iyxa0v1xds68n2g8lih5lavqnx5x6q5pw2ip";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pretty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pretty";
-      rev = "v0.1.0";
-      sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pty";
-      rev = "v1.1.1";
-      sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/text";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/text";
-      rev = "v0.1.0";
-      sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
-    };
-  }
-  {
-    goPackagePath = "github.com/labstack/echo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/labstack/echo";
-      rev = "v4.1.11";
-      sha256 = "0b14vgwzznn7wzyjb98xdmq4wjg16l3y62njiwfz4qsm4pwzk405";
-    };
-  }
-  {
-    goPackagePath = "github.com/labstack/gommon";
-    fetch = {
-      type = "git";
-      url = "https://github.com/labstack/gommon";
-      rev = "v0.3.0";
-      sha256 = "18z7akyzm75p6anm4b8qkqgm4iivx50z07hi5wf50w1pbsvbcdi0";
-    };
-  }
-  {
-    goPackagePath = "github.com/lunixbochs/vtclean";
-    fetch = {
-      type = "git";
-      url = "https://github.com/lunixbochs/vtclean";
-      rev = "2d01aacdc34a";
-      sha256 = "1ss88dyx5hr4imvpg5lixvp0cf7c2qm4x9m8mdgshjpm92g5rqmf";
-    };
-  }
-  {
-    goPackagePath = "github.com/magiconair/properties";
-    fetch = {
-      type = "git";
-      url = "https://github.com/magiconair/properties";
-      rev = "v1.8.0";
-      sha256 = "1a10362wv8a8qwb818wygn2z48lgzch940hvpv81hv8gc747ajxn";
-    };
-  }
-  {
-    goPackagePath = "github.com/manifoldco/promptui";
-    fetch = {
-      type = "git";
-      url = "https://github.com/manifoldco/promptui";
-      rev = "v0.3.2";
-      sha256 = "185h0lqm14l9j0yvdsn9njq7jw3j6x3l21jvvczzbcbbrj44q0pl";
-    };
-  }
-  {
-    goPackagePath = "github.com/matryer/moq";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matryer/moq";
-      rev = "6cfb0558e1bd";
-      sha256 = "0x7ss68cvq2aljyw4765iy7divmp8rghpyzlas3nb95qzsfmmpzl";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-colorable";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-colorable";
-      rev = "v0.1.4";
-      sha256 = "1yxcz08kminqr1221zxpibnbzfcgs3fafin0z9zqb3gqvf74jywz";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-isatty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-isatty";
-      rev = "v0.0.10";
-      sha256 = "0jf4hwfwd2cpxrlyv0jzcia809q2bjw7y1m3ciaj2s8lj2jqyf6r";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-runewidth";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-runewidth";
-      rev = "v0.0.3";
-      sha256 = "0lc39b6xrxv7h3v3y1kgz49cgi5qxwlygs715aam6ba35m48yi7g";
-    };
-  }
-  {
-    goPackagePath = "github.com/minio/minio-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/minio/minio-go";
-      rev = "v6.0.44";
-      sha256 = "0sfmd2lf24f7ds16imk63mas6izhjnmprbxad0sil9abvk8r23mk";
-    };
-  }
-  {
-    goPackagePath = "github.com/minio/sha256-simd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/minio/sha256-simd";
-      rev = "v0.1.1";
-      sha256 = "1j0iqsckm97g4l79vd4mc7apbmkdar23jpzqpnpdhwpfd834j8lp";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/go-homedir";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/go-homedir";
-      rev = "v1.1.0";
-      sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/mapstructure";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/mapstructure";
-      rev = "v1.1.2";
-      sha256 = "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr";
-    };
-  }
-  {
-    goPackagePath = "github.com/nicksnyder/go-i18n";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nicksnyder/go-i18n";
-      rev = "v1.10.0";
-      sha256 = "1nlvq85c232z5yjs86pxpmkv7hk6gb5pa6j4hhzgdz85adk2ma04";
-    };
-  }
-  {
-    goPackagePath = "github.com/olekukonko/tablewriter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/olekukonko/tablewriter";
-      rev = "be2c049b30cc";
-      sha256 = "1fr996vpmh6v5q13kfgf0fbi0hksxqg0fnbvj2nqhlsyfp5s8f4w";
-    };
-  }
-  {
-    goPackagePath = "github.com/pelletier/go-toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pelletier/go-toml";
-      rev = "v1.2.0";
-      sha256 = "1fjzpcjng60mc3a4b2ql5a00d5gah84wj740dabv9kq67mpg8fxy";
-    };
-  }
-  {
-    goPackagePath = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev = "v0.9.1";
-      sha256 = "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq";
-    };
-  }
-  {
-    goPackagePath = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev = "v1.0.0";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-    };
-  }
-  {
-    goPackagePath = "github.com/russross/blackfriday";
-    fetch = {
-      type = "git";
-      url = "https://github.com/russross/blackfriday";
-      rev = "v1.5.2";
-      sha256 = "0jzbfzcywqcrnym4gxlz6nphmm1grg6wsl4f0r9x384rn83wkj7c";
-    };
-  }
-  {
-    goPackagePath = "github.com/sergi/go-diff";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sergi/go-diff";
-      rev = "v1.0.0";
-      sha256 = "0swiazj8wphs2zmk1qgq75xza6m19snif94h2m6fi8dqkwqdl7c7";
-    };
-  }
-  {
-    goPackagePath = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev = "v1.4.2";
-      sha256 = "087k2lxrr9p9dh68yw71d05h5g9p5v26zbwd6j7lghinjfaw334x";
-    };
-  }
-  {
-    goPackagePath = "github.com/smartystreets/assertions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smartystreets/assertions";
-      rev = "b2de0cb4f26d";
-      sha256 = "1i7ldgavgl35c7gk25p7bvdr282ckng090zr4ch9mk1705akx09y";
-    };
-  }
-  {
-    goPackagePath = "github.com/smartystreets/goconvey";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smartystreets/goconvey";
-      rev = "68dc04aab96a";
-      sha256 = "1kas5v95fzhr88hg4rjy0vp03y4pzvy3pwwgkfz2yhn5nlj29nk6";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/afero";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/afero";
-      rev = "v1.1.2";
-      sha256 = "0miv4faf5ihjfifb1zv6aia6f6ik7h1s4954kcb8n6ixzhx9ck6k";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/cast";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cast";
-      rev = "v1.3.0";
-      sha256 = "0xq1ffqj8y8h7dcnm0m9lfrh0ga7pssnn2c1dnr09chqbpn4bdc5";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/cobra";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cobra";
-      rev = "v0.0.3";
-      sha256 = "1q1nsx05svyv9fv3fy6xv6gs9ffimkyzsfm49flvl3wnvf1ncrkd";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/jwalterweatherman";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/jwalterweatherman";
-      rev = "v1.0.0";
-      sha256 = "093fmmvavv84pv4q84hav7ph3fmrq87bvspjj899q0qsx37yvdr8";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev = "v1.0.3";
-      sha256 = "1cj3cjm7d3zk0mf1xdybh0jywkbbw7a6yr3y22x9sis31scprswd";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/viper";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/viper";
-      rev = "v1.3.1";
-      sha256 = "1190mg04718r03qriav99sf4kx2n7wdgr8vdni15f74bpbzrdjrl";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/objx";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/objx";
-      rev = "v0.1.1";
-      sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "v1.4.0";
-      sha256 = "187i5g88sxfy4vxpm7dw1gwv29pa2qaq475lxrdh5livh69wqfjb";
-    };
-  }
-  {
-    goPackagePath = "github.com/tsenart/deadcode";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tsenart/deadcode";
-      rev = "210d2dc333e9";
-      sha256 = "05kif593f4wygnrq2fdjhn7kkcpdmgjnykcila85d0gqlb1f36g0";
-    };
-  }
-  {
-    goPackagePath = "github.com/ugorji/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ugorji/go";
-      rev = "d75b2dcb6bc8";
-      sha256 = "0di1k35gpq9bp958ywranpbskx2vdwlb38s22vl9rybm3wa5g3ps";
-    };
-  }
-  {
-    goPackagePath = "github.com/valyala/bytebufferpool";
-    fetch = {
-      type = "git";
-      url = "https://github.com/valyala/bytebufferpool";
-      rev = "v1.0.0";
-      sha256 = "01lqzjddq6kz9v41nkky7wbgk7f1cw036sa7ldz10d82g5klzl93";
-    };
-  }
-  {
-    goPackagePath = "github.com/valyala/fasttemplate";
-    fetch = {
-      type = "git";
-      url = "https://github.com/valyala/fasttemplate";
-      rev = "v1.1.0";
-      sha256 = "089wm839lqmw9knr3ifbi82iykaybk0zxzp3c02lsh31wax4f8a2";
-    };
-  }
-  {
-    goPackagePath = "github.com/vbauerster/mpb";
-    fetch = {
-      type = "git";
-      url = "https://github.com/vbauerster/mpb";
-      rev = "v4.8.4";
-      sha256 = "0ifz1hp1a5xjxx7x9km5pb0x6p60lcpzwmhnxlg5x4ls6hrs8wd9";
-    };
-  }
-  {
-    goPackagePath = "github.com/xordataexchange/crypt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/xordataexchange/crypt";
-      rev = "b2862e3d0a77";
-      sha256 = "04q3856anpzl4gdfgmg7pbp9cx231nkz3ymq2xp27rnmmwhfxr8y";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "e1110fd1c708";
-      sha256 = "0n5n7dzlr87mvk3mbcx400al4pa1i85jbbdhbx4s1rhr0rs3kh9a";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/lint";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/lint";
-      rev = "c67002cb31c3";
-      sha256 = "0gymbggskjmphqxqcx4s0vnlcz7mygbix0vhwcwv5r67c0bf6765";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "2180aed22343";
-      sha256 = "0hl3pgi8rzij5m6alq4xqfvyvidy7jnf5y85031jv4y1bj85r6pl";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "112230192c58";
-      sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "52ab43148777";
-      sha256 = "1kakxbqrb1w2vwg7r1896z68qcx2lfvimsl8cs2niiipbgpi6imx";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.2";
-      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "a911d9008d1f";
-      sha256 = "118vsliq2a9xfp6rckc310mf9lydfgah6hgiggd88cm3zch4626m";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/xerrors";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/xerrors";
-      rev = "a985d3407aa7";
-      sha256 = "00wzr5w8aadipgc3rkk8f11i41znskfj9ix5nhhaxyg7isrslgcj";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v3-unstable";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v3-unstable";
-      rev = "df19058c872c";
-      sha256 = "0nb6925fixs6brdwpmwi32b38acn1s8dv4g0syjy3kpq0wasljy9";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "788fd7840127";
-      sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/ini.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/ini.v1";
-      rev = "v1.42.0";
-      sha256 = "18ywm8zyv091j1pp5mvx8szl7928chk8lw02br6jy568d7rk4xal";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.5";
-      sha256 = "08smz8dfyxp02ha74my9iszqa5qzgl3ksi28ilyp8lqipssiq6fg";
-    };
-  }
-]
diff --git a/pkgs/tools/admin/google-cloud-sdk/default.nix b/pkgs/tools/admin/google-cloud-sdk/default.nix
index 2ecd9242818..5a51ace3b98 100644
--- a/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -21,18 +21,18 @@ let
   sources = name: system: {
     x86_64-darwin = {
       url = "${baseUrl}/${name}-darwin-x86_64.tar.gz";
-      sha256 = "0imsshvdwd2isq58kplc27za30nabp62ypf1hq95aq94pjm2zp39";
+      sha256 = "1l2r9pgyzih7xgrr2ygm0mcl97kyp1wfvybwhbn1i0kbb72nagk1";
     };
 
     x86_64-linux = {
       url = "${baseUrl}/${name}-linux-x86_64.tar.gz";
-      sha256 = "1905rj36md5iszbxw78ylvkljr4d54i50x23r1r6k1xw7i93yfwq";
+      sha256 = "1qbkdfa7dzysp7crv9ph476hbabl3qiszs067f20dadqssqs1v4r";
     };
   }.${system};
 
 in stdenv.mkDerivation rec {
   pname = "google-cloud-sdk";
-  version = "297.0.1";
+  version = "306.0.0";
 
   src = fetchurl (sources "${pname}-${version}" stdenv.hostPlatform.system);
 
diff --git a/pkgs/tools/admin/iamy/default.nix b/pkgs/tools/admin/iamy/default.nix
index 8e79959ba37..1a668777e2e 100644
--- a/pkgs/tools/admin/iamy/default.nix
+++ b/pkgs/tools/admin/iamy/default.nix
@@ -4,8 +4,6 @@ buildGoModule rec {
   pname = "iamy";
   version = "2.3.2";
 
-  goPackagePath = "github.com/99designs/iamy";
-
   src = fetchFromGitHub {
     owner = "99designs";
     repo = "iamy";
@@ -15,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0c4g1zr0wl118g41hqri0vwvfin39yvgs214w3spw8ggjcj6bzph";
 
+  doCheck = false;
+
   buildFlagsArray = [''-ldflags=
     -X main.Version=v${version} -s -w
   ''];
@@ -25,4 +25,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ suvash ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/admin/lego/default.nix b/pkgs/tools/admin/lego/default.nix
index fff8e39aa11..4b2d88cdf27 100644
--- a/pkgs/tools/admin/lego/default.nix
+++ b/pkgs/tools/admin/lego/default.nix
@@ -1,17 +1,20 @@
-{ lib, fetchFromGitHub, buildGoModule }:
+{ lib, fetchFromGitHub, buildGoModule, nixosTests }:
 
 buildGoModule rec {
   pname = "lego";
-  version = "3.7.0";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = "go-acme";
     repo = pname;
     rev = "v${version}";
-    sha256 = "03824c5nfii7cc6mr1hdkyd4jjy8vpn08lnj4c6pc61s3i6gacc6";
+    sha256 = "02p7zlrz8fp5bsvhk4jrx5x3gxnl00friay1jihlzyk3s400n9jb";
   };
 
-  vendorSha256 = "14453iiya6algkympyvwm03qgjcwk79z8bbrij7qhnp52qfrbmrp";
+  vendorSha256 = "0jh7qi422i2114198fain9nwwf8yd8vna0p3g0hvginh59svyagc";
+
+  doCheck = false;
+
   subPackages = [ "cmd/lego" ];
 
   buildFlagsArray = [
@@ -24,4 +27,6 @@ buildGoModule rec {
     homepage = "https://go-acme.github.io/lego/";
     maintainers = teams.acme.members;
   };
+
+  passthru.tests.lego = nixosTests.acme;
 }
diff --git a/pkgs/tools/admin/lexicon/default.nix b/pkgs/tools/admin/lexicon/default.nix
index ac5bf918634..3af266c8175 100644
--- a/pkgs/tools/admin/lexicon/default.nix
+++ b/pkgs/tools/admin/lexicon/default.nix
@@ -5,7 +5,7 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "lexicon";
-  version = "3.3.26";
+  version = "3.3.27";
 
   propagatedBuildInputs = with python3Packages; [ requests tldextract future cryptography pyyaml boto3 zeep xmltodict beautifulsoup4 dnspython pynamecheap softlayer transip localzone ];
 
@@ -19,7 +19,7 @@ python3Packages.buildPythonApplication rec {
     owner = "AnalogJ";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0k41l5n80hsfr0dkijf4hhkhz6iiwja4aj9q2jdiqsg9fjrmhfrv";
+    sha256 = "0i6grrpdwh7axhnsabb0pfjhpd3prc9ji1afivi7q3c0krgvncmc";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/admin/lxd/default.nix b/pkgs/tools/admin/lxd/default.nix
index 562149414b3..2a71556961e 100644
--- a/pkgs/tools/admin/lxd/default.nix
+++ b/pkgs/tools/admin/lxd/default.nix
@@ -18,13 +18,13 @@ let
 in
 buildGoPackage rec {
   pname = "lxd";
-  version = "4.2";
+  version = "4.5";
 
   goPackagePath = "github.com/lxc/lxd";
 
   src = fetchurl {
     url = "https://github.com/lxc/lxd/releases/download/${pname}-${version}/${pname}-${version}.tar.gz";
-    sha256 = "0pv84ywnigrp94kh54fz689i15yv01lhrnkxpk8dg9wypxara9m4";
+    sha256 = "1nszzcyn8kvpnxppjbxky5x9a8n0jfmhy20j6nrwm3196gd6hirr";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/admin/mycli/default.nix b/pkgs/tools/admin/mycli/default.nix
index 7a7022c9176..4745d065be9 100644
--- a/pkgs/tools/admin/mycli/default.nix
+++ b/pkgs/tools/admin/mycli/default.nix
@@ -7,11 +7,11 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "mycli";
-  version = "1.21.1";
+  version = "1.22.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1q9p0yik9cpvpxjs048anvhicfcna84mpl7axv9bwgr48w40lqwg";
+    sha256 = "1lq2x95553vdmhw13cxcgsd2g2i32izhsb7hxd4m1iwf9b3msbpv";
   };
 
   propagatedBuildInputs = [
@@ -24,13 +24,8 @@ buildPythonApplication rec {
     export HOME=.
     export LC_ALL="en_US.UTF-8"
 
-    py.test
-  '';
-
-  # TODO: remove with next release
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "prompt_toolkit>=2.0.6,<3.0.0" "prompt_toolkit"
+    py.test \
+      --ignore=mycli/packages/paramiko_stub/__init__.py
   '';
 
   meta = {
diff --git a/pkgs/tools/admin/procs/default.nix b/pkgs/tools/admin/procs/default.nix
index 5bfbb6d8c64..54bdf238e3f 100644
--- a/pkgs/tools/admin/procs/default.nix
+++ b/pkgs/tools/admin/procs/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "procs";
-  version = "0.10.3";
+  version = "0.10.4";
 
   src = fetchFromGitHub {
     owner = "dalance";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0lg4v32jx0fxcjz6cj6cxxlg7rhj75k4p75izpkk4l11xpxqhgjm";
+    sha256 = "1a28kkxcrdfmrq2mmsfkdxfp3msklwga5nbfhjb7a7s64xh8jmjv";
   };
 
-  cargoSha256 = "05qqy6l28ihn7hykkkh1x7z3q58cdrwv76fc22xjcg20985ac2nx";
+  cargoSha256 = "1xlxjr0pkwlzm7f5xlrsf76in28r9jj41n6gn44vxqbh4x161gs1";
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/tools/admin/pulumi/data.nix b/pkgs/tools/admin/pulumi/data.nix
index cfed777020a..77779c39f50 100644
--- a/pkgs/tools/admin/pulumi/data.nix
+++ b/pkgs/tools/admin/pulumi/data.nix
@@ -1,58 +1,58 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "2.2.1";
+  version = "2.6.1";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v2.2.1-linux-x64.tar.gz";
-        sha256 = "0bvwkvsinnhlh1yhh5llffh89w07f412q6z03ypzl19p6fvik1k1";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v2.6.1-linux-x64.tar.gz";
+        sha256 = "12f81wj8r3pmxj2l8qhcgnmy2m0a6bfzrvq9avl3444h2w29qpy2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v2.1.1-linux-amd64.tar.gz";
-        sha256 = "0bj9nlxsb77ycwvmba1vsh1vydyrszq3jxlf9d1qsv71h4s88a90";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v2.13.0-linux-amd64.tar.gz";
+        sha256 = "03l7ybc9ca63vdm7a2zsvgc8zz8ip973sfxsjqf3bb277r04mnpb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v2.1.1-linux-amd64.tar.gz";
-        sha256 = "0ggi1c4lg6pip6d4bh2cji25hcwv3ii870bjwd35ax668z0dc28d";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v3.13.0-linux-amd64.tar.gz";
+        sha256 = "0ivdiib3a1c1r2ppxmj6blgq26s05s3081969j0j9jlscpa79lap";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v3.6.0-linux-amd64.tar.gz";
-        sha256 = "0l4vv7vkzsphvk9r28l253ds8ny0wh0fahqjjnz31jqzfbvzyxm8";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v2.2.0-linux-amd64.tar.gz";
+        sha256 = "0w6ys5bmry1b8ndzj167cz3a8fc6mbl5v9v2almrmd3q6fycm4gj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v2.2.0-linux-amd64.tar.gz";
-        sha256 = "1maiy1i43p0gl2w12hfk9zgfz418innzi7nkv68qlyxd4hi5v6mf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v2.4.0-linux-amd64.tar.gz";
+        sha256 = "0id3mji08hk76kffz46dlbl2r11kgv5jvlmw869dssg2d0wliv82";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v2.5.0-linux-amd64.tar.gz";
-        sha256 = "02xjwx2rfh3k9zk8aw39n4k6jnp8chcfc5f1zac7x4xfkqyjlpcy";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v2.2.2-linux-amd64.tar.gz";
+        sha256 = "07asdmmacxazg65d5hphjxzb5j5d2dcc95wjbxx3wwc1swqma4aq";
       }
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v2.2.1-darwin-x64.tar.gz";
-        sha256 = "1fizddk1hxazn33xliankps3fv0casx4r8rvwkdzqx1piqq18xy4";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v2.6.1-darwin-x64.tar.gz";
+        sha256 = "17jf9xwpwpbqk5r20i14j1z4i4rbbx781k0zqyc9yskmv5q4mmwr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v2.1.1-darwin-amd64.tar.gz";
-        sha256 = "17iqzv06s4xhnway3j534lsj8gzxld67kfn7awn4ymwh2zn8l3z0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v2.13.0-darwin-amd64.tar.gz";
+        sha256 = "18mjf9gm8siskg9jh65x4qp4w8p4wnp19bxxk4jfbq27icdk7ws9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v2.1.1-darwin-amd64.tar.gz";
-        sha256 = "1mdchvibk989xq5zfjb7cdzgh9m769cvj2l5dfxmkava7zhmj2bj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v3.13.0-darwin-amd64.tar.gz";
+        sha256 = "14iwz1gm34irs9jlpwc4ig1wc8k4aaxq8mz3g22yrvwddrsc4rcw";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v3.6.0-darwin-amd64.tar.gz";
-        sha256 = "013c13ypvz75x9qppzmlvwg4bnjryw9q16j6v987ibrrfxblan5b";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v2.2.0-darwin-amd64.tar.gz";
+        sha256 = "0zaxp2n1w5djwyq1afhd3v887dh0yj53jz449riqp19dpyfqf7h7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v2.2.0-darwin-amd64.tar.gz";
-        sha256 = "0maca137agmig8njz0fd0yhxahdra7pqaw23mxfxa8m5j44p787a";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v2.4.0-darwin-amd64.tar.gz";
+        sha256 = "1kzs7k7as9r1vbj746wqz9iph13zfzzw8nsk3waq8aq1hmgh2g1q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v2.5.0-darwin-amd64.tar.gz";
-        sha256 = "0kc4il1ixh7ricl4n3vadvjy0rjj0bps7n8lbqgrq8lm5m419izv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v2.2.2-darwin-amd64.tar.gz";
+        sha256 = "0hwdghij7g9h58nwimfmaz91lz38wibkrdzwqhi7d426m53g6f5c";
       }
     ];
   };
diff --git a/pkgs/tools/admin/pulumi/update.sh b/pkgs/tools/admin/pulumi/update.sh
index 4aa8478da1f..cc31bce849b 100755
--- a/pkgs/tools/admin/pulumi/update.sh
+++ b/pkgs/tools/admin/pulumi/update.sh
@@ -1,15 +1,19 @@
 #!/usr/bin/env bash
 
-VERSION="2.2.1"
+VERSION="2.6.1"
 
-declare -A plugins
+# Bash 3 compatible for Darwin
 plugins=(
-    ["aws"]="2.5.0"
-    ["gcp"]="3.6.0"
-    ["random"]="2.1.1"
-    ["kubernetes"]="2.2.0"
-    ["postgresql"]="2.1.1"
-)
+    # https://github.com/pulumi/pulumi-aws/releases
+    "aws=2.13.0"
+    # https://github.com/pulumi/pulumi-gcp/releases
+    "gcp=3.13.0"
+    # https://github.com/pulumi/pulumi-random/releases
+    "random=2.2.0"
+    # https://github.com/pulumi/pulumi-kubernetes/releases
+    "kubernetes=2.4.0"
+    # https://github.com/pulumi/pulumi-postgresql/releases
+    "postgresql=2.2.2");
 
 function genMainSrc() {
     local url="https://get.pulumi.com/releases/sdk/pulumi-v${VERSION}-$1-x64.tar.gz"
@@ -22,8 +26,9 @@ function genMainSrc() {
 }
 
 function genSrcs() {
-    for plug in "${!plugins[@]}"; do
-        local version=${plugins[$plug]}
+    for plugVers in "${plugins[@]}"; do
+        local plug=${plugVers%=*}
+        local version=${plugVers#*=}
         # url as defined here
         # https://github.com/pulumi/pulumi/blob/06d4dde8898b2a0de2c3c7ff8e45f97495b89d82/pkg/workspace/plugins.go#L197
         local url="https://api.pulumi.com/releases/plugins/pulumi-resource-${plug}-v${version}-$1-amd64.tar.gz"
@@ -36,7 +41,7 @@ function genSrcs() {
     done
 }
 
-cat <<EOF
+cat <<EOF                     > data.nix
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
@@ -44,13 +49,14 @@ cat <<EOF
   pulumiPkgs = {
     x86_64-linux = [
 EOF
-genMainSrc "linux"
-genSrcs "linux"
-echo "    ];"
+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
 
-echo "    x86_64-darwin = ["
-genMainSrc "darwin"
-genSrcs "darwin"
-echo "    ];"
-echo "  };"
-echo "}"
diff --git a/pkgs/tools/admin/salt/default.nix b/pkgs/tools/admin/salt/default.nix
index f3c375a9966..83b69b12fea 100644
--- a/pkgs/tools/admin/salt/default.nix
+++ b/pkgs/tools/admin/salt/default.nix
@@ -5,42 +5,25 @@
   # passing them in this array enables Salt to find them.
 , extraInputs ? []
 }:
-let
-
-  py = python3.override {
-    packageOverrides = self: super: {
-      # Can be unpinned once https://github.com/saltstack/salt/issues/56007 is resolved
-      msgpack = super.msgpack.overridePythonAttrs (
-        oldAttrs: rec {
-          version = "0.6.2";
-          src = oldAttrs.src.override {
-            inherit version;
-            sha256 = "0c0q3vx0x137567msgs5dnizghnr059qi5kfqigxbz26jf2jyg7a";
-          };
-        }
-      );
-    };
-  };
-
-in
-py.pkgs.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "salt";
-  version = "3000.3";
+  version = "3001.1";
 
-  src = py.pkgs.fetchPypi {
+  src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "19yfjhidx93rl9s03lvrfz7kp0xxigyv4d3zb9792zb9bsc4kjpw";
+    sha256 = "1g2sdcibir0zhldmngv1iyzlhh2adq9dqjc73grap3df5zcv9sz9";
   };
 
-  propagatedBuildInputs = with py.pkgs; [
+  propagatedBuildInputs = with python3.pkgs; [
+    distro
     jinja2
     markupsafe
     msgpack
-    pycrypto
+    pycryptodomex
     pyyaml
     pyzmq
     requests
-    tornado_4
+    tornado
   ] ++ extraInputs;
 
   patches = [ ./fix-libcrypto-loading.patch ];
diff --git a/pkgs/tools/admin/salt/fix-libcrypto-loading.patch b/pkgs/tools/admin/salt/fix-libcrypto-loading.patch
index f7560b1fc56..e011a15b43f 100644
--- a/pkgs/tools/admin/salt/fix-libcrypto-loading.patch
+++ b/pkgs/tools/admin/salt/fix-libcrypto-loading.patch
@@ -2,13 +2,12 @@ diff --git a/salt/utils/rsax931.py b/salt/utils/rsax931.py
 index f827cc6db8..b728595186 100644
 --- a/salt/utils/rsax931.py
 +++ b/salt/utils/rsax931.py
-@@ -47,6 +47,9 @@ def _load_libcrypto():
-             lib = lib[0] if len(lib) > 0 else None
-         if lib:
-             return cdll.LoadLibrary(lib)
-+        else:
-+            return cdll.LoadLibrary('@libcrypto@')
-+
-         raise OSError('Cannot locate OpenSSL libcrypto')
+@@ -74,7 +74,7 @@
+     """
+     Attempt to load libcrypto.
+     """
+-    return cdll.LoadLibrary(_find_libcrypto())
++    return cdll.LoadLibrary('@libcrypto@')
  
  
+ def _init_libcrypto():
diff --git a/pkgs/tools/admin/salt/pepper/default.nix b/pkgs/tools/admin/salt/pepper/default.nix
index e2cfa806f95..0c6e9dc0ab2 100644
--- a/pkgs/tools/admin/salt/pepper/default.nix
+++ b/pkgs/tools/admin/salt/pepper/default.nix
@@ -1,19 +1,19 @@
 { lib
-, pythonPackages
+, python3Packages
 , salt
 }:
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "salt-pepper";
   version = "0.7.5";
-  src = pythonPackages.fetchPypi {
+  src = python3Packages.fetchPypi {
     inherit pname version;
     sha256 = "1wh6yidwdk8jvjpr5g3azhqgsk24c5rlzmw6l86dmi0mpvmxm94w";
   };
 
-  buildInputs = with pythonPackages; [ setuptools setuptools_scm salt ];
-  checkInputs = with pythonPackages; [
-    pytest mock pyzmq pytest-rerunfailures pytestcov cherrypy tornado_4
+  buildInputs = with python3Packages; [ setuptools setuptools_scm salt ];
+  checkInputs = with python3Packages; [
+    pytest mock pyzmq pytest-rerunfailures pytestcov cherrypy tornado
   ];
 
   meta = with lib; {
@@ -21,5 +21,6 @@ pythonPackages.buildPythonApplication rec {
     homepage = "https://github.com/saltstack/pepper";
     maintainers = [ maintainers.pierrer ];
     license = licenses.asl20;
+    broken = true; # ModuleNotFoundError: No module named 'pytestsalt'
   };
 }
diff --git a/pkgs/tools/admin/scaleway-cli/default.nix b/pkgs/tools/admin/scaleway-cli/default.nix
index eeae7fbe1bf..a174937e5a1 100644
--- a/pkgs/tools/admin/scaleway-cli/default.nix
+++ b/pkgs/tools/admin/scaleway-cli/default.nix
@@ -18,6 +18,5 @@ buildGoPackage rec {
     homepage = "https://github.com/scaleway/scaleway-cli";
     license = licenses.mit;
     maintainers = with maintainers; [ nickhu ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/archivers/bomutils/default.nix b/pkgs/tools/archivers/bomutils/default.nix
new file mode 100644
index 00000000000..fc68184be31
--- /dev/null
+++ b/pkgs/tools/archivers/bomutils/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bomutils";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    owner = "hogliux";
+    repo = pname;
+    rev = version;
+    sha256 = "1i7nhbq1fcbrjwfg64znz8p4l7662f7qz2l6xcvwd5z93dnmgmdr";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/hogliux/bomutils";
+    description = "Open source tools to create bill-of-materials files used in macOS installers";
+    platforms = platforms.all;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/tools/archivers/gnutar/default.nix b/pkgs/tools/archivers/gnutar/default.nix
index 749f795c449..672c99d80c0 100644
--- a/pkgs/tools/archivers/gnutar/default.nix
+++ b/pkgs/tools/archivers/gnutar/default.nix
@@ -1,5 +1,10 @@
 { stdenv, fetchurl, autoreconfHook, acl }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   pname = "gnutar";
   version = "1.32";
diff --git a/pkgs/tools/archivers/innoextract/default.nix b/pkgs/tools/archivers/innoextract/default.nix
index 5dab1950145..da26639fcb5 100644
--- a/pkgs/tools/archivers/innoextract/default.nix
+++ b/pkgs/tools/archivers/innoextract/default.nix
@@ -3,11 +3,11 @@
 , withGog ? false, unar ? null }:
 
 stdenv.mkDerivation rec {
-  name = "innoextract-1.8";
+  name = "innoextract-1.9";
 
   src = fetchurl {
     url = "https://constexpr.org/innoextract/files/${name}.tar.gz";
-    sha256 = "0saj50n8ds85shygy4mq1h6s99510r9wgjjdll4dmvhra4lzcy2y";
+    sha256 = "09l1z1nbl6ijqqwszdwch9mqr54qb7df0wp2sd77v17dq6gsci33";
   };
 
   buildInputs = [ python lzma boost ];
diff --git a/pkgs/tools/archivers/maxcso/default.nix b/pkgs/tools/archivers/maxcso/default.nix
new file mode 100644
index 00000000000..333b0dcabc3
--- /dev/null
+++ b/pkgs/tools/archivers/maxcso/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, libuv, lz4, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "maxcso";
+  version = "1.12.0";
+
+  src = fetchFromGitHub {
+    owner = "unknownbrackets";
+    repo = "maxcso";
+    rev = "v${version}";
+    sha256 = "10r0vb3ndpq1pw5224d48nim5xz8jj94zhlfy29br6h6jblq8zap";
+  };
+
+  buildInputs = [ libuv lz4 zlib ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/unknownbrackets/maxcso";
+    description =
+      "A fast ISO to CSO compression program for use with PSP and PS2 emulators, which uses multiple algorithms for best compression ratio";
+    maintainers = with maintainers; [ david-sawatzke ];
+    platforms = platforms.linux ++ platforms.darwin;
+    license = licenses.isc;
+  };
+}
diff --git a/pkgs/tools/archivers/p7zip/default.nix b/pkgs/tools/archivers/p7zip/default.nix
index 773d37f0b75..a155c1717eb 100644
--- a/pkgs/tools/archivers/p7zip/default.nix
+++ b/pkgs/tools/archivers/p7zip/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   # Default makefile is full of impurities on Darwin. The patch doesn't hurt Linux so I'm leaving it unconditional
   postPatch = ''
     sed -i '/CC=\/usr/d' makefile.macosx_llvm_64bits
+    chmod +x install.sh
 
     # I think this is a typo and should be CXX? Either way let's kill it
     sed -i '/XX=\/usr/d' makefile.macosx_llvm_64bits
@@ -28,7 +29,6 @@ stdenv.mkDerivation rec {
     # (see DOC/License.txt, https://fedoraproject.org/wiki/Licensing:Unrar)
     rm -r CPP/7zip/Compress/Rar*
     find . -name makefile'*' -exec sed -i '/Rar/d' {} +
-    chmod +x install.sh
   '';
 
   preConfigure = ''
diff --git a/pkgs/tools/archivers/undmg/default.nix b/pkgs/tools/archivers/undmg/default.nix
index 79b861de485..0eaabdb627d 100644
--- a/pkgs/tools/archivers/undmg/default.nix
+++ b/pkgs/tools/archivers/undmg/default.nix
@@ -1,18 +1,19 @@
-{ stdenv, fetchFromGitHub, zlib, bzip2 }:
+{ stdenv, fetchFromGitHub, zlib, bzip2, lzfse, pkg-config }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.3";
+  version = "1.1.0";
   pname = "undmg";
 
   src = fetchFromGitHub {
     owner = "matthewbauer";
     repo = "undmg";
     rev = "v${version}";
-    sha256 = "1pxqw92h2w75d4jwiihwnkhnsfk09cddh3flgrqwh9r3ry14fgbb";
-    
+    sha256 = "0rb4h89jrl04vwf6p679ipa4mp95hzmc1ca11wqbanv3xd1kcpxm";
   };
 
-  buildInputs = [ zlib bzip2 ];
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ zlib bzip2 lzfse ];
 
   setupHook = ./setup-hook.sh;
 
diff --git a/pkgs/tools/archivers/undmg/setup-hook.sh b/pkgs/tools/archivers/undmg/setup-hook.sh
index e5c8dda23b6..bc7ed76107e 100644
--- a/pkgs/tools/archivers/undmg/setup-hook.sh
+++ b/pkgs/tools/archivers/undmg/setup-hook.sh
@@ -1,5 +1,5 @@
 unpackCmdHooks+=(_tryUnpackDmg)
 _tryUnpackDmg() {
     if ! [[ "$curSrc" =~ \.dmg$ ]]; then return 1; fi
-    undmg < "$curSrc"
+    undmg "$curSrc"
 }
diff --git a/pkgs/tools/archivers/wimlib/default.nix b/pkgs/tools/archivers/wimlib/default.nix
index da01602cca4..51f75ee923d 100644
--- a/pkgs/tools/archivers/wimlib/default.nix
+++ b/pkgs/tools/archivers/wimlib/default.nix
@@ -8,7 +8,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.13.1";
+  version = "1.13.2";
   pname = "wimlib";
 
   nativeBuildInputs = [ pkgconfig makeWrapper ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://wimlib.net/downloads/${pname}-${version}.tar.gz";
-    sha256 = "0pxgrpr3dr81rcf2jh71aiiq3v4anc5sj1nld18f2vhvbijbrx27";
+    sha256 = "0id9ym3hzij4kpdrk0sz3ijxp5r0z1md5jch83pml9hdy1zbx5bj";
   };
 
   preBuild = ''
diff --git a/pkgs/tools/audio/abcmidi/default.nix b/pkgs/tools/audio/abcmidi/default.nix
index 63ca4dc5e7c..4ab394516a8 100644
--- a/pkgs/tools/audio/abcmidi/default.nix
+++ b/pkgs/tools/audio/abcmidi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "abcMIDI";
-  version = "2020.06.30";
+  version = "2020.08.09";
 
   src = fetchzip {
     url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-    sha256 = "0pdaf9y4ag2cdpygypf11aqa52hhj1y5f7gc8lv3aa1lplxyhi9m";
+    sha256 = "1j7jkv2fdrhyyjavffb5nrs8p9mfp8zqqravcad1ayv1z2wxr8vl";
   };
 
   # There is also a file called "makefile" which seems to be preferred by the standard build phase
diff --git a/pkgs/tools/audio/beets/compatibility-with-breaking-changes-to-the-ast-module.patch b/pkgs/tools/audio/beets/compatibility-with-breaking-changes-to-the-ast-module.patch
new file mode 100644
index 00000000000..4865b6f6234
--- /dev/null
+++ b/pkgs/tools/audio/beets/compatibility-with-breaking-changes-to-the-ast-module.patch
@@ -0,0 +1,55 @@
+From 771ce704ebeac4cd9bd74b3ddde9fb01f3dc7eb4 Mon Sep 17 00:00:00 2001
+From: wisp3rwind <17089248+wisp3rwind@users.noreply.github.com>
+Date: Tue, 9 Jun 2020 19:34:31 +0200
+Subject: [PATCH] compatibility with breaking changes to the ast module
+
+new in 3.10, also backported to 3.8 and 3.9: https://github.com/python/cpython/pull/20649
+In fact, our generation of some Literals has been invalid since Python
+3.4, fix that too.
+---
+ beets/util/functemplate.py | 29 ++++++++++++++++++++---------
+ 1 file changed, 20 insertions(+), 9 deletions(-)
+
+diff --git a/beets/util/functemplate.py b/beets/util/functemplate.py
+index af22b790..266534a9 100644
+--- a/beets/util/functemplate.py
++++ b/beets/util/functemplate.py
+@@ -73,15 +73,26 @@ def ex_literal(val):
+     """An int, float, long, bool, string, or None literal with the given
+     value.
+     """
+-    if val is None:
+-        return ast.Name('None', ast.Load())
+-    elif isinstance(val, six.integer_types):
+-        return ast.Num(val)
+-    elif isinstance(val, bool):
+-        return ast.Name(bytes(val), ast.Load())
+-    elif isinstance(val, six.string_types):
+-        return ast.Str(val)
+-    raise TypeError(u'no literal for {0}'.format(type(val)))
++    if sys.version_info[:2] < (3, 4):
++        if val is None:
++            return ast.Name('None', ast.Load())
++        elif isinstance(val, six.integer_types):
++            return ast.Num(val)
++        elif isinstance(val, bool):
++            return ast.Name(bytes(val), ast.Load())
++        elif isinstance(val, six.string_types):
++            return ast.Str(val)
++        raise TypeError(u'no literal for {0}'.format(type(val)))
++    elif sys.version_info[:2] < (3, 6):
++        if val in [None, True, False]:
++            return ast.NameConstant(val)
++        elif isinstance(val, six.integer_types):
++            return ast.Num(val)
++        elif isinstance(val, six.string_types):
++            return ast.Str(val)
++        raise TypeError(u'no literal for {0}'.format(type(val)))
++    else:
++        return ast.Constant(val)
+ 
+ 
+ def ex_varassign(name, expr):
+-- 
+2.27.0
+
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index 0f73b353169..776eca99998 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -190,6 +190,11 @@ in pythonPackages.buildPythonApplication rec {
       url = "https://github.com/beetbox/beets/commit/d43d54e21cde97f57f19486925ab56b419254cc8.patch";
       sha256 = "13n2gzmcgfi0m2ycl2r1hpczgksplnkc3y6b66vg57rx5y8nnv5c";
     })
+
+    # Fixes 548 tests due to breaking changes to the ast module
+    # https://github.com/beetbox/beets/pull/3621
+    # Can be dropped after 1.4.9
+    ./compatibility-with-breaking-changes-to-the-ast-module.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/tools/audio/beets/mutagen-1.43.patch b/pkgs/tools/audio/beets/mutagen-1.43.patch
index 84cf1bab03e..d0d448c15e9 100644
--- a/pkgs/tools/audio/beets/mutagen-1.43.patch
+++ b/pkgs/tools/audio/beets/mutagen-1.43.patch
@@ -1,8 +1,10 @@
-Backport https://github.com/beetbox/mediafile/commit/b3343c4ee08d1251ae5e2344401a2f5892b4e868
+Backport
+https://github.com/beetbox/mediafile/commit/b3343c4ee08d1251ae5e2344401a2f5892b4e868
+https://github.com/beetbox/mediafile/commit/d2fc3b59f77c515b02dfe7ad936f89264375d2b4
 to Beets 1.4.9.
 
 diff --git i/setup.py w/setup.py
-index 79278f8..b8d6068 100755
+index 79278f8b..b8d60687 100755
 --- i/setup.py
 +++ w/setup.py
 @@ -87,7 +87,7 @@ setup(
@@ -15,9 +17,18 @@ index 79278f8..b8d6068 100755
          'musicbrainzngs>=0.4',
          'pyyaml',
 diff --git i/test/test_mediafile.py w/test/test_mediafile.py
-index 36a2c53..54ef9dd 100644
+index 36a2c53a..0ddde44e 100644
 --- i/test/test_mediafile.py
 +++ w/test/test_mediafile.py
+@@ -888,7 +888,7 @@ class WavpackTest(ReadWriteTestBase, unittest.TestCase):
+         'bitrate': 109312,
+         'format': u'WavPack',
+         'samplerate': 44100,
+-        'bitdepth': 0,
++        'bitdepth': 16,
+         'channels': 1,
+     }
+ 
 @@ -912,7 +912,7 @@ class AIFFTest(ReadWriteTestBase, unittest.TestCase):
          'bitrate': 705600,
          'format': u'AIFF',
diff --git a/pkgs/tools/audio/bpm-tools/default.nix b/pkgs/tools/audio/bpm-tools/default.nix
index 035fbf09533..6207cbeb9fe 100644
--- a/pkgs/tools/audio/bpm-tools/default.nix
+++ b/pkgs/tools/audio/bpm-tools/default.nix
@@ -1,8 +1,17 @@
 {
   stdenv,
   fetchurl,
+  gnuplot,
+  sox,
+  flac,
+  id3v2,
+  vorbis-tools,
+  makeWrapper
 }:
 
+let
+  path = stdenv.lib.makeBinPath [ gnuplot sox flac id3v2 vorbis-tools ];
+in
 stdenv.mkDerivation rec {
   pname = "bpm-tools";
   version = "0.3";
@@ -12,15 +21,17 @@ stdenv.mkDerivation rec {
     sha256 = "151vfbs8h3cibs7kbdps5pqrsxhpjv16y2iyfqbxzsclylgfivrp";
   };
 
-  patchPhase = ''
-    patchShebangs bpm-tag
-    patchShebangs bpm-graph
-  '';
+  nativeBuildInputs = [ makeWrapper ];
 
   installFlags = [
     "PREFIX=${placeholder "out"}"
   ];
 
+  postFixup = ''
+    wrapProgram $out/bin/bpm-tag --prefix PATH : "${path}"
+    wrapProgram $out/bin/bpm-graph --prefix PATH : "${path}"
+  '';
+
   meta = with stdenv.lib; {
     homepage = "http://www.pogo.org.uk/~mark/bpm-tools/";
     description = "Automatically calculate BPM (tempo) of music files";
diff --git a/pkgs/tools/audio/google-music-scripts/default.nix b/pkgs/tools/audio/google-music-scripts/default.nix
index f95dcc8bb6d..272cf902539 100644
--- a/pkgs/tools/audio/google-music-scripts/default.nix
+++ b/pkgs/tools/audio/google-music-scripts/default.nix
@@ -1,19 +1,36 @@
 { lib, python3 }:
 
-with python3.pkgs;
+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.3.0";
+  version = "4.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0dykjhqklbpqr1lvls0bgf6xkwvslj37lx4q8522hjbs150pwjmq";
+    sha256 = "0apwgj86whrc077dfymvyb4qwj19bawyrx49g4kg364895v0rbbq";
   };
 
+  # pendulum pinning was to prevent PEP517 from trying to build from source
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "audio-metadata>=0.8,<0.9" "audio-metadata"
+      --replace "tomlkit>=0.5,<0.6" "tomlkit" \
+      --replace "pendulum>=2.0,<=3.0,!=2.0.5,!=2.1.0" "pendulum"
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/tools/audio/liquidsoap/full.nix b/pkgs/tools/audio/liquidsoap/full.nix
index 2aa01dfe073..a228c23651d 100644
--- a/pkgs/tools/audio/liquidsoap/full.nix
+++ b/pkgs/tools/audio/liquidsoap/full.nix
@@ -2,13 +2,18 @@
 , ocamlPackages
 , libao, portaudio, alsaLib, libpulseaudio, libjack2
 , libsamplerate, libmad, taglib, lame, libogg
-, libvorbis, speex, libtheora, libopus, fdk_aac
+, libvorbis, speex, libtheora, libopus
 , faad2, flac, ladspaH, ffmpeg, frei0r, dssi
 }:
 
 let
   pname = "liquidsoap";
-  version = "1.3.4";
+  version = "1.4.2";
+
+  ocaml-ffmpeg = fetchurl {
+    url = "https://github.com/savonet/ocaml-ffmpeg/releases/download/v0.4.2/ocaml-ffmpeg-0.4.2.tar.gz";
+    sha256 = "1lx5s1avds9fsh77828ifn71r2g89rxakhs8pp995a675phm9viw";
+  };
 
   packageFilters = map (p: "-e '/ocaml-${p}/d'" )
     [ "gstreamer" "shine" "aacplus" "schroedinger"
@@ -19,10 +24,17 @@ stdenv.mkDerivation {
   name = "${pname}-full-${version}";
 
   src = fetchurl {
-    url = "https://github.com/savonet/${pname}/releases/download/${version}/${pname}-${version}-full.tar.bz2";
-    sha256 = "11l1h42sljfxcdhddc8klya4bk99j7a1pndwnzvscb04pvmfmlk0";
+    url = "https://github.com/savonet/${pname}/releases/download/v${version}/${pname}-${version}-full.tar.gz";
+    sha256 = "0wkwnzj1a0vizv7sr1blwk5gzm2qi0n02ndijnq1i50cwrgxs1a4";
   };
 
+  # Use ocaml-srt and ocaml-fdkaac from nixpkgs
+  # Use ocaml-ffmpeg at 0.4.2 for compatibility with ffmpeg 4.3
+  prePatch = ''
+    rm -rf ocaml-srt*/ ocaml-fdkaac*/ ocaml-ffmpeg*/
+    tar xzf ${ocaml-ffmpeg}
+  '';
+
   preConfigure = /* we prefer system-wide libs */ ''
     sed -i "s|gsed|sed|" Makefile
     make bootstrap
@@ -42,10 +54,12 @@ stdenv.mkDerivation {
     [ which ocamlPackages.ocaml ocamlPackages.findlib
       libao portaudio alsaLib libpulseaudio libjack2
       libsamplerate libmad taglib lame libogg
-      libvorbis speex libtheora libopus fdk_aac
+      libvorbis speex libtheora libopus
       faad2 flac ladspaH ffmpeg frei0r dssi
       ocamlPackages.xmlm ocamlPackages.ocaml_pcre
       ocamlPackages.camomile
+      ocamlPackages.fdkaac
+      ocamlPackages.srt ocamlPackages.sedlex_2 ocamlPackages.menhir
     ];
 
   hardeningDisable = [ "format" "fortify" ];
diff --git a/pkgs/tools/audio/mpd-mpris/default.nix b/pkgs/tools/audio/mpd-mpris/default.nix
index 3c736258cbb..79387d9ad1f 100644
--- a/pkgs/tools/audio/mpd-mpris/default.nix
+++ b/pkgs/tools/audio/mpd-mpris/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "108yjymp64iqx1b2wqjbkmbm2w199wq46g7hrmqhcziv6f4aqljp";
 
+  doCheck = false;
+
   subPackages = [ "cmd/${pname}" ];
 
   postInstall = ''
@@ -29,4 +31,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ doronbehar ];
     platforms = platforms.linux;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/audio/opl3bankeditor/default.nix b/pkgs/tools/audio/opl3bankeditor/default.nix
index 0503f9bad69..381591edb02 100644
--- a/pkgs/tools/audio/opl3bankeditor/default.nix
+++ b/pkgs/tools/audio/opl3bankeditor/default.nix
@@ -1,14 +1,14 @@
 { stdenv, mkDerivation, fetchFromGitHub, cmake, qttools, alsaLib }:
 
 mkDerivation rec {
-  version = "1.5";
+  version = "1.5.1";
   pname = "OPL3BankEditor";
 
   src = fetchFromGitHub {
     owner = "Wohlstand";
     repo = pname;
     rev = "v${version}";
-    sha256 = "16va5xfbyn2m63722ab5yph0l7kmghkbk6dkia93041mfhdyg9rc";
+    sha256 = "1g59qrkcm4xnyxx0s2x28brqbf2ix6vriyx12pcdvfhhcdi55hxh";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix b/pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix
index d8f15a65b45..1d10452470e 100644
--- a/pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix
+++ b/pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix
@@ -1,19 +1,14 @@
 { opl3bankeditor, fetchFromGitHub }:
 
 opl3bankeditor.overrideAttrs (oldAttrs: rec {
-  version = "1.3-beta";
+  version = "1.3";
   pname = "OPN2BankEditor";
 
   src = fetchFromGitHub {
     owner = "Wohlstand";
     repo = pname;
-    rev = version;
-    sha256 = "0blcvqfj1yj6cmm079aw4jdzv3066jxqy9krp268i6cl2b3bmwvw";
+    rev = "v${version}";
+    sha256 = "0xsvv0gxqh1lx22f1jm384f7mq1jp57fmpsx1jjaxz435w5hf8s0";
     fetchSubmodules = true;
   };
-
-  # to be removed with next release
-  postInstall = ''
-    install -Dm755 opn2_bank_editor $out/bin/opn2_bank_editor
-  '';
 })
diff --git a/pkgs/tools/audio/playerctl/default.nix b/pkgs/tools/audio/playerctl/default.nix
index 6d7d92808c1..c1cddf12b65 100644
--- a/pkgs/tools/audio/playerctl/default.nix
+++ b/pkgs/tools/audio/playerctl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "playerctl";
-  version = "2.1.1";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "acrisci";
     repo = "playerctl";
     rev = "v${version}";
-    sha256 = "03f3645ssqf8dpkyzj9rlglrzh0840sflalskx9s4i03bgq3v4r9";
+    sha256 = "17hi33sw3663qz5v54bqqil31sgkrlxkb2l5bgqk87pac6x2wnbz";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig gtk-doc docbook_xsl gobject-introspection ];
diff --git a/pkgs/tools/audio/qastools/default.nix b/pkgs/tools/audio/qastools/default.nix
index 86ef7f050b2..55dbba007f8 100644
--- a/pkgs/tools/audio/qastools/default.nix
+++ b/pkgs/tools/audio/qastools/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "qastools";
-  version = "0.22.0";
+  version = "0.23.0";
 
   src = fetchFromGitLab {
     owner = "sebholt";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0px4fcn8dagivq5fyi5gy84yj86f6x0lk805mc4ry58d0wsbn68v";
+    sha256 = "19hn64hnvryfmrkdg6rqyzahdbqf1s5y3dcca389jj6sdx93b3ip";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/backup/bup/default.nix b/pkgs/tools/backup/bup/default.nix
index 57ab854a33c..ee6ae0a2934 100644
--- a/pkgs/tools/backup/bup/default.nix
+++ b/pkgs/tools/backup/bup/default.nix
@@ -5,7 +5,7 @@
 
 assert par2Support -> par2cmdline != null;
 
-let version = "0.30.1"; in
+let version = "0.31"; in
 
 with stdenv.lib;
 
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
     repo = "bup";
     owner = "bup";
     rev = version;
-    sha256 = "0z9rpmmi6mbm48ynd6izr0f8l3cklfyar6gjy0c8z9zal1ac9r55";
+    sha256 = "03kmmdlgg0p5z39bhckkf91mmq55wghb93ghqvv9f9gaby1diw4z";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/backup/dar/default.nix b/pkgs/tools/backup/dar/default.nix
index a439bbf41b1..1f379feece4 100644
--- a/pkgs/tools/backup/dar/default.nix
+++ b/pkgs/tools/backup/dar/default.nix
@@ -1,18 +1,28 @@
-{ stdenv, fetchurl, zlib, bzip2, openssl, attr, lzo, libgcrypt, e2fsprogs, gpgme, xz }:
+{ stdenv, fetchurl
+, attr, e2fsprogs
+, curl, librsync, libthreadar
+, gpgme, libgcrypt, openssl
+, bzip2, lzo, xz, zlib
+}:
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "2.6.9";
+  version = "2.6.10";
   pname = "dar";
 
   src = fetchurl {
     url = "mirror://sourceforge/dar/${pname}-${version}.tar.gz";
-    sha256 = "1jzqq54w1dix2qdlj4hr9dpq9fnp23h102bk8d2gq6k7n2zgaj6v";
+    sha256 = "1ryj4xxar18hshg38j1ljhplypgmfprwqn72k1jwxi28qravg80n";
   };
 
-  buildInputs = [ zlib bzip2 openssl lzo libgcrypt gpgme xz ]
-    ++ optionals stdenv.isLinux [ attr e2fsprogs ];
+  outputs = [ "out" "dev" ];
+
+  buildInputs = [
+    curl librsync libthreadar
+    gpgme libgcrypt openssl
+    bzip2 lzo xz zlib
+  ] ++ optionals stdenv.isLinux [ attr e2fsprogs ];
 
   configureFlags = [
     "--disable-birthtime"
@@ -23,7 +33,8 @@ stdenv.mkDerivation rec {
   ];
 
   postInstall = ''
-    rm -r "$out"/share/dar # Disable html help
+    # Disable html help
+    rm -r "$out"/share/dar
   '';
 
   enableParallelBuilding = true;
@@ -33,6 +44,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://dar.linux.free.fr";
     description = "Disk ARchiver, allows backing up files into indexed archives";
+    maintainers = with maintainers; [ izorkin ];
     license = licenses.gpl2;
     platforms = platforms.unix;
   };
diff --git a/pkgs/tools/backup/diskrsync/default.nix b/pkgs/tools/backup/diskrsync/default.nix
index b96d6d75725..1057eb71dd6 100644
--- a/pkgs/tools/backup/diskrsync/default.nix
+++ b/pkgs/tools/backup/diskrsync/default.nix
@@ -24,7 +24,6 @@ buildGoPackage rec {
     description = "Rsync for block devices and disk images";
     homepage = "https://github.com/dop251/diskrsync";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ jluttine ];
   };
 
diff --git a/pkgs/tools/backup/grab-site/default.nix b/pkgs/tools/backup/grab-site/default.nix
index 81e16ad005b..e69823ab45d 100644
--- a/pkgs/tools/backup/grab-site/default.nix
+++ b/pkgs/tools/backup/grab-site/default.nix
@@ -1,6 +1,14 @@
-{ stdenv, python3Packages, fetchFromGitHub }:
+{ stdenv, python37, fetchFromGitHub }:
 
-python3Packages.buildPythonApplication rec {
+let
+  python = python37.override {
+    self = python;
+    packageOverrides = self: super: {
+      tornado = super.tornado_4;
+    };
+  };
+
+in with python.pkgs; buildPythonApplication rec {
   version = "2.1.19";
   name = "grab-site-${version}";
 
@@ -11,7 +19,7 @@ python3Packages.buildPythonApplication rec {
     sha256 = "1v1hnhv5knzdl0kj3574ccwlh171vcb7faddp095ycdmiiybalk4";
   };
 
-  propagatedBuildInputs = with python3Packages; [
+  propagatedBuildInputs = [
     click ludios_wpull manhole lmdb autobahn fb-re2 websockets cchardet
   ];
 
diff --git a/pkgs/tools/backup/kopia/default.nix b/pkgs/tools/backup/kopia/default.nix
new file mode 100644
index 00000000000..4c338eed4b0
--- /dev/null
+++ b/pkgs/tools/backup/kopia/default.nix
@@ -0,0 +1,43 @@
+{ lib, buildGoModule, fetchFromGitHub, coreutils }:
+
+buildGoModule rec {
+  pname = "kopia";
+  version = "0.6.2";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1wz4sqjcih1m4bjxxdrsggai931q72zz8ikf2rwkp4alz12wr355";
+  };
+
+  vendorSha256 = "1npxr7gp59xv38zdx1diilfxij6lb0cmvsnzvjx6n8g0326gf2ii";
+
+  doCheck = false;
+
+  subPackages = [ "." ];
+
+  buildFlagsArray = ''
+    -ldflags=
+       -X github.com/kopia/kopia/repo.BuildVersion=${version}
+       -X github.com/kopia/kopia/repo.BuildInfo=${src.rev}
+  '';
+
+  postConfigure = ''
+    # make 'vendor' writable
+    cp -L -r vendor tmp-vendor
+    rm -rf vendor
+    mv tmp-vendor vendor
+
+    # speakeasy hardcodes /bin/stty https://github.com/bgentry/speakeasy/issues/22
+    substituteInPlace vendor/github.com/bgentry/speakeasy/speakeasy_unix.go \
+      --replace "/bin/stty" "${coreutils}/bin/stty"
+  '';
+
+  meta = with lib; {
+    homepage = "https://kopia.io";
+    description = "Cross-platform backup tool with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication";
+    license = licenses.asl20;
+    maintainers = [ maintainers.bbigras ];
+  };
+}
diff --git a/pkgs/tools/backup/monolith/default.nix b/pkgs/tools/backup/monolith/default.nix
index 36d90fb8066..9d33ce1f3f8 100644
--- a/pkgs/tools/backup/monolith/default.nix
+++ b/pkgs/tools/backup/monolith/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "monolith";
-  version = "2.2.7";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "Y2Z";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ww5q7pk269l2s7d2svkkyd7hb7g4hqmwjn09b287pmjcirnmqn9";
+    sha256 = "16k5mp64a5l063rdj65hbpx414xv0bqdvhvz49k8018f2a2jj5xl";
   };
 
-  cargoSha256 = "0jdbxshvm9hdxdjr3sy1kgszhfs9v4r6gp0nwvv2n92m3z8zri9y";
+  cargoSha256 = "0s5mv8mymycz4ga4zh9kbrhwmhgl4j01pw1sdzxy49l9waryk9p3";
 
   nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
   buildInputs = stdenv.lib.optionals stdenv.isLinux [ openssl ]
diff --git a/pkgs/tools/backup/percona-xtrabackup/2_4.nix b/pkgs/tools/backup/percona-xtrabackup/2_4.nix
new file mode 100644
index 00000000000..5c9ce70e5b9
--- /dev/null
+++ b/pkgs/tools/backup/percona-xtrabackup/2_4.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // {
+  version = "2.4.20";
+  sha256 = "0awdpkcgvx2aq7pwxy8jyzkin6cyrrh3d576x9ldm851kis9n5ii";
+})
diff --git a/pkgs/tools/backup/percona-xtrabackup/8_0.nix b/pkgs/tools/backup/percona-xtrabackup/8_0.nix
new file mode 100644
index 00000000000..2878e93fe70
--- /dev/null
+++ b/pkgs/tools/backup/percona-xtrabackup/8_0.nix
@@ -0,0 +1,14 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // {
+  version = "8.0.13";
+  sha256 = "0cj0fnjimv22ykfl0yk6w29wcjvqp8y8j2g1c6gcml65qazrswyr";
+
+  extraPatches = [
+    ./../../../servers/sql/mysql/abi-check.patch
+  ];
+
+  extraPostInstall = ''
+    rm -r "$out"/docs
+  '';
+})
diff --git a/pkgs/tools/backup/percona-xtrabackup/default.nix b/pkgs/tools/backup/percona-xtrabackup/default.nix
deleted file mode 100644
index a610bb8e13a..00000000000
--- a/pkgs/tools/backup/percona-xtrabackup/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig
-, boost, bison, curl, ncurses, openssl, xxd
-, libaio, libev, libgcrypt, libgpgerror, libtool, zlib
-}:
-
-stdenv.mkDerivation rec {
-  pname = "percona-xtrabackup";
-  version = "2.4.12";
-
-  src = fetchFromGitHub {
-    owner = "percona";
-    repo = "percona-xtrabackup";
-    rev = "${pname}-${version}";
-    sha256 = "1w17v2c677b3vfnm81bs63kjbfiin7f12wl9fbgp83hfpyx5msan";
-  };
-
-  nativeBuildInputs = [ cmake pkgconfig ];
-
-  buildInputs = [
-    boost bison curl ncurses openssl xxd
-    libaio libev libgcrypt libgpgerror libtool zlib
-  ];
-
-  cmakeFlags = [
-    "-DBUILD_CONFIG=xtrabackup_release"
-    "-DINSTALL_MYSQLTESTDIR=OFF"
-    "-DWITH_BOOST=system"
-    "-DWITH_SSL=system"
-    "-DWITH_ZLIB=system"
-    "-DWITH_MAN_PAGES=OFF"
-    "-DCMAKE_CXX_FLAGS=-std=gnu++03"
-  ];
-
-  postInstall = ''
-    rm -r "$out"/lib/plugin/debug
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Non-blocking backup tool for MySQL";
-    homepage = "http://www.percona.com/software/percona-xtrabackup";
-    license = licenses.lgpl2;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ izorkin ];
-  };
-}
diff --git a/pkgs/tools/backup/percona-xtrabackup/generic.nix b/pkgs/tools/backup/percona-xtrabackup/generic.nix
new file mode 100644
index 00000000000..9339e8155ea
--- /dev/null
+++ b/pkgs/tools/backup/percona-xtrabackup/generic.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchFromGitHub, bison, boost, cmake, makeWrapper, pkgconfig
+, curl, cyrus_sasl, libaio, libedit, libev, libevent, libgcrypt, libgpgerror, lz4
+, ncurses, numactl, openssl, protobuf, valgrind, xxd, zlib
+, perlPackages
+, version, sha256, extraPatches ? [], extraPostInstall ? "", ...
+}:
+
+stdenv.mkDerivation rec {
+  pname = "percona-xtrabackup";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "percona";
+    repo = "percona-xtrabackup";
+    rev = "${pname}-${version}";
+    inherit sha256;
+  };
+
+  nativeBuildInputs = [ bison boost cmake makeWrapper pkgconfig ];
+
+  buildInputs = [
+    curl cyrus_sasl libaio libedit libev libevent libgcrypt libgpgerror lz4
+    ncurses numactl openssl protobuf valgrind xxd zlib
+  ] ++ (with perlPackages; [ perl DBI DBDmysql ]);
+
+  patches = extraPatches;
+
+  cmakeFlags = [
+    "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
+    "-DBUILD_CONFIG=xtrabackup_release"
+    "-DINSTALL_MYSQLTESTDIR=OFF"
+    "-DWITH_BOOST=system"
+    "-DWITH_CURL=system"
+    "-DWITH_EDITLINE=system"
+    "-DWITH_LIBEVENT=system"
+    "-DWITH_LZ4=system"
+    "-DWITH_PROTOBUF=system"
+    "-DWITH_SASL=system"
+    "-DWITH_SSL=system"
+    "-DWITH_ZLIB=system"
+    "-DWITH_VALGRIND=ON"
+    "-DWITH_MAN_PAGES=OFF"
+    "-DCMAKE_SKIP_BUILD_RPATH=OFF" # To run libmysql/libmysql_api_test during build.
+  ];
+
+  postInstall = ''
+    wrapProgram "$out"/bin/xtrabackup --prefix PERL5LIB : $PERL5LIB
+    rm -r "$out"/lib/plugin/debug
+  '' + extraPostInstall;
+
+  meta = with stdenv.lib; {
+    description = "Non-blocking backup tool for MySQL";
+    homepage = "http://www.percona.com/software/percona-xtrabackup";
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ izorkin ];
+  };
+}
diff --git a/pkgs/tools/backup/rdedup/default.nix b/pkgs/tools/backup/rdedup/default.nix
index e2d415d92f6..83b14d87db7 100644
--- a/pkgs/tools/backup/rdedup/default.nix
+++ b/pkgs/tools/backup/rdedup/default.nix
@@ -32,7 +32,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dpc/rdedup";
     license = licenses.mpl20;
     maintainers = with maintainers; [ dywedir ];
-    platforms = platforms.all;
     broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/tools/backup/restic/default.nix b/pkgs/tools/backup/restic/default.nix
index f366533f9bf..33cac4ad229 100644
--- a/pkgs/tools/backup/restic/default.nix
+++ b/pkgs/tools/backup/restic/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, lib, buildGoPackage, fetchFromGitHub, installShellFiles, nixosTests}:
+{ stdenv, lib, buildGoPackage, fetchFromGitHub, installShellFiles, makeWrapper
+, nixosTests, rclone }:
 
 buildGoPackage rec {
   pname = "restic";
@@ -15,11 +16,13 @@ buildGoPackage rec {
 
   subPackages = [ "cmd/restic" ];
 
-  nativeBuildInputs = [ installShellFiles ];
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
 
   passthru.tests.restic = nixosTests.restic;
 
-  postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
+  postInstall = ''
+    wrapProgram $out/bin/restic --prefix PATH : '${rclone}/bin'
+  '' + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
     $out/bin/restic generate \
       --bash-completion restic.bash \
       --zsh-completion restic.zsh \
diff --git a/pkgs/tools/backup/wal-g/default.nix b/pkgs/tools/backup/wal-g/default.nix
index 2f2541c41cb..85a6b169f74 100644
--- a/pkgs/tools/backup/wal-g/default.nix
+++ b/pkgs/tools/backup/wal-g/default.nix
@@ -1,22 +1,20 @@
-{ stdenv, buildGoModule, fetchFromGitHub, brotli }:
+{ lib, buildGoModule, fetchFromGitHub, brotli }:
 
 buildGoModule rec {
   pname = "wal-g";
-  version = "0.2.15";
+  version = "0.2.17";
 
   src = fetchFromGitHub {
     owner = "wal-g";
     repo = "wal-g";
     rev = "v${version}";
-    sha256 = "1hslhs9i4wib6c74gdq9yail958ff1y11pymjww2xr84wkwd9v7i";
+    sha256 = "0r6vy2b3xqwa22286srwngk63sq4aza6aj7brwc130vypcps7svp";
   };
 
-  vendorSha256 = "0jjr33k27k6h27sa01ipz0aydch3i9klknqb3yq8f048zkb54gv8";
+  vendorSha256 = "0r73l4kxzldca1vg5mshq6iqsxcrndcbmbp3d7i9pxyb2kig8gv5";
 
   buildInputs = [ brotli ];
 
-  doCheck = true;
-
   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}" ];
@@ -25,10 +23,10 @@ buildGoModule rec {
     mv $out/bin/pg $out/bin/wal-g
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/wal-g/wal-g";
-    license = stdenv.lib.licenses.asl20;
+    license = licenses.asl20;
     description = "An archival restoration tool for PostgreSQL";
-    maintainers = [ stdenv.lib.maintainers.ocharles ];
+    maintainers = with maintainers; [ ocharles marsam ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/backup/zfs-prune-snapshots/default.nix b/pkgs/tools/backup/zfs-prune-snapshots/default.nix
new file mode 100644
index 00000000000..434c86b343a
--- /dev/null
+++ b/pkgs/tools/backup/zfs-prune-snapshots/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, go-md2man }:
+
+stdenv.mkDerivation rec {
+  version = "1.1.0";
+  pname = "zfs-prune-snapshots";
+
+  src = fetchFromGitHub {
+    owner = "bahamas10";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "09dz9v6m47dxfvfncz0k926dqfhagm87kd33dcw66cbw15ac3spx";
+  };
+
+  nativeBuildInputs = [ go-md2man ];
+
+  makeTargets = [ "man" ];
+
+  installPhase = ''
+    install -m 755 -D zfs-prune-snapshots $out/bin/zfs-prune-snapshots
+    install -m 644 -D man/zfs-prune-snapshots.1 $out/share/man/man1/zfs-prune-snapshots.1
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Remove snapshots from one or more zpools that match given criteria";
+    homepage = "https://github.com/bahamas10/zfs-prune-snapshots";
+    license = licenses.mit;
+    maintainers = [ maintainers.ymarkus ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/bluetooth/blueberry/default.nix b/pkgs/tools/bluetooth/blueberry/default.nix
new file mode 100644
index 00000000000..16563c38099
--- /dev/null
+++ b/pkgs/tools/bluetooth/blueberry/default.nix
@@ -0,0 +1,96 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, bluez-tools
+, cinnamon
+, gnome3
+, gobject-introspection
+, intltool
+, pavucontrol
+, python3Packages
+, utillinux
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "blueberry";
+  version = "1.3.9";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "0llvz1h2dmvhvwkkvl0q4ggi1nmdbllw34ppnravs5lybqkicyw9";
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    python3Packages.wrapPython
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    bluez-tools
+    cinnamon.xapps
+    gnome3.gnome-bluetooth
+    python3Packages.python
+    utillinux
+  ];
+
+  pythonPath = with python3Packages; [
+    dbus-python
+    pygobject3
+    setproctitle
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    cp -a etc usr/* $out
+
+    # Fix paths
+    substituteInPlace $out/bin/blueberry \
+      --replace /usr/lib/blueberry $out/lib/blueberry
+    substituteInPlace $out/bin/blueberry-tray \
+      --replace /usr/lib/blueberry $out/lib/blueberry
+    substituteInPlace $out/etc/xdg/autostart/blueberry-obex-agent.desktop \
+      --replace /usr/lib/blueberry $out/lib/blueberry
+    substituteInPlace $out/etc/xdg/autostart/blueberry-tray.desktop \
+      --replace Exec=blueberry-tray Exec=$out/bin/blueberry-tray
+    substituteInPlace $out/lib/blueberry/blueberry-obex-agent.py \
+      --replace /usr/share $out/share
+    substituteInPlace $out/lib/blueberry/blueberry-tray.py \
+      --replace /usr/share $out/share
+    substituteInPlace $out/lib/blueberry/blueberry.py \
+      --replace '"bt-adapter"' '"${bluez-tools}/bin/bt-adapter"' \
+      --replace /usr/bin/pavucontrol ${pavucontrol}/bin/pavucontrol \
+      --replace /usr/lib/blueberry $out/lib/blueberry \
+      --replace /usr/share $out/share
+    substituteInPlace $out/lib/blueberry/rfkillMagic.py \
+      --replace /usr/bin/rfkill ${utillinux}/bin/rfkill \
+      --replace /usr/sbin/rfkill ${utillinux}/bin/rfkill \
+      --replace /usr/lib/blueberry $out/lib/blueberry
+    substituteInPlace $out/share/applications/blueberry.desktop \
+      --replace Exec=blueberry Exec=$out/bin/blueberry
+
+    glib-compile-schemas --strict $out/share/glib-2.0/schemas
+
+    runHook postInstall
+  '';
+
+  dontWrapGApps = true;
+
+  postFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+    wrapPythonProgramsIn $out/lib "$out $pythonPath"
+  '';
+
+  meta = with lib; {
+    description = "Bluetooth configuration tool";
+    homepage = "https://github.com/linuxmint/blueberry";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/tools/cd-dvd/isolyzer/default.nix b/pkgs/tools/cd-dvd/isolyzer/default.nix
new file mode 100644
index 00000000000..1fd704d90f1
--- /dev/null
+++ b/pkgs/tools/cd-dvd/isolyzer/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "isolyzer";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "KBNLresearch";
+    repo = pname;
+    rev = version;
+    sha256 = "1fysm05cz0z54apn1p889xhbgjnfwax6fngi05yij5qp2zxqghf9";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [ setuptools six ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/KBNLresearch/isolyzer";
+    description = "Verify size of ISO 9660 image against Volume Descriptor fields";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mkg20001 ];
+  };
+}
diff --git a/pkgs/tools/compression/bzip2/1_1.nix b/pkgs/tools/compression/bzip2/1_1.nix
new file mode 100644
index 00000000000..3f6105ca507
--- /dev/null
+++ b/pkgs/tools/compression/bzip2/1_1.nix
@@ -0,0 +1,45 @@
+{ stdenv
+, fetchFromGitLab
+, meson
+, python3
+, ninja
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bzip2-unstable";
+  version = "2020-08-11";
+
+  src = fetchFromGitLab {
+    owner = "federicomenaquintero";
+    repo = "bzip2";
+    rev = "15255b553e7c095fb7a26d4dc5819a11352ebba1";
+    sha256 = "sha256-BAyz35D62LWi47B/gNcCSKpdaECHBGSpt21vtnk3fKs=";
+  };
+
+  postPatch = ''
+    patchShebangs install_links.py
+  '';
+
+  nativeBuildInputs = [
+    meson
+    python3
+    ninja
+  ];
+
+  outputs = [ "bin" "dev" "out" "man" ];
+
+  mesonFlags = [
+    "-Ddocs=disabled"
+  ];
+
+  strictDeps = true;
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "High-quality data compression program";
+    license = licenses.bsdOriginal;
+    platforms = platforms.all;
+    maintainers = [];
+  };
+}
diff --git a/pkgs/tools/compression/bzip2/default.nix b/pkgs/tools/compression/bzip2/default.nix
index 41dcd54ecdb..3e20258cbbe 100644
--- a/pkgs/tools/compression/bzip2/default.nix
+++ b/pkgs/tools/compression/bzip2/default.nix
@@ -3,6 +3,11 @@
 , autoreconfHook
 }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   pname = "bzip2";
   version = "1.0.6.0.1";
diff --git a/pkgs/tools/compression/gzip/default.nix b/pkgs/tools/compression/gzip/default.nix
index eb680ff8a06..9628e100c1c 100644
--- a/pkgs/tools/compression/gzip/default.nix
+++ b/pkgs/tools/compression/gzip/default.nix
@@ -4,6 +4,11 @@
 , writeText
 }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   pname = "gzip";
   version = "1.10";
diff --git a/pkgs/tools/compression/lzfse/default.nix b/pkgs/tools/compression/lzfse/default.nix
index 72560c1d9ae..bd97620dba6 100644
--- a/pkgs/tools/compression/lzfse/default.nix
+++ b/pkgs/tools/compression/lzfse/default.nix
@@ -1,19 +1,17 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, cmake }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "lzfse";
-  version = "2017-03-08";
+  version = "1.0";
 
   src = fetchFromGitHub {
     owner = "lzfse";
     repo = "lzfse";
-    rev = "88e2d27";
+    rev = "lzfse-${version}";
     sha256 = "1mfh6y6vpvxsdwmqmfbkqkwvxc0pz2dqqc72c6fk9sbsrxxaghd5";
   };
 
-  makeFlags = [ "INSTALL_PREFIX=$(out)" ];
-
-  enableParallelBuilding = false; #bug
+  nativeBuildInputs = [ cmake ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/lzfse/lzfse";
@@ -23,7 +21,7 @@ stdenv.mkDerivation {
       LZFSE is a Lempel-Ziv style data compression algorithm using Finite State Entropy coding.
       It targets similar compression rates at higher compression and decompression speed compared to deflate using zlib.
     '';
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/tools/compression/lzip/default.nix b/pkgs/tools/compression/lzip/default.nix
index 62f57a8cca7..e55af8b94ed 100644
--- a/pkgs/tools/compression/lzip/default.nix
+++ b/pkgs/tools/compression/lzip/default.nix
@@ -1,5 +1,10 @@
 { stdenv, fetchurl, texinfo }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   pname = "lzip";
   version = "1.21";
diff --git a/pkgs/tools/compression/pixz/default.nix b/pkgs/tools/compression/pixz/default.nix
index 7eca80f8400..c7b4b46328d 100644
--- a/pkgs/tools/compression/pixz/default.nix
+++ b/pkgs/tools/compression/pixz/default.nix
@@ -5,7 +5,7 @@
 }:
 stdenv.mkDerivation rec {
   baseName = "pixz";
-  version = "1.0.6";
+  version = "1.0.7";
   name = "${baseName}-${version}";
 
   nativeBuildInputs = [ pkgconfig ];
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     owner = "vasi";
     repo = baseName;
     rev = "v${version}";
-    sha256 = "0q61wqg2yxrgd4nc7256mf7izp92is29ll3rax1cxr6fj9jrd8b7";
+    sha256 = "163axxs22w7pghr786hda22mnlpvmi50hzhfr9axwyyjl9n41qs2";
   };
   preConfigure = ''
     ./autogen.sh
diff --git a/pkgs/tools/compression/xz/default.nix b/pkgs/tools/compression/xz/default.nix
index 545384c396d..5cf88288d81 100644
--- a/pkgs/tools/compression/xz/default.nix
+++ b/pkgs/tools/compression/xz/default.nix
@@ -1,5 +1,10 @@
 { stdenv, fetchurl, enableStatic ? false }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   name = "xz-5.2.5";
 
diff --git a/pkgs/tools/compression/zstd/default.nix b/pkgs/tools/compression/zstd/default.nix
index f919fb92ed1..8ce434741a5 100644
--- a/pkgs/tools/compression/zstd/default.nix
+++ b/pkgs/tools/compression/zstd/default.nix
@@ -1,8 +1,9 @@
-{ stdenv, fetchFromGitHub, fetchpatch, cmake, gnugrep
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, bash, gnugrep
 , fixDarwinDylibNames
 , file
 , legacySupport ? false
-, enableShared ? true }:
+, static ? false
+}:
 
 stdenv.mkDerivation rec {
   pname = "zstd";
@@ -17,6 +18,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ]
    ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
+  buildInputs = [ bash ];
 
   patches = [
     ./playtests-darwin.patch
@@ -28,9 +30,20 @@ stdenv.mkDerivation rec {
     # work fine, and I'm not sure how to write the condition.
     ++ stdenv.lib.optional stdenv.hostPlatform.isWindows ./mcfgthreads-no-pthread.patch;
 
+  postPatch = stdenv.lib.optionalString (!static) ''
+    substituteInPlace build/cmake/CMakeLists.txt \
+      --replace 'message(SEND_ERROR "You need to build static library to build tests")' ""
+    substituteInPlace build/cmake/tests/CMakeLists.txt \
+      --replace 'libzstd_static' 'libzstd_shared'
+    sed -i \
+      "1aexport ${stdenv.lib.optionalString stdenv.isDarwin "DY"}LD_LIBRARY_PATH=$PWD/build_/lib" \
+      tests/playTests.sh
+  '';
+
   cmakeFlags = [
-    "-DZSTD_BUILD_SHARED:BOOL=${if enableShared then "ON" else "OFF"}"
-    # They require STATIC for bin/zstd and tests.
+    "-DZSTD_BUILD_SHARED:BOOL=${if (!static) then "ON" else "OFF"}"
+    "-DZSTD_BUILD_STATIC:BOOL=${if static then "ON" else "OFF"}"
+    "-DZSTD_PROGRAMS_LINK_SHARED:BOOL=${if (!static) then "ON" else "OFF"}"
     "-DZSTD_LEGACY_SUPPORT:BOOL=${if legacySupport then "ON" else "OFF"}"
     "-DZSTD_BUILD_TESTS:BOOL=ON"
   ];
@@ -44,6 +57,8 @@ stdenv.mkDerivation rec {
   doCheck = true;
   checkPhase = ''
     runHook preCheck
+    # Patch shebangs for playTests
+    patchShebangs ../programs/zstdgrep
     ctest -R playTests # The only relatively fast test.
     runHook postCheck
   '';
@@ -56,8 +71,6 @@ stdenv.mkDerivation rec {
     substituteInPlace ../programs/zstdless \
       --replace "zstdcat" "$bin/bin/zstdcat"
   '';
-  # Don't duplicate the library code in runtime closures.
-  postInstall = stdenv.lib.optionalString enableShared ''rm "$out"/lib/libzstd.a'';
 
   outputs = [ "bin" "dev" "man" "out" ];
 
diff --git a/pkgs/tools/filesystems/avfs/default.nix b/pkgs/tools/filesystems/avfs/default.nix
index eaf9ac634a1..edfcaa0d8f8 100644
--- a/pkgs/tools/filesystems/avfs/default.nix
+++ b/pkgs/tools/filesystems/avfs/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "avfs";
-  version = "1.1.2";
+  version = "1.1.3";
   src = fetchurl {
     url = "mirror://sourceforge/avf/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "035b6y49nzgswf5n70aph8pm48sbv9nqwlnp3wwbq892c39kk4xn";
+    sha256 = "1psh8k7g7rb0gn7aygbjv86kxyi9xq07barxksa99nnmq3lc2kjg";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/filesystems/bashmount/default.nix b/pkgs/tools/filesystems/bashmount/default.nix
index 206e68ce1c2..70a4c1419c8 100644
--- a/pkgs/tools/filesystems/bashmount/default.nix
+++ b/pkgs/tools/filesystems/bashmount/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bashmount";
-  version = "4.3.0";
+  version = "4.3.1";
 
   src = fetchFromGitHub {
     owner = "jamielinux";
     repo = "bashmount";
     rev = version;
-    sha256 = "1idjyl5dr8a72w3lg15qx03wgc5mj2ga2v2jkyb8v9gi5ahl03mn";
+    sha256 = "0pqjaib0qiwjq0ral5yjz4iq8hpaj9mqkhlihgfz0xigcn9lxwpf";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/filesystems/btrfs-heatmap/default.nix b/pkgs/tools/filesystems/btrfs-heatmap/default.nix
new file mode 100644
index 00000000000..04d74d78cfd
--- /dev/null
+++ b/pkgs/tools/filesystems/btrfs-heatmap/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, lib
+, fetchFromGitHub
+, python3
+, installShellFiles
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "btrfs-heatmap";
+  version = "8";
+
+  src = fetchFromGitHub {
+    owner = "knorrie";
+    repo = "btrfs-heatmap";
+    rev = "v${version}";
+    sha256 = "035frvk3s7g18y81srssvm550nfq7jylr7w60nvixidxvrc0yrnh";
+  };
+
+  # man page is currently only in the debian branch
+  # https://github.com/knorrie/btrfs-heatmap/issues/11
+  msrc = fetchurl {
+    url = "https://raw.githubusercontent.com/knorrie/btrfs-heatmap/45d844e12d7f5842ebb99e65d7b968a5e1a89066/debian/man/btrfs-heatmap.8";
+    sha256 = "1md7xc426sc8lq4w29gjd6gv7vjqhcwrqqcr6z39kihvi04d5f6q";
+  };
+
+  buildInputs = [ python3 ];
+  nativeBuildInputs = [ python3.pkgs.wrapPython installShellFiles ];
+
+  outputs = [ "out" "man" ];
+
+  installPhase = ''
+    install -Dm 0755 heatmap.py $out/sbin/btrfs-heatmap
+    installManPage ${msrc}
+
+    buildPythonPath ${python3.pkgs.btrfs}
+    patchPythonScript $out/sbin/btrfs-heatmap
+  '';
+
+  meta = with lib; {
+    description = "Visualize the layout of a mounted btrfs";
+    homepage = "https://github.com/knorrie/btrfs-heatmap";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.evils ];
+  };
+}
diff --git a/pkgs/tools/filesystems/btrfs-progs/default.nix b/pkgs/tools/filesystems/btrfs-progs/default.nix
index 5a6dafae298..8ff72421a59 100644
--- a/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "btrfs-progs";
-  version = "5.6.1";
+  version = "5.7";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    sha256 = "1nwnvjdnr9fjj2q2p2vpjabfdhcrwykgj9knjcsqy0c7p1bgbk2h";
+    sha256 = "0p6ycbr8sw5bq3mj84gh9rvh5sk8sjr2l9hb9dhm4j41ij5h8bsw";
   };
 
   nativeBuildInputs = [
@@ -20,10 +20,6 @@ stdenv.mkDerivation rec {
 
   # for python cross-compiling
   _PYTHON_HOST_PLATFORM = stdenv.hostPlatform.config;
-  # The i686 case is a quick hack; I don't know what's wrong.
-  postConfigure = stdenv.lib.optionalString (!stdenv.isi686) ''
-    export LDSHARED="$LD -shared"
-  '';
 
   # gcc bug with -O1 on ARM with gcc 4.8
   # This should be fine on all platforms so apply universally
diff --git a/pkgs/tools/filesystems/ceph/0000-fix-SPDK-build-env.patch b/pkgs/tools/filesystems/ceph/0000-fix-SPDK-build-env.patch
index b04082537b5..a117408b000 100644
--- a/pkgs/tools/filesystems/ceph/0000-fix-SPDK-build-env.patch
+++ b/pkgs/tools/filesystems/ceph/0000-fix-SPDK-build-env.patch
@@ -1,11 +1,11 @@
---- a/cmake/modules/BuildSPDK.cmake	2018-08-09 09:22:34.950684960 +0200
-+++ b/cmake/modules/BuildSPDK.cmake	2018-08-09 09:21:59.986964224 +0200
-@@ -16,7 +16,7 @@
+--- a/cmake/modules/BuildSPDK.cmake
++++ b/cmake/modules/BuildSPDK.cmake
+@@ -35,7 +35,7 @@ macro(build_spdk)
      # unset $CFLAGS, otherwise it will interfere with how SPDK sets
      # its include directory.
      # unset $LDFLAGS, otherwise SPDK will fail to mock some functions.
--    BUILD_COMMAND env -i PATH=$ENV{PATH} CC=${CMAKE_C_COMPILER} $(MAKE) EXTRA_CFLAGS="-fPIC"
-+    BUILD_COMMAND env PATH=$ENV{PATH} CC=${CMAKE_C_COMPILER} $(MAKE) EXTRA_CFLAGS="-fPIC" C_OPT="-mssse3"
+-    BUILD_COMMAND env -i PATH=$ENV{PATH} CC=${CMAKE_C_COMPILER} ${make_cmd} EXTRA_CFLAGS="${spdk_CFLAGS}"
++    BUILD_COMMAND env -i PATH=$ENV{PATH} CC=${CMAKE_C_COMPILER} ${make_cmd} EXTRA_CFLAGS="${spdk_CFLAGS}" C_OPT="-mssse3"
      BUILD_IN_SOURCE 1
      INSTALL_COMMAND "true")
-   ExternalProject_Get_Property(spdk-ext source_dir)
+   unset(make_cmd)
diff --git a/pkgs/tools/filesystems/ceph/default.nix b/pkgs/tools/filesystems/ceph/default.nix
index fc8ac971da7..767730c4030 100644
--- a/pkgs/tools/filesystems/ceph/default.nix
+++ b/pkgs/tools/filesystems/ceph/default.nix
@@ -75,6 +75,26 @@ let
     none = [ ];
   };
 
+  getMeta = description: {
+     homepage = "https://ceph.com/";
+     inherit description;
+     license = with licenses; [ lgpl21 gpl2 bsd3 mit publicDomain ];
+     maintainers = with maintainers; [ adev ak johanot krav ];
+     platforms = [ "x86_64-linux" ];
+   };
+
+  ceph-common = python3Packages.buildPythonPackage rec{
+    pname = "ceph-common";
+    inherit src version;
+
+    sourceRoot = "ceph-${version}/src/python-common";
+
+    checkInputs = [ python3Packages.pytest ];
+    propagatedBuildInputs = with python3Packages; [ pyyaml six ];
+
+    meta = getMeta "Ceph common module for code shared by manager modules";
+  };
+
   ceph-python-env = python3Packages.python.withPackages (ps: [
     ps.sphinx
     ps.flask
@@ -83,27 +103,33 @@ let
     ps.virtualenv
     # Libraries needed by the python tools
     ps.Mako
+    ceph-common
     ps.cherrypy
+    ps.dateutil
+    ps.jsonpatch
     ps.pecan
     ps.prettytable
     ps.pyjwt
     ps.webob
     ps.bcrypt
+    # scipy > 1.3 breaks diskprediction_local, leading to mgr hang on startup
+    # Bump (and get rid of scipy_1_3) once these issues are resolved:
+    # https://tracker.ceph.com/issues/42764 https://tracker.ceph.com/issues/45147
+    ps.scipy_1_3
     ps.six
     ps.pyyaml
   ]);
   sitePackages = ceph-python-env.python.sitePackages;
 
-  version = "14.2.10";
+  version = "15.2.4";
+  src = fetchurl {
+    url = "http://download.ceph.com/tarballs/ceph-${version}.tar.gz";
+    sha256 = "0jy5dp4r1bqk1l7nrv8l8zpl984k61p3vkvf73ygcn03bxyjjlax";
+  };
 in rec {
   ceph = stdenv.mkDerivation {
     pname = "ceph";
-    inherit version;
-
-    src = fetchurl {
-      url = "http://download.ceph.com/tarballs/ceph-${version}.tar.gz";
-      sha256 = "0bbs3ag8zav283qpxrrndhvh2z01ykm6126fmwrbc1c5f9jfjq39";
-    };
+    inherit src version;
 
     patches = [
       ./0000-fix-SPDK-build-env.patch
@@ -173,25 +199,13 @@ in rec {
 
     doCheck = false; # uses pip to install things from the internet
 
-    meta = {
-      homepage = "https://ceph.com/";
-      description = "Distributed storage system";
-      license = with licenses; [ lgpl21 gpl2 bsd3 mit publicDomain ];
-      maintainers = with maintainers; [ adev ak krav johanot srhb ];
-      platforms = [ "x86_64-linux" ];
-    };
+    meta = getMeta "Distributed storage system";
 
     passthru.version = version;
   };
 
   ceph-client = runCommand "ceph-client-${version}" {
-     meta = {
-        homepage = "https://ceph.com/";
-        description = "Tools needed to mount Ceph's RADOS Block Devices";
-        license = with licenses; [ lgpl21 gpl2 bsd3 mit publicDomain ];
-        maintainers = with maintainers; [ adev ak johanot krav ];
-        platforms = [ "x86_64-linux" ];
-      };
+      meta = getMeta "Tools needed to mount Ceph's RADOS Block Devices";
     } ''
       mkdir -p $out/{bin,etc,${sitePackages}}
       cp -r ${ceph}/bin/{ceph,.ceph-wrapped,rados,rbd,rbdmap} $out/bin
diff --git a/pkgs/tools/filesystems/fatsort/default.nix b/pkgs/tools/filesystems/fatsort/default.nix
index b8f63a379b1..90ab3a6df41 100644
--- a/pkgs/tools/filesystems/fatsort/default.nix
+++ b/pkgs/tools/filesystems/fatsort/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, help2man}:
 
 stdenv.mkDerivation rec {
-  version = "1.6.2.605";
+  version = "1.6.3.622";
   pname = "fatsort";
 
   src = fetchurl {
     url = "mirror://sourceforge/fatsort/${pname}-${version}.tar.xz";
-    sha256 = "1dzzsl3a1ampari424vxkma0i87qkbgkgm2169x9xf3az0vgmjh8";
+    sha256 = "1z2nabm38lg56h05yx3jjsndbqxk1zbjcisrczzamypn13m98728";
   };
 
   patches = [ ./fatsort-Makefiles.patch ];
diff --git a/pkgs/tools/filesystems/fuse-overlayfs/default.nix b/pkgs/tools/filesystems/fuse-overlayfs/default.nix
index ba5f4a3dd7e..11a3615a84c 100644
--- a/pkgs/tools/filesystems/fuse-overlayfs/default.nix
+++ b/pkgs/tools/filesystems/fuse-overlayfs/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ fuse3 ];
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) podman; };
 
   meta = with stdenv.lib; {
     description = "FUSE implementation for overlayfs";
diff --git a/pkgs/tools/filesystems/gcsfuse/default.nix b/pkgs/tools/filesystems/gcsfuse/default.nix
index 3f0e261b18d..89fa3ebe33b 100644
--- a/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/pkgs/tools/filesystems/gcsfuse/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "gcsfuse";
-  version = "0.29.0";
+  version = "0.30.0";
 
   src = fetchFromGitHub {
     owner = "googlecloudplatform";
     repo = "gcsfuse";
     rev = "v${version}";
-    sha256 = "11an7cxgg3x830mwlhyx50xkcv7zpa9aziz6gz1crwp8shr4hdik";
+    sha256 = "1ai1dgf07g2c08rp87kygrl67hyj7x793093wmnwaxfpylx5flv0";
   };
 
   goPackagePath = "github.com/googlecloudplatform/gcsfuse";
@@ -20,6 +20,8 @@ buildGoPackage rec {
     ln -s $out/bin/mount_gcsfuse $out/bin/mount.fuse.gcsfuse
   '';
 
+  buildFlagsArray = [ "-ldflags=-s -w -X main.gcsfuseVersion=${version}" ];
+
   meta = with lib;{
     description = "A user-space file system for interacting with Google Cloud Storage";
     homepage = "https://cloud.google.com/storage/docs/gcs-fuse";
diff --git a/pkgs/tools/filesystems/gocryptfs/default.nix b/pkgs/tools/filesystems/gocryptfs/default.nix
index 70a0aff118d..2f0deed7f61 100644
--- a/pkgs/tools/filesystems/gocryptfs/default.nix
+++ b/pkgs/tools/filesystems/gocryptfs/default.nix
@@ -8,7 +8,7 @@ let
 in
 buildGoPackage rec {
   pname = "gocryptfs";
-  version = "1.7.1";
+  version = "1.8.0";
 
   goPackagePath = "github.com/rfjakob/gocryptfs";
 
@@ -19,7 +19,7 @@ buildGoPackage rec {
     owner = "rfjakob";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zhzhvjhvi6xzib985bsnj9yzp4zsnm91m1679nbab6vm3kanq06";
+    sha256 = "1acalwrr5xqhpqca3gypj0s68w6vpckxmg5z5gfgh8wx6nqx4aw9";
   };
 
   postPatch = "rm -r tests";
diff --git a/pkgs/tools/filesystems/idsk/default.nix b/pkgs/tools/filesystems/idsk/default.nix
index 72ed4f0ee1b..6de0d586ad9 100644
--- a/pkgs/tools/filesystems/idsk/default.nix
+++ b/pkgs/tools/filesystems/idsk/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
 
   pname = "idsk";
-  version = "0.19";
+  version = "0.20";
 
   src = fetchFromGitHub {
     repo = "idsk";
     owner = "cpcsdk";
     rev = "v${version}";
-    sha256 = "0b4my5cz5kbzh4n65jr721piha6zixaxmfiss2zidip978k9rb6f";
+    sha256 = "05zbdkb9s6sfkni6k927795w2fqdhnf3i7kgl27715sdmmdab05d";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/filesystems/moosefs/default.nix b/pkgs/tools/filesystems/moosefs/default.nix
index 8ceb3d7c0aa..df3dd661d75 100644
--- a/pkgs/tools/filesystems/moosefs/default.nix
+++ b/pkgs/tools/filesystems/moosefs/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "moosefs";
-  version = "3.0.113";
+  version = "3.0.114";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0h3dhj6lznbkvmkr21w58avl9fa4pgj73fv0lkzcagksyyh5l0n9";
+    sha256 = "0bilrzzlg599xy21cm7r0xb2sanngr74j3z03xgybcm10kl97i7j";
   };
 
   nativeBuildInputs = [ pkgconfig makeWrapper ];
diff --git a/pkgs/tools/filesystems/nixpart/0.4/blivet.nix b/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
index b05abd72bac..6ba29cb98d4 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
@@ -30,7 +30,7 @@ buildPythonApplication rec {
     sed -i -e 's|"lsof"|"${lsof}/bin/lsof"|' blivet/formats/fs.py
     sed -i -r -e 's|"(u?mount)"|"${utillinux.bin}/bin/\1"|' blivet/util.py
     sed -i -e '/find_library/,/find_library/ {
-      c libudev = "${systemd.lib}/lib/libudev.so.1"
+      c libudev = "${stdenv.lib.getLib systemd}/lib/libudev.so.1"
     }' blivet/pyudev.py
   '';
 
diff --git a/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix b/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
index ffed57e6345..36525e6fa3c 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
@@ -36,8 +36,8 @@ stdenv.mkDerivation rec {
       substituteInPlace kpartx/kpartx.rules --replace /sbin/kpartx $out/sbin/kpartx
       substituteInPlace kpartx/kpartx_id --replace /sbin/dmsetup ${lvm2}/sbin/dmsetup
 
-      substituteInPlace libmultipath/defaults.h --replace /lib/udev/scsi_id ${systemd.lib}/lib/udev/scsi_id
-      substituteInPlace libmultipath/hwtable.c --replace /lib/udev/scsi_id ${systemd.lib}/lib/udev/scsi_id
+      substituteInPlace libmultipath/defaults.h --replace /lib/udev/scsi_id ${stdenv.lib.getLib systemd}/lib/udev/scsi_id
+      substituteInPlace libmultipath/hwtable.c --replace /lib/udev/scsi_id ${stdenv.lib.getLib systemd}/lib/udev/scsi_id
 
       sed -i -re '
          s,^( *#define +DEFAULT_MULTIPATHDIR\>).*,\1 "'"$out/lib/multipath"'",
diff --git a/pkgs/tools/filesystems/reiser4progs/default.nix b/pkgs/tools/filesystems/reiser4progs/default.nix
index 896d472b832..158097d3812 100644
--- a/pkgs/tools/filesystems/reiser4progs/default.nix
+++ b/pkgs/tools/filesystems/reiser4progs/default.nix
@@ -1,13 +1,13 @@
 {stdenv, fetchurl, libaal}:
 
-let version = "2.0.0"; in
+let version = "2.0.1"; in
 stdenv.mkDerivation rec {
   pname = "reiser4progs";
   inherit version;
 
   src = fetchurl {
     url = "mirror://sourceforge/reiser4/reiser4-utils/${pname}-${version}.tar.gz";
-    sha256 = "00kx9prz3d5plp1hn4xdkkd99cw42sanlsjnjhj0fsrlmi9yfs8n";
+    sha256 = "1r7m95mnp6xmp1j5k99jhmz6g9y2qq7cghlmdxsfbr3xviqfs45d";
   };
 
   buildInputs = [libaal];
diff --git a/pkgs/tools/filesystems/s3fs/default.nix b/pkgs/tools/filesystems/s3fs/default.nix
index 282252b4b13..3e91a1b0c47 100644
--- a/pkgs/tools/filesystems/s3fs/default.nix
+++ b/pkgs/tools/filesystems/s3fs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "s3fs-fuse";
-  version = "1.86";
+  version = "1.87";
 
   src = fetchFromGitHub {
     owner  = "s3fs-fuse";
     repo   = "s3fs-fuse";
     rev    = "v${version}";
-    sha256 = "115zqbspr17xmidhizjmsqv9c7ql2jhmxws8wh59bpz2335kn0q7";
+    sha256 = "09ib3sh6vg3z7cpccj3ysgpdyf84a98lf6nz15a61r4l27h111f2";
   };
 
   buildInputs = [ curl openssl libxml2 ]
diff --git a/pkgs/tools/filesystems/securefs/default.nix b/pkgs/tools/filesystems/securefs/default.nix
index c5a5af212d9..c8efa4d61ab 100644
--- a/pkgs/tools/filesystems/securefs/default.nix
+++ b/pkgs/tools/filesystems/securefs/default.nix
@@ -4,13 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "securefs";
-  version = "0.8.3";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
-    sha256 = "0nf0bd163gz844mikqab2mh7xjlj31ixa6hi85qxdifyjpfjv7y4";
+    sha256 = "1sxfgqgy63ml7vg7zj3glvra4wj2qmfv9jzmpm1jqy8hq7qlqlsx";
     rev = version;
     repo = "securefs";
     owner = "netheril96";
+    fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/filesystems/squashfs-tools-ng/default.nix b/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
index 72b95641d00..0c977799db8 100644
--- a/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
+++ b/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "squashfs-tools-ng";
-  version = "0.9.1";
+  version = "1.0.1";
 
   src = fetchurl {
     url = "https://infraroot.at/pub/squashfs/squashfs-tools-ng-${version}.tar.xz";
-    sha256 = "1ilxkrqbpb5whv7xfwfvph76jwyjzf988njjpyyr99h6jv2r77q1";
+    sha256 = "120x2hlbhpm90bzxz70z764552ffrjpidmp1y6gafx70zp0hrks4";
   };
 
   nativeBuildInputs = [ doxygen graphviz pkgconfig perl ];
diff --git a/pkgs/tools/filesystems/wiimms-iso-tools/default.nix b/pkgs/tools/filesystems/wiimms-iso-tools/default.nix
new file mode 100644
index 00000000000..cb09fdcf131
--- /dev/null
+++ b/pkgs/tools/filesystems/wiimms-iso-tools/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, zlib, ncurses, fuse}:
+
+stdenv.mkDerivation rec {
+  name = "wiimms-iso-tools";
+  version = "3.02a";
+
+  src = fetchurl {
+    url = "https://download.wiimm.de/source/wiimms-iso-tools/wiimms-iso-tools.source-${version}.tar.bz2";
+    sha256 = "074cvcaqz23xyihslc6n64wwxwcnl6xp7l0750yb9pc0wrqxmj69";
+  };
+
+  buildInputs = [ zlib ncurses fuse ];
+
+  patches = [ ./fix-paths.diff ];
+  postPatch = ''
+    patchShebangs setup.sh
+    patchShebangs gen-template.sh
+    patchShebangs gen-text-file.sh
+  '';
+
+  NIX_CFLAGS_COMPILE = "-Wno-error=format-security";
+  INSTALL_PATH = "$out";
+
+  installPhase = ''
+    mkdir "$out"
+    patchShebangs install.sh
+    ./install.sh --no-sudo
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://wit.wiimm.de";
+    description = "A set of command line tools to manipulate Wii and GameCube ISO images and WBFS containers";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ nilp0inter ];
+  };
+}
diff --git a/pkgs/tools/filesystems/wiimms-iso-tools/fix-paths.diff b/pkgs/tools/filesystems/wiimms-iso-tools/fix-paths.diff
new file mode 100644
index 00000000000..4a545e92a18
--- /dev/null
+++ b/pkgs/tools/filesystems/wiimms-iso-tools/fix-paths.diff
@@ -0,0 +1,12 @@
+diff -r -u wiimms-iso-tools.source-3.02a.patched/setup.sh wiimms-iso-tools.source-3.02a/setup.sh
+--- wiimms-iso-tools.source-3.02a.patched/setup.sh	2020-06-02 23:48:18.651495869 +0200
++++ wiimms-iso-tools.source-3.02a/setup.sh	2020-06-02 23:48:29.758162513 +0200
+@@ -57,7 +57,7 @@
+ 
+ #--------------------------------------------------
+ 
+-INSTALL_PATH=/usr/local
++ INSTALL_PATH="$out"
+ 
+ if [[ -d $INSTALL_PATH/bin ]]
+ then
diff --git a/pkgs/tools/graphics/asymptote/default.nix b/pkgs/tools/graphics/asymptote/default.nix
index 285dd9e7d4e..67afac2cdcc 100644
--- a/pkgs/tools/graphics/asymptote/default.nix
+++ b/pkgs/tools/graphics/asymptote/default.nix
@@ -9,14 +9,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.65";
+  version = "2.66";
   pname = "asymptote";
 
   src = fetchFromGitHub {
     owner = "vectorgraphics";
     repo = pname;
     rev = version;
-    sha256 = "1b40khffrvwm3nd5nx1iybhkc25zs6whrb3wynw7y3i87p3palyz";
+    sha256 = "0c445j950n6nxgr1zxj7a26daa5d9f3i91506b7r7627s943b1kd";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/graphics/dpic/default.nix b/pkgs/tools/graphics/dpic/default.nix
index 0bcac70e4b7..7b7eea3d509 100644
--- a/pkgs/tools/graphics/dpic/default.nix
+++ b/pkgs/tools/graphics/dpic/default.nix
@@ -9,21 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "1gbkpbjwjaaifxff8amm9b47dynq4l4698snjdgnn4flndw62q88";
   };
 
-  phases = [ "unpackPhase" "buildPhase" "installPhase" ];
+  # The prefix passed to configure is not used.
+  makeFlags = [ "DESTDIR=$(out)" ];
 
-  makeFlags = [ "CC=${stdenv.cc.outPath}/bin/cc" ];
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp -fv dpic $out/bin
-  '';
-
-  meta = {
-    homepage = "https://ece.uwaterloo.ca/~aplevich/dpic/";
+  meta = with stdenv.lib; {
     description = "An implementation of the pic little language for creating drawings";
-    license = stdenv.lib.licenses.bsd2;
-    maintainers = [ stdenv.lib.maintainers.aespinosa ];
-    platforms = stdenv.lib.platforms.all;
+    homepage = "https://ece.uwaterloo.ca/~aplevich/dpic/";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ aespinosa ];
+    platforms = platforms.all;
   };
 }
 
diff --git a/pkgs/tools/graphics/fim/default.nix b/pkgs/tools/graphics/fim/default.nix
index 6a3d9a29db3..dd2dcc1f5bf 100644
--- a/pkgs/tools/graphics/fim/default.nix
+++ b/pkgs/tools/graphics/fim/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, autoconf, automake, pkgconfig
 , perl, flex, bison, readline, libexif
 , x11Support ? true, SDL
-, svgSupport ? true, inkscape
+, svgSupport ? true, inkscape_0
 , asciiArtSupport ? true, aalib
 , gifSupport ? true, giflib
 , tiffSupport ? true, libtiff
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   buildInputs = with stdenv.lib;
     [ perl flex bison readline libexif ]
     ++ optional x11Support SDL
-    ++ optional svgSupport inkscape
+    ++ optional svgSupport inkscape_0
     ++ optional asciiArtSupport aalib
     ++ optional gifSupport giflib
     ++ optional tiffSupport libtiff
diff --git a/pkgs/tools/graphics/flam3/default.nix b/pkgs/tools/graphics/flam3/default.nix
index 0f1bf806551..29560cfe6e5 100644
--- a/pkgs/tools/graphics/flam3/default.nix
+++ b/pkgs/tools/graphics/flam3/default.nix
@@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "https://flam3.com/";
     maintainers = [ maintainers.nand0p ];
     platforms = platforms.linux;
-    license = licenses.cc-by-nc-sa-20;
+    license = licenses.gpl3Plus;
   };
 }
diff --git a/pkgs/tools/graphics/gifski/default.nix b/pkgs/tools/graphics/gifski/default.nix
index 8c808657f4c..4758dece42f 100644
--- a/pkgs/tools/graphics/gifski/default.nix
+++ b/pkgs/tools/graphics/gifski/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gifski";
-  version = "0.10.4";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "ImageOptim";
     repo = "gifski";
     rev = version;
-    sha256 = "1ly465y435cha22rmnq632hgq2s7y0akrcna6m30f6l078br8mhn";
+    sha256 = "0yziqgvjjb5bblmm060li7dv1i23gpn0f75jb72z8cdf2wg1qmxb";
   };
 
-  cargoSha256 = "0khfkh1ylqv4v5dsb4hsha5fh3b62hcvkp3swplv64h626p3q54s";
+  cargoSha256 = "1y4q6p6hbmpwdpahmspgngm842qrq1srl7319wslq9ydl09m1x3x";
 
   nativeBuildInputs = [ pkgconfig ];
 
diff --git a/pkgs/tools/graphics/gnuplot/default.nix b/pkgs/tools/graphics/gnuplot/default.nix
index fc1892317fa..ce2a87981e7 100644
--- a/pkgs/tools/graphics/gnuplot/default.nix
+++ b/pkgs/tools/graphics/gnuplot/default.nix
@@ -20,11 +20,11 @@ let
 in
 (if withQt then mkDerivation else stdenv.mkDerivation) rec {
   pname = "gnuplot";
-  version = "5.2.8";
+  version = "5.4.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/gnuplot/${pname}-${version}.tar.gz";
-    sha256 = "0dxc52d17mpyb2xm24da1nvhlacryv0irwa0q5l1cjj0rx67d9k0";
+    sha256 = "0iwwliq5a6qcawbpxk4d7l17fpkq9xxcz05kwblx37rr7bq84h7b";
   };
 
   nativeBuildInputs = [ makeWrapper pkgconfig texinfo ] ++ lib.optional withQt qttools;
diff --git a/pkgs/tools/graphics/grim/default.nix b/pkgs/tools/graphics/grim/default.nix
index ab0418bd0dc..a357277ed12 100644
--- a/pkgs/tools/graphics/grim/default.nix
+++ b/pkgs/tools/graphics/grim/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "grim";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "14gqilgd27c4j2wn7fla72yj8syx0542rsanh61syikrv0hxgkvy";
+    sha256 = "0fjmjq0ws9rlblkcqxxw2lv7zvvyi618jqzlnz5z9zb477jwdfib";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/graphics/gromit-mpx/default.nix b/pkgs/tools/graphics/gromit-mpx/default.nix
index ebb50cfad2e..c7f0beba8fb 100644
--- a/pkgs/tools/graphics/gromit-mpx/default.nix
+++ b/pkgs/tools/graphics/gromit-mpx/default.nix
@@ -1,20 +1,21 @@
 { stdenv, fetchFromGitHub, cmake, pkgconfig
 , gtk, glib, pcre, libappindicator, libpthreadstubs, libXdmcp
 , libxkbcommon, epoxy, at-spi2-core, dbus, libdbusmenu
+, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "gromit-mpx";
-  version = "1.3";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "bk138";
     repo = "gromit-mpx";
     rev = version;
-    sha256 = "1dkmp5rhzp56sz9cfxill2pkdz2anwb8kkxkypvk2xhqi64cvkrs";
+    sha256 = "1dvn7vwg4fg1a3lfj5f7nij1vcxm27gyf2wr817f3qb4sx5xmjwy";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
   buildInputs = [
     cmake
     gtk glib pcre libappindicator libpthreadstubs
diff --git a/pkgs/tools/graphics/lprof/keep-environment.patch b/pkgs/tools/graphics/lprof/keep-environment.patch
index 4dcb5b0448d..7d0beaed587 100644
--- a/pkgs/tools/graphics/lprof/keep-environment.patch
+++ b/pkgs/tools/graphics/lprof/keep-environment.patch
@@ -3,7 +3,7 @@
 @@ -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 environemnt 
+ # setup base environment 
 -env = Environment(
 -    ENV = {
 -      'PATH' : os.environ[ 'PATH' ],
diff --git a/pkgs/tools/graphics/netpbm/default.nix b/pkgs/tools/graphics/netpbm/default.nix
index bfb50c45f40..4507c4fed85 100644
--- a/pkgs/tools/graphics/netpbm/default.nix
+++ b/pkgs/tools/graphics/netpbm/default.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , fetchsvn
-, pkgconfig
+, pkg-config
 , libjpeg
 , libpng
 , flex
@@ -27,14 +27,8 @@ stdenv.mkDerivation {
     sha256 = "1m7ks6k53gsjsdazgf22g16dfgj3pqvqy9mhxzlwszv5808sj5w5";
   };
 
-  postPatch = ''
-    # Install libnetpbm.so symlink to correct destination
-    substituteInPlace lib/Makefile \
-      --replace '/sharedlink' '/lib'
-  '';
-
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
     flex
     makeWrapper
   ];
@@ -48,6 +42,14 @@ stdenv.mkDerivation {
     libtiff
   ] ++ lib.optional enableX11 libX11;
 
+  enableParallelBuilding = true;
+
+  postPatch = ''
+    # Install libnetpbm.so symlink to correct destination
+    substituteInPlace lib/Makefile \
+      --replace '/sharedlink' '/lib'
+  '';
+
   configurePhase = ''
     runHook preConfigure
 
@@ -72,8 +74,6 @@ stdenv.mkDerivation {
     runHook postConfigure
   '';
 
-  enableParallelBuilding = true;
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/tools/graphics/oxipng/default.nix b/pkgs/tools/graphics/oxipng/default.nix
index 4135eb966a3..965c799a217 100644
--- a/pkgs/tools/graphics/oxipng/default.nix
+++ b/pkgs/tools/graphics/oxipng/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchFromGitHub, rustPlatform }:
 
 rustPlatform.buildRustPackage rec {
-  version = "3.0.0";
+  version = "3.0.1";
   pname = "oxipng";
 
   src = fetchFromGitHub {
     owner = "shssoichiro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1k6q5xdfbw4vv4mvms32fhih7k1gpjj98nzrd171ig1vv3gpwwpg";
+    sha256 = "11lncwxksm7aqczy9ay1qnba2wmgfsirhgrl6vv1jlgj41b7mzi5";
   };
 
-  cargoSha256 = "19h3fwc5s2yblah5lnsm0f4m618p2bkdz2qz47kfi6jdvk89j8z7";
+  cargoSha256 = "0lalb981qzlnmqfg170mh6lnc0qlzb94wc39mf859g2jvxk3pkrl";
 
   # https://crates.io/crates/cloudflare-zlib#arm-vs-nightly-rust
   cargoBuildFlags = [ "--features=cloudflare-zlib/arm-always" ];
@@ -23,6 +23,5 @@ rustPlatform.buildRustPackage rec {
     description = "A multithreaded lossless PNG compression optimizer";
     license = licenses.mit;
     maintainers = with maintainers; [ dywedir ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/graphics/svgbob/default.nix b/pkgs/tools/graphics/svgbob/default.nix
index d11f715464d..374e090af6a 100644
--- a/pkgs/tools/graphics/svgbob/default.nix
+++ b/pkgs/tools/graphics/svgbob/default.nix
@@ -23,6 +23,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ivanceras/svgbob";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/graphics/svgcleaner/default.nix b/pkgs/tools/graphics/svgcleaner/default.nix
index 350fdefba5c..201b43f4f44 100644
--- a/pkgs/tools/graphics/svgcleaner/default.nix
+++ b/pkgs/tools/graphics/svgcleaner/default.nix
@@ -17,7 +17,6 @@ rustPlatform.buildRustPackage rec {
     description = "A tool for tidying and optimizing SVGs";
     homepage = "https://github.com/RazrFalcon/svgcleaner";
     license = licenses.gpl2;
-    platforms = platforms.all;
     maintainers = [ maintainers.mehandes ];
   };
 }
diff --git a/pkgs/tools/graphics/swfdec/default.nix b/pkgs/tools/graphics/swfdec/default.nix
deleted file mode 100644
index d721d06ad58..00000000000
--- a/pkgs/tools/graphics/swfdec/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{stdenv, fetchurl
-, cairo, pango, glib, liboil, zlib, gstreamer, gst-plugins-base
-, gst-plugins-good , gtk2, libsoup, alsaLib, pkgconfig
-}:
-
-stdenv.mkDerivation rec {
-  pname = "swfdec";
-  version = "0.8.4";
-
-  src = fetchurl {
-    url = "http://swfdec.freedesktop.org/download/swfdec/0.8/swfdec-${version}.tar.gz";
-    sha256 = "00nqrd0fzf0g76rn80d7h56n6hxv7x1x6k89zj45bj564lzwc3vs";
-  };
-
-  buildInputs = [
-    cairo glib liboil pango zlib gstreamer gst-plugins-base gst-plugins-good
-    gtk2 libsoup alsaLib pkgconfig
-  ];
-  
-  postInstall = ''
-    mkdir "$out/bin"
-    cp tools/.libs/swfdec-extract "$out/bin"
-    cp tools/.libs/dump "$out/bin/swfdec-dump"
-    cp player/.libs/swfplay "$out/bin/swfplay"
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = {
-    inherit version;
-    description = "Decoder/renderer for Macromedia Flash animations";
-    license = stdenv.lib.licenses.lgpl21 ;
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.linux;
-    homepage = "https://swfdec.freedesktop.org/wiki/";
-  };
-}
diff --git a/pkgs/tools/graphics/vips/default.nix b/pkgs/tools/graphics/vips/default.nix
index 1bfb2f88020..334cb00f3c1 100644
--- a/pkgs/tools/graphics/vips/default.nix
+++ b/pkgs/tools/graphics/vips/default.nix
@@ -26,7 +26,7 @@
 
 stdenv.mkDerivation rec {
   pname = "vips";
-  version = "8.9.2";
+  version = "8.10.0";
 
   outputs = [ "bin" "out" "man" "dev" ];
 
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     owner = "libvips";
     repo = "libvips";
     rev = "v${version}";
-    sha256 = "0pgvcp5yjk96izh7kjfprjd9kddx7zqrwwhm8dyalhrwbmj6c2q5";
+    sha256 = "1v5kfmv1vmzyvz1198jm1kl763s2i3mgnsn69vh6dslasbh769di";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     extraPostFetch = ''
diff --git a/pkgs/tools/graphics/viu/default.nix b/pkgs/tools/graphics/viu/default.nix
index ba35711a6ee..2b332bd3256 100644
--- a/pkgs/tools/graphics/viu/default.nix
+++ b/pkgs/tools/graphics/viu/default.nix
@@ -20,6 +20,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/atanunq/viu";
     license = licenses.mit;
     maintainers = with maintainers; [ petabyteboy ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/graphics/yafaray-core/default.nix b/pkgs/tools/graphics/yafaray-core/default.nix
index a02a97739ba..3ca9a7b5e8d 100644
--- a/pkgs/tools/graphics/yafaray-core/default.nix
+++ b/pkgs/tools/graphics/yafaray-core/default.nix
@@ -7,13 +7,13 @@
 stdenv.mkDerivation rec {
 
     pname = "yafaray-core";
-    version = "3.4.4";
+    version = "3.5.0";
 
     src = fetchFromGitHub {
       owner  = "YafaRay";
       repo   = "Core";
       rev    = "v${version}";
-      sha256 = "140vnaihz09rdvp0mqgrs26b3a2fv5wm49ar6817p4qklfx71l0g";
+      sha256 = "05r08ynm6p9jq9l3v1v3lqkrfx3bm6zlqcxm1yk7mdv1zv2yxikd";
     };
 
     preConfigure = ''
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
       homepage = "http://www.yafaray.org";
       maintainers = with maintainers; [ hodapp ];
       license = licenses.lgpl21;
-      platforms = platforms.linux;
+      platforms = [ "x86_64-linux" ];
     };
   }
 
diff --git a/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix b/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix
index f04acb72b47..69ff9c1fe53 100644
--- a/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix
+++ b/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix
@@ -1,5 +1,5 @@
 { clangStdenv, fetchFromGitHub, fetchurl, fetchpatch, gyp, which, ninja,
-  python, pkgconfig, protobuf, gtk2, zinnia, qt5, libxcb,
+  python, pkgconfig, protobuf, gtk2, zinnia, qt5, libxcb, tegaki-zinnia-japanese,
   fcitx, gettext }:
 let
   japanese_usage_dictionary = fetchFromGitHub {
@@ -14,16 +14,16 @@ let
   };
 in clangStdenv.mkDerivation rec {
   name    = "fcitx-mozc-${version}";
-  version = "2.20.2673.102";
+  version = "2.23.2815.102";
 
   src = fetchFromGitHub {
     owner  = "google";
     repo   = "mozc";
-    rev    = "280e38fe3d9db4df52f0713acf2ca65898cd697a";
-    sha256 = "0s599f817gjgqynm4n1yll1ipd25ai2c55y8k6wvhg9s7qaxnyhs";
+    rev    = "afb03ddfe72dde4cf2409863a3bfea160f7a66d8";
+    sha256 = "0w2dy2j9x5nc7x3g95j17r3m60vbfyn5j617h7js9xryv33yzpgx";
   };
 
-  nativeBuildInputs = [ gyp which ninja python pkgconfig ];
+  nativeBuildInputs = [ gyp which ninja python pkgconfig qt5.wrapQtAppsHook ];
   buildInputs = [ protobuf gtk2 zinnia qt5.qtbase libxcb fcitx gettext ];
 
   postUnpack = ''
@@ -32,18 +32,23 @@ in clangStdenv.mkDerivation rec {
     tar -xzf ${icons} -C $sourceRoot/src
   '';
 
-  patch_version = "2.18.2612.102.1";
+  patch_version = "${version}.1";
   patches = [
     (fetchpatch rec {
       name   = "fcitx-mozc-${patch_version}.patch";
       url    = "https://download.fcitx-im.org/fcitx-mozc/${name}";
-      sha256 = "1f9m4310kz09v5qvnv75ka2vq63m7by023qrkpddgq4dv7gxx3ca";
+      sha256 = "0a8q3vzcbai1ccdrl6qdb81gvbw8aby4lqkl6qs9hg68p6zg42hg";
      })
     # https://github.com/google/mozc/pull/444 - fix for gcc8 STL
     (fetchpatch {
       url = "https://github.com/google/mozc/commit/82d38f929882a9c62289b179c6fe41efed249987.patch";
       sha256 = "07cja1b7qfsd3i76nscf1zwiav74h7d6h2g9g2w4bs3h1mc9jwla";
     })
+    # Support dates after 2019
+    (fetchpatch {
+      url = "https://salsa.debian.org/debian/mozc/-/raw/master/debian/patches/add_support_new_japanese_era.patch";
+      sha256 = "1dsiiglrmm8i8shn2hv0j2b8pv6miysjrimj4569h606j4lwmcw2";
+    })
   ];
 
   postPatch = ''
@@ -52,7 +57,7 @@ in clangStdenv.mkDerivation rec {
   '';
 
   configurePhase = ''
-    export GYP_DEFINES="document_dir=$out/share/doc/mozc use_libzinnia=1 use_libprotobuf=1"
+    export GYP_DEFINES="document_dir=$out/share/doc/mozc use_libzinnia=1 use_libprotobuf=1 use_fcitx5=0 zinnia_model_file=${tegaki-zinnia-japanese}/share/tegaki/models/zinnia/handwriting-ja.model"
     cd src && python build_mozc.py gyp --gypdir=${gyp}/bin --server_dir=$out/lib/mozc
   '';
 
@@ -74,6 +79,8 @@ in clangStdenv.mkDerivation rec {
     install -D -m 755 out_linux/Release/mozc_server     $out/lib/mozc/mozc_server
     install    -m 755 out_linux/Release/mozc_tool       $out/lib/mozc/mozc_tool
 
+    wrapQtApp $out/lib/mozc/mozc_tool
+
     install -D -m 755 out_linux/Release/fcitx-mozc.so   $out/lib/fcitx/fcitx-mozc.so
     install -D -m 644 unix/fcitx/fcitx-mozc.conf        $out/share/fcitx/addon/fcitx-mozc.conf
     install -D -m 644 unix/fcitx/mozc.conf              $out/share/fcitx/inputmethod/mozc.conf
@@ -100,7 +107,7 @@ in clangStdenv.mkDerivation rec {
     downloadPage  = "http://download.fcitx-im.org/fcitx-mozc/";
     license       = licenses.free;
     platforms     = platforms.linux;
-    maintainers   = [ maintainers.ericsagnes ];
+    maintainers   = with maintainers; [ gebner ericsagnes ];
   };
 
 }
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix
index 48d082564b7..35e02d52b48 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-m17n";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "ibus";
     repo = "ibus-m17n";
     rev = version;
-    sha256 = "16davz397svhjb234kx7mnq2m3wdxi2fh1ryniphbczjpbwn23g6";
+    sha256 = "0lb2vcnkzy64474j7306ydyw1ali0qbx07sxfms2fqv1nmh161i2";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
index 9b73345d5e8..41a04d01835 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
@@ -1,5 +1,5 @@
 { clangStdenv, fetchFromGitHub, fetchpatch, which, ninja, python, gyp, pkgconfig
-, protobuf, ibus, gtk2, zinnia, qt5, libxcb }:
+, protobuf, ibus, gtk2, zinnia, qt5, libxcb, tegaki-zinnia-japanese }:
 
 let
   japanese_usage_dictionary = fetchFromGitHub {
@@ -21,7 +21,7 @@ in clangStdenv.mkDerivation rec {
     maintainers  = with maintainers; [ gebner ericsagnes ];
   };
 
-  nativeBuildInputs = [ which ninja python gyp pkgconfig ];
+  nativeBuildInputs = [ which ninja python gyp pkgconfig qt5.wrapQtAppsHook ];
   buildInputs = [ protobuf ibus gtk2 zinnia qt5.qtbase libxcb ];
 
   src = fetchFromGitHub {
@@ -37,6 +37,11 @@ in clangStdenv.mkDerivation rec {
       url = "https://github.com/google/mozc/commit/82d38f929882a9c62289b179c6fe41efed249987.patch";
       sha256 = "07cja1b7qfsd3i76nscf1zwiav74h7d6h2g9g2w4bs3h1mc9jwla";
     })
+    # Support dates after 2019
+    (fetchpatch {
+      url = "https://salsa.debian.org/debian/mozc/-/raw/master/debian/patches/add_support_new_japanese_era.patch";
+      sha256 = "1dsiiglrmm8i8shn2hv0j2b8pv6miysjrimj4569h606j4lwmcw2";
+    })
   ];
 
   postUnpack = ''
@@ -45,7 +50,7 @@ in clangStdenv.mkDerivation rec {
   '';
 
   configurePhase = ''
-    export GYP_DEFINES="document_dir=$out/share/doc/mozc use_libzinnia=1 use_libprotobuf=1 ibus_mozc_path=$out/lib/ibus-mozc/ibus-engine-mozc"
+    export GYP_DEFINES="document_dir=$out/share/doc/mozc use_libzinnia=1 use_libprotobuf=1 ibus_mozc_path=$out/lib/ibus-mozc/ibus-engine-mozc zinnia_model_file=${tegaki-zinnia-japanese}/share/tegaki/models/zinnia/handwriting-ja.model"
     cd src && python build_mozc.py gyp --gypdir=${gyp}/bin --server_dir=$out/lib/mozc
   '';
 
@@ -65,6 +70,7 @@ in clangStdenv.mkDerivation rec {
 
     install -D -m 755 out_linux/Release/mozc_server $out/lib/mozc/mozc_server
     install    -m 755 out_linux/Release/mozc_tool   $out/lib/mozc/mozc_tool
+    wrapQtApp $out/lib/mozc/mozc_tool
 
     install -d        $out/share/doc/mozc
     install -m 644    data/installer/*.html         $out/share/doc/mozc/
diff --git a/pkgs/tools/inputmethods/ibus/default.nix b/pkgs/tools/inputmethods/ibus/default.nix
index 644fd5eef3b..238e133495c 100644
--- a/pkgs/tools/inputmethods/ibus/default.nix
+++ b/pkgs/tools/inputmethods/ibus/default.nix
@@ -16,6 +16,7 @@
 , gtk2
 , gtk3
 , gtk-doc
+, runCommand
 , isocodes
 , cldr-emoji-annotation
 , unicode-character-database
@@ -47,6 +48,14 @@ let
       makeWrapper ${glib.dev}/bin/glib-mkenums $out/bin/glib-mkenums --unset PYTHONPATH
     '';
   };
+  # make-dconf-override-db.sh needs to execute dbus-launch in the sandbox,
+  # it will fail to read /etc/dbus-1/session.conf unless we add this flag
+  dbus-launch = runCommand "sandbox-dbus-launch" {
+    nativeBuildInputs = [ makeWrapper ];
+  } ''
+      makeWrapper ${dbus}/bin/dbus-launch $out/bin/dbus-launch \
+        --add-flags --config-file=${dbus.daemon}/share/dbus-1/session.conf
+  '';
 in
 
 stdenv.mkDerivation rec {
@@ -71,7 +80,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "installedTests" ];
 
   postPatch = ''
-    echo \#!${runtimeShell} > data/dconf/make-dconf-override-db.sh
+    patchShebangs --build data/dconf/make-dconf-override-db.sh
     cp ${buildPackages.gtk-doc}/share/gtk-doc/data/gtk-doc.make .
   '';
 
@@ -105,6 +114,7 @@ stdenv.mkDerivation rec {
     python3BuildEnv
     vala
     wrapGAppsHook
+    dbus-launch
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/tools/inputmethods/interception-tools/caps2esc.nix b/pkgs/tools/inputmethods/interception-tools/caps2esc.nix
index 994e9da3e43..7e6206eb1f3 100644
--- a/pkgs/tools/inputmethods/interception-tools/caps2esc.nix
+++ b/pkgs/tools/inputmethods/interception-tools/caps2esc.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, cmake }:
+{ stdenv, fetchFromGitLab, cmake }:
 
-let
-  version = "0.1.0";
-  pname = "interception-tools-caps2esc";
-in stdenv.mkDerivation {
-  name = "${pname}-${version}";
+stdenv.mkDerivation rec {
+  pname = "caps2esc";
+  version = "0.1.3";
 
-  src = fetchurl {
-    url = "https://gitlab.com/interception/linux/plugins/caps2esc/repository/v${version}/archive.tar.gz";
-    sha256 = "1fdxqp54gwsrm2c63168l256nfwdk4mvgr7nlwdv62wd3l7zzrg8";
+  src = fetchFromGitLab {
+    owner = "interception/linux/plugins";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "10xv56vh5h3lxyii3ni166ddv1sz2pylrjmdwxhb4gd2p5zgl1ji";
   };
 
-  buildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   meta = with stdenv.lib; {
     homepage = "https://gitlab.com/interception/linux/plugins/caps2esc";
diff --git a/pkgs/tools/misc/3mux/default.nix b/pkgs/tools/misc/3mux/default.nix
index 81ca4d94628..45c0209e917 100644
--- a/pkgs/tools/misc/3mux/default.nix
+++ b/pkgs/tools/misc/3mux/default.nix
@@ -2,23 +2,21 @@
 
 buildGoModule rec {
   pname = "3mux";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "aaronjanse";
     repo = pname;
     rev = "v${version}";
-    sha256 = "02ry066psvlqdyhimci7nskw4sfb70dw5z7ag7s7rz36gmx1vnmr";
+    sha256 = "164jylifkdfsi3r6vmlp5afgly73fqfbad7lbr58wmy21l9x5rcj";
   };
 
-  vendorSha256 = "1hjzpg3q4znvgzk0wbl8rq6cq877xxdsf950bcsks92cs8386847";
+  vendorSha256 = "0dc1c0z3xkfpwmwb3hafsv7qa6lc7bzz78by5w20rxrrk4r87gic";
 
   meta = with stdenv.lib; {
     description = "Terminal multiplexer inspired by i3";
     homepage = "https://github.com/aaronjanse/3mux";
     license = licenses.mit;
     maintainers = with maintainers; [ aaronjanse filalex77 ];
-    # TODO: fix modules build on darwin
-    broken = stdenv.isDarwin;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/misc/antimicro/default.nix b/pkgs/tools/misc/antimicro/default.nix
deleted file mode 100644
index ad86bdef80a..00000000000
--- a/pkgs/tools/misc/antimicro/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ mkDerivation, lib, cmake, pkgconfig, SDL2, qtbase, qttools, xorg, fetchFromGitHub }:
-
-mkDerivation rec {
-  pname = "antimicro";
-  version = "2.23";
-
-  src = fetchFromGitHub {
-    owner = "AntiMicro";
-    repo = "antimicro";
-    rev = version;
-    sha256 = "1q40ayxwwyq85lc89cnj1cm2nar625h4vhh8dvmb2qcxczaggf4v";
-  };
-
-  nativeBuildInputs = [ cmake pkgconfig ];
-  buildInputs = [
-    SDL2 qtbase qttools xorg.libXtst
-  ];
-
-  meta = with lib; {
-    description = "GUI for mapping keyboard and mouse controls to a gamepad";
-    inherit (src.meta) homepage;
-    maintainers = with maintainers; [ jb55 ];
-    license = licenses.gpl3;
-    platforms = with platforms; linux;
-    broken = true; # 2018-04-10
-  };
-}
diff --git a/pkgs/tools/misc/antimicroX/default.nix b/pkgs/tools/misc/antimicroX/default.nix
new file mode 100644
index 00000000000..cb5496d450c
--- /dev/null
+++ b/pkgs/tools/misc/antimicroX/default.nix
@@ -0,0 +1,44 @@
+{ mkDerivation
+, lib
+, cmake
+, extra-cmake-modules
+, pkgconfig
+, SDL2
+, qtbase
+, qttools
+, qtx11extras
+, xorg
+, fetchFromGitHub
+, itstool
+}:
+
+mkDerivation rec {
+  pname = "antimicroX";
+  version = "3.0.1";
+
+  src = fetchFromGitHub {
+    owner = "juliagoda";
+    repo = "antimicroX";
+    rev = version;
+    sha256 = "05asxlkgb4cgvpcyksw1cx8cz8nzi8hmw8b91lw92892j7a2r7wj";
+  };
+
+  nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig itstool ];
+  buildInputs = [
+    SDL2
+    qtbase
+    qttools
+    qtx11extras
+    xorg.libX11
+    xorg.libXtst
+    xorg.libXi
+  ];
+
+  meta = with lib; {
+    description = "GUI for mapping keyboard and mouse controls to a gamepad";
+    inherit (src.meta) homepage;
+    maintainers = with maintainers; [ jb55 ];
+    license = licenses.gpl3Plus;
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/tools/misc/bashcards/default.nix b/pkgs/tools/misc/bashcards/default.nix
index ecaabb43c14..3e91b9741c6 100644
--- a/pkgs/tools/misc/bashcards/default.nix
+++ b/pkgs/tools/misc/bashcards/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bashcards";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "rpearce";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zbijbcm9lrqwiax37li0jjqcaxf469wh5d423frain56z1qknxl";
+    sha256 = "1rpqrh0022sbrjvd55a0jvpdqhhka5msf8dsz6adbbmxy3xzgdid";
   };
 
   dontBuild = true;
diff --git a/pkgs/tools/misc/bat/default.nix b/pkgs/tools/misc/bat/default.nix
index 9902142df35..b4e5501fb73 100644
--- a/pkgs/tools/misc/bat/default.nix
+++ b/pkgs/tools/misc/bat/default.nix
@@ -36,6 +36,5 @@ rustPlatform.buildRustPackage rec {
     homepage    = "https://github.com/sharkdp/bat";
     license     = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ dywedir lilyball zowoq ];
-    platforms   = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/bdf2psf/default.nix b/pkgs/tools/misc/bdf2psf/default.nix
index a29098268f9..966e71bb6d3 100644
--- a/pkgs/tools/misc/bdf2psf/default.nix
+++ b/pkgs/tools/misc/bdf2psf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bdf2psf";
-  version = "1.195";
+  version = "1.196";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/c/console-setup/bdf2psf_${version}_all.deb";
-    sha256 = "04dsxp6vcy9z9gh41bq970wvdnhkmbdlizsy0dyhsl5axm5i84xz";
+    sha256 = "042ly91525q2qj7985qih4njhjk5ndz8jiz01v860jc38bvw595p";
   };
 
   nativeBuildInputs = [ dpkg ];
diff --git a/pkgs/tools/misc/bdf2sfd/default.nix b/pkgs/tools/misc/bdf2sfd/default.nix
index ca67525bb8c..e7a9d98aaf2 100644
--- a/pkgs/tools/misc/bdf2sfd/default.nix
+++ b/pkgs/tools/misc/bdf2sfd/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bdf2sfd";
-  version = "1.1.2";
+  version = "1.1.3";
 
   src = fetchFromGitHub {
     owner = "fcambus";
     repo = pname;
     rev = version;
-    sha256 = "1fhdl739a4v8296wpn2390fhlb6vlg9m1zik7mql4l9008ncd5mv";
+    sha256 = "0v1kkds35qfyv1h5kxc2m7f2gsprg9c7jzpsm3p4f71qn982wry6";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
     description = "BDF to SFD converter";
     homepage = "https://github.com/fcambus/bdf2sfd";
     license = licenses.bsd2;
+    platforms = platforms.all;
     maintainers = with maintainers; [ dtzWill ];
   };
 }
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index 354c4b4ddf4..62ca179cfde 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -1,21 +1,37 @@
-{ stdenv, rustPlatform, fetchFromGitHub, coreutils, libiconv, Security, installShellFiles }:
+{ stdenv
+, rustPlatform
+, fetchCrate
+, installShellFiles
+, makeWrapper
+, coreutils
+, libiconv
+, xcbuild
+, zlib
+, Security
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "0.18.1";
+  version = "1.0.0";
 
-  src = fetchFromGitHub {
-    owner = "Canop";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0lmcjc08902h4mi6qx3x2v1xa4w980xvmbrbfm59lis856whaqww";
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "1dc6lb6ihj4s0mcp1say16j9yr61jdbzhmayxxsm4ansngbzmw45";
   };
 
-  cargoSha256 = "1bgrm6a7p7xl95ljk87g4bxv1insl14yxc895yszr0my3ksmpzqh";
+  cargoSha256 = "0nqmincayjv1snxz94i14fypc9dv69fxfqqdz3qbcvc2cs62zayg";
 
-  nativeBuildInputs = [ installShellFiles ];
+  nativeBuildInputs = [
+    makeWrapper
+    installShellFiles
+    xcbuild # The cc crate attempts to run xcbuild.
+  ];
 
-  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [
+    libiconv
+    Security
+    zlib
+  ];
 
   postPatch = ''
     substituteInPlace src/verb/builtin.rs --replace '"/bin/' '"${coreutils}/bin/'
@@ -27,6 +43,23 @@ rustPlatform.buildRustPackage rec {
   '';
 
   postInstall = ''
+    # Do not nag users about installing shell integration, since
+    # it is impure.
+    wrapProgram $out/bin/broot \
+      --set BR_INSTALL no
+
+    # Install shell function for bash.
+    $out/bin/broot --print-shell-function bash > br.bash
+    install -Dm0444 -t $out/etc/profile.d br.bash
+
+    # Install shell function for zsh.
+    $out/bin/broot --print-shell-function zsh > br.zsh
+    install -Dm0444 br.zsh $out/share/zsh/site-functions/br
+
+    # Install shell function for fish
+    $out/bin/broot --print-shell-function fish > br.fish
+    install -Dm0444 -t $out/share/fish/vendor_functions.d br.fish
+
     # install shell completion files
     OUT_DIR=$releaseDir/build/broot-*/out
 
@@ -40,8 +73,7 @@ rustPlatform.buildRustPackage rec {
   meta = with stdenv.lib; {
     description = "An interactive tree view, a fuzzy search, a balanced BFS descent and customizable commands";
     homepage = "https://dystroy.org/broot/";
-    maintainers = with maintainers; [ magnetophon ];
+    maintainers = with maintainers; [ danieldk ];
     license = with licenses; [ mit ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/chezmoi/default.nix b/pkgs/tools/misc/chezmoi/default.nix
index 6ff736167be..d7b7646afec 100644
--- a/pkgs/tools/misc/chezmoi/default.nix
+++ b/pkgs/tools/misc/chezmoi/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "chezmoi";
-  version = "1.8.3";
+  version = "1.8.5";
 
   src = fetchFromGitHub {
     owner = "twpayne";
     repo = "chezmoi";
     rev = "v${version}";
-    sha256 = "01px0nj2llas835g1hf8lvhigip4jm4innjacz18c7nf1ddwn7ss";
+    sha256 = "16sv1kbd66rllnnl851y3x54wkl0p7g0qsblprvfr9715svk1835";
   };
 
-  vendorSha256 = "1gzg73lrx73rhb9yj6yakv95m8rz1rhjgqjl1a78c8nvaii27a9x";
+  vendorSha256 = "1i9d672mzmb97s26n0v01m70g4viyl9pdk25haxr6ny4rab2wbi7";
+
+  doCheck = false;
 
   buildFlagsArray = [
     "-ldflags=-s -w -X main.version=${version} -X main.builtBy=nixpkgs"
@@ -32,6 +34,5 @@ buildGoModule rec {
     description = "Manage your dotfiles across multiple machines, securely";
     license = licenses.mit;
     maintainers = with maintainers; [ jhillyerd ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/misc/clipman/default.nix b/pkgs/tools/misc/clipman/default.nix
index 5146e25da50..80a0afe68d3 100644
--- a/pkgs/tools/misc/clipman/default.nix
+++ b/pkgs/tools/misc/clipman/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "18jw4z0lcrh00yjr3qdkgvlrpfwqbsm0ncz7fp1h72pzkh41byv7";
 
+  doCheck = false;
+
   nativeBuildInputs = [ makeWrapper ];
 
   postInstall = ''
@@ -27,4 +29,4 @@ buildGoModule rec {
     description = "A simple clipboard manager for Wayland";
     platforms = platforms.linux;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/misc/cloud-sql-proxy/default.nix b/pkgs/tools/misc/cloud-sql-proxy/default.nix
index bc23958b581..16263e2b6c3 100644
--- a/pkgs/tools/misc/cloud-sql-proxy/default.nix
+++ b/pkgs/tools/misc/cloud-sql-proxy/default.nix
@@ -23,6 +23,5 @@ buildGoPackage rec {
     homepage = "https://${goPackagePath}";
     license = licenses.asl20;
     maintainers = [ maintainers.nicknovitski ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/clpeak/default.nix b/pkgs/tools/misc/clpeak/default.nix
new file mode 100644
index 00000000000..46284f9a4da
--- /dev/null
+++ b/pkgs/tools/misc/clpeak/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, cmake, ocl-icd, opencl-clhpp }:
+
+stdenv.mkDerivation rec {
+  pname = "clpeak";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "krrishnarraj";
+    repo = "clpeak";
+    rev = version;
+    fetchSubmodules = true;
+    sha256 = "1wkjpvn4r89c3y06rv7gfpwpqw6ljmqwz0w0mljl9y5hn1r4pkx2";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ ocl-icd opencl-clhpp ];
+
+  meta = with stdenv.lib; {
+    description = "A tool which profiles OpenCL devices to find their peak capacities";
+    homepage = "https://github.com/krrishnarraj/clpeak/";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/pkgs/tools/misc/codebraid/default.nix b/pkgs/tools/misc/codebraid/default.nix
index bc4a7084cdd..eea5260a989 100644
--- a/pkgs/tools/misc/codebraid/default.nix
+++ b/pkgs/tools/misc/codebraid/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "codebraid";
-  version = "0.5.0-unstable-2019-12-11";
+  version = "0.5.0-unstable-2020-07-01";
 
   src = fetchFromGitHub {
     owner = "gpoore";
     repo = pname;
-    rev = "fac1b29";
-    sha256 = "0ldfrkkip7i1fdyz1iydyik3mhm0xv0jvxnl37r7g707dl38vf3h";
+    rev = "c7962587e7f1e619b5dcf9a5e901eb7042520b00";
+    sha256 = "1f31yaiwc33ivjbipym7sggsqwqxn70kgf9dixi8392pk70jzq6p";
   };
 
   propagatedBuildInputs = with python3Packages; [ bespon ];
diff --git a/pkgs/tools/misc/colorpicker/default.nix b/pkgs/tools/misc/colorpicker/default.nix
new file mode 100644
index 00000000000..3de5d33617c
--- /dev/null
+++ b/pkgs/tools/misc/colorpicker/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, pkg-config, gtk2 }:
+
+stdenv.mkDerivation rec {
+  pname = "colorpicker";
+  version = "git-2018-01-14";
+
+  src = fetchFromGitHub {
+    owner = "Ancurio";
+    repo  = "colorpicker";
+    rev   = "287676947e6e3b5b0cee784aeb1638cf22f0ce17";
+    sha256 = "1kj1dpb79llrfpszraaz6r7ci114zqi5rmqxwsvq2dnnpjxyi29r";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ gtk2 ];
+
+  installPhase = ''
+    install -Dt $out/bin colorpicker
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Click on a pixel on your screen and print its color value in RGB";
+    homepage = "https://github.com/Ancurio/colorpicker";
+    maintainers = with maintainers; [ jb55 ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/tools/misc/coreboot-utils/default.nix b/pkgs/tools/misc/coreboot-utils/default.nix
index e769cb25a73..39e2e041e32 100644
--- a/pkgs/tools/misc/coreboot-utils/default.nix
+++ b/pkgs/tools/misc/coreboot-utils/default.nix
@@ -1,9 +1,9 @@
 { stdenv, fetchurl, zlib, pciutils, coreutils, acpica-tools, iasl, makeWrapper, gnugrep, gnused, file, buildEnv }:
 
 let
-  version = "4.11";
+  version = "4.12";
 
-  meta = with stdenv.lib; {
+  commonMeta = with stdenv.lib; {
     description = "Various coreboot-related tools";
     homepage = "https://www.coreboot.org";
     license = licenses.gpl2;
@@ -12,11 +12,11 @@ let
   };
 
   generic = { pname, path ? "util/${pname}", ... }@args: stdenv.mkDerivation (rec {
-    inherit pname version meta;
+    inherit pname version;
 
     src = fetchurl {
       url = "https://coreboot.org/releases/coreboot-${version}.tar.xz";
-      sha256 = "11xdm2c1blaqb32j98085sak78jldsw0xhrkzqs5b8ir9jdqbzcp";
+      sha256 = "1qibds9lsk22wf1sxwg0jg32fgcvc9an39vf74y1hwwvxq0d1jpd";
     };
 
     enableParallelBuilding = true;
@@ -29,7 +29,9 @@ let
       "INSTALL=install"
       "PREFIX=${placeholder "out"}"
     ];
-  } // args);
+
+    meta = commonMeta // args.meta;
+  } // (removeAttrs args ["meta"]));
 
   utils = {
     msrtool = generic {
@@ -99,6 +101,7 @@ in utils // {
     paths = stdenv.lib.attrValues utils;
     postBuild = "rm -rf $out/sbin";
   }) // {
-    inherit meta version;
+    inherit version;
+    meta = commonMeta;
   };
 }
diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix
index 49edc002bec..50d3a2437d7 100644
--- a/pkgs/tools/misc/coreutils/default.nix
+++ b/pkgs/tools/misc/coreutils/default.nix
@@ -10,6 +10,11 @@
 , singleBinary ? "symlinks" # you can also pass "shebangs" or false
 }:
 
+# 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
+# files.
+
 assert aclSupport -> acl != null;
 assert selinuxSupport -> libselinux != null && libsepol != null;
 
diff --git a/pkgs/tools/misc/cpuminer-multi/default.nix b/pkgs/tools/misc/cpuminer-multi/default.nix
index 65482fabb11..dba42e4bfea 100644
--- a/pkgs/tools/misc/cpuminer-multi/default.nix
+++ b/pkgs/tools/misc/cpuminer-multi/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit, curl, jansson, autoconf, automake
-, aesni ? true }:
+, aesni ? stdenv.hostPlatform.aesSupport }:
 
 let
   rev = "8393e03089c0abde61bd5d72aba8f926c3d6eca4";
@@ -28,6 +28,6 @@ stdenv.mkDerivation {
     license = licenses.gpl2;
     maintainers = [ maintainers.ehmry ];
     # does not build on i686 https://github.com/lucasjones/cpuminer-multi/issues/27
-    platforms = [ "x86_64-linux" ]; 
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/tools/misc/dashing/default.nix b/pkgs/tools/misc/dashing/default.nix
index 2f4c117c615..11523ae3758 100644
--- a/pkgs/tools/misc/dashing/default.nix
+++ b/pkgs/tools/misc/dashing/default.nix
@@ -22,6 +22,5 @@ buildGoPackage rec {
     homepage    = "https://github.com/technosophos/dashing";
     license     = licenses.mit;
     maintainers = [ ];
-    platforms   = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/debianutils/default.nix b/pkgs/tools/misc/debianutils/default.nix
index 930f1f59a8a..141df333222 100644
--- a/pkgs/tools/misc/debianutils/default.nix
+++ b/pkgs/tools/misc/debianutils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "debianutils";
-  version = "4.11";
+  version = "4.11.1";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/d/${pname}/${pname}_${version}.tar.xz";
-    sha256 = "0lbizfnf3qwsiz2ggia6ff7sjjj8gwhys8bm6wixdc4n0qlycp5v";
+    sha256 = "0g4qmzb2ff0rqszzpsal465hcslnpdl4nhghv59qvhamkkqnks4b";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index cf5275fcfe4..324b31a186b 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -16,11 +16,11 @@ let
 in
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "148";
+  version = "156";
 
   src = fetchurl {
     url    = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    sha256 = "1fx3wq5bv12pjcpkd7lvis0vg50apzwvxa5jvcs2dv1r8385wchz";
+    sha256 = "1irmsa0g0hggxijqyy7mghc8zy82cr6zn8qil253pm426j7gf7vm";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/tools/misc/dijo/default.nix b/pkgs/tools/misc/dijo/default.nix
new file mode 100644
index 00000000000..da504ad3ba3
--- /dev/null
+++ b/pkgs/tools/misc/dijo/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, lib, rustPlatform, fetchFromGitHub, ncurses, CoreServices }:
+let version = "0.2.3"; in
+rustPlatform.buildRustPackage {
+  pname = "dijo";
+  inherit version;
+  buildInputs = [ ncurses ] ++ lib.optional stdenv.isDarwin CoreServices;
+  src = fetchFromGitHub {
+    owner = "NerdyPepper";
+    repo = "dijo";
+    rev = "v${version}";
+    sha256 = "1lcvj0pri5v64zygkf2p24vr72y39agrq1r3kb8dfgz8yy3vcz0a";
+  };
+  cargoSha256 = "0pm048xf8hkva8q8fjmhrdnk7h2im28ix7xy784xwkkdnilm4j7f";
+
+  meta = with lib; {
+    description = "Scriptable, curses-based, digital habit tracker.";
+    homepage = "https://github.com/NerdyPepper/dijo";
+    license = licenses.mit;
+    maintainers = with maintainers; [ infinisil ];
+  };
+}
diff --git a/pkgs/tools/misc/direnv/default.nix b/pkgs/tools/misc/direnv/default.nix
index 47668986a46..3fb2a5d76a0 100644
--- a/pkgs/tools/misc/direnv/default.nix
+++ b/pkgs/tools/misc/direnv/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchFromGitHub, buildGoModule, bash }:
+{ stdenv, fetchFromGitHub, buildGoModule, bash, fish, zsh }:
 
 buildGoModule rec {
   pname = "direnv";
-  version = "2.21.3";
+  version = "2.22.0";
 
   vendorSha256 = null;
 
@@ -10,7 +10,7 @@ buildGoModule rec {
     owner = "direnv";
     repo = "direnv";
     rev = "v${version}";
-    sha256 = "1adi6ld9g4zgz0f6q0kkzrywclqrmikyp7yh22zm9lfdvd5hs8wp";
+    sha256 = "06z85r99w0nr093fawva6sysdlrdsfjjf7asx96k1sjv56sb306m";
   };
 
   # we have no bash at the moment for windows
@@ -29,6 +29,13 @@ buildGoModule rec {
     echo "eval ($out/bin/direnv hook fish)" > $out/share/fish/vendor_conf.d/direnv.fish
   '';
 
+  checkInputs = [ fish zsh ];
+
+  checkPhase = ''
+    export HOME=$(mktemp -d)
+    make test-go test-bash test-fish test-zsh
+  '';
+
   meta = with stdenv.lib; {
     description = "A shell extension that manages your environment";
     longDescription = ''
diff --git a/pkgs/tools/misc/diskonaut/default.nix b/pkgs/tools/misc/diskonaut/default.nix
index b0a413da8c0..1eb3dd7a0f7 100644
--- a/pkgs/tools/misc/diskonaut/default.nix
+++ b/pkgs/tools/misc/diskonaut/default.nix
@@ -2,27 +2,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "diskonaut";
-  version = "0.3.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "imsnif";
     repo = "diskonaut";
     rev = version;
-    sha256 = "0vnmch2cac0j9b44vlcpqnayqhfdfdwvfa01bn7lwcyrcln5cd0z";
+    sha256 = "125ba9qwh7j8bz74w2zbw729s1wfnjg6dg8yicqrp6559x9k7gq5";
   };
 
-  cargoSha256 = "03hqdg6pnfxnhwk0xwhwmbrk4dicjpjllbbai56a3391xac5wmi6";
-
-  # some tests fail due to non-portable (in terms of filesystems) measurements of block sizes
-  # try to re-enable tests once actual-file-size is added
-  # see https://github.com/imsnif/diskonaut/issues/50 for more info
-  doCheck = false;
+  cargoSha256 = "0vvbrlmviyn9w8i416767vhvd1gqm3qjvia730m0rs0w5h8khiqf";
 
   meta = with stdenv.lib; {
     description = "Terminal disk space navigator";
     homepage = "https://github.com/imsnif/diskonaut";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ evanjs ];
   };
 }
diff --git a/pkgs/tools/misc/docui/default.nix b/pkgs/tools/misc/docui/default.nix
index f3f89d0a667..73aa8984a49 100644
--- a/pkgs/tools/misc/docui/default.nix
+++ b/pkgs/tools/misc/docui/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1ggdczvv03lj0g6cq26vrk1rba6pk0805n85w9hkbjx9c4r3j577";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "TUI Client for Docker";
     homepage = "https://github.com/skanehira/docui";
@@ -20,4 +22,4 @@ buildGoModule rec {
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ aethelz ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/misc/dua/default.nix b/pkgs/tools/misc/dua/default.nix
index 91ab681b2a0..b4cdde95b80 100644
--- a/pkgs/tools/misc/dua/default.nix
+++ b/pkgs/tools/misc/dua/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dua";
-  version = "2.8.1";
+  version = "2.10.2";
 
   src = fetchFromGitHub {
     owner = "Byron";
     repo = "dua-cli";
     rev = "v${version}";
-    sha256 = "0z0aqasi42wv1np2a6b0qc14a64r2h8xh025411jdxfs6vjr15am";
+    sha256 = "0qsk4pa7xywd6fdwd5v4qwj334hyp3xjlayjzgyhks7a87hdwjgs";
     # 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 = "1g9248kqwrc46abwx6fakzfxf745jfvkywi49z7mvd4p99ysh2ir";
+  cargoSha256 = "02wd4cw9hd8d96szwx8yxz6bll60f7w1z0xiz7k1h8h12mriaz4w";
 
   doCheck = false;
 
@@ -25,6 +25,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Byron/dua-cli";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ killercup ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/dust/default.nix b/pkgs/tools/misc/dust/default.nix
index 53594494a83..238ff73ba38 100644
--- a/pkgs/tools/misc/dust/default.nix
+++ b/pkgs/tools/misc/dust/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "du-dust";
-  version = "0.5.1";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "bootandy";
     repo = "dust";
     rev = "v${version}";
-    sha256 = "1l5fh7yl8mbgahvzfa251cyp8j5awqdl66jblz565b1wb536kig7";
+    sha256 = "1rcbxqcxr8v5faa52psjsjjlnkia5cwc3b1cwka9f5cxwhdwg7hr";
     # 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 = "0s8z8cg9q0gfqm0ann8rkxwp5y25si97kgginh6b6lbnaai7y4fj";
+  cargoSha256 = "1q15xy15hk6r3sai9wry2jm57dhinx6r84yxg9fwvq354613k645";
 
   doCheck = false;
 
@@ -25,6 +25,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/bootandy/dust";
     license = licenses.asl20;
     maintainers = [ maintainers.infinisil ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/envsubst/default.nix b/pkgs/tools/misc/envsubst/default.nix
index 5bfbb53c106..be563345b2c 100644
--- a/pkgs/tools/misc/envsubst/default.nix
+++ b/pkgs/tools/misc/envsubst/default.nix
@@ -16,7 +16,6 @@ buildGoPackage rec {
     description = "Environment variables substitution for Go";
     homepage = "https://github.com/a8m/envsubst";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ nicknovitski ];
   };
 }
diff --git a/pkgs/tools/misc/esphome/default.nix b/pkgs/tools/misc/esphome/default.nix
index 3dd79969554..1160f4158b6 100644
--- a/pkgs/tools/misc/esphome/default.nix
+++ b/pkgs/tools/misc/esphome/default.nix
@@ -1,28 +1,21 @@
-{ lib, python3, platformio, esptool, git, protobuf3_10, fetchpatch }:
+{ lib, python3, platformio, esptool, git, protobuf3_11, fetchpatch }:
 
 let
   python = python3.override {
     packageOverrides = self: super: {
       protobuf = super.protobuf.override {
-        protobuf = protobuf3_10;
+        protobuf = protobuf3_11;
       };
-      pyyaml = super.pyyaml.overridePythonAttrs (oldAttrs: rec {
-        version = "5.1.2";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "1r5faspz73477hlbjgilw05xsms0glmsa371yqdd26znqsvg1b81";
-        };
-      });
     };
   };
 
 in python.pkgs.buildPythonApplication rec {
   pname = "esphome";
-  version = "1.14.4";
+  version = "1.14.5";
 
   src = python.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "10krdmpbafvii0qlg5w94vdv573f3zdqm78ck79d6q0frdd9q9yn";
+    sha256 = "176mi361677d5cqbi0hn52kky845byjs6gdad8pdhihyjgv7a9y9";
   };
 
   ESPHOME_USE_SUBPROCESS = "";
@@ -30,7 +23,7 @@ in python.pkgs.buildPythonApplication rec {
   propagatedBuildInputs = with python.pkgs; [
     voluptuous pyyaml paho-mqtt colorlog
     tornado protobuf tzlocal pyserial ifaddr
-    protobuf
+    protobuf click
   ];
 
   # remove all version pinning (E.g tornado==5.1.1 -> tornado)
diff --git a/pkgs/tools/misc/etcher/default.nix b/pkgs/tools/misc/etcher/default.nix
index 0d2029fa314..fec78db979c 100644
--- a/pkgs/tools/misc/etcher/default.nix
+++ b/pkgs/tools/misc/etcher/default.nix
@@ -21,6 +21,8 @@ let
     "i686-linux" = "i386";
   }."${stdenv.system}";
 
+  electron = electron_7;
+
 in
 
 stdenv.mkDerivation rec {
@@ -69,7 +71,7 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    makeWrapper ${electron_7}/bin/electron $out/bin/${pname} \
+    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
       --add-flags $out/share/${pname}/resources/app.asar \
       --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ gcc-unwrapped.lib ]}"
   '';
diff --git a/pkgs/tools/misc/eva/default.nix b/pkgs/tools/misc/eva/default.nix
index 06b7b0a5200..e59c2387a3c 100644
--- a/pkgs/tools/misc/eva/default.nix
+++ b/pkgs/tools/misc/eva/default.nix
@@ -21,6 +21,12 @@ rustPlatform.buildRustPackage rec {
       url = "https://github.com/NerdyPepper/eva/commit/cacf51dbb9748b1dbe97b35f3c593a0a272bd4db.patch";
       sha256 = "11q7dkz2x1888f3awnlr1nbbxzzfjrr46kd0kk6sgjdkyfh50cvv";
     })
+
+    # to fix `cargo test -- --test-threads $NIX_BUILD_CORES`
+    (fetchpatch {
+      url = "https://github.com/NerdyPepper/eva/commit/ccfb3d327567dbaf03b2283c7e684477e2e84590.patch";
+      sha256 = "003yxqlyi8jna0rf05q2a006r2pkz6pcwwfl3dv8zb6p83kk1kgj";
+    })
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/exa/default.nix b/pkgs/tools/misc/exa/default.nix
index 13c8b3f1d4f..fd6baadb685 100644
--- a/pkgs/tools/misc/exa/default.nix
+++ b/pkgs/tools/misc/exa/default.nix
@@ -57,6 +57,6 @@ buildRustPackage rec {
     '';
     homepage = "https://the.exa.website";
     license = licenses.mit;
-    maintainers = with maintainers; [ ehegnes lilyball globin zowoq ];
+    maintainers = with maintainers; [ ehegnes lilyball globin ];
   };
 }
diff --git a/pkgs/tools/misc/fd/default.nix b/pkgs/tools/misc/fd/default.nix
index 1f56eda0a42..89a05815f51 100644
--- a/pkgs/tools/misc/fd/default.nix
+++ b/pkgs/tools/misc/fd/default.nix
@@ -33,6 +33,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/sharkdp/fd";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ dywedir globin ma27 zowoq ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/fdupes/default.nix b/pkgs/tools/misc/fdupes/default.nix
index 731ad86e622..7203d6b57fc 100644
--- a/pkgs/tools/misc/fdupes/default.nix
+++ b/pkgs/tools/misc/fdupes/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, autoreconfHook, ncurses, pcre2 }:
 
 stdenv.mkDerivation rec {
   pname = "fdupes";
-  version = "1.6.1";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "adrianlopezroche";
     repo  = "fdupes";
     rev   = "v${version}";
-    sha256 = "19b6vqblddaw8ccw4sn0qsqzbswlhrz8ia6n4m3hymvcxn8skpz9";
+    sha256 = "1c5hv7vkfxsii1qafhsynzp9zkwim47xkpk27sy64qdsjnhysdak";
   };
 
-  makeFlags = [ "PREFIX=$(out)" ];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ ncurses pcre2 ];
 
   meta = with stdenv.lib; {
     description = "Identifies duplicate files residing within specified directories";
diff --git a/pkgs/tools/misc/fet-sh/default.nix b/pkgs/tools/misc/fet-sh/default.nix
new file mode 100644
index 00000000000..3419a8d2850
--- /dev/null
+++ b/pkgs/tools/misc/fet-sh/default.nix
@@ -0,0 +1,28 @@
+{ stdenvNoCC, lib, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "fet-sh";
+  version = "1.5";
+
+  src = fetchFromGitHub {
+    owner = "6gk";
+    repo = "fet.sh";
+    rev = "v${version}";
+    sha256 = "15336cayv3rb79y7f0v0qvn6nhr5aqr8479ayp0r0sihn5mkfg35";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    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)";
+    homepage = "https://github.com/6gk/fet.sh";
+    license = licenses.isc;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ elkowar ];
+  };
+
+}
diff --git a/pkgs/tools/misc/ffsend/default.nix b/pkgs/tools/misc/ffsend/default.nix
index 264afc68b67..8b9f79aaa7f 100644
--- a/pkgs/tools/misc/ffsend/default.nix
+++ b/pkgs/tools/misc/ffsend/default.nix
@@ -16,16 +16,16 @@ with rustPlatform;
 
 buildRustPackage rec {
   pname = "ffsend";
-  version = "0.2.64";
+  version = "0.2.65";
 
   src = fetchFromGitLab {
     owner = "timvisee";
     repo = "ffsend";
     rev = "v${version}";
-    sha256 = "1fgzcw0955vjypwwx3ja8sil0vxwvhsnspn1bjl869ccbnx2x4hs";
+    sha256 = "02yw129rw072jlf36k60jbhfdv9ayx2wb5il61fc0v07h1nd7i0d";
   };
 
-  cargoSha256 = "0svmbay9waaq9fpc8lg1nys6l35xsjvkri5v1frlgxida5dzghpq";
+  cargoSha256 = "04waki61b5pjlgznbhbrjpi9rxgdwg9mjbx2apfh9swvfip602r6";
 
   nativeBuildInputs = [ cmake pkgconfig installShellFiles ];
   buildInputs =
diff --git a/pkgs/tools/misc/file/default.nix b/pkgs/tools/misc/file/default.nix
index 730234998ed..8e284b25c08 100644
--- a/pkgs/tools/misc/file/default.nix
+++ b/pkgs/tools/misc/file/default.nix
@@ -12,6 +12,12 @@ stdenv.mkDerivation rec {
     sha256 = "1lgs2w2sgamzf27kz5h7pajz7v62554q21fbs11n4mfrfrm2hpgh";
   };
 
+  patches = [
+    # https://github.com/file/file/commit/85b7ab83257b3191a1a7ca044589a092bcef2bb3
+    # Without the RCS id change to avoid conflicts. Remove on next bump.
+    ./webassembly-format-fix.patch
+  ];
+
   nativeBuildInputs = stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) file;
   buildInputs = [ zlib ]
               ++ stdenv.lib.optional stdenv.hostPlatform.isWindows libgnurx;
diff --git a/pkgs/tools/misc/file/webassembly-format-fix.patch b/pkgs/tools/misc/file/webassembly-format-fix.patch
new file mode 100644
index 00000000000..5eca833e4d7
--- /dev/null
+++ b/pkgs/tools/misc/file/webassembly-format-fix.patch
@@ -0,0 +1,13 @@
+diff --git a/src/funcs.c b/src/funcs.c
+index 299b8f022..ecbfa28c5 100644
+--- a/src/funcs.c
++++ b/src/funcs.c
+@@ -93,7 +93,7 @@ file_checkfmt(char *msg, size_t mlen, const char *fmt)
+ 		if (*++p == '%')
+ 			continue;
+ 		// Skip uninteresting.
+-		while (strchr("0.'+- ", *p) != NULL)
++		while (strchr("#0.'+- ", *p) != NULL)
+ 			p++;
+ 		if (*p == '*') {
+ 			if (msg)
diff --git a/pkgs/tools/misc/findutils/default.nix b/pkgs/tools/misc/findutils/default.nix
index 230e401ef82..84dd187e1fc 100644
--- a/pkgs/tools/misc/findutils/default.nix
+++ b/pkgs/tools/misc/findutils/default.nix
@@ -2,6 +2,11 @@
 , coreutils
 }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   pname = "findutils";
   version = "4.7.0";
diff --git a/pkgs/tools/misc/fluent-bit/default.nix b/pkgs/tools/misc/fluent-bit/default.nix
index d882c6efb5e..2f49d0e57eb 100644
--- a/pkgs/tools/misc/fluent-bit/default.nix
+++ b/pkgs/tools/misc/fluent-bit/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fluent-bit";
-  version = "1.4.6";
+  version = "1.5.4";
 
   src = fetchFromGitHub {
     owner = "fluent";
     repo = "fluent-bit";
     rev = "v${version}";
-    sha256 = "0qxyjmgl85q7xk629l548bpzizma5n4j1r6nqbwh9j15ajvq7mq8";
+    sha256 = "0w96f86i2jlzjk2plf8jbdw4q748khbhhjkbzfb8dkq2lhc9i80h";
   };
 
   nativeBuildInputs = [ cmake flex bison ];
diff --git a/pkgs/tools/misc/fontforge/default.nix b/pkgs/tools/misc/fontforge/default.nix
index 82fd5c8210d..8da5c871652 100644
--- a/pkgs/tools/misc/fontforge/default.nix
+++ b/pkgs/tools/misc/fontforge/default.nix
@@ -1,4 +1,5 @@
 { stdenv, fetchurl, lib
+, fetchpatch
 , cmake, perl, uthash, pkgconfig, gettext
 , python, freetype, zlib, glib, libungif, libpng, libjpeg, libtiff, libxml2, cairo, pango
 , readline, woff2, zeromq, libuninameslist
@@ -21,6 +22,18 @@ stdenv.mkDerivation rec {
     sha256 = "0qf88wd6riycq56d24brybyc93ns74s0nyyavm43zp2kfcihn6fd";
   };
 
+  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/pkgs/tools/misc/fpp/default.nix b/pkgs/tools/misc/fpp/default.nix
index 7f68a14c5aa..b00f2198dbc 100644
--- a/pkgs/tools/misc/fpp/default.nix
+++ b/pkgs/tools/misc/fpp/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   postPatch = ''
-    substituteInPlace fpp --replace 'PYTHONCMD="python"' 'PYTHONCMD="${python3.interpreter}"'
+    substituteInPlace fpp --replace 'PYTHONCMD="python3"' 'PYTHONCMD="${python3.interpreter}"'
   '';
 
   installPhase = ''
diff --git a/pkgs/tools/misc/fselect/default.nix b/pkgs/tools/misc/fselect/default.nix
index d979e1e1a00..312c7bbe3e9 100644
--- a/pkgs/tools/misc/fselect/default.nix
+++ b/pkgs/tools/misc/fselect/default.nix
@@ -24,6 +24,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jhspetersson/fselect";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/fsmon/default.nix b/pkgs/tools/misc/fsmon/default.nix
index 5e59d34fe4a..668fa463adb 100644
--- a/pkgs/tools/misc/fsmon/default.nix
+++ b/pkgs/tools/misc/fsmon/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fsmon";
-  version = "1.7.0";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "nowsecure";
     repo = "fsmon";
     rev = version;
-    sha256 = "18p80nmax8lniza324kvwq06r4w2yxcq90ypk2kqym3bnv0jm938";
+    sha256 = "0i7irqs4100j0g19jh64p2plbwipl6p3ld6w4sscc7n8lwkxmj03";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/misc/fx_cast/default.nix b/pkgs/tools/misc/fx_cast/default.nix
index ec977d48572..d24ff0e0516 100644
--- a/pkgs/tools/misc/fx_cast/default.nix
+++ b/pkgs/tools/misc/fx_cast/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fx_cast_bridge";
-  version = "0.0.6";
+  version = "0.0.7";
 
   src = fetchurl {
      url = "https://github.com/hensm/fx_cast/releases/download/v${version}/${pname}-${version}-x64.deb";
-     sha256 = "1mjpwd27b0cpigz4cc2mdl97d78rj5ikn2bqfdic50lqjciaqi1b";
+     sha256 = "0kd58vzsq1qzl7qsh1qv25ylxvr5y37li03gjb48x4vhd85slzz5";
   };
 
   nativeBuildInputs = [ dpkg ];
diff --git a/pkgs/tools/misc/fzf/default.nix b/pkgs/tools/misc/fzf/default.nix
index 2fe4bac88f0..d9fe6ac819b 100644
--- a/pkgs/tools/misc/fzf/default.nix
+++ b/pkgs/tools/misc/fzf/default.nix
@@ -1,14 +1,14 @@
-{ lib, buildGoModule, fetchFromGitHub, writeText, runtimeShell, ncurses }:
+{ lib, buildGoModule, fetchFromGitHub, writeText, runtimeShell, ncurses, perl }:
 
 buildGoModule rec {
   pname = "fzf";
-  version = "0.21.1";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "junegunn";
     repo = pname;
     rev = version;
-    sha256 = "0piz1dzczcw1nsff775zicvpm6iy0iw0v0ba7rj7i0xqv9ni1prw";
+    sha256 = "0n0cy5q2r3dm1a3ivlzrv9c5d11awxlqim5b9x8zc85dlr73n35l";
   };
 
   vendorSha256 = "1c2iz28hjrw9rig9a6r27wd8clycdhi8fgs3da91c63w4qi140zm";
@@ -27,9 +27,14 @@ buildGoModule rec {
         echo "Failed to replace vim base_dir path with $out"
         exit 1
     fi
-  '';
 
-  doCheck = true;
+    # Has a sneaky dependency on perl
+    # Include first args to make sure we're patching the right thing
+    substituteInPlace shell/key-bindings.zsh \
+      --replace " perl -ne " " ${perl}/bin/perl -ne "
+    substituteInPlace shell/key-bindings.bash \
+      --replace " perl -n " " ${perl}/bin/perl -n "
+  '';
 
   preInstall = ''
     mkdir -p $out/share/fish/{vendor_functions.d,vendor_conf.d}
diff --git a/pkgs/tools/misc/g933-utils/default.nix b/pkgs/tools/misc/g933-utils/default.nix
new file mode 100644
index 00000000000..3da98301346
--- /dev/null
+++ b/pkgs/tools/misc/g933-utils/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, rustPlatform, udev, pkgconfig }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "g933-utils";
+  version = "unstable-2019-08-04";
+
+  src = fetchFromGitHub {
+    owner = "ashkitten";
+    repo = "g933-utils";
+    rev = "b80cfd59fc41ae5d577c147311376dd7f7882493";
+    sha256 = "06napzpk3nayzixb4l4fzdiwpgmcrsbc5j9m4qip1yn6dfkin3p0";
+  };
+
+  cargoSha256 = "16xgk4rc36d6lylh2dzv63ryq9s7fli3h2qva1m1p6f0gpasnk7w";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ udev ];
+
+  meta = with stdenv.lib; {
+    description = "An application to configure Logitech wireless G933/G533 headsets";
+    homepage = "https://github.com/ashkitten/g933-utils";
+    license = licenses.mit;
+    maintainers = with maintainers; [ seqizz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/gammy/default.nix b/pkgs/tools/misc/gammy/default.nix
new file mode 100644
index 00000000000..61430c3e41e
--- /dev/null
+++ b/pkgs/tools/misc/gammy/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, qmake, libXxf86vm, wrapQtAppsHook }:
+
+let
+  pname = "gammy";
+  version = "0.9.58";
+in
+
+stdenv.mkDerivation {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "Fushko";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "02f19b7acrzip4kbfjgqk06xv1c257rq77khpdg5gz0ai6ayvwm8";
+  };
+
+  nativeBuildInputs = [ qmake wrapQtAppsHook ];
+
+  buildInputs = [ libXxf86vm ];
+
+  # FIXME remove when https://github.com/Fushko/gammy/issues/45 is fixed
+  installPhase = ''
+    runHook preInstall
+
+    install gammy -Dt $out/bin/
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "GUI tool for manual- of auto-adjusting of brightness/temperature";
+    homepage = "https://github.com/Fushko/gammy";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ atemu ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/gawp/default.nix b/pkgs/tools/misc/gawp/default.nix
index 865ce3c440d..2856dd48559 100644
--- a/pkgs/tools/misc/gawp/default.nix
+++ b/pkgs/tools/misc/gawp/default.nix
@@ -6,7 +6,7 @@ buildGoPackage rec {
   pname = "gawp";
   version = "20160121-${stdenv.lib.strings.substring 0 7 rev}";
   rev = "5db2d8faa220e8d6eaf8677354bd197bf621ff7f";
-  
+
   goPackagePath = "github.com/martingallagher/gawp";
 
   src = fetchgit {
diff --git a/pkgs/tools/misc/geekbench/default.nix b/pkgs/tools/misc/geekbench/default.nix
index 9c250390e11..4d9434e9fb5 100644
--- a/pkgs/tools/misc/geekbench/default.nix
+++ b/pkgs/tools/misc/geekbench/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, makeWrapper }:
+{ stdenv, fetchurl, makeWrapper, ocl-icd, vulkan-loader, linuxPackages }:
 
 stdenv.mkDerivation rec {
   pname = "geekbench";
-  version = "5.2.0";
+  version = "5.2.3";
 
   src = fetchurl {
     url = "https://cdn.geekbench.com/Geekbench-${version}-Linux.tar.gz";
-    sha256 = "1rvzll57igivhlxp058mhmcbq07q2zr52xbi1wyn85qr9ihrhx08";
+    sha256 = "03hasbibw79vbcrpdf2fnm42i2mxc0ia7k96xv012wn6d4dfvr4w";
   };
 
   dontConfigure = true;
@@ -15,12 +15,19 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
-    mkdir -p $out/bin
+    mkdir -p $out/bin $out/lib
     cp -r geekbench.plar geekbench5 geekbench_x86_64 $out/bin
 
+    # needed for compute benchmark
+    ln -s ${linuxPackages.nvidia_x11}/lib/libcuda.so $out/lib/
+    ln -s ${ocl-icd}/lib/libOpenCL.so $out/lib/
+    ln -s ${ocl-icd}/lib/libOpenCL.so.1 $out/lib/
+    ln -s ${vulkan-loader}/lib/libvulkan.so $out/lib/
+    ln -s ${vulkan-loader}/lib/libvulkan.so.1 $out/lib/
+
     for f in geekbench5 geekbench_x86_64 ; do
       patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) $out/bin/$f
-      wrapProgram $out/bin/$f --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib ]}"
+      wrapProgram $out/bin/$f --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$out/lib/"
     done
   '';
 
diff --git a/pkgs/tools/misc/git-town/default.nix b/pkgs/tools/misc/git-town/default.nix
index 7a8b16c55e0..34548abd818 100644
--- a/pkgs/tools/misc/git-town/default.nix
+++ b/pkgs/tools/misc/git-town/default.nix
@@ -2,23 +2,22 @@
 
 buildGoPackage rec {
   pname = "git-town";
-  version = "7.3.0";
-
-  goPackagePath = "github.com/Originate/git-town";
+  version = "7.4.0";
 
+  goPackagePath = "github.com/git-town/git-town";
   src = fetchFromGitHub {
-    owner = "Originate";
+    owner = "git-town";
     repo = "git-town";
     rev = "v${version}";
-    sha256 = "166g9i79hqga8k5wvs0b84q6rqniizzsd39v37s9w16axgdrm6nb";
+    sha256 = "05s2hp4xn0bs3y6rgqkpgz0k8q8yfpwkw5m8vwim95hk6n41ps18";
   };
 
-  buildFlagsArray = [ "-ldflags=-X github.com/Originate/git-town/src/cmd.version=v${version} -X github.com/Originate/git-town/src/cmd.buildDate=nix" ];
+  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" ];
 
   meta = with stdenv.lib; {
     description = "Generic, high-level git support for git-flow workflows";
     homepage = "http://www.git-town.com/";
-    maintainers = [ maintainers.allonsy ];
+    maintainers = [ maintainers.allonsy maintainers.blaggacao ];
     license = licenses.mit;
   };
 }
diff --git a/pkgs/tools/misc/go.rice/default.nix b/pkgs/tools/misc/go.rice/default.nix
new file mode 100644
index 00000000000..340b2d41c66
--- /dev/null
+++ b/pkgs/tools/misc/go.rice/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "go.rice";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "GeertJohan";
+    repo = "go.rice";
+    rev = "v${version}";
+    sha256 = "0m1pkqnx9glf3mlx5jdaby9yxccbl02jpjgpi4m7x1hb4s2gn6vx";
+  };
+
+  vendorSha256 = "0cb5phyl2zm1xnkhvisv0lzgknsi93yzmpayg30w7jc6z4icwnw7";
+
+  doCheck = false;
+
+  subPackages = [ "." "rice" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/GeertJohan/go.rice";
+    description = "A Go package that makes working with resources such as html, js, css, images, templates very easy.";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ blaggacao ];
+  };
+}
+
diff --git a/pkgs/tools/misc/godu/default.nix b/pkgs/tools/misc/godu/default.nix
new file mode 100644
index 00000000000..37511d2e847
--- /dev/null
+++ b/pkgs/tools/misc/godu/default.nix
@@ -0,0 +1,24 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "godu";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "viktomas";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1fp8iq4x0qiswksznnd6qh7c6g5pwglzz6ga11a7vgic0201wsvb";
+  };
+
+  patches = [ ./go-mod.patch ];
+
+  vendorSha256 = "1zq7b0zn24cbrjssk4g03i90szp1ms7ila4khwcm7hp9n1py245s";
+
+  meta = with lib; {
+    description = "Utility helping to discover large files/folders";
+    homepage = "https://github.com/viktomas/godu";
+    license = licenses.mit;
+    maintainers = with maintainers; [ rople380 ];
+  };
+}
diff --git a/pkgs/tools/misc/godu/go-mod.patch b/pkgs/tools/misc/godu/go-mod.patch
new file mode 100644
index 00000000000..2b3efe6be60
--- /dev/null
+++ b/pkgs/tools/misc/godu/go-mod.patch
@@ -0,0 +1,33 @@
+diff --git a/go.mod b/go.mod
+index cf8f2fb..e405e03 100644
+--- a/go.mod
++++ b/go.mod
+@@ -5,5 +5,6 @@ go 1.14
+ require (
+ 	github.com/gdamore/tcell v1.1.1
+ 	github.com/gosuri/uilive v0.0.0-20170323041506-ac356e6e42cd
++	github.com/mattn/go-isatty v0.0.12 // indirect
+ 	github.com/stretchr/testify v1.3.0
+ )
+diff --git a/go.sum b/go.sum
+index 23c1232..e25c87e 100644
+--- a/go.sum
++++ b/go.sum
+@@ -8,6 +8,8 @@ github.com/gosuri/uilive v0.0.0-20170323041506-ac356e6e42cd h1:1e+0Z+T4t1mKL5xxv
+ github.com/gosuri/uilive v0.0.0-20170323041506-ac356e6e42cd/go.mod h1:qkLSc0A5EXSP6B04TrN4oQoxqFI7A8XvoXSlJi8cwk8=
+ github.com/lucasb-eyer/go-colorful v0.0.0-20181028223441-12d3b2882a08 h1:5MnxBC15uMxFv5FY/J/8vzyaBiArCOkMdFT9Jsw78iY=
+ github.com/lucasb-eyer/go-colorful v0.0.0-20181028223441-12d3b2882a08/go.mod h1:NXg0ArsFk0Y01623LgUqoqcouGDB+PwCCQlrwrG6xJ4=
++github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
++github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
+ github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y=
+ github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
+ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+@@ -16,6 +18,8 @@ github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=
+ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+ github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
+ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
++golang.org/x/sys v0.0.0-20200116001909-b77594299b42 h1:vEOn+mP2zCOVzKckCZy6YsCtDblrpj/w7B9nxGNELpg=
++golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+ golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
+ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+ gopkg.in/DATA-DOG/go-sqlmock.v1 v1.3.0 h1:FVCohIoYO7IJoDDVpV2pdq7SgrMH6wHnuTyrdrxJNoY=
\ No newline at end of file
diff --git a/pkgs/tools/misc/gotify-cli/default.nix b/pkgs/tools/misc/gotify-cli/default.nix
index cd50271a2e6..9e9f3c84782 100644
--- a/pkgs/tools/misc/gotify-cli/default.nix
+++ b/pkgs/tools/misc/gotify-cli/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1lhhsf944gm1p6qxn05g2s3hdnra5dggj7pdrdq6qr6r2xg7f5qh";
 
+  doCheck = false;
+
   postInstall = ''
     mv $out/bin/cli $out/bin/gotify
   '';
@@ -23,4 +25,4 @@ buildGoModule rec {
     description = "A command line interface for pushing messages to gotify/server.";
     maintainers = with maintainers; [ ma27 ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/misc/graylog/default.nix b/pkgs/tools/misc/graylog/default.nix
index 8530d04b49a..cb7adf795d3 100644
--- a/pkgs/tools/misc/graylog/default.nix
+++ b/pkgs/tools/misc/graylog/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "graylog";
-  version = "3.3.1";
+  version = "3.3.4";
 
   src = fetchurl {
     url = "https://packages.graylog2.org/releases/graylog/graylog-${version}.tgz";
-    sha256 = "1jcv2dqm49vbz810ypv024r3lqgz804l06yhhwshrih61xzj7dvh";
+    sha256 = "0wynnb56plch61pzjl46jx5q94c5hclzyrr8567fc1jhnqycfngs";
   };
 
   dontBuild = true;
diff --git a/pkgs/tools/misc/graylog/plugins.nix b/pkgs/tools/misc/graylog/plugins.nix
index ec6c16f5313..b1abc8a5065 100644
--- a/pkgs/tools/misc/graylog/plugins.nix
+++ b/pkgs/tools/misc/graylog/plugins.nix
@@ -64,10 +64,10 @@ in {
   enterprise-integrations = glPlugin rec {
     name = "graylog-enterprise-integrations-${version}";
     pluginName = "graylog-plugin-enterprise-integrations";
-    version = "3.3.1";
+    version = "3.3.4";
     src = fetchurl {
       url = "https://downloads.graylog.org/releases/graylog-enterprise-integrations/graylog-enterprise-integrations-plugins-${version}.tgz";
-      sha256 = "0la91f5hfakrp5d37q3r1z15zzya9vmwgp8gf5ifkh6fasa811ll";
+      sha256 = "0ln0vmnfgxg6hdq7sh58xdqn14bl86qrgy3923f3q3hx209v6vn9";
     };
     installPhase = ''
       mkdir -p $out/bin
@@ -96,10 +96,10 @@ in {
   integrations = glPlugin rec {
     name = "graylog-integrations-${version}";
     pluginName = "graylog-plugin-integrations";
-    version = "3.3.1";
+    version = "3.3.4";
     src = fetchurl {
       url = "https://downloads.graylog.org/releases/graylog-integrations/graylog-integrations-plugins-${version}.tgz";
-      sha256 = "1k90q50p4ly9d8fj0riyb1xw0bd6f8wm2xmkr71908j2v0jaskpq";
+      sha256 = "14g6vdyibp3rva8bwss7vjbi9fpxvgp2gbk1r8divbhhpiwsjyxc";
     };
     installPhase = ''
       mkdir -p $out/bin
diff --git a/pkgs/tools/misc/gringo/default.nix b/pkgs/tools/misc/gringo/default.nix
index 92f1eb89585..05e5e9b64cf 100644
--- a/pkgs/tools/misc/gringo/default.nix
+++ b/pkgs/tools/misc/gringo/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl,
-  bison, re2c, scons,
+  bison, re2c, sconsPackages,
   libcxx
 }:
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
     sha256 = "16k4pkwyr2mh5w8j91vhxh9aff7f4y31npwf09w6f8q63fxvpy41";
   };
 
-  buildInputs = [ bison re2c scons.py2 ];
+  buildInputs = [ bison re2c sconsPackages.scons_3_1_2 ];
 
   patches = [
     ./gringo-4.5.4-cmath.patch
diff --git a/pkgs/tools/misc/grub/2.0x.nix b/pkgs/tools/misc/grub/2.0x.nix
index 4e00a4ddd49..63cdb61dd33 100644
--- a/pkgs/tools/misc/grub/2.0x.nix
+++ b/pkgs/tools/misc/grub/2.0x.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, flex, bison, python, autoconf, automake, gnulib, libtool
+{ stdenv, fetchgit, flex, bison, python3, autoconf, automake, gnulib, libtool
 , gettext, ncurses, libusb-compat-0_1, freetype, qemu, lvm2, unifont, pkgconfig
 , fuse # only needed for grub-mount
 , zfs ? null
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     ./fix-bash-completion.patch
   ];
 
-  nativeBuildInputs = [ bison flex python pkgconfig autoconf automake ];
+  nativeBuildInputs = [ bison flex python3 pkgconfig autoconf automake ];
   buildInputs = [ ncurses libusb-compat-0_1 freetype gettext lvm2 fuse libtool ]
     ++ optional doCheck qemu
     ++ optional zfsSupport zfs;
diff --git a/pkgs/tools/misc/hakuneko/default.nix b/pkgs/tools/misc/hakuneko/default.nix
index 34405ccc7be..6389d41cdfe 100644
--- a/pkgs/tools/misc/hakuneko/default.nix
+++ b/pkgs/tools/misc/hakuneko/default.nix
@@ -6,6 +6,7 @@
 , makeWrapper
 , udev
 , stdenv
+, lib
 , wrapGAppsHook
 }:
 let
@@ -61,7 +62,7 @@ stdenv.mkDerivation rec {
   '';
 
   runtimeDependencies = [
-    udev.lib
+    (lib.getLib udev)
   ];
 
   postFixup = ''
diff --git a/pkgs/tools/misc/hashit/default.nix b/pkgs/tools/misc/hashit/default.nix
index 5793382838b..e33201c706b 100644
--- a/pkgs/tools/misc/hashit/default.nix
+++ b/pkgs/tools/misc/hashit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, vala, pantheon, python3, libgee, gtk3, desktop-file-utils, wrapGAppsHook }:
+{ stdenv, fetchFromGitHub, nix-update-script, meson, ninja, pkgconfig, vala, pantheon, python3, libgee, gtk3, desktop-file-utils, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "hashit";
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/pkgs/tools/misc/heatseeker/default.nix b/pkgs/tools/misc/heatseeker/default.nix
index e0b8c02a08e..207788ed61d 100644
--- a/pkgs/tools/misc/heatseeker/default.nix
+++ b/pkgs/tools/misc/heatseeker/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   # I've suggested using `/usr/bin/env stty`, but doing that isn't quite as simple
   # as a substitution, and this works since we have the path to coreutils stty.
   patchPhase = ''
-    substituteInPlace src/screen/unix.rs --replace "/bin/stty" "${coreutils}/bin/stty" 
+    substituteInPlace src/screen/unix.rs --replace "/bin/stty" "${coreutils}/bin/stty"
   '';
 
   # some tests require a tty, this variable turns them off for Travis CI,
diff --git a/pkgs/tools/misc/hebcal/default.nix b/pkgs/tools/misc/hebcal/default.nix
index 12d3e7ecc77..96c95848440 100644
--- a/pkgs/tools/misc/hebcal/default.nix
+++ b/pkgs/tools/misc/hebcal/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  version = "4.20";
+  version = "4.21";
   pname = "hebcal";
 
   src = fetchFromGitHub {
     owner = "hebcal";
     repo = "hebcal";
     rev = "v${version}";
-    sha256 = "19siipj1svcj7rxgxmm3aaj4d43jx13fr7bghab8wak2dk1x0igb";
+    sha256 = "0gqjhl5i0hvnpvsg6cfc2z5ckrs66h3jlrdgim62azn3hh5bday2";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/misc/hyperfine/default.nix b/pkgs/tools/misc/hyperfine/default.nix
index b51ca76b12c..ff9250a2bf6 100644
--- a/pkgs/tools/misc/hyperfine/default.nix
+++ b/pkgs/tools/misc/hyperfine/default.nix
@@ -31,6 +31,5 @@ rustPlatform.buildRustPackage rec {
     homepage    = "https://github.com/sharkdp/hyperfine";
     license     = with licenses; [ asl20 /* or */ mit ];
     maintainers = [ maintainers.thoughtpolice ];
-    platforms   = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/ical2org/default.nix b/pkgs/tools/misc/ical2org/default.nix
index 095336b7df5..ffdb4e93f58 100644
--- a/pkgs/tools/misc/ical2org/default.nix
+++ b/pkgs/tools/misc/ical2org/default.nix
@@ -23,5 +23,5 @@ buildGoPackage rec {
     maintainers = with maintainers; [ swflint ];
     platforms = platforms.unix;
   };
-  
+
 }
diff --git a/pkgs/tools/misc/jdiskreport/default.nix b/pkgs/tools/misc/jdiskreport/default.nix
index 094c42b59dd..5e6c0bdd596 100644
--- a/pkgs/tools/misc/jdiskreport/default.nix
+++ b/pkgs/tools/misc/jdiskreport/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
     homepage = "http://www.jgoodies.com/freeware/jdiskreport/";
     description = "A graphical utility to visualize disk usage";
     license = licenses.unfreeRedistributable; #TODO freedist, libs under BSD-3
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ kylesferrazza ];
   };
 }
diff --git a/pkgs/tools/misc/jdupes/default.nix b/pkgs/tools/misc/jdupes/default.nix
index e30a5e62286..7d559a1468e 100644
--- a/pkgs/tools/misc/jdupes/default.nix
+++ b/pkgs/tools/misc/jdupes/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jdupes";
-  version = "1.17.0";
+  version = "1.18.2";
 
   src = fetchFromGitHub {
     owner = "jbruchon";
     repo  = "jdupes";
     rev   = "v${version}";
-    sha256 = "1c81xcjzfp4fd2zbq3jbknkqlrn0l5wkr08sgvcsxxvqa80338xv";
+    sha256 = "1gaqdcz0s31qncar9dzlr8izv50zlk4y6dgdm9xjk6as2g8b0fkk";
     # 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.
@@ -19,10 +19,11 @@ stdenv.mkDerivation rec {
 
   makeFlags = [
     "PREFIX=${placeholder "out"}"
-    "HARDEN=1"
   ] ++ stdenv.lib.optionals stdenv.isLinux [
     "ENABLE_DEDUPE=1"
     "STATIC_DEDUPE_H=1"
+  ] ++ stdenv.lib.optionals stdenv.cc.isGNU [
+    "HARDEN=1"
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/tools/misc/kak-lsp/default.nix b/pkgs/tools/misc/kak-lsp/default.nix
index 2f63eaf4380..1c2d7ab6717 100644
--- a/pkgs/tools/misc/kak-lsp/default.nix
+++ b/pkgs/tools/misc/kak-lsp/default.nix
@@ -20,6 +20,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ul/kak-lsp";
     license = with licenses; [ unlicense /* or */ mit ];
     maintainers = [ maintainers.spacekookie ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/kdecoration-viewer/default.nix b/pkgs/tools/misc/kdecoration-viewer/default.nix
deleted file mode 100644
index 53b1763ad6a..00000000000
--- a/pkgs/tools/misc/kdecoration-viewer/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ stdenv, fetchFromGitHub, mkDerivation
-, cmake, extra-cmake-modules, qtquickcontrols, kconfigwidgets, kdeclarative, kdecoration }:
-
-mkDerivation {
-  name = "kdecoration-viewer-2018-07-24";
-
-  src = fetchFromGitHub {
-    owner = "KDE";
-    repo = "kdecoration-viewer";
-    rev = "6e50b39c651bbf92fd7e7116d43bf57288254288";
-    sha256 = "01v6i081vx0mydqvnj05xli86m52v6bxxc3z1zlyyap9cfhag7lj";
-  };
-
-  nativeBuildInputs = [ cmake extra-cmake-modules ];
-  buildInputs = [ qtquickcontrols kconfigwidgets kdeclarative kdecoration ];
-
-  meta = with stdenv.lib; {
-    description = "Allows to preview a KDecoration plugin";
-    longDescription = ''
-      kdecoration-viewer allows to preview a KDecoration plugin. Put your plugins under
-      $QT_PLUGIN_PATH/org.kde.kdecoration2 to preview.
-    '';
-    homepage = "https://blog.martin-graesslin.com/blog/2014/07/kdecoration2-the-road-ahead/";
-    license = licenses.gpl2;
-    maintainers = [ maintainers.gnidorah ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/misc/kepubify/default.nix b/pkgs/tools/misc/kepubify/default.nix
index 46d75e5086e..6f8dbb21e1c 100644
--- a/pkgs/tools/misc/kepubify/default.nix
+++ b/pkgs/tools/misc/kepubify/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kepubify";
-  version = "3.1.2";
+  version = "3.1.4";
 
   src = fetchFromGitHub {
-    owner = "geek1011";
+    owner = "pgaskin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "13d3fl53v9pqlm555ly1dm9vc58xwkyik0qmsg173q78ysy2p4q5";
+    sha256 = "0d71d1ra7lk4ayypq3fcigd9lpb2dafa8ci14h0g7rivm4lz8l1j";
   };
 
-  vendorSha256 = "04qpxl4j6v6w25i7r6wghd9xi7jzpy7dynhs9ni35wflq0rlczax";
+  vendorSha256 = "0jzx5midawvzims9ghh8fbslvwcdczvlpf0k6a9q0bdf4wlp2z5n";
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
@@ -23,4 +23,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ zowoq ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/misc/latex2html/default.nix b/pkgs/tools/misc/latex2html/default.nix
index 1d78210d298..33ecdb8cd8e 100644
--- a/pkgs/tools/misc/latex2html/default.nix
+++ b/pkgs/tools/misc/latex2html/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "latex2html";
-  version = "2020";
+  version = "2020.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0z53pdf8pvarlqb3kbdz0w2r6922mv7mcdna5qp5z24wspfmv3zn";
+    sha256 = "1icyl6kl60wh7cavprgbd8q6lpjwr7wn24m34kpiif7ahknhcbcm";
   };
 
   buildInputs = [ ghostscript netpbm perl ];
diff --git a/pkgs/tools/misc/lesspipe/default.nix b/pkgs/tools/misc/lesspipe/default.nix
index 231e660f582..8a13ef5dfd8 100644
--- a/pkgs/tools/misc/lesspipe/default.nix
+++ b/pkgs/tools/misc/lesspipe/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "lesspipe";
-  version = "1.84";
+  version = "1.85";
 
   buildInputs = [ perl ];
   preConfigure = "patchShebangs .";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     owner = "wofr06";
     repo = "lesspipe";
     rev = version;
-    sha256 = "124ffhzrikr88ab14rk6753n8adxijpmg7q3zx7nmqc52wpkfd8q";
+    sha256 = "1v1jdkdq1phc93gdr6mjlk98gipxrkkq4bj8kks0kfdvjgdwkdaa";
   };
 
   patches = [
diff --git a/pkgs/tools/misc/lf/default.nix b/pkgs/tools/misc/lf/default.nix
index 8627003db5f..a00fd7494d8 100644
--- a/pkgs/tools/misc/lf/default.nix
+++ b/pkgs/tools/misc/lf/default.nix
@@ -2,30 +2,22 @@
 
 buildGoModule rec {
   pname = "lf";
-  version = "14";
+  version = "16";
 
   src = fetchFromGitHub {
     owner = "gokcehan";
     repo = "lf";
     rev = "r${version}";
-    sha256 = "0kl9yrgph1i0jbxhlg3k0411436w80xw1s8dzd7v7h2raygkb4is";
+    sha256 = "174h6xnm3amayf0wfiai16m8qnkx54h5zy4rs7j3yzycd7sirs5b";
   };
 
-  vendorSha256 = "1zb2z3c2w4gnq9cjczg1y7r7jg4mlrm2hsb12dqd9w8mh44rvr37";
+  vendorSha256 = "10na3jzvln353ygcvbhj4243yr83skw5zf3r2n8p6d7i83i86c8w";
+
+  doCheck = false;
 
   nativeBuildInputs = [ installShellFiles ];
 
-  # TODO: Setting buildFlags probably isn't working properly. I've tried a few
-  # variants, e.g.:
-  # - buildFlags = [ "-ldflags" "\"-s" "-w"" ""-X 'main.gVersion=${version}'\"" ];
-  # - buildFlags = [ "-ldflags" "\\\"-X" "${goPackagePath}/main.gVersion=${version}\\\"" ];
-  # Override the build phase (to set buildFlags):
-  buildPhase = ''
-    runHook preBuild
-    runHook renameImports
-    go install -ldflags="-s -w -X main.gVersion=r${version}"
-    runHook postBuild
-  '';
+  buildFlagsArray = [ "-ldflags=-s -w -X main.gVersion=r${version}" ];
 
   postInstall = ''
     install -D --mode=444 lf.desktop $out/share/applications/lf.desktop
@@ -47,4 +39,4 @@ buildGoModule rec {
     platforms = platforms.unix;
     maintainers = with maintainers; [ primeos ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/misc/libgen-cli/default.nix b/pkgs/tools/misc/libgen-cli/default.nix
index 7d66941c99a..26627500e8b 100644
--- a/pkgs/tools/misc/libgen-cli/default.nix
+++ b/pkgs/tools/misc/libgen-cli/default.nix
@@ -1,16 +1,18 @@
 { lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 buildGoModule rec {
   pname = "libgen-cli";
-  version = "1.0.6";
+  version = "1.0.7";
 
   src = fetchFromGitHub {
     owner = "ciehanski";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ahqwrlsvgiig73dwlbjgkarf3a0z3xaihj8psd2ci5i0i07nm5v";
+    sha256 = "15nzdwhmgpm36dqx7an5rjl5sw2r4p66qn2y3jzl6fc0y7224ns1";
   };
 
-  vendorSha256 = "15ch0zfl4a7qvwszsfkfgw5v9492wjk4l4i324iq9b50g70lgyhd";
+  vendorSha256 = "0smb83mq711b2pby57ijcllccn7y2l10zb4fbf779xibb2g09608";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
@@ -33,7 +35,6 @@ buildGoModule rec {
       contents.
     '';
     license = licenses.asl20;
-    platforms = platforms.all;
     maintainers = with maintainers; [ zaninime ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/misc/licensor/default.nix b/pkgs/tools/misc/licensor/default.nix
index a6570adf120..3a87e0a1bb8 100644
--- a/pkgs/tools/misc/licensor/default.nix
+++ b/pkgs/tools/misc/licensor/default.nix
@@ -23,6 +23,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/raftario/licensor";
     license = licenses.mit;
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/lnch/default.nix b/pkgs/tools/misc/lnch/default.nix
index 4d9324af180..51b9b94ef70 100644
--- a/pkgs/tools/misc/lnch/default.nix
+++ b/pkgs/tools/misc/lnch/default.nix
@@ -16,7 +16,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     homepage = "https://github.com/oem/lnch";
     description = "A small go app that launches a process and moves it out of the process group";
-    platforms = platforms.all;
     license = licenses.publicDomain; # really I don't know
   };
 }
diff --git a/pkgs/tools/misc/lokalise2-cli/default.nix b/pkgs/tools/misc/lokalise2-cli/default.nix
new file mode 100644
index 00000000000..3705d7df6f0
--- /dev/null
+++ b/pkgs/tools/misc/lokalise2-cli/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "lokalise2-cli";
+  version = "2.6.0";
+
+  src = fetchFromGitHub {
+    owner = "lokalise";
+    repo = "lokalise-cli-2-go";
+    rev = "v${version}";
+    sha256 = "15lwy2rrb5d5r0asa51bgjr42pcknk6znx6qirw9s924i8dbzp6s";
+  };
+
+  vendorSha256 = "06y1v0v1kkbd5vxa8h0qvasm9ibwwhz0v4x03k3nb5xlwn0x9jx8";
+
+  doCheck = false;
+
+  postInstall = ''
+    mv $out/bin/lokalise-cli-2-go $out/bin/lokalise2
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Translation platform for developers. Upload language files, translate, integrate via API.";
+    homepage = "https://lokalise.com";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ timstott ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/misc/lolcat/Gemfile.lock b/pkgs/tools/misc/lolcat/Gemfile.lock
index e01cf81c61e..d98402b0a59 100644
--- a/pkgs/tools/misc/lolcat/Gemfile.lock
+++ b/pkgs/tools/misc/lolcat/Gemfile.lock
@@ -1,13 +1,13 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    lolcat (100.0.0)
+    lolcat (100.0.1)
       manpages (~> 0.6.1)
-      optimist (~> 3.0.0)
-      paint (~> 2.1.0)
+      optimist (~> 3.0.1)
+      paint (~> 2.2.0)
     manpages (0.6.1)
-    optimist (3.0.0)
-    paint (2.1.1)
+    optimist (3.0.1)
+    paint (2.2.0)
 
 PLATFORMS
   ruby
diff --git a/pkgs/tools/misc/lolcat/gemset.nix b/pkgs/tools/misc/lolcat/gemset.nix
index 2c2bc9cead1..421e1874db7 100644
--- a/pkgs/tools/misc/lolcat/gemset.nix
+++ b/pkgs/tools/misc/lolcat/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k1m2ihcprjq9jdmq2v3xlf27hqbpr2vjnnyfwp3z2zspzbl0nys";
+      sha256 = "13p8i08vdqfg2bqyjkl8jsp7gw8cf6r68i8plp9zqavlqadqlg4q";
       type = "gem";
     };
-    version = "100.0.0";
+    version = "100.0.1";
   };
   manpages = {
     groups = ["default"];
@@ -25,19 +25,19 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05jxrp3nbn5iilc1k7ir90mfnwc5abc9h78s5rpm3qafwqxvcj4j";
+      sha256 = "1vg2chy1cfmdj6c1gryl8zvjhhmb3plwgyh1jfnpq4fnfqv7asrk";
       type = "gem";
     };
-    version = "3.0.0";
+    version = "3.0.1";
   };
   paint = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rrb2p2yk6ffhm0gz8ba431mf63kq7w27gwavxl7n8qd2splj4mh";
+      sha256 = "014b5rkbg6qri0cwkq972bfi93zvqdgswgvphjrgjl0pr6hywlkl";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "2.2.0";
   };
 }
\ No newline at end of file
diff --git a/pkgs/tools/misc/loop/default.nix b/pkgs/tools/misc/loop/default.nix
index 73907e233ab..3cc0466d80a 100644
--- a/pkgs/tools/misc/loop/default.nix
+++ b/pkgs/tools/misc/loop/default.nix
@@ -1,16 +1,17 @@
 { stdenv, fetchFromGitHub, rustPlatform }:
 
 rustPlatform.buildRustPackage {
-  name = "loop-unstable-2018-12-04";
+  pname = "loop";
+  version = "unstable-2020-07-08";
 
   src = fetchFromGitHub {
     owner = "Miserlou";
     repo  = "Loop";
-    rev   = "598ccc8e52bb13b8aff78b61cfe5b10ff576cecf";
-    sha256 = "0f33sc1slg97q1aisdrb465c3p7fgdh2swv8k3yphpnja37f5nl4";
+    rev   = "944df766ddecd7a0d67d91cc2dfda8c197179fb0";
+    sha256 = "0v61kahwk1kdy8pb40rjnzcxby42nh02nyg9jqqpx3vgdrpxlnix";
   };
 
-  cargoSha256 = "1ydd0sd4lvl6fdl4b13ncqcs03sbxb6v9dwfyqi64zihqzpblshv";
+  cargoSha256 = "0a3l580ca23vx8isd1qff870ci3p7wf4qrm53jl7nhfjh7rg5a4w";
 
   meta = with stdenv.lib; {
     description = "UNIX's missing `loop` command";
diff --git a/pkgs/tools/misc/lorri/default.nix b/pkgs/tools/misc/lorri/default.nix
index 002a6e2eaec..8c544d3f0db 100644
--- a/pkgs/tools/misc/lorri/default.nix
+++ b/pkgs/tools/misc/lorri/default.nix
@@ -12,9 +12,16 @@
 , Security
 }:
 
-rustPlatform.buildRustPackage rec {
+let
+  # Run `eval $(nix-build -A lorri.updater)` after updating the revision!
+  version = "1.2";
+  gitRev = "43a260c221d5dac4a44fd82271736c8444474eec";
+  sha256 = "0g6zq27dpr8bdan5xrqchybpbqwnhhc7x8sxbfygigbqd3xv9i6n";
+  cargoSha256 = "1zmlp14v7av0znmjyy2aq83lc74503p6r0l11l9iw7s3xad8rda4";
+
+in (rustPlatform.buildRustPackage rec {
   pname = "lorri";
-  version = "1.1";
+  inherit version;
 
   meta = with stdenv.lib; {
     description = "Your project's nix-env";
@@ -26,13 +33,11 @@ rustPlatform.buildRustPackage rec {
   src = fetchFromGitHub {
     owner = "target";
     repo = pname;
-    # Run `eval $(nix-build -A lorri.updater)` after updating the revision!
-    # ALSO don’t forget to update the cargoSha256!
-    rev = "93d93013217cd9aa09d2bd316d6c3abf827a6601";
-    sha256 = "0wbkx8hmikngfp6fp0y65yla22f3k0jszq8a6pas80q0b33llwm5";
+    rev = gitRev;
+    inherit sha256;
   };
 
-  cargoSha256 = "1a3n1ylyp63x6v7b07nnqpfxjzmsgwmgraza23lx8z4gh167gv46";
+  inherit cargoSha256;
   doCheck = false;
 
   BUILD_REV_COUNT = src.revCount or 1;
@@ -42,6 +47,17 @@ rustPlatform.buildRustPackage rec {
   buildInputs =
     stdenv.lib.optionals stdenv.isDarwin [ CoreServices Security ];
 
+  # copy the docs to the $man and $doc outputs
+  postInstall = ''
+    install -Dm644 lorri.1 $man/share/man/man1/lorri.1
+    install -Dm644 -t $doc/share/doc/lorri/ \
+      README.md \
+      CONTRIBUTING.md \
+      LICENSE \
+      MAINTAINERS.md
+    cp -r contrib/ $doc/share/doc/lorri/contrib
+  '';
+
   passthru = {
     updater = writers.writeBash "copy-runtime-nix.sh" ''
       set -euo pipefail
@@ -52,4 +68,7 @@ rustPlatform.buildRustPackage rec {
       nixos = nixosTests.lorri;
     };
   };
-}
+}).overrideAttrs (old: {
+  # add man and doc outputs to put our documentation into
+  outputs = old.outputs or [ "out" ] ++ [ "man" "doc" ];
+})
diff --git a/pkgs/tools/misc/lottieconverter/default.nix b/pkgs/tools/misc/lottieconverter/default.nix
new file mode 100644
index 00000000000..bf2a68df702
--- /dev/null
+++ b/pkgs/tools/misc/lottieconverter/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, libpng, rlottie, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "LottieConverter";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "sot-tech";
+    repo = pname;
+    rev = "r${version}";
+    hash = "sha256-lAGzh6B2js2zDuN+1U8CZnse09RJGZRXbtmsheGKuYU=";
+  };
+
+  buildInputs = [ libpng rlottie zlib ];
+  makeFlags = [ "CONF=Release" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    cp -v dist/Release/GNU-Linux/lottieconverter $out/bin/
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/sot-tech/LottieConverter/";
+    description = "Lottie converter utility";
+    license = licenses.lgpl21Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ CRTified ];
+  };
+}
diff --git a/pkgs/tools/misc/lsd/default.nix b/pkgs/tools/misc/lsd/default.nix
index 73dcbd3bc3c..415c55fb611 100644
--- a/pkgs/tools/misc/lsd/default.nix
+++ b/pkgs/tools/misc/lsd/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lsd";
-  version = "0.17.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "Peltoche";
     repo = pname;
     rev = version;
-    sha256 = "1vyww54fl4yfvszr0dh8ym2jd9gilrccmwkvl7rbx70sfqzsgaai";
+    sha256 = "006fy87jrb77cpa6bywchcvq1p74vlpy151q1j4nsj8npbr02krj";
   };
 
-  cargoSha256 = "13g0p6zh2b1z005lszll098d4lv62dzsxwhl76bianzrydif61lr";
+  cargoSha256 = "0mrvcca9y0vylcrbfxxba45v05qxd8z91vb4in88px60xah0dy3q";
 
   nativeBuildInputs = [ installShellFiles ];
   postInstall = ''
diff --git a/pkgs/tools/misc/man-db/default.nix b/pkgs/tools/misc/man-db/default.nix
index f5cbef8b022..68e1aaa4d61 100644
--- a/pkgs/tools/misc/man-db/default.nix
+++ b/pkgs/tools/misc/man-db/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libpipeline, db, groff, libiconv, makeWrapper, buildPackages }:
 
 stdenv.mkDerivation rec {
-  name = "man-db-2.9.2";
+  name = "man-db-2.9.3";
 
   src = fetchurl {
     url = "mirror://savannah/man-db/${name}.tar.xz";
-    sha256 = "0z04kwv5ymmd0pzadpaag696jfckg6rbz8x4jrgj09bmqqk3yf3v";
+    sha256 = "1f4palf5bdyf3f8sa0981cqxn9cjcr2pz53ngrrsybb9n0da2nps";
   };
 
   outputs = [ "out" "doc" ];
diff --git a/pkgs/tools/misc/mbuffer/default.nix b/pkgs/tools/misc/mbuffer/default.nix
index 8b1cb938fb7..d86f824b87f 100644
--- a/pkgs/tools/misc/mbuffer/default.nix
+++ b/pkgs/tools/misc/mbuffer/default.nix
@@ -12,6 +12,14 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ openssl ];
+
+  # The mbuffer configure scripts fails to recognize the correct
+  # objdump binary during cross-building for foreign platforms.
+  # The correct objdump is exposed via the environment variable
+  # $OBJDUMP, which should be used in such cases.
+  preConfigure = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+    substituteInPlace configure --replace "OBJDUMP=$ac_cv_path_OBJDUMP" 'OBJDUMP=''${OBJDUMP}'
+  '';
   doCheck = true;
 
   meta = {
diff --git a/pkgs/tools/misc/mc/default.nix b/pkgs/tools/misc/mc/default.nix
index 07c5f9b3517..fb279f313b4 100644
--- a/pkgs/tools/misc/mc/default.nix
+++ b/pkgs/tools/misc/mc/default.nix
@@ -20,11 +20,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mc";
-  version = "4.8.24";
+  version = "4.8.25";
 
   src = fetchurl {
     url = "https://www.midnight-commander.org/downloads/${pname}-${version}.tar.xz";
-    sha256 = "0ikd2yql44p7nagmb08dmjqdwadclnvgr7ri9pmzc2s5f301r7w5";
+    sha256 = "12jlnabnc91xsm35g99g2wnh96jmznvrhffd18rj7fqfy8brdhgz";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
diff --git a/pkgs/tools/misc/mcfly/default.nix b/pkgs/tools/misc/mcfly/default.nix
index 7feb2fce710..39f9b47f465 100644
--- a/pkgs/tools/misc/mcfly/default.nix
+++ b/pkgs/tools/misc/mcfly/default.nix
@@ -2,21 +2,25 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mcfly";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "cantino";
     repo = "mcfly";
     rev = "v${version}";
-    sha256 = "01rw7gdvpr2s3yj7wphsm5gfrgzf5jkrci4mpqiw7xp8d5k87nzl";
+    sha256 = "155x745jakfcpr6kmp24cy8xwdhv81jdfjjhd149bnw5ilg0z037";
   };
 
-  preInstall = ''
+  postInstall = ''
+    substituteInPlace mcfly.bash --replace '$(which mcfly)' $out/bin/mcfly
+    substituteInPlace mcfly.zsh  --replace '$(which mcfly)' $out/bin/mcfly
+    substituteInPlace mcfly.fish --replace '(which mcfly)' $out/bin/mcfly
     install -Dm644 -t $out/share/mcfly mcfly.bash
     install -Dm644 -t $out/share/mcfly mcfly.zsh
+    install -Dm644 -t $out/share/mcfly mcfly.fish
   '';
 
-  cargoSha256 = "1q1mi69prn9q1nk4021c69vq160ls6md6gpqxk7zyf25r5ckdd98";
+  cargoSha256 = "0y6sjbzg5qqqip9sc9ajyd5ra3n2wwvarj6nhpzjhh05kqz3qja4";
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/cantino/mcfly";
diff --git a/pkgs/tools/misc/miniserve/default.nix b/pkgs/tools/misc/miniserve/default.nix
index 503131898c8..5da2a366cf8 100644
--- a/pkgs/tools/misc/miniserve/default.nix
+++ b/pkgs/tools/misc/miniserve/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "miniserve";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "svenstaro";
     repo = "miniserve";
     rev = "v${version}";
-    sha256 = "06nrb84xfvx02yc4bjn1szfq3bjy8mqgxwwrjghl7vpcw51qhlk5";
+    sha256 = "1h4872jb0xz8yzs02q8wfvqrp20y7kdva5ka6bh6nq4jrnnky8zb";
   };
 
-  cargoSha256 = "0mk8hvhjqggfr410yka9ygb41l1bnsizs8py3100xf685yxy5mhl";
+  cargoSha256 = "1vq1rrav9r9z4y0v7hpn0fcq64slq4zrm2pybmnmb7h9nfxxyr6k";
 
   RUSTC_BOOTSTRAP = 1;
 
diff --git a/pkgs/tools/misc/mmake/default.nix b/pkgs/tools/misc/mmake/default.nix
index e272c56e0ac..a761530a0a0 100644
--- a/pkgs/tools/misc/mmake/default.nix
+++ b/pkgs/tools/misc/mmake/default.nix
@@ -25,7 +25,6 @@ buildGoPackage rec {
       pass-through to standard make.
       '';
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = [ maintainers.gabesoft ];
   };
 }
diff --git a/pkgs/tools/misc/mprime/default.nix b/pkgs/tools/misc/mprime/default.nix
index 363e90ab5f2..3189e41de8d 100644
--- a/pkgs/tools/misc/mprime/default.nix
+++ b/pkgs/tools/misc/mprime/default.nix
@@ -1,34 +1,45 @@
 { stdenv, lib, fetchurl, unzip, curl, hwloc, gmp }:
 
 let
-  srcDir =
-    if stdenv.hostPlatform.system == "x86_64-linux" then "linux64"
-    else if stdenv.hostPlatform.system == "i686-linux" then "linux"
-    else if stdenv.hostPlatform.system == "x86_64-darwin" then "macosx64"
-    else throwSystem;
   throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
-  gwnum =
-    if stdenv.hostPlatform.system == "x86_64-linux" then "make64"
-    else if stdenv.hostPlatform.system == "i686-linux" then "makefile"
-    else if stdenv.hostPlatform.system == "x86_64-darwin" then "makemac"
-    else throwSystem;
+
+  srcDir = {
+    x86_64-linux = "linux64";
+    i686-linux = "linux";
+    x86_64-darwin = "macosx64";
+  }."${stdenv.hostPlatform.system}" or throwSystem;
+
+  gwnum = {
+    x86_64-linux = "make64";
+    i686-linux = "makefile";
+    x86_64-darwin = "makemac";
+  }."${stdenv.hostPlatform.system}" or throwSystem;
 in
 
 stdenv.mkDerivation rec {
   pname = "mprime";
-  version = "29.4b7";
+  version = "29.8b7";
 
   src = fetchurl {
     url = "https://www.mersenne.org/ftp_root/gimps/p95v${lib.replaceStrings ["."] [""] version}.source.zip";
-    sha256 = "0idaqm46m4yis7vl014scx57lpccvjbnyy79gmj8caxghyajws0m";
+    sha256 = "0x5dk2dcppfnq17n79297lmn6p56rd66cbwrh1ds4l8r4hmwsjaj";
   };
 
-  unpackCmd = "unzip -d src -q $curSrc || true";
+  postPatch = ''
+    sed -i ${srcDir}/makefile \
+      -e 's/^LFLAGS =.*//'
+    substituteInPlace ${srcDir}/makefile \
+      --replace '-Wl,-Bstatic'  "" \
+      --replace '-Wl,-Bdynamic' ""
+  '';
+
+  sourceRoot = ".";
 
   nativeBuildInputs = [ unzip ];
+
   buildInputs = [ curl hwloc gmp ];
 
-  patches = [ ./makefile.patch ];
+  enableParallelBuilding = true;
 
   buildPhase = ''
     make -C gwnum -f ${gwnum}
@@ -36,10 +47,10 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
-    install -D ${srcDir}/mprime $out/bin/mprime
+    install -Dm555 -t $out/bin ${srcDir}/mprime
   '';
-  
-  meta = {
+
+  meta = with lib; {
     description = "Mersenne prime search / System stability tester";
     longDescription = ''
       MPrime is the Linux command-line interface version of Prime95, to be run
@@ -50,7 +61,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.mersenne.org/";
     # Unfree, because of a license requirement to share prize money if you find
     # a suitable prime. http://www.mersenne.org/legal/#EULA
-    license = stdenv.lib.licenses.unfree;
+    license = licenses.unfree;
     # Untested on linux-32 and osx. Works in theory.
     platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"];
   };
diff --git a/pkgs/tools/misc/mprime/makefile.patch b/pkgs/tools/misc/mprime/makefile.patch
deleted file mode 100644
index 6ed9cf69384..00000000000
--- a/pkgs/tools/misc/mprime/makefile.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff -dur src.old/linux/makefile src.new/linux/makefile
---- src.old/linux/makefile	2018-01-04 20:49:00.000000000 +0300
-+++ src.new/linux/makefile	2018-02-15 12:32:02.913011604 +0300
-@@ -28,8 +28,8 @@
- CPP = g++
- CPPFLAGS = -I.. -I../gwnum -O2 -march=i486 -malign-double
- 
--LFLAGS = -Wl,-M -Wl,-L/usr/local/lib
--LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic -lhwloc -Wl,-Bstatic -lcurl -Wl,-Bdynamic -lrt -lstdc++ -ldl -lgmp
-+LFLAGS =
-+LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -lhwloc -lcurl -lrt -lstdc++ -ldl -lgmp
- 
- FACTOROBJ = factor32.o
- LINUXOBJS = prime.o menu.o
-diff -dur src.old/linux64/makefile src.new/linux64/makefile
---- src.old/linux64/makefile	2018-01-04 20:49:00.000000000 +0300
-+++ src.new/linux64/makefile	2018-02-15 12:32:28.836286995 +0300
-@@ -26,9 +26,9 @@
- CPP = g++
- CPPFLAGS = -I.. -I../gwnum -DX86_64 -O2
- 
--LFLAGS = -Wl,-M -Wl,-L/usr/local/lib
-+LFLAGS =
- #LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic -lhwloc -Wl,-Bstatic -lcurl -Wl,-Bdynamic -lrt -lstdc++ -lz -lxml2 -ldl -lgmp
--LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic -lhwloc -Wl,-Bstatic -lcurl -Wl,-Bdynamic -lrt -lstdc++ -ldl -lgmp
-+LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -lhwloc -lcurl -lrt -lstdc++ -ldl -lgmp
- 
- FACTOROBJ = factor64.o
- LINUXOBJS = prime.o menu.o
-diff -dur src.old/macosx64/makefile src.new/macosx64/makefile
---- src.old/macosx64/makefile	2018-01-04 20:49:02.000000000 +0300
-+++ src.new/macosx64/makefile	2018-02-15 12:33:32.401902535 +0300
-@@ -12,7 +12,7 @@
- CPP = g++
- CPPFLAGS = -I.. -I../gwnum -I../linux -O2 -DX86_64 -DCOMMAND_LINE_MPRIME -m64
- 
--LFLAGS = -m64 -Wl,-no_pie -L/usr/local/lib
-+LFLAGS = -m64 -Wl,-no_pie
- LIBS   = ../gwnum/amd64/release/gwnum.a -lm -lpthread -lhwloc -lcurl -framework IOKit -framework CoreFoundation -lstdc++ -lgmp
- 
- FACTOROBJ = ../prime95/macosx64/factor64.o
diff --git a/pkgs/tools/misc/mstflint/default.nix b/pkgs/tools/misc/mstflint/default.nix
index cf90e93929d..20d7110944d 100644
--- a/pkgs/tools/misc/mstflint/default.nix
+++ b/pkgs/tools/misc/mstflint/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mstflint";
-  version = "4.14.0-1";
+  version = "4.14.0-3";
 
   src = fetchFromGitHub {
     owner = "Mellanox";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0xrwx623vl17cqzpacil74m2fi4xrshgvvzxiplz1wq47gq7wp1i";
+    sha256 = "0zy9npyzf7dkxlfl9mx6997aa61mk23ixpjb01ckb1wvav5k6z82";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/misc/multitail/default.nix b/pkgs/tools/misc/multitail/default.nix
index e0ac18a76b2..eef53769f06 100644
--- a/pkgs/tools/misc/multitail/default.nix
+++ b/pkgs/tools/misc/multitail/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ncurses }:
+{ stdenv, fetchurl, ncurses, pkg-config }:
 
 stdenv.mkDerivation rec {
   version = "6.5.0";
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1vd9vdxyxsccl64ilx542ya5vlw2bpg6gnkq1x8cfqy6vxvmx7dj";
   };
 
+  nativeBuildInputs = [ pkg-config ];
+
   buildInputs = [ ncurses ];
 
   makeFlags = stdenv.lib.optionals stdenv.isDarwin [ "-f" "makefile.macosx" ];
diff --git a/pkgs/tools/misc/mutagen/default.nix b/pkgs/tools/misc/mutagen/default.nix
index 1271c494851..ca75bf34dd1 100644
--- a/pkgs/tools/misc/mutagen/default.nix
+++ b/pkgs/tools/misc/mutagen/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "mutagen";
-  version = "0.11.5";
+  version = "0.11.7";
 
   src = fetchFromGitHub {
     owner = "mutagen-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0z2bf412zfap91ygp7v06vif87d1cxj2jlc0jvfv7fm61801piij";
+    sha256 = "11wp94khj9bzmadij0nq6i6q0x9z6h0zy4a6fhf322y5nxsmvcgy";
   };
 
   vendorSha256 = "0szs9yc49fyh55ra1wf8zj76kdah0x49d45cgivk3gqh2hl17j6l";
 
+  doCheck = false;
+
   subPackages = [ "cmd/mutagen" "cmd/mutagen-agent" ];
 
   meta = with lib; {
@@ -22,4 +24,4 @@ buildGoModule rec {
     maintainers = [ maintainers.marsam ];
     license = licenses.mit;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/misc/neo-cowsay/default.nix b/pkgs/tools/misc/neo-cowsay/default.nix
index e50960d063c..4473f869a38 100644
--- a/pkgs/tools/misc/neo-cowsay/default.nix
+++ b/pkgs/tools/misc/neo-cowsay/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1clar59x2dvn7yj4fbylby9nrzy8kdixi48hkbmrv8g5l8n0wdl2";
 
+  doCheck = false;
+
   subPackages = [ "cmd/cowsay" "cmd/cowthink" ];
 
   meta = with lib; {
@@ -21,4 +23,4 @@ buildGoModule rec {
     license = with licenses; [artistic1 /* or */ gpl3];
     maintainers = with maintainers; [ filalex77 ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/misc/neofetch/default.nix b/pkgs/tools/misc/neofetch/default.nix
index a1a0c159bb4..f08e3828325 100644
--- a/pkgs/tools/misc/neofetch/default.nix
+++ b/pkgs/tools/misc/neofetch/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "neofetch";
-  version = "7.0.0";
+  version = "7.1.0";
 
   src = fetchFromGitHub {
     owner = "dylanaraps";
     repo = "neofetch";
     rev = version;
-    sha256 = "0xc0fdc7n5bhqirh83agqiy8r14l14zwca07czvj8vgnsnfybslr";
+    sha256 = "0i7wpisipwzk0j62pzaigbiq42y1mn4sbraz4my2jlz6ahwf00kv";
   };
 
   dontBuild = true;
diff --git a/pkgs/tools/misc/nix-direnv/default.nix b/pkgs/tools/misc/nix-direnv/default.nix
index cff7df1801f..d92f2346563 100644
--- a/pkgs/tools/misc/nix-direnv/default.nix
+++ b/pkgs/tools/misc/nix-direnv/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nix-direnv";
-  version = "1.0.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "nix-direnv";
     rev = "${version}";
-    sha256 = "1lwmg6mn3lf7s0345v53zadxn9v0x8z6pcbj90v5dx3pgrq41gs8";
+    sha256 = "sha256-xMz6e0OLeB3eltGrLV3Hew0lMjH5LSgqJ1l7JT2Ho/M=";
   };
 
   # Substitute instead of wrapping because the resulting file is
diff --git a/pkgs/tools/misc/noti/default.nix b/pkgs/tools/misc/noti/default.nix
index ac06b44055c..3a3a1a77037 100644
--- a/pkgs/tools/misc/noti/default.nix
+++ b/pkgs/tools/misc/noti/default.nix
@@ -35,6 +35,5 @@ buildGoPackage rec {
     homepage = "https://github.com/variadico/noti";
     license = licenses.mit;
     maintainers = with maintainers; [ stites marsam ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/oppai-ng/default.nix b/pkgs/tools/misc/oppai-ng/default.nix
index 46b2fd444ec..e44999d1c34 100644
--- a/pkgs/tools/misc/oppai-ng/default.nix
+++ b/pkgs/tools/misc/oppai-ng/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "oppai-ng";
-  version = "3.2.3";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "Francesco149";
     repo = pname;
     rev = version;
-    sha256 = "1wrnpnx1yl0pdzmla4knlpcwy7baamy2wpdypnbdqxrn0zkw7kzk";
+    sha256 = "0ymprwyv92pr58851wzryymhfznnpwcbg4m1yri0c9cyzvabwmfk";
   };
 
   buildPhase = ''
diff --git a/pkgs/tools/misc/osm2pgsql/default.nix b/pkgs/tools/misc/osm2pgsql/default.nix
index b2b66515168..ebe99eca8cf 100644
--- a/pkgs/tools/misc/osm2pgsql/default.nix
+++ b/pkgs/tools/misc/osm2pgsql/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "osm2pgsql";
-  version = "1.2.2";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "openstreetmap";
     repo = pname;
     rev = version;
-    sha256 = "1j35aa8qinhavliqi5pdm0viyi7lm5xyk402rliaxxs1r2hbsafn";
+    sha256 = "1dsyhcifixmcw05qxjald02pml0zfdij81pgy9yh8p00v0rqq57x";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/misc/ostree/default.nix b/pkgs/tools/misc/ostree/default.nix
index 24a104dc974..fd1bfc7f8c7 100644
--- a/pkgs/tools/misc/ostree/default.nix
+++ b/pkgs/tools/misc/ostree/default.nix
@@ -2,7 +2,7 @@
 , fetchurl
 , fetchpatch
 , substituteAll
-, pkgconfig
+, pkg-config
 , gtk-doc
 , gobject-introspection
 , gjs
@@ -21,13 +21,15 @@
 , fuse
 , utillinuxMinimal
 , libselinux
+, libsodium
 , libarchive
 , libcap
 , bzip2
 , yacc
 , libxslt
-, docbook_xsl
+, docbook-xsl-nons
 , docbook_xml_dtd_42
+, openssl
 , python3
 }:
 
@@ -37,13 +39,13 @@ let
   ]));
 in stdenv.mkDerivation rec {
   pname = "ostree";
-  version = "2020.3";
+  version = "2020.5";
 
   outputs = [ "out" "dev" "man" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/ostreedev/ostree/releases/download/v${version}/libostree-${version}.tar.xz";
-    sha256 = "01cch4as23xspq6pck59al7x5jj60wl21g8p3iqbdxcjl1p3jxsq";
+    sha256 = "1k92177hjalbdpmg45ymwwrni68vh9rs5x9zvy5fzl9lng12fgpb";
   };
 
   patches = [
@@ -59,6 +61,7 @@ in stdenv.mkDerivation rec {
     (substituteAll {
       src = ./fix-test-paths.patch;
       python3 = testPython.interpreter;
+      openssl = "${openssl}/bin/openssl";
     })
   ];
 
@@ -66,14 +69,14 @@ in stdenv.mkDerivation rec {
     autoconf
     automake
     libtool
-    pkgconfig
+    pkg-config
     gtk-doc
     gobject-introspection
     which
     makeWrapper
     yacc
     libxslt
-    docbook_xsl
+    docbook-xsl-nons
     docbook_xml_dtd_42
   ];
 
@@ -85,6 +88,7 @@ in stdenv.mkDerivation rec {
     gpgme
     fuse
     libselinux
+    libsodium
     libcap
     libarchive
     bzip2
@@ -96,16 +100,13 @@ in stdenv.mkDerivation rec {
     gjs
   ];
 
-  preConfigure = ''
-    env NOCONFIGURE=1 ./autogen.sh
-  '';
-
   enableParallelBuilding = true;
 
   configureFlags = [
     "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
     "--with-systemdsystemgeneratordir=${placeholder "out"}/lib/systemd/system-generators"
     "--enable-installed-tests"
+    "--with-ed25519-libsodium"
   ];
 
   makeFlags = [
@@ -113,6 +114,10 @@ in stdenv.mkDerivation rec {
     "installed_test_metadir=${placeholder "installedTests"}/share/installed-tests/libostree"
   ];
 
+  preConfigure = ''
+    env NOCONFIGURE=1 ./autogen.sh
+  '';
+
   postFixup = let
     typelibPath = stdenv.lib.makeSearchPath "/lib/girepository-1.0" [
       (placeholder "out")
diff --git a/pkgs/tools/misc/ostree/fix-test-paths.patch b/pkgs/tools/misc/ostree/fix-test-paths.patch
index cf94b33f31c..3e5b7e06999 100644
--- a/pkgs/tools/misc/ostree/fix-test-paths.patch
+++ b/pkgs/tools/misc/ostree/fix-test-paths.patch
@@ -1,3 +1,32 @@
+diff --git a/tests/libtest.sh b/tests/libtest.sh
+index ca457fa2..c0a529ff 100755
+--- a/tests/libtest.sh
++++ b/tests/libtest.sh
+@@ -709,12 +709,12 @@ gen_ed25519_keys ()
+ {
+   # Generate private key in PEM format
+   pemfile="$(mktemp -p ${test_tmpdir} ed25519_XXXXXX.pem)"
+-  openssl genpkey -algorithm ed25519 -outform PEM -out "${pemfile}"
++  @openssl@ genpkey -algorithm ed25519 -outform PEM -out "${pemfile}"
+ 
+   # Based on: http://openssl.6102.n7.nabble.com/ed25519-key-generation-td73907.html
+   # Extract the private and public parts from generated key.
+-  ED25519PUBLIC="$(openssl pkey -outform DER -pubout -in ${pemfile} | tail -c 32 | base64)"
+-  ED25519SEED="$(openssl pkey -outform DER -in ${pemfile} | tail -c 32 | base64)"
++  ED25519PUBLIC="$(@openssl@ pkey -outform DER -pubout -in ${pemfile} | tail -c 32 | base64)"
++  ED25519SEED="$(@openssl@ pkey -outform DER -in ${pemfile} | tail -c 32 | base64)"
+   # Secret key is concantination of SEED and PUBLIC
+   ED25519SECRET="$(echo ${ED25519SEED}${ED25519PUBLIC} | base64 -d | base64 -w 0)"
+ 
+@@ -725,7 +725,7 @@ gen_ed25519_keys ()
+ 
+ gen_ed25519_random_public()
+ {
+-  openssl genpkey -algorithm ED25519 | openssl pkey -outform DER | tail -c 32 | base64
++  @openssl@ genpkey -algorithm ED25519 | @openssl@ pkey -outform DER | tail -c 32 | base64
+ }
+ 
+ is_bare_user_only_repo () {
 diff --git a/tests/test-basic-user-only.sh b/tests/test-basic-user-only.sh
 index f65094fd..105be893 100755
 --- a/tests/test-basic-user-only.sh
diff --git a/pkgs/tools/misc/otfcc/default.nix b/pkgs/tools/misc/otfcc/default.nix
index c3ca53616f7..dc7e3effe0a 100644
--- a/pkgs/tools/misc/otfcc/default.nix
+++ b/pkgs/tools/misc/otfcc/default.nix
@@ -13,16 +13,16 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ premake5 ];
 
-  # Don’t guess where our makefiles will end up. Just use current
-  # directory.
-  patchPhase = ''
-    substituteInPlace premake5.lua \
-      --replace 'location "build/gmake"' 'location "."'
-  '';
+  patches = [
+    ./fix-aarch64.patch
+    ./move-makefiles.patch
+  ];
+
+  buildFlags = stdenv.lib.optional stdenv.isAarch64 [ "config=release_arm" ];
 
   installPhase = ''
     mkdir -p $out/bin
-    cp bin/release-x*/otfcc* $out/bin/
+    cp bin/release-*/otfcc* $out/bin/
   '';
 
   enableParallelBuilding = true;
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     description = "Optimized OpenType builder and inspector";
     homepage = "https://github.com/caryll/otfcc";
     license = licenses.asl20;
-    platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
+    platforms = [ "aarch64-linux" "i686-linux" "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ jfrankenau ttuegel ];
   };
 
diff --git a/pkgs/tools/misc/otfcc/fix-aarch64.patch b/pkgs/tools/misc/otfcc/fix-aarch64.patch
new file mode 100644
index 00000000000..80fcb625658
--- /dev/null
+++ b/pkgs/tools/misc/otfcc/fix-aarch64.patch
@@ -0,0 +1,22 @@
+diff --git a/premake5.lua b/premake5.lua
+index 997fd79..54a20a0 100644
+--- a/premake5.lua
++++ b/premake5.lua
+@@ -49,7 +49,7 @@ end
+ workspace "otfcc"
+ 	configurations { "release", "debug" }
+ 	
+-	platforms { "x64", "x86" }
++	platforms { "x64", "x86", "arm" }
+ 	filter "action:xcode4"
+ 		platforms { "x64" }
+ 	filter {}
+@@ -67,6 +67,8 @@ workspace "otfcc"
+ 		architecture "x86"
+ 	filter "platforms:x64"
+ 		architecture "x64"
++	filter "platforms:arm"
++		architecture "arm"
+ 	filter {}
+ 	
+ 	filter "action:vs2017"
diff --git a/pkgs/tools/misc/otfcc/move-makefiles.patch b/pkgs/tools/misc/otfcc/move-makefiles.patch
new file mode 100644
index 00000000000..961c47b3b45
--- /dev/null
+++ b/pkgs/tools/misc/otfcc/move-makefiles.patch
@@ -0,0 +1,13 @@
+diff --git a/premake5.lua b/premake5.lua
+index 997fd79..54a20a0 100644
+--- a/premake5.lua
++++ b/premake5.lua
+@@ -88,7 +90,7 @@ workspace "otfcc"
+ 		flags { "StaticRuntime" }
+ 		includedirs { "dep/polyfill-msvc" }
+ 	filter "action:gmake"
+-		location "build/gmake"
++		location "."
+ 	filter "action:xcode4"
+ 		location "build/xcode"
+ 	filter {}
diff --git a/pkgs/tools/misc/page/default.nix b/pkgs/tools/misc/page/default.nix
index 07109515c5c..c93084a16d7 100644
--- a/pkgs/tools/misc/page/default.nix
+++ b/pkgs/tools/misc/page/default.nix
@@ -26,7 +26,6 @@ rustPlatform.buildRustPackage rec {
     description = "Use neovim as pager";
     homepage = "https://github.com/I60R/page";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = [ maintainers.s1341 ];
   };
 }
diff --git a/pkgs/tools/misc/pandoc-plantuml-filter/default.nix b/pkgs/tools/misc/pandoc-plantuml-filter/default.nix
new file mode 100644
index 00000000000..61a0f14d597
--- /dev/null
+++ b/pkgs/tools/misc/pandoc-plantuml-filter/default.nix
@@ -0,0 +1,26 @@
+{ buildPythonApplication
+, fetchPypi
+, pandocfilters
+, lib
+}:
+
+buildPythonApplication rec {
+  pname = "pandoc-plantuml-filter";
+  version = "0.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "08673mfwxsw6s52mgglbdz7ybb68svqyr3s9w97d7rifbwvvc9ia";
+  };
+
+  propagatedBuildInputs = [
+    pandocfilters
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/timofurrer/pandoc-plantuml-filter";
+    description = "Pandoc filter which converts PlantUML code blocks to PlantUML images.";
+    license = licenses.mit;
+    maintainers = with maintainers; [ cmcdragonkai ];
+  };
+}
diff --git a/pkgs/tools/misc/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix
index 059b43baec3..e99f2aa12d5 100644
--- a/pkgs/tools/misc/parallel/default.nix
+++ b/pkgs/tools/misc/parallel/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, perl, makeWrapper, procps }:
 
 stdenv.mkDerivation rec {
-  name = "parallel-20200522";
+  name = "parallel-20200822";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${name}.tar.bz2";
-    sha256 = "10is46v5dpccxibby0zikg1q68mdwpmgdpxk796zka93idd6id29";
+    sha256 = "02dy46g6f05p7s2qs8h6yg20p1zl3flxxf77n5jw74l3h1m24m4n";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/tools/misc/pg_flame/default.nix b/pkgs/tools/misc/pg_flame/default.nix
index 6fe2e814fa4..b8345210e59 100644
--- a/pkgs/tools/misc/pg_flame/default.nix
+++ b/pkgs/tools/misc/pg_flame/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "1rkx20winh66y2m7i7q13jpr83044i2d1pfd5p5l5kkpsix5mra5";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Flamegraph generator for Postgres EXPLAIN ANALYZE output";
     homepage = "https://github.com/mgartner/pg_flame";
     license = licenses.asl20;
     maintainers = with maintainers; [ filalex77 ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/misc/pgcenter/default.nix b/pkgs/tools/misc/pgcenter/default.nix
index 89f1e606e63..a84ad1fadb0 100644
--- a/pkgs/tools/misc/pgcenter/default.nix
+++ b/pkgs/tools/misc/pgcenter/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "1mzvpr12qh9668iz97p62zl4zhlrcyfgwr4a9zg9irj585pkb5x2";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = "https://pgcenter.org/";
     description = "Command-line admin tool for observing and troubleshooting PostgreSQL";
     license = licenses.bsd3;
     maintainers = [ maintainers.marsam ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/misc/pgmetrics/default.nix b/pkgs/tools/misc/pgmetrics/default.nix
index 9323ea0b9e4..726c9526224 100644
--- a/pkgs/tools/misc/pgmetrics/default.nix
+++ b/pkgs/tools/misc/pgmetrics/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "pgmetrics";
-  version = "1.9.2";
+  version = "1.9.3";
 
   src = fetchFromGitHub {
     owner  = "rapidloop";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "1prhzmxrvypqdbxjr9c3207w1c88z3kwsrr2rcbh1y7fx5rrspxv";
+    sha256 = "1g0kdvc93ij155r3g7cd9f5p1x33vdi9p40403waanq5wiavjnzq";
   };
 
   vendorSha256 = "16x33fmh4q993rw0jr65337yimska4fwgyyw3kmq84q0x28a3zg5";
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
   meta = with stdenv.lib; {
@@ -21,4 +23,4 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/misc/phoronix-test-suite/default.nix b/pkgs/tools/misc/phoronix-test-suite/default.nix
index 83e96d8f9e6..bea73610dda 100644
--- a/pkgs/tools/misc/phoronix-test-suite/default.nix
+++ b/pkgs/tools/misc/phoronix-test-suite/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "phoronix-test-suite";
-  version = "9.6.1";
+  version = "9.8.0";
 
   src = fetchurl {
     url = "https://phoronix-test-suite.com/releases/${pname}-${version}.tar.gz";
-    sha256 = "1qnci0bipzq68mwfgmm7kcxjxcpfdrqf705am2jsj1mfd82y7yla";
+    sha256 = "05q01cr4a2mmyski50pqna9sgw2jy93fgfpjwkhbkc09na6400sq";
   };
 
   buildInputs = [ php ];
diff --git a/pkgs/tools/misc/phraseapp-client/default.nix b/pkgs/tools/misc/phraseapp-client/default.nix
index 35bd84005b5..8e1787f29a8 100644
--- a/pkgs/tools/misc/phraseapp-client/default.nix
+++ b/pkgs/tools/misc/phraseapp-client/default.nix
@@ -21,7 +21,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     homepage = "http://docs.phraseapp.com";
     description = "PhraseApp API v2 Command Line Client";
-    platforms = platforms.all;
     license = licenses.mit;
     maintainers = with maintainers; [ manveru ];
   };
diff --git a/pkgs/tools/misc/pistol/default.nix b/pkgs/tools/misc/pistol/default.nix
index 5c92b70c098..dfbe5536bcc 100644
--- a/pkgs/tools/misc/pistol/default.nix
+++ b/pkgs/tools/misc/pistol/default.nix
@@ -6,16 +6,18 @@
 
 buildGoModule rec {
   pname = "pistol";
-  version = "0.1.2";
+  version = "0.1.4";
 
   src = fetchFromGitHub {
     owner = "doronbehar";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ar8c7s8ihcwrwfspmqw7cb5560wkbdc5qyvddkx8lj03cjhcslj";
+    sha256 = "1x9wb0gj5l71xz15ia0i2hrnhcpf457i21w41jzw2ink2fbdxp3b";
   };
 
-  vendorSha256 = "1mhxb72fzpa2n88i9h154aci346dgcs2njznkjxchivz28crbqr8";
+  vendorSha256 = "0dg4f9g6895nv3c6d74ijl6hzsyn620ndspbcq7ynvb1z0hsg6iz";
+
+  doCheck = false;
 
   subPackages = [ "cmd/pistol" ];
 
@@ -23,10 +25,12 @@ buildGoModule rec {
     file
   ];
 
+  buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version}" ];
+
   meta = with stdenv.lib; {
     description = "General purpose file previewer designed for Ranger, Lf to make scope.sh redundant";
     homepage = "https://github.com/doronbehar/pistol";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/misc/plantuml/default.nix b/pkgs/tools/misc/plantuml/default.nix
index cb8cf1ec0a8..8689e6467fb 100644
--- a/pkgs/tools/misc/plantuml/default.nix
+++ b/pkgs/tools/misc/plantuml/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, makeWrapper, jre, graphviz }:
 
 stdenv.mkDerivation rec {
-  version = "1.2020.12";
+  version = "1.2020.16";
   pname = "plantuml";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/plantuml/${version}/plantuml.${version}.jar";
-    sha256 = "0c0270kjw8vg8nphharap2p66yl72j5k4k3s5r9klafgp3sg4sjj";
+    sha256 = "0k9dligb0b2kc8rl9k5wp9sh8z1kb8g97v5pfiiwa321lp8y6wpp";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/powerline-go/default.nix b/pkgs/tools/misc/powerline-go/default.nix
index 33ab2bbc729..9ec7c0a32bf 100644
--- a/pkgs/tools/misc/powerline-go/default.nix
+++ b/pkgs/tools/misc/powerline-go/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "0dkgp9vlb76la0j439w0rb548qg5v8648zryk3rqgfhd4qywlk11";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "A Powerline like prompt for Bash, ZSH and Fish";
     license = licenses.gpl3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ sifmelcara ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/misc/pspg/default.nix b/pkgs/tools/misc/pspg/default.nix
index 63acdbfc13b..4af7a0009af 100644
--- a/pkgs/tools/misc/pspg/default.nix
+++ b/pkgs/tools/misc/pspg/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pspg";
-  version = "3.1.2";
+  version = "3.1.3";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = version;
-    sha256 = "1x4x93c8qqalrhaah1rmrspr4gjcgf1sg6kplf9rg1c42mk672f8";
+    sha256 = "16pajhzr4aahyhdzkp9g3ld2insnlk2z2w2pfab8bghw4f69j5xf";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/misc/psrecord/default.nix b/pkgs/tools/misc/psrecord/default.nix
index 7df2b47497f..728314e6e76 100644
--- a/pkgs/tools/misc/psrecord/default.nix
+++ b/pkgs/tools/misc/psrecord/default.nix
@@ -1,11 +1,11 @@
 { lib, buildPythonApplication, fetchPypi, psutil, matplotlib, pytest }:
 buildPythonApplication rec {
   pname = "psrecord";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "151rynca97v5wq1drl2yfrqmqil1km72cizn3159c2ip14626mp6";
+    sha256 = "5d48410e543b71e5dc4677705acc2a753db65814d3ccbdfbca8d5d3a09b053b1";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/tools/misc/pubs/default.nix b/pkgs/tools/misc/pubs/default.nix
index 96d1a5fc6a0..158b56e2a5d 100644
--- a/pkgs/tools/misc/pubs/default.nix
+++ b/pkgs/tools/misc/pubs/default.nix
@@ -2,34 +2,29 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pubs";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "pubs";
     repo = "pubs";
     rev = "v${version}";
-    sha256 = "16zwdqfbmlla6906g3a57a4nj8wnl11fq78r20qms717bzv211j0";
+    sha256 = "0npgsyxj7kby5laznk5ilkrychs3i68y57gphwk48w8k9fvnl3zc";
   };
 
-  patches = [
-    # Fix for bibtexparser 1.1.0
-    (fetchpatch {
-      url = "https://github.com/pubs/pubs/pull/185/commits/e58ae98b93b8364a07fd5f5f452ba88ad332c948.patch";
-      sha256 = "1n7zrk119v395jj8wqg8wlymc9l9pq3v752yy3kam9kflc0aashp";
-    })
-    # Fix test broken by PyYAML 5.1
-    (fetchpatch {
-      url = "https://github.com/pubs/pubs/pull/194/commits/c3cb713ae76528eeeaaeb948fe319a76ab3934d8.patch";
-      sha256 = "05as418m7wzs65839bb91b2jrs8l68z8ldcjcd9cn4b9fcgsf3rk";
-    })
-  ];
-
   propagatedBuildInputs = with python3Packages; [
-    argcomplete dateutil configobj feedparser bibtexparser pyyaml requests six beautifulsoup4
+    argcomplete dateutil configobj feedparser bibtexparser pyyaml requests six 
+    beautifulsoup4
   ];
 
   checkInputs = with python3Packages; [ pyfakefs mock ddt ];
 
+  # Disabling git tests because they expect git to be preconfigured
+  # with the user's details. See 
+  # https://github.com/NixOS/nixpkgs/issues/94663
+  preCheck = ''
+    rm tests/test_git.py
+    '';
+
   meta = with stdenv.lib; {
     description = "Command-line bibliography manager";
     homepage = "https://github.com/pubs/pubs";
diff --git a/pkgs/tools/misc/qt5ct/default.nix b/pkgs/tools/misc/qt5ct/default.nix
index 97793b02557..5b88030849d 100644
--- a/pkgs/tools/misc/qt5ct/default.nix
+++ b/pkgs/tools/misc/qt5ct/default.nix
@@ -4,11 +4,11 @@ let inherit (lib) getDev; in
 
 mkDerivation rec {
   pname = "qt5ct";
-  version = "0.41";
+  version = "1.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "1p2p6116wg5bc0hcbi2sygwlgk0g9idxpci0qdh3p4lb1plk0h7j";
+    sha256 = "1lnx4wqk87lbr6lqc64w5g5ppjjv75kq2r0q0bz9gfpryzdw8xxg";
   };
 
   nativeBuildInputs = [ qmake qttools ];
diff --git a/pkgs/tools/misc/rargs/default.nix b/pkgs/tools/misc/rargs/default.nix
new file mode 100644
index 00000000000..6ebbeb39c6e
--- /dev/null
+++ b/pkgs/tools/misc/rargs/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname   = "rargs";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner  = "lotabout";
+    repo   = pname;
+    rev    = "v${version}";
+    sha256 = "188gj05rbivci1z4z29vwdwxlj2w01v5i4avwrxjnj1dd6mmlbxd";
+  };
+
+  cargoSha256 = "0qzkhx0n28f5wy4fral3adn499q3f10q71cd544s4ghqwqn4khc9";
+
+  doCheck=false;  # `rargs`'s test depends on the deprecated `assert_cli` crate, which in turn is not in Nixpkgs
+
+  meta = with stdenv.lib; {
+    description = "xargs + awk with pattern matching support";
+    homepage    = "https://github.com/lolabout/rargs";
+    license     = with licenses; [ mit ];
+    maintainers = with maintainers; [ pblkt ]; 
+  };
+}
diff --git a/pkgs/tools/misc/remind/default.nix b/pkgs/tools/misc/remind/default.nix
index 46f78ddb093..5c7fa9d4c24 100644
--- a/pkgs/tools/misc/remind/default.nix
+++ b/pkgs/tools/misc/remind/default.nix
@@ -14,11 +14,13 @@ let
   tkremindPatch = optionalString tkremind ''
     substituteInPlace scripts/tkremind --replace "exec wish" "exec ${tk}/bin/wish"
   '';
-in stdenv.mkDerivation {
-  name = "remind-3.1.16";
+in stdenv.mkDerivation rec {
+  pname = "remind";
+  version = "03.03.01";
+
   src = fetchurl {
-    url = "https://dianne.skoll.ca/projects/remind/download/remind-03.01.16.tar.gz";
-    sha256 = "14yavwqmimba8rdpwx3wlav9sfb0v5rcd1iyzqrs08wx07a9pdzf";
+    url = "https://dianne.skoll.ca/projects/remind/download/remind-${version}.tar.gz";
+    sha256 = "0y4l960529sl3sn4r4g36qpy3jk5h1x4algjy7an7sfiqb8n98fi";
   };
 
   nativeBuildInputs = optional tkremind makeWrapper;
diff --git a/pkgs/tools/misc/rockbox-utility/default.nix b/pkgs/tools/misc/rockbox-utility/default.nix
index 995a8b5eb15..6be32e21478 100644
--- a/pkgs/tools/misc/rockbox-utility/default.nix
+++ b/pkgs/tools/misc/rockbox-utility/default.nix
@@ -1,19 +1,20 @@
-{ stdenv, fetchurl, pkgconfig, libusb1
-, qtbase, qttools, makeWrapper, qmake
-, withEspeak ? false, espeak ? null, qt5 }:
+{ stdenv, fetchurl, pkgconfig, cryptopp
+, libusb1, qtbase, qttools, makeWrapper
+, qmake, withEspeak ? false, espeak ? null
+, qt5 }:
 
 let inherit (stdenv.lib) getDev; in
 
 stdenv.mkDerivation  rec {
   pname = "rockbox-utility";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchurl {
     url = "https://download.rockbox.org/rbutil/source/RockboxUtility-v${version}-src.tar.bz2";
-    sha256 = "0k3ycga3b0jnj13whwiip2l0gx32l50pnbh7kfima87nq65aaa5w";
+    sha256 = "0zm9f01a810y7aq0nravbsl0vs9vargwvxnfl4iz9qsqygwlj69y";
   };
 
-  buildInputs = [ libusb1 qtbase qttools ]
+  buildInputs = [ cryptopp libusb1 qtbase qttools ]
     ++ stdenv.lib.optional withEspeak espeak;
   nativeBuildInputs = [ makeWrapper pkgconfig qmake qt5.wrapQtAppsHook ];
 
@@ -24,6 +25,7 @@ stdenv.mkDerivation  rec {
 
   preConfigure = ''
     cd rbutil/rbutilqt
+    lrelease rbutilqt.pro
   '';
 
   installPhase = ''
diff --git a/pkgs/tools/misc/routino/default.nix b/pkgs/tools/misc/routino/default.nix
index aad63b66ec4..8d948734460 100644
--- a/pkgs/tools/misc/routino/default.nix
+++ b/pkgs/tools/misc/routino/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, zlib, bzip2 }:
+{ stdenv, fetchurl, fetchpatch, perl, zlib, bzip2 }:
 
 stdenv.mkDerivation rec {
   pname = "routino";
@@ -9,12 +9,26 @@ stdenv.mkDerivation rec {
     sha256 = "1ccx3s99j8syxc1gqkzsaqkmyf44l7h3adildnc5iq2md7bp8wab";
   };
 
+  patchFlags = [ "-p0" ];
+  patches = stdenv.lib.optionals stdenv.isDarwin [
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/macports/macports-ports/18fd229516a46e7272003acbe555735b2a902db7/gis/routino/files/patch-Makefile_conf.diff";
+      sha256 = "1b7hpa4sizansnwwxq1c031nxwdwh71pg08jl9z9apiab8pjsn53";
+    })
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/macports/macports-ports/18fd229516a46e7272003acbe555735b2a902db7/gis/routino/files/patch-src_Makefile_dylib_extension.diff";
+      sha256 = "1kigxcfr7977baxdsfvrw6q453cpqlzqakhj7av2agxkcvwyilpv";
+    })
+  ];
+
   nativeBuildInputs = [ perl ];
 
   buildInputs = [ zlib bzip2 ];
 
   outputs = [ "out" "doc" ];
 
+  CLANG = stdenv.lib.optionalString stdenv.cc.isClang "1";
+
   makeFlags = [ "prefix=$(out)" ];
 
   meta = with stdenv.lib; {
@@ -22,6 +36,6 @@ stdenv.mkDerivation rec {
     description = "OpenStreetMap Routing Software";
     license = licenses.agpl3;
     maintainers = with maintainers; [ dotlambda ];
-    platforms = with platforms; linux;
+    platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/tools/misc/rpm-ostree/default.nix b/pkgs/tools/misc/rpm-ostree/default.nix
index e04d37ba3c6..d1aaf23a6ec 100644
--- a/pkgs/tools/misc/rpm-ostree/default.nix
+++ b/pkgs/tools/misc/rpm-ostree/default.nix
@@ -40,13 +40,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rpm-ostree";
-  version = "2020.2";
+  version = "2020.4";
 
   outputs = [ "out" "dev" "man" "devdoc" ];
 
   src = fetchurl {
     url = "https://github.com/coreos/${pname}/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "nuEBEVFqr9J+Nf98GZkvNNYOtpMUjKzYrzCc1T2cR3A=";
+    sha256 = "019hjmfjhnvlrnb056fvznnsasnyw5awd594aa2126nbsi1j45dc";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/sd-mux-ctrl/default.nix b/pkgs/tools/misc/sd-mux-ctrl/default.nix
new file mode 100644
index 00000000000..b87a83fcdf9
--- /dev/null
+++ b/pkgs/tools/misc/sd-mux-ctrl/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchgit, cmake, pkgconfig, libftdi1, popt}:
+
+stdenv.mkDerivation rec {
+  pname = "sd-mux-ctrl-unstable";
+  version = "2020-02-17";
+
+  src = fetchgit {
+    url = "https://git.tizen.org/cgit/tools/testlab/sd-mux";
+    rev = "9dd189d973da64e033a0c5c2adb3d94b23153d94";
+    sha256 = "0fxl8m1zkkyxkc2zi8930m0njfgnd04a22acny6vljnzag2shjvg";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [ libftdi1 popt ];
+
+  postInstall = ''
+    install -D -m 644 ../doc/man/sd-mux-ctrl.1 $out/share/man/man1/sd-mux-ctrl.1
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Tool for controlling multiple sd-mux devices";
+    homepage = "https://wiki.tizen.org/SD_MUX";
+    license = licenses.asl20;
+    maintainers =  with maintainers; [ sarcasticadmin ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/misc/shell-hist/default.nix b/pkgs/tools/misc/shell-hist/default.nix
index fd30d0370d8..c4c496b978f 100644
--- a/pkgs/tools/misc/shell-hist/default.nix
+++ b/pkgs/tools/misc/shell-hist/default.nix
@@ -18,6 +18,5 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/jamesmunns/shell-hist";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = [ maintainers.spacekookie ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/silicon/default.nix b/pkgs/tools/misc/silicon/default.nix
index 3fa6551534f..99de1c3d175 100644
--- a/pkgs/tools/misc/silicon/default.nix
+++ b/pkgs/tools/misc/silicon/default.nix
@@ -41,6 +41,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Aloxaf/silicon";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ evanjs ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/skim/default.nix b/pkgs/tools/misc/skim/default.nix
index fca2d35e37c..e89cf366136 100644
--- a/pkgs/tools/misc/skim/default.nix
+++ b/pkgs/tools/misc/skim/default.nix
@@ -1,27 +1,19 @@
-{ stdenv, fetchFromGitHub, rustPlatform, fetchpatch }:
+{ stdenv, fetchFromGitHub, rustPlatform }:
 
 rustPlatform.buildRustPackage rec {
   pname = "skim";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "lotabout";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0xjb8slrlkrzdqvzmf63lq6rgggrjw3hf9an6h8xf6vizz1vfni0";
+    sha256 = "0paxrf03rqzahbpr4gnsj62vl09vcxvw248n9wzhjq14dqlwcr9w";
   };
 
   outputs = [ "out" "vim" ];
 
-  cargoSha256 = "14p4ppbl2mak21jvxpbd1b28jaw2629bc8kv7875cdzy3ksxyji3";
-
-  patches = [
-    # Fix bash completion. Remove with the next release
-    (fetchpatch {
-      url = "https://github.com/lotabout/skim/commit/60ca3484090c2e73a1de396500c73a6ad6e0bde9.patch";
-      sha256 = "07nibr13vmxscbwavrckhcbsvxwkpan4a6ml0qfr1ny36xbc6y3p";
-    })
-  ];
+  cargoSha256 = "0rxxdad60fpwkb4wx5407ihd89wqpf2ldcnp7nsx17xh4brp1l9r";
 
   postPatch = ''
     sed -i -e "s|expand('<sfile>:h:h')|'$out'|" plugin/skim.vim
@@ -47,6 +39,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/lotabout/skim";
     license = licenses.mit;
     maintainers = with maintainers; [ dywedir ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/snapper/default.nix b/pkgs/tools/misc/snapper/default.nix
index fc834c65a9d..ab4aad48556 100644
--- a/pkgs/tools/misc/snapper/default.nix
+++ b/pkgs/tools/misc/snapper/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "snapper";
-  version = "0.8.10";
+  version = "0.8.12";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "snapper";
     rev = "v${version}";
-    sha256 = "0bw8aal3a9823zcwini3an9zdxmf7vm912jbyb95rjac0wilqfw7";
+    sha256 = "0vkzncgyf1l2wcr5qd615qbd0hmclfrblg38mx52m707z3wyv88v";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/somafm-cli/default.nix b/pkgs/tools/misc/somafm-cli/default.nix
new file mode 100644
index 00000000000..312b402ae66
--- /dev/null
+++ b/pkgs/tools/misc/somafm-cli/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetchFromGitHub
+, makeWrapper
+, curl
+, jq
+, mpv
+}:
+
+stdenv.mkDerivation rec {
+  pname = "somafm-cli";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "rockymadden";
+    repo = "somafm-cli";
+    rev = "v${version}";
+    sha256 = "1h5p9qsczgfr450sklh2vkllcpzb7nicbs8ciyvkavh3d7hds0yy";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    install -m0755 -D src/somafm $out/bin/somafm
+    wrapProgram $out/bin/somafm --prefix PATH ":" "${stdenv.lib.makeBinPath [ curl jq mpv ]}";
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Listen to SomaFM in your terminal via pure bash";
+    homepage = "https://github.com/rockymadden/somafm-cli";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/tools/misc/spigot/default.nix b/pkgs/tools/misc/spigot/default.nix
new file mode 100644
index 00000000000..fbed27a2447
--- /dev/null
+++ b/pkgs/tools/misc/spigot/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, stdenv
+, buildPackages
+, fetchgit
+, autoreconfHook
+, gmp
+, ncurses
+, halibut
+, perl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "spigot";
+  version = "20200101";
+  src = fetchgit {
+    url = "https://git.tartarus.org/simon/spigot.git";
+    rev = "b1b0b202b3523b72f0638fb31fd49c47f4abb39c";
+    sha256 = "0lh5v42aia1hvhsqzs515q0anrjc6c2s9bjklfaap5gz0cg59wbv";
+  };
+
+  nativeBuildInputs = [ autoreconfHook halibut perl ];
+
+  configureFlags = [ "--with-gmp" ];
+
+  buildInputs = [ gmp ncurses ];
+
+  strictDeps = true;
+
+  meta = with lib; {
+    description = "A command-line exact real calculator";
+    homepage = "https://www.chiark.greenend.org.uk/~sgtatham/spigot/";
+    license = stdenv.lib.licenses.mit;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = with maintainers; [ mcbeth ];
+  };
+}
diff --git a/pkgs/tools/misc/starship/default.nix b/pkgs/tools/misc/starship/default.nix
index 0112c0ea686..a170eef35fb 100644
--- a/pkgs/tools/misc/starship/default.nix
+++ b/pkgs/tools/misc/starship/default.nix
@@ -3,13 +3,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "0.43.0";
+  version = "0.44.0";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = pname;
     rev = "v${version}";
-    sha256 = "16ch3dhwgwmdalif3cyi3x4vrpww546wspcwc4xi0k7lp2zppbwf";
+    sha256 = "1pxrg5sfqqkvqww3fabq64j1fg03v5fj5yvm2xg2qa5n2f2qwnhi";
   };
 
   nativeBuildInputs = [ installShellFiles ] ++ stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
     done
   '';
 
-  cargoSha256 = "09lq9ngnwg5z2l2y2ah8ng4cl8afb4gy4djwiq9yv61sjlqbr1y2";
+  cargoSha256 = "1b5gsw7jpiqjc7kbwf2kp6h6ks7jcgygrwzvn2akz86z40sskyg3";
 
   preCheck = ''
     substituteInPlace tests/testsuite/common.rs \
@@ -45,6 +45,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://starship.rs";
     license = licenses.isc;
     maintainers = with maintainers; [ bbigras davidtwco filalex77 Frostman marsam ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/staruml/default.nix b/pkgs/tools/misc/staruml/default.nix
index a1e6f57ce3d..90c3c696526 100644
--- a/pkgs/tools/misc/staruml/default.nix
+++ b/pkgs/tools/misc/staruml/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, makeWrapper
+{ stdenv, lib, fetchurl, makeWrapper
 , dpkg, patchelf
 , gtk2, glib, gdk-pixbuf, alsaLib, nss, nspr, GConf, cups, libgcrypt, dbus, systemd
 , libXdamage, expat }:
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
     mkdir -p $out/lib
     ln -s ${stdenv.cc.cc.lib}/lib/libstdc++.so.6 $out/lib/
-    ln -s ${systemd.lib}/lib/libudev.so.1 $out/lib/libudev.so.0
+    ln -s ${lib.getLib systemd}/lib/libudev.so.1 $out/lib/libudev.so.0
 
     for binary in StarUML Brackets-node; do
       ${patchelf}/bin/patchelf \
diff --git a/pkgs/tools/misc/systrayhelper/default.nix b/pkgs/tools/misc/systrayhelper/default.nix
index dd48156d456..a8376356e86 100644
--- a/pkgs/tools/misc/systrayhelper/default.nix
+++ b/pkgs/tools/misc/systrayhelper/default.nix
@@ -36,6 +36,5 @@ buildGoPackage rec {
     license     = licenses.mit;
     # It depends on the inputs, i guess? not sure about solaris, for instance. go supports it though
     # I hope nix can figure this out?! ¯\\_(ツ)_/¯
-    platforms   = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/tealdeer/default.nix b/pkgs/tools/misc/tealdeer/default.nix
index aa8f9be38b6..4f0677846ea 100644
--- a/pkgs/tools/misc/tealdeer/default.nix
+++ b/pkgs/tools/misc/tealdeer/default.nix
@@ -4,25 +4,23 @@
 , pkg-config
 , installShellFiles
 , openssl
-, cacert
 , Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "tealdeer";
-  version = "1.3.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "dbrgn";
     repo = "tealdeer";
     rev = "v${version}";
-    sha256 = "0l16qqkrya22nnm4j3dxyq4gb85i3c07p10s00bpqcvki6n6v6r8";
+    sha256 = "1f37qlw4nxdhlqlqzzb4j11gsv26abk2nk2qhbzj77kp4v2b125x";
   };
 
-  cargoSha256 = "0jvgcf493rmkrh85j0fkf8ffanva80syyxclzkvkrzvvwwj78b5l";
+  cargoSha256 = "0g5fjj677qzhw3nw7f3n5gghsj2y811bdclxpy8aq2n58gbwvhvc";
 
-  buildInputs = [ openssl cacert ]
-    ++ (stdenv.lib.optional stdenv.isDarwin Security);
+  buildInputs = if stdenv.isDarwin then [ Security ] else [ openssl ];
 
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
@@ -32,8 +30,6 @@ rustPlatform.buildRustPackage rec {
     installShellCompletion --zsh --name _tealdeer zsh_tealdeer
   '';
 
-  NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
-
   # disable tests for now since one needs network
   # what is unavailable in sandbox build
   # and i can't disable just this one
@@ -44,6 +40,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dbrgn/tealdeer";
     maintainers = with maintainers; [ davidak ];
     license = with licenses; [ asl20 mit ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/teleconsole/default.nix b/pkgs/tools/misc/teleconsole/default.nix
index b8e984e90c4..374bf9b54b2 100644
--- a/pkgs/tools/misc/teleconsole/default.nix
+++ b/pkgs/tools/misc/teleconsole/default.nix
@@ -22,7 +22,6 @@ buildGoPackage rec {
     homepage = "https://www.teleconsole.com/";
     description = "Share your terminal session with people you trust";
     license = licenses.asl20;
-    platforms = platforms.all;
     # Builds for Aarch64 not possible in the current release due to
     # incompatibilities further up the dependency chain.
     # See:
diff --git a/pkgs/tools/misc/tewisay/default.nix b/pkgs/tools/misc/tewisay/default.nix
index b4f834bdd1a..b63ffb1cd10 100644
--- a/pkgs/tools/misc/tewisay/default.nix
+++ b/pkgs/tools/misc/tewisay/default.nix
@@ -31,6 +31,5 @@ buildGoPackage rec {
     description = "Cowsay replacement with unicode and partial ansi escape support";
     license = stdenv.lib.licenses.cc0;
     maintainers = [ stdenv.lib.maintainers.chiiruno ];
-    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/thin-provisioning-tools/default.nix b/pkgs/tools/misc/thin-provisioning-tools/default.nix
index 0aba67647e0..8df030eafad 100644
--- a/pkgs/tools/misc/thin-provisioning-tools/default.nix
+++ b/pkgs/tools/misc/thin-provisioning-tools/default.nix
@@ -1,33 +1,19 @@
-{ stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, expat, libaio, boost }:
+{ stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, expat, libaio, boost, binutils }:
 
 stdenv.mkDerivation rec {
   pname = "thin-provisioning-tools";
-  version = "0.7.6";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "jthornber";
     repo = "thin-provisioning-tools";
     rev = "v${version}";
-    sha256 = "175mk3krfdmn43cjw378s32hs62gq8fmq549rjmyc651sz6jnj0g";
+    sha256 = "1iwg04rhmdhijmlk5hfl8wvv83115lzb65if6cc1glkkfva8jfjp";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
 
-  buildInputs = [ expat libaio boost ];
-
-  patches = [
-    (fetchpatch {
-      # a) Fix build if limits.h provides definition for PAGE_SIZE, as musl does w/musl per XSI[1] although it's apparently optional [2].
-      #    This value is only provided when it's known to be a constant, to avoid the need to discover the value dynamically.
-      # b) If not using system-provided (kernel headers, or libc headers, or something) use the POSIX approach of querying the value
-      #    dynamically using sysconf(_SC_PAGE_SIZE) instead of hardcoded value that hopefully is correct.
-      # [1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html
-      # [2] http://www.openwall.com/lists/musl/2015/09/11/8
-      url = "https://raw.githubusercontent.com/void-linux/void-packages/a0ece13ad7ab2aae760e09e41e0459bd999a3695/srcpkgs/thin-provisioning-tools/patches/musl.patch";
-      sha256 = "1m8r3vhrnsy8drgs0svs3fgpi3mmxzdcqsv6bmvc0j52cvfqvhvy";
-      extraPrefix = ""; # empty means add 'a/' and 'b/'
-    })
-  ];
+  buildInputs = [ expat libaio boost binutils ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/tools/misc/tmuxp/default.nix b/pkgs/tools/misc/tmuxp/default.nix
index 94cdcf56893..5a14981ef26 100644
--- a/pkgs/tools/misc/tmuxp/default.nix
+++ b/pkgs/tools/misc/tmuxp/default.nix
@@ -4,11 +4,11 @@ with python.pkgs;
 
 buildPythonApplication rec {
   pname = "tmuxp";
-  version = "1.5.4";
+  version = "1.5.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13qnacqlcih731wfrsalbff1g81inkh6sypvabg5gi7gd7mha49p";
+    sha256 = "1jbziyqggbfd5m884lg00h0zi99c6cvjxkl4jzr34c4affr295yd";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/misc/topgrade/default.nix b/pkgs/tools/misc/topgrade/default.nix
index ca146bcf0fc..b7b38766db3 100644
--- a/pkgs/tools/misc/topgrade/default.nix
+++ b/pkgs/tools/misc/topgrade/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "topgrade";
-  version = "4.8.0";
+  version = "5.7.0";
 
   src = fetchFromGitHub {
     owner = "r-darwish";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1rskk3cb253xbdn42ccm5ks39xac4q1hgz67nfi1hpwnavpx5g6p";
+    sha256 = "0nxqi2rykfxhvn8jzprklsc47iilxp1pmm2f17ikfyf5dgi69whb";
   };
 
-  cargoSha256 = "0d00r52qhahdx1yylpri7cm85csvy0bwzspwgwqwgilxcfnf5a16";
+  cargoSha256 = "05afmz2n006331hc8yi2mq9kj574xi1iq6gr983jj75ix7n40rgg";
 
   buildInputs = lib.optional stdenv.isDarwin Foundation;
 
@@ -21,7 +21,6 @@ rustPlatform.buildRustPackage rec {
     description = "Upgrade all the things";
     homepage = "https://github.com/r-darwish/topgrade";
     license = licenses.gpl3;
-    platforms = platforms.all;
     maintainers = with maintainers; [ filalex77 hugoreeves ];
   };
 }
diff --git a/pkgs/tools/misc/umlet/default.nix b/pkgs/tools/misc/umlet/default.nix
index 25d92905bd8..b0edf3e7de0 100644
--- a/pkgs/tools/misc/umlet/default.nix
+++ b/pkgs/tools/misc/umlet/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://www.umlet.com";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/up/default.nix b/pkgs/tools/misc/up/default.nix
index f0f9cf4cee8..b3d275d3081 100644
--- a/pkgs/tools/misc/up/default.nix
+++ b/pkgs/tools/misc/up/default.nix
@@ -15,10 +15,12 @@ buildGoModule rec {
 
   vendorSha256 = "1h3w4i7dyh6yagqmdclvflfq6fx0z880jdnpf28assv7fxd9rjsx";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Ultimate Plumber is a tool for writing Linux pipes with instant live preview";
     homepage = "https://github.com/akavel/up";
     maintainers = with maintainers; [ ma27 ];
     license = licenses.asl20;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/misc/upower-notify/default.nix b/pkgs/tools/misc/upower-notify/default.nix
index 607cb47ed4e..2258f31fd31 100644
--- a/pkgs/tools/misc/upower-notify/default.nix
+++ b/pkgs/tools/misc/upower-notify/default.nix
@@ -10,7 +10,7 @@ buildGoPackage rec {
   pname = "upower-notify";
   version = "20160310-${stdenv.lib.strings.substring 0 7 rev}";
   rev = "14c581e683a7e90ec9fa6d409413c16599a5323c";
-  
+
   goPackagePath = "github.com/omeid/upower-notify";
 
   src = fetchgit {
diff --git a/pkgs/tools/misc/vector/default.nix b/pkgs/tools/misc/vector/default.nix
index c441242885e..ddbd78c699c 100644
--- a/pkgs/tools/misc/vector/default.nix
+++ b/pkgs/tools/misc/vector/default.nix
@@ -37,6 +37,5 @@ rustPlatform.buildRustPackage rec {
     homepage    = "https://github.com/timberio/vector";
     license     = with licenses; [ asl20 ];
     maintainers = with maintainers; [ thoughtpolice ];
-    platforms   = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/void/default.nix b/pkgs/tools/misc/void/default.nix
index f9805531f86..21df532f948 100644
--- a/pkgs/tools/misc/void/default.nix
+++ b/pkgs/tools/misc/void/default.nix
@@ -21,6 +21,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/spacejam/void";
     license = licenses.gpl3;
     maintainers = with maintainers; [ spacekookie ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/vttest/default.nix b/pkgs/tools/misc/vttest/default.nix
index 6a9a12b2a07..6be05cf53a2 100644
--- a/pkgs/tools/misc/vttest/default.nix
+++ b/pkgs/tools/misc/vttest/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "vttest";
-  version = "20200420";
+  version = "20200610";
 
   src = fetchurl {
     urls = [
       "https://invisible-mirror.net/archives/${pname}/${pname}-${version}.tgz"
       "ftp://ftp.invisible-island.net/${pname}/${pname}-${version}.tgz"
     ];
-    sha256 = "03li63v9mbsqn4cw6d769r1a6iaixi80m2c32y32vc9i5k3ik43c";
+    sha256 = "0181lk999gfqk8pkd4yx0qrz9r3k9a0z0i50wcayp7z1n1ivqllb";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/watchexec/default.nix b/pkgs/tools/misc/watchexec/default.nix
index 01993ebed6d..8e3db232feb 100644
--- a/pkgs/tools/misc/watchexec/default.nix
+++ b/pkgs/tools/misc/watchexec/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "watchexec";
-  version = "1.13.1";
+  version = "1.14.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "1idyr3h9dhb67xlhd5bsa7866i75w4jzjbbchq6fd9lqd488bsj7";
+    sha256 = "0nvd8x60nkk8izqy8m8m1fi0x48s9sjh4zfl8d2ig46lqc8n5cpm";
   };
 
-  cargoSha256 = "14lkvfr1yz8g15ffc8j1vvy7q1nwqbkhz2y0fnskwqfzpd17f9gl";
+  cargoSha256 = "08pv7nr471apzy77da1pffdmx2dgf5mbj09302cfmf8sj49saal6";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/misc/websocat/default.nix b/pkgs/tools/misc/websocat/default.nix
index 7870974531e..c936b159963 100644
--- a/pkgs/tools/misc/websocat/default.nix
+++ b/pkgs/tools/misc/websocat/default.nix
@@ -2,17 +2,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "websocat";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "vi";
     repo = "websocat";
     rev = "v${version}";
-    sha256 = "1lmra91ahpk4gamhnbdr066hl4vzwfh5i09fbabzdnxcvylbx8zf";
+    sha256 = "0iilq96bxcb2fsljvlgy47pg514w0jf72ckz39yy3k0gwc1yfcja";
   };
 
   cargoBuildFlags = [ "--features=ssl" ];
-  cargoSha256 = "09chj0bgf4r8v5cjq0hvb84zvh98nrzrh1m0wdqjy5gi7zc30cis";
+  cargoSha256 = "1hsms8rlnds8npr8m0dm21h04ci5ljda09pqb598v7ny3j2dldiq";
 
   nativeBuildInputs = [ pkgconfig makeWrapper ];
   buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security;
@@ -30,6 +30,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/vi/websocat";
     license = licenses.mit;
     maintainers = with maintainers; [ thoughtpolice filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/wlr-randr/default.nix b/pkgs/tools/misc/wlr-randr/default.nix
index c9f43964696..7bdffb6f722 100644
--- a/pkgs/tools/misc/wlr-randr/default.nix
+++ b/pkgs/tools/misc/wlr-randr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wlr-randr";
-  version = "unstable-2019-03-21";
+  version = "0.1.0";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
-    rev = "c4066aa3249963dc7877119cffce10f3fa8b6304";
-    sha256 = "1ahw4sv07xg5rh9vr7j28636iaxs06vnybm3li6y8dz2sky7hk88";
+    rev = "v${version}";
+    sha256 = "10c8zzp78s5bw34vvjhilipa28bsdx3jbyhnxgp8f8kawh3cvgsc";
   };
 
   nativeBuildInputs = [ meson ninja cmake pkgconfig ];
diff --git a/pkgs/tools/misc/wob/default.nix b/pkgs/tools/misc/wob/default.nix
index d9ea0648ebe..a619a43c9f1 100644
--- a/pkgs/tools/misc/wob/default.nix
+++ b/pkgs/tools/misc/wob/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wob";
-  version = "0.8";
+  version = "0.10";
 
   src = fetchFromGitHub {
     owner = "francma";
     repo = pname;
     rev = version;
-    sha256 = "0gzqc75wjm3yj81rm03zkp5lvsmlhhp79qlz85yyan1gcz5spdb6";
+    sha256 = "0v7xm8zd9237v5j5h79pd0x6dkal5fgg1ly9knssjpv3hswwyv40";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config scdoc wayland ];
diff --git a/pkgs/tools/misc/wootility/default.nix b/pkgs/tools/misc/wootility/default.nix
index 00cfd27d2e8..c07de47e477 100644
--- a/pkgs/tools/misc/wootility/default.nix
+++ b/pkgs/tools/misc/wootility/default.nix
@@ -1,15 +1,22 @@
-{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3, udev, wooting-udev-rules }:
-
+{ appimageTools
+, fetchurl
+, lib
+, gsettings-desktop-schemas
+, gtk3
+, libxkbfile
+, udev
+, wooting-udev-rules
+}:
 let
   pname = "wootility";
-  version = "3.4.6";
+  version = "3.5.10";
 in
 appimageTools.wrapType2 rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://s3.eu-west-2.amazonaws.com/wooting-update/wootility-linux-latest/wootility-${version}.AppImage";
-    sha256 = "02ivbgnzr657iqb9hviaylmsym2kki2c84xmqfix3b0awsphn05q";
+    sha256 = "1bhk4jcziis01lyn8dmx93abd6p41gmbrysphcd5810l7zcfz59y";
   };
 
   profile = ''
@@ -19,7 +26,11 @@ appimageTools.wrapType2 rec {
 
   multiPkgs = extraPkgs;
   extraPkgs =
-    pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ ([ udev wooting-udev-rules ]);
+    pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ ([
+      udev
+      wooting-udev-rules
+      libxkbfile
+    ]);
   extraInstallCommands = "mv $out/bin/{${name},${pname}}";
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/xvfb-run/default.nix b/pkgs/tools/misc/xvfb-run/default.nix
index 889ab823a9c..04c1902f3a0 100644
--- a/pkgs/tools/misc/xvfb-run/default.nix
+++ b/pkgs/tools/misc/xvfb-run/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with stdenv.lib; {
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     license = licenses.gpl2;
   };
 }
diff --git a/pkgs/tools/misc/xxv/default.nix b/pkgs/tools/misc/xxv/default.nix
index 6b20c39b185..b22dfc7e4cd 100644
--- a/pkgs/tools/misc/xxv/default.nix
+++ b/pkgs/tools/misc/xxv/default.nix
@@ -35,6 +35,5 @@ rustPlatform.buildRustPackage rec {
     homepage    = "https://chrisvest.github.io/xxv/";
     license     = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ lilyball ];
-    platforms   = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/you-get/default.nix b/pkgs/tools/misc/you-get/default.nix
index 74599dc7d1e..8314dc2c9a3 100644
--- a/pkgs/tools/misc/you-get/default.nix
+++ b/pkgs/tools/misc/you-get/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonApplication rec {
   pname = "you-get";
-  version = "0.4.1432";
+  version = "0.4.1456";
 
   # Tests aren't packaged, but they all hit the real network so
   # probably aren't suitable for a build environment anyway.
@@ -10,7 +10,7 @@ buildPythonApplication rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0i3gsl7wk1cn8jw79gnyv58mrrn0hmkvymrd3ic67z2ackp726s2";
+    sha256 = "14miw5gmj571584rmdzjxf88icmb1psrsfbwpabn8blz8l5aq6bv";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 94f4de6e364..5803de7b52f 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/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 = "2020.06.16.1";
+  version = "2020.09.06";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1q0080cvxpfakgbzigbnl9adnga3jz1sqig2rsiq52rarqbc01px";
+    sha256 = "1827hcp9bvwq7p2f5r0wgkg6yb5fgvr4miyi3d99hkah2afw12za";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
diff --git a/pkgs/tools/misc/yubikey-manager-qt/default.nix b/pkgs/tools/misc/yubikey-manager-qt/default.nix
index 8ebbe75d686..01454b48254 100644
--- a/pkgs/tools/misc/yubikey-manager-qt/default.nix
+++ b/pkgs/tools/misc/yubikey-manager-qt/default.nix
@@ -20,11 +20,11 @@ let inherit (stdenv) lib; in
 
 stdenv.mkDerivation rec {
   pname = "yubikey-manager-qt";
-  version = "1.1.4";
+  version = "1.1.5";
 
   src = fetchurl {
     url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
-    sha256 = "0rbr72741q7fqkr9qmvgj2mi6192ayz7bl935q2bsnqils4wsa3f";
+    sha256 = "1yimlaqvhq34gw6wkqgil0qq8x9zbfzh4psqihjr2d9jaa2wygwy";
   };
 
   nativeBuildInputs = [ wrapQtAppsHook python3.pkgs.wrapPython qmake ];
diff --git a/pkgs/tools/misc/yubikey-personalization/default.nix b/pkgs/tools/misc/yubikey-personalization/default.nix
index 5ef828762f6..69e3d588653 100644
--- a/pkgs/tools/misc/yubikey-personalization/default.nix
+++ b/pkgs/tools/misc/yubikey-personalization/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, libusb1, libyubikey, json_c }:
+{ stdenv, fetchurl, fetchpatch, pkgconfig, libusb1, libyubikey, json_c }:
 
 stdenv.mkDerivation rec {
   pname = "yubikey-personalization";
@@ -9,6 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "14wvlwqnwj0gllkpvfqiy8ns938bwvjsz8x1hmymmx32m074vj0f";
   };
 
+  patches = [
+    # remove after updating to next release
+    (fetchpatch {
+      name = "json-c-0.14-support.patch";
+      url = "https://github.com/Yubico/yubikey-personalization/commit/0aa2e2cae2e1777863993a10c809bb50f4cde7f8.patch";
+      sha256 = "1wnigf3hbq59i15kgxpq3pwrl1drpbj134x81mmv9xm1r44cjva8";
+    })
+  ];
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libusb1 libyubikey json_c ];
 
diff --git a/pkgs/tools/misc/zabbixctl/default.nix b/pkgs/tools/misc/zabbixctl/default.nix
index b74ab51680d..c54456ede3d 100644
--- a/pkgs/tools/misc/zabbixctl/default.nix
+++ b/pkgs/tools/misc/zabbixctl/default.nix
@@ -19,7 +19,6 @@ buildGoPackage rec {
     description = "Most effective way for operating in Zabbix Server";
     homepage = "https://github.com/kovetskiy/zabbixctl";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ mmahut ];
   };
 }
diff --git a/pkgs/tools/misc/zoxide/default.nix b/pkgs/tools/misc/zoxide/default.nix
index ee15786d40c..3e4cbfd8433 100644
--- a/pkgs/tools/misc/zoxide/default.nix
+++ b/pkgs/tools/misc/zoxide/default.nix
@@ -1,32 +1,34 @@
-{ stdenv
+{ lib
 , fetchFromGitHub
 , rustPlatform
-, withFzf ? true, fzf
+, withFzf ? true
+, fzf
 }:
-
-rustPlatform.buildRustPackage rec {
+let
+  version = "0.4.3";
+in
+rustPlatform.buildRustPackage {
   pname = "zoxide";
-  version = "0.4.1";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "ajeetdsouza";
     repo = "zoxide";
     rev = "v${version}";
-    sha256 = "1zfk9y5f12h2d5zwf2z8c95xwhbhc6ayv971875fbxgz1nd8vqb6";
+    sha256 = "1ghdal6pqkp56rqawhj26ch1x4cvnjj032xz3626aiddqgn134zj";
   };
 
-  postPatch = stdenv.lib.optionalString withFzf ''
+  postPatch = lib.optionalString withFzf ''
     substituteInPlace src/fzf.rs \
       --replace '"fzf"' '"${fzf}/bin/fzf"'
   '';
 
-  cargoSha256 = "0z0p3cxxazw19bmk3zw7z2q93p00ywsa2cz1jhy78mn5pq1v95rd";
+  cargoSha256 = "0klnjmda77bq9i9f0rz48jzaw4rcf7hafcjjpb0i570d7hlxnwsr";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A fast cd command that learns your habits";
     homepage = "https://github.com/ajeetdsouza/zoxide";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ysndr cole-h ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/networking/amass/default.nix b/pkgs/tools/networking/amass/default.nix
index 99376cc58ac..d3aa432a45e 100644
--- a/pkgs/tools/networking/amass/default.nix
+++ b/pkgs/tools/networking/amass/default.nix
@@ -5,16 +5,18 @@
 
 buildGoModule rec {
   pname = "amass";
-  version = "3.7.3";
+  version = "3.10.1";
 
   src = fetchFromGitHub {
     owner = "OWASP";
     repo = "Amass";
     rev = "v${version}";
-    sha256 = "083c59yig9z0ksvcm9dvy0mv13k79rgnvqrr5qhbhzjz3bgzy1dq";
+    sha256 = "1djkryx8bz2rg0iqqb30jb122ydiyli2i9xsvcdmd42c47hxg46y";
   };
 
-  vendorSha256 = "1s8g0qqg3m6hdvc5v3s86l3ba5grmyhx0lf2ymi39k5dpcg8l19s";
+  vendorSha256 = "0c3hyvy8s470zvrv49fx0iil59z0xq10dw4vnr55qgbm2k2pay6w";
+
+  doCheck = false;
 
   outputs = [ "out" "wordlists" ];
 
diff --git a/pkgs/tools/networking/assh/default.nix b/pkgs/tools/networking/assh/default.nix
index 7b796a52e3a..caebcb6fe8c 100644
--- a/pkgs/tools/networking/assh/default.nix
+++ b/pkgs/tools/networking/assh/default.nix
@@ -1,11 +1,19 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, openssh, makeWrapper }:
+{ stdenv, buildGoModule, fetchFromGitHub, openssh, makeWrapper }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "assh";
-  version = "2.7.0";
+  version = "2.10.0";
 
-  goPackagePath = "github.com/moul/advanced-ssh-config";
-  subPackages = [ "cmd/assh" ];
+  src = fetchFromGitHub {
+    repo = "advanced-ssh-config";
+    owner = "moul";
+    rev = "v${version}";
+    sha256 = "0qsb5p52v961akshgs1yla2d7lhcbwixv2skqaappdmhj18a23q2";
+  };
+
+  vendorSha256 = "03ycjhal4g7bs9fhzrq01ijj48czvs272qcqkd9farsha5gf0q0b";
+
+  doCheck = false;
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -14,16 +22,15 @@ buildGoPackage rec {
       --prefix PATH : ${openssh}/bin
   '';
 
-  src = fetchFromGitHub {
-    repo = "advanced-ssh-config";
-    owner = "moul";
-    rev = "v${version}";
-    sha256 = "0jfpcr8990lb7kacadbishdkz5l8spw24ksdlb79x34sdbbp3fm6";
-  };
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/assh --help > /dev/null
+  '';
 
   meta = with stdenv.lib; {
     description = "Advanced SSH config - Regex, aliases, gateways, includes and dynamic hosts";
-    homepage = "https://github.com/moul/advanced-ssh-config";
+    homepage = "https://github.com/moul/assh";
+    changelog = "https://github.com/moul/assh/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ zzamboni ];
     platforms = with platforms; linux ++ darwin;
diff --git a/pkgs/tools/networking/asynk/default.nix b/pkgs/tools/networking/asynk/default.nix
deleted file mode 100644
index b37f2133501..00000000000
--- a/pkgs/tools/networking/asynk/default.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ stdenv, fetchurl, python2, python2Packages, makeWrapper }:
-
-stdenv.mkDerivation rec {
-  version = "2.0.0";
-  pname = "ASynK";
-
-  src = fetchurl {
-    name = "${pname}-${version}.tar.gz";
-    url = "https://github.com/skarra/ASynK/archive/v${version}.tar.gz";
-    sha256 = "1bp30437mnls0kzm0525p3bg5nw9alpqrqhw186f6zp9i4y5znp1";
-  };
-
-  propagatedBuildInputs = with python2Packages;
-    [ python2 makeWrapper tornado requests dateutil
-      vobject gdata caldavclientlibrary-asynk ];
-
-  installPhase = ''
-    mkdir -p $out/bin $out/lib
-    cp asynk.py $out/bin/
-    cp state.init.json $out/
-    cp -R config $out/
-    cp lib/*.py $out/lib # */
-    cp -R lib/s $out/lib/
-    cp -R asynk $out/
-
-    substituteInPlace $out/bin/asynk.py \
-      --replace "ASYNK_BASE_DIR    = os.path.dirname(os.path.abspath(__file__))" "ASYNK_BASE_DIR    = \"$out\""
-
-    for file in `find $out/asynk -type f`; do
-      # Oh yeah, tab characters!
-      substituteInPlace $file \
-        --replace 'from   vobject        import vobject' 'from vobject import *' \
-        --replace 'from   vobject    import vobject' 'from vobject import *'
-    done
-
-    wrapProgram "$out/bin/asynk.py" \
-      --prefix PYTHONPATH : "$PYTHONPATH"
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "http://asynk.io/";
-    description = "Flexible contacts synchronization program";
-    license = licenses.agpl3;
-    maintainers = [ ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/tools/networking/bandwhich/default.nix b/pkgs/tools/networking/bandwhich/default.nix
index 5f7c8623712..7e815c6ccf0 100644
--- a/pkgs/tools/networking/bandwhich/default.nix
+++ b/pkgs/tools/networking/bandwhich/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bandwhich";
-  version = "0.15.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "imsnif";
     repo = pname;
     rev = version;
-    sha256 = "09qr8s136ilqa9r5yjys2mnyyprhancn5n4maqmlfbjrz590g6nb";
+    sha256 = "0fhy3zys41bkpjmvhkxf413004hvv2kngcgf4819mw22w14zfvgr";
   };
 
-  cargoSha256 = "0awm79gbip3p2k3qr08n0p9lmmbnibnhvz06qzcj27gvmdxs8xvz";
+  cargoSha256 = "015ff049xb699gig0cwr5i7n8hgw1316dkdpnqd4843h54x7bp5y";
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/tools/networking/bgpq4/default.nix b/pkgs/tools/networking/bgpq4/default.nix
new file mode 100644
index 00000000000..2caeb437f7a
--- /dev/null
+++ b/pkgs/tools/networking/bgpq4/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  pname = "bgpq4";
+  version = "0.0.6";
+
+  src = fetchFromGitHub {
+    owner = "bgp";
+    repo = pname;
+    rev = version;
+    sha256 = "1n6d6xq7vafx1la0fckqv0yjr245ka9dgbcqaz9m6dcdk0fdlkks";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+  ];
+
+  meta = with stdenv.lib; {
+    description = "BGP filtering automation tool";
+    homepage = "https://github.com/bgp/bgpq4";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ vincentbernat ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/pkgs/tools/networking/bukubrow/default.nix b/pkgs/tools/networking/bukubrow/default.nix
index 944fccb0ec5..b8f2d70848d 100644
--- a/pkgs/tools/networking/bukubrow/default.nix
+++ b/pkgs/tools/networking/bukubrow/default.nix
@@ -42,7 +42,6 @@ in rustPlatform.buildRustPackage rec {
     description = "Bukubrow is a WebExtension for Buku, a command-line bookmark manager";
     homepage = "https://github.com/SamHH/bukubrow-host";
     license = licenses.gpl3;
-    platforms = platforms.all;
     maintainers = with maintainers; [ infinisil ];
   };
 }
diff --git a/pkgs/tools/networking/cassowary/default.nix b/pkgs/tools/networking/cassowary/default.nix
index e76a505fe9d..962a46cb27f 100644
--- a/pkgs/tools/networking/cassowary/default.nix
+++ b/pkgs/tools/networking/cassowary/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1qgilmkai9isbbg4pzqic6i8v5z8cay0ilw1gb69z4a6f2q4zhkp";
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
   meta = with lib; {
@@ -22,4 +24,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ hugoreeves ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/networking/chrony/default.nix b/pkgs/tools/networking/chrony/default.nix
index 0a8ae10eb13..6c8254c797b 100644
--- a/pkgs/tools/networking/chrony/default.nix
+++ b/pkgs/tools/networking/chrony/default.nix
@@ -5,11 +5,11 @@ assert stdenv.isLinux -> libcap != null;
 
 stdenv.mkDerivation rec {
   pname = "chrony";
-  version = "3.5";
+  version = "3.5.1";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/chrony/${pname}-${version}.tar.gz";
-    sha256 = "1d9r2dhslll4kzdmxrj0qfgwq1b30d4l3s5cwr8yr93029dpj0jf";
+    sha256 = "19ywl8a3lb2id7lcna5hp2g4pjnfwdc9ihr0fk6i9m45vdq2za0v";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/circus/default.nix b/pkgs/tools/networking/circus/default.nix
index 82c9db90432..ea03f8878b2 100644
--- a/pkgs/tools/networking/circus/default.nix
+++ b/pkgs/tools/networking/circus/default.nix
@@ -1,7 +1,14 @@
-{ stdenv, python3Packages }:
+{ stdenv, python3 }:
 
 let
-  inherit (python3Packages) buildPythonApplication fetchPypi iowait psutil pyzmq tornado_4 mock;
+  python = python3.override {
+    self = python;
+    packageOverrides = self: super: {
+      tornado = super.tornado_4;
+    };
+  };
+
+  inherit (python.pkgs) buildPythonApplication fetchPypi iowait psutil pyzmq tornado mock six;
 in
 
 buildPythonApplication rec {
@@ -23,7 +30,7 @@ buildPythonApplication rec {
 
   doCheck = false; # weird error
 
-  propagatedBuildInputs = [ iowait psutil pyzmq tornado_4 ];
+  propagatedBuildInputs = [ iowait psutil pyzmq tornado six ];
 
   meta = with stdenv.lib; {
     description = "A process and socket manager";
diff --git a/pkgs/tools/networking/clash/default.nix b/pkgs/tools/networking/clash/default.nix
index 17592ec3369..4447ab0f048 100644
--- a/pkgs/tools/networking/clash/default.nix
+++ b/pkgs/tools/networking/clash/default.nix
@@ -2,21 +2,22 @@
 
 buildGoModule rec {
   pname = "clash";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "Dreamacro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0qyfv6h6m86m5bwayj0s1pjldnbagy63zc2ygzpnicihmd58khny";
+    sha256 = "0cbbih035h40hhl7ykmyh9q9nzdqq1p8hmvzd4358cigz1gjc3j2";
   };
 
-  goPackagePath = "github.com/Dreamacro/clash";
-  vendorSha256 = "0ap6wsx23s4q730s6d5cgc4ginh8zj5sd32k0za49fh50v8k8zbh";
+  vendorSha256 = "0s7mhbjfpfmzqf48d7k0d416m39x6fh5ds4q3xnvhcfx5kmdymq6";
+
+  doCheck = false;
 
   buildFlagsArray = [
     "-ldflags="
-    "-X ${goPackagePath}/constant.Version=${version}"
+    "-X github.com/Dreamacro/clash/constant.Version=${version}"
   ];
 
   meta = with stdenv.lib; {
@@ -24,6 +25,5 @@ buildGoModule rec {
     homepage = "https://github.com/Dreamacro/clash";
     license = licenses.gpl3;
     maintainers = with maintainers; [ contrun filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/networking/connman/connman-ncurses/default.nix b/pkgs/tools/networking/connman/connman-ncurses/default.nix
index 7bfb4571e10..1e7f54f9ddb 100644
--- a/pkgs/tools/networking/connman/connman-ncurses/default.nix
+++ b/pkgs/tools/networking/connman/connman-ncurses/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, dbus, json_c, ncurses, connman }:
+{ stdenv, fetchpatch, fetchFromGitHub, autoreconfHook, pkgconfig, dbus, json_c, ncurses, connman }:
 
 stdenv.mkDerivation {
   pname = "connman-ncurses";
@@ -11,12 +11,21 @@ stdenv.mkDerivation {
     sha256 = "1831r0776fv481g8kgy1dkl750pzv47835dw11sslq2k6mm6i9p1";
   };
 
+  patches = [
+    # Fix build with json-c 0.14
+    (fetchpatch {
+      url = "https://github.com/void-linux/void-packages/raw/5830ce60e922b7dced8157ededda8c995adb3bb9/srcpkgs/connman-ncurses/patches/lowercase-boolean.patch";
+      extraPrefix = "";
+      sha256 = "uK83DeRyXS2Y0ZZpTYvYNh/1ZM2QQ7QpajiBztaEuSM=";
+    })
+  ];
+
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
 
   buildInputs = [ dbus ncurses json_c connman ];
 
   NIX_CFLAGS_COMPILE = "-Wno-error";
-  
+
   installPhase = ''
     mkdir -p "$out/bin"
     cp -va connman_ncurses "$out/bin/"
diff --git a/pkgs/tools/networking/corerad/default.nix b/pkgs/tools/networking/corerad/default.nix
index 2b1e94d2c19..4ab266e5495 100644
--- a/pkgs/tools/networking/corerad/default.nix
+++ b/pkgs/tools/networking/corerad/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "corerad";
-  version = "0.2.7";
+  version = "0.2.8";
 
   src = fetchFromGitHub {
     owner = "mdlayher";
     repo = "corerad";
     rev = "v${version}";
-    sha256 = "073hjbwra8ihh11ha5ajqq2r98cc5li4k0xs4p4s055q197zj3aa";
+    sha256 = "053rihi8lqai3z837ddi441yl41lsg1zj9gl62s9vbjmq5l11fjh";
   };
 
-  vendorSha256 = "19hp8xqr50v8h9vblihalvkb9ll8c0v4p071j9j1zkbjhnb07rca";
+  vendorSha256 = "1ra4yfplmgzxzs1nlbm0izg339fjnkfrw071y8w4m6q6wnzdhljb";
+
+  doCheck = false;
 
   # Since the tarball pulled from GitHub doesn't contain git tag information,
   # we fetch the expected tag's timestamp from a file in the root of the
diff --git a/pkgs/tools/networking/croc/default.nix b/pkgs/tools/networking/croc/default.nix
index 8fe208c98bc..54dd51ba918 100644
--- a/pkgs/tools/networking/croc/default.nix
+++ b/pkgs/tools/networking/croc/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "croc";
-  version = "8.0.11";
+  version = "8.3.0";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "09yx7xjhvpyvzwsf859b9yfrxzg01ak3dfavfhmx3h97lrdxprgi";
+    sha256 = "0kl6sbq0lzrvf4wzz5bvz81ncmfw5lm7pjr2r2xx4sws1w006nq2";
   };
 
-  vendorSha256 = "1lqlrsd90475b1wp1krfppi635q5gw1ka8x4d8haanmnlnxkniqf";
+  vendorSha256 = "0qfrc3c4fsg3w2zcpdr93ilknxhshcysvin029va154sq3zmggbn";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index 11a928a3ef1..8e151bc2ead 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -12,6 +12,11 @@
 , brotliSupport ? false, brotli ? null
 }:
 
+# 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
+# files.
+
 assert http2Support -> nghttp2 != null;
 assert idnSupport -> libidn != null;
 assert ldapSupport -> openldap != null;
@@ -29,14 +34,14 @@ assert gssSupport -> libkrb5 != null;
 
 stdenv.mkDerivation rec {
   pname = "curl";
-  version = "7.70.0";
+  version = "7.72.0";
 
   src = fetchurl {
     urls = [
       "https://curl.haxx.se/download/${pname}-${version}.tar.bz2"
       "https://github.com/curl/curl/releases/download/${lib.replaceStrings ["."] ["_"] pname}-${version}/${pname}-${version}.tar.bz2"
     ];
-    sha256 = "1l19b2xmzwjl2fqlbv46kwlz1823miaxczyx2a5lz8k7mmigw2x5";
+    sha256 = "1vq3ay87vayfrv67l7s7h79nm7gwdqhidki0brv5jahhch49g4dd";
   };
 
   outputs = [ "bin" "dev" "out" "man" "devdoc" ];
diff --git a/pkgs/tools/networking/curlie/default.nix b/pkgs/tools/networking/curlie/default.nix
index cb1cf8d97fa..b2c4d46a8ce 100644
--- a/pkgs/tools/networking/curlie/default.nix
+++ b/pkgs/tools/networking/curlie/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "1mxgf004czf65a2mv99gfp27g98xhllmfcz4ynfv66nfkbfz6a8n";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Curlie is a frontend to curl that adds the ease of use of httpie, without compromising on features and performance";
     homepage = "https://curlie.io/";
     maintainers = with maintainers; [ ma27 ];
     license = licenses.mit;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/networking/dd-agent/datadog-agent.nix b/pkgs/tools/networking/dd-agent/datadog-agent.nix
index dc29a95d92b..c8119209692 100644
--- a/pkgs/tools/networking/dd-agent/datadog-agent.nix
+++ b/pkgs/tools/networking/dd-agent/datadog-agent.nix
@@ -65,7 +65,7 @@ in buildGoPackage rec {
 
     wrapProgram "$out/bin/agent" \
       --set PYTHONPATH "$out/${python.sitePackages}" \
-      --prefix LD_LIBRARY_PATH : ${systemd.lib}/lib
+      --prefix LD_LIBRARY_PATH : ${lib.getLib systemd}/lib
   '';
 
   meta = with stdenv.lib; {
@@ -75,7 +75,6 @@ in buildGoPackage rec {
     '';
     homepage    = "https://www.datadoghq.com";
     license     = licenses.bsd3;
-    platforms   = platforms.all;
     maintainers = with maintainers; [ thoughtpolice domenkozar rvl ];
   };
 }
diff --git a/pkgs/tools/networking/dd-agent/datadog-process-agent.nix b/pkgs/tools/networking/dd-agent/datadog-process-agent.nix
index 8f1294eb751..a59f70f633b 100644
--- a/pkgs/tools/networking/dd-agent/datadog-process-agent.nix
+++ b/pkgs/tools/networking/dd-agent/datadog-process-agent.nix
@@ -19,7 +19,6 @@ buildGoPackage rec {
     description = "Live process collector for the DataDog Agent v6";
     homepage    = "https://www.datadoghq.com";
     license     = licenses.bsd3;
-    platforms   = platforms.all;
     maintainers = with maintainers; [ domenkozar rvl ];
   };
 }
diff --git a/pkgs/tools/networking/dnscrypt-proxy2/default.nix b/pkgs/tools/networking/dnscrypt-proxy2/default.nix
index d5b92c17a65..64a58bc15a9 100644
--- a/pkgs/tools/networking/dnscrypt-proxy2/default.nix
+++ b/pkgs/tools/networking/dnscrypt-proxy2/default.nix
@@ -6,6 +6,8 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   src = fetchFromGitHub {
     owner = "DNSCrypt";
     repo = "dnscrypt-proxy";
diff --git a/pkgs/tools/networking/dnsmasq/default.nix b/pkgs/tools/networking/dnsmasq/default.nix
index 055f92141b2..19dbd00c1ee 100644
--- a/pkgs/tools/networking/dnsmasq/default.nix
+++ b/pkgs/tools/networking/dnsmasq/default.nix
@@ -12,11 +12,11 @@ let
   ]);
 in
 stdenv.mkDerivation rec {
-  name = "dnsmasq-2.81";
+  name = "dnsmasq-2.82";
 
   src = fetchurl {
     url = "http://www.thekelleys.org.uk/dnsmasq/${name}.tar.xz";
-    sha256 = "1yzq6anwgr5rlnwydpszb51cyhp2vjq29b24ck19flbwac1sk73l";
+    sha256 = "0cn1xd1s6xs78jmrmwjnh9m6w3q38pk6dyqy2phvasqiyd33cll4";
   };
 
   postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
diff --git a/pkgs/tools/networking/dnsproxy/default.nix b/pkgs/tools/networking/dnsproxy/default.nix
index 8c98f316aae..8f279ff688a 100644
--- a/pkgs/tools/networking/dnsproxy/default.nix
+++ b/pkgs/tools/networking/dnsproxy/default.nix
@@ -2,22 +2,23 @@
 
 buildGoModule rec {
   pname = "dnsproxy";
-  version = "0.29.0";
+  version = "0.32.0";
 
   src = fetchFromGitHub {
     owner = "AdguardTeam";
     repo = pname;
     rev = "v${version}";
-    sha256 = "164l97x1g20a61jkb2dwwmf63md3np9x2m59dri3qf22k4rl4l0d";
+    sha256 = "14iwwg1iqfxjhpw9p3ddq53l901v9l9n2r60q9q6jls8hfqcgsnj";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Simple DNS proxy with DoH, DoT, and DNSCrypt support";
     homepage = "https://github.com/AdguardTeam/dnsproxy";
     license = licenses.gpl3;
     maintainers = with maintainers; [ contrun ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/networking/dsniff/default.nix b/pkgs/tools/networking/dsniff/default.nix
index 4fe381cdd7a..50de41b921c 100644
--- a/pkgs/tools/networking/dsniff/default.nix
+++ b/pkgs/tools/networking/dsniff/default.nix
@@ -14,7 +14,7 @@ let
   };
   pcap = symlinkJoin {
     inherit (libpcap) name;
-    paths = [ libpcap ];
+    paths = [ (libpcap.overrideAttrs(old: { dontDisableStatic = true; })) ];
     postBuild = ''
       cp -rs $out/include/pcap $out/include/net
       # prevent references to libpcap
diff --git a/pkgs/tools/networking/eternal-terminal/default.nix b/pkgs/tools/networking/eternal-terminal/default.nix
index bd39cfba8ae..452a9873bec 100644
--- a/pkgs/tools/networking/eternal-terminal/default.nix
+++ b/pkgs/tools/networking/eternal-terminal/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "eternal-terminal";
-  version = "6.0.7";
+  version = "6.0.11";
 
   src = fetchFromGitHub {
     owner = "MisterTea";
     repo = "EternalTerminal";
     rev = "et-v${version}";
-    sha256 = "03pdspggqxkmz95qb96pig5x0xw18hy9a7ivszydr32ry6kxxx1h";
+    sha256 = "0yjf639ldfaxrw4pbg9avdkhhmcpnx58j3x70zskvgkajny8yqqr";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/networking/findomain/default.nix b/pkgs/tools/networking/findomain/default.nix
index 69e09b60d02..07c7dda6446 100644
--- a/pkgs/tools/networking/findomain/default.nix
+++ b/pkgs/tools/networking/findomain/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "findomain";
-  version = "1.7.0";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "Edu4rdSHL";
     repo = pname;
     rev = version;
-    sha256 = "1q8yxl4y8f787a0q87gxgj1p9lgzhhfk3fgysq9xj8yfvwm8abji";
+    sha256 = "0v6m0c329wmba2fihnqvrmfnrb5b1l4nm6xr0dsjiwsjpclrmy86";
   };
 
-  cargoSha256 = "02d538j13v3f1dc99vpzhby42ps7lig000idwdsxa1mwkjxrf2z2";
+  cargoSha256 = "130kjjig5jsv3kdywj6ag2s55d5hwsslpcnaanrqyl70a6pvgpb2";
 
   nativeBuildInputs = [ installShellFiles perl ];
   buildInputs = lib.optional stdenv.isDarwin Security;
@@ -32,6 +32,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Edu4rdSHL/findomain";
     license = licenses.gpl3;
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/networking/fping/default.nix b/pkgs/tools/networking/fping/default.nix
index 6a63a2047b2..d170ee4cd0e 100644
--- a/pkgs/tools/networking/fping/default.nix
+++ b/pkgs/tools/networking/fping/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "fping-4.2";
+  name = "fping-5.0";
 
   src = fetchurl {
     url = "https://www.fping.org/dist/${name}.tar.gz";
-    sha256 = "0jmnf4vmr43aiwk3h2b5qdsb95gxar8gz1yli8fswnm9nrs9ccvx";
+    sha256 = "1f2prmii4fyl44cfykp40hp4jjhicrhddh9v3dfs11j6nsww0f7d";
   };
 
   configureFlags = [ "--enable-ipv6" "--enable-ipv4" ];
diff --git a/pkgs/tools/networking/frp/default.nix b/pkgs/tools/networking/frp/default.nix
index 588f8a8c1cb..a998b25e3e7 100644
--- a/pkgs/tools/networking/frp/default.nix
+++ b/pkgs/tools/networking/frp/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0pi661mb5vwj16wwxnyx9b0ic7gzby6qfs3y4w00agn6sn5nahx2";
 
+  doCheck = false;
+
   subPackages = [ "cmd/frpc" "cmd/frps" ];
 
   meta = with lib; {
@@ -26,6 +28,5 @@ buildGoModule rec {
     homepage = "https://github.com/fatedier/frp";
     license = licenses.asl20;
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/networking/go-shadowsocks2/default.nix b/pkgs/tools/networking/go-shadowsocks2/default.nix
index 1591b6acf5b..6b55c21b5b0 100644
--- a/pkgs/tools/networking/go-shadowsocks2/default.nix
+++ b/pkgs/tools/networking/go-shadowsocks2/default.nix
@@ -19,6 +19,6 @@ buildGoPackage rec {
     description = "Fresh implementation of Shadowsocks in Go";
     homepage = "https://github.com/shadowsocks/go-shadowsocks2/";
     license = licenses.asl20;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/pkgs/tools/networking/goreplay/default.nix b/pkgs/tools/networking/goreplay/default.nix
new file mode 100644
index 00000000000..3daa6a983b2
--- /dev/null
+++ b/pkgs/tools/networking/goreplay/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, libpcap }:
+
+buildGoPackage rec {
+  pname = "goreplay";
+  version = "1.1.0";
+  rev = "v${version}";
+
+  goPackagePath = "github.com/buger/goreplay";
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner  = "buger";
+    repo   = "goreplay";
+    sha256 = "07nsrx5hwmk6l8bqp48gqk40i9bxf0g4fbmpqbngx6j5f7lpbk2n";
+  };
+
+  buildInputs = [ libpcap ];
+
+  meta = {
+    homepage = "https://github.com/buger/goreplay";
+    license = stdenv.lib.licenses.lgpl3Only;
+    description = "GoReplay is an open-source tool for capturing and replaying live HTTP traffic.";
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ lovek323 ];
+  };
+}
diff --git a/pkgs/tools/networking/grpcui/default.nix b/pkgs/tools/networking/grpcui/default.nix
index 2fc95c76210..be3ed2ea2c6 100644
--- a/pkgs/tools/networking/grpcui/default.nix
+++ b/pkgs/tools/networking/grpcui/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0wih9xvpgqqd82v1pxy5rslrsd6wsl0ys1bi1mf373dnfq5vh5a9";
 
+  doCheck = false;
+
   subPackages = [ "cmd/grpcui" ];
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
diff --git a/pkgs/tools/networking/haproxy/default.nix b/pkgs/tools/networking/haproxy/default.nix
index c43edd040e7..91112a2628e 100644
--- a/pkgs/tools/networking/haproxy/default.nix
+++ b/pkgs/tools/networking/haproxy/default.nix
@@ -11,11 +11,11 @@ assert usePcre -> pcre != null;
 
 stdenv.mkDerivation rec {
   pname = "haproxy";
-  version = "2.1.6";
+  version = "2.2.2";
 
   src = fetchurl {
     url = "https://www.haproxy.org/download/${stdenv.lib.versions.majorMinor version}/src/${pname}-${version}.tar.gz";
-    sha256 = "1pyz4gckdn8982vpb1iiw9agwp2s5p8wc0nn1qh1ic0wq3lrnpg6";
+    sha256 = "1mjld865p4f7i465fcc5c4jclih1c3345a3ylriql8668rd7071r";
   };
 
   buildInputs = [ openssl zlib ]
diff --git a/pkgs/tools/networking/hey/default.nix b/pkgs/tools/networking/hey/default.nix
index 8ed6ecbbf26..22f933a4b65 100644
--- a/pkgs/tools/networking/hey/default.nix
+++ b/pkgs/tools/networking/hey/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   meta = with lib; {
     description = "HTTP load generator, ApacheBench (ab) replacement";
     homepage = "https://github.com/rakyll/hey";
     license = licenses.asl20;
     maintainers = with maintainers; [ filalex77 ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/networking/hping/default.nix b/pkgs/tools/networking/hping/default.nix
index 1ef02b599e8..daa0ba38e9e 100644
--- a/pkgs/tools/networking/hping/default.nix
+++ b/pkgs/tools/networking/hping/default.nix
@@ -1,50 +1,41 @@
-{ stdenv, fetchurl, libpcap, tcl }:
+{ stdenv, fetchFromGitHub, libpcap, withTcl ? true, tcl }:
 
 stdenv.mkDerivation rec {
   pname = "hping";
-  version = "20051105";
+  version = "2014-12-26";
 
-  src = fetchurl {
-    url = "http://www.hping.org/hping3-${version}.tar.gz";
-    sha256 = "1s5f9xd1msx05ibhwaw37jmc7l9fahcxxslqz8a83p0i5ak739pm";
+  src = fetchFromGitHub {
+    owner = "antirez";
+    repo = pname;
+    rev = "3547c7691742c6eaa31f8402e0ccbb81387c1b99"; # there are no tags/releases
+    sha256 = "0y0n1ybij3yg9lfgzcwfmjz1sjg913zcqrv391xx83dm0j80sdpb";
   };
 
-  buildInputs = [ libpcap tcl ];
+  buildInputs = [ libpcap ] ++ stdenv.lib.optional withTcl tcl;
 
-  configurePhase = ''
-    MANPATH="$out/share/man" ./configure
-    sed -i -r -e 's|/usr(/s?bin)|'"$out"'\1|g' Makefile
-  '';
-
-  TCLSH = "${tcl}/bin/tclsh";
-
-  prePatch = ''
-    sed -i -e '/#if.*defined(__i386__)/a \
-      || defined(__x86_64__) \\
-    ' bytesex.h
-
-    sed -i -e 's|#include.*net/bpf.h|#include <pcap/bpf.h>|' \
+  postPatch = ''
+    substituteInPlace Makefile.in --replace "gcc" "$CC"
+    substituteInPlace version.c --replace "RELEASE_DATE" "\"$version\""
+  '' + stdenv.lib.optionalString stdenv.isLinux ''
+    sed -i -e 's|#include <net/bpf.h>|#include <pcap/bpf.h>|' \
       libpcap_stuff.c script.c
-
-    sed -i -r -e 's|"(/usr/(local/)?)?bin/"|"${tcl}/bin"|g' \
-              -e 's!/usr/(local/)?(lib|include)!${tcl}/\2!g' \
-              configure
   '';
 
-  preInstall = ''
-    mkdir -vp "$out/sbin" "$out/share/man/man8"
-  '';
+  configureFlags = [ (if withTcl then "TCLSH=${tcl}/bin/tclsh" else "--no-tcl") ];
 
-  postInstall = ''
-    ln -vs hping3.8.gz "$out/share/man/man8/hping.8.gz"
-    ln -vs hping3.8.gz "$out/share/man/man8/hping2.8.gz"
+  installPhase = ''
+    install -Dm755 hping3 -t $out/sbin
+    ln -s $out/sbin/hping3 $out/sbin/hping
+    ln -s $out/sbin/hping3 $out/sbin/hping2
+    install -Dm644 docs/hping3.8 -t $out/share/man/man8
+    ln -s hping3.8.gz $out/share/man/man8/hping.8.gz
+    ln -s hping3.8.gz $out/share/man/man8/hping2.8.gz
   '';
 
   meta = with stdenv.lib; {
     description = "A command-line oriented TCP/IP packet assembler/analyzer";
     homepage = "http://www.hping.org/";
-    license = licenses.gpl2;
-    platforms = platforms.all;
-    broken = stdenv.isDarwin;
+    license = licenses.gpl2Only;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/networking/i2p/default.nix b/pkgs/tools/networking/i2p/default.nix
index 681d5d0e7a9..4371d37391b 100644
--- a/pkgs/tools/networking/i2p/default.nix
+++ b/pkgs/tools/networking/i2p/default.nix
@@ -2,11 +2,11 @@
 
 let wrapper = stdenv.mkDerivation rec {
   pname = "wrapper";
-  version = "3.5.35";
+  version = "3.5.43";
 
   src = fetchurl {
     url = "https://wrapper.tanukisoftware.com/download/${version}/wrapper_${version}_src.tar.gz";
-    sha256 = "0mjyw9ays9v6lnj21pmfd3qdvd9b6rwxfmw3pg6z0kyf2jadixw2";
+    sha256 = "19cx3854rk7b2056z8pvxnf4simsg5js7czsy2bys7jl6vh2x02b";
   };
 
   buildInputs = [ jdk ];
@@ -32,11 +32,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "i2p";
-  version = "0.9.42";
+  version = "0.9.47";
 
   src = fetchurl {
     url = "https://download.i2p2.de/releases/${version}/i2psource_${version}.tar.bz2";
-    sha256 = "04y71hzkdpjzbac569rhyg1zfx37j0alggbl9gnkaqfbprb2nj1h";
+    sha256 = "0krcdm73qing7z918wpml9sk6dn0284wps2ghkmlrdaklfkavk6v";
   };
 
   buildInputs = [ jdk ant gettext which ];
@@ -77,6 +77,6 @@ stdenv.mkDerivation rec {
     homepage = "https://geti2p.net";
     license = licenses.gpl2;
     platforms = [ "x86_64-linux" "i686-linux" ];
-    maintainers = [ maintainers.joelmo ];
+    maintainers = with maintainers; [ joelmo ];
   };
 }
diff --git a/pkgs/tools/networking/i2p/i2p.patch b/pkgs/tools/networking/i2p/i2p.patch
index 74031eb7aef..3bb4da72917 100644
--- a/pkgs/tools/networking/i2p/i2p.patch
+++ b/pkgs/tools/networking/i2p/i2p.patch
@@ -19,7 +19,7 @@ index eb4995dfe..0186cede3 100644
  
  # Try using the Java binary that I2P was installed with.
  # If it's not found, try looking in the system PATH.
--JAVA=$(which %JAVA_HOME/bin/java || which java)
+-JAVA=$(which "%JAVA_HOME"/bin/java || which java)
 +JAVA=%JAVA%
  
  if [ -z $JAVA ] || [ ! -x $JAVA ]; then
diff --git a/pkgs/tools/networking/i2pd/default.nix b/pkgs/tools/networking/i2pd/default.nix
index b686ea4d04f..5f9f3ceef07 100644
--- a/pkgs/tools/networking/i2pd/default.nix
+++ b/pkgs/tools/networking/i2pd/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub
 , boost, zlib, openssl
 , upnpSupport ? true, miniupnpc ? null
-, aesniSupport ? false
-, avxSupport ? false
+, aesniSupport ? stdenv.hostPlatform.aesSupport
+, avxSupport   ? stdenv.hostPlatform.avxSupport
 }:
 
 assert upnpSupport -> miniupnpc != null;
diff --git a/pkgs/tools/networking/isync/default.nix b/pkgs/tools/networking/isync/default.nix
index 9ce1183d060..44eb5c50ba8 100644
--- a/pkgs/tools/networking/isync/default.nix
+++ b/pkgs/tools/networking/isync/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "isync";
-  version = "1.3.1";
+  version = "1.3.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/isync/${pname}-${version}.tar.gz";
-    sha256 = "1sphd30jplii58y2zmw365bckm6pszmapcy905zhjll1sm1ldjv8";
+    sha256 = "10n8ykag0q3ws6fc15xqyg3v980v5nq3kzpablly2rh2z7vkn8gj";
   };
 
   nativeBuildInputs = [ pkg-config perl ];
diff --git a/pkgs/tools/networking/keepalived/default.nix b/pkgs/tools/networking/keepalived/default.nix
index 076953161a3..11ebe228be8 100644
--- a/pkgs/tools/networking/keepalived/default.nix
+++ b/pkgs/tools/networking/keepalived/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "keepalived";
-  version = "2.0.20";
+  version = "2.1.3";
 
   src = fetchFromGitHub {
     owner = "acassen";
     repo = "keepalived";
     rev = "v${version}";
-    sha256 = "0ijzw56hbac24dhrgjd0hjgf45072imyzq3mcgsirdl3xqjc6x12";
+    sha256 = "1zdfvicpll7a5iw6p12pmdcg8y30mr0j5miycn0nhjp8yzi9hdc5";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/networking/lftp/default.nix b/pkgs/tools/networking/lftp/default.nix
index 3bd61a0bd49..53568615a62 100644
--- a/pkgs/tools/networking/lftp/default.nix
+++ b/pkgs/tools/networking/lftp/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "lftp";
-  version = "4.9.1";
+  version = "4.9.2";
 
   src = fetchurl {
     urls = [
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
       "https://ftp.st.ryukoku.ac.jp/pub/network/ftp/lftp/${pname}-${version}.tar.xz"
       "https://lftp.yar.ru/ftp/${pname}-${version}.tar.xz"
       ];
-    sha256 = "0jq2g8h1bx06ya9fsja748vwb2qrca4wsfrgi3fmaa8hznpgqsar";
+    sha256 = "03b7y0h3mf4jfq5y8zw6hv9v44z3n6i8hc1iswax96y3z7sc85y5";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/networking/linkchecker/default.nix b/pkgs/tools/networking/linkchecker/default.nix
index 6f94e0c63c5..e4f2f168576 100644
--- a/pkgs/tools/networking/linkchecker/default.nix
+++ b/pkgs/tools/networking/linkchecker/default.nix
@@ -1,27 +1,30 @@
-{ stdenv, lib, fetchFromGitHub, python2Packages, gettext }:
+{ stdenv, lib, fetchFromGitHub, python3Packages, gettext }:
 
-python2Packages.buildPythonApplication rec {
+with python3Packages;
+
+buildPythonApplication rec {
   pname = "linkchecker";
-  version = "9.4.0";
+  version = "unstable-2020-08-15";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = "v${version}";
-    sha256 = "1vbwl2vb8dyzki27z3sl5yf9dhdd2cpkg10vbgaz868dhpqlshgs";
+    rev = "0086c28b3a419faa60562f2713346996062c03c2";
+    sha256 = "0am5id8vqlqn1gb9jri0vjgiq5ffgrjq8yzdk1zc98gn2n0397wl";
   };
 
   nativeBuildInputs = [ gettext ];
 
-  propagatedBuildInputs = with python2Packages; [
+  propagatedBuildInputs = [
     ConfigArgParse
     argcomplete
+    beautifulsoup4
     dnspython
     pyxdg
     requests
   ];
 
-  checkInputs = with python2Packages; [
+  checkInputs = [
     parameterized
     pytest
   ];
@@ -29,21 +32,14 @@ python2Packages.buildPythonApplication rec {
   postPatch = ''
     sed -i 's/^requests.*$/requests>=2.2/' requirements.txt
     sed -i "s/'request.*'/'requests >= 2.2'/" setup.py
-    sed -i 's~/usr/lib/python2.7/argparse.py~~g' po/Makefile
   '';
 
   checkPhase = ''
-    runHook preCheck
-
-    # the mime test fails for me...
-    rm tests/test_mimeutil.py
     ${lib.optionalString stdenv.isDarwin ''
       # network tests fails on darwin
       rm tests/test_network.py
     ''}
-    make test PYTESTOPTS="--tb=short" TESTS="tests/test_*.py tests/logger/test_*.py"
-
-    runHook postCheck
+      pytest --ignore=tests/checker/{test_telnet,telnetserver}.py -k 'not TestLoginUrl'
   '';
 
   meta = {
diff --git a/pkgs/tools/networking/mailutils/default.nix b/pkgs/tools/networking/mailutils/default.nix
index 935cadbd7b8..9cf5f91cd6d 100644
--- a/pkgs/tools/networking/mailutils/default.nix
+++ b/pkgs/tools/networking/mailutils/default.nix
@@ -115,6 +115,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.gnu.org/software/mailutils/";
 
     # Some of the dependencies fail to build on {cyg,dar}win.
-    platforms = platforms.gnu ++ platforms.linux;
+    platforms = platforms.gnu ++ platforms.unix;
   };
 }
diff --git a/pkgs/tools/networking/minio-client/default.nix b/pkgs/tools/networking/minio-client/default.nix
index 4e81321dc62..505ecc4c222 100644
--- a/pkgs/tools/networking/minio-client/default.nix
+++ b/pkgs/tools/networking/minio-client/default.nix
@@ -2,20 +2,26 @@
 
 buildGoModule rec {
   pname = "minio-client";
-  version = "2020-04-25T00-43-23Z";
+  version = "2020-08-08T02-33-58Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "mc";
     rev = "RELEASE.${version}";
-    sha256 = "0ff2fyr3787zp0lpgbph064am33py2wzjikzmxd3zwp3y0dic770";
+    sha256 = "15bkl3q0jidrwy04l0cdmha43r9wlxmlqkhmwz98b57rjrq6grql";
   };
 
-  vendorSha256 = "0nfcxz47v5gl0wih59xarhz82nd8wy61c3ijvg2v08ipk29zivcc";
+  vendorSha256 = "1fsx8zl2qkyf1gx3s6giccd86xawx9d1h4jdnyn1m36clsq9jkpc";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
-  buildFlagsArray = [ "-ldflags=-s -w -X github.com/minio/mc/cmd.Version=${version}" ];
+  patchPhase = ''
+    sed -i "s/Version.*/Version = \"${version}\"/g" cmd/build-constants.go
+    sed -i "s/ReleaseTag.*/ReleaseTag = \"RELEASE.${version}\"/g" cmd/build-constants.go
+    sed -i "s/CommitID.*/CommitID = \"${src.rev}\"/g" cmd/build-constants.go
+  '';
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/minio/mc";
@@ -24,4 +30,4 @@ buildGoModule rec {
     platforms = platforms.unix;
     license = licenses.asl20;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/networking/mozwire/default.nix b/pkgs/tools/networking/mozwire/default.nix
new file mode 100644
index 00000000000..6264672cfaa
--- /dev/null
+++ b/pkgs/tools/networking/mozwire/default.nix
@@ -0,0 +1,24 @@
+{ rustPlatform, stdenv, fetchFromGitHub, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "MozWire";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "NilsIrl";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "07icgswmfvrvlm3mkm78pbbk6m2hb73j7ffj7r77whzb11v027v1";
+  };
+
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
+  
+  cargoSha256 = "10lhz7bdlfqj7wgsqnsxdfskms33pvj176fhf4kwci7nb8vgai4b";
+
+  meta = with stdenv.lib; {
+    description = "MozillaVPN configuration manager giving Linux, macOS users (among others), access to MozillaVPN";
+    homepage = "https://github.com/NilsIrl/MozWire";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ siraben nilsirl ];
+  };
+}
diff --git a/pkgs/tools/networking/mu/default.nix b/pkgs/tools/networking/mu/default.nix
index fc693bae212..82a22dd947d 100644
--- a/pkgs/tools/networking/mu/default.nix
+++ b/pkgs/tools/networking/mu/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mu";
-  version = "1.4.10";
+  version = "1.4.13";
 
   src = fetchFromGitHub {
     owner  = "djcb";
     repo   = "mu";
     rev    = version;
-    sha256 = "10vnqlpphjkkiji42sfs954l1zfgwnic7mmpr4nx6yx44z619v0y";
+    sha256 = "03cp2ppj07xpb0c43d3cr8m9jps07mfm8clmlk03sjbxg1widsh0";
   };
 
   postPatch = stdenv.lib.optionalString (batchSize != null) ''
diff --git a/pkgs/tools/networking/nebula/default.nix b/pkgs/tools/networking/nebula/default.nix
index 69fc3e7a8b0..178979b2caf 100644
--- a/pkgs/tools/networking/nebula/default.nix
+++ b/pkgs/tools/networking/nebula/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "094mn1r69c40w7k3lsggjh0dpws9l0j7mgiyjy1lpblkvkyk2azm";
 
+  doCheck = false;
+
   subPackages = [ "cmd/nebula" "cmd/nebula-cert" ];
 
   buildFlagsArray = [ "-ldflags='-X main.Build=${version}'" ];
@@ -37,7 +39,6 @@ buildGoModule rec {
     homepage = "https://github.com/slackhq/nebula";
     license = licenses.mit;
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/networking/netifd/default.nix b/pkgs/tools/networking/netifd/default.nix
index 38591f38fcf..36d1ec7a423 100644
--- a/pkgs/tools/networking/netifd/default.nix
+++ b/pkgs/tools/networking/netifd/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation {
   pname = "netifd";
-  version = "unstable-2020-01-18";
+  version = "unstable-2020-07-11";
 
   src = fetchgit {
     url = "https://git.openwrt.org/project/netifd.git";
-    rev = "1321c1bd8fe921986c4eb39c3783ddd827b79543";
-    sha256 = "178pckyf1cydi6zzr4bmhksv8vyaks91zv9lqqd2z5nkmccl6vf3";
+    rev = "3d9bd73e8c2d8a1f78effbe92dd2495bbd2552c4";
+    sha256 = "085sx1gsigbi1jr19l387rc5p6ja1np6q2gb84khjd4pyiqwk840";
   };
 
   buildInputs = [ libnl libubox uci ubus json_c ];
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
index baf2128153a..f5b12a6cf37 100644
--- a/pkgs/tools/networking/network-manager/default.nix
+++ b/pkgs/tools/networking/network-manager/default.nix
@@ -10,11 +10,11 @@ let
   pythonForDocs = python3.withPackages (pkgs: with pkgs; [ pygobject3 ]);
 in stdenv.mkDerivation rec {
   pname = "network-manager";
-  version = "1.22.10";
+  version = "1.26.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/NetworkManager/${stdenv.lib.versions.majorMinor version}/NetworkManager-${version}.tar.xz";
-    sha256 = "0xyaizyp3yz6x3pladw3nvl3hf4n5g140zx9jnxfp9qvag0wqa9b";
+    sha256 = "0isdqwp58d7r92sqsk7l2vlqwy518n8b7c7z94jk9gc1bdmjf8sj";
   };
 
   outputs = [ "out" "dev" "devdoc" "man" "doc" ];
@@ -41,7 +41,6 @@ in stdenv.mkDerivation rec {
     "-Dcrypto=gnutls"
     "-Dsession_tracking=systemd"
     "-Dmodem_manager=true"
-    "-Dpolkit_agent=true"
     "-Dnmtui=true"
     "-Ddocs=true"
     "-Dtests=no"
@@ -49,12 +48,14 @@ in stdenv.mkDerivation rec {
     # Allow using iwd when configured to do so
     "-Diwd=true"
     "-Dlibaudit=yes-disabled-by-default"
+    # We don't use firewalld in NixOS
+    "-Dfirewalld_zone=false"
   ];
 
   patches = [
     (substituteAll {
       src = ./fix-paths.patch;
-      inherit iputils kmod openconnect ethtool gnused systemd;
+      inherit iputils kmod openconnect ethtool gnused systemd polkit;
       inherit runtimeShell;
     })
 
diff --git a/pkgs/tools/networking/network-manager/fix-install-paths.patch b/pkgs/tools/networking/network-manager/fix-install-paths.patch
index 02a006c1c3d..4e80247cf14 100644
--- a/pkgs/tools/networking/network-manager/fix-install-paths.patch
+++ b/pkgs/tools/networking/network-manager/fix-install-paths.patch
@@ -1,8 +1,8 @@
 diff --git a/meson.build b/meson.build
-index 0af69f35d..9ab239c8a 100644
+index a2d925a7e..5a65cd2fe 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -912,9 +912,9 @@ meson.add_install_script(
+@@ -959,9 +959,9 @@ meson.add_install_script(
    join_paths('tools', 'meson-post-install.sh'),
    nm_datadir,
    nm_bindir,
diff --git a/pkgs/tools/networking/network-manager/fix-paths.patch b/pkgs/tools/networking/network-manager/fix-paths.patch
index af35fc0a36b..60ee437f6f4 100644
--- a/pkgs/tools/networking/network-manager/fix-paths.patch
+++ b/pkgs/tools/networking/network-manager/fix-paths.patch
@@ -1,8 +1,21 @@
+diff --git a/clients/common/nm-polkit-listener.c b/clients/common/nm-polkit-listener.c
+index ace205e80..f19c1dea0 100644
+--- a/clients/common/nm-polkit-listener.c
++++ b/clients/common/nm-polkit-listener.c
+@@ -552,7 +552,7 @@ begin_authentication (AuthRequest *request)
+ {
+ 	int fd_flags;
+ 	const char *helper_argv[] = {
+-		POLKIT_PACKAGE_PREFIX "/lib/polkit-1/polkit-agent-helper-1",
++		"/run/wrappers/bin/polkit-agent-helper-1",
+ 		request->username,
+ 		NULL,
+ 	};
 diff --git a/clients/common/nm-vpn-helpers.c b/clients/common/nm-vpn-helpers.c
-index ffae5f553..ba1093e4d 100644
+index 74ff52bb2..638857df4 100644
 --- a/clients/common/nm-vpn-helpers.c
 +++ b/clients/common/nm-vpn-helpers.c
-@@ -203,10 +203,7 @@ nm_vpn_openconnect_authenticate_helper (const char *host,
+@@ -213,10 +213,7 @@ nm_vpn_openconnect_authenticate_helper (const char *host,
  		NULL,
  	};
  
@@ -40,35 +53,25 @@ index 91ebd9a36..5201a56c3 100644
  ExecStart=@sbindir@/NetworkManager --no-daemon
  Restart=on-failure
 diff --git a/libnm/meson.build b/libnm/meson.build
-index 51ca46d2b..0c04cc216 100644
+index d3991ab19..58f01c666 100644
 --- a/libnm/meson.build
 +++ b/libnm/meson.build
-@@ -261,7 +261,7 @@ if enable_introspection
-     name,
-     input: libnm_gir[0],
-     output: name,
--    command: [generate_setting_docs_env, python.path(), generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT@', '--output', '@OUTPUT@'],
-+    command: [generate_setting_docs_env, generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT@', '--output', '@OUTPUT@'],
-     depends: libnm_gir,
-   )
- 
-@@ -270,7 +270,7 @@ if enable_introspection
-     name,
-     input: [libnm_gir[0], nm_settings_docs_overrides],
-     output: name,
--    command: [generate_setting_docs_env, python.path(), generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT0@', '--overrides', '@INPUT1@', '--output', '@OUTPUT@'],
-+    command: [generate_setting_docs_env, generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT0@', '--overrides', '@INPUT1@', '--output', '@OUTPUT@'],
-     depends: libnm_gir,
-   )
- endif
+@@ -283,7 +283,6 @@ if enable_introspection
+     output: 'nm-settings-docs-gir.xml',
+     command: [
+       generate_setting_docs_env,
+-      python.path(),
+       join_paths(meson.source_root(), 'tools', 'generate-docs-nm-settings-docs-gir.py'),
+       '--lib-path', meson.current_build_dir(),
+       '--gir', '@INPUT@',
 diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
-index e7a4a059a..0a8f8b7c6 100644
+index de09e4807..2755db165 100644
 --- a/src/devices/nm-device.c
 +++ b/src/devices/nm-device.c
-@@ -13179,14 +13179,14 @@ nm_device_start_ip_check (NMDevice *self)
+@@ -13705,14 +13705,14 @@ nm_device_start_ip_check (NMDevice *self)
  			gw = nm_ip4_config_best_default_route_get (priv->ip_config_4);
  			if (gw) {
- 				nm_utils_inet4_ntop (NMP_OBJECT_CAST_IP4_ROUTE (gw)->gateway, buf);
+ 				_nm_utils_inet4_ntop (NMP_OBJECT_CAST_IP4_ROUTE (gw)->gateway, buf);
 -				ping_binary = nm_utils_find_helper ("ping", "/usr/bin/ping", NULL);
 +				ping_binary = "@iputils@/bin/ping";
  				log_domain = LOGD_IP4;
@@ -76,14 +79,14 @@ index e7a4a059a..0a8f8b7c6 100644
  		} else if (priv->ip_config_6 && priv->ip_state_6 == NM_DEVICE_IP_STATE_DONE) {
  			gw = nm_ip6_config_best_default_route_get (priv->ip_config_6);
  			if (gw) {
- 				nm_utils_inet6_ntop (&NMP_OBJECT_CAST_IP6_ROUTE (gw)->gateway, buf);
+ 				_nm_utils_inet6_ntop (&NMP_OBJECT_CAST_IP6_ROUTE (gw)->gateway, buf);
 -				ping_binary = nm_utils_find_helper ("ping6", "/usr/bin/ping6", NULL);
 +				ping_binary = "@iputils@/bin/ping";
  				log_domain = LOGD_IP6;
  			}
  		}
 diff --git a/src/nm-core-utils.c b/src/nm-core-utils.c
-index fb92289f0..c91b27b09 100644
+index 3950c3c3a..a9436d75a 100644
 --- a/src/nm-core-utils.c
 +++ b/src/nm-core-utils.c
 @@ -336,7 +336,7 @@ nm_utils_modprobe (GError **error, gboolean suppress_error_logging, const char *
diff --git a/pkgs/tools/networking/network-manager/iodine/default.nix b/pkgs/tools/networking/network-manager/iodine/default.nix
index 47e5a2f4181..95d015f6964 100644
--- a/pkgs/tools/networking/network-manager/iodine/default.nix
+++ b/pkgs/tools/networking/network-manager/iodine/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitLab, substituteAll, autoreconfHook, iodine, intltool, pkgconfig, networkmanager, libsecret, gtk3
-, withGnome ? true, gnome3, fetchpatch, libnma }:
+, withGnome ? true, gnome3, fetchpatch, libnma, glib }:
 
 let
   pname = "NetworkManager-iodine";
@@ -27,7 +27,7 @@ in stdenv.mkDerivation {
     })
   ];
 
-  buildInputs = [ iodine networkmanager ]
+  buildInputs = [ iodine networkmanager glib ]
     ++ stdenv.lib.optionals withGnome [ gtk3 libsecret libnma ];
 
   nativeBuildInputs = [ intltool autoreconfHook pkgconfig ];
diff --git a/pkgs/tools/networking/network-manager/libnma/default.nix b/pkgs/tools/networking/network-manager/libnma/default.nix
index 727c18e92c1..7d7889f9a5b 100644
--- a/pkgs/tools/networking/network-manager/libnma/default.nix
+++ b/pkgs/tools/networking/network-manager/libnma/default.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libnma";
-  version = "1.8.28";
+  version = "1.8.30";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja";
+    sha256 = "1d5gzn7ss5vi0bhc8s4i5gsrck1ajslajam5jxfqazg094mffcys";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/network-manager/vpnc/default.nix b/pkgs/tools/networking/network-manager/vpnc/default.nix
index 9c1d046e4fb..6cd0d2e75f5 100644
--- a/pkgs/tools/networking/network-manager/vpnc/default.nix
+++ b/pkgs/tools/networking/network-manager/vpnc/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, substituteAll, vpnc, intltool, pkgconfig, networkmanager, libsecret
-, gtk3, withGnome ? true, gnome3, kmod, file, fetchpatch, libnma }:
+, gtk3, withGnome ? true, gnome3, glib, kmod, file, fetchpatch, libnma }:
 let
   pname = "NetworkManager-vpnc";
   version = "1.2.6";
@@ -23,7 +23,7 @@ in stdenv.mkDerivation {
     })
   ];
 
-  buildInputs = [ vpnc networkmanager ]
+  buildInputs = [ vpnc networkmanager glib ]
     ++ stdenv.lib.optionals withGnome [ gtk3 libsecret libnma ];
 
   nativeBuildInputs = [ intltool pkgconfig file ];
diff --git a/pkgs/tools/networking/nfdump/default.nix b/pkgs/tools/networking/nfdump/default.nix
index 22d84a7f699..11ba442393d 100644
--- a/pkgs/tools/networking/nfdump/default.nix
+++ b/pkgs/tools/networking/nfdump/default.nix
@@ -2,7 +2,7 @@
 , autoconf, automake, libtool, pkg-config
 , bzip2, libpcap, flex, yacc }:
 
-let version = "1.6.20"; in
+let version = "1.6.21"; in
 
 stdenv.mkDerivation {
   pname = "nfdump";
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     owner = "phaag";
     repo = "nfdump";
     rev = "v${version}";
-    sha256 = "06pywhymb92l0kac9djjpvlwrn1c7bxs3wm5yzrlaf815175ar3c";
+    sha256 = "1ifxnpyzyn8nd6n44pjcw0rwck392nzj1gwa4zzqvvgzj477m6ha";
   };
 
   nativeBuildInputs = [ autoconf automake flex libtool pkg-config yacc ];
diff --git a/pkgs/tools/networking/ngrok-2/default.nix b/pkgs/tools/networking/ngrok-2/default.nix
index f17849ef757..d9c1acc374c 100644
--- a/pkgs/tools/networking/ngrok-2/default.nix
+++ b/pkgs/tools/networking/ngrok-2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, patchelfUnstable }:
+{ stdenv, fetchurl }:
 
 with stdenv.lib;
 
@@ -24,8 +24,6 @@ stdenv.mkDerivation {
 
   sourceRoot = ".";
 
-  nativeBuildInputs = optionals stdenv.isLinux [ patchelfUnstable ];
-
   unpackPhase = "cp $src ngrok";
 
   buildPhase = "chmod a+x ngrok";
diff --git a/pkgs/tools/networking/ntp/default.nix b/pkgs/tools/networking/ntp/default.nix
index d118227c326..a7deaf7b694 100644
--- a/pkgs/tools/networking/ntp/default.nix
+++ b/pkgs/tools/networking/ntp/default.nix
@@ -8,11 +8,11 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "ntp-4.2.8p14";
+  name = "ntp-4.2.8p15";
 
   src = fetchurl {
     url = "https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/${name}.tar.gz";
-    sha256 = "1dsfbrad5adwjnm3k0y0ip8dzs7r2nmw66vjil8gvapnh7qf8q0r";
+    sha256 = "06cwhimm71safmwvp6nhxp6hvxsg62whnbgbgiflsqb8mgg40n7n";
   };
 
   # The hardcoded list of allowed system calls for seccomp is
diff --git a/pkgs/tools/networking/obfs4/default.nix b/pkgs/tools/networking/obfs4/default.nix
index 784c6d5c638..0a74deea17d 100644
--- a/pkgs/tools/networking/obfs4/default.nix
+++ b/pkgs/tools/networking/obfs4/default.nix
@@ -12,10 +12,12 @@ buildGoModule rec {
 
   vendorSha256 = "0h3gjxv26pc6cysvy1hny2f4abw6i847dk8fx0m113ixx9qghk87";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "A pluggable transport proxy";
     homepage = "https://www.torproject.org/projects/obfsproxy";
     repositories.git = "https://git.torproject.org/pluggable-transports/obfs4.git";
     maintainers = with maintainers; [ phreedom thoughtpolice ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/networking/oneshot/default.nix b/pkgs/tools/networking/oneshot/default.nix
new file mode 100644
index 00000000000..f02370ab69d
--- /dev/null
+++ b/pkgs/tools/networking/oneshot/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "oneshot";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "raphaelreyna";
+    repo = "oneshot";
+    rev = "v${version}";
+    sha256 = "11xmvqj7md970rjhkg1zj2w6yqpw6cj83aw37a82sfdn90kyhg9d";
+  };
+
+  vendorSha256 = "1cxr96yrrmz37r542mc5376jll9lqjqm18k8761h9jqfbzmh9rkp";
+
+  doCheck = false;
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "A first-come-first-serve single-fire HTTP server";
+    homepage = "https://github.com/raphaelreyna/oneshot";
+    license = licenses.mit;
+    maintainers = with maintainers; [ edibopp ];
+  };
+}
diff --git a/pkgs/tools/networking/openresolv/default.nix b/pkgs/tools/networking/openresolv/default.nix
index a80f94d2e9f..58985f73f30 100644
--- a/pkgs/tools/networking/openresolv/default.nix
+++ b/pkgs/tools/networking/openresolv/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "openresolv";
-  version = "3.10.0";
+  version = "3.11.0";
 
   src = fetchurl {
     url = "mirror://roy/openresolv/${pname}-${version}.tar.xz";
-    sha256 = "01ms6c087la4hk0f0w6n2vpsb7dg4kklah2rqyhz88p0vr9bqy20";
+    sha256 = "0g7wb2880hbr0x99n73m7fgjm7lcdbpxfy2i620zxcq73qfrvspa";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index 1703e8c7559..1748a2d21d0 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -1,4 +1,12 @@
-{ stdenv, fetchurl, fetchpatch, zlib, openssl, libedit, pkgconfig, pam, autoreconfHook
+{ stdenv
+, fetchurl
+, fetchpatch
+, zlib
+, openssl
+, libedit
+, pkgconfig
+, pam
+, autoreconfHook
 , etcDir ? null
 , hpnSupport ? false
 , withKerberos ? true
@@ -6,33 +14,35 @@
 , kerberos
 , libfido2
 , withFIDO ? stdenv.hostPlatform.isUnix && !stdenv.hostPlatform.isMusl
-, linkOpenssl? true
+, linkOpenssl ? true
 }:
 
 let
 
+  version = "8.3p1";
+
   # **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%258.2p1-1/debian/patches/gssapi.patch";
-    sha256 = "081gryqkfr5zr4f5m4v0piq1sxz06sb38z5lqxccgpivql7pa8d8";
+    url = "https://salsa.debian.org/ssh-team/openssh/raw/debian/1%25${version}-1/debian/patches/gssapi.patch";
+    sha256 = "0j22ccg6msyi88mpsb6x0il5cg8v2b7qdah57ninbwx5isyld80l";
   };
 
 in
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "openssh";
-  version = if hpnSupport then "8.1p1" else "8.2p1";
+  inherit version;
 
   src = if hpnSupport then
       fetchurl {
-        url = "https://github.com/rapier1/openssh-portable/archive/hpn-KitchenSink-8_1_P1.tar.gz";
-        sha256 = "1xiv28df9c15h44fv1i93fq8rvkyapjj9vj985ndnw3xk1nvqjyd";
+        url = "https://github.com/rapier1/openssh-portable/archive/hpn-KitchenSink-${replaceStrings [ "." "p" ] [ "_" "_P" ] version}.tar.gz";
+        sha256 = "0lwr7xzhy8m4y0vzi1a78ddhag3qp6cba0c37mnhivbhb67dkywp";
       }
     else
       fetchurl {
         url = "mirror://openbsd/OpenSSH/portable/${pname}-${version}.tar.gz";
-        sha256 = "0wg6ckzvvklbzznijxkk28fb8dnwyjd0w30ra0afwv6gwr8m34j3";
+        sha256 = "1cl74ghi9y21dc3f4xa0qamb7dhwacbynh1ks9syprrg8zhgpgpj";
       };
 
   patches =
@@ -99,8 +109,9 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    homepage = "http://www.openssh.com/";
     description = "An implementation of the SSH protocol";
+    homepage = "https://www.openssh.com/";
+    changelog = "https://www.openssh.com/releasenotes.html";
     license = stdenv.lib.licenses.bsd2;
     platforms = platforms.unix ++ platforms.windows;
     maintainers = with maintainers; [ eelco aneeshusa ];
diff --git a/pkgs/tools/networking/p2p/gtk-gnutella/default.nix b/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
index 08163bd8a9e..710f7dedb99 100644
--- a/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
+++ b/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
@@ -19,13 +19,13 @@ stdenv.mkDerivation rec {
   pname = "gtk-gnutella";
   # NOTE: Please remove hardeningDisable on the next release, see:
   # https://sourceforge.net/p/gtk-gnutella/bugs/555/#5c19
-  version = "1.1.15";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "gtk-gnutella";
     repo = "gtk-gnutella";
     rev = "v${version}";
-    sha256 = "1g7w6ywwp2g4qdgmfqkrl1rldk1b4rx50yb7h75hh15mh6nr159r";
+    sha256 = "0j596dpajk68bkry0gmpqawsi61rphfciy4vji1dh890jyhkhdgy";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/pixiecore/default.nix b/pkgs/tools/networking/pixiecore/default.nix
index 60d2a0986b1..d0e76832ea9 100644
--- a/pkgs/tools/networking/pixiecore/default.nix
+++ b/pkgs/tools/networking/pixiecore/default.nix
@@ -13,6 +13,9 @@ buildGoModule rec {
   };
 
   vendorSha256 = "08n3m6fkwh8jmmzky3ygij4gxlcqidqk5ywi8ki8bkyzzs2lqaw7";
+
+  doCheck = false;
+
   subPackages = [ "cmd/pixiecore" ];
 
   meta = {
@@ -22,4 +25,4 @@ buildGoModule rec {
     maintainers = with stdenv.lib.maintainers; [ bbigras danderson ];
     platforms = stdenv.lib.platforms.linux;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/networking/pmacct/default.nix b/pkgs/tools/networking/pmacct/default.nix
index 861c44ef70f..ffecbfcaf42 100644
--- a/pkgs/tools/networking/pmacct/default.nix
+++ b/pkgs/tools/networking/pmacct/default.nix
@@ -22,14 +22,14 @@ assert withMysql -> libmysqlclient != null;
 let inherit (stdenv.lib) optional; in
 
 stdenv.mkDerivation rec {
-  version = "1.7.3";
+  version = "1.7.5";
   pname = "pmacct";
 
   src = fetchFromGitHub {
     owner = "pmacct";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0j5qmkya67q7jvaddcj00blmaac37bkir1zb3m1xmm95gm5lf2p5";
+    sha256 = "17p5isrq5w58hvmzhc6akbd37ins3c95g0rvhhdm0v33khzxmran";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig libtool ];
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://www.pmacct.net/";
     license = licenses.gpl2;
-    maintainers = [ maintainers."0x4A6F" ];
+    maintainers = with maintainers; [ _0x4A6F ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/networking/radsecproxy/default.nix b/pkgs/tools/networking/radsecproxy/default.nix
index ab5ff481ec7..e2a0c900c52 100644
--- a/pkgs/tools/networking/radsecproxy/default.nix
+++ b/pkgs/tools/networking/radsecproxy/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "radsecproxy";
-  version = "1.8.1";
+  version = "1.8.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "12pvwd7v3iswki3riycxaiiqxingg4bqnkwc5ay3j4n2kzynr1qg";
+    sha256 = "1g7q128cip1dac9jad58rd96afx4xz7x7vsiv0af8iyq2ivqvs2m";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/networking/s3gof3r/default.nix b/pkgs/tools/networking/s3gof3r/default.nix
index d53d60333ba..0930be914cf 100644
--- a/pkgs/tools/networking/s3gof3r/default.nix
+++ b/pkgs/tools/networking/s3gof3r/default.nix
@@ -4,7 +4,7 @@ buildGoPackage rec {
   pname = "s3gof3r";
   version = "20151109-${stdenv.lib.strings.substring 0 7 rev}";
   rev = "31603a0dc94aefb822bfe2ceea75a6be6013b445";
-  
+
   goPackagePath = "github.com/rlmcpherson/s3gof3r";
 
   src = fetchgit {
diff --git a/pkgs/tools/networking/shadowfox/default.nix b/pkgs/tools/networking/shadowfox/default.nix
index f4cc57c9c8b..5f7247248e7 100644
--- a/pkgs/tools/networking/shadowfox/default.nix
+++ b/pkgs/tools/networking/shadowfox/default.nix
@@ -11,10 +11,10 @@ buildGoModule rec {
     sha256 = "125mw70jidbp436arhv77201jdp6mpgqa2dzmrpmk55f9bf29sg6";
   };
 
-  goPackagePath = "github.com/SrKomodo/shadowfox-updater";
-
   vendorSha256 = "06ar9ivry9b01609izjbl6hqgg0cy7aqd8n2cqpyq0g7my0l0lbj";
 
+  doCheck = false;
+
   buildFlags = [ "--tags" "release" ];
 
   meta = with stdenv.lib; {
@@ -24,7 +24,6 @@ buildGoModule rec {
     '';
     homepage = "https://overdodactyl.github.io/ShadowFox/";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ infinisil ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/networking/shadowsocks-rust/default.nix b/pkgs/tools/networking/shadowsocks-rust/default.nix
index 875ba7c988a..3fb34697da1 100644
--- a/pkgs/tools/networking/shadowsocks-rust/default.nix
+++ b/pkgs/tools/networking/shadowsocks-rust/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shadowsocks-rust";
-  version = "1.8.12";
+  version = "1.8.16";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shadowsocks";
     repo = pname;
-    sha256 = "0c9mdy22pjnjq5l2ji2whrfz64azx6yi6m76j17pbhnjf6f4jx9b";
+    sha256 = "09wncvy1cn8038xf8srz8y955xw9h59zh7avrh060wm50azrhlg5";
   };
 
-  cargoSha256 = "03gf26d7rz4v2v5fypcp5icsqqnb4m5dwil9ad5a98q3ssx80iwq";
+  cargoSha256 = "0n03dg1rrhlryap0dqqmmzhp49lxvhh3478z123x23fm04ygln44";
 
   SODIUM_USE_PKG_CONFIG = 1;
 
diff --git a/pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix b/pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix
new file mode 100644
index 00000000000..be3a2f77d5c
--- /dev/null
+++ b/pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "shadowsocks-v2ray-plugin";
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    owner = "shadowsocks";
+    repo = "v2ray-plugin";
+    rev = "v${version}";
+    sha256 = "0aq445gnqk9dxs1hkw7rvk86wg0iyiy0h740lvyh6d9zsqhf61wb";
+  };
+
+  vendorSha256 = "0vzd9v33p4a32f5ic9ir4g5ckis06wpdf07a649h9qalimxnvzfz";
+
+  meta = with lib; {
+    description = "Yet another SIP003 plugin for shadowsocks, based on v2ray";
+    homepage = "https://github.com/shadowsocks/v2ray-plugin/";
+    license = licenses.mit;
+    maintainers = [ maintainers.ahrzb ];
+  };
+}
+
diff --git a/pkgs/tools/networking/siege/default.nix b/pkgs/tools/networking/siege/default.nix
index ff01fc89f09..7e85973cbdb 100644
--- a/pkgs/tools/networking/siege/default.nix
+++ b/pkgs/tools/networking/siege/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "siege-4.0.5";
+  name = "siege-4.0.7";
 
   src = fetchurl {
     url = "http://download.joedog.org/siege/${name}.tar.gz";
-    sha256 = "0c82h0idkvfbzspy7h6w97wyk671694nl1ir94zhzn54mw0p0jrv";
+    sha256 = "1y3dnl1ziw0c0d4nw30aj0sdmjvarn4xfxgfkswffwnkm8z5p9xz";
   };
 
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
diff --git a/pkgs/tools/networking/slirp4netns/default.nix b/pkgs/tools/networking/slirp4netns/default.nix
index 6f8446d2243..60cb3413253 100644
--- a/pkgs/tools/networking/slirp4netns/default.nix
+++ b/pkgs/tools/networking/slirp4netns/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "slirp4netns";
-  version = "1.1.1";
+  version = "1.1.4";
 
   src = fetchFromGitHub {
     owner = "rootless-containers";
     repo = "slirp4netns";
     rev = "v${version}";
-    sha256 = "0zwaa7lqf8vh4c9mx0ganyz15a6qkisyxyxggmshfsxw77k6djxy";
+    sha256 = "13hlljkqss9abjpwaa5gcn6qnax0ws03zzh45c4rv1if7rwk6nbl";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) podman; };
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/rootless-containers/slirp4netns";
diff --git a/pkgs/tools/networking/sniffglue/default.nix b/pkgs/tools/networking/sniffglue/default.nix
index 83f1e372aa5..ec57e851f4b 100644
--- a/pkgs/tools/networking/sniffglue/default.nix
+++ b/pkgs/tools/networking/sniffglue/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sniffglue";
-  version = "0.10.1";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vyxlqwh90shihp80fk0plnkjix9i37n2dnypzyz6nx44xd5737s";
+    sha256 = "0lkz25z0qy1giss4rnhkx9fvsdd8ckf4z1gqw46zl664x96bb705";
   };
 
-  cargoSha256 = "162p3a696k281cygqpl6gg4makwk2v0g2jnf1gd108dnz4jya11l";
+  cargoSha256 = "01ya9535whi2kviw57f25n8h05ckpb4bq1h7qav6srai97rm937s";
 
   nativeBuildInputs = [ pkgconfig ];
 
diff --git a/pkgs/tools/networking/ssh-ident/default.nix b/pkgs/tools/networking/ssh-ident/default.nix
index d46d6ea1ac2..33211fb0723 100644
--- a/pkgs/tools/networking/ssh-ident/default.nix
+++ b/pkgs/tools/networking/ssh-ident/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, makeWrapper, python }:
+{ stdenv, lib, fetchFromGitHub, python3, makeWrapper, openssh }:
 
 stdenv.mkDerivation {
   pname = "ssh-ident";
@@ -10,12 +10,12 @@ stdenv.mkDerivation {
     sha256 = "1jf19lz1gwn7cyp57j8d4zs5bq13iw3kw31m8nvr8h6sib2pf815";
   };
 
-  buildInputs = [ makeWrapper ];
+  buildInputs = [ python3 makeWrapper ];
   installPhase = ''
     mkdir -p $out/bin
     install -m 755 ssh-ident $out/bin/ssh-ident
     wrapProgram $out/bin/ssh-ident \
-      --prefix PATH : "${python}/bin/python"
+      --prefix PATH : ${lib.makeBinPath [ openssh  ]}
   '';
 
   meta = {
diff --git a/pkgs/tools/networking/tayga/default.nix b/pkgs/tools/networking/tayga/default.nix
index 866d680a02d..1cecf2d634d 100644
--- a/pkgs/tools/networking/tayga/default.nix
+++ b/pkgs/tools/networking/tayga/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://www.litech.org/tayga";
     license = licenses.gpl2;
-    maintainers = [ maintainers."0x4A6F" ];
+    maintainers = with maintainers; [ _0x4A6F ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/tdns-cli/default.nix b/pkgs/tools/networking/tdns-cli/default.nix
index 20bc456eea8..681109712ab 100644
--- a/pkgs/tools/networking/tdns-cli/default.nix
+++ b/pkgs/tools/networking/tdns-cli/default.nix
@@ -3,7 +3,7 @@
 rustPlatform.buildRustPackage rec {
   name = "tdns-cli";
   version = "0.0.5";
-  
+
   src = fetchFromGitHub {
     owner = "rotty";
     repo = name;
diff --git a/pkgs/tools/networking/telepresence/default.nix b/pkgs/tools/networking/telepresence/default.nix
index 216a2863f84..285a3764e03 100644
--- a/pkgs/tools/networking/telepresence/default.nix
+++ b/pkgs/tools/networking/telepresence/default.nix
@@ -1,26 +1,31 @@
-{ lib, pythonPackages, fetchgit, fetchFromGitHub, makeWrapper, git
+{ lib, pythonPackages, fetchFromGitHub, makeWrapper, git
 , sshfs-fuse, torsocks, sshuttle, conntrack-tools , openssh, coreutils
 , iptables, bash }:
 
 let
-  sshuttle-telepresence = lib.overrideDerivation sshuttle (p: {
-    src = fetchgit {
-      url = "https://github.com/datawire/sshuttle.git";
-      rev = "32226ff14d98d58ccad2a699e10cdfa5d86d6269";
-      sha256 = "1q20lnljndwcpgqv2qrf1k0lbvxppxf98a4g5r9zd566znhcdhx3";
-    };
-
-    nativeBuildInputs = p.nativeBuildInputs ++ [ git ];
-
-    postPatch = "rm sshuttle/tests/client/test_methods_nat.py";
-    postInstall = "mv $out/bin/sshuttle $out/bin/sshuttle-telepresence";
-  });
+  sshuttle-telepresence = 
+    let
+      sshuttleTelepresenceRev = "32226ff14d98d58ccad2a699e10cdfa5d86d6269";
+    in
+      lib.overrideDerivation sshuttle (p: {
+        src = fetchFromGitHub {
+          owner = "datawire";
+          repo = "sshuttle";
+          rev = sshuttleTelepresenceRev;
+          sha256 = "1lp5b0h9v59igf8wybjn42w6ajw08blhiqmjwp4r7qnvmvmyaxhh";
+        };
+
+        SETUPTOOLS_SCM_PRETEND_VERSION="${sshuttleTelepresenceRev}";
+
+        postPatch = "rm sshuttle/tests/client/test_methods_nat.py";
+        postInstall = "mv $out/bin/sshuttle $out/bin/sshuttle-telepresence";
+      });
 in pythonPackages.buildPythonPackage rec {
   pname = "telepresence";
-  version = "0.104";
+  version = "0.105";
 
   src = fetchFromGitHub {
-    owner = "datawire";
+    owner = "telepresenceio";
     repo = "telepresence";
     rev = version;
     sha256 = "0fccbd54ryd9rcbhfh5lx8qcc3kx3k9jads918rwnzwllqzjf7sg";
diff --git a/pkgs/tools/networking/tendermint/default.nix b/pkgs/tools/networking/tendermint/default.nix
index 4c0f87efbc4..081819458f0 100644
--- a/pkgs/tools/networking/tendermint/default.nix
+++ b/pkgs/tools/networking/tendermint/default.nix
@@ -2,17 +2,23 @@
 
 buildGoModule rec {
   pname = "tendermint";
-  version = "0.33.5";
+  version = "0.33.8";
 
   src = fetchFromGitHub {
     owner = "tendermint";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0a6wm1gnr75mdfhzb9cgg4an655vln525slgp10r5abg9j3l8202";
+    sha256 = "1dcr60gmbkb6833n49mjmlr082ahlv7alaqycl8g3d4f93kdm5c3";
   };
 
   vendorSha256 = "0i0n89lal99fqnzva51kp9f7wzqsfmncpshwxhq26kvykp7ji7sw";
 
+  doCheck = false;
+
+  subPackages = [ "cmd/tendermint" ];
+
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/tendermint/tendermint/version.GitCommit=${src.rev}" ];
+
   meta = with stdenv.lib; {
     description = "Byzantine-Fault Tolerant State Machines. Or Blockchain, for short.";
     homepage = "https://tendermint.com/";
@@ -20,4 +26,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ alexfmpe ];
     platforms = platforms.linux ++ platforms.darwin;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/networking/termshark/default.nix b/pkgs/tools/networking/termshark/default.nix
index 7933cad687a..51168f01f44 100644
--- a/pkgs/tools/networking/termshark/default.nix
+++ b/pkgs/tools/networking/termshark/default.nix
@@ -16,6 +16,8 @@ buildGoModule rec {
 
   vendorSha256 = "14apff3vcbndr30765lzi4qswakavb4396bjixxvpxv6i5c04dq7";
 
+  doCheck = false;
+
   postFixup = ''
     wrapProgram $out/bin/termshark --prefix PATH : ${stdenv.lib.makeBinPath [ wireshark-cli ]}
   '';
@@ -31,4 +33,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ winpat elseym ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/networking/toss/default.nix b/pkgs/tools/networking/toss/default.nix
new file mode 100644
index 00000000000..9752dcc4f64
--- /dev/null
+++ b/pkgs/tools/networking/toss/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "toss";
+  version = "1.1";
+  src = fetchFromGitHub {
+    owner = "zerotier";
+    repo = pname;
+    rev = version;
+    sha256 = "05ql0d8wbdhnmh3dw8ch5bi6clfb9h8v21lq2a74iy02slya2y0r";
+  };
+  preInstall = "export DESTDIR=$out/bin";
+  meta = with stdenv.lib;
+    src.meta // {
+      description = "Dead simple LAN file transfers from the command line";
+      license = with licenses; [ mit ];
+      maintainers = with maintainers; [ ehmry ];
+      platforms = platforms.unix;
+    };
+}
diff --git a/pkgs/tools/networking/tridactyl-native/default.nix b/pkgs/tools/networking/tridactyl-native/default.nix
index 7072fb96eda..5dd5f3c153f 100644
--- a/pkgs/tools/networking/tridactyl-native/default.nix
+++ b/pkgs/tools/networking/tridactyl-native/default.nix
@@ -7,13 +7,13 @@ stdenv.mkDerivation rec {
   pname = "tridactyl-native";
   # this is actually the version of tridactyl itself; the native messenger will
   # probably not change with every tridactyl version
-  version = "1.19.1";
+  version = "1.20.0";
 
   src = fetchFromGitHub {
     owner = "tridactyl";
     repo = "tridactyl";
     rev = version;
-    sha256 = "19hldr6ii1z7gghc80h7qsnlz9na586gldm5y33i6lrs93193l82";
+    sha256 = "14p6jadw4yij45rrwjbyf1lq3zpsni4sph88c6mlwlf8w830s3q8";
   };
   sourceRoot = "source/native";
 
diff --git a/pkgs/tools/networking/tunnelto/default.nix b/pkgs/tools/networking/tunnelto/default.nix
index c774888d04c..c0dce98c444 100644
--- a/pkgs/tools/networking/tunnelto/default.nix
+++ b/pkgs/tools/networking/tunnelto/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tunnelto";
-  version = "0.1.9";
+  version = "0.1.12";
 
   src = fetchFromGitHub {
     owner = "agrinman";
     repo = pname;
     rev = version;
-    sha256 = "11v06w0mq9l6rcgbm0wx47a5x3n7js8f07g43xfjv0qf0ra4w2xj";
+    sha256 = "1vvb619cq3n88y2s8lncwcyrhb5s4gpjfiyia91pilcpnfdb04y2";
   };
 
-  cargoSha256 = "0pq0ril8lm6y8pz0jj49zwcbb1yw3hjbpk4m9vp1vfbj3hvjcbp3";
+  cargoSha256 = "0k0ig3dynj46kh8g7d6bljcaalmp40pvdbhbjmlxrmwnjq6bhzcq";
 
   nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
   buildInputs = [ ]
diff --git a/pkgs/tools/networking/unbound/default.nix b/pkgs/tools/networking/unbound/default.nix
index 6390ab35f95..9b33d53e54f 100644
--- a/pkgs/tools/networking/unbound/default.nix
+++ b/pkgs/tools/networking/unbound/default.nix
@@ -2,20 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "unbound";
-  version = "1.10.1";
+  version = "1.11.0";
 
   src = fetchurl {
     url = "https://unbound.net/downloads/${pname}-${version}.tar.gz";
-    sha256 = "0dnmh9jjh2v274f0hl31bgv40pl77mmfgky8bkqr5kvi3b17fdmp";
+    sha256 = "1xqywn2qdmjjq0csrqxh9p2rnizdrr1f99zdx87z7f3fyyc0fbwz";
   };
 
-  # https://github.com/NLnetLabs/unbound/pull/90
-  postPatch = ''
-    substituteInPlace validator/val_secalgo.c \
-      --replace '&nettle_secp_256r1' 'nettle_get_secp_256r1()' \
-      --replace '&nettle_secp_384r1' 'nettle_get_secp_384r1()'
-  '';
-
   outputs = [ "out" "lib" "man" ]; # "dev" would only split ~20 kB
 
   buildInputs = [ openssl nettle expat libevent ];
@@ -30,6 +23,8 @@ stdenv.mkDerivation rec {
     "--with-rootkey-file=${dns-root-data}/root.key"
     "--enable-pie"
     "--enable-relro-now"
+  ] ++ stdenv.lib.optional stdenv.hostPlatform.isStatic [
+    "--disable-flto"
   ];
 
   installFlags = [ "configfile=\${out}/etc/unbound/unbound.conf" ];
diff --git a/pkgs/tools/networking/urlwatch/default.nix b/pkgs/tools/networking/urlwatch/default.nix
index 639bea38f0a..f23aed3707b 100644
--- a/pkgs/tools/networking/urlwatch/default.nix
+++ b/pkgs/tools/networking/urlwatch/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   name = "urlwatch-${version}";
-  version = "2.18";
+  version = "2.19";
 
   src = fetchFromGitHub {
     owner  = "thp";
     repo   = "urlwatch";
     rev    = version;
-    sha256 = "14dmyk95v3kajhn1w2lpil3rjs78y0wxylsxclv6zjxgjcc1xsi3";
+    sha256 = "05vxs0x8gnsv2r9cy0brqny1y5jnj2mw11lqc8lqahx84xcs2m00";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/networking/v2ray/default.nix b/pkgs/tools/networking/v2ray/default.nix
index 0f0c5961c00..ab3f5eb3ef4 100644
--- a/pkgs/tools/networking/v2ray/default.nix
+++ b/pkgs/tools/networking/v2ray/default.nix
@@ -3,20 +3,22 @@
 , ... } @ args:
 
 callPackage ./generic.nix (rec {
-  version = "4.23.3";
+  version = "4.26.0";
 
   src = fetchFromGitHub {
     owner = "v2ray";
     repo = "v2ray-core";
     rev = "v${version}";
-    sha256 = "1b0cxrpgkmgas7pwxglsvgcig8rnhffkf990b42z7awji5lw055v";
+    sha256 = "069wm0n44i4l9pnrhwf60ssld65p6gfj4wfc68hrhj4zi4jvlyds";
   };
 
+  vendorSha256 = "1520h69z0inbsrw5505cxbinqakvwcrdx3pisrwnp9lv4jsrzzsr";
+
   assets = {
     # MIT licensed
     "geoip.dat" = let
-      geoipRev = "202005270003";
-      geoipSha256 = "10gf69hr32p4bpl5j8r46v8xzhpcgm70xbcdxm1a8l0jwyj0infs";
+      geoipRev = "202007080004";
+      geoipSha256 = "1j4qg831dhxdy7brgxn4ca69cvwr3zsgizidlzasbkdn2rwai17y";
     in fetchurl {
       url = "https://github.com/v2ray/geoip/releases/download/${geoipRev}/geoip.dat";
       sha256 = geoipSha256;
@@ -24,8 +26,8 @@ callPackage ./generic.nix (rec {
 
     # MIT licensed
     "geosite.dat" = let
-      geositeRev = "202005292154";
-      geositeSha256 = "0w6l0q8y14in5f4a406blpprqq6p438gpclnlfz7y2hkh5zf36cr";
+      geositeRev = "20200708125309";
+      geositeSha256 = "1pr4137ri3v3r880yx5sqf2p7qfn8g7s555q51x3smkjzkyrskcy";
     in fetchurl {
       url = "https://github.com/v2ray/domain-list-community/releases/download/${geositeRev}/dlc.dat";
       sha256 = geositeSha256;
diff --git a/pkgs/tools/networking/v2ray/generic.nix b/pkgs/tools/networking/v2ray/generic.nix
index e8f4d278c32..4499e91425f 100644
--- a/pkgs/tools/networking/v2ray/generic.nix
+++ b/pkgs/tools/networking/v2ray/generic.nix
@@ -1,7 +1,7 @@
 { lib, linkFarm, buildGoModule, runCommand, makeWrapper
 
 # Version specific args
-, version, src, assets
+, version, src, assets, vendorSha256
 , ... }:
 
 let
@@ -13,7 +13,9 @@ let
     pname = "v2ray-core";
     inherit version src;
 
-    vendorSha256 = "0d2qmnmlkl884ccg0qcd2yhfj0dwxnb9dz3cih7rcipz85w2f2rs";
+    inherit vendorSha256;
+
+    doCheck = false;
 
     buildPhase = ''
       runHook preBuild
@@ -47,4 +49,4 @@ in runCommand "v2ray-${version}" {
     makeWrapper "$file" "$out/bin/$(basename "$file")" \
       --set-default V2RAY_LOCATION_ASSET ${assetsDrv}
   done
-''
\ No newline at end of file
+''
diff --git a/pkgs/tools/networking/v2ray/update.sh b/pkgs/tools/networking/v2ray/update.sh
index 38ad77e98f8..56a148444c7 100755
--- a/pkgs/tools/networking/v2ray/update.sh
+++ b/pkgs/tools/networking/v2ray/update.sh
@@ -1,11 +1,13 @@
 #!/usr/bin/env nix-shell
 #!nix-shell -i bash -p curl jq
 set -eo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
 
-version_nix=$(dirname "$0")/default.nix
-deps_nix=$(dirname "$0")/deps.nix
+version_nix=./default.nix
+deps_nix=./deps.nix
+nixpkgs=../../../..
 
-old_core_rev="v$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$version_nix")"
+old_core_rev=$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$version_nix")
 old_geoip_rev=$(sed -En 's/.*\bgeoipRev = "(.*?)".*/\1/p' "$version_nix")
 old_geosite_rev=$(sed -En 's/.*\bgeositeRev = "(.*?)".*/\1/p' "$version_nix")
 echo "Current version:" >&2
@@ -17,6 +19,7 @@ function fetch_latest_rev {
 }
 
 core_rev=$(fetch_latest_rev 'v2ray-core')
+core_rev=${core_rev:1}
 geoip_rev=$(fetch_latest_rev 'geoip')
 geosite_rev=$(fetch_latest_rev 'domain-list-community')
 echo "Latest version:" >&2
@@ -25,12 +28,13 @@ echo "core: $core_rev, geoip: $geoip_rev, geosite: $geosite_rev" >&2
 if [[ $core_rev != $old_core_rev ]]; then
     echo "Prefetching core..." >&2
     { read hash; read store_path; } < <(
-        nix-prefetch-url --unpack --print-path "https://github.com/v2ray/v2ray-core/archive/$core_rev.zip"
+        nix-prefetch-url --unpack --print-path "https://github.com/v2ray/v2ray-core/archive/v$core_rev.zip"
     )
 
     sed --in-place \
-        -e "s/\bversion = \".*\"/version = \"$(echo "$core_rev" | tail -c+2)\"/" \
+        -e "s/\bversion = \".*\"/version = \"$core_rev\"/" \
         -e "s/\bsha256 = \".*\"/sha256 = \"$hash\"/" \
+        -e "s/\bvendorSha256 = \".*\"/vendorSha256 = \"0000000000000000000000000000000000000000000000000000\"/" \
         "$version_nix"
 fi
 
@@ -51,3 +55,17 @@ if [[ $geosite_rev != $old_geosite_rev ]]; then
         -e "s/\bgeositeSha256 = \".*\"/geositeSha256 = \"$hash\"/" \
         "$version_nix"
 fi
+
+echo "Prebuilding..." >&2
+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'
+)
+[[ "$vendorSha256" ]]
+sed --in-place \
+    -e "s/vendorSha256 = \".*\"/vendorSha256 = \"$vendorSha256\"/" \
+    "$version_nix"
+
+echo "vendorSha256 updated" >&2
diff --git a/pkgs/tools/networking/vpn-slice/default.nix b/pkgs/tools/networking/vpn-slice/default.nix
new file mode 100644
index 00000000000..9511c214c08
--- /dev/null
+++ b/pkgs/tools/networking/vpn-slice/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonApplication, python3Packages, fetchFromGitHub }:
+
+buildPythonApplication rec {
+  pname = "vpn-slice";
+  version = "0.14";
+
+  src = fetchFromGitHub {
+    owner = "dlenski";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1z2mdl3arzl95zrj4ir57f762gcimmmq5nk91j679cshxz4snxyr";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ setproctitle dnspython ];
+
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/dlenski/vpn-slice";
+    description =
+      "vpnc-script replacement for easy and secure split-tunnel VPN setup";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ jdbaldry ];
+  };
+}
diff --git a/pkgs/tools/networking/wireguard-tools/default.nix b/pkgs/tools/networking/wireguard-tools/default.nix
index 6cd3682c3f2..a9f0d7e77d6 100644
--- a/pkgs/tools/networking/wireguard-tools/default.nix
+++ b/pkgs/tools/networking/wireguard-tools/default.nix
@@ -13,11 +13,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "wireguard-tools";
-  version = "1.0.20200513";
+  version = "1.0.20200827";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/wireguard-tools/snapshot/wireguard-tools-${version}.tar.xz";
-    sha256 = "1rvnr4hk17xa2sp48icbhdnd3l69fiwwlxnn3587p1slrlms808l";
+    sha256 = "1d8rs1g6zy3kz327cc3hzkk5a44278x9p32gxasz6i94bq0b2bs3";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/tools/networking/wormhole-william/default.nix b/pkgs/tools/networking/wormhole-william/default.nix
new file mode 100644
index 00000000000..261db4590c1
--- /dev/null
+++ b/pkgs/tools/networking/wormhole-william/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "wormhole-william";
+  version = "1.0.4";
+
+  src = fetchFromGitHub {
+    owner = "psanford";
+    repo = "wormhole-william";
+    rev = "v${version}";
+    sha256 = "1v6kw10gqhyd1adj0wwrr5bmpjqbshdnywsrjpqgg9bl61m5j3wr";
+  };
+
+  vendorSha256 = "1niky252gcxai6vz0cx7pvflg530bc1lmcd2wm2hqg6446r1yxsq";
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/psanford/wormhole-william";
+    description = "End-to-end encrypted file transfers";
+    changelog = "https://github.com/psanford/wormhole-william/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ psanford ];
+  };
+}
diff --git a/pkgs/tools/networking/wstunnel/default.nix b/pkgs/tools/networking/wstunnel/default.nix
index 2488d874e6d..161b08a7d39 100644
--- a/pkgs/tools/networking/wstunnel/default.nix
+++ b/pkgs/tools/networking/wstunnel/default.nix
@@ -2,28 +2,21 @@
 , classy-prelude, cmdargs, connection, hslogger, mtl, network
 , network-conduit-tls, stdenv, streaming-commons, text
 , unordered-containers, websockets
+, hspec, iproute
 , lib, fetchFromGitHub, fetchpatch
 }:
 
 mkDerivation rec {
   pname = "wstunnel";
-  version = "unstable-2019-01-28";
+  version = "unstable-2020-07-12";
 
   src = fetchFromGitHub {
     owner = "erebe";
     repo = pname;
-    rev = "78cc5a5f1aa4dbcb25fa9b0efc9cfef3640672e4";
-    sha256 = "17y3yn7qg1h7jx9xs041sw63g51vyns236f60d2m2mghi49lm9i2";
+    rev = "093a01fa3a34eee5efd8f827900e64eab9d16c05";
+    sha256 = "17p9kq0ssz05qzl6fyi5a5fjbpn4bxkkwibb9si3fhzrxc508b59";
   };
 
-  patches = [
-    # Support GHC 8.6   https://github.com/erebe/wstunnel/pull/18
-    (fetchpatch {
-      url = "https://github.com/erebe/wstunnel/commit/8f348fea4dbf75874d5d930334377843763335ab.patch";
-      sha256 = "0a66jx7k97j3iyr7j5npbyq1lkhzz74r81mkas4nig7z3hny1gn9";
-    })
-  ];
-
   isLibrary = false;
   isExecutable = true;
 
@@ -31,13 +24,14 @@ mkDerivation rec {
     async base base64-bytestring binary bytestring classy-prelude
     connection hslogger mtl network network-conduit-tls
     streaming-commons text unordered-containers websockets
+    iproute
   ];
 
   executableHaskellDepends = [
     base bytestring classy-prelude cmdargs hslogger text
   ];
 
-  testHaskellDepends = [ base text ];
+  testHaskellDepends = [ base text hspec ];
 
   homepage = "https://github.com/erebe/wstunnel";
   description = "UDP and TCP tunnelling over WebSocket";
diff --git a/pkgs/tools/networking/yggdrasil/default.nix b/pkgs/tools/networking/yggdrasil/default.nix
index 438d620d2b5..90cd64b83ad 100644
--- a/pkgs/tools/networking/yggdrasil/default.nix
+++ b/pkgs/tools/networking/yggdrasil/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "09xv2p9rydnsb185x61fxhyjqx41wz285c1gdd47ad3s08ay1qc7";
 
+  doCheck = false;
+
   # Change the default location of the management socket on Linux
   # systems so that the yggdrasil system service unit does not have to
   # be granted write permission to /run.
@@ -34,7 +36,6 @@ buildGoModule rec {
       "An experiment in scalable routing as an encrypted IPv6 overlay network";
     homepage = "https://yggdrasil-network.github.io/";
     license = licenses.lgpl3;
-    platforms = platforms.all;
     maintainers = with maintainers; [ ehmry gazally lassulus ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/networking/ytcc/default.nix b/pkgs/tools/networking/ytcc/default.nix
index f5086e15436..dc38648c369 100644
--- a/pkgs/tools/networking/ytcc/default.nix
+++ b/pkgs/tools/networking/ytcc/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "ytcc";
-  version = "1.8.3";
+  version = "1.8.4";
 
   src = fetchFromGitHub {
     owner = "woefe";
     repo = "ytcc";
     rev = "v${version}";
-    sha256 = "0993vqbsqcnxgv5l3il432i4sqzp8ns69rnsgww872vpb4bp3cg8";
+    sha256 = "11gwpqmq611j07pjscch28jsrfgyzy69ph2w1miz3arqmxz7dqjp";
   };
 
   nativeBuildInputs = [ gettext ];
diff --git a/pkgs/tools/networking/zssh/default.nix b/pkgs/tools/networking/zssh/default.nix
index 720c43ccc2d..945c96ae851 100644
--- a/pkgs/tools/networking/zssh/default.nix
+++ b/pkgs/tools/networking/zssh/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, readline, deepin }:
+{ stdenv, fetchurl, readline }:
 
 let
   version = "1.5c";
@@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
     description = "SSH and Telnet client with ZMODEM file transfer capability";
     homepage = "http://zssh.sourceforge.net/";
     license = stdenv.lib.licenses.gpl2;
-    maintainers = deepin.deepin-terminal.meta.maintainers; # required by deepin-terminal
+    maintainers = [ ]; # required by deepin-terminal
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/nix/nixpkgs-fmt/default.nix b/pkgs/tools/nix/nixpkgs-fmt/default.nix
index 53e70ad7bd7..40e74fba8a8 100644
--- a/pkgs/tools/nix/nixpkgs-fmt/default.nix
+++ b/pkgs/tools/nix/nixpkgs-fmt/default.nix
@@ -1,16 +1,16 @@
 { lib, rustPlatform, fetchFromGitHub, fetchpatch }:
 rustPlatform.buildRustPackage rec {
   pname = "nixpkgs-fmt";
-  version = "0.9.0";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1kkw87c63nx5pqsxcwn6iw27k02j9ls21zyhb5dvf0zaqd9sz7ad";
+    sha256 = "0w1himwix7iv40rixj9afknwmqg2qmkif23z217gc7x63zyg9vdc";
   };
-  
-  cargoSha256 = "1wybvm9qckx9cd656gx9zrbszmaj66ihh2kk6qqdb6maixcq5k0x";
+
+  cargoSha256 = "1qzhii72hjdxmgfncvyk80ybvk6zywd6v73bb1ibhnry734grzvw";
 
   meta = with lib; {
     description = "Nix code formatter for nixpkgs";
diff --git a/pkgs/tools/nix/rnix-hashes/default.nix b/pkgs/tools/nix/rnix-hashes/default.nix
new file mode 100644
index 00000000000..607884b8ac9
--- /dev/null
+++ b/pkgs/tools/nix/rnix-hashes/default.nix
@@ -0,0 +1,21 @@
+{ lib, rustPlatform, fetchFromGitHub, fetchpatch }:
+rustPlatform.buildRustPackage rec {
+  pname = "rnix-hashes";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "numtide";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "SzHyG5cEjaaPjTkn8puht6snjHMl8DtorOGDjxakJfA=";
+  };
+
+  cargoSha256 = "vaG+0t+XAckV9F4iIgcTkbIUurxdQsTCfOnRnrOKoRc=";
+
+  meta = with lib; {
+    description = "Nix Hash Converter";
+    homepage = "https://github.com/numtide/rnix-hashes";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ rizary ];
+  };
+}
diff --git a/pkgs/tools/package-management/apk-tools/default.nix b/pkgs/tools/package-management/apk-tools/default.nix
new file mode 100644
index 00000000000..33c08636e44
--- /dev/null
+++ b/pkgs/tools/package-management/apk-tools/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchurl, lua, openssl, pkg-config, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "apk-tools";
+  version = "2.10.5";
+
+  src = fetchurl {
+    url = "https://dev.alpinelinux.org/archive/apk-tools/apk-tools-${version}.tar.xz";
+    sha256 = "00z3fqnv8vk2czdm4p2q4sldq0n8sxyf2qfwppyk7wj59d2sq8dp";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ lua openssl zlib ];
+
+  makeFlags = [
+    "SBINDIR=$(out)/bin"
+    "LIBDIR=$(out)/lib"
+    "LUA_LIBDIR=$(out)/lib/lua/${lib.versions.majorMinor lua.version}"
+    "MANDIR=$(out)/share/man"
+    "DOCDIR=$(out)/share/doc/apk"
+    "INCLUDEDIR=$(out)/include"
+    "PKGCONFIGDIR=$(out)/lib/pkgconfig"
+  ];
+
+  NIX_CFLAGS_COMPILE = [ "-Wno-error=unused-result" ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    homepage = "https://gitlab.alpinelinux.org/alpine/apk-tools";
+    description = "Alpine Package Keeper";
+    maintainers = with maintainers; [ qyliss ];
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/package-management/cargo-about/default.nix b/pkgs/tools/package-management/cargo-about/default.nix
index 84bea234c20..c4d9aae267e 100644
--- a/pkgs/tools/package-management/cargo-about/default.nix
+++ b/pkgs/tools/package-management/cargo-about/default.nix
@@ -17,6 +17,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/EmbarkStudios/cargo-about";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ evanjs ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/package-management/cargo-audit/default.nix b/pkgs/tools/package-management/cargo-audit/default.nix
index 01acc2ed6ed..acd08817780 100644
--- a/pkgs/tools/package-management/cargo-audit/default.nix
+++ b/pkgs/tools/package-management/cargo-audit/default.nix
@@ -23,6 +23,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://rustsec.org";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ basvandijk ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/package-management/cargo-deb/default.nix b/pkgs/tools/package-management/cargo-deb/default.nix
index 96ef0eef8c5..43a2fccd878 100644
--- a/pkgs/tools/package-management/cargo-deb/default.nix
+++ b/pkgs/tools/package-management/cargo-deb/default.nix
@@ -33,6 +33,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mmstick/cargo-deb";
     license = licenses.mit;
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/package-management/cargo-deps/default.nix b/pkgs/tools/package-management/cargo-deps/default.nix
index d90d0fe7979..682cfde78fa 100644
--- a/pkgs/tools/package-management/cargo-deps/default.nix
+++ b/pkgs/tools/package-management/cargo-deps/default.nix
@@ -18,6 +18,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/m-cat/cargo-deps";
     license = licenses.mit;
     maintainers = with maintainers; [ arcnmx ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/package-management/cargo-edit/default.nix b/pkgs/tools/package-management/cargo-edit/default.nix
index 7bcc6c12ee9..b3449566d45 100644
--- a/pkgs/tools/package-management/cargo-edit/default.nix
+++ b/pkgs/tools/package-management/cargo-edit/default.nix
@@ -25,6 +25,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/killercup/cargo-edit";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ gerschtli jb55 filalex77 killercup ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/package-management/cargo-graph/default.nix b/pkgs/tools/package-management/cargo-graph/default.nix
index 4d35e284040..5bca56d993d 100644
--- a/pkgs/tools/package-management/cargo-graph/default.nix
+++ b/pkgs/tools/package-management/cargo-graph/default.nix
@@ -18,6 +18,5 @@ rustPlatform.buildRustPackage rec {
     description = "A cargo subcommand for creating GraphViz DOT files and dependency graphs";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ basvandijk ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/package-management/cargo-license/default.nix b/pkgs/tools/package-management/cargo-license/default.nix
index b3c404f476f..ba461398e66 100644
--- a/pkgs/tools/package-management/cargo-license/default.nix
+++ b/pkgs/tools/package-management/cargo-license/default.nix
@@ -20,6 +20,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/onur/cargo-license";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ basvandijk ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/package-management/cargo-outdated/default.nix b/pkgs/tools/package-management/cargo-outdated/default.nix
index 1a20c6b9ab6..5d4eef2fbe5 100644
--- a/pkgs/tools/package-management/cargo-outdated/default.nix
+++ b/pkgs/tools/package-management/cargo-outdated/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-outdated";
-  version = "0.9.10";
+  version = "0.9.11";
 
   src = fetchFromGitHub {
     owner = "kbknapp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1aj76wwpnvniv5xdygfv17kj74rxxkvngkvw2019qinm2nv81c3p";
+    sha256 = "11fdh24366czb3vv2szf5bl0mhsilwvpfc1h4qxq18z2dpb0y18m";
   };
 
-  cargoSha256 = "0nzxx31nlmrcrcs67z1wci0d4n6kdq83z2ld4bq8xgp6p916f4sl";
+  cargoSha256 = "0sr3ijq6vh2269xav03d117kzmg68xiwqsq48xjdrsnn4dx5lizy";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ]
@@ -25,7 +25,6 @@ rustPlatform.buildRustPackage rec {
     description = "A cargo subcommand for displaying when Rust dependencies are out of date";
     homepage = "https://github.com/kbknapp/cargo-outdated";
     license = with licenses; [ asl20 /* or */ mit ];
-    platforms = platforms.all;
     maintainers = with maintainers; [ sondr3 ivan ];
   };
 }
diff --git a/pkgs/tools/package-management/cargo-release/default.nix b/pkgs/tools/package-management/cargo-release/default.nix
index 69a55bcda91..b68a8208de1 100644
--- a/pkgs/tools/package-management/cargo-release/default.nix
+++ b/pkgs/tools/package-management/cargo-release/default.nix
@@ -1,26 +1,26 @@
-{ stdenv, rustPlatform, fetchFromGitHub, Security, openssl, pkg-config }:
+{ stdenv, rustPlatform, fetchFromGitHub, libiconv, Security, openssl, pkg-config }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-release";
-  version = "0.13.3";
+  version = "0.13.5";
 
   src = fetchFromGitHub {
     owner = "sunng87";
     repo = "cargo-release";
     rev = "v${version}";
-    sha256 = "0d9fgmy87xjl9kcmx9crmmg83iyybisg0gfwmnlxz5529slqng5r";
+    sha256 = "098p6yfq8nlfckr61j3pkimwzrg5xb2i34nxvk2hiv1njl1vrqng";
   };
 
-  cargoSha256 = "1a6ac4x51i1rg0bgrxbbdd54gmwldsiv7nn8vi81y20llnshgjk7";
+  cargoSha256 = "07rmp4j4jpzd1rz59wsjmzmj2qkc2x4wrs9pafqrym58ypm8i4gx";
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security;
+  buildInputs = [ openssl ]
+  ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
 
   meta = with stdenv.lib; {
     description = ''Cargo subcommand "release": everything about releasing a rust crate'';
     homepage = "https://github.com/sunng87/cargo-release";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ gerschtli ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/package-management/cargo-tree/default.nix b/pkgs/tools/package-management/cargo-tree/default.nix
deleted file mode 100644
index 2e0207e01ed..00000000000
--- a/pkgs/tools/package-management/cargo-tree/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, lib, rustPlatform, fetchFromGitHub, pkgconfig, cmake, curl, libiconv, darwin }:
-
-rustPlatform.buildRustPackage rec {
-  pname = "cargo-tree";
-  version = "0.29.0";
-
-  src = fetchFromGitHub {
-    owner = "sfackler";
-    repo = "cargo-tree";
-    rev = "v${version}";
-    sha256 = "16k41pj66m2221n1v2szir7x7qwx4i0g3svck2c8cj76h0bqyy15";
-  };
-
-  cargoSha256 = "0762gdj4n5mlflhzynnny1h8z792zyxmb4kcn54jj7qzdask4qdy";
-
-  nativeBuildInputs = [ pkgconfig cmake ];
-  buildInputs = [ curl ] ++ lib.optionals stdenv.isDarwin [ libiconv darwin.apple_sdk.frameworks.Security ];
-
-  meta = with lib; {
-    description = "A cargo subcommand that visualizes a crate's dependency graph in a tree-like format";
-    license = with licenses; [ asl20 mit ];
-    maintainers = with maintainers; [ jD91mZM2 ma27 ];
-    homepage = "https://crates.io/crates/cargo-tree";
-  };
-}
diff --git a/pkgs/tools/package-management/cargo-update/0001-Generate-lockfile-for-cargo-update-v3.0.0.patch b/pkgs/tools/package-management/cargo-update/0001-Generate-lockfile-for-cargo-update-v4.1.1.patch
index 40cd310b643..9aa7d8b1cc9 100644
--- a/pkgs/tools/package-management/cargo-update/0001-Generate-lockfile-for-cargo-update-v3.0.0.patch
+++ b/pkgs/tools/package-management/cargo-update/0001-Generate-lockfile-for-cargo-update-v4.1.1.patch
@@ -1,26 +1,16 @@
-From 893ee8e76cc8b4096c84fe3a537e312304ce214b Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Wed, 11 Mar 2020 22:32:47 +0100
-Subject: [PATCH] Generate lockfile for cargo-update v3.0.0
-
----
- Cargo.lock | 632 +++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 632 insertions(+)
- create mode 100644 Cargo.lock
-
 diff --git a/Cargo.lock b/Cargo.lock
 new file mode 100644
-index 000000000..0b3a75632
+index 000000000..8d77f4824
 --- /dev/null
 +++ b/Cargo.lock
-@@ -0,0 +1,632 @@
+@@ -0,0 +1,641 @@
 +# This file is automatically @generated by Cargo.
 +# It is not intended for manual editing.
 +[[package]]
 +name = "aho-corasick"
-+version = "0.7.10"
++version = "0.7.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
++checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
 +dependencies = [
 + "memchr",
 +]
@@ -94,7 +84,7 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "cargo-update"
-+version = "3.0.0"
++version = "4.1.1"
 +dependencies = [
 + "array_tool",
 + "clap",
@@ -117,9 +107,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "cc"
-+version = "1.0.50"
++version = "1.0.59"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
++checksum = "66120af515773fb005778dc07c261bd201ec8ce50bd6e7144c927753fe013381"
 +dependencies = [
 + "jobserver",
 +]
@@ -132,9 +122,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "clap"
-+version = "2.33.0"
++version = "2.33.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
++checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
 +dependencies = [
 + "ansi_term",
 + "atty",
@@ -174,11 +164,10 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "dirs-sys"
-+version = "0.3.4"
++version = "0.3.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b"
++checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a"
 +dependencies = [
-+ "cfg-if",
 + "libc",
 + "redox_users",
 + "winapi",
@@ -186,9 +175,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "embed-resource"
-+version = "1.3.2"
++version = "1.3.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8398b939acbb266ade6939090e9f634147e7b426a33054a833d9ec935d814882"
++checksum = "1f6b0b4403da80c2fd32333937dd468292c001d778c587ae759b75432772715d"
 +dependencies = [
 + "vswhom",
 + "winreg",
@@ -222,9 +211,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "hermit-abi"
-+version = "0.1.8"
++version = "0.1.15"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1010591b26bbfe835e9faeabeb11866061cc7dcebffd56ad7d0942d0e61aefd8"
++checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
 +dependencies = [
 + "libc",
 +]
@@ -275,9 +264,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "libc"
-+version = "0.2.67"
++version = "0.2.75"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "eb147597cdf94ed43ab7a9038716637d2d1bf2bc571da995d0028dec06bd3018"
++checksum = "55821a41348652c211bf26f6453cb9397af531fc358a33752c864a4f5bccc20e"
 +
 +[[package]]
 +name = "libgit2-sys"
@@ -295,9 +284,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "libssh2-sys"
-+version = "0.2.16"
++version = "0.2.19"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7bb70f29dc7c31d32c97577f13f41221af981b31248083e347b7f2c39225a6bc"
++checksum = "ca46220853ba1c512fc82826d0834d87b06bcd3c2a42241b7de72f3d2fe17056"
 +dependencies = [
 + "cc",
 + "libc",
@@ -309,9 +298,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "libz-sys"
-+version = "1.0.25"
++version = "1.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe"
++checksum = "af67924b8dd885cccea261866c8ce5b74d239d272e154053ff927dae839f5ae9"
 +dependencies = [
 + "cc",
 + "libc",
@@ -321,9 +310,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "log"
-+version = "0.4.8"
++version = "0.4.11"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
++checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
 +dependencies = [
 + "cfg-if",
 +]
@@ -353,14 +342,24 @@ index 000000000..0b3a75632
 +checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
 +
 +[[package]]
++name = "openssl-src"
++version = "111.10.2+1.1.1g"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a287fdb22e32b5b60624d4a5a7a02dbe82777f730ec0dbc42a0554326fef5a70"
++dependencies = [
++ "cc",
++]
++
++[[package]]
 +name = "openssl-sys"
-+version = "0.9.54"
++version = "0.9.58"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986"
++checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"
 +dependencies = [
 + "autocfg",
 + "cc",
 + "libc",
++ "openssl-src",
 + "pkg-config",
 + "vcpkg",
 +]
@@ -373,33 +372,33 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "pkg-config"
-+version = "0.3.17"
++version = "0.3.18"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
++checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
 +
 +[[package]]
 +name = "proc-macro2"
-+version = "1.0.9"
++version = "1.0.19"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6c09721c6781493a2a492a96b5a5bf19b65917fe6728884e7c44dd0c60ca3435"
++checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
 +dependencies = [
 + "unicode-xid",
 +]
 +
 +[[package]]
 +name = "quote"
-+version = "1.0.3"
++version = "1.0.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f"
++checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
 +dependencies = [
 + "proc-macro2",
 +]
 +
 +[[package]]
 +name = "redox_syscall"
-+version = "0.1.56"
++version = "0.1.57"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
++checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
 +
 +[[package]]
 +name = "redox_users"
@@ -414,9 +413,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "regex"
-+version = "1.3.4"
++version = "1.3.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "322cf97724bea3ee221b78fe25ac9c46114ebb51747ad5babd51a2fc6a8235a8"
++checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
 +dependencies = [
 + "aho-corasick",
 + "memchr",
@@ -426,9 +425,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "regex-syntax"
-+version = "0.6.16"
++version = "0.6.18"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1132f845907680735a84409c3bebc64d1364a5683ffbce899550cd09d5eaefc1"
++checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
 +
 +[[package]]
 +name = "rust-argon2"
@@ -460,15 +459,15 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "serde"
-+version = "1.0.104"
++version = "1.0.115"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449"
++checksum = "e54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5"
 +
 +[[package]]
 +name = "serde_derive"
-+version = "1.0.104"
++version = "1.0.115"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64"
++checksum = "609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48"
 +dependencies = [
 + "proc-macro2",
 + "quote",
@@ -492,9 +491,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "syn"
-+version = "1.0.16"
++version = "1.0.38"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "123bd9499cfb380418d509322d7a6d52e5315f064fe4b3ad18a53d6b92c07859"
++checksum = "e69abc24912995b3038597a7a593be5053eb0fb44f3cc5beec0deb421790c1f4"
 +dependencies = [
 + "proc-macro2",
 + "quote",
@@ -557,15 +556,15 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "unicode-width"
-+version = "0.1.7"
++version = "0.1.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
 +
 +[[package]]
 +name = "unicode-xid"
-+version = "0.2.0"
++version = "0.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
 +
 +[[package]]
 +name = "url"
@@ -580,15 +579,15 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "vcpkg"
-+version = "0.2.8"
++version = "0.2.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168"
++checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
 +
 +[[package]]
 +name = "vec_map"
-+version = "0.8.1"
++version = "0.8.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
 +
 +[[package]]
 +name = "vswhom"
@@ -618,9 +617,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "winapi"
-+version = "0.3.8"
++version = "0.3.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
 +dependencies = [
 + "winapi-i686-pc-windows-gnu",
 + "winapi-x86_64-pc-windows-gnu",
@@ -646,6 +645,3 @@ index 000000000..0b3a75632
 +dependencies = [
 + "winapi",
 +]
--- 
-2.25.0
-
diff --git a/pkgs/tools/package-management/cargo-update/default.nix b/pkgs/tools/package-management/cargo-update/default.nix
index 8dc07d287d2..62f73565b94 100644
--- a/pkgs/tools/package-management/cargo-update/default.nix
+++ b/pkgs/tools/package-management/cargo-update/default.nix
@@ -2,36 +2,51 @@
 , rustPlatform
 , fetchFromGitHub
 , cmake
+, pkg-config
+, installShellFiles
+, ronn
 , curl
 , libgit2
 , libssh2
 , openssl
-, pkg-config
-, zlib }:
+, Security
+, zlib
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-update";
-  version = "3.0.0";
+  version = "4.1.1";
 
   src = fetchFromGitHub {
     owner = "nabijaczleweli";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1jyfv8aa0gp67pvv8l2vkqq4j9rgjl4rq1wn4nqxb44gmvkg15l3";
+    sha256 = "03yfn6jq33mykk2cicx54cpddilp62pb5ah75n96k1mwy7c46r6g";
   };
 
-  cargoPatches = [ ./0001-Generate-lockfile-for-cargo-update-v3.0.0.patch ];
-  cargoSha256 = "034v1ql5k3n3rgi3aqszkybvv3vc80v263c9nlwxcwbswsh9jpp1";
+  cargoPatches = [ ./0001-Generate-lockfile-for-cargo-update-v4.1.1.patch ];
+  cargoSha256 = "1yaawp015gdnlfqkdmqsf95gszz0h5j1vpfjh763y7kk0bp7zswl";
+
+  nativeBuildInputs = [ cmake installShellFiles pkg-config ronn ];
 
-  nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ libgit2 libssh2 openssl zlib ]
-    ++ stdenv.lib.optional stdenv.isDarwin curl;
+    ++ stdenv.lib.optionals stdenv.isDarwin [ curl Security ];
+
+  postBuild = ''
+    # Man pages contain non-ASCII, so explicitly set encoding to UTF-8.
+    HOME=$TMPDIR \
+    RUBYOPT="-E utf-8:utf-8" \
+      ronn -r --organization="cargo-update developers" man/*.md
+  '';
+
+  postInstall = ''
+    installManPage man/*.1
+  '';
 
   meta = with stdenv.lib; {
     description = "A cargo subcommand for checking and applying updates to installed executables";
     homepage = "https://github.com/nabijaczleweli/cargo-update";
     license = licenses.mit;
-    maintainers = with maintainers; [ gerschtli filalex77 ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ gerschtli filalex77 johntitor ];
   };
 }
diff --git a/pkgs/tools/package-management/clib/default.nix b/pkgs/tools/package-management/clib/default.nix
index c7e3c0fb665..31558912027 100644
--- a/pkgs/tools/package-management/clib/default.nix
+++ b/pkgs/tools/package-management/clib/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, curl  }:
 
 stdenv.mkDerivation rec {
-  version = "1.11.3";
+  version = "1.11.4";
   pname = "clib";
 
   src = fetchFromGitHub {
     rev    = version;
     owner  = "clibs";
     repo   = "clib";
-    sha256 = "0qwds9w9y2dy39bwh2523wra5dj820cjl11ynkshh7k94fk7qgpm";
+    sha256 = "0cxldyx5bsld8gdasqpqlnzyap294hlkgcjyw3vlzlxcb0izjy8i";
   };
 
   hardeningDisable = [ "fortify" ];
diff --git a/pkgs/tools/package-management/dpkg/default.nix b/pkgs/tools/package-management/dpkg/default.nix
index 8d012c90f92..8b9d812ee36 100644
--- a/pkgs/tools/package-management/dpkg/default.nix
+++ b/pkgs/tools/package-management/dpkg/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dpkg";
-  version = "1.20.0";
+  version = "1.20.5";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/d/dpkg/dpkg_${version}.tar.xz";
-    sha256 = "0009dp4p3d2j5vd956achqczf8qizfixha8hw5hzn3h31qmwqcxn";
+    sha256 = "1pg0yd1q9l5cx7pr0853yds1n3mh5b28zkw79gjqjzcmjwqkzwpj";
   };
 
   configureFlags = [
@@ -69,6 +69,6 @@ stdenv.mkDerivation rec {
     homepage = "https://wiki.debian.org/Teams/Dpkg";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ siriobalmelli ];
   };
 }
diff --git a/pkgs/tools/package-management/emplace/default.nix b/pkgs/tools/package-management/emplace/default.nix
index 92407e63994..5d3d8e15e3e 100644
--- a/pkgs/tools/package-management/emplace/default.nix
+++ b/pkgs/tools/package-management/emplace/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "emplace";
-  version = "0.3.5";
+  version = "0.3.6";
 
   src = fetchFromGitHub {
     owner = "tversteeg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0l68pcln18hgvqayhdnjv70fcs2y7j3fpiyfm3kl0gpykj7l969r";
+    sha256 = "15d21qv8cbzwpz2gsq1cgvxdbqm45zq2wfphhjqq77z1kay43m3f";
   };
 
-  cargoSha256 = "0j953c2h5asvr6fvklbdkk7vkdzdbp9zbzxxiic1gjv953gmw0qq";
+  cargoSha256 = "0xd1b0rfrf3a6j0xkyfqz2pd0lkb6dpqyyghli9a8kh0kdfxvndj";
 
   meta = with lib; {
     description = "Mirror installed software on multiple machines";
diff --git a/pkgs/tools/package-management/librepo/default.nix b/pkgs/tools/package-management/librepo/default.nix
index 6914f1af5f1..0e2cec68520 100644
--- a/pkgs/tools/package-management/librepo/default.nix
+++ b/pkgs/tools/package-management/librepo/default.nix
@@ -13,7 +13,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.11.3";
+  version = "1.12.1";
   pname = "librepo";
 
   outputs = [ "out" "dev" "py" ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "rpm-software-management";
     repo = "librepo";
     rev = version;
-    sha256 = "1kdv0xyrbd942if82yvm9ykcskziq2xhw5cpb3xv4wx32a9kc8yz";
+    sha256 = "0793j35fcv6bbz2pkd5rcsmx37hb1f0y48r4758cbfnl9rbp9y4z";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/package-management/licensee/Gemfile b/pkgs/tools/package-management/licensee/Gemfile
new file mode 100644
index 00000000000..a5d0dacfcfa
--- /dev/null
+++ b/pkgs/tools/package-management/licensee/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'licensee'
diff --git a/pkgs/tools/package-management/licensee/Gemfile.lock b/pkgs/tools/package-management/licensee/Gemfile.lock
new file mode 100644
index 00000000000..00d62361e69
--- /dev/null
+++ b/pkgs/tools/package-management/licensee/Gemfile.lock
@@ -0,0 +1,38 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    addressable (2.7.0)
+      public_suffix (>= 2.0.2, < 5.0)
+    dotenv (2.7.6)
+    faraday (1.0.1)
+      multipart-post (>= 1.2, < 3)
+    licensee (9.14.0)
+      dotenv (~> 2.0)
+      octokit (~> 4.17)
+      reverse_markdown (~> 1.0)
+      rugged (~> 0.24)
+      thor (>= 0.19, < 2.0)
+    mini_portile2 (2.4.0)
+    multipart-post (2.1.1)
+    nokogiri (1.10.10)
+      mini_portile2 (~> 2.4.0)
+    octokit (4.18.0)
+      faraday (>= 0.9)
+      sawyer (~> 0.8.0, >= 0.5.3)
+    public_suffix (4.0.5)
+    reverse_markdown (1.4.0)
+      nokogiri
+    rugged (0.99.0)
+    sawyer (0.8.2)
+      addressable (>= 2.3.5)
+      faraday (> 0.8, < 2.0)
+    thor (1.0.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  licensee
+
+BUNDLED WITH
+   2.1.4
diff --git a/pkgs/tools/package-management/licensee/default.nix b/pkgs/tools/package-management/licensee/default.nix
new file mode 100644
index 00000000000..fb33f498bbc
--- /dev/null
+++ b/pkgs/tools/package-management/licensee/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+  pname = "licensee";
+  gemdir = ./.;
+  exes = [ "licensee" ];
+
+  passthru.updateScript = bundlerUpdateScript "licensee";
+
+  meta = with lib; {
+    description = "A Ruby Gem to detect under what license a project is distributed";
+    homepage    = "https://licensee.github.io/licensee/";
+    license     = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/package-management/licensee/gemset.nix b/pkgs/tools/package-management/licensee/gemset.nix
new file mode 100644
index 00000000000..b3b326f6b31
--- /dev/null
+++ b/pkgs/tools/package-management/licensee/gemset.nix
@@ -0,0 +1,139 @@
+{
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  dotenv = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0iym172c5337sm1x2ykc2i3f961vj3wdclbyg1x6sxs3irgfsl94";
+      type = "gem";
+    };
+    version = "2.7.6";
+  };
+  faraday = {
+    dependencies = ["multipart-post"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wwks9652xwgjm7yszcq5xr960pjypc07ivwzbjzpvy9zh2fw6iq";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  licensee = {
+    dependencies = ["dotenv" "octokit" "reverse_markdown" "rugged" "thor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mv7khv080p81x6indb5akr2a1x84l2xy96a6bziw207291lxx7p";
+      type = "gem";
+    };
+    version = "9.14.0";
+  };
+  mini_portile2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  multipart-post = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      type = "gem";
+    };
+    version = "1.10.10";
+  };
+  octokit = {
+    dependencies = ["faraday" "sawyer"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zvfr9njmj5svi39fcsi2b0g7pcxb0vamw9dlyas8bg814jlzhi6";
+      type = "gem";
+    };
+    version = "4.18.0";
+  };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g";
+      type = "gem";
+    };
+    version = "4.0.5";
+  };
+  reverse_markdown = {
+    dependencies = ["nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w786j869fjhjf72waj0hc9i4ghi45b78a2am27kij4sa2hmsc53";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  rugged = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04rkxwzaa6897da3mnm70g720gpxwyh71krfn6ag1dkk80x8a8yz";
+      type = "gem";
+    };
+    version = "0.99.0";
+  };
+  sawyer = {
+    dependencies = ["addressable" "faraday"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yrdchs3psh583rjapkv33mljdivggqn99wkydkjdckcjn43j3cz";
+      type = "gem";
+    };
+    version = "0.8.2";
+  };
+  thor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+}
\ No newline at end of file
diff --git a/pkgs/tools/package-management/mynewt-newt/default.nix b/pkgs/tools/package-management/mynewt-newt/default.nix
index ce155b72fc3..d559ca8921c 100644
--- a/pkgs/tools/package-management/mynewt-newt/default.nix
+++ b/pkgs/tools/package-management/mynewt-newt/default.nix
@@ -24,6 +24,8 @@ buildGoModule rec {
 
   vendorSha256 = "1sh9mx3lc28fzvc1yrhz58rlbaac7aq1dqyvxwj98vld3kigpv1z";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = "https://mynewt.apache.org/";
     description = "Build and package management tool for embedded development.";
@@ -36,4 +38,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ pjones ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/package-management/nfpm/default.nix b/pkgs/tools/package-management/nfpm/default.nix
index 17fa6fad83a..18a1da8ce5f 100644
--- a/pkgs/tools/package-management/nfpm/default.nix
+++ b/pkgs/tools/package-management/nfpm/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "nfpm";
-  version = "1.3.2";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1z6z4ad5id6bcxzd8p76akxwvf5jzr54w81798ri9lysf4hdi6sh";
+    sha256 = "0jmxafvxzqg65zg5cnjd2nsz1mmw06mc7qz3lbs5h2gkxiah8264";
   };
 
-  vendorSha256 = "0v14j4vsp7f29xajym2dd2zlfv0sqhb04qfs76bcnn0ys6j1xkny";
+  vendorSha256 = "0yvzwbm0xb1h45x96h658avbjz9w79aaa6z042xpvjqc4wsr8155";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
@@ -21,4 +23,4 @@ buildGoModule rec {
     maintainers = [ maintainers.marsam ];
     license = licenses.mit;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/package-management/nix-doc/default.nix b/pkgs/tools/package-management/nix-doc/default.nix
new file mode 100644
index 00000000000..630ac6e94a9
--- /dev/null
+++ b/pkgs/tools/package-management/nix-doc/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, rustPlatform, fetchFromGitHub, boost, nix, pkg-config }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nix-doc";
+  version = "0.3.3";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "lf-";
+    repo = "nix-doc";
+    sha256 = "0vd7159y5w8jjgaw51kfr3z3r50299gvw7vjchpqx3nwmdink8bh";
+  };
+
+  doCheck = true;
+  buildInputs = [ boost nix ];
+
+  nativeBuildInputs = [ pkg-config ];
+
+  cargoSha256 = "1xz3qngs8p0s62dq4d46c01z3k1vvgg856767g56b13c38pzfh28";
+
+  meta = with stdenv.lib; {
+    description = "An interactive Nix documentation tool";
+    longDescription = "An interactive Nix documentation tool providing a CLI for function search and a Nix plugin for docs in the REPL";
+    homepage = "https://github.com/lf-/nix-doc";
+    license = licenses.lgpl3;
+    maintainers = [ maintainers.lf- ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/package-management/nix-du/default.nix b/pkgs/tools/package-management/nix-du/default.nix
index 417962733af..8356e43e2e6 100644
--- a/pkgs/tools/package-management/nix-du/default.nix
+++ b/pkgs/tools/package-management/nix-du/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nix-du";
-  version = "0.3.1";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = "symphorien";
     repo = "nix-du";
     rev = "v${version}";
-    sha256 = "149d60mid29s5alv5m3d7jrhyzc6cj7b6hpiq399gsdwzgxr00wq";
+    sha256 = "0h8ya0nn65hbyi3ssmrjarfxadx2sa61sspjlrln8knk7ppxk3mq";
   };
 
-  cargoSha256 = "1a6svl89dcdb5fpvs2i32i6agyhl0sx7kkkw70rqr17fyzl5psai";
+  cargoSha256 = "0d86bn6myr29bwrzw3ihnzg1yij673s80bm1l8srk2k2szyfwwh5";
 
   doCheck = true;
   checkInputs = [ nix graphviz ];
diff --git a/pkgs/tools/package-management/nix-index/default.nix b/pkgs/tools/package-management/nix-index/default.nix
index db26f9e0b08..37a638c5670 100644
--- a/pkgs/tools/package-management/nix-index/default.nix
+++ b/pkgs/tools/package-management/nix-index/default.nix
@@ -35,6 +35,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/bennofs/nix-index";
     license = with licenses; [ bsd3 ];
     maintainers = [ maintainers.bennofs ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/package-management/nix-prefetch/default.nix b/pkgs/tools/package-management/nix-prefetch/default.nix
index 1a750da6930..edc8e8bf1a1 100644
--- a/pkgs/tools/package-management/nix-prefetch/default.nix
+++ b/pkgs/tools/package-management/nix-prefetch/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, installShellFiles, makeWrapper, asciidoc
 , docbook_xml_dtd_45, git, docbook_xsl, libxml2, libxslt, coreutils, gawk
-, gnugrep, gnused, jq, nix }:
+, gnugrep, gnused, jq, nix, fetchpatch }:
 
 let
   binPath = stdenv.lib.makeBinPath [ coreutils gawk git gnugrep gnused jq nix ];
@@ -20,6 +20,14 @@ in stdenv.mkDerivation rec {
     '';
   };
 
+  patches = [
+    # Fix compatibility with nixUnstable: https://github.com/msteen/nix-prefetch/pull/8
+    (fetchpatch {
+      url = "https://github.com/msteen/nix-prefetch/commit/817a7695d98663386fa27a6c04d1617e0a83e1ab.patch";
+      sha256 = "1zfgvafg30frwrh56k2wj4g76cljyjylm47ll60ms0yfx55spa7x";
+    })
+  ];
+
   postPatch = ''
     lib=$out/lib/${pname}
 
diff --git a/pkgs/tools/package-management/nix-simple-deploy/default.nix b/pkgs/tools/package-management/nix-simple-deploy/default.nix
index 3bc0b35c0f1..5782aa9dc35 100644
--- a/pkgs/tools/package-management/nix-simple-deploy/default.nix
+++ b/pkgs/tools/package-management/nix-simple-deploy/default.nix
@@ -17,7 +17,6 @@ rustPlatform.buildRustPackage rec {
     description = "Deploy software or an entire NixOS system configuration to another NixOS system";
     homepage = "https://github.com/misuzu/nix-simple-deploy";
     license = with licenses; [ asl20 /* OR */ mit ];
-    platforms = platforms.all;
     maintainers = with maintainers; [ misuzu ];
   };
 }
diff --git a/pkgs/tools/package-management/nix-template/default.nix b/pkgs/tools/package-management/nix-template/default.nix
new file mode 100644
index 00000000000..0ef3602c597
--- /dev/null
+++ b/pkgs/tools/package-management/nix-template/default.nix
@@ -0,0 +1,23 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nix-template";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "jonringer";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1h6xdvhzg7nb0s82b3r5bsh8bfdb1l5sm7fa24lfwd396xp9yyig";
+  };
+
+  cargoSha256 = "13y3b60xnry71999kygvkr29gkyjss3ga3rzb43ajah4qp90rsqs";
+
+  meta = with lib; {
+    description = "Make creating nix expressions easy";
+    homepage = "https://github.com/jonringer/nix-template/";
+    changelog = "https://github.com/jonringer/nix-template/releases/tag/v${version}";
+    license = licenses.cc0;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index a7eca679780..2acf5d194e0 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -42,14 +42,14 @@ common =
       nativeBuildInputs =
         [ pkgconfig ]
         ++ lib.optionals is24 [ autoreconfHook autoconf-archive bison flex libxml2 libxslt
-                                docbook5 docbook_xsl_ns jq gmock ];
+                                docbook5 docbook_xsl_ns jq ];
 
       buildInputs =
         [ curl openssl sqlite xz bzip2 nlohmann_json
           brotli boost editline
         ]
         ++ lib.optional (stdenv.isLinux || stdenv.isDarwin) libsodium
-        ++ lib.optionals is24 [ libarchive ]
+        ++ lib.optionals is24 [ libarchive gmock ]
         ++ lib.optional withLibseccomp libseccomp
         ++ lib.optional withAWS
             ((aws-sdk-cpp.override {
@@ -119,7 +119,8 @@ common =
            # RISC-V support in progress https://github.com/seccomp/libseccomp/pull/50
         ++ lib.optional (!withLibseccomp) "--disable-seccomp-sandboxing";
 
-      makeFlags = [ "profiledir=$(out)/etc/profile.d" ];
+      makeFlags = [ "profiledir=$(out)/etc/profile.d" ]
+        ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "PRECOMPILE_HEADERS=0";
 
       installFlags = [ "sysconfdir=$(out)/etc" ];
 
@@ -182,10 +183,10 @@ in rec {
   nix = nixStable;
 
   nixStable = callPackage common (rec {
-    name = "nix-2.3.6";
+    name = "nix-2.3.7";
     src = fetchurl {
       url = "https://nixos.org/releases/nix/${name}/${name}.tar.xz";
-      sha256 = "05e90529c9dc9f4bf656cbceae61cafdca49935bb79cd291c8f078a095701d89";
+      sha256 = "dd8f52849414e5a878afe7e797aa4e22bab77c875d9da5a38d5f1bada704e596";
     };
 
     inherit storeDir stateDir confDir boehmgc;
@@ -194,31 +195,19 @@ in rec {
   });
 
   nixUnstable = lib.lowPrio (callPackage common rec {
-    name = "nix-2.4${suffix}";
-    suffix = "pre7805_984e5213";
+    name = "nix-3.0${suffix}";
+    suffix = "pre20200829_f156513";
 
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "984e521392b3f41f7cdab203e5c00f3e00e27a28";
-      sha256 = "1dch48018dwzx9cysnfxrdpszav87s0d635zqw810mgmqpm25fw8";
+      rev = "f15651303f8596bf34c67fc8d536b1e9e7843a87";
+      hash = "sha256-HqM3Z4DLdMrf+0PPZL9ysctGg+K+i3S/IHA1GsJj0Ro=";
     };
 
     inherit storeDir stateDir confDir boehmgc;
   });
 
-  nixFlakes = lib.lowPrio (callPackage common rec {
-    name = "nix-2.4${suffix}";
-    suffix = "pre20200622_334e26b";
-
-    src = fetchFromGitHub {
-      owner = "NixOS";
-      repo = "nix";
-      rev = "334e26bfc2ce82912602e8a0f9f9c7e0fb5c3221";
-      sha256 = "14a2yyn1ygymlci6hl5d308fs3p3m0mgcfs5dc8dn0s3lg5qvbmp";
-    };
-
-    inherit storeDir stateDir confDir boehmgc;
-  });
+  nixFlakes = nixUnstable;
 
 }
diff --git a/pkgs/tools/package-management/nixpkgs-review/default.nix b/pkgs/tools/package-management/nixpkgs-review/default.nix
index 922546009fc..935f6553f9c 100644
--- a/pkgs/tools/package-management/nixpkgs-review/default.nix
+++ b/pkgs/tools/package-management/nixpkgs-review/default.nix
@@ -8,13 +8,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "nixpkgs-review";
-  version = "2.3.1";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "nixpkgs-review";
     rev = version;
-    sha256 = "1v988jsxx2r82q6mf3503130cny088hin2as00yi26jzxjkrjcli";
+    sha256 = "0kca4442mla8j9980gi8kgp0vgm0f15hcjd0w0wdj8rlmkx9yf2l";
   };
 
   makeWrapperArgs = [
diff --git a/pkgs/tools/package-management/opkg/default.nix b/pkgs/tools/package-management/opkg/default.nix
index c097674135c..9195804a43d 100644
--- a/pkgs/tools/package-management/opkg/default.nix
+++ b/pkgs/tools/package-management/opkg/default.nix
@@ -2,11 +2,11 @@
 , autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  version = "0.4.2";
+  version = "0.4.3";
   pname = "opkg";
   src = fetchurl {
     url = "https://downloads.yoctoproject.org/releases/opkg/opkg-${version}.tar.gz";
-    sha256 = "01p1a7hw9q9ixfk01djyy9axs71z1x9dkdnqz7zysmrlqi97i246";
+    sha256 = "06278gmb26b9nl8l328cc2c2mhfi0dhac65syws17kf09f2m596x";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
diff --git a/pkgs/tools/package-management/pacman/default.nix b/pkgs/tools/package-management/pacman/default.nix
index 3ca55ddbbf2..980f0d1e0c9 100644
--- a/pkgs/tools/package-management/pacman/default.nix
+++ b/pkgs/tools/package-management/pacman/default.nix
@@ -3,11 +3,11 @@ lzma, curl, runtimeShell }:
 
 stdenv.mkDerivation rec {
   pname = "pacman";
-  version = "5.2.1";
+  version = "5.2.2";
 
   src = fetchurl {
     url = "https://sources.archlinux.org/other/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "04pkb8qvkldrayfns8cx4fljl4lyys1dqvlf7b5kkl2z4q3w8c0r";
+    sha256 = "1829jcc300fxidr3cahx5kpnxkpg500daqgn2782hg5m5ygil85v";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/tools/security/1password-gui/default.nix b/pkgs/tools/security/1password-gui/default.nix
new file mode 100644
index 00000000000..91052f945ed
--- /dev/null
+++ b/pkgs/tools/security/1password-gui/default.nix
@@ -0,0 +1,70 @@
+{ stdenv
+, fetchurl
+, appimageTools
+, makeWrapper
+, electron
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "1password";
+  version = "0.8.4";
+
+  src = fetchurl {
+    url = "https://onepassword.s3.amazonaws.com/linux/appimage/${pname}-${version}.AppImage";
+    sha256 = "04rjlyi465pkg75pql3rfzmfj9zf8pfnxynz110x1wkqnvqmsxgw";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  appimageContents = appimageTools.extractType2 {
+    name = "${pname}-${version}";
+    inherit src;
+  };
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = let
+    runtimeLibs = [
+      openssl.out
+      stdenv.cc.cc
+    ];
+  in ''
+    mkdir -p $out/bin $out/share/1password
+
+    # Applications files.
+    cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
+
+    # Desktop file.
+    install -Dt $out/share/applications ${appimageContents}/${pname}.desktop
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+
+    # Icons.
+    cp -a ${appimageContents}/usr/share/icons $out/share
+
+    # Wrap the application with Electron.
+    makeWrapper "${electron}/bin/electron" "$out/bin/${pname}" \
+      --add-flags "$out/share/${pname}/resources/app.asar" \
+      --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath runtimeLibs}"
+  '';
+
+  passthru.updateScript = ./update.sh;
+
+  meta = with stdenv.lib; {
+    description = "Multi-platform password manager";
+    longDescription = ''
+      1Password is a multi-platform package manager.
+
+      The Linux version is currently a development preview and can
+      only be used to search, view, and copy items. However items
+      cannot be created or edited.
+    '';
+    homepage = "https://1password.com/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ danieldk ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/tools/security/1password-gui/update.sh b/pkgs/tools/security/1password-gui/update.sh
new file mode 100755
index 00000000000..7703aba9984
--- /dev/null
+++ b/pkgs/tools/security/1password-gui/update.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused common-updater-scripts
+
+version="$(curl -sL https://onepassword.s3.amazonaws.com/linux/debian/dists/edge/main/binary-amd64/Packages | sed -r -n 's/^Version: (.*)-[0-9]+/\1/p' | head -n1)"
+update-source-version _1password-gui "$version"
diff --git a/pkgs/tools/security/2fa/default.nix b/pkgs/tools/security/2fa/default.nix
index cf14ec12402..7b6048660c4 100644
--- a/pkgs/tools/security/2fa/default.nix
+++ b/pkgs/tools/security/2fa/default.nix
@@ -16,7 +16,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     homepage = "https://rsc.io/2fa";
     description = "Two-factor authentication on the command line";
-    platforms = platforms.all;
     maintainers = with maintainers; [ rvolosatovs ];
     license = licenses.bsd3;
   };
diff --git a/pkgs/tools/security/afl/default.nix b/pkgs/tools/security/afl/default.nix
index e32aa034874..091b52bfcf0 100644
--- a/pkgs/tools/security/afl/default.nix
+++ b/pkgs/tools/security/afl/default.nix
@@ -9,13 +9,13 @@ let
     else throw "afl: no support for ${stdenv.hostPlatform.system}!";
   afl = stdenv.mkDerivation rec {
     pname = "afl";
-    version = "2.56b";
+    version = "2.57b";
 
     src = fetchFromGitHub {
       owner = "google";
       repo = pname;
       rev = "v${version}";
-      sha256 = "1q1g59gkm48aa4cg9h70jx4i2gapmypgp5rzs156b2avd95vwkn1";
+      sha256 = "0fqj3g6ds1f21kxz7m9mc1fspi9r4jg9jcmi60inwxijrc5ncvr6";
     };
     enableParallelBuilding = true;
 
diff --git a/pkgs/tools/security/age/default.nix b/pkgs/tools/security/age/default.nix
index 429a8689a1f..8a6d008551e 100644
--- a/pkgs/tools/security/age/default.nix
+++ b/pkgs/tools/security/age/default.nix
@@ -3,9 +3,10 @@
 buildGoModule rec {
   pname = "age";
   version = "1.0.0-beta4";
-  goPackagePath = "github.com/FiloSottile/age";
   vendorSha256 = "0km7a2826j3fk2nrkmgc990chrkcfz006wfw14yilsa4p2hmfl7m";
 
+  doCheck = false;
+
   subPackages = [
     "cmd/age"
     "cmd/age-keygen"
diff --git a/pkgs/tools/security/aws-okta/default.nix b/pkgs/tools/security/aws-okta/default.nix
index 909c822374f..b540be3928a 100644
--- a/pkgs/tools/security/aws-okta/default.nix
+++ b/pkgs/tools/security/aws-okta/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "aws-okta";
-  version = "1.0.2";
+  version = "1.0.4";
 
   goPackagePath = "github.com/segmentio/aws-okta";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "segmentio";
     repo = "aws-okta";
     rev = "v${version}";
-    sha256 = "0rqkbhprz1j9b9bx3wvl5zi4p02q1qza905wkrvh42f9pbknajww";
+    sha256 = "0a7xccnv0x0a6sydif0rvkdbw4jy9gjijajip1ac6m70l20dhl1v";
   };
 
   buildFlags = [ "--tags" "release" ];
@@ -25,7 +25,6 @@ buildGoPackage rec {
     description = "aws-vault like tool for Okta authentication";
     license = licenses.mit;
     maintainers = [maintainers.imalsogreg];
-    platforms = platforms.all;
     homepage = "https://github.com/segmentio/aws-okta";
     downloadPage = "https://github.com/segmentio/aws-okta";
   };
diff --git a/pkgs/tools/security/b3sum/add-cargo-lock.patch b/pkgs/tools/security/b3sum/add-cargo-lock.patch
index 309e0f147e7..ecbb2b0bab9 100644
--- a/pkgs/tools/security/b3sum/add-cargo-lock.patch
+++ b/pkgs/tools/security/b3sum/add-cargo-lock.patch
@@ -1,585 +1,501 @@
---- /dev/null	2020-01-18 15:11:39.204798767 +0100
-+++ b3sum/Cargo.lock	2020-01-24 14:27:29.593356345 +0100
-@@ -0,0 +1,582 @@
+diff --git a/b3sum/Cargo.lock b/b3sum/Cargo.lock
+new file mode 100644
+index 0000000..1ce7abc
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,495 @@
 +# This file is automatically @generated by Cargo.
 +# It is not intended for manual editing.
 +[[package]]
++name = "ansi_term"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
++dependencies = [
++ "winapi",
++]
++
++[[package]]
 +name = "anyhow"
-+version = "1.0.26"
++version = "1.0.31"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "85bb70cc08ec97ca5450e6eba421deeea5f172c0fc61f78b5357b2a8e8be195f"
 +
 +[[package]]
 +name = "arrayref"
-+version = "0.3.5"
++version = "0.3.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
 +
 +[[package]]
 +name = "arrayvec"
 +version = "0.5.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
 +
 +[[package]]
-+name = "assert_cmd"
-+version = "0.12.0"
++name = "atty"
++version = "0.2.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
 +dependencies = [
-+ "doc-comment 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "escargot 0.5.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)",
++ "hermit-abi",
++ "libc",
++ "winapi",
 +]
 +
 +[[package]]
 +name = "autocfg"
-+version = "0.1.7"
++version = "1.0.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
 +
 +[[package]]
 +name = "b3sum"
-+version = "0.1.3"
++version = "0.3.4"
 +dependencies = [
-+ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "assert_cmd 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "blake3 0.1.3",
-+ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "duct 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "hex 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "anyhow",
++ "blake3",
++ "clap",
++ "duct",
++ "hex",
++ "memmap",
++ "rayon",
++ "tempfile",
++ "wild",
 +]
 +
 +[[package]]
 +name = "bitflags"
 +version = "1.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
 +
 +[[package]]
 +name = "blake3"
-+version = "0.1.3"
-+dependencies = [
-+ "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.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)",
-+ "rayon 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "c2-chacha"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
++version = "0.3.4"
 +dependencies = [
-+ "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "arrayref",
++ "arrayvec",
++ "cc",
++ "cfg-if",
++ "constant_time_eq",
++ "crypto-mac",
++ "digest",
++ "rayon",
 +]
 +
 +[[package]]
 +name = "cc"
-+version = "1.0.50"
++version = "1.0.57"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0fde55d2a2bfaa4c9668bbc63f531fbdeee3ffe188f4662511ce2c22b3eedebe"
 +
 +[[package]]
 +name = "cfg-if"
 +version = "0.1.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
 +
 +[[package]]
 +name = "clap"
-+version = "2.33.0"
++version = "2.33.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
 +dependencies = [
-+ "bitflags 1.2.1 (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)",
++ "ansi_term",
++ "atty",
++ "bitflags",
++ "strsim",
++ "textwrap",
++ "unicode-width",
++ "vec_map",
 +]
 +
 +[[package]]
 +name = "constant_time_eq"
 +version = "0.1.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
 +
 +[[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",
++ "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",
++ "cfg-if",
++ "crossbeam-utils",
++ "lazy_static",
++ "maybe-uninit",
++ "memoffset",
++ "scopeguard",
 +]
 +
 +[[package]]
 +name = "crossbeam-queue"
-+version = "0.2.1"
++version = "0.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
 +dependencies = [
-+ "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)",
++ "cfg-if",
++ "crossbeam-utils",
++ "maybe-uninit",
 +]
 +
 +[[package]]
 +name = "crossbeam-utils"
-+version = "0.7.0"
++version = "0.7.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
 +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",
++ "cfg-if",
++ "lazy_static",
 +]
 +
 +[[package]]
-+name = "difference"
-+version = "2.0.0"
++name = "crypto-mac"
++version = "0.7.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5"
++dependencies = [
++ "generic-array",
++ "subtle",
++]
 +
 +[[package]]
-+name = "doc-comment"
-+version = "0.3.1"
++name = "digest"
++version = "0.8.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
++dependencies = [
++ "generic-array",
++]
 +
 +[[package]]
 +name = "duct"
-+version = "0.13.3"
++version = "0.13.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f90a9c3a25aafbd538c7d40a53f83c4487ee8216c12d1c8ef2c01eb2f6ea1553"
 +dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "once_cell 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "os_pipe 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "shared_child 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "once_cell",
++ "os_pipe",
++ "shared_child",
 +]
 +
 +[[package]]
 +name = "either"
 +version = "1.5.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
 +
 +[[package]]
-+name = "escargot"
-+version = "0.5.0"
++name = "generic-array"
++version = "0.12.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
 +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)",
++ "typenum",
 +]
 +
 +[[package]]
 +name = "getrandom"
 +version = "0.1.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
 +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",
++ "libc",
++ "wasi",
 +]
 +
 +[[package]]
++name = "glob"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
++
++[[package]]
 +name = "hermit-abi"
-+version = "0.1.6"
++version = "0.1.15"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
 +dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
 +]
 +
 +[[package]]
 +name = "hex"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "itoa"
-+version = "0.4.4"
++version = "0.4.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35"
 +
 +[[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.71"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"
 +
 +[[package]]
-+name = "log"
-+version = "0.4.8"
++name = "maybe-uninit"
++version = "2.0.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
++checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
 +
 +[[package]]
 +name = "memmap"
 +version = "0.7.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
 +dependencies = [
-+ "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)",
++ "libc",
++ "winapi",
 +]
 +
 +[[package]]
 +name = "memoffset"
-+version = "0.5.3"
++version = "0.5.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f"
 +dependencies = [
-+ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg",
 +]
 +
 +[[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 = "once_cell"
-+version = "1.3.1"
++version = "1.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
 +
 +[[package]]
 +name = "os_pipe"
-+version = "0.9.1"
++version = "0.9.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fb233f06c2307e1f5ce2ecad9f8121cffbbee2c95428f44ea85222e460d0d213"
 +dependencies = [
-+ "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)",
++ "libc",
++ "winapi",
 +]
 +
 +[[package]]
 +name = "ppv-lite86"
-+version = "0.2.6"
++version = "0.2.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "predicates"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "predicates-core 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "predicates-core"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "predicates-tree"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "proc-macro2"
-+version = "1.0.8"
-+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)",
-+]
-+
-+[[package]]
-+name = "quote"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
++checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
 +
 +[[package]]
 +name = "rand"
 +version = "0.7.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
 +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)",
++ "getrandom",
++ "libc",
++ "rand_chacha",
++ "rand_core",
++ "rand_hc",
 +]
 +
 +[[package]]
 +name = "rand_chacha"
-+version = "0.2.1"
++version = "0.2.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
 +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",
 +]
 +
 +[[package]]
 +name = "rand_core"
 +version = "0.5.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
 +dependencies = [
-+ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom",
 +]
 +
 +[[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 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core",
 +]
 +
 +[[package]]
 +name = "rayon"
-+version = "1.3.0"
++version = "1.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080"
 +dependencies = [
-+ "crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rayon-core 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg",
++ "crossbeam-deque",
++ "either",
++ "rayon-core",
 +]
 +
 +[[package]]
 +name = "rayon-core"
-+version = "1.7.0"
++version = "1.7.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280"
 +dependencies = [
-+ "crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-queue 0.2.1 (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)",
-+ "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-deque",
++ "crossbeam-queue",
++ "crossbeam-utils",
++ "lazy_static",
++ "num_cpus",
 +]
 +
 +[[package]]
 +name = "redox_syscall"
 +version = "0.1.56"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
 +
 +[[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 = "rustc_version"
-+version = "0.2.3"
++version = "0.5.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
 +dependencies = [
-+ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi",
 +]
 +
 +[[package]]
-+name = "ryu"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[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.104"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "serde_derive"
-+version = "1.0.104"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
-+
-+[[package]]
-+name = "serde_json"
-+version = "1.0.45"
++name = "shared_child"
++version = "0.3.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8cebcf3a403e4deafaf34dc882c4a1b6a648b43e5670aa2e4bb985914eaeb2d2"
 +dependencies = [
-+ "itoa 0.4.4 (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)",
++ "libc",
++ "winapi",
 +]
 +
 +[[package]]
-+name = "shared_child"
-+version = "0.3.4"
++name = "strsim"
++version = "0.8.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "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)",
-+]
++checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
 +
 +[[package]]
-+name = "syn"
-+version = "1.0.14"
++name = "subtle"
++version = "1.0.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+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)",
-+]
++checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee"
 +
 +[[package]]
 +name = "tempfile"
 +version = "3.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
 +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",
++ "libc",
++ "rand",
++ "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 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width",
 +]
 +
 +[[package]]
-+name = "treeline"
-+version = "0.1.0"
++name = "typenum"
++version = "1.12.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
 +
 +[[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.2.0"
++name = "vec_map"
++version = "0.8.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
 +
 +[[package]]
 +name = "wasi"
 +version = "0.9.0+wasi-snapshot-preview1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
++
++[[package]]
++name = "wild"
++version = "2.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "035793abb854745033f01a07647a79831eba29ec0be377205f2a25b0aa830020"
++dependencies = [
++ "glob",
++]
 +
 +[[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-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 anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)" = "7825f6833612eb2414095684fcf6c635becf3ce97fe48cf6421321e93bfbd53c"
-+"checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee"
-+"checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
-+"checksum assert_cmd 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6283bac8dd7226470d491bc4737816fea4ca1fba7a2847f2e9097fd6bfb4624c"
-+"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
-+"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-+"checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb"
-+"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 clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
-+"checksum constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
-+"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.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db"
-+"checksum crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce446db02cdc3165b94ae73111e570793400d0794e46125cc4056c81cbb039f4"
-+"checksum difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
-+"checksum doc-comment 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "923dea538cea0aa3025e8685b20d6ee21ef99c4f77e954a30febbaac5ec73a97"
-+"checksum duct 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1607fa68d55be208e83bcfbcfffbc1ec65c9fbcf9eb1a5d548dc3ac0100743b0"
-+"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
-+"checksum escargot 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "74cf96bec282dcdb07099f7e31d9fed323bca9435a09aba7b6d99b7617bca96d"
-+"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
-+"checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772"
-+"checksum hex 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "023b39be39e3a2da62a94feb433e91e8bcd37676fbc8bea371daf52b7a769a3e"
-+"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
-+"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 log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
-+"checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
-+"checksum memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "75189eb85871ea5c2e2c15abbdd541185f63b408415e5051f5cac122d8c774b9"
-+"checksum num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46203554f085ff89c235cd12f7075f3233af9b11ed7c9e16dfe2560d03313ce6"
-+"checksum once_cell 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b1c601810575c99596d4afc46f78a678c80105117c379eb3650cf99b8a21ce5b"
-+"checksum os_pipe 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "db4d06355a7090ce852965b2d08e11426c315438462638c6d721448d0b47aa22"
-+"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 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3acb317c6ff86a4e579dfa00fc5e6cca91ecbb4e7eb2df0468805b674eb88548"
-+"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
-+"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-+"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
-+"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-+"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-+"checksum rayon 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "db6ce3297f9c85e16621bb8cca38a06779ffc31bb8184e1be4bed2be4678a098"
-+"checksum rayon-core 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08a89b46efaf957e52b18062fb2f4660f8b8a4dde1807ca002690868ef2c85a9"
-+"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
-+"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
-+"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 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.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_json 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)" = "eab8f15f15d6c41a154c1b128a22f2dfabe350ef53c40953d84e36155c91192b"
-+"checksum shared_child 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8cebcf3a403e4deafaf34dc882c4a1b6a648b43e5670aa2e4bb985914eaeb2d2"
-+"checksum syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "af6f3550d8dff9ef7dc34d384ac6f107e5d31c8f57d9f28e0081503f547ac8f5"
-+"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 treeline 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
-+"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
-+"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
-+"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-+"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
-+"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/pkgs/tools/security/b3sum/default.nix b/pkgs/tools/security/b3sum/default.nix
index 6f783d07ced..dd6a538d11d 100644
--- a/pkgs/tools/security/b3sum/default.nix
+++ b/pkgs/tools/security/b3sum/default.nix
@@ -2,18 +2,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "b3sum";
-  version = "0.1.3";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "BLAKE3-team";
     repo = "BLAKE3";
     rev = version;
-    sha256 = "1aigwwv576ybb3x3fppq46kbvd3k4fc4w1hh2hkzyyic6fibwbpy";
+    sha256 = "02yyv91wvy5w7i05z6f3kzxm5x34a4xgkgmcqxnb0ivsxnnld73h";
   };
 
   sourceRoot = "source/b3sum";
 
-  cargoSha256 = "1rqhz2r60603mylazn37mkm783qb7qhjcg8cqss0iy1g752f3f2i";
+  cargoSha256 = "0ycn5788dc925wx28sgfs121w4x7yggm4mnmwij829ka8859bymk";
 
   cargoPatches = [ ./add-cargo-lock.patch ];
 
diff --git a/pkgs/tools/security/bettercap/default.nix b/pkgs/tools/security/bettercap/default.nix
index d3cc3c7cadb..a8ca38e1f1d 100644
--- a/pkgs/tools/security/bettercap/default.nix
+++ b/pkgs/tools/security/bettercap/default.nix
@@ -10,16 +10,18 @@
 
 buildGoModule rec {
   pname = "bettercap";
-  version = "2.27.1";
+  version = "2.28";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0jb78c3s6p210mj28qg4aacd8ly6d6k5h9c48y88vmcyllzjvbhl";
+    sha256 = "0aihinn3i3jj350l2rqph7nv3wy4nh4f8syidf77zybjcp9nmcys";
   };
 
-  vendorSha256 = "1j272w0zdndcz4fmh9fzbk2q8wmyfi70vn0p6d8cg0r0l231sbyx";
+  vendorSha256 = "0yfs1f18d8frbkrshsajzzbj4wh2azd89g2h35wm6wqknvlipwr0";
+
+  doCheck = false;
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ libpcap libnfnetlink libnetfilter_queue libusb1 ];
@@ -32,6 +34,5 @@ buildGoModule rec {
     homepage = "https://www.bettercap.org/";
     license = with licenses; gpl3;
     maintainers = with maintainers; [ y0no ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/security/bitwarden/default.nix b/pkgs/tools/security/bitwarden/default.nix
index ff55ad6691d..d383a00a7f2 100644
--- a/pkgs/tools/security/bitwarden/default.nix
+++ b/pkgs/tools/security/bitwarden/default.nix
@@ -6,6 +6,7 @@
 , makeDesktopItem
 , makeWrapper
 , stdenv
+, lib
 , udev
 , wrapGAppsHook
 }:
@@ -16,11 +17,11 @@ let
   pname = "bitwarden";
 
   version = {
-    x86_64-linux = "1.19.0";
+    x86_64-linux = "1.20.1";
   }.${system} or "";
 
   sha256 = {
-    x86_64-linux = "16qlgnqyi0jwzlz8wg2628jhh83xsk46bl6p4dnwi0ay07lhab9w";
+    x86_64-linux = "1lywslkpgg9rxwz7kwfknkgdi0r47j14i420r5yxgkaizb7ww27z";
   }.${system} or "";
 
   meta = with stdenv.lib; {
@@ -72,7 +73,7 @@ let
     '';
 
     runtimeDependencies = [
-      udev.lib
+      (lib.getLib udev)
     ];
 
     postFixup = ''
diff --git a/pkgs/tools/security/bitwarden_rs/default.nix b/pkgs/tools/security/bitwarden_rs/default.nix
index f2d0eb9b7d3..c2bb8324186 100644
--- a/pkgs/tools/security/bitwarden_rs/default.nix
+++ b/pkgs/tools/security/bitwarden_rs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, rustPlatform, fetchFromGitHub
+{ stdenv, rustPlatform, fetchFromGitHub, nixosTests
 , pkgconfig, openssl
 , Security, CoreServices
 , dbBackend ? "sqlite", libmysqlclient, postgresql }:
@@ -8,13 +8,13 @@ let
 
 in rustPlatform.buildRustPackage rec {
   pname = "bitwarden_rs";
-  version = "1.15.1";
+  version = "1.16.3";
 
   src = fetchFromGitHub {
     owner = "dani-garcia";
     repo = pname;
     rev = version;
-    sha256 = "1982bfprixdp8mx2hwidfvsi0zy7wmzf40m9m3cl5r7i2qydznwb";
+    sha256 = "1scy8abzy6j1jsms84cg2nqkn1zsxr5mjikp2xh0yl0ckkk13ffn";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -25,7 +25,7 @@ in rustPlatform.buildRustPackage rec {
 
   RUSTC_BOOTSTRAP = 1;
 
-  cargoSha256 = "08cygzgv82i10cj8lkjdah0arrdmlfcbdjwc8piwa629rr0584zf";
+  cargoSha256 = "112mvgq581cms0war5dbni7f7yryjr5agryzn5qx835qkznzar8s";
   cargoBuildFlags = [ featuresFlag ];
 
   checkPhase = ''
@@ -35,11 +35,12 @@ in rustPlatform.buildRustPackage rec {
     runHook postCheck
   '';
 
+  passthru.tests = nixosTests.bitwarden;
+
   meta = with stdenv.lib; {
     description = "Unofficial Bitwarden compatible server written in Rust";
     homepage = "https://github.com/dani-garcia/bitwarden_rs";
     license = licenses.gpl3;
     maintainers = with maintainers; [ msteen ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/security/bitwarden_rs/vault.nix b/pkgs/tools/security/bitwarden_rs/vault.nix
index 256bf458b3b..2ac50912c05 100644
--- a/pkgs/tools/security/bitwarden_rs/vault.nix
+++ b/pkgs/tools/security/bitwarden_rs/vault.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "bitwarden_rs-vault";
-  version = "2.14.0";
+  version = "2.15.1";
 
   src = fetchurl {
     url = "https://github.com/dani-garcia/bw_web_builds/releases/download/v${version}/bw_web_v${version}.tar.gz";
-    sha256 = "16620md9lsxw6s0qzv5vj9kfkgxnlaxfrax6s2h3h39skza80x2c";
+    sha256 = "1wvpg2awdbpbzhxhrf1iv1mjjc1ah54kswnznc7w5zbh9512dyx8";
   };
 
   buildCommand = ''
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
     mv web-vault vault
   '';
 
+  passthru.tests = nixosTests.bitwarden;
+
   meta = with stdenv.lib; {
     description = "Integrates the web vault into bitwarden_rs";
     homepage = "https://github.com/dani-garcia/bw_web_builds";
diff --git a/pkgs/tools/security/browserpass/default.nix b/pkgs/tools/security/browserpass/default.nix
index 2dd03bc465d..9aec14e0a41 100644
--- a/pkgs/tools/security/browserpass/default.nix
+++ b/pkgs/tools/security/browserpass/default.nix
@@ -14,6 +14,8 @@ buildGoModule rec {
 
   vendorSha256 = "1wcbn0ip596f2dp68y6jmxgv20l0dgrcxg5cwclkawigj05416zj";
 
+  doCheck = false;
+
   postPatch = ''
     # Because this Makefile will be installed to be used by the user, patch
     # variables to be valid by default
@@ -48,7 +50,6 @@ buildGoModule rec {
     description = "Browserpass native client app";
     homepage = "https://github.com/browserpass/browserpass-native";
     license = licenses.isc;
-    platforms = platforms.all;
     maintainers = with maintainers; [ rvolosatovs infinisil ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/security/certstrap/default.nix b/pkgs/tools/security/certstrap/default.nix
index 4d2e2fe7e95..99ba5c9e29b 100644
--- a/pkgs/tools/security/certstrap/default.nix
+++ b/pkgs/tools/security/certstrap/default.nix
@@ -16,7 +16,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     inherit (src.meta) homepage;
     description = "Tools to bootstrap CAs, certificate requests, and signed certificates";
-    platforms = platforms.all;
     license = licenses.asl20;
     maintainers = with maintainers; [ volth ];
   };
diff --git a/pkgs/tools/security/cfssl/default.nix b/pkgs/tools/security/cfssl/default.nix
index 6d4238de700..1aef7b5bd56 100644
--- a/pkgs/tools/security/cfssl/default.nix
+++ b/pkgs/tools/security/cfssl/default.nix
@@ -1,34 +1,49 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, fetchpatch }:
+{ stdenv, buildGoModule, fetchFromGitHub, go-rice }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "cfssl";
-  version = "1.3.2";
-
-  goPackagePath = "github.com/cloudflare/cfssl";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = "cfssl";
-    rev = version;
-    sha256 = "0j2gz2vl2pf7ir7sc7jrwmjnr67hk4qhxw09cjx132jbk337jc9x";
+    rev = "v${version}";
+    sha256 = "07qacg95mbh94fv64y577zyr4vk986syf8h5l8lbcmpr0zcfk0pd";
   };
 
-  # The following patch ensures that the auth-key decoder doesn't break,
-  # if the auth-key file contains leading or trailing whitespaces.
-  # https://github.com/cloudflare/cfssl/pull/923 is merged
-  # remove patch when it becomes part of a release.
-  patches = [
-    (fetchpatch {
-      url    = "https://github.com/cloudflare/cfssl/commit/7e13f60773c96644db9dd8d342d42fe3a4d26f36.patch";
-      sha256 = "1z2v2i8yj7qpj8zj5f2q739nhrr9s59jwzfzk52wfgssl4vv5mn5";
-    })
+  subPackages = [
+    "cmd/cfssl"
+    "cmd/cfssljson"
+    "cmd/cfssl-bundle"
+    "cmd/cfssl-certinfo"
+    "cmd/cfssl-newkey"
+    "cmd/cfssl-scan"
+    "cmd/multirootca"
+    "cmd/mkbundle"
   ];
 
+  vendorSha256 = null;
+
+  doCheck = false;
+
+  nativeBuildInputs = [ go-rice ];
+
+  preBuild = ''
+    pushd cli/serve
+    rice embed-go
+    popd
+  '';
+
+  buildFlagsArray = ''
+    -ldflags=
+      -s -w
+      -X github.com/cloudflare/cfssl/cli/version.version=v${version}
+  '';
+
   meta = with stdenv.lib; {
     homepage = "https://cfssl.org/";
     description = "Cloudflare's PKI and TLS toolkit";
     license = licenses.bsd2;
     maintainers = with maintainers; [ mbrgm ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/security/clamav/default.nix b/pkgs/tools/security/clamav/default.nix
index 4f286badebf..fb523c5299c 100644
--- a/pkgs/tools/security/clamav/default.nix
+++ b/pkgs/tools/security/clamav/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "clamav";
-  version = "0.102.3";
+  version = "0.102.4";
 
   src = fetchurl {
     url = "https://www.clamav.net/downloads/production/${pname}-${version}.tar.gz";
-    sha256 = "14q6vi178ih60yz4ja33b6181va1dcj8fyscnmxfx2crav250c7d";
+    sha256 = "06rrzyrhnr0rswryijpbbzywr6387rv8qjq8sb8cl3h2d1m45ggf";
   };
 
   # don't install sample config files into the absolute sysconfdir folder
diff --git a/pkgs/tools/security/creddump/default.nix b/pkgs/tools/security/creddump/default.nix
new file mode 100644
index 00000000000..d37c58a5159
--- /dev/null
+++ b/pkgs/tools/security/creddump/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitLab, python2, python2Packages }:
+
+python2Packages.buildPythonApplication rec {
+  pname = "creddump";
+  version = "0.3";
+
+  src = fetchFromGitLab {
+    owner = "kalilinux";
+    repo = "packages/creddump";
+    # url-encoding workaround: https://github.com/NixOS/nixpkgs/issues/65796#issuecomment-517829019
+    rev = "debian%2F${version}-1kali2"; # %2F = urlquote("/")
+    sha256 = "0r3rs2hggsvv619l3fh3c0jli6d3ryyj30ni3hz0nz670z5smzcf";
+  };
+
+  # No setup.py is available
+  dontBuild = true;
+  doCheck = false;
+  propagatedBuildInputs = [ python2Packages.pycrypto ];
+
+  installPhase = ''
+    mkdir -p ${placeholder "out"}/bin
+    cp -r framework ${placeholder "out"}/bin/framework
+    cp pwdump.py ${placeholder "out"}/bin/pwdump
+    cp cachedump.py ${placeholder "out"}/bin/cachedump
+    cp lsadump.py ${placeholder "out"}/bin/lsadump
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Python tool to extract various credentials and secrets from Windows registry hives";
+    homepage = "https://gitlab.com/kalilinux/packages/creddump";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.fishi0x01 ];
+  };
+}
+
diff --git a/pkgs/tools/security/doona/default.nix b/pkgs/tools/security/doona/default.nix
new file mode 100644
index 00000000000..5e1233f308c
--- /dev/null
+++ b/pkgs/tools/security/doona/default.nix
@@ -0,0 +1,36 @@
+{ fetchFromGitHub
+, stdenv
+, perl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "doona";
+  version = "unstable-2019-03-08";
+
+  src = fetchFromGitHub {
+    owner = "wireghoul";
+    repo = pname;
+    rev = "master";
+    sha256 = "0x9irwrw5x2ia6ch6gshadrlqrgdi1ivkadmr7j4m75k04a7nvz1";
+  };
+
+  buildInputs = [ perl ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -r ${src}/bedmod $out/bin/bedmod
+    cp ${src}/doona.pl $out/bin/doona
+    chmod +x $out/bin/doona
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/wireghoul/doona";
+    description = "A fork of the Bruteforce Exploit Detector Tool (BED)";
+    longDescription = ''
+      A fork of the Bruteforce Exploit Detector Tool (BED).
+      BED is a program which is designed to check daemons for potential buffer overflows, format string bugs etc.
+    '';
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ pamplemousse ];
+  };
+}
diff --git a/pkgs/tools/security/doppler/default.nix b/pkgs/tools/security/doppler/default.nix
new file mode 100644
index 00000000000..847d5d0cafb
--- /dev/null
+++ b/pkgs/tools/security/doppler/default.nix
@@ -0,0 +1,28 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "doppler";
+  version = "3.10.3";
+
+  src = fetchFromGitHub {
+    owner = "dopplerhq";
+    repo = "cli";
+    rev = version;
+    sha256 = "15wmg67wwwgrs8q45r1z98k9v7mf2bfgsa40gcf8dr18ilnfpbn4";
+  };
+
+  vendorSha256 = "0wqbwk72k4r30a3vnf0gnx3k97y8xgnr2iavk5bc8f8vkjv0bsv6";
+
+  buildFlagsArray = "-ldflags=-X github.com/DopplerHQ/cli/pkg/version.ProgramVersion=v${version}";
+
+  postInstall = ''
+    mv $out/bin/cli $out/bin/doppler
+  '';
+
+  meta = with lib; {
+    homepage = "https://doppler.com";
+    description = "The official CLI for interacting with your Doppler Enclave secrets and configuation";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ lucperkins ];
+  };
+}
diff --git a/pkgs/tools/security/eid-mw/default.nix b/pkgs/tools/security/eid-mw/default.nix
index cad5bb244f9..1fdd5b9a722 100644
--- a/pkgs/tools/security/eid-mw/default.nix
+++ b/pkgs/tools/security/eid-mw/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "eid-mw";
-  version = "4.4.16";
+  version = "4.4.27";
 
   src = fetchFromGitHub {
-    sha256 = "1q82fw63xzrnrgh1wyh457hal6vfdl6swqfq7l6kviywiwlzx7kd"; 
     rev = "v${version}";
+    sha256 = "17lw8iwp7h5cs3db80sysr84ffi333cf2vrhncs9l6hy6glfl2v1";
     repo = "eid-mw";
     owner = "Fedict";
   };
@@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
     ln -s ${openssl.bin}/bin openssl
     ln -s ${openssl.dev}/include openssl
     export SSL_PREFIX=$(realpath openssl)
+    substituteInPlace plugins_tools/eid-viewer/Makefile.in \
+      --replace "c_rehash" "openssl rehash"
     '';
 
   postPatch = ''
@@ -64,13 +66,6 @@ stdenv.mkDerivation rec {
 
       eid-viewer is also installed.
 
-      **TO FIX:** 
-      The procedure below did not work for me, I had to install the .so directly in firefox as instructed at
-      https://eid.belgium.be/en/log-eid#7507
-      and specify
-      /run/current-system/sw/lib/libbeidpkcs11.so
-      as the path to the module.
-
       This package only installs the libraries. To use eIDs in Firefox or
       Chromium, the eID Belgium add-on must be installed.
       This package only installs the libraries. To use eIDs in NSS-compatible
@@ -81,6 +76,11 @@ stdenv.mkDerivation rec {
       Before uninstalling this package, it is a very good idea to run
         ~$ eid-nssdb [--system] remove
       and remove all ~/.pki and/or /etc/pki directories no longer needed.
+
+      The above procedure doesn't seem to work in Firefox. You can override the
+      firefox wrapper to add this derivation to the PKCS#11 modules, like so:
+
+          firefox.override { pkcs11Modules = [ pkgs.eid-mw ]; }
     '';
     platforms = platforms.linux;
     maintainers = with maintainers; [ bfortz ];
diff --git a/pkgs/tools/security/encryptr/default.nix b/pkgs/tools/security/encryptr/default.nix
index b4c2bef2cf4..62311a41da3 100644
--- a/pkgs/tools/security/encryptr/default.nix
+++ b/pkgs/tools/security/encryptr/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, glib, nss, nspr, gconf, fontconfig, freetype
+{ stdenv, lib, fetchurl, glib, nss, nspr, gconf, fontconfig, freetype
 , pango , cairo, libX11 , libXi, libXcursor, libXext, libXfixes
 , libXrender, libXcomposite , alsaLib, libXdamage, libXtst, libXrandr
 , expat, libcap, systemd , dbus, gtk2 , gdk-pixbuf, libnotify
@@ -36,7 +36,7 @@ in stdenv.mkDerivation rec {
     cp -v {encryptr-bin,icudtl.dat,nw.pak} $out/bin
     mv -v $out/bin/encryptr{-bin,}
     cp -v lib* $out/lib
-    ln -sv ${systemd.lib}/lib/libudev.so.1 $out/lib/libudev.so.0
+    ln -sv ${lib.getLib systemd}/lib/libudev.so.1 $out/lib/libudev.so.0
 
     patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
              --set-rpath $out/lib:${rpath} \
diff --git a/pkgs/tools/security/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix
index 6377e829aa6..c27f82d7053 100644
--- a/pkgs/tools/security/fail2ban/default.nix
+++ b/pkgs/tools/security/fail2ban/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, python3, gamin }:
+{ stdenv, fetchFromGitHub, python3 }:
 
 let version = "0.11.1"; in
 
diff --git a/pkgs/tools/security/gen-oath-safe/default.nix b/pkgs/tools/security/gen-oath-safe/default.nix
index 15b8820bfd5..68536a519aa 100644
--- a/pkgs/tools/security/gen-oath-safe/default.nix
+++ b/pkgs/tools/security/gen-oath-safe/default.nix
@@ -1,4 +1,4 @@
-{ coreutils, fetchFromGitHub, libcaca, makeWrapper, python, openssl, qrencode, stdenv, yubikey-manager }:
+{ coreutils, fetchFromGitHub, file, libcaca, makeWrapper, python, openssl, qrencode, stdenv, yubikey-manager }:
 
 stdenv.mkDerivation rec {
   pname = "gen-oath-safe";
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
     let
       path = stdenv.lib.makeBinPath [
         coreutils
+        file
         libcaca.bin
         openssl.bin
         python
diff --git a/pkgs/tools/security/genpass/default.nix b/pkgs/tools/security/genpass/default.nix
index ee3eebac991..39a84112d63 100644
--- a/pkgs/tools/security/genpass/default.nix
+++ b/pkgs/tools/security/genpass/default.nix
@@ -1,6 +1,9 @@
 { stdenv
 , fetchFromGitHub
 , rustPlatform
+, CoreFoundation
+, libiconv
+, Security
 }:
 rustPlatform.buildRustPackage rec {
   pname = "genpass";
@@ -15,11 +18,12 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "1p6l64s9smhwka8bh3pamqimamxziad859i62nrmxzqc49nq5s7m";
 
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ CoreFoundation libiconv Security ];
+
   meta = with stdenv.lib; {
     description = "A simple yet robust commandline random password generator.";
     homepage = "https://github.com/cyplo/genpass";
     license = licenses.agpl3;
-    platforms = platforms.all;
     maintainers = with maintainers; [ cyplo ];
   };
 }
diff --git a/pkgs/tools/security/gnupg/20.nix b/pkgs/tools/security/gnupg/20.nix
deleted file mode 100644
index f5b693fed35..00000000000
--- a/pkgs/tools/security/gnupg/20.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ fetchurl, stdenv, readline, zlib, libgpgerror, pth, libgcrypt, libassuan
-, libksba, coreutils, libiconv, pcsclite
-
-# Each of the dependencies below are optional.
-# Gnupg can be built without them at the cost of reduced functionality.
-, pinentry ? null, guiSupport ? false
-, openldap ? null, bzip2 ? null, libusb-compat-0_1 ? null, curl ? null
-}:
-
-with stdenv.lib;
-
-assert guiSupport -> pinentry != null;
-
-stdenv.mkDerivation rec {
-  pname = "gnupg";
-  version = "2.0.30";
-
-  src = fetchurl {
-    url = "mirror://gnupg/gnupg/${pname}-${version}.tar.bz2";
-    sha256 = "0wax4cy14hh0h7kg9hj0hjn9424b71z8lrrc5kbsasrn9xd7hag3";
-  };
-
-  buildInputs
-    = [ readline zlib libgpgerror libgcrypt libassuan libksba pth
-        openldap bzip2 libusb-compat-0_1 curl libiconv ];
-
-  patches = [ ./gpgkey2ssh-20.patch ];
-
-  prePatch = ''
-    find tests -type f | xargs sed -e 's@/bin/pwd@${coreutils}&@g' -i
-  '' + stdenv.lib.optionalString stdenv.isLinux ''
-    sed -i 's,"libpcsclite\.so[^"]*","${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so",g' scd/scdaemon.c
-  '' + stdenv.lib.optionalString stdenv.isDarwin ''
-    find . -name pcsc-wrapper.c | xargs sed -i 's/typedef unsinged int pcsc_dword_t/typedef unsigned int pcsc_dword_t/'
-  '' + ''
-    patch gl/stdint_.h < ${./clang.patch}
-  '';
-
-  pinentryBinaryPath = pinentry.binaryPath or "bin/pinentry";
-  configureFlags = optional guiSupport "--with-pinentry-pgm=${pinentry}/${pinentryBinaryPath}";
-
-  postConfigure = "substituteAllInPlace tools/gpgkey2ssh.c";
-
-  checkPhase="GNUPGHOME=`pwd` ./agent/gpg-agent --daemon make check";
-
-  doCheck = true;
-
-  meta = with stdenv.lib; {
-    homepage = "https://gnupg.org";
-    description = "Stable (2.0) release of the GNU Privacy Guard, a GPL OpenPGP implementation";
-    license = licenses.gpl3Plus;
-    longDescription = ''
-      The GNU Privacy Guard is the GNU project's complete and free
-      implementation of the OpenPGP standard as defined by RFC4880.  GnuPG
-      "stable" (2.0) is the current stable version for general use.  This is
-      what most users are still using.  GnuPG allows to encrypt and sign your
-      data and communication, features a versatile key management system as well
-      as access modules for all kind of public key directories.  GnuPG, also
-      known as GPG, is a command line tool with features for easy integration
-      with other applications.  A wealth of frontend applications and libraries
-      are available.  Version 2 of GnuPG also provides support for S/MIME.
-    '';
-    maintainers = with maintainers; [ roconnor ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/tools/security/gnupg/22.nix b/pkgs/tools/security/gnupg/22.nix
index 7c095cffa31..48271a2f5bc 100644
--- a/pkgs/tools/security/gnupg/22.nix
+++ b/pkgs/tools/security/gnupg/22.nix
@@ -16,11 +16,11 @@ assert guiSupport -> pinentry != null && enableMinimal == false;
 stdenv.mkDerivation rec {
   pname = "gnupg";
 
-  version = "2.2.20";
+  version = "2.2.23";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${pname}-${version}.tar.bz2";
-    sha256 = "0c6a4v9p6qzhsw1pfcwc459bxpc8hma0w9z8iqb9khvligack9q4";
+    sha256 = "0p6ss4f3vlkf91pmp27bmvfr5bdxxi0pb3dmxpqljglbsx4mxd8h";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -38,8 +38,10 @@ stdenv.mkDerivation rec {
     ./accept-subkeys-with-a-good-revocation-but-no-self-sig.patch
   ];
   postPatch = ''
-    sed -i 's,hkps://hkps.pool.sks-keyservers.net,hkps://keys.openpgp.org,g' \
-        configure doc/dirmngr.texi doc/gnupg.info-1
+    sed -i 's,hkps://hkps.pool.sks-keyservers.net,hkps://keys.openpgp.org,g' configure doc/dirmngr.texi doc/gnupg.info-1
+    # Fix broken SOURCE_DATE_EPOCH usage - remove on the next upstream update
+    sed -i 's/$SOURCE_DATE_EPOCH/''${SOURCE_DATE_EPOCH}/' doc/Makefile.am
+    sed -i 's/$SOURCE_DATE_EPOCH/''${SOURCE_DATE_EPOCH}/' doc/Makefile.in
   '' + stdenv.lib.optionalString ( stdenv.isLinux && pcsclite != null) ''
     sed -i 's,"libpcsclite\.so[^"]*","${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so",g' scd/scdaemon.c
   ''; #" fix Emacs syntax highlighting :-(
diff --git a/pkgs/tools/security/gobuster/default.nix b/pkgs/tools/security/gobuster/default.nix
index 8b808551149..6e049917de2 100644
--- a/pkgs/tools/security/gobuster/default.nix
+++ b/pkgs/tools/security/gobuster/default.nix
@@ -16,10 +16,12 @@ buildGoModule rec {
 
   vendorSha256 = "0kr9i2nm5csf3070hwaiss137pfa3088xbw2zigp7aqb2naky036";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Tool used to brute-force URIs, DNS subdomains, Virtual Host names on target web servers";
     homepage = "https://github.com/OJ/gobuster";
     license = licenses.asl20;
     maintainers = with maintainers; [ pamplemousse ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/security/gopass/default.nix b/pkgs/tools/security/gopass/default.nix
index 6b9042e5691..15ad1c70a8d 100644
--- a/pkgs/tools/security/gopass/default.nix
+++ b/pkgs/tools/security/gopass/default.nix
@@ -1,5 +1,8 @@
-{ stdenv, makeWrapper
-, buildGoModule, fetchFromGitHub, installShellFiles
+{ stdenv
+, makeWrapper
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
 , git
 , gnupg
 , xclip
@@ -9,7 +12,7 @@
 
 buildGoModule rec {
   pname = "gopass";
-  version = "1.9.2";
+  version = "1.10.1";
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
 
@@ -17,18 +20,22 @@ buildGoModule rec {
     owner = "gopasspw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "066dphw8xq0g72kj64sdai2yyllnr6ca27bfy5sxhk8x69j97rvz";
+    sha256 = "0dhh64mxfhk610wr7bpakzgmc4a4iyhfkkl3qhjp6a46g9iygana";
   };
 
-  vendorSha256 = "1wn20bh7ma4pblsf6qnlbz5bx4p9apig3d1yz7cpsqv4z3w07baw";
+  vendorSha256 = "07wv6yahx4yzr3h1x93x4r5rvw8wbfk836f04b4r9xjbnpq7lb2a";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev}" ];
 
-  wrapperPath = stdenv.lib.makeBinPath ([
-    git
-    gnupg
-    xclip
-  ] ++ stdenv.lib.optional stdenv.isLinux wl-clipboard);
+  wrapperPath = stdenv.lib.makeBinPath (
+    [
+      git
+      gnupg
+      xclip
+    ] ++ stdenv.lib.optional stdenv.isLinux wl-clipboard
+  );
 
   postInstall = ''
     for shell in bash fish zsh; do
@@ -40,16 +47,18 @@ buildGoModule rec {
   '';
 
   postFixup = ''
-    wrapProgram $out/bin/gopass \
-      --prefix PATH : "${wrapperPath}"
+    for bin in $out/bin/*; do
+      wrapProgram $bin \
+        --prefix PATH : "${wrapperPath}"
+    done
   '';
 
   meta = with stdenv.lib; {
-    description     = "The slightly more awesome Standard Unix Password Manager for Teams. Written in Go.";
-    homepage        = "https://www.gopass.pw/";
-    license         = licenses.mit;
-    maintainers     = with maintainers; [ andir rvolosatovs ];
-    platforms       = platforms.unix;
+    description = "The slightly more awesome Standard Unix Password Manager for Teams. Written in Go.";
+    homepage = "https://www.gopass.pw/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ andir rvolosatovs ];
+    platforms = platforms.unix;
 
     longDescription = ''
       gopass is a rewrite of the pass password manager in Go with the aim of
@@ -61,4 +70,4 @@ buildGoModule rec {
       well, providing a stellar user experience and a sane, simple interface.
     '';
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/security/hash_extender/default.nix b/pkgs/tools/security/hash_extender/default.nix
index 5bda599f0f0..dc8ea8b2c9b 100644
--- a/pkgs/tools/security/hash_extender/default.nix
+++ b/pkgs/tools/security/hash_extender/default.nix
@@ -25,6 +25,6 @@ stdenv.mkDerivation {
     description = "Tool to automate hash length extension attacks";
     homepage = "https://github.com/iagox86/hash_extender";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/pkgs/tools/security/hashcat/default.nix b/pkgs/tools/security/hashcat/default.nix
index 2456f9ca18f..b156cda99ac 100644
--- a/pkgs/tools/security/hashcat/default.nix
+++ b/pkgs/tools/security/hashcat/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname   = "hashcat";
-  version = "6.0.0";
+  version = "6.1.1";
 
   src = fetchurl {
     url = "https://hashcat.net/files/hashcat-${version}.tar.gz";
-    sha256 = "118jxk4xh55m1vhaz5h2j2385mp4p397m16g9hi4x2k0b8m0zrz8";
+    sha256 = "104z63m7lqbb0sdrxhf9yi15l4a9zwf9m6zs9dbb3gf0nfxl1h9r";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/hcxdumptool/default.nix b/pkgs/tools/security/hcxdumptool/default.nix
index b59cef13942..fc81a395078 100644
--- a/pkgs/tools/security/hcxdumptool/default.nix
+++ b/pkgs/tools/security/hcxdumptool/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hcxdumptool";
-  version = "6.0.7";
+  version = "6.1.1";
 
   src = fetchFromGitHub {
     owner = "ZerBea";
     repo = "hcxdumptool";
     rev = version;
-    sha256 = "14w4f63nrcwhqj753rjif9cgs1xh1r1619827p69dz0v2x3xdvn1";
+    sha256 = "0v6dq6x2mrmavazknmhb08ks53773sll367anfrrramild8350bh";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/security/hologram/default.nix b/pkgs/tools/security/hologram/default.nix
index 910bcc522e7..f829d56d6fd 100644
--- a/pkgs/tools/security/hologram/default.nix
+++ b/pkgs/tools/security/hologram/default.nix
@@ -23,7 +23,6 @@ buildGoPackage rec {
     homepage = "https://github.com/AdRoll/hologram/";
     description = "Easy, painless AWS credentials on developer laptops.";
     maintainers = with maintainers; [ nand0p ];
-    platforms = platforms.all;
     license = licenses.asl20;
   };
 }
diff --git a/pkgs/tools/security/honggfuzz/default.nix b/pkgs/tools/security/honggfuzz/default.nix
new file mode 100644
index 00000000000..71146b15ea3
--- /dev/null
+++ b/pkgs/tools/security/honggfuzz/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, callPackage, makeWrapper
+, clang, llvm, libbfd, libopcodes, libunwind, libblocksruntime
+}:
+
+let
+  honggfuzz = stdenv.mkDerivation rec {
+    pname = "honggfuzz";
+    version = "2.3.1";
+
+    src = fetchFromGitHub {
+      owner = "google";
+      repo = pname;
+      rev = "${version}";
+      sha256 = "0dcl5a5jykgfmnfj42vl7kah9k26wg38l2g6yfh5pssmlf0nax33";
+    };
+
+    postPatch = ''
+      substituteInPlace hfuzz_cc/hfuzz-cc.c \
+        --replace '"clang' '"${clang}/bin/clang'
+    '';
+
+    enableParallelBuilding = true;
+
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ llvm ];
+    propagatedBuildInputs = [ libbfd libopcodes libunwind libblocksruntime ];
+
+    makeFlags = [ "PREFIX=$(out)" ];
+
+    meta = {
+      description = "A security oriented, feedback-driven, evolutionary, easy-to-use fuzzer";
+      longDescription = ''
+        Honggfuzz is a security oriented, feedback-driven, evolutionary,
+        easy-to-use fuzzer with interesting analysis options. It is
+        multi-process and multi-threaded, blazingly fast when the persistent
+        fuzzing mode is used and has a solid track record of uncovered security
+        bugs.
+
+        Honggfuzz uses low-level interfaces to monitor processes and it will
+        discover and report hijacked/ignored signals from crashes. Feed it
+        a simple corpus directory (can even be empty for the feedback-driven
+        fuzzing), and it will work its way up, expanding it by utilizing
+        feedback-based coverage metrics.
+      '';
+      homepage    = "https://honggfuzz.dev/";
+      license     = stdenv.lib.licenses.asl20;
+      platforms   = ["x86_64-linux"];
+      maintainers = with stdenv.lib.maintainers; [ cpu ];
+    };
+  };
+in honggfuzz
diff --git a/pkgs/tools/security/ibm-sw-tpm2/default.nix b/pkgs/tools/security/ibm-sw-tpm2/default.nix
index d6e8a521a2f..c177726bbb1 100644
--- a/pkgs/tools/security/ibm-sw-tpm2/default.nix
+++ b/pkgs/tools/security/ibm-sw-tpm2/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ibm-sw-tpm2";
-  version = "1628";
+  version = "1637";
 
   src = fetchurl {
     url = "mirror://sourceforge/ibmswtpm2/ibmtpm${version}.tar.gz";
-    sha256 = "18wywbsdp5sjrapznk2ydbmx0whz513dhybn1lls24xfl7kp9s58";
+    sha256 = "09z3wbv38dc8wnw1q961s6bcd0kvz2xkjp6dxg4kn914fwzlqfnx";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/security/jd-gui/default.nix b/pkgs/tools/security/jd-gui/default.nix
index af88fd6270f..c4b7706c266 100644
--- a/pkgs/tools/security/jd-gui/default.nix
+++ b/pkgs/tools/security/jd-gui/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, jre, jdk, gradle, makeDesktopItem, perl, writeText, runtimeShell }:
+{ stdenv, fetchFromGitHub, jre, jdk, gradle_5, makeDesktopItem, perl, writeText, runtimeShell }:
 
 let
   pname = "jd-gui";
@@ -15,7 +15,7 @@ let
     name = "${pname}-deps";
     inherit src;
 
-    nativeBuildInputs = [ jdk perl gradle ];
+    nativeBuildInputs = [ jdk perl gradle_5 ];
 
     buildPhase = ''
       export GRADLE_USER_HOME=$(mktemp -d);
@@ -71,7 +71,7 @@ in stdenv.mkDerivation rec {
   inherit pname version src;
   name = "${pname}-${version}";
 
-  nativeBuildInputs = [ jdk gradle ];
+  nativeBuildInputs = [ jdk gradle_5 ];
 
   buildPhase = ''
     export GRADLE_USER_HOME=$(mktemp -d)
diff --git a/pkgs/tools/security/john/default.nix b/pkgs/tools/security/john/default.nix
index f47728b8ba2..2fedec48c70 100644
--- a/pkgs/tools/security/john/default.nix
+++ b/pkgs/tools/security/john/default.nix
@@ -48,20 +48,21 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = false;
 
   postInstall = ''
-    mkdir -p "$out/bin" "$out/etc/john" "$out/share/john" "$out/share/doc/john" "$out/share/john/rules"
+    mkdir -p "$out/bin" "$out/etc/john" "$out/share/john" "$out/share/doc/john" "$out/share/john/rules" "$out/${perlPackages.perl.libPrefix}"
     find -L ../run -mindepth 1 -maxdepth 1 -type f -executable \
       -exec cp -d {} "$out/bin" \;
     cp -vt "$out/etc/john" ../run/*.conf
     cp -vt "$out/share/john" ../run/*.chr ../run/password.lst
     cp -vt "$out/share/john/rules" ../run/rules/*.rule
     cp -vrt "$out/share/doc/john" ../doc/*
+    cp -vt "$out/${perlPackages.perl.libPrefix}" ../run/lib/*
   '';
 
   postFixup = ''
     wrapPythonPrograms
 
     for i in $out/bin/*.pl; do
-      wrapProgram "$i" --prefix PERL5LIB : $PERL5LIB
+      wrapProgram "$i" --prefix PERL5LIB : "$PERL5LIB:$out/${perlPackages.perl.libPrefix}"
     done
   '';
 
diff --git a/pkgs/tools/security/jwt-cli/default.nix b/pkgs/tools/security/jwt-cli/default.nix
index 2161aa5f1cd..be3de71f25c 100644
--- a/pkgs/tools/security/jwt-cli/default.nix
+++ b/pkgs/tools/security/jwt-cli/default.nix
@@ -20,6 +20,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mike-engel/jwt-cli";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ rycee ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/security/kbs2/default.nix b/pkgs/tools/security/kbs2/default.nix
index 354b28b9fa2..191b4f35150 100644
--- a/pkgs/tools/security/kbs2/default.nix
+++ b/pkgs/tools/security/kbs2/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kbs2";
-  version = "0.1.1";
+  version = "0.1.4";
 
   src = fetchFromGitHub {
     owner = "woodruffw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0761g8cl9v7jj444vp83zq9f1shrddqq20pd41d5mbl6f8qpk4m5";
+    sha256 = "1hjcx651nqj1plxw4i2nv72zc0igd8pl31dy2zwm5yyky6dl7qla";
   };
 
-  cargoSha256 = "0vzjkw1g6saz4nwy823dpip02jg2f21rsd8kkpra206b8i6q0mfg";
+  cargoSha256 = "11fw097r4mim3rgb0db7naqlf3ws0bavqdd4z84mpdg6714dga0n";
 
   nativeBuildInputs = [ installShellFiles ]
     ++ stdenv.lib.optionals stdenv.isLinux [ python3 ];
@@ -27,6 +27,8 @@ rustPlatform.buildRustPackage rec {
   checkFlagsArray = [ "--skip=kbs2::config::tests::test_find_config_dir" ];
 
   postInstall = ''
+    mkdir -p $out/share/kbs2
+    cp -r contrib/ $out/share/kbs2
     for shell in bash fish zsh; do
       $out/bin/kbs2 --completions $shell > kbs2.$shell
       installShellCompletion kbs2.$shell
diff --git a/pkgs/tools/security/keybase/gui.nix b/pkgs/tools/security/keybase/gui.nix
index b745b63ca9d..20c1bb8f7f1 100644
--- a/pkgs/tools/security/keybase/gui.nix
+++ b/pkgs/tools/security/keybase/gui.nix
@@ -1,19 +1,20 @@
-{ stdenv, fetchurl, alsaLib, atk, cairo, cups, udev
+{ stdenv, lib, fetchurl, alsaLib, atk, cairo, cups, udev
 , dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, gtk3, libappindicator-gtk3
 , libnotify, nspr, nss, pango, systemd, xorg, autoPatchelfHook, wrapGAppsHook
 , runtimeShell, gsettings-desktop-schemas }:
 
 let
-  versionSuffix = "20200424214931.7b0bbf1e3c";
+  versionSuffix = "20200527202541.39ca0071e5";
 in
 
 stdenv.mkDerivation rec {
   pname = "keybase-gui";
-  version = "5.4.2"; # Find latest version from https://prerelease.keybase.io/deb/dists/stable/main/binary-amd64/Packages
+  version = "5.5.1"; # Find latest version from https://prerelease.keybase.io/deb/dists/stable/main/binary-amd64/Packages
 
   src = fetchurl {
+
     url = "https://s3.amazonaws.com/prerelease.keybase.io/linux_binaries/deb/keybase_${version + "-" + versionSuffix}_amd64.deb";
-    sha256 = "06iksmrr959mlzxc3nwd70apmvhij1xarxvvflys5qa31vravizs";
+    sha256 = "1n54a86491aqazqa4rgljbji638nj83ciibqxq46sa2m1php9dfd";
   };
 
   nativeBuildInputs = [
@@ -55,7 +56,7 @@ stdenv.mkDerivation rec {
   ];
 
   runtimeDependencies = [
-    udev.lib
+    (lib.getLib udev)
     libappindicator-gtk3
   ];
 
diff --git a/pkgs/tools/security/minica/default.nix b/pkgs/tools/security/minica/default.nix
new file mode 100644
index 00000000000..20ae3878a71
--- /dev/null
+++ b/pkgs/tools/security/minica/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "minica";
+  version = "1.0.2";
+
+  goPackagePath = "github.com/jsha/minica";
+
+  src = fetchFromGitHub {
+    owner = "jsha";
+    repo = "minica";
+    rev = "v${version}";
+    sha256 = "18518wp3dcjhf3mdkg5iwxqr3326n6jwcnqhyibphnb2a58ap7ny";
+  };
+
+  buildFlagsArray = ''
+    -ldflags=
+      -X main.BuildVersion=${version}
+  '';
+
+  meta = with lib; {
+    description = "A simple tool for generating self signed certificates.";
+    longDescription = ''
+      Minica is a simple CA intended for use in situations where the CA
+      operator also operates each host where a certificate will be used. It
+      automatically generates both a key and a certificate when asked to
+      produce a certificate.
+    '';
+    homepage = "https://github.com/jsha/minica/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ m1cr0man ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/tools/security/minisign/default.nix b/pkgs/tools/security/minisign/default.nix
index ed226994a31..b67b65b0cf8 100644
--- a/pkgs/tools/security/minisign/default.nix
+++ b/pkgs/tools/security/minisign/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchFromGitHub, cmake, libsodium }:
+{ stdenv, fetchFromGitHub, cmake, pkg-config, libsodium }:
 
 stdenv.mkDerivation rec {
   pname = "minisign";
-  version = "0.8";
+  version = "0.9";
 
   src = fetchFromGitHub {
     repo = "minisign";
     owner = "jedisct1";
     rev = version;
-    sha256 = "0rgg9jb5108hd5psivlrfd8cxnjylawm0glcry8ba6zlmkv949r8";
+    sha256 = "0qx3hnkwx6ij0hgp5vc74x36qfc4h5wgzr70fqqhmv3zb8q9f2vn";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ libsodium ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/security/nsjail/default.nix b/pkgs/tools/security/nsjail/default.nix
index 27712e4d42f..4522d0e897a 100644
--- a/pkgs/tools/security/nsjail/default.nix
+++ b/pkgs/tools/security/nsjail/default.nix
@@ -4,26 +4,24 @@
 
 stdenv.mkDerivation rec {
   pname = "nsjail";
-  version = "2.9";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner           = "google";
     repo            = "nsjail";
     rev             = version;
     fetchSubmodules = true;
-    sha256          = "0218n0qjb45fawqqfj3gdxgd0fw5k0vxn9iggi0ciljmr9zywkgh";
+    sha256          = "1w6x8xcrs0i1y3q41gyq8z3cq9x24qablklc4jiydf855lhqn4dh";
   };
 
-  postPatch = ''
-    substituteInPlace user.cc \
-      --replace "/usr/bin/newgidmap" "${shadow}/bin/newgidmap" \
-      --replace "/usr/bin/newuidmap" "${shadow}/bin/newuidmap"
-  '';
-
   nativeBuildInputs = [ autoconf bison flex libtool pkgconfig which ];
   buildInputs = [ libnl protobuf protobufc ];
   enableParallelBuilding = true;
 
+  preBuild = ''
+    makeFlagsArray+=(USER_DEFINES='-DNEWUIDMAP_PATH=${shadow}/bin/newuidmap -DNEWGIDMAP_PATH=${shadow}/bin/newgidmap')
+  '';
+
   installPhase = ''
     mkdir -p $out/bin $out/share/man/man1
     install nsjail $out/bin/
@@ -34,7 +32,7 @@ stdenv.mkDerivation rec {
     description = "A light-weight process isolation tool, making use of Linux namespaces and seccomp-bpf syscall filters";
     homepage    = "http://nsjail.com/";
     license     = licenses.asl20;
-    maintainers = with maintainers; [ bosu c0bw3b ];
+    maintainers = with maintainers; [ arturcygan bosu c0bw3b ];
     platforms   = platforms.linux;
   };
 }
diff --git a/pkgs/tools/security/pcsclite/default.nix b/pkgs/tools/security/pcsclite/default.nix
index 4e01a5792dc..98a3e8797fb 100644
--- a/pkgs/tools/security/pcsclite/default.nix
+++ b/pkgs/tools/security/pcsclite/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pcsclite";
-  version = "1.8.26";
+  version = "1.9.0";
 
   outputs = [ "bin" "out" "dev" "doc" "man" ];
 
   src = fetchurl {
     url = "https://pcsclite.apdu.fr/files/pcsc-lite-${version}.tar.bz2";
-    sha256 = "1ndvvz0fgqwz70pijymsxmx25mzryb0zav1i8jjc067ndryvxdry";
+    sha256 = "1y9f9zipnrmgiw0mxrvcgky8vfrcmg6zh40gbln5a93i2c1x8j01";
   };
 
   patches = [ ./no-dropdir-literals.patch ];
@@ -18,7 +18,6 @@ stdenv.mkDerivation rec {
     # The OS should care on preparing the drivers into this location
     "--enable-usbdropdir=/var/lib/pcsc/drivers"
     "--enable-confdir=/etc"
-    "--enable-ipcdir=/run/pcscd"
   ] ++ stdenv.lib.optional stdenv.isLinux
          "--with-systemdsystemunitdir=\${out}/etc/systemd/system"
     ++ stdenv.lib.optional (!stdenv.isLinux)
diff --git a/pkgs/tools/security/pcsctools/default.nix b/pkgs/tools/security/pcsctools/default.nix
index c9c677e64c0..b2ef4e7e030 100644
--- a/pkgs/tools/security/pcsctools/default.nix
+++ b/pkgs/tools/security/pcsctools/default.nix
@@ -5,11 +5,11 @@
 let deps = lib.makeBinPath [ wget coreutils ];
 
 in stdenv.mkDerivation rec {
-  name = "pcsc-tools-1.5.6";
+  name = "pcsc-tools-1.5.7";
 
   src = fetchurl {
     url = "http://ludovic.rousseau.free.fr/softwares/pcsc-tools/${name}.tar.bz2";
-    sha256 = "1a2zd06c6s4sqlpm5801gj41gh5g62jb8srd7vhlcm70hg3l3nsy";
+    sha256 = "17b9jxvcxmn007lavan20l25v4jvm6dqc4x9dlqzbg6mjs28zsp0";
   };
 
   buildInputs = [ udev dbus perlPackages.perl pcsclite ];
@@ -20,7 +20,7 @@ in stdenv.mkDerivation rec {
     wrapProgram $out/bin/scriptor \
       --set PERL5LIB "${with perlPackages; makePerlPath [ pcscperl ]}"
     wrapProgram $out/bin/gscriptor \
-      --set PERL5LIB "${with perlPackages; makePerlPath [ pcscperl Glib Gtk2 Pango Cairo ]}"
+      --set PERL5LIB "${with perlPackages; makePerlPath [ pcscperl GlibObjectIntrospection Glib Gtk3 Pango Cairo CairoGObject ]}"
     wrapProgram $out/bin/ATR_analysis \
       --set PERL5LIB "${with perlPackages; makePerlPath [ pcscperl ]}"
     wrapProgram $out/bin/pcsc_scan \
diff --git a/pkgs/tools/security/rhash/default.nix b/pkgs/tools/security/rhash/default.nix
index 863b03a117c..394dd89484f 100644
--- a/pkgs/tools/security/rhash/default.nix
+++ b/pkgs/tools/security/rhash/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, which }:
 
 stdenv.mkDerivation rec {
-  version = "1.3.9";
+  version = "1.4.0";
   pname = "rhash";
 
   src = fetchFromGitHub {
     owner = "rhash";
     repo = "RHash";
     rev = "v${version}";
-    sha256 = "06i49x1l21h2q7pfnf4crbmjyg8b9ad0qs10ywyyn5sjpi0c21wq";
+    sha256 = "18zgr1bjzz8v6rckz2q2hx9f2ssbv8qfwclzpbyjaz0c1c9lqqar";
   };
 
   nativeBuildInputs = [ which ];
diff --git a/pkgs/tools/security/rustscan/default.nix b/pkgs/tools/security/rustscan/default.nix
new file mode 100644
index 00000000000..2a2e8c7ec6c
--- /dev/null
+++ b/pkgs/tools/security/rustscan/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, nmap
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rustscan";
+  version = "1.8.0";
+
+  src = fetchFromGitHub {
+    owner = "RustScan";
+    repo = pname;
+    rev = "${version}";
+    sha256 = "0rkqsh4i58cf18ad97yr4f68s5jg6z0ybz4bw8607lz7cjkfvjay";
+  };
+
+  cargoSha256 = "0mj214f2md7kjknmcayc5dcfmlk2b8mqkn7kxzdis8qv9a5xcbk8";
+
+  postPatch = ''
+    substituteInPlace src/main.rs \
+      --replace 'Command::new("nmap")' 'Command::new("${nmap}/bin/nmap")'
+  '';
+
+  checkFlags = [
+    "--skip=infer_ulimit_lowering_no_panic"
+    "--skip=google_dns_runs"
+    "--skip=parse_correct_ips_or_hosts"
+  ];
+
+  meta = with lib; {
+    description = "Faster Nmap Scanning with Rust";
+    homepage = "https://github.com/RustScan/RustScan";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/tools/security/saml2aws/default.nix b/pkgs/tools/security/saml2aws/default.nix
index 144ac3a95c8..fc52662e536 100644
--- a/pkgs/tools/security/saml2aws/default.nix
+++ b/pkgs/tools/security/saml2aws/default.nix
@@ -2,29 +2,19 @@
 
 buildGoModule rec {
   pname = "saml2aws";
-  version = "2.26.2";
+  version = "2.27.0";
 
   src = fetchFromGitHub {
     owner = "Versent";
     repo = "saml2aws";
     rev = "v${version}";
-    sha256 = "0y5gvdrdr6i9spdwsxvzs1bxs32icxpkqxnglp1bf4gglc580d87";
+    sha256 = "15ddzab93iqwbvxnaw5wp4dzwlxjqxvyy1c4w37jm69zkczylrmc";
   };
 
-  hid = fetchFromGitHub {
-    owner = "karalabe";
-    repo = "hid";
-    rev = "9c14560f9ee858c43f40b5cd01392b167aacf4e8";
-    sha256 = "0xc7b8mwha64j7l2fr2g5zy8pz7cqi0vrxx60gii52b6ii31xncx";
-  };
+  runVend = true;
+  vendorSha256 = "1w7vnpv36lhxpaljdhslbckkr7p81nzc91a0503wk8nrrc4ljsyy";
 
-  vendorSha256 = "0f81nrg8v3xh2hcx7g77p3ahr4gyj042bwr1knf2phpahgz9n9rn";
-  overrideModAttrs = (_: {
-      postBuild = ''
-      cp -r --reflink=auto ${hid}/libusb vendor/github.com/karalabe/hid
-      cp -r --reflink=auto ${hid}/hidapi vendor/github.com/karalabe/hid
-      '';
-    });
+  doCheck = false;
 
   subPackages = [ "." "cmd/saml2aws" ];
 
@@ -39,4 +29,4 @@ buildGoModule rec {
     platforms   = stdenv.lib.platforms.unix;
     maintainers = [ stdenv.lib.maintainers.pmyjavec ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/security/sequoia/default.nix b/pkgs/tools/security/sequoia/default.nix
index e6081fbf472..6b389a379d6 100644
--- a/pkgs/tools/security/sequoia/default.nix
+++ b/pkgs/tools/security/sequoia/default.nix
@@ -9,16 +9,16 @@ assert pythonSupport -> pythonPackages != null;
 
 rustPlatform.buildRustPackage rec {
   pname = "sequoia";
-  version = "0.16.0";
+  version = "0.18.0";
 
   src = fetchFromGitLab {
     owner = "sequoia-pgp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0iwzi2ylrwz56s77cd4vcf89ig6ipy4w6kp2pfwqvd2d00x54dhk";
+    sha256 = "18acv0185y51yz6jwchi1vf701shz37z5qmnzpq6z419lpjdaskd";
   };
 
-  cargoSha256 = "0jsmvs6hr9mhapz3a74wpfgkjkq3w10014j3z30bm659mxqrknha";
+  cargoSha256 = "1jazwpv5mrsd0hxfavk0lvq8n26iglzl8pggw311ysi0lwabjq0y";
 
   nativeBuildInputs = [
     pkgconfig
@@ -56,6 +56,10 @@ rustPlatform.buildRustPackage rec {
 
   LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
 
+  # Please check if this is still needed when updating.
+  # Exlude tests for sequoia-store, they often error with 'Too many open files' Hydra.
+  CARGO_TEST_ARGS = " --all --exclude sequoia-store";
+
   postPatch = ''
     # otherwise, the check fails because we delete the `.git` in the unpack phase
     substituteInPlace openpgp-ffi/Makefile \
@@ -85,7 +89,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://sequoia-pgp.org/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ minijackson doronbehar ];
-    platforms = platforms.all;
     broken = stdenv.targetPlatform.isDarwin;
   };
 }
diff --git a/pkgs/tools/security/signing-party/default.nix b/pkgs/tools/security/signing-party/default.nix
index 91d3ea356df..17c65d28884 100644
--- a/pkgs/tools/security/signing-party/default.nix
+++ b/pkgs/tools/security/signing-party/default.nix
@@ -13,14 +13,14 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "signing-party";
-  version = "2.10";
+  version = "2.11";
 
   src = fetchFromGitLab {
     domain = "salsa.debian.org";
     owner = "signing-party-team";
     repo = "signing-party";
     rev = "v${version}";
-    sha256 = "0lq8nmwjmysry0n4jg6vb7bh0lagbyb9pa11ii3s41p1mhzchf2r";
+    sha256 = "1aig5ssabzbk4mih7xd04vgr931bw0flbi8dz902wlr610gyv5s5";
   };
 
   # TODO: Get this patch upstream...
@@ -87,6 +87,8 @@ in stdenv.mkDerivation rec {
     install -D -m444 gpgparticipants/gpgparticipants.1 $out/share/man/man1/gpgparticipants.1;
     install -D -m555 gpgparticipants/gpgparticipants-prefill $out/bin/gpgparticipants-prefill;
     install -D -m444 gpgparticipants/gpgparticipants-prefill.1 $out/share/man/man1/gpgparticipants-prefill.1;
+    install -D -m555 gpgparticipants/gpgparticipants-filter $out/bin/gpgparticipants-filter;
+    install -D -m444 gpgparticipants/gpgparticipants-filter.1 $out/share/man/man1/gpgparticipants-filter.1;
 
     # gpgwrap: a passphrase wrapper
     install -D -m555 gpgwrap/bin/gpgwrap $out/bin/gpgwrap;
@@ -153,6 +155,9 @@ in stdenv.mkDerivation rec {
 
 #    wrapProgram $out/bin/gpgparticipants-prefill
 
+    wrapProgram $out/bin/gpgparticipants-filter --prefix PATH ":" \
+      "${stdenv.lib.makeBinPath [ gnupg ]}"
+
     wrapProgram $out/bin/gpgsigs --set PERL5LIB \
       ${perlPackages.makePerlPath GnuPGInterfaceRuntimeDependencies} \
       --prefix PATH ":" \
diff --git a/pkgs/tools/security/softhsm/default.nix b/pkgs/tools/security/softhsm/default.nix
index 5cc7dbac5da..61afb9082d0 100644
--- a/pkgs/tools/security/softhsm/default.nix
+++ b/pkgs/tools/security/softhsm/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchurl, botan, libobjc, Security }:
+{ stdenv, fetchurl, botan2, libobjc, Security }:
 
 stdenv.mkDerivation rec {
 
   pname = "softhsm";
-  version = "2.5.0";
+  version = "2.6.1";
 
   src = fetchurl {
     url = "https://dist.opendnssec.org/source/${pname}-${version}.tar.gz";
-    sha256 = "1cijq78jr3mzg7jj11r0krawijp99p253f4qdqr94n728p7mdalj";
+    hash = "sha256:1wkmyi6n3z2pak1cj5yk6v6bv9w0m24skycya48iikab0mrr8931";
   };
 
   configureFlags = [
     "--with-crypto-backend=botan"
-    "--with-botan=${botan}"
+    "--with-botan=${botan2}"
     "--sysconfdir=$out/etc"
     "--localstatedir=$out/var"
     ];
@@ -20,13 +20,24 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs =
     stdenv.lib.optionals stdenv.isDarwin [ libobjc Security ];
 
-  buildInputs = [ botan ];
+  buildInputs = [ botan2 ];
 
   postInstall = "rm -rf $out/var";
 
   meta = with stdenv.lib; {
     homepage = "https://www.opendnssec.org/softhsm";
     description = "Cryptographic store accessible through a PKCS #11 interface";
+    longDescription = "
+      SoftHSM provides a software implementation of a generic
+      cryptographic device with a PKCS#11 interface, which is of
+      course especially useful in environments where a dedicated hardware
+      implementation of such a device - for instance a Hardware
+      Security Module (HSM) or smartcard - is not available.
+
+      SoftHSM follows the OASIS PKCS#11 standard, meaning it should be
+      able to work with many cryptographic products. SoftHSM is a
+      programme of The Commons Conservancy.
+    ";
     license = licenses.bsd2;
     maintainers = [ maintainers.leenaars ];
     platforms = platforms.unix;
diff --git a/pkgs/tools/security/sops/default.nix b/pkgs/tools/security/sops/default.nix
index 55dde8438c8..8ec324b3542 100644
--- a/pkgs/tools/security/sops/default.nix
+++ b/pkgs/tools/security/sops/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "sops";
-  version = "3.5.0";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "mozilla";
     repo = pname;
-    sha256 = "1515bk0fl0pvdkp402l51gdg63bmqlh89sglss6prc1qqvv5v2xy";
+    sha256 = "01skk6vdfki4a88z0snl1pby09im406qhnsfa0d2l8gp6nz8pq6j";
   };
 
-  vendorSha256 = "0yryc799k4563wy53z7amraj89cyprklj0lfv207530hwv5i5gm6";
+  vendorSha256 = "0475y95qma5m346ng898n80xv2rxzndx89c9ygjcvjs513yzcba2";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/mozilla/sops";
@@ -19,4 +21,4 @@ buildGoModule rec {
     maintainers = [ maintainers.marsam ];
     license = licenses.mpl20;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/security/ssh-audit/default.nix b/pkgs/tools/security/ssh-audit/default.nix
index e615cec945d..884a3d90c4f 100644
--- a/pkgs/tools/security/ssh-audit/default.nix
+++ b/pkgs/tools/security/ssh-audit/default.nix
@@ -1,53 +1,44 @@
-{ fetchFromGitHub, python3Packages, stdenv }:
+{ lib, fetchFromGitHub, python3Packages }:
 
-python3Packages.buildPythonPackage rec {
+python3Packages.buildPythonApplication rec {
   pname = "ssh-audit";
-  version = "1.7.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
-    owner = "arthepsy";
+    owner = "jtesta";
     repo = pname;
-    rev = "refs/tags/v${version}";
-    sha256 = "0akrychkdym9f6830ysq787c9nc0bkyqvy4h72498lyghwvwc2ms";
+    rev = "v${version}";
+    sha256 = "1z1h9nsgfaxdnkr9dvc0yzc23b3wz436rg2fycg2glwjhhal8az7";
   };
 
-  checkInputs = [
-    python3Packages.pytest
-    python3Packages.pytestcov
-  ];
-
-  checkPhase = ''
-    py.test --cov-report= --cov=ssh-audit -v test
-  '';
-
   postPatch = ''
-    printf %s "$setupPy" > setup.py
-    mkdir scripts
-    cp ssh-audit.py scripts/ssh-audit
-    mkdir ssh_audit
-    cp ssh-audit.py ssh_audit/__init__.py
+    cp ./README.md pypi/sshaudit/
+    cp ./ssh-audit.py pypi/sshaudit/sshaudit.py
+    mv pypi/* .
+    ls -lah
   '';
 
-  setupPy = /* py */ ''
-    from distutils.core import setup
-    setup(
-      author='arthepsy',
-      description='${meta.description}',
-      license='${meta.license.spdxId}',
-      name='${pname}',
-      packages=['ssh_audit'],
-      scripts=['scripts/ssh-audit'],
-      url='${meta.homepage}',
-      version='${version}',
-    )
-  '';
+  checkInputs = with python3Packages; [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    "test_resolve_error"
+    "test_resolve_hostname_without_records"
+    "test_resolve_ipv4"
+    "test_resolve_ipv6"
+    "test_resolve_ipv46_both"
+    "test_resolve_ipv46_order"
+    "test_invalid_host"
+    "test_invalid_port"
+    "test_not_connected_socket"
+    "test_ssh2_server_simple"
+  ];
 
-  meta = {
+  meta = with lib; {
     description = "Tool for ssh server auditing";
-    homepage = "https://github.com/arthepsy/ssh-audit";
-    license = stdenv.lib.licenses.mit;
-    maintainers = [
-      stdenv.lib.maintainers.tv
-    ];
+    homepage = "https://github.com/jtesta/ssh-audit";
+    license = licenses.mit;
+    maintainers = with maintainers; [ tv ];
   };
 }
diff --git a/pkgs/tools/security/sshguard/default.nix b/pkgs/tools/security/sshguard/default.nix
index bad1c9fd16d..6c2298f6729 100644
--- a/pkgs/tools/security/sshguard/default.nix
+++ b/pkgs/tools/security/sshguard/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, autoreconfHook, yacc, flex}:
 
 stdenv.mkDerivation rec {
-  version = "2.4.0";
+  version = "2.4.1";
   pname = "sshguard";
 
   src = fetchurl {
     url = "mirror://sourceforge/sshguard/${pname}-${version}.tar.gz";
-    sha256 = "1h6n2xyh58bshplbdqlr9rbnf3lz7nydnq5m2hkq15is3c4s8p06";
+    sha256 = "0rrwmx91ifvc61wkld8gjkmfsq0ixxmf7m8fg4addkkxwvk04pc7";
   };
 
   doCheck = true;
diff --git a/pkgs/tools/security/sshuttle/default.nix b/pkgs/tools/security/sshuttle/default.nix
index 4d0ae5e051d..6f620904872 100644
--- a/pkgs/tools/security/sshuttle/default.nix
+++ b/pkgs/tools/security/sshuttle/default.nix
@@ -1,29 +1,33 @@
-{ stdenv, python3Packages, fetchurl, makeWrapper
-, coreutils, iptables, nettools, openssh, procps }:
+{ stdenv
+, python3Packages
+, makeWrapper
+, coreutils
+, iptables
+, nettools
+, openssh
+, procps
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "sshuttle";
-  version = "0.78.5";
+  version = "1.0.3";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0vp13xwrhx4m6zgsyzvai84lkq9mzkaw47j58dk0ll95kaymk2x8";
+    sha256 = "0fff1c88669a20bb6a4e7331960673a3a02a2e04ff163e4c9299496646edcf61";
   };
 
   patches = [ ./sudo.patch ];
 
   nativeBuildInputs = [ makeWrapper python3Packages.setuptools_scm ];
-  buildInputs =
-    [ coreutils openssh procps nettools ]
-    ++ stdenv.lib.optionals stdenv.isLinux [ iptables ];
 
   checkInputs = with python3Packages; [ mock pytest pytestcov pytestrunner flake8 ];
 
-  postInstall = let
-    mapPath = f: x: stdenv.lib.concatStringsSep ":" (map f x);
-  in ''
-  wrapProgram $out/bin/sshuttle \
-    --prefix PATH : "${mapPath (x: "${x}/bin") buildInputs}" \
+  runtimeDeps = [ coreutils openssh procps ] ++ stdenv.lib.optionals stdenv.isLinux [ iptables nettools ];
+
+  postInstall = ''
+    wrapProgram $out/bin/sshuttle \
+      --prefix PATH : "${stdenv.lib.makeBinPath runtimeDeps}" \
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/security/thc-hydra/default.nix b/pkgs/tools/security/thc-hydra/default.nix
index aa36901e46b..f83d2675c6a 100644
--- a/pkgs/tools/security/thc-hydra/default.nix
+++ b/pkgs/tools/security/thc-hydra/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "thc-hydra";
-  version = "9.0";
+  version = "9.1";
 
   src = fetchFromGitHub {
     owner = "vanhauser-thc";
     repo = "thc-hydra";
     rev = "v${version}";
-    sha256 = "09d2f55wky1iabnl871d4r6dyyvr8zhp47d9j1p6d0pvdv93kl4z";
+    sha256 = "1533h9z5jdlazwy0z7ll2753i507wq55by7rm9lh6y59889p0hps";
   };
 
   postPatch = let
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index 1e033fa31ce..c535bf70670 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, libevent, openssl, zlib, torsocks
-, libseccomp, systemd, libcap, lzma, zstd, scrypt
+, libseccomp, systemd, libcap, lzma, zstd, scrypt, nixosTests
 
 # for update.nix
 , writeScript
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tor";
-  version = "0.4.3.5";
+  version = "0.4.3.6";
 
   src = fetchurl {
     url = "https://dist.torproject.org/${pname}-${version}.tar.gz";
-    sha256 = "0s6qspi102drn1nk3gfxs51x992xarc44gkfsi8y3l48wr50wsk1";
+    sha256 = "0qmcrkjip0ywq77232m73pjwqiaj0q2klwklqlpbw575shvhcbba";
   };
 
   outputs = [ "out" "geoip" ];
@@ -54,19 +54,22 @@ stdenv.mkDerivation rec {
     rm -rf $out/share/tor
   '';
 
-  passthru.updateScript = import ./update.nix {
-    inherit (stdenv) lib;
-    inherit
-      writeScript
-      common-updater-scripts
-      bash
-      coreutils
-      curl
-      gnupg
-      gnugrep
-      gnused
-      nix
-    ;
+  passthru = {
+    tests.tor = nixosTests.tor;
+    updateScript = import ./update.nix {
+      inherit (stdenv) lib;
+      inherit
+        writeScript
+        common-updater-scripts
+        bash
+        coreutils
+        curl
+        gnupg
+        gnugrep
+        gnused
+        nix
+      ;
+    };
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/security/tor/torsocks.nix b/pkgs/tools/security/tor/torsocks.nix
index 2ce4c9806eb..381377032d6 100644
--- a/pkgs/tools/security/tor/torsocks.nix
+++ b/pkgs/tools/security/tor/torsocks.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, autoreconfHook, libcap }:
+{ stdenv, fetchgit, fetchurl, autoreconfHook, libcap }:
 
 stdenv.mkDerivation rec {
   pname = "torsocks";
@@ -12,10 +12,19 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook ];
 
+  patches = stdenv.lib.optional stdenv.isDarwin
+    (fetchurl {
+       url = "https://trac.torproject.org/projects/tor/raw-attachment/ticket/28538/0001-Fix-macros-for-accept4-2.patch";
+       sha256 = "97881f0b59b3512acc4acb58a0d6dfc840d7633ead2f400fad70dda9b2ba30b0";
+     });
+
   postPatch = ''
     # Patch torify_app()
     sed -i \
       -e 's,\(local app_path\)=`which $1`,\1=`type -P $1`,' \
+      src/bin/torsocks.in
+  '' + stdenv.lib.optionalString stdenv.isLinux ''
+    sed -i \
       -e 's,\(local getcap\)=.*,\1=${libcap}/bin/getcap,' \
       src/bin/torsocks.in
   '';
diff --git a/pkgs/tools/security/vault/default.nix b/pkgs/tools/security/vault/default.nix
index e1b6ef80860..eb999b5cedc 100644
--- a/pkgs/tools/security/vault/default.nix
+++ b/pkgs/tools/security/vault/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "vault";
-  version = "1.4.2";
+  version = "1.5.3";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "vault";
     rev = "v${version}";
-    sha256 = "0aschysngs6f50plqkqbnhgl6zryd0bpypr50zd45cgww7jvvqd4";
+    sha256 = "149if5s4rdpxgzakh8s79j1fcfcqk1w7gvgchc044xlicl1r49ic";
   };
 
   goPackagePath = "github.com/hashicorp/vault";
@@ -17,10 +17,7 @@ buildGoPackage rec {
 
   nativeBuildInputs = [ installShellFiles ];
 
-  buildFlagsArray = [
-    "-tags='vault'"
-    "-ldflags=\"-X github.com/hashicorp/vault/sdk/version.GitCommit='v${version}'\""
-  ];
+  buildFlagsArray = [ "-tags=vault" "-ldflags=-s -w -X ${goPackagePath}/sdk/version.GitCommit=${src.rev}" ];
 
   postInstall = ''
     echo "complete -C $out/bin/vault vault" > vault.bash
diff --git a/pkgs/tools/security/vault/vault-bin.nix b/pkgs/tools/security/vault/vault-bin.nix
index 6b14a834330..b8a70eb82f9 100644
--- a/pkgs/tools/security/vault/vault-bin.nix
+++ b/pkgs/tools/security/vault/vault-bin.nix
@@ -1,30 +1,30 @@
 { stdenv, fetchurl, unzip }:
 
 let
-  version = "1.3.0";
+  version = "1.5.3";
 
   sources = let
     base = "https://releases.hashicorp.com/vault/${version}";
   in {
     x86_64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_amd64.zip";
-      sha256 = "1crfj4gd1qwwa2xidd0pjffv0n6hf5hbhv6568m6zc1ig0qqm6yq";
+      sha256 = "1chhi7piq04j8rgk15rcszqqp37xd9cjj67plr5pgvdps3s1zihy";
     };
     i686-linux = fetchurl {
       url = "${base}/vault_${version}_linux_386.zip";
-      sha256 = "0pyf0kyvxpmx3fwfvin1r0x30r9byx9lyi81894q06xrhiwbqc0l";
+      sha256 = "0jbnvypapang025wfyj6i70jdz3g29ggg7rzmg8xh6gfyhwk3vmb";
     };
     x86_64-darwin = fetchurl {
       url = "${base}/vault_${version}_darwin_amd64.zip";
-      sha256 = "113vnpz9n6y7z2k9jqpfpxqxqbrmd9bhny79yaxqzkfdqw8vyv3g";
+      sha256 = "1m54258lfdr79p2j8janbkhp0a8bs8xbrcr51lqx2s620n7sfbya";
     };
     i686-darwin = fetchurl {
       url = "${base}/vault_${version}_darwin_386.zip";
-      sha256 = "0d191qai0bpl7cyivca26wqgycsj2dz08809z147d1vnrz321v6w";
+      sha256 = "038qkkhlwj86fz9vpcycvv5nb41y8mqypqvhfp0ia11birp8xlsr";
     };
     aarch64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_arm64.zip";
-      sha256 = "1bk5y3knc42mh07gnnn6p109qz908014620h1s0348wp4qfdy49w";
+      sha256 = "1vivkwcy9j9zs7w65k7y8chix8jnii5pz8zck6rlpwgz5vs0h04k";
     };
   };
 
diff --git a/pkgs/tools/security/verifpal/default.nix b/pkgs/tools/security/verifpal/default.nix
index a3f3132aa3c..930b44cb4c6 100644
--- a/pkgs/tools/security/verifpal/default.nix
+++ b/pkgs/tools/security/verifpal/default.nix
@@ -16,6 +16,8 @@ buildGoModule rec {
 
   vendorSha256 = "0cmj6h103igg5pcs9c9wrcmrsf0mwp9vbgzf5amsnj1206ryb1p2";
 
+  doCheck = false;
+
   nativeBuildInputs = [ pigeon ];
 
   subPackages = [ "cmd/verifpal" ];
diff --git a/pkgs/tools/security/vulnix/default.nix b/pkgs/tools/security/vulnix/default.nix
index 59d8b8c0875..d4a3a0c621a 100644
--- a/pkgs/tools/security/vulnix/default.nix
+++ b/pkgs/tools/security/vulnix/default.nix
@@ -1,12 +1,16 @@
-{ stdenv, python3Packages, nix, ronn }:
+{ stdenv
+, python3Packages
+, nix
+, ronn
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "vulnix";
-  version = "1.9.4";
+  version = "1.9.6";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "06dpdsnz1ih0syas3x25s557qpw0f4kmypvxwaffm734djg8klmi";
+    sha256 = "0anyxmqgn4kx102l3qjhh1f2b0cg7mnlapfhriyjw0zyy5gyqvng";
   };
 
   outputs = [ "out" "doc" "man" ];
diff --git a/pkgs/tools/security/yubikey-agent/default.nix b/pkgs/tools/security/yubikey-agent/default.nix
new file mode 100644
index 00000000000..5860fb3a03e
--- /dev/null
+++ b/pkgs/tools/security/yubikey-agent/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, lib, fetchFromGitHub, buildGoModule, libnotify, makeWrapper, pcsclite, pinentry_mac, pkgconfig, darwin }:
+
+buildGoModule rec {
+  pname = "yubikey-agent";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "FiloSottile";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "07gix5wrakn4z846zhvl66lzwx58djrfnn6m8v7vc69l9jr3kihr";
+  };
+
+  buildInputs =
+    lib.optional stdenv.isLinux (lib.getDev pcsclite)
+    ++ lib.optional stdenv.isDarwin (darwin.apple_sdk.frameworks.PCSC);
+
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
+
+  # pull in go-piv/piv-go#75
+  # once go-piv/piv-go#75 is merged and released, we should
+  # use the released version (and push upstream to do the same)
+  patches = [ ./use-piv-go-75.patch ];
+  postPatch = lib.optionalString stdenv.isLinux ''
+    substituteInPlace main.go --replace 'notify-send' ${libnotify}/bin/notify-send
+  '';
+
+  vendorSha256 = "128mlsagj3im6h0p0ndhzk29ya47g19im9dldx3nmddf2jlccj2h";
+
+  doCheck = false;
+
+  subPackages = [ "." ];
+
+  # On macOS, there isn't a choice of pinentry program, so let's
+  # ensure the nixpkgs-provided one is available
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    wrapProgram $out/bin/yubikey-agent --suffix PATH : $(dirname ${pinentry_mac}/${pinentry_mac.binaryPath})
+  ''
+  # Note: in the next release, upstream provides
+  # contrib/systemd/user/yubikey-agent.service, which we should use
+  # instead
+  # See https://github.com/FiloSottile/yubikey-agent/pull/43
+  + lib.optionalString stdenv.isLinux ''
+    mkdir -p $out/lib/systemd/user
+    substitute ${./yubikey-agent.service} $out/lib/systemd/user/yubikey-agent.service \
+      --replace 'ExecStart=yubikey-agent' "ExecStart=$out/bin/yubikey-agent"
+  '';
+
+  meta = with lib; {
+    description = "A seamless ssh-agent for YubiKeys";
+    license = licenses.bsd3;
+    homepage = "https://filippo.io/yubikey-agent";
+    maintainers = with lib.maintainers; [ philandstuff rawkode ];
+    platforms = platforms.darwin ++ platforms.linux;
+  };
+}
diff --git a/pkgs/tools/security/yubikey-agent/use-piv-go-75.patch b/pkgs/tools/security/yubikey-agent/use-piv-go-75.patch
new file mode 100644
index 00000000000..73967d817d9
--- /dev/null
+++ b/pkgs/tools/security/yubikey-agent/use-piv-go-75.patch
@@ -0,0 +1,22 @@
+From 547695fff9cbfc4037168cdeb07cfe16bd89b6db Mon Sep 17 00:00:00 2001
+From: Philip Potter <philip.g.potter@gmail.com>
+Date: Sat, 25 Jul 2020 21:59:50 +0100
+Subject: [PATCH] Pull in piv-go#75
+
+---
+ go.mod | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/go.mod b/go.mod
+index d4d13c8..f75be2d 100644
+--- a/go.mod
++++ b/go.mod
+@@ -7,3 +7,5 @@ require (
+ 	github.com/gopasspw/gopass v1.9.1
+ 	golang.org/x/crypto v0.0.0-20200429183012-4b2356b1ed79
+ )
++
++replace github.com/go-piv/piv-go => github.com/rawkode/piv-go v1.5.1-0.20200725154545-1c3200c75a28
+-- 
+2.27.0
+
diff --git a/pkgs/tools/security/yubikey-agent/yubikey-agent.service b/pkgs/tools/security/yubikey-agent/yubikey-agent.service
new file mode 100644
index 00000000000..7a91f902544
--- /dev/null
+++ b/pkgs/tools/security/yubikey-agent/yubikey-agent.service
@@ -0,0 +1,35 @@
+[Unit]
+Description=Seamless ssh-agent for YubiKeys
+Documentation=https://filippo.io/yubikey-agent
+
+[Service]
+ExecStart=yubikey-agent -l %t/yubikey-agent/yubikey-agent.sock
+ExecReload=/bin/kill -HUP $MAINPID
+ProtectSystem=strict
+ProtectKernelLogs=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectControlGroups=yes
+ProtectClock=yes
+ProtectHostname=yes
+PrivateTmp=yes
+PrivateDevices=yes
+PrivateUsers=yes
+IPAddressDeny=any
+RestrictAddressFamilies=AF_UNIX
+RestrictNamespaces=yes
+RestrictRealtime=yes
+RestrictSUIDSGID=yes
+LockPersonality=yes
+CapabilityBoundingSet=
+SystemCallFilter=@system-service
+SystemCallFilter=~@privileged @resources
+SystemCallErrorNumber=EPERM
+SystemCallArchitectures=native
+NoNewPrivileges=yes
+KeyringMode=private
+UMask=0177
+RuntimeDirectory=yubikey-agent
+
+[Install]
+WantedBy=default.target
diff --git a/pkgs/tools/security/zmap/cmake-json-0.14-fix.patch b/pkgs/tools/security/zmap/cmake-json-0.14-fix.patch
new file mode 100644
index 00000000000..1c132948af6
--- /dev/null
+++ b/pkgs/tools/security/zmap/cmake-json-0.14-fix.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8bd825f..694d9b2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -72,6 +72,8 @@ if(WITH_JSON)
+     endif()
+ 
+     add_definitions("-DJSON")
++    # JSON_CFLAGS is a list, i.e. semicolon-separated, convert it to space-separated
++    string(REPLACE ";" " " JSON_CFLAGS "${JSON_CFLAGS}")
+     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${JSON_CFLAGS}")
+ endif()
+ 
diff --git a/pkgs/tools/security/zmap/default.nix b/pkgs/tools/security/zmap/default.nix
index ef36b21641b..e2350b67c7d 100644
--- a/pkgs/tools/security/zmap/default.nix
+++ b/pkgs/tools/security/zmap/default.nix
@@ -13,6 +13,11 @@ stdenv.mkDerivation rec {
     sha256 = "0yaahaiawkjk020hvsb8pndbrk8k10wxkfba1irp12a4sj6rywcs";
   };
 
+  patches = [
+    # fix build with json-c 0.14 https://github.com/zmap/zmap/pull/609
+    ./cmake-json-0.14-fix.patch
+  ];
+
   cmakeFlags = [ "-DRESPECT_INSTALL_PREFIX_CONFIG=ON" ];
   dontUseCmakeBuildDir = true;
 
diff --git a/pkgs/tools/system/bpytop/default.nix b/pkgs/tools/system/bpytop/default.nix
new file mode 100644
index 00000000000..a408f44ec10
--- /dev/null
+++ b/pkgs/tools/system/bpytop/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, python3Packages, fetchFromGitHub, makeWrapper, substituteAll }:
+
+stdenv.mkDerivation rec {
+  pname = "bpytop";
+  version = "1.0.21";
+
+  src = fetchFromGitHub {
+    owner = "aristocratos";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "10cygn4srmzk1b279hrlp4rjbldkzq7354fhm0jbmd3rp15b454p";
+  };
+
+  buildInputs = [ makeWrapper ];
+  propagatedBuildInputs = with python3Packages; [ python psutil ];
+
+  dontBuild = true;
+
+  postPatch = ''
+    sed -i -e "s#/usr/\[local/\]#$out/#g" \
+           -e "s#/usr/{td}#$out/#g" \
+      ./bpytop.py
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{bin,libexec,share/bpytop}/
+    cp -r ./themes $out/share/bpytop/
+    cp ./bpytop.py $out/libexec/
+
+    makeWrapper ${python3Packages.python.interpreter} $out/bin/bpytop \
+      --add-flags "$out/libexec/bpytop.py" \
+      --prefix PYTHONPATH : "$PYTHONPATH"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A resource monitor; python port of bashtop";
+    homepage = src.meta.homepage;
+    license = licenses.apsl20;
+    maintainers = with maintainers; [ aw ];
+    platforms = with platforms; linux ++ freebsd ++ darwin;
+
+    # https://github.com/NixOS/nixpkgs/pull/94625#issuecomment-668509399
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/pkgs/tools/system/cm-rgb/default.nix b/pkgs/tools/system/cm-rgb/default.nix
new file mode 100644
index 00000000000..acfe440b5d5
--- /dev/null
+++ b/pkgs/tools/system/cm-rgb/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, buildPythonApplication
+, fetchFromGitHub
+, atk
+, gobject-introspection
+, wrapGAppsHook
+, click
+, hidapi
+, psutil
+, pygobject3
+}:
+
+buildPythonApplication rec {
+  pname = "cm-rgb";
+  version = "0.3.4";
+
+  src = fetchFromGitHub {
+    owner = "gfduszynski";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "04brldaa2zpvzkcg43i5hpbj03d1nqrgiplm5nh4shn12cif19ag";
+  };
+
+  nativeBuildInputs = [
+    atk
+
+    # Populate GI_TYPELIB_PATH
+    gobject-introspection
+    wrapGAppsHook
+  ];
+
+  propagatedBuildInputs = [
+    click
+    hidapi
+    psutil
+    pygobject3
+  ];
+
+  postInstall = ''
+    # Remove this line when/if this PR gets merged:
+    # https://github.com/gfduszynski/cm-rgb/pull/43 
+    install -m0755 scripts/cm-rgb-gui $out/bin/cm-rgb-gui
+
+    mkdir -p $out/etc/udev/rules.d
+    echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="2516", ATTR{idProduct}=="0051", TAG+="uaccess"' \
+      > $out/etc/udev/rules.d/60-cm-rgb.rules
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Control AMD Wraith Prism RGB LEDs";
+    longDescription = ''
+      cm-rgb controls AMD Wraith Prism RGB LEDS.
+
+      To permit non-root accounts to change use this utility on
+      NixOS, add this package to <literal>services.udev.packages</literal>
+      in <filename>configuration.nix</filename>.
+    '';
+    homepage = "https://github.com/gfduszynski/cm-rgb";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/pkgs/tools/system/colorls/Gemfile.lock b/pkgs/tools/system/colorls/Gemfile.lock
index 1b84a550e48..d138a167ce7 100644
--- a/pkgs/tools/system/colorls/Gemfile.lock
+++ b/pkgs/tools/system/colorls/Gemfile.lock
@@ -2,7 +2,7 @@ GEM
   remote: https://rubygems.org/
   specs:
     clocale (0.0.4)
-    colorls (1.3.3)
+    colorls (1.4.2)
       clocale (~> 0)
       filesize (~> 0)
       manpages (~> 0)
diff --git a/pkgs/tools/system/colorls/gemset.nix b/pkgs/tools/system/colorls/gemset.nix
index c16f87f457f..2e4a26ff918 100644
--- a/pkgs/tools/system/colorls/gemset.nix
+++ b/pkgs/tools/system/colorls/gemset.nix
@@ -15,10 +15,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07rvm3g65slnqzal718qwfmgsjnkysx00jn8dnv96317yx0mxfx6";
+      sha256 = "0sw377wklld5zn1la0smxc2bg4rph2xf9d0h3zmxhmds06lb92db";
       type = "gem";
     };
-    version = "1.3.3";
+    version = "1.4.2";
   };
   filesize = {
     groups = ["default"];
diff --git a/pkgs/tools/system/ctop/default.nix b/pkgs/tools/system/ctop/default.nix
index 1c46caaf932..6cb8e482160 100644
--- a/pkgs/tools/system/ctop/default.nix
+++ b/pkgs/tools/system/ctop/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1x4li44vg0l1x205v9a971cgphplxhsrn59q97gmj9cfy4m7jdfw";
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.build=v${version}" ];
 
   meta = with lib; {
@@ -21,4 +23,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ apeyroux marsam ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/system/datefudge/default.nix b/pkgs/tools/system/datefudge/default.nix
index 839e14a20d8..819071f3f06 100644
--- a/pkgs/tools/system/datefudge/default.nix
+++ b/pkgs/tools/system/datefudge/default.nix
@@ -1,24 +1,22 @@
-{ stdenv, fetchgit }:
+{ stdenv, fetchgit, fetchpatch }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "datefudge";
-  version = "1.23";
+  version = "1.24";
 
   src = fetchgit {
-    url = "https://salsa.debian.org/debian/datefudge.git";
-    rev = "090d3aace17640478f7f5119518b2f4196f62617";
-    sha256 = "0r9g8v9xnv60hq3j20wqy34kyig3sc2pisjxl4irn7jjx85f1spv";
+    url = "https://salsa.debian.org/debian/${pname}.git";
+    rev = "debian/${version}";
+    sha256 = "1nh433yx4y4djp0bs6aawqbwk7miq7fsbs9wpjlyh2k9dvil2lrm";
   };
 
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace Makefile \
      --replace "/usr" "/" \
      --replace "-o root -g root" ""
     substituteInPlace datefudge.sh \
      --replace "@LIBDIR@" "$out/lib/"
-    '';
-
-  preInstallPhase = "mkdir -P $out/lib/datefudge";
+  '';
 
   installFlags = [ "DESTDIR=$(out)" ];
 
diff --git a/pkgs/tools/system/ddrescueview/default.nix b/pkgs/tools/system/ddrescueview/default.nix
index 838873b7557..6c8e9c56cdc 100644
--- a/pkgs/tools/system/ddrescueview/default.nix
+++ b/pkgs/tools/system/ddrescueview/default.nix
@@ -1,20 +1,24 @@
 { stdenv, lib, fetchurl, fpc, lazarus, atk, cairo, gdk-pixbuf, glib, gtk2, libX11, pango }:
 
-stdenv.mkDerivation rec {
-  name = "ddrescueview-0.4alpha3";
+let
+  versionBase = "0.4";
+  versionSuffix = "alpha4";
+in stdenv.mkDerivation rec {
+  pname = "ddrescueview";
+  version = "${versionBase}${versionSuffix}";
+  name = "ddrescueview-0.4alpha4";
 
   src = fetchurl {
-    name = "${name}.tar.xz";
-    url = "mirror://sourceforge/ddrescueview/ddrescueview-source-0.4%7Ealpha3.tar.xz";
-    sha256 = "0603jisxkswfyh93s3i20f8ns4yf83dmgmy0lg5001rvaw9mkw9j";
+    name = "ddrescueview-${versionBase}${versionSuffix}.tar.xz";
+    url = "mirror://sourceforge/ddrescueview/ddrescueview-source-${versionBase}~${versionSuffix}.tar.xz";
+    sha256 = "0v159nlc0lrqznbbwi7zda619is5h2rjk55gz6cl807j0kd19ycc";
   };
+  sourceRoot = "ddrescueview-source-${versionBase}~${versionSuffix}/source";
 
   nativeBuildInputs = [ fpc lazarus ];
 
   buildInputs = [ atk cairo gdk-pixbuf glib gtk2 libX11 pango ];
 
-  sourceRoot = "source";
-
   NIX_LDFLAGS = "--as-needed -rpath ${lib.makeLibraryPath buildInputs}";
 
   buildPhase = ''
@@ -24,9 +28,8 @@ stdenv.mkDerivation rec {
   installPhase = ''
     install -Dt $out/bin ddrescueview
     cd ../resources/linux
-    install -Dt $out/share/applications ddrescueview.desktop
-    install -Dt $out/share/icons/hicolor/32x32/apps ddrescueview.xpm
-    install -Dt $out/share/man/man1 ddrescueview.1
+    mkdir -p "$out/share"
+    cp -ar applications icons man $out/share
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/system/disk-filltest/default.nix b/pkgs/tools/system/disk-filltest/default.nix
index 074b06aa4e6..7bcf592012a 100644
--- a/pkgs/tools/system/disk-filltest/default.nix
+++ b/pkgs/tools/system/disk-filltest/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "disk-filltest";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "bingmann";
     repo = "disk-filltest";
     rev = "v${version}";
-    sha256 = "1vcb43hdln7xlklz1n0fsfp5x1j9pn829wbad4b110hrc7nwrnvm";
+    sha256 = "0qmcf5k5j7946wsbxrw4rqfj48mwl3r6kb4l3gppl97k7iyni6kj";
   };
 
   preBuild = ''
diff --git a/pkgs/tools/system/efibootmgr/default.nix b/pkgs/tools/system/efibootmgr/default.nix
index 3323ac24897..dd898de0fc2 100644
--- a/pkgs/tools/system/efibootmgr/default.nix
+++ b/pkgs/tools/system/efibootmgr/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   # We have no LTO here since commit 22284b07.
   postPatch = if stdenv.isi686 then "sed '/^CFLAGS/s/-flto//' -i Make.defaults" else null;
 
-  makeFlags = [ "EFIDIR=nixos" ];
+  makeFlags = [ "EFIDIR=nixos" "PKG_CONFIG=${stdenv.cc.targetPrefix}pkg-config" ];
 
   installFlags = [ "prefix=$(out)" ];
 
diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix
index b6a04f808a4..01fd10d6777 100644
--- a/pkgs/tools/system/facter/default.nix
+++ b/pkgs/tools/system/facter/default.nix
@@ -2,24 +2,24 @@
 
 stdenv.mkDerivation rec {
   pname = "facter";
-  version = "3.14.11";
+  version = "3.14.12";
 
   src = fetchFromGitHub {
-    sha256 = "1x7m11bda86xkr8mncy50nga9q3gnvnklcvwwpa7frka99kgai26";
+    sha256 = "1n0m2w133bpbbpc1imp89xlinmny7xaz1w87cs18p1lnk2w043lc";
     rev = version;
     repo = pname;
     owner = "puppetlabs";
   };
 
-  CXXFLAGS = "-fpermissive -Wno-error=catch-value";
-  NIX_LDFLAGS = "-lblkid";
+  CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isGNU "-fpermissive -Wno-error=catch-value";
+  NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lblkid";
 
   cmakeFlags = [
-    "-DFACTER_RUBY=${ruby}/lib/libruby.so"
+    "-DFACTER_RUBY=${ruby}/lib/libruby${stdenv.hostPlatform.extensions.sharedLibrary}"
     "-DRUBY_LIB_INSTALL=${placeholder "out"}/lib/ruby"
   ];
 
-  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-copy";
+  NIX_CFLAGS_COMPILE = "-Wno-error";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ boost cpp-hocon curl leatherman libwhereami libyamlcpp openssl ruby utillinux ];
@@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
     description = "A system inventory tool";
     license = licenses.asl20;
     maintainers = [ maintainers.womfoo ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/system/fio/default.nix b/pkgs/tools/system/fio/default.nix
index 8b9f1085a9e..77a85e01473 100644
--- a/pkgs/tools/system/fio/default.nix
+++ b/pkgs/tools/system/fio/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fio";
-  version = "3.20";
+  version = "3.22";
 
   src = fetchFromGitHub {
     owner  = "axboe";
     repo   = "fio";
     rev    = "fio-${version}";
-    sha256 = "1ahdcyrj7jgm4qx5s0q7gvbpqr2w57psazsf0wswp1v3mb9w4zg4";
+    sha256 = "16p17l1xbqqkgppvwmfaywknhk4ybafnx8hm56ffd8bls9vaqw5m";
   };
 
   buildInputs = [ python zlib ]
diff --git a/pkgs/tools/system/gotop/default.nix b/pkgs/tools/system/gotop/default.nix
index 0d8deb11b9e..f5d7ff4759e 100644
--- a/pkgs/tools/system/gotop/default.nix
+++ b/pkgs/tools/system/gotop/default.nix
@@ -11,7 +11,12 @@ buildGoModule rec {
     sha256 = "10qfzmq1wdgpvv319khzicalix1x4fqava0wry3bzz84k5c9dabs";
   };
 
-  vendorSha256 = "1crphp41bfivfmfp3cl7pjca3ypds6mr3847msd4wvfq4g6imk55";
+  runVend = true;
+  vendorSha256 = "09vdhdgj74ifdhl6rmxddkvk7ls26jn8gswzcxf9389zkjzi7822";
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
 
   meta = with stdenv.lib; {
     description = "A terminal based graphical activity monitor inspired by gtop and vtop";
@@ -20,4 +25,4 @@ buildGoModule rec {
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/system/htop/default.nix b/pkgs/tools/system/htop/default.nix
index c9adf5377e2..fe4622f3381 100644
--- a/pkgs/tools/system/htop/default.nix
+++ b/pkgs/tools/system/htop/default.nix
@@ -1,23 +1,22 @@
-{ lib, fetchurl, stdenv, ncurses,
-IOKit, python3 }:
+{ lib, fetchFromGitHub, stdenv, autoreconfHook
+, ncurses, IOKit, python3
+}:
 
 stdenv.mkDerivation rec {
   pname = "htop";
-  version = "2.2.0";
+  version = "3.0.1";
 
-  src = fetchurl {
-    url = "https://hisham.hm/htop/releases/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0mrwpb3cpn3ai7ar33m31yklj64c3pp576vh1naqff6f21pq5mnr";
+  src = fetchFromGitHub {
+    owner = "htop-dev";
+    repo = pname;
+    rev = version;
+    sha256 = "0kjlphdvwwbj91kk91s4ksc954d3c2bznddzx2223jmb1bn9rcsa";
   };
 
-  nativeBuildInputs = [ python3 ];
-  buildInputs =
-    [ ncurses ] ++
-    lib.optionals stdenv.isDarwin [ IOKit ];
+  nativeBuildInputs = [ autoreconfHook python3 ];
 
-  prePatch = ''
-    patchShebangs scripts/MakeHeader.py
-  '';
+  buildInputs = [ ncurses
+  ] ++ lib.optionals stdenv.isDarwin [ IOKit ];
 
   meta = with stdenv.lib; {
     description = "An interactive process viewer for Linux";
diff --git a/pkgs/tools/system/inxi/default.nix b/pkgs/tools/system/inxi/default.nix
index 8842c97902e..4a59facb27b 100644
--- a/pkgs/tools/system/inxi/default.nix
+++ b/pkgs/tools/system/inxi/default.nix
@@ -22,13 +22,13 @@ let
     ++ recommendedDisplayInformationPrograms;
 in stdenv.mkDerivation rec {
   pname = "inxi";
-  version = "3.1.04-1";
+  version = "3.1.06-1";
 
   src = fetchFromGitHub {
     owner = "smxi";
     repo = "inxi";
     rev = version;
-    sha256 = "1mirnrrqfjyl2r7fwnpjlk37i5hf8f7lxv2yxcbdfjf2b3dfbpvl";
+    sha256 = "11z90x7rwzm7krkcnmcs9f41i1d284vrj0aqk2xnvl3p79vx25f7";
   };
 
   buildInputs = [ perl makeWrapper ];
diff --git a/pkgs/tools/system/jump/default.nix b/pkgs/tools/system/jump/default.nix
index fe0138783d3..9966ace14f4 100644
--- a/pkgs/tools/system/jump/default.nix
+++ b/pkgs/tools/system/jump/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1500vim2lmkkls758pwhlx3piqbw6ap0nnhdwz9pcxih4s4as2nk";
 
+  doCheck = false;
+
   outputs = [ "out" "man"];
   postInstall = ''
     install -D --mode=444 man/j.1 man/jump.1 -t $man/man/man1/
@@ -34,7 +36,6 @@ buildGoModule rec {
     '';
     homepage = "https://github.com/gsamokovarov/jump";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ sondr3 ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/system/kmon/default.nix b/pkgs/tools/system/kmon/default.nix
index afb59b25059..a2610327f61 100644
--- a/pkgs/tools/system/kmon/default.nix
+++ b/pkgs/tools/system/kmon/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kmon";
-  version = "1.2.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1l2zdp5f9spkfx1dhxyj32791kgvc8hqjr1kk75vds4c1wgwq8gk";
+    sha256 = "1f9q4bc1kr1hgwf8byj13d6vsfs97wz7x10zwa82iv9b0wb1lr5w";
   };
 
-  cargoSha256 = "08a7gr70a3rh7a52gglck16qlwngb6ap723lg3b3mxmkyigdf6i6";
+  cargoSha256 = "1xy8rkba9idd0w4bnczmv4ll9awvar99vb7s0jd25fjbzqqlz820";
 
   nativeBuildInputs = [ python3 ];
 
diff --git a/pkgs/tools/system/logrotate/default.nix b/pkgs/tools/system/logrotate/default.nix
index 3e357d37d83..4c891e3e5b3 100644
--- a/pkgs/tools/system/logrotate/default.nix
+++ b/pkgs/tools/system/logrotate/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "logrotate";
-  version = "3.16.0";
+  version = "3.17.0";
 
   src = fetchFromGitHub {
     owner = "logrotate";
     repo = "logrotate";
     rev = version;
-    sha256 = "0dsz9cfh9glicrnh1rc3jrc176mimnasslihqnj0aknkv8ajq1jh";
+    sha256 = "133k4y24p918v4dva6dh70bdfv13jvwl2vlhq0mybrs3ripvnh4h";
   };
 
   # Logrotate wants to access the 'mail' program; to be done.
diff --git a/pkgs/tools/system/monit/default.nix b/pkgs/tools/system/monit/default.nix
index 7cec79ff25e..8be921b385e 100644
--- a/pkgs/tools/system/monit/default.nix
+++ b/pkgs/tools/system/monit/default.nix
@@ -6,11 +6,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "monit-5.26.0";
+  name = "monit-5.27.0";
 
   src = fetchurl {
     url = "${meta.homepage}dist/${name}.tar.gz";
-    sha256 = "1hpk0agxi7g9vmfqvrwr5wk7pr52wdlv3vs0j3l2p6mgldl4bz47";
+    sha256 = "197w59wkg6izlj6p7xbx0n6ksvm6pym9pzh24nakl6agcbpxxh6q";
   };
 
   nativeBuildInputs = [ bison flex ];
diff --git a/pkgs/tools/system/netdata/default.nix b/pkgs/tools/system/netdata/default.nix
index 722df46c05f..752721689ba 100644
--- a/pkgs/tools/system/netdata/default.nix
+++ b/pkgs/tools/system/netdata/default.nix
@@ -1,6 +1,7 @@
 { stdenv, callPackage, fetchFromGitHub, autoreconfHook, pkgconfig
 , CoreFoundation, IOKit, libossp_uuid
 , curl, libcap,  libuuid, lm_sensors, zlib, fetchpatch
+, nixosTests
 , withCups ? false, cups
 , withDBengine ? true, libuv, lz4, judy
 , withIpmi ? (!stdenv.isDarwin), freeipmi
@@ -14,14 +15,14 @@ with stdenv.lib;
 let
   go-d-plugin = callPackage ./go.d.plugin.nix {};
 in stdenv.mkDerivation rec {
-  version = "1.23.0";
+  version = "1.24.0";
   pname = "netdata";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "netdata";
     rev = "v${version}";
-    sha256 = "04x53hr2d086y4q990h7lazaykaizb5g45nmfvahqzxj72b0hvdf";
+    sha256 = "19zr2wlsc8rbw6a7vjy4ivgq71l34lh70pcgwa0k5sp1vryj7r3d";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
@@ -71,6 +72,8 @@ in stdenv.mkDerivation rec {
     rm -r $out/sbin
   '';
 
+  passthru.tests.netdata = nixosTests.netdata;
+
   meta = {
     description = "Real-time performance monitoring tool";
     homepage = "https://my-netdata.io/";
@@ -78,5 +81,4 @@ in stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = [ maintainers.lethalman ];
   };
-
 }
diff --git a/pkgs/tools/system/netdata/go.d.plugin.nix b/pkgs/tools/system/netdata/go.d.plugin.nix
index 3e38b7bfdf9..e2392df495f 100644
--- a/pkgs/tools/system/netdata/go.d.plugin.nix
+++ b/pkgs/tools/system/netdata/go.d.plugin.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "netdata-go.d.plugin";
-  version = "0.19.2";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "go.d.plugin";
     rev = "v${version}";
-    sha256 = "03a67kvhickzg96jvzxhg1jih48m96rl4mkg0wgmbi7a676dl7lq";
+    sha256 = "0wd1wg56q955jm5ksq2zqzlms1nlxx7n7vv43l096k1578fv93jv";
   };
 
-  vendorSha256 = "0mmnkkzpv8lmxn11idikddmjinxv1y823ny0wxp271agiinyfpn8";
+  vendorSha256 = "1k84l97fw4s9jdwbka4p168m7l7wil0c4cpijis8ypj3g1xfrw90";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
diff --git a/pkgs/tools/system/pciutils/default.nix b/pkgs/tools/system/pciutils/default.nix
index 4bbe2bdcee0..1814d4b9765 100644
--- a/pkgs/tools/system/pciutils/default.nix
+++ b/pkgs/tools/system/pciutils/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, pkgconfig, zlib, kmod, which }:
+{ stdenv, fetchurl, pkgconfig, zlib, kmod, which
+, static ? stdenv.targetPlatform.isStatic
+}:
 
 stdenv.mkDerivation rec {
   name = "pciutils-3.7.0"; # with release-date database
@@ -12,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ zlib kmod which ];
 
   makeFlags = [
-    "SHARED=yes"
+    "SHARED=${if static then "no" else "yes"}"
     "PREFIX=\${out}"
     "STRIP="
     "HOST=${stdenv.hostPlatform.system}"
diff --git a/pkgs/tools/system/plan9port/builder.sh b/pkgs/tools/system/plan9port/builder.sh
index 7750de70061..b5196e512f4 100644
--- a/pkgs/tools/system/plan9port/builder.sh
+++ b/pkgs/tools/system/plan9port/builder.sh
@@ -24,7 +24,6 @@ configurePhase()
           i?86-*)   echo OBJTYPE=386;;
           *power*)  echo OBJTYPE=power;;
           *sparc*)  echo OBJTYPE=sparc;;
-          *) exit 12
         esac
         if [[ $system =~ .*linux.* ]]; then
           echo SYSVERSION=2.6.x
diff --git a/pkgs/tools/system/plan9port/default.nix b/pkgs/tools/system/plan9port/default.nix
index 54e88f5d069..8164dfa9136 100644
--- a/pkgs/tools/system/plan9port/default.nix
+++ b/pkgs/tools/system/plan9port/default.nix
@@ -89,7 +89,7 @@ stdenv.mkDerivation {
     license = licenses.lpl-102;
     maintainers = with maintainers; [ AndersonTorres bbarker
                                       ftrvxmtrx kovirobi ];
-    platforms = remove "aarch64-linux" platforms.unix;
+    platforms = platforms.unix;
   };
 }
 # TODO: investigate the mouse chording support patch
diff --git a/pkgs/tools/system/psensor/default.nix b/pkgs/tools/system/psensor/default.nix
index 49d2747a33e..afbab363443 100644
--- a/pkgs/tools/system/psensor/default.nix
+++ b/pkgs/tools/system/psensor/default.nix
@@ -5,11 +5,11 @@
 stdenv.mkDerivation rec {
   pname = "psensor";
 
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchurl {
     url = "https://wpitchoune.net/psensor/files/psensor-${version}.tar.gz";
-    sha256 = "1smbidbby4rh14jnh9kn7y64qf486aqnmyxcgacjvkz27cqqnw4r";
+    sha256 = "1ark901va79gfq5p8h8dqypjgm3f8crmj37520q3slwz2rfphkq8";
   };
 
   nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
diff --git a/pkgs/tools/system/rocm-smi/default.nix b/pkgs/tools/system/rocm-smi/default.nix
new file mode 100644
index 00000000000..8cbc56e0468
--- /dev/null
+++ b/pkgs/tools/system/rocm-smi/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildPythonApplication, fetchFromGitHub }:
+
+buildPythonApplication rec {
+  pname = "rocm-smi";
+  version = "3.7.0";
+
+  src = fetchFromGitHub {
+    owner = "RadeonOpenCompute";
+    repo = "ROC-smi";
+    rev = "rocm-${version}";
+    sha256 = "00g9cbni73x9da05lx7hiffp303mdkj1wpxiavfylr4q4z84yhrz";
+  };
+
+  format = "other";
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    install -Dm0755 rocm_smi.py $out/bin/rocm-smi
+  '';
+
+  meta = with lib; {
+    description = "System management interface for AMD GPUs supported by ROCm";
+    homepage = "https://github.com/RadeonOpenCompute/ROC-smi";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ danieldk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/system/rsyslog/default.nix b/pkgs/tools/system/rsyslog/default.nix
index 1739e0ad784..7be7e5b3d37 100644
--- a/pkgs/tools/system/rsyslog/default.nix
+++ b/pkgs/tools/system/rsyslog/default.nix
@@ -14,11 +14,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "rsyslog";
-  version = "8.2004.0";
+  version = "8.2006.0";
 
   src = fetchurl {
     url = "https://www.rsyslog.com/files/download/rsyslog/${pname}-${version}.tar.gz";
-    sha256 = "1n97kx6cyyzd4zh6q01fyqi2wq1ah68h95kdc109m1zhfnvxghsz";
+    sha256 = "15wfhw2nmpiyjpp82jxqgcjy7wgbc2fswk5g6rbdqbvghrj9wn6r";
   };
 
   #patches = [ ./fix-gnutls-detection.patch ];
diff --git a/pkgs/tools/system/s-tui/default.nix b/pkgs/tools/system/s-tui/default.nix
index 2875bca4a2a..1192a176263 100644
--- a/pkgs/tools/system/s-tui/default.nix
+++ b/pkgs/tools/system/s-tui/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "s-tui";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0r5yhlsi5xiy7ii1w4kqkaxz9069v5bbfwi3x3xnxhk51yjfgr8n";
+    sha256 = "1gqrb2xxii43j7kszy7kvv4f6hr8ac4p0m9q8i1xs5fhsqcx186i";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/system/smartmontools/default.nix b/pkgs/tools/system/smartmontools/default.nix
index f4941df8ebd..5d9196fcc16 100644
--- a/pkgs/tools/system/smartmontools/default.nix
+++ b/pkgs/tools/system/smartmontools/default.nix
@@ -1,4 +1,5 @@
 { stdenv, fetchurl, autoreconfHook
+, mailutils, inetutils
 , IOKit ? null , ApplicationServices ? null }:
 
 let
@@ -24,6 +25,10 @@ in stdenv.mkDerivation rec {
   patches = [ ./smartmontools.patch ];
   postPatch = "cp -v ${driverdb} drivedb.h";
 
+  configureFlags = [
+    "--with-scriptpath=${stdenv.lib.makeBinPath [ mailutils inetutils ]}"
+  ];
+
   nativeBuildInputs = [ autoreconfHook ];
   buildInputs = [] ++ stdenv.lib.optionals stdenv.isDarwin [IOKit ApplicationServices];
   enableParallelBuilding = true;
diff --git a/pkgs/tools/system/storebrowse/default.nix b/pkgs/tools/system/storebrowse/default.nix
deleted file mode 100644
index 4324fba87e7..00000000000
--- a/pkgs/tools/system/storebrowse/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv, fetchurl, fetchhg, go, sqlite}:
-
-stdenv.mkDerivation rec {
-  name = "storebrowse-20130318212204";
-
-  src = fetchurl {
-    url = "http://viric.name/cgi-bin/storebrowse/tarball/storebrowse-775928f68e53.tar.gz?uuid=775928f68e53";
-    name = "${name}.tar.gz";
-    sha256 = "1yb8qbw95d9561s10k12a6lwv3my8h52arsbfcpizx74dwfsv7in";
-  };
-
-  # This source has license BSD
-  srcGoSqlite = fetchhg {
-    url = "https://code.google.com/p/gosqlite/";
-    rev = "5baefb109e18";
-    sha256 = "0mqfnx06jj15cs8pq9msny2z18x99hgk6mchnaxpg343nzdiz4zk";
-  };
-
-  buildPhase = ''
-    PATH=${go}/bin:$PATH
-    mkdir $TMPDIR/go
-    export GOPATH=$TMPDIR/go
-
-    ${stdenv.lib.optionalString (stdenv.hostPlatform.system == "armv5tel-linux") "export GOARM=5"}
-
-    GOSQLITE=$GOPATH/src/code.google.com/p/gosqlite
-    mkdir -p $GOSQLITE
-    cp -R $srcGoSqlite/* $GOSQLITE/
-    export CGO_CFLAGS=-I${sqlite.dev}/include
-    export CGO_LDFLAGS=-L${sqlite.out}/lib
-    go build -ldflags "-r ${sqlite.out}/lib" -o storebrowse
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp storebrowse $out/bin
-  '';
-
-  meta = {
-    homepage = "http://viric.name/cgi-bin/storebrowse";
-    license = stdenv.lib.licenses.agpl3Plus;
-    broken = true;
-  };
-}
diff --git a/pkgs/tools/system/stress-ng/default.nix b/pkgs/tools/system/stress-ng/default.nix
index 5e50c3c8753..9939f9ea154 100644
--- a/pkgs/tools/system/stress-ng/default.nix
+++ b/pkgs/tools/system/stress-ng/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "stress-ng";
-  version = "0.11.10";
+  version = "0.11.19";
 
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0x46shnwllv5knpbxj1vj2aqmxgnfhz582crlacwsinc22n1j18i";
+    sha256 = "0s08qahjc68h5qhnahmb9z19l51p5sw2pmzrlknq1j5900zpa2x5";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/system/syslog-ng/default.nix b/pkgs/tools/system/syslog-ng/default.nix
index 238c9ac1f68..eeb2a99740e 100644
--- a/pkgs/tools/system/syslog-ng/default.nix
+++ b/pkgs/tools/system/syslog-ng/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "syslog-ng";
-  version = "3.27.1";
+  version = "3.28.1";
 
   src = fetchurl {
     url = "https://github.com/${pname}/${pname}/releases/download/${pname}-${version}/${pname}-${version}.tar.gz";
-    sha256 = "1cv1kn4jpqyhlhx8w5v557jyc4b2ly2dgkv1hbb8vzgpjwy66k65";
+    sha256 = "1s56q8k69sdrqsh3y9lr4di01fqw7xb49wr0dz75jmz084yg8kmg";
   };
 
   nativeBuildInputs = [ pkgconfig which ];
diff --git a/pkgs/tools/system/thermald/default.nix b/pkgs/tools/system/thermald/default.nix
index 51a443b9bde..c0a94457e6a 100644
--- a/pkgs/tools/system/thermald/default.nix
+++ b/pkgs/tools/system/thermald/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "thermald";
-  version = "2.1";
+  version = "2.2";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "thermal_daemon";
     rev = "v${version}";
-    sha256 = "1k8svy03k57ld6p5d29i0ccrd1gics6kbyx1bkfmw9fh1bbljyf7";
+    sha256 = "1nrhv3bypyc48h9smj5cpq63rawm6vqyg3cwkhpz69rgjnf1283m";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/system/tre-command/default.nix b/pkgs/tools/system/tre-command/default.nix
index b420126a95e..d0f81414741 100644
--- a/pkgs/tools/system/tre-command/default.nix
+++ b/pkgs/tools/system/tre-command/default.nix
@@ -1,23 +1,28 @@
-{ rustPlatform, fetchFromGitHub, stdenv }:
+{ rustPlatform, fetchFromGitHub, stdenv, installShellFiles }:
 
 rustPlatform.buildRustPackage rec {
   pname = "tre-command";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "dduan";
     repo = "tre";
     rev = "v${version}";
-    sha256 = "1fm3fszy7fd0dgf5dwm35nb0ym0waw92iyx128lr2vlbyzln6ija";
+    sha256 = "1kb8jwmjhlp9bk08rb6gq3j810cv9bidm28sa417vyykp9a8p2ky";
   };
 
-  cargoSha256 = "0sk4dn5rrqhkaxm76y1d7rsjsw6pdjdhb2xv7qqrlivfk6y5k31x";
+  cargoSha256 = "0cqkpvq8b2vnqpkd819cdgh4fqr9yns337fgzah4m40ygs25n9iv";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  preFixup = ''
+    installManPage manual/tre.1
+  '';
 
   meta = with stdenv.lib; {
     description = "Tree command, improved";
     homepage = "https://github.com/dduan/tre";
     license = licenses.mit;
     maintainers = [ maintainers.dduan ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/system/zenith/default.nix b/pkgs/tools/system/zenith/default.nix
index b7912f44cdd..6e3024a3f7d 100644
--- a/pkgs/tools/system/zenith/default.nix
+++ b/pkgs/tools/system/zenith/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "zenith";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "bvaisvil";
     repo = pname;
     rev = version;
-    sha256 = "1yfbr8zmcy7zp9s9cqv7qypj2vvhpq09r0398gr7ckjk6v70hhfg";
+    sha256 = "04nd5gq49y1k9xxrc9ll155k9j42ivscjzx405qyyxv7dpgyw131";
   };
 
-  cargoSha256 = "1l4cjcpfghis983y31s54fzjppdnh3wa4anwi7bdsbyvqz3n3ywj";
+  cargoSha256 = "0ggpr2skl3d47y771npmbbqb9vga4y4iyry3qn0xj2hg9d7msf4l";
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ IOKit ];
 
diff --git a/pkgs/tools/text/aha/default.nix b/pkgs/tools/text/aha/default.nix
index a823f37d8d2..1a6d65c52cd 100644
--- a/pkgs/tools/text/aha/default.nix
+++ b/pkgs/tools/text/aha/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "aha";
-  version = "0.5";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
-    sha256 = "0byml4rmpiaalwx69jcixl3yvpvwmwiss1jzgsqwshilb2p4qnmz";
+    sha256 = "1gywad0rvvz3c5balz8cxsnx0562hj2ngzqyr8zsy2mb4pn0lpgv";
     rev = version;
     repo = "aha";
     owner = "theZiz";
@@ -23,6 +23,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/theZiz/aha";
     license = with licenses; [ lgpl2Plus mpl11 ];
     maintainers = with maintainers; [ pSub ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/text/amber/default.nix b/pkgs/tools/text/amber/default.nix
index 4afab278370..22a18b1cffb 100644
--- a/pkgs/tools/text/amber/default.nix
+++ b/pkgs/tools/text/amber/default.nix
@@ -22,6 +22,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dalance/amber";
     license = with licenses; [ mit ];
     maintainers = [ maintainers.bdesham ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/text/coloursum/default.nix b/pkgs/tools/text/coloursum/default.nix
index f38ada46c11..38f544496d5 100644
--- a/pkgs/tools/text/coloursum/default.nix
+++ b/pkgs/tools/text/coloursum/default.nix
@@ -19,7 +19,6 @@ rustPlatform.buildRustPackage rec {
     description = "Colourise your checksum output";
     homepage = "https://github.com/ticky/coloursum";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ fgaz ];
   };
 }
diff --git a/pkgs/tools/text/diffr/default.nix b/pkgs/tools/text/diffr/default.nix
index 016cc40977b..4fa7814ad00 100644
--- a/pkgs/tools/text/diffr/default.nix
+++ b/pkgs/tools/text/diffr/default.nix
@@ -24,6 +24,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mookid/diffr";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ davidtwco ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/text/diffutils/default.nix b/pkgs/tools/text/diffutils/default.nix
index 06ecda9ff21..6fd69a9ba4c 100644
--- a/pkgs/tools/text/diffutils/default.nix
+++ b/pkgs/tools/text/diffutils/default.nix
@@ -1,5 +1,10 @@
 { stdenv, fetchurl, xz, coreutils ? null }:
 
+# 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
+# files.
+
 stdenv.mkDerivation rec {
   name = "diffutils-3.7";
 
diff --git a/pkgs/tools/text/fanficfare/default.nix b/pkgs/tools/text/fanficfare/default.nix
index 6fc27bdf00c..1dbe4514363 100644
--- a/pkgs/tools/text/fanficfare/default.nix
+++ b/pkgs/tools/text/fanficfare/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "FanFicFare";
-  version = "3.19.0";
+  version = "3.21.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "01cr4941sg6is6k6sajlbr6hs5s47aq9xhp7gadhq4h3x6dilj40";
+    sha256 = "16hklfbww6ibmjr32gg98nlnzl4dwanz6lm3fzg2x3vd7d54m92c";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/text/fastmod/default.nix b/pkgs/tools/text/fastmod/default.nix
index 4ea24328b9c..d15683894a2 100644
--- a/pkgs/tools/text/fastmod/default.nix
+++ b/pkgs/tools/text/fastmod/default.nix
@@ -24,6 +24,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/facebookincubator/fastmod";
     license = licenses.asl20;
     maintainers = with maintainers; [ jduan ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/text/gjo/default.nix b/pkgs/tools/text/gjo/default.nix
index 74a5c87a760..28af709c30e 100644
--- a/pkgs/tools/text/gjo/default.nix
+++ b/pkgs/tools/text/gjo/default.nix
@@ -14,8 +14,6 @@ buildGoModule rec {
     sha256 = "07halr0jzds4rya6hlvp45bjf7vg4yf49w5q60mch05hk8qkjjdw";
   };
 
-  doCheck = true;
-
   vendorSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
 
   meta = with stdenv.lib; {
@@ -24,4 +22,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/text/glogg/default.nix b/pkgs/tools/text/glogg/default.nix
index 90c1419ef30..dff7262bed2 100644
--- a/pkgs/tools/text/glogg/default.nix
+++ b/pkgs/tools/text/glogg/default.nix
@@ -1,21 +1,34 @@
-{ mkDerivation, stdenv, fetchurl, qmake, boost }:
+{ mkDerivation, stdenv, fetchFromGitHub, qmake, boost }:
 
 mkDerivation rec {
-
   pname = "glogg";
   version = "1.1.4";
 
-  src = fetchurl {
-    url = "https://glogg.bonnefon.org/files/${pname}-${version}.tar.gz";
-    sha256 = "0nwnfk9bcz2k7rf08w2cb6qipzdhwmxznik44jxmn9gwxdrdq78c";
+  src = fetchFromGitHub {
+    owner = "nickbnf";
+    repo = "glogg";
+    rev = "v${version}";
+    sha256 = "0hf1c2m8n88frmxmyn0ndr8129p7iky49nq565sw1asaydm5z6pb";
   };
 
+  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+    substituteInPlace glogg.pro \
+      --replace "boost_program_options-mt" "boost_program_options"
+  '';
+
   nativeBuildInputs = [ qmake ];
   buildInputs = [ boost ];
 
-  qmakeFlags = [ "glogg.pro" ];
+  qmakeFlags = [ "VERSION=${version}" ];
   enableParallelBuilding = true;
 
+  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+    mkdir -p $out/Applications
+    mv $out/bin/glogg.app $out/Applications/glogg.app
+    rm -fr $out/{bin,share}
+    wrapQtApp $out/Applications/glogg.app/Contents/MacOS/glogg
+  '';
+
   meta = with stdenv.lib; {
     description = "The fast, smart log explorer";
     longDescription = ''
@@ -23,7 +36,7 @@ mkDerivation rec {
     '';
     homepage = "https://glogg.bonnefon.org/";
     license = licenses.gpl3Plus;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ c0bw3b ];
   };
 }
diff --git a/pkgs/tools/text/gnugrep/default.nix b/pkgs/tools/text/gnugrep/default.nix
index 3f5c4d7d86c..f7e3cd42a9b 100644
--- a/pkgs/tools/text/gnugrep/default.nix
+++ b/pkgs/tools/text/gnugrep/default.nix
@@ -1,5 +1,10 @@
 { stdenv, fetchurl, pcre, libiconv, perl }:
 
+# 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
+# files.
+
 let version = "3.4"; in
 
 stdenv.mkDerivation {
@@ -19,7 +24,7 @@ stdenv.mkDerivation {
 
   # cygwin: FAIL: multibyte-white-space
   # freebsd: FAIL mb-non-UTF8-performance
-  # all platforms: timing sensitivity in long-pattern-perf 
+  # all platforms: timing sensitivity in long-pattern-perf
   #doCheck = !stdenv.isDarwin && !stdenv.isSunOS && !stdenv.isCygwin && !stdenv.isFreeBSD;
   doCheck = false;
 
diff --git a/pkgs/tools/text/hyx/default.nix b/pkgs/tools/text/hyx/default.nix
index 83fdabb8f46..c2b055be7df 100644
--- a/pkgs/tools/text/hyx/default.nix
+++ b/pkgs/tools/text/hyx/default.nix
@@ -1,14 +1,25 @@
 { lib, stdenv, fetchurl }:
-
+let
+  # memstream — POSIX memory streams for BSD
+  memstream = fetchurl {
+    url = "https://piumarta.com/software/memstream/memstream-0.1.tar.gz";
+    sha256 = "0kvdb897g7nyviaz72arbqijk2g2wa61cmi3l5yh48rzr49r3a3a";
+  };
+in
 stdenv.mkDerivation rec {
-  name = "hyx-0.1.5";
+  pname = "hyx";
+  version = "2020-06-09";
 
   src = fetchurl {
-    url = "https://yx7.cc/code/hyx/${name}.tar.xz";
-    sha256 = "0gd8fbdyw12jwffa5dgcql4ry22xbdhqdds1qwzk1rkcrkgnc1mg";
+    url = "https://yx7.cc/code/hyx/hyx-${lib.replaceStrings [ "-" ] [ "." ] version}.tar.xz";
+    sha256 = "1x8dmll93hrnj24kn5knpwj36y6r1v2ygwynpjwrg2hwd4c1a8hi";
   };
 
-  patches = [ ./no-wall-by-default.patch ];
+  postUnpack = lib.optionalString stdenv.isDarwin ''
+    tar --strip=1 -C $sourceRoot -xf ${memstream} --wildcards "memstream-0.1/memstream.[hc]"
+  '';
+
+  patches = lib.optional stdenv.isDarwin ./memstream.patch;
 
   installPhase = ''
     install -vD hyx $out/bin/hyx
@@ -19,6 +30,6 @@ stdenv.mkDerivation rec {
     homepage = "https://yx7.cc/code/";
     license = licenses.mit;
     maintainers = with maintainers; [ fpletz ];
-    platforms = platforms.linux;
+    platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/tools/text/hyx/memstream.patch b/pkgs/tools/text/hyx/memstream.patch
new file mode 100644
index 00000000000..a02509ced76
--- /dev/null
+++ b/pkgs/tools/text/hyx/memstream.patch
@@ -0,0 +1,31 @@
+diff -Naur hyx-2020.06.09.org/Makefile hyx-2020.06.09/Makefile
+--- hyx-2020.06.09.org/Makefile	2020-06-09 15:19:50.000000000 +0300
++++ hyx-2020.06.09/Makefile	2020-07-22 11:46:40.000000000 +0300
+@@ -1,6 +1,6 @@
+ 
+ all: CFLAGS ?= -O2 -Wl,-s \
+-               -Wl,-z,relro,-z,now -fpic -pie -D_FORTIFY_SOURCE=2 -fstack-protector-all
++               -D_FORTIFY_SOURCE=2 -fstack-protector-all
+ all: CFLAGS += -std=c99 -pedantic -Wall -Wextra -DNDEBUG
+ all: hyx
+ 
+@@ -13,7 +13,7 @@
+ hyx: *.h *.c
+ 	$(CC) \
+ 		$(CFLAGS) \
+-		hyx.c common.c blob.c history.c view.c input.c \
++		hyx.c common.c blob.c history.c view.c input.c memstream.c \
+ 		-o hyx
+ 
+ clean:
+diff -Naur hyx-2020.06.09.org/view.c hyx-2020.06.09/view.c
+--- hyx-2020.06.09.org/view.c	2020-06-09 15:19:50.000000000 +0300
++++ hyx-2020.06.09/view.c	2020-07-22 11:49:09.000000000 +0300
+@@ -4,6 +4,7 @@
+ #include "view.h"
+ #include "input.h"
+ #include "ansi.h"
++#include "memstream.h"
+ 
+ #include <stdlib.h>
+ #include <stdio.h>
diff --git a/pkgs/tools/text/hyx/no-wall-by-default.patch b/pkgs/tools/text/hyx/no-wall-by-default.patch
deleted file mode 100644
index 48ee20eff17..00000000000
--- a/pkgs/tools/text/hyx/no-wall-by-default.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- hyx-0.1.5.org/Makefile	2018-06-02 17:14:37.000000000 +0100
-+++ hyx-0.1.5/Makefile	2018-11-10 09:25:49.569961762 +0000
-@@ -1,7 +1,7 @@
- 
- all: CFLAGS ?= -O2 -Wl,-s \
-                -Wl,-z,relro,-z,now -fpic -pie -D_FORTIFY_SOURCE=2 -fstack-protector-all
--all: CFLAGS += -std=c99 -pedantic -Wall -Wextra -DNDEBUG
-+all: CFLAGS += -std=c99 -DNDEBUG
- all: hyx
- 
- debug: CFLAGS ?= -O0 -g \
diff --git a/pkgs/tools/text/kdiff3/default.nix b/pkgs/tools/text/kdiff3/default.nix
index f41de9baffc..9c0526c3e63 100644
--- a/pkgs/tools/text/kdiff3/default.nix
+++ b/pkgs/tools/text/kdiff3/default.nix
@@ -6,11 +6,11 @@
 
 mkDerivation rec {
   pname = "kdiff3";
-  version = "1.8.2";
+  version = "1.8.3";
 
   src = fetchurl {
     url = "https://download.kde.org/stable/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0s5vsm1avzv88b6mf2pp20c2sz0srrj52iiqpnwi3p4ihivm8wgv";
+    sha256 = "1awb62y09kbkjhz22mdkrppd6w5aihd3l0ssvpil8c9hg8syjd9g";
   };
 
   nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
diff --git a/pkgs/tools/text/mdbook/default.nix b/pkgs/tools/text/mdbook/default.nix
index 7d5020f63b3..9cfdc9c9b7e 100644
--- a/pkgs/tools/text/mdbook/default.nix
+++ b/pkgs/tools/text/mdbook/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook";
-  version = "0.4.0";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "rust-lang-nursery";
     repo = "mdBook";
     rev = "v${version}";
-    sha256 = "13m23cky8axi7i4s1bvdjcdfr4v8mbxfvz4fy3q8b8gkd6abm3sf";
+    sha256 = "0rkl5k7a9a0vx06jqvbgki2bwag0ar2pcbg3qi88xnjnnmphzpzj";
   };
 
-  cargoSha256 = "0q1kf810494njd5ai2v4qsaq9w3b7120yaymhgxjpcmig8s86zhr";
+  cargoSha256 = "1zhlb6wnjnayq833h62nm3ndlhiz1qajw8w5ccc88b8q8m4ipd7c";
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ CoreServices ];
 
@@ -20,6 +20,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rust-lang-nursery/mdbook";
     license = [ licenses.mpl20 ];
     maintainers = [ maintainers.havvy ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/text/mdcat/default.nix b/pkgs/tools/text/mdcat/default.nix
index 66d1105770b..277c7417ce9 100644
--- a/pkgs/tools/text/mdcat/default.nix
+++ b/pkgs/tools/text/mdcat/default.nix
@@ -2,30 +2,31 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdcat";
-  version = "0.19.0";
+  version = "0.21.1";
 
   src = fetchFromGitHub {
     owner = "lunaryorn";
     repo = pname;
     rev = "mdcat-${version}";
-    hash = "sha256-/ZhhDiiUc+swXr3IuuQD4YqIIdgh8PeRWm/ko9Lc0rM=";
+    hash = "sha256-O7LlbSkxcyHQiTHYB/QBJVlShzTSzud3VJDIQ1ScvM4=";
   };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security;
 
-  cargoSha256 = "sha256-SGX94XY7e38xySvTO+CDTUBDTfYybPy12iWFoFc2Nto=";
+  cargoSha256 = "sha256-pvhYKyFraMI4w5nq6L8qs/ONSNDTHElhZnZmD5mmAZs=";
 
   checkInputs = [ ansi2html ];
   checkPhase = ''
     # Skip tests that use the network and that include files.
-    cargo test -- --skip terminal::iterm2 \
-      --skip magic::tests::detect_mimetype_of_svg_image \
-      --skip magic::tests::detect_mimetype_of_png_image \
+    cargo test -- \
       --skip magic::tests::detect_mimetype_of_larger_than_magic_param_bytes_max_length \
       --skip magic::tests::detect_mimetype_of_magic_param_bytes_max_length \
+      --skip magic::tests::detect_mimetype_of_png_image \
+      --skip magic::tests::detect_mimetype_of_svg_image \
       --skip resources::tests::read_url_with_http_url_fails_when_status_404 \
-      --skip resources::tests::read_url_with_http_url_returns_content_when_status_200
+      --skip resources::tests::read_url_with_http_url_returns_content_when_status_200 \
+      --skip iterm2_tests_render_md_samples_images_md
   '';
 
   meta = with stdenv.lib; {
@@ -33,6 +34,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/lunaryorn/mdcat";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ davidtwco ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/text/miller/default.nix b/pkgs/tools/text/miller/default.nix
index 3b8fbdb6429..28f2c54729b 100644
--- a/pkgs/tools/text/miller/default.nix
+++ b/pkgs/tools/text/miller/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "miller";
 
-  version = "5.7.0";
+  version = "5.9.1";
 
   src = fetchFromGitHub {
     owner = "johnkerl";
     repo = "miller";
     rev = "v${version}";
-    sha256 = "1lmin69rf9lp3b64ga7li4sz7mm0gqapsbk1nb29l4fqjxk16ddh";
+    sha256 = "1i9bcpfjnl2yjnfmf0ar1l62zwq01ph0yylz0dby8k2l7cvq5ci6";
   };
 
   nativeBuildInputs = [ autoreconfHook flex libtool ];
diff --git a/pkgs/tools/text/ocrmypdf/0001-Make-compatible-with-pdfminer.six-version-20200720.patch b/pkgs/tools/text/ocrmypdf/0001-Make-compatible-with-pdfminer.six-version-20200720.patch
new file mode 100644
index 00000000000..967bcd3948c
--- /dev/null
+++ b/pkgs/tools/text/ocrmypdf/0001-Make-compatible-with-pdfminer.six-version-20200720.patch
@@ -0,0 +1,52 @@
+From 4315b58e0bffedd145cec61f96062292cd98278e Mon Sep 17 00:00:00 2001
+From: Pascal Bach <pascal.bach@nextrem.ch>
+Date: Thu, 23 Jul 2020 21:37:33 +0200
+Subject: [PATCH] Make compatible with pdfminer.six version 20200720
+
+---
+ setup.py                       | 2 +-
+ src/ocrmypdf/pdfinfo/layout.py | 8 ++++++--
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index bd95ed9..d1f4ab1 100644
+--- a/setup.py
++++ b/setup.py
+@@ -83,7 +83,7 @@ setup(
+         'cffi >= 1.9.1',  # must be a setup and install requirement
+         'coloredlogs >= 14.0',  # strictly optional
+         'img2pdf >= 0.3.0, < 0.4',  # pure Python, so track HEAD closely
+-        'pdfminer.six >= 20191110, <= 20200517',
++        'pdfminer.six >= 20191110, <= 20200720',
+         'pikepdf >= 1.14.0, < 2',
+         'Pillow >= 7.0.0',
+         'pluggy >= 0.13.0',
+diff --git a/src/ocrmypdf/pdfinfo/layout.py b/src/ocrmypdf/pdfinfo/layout.py
+index 98bd82e..8b41e14 100644
+--- a/src/ocrmypdf/pdfinfo/layout.py
++++ b/src/ocrmypdf/pdfinfo/layout.py
+@@ -26,7 +26,11 @@ import pdfminer.pdfdevice
+ import pdfminer.pdfinterp
+ from pdfminer.converter import PDFLayoutAnalyzer
+ from pdfminer.layout import LAParams, LTChar, LTPage, LTTextBox
+-from pdfminer.pdfdocument import PDFTextExtractionNotAllowed
++try:
++    from pdfminer.pdfdocument import PDFTextExtractionNotAllowedError
++except ImportError:
++    # Fallback for pdfminer < 20200720
++    from pdfminer.pdfdocument import PDFTextExtractionNotAllowed as PDFTextExtractionNotAllowedError
+ from pdfminer.pdffont import PDFSimpleFont, PDFUnicodeNotDefined
+ from pdfminer.pdfpage import PDFPage
+ from pdfminer.utils import bbox2str, matrix2str
+@@ -239,7 +243,7 @@ def get_page_analysis(infile, pageno, pscript5_mode):
+         with Path(infile).open('rb') as f:
+             page = PDFPage.get_pages(f, pagenos=[pageno], maxpages=0)
+             interp.process_page(next(page))
+-    except PDFTextExtractionNotAllowed:
++    except PDFTextExtractionNotAllowedError:
+         raise EncryptedPdfError()
+     finally:
+         if pscript5_mode:
+-- 
+2.27.0
+
diff --git a/pkgs/tools/text/ocrmypdf/default.nix b/pkgs/tools/text/ocrmypdf/default.nix
index 874dc59c7fd..bfa22a4fd18 100644
--- a/pkgs/tools/text/ocrmypdf/default.nix
+++ b/pkgs/tools/text/ocrmypdf/default.nix
@@ -29,14 +29,14 @@ let
 in
 buildPythonApplication rec {
   pname = "ocrmypdf";
-  version = "9.8.2";
+  version = "11.0.1";
   disabled = ! python3Packages.isPy3k;
 
   src = fetchFromGitHub {
     owner = "jbarlow83";
     repo = "OCRmyPDF";
     rev = "v${version}";
-    sha256 = "0zff9gsbfaf72p8zbjamn6513czpr7papyh1jy0fz1z2a9h7ya0g";
+    sha256 = "194ds9i1zd80ynzwgv7kprax0crh7bbchayawdcvg2lyr64a82xn";
   };
 
   nativeBuildInputs = with python3Packages; [
@@ -49,8 +49,10 @@ buildPythonApplication rec {
   propagatedBuildInputs = with python3Packages; [
     cffi
     chardet
+    coloredlogs
     img2pdf
     pdfminer
+    pluggy
     pikepdf
     pillow
     reportlab
@@ -66,7 +68,7 @@ buildPythonApplication rec {
     pytestcov
     pytestrunner
     python-xmp-toolkit
-    setuptools
+    pytestCheckHook
   ] ++ runtimeDeps;
 
   patches = [
@@ -76,25 +78,6 @@ buildPythonApplication rec {
     })
   ];
 
-  # The tests take potentially 20+ minutes, depending on machine
-  doCheck = false;
-
-  # These tests fail and it might be upstream problem... or packaging. :)
-  # development is happening on macos and the pinned test versions are
-  # significantly newer than nixpkgs has. Program still works...
-  # (to the extent I've used it) -- Kiwi
-  checkPhase = ''
-    export HOME=$TMPDIR
-    pytest -k 'not test_force_ocr_on_pdf_with_no_images \
-    and not test_tesseract_crash \
-    and not test_tesseract_crash_autorotate \
-    and not test_ghostscript_pdfa_failure \
-    and not test_gs_render_failure \
-    and not test_gs_raster_failure \
-    and not test_bad_utf8 \
-    and not test_old_unpaper'
-  '';
-
   makeWrapperArgs = [ "--prefix PATH : ${stdenv.lib.makeBinPath [ ghostscript jbig2enc pngquant qpdf tesseract4 unpaper ]}" ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/text/platinum-searcher/default.nix b/pkgs/tools/text/platinum-searcher/default.nix
index 53aa9ac7b76..b53c5646e70 100644
--- a/pkgs/tools/text/platinum-searcher/default.nix
+++ b/pkgs/tools/text/platinum-searcher/default.nix
@@ -19,7 +19,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     homepage = "https://github.com/monochromegane/the_platinum_searcher";
     description = "A code search tool similar to ack and the_silver_searcher(ag).";
-    platforms = platforms.all;
     license = licenses.mit;
   };
 }
diff --git a/pkgs/tools/text/podiff/default.nix b/pkgs/tools/text/podiff/default.nix
index bee2c7a1a8f..b76dfd2256a 100644
--- a/pkgs/tools/text/podiff/default.nix
+++ b/pkgs/tools/text/podiff/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation {
   pname = "podiff";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchurl {
-    url = "ftp://download.gnu.org.ua/pub/release/podiff/podiff-1.1.tar.gz";
-    sha256 = "1zz6bcmka5zvk2rq775qv122lqh54aijkxlghvx7z0r6kh880x59";
+    url = "ftp://download.gnu.org.ua/pub/release/podiff/podiff-1.2.tar.gz";
+    sha256 = "1l2b4hh53xlx28riigwarzkhxpv1pcz059xj1ka33ccvxc6c20k9";
   };
 
   patchPhase = ''
diff --git a/pkgs/tools/text/poedit/default.nix b/pkgs/tools/text/poedit/default.nix
index ccd99a272b5..05241033c6a 100644
--- a/pkgs/tools/text/poedit/default.nix
+++ b/pkgs/tools/text/poedit/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "poedit";
-  version = "2.3.1";
+  version = "2.4.1";
 
   src = fetchurl {
     url = "https://github.com/vslavik/poedit/archive/v${version}-oss.tar.gz";
-    sha256 = "04f9za35rwyr7mabk8f8izc0fgvc3sfx45v8dml1xmi634n174ds";
+    sha256 = "0pvd903j2x3h9wh38fhlcn23d0jkjlqnfbdpbvnbhy6al1ngx72w";
   };
 
   nativeBuildInputs = [ autoconf automake asciidoc wrapGAppsHook 
diff --git a/pkgs/tools/text/recode/default.nix b/pkgs/tools/text/recode/default.nix
index b562c92679b..b6503f88848 100644
--- a/pkgs/tools/text/recode/default.nix
+++ b/pkgs/tools/text/recode/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "recode";
-  version = "3.7.6";
+  version = "3.7.7";
 
   # Use official tarball, avoid need to bootstrap/generate build system
   src = fetchurl {
     url = "https://github.com/rrthomas/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "0m59sd1ca0zw1aydpc3m8sw03nc885knmccqryg7byzmqs585ia6";
+    sha256 = "1yrqgw74qrdmy82lxd1cxlfclrf2fqi0qp7afjmfc6b7f0xzcih9";
   };
 
   nativeBuildInputs = [ python3 python3.pkgs.cython perl intltool flex texinfo libiconv ];
diff --git a/pkgs/tools/text/ripgrep-all/default.nix b/pkgs/tools/text/ripgrep-all/default.nix
index 97d3f8960d9..8da7a54ebb2 100644
--- a/pkgs/tools/text/ripgrep-all/default.nix
+++ b/pkgs/tools/text/ripgrep-all/default.nix
@@ -58,6 +58,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/phiresky/ripgrep-all";
     license = with licenses; [ agpl3Plus ];
     maintainers = with maintainers; [ zaninime ma27 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/text/ripgrep/default.nix b/pkgs/tools/text/ripgrep/default.nix
index 548b6fd22de..9a72e023d6d 100644
--- a/pkgs/tools/text/ripgrep/default.nix
+++ b/pkgs/tools/text/ripgrep/default.nix
@@ -39,6 +39,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/BurntSushi/ripgrep";
     license = with licenses; [ unlicense /* or */ mit ];
     maintainers = with maintainers; [ tailhook globin ma27 zowoq ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/text/ruplacer/default.nix b/pkgs/tools/text/ruplacer/default.nix
index 535a00b7b4d..7ebf739414a 100644
--- a/pkgs/tools/text/ruplacer/default.nix
+++ b/pkgs/tools/text/ruplacer/default.nix
@@ -20,6 +20,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/TankerHQ/ruplacer";
     license = [ licenses.bsd3 ];
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/text/sd/default.nix b/pkgs/tools/text/sd/default.nix
index a540918e56d..1fa508b1ef6 100644
--- a/pkgs/tools/text/sd/default.nix
+++ b/pkgs/tools/text/sd/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sd";
-  version = "0.7.5";
+  version = "0.7.6";
 
   src = fetchFromGitHub {
     owner = "chmln";
     repo = pname;
     rev = "v${version}";
-    sha256 = "04jsni80jzhbb106283df34cdyp5p362l6m29kp30hnc6x49853q";
+    sha256 = "0c5bsqs6c55x4j640vhzlmbiylhp5agr7lx0jrwcjazfyvxihc01";
   };
 
-  cargoSha256 = "1gwb76zys7gky42clzjs5g4hhgpfvzcw63chw9mnj703c7h0cgfh";
+  cargoSha256 = "1mksmdp1wnsjd8gw1g3l16a24fk05xa9mxygc0qklr41bqf8kw8b";
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
 
@@ -20,7 +20,6 @@ rustPlatform.buildRustPackage rec {
     description = "Intuitive find & replace CLI (sed alternative)";
     homepage = "https://github.com/chmln/sd";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ amar1729 filalex77 ];
   };
 }
diff --git a/pkgs/tools/text/shfmt/default.nix b/pkgs/tools/text/shfmt/default.nix
index 43c945ac769..ec58cbdd1a9 100644
--- a/pkgs/tools/text/shfmt/default.nix
+++ b/pkgs/tools/text/shfmt/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, fetchpatch }:
 
 buildGoModule rec {
   pname = "shfmt";
@@ -17,6 +17,14 @@ buildGoModule rec {
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
+  patches = [
+    # fix failing test on go 1.15, remove with > 3.1.2
+    (fetchpatch {
+      url = "https://github.com/mvdan/sh/commit/88956f97dae1f268af6c030bf2ba60762ebb488a.patch";
+      sha256 = "1zg8i7kklr12zjkaxh8djd2bzkdx8klgfj271r2wivkc2x61shgv";
+    })
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/mvdan/sh";
     description = "A shell parser and formatter";
diff --git a/pkgs/tools/text/sift/default.nix b/pkgs/tools/text/sift/default.nix
index 830810a84c4..5a36de5f720 100644
--- a/pkgs/tools/text/sift/default.nix
+++ b/pkgs/tools/text/sift/default.nix
@@ -21,6 +21,5 @@ buildGoPackage rec {
     homepage = "https://sift-tool.org";
     maintainers = [ maintainers.carlsverre ];
     license = licenses.gpl3;
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/text/smu/default.nix b/pkgs/tools/text/smu/default.nix
index 50bceb4fcb3..854e70c7622 100644
--- a/pkgs/tools/text/smu/default.nix
+++ b/pkgs/tools/text/smu/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     description = "simple markup - markdown like syntax";
     homepage = "https://github.com/Gottox/smu";
     license = licenses.mit;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
 
diff --git a/pkgs/tools/text/snippetpixie/default.nix b/pkgs/tools/text/snippetpixie/default.nix
index 991b496777c..5c6025b245e 100644
--- a/pkgs/tools/text/snippetpixie/default.nix
+++ b/pkgs/tools/text/snippetpixie/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , vala
@@ -18,19 +19,18 @@
 , ibus
 , json-glib
 , pantheon
-, libwnck3
 , xorg
 }:
 
 stdenv.mkDerivation rec {
   pname = "snippetpixie";
-  version = "1.3.3";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "bytepixie";
     repo = pname;
     rev = version;
-    sha256 = "0ml57j6jagqvjlpgn1bcyx08h71kcxalh69y03y2lj84x5ib8qz3";
+    sha256 = "1db3fbawh4qwdqby5ji4g26pksi4q253r5zvd3kv1m2ljmwrrwj0";
   };
 
   nativeBuildInputs = [
@@ -54,7 +54,6 @@ stdenv.mkDerivation rec {
     dbus
     ibus
     json-glib
-    libwnck3
     xorg.libXtst
     pantheon.granite
     pantheon.elementary-gtk-theme
@@ -69,7 +68,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
@@ -82,6 +81,8 @@ stdenv.mkDerivation rec {
       Save your often used text snippets and then expand them whenever you type their abbreviation.
 
       For example:- "spr`" expands to "Snippet Pixie rules!"
+
+      For non-accessible applications such as browsers and Electron apps, there's a shortcut (default is Ctrl+`) for opening a search window that pastes the selected snippet.
     '';
     homepage = "https://www.snippetpixie.com";
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/text/ugrep/default.nix b/pkgs/tools/text/ugrep/default.nix
new file mode 100644
index 00000000000..6f44c360267
--- /dev/null
+++ b/pkgs/tools/text/ugrep/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, boost, bzip2, lz4, pcre2, xz, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "ugrep";
+  version = "2.5.5";
+
+  src = fetchFromGitHub {
+    owner = "Genivia";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0ba9h0m9c28rllym1djij3b97k4rj06nsgajmbxg5mpxfzplgxy2";
+  };
+
+  buildInputs = [ boost bzip2 lz4 pcre2 xz zlib ];
+
+  meta = with stdenv.lib; {
+    description = "Ultra fast grep with interactive query UI";
+    homepage = "https://github.com/Genivia/ugrep";
+    maintainers = with maintainers; [ numkem ];
+    license = licenses.bsd3;
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/text/vale/default.nix b/pkgs/tools/text/vale/default.nix
index 6035c2950a9..8a63d82eacb 100644
--- a/pkgs/tools/text/vale/default.nix
+++ b/pkgs/tools/text/vale/default.nix
@@ -1,19 +1,27 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "vale";
-  version = "2.0.0";
+  version = "2.3.4";
 
   subPackages = [ "." ];
+  outputs = [ "out" "data" ];
 
   src = fetchFromGitHub {
     owner  = "errata-ai";
     repo   = "vale";
     rev    = "v${version}";
-    sha256 = "068973ayd883kzkxl60lpammf3icjz090nw07kfccvhcf24x07bh";
+    sha256 = "0vk7kk2a2891vm46lss8q2893n2zdirlicac2f3xfkrbb5lhkicd";
   };
 
-  goPackagePath = "github.com/errata-ai/vale";
+  vendorSha256 = null;
+
+  doCheck = false;
+
+  postInstall = ''
+    mkdir -p $data/share/vale
+    cp -r styles $data/share/vale
+  '';
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
diff --git a/pkgs/tools/text/vgrep/default.nix b/pkgs/tools/text/vgrep/default.nix
new file mode 100644
index 00000000000..12880b2e4ec
--- /dev/null
+++ b/pkgs/tools/text/vgrep/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "vgrep";
+  version = "2.4.0";
+
+  src = fetchFromGitHub {
+    owner = "vrothberg";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "109j04my2xib8m52a0337996a27nvfgzackpg20zs3nzn66dmvb7";
+  };
+
+  vendorSha256 = null;
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
+  meta = with lib; {
+    description = "User-friendly pager for grep/git-grep/ripgrep";
+    homepage = "https://github.com/vrothberg/vgrep";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ zowoq ];
+  };
+}
diff --git a/pkgs/tools/text/wgetpaste/default.nix b/pkgs/tools/text/wgetpaste/default.nix
index 9180573541d..852175c4f21 100644
--- a/pkgs/tools/text/wgetpaste/default.nix
+++ b/pkgs/tools/text/wgetpaste/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, wget, bash }:
 
 stdenv.mkDerivation rec {
-  version = "2.29";
+  version = "2.30";
   pname = "wgetpaste";
 
   src = fetchurl {
     url = "http://wgetpaste.zlin.dk/${pname}-${version}.tar.bz2";
-    sha256 = "1rp0wxr3zy7y2xp3azaadfghrx7g0m138f9qg6icjxkkz4vj9r22";
+    sha256 = "14k5i6j6f34hcf9gdb9cnvfwscn0ys2dgd73ci421wj9zzqkbv73";
   };
   # currently zsh-autocompletion support is not installed
 
diff --git a/pkgs/tools/text/xml/html-xml-utils/default.nix b/pkgs/tools/text/xml/html-xml-utils/default.nix
index c42ecfc2441..d4bd40a1199 100644
--- a/pkgs/tools/text/xml/html-xml-utils/default.nix
+++ b/pkgs/tools/text/xml/html-xml-utils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "html-xml-utils";
-  version = "7.8";
+  version = "7.9";
 
   src = fetchurl {
     url = "https://www.w3.org/Tools/HTML-XML-utils/${pname}-${version}.tar.gz";
-    sha256 = "0p8df3c6mw879vdi8l63kbdqylkf1is10b067mh9kipgfy91rd4s";
+    sha256 = "0gs3xvdbzhk5k12i95p5d4fgkkaldnlv45sch7pnncb0lrpcjsnq";
   };
 
   buildInputs = [curl libiconv];
diff --git a/pkgs/tools/text/xsv/default.nix b/pkgs/tools/text/xsv/default.nix
index 927d0d14be6..b17dba7a127 100644
--- a/pkgs/tools/text/xsv/default.nix
+++ b/pkgs/tools/text/xsv/default.nix
@@ -20,6 +20,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/BurntSushi/xsv";
     license = with licenses; [ unlicense /* or */ mit ];
     maintainers = [ maintainers.jgertm ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/typesetting/asciidoctorj/default.nix b/pkgs/tools/typesetting/asciidoctorj/default.nix
index 0d2e8004f55..c518ddeaf39 100644
--- a/pkgs/tools/typesetting/asciidoctorj/default.nix
+++ b/pkgs/tools/typesetting/asciidoctorj/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "asciidoctorj";
-  version = "2.3.1";
+  version = "2.4.0";
 
   src = fetchzip {
     url = "http://dl.bintray.com/asciidoctor/maven/org/asciidoctor/${pname}/${version}/${pname}-${version}-bin.zip";
-    sha256 = "0gp45vwm0hl8590014qrxlpw2rycxm7ir819d242mh38v3hdjgkz";
+    sha256 = "1bp26x5mhbl25s9djlq6yani1vaqrgbi5mjljhwhj97iapwsd0yb";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/typesetting/lowdown/default.nix b/pkgs/tools/typesetting/lowdown/default.nix
new file mode 100644
index 00000000000..017066a2c22
--- /dev/null
+++ b/pkgs/tools/typesetting/lowdown/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, which }:
+
+stdenv.mkDerivation rec {
+  pname = "lowdown";
+  version = "0.7.4";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchurl {
+    url = "https://kristaps.bsd.lv/lowdown/snapshots/lowdown-${version}.tar.gz";
+    sha512 = "2iw5x3lf5knnscp0ifgk50yj48p54cbd34h94qrxa9vdybg2nnipklrqmmqblf6l7qph98h7jvlyr99m5qlrki9lvjr1jcgbgp31pn0";
+  };
+
+  nativeBuildInputs = [ which ];
+
+  configurePhase = ''
+    ./configure PREFIX=''${!outputDev} \
+                BINDIR=''${!outputBin}/bin \
+                MANDIR=''${!outputBin}/share/man
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://kristaps.bsd.lv/lowdown/";
+    description = "Simple markdown translator";
+    license = licenses.isc;
+    maintainers = [ maintainers.sternenseemann ];
+    platforms = platforms.unix;
+  };
+}
+
diff --git a/pkgs/tools/typesetting/pdf2djvu/default.nix b/pkgs/tools/typesetting/pdf2djvu/default.nix
index cbd4fa569d1..c3ddb219ab8 100644
--- a/pkgs/tools/typesetting/pdf2djvu/default.nix
+++ b/pkgs/tools/typesetting/pdf2djvu/default.nix
@@ -15,14 +15,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.17";
+  version = "0.9.17.1";
   pname = "pdf2djvu";
 
   src = fetchFromGitHub {
     owner = "jwilk";
     repo = "pdf2djvu";
     rev = version;
-    sha256 = "1iff5ha5ls9hni9ivj05r1vzbnjrb326ivjb8d05q2sfng3gfp3z";
+    sha256 = "1igabfy3fd7qndihmkfk9incc15pjxpxh2cn5pfw5fxfwrpjrarn";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/tools/typesetting/satysfi/default.nix b/pkgs/tools/typesetting/satysfi/default.nix
index 7a4b8010f04..b97652bb4a6 100644
--- a/pkgs/tools/typesetting/satysfi/default.nix
+++ b/pkgs/tools/typesetting/satysfi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip, fetchFromGitHub, ruby, dune, ocamlPackages
+{ stdenv, fetchzip, fetchFromGitHub, ruby, dune_2, ocamlPackages
 , ipaexfont, junicode, lmodern, lmmath
 }:
 let
@@ -6,8 +6,8 @@ let
     src = fetchFromGitHub {
       owner = "gfngfn";
       repo = "camlpdf";
-      rev = "v2.2.2+satysfi";
-      sha256 = "1dkyibjd8qb9fzljlzdsfdhb798vc9m8xqkd7295fm6bcfpr5r5k";
+      rev = "v2.3.1+satysfi";
+      sha256 = "1s8wcqdkl1alvfcj67lhn3qdz8ikvd1v64f4q6bi4c0qj9lmp30k";
     };
   });
   otfm = ocamlPackages.otfm.overrideAttrs (o: {
@@ -18,23 +18,29 @@ let
       sha256 = "0y8s0ij1vp1s4h5y1hn3ns76fzki2ba5ysqdib33akdav9krbj8p";
     };
   });
-  yojson = ocamlPackages.yojson.overrideAttrs (o: {
+  yojson-with-position = ocamlPackages.buildDunePackage {
+    pname = "yojson-with-position";
+    version = "1.4.2";
     src = fetchFromGitHub {
       owner = "gfngfn";
-      repo = "yojson";
-      rev = "v1.4.1+satysfi";
-      sha256 = "06lajzycwmvc6s26cf40s9xn001cjxrpxijgfha3s4f4rpybb1mp";
+      repo = "yojson-with-position";
+      rev = "v1.4.2+satysfi";
+      sha256 = "17s5xrnpim54d1apy972b5l08bph4c0m5kzbndk600fl0vnlirnl";
     };
-  });
+    useDune2 = true;
+    nativeBuildInputs = [ ocamlPackages.cppo ];
+    propagatedBuildInputs = [ ocamlPackages.biniou ];
+    inherit (ocamlPackages.yojson) meta;
+  };
 in
   stdenv.mkDerivation rec {
     pname = "satysfi";
-    version = "0.0.4";
+    version = "0.0.5";
     src = fetchFromGitHub {
       owner = "gfngfn";
       repo = "SATySFi";
       rev = "v${version}";
-      sha256 = "0ilvgixglklqwavf8p9mcbrjq6cjfm9pk4kqx163c0irh0lh0adv";
+      sha256 = "1y72by6d15bc6qb1lv1ch6cm1i74gyr0w127nnvs2s657snm0y1n";
       fetchSubmodules = true;
     };
 
@@ -44,11 +50,11 @@ in
       $out/share/satysfi
     '';
 
-    nativeBuildInputs = [ ruby dune ];
+    nativeBuildInputs = [ ruby dune_2 ];
 
-    buildInputs = [ camlpdf otfm ] ++ (with ocamlPackages; [
+    buildInputs = [ camlpdf otfm yojson-with-position ] ++ (with ocamlPackages; [
       ocaml findlib menhir
-      batteries camlimages core_kernel ppx_deriving uutf yojson omd cppo re
+      batteries camlimages core_kernel ppx_deriving uutf omd cppo re
     ]);
 
     installPhase = ''
diff --git a/pkgs/tools/typesetting/sile/default.nix b/pkgs/tools/typesetting/sile/default.nix
index a8969fd4598..d61e97857c5 100644
--- a/pkgs/tools/typesetting/sile/default.nix
+++ b/pkgs/tools/typesetting/sile/default.nix
@@ -1,37 +1,79 @@
-{ stdenv, darwin, fetchurl, makeWrapper, pkgconfig, autoconf, automake
-, harfbuzz, icu
-, fontconfig, lua, libiconv
-, makeFontsConf, gentium
+{ stdenv
+, darwin
+, fetchurl
+, makeWrapper
+, pkg-config
+, autoconf
+, automake
+, poppler_utils
+, harfbuzz
+, icu
+, fontconfig
+, lua
+, libiconv
+, makeFontsConf
+, gentium
 }:
 
-with stdenv.lib;
-
 let
-  luaEnv = lua.withPackages(ps: with ps;[cassowary cosmo compat53 linenoise lpeg lua-zlib lua_cliargs luaepnf luaexpat luafilesystem luarepl luasec luasocket stdlib vstruct]);
-
+  luaEnv = lua.withPackages(ps: with ps; [
+    cassowary
+    cosmo
+    compat53
+    linenoise
+    lpeg
+    lua-zlib
+    lua_cliargs
+    luaepnf
+    luaexpat
+    luafilesystem
+    luarepl
+    luasec
+    luasocket
+    penlight
+    stdlib
+    vstruct
+  ]);
 in
 
 stdenv.mkDerivation rec {
   pname = "sile";
-  version = "0.10.4";
+  version = "0.10.10";
 
   src = fetchurl {
-    url = "https://github.com/sile-typesetter/sile/releases/download/v${version}/${pname}-${version}.tar.bz2";
-    sha256 = "08j2vv6spnzz8bsh62wbdv1pjiziiba71cadscsy5hw6pklzndni";
+    url = "https://github.com/sile-typesetter/sile/releases/download/v${version}/${pname}-${version}.tar.xz";
+    sha256 = "0m7yyvw8ypz89rfx8nm70mf87l357w5qac73pmfgl84f24cbxh7g";
   };
 
-  configureFlags = [ "--with-system-luarocks" ];
-
-  nativeBuildInputs = [ autoconf automake pkgconfig makeWrapper ];
-  buildInputs = [ harfbuzz icu fontconfig libiconv luaEnv ]
-  ++ optional stdenv.isDarwin darwin.apple_sdk.frameworks.AppKit
+  configureFlags = [
+    "--with-system-luarocks"
+    "--with-manual"
+  ];
+
+  nativeBuildInputs = [
+    autoconf
+    automake
+    pkg-config
+    makeWrapper
+  ];
+  buildInputs = [
+    harfbuzz
+    icu
+    fontconfig
+    libiconv
+    luaEnv
+  ]
+  ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.AppKit
   ;
+  checkInputs = [
+    poppler_utils
+  ];
 
-  preConfigure = optionalString stdenv.isDarwin ''
+  preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
     sed -i -e 's|@import AppKit;|#import <AppKit/AppKit.h>|' src/macfonts.m
   '';
 
-  NIX_LDFLAGS = optionalString stdenv.isDarwin "-framework AppKit";
+  NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-framework AppKit";
 
   FONTCONFIG_FILE = makeFontsConf {
     fontDirectories = [
@@ -39,11 +81,7 @@ stdenv.mkDerivation rec {
     ];
   };
 
-  # TODO: needs to tweak Makefile-fonts to avoid download fonts
-  doCheck = false; /*stdenv.targetPlatform == stdenv.hostPlatform
-  && ! stdenv.isAarch64 # random seg. faults
-  && ! stdenv.isDarwin; # dy lib not found
- */
+  doCheck = true;
 
   enableParallelBuilding = true;
 
@@ -52,18 +90,12 @@ stdenv.mkDerivation rec {
       --replace "ASSERT(ht && ht->table && iter);" "ASSERT(ht && iter);"
   '';
 
-  checkTarget = "examples";
-
-  postInstall = ''
-    install -D -t $out/share/doc/sile documentation/sile.pdf
-  '';
-
   # Hack to avoid TMPDIR in RPATHs.
   preFixup = ''rm -rf "$(pwd)" && mkdir "$(pwd)" '';
 
-  outputs = [ "out" "doc" ];
+  outputs = [ "out" "doc" "man" "dev" ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A typesetting system";
     longDescription = ''
       SILE is a typesetting system; its job is to produce beautiful
@@ -77,6 +109,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://sile-typesetter.org/";
     platforms = platforms.unix;
+    maintainers = with maintainers; [ doronbehar alerque ];
     license = licenses.mit;
   };
 }
diff --git a/pkgs/tools/typesetting/tectonic/default.nix b/pkgs/tools/typesetting/tectonic/default.nix
index f5ac36690fd..3b9c0581eca 100644
--- a/pkgs/tools/typesetting/tectonic/default.nix
+++ b/pkgs/tools/typesetting/tectonic/default.nix
@@ -27,6 +27,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://tectonic-typesetting.github.io/";
     license = with licenses; [ mit ];
     maintainers = [ maintainers.lluchs ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/typesetting/tex/dblatex/default.nix b/pkgs/tools/typesetting/tex/dblatex/default.nix
index 1f6939e1b11..5fde58251e0 100644
--- a/pkgs/tools/typesetting/tex/dblatex/default.nix
+++ b/pkgs/tools/typesetting/tex/dblatex/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, python2, libxslt, texlive
-, enableAllFeatures ? false, imagemagick ? null, transfig ? null, inkscape ? null, fontconfig ? null, ghostscript ? null
+, enableAllFeatures ? false, imagemagick ? null, transfig ? null, inkscape_0 ? null, fontconfig ? null, ghostscript ? null
 
 , tex ? texlive.combine { # satisfy all packages that ./configure mentions
     inherit (texlive) scheme-basic epstopdf anysize appendix changebar
@@ -16,7 +16,7 @@
 assert enableAllFeatures ->
   imagemagick != null &&
   transfig != null &&
-  inkscape != null &&
+  inkscape_0 != null &&
   fontconfig != null &&
   ghostscript != null;
 
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
             -e 's|Popen("pdflatex|Popen("${tex}/bin/pdflatex|g' \
             -e 's|"fc-match"|"${fontconfig.bin}/bin/fc-match"|g' \
             -e 's|"fc-list"|"${fontconfig.bin}/bin/fc-list"|g' \
-            -e 's|cmd = "inkscape|cmd = "${inkscape}/bin/inkscape|g' \
+            -e 's|cmd = "inkscape|cmd = "${inkscape_0}/bin/inkscape|g' \
             -e 's|cmd = "fig2dev|cmd = "${transfig}/bin/fig2dev|g' \
             -e 's|cmd = \["ps2pdf|cmd = ["${ghostscript}/bin/ps2pdf|g' \
             -e 's|cmd = "convert|cmd = "${imagemagick.out}/bin/convert|g' \
diff --git a/pkgs/tools/typesetting/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix
index 29c07408e7e..a2651c63e1d 100644
--- a/pkgs/tools/typesetting/tex/texlive/default.nix
+++ b/pkgs/tools/typesetting/tex/texlive/default.nix
@@ -99,8 +99,11 @@ let
       urls = args.urls or (if args ? url then [ args.url ] else
         lib.concatMap
           (up: [
-            "${up}/${urlName}.r${toString revision}.tar.xz"
-            "${up}/${urlName}.tar.xz" # TODO To be removed for telive 2020
+            # Only ~11% of packages in texlive 2019 have revisions, so
+            # the number of requests is nearly doubled if we lookup
+            # the name with revision
+            # "${up}/${urlName}.r${toString revision}.tar.xz"
+            "${up}/${urlName}.tar.xz" # TODO To be removed for texlive 2020?
           ])
           urlPrefixes);
 
diff --git a/pkgs/tools/typesetting/tikzit/default.nix b/pkgs/tools/typesetting/tikzit/default.nix
index 31baa431bfc..76b9b285d15 100644
--- a/pkgs/tools/typesetting/tikzit/default.nix
+++ b/pkgs/tools/typesetting/tikzit/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation {
   pname = "tikzit";
-  version = "2.1.5";
+  version = "2.1.6";
 
   src = fetchFromGitHub {
     owner = "tikzit";
     repo = "tikzit";
-    rev = "v2.1.5";
-    sha256 = "1xrx7r8b6nb912k91pkdwaz2gijfq6lzssyqxard0591h2mycbcg";
+    rev = "v2.1.6";
+    sha256 = "0ba99pgv54pj1xvhrwn9db2w0v4h07vsjajcnhpa2smy88ypg32h";
   };
 
   nativeBuildInputs = [ qmake qttools flex bison ];
diff --git a/pkgs/tools/video/rav1e/default.nix b/pkgs/tools/video/rav1e/default.nix
index b8e43fe4f10..f883c423d01 100644
--- a/pkgs/tools/video/rav1e/default.nix
+++ b/pkgs/tools/video/rav1e/default.nix
@@ -1,4 +1,4 @@
-{ rustPlatform, fetchFromGitHub, lib, nasm }:
+{ rustPlatform, fetchFromGitHub, lib, nasm, cargo-c }:
 
 rustPlatform.buildRustPackage rec {
   pname = "rav1e";
@@ -13,7 +13,15 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "1xaincrmpicp0skf9788w5631x1hxvifvq06hh5ribdz79zclzx3";
 
-  nativeBuildInputs = [ nasm ];
+  nativeBuildInputs = [ nasm cargo-c ];
+
+  postBuild = ''
+    cargo cbuild --release --frozen --prefix=${placeholder "out"}
+  '';
+
+  postInstall = ''
+    cargo cinstall --release --frozen --prefix=${placeholder "out"}
+  '';
 
   meta = with lib; {
     description = "The fastest and safest AV1 encoder";
@@ -27,6 +35,5 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/xiph/rav1e/releases/tag/v${version}";
     license = licenses.bsd2;
     maintainers = [ maintainers.primeos ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/video/untrunc-anthwlock/default.nix b/pkgs/tools/video/untrunc-anthwlock/default.nix
new file mode 100644
index 00000000000..12695285093
--- /dev/null
+++ b/pkgs/tools/video/untrunc-anthwlock/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, ffmpeg, libui }:
+
+stdenv.mkDerivation {
+  pname = "untrunc-anthwlock";
+  version = "2020.07.18";
+
+  src = fetchFromGitHub {
+    owner = "anthwlock";
+    repo = "untrunc";
+    rev = "a0bf2e8642ecdb7af5897ed9b0dd30a7d03520ae";
+    sha256 = "14i2lq68q990hnm2kkfamlsi67bcml85zl8yjsyxc5h8ncc2f3dp";
+  };
+
+  
+  buildInputs = [ ffmpeg libui ];
+
+  postBuild = ''
+    make untrunc-gui
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -D -t $out/bin untrunc untrunc-gui
+    runHook postInstall
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Restore a truncated mp4/mov (improved version of ponchio/untrunc)";
+    homepage = "https://github.com/anthwlock/untrunc";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/tools/video/vcsi/default.nix b/pkgs/tools/video/vcsi/default.nix
new file mode 100644
index 00000000000..84e6c2e6d41
--- /dev/null
+++ b/pkgs/tools/video/vcsi/default.nix
@@ -0,0 +1,28 @@
+{ lib, python3Packages, ffmpeg }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "vcsi";
+  version = "7.0.12";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "0dks0yr2a0cpr32vrwhdrhsb4qyj7rz1yv44fjbr8z8j8p84yjx5";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    numpy
+    pillow
+    jinja2
+    texttable
+    parsedatetime
+  ];
+
+  makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ ffmpeg ]}" ];
+
+  meta = with lib; {
+    description = "Create video contact sheets";
+    homepage = "https://github.com/amietn/vcsi";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dandellion ];
+  };
+}
diff --git a/pkgs/tools/virtualization/alpine-make-vm-image/default.nix b/pkgs/tools/virtualization/alpine-make-vm-image/default.nix
new file mode 100644
index 00000000000..08d37a1d53b
--- /dev/null
+++ b/pkgs/tools/virtualization/alpine-make-vm-image/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper
+, apk-tools, coreutils, e2fsprogs, findutils, gnugrep, gnused, kmod, qemu-utils
+, utillinux
+}:
+
+stdenv.mkDerivation rec {
+  pname = "alpine-make-vm-image";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "alpinelinux";
+    repo = "alpine-make-vm-image";
+    rev = "v${version}";
+    sha256 = "0955kd2ddqfynjwk2xfzys96l7abxp30hhrs2968hl78rhmkvpnq";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  dontBuild = true;
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  postInstall = ''
+    wrapProgram $out/bin/alpine-make-vm-image --set PATH ${lib.makeBinPath [
+      apk-tools coreutils e2fsprogs findutils gnugrep gnused kmod qemu-utils
+      utillinux
+    ]}
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/alpinelinux/alpine-make-vm-image";
+    description = "Make customized Alpine Linux disk image for virtual machines";
+    maintainers = with maintainers; [ qyliss ];
+    license = licenses.mit;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/virtualization/cri-tools/default.nix b/pkgs/tools/virtualization/cri-tools/default.nix
index ef622f055ee..cdb156f3121 100644
--- a/pkgs/tools/virtualization/cri-tools/default.nix
+++ b/pkgs/tools/virtualization/cri-tools/default.nix
@@ -6,17 +6,19 @@
 
 buildGoModule rec {
   pname = "cri-tools";
-  version = "1.18.0";
+  version = "1.19.0";
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "06sxjhjpd893fn945c1s4adri2bf7s50ddvcw5pnwb6qndzfljw6";
+    sha256 = "0dx21ws4nzzizzjb0g172fzvjgwck88ikr5c2av08ii06rys1567";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   nativeBuildInputs = [ installShellFiles ];
 
   buildPhase = ''
diff --git a/pkgs/tools/virtualization/govc/default.nix b/pkgs/tools/virtualization/govc/default.nix
index 433da1b07f2..30cf09d2942 100644
--- a/pkgs/tools/virtualization/govc/default.nix
+++ b/pkgs/tools/virtualization/govc/default.nix
@@ -1,8 +1,8 @@
 { lib, fetchFromGitHub, buildGoPackage }:
-  
+
 buildGoPackage rec {
   pname = "govc";
-  version = "0.23.0";
+  version = "0.23.1";
 
   goPackagePath = "github.com/vmware/govmomi";
 
@@ -12,7 +12,7 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "vmware";
     repo = "govmomi";
-    sha256 = "05nb5xd90kbazdx4l9bw72729dh5hrcaqdi9wpf5ma7bz7mw9wzi";
+    sha256 = "05f6i7v8v9g3w3cmz8c952djl652mj6qcwjx9iyl23h6knd1d9b1";
   };
 
   meta = {
diff --git a/pkgs/tools/virtualization/marathonctl/default.nix b/pkgs/tools/virtualization/marathonctl/default.nix
index c557361f122..20b461fa346 100644
--- a/pkgs/tools/virtualization/marathonctl/default.nix
+++ b/pkgs/tools/virtualization/marathonctl/default.nix
@@ -18,7 +18,6 @@ buildGoPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/shoenig/marathonctl";
     description = "CLI tool for Marathon";
-    platforms = platforms.all;
     license = licenses.mit;
     maintainers = with maintainers; [ manveru ];
   };
diff --git a/pkgs/tools/wayland/wayland-utils/default.nix b/pkgs/tools/wayland/wayland-utils/default.nix
new file mode 100644
index 00000000000..23629309e52
--- /dev/null
+++ b/pkgs/tools/wayland/wayland-utils/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl
+, meson, pkg-config, ninja
+, wayland, wayland-protocols
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wayland-utils";
+  version = "1.0.0";
+
+  src = fetchurl {
+    url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz";
+    sha256 = "1h38l850ww6hxjb1l8iwa33nkbz8q88bw6lh0aryjyp8b16crzk4";
+  };
+
+  nativeBuildInputs = [ meson pkg-config ninja wayland ];
+  buildInputs = [ wayland wayland-protocols ];
+
+  meta = with stdenv.lib; {
+    description = "Wayland utilities (wayland-info)";
+    longDescription = ''
+      A collection of Wayland related utilities:
+      - wayland-info: A utility for displaying information about the Wayland
+        protocols supported by a Wayland compositor.
+    '';
+    homepage = "https://gitlab.freedesktop.org/wayland/wayland-utils";
+    license = licenses.mit; # Expat version
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/pkgs/top-level/agda-packages.nix b/pkgs/top-level/agda-packages.nix
index 5b5b2d19181..3209aff9496 100644
--- a/pkgs/top-level/agda-packages.nix
+++ b/pkgs/top-level/agda-packages.nix
@@ -24,5 +24,7 @@ let
     agda-categories = callPackage ../development/libraries/agda/agda-categories { };
 
     cubical = callPackage ../development/libraries/agda/cubical { };
+
+    generic = callPackage ../development/libraries/agda/generic { };
   };
 in mkAgdaPackages Agda
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index a68232fef04..b96bcd40c79 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -42,6 +42,7 @@ mapAliases ({
   aircrackng = aircrack-ng; # added 2016-01-14
   alienfx = throw "alienfx has been removed."; # added 2019-12-08
   ammonite-repl = ammonite; # added 2017-05-02
+  antimicro = throw "antimicro has been removed as it was broken, see antimicroX instead."; # added 2020-08-06
   arduino_core = arduino-core;  # added 2015-02-04
   asciidocFull = asciidoc-full;  # added 2014-06-22
   at_spi2_atk = at-spi2-atk; # added 2018-02-25
@@ -66,10 +67,12 @@ mapAliases ({
   buildGo112Module = throw "buildGo112Module has been removed"; # added 2020-04-26
   bundler_HEAD = bundler; # added 2015-11-15
   cantarell_fonts = cantarell-fonts; # added 2018-03-03
+  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
   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
   cide = throw "deprecated in 2019-09-11: abandoned by upstream";
   cinepaint = throw "cinepaint has been removed from nixpkgs, as it was unmaintained"; # added 2019-12-10
   cifs_utils = cifs-utils; # added 2016-08
@@ -77,7 +80,6 @@ mapAliases ({
   clangAnalyzer = clang-analyzer;  # added 2015-02-20
   clawsMail = claws-mail; # added 2016-04-29
   clutter_gtk = clutter-gtk; # added 2018-02-25
-  conkerorWrapper = conkeror; # added 2015-01
   compton = picom; # added 2019-12-02
   compton-git = compton; # added 2019-05-20
   conntrack_tools = conntrack-tools; # added 2018-05
@@ -85,6 +87,7 @@ mapAliases ({
   coprthr = throw "coprthr has been removed."; # added 2019-12-08
   corebird = throw "deprecated 2019-10-02: See https://www.patreon.com/posts/corebirds-future-18921328. Please use Cawbird as replacement.";
   coredumper = throw "coredumper has been removed: Abandoned by upstream."; # added 2019-11-16
+  cryptol = throw "cryptol was remove for prolonged broken build"; # added 2020-08-21
   cpp-gsl = microsoft_gsl; # added 2019-05-24
   cupsBjnp = cups-bjnp; # added 2016-01-02
   cups_filters = cups-filters; # added 2016-08
@@ -101,6 +104,7 @@ mapAliases ({
   deadbeef-mpris2-plugin = deadbeefPlugins.mpris2; # added 2018-02-23
   deadpixi-sam = deadpixi-sam-unstable;
   debian_devscripts = debian-devscripts; # added 2016-03-23
+  deepin = throw "deepin was a work in progress and it has been canceled and removed https://github.com/NixOS/nixpkgs/issues/94870"; # added 2020-08-31
   desktop_file_utils = desktop-file-utils; # added 2018-02-25
   devicemapper = lvm2; # added 2018-04-25
   digikam5 = digikam; # added 2017-02-18
@@ -110,8 +114,8 @@ mapAliases ({
   docbook_xml_xslt = docbook_xsl; # added 2018-04-25
   double_conversion = double-conversion; # 2017-11-22
   docker_compose = docker-compose; # 2018-11-10
+  draftsight = throw "draftsight has been removed, no longer available as freeware"; # added 2020-08-14
   dwarf_fortress = dwarf-fortress; # added 2016-01-23
-  emacsMelpa = emacs25Packages; # for backward compatibility
   emacsPackagesGen = emacsPackagesFor; # added 2018-08-18
   emacsPackagesNgGen = emacsPackagesFor; # added 2018-08-18
   emacsPackagesNgFor = emacsPackagesFor; # added 2019-08-07
@@ -128,17 +132,6 @@ mapAliases ({
   firefox-esr-wrapper = firefox-esr;  # 2016-01
   firefox-wrapper = firefox;          # 2016-01
   firefoxWrapper = firefox;           # 2015-09
-  firefox-esr-52           = firefoxPackages.firefox-esr-52; # 2020-02, remove after 20.03 branchoff
-  firefox-esr-52-unwrapped = firefoxPackages.firefox-esr-52; # 2020-02, remove after 20.03 branchoff
-  firefox-esr-60           = firefoxPackages.firefox-esr-60; # 2020-02, remove after 20.03 branchoff
-  firefox-esr-60-unwrapped = firefoxPackages.firefox-esr-60; # 2020-02, remove after 20.03 branchoff
-  icecat                   = firefoxPackages.icecat;         # 2020-02, remove after 20.03 branchoff
-  icecat-unwrapped         = firefoxPackages.icecat;         # 2020-02, remove after 20.03 branchoff
-  conkeror-unwrapped       = conkeror; # 2020-02, remove after 20.03 branchoff
-  conkeror                 = throw ''
-    Conkeror doesn't work with any secure firefox release.
-    Please move to some of the alternatives at http://conkeror.org/Alternatives
-  ''; # 2020-02, remove after 20.03 branchoff
 
   firestr = throw "firestr has been removed."; # added 2019-12-08
   flameGraph = flamegraph; # added 2018-04-25
@@ -149,6 +142,15 @@ mapAliases ({
     fontconfig-ultimate has been removed. The repository has been archived upstream and activity has ceased for several years.
     https://github.com/bohoomil/fontconfig-ultimate/issues/171.
   '';
+  fontconfig-penultimate = throw ''
+    fontconfig-penultimate has been removed.
+    It was a fork of the abandoned fontconfig-ultimate.
+  '';
+  # 2020-07-21
+  fontconfig_210 = throw ''
+    fontconfig 2.10.x hasn't had a release in years, is vulnerable to CVE-2016-5384
+    and has only been used for old fontconfig caches.
+  '';
   font-droid = throw "font-droid has been deprecated by noto-fonts"; # 2019-04-12
   foomatic_filters = foomatic-filters;  # 2016-08
   fuse_exfat = exfat;                   # 2015-09-11
@@ -176,6 +178,7 @@ mapAliases ({
   gnuradio-rds = gr-rds; # added 2019-05-27
   gnuradio-osmosdr = gr-osmosdr; # added 2019-05-27
   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
   go_1_12 = throw "go_1_12 has been removed"; # added 2020-04-26
   go-pup = pup; # added 2017-12-19
   gobjectIntrospection = gobject-introspection; # added 2018-12-02
@@ -185,11 +188,6 @@ mapAliases ({
   googleAuthenticator = google-authenticator; # added 2016-10-16
   grantlee5 = libsForQt5.grantlee;  # added 2015-12-19
   gsettings_desktop_schemas = gsettings-desktop-schemas; # added 2018-02-25
-  gst_plugins_bad = gst-plugins-bad;  # added 2017-02
-  gst_plugins_base = gst-plugins-base;  # added 2017-02
-  gst_plugins_good = gst-plugins-good;  # added 2017-02
-  gst_plugins_ugly = gst-plugins-ugly;  # added 2017-02
-  gst_python = gst-python;  # added 2017-02
   gtk_doc = gtk-doc; # added 2018-02-25
   guileCairo = guile-cairo; # added 2017-09-24
   guileGnome = guile-gnome; # added 2017-09-24
@@ -216,6 +214,7 @@ mapAliases ({
   jikes = throw "deprecated in 2019-10-07: jikes was 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
   kdiff3-qt5 = kdiff3; # added 2017-02-18
   keepass-keefox = keepass-keepassrpc; # backwards compatibility alias, added 2018-02
   keepassx-community = keepassxc; # added 2017-11
@@ -264,6 +263,7 @@ mapAliases ({
   libudev = udev; # added 2018-04-25
   libusb = libusb1; # added 2020-04-28
   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
   links = links2; # added 2016-01-31
   linux_rpi0 = linux_rpi1;
@@ -284,8 +284,10 @@ mapAliases ({
   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
   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
   matrique = spectral; # added 2020-01-27
   mbedtls_1_3 = throw "mbedtls_1_3 is end of life, see https://tls.mbed.org/kb/how-to/upgrade-2.0"; # added 2019-12-08
   mess = mame; # added 2019-10-30
@@ -300,7 +302,9 @@ mapAliases ({
   # floating point textures patents are expired,
   # so package reduced to alias
   mesa_drivers = mesa.drivers;
+  mesos = throw "mesos has been removed from nixpkgs, as it's unmaintained"; # added 2020-08-15
   midoriWrapper = midori; # added 2015-01
+  mist = throw "mist has been removed as the upstream project has been abandoned, see https://github.com/ethereum/mist#mist-browser-deprecated"; # added 2020-08-15
   mlt-qt5 = libsForQt5.mlt;  # added 2015-12-19
   mobile_broadband_provider_info = mobile-broadband-provider-info; # added 2018-02-25
   moby = throw "moby has been removed, merged into linuxkit in 2018.  Use linuxkit instead.";
@@ -319,6 +323,7 @@ mapAliases ({
   nagiosPluginsOfficial = monitoring-plugins;
   ncat = nmap;  # added 2016-01-26
   netcat-openbsd = libressl.nc; # added 2018-04-25
+  netease-cloud-music = throw "netease-cloud-music has been removed together with deepin"; # added 2020-08-31
   networkmanager_fortisslvpn = networkmanager-fortisslvpn; # added 2018-02-25
   networkmanager_iodine = networkmanager-iodine; # added 2018-02-25
   networkmanager_l2tp = networkmanager-l2tp; # added 2018-02-25
@@ -345,6 +350,7 @@ mapAliases ({
   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
+  parity = openethereum; # added 2020-08-01
   parquet-cpp = arrow-cpp; # added 2018-09-08
   pass-otp = pass.withExtensions (ext: [ext.pass-otp]); # added 2018-05-04
   perlXMLParser = perlPackages.XMLParser; # added 2018-10-12
@@ -357,7 +363,6 @@ mapAliases ({
     with the following snippet:
     php74.override { embedSupport = true; apxs2Support = false; }
   ''; # added 2020-04-01
-  php72-embed = php-embed; # added 2020-04-01
   php73-embed = php-embed; # added 2020-04-01
   php74-embed = php-embed; # added 2020-04-01
 
@@ -368,7 +373,6 @@ mapAliases ({
   ''; # added 2020-04-01
   php74Packages-embed = phpPackages-embed;
   php73Packages-embed = phpPackages-embed;
-  php72Packages-embed = phpPackages-embed;
 
   php-unit = throw ''
     php*-unit has been dropped, you can build something similar with
@@ -382,7 +386,6 @@ mapAliases ({
       fpmSupport = false;
     }
   ''; # added 2020-04-01
-  php72-unit = php-unit; # added 2020-04-01
   php73-unit = php-unit; # added 2020-04-01
   php74-unit = php-unit; # added 2020-04-01
 
@@ -400,7 +403,6 @@ mapAliases ({
   ''; # added 2020-04-01
   php74Packages-unit = phpPackages-unit;
   php73Packages-unit = phpPackages-unit;
-  php72Packages-unit = phpPackages-unit;
 
   pidgin-with-plugins = pidgin; # added 2016-06
   pidginlatex = pidgin-latex; # added 2018-01-08
@@ -452,6 +454,7 @@ mapAliases ({
   phonon = throw "Please use libsForQt5.phonon, as Qt4 support in this package has been removed."; # added 2019-11-22
   qca-qt5 = libsForQt5.qca-qt5;  # added 2015-12-19
   quake3game = ioquake3; # added 2016-01-14
+  qvim = throw "qvim has been removed."; # added 2020-08-31
   qwt6 = libsForQt5.qwt;  # added 2015-12-19
   qtpfsgui = throw "Is now luminanceHDR"; # added 2019-06-26
   quaternion-git = throw "quaternion-git has been removed in favor of the stable version 'quaternion'"; # added 2020-04-09
@@ -461,10 +464,13 @@ mapAliases ({
   rhc = throw "deprecated in 2019-04-09: abandoned by upstream.";
   rng_tools = rng-tools; # added 2018-10-24
   robomongo = robo3t; #added 2017-09-28
+  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
   recordmydesktop = throw "recordmydesktop has been removed from nixpkgs, as it's unmaintained and uses deprecated libraries"; # added 2019-12-10
   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
+  rfkill = throw "rfkill has been removed, as it's included in util-linux"; # added 2020-08-23
   rkt = throw "rkt was archived by upstream"; # added 2020-05-16
   ruby_2_0_0 = throw "deprecated 2018-0213: use a newer version of ruby";
   ruby_2_1_0 = throw "deprecated 2018-0213: use a newer version of ruby";
@@ -555,7 +561,10 @@ mapAliases ({
   suil-qt5 = suil; # added 2018-05-01
   surf-webkit2 = surf; # added 2017-04-02
   sup = throw "deprecated in 2019-09-10: abandoned by upstream";
+  swfdec = throw "swfdec has been removed as broken and unmaintained."; # added 2020-08-23
   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 "obsolete, enabled by default via the lvm module"; # added 2020-07-12
   systool = sysfsutils; # added 2018-04-25
   tahoelafs = tahoe-lafs; # added 2018-03-26
   tangogps = foxtrotgps; # added 2020-01-26
@@ -667,24 +676,19 @@ mapAliases ({
     ocamlPackages_4_03
     ocamlPackages_latest;
 
-  gst_all = { # added 2018-04-25
-    inherit (pkgs) gstreamer gnonlin gst-python;
-    gstPluginsBase = pkgs.gst-plugins-base;
-    gstPluginsBad = pkgs.gst-plugins-bad;
-    gstPluginsGood = pkgs.gst-plugins-good;
-    gstPluginsUgly = pkgs.gst-plugins-ugly;
-    gst-plugins-base = pkgs.gst-plugins-base;
-    gst-plugins-bad = pkgs.gst-plugins-bad;
-    gst-plugins-good = pkgs.gst-plugins-good;
-    gst-plugins-ugly = pkgs.gst-plugins-ugly;
-  };
-
   # added 2019-08-01
   mumble_git = pkgs.mumble;
   murmur_git = pkgs.murmur;
 
+  # added 2020-08-17
+  zabbix44 = throw "Zabbix 4.4 is end of life, see https://www.zabbix.com/documentation/current/manual/installation/upgrade_notes_500 for details on upgrading to Zabbix 5.0.";
+
   # added 2019-09-06
   zeroc_ice = pkgs.zeroc-ice;
+
+  # added 2020-06-22
+  zeromq3 = throw "zeromq3 has been deprecated by zeromq4.";
+  jzmq = throw "jzmq has been removed from nixpkgs, as it was unmaintained";
 } // (with ocaml-ng; { # added 2016-09-14
   ocaml_4_00_1 = ocamlPackages_4_00_1.ocaml;
   ocaml_4_01_0 = ocamlPackages_4_01_0.ocaml;
@@ -703,23 +707,6 @@ mapAliases ({
   # added 2020-02-09
   dina-font-pcf = dina-font;
 
-    /* Cleanup before 20.09 */
-  llvm_4 = throw ''
-    The LLVM versions 3.5, 3.9 and 4.0 have been removed in NixOS 20.03
-    due to a lack of compatibility with glibc 2.30!
-  '';
-  llvm_39 = llvm_4;
-  llvm_35 = llvm_4;
-  lld_4 = llvm_4;
-
-  llvmPackages_4 = llvm_4;
-  llvmPackages_39 = llvm_4;
-  llvmPackages_35 = llvm_4;
-
-  clang_39 = llvm_4;
-  clang_35 = llvm_4;
-  clang_4 = llvm_4;
-
   # added 2019-04-13
   # *-polly pointed to llvmPackages_latest
   llvm-polly = throw "clang is now built with polly-plugin by default";
@@ -736,4 +723,8 @@ mapAliases ({
   sqldeveloper_18 = throw "sqldeveloper_18 is not maintained anymore!"; # added 2020-02-04
 
   gcc-snapshot = throw "Marked as broken for >2 years, additionally this 'snapshot' pointed to a fairly old one from gcc7.";
+
+  /* Cleanup before 21.03 */
+  riot-desktop = throw "riot-desktop is now element-desktop!";
+  riot-web = throw "riot-web is now element-web";
 })
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f9d3f4acbfd..e8de40a13e7 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -94,6 +94,8 @@ in
 
   genericUpdater = callPackage ../common-updater/generic-updater.nix { };
 
+  nix-update-script = callPackage ../common-updater/nix-update.nix { };
+
   ### Push NixOS tests inside the fixed point
 
   nixosTests = import ../../nixos/tests/all-tests.nix {
@@ -119,7 +121,11 @@ in
   autoPatchelfHook = makeSetupHook { name = "auto-patchelf-hook"; }
     ../build-support/setup-hooks/auto-patchelf.sh;
 
-  appimageTools = callPackage ../build-support/appimage { };
+  appimageTools = callPackage ../build-support/appimage {
+    buildFHSUserEnv = buildFHSUserEnvBubblewrap;
+  };
+
+  appindicator-sharp = callPackage ../development/libraries/appindicator-sharp { };
 
   ensureNewerSourcesHook = { year }: makeSetupHook {}
     (writeScript "ensure-newer-sources-hook.sh" ''
@@ -132,6 +138,8 @@ in
 
   addOpenGLRunpath = callPackage ../build-support/add-opengl-runpath { };
 
+  alda = callPackage ../development/interpreters/alda { };
+
   ankisyncd = callPackage ../servers/ankisyncd { };
 
   avro-tools = callPackage ../development/tools/avro-tools { };
@@ -151,7 +159,10 @@ in
 
   buildEnv = callPackage ../build-support/buildenv { }; # not actually a package
 
-  buildFHSUserEnv = callPackage ../build-support/build-fhs-userenv { };
+  # TODO: eventually migrate everything to buildFHSUserEnvBubblewrap
+  buildFHSUserEnv = buildFHSUserEnvChroot;
+  buildFHSUserEnvChroot = callPackage ../build-support/build-fhs-userenv { };
+  buildFHSUserEnvBubblewrap = callPackage ../build-support/build-fhs-userenv-bubblewrap { };
 
   buildMaven = callPackage ../build-support/build-maven.nix {};
 
@@ -173,6 +184,8 @@ in
 
   colorz = callPackage ../tools/misc/colorz { };
 
+  colorpicker = callPackage ../tools/misc/colorpicker { };
+
   comedilib = callPackage ../development/libraries/comedilib {  };
 
   cpu-x = callPackage ../applications/misc/cpu-x { };
@@ -189,6 +202,8 @@ in
 
   hobbes = callPackage ../development/tools/hobbes { };
 
+  html5validator = python36Packages.callPackage ../applications/misc/html5validator { };
+
   proto-contrib = callPackage ../development/tools/proto-contrib {};
 
   protoc-gen-doc = callPackage ../development/tools/protoc-gen-doc {};
@@ -203,6 +218,8 @@ in
 
   onesixtyone = callPackage ../tools/security/onesixtyone {};
 
+  creddump = callPackage ../tools/security/creddump {};
+
   device-tree_rpi = callPackage ../os-specific/linux/device-tree/raspberrypi.nix {};
 
   diffPlugins = (callPackage ../build-support/plugins.nix {}).diffPlugins;
@@ -267,6 +284,8 @@ in
 
   etBook = callPackage ../data/fonts/et-book { };
 
+  fet-sh = callPackage ../tools/misc/fet-sh { };
+
   fetchbower = callPackage ../build-support/fetchbower {
     inherit (nodePackages) bower2nix;
   };
@@ -335,6 +354,7 @@ in
    then buildPackages.fetchurl # No need to do special overrides twice,
    else makeOverridable (import ../build-support/fetchurl) {
     inherit lib stdenvNoCC buildPackages;
+    inherit cacert;
     curl = buildPackages.curl.override (old: rec {
       # break dependency cycles
       fetchurl = stdenv.fetchurlBoot;
@@ -501,9 +521,7 @@ in
 
   findXMLCatalogs = makeSetupHook { } ../build-support/setup-hooks/find-xml-catalogs.sh;
 
-  wrapGAppsHook = makeSetupHook {
-    deps = lib.optional (!stdenv.isDarwin) dconf.lib ++ [ gtk3 librsvg makeWrapper ];
-  } ../build-support/setup-hooks/wrap-gapps-hook.sh;
+  wrapGAppsHook = callPackage ../build-support/setup-hooks/wrap-gapps-hook { };
 
   separateDebugInfo = makeSetupHook { } ../build-support/setup-hooks/separate-debug-info.sh;
 
@@ -522,6 +540,9 @@ in
   #package writers
   writers = callPackage ../build-support/writers {};
 
+  # lib functions depending on pkgs
+  inherit (import ../pkgs-lib { inherit lib pkgs; }) formats;
+
   ### TOOLS
 
   _0x0 = callPackage ../tools/misc/0x0 { };
@@ -532,6 +553,10 @@ in
 
   _1password = callPackage ../applications/misc/1password { };
 
+  _1password-gui = callPackage ../tools/security/1password-gui {
+    electron = electron_9;
+  };
+
   _6tunnel = callPackage ../tools/networking/6tunnel { };
 
   _9pfs = callPackage ../tools/filesystems/9pfs { };
@@ -558,7 +583,10 @@ in
 
   acpica-tools = callPackage ../tools/system/acpica-tools { };
 
-  act = callPackage ../development/tools/misc/act {};
+  act = callPackage ../development/tools/misc/act {
+    # go 1.15 cannot connect to docker-for-mac https://github.com/docker/for-mac/issues/4855
+    buildGoModule = if stdenv.isDarwin then buildGo114Module else buildGoModule;
+  };
 
   actdiag = with python3.pkgs; toPythonApplication actdiag;
 
@@ -605,6 +633,8 @@ in
     stdenv = clangStdenv;
   };
 
+  honggfuzz = callPackage ../tools/security/honggfuzz { };
+
   aflplusplus = callPackage ../tools/security/aflplusplus {
     clang = clang_9;
     llvm = llvm_9;
@@ -651,6 +681,8 @@ in
 
   almanah = callPackage ../applications/misc/almanah { };
 
+  alpine-make-vm-image = callPackage ../tools/virtualization/alpine-make-vm-image { };
+
   amazon-ecs-cli = callPackage ../tools/virtualization/amazon-ecs-cli { };
 
   amazon-glacier-cmd-interface = callPackage ../tools/backup/amazon-glacier-cmd-interface { };
@@ -678,6 +710,10 @@ in
 
   apfs-fuse = callPackage ../tools/filesystems/apfs-fuse { };
 
+  apk-tools = callPackage ../tools/package-management/apk-tools {
+    lua = lua5_3;
+  };
+
   apktool = callPackage ../development/tools/apktool {
     inherit (androidenv.androidPkgs_9_0) build-tools;
   };
@@ -707,6 +743,8 @@ in
 
   arduino = arduino-core.override { withGui = true; };
 
+  arduino-cli = callPackage ../development/arduino/arduino-cli { };
+
   arduino-core = callPackage ../development/arduino/arduino-core { };
 
   arduino-mk = callPackage ../development/arduino/arduino-mk {};
@@ -738,6 +776,10 @@ in
 
   asciiquarium = callPackage ../applications/misc/asciiquarium {};
 
+  ashuffle = callPackage ../applications/audio/ashuffle {};
+
+  asls = callPackage ../development/tools/misc/asls { };
+
   asymptote = callPackage ../tools/graphics/asymptote {
     texLive = texlive.combine { inherit (texlive) scheme-small epsf cm-super texinfo; };
     gsl = gsl_1;
@@ -763,6 +805,8 @@ in
 
   awscli = callPackage ../tools/admin/awscli { };
 
+  awscli2 = callPackage ../tools/admin/awscli2 { };
+
   awsebcli = callPackage ../tools/virtualization/awsebcli {};
 
   awslogs = callPackage ../tools/admin/awslogs { };
@@ -797,6 +841,8 @@ in
 
   boxes = callPackage ../tools/text/boxes { };
 
+  chamber = callPackage ../tools/admin/chamber {  };
+
   ec2_api_tools = callPackage ../tools/virtualization/ec2-api-tools { };
 
   ec2_ami_tools = callPackage ../tools/virtualization/ec2-ami-tools { };
@@ -858,6 +904,8 @@ in
 
   boulder = callPackage ../tools/admin/boulder { };
 
+  btrfs-heatmap = callPackage ../tools/filesystems/btrfs-heatmap { };
+
   buildbot = with python3Packages; toPythonApplication buildbot;
   buildbot-ui = with python3Packages; toPythonApplication buildbot-ui;
   buildbot-full = with python3Packages; toPythonApplication buildbot-full;
@@ -867,6 +915,8 @@ in
 
   calls = callPackage ../applications/networking/calls { };
 
+  inherit (nodePackages) castnow;
+
   certigo = callPackage ../tools/admin/certigo { };
 
   catcli = python3Packages.callPackage ../tools/filesystems/catcli { };
@@ -902,6 +952,8 @@ in
 
   codespell = with python3Packages; toPythonApplication codespell;
 
+  coolreader = libsForQt5.callPackage ../applications/misc/coolreader {};
+
   cozy = callPackage ../applications/audio/cozy-audiobooks { };
 
   ctrtool = callPackage ../tools/archivers/ctrtool { };
@@ -937,6 +989,12 @@ in
 
   dpt-rp1-py = callPackage ../tools/misc/dpt-rp1-py { };
 
+  dot-http = callPackage ../development/tools/dot-http {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  doona = callPackage ../tools/security/doona { };
+
   ecdsautils = callPackage ../tools/security/ecdsautils { };
 
   sedutil = callPackage ../tools/security/sedutil { };
@@ -969,16 +1027,24 @@ in
 
   fxlinuxprintutil = callPackage ../tools/misc/fxlinuxprintutil { };
 
-  genpass = callPackage ../tools/security/genpass { };
+  genpass = callPackage ../tools/security/genpass {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
 
   genymotion = callPackage ../development/mobile/genymotion { };
 
   gaia = callPackage ../development/libraries/gaia { };
 
+  gama = callPackage ../applications/science/geometry/gama { };
+
   gamecube-tools = callPackage ../development/tools/gamecube-tools { };
 
+  gammy = qt5.callPackage ../tools/misc/gammy { };
+
   gams = callPackage ../tools/misc/gams (config.gams or {});
 
+  gem = callPackage ../applications/audio/pd-plugins/gem { };
+
   git-fire = callPackage ../tools/misc/git-fire { };
 
   git-repo-updater = python3Packages.callPackage ../development/tools/git-repo-updater { };
@@ -1029,6 +1095,8 @@ in
 
   httperf = callPackage ../tools/networking/httperf { };
 
+  hwi = with python3Packages; toPythonApplication hwi;
+
   ili2c = callPackage ../tools/misc/ili2c { };
 
   imageworsener = callPackage ../tools/graphics/imageworsener { };
@@ -1095,6 +1163,8 @@ in
 
   wiiload = callPackage ../development/tools/wiiload { };
 
+  wiimms-iso-tools = callPackage ../tools/filesystems/wiimms-iso-tools { };
+
   xcodeenv = callPackage ../development/mobile/xcodeenv { };
 
   ssh-agents = callPackage ../tools/networking/ssh-agents { };
@@ -1121,6 +1191,7 @@ in
 
   androidndkPkgs = androidndkPkgs_18b;
   androidndkPkgs_18b = (callPackage ../development/androidndk-pkgs {})."18b";
+  androidndkPkgs_21 = (callPackage ../development/androidndk-pkgs {})."21";
 
   androidsdk_9_0 = androidenv.androidPkgs_9_0.androidsdk;
 
@@ -1289,6 +1360,8 @@ in
 
   quaternion = libsForQt5.callPackage ../applications/networking/instant-messengers/quaternion { };
 
+  mirage-im = libsForQt5.callPackage ../applications/networking/instant-messengers/mirage {};
+
   tensor = libsForQt5.callPackage ../applications/networking/instant-messengers/tensor { };
 
   libtensorflow-bin = callPackage ../development/libraries/science/math/tensorflow/bin.nix {
@@ -1303,6 +1376,11 @@ in
     then python.pkgs.tensorflow.libtensorflow
     else libtensorflow-bin;
 
+  libtorch-bin = callPackage ../development/libraries/science/math/libtorch/bin.nix {
+    inherit (linuxPackages) nvidia_x11;
+    cudaSupport = pkgs.config.cudaSupport or false;
+  };
+
   behdad-fonts = callPackage ../data/fonts/behdad-fonts { };
 
   bless = callPackage ../applications/editors/bless { };
@@ -1331,7 +1409,7 @@ in
 
   boringtun = callPackage ../tools/networking/boringtun { };
 
-  boomerang = libsForQt5.callPackage ../development/tools/boomerang { };
+  boomerang = libsForQt512.callPackage ../development/tools/boomerang { };
 
   boost-build = callPackage ../development/tools/boost-build { };
 
@@ -1341,6 +1419,8 @@ in
 
   boxfs = callPackage ../tools/filesystems/boxfs { };
 
+  bpytop = callPackage ../tools/system/bpytop { };
+
   brasero-original = lowPrio (callPackage ../tools/cd-dvd/brasero { });
 
   brasero = callPackage ../tools/cd-dvd/brasero/wrapper.nix { };
@@ -1404,7 +1484,6 @@ in
   bs-platform = callPackage ../development/compilers/bs-platform {};
 
   c3d = callPackage ../applications/graphics/c3d {
-    stdenv = gcc8Stdenv;
     inherit (darwin.apple_sdk.frameworks) Cocoa;
   };
 
@@ -1430,8 +1509,12 @@ in
     '';
   });
 
-  caddy = callPackage ../servers/caddy { };
-  caddy2 = callPackage ../servers/caddy/v2.nix { };
+  caddy = callPackage ../servers/caddy {
+    buildGoModule = buildGo114Module;
+  };
+  caddy2 = callPackage ../servers/caddy/v2.nix {
+    buildGoModule = buildGo114Module;
+  };
   traefik = callPackage ../servers/traefik { };
 
   calamares = libsForQt5.callPackage ../tools/misc/calamares {
@@ -1598,6 +1681,8 @@ in
 
   compsize = callPackage ../os-specific/linux/compsize { };
 
+  cot = with python3Packages; toPythonApplication cot;
+
   coturn = callPackage ../servers/coturn { };
 
   coursier = callPackage ../development/tools/coursier {};
@@ -1634,6 +1719,8 @@ in
 
   dante = callPackage ../servers/dante { };
 
+  dapr-cli = callPackage ../development/tools/dapr/cli {};
+
   dasher = callPackage ../applications/accessibility/dasher { };
 
   datamash = callPackage ../tools/misc/datamash { };
@@ -1650,6 +1737,8 @@ in
 
   dconf = callPackage ../development/libraries/dconf { };
 
+  dcw-gmt = callPackage ../applications/gis/gmt/dcw.nix { };
+
   ddar = callPackage ../tools/backup/ddar { };
 
   ddate = callPackage ../tools/misc/ddate { };
@@ -1688,6 +1777,10 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  dijo = callPackage ../tools/misc/dijo {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
   ding = callPackage ../applications/misc/ding {
     aspellDicts_de = aspellDicts.de;
     aspellDicts_en = aspellDicts.en;
@@ -1725,6 +1818,8 @@ in
 
   dokuwiki = callPackage ../servers/web-apps/dokuwiki { };
 
+  doppler = callPackage ../tools/security/doppler {};
+
   dosage = callPackage ../applications/graphics/dosage { };
 
   dozenal = callPackage ../applications/misc/dozenal { };
@@ -1774,6 +1869,14 @@ in
 
   eksctl = callPackage ../tools/admin/eksctl { };
 
+  electronplayer = callPackage ../applications/video/electronplayer/electronplayer.nix { };
+
+  element-desktop = callPackage ../applications/networking/instant-messengers/element/element-desktop.nix { };
+
+  element-web = callPackage ../applications/networking/instant-messengers/element/element-web.nix {
+    conf = config.element-web.conf or {};
+  };
+
   elementary-xfce-icon-theme = callPackage ../data/icons/elementary-xfce-icon-theme { };
 
   ell = callPackage ../os-specific/linux/ell { };
@@ -1858,6 +1961,16 @@ in
 
   futhark = haskell.lib.justStaticExecutables haskellPackages.futhark;
 
+  tllist = callPackage ../development/libraries/tllist { };
+
+  fcft = callPackage ../development/libraries/fcft { };
+
+  fuzzel = callPackage ../applications/misc/fuzzel { };
+
+  flashfocus = python3Packages.callPackage ../misc/flashfocus { };
+
+  qt-video-wlr = libsForQt5.callPackage ../applications/misc/qt-video-wlr { };
+
   fwup = callPackage ../tools/misc/fwup { };
 
   fx_cast_bridge = callPackage ../tools/misc/fx_cast { };
@@ -1876,6 +1989,8 @@ in
 
   gdrive = callPackage ../applications/networking/gdrive { };
 
+  go-rice = callPackage ../tools/misc/go.rice {};
+
   go-2fa = callPackage ../tools/security/2fa {};
 
   go-dependency-manager = callPackage ../development/tools/gdm { };
@@ -1924,12 +2039,19 @@ in
     variant = "krita";
   };
 
+  gmt = callPackage ../applications/gis/gmt {
+    inherit (darwin.apple_sdk.frameworks)
+      Accelerate CoreGraphics CoreVideo;
+  };
+
   goa = callPackage ../development/tools/goa { };
 
   gohai = callPackage ../tools/system/gohai { };
 
   gorilla-bin = callPackage ../tools/security/gorilla-bin { };
 
+  godu = callPackage ../tools/misc/godu { };
+
   gosu = callPackage ../tools/misc/gosu { };
 
   gotify-cli = callPackage ../tools/misc/gotify-cli { };
@@ -1944,7 +2066,9 @@ in
 
   gringo = callPackage ../tools/misc/gringo { };
 
-  grobi = callPackage ../tools/X11/grobi { };
+  grobi = callPackage ../tools/X11/grobi {
+    buildGoModule = buildGo114Module;
+  };
 
   gscan2pdf = callPackage ../applications/graphics/gscan2pdf { };
 
@@ -1952,6 +2076,8 @@ in
 
   gthree = callPackage ../development/libraries/gthree { };
 
+  gtg = callPackage ../applications/office/gtg { };
+
   gti = callPackage ../tools/misc/gti { };
 
   hdate = callPackage ../applications/misc/hdate { };
@@ -1976,6 +2102,8 @@ in
 
   hr = callPackage ../applications/misc/hr { };
 
+  humioctl = callPackage ../applications/logging/humioctl {};
+
   hyx = callPackage ../tools/text/hyx { };
 
   icdiff = callPackage ../tools/text/icdiff {};
@@ -1986,6 +2114,8 @@ in
 
   jellyfin = callPackage ../servers/jellyfin { };
 
+  jellyfin_10_5 = callPackage ../servers/jellyfin/10.5.x.nix { };
+
   jellyfin-mpv-shim = python3Packages.callPackage ../applications/video/jellyfin-mpv-shim { };
 
   jotta-cli = callPackage ../applications/misc/jotta-cli { };
@@ -2028,28 +2158,34 @@ in
 
   long-shebang = callPackage ../misc/long-shebang {};
 
+  lowdown = callPackage ../tools/typesetting/lowdown { };
+
   numatop = callPackage ../os-specific/linux/numatop { };
 
+  numworks-udev-rules = callPackage ../os-specific/linux/numworks-udev-rules { };
+
   iio-sensor-proxy = callPackage ../os-specific/linux/iio-sensor-proxy { };
 
   ipvsadm = callPackage ../os-specific/linux/ipvsadm { };
 
   ir-standard-fonts = callPackage ../data/fonts/ir-standard-fonts { };
 
+  kaggle = with python3Packages; toPythonApplication kaggle;
+
   lynis = callPackage ../tools/security/lynis { };
 
   mapproxy = callPackage ../applications/misc/mapproxy { };
 
   marlin-calc = callPackage ../tools/misc/marlin-calc {};
 
-  mathics = with python2Packages; toPythonApplication mathics;
-
   masscan = callPackage ../tools/security/masscan {
     stdenv = gccStdenv;
   };
 
   massren = callPackage ../tools/misc/massren { };
 
+  maxcso = callPackage ../tools/archivers/maxcso {};
+
   medusa = callPackage ../tools/security/medusa { };
 
   megasync = libsForQt5.callPackage ../applications/misc/megasync { };
@@ -2084,6 +2220,8 @@ in
 
   mlarchive2maildir = callPackage ../applications/networking/mailreaders/mlarchive2maildir { };
 
+  molly-brown = callPackage ../servers/gemini/molly-brown { };
+
   monetdb = callPackage ../servers/sql/monetdb { };
 
   mons = callPackage ../tools/misc/mons {};
@@ -2108,12 +2246,16 @@ in
 
   mq-cli = callPackage ../tools/system/mq-cli { };
 
+  nextdns = callPackage ../applications/networking/nextdns { };
+
   nfdump = callPackage ../tools/networking/nfdump { };
 
   nfstrace = callPackage ../tools/networking/nfstrace { };
 
   nix-direnv = callPackage ../tools/misc/nix-direnv { };
 
+  nix-template = callPackage ../tools/package-management/nix-template { };
+
   nixpkgs-pytools = with python3.pkgs; toPythonApplication nixpkgs-pytools;
 
   noteshrink = callPackage ../tools/misc/noteshrink { };
@@ -2134,6 +2276,8 @@ in
 
   onboard = callPackage ../applications/misc/onboard { };
 
+  oneshot = callPackage ../tools/networking/oneshot { };
+
   onnxruntime = callPackage ../development/libraries/onnxruntime { };
 
   xkbd = callPackage ../applications/misc/xkbd { };
@@ -2144,6 +2288,8 @@ in
 
   obinskit = callPackage ../applications/misc/obinskit {};
 
+  odafileconverter = libsForQt5.callPackage ../applications/graphics/odafileconverter {};
+
   pastel = callPackage ../applications/misc/pastel {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -2192,6 +2338,8 @@ in
 
   remarkable-mouse = python3Packages.callPackage ../applications/misc/remarkable/remarkable-mouse { };
 
+  ryujinx = callPackage ../misc/emulators/ryujinx { };
+
   scour = with python3Packages; toPythonApplication scour;
 
   s2png = callPackage ../tools/graphics/s2png { };
@@ -2202,6 +2350,8 @@ in
 
   simg2img = callPackage ../tools/filesystems/simg2img { };
 
+  simplenes = callPackage ../misc/emulators/simplenes { };
+
   snipes = callPackage ../games/snipes { };
 
   snippetpixie = callPackage ../tools/text/snippetpixie { };
@@ -2238,12 +2388,6 @@ in
 
   ring-daemon = callPackage ../applications/networking/instant-messengers/ring-daemon { };
 
-  riot-desktop = callPackage ../applications/networking/instant-messengers/riot/riot-desktop.nix { };
-
-  riot-web = callPackage ../applications/networking/instant-messengers/riot/riot-web.nix {
-    conf = config.riot-web.conf or {};
-  };
-
   ripasso-cursive = callPackage ../tools/security/ripasso/cursive.nix {
     inherit (darwin.apple_sdk.frameworks) AppKit Security;
   };
@@ -2357,8 +2501,6 @@ in
 
   assh = callPackage ../tools/networking/assh { };
 
-  asynk = callPackage ../tools/networking/asynk { };
-
   b2sum = callPackage ../tools/security/b2sum {
     inherit (llvmPackages) openmp;
   };
@@ -2373,6 +2515,8 @@ in
 
   bdsync = callPackage ../tools/backup/bdsync { };
 
+  beamerpresenter = libsForQt5.callPackage ../applications/office/beamerpresenter { };
+
   beanstalkd = callPackage ../servers/beanstalkd { };
 
   beets = callPackage ../tools/audio/beets {
@@ -2404,12 +2548,16 @@ in
     inherit (python27Packages) pillow;
   };
 
+  blueberry = callPackage ../tools/bluetooth/blueberry { };
+
   blueman = callPackage ../tools/bluetooth/blueman { };
 
   bmrsa = callPackage ../tools/security/bmrsa/11.nix { };
 
   bogofilter = callPackage ../tools/misc/bogofilter { };
 
+  bomutils = callPackage ../tools/archivers/bomutils { };
+
   bsdbuild = callPackage ../development/tools/misc/bsdbuild { };
 
   bsdiff = callPackage ../tools/compression/bsdiff { };
@@ -2444,6 +2592,8 @@ in
 
   bzip2 = callPackage ../tools/compression/bzip2 { };
 
+  bzip2_1_1 = callPackage ../tools/compression/bzip2/1_1.nix { };
+
   cabextract = callPackage ../tools/archivers/cabextract { };
 
   cadaver = callPackage ../tools/networking/cadaver {
@@ -2484,6 +2634,8 @@ in
 
   cemu = qt5.callPackage ../applications/science/math/cemu { };
 
+  isolyzer = callPackage ../tools/cd-dvd/isolyzer { };
+
   isomd5sum = callPackage ../tools/cd-dvd/isomd5sum { };
 
   mdf2iso = callPackage ../tools/cd-dvd/mdf2iso { };
@@ -2532,38 +2684,24 @@ in
 
   clementineUnfree = clementine.unfree;
 
+  mellowplayer = libsForQt5.callPackage ../applications/audio/mellowplayer { };
+
   ciopfs = callPackage ../tools/filesystems/ciopfs { };
 
   circleci-cli = callPackage ../development/tools/misc/circleci-cli { };
 
   circus = callPackage ../tools/networking/circus { };
 
-  citrix_workspace_unwrapped = callPackage ../applications/networking/remote/citrix-workspace { };
-  citrix_workspace_unwrapped_20_04_0 = citrix_workspace_unwrapped.override { version = "20.04.0"; };
-  citrix_workspace_unwrapped_19_12_0 = citrix_workspace_unwrapped.override { version = "19.12.0"; };
-  citrix_workspace_unwrapped_19_10_0 = citrix_workspace_unwrapped.override { version = "19.10.0"; };
-  citrix_workspace_unwrapped_19_8_0 = citrix_workspace_unwrapped.override { version = "19.8.0"; };
-  citrix_workspace_unwrapped_19_6_0 = citrix_workspace_unwrapped.override { version = "19.6.0"; };
-  citrix_workspace_unwrapped_19_3_0 = citrix_workspace_unwrapped.override { version = "19.3.0"; };
+  citrix_workspace = citrix_workspace_20_06_0;
 
-  citrix_workspace = callPackage ../applications/networking/remote/citrix-workspace/wrapper.nix {
-    citrix_workspace = citrix_workspace_unwrapped;
-  };
-  citrix_workspace_19_12_0 = callPackage ../applications/networking/remote/citrix-workspace/wrapper.nix {
-    citrix_workspace = citrix_workspace_unwrapped_19_12_0;
-  };
-  citrix_workspace_19_10_0 = callPackage ../applications/networking/remote/citrix-workspace/wrapper.nix {
-    citrix_workspace = citrix_workspace_unwrapped_19_10_0;
-  };
-  citrix_workspace_19_8_0 = callPackage ../applications/networking/remote/citrix-workspace/wrapper.nix {
-    citrix_workspace = citrix_workspace_unwrapped_19_8_0;
-  };
-  citrix_workspace_19_6_0 = callPackage ../applications/networking/remote/citrix-workspace/wrapper.nix {
-    citrix_workspace = citrix_workspace_unwrapped_19_6_0;
-  };
-  citrix_workspace_19_3_0 = callPackage ../applications/networking/remote/citrix-workspace/wrapper.nix {
-    citrix_workspace = citrix_workspace_unwrapped_19_3_0;
-  };
+  inherit (callPackage ../applications/networking/remote/citrix-workspace { })
+    citrix_workspace_19_6_0
+    citrix_workspace_19_8_0
+    citrix_workspace_19_10_0
+    citrix_workspace_19_12_0
+    citrix_workspace_20_04_0
+    citrix_workspace_20_06_0
+  ;
 
   citra = libsForQt5.callPackage ../misc/emulators/citra { };
 
@@ -2679,7 +2817,7 @@ in
     mozc = callPackage ../tools/inputmethods/ibus-engines/ibus-mozc {
       python = python2;
       inherit (python2Packages) gyp;
-      protobuf = pkgs.protobuf.overrideDerivation (oldAttrs: { stdenv = clangStdenv; });
+      protobuf = pkgs.protobuf3_8.overrideDerivation (oldAttrs: { stdenv = clangStdenv; });
     };
 
     table = callPackage ../tools/inputmethods/ibus-engines/ibus-table { };
@@ -2714,6 +2852,12 @@ in
 
   biosdevname = callPackage ../tools/networking/biosdevname { };
 
+  code-browser-qt = libsForQt5.callPackage ../applications/editors/code-browser { withQt = true;
+                                                                                };
+  code-browser-gtk = callPackage ../applications/editors/code-browser { withGtk = true;
+                                                                        qtbase = qt5.qtbase;
+                                                                      };
+
   c14 = callPackage ../applications/networking/c14 { };
 
   certstrap = callPackage ../tools/security/certstrap { };
@@ -2760,6 +2904,8 @@ in
 
   conda = callPackage ../tools/package-management/conda { };
 
+  console-bridge = callPackage ../development/libraries/console-bridge { };
+
   convmv = callPackage ../tools/misc/convmv { };
 
   convoy = callPackage ../tools/filesystems/convoy { };
@@ -2802,7 +2948,9 @@ in
     cudatoolkit_10
     cudatoolkit_10_0
     cudatoolkit_10_1
-    cudatoolkit_10_2;
+    cudatoolkit_10_2
+    cudatoolkit_11
+    cudatoolkit_11_0;
 
   cudatoolkit = cudatoolkit_10;
 
@@ -2819,7 +2967,9 @@ in
     cudnn_cudatoolkit_10
     cudnn_cudatoolkit_10_0
     cudnn_cudatoolkit_10_1
-    cudnn_cudatoolkit_10_2;
+    cudnn_cudatoolkit_10_2
+    cudnn_cudatoolkit_11
+    cudnn_cudatoolkit_11_0;
 
   cudnn = cudnn_cudatoolkit_10;
 
@@ -2873,6 +3023,8 @@ in
 
   dclxvi = callPackage ../development/libraries/dclxvi { };
 
+  dconf2nix = callPackage ../development/tools/haskell/dconf2nix { };
+
   dcraw = callPackage ../tools/graphics/dcraw { };
 
   dcfldd = callPackage ../tools/system/dcfldd { };
@@ -3035,6 +3187,8 @@ in
 
   doom-bcc = callPackage ../games/zdoom/bcc-git.nix { };
 
+  sl1-to-photon = python3Packages.callPackage ../applications/misc/sl1-to-photon { };
+
   slade = callPackage ../applications/misc/slade {
     wxGTK = wxGTK30;
   };
@@ -3063,6 +3217,8 @@ in
 
   dtc = callPackage ../development/compilers/dtc { };
 
+  dt-schema = python3Packages.callPackage ../development/tools/dt-schema { };
+
   dub = callPackage ../development/tools/build-managers/dub { };
 
   duc = callPackage ../tools/misc/duc { };
@@ -3145,6 +3301,10 @@ in
 
   mcrcon = callPackage ../tools/networking/mcrcon {};
 
+  mozwire = callPackage ../tools/networking/mozwire {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   rage = callPackage ../tools/security/rage {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -3195,8 +3355,12 @@ in
 
   vorta = python3Packages.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 { };
 
   wl-clipboard = callPackage ../tools/misc/wl-clipboard { };
@@ -3229,14 +3393,8 @@ in
 
   cholmod-extra = callPackage ../development/libraries/science/math/cholmod-extra { };
 
-  emscriptenVersion = "1.39.1";
-
   emscripten = callPackage ../development/compilers/emscripten { };
 
-  emscriptenfastcompPackages = dontRecurseIntoAttrs (callPackage ../development/compilers/emscripten/fastcomp { });
-
-  emscriptenfastcomp = emscriptenfastcompPackages.emscriptenfastcomp;
-
   emscriptenPackages = recurseIntoAttrs (callPackage ./emscripten-packages.nix { });
 
   emscriptenStdenv = stdenv // { mkDerivation = buildEmscriptenPackage; };
@@ -3361,7 +3519,7 @@ in
 
   f2fs-tools = callPackage ../tools/filesystems/f2fs-tools { };
 
-  Fabric = python2Packages.Fabric;
+  Fabric = with python3Packages; toPythonApplication Fabric;
 
   fail2ban = callPackage ../tools/security/fail2ban { };
 
@@ -3400,7 +3558,7 @@ in
     mozc = callPackage ../tools/inputmethods/fcitx-engines/fcitx-mozc {
       python = python2;
       inherit (python2Packages) gyp;
-      protobuf = pkgs.protobuf.overrideDerivation (oldAttrs: { stdenv = clangStdenv; });
+      protobuf = pkgs.protobuf3_8.overrideDerivation (oldAttrs: { stdenv = clangStdenv; });
     };
 
     table-extra = callPackage ../tools/inputmethods/fcitx-engines/fcitx-table-extra { };
@@ -3416,6 +3574,8 @@ in
 
   fcitx-configtool = callPackage ../tools/inputmethods/fcitx/fcitx-configtool.nix { };
 
+  chewing-editor = libsForQt5.callPackage ../applications/misc/chewing-editor { };
+
   fcppt = callPackage ../development/libraries/fcppt { };
 
   fcrackzip = callPackage ../tools/security/fcrackzip { };
@@ -3426,7 +3586,7 @@ in
 
   fdtools = callPackage ../tools/misc/fdtools { };
 
-  featherpad = callPackage ../applications/editors/featherpad {};
+  featherpad = qt5.callPackage ../applications/editors/featherpad {};
 
   feedreader = callPackage ../applications/networking/feedreaders/feedreader {};
 
@@ -3582,7 +3742,13 @@ in
 
   fprintd = callPackage ../tools/security/fprintd { };
 
-  franz = callPackage ../applications/networking/instant-messengers/franz { };
+  ferdi = callPackage ../applications/networking/instant-messengers/ferdi {
+    mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { };
+  };
+
+  franz = callPackage ../applications/networking/instant-messengers/franz {
+    mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { };
+  };
 
   freedroidrpg = callPackage ../games/freedroidrpg { };
 
@@ -3596,6 +3762,10 @@ in
 
   freetds = callPackage ../development/libraries/freetds { };
 
+  freqtweak = callPackage ../applications/audio/freqtweak {
+    wxGTK = wxGTK31-gtk2;
+  };
+
   frescobaldi = python3Packages.callPackage ../misc/frescobaldi {};
 
   frostwire = callPackage ../applications/networking/p2p/frostwire { };
@@ -3696,6 +3866,8 @@ in
 
   genimage = callPackage ../tools/filesystems/genimage { };
 
+  geonkick = callPackage ../applications/audio/geonkick {};
+
   gerrit = callPackage ../applications/version-management/gerrit { };
 
   geteltorito = callPackage ../tools/misc/geteltorito { };
@@ -3816,10 +3988,6 @@ in
   gnupg1orig = callPackage ../tools/security/gnupg/1.nix { };
   gnupg1compat = callPackage ../tools/security/gnupg/1compat.nix { };
   gnupg1 = gnupg1compat;    # use config.packageOverrides if you prefer original gnupg1
-  gnupg20 = callPackage ../tools/security/gnupg/20.nix {
-    guiSupport = stdenv.isDarwin;
-    pinentry = if stdenv.isDarwin then pinentry_mac else pinentry-gtk2;
-  };
   gnupg22 = callPackage ../tools/security/gnupg/22.nix {
     guiSupport = stdenv.isDarwin;
     pinentry = if stdenv.isDarwin then pinentry_mac else pinentry-gtk2;
@@ -3854,6 +4022,10 @@ in
 
   godot = callPackage ../development/tools/godot {};
 
+  godot-headless = callPackage ../development/tools/godot/headless.nix { };
+
+  godot-server = callPackage ../development/tools/godot/server.nix { };
+
   goklp = callPackage ../tools/networking/goklp {};
 
   go-mtpfs = callPackage ../tools/filesystems/go-mtpfs { };
@@ -3892,6 +4064,8 @@ in
 
   gopro = callPackage ../tools/video/gopro { };
 
+  goreplay = callPackage ../tools/networking/goreplay { };
+
   gource = callPackage ../applications/version-management/gource { };
 
   govc = callPackage ../tools/virtualization/govc { };
@@ -4117,6 +4291,8 @@ in
 
   hal-flash = callPackage ../os-specific/linux/hal-flash { };
 
+  hal-hardware-analyzer = libsForQt5.callPackage ../applications/science/electronics/hal-hardware-analyzer { };
+
   half = callPackage ../development/libraries/half { };
 
   halibut = callPackage ../tools/typesetting/halibut { };
@@ -4317,6 +4493,8 @@ in
     packages = config.ihaskell.packages or (self: []);
   };
 
+  iruby = callPackage ../applications/editors/jupyter-kernels/iruby { };
+
   imapproxy = callPackage ../tools/networking/imapproxy {
     openssl = openssl_1_0_2;
   };
@@ -4337,6 +4515,8 @@ in
 
   inetutils = callPackage ../tools/networking/inetutils { };
 
+  inform6 = callPackage ../development/compilers/inform6 { };
+
   inform7 = callPackage ../development/compilers/inform7 { };
 
   infamousPlugins = callPackage ../applications/audio/infamousPlugins { };
@@ -4381,9 +4561,13 @@ in
   iperf3 = callPackage ../tools/networking/iperf/3.nix { };
   iperf = iperf3;
 
-  ipfs = callPackage ../applications/networking/ipfs { };
+  ipfs = callPackage ../applications/networking/ipfs {
+    buildGoModule = buildGo114Module;
+  };
   ipfs-migrator = callPackage ../applications/networking/ipfs-migrator { };
-  ipfs-cluster = callPackage ../applications/networking/ipfs-cluster { };
+  ipfs-cluster = callPackage ../applications/networking/ipfs-cluster {
+    buildGoModule = buildGo114Module;
+  };
 
   ipget = callPackage ../applications/networking/ipget { };
 
@@ -4421,6 +4605,8 @@ in
 
   isync = callPackage ../tools/networking/isync { };
 
+  itm-tools = callPackage ../development/tools/misc/itm-tools { };
+
   ix = callPackage ../tools/misc/ix { };
 
   jaaa = callPackage ../applications/audio/jaaa { };
@@ -4587,6 +4773,8 @@ in
   kibana = kibana6;
   kibana-oss = kibana6-oss;
 
+  kibi = callPackage ../applications/editors/kibi { };
+
   kismet = callPackage ../applications/networking/sniffers/kismet { };
 
   klick = callPackage ../applications/audio/klick { };
@@ -4669,7 +4857,6 @@ in
 
   liquidsoap = callPackage ../tools/audio/liquidsoap/full.nix {
     ffmpeg = ffmpeg-full;
-    ocamlPackages = ocaml-ng.ocamlPackages_4_07;
   };
 
   lksctp-tools = callPackage ../os-specific/linux/lksctp-tools { };
@@ -4700,6 +4887,8 @@ in
 
   lolcat = callPackage ../tools/misc/lolcat { };
 
+  lottieconverter = callPackage ../tools/misc/lottieconverter { };
+
   lsd = callPackage ../tools/misc/lsd { };
 
   lsdvd = callPackage ../tools/cd-dvd/lsdvd {};
@@ -4771,6 +4960,8 @@ in
 
   minergate-cli = callPackage ../applications/misc/minergate-cli { };
 
+  minica = callPackage ../tools/security/minica { };
+
   minidlna = callPackage ../tools/networking/minidlna { };
 
   minisign = callPackage ../tools/security/minisign { };
@@ -4872,10 +5063,6 @@ in
   nodejs-slim-12_x = callPackage ../development/web/nodejs/v12.nix {
     enableNpm = false;
   };
-  nodejs-13_x = callPackage ../development/web/nodejs/v13.nix { };
-  nodejs-slim-13_x = callPackage ../development/web/nodejs/v13.nix {
-    enableNpm = false;
-  };
   nodejs-14_x = callPackage ../development/web/nodejs/v14.nix { };
   nodejs-slim-14_x = callPackage ../development/web/nodejs/v14.nix {
     enableNpm = false;
@@ -5049,6 +5236,8 @@ in
     libwebsockets_4_0;
   libwebsockets = libwebsockets_3_2;
 
+  licensee = callPackage ../tools/package-management/licensee { };
+
   lidarr = callPackage ../servers/lidarr { };
 
   limesuite = callPackage ../applications/radio/limesuite { };
@@ -5069,6 +5258,8 @@ in
 
   logstalgia = callPackage ../tools/graphics/logstalgia {};
 
+  lokalise2-cli = callPackage ../tools/misc/lokalise2-cli { };
+
   loki = callPackage ../development/libraries/loki { };
 
   longview = callPackage ../servers/monitoring/longview { };
@@ -5123,8 +5314,15 @@ in
   mailhog = callPackage ../servers/mail/mailhog {};
 
   mailnag = callPackage ../applications/networking/mailreaders/mailnag {
-    pythonPackages = python3Packages;
+    availablePlugins = {
+      # More are listed here: https://github.com/pulb/mailnag/#desktop-integration
+      # Use the attributes here as arguments to `plugins` list
+      goa = callPackage ../applications/networking/mailreaders/mailnag/goa-plugin.nix { };
+    };
   };
+  mailnagWithPlugins = mailnag.withPlugins(
+    builtins.attrValues mailnag.availablePlugins
+  );
 
   mailsend = callPackage ../tools/networking/mailsend { };
 
@@ -5264,6 +5462,8 @@ in
     pythonPackages = python3Packages;
   };
 
+  mirakurun = nodePackages.mirakurun;
+
   miredo = callPackage ../tools/networking/miredo { };
 
   mirrorbits = callPackage ../servers/mirrorbits { };
@@ -5302,6 +5502,8 @@ in
 
   molly-guard = callPackage ../os-specific/linux/molly-guard { };
 
+  molotov = callPackage ../applications/video/molotov {};
+
   moneyplex = callPackage ../applications/office/moneyplex { };
 
   monit = callPackage ../tools/system/monit { };
@@ -5372,6 +5574,8 @@ in
 
   mycli = callPackage ../tools/admin/mycli { };
 
+  mycrypto = callPackage ../applications/blockchains/mycrypto { };
+
   mydumper = callPackage ../tools/backup/mydumper { };
 
   mysql2pgsql = callPackage ../tools/misc/mysql2pgsql { };
@@ -5390,6 +5594,8 @@ in
 
   nat-traverse = callPackage ../tools/networking/nat-traverse { };
 
+  navi = callPackage ../applications/misc/navi { };
+
   navilu-font = callPackage ../data/fonts/navilu { stdenv = stdenvNoCC; };
 
   nawk = callPackage ../tools/text/nawk { };
@@ -5398,9 +5604,8 @@ in
   xnbd = callPackage ../tools/networking/xnbd { };
 
   nccl = callPackage ../development/libraries/science/math/nccl { };
-  nccl_cudatoolkit_9_0 = nccl.override { cudatoolkit = cudatoolkit_9_0; };
-  nccl_cudatoolkit_9 = nccl.override { cudatoolkit = cudatoolkit_9; };
   nccl_cudatoolkit_10 = nccl.override { cudatoolkit = cudatoolkit_10; };
+  nccl_cudatoolkit_11 = nccl.override { cudatoolkit = cudatoolkit_11; };
 
   ndjbdns = callPackage ../tools/networking/ndjbdns { };
 
@@ -5434,6 +5639,8 @@ in
 
   ncftp = callPackage ../tools/networking/ncftp { };
 
+  ncgopher = callPackage ../applications/networking/ncgopher { };
+
   ncompress = callPackage ../tools/compression/ncompress { };
 
   ndisc6 = callPackage ../tools/networking/ndisc6 { };
@@ -5450,6 +5657,8 @@ in
 
   netkittftp = callPackage ../tools/networking/netkit/tftp { };
 
+  netlify-cli = nodePackages.netlify-cli;
+
   netpbm = callPackage ../tools/graphics/netpbm { };
 
   netrw = callPackage ../tools/networking/netrw { };
@@ -5502,8 +5711,12 @@ in
 
   ndstool = callPackage ../tools/archivers/ndstool { };
 
+  nfs-ganesha = callPackage ../servers/nfs-ganesha { };
+
   ngrep = callPackage ../tools/networking/ngrep { };
 
+  neuron-notes = haskell.lib.justStaticExecutables (haskell.lib.generateOptparseApplicativeCompletion "neuron" haskellPackages.neuron);
+
   ngrok = ngrok-2;
 
   ngrok-2 = callPackage ../tools/networking/ngrok-2 { };
@@ -5514,10 +5727,14 @@ in
 
   noip = callPackage ../tools/networking/noip { };
 
-  nomad = callPackage ../applications/networking/cluster/nomad { };
+  nomad = nomad_0_11;
+  nomad_0_11 = callPackage ../applications/networking/cluster/nomad/0.11.nix { };
+  nomad_0_12 = callPackage ../applications/networking/cluster/nomad/0.12.nix { };
 
   notable = callPackage ../applications/misc/notable { };
 
+  nvchecker = with python3Packages; toPythonApplication nvchecker;
+
   miller = callPackage ../tools/text/miller { };
 
   milu = callPackage ../applications/misc/milu { };
@@ -5532,6 +5749,8 @@ in
 
   pandoc-imagine = python3Packages.callPackage ../tools/misc/pandoc-imagine { };
 
+  pandoc-plantuml-filter = python3Packages.callPackage ../tools/misc/pandoc-plantuml-filter { };
+
   pasystray = callPackage ../tools/audio/pasystray { };
 
   phash = callPackage ../development/libraries/phash { };
@@ -5581,6 +5800,8 @@ in
 
   noise-repellent = callPackage ../applications/audio/noise-repellent { };
 
+  noisetorch = callPackage ../applications/audio/noisetorch { };
+
   notary = callPackage ../tools/security/notary { };
 
   notify-osd = callPackage ../applications/misc/notify-osd { };
@@ -5604,6 +5825,8 @@ in
 
   ntfy = callPackage ../tools/misc/ntfy {};
 
+  ntirpc = callPackage ../development/libraries/ntirpc { };
+
   ntopng = callPackage ../tools/networking/ntopng { };
 
   ntp = callPackage ../tools/networking/ntp {
@@ -5620,6 +5843,8 @@ in
 
   nwdiag = with python3Packages; toPythonApplication nwdiag;
 
+  nxpmicro-mfgtools = callPackage ../development/tools/misc/nxpmicro-mfgtools { };
+
   nyancat = callPackage ../tools/misc/nyancat { };
 
   nylon = callPackage ../tools/networking/nylon { };
@@ -5711,6 +5936,8 @@ in
 
   openjade = callPackage ../tools/text/sgml/openjade { };
 
+  openhantek6022 = libsForQt5.callPackage ../applications/science/electronics/openhantek6022 { };
+
   openimagedenoise = callPackage ../development/libraries/openimagedenoise { };
 
   openmvg = callPackage ../applications/science/misc/openmvg { };
@@ -5745,9 +5972,6 @@ in
 
   openssh_hpn = pkgs.appendToName "with-hpn" (openssh.override {
     hpnSupport = true;
-    # the hpn patchset does not yet support openssl>1.0.2
-    # https://github.com/rapier1/openssh-portable/issues/14
-    openssl = openssl_1_0_2;
   });
 
   openssh_gssapi = pkgs.appendToName "with-gssapi" (openssh.override {
@@ -5774,6 +5998,8 @@ in
 
   oppai-ng = callPackage ../tools/misc/oppai-ng { };
 
+  operator-sdk = callPackage ../development/tools/operator-sdk { };
+
   update-dotdee = with python3Packages; toPythonApplication update-dotdee;
 
   update-resolv-conf = callPackage ../tools/networking/openvpn/update-resolv-conf.nix { };
@@ -5804,6 +6030,8 @@ in
 
   osl = callPackage ../development/compilers/osl { };
 
+  osqp = callPackage ../development/libraries/science/math/osqp { };
+
   ossec = callPackage ../tools/security/ossec {};
 
   osslsigncode = callPackage ../development/tools/osslsigncode {};
@@ -5886,9 +6114,13 @@ in
 
   perceptualdiff = callPackage ../tools/graphics/perceptualdiff { };
 
-  percona-xtrabackup = callPackage ../tools/backup/percona-xtrabackup {
+  percona-xtrabackup = percona-xtrabackup_8_0;
+  percona-xtrabackup_2_4 = callPackage ../tools/backup/percona-xtrabackup/2_4.nix {
     boost = boost159;
   };
+  percona-xtrabackup_8_0 = callPackage ../tools/backup/percona-xtrabackup/8_0.nix {
+    boost = boost170;
+  };
 
   pick = callPackage ../tools/misc/pick { };
 
@@ -6016,6 +6248,8 @@ in
 
   pirate-get = callPackage ../tools/networking/pirate-get { };
 
+  pipr = callPackage ../applications/misc/pipr { };
+
   pipreqs = callPackage ../tools/misc/pipreqs { };
 
   pius = callPackage ../tools/security/pius { };
@@ -6076,7 +6310,10 @@ in
 
   podiff = callPackage ../tools/text/podiff { };
 
-  podman = callPackage ../applications/virtualization/podman/wrapper.nix { };
+  podman = if stdenv.isDarwin then
+    callPackage ../applications/virtualization/podman { }
+  else
+    callPackage ../applications/virtualization/podman/wrapper.nix { };
   podman-unwrapped = callPackage ../applications/virtualization/podman { };
 
   podman-compose = python3Packages.callPackage ../applications/virtualization/podman-compose {};
@@ -6148,6 +6385,8 @@ in
 
   pmacct = callPackage ../tools/networking/pmacct { };
 
+  pmix = callPackage ../development/libraries/pmix { };
+
   polygraph = callPackage ../tools/networking/polygraph { };
 
   progress = callPackage ../tools/misc/progress { };
@@ -6222,7 +6461,7 @@ in
 
   qarte = libsForQt5.callPackage ../applications/video/qarte { };
 
-  qlcplus = libsForQt5.callPackage ../applications/misc/qlcplus { };
+  qlcplus = libsForQt512.callPackage ../applications/misc/qlcplus { };
 
   qnial = callPackage ../development/interpreters/qnial { };
 
@@ -6244,6 +6483,8 @@ in
 
   qjoypad = callPackage ../tools/misc/qjoypad { };
 
+  qosmic = libsForQt5.callPackage ../applications/graphics/qosmic { };
+
   qownnotes = libsForQt5.callPackage ../applications/office/qownnotes { };
 
   qpdf = callPackage ../development/libraries/qpdf { };
@@ -6306,6 +6547,9 @@ in
 
   rdma-core = callPackage ../os-specific/linux/rdma-core { };
 
+
+  real_time_config_quick_scan = callPackage ../applications/audio/real_time_config_quick_scan { };
+
   react-native-debugger = callPackage ../development/tools/react-native-debugger { };
 
   read-edid = callPackage ../os-specific/linux/read-edid { };
@@ -6346,6 +6590,8 @@ in
 
   recoll = callPackage ../applications/search/recoll { };
 
+  redoc-cli = nodePackages.redoc-cli;
+
   reflex = callPackage ../development/tools/reflex { };
 
   reiser4progs = callPackage ../tools/filesystems/reiser4progs { };
@@ -6407,6 +6653,8 @@ in
 
   rnnoise = callPackage ../development/libraries/rnnoise { };
 
+  rnnoise-plugin = callPackage ../development/libraries/rnnoise-plugin {};
+
   rnv = callPackage ../tools/text/xml/rnv { };
 
   rosie = callPackage ../tools/text/rosie { };
@@ -6479,6 +6727,8 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  rustscan = callPackage ../tools/security/rustscan { };
+
   rw = callPackage ../tools/misc/rw { };
 
   rxp = callPackage ../tools/text/xml/rxp { };
@@ -6561,7 +6811,7 @@ in
     quazip = quazip_qt4;
   };
 
-  screenkey = python2Packages.callPackage ../applications/video/screenkey { };
+  screenkey = callPackage ../applications/video/screenkey { };
 
   quazip_qt4 = libsForQt5.quazip.override {
     qtbase = qt4;
@@ -6579,6 +6829,10 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  sd-mux-ctrl = callPackage ../tools/misc/sd-mux-ctrl { };
+
+  sd-switch = callPackage ../os-specific/linux/sd-switch { };
+
   sdate = callPackage ../tools/misc/sdate { };
 
   sdcv = callPackage ../applications/misc/sdcv { };
@@ -6627,6 +6881,8 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  shadowsocks-v2ray-plugin = callPackage ../tools/networking/shadowsocks-v2ray-plugin { };
+
   sharutils = callPackage ../tools/archivers/sharutils { };
 
   shelldap = callPackage ../tools/misc/shelldap { };
@@ -6718,6 +6974,8 @@ in
     conf = config.slstatus.conf or null;
   };
 
+  sm64ex = callPackage ../games/sm64ex { };
+
   smartdns = callPackage ../tools/networking/smartdns { };
 
   smartmontools = callPackage ../tools/system/smartmontools {
@@ -6751,12 +7009,18 @@ in
 
   snort = callPackage ../applications/networking/ids/snort { };
 
+  so = callPackage ../development/tools/so {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   soapui = callPackage ../applications/networking/soapui { };
 
   sshguard = callPackage ../tools/security/sshguard {};
 
   sshping = callPackage ../tools/networking/sshping {};
 
+  ssh-chat = callPackage ../applications/networking/instant-messengers/ssh-chat { };
+
   suricata = callPackage ../applications/networking/ids/suricata {
     python = python3;
   };
@@ -6786,18 +7050,20 @@ in
 
   spectre-meltdown-checker = callPackage ../tools/security/spectre-meltdown-checker { };
 
+  spigot = callPackage ../tools/misc/spigot { };
+
   spiped = callPackage ../tools/networking/spiped { };
 
   sqliteman = callPackage ../applications/misc/sqliteman { };
 
   stdman = callPackage ../data/documentation/stdman { };
 
+  steck = callPackage ../servers/pinnwand/steck.nix { };
+
   stenc = callPackage ../tools/backup/stenc { };
 
   stm32loader = with python3Packages; toPythonApplication stm32loader;
 
-  storebrowse = callPackage ../tools/system/storebrowse { };
-
   stubby = callPackage ../tools/networking/stubby { };
 
   syntex = callPackage ../tools/graphics/syntex {};
@@ -6821,6 +7087,8 @@ in
 
   speech-denoiser = callPackage ../applications/audio/speech-denoiser {};
 
+  splot = haskell.lib.justStaticExecutables haskellPackages.splot;
+
   squashfsTools = callPackage ../tools/filesystems/squashfs { };
 
   squashfs-tools-ng = callPackage ../tools/filesystems/squashfs-tools-ng { };
@@ -6870,8 +7138,6 @@ in
 
   supertux-editor = callPackage ../applications/editors/supertux-editor { };
 
-  super-user-spark = haskellPackages.callPackage ../applications/misc/super_user_spark { };
-
   svgbob = callPackage ../tools/graphics/svgbob { };
 
   svgcleaner = callPackage ../tools/graphics/svgcleaner { };
@@ -6939,8 +7205,6 @@ in
 
   swec = callPackage ../tools/networking/swec { };
 
-  swfdec = callPackage ../tools/graphics/swfdec {};
-
   svnfs = callPackage ../tools/filesystems/svnfs { };
 
   svtplay-dl = callPackage ../tools/misc/svtplay-dl { };
@@ -7071,6 +7335,8 @@ in
 
   timetable = callPackage ../applications/office/timetable { };
 
+  timezonemap = callPackage ../development/libraries/timezonemap { };
+
   tzupdate = callPackage ../applications/misc/tzupdate { };
 
   tinc = callPackage ../tools/networking/tinc { };
@@ -7083,6 +7349,8 @@ in
 
   tinc_pre = callPackage ../tools/networking/tinc/pre.nix {};
 
+  tinycbor = callPackage ../development/libraries/tinycbor { };
+
   tiny8086 = callPackage ../applications/virtualization/8086tiny { };
 
   tinyemu = callPackage ../applications/virtualization/tinyemu { };
@@ -7131,12 +7399,7 @@ in
     inherit (darwin.apple_sdk.frameworks) Foundation;
   };
 
-  tor = callPackage ../tools/security/tor {
-    # remove this, when libevent's openssl is upgraded to 1_1_0 or newer.
-    libevent = libevent.override {
-      sslSupport = false;
-    };
-  };
+  tor = callPackage ../tools/security/tor { };
 
   tor-arm = callPackage ../tools/security/tor/tor-arm.nix { };
 
@@ -7146,6 +7409,8 @@ in
 
   torsocks = callPackage ../tools/security/tor/torsocks.nix { };
 
+  toss = callPackage ../tools/networking/toss { };
+
   tox-node = callPackage ../tools/networking/tox-node { };
 
   toxvpn = callPackage ../tools/networking/toxvpn { };
@@ -7288,6 +7553,8 @@ in
 
   uget-integrator = callPackage ../tools/networking/uget-integrator { };
 
+  ugrep = callPackage ../tools/text/ugrep { };
+
   uif2iso = callPackage ../tools/cd-dvd/uif2iso { };
 
   umlet = callPackage ../tools/misc/umlet { };
@@ -7306,6 +7573,8 @@ in
 
   untrunc = callPackage ../tools/video/untrunc { };
 
+  untrunc-anthwlock = callPackage ../tools/video/untrunc-anthwlock { };
+
   up = callPackage ../tools/misc/up { };
 
   upx = callPackage ../tools/compression/upx { };
@@ -7314,6 +7583,10 @@ in
 
   uqmi = callPackage ../tools/networking/uqmi { };
 
+  urdfdom = callPackage ../development/libraries/urdfdom {};
+
+  urdfdom-headers = callPackage ../development/libraries/urdfdom-headers {};
+
   uriparser = callPackage ../development/libraries/uriparser {};
 
   urlscan = callPackage ../applications/misc/urlscan { };
@@ -7344,6 +7617,8 @@ in
 
   vbetool = callPackage ../tools/system/vbetool { };
 
+  vcsi = callPackage ../tools/video/vcsi { };
+
   vde2 = callPackage ../tools/networking/vde2 { };
 
   vboot_reference = callPackage ../tools/system/vboot_reference {};
@@ -7356,10 +7631,16 @@ in
 
   vcstool = callPackage ../development/tools/vcstool { };
 
+  vend = callPackage ../development/tools/vend { };
+
   verilator = callPackage ../applications/science/electronics/verilator {};
 
   verilog = callPackage ../applications/science/electronics/verilog {};
 
+  vgrep = callPackage ../tools/text/vgrep { };
+
+  vhd2vl = callPackage ../applications/science/electronics/vhd2vl { };
+
   video2midi = callPackage ../tools/audio/video2midi {
     pythonPackages = python3Packages;
   };
@@ -7409,6 +7690,8 @@ in
 
   vpnc = callPackage ../tools/networking/vpnc { };
 
+  vpn-slice = python3Packages.callPackage ../tools/networking/vpn-slice { };
+
   vp = callPackage ../applications/misc/vp {
     # Enable next line for console graphics. Note that
     # it requires `sixel` enabled terminals such as mlterm
@@ -7491,7 +7774,11 @@ in
 
   woof = callPackage ../tools/misc/woof { };
 
-  wootility = callPackage ../tools/misc/wootility { };
+  wootility = callPackage ../tools/misc/wootility {
+    inherit (xorg) libxkbfile;
+  };
+
+  wormhole-william = callPackage ../tools/networking/wormhole-william { };
 
   wpscan = callPackage ../tools/security/wpscan { };
 
@@ -7709,6 +7996,8 @@ in
     libpsl = null;
   };
 
+  wg-bond = callPackage ../applications/networking/wg-bond { };
+
   which = callPackage ../tools/system/which { };
 
   whsniff = callPackage ../applications/networking/sniffers/whsniff { };
@@ -7767,6 +8056,8 @@ in
 
   clipnotify = callPackage ../tools/misc/clipnotify { };
 
+  x3270 = callPackage ../applications/misc/x3270 { };
+
   xclip = callPackage ../tools/misc/xclip { };
 
   xcur2png = callPackage ../tools/graphics/xcur2png { };
@@ -7859,12 +8150,15 @@ in
   inherit (yarn2nix-moretea)
     yarn2nix
     mkYarnPackage
+    mkYarnModules
     fixup_yarn_lock;
 
   yasr = callPackage ../applications/audio/yasr { };
 
   yank = callPackage ../tools/misc/yank { };
 
+  yamllint = with python3Packages; toPythonApplication yamllint;
+
   yaml-merge = callPackage ../tools/text/yaml-merge { };
 
   yeshup = callPackage ../tools/system/yeshup { };
@@ -8027,8 +8321,6 @@ in
 
   tcsh = callPackage ../shells/tcsh { };
 
-  rssh = callPackage ../shells/rssh { };
-
   rush = callPackage ../shells/rush { };
 
   xonsh = callPackage ../shells/xonsh { };
@@ -8043,6 +8335,7 @@ in
 
   grml-zsh-config = callPackage ../shells/zsh/grml-zsh-config { };
 
+  powerline = with python3Packages; toPythonApplication powerline;
 
   ### DEVELOPMENT / COMPILERS
 
@@ -8181,6 +8474,7 @@ in
     };
   };
 
+  clang_11 = llvmPackages_11.clang;
   clang_10 = llvmPackages_10.clang;
   clang_9  = llvmPackages_9.clang;
   clang_8  = llvmPackages_8.clang;
@@ -8212,13 +8506,14 @@ in
 
   cmucl_binary = pkgsi686Linux.callPackage ../development/compilers/cmucl/binary.nix { };
 
-  compcert = callPackage ../development/compilers/compcert { };
+  compcert = callPackage ../development/compilers/compcert {
+    inherit (coqPackages_8_10) coq;
+  };
 
   computecpp-unwrapped = callPackage ../development/compilers/computecpp {};
   computecpp = wrapCCWith rec {
     cc = computecpp-unwrapped;
     extraPackages = [
-      libstdcxxHook
       llvmPackages.compiler-rt
     ];
     extraBuildCommands = ''
@@ -8231,12 +8526,12 @@ in
       mkdir -p "$rsrc/lib"
       ln -s "${cc}/lib" "$rsrc/include"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
-    '' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && cc ? gcc && !(stdenv.targetPlatform.useLLVM or false)) ''
-      echo "--gcc-toolchain=${cc.gcc}" >> $out/nix-support/cc-cflags
+    '' + stdenv.lib.optionalString (stdenv.targetPlatform.isLinux && !(stdenv.targetPlatform.useLLVM or false)) ''
+      echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags
     '';
   };
 
-  cryptol = haskell.lib.justStaticExecutables haskellPackages.cryptol;
+  copper = callPackage ../development/compilers/copper {};
 
   inherit (callPackages ../development/compilers/crystal {
     inherit (llvmPackages_10) stdenv clang llvm;
@@ -8298,8 +8593,12 @@ in
   gerbil-support = callPackage ../development/compilers/gerbil/gerbil-support.nix { };
   gerbilPackages-unstable = gerbil-support.gerbilPackages-unstable; # NB: don't recurseIntoAttrs for (unstable!) libraries
 
-  gccFun = callPackage (if stdenv.targetPlatform.isVc4 then ../development/compilers/gcc/6 else ../development/compilers/gcc/9);
-  gcc = if stdenv.targetPlatform.isVc4 then gcc6 else gcc9;
+  gccFun = callPackage (if (with stdenv.targetPlatform; isVc4 || libc == "relibc")
+    then ../development/compilers/gcc/6
+    else ../development/compilers/gcc/9);
+  gcc = if (with stdenv.targetPlatform; isVc4 || libc == "relibc")
+    then gcc6 else gcc9;
+
   gcc-unwrapped = gcc.cc;
 
   gccStdenv = if stdenv.cc.isGNU then stdenv else stdenv.override {
@@ -8360,14 +8659,6 @@ in
     stripped = false;
   }));
 
-  libstdcxxHook = makeSetupHook
-    { substitutions = {
-        gcc = gcc-unwrapped;
-        targetConfig = stdenv.targetPlatform.config;
-      };
-    }
-    ../development/compilers/gcc/libstdc++-hook.sh;
-
   crossLibcStdenv = overrideCC stdenv
     (if stdenv.hostPlatform.useLLVM or false
      then buildPackages.llvmPackages_8.lldClangNoLibc
@@ -8442,7 +8733,11 @@ in
     libcCross = if stdenv.targetPlatform != stdenv.buildPlatform then libcCross else null;
     threadsCross = if stdenv.targetPlatform != stdenv.buildPlatform then threadsCross else null;
 
-    isl = if !stdenv.isDarwin then isl_0_14 else null;
+    isl = if stdenv.isDarwin
+            then null
+          else if stdenv.targetPlatform.isRedox
+            then isl_0_17
+          else isl_0_14;
   }));
 
   gcc7 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/7 {
@@ -8666,7 +8961,7 @@ in
 
   # Please update doc/languages-frameworks/haskell.section.md, “Our
   # current default compiler is”, if you bump this:
-  haskellPackages = dontRecurseIntoAttrs haskell.packages.ghc883;
+  haskellPackages = dontRecurseIntoAttrs haskell.packages.ghc884;
 
   inherit (haskellPackages) ghc;
 
@@ -8758,13 +9053,6 @@ in
       inherit (darwin.apple_sdk.frameworks) Security;
     };
 
-  go_1_13 = callPackage ../development/compilers/go/1.13.nix ({
-    inherit (darwin.apple_sdk.frameworks) Security Foundation;
-  } // lib.optionalAttrs stdenv.isAarch64 {
-    stdenv = gcc8Stdenv;
-    buildPackages = buildPackages // { stdenv = gcc8Stdenv; };
-  });
-
   go_1_14 = callPackage ../development/compilers/go/1.14.nix ({
     inherit (darwin.apple_sdk.frameworks) Security Foundation;
   } // lib.optionalAttrs stdenv.isAarch64 {
@@ -8779,7 +9067,7 @@ in
     buildPackages = buildPackages // { stdenv = gcc8Stdenv; };
   });
 
-  go = go_1_14;
+  go = go_1_15;
 
   go-repo-root = callPackage ../development/tools/go-repo-root { };
 
@@ -8900,6 +9188,7 @@ in
   openjdk_headless = openjdk8_headless;
 
   jdk8 = openjdk8;
+  jdk8_headless = openjdk8_headless;
   jre8 = openjdk8.jre;
   jre8_headless = openjdk8_headless.jre;
 
@@ -8949,6 +9238,10 @@ in
         inherit installjdk pluginSupport;
       });
 
+  oraclejdk11 = callPackage ../development/compilers/oraclejdk/jdk11-linux.nix { };
+
+  oraclejdk14 = callPackage ../development/compilers/oraclejdk/jdk14-linux.nix { };
+
   jasmin = callPackage ../development/compilers/jasmin { };
 
   java-service-wrapper = callPackage ../tools/system/java-service-wrapper { };
@@ -8980,6 +9273,21 @@ in
 
   jwasm =  callPackage ../development/compilers/jwasm { };
 
+  knightos-kcc = callPackage ../development/tools/knightos/kcc { };
+
+  knightos-kimg = callPackage ../development/tools/knightos/kimg {
+    asciidoc = asciidoc-full;
+    imagemagick = imagemagick7Big;
+  };
+
+  knightos-kpack = callPackage ../development/tools/knightos/kpack { };
+
+  knightos-mkrom = callPackage ../development/tools/knightos/mkrom {
+    asciidoc = asciidoc-full;
+  };
+
+  knightos-scas = callPackage ../development/tools/knightos/scas { };
+
   kotlin = callPackage ../development/compilers/kotlin { };
 
   lazarus = callPackage ../development/compilers/fpc/lazarus.nix {
@@ -8999,6 +9307,7 @@ in
   lld_8 = llvmPackages_8.lld;
   lld_9 = llvmPackages_9.lld;
   lld_10 = llvmPackages_10.lld;
+  lld_11 = llvmPackages_11.lld;
 
   lldb = llvmPackages.lldb;
   lldb_5 = llvmPackages_5.lldb;
@@ -9007,10 +9316,12 @@ in
   lldb_8 = llvmPackages_8.lldb;
   lldb_9 = llvmPackages_9.lldb;
   lldb_10 = llvmPackages_10.lldb;
+  lldb_11 = llvmPackages_11.lldb;
 
   llvm = llvmPackages.llvm;
   llvm-manpages = llvmPackages.llvm-manpages;
 
+  llvm_11 = llvmPackages_11.llvm;
   llvm_10 = llvmPackages_10.llvm;
   llvm_9  = llvmPackages_9.llvm;
   llvm_8  = llvmPackages_8.llvm;
@@ -9020,58 +9331,54 @@ in
 
   llvmPackages = recurseIntoAttrs llvmPackages_7;
 
-  llvmPackages_5 = callPackage ../development/compilers/llvm/5 ({
+  llvmPackages_5 = callPackage ../development/compilers/llvm/5 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_5.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_5.libraries;
-  } // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
-    stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
-  });
+  };
 
-  llvmPackages_6 = callPackage ../development/compilers/llvm/6 ({
+  llvmPackages_6 = callPackage ../development/compilers/llvm/6 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_6.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_6.libraries;
-  } // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
-    # with gcc-7 on i686: undefined reference to `__divmoddi4'
-    # Failing tests with gcc8.
-    stdenv = overrideCC stdenv (if stdenv.hostPlatform.isi686 then gcc6 else gcc7);
-  });
+  };
 
-  llvmPackages_7 = callPackage ../development/compilers/llvm/7 ({
+  llvmPackages_7 = callPackage ../development/compilers/llvm/7 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_7.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_7.libraries;
-  } // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) {
-    stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
-  });
+  };
 
-  llvmPackages_8 = callPackage ../development/compilers/llvm/8 ({
+  llvmPackages_8 = callPackage ../development/compilers/llvm/8 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_8.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_8.libraries;
-  } // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) {
-    stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
-  });
+  };
 
-  llvmPackages_9 = callPackage ../development/compilers/llvm/9 ({
+  llvmPackages_9 = callPackage ../development/compilers/llvm/9 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_9.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_9.libraries;
-  } // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) {
-    stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
-  });
+  };
 
-  llvmPackages_10 = callPackage ../development/compilers/llvm/10 ({
+  llvmPackages_10 = 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 ({
+    inherit (stdenvAdapters) overrideCC;
+    buildLlvmTools = buildPackages.llvmPackages_11.tools;
+    targetLlvmLibraries = targetPackages.llvmPackages_11.libraries;
   } // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) {
     stdenv = gcc7Stdenv;
   });
 
   llvmPackages_latest = llvmPackages_10;
 
+  llvmPackages_rocm = callPackage ../development/compilers/llvm/rocm { };
+
   lorri = callPackage ../tools/misc/lorri {
     inherit (darwin.apple_sdk.frameworks) CoreServices Security;
   };
@@ -9131,11 +9438,15 @@ in
 
   mosml = callPackage ../development/compilers/mosml { };
 
-  mozart2 = callPackage ../development/compilers/mozart { };
+  mozart2 = callPackage ../development/compilers/mozart {
+    emacs = emacs-nox;
+  };
 
   mozart2-binary = callPackage ../development/compilers/mozart/binary.nix { };
 
   nim = callPackage ../development/compilers/nim { };
+  nim-unwrapped = nim.unwrapped;
+  nim-stdlib = nim.stdlib;
   nrpl = callPackage ../development/tools/nrpl { };
 
   neko = callPackage ../development/compilers/neko { };
@@ -9204,21 +9515,51 @@ in
 
   rgbds = callPackage ../development/compilers/rgbds { };
 
+  rocclr = callPackage ../development/libraries/rocclr {
+    inherit (llvmPackages_rocm) clang;
+  };
+
+  rocm-cmake = callPackage ../development/tools/build-managers/rocm-cmake { };
+
+  rocm-comgr = callPackage ../development/libraries/rocm-comgr {
+    inherit (llvmPackages_rocm) clang lld llvm;
+    device-libs = rocm-device-libs;
+  };
+
+  rocm-device-libs = callPackage ../development/libraries/rocm-device-libs {
+    inherit (llvmPackages_rocm) clang clang-unwrapped lld llvm;
+  };
+
+  rocm-opencl-icd = callPackage ../development/libraries/rocm-opencl-icd { };
+
+  rocm-opencl-runtime = callPackage ../development/libraries/rocm-opencl-runtime {
+    inherit (llvmPackages_rocm) clang clang-unwrapped lld llvm;
+  };
+
+  rocm-runtime = callPackage ../development/libraries/rocm-runtime {
+    inherit (llvmPackages_rocm) clang-unwrapped llvm;
+  };
+
+  # Python >= 3.8 still gives a bunch of warnings.
+  rocm-smi = python37.pkgs.callPackage ../tools/system/rocm-smi { };
+
+  rocm-thunk = callPackage ../development/libraries/rocm-thunk { };
+
   rtags = callPackage ../development/tools/rtags {
     inherit (darwin) apple_sdk;
   };
 
-  rust_1_42 = callPackage ../development/compilers/rust/1_42.nix {
+  rust_1_44 = callPackage ../development/compilers/rust/1_44.nix {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
   };
-  rust_1_43 = callPackage ../development/compilers/rust/1_43.nix {
+  rust_1_45 = callPackage ../development/compilers/rust/1_45.nix {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
   };
-  rust = rust_1_43;
+  rust = rust_1_45;
 
-  rustPackages_1_42 = rust_1_42.packages.stable;
-  rustPackages_1_43 = rust_1_43.packages.stable;
-  rustPackages = rustPackages_1_43;
+  rustPackages_1_44 = rust_1_44.packages.stable;
+  rustPackages_1_45 = rust_1_45.packages.stable;
+  rustPackages = rustPackages_1_45;
 
   inherit (rustPackages) cargo clippy rustc rustPlatform;
   inherit (rust) makeRustPlatform;
@@ -9245,6 +9586,9 @@ in
   cargo-audit = callPackage ../tools/package-management/cargo-audit {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
+  cargo-c = callPackage ../development/tools/rust/cargo-c {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
   cargo-deb = callPackage ../tools/package-management/cargo-deb {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -9258,20 +9602,29 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
   cargo-tarpaulin = callPackage ../development/tools/analysis/cargo-tarpaulin { };
-  cargo-tree = callPackage ../tools/package-management/cargo-tree { };
-  cargo-update = callPackage ../tools/package-management/cargo-update { };
+  cargo-update = callPackage ../tools/package-management/cargo-update {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   cargo-asm = callPackage ../development/tools/rust/cargo-asm {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
   cargo-bloat = callPackage ../development/tools/rust/cargo-bloat { };
+  cargo-cache = callPackage ../development/tools/rust/cargo-cache {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
   cargo-crev = callPackage ../development/tools/rust/cargo-crev {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
   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-flash = callPackage ../development/tools/rust/cargo-flash { };
+  cargo-fund = callPackage ../development/tools/rust/cargo-fund {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
   cargo-fuzz = callPackage ../development/tools/rust/cargo-fuzz { };
   cargo-geiger = callPackage ../development/tools/rust/cargo-geiger {
     inherit (darwin) libiconv;
@@ -9282,7 +9635,7 @@ in
   };
   cargo-insta = callPackage ../development/tools/rust/cargo-insta { };
   cargo-make = callPackage ../development/tools/rust/cargo-make {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
   cargo-raze = callPackage ../development/tools/rust/cargo-raze {
     inherit (darwin.apple_sdk.frameworks) Security;
@@ -9435,6 +9788,10 @@ in
       # provide the default choice, avoiding infinite recursion.
       bintools ? if stdenv.targetPlatform.isDarwin then darwin.binutils else binutils
     , libc ? bintools.libc
+    , # libc++ from the default LLVM version is bound at the top level, but we
+      # want the C++ library to be explicitly chosen by the caller, and null by
+      # default.
+      libcxx ? null
     , extraPackages ? stdenv.lib.optional (cc.isGNU or false && stdenv.targetPlatform.isMinGW) threadsCross
     , ...
     } @ extraArgs:
@@ -9447,7 +9804,7 @@ in
     isGNU = cc.isGNU or false;
     isClang = cc.isClang or false;
 
-    inherit cc bintools libc extraPackages zlib;
+    inherit cc bintools libc libcxx extraPackages zlib;
   } // extraArgs; in self);
 
   wrapCC = cc: wrapCCWith {
@@ -9488,6 +9845,7 @@ in
   ### DEVELOPMENT / INTERPRETERS
 
   acl2 = callPackage ../development/interpreters/acl2 { };
+  acl2-minimal = callPackage ../development/interpreters/acl2 { certifyBooks = false; };
 
   angelscript = callPackage ../development/interpreters/angelscript {};
 
@@ -9518,6 +9876,8 @@ in
 
   dhall-json = haskell.lib.justStaticExecutables haskellPackages.dhall-json;
 
+  dhall-lsp-server = haskell.lib.justStaticExecutables haskellPackages.dhall-lsp-server;
+
   dhall-text = haskell.lib.justStaticExecutables haskellPackages.dhall-text;
 
   dhallPackages = callPackages ./dhall-packages.nix { };
@@ -9531,7 +9891,7 @@ in
   beam = callPackage ./beam-packages.nix { };
 
   inherit (beam.interpreters)
-    erlang erlangR18 erlangR19 erlangR20 erlangR21 erlangR22
+    erlang erlangR23 erlangR22 erlangR21 erlangR20 erlangR19 erlangR18
     erlang_odbc erlang_javac erlang_odbc_javac erlang_nox erlang_basho_R16B02
     elixir elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7 elixir_1_6;
 
@@ -9582,7 +9942,7 @@ in
   kanif = callPackage ../applications/networking/cluster/kanif { };
 
   lumo = callPackage ../development/interpreters/clojurescript/lumo {
-    nodejs = nodejs-13_x;
+    nodejs = nodejs_latest;
   };
 
   lxappearance = callPackage ../desktops/lxde/core/lxappearance { };
@@ -9648,13 +10008,6 @@ in
 
   me_cleaner = pythonPackages.callPackage ../tools/misc/me_cleaner { };
 
-  mesos = callPackage ../applications/networking/cluster/mesos {
-    sasl = cyrus_sasl;
-    inherit (pythonPackages) python boto setuptools wrapPython;
-    pythonProtobuf = pythonPackages.protobuf.override { protobuf = protobuf3_6; };
-    perf = linuxPackages.perf;
-  };
-
   mesos-dns = callPackage ../servers/mesos-dns { };
 
   metamath = callPackage ../development/interpreters/metamath { };
@@ -9687,18 +10040,16 @@ in
   php = php74;
 
   phpPackages = php74Packages;
-  php72Packages = recurseIntoAttrs php72.packages;
   php73Packages = recurseIntoAttrs php73.packages;
   php74Packages = recurseIntoAttrs php74.packages;
 
   phpExtensions = php74Extensions;
-  php72Extensions = recurseIntoAttrs php72.extensions;
   php73Extensions = recurseIntoAttrs php73.extensions;
   php74Extensions = recurseIntoAttrs php74.extensions;
 
   inherit (callPackage ../development/interpreters/php {
     stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
-  }) php74 php73 php72;
+  }) php74 php73;
 
   picoc = callPackage ../development/interpreters/picoc {};
 
@@ -9725,15 +10076,43 @@ in
 
   # Python interpreter that is build with all modules, including tkinter.
   # These are for compatibility and should not be used inside Nixpkgs.
-  pythonFull = python.override{x11Support=true;};
-  python2Full = python2.override{x11Support=true;};
-  python27Full = python27.override{x11Support=true;};
-  python3Full = python3.override{x11Support=true;};
-  python35Full = python35.override{x11Support=true;};
-  python36Full = python36.override{x11Support=true;};
-  python37Full = python37.override{x11Support=true;};
-  python38Full = python38.override{x11Support=true;};
-  python39Full = python39.override{x11Support=true;};
+  pythonFull = python.override {
+    self = pythonFull;
+    x11Support = true;
+  };
+  python2Full = python2.override {
+    self = python2Full;
+    x11Support = true;
+  };
+  python27Full = python27.override {
+    self = python27Full;
+    x11Support = true;
+  };
+  python3Full = python3.override {
+    self = python3Full;
+    bluezSupport = true;
+    x11Support = true;
+  };
+  python36Full = python36.override {
+    self = python36Full;
+    bluezSupport = true;
+    x11Support = true;
+  };
+  python37Full = python37.override {
+    self = python37Full;
+    bluezSupport = true;
+    x11Support = true;
+  };
+  python38Full = python38.override {
+    self = python38Full;
+    bluezSupport = true;
+    x11Support = true;
+  };
+  python39Full = python39.override {
+    self = python39Full;
+    bluezSupport = true;
+    x11Support = true;
+  };
 
   # pythonPackages further below, but assigned here because they need to be in sync
   pythonPackages = python.pkgs;
@@ -9741,11 +10120,10 @@ in
   python3Packages = python3.pkgs;
 
   pythonInterpreters = callPackage ./../development/interpreters/python {};
-  inherit (pythonInterpreters) python27 python35 python36 python37 python38 python39 python3Minimal pypy27 pypy36;
+  inherit (pythonInterpreters) python27 python36 python37 python38 python39 python3Minimal pypy27 pypy36;
 
   # Python package sets.
   python27Packages = lib.hiPrioSet (recurseIntoAttrs python27.pkgs);
-  python35Packages = python35.pkgs;
   python36Packages = python36.pkgs;
   python37Packages = recurseIntoAttrs python37.pkgs;
   python38Packages = recurseIntoAttrs python38.pkgs;
@@ -9881,6 +10259,8 @@ in
 
   spark = callPackage ../applications/networking/cluster/spark { };
 
+  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;
@@ -10018,9 +10398,9 @@ in
 
   inherit (callPackage ../tools/admin/ansible { })
     ansible
-    ansible_2_7
     ansible_2_8
-    ansible_2_9;
+    ansible_2_9
+    ansible_2_10;
 
   ansible-lint = with python3.pkgs; toPythonApplication ansible-lint;
 
@@ -10065,7 +10445,7 @@ in
 
   inherit (callPackages ../development/tools/electron { })
     electron_3 electron_4 electron_5 electron_6 electron_7 electron_8 electron_9;
-  electron = electron_4;
+  electron = electron_9;
 
   autobuild = callPackage ../development/tools/misc/autobuild { };
 
@@ -10101,7 +10481,7 @@ in
   bazel_0_26 = callPackage ../development/tools/build-managers/bazel/bazel_0_26 {
     inherit (darwin) cctools;
     inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
-    buildJdk = jdk8;
+    buildJdk = jdk8_headless;
     buildJdkName = "jdk8";
     runJdk = jdk11_headless;
     stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
@@ -10110,7 +10490,7 @@ in
   bazel_0_29 = callPackage ../development/tools/build-managers/bazel/bazel_0_29 {
     inherit (darwin) cctools;
     inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
-    buildJdk = jdk8;
+    buildJdk = jdk8_headless;
     buildJdkName = "jdk8";
     runJdk = jdk11_headless;
     stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
@@ -10120,7 +10500,7 @@ in
   bazel_1 = callPackage ../development/tools/build-managers/bazel/bazel_1 {
     inherit (darwin) cctools;
     inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
-    buildJdk = jdk8;
+    buildJdk = jdk8_headless;
     buildJdkName = "jdk8";
     runJdk = jdk11_headless;
     stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
@@ -10130,7 +10510,7 @@ in
   bazel_3 = callPackage ../development/tools/build-managers/bazel/bazel_3 {
     inherit (darwin) cctools;
     inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
-    buildJdk = jdk8;
+    buildJdk = jdk8_headless;
     buildJdkName = "jdk8";
     runJdk = jdk11_headless;
     stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
@@ -10148,8 +10528,12 @@ in
 
   bazel-gazelle = callPackage ../development/tools/bazel-gazelle { };
 
+  bazel-kazel = callPackage ../development/tools/bazel-kazel { };
+
   bazelisk = callPackage ../development/tools/bazelisk { };
 
+  rebazel = callPackage ../development/tools/rebazel { };
+
   buildBazelPackage = callPackage ../build-support/build-bazel-package { };
 
   bear = callPackage ../development/tools/build-managers/bear { };
@@ -10185,6 +10569,8 @@ in
 
   black = with python3Packages; toPythonApplication black;
 
+  black-macchiato = with python3Packages; toPythonApplication black-macchiato;
+
   blackmagic = callPackage ../development/tools/misc/blackmagic { };
 
   bloaty = callPackage ../development/tools/bloaty { };
@@ -10217,6 +10603,8 @@ in
 
   cbrowser = callPackage ../development/tools/misc/cbrowser { };
 
+  cc-tool = callPackage ../development/tools/misc/cc-tool { };
+
   ccache = callPackage ../development/tools/misc/ccache { };
 
   # Wrapper that works as gcc or g++
@@ -10309,7 +10697,9 @@ in
 
   cmake-format = python3Packages.callPackage ../development/tools/cmake-format { };
 
-  cmake-language-server = python3Packages.callPackage ../development/tools/cmake-language-server { };
+  cmake-language-server = python3Packages.callPackage ../development/tools/cmake-language-server {
+    inherit (pkgs) cmake;
+  };
 
   # Does not actually depend on Qt 5
   inherit (kdeFrameworks) extra-cmake-modules kapidox kdoctools;
@@ -10358,6 +10748,17 @@ in
     stdenvNoLibs = gccStdenvNoLibs; # cannot be built with clang it seems
   };
 
+  # This is for e.g. LLVM libraries on linux.
+  gccForLibs =
+    # with gcc-7: undefined reference to `__divmoddi4'
+    if stdenv.targetPlatform.isi686
+      then gcc6.cc
+    else if stdenv.targetPlatform == stdenv.hostPlatform && targetPackages.stdenv.cc.isGNU
+	  # Can only do this is in the native case, otherwise we might get infinite
+	  # recursion if `targetPackages.stdenv.cc.cc` itself uses `gccForLibs`.
+      then targetPackages.stdenv.cc.cc
+    else gcc.cc;
+
   libstdcxx5 = callPackage ../development/libraries/gcc/libstdc++/5.nix { };
 
   libsigrok = callPackage ../development/tools/libsigrok { };
@@ -10460,6 +10861,8 @@ in
 
   eggdbus = callPackage ../development/tools/misc/eggdbus { };
 
+  effitask = callPackage ../applications/misc/effitask { };
+
   egypt = callPackage ../development/tools/analysis/egypt { };
 
   elfinfo = callPackage ../development/tools/misc/elfinfo { };
@@ -10468,6 +10871,8 @@ in
 
   elfutils = callPackage ../development/tools/misc/elfutils { };
 
+  eliot-tree = callPackage ../development/tools/eliot-tree { };
+
   emma = callPackage ../development/tools/analysis/emma { };
 
   epm = callPackage ../development/tools/misc/epm { };
@@ -10512,6 +10917,8 @@ in
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
 
+  fujprog = callPackage ../development/tools/misc/fujprog { };
+
   funnelweb = callPackage ../development/tools/literate-programming/funnelweb { };
 
   gede = libsForQt5.callPackage ../development/tools/misc/gede { };
@@ -10562,8 +10969,8 @@ in
   gnum4 = callPackage ../development/tools/misc/gnum4 { };
   m4 = gnum4;
 
+  gnumake = callPackage ../development/tools/build-managers/gnumake { };
   gnumake42 = callPackage ../development/tools/build-managers/gnumake/4.2 { };
-  gnumake = gnumake42;
 
   gnustep = recurseIntoAttrs (callPackage ../desktops/gnustep {});
 
@@ -10586,6 +10993,7 @@ in
   gradle_4_10 = res.gradleGen.gradle_4_10;
   gradle_4 = gradle_4_10;
   gradle_5 = res.gradleGen.gradle_5_6;
+  gradle_6 = res.gradleGen.gradle_6_6;
 
   gperf = callPackage ../development/tools/misc/gperf { };
   # 3.1 changed some parameters from int to size_t, leading to mismatches.
@@ -10644,7 +11052,7 @@ in
   };
 
   include-what-you-use = callPackage ../development/tools/analysis/include-what-you-use {
-    llvmPackages = llvmPackages_8;
+    llvmPackages = llvmPackages_10;
   };
 
   indent = callPackage ../development/tools/misc/indent { };
@@ -10703,6 +11111,8 @@ in
 
   kubeprompt = callPackage ../development/tools/kubeprompt { };
 
+  kubespy = callPackage ../applications/networking/cluster/kubespy { };
+
   kubicorn = callPackage ../development/tools/kubicorn {  };
 
   kubie = callPackage ../development/tools/kubie {
@@ -10717,6 +11127,8 @@ in
 
   lazygit = callPackage ../development/tools/lazygit { };
 
+  laminar = callPackage ../development/tools/continuous-integration/laminar { };
+
   Literate = callPackage ../development/tools/literate-programming/Literate {};
 
   lcov = callPackage ../development/tools/analysis/lcov { };
@@ -10781,6 +11193,8 @@ in
 
   mkdocs = callPackage ../development/tools/documentation/mkdocs { };
 
+  mockgen = callPackage ../development/tools/mockgen { };
+
   modd = callPackage ../development/tools/modd { };
 
   msgpack-tools = callPackage ../development/tools/msgpack-tools { };
@@ -10960,6 +11374,8 @@ in
 
   redo-apenwarr = callPackage ../development/tools/build-managers/redo-apenwarr { };
 
+  redo-c = callPackage ../development/tools/build-managers/redo-c { };
+
   redo-sh = callPackage ../development/tools/build-managers/redo-sh { };
 
   reno = callPackage ../development/tools/reno { };
@@ -10968,6 +11384,8 @@ in
 
   remake = callPackage ../development/tools/build-managers/remake { };
 
+  replacement = callPackage ../development/tools/misc/replacement { };
+
   retdec = callPackage ../development/tools/analysis/retdec {
     stdenv = gcc8Stdenv;
   };
@@ -11094,6 +11512,12 @@ in
 
   strace = callPackage ../development/tools/misc/strace { };
 
+  summon = callPackage ../development/tools/summon { };
+
+  svlint = callPackage ../development/tools/analysis/svlint { };
+
+  svls = callPackage ../development/tools/misc/svls { };
+
   swarm = callPackage ../development/tools/analysis/swarm { };
 
   swiftformat = callPackage ../development/tools/swiftformat { };
@@ -11126,11 +11550,15 @@ in
   terraform-lsp = callPackage ../development/tools/misc/terraform-lsp { };
   terraform-ls = callPackage ../development/tools/misc/terraform-ls { };
 
+  terraformer = callPackage ../development/tools/misc/terraformer { };
+
   texinfo413 = callPackage ../development/tools/misc/texinfo/4.13a.nix { };
   texinfo4 = texinfo413;
   texinfo5 = callPackage ../development/tools/misc/texinfo/5.2.nix { };
-  texinfo6 = callPackage ../development/tools/misc/texinfo/6.5.nix { };
-  texinfo = texinfo6;
+  texinfo6_5 = callPackage ../development/tools/misc/texinfo/6.5.nix { };
+  texinfo6 = callPackage ../development/tools/misc/texinfo/6.7.nix { };
+  # Temporarily use older version on Darwin until it works.
+  texinfo = if stdenv.isDarwin then texinfo6_5 else texinfo6;
   texinfoInteractive = appendToName "interactive" (
     texinfo.override { interactive = true; }
   );
@@ -11243,6 +11671,8 @@ in
 
   xxdiff = libsForQt5.callPackage ../development/tools/misc/xxdiff { };
 
+  xxe-pe = callPackage ../applications/editors/xxe-pe { };
+
   xxdiff-tip = xxdiff;
 
   yaml2json = callPackage ../development/tools/yaml2json { };
@@ -11250,12 +11680,15 @@ in
   ycmd = callPackage ../development/tools/misc/ycmd {
     inherit (darwin.apple_sdk.frameworks) Cocoa;
     python = python3;
+    # currently broken
+    rustracerd = null;
   };
 
   yodl = callPackage ../development/tools/misc/yodl { };
 
   yq = callPackage ../development/tools/yq {
-    inherit (python3Packages) buildPythonApplication fetchPypi pyyaml xmltodict;
+    inherit (python3Packages)
+    buildPythonApplication fetchPypi argcomplete pyyaml xmltodict pytest coverage flake8 toml;
   };
 
   yq-go = callPackage ../development/tools/yq-go { };
@@ -11302,6 +11735,8 @@ in
 
   amdvlk = callPackage ../development/libraries/amdvlk {};
 
+  aml = callPackage ../development/libraries/aml { };
+
   amrnb = callPackage ../development/libraries/amrnb { };
 
   amrwb = callPackage ../development/libraries/amrwb { };
@@ -11378,6 +11813,8 @@ in
     inherit (darwin.apple_sdk.frameworks) CoreAudio AudioToolbox;
   };
 
+  ayatana-ido = callPackage ../development/libraries/ayatana-ido { };
+
   babl = callPackage ../development/libraries/babl { };
 
   backward-cpp = callPackage ../development/libraries/backward-cpp { };
@@ -11495,7 +11932,13 @@ in
     ogre = ogre1_10;
   };
 
-  certbot = python3Packages.callPackage ../tools/admin/certbot { };
+  certbot = python3.pkgs.toPythonApplication python3.pkgs.certbot;
+
+  certbot-full = certbot.withPlugins (cp: with cp; [
+    certbot-dns-cloudflare
+    certbot-dns-rfc2136
+    certbot-dns-route53
+  ]);
 
   caf = callPackage ../development/libraries/caf {};
 
@@ -11682,6 +12125,8 @@ in
 
   dotconf = callPackage ../development/libraries/dotconf { };
 
+  draco = callPackage ../development/libraries/draco { };
+
   # Multi-arch "drivers" which we want to build for i686.
   driversi686Linux = recurseIntoAttrs {
     inherit (pkgsi686Linux)
@@ -11854,12 +12299,8 @@ in
 
   cfitsio = callPackage ../development/libraries/cfitsio { };
 
-  fontconfig_210 = callPackage ../development/libraries/fontconfig/2.10.nix { };
-
   fontconfig = callPackage ../development/libraries/fontconfig { };
 
-  fontconfig-penultimate = callPackage ../data/fonts/fontconfig-penultimate {};
-
   folly = callPackage ../development/libraries/folly { };
 
   folks = callPackage ../development/libraries/folks { };
@@ -11947,6 +12388,7 @@ in
   gf2x = callPackage ../development/libraries/gf2x {};
 
   gd = callPackage ../development/libraries/gd {
+    automake = automake115x;
     libtiff = null;
     libXpm = null;
   };
@@ -12048,6 +12490,7 @@ in
     else if name == "libSystem" then targetPackages.darwin.xcode
     else if name == "nblibc" then targetPackages.netbsdCross.libc
     else if name == "wasilibc" then targetPackages.wasilibc or wasilibc
+    else if name == "relibc" then targetPackages.relibc or relibc
     else if stdenv.targetPlatform.isGhcjs then null
     else throw "Unknown libc ${name}";
 
@@ -12062,6 +12505,8 @@ in
     stdenv = crossLibcStdenv;
   };
 
+  relibc = callPackage ../development/libraries/relibc { };
+
   # Only supported on Linux, using glibc
   glibcLocales = if stdenv.hostPlatform.libc == "glibc" then callPackage ../development/libraries/glibc/locales.nix { } else null;
 
@@ -12130,9 +12575,7 @@ in
 
   gperftools = callPackage ../development/libraries/gperftools { };
 
-  grab-site = callPackage ../tools/backup/grab-site {
-    python3Packages = python37Packages;
-  };
+  grab-site = callPackage ../tools/backup/grab-site { };
 
   grib-api = callPackage ../development/libraries/grib-api { };
 
@@ -12149,24 +12592,6 @@ in
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   });
 
-  gstreamer = callPackage ../development/libraries/gstreamer/legacy/gstreamer { };
-
-  gst-plugins-base = callPackage ../development/libraries/gstreamer/legacy/gst-plugins-base {
-    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
-  };
-
-  gst-plugins-good = callPackage ../development/libraries/gstreamer/legacy/gst-plugins-good {};
-
-  gst-plugins-bad = callPackage ../development/libraries/gstreamer/legacy/gst-plugins-bad {};
-
-  gst-plugins-ugly = callPackage ../development/libraries/gstreamer/legacy/gst-plugins-ugly {};
-
-  gst-python = callPackage ../development/libraries/gstreamer/legacy/gst-python {};
-
-  gstreamermm = callPackage ../development/libraries/gstreamer/legacy/gstreamermm { };
-
-  gnonlin = callPackage ../development/libraries/gstreamer/legacy/gnonlin {};
-
   gusb = callPackage ../development/libraries/gusb { };
 
   qt-mobility = callPackage ../development/libraries/qt-mobility {};
@@ -12382,6 +12807,8 @@ in
 
   haxor-news = callPackage ../applications/misc/haxor-news { };
 
+  hdt = callPackage ../misc/hdt {};
+
   herqq = libsForQt5.callPackage ../development/libraries/herqq { };
 
   heyefi = haskellPackages.heyefi;
@@ -12484,7 +12911,7 @@ in
       stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
     }));
 
-  icu = icu64;
+  icu = icu67;
 
   id3lib = callPackage ../development/libraries/id3lib { };
 
@@ -12543,6 +12970,8 @@ in
 
   isocodes = callPackage ../development/libraries/iso-codes { };
 
+  iso-flags = callPackage ../data/icons/iso-flags { };
+
   ispc = callPackage ../development/compilers/ispc {
     stdenv = llvmPackages_10.stdenv;
     llvmPackages = llvmPackages_10;
@@ -12550,7 +12979,9 @@ in
 
   isso = callPackage ../servers/isso { };
 
-  itk4 = callPackage ../development/libraries/itk/4.x.nix { stdenv = gcc8Stdenv; };
+  itk4 = callPackage ../development/libraries/itk/4.x.nix {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
 
   itk = callPackage ../development/libraries/itk {
     inherit (darwin.apple_sdk.frameworks) Cocoa;
@@ -12703,6 +13134,10 @@ in
   libappindicator-gtk3 = libappindicator.override { gtkVersion = "3"; };
   libappindicator = callPackage ../development/libraries/libappindicator { };
 
+  libayatana-appindicator-gtk2 = libayatana-appindicator.override { gtkVersion = "2"; };
+  libayatana-appindicator-gtk3 = libayatana-appindicator.override { gtkVersion = "3"; };
+  libayatana-appindicator = callPackage ../development/libraries/libayatana-appindicator { };
+
   libarchive = callPackage ../development/libraries/libarchive { };
 
   libasr = callPackage ../development/libraries/libasr { };
@@ -12720,7 +13155,7 @@ in
   libaudclient = callPackage ../development/libraries/libaudclient { };
 
   libav = libav_11; # branch 11 is API-compatible with branch 10
-  libav_all = callPackage ../development/libraries/libav { };
+  libav_all = callPackages ../development/libraries/libav { };
   inherit (libav_all) libav_0_8 libav_11 libav_12;
 
   libavc1394 = callPackage ../development/libraries/libavc1394 { };
@@ -12888,7 +13323,9 @@ in
     libGL = null;
   };
 
-  libdigidoc = callPackage ../development/libraries/libdigidoc { };
+  libdigidoc = callPackage ../development/libraries/libdigidoc {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   libdigidocpp = callPackage ../development/libraries/libdigidocpp { };
 
@@ -12953,7 +13390,9 @@ in
 
   libfido2 = callPackage ../development/libraries/libfido2 { };
 
-  libfilezilla = callPackage ../development/libraries/libfilezilla { };
+  libfilezilla = callPackage ../development/libraries/libfilezilla {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
 
   libfishsound = callPackage ../development/libraries/libfishsound { };
 
@@ -13121,6 +13560,8 @@ in
 
   libhttpseverywhere = callPackage ../development/libraries/libhttpseverywhere { };
 
+  libhugetlbfs = callPackage ../development/libraries/libhugetlbfs { };
+
   libHX = callPackage ../development/libraries/libHX { };
 
   libibmad = callPackage ../development/libraries/libibmad { };
@@ -13139,6 +13580,10 @@ in
   libindicator-gtk3 = libindicator.override { gtkVersion = "3"; };
   libindicator = callPackage ../development/libraries/libindicator { };
 
+  libayatana-indicator-gtk2 = libayatana-indicator.override { gtkVersion = "2"; };
+  libayatana-indicator-gtk3 = libayatana-indicator.override { gtkVersion = "3"; };
+  libayatana-indicator = callPackage ../development/libraries/libayatana-indicator { };
+
   libinotify-kqueue = callPackage ../development/libraries/libinotify-kqueue { };
 
   libiodbc = callPackage ../development/libraries/libiodbc {
@@ -13202,6 +13647,9 @@ in
   libplist = callPackage ../development/libraries/libplist { };
 
   libre = callPackage ../development/libraries/libre {};
+
+  libredwg = callPackage ../development/libraries/libredwg {};
+
   librem = callPackage ../development/libraries/librem {};
 
   librelp = callPackage ../development/libraries/librelp { };
@@ -13473,7 +13921,9 @@ in
 
   libpqxx = callPackage ../development/libraries/libpqxx { };
 
-  libprom = callPackage ../development/libraries/libprom { };
+  inherit (callPackages ../development/libraries/prometheus-client-c {
+    stdenv = gccStdenv; # Required for darwin
+  }) libprom libpromhttp;
 
   libproxy = callPackage ../development/libraries/libproxy {
     inherit (darwin.apple_sdk.frameworks) SystemConfiguration CoreFoundation JavaScriptCore;
@@ -13553,6 +14003,8 @@ in
 
   libtheora = callPackage ../development/libraries/libtheora { };
 
+  libthreadar = callPackage ../development/libraries/libthreadar { };
+
   libtiff = callPackage ../development/libraries/libtiff { };
 
   libtiger = callPackage ../development/libraries/libtiger { };
@@ -13643,7 +14095,7 @@ in
 
   libva = callPackage ../development/libraries/libva { };
   libva-minimal = libva.override { minimal = true; };
-  libva-utils = callPackage ../development/libraries/libva-utils { };
+  libva-utils = callPackage ../development/libraries/libva/utils.nix { };
 
   libva1 = callPackage ../development/libraries/libva/1.0.0.nix { };
   libva1-minimal = libva1.override { minimal = true; };
@@ -13747,6 +14199,8 @@ in
 
   libyamlcpp = callPackage ../development/libraries/libyaml-cpp { };
 
+  rang = callPackage ../development/libraries/rang { };
+
   libyamlcpp_0_3 = pkgs.libyamlcpp.overrideAttrs (oldAttrs: {
     src = pkgs.fetchurl {
       url = "https://github.com/jbeder/yaml-cpp/archive/release-0.3.0.tar.gz";
@@ -13857,13 +14311,7 @@ in
     llvmPackages = llvmPackages_9;
     inherit (darwin.apple_sdk.frameworks) OpenGL;
     inherit (darwin.apple_sdk.libs) Xplugin;
-  }
-    # Temporary fix for .drivers that avoids causing lots of rebuilds; see #91145
-     // { drivers = (mesa.overrideAttrs (a: {
-            nativeBuildInputs = [ patchelf_0_9 ] ++ a.nativeBuildInputs or [];
-          })).drivers;
-        }
-    ;
+  };
 
   mesa_glu =  callPackage ../development/libraries/mesa-glu {
     inherit (darwin.apple_sdk.frameworks) ApplicationServices;
@@ -13939,6 +14387,8 @@ in
     inherit (darwin.stubs) setfile;
   };
 
+  muparserx = callPackage ../development/libraries/muparserx { };
+
   mutest = callPackage ../development/libraries/mutest { };
 
   mygpoclient = pythonPackages.mygpoclient;
@@ -14010,6 +14460,7 @@ in
   };
 
   nss = lowPrio (callPackage ../development/libraries/nss { });
+  nss_3_44 = lowPrio (callPackage ../development/libraries/nss/3.44.nix { });
   nssTools = nss.tools;
 
   nss_wrapper = callPackage ../development/libraries/nss_wrapper { };
@@ -14114,6 +14565,8 @@ in
 
   opencolorio = callPackage ../development/libraries/opencolorio { };
 
+  opendmarc = callPackage ../development/libraries/opendmarc { };
+
   ois = callPackage ../development/libraries/ois {};
 
   openh264 = callPackage ../development/libraries/openh264 { };
@@ -14275,8 +14728,9 @@ in
     python = python37;
   };
 
-  protobuf = protobuf3_8;
+  protobuf = protobuf3_13;
 
+  protobuf3_13 = callPackage ../development/libraries/protobuf/3.13.nix { };
   protobuf3_12 = callPackage ../development/libraries/protobuf/3.12.nix { };
   protobuf3_11 = callPackage ../development/libraries/protobuf/3.11.nix { };
   protobuf3_10 = callPackage ../development/libraries/protobuf/3.10.nix { };
@@ -14376,9 +14830,26 @@ in
 
   libsForQt512 = recurseIntoAttrs (lib.makeScope qt512.newScope mkLibsForQt5);
 
-  # TODO bump to 5.12 on darwin once it's not broken
-  qt5 = qt512;
-  libsForQt5 = libsForQt512;
+  qt514 = recurseIntoAttrs (makeOverridable
+    (import ../development/libraries/qt-5/5.14) {
+      inherit newScope;
+      inherit stdenv fetchurl fetchpatch fetchFromGitHub makeSetupHook makeWrapper;
+      inherit bison;
+      inherit cups;
+      inherit dconf;
+      inherit harfbuzz;
+      inherit libGL;
+      inherit perl;
+      inherit gtk3;
+      inherit (gst_all_1) gstreamer gst-plugins-base;
+      inherit llvmPackages_5;
+    });
+
+  libsForQt514 = recurseIntoAttrs (lib.makeScope qt514.newScope mkLibsForQt5);
+
+  # TODO bump to 5.14 on darwin once it's not broken; see #95199
+  qt5 =        if stdenv.hostPlatform.isDarwin then qt512 else qt514;
+  libsForQt5 = if stdenv.hostPlatform.isDarwin then libsForQt512 else libsForQt514;
 
   qt5ct = libsForQt5.callPackage ../tools/misc/qt5ct { };
 
@@ -14389,15 +14860,16 @@ in
     inherit (kdeFrameworks.override { libsForQt5 = self; })
       attica baloo bluez-qt kactivities kactivities-stats
       karchive kauth kbookmarks kcmutils kcalendarcore kcodecs kcompletion kconfig
-      kconfigwidgets kcoreaddons kcrash kdbusaddons kdeclarative kdelibs4support
+      kconfigwidgets kcoreaddons kcrash kdav kdbusaddons kdeclarative kdelibs4support
       kdesignerplugin kdnssd kemoticons kfilemetadata kglobalaccel kguiaddons
       khtml ki18n kiconthemes kidletime kimageformats kio kitemmodels kitemviews
       kjobwidgets kjs kjsembed kmediaplayer knewstuff knotifications
       knotifyconfig kpackage kparts kpeople kplotting kpty kross krunner
       kservice ktexteditor ktextwidgets kunitconversion kwallet kwayland
       kwidgetsaddons kwindowsystem kxmlgui kxmlrpcclient modemmanager-qt
-      networkmanager-qt plasma-framework prison qqc2-desktop-style solid sonnet syntax-highlighting
-      syndication threadweaver kirigami2 kholidays kpurpose kcontacts;
+      networkmanager-qt plasma-framework prison qqc2-desktop-style solid sonnet
+      syntax-highlighting syndication threadweaver kirigami2 kholidays kpurpose
+      kcontacts kquickcharts;
 
     ### KDE PLASMA 5
 
@@ -14425,6 +14897,8 @@ in
 
     kdiagram = callPackage ../development/libraries/kdiagram { };
 
+    kdsoap = callPackage ../development/libraries/kdsoap { };
+
     kproperty = callPackage ../development/libraries/kproperty { };
 
     kreport = callPackage ../development/libraries/kreport { };
@@ -14598,6 +15072,8 @@ in
 
   randomx = callPackage ../development/libraries/randomx { };
 
+  redkite = callPackage ../development/libraries/redkite { };
+
   resolv_wrapper = callPackage ../development/libraries/resolv_wrapper { };
 
   rhino = callPackage ../development/libraries/java/rhino {
@@ -14607,6 +15083,8 @@ in
 
   rlog = callPackage ../development/libraries/rlog { };
 
+  rlottie = callPackage ../development/libraries/rlottie { };
+
   rocksdb = callPackage ../development/libraries/rocksdb { };
 
   rocksdb_lite = rocksdb.override { enableLite = true; };
@@ -14623,7 +15101,13 @@ in
 
   rubberband = callPackage ../development/libraries/rubberband { };
 
+  /* 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
+     evaluation errors, I have no other idea but to comment it out entirely.
+
   sad = callPackage ../applications/science/logic/sad { };
+   */
 
   safefile = callPackage ../development/libraries/safefile {};
 
@@ -14708,7 +15192,6 @@ in
 
   simpleitk = callPackage ../development/libraries/simpleitk {
     lua = lua51Packages.lua;
-    stdenv = gcc8Stdenv;
   };
 
   sfml = callPackage ../development/libraries/sfml {
@@ -14903,8 +15386,7 @@ in
   stlport = callPackage ../development/libraries/stlport { };
 
   streamlink = callPackage ../applications/video/streamlink { pythonPackages = python3Packages; };
-
-  strigi = callPackage ../development/libraries/strigi { clucene_core = clucene_core_2; };
+  streamlink-twitch-gui-bin = callPackage ../applications/video/streamlink-twitch-gui/bin.nix {};
 
   subdl = callPackage ../applications/video/subdl { };
 
@@ -15121,7 +15603,9 @@ in
 
   vcg = callPackage ../development/libraries/vcg { };
 
-  vid-stab = callPackage ../development/libraries/vid-stab { };
+  vid-stab = callPackage ../development/libraries/vid-stab {
+    inherit (llvmPackages) openmp;
+  };
 
   vigra = callPackage ../development/libraries/vigra { };
 
@@ -15156,6 +15640,14 @@ in
                                           CoreText IOSurface ImageIO OpenGL GLUT;
   };
 
+  vtk_9 = libsForQt5.callPackage ../development/libraries/vtk/9.x.nix {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.libs) xpc;
+    inherit (darwin.apple_sdk.frameworks) Cocoa CoreServices DiskArbitration
+                                          IOKit CFNetwork Security ApplicationServices
+                                          CoreText IOSurface ImageIO OpenGL GLUT;
+  };
+
   vulkan-headers = callPackage ../development/libraries/vulkan-headers { };
   vulkan-loader = callPackage ../development/libraries/vulkan-loader { };
   vulkan-tools = callPackage ../tools/graphics/vulkan-tools { };
@@ -15209,7 +15701,6 @@ in
   webkitgtk = callPackage ../development/libraries/webkitgtk {
     harfbuzz = harfbuzzFull;
     inherit (gst_all_1) gst-plugins-base gst-plugins-bad;
-    stdenv = clangStdenv; # TODO: https://github.com/NixOS/nixpkgs/issues/36947
   };
 
   websocketpp = callPackage ../development/libraries/websocket++ { };
@@ -15225,24 +15716,22 @@ in
     wt3
     wt4;
 
+  wxformbuilder = callPackage ../development/tools/wxformbuilder { };
+
   wxGTK = wxGTK28;
 
   wxGTK30 = wxGTK30-gtk2;
   wxGTK31 = wxGTK31-gtk2;
 
-  wxGTK28 = callPackage ../development/libraries/wxwidgets/2.8 {
-    inherit (gnome2) GConf;
-  };
+  wxGTK28 = callPackage ../development/libraries/wxwidgets/2.8 { };
 
   wxGTK29 = callPackage ../development/libraries/wxwidgets/2.9 {
-    inherit (gnome2) GConf;
     inherit (darwin.stubs) setfile;
     inherit (darwin.apple_sdk.frameworks) AGL Carbon Cocoa Kernel QuickTime;
   };
 
   wxGTK30-gtk2 = callPackage ../development/libraries/wxwidgets/3.0 {
     withGtk2 = true;
-    inherit (gnome2) GConf;
     inherit (darwin.stubs) setfile;
     inherit (darwin.apple_sdk.frameworks) AGL Carbon Cocoa Kernel QTKit;
   };
@@ -15255,7 +15744,6 @@ in
 
   wxGTK31-gtk2 = callPackage ../development/libraries/wxwidgets/3.1 {
     withGtk2 = true;
-    inherit (gnome2) GConf;
     inherit (darwin.stubs) setfile;
     inherit (darwin.apple_sdk.frameworks) AGL Carbon Cocoa Kernel QTKit;
   };
@@ -15368,6 +15856,8 @@ in
 
   yubikey-personalization-gui = libsForQt5.callPackage ../tools/misc/yubikey-personalization-gui { };
 
+  yubikey-agent = callPackage ../tools/security/yubikey-agent { };
+
   zchunk = callPackage ../development/libraries/zchunk { };
 
   zeitgeist = callPackage ../development/libraries/zeitgeist { };
@@ -15378,7 +15868,6 @@ in
 
   zlog = callPackage ../development/libraries/zlog { };
 
-  zeromq3 = callPackage ../development/libraries/zeromq/3.x.nix {};
   zeromq4 = callPackage ../development/libraries/zeromq/4.x.nix {};
   zeromq = zeromq4;
 
@@ -15458,8 +15947,6 @@ in
 
   junixsocket = callPackage ../development/libraries/java/junixsocket { };
 
-  jzmq = callPackage ../development/libraries/java/jzmq { };
-
   lombok = callPackage ../development/libraries/java/lombok { };
 
   lucene = callPackage ../development/libraries/java/lucene { };
@@ -15493,9 +15980,6 @@ in
 
   ### DEVELOPMENT / GO MODULES
 
-  buildGo113Package = callPackage ../development/go-packages/generic {
-    go = buildPackages.go_1_13;
-  };
   buildGo114Package = callPackage ../development/go-packages/generic {
     go = buildPackages.go_1_14;
   };
@@ -15503,11 +15987,8 @@ in
     go = buildPackages.go_1_15;
   };
 
-  buildGoPackage = buildGo114Package;
+  buildGoPackage = buildGo115Package;
 
-  buildGo113Module = callPackage ../development/go-modules/generic {
-    go = buildPackages.go_1_13;
-  };
   buildGo114Module = callPackage ../development/go-modules/generic {
     go = buildPackages.go_1_14;
   };
@@ -15515,7 +15996,7 @@ in
     go = buildPackages.go_1_15;
   };
 
-  buildGoModule = buildGo114Module;
+  buildGoModule = buildGo115Module;
 
   go2nix = callPackage ../development/tools/go2nix { };
 
@@ -15567,14 +16048,14 @@ in
   ### DEVELOPMENT / PERL MODULES
 
   perlInterpreters = callPackages ../development/interpreters/perl {};
-  inherit (perlInterpreters) perl528 perl530 perldevel;
+  inherit (perlInterpreters) perl530 perl532 perldevel;
 
-  perl528Packages = recurseIntoAttrs perl528.pkgs;
   perl530Packages = recurseIntoAttrs perl530.pkgs;
+  perl532Packages = recurseIntoAttrs perl532.pkgs;
   perldevelPackages = perldevel.pkgs;
 
-  perl = perl530;
-  perlPackages = perl530Packages;
+  perl = perl532;
+  perlPackages = perl532Packages;
 
   ack = perlPackages.ack;
 
@@ -15720,7 +16201,7 @@ in
 
   clickhouse = callPackage ../servers/clickhouse {
     # clickhouse doesn't build on llvm8.
-    inherit (llvmPackages_7) clang-unwrapped lld lldClang llvm;
+    inherit (llvmPackages_9) clang-unwrapped lld lldClang llvm;
   };
 
   couchdb = callPackage ../servers/http/couchdb {
@@ -15831,9 +16312,13 @@ in
 
   gofish = callPackage ../servers/gopher/gofish { };
 
-  grafana = callPackage ../servers/monitoring/grafana { };
+  grafana = callPackage ../servers/monitoring/grafana {
+    buildGoModule = buildGo114Module;
+  };
 
-  grafana-loki = callPackage ../servers/monitoring/loki { };
+  grafana-loki = callPackage ../servers/monitoring/loki {
+    buildGoPackage = buildGo114Package;
+  };
 
   grafana_reporter = callPackage ../servers/monitoring/grafana-reporter { };
 
@@ -15845,17 +16330,9 @@ in
 
   hashi-ui = callPackage ../servers/hashi-ui {};
 
-  /* This package duplicates a lot of functionality from haskellPackages
-     instead of using the packages we maintain there. Now, a recent update to
-     haskellPackages causes these tools to fail evaluation, and I have been
-     unable to mark them as "broken" in a way that ofBorg bot recognizes. Since
-     I don't want to merge code into master that generates evaluation errors, I
-     have no other idea but to comment them out entirely.
+  hasura-graphql-engine = haskellPackages.graphql-engine;
 
-  inherit (callPackage ../servers/hasura { })
-    hasura-cli
-    hasura-graphql-engine;
-   */
+  hasura-cli = callPackage ../servers/hasura/cli.nix { };
 
   heapster = callPackage ../servers/monitoring/heapster { };
 
@@ -15865,9 +16342,7 @@ in
 
   hiawatha = callPackage ../servers/http/hiawatha {};
 
-  home-assistant = callPackage ../servers/home-assistant {
-    python3 = python37;
-  };
+  home-assistant = callPackage ../servers/home-assistant { };
 
   home-assistant-cli = callPackage ../servers/home-assistant/cli.nix { };
 
@@ -15894,6 +16369,12 @@ in
 
   jetty = callPackage ../servers/http/jetty { };
 
+  jicofo = callPackage ../servers/jicofo { };
+
+  jitsi-meet = callPackage ../servers/web-apps/jitsi-meet { };
+
+  jitsi-videobridge = callPackage ../servers/jitsi-videobridge { };
+
   kapow = callPackage ../servers/kapow { };
 
   keycloak = callPackage ../servers/keycloak { };
@@ -15927,8 +16408,6 @@ in
 
   mediatomb = callPackage ../servers/mediatomb { };
 
-  meguca = callPackage ../servers/meguca { };
-
   memcached = callPackage ../servers/memcached {};
 
   meteor = callPackage ../servers/meteor { };
@@ -15970,6 +16449,8 @@ in
 
   moodle = callPackage ../servers/web-apps/moodle { };
 
+  moodle-utils = callPackage ../servers/web-apps/moodle/moodle-utils.nix { };
+
   morty = callPackage ../servers/web-apps/morty { };
 
   mullvad-vpn = callPackage ../applications/networking/mullvad-vpn { };
@@ -15986,6 +16467,10 @@ in
 
   unit = callPackage ../servers/http/unit { };
 
+  ncdns = callPackage ../servers/dns/ncdns {
+    buildGoPackage = buildGo114Package;
+  };
+
   nginx = nginxStable;
 
   nginxStable = callPackage ../servers/http/nginx/stable.nix {
@@ -16039,6 +16524,8 @@ in
 
   osrm-backend = callPackage ../servers/osrm-backend { };
 
+  oven-media-engine = callPackage ../servers/misc/oven-media-engine { };
+
   p910nd = callPackage ../servers/p910nd { };
 
   petidomo = callPackage ../servers/mail/petidomo { };
@@ -16151,6 +16638,13 @@ in
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
   };
 
+  mongodb-4_2 = callPackage ../servers/nosql/mongodb/v4_2.nix {
+    sasl = cyrus_sasl;
+    boost = boost169;
+    inherit (darwin) cctools;
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
   nginx-sso = callPackage ../servers/nginx-sso { };
 
   percona-server56 = callPackage ../servers/sql/percona/5.6.x.nix { };
@@ -16259,6 +16753,8 @@ in
     asciidoc = asciidoc-full;
   };
 
+  timescale-prometheus = callPackage ../servers/monitoring/timescale-prometheus { };
+
   timescaledb-parallel-copy = callPackage ../development/tools/database/timescaledb-parallel-copy { };
 
   timescaledb-tune = callPackage ../development/tools/database/timescaledb-tune { };
@@ -16277,7 +16773,10 @@ 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 = buildGo114Package;
+    go = go_1_14;
+  };
   prometheus-alertmanager = callPackage ../servers/monitoring/prometheus/alertmanager.nix { };
   prometheus-apcupsd-exporter = callPackage ../servers/monitoring/prometheus/apcupsd-exporter.nix { };
   prometheus-aws-s3-exporter = callPackage ../servers/monitoring/prometheus/aws-s3-exporter.nix { };
@@ -16298,6 +16797,7 @@ in
   prometheus-mesos-exporter = callPackage ../servers/monitoring/prometheus/mesos-exporter.nix { };
   prometheus-mikrotik-exporter = callPackage ../servers/monitoring/prometheus/mikrotik-exporter.nix { };
   prometheus-minio-exporter = callPackage ../servers/monitoring/prometheus/minio-exporter { };
+  prometheus-modemmanager-exporter = callPackage ../servers/monitoring/prometheus/modemmanager-exporter.nix { };
   prometheus-mysqld-exporter = callPackage ../servers/monitoring/prometheus/mysqld-exporter.nix { };
   prometheus-nextcloud-exporter = callPackage ../servers/monitoring/prometheus/nextcloud-exporter.nix { };
   prometheus-nginx-exporter = callPackage ../servers/monitoring/prometheus/nginx-exporter.nix { };
@@ -16372,6 +16872,7 @@ in
   restya-board = callPackage ../servers/web-apps/restya-board { };
 
   rethinkdb = callPackage ../servers/nosql/rethinkdb {
+    stdenv = clangStdenv;
     libtool = darwin.cctools;
   };
 
@@ -16411,7 +16912,7 @@ in
     enableMDNS = true;
     enableDomainController = true;
     enableRegedit = true;
-    enableCephFS = true;
+    enableCephFS = !pkgs.stdenv.hostPlatform.isAarch64;
     enableGlusterFS = true;
   });
 
@@ -16500,6 +17001,8 @@ in
   tt-rss-plugin-auth-ldap = callPackage ../servers/tt-rss/plugin-auth-ldap { };
   tt-rss-theme-feedly = callPackage ../servers/tt-rss/theme-feedly { };
 
+  rss-bridge = callPackage ../servers/web-apps/rss-bridge { };
+
   searx = callPackage ../servers/web-apps/searx { };
 
   selfoss = callPackage ../servers/web-apps/selfoss { };
@@ -16521,6 +17024,8 @@ in
     unifiStable;
   unifi = unifiStable;
 
+  urserver = callPackage ../servers/urserver { };
+
   victoriametrics = callPackage ../servers/nosql/victoriametrics { };
 
   virtlyst = libsForQt5.callPackage ../servers/web-apps/virtlyst { };
@@ -16596,11 +17101,11 @@ in
     server = server-pgsql;
   };
 
-  zabbix44 = recurseIntoAttrs (zabbixFor "v44");
+  zabbix50 = recurseIntoAttrs (zabbixFor "v50");
   zabbix40 = dontRecurseIntoAttrs (zabbixFor "v40");
   zabbix30 = dontRecurseIntoAttrs (zabbixFor "v30");
 
-  zabbix = zabbix44;
+  zabbix = zabbix50;
 
   zipkin = callPackage ../servers/monitoring/zipkin { };
 
@@ -16711,6 +17216,8 @@ in
 
   cifs-utils = callPackage ../os-specific/linux/cifs-utils { };
 
+  cm-rgb = python3Packages.callPackage ../tools/system/cm-rgb { };
+
   cpustat = callPackage ../os-specific/linux/cpustat { };
 
   cockroachdb = callPackage ../servers/sql/cockroachdb { };
@@ -16734,6 +17241,8 @@ in
 
   cryptsetup = callPackage ../os-specific/linux/cryptsetup { };
 
+  cramfsprogs = callPackage ../os-specific/linux/cramfsprogs { };
+
   cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
 
   crda = callPackage ../os-specific/linux/crda { };
@@ -16757,14 +17266,14 @@ in
 
   directvnc = callPackage ../os-specific/linux/directvnc { };
 
-  dmraid = callPackage ../os-specific/linux/dmraid {
-    lvm2 = lvm2.override {enable_dmeventd = true;};
-  };
+  dmraid = callPackage ../os-specific/linux/dmraid { lvm2 = lvm2_dmeventd; };
 
   drbd = callPackage ../os-specific/linux/drbd { };
 
   dropwatch = callPackage ../os-specific/linux/dropwatch { };
 
+  dsd = callPackage ../applications/radio/dsd { };
+
   dstat = callPackage ../os-specific/linux/dstat { };
 
   # unstable until the first 1.x release
@@ -16859,6 +17368,8 @@ in
 
   pcm = callPackage ../os-specific/linux/pcm { };
 
+  ifmetric = callPackage ../os-specific/linux/ifmetric {};
+
   ima-evm-utils = callPackage ../os-specific/linux/ima-evm-utils {
     openssl = openssl_1_0_2;
   };
@@ -16890,6 +17401,8 @@ in
 
   irqbalance = callPackage ../os-specific/linux/irqbalance { };
 
+  itpp = callPackage ../development/libraries/science/math/itpp { };
+
   iw = callPackage ../os-specific/linux/iw { };
 
   iwd = callPackage ../os-specific/linux/iwd { };
@@ -17063,7 +17576,15 @@ in
     ];
   };
 
-  linux_5_6 = callPackage ../os-specific/linux/kernel/linux-5.6.nix {
+  linux-rt_5_4 = callPackage ../os-specific/linux/kernel/linux-rt-5.4.nix {
+    kernelPatches = [
+      kernelPatches.bridge_stp_helper
+      kernelPatches.request_key_helper
+      kernelPatches.export_kernel_fpu_functions."5.3"
+    ];
+  };
+
+  linux-rt_5_6 = callPackage ../os-specific/linux/kernel/linux-rt-5.6.nix {
     kernelPatches = [
       kernelPatches.bridge_stp_helper
       kernelPatches.request_key_helper
@@ -17079,6 +17600,14 @@ in
     ];
   };
 
+  linux_5_8 = callPackage ../os-specific/linux/kernel/linux-5.8.nix {
+    kernelPatches = [
+      kernelPatches.bridge_stp_helper
+      kernelPatches.request_key_helper
+      kernelPatches.export_kernel_fpu_functions."5.3"
+    ];
+  };
+
   linux_testing = callPackage ../os-specific/linux/kernel/linux-testing.nix {
     kernelPatches = [
       kernelPatches.bridge_stp_helper
@@ -17101,6 +17630,14 @@ in
     ];
   };
 
+  linux_zen = callPackage ../os-specific/linux/kernel/linux-zen.nix {
+    kernelPatches = [
+      kernelPatches.bridge_stp_helper
+      kernelPatches.request_key_helper
+      kernelPatches.export_kernel_fpu_functions."5.3"
+    ];
+  };
+
   /* 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
@@ -17145,8 +17682,6 @@ in
 
     ddcci-driver = callPackage ../os-specific/linux/ddcci { };
 
-    deepin-anything = callPackage ../os-specific/linux/deepin-anything { };
-
     digimend = callPackage ../os-specific/linux/digimend { };
 
     dpdk = callPackage ../os-specific/linux/dpdk { };
@@ -17213,6 +17748,8 @@ in
 
     rtl88x2bu = callPackage ../os-specific/linux/rtl88x2bu { };
 
+    rtl8821cu = callPackage ../os-specific/linux/rtl8821cu { };
+
     rtlwifi_new = callPackage ../os-specific/linux/rtlwifi_new { };
 
     openafs = callPackage ../servers/openafs/1.6/module.nix { };
@@ -17237,6 +17774,8 @@ in
 
     netatop = callPackage ../os-specific/linux/netatop { };
 
+    oci-seccomp-bpf-hook = if stdenv.lib.versionAtLeast kernel.version "5.4" then callPackage ../os-specific/linux/oci-seccomp-bpf-hook { } else null;
+
     perf = callPackage ../os-specific/linux/kernel/perf.nix { };
 
     phc-intel = if stdenv.lib.versionAtLeast kernel.version "4.10" then callPackage ../os-specific/linux/phc-intel { } else null;
@@ -17274,6 +17813,8 @@ in
 
     x86_energy_perf_policy = callPackage ../os-specific/linux/x86_energy_perf_policy { };
 
+    xpadneo = callPackage ../os-specific/linux/xpadneo { };
+
     zenpower = callPackage ../os-specific/linux/zenpower { };
 
     inherit (callPackages ../os-specific/linux/zfs {
@@ -17292,24 +17833,32 @@ in
 
   # 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_7;
+  linuxPackages_latest = linuxPackages_5_8;
   linux_latest = linuxPackages_latest.kernel;
 
-  # Build the kernel modules for the some of the kernels.
+  # Realtime kernel packages.
+  linuxPackages-rt_5_4 = linuxPackagesFor pkgs.linux-rt_5_4;
+  linuxPackages-rt = linuxPackages-rt_5_4;
+  linux-rt = linuxPackages-rt.kernel;
+  linuxPackages-rt_5_6 = linuxPackagesFor pkgs.linux-rt_5_6;
+  linuxPackages-rt_latest = linuxPackages-rt_5_6;
+  linux-rt_latest = linuxPackages-rt_latest.kernel;
+
   linuxPackages_mptcp = linuxPackagesFor pkgs.linux_mptcp;
   linuxPackages_rpi1 = linuxPackagesFor pkgs.linux_rpi1;
   linuxPackages_rpi2 = linuxPackagesFor pkgs.linux_rpi2;
   linuxPackages_rpi3 = linuxPackagesFor pkgs.linux_rpi3;
   linuxPackages_rpi4 = linuxPackagesFor pkgs.linux_rpi4;
+  # Build kernel modules for some of the kernels.
   linuxPackages_4_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_4);
   linuxPackages_4_9 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_9);
   linuxPackages_4_14 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_14);
   linuxPackages_4_19 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_19);
   linuxPackages_5_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_4);
-  linuxPackages_5_6 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_6);
   linuxPackages_5_7 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_7);
+  linuxPackages_5_8 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_8);
 
-  # When adding to this list:
+  # When adding to the list above:
   # - Update linuxPackages_latest to the latest version
   # - Update the rev in ../os-specific/linux/kernel/linux-libre.nix to the latest one.
 
@@ -17345,7 +17894,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_6; # TODO: Update to linux_latest
+      linux_latest_for_hardened = pkgs.linux_5_7;
       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 {
@@ -17380,6 +17929,9 @@ in
   linuxPackages_latest-libre = recurseIntoAttrs (linuxPackagesFor linux_latest-libre);
   linux_latest-libre = linux-libre.override { linux = linux_latest; };
 
+  # zen-kernel
+  linuxPackages_zen = recurseIntoAttrs (linuxPackagesFor pkgs.linux_zen);
+
   # A function to build a manually-configured kernel
   linuxManualConfig = makeOverridable (callPackage ../os-specific/linux/kernel/manual-config.nix {});
 
@@ -17429,6 +17981,14 @@ in
 
   librealsense = callPackage ../development/libraries/librealsense { };
 
+  librealsenseWithCuda = callPackage ../development/libraries/librealsense {
+    cudaSupport = true;
+  };
+
+  librealsenseWithoutCuda = callPackage ../development/libraries/librealsense {
+    cudaSupport = false;
+  };
+
   libsass = callPackage ../development/libraries/libsass { };
 
   libsepol = callPackage ../os-specific/linux/libsepol { };
@@ -17461,7 +18021,18 @@ in
 
   lsscsi = callPackage ../os-specific/linux/lsscsi { };
 
-  lvm2 = callPackage ../os-specific/linux/lvm2 { };
+  lvm2 = callPackage ../os-specific/linux/lvm2 {
+    # udev is the same package as systemd which depends on cryptsetup
+    # which depends on lvm2 again.  But we only need the libudev part
+    # which does not depend on cryptsetup.
+    udev = udev.override { cryptsetup = null; };
+  };
+  lvm2_dmeventd = callPackage ../os-specific/linux/lvm2 {
+    enableDmeventd = true;
+    enableCmdlib = true;
+  };
+
+  mbelib = callPackage ../development/libraries/audio/mbelib { };
 
   mbpfan = callPackage ../os-specific/linux/mbpfan { };
 
@@ -17524,6 +18095,8 @@ in
 
   iferr = callPackage ../development/tools/iferr { };
 
+  ginkgo = callPackage ../development/tools/ginkgo { };
+
   go-bindata = callPackage ../development/tools/go-bindata { };
 
   go-bindata-assetfs = callPackage ../development/tools/go-bindata-assetfs { };
@@ -17548,6 +18121,8 @@ in
 
   gotags = callPackage ../development/tools/gotags { };
 
+  go-task = callPackage ../development/tools/go-task { };
+
   golint = callPackage ../development/tools/golint { };
 
   golangci-lint = callPackage ../development/tools/golangci-lint { };
@@ -17570,6 +18145,8 @@ in
 
   gotop = callPackage ../tools/system/gotop { };
 
+  go-migrate = callPackage ../development/tools/go-migrate { };
+
   gomodifytags = callPackage ../development/tools/gomodifytags { };
 
   go-langserver = callPackage ../development/tools/go-langserver { };
@@ -17620,6 +18197,8 @@ in
 
   pam_mount = callPackage ../os-specific/linux/pam_mount { };
 
+  pam_p11 = callPackage ../os-specific/linux/pam_p11 { };
+
   pam_pgsql = callPackage ../os-specific/linux/pam_pgsql { };
 
   pam_ssh_agent_auth = callPackage ../os-specific/linux/pam_ssh_agent_auth { };
@@ -17701,8 +18280,6 @@ in
 
   regionset = callPackage ../os-specific/linux/regionset { };
 
-  rfkill = callPackage ../os-specific/linux/rfkill { };
-
   rfkill_udev = callPackage ../os-specific/linux/rfkill/udev.nix { };
 
   riscv-pk = callPackage ../misc/riscv-pk { };
@@ -17731,7 +18308,7 @@ in
 
   sdparm = callPackage ../os-specific/linux/sdparm { };
 
-  sdrangel = libsForQt5.callPackage ../applications/radio/sdrangel {  };
+  sdrangel = libsForQt512.callPackage ../applications/radio/sdrangel {  };
 
   sepolgen = callPackage ../os-specific/linux/sepolgen { };
 
@@ -17773,20 +18350,26 @@ in
   sysstat = callPackage ../os-specific/linux/sysstat { };
 
   systemd = callPackage ../os-specific/linux/systemd {
-    utillinux = utillinuxMinimal; # break the cyclic dependency
+    # break some cyclic dependencies
+    utillinux = utillinuxMinimal;
+    # provide a super minimal gnupg used for systemd-machined
+    gnupg = callPackage ../tools/security/gnupg/22.nix {
+      enableMinimal = true;
+      guiSupport = false;
+      pcsclite = null;
+      sqlite = null;
+      pinentry = null;
+      adns = null;
+      gnutls = null;
+      libusb1 = null;
+      openldap = null;
+      readline = null;
+      zlib = null;
+      bzip2 = null;
+    };
   };
-  udev = systemd; # TODO: move to aliases.nix
-
-  # standalone cryptsetup generator for systemd
-  systemd-cryptsetup-generator = callPackage ../os-specific/linux/systemd/cryptsetup-generator.nix { };
 
-  # In nixos, you can set systemd.package = pkgs.systemd_with_lvm2 to get
-  # LVM2 working in systemd.
-  systemd_with_lvm2 = pkgs.appendToName "with-lvm2" (pkgs.lib.overrideDerivation pkgs.systemd (p: {
-      postInstall = p.postInstall + ''
-        cp "${pkgs.lvm2}/lib/systemd/system-generators/"* $out/lib/systemd/system-generators
-      '';
-  }));
+  udev = systemd; # TODO: move to aliases.nix
 
   systemd-wait = callPackage ../os-specific/linux/systemd-wait { };
 
@@ -17832,6 +18415,7 @@ in
     ubootPine64
     ubootPine64LTS
     ubootPinebook
+    ubootPinebookPro
     ubootQemuAarch64
     ubootQemuArm
     ubootRaspberryPi
@@ -17929,6 +18513,8 @@ in
 
   ### DATA
 
+  _3270font = callPackage ../data/fonts/3270font { };
+
   adapta-backgrounds = callPackage ../data/misc/adapta-backgrounds { };
 
   adapta-gtk-theme = callPackage ../data/themes/adapta { };
@@ -17945,10 +18531,16 @@ in
 
   albatross = callPackage ../data/themes/albatross { };
 
+  alegreya = callPackage ../data/fonts/alegreya { };
+
+  alegreya-sans = callPackage ../data/fonts/alegreya-sans { };
+
   amber-theme = callPackage ../data/themes/amber { };
 
   amiri = callPackage ../data/fonts/amiri { };
 
+  anarchism = callPackage ../data/documentation/anarchism { };
+
   andagii = callPackage ../data/fonts/andagii { };
 
   andika = callPackage ../data/fonts/andika { };
@@ -17986,6 +18578,8 @@ in
 
   bakoma_ttf = callPackage ../data/fonts/bakoma-ttf { };
 
+  barlow = callPackage ../data/fonts/barlow { };
+
   bgnet = callPackage ../data/documentation/bgnet { };
 
   bibata-cursors = callPackage ../data/icons/bibata-cursors { };
@@ -18012,7 +18606,7 @@ in
 
   cascadia-code = callPackage ../data/fonts/cascadia-code { };
 
-  cde-gtk-theme = callPackage ../data/themes/cde-motif-theme { };
+  cde-gtk-theme = callPackage ../data/themes/cdetheme { };
 
   charis-sil = callPackage ../data/fonts/charis-sil { };
 
@@ -18115,6 +18709,14 @@ in
 
   eb-garamond = callPackage ../data/fonts/eb-garamond { };
 
+  edukai = callPackage ../data/fonts/edukai { };
+
+  eduli = callPackage ../data/fonts/eduli { };
+
+  moeli = eduli;
+
+  edusong = callPackage ../data/fonts/edusong { };
+
   elliptic_curves = callPackage ../data/misc/elliptic_curves { };
 
   equilux-theme = callPackage ../data/themes/equilux-theme { };
@@ -18228,10 +18830,7 @@ in
 
   inriafonts = callPackage ../data/fonts/inriafonts { };
 
-
-  iosevka = callPackage ../data/fonts/iosevka {
-    nodejs = nodejs-10_x;
-  };
+  iosevka = callPackage ../data/fonts/iosevka {};
   iosevka-bin = callPackage ../data/fonts/iosevka/bin.nix {};
 
   ipafont = callPackage ../data/fonts/ipafont {};
@@ -18257,6 +18856,8 @@ in
 
   kochi-substitute-naga10 = callPackage ../data/fonts/kochi-substitute-naga10 {};
 
+  kopia = callPackage ../tools/backup/kopia { };
+
   lato = callPackage ../data/fonts/lato {};
 
   league-of-moveable-type = callPackage ../data/fonts/league-of-moveable-type {};
@@ -18311,6 +18912,8 @@ in
 
   luculent = callPackage ../data/fonts/luculent { };
 
+  luna-icons = callPackage ../data/icons/luna-icons { };
+
   maia-icon-theme = callPackage ../data/icons/maia-icon-theme { };
 
   mailcap = callPackage ../data/misc/mailcap { };
@@ -18321,6 +18924,10 @@ in
 
   manrope = callPackage ../data/fonts/manrope { };
 
+  marwaita = callPackage ../data/themes/marwaita { };
+
+  marwaita-manjaro = callPackage ../data/themes/marwaita-manjaro { };
+
   matcha-gtk-theme = callPackage ../data/themes/matcha { };
 
   materia-theme = callPackage ../data/themes/materia-theme { };
@@ -18519,6 +19126,8 @@ in
 
   sierra-gtk-theme = callPackage ../data/themes/sierra { };
 
+  snap7 = callPackage ../development/libraries/snap7 {};
+
   snowblind = callPackage ../data/themes/snowblind { };
 
   solarc-gtk-theme = callPackage ../data/themes/solarc { };
@@ -18700,6 +19309,8 @@ in
 
   vegeta = callPackage ../tools/networking/vegeta { };
 
+  venta = callPackage ../data/themes/venta { };
+
   victor-mono = callPackage ../data/fonts/victor-mono { };
 
   vimix-gtk-themes = callPackage ../data/themes/vimix {};
@@ -18807,6 +19418,8 @@ in
   amarok = libsForQt5.callPackage ../applications/audio/amarok { };
   amarok-kf5 = amarok; # for compatibility
 
+  amfora = callPackage ../applications/networking/browsers/amfora { };
+
   AMB-plugins = callPackage ../applications/audio/AMB-plugins { };
 
   ams-lv2 = callPackage ../applications/audio/ams-lv2 { };
@@ -18814,7 +19427,9 @@ in
   amsn = callPackage ../applications/networking/instant-messengers/amsn { };
 
   androidStudioPackages = recurseIntoAttrs
-    (callPackage ../applications/editors/android-studio { });
+    (callPackage ../applications/editors/android-studio {
+      buildFHSUserEnv = buildFHSUserEnvBubblewrap;
+    });
   android-studio = androidStudioPackages.stable;
 
   animbar = callPackage ../applications/graphics/animbar { };
@@ -18879,8 +19494,8 @@ in
 
   aucatctl = callPackage ../applications/audio/aucatctl { };
 
-  audacious = callPackage ../applications/audio/audacious { };
-  audaciousQt5 = libsForQt5.callPackage ../applications/audio/audacious/qt-5.nix { };
+  audacious = libsForQt5.callPackage ../applications/audio/audacious { };
+  audaciousQt5 = audacious;
 
   audacity = callPackage ../applications/audio/audacity { };
 
@@ -18898,6 +19513,8 @@ in
 
   azpainter = callPackage ../applications/graphics/azpainter { };
 
+  bambootracker = libsForQt5.callPackage ../applications/audio/bambootracker { };
+
   cadence =  qt5.callPackage ../applications/audio/cadence { };
 
   cheesecutter = callPackage ../applications/audio/cheesecutter { };
@@ -18970,6 +19587,8 @@ in
 
   bb =  callPackage ../applications/misc/bb { };
 
+  bchoppr = callPackage ../applications/audio/bchoppr { };
+
   berry = callPackage ../applications/window-managers/berry { };
 
   bevelbar = callPackage ../applications/window-managers/bevelbar { };
@@ -19016,6 +19635,8 @@ in
 
   bgpq3 = callPackage ../tools/networking/bgpq3 { };
 
+  bgpq4 = callPackage ../tools/networking/bgpq4 { };
+
   blackbox = callPackage ../applications/version-management/blackbox { };
 
   bleachbit = callPackage ../applications/misc/bleachbit { };
@@ -19044,6 +19665,8 @@ in
 
   brave = callPackage ../applications/networking/browsers/brave { };
 
+  break-time = callPackage ../applications/misc/break-time { };
+
   breezy = with python3Packages; toPythonApplication breezy;
 
   notmuch-bower = callPackage ../applications/networking/mailreaders/notmuch-bower { };
@@ -19056,6 +19679,8 @@ in
 
   bjumblr = callPackage ../applications/audio/bjumblr { };
 
+  bschaffl = callPackage ../applications/audio/bschaffl { };
+
   bsequencer = callPackage ../applications/audio/bsequencer { };
 
   bslizr = callPackage ../applications/audio/bslizr { };
@@ -19080,7 +19705,11 @@ in
 
   calculix = callPackage ../applications/science/math/calculix {};
 
-  calibre = libsForQt5.callPackage ../applications/misc/calibre { };
+  calibre-py2 = libsForQt5.callPackage ../applications/misc/calibre { pythonPackages = python2Packages; };
+
+  calibre-py3 = libsForQt5.callPackage ../applications/misc/calibre { pythonPackages = python3Packages; };
+
+  calibre = calibre-py3;
 
   calligra = libsForQt5.callPackage ../applications/office/calligra {
     inherit (kdeApplications) akonadi-calendar akonadi-contacts;
@@ -19102,7 +19731,7 @@ in
 
   catimg = callPackage ../tools/misc/catimg { };
 
-  catt = python3Packages.callPackage ../applications/video/catt { };
+  catt = callPackage ../applications/video/catt { };
 
   cava = callPackage ../applications/audio/cava { };
 
@@ -19141,8 +19770,6 @@ in
 
   chromium = callPackage ../applications/networking/browsers/chromium (config.chromium or {});
 
-  chronos = callPackage ../applications/networking/cluster/chronos { };
-
   chromiumBeta = lowPrio (chromium.override { channel = "beta"; });
 
   chromiumDev = lowPrio (chromium.override { channel = "dev"; });
@@ -19180,6 +19807,8 @@ in
 
   cloud-print-connector = callPackage ../servers/cloud-print-connector { };
 
+  cloud-hypervisor = callPackage ../applications/virtualization/cloud-hypervisor { };
+
   clp = callPackage ../applications/science/math/clp { };
 
   cmatrix = callPackage ../applications/misc/cmatrix { };
@@ -19233,11 +19862,15 @@ in
 
   convchain = callPackage ../tools/graphics/convchain {};
 
+  cordless = callPackage ../applications/networking/instant-messengers/cordless { };
+
   coursera-dl = callPackage ../applications/misc/coursera-dl {};
 
   coyim = callPackage ../applications/networking/instant-messengers/coyim {};
 
-  cq-editor = libsForQt5.callPackage ../applications/graphics/cq-editor { };
+  cq-editor = libsForQt5.callPackage ../applications/graphics/cq-editor {
+    python3Packages = python37Packages;
+  };
 
   cpp_ethereum = callPackage ../applications/misc/cpp-ethereum { };
 
@@ -19317,7 +19950,7 @@ in
     inherit (pkgs.gnome2) libart_lgpl libgnomeui;
   };
 
-  direwolf = callPackage ../applications/misc/direwolf { };
+  direwolf = callPackage ../applications/radio/direwolf { };
 
   dirt = callPackage ../applications/audio/dirt {};
 
@@ -19376,8 +20009,6 @@ in
 
   dr14_tmeter = callPackage ../applications/audio/dr14_tmeter { };
 
-  draftsight = callPackage ../applications/graphics/draftsight { };
-
   dragonfly-reverb = callPackage ../applications/audio/dragonfly-reverb { };
 
   drawing = callPackage ../applications/graphics/drawing { };
@@ -19390,9 +20021,7 @@ in
     buildServerGui = false;
   };
 
-  droopy = callPackage ../applications/networking/droopy {
-    inherit (python3Packages) wrapPython;
-  };
+  droopy = python37Packages.callPackage ../applications/networking/droopy { };
 
   drumgizmo = callPackage ../applications/audio/drumgizmo { };
 
@@ -19457,7 +20086,7 @@ in
 
   electrum-dash = callPackage ../applications/misc/electrum/dash.nix { };
 
-  electrum-ltc = callPackage ../applications/misc/electrum/ltc.nix { };
+  electrum-ltc = libsForQt5.callPackage ../applications/misc/electrum/ltc.nix { };
 
   elementary-planner = callPackage ../applications/office/elementary-planner { };
 
@@ -19465,11 +20094,12 @@ in
 
   elvis = callPackage ../applications/editors/elvis { };
 
-  emacs = emacs26;
-  emacsPackages = emacs26Packages;
-  emacs-nox = emacs26-nox;
+  emacs = emacs27;
+  emacsPackages = emacs27Packages;
+  emacs-nox = emacs27-nox;
+  emacsWithPackages = emacsPackages.emacsWithPackages;
 
-  emacs26 = callPackage ../applications/editors/emacs {
+  emacs27 = callPackage ../applications/editors/emacs/27.nix {
     # use override to enable additional features
     libXaw = xorg.libXaw;
     Xaw3d = null;
@@ -19481,14 +20111,14 @@ in
     inherit (darwin.apple_sdk.frameworks) AppKit GSS ImageIO;
   };
 
-  emacs26-nox = lowPrio (appendToName "nox" (emacs26.override {
+  emacs27-nox = lowPrio (appendToName "nox" (emacs27.override {
     withX = false;
     withNS = false;
     withGTK2 = false;
     withGTK3 = false;
   }));
 
-  emacs25 = callPackage ../applications/editors/emacs/25.nix {
+  emacs26 = callPackage ../applications/editors/emacs/26.nix {
     # use override to enable additional features
     libXaw = xorg.libXaw;
     Xaw3d = null;
@@ -19500,8 +20130,9 @@ in
     inherit (darwin.apple_sdk.frameworks) AppKit GSS ImageIO;
   };
 
-  emacs25-nox = lowPrio (appendToName "nox" (emacs25.override {
+  emacs26-nox = lowPrio (appendToName "nox" (emacs26.override {
     withX = false;
+    withNS = false;
     withGTK2 = false;
     withGTK3 = false;
   }));
@@ -19537,12 +20168,10 @@ in
     };
   };
 
-  emacs25Packages = dontRecurseIntoAttrs (emacsPackagesFor emacs25);
   emacs26Packages = dontRecurseIntoAttrs (emacsPackagesFor emacs26);
-
-  emacs25WithPackages = emacs25Packages.emacsWithPackages;
+  emacs27Packages = dontRecurseIntoAttrs (emacsPackagesFor emacs27);
   emacs26WithPackages = emacs26Packages.emacsWithPackages;
-  emacsWithPackages = emacsPackages.emacsWithPackages;
+  emacs27WithPackages = emacs27Packages.emacsWithPackages;
 
   inherit (gnome3) empathy;
 
@@ -19607,6 +20236,7 @@ in
 
   inherit (gnome3) evince;
   evolution-data-server = gnome3.evolution-data-server;
+  evolution-ews = callPackage ../applications/networking/mailreaders/evolution/evolution-ews { };
 
   keepass = callPackage ../applications/misc/keepass { };
 
@@ -19644,6 +20274,14 @@ in
 
   FIL-plugins = callPackage ../applications/audio/FIL-plugins { };
 
+  finalfrontier = callPackage ../applications/science/machine-learning/finalfrontier {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  finalfusion-utils = callPackage ../applications/science/machine-learning/finalfusion-utils {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   flacon = libsForQt5.callPackage ../applications/audio/flacon { };
 
   flexget = callPackage ../applications/networking/flexget { };
@@ -19678,8 +20316,12 @@ in
 
   font-manager = callPackage ../applications/misc/font-manager { };
 
+  fontpreview = callPackage ../applications/misc/fontpreview { };
+
   foo-yc20 = callPackage ../applications/audio/foo-yc20 { };
 
+  foot = callPackage ../applications/misc/foot { };
+
   fossil = callPackage ../applications/version-management/fossil { };
 
   freebayes = callPackage ../applications/science/biology/freebayes { };
@@ -19700,6 +20342,8 @@ in
 
   gcal = callPackage ../applications/misc/gcal { };
 
+  gcstar = callPackage ../applications/misc/gcstar { };
+
   geany = callPackage ../applications/editors/geany { };
   geany-with-vte = callPackage ../applications/editors/geany/with-vte.nix { };
 
@@ -19767,6 +20411,8 @@ in
 
   gopher = callPackage ../applications/networking/gopher/gopher { };
 
+  gophernotes = callPackage ../applications/editors/gophernotes { };
+
   goxel = callPackage ../applications/graphics/goxel { };
 
   gpa = callPackage ../applications/misc/gpa { };
@@ -19846,6 +20492,7 @@ in
 
   firefoxPackages = recurseIntoAttrs (callPackage ../applications/networking/browsers/firefox/packages.nix {
     callPackage = pkgs.newScope {
+      inherit (rustPackages_1_44) cargo rustc;
       libpng = libpng_apng;
       python = python2;
       gnused = gnused_422;
@@ -19858,10 +20505,12 @@ in
 
   firefox-unwrapped = firefoxPackages.firefox;
   firefox-esr-68-unwrapped = firefoxPackages.firefox-esr-68;
+  firefox-esr-78-unwrapped = firefoxPackages.firefox-esr-78;
   firefox = wrapFirefox firefox-unwrapped { };
-  firefox-wayland = wrapFirefox firefox-unwrapped { gdkWayland = true; };
+  firefox-wayland = wrapFirefox firefox-unwrapped { forceWayland = true; };
   firefox-esr-68 = wrapFirefox firefox-esr-68-unwrapped { };
-  firefox-esr = firefox-esr-68;
+  firefox-esr-78 = wrapFirefox firefox-esr-78-unwrapped { };
+  firefox-esr = firefox-esr-78;
 
   firefox-bin-unwrapped = callPackage ../applications/networking/browsers/firefox-bin {
     channel = "release";
@@ -19955,6 +20604,8 @@ in
 
   fte = callPackage ../applications/editors/fte { };
 
+  g933-utils = callPackage ../tools/misc/g933-utils { };
+
   game-music-emu = callPackage ../applications/audio/game-music-emu { };
 
   gavrasm = callPackage ../development/compilers/gavrasm { };
@@ -20009,6 +20660,8 @@ in
 
   gitolite = callPackage ../applications/version-management/gitolite { };
 
+  gitoxide = callPackage ../applications/version-management/gitoxide { };
+
   inherit (gnome3) gitg;
 
   gmrun = callPackage ../applications/misc/gmrun {};
@@ -20090,6 +20743,8 @@ in
 
   gnunet_git = lowPrio (callPackage ../applications/networking/p2p/gnunet/git.nix { });
 
+  gnunet-gtk = callPackage ../applications/networking/p2p/gnunet/gtk.nix { };
+
   gocr = callPackage ../applications/graphics/gocr { };
 
   gobby5 = callPackage ../applications/editors/gobby { };
@@ -20137,6 +20792,8 @@ in
 
   gollum = callPackage ../applications/misc/gollum { };
 
+  gonic = callPackage ../servers/gonic { };
+
   googleearth = callPackage ../applications/misc/googleearth { };
 
   google-chrome = callPackage ../applications/networking/browsers/google-chrome { gconf = gnome2.GConf; };
@@ -20181,12 +20838,16 @@ in
 
   gv = callPackage ../applications/misc/gv { };
 
-  gvisor = callPackage ../applications/virtualization/gvisor { };
+  gvisor = callPackage ../applications/virtualization/gvisor {
+    go = go_1_14;
+  };
 
   gvisor-containerd-shim = callPackage ../applications/virtualization/gvisor/containerd-shim.nix { };
 
   guvcview = libsForQt5.callPackage ../os-specific/linux/guvcview { };
 
+  gwc = callPackage ../applications/audio/gwc { };
+
   gxmessage = callPackage ../applications/misc/gxmessage { };
 
   gxmatcheq-lv2 = callPackage ../applications/audio/gxmatcheq-lv2 { };
@@ -20203,6 +20864,8 @@ in
 
   hactool = callPackage ../tools/compression/hactool { };
 
+  hdhomerun-config-gui = callPackage ../applications/video/hdhomerun-config-gui { };
+
   heimer = libsForQt5.callPackage ../applications/misc/heimer { };
 
   hello = callPackage ../applications/misc/hello { };
@@ -20262,8 +20925,8 @@ in
 
   hugo = callPackage ../applications/misc/hugo { };
 
-  hydrogen = callPackage ../applications/audio/hydrogen { };
-  hydrogen-unstable = qt5.callPackage ../applications/audio/hydrogen/unstable.nix { };
+  hydrogen = qt5.callPackage ../applications/audio/hydrogen { };
+  hydrogen_0 = callPackage ../applications/audio/hydrogen/0.nix { }; # Old stable, has GMKit.
 
   hydroxide = callPackage ../applications/networking/hydroxide { };
 
@@ -20375,6 +21038,8 @@ in
 
   i3lock-fancy = callPackage ../applications/window-managers/i3/lock-fancy.nix { };
 
+  i3lock-fancy-rapid = callPackage ../applications/window-managers/i3/lock-fancy-rapid.nix { };
+
   i3lock-pixeled = callPackage ../misc/screensavers/i3lock-pixeled { };
 
   betterlockscreen = callPackage ../misc/screensavers/betterlockscreen {
@@ -20391,6 +21056,8 @@ in
 
   i3-wk-switch = callPackage ../applications/window-managers/i3/wk-switch.nix { };
 
+  windowchef = callPackage ../applications/window-managers/windowchef/default.nix { };
+
   wmfocus = callPackage ../applications/window-managers/i3/wmfocus.nix { };
 
   wmfs = callPackage ../applications/window-managers/wmfs/default.nix { };
@@ -20415,6 +21082,10 @@ in
 
   iksemel = callPackage ../development/libraries/iksemel { };
 
+  imag = callPackage ../applications/misc/imag {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   imagej = callPackage ../applications/graphics/imagej { };
 
   imagemagick_light = imagemagick.override {
@@ -20479,7 +21150,7 @@ in
 
   inherit (nodePackages) imapnotify;
 
-  img2pdf = callPackage ../applications/misc/img2pdf { };
+  img2pdf = with python3Packages; toPythonApplication img2pdf;
 
   imgcat = callPackage ../applications/graphics/imgcat { };
 
@@ -20488,10 +21159,16 @@ in
   # Impressive, formerly known as "KeyJNote".
   impressive = callPackage ../applications/office/impressive { };
 
+  inkcut = libsForQt5.callPackage ../applications/misc/inkcut { };
+
   inkscape = callPackage ../applications/graphics/inkscape {
     lcms = lcms2;
   };
 
+  inkscape_0 = callPackage ../applications/graphics/inkscape/0.x.nix {
+    lcms = lcms2;
+  };
+
   inspectrum = libsForQt5.callPackage ../applications/radio/inspectrum { };
 
   ion3 = callPackage ../applications/window-managers/ion-3 {
@@ -20516,10 +21193,22 @@ in
 
   ir.lv2 = callPackage ../applications/audio/ir.lv2 { };
 
+  istioctl = callPackage ../applications/networking/cluster/istioctl { };
+
   bip = callPackage ../applications/networking/irc/bip { };
 
   j4-dmenu-desktop = callPackage ../applications/misc/j4-dmenu-desktop { };
 
+  jabcode = callPackage ../development/libraries/jabcode { };
+
+  jabcode-writer = callPackage ../development/libraries/jabcode {
+    subproject = "writer";
+  };
+
+  jabcode-reader = callPackage ../development/libraries/jabcode {
+    subproject = "reader";
+  };
+
   jabref = callPackage ../applications/office/jabref { };
 
   jack_capture = callPackage ../applications/audio/jack-capture { };
@@ -20585,6 +21274,8 @@ in
 
   kanshi = callPackage ../tools/misc/kanshi { };
 
+  kapitonov-plugins-pack = callPackage ../applications/audio/kapitonov-plugins-pack { };
+
   kdeApplications =
     let
       mkApplications = import ../applications/kde;
@@ -20596,10 +21287,36 @@ in
       recurseIntoAttrs (makeOverridable mkApplications attrs);
 
   inherit (kdeApplications)
-    akonadi akregator ark dolphin dragon elisa ffmpegthumbs filelight gwenview k3b
-    kaddressbook kapptemplate kate kcachegrind kcalc kcharselect kcolorchooser kdenlive kdf kdialog
-    keditbookmarks kfind kget kgpg khelpcenter kig kleopatra kmail kmix kmplot kolourpaint kompare konsole yakuake
-    kpkpass kitinerary kontact korganizer krdc krfb ksystemlog ktouch kwalletmanager marble minuet okular spectacle;
+    akonadi akregator ark
+    bomber bovo
+    dolphin dragon
+    elisa
+    ffmpegthumbs filelight
+    granatier gwenview
+    k3b
+    kaddressbook kalzium kapptemplate kapman kate katomic
+    kblackbox kblocks kbounce
+    kcachegrind kcalc kcharselect kcolorchooser
+    kdenlive kdf kdialog kdiamond
+    keditbookmarks
+    kfind kfloppy
+    kget kgpg
+    khelpcenter
+    kig kigo killbots kitinerary
+    kleopatra klettres klines
+    kmag kmail kmines kmix kmplot
+    knavalbattle knetwalk knights
+    kollision kolourpaint kompare konsole kontact korganizer
+    kpkpass
+    krdc kreversi krfb
+    kshisen ksquares ksystemlog
+    kteatime ktimer ktouch kturtle
+    kwalletmanager kwave
+    marble minuet
+    okular
+    picmi
+    spectacle
+    yakuake;
 
   okteta = libsForQt5.callPackage ../applications/editors/okteta { };
 
@@ -20607,8 +21324,6 @@ in
 
   kdeconnect = libsForQt5.callPackage ../applications/misc/kdeconnect { };
 
-  kdecoration-viewer = libsForQt5.callPackage ../tools/misc/kdecoration-viewer { };
-
   inherit (kdeFrameworks) kdesu;
 
   kdevelop-pg-qt = libsForQt5.callPackage ../applications/editors/kdevelop5/kdevelop-pg-qt.nix { };
@@ -20664,6 +21379,8 @@ in
 
   klayout = libsForQt5.callPackage ../applications/misc/klayout { };
 
+  kmetronome = libsForQt5.callPackage ../applications/audio/kmetronome { };
+
   kmplayer = libsForQt5.callPackage ../applications/video/kmplayer { };
 
   kmymoney = libsForQt5.callPackage ../applications/office/kmymoney {
@@ -20679,6 +21396,8 @@ in
 
   kotatogram-desktop = qt5.callPackage ../applications/networking/instant-messengers/telegram/kotatogram-desktop { };
 
+  kpt = callPackage ../applications/networking/cluster/kpt { };
+
   krita = libsForQt5.callPackage ../applications/graphics/krita {
     openjpeg = openjpeg_1;
   };
@@ -20739,6 +21458,8 @@ in
 
   ladspa-sdk = callPackage ../applications/audio/ladspa-sdk { };
 
+  lazpaint = callPackage ../applications/graphics/lazpaint { };
+
   caps = callPackage ../applications/audio/caps { };
 
   lastfmsubmitd = callPackage ../applications/audio/lastfmsubmitd { };
@@ -20794,6 +21515,7 @@ in
     libreoffice = callPackage ../applications/office/libreoffice
       (libreoffice-args // {
         variant = "fresh";
+        jdk = jdk11;
       });
   });
   libreoffice-fresh-unwrapped = libreoffice-fresh.libreoffice;
@@ -20801,6 +21523,7 @@ in
   libreoffice-still = lowPrio (callPackage ../applications/office/libreoffice/wrapper.nix {
     libreoffice = callPackage ../applications/office/libreoffice
       (libreoffice-args // {
+        icu = icu64;
         variant = "still";
       });
   });
@@ -20820,17 +21543,14 @@ in
 
   linuxband = callPackage ../applications/audio/linuxband { };
 
-  ledger = callPackage ../applications/office/ledger {
-    # Boost >= 1.67 changed the name of boost python; ledger's cmake build needs
-    # an update to find it:
-    # https://www.boost.org/doc/libs/1_68_0/libs/python/doc/html/rn.html
-    boost = boost15x;
-  };
+  ledger = callPackage ../applications/office/ledger { };
 
   ledger-autosync = callPackage  ../applications/office/ledger-autosync { };
 
   ledger-web = callPackage ../applications/office/ledger-web { };
 
+  lightburn = libsForQt5.callPackage ../applications/graphics/lightburn { };
+
   lighthouse = callPackage ../applications/misc/lighthouse { };
 
   lighttable = callPackage ../applications/editors/lighttable {};
@@ -20901,16 +21621,20 @@ in
   luppp = callPackage ../applications/audio/luppp { };
 
   lutris-unwrapped = python3.pkgs.callPackage ../applications/misc/lutris {
-    inherit (gnome3) gnome-desktop libgnome-keyring;
+    inherit (gnome3) gnome-desktop;
     wine = wineWowPackages.staging;
   };
-  lutris = callPackage ../applications/misc/lutris/chrootenv.nix { };
+  lutris = callPackage ../applications/misc/lutris/fhsenv.nix {
+    buildFHSUserEnv = buildFHSUserEnvBubblewrap;
+  };
   lutris-free = lutris.override {
     steamSupport = false;
   };
 
   lv2bm = callPackage ../applications/audio/lv2bm { };
 
+  lv2-cpp-tools = callPackage ../applications/audio/lv2-cpp-tools { };
+
   lynx = callPackage ../applications/networking/browsers/lynx { };
 
   lyx = libsForQt5.callPackage ../applications/misc/lyx { };
@@ -20944,7 +21668,6 @@ in
 
   mapmap = libsForQt5.callPackage ../applications/video/mapmap { };
 
-  marathon = callPackage ../applications/networking/cluster/marathon { };
   marathonctl = callPackage ../tools/virtualization/marathonctl { } ;
 
   markdown-pp = callPackage ../tools/text/markdown-pp { };
@@ -20953,6 +21676,8 @@ in
 
   magnetico = callPackage ../applications/networking/p2p/magnetico { };
 
+  mastodon-bot = nodePackages.mastodon-bot;
+
   matchbox = callPackage ../applications/window-managers/matchbox { };
 
   matrixcli = callPackage ../applications/networking/instant-messengers/matrixcli {
@@ -21070,6 +21795,8 @@ in
 
   xmrig-proxy = callPackage ../applications/misc/xmrig/proxy.nix { };
 
+  molot-lite = callPackage ../applications/audio/molot-lite { };
+
   monkeysAudio = callPackage ../applications/audio/monkeys-audio { };
 
   monkeysphere = callPackage ../tools/security/monkeysphere { };
@@ -21091,6 +21818,8 @@ in
 
   moonlight-embedded = callPackage ../applications/misc/moonlight-embedded { };
 
+  mooSpace = callPackage ../applications/audio/mooSpace { };
+
   mop = callPackage ../applications/misc/mop { };
 
   mopidyPackages = callPackages ../applications/audio/mopidy/default.nix {
@@ -21112,6 +21841,7 @@ in
     mopidy-soundcloud
     mopidy-spotify
     mopidy-spotify-tunigo
+    mopidy-tunein
     mopidy-youtube;
 
   motif = callPackage ../development/libraries/motif { };
@@ -21160,6 +21890,8 @@ in
 
   normalize = callPackage ../applications/audio/normalize { };
 
+  mailspring = callPackage ../applications/networking/mailreaders/mailspring {};
+
   mm = callPackage ../applications/networking/instant-messengers/mm { };
 
   mm-common = callPackage ../development/libraries/mm-common { };
@@ -21185,6 +21917,7 @@ in
     convert = callPackage ../applications/video/mpv/scripts/convert.nix {};
     mpris = callPackage ../applications/video/mpv/scripts/mpris.nix {};
     simple-mpv-webui = callPackage ../applications/video/mpv/scripts/simple-mpv-webui.nix {};
+    sponsorblock = callPackage ../applications/video/mpv/scripts/sponsorblock.nix {};
   };
 
   mrpeach = callPackage ../applications/audio/pd-plugins/mrpeach { };
@@ -21205,6 +21938,7 @@ in
       avahi = avahi-compat;
       pulseSupport = config.pulseaudio or false;
       iceSupport = config.murmur.iceSupport or true;
+      grpcSupport = config.murmur.grpcSupport or true;
     }).murmur;
 
   mumble = (callPackages ../applications/networking/mumble {
@@ -21247,7 +21981,7 @@ in
 
   neocomp  = callPackage ../applications/window-managers/neocomp { };
 
-  netease-cloud-music = callPackage ../applications/audio/netease-cloud-music {};
+  newsflash = callPackage ../applications/networking/feedreaders/newsflash { };
 
   nicotine-plus = callPackage ../applications/networking/soulseek/nicotine-plus {
     geoip = geoipWithDatabase;
@@ -21255,6 +21989,8 @@ in
 
   nixos-shell = callPackage ../tools/virtualization/nixos-shell {};
 
+  noaa-apt = callPackage ../applications/radio/noaa-apt { };
+
   node-problem-detector = callPackage ../applications/networking/cluster/node-problem-detector { };
 
   ninjas2 = callPackage ../applications/audio/ninjas2 {};
@@ -21264,6 +22000,8 @@ in
   nootka = qt5.callPackage ../applications/audio/nootka { };
   nootka-unstable = qt5.callPackage ../applications/audio/nootka/unstable.nix { };
 
+  nwg-launchers = callPackage ../applications/misc/nwg-launchers { };
+
   open-policy-agent = callPackage ../development/tools/open-policy-agent { };
 
   openshift = callPackage ../applications/networking/cluster/openshift { };
@@ -21274,10 +22012,15 @@ in
 
   ostinato = callPackage ../applications/networking/ostinato { };
 
+  p4 = callPackage ../applications/version-management/p4 { };
   p4v = libsForQt5.callPackage ../applications/version-management/p4v { };
 
   partio = callPackage ../development/libraries/partio {};
 
+  pc-ble-driver = callPackage ../development/libraries/pc-ble-driver {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
   pbis-open = callPackage ../tools/security/pbis { };
 
   pcmanfm = callPackage ../applications/misc/pcmanfm { };
@@ -21300,6 +22043,8 @@ in
 
   planner = callPackage ../applications/office/planner { };
 
+  plasma-wayland-protocols = libsForQt5.callPackage ../development/libraries/plasma-wayland-protocols { };
+
   playonlinux = callPackage ../applications/misc/playonlinux {
      stdenv = stdenv_32bit;
   };
@@ -21430,9 +22175,7 @@ in
 
   mypaint-brushes = callPackage ../development/libraries/mypaint-brushes { };
 
-  mythtv = libsForQt5.callPackage ../applications/video/mythtv {
-    libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl;
-  };
+  mythtv = libsForQt5.callPackage ../applications/video/mythtv { };
 
   micro = callPackage ../applications/editors/micro { };
 
@@ -21530,6 +22273,8 @@ in
 
   inherit (python3Packages.callPackage ../applications/networking/onionshare { }) onionshare onionshare-gui;
 
+  openambit = qt5.callPackage ../applications/misc/openambit { };
+
   openbox = callPackage ../applications/window-managers/openbox { };
 
   openbox-menu = callPackage ../applications/misc/openbox-menu {
@@ -21554,6 +22299,10 @@ in
 
   opentimestamps-client = python3Packages.callPackage ../tools/misc/opentimestamps-client {};
 
+  opentoonz = (qt5.overrideScope' (_: _: {
+    libtiff = callPackage ../applications/graphics/opentoonz/libtiff.nix { };
+  })).callPackage ../applications/graphics/opentoonz { };
+
   opentx = libsForQt5.callPackage ../applications/misc/opentx { };
 
   opera = callPackage ../applications/networking/browsers/opera {};
@@ -21572,6 +22321,11 @@ in
 
   osmium-tool = callPackage ../applications/misc/osmium-tool { };
 
+  osu-lazer = callPackage ../games/osu-lazer {
+    dotnet-sdk = dotnetCorePackages.sdk_3_1;
+    dotnet-netcore = dotnetCorePackages.netcore_3_1;
+  };
+
   owamp = callPackage ../applications/networking/owamp { };
 
   vivaldi = callPackage ../applications/networking/browsers/vivaldi {};
@@ -21756,6 +22510,8 @@ in
 
   pistol = callPackage ../tools/misc/pistol { };
 
+  plexamp = callPackage ../applications/audio/plexamp { };
+
   plex-media-player = libsForQt512.callPackage ../applications/video/plex-media-player { };
 
   plex-mpv-shim = python3Packages.callPackage ../applications/video/plex-mpv-shim { };
@@ -21802,7 +22558,7 @@ in
 
   protonvpn-cli = callPackage ../applications/networking/protonvpn-cli { };
 
-  protonvpn-cli-ng = callPackage ../applications/networking/protonvpn-cli-ng { };
+  protonvpn-gui = callPackage ../applications/networking/protonvpn-gui { };
 
   ps2client = callPackage ../applications/networking/ps2client { };
 
@@ -22101,6 +22857,8 @@ in
 
   udiskie = callPackage ../applications/misc/udiskie { };
 
+  sacc = callPackage ../applications/networking/gopher/sacc { };
+
   sakura = callPackage ../applications/misc/sakura { };
 
   sayonara = libsForQt5.callPackage ../applications/audio/sayonara { };
@@ -22302,6 +23060,8 @@ in
 
   prusa-slicer = callPackage ../applications/misc/prusa-slicer { };
 
+  robustirc-bridge = callPackage ../servers/irc/robustirc-bridge { };
+
   sddm = libsForQt5.callPackage ../applications/display-managers/sddm { };
 
   skrooge = libsForQt5.callPackage ../applications/office/skrooge {};
@@ -22372,10 +23132,7 @@ in
 
   stp = callPackage ../applications/science/logic/stp { };
 
-  stretchly = callPackage ../applications/misc/stretchly {
-    # Error on launch w/electron_8
-    electron = electron_7;
-  };
+  stretchly = callPackage ../applications/misc/stretchly { };
 
   stumpish = callPackage ../applications/window-managers/stumpish {};
 
@@ -22409,12 +23166,19 @@ in
     pythonBindings = true;
   });
 
+  sublime-music = callPackage ../applications/audio/sublime-music { };
+
   subunit = callPackage ../development/libraries/subunit { };
 
   surf = callPackage ../applications/networking/browsers/surf { gtk = gtk2; };
 
   surf-display = callPackage ../desktops/surf-display { };
 
+  surge = callPackage ../applications/audio/surge {
+    inherit (gnome3) zenity;
+    git = gitMinimal;
+  };
+
   sunvox = callPackage ../applications/audio/sunvox { };
 
   swh_lv2 = callPackage ../applications/audio/swh-lv2 { };
@@ -22428,9 +23192,12 @@ in
 
   symlinks = callPackage ../tools/system/symlinks { };
 
-  syncplay = python3.pkgs.callPackage ../applications/networking/syncplay { };
+  # this can be changed to python3 once pyside2 is updated to support the latest python version
+  syncplay = python37.pkgs.callPackage ../applications/networking/syncplay { };
 
-  inherit (callPackages ../applications/networking/syncthing { })
+  inherit (callPackages ../applications/networking/syncthing {
+    buildGoModule = buildGo114Module;
+  })
     syncthing
     syncthing-cli
     syncthing-discovery
@@ -22476,14 +23243,20 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  talentedhack = callPackage ../applications/audio/talentedhack { };
+
   tambura = callPackage ../applications/audio/tambura { };
 
+  tamgamp.lv2 = callPackage ../applications/audio/tamgamp.lv2 { };
+
+  tanka = callPackage ../applications/networking/cluster/tanka { };
+
   teams = callPackage ../applications/networking/instant-messengers/teams { };
 
   teamspeak_client = libsForQt512.callPackage ../applications/networking/instant-messengers/teamspeak/client.nix { };
   teamspeak_server = callPackage ../applications/networking/instant-messengers/teamspeak/server.nix { };
 
-  taskell = callPackage ../applications/misc/taskell { };
+  taskell = haskell.lib.justStaticExecutables haskellPackages.taskell;
 
   taskjuggler = callPackage ../applications/misc/taskjuggler { };
 
@@ -22527,6 +23300,8 @@ in
 
   terminus = callPackage ../applications/misc/terminus { };
 
+  tty-solitaire = callPackage ../applications/misc/tty-solitaire { };
+
   lxterminal = callPackage ../applications/misc/lxterminal { };
 
   aminal = callPackage ../applications/misc/aminal {
@@ -22552,15 +23327,26 @@ in
 
   thonny = callPackage ../applications/editors/thonny { };
 
-  thunderbird = callPackage ../applications/networking/mailreaders/thunderbird {
-    inherit (rustPackages_1_42) rustc;
+  thunderbird-78 = callPackage ../applications/networking/mailreaders/thunderbird {
+    inherit (rustPackages_1_44) cargo rustc;
     libpng = libpng_apng;
+    icu = icu67;
+    libvpx = libvpx_1_8;
+    gtk3Support = true;
+  };
+
+  thunderbird = callPackage ../applications/networking/mailreaders/thunderbird/68.nix {
+    inherit (rustPackages_1_44) cargo rustc;
+    libpng = libpng_apng;
+    nss = nss_3_44;
     gtk3Support = true;
   };
 
   thunderbolt = callPackage ../os-specific/linux/thunderbolt {};
 
-  thunderbird-bin = callPackage ../applications/networking/mailreaders/thunderbird-bin { };
+  thunderbird-bin-78 = callPackage ../applications/networking/mailreaders/thunderbird-bin { };
+
+  thunderbird-bin = callPackage ../applications/networking/mailreaders/thunderbird-bin/68.nix { };
 
   ticpp = callPackage ../development/libraries/ticpp { };
 
@@ -22580,7 +23366,9 @@ in
 
   tint2 = callPackage ../applications/misc/tint2 { };
 
-  tiny = callPackage ../applications/networking/irc/tiny { };
+  tiny = callPackage ../applications/networking/irc/tiny {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
 
   tipp10 = qt5.callPackage ../applications/misc/tipp10 { };
 
@@ -22662,6 +23450,8 @@ in
 
   treesheets = callPackage ../applications/office/treesheets { wxGTK = wxGTK31; };
 
+  tremc = callPackage ../applications/networking/p2p/tremc { };
+
   tribler = callPackage ../applications/networking/p2p/tribler { };
 
   trojita = libsForQt5.callPackage ../applications/networking/mailreaders/trojita {
@@ -22670,6 +23460,10 @@ in
 
   tudu = callPackage ../applications/office/tudu { };
 
+  tunefish = callPackage ../applications/audio/tunefish {
+    stdenv = clangStdenv; # https://github.com/jpcima/tunefish/issues/4
+  };
+
   tut = callPackage ../applications/misc/tut { };
 
   tuxguitar = callPackage ../applications/editors/music/tuxguitar { };
@@ -22686,6 +23480,8 @@ in
 
   ueberzug = with python3Packages; toPythonApplication ueberzug;
 
+  uhhyou.lv2 = callPackage ../applications/audio/uhhyou.lv2 { };
+
   umurmur = callPackage ../applications/networking/umurmur { };
 
   udocker = pythonPackages.callPackage ../tools/virtualization/udocker { };
@@ -22761,12 +23557,6 @@ in
     inherit (xorg) libxcb;
   };
 
-  qvim = lowPrio (callPackage ../applications/editors/vim/qvim.nix {
-    features = "huge"; # one of  tiny, small, normal, big or huge
-    lua = pkgs.lua5;
-    flags = [ "python" "X11" ]; # only flag "X11" by now
-  });
-
   vimpc = callPackage ../applications/audio/vimpc { };
 
   wrapNeovim = callPackage ../applications/editors/neovim/wrapper.nix { };
@@ -22782,6 +23572,8 @@ in
 
   neovim-qt = libsForQt5.callPackage ../applications/editors/neovim/qt.nix { };
 
+  olifant = callPackage ../applications/misc/olifant { };
+
   gnvim-unwrapped = callPackage ../applications/editors/neovim/gnvim {
     gtk = pkgs.gtk3;
   };
@@ -22794,6 +23586,8 @@ in
     inherit (lua52Packages) lpeg;
   };
 
+  viw = callPackage ../applications/editors/viw { };
+
   virt-viewer = callPackage ../applications/virtualization/virt-viewer { };
 
   virt-top = callPackage ../applications/virtualization/virt-top { };
@@ -22812,6 +23606,8 @@ in
 
   virtscreen = callPackage ../tools/admin/virtscreen {};
 
+  virtual-ans = callPackage ../applications/audio/virtual-ans {};
+
   virtualbox = libsForQt5.callPackage ../applications/virtualization/virtualbox {
     stdenv = stdenv_32bit;
     inherit (gnome2) libIDL;
@@ -22875,6 +23671,8 @@ in
 
   vmpk = callPackage ../applications/audio/vmpk { };
 
+  vocproc = callPackage ../applications/audio/vocproc { };
+
   vnstat = callPackage ../applications/networking/vnstat { };
 
   vocal = callPackage ../applications/audio/vocal { };
@@ -23400,6 +24198,8 @@ in
 
   xmacro = callPackage ../tools/X11/xmacro { };
 
+  xmenu = callPackage ../applications/misc/xmenu { };
+
   xmlcopyeditor = callPackage ../applications/editors/xmlcopyeditor { };
 
   xmp = callPackage ../applications/audio/xmp { };
@@ -23444,6 +24244,8 @@ in
 
   youtube-viewer = perlPackages.WWWYoutubeViewer;
 
+  ytalk = callPackage ../applications/networking/instant-messengers/ytalk { };
+
   ytcc = callPackage ../tools/networking/ytcc { };
 
   zam-plugins = callPackage ../applications/audio/zam-plugins { };
@@ -23579,18 +24381,14 @@ in
   monero = callPackage ../applications/blockchains/monero {
     inherit (darwin.apple_sdk.frameworks) CoreData IOKit PCSC;
     boost = boost17x;
-    pythonProtobuf = python3Packages.protobuf.override { protobuf = protobuf3_10; };
   };
 
   monero-gui = libsForQt5.callPackage ../applications/blockchains/monero-gui {
     boost = boost17x;
-    protobuf = protobuf3_10;
   };
 
   masari = callPackage ../applications/blockchains/masari.nix { boost = boost165; };
 
-  mist = callPackage ../applications/blockchains/mist.nix { };
-
   nano-wallet = libsForQt5.callPackage ../applications/blockchains/nano-wallet { };
 
   namecoin  = callPackage ../applications/blockchains/namecoin.nix  { withGui = true; };
@@ -23618,7 +24416,7 @@ in
 
   zcash = callPackage ../applications/blockchains/zcash { };
 
-  parity = callPackage ../applications/blockchains/parity { };
+  openethereum = callPackage ../applications/blockchains/openethereum { };
 
   parity-ui = callPackage ../applications/blockchains/parity-ui { };
 
@@ -23729,13 +24527,11 @@ in
     inherit (darwin.apple_sdk.frameworks) Carbon CoreServices;
   };
 
-  cataclysm-dda = callPackage ../games/cataclysm-dda {
-    inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa;
-  };
+  cataclysmDDA = callPackage ../games/cataclysm-dda { };
 
-  cataclysm-dda-git = callPackage ../games/cataclysm-dda/git.nix {
-    inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa;
-  };
+  cataclysm-dda = cataclysmDDA.stable.tiles;
+
+  cataclysm-dda-git = cataclysmDDA.git.tiles;
 
   chessdb = callPackage ../games/chessdb { };
 
@@ -23905,9 +24701,13 @@ in
   frozen-bubble = callPackage ../games/frozen-bubble { };
 
   fsg = callPackage ../games/fsg {
-    wxGTK = wxGTK28.override { unicode = false; };
+    wxGTK = wxGTK28.override {
+      unicode = false;
+    };
   };
 
+  fslint = callPackage ../applications/misc/fslint {};
+
   galaxis = callPackage ../games/galaxis { };
 
   gambatte = callPackage ../games/gambatte { };
@@ -23952,6 +24752,8 @@ in
 
   gshogi = python3Packages.callPackage ../games/gshogi {};
 
+  gshhg-gmt = callPackage ../applications/gis/gmt/gshhg.nix { };
+
   qtads = qt5.callPackage ../games/qtads { };
 
   gtetrinet = callPackage ../games/gtetrinet {
@@ -23995,17 +24797,25 @@ in
   katago = callPackage ../games/katago { };
 
   katagoWithCuda = katago.override {
-    cudaSupport = true;
+    enableCuda = true;
     cudnn = cudnn_cudatoolkit_10_2;
     cudatoolkit = cudatoolkit_10_2;
   };
 
+  katagoCPU = katago.override {
+    enableGPU = false;
+  };
+
   klavaro = callPackage ../games/klavaro {};
 
   kobodeluxe = callPackage ../games/kobodeluxe { };
 
   leela-zero = libsForQt5.callPackage ../games/leela-zero { };
 
+  legendary-gl = python38Packages.callPackage ../games/legendary-gl { };
+
+  left4gore-bin = callPackage ../games/left4gore { };
+
   lgogdownloader = callPackage ../games/lgogdownloader { };
 
   liberal-crime-squad = callPackage ../games/liberal-crime-squad { };
@@ -24281,6 +25091,8 @@ in
 
   service-wrapper = callPackage ../os-specific/linux/service-wrapper { };
 
+  sfrotz = callPackage ../games/sfrotz { };
+
   sgtpuzzles = callPackage (callPackage ../games/sgt-puzzles) { };
 
   shattered-pixel-dungeon = callPackage ../games/shattered-pixel-dungeon { };
@@ -24318,9 +25130,11 @@ in
 
   stockfish = callPackage ../games/stockfish { };
 
-  steamPackages = dontRecurseIntoAttrs (callPackage ../games/steam { });
+  steamPackages = dontRecurseIntoAttrs (callPackage ../games/steam {
+    buildFHSUserEnv = buildFHSUserEnvBubblewrap;
+  });
 
-  steam = steamPackages.steam-chrootenv;
+  steam = steamPackages.steam-fhsenv;
 
   steam-run = steam.run;
   steam-run-native = (steam.override {
@@ -24501,6 +25315,8 @@ in
     tk = tk-8_5;
   };
 
+  xcowsay = callPackage ../games/xcowsay { };
+
   xjump = callPackage ../games/xjump { };
   # TODO: the corresponding nix file is missing
   # xracer = callPackage ../games/xracer { };
@@ -24583,11 +25399,6 @@ in
 
   cinnamon = recurseIntoAttrs (callPackage ../desktops/cinnamon { });
 
-  deepin = recurseIntoAttrs (import ../desktops/deepin {
-    inherit pkgs libsForQt5;
-    inherit (lib) makeScope;
-  });
-
   enlightenment = recurseIntoAttrs (callPackage ../desktops/enlightenment {
     callPackage = newScope pkgs.enlightenment;
   });
@@ -24606,6 +25417,7 @@ in
     dash-to-panel = callPackage ../desktops/gnome-3/extensions/dash-to-panel { };
     draw-on-your-screen = callPackage ../desktops/gnome-3/extensions/draw-on-your-screen { };
     drop-down-terminal = callPackage ../desktops/gnome-3/extensions/drop-down-terminal { };
+    emoji-selector = callPackage ../desktops/gnome-3/extensions/emoji-selector { };
     gsconnect = callPackage ../desktops/gnome-3/extensions/gsconnect { };
     icon-hider = callPackage ../desktops/gnome-3/extensions/icon-hider { };
     impatience = callPackage ../desktops/gnome-3/extensions/impatience { };
@@ -24654,7 +25466,7 @@ in
     inherit (python3Packages) python pygobject3 pyxdg wrapPython;
     inherit (darwin.apple_sdk.frameworks) CoreLocation ApplicationServices Foundation Cocoa;
     geoclue = geoclue2;
-  }) redshift redshift-wlr;
+  }) redshift redshift-wlr gammastep;
 
   redshift-plasma-applet = libsForQt5.callPackage ../applications/misc/redshift-plasma-applet { };
 
@@ -24694,6 +25506,10 @@ in
     plasma-workspace-wallpapers polkit-kde-agent powerdevil sddm-kcm
     systemsettings user-manager xdg-desktop-portal-kde;
 
+  plasma-applet-caffeine-plus = libsForQt5.callPackage ../desktops/plasma-5/addons/caffeine-plus.nix { };
+
+  kwin-dynamic-workspaces = libsForQt5.callPackage ../desktops/plasma-5/kwin/scripts/dynamic-workspaces.nix { };
+
   kwin-tiling = libsForQt5.callPackage ../desktops/plasma-5/kwin/scripts/tiling.nix { };
 
   krohnkite = libsForQt5.callPackage ../desktops/plasma-5/kwin/scripts/krohnkite.nix { };
@@ -24706,6 +25522,8 @@ in
     eigen = eigen2;
   };
 
+  d-seams = callPackage ../applications/science/chemistry/d-seams {};
+
   gwyddion = callPackage ../applications/science/chemistry/gwyddion {};
 
   jmol = callPackage ../applications/science/chemistry/jmol { };
@@ -24750,9 +25568,7 @@ in
 
   alliance = callPackage ../applications/science/electronics/alliance { };
 
-  ants = callPackage ../applications/science/biology/ants {
-    stdenv = gcc8Stdenv;
-  };
+  ants = callPackage ../applications/science/biology/ants { };
 
   aragorn = callPackage ../applications/science/biology/aragorn { };
 
@@ -24806,7 +25622,7 @@ in
 
   est-sfs = callPackage ../applications/science/biology/est-sfs { };
 
-  ezminc = callPackage ../applications/science/biology/EZminc { stdenv = gcc8Stdenv; };
+  ezminc = callPackage ../applications/science/biology/EZminc { };
 
   exonerate = callPackage ../applications/science/biology/exonerate { };
 
@@ -24911,6 +25727,8 @@ in
 
   snpeff = callPackage ../applications/science/biology/snpeff { };
 
+  somafm-cli = callPackage ../tools/misc/somafm-cli/default.nix { };
+
   somatic-sniper = callPackage ../applications/science/biology/somatic-sniper { };
 
   sortmerna = callPackage ../applications/science/biology/sortmerna { };
@@ -24940,6 +25758,8 @@ in
 
   varscan = callPackage ../applications/science/biology/varscan { };
 
+  whisper = callPackage ../applications/science/biology/whisper { };
+
   hmmer = callPackage ../applications/science/biology/hmmer { };
 
   bwa = callPackage ../applications/science/biology/bwa { };
@@ -24952,6 +25772,10 @@ in
 
   almonds = callPackage ../applications/science/math/almonds { };
 
+  amd-blis = callPackage ../development/libraries/science/math/amd-blis { };
+
+  amd-libflame = callPackage ../development/libraries/science/math/amd-libflame { };
+
   arpack = callPackage ../development/libraries/science/math/arpack { };
 
   blas = callPackage ../build-support/alternatives/blas { };
@@ -25227,11 +26051,11 @@ in
   ifstat-legacy = callPackage ../tools/networking/ifstat-legacy { };
 
   isabelle = callPackage ../applications/science/logic/isabelle {
-    polyml = stdenv.lib.overrideDerivation polyml57 (attrs: {
+    polyml = stdenv.lib.overrideDerivation polyml (attrs: {
       configureFlags = [ "--enable-intinf-as-int" "--with-gmp" "--disable-shared" ];
     });
 
-    java = if stdenv.isLinux then jre else jdk;
+    java = openjdk11;
   };
 
   iprover = callPackage ../applications/science/logic/iprover { };
@@ -25246,6 +26070,7 @@ in
   lean2 = callPackage ../applications/science/logic/lean2 {};
   lean3 = lean;
   elan = callPackage ../applications/science/logic/elan {};
+  mathlibtools = with python3Packages; toPythonApplication mathlibtools;
 
   leo2 = callPackage ../applications/science/logic/leo2 {
      ocaml = ocaml-ng.ocamlPackages_4_01_0.ocaml;};
@@ -25349,6 +26174,8 @@ in
 
   adms = callPackage ../applications/science/electronics/adms { };
 
+  appcsxcad = libsForQt5.callPackage ../applications/science/electronics/appcsxcad { };
+
   # Since version 8 Eagle requires an Autodesk account and a subscription
   # in contrast to single payment for the charged editions.
   # This is the last version with the old model.
@@ -25360,6 +26187,8 @@ in
 
   caneda = libsForQt5.callPackage ../applications/science/electronics/caneda { };
 
+  csxcad = callPackage ../applications/science/electronics/csxcad { };
+
   fparser = callPackage ../applications/science/electronics/fparser { };
 
   geda = callPackage ../applications/science/electronics/geda {
@@ -25370,6 +26199,8 @@ in
 
   gtkwave = callPackage ../applications/science/electronics/gtkwave { };
 
+  hyp2mat = callPackage ../applications/science/electronics/hyp2mat { };
+
   fped = callPackage ../applications/science/electronics/fped { };
 
   # this is a wrapper for kicad.base and kicad.libraries
@@ -25389,6 +26220,8 @@ in
 
   pcb = callPackage ../applications/science/electronics/pcb { };
 
+  qcsxcad = libsForQt5.callPackage ../applications/science/electronics/qcsxcad { };
+
   qucs = callPackage ../applications/science/electronics/qucs { };
 
   xcircuit = callPackage ../applications/science/electronics/xcircuit { };
@@ -25400,6 +26233,7 @@ in
 
   caffe = callPackage ../applications/science/math/caffe ({
     opencv3 = opencv3WithoutCuda; # Used only for image loading.
+    blas = openblas;
     inherit (darwin.apple_sdk.frameworks) Accelerate CoreGraphics CoreVideo;
   } // (config.caffe or {}));
 
@@ -25437,6 +26271,7 @@ in
   gap-full = lowPrio (gap.override { packageSet = "full"; });
 
   geogebra = callPackage ../applications/science/math/geogebra { };
+  geogebra6 = callPackage ../applications/science/math/geogebra/geogebra6.nix { };
 
   maxima = callPackage ../applications/science/math/maxima {
     ecl = null;
@@ -25624,7 +26459,7 @@ in
 
   android-file-transfer = libsForQt5.callPackage ../tools/filesystems/android-file-transfer { };
 
-  antimicro = libsForQt5.callPackage ../tools/misc/antimicro { };
+  antimicroX = libsForQt5.callPackage ../tools/misc/antimicroX { };
 
   atari800 = callPackage ../misc/emulators/atari800 { };
 
@@ -25638,6 +26473,8 @@ in
 
   attract-mode = callPackage ../misc/emulators/attract-mode { };
 
+  autotiling = python3Packages.callPackage ../misc/autotiling { };
+
   beep = callPackage ../misc/beep { };
 
   bees = callPackage ../tools/filesystems/bees { };
@@ -25660,6 +26497,8 @@ in
 
   clinfo = callPackage ../tools/system/clinfo { };
 
+  clpeak = callPackage ../tools/misc/clpeak { };
+
   cups = callPackage ../misc/cups { };
 
   cups-filters = callPackage ../misc/cups/filters.nix { };
@@ -25699,6 +26538,8 @@ in
 
   cups-brother-hl1110 = pkgsi686Linux.callPackage ../misc/cups/drivers/hl1110 { };
 
+  cups-brother-hl1210w = pkgsi686Linux.callPackage ../misc/cups/drivers/hl1210w { };
+
   cups-brother-hl3140cw = pkgsi686Linux.callPackage ../misc/cups/drivers/hl3140cw { };
 
   cups-brother-hll2340dw = pkgsi686Linux.callPackage  ../misc/cups/drivers/hll2340dw { };
@@ -25734,6 +26575,8 @@ in
 
   dosbox = callPackage ../misc/emulators/dosbox { };
 
+  emu2 = callPackage ../misc/emulators/emu2 { };
+
   dpkg = callPackage ../tools/package-management/dpkg { };
 
   dumb = callPackage ../misc/dumb { };
@@ -25793,7 +26636,8 @@ in
   fuse-emulator = callPackage ../misc/emulators/fuse-emulator {};
 
   gajim = callPackage ../applications/networking/instant-messengers/gajim {
-    inherit (gst_all_1) gstreamer gst-plugins-base gst-libav gst-plugins-ugly;
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-libav;
+    gst-plugins-good = gst_all_1.gst-plugins-good.override { gtkSupport = true; };
   };
 
   gammu = callPackage ../applications/misc/gammu { };
@@ -25824,9 +26668,7 @@ in
 
   hatari = callPackage ../misc/emulators/hatari { };
 
-  helm = callPackage ../applications/audio/helm {
-    stdenv = gcc8Stdenv;
-  };
+  helm = callPackage ../applications/audio/helm { };
 
   helmfile = callPackage ../applications/networking/cluster/helmfile { };
 
@@ -25897,11 +26739,11 @@ in
   # Exceptions are versions that we need to keep to allow upgrades from older NixOS releases
   inherit (callPackage ../applications/networking/cluster/kops {})
     mkKops
-    kops_1_15
     kops_1_16
     kops_1_17
+    kops_1_18
     ;
-  kops = kops_1_17;
+  kops = kops_1_18;
 
   lguf-brightness = callPackage ../misc/lguf-brightness { };
 
@@ -25919,6 +26761,8 @@ in
     icu = icu58;
   };
 
+  mamba = callPackage ../applications/audio/mamba{ };
+
   mame = libsForQt5.callPackage ../misc/emulators/mame {
     inherit (darwin.apple_sdk.frameworks) CoreAudioKit ForceFeedback;
   };
@@ -26095,6 +26939,8 @@ in
 
   nixdoc = callPackage ../tools/nix/nixdoc {};
 
+  nix-doc = callPackage ../tools/package-management/nix-doc { };
+
   nix-bundle = callPackage ../tools/package-management/nix-bundle { };
 
   nix-delegate = haskell.lib.justStaticExecutables haskellPackages.nix-delegate;
@@ -26110,7 +26956,7 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
-  nix-linter = haskellPackages.callPackage ../development/tools/analysis/nix-linter { };
+  nix-linter = haskell.lib.justStaticExecutables (haskellPackages.callPackage ../development/tools/analysis/nix-linter { });
 
   nix-pin = callPackage ../tools/package-management/nix-pin { };
 
@@ -26139,6 +26985,8 @@ in
 
   nix-top = callPackage ../tools/package-management/nix-top { };
 
+  nix-tree = haskell.lib.justStaticExecutables (haskellPackages.nix-tree);
+
   nix-universal-prefetch = callPackage ../tools/package-management/nix-universal-prefetch { };
 
   nix-repl = throw (
@@ -26159,6 +27007,8 @@ in
 
   nixpkgs-fmt = callPackage ../tools/nix/nixpkgs-fmt { };
 
+  rnix-hashes = callPackage ../tools/nix/rnix-hashes { };
+
   nixos-artwork = callPackage ../data/misc/nixos-artwork { };
   nixos-icons = callPackage ../data/misc/nixos-artwork/icons.nix { };
   nixos-grub2-theme = callPackage ../data/misc/nixos-artwork/grub2-theme.nix { };
@@ -26253,6 +27103,8 @@ in
 
   pyload = callPackage ../applications/networking/pyload {};
 
+  pwntools = with python3Packages; toPythonApplication pwntools;
+
   uae = callPackage ../misc/emulators/uae { };
 
   fsuae = callPackage ../misc/emulators/fs-uae { };
@@ -26265,6 +27117,8 @@ in
 
   py-wmi-client = callPackage ../tools/networking/py-wmi-client { };
 
+  rargs = callPackage ../tools/misc/rargs { };
+
   redprl = callPackage ../applications/science/logic/redprl { };
 
   renderizer = pkgs.callPackage ../development/tools/renderizer {};
@@ -26370,9 +27224,7 @@ in
 
   sanoid = callPackage ../tools/backup/sanoid { };
 
-  satysfi = callPackage ../tools/typesetting/satysfi {
-    ocamlPackages = ocaml-ng.ocamlPackages_4_07;
-  };
+  satysfi = callPackage ../tools/typesetting/satysfi { };
 
   sc-controller = pythonPackages.callPackage ../misc/drivers/sc-controller {
     inherit libusb1; # Shadow python.pkgs.libusb1.
@@ -26431,6 +27283,7 @@ in
     terraform_0_11
     terraform_0_11-full
     terraform_0_12
+    terraform_0_13
     terraform_plugins_test
     ;
 
@@ -26442,6 +27295,8 @@ in
     callPackage ../applications/networking/cluster/terraform-providers {}
   );
 
+  terraform-compliance = python3Packages.callPackage ../applications/networking/cluster/terraform-compliance {};
+
   terraform-docs = callPackage ../applications/networking/cluster/terraform-docs {};
 
   terraform-inventory = callPackage ../applications/networking/cluster/terraform-inventory {};
@@ -26452,6 +27307,8 @@ in
 
   tilt = callPackage ../applications/networking/cluster/tilt {};
 
+  timeular = callPackage ../applications/office/timeular {};
+
   tetex = callPackage ../tools/typesetting/tex/tetex { libpng = libpng12; };
 
   tewi-font = callPackage ../data/fonts/tewi
@@ -26543,6 +27400,10 @@ in
 
   vokoscreen = libsForQt5.callPackage ../applications/video/vokoscreen { };
 
+  vokoscreen-ng = libsForQt5.callPackage ../applications/video/vokoscreen-ng {
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly;
+  };
+
   vttest = callPackage ../tools/misc/vttest { };
 
   wacomtablet = libsForQt5.callPackage ../tools/misc/wacomtablet { };
@@ -26562,6 +27423,8 @@ in
 
   webfs = callPackage ../servers/http/webfs { };
 
+  webkit2-sharp = callPackage ../development/libraries/webkit2-sharp {  };
+
   websocketd = callPackage ../applications/networking/websocketd { };
 
   wikicurses = callPackage ../applications/misc/wikicurses {
@@ -26596,6 +27459,8 @@ in
 
   wmutils-core = callPackage ../tools/X11/wmutils-core { };
 
+  wmutils-libwm = callPackage ../tools/X11/wmutils-libwm { };
+
   wmutils-opt = callPackage ../tools/X11/wmutils-opt { };
 
   wordpress = callPackage ../servers/web-apps/wordpress { };
@@ -26690,6 +27555,8 @@ in
 
   zap = callPackage ../tools/networking/zap { };
 
+  zigbee2mqtt = callPackage ../servers/zigbee2mqtt { };
+
   zopfli = callPackage ../tools/compression/zopfli { };
 
   myEnvFun = callPackage ../misc/my-env {
@@ -26766,7 +27633,7 @@ in
     inherit pkgs;
   };
 
-  golden-cheetah = libsForQt5.callPackage ../applications/misc/golden-cheetah {};
+  golden-cheetah = libsForQt512.callPackage ../applications/misc/golden-cheetah {};
 
   linkchecker = callPackage ../tools/networking/linkchecker { };
 
@@ -26784,6 +27651,8 @@ in
 
   sequelpro = callPackage ../applications/misc/sequelpro {};
 
+  snowsql = callPackage ../applications/misc/snowsql {};
+
   sidequest = callPackage ../applications/misc/sidequest {};
 
   maphosts = callPackage ../tools/networking/maphosts {};
@@ -26843,6 +27712,10 @@ in
 
   openfst = callPackage ../development/libraries/openfst {};
 
+  opengrm-ngram = callPackage ../development/libraries/opengrm-ngram {};
+
+  phonetisaurus = callPackage ../development/libraries/phonetisaurus {};
+
   duti = callPackage ../os-specific/darwin/duti {};
 
   dnstracer = callPackage ../tools/networking/dnstracer {
@@ -26930,6 +27803,8 @@ in
 
   kube3d =  callPackage ../applications/networking/cluster/kube3d {};
 
+  zfs-prune-snapshots = callPackage ../tools/backup/zfs-prune-snapshots {};
+
   zfs-replicate = python3Packages.callPackage ../tools/backup/zfs-replicate { };
 
   runwayml = callPackage ../applications/graphics/runwayml {};
@@ -26989,4 +27864,6 @@ in
   gpio-utils = callPackage ../os-specific/linux/kernel/gpio-utils.nix { };
 
   navidrome = callPackage ../servers/misc/navidrome {};
+
+  zettlr = callPackage ../applications/misc/zettlr { };
 }
diff --git a/pkgs/top-level/beam-packages.nix b/pkgs/top-level/beam-packages.nix
index f6fe58a83d0..84d2a4e3116 100644
--- a/pkgs/top-level/beam-packages.nix
+++ b/pkgs/top-level/beam-packages.nix
@@ -13,27 +13,46 @@ rec {
     erlang_odbc_javac = erlangR22_odbc_javac;
     erlang_nox = erlangR22_nox;
 
-    # These are standard Erlang versions, using the generic builder.
-    erlangR18 = lib.callErlang ../development/interpreters/erlang/R18.nix {
+    # Standard Erlang versions, using the generic builder.
+
+    # R23
+    erlangR23 = lib.callErlang ../development/interpreters/erlang/R23.nix {
       wxGTK = wxGTK30;
-      openssl = openssl_1_0_2;
+      # Can be enabled since the bug has been fixed in https://github.com/erlang/otp/pull/2508
+      parallelBuild = true;
     };
-    erlangR18_odbc = erlangR18.override { odbcSupport = true; };
-    erlangR18_javac = erlangR18.override { javacSupport = true; };
-    erlangR18_odbc_javac = erlangR18.override {
+    erlangR23_odbc = erlangR23.override { odbcSupport = true; };
+    erlangR23_javac = erlangR23.override { javacSupport = true; };
+    erlangR23_odbc_javac = erlangR23.override {
       javacSupport = true; odbcSupport = true;
     };
-    erlangR18_nox = erlangR18.override { wxSupport = false; };
-    erlangR19 = lib.callErlang ../development/interpreters/erlang/R19.nix {
+    erlangR23_nox = erlangR23.override { wxSupport = false; };
+
+    # R22
+    erlangR22 = lib.callErlang ../development/interpreters/erlang/R22.nix {
       wxGTK = wxGTK30;
-      openssl = openssl_1_0_2;
+      # Can be enabled since the bug has been fixed in https://github.com/erlang/otp/pull/2508
+      parallelBuild = true;
     };
-    erlangR19_odbc = erlangR19.override { odbcSupport = true; };
-    erlangR19_javac = erlangR19.override { javacSupport = true; };
-    erlangR19_odbc_javac = erlangR19.override {
+    erlangR22_odbc = erlangR22.override { odbcSupport = true; };
+    erlangR22_javac = erlangR22.override { javacSupport = true; };
+    erlangR22_odbc_javac = erlangR22.override {
       javacSupport = true; odbcSupport = true;
     };
-    erlangR19_nox = erlangR19.override { wxSupport = false; };
+    erlangR22_nox = erlangR22.override { wxSupport = false; };
+
+    # R21
+    erlangR21 = lib.callErlang ../development/interpreters/erlang/R21.nix {
+      wxGTK = wxGTK30;
+    };
+    erlangR21_odbc = erlangR21.override { odbcSupport = true; };
+    erlangR21_javac = erlangR21.override { javacSupport = true; };
+    erlangR21_odbc_javac = erlangR21.override {
+      javacSupport = true; odbcSupport = true;
+    };
+    erlangR21_nox = erlangR21.override { wxSupport = false; };
+
+    # R20
     erlangR20 = lib.callErlang ../development/interpreters/erlang/R20.nix {
       wxGTK = wxGTK30;
     };
@@ -43,24 +62,30 @@ rec {
       javacSupport = true; odbcSupport = true;
     };
     erlangR20_nox = erlangR20.override { wxSupport = false; };
-    erlangR21 = lib.callErlang ../development/interpreters/erlang/R21.nix {
+
+    # R19
+    erlangR19 = lib.callErlang ../development/interpreters/erlang/R19.nix {
       wxGTK = wxGTK30;
+      openssl = openssl_1_0_2;
     };
-    erlangR21_odbc = erlangR21.override { odbcSupport = true; };
-    erlangR21_javac = erlangR21.override { javacSupport = true; };
-    erlangR21_odbc_javac = erlangR21.override {
+    erlangR19_odbc = erlangR19.override { odbcSupport = true; };
+    erlangR19_javac = erlangR19.override { javacSupport = true; };
+    erlangR19_odbc_javac = erlangR19.override {
       javacSupport = true; odbcSupport = true;
     };
-    erlangR21_nox = erlangR21.override { wxSupport = false; };
-    erlangR22 = lib.callErlang ../development/interpreters/erlang/R22.nix {
+    erlangR19_nox = erlangR19.override { wxSupport = false; };
+
+    # R18
+    erlangR18 = lib.callErlang ../development/interpreters/erlang/R18.nix {
       wxGTK = wxGTK30;
+      openssl = openssl_1_0_2;
     };
-    erlangR22_odbc = erlangR22.override { odbcSupport = true; };
-    erlangR22_javac = erlangR22.override { javacSupport = true; };
-    erlangR22_odbc_javac = erlangR22.override {
+    erlangR18_odbc = erlangR18.override { odbcSupport = true; };
+    erlangR18_javac = erlangR18.override { javacSupport = true; };
+    erlangR18_odbc_javac = erlangR18.override {
       javacSupport = true; odbcSupport = true;
     };
-    erlangR22_nox = erlangR22.override { wxSupport = false; };
+    erlangR18_nox = erlangR18.override { wxSupport = false; };
 
     # Basho fork, using custom builder.
     erlang_basho_R16B02 = lib.callErlang ../development/interpreters/erlang/R16B02-basho.nix {
@@ -85,10 +110,12 @@ rec {
   packages = {
     # Packages built with default Erlang version.
     erlang = packagesWith interpreters.erlang;
-    erlangR18 = packagesWith interpreters.erlangR18;
-    erlangR19 = packagesWith interpreters.erlangR19;
-    erlangR20 = packagesWith interpreters.erlangR20;
-    erlangR21 = packagesWith interpreters.erlangR21;
+
+    erlangR23 = packagesWith interpreters.erlangR23;
     erlangR22 = packagesWith interpreters.erlangR22;
+    erlangR21 = packagesWith interpreters.erlangR21;
+    erlangR20 = packagesWith interpreters.erlangR20;
+    erlangR19 = packagesWith interpreters.erlangR19;
+    erlangR18 = packagesWith interpreters.erlangR18;
   };
 }
diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix
index c1015aa939f..c6c75cd7ffd 100644
--- a/pkgs/top-level/coq-packages.nix
+++ b/pkgs/top-level/coq-packages.nix
@@ -19,7 +19,6 @@ let
       coq-bits = callPackage ../development/coq-modules/coq-bits {};
       coq-elpi = callPackage ../development/coq-modules/coq-elpi {};
       coq-ext-lib = callPackage ../development/coq-modules/coq-ext-lib {};
-      coq-extensible-records = callPackage ../development/coq-modules/coq-extensible-records {};
       coq-haskell = callPackage ../development/coq-modules/coq-haskell { };
       coqhammer = callPackage ../development/coq-modules/coqhammer {};
       coqprime = callPackage ../development/coq-modules/coqprime {};
@@ -119,7 +118,7 @@ in rec {
     version = "8.11.2";
   };
   coq_8_12 = callPackage ../applications/science/logic/coq {
-    version = "8.12+beta1";
+    version = "8.12.0";
   };
 
   coqPackages_8_5 = mkCoqPackages coq_8_5;
@@ -131,7 +130,7 @@ in rec {
   coqPackages_8_11 = mkCoqPackages coq_8_11;
   coqPackages_8_12 = mkCoqPackages coq_8_12;
   coqPackages = recurseIntoAttrs (lib.mapDerivationAttrset lib.dontDistribute
-    coqPackages_8_9
+    coqPackages_8_11
   );
   coq = coqPackages.coq;
 
diff --git a/pkgs/top-level/darwin-packages.nix b/pkgs/top-level/darwin-packages.nix
index 9423aa30725..affb4ae92c1 100644
--- a/pkgs/top-level/darwin-packages.nix
+++ b/pkgs/top-level/darwin-packages.nix
@@ -86,4 +86,10 @@ in
 
   libtapi = callPackage ../os-specific/darwin/libtapi {};
 
+  ios-deploy = callPackage ../os-specific/darwin/ios-deploy {};
+
+  discrete-scroll = callPackage ../os-specific/darwin/discrete-scroll {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
 })
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 13c5b721301..3e85109527e 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -5,10 +5,15 @@ let
   integerSimpleExcludes = [
     "ghc822Binary"
     "ghc865Binary"
-    "ghc844"
     "ghcjs"
     "ghcjs86"
     "integer-simple"
+    "native-bignum"
+    "ghcHEAD"
+  ];
+
+  nativeBignumIncludes = [
+    "ghcHEAD"
   ];
 
   haskellLib = import ../development/haskell-modules/lib.nix {
@@ -44,12 +49,6 @@ in {
 
     ghc865Binary = callPackage ../development/compilers/ghc/8.6.5-binary.nix { };
 
-    ghc844 = callPackage ../development/compilers/ghc/8.4.4.nix {
-      bootPkgs = packages.ghc822Binary;
-      sphinx = buildPackages.python3Packages.sphinx_1_7_9;
-      buildLlvmPackages = buildPackages.llvmPackages_5;
-      llvmPackages = pkgs.llvmPackages_5;
-    };
     ghc865 = callPackage ../development/compilers/ghc/8.6.5.nix {
       bootPkgs = packages.ghc822Binary;
       inherit (buildPackages.python3Packages) sphinx;
@@ -68,12 +67,24 @@ in {
       buildLlvmPackages = buildPackages.llvmPackages_7;
       llvmPackages = pkgs.llvmPackages_7;
     };
+    ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix {
+      bootPkgs = packages.ghc865Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      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 {
+      bootPkgs = packages.ghc865Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      buildLlvmPackages = buildPackages.llvmPackages_9;
+      llvmPackages = pkgs.llvmPackages_9;
+    };
     ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
       bootPkgs = packages.ghc883; # no binary yet
       inherit (buildPackages.python3Packages) sphinx;
@@ -98,6 +109,16 @@ in {
     in pkgs.recurseIntoAttrs (pkgs.lib.genAttrs
       integerSimpleGhcNames
       (name: compiler.${name}.override { enableIntegerSimple = true; }));
+
+    # Starting from GHC 9, integer-{simple,gmp} is replaced by ghc-bignum
+    # with "native" and "gmp" backends.
+    native-bignum = let
+      nativeBignumGhcNames = pkgs.lib.filter
+        (name: builtins.elem name nativeBignumIncludes)
+        (pkgs.lib.attrNames compiler);
+    in pkgs.recurseIntoAttrs (pkgs.lib.genAttrs
+      nativeBignumGhcNames
+      (name: compiler.${name}.override { enableNativeBignum = true; }));
   };
 
   # Default overrides that are applied to all package sets.
@@ -118,11 +139,6 @@ in {
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.6.x.nix { };
       packageSetConfig = bootstrapPackageSet;
     };
-    ghc844 = callPackage ../development/haskell-modules {
-      buildHaskellPackages = bh.packages.ghc844;
-      ghc = bh.compiler.ghc844;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.4.x.nix { };
-    };
     ghc865 = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghc865;
       ghc = bh.compiler.ghc865;
@@ -138,11 +154,21 @@ in {
       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 { };
+    };
     ghcHEAD = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghcHEAD;
       ghc = bh.compiler.ghcHEAD;
@@ -171,5 +197,16 @@ in {
       };
     });
 
+    native-bignum = let
+      nativeBignumGhcNames = pkgs.lib.filter
+        (name: builtins.elem name nativeBignumIncludes)
+        (pkgs.lib.attrNames compiler);
+    in pkgs.lib.genAttrs nativeBignumGhcNames (name: packages.${name}.override {
+      ghc = bh.compiler.native-bignum.${name};
+      buildHaskellPackages = bh.packages.native-bignum.${name};
+      overrides = _self : _super : {
+        integer-gmp = null;
+      };
+    });
   };
 }
diff --git a/pkgs/top-level/make-tarball.nix b/pkgs/top-level/make-tarball.nix
index 6bb243879e9..f65829e29ca 100644
--- a/pkgs/top-level/make-tarball.nix
+++ b/pkgs/top-level/make-tarball.nix
@@ -40,7 +40,6 @@ releaseTools.sourceTarball {
   checkPhase = ''
     set -o pipefail
 
-    export NIX_DB_DIR=$TMPDIR
     export NIX_STATE_DIR=$TMPDIR
     export NIX_PATH=nixpkgs=$TMPDIR/barf.nix
     opts=(--option build-users-group "")
@@ -108,6 +107,7 @@ releaseTools.sourceTarball {
     echo -n '}' >> tmp
     packages=$out/packages.json.br
     < tmp sed "s|$(pwd)/||g" | jq -c | brotli -9 > $packages
+    rm tmp
 
     echo "file json-br $packages" >> $out/nix-support/hydra-build-products
   '';
diff --git a/pkgs/top-level/metrics.nix b/pkgs/top-level/metrics.nix
index 244b0ce7a66..2bfcb9d5d80 100644
--- a/pkgs/top-level/metrics.nix
+++ b/pkgs/top-level/metrics.nix
@@ -7,7 +7,6 @@ runCommand "nixpkgs-metrics"
     requiredSystemFeatures = [ "benchmark" ];
   }
   ''
-    export NIX_DB_DIR=$TMPDIR
     export NIX_STATE_DIR=$TMPDIR
     nix-store --init
 
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index bc7f1532f78..4ce0c1a96dd 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -137,12 +137,16 @@ let
 
     cohttp = callPackage ../development/ocaml-modules/cohttp { };
 
+    cohttp-async = callPackage ../development/ocaml-modules/cohttp/async.nix { };
+
     cohttp-lwt = callPackage ../development/ocaml-modules/cohttp/lwt.nix { };
 
     cohttp-lwt-unix = callPackage ../development/ocaml-modules/cohttp/lwt-unix.nix { };
 
     conduit = callPackage ../development/ocaml-modules/conduit { };
 
+    conduit-async = callPackage ../development/ocaml-modules/conduit/async.nix { };
+
     conduit-lwt = callPackage ../development/ocaml-modules/conduit/lwt.nix { };
 
     conduit-lwt-unix = callPackage ../development/ocaml-modules/conduit/lwt-unix.nix { };
@@ -151,6 +155,8 @@ let
 
     containers = callPackage ../development/ocaml-modules/containers { };
 
+    containers-data = callPackage ../development/ocaml-modules/containers/data.nix { };
+
     cow = callPackage ../development/ocaml-modules/cow { };
 
     cpdf = callPackage ../development/ocaml-modules/cpdf { };
@@ -167,6 +173,8 @@ let
 
     cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
 
+    csexp = callPackage ../development/ocaml-modules/csexp { };
+
     cstruct =
       if lib.versionAtLeast ocaml.version "4.2"
       then callPackage ../development/ocaml-modules/cstruct {}
@@ -218,16 +226,20 @@ let
     dune = callPackage ../development/tools/ocaml/dune { };
 
     dune_2 =
-      if lib.versionAtLeast ocaml.version "4.07"
+      if lib.versionAtLeast ocaml.version "4.08"
       then callPackage ../development/tools/ocaml/dune/2.nix { }
       else if lib.versionAtLeast ocaml.version "4.02"
       then pkgs.dune_2
       else throw "dune_2 is not available for OCaml ${ocaml.version}";
 
+    dune-action-plugin = callPackage ../development/ocaml-modules/dune-action-plugin { };
+
     dune-build-info = callPackage ../development/ocaml-modules/dune-build-info { };
 
     dune-configurator = callPackage ../development/ocaml-modules/dune-configurator { };
 
+    dune-glob = callPackage ../development/ocaml-modules/dune-glob { };
+
     dune-private-libs = callPackage ../development/ocaml-modules/dune-private-libs { };
 
     dune-release = callPackage ../development/tools/ocaml/dune-release {
@@ -274,6 +286,8 @@ let
 
     farfadet = callPackage ../development/ocaml-modules/farfadet { };
 
+    fdkaac = callPackage ../development/ocaml-modules/fdkaac { };
+
     fiat-p256 = callPackage ../development/ocaml-modules/fiat-p256 { };
 
     fieldslib_p4 = callPackage ../development/ocaml-modules/fieldslib { };
@@ -300,6 +314,8 @@ let
 
     gen = callPackage ../development/ocaml-modules/gen { };
 
+    genspio = callPackage ../development/ocaml-modules/genspio { };
+
     gmap = callPackage ../development/ocaml-modules/gmap { };
 
     gnuplot = callPackage ../development/ocaml-modules/gnuplot {
@@ -310,6 +326,8 @@ let
 
     herelib = callPackage ../development/ocaml-modules/herelib { };
 
+    hidapi = callPackage ../development/ocaml-modules/hidapi { };
+
     higlo = callPackage ../development/ocaml-modules/higlo { };
 
     hkdf = callPackage ../development/ocaml-modules/hkdf { };
@@ -429,6 +447,8 @@ let
 
     jsonm = callPackage ../development/ocaml-modules/jsonm { };
 
+    jwto = callPackage ../development/ocaml-modules/jwto { };
+
     kafka = callPackage ../development/ocaml-modules/kafka { };
 
     ke = callPackage ../development/ocaml-modules/ke { };
@@ -569,8 +589,12 @@ let
 
     mtime =  callPackage ../development/ocaml-modules/mtime { };
 
+    mustache =  callPackage ../development/ocaml-modules/mustache { };
+
     nocrypto =  callPackage ../development/ocaml-modules/nocrypto { };
 
+    nonstd =  callPackage ../development/ocaml-modules/nonstd { };
+
     notty = callPackage ../development/ocaml-modules/notty { };
 
     npy = callPackage ../development/ocaml-modules/npy {
@@ -734,6 +758,12 @@ let
 
     piqi-ocaml = callPackage ../development/ocaml-modules/piqi-ocaml { };
 
+    posix-base = callPackage ../development/ocaml-modules/posix/base.nix { };
+
+    posix-socket = callPackage ../development/ocaml-modules/posix/socket.nix { };
+
+    posix-types = callPackage ../development/ocaml-modules/posix/types.nix { };
+
     ppxfind = callPackage ../development/ocaml-modules/ppxfind { };
 
     ppxlib = callPackage ../development/ocaml-modules/ppxlib { };
@@ -754,10 +784,14 @@ let
 
     seq = callPackage ../development/ocaml-modules/seq { };
 
+    sosa = callPackage ../development/ocaml-modules/sosa { };
+
     spacetime_lib = callPackage ../development/ocaml-modules/spacetime_lib { };
 
     sqlexpr = callPackage ../development/ocaml-modules/sqlexpr { };
 
+    tsort = callPackage ../development/ocaml-modules/tsort { };
+
     tuntap = callPackage ../development/ocaml-modules/tuntap { };
 
     tyxml = callPackage ../development/ocaml-modules/tyxml { };
@@ -838,10 +872,14 @@ let
 
     ppx_tools_versioned = callPackage ../development/ocaml-modules/ppx_tools_versioned { };
 
+    ppx_yojson_conv_lib = callPackage ../development/ocaml-modules/ppx_yojson_conv_lib {};
+
     printbox = callPackage ../development/ocaml-modules/printbox { };
 
     process = callPackage ../development/ocaml-modules/process { };
 
+    prof_spacetime = callPackage ../development/ocaml-modules/prof_spacetime { };
+
     ptmap = callPackage ../development/ocaml-modules/ptmap { };
 
     pycaml = callPackage ../development/ocaml-modules/pycaml { };
@@ -878,6 +916,10 @@ let
 
     sqlite3EZ = callPackage ../development/ocaml-modules/sqlite3EZ { };
 
+    srt = callPackage ../development/ocaml-modules/srt {
+      inherit (pkgs) srt;
+    };
+
     ssl = callPackage ../development/ocaml-modules/ssl { };
 
     stdlib-shims = callPackage ../development/ocaml-modules/stdlib-shims { };
@@ -927,6 +969,8 @@ let
 
     wasm = callPackage ../development/ocaml-modules/wasm { };
 
+    webbrowser = callPackage ../development/ocaml-modules/webbrowser { };
+
     webmachine = callPackage ../development/ocaml-modules/webmachine { };
 
     wtf8 = callPackage ../development/ocaml-modules/wtf8 { };
@@ -967,7 +1011,7 @@ let
     janeStreet =
     if lib.versionOlder "4.08" ocaml.version
     then import ../development/ocaml-modules/janestreet/0.13.nix {
-      inherit ctypes janePackage num octavius ppxlib re;
+      inherit ctypes dune-configurator janePackage num octavius ppxlib re;
       inherit (pkgs) openssl;
     }
     else if lib.versionOlder "4.07" ocaml.version
@@ -1197,7 +1241,7 @@ in let inherit (pkgs) callPackage; in rec
 
   ocamlPackages_4_11 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.11.nix { });
 
-  ocamlPackages_latest = ocamlPackages_4_10;
+  ocamlPackages_latest = ocamlPackages_4_11;
 
   ocamlPackages = ocamlPackages_4_10;
 }
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 6520ee88a61..d89bcdf4310 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -11,8 +11,8 @@
 , perl, overrides, buildPerl, shortenPerlShebang
 }:
 
-# cpan2nix assumes that perl-packages.nix will be used only with perl 5.28.2 or above
-assert stdenv.lib.versionAtLeast perl.version "5.28.2";
+# cpan2nix assumes that perl-packages.nix will be used only with perl 5.30.3 or above
+assert stdenv.lib.versionAtLeast perl.version "5.30.3";
 let
   inherit (stdenv.lib) maintainers;
   self = _self // (overrides pkgs);
@@ -162,10 +162,10 @@ let
 
   AlienBuild = buildPerlPackage {
     pname = "Alien-Build";
-    version = "1.98";
+    version = "2.26";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Build-1.98.tar.gz";
-      sha256 = "12w9da57616gmcj69yv7cjv423cj957dm0f84cn2q093g64kjmif";
+      url = mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Build-2.26.tar.gz;
+      sha256 = "0wfgfj6rvscqs3ixpybgrdmmnpxvf194iwbnl89jkqc25ipmc15i";
     };
     propagatedBuildInputs = [ CaptureTiny FFICheckLib FileWhich Filechdir PathTiny PkgConfig ];
     buildInputs = [ DevelHide Test2Suite ];
@@ -177,13 +177,13 @@ let
 
   AlienGMP = buildPerlPackage {
     pname = "Alien-GMP";
-    version = "1.14";
+    version = "1.16";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-GMP-1.14.tar.gz";
-      sha256 = "116vvh1b0d1ykkklqgfxfn89g3bw90a4cj3qrvsnkw1kk5cmn60a";
+      url = mirror://cpan/authors/id/P/PL/PLICEASE/Alien-GMP-1.16.tar.gz;
+      sha256 = "199x24pl6jnqshgnl066lhdf2fkqa6l1fml9g3qn5grmwn7d8309";
     };
     propagatedBuildInputs = [ AlienBuild ];
-    buildInputs = [ pkgs.gmp DevelChecklib HTMLParser SortVersions Test2Suite URI ];
+    buildInputs = [ pkgs.gmp Alienm4 DevelChecklib IOSocketSSL MojoDOM58 NetSSLeay SortVersions Test2Suite URI ];
     meta = {
       description = "Alien package for the GNU Multiple Precision library.";
       license = with stdenv.lib.licenses; [ lgpl3Plus ];
@@ -192,10 +192,10 @@ let
 
   AlienLibxml2 = buildPerlPackage {
     pname = "Alien-Libxml2";
-    version = "0.12";
+    version = "0.16";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Libxml2-0.12.tar.gz";
-      sha256 = "0b3dj1510fxldhicijvw390gnh5j1k6rjzcc2jzs9f8nwfkqh6r2";
+      url = mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Libxml2-0.16.tar.gz;
+      sha256 = "15rvllspikyr8412v8dpl2f2w5vxnjgnddnkz378sy2g0mc6mw2n";
     };
     propagatedBuildInputs = [ AlienBuild ];
     buildInputs = [ pkgs.libxml2 MojoDOM58 SortVersions Test2Suite URI ];
@@ -273,6 +273,52 @@ let
     buildInputs = [ LWPProtocolHttps ];
   };
 
+  Alienm4 = buildPerlPackage {
+    pname = "Alien-m4";
+    version = "0.19";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PL/PLICEASE/Alien-m4-0.19.tar.gz;
+      sha256 = "1xnh8qa99dcvqcqzbpy0s5jrxvn7wa5ydz3lfd56n358l5jfzns9";
+    };
+    propagatedBuildInputs = [ AlienBuild ];
+    buildInputs = [ Alienpatch IOSocketSSL MojoDOM58 NetSSLeay SortVersions Test2Suite URI pkgs.gnum4 ];
+    meta = {
+      description = "Find or build GNU m4";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Alienpatch = buildPerlPackage {
+    pname = "Alien-patch";
+    version = "0.15";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PL/PLICEASE/Alien-patch-0.15.tar.gz;
+      sha256 = "1l00mq56596wn09nn7fv552j2aa7sgh46bvx5xlncsnrn8jp5mpy";
+    };
+    propagatedBuildInputs = [ AlienBuild ];
+    buildInputs = [ IOSocketSSL MojoDOM58 NetSSLeay SortVersions Test2Suite URI ];
+    meta = {
+      description = "Find or build patch";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AltCryptRSABigInt = buildPerlPackage {
+    pname = "Alt-Crypt-RSA-BigInt";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANAJ/Alt-Crypt-RSA-BigInt-0.06.tar.gz";
+      sha256 = "76f434cab36999cdf09811345bb39d6b7cbed7e085b02338328c7f46e08b38f3";
+    };
+    propagatedBuildInputs = [ ClassLoader ConvertASCIIArmour CryptBlowfish CryptCBC DataBuffer DigestMD2 MathBigIntGMP MathPrimeUtil MathPrimeUtilGMP SortVersions TieEncryptedHash ];
+    meta = {
+      homepage = "https://github.com/danaj/Alt-Crypt-RSA-BigInt";
+      description = "RSA public-key cryptosystem, using Math::BigInt";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   AnyEvent = buildPerlPackage {
     pname = "AnyEvent";
     version = "7.17";
@@ -316,10 +362,10 @@ let
 
   AnyEventHTTP = buildPerlPackage {
     pname = "AnyEvent-HTTP";
-    version = "2.24";
+    version = "2.25";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-HTTP-2.24.tar.gz";
-      sha256 = "0358a542baa45403d81c0a70e43e79c044ddfa1371161d043f002acef63121dd";
+      url = mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-HTTP-2.25.tar.gz;
+      sha256 = "5cfa53416124176f6f4cd32b00ea8ca79a2d5df51258683989cd04fe86e25013";
     };
     propagatedBuildInputs = [ AnyEvent commonsense ];
   };
@@ -340,12 +386,12 @@ let
 
   AnyEventRabbitMQ = buildPerlPackage {
     pname = "AnyEvent-RabbitMQ";
-    version = "1.19";
+    version = "1.22";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DL/DLAMBLEY/AnyEvent-RabbitMQ-1.19.tar.gz";
-      sha256 = "a440ec2fa5a4018ad44739baaa9601cc460ad497282e89110ba8e3cf23312f0a";
+      url = mirror://cpan/authors/id/D/DL/DLAMBLEY/AnyEvent-RabbitMQ-1.22.tar.gz;
+      sha256 = "98c52a1fe700710f3e5bc55a38b25de625e9b2e8341d278dcf9e1b3f3d19acee";
     };
-    buildInputs = [ TestException ];
+    buildInputs = [ FileShareDirInstall TestException ];
     propagatedBuildInputs = [ AnyEvent DevelGlobalDestruction FileShareDir ListMoreUtils NetAMQP Readonly namespaceclean ];
     meta = {
       description = "An asynchronous and multi channel Perl AMQP client";
@@ -378,10 +424,10 @@ let
 
   ApacheAuthCookie = buildPerlPackage {
     pname = "Apache-AuthCookie";
-    version = "3.28";
+    version = "3.30";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MS/MSCHOUT/Apache-AuthCookie-3.28.tar.gz";
-      sha256 = "bcd795a7f654a94ae0a6bd734ba4d8ba1085371fca486229dba49f1c2d62142b";
+      url = mirror://cpan/authors/id/M/MS/MSCHOUT/Apache-AuthCookie-3.30.tar.gz;
+      sha256 = "1f71b94d3d55a950a4b32dae4e90f6e76c8157508a7e2aee50621b179aadb1fb";
     };
     buildInputs = [ ApacheTest ];
     propagatedBuildInputs = [ ClassLoad HTTPBody HashMultiValue WWWFormUrlEncoded ];
@@ -456,10 +502,10 @@ let
 
   AppClusterSSH = buildPerlModule {
     pname = "App-ClusterSSH";
-    version = "4.14";
+    version = "4.15";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DU/DUNCS/App-ClusterSSH-4.14.tar.gz";
-      sha256 = "020p28xl9507blvr8lr7hdxk1cl8jjkz5rkrkh7g538g52sa2cmi";
+      url = mirror://cpan/authors/id/D/DU/DUNCS/App-ClusterSSH-4.15.tar.gz;
+      sha256 = "1apk4yi9wfxrvspsfxr74jl1zr5z56ghknnmx8k5648zga1mn9z1";
     };
     propagatedBuildInputs = [ ExceptionClass Tk X11ProtocolOther XMLSimple ];
     buildInputs = [ DataDump FileWhich Readonly TestDifferences TestTrap ];
@@ -585,13 +631,13 @@ let
   };
 
   AppSqitch = buildPerlModule {
-    version = "1.0.0";
+    version = "1.1.0";
     pname = "App-Sqitch";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-v1.0.0.tar.gz";
-      sha256 = "f46466c1e9ad8bbabf6844fed4f6e534ea475731de61b775ad7c331db1ca9c5c";
+      url = mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-v1.1.0.tar.gz;
+      sha256 = "ee146cd75d6300837e6ca559bb0bde247d42123c96b2c5d4b2800f38d3e3d1ab";
     };
-    buildInputs = [ CaptureTiny TestDeep TestDir TestException TestFile TestFileContents TestMockModule TestNoWarnings TestWarn ];
+    buildInputs = [ CaptureTiny TestDeep TestDir TestException TestFile TestFileContents TestMockModule TestMockObject TestNoWarnings TestWarn ];
     propagatedBuildInputs = [ Clone ConfigGitLike DBI DateTime EncodeLocale HashMerge IOPager IPCRun3 IPCSystemSimple ListMoreUtils PathClass PerlIOutf8_strict StringFormatter StringShellQuote TemplateTiny Throwable TypeTiny URIdb libintl_perl ];
     doCheck = false;  # Can't find home directory.
     meta = {
@@ -720,10 +766,10 @@ let
 
   ArchiveTar = buildPerlPackage {
     pname = "Archive-Tar";
-    version = "2.32";
+    version = "2.36";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Tar-2.32.tar.gz";
-      sha256 = "92783780731ab0c9247adf43e70f4801e8317e3915ea87e38b85c8f734e8fca2";
+      url = mirror://cpan/authors/id/B/BI/BINGOS/Archive-Tar-2.36.tar.gz;
+      sha256 = "16ba52e0babe54f8c4deb11b103a46186763173607d59649130d0fffdd36968e";
     };
     meta = {
       description = "Manipulates TAR archives";
@@ -746,10 +792,10 @@ let
 
   ArchiveZip = buildPerlPackage {
     pname = "Archive-Zip";
-    version = "1.67";
+    version = "1.68";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PH/PHRED/Archive-Zip-1.67.tar.gz";
-      sha256 = "0x17b7s5c3bqy9gx7psdqxbzkilylnwwd3c3i68vynbn9hs788my";
+      url = mirror://cpan/authors/id/P/PH/PHRED/Archive-Zip-1.68.tar.gz;
+      sha256 = "0l663s3a68p8r2qjy4pn1g05lx0i8js8wpz7qqln3bsvg1fihklq";
     };
     buildInputs = [ TestMockModule ];
     meta = {
@@ -803,6 +849,49 @@ let
     };
   };
 
+  AuthenKrb5 = buildPerlModule {
+    pname = "Authen-Krb5";
+    version = "1.905";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IO/IOANR/Authen-Krb5-1.905.tar.gz";
+      sha256 = "0kgpl0x1qxq1p2ccxy8qqkrvqba2gq6aq6p931qnz9812nxh0yyp";
+    };
+    perlPreHook = "export LD=$CC";
+    propagatedBuildInputs = [ pkgs.libkrb5 DevelChecklib FileWhich PkgConfig ];
+    meta = {
+      description = "XS bindings for Kerberos 5";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AuthenKrb5Admin = buildPerlPackage rec {
+    pname = "Authen-Krb5-Admin";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SJ/SJQUINNEY/${pname}-${version}.tar.gz";
+      sha256 = "5dd49cacd983efd61a8c3f1a56571bb73785eb155908b5d7bec97eed78df0c54";
+    };
+    propagatedBuildInputs = [ pkgs.krb5Full.dev AuthenKrb5 ];
+    # The following ENV variables are required by Makefile.PL to find
+    # programs in krb5Full.dev. It is not enough to just specify the
+    # path to krb5-config as this tool returns the prefix of krb5Full,
+    # which implies a working value for KRB5_LIBDIR, but not the others.
+    perlPreHook = ''
+      export KRB5_CONFTOOL=${pkgs.krb5Full.dev}/bin/krb5-config
+      export KRB5_BINDIR=${pkgs.krb5Full.dev}/bin
+      export KRB5_INCDIR=${pkgs.krb5Full.dev}/include
+    '';
+    # Tests require working Kerberos infrastructure so replace with a
+    # simple attempt to exercise the module.
+    checkPhase = ''
+      perl -I blib/lib -I blib/arch -MAuthen::Krb5::Admin -e 'print "1..1\nok 1\n"'
+    '';
+    meta = {
+      description = "Perl extension for MIT Kerberos 5 admin interface";
+      license = stdenv.lib.licenses.bsd3;
+    };
+  };
+
   AuthenModAuthPubTkt = buildPerlPackage {
     pname = "Authen-ModAuthPubTkt";
     version = "0.1.1";
@@ -906,7 +995,7 @@ let
       sha256 = "45108c239a7373d00941dcf0d171acd03e7c16a63ce6f7d9568ff052b17cf5a8";
     };
     buildInputs = [ TestFailWarnings TestFatal ];
-    propagatedBuildInputs = [ AuthenSASLSASLprep CryptURandom Moo PBKDF2Tiny TryTiny TypeTiny namespaceclean ];
+    propagatedBuildInputs = [ AuthenSASLSASLprep CryptURandom Moo PBKDF2Tiny TypeTiny namespaceclean ];
     meta = {
       homepage = "https://github.com/dagolden/Authen-SCRAM";
       description = "Salted Challenge Response Authentication Mechanism (RFC 5802)";
@@ -1019,10 +1108,10 @@ let
 
   BCOW = buildPerlPackage {
     pname = "B-COW";
-    version = "0.002";
+    version = "0.004";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AT/ATOOMIC/B-COW-0.002.tar.gz";
-      sha256 = "0z2px2x15vr1y5rxsv7d80kh186ld7a45nbm4lsbs07g8y0p7rzw";
+      url = mirror://cpan/authors/id/A/AT/ATOOMIC/B-COW-0.004.tar.gz;
+      sha256 = "0lazb25jzhdha4dmrkdxn1pw1crc6iqzspvcq315p944xmsvgbzw";
     };
     meta = {
       description = "B::COW additional B helpers to check COW status";
@@ -1042,6 +1131,20 @@ let
     };
   };
 
+  BeanstalkClient = buildPerlPackage {
+    pname = "Beanstalk-Client";
+    version = "1.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GB/GBARR/Beanstalk-Client-1.07.tar.gz";
+      sha256 = "3188ab1127f2caba97df65c84f69db0ec70c64e5d70f296f9a2674fa79c112cc";
+    };
+    propagatedBuildInputs = [ ClassAccessor YAMLSyck ];
+    meta = {
+      description = "Client to communicate with beanstalkd server";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   BerkeleyDB = buildPerlPackage {
     pname = "BerkeleyDB";
     version = "0.63";
@@ -1236,10 +1339,10 @@ let
 
   BusinessISSN = buildPerlPackage {
     pname = "Business-ISSN";
-    version = "1.003";
+    version = "1.004";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISSN-1.003.tar.gz";
-      sha256 = "1272456c19937a24bc5f9a0db9dc447043591137719ee4dc955a63be544b99d1";
+      url = mirror://cpan/authors/id/B/BD/BDFOY/Business-ISSN-1.004.tar.gz;
+      sha256 = "97ecab15d24d11e2852bf0b28f84c8798bd38402a0a69e17be0e6689b272715e";
     };
     meta = {
       description = "Work with International Standard Serial Numbers";
@@ -1275,10 +1378,10 @@ let
 
   CacheFastMmap = buildPerlPackage {
     pname = "Cache-FastMmap";
-    version = "1.48";
+    version = "1.49";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RO/ROBM/Cache-FastMmap-1.48.tar.gz";
-      sha256 = "118y5lxwa092zrii7mcwnqypff7424w1dpgfkg8zlnz7h2mmnd9c";
+      url = mirror://cpan/authors/id/R/RO/ROBM/Cache-FastMmap-1.49.tar.gz;
+      sha256 = "1azz66d4syk6b6gc95drkglajvf8igiy3449hpsm444inis9mscm";
     };
   };
 
@@ -1310,10 +1413,10 @@ let
 
   CacheMemcachedFast = buildPerlPackage {
     pname = "Cache-Memcached-Fast";
-    version = "0.25";
+    version = "0.26";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RA/RAZ/Cache-Memcached-Fast-0.25.tar.gz";
-      sha256 = "0ijw5hlzas1aprp3s6wzabch426m1d8cvp1wn9qphrn4jj82aakq";
+      url = mirror://cpan/authors/id/R/RA/RAZ/Cache-Memcached-Fast-0.26.tar.gz;
+      sha256 = "16m0xafidycrlcvbv3zmbr5pzvqyqyr2qb0khpry99nc4bcld3jy";
     };
     meta = {
       description = "Perl client for B<memcached>, in C language";
@@ -1618,10 +1721,10 @@ let
 
   CatalystDevel = buildPerlPackage {
     pname = "Catalyst-Devel";
-    version = "1.39";
+    version = "1.40";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Devel-1.39.tar.gz";
-      sha256 = "bce371ba801c7d79eff3257e0af907cf62f140de968f0d63bf55be37d702a58a";
+      url = mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-Devel-1.40.tar.gz;
+      sha256 = "8c5f064b01fa58dce395ae46f33a0d37c4cb03472dde7c5076b6df1f99e116bb";
     };
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ CatalystActionRenderView CatalystPluginConfigLoader CatalystPluginStaticSimple ConfigGeneral FileChangeNotify FileCopyRecursive ModuleInstall TemplateToolkit ];
@@ -2063,7 +2166,7 @@ let
       ../development/perl-modules/CatalystXScriptServerStarman-fork-arg.patch
     ];
     buildInputs = [ TestWWWMechanizeCatalyst ];
-    propagatedBuildInputs = [ CatalystRuntime Starman ];
+    propagatedBuildInputs = [ CatalystRuntime Starman PodParser ];
     meta = {
       description = "Replace the development server with Starman";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -2087,10 +2190,10 @@ let
 
   Catmandu = buildPerlModule {
     pname = "Catmandu";
-    version = "1.2011";
+    version = "1.2012";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/N/NI/NICS/Catmandu-1.2011.tar.gz";
-      sha256 = "0awl5qhciphnr1ihq66ssd2hzxvh1ddbr016sxb0qhxbzqv77sb9";
+      url = mirror://cpan/authors/id/N/NI/NICS/Catmandu-1.2012.tar.gz;
+      sha256 = "1dn5bqfg9vswwmvpgfziirqbjlm3gzswhknnmvg07igv1jcrk3d0";
     };
     propagatedBuildInputs = [ AnyURIEscape AppCmd CGIExpand ConfigOnion CpanelJSONXS DataCompare DataUtil IOHandleUtil LWP ListMoreUtils LogAny MIMETypes ModuleInfo MooXAliases ParserMGC PathIteratorRule PathTiny StringCamelCase TextCSV TextHogan Throwable TryTinyByClass URITemplate UUIDTiny YAMLLibYAML namespaceclean ];
     buildInputs = [ LogAnyAdapterLog4perl LogLog4perl TestDeep TestException TestLWPUserAgent TestPod ];
@@ -2115,12 +2218,26 @@ let
     };
   };
 
+  CDDBFile = buildPerlPackage {
+    pname = "CDDB-File";
+    version = "1.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TM/TMTM/CDDB-File-1.05.tar.gz;
+      sha256 = "1jf7xhd4w9iwabhz2wajh6fid3nyvkid9q5gdhyff52w86f45rpb";
+    };
+    meta = {
+      description = "Parse a CDDB/freedb data file";
+      license = stdenv.lib.licenses.artistic1;
+    };
+  };
+
+
   CGI = buildPerlPackage {
     pname = "CGI";
-    version = "4.45";
+    version = "4.49";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/L/LE/LEEJO/CGI-4.45.tar.gz";
-      sha256 = "f6c1513740ee502e947d30131da18a5595dbcd19962d3dd0ff5dedf3cd1ed407";
+      url = mirror://cpan/authors/id/L/LE/LEEJO/CGI-4.49.tar.gz;
+      sha256 = "dd5e9ce69c6e6ed9b42f0a0daeaead1c6caad3fbba2b2a4977b076bc29556b5e";
     };
     buildInputs = [ TestDeep TestNoWarnings TestWarn ];
     propagatedBuildInputs = [ HTMLParser ];
@@ -2211,10 +2328,10 @@ let
 
   CGIMinimal = buildPerlModule {
     pname = "CGI-Minimal";
-    version = "1.29";
+    version = "1.30";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SN/SNOWHARE/CGI-Minimal-1.29.tar.gz";
-      sha256 = "36c785ffacf5cdee4f1a7219ca1848b7e1700bdd71cd9116e1f00545ec88475d";
+      url = mirror://cpan/authors/id/S/SN/SNOWHARE/CGI-Minimal-1.30.tar.gz;
+      sha256 = "b94d50821b02611da6ee5423193145078c4dbb282f2b162a4b0d58094997bc47";
     };
     meta = {
       description = "A lightweight CGI form processing package";
@@ -2248,10 +2365,10 @@ let
 
   CGISimple = buildPerlModule {
     pname = "CGI-Simple";
-    version = "1.22";
+    version = "1.25";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MA/MANWAR/CGI-Simple-1.22.tar.gz";
-      sha256 = "13c7iwnnavky10ab87pi8jc1kqph03s0rhvj7myn7szhbfisc4gn";
+      url = mirror://cpan/authors/id/M/MA/MANWAR/CGI-Simple-1.25.tar.gz;
+      sha256 = "0zpl7sa8jvv3zba2vcxf3qsrjk7kk2vcznfdpmxydw06x8vczrp5";
     };
     propagatedBuildInputs = [ IOStringy ];
     meta = {
@@ -2308,6 +2425,19 @@ let
     };
   };
 
+  CiscoIPPhone = buildPerlPackage {
+    pname = "Cisco-IPPhone";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRPALMER/Cisco-IPPhone-0.05.tar.gz";
+      sha256 = "b03ca263f8f41a6ec545c5393213a3146d36bd45335ade99af51dd42ab6ee16d";
+    };
+    meta = {
+      description = "Package for creating Cisco IPPhone XML objects";
+      license = with stdenv.lib.licenses; [ artistic1 ];
+    };
+  };
+
   CLASS = buildPerlPackage {
     pname = "CLASS";
     version = "1.00";
@@ -2562,6 +2692,19 @@ let
     };
   };
 
+  ClassLoader = buildPerlPackage rec {
+    pname = "Class-Loader";
+    version = "2.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VI/VIPUL/${pname}-${version}.tar.gz";
+      sha256 = "4fef2076ead60423454ff1f4e82859a9a9b9942b5fb8eee0c98b9c63c9f2b8e7";
+    };
+    meta = {
+      description = "Load modules and create objects on demand";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   ClassMakeMethods = buildPerlPackage {
     pname = "Class-MakeMethods";
     version = "1.01";
@@ -2775,10 +2918,10 @@ let
 
   Clipboard = buildPerlModule {
     pname = "Clipboard";
-    version = "0.22";
+    version = "0.26";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Clipboard-0.22.tar.gz";
-      sha256 = "9fdb4dfc2e9bc2f3990b5b71649094dfe83aa12172c5a1809cf7e8b3be295ca7";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/Clipboard-0.26.tar.gz;
+      sha256 = "886ae43dc8538f9bfc4e07fdbcf09b7fbd6ee59c31f364618c859de14953c58a";
     };
     meta = {
       description = "Clipboard - Copy and Paste with any OS";
@@ -2795,10 +2938,10 @@ let
 
   Clone = buildPerlPackage {
     pname = "Clone";
-    version = "0.43";
+    version = "0.45";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AT/ATOOMIC/Clone-0.43.tar.gz";
-      sha256 = "1npf5s4b90ds6lv8gn76b2w4bdh0z5ni5zk4skgc2db5d12560lr";
+      url = mirror://cpan/authors/id/A/AT/ATOOMIC/Clone-0.45.tar.gz;
+      sha256 = "1rm9g68fklni63jdkrlgqq6yfj95fm33p2bq90p475gsi8sfxdnb";
     };
     meta = {
       description = "Recursively copy Perl datatypes";
@@ -2835,10 +2978,10 @@ let
 
   CodeTidyAll = buildPerlPackage {
      pname = "Code-TidyAll";
-     version = "0.75";
+     version = "0.78";
      src = fetchurl {
-       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Code-TidyAll-0.75.tar.gz";
-       sha256 = "0gplkyds3zmiqpvw8x8kg3g81jcm58kcxvwg5yk4dm2fdkl77xqf";
+       url = mirror://cpan/authors/id/D/DR/DROLSKY/Code-TidyAll-0.78.tar.gz;
+       sha256 = "1dmr6zkgcnc6cam204f00g5yly46cplbn9k45ginw02rv10vnpij";
      };
      propagatedBuildInputs = [ CaptureTiny ConfigINI FileWhich Filepushd IPCRun3 IPCSystemSimple ListCompare ListSomeUtils LogAny Moo ScopeGuard SpecioLibraryPathTiny TextDiff TimeDate TimeDurationParse ];
      buildInputs = [ TestClass TestClassMost TestDeep TestDifferences TestException TestFatal TestMost TestWarn TestWarnings librelative ];
@@ -2864,10 +3007,10 @@ let
 
   commonsense = buildPerlPackage {
     pname = "common-sense";
-    version = "3.74";
+    version = "3.75";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/common-sense-3.74.tar.gz";
-      sha256 = "1wxv2s0hbjkrnssvxvsds0k213awg5pgdlrpkr6xkpnimc17s7vp";
+      url = mirror://cpan/authors/id/M/ML/MLEHMANN/common-sense-3.75.tar.gz;
+      sha256 = "0zhfp8f0czg69ycwn7r6ayg6idm5kyh2ai06g5s6s07kli61qsm8";
     };
     meta = {
       description = "Implements some sane defaults for Perl programs";
@@ -2877,10 +3020,10 @@ let
 
   CompressBzip2 = buildPerlPackage {
     pname = "Compress-Bzip2";
-    version = "2.26";
+    version = "2.27";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RU/RURBAN/Compress-Bzip2-2.26.tar.gz";
-      sha256 = "5132f0c5f377a54d77ee36d332aa0ece585c22a40f2c31f2619e40262f5c4f0c";
+      url = mirror://cpan/authors/id/R/RU/RURBAN/Compress-Bzip2-2.27.tar.gz;
+      sha256 = "a284c506ac8ef5b02136a15814271dcba10400b5ce818359cf3325ccde7bb3d3";
     };
     meta = {
       description = "Interface to Bzip2 compression library";
@@ -2984,10 +3127,10 @@ let
 
   ConfigGitLike = buildPerlPackage {
     pname = "Config-GitLike";
-    version = "1.17";
+    version = "1.18";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AL/ALEXMV/Config-GitLike-1.17.tar.gz";
-      sha256 = "674a07b814fdcf9d323088d093245bcd066aaee24ec0914cb4decc9a943de54e";
+      url = mirror://cpan/authors/id/A/AL/ALEXMV/Config-GitLike-1.18.tar.gz;
+      sha256 = "f7ae7440f3adab5b9ff9aa57216d84fd4a681009b9584e32da42f8bb71e332c5";
     };
     buildInputs = [ TestException ];
     propagatedBuildInputs = [ Moo MooXTypesMooseLike ];
@@ -3044,10 +3187,10 @@ let
 
   ConfigIniFiles = buildPerlModule {
     pname = "Config-IniFiles";
-    version = "3.000002";
+    version = "3.000003";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Config-IniFiles-3.000002.tar.gz";
-      sha256 = "d92ed6ed2db98d5addf732c96d2a9c15d9f878c7e8b355bb7a5c1668e3f8ba09";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/Config-IniFiles-3.000003.tar.gz;
+      sha256 = "3c457b65d98e5ff40bdb9cf814b0d5983eb0c53fb8696bda3ba035ad2acd6802";
     };
     propagatedBuildInputs = [ IOStringy ];
     meta = {
@@ -3216,6 +3359,20 @@ let
      };
   };
 
+  ConvertASCIIArmour = buildPerlPackage {
+    pname = "Convert-ASCII-Armour";
+    version = "1.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VI/VIPUL/Convert-ASCII-Armour-1.4.tar.gz";
+      sha256 = "97e8acb6eb2a2a91af7d6cf0d2dff6fa42aaf939fc7d6d1c6057a4f0df52c904";
+    };
+    meta = {
+      description = "Convert binary octets into ASCII armoured messages";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   ConvertASN1 = buildPerlPackage {
     pname = "Convert-ASN1";
     version = "0.27";
@@ -3380,18 +3537,11 @@ let
 
   CPAN = buildPerlPackage {
     pname = "CPAN";
-    version = "2.27";
+    version = "2.28";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AN/ANDK/CPAN-2.27.tar.gz";
-      sha256 = "b4b1471a2881e2d616f59e723879b4110ae485b79d5962f115119c28cf69e07f";
+      url = "mirror://cpan/authors/id/A/AN/ANDK/CPAN-2.28.tar.gz";
+      sha256 = "39d357489283d479695027640d7fc25b42ec3c52003071d1ec94496e34af5974";
     };
-    patches = [
-      (fetchpatch {
-        url = "https://github.com/andk/cpanpm/commit/10da44f1757aff6971e3bc4ed38ab115e738c740.diff";
-        name = "patch-YAML-modules-default-for-LoadBlessed-was-changed-to-false";
-        sha256 = "0sr2nxkr1cwavpvpxsqcsryfd5fjv4fkxfihd03jzavv5awj79hp";
-      })
-    ];
     propagatedBuildInputs = [ ArchiveZip CPANChecksums CPANPerlReleases Expect FileHomeDir LWP LogLog4perl ModuleBuild TermReadKey YAML YAMLLibYAML YAMLSyck ];
     meta = {
       description = "Query, download and build perl modules from CPAN sites";
@@ -3399,6 +3549,27 @@ let
     };
   };
 
+  CPANMini = buildPerlPackage {
+    pname = "CPAN-Mini";
+    version = "1.111016";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/CPAN-Mini-1.111016.tar.gz";
+      sha256 = "5a297afc3e367ad80811464d4eb7e4dd3caff8ba499cdd2b558f6279443a7657";
+    };
+    nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin shortenPerlShebang;
+    propagatedBuildInputs = [ FileHomeDir LWP LWPProtocolHttps URI ];
+    postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/minicpan
+    '';
+
+    meta = {
+      homepage = "https://github.com/rjbs/CPAN-Mini";
+      description = "Create a minimal mirror of CPAN";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   CpanelJSONXS = buildPerlPackage {
     pname = "Cpanel-JSON-XS";
     version = "4.17";
@@ -3483,10 +3654,10 @@ let
 
   CPANPerlReleases = buildPerlPackage {
     pname = "CPAN-Perl-Releases";
-    version = "5.20200120";
+    version = "5.20200607";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BI/BINGOS/CPAN-Perl-Releases-5.20200120.tar.gz";
-      sha256 = "0xhn05aiyrdcxhmps0qg9ivr9p7278mjix7719rv2k5kd2nf1jg8";
+      url = mirror://cpan/authors/id/B/BI/BINGOS/CPAN-Perl-Releases-5.20200607.tar.gz;
+      sha256 = "0x09ghg5s69kajpw19qs8bhdzma900ipry4zizi37qcdby3kadf1";
     };
     meta = {
       homepage = "https://github.com/bingos/cpan-perl-releases";
@@ -3497,10 +3668,10 @@ let
 
   CPANPLUS = buildPerlPackage {
     pname = "CPANPLUS";
-    version = "0.9906";
+    version = "0.9908";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BI/BINGOS/CPANPLUS-0.9906.tar.gz";
-      sha256 = "0w1gi4w7xriqhh44ssgg2abk5dfxchshqfab4cs3j4ab6p8vf9j5";
+      url = mirror://cpan/authors/id/B/BI/BINGOS/CPANPLUS-0.9908.tar.gz;
+      sha256 = "1m4xas67fax947kahvg4jsnsr2r1i58c5g3f1bixh7krgnsarxjq";
     };
     propagatedBuildInputs = [ ArchiveExtract ModulePluggable ObjectAccessor PackageConstants TermUI ];
     meta = {
@@ -3512,10 +3683,10 @@ let
 
   CPANUploader = buildPerlPackage {
     pname = "CPAN-Uploader";
-    version = "0.103013";
+    version = "0.103014";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/CPAN-Uploader-0.103013.tar.gz";
-      sha256 = "07k8ia8gvj9mrz7a2lckgd3vxjsahfr43lgrb85474dkhz94f5pq";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/CPAN-Uploader-0.103014.tar.gz;
+      sha256 = "1pi15yj06yyzx6xzhhclfhnbssrrpj27ncya2bh21mxnjmy52kqy";
     };
     propagatedBuildInputs = [ FileHomeDir GetoptLongDescriptive LWPProtocolHttps TermReadKey ];
     meta = {
@@ -3534,6 +3705,20 @@ let
     };
   };
 
+  CryptCAST5_PP = buildPerlPackage {
+    pname = "Crypt-CAST5_PP";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBMATH/Crypt-CAST5_PP-1.04.tar.gz";
+      sha256 = "cba98a80403fb898a14c928f237f44816b4848641840ce2517363c2c071b5327";
+    };
+    meta = {
+      description = "CAST5 block cipher in pure Perl";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   CryptCBC = buildPerlPackage {
     pname = "Crypt-CBC";
     version = "2.33";
@@ -3571,6 +3756,21 @@ let
     };
   };
 
+  CryptDES_EDE3 = buildPerlPackage {
+    pname = "Crypt-DES_EDE3";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BT/BTROTT/Crypt-DES_EDE3-0.01.tar.gz";
+      sha256 = "9cb2e04b625e9cc0833cd499f76fd12556583ececa782a9758a55e3f969748d6";
+    };
+    propagatedBuildInputs = [ CryptDES ];
+    meta = {
+      description = "Triple-DES EDE encryption/decryption";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   CryptDH = buildPerlPackage {
     pname = "Crypt-DH";
     version = "0.07";
@@ -3593,12 +3793,27 @@ let
     NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
   };
 
+  CryptDSA = buildPerlPackage {
+    pname = "Crypt-DSA";
+    version = "1.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AD/ADAMK/Crypt-DSA-1.17.tar.gz";
+      sha256 = "d1b8585f6bf746f76e5dc5da3641d325ed656bc2e5f344b54514b55c31009a03";
+    };
+    propagatedBuildInputs = [ DataBuffer DigestSHA1 FileWhich ];
+    meta = {
+      description = "DSA Signatures and Key Generation";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   CryptECB = buildPerlPackage {
     pname = "Crypt-ECB";
-    version = "2.21";
+    version = "2.22";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AP/APPEL/Crypt-ECB-2.21.tar.gz";
-      sha256 = "890f8b3040220ea705ee5ca4f9bd23435a1779bc3ffa75533736e6c9c21d1015";
+      url = mirror://cpan/authors/id/A/AP/APPEL/Crypt-ECB-2.22.tar.gz;
+      sha256 = "f5af62e908cd31a34b2b813135a0718016fd003ffa0021ffbdd84c50158267aa";
     };
     meta = with stdenv.lib; {
       description = "Use block ciphers using ECB mode";
@@ -3628,12 +3843,12 @@ let
 
   CryptJWT = buildPerlPackage {
     pname = "Crypt-JWT";
-    version = "0.025";
+    version = "0.028";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MI/MIK/Crypt-JWT-0.025.tar.gz";
-      sha256 = "2def87936645723de70fcc11cb380b1faddf9c5678832e4fc6116f267987087d";
+      url = mirror://cpan/authors/id/M/MI/MIK/Crypt-JWT-0.028.tar.gz;
+      sha256 = "af819a620fa9b2d0432f718fecc3e4d8458d04b932f27fcb6217e0f39027e633";
     };
-    propagatedBuildInputs = [ CryptX JSONMaybeXS ];
+    propagatedBuildInputs = [ CryptX JSON ];
     meta = {
       description = "JSON Web Token";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -3679,6 +3894,20 @@ let
     };
   };
 
+  CryptRandom = buildPerlPackage rec {
+    pname = "Crypt-Random";
+    version = "1.52";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VI/VIPUL/${pname}-${version}.tar.gz";
+      sha256 = "a93c06de409e6f2eb2e9868ea6d4e653d99f2f7900b2c1831e1f65ace0c4ef84";
+    };
+    propagatedBuildInputs = [ ClassLoader MathPari StatisticsChiSquare ];
+    meta = {
+      description = "Interface to /dev/random and /dev/urandom";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   CryptRandomSource = buildPerlModule {
     pname = "Crypt-Random-Source";
     version = "0.14";
@@ -3726,6 +3955,21 @@ let
     };
   };
 
+  CryptRIPEMD160 = buildPerlPackage {
+    pname = "Crypt-RIPEMD160";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/Crypt-RIPEMD160-0.06.tar.gz";
+      sha256 = "ea64a1e9eb42f3d79855a392e7cca6b86e8e0bcc9aabcc5efa5fa32415b67dba";
+    };
+    meta = {
+      homepage = "http://wiki.github.com/toddr/Crypt-RIPEMD160";
+      description = "Perl extension for the RIPEMD-160 Hash function";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   CryptMySQL = buildPerlModule {
     pname = "Crypt-MySQL";
     version = "0.04";
@@ -3795,6 +4039,64 @@ let
     };
   };
 
+  CryptSodium = buildPerlPackage {
+    pname = "Crypt-Sodium";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MG/MGREGORO/Crypt-Sodium-0.11.tar.gz";
+      sha256 = "0y3c24zv4iwnvlf9zwxambk8ddram54fm6l1m5yhbskc0nhp6z4h";
+    };
+    NIX_CFLAGS_COMPILE = "-I${pkgs.libsodium.dev}/include";
+    NIX_CFLAGS_LINK = "-L${pkgs.libsodium.out}/lib -lsodium";
+    meta = {
+      homepage = "https://metacpan.org/release/Crypt-Sodium";
+      description = "Perl bindings for libsodium (NaCL)";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CryptTwofish = buildPerlPackage {
+    pname = "Crypt-Twofish";
+    version = "2.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AM/AMS/Crypt-Twofish-2.17.tar.gz";
+      sha256 = "eed502012f0c63927a1a32e3154071cc81175d1992a893ec41f183b6e3e5d758";
+    };
+    meta = {
+      description = "The Twofish Encryption Algorithm";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CryptOpenPGP = buildPerlPackage {
+    pname = "Crypt-OpenPGP";
+    version = "1.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SR/SROMANOV/Crypt-OpenPGP-1.12.tar.gz";
+      sha256 = "e8a7ff2a993b76a69ad6dffdbe55755be5678b84e6ec494dcd9ab966f766f50e";
+    };
+    patches = [
+      # See https://github.com/NixOS/nixpkgs/pull/93599
+      ../development/perl-modules/crypt-openpgp-remove-impure-keygen-tests.patch
+    ];
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ AltCryptRSABigInt CryptBlowfish CryptCAST5_PP CryptDES_EDE3 CryptDSA CryptIDEA CryptRIPEMD160 CryptRijndael CryptTwofish DataBuffer FileHomeDir LWP TermReadKey URI BytesRandomSecure ];
+
+    nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/pgplet
+    '';
+
+    meta = {
+      homepage = "https://github.com/btrott/Crypt-OpenPGP";
+      description = "Pure-Perl OpenPGP implementation";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   CryptOpenSSLAES = buildPerlPackage {
     pname = "Crypt-OpenSSL-AES";
     version = "0.02";
@@ -3942,7 +4244,7 @@ let
       url = "mirror://cpan/authors/id/G/GT/GTERMARS/CSS-Minifier-XS-0.09.tar.gz";
       sha256 = "1myswrmh0sqp5xjpp03x45z8arfmgkjx0srl3r6kjsyzl1zrk9l8";
     };
-    perlPreHook = stdenv.lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
+    perlPreHook = stdenv.lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC";
     meta = {
       description = "XS based CSS minifier";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -3994,10 +4296,10 @@ let
 
   CryptX = buildPerlPackage {
     pname = "CryptX";
-    version = "0.066";
+    version = "0.068";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MI/MIK/CryptX-0.066.tar.gz";
-      sha256 = "e7e823ac4db0b452e885b0e0d5adfc8a9c5f688938f1adf3f1d91432b3238335";
+      url = mirror://cpan/authors/id/M/MI/MIK/CryptX-0.068.tar.gz;
+      sha256 = "b1806a1fa4d4b8c9265f44ac706eb0b05107d644edb24ffea1b507168e88fd59";
     };
     meta = {
       description = "Crypto toolkit";
@@ -4205,14 +4507,14 @@ let
     };
   };
 
-  DataMessagePack = buildPerlPackage {
+  DataMessagePack = buildPerlModule {
     pname = "Data-MessagePack";
-    version = "1.00";
+    version = "1.01";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SY/SYOHEX/Data-MessagePack-1.00.tar.gz";
-      sha256 = "c9f0eeaf56ee4dfd509eccba2dd838921aebdf186ba60de166443ffc4b0ba1a2";
+      url = mirror://cpan/authors/id/S/SY/SYOHEX/Data-MessagePack-1.01.tar.gz;
+      sha256 = "8fa0ed0101d04e661821a7b78e8d62ce3e19b299275bbfed178e2ba8912663ea";
     };
-    buildInputs = [ FileCopyRecursive TestRequires ];
+    buildInputs = [ DevelPPPort ModuleBuildXSUtil TestRequires ];
     meta = {
       homepage = "https://github.com/msgpack/msgpack-perl";
       description = "MessagePack serializing/deserializing";
@@ -4318,10 +4620,10 @@ let
 
   DataSerializer = buildPerlModule {
     pname = "Data-Serializer";
-    version = "0.60";
+    version = "0.65";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/N/NE/NEELY/Data-Serializer-0.60.tar.gz";
-      sha256 = "0ca4s811l7f2bqkx7vnyxbpp4f0qska89g2pvsfb3k0bhhbk0jdk";
+      url = mirror://cpan/authors/id/N/NE/NEELY/Data-Serializer-0.65.tar.gz;
+      sha256 = "048zjy8valnil8yawa3vrxr005rz95gpfwvmy2jq0g830195l58j";
     };
     meta = {
       description = "Modules that serialize data structures";
@@ -4402,7 +4704,7 @@ let
       url = "mirror://cpan/authors/id/B/BA/BALDUR/Data-ULID-1.0.0.tar.gz";
       sha256 = "4d757475893dbad5165f0a65c446d38b47f39019d36f77da9d29c98cbf27206f";
     };
-    propagatedBuildInputs = [ DateTime EncodeBase32GMP MathRandomSecure MathBigIntGMP ];
+    propagatedBuildInputs = [ DateTime EncodeBase32GMP MathRandomSecure ];
     meta = {
       homepage = "https://metacpan.org/release/Data-ULID";
       description = "Universally Unique Lexicographically Sortable Identifier";
@@ -4450,10 +4752,10 @@ let
 
   DataUUID = buildPerlPackage {
     pname = "Data-UUID";
-    version = "1.224";
+    version = "1.226";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-UUID-1.224.tar.gz";
-      sha256 = "0z7l3fc710v830n1krgrp7wzfispi5s0h10cyk65xvxv09sw2n69";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Data-UUID-1.226.tar.gz;
+      sha256 = "0lv4k4ibxwkw7zz9hw97s34za9nvjxb4kbmgmx5sj4fll3zmfg89";
     };
   };
 
@@ -4551,10 +4853,10 @@ let
 
   DateManip = buildPerlPackage {
     pname = "Date-Manip";
-    version = "6.79";
+    version = "6.82";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SB/SBECK/Date-Manip-6.79.tar.gz";
-      sha256 = "0fllcvsd08wz71wyppyhgb6mingfihhsf5raraildggdwhnc9a3i";
+      url = mirror://cpan/authors/id/S/SB/SBECK/Date-Manip-6.82.tar.gz;
+      sha256 = "0ak72kpydwhq2z03mhdfwm3ganddzb8gawzh6crpsjvb9kwvr5ps";
     };
     # for some reason, parsing /etc/localtime does not work anymore - make sure that the fallback "/bin/date +%Z" will work
     patchPhase = ''
@@ -4581,10 +4883,10 @@ let
 
   DateTime = buildPerlPackage {
     pname = "DateTime";
-    version = "1.51";
+    version = "1.52";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-1.51.tar.gz";
-      sha256 = "1ibfq6acz1ih28vl613yygbb3r2d8ykx6di669vajhvswl6xl8ny";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-1.52.tar.gz;
+      sha256 = "1z1xpifh2kpyw7rlc8ivg9rl0qmabjq979gjp0s9agdjf9hqp0k7";
     };
     buildInputs = [ CPANMetaCheck TestFatal TestWarnings ];
     propagatedBuildInputs = [ DateTimeLocale DateTimeTimeZone ];
@@ -4733,10 +5035,10 @@ let
 
   DateTimeFormatNatural = buildPerlModule {
     pname = "DateTime-Format-Natural";
-    version = "1.08";
+    version = "1.09";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SC/SCHUBIGER/DateTime-Format-Natural-1.08.tar.gz";
-      sha256 = "0hfk9cqfy0j49vqllhxfikbkqjhf7jrm6zb9i2bxq2ywm8qnz1rj";
+      url = mirror://cpan/authors/id/S/SC/SCHUBIGER/DateTime-Format-Natural-1.09.tar.gz;
+      sha256 = "0mxhzib3wq408mqa8wgdlvxxjrmv2fn07ydbpyx6qny1867kczbc";
     };
     buildInputs = [ ModuleUtil TestMockTime ];
     propagatedBuildInputs = [ Clone DateTime ListMoreUtils ParamsValidate boolean ];
@@ -4777,10 +5079,10 @@ let
 
   DateTimeFormatStrptime = buildPerlPackage {
     pname = "DateTime-Format-Strptime";
-    version = "1.76";
+    version = "1.77";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Strptime-1.76.tar.gz";
-      sha256 = "593c26466ed7a3d2cefe9215f1619666c5116bd3a551e0aa74b64a6353fcb50d";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Strptime-1.77.tar.gz;
+      sha256 = "2fa43c838ecf5356f221a91a41c81dba22e7860c5474b4a61723259898173e4a";
     };
     buildInputs = [ TestFatal TestWarnings ];
     propagatedBuildInputs = [ DateTime ];
@@ -4849,10 +5151,10 @@ let
 
   DateTimeTimeZone = buildPerlPackage {
     pname = "DateTime-TimeZone";
-    version = "2.38";
+    version = "2.39";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-TimeZone-2.38.tar.gz";
-      sha256 = "0e5c99ef22471f4d262ac590ce5ce8177094d7a92f380d8eea6219f5a12dc0cd";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-TimeZone-2.39.tar.gz;
+      sha256 = "65a49083bf465b42c6a65df575efaceb87b5ba5a997d4e91e6ddba57190c8fca";
     };
     buildInputs = [ TestFatal TestRequires ];
     propagatedBuildInputs = [ ClassSingleton ParamsValidationCompiler Specio namespaceautoclean ];
@@ -4947,12 +5249,12 @@ let
 
   DevelCheckOS = buildPerlPackage {
     pname = "Devel-CheckOS";
-    version = "1.81";
+    version = "1.83";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-CheckOS-1.81.tar.gz";
-      sha256 = "f3c17b56b79283b62616f938d36c57adc9df06bfaa295ff98be21e9014a23b10";
+      url = mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-CheckOS-1.83.tar.gz;
+      sha256 = "b20fb5ab55d2cf8539fdc7268d77cdbf944408e620c4969023e687ddd28c9972";
     };
-    propagatedBuildInputs = [ DataCompare ];
+    propagatedBuildInputs = [ FileFindRule ];
   };
 
   DevelLeak = buildPerlPackage rec {
@@ -4971,10 +5273,10 @@ let
 
   DevelPatchPerl = buildPerlPackage {
     pname = "Devel-PatchPerl";
-    version = "1.84";
+    version = "2.00";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BI/BINGOS/Devel-PatchPerl-1.84.tar.gz";
-      sha256 = "1nlil7mq8vc3lbsr5p3zr7jqaclkr0blhmb8sgkyc7mbvhml9jzp";
+      url = mirror://cpan/authors/id/B/BI/BINGOS/Devel-PatchPerl-2.00.tar.gz;
+      sha256 = "07yy02v86ia7j8qbn46jqan8c8d6xdqigvv5a4wmkqwln7jxmhrr";
     };
     propagatedBuildInputs = [ Filepushd ModulePluggable ];
     meta = {
@@ -5000,10 +5302,10 @@ let
 
   DevelPPPort = buildPerlPackage {
     pname = "Devel-PPPort";
-    version = "3.56";
+    version = "3.58";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AT/ATOOMIC/Devel-PPPort-3.56.tar.gz";
-      sha256 = "628476dbfeb7be92471e48f75fe0d36659b92493669ebd02cf04e3a13429521b";
+      url = mirror://cpan/authors/id/A/AT/ATOOMIC/Devel-PPPort-3.58.tar.gz;
+      sha256 = "531ff79f9e74962df2dba7b2e526b8a5208cfb6bcdc01d85732fda8c1fde0c00";
     };
     meta = {
       description = "Perl/Pollution/Portability";
@@ -5064,7 +5366,7 @@ let
       url = "mirror://cpan/authors/id/H/HM/HMBRAND/DBD-CSV-0.54.tgz";
       sha256 = "bc597cd7195e5a023e2b3413d8dc614602b9b3f279f436027881796464d4f0be";
     };
-    propagatedBuildInputs = [ DBI TextCSV_XS SQLStatement ModuleRuntime ParamsUtil ];
+    propagatedBuildInputs = [ DBI SQLStatement TextCSV_XS ];
   };
 
   DBDMock = buildPerlModule {
@@ -5111,6 +5413,23 @@ let
     };
   };
 
+  DBDMariaDB = buildPerlPackage {
+    pname = "DBD-MariaDB";
+    version = "1.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PA/PALI/DBD-MariaDB-1.21.tar.gz";
+      sha256 = "068l4ybja5mmy89lwgzl9c1xs37f4fgvf7j7n8k4f78dg8rjp5zm";
+    };
+    buildInputs = [ pkgs.mariadb-connector-c DevelChecklib TestDeep ];
+    propagatedBuildInputs = [ DBI ];
+    meta = {
+      homepage = "https://github.com/gooddata/DBD-MariaDB";
+      description = "MariaDB and MySQL driver for the Perl5 Database Interface (DBI)";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   DBDmysql = buildPerlPackage {
     pname = "DBD-mysql";
     version = "4.050";
@@ -5149,11 +5468,11 @@ let
 
   DBDPg = buildPerlPackage {
     pname = "DBD-Pg";
-    version = "3.10.3";
+    version = "3.12.3";
 
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TU/TURNSTEP/DBD-Pg-3.10.3.tar.gz";
-      sha256 = "0swj2pkga92z15rnq9f0j9s84j5ancgas0ncd4k230bd8advlgn6";
+      url = mirror://cpan/authors/id/T/TU/TURNSTEP/DBD-Pg-3.12.3.tar.gz;
+      sha256 = "0rrlg2rwgkpcx67qf7081g7mj2shpqhj2iyxrq5fixf32nb0ad4v";
     };
 
     buildInputs = [ pkgs.postgresql ];
@@ -5209,10 +5528,10 @@ let
 
   DBI = buildPerlPackage {
     pname = "DBI";
-    version = "1.642";
+    version = "1.643";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TI/TIMB/DBI-1.642.tar.gz";
-      sha256 = "3f2025023a56286cebd15cb495e36ccd9b456c3cc229bf2ce1f69e9ebfc27f5d";
+      url = mirror://cpan/authors/id/T/TI/TIMB/DBI-1.643.tar.gz;
+      sha256 = "8a2b993db560a2c373c174ee976a51027dd780ec766ae17620c20393d2e836fa";
     };
     postInstall = stdenv.lib.optionalString (perl ? crossVersion) ''
       mkdir -p $out/${perl.libPrefix}/cross_perl/${perl.version}/DBI
@@ -5352,10 +5671,10 @@ let
 
   DBIxClassHelpers = buildPerlPackage {
     pname = "DBIx-Class-Helpers";
-    version = "2.034002";
+    version = "2.036000";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/F/FR/FREW/DBIx-Class-Helpers-2.034002.tar.gz";
-      sha256 = "08ab0eae514653b7f59444a0a19188ef65351889e9aefb19a2ea5a159fe2574b";
+      url = mirror://cpan/authors/id/F/FR/FREW/DBIx-Class-Helpers-2.036000.tar.gz;
+      sha256 = "b7b8b4891a983c034ef0b45f4112404a0a40550c4e217daeb7a22ca16861efdb";
     };
     buildInputs = [ DBDSQLite DateTimeFormatSQLite TestDeep TestFatal TestRoo aliased ];
     propagatedBuildInputs = [ CarpClan DBIxClassCandy DBIxIntrospector SafeIsa TextBrew ];
@@ -5478,6 +5797,20 @@ let
     };
   };
 
+  DataBuffer = buildPerlPackage {
+    pname = "Data-Buffer";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BT/BTROTT/Data-Buffer-0.04.tar.gz";
+      sha256 = "2b3d09b7bcf389fc116207b283bee250e348d44c9c63460bee67efab4dd21bb4";
+    };
+    meta = {
+      description = "Read/write buffer class";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   DBIxIntrospector = buildPerlPackage {
     pname = "DBIx-Introspector";
     version = "0.001005";
@@ -5504,10 +5837,10 @@ let
 
   DevelDeclare = buildPerlPackage {
     pname = "Devel-Declare";
-    version = "0.006019";
+    version = "0.006022";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/ET/ETHER/Devel-Declare-0.006019.tar.gz";
-      sha256 = "ac719dc289cbf53fbb3b090ccd3a55a9d207f24e09480423c96f7185af131808";
+      url = mirror://cpan/authors/id/E/ET/ETHER/Devel-Declare-0.006022.tar.gz;
+      sha256 = "72f29ca35646a593be98311ffddb72033ae1e8a9d8254c62aa248bd6260e596e";
     };
     buildInputs = [ ExtUtilsDepends TestRequires ];
     propagatedBuildInputs = [ BHooksEndOfScope BHooksOPCheck SubName ];
@@ -5558,10 +5891,10 @@ let
 
   DevelHide = buildPerlPackage {
     pname = "Devel-Hide";
-    version = "0.0010";
+    version = "0.0013";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/F/FE/FERREIRA/Devel-Hide-0.0010.tar.gz";
-      sha256 = "10jyv9nmv513hs75rls5yx2xn82513xnnhjir3dxiwgb1ykfyvvm";
+      url = mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-Hide-0.0013.tar.gz;
+      sha256 = "1jvyy3yasiwyjsn9ay9sja3ch4wcjc4wk5l22vjsclq29z7vphvg";
     };
   };
 
@@ -5686,6 +6019,20 @@ let
     };
   };
 
+  DigestMD2 = buildPerlPackage {
+    pname = "Digest-MD2";
+    version = "2.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GAAS/Digest-MD2-2.04.tar.gz";
+      sha256 = "d0aabf4834c20ac411bea427c4a308b59a5fcaa327679ef5294c1d68ab71eed3";
+    };
+    meta = {
+      description = "Perl interface to the MD2 Algorithm";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   DigestMD4 = buildPerlPackage {
     pname = "Digest-MD4";
     version = "1.9";
@@ -5794,13 +6141,13 @@ let
 
   DistZilla = buildPerlPackage {
     pname = "Dist-Zilla";
-    version = "6.012";
+    version = "6.015";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-6.012.tar.gz";
-      sha256 = "0w1hhvxcdf52ln940f8i37adv2gp7l8ryf2nm6m7haynyrsk0n37";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-6.015.tar.gz;
+      sha256 = "06w9mdk46y4n2dshkx6laphkqk08wfw6bqpsa5q2yb4lky0yb212";
     };
     buildInputs = [ CPANMetaCheck TestDeep TestFailWarnings TestFatal TestFileShareDir ];
-    propagatedBuildInputs = [ AppCmd CPANUploader ConfigMVPReaderINI DateTime FileCopyRecursive FileFindRule FileShareDirInstall Filepushd LogDispatchouli MooseXLazyRequire MooseXSetOnce MooseXTypesPerl PathTiny PerlPrereqScanner PodEventual SoftwareLicense TermEncoding TermUI YAMLTiny ];
+    propagatedBuildInputs = [ AppCmd CPANUploader ConfigMVPReaderINI DateTime FileCopyRecursive FileFindRule FileShareDirInstall Filepushd LogDispatchouli MooseXLazyRequire MooseXSetOnce MooseXTypesPerl PathTiny PerlPrereqScanner SoftwareLicense TermEncoding TermUI YAMLTiny ];
     meta = {
       homepage = "http://dzil.org/";
       description = "Distribution builder; installer not included!";
@@ -6133,6 +6480,21 @@ let
      };
   };
 
+  Dotenv = buildPerlPackage {
+    pname = "Dotenv";
+    version = "0.002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOOK/Dotenv-0.002.tar.gz";
+      sha256 = "04c7a7cc4511617d7a70c4ca410d10707dc496248cdad20240ae242223212454";
+    };
+    buildInputs = [ TestCPANMeta TestPod TestPodCoverage ];
+    propagatedBuildInputs = [ PathTiny PodParser ];
+    meta = {
+      description = "Support for C<dotenv> in Perl";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   Dumbbench = buildPerlPackage {
     pname = "Dumbbench";
     version = "0.111";
@@ -6247,10 +6609,10 @@ let
 
   EmailMIME = buildPerlPackage {
     pname = "Email-MIME";
-    version = "1.946";
+    version = "1.949";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-1.946.tar.gz";
-      sha256 = "68ee79023165d77bec99a2e12ef89ad4e12501e6c321f6822053dc4f411c337c";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-1.949.tar.gz;
+      sha256 = "3b0adf6bb413cfe51d75f8ba79aca80deafc98dc1179aa7b2d7a79aff5a6ab9c";
     };
     propagatedBuildInputs = [ EmailAddressXS EmailMIMEContentType EmailMIMEEncodings EmailMessageID EmailSimple MIMETypes ModuleRuntime ];
     meta = {
@@ -6278,16 +6640,17 @@ let
 
   EmailMIMEContentType = buildPerlPackage {
     pname = "Email-MIME-ContentType";
-    version = "1.022";
+    version = "1.024";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-ContentType-1.022.tar.gz";
-      sha256 = "9abb7280b0da62a855ae5528b14deb94341a84e721af0a7e5a2adc3534ec5310";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-ContentType-1.024.tar.gz;
+      sha256 = "42d164ac7ff4dc2ea848e710fe21fa85509a3bcbb91ed2d356e4aba951ed8835";
     };
     meta = {
       homepage = "https://github.com/rjbs/Email-MIME-ContentType";
       description = "Parse a MIME Content-Type Header";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
+    propagatedBuildInputs = [ TextUnidecode ];
   };
 
   EmailMIMEEncodings = buildPerlPackage {
@@ -6329,6 +6692,7 @@ let
       sha256 = "0fb1gymqa8nlj540dmbb1rhs2b0ln3y9ippbgj0miswcw92iaayb";
     };
     propagatedBuildInputs = [ EmailMIME EmailSender IOAll IOString OLEStorage_Lite ];
+    preCheck = "rm t/internals.t t/plain_jpeg_attached.t"; # these tests expect EmailMIME version 1.946 and fail with 1.949 (the output difference in benign)
     meta = with stdenv.lib; {
       homepage = "https://www.matijs.net/software/msgconv/";
       description = "A .MSG to mbox converter";
@@ -6401,10 +6765,10 @@ let
 
   Encode = buildPerlPackage {
     pname = "Encode";
-    version = "3.02";
+    version = "3.06";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-3.02.tar.gz";
-      sha256 = "5865be4951870f62f43722818d076d7724306c75c8f268346b282351cbc820a8";
+      url = mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-3.06.tar.gz;
+      sha256 = "5b2dcd6861287880584e63b2e518840d483aa38da70194cf64d9957282851eea";
     };
     meta = {
       description = "Character encodings in Perl";
@@ -6574,10 +6938,10 @@ let
 
   EV = buildPerlPackage {
     pname = "EV";
-    version = "4.32";
+    version = "4.33";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/EV-4.32.tar.gz";
-      sha256 = "b82a8b89bb9cca475f6242c8621dc2c48f24851ca61558e1bd592b8506752936";
+      url = mirror://cpan/authors/id/M/ML/MLEHMANN/EV-4.33.tar.gz;
+      sha256 = "4aee8391b88113b42187f91fd49245fdc8e9b193a15ac202f519caae2aa8ea35";
     };
     buildInputs = [ CanaryStability ];
     propagatedBuildInputs = [ commonsense ];
@@ -6676,10 +7040,10 @@ let
 
   ExporterTiny = buildPerlPackage {
     pname = "Exporter-Tiny";
-    version = "1.002001";
+    version = "1.002002";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.002001.tar.gz";
-      sha256 = "a82c334c02ce4b0f9ea77c67bf77738f76a9b8aa4bae5c7209d1c76453d3c48d";
+      url = mirror://cpan/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.002002.tar.gz;
+      sha256 = "00f0b95716b18157132c6c118ded8ba31392563d19e490433e9a65382e707101";
     };
     meta = {
       description = "An exporter with the features of Sub::Exporter but only core dependencies";
@@ -6996,10 +7360,10 @@ let
 
   FFICheckLib = buildPerlPackage {
     pname = "FFI-CheckLib";
-    version = "0.26";
+    version = "0.27";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-CheckLib-0.26.tar.gz";
-      sha256 = "0rbzm4cisn4vdj1kc0sa6v8m1b3mjkryi5w14hk1d13zh3q3pqq6";
+      url = mirror://cpan/authors/id/P/PL/PLICEASE/FFI-CheckLib-0.27.tar.gz;
+      sha256 = "0x1dk4hlhvcbgwivf345phbqz0v5hawxxnby21h8bkagq93jfi4d";
     };
     buildInputs = [ Test2Suite ];
     meta = {
@@ -7063,10 +7427,10 @@ let
 
   FileBOM = buildPerlModule {
     pname = "File-BOM";
-    version = "0.16";
+    version = "0.18";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MA/MATTLAW/File-BOM-0.16.tar.gz";
-      sha256 = "97091a72bb1d3a7b5cac1dfb5372962b6f8055729189d0f3fd2c959c8ff374cf";
+      url = mirror://cpan/authors/id/M/MA/MATTLAW/File-BOM-0.18.tar.gz;
+      sha256 = "28edc43fcb118e11bc458c9ae889d56d388c1d9bc29997b00b1dffd8573823a3";
     };
     buildInputs = [ TestException ];
     propagatedBuildInputs = [ Readonly ];
@@ -7220,6 +7584,19 @@ let
     };
   };
 
+  FileGrep = buildPerlPackage {
+    pname = "File-Grep";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MN/MNEYLON/File-Grep-0.02.tar.gz";
+      sha256 = "462e15274eb6278521407ea302d9eea7252cd44cab2382871f7de833d5f85632";
+    };
+    meta = {
+      description = "Find matches to a pattern in a series of files and related functions";
+      maintainers = [ maintainers.limeytexan ];
+    };
+  };
+
   FileHandleUnget = buildPerlPackage {
     pname = "FileHandle-Unget";
     version = "0.1634";
@@ -7279,12 +7656,12 @@ let
 
   FileLibMagic = buildPerlPackage {
     pname = "File-LibMagic";
-    version = "1.16";
+    version = "1.22";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/File-LibMagic-1.16.tar.gz";
-      sha256 = "c8a695fac1454f52e18e2e1b624c0647cf117326014023dda69fa3e1a5f33d60";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/File-LibMagic-1.22.tar.gz;
+      sha256 = "93639bd076849e93a020fea1507f0a2b3467b8792eb5c306f2aacbbfb4d080d6";
     };
-    buildInputs = [ pkgs.file TestFatal ];
+    buildInputs = [ pkgs.file ConfigAutoConf TestFatal ];
     makeMakerFlags = "--lib=${pkgs.file}/lib";
     preCheck = ''
       substituteInPlace t/oo-api.t \
@@ -7330,6 +7707,21 @@ let
     };
   };
 
+  FileMap = buildPerlModule {
+    pname = "File-Map";
+    version = "0.66";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/L/LE/LEONT/File-Map-0.66.tar.gz;
+      sha256 = "12d540v47jscjizcry2ir5vpp5q797vmd3gn9p91brqdbk5swfz7";
+    };
+    propagatedBuildInputs = [ PerlIOLayers SubExporterProgressive ];
+    buildInputs = [ TestFatal TestWarnings ];
+    meta = {
+      description = "Memory mapping made simple and safe.";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   FileModified = buildPerlPackage {
     pname = "File-Modified";
     version = "0.10";
@@ -7382,6 +7774,11 @@ let
       url = "mirror://cpan/authors/id/C/CW/CWEST/File-Pid-1.01.tar.gz";
       sha256 = "bafeee8fdc96eb06306a0c58bbdb7209b6de45f850e75fdc6b16db576e05e422";
     };
+    patches = [(fetchpatch {
+      name = "missing-pidfile.patch";
+      url = "https://sources.debian.org/data/main/libf/libfile-pid-perl/1.01-2/debian/patches/missing-pidfile.patch";
+      sha256 = "1wvax2qdpfs9mgksnc12dhby9b9w19isp50dc55wd3d741ihh6sl";
+    })];
     propagatedBuildInputs = [ ClassAccessor ];
     meta = {
       license = stdenv.lib.licenses.free; # Same as Perl
@@ -7511,10 +7908,10 @@ let
 
   FileSlurp = buildPerlPackage {
     pname = "File-Slurp";
-    version = "9999.29";
+    version = "9999.30";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/C/CA/CAPOEIRAB/File-Slurp-9999.29.tar.gz";
-      sha256 = "1iqr7qi6rg45f4xa3fp48b30mnbw30xs9izxa5zf6fd6pgh4fvhf";
+      url = mirror://cpan/authors/id/C/CA/CAPOEIRAB/File-Slurp-9999.30.tar.gz;
+      sha256 = "0irpx72dk27d7c4cjr08dq4bwwbmq8gsr39hxd44widrn0yicdra";
     };
     meta = {
       description = "Simple and Efficient Reading/Writing/Modifying of Complete Files";
@@ -7769,10 +8166,10 @@ let
 
   Future = buildPerlModule {
     pname = "Future";
-    version = "0.43";
+    version = "0.45";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-0.43.tar.gz";
-      sha256 = "191qvn3jz5pk5zxykwsg1i17s45kc82rfd6kgzsv9nki1c04dzaf";
+      url = mirror://cpan/authors/id/P/PE/PEVANS/Future-0.45.tar.gz;
+      sha256 = "1h5609wd1m774h8brgm5vinz6pfmdszp2ms6ybxlyhs0p5msp36f";
     };
     buildInputs = [ TestFatal TestIdentity TestRefcount ];
     meta = {
@@ -7783,13 +8180,13 @@ let
 
   GamesSolitaireVerify = buildPerlModule {
     pname = "Games-Solitaire-Verify";
-    version = "0.2202";
+    version = "0.2403";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Games-Solitaire-Verify-0.2202.tar.gz";
-      sha256 = "14fe240613b41c9d3e7cc560eaabd78bd13ded66d2838b738b74f7d1811d9263";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/Games-Solitaire-Verify-0.2403.tar.gz;
+      sha256 = "e5ab475c82ba1cb088ad28f423ca514d46944d6ae3c3eb55e9636e9e7f1dc893";
     };
     buildInputs = [ DirManifest TestDifferences ];
-    propagatedBuildInputs = [ ClassXSAccessor ExceptionClass ListMoreUtils PathTiny ];
+    propagatedBuildInputs = [ ClassXSAccessor ExceptionClass PathTiny ];
     meta = {
       description = "Verify solutions for solitaire games";
       license = stdenv.lib.licenses.mit;
@@ -7904,10 +8301,10 @@ let
 
   GetoptLongDescriptive = buildPerlPackage {
     pname = "Getopt-Long-Descriptive";
-    version = "0.104";
+    version = "0.105";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/Getopt-Long-Descriptive-0.104.tar.gz";
-      sha256 = "878bc1782c5e196a08a52fa252bbfce1aeb0546d073eac164fc6b80b4cea1e28";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Getopt-Long-Descriptive-0.105.tar.gz;
+      sha256 = "a71cdbcf4043588b26a42a13d151c243f6eccf38e8fc0b18ffb5b53651ab8c15";
     };
     buildInputs = [ CPANMetaCheck TestFatal TestWarnings ];
     propagatedBuildInputs = [ ParamsValidate SubExporter ];
@@ -7943,7 +8340,7 @@ let
   };
 
   GitAutofixup = buildPerlPackage rec {
-    pname = "GitAutofixup";
+    pname = "App-Git-Autofixup";
     version = "0.002007";
     src = fetchurl {
       url = "mirror://cpan/authors/id/T/TO/TORBIAK/App-Git-Autofixup-${version}.tar.gz";
@@ -8003,10 +8400,10 @@ let
 
   Glib = buildPerlPackage {
     pname = "Glib";
-    version = "1.3291";
+    version = "1.3293";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/X/XA/XAOC/Glib-1.3291.tar.gz";
-      sha256 = "0whz5f87wvzq8zsva85h06mkfqim2ciq845ixlvmafwxggccv0xr";
+      url = mirror://cpan/authors/id/X/XA/XAOC/Glib-1.3293.tar.gz;
+      sha256 = "005m3inz12xcsd5sr056cm1kbhmxsx2ly88ifbdv6p6cwz0s05kk";
     };
     buildInputs = [ pkgs.glib ];
     doCheck = false; # tests failing with glib 2.60 https://rt.cpan.org/Public/Bug/Display.html?id=128165
@@ -8104,10 +8501,10 @@ let
 
   GnuPGInterface = buildPerlPackage {
     pname = "GnuPG-Interface";
-    version = "0.52";
+    version = "1.00";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AL/ALEXMV/GnuPG-Interface-0.52.tar.gz";
-      sha256 = "247a9f5a88bb6745281c00d0f7d5d94e8599a92396849fd9571356dda047fd35";
+      url = mirror://cpan/authors/id/J/JE/JESSE/GnuPG-Interface-1.00.tar.gz;
+      sha256 = "97e9c809491a061b2e99fb4e50c7bf74eb42e1deb11c64b081b21b4dbe6aec2f";
     };
     buildInputs = [ pkgs.which pkgs.gnupg1compat ];
     propagatedBuildInputs = [ MooXHandlesVia MooXlate ];
@@ -8347,10 +8744,10 @@ let
 
   Gtk3 = buildPerlPackage {
     pname = "Gtk3";
-    version = "0.036";
+    version = "0.037";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk3-0.036.tar.gz";
-      sha256 = "1rxzhahrncv58z0n93bzlagxd8swqxiafq4qn4zv9i9jbfql8mwq";
+      url = mirror://cpan/authors/id/X/XA/XAOC/Gtk3-0.037.tar.gz;
+      sha256 = "0l9zis8l9jall1m48mgd5g4f85lsz4hcp22spal8r9wlf9af2nmz";
     };
     propagatedBuildInputs = [ pkgs.gtk3 CairoGObject GlibObjectIntrospection ];
     meta = {
@@ -8361,10 +8758,10 @@ let
 
   Gtk3SimpleList = buildPerlPackage {
     pname = "Gtk3-SimpleList";
-    version = "0.18";
+    version = "0.21";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TV/TVIGNAUD/Gtk3-SimpleList-0.18.tar.gz";
-      sha256 = "09azmc7miyvw7q21rz8cxw16zbd5i1j5hpakxy376f5vmhqqjyhp";
+      url = mirror://cpan/authors/id/T/TV/TVIGNAUD/Gtk3-SimpleList-0.21.tar.gz;
+      sha256 = "1158mnr2ldq02098hqbkwfv64d83zl3a8scll9s09g7k1c86ai0x";
     };
     meta = {
       description = "A simple interface to Gtk3's complex MVC list widget";
@@ -8552,10 +8949,10 @@ let
 
   HTMLForm = buildPerlPackage {
     pname = "HTML-Form";
-    version = "6.05";
+    version = "6.07";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/O/OA/OALDERS/HTML-Form-6.05.tar.gz";
-      sha256 = "14i4ldyvdvhdhvfhh9kiq6z853q2f84biq8vcpv1k5w2r80wdiin";
+      url = mirror://cpan/authors/id/O/OA/OALDERS/HTML-Form-6.07.tar.gz;
+      sha256 = "09v29cdzwjm139c67y1np3kvx2ymg3s8n723qc0ma07lmxz8rakx";
     };
     propagatedBuildInputs = [ HTMLParser HTTPMessage ];
     meta = {
@@ -8656,10 +9053,10 @@ let
 
   HTMLMason = buildPerlPackage {
     pname = "HTML-Mason";
-    version = "1.58";
+    version = "1.59";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/HTML-Mason-1.58.tar.gz";
-      sha256 = "81dc9b199f0f3b3473c97ba0ebee4b9535cd633d4e9c1ca3818615dc03dff948";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/HTML-Mason-1.59.tar.gz;
+      sha256 = "95bed2a6c488370046aa314be4b592bd65a6522f8845da8b36a6aff9a8b439d0";
     };
     buildInputs = [ TestDeep ];
     propagatedBuildInputs = [ CGI CacheCache ClassContainer ExceptionClass LogAny ];
@@ -9036,13 +9433,13 @@ let
 
   HTTPMessage = buildPerlPackage {
     pname = "HTTP-Message";
-    version = "6.18";
+    version = "6.24";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-6.18.tar.gz";
-      sha256 = "d060d170d388b694c58c14f4d13ed908a2807f0e581146cef45726641d809112";
+      url = mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-6.24.tar.gz;
+      sha256 = "554a1acf2daa401091f7012f5cb82d04d281db43fbd8f39a1fcbb7ed56dde16d";
     };
     buildInputs = [ TryTiny ];
-    propagatedBuildInputs = [ EncodeLocale HTTPDate IOHTML LWPMediaTypes URI ];
+    propagatedBuildInputs = [ Clone Encode EncodeLocale HTTPDate IOHTML LWPMediaTypes URI ];
     meta = {
       homepage = "https://github.com/libwww-perl/HTTP-Message";
       description = "HTTP style message (base class)";
@@ -9185,10 +9582,10 @@ let
 
   HTTPTinyish = buildPerlPackage {
     pname = "HTTP-Tinyish";
-    version = "0.15";
+    version = "0.16";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Tinyish-0.15.tar.gz";
-      sha256 = "5d65f0ee20a9e4744acdb3ef12edae78c121f53dcbc9cf00867c5725c4513aa5";
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Tinyish-0.16.tar.gz;
+      sha256 = "1a3318b89987c2aa5dd18990a109e8af63049f87e4e1a9357583beed1c3bfbda";
     };
     propagatedBuildInputs = [ FileWhich IPCRun3 ];
     meta = {
@@ -9213,10 +9610,10 @@ let
 
   Imager = buildPerlPackage {
     pname = "Imager";
-    version = "1.011";
+    version = "1.012";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TO/TONYC/Imager-1.011.tar.gz";
-      sha256 = "a3aea2f0c172c2c094baeced4a3bdaa9f54e3e85c97eea2e5f8f994ba2beedfc";
+      url = mirror://cpan/authors/id/T/TO/TONYC/Imager-1.012.tar.gz;
+      sha256 = "a321c728e3277fd15de842351e69bbef0e2a5a608a31d089e5029b8381e23f21";
     };
     buildInputs = [ pkgs.freetype pkgs.fontconfig pkgs.libjpeg pkgs.libpng ];
     makeMakerFlags = "--incpath ${pkgs.libjpeg.dev}/include --libpath ${pkgs.libjpeg.out}/lib --incpath ${pkgs.libpng.dev}/include --libpath ${pkgs.libpng.out}/lib";
@@ -9353,13 +9750,14 @@ let
 
   IOAsync = buildPerlModule {
     pname = "IO-Async";
-    version = "0.75";
+    version = "0.77";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PEVANS/IO-Async-0.75.tar.gz";
-      sha256 = "1mi6gfbl11rimvzgzyj8kiqf131cg1w9nwxi47fwm9sbs0x6rkjb";
+      url = mirror://cpan/authors/id/P/PE/PEVANS/IO-Async-0.77.tar.gz;
+      sha256 = "153rfnbs2xwvx559h0ilfr0g9pg30avjad3cad659is9bdmfipri";
     };
+    preCheck = "rm t/50resolver.t"; # this test fails with "Temporary failure in name resolution" in sandbox
     propagatedBuildInputs = [ Future StructDumb ];
-    buildInputs = [ TestFatal TestIdentity TestRefcount ];
+    buildInputs = [ TestFatal TestIdentity TestMetricsAny TestRefcount ];
     meta = {
       description = "Asynchronous event-driven programming";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -9476,11 +9874,11 @@ let
   };
 
   IOPager = buildPerlPackage {
-    version = "1.01";
+    version = "1.03";
     pname = "IO-Pager";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JP/JPIERCE/IO-Pager-1.01.tgz";
-      sha256 = "19fslzb11wn8s9hwnwpnwymnw040nmychza2dpbbcqpgnk4k5zpa";
+      url = mirror://cpan/authors/id/J/JP/JPIERCE/IO-Pager-1.03.tgz;
+      sha256 = "13mmykrb391584wkw907zrmy4hg1fa9hj3zw58whdq5bjc66r1mc";
     };
     propagatedBuildInputs = [ pkgs.more FileWhich TermReadKey ]; # `more` used in tests
   };
@@ -9525,10 +9923,10 @@ let
 
   IOSocketSSL = buildPerlPackage {
     pname = "IO-Socket-SSL";
-    version = "2.066";
+    version = "2.068";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SU/SULLR/IO-Socket-SSL-2.066.tar.gz";
-      sha256 = "0d47064781a545304d5dcea5dfcee3acc2e95a32e1b4884d80505cde8ee6ebcd";
+      url = mirror://cpan/authors/id/S/SU/SULLR/IO-Socket-SSL-2.068.tar.gz;
+      sha256 = "4420fc0056f1827b4dd1245eacca0da56e2182b4ef6fc078f107dc43c3fb8ff9";
     };
     propagatedBuildInputs = [ MozillaCA NetSSLeay ];
     # Fix path to default certificate store.
@@ -9640,10 +10038,10 @@ let
 
   IPCRun = buildPerlPackage {
     pname = "IPC-Run";
-    version = "20180523.0";
+    version = "20200505.0";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TO/TODDR/IPC-Run-20180523.0.tar.gz";
-      sha256 = "0bvckcs1629ifqfb68xkapd4a74fd5qbg6z9qs8i6rx4z3nxfl1q";
+      url = mirror://cpan/authors/id/T/TO/TODDR/IPC-Run-20200505.0.tar.gz;
+      sha256 = "00f9wjvhn55zbk3n9il76xvsqy7ddk60lg6phg2rkpx0gwhvyvl1";
     };
     doCheck = false; /* attempts a network connection to localhost */
     meta = {
@@ -9674,10 +10072,10 @@ let
 
   IPCSystemSimple = buildPerlPackage {
     pname = "IPC-System-Simple";
-    version = "1.26";
+    version = "1.30";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JK/JKEENAN/IPC-System-Simple-1.26.tar.gz";
-      sha256 = "57177f21d8e8625bba32ea454f10a1fda16f93c1baf1aa80d106ab1951b465fd";
+      url = mirror://cpan/authors/id/J/JK/JKEENAN/IPC-System-Simple-1.30.tar.gz;
+      sha256 = "22e6f5222b505ee513058fdca35ab7a1eab80539b98e5ca4a923a70a8ae9ba9e";
     };
     meta = {
       description = "Run commands simply, with detailed diagnostics";
@@ -9713,14 +10111,13 @@ let
     };
   };
 
-  # TODO: use CPAN version
   ImageExifTool = buildPerlPackage {
     pname = "Image-ExifTool";
-    version = "11.85";
+    version = "12.00";
 
     src = fetchurl {
-      url = "https://exiftool.org/Image-ExifTool-11.85.tar.gz";
-      sha256 = "15zqm0ly2b3paqg0ym44ib2mvh6k18a9q5rvdirwipqa127al2lb";
+      url = "mirror://cpan/authors/id/E/EX/EXIFTOOL/Image-ExifTool-12.00.tar.gz";
+      sha256 = "0nl5djf6hs6brnp7qnqvj3xwhj1qnjwcv35ih4yqp2mm9b4jqyfh";
     };
 
     nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin shortenPerlShebang;
@@ -9839,7 +10236,7 @@ let
       url = "mirror://cpan/authors/id/G/GT/GTERMARS/JavaScript-Minifier-XS-0.11.tar.gz";
       sha256 = "1vlyhckpjbrg2v4dy9szsxxl0q44n0y1xl763mg2y2ym9g5144hm";
     };
-    perlPreHook = stdenv.lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
+    perlPreHook = stdenv.lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC";
     meta = {
       description = "XS based JavaScript minifier";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -9894,15 +10291,16 @@ let
 
   JSONMaybeXS = buildPerlPackage {
     pname = "JSON-MaybeXS";
-    version = "1.004000";
+    version = "1.004002";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/H/HA/HAARG/JSON-MaybeXS-1.004000.tar.gz";
-      sha256 = "09m1w03as6n0a00pzvaldkhm494yaf5n0g3j2cwwfx24iwpa1gar";
+      url = mirror://cpan/authors/id/E/ET/ETHER/JSON-MaybeXS-1.004002.tar.gz;
+      sha256 = "1dbpdlrk4pjwbn3wzawwsj57jqzdvi01h4kqpknwbl1n7gf2z3iv";
     };
     meta = {
       description = "Use L<Cpanel::JSON::XS> with a fallback to L<JSON::XS> and L<JSON::PP>";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
+    buildInputs = [ TestNeeds ];
   };
 
   JSONPP = buildPerlPackage {
@@ -9933,10 +10331,10 @@ let
 
   JSONParse = buildPerlPackage {
     pname = "JSON-Parse";
-    version = "0.55";
+    version = "0.56";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BK/BKB/JSON-Parse-0.55.tar.gz";
-      sha256 = "0mnjypkiga8zdxr5kbd7sf49pcbn55ivndn01p5ln4amqgdmd66w";
+      url = mirror://cpan/authors/id/B/BK/BKB/JSON-Parse-0.56.tar.gz;
+      sha256 = "1d8ir74sgf8kw1a7459ghdhh92kzrzaysapjbw1sb859sfsirkqw";
     };
     meta = {
       description = "Read JSON into a Perl variable";
@@ -10408,10 +10806,10 @@ let
 
   ListAllUtils = buildPerlPackage {
     pname = "List-AllUtils";
-    version = "0.15";
+    version = "0.16";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/List-AllUtils-0.15.tar.gz";
-      sha256 = "3711fac729321d3aad8356a756fd9272094f227aa048866a3751f9d8ea6cc95d";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/List-AllUtils-0.16.tar.gz;
+      sha256 = "559b3aa911c73003a3a1ebd860d3b16e171137de8203d86be63a2390364c63dd";
     };
     propagatedBuildInputs = [ ListSomeUtils ListUtilsBy ];
     meta = {
@@ -10501,10 +10899,10 @@ let
 
   LocaleCodes = buildPerlPackage {
     pname = "Locale-Codes";
-    version = "3.62";
+    version = "3.64";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SB/SBECK/Locale-Codes-3.62.tar.gz";
-      sha256 = "11a6d343e9c321d8ee9eee4479954a4e9c1ff2145187e74fd64952092f9dfab7";
+      url = mirror://cpan/authors/id/S/SB/SBECK/Locale-Codes-3.64.tar.gz;
+      sha256 = "4ed9ef810b68cbb3417e28b34606c1b73c205ce2128535e53b4c9bf612c3e861";
     };
     meta = {
       description = "A distribution of modules to handle locale codes";
@@ -10768,10 +11166,10 @@ let
 
   LogHandler = buildPerlModule {
     pname = "Log-Handler";
-    version = "0.88";
+    version = "0.90";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BL/BLOONIX/Log-Handler-0.88.tar.gz";
-      sha256 = "45bf540ab2138ed3ff93afc205b0516dc75755b86acdcc5e75c41347833c293d";
+      url = "mirror://cpan/authors/id/B/BL/BLOONIX/Log-Handler-0.90.tar.gz";
+      sha256 = "0kgp3frz0y51j8kw67d6b4yyrrbh7syqraxchc7pfm442bkq0p1s";
     };
     propagatedBuildInputs = [ ParamsValidate ];
     meta = {
@@ -10818,10 +11216,10 @@ let
 
   MCE = buildPerlPackage {
      pname = "MCE";
-     version = "1.865";
+     version = "1.872";
      src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MA/MARIOROY/MCE-1.865.tar.gz";
-       sha256 = "1fhrc0mig5rzywz3lki0gkpvm9l9693cwaljzwxkprdkxnvk709c";
+       url = mirror://cpan/authors/id/M/MA/MARIOROY/MCE-1.872.tar.gz;
+       sha256 = "0ydih6w1di5fppcr2s9lxbyf8av7ksgqg0mirrw5mfcr92924p90";
      };
      meta = {
        description = "Many-Core Engine for Perl providing parallel processing capabilities";
@@ -10910,10 +11308,10 @@ let
 
   LWP = buildPerlPackage {
     pname = "libwww-perl";
-    version = "6.43";
+    version = "6.45";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.43.tar.gz";
-      sha256 = "e9849d7ee6fd0e89cc999e63d7612c951afd6aeea6bc721b767870d9df4ac40d";
+      url = mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.45.tar.gz;
+      sha256 = "4391cec148d83c32482350c8ee1bc88f1b42d33921584b83017eba1591a42954";
     };
     propagatedBuildInputs = [ FileListing HTMLParser HTTPCookies HTTPDaemon HTTPNegotiate NetHTTP TryTiny WWWRobotRules ];
     # support cross-compilation by avoiding using `has_module` which does not work in miniperl (it requires B native module)
@@ -11076,10 +11474,10 @@ let
 
   MailAuthenticationResults = buildPerlPackage {
     pname = "Mail-AuthenticationResults";
-    version = "1.20200108";
+    version = "1.20200331.1";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-AuthenticationResults-1.20200108.tar.gz";
-      sha256 = "1j003bzqh7nax604f93k1s70b1im97986p6g58a6ynv92fbnhjq5";
+      url = mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-AuthenticationResults-1.20200331.1.tar.gz;
+      sha256 = "0qpairi9gmwinws4ay46pjnckib6217k0ig604ppkmjzilwjvf2c";
     };
     buildInputs = [ TestException ];
     meta = {
@@ -11130,10 +11528,10 @@ let
 
   MailMessage = buildPerlPackage {
      pname = "Mail-Message";
-     version = "3.008";
+     version = "3.009";
      src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Message-3.008.tar.gz";
-       sha256 = "1k3d996r2aqqzbv0xx5y88blpy9rp14lhd9vzjc1hjnrl7gij63f";
+       url = mirror://cpan/authors/id/M/MA/MARKOV/Mail-Message-3.009.tar.gz;
+       sha256 = "06ngjxnw0r5s6fnwc6qd2710p5v28ssgjkghkw8nqy2glacczlir";
      };
      propagatedBuildInputs = [ IOStringy MIMETypes MailTools URI UserIdentity ];
      meta = {
@@ -11144,14 +11542,14 @@ let
 
   MailDKIM = buildPerlPackage {
     pname = "Mail-DKIM";
-    version = "0.58";
+    version = "1.20200513.1";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DKIM-0.58.tar.gz";
-      sha256 = "0cgkal65qqcy57b21lgij90ba36wl66byw9i76g5yhwaa8ms8hqa";
+      url = mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DKIM-1.20200513.1.tar.gz;
+      sha256 = "1gbnzxns4gy02lrgfmzdvr7bc0kxgxiq850mdj2y7k75nnv28iak";
     };
-    propagatedBuildInputs = [ CryptOpenSSLRSA MailAuthenticationResults MailTools NetDNSResolverMock YAMLLibYAML ];
+    propagatedBuildInputs = [ CryptOpenSSLRSA MailAuthenticationResults MailTools NetDNS ];
     doCheck = false; # tries to access the domain name system
-    buildInputs = [ TestRequiresInternet ];
+    buildInputs = [ NetDNSResolverMock TestRequiresInternet YAMLLibYAML ];
   };
 
   MailIMAPClient = buildPerlPackage {
@@ -11475,6 +11873,27 @@ let
     };
   };
 
+  MathPari = buildPerlPackage rec {
+    pname = "Math-Pari";
+    version = "2.030518";
+    nativeBuildInputs = [ pkgs.unzip ];
+    pariversion = "2.1.7";
+    pari_tgz = fetchurl {
+      url = "https://pari.math.u-bordeaux.fr/pub/pari/OLD/2.1/pari-${pariversion}.tgz";
+      sha256 = "1yjml5z1qdn258qh6329v7vib2gyx6q2np0s5ybci0rhmz6z4hli";
+    };
+    preConfigure = "cp ${pari_tgz} pari-${pariversion}.tgz";
+    makeMakerFlags = "pari_tgz=pari-${pariversion}.tgz";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IL/ILYAZ/modules/${pname}-${version}.zip";
+      sha256 = "dc38955a9690be6bafa8de2526212377c3ec9fe8da5ec02263a9caf94b58bb91";
+    };
+    meta = {
+      description = "Perl interface to PARI";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   MathPlanePath = buildPerlPackage {
     pname = "Math-PlanePath";
     version = "127";
@@ -11486,6 +11905,40 @@ let
     buildInputs = [ DataFloat MathBigIntLite NumberFraction ];
   };
 
+  MathPrimeUtil = buildPerlPackage {
+    pname = "Math-Prime-Util";
+    version = "0.73";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANAJ/Math-Prime-Util-0.73.tar.gz";
+      sha256 = "4afa6dd8cdb97499bd4eca6925861812c29d9f5a0f1ac27ad9d2d9c9b5602894";
+    };
+    propagatedBuildInputs = [ MathPrimeUtilGMP ];
+    meta = {
+      homepage = "https://github.com/danaj/Math-Prime-Util";
+      description = "Utilities related to prime numbers, including fast sieves and factoring";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MathPrimeUtilGMP = buildPerlPackage {
+    pname = "Math-Prime-Util-GMP";
+    version = "0.52";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANAJ/Math-Prime-Util-GMP-0.52.tar.gz";
+      sha256 = "2697c7fd5c7e35fdec7f50ed56a67be807a2f22657589e637dad3592744003be";
+    };
+    buildInputs = [ pkgs.gmp ];
+    NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
+    NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
+    meta = {
+      homepage = "https://github.com/danaj/Math-Prime-Util-GMP";
+      description = "Utilities related to prime numbers, using GMP";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   MathRandom = buildPerlPackage {
     pname = "Math-Random";
     version = "0.72";
@@ -11685,6 +12138,31 @@ let
     };
   };
 
+  MetaCPANClient = buildPerlPackage {
+    pname = "MetaCPAN-Client";
+    version = "2.026000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MICKEY/MetaCPAN-Client-2.026000.tar.gz";
+      sha256 = "ee711619d59655dac1bd2e4b894ffeb3171bd73b1ed38ba4b7b07d3690f94465";
+    };
+
+    # Most tests are online, so we only include offline tests
+    postPatch = ''
+      substituteInPlace Makefile.PL \
+         --replace '"t/*.t t/api/*.t"' \
+        '"t/00-report-prereqs.t t/api/_get.t t/api/_get_or_search.t t/api/_search.t t/entity.t t/request.t t/resultset.t"'
+    '';
+
+    buildInputs = [ LWPProtocolhttps TestFatal TestNeeds ];
+    propagatedBuildInputs = [ IOSocketSSL JSONMaybeXS Moo NetSSLeay RefUtil SafeIsa TypeTiny URI ];
+    meta = {
+      homepage = "https://github.com/metacpan/metacpan-client";
+      description = "A comprehensive, DWIM-featured client to the MetaCPAN API";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   MethodSignaturesSimple = buildPerlPackage {
     pname = "Method-Signatures-Simple";
     version = "1.07";
@@ -11699,6 +12177,20 @@ let
     };
   };
 
+  MetricsAny = buildPerlModule {
+    pname = "Metrics-Any";
+    version = "0.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PE/PEVANS/Metrics-Any-0.05.tar.gz;
+      sha256 = "1xg7y8szbfwmh72y8l1w0rz4jrd66hisl6hh3hyq31f52cs6hwvr";
+    };
+    buildInputs = [ TestFatal ];
+    meta = {
+      description = "abstract collection of monitoring metrics";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   # TODO: use CPAN version
   MHonArc = buildPerlPackage rec {
     pname = "MHonArc";
@@ -11785,7 +12277,7 @@ let
       sha256 = "db603ccbf6653bcd28cfa824d72e511ead019fc8afb9f1854ec872db2d3cd8da";
     };
     doCheck = false;
-    propagatedBuildInputs = [ HTMLParser LWP MIMELite URI ];
+    propagatedBuildInputs = [ LWP MIMELite ];
     meta = {
       description = "Provide routine to transform a HTML page in a MIME-Lite mail";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -11820,6 +12312,56 @@ let
     };
   };
 
+  Minion = buildPerlPackage {
+    pname = "Minion";
+    version = "10.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SR/SRI/Minion-10.13.tar.gz";
+      sha256 = "0nxk147v22lvc461923yv8fypqpbsajamvcvnlidk8bb54r33afj";
+    };
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      homepage = "https://github.com/mojolicious/minion";
+      description = "A high performance job queue for Perl";
+      license = stdenv.lib.licenses.artistic2;
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MinionBackendSQLite = buildPerlModule {
+    pname = "Minion-Backend-SQLite";
+    version = "5.0.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DB/DBOOK/Minion-Backend-SQLite-v5.0.3.tar.gz";
+      sha256 = "1ch92846cgr1s1y6nlicjxlq9r4qh1a3fig0jlr7ligzw05mxib4";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ Minion MojoSQLite ];
+    meta = {
+      homepage = "https://github.com/Grinnz/Minion-Backend-SQLite";
+      description = "SQLite backend for Minion job queue";
+      license = stdenv.lib.licenses.artistic2;
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MinionBackendmysql = buildPerlPackage {
+    pname = "Minion-Backend-mysql";
+    version = "0.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PR/PREACTION/Minion-Backend-mysql-0.21.tar.gz";
+      sha256 = "0dbq0pmyjcrmdjpsrkr1pxvzvdphn6mb6lk5yyyhm380prwrjahn";
+    };
+    buildInputs = [ Testmysqld ];
+    propagatedBuildInputs = [ Minion Mojomysql ];
+    meta = {
+      homepage = "https://github.com/preaction/Minion-Backend-mysql";
+      description = "MySQL backend for Minion job queue";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   MixinLinewise = buildPerlPackage {
     pname = "Mixin-Linewise";
     version = "0.108";
@@ -11879,11 +12421,11 @@ let
 
   ModernPerl = buildPerlPackage {
     pname = "Modern-Perl";
-    version = "1.20190727";
+    version = "1.20200211";
 
     src = fetchurl {
-      url = "mirror://cpan/authors/id/C/CH/CHROMATIC/Modern-Perl-1.20190727.tar.gz";
-      sha256 = "2e69d7ab7e4a53153e686c25547ad914e7464d4e5604b8851931a6e63fc51b21";
+      url = mirror://cpan/authors/id/C/CH/CHROMATIC/Modern-Perl-1.20200211.tar.gz;
+      sha256 = "da1c83cee84fab9edb9e31d7f7abac43e1337b2e66015191ec4b6da59298c480";
     };
     meta = {
       homepage = "https://github.com/chromatic/Modern-Perl";
@@ -12333,10 +12875,10 @@ let
 
   Mojolicious = buildPerlPackage {
     pname = "Mojolicious";
-    version = "8.55";
+    version = "8.58";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-8.55.tar.gz";
-      sha256 = "116f79a8jvdk0zfj34gp3idhxgk4l8qq4ka6pwhdp8pmks969w0x";
+      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-8.58.tar.gz";
+      sha256 = "0543m2g1pjm06b0yr4cffw70ki76762ria65zvrjccc2zk69pwvy";
     };
     meta = {
       homepage = "https://mojolicious.org";
@@ -12346,6 +12888,22 @@ let
     };
   };
 
+  MojoliciousPluginAssetPack = buildPerlPackage {
+    pname = "Mojolicious-Plugin-AssetPack";
+    version = "2.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-AssetPack-2.08.tar.gz";
+      sha256 = "585d9e056258b00590da109b4d5ee573fa3eb2248425247aebbfedac5a157152";
+    };
+    propagatedBuildInputs = [ FileWhich IPCRun3 Mojolicious JavaScriptMinifierXS CSSMinifierXS ];
+    meta = {
+      homepage = "https://github.com/jhthorsen/mojolicious-plugin-assetpack";
+      description = "Compress and convert css, less, sass, javascript and coffeescript files";
+      license = stdenv.lib.licenses.artistic2;
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   MojoliciousPluginMail = buildPerlModule {
     pname = "Mojolicious-Plugin-Mail";
     version = "1.5";
@@ -12380,12 +12938,12 @@ let
 
   MojoliciousPluginStatus = buildPerlPackage {
     pname = "Mojolicious-Plugin-Status";
-    version = "1.01";
+    version = "1.12";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-Plugin-Status-1.01.tar.gz";
-      sha256 = "08hvwg395sibjjkwc9fg31ngpmzf7z0467p6b0il355xqbwjpdf6";
+      url = mirror://cpan/authors/id/S/SR/SRI/Mojolicious-Plugin-Status-1.12.tar.gz;
+      sha256 = "1hn333220ba3hxl9aks0ywx933zv6klyi3a0iw571q76z5a8r2jn";
     };
-    propagatedBuildInputs = [ BSDResource IPCShareLite Mojolicious Sereal ];
+    propagatedBuildInputs = [ BSDResource CpanelJSONXS FileMap FileTemp Mojolicious ];
     meta = {
       homepage = "https://github.com/mojolicious/mojo-status";
       description = "Mojolicious server status plugin";
@@ -12461,12 +13019,13 @@ let
 
   Mojomysql = buildPerlPackage rec {
     pname = "Mojo-mysql";
-    version = "1.18";
+    version = "1.19";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TE/TEKKI/Mojo-mysql-1.18.tar.gz";
-      sha256 = "cc023f068f1ed158b5788758ea175aabe646b06d2f86049552bd7307457396bd";
+      url = mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojo-mysql-1.19.tar.gz;
+      sha256 = "8695494db239e6bbec67cc686e15a60a3424b9f71af5e9936729dfd2be8a3530";
     };
     propagatedBuildInputs = [ DBDmysql Mojolicious SQLAbstract ];
+    buildInputs = [ TestDeep ];
     meta = {
       homepage = "https://github.com/jhthorsen/mojo-mysql";
       description = "Mojolicious and Async MySQL/MariaDB";
@@ -12508,13 +13067,13 @@ let
 
   MojoPg = buildPerlPackage {
     pname = "Mojo-Pg";
-    version = "4.18";
+    version = "4.19";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SR/SRI/Mojo-Pg-4.18.tar.gz";
-      sha256 = "31baacc0d6693886b3580e4b3ec6f2d053be8578809c9c1750753576bd1bda3c";
+      url = mirror://cpan/authors/id/S/SR/SRI/Mojo-Pg-4.19.tar.gz;
+      sha256 = "5061eaddddb52c9daf2cbc34bb21e9aeea6ae58a22775fdf1ffa747905ebc992";
     };
-    buildInputs = [ TestDeep ];
     propagatedBuildInputs = [ DBDPg Mojolicious SQLAbstract ];
+    buildInputs = [ TestDeep ];
     meta = {
       homepage = "https://github.com/mojolicious/mojo-pg";
       description = "Mojolicious <3 PostgreSQL";
@@ -12555,10 +13114,10 @@ let
 
   Moo = buildPerlPackage {
     pname = "Moo";
-    version = "2.003006";
+    version = "2.004000";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/H/HA/HAARG/Moo-2.003006.tar.gz";
-      sha256 = "bcb2092ab18a45005b5e2e84465ebf3a4999d8e82a43a09f5a94d859ae7f2472";
+      url = mirror://cpan/authors/id/H/HA/HAARG/Moo-2.004000.tar.gz;
+      sha256 = "323240d000394cf38ec42e865b05cb8928f625c82c9391cd2cdc72b33c51b834";
     };
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ ClassMethodModifiers ModuleRuntime RoleTiny SubQuote ];
@@ -12664,10 +13223,10 @@ let
 
   MooXStrictConstructor = buildPerlPackage {
      pname = "MooX-StrictConstructor";
-     version = "0.010";
+     version = "0.011";
      src = fetchurl {
-       url = "mirror://cpan/authors/id/H/HA/HARTZELL/MooX-StrictConstructor-0.010.tar.gz";
-       sha256 = "0vvjgz7xbfmf69yav7sxsxmvklqv835xvh7h47w0apxmlkm9fjgr";
+       url = mirror://cpan/authors/id/H/HA/HARTZELL/MooX-StrictConstructor-0.011.tar.gz;
+       sha256 = "1qjkqrmzgz7lxhv14klsv0v9v6blf8js86d47ah24kpw5y12yf6s";
      };
      propagatedBuildInputs = [ Moo strictures ];
      buildInputs = [ TestFatal ];
@@ -12807,13 +13366,13 @@ let
 
   MooXlate = buildPerlPackage {
     pname = "MooX-late";
-    version = "0.016";
+    version = "0.100";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-late-0.016.tar.gz";
-      sha256 = "1fb6393e8b77c0ec1e99229bc6f5b9db362eedc172fa940b37defd9bb3415e4e";
+      url = mirror://cpan/authors/id/T/TO/TOBYINK/MooX-late-0.100.tar.gz;
+      sha256 = "2ae5b1e3da5abc0e4006278ecbcfa8fa7c224ea5529a6a688acbb229c09e6a5f";
     };
     buildInputs = [ TestFatal TestRequires ];
-    propagatedBuildInputs = [ Moo TypeTiny ];
+    propagatedBuildInputs = [ Moo SubHandlesVia ];
     meta = {
       description = "Easily translate Moose code to Moo";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -13446,12 +14005,47 @@ let
     };
   };
 
+  MP3Info = buildPerlPackage {
+    pname = "MP3-Info";
+    version = "1.26";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JM/JMERELO/MP3-Info-1.26.tar.gz;
+      sha256 = "1rwbrsdw6y6jgcjvrlji6fbcvwl4wlka3mkhlw12a7s2683k8qjp";
+    };
+    meta = {
+      description = "Manipulate / fetch info from MP3 audio files";
+      license = with stdenv.lib.licenses; [ artistic1 ];
+    };
+  };
+
+  MP3Tag = buildPerlPackage {
+    pname = "MP3-Tag";
+    version = "1.15";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/I/IL/ILYAZ/modules/MP3-Tag-1.15.zip;
+      sha256 = "1lanbwv97sfsb7h4vsg1v0dv3yghpz01nf3rzl4a9p3ycgs4ib5a";
+    };
+    buildInputs = [ pkgs.unzip ];
+    propagatedBuildInputs = [ CompressZlib ExtUtilsMakeMaker ];
+    postPatch = ''
+      substituteInPlace Makefile.PL --replace "'PL_FILES'" "#'PL_FILES'"
+    '';
+    postFixup = ''
+      perl data_pod.PL PERL5LIB:$PERL5LIB
+    '';
+    outputs = [ "out" ];
+    meta = {
+      description = "Module for reading tags of MP3 audio files";
+      license = with stdenv.lib.licenses; [ artistic1 ];
+    };
+  };
+
   Mouse = buildPerlModule {
     pname = "Mouse";
-    version = "2.5.9";
+    version = "2.5.10";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SK/SKAJI/Mouse-v2.5.9.tar.gz";
-      sha256 = "0wqcnm6xl7fv9r8izc9c43kr83qsr60i7y53hkickcqhxx38vmxr";
+      url = mirror://cpan/authors/id/S/SK/SKAJI/Mouse-v2.5.10.tar.gz;
+      sha256 = "1vijm8wkyws1jhnqmx104585q3srw9z1crcpy1zlcfhm8qww53ff";
     };
     buildInputs = [ DevelPPPort ModuleBuildXSUtil TestException TestFatal TestLeakTrace TestOutput TestRequires TryTiny ];
     perlPreHook = "export LD=$CC";
@@ -13476,10 +14070,10 @@ let
 
   MozillaCA = buildPerlPackage {
     pname = "Mozilla-CA";
-    version = "20180117";
+    version = "20200520";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AB/ABH/Mozilla-CA-20180117.tar.gz";
-      sha256 = "f2cc9fbe119f756313f321e0d9f1fac0859f8f154ac9d75b1a264c1afdf4e406";
+      url = mirror://cpan/authors/id/A/AB/ABH/Mozilla-CA-20200520.tar.gz;
+      sha256 = "b3ca0002310bf24a16c0d5920bdea97a2f46e77e7be3e7377e850d033387c726";
     };
 
     postPatch = ''
@@ -13663,10 +14257,10 @@ let
 
   NetAmazonS3 = buildPerlPackage {
     pname = "Net-Amazon-S3";
-    version = "0.87";
+    version = "0.89";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/L/LL/LLAP/Net-Amazon-S3-0.87.tar.gz";
-      sha256 = "77d803477a0c635f311f538e163c5f10e471882c5153398012c93f4284376b8f";
+      url = mirror://cpan/authors/id/L/LL/LLAP/Net-Amazon-S3-0.89.tar.gz;
+      sha256 = "466b4d02b5b17790f1df22df92b22a3879423b3b33317388f0975a13e74b4eea";
     };
     buildInputs = [ TestDeep TestException TestLoadAllModules TestMockTime TestWarnings ];
     propagatedBuildInputs = [ DataStreamBulk DateTimeFormatHTTP DigestHMAC DigestMD5File FileFindRule LWPUserAgentDetermined MIMETypes MooseXRoleParameterized MooseXStrictConstructor MooseXTypesDateTimeMoreCoercions RefUtil RegexpCommon SubOverride TermEncoding TermProgressBarSimple XMLLibXML ];
@@ -13781,6 +14375,10 @@ let
       sha256 = "19nf4xn9xhyd0sd2az9iliqldjj0k6ah2dmkyqyvq4rp2d9k5jgb";
     });
 
+    postPatch = ''
+      substituteInPlace Makefile.PL --replace pkg-config $PKG_CONFIG
+    '';
+
     meta = {
       homepage = "http://www.freedesktop.org/wiki/Software/dbus";
       description = "Extension for the DBus bindings";
@@ -13790,10 +14388,10 @@ let
 
   NetDNS = buildPerlPackage {
     pname = "Net-DNS";
-    version = "1.21";
+    version = "1.24";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-1.21.tar.gz";
-      sha256 = "ddefe13b28084ffcc8f10a96b3c13c59449dbf6fc371c006d129630ea0ce767a";
+      url = mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-1.24.tar.gz;
+      sha256 = "11a6c2ba6cb1c6640f01c9bbf2036bcbe3974232e9b939ab94985230c92cde63";
     };
     propagatedBuildInputs = [ DigestHMAC ];
     makeMakerFlags = "--noonline-tests";
@@ -13805,16 +14403,17 @@ let
 
   NetDNSResolverMock = buildPerlPackage {
      pname = "Net-DNS-Resolver-Mock";
-     version = "1.20171219";
+     version = "1.20200215";
      src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Net-DNS-Resolver-Mock-1.20171219.tar.gz";
-       sha256 = "0m3rxpkv1b9121srvbqkrgzg4m8mnydiydqv34in1i1ixwrl6jn9";
+       url = mirror://cpan/authors/id/M/MB/MBRADSHAW/Net-DNS-Resolver-Mock-1.20200215.tar.gz;
+       sha256 = "1rv745c16l3m3w6xx2hjmmgzkdklmzm9imdfiddmdr9hwm8g3xxy";
      };
      propagatedBuildInputs = [ NetDNS ];
      meta = {
        description = "Mock a DNS Resolver object for testing";
        license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
      };
+    buildInputs = [ TestException ];
   };
 
   NetDomainTLD = buildPerlPackage {
@@ -13873,6 +14472,21 @@ let
     };
   };
 
+  NetFreeDB = buildPerlPackage {
+    pname = "Net-FreeDB";
+    version = "0.10";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DS/DSHULTZ/Net-FreeDB-0.10.tar.gz;
+      sha256 = "11dfi14qnzsnmr71cygir85zfj15n08b7d5g0i4cj5pb70if2hzp";
+    };
+    buildInputs = [ TestMost TestDeep TestWarn TestException TestDifferences ];
+    propagatedBuildInputs = [ CDDBFile Moo libnet ];
+    meta = {
+      description = "Perl interface to freedb server(s)";
+      license = with stdenv.lib.licenses; [ artistic1 ];
+    };
+  };
+
   NetHTTP = buildPerlPackage {
     pname = "Net-HTTP";
     version = "6.19";
@@ -14010,10 +14624,10 @@ let
 
   NetPing = buildPerlPackage {
     pname = "Net-Ping";
-    version = "2.72";
+    version = "2.73";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RU/RURBAN/Net-Ping-2.72.tar.gz";
-      sha256 = "555af602f54229cd81fef7da1a81516800f3155c6dc4d07dc71be1de3253dd6a";
+      url = mirror://cpan/authors/id/R/RU/RURBAN/Net-Ping-2.73.tar.gz;
+      sha256 = "a5fbeafd3e65778364bead8800ae6a06d468ed68208619b5d4c1debd4d197cf2";
     };
     meta = {
       description = "Check a remote host for reachability";
@@ -14036,13 +14650,13 @@ let
 
   NetPrometheus = buildPerlModule {
     pname = "Net-Prometheus";
-    version = "0.07";
+    version = "0.11";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Prometheus-0.07.tar.gz";
-      sha256 = "1dh498b26wdaip053hw52317jjmb2n2r5209a1zv5yfrlxpblqm7";
+      url = mirror://cpan/authors/id/P/PE/PEVANS/Net-Prometheus-0.11.tar.gz;
+      sha256 = "0skjkz6q68y8g9blm7i03k4wprac3djq15akmlv1kmgag3i0ky12";
     };
-    propagatedBuildInputs = [ RefUtil StructDumb ];
-    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ RefUtil StructDumb URI ];
+    buildInputs = [ HTTPMessage TestFatal ];
     meta = {
       description = "export monitoring metrics for F<prometheus>";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -14421,6 +15035,22 @@ let
     };
   };
 
+  OggVorbisHeaderPurePerl = buildPerlPackage {
+    pname = "Ogg-Vorbis-Header-PurePerl";
+    version = "1.0";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DA/DANIEL/Ogg-Vorbis-Header-PurePerl-1.0.tar.gz;
+      sha256 = "0kjqswnwhp7yf7czvhggdyp2pgg5wa58b4jwpn8j3km7h2ll8pmy";
+    };
+    buildInputs = [ TestMore ];
+    # The testing mechanism is erorrneous upstream. See http://matrix.cpantesters.org/?dist=Ogg-Vorbis-Header-PurePerl+1.0
+    doCheck = false;
+    meta = {
+      description = "An object-oriented interface to Ogg Vorbis information and comment fields";
+      license = with stdenv.lib.licenses; [ artistic1 ];
+    };
+  };
+
   OLEStorage_Lite = buildPerlPackage {
     pname = "OLE-Storage_Lite";
     version = "0.20";
@@ -14454,7 +15084,7 @@ let
       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/OpenAPI-Client-0.24.tar.gz";
       sha256 = "2420a2d1a9bc24a644c9ba12d77f1252ac2209ef0ac5a432153fe49c840faf28";
     };
-    propagatedBuildInputs = [ JSONValidator MojoliciousPluginOpenAPI ];
+    propagatedBuildInputs = [ MojoliciousPluginOpenAPI ];
     meta = {
       homepage = "https://github.com/jhthorsen/openapi-client";
       description = "A client for talking to an Open API powered server";
@@ -14511,10 +15141,10 @@ let
 
   NetOpenSSH = buildPerlPackage {
     pname = "Net-OpenSSH";
-    version = "0.78";
+    version = "0.79";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SA/SALVA/Net-OpenSSH-0.78.tar.gz";
-      sha256 = "8f10844542a2824389decdb8edec7561d8199dc5f0250e849a0bb56f7aee880c";
+      url = mirror://cpan/authors/id/S/SA/SALVA/Net-OpenSSH-0.79.tar.gz;
+      sha256 = "4210fa64b50820f91ab4b6c0e02a579543fc071e73fbdec0f476447ca11172cc";
     };
     meta = {
       description = "Perl SSH client package implemented on top of OpenSSH";
@@ -14762,10 +15392,10 @@ let
 
   Parent = buildPerlPackage {
     pname = "parent";
-    version = "0.237";
+    version = "0.238";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/C/CO/CORION/parent-0.237.tar.gz";
-      sha256 = "1bnaadzf51g6zrpq6pvvgds2cc9d4w1vck7sapkd3hb5hmjdk28h";
+      url = mirror://cpan/authors/id/C/CO/CORION/parent-0.238.tar.gz;
+      sha256 = "1lfjqjxsvgpsn6ycah4z0qygkykj4v8ca3cdki61k2p2ygg8zx9q";
     };
   };
 
@@ -14878,7 +15508,7 @@ let
   };
 
   ParseYapp = buildPerlPackage {
-    pname = "Parser-Yapp";
+    pname = "Parse-Yapp";
     version = "1.21";
     src = fetchurl {
       url = "mirror://cpan/authors/id/W/WB/WBRASWELL/Parse-Yapp-1.21.tar.gz";
@@ -14921,10 +15551,10 @@ let
 
   PathTiny = buildPerlPackage {
     pname = "Path-Tiny";
-    version = "0.112";
+    version = "0.114";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Tiny-0.112.tar.gz";
-      sha256 = "813df2d140c65f795daefd8eca18e61194ecac7050c5406a069db86dea31cc3a";
+      url = mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Tiny-0.114.tar.gz;
+      sha256 = "cd0f88f37a58fc3667ec065767fe01e73ee6efa18a112bfd3508cf6579ca00e1";
     };
     meta = {
       description = "File path utility";
@@ -14989,10 +15619,10 @@ let
 
   PDFAPI2 = buildPerlPackage {
     pname = "PDF-API2";
-    version = "2.036";
+    version = "2.037";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SS/SSIMMS/PDF-API2-2.036.tar.gz";
-      sha256 = "070444e9fef8beb6f115994a6ac89533fe8ba02d5e240a35bb07adcbcb511774";
+      url = mirror://cpan/authors/id/S/SS/SSIMMS/PDF-API2-2.037.tar.gz;
+      sha256 = "142803d1886d2a2919d374fb6c25681630aa26740e3f8023337f996fa6c6297e";
     };
     buildInputs = [ TestException TestMemoryCycle ];
     propagatedBuildInputs = [ FontTTF ];
@@ -15004,10 +15634,10 @@ let
 
   Pegex = buildPerlPackage {
     pname = "Pegex";
-    version = "0.74";
+    version = "0.75";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IN/INGY/Pegex-0.74.tar.gz";
-      sha256 = "31f0889695d79a3ab79a6315a8a08baeb1268592bc6596c3feffb424d982dfdf";
+      url = mirror://cpan/authors/id/I/IN/INGY/Pegex-0.75.tar.gz;
+      sha256 = "4dc8d335de80b25247cdb3f946f0d10d9ba0b3c34b0ed7d00316fd068fd05edc";
     };
     buildInputs = [ TestPod TieIxHash ];
     meta = {
@@ -15031,10 +15661,10 @@ let
 
   Perlosnames = buildPerlPackage {
     pname = "Perl-osnames";
-    version = "0.11";
+    version = "0.122";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Perl-osnames-0.11.tar.gz";
-      sha256 = "fb22a1ed59dc2311f7f1ffca5685d90c0600020467f624f57b4dd3dba5bc659b";
+      url = mirror://cpan/authors/id/P/PE/PERLANCAR/Perl-osnames-0.122.tar.gz;
+      sha256 = "7075939d747e375178d00348d00c52ff9db2cebb18bae7473dcb09df825118a0";
     };
     meta = {
       description = "List possible $^O ($OSNAME) values, with description";
@@ -15050,7 +15680,7 @@ let
       sha256 = "2ad194f91ef24df4698369c2562d4164e9bf74f2d5565c681841abf79789ed82";
     };
     buildInputs = [ TestDeep ];
-    propagatedBuildInputs = [ BKeywords ConfigTiny FileWhich ModulePluggable PPIxQuoteLike PPIxRegexp PPIxUtilities PerlTidy PodSpell StringFormat ];
+    propagatedBuildInputs = [ BKeywords ConfigTiny FileWhich ListMoreUtils ModulePluggable PPIxQuoteLike PPIxRegexp PPIxUtilities PerlTidy PodSpell StringFormat ];
     meta = {
       homepage = "http://perlcritic.com";
       description = "Critique Perl source code for best-practices";
@@ -15069,6 +15699,19 @@ let
     };
   };
 
+  PerlIOLayers = buildPerlModule {
+    pname = "PerlIO-Layers";
+    version = "0.012";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/L/LE/LEONT/PerlIO-Layers-0.012.tar.gz;
+      sha256 = "1psaq3kwlk7g9rxvgsacfjk2mh6cscqf4xl7ggfkzfrnz91aabal";
+    };
+    meta = {
+      description = "Querying your filehandle's capabilities";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   PerlIOeol = buildPerlPackage {
     pname = "PerlIO-eol";
     version = "0.17";
@@ -15283,10 +15926,10 @@ let
 
   PlackMiddlewareDebug = buildPerlModule {
     pname = "Plack-Middleware-Debug";
-    version = "0.17";
+    version = "0.18";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Debug-0.17.tar.gz";
-      sha256 = "a30b62f1bb94e641f7b60b5ea5335e140c553b4131ec4003b56db37f47617a26";
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Debug-0.18.tar.gz;
+      sha256 = "192ef79e521c90c6eff6f4149ad2e4bfc911d2c95df78935855e90d659e9ac9a";
     };
     buildInputs = [ ModuleBuildTiny TestRequires ];
     propagatedBuildInputs = [ ClassMethodModifiers DataDump DataDumperConcise Plack TextMicroTemplate ];
@@ -15420,14 +16063,10 @@ let
 
   POE = buildPerlPackage {
     pname = "POE";
-    version = "1.367";
-    patches = [
-      ../development/perl-modules/perl-POE-1.367-pod_linkcheck.patch
-      ../development/perl-modules/perl-POE-1.367-pod_no404s.patch
-    ];
+    version = "1.368";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RC/RCAPUTO/POE-1.367.tar.gz";
-      sha256 = "0b9s7yxaa2lgzyi56brgygycfjk7lz33d1ddvc1wvwwvm45p4wmp";
+      url = mirror://cpan/authors/id/B/BI/BINGOS/POE-1.368.tar.gz;
+      sha256 = "08g1vzxamqg0gmkirdcx7fycq3pwv9vbajc30qwqpm1n3rvdrcdp";
     };
     # N.B. removing TestPodLinkCheck from buildInputs because tests requiring
     # this module don't disable themselves when "run_network_tests" is
@@ -15493,12 +16132,12 @@ let
 
   PPIxQuoteLike = buildPerlModule {
     pname = "PPIx-QuoteLike";
-    version = "0.008";
+    version = "0.011";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/W/WY/WYANT/PPIx-QuoteLike-0.008.tar.gz";
-      sha256 = "0dzlcddvfzn7s8z1jj12ghsbzf9wm5dq84361v4vx5p6j8zhsaz4";
+      url = mirror://cpan/authors/id/W/WY/WYANT/PPIx-QuoteLike-0.011.tar.gz;
+      sha256 = "0yi0rx8nf3pz1g5d9z7mi6pzbd4y2kqj61vsgmyllk6rfyjcgmsf";
     };
-    propagatedBuildInputs = [ PPI ];
+    propagatedBuildInputs = [ PPI Readonly ];
     meta = {
       description = "Parse Perl string literals and string-literal-like things.";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -15507,12 +16146,12 @@ let
 
   PPIxRegexp = buildPerlModule {
     pname = "PPIx-Regexp";
-    version = "0.068";
+    version = "0.072";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/W/WY/WYANT/PPIx-Regexp-0.068.tar.gz";
-      sha256 = "b5444b699a3c7ad79506c796559449c6f858dc62deb60e08249f96782636e5f4";
+      url = mirror://cpan/authors/id/W/WY/WYANT/PPIx-Regexp-0.072.tar.gz;
+      sha256 = "84a050b3b65c98a4b95f9df94fa0d8db9a931b000bb6e2946f0f8874cc2bac5c";
     };
-    propagatedBuildInputs = [ ListMoreUtils PPI ];
+    propagatedBuildInputs = [ PPI ];
     meta = {
       description = "Parse regular expressions";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -15728,10 +16367,10 @@ let
 
   PerlPrereqScannerNotQuiteLite = buildPerlPackage {
     pname = "Perl-PrereqScanner-NotQuiteLite";
-    version = "0.9909";
+    version = "0.9911";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Perl-PrereqScanner-NotQuiteLite-0.9909.tar.gz";
-      sha256 = "09sa86maxrqnxf84wa0cgkcs8p6xvpsv0x5dny3hz0300zgrqmq5";
+      url = mirror://cpan/authors/id/I/IS/ISHIGAKI/Perl-PrereqScanner-NotQuiteLite-0.9911.tar.gz;
+      sha256 = "1h8sv5df7736sr7vasl6hkcvqlsqz9y61wiky6bvqa7fnlfhcyp0";
     };
     propagatedBuildInputs = [ DataDump ModuleCPANfile ModuleFind RegexpTrie ];
     buildInputs = [ ExtUtilsMakeMakerCPANfile TestFailWarnings TestUseAllModules ];
@@ -15771,7 +16410,7 @@ let
       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Pod-Coverage-0.23.tar.gz";
       sha256 = "01xifj83dv492lxixijmg6va02rf3ydlxly0a9slmx22r6qa1drh";
     };
-    propagatedBuildInputs = [ DevelSymdump ];
+    propagatedBuildInputs = [ DevelSymdump PodParser ];
   };
 
   PodCoverageTrustPod = buildPerlPackage {
@@ -15885,6 +16524,7 @@ let
       url = "mirror://cpan/authors/id/T/TJ/TJENNESS/Pod-LaTeX-0.61.tar.gz";
       sha256 = "15a840ea1c8a76cd3c865fbbf2fec33b03615c0daa50f9c800c54e0cf0659d46";
     };
+    propagatedBuildInputs = [ PodParser ];
     meta = {
       homepage = "https://github.com/timj/perl-Pod-LaTeX/tree/master";
       description = "Convert Pod data to formatted Latex";
@@ -15953,6 +16593,7 @@ let
       url = "mirror://cpan/authors/id/R/RM/RMBARKER/Pod-Plainer-1.04.tar.gz";
       sha256 = "1bbfbf7d1d4871e5a83bab2137e22d089078206815190eb1d5c1260a3499456f";
     };
+    propagatedBuildInputs = [ PodParser ];
     meta = {
       description = "Perl extension for converting Pod to old-style Pod";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -16006,7 +16647,7 @@ let
       url = "mirror://cpan/authors/id/D/DO/DOLMEN/Pod-Spell-1.20.tar.gz";
       sha256 = "6383f7bfe22bc0d839a08057a0ce780698b046184aea935be4833d94986dd03c";
     };
-    propagatedBuildInputs = [ ClassTiny FileShareDir LinguaENInflect PathTiny ];
+    propagatedBuildInputs = [ ClassTiny FileShareDir LinguaENInflect PathTiny PodParser ];
     buildInputs = [ FileShareDirInstall TestDeep ];
   };
 
@@ -16061,6 +16702,7 @@ let
        url = "mirror://cpan/authors/id/N/NU/NUFFIN/Pod-Wrap-0.01.tar.gz";
        sha256 = "0qwb5hp26f85xnb3zivf8ccfdplabiyl5sd53c6wgdgvzzicpjjh";
      };
+     propagatedBuildInputs = [ PodParser ];
      meta = {
        license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
      };
@@ -16091,6 +16733,24 @@ let
     };
   };
 
+  Apprainbarf = buildPerlModule {
+    pname = "Apprainbarf";
+    version = "1.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SY/SYP/App-rainbarf-1.4.tar.gz";
+      sha256 = "4f139ad35faaf2de0623dc0bb1dd89fa5a431e548bfec87dee194cf0e25cc97d";
+    };
+    nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/rainbarf
+    '';
+    meta = {
+      homepage = "https://github.com/creaktive/rainbarf";
+      description = "CPU/RAM/battery stats chart bar for tmux (and GNU screen)";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus  ];
+    };
+  };
+
   Razor2ClientAgent = buildPerlPackage {
     pname = "Razor2-Client-Agent";
     version = "2.86";
@@ -16134,10 +16794,10 @@ let
 
   Redis = buildPerlModule {
     pname = "Redis";
-    version = "1.995";
+    version = "1.996";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DA/DAMS/Redis-1.995.tar.gz";
-      sha256 = "a0b07b284ff12bb852a3120723f1e63ab279df575d6c52a78f914565a9f0b906";
+      url = mirror://cpan/authors/id/D/DA/DAMS/Redis-1.996.tar.gz;
+      sha256 = "5c196d56a4d771abb2042fd52f252096497fc86f35910581e0956b5710ea74b6";
     };
     buildInputs = [ IOString ModuleBuildTiny TestDeep TestFatal TestSharedFork TestTCP ];
     propagatedBuildInputs = [ IOSocketTimeout TryTiny ];
@@ -16198,10 +16858,10 @@ let
 
   RegexpGrammars = buildPerlModule {
     pname = "Regexp-Grammars";
-    version = "1.052";
+    version = "1.057";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DC/DCONWAY/Regexp-Grammars-1.052.tar.gz";
-      sha256 = "d552e7aaec956fc9ff0c56602fc95bc5c97ef815a0a8df7f42d1128f39534a62";
+      url = mirror://cpan/authors/id/D/DC/DCONWAY/Regexp-Grammars-1.057.tar.gz;
+      sha256 = "af53c19818461cd701aeb57c49dffdb463edc4bf8f658d9ea4e6d534ac177041";
     };
     meta = {
       description = "Add grammatical parsing features to Perl 5.10 regexes";
@@ -16373,10 +17033,10 @@ let
 
   RTClientREST = buildPerlModule {
     pname = "RT-Client-REST";
-    version = "0.56";
+    version = "0.60";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DJ/DJZORT/RT-Client-REST-0.56.tar.gz";
-      sha256 = "798baccf11eaecbb7d2d27be0b5e4fa9cb80b34cc51cab12eb7b88facf39fd4b";
+      url = mirror://cpan/authors/id/D/DJ/DJZORT/RT-Client-REST-0.60.tar.gz;
+      sha256 = "0e6f2da3d96903491b43b19c61221cbeea88414264f907312f277daaf144248b";
     };
     buildInputs = [ CGI HTTPServerSimple TestException ];
     meta = {
@@ -16401,10 +17061,10 @@ let
 
   ScalarListUtils = buildPerlPackage {
     pname = "Scalar-List-Utils";
-    version = "1.53";
+    version = "1.55";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PEVANS/Scalar-List-Utils-1.53.tar.gz";
-      sha256 = "bd4086b066fb3b18a0be2e7d9bc100a99aa0f233ad659492340415c7b2bdae99";
+      url = mirror://cpan/authors/id/P/PE/PEVANS/Scalar-List-Utils-1.55.tar.gz;
+      sha256 = "4d2bdc1c72a7bc4d69d6a5cc85bc7566497c3b183c6175b832784329d58feb4b";
     };
     meta = {
       description = "Common Scalar and List utility subroutines";
@@ -16499,12 +17159,12 @@ let
 
   SerealDecoder = buildPerlPackage {
     pname = "Sereal-Decoder";
-    version = "4.008";
+    version = "4.014";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Decoder-4.008.tar.gz";
-      sha256 = "1vxgwlya7sj9mb6y278qblrjl2708d0agy7cryyqj7qf08d056rv";
+      url = mirror://cpan/authors/id/Y/YV/YVES/Sereal-Decoder-4.014.tar.gz;
+      sha256 = "0ph5k99ssm5anwsdjal7sw96pjs65lirfanfsw8gh6k40w0w6f44";
     };
-    buildInputs = [ TestDeep TestDifferences TestLongString TestWarn ];
+    buildInputs = [ TestDeep TestDifferences TestLongString TestMemoryGrowth TestWarn ];
     preBuild = ''ls'';
     meta = {
       homepage = "https://github.com/Sereal/Sereal";
@@ -16516,10 +17176,10 @@ let
 
   SerealEncoder = buildPerlPackage {
     pname = "Sereal-Encoder";
-    version = "4.008";
+    version = "4.014";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Encoder-4.008.tar.gz";
-      sha256 = "0vzk6d2h034qks4lby53xrfljsrx4cvkaqi7gz9frba17lvl01rq";
+      url = mirror://cpan/authors/id/Y/YV/YVES/Sereal-Encoder-4.014.tar.gz;
+      sha256 = "0044pkjkdg8y0ljmfj0bx68wf7jpfyy98kxi4z36kxarz2hcf462";
     };
     buildInputs = [ SerealDecoder TestDeep TestDifferences TestLongString TestWarn ];
     meta = {
@@ -16532,12 +17192,12 @@ let
 
   Sereal = buildPerlPackage {
     pname = "Sereal";
-    version = "4.008";
+    version = "4.014";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-4.008.tar.gz";
-      sha256 = "1ima428v8mi509crr3b1rnh67ki8vbcd7iignw68mf2iaw5wmb58";
+      url = mirror://cpan/authors/id/Y/YV/YVES/Sereal-4.014.tar.gz;
+      sha256 = "02qpl3x6sh0xfby38gr80dndkah9m5r0xhk7d4a24i9hqljjaing";
     };
-    buildInputs = [ TestLongString TestWarn ];
+    buildInputs = [ TestDeep TestLongString TestMemoryGrowth TestWarn ];
     propagatedBuildInputs = [ SerealDecoder SerealEncoder ];
     meta = {
       homepage = "https://github.com/Sereal/Sereal";
@@ -16791,10 +17451,10 @@ let
 
   Specio = buildPerlPackage {
      pname = "Specio";
-     version = "0.45";
+     version = "0.46";
      src = fetchurl {
-       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Specio-0.45.tar.gz";
-       sha256 = "1xk1skzvmqjgk7dqfkcmp6g7fc493cyk2hp94fzpdc43cg78ifg4";
+       url = mirror://cpan/authors/id/D/DR/DROLSKY/Specio-0.46.tar.gz;
+       sha256 = "15lmxffbzj1gq7n9m80a3ka8nqxmmk3p4azp33y6wv872shjmx0b";
      };
      propagatedBuildInputs = [ DevelStackTrace EvalClosure MROCompat ModuleRuntime RoleTiny SubQuote TryTiny ];
      buildInputs = [ TestFatal TestNeeds ];
@@ -16859,10 +17519,10 @@ let
 
   SQLAbstract = buildPerlPackage {
     pname = "SQL-Abstract";
-    version = "1.86";
+    version = "1.87";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IL/ILMARI/SQL-Abstract-1.86.tar.gz";
-      sha256 = "e7a7f7da5e6fa42f495860e92e9138b8a0964ca7674c95bd6ff1b1ce21aa8cdf";
+      url = mirror://cpan/authors/id/I/IL/ILMARI/SQL-Abstract-1.87.tar.gz;
+      sha256 = "e926a0a83da7efa18e57e5b2952a2ab3b7563a51733fc6dd5c89f12156481c4a";
     };
     buildInputs = [ TestDeep TestException TestWarn ];
     propagatedBuildInputs = [ HashMerge MROCompat Moo ];
@@ -16901,8 +17561,8 @@ let
       url = "mirror://cpan/authors/id/R/RE/REHSACK/SQL-Statement-1.412.tar.gz";
       sha256 = "65c870883379c11b53f19ead10aaac241ccc86a90bbab77f6376fe750720e5c8";
     };
-    buildInputs = [ TestDeep ];
-    propagatedBuildInputs = [ Clone ModuleRuntime ParamsUtil TextSoundex MathBaseConvert ];
+    buildInputs = [ MathBaseConvert TestDeep TextSoundex ];
+    propagatedBuildInputs = [ Clone ModuleRuntime ParamsUtil ];
   };
 
   SQLTokenizer = buildPerlPackage {
@@ -16916,10 +17576,10 @@ let
 
   SQLTranslator = buildPerlPackage {
     pname = "SQL-Translator";
-    version = "1.60";
+    version = "1.61";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IL/ILMARI/SQL-Translator-1.60.tar.gz";
-      sha256 = "6bb0cb32ca25da69df65e5de71f679f3ca90044064526fa336cabd342f220e87";
+      url = mirror://cpan/authors/id/M/MS/MSTROUT/SQL-Translator-1.61.tar.gz;
+      sha256 = "840e3c77cd48b47e1343c79ae8ef4fca46d036356d143d33528900740416dfe8";
     };
     buildInputs = [ FileShareDirInstall JSONMaybeXS TestDifferences TestException XMLWriter YAML ];
     propagatedBuildInputs = [ CarpClan DBI FileShareDir Moo PackageVariant ParseRecDescent TryTiny ];
@@ -17016,6 +17676,19 @@ let
     };
   };
 
+  StatisticsChiSquare = buildPerlPackage rec {
+    pname = "Statistics-ChiSquare";
+    version = "1.0000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCANTRELL/${pname}-${version}.tar.gz";
+      sha256 = "255a5a38336d048ddb9077222691e000984e907aae09a4ea695a9cfd49a1ddd0";
+    };
+    meta = {
+      description = "Implements the Chi Squared test, using pre-computed tables";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   StatisticsDescriptive = buildPerlModule {
     pname = "Statistics-Descriptive";
     version = "3.0702";
@@ -17191,6 +17864,7 @@ let
       description = "String::Interpolate - Wrapper for builtin the Perl interpolation engine.";
       license = licenses.gpl1Plus;
     };
+    propagatedBuildInputs = [ PadWalker SafeHole ];
   };
 
   StringMkPasswd = buildPerlPackage {
@@ -17320,10 +17994,10 @@ let
 
   StructDumb = buildPerlModule {
     pname = "Struct-Dumb";
-    version = "0.09";
+    version = "0.12";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PEVANS/Struct-Dumb-0.09.tar.gz";
-      sha256 = "0g9rziaqxkm00vh30g1yfwzq3b1xl23p8fbm4rszqsp641wr2z9k";
+      url = mirror://cpan/authors/id/P/PE/PEVANS/Struct-Dumb-0.12.tar.gz;
+      sha256 = "0wvzcpil9xc2wkibq3sj8i5bgq4iadx2k7hfqb8jm5p66g271kjj";
     };
     buildInputs = [ TestFatal ];
     meta = {
@@ -17391,6 +18065,21 @@ let
     };
   };
 
+  SubHandlesVia = buildPerlPackage {
+    pname = "Sub-HandlesVia";
+    version = "0.013";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TO/TOBYINK/Sub-HandlesVia-0.013.tar.gz;
+      sha256 = "1q5lqjnqw29ywkiv0iqidc88ydqp1cywrgfd8mi7yarksc296a3l";
+    };
+    propagatedBuildInputs = [ ClassMethodModifiers ClassTiny RoleTiny ScalarListUtils TypeTiny ];
+    buildInputs = [ TestFatal TestRequires ];
+    meta = {
+      description = "alternative handles_via implementation";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   SubIdentify = buildPerlPackage {
     pname = "Sub-Identify";
     version = "0.14";
@@ -17494,6 +18183,20 @@ let
     propagatedBuildInputs = [ (pkgs.subversionClient.override { inherit perl; }) ];
   };
 
+  SafeHole = buildPerlModule {
+    pname = "Safe-Hole";
+    version = "0.14";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TO/TODDR/Safe-Hole-0.14.tar.gz;
+      sha256 = "01gc2lfli282dj6a2pkpxb0vmpyavs323cbdw15gxi06pn5nxxgl";
+    };
+    meta = {
+      description = "lib/Safe/Hole.pm";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "http://github.com/toddr/Safe-Hole";
+    };
+  };
+
   Swim = buildPerlPackage {
     pname = "Swim";
     version = "0.1.48";
@@ -17574,10 +18277,10 @@ let
 
   SysMmap = buildPerlPackage {
     pname = "Sys-Mmap";
-    version = "0.19";
+    version = "0.20";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SW/SWALTERS/Sys-Mmap-0.19.tar.gz";
-      sha256 = "1yh0170xfw3z7n3lynffcb6axv7wi6zb46cx03crj1cvrhjmwa89";
+      url = mirror://cpan/authors/id/T/TO/TODDR/Sys-Mmap-0.20.tar.gz;
+      sha256 = "1kz22l7sh2mibliixyshc9958bqlkzsb13agcibp7azii4ncw80q";
     };
     meta = with stdenv.lib; {
       description = "Use mmap to map in a file as a Perl variable";
@@ -17662,25 +18365,26 @@ let
 
   SystemCommand = buildPerlPackage {
     pname = "System-Command";
-    version = "1.119";
+    version = "1.121";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BO/BOOK/System-Command-1.119.tar.gz";
-      sha256 = "c8c9fb1e527c52463cab1476500efea70396a0b62bea625d2d6faea994dc46e7";
+      url = mirror://cpan/authors/id/B/BO/BOOK/System-Command-1.121.tar.gz;
+      sha256 = "43de5ecd20c1da46e8a6f4fceab29e04697a2890a99bf6a91b3ca004a468a241";
     };
     propagatedBuildInputs = [ IPCRun ];
     meta = {
       description = "Object for running system commands";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
+    buildInputs = [ PodCoverageTrustPod TestCPANMeta TestPod TestPodCoverage ];
   };
 
   SysVirt = buildPerlModule rec {
     pname = "Sys-Virt";
-    version = "6.2.0";
+    version = "6.3.0";
     src = assert version == pkgs.libvirt.version; pkgs.fetchgit {
       url = "git://libvirt.org/libvirt-perl.git";
-      rev = "799b243230163ff4f8dde6293da8a0e31e7c900e";
-      sha256 = "1k38d1ycx3ibgfzcr1iym7cvpwvygh6a2i5548m4qjb47vfi12rz";
+      rev = "v${version}";
+      sha256 = "0m75g0kf2dmllx5c1wxzszm1zakiqjighcsjbgq66674pvqf5mk7";
     };
     nativeBuildInputs = [ pkgs.pkgconfig ];
     buildInputs = [ pkgs.libvirt CPANChanges TestPod TestPodCoverage XMLXPath ];
@@ -17724,7 +18428,7 @@ let
       sha256 = "a2f73c65d0e5676cf4aae213ba4c3f88bf85f084a2165f1e71e3ce5b19023206";
     };
     buildInputs = [ CodeTidyAll TestDataSplit TestDifferences TestPerlTidy TestRunPluginTrimDisplayedFilenames TestRunValgrind TestTrailingSpace TestTrap ];
-    propagatedBuildInputs = [ EnvPath FileWhich GamesSolitaireVerify InlineC MooX StringShellQuote TaskTestRunAllPlugins TemplateToolkit YAMLLibYAML ];
+    propagatedBuildInputs = [ EnvPath FileWhich GamesSolitaireVerify InlineC ListMoreUtils MooX StringShellQuote TaskTestRunAllPlugins TemplateToolkit YAMLLibYAML ];
     meta = {
       description = "Install the CPAN dependencies of the Freecell Solver test suite";
       license = stdenv.lib.licenses.mit;
@@ -17859,16 +18563,18 @@ let
 
   TemplateToolkit = buildPerlPackage {
     pname = "Template-Toolkit";
-    version = "3.007";
+    version = "3.008";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AT/ATOOMIC/Template-Toolkit-3.007.tar.gz";
-      sha256 = "1jh953f1v4r494mdvzfqs1ay1bh453dmp10z4qmv0makwarjsnfp";
+      url = mirror://cpan/authors/id/A/AT/ATOOMIC/Template-Toolkit-3.008.tar.gz;
+      sha256 = "14m6kl9zrs6ycr440an7zswrmcimv2747qq0r87inwznprl0yh2j";
     };
     doCheck = !stdenv.isDarwin;
     meta = {
       description = "Comprehensive template processing system";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
+    propagatedBuildInputs = [ AppConfig ];
+    buildInputs = [ CGI TestLeakTrace ];
   };
 
    TemplateGD = buildPerlPackage {
@@ -18142,10 +18848,10 @@ let
 
   Test2Suite = buildPerlPackage {
     pname = "Test2-Suite";
-    version = "0.000128";
+    version = "0.000130";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Suite-0.000128.tar.gz";
-      sha256 = "f8e4e76900f5fb748d085aa5d18b916e07273e9ca50fb671ab8be1301cfae08c";
+      url = mirror://cpan/authors/id/E/EX/EXODIST/Test2-Suite-0.000130.tar.gz;
+      sha256 = "d462cb95024c0735fc0fdb22f92fda4f852bf85d92d89bd95e4fa212730d534a";
     };
     propagatedBuildInputs = [ ModulePluggable ScopeGuard SubInfo TermTable TestSimple13 ];
     meta = {
@@ -18323,10 +19029,10 @@ let
 
   TestCompile = buildPerlModule {
     pname = "Test-Compile";
-    version = "2.3.1";
+    version = "2.4.0";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/EG/EGILES/Test-Compile-v2.3.1.tar.gz";
-      sha256 = "1174cff010011ae43e6462755ccd8a6cf0372ca506705c60586f7b1748ff4ddf";
+      url = mirror://cpan/authors/id/E/EG/EGILES/Test-Compile-v2.4.0.tar.gz;
+      sha256 = "eff7e320527d7a33d9b27443871c1e9d5dbeb11408fb9843c56496f67b99ad78";
     };
     propagatedBuildInputs = [ UNIVERSALrequire ];
     meta = {
@@ -18379,10 +19085,10 @@ let
 
   TestDeep = buildPerlPackage {
     pname = "Test-Deep";
-    version = "1.128";
+    version = "1.130";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Deep-1.128.tar.gz";
-      sha256 = "0bq9c0vrxbwhhy1pd2ss06fk06jal98j022mnyq6k0msdy1pwbc5";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Test-Deep-1.130.tar.gz;
+      sha256 = "0mkw18q5agr30djxr1y68rcfw8aq20ws872hmv88f9gnynag8r20";
     };
     meta = {
     };
@@ -18663,10 +19369,10 @@ let
 
   TestLWPUserAgent = buildPerlPackage {
     pname = "Test-LWP-UserAgent";
-    version = "0.033";
+    version = "0.034";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-LWP-UserAgent-0.033.tar.gz";
-      sha256 = "03fjjj65fpjr4pv1532kwci1llfbsv4g9an0h7k723yqfx1wgdsb";
+      url = mirror://cpan/authors/id/E/ET/ETHER/Test-LWP-UserAgent-0.034.tar.gz;
+      sha256 = "1ybhl9zpxkz77d25h96kbgh16zy9f27n95p6j9jg52kvdg0r2lbp";
     };
     propagatedBuildInputs = [ LWP SafeIsa namespaceclean ];
     buildInputs = [ PathTiny Plack TestDeep TestFatal TestNeeds TestRequiresInternet TestWarnings ];
@@ -18739,6 +19445,33 @@ let
     };
   };
 
+  TestMemoryGrowth = buildPerlModule {
+    pname = "Test-MemoryGrowth";
+    version = "0.03";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PE/PEVANS/Test-MemoryGrowth-0.03.tar.gz;
+      sha256 = "0z6lmalhq3k3p303qahs0ijp6sarf3ij88m39yhzizzf9abapvsz";
+    };
+    meta = {
+      description = "assert that code does not cause growth in memory usage";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestMetricsAny = buildPerlModule {
+    pname = "Test-Metrics-Any";
+    version = "0.01";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PE/PEVANS/Test-Metrics-Any-0.01.tar.gz;
+      sha256 = "0s744lv997g1wr4i4vg1d7zpzjfw334hdy45215jf6xj9s6wh1i5";
+    };
+    propagatedBuildInputs = [ MetricsAny ];
+    meta = {
+      description = "assert that code produces metrics via L<Metrics::Any>";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   TestMockClass = buildPerlModule {
     pname = "Test-Mock-Class";
     version = "0.0303";
@@ -18771,10 +19504,10 @@ let
 
   TestMockModule = buildPerlModule {
     pname = "Test-MockModule";
-    version = "0.171.0";
+    version = "0.173.0";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/G/GF/GFRANKS/Test-MockModule-v0.171.0.tar.gz";
-      sha256 = "1arqgb1773zym5dqlwm6kz48bfrccjhb5bjfsif0vkalwq2gvm7b";
+      url = mirror://cpan/authors/id/G/GF/GFRANKS/Test-MockModule-v0.173.0.tar.gz;
+      sha256 = "0hnv2ziyasrri58ys93j5qyyzgxw3jx5hvjhd72nsp4vqq6lhg6s";
     };
     propagatedBuildInputs = [ SUPER ];
     buildInputs = [ TestWarnings ];
@@ -18863,10 +19596,10 @@ let
 
   TestMost = buildPerlPackage {
     pname = "Test-Most";
-    version = "0.35";
+    version = "0.37";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/O/OV/OVID/Test-Most-0.35.tar.gz";
-      sha256 = "0zv5dyzq55r28plffibcr7wd00abap0h2zh4s4p8snaiszsad5wq";
+      url = mirror://cpan/authors/id/O/OV/OVID/Test-Most-0.37.tar.gz;
+      sha256 = "1isg8z6by113zn08l044w6k04y5m5bnns3rqmks8rwdr3qa70csk";
     };
     propagatedBuildInputs = [ ExceptionClass ];
     meta = {
@@ -18876,6 +19609,23 @@ let
     buildInputs = [ TestDeep TestDifferences TestException TestWarn ];
   };
 
+  Testmysqld = buildPerlModule {
+    pname = "Test-mysqld";
+    version = "1.0013";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SO/SONGMU/Test-mysqld-1.0013.tar.gz";
+      sha256 = "1vrybrh3is3xfwqdhxr1mvmmdyjhz9p0f6n8hasn7japj2h43bap";
+    };
+    buildInputs = [ pkgs.which ModuleBuildTiny TestSharedFork ];
+    propagatedBuildInputs = [ ClassAccessorLite DBDmysql FileCopyRecursive ];
+    meta = {
+      homepage = "https://github.com/kazuho/p5-test-mysqld";
+      description = "Mysqld runner for tests";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   TestNeeds = buildPerlPackage {
     pname = "Test-Needs";
     version = "0.002006";
@@ -18961,10 +19711,10 @@ let
 
   TestPerlTidy = buildPerlModule {
     pname = "Test-PerlTidy";
-    version = "20190402";
+    version = "20200412";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-PerlTidy-20190402.tar.gz";
-      sha256 = "e9cb9b23ed62e8c6a47a1e18b55328aa3bfa467e05cd93e7e12b2738dd1e025f";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/Test-PerlTidy-20200412.tar.gz;
+      sha256 = "905240447edb1930192000db659556cbf5ad5710f4376bb0a5abcd8716a4592c";
     };
     propagatedBuildInputs = [ PathTiny PerlTidy TextDiff ];
     meta = {
@@ -19004,7 +19754,7 @@ let
       sha256 = "2bfe771173c38b69eeb089504e3f76511b8e45e6a9e6dac3e616e400ea67bcf0";
     };
     buildInputs = [ ModuleBuildTiny TestPod ];
-    propagatedBuildInputs = [ CaptureTiny Moose podlinkcheck ];
+    propagatedBuildInputs = [ CaptureTiny Moose podlinkcheck PodParser ];
     meta = {
       description = "Tests POD for invalid links";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -19054,10 +19804,10 @@ let
 
   TestRequires = buildPerlPackage {
     pname = "Test-Requires";
-    version = "0.10";
+    version = "0.11";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Test-Requires-0.10.tar.gz";
-      sha256 = "1d9f481lj12cw1ciil46xq9nq16p6a90nm7yrsalpf8asn8s6s17";
+      url = mirror://cpan/authors/id/T/TO/TOKUHIROM/Test-Requires-0.11.tar.gz;
+      sha256 = "03q49vi09b4n31kpnmq4v2dga5ja438a8f1wgkgwvvlpjmadx22b";
     };
     meta = {
       description = "Checks to see if the module can be loaded";
@@ -19281,10 +20031,10 @@ let
 
   TestSimple13 = buildPerlPackage {
     pname = "Test-Simple";
-    version = "1.302171";
+    version = "1.302175";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-Simple-1.302171.tar.gz";
-      sha256 = "e27f90d2b2a6bc6ffa7675a072c2f41d5caffd99858dc69b2030940cc138368a";
+      url = mirror://cpan/authors/id/E/EX/EXODIST/Test-Simple-1.302175.tar.gz;
+      sha256 = "c8c8f5c51ad6d7a858c3b61b8b658d8e789d3da5d300065df0633875b0075e49";
     };
     meta = {
       description = "Basic utilities for writing tests";
@@ -19400,10 +20150,10 @@ let
 
   TestTrailingSpace = buildPerlModule {
     pname = "Test-TrailingSpace";
-    version = "0.0302";
+    version = "0.0600";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-TrailingSpace-0.0302.tar.gz";
-      sha256 = "c48a6377d84576512b47652798d9d4bb4467adacf0e6afc3df1f880f2c03b612";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/Test-TrailingSpace-0.0600.tar.gz;
+      sha256 = "f09d263adec06700a43a24e29f5484cf6d2939914c607dec51590f4bb8fa5a11";
     };
     propagatedBuildInputs = [ FileFindObjectRule ];
     meta = {
@@ -19441,10 +20191,10 @@ let
 
   TestWarnings = buildPerlPackage {
     pname = "Test-Warnings";
-    version = "0.028";
+    version = "0.030";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Warnings-0.028.tar.gz";
-      sha256 = "26fda9f8d279e943d27e43a4a3a5cea8a6592cd36e7308695f8dc6602262c0e0";
+      url = mirror://cpan/authors/id/E/ET/ETHER/Test-Warnings-0.030.tar.gz;
+      sha256 = "89a4947ddf1564ae01122275584433d7f6c4370370bcf3768922d796956ae24f";
     };
     buildInputs = [ CPANMetaCheck PadWalker ];
     meta = {
@@ -19547,10 +20297,10 @@ let
 
   TextAligner = buildPerlModule {
     pname = "Text-Aligner";
-    version = "0.13";
+    version = "0.16";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Aligner-0.13.tar.gz";
-      sha256 = "1vry21jrh91l2pkajnrps83bnr1fn6zshbzi80mcrnggrn9iq776";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Aligner-0.16.tar.gz;
+      sha256 = "09ap457vrlqvw2544j907fbb5crs08hd7sy4syipzxc6wny7v1aw";
     };
     meta = {
       description = "Align text in columns";
@@ -19670,10 +20420,10 @@ let
 
   TextCSV_XS = buildPerlPackage {
     pname = "Text-CSV_XS";
-    version = "1.40";
+    version = "1.43";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/H/HM/HMBRAND/Text-CSV_XS-1.40.tgz";
-      sha256 = "6a448ae1f66768fa5dec1cd2fb246bcaaa3f3ea22d555d1fee8d091833073675";
+      url = mirror://cpan/authors/id/H/HM/HMBRAND/Text-CSV_XS-1.43.tgz;
+      sha256 = "cd94538e8ae9388d9e9e5527630f38f4d2b766e30310d283f0f9c692b94230bb";
     };
     meta = {
       description = "Comma-Separated Values manipulation routines";
@@ -19977,10 +20727,10 @@ let
 
   TextTable = buildPerlModule {
     pname = "Text-Table";
-    version = "1.133";
+    version = "1.134";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Table-1.133.tar.gz";
-      sha256 = "04kh5x5inq183rdg221wlqaaqi1ipyj588mxsslik6nhc14f17nd";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Table-1.134.tar.gz;
+      sha256 = "02yigisvgshpgfyqwj0xad4jg473cd80a6c210nb5h5p32dl5kxs";
     };
     propagatedBuildInputs = [ TextAligner ];
     meta = {
@@ -20090,10 +20840,10 @@ let
 
   Testutf8 = buildPerlPackage {
     pname = "Test-utf8";
-    version = "1.01";
+    version = "1.02";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MA/MARKF/Test-utf8-1.01.tar.gz";
-      sha256 = "ef371b1769cd8d36d2d657e8321723d94c8f8d89e7fd7437c6648c5dc6711b7a";
+      url = mirror://cpan/authors/id/M/MA/MARKF/Test-utf8-1.02.tar.gz;
+      sha256 = "df82f09c5940830b25a49f1c8162fa24d371e602880edef8d9a4d4bfd66b8bd7";
     };
     meta = {
       homepage = "https://github.com/2shortplanks/Test-utf8";
@@ -20254,6 +21004,21 @@ let
     };
   };
 
+  TieEncryptedHash = buildPerlPackage {
+    pname = "Tie-EncryptedHash";
+    version = "1.24";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VI/VIPUL/Tie-EncryptedHash-1.24.tar.gz";
+      sha256 = "aa9a083a231e4046170a5894644e3c59679c7dbd0aa2d1217dc85150df2c1e21";
+    };
+    propagatedBuildInputs = [ CryptBlowfish CryptCBC CryptDES ];
+    meta = {
+      description = "Hashes (and objects based on hashes) with encrypting fields";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   TieFile = buildPerlPackage {
     pname = "Tie-File";
     version = "1.05";
@@ -20367,10 +21132,10 @@ let
 
   TimeDate = buildPerlPackage {
     pname = "TimeDate";
-    version = "2.31";
+    version = "2.33";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AT/ATOOMIC/TimeDate-2.31.tar.gz";
-      sha256 = "10ad6l4ii2iahdpw8h0xqwasc1jblan31h597q3js4j5nbnhywjw";
+      url = mirror://cpan/authors/id/A/AT/ATOOMIC/TimeDate-2.33.tar.gz;
+      sha256 = "1cjyc0yi873597r7xcp9yz0l1c46ik2kxwfrn00zbrlx0d5rrdn0";
     };
   };
 
@@ -20505,10 +21270,10 @@ let
 
   Tk = buildPerlPackage {
     pname = "Tk";
-    version = "804.034";
+    version = "804.035";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SR/SREZIC/Tk-804.034.tar.gz";
-      sha256 = "fea6b144c723528a2206c8cd9175844032ee9c14ee37791f0f151e5e5b293fe2";
+      url = mirror://cpan/authors/id/S/SR/SREZIC/Tk-804.035.tar.gz;
+      sha256 = "4d2b80291ba6de34d8ec886a085a6dbd2b790b926035a087e99025614c5ffdd4";
     };
     makeMakerFlags = "X11INC=${pkgs.xorg.libX11.dev}/include X11LIB=${pkgs.xorg.libX11.out}/lib";
     buildInputs = [ pkgs.xorg.libX11 pkgs.libpng ];
@@ -20602,10 +21367,10 @@ let
 
   TypeTiny = buildPerlPackage {
     pname = "Type-Tiny";
-    version = "1.008005";
+    version = "1.010002";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-1.008005.tar.gz";
-      sha256 = "cc25eb6bd204b586b71e1f6408922b88be3c8183a1e4f99282d885904c776226";
+      url = mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-1.010002.tar.gz;
+      sha256 = "2ea6ea2d8b2b3bb1b94f0309fa5064d57e7734c8bb14e99218e655dc1647073a";
     };
     propagatedBuildInputs = [ ExporterTiny ];
     meta = {
@@ -21008,16 +21773,16 @@ let
       url = "mirror://cpan/authors/id/S/SZ/SZBALINT/WWW-Curl-4.17.tar.gz";
       sha256 = "1fmp9aib1kaps9vhs4dwxn7b15kgnlz9f714bxvqsd1j1q8spzsj";
     };
-    patches = [ ../development/perl-modules/WWW-Curl-4.17-Skip-preprocessor-symbol-only-CURL_STRICTER.patch ];
+    patches = [
+      (fetchpatch {
+        url = "https://aur.archlinux.org/cgit/aur.git/plain/curl-7.71.0.patch?h=perl-www-curl&id=261d84887d736cc097abef61164339216fb79180";
+        sha256 = "1hiw5lkflfa93z5d6k8fnnml0r08c653bbvvb8zx6gcrlbrdalfs";
+        name = "WWWCurl-curl-7.71.0.patch";
+      })
+    ];
+    NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang "-Wno-return-type";
     buildInputs = [ pkgs.curl ];
-    preConfigure =
-      ''
-        substituteInPlace Makefile.PL --replace '"cpp"' '"gcc -E"'
-        substituteInPlace Makefile.PL --replace '_LASTENTRY\z' '_LASTENTRY\z|CURL_DID_MEMORY_FUNC_TYPEDEFS\z'
-      '';
-    NIX_CFLAGS_COMPILE = "-DCURL_STRICTER";
     doCheck = false; # performs network access
-    meta.broken = stdenv.lib.versionAtLeast (stdenv.lib.getVersion pkgs.curl) "7.66"; # broken since "curl: 7.65.3 -> 7.66.0"
   };
 
   WWWFormUrlEncoded = buildPerlModule {
@@ -21036,10 +21801,10 @@ let
 
   WWWMechanize = buildPerlPackage {
     pname = "WWW-Mechanize";
-    version = "1.95";
+    version = "2.00";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/O/OA/OALDERS/WWW-Mechanize-1.95.tar.gz";
-      sha256 = "1w121x0xsn1bm699ncanyxqv3njqam3zzjkq8p54bqmzpikn5crs";
+      url = mirror://cpan/authors/id/O/OA/OALDERS/WWW-Mechanize-2.00.tar.gz;
+      sha256 = "0j5bzn9jwb8rclif776gax57jxxn108swmajiqi2cpjbmlwng0ki";
     };
     propagatedBuildInputs = [ HTMLForm HTMLTree LWP ];
     doCheck = false;
@@ -21048,7 +21813,7 @@ let
       description = "Handy web browsing in a Perl object";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
-    buildInputs = [ CGI HTTPServerSimple TestDeep TestFatal TestOutput TestWarnings ];
+    buildInputs = [ CGI HTTPServerSimple PathTiny TestDeep TestFatal TestOutput TestWarnings ];
   };
 
   WWWMechanizeCGI = buildPerlPackage {
@@ -21308,13 +22073,13 @@ let
 
   XMLLibXML = buildPerlPackage {
     pname = "XML-LibXML";
-    version = "2.0202";
+    version = "2.0205";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0202.tar.gz";
-      sha256 = "1bp2d5jpfmp35f2giwqx60q2rmzq469szkxzfcqkd742x72h4ayc";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0205.tar.gz;
+      sha256 = "0y12bcpnxzn8vs9zglaaxkw0kgrgmljxrxdf1cnijgxi2hkh099s";
     };
     SKIP_SAX_INSTALL = 1;
-    buildInputs = [ AlienLibxml2 ];
+    buildInputs = [ AlienBuild AlienLibxml2 ];
     propagatedBuildInputs = [ XMLSAX ];
   };
 
@@ -21366,10 +22131,10 @@ let
 
   XMLParser = buildPerlPackage {
     pname = "XML-Parser";
-    version = "2.46";
+    version = "2.44";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz";
-      sha256 = "0pai3ik47q7rgnix9644c673fwydz52gqkxr9kxwq765j4j36cfk";
+      url = mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-2.44.tar.gz;
+      sha256 = "05ij0g6bfn27iaggxf8nl5rhlwx6f6p6xmdav6rjcly3x5zd1s8s";
     };
     patches = [ ../development/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch ];
     postPatch = stdenv.lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
@@ -21607,12 +22372,12 @@ let
 
   XSObjectMagic = buildPerlPackage {
     pname = "XS-Object-Magic";
-    version = "0.04";
+    version = "0.05";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/F/FL/FLORA/XS-Object-Magic-0.04.tar.gz";
-      sha256 = "03fghj7hq0fiicmfdxhmzfm4mzv7s097pgkd32ji7jnljvhm9six";
+      url = mirror://cpan/authors/id/E/ET/ETHER/XS-Object-Magic-0.05.tar.gz;
+      sha256 = "0njyy4y0zax4zz55y82dlm9cly1pld1lcxb281s12bp9rrhf9j9x";
     };
-    buildInputs = [ ExtUtilsDepends TestFatal ];
+    buildInputs = [ ExtUtilsDepends TestFatal TestSimple13 ];
     meta = {
       description = "XS pointer backed objects using sv_magic";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -21658,6 +22423,7 @@ let
       url = "mirror://cpan/authors/id/T/TO/TODDR/YAML-Syck-1.32.tar.gz";
       sha256 = "1fz9r9vvsmjkzvcbznxw65b319vkmwzd0ck09q9nwip00gn907fv";
     };
+    perlPreHook = stdenv.lib.optionalString stdenv.isDarwin "export LD=$CC";
     meta = {
       description = "Fast, lightweight YAML loader and dumper";
       license = stdenv.lib.licenses.mit;
@@ -21675,19 +22441,19 @@ let
 
   YAMLLibYAML = buildPerlPackage {
     pname = "YAML-LibYAML";
-    version = "0.81";
+    version = "0.82";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-LibYAML-0.81.tar.gz";
-      sha256 = "1rwmy4kywaa0hypy329gb8wbqdk01bv4179bbnjbg66kzl5ndpvh";
+      url = mirror://cpan/authors/id/T/TI/TINITA/YAML-LibYAML-0.82.tar.gz;
+      sha256 = "0j7yhxkaasccynl5iq1cqpf4x253p4bi5wsq6qbwwv2wjsiwgd02";
     };
   };
 
   YAMLPP = buildPerlPackage {
     pname = "YAML-PP";
-    version = "0.018";
+    version = "0.022";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-PP-0.018.tar.gz";
-      sha256 = "1s957svv1z4sz62s53n5ym3c0liafs2gl8r0m7xq9qgcb9dyvblx";
+      url = mirror://cpan/authors/id/T/TI/TINITA/YAML-PP-0.022.tar.gz;
+      sha256 = "1hf7kpnzais4inhvh3azr0r9886lsqr8xjb81nik0idlgpl8rzh2";
     };
     buildInputs = [ TestDeep TestWarn ];
     meta = {
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index 1e6430df983..578dcaf761b 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, pkgs, fetchgit, php, autoconf, pkgconfig, re2c
-, gettext, bzip2, curl, libxml2, openssl, gmp, icu, oniguruma, libsodium
+, gettext, bzip2, curl, libxml2, openssl, gmp, icu64, oniguruma, libsodium
 , html-tidy, libzip, zlib, pcre, pcre2, libxslt, aspell, openldap, cyrus_sasl
 , uwimap, pam, libiconv, enchant1, libXpm, gd, libwebp, libjpeg, libpng
 , freetype, libffi, freetds, postgresql, sqlite, net-snmp, unixODBC, libedit
@@ -57,12 +57,12 @@ in
     };
 
     composer = mkDerivation rec {
-      version = "1.10.6";
+      version = "1.10.8";
       pname = "composer";
 
       src = pkgs.fetchurl {
         url = "https://getcomposer.org/download/${version}/composer.phar";
-        sha256 = "0yzfzgg9qlc388g91bdg7y7rp1q8vqb5hkwykwmr1n1lv8dsrg99";
+        sha256 = "1rbqa56bsc3wrhk8djxdzh755zx1qrqp3wrdid7x0djzbmzp6h2c";
       };
 
       dontUnpack = true;
@@ -232,12 +232,12 @@ in
     };
 
     phpstan = mkDerivation rec {
-      version = "0.12.25";
+      version = "0.12.32";
       pname = "phpstan";
 
       src = pkgs.fetchurl {
         url = "https://github.com/phpstan/phpstan/releases/download/${version}/phpstan.phar";
-        sha256 = "1a864v7fxpv5kp24nkvczrir3ldl6wxvaq85rd391ppa8ahdhvdd";
+        sha256 = "0sb7yhjjh4wj8wbv4cdf0n1lvhx1ciz7ch8lr73maajj2xbvy1zk";
       };
 
       phases = [ "installPhase" ];
@@ -547,7 +547,7 @@ in
       nativeBuildInputs = [ pkgs.pkgconfig ];
       buildInputs = with pkgs; [
         cyrus_sasl
-        icu
+        icu64
         openssl
         snappy
         zlib
@@ -972,7 +972,7 @@ in
         enable = (!stdenv.isDarwin); }
       # interbase (7.3, 7.2)
       { name = "intl";
-        buildInputs = [ icu ];
+        buildInputs = [ icu64 ];
         patches = lib.optional (lib.versionOlder php.version "7.4") (fetchpatch {
           url = "https://github.com/php/php-src/commit/93a9b56c90c334896e977721bfb3f38b1721cec6.patch";
           sha256 = "055l40lpyhb0rbjn6y23qkzdhvpp7inbnn6x13cpn4inmhjqfpg4";
@@ -1014,6 +1014,7 @@ in
                +----------------------------------------------------------------------+
                | Copyright (c) The PHP Group                                          |
           '')
+        ] ++ lib.optional (lib.versionOlder php.version "7.4.8") [
           (pkgs.writeText "mysqlnd_fix_compression.patch" ''
             --- a/ext/mysqlnd/mysqlnd.h
             +++ b/ext/mysqlnd/mysqlnd.h
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index b2b3f85e716..e17ccce7f27 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -142,157 +142,364 @@ in {
   else
     callPackage ../development/python-modules/setuptools { };
 
-  vowpalwabbit = callPackage ../development/python-modules/vowpalwabbit { };
+  aadict = callPackage ../development/python-modules/aadict { };
 
-  acoustics = callPackage ../development/python-modules/acoustics { };
+  aafigure = callPackage ../development/python-modules/aafigure { };
 
-  py3to2 = callPackage ../development/python-modules/3to2 { };
+  absl-py = callPackage ../development/python-modules/absl-py { };
 
-  pynamodb = callPackage ../development/python-modules/pynamodb { };
+  accupy = callPackage ../development/python-modules/accupy { };
 
-  absl-py = callPackage ../development/python-modules/absl-py { };
+  acme = callPackage ../development/python-modules/acme { };
+
+  acme-tiny = callPackage ../development/python-modules/acme-tiny { };
+
+  acoustics = callPackage ../development/python-modules/acoustics { };
+
+  actdiag = callPackage ../development/python-modules/actdiag { };
+
+  adal = callPackage ../development/python-modules/adal { };
 
   adb-homeassistant = callPackage ../development/python-modules/adb-homeassistant { };
 
+  addic7ed-cli = callPackage ../development/python-modules/addic7ed-cli { };
+
   aenum = callPackage ../development/python-modules/aenum { };
 
+  afdko = callPackage ../development/python-modules/afdko { };
+
+  affine = callPackage ../development/python-modules/affine { };
+
   affinity = callPackage ../development/python-modules/affinity { };
 
   agate = callPackage ../development/python-modules/agate { };
 
   agate-dbf = callPackage ../development/python-modules/agate-dbf { };
 
-  alerta = callPackage ../development/python-modules/alerta { };
+  agate-excel = callPackage ../development/python-modules/agate-excel { };
 
-  alerta-server = callPackage ../development/python-modules/alerta-server { };
+  agate-sql = callPackage ../development/python-modules/agate-sql { };
 
-  androguard = callPackage ../development/python-modules/androguard { };
+  aioamqp = callPackage ../development/python-modules/aioamqp { };
 
-  phonenumbers = callPackage ../development/python-modules/phonenumbers { };
+  aioconsole = callPackage ../development/python-modules/aioconsole { };
 
-  agate-excel = callPackage ../development/python-modules/agate-excel { };
+  aiocontextvars = callPackage ../development/python-modules/aiocontextvars { };
 
-  agate-sql = callPackage ../development/python-modules/agate-sql { };
+  aiodns = callPackage ../development/python-modules/aiodns { };
+
+  aioesphomeapi = callPackage ../development/python-modules/aioesphomeapi { };
+
+  aioeventlet = callPackage ../development/python-modules/aioeventlet { };
+
+  aiofiles = callPackage ../development/python-modules/aiofiles { };
+
+  aioftp = callPackage ../development/python-modules/aioftp { };
+
+  aioh2 = callPackage ../development/python-modules/aioh2 { };
+
+  aioharmony = callPackage ../development/python-modules/aioharmony { };
+
+  aiohttp = callPackage ../development/python-modules/aiohttp { };
+
+  aiohttp-cors = callPackage ../development/python-modules/aiohttp-cors { };
+
+  aiohttp-jinja2 = callPackage ../development/python-modules/aiohttp-jinja2 { };
+
+  aiohttp-remotes = callPackage ../development/python-modules/aiohttp-remotes { };
+
+  aiohttp-socks = callPackage ../development/python-modules/aiohttp-socks { };
+
+  aiohttp-swagger = callPackage ../development/python-modules/aiohttp-swagger { };
+
+  aiohue = callPackage ../development/python-modules/aiohue { };
 
   aioimaplib = callPackage ../development/python-modules/aioimaplib { };
 
+  aiojobs = callPackage ../development/python-modules/aiojobs { };
+
+  aiokafka = callPackage ../development/python-modules/aiokafka { };
+
   aiolifx = callPackage ../development/python-modules/aiolifx { };
 
   aiolifx-effects = callPackage ../development/python-modules/aiolifx-effects { };
 
-  aioamqp = callPackage ../development/python-modules/aioamqp { };
+  aiomysql = callPackage ../development/python-modules/aiomysql { };
+
+  aioprocessing = callPackage ../development/python-modules/aioprocessing { };
 
   aioredis = callPackage ../development/python-modules/aioredis { };
 
+  aioresponses = callPackage ../development/python-modules/aioresponses { };
+
+  aiorpcx = callPackage ../development/python-modules/aiorpcx { };
+
   aiorun = callPackage ../development/python-modules/aiorun { };
 
-  ansicolor = callPackage ../development/python-modules/ansicolor { };
+  aiosmtpd = callPackage ../development/python-modules/aiosmtpd { };
+
+  aiosqlite = callPackage ../development/python-modules/aiosqlite { };
+
+  aiounifi = callPackage ../development/python-modules/aiounifi { };
+
+  aiounittest = callPackage ../development/python-modules/aiounittest { };
+
+  aiozeroconf = callPackage ../development/python-modules/aiozeroconf { };
+
+  ajpy = callPackage ../development/python-modules/ajpy { };
 
-  ansiwrap =  callPackage ../development/python-modules/ansiwrap { };
+  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 { };
+
+  alot = callPackage ../development/python-modules/alot { };
+
+  altair = callPackage ../development/python-modules/altair { };
+
+  amazon_kclpy = callPackage ../development/python-modules/amazon_kclpy { };
+
+  amqp = callPackage ../development/python-modules/amqp { };
+
+  amqplib = callPackage ../development/python-modules/amqplib { };
+
+  androguard = callPackage ../development/python-modules/androguard { };
+
+  aniso8601 = callPackage ../development/python-modules/aniso8601 { };
+
+  annexremote = callPackage ../development/python-modules/annexremote { };
+
+  annoy = callPackage ../development/python-modules/annoy { };
+
+  anonip = callPackage ../development/python-modules/anonip { };
 
   ansi2html = callPackage ../development/python-modules/ansi2html { };
 
-  anytree = callPackage ../development/python-modules/anytree {
-    inherit (pkgs) graphviz;
-  };
+  ansible = callPackage ../development/python-modules/ansible { };
+
+  ansible-kernel = callPackage ../development/python-modules/ansible-kernel { };
+
+  ansible-lint = callPackage ../development/python-modules/ansible-lint { };
+
+  ansible-runner = callPackage ../development/python-modules/ansible-runner { };
+
+  ansi = callPackage ../development/python-modules/ansi { };
+
+  ansicolor = callPackage ../development/python-modules/ansicolor { };
+
+  ansicolors = callPackage ../development/python-modules/ansicolors { };
+
+  ansiconv = callPackage ../development/python-modules/ansiconv { };
+
+  ansiwrap = callPackage ../development/python-modules/ansiwrap { };
+
+  antlr4-python2-runtime = callPackage ../development/python-modules/antlr4-python2-runtime { antlr4 = pkgs.antlr4; };
+
+  antlr4-python3-runtime = callPackage ../development/python-modules/antlr4-python3-runtime { antlr4 = pkgs.antlr4; };
+
+  anyjson = callPackage ../development/python-modules/anyjson { };
+
+  anytree = callPackage ../development/python-modules/anytree { inherit (pkgs) graphviz; };
+
+  apache-airflow = callPackage ../development/python-modules/apache-airflow { };
+
+  apipkg = callPackage ../development/python-modules/apipkg { };
+
+  apispec = callPackage ../development/python-modules/apispec { };
 
   aplpy = callPackage ../development/python-modules/aplpy { };
 
+  appdirs = callPackage ../development/python-modules/appdirs { };
+
+  appleseed = disabledIf isPy3k (toPythonModule (pkgs.appleseed.override { inherit (self) python; }));
+
+  application = callPackage ../development/python-modules/application { };
+
+  applicationinsights = callPackage ../development/python-modules/applicationinsights { };
+
+  appnope = callPackage ../development/python-modules/appnope { };
+
   apprise = callPackage ../development/python-modules/apprise { };
 
-  arrayqueues = callPackage ../development/python-modules/arrayqueues { };
+  approvaltests = callPackage ../development/python-modules/approvaltests { };
+
+  apptools = callPackage ../development/python-modules/apptools { };
+
+  APScheduler = callPackage ../development/python-modules/APScheduler { };
+
+  apsw = callPackage ../development/python-modules/apsw { };
+
+  area = callPackage ../development/python-modules/area { };
+
+  arelle = callPackage ../development/python-modules/arelle { gui = true; };
+
+  arelle-headless = callPackage ../development/python-modules/arelle { gui = false; };
 
   aresponses = callPackage ../development/python-modules/aresponses { };
 
+  argcomplete = callPackage ../development/python-modules/argcomplete { };
+
+  argh = callPackage ../development/python-modules/argh { };
+
   argon2_cffi = callPackage ../development/python-modules/argon2_cffi { };
 
+  args = callPackage ../development/python-modules/args { };
+
   aria2p = callPackage ../development/python-modules/aria2p { inherit (pkgs) aria2; };
 
+  arrayqueues = callPackage ../development/python-modules/arrayqueues { };
+
+  arrow = callPackage ../development/python-modules/arrow { };
+
   arviz = callPackage ../development/python-modules/arviz { };
 
-  asana = callPackage ../development/python-modules/asana { };
+  arxiv2bib = callPackage ../development/python-modules/arxiv2bib { };
 
-  asdf = callPackage ../development/python-modules/asdf { };
+  asana = callPackage ../development/python-modules/asana { };
 
   asciimatics = callPackage ../development/python-modules/asciimatics { };
 
   asciitree = callPackage ../development/python-modules/asciitree { };
 
+  asdf = callPackage ../development/python-modules/asdf { };
+
   ase = if isPy27 then
-          callPackage ../development/python-modules/ase/3.17.nix { }
-        else
-          callPackage ../development/python-modules/ase { };
+    callPackage ../development/python-modules/ase/3.17.nix { }
+  else
+    callPackage ../development/python-modules/ase { };
+
+  asgi-csrf = callPackage ../development/python-modules/asgi-csrf { };
+
+  asgiref = callPackage ../development/python-modules/asgiref { };
+
+  asn1ate = callPackage ../development/python-modules/asn1ate { };
 
   asn1crypto = callPackage ../development/python-modules/asn1crypto { };
 
   aspy-yaml = callPackage ../development/python-modules/aspy.yaml { };
 
+  astor = callPackage ../development/python-modules/astor { };
+
   astral = callPackage ../development/python-modules/astral { };
 
-  astropy = callPackage ../development/python-modules/astropy { };
+  astroid = if isPy3k then
+    callPackage ../development/python-modules/astroid { }
+  else
+    callPackage ../development/python-modules/astroid/1.6.nix { };
 
-  astropy-helpers = callPackage ../development/python-modules/astropy-helpers { };
+  astropy = callPackage ../development/python-modules/astropy { };
 
   astropy-healpix = callPackage ../development/python-modules/astropy-healpix { };
 
+  astropy-helpers = callPackage ../development/python-modules/astropy-helpers { };
+
   astroquery = callPackage ../development/python-modules/astroquery { };
 
   asttokens = callPackage ../development/python-modules/asttokens { };
 
+  astunparse = callPackage ../development/python-modules/astunparse { };
+
+  async_generator = callPackage ../development/python-modules/async_generator { };
+
+  asyncpg = callPackage ../development/python-modules/asyncpg { };
+
+  asyncssh = callPackage ../development/python-modules/asyncssh { };
+
+  asynctest = callPackage ../development/python-modules/asynctest { };
+
+  async-timeout = callPackage ../development/python-modules/async_timeout { };
+
+  async-upnp-client = callPackage ../development/python-modules/async-upnp-client { };
+
+  atlassian-python-api = callPackage ../development/python-modules/atlassian-python-api { };
+
   atom = callPackage ../development/python-modules/atom { };
 
-  augeas = callPackage ../development/python-modules/augeas {
-    inherit (pkgs) augeas;
-  };
+  atomiclong = callPackage ../development/python-modules/atomiclong { };
 
-  authheaders = callPackage ../development/python-modules/authheaders { };
+  atomicwrites = callPackage ../development/python-modules/atomicwrites { };
 
-  authres = callPackage ../development/python-modules/authres { };
+  atomman = callPackage ../development/python-modules/atomman { };
 
-  auth0-python = callPackage ../development/python-modules/auth0-python { };
+  atpublic = callPackage ../development/python-modules/atpublic { };
 
-  autograd = callPackage ../development/python-modules/autograd { };
+  atsim_potentials = callPackage ../development/python-modules/atsim_potentials { };
 
-  autologging = callPackage ../development/python-modules/autologging { };
+  attrdict = callPackage ../development/python-modules/attrdict { };
 
-  automat = callPackage ../development/python-modules/automat { };
+  attrs = callPackage ../development/python-modules/attrs { };
 
-  awkward = callPackage ../development/python-modules/awkward { };
-  awkward1 = callPackage ../development/python-modules/awkward1 { };
+  audio-metadata = callPackage ../development/python-modules/audio-metadata { };
 
-  aws-sam-translator = callPackage ../development/python-modules/aws-sam-translator { };
+  audioread = callPackage ../development/python-modules/audioread { };
 
-  aws-xray-sdk = callPackage ../development/python-modules/aws-xray-sdk { };
+  audiotools = callPackage ../development/python-modules/audiotools { };
 
-  aws-adfs = callPackage ../development/python-modules/aws-adfs { };
+  augeas = callPackage ../development/python-modules/augeas { inherit (pkgs) augeas; };
 
-  atomman = callPackage ../development/python-modules/atomman { };
+  auth0-python = callPackage ../development/python-modules/auth0-python { };
+
+  authheaders = callPackage ../development/python-modules/authheaders { };
 
   authlib = callPackage ../development/python-modules/authlib { };
 
-  # packages defined elsewhere
+  authres = callPackage ../development/python-modules/authres { };
 
-  amazon_kclpy = callPackage ../development/python-modules/amazon_kclpy { };
+  autobahn = callPackage ../development/python-modules/autobahn { };
 
-  ansiconv = callPackage ../development/python-modules/ansiconv { };
+  autograd = callPackage ../development/python-modules/autograd { };
+
+  autologging = callPackage ../development/python-modules/autologging { };
+
+  automat = callPackage ../development/python-modules/automat { };
+
+  autopep8 = callPackage ../development/python-modules/autopep8 { };
 
   avahi = toPythonModule (pkgs.avahi.override {
     inherit python;
     withPython = true;
   });
 
-  azure-nspkg = callPackage ../development/python-modules/azure-nspkg { };
+  av = callPackage ../development/python-modules/av { inherit (pkgs) pkgconfig; };
 
-  azure-common = callPackage ../development/python-modules/azure-common { };
+  avro3k = callPackage ../development/python-modules/avro3k { };
 
-  azure-cosmos = callPackage ../development/python-modules/azure-cosmos { };
+  avro = callPackage ../development/python-modules/avro { };
+
+  avro-python3 = callPackage ../development/python-modules/avro-python3 { };
+
+  awesome-slugify = callPackage ../development/python-modules/awesome-slugify { };
+
+  awkward = callPackage ../development/python-modules/awkward { };
+  awkward1 = callPackage ../development/python-modules/awkward1 { };
+
+  aws-adfs = callPackage ../development/python-modules/aws-adfs { };
+
+  aws-lambda-builders = callPackage ../development/python-modules/aws-lambda-builders { };
+
+  aws-sam-translator = callPackage ../development/python-modules/aws-sam-translator { };
+
+  aws-xray-sdk = callPackage ../development/python-modules/aws-xray-sdk { };
 
   azure-applicationinsights = callPackage ../development/python-modules/azure-applicationinsights { };
 
   azure-batch = callPackage ../development/python-modules/azure-batch { };
 
+  azure-common = callPackage ../development/python-modules/azure-common { };
+
   azure-core = callPackage ../development/python-modules/azure-core { };
 
+  azure-cosmos = callPackage ../development/python-modules/azure-cosmos { };
+
   azure-cosmosdb-nspkg = callPackage ../development/python-modules/azure-cosmosdb-nspkg { };
 
   azure-cosmosdb-table = callPackage ../development/python-modules/azure-cosmosdb-table { };
@@ -319,30 +526,6 @@ in {
 
   azure-loganalytics = callPackage ../development/python-modules/azure-loganalytics { };
 
-  azure-servicebus = callPackage ../development/python-modules/azure-servicebus { };
-
-  azure-servicefabric = callPackage ../development/python-modules/azure-servicefabric { };
-
-  azure-servicemanagement-legacy = callPackage ../development/python-modules/azure-servicemanagement-legacy { };
-
-  azure-storage-nspkg = callPackage ../development/python-modules/azure-storage-nspkg { };
-
-  azure-storage-common = callPackage ../development/python-modules/azure-storage-common { };
-
-  azure-storage = callPackage ../development/python-modules/azure-storage { };
-
-  azure-storage-blob = callPackage ../development/python-modules/azure-storage-blob { };
-
-  azure-storage-file = callPackage ../development/python-modules/azure-storage-file { };
-
-  azure-storage-file-share = callPackage ../development/python-modules/azure-storage-file-share { };
-
-  azure-storage-queue = callPackage ../development/python-modules/azure-storage-queue { };
-
-  azure-mgmt-nspkg = callPackage ../development/python-modules/azure-mgmt-nspkg { };
-
-  azure-mgmt-common = callPackage ../development/python-modules/azure-mgmt-common { };
-
   azure-mgmt-advisor = callPackage ../development/python-modules/azure-mgmt-advisor { };
 
   azure-mgmt-apimanagement = callPackage ../development/python-modules/azure-mgmt-apimanagement { };
@@ -353,10 +536,10 @@ in {
 
   azure-mgmt-authorization = callPackage ../development/python-modules/azure-mgmt-authorization { };
 
-  azure-mgmt-batch = callPackage ../development/python-modules/azure-mgmt-batch { };
-
   azure-mgmt-batchai = callPackage ../development/python-modules/azure-mgmt-batchai { };
 
+  azure-mgmt-batch = callPackage ../development/python-modules/azure-mgmt-batch { };
+
   azure-mgmt-billing = callPackage ../development/python-modules/azure-mgmt-billing { };
 
   azure-mgmt-botservice = callPackage ../development/python-modules/azure-mgmt-botservice { };
@@ -367,6 +550,8 @@ in {
 
   azure-mgmt-commerce = callPackage ../development/python-modules/azure-mgmt-commerce { };
 
+  azure-mgmt-common = callPackage ../development/python-modules/azure-mgmt-common { };
+
   azure-mgmt-compute = callPackage ../development/python-modules/azure-mgmt-compute { };
 
   azure-mgmt-consumption = callPackage ../development/python-modules/azure-mgmt-consumption { };
@@ -391,12 +576,12 @@ in {
 
   azure-mgmt-datamigration = callPackage ../development/python-modules/azure-mgmt-datamigration { };
 
+  azure-mgmt-deploymentmanager = callPackage ../development/python-modules/azure-mgmt-deploymentmanager { };
+
   azure-mgmt-devspaces = callPackage ../development/python-modules/azure-mgmt-devspaces { };
 
   azure-mgmt-devtestlabs = callPackage ../development/python-modules/azure-mgmt-devtestlabs { };
 
-  azure-mgmt-deploymentmanager = callPackage ../development/python-modules/azure-mgmt-deploymentmanager { };
-
   azure-mgmt-dns = callPackage ../development/python-modules/azure-mgmt-dns { };
 
   azure-mgmt-eventgrid = callPackage ../development/python-modules/azure-mgmt-eventgrid { };
@@ -413,7 +598,8 @@ 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 { };
 
@@ -447,6 +633,8 @@ in {
 
   azure-mgmt-notificationhubs = callPackage ../development/python-modules/azure-mgmt-notificationhubs { };
 
+  azure-mgmt-nspkg = callPackage ../development/python-modules/azure-mgmt-nspkg { };
+
   azure-mgmt-policyinsights = callPackage ../development/python-modules/azure-mgmt-policyinsights { };
 
   azure-mgmt-powerbiembedded = callPackage ../development/python-modules/azure-mgmt-powerbiembedded { };
@@ -455,10 +643,10 @@ in {
 
   azure-mgmt-rdbms = callPackage ../development/python-modules/azure-mgmt-rdbms { };
 
-  azure-mgmt-recoveryservices = callPackage ../development/python-modules/azure-mgmt-recoveryservices { };
-
   azure-mgmt-recoveryservicesbackup = callPackage ../development/python-modules/azure-mgmt-recoveryservicesbackup { };
 
+  azure-mgmt-recoveryservices = callPackage ../development/python-modules/azure-mgmt-recoveryservices { };
+
   azure-mgmt-redhatopenshift = callPackage ../development/python-modules/azure-mgmt-redhatopenshift { };
 
   azure-mgmt-redis = callPackage ../development/python-modules/azure-mgmt-redis { };
@@ -489,2662 +677,2661 @@ in {
 
   azure-mgmt-subscription = callPackage ../development/python-modules/azure-mgmt-subscription { };
 
+  azure-mgmt-synapse = callPackage ../development/python-modules/azure-mgmt-synapse { };
+
   azure-mgmt-trafficmanager = callPackage ../development/python-modules/azure-mgmt-trafficmanager { };
 
   azure-mgmt-web = callPackage ../development/python-modules/azure-mgmt-web { };
 
   azure-multiapi-storage = callPackage ../development/python-modules/azure-multiapi-storage { };
 
-  backports_csv = callPackage ../development/python-modules/backports_csv {};
+  azure-nspkg = callPackage ../development/python-modules/azure-nspkg { };
 
-  backports-shutil-which = callPackage ../development/python-modules/backports-shutil-which {};
+  azure-servicebus = callPackage ../development/python-modules/azure-servicebus { };
 
-  bacpypes = callPackage ../development/python-modules/bacpypes {};
+  azure-servicefabric = callPackage ../development/python-modules/azure-servicefabric { };
 
-  bap = callPackage ../development/python-modules/bap {
-    bap = pkgs.ocaml-ng.ocamlPackages_4_06.bap;
-  };
+  azure-servicemanagement-legacy = callPackage ../development/python-modules/azure-servicemanagement-legacy { };
 
-  baselines = callPackage ../development/python-modules/baselines { };
+  azure-storage-blob = callPackage ../development/python-modules/azure-storage-blob { };
 
-  bash_kernel = callPackage ../development/python-modules/bash_kernel { };
+  azure-storage = callPackage ../development/python-modules/azure-storage { };
 
-  bashlex = callPackage ../development/python-modules/bashlex { };
+  azure-storage-common = callPackage ../development/python-modules/azure-storage-common { };
 
-  bayesian-optimization = callPackage ../development/python-modules/bayesian-optimization { };
+  azure-storage-file = callPackage ../development/python-modules/azure-storage-file { };
 
-  bayespy = callPackage ../development/python-modules/bayespy { };
+  azure-storage-file-share = callPackage ../development/python-modules/azure-storage-file-share { };
 
-  beanstalkc = callPackage ../development/python-modules/beanstalkc { };
+  azure-storage-nspkg = callPackage ../development/python-modules/azure-storage-nspkg { };
 
-  beancount_docverif = callPackage ../development/python-modules/beancount_docverif { };
+  azure-storage-queue = callPackage ../development/python-modules/azure-storage-queue { };
 
-  bitarray = callPackage ../development/python-modules/bitarray { };
+  azure-synapse-accesscontrol = callPackage ../development/python-modules/azure-synapse-accesscontrol { };
 
-  bitcoinlib = callPackage ../development/python-modules/bitcoinlib { };
+  azure-synapse-spark = callPackage ../development/python-modules/azure-synapse-spark { };
 
-  bitcoin-price-api = callPackage ../development/python-modules/bitcoin-price-api { };
+  Babel = callPackage ../development/python-modules/Babel { };
 
-  blivet = callPackage ../development/python-modules/blivet { };
+  babelfish = callPackage ../development/python-modules/babelfish { };
 
-  bluepy = callPackage ../development/python-modules/bluepy { };
+  babelgladeextractor = callPackage ../development/python-modules/babelgladeextractor { };
 
-  boltons = callPackage ../development/python-modules/boltons { };
+  backcall = callPackage ../development/python-modules/backcall { };
 
-  bravia-tv = callPackage ../development/python-modules/bravia-tv { };
+  backoff = callPackage ../development/python-modules/backoff { };
 
-  braintree = callPackage ../development/python-modules/braintree { };
+  backports_abc = callPackage ../development/python-modules/backports_abc { };
 
-  breezy = callPackage ../development/python-modules/breezy { };
+  backports_csv = callPackage ../development/python-modules/backports_csv { };
 
-  build = callPackage ../development/python-modules/build { };
+  backports_functools_lru_cache = callPackage ../development/python-modules/backports_functools_lru_cache { };
 
-  ciso8601 = callPackage ../development/python-modules/ciso8601 { };
+  backports_lzma = callPackage ../development/python-modules/backports_lzma { };
 
-  deepdiff = callPackage ../development/python-modules/deepdiff { };
+  backports_os = callPackage ../development/python-modules/backports_os { };
 
-  django-sesame = callPackage ../development/python-modules/django-sesame { };
+  backports_shutil_get_terminal_size = callPackage ../development/python-modules/backports_shutil_get_terminal_size { };
 
-  bravado-core = callPackage ../development/python-modules/bravado-core { };
+  backports-shutil-which = callPackage ../development/python-modules/backports-shutil-which { };
 
-  breathe = callPackage ../development/python-modules/breathe { };
+  backports_ssl_match_hostname =
+    if !(pythonOlder "3.5") then null else callPackage ../development/python-modules/backports_ssl_match_hostname { };
 
-  brotli = callPackage ../development/python-modules/brotli { };
+  backports_tempfile = callPackage ../development/python-modules/backports_tempfile { };
 
-  broadlink = callPackage ../development/python-modules/broadlink { };
+  backports_unittest-mock = callPackage ../development/python-modules/backports_unittest-mock { };
 
-  browser-cookie3 = callPackage ../development/python-modules/browser-cookie3 { };
+  backports_weakref = callPackage ../development/python-modules/backports_weakref { };
 
-  browsermob-proxy = disabledIf isPy3k (callPackage ../development/python-modules/browsermob-proxy {});
+  bacpypes = callPackage ../development/python-modules/bacpypes { };
 
-  bt_proximity = callPackage ../development/python-modules/bt-proximity { };
+  bandit = callPackage ../development/python-modules/bandit { };
 
-  bugseverywhere = throw "bugseverywhere has been removed: Abandoned by upstream."; # Added 2019-11-27
+  bap = callPackage ../development/python-modules/bap { bap = pkgs.ocaml-ng.ocamlPackages_4_06.bap; };
 
-  bugsnag = callPackage ../development/python-modules/bugsnag { };
+  base58 = callPackage ../development/python-modules/base58 { };
 
-  cachecontrol = callPackage ../development/python-modules/cachecontrol { };
+  baselines = callPackage ../development/python-modules/baselines { };
 
-  cachelib = callPackage ../development/python-modules/cachelib { };
+  basemap = callPackage ../development/python-modules/basemap { };
 
-  cachy = callPackage ../development/python-modules/cachy { };
+  bash_kernel = callPackage ../development/python-modules/bash_kernel { inherit (pkgs) bash; };
 
-  cadquery = callPackage ../development/python-modules/cadquery { };
+  bashlex = callPackage ../development/python-modules/bashlex { };
 
-  catalogue = callPackage ../development/python-modules/catalogue { };
+  basiciw = callPackage ../development/python-modules/basiciw { inherit (pkgs) gcc wirelesstools; };
 
-  cbeams = callPackage ../misc/cbeams { };
+  batchgenerators = callPackage ../development/python-modules/batchgenerators { };
 
-  cdecimal = callPackage ../development/python-modules/cdecimal { };
+  batchspawner = callPackage ../development/python-modules/batchspawner { };
 
-  cfn-flip = callPackage ../development/python-modules/cfn-flip { };
+  batinfo = callPackage ../development/python-modules/batinfo { };
 
-  chalice = callPackage ../development/python-modules/chalice { };
+  bayesian-optimization = callPackage ../development/python-modules/bayesian-optimization { };
 
-  channels-redis = callPackage ../development/python-modules/channels-redis { };
+  bayespy = callPackage ../development/python-modules/bayespy { };
 
-  cleo = callPackage ../development/python-modules/cleo { };
+  bcdoc = callPackage ../development/python-modules/bcdoc { };
 
-  clikit = callPackage ../development/python-modules/clikit { };
+  bcrypt = callPackage ../development/python-modules/bcrypt { };
 
-  cliff = callPackage ../development/python-modules/cliff { };
+  beaker = callPackage ../development/python-modules/beaker { };
 
-  clifford = callPackage ../development/python-modules/clifford { };
+  beancount = callPackage ../development/python-modules/beancount { };
 
-  clickclick = callPackage ../development/python-modules/clickclick { };
+  beancount_docverif = callPackage ../development/python-modules/beancount_docverif { };
 
-  clustershell = callPackage ../development/python-modules/clustershell { };
+  beanstalkc = callPackage ../development/python-modules/beanstalkc { };
 
-  cnvkit = callPackage ../development/python-modules/cnvkit { };
+  beautifulsoup4 = callPackage ../development/python-modules/beautifulsoup4 { };
 
-  cocotb = callPackage ../development/python-modules/cocotb { };
+  bedup = callPackage ../development/python-modules/bedup { };
 
-  compiledb = callPackage ../development/python-modules/compiledb { };
+  behave = callPackage ../development/python-modules/behave { };
 
-  connexion = callPackage ../development/python-modules/connexion { };
+  bellows = callPackage ../development/python-modules/bellows { };
 
-  coordinates = callPackage ../development/python-modules/coordinates { };
+  bespon = callPackage ../development/python-modules/bespon { };
 
-  cozy = callPackage ../development/python-modules/cozy { };
+  betamax = callPackage ../development/python-modules/betamax { };
 
-  codespell = callPackage ../development/python-modules/codespell { };
+  betamax-matchers = callPackage ../development/python-modules/betamax-matchers { };
 
-  convertdate = callPackage ../development/python-modules/convertdate { };
+  betamax-serializers = callPackage ../development/python-modules/betamax-serializers { };
 
-  crc32c = callPackage ../development/python-modules/crc32c { };
+  bibtexparser = callPackage ../development/python-modules/bibtexparser { };
 
-  curio = callPackage ../development/python-modules/curio { };
+  bidict = callPackage ../development/python-modules/bidict { };
 
-  dendropy = callPackage ../development/python-modules/dendropy { };
+  bids-validator = callPackage ../development/python-modules/bids-validator { };
 
-  denonavr = callPackage ../development/python-modules/denonavr { };
+  billiard = callPackage ../development/python-modules/billiard { };
 
-  dependency-injector = callPackage ../development/python-modules/dependency-injector { };
+  binaryornot = callPackage ../development/python-modules/binaryornot { };
 
-  btchip = callPackage ../development/python-modules/btchip { };
+  binwalk = callPackage ../development/python-modules/binwalk {
+    pyqtgraph = null;
+    matplotlib = null;
+  };
 
-  databricks-cli = callPackage ../development/python-modules/databricks-cli { };
+  binwalk-full = appendToName "full" (self.binwalk.override {
+    pyqtgraph = self.pyqtgraph;
+    matplotlib = self.matplotlib;
+  });
 
-  datatable = callPackage ../development/python-modules/datatable {
-    inherit (pkgs.llvmPackages) openmp libcxx libcxxabi;
-  };
+  biopython = callPackage ../development/python-modules/biopython { };
 
-  databases = callPackage ../development/python-modules/databases { };
+  biplist = callPackage ../development/python-modules/biplist { };
 
-  datamodeldict = callPackage ../development/python-modules/datamodeldict { };
+  bip_utils = callPackage ../development/python-modules/bip_utils { };
 
-  datasette = callPackage ../development/python-modules/datasette { };
+  bitarray = callPackage ../development/python-modules/bitarray { };
 
-  datashader = callPackage ../development/python-modules/datashader { };
+  bitbucket_api = callPackage ../development/python-modules/bitbucket-api { };
 
-  dbf = callPackage ../development/python-modules/dbf { };
+  bitbucket-cli = callPackage ../development/python-modules/bitbucket-cli { };
 
-  dbfread = callPackage ../development/python-modules/dbfread { };
+  bitcoinlib = callPackage ../development/python-modules/bitcoinlib { };
 
-  deap = callPackage ../development/python-modules/deap { };
+  bitcoin-price-api = callPackage ../development/python-modules/bitcoin-price-api { };
 
-  deeptoolsintervals = callPackage ../development/python-modules/deeptoolsintervals { };
+  bitmath = callPackage ../development/python-modules/bitmath { };
 
-  dkimpy = callPackage ../development/python-modules/dkimpy { };
+  bitstring = callPackage ../development/python-modules/bitstring { };
 
-  diceware = callPackage ../development/python-modules/diceware { };
+  bitstruct = callPackage ../development/python-modules/bitstruct { };
 
-  dictionaries = callPackage ../development/python-modules/dictionaries { };
+  bjoern = callPackage ../development/python-modules/bjoern { };
 
-  diff_cover = callPackage ../development/python-modules/diff_cover { };
+  bkcharts = callPackage ../development/python-modules/bkcharts { };
 
-  diofant = callPackage ../development/python-modules/diofant { };
+  black = callPackage ../development/python-modules/black { };
 
-  dipy = callPackage ../development/python-modules/dipy { };
+  black-macchiato = callPackage ../development/python-modules/black-macchiato { };
 
-  docrep = callPackage ../development/python-modules/docrep { };
+  bleach = callPackage ../development/python-modules/bleach { };
 
-  dominate = callPackage ../development/python-modules/dominate { };
+  bleak = callPackage ../development/python-modules/bleak { };
 
-  dotnetcore2 = callPackage ../development/python-modules/dotnetcore2 {
-    inherit (pkgs) substituteAll dotnet-sdk;
-  };
+  blessed = callPackage ../development/python-modules/blessed { };
 
-  emcee = callPackage ../development/python-modules/emcee { };
+  blessings = callPackage ../development/python-modules/blessings { };
 
-  emailthreads = callPackage ../development/python-modules/emailthreads { };
+  blinker = callPackage ../development/python-modules/blinker { };
 
-  email_validator = callPackage ../development/python-modules/email-validator { };
+  BlinkStick = callPackage ../development/python-modules/blinkstick { };
 
-  ewmh = callPackage ../development/python-modules/ewmh { };
+  blis = callPackage ../development/python-modules/blis { };
 
-  exchangelib = callPackage ../development/python-modules/exchangelib { };
+  blist = callPackage ../development/python-modules/blist { };
 
-  dcmstack = callPackage ../development/python-modules/dcmstack { };
+  blivet = callPackage ../development/python-modules/blivet { };
 
-  dbus-python = callPackage ../development/python-modules/dbus {
-    inherit (pkgs) dbus pkgconfig;
-  };
+  blockdiag = callPackage ../development/python-modules/blockdiag { };
 
-  dftfit = callPackage ../development/python-modules/dftfit { };
+  blockdiagcontrib-cisco = callPackage ../development/python-modules/blockdiagcontrib-cisco { };
 
-  dicom2nifti = callPackage ../development/python-modules/dicom2nifti { };
+  block-io = callPackage ../development/python-modules/block-io { };
 
-  discid = callPackage ../development/python-modules/discid { };
+  bluepy = callPackage ../development/python-modules/bluepy { };
 
-  discordpy = callPackage ../development/python-modules/discordpy { };
+  bokeh = callPackage ../development/python-modules/bokeh { };
 
-  parver = callPackage ../development/python-modules/parver { };
-  arpeggio = callPackage ../development/python-modules/arpeggio { };
-  invoke = callPackage ../development/python-modules/invoke { };
+  boltons = callPackage ../development/python-modules/boltons { };
 
-  distorm3 = callPackage ../development/python-modules/distorm3 { };
+  boltztrap2 = callPackage ../development/python-modules/boltztrap2 { };
 
-  distlib = callPackage ../development/python-modules/distlib { };
+  booleanoperations = callPackage ../development/python-modules/booleanoperations { };
 
-  distributed = callPackage ../development/python-modules/distributed { };
+  boolean-py = callPackage ../development/python-modules/boolean-py { };
 
-  docutils = callPackage ../development/python-modules/docutils { };
+  # Build boost for this specific Python version
+  # TODO: use separate output for libboost_python.so
+  boost = toPythonModule (pkgs.boost.override {
+    inherit (self) python numpy;
+    enablePython = true;
+  });
 
-  dogtail = callPackage ../development/python-modules/dogtail { };
+  boto3 = callPackage ../development/python-modules/boto3 { };
 
-  diff-match-patch = callPackage ../development/python-modules/diff-match-patch { };
+  boto = callPackage ../development/python-modules/boto { };
 
-  entrance = callPackage ../development/python-modules/entrance { routerFeatures = false; };
+  botocore = callPackage ../development/python-modules/botocore { };
 
-  entrance-with-router-features = callPackage ../development/python-modules/entrance { routerFeatures = true; };
+  bottle = callPackage ../development/python-modules/bottle { };
 
-  eradicate = callPackage ../development/python-modules/eradicate {  };
+  bottleneck = callPackage ../development/python-modules/bottleneck { };
 
-  face = callPackage ../development/python-modules/face { };
+  box2d = callPackage ../development/python-modules/box2d { };
 
-  fastparquet = callPackage ../development/python-modules/fastparquet { };
+  bpython = callPackage ../development/python-modules/bpython { };
 
-  fastpbkdf2 = callPackage ../development/python-modules/fastpbkdf2 {  };
+  braintree = callPackage ../development/python-modules/braintree { };
 
-  fasttext = callPackage ../development/python-modules/fasttext {  };
+  branca = callPackage ../development/python-modules/branca { };
 
-  facedancer = callPackage ../development/python-modules/facedancer {  };
+  bravado-core = callPackage ../development/python-modules/bravado-core { };
 
-  favicon = callPackage ../development/python-modules/favicon {  };
+  bravia-tv = callPackage ../development/python-modules/bravia-tv { };
 
-  fdint = callPackage ../development/python-modules/fdint { };
+  breathe = callPackage ../development/python-modules/breathe { };
 
-  fido2 = callPackage ../development/python-modules/fido2 {  };
+  breezy = callPackage ../development/python-modules/breezy { };
 
-  filterpy = callPackage ../development/python-modules/filterpy { };
+  broadlink = callPackage ../development/python-modules/broadlink { };
 
-  filemagic = callPackage ../development/python-modules/filemagic { };
+  brother = callPackage ../development/python-modules/brother { };
 
-  fints = callPackage ../development/python-modules/fints { };
+  brotli = callPackage ../development/python-modules/brotli { };
 
-  fire = callPackage ../development/python-modules/fire { };
+  brotlipy = callPackage ../development/python-modules/brotlipy { };
 
-  firetv = callPackage ../development/python-modules/firetv { };
+  browser-cookie3 = callPackage ../development/python-modules/browser-cookie3 { };
 
-  flower = callPackage ../development/python-modules/flower { };
+  browsermob-proxy = disabledIf isPy3k (callPackage ../development/python-modules/browsermob-proxy { });
 
-  flufl_bounce = callPackage ../development/python-modules/flufl/bounce.nix { };
+  bsddb3 = callPackage ../development/python-modules/bsddb3 { };
 
-  flufl_i18n = callPackage ../development/python-modules/flufl/i18n.nix { };
+  bsdiff4 = callPackage ../development/python-modules/bsdiff4 { };
 
-  flufl_lock = callPackage ../development/python-modules/flufl/lock.nix { };
+  btchip = callPackage ../development/python-modules/btchip { };
 
-  foxdot = callPackage ../development/python-modules/foxdot { };
+  bt_proximity = callPackage ../development/python-modules/bt-proximity { };
 
-  fsspec = callPackage ../development/python-modules/fsspec { };
+  BTrees = callPackage ../development/python-modules/btrees { };
 
-  furl = callPackage ../development/python-modules/furl { };
+  btrfs = callPackage ../development/python-modules/btrfs { };
 
-  fuse = callPackage ../development/python-modules/fuse-python {
-    inherit (pkgs) fuse pkgconfig;
-  };
+  bugseverywhere = throw "bugseverywhere has been removed: Abandoned by upstream."; # Added 2019-11-27
 
-  fuzzywuzzy = callPackage ../development/python-modules/fuzzywuzzy { };
+  bugsnag = callPackage ../development/python-modules/bugsnag { };
 
-  genanki = callPackage ../development/python-modules/genanki { };
+  bugwarrior = callPackage ../development/python-modules/bugwarrior { };
 
-  geoip2 = callPackage ../development/python-modules/geoip2 { };
+  bugz = callPackage ../development/python-modules/bugz { };
 
-  getmac = callPackage ../development/python-modules/getmac { };
+  bugzilla = callPackage ../development/python-modules/bugzilla { };
 
-  gidgethub = callPackage ../development/python-modules/gidgethub { };
+  buildbot = callPackage ../development/python-modules/buildbot { };
 
-  gin-config = callPackage ../development/python-modules/gin-config { };
+  buildbot-ui = self.buildbot.withPlugins (with self.buildbot-plugins; [ www ]);
 
-  globus-sdk = callPackage ../development/python-modules/globus-sdk { };
+  buildbot-full = self.buildbot.withPlugins
+    (with self.buildbot-plugins; [ www console-view waterfall-view grid-view wsgi-dashboards ]);
 
-  glymur = callPackage ../development/python-modules/glymur { };
+  buildbot-pkg = callPackage ../development/python-modules/buildbot/pkg.nix { };
 
-  glob2 = callPackage ../development/python-modules/glob2 { };
+  buildbot-plugins = pkgs.recurseIntoAttrs (callPackage ../development/python-modules/buildbot/plugins.nix { });
 
-  glom = callPackage ../development/python-modules/glom { };
+  buildbot-worker = callPackage ../development/python-modules/buildbot/worker.nix { };
 
-  goocalendar = callPackage ../development/python-modules/goocalendar { };
+  build = callPackage ../development/python-modules/build { };
 
-  grandalf = callPackage ../development/python-modules/grandalf { };
+  bumps = callPackage ../development/python-modules/bumps { };
 
-  gprof2dot = callPackage ../development/python-modules/gprof2dot {
-    inherit (pkgs) graphviz;
-  };
+  bunch = callPackage ../development/python-modules/bunch { };
 
-  gsd = if isPy27 then
-      callPackage ../development/python-modules/gsd/1.7.nix { }
-    else
-      callPackage ../development/python-modules/gsd { };
+  bx-python = callPackage ../development/python-modules/bx-python { inherit (pkgs) zlib; };
 
-  gssapi = callPackage ../development/python-modules/gssapi {
-    inherit (pkgs) darwin krb5Full;
-  };
+  bytecode = callPackage ../development/python-modules/bytecode { };
 
-  guestfs = callPackage ../development/python-modules/guestfs { };
+  bz2file = callPackage ../development/python-modules/bz2file { };
 
-  gumath = callPackage ../development/python-modules/gumath { };
+  cachecontrol = callPackage ../development/python-modules/cachecontrol { };
 
-  h3 = callPackage ../development/python-modules/h3 { inherit (pkgs) h3; };
+  cached-property = callPackage ../development/python-modules/cached-property { };
 
-  h5py = callPackage ../development/python-modules/h5py {
-    hdf5 = pkgs.hdf5;
-  };
+  cachelib = callPackage ../development/python-modules/cachelib { };
 
-  h5py-mpi = self.h5py.override {
-    hdf5 = pkgs.hdf5-mpi;
-  };
+  cachetools = let
+    cachetools' = callPackage ../development/python-modules/cachetools { };
+    cachetools_2 = cachetools'.overridePythonAttrs (oldAttrs: rec {
+      version = "3.1.1";
+      src = oldAttrs.src.override {
+        inherit version;
+        sha256 = "16m69l6n6y1r1y7cklm92rr7v69ldig2n3lbl3j323w5jz7d78lf";
+      };
+    });
+  in if isPy3k then cachetools' else cachetools_2;
 
-  h5netcdf = callPackage ../development/python-modules/h5netcdf { };
+  cachy = callPackage ../development/python-modules/cachy { };
 
-  ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { };
+  cadquery = callPackage ../development/python-modules/cadquery { };
 
-  habanero = callPackage ../development/python-modules/habanero { };
+  caffe = toPythonModule (pkgs.caffe.override {
+    pythonSupport = true;
+    inherit (self) python numpy boost;
+  });
 
-  handout = callPackage ../development/python-modules/handout { };
+  cairocffi = if isPy3k then
+    callPackage ../development/python-modules/cairocffi { }
+  else
+    callPackage ../development/python-modules/cairocffi/0_9.nix { };
 
-  HAP-python = callPackage ../development/python-modules/HAP-python { };
+  cairosvg = if isPy3k then
+    callPackage ../development/python-modules/cairosvg { }
+  else
+    callPackage ../development/python-modules/cairosvg/1_x.nix { };
 
-  helper = callPackage ../development/python-modules/helper { };
+  caldav = callPackage ../development/python-modules/caldav { };
 
-  hdmedians = callPackage ../development/python-modules/hdmedians { };
+  can = callPackage ../development/python-modules/can { };
 
-  hiyapyco = callPackage ../development/python-modules/hiyapyco { };
+  canmatrix = callPackage ../development/python-modules/canmatrix { };
 
-  hocr-tools = callPackage ../development/python-modules/hocr-tools { };
+  canonicaljson = callPackage ../development/python-modules/canonicaljson { };
 
-  holidays = callPackage ../development/python-modules/holidays { };
+  canopen = callPackage ../development/python-modules/canopen { };
 
-  holoviews = callPackage ../development/python-modules/holoviews { };
+  capstone = callPackage ../development/python-modules/capstone { inherit (pkgs) capstone; };
 
-  hoomd-blue = toPythonModule (callPackage ../development/python-modules/hoomd-blue {
-    inherit python;
-  });
+  capturer = callPackage ../development/python-modules/capturer { };
 
-  hopcroftkarp = callPackage ../development/python-modules/hopcroftkarp { };
+  carbon = callPackage ../development/python-modules/carbon { };
 
-  http-ece = callPackage ../development/python-modules/http-ece { };
+  carrot = callPackage ../development/python-modules/carrot { };
 
-  httpsig = callPackage ../development/python-modules/httpsig { };
+  cartopy = callPackage ../development/python-modules/cartopy { };
 
-  httptools = callPackage ../development/python-modules/httptools { };
+  casbin = callPackage ../development/python-modules/casbin { };
 
-  i3ipc = callPackage ../development/python-modules/i3ipc { };
+  case = callPackage ../development/python-modules/case { };
 
-  ignite = callPackage ../development/python-modules/ignite { };
+  cassandra-driver = callPackage ../development/python-modules/cassandra-driver { };
 
-  ihatemoney = callPackage ../development/python-modules/ihatemoney { };
+  casttube = callPackage ../development/python-modules/casttube { };
 
-  imutils = callPackage ../development/python-modules/imutils { };
+  catalogue = callPackage ../development/python-modules/catalogue { };
 
-  inotify-simple = callPackage ../development/python-modules/inotify-simple { };
+  cbeams = callPackage ../misc/cbeams { };
 
-  intake = callPackage ../development/python-modules/intake { };
+  cbor2 = callPackage ../development/python-modules/cbor2 { };
 
-  intelhex = callPackage ../development/python-modules/intelhex { };
+  cbor = callPackage ../development/python-modules/cbor { };
 
-  inquirer = callPackage ../development/python-modules/inquirer { };
+  cccolutils = callPackage ../development/python-modules/cccolutils { };
 
-  ipympl = callPackage ../development/python-modules/ipympl { };
+  cchardet = callPackage ../development/python-modules/cchardet { };
 
-  itanium_demangler = callPackage ../development/python-modules/itanium_demangler { };
+  CDDB = callPackage ../development/python-modules/cddb { };
 
-  iterm2 = callPackage ../development/python-modules/iterm2 { };
+  cdecimal = callPackage ../development/python-modules/cdecimal { };
 
-  janus = callPackage ../development/python-modules/janus { };
+  celery = callPackage ../development/python-modules/celery { };
 
-  jc = callPackage ../development/python-modules/jc { };
+  cement = callPackage ../development/python-modules/cement { };
 
-  jellyfin-apiclient-python = callPackage ../development/python-modules/jellyfin-apiclient-python { };
+  cerberus = callPackage ../development/python-modules/cerberus { };
 
-  jira = callPackage ../development/python-modules/jira { };
+  certbot = callPackage ../development/python-modules/certbot { };
 
-  jsonpath = callPackage ../development/python-modules/jsonpath { };
+  certbot-dns-cloudflare = callPackage ../development/python-modules/certbot-dns-cloudflare { };
 
-  junit-xml = callPackage ../development/python-modules/junit-xml { };
+  certbot-dns-rfc2136 = callPackage ../development/python-modules/certbot-dns-rfc2136 { };
 
-  junitparser = callPackage ../development/python-modules/junitparser { };
+  certbot-dns-route53 = callPackage ../development/python-modules/certbot-dns-route53 { };
 
-  jwcrypto = callPackage ../development/python-modules/jwcrypto { };
+  certifi = callPackage ../development/python-modules/certifi { };
 
-  kconfiglib = callPackage ../development/python-modules/kconfiglib { };
+  certipy = callPackage ../development/python-modules/certipy { };
 
-  labelbox = callPackage ../development/python-modules/labelbox { };
+  cffi = callPackage ../development/python-modules/cffi { };
 
-  lammps-cython = callPackage ../development/python-modules/lammps-cython {
-    mpi = pkgs.openmpi;
-  };
+  cfgv = callPackage ../development/python-modules/cfgv { };
 
-  langdetect = callPackage ../development/python-modules/langdetect { };
+  cfn-flip = callPackage ../development/python-modules/cfn-flip { };
 
-  launchpadlib = callPackage ../development/python-modules/launchpadlib { };
+  cfn-lint = callPackage ../development/python-modules/cfn-lint { };
 
-  lazr_config = callPackage ../development/python-modules/lazr/config.nix { };
+  cftime = callPackage ../development/python-modules/cftime { };
 
-  lazr_delegates = callPackage ../development/python-modules/lazr/delegates.nix { };
+  cgen = callPackage ../development/python-modules/cgen { };
 
-  lazr-restfulclient = callPackage ../development/python-modules/lazr-restfulclient { };
+  cgroup-utils = callPackage ../development/python-modules/cgroup-utils { };
 
-  lazr-uri = callPackage ../development/python-modules/lazr-uri { };
+  chai = callPackage ../development/python-modules/chai { };
 
-  libmr = callPackage ../development/python-modules/libmr { };
+  chainer = callPackage ../development/python-modules/chainer { cudaSupport = pkgs.config.cudaSupport or false; };
 
-  limitlessled = callPackage ../development/python-modules/limitlessled { };
+  chainmap = callPackage ../development/python-modules/chainmap { };
 
-  livelossplot = callPackage ../development/python-modules/livelossplot { };
+  chalice = callPackage ../development/python-modules/chalice { };
 
-  lmtpd = callPackage ../development/python-modules/lmtpd { };
+  chameleon = callPackage ../development/python-modules/chameleon { };
 
-  logster = callPackage ../development/python-modules/logster { };
+  channels = callPackage ../development/python-modules/channels { };
 
-  loguru = callPackage ../development/python-modules/loguru { };
+  channels-redis = callPackage ../development/python-modules/channels-redis { };
 
-  logzero = callPackage ../development/python-modules/logzero { };
+  characteristic = callPackage ../development/python-modules/characteristic { };
 
-  macropy = callPackage ../development/python-modules/macropy { };
+  chardet = callPackage ../development/python-modules/chardet { };
 
-  mail-parser = callPackage ../development/python-modules/mail-parser { };
+  chart-studio = callPackage ../development/python-modules/chart-studio { };
 
-  mailman = callPackage ../servers/mail/mailman { };
+  check-manifest = callPackage ../development/python-modules/check-manifest { };
 
-  mailman-web = callPackage ../servers/mail/mailman/web.nix { };
+  cheetah3 = callPackage ../development/python-modules/cheetah3 { };
 
-  mailmanclient = callPackage ../development/python-modules/mailmanclient { };
+  cheetah = callPackage ../development/python-modules/cheetah { };
 
-  mailman-hyperkitty = callPackage ../development/python-modules/mailman-hyperkitty { };
+  cheroot = callPackage ../development/python-modules/cheroot { };
 
-  manhole = callPackage ../development/python-modules/manhole { };
+  cherrypy = if isPy3k then
+    callPackage ../development/python-modules/cherrypy { }
+  else
+    callPackage ../development/python-modules/cherrypy/17.nix { };
 
-  mapbox = callPackage ../development/python-modules/mapbox { };
+  chevron = callPackage ../development/python-modules/chevron { };
 
-  markerlib = callPackage ../development/python-modules/markerlib { };
+  ci-info = callPackage ../development/python-modules/ci-info { };
 
-  mask-rcnn = callPackage ../development/python-modules/mask-rcnn { };
+  ci-py = callPackage ../development/python-modules/ci-py { };
 
-  matchpy = callPackage ../development/python-modules/matchpy { };
+  cirq = callPackage ../development/python-modules/cirq { };
 
-  maxminddb = callPackage ../development/python-modules/maxminddb { };
+  ciso8601 = callPackage ../development/python-modules/ciso8601 { };
 
-  mininet-python = (toPythonModule (pkgs.mininet.override{ inherit python; })).py;
+  citeproc-py = callPackage ../development/python-modules/citeproc-py { };
 
-  mkl-service = callPackage ../development/python-modules/mkl-service { };
+  cjson = callPackage ../development/python-modules/cjson { };
 
-  mnist = callPackage ../development/python-modules/mnist { };
+  ckcc-protocol = callPackage ../development/python-modules/ckcc-protocol { };
 
-  monkeyhex = callPackage ../development/python-modules/monkeyhex { };
+  cld2-cffi = callPackage ../development/python-modules/cld2-cffi { };
 
-  monty = callPackage ../development/python-modules/monty { };
+  cleo = callPackage ../development/python-modules/cleo { };
 
-  mpi4py = callPackage ../development/python-modules/mpi4py {
-    mpi = pkgs.openmpi;
-  };
+  clf = callPackage ../development/python-modules/clf { };
 
-  pytest-freezegun = callPackage ../development/python-modules/pytest-freezegun { };
+  cliapp = callPackage ../development/python-modules/cliapp { };
 
-  python-baseconv = callPackage ../development/python-modules/python-baseconv { };
+  click = callPackage ../development/python-modules/click { };
 
-  pycognito = callPackage ../development/python-modules/pycognito { };
+  clickclick = callPackage ../development/python-modules/clickclick { };
 
-  python-mpv-jsonipc = callPackage ../development/python-modules/python-mpv-jsonipc { };
+  click-completion = callPackage ../development/python-modules/click-completion { };
 
-  mortgage = callPackage ../development/python-modules/mortgage { };
+  click-datetime = callPackage ../development/python-modules/click-datetime { };
 
-  msal = callPackage ../development/python-modules/msal { };
+  click-default-group = callPackage ../development/python-modules/click-default-group { };
 
-  msal-extensions = callPackage ../development/python-modules/msal-extensions { };
+  click-didyoumean = callPackage ../development/python-modules/click-didyoumean { };
 
-  msrest = callPackage ../development/python-modules/msrest { };
+  click-log = callPackage ../development/python-modules/click-log { };
 
-  msrestazure = callPackage ../development/python-modules/msrestazure { };
+  click-plugins = callPackage ../development/python-modules/click-plugins { };
 
-  multiset = callPackage ../development/python-modules/multiset { };
+  click-repl = callPackage ../development/python-modules/click-repl { };
 
-  mwclient = callPackage ../development/python-modules/mwclient { };
+  click-threading = callPackage ../development/python-modules/click-threading { };
 
-  mwoauth = callPackage ../development/python-modules/mwoauth { };
+  cliff = callPackage ../development/python-modules/cliff { };
 
-  nagiosplugin = callPackage ../development/python-modules/nagiosplugin { };
+  clifford = callPackage ../development/python-modules/clifford { };
 
-  nanomsg-python = callPackage ../development/python-modules/nanomsg-python { inherit (pkgs) nanomsg; };
+  cligj = callPackage ../development/python-modules/cligj { };
 
-  nassl = callPackage ../development/python-modules/nassl { };
+  cli-helpers = callPackage ../development/python-modules/cli-helpers { };
 
-  nbsmoke = callPackage ../development/python-modules/nbsmoke { };
+  clikit = callPackage ../development/python-modules/clikit { };
 
-  nbsphinx = callPackage ../development/python-modules/nbsphinx { };
+  clint = callPackage ../development/python-modules/clint { };
 
-  nbval = callPackage ../development/python-modules/nbval { };
+  clize = callPackage ../development/python-modules/clize { };
 
-  ndtypes = callPackage ../development/python-modules/ndtypes { };
+  closure-linter = callPackage ../development/python-modules/closure-linter { };
 
-  neo = callPackage ../development/python-modules/neo { };
+  cloudflare = callPackage ../development/python-modules/cloudflare { };
 
-  nest-asyncio = callPackage ../development/python-modules/nest-asyncio { };
+  cloudpickle = callPackage ../development/python-modules/cloudpickle { };
 
-  neuron = pkgs.neuron.override {
-    inherit python;
-  };
+  clustershell = callPackage ../development/python-modules/clustershell { };
 
-  neuron-mpi = pkgs.neuron-mpi.override {
-    inherit python;
-  };
+  cma = callPackage ../development/python-modules/cma { };
 
-  nix-prefetch-github = callPackage ../development/python-modules/nix-prefetch-github { };
+  cmarkgfm = callPackage ../development/python-modules/cmarkgfm { };
 
-  nixpart = callPackage ../tools/filesystems/nixpart { };
+  cmd2 = callPackage ../development/python-modules/cmd2 { };
 
-  # 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 { };
+  cmdline = callPackage ../development/python-modules/cmdline { };
 
-  nltk = callPackage ../development/python-modules/nltk { };
+  cmdtest = callPackage ../development/python-modules/cmdtest { };
 
-  ntlm-auth = callPackage ../development/python-modules/ntlm-auth { };
+  cntk = callPackage ../development/python-modules/cntk { };
 
-  nvchecker = callPackage ../development/python-modules/nvchecker { };
+  cnvkit = callPackage ../development/python-modules/cnvkit { };
 
-  numericalunits = callPackage ../development/python-modules/numericalunits { };
+  cocotb = callPackage ../development/python-modules/cocotb { };
 
-  oath = callPackage ../development/python-modules/oath { };
+  codecov = callPackage ../development/python-modules/codecov { };
 
-  oauthenticator = callPackage ../development/python-modules/oauthenticator { };
+  codespell = callPackage ../development/python-modules/codespell { };
 
-  onnx = callPackage ../development/python-modules/onnx { };
+  cogapp = callPackage ../development/python-modules/cogapp { };
 
-  ordered-set = callPackage ../development/python-modules/ordered-set { };
+  coilmq = callPackage ../development/python-modules/coilmq { };
 
-  orderedmultidict = callPackage ../development/python-modules/orderedmultidict { };
+  coinmarketcap = callPackage ../development/python-modules/coinmarketcap { };
 
-  ortools = (toPythonModule (pkgs.or-tools.override {
-    inherit (self) python;
-  })).python;
+  ColanderAlchemy = callPackage ../development/python-modules/colanderalchemy { };
 
-  osmnx = callPackage ../development/python-modules/osmnx { };
+  colander = callPackage ../development/python-modules/colander { };
 
-  osmpythontools = callPackage ../development/python-modules/osmpythontools { };
+  colorama = callPackage ../development/python-modules/colorama { };
 
-  outcome = callPackage ../development/python-modules/outcome {};
+  colorcet = callPackage ../development/python-modules/colorcet { };
 
-  ovito = toPythonModule (pkgs.libsForQt5.callPackage ../development/python-modules/ovito {
-      pythonPackages = self;
-    });
+  colorclass = callPackage ../development/python-modules/colorclass { };
 
-  palettable = callPackage ../development/python-modules/palettable { };
+  colored = callPackage ../development/python-modules/colored { };
 
-  papermill = callPackage ../development/python-modules/papermill { };
+  coloredlogs = callPackage ../development/python-modules/coloredlogs { };
 
-  parsley = callPackage ../development/python-modules/parsley { };
+  colorful = callPackage ../development/python-modules/colorful { };
 
-  pastel = callPackage ../development/python-modules/pastel { };
+  colorlog = callPackage ../development/python-modules/colorlog { };
 
-  pathlib = callPackage ../development/python-modules/pathlib { };
+  colorlover = callPackage ../development/python-modules/colorlover { };
 
-  pc-ble-driver-py = toPythonModule (callPackage ../development/python-modules/pc-ble-driver-py { });
+  colormath = callPackage ../development/python-modules/colormath { };
 
-  pcpp = callPackage ../development/python-modules/pcpp { };
+  colorspacious = callPackage ../development/python-modules/colorspacious { };
 
-  pdf2image = callPackage ../development/python-modules/pdf2image { };
+  colour = callPackage ../development/python-modules/colour { };
 
-  pdfminer = callPackage ../development/python-modules/pdfminer_six { };
+  CommonMark = callPackage ../development/python-modules/commonmark { };
 
-  pdfposter = callPackage ../development/python-modules/pdfposter { };
+  compiledb = callPackage ../development/python-modules/compiledb { };
 
-  pdftotext = callPackage ../development/python-modules/pdftotext { };
+  conda = callPackage ../development/python-modules/conda { };
 
-  pdfx = callPackage ../development/python-modules/pdfx { };
+  ConfigArgParse = callPackage ../development/python-modules/configargparse { };
 
-  pushover-complete = callPackage ../development/python-modules/pushover-complete { };
+  configobj = callPackage ../development/python-modules/configobj { };
 
-  pyicloud = callPackage ../development/python-modules/pyicloud { };
+  configparser = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/configparser/4.nix { }
+  else
+    callPackage ../development/python-modules/configparser { };
 
-  pyperf = callPackage ../development/python-modules/pyperf { };
+  configshell = callPackage ../development/python-modules/configshell { };
 
-  pefile = callPackage ../development/python-modules/pefile { };
+  confluent-kafka = callPackage ../development/python-modules/confluent-kafka { };
 
-  perfplot = callPackage ../development/python-modules/perfplot { };
+  connexion = callPackage ../development/python-modules/connexion { };
 
-  phonopy = callPackage ../development/python-modules/phonopy { };
+  consonance = callPackage ../development/python-modules/consonance { };
 
-  phik = callPackage ../development/python-modules/phik {};
+  constantly = callPackage ../development/python-modules/constantly { };
 
-  piccata = callPackage ../development/python-modules/piccata {};
+  construct = callPackage ../development/python-modules/construct { };
 
-  pims = callPackage ../development/python-modules/pims { };
+  consul = callPackage ../development/python-modules/consul { };
 
-  poetry = callPackage ../development/python-modules/poetry { };
+  contexter = callPackage ../development/python-modules/contexter { };
 
-  polyline = callPackage ../development/python-modules/polyline { };
+  contextlib2 = callPackage ../development/python-modules/contextlib2 { };
 
-  postorius = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/postorius.nix { });
+  contextvars = callPackage ../development/python-modules/contextvars { };
 
-  pplpy = callPackage ../development/python-modules/pplpy { };
+  convertdate = callPackage ../development/python-modules/convertdate { };
 
-  pprintpp = callPackage ../development/python-modules/pprintpp { };
+  cookiecutter = callPackage ../development/python-modules/cookiecutter { };
 
-  progress = callPackage ../development/python-modules/progress { };
+  cookies = callPackage ../development/python-modules/cookies { };
 
-  proglog = callPackage ../development/python-modules/proglog { };
+  coordinates = callPackage ../development/python-modules/coordinates { };
 
-  pulsectl = callPackage ../development/python-modules/pulsectl { };
+  coreapi = callPackage ../development/python-modules/coreapi { };
 
-  pure-python-adb-homeassistant = callPackage ../development/python-modules/pure-python-adb-homeassistant { };
+  coreschema = callPackage ../development/python-modules/coreschema { };
 
-  purl = callPackage ../development/python-modules/purl { };
+  cornice = callPackage ../development/python-modules/cornice { };
 
-  pyclipper = callPackage ../development/python-modules/pyclipper { };
+  cot = callPackage ../development/python-modules/cot { };
 
-  pymystem3 = callPackage ../development/python-modules/pymystem3 { };
+  covCore = callPackage ../development/python-modules/cov-core { };
 
-  pymysql = callPackage ../development/python-modules/pymysql { };
+  coverage = callPackage ../development/python-modules/coverage { };
 
-  pymupdf = callPackage ../development/python-modules/pymupdf { };
+  coveralls = callPackage ../development/python-modules/coveralls { };
 
-  pynamecheap = callPackage ../development/python-modules/pynamecheap { };
+  cozy = callPackage ../development/python-modules/cozy { };
 
-  Pmw = callPackage ../development/python-modules/Pmw { };
+  cppy = callPackage ../development/python-modules/cppy { };
 
-  py_stringmatching = callPackage ../development/python-modules/py_stringmatching { };
+  cram = callPackage ../development/python-modules/cram { };
 
-  pyaes = callPackage ../development/python-modules/pyaes { };
+  crashtest = callPackage ../development/python-modules/crashtest { };
 
-  pyairvisual = callPackage ../development/python-modules/pyairvisual { };
+  crayons = callPackage ../development/python-modules/crayons { };
 
-  pyamf = callPackage ../development/python-modules/pyamf { };
+  crc16 = callPackage ../development/python-modules/crc16 { };
 
-  pyarrow = callPackage ../development/python-modules/pyarrow {
-    inherit (pkgs) arrow-cpp cmake pkgconfig;
-  };
+  crc32c = callPackage ../development/python-modules/crc32c { };
 
-  pyannotate = callPackage ../development/python-modules/pyannotate { };
+  crccheck = callPackage ../development/python-modules/crccheck { };
 
-  pyatspi = callPackage ../development/python-modules/pyatspi {
-    inherit (pkgs) pkgconfig;
-  };
+  crcmod = callPackage ../development/python-modules/crcmod { };
 
-  pyaxmlparser = callPackage ../development/python-modules/pyaxmlparser { };
+  credstash = callPackage ../development/python-modules/credstash { };
 
-  pybids = callPackage ../development/python-modules/pybids { };
+  croniter = callPackage ../development/python-modules/croniter { };
 
-  pybind11 = callPackage ../development/python-modules/pybind11 { };
+  cryptacular = callPackage ../development/python-modules/cryptacular { };
 
-  py3buddy = toPythonModule (callPackage ../development/python-modules/py3buddy { });
+  cryptography = if isPy27 then
+    callPackage ../development/python-modules/cryptography/2.9.nix { }
+  else
+    callPackage ../development/python-modules/cryptography { };
 
-  pybullet = callPackage ../development/python-modules/pybullet { };
+  cryptography_vectors = if isPy27 then
+    callPackage ../development/python-modules/cryptography/vectors-2.9.nix { }
+  else
+    callPackage ../development/python-modules/cryptography/vectors.nix { };
 
-  pycairo = callPackage ../development/python-modules/pycairo {
-    inherit (pkgs) meson pkgconfig;
+  csscompressor = callPackage ../development/python-modules/csscompressor { };
+
+  cssmin = callPackage ../development/python-modules/cssmin { };
+
+  css-parser = callPackage ../development/python-modules/css-parser { };
+
+  cssselect2 = callPackage ../development/python-modules/cssselect2 { };
+
+  cssselect = callPackage ../development/python-modules/cssselect { };
+
+  cssutils = callPackage ../development/python-modules/cssutils { };
+
+  csvs-to-sqlite = callPackage ../development/python-modules/csvs-to-sqlite { };
+
+  cucumber-tag-expressions = callPackage ../development/python-modules/cucumber-tag-expressions { };
+
+  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;
   };
 
-  pycategories = callPackage ../development/python-modules/pycategories { };
+  curio = callPackage ../development/python-modules/curio { };
 
-  pycangjie = disabledIf (!isPy3k) (callPackage ../development/python-modules/pycangjie {
-    inherit (pkgs) pkgconfig;
-  });
+  curtsies = callPackage ../development/python-modules/curtsies { };
 
-  pycrc = callPackage ../development/python-modules/pycrc { };
+  curve25519-donna = callPackage ../development/python-modules/curve25519-donna { };
 
-  pycrypto = callPackage ../development/python-modules/pycrypto { };
+  cvxopt = callPackage ../development/python-modules/cvxopt { };
 
-  pycryptodome = callPackage ../development/python-modules/pycryptodome { };
+  cvxpy = callPackage ../development/python-modules/cvxpy { };
 
-  pycryptodomex = callPackage ../development/python-modules/pycryptodomex { };
+  cx_Freeze = callPackage ../development/python-modules/cx_freeze { };
 
-  PyChromecast = callPackage ../development/python-modules/pychromecast { };
+  cx_oracle = callPackage ../development/python-modules/cx_oracle { };
 
-  pycm = callPackage ../development/python-modules/pycm { };
+  cycler = callPackage ../development/python-modules/cycler { };
 
-  py-cpuinfo = callPackage ../development/python-modules/py-cpuinfo { };
+  cymem = callPackage ../development/python-modules/cymem { };
 
-  py-lru-cache = callPackage ../development/python-modules/py-lru-cache { };
+  cypari2 = callPackage ../development/python-modules/cypari2 { };
 
-  py-multibase = callPackage ../development/python-modules/py-multibase { };
+  cysignals = callPackage ../development/python-modules/cysignals { };
 
-  py-multihash = callPackage ../development/python-modules/py-multihash { };
+  cython = callPackage ../development/python-modules/Cython { };
 
-  py-radix = callPackage ../development/python-modules/py-radix { };
+  cytoolz = callPackage ../development/python-modules/cytoolz { };
 
-  pydbus = callPackage ../development/python-modules/pydbus { };
+  d2to1 = callPackage ../development/python-modules/d2to1 { };
 
-  pydicom = callPackage ../development/python-modules/pydicom { };
+  daemonize = callPackage ../development/python-modules/daemonize { };
 
-  pydocstyle =
-    if isPy27 then
-      callPackage ../development/python-modules/pydocstyle/2.nix { }
-    else
-      callPackage ../development/python-modules/pydocstyle { };
+  daphne = callPackage ../development/python-modules/daphne { };
 
-  pydocumentdb = callPackage ../development/python-modules/pydocumentdb { };
+  darcsver = callPackage ../development/python-modules/darcsver { };
 
-  pydrive = callPackage ../development/python-modules/pydrive { };
+  dash = callPackage ../development/python-modules/dash { };
 
-  pydy = callPackage ../development/python-modules/pydy { };
+  dash-core-components = callPackage ../development/python-modules/dash-core-components { };
 
-  pyexiv2 = disabledIf isPy3k (toPythonModule (callPackage ../development/python-modules/pyexiv2 {}));
+  dash-html-components = callPackage ../development/python-modules/dash-html-components { };
 
-  py3exiv2 = callPackage ../development/python-modules/py3exiv2 { };
+  dash-renderer = callPackage ../development/python-modules/dash-renderer { };
 
-  pyfakefs = callPackage ../development/python-modules/pyfakefs {};
+  dash-table = callPackage ../development/python-modules/dash-table { };
 
-  pyfaidx = callPackage ../development/python-modules/pyfaidx { };
+  dask = callPackage ../development/python-modules/dask { };
 
-  pyfcm = callPackage ../development/python-modules/pyfcm { };
+  dask-gateway = callPackage ../development/python-modules/dask-gateway { };
 
-  pyfttt = callPackage ../development/python-modules/pyfttt { };
+  dask-gateway-server = callPackage ../development/python-modules/dask-gateway-server { inherit (pkgs) go; };
 
-  pyftdi = callPackage ../development/python-modules/pyftdi { };
+  dask-glm = callPackage ../development/python-modules/dask-glm { };
 
-  pygame = callPackage ../development/python-modules/pygame { };
+  dask-image = callPackage ../development/python-modules/dask-image { };
 
-  pygbm = callPackage ../development/python-modules/pygbm { };
+  dask-jobqueue = callPackage ../development/python-modules/dask-jobqueue { };
 
-  pygame_sdl2 = callPackage ../development/python-modules/pygame_sdl2 { };
+  dask-ml = callPackage ../development/python-modules/dask-ml { };
 
-  pygdbmi = callPackage ../development/python-modules/pygdbmi { };
+  dask-mpi = callPackage ../development/python-modules/dask-mpi { };
 
-  pygmo = callPackage ../development/python-modules/pygmo { };
+  dask-xgboost = callPackage ../development/python-modules/dask-xgboost { };
 
-  pygobject2 = callPackage ../development/python-modules/pygobject {
-    inherit (pkgs) pkgconfig;
-  };
+  databases = callPackage ../development/python-modules/databases { };
 
-  pygobject3 = callPackage ../development/python-modules/pygobject/3.nix {
-    inherit (pkgs) meson pkgconfig;
-  };
+  databricks-cli = callPackage ../development/python-modules/databricks-cli { };
 
-  pygtail = callPackage ../development/python-modules/pygtail { };
+  databricks-connect = callPackage ../development/python-modules/databricks-connect { inherit (pkgs) jdk; };
 
-  pygtk = callPackage ../development/python-modules/pygtk {
-    inherit (pkgs) pkgconfig;
-    libglade = null;
-  };
+  dataclasses = callPackage ../development/python-modules/dataclasses { };
 
-  pygtksourceview = callPackage ../development/python-modules/pygtksourceview {
-    inherit (pkgs) pkgconfig;
-  };
+  dataclasses-json = callPackage ../development/python-modules/dataclasses-json { };
 
-  pyGtkGlade = self.pygtk.override {
-    libglade = pkgs.gnome2.libglade;
-  };
+  datadiff = callPackage ../development/python-modules/datadiff { };
 
-  pyjwkest = callPackage ../development/python-modules/pyjwkest { };
+  datadog = callPackage ../development/python-modules/datadog { };
 
-  pykdtree = callPackage ../development/python-modules/pykdtree {
-    inherit (pkgs.llvmPackages) openmp;
-  };
+  datamodeldict = callPackage ../development/python-modules/datamodeldict { };
 
-  pykerberos = callPackage ../development/python-modules/pykerberos { };
+  datasette = callPackage ../development/python-modules/datasette { };
 
-  pykeepass = callPackage ../development/python-modules/pykeepass { };
+  datashader = callPackage ../development/python-modules/datashader { };
 
-  pylev = callPackage ../development/python-modules/pylev { };
+  datashape = callPackage ../development/python-modules/datashape { };
 
-  pylibftdi = callPackage ../development/python-modules/pylibftdi {
-    inherit (pkgs) libusb1;
-  };
+  datatable =
+    callPackage ../development/python-modules/datatable { inherit (pkgs.llvmPackages) openmp libcxx libcxxabi; };
 
-  pymatgen = callPackage ../development/python-modules/pymatgen { };
+  dateparser = callPackage ../development/python-modules/dateparser { };
 
-  pymatgen-lammps = callPackage ../development/python-modules/pymatgen-lammps { };
+  datrie = callPackage ../development/python-modules/datrie { };
 
-  pymavlink = callPackage ../development/python-modules/pymavlink { };
+  dbf = callPackage ../development/python-modules/dbf { };
 
-  pymeeus = callPackage ../development/python-modules/pymeeus { };
+  dbfread = callPackage ../development/python-modules/dbfread { };
 
-  pymsgbox = callPackage ../development/python-modules/pymsgbox { };
+  dbus-python = callPackage ../development/python-modules/dbus { inherit (pkgs) dbus pkgconfig; };
 
-  pynanoleaf = callPackage ../development/python-modules/pynanoleaf { };
+  dcmstack = callPackage ../development/python-modules/dcmstack { };
 
-  pynisher = callPackage ../development/python-modules/pynisher { };
+  ddt = callPackage ../development/python-modules/ddt { };
 
-  pynput = callPackage ../development/python-modules/pynput { };
+  deap = callPackage ../development/python-modules/deap { };
 
-  pyparser = callPackage ../development/python-modules/pyparser { };
+  debian = callPackage ../development/python-modules/debian { };
 
-  pyres = callPackage ../development/python-modules/pyres { };
+  debts = callPackage ../development/python-modules/debts { };
 
-  pyqt4 = callPackage ../development/python-modules/pyqt/4.x.nix {
-    inherit (pkgs) pkgconfig;
-  };
+  debugpy = callPackage ../development/python-modules/debugpy { };
 
-  pyqt5 = pkgs.libsForQt5.callPackage ../development/python-modules/pyqt/5.x.nix {
-    pythonPackages = self;
-  };
+  decorator = callPackage ../development/python-modules/decorator { };
 
-  /*
-    `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; };
+  deepdiff = callPackage ../development/python-modules/deepdiff { };
 
-  pyqt5_with_qtmultimedia = self.pyqt5.override { withMultimedia = true; };
+  deepmerge = callPackage ../development/python-modules/deepmerge { };
 
-  pyqtwebengine = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtwebengine {
-    pythonPackages = self;
-  };
+  deeptoolsintervals = callPackage ../development/python-modules/deeptoolsintervals { };
 
-  pysc2 = callPackage ../development/python-modules/pysc2 { };
+  defcon = callPackage ../development/python-modules/defcon { };
 
-  pyscard = callPackage ../development/python-modules/pyscard { inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; };
+  deform = callPackage ../development/python-modules/deform { };
 
-  pyschedule = callPackage ../development/python-modules/pyschedule { };
+  defusedxml = callPackage ../development/python-modules/defusedxml { };
 
-  pyscreenshot = callPackage ../development/python-modules/pyscreenshot { };
+  delegator-py = callPackage ../development/python-modules/delegator-py { };
 
-  pyside = callPackage ../development/python-modules/pyside {
-    inherit (pkgs) mesa;
-  };
+  deluge-client = callPackage ../development/python-modules/deluge-client { };
 
-  pysideShiboken = callPackage ../development/python-modules/pyside/shiboken.nix {
-    inherit (pkgs) libxml2 libxslt; # Do not need the Python bindings.
-  };
+  demjson = callPackage ../development/python-modules/demjson { };
 
-  pysideTools = callPackage ../development/python-modules/pyside/tools.nix { };
+  dendropy = callPackage ../development/python-modules/dendropy { };
 
-  pyside2 = toPythonModule (callPackage ../development/python-modules/pyside2 {
-    inherit (pkgs) cmake qt5 ninja;
-  });
+  denonavr = callPackage ../development/python-modules/denonavr { };
 
-  shiboken2 = toPythonModule (callPackage ../development/python-modules/shiboken2 {
-    inherit (pkgs) cmake qt5 llvmPackages;
-  });
+  dependency-injector = callPackage ../development/python-modules/dependency-injector { };
 
-  simplefix = callPackage ../development/python-modules/simplefix { };
+  deprecated = callPackage ../development/python-modules/deprecated { };
 
-  pyscrypt = callPackage ../development/python-modules/pyscrypt { };
+  deprecation = callPackage ../development/python-modules/deprecation { };
 
-  pyside2-tools = toPythonModule (callPackage ../development/python-modules/pyside2-tools {
-    inherit (pkgs) cmake qt5;
-  });
+  derpconf = callPackage ../development/python-modules/derpconf { };
 
-  pyslurm = callPackage ../development/python-modules/pyslurm {
-    slurm = pkgs.slurm;
-  };
+  descartes = callPackage ../development/python-modules/descartes { };
 
-  pysmb = callPackage ../development/python-modules/pysmb { };
+  deskcon = callPackage ../development/python-modules/deskcon { };
 
-  pysmf = callPackage ../development/python-modules/pysmf { };
+  detox = throw "detox is no longer maintained, and was broken since may 2019"; # added 2020-07-04
 
-  pyspinel = callPackage ../development/python-modules/pyspinel {};
+  devpi-common = callPackage ../development/python-modules/devpi-common { };
 
-  pyssim = callPackage ../development/python-modules/pyssim { };
+  dftfit = callPackage ../development/python-modules/dftfit { };
 
-  pystache = callPackage ../development/python-modules/pystache { };
+  diceware = callPackage ../development/python-modules/diceware { };
 
-  pystray = callPackage ../development/python-modules/pystray { };
+  dicom2nifti = callPackage ../development/python-modules/dicom2nifti { };
 
-  pytelegrambotapi = callPackage ../development/python-modules/pyTelegramBotAPI { };
+  dict2xml = callPackage ../development/python-modules/dict2xml { };
 
-  pytesseract = callPackage ../development/python-modules/pytesseract { };
+  dictionaries = callPackage ../development/python-modules/dictionaries { };
 
-  pytest-bdd = callPackage ../development/python-modules/pytest-bdd { };
+  dicttoxml = callPackage ../development/python-modules/dicttoxml { };
 
-  pytest-black = callPackage ../development/python-modules/pytest-black { };
+  diff_cover = callPackage ../development/python-modules/diff_cover { };
 
-  pytest-click = callPackage ../development/python-modules/pytest-click { };
+  diff-match-patch = callPackage ../development/python-modules/diff-match-patch { };
 
-  pytest-check = callPackage ../development/python-modules/pytest-check { };
+  digital-ocean = callPackage ../development/python-modules/digitalocean { };
 
-  pytest-env = callPackage ../development/python-modules/pytest-env { };
+  digi-xbee = callPackage ../development/python-modules/digi-xbee { };
 
-  pytest-factoryboy = callPackage ../development/python-modules/pytest-factoryboy { };
+  dill = callPackage ../development/python-modules/dill { };
 
-  pytest-flask = callPackage ../development/python-modules/pytest-flask { };
+  diofant = callPackage ../development/python-modules/diofant { };
 
-  pytest-mypy = callPackage ../development/python-modules/pytest-mypy { };
+  dipy = callPackage ../development/python-modules/dipy { };
 
-  pytest-ordering = callPackage ../development/python-modules/pytest-ordering { };
+  discid = callPackage ../development/python-modules/discid { };
 
-  pytest-pylint = callPackage ../development/python-modules/pytest-pylint { };
+  discogs_client = callPackage ../development/python-modules/discogs_client { };
 
-  pytest-qt = callPackage ../development/python-modules/pytest-qt { };
+  discordpy = callPackage ../development/python-modules/discordpy { };
 
-  pytest-testmon = callPackage ../development/python-modules/pytest-testmon { };
+  diskcache = callPackage ../development/python-modules/diskcache { };
 
-  pytest-tornado = callPackage ../development/python-modules/pytest-tornado { };
+  dissononce = callPackage ../development/python-modules/dissononce { };
 
-  pytest-twisted = callPackage ../development/python-modules/pytest-twisted { };
+  distlib = callPackage ../development/python-modules/distlib { };
 
-  pytest-xprocess = callPackage ../development/python-modules/pytest-xprocess { };
+  distorm3 = callPackage ../development/python-modules/distorm3 { };
 
-  pytest-xvfb = callPackage ../development/python-modules/pytest-xvfb { };
+  distributed = callPackage ../development/python-modules/distributed { };
 
-  pytmx = callPackage ../development/python-modules/pytmx { };
+  distro = callPackage ../development/python-modules/distro { };
 
-  pythonmagick = callPackage ../development/python-modules/pythonmagick { };
+  distutils_extra = callPackage ../development/python-modules/distutils_extra { };
 
-  python-binance = callPackage ../development/python-modules/python-binance { };
+  django_2_2 = callPackage ../development/python-modules/django/2_2.nix { };
 
-  python-dbusmock = callPackage ../development/python-modules/python-dbusmock { };
+  django-allauth = callPackage ../development/python-modules/django-allauth { };
 
-  python-dotenv = callPackage ../development/python-modules/python-dotenv { };
+  django-anymail = callPackage ../development/python-modules/django-anymail { };
 
-  python-engineio = callPackage ../development/python-modules/python-engineio { };
+  django_appconf = callPackage ../development/python-modules/django_appconf { };
 
-  python-hosts = callPackage ../development/python-modules/python-hosts { };
+  django-auth-ldap = callPackage ../development/python-modules/django-auth-ldap { };
 
-  python-lz4 = callPackage ../development/python-modules/python-lz4 { };
-  lz4 = self.python-lz4; # alias 2018-12-05
+  django-cache-url = callPackage ../development/python-modules/django-cache-url { };
 
-  python-ldap-test = callPackage ../development/python-modules/python-ldap-test { };
+  django_classytags = callPackage ../development/python-modules/django_classytags { };
 
-  python-mnist = callPackage ../development/python-modules/python-mnist { };
+  django-cleanup = callPackage ../development/python-modules/django-cleanup { };
 
-  pythonocc-core = toPythonModule (callPackage ../development/python-modules/pythonocc-core {
-    inherit (pkgs.xorg) libX11;
-  });
+  django_colorful = callPackage ../development/python-modules/django_colorful { };
 
-  python-igraph = callPackage ../development/python-modules/python-igraph {
-    pkgconfig = pkgs.pkgconfig;
-    igraph = pkgs.igraph;
-  };
+  django_compat = callPackage ../development/python-modules/django-compat { };
 
-  python-olm = callPackage ../development/python-modules/python-olm { };
+  django_compressor = callPackage ../development/python-modules/django_compressor { };
 
-  python3-openid = callPackage ../development/python-modules/python3-openid { };
+  django-configurations = callPackage ../development/python-modules/django-configurations { };
 
-  python-packer = callPackage ../development/python-modules/python-packer { };
+  django_contrib_comments = callPackage ../development/python-modules/django_contrib_comments { };
 
-  python-periphery = callPackage ../development/python-modules/python-periphery { };
+  django-cors-headers = callPackage ../development/python-modules/django-cors-headers { };
 
-  python-prctl = callPackage ../development/python-modules/python-prctl { };
+  django-csp = callPackage ../development/python-modules/django-csp { };
 
-  python-rapidjson = callPackage ../development/python-modules/python-rapidjson { };
+  django-discover-runner = callPackage ../development/python-modules/django-discover-runner { };
 
-  python-redis-lock = callPackage ../development/python-modules/python-redis-lock { };
+  django-dynamic-preferences = callPackage ../development/python-modules/django-dynamic-preferences { };
 
-  python-rtmidi = callPackage ../development/python-modules/python-rtmidi { };
+  django_environ = callPackage ../development/python-modules/django_environ { };
 
-  python-sql = callPackage ../development/python-modules/python-sql { };
+  django_evolution = callPackage ../development/python-modules/django_evolution { };
 
-  python-snappy = callPackage ../development/python-modules/python-snappy {
-    inherit (pkgs) snappy;
-  };
+  django_extensions = callPackage ../development/python-modules/django-extensions { };
 
-  python-stdnum = callPackage ../development/python-modules/python-stdnum { };
+  django-filter = callPackage ../development/python-modules/django-filter { };
 
-  python-socketio = callPackage ../development/python-modules/python-socketio { };
+  django-gravatar2 = callPackage ../development/python-modules/django-gravatar2 { };
 
-  python-utils = callPackage ../development/python-modules/python-utils { };
+  django_guardian = callPackage ../development/python-modules/django_guardian { };
 
-  python-vipaccess = callPackage ../development/python-modules/python-vipaccess { };
+  django-haystack = callPackage ../development/python-modules/django-haystack { };
 
-  pytimeparse =  callPackage ../development/python-modules/pytimeparse { };
+  django_hijack_admin = callPackage ../development/python-modules/django-hijack-admin { };
 
-  pytricia =  callPackage ../development/python-modules/pytricia { };
+  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.
 
-  pytrends = callPackage ../development/python-modules/pytrends { };
+  django-ipware = callPackage ../development/python-modules/django-ipware { };
 
-  py-vapid = callPackage ../development/python-modules/py-vapid { };
+  django-jinja = callPackage ../development/python-modules/django-jinja2 { };
 
-  PyWebDAV = callPackage ../development/python-modules/pywebdav { };
+  django-logentry-admin = callPackage ../development/python-modules/django-logentry-admin { };
 
-  pywebpush = callPackage ../development/python-modules/pywebpush { };
+  django_lts = self.django_2_2;
 
-  pywebview = callPackage ../development/python-modules/pywebview { };
+  django-mailman3 = callPackage ../development/python-modules/django-mailman3 { };
 
-  pywick = callPackage ../development/python-modules/pywick { };
+  django_modelcluster = callPackage ../development/python-modules/django_modelcluster { };
 
-  pyxml = disabledIf isPy3k (callPackage ../development/python-modules/pyxml{ });
+  django-multiselectfield = callPackage ../development/python-modules/django-multiselectfield { };
 
-  pyvcd = callPackage ../development/python-modules/pyvcd { };
+  django-maintenance-mode = callPackage ../development/python-modules/django-maintenance-mode { };
 
-  pyvcf = callPackage ../development/python-modules/pyvcf { };
+  django_nose = callPackage ../development/python-modules/django_nose { };
 
-  pyvoro = callPackage ../development/python-modules/pyvoro { };
+  django-oauth-toolkit = callPackage ../development/python-modules/django-oauth-toolkit { };
 
-  relatorio = callPackage ../development/python-modules/relatorio { };
+  django-paintstore = callPackage ../development/python-modules/django-paintstore { };
 
-  reproject = callPackage ../development/python-modules/reproject { };
+  django-pglocks = callPackage ../development/python-modules/django-pglocks { };
 
-  remotecv = callPackage ../development/python-modules/remotecv { };
+  django-picklefield = callPackage ../development/python-modules/django-picklefield { };
 
-  pyzufall = callPackage ../development/python-modules/pyzufall { };
+  django_pipeline = callPackage ../development/python-modules/django-pipeline { };
 
-  rig = callPackage ../development/python-modules/rig { };
+  django_polymorphic = callPackage ../development/python-modules/django-polymorphic { };
 
-  rhpl = disabledIf isPy3k (callPackage ../development/python-modules/rhpl {});
+  django-postgresql-netfields = callPackage ../development/python-modules/django-postgresql-netfields { };
 
-  rlp = callPackage ../development/python-modules/rlp { };
+  django-q = callPackage ../development/python-modules/django-q { };
 
-  rq = callPackage ../development/python-modules/rq { };
+  djangoql = callPackage ../development/python-modules/djangoql { };
 
-  rtmidi-python = callPackage ../development/python-modules/rtmidi-python { };
+  django-ranged-response = callPackage ../development/python-modules/django-ranged-response { };
 
-  rx = callPackage ../development/python-modules/rx { };
+  django-raster = callPackage ../development/python-modules/django-raster { };
 
-  sabyenc = callPackage ../development/python-modules/sabyenc { };
+  django_redis = callPackage ../development/python-modules/django_redis { };
 
-  salmon-mail = callPackage ../development/python-modules/salmon-mail { };
+  django-rest-auth = callPackage ../development/python-modules/django-rest-auth { };
 
-  sanic-auth = callPackage ../development/python-modules/sanic-auth { };
+  djangorestframework = callPackage ../development/python-modules/djangorestframework { };
 
-  sapi-python-client = callPackage ../development/python-modules/sapi-python-client { };
+  djangorestframework-jwt = callPackage ../development/python-modules/djangorestframework-jwt { };
 
-  seekpath = callPackage ../development/python-modules/seekpath { };
+  djangorestframework-simplejwt = callPackage ../development/python-modules/djangorestframework-simplejwt { };
 
-  selectors2 = callPackage ../development/python-modules/selectors2 { };
+  django_reversion = callPackage ../development/python-modules/django_reversion { };
 
-  sacremoses = callPackage ../development/python-modules/sacremoses { };
+  django-sampledatahelper = callPackage ../development/python-modules/django-sampledatahelper { };
 
-  sentencepiece = callPackage ../development/python-modules/sentencepiece {
-    inherit (pkgs) sentencepiece pkgconfig;
-  };
+  django = self.django_lts;
 
-  tokenizers = disabledIf (!isPy3k)
-    (toPythonModule (callPackage ../development/python-modules/tokenizers { }));
+  django-sesame = callPackage ../development/python-modules/django-sesame { };
 
-  transformers = callPackage ../development/python-modules/transformers { };
+  django_silk = callPackage ../development/python-modules/django_silk { };
 
-  transforms3d = callPackage ../development/python-modules/transforms3d { };
+  django-simple-captcha = callPackage ../development/python-modules/django-simple-captcha { };
 
-  trimesh = callPackage ../development/python-modules/trimesh {};
+  django-sites = callPackage ../development/python-modules/django-sites { };
 
-  sentinel = callPackage ../development/python-modules/sentinel { };
+  django-sr = callPackage ../development/python-modules/django-sr { };
 
-  sentry-sdk = callPackage ../development/python-modules/sentry-sdk {};
+  django-storages = callPackage ../development/python-modules/django-storages { };
 
-  sepaxml = callPackage ../development/python-modules/sepaxml { };
+  django_tagging = callPackage ../development/python-modules/django_tagging { };
 
-  serversyncstorage = callPackage ../development/python-modules/serversyncstorage {};
+  django_taggit = callPackage ../development/python-modules/django_taggit { };
 
-  shellingham = callPackage ../development/python-modules/shellingham {};
+  django_treebeard = callPackage ../development/python-modules/django_treebeard { };
 
-  simpleaudio = callPackage ../development/python-modules/simpleaudio { };
+  django-versatileimagefield = callPackage ../development/python-modules/django-versatileimagefield { };
 
-  simpleeval = callPackage ../development/python-modules/simpleeval { };
+  django-webpack-loader = callPackage ../development/python-modules/django-webpack-loader { };
 
-  simple-salesforce = callPackage ../development/python-modules/simple-salesforce { };
+  django-widget-tweaks = callPackage ../development/python-modules/django-widget-tweaks { };
 
-  singledispatch = callPackage ../development/python-modules/singledispatch { };
+  dj-database-url = callPackage ../development/python-modules/dj-database-url { };
 
-  sip = callPackage ../development/python-modules/sip { };
+  dj-email-url = callPackage ../development/python-modules/dj-email-url { };
 
-  sortedcontainers = callPackage ../development/python-modules/sortedcontainers { };
+  djmail = callPackage ../development/python-modules/djmail { };
 
-  sklearn-deap = callPackage ../development/python-modules/sklearn-deap { };
+  dj-search-url = callPackage ../development/python-modules/dj-search-url { };
 
-  skorch = callPackage ../development/python-modules/skorch { };
+  dkimpy = callPackage ../development/python-modules/dkimpy { };
 
-  slackclient = callPackage ../development/python-modules/slackclient { };
+  dlib = callPackage ../development/python-modules/dlib { inherit (pkgs) dlib; };
 
-  slicedimage = callPackage ../development/python-modules/slicedimage { };
+  dlx = callPackage ../development/python-modules/dlx { };
 
-  slicerator = callPackage ../development/python-modules/slicerator { };
+  dmenu-python = callPackage ../development/python-modules/dmenu { };
 
-  slither-analyzer = callPackage ../development/python-modules/slither-analyzer { };
+  dm-sonnet = callPackage ../development/python-modules/dm-sonnet { };
 
-  sly = callPackage ../development/python-modules/sly { };
+  dnslib = callPackage ../development/python-modules/dnslib { };
 
-  snapcast = callPackage ../development/python-modules/snapcast { };
+  dnspython = if isPy3k then
+    callPackage ../development/python-modules/dnspython { }
+  else
+    self.dnspython_1;
 
-  soapysdr = toPythonModule (pkgs.soapysdr.override {
-    python = self.python;
-    usePython = true;
-  });
+  dnspython_1 = callPackage ../development/python-modules/dnspython/1.nix { };
 
-  soapysdr-with-plugins = toPythonModule (pkgs.soapysdr-with-plugins.override {
-    python = self.python;
-    usePython = true;
-  });
+  dns = self.dnspython; # Alias for compatibility, 2017-12-10
 
-  softlayer = callPackage ../development/python-modules/softlayer { };
+  doc8 = callPackage ../development/python-modules/doc8 { };
 
-  sparse = callPackage ../development/python-modules/sparse { };
+  docker = callPackage ../development/python-modules/docker { };
 
-  spglib = callPackage ../development/python-modules/spglib { };
+  dockerfile-parse = callPackage ../development/python-modules/dockerfile-parse { };
 
-  srvlookup = callPackage ../development/python-modules/srvlookup { };
+  dockerpty = callPackage ../development/python-modules/dockerpty { };
 
-  sshpubkeys = callPackage ../development/python-modules/sshpubkeys { };
+  docker_pycreds = callPackage ../development/python-modules/docker-pycreds { };
 
-  sshtunnel = callPackage ../development/python-modules/sshtunnel { };
+  docker-py = disabledIf isPy27 (callPackage ../development/python-modules/docker-py { });
 
-  sslib = callPackage ../development/python-modules/sslib { };
+  dockerspawner = callPackage ../development/python-modules/dockerspawner { };
 
-  sslyze = callPackage ../development/python-modules/sslyze { };
+  docloud = callPackage ../development/python-modules/docloud { };
 
-  statistics = callPackage ../development/python-modules/statistics { };
+  docopt = callPackage ../development/python-modules/docopt { };
 
-  stm32loader = callPackage ../development/python-modules/stm32loader { };
+  docplex = callPackage ../development/python-modules/docplex { };
 
-  stumpy = callPackage ../development/python-modules/stumpy { };
+  docrep = callPackage ../development/python-modules/docrep { };
 
-  stups-cli-support = callPackage ../development/python-modules/stups-cli-support { };
+  doctest-ignore-unicode = callPackage ../development/python-modules/doctest-ignore-unicode { };
 
-  stups-fullstop = callPackage ../development/python-modules/stups-fullstop { };
+  docutils = callPackage ../development/python-modules/docutils { };
 
-  stups-pierone = callPackage ../development/python-modules/stups-pierone { };
+  dodgy = callPackage ../development/python-modules/dodgy { };
 
-  stups-tokens = callPackage ../development/python-modules/stups-tokens { };
+  dogpile_cache = callPackage ../development/python-modules/dogpile.cache { };
 
-  stups-zign = callPackage ../development/python-modules/stups-zign { };
+  dogpile_core = callPackage ../development/python-modules/dogpile.core { };
 
-  sumo = callPackage ../development/python-modules/sumo { };
+  dogtail = callPackage ../development/python-modules/dogtail { };
 
-  supervise_api = callPackage ../development/python-modules/supervise_api { };
+  dominate = callPackage ../development/python-modules/dominate { };
 
-  tables = if isPy3k then callPackage ../development/python-modules/tables {
-    hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; };
-  } else callPackage ../development/python-modules/tables/3.5.nix {
-    hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; };
-  };
+  dopy = callPackage ../development/python-modules/dopy { };
 
-  tableaudocumentapi = callPackage ../development/python-modules/tableaudocumentapi { };
+  dot2tex = callPackage ../development/python-modules/dot2tex { inherit (pkgs) graphviz; };
 
-  tesserocr = callPackage ../development/python-modules/tesserocr { };
+  dotnetcore2 = callPackage ../development/python-modules/dotnetcore2 { inherit (pkgs) substituteAll dotnet-sdk; };
 
-  tls-parser = callPackage ../development/python-modules/tls-parser { };
+  dparse = callPackage ../development/python-modules/dparse { };
 
-  trueskill = callPackage ../development/python-modules/trueskill { };
+  dpath = callPackage ../development/python-modules/dpath { };
 
-  trustme = callPackage ../development/python-modules/trustme {};
+  dpkt = callPackage ../development/python-modules/dpkt { };
 
-  trio = callPackage ../development/python-modules/trio {};
+  drf-yasg = callPackage ../development/python-modules/drf-yasg { };
 
-  sniffio = callPackage ../development/python-modules/sniffio { };
+  drms = callPackage ../development/python-modules/drms { };
 
-  spyder-kernels = callPackage ../development/python-modules/spyder-kernels {};
-  spyder-kernels_0_5 = callPackage ../development/python-modules/spyder-kernels/0.x.nix {};
+  dropbox = callPackage ../development/python-modules/dropbox { };
 
-  spyder = callPackage ../development/python-modules/spyder {};
-  spyder_3 = callPackage ../development/python-modules/spyder/3.nix { };
+  ds4drv = callPackage ../development/python-modules/ds4drv { inherit (pkgs) fetchFromGitHub bluez; };
 
-  tenacity = callPackage ../development/python-modules/tenacity { };
+  dtopt = callPackage ../development/python-modules/dtopt { };
 
-  tokenserver = callPackage ../development/python-modules/tokenserver {};
+  duckdb = callPackage ../development/python-modules/duckdb { duckdb = pkgs.duckdb; };
 
-  toml = callPackage ../development/python-modules/toml { };
+  duecredit = callPackage ../development/python-modules/duecredit { };
 
-  tomlkit = callPackage ../development/python-modules/tomlkit { };
+  dugong = callPackage ../development/python-modules/dugong { };
 
-  toggl-cli = callPackage ../development/python-modules/toggl-cli { };
+  dulwich = if isPy3k then
+    callPackage ../development/python-modules/dulwich { }
+  else
+    callPackage ../development/python-modules/dulwich/0_19.nix { };
 
-  uamqp = callPackage ../development/python-modules/uamqp {
-    inherit (pkgs.darwin.apple_sdk.frameworks) CFNetwork Security;
-  };
+  dyn = callPackage ../development/python-modules/dyn { };
 
-  unifi = callPackage ../development/python-modules/unifi { };
+  dynd = callPackage ../development/python-modules/dynd { };
 
-  uvloop = callPackage ../development/python-modules/uvloop {
-    inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
-  };
+  easydict = callPackage ../development/python-modules/easydict { };
 
-  pyunifi = callPackage ../development/python-modules/pyunifi { };
+  easygui = callPackage ../development/python-modules/easygui { };
 
-  vdf = callPackage ../development/python-modules/vdf { };
+  EasyProcess = callPackage ../development/python-modules/easyprocess { };
 
-  vdirsyncer = callPackage ../development/python-modules/vdirsyncer {
-    inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices Security;
-    inherit (pkgs) pkg-config openssl rustPlatform;
+  easysnmp = callPackage ../development/python-modules/easysnmp {
+    openssl = pkgs.openssl;
+    net-snmp = pkgs.net-snmp;
   };
 
-  vdirsyncerStable = callPackage ../development/python-modules/vdirsyncer/stable.nix { };
+  easy-thumbnails = callPackage ../development/python-modules/easy-thumbnails { };
 
-  vidstab = callPackage ../development/python-modules/vidstab { };
+  easywatch = callPackage ../development/python-modules/easywatch { };
 
-  webapp2 = callPackage ../development/python-modules/webapp2 { };
+  eccodes = toPythonModule (pkgs.eccodes.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  wordcloud = callPackage ../development/python-modules/wordcloud { };
+  ecdsa = callPackage ../development/python-modules/ecdsa { };
 
-  wrf-python = callPackage ../development/python-modules/wrf-python { };
+  ecos = callPackage ../development/python-modules/ecos { };
 
-  pyunbound = callPackage ../tools/networking/unbound/python.nix { };
+  ecpy = callPackage ../development/python-modules/ecpy { };
 
-  WazeRouteCalculator = callPackage ../development/python-modules/WazeRouteCalculator { };
+  ed25519 = callPackage ../development/python-modules/ed25519 { };
 
-  yarg = callPackage ../development/python-modules/yarg { };
+  editorconfig = callPackage ../development/python-modules/editorconfig { };
 
-  yt = callPackage ../development/python-modules/yt { };
+  edward = callPackage ../development/python-modules/edward { };
 
-  # packages defined here
+  effect = callPackage ../development/python-modules/effect { };
 
-  aafigure = callPackage ../development/python-modules/aafigure { };
+  eggdeps = callPackage ../development/python-modules/eggdeps { };
 
-  addic7ed-cli = callPackage ../development/python-modules/addic7ed-cli { };
+  elasticsearch = callPackage ../development/python-modules/elasticsearch { };
 
-  algebraic-data-types = callPackage ../development/python-modules/algebraic-data-types { };
+  elasticsearch-dsl = callPackage ../development/python-modules/elasticsearch-dsl { };
 
-  altair = callPackage ../development/python-modules/altair { };
+  elasticsearchdsl = self.elasticsearch-dsl; # alias
 
-  vega = callPackage ../development/python-modules/vega { };
+  elementpath = callPackage ../development/python-modules/elementpath { };
 
-  accupy = callPackage ../development/python-modules/accupy { };
+  eliot = callPackage ../development/python-modules/eliot { };
 
-  acme = callPackage ../development/python-modules/acme { };
+  emailthreads = callPackage ../development/python-modules/emailthreads { };
 
-  acme-tiny = callPackage ../development/python-modules/acme-tiny { };
+  email_validator = callPackage ../development/python-modules/email-validator { };
 
-  actdiag = callPackage ../development/python-modules/actdiag { };
+  emcee = callPackage ../development/python-modules/emcee { };
 
-  adal = callPackage ../development/python-modules/adal { };
+  emoji = callPackage ../development/python-modules/emoji { };
 
-  affine = callPackage ../development/python-modules/affine { };
+  enaml = callPackage ../development/python-modules/enaml { };
 
-  aioconsole = callPackage ../development/python-modules/aioconsole { };
+  enamlx = callPackage ../development/python-modules/enamlx { };
 
-  aiodns = callPackage ../development/python-modules/aiodns { };
+  entrance = callPackage ../development/python-modules/entrance { routerFeatures = false; };
 
-  aiofiles = callPackage ../development/python-modules/aiofiles { };
+  entrance-with-router-features = callPackage ../development/python-modules/entrance { routerFeatures = true; };
 
-  aioh2 = callPackage ../development/python-modules/aioh2 { };
+  entrypoints = callPackage ../development/python-modules/entrypoints { };
 
-  aioftp = callPackage ../development/python-modules/aioftp { };
+  enum34 = callPackage ../development/python-modules/enum34 { };
 
-  aioharmony = callPackage ../development/python-modules/aioharmony { };
+  enum = callPackage ../development/python-modules/enum { };
 
-  aiohttp = callPackage ../development/python-modules/aiohttp { };
+  enum-compat = callPackage ../development/python-modules/enum-compat { };
 
-  aiohttp-cors = callPackage ../development/python-modules/aiohttp-cors { };
+  envisage = callPackage ../development/python-modules/envisage { };
 
-  aiohttp-jinja2 = callPackage ../development/python-modules/aiohttp-jinja2 { };
+  envs = callPackage ../development/python-modules/envs { };
 
-  aiohttp-remotes = callPackage ../development/python-modules/aiohttp-remotes { };
+  enzyme = callPackage ../development/python-modules/enzyme { };
 
-  aiohttp-socks = callPackage ../development/python-modules/aiohttp-socks { };
+  epc = callPackage ../development/python-modules/epc { };
 
-  aiohttp-swagger = callPackage ../development/python-modules/aiohttp-swagger { };
+  ephem = callPackage ../development/python-modules/ephem { };
 
-  aiomysql = callPackage ../development/python-modules/aiomysql { };
+  eradicate = callPackage ../development/python-modules/eradicate { };
 
-  aioprocessing = callPackage ../development/python-modules/aioprocessing { };
+  escapism = callPackage ../development/python-modules/escapism { };
 
-  aioresponses = callPackage ../development/python-modules/aioresponses { };
+  etcd = callPackage ../development/python-modules/etcd { };
 
-  aiosqlite = callPackage ../development/python-modules/aiosqlite { };
+  etelemetry = callPackage ../development/python-modules/etelemetry { };
 
-  aiorpcx = callPackage ../development/python-modules/aiorpcx { };
+  etesync = callPackage ../development/python-modules/etesync { };
 
-  aiosmtpd = callPackage ../development/python-modules/aiosmtpd { };
+  eth-hash = callPackage ../development/python-modules/eth-hash { };
 
-  aiounifi = callPackage ../development/python-modules/aiounifi { };
+  eth-typing = callPackage ../development/python-modules/eth-typing { };
 
-  aiounittest = callPackage ../development/python-modules/aiounittest { };
+  eth-utils = callPackage ../development/python-modules/eth-utils { };
 
-  aiozeroconf = callPackage ../development/python-modules/aiozeroconf { };
+  et_xmlfile = callPackage ../development/python-modules/et_xmlfile { };
 
-  ajpy = callPackage ../development/python-modules/ajpy { };
+  evdev = callPackage ../development/python-modules/evdev { };
 
-  alabaster = callPackage ../development/python-modules/alabaster {};
+  eve = callPackage ../development/python-modules/eve { };
 
-  alarmdecoder = callPackage ../development/python-modules/alarmdecoder {};
+  eventlet = callPackage ../development/python-modules/eventlet { };
 
-  alembic = callPackage ../development/python-modules/alembic {};
+  eventlib = callPackage ../development/python-modules/eventlib { };
 
-  allpairspy = callPackage ../development/python-modules/allpairspy { };
+  events = callPackage ../development/python-modules/events { };
 
-  annexremote = callPackage ../development/python-modules/annexremote { };
+  evernote = callPackage ../development/python-modules/evernote { };
 
-  ansible = callPackage ../development/python-modules/ansible { };
+  ewmh = callPackage ../development/python-modules/ewmh { };
 
-  ansible-kernel = callPackage ../development/python-modules/ansible-kernel { };
+  exchangelib = callPackage ../development/python-modules/exchangelib { };
 
-  ansible-lint = callPackage ../development/python-modules/ansible-lint { };
+  execnet = callPackage ../development/python-modules/execnet { };
 
-  ansible-runner = callPackage ../development/python-modules/ansible-runner { };
+  executing = callPackage ../development/python-modules/executing { };
 
-  ansicolors = callPackage ../development/python-modules/ansicolors {};
+  executor = callPackage ../development/python-modules/executor { };
 
-  aniso8601 = callPackage ../development/python-modules/aniso8601 {};
+  exifread = callPackage ../development/python-modules/exifread { };
 
-  anonip = callPackage ../development/python-modules/anonip { };
+  extension-helpers = callPackage ../development/python-modules/extension-helpers { };
 
-  asgiref = callPackage ../development/python-modules/asgiref { };
+  extras = callPackage ../development/python-modules/extras { };
 
-  python-editor = callPackage ../development/python-modules/python-editor { };
+  eyeD3 = callPackage ../development/python-modules/eyed3 { };
 
-  python-gnupg = callPackage ../development/python-modules/python-gnupg {};
+  ezdxf = callPackage ../development/python-modules/ezdxf { };
 
-  python-uinput = callPackage ../development/python-modules/python-uinput {};
+  Fabric = callPackage ../development/python-modules/Fabric { };
 
-  python-sybase = callPackage ../development/python-modules/sybase {};
+  facebook-sdk = callPackage ../development/python-modules/facebook-sdk { };
 
-  alot = callPackage ../development/python-modules/alot {};
+  face = callPackage ../development/python-modules/face { };
 
-  anyjson = callPackage ../development/python-modules/anyjson {};
+  facedancer = callPackage ../development/python-modules/facedancer { };
 
-  amqp = callPackage ../development/python-modules/amqp {};
+  face_recognition = callPackage ../development/python-modules/face_recognition { };
 
-  amqplib = callPackage ../development/python-modules/amqplib {};
+  face_recognition_models = callPackage ../development/python-modules/face_recognition_models { };
 
-  antlr4-python2-runtime = callPackage ../development/python-modules/antlr4-python2-runtime { antlr4 = pkgs.antlr4; };
+  factory_boy = callPackage ../development/python-modules/factory_boy { };
 
-  antlr4-python3-runtime = callPackage ../development/python-modules/antlr4-python3-runtime { antlr4 = pkgs.antlr4; };
+  fake_factory = callPackage ../development/python-modules/fake_factory { };
 
-  apache-airflow = callPackage ../development/python-modules/apache-airflow { };
+  faker = callPackage ../development/python-modules/faker { };
 
-  apipkg = callPackage ../development/python-modules/apipkg {};
+  fake-useragent = callPackage ../development/python-modules/fake-useragent { };
 
-  apispec = callPackage ../development/python-modules/apispec {};
+  falcon = callPackage ../development/python-modules/falcon { };
 
-  appdirs = callPackage ../development/python-modules/appdirs { };
+  fastapi = callPackage ../development/python-modules/fastapi { };
 
-  appleseed = disabledIf isPy3k
-    (toPythonModule (pkgs.appleseed.override {
-      inherit (self) python;
-    }));
+  fastcache = callPackage ../development/python-modules/fastcache { };
 
-  application = callPackage ../development/python-modules/application { };
+  fastdtw = callPackage ../development/python-modules/fastdtw { };
 
-  applicationinsights = callPackage ../development/python-modules/applicationinsights { };
+  fasteners = callPackage ../development/python-modules/fasteners { };
 
-  appnope = callPackage ../development/python-modules/appnope { };
+  fastentrypoints = callPackage ../development/python-modules/fastentrypoints { };
 
-  approvaltests = callPackage ../development/python-modules/approvaltests { };
+  fastimport = callPackage ../development/python-modules/fastimport { };
 
-  apptools = callPackage ../development/python-modules/apptools {};
+  fastjsonschema = callPackage ../development/python-modules/fastjsonschema { };
 
-  apsw = callPackage ../development/python-modules/apsw {};
+  fastpair = callPackage ../development/python-modules/fastpair { };
 
-  astor = callPackage ../development/python-modules/astor {};
+  fastparquet = callPackage ../development/python-modules/fastparquet { };
 
-  asyncpg = callPackage ../development/python-modules/asyncpg { };
+  fastpbkdf2 = callPackage ../development/python-modules/fastpbkdf2 { };
 
-  asyncssh = callPackage ../development/python-modules/asyncssh { };
+  fastrlock = callPackage ../development/python-modules/fastrlock { };
 
-  atpublic = callPackage ../development/python-modules/atpublic { };
+  fasttext = callPackage ../development/python-modules/fasttext { };
 
-  python-fontconfig = callPackage ../development/python-modules/python-fontconfig { };
+  faulthandler = if !isPy3k then
+    callPackage ../development/python-modules/faulthandler { }
+  else
+    throw "faulthandler is built into ${python.executable}";
 
-  funcsigs = callPackage ../development/python-modules/funcsigs { };
+  favicon = callPackage ../development/python-modules/favicon { };
 
-  APScheduler = callPackage ../development/python-modules/APScheduler { };
+  fb-re2 = callPackage ../development/python-modules/fb-re2 { };
 
-  args = callPackage ../development/python-modules/args { };
+  fdint = callPackage ../development/python-modules/fdint { };
 
-  argcomplete = callPackage ../development/python-modules/argcomplete { };
+  feedgen = callPackage ../development/python-modules/feedgen { };
 
-  area = callPackage ../development/python-modules/area { };
+  feedgenerator = callPackage ../development/python-modules/feedgenerator { inherit (pkgs) glibcLocales; };
 
-  arxiv2bib = callPackage ../development/python-modules/arxiv2bib { };
+  feedparser = callPackage ../development/python-modules/feedparser { };
 
-  chai = callPackage ../development/python-modules/chai { };
+  fenics = callPackage ../development/libraries/science/math/fenics {
+    inherit (pkgs) pkg-config;
+    mpi = pkgs.openmpi;
+    pytest = self.pytest_4;
+  };
 
-  chainmap = callPackage ../development/python-modules/chainmap { };
+  ffmpeg-python = callPackage ../development/python-modules/ffmpeg-python { };
 
-  arelle = callPackage ../development/python-modules/arelle {
-    gui = true;
-  };
+  fido2 = callPackage ../development/python-modules/fido2 { };
 
-  arelle-headless = callPackage ../development/python-modules/arelle {
-    gui = false;
-  };
+  filebrowser_safe = callPackage ../development/python-modules/filebrowser_safe { };
 
-  delegator-py = callPackage ../development/python-modules/delegator-py { };
+  filebytes = callPackage ../development/python-modules/filebytes { };
 
-  deluge-client = callPackage ../development/python-modules/deluge-client { };
+  filelock = callPackage ../development/python-modules/filelock { };
 
-  arrow = callPackage ../development/python-modules/arrow { };
+  filemagic = callPackage ../development/python-modules/filemagic { };
 
-  asynctest = callPackage ../development/python-modules/asynctest { };
+  filetype = callPackage ../development/python-modules/filetype { };
 
-  async-timeout = callPackage ../development/python-modules/async_timeout { };
+  filterpy = callPackage ../development/python-modules/filterpy { };
 
-  async_generator = callPackage ../development/python-modules/async_generator { };
+  finalfusion = callPackage ../development/python-modules/finalfusion { };
 
-  asn1ate = callPackage ../development/python-modules/asn1ate { };
+  fints = callPackage ../development/python-modules/fints { };
 
-  atlassian-python-api = callPackage ../development/python-modules/atlassian-python-api { };
+  fiona = callPackage ../development/python-modules/fiona { gdal_2 = pkgs.gdal_2; };
 
-  atomiclong = callPackage ../development/python-modules/atomiclong { };
+  fipy = callPackage ../development/python-modules/fipy { };
 
-  atomicwrites = callPackage ../development/python-modules/atomicwrites { };
+  fire = callPackage ../development/python-modules/fire { };
 
-  astroid = if isPy3k then callPackage ../development/python-modules/astroid { }
-            else callPackage ../development/python-modules/astroid/1.6.nix { };
+  firetv = callPackage ../development/python-modules/firetv { };
 
-  attrdict = callPackage ../development/python-modules/attrdict { };
+  first = callPackage ../development/python-modules/first { };
 
-  attrs = callPackage ../development/python-modules/attrs { };
+  fitbit = callPackage ../development/python-modules/fitbit { };
 
-  atsim_potentials = callPackage ../development/python-modules/atsim_potentials { };
+  fixtures = callPackage ../development/python-modules/fixtures { };
 
-  audio-metadata = callPackage ../development/python-modules/audio-metadata { };
+  flake8-blind-except = callPackage ../development/python-modules/flake8-blind-except { };
 
-  audioread = callPackage ../development/python-modules/audioread { };
+  flake8 = callPackage ../development/python-modules/flake8 { };
 
-  audiotools = callPackage ../development/python-modules/audiotools { };
+  flake8-debugger = callPackage ../development/python-modules/flake8-debugger { };
 
-  autopep8 = callPackage ../development/python-modules/autopep8 { };
+  flake8-future-import = callPackage ../development/python-modules/flake8-future-import { };
 
-  av = callPackage ../development/python-modules/av {
-    inherit (pkgs) pkgconfig;
-  };
+  flake8-import-order = callPackage ../development/python-modules/flake8-import-order { };
 
-  avro = callPackage ../development/python-modules/avro {};
+  flake8-polyfill = callPackage ../development/python-modules/flake8-polyfill { };
 
-  avro3k = callPackage ../development/python-modules/avro3k {};
+  flaky = callPackage ../development/python-modules/flaky { };
 
-  avro-python3 = callPackage ../development/python-modules/avro-python3 {};
+  flammkuchen = callPackage ../development/python-modules/flammkuchen { };
 
-  aws-lambda-builders = callPackage ../development/python-modules/aws-lambda-builders { };
+  flask-admin = callPackage ../development/python-modules/flask-admin { };
 
-  python-slugify = callPackage ../development/python-modules/python-slugify { };
+  flask-api = callPackage ../development/python-modules/flask-api { };
 
-  awesome-slugify = callPackage ../development/python-modules/awesome-slugify {};
+  flask-appbuilder = callPackage ../development/python-modules/flask-appbuilder { };
 
-  noise = callPackage ../development/python-modules/noise {};
+  flask_assets = callPackage ../development/python-modules/flask-assets { };
 
-  backcall = callPackage ../development/python-modules/backcall { };
+  flask-autoindex = callPackage ../development/python-modules/flask-autoindex { };
 
-  backports_abc = callPackage ../development/python-modules/backports_abc { };
+  flask-babel = callPackage ../development/python-modules/flask-babel { };
 
-  backports_functools_lru_cache = callPackage ../development/python-modules/backports_functools_lru_cache { };
+  flaskbabel = callPackage ../development/python-modules/flaskbabel { };
 
-  backports_os = callPackage ../development/python-modules/backports_os { };
+  flask-babelex = callPackage ../development/python-modules/flask-babelex { };
 
-  backports_shutil_get_terminal_size = callPackage ../development/python-modules/backports_shutil_get_terminal_size { };
+  flask-bcrypt = callPackage ../development/python-modules/flask-bcrypt { };
 
-  backports_ssl_match_hostname = if !(pythonOlder "3.5") then null else
-    callPackage ../development/python-modules/backports_ssl_match_hostname { };
+  flask-bootstrap = callPackage ../development/python-modules/flask-bootstrap { };
 
-  backports_lzma = callPackage ../development/python-modules/backports_lzma { };
+  flask-caching = callPackage ../development/python-modules/flask-caching { };
 
-  backports_tempfile = callPackage ../development/python-modules/backports_tempfile { };
+  flask = callPackage ../development/python-modules/flask { };
 
-  backports_unittest-mock = callPackage ../development/python-modules/backports_unittest-mock {};
+  flask-common = callPackage ../development/python-modules/flask-common { };
 
-  babelfish = callPackage ../development/python-modules/babelfish {};
+  flask-compress = callPackage ../development/python-modules/flask-compress { };
 
-  bandit = callPackage ../development/python-modules/bandit {};
+  flask-cors = callPackage ../development/python-modules/flask-cors { };
 
-  basiciw = callPackage ../development/python-modules/basiciw {
-    inherit (pkgs) gcc wirelesstools;
-  };
+  flask_elastic = callPackage ../development/python-modules/flask-elastic { };
 
-  base58 = callPackage ../development/python-modules/base58 {};
+  flask-httpauth = callPackage ../development/python-modules/flask-httpauth { };
 
-  batchgenerators = callPackage ../development/python-modules/batchgenerators { };
+  flask-jwt-extended = callPackage ../development/python-modules/flask-jwt-extended { };
 
-  batinfo = callPackage ../development/python-modules/batinfo {};
+  flask_ldap_login = callPackage ../development/python-modules/flask-ldap-login { };
 
-  bcdoc = callPackage ../development/python-modules/bcdoc {};
+  flask-limiter = callPackage ../development/python-modules/flask-limiter { };
 
-  beancount = callPackage ../development/python-modules/beancount { };
+  flask_login = callPackage ../development/python-modules/flask-login { };
 
-  beautifulsoup4 = callPackage ../development/python-modules/beautifulsoup4 { };
+  flask_mail = callPackage ../development/python-modules/flask-mail { };
 
-  beaker = callPackage ../development/python-modules/beaker { };
+  flask_marshmallow = callPackage ../development/python-modules/flask-marshmallow { };
 
-  bespon = callPackage ../development/python-modules/bespon { };
+  flask_migrate = callPackage ../development/python-modules/flask-migrate { };
 
-  betamax = callPackage ../development/python-modules/betamax {};
+  flask-mongoengine = callPackage ../development/python-modules/flask-mongoengine { };
 
-  betamax-matchers = callPackage ../development/python-modules/betamax-matchers { };
+  flask-openid = callPackage ../development/python-modules/flask-openid { };
 
-  betamax-serializers = callPackage ../development/python-modules/betamax-serializers { };
+  flask-paginate = callPackage ../development/python-modules/flask-paginate { };
 
-  bibtexparser = callPackage ../development/python-modules/bibtexparser { };
+  flask_principal = callPackage ../development/python-modules/flask-principal { };
 
-  bidict = callPackage ../development/python-modules/bidict { };
+  flask-pymongo = callPackage ../development/python-modules/Flask-PyMongo { };
 
-  bids-validator = callPackage ../development/python-modules/bids-validator { };
+  flask-restful = callPackage ../development/python-modules/flask-restful { };
 
-  binwalk = callPackage ../development/python-modules/binwalk {
-    pyqtgraph = null;
-  };
+  flask-restplus = callPackage ../development/python-modules/flask-restplus { };
 
-  binwalk-full = appendToName "full" (self.binwalk.override {
-    pyqtgraph = self.pyqtgraph;
-  });
+  flask-restx = callPackage ../development/python-modules/flask-restx { };
 
-  bitmath = callPackage ../development/python-modules/bitmath { };
+  flask-reverse-proxy-fix = callPackage ../development/python-modules/flask-reverse-proxy-fix { };
 
-  bitstruct = callPackage ../development/python-modules/bitstruct { };
+  flask_script = callPackage ../development/python-modules/flask-script { };
 
-  caldav = callPackage ../development/python-modules/caldav { };
+  flask-silk = callPackage ../development/python-modules/flask-silk { };
 
-  caldavclientlibrary-asynk = callPackage ../development/python-modules/caldavclientlibrary-asynk { };
+  flask-socketio = callPackage ../development/python-modules/flask-socketio { };
 
-  biopython = callPackage ../development/python-modules/biopython { };
+  flask-sockets = callPackage ../development/python-modules/flask-sockets { };
 
-  bedup = callPackage ../development/python-modules/bedup { };
+  flask_sqlalchemy = callPackage ../development/python-modules/flask-sqlalchemy { };
 
-  blessed = callPackage ../development/python-modules/blessed {};
+  flask-swagger = callPackage ../development/python-modules/flask-swagger { };
 
-  block-io = callPackage ../development/python-modules/block-io {};
+  flask-swagger-ui = callPackage ../development/python-modules/flask-swagger-ui { };
 
-  # Build boost for this specific Python version
-  # TODO: use separate output for libboost_python.so
-  boost = toPythonModule (pkgs.boost.override {
-    inherit (self) python numpy;
-    enablePython = true;
-  });
+  flask_testing = callPackage ../development/python-modules/flask-testing { };
 
-  boltztrap2 = callPackage ../development/python-modules/boltztrap2 { };
+  flask-versioned = callPackage ../development/python-modules/flask-versioned { };
 
-  boolean-py = callPackage ../development/python-modules/boolean-py { };
+  flask_wtf = callPackage ../development/python-modules/flask-wtf { };
 
-  bumps = callPackage ../development/python-modules/bumps {};
+  flexmock = callPackage ../development/python-modules/flexmock { };
 
-  bx-python = callPackage ../development/python-modules/bx-python {
-    inherit (pkgs) zlib;
-  };
+  flickrapi = callPackage ../development/python-modules/flickrapi { };
 
-  cached-property = callPackage ../development/python-modules/cached-property { };
+  flit = callPackage ../development/python-modules/flit { };
 
-  caffe = toPythonModule (pkgs.caffe.override {
-    pythonSupport = true;
-    inherit (self) python numpy boost;
-  });
+  flit-core = callPackage ../development/python-modules/flit-core { };
 
-  capstone = callPackage ../development/python-modules/capstone { inherit (pkgs) capstone; };
+  flower = callPackage ../development/python-modules/flower { };
 
-  capturer = callPackage ../development/python-modules/capturer { };
+  flowlogs_reader = callPackage ../development/python-modules/flowlogs_reader { };
 
-  cement = callPackage ../development/python-modules/cement {};
+  fluent-logger = callPackage ../development/python-modules/fluent-logger { };
 
-  cgen = callPackage ../development/python-modules/cgen { };
+  flufl_bounce = callPackage ../development/python-modules/flufl/bounce.nix { };
 
-  cgroup-utils = callPackage ../development/python-modules/cgroup-utils {};
+  flufl_i18n = callPackage ../development/python-modules/flufl/i18n.nix { };
 
-  chainer = callPackage ../development/python-modules/chainer {
-    cudaSupport = pkgs.config.cudaSupport or false;
-  };
+  flufl_lock = callPackage ../development/python-modules/flufl/lock.nix { };
 
-  channels = callPackage ../development/python-modules/channels {};
+  flup = callPackage ../development/python-modules/flup { };
 
-  cheroot = callPackage ../development/python-modules/cheroot {};
+  flux-led = callPackage ../development/python-modules/flux-led { };
 
-  chevron = callPackage ../development/python-modules/chevron {};
+  fn = callPackage ../development/python-modules/fn { };
 
-  cli-helpers = callPackage ../development/python-modules/cli-helpers {};
+  folium = callPackage ../development/python-modules/folium { };
 
-  cmarkgfm = callPackage ../development/python-modules/cmarkgfm { };
+  fontforge = disabledIf (!isPy3k) (toPythonModule (pkgs.fontforge.override {
+    withPython = true;
+    inherit python;
+  }));
 
-  cirq = callPackage ../development/python-modules/cirq {
-    pythonProtobuf = self.protobuf;
-  };
+  fontmath = callPackage ../development/python-modules/fontmath { };
 
-  citeproc-py = callPackage ../development/python-modules/citeproc-py { };
+  fontparts = callPackage ../development/python-modules/fontparts { };
 
-  colorcet = callPackage ../development/python-modules/colorcet { };
+  fontpens = callPackage ../development/python-modules/fontpens { };
 
-  coloredlogs = callPackage ../development/python-modules/coloredlogs { };
+  fonttools = callPackage ../development/python-modules/fonttools { };
 
-  colorclass = callPackage ../development/python-modules/colorclass {};
+  foolscap = callPackage ../development/python-modules/foolscap { };
 
-  colorlog = callPackage ../development/python-modules/colorlog { };
+  forbiddenfruit = callPackage ../development/python-modules/forbiddenfruit { };
 
-  colorspacious = callPackage ../development/python-modules/colorspacious { };
+  FormEncode = callPackage ../development/python-modules/FormEncode { };
 
-  colour = callPackage ../development/python-modules/colour {};
+  foundationdb51 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb51; };
+  foundationdb52 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb52; };
+  foundationdb60 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb60; };
+  foundationdb61 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb61; };
 
-  colormath = callPackage ../development/python-modules/colormath {};
+  foxdot = callPackage ../development/python-modules/foxdot { };
 
-  configshell = callPackage ../development/python-modules/configshell { };
+  fpdf = callPackage ../development/python-modules/fpdf { };
 
-  consonance = callPackage ../development/python-modules/consonance { };
+  fpylll = callPackage ../development/python-modules/fpylll { };
 
-  constantly = callPackage ../development/python-modules/constantly { };
+  freetype-py = callPackage ../development/python-modules/freetype-py { };
 
-  cornice = callPackage ../development/python-modules/cornice { };
+  freezegun = callPackage ../development/python-modules/freezegun { };
 
-  crashtest = callPackage ../development/python-modules/crashtest { };
+  fritzconnection = callPackage ../development/python-modules/fritzconnection { };
 
-  cram = callPackage ../development/python-modules/cram { };
+  frozendict = callPackage ../development/python-modules/frozendict { };
 
-  crc16 = callPackage ../development/python-modules/crc16 { };
+  fs = callPackage ../development/python-modules/fs { };
 
-  crccheck = callPackage ../development/python-modules/crccheck { };
+  fs-s3fs = callPackage ../development/python-modules/fs-s3fs { };
 
-  croniter = callPackage ../development/python-modules/croniter { };
+  fsspec = callPackage ../development/python-modules/fsspec { };
 
-  csscompressor = callPackage ../development/python-modules/csscompressor {};
+  ftfy = callPackage ../development/python-modules/ftfy { };
 
-  csvs-to-sqlite = callPackage ../development/python-modules/csvs-to-sqlite { };
+  ftputil = callPackage ../development/python-modules/ftputil { };
 
-  cufflinks = callPackage ../development/python-modules/cufflinks { };
+  fudge = callPackage ../development/python-modules/fudge { };
 
-  cupy = callPackage ../development/python-modules/cupy {
-    cudatoolkit = pkgs.cudatoolkit_10_0;
-    cudnn = pkgs.cudnn_cudatoolkit_10_0;
-    nccl = pkgs.nccl_cudatoolkit_10;
-  };
+  funcparserlib = callPackage ../development/python-modules/funcparserlib { };
 
-  cx_Freeze = callPackage ../development/python-modules/cx_freeze {};
+  funcsigs = callPackage ../development/python-modules/funcsigs { };
 
-  cx_oracle = callPackage ../development/python-modules/cx_oracle {};
+  functools32 = callPackage ../development/python-modules/functools32 { };
 
-  cvxopt = callPackage ../development/python-modules/cvxopt { };
+  funcy = callPackage ../development/python-modules/funcy { };
 
-  cvxpy = callPackage ../development/python-modules/cvxpy { };
+  furl = callPackage ../development/python-modules/furl { };
 
-  cycler = callPackage ../development/python-modules/cycler { };
+  fuse = callPackage ../development/python-modules/fuse-python { inherit (pkgs) fuse pkgconfig; };
 
-  cysignals = callPackage ../development/python-modules/cysignals { };
+  fusepy = callPackage ../development/python-modules/fusepy { };
 
-  cypari2 = callPackage ../development/python-modules/cypari2 { };
+  future = callPackage ../development/python-modules/future { };
 
-  dlib = callPackage ../development/python-modules/dlib {
-    inherit (pkgs) dlib;
-  };
+  future-fstrings = callPackage ../development/python-modules/future-fstrings { };
 
-  datadog = callPackage ../development/python-modules/datadog {};
+  futures = callPackage ../development/python-modules/futures { };
 
-  dataclasses = callPackage ../development/python-modules/dataclasses { };
+  fuzzywuzzy = callPackage ../development/python-modules/fuzzywuzzy { };
 
-  debian = callPackage ../development/python-modules/debian {};
+  fx2 = callPackage ../development/python-modules/fx2 { };
 
-  defusedxml = callPackage ../development/python-modules/defusedxml {};
+  gaia = disabledIf (isPyPy || isPy3k) (toPythonModule (pkgs.gaia.override {
+    pythonPackages = self;
+    pythonSupport = true;
+  })); # gaia isn't supported with python3 and it's not available from pypi
 
-  dodgy = callPackage ../development/python-modules/dodgy { };
+  galario = toPythonModule (pkgs.galario.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  duecredit = callPackage ../development/python-modules/duecredit { };
+  gast = callPackage ../development/python-modules/gast { };
 
-  dugong = callPackage ../development/python-modules/dugong {};
+  gateone = callPackage ../development/python-modules/gateone { };
 
-  easysnmp = callPackage ../development/python-modules/easysnmp {
-    openssl = pkgs.openssl;
-    net-snmp = pkgs.net-snmp;
-  };
+  gcovr = callPackage ../development/python-modules/gcovr { };
 
-  iowait = callPackage ../development/python-modules/iowait {};
+  gdal = toPythonModule (pkgs.gdal.override { pythonPackages = self; });
 
-  responses = callPackage ../development/python-modules/responses {};
+  gdata = callPackage ../development/python-modules/gdata { };
 
-  rarfile = callPackage ../development/python-modules/rarfile { inherit (pkgs) libarchive; };
+  gdcm = disabledIf isPy27 (toPythonModule (pkgs.gdcm.override {
+    inherit (self) python;
+    enablePython = true;
+  }));
 
-  proboscis = callPackage ../development/python-modules/proboscis {};
+  gdown = callPackage ../development/python-modules/gdown { };
 
-  poster3 = callPackage ../development/python-modules/poster3 { };
+  gdrivefs = callPackage ../development/python-modules/gdrivefs { };
 
-  py4j = callPackage ../development/python-modules/py4j { };
+  geant4 = disabledIf (!isPy3k) (toPythonModule (pkgs.geant4.override {
+    enablePython = true;
+    python3 = python;
+  }));
 
-  pyechonest = callPackage ../development/python-modules/pyechonest { };
+  geeknote = callPackage ../development/python-modules/geeknote { };
 
-  pyepsg = callPackage ../development/python-modules/pyepsg { };
+  genanki = callPackage ../development/python-modules/genanki { };
 
-  billiard = callPackage ../development/python-modules/billiard { };
+  genpy = callPackage ../development/python-modules/genpy { };
 
-  binaryornot = callPackage ../development/python-modules/binaryornot { };
+  genshi = callPackage ../development/python-modules/genshi { };
 
-  bitbucket_api = callPackage ../development/python-modules/bitbucket-api { };
+  gensim = callPackage ../development/python-modules/gensim { };
 
-  bitbucket-cli = callPackage ../development/python-modules/bitbucket-cli { };
+  gentools = callPackage ../development/python-modules/gentools { };
 
-  bitstring = callPackage ../development/python-modules/bitstring { };
+  genzshcomp = callPackage ../development/python-modules/genzshcomp { };
 
-  html5-parser = callPackage ../development/python-modules/html5-parser {
-    inherit (pkgs) pkgconfig;
-  };
+  geoalchemy2 = callPackage ../development/python-modules/geoalchemy2 { };
 
-  HTSeq = callPackage ../development/python-modules/HTSeq { };
+  geographiclib = callPackage ../development/python-modules/geographiclib { };
 
-  httpserver = callPackage ../development/python-modules/httpserver {};
+  geoip2 = callPackage ../development/python-modules/geoip2 { };
 
-  bleach = callPackage ../development/python-modules/bleach { };
+  GeoIP = callPackage ../development/python-modules/GeoIP { };
 
-  bleak = callPackage ../development/python-modules/bleak { };
+  geojson = callPackage ../development/python-modules/geojson { };
 
-  blinker = callPackage ../development/python-modules/blinker { };
+  geopandas = callPackage ../development/python-modules/geopandas { };
 
-  blockdiag = callPackage ../development/python-modules/blockdiag { };
+  geopy = if isPy3k then
+    callPackage ../development/python-modules/geopy { }
+  else
+    callPackage ../development/python-modules/geopy/2.nix { };
 
-  blockdiagcontrib-cisco = callPackage ../development/python-modules/blockdiagcontrib-cisco { };
+  getmac = callPackage ../development/python-modules/getmac { };
 
-  bpython = callPackage ../development/python-modules/bpython {};
+  gevent = callPackage ../development/python-modules/gevent { };
 
-  bsddb3 = callPackage ../development/python-modules/bsddb3 { };
+  geventhttpclient = callPackage ../development/python-modules/geventhttpclient { };
 
-  bkcharts = callPackage ../development/python-modules/bkcharts { };
+  gevent-socketio = callPackage ../development/python-modules/gevent-socketio { };
 
-  bokeh = callPackage ../development/python-modules/bokeh { };
+  gevent-websocket = callPackage ../development/python-modules/gevent-websocket { };
 
-  boto = callPackage ../development/python-modules/boto { };
+  gflags = callPackage ../development/python-modules/gflags { };
 
-  boto3 = callPackage ../development/python-modules/boto3 { };
+  ghdiff = callPackage ../development/python-modules/ghdiff { };
 
-  botocore = callPackage ../development/python-modules/botocore { };
+  gidgethub = callPackage ../development/python-modules/gidgethub { };
 
-  bottle = callPackage ../development/python-modules/bottle { };
+  gin-config = callPackage ../development/python-modules/gin-config { };
 
-  box2d = callPackage ../development/python-modules/box2d { };
+  gipc = callPackage ../development/python-modules/gipc { };
 
-  branca = callPackage ../development/python-modules/branca { };
+  git-annex-adapter =
+    callPackage ../development/python-modules/git-annex-adapter { inherit (pkgs.gitAndTools) git-annex; };
 
-  bugwarrior = callPackage ../development/python-modules/bugwarrior { };
+  gitdb2 = throw "gitdb2 has been deprecated, use gitdb instead."; # added 2020-03-14
 
-  bugz = callPackage ../development/python-modules/bugz { };
+  gitdb = callPackage ../development/python-modules/gitdb { };
 
-  bugzilla = callPackage ../development/python-modules/bugzilla { };
+  github3_py = callPackage ../development/python-modules/github3_py { };
 
-  buildbot = callPackage ../development/python-modules/buildbot { };
-  buildbot-plugins = pkgs.recurseIntoAttrs (callPackage ../development/python-modules/buildbot/plugins.nix { });
-  buildbot-ui = self.buildbot.withPlugins (with self.buildbot-plugins; [ www ]);
-  buildbot-full = self.buildbot.withPlugins (with self.buildbot-plugins; [ www console-view waterfall-view grid-view wsgi-dashboards ]);
-  buildbot-worker = callPackage ../development/python-modules/buildbot/worker.nix { };
-  buildbot-pkg = callPackage ../development/python-modules/buildbot/pkg.nix { };
+  github-webhook = callPackage ../development/python-modules/github-webhook { };
 
-  check-manifest = callPackage ../development/python-modules/check-manifest { };
+  GitPython = callPackage ../development/python-modules/GitPython { };
 
-  devpi-common = callPackage ../development/python-modules/devpi-common { };
-  # A patched version of buildout, useful for buildout based development on Nix
-  zc_buildout_nix = callPackage ../development/python-modules/buildout-nix { };
+  git-revise = callPackage ../development/python-modules/git-revise { };
 
-  zc_buildout = self.zc_buildout221;
+  git-sweep = callPackage ../development/python-modules/git-sweep { };
 
-  zc_buildout221 = callPackage ../development/python-modules/buildout { };
+  glances = throw "glances has moved to pkgs.glances"; # added 2020-20-28
 
-  z3c-checkversions = callPackage ../development/python-modules/z3c-checkversions { };
+  glasgow = callPackage ../development/python-modules/glasgow { };
 
-  bunch = callPackage ../development/python-modules/bunch { };
+  glob2 = callPackage ../development/python-modules/glob2 { };
 
-  can = callPackage ../development/python-modules/can {};
+  globre = callPackage ../development/python-modules/globre { };
 
-  canopen = callPackage ../development/python-modules/canopen {};
+  globus-sdk = callPackage ../development/python-modules/globus-sdk { };
 
-  canmatrix = callPackage ../development/python-modules/canmatrix {};
+  glom = callPackage ../development/python-modules/glom { };
 
+  glymur = callPackage ../development/python-modules/glymur { };
 
-  cairocffi = if isPy3k then
-    callPackage ../development/python-modules/cairocffi {}
-  else
-    callPackage ../development/python-modules/cairocffi/0_9.nix {};
+  gmpy2 = callPackage ../development/python-modules/gmpy2 { };
 
-  cairosvg = if isPy3k then
-    callPackage ../development/python-modules/cairosvg {}
-  else
-    callPackage ../development/python-modules/cairosvg/1_x.nix {};
+  gmpy = callPackage ../development/python-modules/gmpy { };
 
-  carrot = callPackage ../development/python-modules/carrot {};
+  gmusicapi = callPackage ../development/python-modules/gmusicapi { };
 
-  cartopy = callPackage ../development/python-modules/cartopy {};
+  gnureadline = callPackage ../development/python-modules/gnureadline { };
 
-  casbin = callPackage ../development/python-modules/casbin { };
+  gnutls = callPackage ../development/python-modules/gnutls { };
 
-  case = callPackage ../development/python-modules/case {};
+  goobook = callPackage ../development/python-modules/goobook { };
 
-  cbor = callPackage ../development/python-modules/cbor {};
+  goocalendar = callPackage ../development/python-modules/goocalendar { };
 
-  cbor2 = callPackage ../development/python-modules/cbor2 {};
+  google_api_core = callPackage ../development/python-modules/google_api_core { };
 
-  cassandra-driver = callPackage ../development/python-modules/cassandra-driver { };
+  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
+    else # Python 2.7 support was deprecated but is still needed by weboob and duplicity
+      google_api_python_client.overridePythonAttrs (old: rec {
+        version = "1.7.6";
+        src = old.src.override {
+          inherit version;
+          sha256 = "14w5sdrp0bk9n0r2lmpqmrbf2zclpfq6q7giyahnskkfzdkb165z";
+        };
+      });
 
-  cccolutils = callPackage ../development/python-modules/cccolutils {};
+  googleapis_common_protos = callPackage ../development/python-modules/googleapis_common_protos { };
 
-  cchardet = callPackage ../development/python-modules/cchardet { };
+  google_apputils = callPackage ../development/python-modules/google_apputils { };
 
-  CDDB = callPackage ../development/python-modules/cddb { };
+  google_auth = callPackage ../development/python-modules/google_auth { };
 
-  cntk = callPackage ../development/python-modules/cntk { };
+  google-auth-httplib2 = callPackage ../development/python-modules/google-auth-httplib2 { };
 
-  celery = callPackage ../development/python-modules/celery { };
+  google-auth-oauthlib = callPackage ../development/python-modules/google-auth-oauthlib { };
 
-  cerberus = callPackage ../development/python-modules/cerberus { };
+  google_cloud_asset = callPackage ../development/python-modules/google_cloud_asset { };
 
-  certifi = callPackage ../development/python-modules/certifi { };
+  google_cloud_automl = callPackage ../development/python-modules/google_cloud_automl { };
 
-  certipy = callPackage ../development/python-modules/certipy {};
+  google_cloud_bigquery = callPackage ../development/python-modules/google_cloud_bigquery { };
 
-  characteristic = callPackage ../development/python-modules/characteristic { };
+  google_cloud_bigquery_datatransfer = callPackage ../development/python-modules/google_cloud_bigquery_datatransfer { };
 
-  chart-studio = callPackage ../development/python-modules/chart-studio { };
+  google_cloud_bigtable = callPackage ../development/python-modules/google_cloud_bigtable { };
 
-  cheetah = callPackage ../development/python-modules/cheetah { };
+  google_cloud_container = callPackage ../development/python-modules/google_cloud_container { };
 
-  cherrypy = if isPy3k then
-    callPackage ../development/python-modules/cherrypy { }
-  else
-    callPackage ../development/python-modules/cherrypy/17.nix { };
+  google_cloud_core = callPackage ../development/python-modules/google_cloud_core { };
 
-  cfgv = callPackage ../development/python-modules/cfgv { };
+  google_cloud_dataproc = callPackage ../development/python-modules/google_cloud_dataproc { };
 
-  cfn-lint = callPackage ../development/python-modules/cfn-lint { };
+  google_cloud_datastore = callPackage ../development/python-modules/google_cloud_datastore { };
 
-  cftime = callPackage ../development/python-modules/cftime {};
+  google_cloud_dlp = callPackage ../development/python-modules/google_cloud_dlp { };
 
-  cjson = callPackage ../development/python-modules/cjson { };
+  google_cloud_dns = callPackage ../development/python-modules/google_cloud_dns { };
 
-  cld2-cffi = callPackage ../development/python-modules/cld2-cffi {};
+  google_cloud_error_reporting = callPackage ../development/python-modules/google_cloud_error_reporting { };
 
-  clf = callPackage ../development/python-modules/clf {};
+  google_cloud_firestore = callPackage ../development/python-modules/google_cloud_firestore { };
 
-  click = callPackage ../development/python-modules/click {};
+  google_cloud_iot = callPackage ../development/python-modules/google_cloud_iot { };
 
-  click-completion = callPackage ../development/python-modules/click-completion {};
+  google_cloud_kms = callPackage ../development/python-modules/google_cloud_kms { };
 
-  click-default-group = callPackage ../development/python-modules/click-default-group { };
+  google_cloud_language = callPackage ../development/python-modules/google_cloud_language { };
 
-  click-didyoumean = callPackage ../development/python-modules/click-didyoumean {};
+  google_cloud_logging = callPackage ../development/python-modules/google_cloud_logging { };
 
-  click-log = callPackage ../development/python-modules/click-log {};
+  google_cloud_monitoring = callPackage ../development/python-modules/google_cloud_monitoring { };
 
-  click-plugins = callPackage ../development/python-modules/click-plugins {};
+  google_cloud_pubsub = callPackage ../development/python-modules/google_cloud_pubsub { };
 
-  click-repl = callPackage ../development/python-modules/click-repl { };
+  google_cloud_redis = callPackage ../development/python-modules/google_cloud_redis { };
 
-  click-threading = callPackage ../development/python-modules/click-threading {};
+  google_cloud_resource_manager = callPackage ../development/python-modules/google_cloud_resource_manager { };
 
-  cligj = callPackage ../development/python-modules/cligj { };
+  google_cloud_runtimeconfig = callPackage ../development/python-modules/google_cloud_runtimeconfig { };
 
-  closure-linter = callPackage ../development/python-modules/closure-linter { };
+  google_cloud_secret_manager = callPackage ../development/python-modules/google_cloud_secret_manager { };
 
-  cloudflare = callPackage ../development/python-modules/cloudflare { };
+  google_cloud_securitycenter = callPackage ../development/python-modules/google_cloud_securitycenter { };
 
-  cloudpickle = callPackage ../development/python-modules/cloudpickle { };
+  google_cloud_spanner = callPackage ../development/python-modules/google_cloud_spanner { };
 
-  cmdline = callPackage ../development/python-modules/cmdline { };
+  google_cloud_speech = callPackage ../development/python-modules/google_cloud_speech { };
 
-  codecov = callPackage ../development/python-modules/codecov {};
+  google_cloud_storage = callPackage ../development/python-modules/google_cloud_storage { };
 
-  cogapp = callPackage ../development/python-modules/cogapp {};
+  google_cloud_tasks = callPackage ../development/python-modules/google_cloud_tasks { };
 
-  colorama = callPackage ../development/python-modules/colorama { };
+  google_cloud_testutils = callPackage ../development/python-modules/google_cloud_testutils { };
 
-  colorlover = callPackage ../development/python-modules/colorlover { };
+  google_cloud_texttospeech = callPackage ../development/python-modules/google_cloud_texttospeech { };
 
-  CommonMark = callPackage ../development/python-modules/commonmark { };
+  google_cloud_trace = callPackage ../development/python-modules/google_cloud_trace { };
 
-  coilmq = callPackage ../development/python-modules/coilmq { };
+  google_cloud_translate = callPackage ../development/python-modules/google_cloud_translate { };
 
-  colander = callPackage ../development/python-modules/colander { };
+  google_cloud_videointelligence = callPackage ../development/python-modules/google_cloud_videointelligence { };
 
-  # Backported version of the ConfigParser library of Python 3.3
-  configparser = if pythonOlder "3.6" then
-    callPackage ../development/python-modules/configparser/4.nix { }
-  else
-    callPackage ../development/python-modules/configparser { };
+  google_cloud_vision = callPackage ../development/python-modules/google_cloud_vision { };
 
-  ColanderAlchemy = callPackage ../development/python-modules/colanderalchemy { };
+  google_cloud_websecurityscanner = callPackage ../development/python-modules/google_cloud_websecurityscanner { };
 
-  conda = callPackage ../development/python-modules/conda { };
+  google-compute-engine = callPackage ../tools/virtualization/google-compute-engine { };
 
-  configobj = callPackage ../development/python-modules/configobj { };
+  google-i18n-address = callPackage ../development/python-modules/google-i18n-address { };
 
-  confluent-kafka = callPackage ../development/python-modules/confluent-kafka {};
+  google-music = callPackage ../development/python-modules/google-music { };
 
-  kafka-python = callPackage ../development/python-modules/kafka-python {};
+  google-music-proto = callPackage ../development/python-modules/google-music-proto { };
 
-  construct = callPackage ../development/python-modules/construct {};
+  google-music-utils = callPackage ../development/python-modules/google-music-utils { };
 
-  consul = callPackage ../development/python-modules/consul { };
+  google-pasta = callPackage ../development/python-modules/google-pasta { };
 
-  contexter = callPackage ../development/python-modules/contexter { };
+  google_resumable_media = callPackage ../development/python-modules/google_resumable_media { };
 
-  contextvars = callPackage ../development/python-modules/contextvars {};
+  googletrans = callPackage ../development/python-modules/googletrans { };
 
-  contextlib2 = callPackage ../development/python-modules/contextlib2 { };
+  gorilla = callPackage ../development/python-modules/gorilla { };
 
-  cookiecutter = callPackage ../development/python-modules/cookiecutter { };
+  gpapi = callPackage ../development/python-modules/gpapi { };
+  gplaycli = callPackage ../development/python-modules/gplaycli { };
 
-  cookies = callPackage ../development/python-modules/cookies { };
+  gpgme = toPythonModule (pkgs.gpgme.override {
+    pythonSupport = true;
+    inherit python;
+  });
 
-  coreapi = callPackage ../development/python-modules/coreapi { };
+  gphoto2 = callPackage ../development/python-modules/gphoto2 { inherit (pkgs) pkgconfig; };
 
-  coreschema = callPackage ../development/python-modules/coreschema { };
+  gprof2dot = callPackage ../development/python-modules/gprof2dot { inherit (pkgs) graphviz; };
 
-  coveralls = callPackage ../development/python-modules/coveralls { };
+  gpsoauth = callPackage ../development/python-modules/gpsoauth { };
 
-  coverage = callPackage ../development/python-modules/coverage { };
+  gpxpy = callPackage ../development/python-modules/gpxpy { };
 
-  covCore = callPackage ../development/python-modules/cov-core { };
+  gpy = callPackage ../development/python-modules/gpy { };
 
-  crcmod = callPackage ../development/python-modules/crcmod { };
+  gpyopt = callPackage ../development/python-modules/gpyopt { };
 
-  credstash = callPackage ../development/python-modules/credstash { };
+  grammalecte = callPackage ../development/python-modules/grammalecte { };
 
-  cython = callPackage ../development/python-modules/Cython { };
+  grandalf = callPackage ../development/python-modules/grandalf { };
 
-  cytoolz = callPackage ../development/python-modules/cytoolz { };
+  graphite_api = callPackage ../development/python-modules/graphite-api { };
 
-  cppy = callPackage ../development/python-modules/cppy { };
+  graphite_beacon = callPackage ../development/python-modules/graphite_beacon { };
 
-  cryptacular = callPackage ../development/python-modules/cryptacular { };
+  graphite-web = callPackage ../development/python-modules/graphite-web { };
 
-  cryptography = callPackage ../development/python-modules/cryptography { };
+  graph_nets = callPackage ../development/python-modules/graph_nets { };
 
-  cryptography_vectors = callPackage ../development/python-modules/cryptography/vectors.nix { };
+  graphql-core = callPackage ../development/python-modules/graphql-core { };
 
-  curtsies = callPackage ../development/python-modules/curtsies { };
+  graphql-server-core = callPackage ../development/python-modules/graphql-server-core { };
 
-  envs = callPackage ../development/python-modules/envs { };
+  graph-tool = callPackage ../development/python-modules/graph-tool/2.x.x.nix { inherit (pkgs) pkg-config; };
 
-  etelemetry = callPackage ../development/python-modules/etelemetry { };
+  graphviz = callPackage ../development/python-modules/graphviz { inherit (pkgs) graphviz; };
 
-  eth-hash = callPackage ../development/python-modules/eth-hash { };
+  grappelli_safe = callPackage ../development/python-modules/grappelli_safe { };
 
-  eth-typing = callPackage ../development/python-modules/eth-typing { };
+  graspy = callPackage ../development/python-modules/graspy { };
 
-  eth-utils = callPackage ../development/python-modules/eth-utils { };
+  greatfet = callPackage ../development/python-modules/greatfet { };
 
-  gwyddion = disabledIf isPy3k (toPythonModule (pkgs.gwyddion.override {
-    pythonSupport = true;
+  green = callPackage ../development/python-modules/green { };
+
+  greenlet = callPackage ../development/python-modules/greenlet { };
+
+  grequests = callPackage ../development/python-modules/grequests { };
+
+  grib-api = disabledIf (!isPy27) (toPythonModule (pkgs.grib-api.override {
+    enablePython = true;
     pythonPackages = self;
   }));
 
-  impacket = callPackage ../development/python-modules/impacket { };
+  grip = callPackage ../development/python-modules/grip { };
 
-  jsonlines = callPackage ../development/python-modules/jsonlines { };
+  grpc_google_iam_v1 = callPackage ../development/python-modules/grpc_google_iam_v1 { };
 
-  json-merge-patch = callPackage ../development/python-modules/json-merge-patch { };
+  grpcio = callPackage ../development/python-modules/grpcio { };
 
-  jsonrpc-async = callPackage ../development/python-modules/jsonrpc-async { };
+  grpcio-gcp = callPackage ../development/python-modules/grpcio-gcp { };
 
-  jsonrpc-base = callPackage ../development/python-modules/jsonrpc-base { };
+  grpcio-tools = callPackage ../development/python-modules/grpcio-tools { };
 
-  jsonrpc-websocket = callPackage ../development/python-modules/jsonrpc-websocket { };
+  gsd = if isPy27 then
+    callPackage ../development/python-modules/gsd/1.7.nix { }
+  else
+    callPackage ../development/python-modules/gsd { };
 
-  hepmc3 = toPythonModule (pkgs.hepmc3.override {
-    inherit python;
-  });
+  gspread = callPackage ../development/python-modules/gspread { };
 
-  onkyo-eiscp = callPackage ../development/python-modules/onkyo-eiscp { };
+  gssapi = callPackage ../development/python-modules/gssapi { inherit (pkgs) darwin krb5Full; };
 
-  tablib = callPackage ../development/python-modules/tablib { };
+  gst-python = callPackage ../development/python-modules/gst-python {
+    inherit (pkgs) meson pkgconfig;
+    gst-plugins-base = pkgs.gst_all_1.gst-plugins-base;
+  };
 
-  wakeonlan = callPackage ../development/python-modules/wakeonlan { };
+  gtimelog = callPackage ../development/python-modules/gtimelog { };
 
-  openant = callPackage ../development/python-modules/openant { };
+  gtts = callPackage ../development/python-modules/gtts { };
 
-  opencv = disabledIf isPy3k (toPythonModule (pkgs.opencv.override {
-    enablePython = true;
+  gtts-token = callPackage ../development/python-modules/gtts-token { };
+
+  guessit = callPackage ../development/python-modules/guessit { };
+
+  guestfs = callPackage ../development/python-modules/guestfs { };
+
+  gumath = callPackage ../development/python-modules/gumath { };
+
+  gunicorn = if isPy27 then
+    callPackage ../development/python-modules/gunicorn/19.nix { }
+  else
+    callPackage ../development/python-modules/gunicorn { };
+
+  gurobipy = if stdenv.hostPlatform.system == "x86_64-darwin" then
+    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
+    throw "gurobipy not yet supported on ${stdenv.hostPlatform.system}";
+
+  guzzle_sphinx_theme = callPackage ../development/python-modules/guzzle_sphinx_theme { };
+
+  gwyddion = disabledIf isPy3k (toPythonModule (pkgs.gwyddion.override {
+    pythonSupport = true;
     pythonPackages = self;
   }));
 
-  opencv3 = toPythonModule (pkgs.opencv3.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  gym = callPackage ../development/python-modules/gym { };
 
-  opencv4 = toPythonModule (pkgs.opencv4.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  gyp = callPackage ../development/python-modules/gyp { };
 
-  opentracing = callPackage ../development/python-modules/opentracing { };
+  h11 = callPackage ../development/python-modules/h11 { };
 
-  openidc-client = callPackage ../development/python-modules/openidc-client {};
+  h2 = callPackage ../development/python-modules/h2 { };
 
-  optuna = callPackage ../development/python-modules/optuna { };
+  h3 = callPackage ../development/python-modules/h3 { inherit (pkgs) h3; };
 
-  idna = callPackage ../development/python-modules/idna { };
+  h5netcdf = callPackage ../development/python-modules/h5netcdf { };
 
-  mahotas = callPackage ../development/python-modules/mahotas { };
+  h5py = callPackage ../development/python-modules/h5py { hdf5 = pkgs.hdf5; };
 
-  MDP = callPackage ../development/python-modules/mdp {};
+  h5py-mpi = self.h5py.override { hdf5 = pkgs.hdf5-mpi; };
 
-  minidb = callPackage ../development/python-modules/minidb { };
+  habanero = callPackage ../development/python-modules/habanero { };
 
-  miniupnpc = callPackage ../development/python-modules/miniupnpc {};
+  ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { };
 
-  mixpanel = callPackage ../development/python-modules/mixpanel { };
+  handout = callPackage ../development/python-modules/handout { };
 
-  mpyq = callPackage ../development/python-modules/mpyq { };
+  HAP-python = callPackage ../development/python-modules/HAP-python { };
 
-  mxnet = callPackage ../development/python-modules/mxnet { };
+  hass-nabucasa = callPackage ../development/python-modules/hass-nabucasa { };
 
-  parsy = callPackage ../development/python-modules/parsy { };
+  hawkauthlib = callPackage ../development/python-modules/hawkauthlib { };
 
-  portalocker = callPackage ../development/python-modules/portalocker { };
+  hbmqtt = callPackage ../development/python-modules/hbmqtt { };
 
-  portpicker = callPackage ../development/python-modules/portpicker { };
+  hcloud = callPackage ../development/python-modules/hcloud { };
 
-  pkginfo = callPackage ../development/python-modules/pkginfo { };
+  hcs_utils = callPackage ../development/python-modules/hcs_utils { };
 
-  pre-commit = callPackage ../development/python-modules/pre-commit { };
+  hdbscan = callPackage ../development/python-modules/hdbscan { };
 
-  pretend = callPackage ../development/python-modules/pretend { };
+  hdlparse = callPackage ../development/python-modules/hdlparse { };
 
-  detox = callPackage ../development/python-modules/detox { };
+  hdmedians = callPackage ../development/python-modules/hdmedians { };
 
-  pbkdf2 = callPackage ../development/python-modules/pbkdf2 { };
+  heapdict = callPackage ../development/python-modules/heapdict { };
 
-  bcrypt = callPackage ../development/python-modules/bcrypt { };
+  helpdev = callPackage ../development/python-modules/helpdev { };
 
-  cffi = callPackage ../development/python-modules/cffi { };
+  helper = callPackage ../development/python-modules/helper { };
 
-  pyavm = callPackage ../development/python-modules/pyavm { };
+  hepmc3 = toPythonModule (pkgs.hepmc3.override { inherit python; });
 
-  pycollada = callPackage ../development/python-modules/pycollada { };
+  hetzner = callPackage ../development/python-modules/hetzner { };
 
-  pycontracts = callPackage ../development/python-modules/pycontracts { };
+  heudiconv = callPackage ../development/python-modules/heudiconv { };
 
-  pycparser = callPackage ../development/python-modules/pycparser { };
+  hg-evolve = callPackage ../development/python-modules/hg-evolve { };
 
-  pydub = callPackage ../development/python-modules/pydub {};
+  hg-git = callPackage ../development/python-modules/hg-git { };
 
-  pyjade = callPackage ../development/python-modules/pyjade {};
+  hglib = callPackage ../development/python-modules/hglib { };
 
-  pyjet = callPackage ../development/python-modules/pyjet {};
+  hgsvn = callPackage ../development/python-modules/hgsvn { };
 
-  pyjks = callPackage ../development/python-modules/pyjks {};
+  hickle = callPackage ../development/python-modules/hickle { };
 
-  PyLD = callPackage ../development/python-modules/PyLD { };
+  hidapi = callPackage ../development/python-modules/hidapi { inherit (pkgs) udev libusb1; };
 
-  python-jose = callPackage ../development/python-modules/python-jose {};
+  hieroglyph = callPackage ../development/python-modules/hieroglyph { };
 
-  python-json-logger = callPackage ../development/python-modules/python-json-logger { };
+  hiredis = callPackage ../development/python-modules/hiredis { };
 
-  python-ly = callPackage ../development/python-modules/python-ly {};
+  hiro = callPackage ../development/python-modules/hiro { };
 
-  pyhcl = callPackage ../development/python-modules/pyhcl { };
+  hiyapyco = callPackage ../development/python-modules/hiyapyco { };
 
-  pytest = if isPy3k then self.pytest_5 else self.pytest_4;
+  hkdf = callPackage ../development/python-modules/hkdf { };
 
-  pytest_5 = callPackage ../development/python-modules/pytest {
-    # hypothesis tests require pytest that causes dependency cycle
-    hypothesis = self.hypothesis.override { doCheck = false; };
-  };
+  hmmlearn = callPackage ../development/python-modules/hmmlearn { };
 
-  pytest_4 = callPackage ../development/python-modules/pytest/4.nix {
-    # hypothesis tests require pytest that causes dependency cycle
-    hypothesis = self.hypothesis.override { doCheck = false; };
-  };
+  hocr-tools = callPackage ../development/python-modules/hocr-tools { };
 
-  pytest-helpers-namespace = callPackage ../development/python-modules/pytest-helpers-namespace { };
+  holidays = callPackage ../development/python-modules/holidays { };
 
-  pytest-httpbin = callPackage ../development/python-modules/pytest-httpbin { };
+  holoviews = callPackage ../development/python-modules/holoviews { };
 
-  pytest-asyncio = callPackage ../development/python-modules/pytest-asyncio { };
+  homeassistant-pyozw = callPackage ../development/python-modules/homeassistant-pyozw { };
 
-  pytest-annotate = callPackage ../development/python-modules/pytest-annotate { };
+  hoomd-blue = toPythonModule (callPackage ../development/python-modules/hoomd-blue { inherit python; });
 
-  pytest-ansible = callPackage ../development/python-modules/pytest-ansible { };
+  hopcroftkarp = callPackage ../development/python-modules/hopcroftkarp { };
 
-  pytest-aiohttp = callPackage ../development/python-modules/pytest-aiohttp { };
+  howdoi = callPackage ../development/python-modules/howdoi { };
 
-  pytest-arraydiff = callPackage ../development/python-modules/pytest-arraydiff { };
+  hpack = callPackage ../development/python-modules/hpack { };
 
-  pytest-astropy = callPackage ../development/python-modules/pytest-astropy { };
+  hsaudiotag3k = callPackage ../development/python-modules/hsaudiotag3k { };
 
-  pytest-astropy-header = callPackage ../development/python-modules/pytest-astropy-header { };
+  hsaudiotag = callPackage ../development/python-modules/hsaudiotag { };
 
-  pytest-filter-subpackage = callPackage ../development/python-modules/pytest-filter-subpackage { };
+  hstspreload = callPackage ../development/python-modules/hstspreload { };
 
-  pytest-benchmark = callPackage ../development/python-modules/pytest-benchmark { };
+  html2text = if isPy3k then
+    callPackage ../development/python-modules/html2text { }
+  else
+    callPackage ../development/python-modules/html2text/2018.nix { };
 
-  pytestcache = callPackage ../development/python-modules/pytestcache { };
+  html5lib = callPackage ../development/python-modules/html5lib { };
 
-  pytest-catchlog = callPackage ../development/python-modules/pytest-catchlog { };
+  html5-parser = callPackage ../development/python-modules/html5-parser { inherit (pkgs) pkgconfig; };
 
-  pytest-cram = callPackage ../development/python-modules/pytest-cram { };
+  htmllaundry = callPackage ../development/python-modules/htmllaundry { };
 
-  pytest-datadir = callPackage ../development/python-modules/pytest-datadir { };
+  htmlmin = callPackage ../development/python-modules/htmlmin { };
 
-  pytest-datafiles = callPackage ../development/python-modules/pytest-datafiles { };
+  html-sanitizer = callPackage ../development/python-modules/html-sanitizer { };
 
-  pytest-dependency = callPackage ../development/python-modules/pytest-dependency { };
+  htmltreediff = callPackage ../development/python-modules/htmltreediff { };
 
-  pytest-django = callPackage ../development/python-modules/pytest-django { };
+  HTSeq = callPackage ../development/python-modules/HTSeq { };
 
-  pytest-doctestplus = callPackage ../development/python-modules/pytest-doctestplus { };
+  httmock = callPackage ../development/python-modules/httmock { };
 
-  pytest-fixture-config = callPackage ../development/python-modules/pytest-fixture-config { };
+  httpauth = callPackage ../development/python-modules/httpauth { };
 
-  pytest-forked = callPackage ../development/python-modules/pytest-forked { };
+  httpbin = callPackage ../development/python-modules/httpbin { };
 
-  pytest-html = callPackage ../development/python-modules/pytest-html { };
+  httpcore = callPackage ../development/python-modules/httpcore { };
 
-  pytest-metadata = callPackage ../development/python-modules/pytest-metadata { };
+  http-ece = callPackage ../development/python-modules/http-ece { };
 
-  pytest-rerunfailures = callPackage ../development/python-modules/pytest-rerunfailures { };
+  httplib2 = callPackage ../development/python-modules/httplib2 { };
 
-  pytest-relaxed = callPackage ../development/python-modules/pytest-relaxed { };
+  httpretty = if isPy3k then
+    callPackage ../development/python-modules/httpretty { }
+  else
+    callPackage ../development/python-modules/httpretty/0.nix { };
 
-  pytest-remotedata = callPackage ../development/python-modules/pytest-remotedata { };
+  httpserver = callPackage ../development/python-modules/httpserver { };
 
-  pytest-sanic = callPackage ../development/python-modules/pytest-sanic { };
+  httpsig = callPackage ../development/python-modules/httpsig { };
 
-  pytest-flake8 = callPackage ../development/python-modules/pytest-flake8 { };
+  http_signature = callPackage ../development/python-modules/http_signature { };
 
-  pytest-flakes = callPackage ../development/python-modules/pytest-flakes { };
+  httptools = callPackage ../development/python-modules/httptools { };
 
-  pytest-isort = callPackage ../development/python-modules/pytest-isort { };
+  httpx = callPackage ../development/python-modules/httpx { };
 
-  pytest-lazy-fixture = callPackage ../development/python-modules/pytest-lazy-fixture { };
+  huey = callPackage ../development/python-modules/huey { };
 
-  pytest-mpl = callPackage ../development/python-modules/pytest-mpl { };
+  hug = callPackage ../development/python-modules/hug { };
 
-  pytest-mock = if isPy3k then
-    callPackage ../development/python-modules/pytest-mock { }
-  else
-    callPackage ../development/python-modules/pytest-mock/2.nix { };
+  humanfriendly = callPackage ../development/python-modules/humanfriendly { };
 
-  pytest-openfiles = callPackage ../development/python-modules/pytest-openfiles { };
+  humanize = callPackage ../development/python-modules/humanize { };
 
-  pytest-timeout = callPackage ../development/python-modules/pytest-timeout { };
+  hupper = callPackage ../development/python-modules/hupper { };
 
-  pytest-warnings = callPackage ../development/python-modules/pytest-warnings { };
+  hvac = callPackage ../development/python-modules/hvac { };
 
-  pytest-watch = callPackage ../development/python-modules/pytest-watch { };
+  hvplot = callPackage ../development/python-modules/hvplot { };
 
-  pytestpep8 = callPackage ../development/python-modules/pytest-pep8 { };
+  hwi = callPackage ../development/python-modules/hwi { };
 
-  pytest-pep257 = callPackage ../development/python-modules/pytest-pep257 { };
+  hydra = callPackage ../development/python-modules/hydra { };
 
-  pytest-raisesregexp = callPackage ../development/python-modules/pytest-raisesregexp { };
+  hydra-check = callPackage ../development/python-modules/hydra-check { };
 
-  pytest-random-order = callPackage ../development/python-modules/pytest-random-order { };
+  hypchat = callPackage ../development/python-modules/hypchat { };
 
-  pytest-repeat = callPackage ../development/python-modules/pytest-repeat { };
+  hyperframe = callPackage ../development/python-modules/hyperframe { };
 
-  pytestrunner = callPackage ../development/python-modules/pytestrunner { };
+  hyperkitty = callPackage ../servers/mail/mailman/hyperkitty.nix { };
 
-  pytestquickcheck = callPackage ../development/python-modules/pytest-quickcheck { };
+  hyperlink = callPackage ../development/python-modules/hyperlink { };
 
-  pytest-server-fixtures = callPackage ../development/python-modules/pytest-server-fixtures { };
+  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.
 
-  pytest-services = callPackage ../development/python-modules/pytest-services { };
+  hypothesis-auto = callPackage ../development/python-modules/hypothesis-auto { };
 
-  pytest-shutil = callPackage ../development/python-modules/pytest-shutil { };
+  hypothesis = if isPy3k then callPackage ../development/python-modules/hypothesis { } else self.hypothesis_4;
 
-  pytest-socket = callPackage ../development/python-modules/pytest-socket { };
+  i3ipc = callPackage ../development/python-modules/i3ipc { };
 
-  pytestcov = callPackage ../development/python-modules/pytest-cov { };
+  i3-py = callPackage ../development/python-modules/i3-py { };
 
-  pytest-expect = callPackage ../development/python-modules/pytest-expect { };
+  iapws = callPackage ../development/python-modules/iapws { };
 
-  pytest-virtualenv = callPackage ../development/python-modules/pytest-virtualenv { };
+  ibis = callPackage ../development/python-modules/ibis { };
 
-  pytest_xdist = callPackage ../development/python-modules/pytest-xdist { };
+  ibis-framework = callPackage ../development/python-modules/ibis-framework { };
 
-  pytest-localserver = callPackage ../development/python-modules/pytest-localserver { };
+  icalendar = callPackage ../development/python-modules/icalendar { };
 
-  pytest-subtesthack = callPackage ../development/python-modules/pytest-subtesthack { };
+  icecream = callPackage ../development/python-modules/icecream { };
 
-  pytest-sugar = callPackage ../development/python-modules/pytest-sugar { };
+  ics = callPackage ../development/python-modules/ics { };
 
-  tinycss = callPackage ../development/python-modules/tinycss { };
+  identify = callPackage ../development/python-modules/identify { };
 
-  tinycss2 = callPackage ../development/python-modules/tinycss2 { };
+  idna = callPackage ../development/python-modules/idna { };
 
-  cssselect = callPackage ../development/python-modules/cssselect { };
+  idna-ssl = callPackage ../development/python-modules/idna-ssl { };
 
-  cssselect2 = callPackage ../development/python-modules/cssselect2 { };
+  ifaddr = callPackage ../development/python-modules/ifaddr { };
 
-  cssutils = callPackage ../development/python-modules/cssutils { };
+  ifconfig-parser = callPackage ../development/python-modules/ifconfig-parser { };
 
-  css-parser = callPackage ../development/python-modules/css-parser { };
+  ignite = callPackage ../development/python-modules/ignite { };
 
-  darcsver = callPackage ../development/python-modules/darcsver { };
+  ihatemoney = callPackage ../development/python-modules/ihatemoney { };
 
-  dask = callPackage ../development/python-modules/dask { };
+  ijson = callPackage ../development/python-modules/ijson { };
 
-  dask-glm = callPackage ../development/python-modules/dask-glm { };
+  imagecodecs-lite = disabledIf (!isPy3k) (callPackage ../development/python-modules/imagecodecs-lite { });
 
-  dask-image = callPackage ../development/python-modules/dask-image { };
+  imagecorruptions = callPackage ../development/python-modules/imagecorruptions { };
 
-  dask-jobqueue = callPackage ../development/python-modules/dask-jobqueue { };
+  imageio = callPackage ../development/python-modules/imageio { };
 
-  dask-ml = callPackage ../development/python-modules/dask-ml { };
+  imageio-ffmpeg = callPackage ../development/python-modules/imageio-ffmpeg { };
 
-  dask-mpi = callPackage ../development/python-modules/dask-mpi { };
+  image-match = callPackage ../development/python-modules/image-match { };
 
-  dask-xgboost = callPackage ../development/python-modules/dask-xgboost { };
+  imagesize = callPackage ../development/python-modules/imagesize { };
 
-  datrie = callPackage ../development/python-modules/datrie { };
+  IMAPClient = callPackage ../development/python-modules/imapclient { };
 
-  heapdict = callPackage ../development/python-modules/heapdict { };
+  imaplib2 = callPackage ../development/python-modules/imaplib2 { };
 
-  zict = callPackage ../development/python-modules/zict { };
+  imbalanced-learn = if isPy27 then
+    callPackage ../development/python-modules/imbalanced-learn/0.4.nix { }
+  else
+    callPackage ../development/python-modules/imbalanced-learn { };
 
-  zigpy = callPackage ../development/python-modules/zigpy { };
+  img2pdf = callPackage ../development/python-modules/img2pdf { };
 
-  zigpy-deconz = callPackage ../development/python-modules/zigpy-deconz { };
+  imgaug = callPackage ../development/python-modules/imgaug { };
 
-  digital-ocean = callPackage ../development/python-modules/digitalocean { };
+  immutables = callPackage ../development/python-modules/immutables { };
 
-  digi-xbee = callPackage ../development/python-modules/digi-xbee { };
+  impacket = callPackage ../development/python-modules/impacket { };
 
-  leather = callPackage ../development/python-modules/leather { };
+  importlib-metadata = callPackage ../development/python-modules/importlib-metadata { };
 
-  libais = callPackage ../development/python-modules/libais { };
+  importlib-resources = callPackage ../development/python-modules/importlib-resources { };
 
-  libevdev = callPackage ../development/python-modules/libevdev { };
+  importmagic = callPackage ../development/python-modules/importmagic { };
 
-  libfdt = toPythonModule (pkgs.dtc.override {
-    inherit python;
-    pythonSupport = true;
-  });
+  imread =
+    callPackage ../development/python-modules/imread { inherit (pkgs) pkgconfig libjpeg libpng libtiff libwebp; };
 
-  libtmux = callPackage ../development/python-modules/libtmux { };
+  imutils = callPackage ../development/python-modules/imutils { };
 
-  libusb1 = callPackage ../development/python-modules/libusb1 { inherit (pkgs) libusb1; };
+  incremental = callPackage ../development/python-modules/incremental { };
 
-  linuxfd = callPackage ../development/python-modules/linuxfd { };
+  inflect = callPackage ../development/python-modules/inflect { };
 
-  locket = callPackage ../development/python-modules/locket { };
+  inflection = callPackage ../development/python-modules/inflection { };
 
-  loo-py = callPackage ../development/python-modules/loo-py { };
+  influxdb = callPackage ../development/python-modules/influxdb { };
 
-  tblib = callPackage ../development/python-modules/tblib { };
+  influxdb-client = callPackage ../development/python-modules/influxdb-client { };
 
-  s3fs = callPackage ../development/python-modules/s3fs { };
+  influxgraph = callPackage ../development/python-modules/influxgraph { };
 
-  datashape = callPackage ../development/python-modules/datashape { };
+  infoqscraper = callPackage ../development/python-modules/infoqscraper { };
 
-  requests-cache = callPackage ../development/python-modules/requests-cache { };
+  iniconfig = callPackage ../development/python-modules/iniconfig { };
 
-  requests-file = callPackage ../development/python-modules/requests-file { };
+  inifile = callPackage ../development/python-modules/inifile { };
 
-  requests-kerberos = callPackage ../development/python-modules/requests-kerberos { };
+  iniparse = callPackage ../development/python-modules/iniparse { };
 
-  requests-unixsocket = callPackage ../development/python-modules/requests-unixsocket {};
+  inotify-simple = callPackage ../development/python-modules/inotify-simple { };
 
-  requests-aws4auth = callPackage ../development/python-modules/requests-aws4auth { };
+  inquirer = callPackage ../development/python-modules/inquirer { };
 
-  howdoi = callPackage ../development/python-modules/howdoi {};
+  intake = callPackage ../development/python-modules/intake { };
 
-  jdatetime = callPackage ../development/python-modules/jdatetime {};
+  intelhex = callPackage ../development/python-modules/intelhex { };
 
-  daphne = callPackage ../development/python-modules/daphne { };
+  internetarchive = callPackage ../development/python-modules/internetarchive { };
 
-  dash = callPackage ../development/python-modules/dash { };
+  interruptingcow = callPackage ../development/python-modules/interruptingcow { };
 
-  dash-core-components = callPackage ../development/python-modules/dash-core-components { };
+  intervaltree = callPackage ../development/python-modules/intervaltree { };
 
-  dash-html-components = callPackage ../development/python-modules/dash-html-components { };
+  intreehooks = callPackage ../development/python-modules/intreehooks { };
 
-  dash-renderer = callPackage ../development/python-modules/dash-renderer { };
+  invoke = callPackage ../development/python-modules/invoke { };
 
-  dash-table = callPackage ../development/python-modules/dash-table { };
+  iocapture = callPackage ../development/python-modules/iocapture { };
 
-  dateparser = callPackage ../development/python-modules/dateparser { };
+  iowait = callPackage ../development/python-modules/iowait { };
 
-  # Actual name of package
-  python-dateutil = callPackage ../development/python-modules/dateutil { };
-  # Alias that we should deprecate
-  dateutil = self.python-dateutil;
+  ipaddr = callPackage ../development/python-modules/ipaddr { };
 
-  decorator = callPackage ../development/python-modules/decorator { };
+  ipaddress = callPackage ../development/python-modules/ipaddress { };
 
-  deform = callPackage ../development/python-modules/deform { };
+  ipdb = callPackage ../development/python-modules/ipdb { };
 
-  demjson = callPackage ../development/python-modules/demjson { };
+  ipdbplugin = callPackage ../development/python-modules/ipdbplugin { };
 
-  deprecated = callPackage ../development/python-modules/deprecated { };
+  ipfsapi = callPackage ../development/python-modules/ipfsapi { };
 
-  deprecation = callPackage ../development/python-modules/deprecation { };
+  iptools = callPackage ../development/python-modules/iptools { };
 
-  derpconf = callPackage ../development/python-modules/derpconf { };
+  ipy = callPackage ../development/python-modules/IPy { };
 
-  deskcon = callPackage ../development/python-modules/deskcon { };
+  ipydatawidgets = callPackage ../development/python-modules/ipydatawidgets { };
 
-  dill = callPackage ../development/python-modules/dill { };
+  ipykernel = if pythonOlder "3.4" then
+    callPackage ../development/python-modules/ipykernel/4.nix { }
+  else
+    callPackage ../development/python-modules/ipykernel { };
 
-  discogs_client = callPackage ../development/python-modules/discogs_client { };
+  ipympl = callPackage ../development/python-modules/ipympl { };
 
-  dlx = callPackage ../development/python-modules/dlx { };
+  ipyparallel = callPackage ../development/python-modules/ipyparallel { };
 
-  dmenu-python = callPackage ../development/python-modules/dmenu { };
+  ipython_genutils = callPackage ../development/python-modules/ipython_genutils { };
 
-  dnslib = callPackage ../development/python-modules/dnslib { };
+  ipython = if isPy27 then
+    callPackage ../development/python-modules/ipython/5.nix { }
+  else
+    callPackage ../development/python-modules/ipython { };
 
-  dnspython = callPackage ../development/python-modules/dnspython { };
-  dns = self.dnspython; # Alias for compatibility, 2017-12-10
+  ipyvue = callPackage ../development/python-modules/ipyvue { };
 
-  docker = callPackage ../development/python-modules/docker {};
+  ipyvuetify = callPackage ../development/python-modules/ipyvuetify { };
 
-  dockerfile-parse = callPackage ../development/python-modules/dockerfile-parse {};
+  ipywidgets = callPackage ../development/python-modules/ipywidgets { };
 
-  docker-py = disabledIf isPy27 (callPackage ../development/python-modules/docker-py {});
+  irc = callPackage ../development/python-modules/irc { };
 
-  dockerpty = callPackage ../development/python-modules/dockerpty {};
+  isbnlib = callPackage ../development/python-modules/isbnlib { };
 
-  docker_pycreds = callPackage ../development/python-modules/docker-pycreds {};
+  islpy = callPackage ../development/python-modules/islpy { };
 
-  docloud = callPackage ../development/python-modules/docloud { };
+  iso3166 = callPackage ../development/python-modules/iso3166 { };
 
-  docplex = callPackage ../development/python-modules/docplex { };
+  iso-639 = callPackage ../development/python-modules/iso-639 { };
 
-  docopt = callPackage ../development/python-modules/docopt { };
+  iso8601 = callPackage ../development/python-modules/iso8601 { };
 
-  doctest-ignore-unicode = callPackage ../development/python-modules/doctest-ignore-unicode { };
+  isodate = callPackage ../development/python-modules/isodate { };
 
-  dogpile_cache = callPackage ../development/python-modules/dogpile.cache { };
+  isort = callPackage ../development/python-modules/isort { };
 
-  dogpile_core = callPackage ../development/python-modules/dogpile.core { };
+  isoweek = callPackage ../development/python-modules/isoweek { };
 
-  dopy = callPackage ../development/python-modules/dopy { };
+  itanium_demangler = callPackage ../development/python-modules/itanium_demangler { };
 
-  dpath = callPackage ../development/python-modules/dpath { };
+  itemadapter = callPackage ../development/python-modules/itemadapter { };
 
-  dparse = callPackage ../development/python-modules/dparse { };
+  itemloaders = callPackage ../development/python-modules/itemloaders { };
 
-  dpkt = callPackage ../development/python-modules/dpkt {};
+  iterm2 = callPackage ../development/python-modules/iterm2 { };
 
-  urllib3 = callPackage ../development/python-modules/urllib3 {};
+  itsdangerous = callPackage ../development/python-modules/itsdangerous { };
 
-  varint =  callPackage ../development/python-modules/varint {};
+  itypes = callPackage ../development/python-modules/itypes { };
 
-  drf-yasg = callPackage ../development/python-modules/drf-yasg { };
+  j2cli = callPackage ../development/python-modules/j2cli { };
 
-  dropbox = callPackage ../development/python-modules/dropbox {};
+  jabberbot = callPackage ../development/python-modules/jabberbot { };
 
-  drms = callPackage ../development/python-modules/drms { };
+  janus = callPackage ../development/python-modules/janus { };
 
-  ds4drv = callPackage ../development/python-modules/ds4drv {
-    inherit (pkgs) fetchFromGitHub bluez;
-  };
+  jaraco_classes = callPackage ../development/python-modules/jaraco_classes { };
 
-  dyn = callPackage ../development/python-modules/dyn { };
+  jaraco_collections = callPackage ../development/python-modules/jaraco_collections { };
 
-  easydict = callPackage ../development/python-modules/easydict { };
+  jaraco_functools = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/jaraco_functools/2.nix { }
+  else
+    callPackage ../development/python-modules/jaraco_functools { };
 
-  easygui = callPackage ../development/python-modules/easygui { };
+  jaraco_itertools = callPackage ../development/python-modules/jaraco_itertools { };
 
-  EasyProcess = callPackage ../development/python-modules/easyprocess { };
+  jaraco_logging = callPackage ../development/python-modules/jaraco_logging { };
 
-  easy-thumbnails = callPackage ../development/python-modules/easy-thumbnails { };
+  jaraco_stream = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/jaraco_stream/2.nix { }
+  else
+    callPackage ../development/python-modules/jaraco_stream { };
 
-  eccodes = toPythonModule (pkgs.eccodes.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  jaraco_text = callPackage ../development/python-modules/jaraco_text { };
 
-  edward = callPackage ../development/python-modules/edward { };
+  javaobj-py3 = callPackage ../development/python-modules/javaobj-py3 { };
 
-  elasticsearch = callPackage ../development/python-modules/elasticsearch { };
+  javaproperties = callPackage ../development/python-modules/javaproperties { };
 
-  elasticsearch-dsl = callPackage ../development/python-modules/elasticsearch-dsl { };
-  # alias
-  elasticsearchdsl = self.elasticsearch-dsl;
+  JayDeBeApi = callPackage ../development/python-modules/JayDeBeApi { };
 
-  elementpath = callPackage ../development/python-modules/elementpath { };
+  jc = callPackage ../development/python-modules/jc { };
 
-  entrypoints = callPackage ../development/python-modules/entrypoints { };
+  jdatetime = callPackage ../development/python-modules/jdatetime { };
 
-  envisage = callPackage ../development/python-modules/envisage { };
+  jdcal = callPackage ../development/python-modules/jdcal { };
 
-  enzyme = callPackage ../development/python-modules/enzyme {};
+  jedi = callPackage ../development/python-modules/jedi { };
 
-  escapism = callPackage ../development/python-modules/escapism { };
+  jeepney = callPackage ../development/python-modules/jeepney { };
 
-  etcd = callPackage ../development/python-modules/etcd { };
+  jellyfin-apiclient-python = callPackage ../development/python-modules/jellyfin-apiclient-python { };
 
-  evdev = callPackage ../development/python-modules/evdev {};
+  jellyfish = callPackage ../development/python-modules/jellyfish { };
 
-  eve = callPackage ../development/python-modules/eve {};
+  jenkinsapi = callPackage ../development/python-modules/jenkinsapi { };
 
-  eventlib = callPackage ../development/python-modules/eventlib { };
+  jenkins-job-builder = callPackage ../development/python-modules/jenkins-job-builder { };
 
-  events = callPackage ../development/python-modules/events { };
+  jieba = callPackage ../development/python-modules/jieba { };
 
-  eyeD3 = callPackage ../development/python-modules/eyed3 { };
+  jinja2 = callPackage ../development/python-modules/jinja2 { };
 
-  execnet = callPackage ../development/python-modules/execnet { };
+  jinja2_pluralize = callPackage ../development/python-modules/jinja2_pluralize { };
 
-  executor = callPackage ../development/python-modules/executor { };
+  jinja2_time = callPackage ../development/python-modules/jinja2_time { };
 
-  ezdxf = callPackage ../development/python-modules/ezdxf {};
+  jira = callPackage ../development/python-modules/jira { };
 
-  facebook-sdk = callPackage ../development/python-modules/facebook-sdk { };
+  jmespath = callPackage ../development/python-modules/jmespath { };
 
-  face_recognition = callPackage ../development/python-modules/face_recognition { };
+  joblib = callPackage ../development/python-modules/joblib { };
 
-  face_recognition_models = callPackage ../development/python-modules/face_recognition_models { };
+  josepy = callPackage ../development/python-modules/josepy { };
 
-  faker = callPackage ../development/python-modules/faker { };
+  journalwatch = callPackage ../tools/system/journalwatch { inherit (self) systemd pytest; };
 
-  fake_factory = callPackage ../development/python-modules/fake_factory { };
+  jpylyzer = callPackage ../development/python-modules/jpylyzer { };
 
-  fake-useragent = callPackage ../development/python-modules/fake-useragent { };
+  JPype1 = callPackage ../development/python-modules/JPype1 { };
 
-  factory_boy = callPackage ../development/python-modules/factory_boy { };
+  jq = callPackage ../development/python-modules/jq { inherit (pkgs) jq; };
 
-  Fabric = callPackage ../development/python-modules/Fabric { };
+  jsbeautifier = callPackage ../development/python-modules/jsbeautifier { };
 
-  fastdtw = callPackage ../development/python-modules/fastdtw { };
+  jsmin = callPackage ../development/python-modules/jsmin { };
 
-  fastjsonschema = callPackage ../development/python-modules/fastjsonschema { };
+  jsondate = callPackage ../development/python-modules/jsondate { };
 
-  faulthandler = if ! isPy3k
-    then callPackage ../development/python-modules/faulthandler {}
-    else throw "faulthandler is built into ${python.executable}";
+  jsondiff = callPackage ../development/python-modules/jsondiff { };
 
-  fb-re2 = callPackage ../development/python-modules/fb-re2 { };
+  jsonlines = callPackage ../development/python-modules/jsonlines { };
 
-  ffmpeg-python = callPackage ../development/python-modules/ffmpeg-python { };
+  jsonmerge = callPackage ../development/python-modules/jsonmerge { };
 
-  fenics = callPackage ../development/libraries/science/math/fenics {
-    inherit (pkgs) pkg-config;
-    mpi = pkgs.openmpi;
-    pytest = self.pytest_4;
-  };
+  json-merge-patch = callPackage ../development/python-modules/json-merge-patch { };
 
-  filetype = callPackage ../development/python-modules/filetype { };
+  jsonnet = buildPythonPackage { inherit (pkgs.jsonnet) name src; };
 
-  flammkuchen = callPackage ../development/python-modules/flammkuchen { };
+  jsonpatch = callPackage ../development/python-modules/jsonpatch { };
 
-  flexmock = callPackage ../development/python-modules/flexmock { };
+  jsonpath = callPackage ../development/python-modules/jsonpath { };
 
-  flit = callPackage ../development/python-modules/flit { };
+  jsonpath_rw = callPackage ../development/python-modules/jsonpath_rw { };
 
-  flit-core = callPackage ../development/python-modules/flit-core { };
+  jsonpickle = callPackage ../development/python-modules/jsonpickle { };
 
-  flowlogs_reader = callPackage ../development/python-modules/flowlogs_reader { };
+  jsonpointer = callPackage ../development/python-modules/jsonpointer { };
 
-  fluent-logger = callPackage ../development/python-modules/fluent-logger {};
+  jsonref = callPackage ../development/python-modules/jsonref { };
 
-  flux-led = callPackage ../development/python-modules/flux-led { };
+  jsonrpc-async = callPackage ../development/python-modules/jsonrpc-async { };
 
-  python-forecastio = callPackage ../development/python-modules/python-forecastio { };
+  jsonrpc-base = callPackage ../development/python-modules/jsonrpc-base { };
 
-  fpdf = callPackage ../development/python-modules/fpdf { };
+  jsonrpclib = callPackage ../development/python-modules/jsonrpclib { };
 
-  fpylll = callPackage ../development/python-modules/fpylll { };
+  jsonrpclib-pelix = callPackage ../development/python-modules/jsonrpclib-pelix { };
 
-  fritzconnection = callPackage ../development/python-modules/fritzconnection { };
+  jsonrpc-websocket = callPackage ../development/python-modules/jsonrpc-websocket { };
 
-  frozendict = callPackage ../development/python-modules/frozendict { };
+  jsonschema = callPackage ../development/python-modules/jsonschema { };
 
-  ftputil = callPackage ../development/python-modules/ftputil { };
+  jsonwatch = callPackage ../development/python-modules/jsonwatch { };
 
-  fudge = callPackage ../development/python-modules/fudge { };
+  jug = callPackage ../development/python-modules/jug { };
 
-  funcparserlib = callPackage ../development/python-modules/funcparserlib { };
+  junitparser = callPackage ../development/python-modules/junitparser { };
 
-  fastcache = callPackage ../development/python-modules/fastcache { };
+  junit-xml = callPackage ../development/python-modules/junit-xml { };
 
-  fastentrypoints = callPackage ../development/python-modules/fastentrypoints { };
+  junos-eznc = callPackage ../development/python-modules/junos-eznc { };
 
-  functools32 = callPackage ../development/python-modules/functools32 { };
+  jupyter = callPackage ../development/python-modules/jupyter { };
 
-  future-fstrings = callPackage ../development/python-modules/future-fstrings { };
+  jupyter-c-kernel = callPackage ../development/python-modules/jupyter-c-kernel { };
 
-  fx2 = callPackage ../development/python-modules/fx2 { };
+  jupyter_client = if isPy3k then
+    callPackage ../development/python-modules/jupyter_client { }
+  else
+    callPackage ../development/python-modules/jupyter_client/5.nix { };
 
-  # gaia isn't supported with python3 and it's not available from pypi
-  gaia = disabledIf (isPyPy || isPy3k) (toPythonModule (pkgs.gaia.override {
-    pythonPackages = self;
-    pythonSupport = true;
-  }));
+  jupyter_console = if pythonOlder "3.5" then
+    callPackage ../development/python-modules/jupyter_console/5.nix { }
+  else
+    callPackage ../development/python-modules/jupyter_console { };
 
-  gateone = callPackage ../development/python-modules/gateone { };
+  jupyter_core = callPackage ../development/python-modules/jupyter_core { };
 
-  GeoIP = callPackage ../development/python-modules/GeoIP { };
+  jupyterhub = callPackage ../development/python-modules/jupyterhub { };
 
-  glasgow = callPackage ../development/python-modules/glasgow { };
+  jupyterhub-ldapauthenticator = callPackage ../development/python-modules/jupyterhub-ldapauthenticator { };
 
-  gmpy = callPackage ../development/python-modules/gmpy { };
+  jupyterhub-systemdspawner =
+    callPackage ../development/python-modules/jupyterhub-systemdspawner { inherit (pkgs) bash; };
 
-  gmpy2 = callPackage ../development/python-modules/gmpy2 { };
+  jupyterhub-tmpauthenticator = callPackage ../development/python-modules/jupyterhub-tmpauthenticator { };
 
-  gmusicapi = callPackage ../development/python-modules/gmusicapi { };
+  jupyterlab = callPackage ../development/python-modules/jupyterlab { };
 
-  gnureadline = callPackage ../development/python-modules/gnureadline { };
+  jupyterlab-git = callPackage ../development/python-modules/jupyterlab-git { };
 
-  gnutls = callPackage ../development/python-modules/gnutls { };
+  jupyterlab_launcher = callPackage ../development/python-modules/jupyterlab_launcher { };
 
-  gpy = callPackage ../development/python-modules/gpy { };
+  jupyterlab_server = callPackage ../development/python-modules/jupyterlab_server { };
 
-  gpyopt = callPackage ../development/python-modules/gpyopt { };
+  jupyter-repo2docker = callPackage ../development/python-modules/jupyter-repo2docker { pkgs-docker = pkgs.docker; };
 
-  gitdb = callPackage ../development/python-modules/gitdb { };
+  jupyter-sphinx = callPackage ../development/python-modules/jupyter-sphinx { };
 
-  gitdb2 = throw "gitdb2 has been deprecated, use gitdb instead."; # added 2020-03-14
+  jupyter-telemetry = callPackage ../development/python-modules/jupyter-telemetry { };
 
-  GitPython = callPackage ../development/python-modules/GitPython { };
+  jupytext = callPackage ../development/python-modules/jupytext { };
 
-  git-annex-adapter = callPackage ../development/python-modules/git-annex-adapter {
-    inherit (pkgs.gitAndTools) git-annex;
-  };
+  jwcrypto = callPackage ../development/python-modules/jwcrypto { };
 
-  python-gitlab = callPackage ../development/python-modules/python-gitlab { };
+  k5test = callPackage ../development/python-modules/k5test { inherit (pkgs) krb5Full findutils which; };
 
-  google-compute-engine = callPackage ../tools/virtualization/google-compute-engine { };
+  kaa-base = callPackage ../development/python-modules/kaa-base { };
 
-  google-music = callPackage ../development/python-modules/google-music { };
+  kaa-metadata = callPackage ../development/python-modules/kaa-metadata { };
 
-  google-music-proto = callPackage ../development/python-modules/google-music-proto { };
+  kafka-python = callPackage ../development/python-modules/kafka-python { };
 
-  google-music-utils = callPackage ../development/python-modules/google-music-utils { };
+  kaggle = callPackage ../development/python-modules/kaggle { };
 
-  google-pasta = callPackage ../development/python-modules/google-pasta { };
+  kaitaistruct = callPackage ../development/python-modules/kaitaistruct { };
 
-  googletrans = callPackage ../development/python-modules/googletrans { };
+  Kajiki = callPackage ../development/python-modules/kajiki { };
 
-  gdown = callPackage ../development/python-modules/gdown { };
+  kaptan = callPackage ../development/python-modules/kaptan { };
 
-  gpapi = callPackage ../development/python-modules/gpapi { };
-  gplaycli = callPackage ../development/python-modules/gplaycli { };
+  kazoo = callPackage ../development/python-modules/kazoo { };
 
-  gpsoauth = callPackage ../development/python-modules/gpsoauth { };
+  kconfiglib = callPackage ../development/python-modules/kconfiglib { };
 
-  gpxpy = callPackage ../development/python-modules/gpxpy { };
+  keep = callPackage ../development/python-modules/keep { };
 
-  grip = callPackage ../development/python-modules/grip { };
+  keepalive = callPackage ../development/python-modules/keepalive { };
 
-  gst-python = callPackage ../development/python-modules/gst-python {
-    inherit (pkgs) meson pkgconfig;
-    gst-plugins-base = pkgs.gst_all_1.gst-plugins-base;
-  };
+  keepkey_agent = callPackage ../development/python-modules/keepkey_agent { };
 
-  gtimelog = callPackage ../development/python-modules/gtimelog { };
+  keepkey = callPackage ../development/python-modules/keepkey { };
 
-  gtts = callPackage ../development/python-modules/gtts { };
+  keras-applications = callPackage ../development/python-modules/keras-applications { };
 
-  gurobipy = if stdenv.hostPlatform.system == "x86_64-darwin"
-  then 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 throw "gurobipy not yet supported on ${stdenv.hostPlatform.system}";
+  Keras = callPackage ../development/python-modules/keras { };
 
-  hass-nabucasa = callPackage ../development/python-modules/hass-nabucasa { };
+  keras-preprocessing = callPackage ../development/python-modules/keras-preprocessing { };
 
-  hbmqtt = callPackage ../development/python-modules/hbmqtt { };
+  kerberos = callPackage ../development/python-modules/kerberos { inherit (pkgs) kerberos; };
 
-  helpdev = callPackage ../development/python-modules/helpdev { };
+  keyring = if isPy3k then
+    callPackage ../development/python-modules/keyring { }
+  else
+    callPackage ../development/python-modules/keyring/2.nix { };
 
-  heudiconv = callPackage ../development/python-modules/heudiconv { };
+  keyrings-alt = callPackage ../development/python-modules/keyrings-alt { };
 
-  hickle = callPackage ../development/python-modules/hickle { };
+  keyutils = callPackage ../development/python-modules/keyutils { inherit (pkgs) keyutils; };
 
-  hiro = callPackage ../development/python-modules/hiro {};
+  kicad = disabledIf isPy27 (toPythonModule (pkgs.kicad.override { python3 = python; }).src);
 
-  hglib = callPackage ../development/python-modules/hglib {};
+  kinparse = callPackage ../development/python-modules/kinparse { };
 
-  huey = callPackage ../development/python-modules/huey { };
+  kitchen = callPackage ../development/python-modules/kitchen { };
 
-  humanize = callPackage ../development/python-modules/humanize { };
+  kiwisolver = if isPy3k then
+    callPackage ../development/python-modules/kiwisolver { }
+  else
+    callPackage ../development/python-modules/kiwisolver/1_1.nix { };
 
-  humanfriendly = callPackage ../development/python-modules/humanfriendly { };
+  klaus = callPackage ../development/python-modules/klaus { };
 
-  hupper = callPackage ../development/python-modules/hupper {};
+  klein = callPackage ../development/python-modules/klein { };
 
-  hsaudiotag = callPackage ../development/python-modules/hsaudiotag { };
+  kmapper = callPackage ../development/python-modules/kmapper { };
 
-  hsaudiotag3k = callPackage ../development/python-modules/hsaudiotag3k { };
+  kmsxx = toPythonModule ((callPackage ../development/libraries/kmsxx {
+    inherit (pkgs.kmsxx) stdenv;
+    inherit (pkgs) pkgconfig;
+    withPython = true;
+  }).overrideAttrs (oldAttrs: { name = "${python.libPrefix}-${pkgs.kmsxx.name}"; }));
 
-  hstspreload = callPackage ../development/python-modules/hstspreload { };
+  knack = callPackage ../development/python-modules/knack { };
 
-  htmlmin = callPackage ../development/python-modules/htmlmin {};
+  koji = callPackage ../development/python-modules/koji { };
 
-  httpauth = callPackage ../development/python-modules/httpauth { };
+  kombu = callPackage ../development/python-modules/kombu { };
 
-  httpx = callPackage ../development/python-modules/httpx { };
+  konfig = callPackage ../development/python-modules/konfig { };
 
-  idna-ssl = callPackage ../development/python-modules/idna-ssl { };
+  kubernetes = callPackage ../development/python-modules/kubernetes { };
 
-  identify = callPackage ../development/python-modules/identify { };
+  labelbox = callPackage ../development/python-modules/labelbox { };
 
-  ijson = callPackage ../development/python-modules/ijson {};
+  lammps-cython = callPackage ../development/python-modules/lammps-cython { mpi = pkgs.openmpi; };
 
-  imagecodecs-lite = disabledIf (!isPy3k) (callPackage ../development/python-modules/imagecodecs-lite { });
+  langcodes = callPackage ../development/python-modules/langcodes { };
 
-  imagesize = callPackage ../development/python-modules/imagesize { };
+  langdetect = callPackage ../development/python-modules/langdetect { };
 
-  image-match = callPackage ../development/python-modules/image-match { };
+  larch = callPackage ../development/python-modules/larch { };
 
-  imbalanced-learn =
-    if isPy27 then
-      callPackage ../development/python-modules/imbalanced-learn/0.4.nix { }
-    else
-      callPackage ../development/python-modules/imbalanced-learn { };
+  lark-parser = callPackage ../development/python-modules/lark-parser { };
 
-  immutables = callPackage ../development/python-modules/immutables {};
+  Lasagne = callPackage ../development/python-modules/lasagne { };
 
-  imread = callPackage ../development/python-modules/imread {
-    inherit (pkgs) pkgconfig libjpeg libpng libtiff libwebp;
-  };
+  latexcodec = callPackage ../development/python-modules/latexcodec { };
 
-  imaplib2 = callPackage ../development/python-modules/imaplib2 { };
+  launchpadlib = callPackage ../development/python-modules/launchpadlib { };
 
-  ipfsapi = callPackage ../development/python-modules/ipfsapi { };
+  lazr_config = callPackage ../development/python-modules/lazr/config.nix { };
 
-  isbnlib = callPackage ../development/python-modules/isbnlib { };
+  lazr_delegates = callPackage ../development/python-modules/lazr/delegates.nix { };
 
-  islpy = callPackage ../development/python-modules/islpy { };
+  lazr-restfulclient = callPackage ../development/python-modules/lazr-restfulclient { };
 
-  itsdangerous = callPackage ../development/python-modules/itsdangerous { };
+  lazr-uri = callPackage ../development/python-modules/lazr-uri { };
 
-  itypes = callPackage ../development/python-modules/itypes { };
+  lazy = callPackage ../development/python-modules/lazy { };
 
-  iniparse = callPackage ../development/python-modules/iniparse { };
+  lazy_import = callPackage ../development/python-modules/lazy_import { };
 
-  intreehooks = callPackage ../development/python-modules/intreehooks { };
+  lazy-object-proxy = callPackage ../development/python-modules/lazy-object-proxy { };
 
-  i3-py = callPackage ../development/python-modules/i3-py { };
+  ldap3 = callPackage ../development/python-modules/ldap3 { };
 
-  JayDeBeApi = callPackage ../development/python-modules/JayDeBeApi {};
+  ldap = callPackage ../development/python-modules/ldap { inherit (pkgs) openldap cyrus_sasl; };
 
-  jdcal = callPackage ../development/python-modules/jdcal { };
+  ldappool = callPackage ../development/python-modules/ldappool { };
 
-  jieba = callPackage ../development/python-modules/jieba { };
+  ldaptor = callPackage ../development/python-modules/ldaptor { };
 
-  internetarchive = callPackage ../development/python-modules/internetarchive {};
+  leather = callPackage ../development/python-modules/leather { };
 
-  JPype1 = callPackage ../development/python-modules/JPype1 {};
+  le = callPackage ../development/python-modules/le { };
 
-  jpylyzer = callPackage ../development/python-modules/jpylyzer {};
+  ledger_agent = callPackage ../development/python-modules/ledger_agent { };
 
-  josepy = callPackage ../development/python-modules/josepy {};
+  ledgerblue = callPackage ../development/python-modules/ledgerblue { };
 
-  jsbeautifier = callPackage ../development/python-modules/jsbeautifier {};
+  lektor = callPackage ../development/python-modules/lektor { };
 
-  jug = callPackage ../development/python-modules/jug {};
+  leveldb = callPackage ../development/python-modules/leveldb { };
 
-  jsmin = callPackage ../development/python-modules/jsmin { };
+  libagent = callPackage ../development/python-modules/libagent { };
 
-  jsonmerge = callPackage ../development/python-modules/jsonmerge { };
+  libais = callPackage ../development/python-modules/libais { };
 
-  jsonpatch = callPackage ../development/python-modules/jsonpatch { };
+  libarchive-c = callPackage ../development/python-modules/libarchive-c { inherit (pkgs) libarchive; };
 
-  jsonpickle = callPackage ../development/python-modules/jsonpickle { };
+  libarcus = callPackage ../development/python-modules/libarcus { inherit (pkgs) protobuf; };
 
-  jsonpointer = callPackage ../development/python-modules/jsonpointer { };
+  libasyncns = callPackage ../development/python-modules/libasyncns { inherit (pkgs) libasyncns pkgconfig; };
 
-  jsonrpclib = callPackage ../development/python-modules/jsonrpclib { };
+  libcloud = if isPy27 then
+    callPackage ../development/python-modules/libcloud/2.nix { }
+  else
+    callPackage ../development/python-modules/libcloud { };
 
-  jsonrpclib-pelix = callPackage ../development/python-modules/jsonrpclib-pelix {};
+  libevdev = callPackage ../development/python-modules/libevdev { };
 
-  jsonwatch = callPackage ../development/python-modules/jsonwatch { };
+  libfdt = toPythonModule (pkgs.dtc.override {
+    inherit python;
+    pythonSupport = true;
+  });
 
-  kicad = disabledIf isPy27 (toPythonModule (pkgs.kicad.override {
+  libgpiod = disabledIf (!isPy3k) (toPythonModule (pkgs.libgpiod.override {
+    enablePython = true;
     python3 = python;
-  }).src);
+  }));
 
-  latexcodec = callPackage ../development/python-modules/latexcodec {};
+  libgpuarray = callPackage ../development/python-modules/libgpuarray {
+    clblas = pkgs.clblas.override { boost = self.boost; };
+    cudaSupport = pkgs.config.cudaSupport or false;
+    inherit (pkgs.linuxPackages) nvidia_x11;
+  };
 
-  lazy = callPackage ../development/python-modules/lazy { };
+  libiio = (toPythonModule (pkgs.libiio.override { inherit python; })).python;
+
+  libkeepass = callPackage ../development/python-modules/libkeepass { };
+
+  liblarch = callPackage ../development/python-modules/liblarch { };
 
   libmodulemd = pipe pkgs.libmodulemd [
     toPythonModule
+    (p:
+      p.overrideAttrs (super: {
+        meta = super.meta // {
+          outputsToInstall = [ "py" ]; # The package always builds python3 bindings
+          broken = (super.meta.broken or false) || !isPy3k;
+        };
+      }))
+    (p: p.override { python3 = python; })
+    (p: p.py)
+  ];
 
-    (p: p.overrideAttrs (super: {
-      meta = super.meta // {
-        outputsToInstall = [ "py" ];
-        # The package always builds python3 bindings
-        broken = (super.meta.broken or false) || !isPy3k;
-      };
-    }))
+  libmr = callPackage ../development/python-modules/libmr { };
 
-    (p: p.override {
-      python3 = python;
-    })
+  libnacl = callPackage ../development/python-modules/libnacl { inherit (pkgs) libsodium; };
 
-    (p: p.py)
-  ];
+  libnl-python = disabledIf isPy3k (toPythonModule (pkgs.libnl.override {
+    pythonSupport = true;
+    inherit python;
+  })).py;
 
-  libselinux = pipe pkgs.libselinux [
+  libplist = disabledIf isPy3k (toPythonModule (pkgs.libplist.override {
+    enablePython = true;
+    inherit python;
+  })).py;
+
+  libredwg = toPythonModule (pkgs.libredwg.override {
+    enablePython = true;
+    inherit (self) python libxml2;
+  });
+
+  librepo = pipe pkgs.librepo [
     toPythonModule
+    (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; }))
+    (p: p.override { inherit python; })
+    (p: p.py)
+  ];
 
-    (p: p.overrideAttrs (super: {
-      meta = super.meta // {
-        outputsToInstall = [ "py" ];
-        broken = (super.meta.broken or false) || pythonAtLeast "3.8";
-      };
-    }))
+  librosa = callPackage ../development/python-modules/librosa { };
 
-    (p: p.override {
-      enablePython = true;
-      inherit python;
-    })
+  libsavitar = callPackage ../development/python-modules/libsavitar { };
 
+  libselinux = pipe pkgs.libselinux [
+    toPythonModule
+    (p:
+      p.overrideAttrs (super: {
+        meta = super.meta // {
+          outputsToInstall = [ "py" ];
+          broken = (super.meta.broken or false) || pythonAtLeast "3.8";
+        };
+      }))
+    (p:
+      p.override {
+        enablePython = true;
+        inherit python;
+      })
     (p: p.py)
   ];
 
@@ -3152,6 +3339,33 @@ in {
 
   libthumbor = callPackage ../development/python-modules/libthumbor { };
 
+  libtmux = callPackage ../development/python-modules/libtmux { };
+
+  libtorrentRasterbar = (toPythonModule (pkgs.libtorrentRasterbar.override { inherit python; })).python;
+
+  libusb1 = callPackage ../development/python-modules/libusb1 { inherit (pkgs) libusb1; };
+
+  libversion = callPackage ../development/python-modules/libversion { inherit (pkgs) libversion pkgconfig; };
+
+  libvirt = if isPy3k then
+    (callPackage ../development/python-modules/libvirt { inherit (pkgs) libvirt pkgconfig; })
+  else
+    (callPackage ../development/python-modules/libvirt/5.9.0.nix {
+      inherit (pkgs) pkgconfig;
+      libvirt = pkgs.libvirt_5_9_0;
+    });
+
+  libxml2 = (toPythonModule (pkgs.libxml2.override {
+    pythonSupport = true;
+    inherit python;
+  })).py;
+
+  libxslt = (toPythonModule (pkgs.libxslt.override {
+    pythonSupport = true;
+    inherit python;
+    inherit (self) libxml2;
+  })).py;
+
   license-expression = callPackage ../development/python-modules/license-expression { };
 
   lightblue = callPackage ../development/python-modules/lightblue { };
@@ -3162,3292 +3376,3210 @@ in {
 
   lightparam = callPackage ../development/python-modules/lightparam { };
 
-  jupyter = callPackage ../development/python-modules/jupyter { };
-
-  jupyter_console = if pythonOlder "3.5" then
-       callPackage ../development/python-modules/jupyter_console/5.nix { }
-     else
-       callPackage ../development/python-modules/jupyter_console { };
+  limitlessled = callPackage ../development/python-modules/limitlessled { };
 
-  jupyterlab_launcher = callPackage ../development/python-modules/jupyterlab_launcher { };
+  limits = callPackage ../development/python-modules/limits { };
 
-  jupyterlab_server = callPackage ../development/python-modules/jupyterlab_server { };
+  limnoria = callPackage ../development/python-modules/limnoria { };
 
-  jupyterlab = callPackage ../development/python-modules/jupyterlab {};
+  linecache2 = callPackage ../development/python-modules/linecache2 { };
 
-  jupyter-sphinx = callPackage ../development/python-modules/jupyter-sphinx { };
+  line_profiler = callPackage ../development/python-modules/line_profiler { };
 
-  jupytext = callPackage ../development/python-modules/jupytext { };
+  linode-api = callPackage ../development/python-modules/linode-api { };
 
-  PyLTI = callPackage ../development/python-modules/pylti { };
+  linode = callPackage ../development/python-modules/linode { };
 
-  lmdb = callPackage ../development/python-modules/lmdb { };
+  linuxfd = callPackage ../development/python-modules/linuxfd { };
 
-  logilab_astng = callPackage ../development/python-modules/logilab_astng { };
+  lirc = disabledIf isPy27 (toPythonModule (pkgs.lirc.override { python3 = python; }));
 
-  lpod = callPackage ../development/python-modules/lpod { };
+  livelossplot = callPackage ../development/python-modules/livelossplot { };
 
-  ludios_wpull = callPackage ../development/python-modules/ludios_wpull { };
+  livereload = callPackage ../development/python-modules/livereload { };
 
-  luftdaten = callPackage ../development/python-modules/luftdaten { };
+  livestreamer = callPackage ../development/python-modules/livestreamer { };
 
-  m2r = callPackage ../development/python-modules/m2r { };
+  livestreamer-curses = callPackage ../development/python-modules/livestreamer-curses { };
 
-  mailchimp = callPackage ../development/python-modules/mailchimp { };
+  llfuse = callPackage ../development/python-modules/llfuse {
+    inherit (pkgs) fuse pkgconfig;
+  }; # use "real" fuse and pkgconfig, not the python modules
 
-  python-mapnik = callPackage ../development/python-modules/python-mapnik { };
+  llvmlite = callPackage ../development/python-modules/llvmlite {
+    llvm = pkgs.llvm_9;
+  }; # llvmlite always requires a specific version of llvm.
 
-  measurement = callPackage ../development/python-modules/measurement {};
+  lmdb = callPackage ../development/python-modules/lmdb { };
 
-  midiutil = callPackage ../development/python-modules/midiutil {};
+  lml = callPackage ../development/python-modules/lml { };
 
-  mido = callPackage ../development/python-modules/mido { };
+  lmtpd = callPackage ../development/python-modules/lmtpd { };
 
-  misaka = callPackage ../development/python-modules/misaka {};
+  localzone = callPackage ../development/python-modules/localzone { };
 
-  mlrose = callPackage ../development/python-modules/mlrose { };
+  locket = callPackage ../development/python-modules/locket { };
 
-  mlflow = callPackage ../development/python-modules/mlflow { };
+  lockfile = callPackage ../development/python-modules/lockfile { };
 
-  mt-940 = callPackage ../development/python-modules/mt-940 { };
+  locustio = callPackage ../development/python-modules/locustio { };
 
-  mwlib = callPackage ../development/python-modules/mwlib { };
+  Logbook = callPackage ../development/python-modules/Logbook { };
 
-  mwlib-ext = callPackage ../development/python-modules/mwlib-ext { };
+  logfury = callPackage ../development/python-modules/logfury { };
 
-  mwlib-rl = callPackage ../development/python-modules/mwlib-rl { };
+  logilab_astng = callPackage ../development/python-modules/logilab_astng { };
 
-  myfitnesspal = callPackage ../development/python-modules/myfitnesspal { };
+  logilab_common = callPackage ../development/python-modules/logilab/common.nix { };
 
-  natsort = callPackage ../development/python-modules/natsort { };
+  logilab-constraint = callPackage ../development/python-modules/logilab/constraint.nix { };
 
-  naturalsort = callPackage ../development/python-modules/naturalsort { };
+  logster = callPackage ../development/python-modules/logster { };
 
-  ncclient = callPackage ../development/python-modules/ncclient {};
+  loguru = callPackage ../development/python-modules/loguru { };
 
-  logfury = callPackage ../development/python-modules/logfury { };
+  logutils = callPackage ../development/python-modules/logutils { };
 
-  ndg-httpsclient = callPackage ../development/python-modules/ndg-httpsclient { };
+  logzero = callPackage ../development/python-modules/logzero { };
 
-  netcdf4 = callPackage ../development/python-modules/netcdf4 { };
+  loo-py = callPackage ../development/python-modules/loo-py { };
 
-  netdisco = callPackage ../development/python-modules/netdisco { };
+  lpod = callPackage ../development/python-modules/lpod { };
 
-  Nikola = callPackage ../development/python-modules/Nikola { };
+  lsi = callPackage ../development/python-modules/lsi { };
 
-  nmigen = callPackage ../development/python-modules/nmigen { };
+  ludios_wpull = callPackage ../development/python-modules/ludios_wpull { };
 
-  nmigen-boards = callPackage ../development/python-modules/nmigen-boards { };
+  luftdaten = callPackage ../development/python-modules/luftdaten { };
 
-  nmigen-soc = callPackage ../development/python-modules/nmigen-soc { };
+  lxc = callPackage ../development/python-modules/lxc { };
 
-  nxt-python = callPackage ../development/python-modules/nxt-python { };
+  lxml = callPackage ../development/python-modules/lxml { inherit (pkgs) libxml2 libxslt zlib; };
 
-  odfpy = callPackage ../development/python-modules/odfpy { };
+  lz4 = self.python-lz4; # alias 2018-12-05
 
-  openrazer = callPackage ../development/python-modules/openrazer/pylib.nix { };
-  openrazer-daemon = callPackage ../development/python-modules/openrazer/daemon.nix { };
+  lzstring = callPackage ../development/python-modules/lzstring { };
 
-  oset = callPackage ../development/python-modules/oset { };
+  m2crypto = callPackage ../development/python-modules/m2crypto { };
 
-  oscrypto = callPackage ../development/python-modules/oscrypto { };
+  m2r = callPackage ../development/python-modules/m2r { };
 
-  osqp = callPackage ../development/python-modules/osqp { };
+  m3u8 = callPackage ../development/python-modules/m3u8 { };
 
-  oyaml = callPackage ../development/python-modules/oyaml { };
+  mac_alias = callPackage ../development/python-modules/mac_alias { };
 
-  pam = callPackage ../development/python-modules/pam {
-    inherit (pkgs) pam;
+  macfsevents = callPackage ../development/python-modules/macfsevents {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation CoreServices;
   };
 
-  pamela = callPackage ../development/python-modules/pamela { };
-
-  paperspace = callPackage ../development/python-modules/paperspace { };
+  macropy = callPackage ../development/python-modules/macropy { };
 
-  paperwork-backend = callPackage ../applications/office/paperwork/backend.nix { };
+  maestral = callPackage ../development/python-modules/maestral { };
 
-  papis = callPackage ../development/python-modules/papis { };
+  magic = callPackage ../development/python-modules/magic { };
 
-  papis-python-rofi = callPackage ../development/python-modules/papis-python-rofi { };
+  magic-wormhole = callPackage ../development/python-modules/magic-wormhole { };
 
-  pathspec = callPackage ../development/python-modules/pathspec { };
+  magic-wormhole-mailbox-server = callPackage ../development/python-modules/magic-wormhole-mailbox-server { };
 
-  pathtools = callPackage ../development/python-modules/pathtools { };
+  magic-wormhole-transit-relay = callPackage ../development/python-modules/magic-wormhole-transit-relay { };
 
-  paver = callPackage ../development/python-modules/paver { };
+  mahotas = callPackage ../development/python-modules/mahotas { };
 
-  passlib = callPackage ../development/python-modules/passlib { };
+  mailcap-fix = callPackage ../development/python-modules/mailcap-fix { };
 
-  path-and-address = callPackage ../development/python-modules/path-and-address { };
+  mailchimp = callPackage ../development/python-modules/mailchimp { };
 
-  peppercorn = callPackage ../development/python-modules/peppercorn { };
+  mailman = callPackage ../servers/mail/mailman { };
 
-  pex = callPackage ../development/python-modules/pex { };
+  mailmanclient = callPackage ../development/python-modules/mailmanclient { };
 
-  phe = callPackage ../development/python-modules/phe { };
+  mailman-hyperkitty = callPackage ../development/python-modules/mailman-hyperkitty { };
 
-  phpserialize = callPackage ../development/python-modules/phpserialize { };
+  mailman-web = callPackage ../servers/mail/mailman/web.nix { };
 
-  plaid-python = callPackage ../development/python-modules/plaid-python { };
+  mail-parser = callPackage ../development/python-modules/mail-parser { };
 
-  plaster = callPackage ../development/python-modules/plaster {};
+  Mako = callPackage ../development/python-modules/Mako { };
 
-  plaster-pastedeploy = callPackage ../development/python-modules/plaster-pastedeploy {};
+  managesieve = callPackage ../development/python-modules/managesieve { };
 
-  playsound = callPackage ../development/python-modules/playsound { };
+  manhole = callPackage ../development/python-modules/manhole { };
 
-  plexapi = callPackage ../development/python-modules/plexapi { };
+  manifestparser = callPackage ../development/python-modules/marionette-harness/manifestparser.nix { };
 
-  plexauth = callPackage ../development/python-modules/plexauth { };
+  manuel = callPackage ../development/python-modules/manuel { };
 
-  plexwebsocket = callPackage ../development/python-modules/plexwebsocket { };
+  mapbox = callPackage ../development/python-modules/mapbox { };
 
-  plotly = callPackage ../development/python-modules/plotly { };
+  mapsplotlib = callPackage ../development/python-modules/mapsplotlib { };
 
-  plyfile = callPackage ../development/python-modules/plyfile { };
+  marionette_driver = callPackage ../development/python-modules/marionette-harness/marionette_driver.nix { };
 
-  podcastparser = callPackage ../development/python-modules/podcastparser { };
+  marionette-harness = callPackage ../development/python-modules/marionette-harness { };
 
-  podcats = callPackage ../development/python-modules/podcats { };
+  marisa = callPackage ../development/python-modules/marisa { marisa = pkgs.marisa; };
 
-  pomegranate = callPackage ../development/python-modules/pomegranate { };
+  marisa-trie = callPackage ../development/python-modules/marisa-trie { };
 
-  poppler-qt5 = callPackage ../development/python-modules/poppler-qt5 {
-    inherit (pkgs.qt5) qtbase;
-    inherit (pkgs.libsForQt5) poppler;
-    inherit (pkgs) pkgconfig;
-  };
+  markdown2 = callPackage ../development/python-modules/markdown2 { };
 
-  poyo = callPackage ../development/python-modules/poyo { };
+  markdown = if isPy3k then
+    callPackage ../development/python-modules/markdown { }
+  else
+    callPackage ../development/python-modules/markdown/3_1.nix { };
 
-  priority = callPackage ../development/python-modules/priority { };
+  markdown-macros = callPackage ../development/python-modules/markdown-macros { };
 
-  privacyidea = callPackage ../development/python-modules/privacyidea { };
-  privacyidea-ldap-proxy = callPackage ../development/python-modules/privacyidea/ldap-proxy.nix { };
+  markdownsuperscript = callPackage ../development/python-modules/markdownsuperscript { };
 
-  prov = callPackage ../development/python-modules/prov { };
+  markerlib = callPackage ../development/python-modules/markerlib { };
 
-  pudb = callPackage ../development/python-modules/pudb { };
+  markupsafe = callPackage ../development/python-modules/markupsafe { };
 
-  pybtex = callPackage ../development/python-modules/pybtex {};
+  Markups = callPackage ../development/python-modules/Markups { };
 
-  pybtex-docutils = callPackage ../development/python-modules/pybtex-docutils {};
+  marshmallow = callPackage ../development/python-modules/marshmallow { };
 
-  pycallgraph = callPackage ../development/python-modules/pycallgraph { };
+  marshmallow-enum = callPackage ../development/python-modules/marshmallow-enum { };
 
-  pycassa = callPackage ../development/python-modules/pycassa { };
+  marshmallow-polyfield = callPackage ../development/python-modules/marshmallow-polyfield { };
 
-  lirc = disabledIf isPy27 (toPythonModule (pkgs.lirc.override {
-    python3 = python;
-  }));
+  marshmallow-sqlalchemy = callPackage ../development/python-modules/marshmallow-sqlalchemy { };
 
-  pyblake2 = callPackage ../development/python-modules/pyblake2 { };
+  mask-rcnn = callPackage ../development/python-modules/mask-rcnn { };
 
-  pybluez = callPackage ../development/python-modules/pybluez { };
+  matchpy = callPackage ../development/python-modules/matchpy { };
 
-  pycares = callPackage ../development/python-modules/pycares { };
+  mathlibtools = callPackage ../development/python-modules/mathlibtools { };
 
-  pycuda = callPackage ../development/python-modules/pycuda {
-    cudatoolkit = pkgs.cudatoolkit;
-    inherit (pkgs.stdenv) mkDerivation;
+  matplotlib = let
+    path = if isPy3k then
+      ../development/python-modules/matplotlib/default.nix
+    else
+      ../development/python-modules/matplotlib/2.nix;
+  in callPackage path {
+    stdenv = if stdenv.isDarwin then pkgs.clangStdenv else pkgs.stdenv;
+    inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
+    inherit (pkgs) pkgconfig;
   };
 
-  pydotplus = callPackage ../development/python-modules/pydotplus { };
+  matrix-client = callPackage ../development/python-modules/matrix-client { };
 
-  pyfxa = callPackage ../development/python-modules/pyfxa { };
+  matrix-nio = callPackage ../development/python-modules/matrix-nio { };
 
-  pygls = callPackage ../development/python-modules/pygls {};
+  mautrix = callPackage ../development/python-modules/mautrix { };
 
-  pyhomematic = callPackage ../development/python-modules/pyhomematic { };
+  mautrix-appservice = self.mautrix; # alias 2019-12-28
 
-  pylama = callPackage ../development/python-modules/pylama { };
+  maxminddb = callPackage ../development/python-modules/maxminddb { };
 
-  pylatexenc = callPackage ../development/python-modules/pylatexenc { };
+  maya = callPackage ../development/python-modules/maya { };
 
-  pymbolic = callPackage ../development/python-modules/pymbolic { };
+  mayavi = pkgs.libsForQt5.callPackage ../development/python-modules/mayavi {
+    inherit buildPythonPackage isPy27 fetchPypi;
+    inherit (self) pyface pygments numpy vtk traitsui envisage apptools pyqt5;
+  };
 
-  pymediainfo = callPackage ../development/python-modules/pymediainfo { };
+  mccabe = callPackage ../development/python-modules/mccabe { };
 
-  pyphen = callPackage ../development/python-modules/pyphen {};
+  MDP = callPackage ../development/python-modules/mdp { };
 
-  pypoppler = callPackage ../development/python-modules/pypoppler { };
+  measurement = callPackage ../development/python-modules/measurement { };
 
-  pypillowfight = callPackage ../development/python-modules/pypillowfight { };
+  mecab-python3 = callPackage ../development/python-modules/mecab-python3 { };
 
-  pyprind = callPackage ../development/python-modules/pyprind { };
+  MechanicalSoup = callPackage ../development/python-modules/MechanicalSoup { };
 
-  python-axolotl = callPackage ../development/python-modules/python-axolotl { };
+  mechanize = callPackage ../development/python-modules/mechanize { };
 
-  python-axolotl-curve25519 = callPackage ../development/python-modules/python-axolotl-curve25519 { };
+  meinheld = callPackage ../development/python-modules/meinheld { };
 
-  python-pam = callPackage ../development/python-modules/python-pam { };
+  meld3 = callPackage ../development/python-modules/meld3 { };
 
-  pythonix = callPackage ../development/python-modules/pythonix {
-    inherit (pkgs) meson pkgconfig;
-  };
+  meliae = callPackage ../development/python-modules/meliae { };
 
-  python-lzf = callPackage ../development/python-modules/python-lzf { };
+  memcached = callPackage ../development/python-modules/memcached { };
 
-  pyramid = callPackage ../development/python-modules/pyramid { };
+  memory_profiler = callPackage ../development/python-modules/memory_profiler { };
 
-  pyramid_beaker = callPackage ../development/python-modules/pyramid_beaker { };
+  mercurial = disabledIf (!isPy3k) (toPythonModule (pkgs.mercurial.override { python3Packages = self; }));
 
-  pyramid_chameleon = callPackage ../development/python-modules/pyramid_chameleon { };
+  mergedeep = callPackage ../development/python-modules/mergedeep { };
 
-  pyramid_jinja2 = callPackage ../development/python-modules/pyramid_jinja2 { };
+  merkletools = callPackage ../development/python-modules/merkletools { };
 
-  pyramid_mako = callPackage ../development/python-modules/pyramid_mako { };
+  mesa = callPackage ../development/python-modules/mesa { };
 
-  peewee =  callPackage ../development/python-modules/peewee { };
+  meshlabxml = callPackage ../development/python-modules/meshlabxml { };
 
-  pyroma = callPackage ../development/python-modules/pyroma { };
+  meson = disabledIf (pythonOlder "3.5") (toPythonModule ((pkgs.meson.override { python3 = python; }).overrideAttrs
+    (oldAttrs: { # We do not want the setup hook in Python packages because the build is performed differently.
+      setupHook = null;
+    })));
 
-  pyroute2 = callPackage ../development/python-modules/pyroute2 { };
+  mesonpep517 = callPackage ../development/python-modules/mesonpep517 { };
 
-  pyspf = callPackage ../development/python-modules/pyspf { };
+  metaphone = callPackage ../development/python-modules/metaphone { };
 
-  pysptk = callPackage ../development/python-modules/pysptk { };
+  mezzanine = callPackage ../development/python-modules/mezzanine { };
 
-  pysrim = callPackage ../development/python-modules/pysrim { };
+  micawber = callPackage ../development/python-modules/micawber { };
 
-  pysrt = callPackage ../development/python-modules/pysrt { };
+  midiutil = callPackage ../development/python-modules/midiutil { };
 
-  pytools = callPackage ../development/python-modules/pytools { };
+  mido = callPackage ../development/python-modules/mido { };
 
-  python-constraint = callPackage ../development/python-modules/python-constraint { };
+  milksnake = callPackage ../development/python-modules/milksnake { };
 
-  python-ctags3 = callPackage ../development/python-modules/python-ctags3 { };
+  minidb = callPackage ../development/python-modules/minidb { };
 
-  python-lzo = callPackage ../development/python-modules/python-lzo {
-    inherit (pkgs) lzo;
-  };
+  minimock = callPackage ../development/python-modules/minimock { };
 
-  junos-eznc = callPackage ../development/python-modules/junos-eznc {};
+  mininet-python = (toPythonModule (pkgs.mininet.override { inherit python; })).py;
 
-  raven = callPackage ../development/python-modules/raven { };
+  minio = callPackage ../development/python-modules/minio { };
 
-  rawkit = callPackage ../development/python-modules/rawkit { };
+  miniupnpc = callPackage ../development/python-modules/miniupnpc { };
 
-  joblib = callPackage ../development/python-modules/joblib { };
+  misaka = callPackage ../development/python-modules/misaka { };
 
-  sarge = callPackage ../development/python-modules/sarge { };
+  mistune = callPackage ../development/python-modules/mistune { };
 
-  subliminal = callPackage ../development/python-modules/subliminal {};
+  mixpanel = callPackage ../development/python-modules/mixpanel { };
 
-  sunpy = callPackage ../development/python-modules/sunpy { };
+  mkl-service = callPackage ../development/python-modules/mkl-service { };
 
-  hyperkitty = callPackage ../servers/mail/mailman/hyperkitty.nix { };
+  mlflow = callPackage ../development/python-modules/mlflow { };
 
-  robot-detection = callPackage ../development/python-modules/robot-detection {};
+  mlrose = callPackage ../development/python-modules/mlrose { };
 
-  cssmin = callPackage ../development/python-modules/cssmin {};
+  mmh3 = callPackage ../development/python-modules/mmh3 { };
 
-  django-paintstore = callPackage ../development/python-modules/django-paintstore {};
+  mmpython = callPackage ../development/python-modules/mmpython { };
 
-  django-q = callPackage ../development/python-modules/django-q {};
+  mnemonic = callPackage ../development/python-modules/mnemonic { };
 
-  hyperlink = callPackage ../development/python-modules/hyperlink {};
+  mnist = callPackage ../development/python-modules/mnist { };
 
-  zope_copy = callPackage ../development/python-modules/zope_copy {};
+  mocket = callPackage ../development/python-modules/mocket { };
 
-  s2clientprotocol = callPackage ../development/python-modules/s2clientprotocol { };
+  mock = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/mock/2.nix { }
+  else
+    callPackage ../development/python-modules/mock { };
 
-  py3status = callPackage ../development/python-modules/py3status {};
+  mockito = callPackage ../development/python-modules/mockito { };
 
-  pyrtlsdr = callPackage ../development/python-modules/pyrtlsdr { };
+  mock-open = callPackage ../development/python-modules/mock-open { };
 
-  scandir = callPackage ../development/python-modules/scandir { };
+  modeled = callPackage ../development/python-modules/modeled { };
 
-  schema = callPackage ../development/python-modules/schema {};
+  moderngl = callPackage ../development/python-modules/moderngl { };
 
-  simple-websocket-server = callPackage ../development/python-modules/simple-websocket-server {};
+  moderngl-window = callPackage ../development/python-modules/moderngl_window { };
 
-  stem = callPackage ../development/python-modules/stem { };
+  modestmaps = callPackage ../development/python-modules/modestmaps { };
 
-  svg-path = callPackage ../development/python-modules/svg-path { };
+  moinmoin = callPackage ../development/python-modules/moinmoin
+    { }; # Needed here because moinmoin is loaded as a Python library.
 
-  r2pipe = callPackage ../development/python-modules/r2pipe { };
+  mongodict = callPackage ../development/python-modules/mongodict { };
 
-  regex = callPackage ../development/python-modules/regex { };
+  mongoengine = callPackage ../development/python-modules/mongoengine { };
 
-  regional = callPackage ../development/python-modules/regional { };
+  monkeyhex = callPackage ../development/python-modules/monkeyhex { };
 
-  ratelimiter = callPackage ../development/python-modules/ratelimiter { };
+  monosat = disabledIf (!isPy3k) (pkgs.monosat.python {
+    inherit buildPythonPackage;
+    inherit (self) cython;
+  });
 
-  pywatchman = callPackage ../development/python-modules/pywatchman { };
+  monotonic = callPackage ../development/python-modules/monotonic { };
 
-  pywavelets = callPackage ../development/python-modules/pywavelets { };
+  monty = callPackage ../development/python-modules/monty { };
 
-  vcrpy = callPackage ../development/python-modules/vcrpy { };
+  more-itertools = if isPy27 then
+    callPackage ../development/python-modules/more-itertools/2.7.nix { }
+  else
+    callPackage ../development/python-modules/more-itertools { };
 
-  descartes = callPackage ../development/python-modules/descartes { };
+  moretools = callPackage ../development/python-modules/moretools { };
 
-  chardet = callPackage ../development/python-modules/chardet { };
+  morphys = callPackage ../development/python-modules/morphys { };
 
-  pyramid_exclog = callPackage ../development/python-modules/pyramid_exclog { };
+  mortgage = callPackage ../development/python-modules/mortgage { };
 
-  pyramid_multiauth = callPackage ../development/python-modules/pyramid_multiauth { };
+  moto = callPackage ../development/python-modules/moto { };
 
-  pyramid_hawkauth = callPackage ../development/python-modules/pyramid_hawkauth { };
+  moviepy = callPackage ../development/python-modules/moviepy { };
 
-  pytun = callPackage ../development/python-modules/pytun { };
+  mox3 = callPackage ../development/python-modules/mox3 { };
 
-  rethinkdb = callPackage ../development/python-modules/rethinkdb { };
+  mox = callPackage ../development/python-modules/mox { };
 
-  roku = callPackage ../development/python-modules/roku { };
+  mozcrash = callPackage ../development/python-modules/marionette-harness/mozcrash.nix { };
 
-  roman = callPackage ../development/python-modules/roman { };
+  mozdevice = callPackage ../development/python-modules/marionette-harness/mozdevice.nix { };
 
-  rotate-backups = callPackage ../tools/backup/rotate-backups { };
+  mozfile = callPackage ../development/python-modules/marionette-harness/mozfile.nix { };
 
-  librosa = callPackage ../development/python-modules/librosa { };
+  mozhttpd = callPackage ../development/python-modules/marionette-harness/mozhttpd.nix { };
 
-  samplerate = callPackage ../development/python-modules/samplerate { };
+  mozinfo = callPackage ../development/python-modules/marionette-harness/mozinfo.nix { };
 
-  screeninfo = callPackage ../development/python-modules/screeninfo { };
+  mozlog = callPackage ../development/python-modules/marionette-harness/mozlog.nix { };
 
-  ssdeep = callPackage ../development/python-modules/ssdeep { };
+  moznetwork = callPackage ../development/python-modules/marionette-harness/moznetwork.nix { };
 
-  ssdp = callPackage ../development/python-modules/ssdp { };
+  mozprocess = callPackage ../development/python-modules/marionette-harness/mozprocess.nix { };
 
-  statsd = callPackage ../development/python-modules/statsd { };
+  mozprofile = callPackage ../development/python-modules/marionette-harness/mozprofile.nix { };
 
-  starfish = callPackage ../development/python-modules/starfish { };
+  mozrunner = callPackage ../development/python-modules/marionette-harness/mozrunner.nix { };
 
-  swagger-ui-bundle = callPackage ../development/python-modules/swagger-ui-bundle { };
+  mozsvc = callPackage ../development/python-modules/mozsvc { };
 
-  multi_key_dict = callPackage ../development/python-modules/multi_key_dict { };
+  mozterm = callPackage ../development/python-modules/mozterm { };
 
-  random2 = callPackage ../development/python-modules/random2 { };
+  moztest = callPackage ../development/python-modules/marionette-harness/moztest.nix { };
 
-  schedule = callPackage ../development/python-modules/schedule { };
+  mozversion = callPackage ../development/python-modules/marionette-harness/mozversion.nix { };
 
-  repoze_lru = callPackage ../development/python-modules/repoze_lru { };
+  mpd2 = callPackage ../development/python-modules/mpd2 { };
 
-  repoze_sphinx_autointerface =  callPackage ../development/python-modules/repoze_sphinx_autointerface { };
+  mpd = callPackage ../development/python-modules/mpd { };
 
-  setuptools-git = callPackage ../development/python-modules/setuptools-git { };
+  mpi4py = callPackage ../development/python-modules/mpi4py { mpi = pkgs.openmpi; };
 
-  setuptools-lint = callPackage ../development/python-modules/setuptools-lint { };
+  mplleaflet = callPackage ../development/python-modules/mplleaflet { };
 
-  sievelib = callPackage ../development/python-modules/sievelib { };
+  mpmath = callPackage ../development/python-modules/mpmath { };
 
-  watchdog = callPackage ../development/python-modules/watchdog { };
+  mpv = callPackage ../development/python-modules/mpv { mpv = pkgs.mpv; };
 
-  zope_deprecation = callPackage ../development/python-modules/zope_deprecation { };
+  mpyq = callPackage ../development/python-modules/mpyq { };
 
-  validators = callPackage ../development/python-modules/validators { };
+  mrbob = callPackage ../development/python-modules/mrbob { };
 
-  validictory = callPackage ../development/python-modules/validictory { };
+  msal = callPackage ../development/python-modules/msal { };
 
-  validate-email = callPackage ../development/python-modules/validate-email { };
+  msal-extensions = callPackage ../development/python-modules/msal-extensions { };
 
-  venusian = callPackage ../development/python-modules/venusian { };
+  msgpack = callPackage ../development/python-modules/msgpack { };
 
-  chameleon = callPackage ../development/python-modules/chameleon { };
+  msgpack-numpy = callPackage ../development/python-modules/msgpack-numpy { };
 
-  ddt = callPackage ../development/python-modules/ddt { };
+  msrestazure = callPackage ../development/python-modules/msrestazure { };
 
-  distutils_extra = callPackage ../development/python-modules/distutils_extra { };
+  msrest = callPackage ../development/python-modules/msrest { };
 
-  pyxdg = callPackage ../development/python-modules/pyxdg { };
+  msrplib = callPackage ../development/python-modules/msrplib { };
 
-  crayons = callPackage ../development/python-modules/crayons{ };
+  mt-940 = callPackage ../development/python-modules/mt-940 { };
 
-  django = self.django_lts;
+  multidict = callPackage ../development/python-modules/multidict { };
 
-  django_lts = self.django_2_2;
+  multi_key_dict = callPackage ../development/python-modules/multi_key_dict { };
 
-  django_1_11 = callPackage ../development/python-modules/django/1_11.nix {
-    gdal = self.gdal;
-  };
+  multipledispatch = callPackage ../development/python-modules/multipledispatch { };
 
-  django_2_2 = callPackage ../development/python-modules/django/2_2.nix { };
+  multiprocess = callPackage ../development/python-modules/multiprocess { };
 
-  django-allauth = callPackage ../development/python-modules/django-allauth { };
+  multiset = callPackage ../development/python-modules/multiset { };
 
-  django-anymail = callPackage ../development/python-modules/django-anymail {};
+  multitasking = callPackage ../development/python-modules/multitasking { };
 
-  django_appconf = callPackage ../development/python-modules/django_appconf { };
+  munch = callPackage ../development/python-modules/munch { };
 
-  django-auth-ldap = callPackage ../development/python-modules/django-auth-ldap { };
+  munkres = callPackage ../development/python-modules/munkres { };
 
-  django_colorful = callPackage ../development/python-modules/django_colorful { };
+  murmurhash = callPackage ../development/python-modules/murmurhash { };
 
-  django-cache-url = callPackage ../development/python-modules/django-cache-url { };
+  musicbrainzngs = callPackage ../development/python-modules/musicbrainzngs { };
 
-  django-cleanup = callPackage ../development/python-modules/django-cleanup { };
+  mutag = callPackage ../development/python-modules/mutag { };
 
-  django-configurations = callPackage ../development/python-modules/django-configurations { };
+  mutagen = if isPy27 then
+    callPackage ../development/python-modules/mutagen/1.43.nix { }
+  else
+    callPackage ../development/python-modules/mutagen { };
 
-  django_compressor = callPackage ../development/python-modules/django_compressor { };
+  mutatormath = callPackage ../development/python-modules/mutatormath { };
 
-  django_compat = callPackage ../development/python-modules/django-compat { };
+  muttils = callPackage ../development/python-modules/muttils { };
 
-  django_contrib_comments = callPackage ../development/python-modules/django_contrib_comments { };
+  mwclient = callPackage ../development/python-modules/mwclient { };
 
-  django-cors-headers = callPackage ../development/python-modules/django-cors-headers { };
+  mwlib = callPackage ../development/python-modules/mwlib { };
 
-  django-csp = callPackage ../development/python-modules/django-csp { };
+  mwlib-ext = callPackage ../development/python-modules/mwlib-ext { };
 
-  django-discover-runner = callPackage ../development/python-modules/django-discover-runner { };
+  mwlib-rl = callPackage ../development/python-modules/mwlib-rl { };
 
-  django-dynamic-preferences = callPackage ../development/python-modules/django-dynamic-preferences { };
+  mwoauth = callPackage ../development/python-modules/mwoauth { };
 
-  django_environ = callPackage ../development/python-modules/django_environ { };
+  mwparserfromhell = callPackage ../development/python-modules/mwparserfromhell { };
 
-  django_evolution = callPackage ../development/python-modules/django_evolution { };
+  mxnet = callPackage ../development/python-modules/mxnet { };
 
-  django_extensions = callPackage ../development/python-modules/django-extensions { };
+  myfitnesspal = callPackage ../development/python-modules/myfitnesspal { };
 
-  django-filter = callPackage ../development/python-modules/django-filter { };
+  mygpoclient = callPackage ../development/python-modules/mygpoclient { };
 
-  django-gravatar2 = callPackage ../development/python-modules/django-gravatar2 { };
+  mypy = callPackage ../development/python-modules/mypy { };
 
-  django_guardian = callPackage ../development/python-modules/django_guardian { };
+  mypy-extensions = callPackage ../development/python-modules/mypy/extensions.nix { };
 
-  django-ipware = callPackage ../development/python-modules/django-ipware { };
+  mypy-protobuf = callPackage ../development/python-modules/mypy-protobuf { };
 
-  django-jinja = callPackage ../development/python-modules/django-jinja2 { };
+  mysqlclient = callPackage ../development/python-modules/mysqlclient { };
 
-  django-logentry-admin = callPackage ../development/python-modules/django-logentry-admin { };
+  mysql-connector = callPackage ../development/python-modules/mysql-connector { };
 
-  django-mailman3 = callPackage ../development/python-modules/django-mailman3 { };
+  nagiosplugin = callPackage ../development/python-modules/nagiosplugin { };
 
-  django-oauth-toolkit = callPackage ../development/python-modules/django-oauth-toolkit { };
+  namebench = callPackage ../development/python-modules/namebench { };
 
-  django-pglocks = callPackage ../development/python-modules/django-pglocks { };
+  namedlist = callPackage ../development/python-modules/namedlist { };
 
-  django-picklefield = callPackage ../development/python-modules/django-picklefield { };
+  nameparser = callPackage ../development/python-modules/nameparser { };
 
-  django_polymorphic = callPackage ../development/python-modules/django-polymorphic { };
+  names = callPackage ../development/python-modules/names { };
 
-  django-postgresql-netfields = callPackage ../development/python-modules/django-postgresql-netfields { };
+  nanoleaf = callPackage ../development/python-modules/nanoleaf { };
 
-  django-ranged-response = callPackage ../development/python-modules/django-ranged-response { };
+  nanomsg-python = callPackage ../development/python-modules/nanomsg-python { inherit (pkgs) nanomsg; };
 
-  django-rest-auth = callPackage ../development/python-modules/django-rest-auth { };
+  nanotime = callPackage ../development/python-modules/nanotime { };
 
-  django-sampledatahelper = callPackage ../development/python-modules/django-sampledatahelper { };
+  nassl = callPackage ../development/python-modules/nassl { };
 
-  django-simple-captcha = callPackage ../development/python-modules/django-simple-captcha { };
+  natsort = callPackage ../development/python-modules/natsort { };
 
-  django-sites = callPackage ../development/python-modules/django-sites { };
+  naturalsort = callPackage ../development/python-modules/naturalsort { };
 
-  django-sr = callPackage ../development/python-modules/django-sr { };
+  nbclient = callPackage ../development/python-modules/nbclient { };
 
-  django-storages = callPackage ../development/python-modules/django-storages { };
+  nbconflux = callPackage ../development/python-modules/nbconflux { };
 
-  django-versatileimagefield = callPackage ../development/python-modules/django-versatileimagefield  { };
+  nbconvert = callPackage ../development/python-modules/nbconvert { };
 
-  django-webpack-loader = callPackage ../development/python-modules/django-webpack-loader { };
+  nbdime = callPackage ../development/python-modules/nbdime { };
 
-  django_tagging = callPackage ../development/python-modules/django_tagging { };
+  nbformat = if isPy3k then
+    callPackage ../development/python-modules/nbformat { }
+  else
+    callPackage ../development/python-modules/nbformat/2.nix { };
 
-  django_classytags = callPackage ../development/python-modules/django_classytags { };
+  nbmerge = callPackage ../development/python-modules/nbmerge { };
 
-  # 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 { };
+  nbsmoke = callPackage ../development/python-modules/nbsmoke { };
 
-  django_hijack_admin = callPackage ../development/python-modules/django-hijack-admin { };
+  nbsphinx = callPackage ../development/python-modules/nbsphinx { };
 
-  django_nose = callPackage ../development/python-modules/django_nose { };
+  nbval = callPackage ../development/python-modules/nbval { };
 
-  django_modelcluster = callPackage ../development/python-modules/django_modelcluster { };
+  nbxmpp = callPackage ../development/python-modules/nbxmpp { };
 
-  djangorestframework = callPackage ../development/python-modules/djangorestframework { };
+  ncclient = callPackage ../development/python-modules/ncclient { };
 
-  djangorestframework-jwt = callPackage ../development/python-modules/djangorestframework-jwt { };
+  ndg-httpsclient = callPackage ../development/python-modules/ndg-httpsclient { };
 
-  djangorestframework-simplejwt = callPackage ../development/python-modules/djangorestframework-simplejwt { };
+  ndtypes = callPackage ../development/python-modules/ndtypes { };
 
-  django-raster = callPackage ../development/python-modules/django-raster { };
+  neo = callPackage ../development/python-modules/neo { };
 
-  django_redis = callPackage ../development/python-modules/django_redis { };
+  nest-asyncio = callPackage ../development/python-modules/nest-asyncio { };
 
-  django_reversion = callPackage ../development/python-modules/django_reversion { };
+  netaddr = callPackage ../development/python-modules/netaddr { };
 
-  django_silk = callPackage ../development/python-modules/django_silk { };
+  netcdf4 = callPackage ../development/python-modules/netcdf4 { };
 
-  django_taggit = callPackage ../development/python-modules/django_taggit { };
+  netdisco = callPackage ../development/python-modules/netdisco { };
 
-  django_treebeard = callPackage ../development/python-modules/django_treebeard { };
+  netifaces = callPackage ../development/python-modules/netifaces { };
 
-  django_pipeline = callPackage ../development/python-modules/django-pipeline { };
+  networkx = if isPy3k then
+    callPackage ../development/python-modules/networkx { }
+  else
+    callPackage ../development/python-modules/networkx/2.2.nix { };
 
-  djangoql = callPackage ../development/python-modules/djangoql { };
+  neuron-mpi = pkgs.neuron-mpi.override { inherit python; };
 
-  dj-database-url = callPackage ../development/python-modules/dj-database-url { };
+  neuron = pkgs.neuron.override { inherit python; };
 
-  dj-email-url = callPackage ../development/python-modules/dj-email-url { };
+  neuronpy = callPackage ../development/python-modules/neuronpy { };
 
-  dj-search-url = callPackage ../development/python-modules/dj-search-url { };
+  nevow = callPackage ../development/python-modules/nevow { };
 
-  djmail = callPackage ../development/python-modules/djmail { };
+  nghttp2 = (toPythonModule (pkgs.nghttp2.override {
+    inherit (self) python cython setuptools;
+    inherit (pkgs) ncurses;
+    enablePython = true;
+  })).python;
 
-  pillowfight = callPackage ../development/python-modules/pillowfight { };
+  nibabel = callPackage ../development/python-modules/nibabel { };
 
-  kaptan = callPackage ../development/python-modules/kaptan { };
+  nidaqmx = callPackage ../development/python-modules/nidaqmx { };
 
-  keepalive = callPackage ../development/python-modules/keepalive { };
+  Nikola = callPackage ../development/python-modules/Nikola { };
 
-  keyrings-alt = callPackage ../development/python-modules/keyrings-alt {};
+  nilearn = callPackage ../development/python-modules/nilearn { };
 
-  SPARQLWrapper = callPackage ../development/python-modules/sparqlwrapper { };
+  nimfa = callPackage ../development/python-modules/nimfa { };
 
-  duckdb = callPackage ../development/python-modules/duckdb {
-    duckdb = pkgs.duckdb;
-  };
+  nine = callPackage ../development/python-modules/nine { };
 
-  dulwich = if isPy3k then
-    callPackage ../development/python-modules/dulwich { }
-  else
-    callPackage ../development/python-modules/dulwich/0_19.nix { };
+  nipy = callPackage ../development/python-modules/nipy { };
 
-  hg-git = callPackage ../development/python-modules/hg-git { };
+  nipype = callPackage ../development/python-modules/nipype { inherit (pkgs) which; };
 
-  hg-evolve = callPackage ../development/python-modules/hg-evolve { };
+  nitime = callPackage ../development/python-modules/nitime { };
 
-  dtopt = callPackage ../development/python-modules/dtopt { };
+  nitpick = callPackage ../applications/version-management/nitpick { };
 
-  easywatch = callPackage ../development/python-modules/easywatch { };
+  nix-kernel = callPackage ../development/python-modules/nix-kernel { inherit (pkgs) nix; };
 
-  ecdsa = callPackage ../development/python-modules/ecdsa { };
+  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.
 
-  ecos = callPackage ../development/python-modules/ecos { };
+  nixpart = callPackage ../tools/filesystems/nixpart { };
 
-  effect = callPackage ../development/python-modules/effect {};
+  nixpkgs = callPackage ../development/python-modules/nixpkgs { };
 
-  enum = callPackage ../development/python-modules/enum { };
+  nixpkgs-pytools = callPackage ../development/python-modules/nixpkgs-pytools { };
 
-  enum-compat = callPackage ../development/python-modules/enum-compat { };
+  nix-prefetch-github = callPackage ../development/python-modules/nix-prefetch-github { };
 
-  enum34 = callPackage ../development/python-modules/enum34 { };
+  nltk = callPackage ../development/python-modules/nltk { };
 
-  epc = callPackage ../development/python-modules/epc { };
+  nmigen-boards = callPackage ../development/python-modules/nmigen-boards { };
 
-  et_xmlfile = callPackage ../development/python-modules/et_xmlfile { };
+  nmigen = callPackage ../development/python-modules/nmigen { };
 
-  etesync = callPackage ../development/python-modules/etesync { };
+  nmigen-soc = callPackage ../development/python-modules/nmigen-soc { };
 
-  eventlet = callPackage ../development/python-modules/eventlet { };
+  nodeenv = callPackage ../development/python-modules/nodeenv { };
 
-  exifread = callPackage ../development/python-modules/exifread { };
+  node-semver = callPackage ../development/python-modules/node-semver { };
 
-  fastimport = callPackage ../development/python-modules/fastimport { };
+  noise = callPackage ../development/python-modules/noise { };
 
-  fastpair = callPackage ../development/python-modules/fastpair { };
+  nose2 = callPackage ../development/python-modules/nose2 { };
 
-  fastrlock = callPackage ../development/python-modules/fastrlock {};
+  nose = callPackage ../development/python-modules/nose { };
 
-  feedgen = callPackage ../development/python-modules/feedgen { };
+  nose-cov = callPackage ../development/python-modules/nose-cov { };
 
-  feedgenerator = callPackage ../development/python-modules/feedgenerator {
-    inherit (pkgs) glibcLocales;
-  };
+  nose-cover3 = callPackage ../development/python-modules/nose-cover3 { };
 
-  feedparser = callPackage ../development/python-modules/feedparser { };
+  nose-cprof = callPackage ../development/python-modules/nose-cprof { };
 
-  pyfribidi = callPackage ../development/python-modules/pyfribidi { };
+  nose-exclude = callPackage ../development/python-modules/nose-exclude { };
 
-  pyftpdlib = callPackage ../development/python-modules/pyftpdlib { };
+  nose-focus = callPackage ../development/python-modules/nose-focus { };
 
-  filebrowser_safe = callPackage ../development/python-modules/filebrowser_safe { };
+  nosejs = callPackage ../development/python-modules/nosejs { };
 
-  pycodestyle = callPackage ../development/python-modules/pycodestyle { };
+  nose-of-yeti = callPackage ../development/python-modules/nose-of-yeti { };
 
-  filebytes = callPackage ../development/python-modules/filebytes { };
+  nose-pattern-exclude = callPackage ../development/python-modules/nose-pattern-exclude { };
 
-  filelock = callPackage ../development/python-modules/filelock {};
+  nose_progressive = callPackage ../development/python-modules/nose_progressive { };
 
-  fiona = callPackage ../development/python-modules/fiona { gdal_2 = pkgs.gdal_2; };
+  nose-randomly = callPackage ../development/python-modules/nose-randomly { };
 
-  fitbit = callPackage ../development/python-modules/fitbit { };
+  nose_warnings_filters = callPackage ../development/python-modules/nose_warnings_filters { };
 
-  flake8 = callPackage ../development/python-modules/flake8 { };
+  nosexcover = callPackage ../development/python-modules/nosexcover { };
 
-  flake8-blind-except = callPackage ../development/python-modules/flake8-blind-except { };
+  notebook = if isPy3k then
+    callPackage ../development/python-modules/notebook { }
+  else
+    callPackage ../development/python-modules/notebook/2.nix { };
 
-  flake8-debugger = callPackage ../development/python-modules/flake8-debugger { };
+  notedown = callPackage ../development/python-modules/notedown { };
 
-  flake8-future-import = callPackage ../development/python-modules/flake8-future-import { };
+  notify2 = callPackage ../development/python-modules/notify2 { };
 
-  flake8-import-order = callPackage ../development/python-modules/flake8-import-order { };
+  notify = callPackage ../development/python-modules/notify { };
 
-  flake8-polyfill = callPackage ../development/python-modules/flake8-polyfill { };
+  notmuch = callPackage ../development/python-modules/notmuch { inherit (pkgs) notmuch; };
 
-  flaky = callPackage ../development/python-modules/flaky { };
+  nototools = callPackage ../data/fonts/noto-fonts/tools.nix { };
 
-  flask = callPackage ../development/python-modules/flask { };
+  nplusone = callPackage ../development/python-modules/nplusone { };
 
-  flask-admin = callPackage ../development/python-modules/flask-admin { };
+  ntlm-auth = callPackage ../development/python-modules/ntlm-auth { };
 
-  flask-appbuilder = callPackage ../development/python-modules/flask-appbuilder { };
+  ntplib = callPackage ../development/python-modules/ntplib { };
 
-  flask-api = callPackage ../development/python-modules/flask-api { };
+  Nuitka = callPackage ../development/python-modules/nuitka { };
 
-  flask_assets = callPackage ../development/python-modules/flask-assets { };
+  num2words = callPackage ../development/python-modules/num2words { };
 
-  flask-autoindex = callPackage ../development/python-modules/flask-autoindex { };
+  numba = callPackage ../development/python-modules/numba { };
 
-  flask-babel = callPackage ../development/python-modules/flask-babel { };
+  numcodecs = callPackage ../development/python-modules/numcodecs { inherit (pkgs) gcc8; };
 
-  flask-babelex = callPackage ../development/python-modules/flask-babelex { };
+  numericalunits = callPackage ../development/python-modules/numericalunits { };
 
-  flask-bcrypt = callPackage ../development/python-modules/flask-bcrypt { };
+  numexpr = callPackage ../development/python-modules/numexpr { };
 
-  flask-bootstrap = callPackage ../development/python-modules/flask-bootstrap { };
+  numpydoc = callPackage ../development/python-modules/numpydoc { };
 
-  flask-caching = callPackage ../development/python-modules/flask-caching { };
+  numpy = if pythonOlder "3.5" then
+    callPackage ../development/python-modules/numpy/1.16.nix { }
+  else
+    callPackage ../development/python-modules/numpy { };
 
-  flask-common = callPackage ../development/python-modules/flask-common { };
+  numpy-stl = callPackage ../development/python-modules/numpy-stl { };
 
-  flask-compress = callPackage ../development/python-modules/flask-compress { };
+  numtraits = callPackage ../development/python-modules/numtraits { };
 
-  flask-cors = callPackage ../development/python-modules/flask-cors { };
+  nunavut = callPackage ../development/python-modules/nunavut { };
 
-  flask_elastic = callPackage ../development/python-modules/flask-elastic { };
+  nvchecker = callPackage ../development/python-modules/nvchecker { };
 
-  flask-httpauth = callPackage ../development/python-modules/flask-httpauth { };
+  nwdiag = callPackage ../development/python-modules/nwdiag { };
 
-  flask-jwt-extended = callPackage ../development/python-modules/flask-jwt-extended { };
+  nxt-python = callPackage ../development/python-modules/nxt-python { };
 
-  flask-limiter = callPackage ../development/python-modules/flask-limiter { };
+  oath = callPackage ../development/python-modules/oath { };
 
-  flask_login = callPackage ../development/python-modules/flask-login { };
+  oauth2 = callPackage ../development/python-modules/oauth2 { };
 
-  flask_ldap_login = callPackage ../development/python-modules/flask-ldap-login { };
+  oauth2client = callPackage ../development/python-modules/oauth2client { };
 
-  flask_mail = callPackage ../development/python-modules/flask-mail { };
+  oauth = callPackage ../development/python-modules/oauth { };
 
-  flask_marshmallow = callPackage ../development/python-modules/flask-marshmallow { };
+  oauthenticator = callPackage ../development/python-modules/oauthenticator { };
 
-  flask_migrate = callPackage ../development/python-modules/flask-migrate { };
+  oauthlib = if isPy27 then
+    callPackage ../development/python-modules/oauthlib/3.1.nix { }
+  else
+    callPackage ../development/python-modules/oauthlib { };
 
-  flask-mongoengine = callPackage ../development/python-modules/flask-mongoengine { };
+  obfsproxy = callPackage ../development/python-modules/obfsproxy { };
 
-  flask-openid = callPackage ../development/python-modules/flask-openid { };
+  objgraph = callPackage ../development/python-modules/objgraph { graphvizPkg = pkgs.graphviz; };
 
-  flask-paginate = callPackage ../development/python-modules/flask-paginate { };
+  od = callPackage ../development/python-modules/od { };
 
-  flask_principal = callPackage ../development/python-modules/flask-principal { };
+  odfpy = callPackage ../development/python-modules/odfpy { };
 
-  flask-pymongo = callPackage ../development/python-modules/Flask-PyMongo { };
+  offtrac = callPackage ../development/python-modules/offtrac { };
 
-  flask-restful = callPackage ../development/python-modules/flask-restful { };
+  ofxclient = callPackage ../development/python-modules/ofxclient { };
 
-  flask-restplus = callPackage ../development/python-modules/flask-restplus { };
+  ofxhome = callPackage ../development/python-modules/ofxhome { };
 
-  flask-reverse-proxy-fix = callPackage ../development/python-modules/flask-reverse-proxy-fix { };
+  ofxparse = callPackage ../development/python-modules/ofxparse { };
 
-  flask_script = callPackage ../development/python-modules/flask-script { };
+  ofxtools = callPackage ../development/python-modules/ofxtools { };
 
-  flask-silk = callPackage ../development/python-modules/flask-silk { };
+  olefile = callPackage ../development/python-modules/olefile { };
 
-  flask-socketio = callPackage ../development/python-modules/flask-socketio { };
+  omegaconf = callPackage ../development/python-modules/omegaconf { };
 
-  flask-sockets = callPackage ../development/python-modules/flask-sockets { };
+  onkyo-eiscp = callPackage ../development/python-modules/onkyo-eiscp { };
 
-  flask_sqlalchemy = callPackage ../development/python-modules/flask-sqlalchemy { };
+  onnx = callPackage ../development/python-modules/onnx { };
 
-  flask-swagger = callPackage ../development/python-modules/flask-swagger { };
+  openant = callPackage ../development/python-modules/openant { };
 
-  flask-swagger-ui = callPackage ../development/python-modules/flask-swagger-ui { };
+  openapi-spec-validator = callPackage ../development/python-modules/openapi-spec-validator { };
 
-  flask_testing = callPackage ../development/python-modules/flask-testing { };
+  opencv3 = toPythonModule (pkgs.opencv3.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  flask-versioned = callPackage ../development/python-modules/flask-versioned { };
+  opencv4 = toPythonModule (pkgs.opencv4.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  flask_wtf = callPackage ../development/python-modules/flask-wtf { };
+  opencv = disabledIf isPy3k (toPythonModule (pkgs.opencv.override {
+    enablePython = true;
+    pythonPackages = self;
+  }));
 
-  wtforms = callPackage ../development/python-modules/wtforms { };
+  openidc-client = callPackage ../development/python-modules/openidc-client { };
 
-  wtf-peewee = callPackage ../development/python-modules/wtf-peewee { };
+  openpyxl = if pythonAtLeast "3.6" then
+    callPackage ../development/python-modules/openpyxl { }
+  else
+    callPackage ../development/python-modules/openpyxl/2.nix { };
 
-  graph-tool = callPackage ../development/python-modules/graph-tool/2.x.x.nix {
-    inherit (pkgs) pkg-config;
-  };
+  openrazer = callPackage ../development/python-modules/openrazer/pylib.nix { };
 
-  grappelli_safe = callPackage ../development/python-modules/grappelli_safe { };
+  openrazer-daemon = callPackage ../development/python-modules/openrazer/daemon.nix { };
 
-  greatfet = callPackage ../development/python-modules/greatfet { };
+  opentimestamps = callPackage ../development/python-modules/opentimestamps { };
 
-  pygreat = callPackage ../development/python-modules/pygreat { };
+  opentracing = callPackage ../development/python-modules/opentracing { };
 
-  pytorch = callPackage ../development/python-modules/pytorch {
-    cudaSupport = pkgs.config.cudaSupport or false;
-  };
+  openwebifpy = callPackage ../development/python-modules/openwebifpy { };
 
-  pyro-ppl = callPackage ../development/python-modules/pyro-ppl {};
+  openwrt-luci-rpc = disabledIf (!isPy3k) (callPackage ../development/python-modules/openwrt-luci-rpc { });
 
   opt-einsum = if isPy27 then
-      callPackage ../development/python-modules/opt-einsum/2.nix {}
-    else
-      callPackage ../development/python-modules/opt-einsum {};
-
-  pytorchWithCuda = self.pytorch.override {
-    cudaSupport = true;
-  };
+    callPackage ../development/python-modules/opt-einsum/2.nix { }
+  else
+    callPackage ../development/python-modules/opt-einsum { };
 
-  pytorchWithoutCuda = self.pytorch.override {
-    cudaSupport = false;
-  };
+  optuna = callPackage ../development/python-modules/optuna { };
 
-  pytorch-metric-learning = callPackage ../development/python-modules/pytorch-metric-learning { };
+  opuslib = callPackage ../development/python-modules/opuslib { };
 
-  pythondialog = callPackage ../development/python-modules/pythondialog { };
+  ordereddict = callPackage ../development/python-modules/ordereddict { };
 
-  python2-pythondialog = callPackage ../development/python-modules/python2-pythondialog { };
+  orderedmultidict = callPackage ../development/python-modules/orderedmultidict { };
 
-  pyRFC3339 = callPackage ../development/python-modules/pyrfc3339 { };
+  ordered-set = callPackage ../development/python-modules/ordered-set { };
 
-  rfc3987 = callPackage ../development/python-modules/rfc3987 { };
+  orderedset = callPackage ../development/python-modules/orderedset { };
 
-  ConfigArgParse = callPackage ../development/python-modules/configargparse { };
+  orm = callPackage ../development/python-modules/orm { };
 
-  jsonschema = callPackage ../development/python-modules/jsonschema { };
+  ortools = (toPythonModule (pkgs.or-tools.override { inherit (self) python; })).python;
 
-  vcversioner = callPackage ../development/python-modules/vcversioner { };
+  osc = callPackage ../development/python-modules/osc { };
 
-  falcon = callPackage ../development/python-modules/falcon { };
+  oscrypto = callPackage ../development/python-modules/oscrypto { };
 
-  hug = callPackage ../development/python-modules/hug { };
+  oset = callPackage ../development/python-modules/oset { };
 
-  flup = callPackage ../development/python-modules/flup { };
+  osmnx = callPackage ../development/python-modules/osmnx { };
 
-  fn = callPackage ../development/python-modules/fn { };
+  osmpythontools = callPackage ../development/python-modules/osmpythontools { };
 
-  folium = callPackage ../development/python-modules/folium { };
+  osqp = callPackage ../development/python-modules/osqp { };
 
-  fontforge = toPythonModule (pkgs.fontforge.override {
-    withPython = true;
-    inherit python;
-  });
+  outcome = callPackage ../development/python-modules/outcome { };
 
-  fonttools = callPackage ../development/python-modules/fonttools { };
+  ovh = callPackage ../development/python-modules/ovh { };
 
-  foolscap = callPackage ../development/python-modules/foolscap { };
+  ovito = toPythonModule (pkgs.libsForQt5.callPackage ../development/python-modules/ovito { pythonPackages = self; });
 
-  forbiddenfruit = callPackage ../development/python-modules/forbiddenfruit { };
+  owslib = callPackage ../development/python-modules/owslib { };
 
-  fusepy = callPackage ../development/python-modules/fusepy { };
+  oyaml = callPackage ../development/python-modules/oyaml { };
 
-  future = callPackage ../development/python-modules/future { };
+  packaging = callPackage ../development/python-modules/packaging { };
 
-  futures = callPackage ../development/python-modules/futures { };
+  packet-python = callPackage ../development/python-modules/packet-python { };
 
-  galario = toPythonModule (pkgs.galario.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  pafy = callPackage ../development/python-modules/pafy { };
 
-  gcovr = callPackage ../development/python-modules/gcovr { };
+  pagelabels = callPackage ../development/python-modules/pagelabels { };
 
-  gdal = toPythonModule (pkgs.gdal.override {
-    pythonPackages = self;
-  });
+  pagerduty = callPackage ../development/python-modules/pagerduty { };
 
-  gdrivefs = callPackage ../development/python-modules/gdrivefs { };
+  paho-mqtt = callPackage ../development/python-modules/paho-mqtt { };
 
-  geant4 = disabledIf (!isPy3k) (toPythonModule (pkgs.geant4.override {
-    enablePython = true;
-    python3 = python;
-  }));
+  palettable = callPackage ../development/python-modules/palettable { };
 
-  genshi = callPackage ../development/python-modules/genshi { };
+  pam = callPackage ../development/python-modules/pam { inherit (pkgs) pam; };
 
-  gentools = callPackage ../development/python-modules/gentools { };
+  pamela = callPackage ../development/python-modules/pamela { };
 
-  gevent = callPackage ../development/python-modules/gevent { };
+  pamqp = callPackage ../development/python-modules/pamqp { };
 
-  geventhttpclient = callPackage ../development/python-modules/geventhttpclient { };
+  pandas = if isPy3k then
+    callPackage ../development/python-modules/pandas { }
+  else
+    callPackage ../development/python-modules/pandas/2.nix { };
 
-  gevent-socketio = callPackage ../development/python-modules/gevent-socketio { };
+  pandoc-attributes = callPackage ../development/python-modules/pandoc-attributes { };
 
-  geopandas = callPackage ../development/python-modules/geopandas { };
+  pandocfilters = callPackage ../development/python-modules/pandocfilters { };
 
-  geojson = callPackage ../development/python-modules/geojson { };
+  panel = callPackage ../development/python-modules/panel { };
 
-  gevent-websocket = callPackage ../development/python-modules/gevent-websocket { };
+  papermill = callPackage ../development/python-modules/papermill { };
 
-  genzshcomp = callPackage ../development/python-modules/genzshcomp { };
+  paperspace = callPackage ../development/python-modules/paperspace { };
 
-  gflags = callPackage ../development/python-modules/gflags { };
+  paperwork-backend = callPackage ../applications/office/paperwork/backend.nix { };
 
-  ghdiff = callPackage ../development/python-modules/ghdiff { };
+  papis = callPackage ../development/python-modules/papis { };
 
-  gipc = callPackage ../development/python-modules/gipc { };
+  papis-python-rofi = callPackage ../development/python-modules/papis-python-rofi { };
 
-  git-revise = callPackage ../development/python-modules/git-revise { };
+  param = callPackage ../development/python-modules/param { };
 
-  git-sweep = callPackage ../development/python-modules/git-sweep { };
+  parameterized = callPackage ../development/python-modules/parameterized { };
 
-  glances = throw "glances has moved to pkgs.glances"; # added 2020-20-28
+  paramiko = callPackage ../development/python-modules/paramiko { };
 
-  github3_py = callPackage ../development/python-modules/github3_py { };
+  paramz = callPackage ../development/python-modules/paramz { };
 
-  github-webhook = callPackage ../development/python-modules/github-webhook { };
+  parfive = callPackage ../development/python-modules/parfive { };
 
-  goobook = callPackage ../development/python-modules/goobook { };
+  parse = callPackage ../development/python-modules/parse { };
 
-  googleapis_common_protos = callPackage ../development/python-modules/googleapis_common_protos { };
+  parsedatetime = callPackage ../development/python-modules/parsedatetime { };
 
-  google-auth-httplib2 = callPackage ../development/python-modules/google-auth-httplib2 { };
+  parsel = callPackage ../development/python-modules/parsel { };
 
-  google-auth-oauthlib = callPackage ../development/python-modules/google-auth-oauthlib { };
+  parse-type = callPackage ../development/python-modules/parse-type { };
 
-  google_api_core = callPackage ../development/python-modules/google_api_core { };
+  parsimonious = callPackage ../development/python-modules/parsimonious { };
 
-  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 else
-    # Python 2.7 support was deprecated but is still needed by weboob and duplicity
-    google_api_python_client.overridePythonAttrs (old: rec {
-      version = "1.7.6";
-      src = old.src.override {
-        inherit version;
-        sha256 = "14w5sdrp0bk9n0r2lmpqmrbf2zclpfq6q7giyahnskkfzdkb165z";
-      };
-    });
+  parsley = callPackage ../development/python-modules/parsley { };
 
-  google_apputils = callPackage ../development/python-modules/google_apputils { };
+  parso = callPackage ../development/python-modules/parso { };
 
-  google_auth = callPackage ../development/python-modules/google_auth { };
+  parsy = callPackage ../development/python-modules/parsy { };
 
-  google_cloud_asset = callPackage ../development/python-modules/google_cloud_asset { };
+  partd = callPackage ../development/python-modules/partd { };
 
-  google_cloud_automl = callPackage ../development/python-modules/google_cloud_automl { };
+  parver = callPackage ../development/python-modules/parver { };
+  arpeggio = callPackage ../development/python-modules/arpeggio { };
 
-  google_cloud_core = callPackage ../development/python-modules/google_cloud_core { };
+  passlib = callPackage ../development/python-modules/passlib { };
 
-  google_cloud_bigquery = callPackage ../development/python-modules/google_cloud_bigquery { };
+  paste = callPackage ../development/python-modules/paste { };
 
-  google_cloud_bigquery_datatransfer = callPackage ../development/python-modules/google_cloud_bigquery_datatransfer { };
+  PasteDeploy = callPackage ../development/python-modules/pastedeploy { };
 
-  google_cloud_bigtable = callPackage ../development/python-modules/google_cloud_bigtable { };
+  pastel = callPackage ../development/python-modules/pastel { };
 
-  google_cloud_container = callPackage ../development/python-modules/google_cloud_container { };
+  pasteScript = callPackage ../development/python-modules/pastescript { };
 
-  google_cloud_dataproc = callPackage ../development/python-modules/google_cloud_dataproc { };
+  patator = callPackage ../development/python-modules/patator { };
 
-  google_cloud_datastore = callPackage ../development/python-modules/google_cloud_datastore { };
+  patch = callPackage ../development/python-modules/patch { };
 
-  google_cloud_dlp = callPackage ../development/python-modules/google_cloud_dlp { };
+  patch-ng = callPackage ../development/python-modules/patch-ng { };
 
-  google_cloud_dns = callPackage ../development/python-modules/google_cloud_dns { };
+  path-and-address = callPackage ../development/python-modules/path-and-address { };
 
-  google_cloud_error_reporting = callPackage ../development/python-modules/google_cloud_error_reporting { };
+  pathlib2 = callPackage ../development/python-modules/pathlib2 { };
 
-  google_cloud_firestore = callPackage ../development/python-modules/google_cloud_firestore { };
+  pathlib = callPackage ../development/python-modules/pathlib { };
 
-  google_cloud_iot = callPackage ../development/python-modules/google_cloud_iot { };
+  pathos = callPackage ../development/python-modules/pathos { };
 
-  google_cloud_kms = callPackage ../development/python-modules/google_cloud_kms { };
+  pathpy = if isPy3k then
+    callPackage ../development/python-modules/path.py { }
+  else
+    callPackage ../development/python-modules/path.py/2.nix { };
 
-  google_cloud_language = callPackage ../development/python-modules/google_cloud_language { };
+  pathspec = callPackage ../development/python-modules/pathspec { };
 
-  google_cloud_logging = callPackage ../development/python-modules/google_cloud_logging { };
+  pathtools = callPackage ../development/python-modules/pathtools { };
 
-  google_cloud_monitoring = callPackage ../development/python-modules/google_cloud_monitoring { };
+  patsy = callPackage ../development/python-modules/patsy { };
 
-  google_cloud_pubsub = callPackage ../development/python-modules/google_cloud_pubsub { };
+  paver = callPackage ../development/python-modules/paver { };
 
-  google_cloud_redis = callPackage ../development/python-modules/google_cloud_redis { };
+  paypalrestsdk = callPackage ../development/python-modules/paypalrestsdk { };
 
-  google_cloud_resource_manager = callPackage ../development/python-modules/google_cloud_resource_manager { };
+  pbkdf2 = callPackage ../development/python-modules/pbkdf2 { };
 
-  google_cloud_runtimeconfig = callPackage ../development/python-modules/google_cloud_runtimeconfig { };
+  pbr = callPackage ../development/python-modules/pbr { };
 
-  google_cloud_secret_manager = callPackage ../development/python-modules/google_cloud_secret_manager { };
+  pc-ble-driver-py = toPythonModule (callPackage ../development/python-modules/pc-ble-driver-py { });
 
-  google_cloud_securitycenter = callPackage ../development/python-modules/google_cloud_securitycenter { };
+  pcpp = callPackage ../development/python-modules/pcpp { };
 
-  google_cloud_spanner = callPackage ../development/python-modules/google_cloud_spanner { };
+  pdf2image = callPackage ../development/python-modules/pdf2image { };
 
-  google_cloud_storage = callPackage ../development/python-modules/google_cloud_storage { };
+  pdfkit = callPackage ../development/python-modules/pdfkit { };
 
-  google_cloud_speech = callPackage ../development/python-modules/google_cloud_speech { };
+  pdfminer = callPackage ../development/python-modules/pdfminer_six { };
 
-  google_cloud_tasks = callPackage ../development/python-modules/google_cloud_tasks { };
+  pdfposter = callPackage ../development/python-modules/pdfposter { };
 
-  google_cloud_testutils = callPackage ../development/python-modules/google_cloud_testutils { };
+  pdfrw = callPackage ../development/python-modules/pdfrw { };
 
-  google_cloud_texttospeech = callPackage ../development/python-modules/google_cloud_texttospeech { };
+  pdftotext = callPackage ../development/python-modules/pdftotext { };
 
-  google_cloud_trace = callPackage ../development/python-modules/google_cloud_trace { };
+  pdfx = callPackage ../development/python-modules/pdfx { };
 
-  google_cloud_translate = callPackage ../development/python-modules/google_cloud_translate { };
+  pecan = callPackage ../development/python-modules/pecan { };
 
-  google_cloud_videointelligence = callPackage ../development/python-modules/google_cloud_videointelligence { };
+  peewee = callPackage ../development/python-modules/peewee { };
 
-  google_cloud_vision = callPackage ../development/python-modules/google_cloud_vision { };
+  pefile = callPackage ../development/python-modules/pefile { };
 
-  google_cloud_websecurityscanner = callPackage ../development/python-modules/google_cloud_websecurityscanner { };
+  pelican = callPackage ../development/python-modules/pelican { inherit (pkgs) glibcLocales git; };
 
-  google-i18n-address = callPackage ../development/python-modules/google-i18n-address { };
+  pendulum = callPackage ../development/python-modules/pendulum { };
 
-  google_resumable_media = callPackage ../development/python-modules/google_resumable_media { };
+  pep257 = callPackage ../development/python-modules/pep257 { };
 
-  gorilla = callPackage ../development/python-modules/gorilla { };
+  pep517 = callPackage ../development/python-modules/pep517 { };
 
-  gpgme = toPythonModule (pkgs.gpgme.override {
-    pythonSupport = true;
-    inherit python;
-  });
+  pep8 = callPackage ../development/python-modules/pep8 { };
 
-  gphoto2 = callPackage ../development/python-modules/gphoto2 {
-    inherit (pkgs) pkgconfig;
-  };
+  pep8-naming = callPackage ../development/python-modules/pep8-naming { };
 
-  graphql-core = callPackage ../development/python-modules/graphql-core { };
+  peppercorn = callPackage ../development/python-modules/peppercorn { };
 
-  graphql-server-core = callPackage ../development/python-modules/graphql-server-core { };
+  percol = callPackage ../development/python-modules/percol { };
 
-  grammalecte = callPackage ../development/python-modules/grammalecte { };
+  perfplot = callPackage ../development/python-modules/perfplot { };
 
-  greenlet = callPackage ../development/python-modules/greenlet { };
+  periodictable = callPackage ../development/python-modules/periodictable { };
 
-  grib-api = disabledIf (!isPy27) (toPythonModule
-    (pkgs.grib-api.override {
-      enablePython = true;
-      pythonPackages = self;
-    }));
+  persim = callPackage ../development/python-modules/persim { };
 
-  grpcio = callPackage ../development/python-modules/grpcio { };
+  persistent = callPackage ../development/python-modules/persistent { };
 
-  grpcio-tools = callPackage ../development/python-modules/grpcio-tools { };
+  persisting-theory = callPackage ../development/python-modules/persisting-theory { };
 
-  grpcio-gcp = callPackage ../development/python-modules/grpcio-gcp { };
+  pex = callPackage ../development/python-modules/pex { };
 
-  grpc_google_iam_v1 = callPackage ../development/python-modules/grpc_google_iam_v1 { };
+  pexif = callPackage ../development/python-modules/pexif { };
 
-  gspread = callPackage ../development/python-modules/gspread { };
+  pexpect = callPackage ../development/python-modules/pexpect { };
 
-  gtts-token = callPackage ../development/python-modules/gtts-token { };
+  pg8000 = callPackage ../development/python-modules/pg8000 { };
+  pg8000_1_12 = callPackage ../development/python-modules/pg8000/1_12.nix { };
 
-  gym = callPackage ../development/python-modules/gym { };
+  pgcli = callPackage ../development/tools/database/pgcli { };
 
-  gyp = callPackage ../development/python-modules/gyp { };
+  pglast = callPackage ../development/python-modules/pglast { };
 
-  guessit = callPackage ../development/python-modules/guessit { };
+  pgpdump = callPackage ../development/python-modules/pgpdump { };
 
-  rebulk = callPackage ../development/python-modules/rebulk { };
+  pgpy = callPackage ../development/python-modules/pgpy { };
 
-  gunicorn = if isPy27 then
-          callPackage ../development/python-modules/gunicorn/19.nix { }
-        else
-          callPackage ../development/python-modules/gunicorn { };
+  pgsanity = callPackage ../development/python-modules/pgsanity { };
 
-  hawkauthlib = callPackage ../development/python-modules/hawkauthlib { };
+  pgspecial = callPackage ../development/python-modules/pgspecial { };
 
-  hdbscan = callPackage ../development/python-modules/hdbscan { };
+  phe = callPackage ../development/python-modules/phe { };
 
-  hmmlearn = callPackage ../development/python-modules/hmmlearn { };
+  phik = callPackage ../development/python-modules/phik { };
 
-  hcs_utils = callPackage ../development/python-modules/hcs_utils { };
+  phonenumbers = callPackage ../development/python-modules/phonenumbers { };
 
-  hetzner = callPackage ../development/python-modules/hetzner { };
+  phonopy = callPackage ../development/python-modules/phonopy { };
 
-  hiredis = callPackage ../development/python-modules/hiredis { };
+  phpserialize = callPackage ../development/python-modules/phpserialize { };
 
-  homeassistant-pyozw = callPackage ../development/python-modules/homeassistant-pyozw { };
+  piccata = callPackage ../development/python-modules/piccata { };
 
-  htmllaundry = callPackage ../development/python-modules/htmllaundry { };
+  pickleshare = callPackage ../development/python-modules/pickleshare { };
 
-  html-sanitizer = callPackage ../development/python-modules/html-sanitizer { };
+  picos = callPackage ../development/python-modules/picos { };
 
-  html5lib = callPackage ../development/python-modules/html5lib { };
+  pid = callPackage ../development/python-modules/pid { };
 
-  httmock = callPackage ../development/python-modules/httmock { };
+  piep = callPackage ../development/python-modules/piep { };
 
-  http_signature = callPackage ../development/python-modules/http_signature { };
+  piexif = callPackage ../development/python-modules/piexif { };
 
-  httpbin = callPackage ../development/python-modules/httpbin { };
+  pika = callPackage ../development/python-modules/pika { };
 
-  httplib2 = callPackage ../development/python-modules/httplib2 { };
+  pika-pool = callPackage ../development/python-modules/pika-pool { };
 
-  hvac = callPackage ../development/python-modules/hvac { };
+  pikepdf = callPackage ../development/python-modules/pikepdf { };
 
-  hydra = callPackage ../development/python-modules/hydra { };
+  pilkit = callPackage ../development/python-modules/pilkit { };
 
-  # 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 { };
+  pillowfight = callPackage ../development/python-modules/pillowfight { };
 
-  hypothesis = if isPy3k then
-    callPackage ../development/python-modules/hypothesis { }
+  pillow = if isPy27 then
+    callPackage ../development/python-modules/pillow/6.nix {
+      inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
+      inherit (pkgs.xorg) libX11;
+    }
   else
-    self.hypothesis_4;
+    callPackage ../development/python-modules/pillow {
+      inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
+      inherit (pkgs.xorg) libX11;
+    };
 
-  hydra-check = callPackage ../development/python-modules/hydra-check { };
+  pims = callPackage ../development/python-modules/pims { };
 
-  colored = callPackage ../development/python-modules/colored { };
+  pint = callPackage ../development/python-modules/pint { };
 
-  xdg = callPackage ../development/python-modules/xdg { };
+  pip = callPackage ../development/python-modules/pip { };
 
-  xdis = callPackage ../development/python-modules/xdis { };
+  pipdate = callPackage ../development/python-modules/pipdate { };
 
-  xnd = callPackage ../development/python-modules/xnd { };
+  pip-tools = callPackage ../development/python-modules/pip-tools {
+    git = pkgs.gitMinimal;
+    glibcLocales = pkgs.glibcLocales;
+  };
 
-  uncompyle6 = callPackage ../development/python-modules/uncompyle6 { };
+  pipx = callPackage ../development/python-modules/pipx { };
 
-  unrpa = callPackage ../development/python-modules/unrpa { };
+  pivy = callPackage ../development/python-modules/pivy { };
 
-  lsi = callPackage ../development/python-modules/lsi { };
+  pkgconfig = callPackage ../development/python-modules/pkgconfig { inherit (pkgs) pkgconfig; };
 
-  hkdf = callPackage ../development/python-modules/hkdf { };
+  pkginfo = callPackage ../development/python-modules/pkginfo { };
 
-  httpretty = if isPy3k then
-    callPackage ../development/python-modules/httpretty { }
-  else
-    callPackage ../development/python-modules/httpretty/0.nix { };
+  pkuseg = callPackage ../development/python-modules/pkuseg { };
 
-  iapws = callPackage ../development/python-modules/iapws { };
+  pkutils = callPackage ../development/python-modules/pkutils { };
 
-  icalendar = callPackage ../development/python-modules/icalendar { };
+  plac = callPackage ../development/python-modules/plac { };
 
-  ics = callPackage ../development/python-modules/ics { };
+  plaid-python = callPackage ../development/python-modules/plaid-python { };
 
-  ifaddr = callPackage ../development/python-modules/ifaddr { };
+  plaster = callPackage ../development/python-modules/plaster { };
 
-  ifconfig-parser = callPackage ../development/python-modules/ifconfig-parser { };
+  plaster-pastedeploy = callPackage ../development/python-modules/plaster-pastedeploy { };
 
-  imagecorruptions = callPackage ../development/python-modules/imagecorruptions { };
+  playsound = callPackage ../development/python-modules/playsound { };
 
-  imageio = callPackage ../development/python-modules/imageio { };
+  plexapi = callPackage ../development/python-modules/plexapi { };
 
-  imageio-ffmpeg = callPackage ../development/python-modules/imageio-ffmpeg { };
+  plexauth = callPackage ../development/python-modules/plexauth { };
 
-  imgaug = callPackage ../development/python-modules/imgaug { };
+  plexwebsocket = callPackage ../development/python-modules/plexwebsocket { };
 
-  inflection = callPackage ../development/python-modules/inflection { };
+  plone-testing = callPackage ../development/python-modules/plone-testing { };
 
-  influxdb = callPackage ../development/python-modules/influxdb { };
+  plotly = callPackage ../development/python-modules/plotly { };
 
-  infoqscraper = callPackage ../development/python-modules/infoqscraper { };
+  pluggy = callPackage ../development/python-modules/pluggy { };
 
-  inifile = callPackage ../development/python-modules/inifile { };
+  pluginbase = callPackage ../development/python-modules/pluginbase { };
 
-  interruptingcow = callPackage ../development/python-modules/interruptingcow {};
+  plumbum = callPackage ../development/python-modules/plumbum { };
 
-  iocapture = callPackage ../development/python-modules/iocapture { };
+  ply = callPackage ../development/python-modules/ply { };
 
-  iptools = callPackage ../development/python-modules/iptools { };
+  plyfile = callPackage ../development/python-modules/plyfile { };
 
-  ipy = callPackage ../development/python-modules/IPy { };
+  plyplus = callPackage ../development/python-modules/plyplus { };
 
-  ipydatawidgets = callPackage ../development/python-modules/ipydatawidgets { };
+  plyvel = callPackage ../development/python-modules/plyvel { };
 
-  ipykernel = if pythonOlder "3.4" then
-      callPackage ../development/python-modules/ipykernel/4.nix { }
-    else
-      callPackage ../development/python-modules/ipykernel { };
+  Pmw = callPackage ../development/python-modules/Pmw { };
 
-  ipyparallel = callPackage ../development/python-modules/ipyparallel { };
+  pocket = callPackage ../development/python-modules/pocket { };
 
-  ipython = if isPy27 then
-      callPackage ../development/python-modules/ipython/5.nix { }
-    else if isPy35 then
-      callPackage ../development/python-modules/ipython/7.9.nix { }
-    else
-      callPackage ../development/python-modules/ipython { };
+  podcastparser = callPackage ../development/python-modules/podcastparser { };
 
-  ipython_genutils = callPackage ../development/python-modules/ipython_genutils { };
+  podcats = callPackage ../development/python-modules/podcats { };
 
-  ipyvue = callPackage ../development/python-modules/ipyvue { };
+  poetry = callPackage ../development/python-modules/poetry { };
 
-  ipyvuetify = callPackage ../development/python-modules/ipyvuetify { };
+  poetry-core = callPackage ../development/python-modules/poetry-core { };
 
-  ipywidgets = callPackage ../development/python-modules/ipywidgets { };
+  poezio = callPackage ../applications/networking/instant-messengers/poezio { inherit (pkgs) pkgconfig; };
 
-  ipaddr = callPackage ../development/python-modules/ipaddr { };
+  polib = callPackage ../development/python-modules/polib { };
 
-  ipaddress = callPackage ../development/python-modules/ipaddress { };
+  polyline = callPackage ../development/python-modules/polyline { };
 
-  ipdb = callPackage ../development/python-modules/ipdb { };
+  pomegranate = callPackage ../development/python-modules/pomegranate { };
 
-  ipdbplugin = callPackage ../development/python-modules/ipdbplugin { };
+  pony = callPackage ../development/python-modules/pony { };
 
-  pythonIRClib = callPackage ../development/python-modules/pythonirclib { };
+  ponywhoosh = callPackage ../development/python-modules/ponywhoosh { };
 
-  iso-639 = callPackage ../development/python-modules/iso-639 {};
+  pooch = callPackage ../development/python-modules/pooch { };
 
-  iso3166 = callPackage ../development/python-modules/iso3166 {};
+  poppler-qt5 = callPackage ../development/python-modules/poppler-qt5 {
+    inherit (pkgs.qt5) qtbase;
+    inherit (pkgs.libsForQt5) poppler;
+    inherit (pkgs) pkgconfig;
+  };
 
-  iso8601 = callPackage ../development/python-modules/iso8601 { };
+  portalocker = callPackage ../development/python-modules/portalocker { };
 
-  isort = callPackage ../development/python-modules/isort {};
+  portend = callPackage ../development/python-modules/portend { };
 
-  isoweek = callPackage ../development/python-modules/isoweek {};
+  portpicker = callPackage ../development/python-modules/portpicker { };
 
-  jabberbot = callPackage ../development/python-modules/jabberbot {};
+  posix_ipc = callPackage ../development/python-modules/posix_ipc { };
 
-  jedi = callPackage ../development/python-modules/jedi { };
+  poster3 = callPackage ../development/python-modules/poster3 { };
 
-  jellyfish = callPackage ../development/python-modules/jellyfish { };
+  postorius = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/postorius.nix { });
 
-  jeepney = callPackage ../development/python-modules/jeepney { };
+  potr = callPackage ../development/python-modules/potr { };
 
-  j2cli = callPackage ../development/python-modules/j2cli { };
+  power = callPackage ../development/python-modules/power { };
 
-  jinja2 = callPackage ../development/python-modules/jinja2 { };
+  powerline = callPackage ../development/python-modules/powerline { };
 
-  jinja2_time = callPackage ../development/python-modules/jinja2_time { };
+  pox = callPackage ../development/python-modules/pox { };
 
-  jinja2_pluralize = callPackage ../development/python-modules/jinja2_pluralize { };
+  poyo = callPackage ../development/python-modules/poyo { };
 
-  jmespath = callPackage ../development/python-modules/jmespath { };
+  ppft = callPackage ../development/python-modules/ppft { };
 
-  journalwatch = callPackage ../tools/system/journalwatch {
-    inherit (self) systemd pytest;
-  };
+  pplpy = callPackage ../development/python-modules/pplpy { };
 
-  jq = callPackage ../development/python-modules/jq {
-    inherit (pkgs) jq;
-  };
+  pprintpp = callPackage ../development/python-modules/pprintpp { };
 
-  jsondate = callPackage ../development/python-modules/jsondate { };
+  pproxy = callPackage ../development/python-modules/pproxy { };
 
-  jsondiff = callPackage ../development/python-modules/jsondiff { };
+  pq = callPackage ../development/python-modules/pq { };
 
-  jsonnet = buildPythonPackage {
-    inherit (pkgs.jsonnet) name src;
-  };
+  prance = callPackage ../development/python-modules/prance { };
 
-  jupyter_client = if isPy3k then
-    callPackage ../development/python-modules/jupyter_client { }
+  prawcore = callPackage ../development/python-modules/prawcore { };
+
+  praw = if isPy3k then
+    callPackage ../development/python-modules/praw { }
   else
-    callPackage ../development/python-modules/jupyter_client/5.nix { };
+    callPackage ../development/python-modules/praw/6.3.nix { };
 
-  jupyter_core = callPackage ../development/python-modules/jupyter_core { };
+  precis-i18n = callPackage ../development/python-modules/precis-i18n { };
 
-  jupyter-repo2docker = callPackage ../development/python-modules/jupyter-repo2docker {
-    pkgs-docker = pkgs.docker;
-  };
+  pre-commit = callPackage ../development/python-modules/pre-commit { };
 
-  jupyterhub = callPackage ../development/python-modules/jupyterhub { };
+  preggy = callPackage ../development/python-modules/preggy { };
 
-  jupyterhub-ldapauthenticator = callPackage ../development/python-modules/jupyterhub-ldapauthenticator { };
+  premailer = callPackage ../development/python-modules/premailer { };
 
-  keyring = if isPy3k then
-    callPackage ../development/python-modules/keyring { }
-  else
-    callPackage ../development/python-modules/keyring/2.nix { };
+  preshed = callPackage ../development/python-modules/preshed { };
 
-  keyutils = callPackage ../development/python-modules/keyutils { inherit (pkgs) keyutils; };
+  pretend = callPackage ../development/python-modules/pretend { };
 
-  kiwisolver = if isPy3k then
-    callPackage ../development/python-modules/kiwisolver { }
-  else
-    callPackage ../development/python-modules/kiwisolver/1_1.nix { };
+  prettytable = callPackage ../development/python-modules/prettytable { };
 
-  klaus = callPackage ../development/python-modules/klaus {};
+  priority = callPackage ../development/python-modules/priority { };
 
-  klein = callPackage ../development/python-modules/klein { };
+  prison = callPackage ../development/python-modules/prison { };
 
-  koji = callPackage ../development/python-modules/koji { };
+  privacyidea = callPackage ../development/python-modules/privacyidea { };
+  privacyidea-ldap-proxy = callPackage ../development/python-modules/privacyidea/ldap-proxy.nix { };
 
-  kombu = callPackage ../development/python-modules/kombu { };
+  proboscis = callPackage ../development/python-modules/proboscis { };
 
-  konfig = callPackage ../development/python-modules/konfig { };
+  process-tests = callPackage ../development/python-modules/process-tests { };
 
-  kitchen = callPackage ../development/python-modules/kitchen { };
+  proglog = callPackage ../development/python-modules/proglog { };
 
-  knack = callPackage ../development/python-modules/knack { };
+  progressbar231 = callPackage ../development/python-modules/progressbar231 { };
 
-  kubernetes = callPackage ../development/python-modules/kubernetes { };
+  progressbar2 = callPackage ../development/python-modules/progressbar2 { };
 
-  k5test = callPackage ../development/python-modules/k5test {
-    inherit (pkgs) krb5Full findutils which;
-  };
+  progressbar33 = callPackage ../development/python-modules/progressbar33 { };
 
-  pylast = callPackage ../development/python-modules/pylast { };
+  progressbar = callPackage ../development/python-modules/progressbar { };
 
-  pylru = callPackage ../development/python-modules/pylru { };
+  progress = callPackage ../development/python-modules/progress { };
 
-  libnl-python = disabledIf isPy3k
-    (toPythonModule (pkgs.libnl.override{pythonSupport=true; inherit python; })).py;
+  prometheus_client = callPackage ../development/python-modules/prometheus_client { };
 
-  lark-parser = callPackage ../development/python-modules/lark-parser { };
+  promise = callPackage ../development/python-modules/promise { };
 
-  jsonpath_rw = callPackage ../development/python-modules/jsonpath_rw { };
+  prompt_toolkit = let
+    filename = if isPy3k then
+      ../development/python-modules/prompt_toolkit
+    else
+      ../development/python-modules/prompt_toolkit/1.nix;
+  in callPackage filename { };
+
+  property-manager = callPackage ../development/python-modules/property-manager { };
 
-  kerberos = callPackage ../development/python-modules/kerberos {
-    inherit (pkgs) kerberos;
+  protego = callPackage ../development/python-modules/protego { };
+
+  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;
   };
 
-  lazy_import = callPackage ../development/python-modules/lazy_import { };
+  prov = callPackage ../development/python-modules/prov { };
 
-  lazy-object-proxy = callPackage ../development/python-modules/lazy-object-proxy { };
+  prox-tv = callPackage ../development/python-modules/prox-tv { };
 
-  ldaptor = callPackage ../development/python-modules/ldaptor { };
+  psautohint = callPackage ../development/python-modules/psautohint { };
 
-  le = callPackage ../development/python-modules/le { };
+  psd-tools = callPackage ../development/python-modules/psd-tools { };
 
-  lektor = callPackage ../development/python-modules/lektor { };
+  psutil = callPackage ../development/python-modules/psutil { };
 
-  leveldb = callPackage ../development/python-modules/leveldb { };
+  psycopg2 = callPackage ../development/python-modules/psycopg2 { };
 
-  python-oauth2 = callPackage ../development/python-modules/python-oauth2 { };
+  ptable = callPackage ../development/python-modules/ptable { };
 
-  python_openzwave = callPackage ../development/python-modules/python_openzwave {
-    inherit (pkgs) pkgconfig;
-  };
+  ptest = callPackage ../development/python-modules/ptest { };
 
-  python-Levenshtein = callPackage ../development/python-modules/python-levenshtein { };
+  ptpython = callPackage ../development/python-modules/ptpython { prompt_toolkit = self.prompt_toolkit; };
 
-  python-unshare = callPackage ../development/python-modules/python-unshare { };
+  ptyprocess = callPackage ../development/python-modules/ptyprocess { };
 
-  fs = callPackage ../development/python-modules/fs { };
+  publicsuffix2 = callPackage ../development/python-modules/publicsuffix2 { };
 
-  fs-s3fs = callPackage ../development/python-modules/fs-s3fs { };
+  publicsuffix = callPackage ../development/python-modules/publicsuffix { };
 
-  libarcus = callPackage ../development/python-modules/libarcus { inherit (pkgs) protobuf; };
+  pudb = callPackage ../development/python-modules/pudb { };
 
-  libcloud = if isPy27 then
-      callPackage ../development/python-modules/libcloud/2.nix { }
-    else
-      callPackage ../development/python-modules/libcloud { };
+  pulp = callPackage ../development/python-modules/pulp { };
 
-  libgpuarray = callPackage ../development/python-modules/libgpuarray {
-    clblas = pkgs.clblas.override { boost = self.boost; };
-    cudaSupport = pkgs.config.cudaSupport or false;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-  };
+  pulsectl = callPackage ../development/python-modules/pulsectl { };
 
-  libgpiod = disabledIf (!isPy3k) (toPythonModule (pkgs.libgpiod.override {
-    enablePython = true;
-    python3 = python;
-  }));
+  pure-eval = callPackage ../development/python-modules/pure-eval { };
 
-  libkeepass = callPackage ../development/python-modules/libkeepass { };
+  pure-pcapy3 = callPackage ../development/python-modules/pure-pcapy3 { };
 
-  librepo = pipe pkgs.librepo [
-    toPythonModule
+  purepng = callPackage ../development/python-modules/purepng { };
 
-    (p: p.overrideAttrs (super: {
-      meta = super.meta // {
-        outputsToInstall = [ "py" ];
-      };
-    }))
+  pure-python-adb-homeassistant = callPackage ../development/python-modules/pure-python-adb-homeassistant { };
 
-    (p: p.override {
-      inherit python;
-    })
+  purl = callPackage ../development/python-modules/purl { };
 
-    (p: p.py)
-  ];
+  pushbullet = callPackage ../development/python-modules/pushbullet { };
 
-  libnacl = callPackage ../development/python-modules/libnacl {
-    inherit (pkgs) libsodium;
-  };
+  pushover-complete = callPackage ../development/python-modules/pushover-complete { };
 
-  libsavitar = callPackage ../development/python-modules/libsavitar { };
+  pvlib = callPackage ../development/python-modules/pvlib { };
 
-  libplist = disabledIf isPy3k
-    (toPythonModule (pkgs.libplist.override { enablePython = true; inherit python; })).py;
+  Pweave = callPackage ../development/python-modules/pweave { };
 
-  libxml2 = (toPythonModule (pkgs.libxml2.override{pythonSupport=true; inherit python;})).py;
+  pwntools = callPackage ../development/python-modules/pwntools { debugger = pkgs.gdb; };
 
-  libxslt = (toPythonModule (pkgs.libxslt.override{pythonSupport=true; inherit python; inherit (self) libxml2;})).py;
+  pxml = callPackage ../development/python-modules/pxml { };
 
-  limits = callPackage ../development/python-modules/limits { };
+  py2bit = callPackage ../development/python-modules/py2bit { };
 
-  limnoria = callPackage ../development/python-modules/limnoria { };
+  py3buddy = toPythonModule (callPackage ../development/python-modules/py3buddy { });
 
-  line_profiler = callPackage ../development/python-modules/line_profiler { };
+  py3exiv2 = callPackage ../development/python-modules/py3exiv2 { };
 
-  linode = callPackage ../development/python-modules/linode { };
+  py3status = callPackage ../development/python-modules/py3status { };
 
-  linode-api = callPackage ../development/python-modules/linode-api { };
+  py3to2 = callPackage ../development/python-modules/3to2 { };
 
-  livereload = callPackage ../development/python-modules/livereload { };
+  py4j = callPackage ../development/python-modules/py4j { };
 
-  llfuse = callPackage ../development/python-modules/llfuse {
-    inherit (pkgs) fuse pkgconfig; # use "real" fuse and pkgconfig, not the python modules
-  };
+  pyacoustid = callPackage ../development/python-modules/pyacoustid { };
 
-  locustio = callPackage ../development/python-modules/locustio { };
+  pyaes = callPackage ../development/python-modules/pyaes { };
 
-  llvmlite = callPackage ../development/python-modules/llvmlite { llvm = pkgs.llvm_8; };
+  pyairvisual = callPackage ../development/python-modules/pyairvisual { };
 
-  lockfile = callPackage ../development/python-modules/lockfile { };
+  pyalgotrade = callPackage ../development/python-modules/pyalgotrade { };
 
-  logilab_common = callPackage ../development/python-modules/logilab/common.nix {};
+  pyamf = callPackage ../development/python-modules/pyamf { };
 
-  logilab-constraint = callPackage ../development/python-modules/logilab/constraint.nix {};
+  pyamg = callPackage ../development/python-modules/pyamg { };
 
-  lxml = callPackage ../development/python-modules/lxml {inherit (pkgs) libxml2 libxslt zlib;};
+  pyaml = callPackage ../development/python-modules/pyaml { };
 
-  lxc = callPackage ../development/python-modules/lxc { };
+  pyannotate = callPackage ../development/python-modules/pyannotate { };
 
-  py_scrypt = callPackage ../development/python-modules/py_scrypt { };
+  pyarrow = callPackage ../development/python-modules/pyarrow { inherit (pkgs) arrow-cpp cmake pkgconfig; };
 
-  python_magic = callPackage ../development/python-modules/python-magic { };
+  pyasn1 = callPackage ../development/python-modules/pyasn1 { };
 
-  m3u8 = callPackage ../development/python-modules/m3u8 { };
+  pyasn1-modules = callPackage ../development/python-modules/pyasn1-modules { };
 
-  magic = callPackage ../development/python-modules/magic { };
+  pyatmo = callPackage ../development/python-modules/pyatmo { };
 
-  m2crypto = callPackage ../development/python-modules/m2crypto { };
+  pyatspi = callPackage ../development/python-modules/pyatspi { inherit (pkgs) pkgconfig; };
 
-  Mako = callPackage ../development/python-modules/Mako { };
+  pyatv = callPackage ../development/python-modules/pyatv { };
 
-  macfsevents = callPackage ../development/python-modules/macfsevents {
-    inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation CoreServices;
-  };
+  pyaudio = callPackage ../development/python-modules/pyaudio { };
 
-  maestral = callPackage ../development/python-modules/maestral { };
+  pyavm = callPackage ../development/python-modules/pyavm { };
 
-  manifestparser = callPackage ../development/python-modules/marionette-harness/manifestparser.nix {};
-  marionette_driver = callPackage ../development/python-modules/marionette-harness/marionette_driver.nix {};
-  mozcrash = callPackage ../development/python-modules/marionette-harness/mozcrash.nix {};
-  mozdevice = callPackage ../development/python-modules/marionette-harness/mozdevice.nix {};
-  mozfile = callPackage ../development/python-modules/marionette-harness/mozfile.nix {};
-  mozhttpd = callPackage ../development/python-modules/marionette-harness/mozhttpd.nix {};
-  mozinfo = callPackage ../development/python-modules/marionette-harness/mozinfo.nix {};
-  mozlog = callPackage ../development/python-modules/marionette-harness/mozlog.nix {};
-  moznetwork = callPackage ../development/python-modules/marionette-harness/moznetwork.nix {};
-  mozprocess = callPackage ../development/python-modules/marionette-harness/mozprocess.nix {};
-  mozprofile = callPackage ../development/python-modules/marionette-harness/mozprofile.nix {};
-  mozrunner = callPackage ../development/python-modules/marionette-harness/mozrunner.nix {};
-  moztest = callPackage ../development/python-modules/marionette-harness/moztest.nix {};
-  mozversion = callPackage ../development/python-modules/marionette-harness/mozversion.nix {};
-  marionette-harness = callPackage ../development/python-modules/marionette-harness {};
-
-  marisa = callPackage ../development/python-modules/marisa {
-    marisa = pkgs.marisa;
-  };
+  pyaxmlparser = callPackage ../development/python-modules/pyaxmlparser { };
 
-  marisa-trie = callPackage ../development/python-modules/marisa-trie { };
+  pybase64 = callPackage ../development/python-modules/pybase64 { };
 
-  Markups = callPackage ../development/python-modules/Markups { };
+  pybids = callPackage ../development/python-modules/pybids { };
 
-  markupsafe = callPackage ../development/python-modules/markupsafe { };
+  pybigwig = callPackage ../development/python-modules/pybigwig { };
 
-  marshmallow = callPackage ../development/python-modules/marshmallow { };
+  pybind11 = callPackage ../development/python-modules/pybind11 { };
 
-  marshmallow-enum = callPackage ../development/python-modules/marshmallow-enum { };
+  pybindgen = callPackage ../development/python-modules/pybindgen { };
 
-  marshmallow-polyfield = callPackage ../development/python-modules/marshmallow-polyfield { };
+  pyblake2 = callPackage ../development/python-modules/pyblake2 { };
 
-  marshmallow-sqlalchemy = callPackage ../development/python-modules/marshmallow-sqlalchemy { };
+  pyblock = callPackage ../development/python-modules/pyblock { };
 
-  manuel = callPackage ../development/python-modules/manuel { };
+  pyblosxom = callPackage ../development/python-modules/pyblosxom { };
 
-  mapsplotlib = callPackage ../development/python-modules/mapsplotlib { };
+  pybluez = callPackage ../development/python-modules/pybluez { };
 
-  markdown = if isPy3k then
-    callPackage ../development/python-modules/markdown { }
-  else
-    callPackage ../development/python-modules/markdown/3_1.nix { };
+  pybotvac = callPackage ../development/python-modules/pybotvac { };
 
-  markdownsuperscript = callPackage ../development/python-modules/markdownsuperscript {};
+  pybrowserid = callPackage ../development/python-modules/pybrowserid { };
 
-  markdown-macros = callPackage ../development/python-modules/markdown-macros { };
+  pybtex = callPackage ../development/python-modules/pybtex { };
 
-  mathics = callPackage ../development/python-modules/mathics { };
+  pybtex-docutils = callPackage ../development/python-modules/pybtex-docutils { };
 
-  matplotlib = let
-    path = if isPy3k then ../development/python-modules/matplotlib/default.nix else
-      ../development/python-modules/matplotlib/2.nix;
-  in callPackage path {
-    stdenv = if stdenv.isDarwin then pkgs.clangStdenv else pkgs.stdenv;
-    inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
-    inherit (pkgs) pkgconfig;
-  };
+  pybullet = callPackage ../development/python-modules/pybullet { };
 
-  matrix-client = callPackage ../development/python-modules/matrix-client { };
+  pycairo = callPackage ../development/python-modules/pycairo { inherit (pkgs) meson pkgconfig; };
 
-  matrix-nio = callPackage ../development/python-modules/matrix-nio { };
+  pycallgraph = callPackage ../development/python-modules/pycallgraph { };
 
-  mautrix = callPackage ../development/python-modules/mautrix { };
-  mautrix-appservice = self.mautrix; # alias 2019-12-28
+  py = callPackage ../development/python-modules/py { };
 
-  maya = callPackage ../development/python-modules/maya { };
+  pycangjie = disabledIf (!isPy3k) (callPackage ../development/python-modules/pycangjie { inherit (pkgs) pkgconfig; });
 
-  mayavi = pkgs.libsForQt5.callPackage ../development/python-modules/mayavi {
-    inherit buildPythonPackage isPy27 fetchPypi;
-    inherit (self) pyface pygments numpy vtk traitsui envisage apptools pyqt5;
-  };
+  pycapnp = callPackage ../development/python-modules/pycapnp { };
 
-  mccabe = callPackage ../development/python-modules/mccabe { };
+  pycaption = callPackage ../development/python-modules/pycaption { };
 
-  mechanize = callPackage ../development/python-modules/mechanize { };
+  pycarddav = callPackage ../development/python-modules/pycarddav { };
 
-  MechanicalSoup = callPackage ../development/python-modules/MechanicalSoup { };
+  pycares = callPackage ../development/python-modules/pycares { };
 
-  meld3 = callPackage ../development/python-modules/meld3 { };
+  pycassa = callPackage ../development/python-modules/pycassa { };
 
-  meliae = callPackage ../development/python-modules/meliae {};
+  pycategories = callPackage ../development/python-modules/pycategories { };
 
-  meinheld = callPackage ../development/python-modules/meinheld { };
+  pycdio = callPackage ../development/python-modules/pycdio { };
 
-  memcached = callPackage ../development/python-modules/memcached { };
+  pychart = callPackage ../development/python-modules/pychart { };
 
-  memory_profiler = callPackage ../development/python-modules/memory_profiler { };
+  pychef = callPackage ../development/python-modules/pychef { };
 
-  mesa = callPackage ../development/python-modules/mesa { };
+  PyChromecast = callPackage ../development/python-modules/pychromecast { };
 
-  meson = disabledIf (pythonOlder "3.5") (toPythonModule ((pkgs.meson.override {
-    python3Packages = self;
-  }).overrideAttrs(oldAttrs: {
-     # We do not want the setup hook in Python packages
-     # because the build is performed differently.
-    setupHook = null;
-  })));
+  pyclipper = callPackage ../development/python-modules/pyclipper { };
 
-  mesonpep517 = callPackage ../development/python-modules/mesonpep517 { };
+  pycm = callPackage ../development/python-modules/pycm { };
 
-  meshlabxml = callPackage ../development/python-modules/meshlabxml { };
+  pycodestyle = callPackage ../development/python-modules/pycodestyle { };
 
-  metaphone = callPackage ../development/python-modules/metaphone { };
+  pycognito = callPackage ../development/python-modules/pycognito { };
 
-  mezzanine = callPackage ../development/python-modules/mezzanine { };
+  pycoin = callPackage ../development/python-modules/pycoin { };
 
-  micawber = callPackage ../development/python-modules/micawber { };
+  pycollada = callPackage ../development/python-modules/pycollada { };
 
-  milksnake = callPackage ../development/python-modules/milksnake { };
+  pycontracts = callPackage ../development/python-modules/pycontracts { };
 
-  minimock = callPackage ../development/python-modules/minimock { };
+  pycosat = callPackage ../development/python-modules/pycosat { };
 
-  minio = callPackage ../development/python-modules/minio { };
+  pycountry = callPackage ../development/python-modules/pycountry { };
 
-  moviepy = callPackage ../development/python-modules/moviepy { };
+  pycparser = callPackage ../development/python-modules/pycparser { };
 
-  mozterm = callPackage ../development/python-modules/mozterm { };
+  py-cpuinfo = callPackage ../development/python-modules/py-cpuinfo { };
 
-  mplleaflet = callPackage ../development/python-modules/mplleaflet { };
+  pycrc = callPackage ../development/python-modules/pycrc { };
 
-  multidict = callPackage ../development/python-modules/multidict { };
+  pycrypto = callPackage ../development/python-modules/pycrypto { };
 
-  munch = callPackage ../development/python-modules/munch { };
+  pycryptodome = callPackage ../development/python-modules/pycryptodome { };
 
-  nototools = callPackage ../data/fonts/noto-fonts/tools.nix { };
+  pycryptodomex = callPackage ../development/python-modules/pycryptodomex { };
 
-  rainbowstream = callPackage ../development/python-modules/rainbowstream { };
+  pycryptopp = callPackage ../development/python-modules/pycryptopp { };
 
-  pendulum = callPackage ../development/python-modules/pendulum { };
+  pyct = callPackage ../development/python-modules/pyct { };
 
-  pocket = callPackage ../development/python-modules/pocket { };
+  pycuda = callPackage ../development/python-modules/pycuda {
+    cudatoolkit = pkgs.cudatoolkit;
+    inherit (pkgs.stdenv) mkDerivation;
+  };
 
-  mistune = callPackage ../development/python-modules/mistune { };
+  pycups = callPackage ../development/python-modules/pycups { };
 
-  brotlipy = callPackage ../development/python-modules/brotlipy { };
+  pycurl2 = callPackage ../development/python-modules/pycurl2 { };
 
-  sortedcollections = callPackage ../development/python-modules/sortedcollections { };
+  pycurl = callPackage ../development/python-modules/pycurl { };
 
-  hyperframe = callPackage ../development/python-modules/hyperframe { };
+  pydantic = callPackage ../development/python-modules/pydantic { };
 
-  h2 = callPackage ../development/python-modules/h2 { };
+  pydbus = callPackage ../development/python-modules/pydbus { };
 
-  editorconfig = callPackage ../development/python-modules/editorconfig { };
+  pydenticon = callPackage ../development/python-modules/pydenticon { };
 
-  mock = if pythonOlder "3.6" then
-    callPackage ../development/python-modules/mock/2.nix { }
+  pydicom = callPackage ../development/python-modules/pydicom { };
+
+  pydispatcher = callPackage ../development/python-modules/pydispatcher { };
+
+  pydns = let
+    py3 = callPackage ../development/python-modules/py3dns { };
+    py2 = callPackage ../development/python-modules/pydns { };
+  in if isPy3k then py3 else py2;
+
+  pydocstyle = if isPy27 then
+    callPackage ../development/python-modules/pydocstyle/2.nix { }
   else
-    callPackage ../development/python-modules/mock { };
+    callPackage ../development/python-modules/pydocstyle { };
 
-  mock-open = callPackage ../development/python-modules/mock-open { };
+  pydocumentdb = callPackage ../development/python-modules/pydocumentdb { };
 
-  mockito = callPackage ../development/python-modules/mockito { };
+  pydot = callPackage ../development/python-modules/pydot { inherit (pkgs) graphviz; };
 
-  modeled = callPackage ../development/python-modules/modeled { };
+  pydot_ng = callPackage ../development/python-modules/pydot_ng { graphviz = pkgs.graphviz; };
 
-  moderngl = callPackage ../development/python-modules/moderngl { };
+  pydotplus = callPackage ../development/python-modules/pydotplus { };
 
-  moderngl-window = callPackage ../development/python-modules/moderngl_window { };
+  pydrive = callPackage ../development/python-modules/pydrive { };
 
-  modestmaps = callPackage ../development/python-modules/modestmaps { };
+  pydsdl = callPackage ../development/python-modules/pydsdl { };
 
-  # Needed here because moinmoin is loaded as a Python library.
-  moinmoin = callPackage ../development/python-modules/moinmoin { };
+  pydub = callPackage ../development/python-modules/pydub { };
 
-  moretools = callPackage ../development/python-modules/moretools { };
+  pydy = callPackage ../development/python-modules/pydy { };
 
-  moto = callPackage ../development/python-modules/moto {};
+  pyechonest = callPackage ../development/python-modules/pyechonest { };
 
-  mox = callPackage ../development/python-modules/mox { };
+  pyelftools = callPackage ../development/python-modules/pyelftools { };
 
-  mozsvc = callPackage ../development/python-modules/mozsvc { };
+  pyemd = callPackage ../development/python-modules/pyemd { };
 
-  mpmath = callPackage ../development/python-modules/mpmath { };
+  pyenchant = callPackage ../development/python-modules/pyenchant { enchant2 = pkgs.enchant2; };
 
-  mpd = callPackage ../development/python-modules/mpd { };
+  pyepsg = callPackage ../development/python-modules/pyepsg { };
 
-  mpd2 = callPackage ../development/python-modules/mpd2 { };
+  pyexcel = callPackage ../development/python-modules/pyexcel { };
 
-  mpv = callPackage ../development/python-modules/mpv { mpv = pkgs.mpv; };
+  pyexcelerator = callPackage ../development/python-modules/pyexcelerator { };
 
-  mrbob = callPackage ../development/python-modules/mrbob {};
+  pyexcel-io = callPackage ../development/python-modules/pyexcel-io { };
 
-  msgpack = callPackage ../development/python-modules/msgpack {};
+  pyexcel-ods = callPackage ../development/python-modules/pyexcel-ods { };
 
-  msgpack-numpy = callPackage ../development/python-modules/msgpack-numpy {};
+  pyexcel-xls = callPackage ../development/python-modules/pyexcel-xls { };
 
-  msrplib = callPackage ../development/python-modules/msrplib { };
+  pyexiv2 = disabledIf isPy3k (toPythonModule (callPackage ../development/python-modules/pyexiv2 { }));
 
-  multipledispatch = callPackage ../development/python-modules/multipledispatch { };
+  pyext = callPackage ../development/python-modules/pyext { };
 
-  multiprocess = callPackage ../development/python-modules/multiprocess { };
+  pyface = callPackage ../development/python-modules/pyface { };
 
-  munkres = callPackage ../development/python-modules/munkres { };
+  pyfaidx = callPackage ../development/python-modules/pyfaidx { };
 
-  musicbrainzngs = callPackage ../development/python-modules/musicbrainzngs { };
+  pyfakefs = callPackage ../development/python-modules/pyfakefs { };
 
-  mutag = callPackage ../development/python-modules/mutag { };
+  pyfantom = callPackage ../development/python-modules/pyfantom { };
 
-  mutagen = if isPy27 then
-      callPackage ../development/python-modules/mutagen/1.43.nix { }
-    else
-      callPackage ../development/python-modules/mutagen { };
+  pyfcm = callPackage ../development/python-modules/pyfcm { };
 
-  muttils = callPackage ../development/python-modules/muttils { };
+  pyfftw = callPackage ../development/python-modules/pyfftw { };
 
-  mygpoclient = callPackage ../development/python-modules/mygpoclient { };
+  pyfiglet = callPackage ../development/python-modules/pyfiglet { };
 
-  mysqlclient = callPackage ../development/python-modules/mysqlclient { };
+  pyflakes = callPackage ../development/python-modules/pyflakes { };
 
-  mypy = callPackage ../development/python-modules/mypy { };
+  pyfma = callPackage ../development/python-modules/pyfma { };
 
-  mypy-extensions = callPackage ../development/python-modules/mypy/extensions.nix { };
+  pyfribidi = callPackage ../development/python-modules/pyfribidi { };
 
-  mypy-protobuf = callPackage ../development/python-modules/mypy-protobuf { };
+  pyfritzhome = callPackage ../development/python-modules/pyfritzhome { };
 
-  neuronpy = callPackage ../development/python-modules/neuronpy { };
+  pyftdi = callPackage ../development/python-modules/pyftdi { };
 
-  persisting-theory = callPackage ../development/python-modules/persisting-theory { };
+  pyftgl = callPackage ../development/python-modules/pyftgl { };
 
-  pint = callPackage ../development/python-modules/pint { };
+  pyftpdlib = callPackage ../development/python-modules/pyftpdlib { };
 
-  pygal = callPackage ../development/python-modules/pygal { };
+  pyfttt = callPackage ../development/python-modules/pyfttt { };
 
-  pytaglib = callPackage ../development/python-modules/pytaglib { };
+  pyfxa = callPackage ../development/python-modules/pyfxa { };
 
-  pyte = callPackage ../development/python-modules/pyte { };
+  pygal = callPackage ../development/python-modules/pygal { };
 
-  graphviz = callPackage ../development/python-modules/graphviz {
-    inherit (pkgs) graphviz;
-  };
+  pygame = callPackage ../development/python-modules/pygame { };
 
-  pygraphviz = callPackage ../development/python-modules/pygraphviz {
-    inherit (pkgs) graphviz pkgconfig; # not the python package
-  };
+  pygame_sdl2 = callPackage ../development/python-modules/pygame_sdl2 { };
 
-  pymc3 = callPackage ../development/python-modules/pymc3 { };
+  pygbm = callPackage ../development/python-modules/pygbm { };
 
-  pympler = callPackage ../development/python-modules/pympler { };
+  pygccxml = callPackage ../development/python-modules/pygccxml { };
 
-  pymysqlsa = callPackage ../development/python-modules/pymysqlsa { };
+  pygdbmi = callPackage ../development/python-modules/pygdbmi { };
 
-  merkletools = callPackage ../development/python-modules/merkletools { };
+  pygeoip = callPackage ../development/python-modules/pygeoip { };
 
-  monosat = disabledIf (!isPy3k) (pkgs.monosat.python { inherit buildPythonPackage; inherit (self) cython; });
+  pygit2 = callPackage ../development/python-modules/pygit2 { };
 
-  monotonic = callPackage ../development/python-modules/monotonic { };
+  PyGithub = callPackage ../development/python-modules/pyGithub { };
 
-  mysql-connector = callPackage ../development/python-modules/mysql-connector { };
+  pyglet = callPackage ../development/python-modules/pyglet { };
 
-  namebench = callPackage ../development/python-modules/namebench { };
+  pygls = callPackage ../development/python-modules/pygls { };
 
-  namedlist = callPackage ../development/python-modules/namedlist { };
+  pygments-better-html = callPackage ../development/python-modules/pygments-better-html { };
 
-  nameparser = callPackage ../development/python-modules/nameparser { };
+  pygments = if isPy3k then
+    callPackage ../development/python-modules/Pygments { }
+  else
+    callPackage ../development/python-modules/Pygments/2_5.nix { };
 
-  names = callPackage ../development/python-modules/names { };
+  pygments-markdown-lexer = callPackage ../development/python-modules/pygments-markdown-lexer { };
 
-  nbclient = callPackage ../development/python-modules/nbclient { };
+  pygmo = callPackage ../development/python-modules/pygmo { };
 
-  nbconflux = callPackage ../development/python-modules/nbconflux { };
+  pygobject2 = callPackage ../development/python-modules/pygobject { inherit (pkgs) pkgconfig; };
 
-  nbconvert = callPackage ../development/python-modules/nbconvert { };
+  pygobject3 = callPackage ../development/python-modules/pygobject/3.nix { inherit (pkgs) meson pkgconfig; };
 
-  nbformat = if isPy3k then
-    callPackage ../development/python-modules/nbformat { }
-  else callPackage ../development/python-modules/nbformat/2.nix { };
+  pygogo = callPackage ../development/python-modules/pygogo { };
 
-  nbmerge = callPackage ../development/python-modules/nbmerge { };
+  pygpgme = callPackage ../development/python-modules/pygpgme { };
 
-  nbdime = callPackage ../development/python-modules/nbdime { };
+  pygraphviz = callPackage ../development/python-modules/pygraphviz {
+    inherit (pkgs) graphviz pkgconfig;
+  }; # not the python package
 
-  nbxmpp = callPackage ../development/python-modules/nbxmpp { };
+  pygreat = callPackage ../development/python-modules/pygreat { };
 
-  sleekxmpp = callPackage ../development/python-modules/sleekxmpp { };
+  pygrok = callPackage ../development/python-modules/pygrok { };
+
+  pygtail = callPackage ../development/python-modules/pygtail { };
 
-  slixmpp = callPackage ../development/python-modules/slixmpp {
-    inherit (pkgs) gnupg;
+  pygtk = callPackage ../development/python-modules/pygtk {
+    inherit (pkgs) pkgconfig;
+    libglade = null;
   };
 
-  netaddr = callPackage ../development/python-modules/netaddr { };
+  pyGtkGlade = self.pygtk.override { libglade = pkgs.gnome2.libglade; };
 
-  netifaces = callPackage ../development/python-modules/netifaces { };
+  pygtksourceview = callPackage ../development/python-modules/pygtksourceview { inherit (pkgs) pkgconfig; };
 
-  hpack = callPackage ../development/python-modules/hpack { };
+  pyhamcrest = if isPy3k then
+    callPackage ../development/python-modules/pyhamcrest { }
+  else
+    callPackage ../development/python-modules/pyhamcrest/1.nix { };
 
-  nevow = callPackage ../development/python-modules/nevow { };
+  pyhaversion = callPackage ../development/python-modules/pyhaversion { };
 
-  nghttp2 = (toPythonModule (pkgs.nghttp2.override {
-    inherit (self) python cython setuptools;
-    inherit (pkgs) ncurses;
-    enablePython = true;
-  })).python;
+  pyhcl = callPackage ../development/python-modules/pyhcl { };
 
-  nibabel = callPackage ../development/python-modules/nibabel {};
+  pyhocon = callPackage ../development/python-modules/pyhocon { };
 
-  nidaqmx = callPackage ../development/python-modules/nidaqmx { };
+  pyhomematic = callPackage ../development/python-modules/pyhomematic { };
 
-  nilearn = callPackage ../development/python-modules/nilearn {};
+  pyhs100 = callPackage ../development/python-modules/pyhs100 { };
 
-  nimfa = callPackage ../development/python-modules/nimfa {};
+  pyicloud = callPackage ../development/python-modules/pyicloud { };
 
-  nipy = callPackage ../development/python-modules/nipy { };
+  PyICU = callPackage ../development/python-modules/pyicu { };
 
-  nipype = callPackage ../development/python-modules/nipype {
-    inherit (pkgs) which;
-  };
+  pyinotify = callPackage ../development/python-modules/pyinotify { };
 
-  nitime = callPackage ../development/python-modules/nitime { };
+  pyinputevent = callPackage ../development/python-modules/pyinputevent { };
 
-  nixpkgs = callPackage ../development/python-modules/nixpkgs { };
+  pyipp = callPackage ../development/python-modules/pyipp { };
 
-  nixpkgs-pytools = callPackage ../development/python-modules/nixpkgs-pytools { };
+  pyjade = callPackage ../development/python-modules/pyjade { };
 
-  nodeenv = callPackage ../development/python-modules/nodeenv { };
+  pyjet = callPackage ../development/python-modules/pyjet { };
 
-  nose = callPackage ../development/python-modules/nose { };
+  pyjks = callPackage ../development/python-modules/pyjks { };
 
-  nose-cov = callPackage ../development/python-modules/nose-cov { };
+  pyjson5 = callPackage ../development/python-modules/pyjson5 { };
 
-  nose-exclude = callPackage ../development/python-modules/nose-exclude { };
+  pyjwkest = callPackage ../development/python-modules/pyjwkest { };
 
-  nose-focus = callPackage ../development/python-modules/nose-focus { };
+  pyjwt = callPackage ../development/python-modules/pyjwt { };
 
-  nose-randomly = callPackage ../development/python-modules/nose-randomly { };
+  pykdtree = callPackage ../development/python-modules/pykdtree { inherit (pkgs.llvmPackages) openmp; };
 
-  nose2 = callPackage ../development/python-modules/nose2 { };
+  pykeepass = callPackage ../development/python-modules/pykeepass { };
 
-  nose-cover3 = callPackage ../development/python-modules/nose-cover3 { };
+  pykerberos = callPackage ../development/python-modules/pykerberos { };
 
-  nosexcover = callPackage ../development/python-modules/nosexcover { };
+  pykickstart = callPackage ../development/python-modules/pykickstart { };
 
-  nosejs = callPackage ../development/python-modules/nosejs { };
+  pykka = callPackage ../development/python-modules/pykka { };
 
-  nose-cprof = callPackage ../development/python-modules/nose-cprof { };
+  pykwalify = callPackage ../development/python-modules/pykwalify { };
 
-  nose-of-yeti = callPackage ../development/python-modules/nose-of-yeti { };
+  pylama = callPackage ../development/python-modules/pylama { };
 
-  nose-pattern-exclude = callPackage ../development/python-modules/nose-pattern-exclude { };
+  pylast = callPackage ../development/python-modules/pylast { };
 
-  nose_warnings_filters = callPackage ../development/python-modules/nose_warnings_filters { };
+  pylatexenc = callPackage ../development/python-modules/pylatexenc { };
 
-  notebook = if isPy3k then callPackage ../development/python-modules/notebook { }
-  else callPackage ../development/python-modules/notebook/2.nix { };
+  PyLD = callPackage ../development/python-modules/PyLD { };
 
-  notedown = callPackage ../development/python-modules/notedown { };
+  pylev = callPackage ../development/python-modules/pylev { };
 
-  notify = callPackage ../development/python-modules/notify { };
+  pylibacl = callPackage ../development/python-modules/pylibacl { };
 
-  notify2 = callPackage ../development/python-modules/notify2 {};
+  pylibconfig2 = callPackage ../development/python-modules/pylibconfig2 { };
 
-  notmuch = callPackage ../development/python-modules/notmuch {
-    inherit (pkgs) notmuch;
-  };
+  pylibftdi = callPackage ../development/python-modules/pylibftdi { inherit (pkgs) libusb1; };
 
-  emoji = callPackage ../development/python-modules/emoji { };
+  pylibgen = throw "pylibgen is unmaintained upstreamed, and removed from nixpkgs"; # added 2020-06-20
 
-  ntplib = callPackage ../development/python-modules/ntplib { };
+  pyliblo = callPackage ../development/python-modules/pyliblo { };
 
-  num2words = callPackage ../development/python-modules/num2words { };
+  pylibmc = callPackage ../development/python-modules/pylibmc { };
 
-  numba = callPackage ../development/python-modules/numba { };
+  pylint-celery = callPackage ../development/python-modules/pylint-celery { };
 
-  numcodecs = callPackage ../development/python-modules/numcodecs {
-    inherit (pkgs) gcc8;
-  };
+  pylint-django = callPackage ../development/python-modules/pylint-django { };
 
-  numexpr = callPackage ../development/python-modules/numexpr { };
+  pylint-flask = callPackage ../development/python-modules/pylint-flask { };
 
-  Nuitka = callPackage ../development/python-modules/nuitka { };
+  pylint = if isPy3k then
+    callPackage ../development/python-modules/pylint { }
+  else
+    callPackage ../development/python-modules/pylint/1.9.nix { };
 
-  numpy = let
-    numpy_ = callPackage ../development/python-modules/numpy { };
-    numpy_2 = numpy_.overridePythonAttrs(oldAttrs: rec {
-      version = "1.16.5";
-      src = oldAttrs.src.override {
-        inherit version;
-        sha256 = "8bb452d94e964b312205b0de1238dd7209da452343653ab214b5d681780e7a0c";
-      };
-    });
-  in if pythonOlder "3.5" then numpy_2 else numpy_;
+  pylint-plugin-utils = callPackage ../development/python-modules/pylint-plugin-utils { };
 
-  numpydoc = callPackage ../development/python-modules/numpydoc { };
+  py-lru-cache = callPackage ../development/python-modules/py-lru-cache { };
 
-  numpy-stl = callPackage ../development/python-modules/numpy-stl { };
+  pylru = callPackage ../development/python-modules/pylru { };
 
-  numtraits = callPackage ../development/python-modules/numtraits { };
+  pyls-black = callPackage ../development/python-modules/pyls-black { };
 
-  nwdiag = callPackage ../development/python-modules/nwdiag { };
+  pyls-isort = callPackage ../development/python-modules/pyls-isort { };
 
-  dynd = callPackage ../development/python-modules/dynd { };
+  pyls-mypy = callPackage ../development/python-modules/pyls-mypy { };
 
-  langcodes = callPackage ../development/python-modules/langcodes { };
+  PyLTI = callPackage ../development/python-modules/pylti { };
 
-  livestreamer = callPackage ../development/python-modules/livestreamer { };
+  pymacaroons = callPackage ../development/python-modules/pymacaroons { };
 
-  livestreamer-curses = callPackage ../development/python-modules/livestreamer-curses { };
+  pymaging = callPackage ../development/python-modules/pymaging { };
 
-  oauth = callPackage ../development/python-modules/oauth { };
+  pymaging_png = callPackage ../development/python-modules/pymaging_png { };
 
-  oauth2 = callPackage ../development/python-modules/oauth2 { };
+  pymatgen = callPackage ../development/python-modules/pymatgen { };
 
-  oauth2client = callPackage ../development/python-modules/oauth2client { };
+  pymatgen-lammps = callPackage ../development/python-modules/pymatgen-lammps { };
 
-  oauthlib = if isPy27 then
-      callPackage ../development/python-modules/oauthlib/3.1.nix { }
-    else
-      callPackage ../development/python-modules/oauthlib { };
+  pymavlink = callPackage ../development/python-modules/pymavlink { };
 
-  obfsproxy = callPackage ../development/python-modules/obfsproxy { };
+  pymbolic = callPackage ../development/python-modules/pymbolic { };
 
-  objgraph = callPackage ../development/python-modules/objgraph {
-    graphvizPkg = pkgs.graphviz;
-  };
+  pymc3 = callPackage ../development/python-modules/pymc3 { };
 
-  offtrac = callPackage ../development/python-modules/offtrac { };
+  pymediainfo = callPackage ../development/python-modules/pymediainfo { };
 
-  openpyxl = if pythonAtLeast "3.6" then
-    callPackage ../development/python-modules/openpyxl { }
-  else
-    callPackage ../development/python-modules/openpyxl/2.nix { };
+  pymeeus = callPackage ../development/python-modules/pymeeus { };
 
-  opentimestamps = callPackage ../development/python-modules/opentimestamps { };
+  pymemoize = callPackage ../development/python-modules/pymemoize { };
 
-  ordereddict = callPackage ../development/python-modules/ordereddict { };
+  pyment = callPackage ../development/python-modules/pyment { };
 
-  od = callPackage ../development/python-modules/od { };
+  pymetar = callPackage ../development/python-modules/pymetar { };
 
-  omegaconf = callPackage ../development/python-modules/omegaconf { };
+  pymetno = callPackage ../development/python-modules/pymetno { };
 
-  opuslib = callPackage ../development/python-modules/opuslib { };
+  pymongo = callPackage ../development/python-modules/pymongo { };
 
-  orderedset = callPackage ../development/python-modules/orderedset { };
+  pympler = callPackage ../development/python-modules/pympler { };
 
-  python-multipart = callPackage ../development/python-modules/python-multipart { };
+  pymsgbox = callPackage ../development/python-modules/pymsgbox { };
 
-  python-otr = callPackage ../development/python-modules/python-otr { };
+  pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04
 
-  plone-testing = callPackage ../development/python-modules/plone-testing { };
+  py-multibase = callPackage ../development/python-modules/py-multibase { };
 
-  ply = callPackage ../development/python-modules/ply { };
+  py-multihash = callPackage ../development/python-modules/py-multihash { };
 
-  plyplus = callPackage ../development/python-modules/plyplus { };
+  pymumble = callPackage ../development/python-modules/pymumble { };
 
-  plyvel = callPackage ../development/python-modules/plyvel { };
+  pymupdf = callPackage ../development/python-modules/pymupdf { };
 
-  osc = callPackage ../development/python-modules/osc { };
+  PyMVGLive = callPackage ../development/python-modules/pymvglive { };
 
-  rfc3986 = callPackage ../development/python-modules/rfc3986 { };
+  pymysql = callPackage ../development/python-modules/pymysql { };
 
-  cachetools = let
-    cachetools' = callPackage ../development/python-modules/cachetools {};
-    cachetools_2 = cachetools'.overridePythonAttrs(oldAttrs: rec {
-      version = "3.1.1";
-      src = oldAttrs.src.override {
-        inherit version;
-        sha256 = "16m69l6n6y1r1y7cklm92rr7v69ldig2n3lbl3j323w5jz7d78lf";
-      };
+  pymysqlsa = callPackage ../development/python-modules/pymysqlsa { };
 
-    });
-  in if isPy3k then cachetools' else cachetools_2;
+  pymystem3 = callPackage ../development/python-modules/pymystem3 { };
 
-  cma = callPackage ../development/python-modules/cma { };
+  pynac = callPackage ../development/python-modules/pynac { };
 
-  cmd2 = callPackage ../development/python-modules/cmd2 {};
+  pynacl = callPackage ../development/python-modules/pynacl { };
 
-  warlock = callPackage ../development/python-modules/warlock { };
+  pynamecheap = callPackage ../development/python-modules/pynamecheap { };
 
-  pecan = callPackage ../development/python-modules/pecan { };
+  pynamodb = callPackage ../development/python-modules/pynamodb { };
 
-  kaitaistruct = callPackage ../development/python-modules/kaitaistruct { };
+  pynanoleaf = callPackage ../development/python-modules/pynanoleaf { };
 
-  Kajiki = callPackage ../development/python-modules/kajiki { };
+  pync = callPackage ../development/python-modules/pync { };
 
-  WSME = callPackage ../development/python-modules/WSME { };
+  pynisher = callPackage ../development/python-modules/pynisher { };
 
-  zake = callPackage ../development/python-modules/zake { };
+  pynmea2 = callPackage ../development/python-modules/pynmea2 { };
 
-  zarr = callPackage ../development/python-modules/zarr { };
+  pynput = callPackage ../development/python-modules/pynput { };
 
-  kazoo = callPackage ../development/python-modules/kazoo { };
+  pynrrd = callPackage ../development/python-modules/pynrrd { };
 
-  FormEncode = callPackage ../development/python-modules/FormEncode { };
+  pynvim = callPackage ../development/python-modules/pynvim { };
 
-  pycountry = callPackage ../development/python-modules/pycountry { };
+  pynvml = callPackage ../development/python-modules/pynvml { };
 
-  nine = callPackage ../development/python-modules/nine { };
+  pynzb = callPackage ../development/python-modules/pynzb { };
 
-  logutils = callPackage ../development/python-modules/logutils { };
+  pyobjc = if stdenv.isDarwin then
+    callPackage ../development/python-modules/pyobjc { }
+  else
+    throw "pyobjc can only be built on Mac OS";
 
-  ldappool = callPackage ../development/python-modules/ldappool { };
+  pyocr = callPackage ../development/python-modules/pyocr { };
 
-  retrying = callPackage ../development/python-modules/retrying { };
+  pyodbc = callPackage ../development/python-modules/pyodbc { };
 
-  fasteners = callPackage ../development/python-modules/fasteners { };
+  pyogg = callPackage ../development/python-modules/pyogg { };
 
-  aiocontextvars = callPackage ../development/python-modules/aiocontextvars { };
+  pyomo = callPackage ../development/python-modules/pyomo { };
 
-  aioeventlet = callPackage ../development/python-modules/aioeventlet { };
+  pyopencl = callPackage ../development/python-modules/pyopencl { };
 
-  aiokafka = callPackage ../development/python-modules/aiokafka { };
+  pyopengl = callPackage ../development/python-modules/pyopengl { };
 
-  olefile = callPackage ../development/python-modules/olefile { };
+  pyopenssl = callPackage ../development/python-modules/pyopenssl { };
 
-  requests-mock = callPackage ../development/python-modules/requests-mock { };
+  pyosmium = callPackage ../development/python-modules/pyosmium { };
 
-  mecab-python3 = callPackage ../development/python-modules/mecab-python3 { };
+  pyotp = callPackage ../development/python-modules/pyotp { };
 
-  mox3 = callPackage ../development/python-modules/mox3 { };
+  pyowm = callPackage ../development/python-modules/pyowm { };
 
-  doc8 = callPackage ../development/python-modules/doc8 { };
+  pypamtest = pkgs.libpam-wrapper.override {
+    enablePython = true;
+    inherit python;
+  };
 
-  wrapt = callPackage ../development/python-modules/wrapt { };
+  pypandoc = callPackage ../development/python-modules/pypandoc { };
 
-  pagerduty = callPackage ../development/python-modules/pagerduty { };
+  pyparser = callPackage ../development/python-modules/pyparser { };
 
-  pandas = if isPy3k then
-    callPackage ../development/python-modules/pandas { }
-  else
-    callPackage ../development/python-modules/pandas/2.nix { };
+  pyparsing = callPackage ../development/python-modules/pyparsing { };
 
-  panel = callPackage ../development/python-modules/panel { };
+  pyparted = callPackage ../development/python-modules/pyparted { };
 
-  xlrd = callPackage ../development/python-modules/xlrd { };
+  pypcap = callPackage ../development/python-modules/pypcap { };
 
-  bottleneck = callPackage ../development/python-modules/bottleneck { };
+  pypdf2 = callPackage ../development/python-modules/pypdf2 { };
 
-  paho-mqtt = callPackage ../development/python-modules/paho-mqtt { };
+  pyPdf = callPackage ../development/python-modules/pypdf { };
 
-  pagelabels = callPackage ../development/python-modules/pagelabels { };
+  pypeg2 = callPackage ../development/python-modules/pypeg2 { };
 
-  pamqp = callPackage ../development/python-modules/pamqp { };
+  pyperclip = callPackage ../development/python-modules/pyperclip { };
 
-  parsedatetime = callPackage ../development/python-modules/parsedatetime { };
+  pyperf = callPackage ../development/python-modules/pyperf { };
 
-  param = callPackage ../development/python-modules/param { };
+  pyphen = callPackage ../development/python-modules/pyphen { };
 
-  paramiko = callPackage ../development/python-modules/paramiko { };
+  pyphotonfile = callPackage ../development/python-modules/pyphotonfile { };
 
-  parameterized = callPackage ../development/python-modules/parameterized { };
+  pypillowfight = callPackage ../development/python-modules/pypillowfight { };
 
-  paramz = callPackage ../development/python-modules/paramz { };
+  pyplatec = callPackage ../development/python-modules/pyplatec { };
 
-  parfive = callPackage ../development/python-modules/parfive { };
+  pypoppler = callPackage ../development/python-modules/pypoppler { };
 
-  parsel = callPackage ../development/python-modules/parsel { };
+  pyprind = callPackage ../development/python-modules/pyprind { };
 
-  parso = callPackage ../development/python-modules/parso { };
+  pyprof2calltree = callPackage ../development/python-modules/pyprof2calltree { };
 
-  partd = callPackage ../development/python-modules/partd { };
+  pyproj = callPackage ../development/python-modules/pyproj { };
 
-  patch = callPackage ../development/python-modules/patch { };
+  pyptlib = callPackage ../development/python-modules/pyptlib { };
 
-  patch-ng = callPackage ../development/python-modules/patch-ng { };
+  pypubsub = callPackage ../development/python-modules/pypubsub { };
 
-  pathos = callPackage ../development/python-modules/pathos { };
+  pyqrcode = callPackage ../development/python-modules/pyqrcode { };
 
-  patsy = callPackage ../development/python-modules/patsy { };
+  pyqt4 = callPackage ../development/python-modules/pyqt/4.x.nix { inherit (pkgs) pkgconfig; };
 
-  paste = callPackage ../development/python-modules/paste { };
+  pyqt5 = pkgs.libsForQt5.callPackage ../development/python-modules/pyqt/5.x.nix { pythonPackages = self; };
 
-  PasteDeploy = callPackage ../development/python-modules/pastedeploy { };
+  pyqt5_with_qtmultimedia = self.pyqt5.override { withMultimedia = true; };
 
-  pasteScript = callPackage ../development/python-modules/pastescript { };
+  /*
+    `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; };
 
-  patator = callPackage ../development/python-modules/patator { };
+  pyqtgraph = callPackage ../development/python-modules/pyqtgraph { };
 
-  pathlib2 = callPackage ../development/python-modules/pathlib2 { };
+  pyqtwebengine = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtwebengine { pythonPackages = self; };
 
-  pathpy = if isPy3k then
-    callPackage ../development/python-modules/path.py { }
-  else
-    callPackage ../development/python-modules/path.py/2.nix { };
+  pyquery = callPackage ../development/python-modules/pyquery { };
 
-  paypalrestsdk = callPackage ../development/python-modules/paypalrestsdk { };
+  pyrabbit2 = callPackage ../development/python-modules/pyrabbit2 { };
 
-  pbr = callPackage ../development/python-modules/pbr { };
+  pyrad = callPackage ../development/python-modules/pyrad { };
 
-  fixtures = callPackage ../development/python-modules/fixtures { };
+  py-radix = callPackage ../development/python-modules/py-radix { };
 
-  fipy = callPackage ../development/python-modules/fipy { };
+  pyramid_beaker = callPackage ../development/python-modules/pyramid_beaker { };
 
-  sfepy = callPackage ../development/python-modules/sfepy { };
+  pyramid = callPackage ../development/python-modules/pyramid { };
 
-  pelican = callPackage ../development/python-modules/pelican {
-    inherit (pkgs) glibcLocales git;
-  };
+  pyramid_chameleon = callPackage ../development/python-modules/pyramid_chameleon { };
 
-  pep8 = callPackage ../development/python-modules/pep8 { };
+  pyramid_exclog = callPackage ../development/python-modules/pyramid_exclog { };
 
-  pep8-naming = callPackage ../development/python-modules/pep8-naming { };
+  pyramid_hawkauth = callPackage ../development/python-modules/pyramid_hawkauth { };
 
-  pep257 = callPackage ../development/python-modules/pep257 { };
+  pyramid_jinja2 = callPackage ../development/python-modules/pyramid_jinja2 { };
 
-  pep517 = callPackage ../development/python-modules/pep517 { };
+  pyramid_mako = callPackage ../development/python-modules/pyramid_mako { };
 
-  percol = callPackage ../development/python-modules/percol { };
+  pyramid_multiauth = callPackage ../development/python-modules/pyramid_multiauth { };
 
-  pexif = callPackage ../development/python-modules/pexif { };
+  pyreadability = callPackage ../development/python-modules/pyreadability { };
 
-  pexpect = callPackage ../development/python-modules/pexpect { };
+  pyrealsense2 = toPythonModule (pkgs.librealsense.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  pdfkit = callPackage ../development/python-modules/pdfkit { };
+  pyrealsense2WithCuda = toPythonModule (pkgs.librealsenseWithCuda.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  pdfrw = callPackage ../development/python-modules/pdfrw { };
+  pyrealsense2WithoutCuda = toPythonModule (pkgs.librealsenseWithoutCuda.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  periodictable = callPackage ../development/python-modules/periodictable { };
+  pyregion = callPackage ../development/python-modules/pyregion { };
 
-  pgcli = callPackage ../development/tools/database/pgcli {};
+  pyreport = callPackage ../development/python-modules/pyreport { };
 
-  pg8000 = callPackage ../development/python-modules/pg8000 { };
-  pg8000_1_12 = callPackage ../development/python-modules/pg8000/1_12.nix { };
+  pyres = callPackage ../development/python-modules/pyres { };
 
-  pglast = callPackage ../development/python-modules/pglast { };
+  pyRFC3339 = callPackage ../development/python-modules/pyrfc3339 { };
 
-  pgsanity = callPackage ../development/python-modules/pgsanity { };
+  PyRMVtransport = callPackage ../development/python-modules/PyRMVtransport { };
 
-  pgspecial = callPackage ../development/python-modules/pgspecial { };
+  Pyro4 = callPackage ../development/python-modules/pyro4 { };
 
-  pgpy = callPackage ../development/python-modules/pgpy { };
+  Pyro5 = callPackage ../development/python-modules/pyro5 { };
 
-  pickleshare = callPackage ../development/python-modules/pickleshare { };
+  pyroma = callPackage ../development/python-modules/pyroma { };
 
-  picos = callPackage ../development/python-modules/picos { };
+  pyro-ppl = callPackage ../development/python-modules/pyro-ppl { };
 
-  piep = callPackage ../development/python-modules/piep { };
+  pyroute2 = callPackage ../development/python-modules/pyroute2 { };
 
-  piexif = callPackage ../development/python-modules/piexif { };
+  pyrr = callPackage ../development/python-modules/pyrr { };
 
-  pip = callPackage ../development/python-modules/pip { };
+  pyrsistent = callPackage ../development/python-modules/pyrsistent { };
 
-  pip-tools = callPackage ../development/python-modules/pip-tools {
-    git = pkgs.gitMinimal;
-    glibcLocales = pkgs.glibcLocales;
-  };
+  PyRSS2Gen = callPackage ../development/python-modules/pyrss2gen { };
 
-  pipdate = callPackage ../development/python-modules/pipdate { };
+  pyrtlsdr = callPackage ../development/python-modules/pyrtlsdr { };
 
-  pika = callPackage ../development/python-modules/pika { };
+  pysam = callPackage ../development/python-modules/pysam { };
 
-  pika-pool = callPackage ../development/python-modules/pika-pool { };
+  pysaml2 = callPackage ../development/python-modules/pysaml2 { inherit (pkgs) xmlsec; };
 
-  pikepdf = callPackage ../development/python-modules/pikepdf { };
+  pysc2 = callPackage ../development/python-modules/pysc2 { };
 
-  kmapper = callPackage ../development/python-modules/kmapper { };
+  pyscard = callPackage ../development/python-modules/pyscard { inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; };
 
-  kmsxx = toPythonModule ((callPackage ../development/libraries/kmsxx {
-    inherit (pkgs.kmsxx) stdenv;
-    inherit (pkgs) pkgconfig;
-    withPython = true;
-  }).overrideAttrs (oldAttrs: {
-    name = "${python.libPrefix}-${pkgs.kmsxx.name}";
-  }));
+  pyschedule = callPackage ../development/python-modules/pyschedule { };
 
-  precis-i18n = callPackage ../development/python-modules/precis-i18n { };
+  pyscreenshot = callPackage ../development/python-modules/pyscreenshot { };
 
-  promise = callPackage ../development/python-modules/promise { };
+  py_scrypt = callPackage ../development/python-modules/py_scrypt { };
 
-  prox-tv = callPackage ../development/python-modules/prox-tv { };
+  pyscrypt = callPackage ../development/python-modules/pyscrypt { };
 
-  pvlib = callPackage ../development/python-modules/pvlib { };
+  pyscss = callPackage ../development/python-modules/pyscss { };
 
-  pybase64 = callPackage ../development/python-modules/pybase64 { };
+  pysdl2 = callPackage ../development/python-modules/pysdl2 { };
 
-  pylibconfig2 = callPackage ../development/python-modules/pylibconfig2 { };
+  pysendfile = callPackage ../development/python-modules/pysendfile { };
 
-  pylibmc = callPackage ../development/python-modules/pylibmc {};
+  pysensors = callPackage ../development/python-modules/pysensors { };
 
-  pymetar = callPackage ../development/python-modules/pymetar { };
+  pyserial-asyncio = callPackage ../development/python-modules/pyserial-asyncio { };
+
+  pyserial = callPackage ../development/python-modules/pyserial { };
 
   pysftp = callPackage ../development/python-modules/pysftp { };
 
-  soundfile = callPackage ../development/python-modules/soundfile { };
+  pysha3 = callPackage ../development/python-modules/pysha3 { };
 
-  pysoundfile = self.soundfile;  # Alias added 23-06-2019
+  pyshp = callPackage ../development/python-modules/pyshp { };
 
-  python-jenkins = callPackage ../development/python-modules/python-jenkins { };
+  pyside2-tools =
+    toPythonModule (callPackage ../development/python-modules/pyside2-tools { inherit (pkgs) cmake qt5; });
 
-  pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
+  pyside2 = toPythonModule (callPackage ../development/python-modules/pyside2 { inherit (pkgs) cmake qt5 ninja; });
 
-  pyviz-comms = callPackage ../development/python-modules/pyviz-comms { };
+  pyside = callPackage ../development/python-modules/pyside { inherit (pkgs) mesa; };
 
-  pillow = if isPy27 then
-    callPackage ../development/python-modules/pillow/6.nix {
-      inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
-      inherit (pkgs.xorg) libX11;
-    } else
-    callPackage ../development/python-modules/pillow {
-      inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
-      inherit (pkgs.xorg) libX11;
-  };
+  pysideShiboken = callPackage ../development/python-modules/pyside/shiboken.nix { inherit (pkgs) libxml2 libxslt; };
 
-  pkgconfig = callPackage ../development/python-modules/pkgconfig {
-    inherit (pkgs) pkgconfig;
-  };
+  pysideTools = callPackage ../development/python-modules/pyside/tools.nix { };
 
-  plumbum = callPackage ../development/python-modules/plumbum { };
+  pysigset = callPackage ../development/python-modules/pysigset { };
 
-  polib = callPackage ../development/python-modules/polib {};
+  pysingleton = callPackage ../development/python-modules/pysingleton { };
 
-  ponywhoosh = callPackage ../development/python-modules/ponywhoosh { };
+  pyslurm = callPackage ../development/python-modules/pyslurm { slurm = pkgs.slurm; };
 
-  posix_ipc = callPackage ../development/python-modules/posix_ipc { };
+  pysmb = callPackage ../development/python-modules/pysmb { };
 
-  portend = callPackage ../development/python-modules/portend { };
+  pysmbc = callPackage ../development/python-modules/pysmbc { inherit (pkgs) pkgconfig; };
 
-  powerline = callPackage ../development/python-modules/powerline { };
+  pysmf = callPackage ../development/python-modules/pysmf { };
 
-  pox = callPackage ../development/python-modules/pox { };
+  pysmi = callPackage ../development/python-modules/pysmi { };
 
-  ppft = callPackage ../development/python-modules/ppft { };
+  pysnmp = callPackage ../development/python-modules/pysnmp { };
 
-  pproxy = callPackage ../development/python-modules/pproxy { };
+  pysnooper = callPackage ../development/python-modules/pysnooper { };
 
-  praw = if isPy3k then callPackage ../development/python-modules/praw { }
-    else callPackage ../development/python-modules/praw/6.3.nix { };
+  pysnow = callPackage ../development/python-modules/pysnow { };
 
-  prance = callPackage ../development/python-modules/prance { };
+  pysocks = callPackage ../development/python-modules/pysocks { };
 
-  prawcore = callPackage ../development/python-modules/prawcore { };
+  pysolr = callPackage ../development/python-modules/pysolr { };
 
-  premailer = callPackage ../development/python-modules/premailer { };
+  pysonos = callPackage ../development/python-modules/pysonos { };
 
-  prettytable = callPackage ../development/python-modules/prettytable { };
+  pysoundfile = self.soundfile; # Alias added 23-06-2019
 
-  property-manager = callPackage ../development/python-modules/property-manager { };
+  pyspark = callPackage ../development/python-modules/pyspark { };
 
-  prompt_toolkit = let
-    filename = if isPy3k then ../development/python-modules/prompt_toolkit else ../development/python-modules/prompt_toolkit/1.nix;
-  in callPackage filename { };
+  pysparse = callPackage ../development/python-modules/pysparse { };
 
-  protobuf = callPackage ../development/python-modules/protobuf {
-    disabled = isPyPy;
-    doCheck = !isPy3k;
-    protobuf = pkgs.protobuf3_8;
-  };
+  pyspf = callPackage ../development/python-modules/pyspf { };
 
-  psd-tools = callPackage ../development/python-modules/psd-tools { };
+  pyspinel = callPackage ../development/python-modules/pyspinel { };
 
-  psutil = callPackage ../development/python-modules/psutil { };
+  pyspotify = callPackage ../development/python-modules/pyspotify { };
 
-  psycopg2 = callPackage ../development/python-modules/psycopg2 {};
+  pyspread = callPackage ../development/python-modules/pyspread { };
 
-  ptpython = callPackage ../development/python-modules/ptpython {
-    prompt_toolkit = self.prompt_toolkit;
-  };
+  pysptk = callPackage ../development/python-modules/pysptk { };
 
-  ptable = callPackage ../development/python-modules/ptable { };
+  pysqlite = callPackage ../development/python-modules/pysqlite { };
 
-  publicsuffix = callPackage ../development/python-modules/publicsuffix {};
+  pysqueezebox = callPackage ../development/python-modules/pysqueezebox { };
 
-  publicsuffix2 = callPackage ../development/python-modules/publicsuffix2 {};
+  pysrim = callPackage ../development/python-modules/pysrim { };
 
-  py = callPackage ../development/python-modules/py { };
+  pysrt = callPackage ../development/python-modules/pysrt { };
 
-  pyacoustid = callPackage ../development/python-modules/pyacoustid { };
+  pyssim = callPackage ../development/python-modules/pyssim { };
 
-  pyalgotrade = callPackage ../development/python-modules/pyalgotrade { };
+  pystache = callPackage ../development/python-modules/pystache { };
 
-  pyasn1 = callPackage ../development/python-modules/pyasn1 { };
+  pystemd = callPackage ../development/python-modules/pystemd { systemd = pkgs.systemd; };
 
-  pyasn1-modules = callPackage ../development/python-modules/pyasn1-modules { };
+  PyStemmer = callPackage ../development/python-modules/pystemmer { };
 
-  pyatmo = callPackage ../development/python-modules/pyatmo { };
+  pystray = callPackage ../development/python-modules/pystray { };
 
-  pyaudio = callPackage ../development/python-modules/pyaudio { };
+  py_stringmatching = callPackage ../development/python-modules/py_stringmatching { };
 
-  pycoin = callPackage ../development/python-modules/pycoin { };
+  pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
 
-  pysam = callPackage ../development/python-modules/pysam { };
+  pysvn = callPackage ../development/python-modules/pysvn { };
 
-  pysaml2 = callPackage ../development/python-modules/pysaml2 {
-    inherit (pkgs) xmlsec;
-  };
+  pytado = callPackage ../development/python-modules/pytado { };
 
-  python-pushover = callPackage ../development/python-modules/pushover {};
+  pytaglib = callPackage ../development/python-modules/pytaglib { };
 
-  pystemd = callPackage ../development/python-modules/pystemd { systemd = pkgs.systemd; };
+  pyte = callPackage ../development/python-modules/pyte { };
 
-  mongodict = callPackage ../development/python-modules/mongodict { };
+  pytelegrambotapi = callPackage ../development/python-modules/pyTelegramBotAPI { };
 
-  mongoengine = callPackage ../development/python-modules/mongoengine { };
+  pytesseract = callPackage ../development/python-modules/pytesseract { };
 
-  repoze_who = callPackage ../development/python-modules/repoze_who { };
+  # pytest>=6 is too new for most packages
+  pytest = if isPy3k then self.pytest_5 else self.pytest_4;
 
-  vobject = callPackage ../development/python-modules/vobject { };
+  pytest_4 = callPackage
+    ../development/python-modules/pytest/4.nix { # hypothesis tests require pytest that causes dependency cycle
+      hypothesis = self.hypothesis.override { doCheck = false; };
+    };
 
-  pycarddav = callPackage ../development/python-modules/pycarddav { };
+  pytest_5 = callPackage
+    ../development/python-modules/pytest/5.nix { # hypothesis tests require pytest that causes dependency cycle
+      hypothesis = self.hypothesis.override { doCheck = false; };
+    };
 
-  pygit2 = callPackage ../development/python-modules/pygit2 { };
+  pytest_6 =
+    callPackage ../development/python-modules/pytest { # hypothesis tests require pytest that causes dependency cycle
+      hypothesis = self.hypothesis.override { doCheck = false; };
+    };
 
-  Babel = callPackage ../development/python-modules/Babel { };
+  pytest-aiohttp = callPackage ../development/python-modules/pytest-aiohttp { };
 
-  babelgladeextractor = callPackage ../development/python-modules/babelgladeextractor { };
+  pytest-annotate = callPackage ../development/python-modules/pytest-annotate { };
 
-  pybfd = callPackage ../development/python-modules/pybfd { };
+  pytest-ansible = callPackage ../development/python-modules/pytest-ansible { };
 
-  pybigwig = callPackage ../development/python-modules/pybigwig { };
+  pytest-arraydiff = callPackage ../development/python-modules/pytest-arraydiff { };
 
-  py2bit = callPackage ../development/python-modules/py2bit { };
+  pytest-astropy = callPackage ../development/python-modules/pytest-astropy { };
 
-  pyblock = callPackage ../development/python-modules/pyblock { };
+  pytest-astropy-header = callPackage ../development/python-modules/pytest-astropy-header { };
 
-  pyblosxom = callPackage ../development/python-modules/pyblosxom { };
+  pytest-asyncio = callPackage ../development/python-modules/pytest-asyncio { };
 
-  pycapnp = callPackage ../development/python-modules/pycapnp { };
+  pytest-bdd = callPackage ../development/python-modules/pytest-bdd { };
 
-  pycaption = callPackage ../development/python-modules/pycaption { };
+  pytest-benchmark = callPackage ../development/python-modules/pytest-benchmark { };
 
-  pycdio = callPackage ../development/python-modules/pycdio { };
+  pytest-black = callPackage ../development/python-modules/pytest-black { };
 
-  pycosat = callPackage ../development/python-modules/pycosat { };
+  pytestcache = callPackage ../development/python-modules/pytestcache { };
 
-  pycryptopp = callPackage ../development/python-modules/pycryptopp { };
+  pytest-catchlog = callPackage ../development/python-modules/pytest-catchlog { };
 
-  pyct = callPackage ../development/python-modules/pyct { };
+  pytest-check = callPackage ../development/python-modules/pytest-check { };
 
-  pycups = callPackage ../development/python-modules/pycups { };
+  pytest-click = callPackage ../development/python-modules/pytest-click { };
 
-  pycurl = callPackage ../development/python-modules/pycurl { };
+  pytestcov = callPackage ../development/python-modules/pytest-cov { };
 
-  pycurl2 = callPackage ../development/python-modules/pycurl2 { };
+  pytest-cram = callPackage ../development/python-modules/pytest-cram { };
 
-  pydispatcher = callPackage ../development/python-modules/pydispatcher { };
+  pytest-datadir = callPackage ../development/python-modules/pytest-datadir { };
 
-  pydot = callPackage ../development/python-modules/pydot {
-    inherit (pkgs) graphviz;
-  };
+  pytest-datafiles = callPackage ../development/python-modules/pytest-datafiles { };
 
-  pydot_ng = callPackage ../development/python-modules/pydot_ng { graphviz = pkgs.graphviz; };
+  pytest-dependency = callPackage ../development/python-modules/pytest-dependency { };
 
-  pyelftools = callPackage ../development/python-modules/pyelftools { };
+  pytest-django = callPackage ../development/python-modules/pytest-django { };
 
-  pyenchant = callPackage ../development/python-modules/pyenchant { enchant2 = pkgs.enchant2; };
+  pytest-doctestplus = callPackage ../development/python-modules/pytest-doctestplus { };
 
-  pyexcelerator = callPackage ../development/python-modules/pyexcelerator { };
+  pytest-env = callPackage ../development/python-modules/pytest-env { };
 
-  pyext = callPackage ../development/python-modules/pyext { };
+  pytest-expect = callPackage ../development/python-modules/pytest-expect { };
 
-  pyface = callPackage ../development/python-modules/pyface { };
+  pytest-factoryboy = callPackage ../development/python-modules/pytest-factoryboy { };
 
-  pyfantom = callPackage ../development/python-modules/pyfantom { };
+  pytest-filter-subpackage = callPackage ../development/python-modules/pytest-filter-subpackage { };
 
-  pyfma = callPackage ../development/python-modules/pyfma { };
+  pytest-fixture-config = callPackage ../development/python-modules/pytest-fixture-config { };
 
-  pyfftw = callPackage ../development/python-modules/pyfftw { };
+  pytest-flake8 = callPackage ../development/python-modules/pytest-flake8 { };
 
-  pyfiglet = callPackage ../development/python-modules/pyfiglet { };
+  pytest-flakes = callPackage ../development/python-modules/pytest-flakes { };
 
-  pyflakes = callPackage ../development/python-modules/pyflakes { };
+  pytest-flask = callPackage ../development/python-modules/pytest-flask { };
 
-  pyftgl = callPackage ../development/python-modules/pyftgl { };
+  pytest-forked = callPackage ../development/python-modules/pytest-forked { };
 
-  pygeoip = callPackage ../development/python-modules/pygeoip {};
+  pytest-freezegun = callPackage ../development/python-modules/pytest-freezegun { };
 
-  PyGithub = callPackage ../development/python-modules/pyGithub {};
+  pytest-helpers-namespace = callPackage ../development/python-modules/pytest-helpers-namespace { };
 
-  pyglet = callPackage ../development/python-modules/pyglet {};
+  pytest-html = callPackage ../development/python-modules/pytest-html { };
 
-  pygments = if isPy3k then
-    callPackage ../development/python-modules/Pygments { }
-  else
-    callPackage ../development/python-modules/Pygments/2_5.nix { };
+  pytest-httpbin = callPackage ../development/python-modules/pytest-httpbin { };
 
-  pygpgme = callPackage ../development/python-modules/pygpgme { };
+  pytest-isort = callPackage ../development/python-modules/pytest-isort { };
 
-  pyment = callPackage ../development/python-modules/pyment { };
+  pytest-lazy-fixture = callPackage ../development/python-modules/pytest-lazy-fixture { };
 
-  pylint = if isPy3k then callPackage ../development/python-modules/pylint { }
-           else callPackage ../development/python-modules/pylint/1.9.nix { };
+  pytest-localserver = callPackage ../development/python-modules/pytest-localserver { };
 
-  pylint-celery = callPackage ../development/python-modules/pylint-celery { };
+  pytest-metadata = callPackage ../development/python-modules/pytest-metadata { };
 
-  pylint-django = callPackage ../development/python-modules/pylint-django { };
+  pytest-mock = if isPy3k then
+    callPackage ../development/python-modules/pytest-mock { }
+  else
+    callPackage ../development/python-modules/pytest-mock/2.nix { };
 
-  pylint-flask = callPackage ../development/python-modules/pylint-flask { };
+  pytest-mpl = callPackage ../development/python-modules/pytest-mpl { };
 
-  pylint-plugin-utils = callPackage ../development/python-modules/pylint-plugin-utils { };
+  pytest-mypy = callPackage ../development/python-modules/pytest-mypy { };
 
-  pymumble = callPackage ../development/python-modules/pymumble { };
+  pytest-openfiles = callPackage ../development/python-modules/pytest-openfiles { };
 
-  pyomo = callPackage ../development/python-modules/pyomo { };
+  pytest-ordering = callPackage ../development/python-modules/pytest-ordering { };
 
-  pyopencl = callPackage ../development/python-modules/pyopencl { };
+  pytest-pep257 = callPackage ../development/python-modules/pytest-pep257 { };
 
-  pyosmium = callPackage ../development/python-modules/pyosmium { };
+  pytestpep8 = callPackage ../development/python-modules/pytest-pep8 { };
 
-  pyotp = callPackage ../development/python-modules/pyotp { };
+  pytest-pylint = callPackage ../development/python-modules/pytest-pylint { };
 
-  pyproj = callPackage ../development/python-modules/pyproj { };
+  pytest-pythonpath = callPackage ../development/python-modules/pytest-pythonpath { };
 
-  pyqrcode = callPackage ../development/python-modules/pyqrcode { };
+  pytest-qt = callPackage ../development/python-modules/pytest-qt { };
 
-  pyrabbit2 = callPackage ../development/python-modules/pyrabbit2 { };
+  pytestquickcheck = callPackage ../development/python-modules/pytest-quickcheck { };
 
-  pyrad = callPackage ../development/python-modules/pyrad { };
+  pytest-raisesregexp = callPackage ../development/python-modules/pytest-raisesregexp { };
 
-  pyrr = callPackage ../development/python-modules/pyrr { };
+  pytest-randomly = callPackage ../development/python-modules/pytest-randomly { };
 
-  pysha3 = callPackage ../development/python-modules/pysha3 { };
+  pytest-random-order = callPackage ../development/python-modules/pytest-random-order { };
 
-  pyshp = callPackage ../development/python-modules/pyshp { };
+  pytest-relaxed = callPackage ../development/python-modules/pytest-relaxed { };
 
-  pysnow = callPackage ../development/python-modules/pysnow { };
+  pytest-remotedata = callPackage ../development/python-modules/pytest-remotedata { };
 
-  pysmbc = callPackage ../development/python-modules/pysmbc {
-    inherit (pkgs) pkgconfig;
-  };
+  pytest-repeat = callPackage ../development/python-modules/pytest-repeat { };
 
-  pyspread = callPackage ../development/python-modules/pyspread { };
+  pytest-rerunfailures = callPackage ../development/python-modules/pytest-rerunfailures { };
 
-  pysparse = callPackage ../development/python-modules/pysparse { };
+  pytestrunner = callPackage ../development/python-modules/pytestrunner { };
 
-  pyupdate = callPackage ../development/python-modules/pyupdate {};
+  pytest-sanic = callPackage ../development/python-modules/pytest-sanic { };
 
-  pyvmomi = callPackage ../development/python-modules/pyvmomi { };
+  pytest-server-fixtures = callPackage ../development/python-modules/pytest-server-fixtures { };
 
-  pyx = callPackage ../development/python-modules/pyx { };
+  pytest-services = callPackage ../development/python-modules/pytest-services { };
 
-  mmpython = callPackage ../development/python-modules/mmpython { };
+  pytest-shutil = callPackage ../development/python-modules/pytest-shutil { };
 
-  kaa-base = callPackage ../development/python-modules/kaa-base { };
+  pytest-socket = callPackage ../development/python-modules/pytest-socket { };
 
-  kaa-metadata = callPackage ../development/python-modules/kaa-metadata { };
+  pytest-subtesthack = callPackage ../development/python-modules/pytest-subtesthack { };
 
-  PyICU = callPackage ../development/python-modules/pyicu { };
+  pytest-sugar = callPackage ../development/python-modules/pytest-sugar { };
 
-  pyinputevent = callPackage ../development/python-modules/pyinputevent { };
+  pytest-testmon = callPackage ../development/python-modules/pytest-testmon { };
 
-  pyinotify = callPackage ../development/python-modules/pyinotify { };
+  pytest-timeout = callPackage ../development/python-modules/pytest-timeout { };
 
-  pyjwt = callPackage ../development/python-modules/pyjwt { };
+  pytest-tornado = callPackage ../development/python-modules/pytest-tornado { };
 
-  pykickstart = callPackage ../development/python-modules/pykickstart { };
+  pytest-tornasync = callPackage ../development/python-modules/pytest-tornasync { };
 
-  pymemoize = callPackage ../development/python-modules/pymemoize { };
+  pytest-trio = callPackage ../development/python-modules/pytest-trio { };
 
-  pyobjc = if stdenv.isDarwin
-    then callPackage ../development/python-modules/pyobjc {}
-    else throw "pyobjc can only be built on Mac OS";
+  pytest-twisted = callPackage ../development/python-modules/pytest-twisted { };
 
-  pyodbc = callPackage ../development/python-modules/pyodbc { };
+  pytest-virtualenv = callPackage ../development/python-modules/pytest-virtualenv { };
 
-  pyocr = callPackage ../development/python-modules/pyocr { };
+  pytest-warnings = callPackage ../development/python-modules/pytest-warnings { };
 
-  pyparsing = callPackage ../development/python-modules/pyparsing { };
+  pytest-watch = callPackage ../development/python-modules/pytest-watch { };
 
-  pyparted = callPackage ../development/python-modules/pyparted { };
+  pytest_xdist_1 = callPackage ../development/python-modules/pytest-xdist { };
 
-  pyptlib = callPackage ../development/python-modules/pyptlib { };
+  pytest_xdist_2 = callPackage ../development/python-modules/pytest-xdist/2.nix { };
 
-  pyqtgraph = callPackage ../development/python-modules/pyqtgraph { };
+  pytest_xdist = self.pytest_xdist_1;
 
-  PyStemmer = callPackage ../development/python-modules/pystemmer {};
+  pytest-xprocess = callPackage ../development/python-modules/pytest-xprocess { };
 
-  # Missing expression?
-  # Pyro = callPackage ../development/python-modules/pyro { };
+  pytest-xvfb = callPackage ../development/python-modules/pytest-xvfb { };
 
-  pyrsistent = callPackage ../development/python-modules/pyrsistent { };
+  python2-pythondialog = callPackage ../development/python-modules/python2-pythondialog { };
 
-  PyRSS2Gen = callPackage ../development/python-modules/pyrss2gen { };
+  python3-openid = callPackage ../development/python-modules/python3-openid { };
 
-  pysmi = callPackage ../development/python-modules/pysmi { };
+  python-axolotl = callPackage ../development/python-modules/python-axolotl { };
 
-  pysnmp = callPackage ../development/python-modules/pysnmp { };
+  python-axolotl-curve25519 = callPackage ../development/python-modules/python-axolotl-curve25519 { };
 
-  pysocks = callPackage ../development/python-modules/pysocks { };
+  python-baseconv = callPackage ../development/python-modules/python-baseconv { };
 
-  python_fedora = callPackage ../development/python-modules/python_fedora {};
+  python-binance = callPackage ../development/python-modules/python-binance { };
 
-  python-simple-hipchat = callPackage ../development/python-modules/python-simple-hipchat {};
-  python_simple_hipchat = self.python-simple-hipchat;
+  python-constraint = callPackage ../development/python-modules/python-constraint { };
 
-  scs = callPackage ../development/python-modules/scs { scs = pkgs.scs; };
+  python-ctags3 = callPackage ../development/python-modules/python-ctags3 { };
 
-  python_keyczar = callPackage ../development/python-modules/python_keyczar { };
+  python-daemon = callPackage ../development/python-modules/python-daemon { };
 
-  python-language-server = callPackage ../development/python-modules/python-language-server {};
+  python-dateutil = callPackage ../development/python-modules/dateutil { };
+  # Alias that we should deprecate
+  dateutil = self.python-dateutil;
 
-  python-jsonrpc-server = callPackage ../development/python-modules/python-jsonrpc-server {};
+  python-dbusmock = callPackage ../development/python-modules/python-dbusmock { };
 
-  pyls-black = callPackage ../development/python-modules/pyls-black {};
+  pythondialog = callPackage ../development/python-modules/pythondialog { };
 
-  pyls-isort = callPackage ../development/python-modules/pyls-isort {};
+  python-didl-lite = callPackage ../development/python-modules/python-didl-lite { };
 
-  pyls-mypy = callPackage ../development/python-modules/pyls-mypy {};
+  python-docx = callPackage ../development/python-modules/python-docx { };
 
-  pyu2f = callPackage ../development/python-modules/pyu2f { };
+  python-doi = callPackage ../development/python-modules/python-doi { };
 
-  pyudev = callPackage ../development/python-modules/pyudev {
-    inherit (pkgs) systemd;
-  };
+  python-dotenv = callPackage ../development/python-modules/python-dotenv { };
 
-  pynmea2 = callPackage ../development/python-modules/pynmea2 {};
+  python-editor = callPackage ../development/python-modules/python-editor { };
 
-  pynrrd = callPackage ../development/python-modules/pynrrd { };
+  pythonefl = callPackage ../development/python-modules/python-efl { inherit (pkgs) pkgconfig; };
 
-  pynvml = callPackage ../development/python-modules/pynvml { };
+  python-engineio = callPackage ../development/python-modules/python-engineio { };
 
-  pynzb = callPackage ../development/python-modules/pynzb { };
+  python-etcd = callPackage ../development/python-modules/python-etcd { };
 
-  process-tests = callPackage ../development/python-modules/process-tests { };
+  python_fedora = callPackage ../development/python-modules/python_fedora { };
 
-  progressbar = callPackage ../development/python-modules/progressbar {};
+  python-fontconfig = callPackage ../development/python-modules/python-fontconfig { };
 
-  progressbar2 = callPackage ../development/python-modules/progressbar2 { };
+  python-forecastio = callPackage ../development/python-modules/python-forecastio { };
 
-  progressbar231 = callPackage ../development/python-modules/progressbar231 { };
+  python-gitlab = callPackage ../development/python-modules/python-gitlab { };
 
-  progressbar33 = callPackage ../development/python-modules/progressbar33 { };
+  python-gnupg = callPackage ../development/python-modules/python-gnupg { };
 
-  protego = callPackage ../development/python-modules/protego {};
+  python-hosts = callPackage ../development/python-modules/python-hosts { };
 
-  ldap = callPackage ../development/python-modules/ldap {
-    inherit (pkgs) openldap cyrus_sasl;
+  python-igraph = callPackage ../development/python-modules/python-igraph {
+    pkgconfig = pkgs.pkgconfig;
+    igraph = pkgs.igraph;
   };
 
-  ldap3 = callPackage ../development/python-modules/ldap3 {};
+  pythonIRClib = callPackage ../development/python-modules/pythonirclib { };
 
-  ptest = callPackage ../development/python-modules/ptest { };
+  pythonix = callPackage ../development/python-modules/pythonix { inherit (pkgs) meson pkgconfig; };
 
-  ptyprocess = callPackage ../development/python-modules/ptyprocess { };
+  python-jenkins = callPackage ../development/python-modules/python-jenkins { };
 
-  pylibacl = callPackage ../development/python-modules/pylibacl { };
+  python-jose = callPackage ../development/python-modules/python-jose { };
 
-  pylibgen = throw "pylibgen is unmaintained upstreamed, and removed from nixpkgs"; # added 2020-06-20
+  python-json-logger = callPackage ../development/python-modules/python-json-logger { };
 
-  pyliblo = callPackage ../development/python-modules/pyliblo { };
+  python-jsonrpc-server = callPackage ../development/python-modules/python-jsonrpc-server { };
 
-  pypcap = callPackage ../development/python-modules/pypcap {};
+  python_keyczar = callPackage ../development/python-modules/python_keyczar { };
 
-  pyplatec = callPackage ../development/python-modules/pyplatec { };
+  python-language-server = callPackage ../development/python-modules/python-language-server { };
 
-  purepng = callPackage ../development/python-modules/purepng { };
+  python-ldap-test = callPackage ../development/python-modules/python-ldap-test { };
 
-  pyhocon = callPackage ../development/python-modules/pyhocon { };
+  python-Levenshtein = callPackage ../development/python-modules/python-levenshtein { };
 
-  pyjson5 = callPackage ../development/python-modules/pyjson5 {};
+  python-logstash = callPackage ../development/python-modules/python-logstash { };
 
-  pymaging = callPackage ../development/python-modules/pymaging { };
+  python-ly = callPackage ../development/python-modules/python-ly { };
 
-  pymaging_png = callPackage ../development/python-modules/pymaging_png { };
+  python-lz4 = callPackage ../development/python-modules/python-lz4 { };
 
-  pyPdf = callPackage ../development/python-modules/pypdf { };
+  python-lzf = callPackage ../development/python-modules/python-lzf { };
 
-  pypdf2 = callPackage ../development/python-modules/pypdf2 { };
+  python-lzo = callPackage ../development/python-modules/python-lzo { inherit (pkgs) lzo; };
 
-  pyopengl = callPackage ../development/python-modules/pyopengl { };
+  python_magic = callPackage ../development/python-modules/python-magic { };
 
-  pyopenssl = callPackage ../development/python-modules/pyopenssl { };
+  pythonmagick = callPackage ../development/python-modules/pythonmagick { };
 
-  pyquery = callPackage ../development/python-modules/pyquery { };
+  python-mapnik = callPackage ../development/python-modules/python-mapnik { };
 
-  pyreport = callPackage ../development/python-modules/pyreport { };
+  python-markdown-math = callPackage ../development/python-modules/python-markdown-math { };
 
-  pyreadability = callPackage ../development/python-modules/pyreadability { };
+  python-miio = callPackage ../development/python-modules/python-miio { };
 
-  pyscss = callPackage ../development/python-modules/pyscss { };
+  python_mimeparse = callPackage ../development/python-modules/python_mimeparse { };
 
-  pyserial = callPackage ../development/python-modules/pyserial {};
+  python-mnist = callPackage ../development/python-modules/python-mnist { };
 
-  pyserial-asyncio = callPackage ../development/python-modules/pyserial-asyncio { };
+  python-mpv-jsonipc = callPackage ../development/python-modules/python-mpv-jsonipc { };
 
-  pysonos = callPackage ../development/python-modules/pysonos {};
+  python-multipart = callPackage ../development/python-modules/python-multipart { };
 
-  pymongo = callPackage ../development/python-modules/pymongo {};
+  pythonnet = callPackage
+    ../development/python-modules/pythonnet { # `mono >= 4.6` required to prevent crashes encountered with earlier versions.
+      mono = pkgs.mono4;
+      inherit (pkgs) pkgconfig;
+    };
 
-  pyperclip = callPackage ../development/python-modules/pyperclip { };
+  python-nomad = callPackage ../development/python-modules/python-nomad { };
 
-  pysqlite = callPackage ../development/python-modules/pysqlite { };
+  python-oauth2 = callPackage ../development/python-modules/python-oauth2 { };
 
-  pysvn = callPackage ../development/python-modules/pysvn { };
+  pythonocc-core =
+    toPythonModule (callPackage ../development/python-modules/pythonocc-core { inherit (pkgs.xorg) libX11; });
 
-  python-markdown-math = callPackage ../development/python-modules/python-markdown-math { };
+  python-olm = callPackage ../development/python-modules/python-olm { };
 
-  python-miio = callPackage ../development/python-modules/python-miio { };
+  python_openzwave = callPackage ../development/python-modules/python_openzwave { inherit (pkgs) pkgconfig; };
+
+  python-otr = callPackage ../development/python-modules/python-otr { };
+
+  python-packer = callPackage ../development/python-modules/python-packer { };
+
+  python-pam = callPackage ../development/python-modules/python-pam { };
+
+  python-periphery = callPackage ../development/python-modules/python-periphery { };
 
   python-pipedrive = callPackage ../development/python-modules/python-pipedrive { };
 
+  python-prctl = callPackage ../development/python-modules/python-prctl { };
+
   python-ptrace = callPackage ../development/python-modules/python-ptrace { };
 
-  python-wifi = callPackage ../development/python-modules/python-wifi { };
+  python-pushover = callPackage ../development/python-modules/pushover { };
 
-  python-etcd = callPackage ../development/python-modules/python-etcd { };
+  python-rapidjson = callPackage ../development/python-modules/python-rapidjson { };
 
-  pythonnet = callPackage ../development/python-modules/pythonnet {
-    # `mono >= 4.6` required to prevent crashes encountered with earlier versions.
-    mono = pkgs.mono4;
-    inherit (pkgs) pkgconfig;
-  };
+  python-redis-lock = callPackage ../development/python-modules/python-redis-lock { };
 
-  pytz = callPackage ../development/python-modules/pytz { };
+  python-rtmidi = callPackage ../development/python-modules/python-rtmidi { };
 
-  pytzdata = callPackage ../development/python-modules/pytzdata { };
+  python-simple-hipchat = callPackage ../development/python-modules/python-simple-hipchat { };
+  python_simple_hipchat = self.python-simple-hipchat;
 
-  pyutil = callPackage ../development/python-modules/pyutil { };
+  python-slugify = callPackage ../development/python-modules/python-slugify { };
 
-  pyutilib = callPackage ../development/python-modules/pyutilib { };
+  python-snappy = callPackage ../development/python-modules/python-snappy { inherit (pkgs) snappy; };
 
-  pywal = callPackage ../development/python-modules/pywal { };
+  python-socketio = callPackage ../development/python-modules/python-socketio { };
 
-  pywinrm = callPackage ../development/python-modules/pywinrm { };
+  python-sql = callPackage ../development/python-modules/python-sql { };
 
-  pyxattr = let
-    pyxattr' = callPackage ../development/python-modules/pyxattr { };
-    pyxattr_2 = pyxattr'.overridePythonAttrs(oldAttrs: rec {
-      version = "0.6.1";
-      src = oldAttrs.src.override {
-        inherit version;
-        sha256 = "b525843f6b51036198b3b87c4773a5093d6dec57d60c18a1f269dd7059aa16e3";
-      };
-    });
-  in if isPy3k then pyxattr' else pyxattr_2;
+  python_statsd = callPackage ../development/python-modules/python_statsd { };
 
-  pyamg = callPackage ../development/python-modules/pyamg { };
+  python-stdnum = callPackage ../development/python-modules/python-stdnum { };
 
-  pyaml = callPackage ../development/python-modules/pyaml { };
+  python-sybase = callPackage ../development/python-modules/sybase { };
 
-  pyyaml = callPackage ../development/python-modules/pyyaml { };
+  python-telegram-bot = callPackage ../development/python-modules/python-telegram-bot { };
 
-  rabbitpy = callPackage ../development/python-modules/rabbitpy { };
+  python-toolbox = callPackage ../development/python-modules/python-toolbox { };
 
-  rasterio = callPackage ../development/python-modules/rasterio {
-    gdal = pkgs.gdal_2; # gdal 3.0 not supported yet
-  };
+  python-twitter = callPackage ../development/python-modules/python-twitter { };
 
-  radicale_infcloud = callPackage ../development/python-modules/radicale_infcloud {};
+  python-u2flib-host = callPackage ../development/python-modules/python-u2flib-host { };
 
-  recaptcha_client = callPackage ../development/python-modules/recaptcha_client { };
+  python-uinput = callPackage ../development/python-modules/python-uinput { };
 
-  rbtools = callPackage ../development/python-modules/rbtools { };
+  python-unshare = callPackage ../development/python-modules/python-unshare { };
 
-  rencode = callPackage ../development/python-modules/rencode { };
+  python-utils = callPackage ../development/python-modules/python-utils { };
 
-  reportlab = callPackage ../development/python-modules/reportlab { };
+  python-vagrant = callPackage ../development/python-modules/python-vagrant { };
 
-  requests = callPackage ../development/python-modules/requests { };
+  python-vipaccess = callPackage ../development/python-modules/python-vipaccess { };
 
-  requests_download = callPackage ../development/python-modules/requests_download { };
+  python-vlc = callPackage ../development/python-modules/python-vlc { };
 
-  requestsexceptions = callPackage ../development/python-modules/requestsexceptions {};
+  python-wifi = callPackage ../development/python-modules/python-wifi { };
 
-  requests_ntlm = callPackage ../development/python-modules/requests_ntlm { };
+  python-xmp-toolkit = callPackage ../development/python-modules/python-xmp-toolkit { };
 
-  requests_oauthlib = callPackage ../development/python-modules/requests-oauthlib { };
+  pytimeparse = callPackage ../development/python-modules/pytimeparse { };
 
-  requests-toolbelt = callPackage ../development/python-modules/requests-toolbelt { };
-  requests_toolbelt = self.requests-toolbelt; # Old attr, 2017-09-26
+  pytmx = callPackage ../development/python-modules/pytmx { };
 
-  retry_decorator = callPackage ../development/python-modules/retry_decorator { };
+  pytoml = callPackage ../development/python-modules/pytoml { };
 
-  roboschool = callPackage ../development/python-modules/roboschool {
-    inherit (pkgs) pkgconfig; # use normal pkgconfig, not the python package
-  };
+  pytools = callPackage ../development/python-modules/pytools { };
 
-  rfc6555 = callPackage ../development/python-modules/rfc6555 { };
+  pytorch = callPackage ../development/python-modules/pytorch { cudaSupport = pkgs.config.cudaSupport or false; };
 
-  qdarkstyle = callPackage ../development/python-modules/qdarkstyle { };
+  pytorch-bin = callPackage ../development/python-modules/pytorch/bin.nix {
+    inherit (pkgs.linuxPackages) nvidia_x11;
+  };
 
-  qds_sdk = callPackage ../development/python-modules/qds_sdk { };
+  pytorch-lightning = callPackage ../development/python-modules/pytorch-lightning { };
 
-  qimage2ndarray = callPackage ../development/python-modules/qimage2ndarray { };
+  pytorch-metric-learning = callPackage ../development/python-modules/pytorch-metric-learning { };
 
-  quamash = callPackage ../development/python-modules/quamash { };
+  pytorchWithCuda = self.pytorch.override { cudaSupport = true; };
 
-  quandl = callPackage ../development/python-modules/quandl { };
-  # alias for an older package which did not support Python 3
-  Quandl = callPackage ../development/python-modules/quandl { };
+  pytorchWithoutCuda = self.pytorch.override { cudaSupport = false; };
 
-  querystring_parser = callPackage ../development/python-modules/querystring-parser { };
+  pytrends = callPackage ../development/python-modules/pytrends { };
 
-  qscintilla-qt4 = callPackage ../development/python-modules/qscintilla { };
+  pytricia = callPackage ../development/python-modules/pytricia { };
 
-  qscintilla-qt5 = pkgs.libsForQt5.callPackage ../development/python-modules/qscintilla-qt5 {
-    pythonPackages = self;
-    lndir = pkgs.xorg.lndir;
-  };
+  pytun = callPackage ../development/python-modules/pytun { };
 
-  qscintilla = self.qscintilla-qt4;
+  pytz = callPackage ../development/python-modules/pytz { };
 
-  qserve = callPackage ../development/python-modules/qserve { };
+  pytzdata = callPackage ../development/python-modules/pytzdata { };
 
-  qtawesome = callPackage ../development/python-modules/qtawesome { };
+  pyu2f = callPackage ../development/python-modules/pyu2f { };
 
-  qtconsole = callPackage ../development/python-modules/qtconsole { };
+  pyuavcan = callPackage
+    ../development/python-modules/pyuavcan { # this version pinpoint to anold version is necessary due to a regression
+      nunavut = self.nunavut.overridePythonAttrs (old: rec {
+        version = "0.2.3";
+        src = old.src.override {
+          inherit version;
+          sha256 = "0x8a9h4mc2r2yz49s9arsbs4bn3h25mvmg4zbgksm9hcyi9536x5";
+        };
+      });
+    };
 
-  qtpy = callPackage ../development/python-modules/qtpy { };
+  pyudev = callPackage ../development/python-modules/pyudev { inherit (pkgs) systemd; };
 
-  quantities = callPackage ../development/python-modules/quantities { };
+  pyunbound = callPackage ../tools/networking/unbound/python.nix { };
 
-  qutip = callPackage ../development/python-modules/qutip { };
+  pyunifi = callPackage ../development/python-modules/pyunifi { };
 
-  rcssmin = callPackage ../development/python-modules/rcssmin { };
+  pyupdate = callPackage ../development/python-modules/pyupdate { };
 
-  recommonmark = callPackage ../development/python-modules/recommonmark { };
+  pyusb = callPackage ../development/python-modules/pyusb { libusb1 = pkgs.libusb1; };
 
-  redis = callPackage ../development/python-modules/redis { };
+  pyutil = callPackage ../development/python-modules/pyutil { };
 
-  rednose = callPackage ../development/python-modules/rednose { };
+  pyutilib = callPackage ../development/python-modules/pyutilib { };
 
-  reikna = callPackage ../development/python-modules/reikna { };
+  pyuv = callPackage ../development/python-modules/pyuv { };
 
-  repocheck = callPackage ../development/python-modules/repocheck { };
+  py-vapid = callPackage ../development/python-modules/py-vapid { };
 
-  restrictedpython = callPackage ../development/python-modules/restrictedpython { };
+  pyvcd = callPackage ../development/python-modules/pyvcd { };
 
-  restview = callPackage ../development/python-modules/restview { };
+  pyvcf = callPackage ../development/python-modules/pyvcf { };
 
-  readme = callPackage ../development/python-modules/readme { };
+  pyviz-comms = callPackage ../development/python-modules/pyviz-comms { };
 
-  readme_renderer = callPackage ../development/python-modules/readme_renderer { };
+  pyvmomi = callPackage ../development/python-modules/pyvmomi { };
 
-  readchar = callPackage ../development/python-modules/readchar { };
+  pyvoro = callPackage ../development/python-modules/pyvoro { };
 
-  retworkx = callPackage ../development/python-modules/retworkx { };
+  pywal = callPackage ../development/python-modules/pywal { };
 
-  rivet = disabledIf (!isPy3k) (toPythonModule (pkgs.rivet.override {
-    python3 = python;
-  }));
+  pywatchman = callPackage ../development/python-modules/pywatchman { };
 
-  ripser = callPackage ../development/python-modules/ripser { };
+  pywavelets = callPackage ../development/python-modules/pywavelets { };
 
-  rjsmin = callPackage ../development/python-modules/rjsmin { };
+  # We need "normal" libxml2 and not the python package by the same name.
+  pywbem = callPackage ../development/python-modules/pywbem { libxml2 = pkgs.libxml2; };
 
-  pysolr = callPackage ../development/python-modules/pysolr { };
+  PyWebDAV = callPackage ../development/python-modules/pywebdav { };
 
-  geoalchemy2 = callPackage ../development/python-modules/geoalchemy2 { };
+  pywebpush = callPackage ../development/python-modules/pywebpush { };
 
-  geographiclib = callPackage ../development/python-modules/geographiclib { };
+  pywebview = callPackage ../development/python-modules/pywebview { };
 
-  geopy = if isPy3k
-    then callPackage ../development/python-modules/geopy { }
-    else callPackage ../development/python-modules/geopy/2.nix { };
+  pywick = callPackage ../development/python-modules/pywick { };
 
-  django-haystack = callPackage ../development/python-modules/django-haystack { };
+  pywinrm = callPackage ../development/python-modules/pywinrm { };
 
-  django-multiselectfield = callPackage ../development/python-modules/django-multiselectfield { };
+  pyxattr = let
+    pyxattr' = callPackage ../development/python-modules/pyxattr { };
+    pyxattr_2 = pyxattr'.overridePythonAttrs (oldAttrs: rec {
+      version = "0.6.1";
+      src = oldAttrs.src.override {
+        inherit version;
+        sha256 = "b525843f6b51036198b3b87c4773a5093d6dec57d60c18a1f269dd7059aa16e3";
+      };
+    });
+  in if isPy3k then pyxattr' else pyxattr_2;
 
-  rdflib = callPackage ../development/python-modules/rdflib { };
+  pyx = callPackage ../development/python-modules/pyx { };
 
-  isodate = callPackage ../development/python-modules/isodate { };
+  pyxdg = callPackage ../development/python-modules/pyxdg { };
 
-  owslib = callPackage ../development/python-modules/owslib { };
+  pyxl3 = callPackage ../development/python-modules/pyxl3 { };
 
-  readthedocs-sphinx-ext = callPackage ../development/python-modules/readthedocs-sphinx-ext { };
+  pyxml = disabledIf isPy3k (callPackage ../development/python-modules/pyxml { });
 
-  requests-http-signature = callPackage ../development/python-modules/requests-http-signature { };
+  pyyaml = callPackage ../development/python-modules/pyyaml { };
 
-  requirements-detector = callPackage ../development/python-modules/requirements-detector { };
+  pyzmq = callPackage ../development/python-modules/pyzmq { };
 
-  resampy = callPackage ../development/python-modules/resampy { };
+  pyzufall = callPackage ../development/python-modules/pyzufall { };
 
-  restructuredtext_lint = callPackage ../development/python-modules/restructuredtext_lint { };
+  qasm2image = callPackage ../development/python-modules/qasm2image { };
 
-  retry = callPackage ../development/python-modules/retry { };
+  qdarkstyle = callPackage ../development/python-modules/qdarkstyle { };
 
-  robomachine = callPackage ../development/python-modules/robomachine { };
+  qds_sdk = callPackage ../development/python-modules/qds_sdk { };
 
-  robotframework = callPackage ../development/python-modules/robotframework { };
+  qimage2ndarray = callPackage ../development/python-modules/qimage2ndarray { };
 
-  robotframework-databaselibrary = callPackage ../development/python-modules/robotframework-databaselibrary { };
+  qiskit-aer = callPackage ../development/python-modules/qiskit-aer { };
 
-  robotframework-requests = callPackage ../development/python-modules/robotframework-requests { };
+  qiskit-aqua = callPackage ../development/python-modules/qiskit-aqua { };
 
-  robotframework-ride = callPackage ../development/python-modules/robotframework-ride { };
+  qiskit = callPackage ../development/python-modules/qiskit { };
 
-  robotframework-seleniumlibrary = callPackage ../development/python-modules/robotframework-seleniumlibrary { };
+  qiskit-ibmq-provider = callPackage ../development/python-modules/qiskit-ibmq-provider { };
 
-  robotframework-selenium2library = callPackage ../development/python-modules/robotframework-selenium2library { };
+  qiskit-ignis = callPackage ../development/python-modules/qiskit-ignis { };
 
-  robotframework-sshlibrary = callPackage ../development/python-modules/robotframework-sshlibrary { };
+  qiskit-terra = callPackage ../development/python-modules/qiskit-terra { };
 
-  robotframework-tools = callPackage ../development/python-modules/robotframework-tools { };
+  qpid-python = callPackage ../development/python-modules/qpid-python { };
 
-  robotstatuschecker = callPackage ../development/python-modules/robotstatuschecker { };
+  qrcode = callPackage ../development/python-modules/qrcode { };
 
-  robotsuite = callPackage ../development/python-modules/robotsuite { };
+  qreactor = callPackage ../development/python-modules/qreactor { };
 
-  serpent = callPackage ../development/python-modules/serpent { };
+  qscintilla-qt4 = callPackage ../development/python-modules/qscintilla { };
 
-  selectors34 = callPackage ../development/python-modules/selectors34 { };
+  qscintilla-qt5 = pkgs.libsForQt5.callPackage ../development/python-modules/qscintilla-qt5 { pythonPackages = self; };
 
-  Pyro4 = callPackage ../development/python-modules/pyro4 { };
+  qscintilla = self.qscintilla-qt4;
 
-  Pyro5 = callPackage ../development/python-modules/pyro5 { };
+  qserve = callPackage ../development/python-modules/qserve { };
 
-  rnc2rng = callPackage ../development/python-modules/rnc2rng { };
+  qtawesome = callPackage ../development/python-modules/qtawesome { };
 
-  rope = callPackage ../development/python-modules/rope { };
+  qtconsole = callPackage ../development/python-modules/qtconsole { };
 
-  ropper = callPackage ../development/python-modules/ropper { };
+  qtpy = callPackage ../development/python-modules/qtpy { };
 
-  rpkg = callPackage ../development/python-modules/rpkg {};
+  quamash = callPackage ../development/python-modules/quamash { };
 
-  rply = callPackage ../development/python-modules/rply {};
+  quandl = callPackage ../development/python-modules/quandl { };
 
-  rpm = disabledIf (!isPy3k) (toPythonModule (pkgs.rpm.override{ inherit python; }));
+  Quandl =
+    callPackage ../development/python-modules/quandl { }; # alias for an older package which did not support Python 3
 
-  rpmfluff = callPackage ../development/python-modules/rpmfluff {};
+  quantities = callPackage ../development/python-modules/quantities { };
 
-  rpy2 = if isPy3k
-    then callPackage ../development/python-modules/rpy2 { }
-    else callPackage ../development/python-modules/rpy2/2.nix { };
+  querystring_parser = callPackage ../development/python-modules/querystring-parser { };
 
-  rtslib = callPackage ../development/python-modules/rtslib {};
+  queuelib = callPackage ../development/python-modules/queuelib { };
 
-  Rtree = callPackage ../development/python-modules/Rtree { inherit (pkgs) libspatialindex; };
+  r2pipe = callPackage ../development/python-modules/r2pipe { };
 
-  typing = callPackage ../development/python-modules/typing { };
+  rabbitpy = callPackage ../development/python-modules/rabbitpy { };
 
-  typing-extensions = callPackage ../development/python-modules/typing-extensions { };
+  radicale_infcloud = callPackage ../development/python-modules/radicale_infcloud { };
 
-  typeguard = callPackage ../development/python-modules/typeguard { };
+  radio_beam = callPackage ../development/python-modules/radio_beam { };
 
-  typesentry = callPackage ../development/python-modules/typesentry { };
+  radish-bdd = callPackage ../development/python-modules/radish-bdd { };
 
-  typesystem = callPackage ../development/python-modules/typesystem { };
+  rainbowstream = callPackage ../development/python-modules/rainbowstream { };
 
-  s3transfer = callPackage ../development/python-modules/s3transfer { };
+  ramlfications = callPackage ../development/python-modules/ramlfications { };
 
-  seqdiag = callPackage ../development/python-modules/seqdiag { };
+  random2 = callPackage ../development/python-modules/random2 { };
 
-  sequoia = disabledIf (isPyPy || !isPy3k) (toPythonModule (pkgs.sequoia.override {
-    pythonPackages = self;
-    pythonSupport = true;
-  }));
+  rarfile = callPackage ../development/python-modules/rarfile { inherit (pkgs) libarchive; };
 
-  safe = callPackage ../development/python-modules/safe { };
+  rasterio = callPackage ../development/python-modules/rasterio { gdal = pkgs.gdal_2; }; # gdal 3.0 not supported yet
 
-  safety = callPackage ../development/python-modules/safety { };
+  ratelimiter = callPackage ../development/python-modules/ratelimiter { };
 
-  sampledata = callPackage ../development/python-modules/sampledata { };
+  raven = callPackage ../development/python-modules/raven { };
 
-  sasmodels = callPackage ../development/python-modules/sasmodels { };
+  rawkit = callPackage ../development/python-modules/rawkit { };
 
-  scapy = callPackage ../development/python-modules/scapy { };
+  rbtools = callPackage ../development/python-modules/rbtools { };
 
-  scipy = let
-    scipy_ = callPackage ../development/python-modules/scipy { };
-    scipy_1_2 = scipy_.overridePythonAttrs(oldAttrs: rec {
-      version = "1.2.2";
-      src = oldAttrs.src.override {
-        inherit version;
-        sha256 = "a4331e0b8dab1ff75d2c67b5158a8bb9a83c799d7140094dda936d876c7cfbb1";
-      };
-    });
-  in if pythonOlder "3.5" then scipy_1_2 else scipy_;
+  rcssmin = callPackage ../development/python-modules/rcssmin { };
 
-  scikitimage = callPackage ../development/python-modules/scikit-image { };
+  rdflib = callPackage ../development/python-modules/rdflib { };
 
-  scikitlearn = let
-    args = { inherit (pkgs) gfortran glibcLocales; };
-  in
-    if isPy3k then callPackage ../development/python-modules/scikitlearn args
-    else callPackage ../development/python-modules/scikitlearn/0.20.nix args;
+  rdflib-jsonld = callPackage ../development/python-modules/rdflib-jsonld { };
 
-  scikit-bio = callPackage ../development/python-modules/scikit-bio { };
+  readchar = callPackage ../development/python-modules/readchar { };
 
-  scikit-build = callPackage ../development/python-modules/scikit-build { };
+  readme = callPackage ../development/python-modules/readme { };
 
-  scikits-odes = callPackage ../development/python-modules/scikits-odes { };
+  readme_renderer = callPackage ../development/python-modules/readme_renderer { };
 
-  scikit-optimize = callPackage ../development/python-modules/scikit-optimize { };
+  readthedocs-sphinx-ext = callPackage ../development/python-modules/readthedocs-sphinx-ext { };
 
-  scikit-tda = callPackage ../development/python-modules/scikit-tda { };
+  rebulk = callPackage ../development/python-modules/rebulk { };
 
-  scikit-fmm = callPackage ../development/python-modules/scikit-fmm { };
+  recaptcha_client = callPackage ../development/python-modules/recaptcha_client { };
 
-  scp = callPackage ../development/python-modules/scp {};
+  recommonmark = callPackage ../development/python-modules/recommonmark { };
 
-  seaborn = if isPy3k then
-    callPackage ../development/python-modules/seaborn { }
-  else
-    callPackage ../development/python-modules/seaborn/0.9.1.nix { };
+  redis = callPackage ../development/python-modules/redis { };
 
-  seabreeze = callPackage ../development/python-modules/seabreeze { };
+  rednose = callPackage ../development/python-modules/rednose { };
 
-  selenium = callPackage ../development/python-modules/selenium { };
+  regex = callPackage ../development/python-modules/regex { };
 
-  serpy = callPackage ../development/python-modules/serpy { };
+  regional = callPackage ../development/python-modules/regional { };
 
-  setuptools_scm = callPackage ../development/python-modules/setuptools_scm { };
+  reikna = callPackage ../development/python-modules/reikna { };
 
-  setuptools-scm-git-archive = callPackage ../development/python-modules/setuptools-scm-git-archive { };
+  relatorio = callPackage ../development/python-modules/relatorio { };
 
-  serverlessrepo = callPackage ../development/python-modules/serverlessrepo { };
+  remotecv = callPackage ../development/python-modules/remotecv { };
 
-  shippai = callPackage ../development/python-modules/shippai {};
+  rencode = callPackage ../development/python-modules/rencode { };
 
-  shutilwhich = callPackage ../development/python-modules/shutilwhich { };
+  repeated_test = callPackage ../development/python-modules/repeated_test { };
 
-  simanneal = callPackage ../development/python-modules/simanneal { };
+  repocheck = callPackage ../development/python-modules/repocheck { };
 
-  simplegeneric = callPackage ../development/python-modules/simplegeneric { };
+  reportlab = callPackage ../development/python-modules/reportlab { };
 
-  shamir-mnemonic = callPackage ../development/python-modules/shamir-mnemonic { };
+  repoze_lru = callPackage ../development/python-modules/repoze_lru { };
 
-  shodan = callPackage ../development/python-modules/shodan { };
+  repoze_sphinx_autointerface = callPackage ../development/python-modules/repoze_sphinx_autointerface { };
 
-  should-dsl = callPackage ../development/python-modules/should-dsl { };
+  repoze_who = callPackage ../development/python-modules/repoze_who { };
 
-  showit = callPackage ../development/python-modules/showit { };
+  reproject = callPackage ../development/python-modules/reproject { };
 
-  simplejson = callPackage ../development/python-modules/simplejson { };
+  requests-aws4auth = callPackage ../development/python-modules/requests-aws4auth { };
 
-  simplekml = callPackage ../development/python-modules/simplekml { };
+  requests-cache = callPackage ../development/python-modules/requests-cache { };
 
-  slimit = callPackage ../development/python-modules/slimit { };
+  requests = callPackage ../development/python-modules/requests { };
 
-  snowflake-connector-python = callPackage ../development/python-modules/snowflake-connector-python { };
+  requests_download = callPackage ../development/python-modules/requests_download { };
 
-  snowflake-sqlalchemy = callPackage ../development/python-modules/snowflake-sqlalchemy { };
+  requestsexceptions = callPackage ../development/python-modules/requestsexceptions { };
 
-  snowballstemmer = callPackage ../development/python-modules/snowballstemmer { };
+  requests-file = callPackage ../development/python-modules/requests-file { };
 
-  snitun = callPackage ../development/python-modules/snitun { };
+  requests-http-signature = callPackage ../development/python-modules/requests-http-signature { };
 
-  snscrape = callPackage ../development/python-modules/snscrape { };
+  requests-kerberos = callPackage ../development/python-modules/requests-kerberos { };
 
-  snug = callPackage ../development/python-modules/snug { };
+  requests-mock = callPackage ../development/python-modules/requests-mock { };
 
-  snuggs = callPackage ../development/python-modules/snuggs { };
+  requests_ntlm = callPackage ../development/python-modules/requests_ntlm { };
 
-  spake2 = callPackage ../development/python-modules/spake2 { };
+  requests_oauthlib = callPackage ../development/python-modules/requests-oauthlib { };
 
-  sphfile = callPackage ../development/python-modules/sphfile { };
+  requests-toolbelt = callPackage ../development/python-modules/requests-toolbelt { };
 
-  supervisor = callPackage ../development/python-modules/supervisor {};
+  requests_toolbelt = self.requests-toolbelt; # Old attr, 2017-09-26
 
-  subprocess32 = callPackage ../development/python-modules/subprocess32 { };
+  requests-unixsocket = callPackage ../development/python-modules/requests-unixsocket { };
 
-  spark_parser = callPackage ../development/python-modules/spark_parser { };
+  requirements-detector = callPackage ../development/python-modules/requirements-detector { };
 
-  sphinx = if isPy3k then
-    callPackage ../development/python-modules/sphinx { }
-  else
-    callPackage ../development/python-modules/sphinx/2.nix { };
+  resampy = callPackage ../development/python-modules/resampy { };
 
-  # Only exists for a Haskell package.
-  sphinx_1_7_9 = (callPackage ../development/python-modules/sphinx/2.nix { })
-    .overridePythonAttrs (oldAttrs: rec {
-      version = "1.7.9";
-      src = oldAttrs.src.override {
-        inherit version;
-        sha256 = "217a7705adcb573da5bbe1e0f5cab4fa0bd89fd9342c9159121746f593c2d5a4";
-      };
-    });
+  responses = callPackage ../development/python-modules/responses { };
 
-  sphinx-argparse = callPackage ../development/python-modules/sphinx-argparse { };
+  restrictedpython = callPackage ../development/python-modules/restrictedpython { };
 
-  sphinxcontrib-websupport = if isPy3k then
-    callPackage ../development/python-modules/sphinxcontrib-websupport { }
-  else
-    callPackage ../development/python-modules/sphinxcontrib-websupport/1_1.nix { };
+  restructuredtext_lint = callPackage ../development/python-modules/restructuredtext_lint { };
 
-  hieroglyph = callPackage ../development/python-modules/hieroglyph { };
+  restview = callPackage ../development/python-modules/restview { };
 
-  hvplot = callPackage ../development/python-modules/hvplot { };
+  rethinkdb = callPackage ../development/python-modules/rethinkdb { };
 
-  guzzle_sphinx_theme = callPackage ../development/python-modules/guzzle_sphinx_theme { };
+  retry = callPackage ../development/python-modules/retry { };
 
-  sphinx-testing = callPackage ../development/python-modules/sphinx-testing { };
+  retry_decorator = callPackage ../development/python-modules/retry_decorator { };
 
-  sphinxcontrib-applehelp = callPackage ../development/python-modules/sphinxcontrib-applehelp {};
+  retrying = callPackage ../development/python-modules/retrying { };
 
-  sphinxcontrib-devhelp = callPackage ../development/python-modules/sphinxcontrib-devhelp {};
+  retworkx = disabledIf (pythonOlder "3.5") (toPythonModule (callPackage ../development/python-modules/retworkx { }));
 
-  sphinxcontrib-fulltoc = callPackage ../development/python-modules/sphinxcontrib-fulltoc { };
+  rfc3986 = callPackage ../development/python-modules/rfc3986 { };
 
-  sphinxcontrib-htmlhelp = callPackage ../development/python-modules/sphinxcontrib-htmlhelp {};
+  rfc3987 = callPackage ../development/python-modules/rfc3987 { };
 
-  sphinxcontrib-jsmath = callPackage ../development/python-modules/sphinxcontrib-jsmath {};
+  rfc6555 = callPackage ../development/python-modules/rfc6555 { };
 
-  sphinxcontrib-katex = callPackage ../development/python-modules/sphinxcontrib-katex { };
+  rfc7464 = callPackage ../development/python-modules/rfc7464 { };
 
-  sphinxcontrib-qthelp = callPackage ../development/python-modules/sphinxcontrib-qthelp {};
+  rhpl = disabledIf isPy3k (callPackage ../development/python-modules/rhpl { });
 
-  sphinxcontrib-serializinghtml = callPackage ../development/python-modules/sphinxcontrib-serializinghtml {};
+  rig = callPackage ../development/python-modules/rig { };
 
-  sphinxcontrib-bibtex = callPackage ../development/python-modules/sphinxcontrib-bibtex {};
+  ripser = callPackage ../development/python-modules/ripser { };
 
-  sphinx-navtree = callPackage ../development/python-modules/sphinx-navtree {};
+  rivet = disabledIf (!isPy3k) (toPythonModule (pkgs.rivet.override { python3 = python; }));
 
-  sphinx-jinja = callPackage ../development/python-modules/sphinx-jinja { };
+  rjsmin = callPackage ../development/python-modules/rjsmin { };
 
-  splinter = callPackage ../development/python-modules/splinter { };
+  rl-coach = callPackage ../development/python-modules/rl-coach { };
 
-  spotipy = callPackage ../development/python-modules/spotipy { };
+  rlp = callPackage ../development/python-modules/rlp { };
 
-  sqlalchemy = callPackage ../development/python-modules/sqlalchemy { };
+  rnc2rng = callPackage ../development/python-modules/rnc2rng { };
 
-  sqlalchemy-citext = callPackage ../development/python-modules/sqlalchemy-citext { };
+  robomachine = callPackage ../development/python-modules/robomachine { };
 
-  sqlalchemy_migrate = callPackage ../development/python-modules/sqlalchemy-migrate { };
+  roboschool = callPackage ../development/python-modules/roboschool {
+    inherit (pkgs) pkgconfig;
+  }; # use normal pkgconfig, not the python package
 
-  sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { };
+  robot-detection = callPackage ../development/python-modules/robot-detection { };
 
-  sqlsoup = callPackage ../development/python-modules/sqlsoup { };
+  robotframework = callPackage ../development/python-modules/robotframework { };
 
-  staticjinja = callPackage ../development/python-modules/staticjinja { };
+  robotframework-databaselibrary = callPackage ../development/python-modules/robotframework-databaselibrary { };
 
-  statsmodels = callPackage ../development/python-modules/statsmodels { };
+  robotframework-requests = callPackage ../development/python-modules/robotframework-requests { };
 
-  strategies = callPackage ../development/python-modules/strategies { };
+  robotframework-ride = callPackage ../development/python-modules/robotframework-ride { };
 
-  stravalib = callPackage ../development/python-modules/stravalib { };
+  robotframework-selenium2library = callPackage ../development/python-modules/robotframework-selenium2library { };
 
-  streamz = callPackage ../development/python-modules/streamz { };
+  robotframework-seleniumlibrary = callPackage ../development/python-modules/robotframework-seleniumlibrary { };
 
-  structlog = callPackage ../development/python-modules/structlog { };
+  robotframework-sshlibrary = callPackage ../development/python-modules/robotframework-sshlibrary { };
 
-  stytra = callPackage ../development/python-modules/stytra { };
+  robotframework-tools = callPackage ../development/python-modules/robotframework-tools { };
 
-  sybil = callPackage ../development/python-modules/sybil { };
+  robotstatuschecker = callPackage ../development/python-modules/robotstatuschecker { };
 
-  # legacy alias
-  syncthing-gtk = pkgs.syncthing-gtk;
+  robotsuite = callPackage ../development/python-modules/robotsuite { };
 
-  systemd = callPackage ../development/python-modules/systemd {
-    inherit (pkgs) pkgconfig systemd;
-  };
+  rocket-errbot = callPackage ../development/python-modules/rocket-errbot { };
 
-  sysv_ipc = callPackage ../development/python-modules/sysv_ipc { };
+  roku = callPackage ../development/python-modules/roku { };
 
-  tabulate = callPackage ../development/python-modules/tabulate { };
+  roman = callPackage ../development/python-modules/roman { };
 
-  tadasets = callPackage ../development/python-modules/tadasets { };
+  rope = callPackage ../development/python-modules/rope { };
 
-  tasklib = callPackage ../development/python-modules/tasklib { };
+  ROPGadget = callPackage ../development/python-modules/ROPGadget { };
 
-  tatsu = callPackage ../development/python-modules/tatsu { };
+  ropper = callPackage ../development/python-modules/ropper { };
 
-  tbm-utils = callPackage ../development/python-modules/tbm-utils { };
+  rotate-backups = callPackage ../tools/backup/rotate-backups { };
 
-  tempita = callPackage ../development/python-modules/tempita { };
+  routes = callPackage ../development/python-modules/routes { };
 
-  terminado = callPackage ../development/python-modules/terminado { };
+  rpdb = callPackage ../development/python-modules/rpdb { };
 
-  tess = callPackage ../development/python-modules/tess { };
+  rpkg = callPackage ../development/python-modules/rpkg { };
 
-  testresources = callPackage ../development/python-modules/testresources { };
+  rply = callPackage ../development/python-modules/rply { };
 
-  testtools = callPackage ../development/python-modules/testtools { };
+  rpm = disabledIf (!isPy3k) (toPythonModule (pkgs.rpm.override { inherit python; }));
 
-  traitlets = callPackage ../development/python-modules/traitlets { };
+  rpmfluff = callPackage ../development/python-modules/rpmfluff { };
 
-  traittypes = callPackage ../development/python-modules/traittypes { };
+  rpy2 = if isPy3k then
+    callPackage ../development/python-modules/rpy2 { }
+  else
+    callPackage ../development/python-modules/rpy2/2.nix { };
 
-  transitions = callPackage ../development/python-modules/transitions { };
+  rpyc = callPackage ../development/python-modules/rpyc { };
 
-  extras = callPackage ../development/python-modules/extras { };
+  rq = callPackage ../development/python-modules/rq { };
 
-  extension-helpers = callPackage ../development/python-modules/extension-helpers { };
+  rsa = if isPy3k then
+    callPackage ../development/python-modules/rsa { }
+  else
+    callPackage ../development/python-modules/rsa/4_0.nix { };
 
-  texttable = callPackage ../development/python-modules/texttable { };
+  rtmidi-python = callPackage ../development/python-modules/rtmidi-python { };
 
-  textwrap3 =  callPackage ../development/python-modules/textwrap3 { };
+  Rtree = callPackage ../development/python-modules/Rtree { inherit (pkgs) libspatialindex; };
 
-  tiledb = callPackage ../development/python-modules/tiledb {
-    inherit (pkgs) tiledb;
-  };
+  rtslib = callPackage ../development/python-modules/rtslib { };
 
-  timezonefinder = callPackage ../development/python-modules/timezonefinder { };
+  ruamel_base = callPackage ../development/python-modules/ruamel_base { };
 
-  tiros = callPackage ../development/python-modules/tiros { };
+  ruamel_ordereddict = callPackage ../development/python-modules/ruamel_ordereddict { };
 
-  tinydb = callPackage ../development/python-modules/tinydb { };
+  ruamel_yaml = callPackage ../development/python-modules/ruamel_yaml { };
 
-  tifffile = callPackage ../development/python-modules/tifffile { };
+  ruamel_yaml_clib = callPackage ../development/python-modules/ruamel_yaml_clib { };
 
-  tmdb3 = callPackage ../development/python-modules/tmdb3 { };
+  rubymarshal = callPackage ../development/python-modules/rubymarshal { };
 
-  toolz = callPackage ../development/python-modules/toolz { };
+  ruffus = callPackage ../development/python-modules/ruffus { };
 
-  tox = callPackage ../development/python-modules/tox { };
+  runsnakerun = callPackage ../development/python-modules/runsnakerun { };
 
-  tqdm = callPackage ../development/python-modules/tqdm { };
+  runway-python = callPackage ../development/python-modules/runway-python { };
 
-  trytond = callPackage ../development/python-modules/trytond { };
+  rx = callPackage ../development/python-modules/rx { };
 
-  smmap = callPackage ../development/python-modules/smmap { };
+  rxv = callPackage ../development/python-modules/rxv { };
 
-  smmap2 = throw "smmap2 has been deprecated, use smmap instead."; # added 2020-03-14
+  s2clientprotocol = callPackage ../development/python-modules/s2clientprotocol { };
 
-  transaction = callPackage ../development/python-modules/transaction { };
+  s3fs = callPackage ../development/python-modules/s3fs { };
 
-  TurboCheetah = callPackage ../development/python-modules/TurboCheetah { };
+  s3transfer = callPackage ../development/python-modules/s3transfer { };
 
-  tweepy = callPackage ../development/python-modules/tweepy { };
+  sabyenc3 = callPackage ../development/python-modules/sabyenc3 { };
 
-  twill = callPackage ../development/python-modules/twill { };
+  sabyenc = callPackage ../development/python-modules/sabyenc { };
 
-  twine = callPackage ../development/python-modules/twine { };
+  sacremoses = callPackage ../development/python-modules/sacremoses { };
 
-  twisted = callPackage ../development/python-modules/twisted { };
+  safe = callPackage ../development/python-modules/safe { };
 
-  txtorcon = callPackage ../development/python-modules/txtorcon { };
+  safety = callPackage ../development/python-modules/safety { };
 
-  txdbus = callPackage ../development/python-modules/txdbus { };
+  salmon-mail = callPackage ../development/python-modules/salmon-mail { };
 
-  tzlocal = callPackage ../development/python-modules/tzlocal { };
+  sampledata = callPackage ../development/python-modules/sampledata { };
 
-  u-msgpack-python = callPackage ../development/python-modules/u-msgpack-python { };
+  samplerate = callPackage ../development/python-modules/samplerate { };
 
-  ua-parser = callPackage ../development/python-modules/ua-parser { };
+  samsungctl = callPackage ../development/python-modules/samsungctl { };
 
-  uarray = callPackage ../development/python-modules/uarray { };
+  samsungtvws = callPackage ../development/python-modules/samsungtvws { };
 
-  ueberzug = callPackage ../development/python-modules/ueberzug {
-    inherit (pkgs.xorg) libX11 libXext;
-  };
+  sandboxlib = callPackage ../development/python-modules/sandboxlib { };
 
-  ukpostcodeparser = callPackage ../development/python-modules/ukpostcodeparser { };
+  sanic-auth = callPackage ../development/python-modules/sanic-auth { };
 
-  umap-learn = callPackage ../development/python-modules/umap-learn { };
+  sanic = callPackage ../development/python-modules/sanic { };
 
-  umemcache = callPackage ../development/python-modules/umemcache {};
+  sapi-python-client = callPackage ../development/python-modules/sapi-python-client { };
 
-  uritools = callPackage ../development/python-modules/uritools { };
+  sarge = callPackage ../development/python-modules/sarge { };
 
-  update_checker = callPackage ../development/python-modules/update_checker {};
+  sasmodels = callPackage ../development/python-modules/sasmodels { };
 
-  update-copyright = callPackage ../development/python-modules/update-copyright {};
+  scales = callPackage ../development/python-modules/scales { };
 
-  update-dotdee = callPackage ../development/python-modules/update-dotdee { };
+  scandir = callPackage ../development/python-modules/scandir { };
 
-  uritemplate = callPackage ../development/python-modules/uritemplate { };
+  scapy = callPackage ../development/python-modules/scapy { };
 
-  uproot = callPackage ../development/python-modules/uproot {};
+  schedule = callPackage ../development/python-modules/schedule { };
 
-  uproot-methods = callPackage ../development/python-modules/uproot-methods { };
+  schema = callPackage ../development/python-modules/schema { };
 
-  urlgrabber = callPackage ../development/python-modules/urlgrabber {};
+  scikit-bio = callPackage ../development/python-modules/scikit-bio { };
 
-  urwid = callPackage ../development/python-modules/urwid {};
+  scikit-build = callPackage ../development/python-modules/scikit-build { };
 
-  user-agents = callPackage ../development/python-modules/user-agents { };
+  scikit-fmm = callPackage ../development/python-modules/scikit-fmm { };
 
-  variants = callPackage ../development/python-modules/variants { };
+  scikitimage = callPackage ../development/python-modules/scikit-image { };
 
-  verboselogs = callPackage ../development/python-modules/verboselogs { };
+  scikitlearn = let args = { inherit (pkgs) gfortran glibcLocales; };
+  in if isPy3k then
+    callPackage ../development/python-modules/scikitlearn args
+  else
+    callPackage ../development/python-modules/scikitlearn/0.20.nix args;
 
-  vega_datasets = callPackage ../development/python-modules/vega_datasets { };
+  scikit-optimize = callPackage ../development/python-modules/scikit-optimize { };
 
-  vertica-python = callPackage ../development/python-modules/vertica-python { };
+  scikits-odes = callPackage ../development/python-modules/scikits-odes { };
 
-  virtkey = callPackage ../development/python-modules/virtkey {
-    inherit (pkgs) pkgconfig;
-  };
+  scikit-tda = callPackage ../development/python-modules/scikit-tda { };
 
-  virtual-display = callPackage ../development/python-modules/virtual-display { };
+  scipy_1_3 = self.scipy.overridePythonAttrs (oldAttrs: rec {
+    version = "1.3.3";
+    src = oldAttrs.src.override {
+      inherit version;
+      sha256 = "02iqb7ws7fw5fd1a83hx705pzrw1imj7z0bphjsl4bfvw254xgv4";
+    };
+    doCheck = false;
+    disabled = !isPy3k;
+  });
 
-  virtualenv = callPackage ../development/python-modules/virtualenv { };
+  scipy = let
+    scipy_ = callPackage ../development/python-modules/scipy { };
+    scipy_1_2 = scipy_.overridePythonAttrs (oldAttrs: rec {
+      version = "1.2.2";
+      src = oldAttrs.src.override {
+        inherit version;
+        sha256 = "a4331e0b8dab1ff75d2c67b5158a8bb9a83c799d7140094dda936d876c7cfbb1";
+      };
+    });
+  in if pythonOlder "3.5" then scipy_1_2 else scipy_;
 
-  vsts = callPackage ../development/python-modules/vsts { };
+  scour = callPackage ../development/python-modules/scour { };
 
-  vsts-cd-manager = callPackage ../development/python-modules/vsts-cd-manager { };
+  scp = callPackage ../development/python-modules/scp { };
 
-  python-vlc = callPackage ../development/python-modules/python-vlc { };
+  scrapy = callPackage ../development/python-modules/scrapy { };
 
-  weasyprint = callPackage ../development/python-modules/weasyprint { };
+  scrapy-deltafetch = callPackage ../development/python-modules/scrapy-deltafetch { };
 
-  webassets = callPackage ../development/python-modules/webassets { };
+  scrapy-fake-useragent = callPackage ../development/python-modules/scrapy-fake-useragent { };
 
-  webcolors = callPackage ../development/python-modules/webcolors { };
+  scrapy-splash = callPackage ../development/python-modules/scrapy-splash { };
 
-  webencodings = callPackage ../development/python-modules/webencodings { };
+  screeninfo = callPackage ../development/python-modules/screeninfo { };
 
-  websockets = callPackage ../development/python-modules/websockets { };
+  scripttest = callPackage ../development/python-modules/scripttest { };
 
-  Wand = callPackage ../development/python-modules/Wand { };
+  scs = callPackage ../development/python-modules/scs { scs = pkgs.scs; };
 
-  wcwidth = callPackage ../development/python-modules/wcwidth { };
+  sdnotify = callPackage ../development/python-modules/sdnotify { };
 
-  werkzeug = callPackage ../development/python-modules/werkzeug { };
+  seaborn = if isPy3k then
+    callPackage ../development/python-modules/seaborn { }
+  else
+    callPackage ../development/python-modules/seaborn/0.9.1.nix { };
 
-  wheel = callPackage ../development/python-modules/wheel { };
+  seabreeze = callPackage ../development/python-modules/seabreeze { };
 
-  widgetsnbextension = callPackage ../development/python-modules/widgetsnbextension { };
+  secp256k1 = callPackage ../development/python-modules/secp256k1 { inherit (pkgs) secp256k1 pkgconfig; };
 
-  wordfreq = callPackage ../development/python-modules/wordfreq { };
+  secretstorage = if isPy3k then
+    callPackage ../development/python-modules/secretstorage { }
+  else
+    callPackage ../development/python-modules/secretstorage/2.nix { };
 
-  magic-wormhole = callPackage ../development/python-modules/magic-wormhole { };
+  secure = callPackage ../development/python-modules/secure { };
 
-  magic-wormhole-mailbox-server = callPackage ../development/python-modules/magic-wormhole-mailbox-server { };
+  seekpath = callPackage ../development/python-modules/seekpath { };
 
-  magic-wormhole-transit-relay = callPackage ../development/python-modules/magic-wormhole-transit-relay { };
+  selectors2 = callPackage ../development/python-modules/selectors2 { };
 
-  wxPython = self.wxPython30;
+  selectors34 = callPackage ../development/python-modules/selectors34 { };
 
-  wxPython30 = callPackage ../development/python-modules/wxPython/3.0.nix {
-    wxGTK = pkgs.wxGTK30;
-    inherit (pkgs) pkgconfig;
-  };
+  selenium = callPackage ../development/python-modules/selenium { };
 
-  wxPython_4_0 = callPackage ../development/python-modules/wxPython/4.0.nix {
-    inherit (pkgs) pkgconfig;
-    wxGTK = pkgs.wxGTK30.override { withGtk2 = false; withWebKit = true; };
-  };
+  semantic = callPackage ../development/python-modules/semantic { };
 
-  xml2rfc = callPackage ../development/python-modules/xml2rfc { };
+  semantic-version = callPackage ../development/python-modules/semantic-version { };
 
-  xmlschema = callPackage ../development/python-modules/xmlschema { };
+  semver = callPackage ../development/python-modules/semver { };
 
-  xmltodict = callPackage ../development/python-modules/xmltodict { };
+  send2trash = callPackage ../development/python-modules/send2trash { };
 
-  xarray = callPackage ../development/python-modules/xarray { };
+  sentencepiece = callPackage ../development/python-modules/sentencepiece { inherit (pkgs) sentencepiece pkgconfig; };
 
-  xapian = callPackage ../development/python-modules/xapian { xapian = pkgs.xapian; };
+  sentinel = callPackage ../development/python-modules/sentinel { };
 
-  xapp = callPackage ../development/python-modules/xapp {
-    inherit (pkgs) gtk3 gobject-introspection polkit;
-    inherit (pkgs.cinnamon) xapps;
-  };
+  sentry-sdk = callPackage ../development/python-modules/sentry-sdk { };
 
-  xlwt = callPackage ../development/python-modules/xlwt { };
+  sepaxml = callPackage ../development/python-modules/sepaxml { };
 
-  xxhash = callPackage ../development/python-modules/xxhash { };
+  seqdiag = callPackage ../development/python-modules/seqdiag { };
 
-  ydiff = callPackage ../development/python-modules/ydiff { };
+  sequoia = disabledIf (isPyPy || !isPy3k) (toPythonModule (pkgs.sequoia.override {
+    pythonPackages = self;
+    pythonSupport = true;
+  }));
 
-  yoda = toPythonModule (pkgs.yoda.override {
-    inherit python;
-  });
+  serpent = callPackage ../development/python-modules/serpent { };
 
-  youtube-dl = callPackage ../tools/misc/youtube-dl {};
+  serpy = callPackage ../development/python-modules/serpy { };
 
-  youtube-dl-light = callPackage ../tools/misc/youtube-dl {
-    ffmpegSupport = false;
-    phantomjsSupport = false;
-  };
+  serverlessrepo = callPackage ../development/python-modules/serverlessrepo { };
 
-  zconfig = callPackage ../development/python-modules/zconfig { };
+  serversyncstorage = callPackage ../development/python-modules/serversyncstorage { };
 
-  zc_lockfile = callPackage ../development/python-modules/zc_lockfile { };
+  service-identity = callPackage ../development/python-modules/service_identity { };
 
-  zerorpc = callPackage ../development/python-modules/zerorpc { };
+  setproctitle = callPackage ../development/python-modules/setproctitle { };
 
-  zimports = callPackage ../development/python-modules/zimports { };
+  setuptoolsDarcs = callPackage ../development/python-modules/setuptoolsdarcs { };
 
-  zipstream = callPackage ../development/python-modules/zipstream { };
+  setuptools-git = callPackage ../development/python-modules/setuptools-git { };
 
-  zodb = callPackage ../development/python-modules/zodb {};
+  setuptools-lint = callPackage ../development/python-modules/setuptools-lint { };
 
-  zodbpickle = callPackage ../development/python-modules/zodbpickle {};
+  setuptools_scm = callPackage ../development/python-modules/setuptools_scm { };
 
-  BTrees = callPackage ../development/python-modules/btrees {};
+  setuptools-scm-git-archive = callPackage ../development/python-modules/setuptools-scm-git-archive { };
 
-  persistent = callPackage ../development/python-modules/persistent {};
+  setuptoolsTrial = callPackage ../development/python-modules/setuptoolstrial { };
 
-  persim = callPackage ../development/python-modules/persim { };
+  sexpdata = callPackage ../development/python-modules/sexpdata { };
 
-  xdot = callPackage ../development/python-modules/xdot { };
+  sfepy = callPackage ../development/python-modules/sfepy { };
 
-  zetup = callPackage ../development/python-modules/zetup { };
+  shamir-mnemonic = callPackage ../development/python-modules/shamir-mnemonic { };
 
-  routes = callPackage ../development/python-modules/routes { };
+  shapely = callPackage ../development/python-modules/shapely { };
 
-  rpyc = callPackage ../development/python-modules/rpyc { };
+  sharedmem = callPackage ../development/python-modules/sharedmem { };
 
-  rsa = if isPy3k then
-    callPackage ../development/python-modules/rsa { }
-  else
-    callPackage ../development/python-modules/rsa/4_0.nix { };
+  sh = callPackage ../development/python-modules/sh { };
 
-  squaremap = callPackage ../development/python-modules/squaremap { };
+  shellingham = callPackage ../development/python-modules/shellingham { };
 
-  ruamel_base = callPackage ../development/python-modules/ruamel_base { };
+  shiboken2 =
+    toPythonModule (callPackage ../development/python-modules/shiboken2 { inherit (pkgs) cmake qt5 llvmPackages; });
 
-  ruamel_ordereddict = callPackage ../development/python-modules/ruamel_ordereddict { };
+  shippai = callPackage ../development/python-modules/shippai { };
 
-  ruamel_yaml = callPackage ../development/python-modules/ruamel_yaml { };
+  shodan = callPackage ../development/python-modules/shodan { };
 
-  ruamel_yaml_clib = callPackage ../development/python-modules/ruamel_yaml_clib { };
+  shortuuid = callPackage ../development/python-modules/shortuuid { };
 
-  ruffus = callPackage ../development/python-modules/ruffus { };
+  shouldbe = callPackage ../development/python-modules/shouldbe { };
 
-  runsnakerun = callPackage ../development/python-modules/runsnakerun { };
+  should-dsl = callPackage ../development/python-modules/should-dsl { };
 
-  pysendfile = callPackage ../development/python-modules/pysendfile { };
+  showit = callPackage ../development/python-modules/showit { };
 
-  pyxl3 = callPackage ../development/python-modules/pyxl3 { };
+  shutilwhich = callPackage ../development/python-modules/shutilwhich { };
 
-  qpid-python = callPackage ../development/python-modules/qpid-python { };
+  sievelib = callPackage ../development/python-modules/sievelib { };
 
-  xattr = callPackage ../development/python-modules/xattr { };
+  signedjson = callPackage ../development/python-modules/signedjson { };
 
-  scripttest = callPackage ../development/python-modules/scripttest { };
+  sigtools = callPackage ../development/python-modules/sigtools { };
 
-  setuptoolsDarcs = callPackage ../development/python-modules/setuptoolsdarcs { };
+  simanneal = callPackage ../development/python-modules/simanneal { };
 
-  setuptoolsTrial = callPackage ../development/python-modules/setuptoolstrial { };
+  simpleai = callPackage ../development/python-modules/simpleai { };
+
+  simpleaudio = callPackage ../development/python-modules/simpleaudio { };
 
   simplebayes = callPackage ../development/python-modules/simplebayes { };
 
-  shortuuid = callPackage ../development/python-modules/shortuuid { };
+  simpleeval = callPackage ../development/python-modules/simpleeval { };
 
-  shouldbe = callPackage ../development/python-modules/shouldbe { };
+  simplefix = callPackage ../development/python-modules/simplefix { };
+
+  simplegeneric = callPackage ../development/python-modules/simplegeneric { };
+
+  simplejson = callPackage ../development/python-modules/simplejson { };
+
+  simplekml = callPackage ../development/python-modules/simplekml { };
 
   simpleparse = callPackage ../development/python-modules/simpleparse { };
 
-  slob = callPackage ../development/python-modules/slob { };
+  simple-salesforce = callPackage ../development/python-modules/simple-salesforce { };
 
-  slowaes = callPackage ../development/python-modules/slowaes { };
+  simple-websocket-server = callPackage ../development/python-modules/simple-websocket-server { };
 
-  sqlite3dbm = callPackage ../development/python-modules/sqlite3dbm { };
+  simpy = callPackage ../development/python-modules/simpy { };
 
-  sqlitedict = callPackage ../development/python-modules/sqlitedict { };
+  singledispatch = callPackage ../development/python-modules/singledispatch { };
 
-  sqlobject = callPackage ../development/python-modules/sqlobject { };
+  sip = callPackage ../development/python-modules/sip { };
 
-  sqlmap = callPackage ../development/python-modules/sqlmap { };
+  sipsimple = callPackage ../development/python-modules/sipsimple { };
 
-  pgpdump = callPackage ../development/python-modules/pgpdump { };
+  six = callPackage ../development/python-modules/six { };
 
-  spambayes = callPackage ../development/python-modules/spambayes { };
+  skein = callPackage ../development/python-modules/skein { };
 
-  shapely = callPackage ../development/python-modules/shapely { };
+  sklearn-deap = callPackage ../development/python-modules/sklearn-deap { };
 
-  sharedmem = callPackage ../development/python-modules/sharedmem { };
+  skorch = callPackage ../development/python-modules/skorch { };
 
-  soco = callPackage ../development/python-modules/soco { };
+  slackclient = callPackage ../development/python-modules/slackclient { };
 
-  sopel = callPackage ../development/python-modules/sopel { };
+  sleekxmpp = callPackage ../development/python-modules/sleekxmpp { };
 
-  sounddevice = callPackage ../development/python-modules/sounddevice { };
+  slicedimage = callPackage ../development/python-modules/slicedimage { };
 
-  stevedore = callPackage ../development/python-modules/stevedore {};
+  slicerator = callPackage ../development/python-modules/slicerator { };
 
-  text-unidecode = callPackage ../development/python-modules/text-unidecode { };
+  slimit = callPackage ../development/python-modules/slimit { };
 
-  Theano = callPackage ../development/python-modules/Theano rec {
-    cudaSupport = pkgs.config.cudaSupport or false;
-    cudnnSupport = cudaSupport;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-  };
+  slither-analyzer = callPackage ../development/python-modules/slither-analyzer { };
 
-  TheanoWithoutCuda = self.Theano.override {
-    cudaSupport = false;
-    cudnnSupport = false;
-  };
+  slixmpp = callPackage ../development/python-modules/slixmpp { inherit (pkgs) gnupg; };
 
-  TheanoWithCuda = self.Theano.override {
-    cudaSupport = true;
-    cudnnSupport = true;
-  };
+  slob = callPackage ../development/python-modules/slob { };
 
-  thespian = callPackage ../development/python-modules/thespian { };
+  slowaes = callPackage ../development/python-modules/slowaes { };
 
-  tidylib = callPackage ../development/python-modules/pytidylib { };
+  sly = callPackage ../development/python-modules/sly { };
 
-  tilestache = callPackage ../development/python-modules/tilestache { };
+  smartdc = callPackage ../development/python-modules/smartdc { };
 
-  timelib = callPackage ../development/python-modules/timelib { };
+  smart_open = callPackage ../development/python-modules/smart_open { };
 
-  timeout-decorator = callPackage ../development/python-modules/timeout-decorator { };
+  smartypants = callPackage ../development/python-modules/smartypants { };
 
-  pid = callPackage ../development/python-modules/pid { };
+  smmap2 = throw "smmap2 has been deprecated, use smmap instead."; # added 2020-03-14
 
-  pip2nix = callPackage ../development/python-modules/pip2nix { };
+  smmap = callPackage ../development/python-modules/smmap { };
 
-  pychef = callPackage ../development/python-modules/pychef { };
+  smpplib = callPackage ../development/python-modules/smpplib { };
 
-  pydns =
-    let
-      py3 = callPackage ../development/python-modules/py3dns { };
+  smugline = callPackage ../development/python-modules/smugline { };
 
-      py2 = callPackage ../development/python-modules/pydns { };
-    in if isPy3k then py3 else py2;
+  smugpy = callPackage ../development/python-modules/smugpy { };
 
-  python-daemon = callPackage ../development/python-modules/python-daemon { };
+  snakebite = callPackage ../development/python-modules/snakebite { };
 
-  python-vagrant = callPackage ../development/python-modules/python-vagrant { };
+  snakeviz = callPackage ../development/python-modules/snakeviz { };
 
-  symengine = callPackage ../development/python-modules/symengine {
-    symengine = pkgs.symengine;
-  };
+  snapcast = callPackage ../development/python-modules/snapcast { };
 
-  sympy = if isPy3k then
-    callPackage ../development/python-modules/sympy { }
-  else
-    callPackage ../development/python-modules/sympy/1_5.nix { };
+  snapperGUI = callPackage ../development/python-modules/snappergui { };
 
-  pilkit = callPackage ../development/python-modules/pilkit { };
+  sniffio = callPackage ../development/python-modules/sniffio { };
 
-  clint = callPackage ../development/python-modules/clint { };
+  snitun = callPackage ../development/python-modules/snitun { };
 
-  argh = callPackage ../development/python-modules/argh { };
+  snowballstemmer = callPackage ../development/python-modules/snowballstemmer { };
 
-  nose_progressive = callPackage ../development/python-modules/nose_progressive { };
+  snowflake-connector-python = callPackage ../development/python-modules/snowflake-connector-python { };
 
-  blessings = callPackage ../development/python-modules/blessings { };
+  snowflake-sqlalchemy = callPackage ../development/python-modules/snowflake-sqlalchemy { };
 
-  secretstorage = if isPy3k
-    then callPackage ../development/python-modules/secretstorage { }
-    else callPackage ../development/python-modules/secretstorage/2.nix { };
+  snscrape = callPackage ../development/python-modules/snscrape { };
 
-  secure = callPackage ../development/python-modules/secure { };
+  snug = callPackage ../development/python-modules/snug { };
 
-  semantic = callPackage ../development/python-modules/semantic { };
+  snuggs = callPackage ../development/python-modules/snuggs { };
 
-  sandboxlib = callPackage ../development/python-modules/sandboxlib { };
+  soapysdr = toPythonModule (pkgs.soapysdr.override {
+    python = self.python;
+    usePython = true;
+  });
 
-  sanic = callPackage ../development/python-modules/sanic { };
+  soapysdr-with-plugins = toPythonModule (pkgs.soapysdr-with-plugins.override {
+    python = self.python;
+    usePython = true;
+  });
 
-  scales = callPackage ../development/python-modules/scales { };
+  sockjs-tornado = callPackage ../development/python-modules/sockjs-tornado { };
 
-  secp256k1 = callPackage ../development/python-modules/secp256k1 {
-    inherit (pkgs) secp256k1 pkgconfig;
-  };
+  socksipy-branch = callPackage ../development/python-modules/socksipy-branch { };
 
-  semantic-version = callPackage ../development/python-modules/semantic-version { };
+  soco = callPackage ../development/python-modules/soco { };
 
-  sexpdata = callPackage ../development/python-modules/sexpdata { };
+  softlayer = callPackage ../development/python-modules/softlayer { };
 
-  sh = callPackage ../development/python-modules/sh { };
+  solo-python = disabledIf (!pythonAtLeast "3.6") (callPackage ../development/python-modules/solo-python { });
 
-  sipsimple = callPackage ../development/python-modules/sipsimple { };
+  somajo = callPackage ../development/python-modules/somajo { };
 
-  six = callPackage ../development/python-modules/six { };
+  sopel = callPackage ../development/python-modules/sopel { };
 
-  smartdc = callPackage ../development/python-modules/smartdc { };
+  sorl_thumbnail = callPackage ../development/python-modules/sorl_thumbnail { };
 
-  smpplib = callPackage ../development/python-modules/smpplib { };
+  sortedcollections = callPackage ../development/python-modules/sortedcollections { };
 
-  socksipy-branch = callPackage ../development/python-modules/socksipy-branch { };
+  sortedcontainers = callPackage ../development/python-modules/sortedcontainers { };
 
-  sockjs-tornado = callPackage ../development/python-modules/sockjs-tornado { };
+  sounddevice = callPackage ../development/python-modules/sounddevice { };
 
-  sorl_thumbnail = callPackage ../development/python-modules/sorl_thumbnail { };
+  soundfile = callPackage ../development/python-modules/soundfile { };
 
   soupsieve = if isPy3k then
     callPackage ../development/python-modules/soupsieve { }
   else
     callPackage ../development/python-modules/soupsieve/1.nix { };
 
-  sphinx_rtd_theme = callPackage ../development/python-modules/sphinx_rtd_theme { };
+  spacy = callPackage ../development/python-modules/spacy { };
+
+  spacy_models = callPackage ../development/python-modules/spacy/models.nix { };
+
+  spake2 = callPackage ../development/python-modules/spake2 { };
+
+  spambayes = callPackage ../development/python-modules/spambayes { };
+
+  spark_parser = callPackage ../development/python-modules/spark_parser { };
+
+  SPARQLWrapper = callPackage ../development/python-modules/sparqlwrapper { };
+
+  sparse = callPackage ../development/python-modules/sparse { };
+
+  speaklater = callPackage ../development/python-modules/speaklater { };
+
+  spectral-cube = callPackage ../development/python-modules/spectral-cube { };
+
+  speedtest-cli = callPackage ../development/python-modules/speedtest-cli { };
+
+  spglib = callPackage ../development/python-modules/spglib { };
+
+  sphfile = callPackage ../development/python-modules/sphfile { };
+
+  sphinxcontrib-applehelp = callPackage ../development/python-modules/sphinxcontrib-applehelp { };
+
+  sphinxcontrib-bibtex = callPackage ../development/python-modules/sphinxcontrib-bibtex { };
 
   sphinxcontrib-blockdiag = callPackage ../development/python-modules/sphinxcontrib-blockdiag { };
 
-  sphinxcontrib-openapi = callPackage ../development/python-modules/sphinxcontrib-openapi { };
+  sphinxcontrib-devhelp = callPackage ../development/python-modules/sphinxcontrib-devhelp { };
+
+  sphinxcontrib-fulltoc = callPackage ../development/python-modules/sphinxcontrib-fulltoc { };
+
+  sphinxcontrib-htmlhelp = callPackage ../development/python-modules/sphinxcontrib-htmlhelp { };
 
   sphinxcontrib_httpdomain = callPackage ../development/python-modules/sphinxcontrib_httpdomain { };
 
+  sphinxcontrib-jsmath = callPackage ../development/python-modules/sphinxcontrib-jsmath { };
+
+  sphinxcontrib-katex = callPackage ../development/python-modules/sphinxcontrib-katex { };
+
   sphinxcontrib_newsfeed = callPackage ../development/python-modules/sphinxcontrib_newsfeed { };
 
-  sphinxcontrib_plantuml = callPackage ../development/python-modules/sphinxcontrib_plantuml {
-    inherit (pkgs) plantuml;
-  };
+  sphinxcontrib-openapi = callPackage ../development/python-modules/sphinxcontrib-openapi { };
+
+  sphinxcontrib_plantuml =
+    callPackage ../development/python-modules/sphinxcontrib_plantuml { inherit (pkgs) plantuml; };
+
+  sphinxcontrib-qthelp = callPackage ../development/python-modules/sphinxcontrib-qthelp { };
+
+  sphinxcontrib-serializinghtml = callPackage ../development/python-modules/sphinxcontrib-serializinghtml { };
 
   sphinxcontrib-spelling = callPackage ../development/python-modules/sphinxcontrib-spelling { };
 
@@ -6455,1110 +6587,1105 @@ in {
     texLive = pkgs.texlive.combine { inherit (pkgs.texlive) scheme-small standalone pgfplots; };
   };
 
-  sphinx_pypi_upload = callPackage ../development/python-modules/sphinx_pypi_upload { };
+  sphinxcontrib-websupport = if isPy3k then
+    callPackage ../development/python-modules/sphinxcontrib-websupport { }
+  else
+    callPackage ../development/python-modules/sphinxcontrib-websupport/1_1.nix { };
 
-  Pweave = callPackage ../development/python-modules/pweave { };
+  sphinx = if isPy3k then
+    callPackage ../development/python-modules/sphinx { }
+  else
+    callPackage ../development/python-modules/sphinx/2.nix { };
 
-  SQLAlchemy-ImageAttach = callPackage ../development/python-modules/sqlalchemy-imageattach { };
+  sphinx-jinja = callPackage ../development/python-modules/sphinx-jinja { };
 
-  sqlparse = callPackage ../development/python-modules/sqlparse { };
+  sphinx-navtree = callPackage ../development/python-modules/sphinx-navtree { };
 
-  python_statsd = callPackage ../development/python-modules/python_statsd { };
+  sphinx_pypi_upload = callPackage ../development/python-modules/sphinx_pypi_upload { };
 
-  skein = callPackage ../development/python-modules/skein { };
+  sphinx_rtd_theme = callPackage ../development/python-modules/sphinx_rtd_theme { };
 
-  stompclient = callPackage ../development/python-modules/stompclient { };
+  sphinx-testing = callPackage ../development/python-modules/sphinx-testing { };
 
-  subdownloader = callPackage ../development/python-modules/subdownloader { };
+  spidev = callPackage ../development/python-modules/spidev { };
 
-  subunit = callPackage ../development/python-modules/subunit {
-    inherit (pkgs) subunit pkg-config cppunit check;
-  };
+  splinter = callPackage ../development/python-modules/splinter { };
 
-  sure = callPackage ../development/python-modules/sure { };
+  spotipy = callPackage ../development/python-modules/spotipy { };
 
-  svgwrite = callPackage ../development/python-modules/svgwrite { };
+  spyder = callPackage ../development/python-modules/spyder { };
+  spyder_3 = callPackage ../development/python-modules/spyder/3.nix { };
 
-  swagger-spec-validator = callPackage ../development/python-modules/swagger-spec-validator { };
+  spyder-kernels = callPackage ../development/python-modules/spyder-kernels { };
+  spyder-kernels_0_5 = callPackage ../development/python-modules/spyder-kernels/0.x.nix { };
 
-  openapi-spec-validator = callPackage ../development/python-modules/openapi-spec-validator { };
+  sqlalchemy = callPackage ../development/python-modules/sqlalchemy { };
 
-  freezegun = callPackage ../development/python-modules/freezegun { };
+  sqlalchemy-citext = callPackage ../development/python-modules/sqlalchemy-citext { };
 
-  taskw = callPackage ../development/python-modules/taskw { };
+  sqlalchemy-continuum = callPackage ../development/python-modules/sqlalchemy-continuum { };
 
-  telethon = callPackage ../development/python-modules/telethon { };
+  sqlalchemy-i18n = callPackage ../development/python-modules/sqlalchemy-i18n { };
 
-  telethon-session-sqlalchemy = callPackage ../development/python-modules/telethon-session-sqlalchemy { };
+  SQLAlchemy-ImageAttach = callPackage ../development/python-modules/sqlalchemy-imageattach { };
 
-  terminaltables = callPackage ../development/python-modules/terminaltables { };
+  sqlalchemy_migrate = callPackage ../development/python-modules/sqlalchemy-migrate { };
 
-  testpath = callPackage ../development/python-modules/testpath { };
+  sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { };
 
-  testrepository = callPackage ../development/python-modules/testrepository { };
+  sqlite3dbm = callPackage ../development/python-modules/sqlite3dbm { };
 
-  testscenarios = callPackage ../development/python-modules/testscenarios { };
+  sqlitedict = callPackage ../development/python-modules/sqlitedict { };
 
-  python_mimeparse = callPackage ../development/python-modules/python_mimeparse { };
+  sqlmap = callPackage ../development/python-modules/sqlmap { };
 
-  # Tkinter/tkinter is part of the Python standard library.
-  # The Python interpreters in Nixpkgs come without tkinter by default.
-  # To make the module available, we make it available as any other
-  # Python package.
-  tkinter = let
-    py = python.override{x11Support=true;};
-  in callPackage ../development/python-modules/tkinter { py = py; };
+  sqlobject = callPackage ../development/python-modules/sqlobject { };
 
-  tlslite-ng = callPackage ../development/python-modules/tlslite-ng { };
+  sqlparse = callPackage ../development/python-modules/sqlparse { };
 
-  qrcode = callPackage ../development/python-modules/qrcode { };
+  sqlsoup = callPackage ../development/python-modules/sqlsoup { };
 
-  traits = callPackage ../development/python-modules/traits { };
+  squaremap = callPackage ../development/python-modules/squaremap { };
 
-  transmissionrpc = callPackage ../development/python-modules/transmissionrpc { };
+  srp = callPackage ../development/python-modules/srp { };
 
-  eggdeps = callPackage ../development/python-modules/eggdeps { };
+  srptools = callPackage ../development/python-modules/srptools { };
 
-  twiggy = callPackage ../development/python-modules/twiggy { };
+  srsly = callPackage ../development/python-modules/srsly { };
 
-  twitter = callPackage ../development/python-modules/twitter { };
+  srvlookup = callPackage ../development/python-modules/srvlookup { };
 
-  twitter-common-collections = callPackage ../development/python-modules/twitter-common-collections { };
+  ssdeep = callPackage ../development/python-modules/ssdeep { };
 
-  twitter-common-confluence = callPackage ../development/python-modules/twitter-common-confluence { };
+  ssdp = callPackage ../development/python-modules/ssdp { };
 
-  twitter-common-dirutil = callPackage ../development/python-modules/twitter-common-dirutil { };
+  sseclient = callPackage ../development/python-modules/sseclient { };
 
-  twitter-common-lang = callPackage ../development/python-modules/twitter-common-lang { };
+  sshpubkeys = callPackage ../development/python-modules/sshpubkeys { };
 
-  twitter-common-log = callPackage ../development/python-modules/twitter-common-log { };
+  sshtunnel = callPackage ../development/python-modules/sshtunnel { };
 
-  twitter-common-options = callPackage ../development/python-modules/twitter-common-options { };
+  sslib = callPackage ../development/python-modules/sslib { };
 
-  python-twitter = callPackage ../development/python-modules/python-twitter { };
+  sslyze = callPackage ../development/python-modules/sslyze { };
 
-  umalqurra = callPackage ../development/python-modules/umalqurra { };
+  starfish = callPackage ../development/python-modules/starfish { };
 
-  unicodecsv = callPackage ../development/python-modules/unicodecsv { };
+  starlette = callPackage ../development/python-modules/starlette { };
 
-  unicode-slugify = callPackage ../development/python-modules/unicode-slugify { };
+  staticjinja = callPackage ../development/python-modules/staticjinja { };
 
-  unidiff = callPackage ../development/python-modules/unidiff { };
+  statistics = callPackage ../development/python-modules/statistics { };
 
-  units = callPackage ../development/python-modules/units { };
+  statsd = callPackage ../development/python-modules/statsd { };
 
-  unittest-data-provider = callPackage ../development/python-modules/unittest-data-provider { };
+  statsmodels = callPackage ../development/python-modules/statsmodels { };
 
-  unittest2 = callPackage ../development/python-modules/unittest2 { };
+  stem = callPackage ../development/python-modules/stem { };
 
-  unittest-xml-reporting = callPackage ../development/python-modules/unittest-xml-reporting { };
+  stevedore = callPackage ../development/python-modules/stevedore { };
 
-  untangle = callPackage ../development/python-modules/untangle { };
+  stm32loader = callPackage ../development/python-modules/stm32loader { };
 
-  traceback2 = callPackage ../development/python-modules/traceback2 { };
+  stompclient = callPackage ../development/python-modules/stompclient { };
 
-  trackpy = callPackage ../development/python-modules/trackpy { };
+  strategies = callPackage ../development/python-modules/strategies { };
 
-  linecache2 = callPackage ../development/python-modules/linecache2 { };
+  stravalib = callPackage ../development/python-modules/stravalib { };
 
-  upass = callPackage ../development/python-modules/upass { };
+  streamz = callPackage ../development/python-modules/streamz { };
 
-  uptime = callPackage ../development/python-modules/uptime { };
+  strict-rfc3339 = callPackage ../development/python-modules/strict-rfc3339 { };
 
-  urwidtrees = callPackage ../development/python-modules/urwidtrees { };
+  strictyaml = callPackage ../development/python-modules/strictyaml { };
 
-  pyuv = callPackage ../development/python-modules/pyuv { };
+  stringcase = callPackage ../development/python-modules/stringcase { };
 
-  virtualenv-clone = callPackage ../development/python-modules/virtualenv-clone { };
+  stripe = callPackage ../development/python-modules/stripe { };
 
-  virtualenvwrapper = callPackage ../development/python-modules/virtualenvwrapper { };
+  structlog = callPackage ../development/python-modules/structlog { };
 
-  vmprof = callPackage ../development/python-modules/vmprof { };
+  stumpy = callPackage ../development/python-modules/stumpy { };
 
-  vultr = callPackage ../development/python-modules/vultr { };
+  stups-cli-support = callPackage ../development/python-modules/stups-cli-support { };
 
-  wadllib = callPackage ../development/python-modules/wadllib { };
+  stups-fullstop = callPackage ../development/python-modules/stups-fullstop { };
 
-  waitress = callPackage ../development/python-modules/waitress { };
+  stups-pierone = callPackage ../development/python-modules/stups-pierone { };
 
-  waitress-django = callPackage ../development/python-modules/waitress-django { };
+  stups-tokens = callPackage ../development/python-modules/stups-tokens { };
 
-  web = callPackage ../development/python-modules/web { };
+  stups-zign = callPackage ../development/python-modules/stups-zign { };
 
-  webob = callPackage ../development/python-modules/webob { };
+  stytra = callPackage ../development/python-modules/stytra { };
 
-  websockify = callPackage ../development/python-modules/websockify { };
+  subdownloader = callPackage ../development/python-modules/subdownloader { };
 
-  webtest = callPackage ../development/python-modules/webtest { };
+  subliminal = callPackage ../development/python-modules/subliminal { };
 
-  wsgiproxy2 = callPackage ../development/python-modules/wsgiproxy2 { };
+  subprocess32 = callPackage ../development/python-modules/subprocess32 { };
 
-  wsgitools = callPackage ../development/python-modules/wsgitools { };
+  subunit = callPackage ../development/python-modules/subunit { inherit (pkgs) subunit pkg-config cppunit check; };
 
-  wurlitzer = callPackage ../development/python-modules/wurlitzer { };
+  suds = callPackage ../development/python-modules/suds { };
 
-  xcaplib = callPackage ../development/python-modules/xcaplib { };
+  suds-jurko = callPackage ../development/python-modules/suds-jurko { };
 
-  xlib = callPackage ../development/python-modules/xlib { };
+  sumo = callPackage ../development/python-modules/sumo { };
 
-  yappi = callPackage ../development/python-modules/yappi { };
+  sunpy = callPackage ../development/python-modules/sunpy { };
 
-  zbase32 = callPackage ../development/python-modules/zbase32 { };
+  supervise_api = callPackage ../development/python-modules/supervise_api { };
 
-  zdaemon = callPackage ../development/python-modules/zdaemon { };
+  supervisor = callPackage ../development/python-modules/supervisor { };
 
-  zfec = callPackage ../development/python-modules/zfec { };
+  sure = callPackage ../development/python-modules/sure { };
 
-  zha-quirks = callPackage ../development/python-modules/zha-quirks { };
+  suseapi = callPackage ../development/python-modules/suseapi { };
 
-  zipp = if pythonOlder "3.6" then
-    callPackage ../development/python-modules/zipp/1.nix { }
-  else 
-    callPackage ../development/python-modules/zipp { };
+  svg2tikz = callPackage ../development/python-modules/svg2tikz { };
 
-  zope_broken = callPackage ../development/python-modules/zope_broken { };
+  svglib = callPackage ../development/python-modules/svglib { };
 
-  zope_component = callPackage ../development/python-modules/zope_component { };
+  svg-path = callPackage ../development/python-modules/svg-path { };
 
-  zope_configuration = callPackage ../development/python-modules/zope_configuration { };
+  svgwrite = callPackage ../development/python-modules/svgwrite { };
 
-  zope_contenttype = callPackage ../development/python-modules/zope_contenttype { };
+  swagger-spec-validator = callPackage ../development/python-modules/swagger-spec-validator { };
 
-  zope-deferredimport = callPackage ../development/python-modules/zope-deferredimport { };
+  swagger-ui-bundle = callPackage ../development/python-modules/swagger-ui-bundle { };
 
-  zope_dottedname = callPackage ../development/python-modules/zope_dottedname { };
+  sybil = callPackage ../development/python-modules/sybil { };
 
-  zope_event = callPackage ../development/python-modules/zope_event { };
+  symengine = callPackage ../development/python-modules/symengine { symengine = pkgs.symengine; };
 
-  zope_exceptions = callPackage ../development/python-modules/zope_exceptions { };
+  sympy = if isPy3k then
+    callPackage ../development/python-modules/sympy { }
+  else
+    callPackage ../development/python-modules/sympy/1_5.nix { };
 
-  zope_filerepresentation = callPackage ../development/python-modules/zope_filerepresentation { };
+  systemd = callPackage ../development/python-modules/systemd { inherit (pkgs) pkgconfig systemd; };
 
-  zope-hookable = callPackage ../development/python-modules/zope-hookable { };
+  sysv_ipc = callPackage ../development/python-modules/sysv_ipc { };
 
-  zope_i18n = callPackage ../development/python-modules/zope_i18n { };
+  tableaudocumentapi = callPackage ../development/python-modules/tableaudocumentapi { };
 
-  zope_i18nmessageid = callPackage ../development/python-modules/zope_i18nmessageid { };
+  tables = if isPy3k then
+    callPackage ../development/python-modules/tables { hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; }; }
+  else
+    callPackage ../development/python-modules/tables/3.5.nix { hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; }; };
 
-  zope_lifecycleevent = callPackage ../development/python-modules/zope_lifecycleevent { };
+  tablib = callPackage ../development/python-modules/tablib { };
 
-  zope_location = callPackage ../development/python-modules/zope_location { };
+  tabulate = callPackage ../development/python-modules/tabulate { };
 
-  zope_proxy = callPackage ../development/python-modules/zope_proxy { };
+  tadasets = callPackage ../development/python-modules/tadasets { };
 
-  zope_schema = callPackage ../development/python-modules/zope_schema { };
+  tag-expressions = callPackage ../development/python-modules/tag-expressions { };
 
-  zope_size = callPackage ../development/python-modules/zope_size { };
+  tarman = callPackage ../development/python-modules/tarman { };
 
-  zope_testing = callPackage ../development/python-modules/zope_testing { };
+  tasklib = callPackage ../development/python-modules/tasklib { };
 
-  zope_testrunner = callPackage ../development/python-modules/zope_testrunner { };
+  taskw = callPackage ../development/python-modules/taskw { };
 
-  zope_interface = callPackage ../development/python-modules/zope_interface { };
+  tatsu = callPackage ../development/python-modules/tatsu { };
 
-  hgsvn = callPackage ../development/python-modules/hgsvn { };
+  tblib = callPackage ../development/python-modules/tblib { };
 
-  cliapp = callPackage ../development/python-modules/cliapp { };
+  tbm-utils = callPackage ../development/python-modules/tbm-utils { };
 
-  cmdtest = callPackage ../development/python-modules/cmdtest { };
+  telegram = callPackage ../development/python-modules/telegram { };
 
-  tornado = callPackage ../development/python-modules/tornado { };
-  tornado_4 = callPackage ../development/python-modules/tornado { version = "4.5.3"; };
+  telethon = callPackage ../development/python-modules/telethon { };
 
-  tokenlib = callPackage ../development/python-modules/tokenlib { };
+  telethon-session-sqlalchemy = callPackage ../development/python-modules/telethon-session-sqlalchemy { };
 
-  tunigo = callPackage ../development/python-modules/tunigo { };
+  tempita = callPackage ../development/python-modules/tempita { };
 
-  tarman = callPackage ../development/python-modules/tarman { };
+  tempora = callPackage ../development/python-modules/tempora { };
 
-  libarchive = self.python-libarchive; # The latter is the name upstream uses
+  tenacity = callPackage ../development/python-modules/tenacity { };
 
-  python-libarchive = callPackage ../development/python-modules/python-libarchive { };
+  tensorboardx = callPackage ../development/python-modules/tensorboardx { };
 
-  python-logstash = callPackage ../development/python-modules/python-logstash { };
+  tensorflow-bin_1 = callPackage ../development/python-modules/tensorflow/1/bin.nix {
+    cudaSupport = pkgs.config.cudaSupport or false;
+    inherit (pkgs.linuxPackages) nvidia_x11;
+    cudatoolkit = pkgs.cudatoolkit_10;
+    cudnn = pkgs.cudnn_cudatoolkit_10;
+  };
 
-  libarchive-c = callPackage ../development/python-modules/libarchive-c {
-    inherit (pkgs) libarchive;
+  tensorflow-bin_2 = callPackage ../development/python-modules/tensorflow/2/bin.nix {
+    cudaSupport = pkgs.config.cudaSupport or false;
+    inherit (pkgs.linuxPackages) nvidia_x11;
+    cudatoolkit = pkgs.cudatoolkit_10;
+    cudnn = pkgs.cudnn_cudatoolkit_10;
   };
 
-  libasyncns = callPackage ../development/python-modules/libasyncns {
-    inherit (pkgs) libasyncns pkgconfig;
+  tensorflow-bin = self.tensorflow-bin_1;
+
+  tensorflow-build_1 = callPackage ../development/python-modules/tensorflow/1 {
+    cudaSupport = pkgs.config.cudaSupport or false;
+    inherit (pkgs.linuxPackages) nvidia_x11;
+    cudatoolkit = pkgs.cudatoolkit_10;
+    cudnn = pkgs.cudnn_cudatoolkit_10;
+    nccl = pkgs.nccl_cudatoolkit_10;
+    openssl = pkgs.openssl_1_1;
+    inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security;
   };
 
-  pybrowserid = callPackage ../development/python-modules/pybrowserid { };
+  tensorflow-build_2 = callPackage ../development/python-modules/tensorflow/2 {
+    cudaSupport = pkgs.config.cudaSupport or false;
+    inherit (pkgs.linuxPackages) nvidia_x11;
+    cudatoolkit = pkgs.cudatoolkit_10;
+    cudnn = pkgs.cudnn_cudatoolkit_10;
+    nccl = pkgs.nccl_cudatoolkit_10;
+    openssl = pkgs.openssl_1_1;
+    inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security;
+  };
 
-  pyzmq = callPackage ../development/python-modules/pyzmq { };
+  tensorflow-build = self.tensorflow-build_1;
 
-  testfixtures = callPackage ../development/python-modules/testfixtures {};
+  tensorflow-estimator_1 = callPackage ../development/python-modules/tensorflow-estimator/1 { };
 
-  tissue = callPackage ../development/python-modules/tissue { };
+  tensorflow-estimator_2 = callPackage ../development/python-modules/tensorflow-estimator/2 { };
 
-  titlecase = callPackage ../development/python-modules/titlecase { };
+  tensorflow-estimator = self.tensorflow-estimator_1;
 
-  tracing = callPackage ../development/python-modules/tracing { };
+  tensorflow-probability = callPackage ../development/python-modules/tensorflow-probability { };
 
-  traitsui = callPackage ../development/python-modules/traitsui { };
+  tensorflow = self.tensorflow_1;
+  tensorflow_1 = self.tensorflow-build_1;
+  tensorflow_2 = self.tensorflow-build_2;
 
-  translationstring = callPackage ../development/python-modules/translationstring { };
+  tensorflow-tensorboard_1 = callPackage ../development/python-modules/tensorflow-tensorboard/1 { };
 
-  ttystatus = callPackage ../development/python-modules/ttystatus { };
+  tensorflow-tensorboard_2 = callPackage ../development/python-modules/tensorflow-tensorboard/2 { };
 
-  larch = callPackage ../development/python-modules/larch { };
+  tensorflow-tensorboard = self.tensorflow-tensorboard_1;
 
-  websocket_client = callPackage ../development/python-modules/websocket_client { };
+  tensorflowWithCuda = self.tensorflow.override { cudaSupport = true; };
 
-  webhelpers = callPackage ../development/python-modules/webhelpers { };
+  tensorflowWithoutCuda = self.tensorflow.override { cudaSupport = false; };
 
-  whichcraft = callPackage ../development/python-modules/whichcraft { };
+  tensorly = callPackage ../development/python-modules/tensorly { };
 
-  whisper = callPackage ../development/python-modules/whisper { };
+  termcolor = callPackage ../development/python-modules/termcolor { };
 
-  worldengine = callPackage ../development/python-modules/worldengine { };
+  terminado = callPackage ../development/python-modules/terminado { };
 
-  carbon = callPackage ../development/python-modules/carbon { };
+  terminaltables = callPackage ../development/python-modules/terminaltables { };
 
-  ujson = callPackage ../development/python-modules/ujson { };
+  termstyle = callPackage ../development/python-modules/termstyle { };
 
-  unidecode = callPackage ../development/python-modules/unidecode {};
+  tess = callPackage ../development/python-modules/tess { };
 
-  pyusb = callPackage ../development/python-modules/pyusb { libusb1 = pkgs.libusb1; };
+  tesserocr = callPackage ../development/python-modules/tesserocr { };
 
-  BlinkStick = callPackage ../development/python-modules/blinkstick { };
+  testfixtures = callPackage ../development/python-modules/testfixtures { };
 
-  usbtmc = callPackage ../development/python-modules/usbtmc {};
+  testpath = callPackage ../development/python-modules/testpath { };
 
-  txgithub = callPackage ../development/python-modules/txgithub { };
+  testrepository = callPackage ../development/python-modules/testrepository { };
 
-  txrequests = callPackage ../development/python-modules/txrequests { };
+  testresources = callPackage ../development/python-modules/testresources { };
 
-  txamqp = callPackage ../development/python-modules/txamqp { };
+  testscenarios = callPackage ../development/python-modules/testscenarios { };
 
-  versiontools = callPackage ../development/python-modules/versiontools { };
+  testtools = callPackage ../development/python-modules/testtools { };
 
-  veryprettytable = callPackage ../development/python-modules/veryprettytable { };
+  test-tube = callPackage ../development/python-modules/test-tube { };
 
-  graphite-web = callPackage ../development/python-modules/graphite-web { };
+  textacy = callPackage ../development/python-modules/textacy { };
 
-  graphite_api = callPackage ../development/python-modules/graphite-api { };
+  texttable = callPackage ../development/python-modules/texttable { };
 
-  graphite_beacon = callPackage ../development/python-modules/graphite_beacon { };
+  text-unidecode = callPackage ../development/python-modules/text-unidecode { };
 
-  graph_nets = callPackage ../development/python-modules/graph_nets { };
+  textwrap3 = callPackage ../development/python-modules/textwrap3 { };
 
-  graspy = callPackage ../development/python-modules/graspy { };
+  tflearn = callPackage ../development/python-modules/tflearn { };
 
-  influxgraph = callPackage ../development/python-modules/influxgraph { };
+  Theano = callPackage ../development/python-modules/Theano rec {
+    cudaSupport = pkgs.config.cudaSupport or false;
+    cudnnSupport = cudaSupport;
+    inherit (pkgs.linuxPackages) nvidia_x11;
+  };
 
-  pyspotify = callPackage ../development/python-modules/pyspotify { };
+  TheanoWithCuda = self.Theano.override {
+    cudaSupport = true;
+    cudnnSupport = true;
+  };
 
-  pykka = callPackage ../development/python-modules/pykka { };
+  TheanoWithoutCuda = self.Theano.override {
+    cudaSupport = false;
+    cudnnSupport = false;
+  };
 
-  ws4py = callPackage ../development/python-modules/ws4py {};
+  thespian = callPackage ../development/python-modules/thespian { };
 
-  gdata = callPackage ../development/python-modules/gdata { };
+  thinc = callPackage ../development/python-modules/thinc { };
 
-  IMAPClient = callPackage ../development/python-modules/imapclient { };
+  threadpool = callPackage ../development/python-modules/threadpool { };
 
-  Logbook = callPackage ../development/python-modules/Logbook { };
+  threadpoolctl = callPackage ../development/python-modules/threadpoolctl { };
 
-  libversion = callPackage ../development/python-modules/libversion {
-    inherit (pkgs) libversion pkgconfig;
-  };
+  thrift = callPackage ../development/python-modules/thrift { };
 
-  libvirt = if isPy3k then (callPackage ../development/python-modules/libvirt {
-    inherit (pkgs) libvirt pkgconfig;
-  }) else (callPackage ../development/python-modules/libvirt/5.9.0.nix {
-    inherit (pkgs) pkgconfig;
-    libvirt = pkgs.libvirt_5_9_0;
-  });
+  thumbor = callPackage ../development/python-modules/thumbor { };
 
-  rpdb = callPackage ../development/python-modules/rpdb { };
+  thumborPexif = callPackage ../development/python-modules/thumborpexif { };
 
-  grequests = callPackage ../development/python-modules/grequests { };
+  tkinter = let
+    py = python.override{x11Support=true;};
+  in callPackage ../development/python-modules/tkinter { py = py; };
 
-  first = callPackage ../development/python-modules/first {};
+  tidylib = callPackage ../development/python-modules/pytidylib { };
 
-  flaskbabel = callPackage ../development/python-modules/flaskbabel { };
+  tifffile = callPackage ../development/python-modules/tifffile { };
 
-  speaklater = callPackage ../development/python-modules/speaklater { };
+  tiledb = callPackage ../development/python-modules/tiledb { inherit (pkgs) tiledb; };
 
-  speedtest-cli = callPackage ../development/python-modules/speedtest-cli { };
+  tilestache = callPackage ../development/python-modules/tilestache { };
 
-  pushbullet = callPackage ../development/python-modules/pushbullet { };
+  timelib = callPackage ../development/python-modules/timelib { };
 
-  power = callPackage ../development/python-modules/power { };
+  timeout-decorator = callPackage ../development/python-modules/timeout-decorator { };
 
-  pythonefl = callPackage ../development/python-modules/python-efl {
-    inherit (pkgs) pkgconfig;
-  };
+  timezonefinder = callPackage ../development/python-modules/timezonefinder { };
 
-  tlsh = callPackage ../development/python-modules/tlsh { };
+  tinycss2 = callPackage ../development/python-modules/tinycss2 { };
 
-  toposort = callPackage ../development/python-modules/toposort { };
+  tinycss = callPackage ../development/python-modules/tinycss { };
 
-  snakebite = callPackage ../development/python-modules/snakebite { };
+  tinydb = callPackage ../development/python-modules/tinydb { };
 
-  snapperGUI = callPackage ../development/python-modules/snappergui { };
+  tiros = callPackage ../development/python-modules/tiros { };
 
-  dm-sonnet = callPackage ../development/python-modules/dm-sonnet { };
+  tissue = callPackage ../development/python-modules/tissue { };
 
-  uncertainties = callPackage ../development/python-modules/uncertainties { };
+  titlecase = callPackage ../development/python-modules/titlecase { };
 
-  funcy = callPackage ../development/python-modules/funcy { };
+  tld = callPackage ../development/python-modules/tld { };
 
-  vxi11 = callPackage ../development/python-modules/vxi11 { };
+  tldextract = callPackage ../development/python-modules/tldextract { };
 
-  svg2tikz = callPackage ../development/python-modules/svg2tikz { };
+  tlsh = callPackage ../development/python-modules/tlsh { };
 
-  WSGIProxy = callPackage ../development/python-modules/wsgiproxy { };
+  tlslite-ng = callPackage ../development/python-modules/tlslite-ng { };
 
-  blist = callPackage ../development/python-modules/blist { };
+  tls-parser = callPackage ../development/python-modules/tls-parser { };
 
-  canonicaljson = callPackage ../development/python-modules/canonicaljson { };
+  tmdb3 = callPackage ../development/python-modules/tmdb3 { };
 
-  daemonize = callPackage ../development/python-modules/daemonize { };
+  todoist = callPackage ../development/python-modules/todoist { };
 
-  pydenticon = callPackage ../development/python-modules/pydenticon { };
+  toggl-cli = callPackage ../development/python-modules/toggl-cli { };
 
-  pynac = callPackage ../development/python-modules/pynac { };
+  tokenizers = disabledIf (!isPy3k) (toPythonModule (callPackage ../development/python-modules/tokenizers { }));
 
-  pybindgen = callPackage ../development/python-modules/pybindgen {};
+  tokenlib = callPackage ../development/python-modules/tokenlib { };
 
-  pygccxml = callPackage ../development/python-modules/pygccxml {};
+  tokenserver = callPackage ../development/python-modules/tokenserver { };
 
-  pymacaroons = callPackage ../development/python-modules/pymacaroons { };
+  toml = callPackage ../development/python-modules/toml { };
 
-  pynacl = callPackage ../development/python-modules/pynacl { };
+  tomlkit = callPackage ../development/python-modules/tomlkit { };
 
-  service-identity = callPackage ../development/python-modules/service_identity { };
+  toolz = callPackage ../development/python-modules/toolz { };
 
-  signedjson = callPackage ../development/python-modules/signedjson { };
+  toposort = callPackage ../development/python-modules/toposort { };
 
-  unpaddedbase64 = callPackage ../development/python-modules/unpaddedbase64 { };
+  topydo = throw "python3Packages.topydo was moved to topydo"; # 2017-09-22
 
-  thumbor = callPackage ../development/python-modules/thumbor { };
+  torchgpipe = callPackage ../development/python-modules/torchgpipe { };
 
-  thumborPexif = callPackage ../development/python-modules/thumborpexif { };
+  torchvision = callPackage ../development/python-modules/torchvision { };
 
-  pync = callPackage ../development/python-modules/pync { };
+  tornado = if isPy3k then
+    callPackage ../development/python-modules/tornado { }
+  else
+    callPackage ../development/python-modules/tornado/5.nix { };
 
-  weboob = callPackage ../development/python-modules/weboob { };
+  # Used by circus and grab-site, 2020-08-29
+  tornado_4 = callPackage ../development/python-modules/tornado/4.nix { };
 
-  datadiff = callPackage ../development/python-modules/datadiff { };
+  # Used by luigi, 2020-08-29
+  tornado_5 = callPackage ../development/python-modules/tornado/5.nix { };
 
-  termcolor = callPackage ../development/python-modules/termcolor { };
+  towncrier = callPackage ../development/python-modules/towncrier { inherit (pkgs) git; };
 
-  html2text = if isPy3k then callPackage ../development/python-modules/html2text { }
-                        else callPackage ../development/python-modules/html2text/2018.nix { };
+  tox = callPackage ../development/python-modules/tox { };
 
-  pychart = callPackage ../development/python-modules/pychart {};
+  tqdm = callPackage ../development/python-modules/tqdm { };
 
-  parsimonious = callPackage ../development/python-modules/parsimonious { };
+  traceback2 = callPackage ../development/python-modules/traceback2 { };
 
-  networkx = if isPy3k then callPackage ../development/python-modules/networkx { }
-    else
-      callPackage ../development/python-modules/networkx/2.2.nix { };
+  tracing = callPackage ../development/python-modules/tracing { };
 
-  ofxclient = callPackage ../development/python-modules/ofxclient {};
+  trackpy = callPackage ../development/python-modules/trackpy { };
 
-  ofxhome = callPackage ../development/python-modules/ofxhome { };
+  traitlets = callPackage ../development/python-modules/traitlets { };
 
-  ofxparse = callPackage ../development/python-modules/ofxparse { };
+  traits = callPackage ../development/python-modules/traits { };
 
-  ofxtools = callPackage ../development/python-modules/ofxtools { };
+  traitsui = callPackage ../development/python-modules/traitsui { };
 
-  orm = callPackage ../development/python-modules/orm { };
+  traittypes = callPackage ../development/python-modules/traittypes { };
 
-  basemap = callPackage ../development/python-modules/basemap { };
+  transaction = callPackage ../development/python-modules/transaction { };
 
-  dict2xml = callPackage ../development/python-modules/dict2xml { };
+  transformers = callPackage ../development/python-modules/transformers { };
 
-  dicttoxml = callPackage ../development/python-modules/dicttoxml { };
+  transforms3d = callPackage ../development/python-modules/transforms3d { };
 
-  markdown2 = callPackage ../development/python-modules/markdown2 { };
+  transip = callPackage ../development/python-modules/transip { };
 
-  evernote = callPackage ../development/python-modules/evernote { };
+  transitions = callPackage ../development/python-modules/transitions { };
 
-  setproctitle = callPackage ../development/python-modules/setproctitle { };
+  translationstring = callPackage ../development/python-modules/translationstring { };
 
-  thrift = callPackage ../development/python-modules/thrift { };
+  transmissionrpc = callPackage ../development/python-modules/transmissionrpc { };
 
-  geeknote = callPackage ../development/python-modules/geeknote { };
+  treq = callPackage ../development/python-modules/treq { };
 
-  trollius = callPackage ../development/python-modules/trollius {};
+  trezor_agent = callPackage ../development/python-modules/trezor_agent { };
 
-  pynvim = callPackage ../development/python-modules/pynvim {};
+  trezor = callPackage ../development/python-modules/trezor { };
 
-  typogrify = callPackage ../development/python-modules/typogrify { };
+  trimesh = callPackage ../development/python-modules/trimesh { };
 
-  smartypants = callPackage ../development/python-modules/smartypants { };
+  trio = callPackage ../development/python-modules/trio { };
 
-  pypeg2 = callPackage ../development/python-modules/pypeg2 { };
+  trollius = callPackage ../development/python-modules/trollius { };
 
-  torchvision = callPackage ../development/python-modules/torchvision { };
+  trueskill = callPackage ../development/python-modules/trueskill { };
 
-  jenkinsapi = callPackage ../development/python-modules/jenkinsapi { };
+  trustme = callPackage ../development/python-modules/trustme { };
 
-  jenkins-job-builder = callPackage ../development/python-modules/jenkins-job-builder { };
+  trytond = callPackage ../development/python-modules/trytond { };
 
-  dot2tex = callPackage ../development/python-modules/dot2tex {
-    inherit (pkgs) graphviz;
-  };
+  ttystatus = callPackage ../development/python-modules/ttystatus { };
 
-  poezio = callPackage ../applications/networking/instant-messengers/poezio {
-    inherit (pkgs) pkgconfig;
-  };
+  tunigo = callPackage ../development/python-modules/tunigo { };
 
-  potr = callPackage ../development/python-modules/potr {};
+  TurboCheetah = callPackage ../development/python-modules/TurboCheetah { };
 
-  pyregion = callPackage ../development/python-modules/pyregion {};
+  tvdb_api = callPackage ../development/python-modules/tvdb_api { };
 
-  python-nomad = callPackage ../development/python-modules/python-nomad { };
+  tvnamer = callPackage ../development/python-modules/tvnamer { };
 
-  python-u2flib-host = callPackage ../development/python-modules/python-u2flib-host { };
+  tweepy = callPackage ../development/python-modules/tweepy { };
 
-  python-xmp-toolkit = callPackage ../development/python-modules/python-xmp-toolkit { };
+  twiggy = callPackage ../development/python-modules/twiggy { };
 
-  pluggy = callPackage ../development/python-modules/pluggy {};
+  twilio = callPackage ../development/python-modules/twilio { };
 
-  xcffib = callPackage ../development/python-modules/xcffib {};
+  twill = callPackage ../development/python-modules/twill { };
 
-  pafy = callPackage ../development/python-modules/pafy { };
+  twine = callPackage ../development/python-modules/twine { };
 
-  suds = callPackage ../development/python-modules/suds { };
+  twisted = callPackage ../development/python-modules/twisted { };
 
-  suds-jurko = callPackage ../development/python-modules/suds-jurko { };
+  twitter = callPackage ../development/python-modules/twitter { };
 
-  mailcap-fix = callPackage ../development/python-modules/mailcap-fix { };
+  twitter-common-collections = callPackage ../development/python-modules/twitter-common-collections { };
 
-  maildir-deduplicate = callPackage ../development/python-modules/maildir-deduplicate { };
+  twitter-common-confluence = callPackage ../development/python-modules/twitter-common-confluence { };
 
-  d2to1 = callPackage ../development/python-modules/d2to1 { };
+  twitter-common-dirutil = callPackage ../development/python-modules/twitter-common-dirutil { };
 
-  ovh = callPackage ../development/python-modules/ovh { };
+  twitter-common-lang = callPackage ../development/python-modules/twitter-common-lang { };
 
-  willow = callPackage ../development/python-modules/willow { };
+  twitter-common-log = callPackage ../development/python-modules/twitter-common-log { };
 
-  importmagic = callPackage ../development/python-modules/importmagic { };
+  twitter-common-options = callPackage ../development/python-modules/twitter-common-options { };
 
-  xgboost = callPackage ../development/python-modules/xgboost {
-    xgboost = pkgs.xgboost;
-  };
+  twofish = callPackage ../development/python-modules/twofish { };
 
-  xhtml2pdf = callPackage ../development/python-modules/xhtml2pdf { };
+  txaio = callPackage ../development/python-modules/txaio { };
 
-  xkcdpass = callPackage ../development/python-modules/xkcdpass { };
+  txamqp = callPackage ../development/python-modules/txamqp { };
 
-  xlsx2csv = callPackage ../development/python-modules/xlsx2csv { };
+  txdbus = callPackage ../development/python-modules/txdbus { };
 
-  xmodem = callPackage ../development/python-modules/xmodem {};
+  txgithub = callPackage ../development/python-modules/txgithub { };
 
-  xmpppy = callPackage ../development/python-modules/xmpppy {};
+  txrequests = callPackage ../development/python-modules/txrequests { };
 
-  xstatic = callPackage ../development/python-modules/xstatic {};
+  txtorcon = callPackage ../development/python-modules/txtorcon { };
 
-  xstatic-bootbox = callPackage ../development/python-modules/xstatic-bootbox {};
+  typed-ast = callPackage ../development/python-modules/typed-ast { };
 
-  xstatic-bootstrap = callPackage ../development/python-modules/xstatic-bootstrap {};
+  typeguard = callPackage ../development/python-modules/typeguard { };
 
-  xstatic-jquery = callPackage ../development/python-modules/xstatic-jquery {};
+  typesentry = callPackage ../development/python-modules/typesentry { };
 
-  xstatic-jquery-file-upload = callPackage ../development/python-modules/xstatic-jquery-file-upload {};
+  typesystem = callPackage ../development/python-modules/typesystem { };
 
-  xstatic-jquery-ui = callPackage ../development/python-modules/xstatic-jquery-ui {};
+  typing = callPackage ../development/python-modules/typing { };
 
-  xstatic-pygments = callPackage ../development/python-modules/xstatic-pygments {};
+  typing-extensions = callPackage ../development/python-modules/typing-extensions { };
 
-  xvfbwrapper = callPackage ../development/python-modules/xvfbwrapper {
-    inherit (pkgs.xorg) xorgserver;
-  };
+  typing-inspect = callPackage ../development/python-modules/typing-inspect { };
 
-  hidapi = callPackage ../development/python-modules/hidapi {
-    inherit (pkgs) udev libusb1;
-  };
+  typogrify = callPackage ../development/python-modules/typogrify { };
 
-  ckcc-protocol = callPackage ../development/python-modules/ckcc-protocol { };
+  tzlocal = callPackage ../development/python-modules/tzlocal { };
 
-  mnemonic = callPackage ../development/python-modules/mnemonic { };
+  uamqp =
+    callPackage ../development/python-modules/uamqp { inherit (pkgs.darwin.apple_sdk.frameworks) CFNetwork Security; };
 
-  keepkey = callPackage ../development/python-modules/keepkey { };
+  ua-parser = callPackage ../development/python-modules/ua-parser { };
 
-  keepkey_agent = callPackage ../development/python-modules/keepkey_agent { };
+  uarray = callPackage ../development/python-modules/uarray { };
 
-  libagent = callPackage ../development/python-modules/libagent { };
+  ueberzug = callPackage ../development/python-modules/ueberzug { inherit (pkgs.xorg) libX11 libXext; };
 
-  ledger_agent = callPackage ../development/python-modules/ledger_agent { };
+  ufonormalizer = callPackage ../development/python-modules/ufonormalizer { };
 
-  ledgerblue = callPackage ../development/python-modules/ledgerblue { };
+  ufoprocessor = callPackage ../development/python-modules/ufoprocessor { };
 
-  ecpy = callPackage ../development/python-modules/ecpy { };
+  ujson = if isPy27 then
+    callPackage ../development/python-modules/ujson/2.nix { }
+  else
+    callPackage ../development/python-modules/ujson { };
 
-  semver = callPackage ../development/python-modules/semver { };
+  ukpostcodeparser = callPackage ../development/python-modules/ukpostcodeparser { };
 
-  ed25519 = callPackage ../development/python-modules/ed25519 { };
+  umalqurra = callPackage ../development/python-modules/umalqurra { };
 
-  trezor = callPackage ../development/python-modules/trezor { };
+  umap-learn = callPackage ../development/python-modules/umap-learn { };
 
-  trezor_agent = callPackage ../development/python-modules/trezor_agent { };
+  umemcache = callPackage ../development/python-modules/umemcache { };
 
-  x11_hash = callPackage ../development/python-modules/x11_hash { };
+  u-msgpack-python = callPackage ../development/python-modules/u-msgpack-python { };
 
-  termstyle = callPackage ../development/python-modules/termstyle { };
+  uncertainties = callPackage ../development/python-modules/uncertainties { };
 
-  green = callPackage ../development/python-modules/green { };
+  uncompyle6 = callPackage ../development/python-modules/uncompyle6 { };
 
-  topydo = throw "python3Packages.topydo was moved to topydo"; # 2017-09-22
+  unicodecsv = callPackage ../development/python-modules/unicodecsv { };
 
-  w3lib = callPackage ../development/python-modules/w3lib { };
+  unicodedata2 = callPackage ../development/python-modules/unicodedata2 { };
 
-  queuelib = callPackage ../development/python-modules/queuelib { };
+  unicode-slugify = callPackage ../development/python-modules/unicode-slugify { };
 
-  scrapy = callPackage ../development/python-modules/scrapy { };
+  unicorn = callPackage ../development/python-modules/unicorn { };
 
-  scrapy-fake-useragent = callPackage ../development/python-modules/scrapy-fake-useragent { };
+  unidecode = callPackage ../development/python-modules/unidecode { };
 
-  scrapy-deltafetch = callPackage ../development/python-modules/scrapy-deltafetch { };
+  unidiff = callPackage ../development/python-modules/unidiff { };
 
-  scrapy-splash = callPackage ../development/python-modules/scrapy-splash { };
+  unifi = callPackage ../development/python-modules/unifi { };
 
-  pandocfilters = callPackage ../development/python-modules/pandocfilters { };
+  units = callPackage ../development/python-modules/units { };
 
-  pandoc-attributes = callPackage ../development/python-modules/pandoc-attributes { };
+  unittest2 = callPackage ../development/python-modules/unittest2 { };
 
-  htmltreediff = callPackage ../development/python-modules/htmltreediff { };
+  unittest-data-provider = callPackage ../development/python-modules/unittest-data-provider { };
 
-  repeated_test = callPackage ../development/python-modules/repeated_test { };
+  unittest-xml-reporting = callPackage ../development/python-modules/unittest-xml-reporting { };
 
-  Keras = callPackage ../development/python-modules/keras { };
+  unpaddedbase64 = callPackage ../development/python-modules/unpaddedbase64 { };
 
-  keras-applications = callPackage ../development/python-modules/keras-applications { };
+  unrpa = callPackage ../development/python-modules/unrpa { };
 
-  keras-preprocessing = callPackage ../development/python-modules/keras-preprocessing { };
+  untangle = callPackage ../development/python-modules/untangle { };
 
-  Lasagne = callPackage ../development/python-modules/lasagne { };
+  upass = callPackage ../development/python-modules/upass { };
 
-  send2trash = callPackage ../development/python-modules/send2trash { };
+  update_checker = callPackage ../development/python-modules/update_checker { };
 
-  sigtools = callPackage ../development/python-modules/sigtools { };
+  update-copyright = callPackage ../development/python-modules/update-copyright { };
 
-  annoy = callPackage ../development/python-modules/annoy { };
+  update-dotdee = callPackage ../development/python-modules/update-dotdee { };
 
-  clize = callPackage ../development/python-modules/clize { };
+  uproot = callPackage ../development/python-modules/uproot { };
 
-  rl-coach = callPackage ../development/python-modules/rl-coach { };
+  uproot-methods = callPackage ../development/python-modules/uproot-methods { };
 
-  zerobin = callPackage ../development/python-modules/zerobin { };
+  uptime = callPackage ../development/python-modules/uptime { };
 
-  tensorflow-estimator = self.tensorflow-estimator_1;
+  uranium = callPackage ../development/python-modules/uranium { };
 
-  tensorflow-estimator_1 = callPackage ../development/python-modules/tensorflow-estimator/1 { };
+  uritemplate = callPackage ../development/python-modules/uritemplate { };
 
-  tensorflow-estimator_2 = callPackage ../development/python-modules/tensorflow-estimator/2 { };
+  uritools = callPackage ../development/python-modules/uritools { };
 
-  tensorflow-probability = callPackage ../development/python-modules/tensorflow-probability { };
+  urlgrabber = callPackage ../development/python-modules/urlgrabber { };
 
-  tensorflow-tensorboard = self.tensorflow-tensorboard_1;
+  urllib3 = callPackage ../development/python-modules/urllib3 { };
 
-  tensorflow-tensorboard_1 = callPackage ../development/python-modules/tensorflow-tensorboard/1 { };
+  urwid = callPackage ../development/python-modules/urwid { };
 
-  tensorflow-tensorboard_2 = callPackage ../development/python-modules/tensorflow-tensorboard/2 { };
+  urwidtrees = callPackage ../development/python-modules/urwidtrees { };
 
-  tensorflow-bin = self.tensorflow-bin_1;
+  usbtmc = callPackage ../development/python-modules/usbtmc { };
 
-  tensorflow-bin_1 = callPackage ../development/python-modules/tensorflow/1/bin.nix {
-    cudaSupport = pkgs.config.cudaSupport or false;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-    cudatoolkit = pkgs.cudatoolkit_10;
-    cudnn = pkgs.cudnn_cudatoolkit_10;
-  };
+  us = callPackage ../development/python-modules/us { };
 
-  tensorflow-bin_2 = callPackage ../development/python-modules/tensorflow/2/bin.nix {
-    cudaSupport = pkgs.config.cudaSupport or false;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-    cudatoolkit = pkgs.cudatoolkit_10;
-    cudnn = pkgs.cudnn_cudatoolkit_10;
-  };
+  user-agents = callPackage ../development/python-modules/user-agents { };
 
-  tensorflow-build = self.tensorflow-build_1;
+  userpath = callPackage ../development/python-modules/userpath { };
 
-  tensorflow-build_1 = callPackage ../development/python-modules/tensorflow/1 {
-    cudaSupport = pkgs.config.cudaSupport or false;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-    cudatoolkit = pkgs.cudatoolkit_10;
-    cudnn = pkgs.cudnn_cudatoolkit_10;
-    nccl = pkgs.nccl_cudatoolkit_10;
-    openssl = pkgs.openssl_1_1;
-    inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security;
-  };
+  uuid = callPackage ../development/python-modules/uuid { };
 
-  tensorflow-build_2 = callPackage ../development/python-modules/tensorflow/2 {
-    cudaSupport = pkgs.config.cudaSupport or false;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-    cudatoolkit = pkgs.cudatoolkit_10;
-    cudnn = pkgs.cudnn_cudatoolkit_10;
-    nccl = pkgs.nccl_cudatoolkit_10;
-    openssl = pkgs.openssl_1_1;
-    inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security;
-  };
+  uvcclient = callPackage ../development/python-modules/uvcclient { };
 
-  tensorflow = self.tensorflow_1;
-  tensorflow_1 = self.tensorflow-build_1;
-  tensorflow_2 = self.tensorflow-build_2;
+  uvicorn = callPackage ../development/python-modules/uvicorn { };
 
-  tensorflowWithoutCuda = self.tensorflow.override {
-    cudaSupport = false;
+  uvloop = callPackage ../development/python-modules/uvloop {
+    inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
   };
 
-  tensorflowWithCuda = self.tensorflow.override {
-    cudaSupport = true;
-  };
+  validate-email = callPackage ../development/python-modules/validate-email { };
 
-  tensorly = callPackage ../development/python-modules/tensorly { };
+  validators = callPackage ../development/python-modules/validators { };
 
-  tflearn = callPackage ../development/python-modules/tflearn { };
+  validictory = callPackage ../development/python-modules/validictory { };
 
-  simpleai = callPackage ../development/python-modules/simpleai { };
+  variants = callPackage ../development/python-modules/variants { };
 
-  word2vec = callPackage ../development/python-modules/word2vec { };
+  varint = callPackage ../development/python-modules/varint { };
 
-  tvdb_api = callPackage ../development/python-modules/tvdb_api { };
+  vcrpy = callPackage ../development/python-modules/vcrpy { };
 
-  sdnotify = callPackage ../development/python-modules/sdnotify { };
+  vcver = callPackage ../development/python-modules/vcver { };
 
-  tvnamer = callPackage ../development/python-modules/tvnamer { };
+  vcversioner = callPackage ../development/python-modules/vcversioner { };
 
-  threadpool = callPackage ../development/python-modules/threadpool { };
+  vdf = callPackage ../development/python-modules/vdf { };
 
-  threadpoolctl = callPackage ../development/python-modules/threadpoolctl { };
+  vdirsyncer = callPackage ../development/python-modules/vdirsyncer {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices Security;
+    inherit (pkgs) pkg-config openssl rustPlatform;
+  };
 
-  rocket-errbot = callPackage ../development/python-modules/rocket-errbot {  };
+  vdirsyncerStable = callPackage ../development/python-modules/vdirsyncer/stable.nix { };
 
-  Yapsy = callPackage ../development/python-modules/yapsy { };
+  vega = callPackage ../development/python-modules/vega { };
 
-  ansi = callPackage ../development/python-modules/ansi { };
+  vega_datasets = callPackage ../development/python-modules/vega_datasets { };
 
-  pygments-better-html = callPackage ../development/python-modules/pygments-better-html { };
+  venusian = callPackage ../development/python-modules/venusian { };
 
-  pygments-markdown-lexer = callPackage ../development/python-modules/pygments-markdown-lexer { };
+  verboselogs = callPackage ../development/python-modules/verboselogs { };
 
-  telegram = callPackage ../development/python-modules/telegram { };
+  versioneer = callPackage ../development/python-modules/versioneer { };
 
-  python-telegram-bot = callPackage ../development/python-modules/python-telegram-bot { };
+  versiontools = callPackage ../development/python-modules/versiontools { };
 
-  irc = callPackage ../development/python-modules/irc { };
+  vertica-python = callPackage ../development/python-modules/vertica-python { };
 
-  jaraco_logging = callPackage ../development/python-modules/jaraco_logging { };
+  veryprettytable = callPackage ../development/python-modules/veryprettytable { };
 
-  jaraco_text = callPackage ../development/python-modules/jaraco_text { };
+  vidstab = callPackage ../development/python-modules/vidstab { };
 
-  jaraco_collections = callPackage ../development/python-modules/jaraco_collections { };
+  viewstate = callPackage ../development/python-modules/viewstate { };
 
-  jaraco_itertools = callPackage ../development/python-modules/jaraco_itertools { };
+  vine = callPackage ../development/python-modules/vine { };
 
-  inflect = callPackage ../development/python-modules/inflect { };
+  virtkey = callPackage ../development/python-modules/virtkey { inherit (pkgs) pkgconfig; };
 
-  more-itertools = if isPy27 then
-    callPackage ../development/python-modules/more-itertools/2.7.nix { }
-  else callPackage ../development/python-modules/more-itertools { };
+  virtual-display = callPackage ../development/python-modules/virtual-display { };
 
-  morphys = callPackage ../development/python-modules/morphys { };
+  virtualenv = callPackage ../development/python-modules/virtualenv { };
 
-  jaraco_functools = if pythonOlder "3.6" then
-    callPackage ../development/python-modules/jaraco_functools/2.nix { }
-  else
-    callPackage ../development/python-modules/jaraco_functools { };
+  virtualenv-clone = callPackage ../development/python-modules/virtualenv-clone { };
 
-  jaraco_classes = callPackage ../development/python-modules/jaraco_classes { };
+  virtualenvwrapper = callPackage ../development/python-modules/virtualenvwrapper { };
 
-  jaraco_stream = if pythonOlder "3.6"
-    then callPackage ../development/python-modules/jaraco_stream/2.nix { }
-  else
-    callPackage ../development/python-modules/jaraco_stream { };
+  visitor = callPackage ../development/python-modules/visitor { };
 
-  javaobj-py3 = callPackage ../development/python-modules/javaobj-py3 { };
+  vispy = callPackage ../development/python-modules/vispy { };
 
-  javaproperties = callPackage ../development/python-modules/javaproperties { };
+  vmprof = callPackage ../development/python-modules/vmprof { };
 
-  tempora= callPackage ../development/python-modules/tempora { };
+  vobject = callPackage ../development/python-modules/vobject { };
 
-  hypchat = callPackage ../development/python-modules/hypchat { };
+  voluptuous = callPackage ../development/python-modules/voluptuous { };
 
-  pivy = callPackage ../development/python-modules/pivy { };
+  voluptuous-serialize = callPackage ../development/python-modules/voluptuous-serialize { };
 
-  smugpy = callPackage ../development/python-modules/smugpy { };
+  vowpalwabbit = callPackage ../development/python-modules/vowpalwabbit { };
 
-  smugline = callPackage ../development/python-modules/smugline { };
+  vsts = callPackage ../development/python-modules/vsts { };
 
-  txaio = callPackage ../development/python-modules/txaio { };
+  vsts-cd-manager = callPackage ../development/python-modules/vsts-cd-manager { };
 
-  ramlfications = callPackage ../development/python-modules/ramlfications { };
+  vtk = toPythonModule (pkgs.vtk_7.override {
+    inherit (self) python;
+    enablePython = true;
+  });
 
-  yapf = callPackage ../development/python-modules/yapf { };
+  vultr = callPackage ../development/python-modules/vultr { };
 
-  black = callPackage ../development/python-modules/black { };
+  vulture = callPackage ../development/python-modules/vulture { };
 
-  bjoern = callPackage ../development/python-modules/bjoern { };
+  vxi11 = callPackage ../development/python-modules/vxi11 { };
 
-  autobahn = callPackage ../development/python-modules/autobahn { };
+  w3lib = callPackage ../development/python-modules/w3lib { };
 
-  jsonref = callPackage ../development/python-modules/jsonref { };
+  wadllib = callPackage ../development/python-modules/wadllib { };
 
-  whoosh = callPackage ../development/python-modules/whoosh { };
+  waitress = callPackage ../development/python-modules/waitress { };
 
-  packet-python = callPackage ../development/python-modules/packet-python { };
+  waitress-django = callPackage ../development/python-modules/waitress-django { };
 
-  pwntools = callPackage ../development/python-modules/pwntools { };
+  wakeonlan = callPackage ../development/python-modules/wakeonlan { };
 
-  ROPGadget = callPackage ../development/python-modules/ROPGadget { };
+  Wand = callPackage ../development/python-modules/Wand { };
 
-  # We need "normal" libxml2 and not the python package by the same name.
-  pywbem = callPackage ../development/python-modules/pywbem { libxml2 = pkgs.libxml2; };
+  warlock = callPackage ../development/python-modules/warlock { };
 
-  unicorn = callPackage ../development/python-modules/unicorn { };
+  warrant = callPackage ../development/python-modules/warrant { };
 
-  intervaltree = callPackage ../development/python-modules/intervaltree { };
+  wasabi = callPackage ../development/python-modules/wasabi { };
 
-  packaging = callPackage ../development/python-modules/packaging { };
+  watchdog = callPackage ../development/python-modules/watchdog { };
 
-  preggy = callPackage ../development/python-modules/preggy { };
+  WazeRouteCalculator = callPackage ../development/python-modules/WazeRouteCalculator { };
 
-  prison = callPackage ../development/python-modules/prison { };
+  wcwidth = callPackage ../development/python-modules/wcwidth { };
 
-  pytoml = callPackage ../development/python-modules/pytoml { };
+  weasyprint = callPackage ../development/python-modules/weasyprint { };
 
-  pypamtest = pkgs.libpam-wrapper.override {
-    enablePython = true;
-    inherit python;
-  };
+  webapp2 = callPackage ../development/python-modules/webapp2 { };
 
-  pypandoc = callPackage ../development/python-modules/pypandoc { };
+  webassets = callPackage ../development/python-modules/webassets { };
 
-  yamllint = callPackage ../development/python-modules/yamllint { };
+  web = callPackage ../development/python-modules/web { };
 
-  yanc = callPackage ../development/python-modules/yanc { };
+  webcolors = callPackage ../development/python-modules/webcolors { };
 
-  yarl = callPackage ../development/python-modules/yarl { };
+  webdavclient3 = callPackage ../development/python-modules/webdavclient3 { };
 
-  solo-python = disabledIf (! pythonAtLeast "3.6") (callPackage ../development/python-modules/solo-python { });
+  webencodings = callPackage ../development/python-modules/webencodings { };
 
-  suseapi = callPackage ../development/python-modules/suseapi { };
+  webhelpers = callPackage ../development/python-modules/webhelpers { };
 
-  tensorboardx = callPackage ../development/python-modules/tensorboardx { };
+  webob = callPackage ../development/python-modules/webob { };
 
-  typed-ast = callPackage ../development/python-modules/typed-ast { };
+  weboob = callPackage ../development/python-modules/weboob { };
 
-  stripe = callPackage ../development/python-modules/stripe { };
+  webrtcvad = callPackage ../development/python-modules/webrtcvad { };
 
-  strict-rfc3339 = callPackage ../development/python-modules/strict-rfc3339 { };
+  websocket_client = callPackage ../development/python-modules/websocket_client { };
 
-  strictyaml = callPackage ../development/python-modules/strictyaml { };
+  websockets = callPackage ../development/python-modules/websockets { };
 
-  twilio = callPackage ../development/python-modules/twilio { };
+  websockify = callPackage ../development/python-modules/websockify { };
 
-  twofish = callPackage ../development/python-modules/twofish { };
+  webtest = callPackage ../development/python-modules/webtest { };
 
-  uranium = callPackage ../development/python-modules/uranium { };
+  werkzeug = callPackage ../development/python-modules/werkzeug { };
 
-  uuid = callPackage ../development/python-modules/uuid { };
+  west = callPackage ../development/python-modules/west { };
 
-  versioneer = callPackage ../development/python-modules/versioneer { };
+  wfuzz = callPackage ../development/python-modules/wfuzz { };
 
-  viewstate = callPackage ../development/python-modules/viewstate { };
+  wget = callPackage ../development/python-modules/wget { };
 
-  vine = callPackage ../development/python-modules/vine { };
+  wheel = callPackage ../development/python-modules/wheel { };
 
-  visitor = callPackage ../development/python-modules/visitor { };
+  whichcraft = callPackage ../development/python-modules/whichcraft { };
 
-  vtk = toPythonModule (pkgs.vtk_7.override {
-    inherit (self) python;
-    enablePython = true;
-  });
+  whisper = callPackage ../development/python-modules/whisper { };
 
   whitenoise = callPackage ../development/python-modules/whitenoise { };
 
-  XlsxWriter = callPackage ../development/python-modules/XlsxWriter { };
+  whoosh = callPackage ../development/python-modules/whoosh { };
 
-  yowsup = callPackage ../development/python-modules/yowsup { };
+  widgetsnbextension = callPackage ../development/python-modules/widgetsnbextension { };
 
-  yubico-client = callPackage ../development/python-modules/yubico-client { };
+  willow = callPackage ../development/python-modules/willow { };
 
-  wptserve = callPackage ../development/python-modules/wptserve { };
+  word2vec = callPackage ../development/python-modules/word2vec { };
 
-  yenc = callPackage ../development/python-modules/yenc { };
+  wordcloud = callPackage ../development/python-modules/wordcloud { };
 
-  zeep = callPackage ../development/python-modules/zeep { };
+  wordfreq = callPackage ../development/python-modules/wordfreq { };
 
-  zeitgeist = disabledIf isPy3k
-    (toPythonModule (pkgs.zeitgeist.override{python2Packages=self;})).py;
+  worldengine = callPackage ../development/python-modules/worldengine { };
 
-  zeroconf = callPackage ../development/python-modules/zeroconf { };
+  wptserve = callPackage ../development/python-modules/wptserve { };
 
-  zipfile36 = callPackage ../development/python-modules/zipfile36 { };
+  wrapt = callPackage ../development/python-modules/wrapt { };
 
-  todoist = callPackage ../development/python-modules/todoist { };
+  wrf-python = callPackage ../development/python-modules/wrf-python { };
 
-  zstd = callPackage ../development/python-modules/zstd {
-    inherit (pkgs) zstd pkgconfig;
-  };
+  ws4py = callPackage ../development/python-modules/ws4py { };
 
-  zstandard = callPackage ../development/python-modules/zstandard { };
+  wsgiproxy2 = callPackage ../development/python-modules/wsgiproxy2 { };
 
-  zxcvbn = callPackage ../development/python-modules/zxcvbn { };
+  WSGIProxy = callPackage ../development/python-modules/wsgiproxy { };
 
-  incremental = callPackage ../development/python-modules/incremental { };
+  wsgitools = callPackage ../development/python-modules/wsgitools { };
 
-  treq = callPackage ../development/python-modules/treq { };
+  WSME = callPackage ../development/python-modules/WSME { };
 
-  snakeviz = callPackage ../development/python-modules/snakeviz { };
+  wsproto = if (pythonAtLeast "3.6") then
+    callPackage ../development/python-modules/wsproto { }
+  else
+    callPackage ../development/python-modules/wsproto/0.14.nix { };
 
-  nitpick = callPackage ../applications/version-management/nitpick { };
+  wtforms = callPackage ../development/python-modules/wtforms { };
 
-  pluginbase = callPackage ../development/python-modules/pluginbase { };
+  wtf-peewee = callPackage ../development/python-modules/wtf-peewee { };
 
-  node-semver = callPackage ../development/python-modules/node-semver { };
+  wurlitzer = callPackage ../development/python-modules/wurlitzer { };
 
-  diskcache = callPackage ../development/python-modules/diskcache { };
+  wxPython30 = callPackage ../development/python-modules/wxPython/3.0.nix {
+    wxGTK = pkgs.wxGTK30;
+    inherit (pkgs) pkgconfig;
+  };
 
-  dissononce = callPackage ../development/python-modules/dissononce { };
+  wxPython_4_0 = callPackage ../development/python-modules/wxPython/4.0.nix {
+    inherit (pkgs) pkgconfig;
+    wxGTK = pkgs.wxGTK30.override {
+      withGtk2 = false;
+      withWebKit = true;
+    };
+  };
 
-  distro = callPackage ../development/python-modules/distro { };
+  wxPython = self.wxPython30;
 
-  bz2file =  callPackage ../development/python-modules/bz2file { };
+  x11_hash = callPackage ../development/python-modules/x11_hash { };
 
-  smart_open =  callPackage ../development/python-modules/smart_open { };
+  x256 = callPackage ../development/python-modules/x256 { };
 
-  gensim = callPackage  ../development/python-modules/gensim { };
+  xapian = callPackage ../development/python-modules/xapian { xapian = pkgs.xapian; };
 
-  genpy = callPackage ../development/python-modules/genpy { };
+  xapp = callPackage ../development/python-modules/xapp {
+    inherit (pkgs) gtk3 gobject-introspection polkit;
+    inherit (pkgs.cinnamon) xapps;
+  };
 
-  cymem = callPackage ../development/python-modules/cymem { };
+  xarray = callPackage ../development/python-modules/xarray { };
 
-  ftfy = callPackage ../development/python-modules/ftfy { };
+  xattr = callPackage ../development/python-modules/xattr { };
 
-  murmurhash = callPackage ../development/python-modules/murmurhash { };
+  xcaplib = callPackage ../development/python-modules/xcaplib { };
 
-  pkuseg = callPackage ../development/python-modules/pkuseg { };
+  xcffib = callPackage ../development/python-modules/xcffib { };
 
-  plac = callPackage ../development/python-modules/plac { };
+  xdg = callPackage ../development/python-modules/xdg { };
 
-  preshed = callPackage ../development/python-modules/preshed { };
+  xdis = callPackage ../development/python-modules/xdis { };
 
-  backports_weakref = callPackage ../development/python-modules/backports_weakref { };
+  xdot = callPackage ../development/python-modules/xdot { };
 
-  blis = callPackage ../development/python-modules/blis { };
+  xenomapper = disabledIf (!isPy3k) (callPackage ../applications/science/biology/xenomapper { });
 
-  srsly = callPackage ../development/python-modules/srsly { };
+  xgboost = callPackage ../development/python-modules/xgboost { xgboost = pkgs.xgboost; };
 
-  thinc = callPackage ../development/python-modules/thinc { };
+  xhtml2pdf = callPackage ../development/python-modules/xhtml2pdf { };
 
-  wasabi = callPackage ../development/python-modules/wasabi { };
+  xkcdpass = callPackage ../development/python-modules/xkcdpass { };
 
-  yahooweather = callPackage ../development/python-modules/yahooweather { };
+  xlib = callPackage ../development/python-modules/xlib { };
 
-  somajo = callPackage ../development/python-modules/somajo { };
+  xlrd = callPackage ../development/python-modules/xlrd { };
 
-  spacy = callPackage ../development/python-modules/spacy { };
+  xlsx2csv = callPackage ../development/python-modules/xlsx2csv { };
 
-  spacy_models = callPackage ../development/python-modules/spacy/models.nix { };
+  XlsxWriter = callPackage ../development/python-modules/XlsxWriter { };
 
-  pyspark = callPackage ../development/python-modules/pyspark { };
+  xlwt = callPackage ../development/python-modules/xlwt { };
 
-  pysensors = callPackage ../development/python-modules/pysensors { };
+  xml2rfc = callPackage ../development/python-modules/xml2rfc { };
 
-  python-toolbox = callPackage ../development/python-modules/python-toolbox { };
+  xmlschema = callPackage ../development/python-modules/xmlschema { };
 
-  pysnooper = callPackage ../development/python-modules/pysnooper { };
+  xmltodict = callPackage ../development/python-modules/xmltodict { };
 
-  sseclient = callPackage ../development/python-modules/sseclient { };
+  xmodem = callPackage ../development/python-modules/xmodem { };
 
-  warrant = callPackage ../development/python-modules/warrant { };
+  xmpppy = callPackage ../development/python-modules/xmpppy { };
 
-  textacy = callPackage ../development/python-modules/textacy { };
+  xnd = callPackage ../development/python-modules/xnd { };
 
-  tld = callPackage ../development/python-modules/tld { };
+  xpybutil = callPackage ../development/python-modules/xpybutil { };
 
-  tldextract = callPackage ../development/python-modules/tldextract { };
+  xstatic-bootbox = callPackage ../development/python-modules/xstatic-bootbox { };
 
-  transip = callPackage ../development/python-modules/transip { };
+  xstatic-bootstrap = callPackage ../development/python-modules/xstatic-bootstrap { };
 
-  pyemd  = callPackage ../development/python-modules/pyemd { };
+  xstatic = callPackage ../development/python-modules/xstatic { };
 
-  openwrt-luci-rpc = disabledIf (!isPy3k) (callPackage ../development/python-modules/openwrt-luci-rpc { });
+  xstatic-jquery = callPackage ../development/python-modules/xstatic-jquery { };
 
-  pulp  = callPackage ../development/python-modules/pulp { };
+  xstatic-jquery-file-upload = callPackage ../development/python-modules/xstatic-jquery-file-upload { };
 
-  behave = callPackage ../development/python-modules/behave { };
+  xstatic-jquery-ui = callPackage ../development/python-modules/xstatic-jquery-ui { };
 
-  pyhamcrest = if isPy3k then
-    callPackage ../development/python-modules/pyhamcrest { }
-  else
-    callPackage ../development/python-modules/pyhamcrest/1.nix { };
+  xstatic-pygments = callPackage ../development/python-modules/xstatic-pygments { };
 
-  pyhaversion = callPackage ../development/python-modules/pyhaversion { };
+  xvfbwrapper = callPackage ../development/python-modules/xvfbwrapper { inherit (pkgs.xorg) xorgserver; };
 
-  parse = callPackage ../development/python-modules/parse { };
+  xxhash = callPackage ../development/python-modules/xxhash { };
 
-  parse-type = callPackage ../development/python-modules/parse-type { };
+  yahooweather = callPackage ../development/python-modules/yahooweather { };
 
-  ephem = callPackage ../development/python-modules/ephem { };
+  yamllint = callPackage ../development/python-modules/yamllint { };
 
-  voluptuous = callPackage ../development/python-modules/voluptuous { };
+  yanc = callPackage ../development/python-modules/yanc { };
 
-  voluptuous-serialize = callPackage ../development/python-modules/voluptuous-serialize { };
+  yapf = callPackage ../development/python-modules/yapf { };
 
-  pysigset = callPackage ../development/python-modules/pysigset { };
+  yappi = callPackage ../development/python-modules/yappi { };
 
-  us = callPackage ../development/python-modules/us { };
+  Yapsy = callPackage ../development/python-modules/yapsy { };
 
-  wsproto = if (pythonAtLeast "3.6") then
-      callPackage ../development/python-modules/wsproto { }
-    else
-      callPackage ../development/python-modules/wsproto/0.14.nix { };
+  yarg = callPackage ../development/python-modules/yarg { };
 
-  h11 = callPackage ../development/python-modules/h11 { };
+  yarl = callPackage ../development/python-modules/yarl { };
 
-  python-docx = callPackage ../development/python-modules/python-docx { };
+  yattag = callPackage ../development/python-modules/yattag { };
 
-  python-doi = callPackage ../development/python-modules/python-doi { };
+  ydiff = callPackage ../development/python-modules/ydiff { };
 
-  aiohue = callPackage ../development/python-modules/aiohue { };
+  yeelight = callPackage ../development/python-modules/yeelight { };
 
-  PyMVGLive = callPackage ../development/python-modules/pymvglive { };
+  yenc = callPackage ../development/python-modules/yenc { };
 
-  coinmarketcap = callPackage ../development/python-modules/coinmarketcap { };
+  yfinance = callPackage ../development/python-modules/yfinance { };
 
-  pyowm = callPackage ../development/python-modules/pyowm { };
+  yoda = toPythonModule (pkgs.yoda.override { inherit python; });
 
-  prometheus_client = callPackage ../development/python-modules/prometheus_client { };
+  youtube-dl = callPackage ../tools/misc/youtube-dl { };
 
-  pysdl2 = callPackage ../development/python-modules/pysdl2 { };
+  youtube-dl-light = callPackage ../tools/misc/youtube-dl {
+    ffmpegSupport = false;
+    phantomjsSupport = false;
+  };
 
-  pyogg = callPackage ../development/python-modules/pyogg { };
+  yowsup = callPackage ../development/python-modules/yowsup { };
 
-  rubymarshal = callPackage ../development/python-modules/rubymarshal { };
+  yt = callPackage ../development/python-modules/yt { };
 
-  radio_beam = callPackage ../development/python-modules/radio_beam { };
+  yubico-client = callPackage ../development/python-modules/yubico-client { };
 
-  spectral-cube = callPackage ../development/python-modules/spectral-cube { };
+  z3c-checkversions = callPackage ../development/python-modules/z3c-checkversions { };
 
-  astunparse = callPackage ../development/python-modules/astunparse { };
+  z3 = (toPythonModule (pkgs.z3.override { inherit python; })).python;
 
-  gast = callPackage ../development/python-modules/gast { };
+  zake = callPackage ../development/python-modules/zake { };
 
-  ibis = callPackage ../development/python-modules/ibis { };
+  zarr = callPackage ../development/python-modules/zarr { };
 
-  ibis-framework = callPackage ../development/python-modules/ibis-framework { };
+  zbase32 = callPackage ../development/python-modules/zbase32 { };
 
-  qiskit = callPackage ../development/python-modules/qiskit { };
+  zc_buildout221 = callPackage ../development/python-modules/buildout { };
 
-  qiskit-aer = callPackage ../development/python-modules/qiskit-aer { };
+  zc_buildout = self.zc_buildout221; # A patched version of buildout, useful for buildout based development on Nix
 
-  qiskit-aqua = callPackage ../development/python-modules/qiskit-aqua { };
+  zc_buildout_nix = callPackage ../development/python-modules/buildout-nix { };
 
-  qiskit-ibmq-provider = callPackage ../development/python-modules/qiskit-ibmq-provider { };
+  zc_lockfile = callPackage ../development/python-modules/zc_lockfile { };
 
-  qiskit-ignis = callPackage ../development/python-modules/qiskit-ignis { };
+  zconfig = callPackage ../development/python-modules/zconfig { };
 
-  qiskit-terra = callPackage ../development/python-modules/qiskit-terra { };
+  zdaemon = callPackage ../development/python-modules/zdaemon { };
 
-  qasm2image = callPackage ../development/python-modules/qasm2image { };
+  zeep = callPackage ../development/python-modules/zeep { };
 
-  simpy = callPackage ../development/python-modules/simpy { };
+  zeitgeist = disabledIf isPy3k (toPythonModule (pkgs.zeitgeist.override { python2Packages = self; })).py;
 
-  x256 = callPackage ../development/python-modules/x256 { };
+  zerobin = callPackage ../development/python-modules/zerobin { };
 
-  yattag = callPackage ../development/python-modules/yattag { };
+  zeroc-ice = callPackage ../development/python-modules/zeroc-ice { };
 
-  xenomapper = disabledIf (!isPy3k) (callPackage ../applications/science/biology/xenomapper { });
+  zeroconf = callPackage ../development/python-modules/zeroconf { };
 
-  z3 = (toPythonModule (pkgs.z3.override {
-    inherit python;
-  })).python;
+  zerorpc = callPackage ../development/python-modules/zerorpc { };
 
-  zeroc-ice = callPackage ../development/python-modules/zeroc-ice { };
+  zetup = callPackage ../development/python-modules/zetup { };
 
-  zm-py = callPackage ../development/python-modules/zm-py { };
+  zfec = callPackage ../development/python-modules/zfec { };
 
-  rfc7464 = callPackage ../development/python-modules/rfc7464 { };
+  zha-quirks = callPackage ../development/python-modules/zha-quirks { };
 
-  foundationdb51 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb51; };
-  foundationdb52 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb52; };
-  foundationdb60 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb60; };
-  foundationdb61 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb61; };
+  zict = callPackage ../development/python-modules/zict { };
 
-  libtorrentRasterbar = (toPythonModule (pkgs.libtorrentRasterbar.override {
-    inherit python;
-  })).python;
+  zigpy = callPackage ../development/python-modules/zigpy { };
 
-  libiio = (toPythonModule (pkgs.libiio.override {
-    inherit python;
-  })).python;
+  zigpy-cc = callPackage ../development/python-modules/zigpy-cc { };
 
-  localzone = callPackage ../development/python-modules/localzone { };
+  zigpy-deconz = callPackage ../development/python-modules/zigpy-deconz { };
 
-  scour = callPackage ../development/python-modules/scour { };
+  zigpy-xbee = callPackage ../development/python-modules/zigpy-xbee { };
 
-  pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04
+  zigpy-zigate = callPackage ../development/python-modules/zigpy-zigate { };
 
-  nanoleaf = callPackage ../development/python-modules/nanoleaf { };
+  zimports = callPackage ../development/python-modules/zimports { };
 
-  nanotime = callPackage ../development/python-modules/nanotime { };
+  zipfile36 = callPackage ../development/python-modules/zipfile36 { };
+
+  zipp = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/zipp/1.nix { }
+  else
+    callPackage ../development/python-modules/zipp { };
 
-  importlib-metadata = callPackage ../development/python-modules/importlib-metadata {};
+  zipstream = callPackage ../development/python-modules/zipstream { };
 
-  importlib-resources = callPackage ../development/python-modules/importlib-resources {};
+  zm-py = callPackage ../development/python-modules/zm-py { };
 
-  srptools = callPackage ../development/python-modules/srptools { };
+  zodb = callPackage ../development/python-modules/zodb { };
 
-  srp = callPackage ../development/python-modules/srp { };
+  zodbpickle = callPackage ../development/python-modules/zodbpickle { };
 
-  curve25519-donna = callPackage ../development/python-modules/curve25519-donna { };
+  zope_broken = callPackage ../development/python-modules/zope_broken { };
 
-  pyatv = callPackage ../development/python-modules/pyatv { };
+  zope_component = callPackage ../development/python-modules/zope_component { };
 
-  pybotvac = callPackage ../development/python-modules/pybotvac { };
+  zope_configuration = callPackage ../development/python-modules/zope_configuration { };
 
-  pymetno = callPackage ../development/python-modules/pymetno { };
+  zope_contenttype = callPackage ../development/python-modules/zope_contenttype { };
 
-  pytado = callPackage ../development/python-modules/pytado { };
+  zope_copy = callPackage ../development/python-modules/zope_copy { };
 
-  casttube = callPackage ../development/python-modules/casttube { };
+  zope-deferredimport = callPackage ../development/python-modules/zope-deferredimport { };
 
-  lzstring = callPackage ../development/python-modules/lzstring { };
+  zope_deprecation = callPackage ../development/python-modules/zope_deprecation { };
 
-  flickrapi = callPackage ../development/python-modules/flickrapi { };
+  zope_dottedname = callPackage ../development/python-modules/zope_dottedname { };
 
-  aioesphomeapi = callPackage ../development/python-modules/aioesphomeapi { };
+  zope_event = callPackage ../development/python-modules/zope_event { };
 
-  mwparserfromhell = callPackage ../development/python-modules/mwparserfromhell { };
+  zope_exceptions = callPackage ../development/python-modules/zope_exceptions { };
 
-  starlette = callPackage ../development/python-modules/starlette { };
+  zope_filerepresentation = callPackage ../development/python-modules/zope_filerepresentation { };
 
-  uvicorn = callPackage ../development/python-modules/uvicorn { };
+  zope-hookable = callPackage ../development/python-modules/zope-hookable { };
 
-  pydantic = callPackage ../development/python-modules/pydantic { };
+  zope_i18nmessageid = callPackage ../development/python-modules/zope_i18nmessageid { };
 
-  fastapi = callPackage ../development/python-modules/fastapi { };
+  zope_interface = callPackage ../development/python-modules/zope_interface { };
 
-  stringcase = callPackage ../development/python-modules/stringcase { };
+  zope_lifecycleevent = callPackage ../development/python-modules/zope_lifecycleevent { };
 
-  webrtcvad = callPackage ../development/python-modules/webrtcvad { };
+  zope_location = callPackage ../development/python-modules/zope_location { };
 
-  wfuzz = callPackage ../development/python-modules/wfuzz { };
+  zope_proxy = callPackage ../development/python-modules/zope_proxy { };
 
-  wget = callPackage ../development/python-modules/wget { };
+  zope_schema = callPackage ../development/python-modules/zope_schema { };
 
-  runway-python = callPackage ../development/python-modules/runway-python { };
+  zope_size = callPackage ../development/python-modules/zope_size { };
 
-  pyprof2calltree = callPackage ../development/python-modules/pyprof2calltree { };
+  zope_testing = callPackage ../development/python-modules/zope_testing { };
 
-  hcloud = callPackage ../development/python-modules/hcloud { };
+  zope_testrunner = callPackage ../development/python-modules/zope_testrunner { };
 
-  managesieve = callPackage ../development/python-modules/managesieve { };
+  zopfli = callPackage ../development/python-modules/zopfli { };
 
-  pony = callPackage ../development/python-modules/pony { };
+  zstandard = callPackage ../development/python-modules/zstandard { };
+
+  zstd = callPackage ../development/python-modules/zstd { inherit (pkgs) zstd pkgconfig; };
 
-  rxv     = callPackage ../development/python-modules/rxv     { };
+  zxcvbn = callPackage ../development/python-modules/zxcvbn { };
 
 });
 
diff --git a/pkgs/top-level/release-cross.nix b/pkgs/top-level/release-cross.nix
index 5e392ff1b88..af4dab5d263 100644
--- a/pkgs/top-level/release-cross.nix
+++ b/pkgs/top-level/release-cross.nix
@@ -161,6 +161,10 @@ in
   i686-embedded = mapTestOnCross lib.systems.examples.i686-embedded embedded;
   x86_64-embedded = mapTestOnCross lib.systems.examples.x86_64-embedded embedded;
 
+  # we test `embedded` instead of `linuxCommon` because very few packages
+  # successfully cross-compile to Redox so far
+  x86_64-redox = mapTestOnCross lib.systems.examples.x86_64-unknown-redox embedded;
+
   /* Cross-built bootstrap tools for every supported platform */
   bootstrapTools = let
     tools = import ../stdenv/linux/make-bootstrap-tools-cross.nix { system = "x86_64-linux"; };
diff --git a/pkgs/top-level/release-small.nix b/pkgs/top-level/release-small.nix
index 031acba4d23..7f84f02f006 100644
--- a/pkgs/top-level/release-small.nix
+++ b/pkgs/top-level/release-small.nix
@@ -38,7 +38,7 @@ with import ./release-lib.nix { inherit supportedSystems; };
   dhcp = linux;
   diffutils = all;
   e2fsprogs = linux;
-  emacs25 = linux;
+  emacs = linux;
   enscript = all;
   file = all;
   findutils = all;
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index c11858f09c8..5fc6e91b311 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -34,6 +34,7 @@ let
 
       manual = import ../../doc { inherit pkgs nixpkgs; };
       lib-tests = import ../../lib/tests/release.nix { inherit pkgs; };
+      pkgs-lib-tests = import ../pkgs-lib/tests { inherit pkgs; };
 
       darwin-tested = if supportDarwin then pkgs.releaseTools.aggregate
         { name = "nixpkgs-darwin-${jobs.tarball.version}";
@@ -91,6 +92,7 @@ let
             [ jobs.tarball
               jobs.manual
               jobs.lib-tests
+              jobs.pkgs-lib-tests
               jobs.stdenv.x86_64-linux
               jobs.linux.x86_64-linux
               jobs.pandoc.x86_64-linux
diff --git a/pkgs/top-level/stage.nix b/pkgs/top-level/stage.nix
index 9e07d2bf061..58b0300cc79 100644
--- a/pkgs/top-level/stage.nix
+++ b/pkgs/top-level/stage.nix
@@ -215,6 +215,7 @@ let
       crossOverlays = [ (import ./static.nix) ];
     } // lib.optionalAttrs stdenv.hostPlatform.isLinux {
       crossSystem = {
+        isStatic = true;
         parsed = stdenv.hostPlatform.parsed // {
           abi = {
             gnu = lib.systems.parse.abis.musl;
diff --git a/pkgs/top-level/static.nix b/pkgs/top-level/static.nix
index fcfe856398e..ca64c4d975c 100644
--- a/pkgs/top-level/static.nix
+++ b/pkgs/top-level/static.nix
@@ -216,6 +216,10 @@ in {
   libressl = super.libressl.override {
     buildShared = false;
   };
+  libjpeg_turbo = super.libjpeg_turbo.override {
+    enableStatic = true;
+    enableShared = false;
+  };
 
   darwin = super.darwin // {
     libiconv = super.darwin.libiconv.override {
@@ -242,7 +246,7 @@ in {
   };
 
   zstd = super.zstd.override {
-    enableShared = false;
+    static = true;
   };
 
   llvmPackages_8 = super.llvmPackages_8 // {
@@ -265,7 +269,6 @@ in {
   ) super.ocaml-ng;
 
   python27 = super.python27.override { static = true; };
-  python35 = super.python35.override { static = true; };
   python36 = super.python36.override { static = true; };
   python37 = super.python37.override { static = true; };
   python38 = super.python38.override { static = true; };
@@ -276,4 +279,28 @@ in {
   libev = super.libev.override { static = true; };
 
   libexecinfo = super.libexecinfo.override { enableShared = false; };
+
+  xorg = super.xorg.overrideScope' (xorgself: xorgsuper: {
+    libX11 = xorgsuper.libX11.overrideAttrs (attrs: {
+      depsBuildBuild = attrs.depsBuildBuild ++ [ (self.buildPackages.stdenv.cc.libc.static or null) ];
+    });
+    xauth = xorgsuper.xauth.overrideAttrs (attrs: {
+      # missing transitive dependencies
+      preConfigure = attrs.preConfigure or "" + ''
+        export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -lxcb -lXau -lXdmcp"
+      '';
+    });
+    xdpyinfo = xorgsuper.xdpyinfo.overrideAttrs (attrs: {
+      # missing transitive dependencies
+      preConfigure = attrs.preConfigure or "" + ''
+        export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -lXau -lXdmcp"
+      '';
+    });
+    libxcb = xorgsuper.libxcb.overrideAttrs (attrs: {
+      configureFlags = attrs.configureFlags ++ [ "--disable-shared" ];
+    });
+    libXi= xorgsuper.libXi.overrideAttrs (attrs: {
+      configureFlags = attrs.configureFlags ++ [ "--disable-shared" ];
+    });
+  });
 }